44.6.17 4:2:2 To 4:2:0 Chrominance Vertical Subsampler (SUB420) Module
The chrominance subsampling divides the vertical chrominance sampling rate by two. A vertical low pass filter is applied to avoid aliasing effect. Two different filters are used when the source frame is interlaced, and the filter configuration depends on the field value (the field is propagated in the video pipeline).
The SUB420 module samples the sub422_data[39:0] 40-bit data when sub422_valid is asserted, then it performs a vertical subsampling and generates a valid sub420_data[39:0] 40-bit word and the corresponding sub420_valid signal.
ISC_CFA_CTRL.ENABLE | SUB420_DATA Slice | Value |
---|---|---|
0 | sub420_data[39:0] | sub422_data[39:0] |
1 | sub420_data[39:30] | Y1 = sub422_data[39:30] |
sub420_data[29:20] | Y0 = sub422_data[29:20] | |
sub420_data[19:10] | Cb = filter_ver(sub422[19:10]) | |
sub420_data[9:0] | Cr = filter_ver(sub422[9:0]) |
The vertical filter is a two-tap filter; for progressive content the coefficient i {1, 1}. When an interlaced field is downsampled, the coefficients are different between the top and the bottom fields.
ISC_SUB420_CTRL.FILTER | Field | Filter Configuration |
---|---|---|
0 | progressive | {1, 1} |
1 | 0 (TOP) | {3, 1} |
1 (BOTTOM) | {1, 3} |
SUB420 Input Number of Rows | SUB420 Luminance Rows | SUB420 Chrominance Rows |
---|---|---|
M rows, M odd | M rows | (M+1)/2 rows |
M rows, M even | M rows | M/2 rows |