VI、VPSS、VENC、VDEC、VO对这五个模块配置过程中都涉及到分辨率,现在总结如下:
1.VI模块:
涉及到的函数:HI_S32 HI_MPI_VI_SetChnAttr(VI_CHN ViChn, const VI_CHN_ATTR_S *pstAttr);
其中结构体pstAttr中包含分辨率信息如下
(1)RECT_S stCapRect;
typedef struct hiRECT_S
{
HI_S32 s32X;
HI_S32 s32Y;
HI_U32 u32Width;
HI_U32 u32Height;
}RECT_S;
采集区域起始坐标用于配置需要采集的矩形图像相对于原始图像起始点的位置。起始点位置的横坐标以像素为单位,纵坐标以行为单位。
stCapRect 中 s32X 和 u32Width 必须 2 对齐; s32Y 和 u32Height 逐行采集时必须 2 对齐。
(2)SIZE_S stDestSize;
typedef struct hiSIZE_S
{
HI_U32 u32Width;
HI_U32 u32Height;
} SIZE_S;
目标图像大小 stDestSize:必须配置,且大小不应该超出外围 ADC 输出图像的大小范围,否则可能导致VI 硬件工作异常。stDestSize 宽可为主属性stCapRect 宽的 1 倍或 1/2,而高在只采集单场时必须为主属性 stCapRect 高的 1/2,采集两场时两者必须相同。最小目标图像大小:最小采集宽高为 32×32。
2.VPSS模块:
涉及到的函数:HI_S32 HI_MPI_VPSS_CreateGrp(VPSS_GRP VpssGrp, VPSS_GRP_ATTR_S *pstGrpAttr);
其中结构体pstGrpAttr中包含分辨率信息如下
HI_U32 u32MaxW;
HI_U32 u32MaxH;
3.VENC模块:
HI_S32 HI_MPI_VENC_CreateChn(VENC_CHN VeChn, const VENC_CHN_ATTR_S *pstAttr);
其中结构体pstAttr中包含分辨率信息如下(VENC_ATTR_H264_S stH264Attr)
HI_U32 u32MaxPicWidth;
HI_U32 u32MaxPicHeight;
HI_U32 u32PicWidth;
HI_U32 u32PicHeight;
如果输入图像比编码通道尺寸大, VENC 将按照编码通道尺寸大小,调用 DSU 对
源图像进行缩小,然后对缩小之后的图像进行编码。
如果输入图像比编码通道尺寸小, VENC 丢弃源图像。 VENC 不支持放大输入图像编码。
如果输入图像与编码通道尺寸相当, VENC 直接接受源图像,进行编码。
4.VDEC模块
HI_S32 HI_MPI_VDEC_CreateChn(VDEC_CHN VdChn, const VDEC_CHN_ATTR_S *pstAttr);
其中结构体pstAttr中包含分辨率信息如下
HI_U32 u32PicWidth;
HI_U32 u32PicHeight;
u32PicWidth 通道支持的解码图像最大宽(以像素为单位)
u32PicHeight 通道支持的解码图像最大高(以像素为单位)
5.VO模块:
(1)HI_S32 HI_MPI_VO_SetVideoLayerAttr(VO_DEV VoDev, const VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);
其中结构体pstLayerAttr中包含分辨率信息如下
RECT_S stDispRect;
SIZE_S stImageSize;
stDispRect 视频显示区域矩形结构体。
stImageSize 图像分辨率结构体,即合成画面尺寸。
(2)HI_S32 HI_MPI_VO_SetChnAttr(VO_DEV VoDev, VO_CHN VoChn, const VO_CHN_ATTR_S *pstChnAttr);
其中结构体pstChnAttr中包含分辨率信息如下
RECT_S stRect;
通道矩形显示区域。以屏幕的左上角为原点。其取值必须是 2 对齐,且该矩形区域必须在屏幕范围之内。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
暂无评论内容