Skip to main content

hi_mpi_vi_get_dev_bind_pipe

基本概念

  • 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 DEVMIPI RXSLVS-EC
      000
      111
      22X
      33X
    • 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的编号
    02SENSOR_VS0 SENSOR_HS00、1
    12SENSOR_VS1 SENSOR_HS12、3
  • VI功能涉及的缩略语如下:

    表3 缩略语列表

    缩略语全称含义
    VIVideo Input视频输入
    WDRWide Dynamic Range宽动态
    BEBackendISP pipeline中FPN及之后的部分
    FEFrontendISP pipeline中FPN算法之前的部分
    DISDigital Image Stabilization数字防抖
    GMEGlobal Motion Estimation全局运动估计
    GYROGyroscope陀螺仪
    LDCLens Distortion Correction镜头畸变矫正
    MIPIMobile Industry Processor Interface移动行业处理器界面
    LVDSLow-Voltage Differential Signal低压差分信号
    HISPIHigh-Speed Serial Pixel Interface高速串行像素接口
    SLVS-ECScalable Low-Voltage Signaling interface with an Embedded Clock可伸缩的、含嵌入式时钟的低电压信号接口
    IPCIP camera网络摄像机
    DVDigital Visual数字摄像
    PMFPerspective Mapping Function投影变换映射函数
    MPPMedia Processing Platform媒体处理平台
    ISPImage Signal Processor图像信号处理器
    Gyro DISGyroscope 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两个值。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: 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)。

返回值说明

父主题: 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对接。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: VI视频输入功能

hi_mpi_vi_get_dev_attr

函数功能

获取VI设备属性。

约束说明

如果未设置VI设备属性,该接口将返回失败。

函数原型

hi_s32 hi_mpi_vi_get_dev_attr(****hi_vi_dev vi_dev, hi_vi_dev_attr *dev_attr)

参数说明

参数名输入/输出说明
vi_dev输入VI设备号。 取值范围:[0, 4)。
dev_attr输出VI设备属性指针。

返回值说明

父主题: VI视频输入功能

hi_mpi_vi_enable_dev

函数功能

启用VI设备。

约束说明

  • 启用VI设备前,必须先调用hi_mpi_vi_set_dev_attr接口设置设备属性,否则返回失败。
  • 可重复启用VI设备,不返回失败。

函数原型

hi_s32 hi_mpi_vi_enable_dev(****hi_vi_dev vi_dev)

参数说明

参数名输入/输出说明
vi_dev输入VI设备号。 取值范围:[0, 4)。

返回值说明

参考资源

接口调用流程,参见视频数据获取功能

父主题: VI视频输入功能

在线提单