
TM1300 Data Book
Philips Semiconductors
7-14
PRODUCT SPECIFICATION
The equations for the blending are illustrated below.
7.15.2
Chroma Keying
If the EVO_ENABLE and KEY_ENABLE bits are set to
‘1’ in EVO_CTL the TM1300 activates chroma keying.
The graphics overlay is taken from a pixel-packed YUV
4:2:2+
α data structure in memory. The EVO_KEY regis-
ter provides the value which signifies full transparency
for the overlay. The overlay values (Y, U and V) are com-
pared to the values stored in bit-fields of the EVO_KEY
register. EVO_KEY has three 8-bit fields: KEY_Y,
KEY_U and KEY_V, which store the values to be com-
pared to the Y, U, and V components, respectively, of the
overlay for chroma keying. Bits that correspond to bits
set in MASK_Y and MASK_UV are ignored for the com-
parison. When there is an exact match between the pixel
value and the value in EVO_KEY (disregarding any bits
masked by MASK_Y and MASK_UV), then the overlay
value is not present in the output stream, resulting in full
transparency.
The mask bits in EVO_MASK provide for varying de-
grees of precision in the chroma-key matching process.
The EVO_MASK.MASK_Y field can mask from 0 to 4
LSBs of the overlay Y component during the chroma key
process. For example, setting MASK_Y = 1 eliminates
the influence of the LSB of KEY_Y in the keying process.
This can be used to widen the range of key matching to
account for irregularities in the chroma-key video signal.
Likewise, EVO_MASK.MASK_UV is used to mask from
zero to four LSBs of the overlay U and V components
during the chroma key process. For example, setting
MASK_UV = 1 eliminates the influence of the LSB of
KEY_U and KEY_V in the keying process.
7.15.3
Programmable Clipping
If EVO_CTL.CLIPPING_ENABLE = 1 the EVO performs
fully-compliant programmable clipping. Clipping is per-
formed as the last step of the video pipeline, after chro-
ma keying and alpha blending. It is applied only on the
image
areas
(Field 1
and
Field 2)
defined
by
IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_VOFF and
IMAGE_HOFF inside the Active Video Area. Blanking
values are not clipped.
The EVO_CLIP MMIO register stores four 8-bit fields
used to clip output components. The Y output compo-
nent
is
clipped
between
the
values
stored
in
LOWER_CLIPY and HIGHER_CLIPY. A value less than
or equal to LOWER_CLIPY is forced to LOWER_CLIPY
and a value greater than or equal to HIGHER_CLIPY is
forced to HIGHER_CLIPY.
The same behavior is implemented for U and V with the
values
stored
in
the
LOWER_CLIPUV
and
HIGHER_CLIPUV fields.
This mode allows fully-compliant 16 to 235 Y clipping
and 16 to 240 Cb and Cr clipping to be programmed.
These are the default values of the EVO_CLIP register
after reset.
If CLIPPING_ENABLE = 0, the EVO clips Y, U and V be-
tween the default values 16 and 240, as it is implement-
ed in the TM1000. When LOWER_CLIP{Y,UV} registers
are set to ‘0’ and HIGHER_CLIP{Y,UV} registers are set
to ‘255’, no clipping is performed.
7.16
MMIO REGISTERS
The MMIO registers are in two groups:
VO registers — control basic VO functions (those
shared with the TM1000 VO unit)
EVO registers — control new EVO unit functions
(those new to TM1100/TM1300)
VO MMIO registers are shown in Figure 7-29. VO MMIO
register names are prefixed with “VO_”. Generally, their
functionality is unchanged except where noted in the text
(see for instance, Section 7.16.1). The register fields are
described in Table 7-5, Table 7-6 and Table 7-7. They
are discussed in sections 7.16.1 through 7.16.3.2.
EVO MMIO registers are shown in Figure 7-31. EVO
MMIO register names are prefixed with “EVO_”. The
EVO_CTL register selectively enables new TM1300
functions. Other EVO-related registers support new
TM1300 functions. The register fields are described in
Table 7-8 and Table 7-9. They are discussed in
sections 7.16.4 and 7.16.5.
To ensure compatibility with future devices, any unde-
fined MMIO bits should be ignored when read, and writ-
ten as ‘0’s.
7.16.1
VO Status Register (VO_STATUS)
The VO_STATUS register is a read-only register that
shows the current status of the EVO. Its fields are shown
in Figure 7-29 and Table 7-5.
VO_STATUS[4] is now hard-wired to ‘1’. This allows soft-
ware to determine if the unit is an EVO unit (containing
extra MMIO registers) or a TM1000 VO unit, as follows.
In the TM1000, this bit is a copy of the HBE flag
(VO_STATUS[5]). In the EVO unit, it is hard-wired to ‘1’.
Software can use this bit to determine the type of (E)VO
if alpha[7] = 1 then
output[7:0] = overlay[7:0]
else
output[7:0] = (alpha[6:0] overlay[7:0] + (alpha[6:0] + 1) image[7:0]) >> 7
(or)
output[7:0] = (alpha[6:0] (overlay[7:0] – image[7:0]) >> 7) + image[7:0]