现在我们大家在网络上看到的视频,受限于带宽和服务器,视频网站上的视频其实都是经过压缩才最终被我们看到的。如果单纯传输视频文件,数据量会非常恐怖,以常见的1920*1080的30帧视频为例,其一帧画面中所包含的信息量就为;
1920*1080=2073600个像素
每个像素越是三字节,再乘以30,就是一亿八千多万的字节,换算成MB/s的话就是177MB/s,这还是没有计算声音信息的情况下,这显然不是我们的网络可以承载的数据量,如果可以将视频中无用的信息剔除,就可以大大提升视频的效率。所以,我们需要来压缩视频。
视频的压缩方式也分为帧内编码和帧间压缩编码,而我们看到的网络视频多是由帧间编码压缩,互联网目前最常见的帧间压缩视频编码格式是H.264。在H.264压缩标准中I帧、P帧、B帧用于表示传输的视频画面。
I帧
I帧又叫做帧内编码帧,它带有全部的独立信息且可不需要参考其它的帧独立进行解码,视频序列中的第一个帧始终都是I帧,因为它是关键帧。
P帧
又叫帧间预测编码帧,它的解码需要参考前一帧画面(前一帧有可能是I、P帧)。视频中的每一个像素都有它对应的信息,而下一帧中的像素相比于上一帧有部分会有变化而部分没有,没有变化的部分会直接复制上一帧的信息,而有变化的部分则需要通过解计算得出。与I帧相比,P帧通常占用更少的数据量。
B帧
B帧又称叫双向预测编码帧,顾名思义它不仅会像I帧一样参考前一帧的信息,也会参考下一帧通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是对解码性能要求较高。
我们所看到的视频就是由这些帧加上