HOME> 世界杯颁奖仪式> 【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)

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

公众号回复:666,领取学习资源大礼包 这是一份循序渐进的视频技术的介绍,来自 Github 仓库: https://github.com/leandromoreira/digital_video_introduction ...

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

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

https://github.com/leandromoreira/digital_video_introduction

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

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

往期内容:

数字视频技术介绍 之 基本术语

【数字视频技术介绍】| 消除冗余 之 颜色模型

帧类型

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

-> -> ->

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

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

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

球 1

P 帧(预测)

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

<-

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

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

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

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

B 帧(双向预测)

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

<- ->

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

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

小结

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

帧类型例子

推荐阅读:

Android OpenGL 学习专辑

移动端技术交流喊你入群啦~~~

推荐几个堪称教科书级别的 Android 音视频入门项目

FFmpeg 学习专辑

觉得不错,点个在看呗~


js中如何绑定事件绑定事件 AVG游戏有哪些 十大必玩AVG游戏盘点