专栏算法工具链VIN框架总结

VIN框架总结

TROS.Assist2024-03-06
258
0

VIN简介

VIN(Video Input Node)是基于Linux内核v4l2框架实现的SoC的camera驱动框架。VIN框架的主要功能包括注册/注销、参数读取、与v4l2上层接口、与各device的下层接口、中断处理、buffer申请切换等。

VIN框架的模块包括sensor、actuator和flash等。sensor模块是各个sensor的器件层实现,包括上下电、初始化、各分辨率切换等。

此外,VIN框架还包括对csi接口和mipi接口的控制文件vin-csi和vin-mipi,isp的库操作文件vin-isp,以及video设备操作文件vin-video。

VIN框架还使用了一些自定义的驱动结构体,如vin_md(Video input_media device)和v4l2_device。v4l2_device是整个输入设备的总结构体,充当驱动的管理者以及入口监护人,用于视频输入设备整体的管理。media_device是多媒体设备,用于运行时数据流的管理,嵌入在V4L2 device内部。

地平线J5的 VIN软件架构是一个专门为自动驾驶和AI应用设计的软件框架,旨在提供高效、可靠和灵活的视频输入和处理功能。该框架基于地平线J5芯片的强大计算能力和高度集成的硬件特性,结合了先进的软件设计和优化技术,以支持自动驾驶系统在复杂道路环境中的实时感知和决策。

J5的Sensor接入属于图像处理子系统中的VIN部分,各模块间有结构如下

Description
其中VIN部分主要包括: CAM,MIPI,CIM/CIMDMA,系统结构有如下:
Description
CAM模块是VIN框架中负责摄像头传感器控制和管理的关键组件,它确保了摄像头传感器能够正常工作,并提供高质量的图像数据给VIN框架进行后续处理。

CIM(Camera Interface Module)模块是VIN框架中与摄像头传感器进行通信和交互的关键组件。它通过管理接口、数据传输、时序控制、电源和时钟管理以及错误处理等功能,确保摄像头传感器能够正常工作,并将高质量的图像数据传输给VIN框架进行后续处理。CIMDMA利用直接内存访问(DMA)技术,允许数据在内存和摄像头传感器之间直接传输,而无需CPU的介入,大大提高了数据传输效率和实时性。

典型的vio(Video In/Out (VIN+VPM))使用流程如下:vpm(Video Process Manager )

Description
用户层封装为libvin,其代码仓库位于: hbre/camera

驱动层则由各子模块驱动实现,代码位于kernel: drivers/media/platform/hobot。

libvin内有多个so库,用于灵活适配接入多种Sensor接入场景:

libcam.so – 主体驱动库,封装了mipi,cim/cimdma,lpwm,gpio,i2c等公共模块与架构逻辑。

lib
.so – sensor驱动库,各sensor模组差异化的标准实现,由libcam.so配置调用。
lib
.so – serdes驱动库,各sensor所用serdes的标准实现,由libcam.so配置调用。
lib_
.so – sensor效果库,由tuning调试根据json生成,由vpm库配置被isp库调用。

libvio对libvin与libvpm进行了封装再供用户调用,本文档只涉及libvin本身。

hb_vin_init():初始化cam,包括cmos、mipi、cim/cimdma;

hb_vin_start():启动cam,包括cmos、mipi、cim/cimdma;

配置文件

VIN配置文件说明

Cim/Cimdma配置文件说明

Mipi配置文件说明

MIPI数据格式

YUV

0x18

YUV420 8-bit

0x19

YUV420 10-bit

0x1A

Legacy YUV420 8-bit

0x1B

Reserved

0x1C

YUV420 8-bit (Chroma Shifted Pixel Sampling)

0x1D

YUV420 10-bit (Chroma Shifted Pixel Sampling)

0x1E

YUV422 8-bit

0x1F

YUV422 10-bit

RGB

0x20

RGB444

0x21

RGB555

0x22

RGB565

0x23

RGB666

0x24

RGB888

0x25~0x27

Reserved

RAW

0x28

RAW6

0x29

RAW7

0x2A

RAW8

0x2B

RAW10

0x2C

RAW12

0x2D

RAW14

0x2E~0x2F

Reserved

算法工具链
杂谈
+2
评论0
0/1000