当前位置:网站首页>H264 GOP 扫盲
H264 GOP 扫盲
2022-08-10 11:59:00 【51CTO】
提供基于SIP的通信服务器(企业级UC,电话会议,调度系统等)及客户端解决方案,承接 sip/ims 视频客户端开发,支持接入sip软交换,ims核心网,支持 语音,视频,即时通信功能,视频格式支持 h263,h264,mpeg4 软编软解,提供硬件编解码接口对接,提供服务器,有兴趣请联系我。
在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图所示。
● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码
● P帧即Predictive-coded Picture(预测编码图像帧),利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码
● B帧即Bidirectionally predicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图
像帧(I帧或P帧),也需要后来的图像帧(P帧),采用运动预测的方式进行帧间双向预测编码
在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离(如下图3.1)。一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧(如下图3.1所示)。
I、P、B帧示意图
所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。
需要说明的是,通过提高GOP值来提高图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会自动强制插入一个I帧,此时实际的GOP值被缩短了。另一方面,在一个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量比较差时,会影响到一个GOP中后续P、B帧的图像质量,直到下一个GOP开始才有可能得以恢复,所以GOP值也不宜设置过大。
同时,由于P、B帧的复杂度大于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前面的I或P帧预测得到的,所以Seek操作需要直接定位,解码某一个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。
边栏推荐
- The god-level Alibaba "high concurrency" tutorial - basic + actual combat + source code + interview + architecture is all-inclusive
- 个推数据资产管理经验 | 教你打造数据质量心电图,智能检测数据“心跳”异常
- LeetCode 86. 分隔链表
- LeetCode 138. Copy a linked list with random pointers
- 48MySQL数据库基础
- 虚拟机桥接模式不能上网
- LeetCode 237. Delete a node in a linked list
- camshift achieves target tracking
- 时间序列的数据分析(五):简单预测法
- 多线程下自旋锁设计基本思想
猜你喜欢

时间序列的数据分析(五):简单预测法

吃透Chisel语言.36.Chisel实战之以FIFO为例(一)——FIFO Buffer和Bubble FIFO的Chisel实现

7. Instant-ngp

解决 idea 单元测试不能使用Scanner

CLIP还能做分割任务?哥廷根大学提出一个使用文本和图像prompt,能同时作三个分割任务的模型CLIPSeg,榨干CLIP能力...

Can CLIP also do segmentation tasks?The University of Göttingen proposed a model CLIPSeg that uses text and image prompts to perform three segmentation tasks at the same time, draining CLIP capabiliti

如何培养ui设计师的设计思维?

StarRocks on AWS Review | Data Everywhere Series Event Shenzhen Station ended successfully

Custom filters and interceptors implement ThreadLocal thread closure

多线程下自旋锁设计基本思想
随机推荐
Solve the idea that unit tests cannot use Scanner
Threshold-based filtering buffer management scheme in a shared buffer packet switch论文核心部分
LeetCode 86. 分隔链表
配置druid数据源「建议收藏」
LeetCode 146. LRU 缓存
加密游戏:游戏的未来
LeetCode 24. Swap nodes in linked list pairwise
The god-level Alibaba "high concurrency" tutorial - basic + actual combat + source code + interview + architecture is all-inclusive
Color map and depth map to point cloud
Custom filters and interceptors implement ThreadLocal thread closure
LT8911EXB MIPI CSI/DSI转EDP信号转换
LeetCode 445. Adding Two Numbers II
The 6th "Blue Hat Cup" National College Student Network Security Skills Competition Semi-Final Part WriteUp
mpf6_Time Series Data_quandl_correct kernel PCA_AIC_BIC_trend_log_return_seasonal_decompose_sARIMAx_ADFull
MySQL相关问题整理
Excel函数公式大全—LOOKUP函数
LeetCode 92. Reverse Linked List II
[Collection] HashSet and ArrayList lookup Contains() time complexity
【集合】HashSet和ArrayList的查找Contains()时间复杂度
技术人必看!数据治理是什么?它对数据中台建设重要吗?