---
title: 视频数据获取+VPSS视频处理功能
description: "VPSS必须配合VI模块一起使用，接口调用流程说明如下："
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_000034.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_000034.html
indexId: 274d17c60536f0b6a023ee7918525bd14fffd6062348c9801bbfdc682fc46c26104
---
# 视频数据获取+VPSS视频处理功能

VPSS必须配合VI模块一起使用，接口调用流程说明如下：

图1 VPSS调用流程

接口调用流程说明如下：

1. 初始化：

  a. 调用    hi_mpi_sys_init
接口完成媒体系统初始化。
  b. 调用    hi_mpi_rgn_create
创建区域。
  c. VPSS模块只能作为被绑定方，被动接收视频流数据并处理，所以需要调用    hi_mpi_sys_bind
接口，将规划好的VI通道绑定到VPSS组上。
  d. 调用    hi_mpi_vpss_create_grp
接口创建VPSS组，作为    hi_mpi_sys_bind
接口的被绑定方。
  e. 按需开启VPSS上功能：

    - 如果需要做组裁剪，则调用      hi_mpi_vpss_set_grp_crop
接口，设置裁剪相关配置。
    - 如果需要开启3DNR，则除了在      hi_mpi_vpss_create_grp
接口时，打开nr开关并配置nr属性，还可通过      hi_mpi_vpss_set_grp_param
接口设置NR高级参数。
    - 如果需要开启鱼眼矫正，并通过      hi_mpi_vi_set_chn_fisheye
接口中hi_fisheye_attr属性开启了LMF(Lens Map Function)参数功能， 则必须调用      hi_mpi_vpss_set_grp_fisheye_cfg
接口设置LMF参数。
  f. 调用    hi_mpi_vpss_start_grp
接口启用VPSS组。
  g. 调用    hi_mpi_vpss_set_chn_attr
接口设置通道属性，通道输出分辨率可以与输入源分辨率不一致，当不一致时，自动开启缩放，不同通道的缩放能力不一样。
  h. 如果需要开启鱼眼畸变矫正，则还需要调用    hi_mpi_vi_set_chn_fisheye
接口，设置鱼眼矫正参数。
  i. 调用    hi_mpi_vpss_enable_chn
接口启动VPSS通道。
  j. 调用    hi_mpi_rgn_attach_to_chn
接口将区域叠加到VPSS通道上。
2. 采集并处理数据：

  a. 使用MIPI Rx ioctl命令字初始化MIPI/Sensor硬件对接信息，接口调用流程请参见    初始化MIPI/SENSOR硬件对接信息
。
  b. 使用VI（Vedio Input）功能接口初始化VI模块，接口调用流程请参见    初始化VI视频输入模块
。
  c. 使用ISP（Image Signal Processing）系统控制接口初始化并运行ISP模块，接口调用流程请参见    初始化并运行ISP图像信号处理模块
。
  d. 根据    hi_mpi_sys_bind
接口设置的绑定策略，系统内部自动将VI处理后的图像自动传递给VPSS；
  e. 根据VPSS设置的参数，系统内部自动执行裁剪/3dnr/鱼眼矫正/缩放处理。
  f. 按需更新修改区域信息：

    - 设置区域通道显示属性：

      1. 调用        hi_mpi_rgn_get_display_attr
接口获取区域当前的通道显示属性。
      2. 修改通道显示属性结构体重参数，调用        hi_mpi_rgn_set_display_attr
接口设置区域的通道显示属性。
    - 设置区域的显示画布信息：

      1. 调用        hi_mpi_rgn_get_canvas_info
接口获取当前区域的显示画布信息。
      2. 调用        hi_mpi_rgn_update_canvas
接口更新显示画布信息。
3. 获取处理结果数据：
  此时，用户可调用hi_mpi_vpss_get_chn_fd接口获取VPSS指定通道的句柄，并通过select/epoll接口等待VPSS处理结果。VPSS处理完后，会自动唤醒select/epoll等待，此时可调用hi_mpi_vpss_get_chn_frame接口获取VPSS处理后的图像数据，做后续处理，最后调用hi_mpi_vpss_release_chn_frame释放一帧通道图像。

4. 释放VI和VPSS初始化资源。

  a. 使用ISP功能接口释放ISP模块资源，接口调用流程请参见    释放ISP图像信号处理模块资源
。
  b. 使用VI功能接口释放VI模块资源，接口调用流程请参见    释放VI视频输入模块资源
。
  c. 使用MIPI Rx ioctl命令字退出MIPI/Sensor硬件，接口调用流程请参见    退出MIPI/SENSOR硬件
。
  d. 调用    hi_mpi_rgn_detach_from_chn
接口将指定区域从通道中删除。
  e. 调用    hi_mpi_vpss_disable_chn
接口关闭VPSS通道。
  f. 调用    hi_mpi_vpss_stop_grp
接口停止VPSS组。
  g. 调用    hi_mpi_vpss_destroy_grp
接口销毁VPSS组。
  h. 调用    hi_mpi_sys_unbind
接口取消VI和VPSS的绑定。
  i. 调用    hi_mpi_rgn_destroy
接口销毁区域。
  j. 最后调用    hi_mpi_sys_exit
接口完成后媒体系统的退出。
