功能说明
HI_MIPI_UNRESET_SENSOR
功能描述
撤销复位Sensor。
定义
#define HI_MIPI_UNRESET_SENSOR _IOW(HI_MIPI_IOC_MAGIC, 0x06, sns_rst_source_t)
参数
-
HI_MIPI_IOC_MAGIC:MIPI Rx ioctl命令的幻数。
#define HI_MIPI_IOC_MAGIC m' -
0x06:标识命令字功能,用于复位Sensor。
-
sns_rst_source_t:Sensor复位信号线编号。
返回值
- 0:成功
- -1:失败
父主题: MIPI Rx ioctl命令字
功能说明
视频输入(VI)模块实现的功能:通过MIPI Rx(含MIPI CSI接口、LVDS接口和HISPI接口),SLVS-EC等接口接收视频数据。VI将接收到的数据存入到指定的内存区域,在此过程中,VI可以对接收到的原始视频图像数据进行裁剪、防抖、颜色优化、亮度优化、噪声去除等处理,并输出YUV或RAW格式的图像数据,实现视频数据的获取。
:::note 说明 当前版本仅配套支持MIPI CSI接口以及SLVS-EC接口。 :::
图1 VI功能框图
VI从功能上划分了VI DEV(输入设备)、VI PIPE(图示为物理PIPE,虚拟PIPE只包含ISP_BE)、VI CHN(图示为物理通道)三个层级。各层级所支持的的设备、PIPE、通道数量说明如下:
| - | DEV | PHY_PIPE | VIR_PIPE | PHY_CHN | EXT_CHN |
|---|---|---|---|---|---|
| Atlas 200/500 A2推理产品 | 4 | 4 | 4 | 4 | 0 |
父主题: VI视频输入功能
约束说明
- 最大并发4路接入,总体性能规格为4096W*2160H@45fps。
- 单路视频输入最大分辨率为16384*16384,最小分辨率为120*120。在开启不同功能后,分辨率规格会有额外约束,具体如下:
- 开启视频防抖后,最小分辨率为1280*720,最大分辨率为4096*2160。
- 开启畸变矫正后,最小分辨率为640*480,最大分辨率为8192*8192。
- 开启RAW图压缩功能后,最大分辨率规格为4096*4096。
- 开启RAW图帧压缩功能后,最小分辨率为640*480。
- 当sensor模组直出YUV图像时,仅pipe2和pipe3支持YUV422 8bit位宽图像接入,宽度取值范围[560, 3840],高度取值范围[300, 2160]。
- 所有输入和输出分辨率,宽度必须以4像素对齐,高度必须4像素对齐。
- 支持WDR,最多支持2帧WDR,支持多种WDR时序。
- 支持处理的数据位宽为:8bit、10bit、12bit、14bit。
- VI的接口,除pipe、chn取流相关的接口(hi_mpi_vi_get_pipe_frame、hi_mpi_vi_release_pipe_frame、hi_mpi_vi_pipe_get_buffer、hi_mpi_vi_pipe_release_buffer、hi_mpi_vi_get_chn_frame、hi_mpi_vi_release_chn_frame)外,其他接口都不支持多线程的并发调用;所有接口,都不支持多进程调用。
父主题: VI视频输入功能
基本概念
-
VI设备/PIPE/通道
-
视频输入设备VI DEV
视频输入设备支持若干种时序输入,负责对时序进行解析。
-
视频输入处理VI PIPE
-
视频输入处理物理PIPE
视频输入处理PIPE绑定在视频输入设备后端,负责设备解析后的图像算法处理的ISP FE和ISP BE部分,对图像数据进行流水线处理,输出YUV图像格式给通道。
-
视频输入处理虚拟PIPE
视频输入处理虚拟PIPE不绑定设备,负责其他模块或用户发送过来的数据再处理,不支持PIPE中的ISP_FE,直接从PIPE中的ISP_BE开始。
-
-
视频通道VI CHN
-
视频物理通道PHY_CHN
物理通道负责通过不同的硬件加速单元,实现DIS、LDC等算法处理,并将最终处理后的数据输出到内存中。通道功能框图如下:
:::note 说明 开启DIS、LDC等功能后,需要在调用接口hi_mpi_vi_set_chn_attr时,每个功能额外分配1块VB资源,即chn属性的depth要额外+1。 :::
-
视频扩展通道EXT_CHN
当前版本不支持。
-
-
-
绑定关系
为了将前端的Camera模组视频流通过MIPI接口接入到VI中处理,在芯片板级连线上,首先要满足DEV设备和MIPI 设备之间的绑定约束关系,其次为了软件侧的灵活调度编排,用户可自行配置调整DEV设备和PIPE之间的绑定关系。
-
DEV和MIPI设备的绑定关系
VI DEV与MIPI RX/SLVS-EC设备的绑定关系固定,不可配置。对应关系如下:
表1 VI DEV与MIPI RX/SLVS-EC接口的绑定关系
VI DEV MIPI RX SLVS-EC 0 0 0 1 1 1 2 2 X 3 3 X -
DEV和PIPE的绑定关系
- 每个PIPE都可以与任意Dev通过接口hi_mpi_vi_set_dev_bind_pipe设置绑定关系,且必须在调用接口hi_mpi_vi_create_pipe创建PIPE前绑定,不能动态修改绑定关系。
- 线性模式(非WDR模式)下只需要将一个物理PIPE绑定一个Dev;WDR模式下需要多个物理PIPE绑定同一个Dev,且只有绑定到Dev的第1条物理PIPE的通道有数据输出,其他绑定的物理PIPE的通道没有图像数据输出。例如2合1WDR模式,我们需要将PIPE0、PIPE1绑定到同一个Dev0设备上,只有PIPE0上的通道有数据输出,PIPE1上的通道无数据输出。
-
-
镜头畸变校正(LDC)
镜头畸变校正,一些低端镜头容易产生图像畸变,需要根据畸变程度对其图像进行校正。
-
视频防抖(DIS)
DIS模块通过比较当前图像与前两帧图像采用不同自由度的防抖算法计算出当前图像在各个轴方向上的抖动偏移向量,然后根据抖动偏移向量对当前图像进行校正,从而起到防抖的效果。
-
低延时
低延时指图像写出指定的行数到DDR后,VI上报一个中断,把图像发给后端模块处理,可以减少延时,且硬件会有机制保证图像是先写后读,不会出现读图像错误。ISP_BE后接3DNR、DIS、LDC支持低延时功能。
-
从模式
部分SENSOR需要工作在从模式,此时需要由外部提供行场曝光同步信息,需要使用VI的从模式模块。用户需要根据SENSOR管脚的连线和下表确定使用哪个从模式模块,然后选择对应的物理PIPE号创建物理PIPE,否则会没有数据。
表2 从模式与PIPE的对应关系表
从模式编号 可连接Sensor数目 管脚名称 建议使用PIPE的编号 0 2 SENSOR_VS0 SENSOR_HS0 0、1 1 2 SENSOR_VS1 SENSOR_HS1 2、3 -
VI功能涉及的缩略语如下:
表3 缩略语列表
缩略语 全称 含义 VI Video Input 视频输入 WDR Wide Dynamic Range 宽动态 BE Backend ISP pipeline中FPN及之后的部分 FE Frontend ISP pipeline中FPN算法之前的部分 DIS Digital Image Stabilization 数字防抖 GME Global Motion Estimation 全局运动估计 GYRO Gyroscope 陀螺仪 LDC Lens Distortion Correction 镜头畸变矫正 MIPI Mobile Industry Processor Interface 移动行业处理器界面 LVDS Low-Voltage Differential Signal 低压差分信号 HISPI High-Speed Serial Pixel Interface 高速串行像素接口 SLVS-EC Scalable Low-Voltage Signaling interface with an Embedded Clock 可伸缩的、含嵌入式时钟的低电压信号接口 IPC IP camera 网络摄像机 DV Digital Visual 数字摄像 PMF Perspective Mapping Function 投影变换映射函数 MPP Media Processing Platform 媒体处理平台 ISP Image Signal Processor 图像信号处理器 Gyro DIS Gyroscope Digital Image Stabilization 陀螺仪数字防抖
父主题: VI视频输入功能
hi_mpi_vi_set_dev_bind_pipe
函数功能
一对多设置VI设备与物理PIPE的绑定关系。
约束说明
- 必须在调用hi_mpi_vi_enable_dev接口使用VI设备后、调用hi_mpi_vi_create_pipe接口创建PIPE之前才能调用本接口绑定物理PIPE。
- 不支持绑定已经创建的PIPE。
- 建议将带宽高的VI设备绑定到pipe0或pipe1上。
函数原型
hi_s32 hi_mpi_vi_set_dev_bind_pipe(****hi_vi_dev vi_dev, const hi_vi_dev_bind_pipe *dev_bind_pipe)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_dev | 输入 | VI设备号。 取值范围:[0, 4)。 |
| dev_bind_pipe | 输入 | VI物理PIPE号。 取值范围:[0, 4)。 WDR模式下,设置绑定关系时,必须pipe0和pipe1一组,pipe2和pipe3一组,即将hi_vi_dev_bind_pipe结构体内的num参数设置为2,将hi_vi_dev_bind_pipe结构体内的pipe_id数组内的元素设置为0、1两个值,或者2、3两个值。 |
返回值说明
- 0:成功
- 非0:失败,参见VI视频输入返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: VI视频输入功能
hi_mpi_vi_get_dev_bind_pipe
函数功能
获取VI设备与物理PIPE的绑定关系。
函数原型
hi_s32 hi_mpi_vi_get_dev_bind_pipe(****hi_vi_dev vi_dev, hi_vi_dev_bind_pipe *dev_bind_pipe)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_dev | 输入 | VI设备号。 取值范围:[0, 4)。 |
| dev_bind_pipe | 输出 | VI 物理PIPE号。 取值范围:[0, 4)。 |
返回值说明
- 0:成功
- 非0:失败,参见VI视频输入返回码。
父主题: VI视频输入功能
hi_mpi_vi_set_dev_attr
函数功能
设置VI设备属性。
约束说明
在调用前要保证VI设备处于禁用状态。如果VI设备已处于开启状态,可以使用hi_mpi_vi_disable_dev来禁用设备。
函数原型
hi_s32 hi_mpi_vi_set_dev_attr(hi_vi_dev vi_dev, const hi_vi_dev_attr *dev_attr)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| vi_dev | 输入 | VI设备号。 取值范围:[0, 4)。 |
| dev_attr | 输入 | VI设备属性指针。静态属性。 参数dev_attr主要用来配置指定VI设备的视频接口模式、数据类型、图像宽高等属性,用于与外围sensor对接。 |
返回值说明
- 0:成功
- 非0:失败,参见VI视频输入返回码。
参考资源
接口调用流程,参见视频数据获取功能。
父主题: VI视频输入功能
在线提单