图解 I帧,B帧以及P帧

Posted linyilong3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图解 I帧,B帧以及P帧相关的知识,希望对你有一定的参考价值。

I?frame (Intra-coded picture): 即完整的一张图片
P?frame (Predicted picture): 与前面一张图片的区别的区域
B?frame (Bidirectional predicted picture):与前面以及后面的图片的区别区域
 
众所周知,视频一般是由多张图片进行组成的。
 
I帧
现在有一段影片如下:
技术分享图片
该影片总共是20张图片组成的,每一张完整的图片我们都可以叫做I帧。假如每张JPEG的图片大小为100KB,那么传输两张图片即为100 * 20 = 2000KB
要知道这个还不到几秒的影片就2M了,要是几个小时的那还得了,所以就有了影片压缩的算法
 
P帧
通过观察,我们可以看出,实际上每一帧之间其实只有一部分细微的差别而已,如下图提取了6帧
技术分享图片
 
当传输完第一帧以后,第二帧其实我们只需要传输一部分,然后由另外一端进行图片算法来进行组合
 
技术分享图片
用这种方式,在传输第二帧的时候,还不到原来的1/10,只需要传输第一帧的100KB,后续的都是按照这种方式传输部分,这种只传输部分的图片,就是P帧了。最后整个影片的大小即为100KB + 10KB * 19 = 290 KB,比原来缩小了很多
 
B帧:
B帧其实就是与前后两张图片的区别。如果理解了P帧和I帧,这个就很好理解了。
B帧比P帧更小,更节省空间
 
假设现在有三张图片,如下图:
技术分享图片
在经过编码后,会变成如下:
技术分享图片
 
参考资料:
 

以上是关于图解 I帧,B帧以及P帧的主要内容,如果未能解决你的问题,请参考以下文章

Easy Tech:什么是I帧P帧和B帧?

图解栈帧运行过程

I帧P帧B帧IDR 关键帧介绍

视频压缩:I帧P帧B帧 关键帧

I帧B帧P帧NALU类型

I帧P帧和B帧的特点