The VISS module does on-the-fly processing on raw pixels captured from camera sensor (via CSI RX module). It also does memory to memory processing (via DDR memory) for data captured from other sources at SoC level. Figure 6-52 is simplified block diagram of VISS top level.
The VISS consists of the following Hardware Accelerators (HWAs):
- RFE (RAW-FE): The RAW Frond End HW block does RAW pixel (that is, Bayer, RCCC, RGBW, etc.) processing on captured image data from sensor and pass-on to NSF4V, GLBCE block, and then to Flexible Color Processing (FCP) HW block for demosaicing and color conversion.
- CAC:
Performs Chromatic aberration correction on Red
and Blue pixels. CAC IP can be bypassed in the
applications where Chromatic aberration correction
is not required.
- NSF4V: Spatial Noise Filter supporting generic
2x2 pixel format with 16-bit pixel size. The NSF4V module can be bypassed in the
applications where visual enhancement is not desired.
- GLBCE: The GLBCE module is used for dynamic range control within image for visual quality. If contrast enhancement on input image is required for visual quality, the RFE output is processed by the NSF4v and GLBCE blocks. Otherwise, the RFE output is bypassed to FCP.
- FCP: The Flexible Color Processing HW receives
data from the GLBCE and does demosaincing and
color conversion. The output of FCP is sent to
VPAC shared memory to be written into DDR for the
rest of the vision processing by programmable
processors (for example, DSP or Arm), or other
Vision HW blocks (for example, DMPAC).
- LSE: The Load and Store Engine is and infrastructure block, which performs the following functions:
- CAL video port: The CSI RX module at SoC level
receives CSI-2 sensor data, extracts pixels and drives the result data
on its video port interface. The video port is mapped onto one of LSE
input interfaces for on-the-fly image processing to reduce DDR bandwidth
and latency. The LSE also provides horizontal and vertical blanking
cycles to allow core data path to settle at proper boundary of line and
frame.
- SL2 memory access: This module supports load/store data from/to SL2 using VBUSM interface. Loaded data from SL2 are passed on to unpacker function of LSE for RFE. Packed data after FCP/H3A processing is written into SL2.
- Pixel pack/unpack: Source data (512-bit) for RFE processing is loaded from SL2 and passed onto unpacker function for pixel extraction. Extracted pixels are driven on to the video port of RFE. Similarly, the FCP produced pixels are passed through packer function for eventual write into SL2. The H3A generated data is pseudo mapped as pixels of 32-bit for packing purpose and directly driven by the RFE.
- Event control: The HTS events are generated at line level. These events are routed to LSE to start the processing. For each consumed line, the HTS needs a task done indication. For some initial lines of image, there would not be any valid data output. Similarly, the H3A generated data will be at paxel/window height number of lines. For initial lines not producing any valid data, the HTS needs to be indicated with separate mask bits for each output streams. For these initial lines, when there is no valid output due to lines delay inside VISS, the LSE still generates mask output to HTS indicating lack of proper output data.