【from Spark!】视频编解码——帧类型

原文地址:https://blog.csdn.net/qq_28258885/article/details/116156357



假设我们一段 30fps 的影片,这是最开始的 4 帧
在这里插入图片描述
我们可以在帧内看到 很多重复内容,如 蓝色背景,从 0 帧到第 3 帧它都没有变化。为了解决这个问题,我们可以将它们 抽象地分类为三种类型的帧。

I 帧(帧内编码,关键帧)

I 帧(可参考,关键帧,帧内编码)是一个自足的帧。它不依靠任何东西来渲染,I 帧与静态图片相似。第一帧通常是 I 帧,但我们将看到 I 帧被定期插入其它类型的帧之间。
在这里插入图片描述

IDR帧

IDR帧(Instantaneous Decoding Refresh picture, 即时解码刷新帧)是一种特殊的I帧。

当解码器解码到IDR帧时,会将DPB(Decoded Picture Buffer,指前后向参考帧列表)清空,将已解码的数据全部输出或抛弃,然后开始一次全新的解码序列。
IDR帧之后的图像不会参考IDR帧之前的图像,因此IDR帧可以阻止视频流中的错误传播,同时IDR帧也是解码器、播放器的一个安全访问点。

P 帧(预测)

P 帧利用了一个事实:当前的画面几乎总能使用之前的一帧进行渲染。例如,在第二帧,唯一的改变是球向前移动了。仅仅使用(第二帧)对前一帧的引用和差值,我们就能重建前一帧。
在这里插入图片描述

实际情况中,一般使用一个I帧多个P帧。但是P帧不能太多,因为离上一个I帧越远,预测难度就越大,丢失的信息也就越多

B 帧(双向预测)

如何引用前面和后面的帧去做更好的压缩?!简单地说 B 帧就是这么做的。
在这里插入图片描述

看前面一帧和后面一帧哪个更像就通过哪个去预测
B帧远比P帧复杂,预测复杂,解码也更为复杂,有可能B帧参考的是下一个相邻P帧。
B帧的效率更高,比如30fps,总有前一张或者后一张是像的。

B帧在运动相机中用的更多,运动中前后变化就很大,所以需要双向预测。
普通的相机P帧用的比较多

总结

这些帧类型用于提供更好的压缩率,我们将在下一章看到这是如何发生的。现在,我们可以想到 I 帧是昂贵的,P 帧是便宜的,最便宜的是 B 帧。
在这里插入图片描述

补充

  • I帧越大,P帧越小;I帧越小P帧越大
  • I帧大小取决于图像本身内容,和压缩算法的空间部分
  • P帧的大小取决于图像变化的剧烈程度
    P帧是预测来的,如果变化大,那么变化大,P帧就大
  • CBR和VBR下P帧的大小策略会不同,CBR时P帧大小基本恒定
    最后一点可以了解到音视频中的码率控制再进行了解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值