2.0 Functional Description
Fusion 878A
2.4 Video Scaling, Cropping, and Temporal Decimation
PCI Video Decoder
2-14
Conexant
100600B
For example, to scale PAL/SECAM input to square pixel QCIF, the total
number of horizontal pixels desired is 236:
An alternative method for determining the HSCALE value uses the ratio of
the scaled active region to the unscaled active region as shown below:
In this equation, the HACTIVE value cannot be cropped; it represents the total
active region of the video line. This equation produces roughly the same result as
using the full line length ratio shown in the first example. However, due to
truncation, the HSCALE values determined using the active pixel ratio method
will be slightly different from those obtained using the total line length pixel ratio
method. The values in
, were calculated using the full line length ratio.
The Vertical Scaling
Ratio Register (VSCALE)
VSCALE is programmed with the vertical scaling ratio. It defines the number of
vertical lines output by the Fusion 878A. The following formula should be used
to determine the value to be entered into this 13-bit register. The loaded value is a
two’s-complement, negative value.
For example, to scale PAL/SECAM input to square pixel QCIF, the total
number of vertical lines is 156:
Only the 13 LSBs of the VSCALE value are used; the five LSBs of
VSCALE_HI and the 8-bit VSCALE_LO register form the 13-bit VSCALE
register. The three MSBs of VSCALE_HI are used to control other functions. The
user must take care not to alter the values of the three MSBs when writing a
vertical scaling value.
HSCALE = [ ( 1135/236 ) – 1 ] × 4096
= 12331
= 0 × 3CF2
NTSC:
HSCALE = [ (754 / HACTIVE) – 1] × 4096
PAL/SECAM:
HSCALE = [ (922 / HACTIVE) – 1] × 4096
where:
HACTIVE = Desired number of pixels per line of video, not
including sync or blanking.
VSCALE = ( 0x10000 – { [ ( scaling_ratio ) – 1] × 512 } ) + 0x1FFF
VSCALE = ( 0x10000 – { [ ( 4/1 ) –1 ] × 512 } ) + 0x1FFF
= 0x1A00