SIPL Architecture#

The following SIPL architecture diagram shows the relationships between the SIPL framework components. This section only focuses on the device block component and provides detailed information on how to implement the sub-components covered in dark green.

image1

The SIPL framework consists of these components:

  • SIPL Core (libnvsipl.so): The core component of the SIPL framework. It initializes the external devices through the SIPL Device Block component and initializes SIPL Pipeline to capture and process images.

  • SIPL Pipeline (libsipl_pipeline.so): A constituent component of SIPL Core defining image capture and processing sensor pipelines for the SOC platform.

  • SIPL Control (libnvsipl_control.so): Responsible for ISP programming and sensor control.

  • SIPL Device Block Core (libnvsipl_devblk.so): Represents all external devices connected to a single deserializer. A device block is used to power on and initialize its associated external devices.

  • SIPL Device Block Device Driver Interface (DDI) (libnvsipl_devblk_ddi.so): Defines the interface classes between Device Block Core and Device Drivers.

  • SIPL Device Block Camera Device Interface (CDI) (libnvsipl_devblk_cdi.so): Provides a common interface for device drivers to access their hardware.

  • SIPL Device Block Camera Device Drivers (libnvsipl_devblk_drv_*.so): The device driver for a specific camera module.

  • SIPL Query Core (libnvsipl_query.so): Maintains a database of supported external image devices and their properties. It also maintains a database of platform configurations.

  • SIPL Query Drivers (libnvsipl_qry_*.so): The query driver for a specific camera module.

All the components, except device drivers and query drivers, are provided in the DriveOS SDK as prebuilt binaries and cannot be changed. You are responsible for creating new camera device drivers and query drivers for your new camera modules.

The following section discusses the Camera Device Interface (CDI) and Device Driver Interface (DDI), which are used by Camera Device Driver (CDD) directly.