多年以来,人们设计出许多不同的算法来压缩视频。视频压缩虽然听起来是一个很现代的词,但其实它从模拟视频开始,已经有很长的历史了。在本篇文章中,我会向大家一一介绍视频压缩史上的里程碑事件,正是这些事件的发生才有了今天的视频压缩。从过去到现在,各类视频压缩方法由最初的概念最终演化成现今的标准。很多压缩标准今天还在使用,人们也一直在继续开发和完善新的标准。
1929:首次出现帧间压缩
帧间压缩是指仅保留一张关键图像,以及后面帧与此图像之间的差异,这张关键图像被称为关键帧(Keyframe)。令人惊讶的是,关于帧间压缩的讨论可以追溯到1929年。英国的R.D. Kell提出将帧间压缩用于模拟视频,这一概念随后便延续下来并应用在今天的数字视频上。
1952:差分脉冲编码调制
下一个视频压缩的里程碑事件发生在1952年。贝尔实验室的B.M. Oliver 和 C.W. Harrison提出可以在视频编码中使用差分脉冲编码调制(DPCM)。在此之前,DPCM一直被用于音频(今天依然如此)。DPCM技术是指你可以从图像中采样,并据此推测未来的样本值。因为可以通过推测准确地重建图像,所以不需要存储太多图像数据。
1959:使用时间压缩的帧间预测编码
1959年,使用时间压缩的预测性帧间视频编码第一次被提出。时间压缩是指在一段视频中选择一组间隔的关键帧,只对这些关键帧的变化进行编码。作为其他帧的参考点,关键帧是唯一被记录下来的帧。这一概念由日本广播公司(NHK)的研究人员Y. Taki、M. Hatori和S. Tanaka提出。
1967:行程长度编码
行程长度编码(Run-length encoding,RLE)是指将连续出现的同一个数据值存储为单一值和出现次数,如输入数据流“AAABBCCCC”,输出的是连续数据值的计数序列“3A2B4C”。之后你可以利用这些信息准确地重建同一张图像!伦敦大学的研究人员A.H. Robinson 和C. Cherry提出这一概念,最初用于降低模拟电视信号的传输带宽。今天,行程长度编码仍在数字视频中使用。
20世纪70年代:早期数字视频算法
数字视频在70年代出现。发送视频时使用了和电信相同的技术——PCM(脉冲编码调制)。是不是有些眼熟?PCM就来自上文提到的DPCM。PCM以数字形式表示采样的模拟信号。它最初是音频标准,在70 年代被用来压缩数字视频。虽然可以传输视频,但它需要大码率且传输效率较低。
1972:数字视频的首次压缩
Nasir Ahmed,印裔美国电气工程师、计算机科学家
1972年左右,堪萨斯州立大学的Nasir Ahmed提出使用DCT编码压缩图像。DCT代表离散余弦变换(Discrete Cosine Transform),它将图像分成由不同频率组成的小块。在量化过程中,舍弃高频分量,剩下的低频分量被保存下来并用于后面的图像重建。由于舍弃了某些频率的图像,所以最终呈现出来的图像不会完全相同,但大多时候,这种差异不会被人们察觉。
1973:DCT技术成为一种图像压缩算法
DCT
Nasir Ahmed 与德克萨斯大学的 T. Natarajan 和 K.R. Rao 合作,实现了DCT图像压缩算法。1974年,他们发表了自己的工作成果。
1974:混合编码的发展过程
1974年,南加州大学的Ali Habibi将预测编码和DCT编码组合在一起使用。我们在上文提到过,预测编码是指猜测当前图像出现前后的数值。Habibi的算法只能应用于帧内图像,无法预测帧间图像。
1975:混合编码的进一步发展
John A. Roesse 和Guner S. Robinson进一步发展了Habibi的算法,使它可以应用于帧间,为此,他们尝试了各种方法,最终发现Ahmed的DCT技术和预测编码结合起来使用是最高效的。
1977:更快的DCT算法
陈文雄、 C.H. Smith 和S.C. Fralick一起优化了DCT算法,他们创立了Compression Labs公司,将DCT商业化。
1979~1981:运动补偿DCT视频压缩
Anil K. Jain 和Jaswant R. Jain 继续发展运动补偿DCT视频压缩技术。陈文雄使用他们的成果创造出一种结合了所有研究的视频压缩算法。运动补偿DCT上的持续研究工作使它最终成为了标准的压缩技术,从20世纪80年代一直使用到现在。
1984:首个数字视频压缩标准——H.120
前期的所有研究最终取得成果——第一个视频压缩标准H.120问世。该标准对于单个图像非常有用,但在维持帧间图像质量方面效果不佳,于1988年被修订。H.120是首个国际视频压缩标准,主要用于视频会议。这是一次伟大的成就,但由于H.120多方面的低效,许多公司不得不试验各种方法来完善这个标准。
1988:用H.261举行视频会议
H.261很可能是你见过或者使用过的一系列编解码器中的第一个。它是第一个有效使用帧内和帧间压缩技术的数字视频压缩标准。H.261 也是第一个在商业上成功的数字视频编码标准。它被用于全世界的视频会议,并引入混合的基于块的视频编码,该编码今天仍在许多视频标准(MPEG-1 第 2 部分、H.262/MPEG-2 第 2 部分、H.263 MPEG-4 第 2 部分、H.264/MPEG-4 第 10 部分和 HEVC)中使用。创建H.261标准的方法今天依然被广泛使用。它支持的最大分辨率是352×288。
虽然这个标准在国际上很受欢迎,但它在刚发布时并不完整。该标准分别在 1990 年和 1993 年进行了修订。H.261不包括处理编码的细节,仅用于解码视频。
1992:使用Motion JPEG(MJPEG)的PC多媒体应用
1992年,Motion JPEG被创建出来用于计算机上的多媒体应用。这种视频压缩技术将视频每一帧都分别压缩成JPEG图像。
1993:使用MPEG-1的视频CD
MPEG表示Moving Pictures Experts Group(动态图像专家组),它是ISO(International Standardization Organization,国际标准化组织)与IEC(International Electrotechnical Commission,国际电工委员会)联合成立的专门针对媒体编码制定国际标准的组织。1988年左右,他们开始合作制定今天为人所知的视频编码标准——MPEG-1。与 H.261 类似,MPEG-1虽然提供了示例实现,但没有包含如何编码视频的标准。因此,MPEG-1 会根据编码方式展现出截然不同的性能。
MPEG-1 专为压缩 VHS(Video Home System,家用录像系统) 质量的原始数字视频、音频和元数据而设计,用于视频 CD、数字有线电视、卫星电视和供参考、存档和转录用的文件共享。它的最大分辨率为 352×288。你可能最了解音频中的 MPEG-1——它创造了MP3。
1994 使用H.262和MPEG-2的电视广播和DVD
MPEG-2 和 H.262 是同一个视频标准的不同名称,它由许多公司共同开发而成。该标准支持隔行扫描(这是一种用于模拟 NTSC、PAL 和 SECAM 电视系统的技术),并且使用了很多有趣的编码技术。下面介绍两种:
图像采样
MPEG-2通过图像采样技术减少数据。其中一种方法是将每一帧分割为奇偶两场图像交替扫描(一个场里包含所有奇数行,另一个场里包含所有偶数行),在显示时,先显示第一个场的交错间隔内容,然后再显示第二个场来填充第一个场使之完整。这种方法被称为隔行扫描。隔行扫描是一种减小数据量保证帧率的压缩方法。
另一种策略充分利用了人眼对亮度的感知优于颜色的特点。MPEG-2采用了色度二次采样(Chroma Subsampling):这种视频编码方式对色度(颜色)信息使用的分辨率比对亮度(亮度)信息使用的分辨率低。因为人类对颜色的观察能力不强,即使有信息在压缩过程中失去也不会影响观看。这一策略的目的是减少存储彩色图像所用的数据,从而实现图像压缩不会降低质量。
I帧,P帧和B帧
MPEG-2使用不同种类的帧来压缩数据。I帧是帧内编码帧,I帧描述了图像背景和运动主体的内容,可以作为P帧和B帧的参考帧。P 帧也被称为预测帧,它包含自身与前面 I 帧、P 帧或 B 帧中的信息差异。B 帧类似于 P 帧,但它需要参考其前面一个I帧或P帧及其后面的一个P帧来生成一张完整的视频画面。
1995:使用DV存储数字视频
第一个 DV 规范被称为Blue Book,其中定义了录像带、录制调制方法、磁化和基本系统数据等共同特征。DV 使用 DCT 逐帧压缩视频。同MPEG-2一样,它使用色度二次采样进行进一步压缩。
DV 是由索尼和松下为专业用户和广播用户设计的。现在有了存储卡和固态驱动器,这种存储方法早已过时了。
1996:使用H.263的新一代视频会议标准
在H.261的基础上又实现了H.263。它利用DCT技术创建可用于视频会议的低码率压缩视频。这一标准广泛用于互联网上的 Flash 视频内容、YouTube 和 MySpace 等。它一直应用于整个互联网,直到H.264的出现。
1999:使用MPEG-4 第二部分的互联网视频
MPEG-4 第二部分(也称为 MPEG-4 Visual)是一种与H.263兼容的标准,常用于监控摄像以及高清电视广播和 DVD。它使用了比MPEG-2更高效的算法,且压缩速度更快。不过,因为它无法处理AVC(Advanced Video Coding,高级视频编码)格式,后面才有了MPEG-4 AVC。
2003:使用H.264/MPEG-4 AVC的蓝光、DVD、视频直播和广播电视
H.264/MPEG-4AVC(有时也被称为MPEG-4 第十部分)发布于2003年。这种压缩技术的目的是创建足够灵活的高清数字视频,以用于不同的系统、网络和设备。这是目前最流行的压缩标准。H.264不仅用于各种解码器、浏览器和移动设备,还用于卫星、互联网、电信网络和电缆。蓝光光盘、Netflix、Hulu、Amazon Prime Video、Vimeo、YouTube 以及你在互联网上看到的几乎所有视频都有它的身影。它支持的最大分辨率是4096×2048。
该标准以运动补偿整数DCT编码为基础。整数DCT变换是一种能够特别快实现余弦变换的算法。H.264 支持无损压缩和有损压缩,与早期的压缩标准相比,它非常灵活。另一个优点是,这项技术对互联网上播放的流媒体内容免费。
2013:使用H.265/HEVC的360°沉浸式视频、AR和VR
H.265/HEVC(High Efficency Video Coding,高效率视频编码)不仅可以做到H.264所能做的一切,而且表现更佳。它将文件大小减少了 50%,并支持非常高质量的视频分辨率 ——高达 8K(最大分辨率为 8192×4320)。虽然你通常无需用到 8K 或无法通过今天的设备和网络获取到它,但H.265对于AR、VR和 360° 等沉浸式体验非常有用。高昂的成本是它没有得到广泛应用的主要原因。除了Netflix 和 Amazon Prime Video 等大公司可以负担这笔费用外,其他许多公司仍然选择使用 H.264。
2013:VP9
VP9由谷歌开发,它是H.265的竞争对手。和H.265不同,它是免费的。H.265 在高码率时表现更好。H.265和VP9编码视频都需要一段时间,这会增加延迟。也正是由于这个问题,H.264才会被继续使用。由于免费的原因,VP9变得越来越流行。但是否会得到更广泛的应用还未可知。
2018:使用AV1的高质量网络视频
谷歌、亚马逊、思科、英特尔、微软、Mozilla 和 Netflix 决定一起创建一个新的视频格式标准——AV1。它是 VP9 之后的下一代视频标准,开源且免费。这种格式专为实时应用(如 WebRTC)设计且支持更高分辨率,目的是能够处理 8K 视频。它利用新技术实现了了我在上文提到的典型的基于块的DCT变换。通过更精确的方法将图像分成块并使用改进后的过滤,它可以准确地实现帧间预测。
2020:使用H.266/VVC实现商业上可行的4K、8K
H.266/VVC(Versatile Video Coding,多维度视频编码)主要面向 4K 和8K视频服务。它于 2020 年 7 月发布,是目前为止最新发布的视频压缩标准。H.266进一步优化了压缩(但没有其他创新),大约可节省50%的视频码率,同时确保视频清晰度不变。它使用基于块的混合视频编码方法,其思想是找到优化和改进现有算法和压缩技术的方法。H.266编码速度仍然很慢,但该标准在较低码率下提供了良好的质量改进。
我国拥有自主知识产权的第三代“信源编码”标准——AVS3
AVS3视频编码标准是中国AVS工作组制定的第三代标准。它的目的是适应多种应用场景,如超高清电视广播、虚拟现实和视频监控。AVS3的开发过程分为两个阶段。到目前为止,AVS3的第一阶段已经于2019年3月完成,它在4K超高分辨率视频方面比AVS2节省了大约30%的码率。此外,AVS3 的第二阶段正在开发更有效的编码工具以提高性能,尤其是监控视频和屏幕内容视频。
从1929到2020,视频压缩标准的历史就告一段落了。回顾这近100年的历史,正是在一代又一代个人和组织的不懈努力下,才有了今天的视频压缩标准。未来的视频压缩还会发生哪些变化?让我们一起拭目以待。
LiveVideoStackCon2021北京站正在火热报名中!
详情请扫描图中的二维码或点击阅读原文了解大会更多信息。
本文分享自微信公众号 – LiveVideoStack(livevideostack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
{{m.name}}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/79679.html