接下来,小枣君就和大家介绍一下,究竟是采用什么样的办法,才能干掉它们。
以下内容稍微有点高能,不过我相信大家耐心一些还是可以看懂的。
视频是由不同的帧画面连续播放形成的。
这些帧,主要分为三类,分别是I帧,B帧,P帧。
I帧,是自带全部信息的独立帧,是最完整的画面(占用的空间最大),无需参考其它图像便可独立进行解码。视频序列中的第一个帧,始终都是I帧。
P帧,“帧间预测编码帧”,需要参考前面的I帧和/或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性。但是,P帧压缩率比较高,占用的空间较小。
P帧
B帧,“双向预测编码帧”,以前帧和后作为参考帧。不仅参考前面,还参考后面的帧,所以,它的压缩率最高,可以达到200:1。不过,因为依赖后面的帧,所以不适合实时传输(例如视频会议)。
B帧
通过对帧的分类处理,可以大幅压缩视频的大小。毕竟,要处理的对象,大幅减少了(从整个图像,变成图像中的一个区域)。
如果从视频码流中抓一个包,也可以看到I帧的信息,如下:
我们来通过一个例子看一下。
这有两个帧:
好像是一样的?
不对,我做个GIF动图,就能看出来,是不一样的:
人在动,背景是没有在动的。
第一帧是I帧,第二帧是P帧。两个帧之间的差值,就是如下:
也就是说,图中的部分像素,进行了移动。移动轨迹如下:
这个,就是运动估计和补偿。
当然了,如果总是按照像素来算,数据量会比较大,所以,一般都是把图像切割为不同的“块(Block)”或“宏块(MacroBlock)”,对它们进行计算。一个宏块一般为16像素×16像素。
将图片切割为宏块
好了,我来梳理一下。
对I帧的处理,是采用帧内编码方式,只利用本帧图像内的空间相关性。
对P帧的处理,采用帧间编码(前向运动估计),同时利用空间和时间上的相关性。简单来说,采用运动补偿(motion compensation)算法来去掉冗余信息。
需要特别注意,I帧(帧内编码),虽然只有空间相关性,但整个编码过程也不简单。
如上图所示,整个帧内编码,还要经过DCT(离散余弦变换)、量化、编码等多个过程。限于篇幅,加之较为复杂,今天就放弃解释了。
那么,视频经过编码解码之后,如何衡量和评价编解码的效果呢?
一般来说,分为客观评价和主观评价。
客观评价,就是拿数字来说话。例如计算“信噪比/峰值信噪比”。
搞通信的童鞋应该对这个概念不会陌生吧?
信噪比的计算,我就不介绍了,丢个公式,有空可以自己慢慢研究...
除了客观评价,就是主观评价了。
主观评价,就是用人的主观感知直接测量,额,说人话就是——“好不好看我说了算”。
接下来,我们再说说标准(Standard)。
任何技术,都有标准。自从有视频编码以来,就诞生过很多的视频编码标准。
提到视频编码标准,先介绍几个制定标准的组织。
首先,就是大名鼎鼎的ITU(国际电信联盟)。
1865年5月17日,为了顺利实现国际电报通信,法、德、俄、意、奥等20个欧洲国家的代表在巴黎签订了《国际电报公约》,国际电报联盟(International Telegraph Union ,ITU)也宣告成立。
随着电话与无线电的应用与发展,ITU的职权不断扩大。
1906年,德、英、法、美、日等27个国家的代表在柏林签订了《国际无线电报公约》。
1932年,70多个国家的代表在西班牙马德里召开会议,将《国际电报公约》与《国际无线电报公约》合并, 制定《国际电信公约》,并决定自1934年1月1日起正式改称为“国际电信联盟” ,也就是现在的ITU。 ITU是联合国下属的一个专门机构,其总部在瑞士的日内瓦。
ITU下属有三个部门,分别是ITU-R(前身是国际无线电咨询委员会CCIR)、ITU-T(前身是国际电报电话咨询委员会CCITT)、ITU-D。
除了ITU之外,另外两个和视频编码关系密切的组织,是ISO/IEC。
ISO大家都知道,就是推出ISO9001质量认证的那个“国际标准化组织”。IEC,是“国际电工委员会”。
1988年,ISO和IEC联合成立了一个专家组,负责开发电视图像数据和声音数据的编码、解码和它们的同步等标准。这个专家组,就是大名鼎鼎的MPEG,Moving Picture Expert Group(动态图像专家组)。
三十多年以来,世界上主流的视频编码标准,基本上都是它们提出来的。
ITU提出了H.261、H.262、H.263、H.263+、H.263++,这些统称为H.26X系列,主要应用于实时视频通信领域,如会议电视、可视电话等。
ISO/IEC提出了MPEG1、MPEG2、MPEG4、MPEG7、MPEG21,统称为MPEG系列。
ITU和ISO/IEC一开始是各自捣鼓,后来,两边成立了一个联合小组,名叫JVT(Joint Video Team,视频联合工作组)。
JVT致力于新一代视频编码标准的制定,后来推出了包括H.264在内的一系列标准。
压缩率对比
视频编码标准的发展关系
大家特别注意一下上图里面的HEVC,也就是现在风头正盛的H.265。
作为一种的编码标准,相比H.264有极大的性能提升,目前已经成为最新视频编码系统的标配。
最后,我再说说封装。
对于任何一部视频来说,只有图像,没有声音,肯定是不行的。所以,视频编码后,加上音频编码,要一起进行封装。
封装,就是封装格式,简单来说,就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。再通俗点,视频轨相当于饭,而音频轨相当于菜,封装格式就是一个饭盒,用来盛放饭菜的容器。
目前主要的视频容器有如下:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS等。
封装之后的视频,就可以传输了,你也可以通过视频播放器进行解码观看。
好啦!额滴神啊,终于介绍完了。。。
其实,小枣君之所以要做视频编码这么一个看似和通信无关的“跨界”专题,是有原因的。
以前我上大学的时候,就有一门专业课程,叫图像识别,当时是我们学校的王牌专业,属于计算机系。那个时候我并不明白,图像识别到底是什么,为什么“画画”这种事情,会归为“计算机类”。
后来,我才明白,所谓的“图像识别”,就是让计算机看懂图像。怎么样才能看懂呢?就是把图像数字化。
图像变成了数字,计算机就能从中找到规律,也能对它进行分析。
这么多年过去了,图像识别取得了非常大的发展。我们渐渐发现,摄像头开始“认脸”了,停车场开始“看懂”车牌了,生活开始变得不一样了。
更没有想到的是,机器学习和AI人工智能也因此迅速崛起,开始对传统技术发起挑战。
前段时间很火的谷歌“你画我猜”程序,就是AI结合图像识别技术的一个“人机交互”经典案例。
运算速度足够快,存储空间足够大,学习数据足够多,计算机可以海量分析图像和视频数据,寻找其中的规律,构建模型。如果这个AI足够强大,就能做出反应和处理。
在电影《鹰眼》里,也描绘到这样的一个场景:强大的AI大脑,控制全球的视频摄像头,还有所有的计算机系统、武器系统,可以随时在全球范围内,找到想找到的人,并且干掉他。电影《速度与激情6》里,也有类似的场景。
电影《鹰眼》,2008年
除此之外,还有3D视频、VR/AR等,也都是和图像视频密切相关的应用。
总而言之,这是一个非常有前途的技术领域,值得深入进行研究。也许,我们一直在寻找的5G爆款应用,就和视频有关呢!
好啦,今天的内容就到这里,感谢大家的耐心观看!
下期再见!
|