【海思基础篇】-(1)VPSS模块
VPSS(Video Process Sub-System)是视频处理子系统。支持对输入图像进行统一预处理,如去噪、去隔行、裁剪等,然后再对各通道分别进行处理,如缩放、加边框等。 支持的具体图像处理功能包括FRC(Frame Rate Control)、Crop、3DNR、DEI(De-interlace)、IE(Image Enhance)、DCI(Dynamic Contrast Improvement)、LTI(LuminanceTransition Improvement)/CTI(Chroma Transition Improvement)、Cover/CoverEx、Overlay/OverlayEx、Mosaic/MosaicEx、Scale、固定角度旋转、Mirror/Flip、Aspect Ratio、Border、像素格式转换、压缩解压。
1.工作模式
AUTO 和USER,两种模式间可动态切换。
AUTO 模式下各通道仅可与一个接收者绑定,主要用于预览 和回放场景下做播放控制。
USER 模式下各通道可与多个接收者绑定。
2.特别注意
USER 模式主要用于对同一通道图像进行多路编码的场景,此模式下播放控制不生效,因此回放场景下不建议使用 USER 模式。VPSS只有工作在离线模式下才支持 AUTO 模式。
USER模式可以自动缩小分辨率
,比如VPSS分辨率为1080P,抓拍属性可以设置为1080P,720P,D1等分辨率抓拍;同时针对HI3519AV100 VI PIPE0,1不支持YUV,经过IVE转换后YUV数据,直接通过HI_MPI_VPSS_SendFrame发送时,VPSS CHN属性必须如下USER模式,否则编码数据有问题。
针对vpss组中通道而言,只支持一个通道放大,其他通道不能发达只具有缩小功能。因此针对该场景的时候,我们只能针对该输入分辨率下一个通道放大,其他通道宽高属性只能小于等于该输入分辨率。同时该vpss组下通道如果绑定了venc,也不能通道vpss自动放大而编码超过该输入分辨率的编码宽高的录像。这一点一定要注意,有时可以通过cat /dev/logmpp 查看。3.VI PIPE
针对Hi3519AV100 所有PIPE通道都支持RAW,但是只有PIPE2-5只支持YUV数据,PIPE0,1不支持YUV数据情况,在针对PIPE0和1时候,VI有些特殊的设置。
if(g_PipeId[i][j] == 0 || g_PipeId[i][j] == 1)
{
VI_DUMP_ATTR_S stRawDumpAttr;
VI_DUMP_ATTR_S stDumpAttr;
s32Ret = HI_MPI_VI_GetPipeDumpAttr(g_PipeId[i][j], &stRawDumpAttr);
if (HI_SUCCESS != s32Ret)
{
printf(“Get Pipe %d dump attr failed!\n”, g_PipeId[i][j]);
return s32Ret;
}
memcpy(&stDumpAttr, &stRawDumpAttr, sizeof(VI_DUMP_ATTR_S));
stDumpAttr.bEnable = HI_TRUE;
stDumpAttr.u32Depth = 2;
stDumpAttr.enDumpType = VI_DUMP_TYPE_RAW;
s32Ret = HI_MPI_VI_SetPipeDumpAttr(g_PipeId[i][j], &stDumpAttr);
if (HI_SUCCESS != s32Ret)
{
printf(“Set Pipe %d dump attr failed!\n”, g_PipeId[i][j]);
return s32Ret;
}
}/* Disconnect data flow between FE and BE in driver */
s32Ret = HI_MPI_VI_SetPipeFrameSource(g_PipeId[i][j], VI_PIPE_FRAME_SOURCE_USER_BE);
if (HI_SUCCESS != s32Ret)
{
DEBUG_PRINTF(“HI_MPI_VI_SetPipeFrameSource failed with %#x\n”, s32Ret);
return s32Ret;
}免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:【海思基础篇】-(1)VPSS模块 https://www.yhzz.com.cn/a/14837.html