1. Article purpose[edit source]
This article explains how to control the ISP block available within the DCMIPP via the kernel Video4Linux2 (V4L2) framework in Linux® OS context.
2. Short description of DCMIPP ISP[edit source]
2.1. Block diagram[edit source]
The DCMIPP ISP capabilities, instantiated once but common to pipe1 and 2, are the following:
- Statistic removal: to remove unused metadata (like statistics) from received pictures.
- Bad-pixel removal: automatic detection and correction of bad pixels from sensor Array.
- Decimation: one pixel every 1/2/4/8, allows to fit the max 2688 pixels.
- Black level correction: correct black level on each pixels on R/G/B
- Exposure control: amplifies the exposure from 0.0 to 255.99x
- Demosaicing: converts RawBayer to RGB, supports NIR patterns (2x2, 4x4).
- Statistics extract: average R,G,B,L values, dynamic bins.
- Color conversion: color conversion with flexible (fully programmable coefficients)
- Contrast:to enhance the contrast, via luminance.
2.2. The software topology[edit source]
The graph above shows the full media-controller topology of the DCMIPP, including the ISP sub-device dcmipp_main_isp.
In order to match with expected V4L2 mbus format handling, some of the features are controlled via relying on subdev pads formats while some others are implemented via V4L2 subdev controls done directly the dcmipp_main_isp subdev.
Feature / Block | Mapping into dcmipp_main_isp |
---|---|
Statistic removal | crop selection (only top,height fields valids) on the pad[0] (SINK) |
Decimation | compose selection on the pad[0] (SINK) |
Demosaicing | Demosaicing is automatically enabled if the ISP block input format (mbus format on pad[0] (SINK) is a RAW format |
Color Conversion | Depending on the pad[1] (SOURCE) format, color conversion is used to convert from RGB to YUV color format |
2.3. The available controls[edit source]
2.4. The statistic extraction[edit source]
3. Use case examples[edit source]
3.1. Adusting a control[edit source]
4. Debug[edit source]