视频编解码——帧类型

假设我们一段 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帧大小基本恒定
    最后一点可以了解到音视频中的码率控制再进行了解
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Spark!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值