AMD SC1201 Computer Hardware User Manual


 
AMD Geode™ SC1200/SC1201 Processor Data Book 325
Video Processor Module
32579B
7.2.3.1 YUV to RGB CSC in Video Data Path
If the video data is in the YUV color space and RGB mix-
ing/blending is desired, this CSC must be enabled. The
CSC_FOR_VIDEO bit, F4BAR0+Memory Offset 4Ch[10],
controls this CSC.
YUV video data is passed through this CSC to obtain 24-bit
RGB data using the following CCIR-601-1 recommended
formula:
R = 1.1640625(Y – 16) + 1.59375(V – 128)
G = 1.1640625(Y – 16) – 0.8125(V – 128) –
0.390625(U – 128)
B = 1.1640625(Y – 16) + 2.015625(U – 128)
The CSC clamps inputs to prevent them from exceeding
acceptable limits.
7.2.3.2 Gamma Correction
Either the video or graphics data can be routed through an
integrated palette RAM for Gamma correction. There are
three 256-byte RAMs, one for each color component value.
Gamma correction supported in the YUV or RGB color
space for the video data and RGB color space for the
graphics data. Gamma correction is accomplished by treat-
ing each color component as an address into each RAM.
The output of the RAM is the new color. A simple RGB
Gamma correction example is to increase each color com-
ponent by one. The address 00h in the RAMs would con-
tain the data 01h. The address 01h would contain the data
02h and so on. This would have the effect of increasing
each original Red, Green, and Blue value by one.
G_V_GAMMA, F4BAR0+Memory Offset 04h[21] selects
which data path (video or graphics) to send to the
Gamma correction block. GAMMA_EN,
F4BAR0+Memory Offset 28h[0] enables the Gamma
correction function. To load the Gamma correction
palette RAM, use F4BAR0+Memory Offset 1Ch and
20h.
7.2.3.3 RGB to YUV CSC
The RGB to YUV CSC serves two options: YUV blending
(TV output mode only) and RGB blending (TV, CRT, and
TFT output modes). Through several multiplexers, this
CSC is used to convert the graphics data from RGB to YUV
for YUV blending (CSC_FOR_GFX = 1, F4BAR0+Memory
Offset 4Ch[11]). When RGB blending is enabled
(CSC_FOR_GFX = 0), the CSC is used post blending to
convert the mixed/blended data from RGB to YUV for the
TVOUT block.
RGB graphics data or mixed/blended graphics/video data
is passed through this CSC to obtain 24-bit YUV data using
the following CCIR-601-1 recommended formula:
Y = 0.257R + 0.504G + 0.098B + 16
U = -0.148R – 0.291G + 0.439B + 128
V = 0.439R – 0.368G – 0.071B + 128
The CSC clamps inputs to prevent them from exceeding
acceptable limits.
7.2.3.4 1/2 Y Flicker Filter
See Section 7.2.4.1 "Flicker Filter and Scan Rate Conver-
sion" on page 329 for details regarding the flicker filter.
7.2.3.5 Color/Chroma Key
A color/chroma key mechanism is used to support the
Mixer/Blender logic. There are two keys: key1 is for the cur-
sor and key2 is for graphics or video data. Key1, the cursor
key, is always a color key. The cursor color key registers
are located at, F4BAR0+Memory Offset 50h-5CF. How the
cursor key mechanism works with the Mixer/Blender is
explained in Section 7.2.3.6. COLOR_CHROMA_KEY
(F4BAR0+Memory Offset 04h[20]) determines whether
key2 is a color key or a chroma key. The Video Color Key
Register (F4BAR0+Memory Offset 14h) stores the key.
Color keying is used when video is overlaid on the graphics
(GFX_INS_VIDEO, F4BAR0+Memory Offset 4Ch[8] = 0).
Chroma keying is used when graphics is overlaid on the
video (GFX_INS_VIDEO = 1). How the color/chroma key
mechanism works with the Mixer/Blender is explained in
Section 7.2.3.6.
7.2.3.6 Color/Chroma Key and Mixer/Blender
The Mixer/Blender takes each pixel of the graphics and
video data streams and mixes or blends them together.
Mixing is simply choosing the graphics pixel or the video
pixel. Blending takes a percentage of a graphics pixel
(Alpha_value * Graphics_pixel_value) and percentage of
the video pixel (1 - Alpha_Value * Video_pixel_value) and
adds them together. The percentages of each add up to
100%. The actual formula is:
Blended Pixel = (Alpha_value * Graphics_pixel_value) /
256 + ((256 – Alpha_value) * Video_pixel_value) / 256
Where: Alpha_value = 0 to 255
Mixing and blending are supported simultaneously for
every rendered frame, however, each pixel can only be
mixed or blended. The mix or blend question is decided by
the pixel position, whether video is overlaid on the graphics
or visa versa (GFX_INS_VIDEO, F4BAR0+Memory Offset
4Ch[8]), and several programmed “windows”. Figure 7-
11illustrates and example frame.