---
title: 视频数据获取+VPSS视频处理功能
description: "VPSS必须配合VI模块一起使用，本节介绍其接口调用流程及注意事项。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/aclcppdevg_000066.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/aclcppdevg_000066.html
indexId: ce24d6cf0984f0a9dee16508b97adb40409e124cc536cdee91551800be13b5e670
---
# 视频数据获取+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（Video 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接口完成媒体系统的退出。
