视频处理子系统
概述
VPSS是视频处理子系统。支持对输入图像进行统一预处理,如去噪、去隔行、裁剪等,然后再对各通道分别进行处理,如缩放、加边框等。
支持的具体图像处理功能包括FRC、Crop、3DNR、DEI、IE、LDCI、DCI、LTI/CTI、Cover/CoverEx、Overlay/OverlayEx、Mosaic/MosaicEx、Corner_rect/Corner_rectEx、LineEx、Scale、固定角度旋转、任意角度旋转、鱼眼矫正、LDC、展宽、PMF、FOV、LUT、拼接、获取区域亮度和、低延时、Mirror/Flip、Aspect Ratio、Border、像素格式转换、压缩解压等。
说明:
上述功能仅描述所有方案中存在的功能,不代表每个方案都包含所有功能。其中的英文缩写请参照“缩略语”章节描述。
功能描述
基本概念
-
Group
- VPSS对用户提供组(Group)的概念。最大个数请参考OT_VPSS_MAX_GRP_NUM定义,各Group分时复用VPSS硬件,硬件依次处理各个组提交的任务。
- 如果用到的VPSS Group数量超过128个,则需要修改/etc/profile,在其末尾加上ulimit -HSn 4096,指定系统同时最大可打开文件数为4096。
-
Pipe
VPSS组的输入通道,非拼接场景使用Pipe0,拼接场景其他通道可接收多路数据进行拼接。
-
Channel
VPSS组的输出通道。一个VPSS组提供多个通道,每个通道具有缩放等功能。
-
FRC
帧率控制分为两种:组帧率控制和通道帧率控制。
- 组帧率控制:用于控制各Group对输入图像的接收。
- 通道帧率控制:用于控制各个通道图像的处理。
当VPSS前端绑定的是VI模块时,组上帧率控制使用的是根据time_ref做补偿的帧率控制算法,先还原VI原始帧率再做帧率控制,绑定的是其他模块时,组上帧率控制不考虑time_ref,直接按比例做帧率控制。VPSS通道帧率控制不考虑time_ref。VPSS帧率控制只能减帧,不能增帧。
-
Crop
从图像中裁剪指定区域。裁剪类型分为绝对坐标裁剪和相对比例裁剪。
- 组裁剪,对输入图像做裁剪;
- 物理通道裁剪,对物理通道图像做裁剪;
- 扩展通道裁剪,对扩展通道图像做裁剪。
-
DEI
将交错的隔行视频源还原成逐行视频源。
-
3DNR
3D降噪。通过参数配置,把图像中的高斯噪声去除,使得图像变得平滑,有助于降低编码码率。
-
IE
图像增强。
-
LDCI
基于局域直方图均衡的方法来增强局部的对比度,提升暗区细节,同时对图像中高频进行一定的增强,提升对比度。
-
DCI
对图像进行动态的对比度调节,即在增强图像暗区亮度时不使亮区过亮,或降低亮区亮度时不使暗区过暗。
-
LTI/CTI
图像锐化(Sharpen)。锐化图像的边缘和凸显图像细节,对经过缩放(Scale)后的图像进行频率补偿或增强,使得图像边缘锐利,轮廓清晰。
-
Scale
缩放,对图像进行缩小放大。缩放倍数指水平、垂直各缩放多少倍。
-
Mirror/Flip
Mirror即水平镜像,Flip即上下翻转。可使用Mirror+Flip实现180°旋转。
-
Mosaic
- 马赛克,对VPSS输出图像在指定区域填充马赛克块。
- 马赛克区域宽度要求4像素对齐,马赛克区域部分超出图像时,水平方向软件会自适应向下4对齐裁剪掉超出部分。
-
MosaicEx
马赛克,调用VGS对VPSS物理通道的输出图像指定区域填充马赛克块。
-
Cover
- 视频遮挡区域,对VPSS的输出图像填充纯色块或空心边框。
- 遮挡区域坐标类型分为绝对坐标遮挡和相对坐标比例遮挡。相对坐标的计算是相对输入图像。
-
CoverEx
- 视频遮挡区域,调用VGS对VPSS物理通道的输出图像填充纯色块或空心边框。
- 遮挡区域坐标类型分为绝对坐标遮挡和相对坐标比例遮挡。相对坐标的计算是相对输入图像,不是通道图像,效果与Cover相对坐标类似。
注意:当设置相对坐标比例遮挡时,仅在接口处检查相对坐标参数,由于输入图像宽高变化无法预测,因此不保证最终遮挡区域配置参数始终有效。
-
Overlay
视频叠加区域(OSD),对VPSS输出图像叠加位图。
-
OverlayEx
视频叠加区域,调用VGS对VPSS物理通道的输出图像叠加位图。
-
LineEx
调用VGS对VPSS物理通道的输出图像画线。
-
Corner_rect
在VPSS的输出图像上打角框/实线框。
-
Corner_rectEx
物理通道支持调用VGS在图像上打角框/实线框。
-
获取区域亮度和
获取输入图像或物理通道输出图像指定区域亮度和。
-
鱼眼矫正
支持对图像做鱼眼矫正,支持鱼眼多宫格处理。
-
LDC
对图像做镜头畸变矫正。
-
展宽
支持对图像做展宽处理。
-
PMF
根据PMF矩阵对图像进行映射变换。
-
FOV
根据视场角矩阵对图像进行相应视场角矫正。
-
LUT
根据查找表对图像进行相应变化,可融合两张LUT或串联两张LUT,也可一张LUT与其他GDC功能组合。
-
拼接
支持对多路输入进行横向的硬拼或融合拼接。
-
低延时
- 输入低延时,接收前端模块发送的低延时帧;
- 输出低延时,通道向后端模块发送低延时帧。
-
固定角度旋转
物理通道支持0度、90度、180度以及270度固定角度的旋转功能。
-
任意角度旋转
任意角度旋转功能。
-
Aspect Ratio
幅形比,指定输出画面相对于输入画面的宽高纵横比。
-
Border
边框,VPSS在输出图像加边框。
-
工作模式
VPSS工作模式,分为在线、离线等模式。详见“系统控制”章节。
-
压缩/解压
- 支持通道输出图像进行压缩;支持对输入压缩图像解压;
- 支持3DNR参考帧压缩/解压;
- 紧凑段压缩、参考帧压缩可节省内存,其它压缩不节省内存。所有压缩都能改善带宽占用。
-
像素格式转换
支持设置输出图像的像素格式。
-
备份节点
原始图像的备份节点。每个Group都有一个备份节点,用于备份即将提交硬件处理的原始图像。VPSS在以下情况会将缓存队列头节点的图像放入备份节点:
- 当原始图像要经过VPSS 硬件处理时,VPSS 会将其放入备份节点,并替换掉原有备份的图像。
- 当后端绑定的接收模块要求VPSS 将队头图像放入备份节点时,VPSS 也会替换备份节点中的图像,即使该图像不经过硬件处理。
-
分块
图像超过特定宽度时,分块处理。相应资源数在模块参数中设定。资源数设定需要大于等于实际需要的数量。
-
FMU
支持使用帧存管理单元管理帧存数据,降低媒体数据内存占用,降低端到端延时。
须知:
- Hi3519DV500/Hi3511CV100 Cover、Mosaic、Corner_rect可配置到Group上,所有通道效果相同,也可配置到某个通道上(Cover、Mosaic、Corner_rect都需要在该通道上),其他通道无效果。
- Hi3519DV500/Hi3516CV610/Hi3511CV100 Cover、Mosaic、Corner_rect存在两种或以上类型时,按Mosaic、Cover、Corner_rect的先后顺序处理,即先处理的类型如果和后处理的类型出现重叠,则后处理的类型会覆盖先处理的类型。
- Hi3519DV500/Hi3511CV100打Cover、Mosaic、Corner_rect时总个数不超过12个。
- Hi3519DV500/Hi3511CV100当输入图像宽度不超过4096,并且输出通道宽度超过4096时,若Mosaic的有效块大小为8x8,则配置到该通道上的所有Mosaic都不生效。
- Hi3511CV100当输入图像宽度不超过4096,并且输出通道宽度超过8192时,若Mosaic的有效块大小为16x16,则配置到该通道上的所有Mosaic都不生效。
- Hi3519DV500/Hi3511CV100同一时刻仅允许有一个通道放大;当一个通道进行semi-planar 420转semi-planar 422时,其它通道不能再放大。
- Hi3519DV500/Hi3511CV100输入图像宽度超过4096时分块。
- Hi3516CV610支持在Group上配置Cover,总个数不超过8个。
- Hi3516CV610支持在物理通道0和1上同时配置Cover、Corner_rect,单个物理通道上打Cover、Corner_rect的总个数不超过4个。
- Hi3516CV610仅支持物理通道0进行放大。
- Hi3516CV610输入图像宽度超过3200时分块。
功能描述
VPSS在系统中位置如图1所示。

通过调用SYS模块的绑定接口,可与VPSS/USER/VDEC/VI和VO/VENC/SVP等模块进行绑定,其中前者为VPSS的输入源,后者为VPSS的接收者。用户可通过MPI接口对Group进行管理。每个Group除拼接场景外仅可与一个输入源绑定。
Group的物理通道有两种工作模式:AUTO和USER,两种模式间可动态切换。AUTO模式下各通道仅可与一个接收者绑定,主要用于预览和回放场景下做播放控制。USER模式下各通道可与多个接收者绑定。
需要特别注意:USER模式主要用于对同一通道图像进行多路编码的场景,此模式下播放控制不生效,因此回放场景下不建议使用USER模式。VPSS只有工作在离线模式下才支持AUTO模式。如果绑定VENC使用FMU,在开启OT_VPSS_DIRECT_CHN通道或WRAP通道时,OT_VPSS_CHN0也不支持AUTO模式。
Hi3519DV500/Hi3516CV610功能规格支持参考图1和图2数据流图。
Hi3511CV100功能规格请参考图3。
处理流程



说明:
- Hi3519DV500 VPSS组号在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM - 1]范围内的组调用VGS硬件处理(此类组工作在离线模式),用于解码或VPSS性能不够的场景。单通道输出且不做任何处理时bypass处理,输入输出为同一个VB。此类组有如下限制:
- 不支持3DNR;
- 仅支持3个物理通道;
- 不支持FMU;
- 不支持GDC相关功能;
- bypass处理时无法获取通道亮度和;
- 仅支持同时打8个Corner_rect;
- 输入tile格式时,宽度超过3072不支持通道0裁剪;
- 仅通道0支持段压缩和紧凑段压缩输出。
- VDEC绑定VPSS,VPSS绑定VO场景,如果VPSS组是由VGS硬件处理且做bypass处理时,会将VDEC的私有VB发送给VO,如果需要销毁解码通道,需要调用ss_mpi_vo_clear_chn_buf释放解码VB。
- Hi3519DV500/Hi3511CV100 VPSS支持4个扩展通道,Hi3516CV610 VPSS支持2个扩展通道。扩展通道可以绑定到任意物理通道,图中仅示意性绑定到某个通道。
- 用户设置的通道压缩,指的是VPSS通道最终输出的压缩模式。
- GDC相关流程详情请参考“几何畸变矫正子系统”章节。
输入输出特性
VPSS物理输入特性,如Tableau 1至Tableau 3所示。
表 1 VPSS输入格式特性
说明:
- Tile32x4格式仅支持SP420与单分量模式。
- Tile64x16格式仅支持OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420。
表 2 VPSS输入解压特性
说明:
- Tile32x4格式支持TILE压缩和非压。
- OT_PIXEL_FORMAT_YUV_400在Tile32x4格式时仅支持TILE压缩,不支持非压。
- Hi3519DV500中,Tile64x16格式仅支持非压。
表 3 VPSS输入分辨率
说明:
- 离线模式包含OT_VI_OFFLINE_VPSS_OFFLINE、OT_VI_ONLINE_VPSS_OFFLINE、OT_VI_PARALLEL_VPSS_OFFLINE,即只要VI和VPSS离线。 Hi3519DV500 离线模式仅支持OT_VI_OFFLINE_VPSS_OFFLINE、OT_VI_ONLINE_VPSS_OFFLINE。 Hi3511CV100 离线模式仅支持OT_VI_ONLINE_VPSS_OFFLINE。
- Hi3519DV500/Hi3516CV610/Hi3511CV100 OT_VI_ONLINE_VPSS_ONLINE模式,实际输入分辨率限制取决于前端VI模块。
- Hi3519DV500开启GDC时,输入最小分辨率为120x88,具体请参考"几何畸变矫正子系统"章节。
VPSS物理通道输出特性,如Tableau 4~Tableau 6所示。
表 4 VPSS物理通道输出格式特性
说明:
Hi3516CV610中,输出Tile64x16格式有以下限制:
- 仅支持配合物理通道0旋转对接VENC使用,仅支持固定角度旋转90°/270°。
- 输入/输出像素格式为SP420或者单分量。
- 不支持压缩输出。
- 仅支持通道0输出Tile64x16。
- 输入与输出的最大宽度不超过3200,组Crop后的宽高与物理通道0输出宽高一致,即不支持缩放。
- 不支持开启物理通道0上的Crop,且物理通道0上的Cover、Corner_rect不生效。
- 通道后处理不生效。
- 与低延时、卷绕等功能互斥。
- 不支持mirror、flip。
表 5 VPSS物理通道输出压缩特性
表 6 VPSS物理通道输出分辨率
须知:
- 输入宽高2像素对齐(3DNR 打开时宽要求4像素对齐,DEI打开时要求宽高4像素对齐)。输入linear非压缩图像时,支持奇数分辨率输入。
- 通道写出宽高2像素对齐。
- VPSS调用VGS做旋转时,需要额外申请一块临时buffer,用于存放处理后的图像,因此也需要一次额外读写DDR。
- Hi3519DV500/Hi3511CV100 VPSS物理通道缩小超过15倍时(输入图像宽度大于4096且通道0开启压缩时为14倍),需要额外申请一块临时buffer,buffer宽高均为输出图像的2倍,分配VB Blk时需要考虑相关配置。同时也需要一次额外读写DDR。
- 通过ss_mpi_sys_set_scale_coef_level接口调节缩放效果时,需要考虑VPSS通道缩小倍数超过硬件限制而调用VGS辅助缩小的情况,此时VGS固定缩小2倍,可以反推VPSS的缩放倍数,从而得到缩放范围。
视频处理子系统物理通道在不同压缩场景下的功能限制如Tableau 7所示。
表 7 VPSS物理通道压缩输出时功能限制
VPSS扩展通道输出特性,如Tableau 8~Tableau 10所示。
表 8 VPSS扩展通道输出格式特性
表 9 VPSS扩展通道输出压缩特性
表 10 VPSS扩展通道输出分辨率
须知:
- Hi3519DV500/Hi3511CV100 VPSS输入图像宽度大于4096时不支持紧凑段压缩输入/输出,输出宽度大于4096时不支持紧凑段压缩输出。
- Hi3519DV500/Hi3511CV100 VPSS物理通道仅通道0/1支持段压缩和紧凑段压缩输出。
- Hi3519DV500/Hi3511CV100 VPSS在分块时通道1不支持段压缩输出;如果通道1设置了段压缩输出,输入图像分块时内部会默认将段压缩输出转换为非压缩。
- Hi3519DV500扩展通道可以输出OT_PIXEL_FORMAT_VY1UY0_PACKAGE_422,仅支持对接UVC输出YUY2。
- Hi3516CV610 VPSS仅通道0支持紧凑段压缩输出,且压缩时仅支持对接VENC。
- Hi3516CV610 VPSS在输入图像未分块时,紧凑段压缩输出宽度不支持超过3840;分块时,紧凑段压缩输出宽度不超过4096。
- Hi3511CV100 VPSS输入图像携带可变附属信息时,仅通道0支持输出携带可变附属信息。
API参考
该功能模块为用户提供以下MPI:
- ss_mpi_vpss_set_mod_param:设置VPSS模块参数。
-
ss_mpi_vpss_get_mod_param:获取VPSS模块参数。
-
ss_mpi_vpss_create_grp:创建一个VPSS Group。
- ss_mpi_vpss_destroy_grp:销毁一个VPSS Group。
- ss_mpi_vpss_start_grp:启用VPSS Group。
- ss_mpi_vpss_stop_grp:禁用VPSS Group。
- ss_mpi_vpss_reset_grp:重置VPSS Group。
- ss_mpi_vpss_set_grp_attr:设置VPSS Group属性。
- ss_mpi_vpss_get_grp_attr:获取VPSS Group属性。
- ss_mpi_vpss_set_grp_3dnr_attr:设置VPSS Group 3DNR属性。
- ss_mpi_vpss_get_grp_3dnr_attr:获取VPSS Group 3DNR属性。
- ss_mpi_vpss_set_grp_3dnr_param:设置VPSS Group 3DNR参数。
- ss_mpi_vpss_get_grp_3dnr_param:获取VPSS Group 3DNR参数。
- ss_mpi_vpss_set_grp_param:设置VPSS Group参数。
- ss_mpi_vpss_get_grp_param:获取VPSS Group参数。
- ss_mpi_vpss_set_grp_cfg:设置VPSS Group配置。
- ss_mpi_vpss_get_grp_cfg:获取VPSS Group配置。
- ss_mpi_vpss_set_grp_crop:设置VPSS组CROP参数。
- ss_mpi_vpss_get_grp_crop:获取VPSS组CROP参数。
- ss_mpi_vpss_send_frame:用户向VPSS Group发送数据。
- ss_mpi_vpss_send_frame_ex: 用户向VPSS Group发送数据扩展接口。
- ss_mpi_vpss_get_grp_frame:用户从VPSS Group获取一帧原始图像。
- ss_mpi_vpss_release_grp_frame:用户释放一帧原始图像。
- ss_mpi_vpss_get_grp_frame_ex:用户从VPSS Group获取一帧原始图像扩展接口。
- ss_mpi_vpss_release_grp_frame_ex:用户释放一帧原始图像扩展接口。
- ss_mpi_vpss_enable_backup_frame:使能backup帧。
- ss_mpi_vpss_disable_backup_frame:去使能backup帧。
- ss_mpi_vpss_enable_user_frame_rate_ctrl:VPSS以非绑定方式接收图像时,使能用户自己做帧率控制,如果VPSS通道工作在AUTO模式绑定到VO/VENC,此时VO/VENC的通道帧率控制不生效。
- ss_mpi_vpss_disable_user_frame_rate_ctrl:VPSS以非绑定方式接收图像时,禁止用户自己做帧率控制,此时VO/VENC的通道帧率控制生效。
- ss_mpi_vpss_set_grp_frame_interrupt_attr:设置VPSS在线模式使用的帧中断属性。
- ss_mpi_vpss_get_grp_frame_interrupt_attr:获取VPSS在线模式使用的帧中断属性。
- ss_mpi_vpss_set_chn_attr:设置VPSS物理通道属性。
- ss_mpi_vpss_get_chn_attr:获取VPSS物理通道属性。
- ss_mpi_vpss_enable_chn:启用VPSS通道。
- ss_mpi_vpss_disable_chn:禁用VPSS通道。
- ss_mpi_vpss_set_chn_fmu_mode:设置VPSS通道FMU模式。
- ss_mpi_vpss_get_chn_fmu_mode:获取VPSS通道FMU模式。
- ss_mpi_vpss_set_chn_rotation:设置VPSS物理通道旋转属性。
- ss_mpi_vpss_get_chn_rotation:获取VPSS物理通道旋转属性。
- ss_mpi_vpss_get_chn_frame:用户获取一帧通道图像。
- ss_mpi_vpss_release_chn_frame:用户释放一帧通道图像。
- ss_mpi_vpss_get_chn_rgn_luma:获取通道图像指定区域的亮度总和。
- ss_mpi_vpss_set_chn_crop:设置VPSS通道CROP参数。
- ss_mpi_vpss_get_chn_crop:获取VPSS通道CROP参数。
- ss_mpi_vpss_set_chn_vb_src:设置VPSS通道的VB来源。
- ss_mpi_vpss_get_chn_vb_src:获取VPSS通道的VB来源。
- ss_mpi_vpss_attach_chn_vb_pool:将VPSS的通道绑定到某个视频缓存VB池中。
- ss_mpi_vpss_detach_chn_vb_pool:将VPSS的通道从某个视频缓存VB池中解绑定。
- ss_mpi_vpss_set_chn_low_delay:设置VPSS通道低延时参数。
- ss_mpi_vpss_get_chn_low_delay:获取VPSS通道低延时参数。
- ss_mpi_vpss_set_chn_stride_align:设置VPSS通道输出YUV数据的行stride对齐。
- ss_mpi_vpss_get_chn_stride_align:获取VPSS通道输出YUV数据的行stride对齐。
- ss_mpi_vpss_set_chn_buf_wrap:设置VPSS物理通道卷绕属性。
- ss_mpi_vpss_get_chn_buf_wrap:获取VPSS物理通道卷绕属性。
- ss_mpi_vpss_set_chn_ldc:设置VPSS物理通道镜头畸变矫正(LDC)属性。
- ss_mpi_vpss_get_chn_ldc:获取VPSS物理通道镜头畸变矫正(LDC)属性。
- ss_mpi_vpss_set_ext_chn_attr:设置扩展通道属性。
-
ss_mpi_vpss_get_ext_chn_attr:获取扩展通道属性。
-
ss_mpi_vpss_set_grp_gdc_param:设置VPSS Group GDC参数。
- ss_mpi_vpss_get_grp_gdc_param:获取VPSS Group GDC参数。
- ss_mpi_vpss_set_grp_fisheye_cfg:设置VPSS Group鱼眼镜头LMF参数。
- ss_mpi_vpss_get_grp_fisheye_cfg:获取VPSS Group鱼眼镜头LMF参数。
- ss_mpi_vpss_query_grp_fisheye_pos_dst_to_src:根据VPSS Group鱼眼矫正输出图像坐标点查找源图像坐标点。
- ss_mpi_vpss_query_grp_ldc_pos_dst_to_src:根据VPSS GRP镜头畸变校正(LDC)的输出图像坐标点查找输入图像的坐标点。
- ss_mpi_vpss_query_grp_ldc_pos_src_to_dst:根据VPSS Group镜头畸变校正(LDC)的输入图像坐标点查找输出图像的坐标点。
- ss_mpi_vpss_query_grp_gdc_pos_dst_to_src:根据VPSS GRP任意GDC功能的输出图像坐标点查找输入图像的坐标点。
- ss_mpi_vpss_set_grp_ldc:设置VPSS Group镜头畸变矫正(LDC)属性。
- ss_mpi_vpss_get_grp_ldc:获取VPSS Group镜头畸变矫正(LDC)属性。
- ss_mpi_vpss_set_grp_spread:设置VPSS Group展宽属性。
- ss_mpi_vpss_get_grp_spread:获取VPSS Group展宽属性。
- ss_mpi_vpss_set_grp_fisheye:设置VPSS Group鱼眼属性。
- ss_mpi_vpss_get_grp_fisheye:获取VPSS Group鱼眼属性。
- ss_mpi_vpss_set_grp_rotation:设置VPSS Group旋转属性。
- ss_mpi_vpss_get_grp_rotation:获取VPSS Group旋转属性。
- ss_mpi_vpss_set_grp_pmf:设置VPSS Group PMF属性。
- ss_mpi_vpss_get_grp_pmf:获取VPSS Group PMF属性。
- ss_mpi_vpss_set_grp_fov:设置VPSS Group视场角矫正(FOV)属性。
- ss_mpi_vpss_get_grp_fov:获取VPSS Group视场角矫正(FOV)属性。
- ss_mpi_vpss_set_grp_lut:设置VPSS Group查找表(LUT)属性。
- ss_mpi_vpss_get_grp_lut:获取VPSS Group查找表(LUT)属性。
- ss_mpi_vpss_set_grp_zme:设置VPSS Group缩放属性。
- ss_mpi_vpss_get_grp_zme:获取VPSS Group缩放属性。
- ss_mpi_vpss_set_grp_stitch:设置VPSS Group拼接属性。
- ss_mpi_vpss_get_grp_stitch:获取VPSS Group拼接属性。
- ss_mpi_vpss_set_grp_stitch_blend_param:设置VPSS Group融合拼接融合属性。
-
ss_mpi_vpss_get_grp_stitch_blend_param:获取VPSS Group融合拼接融合属性。
-
ss_mpi_vpss_get_chn_fd:获取VPSS通道对应的设备文件句柄。
- ss_mpi_vpss_set_chn_scale_coef_type:设置VPSS通道上的缩放系数类型。
- ss_mpi_vpss_get_chn_scale_coef_type:获取VPSS通道上的缩放系数类型。
- ss_mpi_vpss_start_grp_stitch_luma_sync:启动VPSS GRP拼接亮度同步。
- ss_mpi_vpss_stop_grp_stitch_luma_sync:停止VPSS GRP拼接亮度同步。
- ss_mpi_vpss_set_grp_zoom_in_window:设置VPSS GRP 裁剪放大属性。
- ss_mpi_vpss_get_grp_zoom_in_window:获取VPSS GRP 裁剪放大属性。
- ss_mpi_vpss_set_grp_svc_param:设置VPSS Group的SVC参数。
- ss_mpi_vpss_get_grp_svc_param:获取VPSS Group的SVC参数。
- ss_mpi_vpss_get_grp_rgn_luma:获取指定 VPSS Group 输入图像区域的亮度总和以及获取的图像的宽高信息。
- ss_mpi_vpss_set_grp_delay:设置延迟启动VPSS处理的延时队列长度。
- ss_mpi_vpss_get_grp_delay:获取延迟启动VPSS处理的延时队列长度。
- ss_mpi_vpss_set_chn_sharpen:设置通道Sharpen参数。
- ss_mpi_vpss_get_chn_sharpen:获取通道Sharpen参数。
- ss_mpi_vpss_set_chn_cfg:设置VPSS通道上的静态配置。
- ss_mpi_vpss_get_chn_cfg:获取VPSS通道上的静态配置。
ss_mpi_vpss_set_mod_param
【描述】
设置VPSS模块参数。
【语法】
【参数】
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 此接口只有在未创建任何组时才能调用。
- 相关参数说明参考ot_vpss_mod_param结构体。
- 请务必先调用ss_mpi_vpss_get_mod_param获取当前参数,再进行设置操作。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_mod_param
【描述】
获取VPSS模块参数。
【语法】
【参数】
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
无。
【举例】
无。
【相关主题】
ss_mpi_vpss_create_grp
【描述】
创建一个VPSS Group。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 不支持重复创建。
- 具体功能限制参考结构体ot_vpss_grp_attr说明。
- Hi3519DV500 OT_VI_ONLINE_VPSS_ONLINE模式仅支持创建组0和组号在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM - 1]范围内的组。
- Hi3511CV100 OT_VI_ONLINE_VPSS_ONLINE模式仅支持创建组0。
【举例】
td_s32 ret = TD_SUCCESS;
ot_vpss_grp grp = 0;
ot_vpss_chn chn = OT_VPSS_CHN0;
ot_vpss_grp_attr grp_attr = {0};
ot_vpss_chn_attr chn_attr = {0};
ot_vpss_crop_info crop_info;
grp_attr.frame_rate.src_frame_rate = -1;
grp_attr.frame_rate.dst_frame_rate = -1;
grp_attr.pixel_format = OT_PIXEL_FORMAT_YVU_SEMIPLANAR_420;
grp_attr.max_width = 1920;
grp_attr.max_height = 1080;
ret = ss_mpi_vpss_create_grp(grp, &grp_attr);
if(ret != TD_SUCCESS){
return ret;
}
ret = ss_mpi_vpss_reset_grp(grp);
if(ret != TD_SUCCESS){
return ret;
}
crop_info.enable = TD_TRUE;
crop_info.crop_mode = OT_COORD_ABS;
crop_info.crop_rect.x = 200;
crop_info.crop_rect.y = 300;
crop_info.crop_rect.width = 960;
crop_info.crop_rect.height = 540;
ret = ss_mpi_vpss_set_grp_crop(grp, &crop_info);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_get_grp_crop(grp, &crop_info);
if(ret != TD_SUCCESS) {
return ret;
}
memset(&chn_attr, 0, sizeof(ot_vpss_chn_attr));
chn_attr.chn_mode = OT_VPSS_CHN_MODE_AUTO;
chn_attr.compress_mode = OT_COMPRESS_MODE_NONE;
chn_attr.pixel_format = OT_PIXEL_FORMAT_YUV_SEMIPLANAR_420;
chn_attr.width = 960;
chn_attr.height = 540;
chn_attr.frame_rate.src_frame_rate = -1;
chn_attr.frame_rate.dst_frame_rate = -1;
ret = ss_mpi_vpss_set_chn_attr(grp, chn, &chn_attr);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_get_chn_attr(grp, chn,&chn_attr);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_enable_chn(grp, chn);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_start_grp(grp);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_stop_grp(grp);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_disable_chn(grp, chn);
if(ret != TD_SUCCESS) {
return ret;
}
ret = ss_mpi_vpss_destroy_grp (grp);
if(ret != TD_SUCCESS) {
return ret;
}
【相关主题】
- ss_mpi_vpss_set_grp_attr
- ss_mpi_vpss_get_grp_attr
- ss_mpi_vpss_start_grp
- ss_mpi_vpss_stop_grp
- ss_mpi_vpss_destroy_grp
- ss_mpi_vpss_reset_grp
- ss_mpi_vpss_set_chn_attr
- ss_mpi_vpss_enable_chn
- ss_mpi_vpss_disable_chn
- ss_mpi_vpss_set_grp_crop
- ss_mpi_vpss_get_grp_crop
ss_mpi_vpss_destroy_grp
【描述】
销毁一个VPSS组。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用此接口之前,必须先调用ss_mpi_vpss_stop_grp禁用此Group。
- 调用此接口时,会一直等待此Group当前任务处理结束才会真正销毁。
- Hi3519DV500 OT_VI_ONLINE_VPSS_ONLINE模式且非OT_FMU_MODE_OFF模式写出时,grp0支持快速销毁组,即不disable通道,stop grp后直接destroy,用于场景快速切换。此时若低延时写出,后端绑定VENC时,会丢掉异常的帧,绑定其他模块则可能导致帧图像异常;若disable通道,则会等待启动的帧完成,才会真正销毁,一般会延迟2~3帧的时间。
【举例】
【相关主题】
ss_mpi_vpss_start_grp
【描述】
启用VPSS Group。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 重复调用该函数设置同一个组返回成功。
【举例】
【相关主题】
ss_mpi_vpss_stop_grp
【描述】
禁用VPSS Group。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 重复禁用同一VPSS Group返回成功。
【举例】
【相关主题】
ss_mpi_vpss_reset_grp
【描述】
复位VPSS Group。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
【相关主题】
无。
ss_mpi_vpss_set_grp_attr
【描述】
设置VPSS Group属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Group属性必须合法,其中部分静态属性不可动态设置。具体功能限制请参考ot_vpss_grp_attr。
【举例】
【相关主题】
ss_mpi_vpss_get_grp_attr
【描述】
获取VPSS Group属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
【相关主题】
ss_mpi_vpss_set_grp_3dnr_attr
【描述】
设置VPSS Group 3DNR属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 3DNR属性必须合法,详细限制请参考“系统控制”章节。
- 开3DNR时,压缩格式只支持帧压缩和非压,而且压缩方式不能动态改变。
- nr_type是静态属性,不支持动态修改。可在关闭3DNR后再重新打开时修改。
- motion_denoise开启时,nr_type需要设置OT_NR_TYPE_VIDEO_NORM。
-
对于Hi3519DV500如下因素会导致当前处理的图像3DNR功能暂时关闭:
- VPSS输入图像的宽高改变
- VPSS输入图像的压缩模式改变
- 组裁剪宽高改变
- 输入压缩图像时组裁剪x坐标改变
- 分块场景,通道0输出图像宽度改变
- 分块场景,对于支持幅形比的解决方案,通道0幅形比参数改变(模式、x坐标、宽度、高度)
- 分块场景,通道0压缩模式改变
- 分块场景,通道0输出压缩时 mirror使能改变
-
当使能3DNR时,Hi3519DV500输入压缩图像要求宽高4像素对齐,如果输入非4对齐,内部自适应裁剪到4对齐。
- Hi3519DV500开启3DNR时只支持输入OT_VIDEO_FORMAT_LINEAR/OT_VIDEO_FORMAT_TILE_32x4,不支持OT_VIDEO_FORMAT_TILE_64x16格式。
- 3DNR开关打开时,会分配3DNR功能需要的内存,3DNR关闭时,相应的内存会被释放。
- 调用该接口前需要先调用ss_mpi_sys_set_3dnr_pos接口将3DNR位置配置到vpss,否则调用该接口返回失败。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无
【相关主题】
- ss_mpi_vpss_create_grp
- ss_mpi_sys_set_3dnr_pos
ss_mpi_vpss_get_grp_3dnr_attr
【描述】
获取VPSS Group 3DNR属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前需要先调用ss_mpi_sys_set_3dnr_pos接口将3DNR位置配置到vpss,否则调用该接口返回失败。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无
【相关主题】
- ss_mpi_vpss_create_grp
- ss_mpi_sys_set_3dnr_pos
ss_mpi_vpss_set_grp_3dnr_param
【描述】
设置VPSS Group 3DNR参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 3DNR参数必须合法,各成员取值功能限制及3DNR调试指导请参考“系统控制”章节ot_3dnr_param 结构体说明。
- 建议先调用ss_mpi_vpss_get_grp_3dnr_param获取当前参数,再进行设置操作。
- 调用该接口前需要先调用ss_mpi_sys_set_3dnr_pos接口将3DNR位置配置到vpss,否则调用该接口返回失败。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无
【相关主题】
- ss_mpi_vpss_create_grp
- ss_mpi_sys_set_3dnr_pos
ss_mpi_vpss_get_grp_3dnr_param
【描述】
获取VPSS Group 3DNR参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前需要先调用ss_mpi_sys_set_3dnr_pos接口将3DNR位置配置到vpss,否则调用该接口返回失败。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无
【相关主题】
- ss_mpi_vpss_create_grp
- ss_mpi_sys_set_3dnr_pos
ss_mpi_vpss_set_grp_param
【描述】
设置VPSS Group 参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,其值为错误码。 |
【需求】
头文件:ot_common_vpss.h、ss_mpi_vpss.h
库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 请务必先调用ss_mpi_vpss_get_grp_param获取当前参数,再进行设置操作。
- Hi3519DV500/Hi3516DV500/Hi3516CV610/Hi3511CV100不支持调用该接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_param
【描述】
获取VPSS Group 参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,其值为错误码。 |
【需求】
头文件:ot_common_vpss.h、ss_mpi_vpss.h
库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3519DV500/Hi3516DV500/Hi3516CV610/Hi3511CV100不支持调用该接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_cfg
【描述】
设置VPSS Group 静态配置。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,其值为错误码。 |
【需求】
头文件:ot_common_vpss.h、ss_mpi_vpss.h
库文件:libss_mpi.a
【注意】
- Group必须未创建。
- 各成员取值功能限制请参考 ot_vpss_grp_cfg结构说明。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_cfg
【描述】
获取VPSS Group 静态配置。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,其值为错误码。 |
【需求】
头文件:ot_common_vpss.h、ss_mpi_vpss.h
库文件:libss_mpi.a
【注意】
无。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_crop
【描述】
设置VPSS组CROP参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值及功能限制参考ot_vpss_crop_info结构体说明。
- 裁剪区域的宽高不能小于VPSS支持的最小输入分辨率,不能超过VPSS支持的最大输入分辨率;如果裁剪宽度大于输入图像宽度,则裁剪输出宽度调整为输入图像宽度;如果裁剪高度大于输入图像高度,则裁剪输出高度调整为输入图像高度;裁剪区域起始点不支持负坐标,裁剪区域右边界不能超出VPSS支持的最大输入宽度,裁剪区域下边界不能超出VPSS支持的最大输入高度。
- Hi3519DV500裁剪区域超出图像范围,裁剪坐标向原点方向移动,优先保证裁剪出的宽高与所设置的参数相同。
- Hi3516CV610/Hi3511CV100裁剪区域超出图像范围,丢弃超出部分图像,优先保证裁剪坐标与所设置的参数相同。
- Hi3519DV500/Hi3511CV100仅离线模式支持组裁剪功能。
- Hi3516CV610位于离线模式或OT_VI_OFFLINE_VPSS_ONLINE模式时支持组裁剪功能;当位于OT_VI_OFFLINE_VPSS_ONLINE模式时,输入分块情况下则不支持组裁剪功能。
- Hi3516CV610位于OT_VI_OFFLINE_VPSS_ONLINE模式时,使用组裁剪对性能有影响,尤其是组裁剪之后通道0放大的场景(Hi3516CV610-10B/Hi3516CV608组裁剪范围不建议小于1080P)。
- FMU帧(VI FMU模式写出绑定VPSS)不支持Group裁剪。
- 鱼眼多区域或拼接不支持Group裁剪。
【举例】
【相关主题】
- ss_mpi_vpss_create_grp
- ot_coord
- ot_vpss_crop_info
ss_mpi_vpss_get_grp_crop
【描述】
获取VPSS组CROP参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
无
【举例】
【相关主题】
ss_mpi_vpss_send_frame
【描述】
用户向VPSS发送数据。
【语法】
td_s32 ss_mpi_vpss_send_frame(ot_vpss_grp grp, const ot_video_frame_info *frame_info, td_s32 milli_sec);
【参数】
超时参数milli_sec设为-1时,为阻塞接口;0时为非阻塞接口;大于0时为超时等待时间,超时时间的单位为毫秒(ms)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 用户使用此接口时,可以自行进行帧率控制。
- VPSS通道设置为AUTO 模式时使用此接口前,VPSS应正常启动,并与后端接收者绑定;或VPSS通道设置为USER模式,用户通过获取图像接口获取图像。
- 输入为压缩时,宽高对齐要求与"输入输出特性"章节中保持一致。输入为非压缩时,会自动向下裁剪对齐。
- 仅离线模式支持此接口。
- 如果送给VPSS的帧是用户自己构建,不是从某个模块获取而来,需要将ot_video_frame中的frame_flag初始化为0。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_send_frame_ex
【描述】
用户向VPSS发送数据扩展接口。
【语法】
td_s32 ss_mpi_vpss_send_frame_ex(ot_vpss_grp grp, ot_vpss_grp_pipe pipe, const ot_video_frame_info *frame_info, td_s32 milli_sec);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_GRP_PIPE_NUM) |
||
超时参数milli_sec设为-1时,为阻塞接口;0时为非阻塞接口;大于0时为超时等待时间,超时时间的单位为毫秒(ms)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- pipe为0时,功能与ss_mpi_vpss_send_frame接口一致。
- pipe不为0时,仅在开启拼接功能时使用,且pipe需小于拼接参数中的pipe_num。
- VPSS通道设置为AUTO 模式时使用此接口前,VPSS应正常启动,并与后端接收者绑定;或VPSS通道设置为USER模式,用户通过获取图像接口获取图像。
- 用户使用此接口时,可以自行进行帧率控制。
- 输入为压缩时,宽高对齐要求与"输入输出特性"章节中保持一致。输入为非压缩时,会自动向下裁剪对齐。
- 仅离线模式支持此接口。
- 如果送给VPSS的帧是用户自己构建,不是从某个模块获取而来,需要将ot_video_frame中的frame_flag初始化为0。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_get_grp_frame
【描述】
用户从Group获取一帧原始图像。主要应用场景:高清设备解码回放,要求暂停、步进时,PIP层和普通视频层上的两个通道显示同一帧图像。通过本接口和ss_mpi_vpss_send_frame等接口的配合使用,可实现该功能。
【语法】
td_s32 ss_mpi_vpss_get_grp_frame(ot_vpss_grp grp, ot_video_frame_info *frame_info, td_s32 milli_sec)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
||
超时时间,如果milli_sec设置为-1,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec设置为0,表示非阻塞模式,不管是否获取到图像,立即返回。如果milli_sec设置大于0,表示超时等待模式,参数的单位是毫秒(ms),指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建且使能,且必须要有通道使能。
- 获取的图像要及时释放,否则将造成VB不够或解码回放时停止,建议与ss_mpi_vpss_release_grp_frame接口配对使用。
- 使能了backup帧时获取的是backup帧,否则获取的是当前帧。
- 仅离线模式支持此功能。
- 不支持获取FMU帧。
【举例】
无。
【相关主题】
ss_mpi_vpss_release_grp_frame
【描述】
用户释放一帧源图像。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 实际上,此接口的grp参数并无实际用途,可在取值范围内任意设置。
- 此接口需与ss_mpi_vpss_get_grp_frame配对使用。
- 仅离线模式支持此功能。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_frame_ex
【描述】
用户从Group获取一帧原始图像扩展接口。主要应用场景:获取拼接场景多pipe的原始图像。
【语法】
td_s32 ss_mpi_vpss_get_grp_frame_ex(ot_vpss_grp grp, ot_vpss_grp_pipe pipe, ot_video_frame_info *frame_info, td_s32 milli_sec)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_GRP_PIPE_NUM) |
||
超时时间,如果milli_sec设置为-1,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec设置为0,表示非阻塞模式,不管是否获取到图像,立即返回。如果milli_sec设置大于0,表示超时等待模式,参数的单位是毫秒(ms),指超时时间,在此时间内如果没有获取到图像,则超时返回。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建且使能,且必须要有通道使能。
- pipe为0时,功能与ss_mpi_vpss_get_grp_frame接口相同
- pipe不为0时,仅在开启拼接功能时使用,且pipe需小于拼接参数中的pipe_num。
- 获取的图像要及时释放,否则将造成VB不够或解码回放时停止,建议与ss_mpi_vpss_release_grp_frame_ex接口配对使用。
- 使能了backup帧时获取的是backup帧,否则获取的是当前帧。
- 仅离线模式支持此功能。
- 不支持获取FMU帧
【举例】
无。
【相关主题】
ss_mpi_vpss_release_grp_frame_ex
ss_mpi_vpss_release_grp_frame_ex
【描述】
用户释放一帧源图像扩展接口。
【语法】
td_s32 ss_mpi_vpss_release_grp_frame_ex(ot_vpss_grp grp, ot_vpss_grp_pipe pipe, const ot_video_frame_info *frame_info)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_GRP_PIPE_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 实际上,此接口的grp参数与pipe参数并无实际用途,可在取值范围内任意设置。
- 此接口需与ss_mpi_vpss_get_grp_frame_ex配对使用。
- 仅离线模式支持此功能。
【举例】
无。
【相关主题】
ss_mpi_vpss_enable_backup_frame
【描述】
使能Backup帧。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅离线模式支持此功能。
- 使能Backup时,会多占用一个VB。
- 默认没有使能Backup,此时会影响VO 的画面切换、播放控制等功能,如需使用对应功能,需要使能Backup。
- Hi3519DV500/Hi3516DV500/Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_disable_backup_frame
【描述】
去使能Backup帧。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅离线模式支持此功能。
- Hi3519DV500/Hi3516DV500/Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_enable_user_frame_rate_ctrl
【描述】
VPSS以非绑定方式接收图像时,使能用户自己做帧率控制,如果VPSS通道工作在AUTO模式绑定到VO/VENC,此时VO/VENC的通道帧率控制不生效。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 多次使能返回成功。
- Group必须已创建。
- 此接口仅在VPSS通过接口ss_mpi_vpss_send_frame或ss_mpi_vpss_send_frame_ex接收图像时,使能用户自己做帧率控制,如果VPSS通道工作在AUTO模式绑定到VO,此时VO的通道帧率控制不生效。
- 使能用户自己做帧率控制时,如果VPSS通道工作在AUTO模式并绑定到VENC,此时则VENC通道的帧率控制不生效,VENC通道不收帧。如要使用VPSS通道AUTO模式绑定到VENC并开启VENC通道帧率控制,需要先关闭用户自己做帧率控制,再开启VENC通道帧率控制。
- VPSS通过接口ss_mpi_vpss_send_frame或ss_mpi_vpss_send_frame_ex接收图像时,默认使能用户自己做帧率控制。
- Hi3516CV610不支持此接口。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_disable_user_frame_rate_ctrl
【描述】
VPSS以非绑定方式接收图像时,禁止用户自己做帧率控制,此时VO/VENC的通道帧率控制生效。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 重复禁用返回成功。
- Group必须已创建。
- 此接口仅在VPSS通过接口ss_mpi_vpss_send_frame或ss_mpi_vpss_send_frame_ex接收图像时,禁止用户自己做帧率控制,此时VO/VENC的通道帧率控制生效。
- 禁止用户自己做帧率控制时,VO/VENC通道帧率控制仅在VPSS为AUTO模式下生效,如果VPSS为USER模式,要求VPSS通道要绑定到某个模块,或者及时取走通道队列中的图像,否则VPSS接收图像会失败。
- Hi3516CV610不支持此接口。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_set_grp_frame_interrupt_attr
【描述】
设置VPSS在线模式使用的帧中断属性。
【语法】
td_s32 ss_mpi_vpss_set_grp_frame_interrupt_attr(ot_vpss_grp grp, const ot_frame_interrupt_attr *frame_interrupt_attr);
【参数】
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- VPSS组号必须为0。
- 仅OT_VI_ONLINE_VPSS_ONLINE模式下有效。
- 该接口需要在设置ss_mpi_sys_init之后调用。
- 修改中断模式时必须先关闭所有物理通道。
- 仅支持OT_FRAME_INTERRUPT_START、OT_FRAME_INTERRUPT_EARLY和OT_FRAME_INTERRUPT_EARLY_END三种类型。OT_FRAME_INTERRUPT_EARLY模式,VPSS在延时中断上报时发送图像,如果后端接收模块处理速度比VPSS处理要快,可能会出现花屏、解压错误等问题。三种中断类型的优缺点如表1所示。
- early_line用于设置VPSS硬件采集多少行后上报延时中断。
- Hi3516CV610开启通道0卷绕时,仅支持OT_FRAME_INTERRUPT_START和OT_FRAME_INTERRUPT_EARLY_END两种类型,同时需要将early_line设置为组属性最大高度的一半。
- Hi3511CV100仅支持OT_FRAME_INTERRUPT_START和OT_FRAME_INTERRUPT_EARLY_END两种类型。
表 1 VPSS在线中断类型的优缺点
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_frame_interrupt_attr
ss_mpi_vpss_get_grp_frame_interrupt_attr
【描述】
获取VPSS在线模式使用的帧中断属性。
【语法】
td_s32 ss_mpi_vpss_get_grp_frame_interrupt_attr(ot_vpss_grp grp, ot_frame_interrupt_attr *frame_interrupt_attr);
【参数】
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- VPSS组号必须为0。
- 该接口需要在设置ss_mpi_sys_init之后调用。
- 默认为OT_FRAME_INTERRUPT_START模式,延时行号为0;销毁组后会将帧中断属性重置为默认状态。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_frame_interrupt_attr
ss_mpi_vpss_set_chn_attr
【描述】
设置VPSS物理通道属性。
【语法】
td_s32 ss_mpi_vpss_set_chn_attr(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_chn_attr *chn_attr);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM)或OT_VPSS_DIRECT_CHN |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值及功能限制参考ot_vpss_chn_attr结构体说明。
- 通道0与通道OT_VPSS_DIRECT_CHN复用大部分通道属性,除通道帧率控制属性外,后配置的通道会覆盖之前的配置。
- 通道OT_VPSS_DIRECT_CHN无数据存储格式,配置以后只对通道0生效,相关proc信息按线性非压展示。
- grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内时,chn不能为OT_VPSS_DIRECT_CHN。
- 任意Group的通道0在第一次设置为压缩输出且通道fmu模式为OT_FMU_MODE_WRAP成功时,会分配压缩头内存空间,通过"cat /proc/umap/media-mem"命令查看名为"fmu1_cmp_head"的信息查看内存占用大小,该内存所有卷绕压缩输出的Group复用。该内存在系统退出时释放。
【举例】
【相关主题】
ss_mpi_vpss_get_chn_attr
【描述】
获取VPSS物理通道属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM)或OT_VPSS_DIRECT_CHN |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 通道0与通道OT_VPSS_DIRECT_CHN获取的通道属性除帧率控制参数外都相同。
- grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内时,chn不能为OT_VPSS_DIRECT_CHN。
【举例】
【相关主题】
ss_mpi_vpss_enable_chn
【描述】
启用VPSS通道。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM)或OT_VPSS_DIRECT_CHN |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 多次使能返回成功。
- Group必须已创建。
- grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内时,chn不能为OT_VPSS_DIRECT_CHN。
- 通道OT_VPSS_DIRECT_CHN为独立通道,仅可1绑1对接H.264/H.265编码。
- 通道0输出分辨率小于114x114时,不支持使能通道OT_VPSS_DIRECT_CHN。
-
开启通道OT_VPSS_DIRECT_CHN时,存在如下限制:
- 必须输入Tile32x4格式图像或打开GDC相关功能。
- cover/mosaic/corner_rect效果与通道0相同,无论通道0是否开启,即不支持将cover/mosaic/corner_rect调用region接口attach到通道OT_VPSS_DIRECT_CHN上。
- 通道0与通道OT_VPSS_DIRECT_CHN不支持缩放,其他通道不支持放大。
- 通道0与通道OT_VPSS_DIRECT_CHN不支持幅形比。
-
其他约束参考表1。
【举例】
【相关主题】
ss_mpi_vpss_disable_chn
【描述】
禁用VPSS通道。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM)或OT_VPSS_DIRECT_CHN |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 重复禁用返回成功。
- Group必须已创建。
- grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内时,chn不能为OT_VPSS_DIRECT_CHN。
【举例】
【相关主题】
ss_mpi_vpss_set_chn_fmu_mode
【描述】
设置VPSS通道FMU模式。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM)或OT_VPSS_DIRECT_CHN |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 通道必须处于disable状态才可修改FMU模式。
- 任意Group的通道0在第一次通道fmu模式为OT_FMU_MODE_WRAP且为压缩输出成功时,会分配压缩头内存空间,通过"cat /proc/umap/media-mem"命令查看名为"fmu1_cmp_head"的信息查看内存占用大小,该内存所有卷绕压缩输出的Group复用。该内存在系统退出时释放。
- OT_FMU_MODE_WRAP模式可1绑1对接H.264/H.265/JPEG/MJPEG编码;在开启DIRECT通道时,仅支持1绑1对接JPEG/MJPEG编码;在不开DIRECT通道时,可1绑2对接H.264/H.265编码与JPEG/MJPEG编码。
- OT_FMU_MODE_WRAP和OT_FMU_MODE_DIRECT模式通道帧率受VENC影响,如VENC减帧控制时,VPSS对应的通道也不写出。
- 不支持FMU grp和非FMU grp同时存在,即如果存在grp未开启通道OT_VPSS_DIRECT_CHN,也没有通道配置为OT_FMU_MODE_OFF之外的模式,同时存在grp开启通道OT_VPSS_DIRECT_CHN或通道配置为OT_FMU_MODE_OFF之外的模式,则logmpp报错,图像不能正常处理。
- Hi3516CV610/Hi3511CV100不支持此接口。
-
其他约束参考表1。
表 1 FMU模式限制
通道后处理(overlayEx、lineEx、mosaicEx、coverEx、CornerEx、通道亮度和、扩展通道)
注:OT_VPSS_DIRECT_CHN开启时,OT_VPSS_CHN0不允许缩放(原图输出),同时其他通道不允许放大
注:OT_VPSS_DIRECT_CHN开启时,输入与输出通道都不支持SP422
注:OT_VPSS_DIRECT_CHN通道与所有通道mirror互斥
注:OT_VPSS_DIRECT_CHN通道与所有通道flip互斥
注:OT_VPSS_DIRECT_CHN开启时,所有通道不支持紧凑段压缩输出
注:OT_VPSS_DIRECT_CHN开启时,OT_VPSS_CHN0也不支持AUTO模式
【举例】
无
【相关主题】
ss_mpi_vpss_get_chn_fmu_mode
【描述】
获取VPSS通道FMU模式。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM)或OT_VPSS_DIRECT_CHN |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内时,chn不能为OT_VPSS_DIRECT_CHN。
- chn为OT_VPSS_DIRECT_CHN时,获取到的fmu模式固定为OT_FMU_MODE_DIRECT。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无
【相关主题】
ss_mpi_vpss_set_chn_rotation
【描述】
设置VPSS物理通道旋转属性。
【语法】
td_s32 ss_mpi_vpss_set_chn_rotation(ot_vpss_grp grp, ot_vpss_chn chn, const ot_rotation_attr *rotation_attr)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM)。 |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 通道属性必须已设置。
- 固定角度旋转90度、270度时仅支持非压缩输出。用户可通过开启通道mirror和flip实现旋转180度,此时通道可以支持压缩输出。
- Hi3519DV500/Hi3516CV610/Hi3511CV100只支持固定角度旋转。
- Hi3519DV500/Hi3516CV610/Hi3511CV100开启旋转功能时,物理通道像素格式不能设置为semi-planar422,通过开启mirror和flip实现180度旋转时,可以设置像素格式为semi-planar422。
- 固定角度旋转仅支持0度、90度、180度、270度的旋转。
- Hi3516CV610物理通道0输出视频格式为Tile64x16时,仅支持90度和270度的旋转。
- 通道AUTO模式下不支持旋转。
- 相关使用注意事项请参考“系统控制”章节ot_rotation_attr结构体。
- 非OT_FMU_MODE_OFF通道调用该接口无效。
【举例】
无。
【相关主题】
ot_rotation_attr
ss_mpi_vpss_get_chn_rotation
【描述】
获取VPSS物理通道旋转属性。
【语法】
td_s32 ss_mpi_vpss_get_chn_rotation(ot_vpss_grp grp, ot_vpss_chn chn, ot_rotation_attr *rotation_attr)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
无。
【相关主题】
ot_rotation_attr
ss_mpi_vpss_get_chn_frame
【描述】
用户从通道获取一帧处理完成的图像。
【语法】
td_s32 ss_mpi_vpss_get_chn_frame(ot_vpss_grp grp, ot_vpss_chn chn, ot_video_frame_info *frame_info, td_s32 milli_sec)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口适用于VPSS所有通道,包括物理通道与扩展通道。
- 只有在USER模式下,并且队列深度不为0,才能获取到图像。
- 调用该接口获取图像,不会对后端绑定的模块有影响。如后端绑定VO显示,可以在显示过程中获取图像,VO仍正常显示,不会受到影响。
- 当milli_sec设为-1时,表示阻塞模式,程序一直等待,直到获取到图像才返回。如果milli_sec等于0时,表示非阻塞模式。如果milli_sec大于0时,表示超时等待模式,参数的单位是毫秒,指超时时间,在此时间内如果没有获取到图像,则超时返回。
- 解码回放场景,由于不允许出现丢帧,VPSS只要有一个通道不处理新图像(通道已使能),则整个VPSS不处理新图像。例如说使能了通道0和通道1,两者都不绑定后端,通道图像队列长度都设为2,此时从通道0中最多获取出2帧已缓存的图像,因为通道1缓存2帧后未处理新图像,所以VPSS不会再处理新图像。
- 在线模式,中断模式设置为OT_FRAME_INTERRUPT_EARLY时,从物理通道获取到的图像可能是VPSS硬件未处理完毕的图像。
- 如果开启了通道低延时,获取的帧不是完整帧,需设置合理的低延时行号以保证读取的图像不出现异常。
- Hi3519DV500仅通道fmu模式为OT_FMU_MODE_OFF时,才可获取通道帧。
- Hi3516CV610开启通道卷绕时,无法获取到帧。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_release_chn_frame
【描述】
用户释放一帧通道图像。
【语法】
td_s32 ss_mpi_vpss_release_chn_frame(ot_vpss_grp grp, ot_vpss_chn chn, const ot_video_frame_info *frame_info)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- 此接口的grp和chn参数无实际用途,可在其取值范围内任意设置。
- 此接口需与ss_mpi_vpss_get_chn_frame配合使用。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_get_chn_rgn_luma
【描述】
获取指定图像区域的亮度总和。该接口主要用于对OSD区域进行亮度和统计,根据统计的亮度,进行反色处理,使OSD区域更加明显。
【语法】
td_s32 ss_mpi_vpss_get_chn_rgn_luma(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_rgn_info *luma_rgn, td_u64 *luma_data, td_s32 milli_sec)
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
|
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 此接口针对的是VPSS通道的输出图像。获取亮度统计信息的时机是这些图像被用户获取或被发送到后端模块之前。
- 统计区域的数量范围为[1, 64]。
- 统计区域坐标和宽高要求2像素对齐。
-
不同芯片统计区域宽高最大、最小分别如下:
- Hi3519DV500最大为8192x8192,最小为2x2
- Hi3516CV610最大为4096x4096,最小为6x6
- Hi3511CV100最大为16384x8192,最小为2x2
-
亮度和区域不得超出图像。
- Hi3519DV500 VPSS组号在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM - 1]范围内的组,在单通道输出且不做任何处理时,不支持获取通道亮度和。
【举例】
无。
【相关主题】
无。
ss_mpi_vpss_set_chn_crop
【描述】
设置VPSS通道CROP参数。
【语法】
td_s32 ss_mpi_vpss_set_chn_crop(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_crop_info *crop_info);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值及功能限制参考ot_vpss_crop_info结构体说明。
- 物理通道先做缩放后做裁剪;扩展通道先做裁剪后做缩放。
- 如果裁剪区域超出图像范围,丢弃超出部分图像,优先保证裁剪坐标与所设置的参数相同。
- 分块处理时,通道0不支持裁剪。
- 设置通道裁剪前必须先设置通道属性。
- 通道AUTO模式与通道裁剪功能互斥。
- 鱼眼多区域不支持通道crop。
- 拼接不支持通道crop。
- OT_VPSS_DIRECT_CHN通道不支持调用该接口,效果与OT_VPSS_CHN0相同。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_crop
【描述】
获取VPSS通道CROP参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
无。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_vb_src
【描述】
设置VPSS通道的VB来源。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ss_mpi_vpss.h、ot_common_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 支持动态配置vb来源。
- vb来源只能设置为OT_VB_SRC_COMMON,OT_VB_SRC_USER。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_vb_src
【描述】
获取VPSS通道的VB来源。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ss_mpi_vpss.h、ot_common_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建
【举例】
无。
【相关主题】
ss_mpi_vpss_attach_chn_vb_pool
【描述】
将VPSS的通道绑定到某个视频缓存VB池中。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM)。 |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ss_mpi_vpss.h、ot_common_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 用户必须调用接口ss_mpi_vb_create_pool创建一个视频缓存VB池,再通过调用本接口把当前组的通道绑定到固定pool id的VB池中。
- 支持多个组的多个通道绑定到同一个VB池中。
- 当要切换当前组绑定的VB池时,只需再调一次本接口正确配置需要绑定到的VB池即可。
- vb_pool必须保证是已创建VB池的有效Pool Id。
- 只对USER模式的通道有效,AUTO模式的通道不受影响。
- 在调用ss_mpi_vpss_detach_chn_vb_pool后,销毁创建的VB之前,需要保证VB没有被VPSS后端绑定的模块使用,可以通过sleep或清除后端模块通道缓存的方式先把VB都释放,再销毁缓存VB池。
- UserVB大小根据VPSS通道输出图像计算,具体计算公式参考ot_buffer.h。
-
需要配合ss_mpi_vpss_set_chn_vb_src接口使用,可以动态切换。
- 使用绑定用户VB池的方式,必须设置vb_src为OT_VB_SRC_USER并调用本接口attach一个用户VB池。
- 使用公共VB池的方式,必须设置vb_src为OT_VB_SRC_COMMON,此时固定从公共vb池获取写出vb。
- 设置vb_src为OT_VB_SRC_USER后,也可以attach公共vb,固定使用指定公共vb池。
-
buffer share和attach vb pool功能同时开启时,buffer share优先级更高,通道使用的VB为输入VB。
- 对于Hi3519DV500/Hi3511CV100,先开启低延时单buffer再开启attach vb pool,低延时单buffer优先级更高,通道使用的VB为低延时buffer。如果先attach vb pool,然后开启低延时单buffer,再detach vb pool,通道依然使用用户VB池中的VB,如果要释放USER VB,需要先关闭低延时单buffer,然后再detach vb pool。
- 对于Hi3519DV500,开启mcf_en的组仅通道0支持绑定/解绑VB池。
- wrap通道配置该接口无效,内部分配不占uv data的私有vb,proc信息按私有vb的pool_id展示。
- direct通道不支持该接口,内部分配不占uv data的私有vb,proc信息按私有vb的pool_id展示。
- Hi3519DV500 grp在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM)范围内走bypass流程时,输出vb和输入vb相同,pool_id无效。
- 绑定VB池和创建VPSS组的操作,需要在同一个进程中执行。
【举例】
无。
【相关主题】
ss_mpi_vpss_detach_chn_vb_pool
【描述】
将VPSS的通道从某个视频缓存VB池中解绑定。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM)。 |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ss_mpi_vpss.h、ot_common_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- detach时,vb_src必须设置为OT_VB_SRC_USER
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_low_delay
【描述】
设置VPSS通道低延时参数。
【语法】
td_s32 ss_mpi_vpss_set_chn_low_delay(ot_vpss_grp grp, ot_vpss_chn chn, const ot_low_delay_info *low_delay_info);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值参考ot_low_delay_info结构体说明。
- 设置低延时参数前必须先设置通道属性。
- 扩展通道低延时不支持单buffer。
- 低延时单buffer要求新的一帧开始处理时,后级模块已处理完上一帧,一般仅支持送VENC(无性能压力时),送其他模块时可能由于处理不及时,导致VPSS处理失败。
- 低延时不支持Flip。
- 当VI-VPSS处于OT_VI_ONLINE_VPSS_ONLINE模式时,如果物理通道开启低延时,且存在通道后处理或扩展通道调用VGS/GDC,此时VGS/GDC处理该输入低延时任务的耗时会被拉长至sensor采集一帧的时间,VGS/GDC占用率相比于其他模式会显著提升。
- Hi3519DV500/Hi3511CV100低延时通道绑编码场景下,当有多个码流时,若设置编码通道优先级,此时低延时通道行数设置不能过小,建议设置128行以上,否则可能会引起非低延时通道阻塞不编码。
- Hi3519DV500/Hi3511CV100在低延时通道绑编码场景下,编码不支持软件抽场。在低延时单buffer绑定编码场景下,编码不支持去呼吸效应,不能开启重复编码的功能,包含增帧模式、超大帧重编码、码率波动导致的重编码,用户应把最大重编码次数设置为0。
- 低延时行号不能小于16,不能大于图像高度;如果是物理通道且开启了通道裁剪,则不能大于裁剪高度。
- Hi3519DV500 OT_FRAME_INTERRUPT_EARLY模式物理通道不支持低延时,推荐使用OT_FRAME_INTERRUPT_EARLY_END模式开启低延时,以节省内存,降低通路延时。
- Hi3519DV500 VPSS物理通道开启低延时,再开启固定角度旋转/MosaicEx/CoverEx/OverlayEx/Corner_rectEx/LineEx,会自适应关闭VPSS物理通道低延时。
- Hi3519DV500/Hi3511CV100 VPSS物理通道开启低延时,同时需要缩小到超过15倍时,会自适应关闭VPSS物理通道低延时。
- 鱼眼多区域不支持开启低延时。
- 拼接不支持开启低延时
- 非OT_FMU_MODE_OFF模式与低延时互斥。
- Hi3516CV610仅物理通道0/1支持开启低延时,扩展通道不支持开启低延时。
- Hi3516CV610输入图像分块且物理通道设置为紧凑段压缩输出时不支持开启低延时。
- Hi3516CV610物理通道开启低延时,如果同时开启LDC、旋转、通道亮度和、CoverEx、LineEx、Corner_rectEx等通道后处理功能时,内部会自适应关闭物理通道低延时。
- Hi3516CV610物理通道0卷绕与物理通道0低延时功能互斥;当VI-VPSS处于OT_VI_OFFLINE_VPSS_OFFLINE/OT_VI_OFFLINE_VPSS_ONLINE模式时,如果通道0开启卷绕功能时,通道1低延时行号需要设置为大于卷绕行号。
- Hi3511CV100物理通道开启低延时,如果同时开启旋转、通道亮度和、MosaicEx、CoverEx、OverlayEx、Corner_rectEx、LineEx等通道后处理功能时,内部会自适应关闭物理通道低延时。
- Hi3511CV100 VI-VPSS处于OT_VI_ONLINE_VPSS_ONLINE模式时,不支持开启低延时。
- Hi3511CV100 通道depth不为0时,不支持开启低延时单buffer。
【举例】
无。
【相关主题】
- ot_low_delay_info
- ss_mpi_vpss_get_chn_low_delay
ss_mpi_vpss_get_chn_low_delay
【描述】
获取VPSS通道低延时参数。
【语法】
td_s32 ss_mpi_vpss_get_chn_low_delay(ot_vpss_grp grp, ot_vpss_chn chn, ot_low_delay_info *low_delay_info);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_stride_align
【描述】
设置VPSS通道输出YUV数据的行stride对齐。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- align为0时stride对齐使用自动模式,对齐要求跟随系统。
- 当align小于VPSS硬件要求的stride对齐时,系统分配buffer和计算stride还是以硬件要求stride对齐为准。
- 当align不等于VPSS硬件要求的stride对齐倍数时,系统分配buffer和计算stride向上对齐到硬件要求stride对齐的倍数。例:align设置为48,逻辑要求32对齐时,系统分配buffer和计算stride时使用64对齐。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_stride_align
ss_mpi_vpss_get_chn_stride_align
【描述】
获取VPSS通道输出YUV数据的行stride对齐。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_buf_wrap
【描述】
设置VPSS物理通道低延时卷绕属性。
【语法】
td_s32 ss_mpi_vpss_set_chn_buf_wrap(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_chn_buf_wrap_attr *wrap_attr);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口必须在设置通道属性后调用。
- 通道使能状态下不支持调用。
- 仅物理通道0支持此接口。
- 不支持输出semi-plannar422图像,不支持flip。
- 通道卷绕开启时,通道后处理、卷绕通道被绑定到的扩展通道等功能将无效。
- 通道卷绕与通道低延时、buffer share等功能互斥。
- 当VI-VPSS处于OT_VI_ONLINE_VPSS_ONLINE模式时,卷绕通道最终的输出图像宽度(裁剪之后)必须大于等于512pixels。
- 当VI-VPSS处于OT_VI_ONLINE_VPSS_ONLINE模式时,开启通道卷绕仅支持OT_FRAME_INTERRUPT_START和OT_FRAME_INTERRUPT_EARLY_END两种中断类型,同时需要将early_line设置为组属性最大高度的一半。
- Hi3516CV610如果开启通道0卷绕,则通道0不支持同时绑定多路JPEG/MJPEG或多路H.264/H.265/SVAC3,可同时绑定一路JPEG/MJPEG+一路H.264/H.265/SVAC3。此时VPSS其他通道建议最多只绑定1路H.264/H.265/SVAC3小尺寸编码(能否支持这路小码流编码与sensor时序、小码流分辨率、CPU响应是否及时等因素有关);建议使用通道1进行小码流编码,同时打开低延时功能,能够更加充分地利用编码的性能。
- 当VI-VPSS处于OT_VI_OFFLINE_VPSS_OFFLINE/OT_VI_OFFLINE_VPSS_ONLINE模式时,如果开启通道0卷绕,且开启通道1低延时功能时,通道1低延时行号需要设置为大于通道0卷绕行号。
- 仅支持与VEDU和JPEGE对接。
- 任意Group的通道0在第一次开启卷绕时,会从公共VB池拿取合适的卷绕VB,此后长期持有,直到所有Group都关闭卷绕时释放。该卷绕VB,所有开启卷绕的Group复用。
- 当VI-VPSS处于OT_VI_ONLINE_VPSS_ONLINE模式时,如果mipi_rx采集帧率较低(小于10帧),不建议去动态开关卷绕功能。
- 如果VEDU通道存在卷绕通道,则所有VEDU通道均不建议开启重编功能,否则可能会出现VEDU通道VB队列占满(VB占用多)和VPSS送帧时因为队列满而丢帧等问题。
- 仅Hi3516CV610支持此接口。
- 其他约束参考表1。
表 1 卷绕功能限制及对比
[0, OT_VPSS_VGS_GRP_NO] |
[0, OT_VPSS_MAX_GRP_NUM] |
|||||
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_buf_wrap
【描述】
获取VPSS物理通道低延时卷绕属性。
【语法】
td_s32 ss_mpi_vpss_get_chn_buf_wrap(ot_vpss_grp grp, ot_vpss_chn chn, ot_vpss_chn_buf_wrap_attr *wrap_attr);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅物理通道0支持此接口。
- 仅Hi3516CV610支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_ldc
【描述】
设置VPSS物理通道镜头畸变矫正(LDC)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口必须在设置通道属性后调用。
- Hi3516CV610开启LDC时,物理通道属性的压缩模式必须配置为非压缩。
- Hi3516CV610通道LDC仅支持LDC V3。
- Hi3519DV500/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_ldc
【描述】
获取VPSS物理通道镜头畸变矫正(LDC)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3519DV500/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_ext_chn_attr
【描述】
设置VPSS扩展通道属性。
【语法】
td_s32 ss_mpi_vpss_set_ext_chn_attr(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_ext_chn_attr *ext_chn_attr);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值及功能限制参考ot_vpss_ext_chn_attr结构体说明。
- 扩展通道的图像来源属性设置为OT_EXT_CHN_SRC_TYPE_HEAD时,被绑定的物理通道不支持做CoverEx/MosaicEx/LineEx/OverlayEx/Corner_rectEx处理,即使设置CoverEx/MosaicEx/LineEx/OverlayEx/Corner_rectEx也不会生效。
- 扩展通道不支持绑定到OT_VPSS_DIRECT_CHN。
- 非OT_FMU_MODE_OFF模式绑定扩展通道不生效。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_ext_chn_attr
【描述】
获取VPSS扩展通道属性。
【语法】
td_s32 ss_mpi_vpss_get_ext_chn_attr(ot_vpss_grp grp, ot_vpss_chn chn, ot_vpss_ext_chn_attr *ext_chn_attr);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
Group必须已创建。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_gdc_param
【描述】
设置VPSS Group GDC参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用其他GDC相关功能接口或输入OT_VIDEO_FORMAT_TILE_32x4数据前,必须先调用该接口配置。
- GDC相关功能只支持离线模式。
- Hi3519DV500 VPSS组号在[OT_VPSS_VGS_GRP_NO, OT_VPSS_MAX_GRP_NUM - 1]范围内的组不支持GDC相关功能。
- 开启GDC相关功能时,不支持输入SP422格式。
- 开启GDC相关功能时,不支持输入YUV-SP420格式。
-
开启GDC相关功能或输入OT_VIDEO_FORMAT_TILE_32x4,且3DNR与所有通道mirror/flip功能都未开启时,有如下限制:
- 通道0不支持缩放,其他通道不支持放大。
- 不支持紧凑段压缩输出。
- 通路不支持SP422格式。
- 通道0幅形比只能在不缩放的基础上增加边界。
- 组裁剪、通道裁剪、和通道0幅形比位置可能会进行自适应调整,具体裁剪信息可查看proc信息中的实际裁剪信息和通道0幅形比信息。
-
开启GDC相关功能或输入OT_VIDEO_FORMAT_TILE_32x4,且3DNR或有通道开启mirror/flip功能,且gdc输出宽度大于2048时,可能对性能有一定影响。
- 开启GDC相关功能或输入OT_VIDEO_FORMAT_TILE_32x4时,如开启组裁剪,裁剪位置高度不同可能存在性能差异。
- OT_VIDEO_FORMAT_TILE_64x16不支持开启GDC相关功能。
- 线性压缩输入不支持开启GDC相关功能。
- 开启防抖功能时,建议在VPSS开启3DNR,其他场景在VI开启3DNR。
- 开启GDC相关功能时,推荐输入视频格式为OT_VIDEO_FORMAT_TILE_32x4,压缩格式为OT_COMPRESS_MODE_TILE。
- 开启GDC相关功能同时VPSS开启3DNR时,相对不开GDC功能的占用带宽增加。
- 输入视频格式为OT_VIDEO_FORMAT_LINEAR时,开启GDC相关功能同时VPSS开启3DNR,VPSS性能下降,一般不建议使用。
- 本文中提到的GDC相关功能,即本小节【相关主题】中所指出的除了ss_mpi_vpss_get_grp_gdc_param之外的其他接口配置的功能。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
- ss_mpi_vpss_get_grp_gdc_param
- ss_mpi_vpss_set_grp_ldc
- ss_mpi_vpss_set_grp_spread
- ss_mpi_vpss_set_grp_fisheye
- ss_mpi_vpss_set_grp_rotation
- ss_mpi_vpss_set_grp_pmf
- ss_mpi_vpss_set_grp_fov
- ss_mpi_vpss_set_grp_lut
- ss_mpi_vpss_set_grp_zme
- ss_mpi_vpss_set_grp_stitch
- ss_mpi_vi_set_chn_dis_attr
ss_mpi_vpss_get_grp_gdc_param
【描述】
获取VPSS Group GDC参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅离线模式支持此接口。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_fisheye_cfg
【描述】
设置VPSS Group鱼眼镜头LMF参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_fisheye_cfg
ss_mpi_vpss_get_grp_fisheye_cfg
【描述】
获取VPSS Group鱼眼镜头LMF参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_fisheye_cfg
ss_mpi_vpss_query_grp_fisheye_pos_dst_to_src
【描述】
根据VPSS Group鱼眼矫正输出图像坐标点查找源图像坐标点。
【语法】
td_s32 ss_mpi_vpss_query_grp_fisheye_pos_dst_to_src(ot_vpss_grp grp, td_u32 rgn_index, const ot_point *dst, ot_point *src);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用此接口前必须先开启鱼眼矫正功能。
- 启动鱼眼矫正后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在鱼眼参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。
- 多区域时,每个区域的坐标点按照每个区域单独计算,区域左上角为起始点,范围为区域范围,不能按照拼接之后的图像来计算。
- 鱼眼查找时,若查找点不在鱼眼输出内容内,会导致查找到点超出原图范围报错。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_query_grp_ldc_pos_dst_to_src
【描述】
根据VPSS GRP镜头畸变校正(LDC)的输出图像坐标点查找输入图像的坐标点。
【语法】
td_s32 ss_mpi_vpss_query_grp_ldc_pos_dst_to_src(ot_vpss_grp grp, const ot_point *dst, ot_point *src);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h、ot_common_video.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口仅支持OT_LDC_V1版本的LDC矫正。
- 必须LDC使能之后再调用,否则会返回失败。
- 使能LDC后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在LDC参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_query_grp_ldc_pos_src_to_dst
【描述】
根据VPSS Group镜头畸变校正(LDC)的输入图像坐标点查找输出图像的坐标点。
【语法】
td_s32 ss_mpi_vpss_query_grp_ldc_pos_src_to_dst(ot_vpss_grp grp, const ot_point *src, ot_point *dst);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h、ot_common_video.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口仅支持OT_LDC_V1版本的LDC矫正。
- 必须LDC使能之后再调用,否则会返回失败。
- 使能LDC后,如果需要变动参数,要遵循参数变动、获取校正图像和启动坐标点查询的先后原则。如果在LDC参数变动之前就获取了矫正图像,可能导致查找到错误的坐标点。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_query_grp_gdc_pos_dst_to_src
【描述】
根据VPSS GRP任意GDC功能的输出图像坐标点查找输入图像的坐标点。
【语法】
td_s32 ss_mpi_vpss_query_grp_gdc_pos_dst_to_src(ot_vpss_grp grp, td_u32 index, const ot_point *dst_point, ot_point *src_point);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
矫正区域号。gdc功能中的鱼眼、拼接有矫正多区域(pipe)输出,需要按区域反向查询,且区域范围需要在鱼眼区域数或拼接pipe数范围内。没有多区域输出的gdc功能index配置0,查询拼接的请查看注意事项。 |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h、ot_common_video.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建,组上必须开启gdc功能。
- 调用此接口前,需调用ss_mpi_vpss_set_grp_cfg接口打开lut写出配置。
- 查询拼接时直接按照输出原图的坐标去设置dst_point,index设置默认值即可。
- 查找的点需要在输出图像的内容范围内,查找到的点误差在±2像素。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
- ss_mpi_vpss_set_grp_cfg
- ss_mpi_vpss_set_grp_ldc
- ss_mpi_vpss_set_grp_spread
- ss_mpi_vpss_set_grp_fisheye
- ss_mpi_vpss_set_grp_rotation
- ss_mpi_vpss_set_grp_pmf
- ss_mpi_vpss_set_grp_fov
- ss_mpi_vpss_set_grp_lut
- ss_mpi_vpss_set_grp_zme
- ss_mpi_vpss_set_grp_stitch
ss_mpi_vpss_set_grp_ldc
【描述】
设置VPSS Group镜头畸变矫正(LDC)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 当开启spread时,OT_LDC_V1的distortion_ratio取值范围只能为 [0, 500],即只支持LDC的桶形模式。
- OT_LDC_V2的参数需使用标定工具的参数,不能用随意配置的参数。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- LDC与PMF、fov、fisheye、stitch功能互斥。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_ldc
【描述】
获取VPSS镜头畸变矫正(LDC)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_spread
【描述】
设置VPSS Group展宽属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 当开启spread时,OT_LDC_V1的distortion_ratio取值范围只能为 [0, 500],即只支持LDC的桶形模式。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- spread与PMF、fov、fisheye、stitch功能互斥。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_spread
【描述】
获取VPSS Group展宽属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_fisheye
【描述】
设置VPSS Group鱼眼属性。
【语法】
td_s32 ss_mpi_vpss_set_grp_fisheye(ot_vpss_grp grp, const ot_fisheye_correction_attr *fisheye_attr);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 鱼眼多区域(区域数大于1)不支持开启3DNR,此时可在VI做降噪处理。
- 鱼眼多区域不支持grp_crop与chn_crop。
- 鱼眼多区域不支持幅形比。
- 鱼眼不支持开启OT_FMU_MODE_WRAP或OT_FMU_MODE_DIRECT模式。
- 鱼眼多区域不支持低延时写出。
- 鱼眼多区域Cover/Mosaic/Corner_rect功能无效。
- 鱼眼单/多区域必须覆盖整个GDC输出范围。
- 鱼眼多区域时,需要先调用ss_mpi_vpss_set_grp_cfg接口,将max_out_rgn_num设置为不低于鱼眼区域数。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 鱼眼多区域+多通道缩放输出时,可能由于对齐导致各区域比例不是严格一致,特别的,在非紧凑压缩输出时,差异可能较大,如果有需求需要控制好缩放关系。
- 鱼眼多区域时只有一个区域支持分块。当rgn num为1时,不能配置skip模式。
- 鱼眼与PMF、fov、spread、dis、ldc、stitch、zme、zoom功能互斥。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_fisheye
【描述】
获取VPSS Group鱼眼属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_rotation
【描述】
设置VPSS Group旋转属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 只支持任意角度旋转和高精度任意角度旋转。
- 此接口与PMF、fov、fisheye、stitch功能互斥。
- 若同时开启spread,会将旋转效果叠加在展宽中。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_rotation
【描述】
获取VPSS Group旋转属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_pmf
【描述】
设置VPSS Group PMF属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 此接口与ldc、rotation、dis、spread、fov、fisheye、stitch、zoom功能互斥。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_pmf
【描述】
获取VPSS Group PMF属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_fov
【描述】
设置VPSS Group视场角矫正(FOV)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 此接口与ldc、rotation、dis、spread、pmf、fisheye、stitch、zoom功能互斥。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_fov
【描述】
获取VPSS Group视场角矫正(FOV)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_lut
【描述】
设置VPSS Group查找表(LUT)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 此接口与fisheye、stitch功能互斥。
- lut表格内容填写具体请参考《GDC 调试指南》。
- lut_mode为OT_LUT_FUSION_MODE时,prelut与postlut两张表格的输入宽高、输出宽高、单元格大小需保持一致,lut表效果融合并联。
- lut_mode为OT_LUT_CONNECT_MODE时,prelut的输出宽高需与postlut的输入宽高保持一致,lut表效果串联。
- 两张表都开启时不支持其他GDC功能。
- 融合模式下,若两张表效果一致,只体现一张表效果,串联模式下,若两张表效果一致,体现为直接叠加效果。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_lut
【描述】
获取VPSS Group查找表(LUT)属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_zme
【描述】
设置VPSS Group缩放属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 此接口与fisheye、stitch功能互斥。
- gdc bypass处理(tile32x4输入)时,不支持zme缩放。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_zme
【描述】
获取VPSS Group缩放属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_stitch
【描述】
设置VPSS Group拼接属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 不支持开启3DNR,此时可在VI做降噪处理。
- 不支持grp_crop与chn_crop。
- 不支持幅形比。
- 不支持开启OT_FMU_MODE_WRAP或OT_FMU_MODE_DIRECT模式。
- 不支持低延时写出。
- 不支持分块。
- Cover/Mosaic/Corner_rect功能无效。
- 只支持开启通道0 USER模式,且不支持缩放。
- blend拼接不支持压缩输出。
- 拼接的多个pipe分辨率、像素格式,压缩格式、存储格式、动态范围必须相同。
- 调用此接口前,需要先调用ss_mpi_vpss_set_grp_cfg接口,将max_out_rgn_num设置为不低于拼接pipe数。
- 调用该接口前必须先调用ss_mpi_vpss_set_grp_gdc_param接口。
- 当拼接模式为融合拼接时,需要先调用ss_mpi_vpss_set_grp_stitch_blend_param接口。
- 此接口与ldc、rotation、dis、spread、zme、pmf、fisheye、fov功能互斥。
- noblend拼接时,矫正参数无效。
- noblend拼接不支持紧凑段压缩输出。
- 水平硬拼或田字形硬拼且非紧凑压缩输出时,输入不能为tile32x4格式。
- 田字形硬拼时,pipe_num必须为4。
- 不支持动态修改拼接模式,必须先销毁重建grp后重新配置。
- 不支持动态修改拼接路数,必须先销毁重建grp后重新配置。
- 水平硬拼或田字形硬拼压缩输出时,不支持输入低延时。
- 不支持mirror/flip。
- 16DV500融合拼接时只支持两路输入,每一路输入面积最大1920*1080像素。
- 后处理做相对坐标coverEx时,以拼接后的图像为基准,而不是以单个pipe图像为基准。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_stitch
【描述】
获取VPSS Group拼接属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_stitch_blend_param
【描述】
设置VPSS Group融合拼接融合属性。
【语法】
td_s32 ss_mpi_vpss_set_grp_stitch_blend_param(ot_vpss_grp grp, const ot_stitch_blend_param *blend_param);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- ss_mpi_vpss_set_grp_stitch接口设置为融合拼接时使用,设置为硬拼时无效。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_stitch_blend_param
【描述】
获取VPSS Group融合拼接融合属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_stitch_blend_param
ss_mpi_vpss_get_chn_fd
【描述】
获取VPSS通道对应的设备文件句柄。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
【返回值】
【错误码】
无。
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
无。
【举例】
用户可以获取文件句柄实现多通道select获取视频帧数据。
ot_vpss_grp grp = 0;
ot_vpss_chn chn = 0;
td_s32 chn_fd = 0;
/* enable vpss grp and vpss chn */
/* get chn fd before get video frame from vpss chn */
chn_fd = ss_mpi_vpss_get_chn_fd(grp,chn);
if(chn_fd <= 0) {
return TD_FAILURE;
}
【相关主题】
无。
ss_mpi_vpss_set_chn_scale_coef_type
【描述】
设置VPSS通道上的缩放系数类型。
【语法】
td_s32 ss_mpi_vpss_set_chn_scale_coef_type(ot_vpss_grp grp, ot_vpss_chn chn, ot_scale_coef_type type);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h、ot_common_video.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口适用于VPSS所有通道,包括物理通道与扩展通道。
- 支持动态设置。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_scale_coef_type
ss_mpi_vpss_get_chn_scale_coef_type
【描述】
获取VPSS通道上的缩放系数类型。
【语法】
td_s32 ss_mpi_vpss_get_chn_scale_coef_type(ot_vpss_grp grp, ot_vpss_chn chn, ot_scale_coef_type *type);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h、ot_common_video.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 该接口适用于VPSS所有通道,包括物理通道与扩展通道。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_scale_coef_type
ss_mpi_vpss_start_grp_stitch_luma_sync
【描述】
启动VPSS GRP拼接亮度同步。
【语法】
td_s32 ss_mpi_vpss_start_grp_stitch_luma_sync(ot_vpss_grp grp, const ot_stitch_luma_sync_param *param);
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_stitch_sync.h、ot_common_video.h
- 库文件:libss_mpi.a, libot_mpi_isp.a, libss_mpi_stitch_sync.a
【注意】
- Group必须已创建。
- 需要与创建Group进程为同一进程。
- 不支持重复启动。
- 仅lut融合拼接模式支持亮度同步。
- 亮度同步通过调节拼接右块的isp mesh_shading相关参数实现,因此当开启亮度同步功能时,Mesh_shading相关参数会内部配置,不支持手动修改。
- 通过sys绑定时,不要开启同步后调整绑定关系。
- 销毁Group前请先停止拼接亮度同步,否则可能出现异常。
- 开启亮度同步时,ss_mpi_vpss_set_grp_stitch_blend_param接口参数中的buf_num至少配置为3,否则可能报融合vb不足错误。
- 亮度同步功能依赖isp相关库文件实现,编译视频处理子系统接口时需添加isp相关库,否则会编译失败。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
- ss_mpi_vpss_stop_grp_stitch_luma_sync
- ss_mpi_vpss_set_grp_stitch
- ss_mpi_vpss_set_grp_stitch_blend_param
ss_mpi_vpss_stop_grp_stitch_luma_sync
【描述】
停止VPSS GRP拼接亮度同步。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_stitch_sync.h、ot_common_video.h
- 库文件:libss_mpi.a, libot_mpi_isp.a, libss_mpi_stitch_sync.a
【注意】
- Group必须已创建。
- 需要与创建Group进程为同一进程。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_start_grp_stitch_luma_sync
ss_mpi_vpss_set_grp_zoom_in_window
【描述】
设置VPSS GRP 裁剪放大属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
-
若crop_mode为OT_COORD_RATIO(相对坐标模式):
使用crop_rect的成员时应做转换,计算公式为:
x = 起始点坐标*原始图像宽度/1000,合法取值范围:[0, 999],计算完成后会进行取整操作和对齐操作。公式同样适用于纵坐标计算,x为转换后的坐标。
width=区域宽度*实际图像宽度/1000,区域宽度取值范围:[1, 1000]。计算完成后会进行取整操作和对齐操作。公式同样适用于区域高度计算,width为转换后的宽。
-
相对模式裁剪时,裁剪区域坐标取值范围为[0, 999],裁剪区域宽高取值范围为[1, 1000]。
- 如果裁剪放大区域超出图像范围,则自动裁剪到图像有效范围。
-
裁剪区域起始点坐标和宽高要求2像素对齐。
-
无论是相对还是绝对裁剪放大,实际裁剪放大区域的宽高不能小于输入图像宽高的1/8,起始点也必须在图像范围内,不支负坐标。
- zoom_in_window不支持与gyro组合。
- 通道宽高改变时需要去重设zoom属性否则可能会出现效果异常。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_zoom_in_window
ss_mpi_vpss_get_grp_zoom_in_window
【描述】
获取VPSS GRP 裁剪放大属性。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_VGS_GRP_NO) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3516CV610/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_zoom_in_window
ss_mpi_vpss_set_grp_svc_param
【描述】
设置VPSS Group的SVC参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 具体成员取值及功能限制参考ot_vpss_svc_param结构体说明。
- Hi3519DV500/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_svc_param
【描述】
获取VPSS Group的SVC参数。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- Hi3519DV500/Hi3511CV100不支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_rgn_luma
【描述】
获取指定 VPSS Group 输入图像区域的亮度总和以及获取的图像的宽高信息。该接口主要用于对输入图像中即将进行 Overlay 或 OverlayEx 叠加的区域进行亮度和统计,根据统计的亮度,对 Overlay 或 OverlayEx 进行反色处理,使叠加的 Overlay 或OverlayEx 不至于和背景混淆。
【语法】
td_s32 ss_mpi_vpss_get_grp_rgn_luma(ot_vpss_grp grp, const ot_vpss_rgn_info *luma_rgn, ot_vpss_luma_result *luma_result, td_s32 milli_sec);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
接收区域亮度和统计信息以及图像宽高的内存指针,接收统计信息的内存大小应该大于或等于sizeof(td_u64)×num。 |
||
超时参数milli_sec设为-1时为阻塞模式;等于0时为非阻塞模式;大于0时为超时等待模式。超时时间的单位为毫秒(ms)。 |
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 此接口针对的是VPSS Group的输入图像。获取亮度统计信息的时机是这些图像被 VPSS 硬件处理之前。
- 统计区域的数量范围为[1, 64]。
- 统计区域坐标和宽高要求2像素对齐。
- 统计区域宽高最小为2x2,最大为16384x8192。
-
统计区域的起始坐标的确定分两种情况:
- 如果不使能CROP,则起始坐标相对于原始图像的左上角坐标;
- 如果使能CROP,则起始坐标相对于CROP以后的图像的左上角坐标。统计区域不得超出原始图像或CROP之后的图像区域。
-
输入OT_VIDEO_FORMAT_TILE_64x16格式时不支持获取组亮度和。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_grp_delay
【描述】
设置延迟启动VPSS处理的延时队列长度。
延时处理主要由于前端进来的图像通过PCI传到从片可能会有延迟,为了保持同步,VPSS通过delay队列让从片的图像也延迟一段时间;另一应用场景是用户从VI获取图像,再通过TDE模块画框,该帧同时又送给VPSS进行处理,由于VPSS处理速度比TDE快,因此需要VPSS进行延迟处理。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 只有离线模式支持此接口。
- 延时队列控制只有通过系统绑定送图像到VPSS时才会生效,通过ss_mpi_vpss_send_frame、ss_mpi_vpss_send_frame_ex接口送图像到VPSS组时不生效。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_grp_delay
【描述】
获取延迟启动VPSS处理的延时队列长度。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 只有离线模式支持此接口。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_sharpen
【描述】
设置通道Sharpen参数。通过LTI/CTI方式处理。
【语法】
td_s32 ss_mpi_vpss_set_chn_sharpen(ot_vpss_grp grp, ot_vpss_chn chn, const ot_vpss_chn_sharpen_param *sharpen_param);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅Hi3511CV100支持此接口。
- Hi3511CV100通道2和通道3不支持设置Sharpen处理。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_sharpen
【描述】
获取通道Sharpen参数。
【语法】
td_s32 ss_mpi_vpss_get_chn_sharpen(ot_vpss_grp grp, ot_vpss_chn chn, ot_vpss_chn_sharpen_param *sharpen_param);
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_set_chn_cfg
【描述】
设置VPSS通道上的静态配置。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 必须在ss_mpi_vpss_enable_chn接口之前调用。
- 具体成员取值及功能限制参考ot_vpss_chn_cfg结构体说明。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
ss_mpi_vpss_get_chn_cfg
【描述】
获取VPSS通道上的静态配置。
【语法】
【参数】
|
取值范围:[0, OT_VPSS_MAX_GRP_NUM) |
||
|
取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
||
【返回值】
失败,请参考错误码。 |
【需求】
- 头文件:ot_common_vpss.h、ss_mpi_vpss.h
- 库文件:libss_mpi.a
【注意】
- Group必须已创建。
- 仅Hi3511CV100支持此接口。
【举例】
无。
【相关主题】
数据类型
VPSS模块相关数据类型定义如下:
- OT_VPSS_MAX_GRP_NUM:定义VPSS Group的最大个数。
- OT_VPSS_MAX_GRP_PIPE_NUM:定义VPSS Group的最大PIPE个数。
- OT_VPSS_VGS_GRP_NO:定义VPSS中VGS Group的起始组号。
- OT_VPSS_IP_NUM:定义VPSS IP个数。
- OT_VPSS0:定义VPSS IP0。
- OT_VPSS_MAX_CHN_NUM:定义VPSS通道的最大个数。
- OT_VPSS_MAX_PHYS_CHN_NUM:定义VPSS物理通道的最大个数。
- OT_VPSS_MAX_EXT_CHN_NUM:定义VPSS扩展通道的最大个数。
- OT_VPSS_MAX_SPLIT_NODE_NUM:定义VPSS支持的最大分块节点数。
- OT_VPSS_MAX_FPS:定义VPSS支持的最大帧率控制参数。
- OT_VPSS_USER_LIST_MAX_DEPTH:定义VPSS支持的最大用户队列深度。
- OT_VPSS_MAX_OUT_RGN_NUM:定义VPSS支持的最大输出区域数。
- OT_VPSS_LOW_DELAY_MIN_LINE:定义VPSS支持的最小低延时行数。
- OT_VPSS_MIN_IMG_WIDTH:定义VPSS图像的最小输入输出宽度。
- OT_VPSS_MIN_IMG_HEIGHT:定义VPSS图像的最小输入输出高度。
- OT_VPSS_MAX_IN_IMG_WIDTH:定义VPSS图像的最大输入宽度。
- OT_VPSS_MAX_IN_IMG_HEIGHT:定义VPSS图像的最大输入高度。
- OT_VPSS_MAX_OUT_IMG_WIDTH:定义VPSS图像的最大输出宽度。
- OT_VPSS_MAX_OUT_IMG_HEIGHT:定义VPSS图像的最大输出高度。
- OT_VPSS_MAX_SEG_COMPACT_WIDTH:定义VPSS紧凑段压缩时,支持的最大图像宽度。
- OT_VPSS_MAX_ZOOMIN:定义VPSS物理通道的最大放大倍数。
- OT_VPSS_MAX_ZOOMOUT:定义VPSS物理通道的最大缩小倍数。
- OT_VPSS_EXT_CHN_MAX_ZOOMIN:定义VPSS扩展通道的最大放大倍数。
- OT_VPSS_EXT_CHN_MAX_ZOOMOUT:定义VPSS扩展通道的最大缩小倍数。
- OT_VPSS_EXT_CHN_MAX_IMG_WIDTH:定义VPSS扩展通道的最大图像宽度。
- OT_VPSS_EXT_CHN_MAX_IMG_HEIGHT:定义VPSS扩展通道的最大图像高度。
- OT_VPSS_CHN0:定义VPSS物理通道0的通道号。
- OT_VPSS_CHN1:定义VPSS物理通道1的通道号。
- OT_VPSS_CHN2:定义VPSS物理通道2的通道号。
- OT_VPSS_CHN3:定义VPSS物理通道3的通道号。
- OT_VPSS_DIRECT_CHN:定义VPSS直通通道的通道号。
- OT_VPSS_INVALID_CHN:定义VPSS非法通道号。
- ot_vpss_grp:定义VPSS组号。
- ot_vpss_grp_pipe:定义VPSS组pipe号。
- ot_vpss_chn:定义VPSS通道号。
- ot_vpss_dei_mode:定义DEI的模式。
- ot_vpss_grp_attr:定义VPSS Group属性。
- ot_vpss_chn_mode:定义VPSS CHN工作模式。
- ot_vpss_chn_attr:定义VPSS物理通道属性。
- ot_vpss_ext_chn_attr:定义扩展通道属性。
- ot_vpss_crop_info:定义CROP功能所需信息。
- ot_vpss_grp_param:定义VPSS组属性。
- ot_vpss_out_lut_cfg:定义VPSS 写出GDC LUT配置信息。
- ot_vpss_grp_cfg:定义VPSS 组cfg配置信息。
- ot_vpss_rgn_info:定义VPSS 亮度和区域信息。
- ot_vpss_mod_param:通过接口设置模块参数。
- ot_vpss_chn_buf_wrap_attr:定义VPSS卷绕属性。
- ot_vpss_svc_param:定义VPSS Group SVC参数。
- ot_vpss_luma_result:定义VPSS 亮度和返回值信息。
- ot_vpss_chn_sharpen_param:定义通道Sharpen属性。
- ot_vpss_chn_cfg:定义通道配置结构体。
OT_VPSS_MAX_GRP_NUM
【说明】
定义VPSS Group的最大个数。
【定义】
Hi3519DV500:
Hi3516CV610:
Hi3511CV100:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_GRP_PIPE_NUM
【说明】
定义VPSS Group的最大PIPE个数。
【定义】
Hi3519DV500:
Hi3516CV610/Hi3511CV100:
【注意事项】
即拼接模式支持的最大输入路数。
【相关数据类型及接口】
无。
OT_VPSS_VGS_GRP_NO
【说明】
定义VPSS中VGS Group的起始组号。
【定义】
Hi3519DV500:
Hi3516CV610:
Hi3511CV100:
【注意事项】
当OT_VPSS_VGS_GRP_NO与OT_VPSS_MAX_GRP_NUM相等时,表示不支持VGS Group功能。
【相关数据类型及接口】
无。
OT_VPSS_IP_NUM
【说明】
定义VPSS IP个数。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS0
【说明】
定义VPSS IP0。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_CHN_NUM
【说明】
定义VPSS通道的最大个数。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
- 对于不支持扩展通道的解决方案,VPSS最大通道数为物理通道数;
- 对于支持扩展通道的解决方案,最大通道数为物理通道数加扩展通道数;
- 直通通道为特殊独立通道,不计算在最大通道数以内。
【相关数据类型及接口】
无。
OT_VPSS_MAX_PHYS_CHN_NUM
【说明】
定义VPSS物理通道的最大个数。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_EXT_CHN_NUM
【说明】
定义VPSS扩展通道的最大个数。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_SPLIT_NODE_NUM
【说明】
定义VPSS支持的最大分块节点数。
【定义】
Hi3519DV500:
Hi3516CV610:
Hi3511CV100:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_FPS
【说明】
定义VPSS支持的最大帧率控制参数。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_USER_LIST_MAX_DEPTH
【说明】
定义VPSS支持的最大用户队列深度。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_OUT_RGN_NUM
【说明】
定义VPSS支持的最大输出区域数。
【定义】
Hi3519DV500:
Hi3516CV610/Hi3511CV100:
【注意事项】
即鱼眼多宫格最大宫格数。
【相关数据类型及接口】
无。
OT_VPSS_LOW_DELAY_MIN_LINE
【说明】
定义VPSS支持的最小低延时行数。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MIN_IMG_WIDTH
【说明】
定义VPSS图像的最小输入输出宽度。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MIN_IMG_HEIGHT
【说明】
定义VPSS图像的最小输入输出高度。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_IN_IMG_WIDTH
【说明】
定义VPSS图像的最大输入宽度。
【定义】
Hi3519DV500:
Hi3516CV610:
Hi3511CV100:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_IN_IMG_HEIGHT
【说明】
定义VPSS图像的最大输入高度。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_OUT_IMG_WIDTH
【说明】
定义VPSS图像的最大输出宽度。
【定义】
Hi3519DV500:
Hi3516CV610:
Hi3511CV100:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_OUT_IMG_HEIGHT
【说明】
定义VPSS图像的最大输出高度。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_SEG_COMPACT_WIDTH
【说明】
定义VPSS紧凑段压缩时,支持的最大图像宽度。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_MAX_ZOOMIN
【说明】
定义VPSS物理通道的最大放大倍数。
【定义】
【注意事项】
支持组上GDC时且开启GDC相关改变图像大小的功能时,缩放输入从GDC输出开始计算,若开启组上的crop,则从crop输出开始计算。
【相关数据类型及接口】
无。
OT_VPSS_MAX_ZOOMOUT
【说明】
定义VPSS物理通道的最大缩小倍数。
【定义】
【注意事项】
- 支持组上GDC时且开启GDC相关改变图像大小的功能时,缩放输入从GDC输出开始计算,若开启组上的crop,则从crop输出开始计算。
- Hi3519DV500/Hi3511CV100缩小倍数超过OT_VPSS_MAX_ZOOMOUT且VI-VPSS处于非OT_VI_ONLINE_VPSS_ONLINE模式时,则会调用VGS进行再缩小,VGS最大再缩小2倍,即最大缩小倍数为OT_VPSS_MAX_ZOOMOUT*2。
- Hi3519DV500/Hi3511CV100调用VGS进行再缩小时,不支持幅形比。
- Hi3519DV500通过FMU对接后级模块的场景,不支持调用VGS进行再缩小。
- Hi3519DV500开启直通通道时,直通通道与通道0不支持缩放,其他物理通道不支持放大。
- Hi3519DV500开启GDC功能或输入OT_VIDEO_FORMAT_TILE_32x4格式,且3DNR功能关闭,所有通道都未打开mirror/flip时,通道0不支持缩放,其他物理通道不支持放大。
- 拼接模式不支持缩放。
- Hi3516CV610物理通道0输出OT_VIDEO_FORMAT_TILE_64x16格式时,不支持缩放。
【相关数据类型及接口】
无。
OT_VPSS_EXT_CHN_MAX_ZOOMIN
【说明】
定义VPSS扩展通道的最大放大倍数。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_EXT_CHN_MAX_ZOOMOUT
【说明】
定义VPSS扩展通道的最大缩小倍数。
【定义】
Hi3519DV500/Hi3516CV610:
Hi3511CV100:
【注意事项】
在Hi3516CV610中,扩展通道的输入宽度小于等于2048时,宽度的最大缩小倍数为30;输入宽度大于2048时,宽度的最大缩小倍数为15。
【相关数据类型及接口】
无。
OT_VPSS_EXT_CHN_MAX_IMG_WIDTH
【说明】
定义VPSS扩展通道的最大图像宽度。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_EXT_CHN_MAX_IMG_HEIGHT
【说明】
定义VPSS扩展通道的最大图像高度。
【定义】
Hi3519DV500/Hi3511CV100:
Hi3516CV610:
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_CHN0
【说明】
定义VPSS物理通道0的通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_CHN1
【说明】
定义VPSS物理通道1的通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_CHN2
【说明】
定义VPSS物理通道2的通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_CHN3
【说明】
定义VPSS物理通道3的通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
OT_VPSS_DIRECT_CHN
【说明】
定义VPSS直通通道的通道号。
【定义】
【注意事项】
- 独立通道号,仅支持绑定到VENC做H.264或H.265编码。
- Hi3516CV610/Hi3511CV100不支持直通通道。
【相关数据类型及接口】
无。
OT_VPSS_INVALID_CHN
【说明】
定义VPSS非法通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
ot_vpss_grp
【说明】
定义VPSS组号。
【定义】
【注意事项】
Hi3519DV500最后6组提交给VGS硬件处理。
【相关数据类型及接口】
无。
ot_vpss_grp_pipe
【说明】
定义VPSS组pipe号。
【定义】
【注意事项】
仅拼接功能开启时支持多pipe输入。
【相关数据类型及接口】
无。
ot_vpss_chn
【说明】
定义VPSS通道号。
【定义】
【注意事项】
无。
【相关数据类型及接口】
无。
ot_vpss_dei_mode
【说明】
定义DEI模式。
【定义】
typedef enum {
OT_VPSS_DEI_MODE_OFF = 0,
OT_VPSS_DEI_MODE_ON,
OT_VPSS_DEI_MODE_AUTO,
OT_VPSS_DEI_MODE_BUTT
} ot_vpss_dei_mode;
【成员】
【注意事项】
建议首选自适应模式OT_VPSS_DEI_MODE_AUTO。
【相关数据类及接口】
ot_vpss_grp_attr
【说明】
定义VPSS Group属性。
【定义】
typedef struct {
td_bool ie_en;
td_bool dci_en;
td_bool buf_share_en;
td_bool mcf_en;
td_u32 max_width;
td_u32 max_height;
td_u32 max_dei_width;
td_u32 max_dei_height;
ot_pixel_format pixel_format;
ot_vpss_dei_mode dei_mode;
ot_vpss_chn buf_share_chn;
ot_frame_rate_ctrl frame_rate;
ot_dynamic_range dynamic_range;
} ot_vpss_grp_attr;
【成员】
|
取值范围请参见Tabell 3。 |
|
|
取值范围请参见Tabell 3。 |
|
|
取值范围:[OT_VPSS_MIN_IMG_WIDTH, 4096] |
|
|
取值范围:[OT_VPSS_MIN_IMG_HEIGHT, 4096] |
|
VPSS组图像和通道输出图像共用VB功能使能时,对应的通道号。功能不使能时通道号不生效。 取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
|
【注意事项】
- 无效参数无需设置,不做异常参数检查。
-
max_width、max_height用于分配3DNR参考帧、重构帧buffer,分配使用的内存大小是按16对齐后的宽高来计算的。对于Hi3519DV500,当VPSS分块处理且开启3DNR时,输入图像宽度不能大于组属性最大宽度,开启3DNR时,buffer大小是否足够以运行时校验为准。
- 若3DNR开启组裁剪功能,max_width、max_height可配置为裁剪后宽高以节省内存。
- Hi3519DV500若3DNR开启GDC功能但未开启组裁剪时,max_width、max_height可配置为GDC输出宽高。
-
OT_VI_ONLINE_VPSS_ONLINE模式时,组属性最大宽高必须与VPSS实际输入图像分辨率一致。
- 离线模式时,pixel_format用于分配3DNR、IE 等参考帧buffer,使能3DNR\IE\DEI时,也表示当前组支持输入的最大像素格式(如果设置为semi-planar 420则不支持输入semi-planar 422图像);OT_VI_ONLINE_VPSS_ONLINE模式,组属性像素格式需要设置成实际输入像素格式。
- 组帧率控制只有VPSS工作在离线模式时,并且通过系统绑定送图像到VPSS时才会生效,通过ss_mpi_vpss_send_frame、ss_mpi_vpss_send_frame_ex接口送图像到VPSS组帧率控制不生效。
- 组帧率控制在接收到FMU帧时不生效。
-
DEI开启时,max_dei_width不能超过max_width,max_width不能超过4096,max_dei_height不能超过4096。
DEI开启时需要额外申请MMZ的内存,包括参考帧内存(ref)和DEI内存(dei)。DEI内存的大小会根据max_dei_width、max_dei_height设置的值来计算。
-
输入输出复用buffer功能有以下约束或注意事项:
- 只有USER模式的通道支持;
- 开启flip的通道不支持复用buffer;
- 开启幅形比的通道,不支持复用buffer;
- 紧凑段压缩时不支持复用buffer。
- 用户送图像的VB 每帧都需重写输入数据,否则会因为输入数据被重复改写导致图像异常。
- 多个组绑定同一个输入源时不支持复用buffer。
- VPSS和其它模块一起绑定同一个输入源时不支持复用buffer。
- 使能此功能后,调用获取组亮度和接口获取的亮度和可能不准确,建议不要获取组亮度和。
- VI 插入用户图片场景下,由于用户图片VB 是一块固定的VB,如果VPSS 使能此功能后会导致用户图片VB 被频繁改写,此时VPSS 组不要开启Crop、IE 功能,并且输出通道不要开启压缩、缩放等。
- 输入输出复用buffer会对输入图像进行改写,场景上需要考虑改写影响。
- Hi3519DV500/Hi3511CV100仅离线模式物理通道支持复用buffer。
- Hi3519DV500/Hi3511CV100只有在输入宽高不小于输出宽高且压缩模式、像素格式、视频格式一致时才支持复用buffer。
- Hi3519DV500开启mcf_en、组裁剪、分块处理、接收FMU卷绕或FMU直通模式帧、gdc相关功能(包括输入tile32x4格式)开启、同时开启输入输出低延时、低延时单buffer、flip不支持复用buffer。
- Hi3511CV100开启组裁剪、分块处理、开启输入输出低延时、低延时单buffer、flip不支持复用buffer。
- 设置chn_stride_align,使输出stride大于输入stride时不支持复用buffer。
- 开启GDC功能或输入OT_VIDEO_FORMAT_TILE_32x4时,不支持复用buffer。
- Hi3516CV610不支持开启buf_share功能。
-
开启输入输出复用buffer功能后,如上述约束条件相关参数改变,VPSS会自适应开关复用buffer功能。
- DCI/IE/DEI 等属性开关打开,会分配属性功能需要的内存,当关闭属性开关时,相应的内存会被释放。
- Hi3519DV500/Hi3516DV500/Hi3516CV610/Hi3511CV100不支持IE、DEI、DCI功能;IE、DCI开关需要关闭,DEI相关参数无效。
- Hi3516CV610/Hi3511CV100不支持MCF功能,开关需要关闭。
- Hi3519DV500仅离线模式支持mcf_en设置为TD_TRUE。
- Hi3519DV500 mcf_en使能后,仅支持以下接口,其中GDC相关的接口一般只使用视场角矫正和缩放功能,其他功能未作限制但是基本没有使用场景:
- ss_mpi_vpss_create_grp
- ss_mpi_vpss_destroy_grp
- ss_mpi_vpss_start_grp
- ss_mpi_vpss_stop_grp
- ss_mpi_vpss_reset_grp
- ss_mpi_vpss_get_grp_attr
- ss_mpi_vpss_set_grp_attr
- ss_mpi_vpss_set_grp_3dnr_attr
- ss_mpi_vpss_get_grp_3dnr_attr
- ss_mpi_vpss_set_grp_3dnr_param
- ss_mpi_vpss_get_grp_3dnr_param
- ss_mpi_vpss_get_grp_param
- ss_mpi_vpss_set_grp_param
- ss_mpi_vpss_set_chn_vb_src
- ss_mpi_vpss_get_chn_vb_src
- ss_mpi_vpss_attach_chn_vb_pool
- ss_mpi_vpss_detach_chn_vb_pool
- ss_mpi_vpss_set_mod_param
- ss_mpi_vpss_get_mod_param
- ss_mpi_vpss_set_grp_gdc_param
- ss_mpi_vpss_get_grp_gdc_param
- ss_mpi_vpss_set_grp_fisheye_cfg
- ss_mpi_vpss_get_grp_fisheye_cfg
- ss_mpi_vpss_query_grp_fisheye_pos_dst_to_src
- ss_mpi_vpss_query_grp_ldc_pos_dst_to_src
- ss_mpi_vpss_query_grp_ldc_pos_src_to_dst
- ss_mpi_vpss_query_grp_gdc_pos_dst_to_src
- ss_mpi_vpss_set_grp_ldc
- ss_mpi_vpss_get_grp_ldc
- ss_mpi_vpss_set_grp_spread
- ss_mpi_vpss_get_grp_spread
- ss_mpi_vpss_set_grp_fisheye
- ss_mpi_vpss_get_grp_fisheye
- ss_mpi_vpss_set_grp_rotation
- ss_mpi_vpss_get_grp_rotation
- ss_mpi_vpss_set_grp_pmf
- ss_mpi_vpss_get_grp_pmf
- ss_mpi_vpss_set_grp_fov
- ss_mpi_vpss_get_grp_fov
- ss_mpi_vpss_set_grp_lut
- ss_mpi_vpss_get_grp_lut
- ss_mpi_vpss_set_grp_zme
- ss_mpi_vpss_get_grp_zme
- ss_mpi_vpss_set_grp_stitch
- ss_mpi_vpss_get_grp_stitch
- ss_mpi_vpss_set_grp_stitch_blend_param
- ss_mpi_vpss_get_grp_stitch_blend_param
- ss_mpi_vpss_get_chn_fd
【相关数据类及接口】
- ot_pixel_format
- ss_mpi_vpss_create_grp
- ss_mpi_vpss_set_grp_attr
- ss_mpi_vpss_get_grp_attr
ot_vpss_chn_mode
【说明】
定义VPSS CHN工作模式。
【定义】
typedef enum {
OT_VPSS_CHN_MODE_AUTO = 0,
OT_VPSS_CHN_MODE_USER,
OT_VPSS_CHN_MODE_BUTT
} ot_vpss_chn_mode;
【成员】
【注意事项】
- 通道设置为AUTO模式时,支持与VO、VENC或PCIV模块绑定。VO设置为Single模式时,也支持,但不推荐VO为Single模式下使用AUTO模式。
- 通道设置为AUTO模式时,只能与一个接收者绑定。
- 只有工作在离线模式下,通道才支持AUTO模式。
- Hi3511CV100通道设置为AUTO模式时,只支持VENC模块绑定。
【相关数据类型及接口】
无
ot_vpss_chn_attr
【说明】
定义VPSS物理通道的属性。
【定义】
typedef struct {
td_bool mirror_en;
td_bool flip_en;
td_bool border_en;
td_u32 width;
td_u32 height;
td_u32 depth;
ot_vpss_chn_mode chn_mode;
ot_pixel_format pixel_format;
ot_compress_mode compress_mode;
ot_frame_rate_ctrl frame_rate;
ot_border border_attr;
ot_aspect_ratio aspect_ratio;
ot_dynamic_range dynamic_range;
ot_video_format video_format;
} ot_vpss_chn_attr;
【成员】
|
取值范围请见Tabell 6。 |
|
|
取值范围请见Tabell 6。 |
|
边框属性,上下左右边框宽度取值范围为[0, 14],并且只能取偶数值,边框颜色取值范围[0, 0xFFFFFF]。具体描述请参考“系统控制”章节。 |
|
【注意事项】
- 源帧率与目标帧率都为-1,则不进行帧率控制,在通道AUTO模式下通道帧率控制不生效。
- 目标帧率不能大于源帧率。
- 通道低延时与flip不能同时开启。
- 幅形比处理时,先做缩放,再加黑边,缩放比例越大,处理时间越长,可能会导致帧率下降。
- 支持通过设置通道输出像素格式实现UV反转。
- Hi3519DV500/Hi3516CV610/Hi3511CV100通道为紧凑段压缩写出时不支持CoverEx、OverlayEx、MosaicEx、LineEx和Corner_rectEx。
- Hi3516CV610通道模式仅支持OT_VPSS_CHN_MODE_USER模式。
- AUTO模式如query到不支持的压缩时会强制改为非压输出。
- chn_mode为AUTO模式时,width、height、aspect_ratio、compress_mode、pixel_format、frame_rate、video_format设置不生效,相应设置由后端模块确定,depth不生效,图像不会进入通道队列。
- Hi3519DV500/Hi3516DV500/Hi3516CV610不支持border。
- Hi3516CV610不支持幅形比。
- Hi3519DV500/Hi3511CV100当前输入宽超过4096且压缩输出时,不支持mirror和幅形比同时开启。
- Hi3516CV610仅通道0支持OT_COMPRESS_MODE_SEG_COMPACT压缩格式。当输出OT_COMPRESS_MODE_SEG_COMPACT格式且输入图像非分块的情况下,通道输出宽度最大仅支持到3840,分块时可以支持到4096。输出OT_COMPRESS_MODE_SEG_COMPACT格式与mirror/flip不能同时开启。
- Hi3519DV500通道FMU模式设置为卷绕时,不支持输出YUV400压缩格式。
-
幅形比参数在通道属性中设置。只有在VPSS通道设置为USER模式时才生效,AUTO模式下幅形比参数由VO设置。
- 设定为OT_ASPECT_RATIO_MANUAL模式时,用户手动设置图像的起始坐标和宽高,VPSS会根据用户的设置来输出图像并添加黑边。图像显示的区域不允许超过输出图像的宽高。
- 设定为OT_ASPECT_RATIO_AUTO模式时,VPSS会保持输出画面的宽高比和输入宽高比一致,自动在画面上下或者左右加上黑边。
- 鱼眼多区域和拼接开启时,不支持开启幅形比。
- 开启通道裁剪时,不支持开启幅形比。
- 通道fmu模式设置为卷绕或直通时,不支持开启幅形比。
-
保留参数无需设置,不做异常参数检查。
- 通道压缩格式能力不匹配或不支持对应场景下进行压缩时,如果输出不是紧凑段压缩时,系统会自动校正,并且有相关的警告信息。
-
Hi3519DV500/Hi3516CV610/Hi3511CV100 VPSS工作在OT_VI_ONLINE_VPSS_ONLINE模式不支持放大。
输出linear格式时最大支持15倍缩小。
-
VPSS在线模式除外的其他模式:
- Hi3519DV500/Hi3511CV100:输出linear格式时最大支持30倍缩小,最大支持16倍放大,分块场景通道0开启压缩时,最大支持缩小28倍。
- Hi3516CV610:输出时最大支持15倍缩小,最大支持16倍放大。当VPSS工作在OT_VI_OFFLINE_VPSS_ONLINE模式且输入图像分块时,通道0不支持水平缩放。
-
Hi3519DV500 VPSS工作在OT_FRAME_INTERRUPT_EARLY模式时,通道0压缩和flip不能同时开启。
- 通道AUTO模式与通道裁剪功能互斥。
- 与FMU相关约束参考表1。
【相关数据类型及接口】
ot_vpss_ext_chn_attr
【说明】
定义VPSS扩展通道的属性。
【定义】
typedef struct {
ot_vpss_chn bind_chn;
ot_ext_chn_src_type src_type;
td_u32 width;
td_u32 height;
td_u32 depth;
ot_video_format video_format;
ot_dynamic_range dynamic_range;
ot_pixel_format pixel_format;
ot_compress_mode compress_mode;
ot_frame_rate_ctrl frame_rate;
} ot_vpss_ext_chn_attr;
【成员】
|
取值范围请见Tabell 10。 |
|
|
取值范围请见Tabell 10。 |
|
【注意事项】
- 源帧率与目标帧率都为-1,则不进行帧率控制。
- 目标帧率不能大于源帧率。
- 支持通过设置通道输出像素格式实现UV反转。
- Hi3519DV500/Hi3516CV610支持通过设置通道输出像素格式实现输出OT_PIXEL_FORMAT_VY1UY0_PACKAGE_422格式的图像。
- Hi3519DV500/Hi3516CV610扩展通道最大支持30倍缩小,最大支持16倍放大。
- Hi3511CV100扩展通道最大支持15倍缩小,最大支持16倍放大。
- 绑定源物理通道必须合法,范围为[0, OT_VPSS_MAX_PHYS_CHN_NUM)。
- 绑定源物理通道必须工作在USER模式。
- 绑定源若为非OT_FMU_MODE_OFF模式,则扩展通道不生效。
【相关数据类型及接口】
ot_vpss_crop_info
【说明】
定义CROP功能所需信息。
【定义】
【成员】
【注意事项】
-
若crop_mode为OT_COORD_RATIO(相对坐标模式),使用crop_rect的成员时应做转换,计算公式为:
- x = 起始点坐标x原始图像宽度/1000,合法取值范围:[0, 999],计算完成后会进行取整操作和对齐操作。公式同样适用于纵坐标计算,x为转换后的坐标。
- width=区域宽度x实际图像宽度/1000,区域宽度取值范围:[1, 1000]。计算完成后会进行取整操作和对齐操作。公式同样适用于区域高度计算,width为转换后的宽。
-
相对模式裁剪时,裁剪区域坐标取值范围为[0, 999],裁剪区域宽高取值范围为[1, 1000]。
-
若crop_mode为OT_COORD_ABS(绝对坐标模式):
- 对于grp_crop, Crop区域的宽高不能小于VPSS最小输入宽高,不能大于VPSS最大输入宽高;起始坐标不能超出最大输入宽高。
- 对于chn_crop, Crop区域的宽高不能小于VPSS最小输出宽高,不能大于VPSS最大输出宽高;起始坐标不能超出最大输出宽高。
- 如果Crop区域超出图像范围,则自动裁剪到图像有效范围。
-
裁剪区域起始点不支持负坐标。
- 裁剪区域起始点坐标和宽高要求2像素对齐。
- Hi3519DV500 VPSS开启3DNR时,裁剪宽高自动向下4像素对齐。
【相关数据类型及接口】
- ot_coord
- ss_mpi_vpss_set_grp_crop
- ss_mpi_vpss_get_grp_crop
- ss_mpi_vpss_set_chn_crop
- ss_mpi_vpss_get_chn_crop
ot_vpss_grp_param
【说明】
定义VPSS组属性。
【定义】
【成员】
【注意事项】
- ie_strength相对功能比较独立。ie_strength 用以设定画面整体锐利度。该参数设置越高则画面越清晰,但画面噪声会被提高。此时如果先想保持原先的画面风格需要将去噪强度提高,有很大可能造成画面拖尾问题的出现。因此建议该值设定不宜过高,以不超过12为最佳。
- contrast和ie_strength对于Hi3519DV500无效,不做异常检查。
【相关数据类型及接口】
ot_vpss_out_lut_cfg
【说明】
定义VPSS 写出GDC LUT配置信息。
【定义】
typedef struct {
td_bool enable; /* RW; Range: [0, 1]; save gdc out lut or not */
td_u32 buf_size; /* RW; buf size of out lut */
} ot_vpss_out_lut_cfg;
【成员】
是否使能写出gdc lut。默认值为TD_FALSE。调用查询接口进行坐标查询时需要开启,否则可关闭以节省lut写出内存。 |
|
【注意事项】
buf_size = OT_ALIGN_UP(func(out_size.width, cell_size), 32) * OT_ALIGN_UP((out_size.height + (16<<cell_size) -1)/(16<<cell_size) + 1, 32)
- func(out_size.width, cell_size)对应的算法实现是OT_ALIGN_UP(((OT_DIV_UP(out_size.width, (16 << cell_size)) + 1) * 8), 16)。
- out_size代表gdc每个区域输出的宽高,类型是ot_size。若gdc为多区域输出,buf_size按照实际生效的输出区域结果累加计算。例如鱼眼有两个输出区域:region0, region1,先分别计算对应的buf_size0, buf_size1, 总的大小是buf_size=buf_size0+buf_size1;
- cell_size代表LUT精度,该变量为枚举整数类型ot_lut_cell_size,范围是[0,4],(16<<(cell_size))的最大值为256。
- #define OT_ALIGN_UP(x, a) ((((x) + ((a) - 1)) / (a)) * (a))
- #define OT_DIV_UP(x, a) (((x) + ((a) - 1)) / (a))
【相关数据类型及接口】
ot_vpss_grp_cfg
【说明】
定义VPSS 组cfg配置信息。
【定义】
typedef struct {
td_bool is_rotation_input_support; /* RW; Range: [0, 1]; is a rotation input or not. default false */
td_bool is_dis_gyro_support; /* RW; Range: [0, 1]; is a dis gyro grp or not. default false */
td_bool is_dis_ref_support; /* RW; Range: [0, 1]; is dis ref or not. default false */
td_bool is_motion_denoise_support; /* RW: Range: [0, 1]:is motion_denoise support or not. default false*/
td_u32 max_split_num; /* RW; Max node number of split. */
td_u32 max_out_rgn_num; /* RW; Max region number for fisheye or stitch. */
ot_vpss_out_lut_cfg lut_cfg;
} ot_vpss_grp_cfg;
【成员】
是否支持旋转输入。默认值为TD_FALSE。开启VPSS的3DNR功能时,分配参考帧内存是否考虑旋转输入,考虑旋转输入可能会增加参考帧内存大小。 |
|
是否支持陀螺仪防抖功能。默认值为TD_FALSE。开启陀螺仪防抖功能时,必须开启,否则可关闭以节省陀螺仪相关数据存储内存。 |
|
是否支持参考帧防抖功能。默认值为TD_FALSE。开启参考帧防抖功能时,必须开启,否则可关闭以节省参考帧和陀螺仪相关数据存储内存。 |
|
最大分块节点数。取值范围:[1, OT_VPSS_MAX_SPLIT_NODE_NUM]。Hi3519DV500/Hi3511CV100默认值为3,Hi3516CV610默认值为2。无需分块时可设置为1,以节省模板内存。 |
|
最大输出区域数。取值范围:[1, OT_VPSS_MAX_OUT_RGN_NUM]。默认值为1。鱼眼多区域输出时,该值不能小于鱼眼区域数;拼接场景时,该值不能小于拼接pipe数;其他场景可设置为1以节省模板内存。 |
|
【注意事项】
- 该接口用于特定功能的小型化配置。
- 需在ss_mpi_vpss_create_grp接口调用前调用。
- 调用ss_mpi_vpss_destroy_grp接口后参数保留,不会主动重置为默认配置。
- is_dis_gyro_support为TRUE时不支持开启OT_FMU_MODE_WRAP或OT_FMU_MODE_DIRECT模式,不支持stitch功能。
- is_rotation_input_support、is_dis_gyro_support、is_dis_ref_support、is_motion_denoise_support、lut_cfg对于Hi3516CV610/Hi3511CV100无效,不做异常检查。
- 系统退出后恢复默认配置。
【相关数据类型及接口】
ot_vpss_rgn_info
【说明】
定义VPSS 亮度和区域信息。
【定义】
typedef struct {
td_u32 rgn_num; /* W; count of the rgn */
ot_rect ATTRIBUTE *rgn; /* W; rgn attribute */
} ot_vpss_rgn_info;
【成员】
【注意事项】
无
【相关数据类型及接口】
ot_vpss_mod_param
【说明】
通过接口设置模块参数。
【定义】
typedef struct {
td_u32 max_out_width;
td_u32 max_out_height;
td_u32 chain_weight_threshold;
td_bool output_low_delay_support;
} ot_vpss_mod_param;
【成员】
模块最大输出宽度。取值范围:[OT_VPSS_MIN_IMG_WIDTH, OT_VPSS_MAX_OUT_IMG_WIDTH], 默认为OT_VPSS_MAX_OUT_IMG_WIDTH。该值影响物理通道最大输出宽度。 |
|
模块最大输出高度。取值范围:[OT_VPSS_MIN_IMG_HEIGHT, OT_VPSS_MAX_OUT_IMG_HEIGHT], 默认为OT_VPSS_MAX_OUT_IMG_HEIGHT。该值影响物理通道最大输出高度,以及存在FMU卷绕压缩输出时,压缩头空间的大小。有小型化需求时可通过降低最大输出高度来减少卷绕压缩输出的压缩头内存占用。 |
|
|
VPSS grp数较多时,增大组链阈值可以减少VPSS中断数量,但是单次中断处理的任务数量会增多(即单次中断处理时间变长),建议按实际情况将chain_weight_threshold调大至80/120/160测试取最优值。 |
|
|
如果客户场景所有VPSS通道都没有低延时输出的需求,可全局关闭低延时功能,对于VPSS grp数多的场景可降低cpu消耗。另NVR场景下,VO使用multi模式,VO multi模式是不支持低延时帧的,因此建议关闭此功能。 |
【注意事项】
仅Hi3511CV100支持chain_weight_threshold功能。
【相关数据类型及接口】
ot_vpss_chn_buf_wrap_attr
【说明】
定义VPSS卷绕属性。
【定义】
typedef struct {
td_bool enable; /* RW; Range: [0, 1] */
td_u32 buf_line; /* RW; Range: [128, chn_height]; chn wrap buffer line */
td_u32 buf_size; /* RW; chn wrap buffer size */
} ot_vpss_chn_buf_wrap_attr;
【成员】
【注意事项】
- 为适应不同业务压力,避免丢帧,请参考“系统控制”章节的ss_mpi_sys_get_vpss_venc_wrap_buf_line接口计算buf_line的推荐值。
- 使能卷绕时,buf_size必须大于0,其计算可参考代码hi_buffer.h中的函数ot_comm_get_vpss_venc_wrap_buf_size。
- 卷绕buffer使用的是公共VB,用户需先为其分配一个大小合适的公共VB,VPSS在使能通道0卷绕时按buf_size获取公共VB。
- 当多个Group都使能通道0卷绕时,用户仅需分配一个公共VB作供所有卷绕Group使用,VB的大小取多个Group分别计算出的buf_size的最大值。
【相关数据类型及接口】
ot_vpss_svc_param
【说明】
定义VPSS Group SVC参数。
【定义】
【成员】
指定SVC通道。取值范围:[0, OT_VPSS_MAX_PHYS_CHN_NUM) |
【注意事项】
- 使能此功能时,svc_chn设置为智能模块从VPSS取帧的物理通道号;不建议对智能编码绑定的物理通道进行通道帧控,可能导致码流效果变差。
- 使能此功能时,svc_chn通道帧控之后,每svc_interval帧在各个通道出帧的帧信息中的frame_flag成员上置位OT_FRAME_FLAG_SVC_FLAG标记,供后级模块使用。VPSS会基于svc_chn指定的物理通道出帧时刻去给其他已使能的物理通道(包括svc_chn)出帧打上OT_FRAME_FLAG_SVC_FLAG标记,以保证码流路与智能路的打标记帧的pts相同。
- 例如各通道无帧控时,svc_interval设置为4,则各通道输出帧每4帧中有1帧打上此标记。例如svc_chn通道帧控4:1,其他通道无帧控,svc_interval设置为1,则svc_chn出帧每帧都打上标记,而其他通道则是每4帧中有1帧打上标记。
- 当使能此功能但svc_chn未使能时,此功能无法生效。
【相关数据类型及接口】
ot_vpss_luma_result
【说明】
定义VPSS 亮度和返回值信息。
【定义】
typedef struct {
ot_size img_size; /* R; Image size info. */
td_u64 ATTRIBUTE *luma_data; /* R; Luma data. */
} ot_vpss_luma_result;
【成员】
【注意事项】
无。
【相关数据类型及接口】
ot_vpss_chn_sharpen_param
【说明】
定义通道Sharpen属性。
【定义】
【成员】
【注意事项】
无。
【相关数据类型及接口】
ot_vpss_chn_cfg
【说明】
定义通道配置结构体。
【定义】
【成员】
【注意事项】
无。
【相关数据类型及接口】
错误码
视频处理子系统API错误码如表1所示。
表 1 VPSS API错误码