0
点赞
收藏
分享

微信扫一扫

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)


公众号回复:666,领取学习资源大礼包

这是一份循序渐进的视频技术的介绍,来自 Github 仓库:

​​https://github.com/leandromoreira/digital_video_introduction​​

本文档旨在尽可能使用浅显的词语,丰富的图像和实际例子介绍数字视频概念,使这些知识能适用于各种场合。

有兴趣了解更多内容的同学可以下载仓库源码,这里只做摘录,仅供参考。

帧类型

现在我们进一步消除​​时间冗余​​,但在这之前让我们来确定一些基本术语。假设我们一段 30fps 的影片,这是最开始的 4 帧。

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_技术介绍 -> 【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_关键帧_02 -> 【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_03 -> 【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_04

我们可以在帧内看到很多重复内容,如蓝色背景,从 0 帧到第 3 帧它都没有变化。为了解决这个问题,我们可以将它们抽象地分类为三种类型的帧。

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

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

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_关键帧_05

球 1

P 帧(预测)

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

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_关键帧_05 <-  【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_07

自己动手:具有单个 I 帧的视频

既然 P 帧使用较少的数据,为什么我们不能用单个 I 帧和其余的 P 帧来编码整个视频?

编码完这个视频之后,开始观看它,并快进到视频的末尾部分,你会注意到它需要花一些时间才真正跳转到这部分。这是因为 P 帧需要一个引用帧(比如 I 帧)才能渲染。

你可以做的另一个快速试验,是使用单个 I 帧编码视频,然后再次编码且每 2 秒插入一个 I 帧,并比较成品的大小

B 帧(双向预测)

如何引用前面和后面的帧去做更好的压缩?!简单地说 B 帧就是这么做的。

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_关键帧_05   <-   【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_07  ->   【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_03

自己动手:使用 B 帧比较视频

你可以生成两个版本,一个使用 B 帧,另一个全部不使用 B 帧,然后查看文件的大小以及画质。

小结

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

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_技术介绍_11

帧类型例子

【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)_帧内编码_12




举报

相关推荐

0 条评论