The H3A module supports the control loops for autofocus, auto white balance, and auto exposure by collecting metrics about the imaging/video data. The metrics are used to adjust parameters for processing the imaging/video data. There are two main blocks in the H3A module:
- Autofocus (AF) engine:
The AF submodule extracts and filters the red, green, and blue data from input image data and provides the accumulation or peaks of the data in a specified region. The specified region is a 2D block of data referred to as a paxel. The AF engine supports the following features:
- Peak mode in a paxel: Accumulation of the maximum focus value (FV) of each line in a paxel
- Accumulation mode in a paxel
- Accumulation of horizontal and vertical focus value in a paxel
- Up to 12 paxels in the horizontal direction and up to 12 paxels in the vertical direction with vertical focus
- Up to 36 paxels in the horizontal direction and up to 128 paxels in the vertical direction with horizontal focus only
- Programmable width and height for the paxel/window
- Programmable red, green, and blue position within a 2 × 2 matrix
- Separate horizontal start for paxel and filtering
- Programmable vertical and horizontal line increments within a paxel
- Horizontal FV uses parallel infinite impulse response (IIR) filters configured in a dual-biquad configuration with individual coefficients (two filters with 11 coefficients each). The filters are intended to compute the sharpness/peaks in the frame on which to focus.
- Vertical FV uses a 5-tap FIR filter with 8-bit coefficients. With horizontal steps each paxel has up to 32 columns to be maintained for vertical FV calculation.
- Auto exposure and auto white balance (AE/AWB) engine:
The AE/AWB engine accumulates values and checks for saturated values in a subsampling of the video data. In the case of the AE/AWB, the 2D block of data is referred to as a window. Thus, other than having different names, paxels and windows are essentially the same. However, the numbers, dimensions, and starting positions of AF paxels and AE/AWB windows are programmable separately. AE/AWB supports the following features:
- Accumulate clipped pixels along with all nonsaturated pixels in each window per color
- Accumulate the sum of squared pixels in each window per color
- Minimum and maximum pixel values in each window per color
- Support for up to 36 horizontal windows with sum + { sum_sq or min+max} output
- Support for up to 56 horizontal windows with sum output
- Support for up to 128 vertical windows
- Programmable width and height for the windows. All windows in the frame are the same size.
- Separate vertical start coordinate and height for a black row of paxels that is different than the remaining color paxels
- Programmable horizontal sampling points in a window
- Programmable vertical sampling points in a window
- Maximum pixel throughput of 532 MPix/s
- Double-buffer for paxel/window accumulation
- H3A data path is 10 bits.
- Maximum input size is 2816 pixels.
Figure 9-112 shows the H3A module connections to other submodules of the ISP.