S3C2440A RISC MICROPROCESSOR CAMERA INTERFACE
23-17
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.
zo¡
z}¡
{o¡
{}¡
vGp
vGpvGp
vGp
zGk
zGkzGk
zGk
zo¡
z}¡
vGp
vGpvGp
vGp Gp
GpGp
Gp
aG~ov
aG~}v
{o¡
{}¡
zyj~GGdGzo¡
zyjoGdGz}¡
{o¡GdG{o¡jGG{o¡w
kz{~GGdG{o¡
kz{oGdG{}¡
{o¡GdG{o¡jGG{o¡w
kz{~GGdG{o¡
kz{oGdG{}¡
zyj~GGdGzo¡GTGOYGG~ovP
zyjoGGdGz}¡GTGOYGG~}vP
.
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);