6209
- 收藏
- 点赞
- 分享
- 举报
总结vi vpss venc vdec vpss模块中需要配置的分辨率之间区别
本帖最后由 feiyashan 于 2017-1-6 10:11 编辑
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,采集两场时两者必须相同。最小目标图像大小:最小采集宽高为 32x32。
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 对齐,且该矩形区域必须在屏幕范围之内。
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,采集两场时两者必须相同。最小目标图像大小:最小采集宽高为 32x32。
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 对齐,且该矩形区域必须在屏幕范围之内。
我来回答
回答1个
时间排序
认可量排序
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2017-03-14 15:00:47
-
2020-06-08 15:31:47
-
2018-01-03 14:07:45
-
2017-08-14 14:32:18
-
2020-03-03 17:20:41
-
2020-10-03 16:19:27
-
2020-11-04 15:26:13
-
32014-12-05 15:25:51
-
2017-07-11 14:38:32
-
2020-05-06 17:05:40
-
2016-04-11 16:16:18
-
2020-12-07 09:39:27
-
2019-05-07 15:32:29
-
2018-03-11 12:33:21
-
82017-02-07 14:18:17
-
2018-12-18 17:17:21
-
112013-08-07 10:07:13
-
2016-09-03 17:26:36
-
2019-07-16 20:37:57
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
10RV1106的低功耗和休眠唤醒功能
-
10海思平台(Hi3516DV500),设置完ldc参数后 工作异常
-
5rv1126-dc-201 安装hi3881.ko wifi驱动成功后 启动connmand服务,系统就崩了
-
10ss928编码的h264帧流,用RTSP传输到电脑,VLC播放不了是什么情况?
-
10我运行rv1126的开发环境后,编译demo提示没有opencv,自行编译安装后没有解决,请问这个怎么处理呢?板子是easy eai nano
-
50CPS-1848 link不上FPGA。
-
10想问一下各位大佬们,关于VI配置成8Lan LVDS模式的相关问题
-
10基于SS928的NNIE做人脸检测算法,模型转换异常
-
10RV1126 38板有imx415的镜像吗?
-
5海思3519dv500 LT9611配置设备树问题
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认