5054
- 收藏
- 点赞
- 分享
- 举报
Hi3516A SDK P帧帧内刷新功能
海思的开发参考文档有关P帧帧内刷新的相关原文如下
6.2.12 P 帧帧内刷新
P 帧刷新 ISlice,可以为客户提供码流非常平滑的编码方式,每个 I 帧和 P 帧的大小可
以非常接近。在网络带宽有限(如无线网络)的情况下,降低 I 帧过大带来的网络冲
击,降低网传延时,降低网络传输出错的概率。
6.2.12.1 使用方式
步骤 1. 通过接口 HI_MPI_VENC_SetIntraRefresh 设置刷新使能 bRefreshEnable 及 ISlice 转换使
能 bISliceEnable。
步骤 2. 设置刷新使能后 SDK 会自动根据设置的刷新行数 u32RefreshLineNum 从每个 GOP 的
第一帧开始从上至下完成 Intra 宏块刷新;刷新间隔为 GOP;
步骤 3. 设置 ISlice 转换使能后 SDK 会自动把每次刷新第一帧的帧内预测宏块转换为一个 I
Slice;刷新 ISlice 可以提供更好的码流兼容性;
步骤 4. 设置 HI_MPI_VENC_SetIntraRefresh 接口后,码率控制依然生效,可以调整
VENC_GOP_ATTR_S:stGopAttr.stNormalP.s32IPQpDelta 来控制 Intra 宏块刷新起始帧
的大小,推荐值为-1;
----结束
6.2.12.2 注意事项
1、HI_MPI_VENC_SetIntraRefresh 设置的刷新行数 u32RefreshLineNum 需要保证在一
个 GOP 周期内,图像内所有的宏块行都完成一次刷新;
2、由于刷新行数 u32RefreshLineNum 与编码参数 GOP 及跳帧参考参数相关,所以设
置编码属性及跳帧参考高级接口后,HI_MPI_VENC_SetIntraRefresh 接口需要重新
设置;
3、HI_MPI_VENC_SetIntraRefresh 只对 H.264/ H.265 协议有效;
4、HI_MPI_VENC_SetIntraRefresh 设置使能 bISliceEnable,刷新 Islice 的帧会自动按
照刷新 Islcie 的大小做 slice 划分,用户设置的 slice 划分接口将无效。
当 bRefreshEnable 使能时,bISliceEnable 必须配置为使能。
问题如下:
当前开发通过无线传输图像数据,希望可以有较平滑的编码,根据以上说明开启了P帧帧内刷新并且开启Islice使能。打印帧信息显示,只有在开始编码时出现了一个IDR帧,后续SPS PPS SEI帧后只有P帧不再出现I帧,帧的数量变多了,平均每帧的大小变小。且在编码时在SPS开始都会有一个较大的编码时延。编码时间不够平滑。在关闭了ISlice后,帧个数恢复。请问多出来的帧是哪里来的,是在没开启P帧帧内刷新时的I帧转换过来的么?有谁知道P帧帧内刷新的原理吗?谢谢?
6.2.12 P 帧帧内刷新
P 帧刷新 ISlice,可以为客户提供码流非常平滑的编码方式,每个 I 帧和 P 帧的大小可
以非常接近。在网络带宽有限(如无线网络)的情况下,降低 I 帧过大带来的网络冲
击,降低网传延时,降低网络传输出错的概率。
6.2.12.1 使用方式
步骤 1. 通过接口 HI_MPI_VENC_SetIntraRefresh 设置刷新使能 bRefreshEnable 及 ISlice 转换使
能 bISliceEnable。
步骤 2. 设置刷新使能后 SDK 会自动根据设置的刷新行数 u32RefreshLineNum 从每个 GOP 的
第一帧开始从上至下完成 Intra 宏块刷新;刷新间隔为 GOP;
步骤 3. 设置 ISlice 转换使能后 SDK 会自动把每次刷新第一帧的帧内预测宏块转换为一个 I
Slice;刷新 ISlice 可以提供更好的码流兼容性;
步骤 4. 设置 HI_MPI_VENC_SetIntraRefresh 接口后,码率控制依然生效,可以调整
VENC_GOP_ATTR_S:stGopAttr.stNormalP.s32IPQpDelta 来控制 Intra 宏块刷新起始帧
的大小,推荐值为-1;
----结束
6.2.12.2 注意事项
1、HI_MPI_VENC_SetIntraRefresh 设置的刷新行数 u32RefreshLineNum 需要保证在一
个 GOP 周期内,图像内所有的宏块行都完成一次刷新;
2、由于刷新行数 u32RefreshLineNum 与编码参数 GOP 及跳帧参考参数相关,所以设
置编码属性及跳帧参考高级接口后,HI_MPI_VENC_SetIntraRefresh 接口需要重新
设置;
3、HI_MPI_VENC_SetIntraRefresh 只对 H.264/ H.265 协议有效;
4、HI_MPI_VENC_SetIntraRefresh 设置使能 bISliceEnable,刷新 Islice 的帧会自动按
照刷新 Islcie 的大小做 slice 划分,用户设置的 slice 划分接口将无效。
当 bRefreshEnable 使能时,bISliceEnable 必须配置为使能。
问题如下:
当前开发通过无线传输图像数据,希望可以有较平滑的编码,根据以上说明开启了P帧帧内刷新并且开启Islice使能。打印帧信息显示,只有在开始编码时出现了一个IDR帧,后续SPS PPS SEI帧后只有P帧不再出现I帧,帧的数量变多了,平均每帧的大小变小。且在编码时在SPS开始都会有一个较大的编码时延。编码时间不够平滑。在关闭了ISlice后,帧个数恢复。请问多出来的帧是哪里来的,是在没开启P帧帧内刷新时的I帧转换过来的么?有谁知道P帧帧内刷新的原理吗?谢谢?
我来回答
回答3个
时间排序
认可量排序
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
2017-08-04 14:45:59
-
2017-10-14 14:58:35
-
2020-03-18 10:47:22
-
2017-09-29 16:46:58
-
2020-09-18 11:44:13
-
2020-07-15 10:13:56
-
2020-09-18 11:09:39
-
2019-08-13 15:40:44
-
2017-09-15 11:03:12
-
2015-01-16 14:18:54
-
2016-01-12 11:08:09
-
2018-01-16 10:04:46
-
2017-06-19 20:18:52
-
2017-06-22 13:15:16
-
2018-03-05 13:52:50
-
2014-11-14 10:46:17
-
2017-02-07 10:30:45
-
2017-09-21 14:00:02
-
2015-12-11 11:25:08
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认