44.6.11 Color Filter Array (CFA) Interpolation Module

In a single-sensor system, each cell on the sensor has a specific color filter and microlens positioned above it. The raw data obtained from the sensor do not have the full R/G/B information at each cell position. Color interpolation is required to retrieve the missing components. The CFA module samples the wb_data[11:0] 12-bit bus when wb_valid is asserted and generates a 36-bit width data bus cfa_data[35:0] with the validity bit cfa_valid.

Figure 44-21. CFA Block Diagram
ISC_CFA_CTRL.ENABLE CFA_DATA Slice Value
0 cfa_data[35:24] wb_data[11:0]
cfa_data[23:12] wb_data[11:0]
cfa_data[11:0] wb_data[11:0]
1 cfa_data[35:24] R = spatial_filter_R(wb_data[11:0])
cfa_data[23:12] G = spatial_filter_G(wb_data[11:0])
cfa_data[11:0] B = spatial_filter_B(wb_data[11:0])

The filter kernel size is 5, and requires two additional lines to initialize the filter. When ISC_CFA_CFG.EITPOL is set, the missing information is interpolated from the nearest neighbor. If ISC_CFA_CFG.EITPOL is cleared, only valid pixels are used to initialize the filter kernel, but the output number of lines is less than the input number of lines. In that case, four lines are consumed to fill the kernel.