GP2X

From DaphneWiki

(Difference between revisions)
Jump to: navigation, search
(MLC (Multi Layer Control))
(MLC (Multi Layer Controller))
Line 111: Line 111:
=== Scaling ===
=== Scaling ===
-
for Y/Cr/Cb: scaling is supported, but not specified
+
for Y/Cr/Cb and RGB: coarse scaling only (see 13.4.2.10)
-
for RGB: coarse scaling only
+
Registers for YUV Region A (top): MLC_YUVA_TP_HSC, MLC_YUVA_TP_VSC
=== YUV Layer ===
=== YUV Layer ===

Revision as of 22:11, 25 June 2007

Contents

FDC

Frame Dimension Converter (13.2)

(from the Magic Eyes PDF) "The Frame Dimension Converter (FDC) transforms 2-D data made during the process of Encoding/Decoding MPEG into the 1-D data format. During this work, 4:2:0 to 4:2:2 format conversion, Rotation are performed."

ie 2D frame to 1D frame

2D separated 4:2:0, 4:2:2, or 4:4:4 --> YUY2 4:2:2

Rotation (0, 90, 180, 270 degrees).

Registers:

Control Register FDC_CNTL

Frame Size Register FDC_FRAME_SIZE

Source Address Registers FDC_LUMA_OFFSET FDC_CB_OFFSET FDC_CR_OFFSET

Destination Address Registers FDC_DST_BASE_L FDB_DST_BASE_H

Status Register FDC_STATUS (can indicate when FDC is busy)

Other Regs FDC_DERING FDC_OCC_CNTL

SC

Scale Processor (13.3)

Receives data from external memory, the ISP, or the Frame Dimensional Convertor (FDC).

Supports Coarse scale and fine scale.

Scale is split into Pre-scale and Post-scale.

PreScale

Coarse scale without filtering, more than 2x down scaling is exclusively possible.

SC_PRE_VRATIO SC_PRE_HRATIO SC_SRC_PXL_WIDTH SC_SRC_PXL_REQCNT

PostScale

Up/Down scale with filtering.

SC_POST_VRATIO SC_POST_HRATIO

Field/Frame Function

SC_SRC_ODD_ADDR SC_SRC_EVEN_ADDR SC_DST_ADDR SC_DST_WPXL_WIDTH

Y/Cb/Cr Separating Function

Only seems to be needed for mpeg or jpeg encoding.

SC_SEP_ADDR SC_DST_PXL_WIDTH

Mirror

SC_MIRROR

bits: 0 - src horizontal mirror (0 = disable, 1 = mirror) 1 - src vertical mirror 2 - dst horizontal mirror 3 - dst vertical mirror 4-5 - scale _source_ data format (0 = yuy2, 1 = yvyu, 2 = uyvy, 3 = vyuy)

Scale Status

SC_STATUS (has "busy" and "done" bits)

Output

Outputs to either external memory or the external display directly.

Other Registers

SC_CMD (Scale control register) SC_SEP_LUMA_ADDR SC_SEP_CB_ADDR SC_SEP_CR_ADDR SC_DELAY SC_MEM_CNTR SC_IRQ

MLC (Multi Layer Controller)

Inputs

Receives data from Scale Processor, Frame Dimensional Converter, and External Memory.

Data Format

Y/Cr/Cb, RGB, indexed color, OSD/sub-picture/cursor data format.

Mirroring

Controls 4-division display of Y/Cr/Cb data. The mirror function can only be enabled when the source is memory (section 13-25).

Color Correction

Does brightness/contrast for luminance, and hue/saturation for chrominance. Does dithering and gamma correction for RGB.

Color Space Conversion

Converts Y/Cr/Cb to RGB.

Scaling

for Y/Cr/Cb and RGB: coarse scaling only (see 13.4.2.10) Registers for YUV Region A (top): MLC_YUVA_TP_HSC, MLC_YUVA_TP_VSC

YUV Layer

Handles only Y/Cr/Cb data. Supports scaling, mirroring, and 4-division display.

Input: Receives data from scale processor, FDC, or external memory.

Divided into Region A and Region B. Each Region is divided into Top Region and Bottom Region. The bottom regions can only be enabled when the source is memory (section 13-25).

Region Differences (this is why you'd have to choose one or the other)

Region A receives data from external memory and scale processor.

Region B receives data from external memory and Frame Dimension Converter.

Y/Cr/Cb format

Basically this seems to be just regular YUY2.

Region Dimensions Example

YUV Region A (top) MLC_YUVA_STX : starting X (horizontal) MLC_YUVA_ENDX : ending X MLC_YUVA_TP_STY : starting Y (vertical) MLC_YUVA_TP_ENDY : ending Y

Personal tools