
S3C2440A RISC MICROPROCESSOR
CAMERA INTERFACE
23-20
REGISTER SETTING GUIDE FOR CODEC SCALER AND PREVIEW SCALER
SRC_Width
and
DST_Width
satisfy the word boundary constraints such that the number of horizontal pixel can be
represented to kn where n = 1,2,3, … and k = 1 / 2 / 8 for 24bppRGB / 16bppRGB / YCbCr420 image, respectively.
TargetHsize should not be larger than SourceHsize. Similarly, TargetVsize should not be larger than SourceVsize.
SourceHsize
S
TargetHsize_xx
T
Original Input
Scale Down
SourceHsize
S
Original Input
Zoom In
: WinHorOfst
: WinVerOfst
TargetHsize_xx
T
SRC_Width = SourceHsize
SRC_Height = SourceVsize
TargetHsize_xx = TargetHsize_Co or TargetHsize_Pr
DST_Width = TargetHsize_xx
DST_Height = TargetVsize_xx
TargetHsize_xx = TargetHsize_Co or TargetHsize_Pr
DST_Width = TargetHsize_xx
DST_Height = TargetVsize_xx
SRC_Width = SourceHsize - (2 x WinHorOfst)
SRC_Height = SourceVsize - (2 x WinVerOfst)
Figure 23-12. Scaling Scheme
The other control registers of pre-scaled like image size, pre-scale ratio, pre-scale shift ratio and main scale ratio are
defined according to the following equations.
If ( SRC_Width >= 64 × DST_Width ) { Exit(-1); /* Out Of Horizontal Scale Range */ }
else if (SRC_Width >= 32 × DST_Width) { PreHorRatio_xx = 32; H_Shift = 5; }
else if (SRC_Width >= 16 × DST_Width) { PreHorRatio_xx = 16; H_Shift = 4; }
else if (SRC_Width >= 8 × DST_Width) { PreHorRatio_xx = 8; H_Shift = 3; }
else if (SRC_Width >= 4 × DST_Width) { PreHorRatio_xx = 4; H_Shift = 2; }
else if (SRC_Width >= 2 × DST_Width) { PreHorRatio_xx = 2; H_Shift = 1; }
else { PreHorRatio_xx = 1; H_Shift = 0; }
PreDstWidth_xx = SRC_Width / PreHorRatio_xx;
MainHorRatio_xx = ( SRC_Width << 8 ) / ( DST_Width << H_Shift);