音视频编解码原理(三) H.264帧间编码原理

13 篇文章 2 订阅
9 篇文章 1 订阅

由上一节了解到H.264帧内编码的基本原理,本节介绍帧间编码原理

所谓帧间编码,顾名思义,就是连续帧的编码方式,最终输出为I、P、B等类型帧。

为方便解释,我截取了某视频中连续的两帧作为说明:

上图两帧数据中,除了车子和镜头在移动,大部分内容并没有发生大的改变。

        这里以点盖面,以车子的车牌为例:车牌向左移动了,就是宏块位置发生了变化,在第二帧数据中就不用再次编码宏块的左侧和上侧的像素信息,只需要记录宏块的坐标信息(运动矢量),从而减少编码和传输的数据量(P帧和B帧的来源)。

        由此可以归纳出,假如第一帧图像为I帧,那么第二帧运动矢量图像可能是B帧也可能是P帧,也是取决于H.264内部算法。

为了方便解释,可以做如下总结:与I帧相似程度高达到95%以上会编码成B帧,相似程度70%编码成P帧。可以得出一个初步结论:

视频录制/播放顺序:I帧->B帧->P帧

        再结合上一节的编码器来看,当传输缓冲器接收到B帧时会暂时缓冲在传输缓冲器中,直到获取到I帧或P帧时,会将传输缓冲器中的B帧通过编码控制重新经过视频信源编码器、视频复合编码器、传输缓冲器一起依次排在P帧之后通过传输编码器输出。

 由此可以推出另一个结论:

编码/解码顺序:I帧->P帧->B帧

注:

如果在录制视频中P帧之后又产生B帧,这些B帧一定是在下一次再遇到帧或者P帧才会输出

实质上H.264就是由一个一个NALU组成的,其结构如下:

帧类型宏块预测数据残差数据
I帧帧内预测数据宏块上侧、左侧编码数据
P帧量化变换(差异数据)运动矢量
B帧运动矢量

所以论数据量:

I帧 > P帧 > B帧

本节内容主要介绍了帧间编码原理,也就是I、P、B帧是如何产生的,下一节介绍H.264码流数据组成以及哥伦布编码

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值