跳到主要内容

hi_mpi_rgn_get_canvas_info

hi_mpi_rgn_get_canvas_info

函数功能

获取区域的显示画布信息。

约束说明

  • 区域必须已创建。
  • 主要用于OVERLAYEX类型导入位图数据 。
  • 本接口用于获取区域对应的画布信息, 在得到画布地址之后,用户可直接对画布进行操作,譬如:将bmp数据直接填写到该画布中。 然后通过调用hi_mpi_rgn_update_canvas接口更新显示画布数据。

函数原型

hi_s32 hi_mpi_rgn_get_canvas_info(hi_rgn_handle handle, hi_rgn_canvas_info *canvas_info)

参数说明

参数名输入/输出说明
handle输入区域句柄号。 取值范围:[0, 1024)。
canvas_info输出区域显示画布信息。

返回值说明

参考资源

接口调用流程,参见视频解码、处理和显示功能(NVR场景)

父主题: Region区域管理

hi_mpi_rgn_update_canvas

函数功能

更新显示画布。

约束说明

  • 区域必须已创建。
  • 本接口配合hi_mpi_rgn_get_canvas_info使用 。 主要用于画布内存数据更新之后,进行画布切换显示。
  • 每次调用本接口前,都必须先获取画布信息,然后在调用本接口进行更新。
  • 本接口仅支持OVERLAYEX类型的区域 。

函数原型

hi_s32 hi_mpi_rgn_update_canvas(hi_rgn_handle handle)

参数说明

参数名输入/输出说明
handle输入区域句柄号。 取值范围:[0, 1024)。

返回值说明

参考资源

接口调用流程,参见视频解码、处理和显示功能(NVR场景)

父主题: Region区域管理

功能说明

VPSS模块接收VI/VDEC模块发送过来的图像,可对图像进行抠图、缩放、鱼眼矫正等处理,并实现同源输出两路不同分辨率的图像数据用于编码、预览或抓拍。

用户可调用hi_mpi_sys_bind接口,将VI/VDEC的视频流绑定到VPSS上,送给VPSS做进一步的处理,VPSS通过组Group以及组上的通道Channel来提供对应的处理能力,最终将图像输出给用户或下级模块(例如VO)。

图1 功能框图

VPSS相关概念说明如下:

  • Group

    VPSS对用户提供组( Group )的概念,各个组通过分时复用方式共享VPSS硬件资源。

  • Channel

    VPSS组的通道,一个VPSS组提供多个通道,每个通道具有独立的缩放、鱼眼矫正等功能。

  • FRC(Frame Rate Control)

    帧率控制,按控制点分为组帧率控制和通道帧率控制。

    • 组帧率控制,在hi_mpi_vpss_create_grp创建组时,可通过帧率控制属性控制各个Group对输入图像的接收。
    • 通道帧率控制,在hi_mpi_vpss_set_chn_attr设置组通道属性时,可通过帧率控制属性控制各个通道图像的处理。
  • CROP

    从图像中裁剪指定区域。

  • 3DNR(Three-dimensional Noise Reduction)

    3D去噪。通过参数配置,把图像中的高斯噪声去除,使得图像变得平滑,有助于降低编码码率。

  • Mosaic

    马赛克,对 VPSS 输出图像在指定区域填充马赛克块。该功能需要配合区域管理功能一起使用。

  • Cover

    视频遮挡区域,对 VPSS的输出图像填充纯色块。 该功能需要配合区域管理功能一起使用。

    遮挡区域坐标类型分为绝对坐标遮挡和相对坐标比例遮挡。

  • Aspect Ratio

    幅形比,指定输出画面相对于输入画面的宽高纵横比。

  • OverlayEx

    视频叠加区域,对 VPSS物理通道的输出图像叠加位图。该功能需要配合区域管理功能一起使用。

  • FISHEYE

    鱼眼矫正功能。

  • Scale

    缩放,对图像进行缩小放大 。 缩放倍数指水平、垂直各缩放多少倍。

父主题: VPSS视频处理功能

约束说明

  • 所有输入和输出分辨率的宽度必须以4像素对齐,高度必须4像素对齐。

  • 视频防抖、畸变矫正下,鱼眼单矫正使用的是内部同一个硬件加速器,该加速器整体规格为4096*2160@45帧,所以仅开启鱼眼单区域矫正时,才能按4096*2160@45满规格运行,否则如果同时开启VI的视频防抖、畸变矫正功能,鱼眼规格降低,预计降一半。

  • VPSS的接口,除chn取流相关的接口(hi_mpi_vpss_get_chn_framehi_mpi_vpss_release_chn_frame)外,其他接口都不支持多线程并发调用。

  • 在不同Group ID范围内的VPSS Group支持能力存在差别,相关的能力如下表所示:

    VPSS Group ID范围能力说明
    Group ID取值在[0, 256)范围内- 不支持3DNR功能。
    - 与区域管理模块配合使用,支持马赛克、Cover、OSD等功能。
    - 支持与VDEC、VO模块绑定,不支持与VI模块绑定(如何绑定请参考hi_mpi_sys_bind接口)。
    - 输入、输出图像所支持处理的最小分辨率为64*64,最大分辨率为4096*8192。
    - 若开启鱼眼矫正,输入图像分辨率约束为:宽在[1920,4096]范围内,高在[1080,8192]范围内。
    - 不开启鱼眼矫正下,VPSS相关Group的整体处理性能规格为1200FPS@1080P。若开启OverlayEx视频叠加区域功能,则对整体性能规格有影响,影响程度取决于该功能的输出图片分辨率。
    - 适用NVR场景,该场景支持多进程调用,具体使用流程请参见视频解码、处理和显示功能(NVR场景)
    Group ID取值在[256, 264)范围内- 支持3DNR功能。
    - 不支持与区域管理模块配合使用。
    - 支持与VI模块绑定,不支持与VDEC、VO模块绑定(如何绑定请参考hi_mpi_sys_bind接口)。
    - 图像所支持处理的宽高有效范围为[64, 16384],包括通过hi_mpi_vpss_set_grp_crop设置的裁剪后的宽高或者通过hi_mpi_vpss_set_chn_attr接口设置的图像输出宽高。当用户调用hi_mpi_vpss_create_grp接口,开启3DNR后,图像宽高需满足如下约束:
    - 不开启3DNR压缩:宽度[64, 16384];高度[64, 8192]。
    - 开启3DNR压缩:宽度[640, 16384];高度[480, 4096]。
    - 若开启鱼眼矫正,输入图像分辨率约束为:宽在[1920,8192]范围内,高在[1080,8192]范围内。
    - VPSS整体处理性能规格为4096*2160@45帧。
    - 适用Camera场景,该场景下VPSS需配套VI接口一起使用,VPSS相关业务必须和VI业务归属在同一个进程中实现,即只允许有一个进程实例在运行,具体使用流程请参见视频数据获取和处理功能(Camera场景)

父主题: VPSS视频处理功能

hi_mpi_vpss_create_grp

函数功能

创建一个VPSS组。

约束说明

  • 不支持重复创建。
  • 如需使能3DNR,则高度不能超过8192,否则将自动bypass 3dnr算法。

函数原型

hi_s32 hi_mpi_vpss_create_grp(hi_vpss_grp grp, const hi_vpss_grp_attr *grp_attr);

参数说明

参数名输入/输出说明
grp输入VPSS组ID。 取值范围:[0, 264)。如果通过hi_mpi_vpss_create_grp接口的hi_vpss_grp_attr.nr_en参数开启3DNR功能,则VPSS组ID的取值范围为:[256, 264)。
grp_attr输入VPSS组属性指针。

返回值说明

参考资源

接口调用流程,参见视频数据获取和处理功能(Camera场景)视频解码、处理和显示功能(NVR场景)

父主题: VPSS视频处理功能

在线提单