数字视频压缩技术
数字视频压缩(也称视频编码)是通过减小视频文件体积并将其转换为适合播放的格式和编码的过程。编码的首要目标是减少录制、存储和传输视频所需的数据量,从而降低存储硬件需求、缩短数据传输时间并减少所需的传输带宽。
数字视频压缩是一组用于减少和消除视频数据中冗余信息的方法,使压缩后的视频体积远小于未压缩视频。视频编码有助于以更小的文件大小存储视频,或通过网络更快速地传输。在固定质量和帧率(fps)下,数字视频压缩的效果与视频码率成正比——编码后的带宽越低,压缩效率越高。
视频压缩的工作原理
视频文件经过压缩或编码后,压缩后的视频可以与未压缩文件保持相同质量,也可能降低质量,分别称为无损压缩和有损压缩格式。
有损压缩格式
这种数字视频压缩格式确保压缩文件包含的数据少于原始文件。视频中反复出现的颜色和声音可能被剔除,以删除被认为不必要的片段。由于数据丢失,文件体积显著缩小,因此称为“有损”。有损压缩将数据缩减到解压缩后无法恢复原始信息的程度,编码视频与原始视频之间的差异称为伪影。
大多数在线视频文件采用有损压缩,在减小文件大小的同时保持较高的质量水平。如果视频保持极高的文件质量,不仅上传耗时,网络条件较差的用户也难以流畅观看或下载。
无损压缩格式
无损压缩是另一种数字视频压缩格式,原始版本和压缩版本几乎完全相同。这种方法允许从编码数据中重建原始数据,但可用的数据缩减手段有限,压缩率较低。在编码过程中不会丢失任何数据。大多数情况下,无损压缩的效果不如有损压缩,因为压缩后的文件往往与压缩前大小相同。GIF是无损压缩的一个例子,但由于其局限性,不适用于监控视频。
采用无损压缩看似没有必要——毕竟压缩的主要目的就是减小文件大小。但如果文件大小不是问题,无损压缩可以呈现出色的视频质量。
数字视频压缩技术
视频数据可以表示为一系列静态帧或隔行视频的场。图像序列必然包含时间冗余和空间冗余,数字视频压缩方法可以利用这些冗余。许多视频编码技术采用时间压缩(针对视频帧之间的冗余)和空间压缩(针对单帧或场内部的冗余)。
空间压缩
空间压缩方法基于静态图像压缩。变换方法是最广泛使用的方法,被各机构采用。该方法将图像分成块,对每个块分别进行变换。变换的输出经过缩放和量化后,由无损熵编码器对量化数据进行压缩,生成最终的比特流。最常用的变换技术是离散余弦变换(DCT)及其变体。其他空间压缩方法包括分形压缩、矢量编码、小波变换等。
时间压缩
时间压缩是另一种有效的数字视频压缩技术。它通过分析不同视频帧之间的关系来工作。如果视频中没有运动部分,程序可以执行一条简短指令,将前一帧的该部分逐比特复制到下一帧。如果算法检测到某些像素发生了变化,则采用相对于前一帧或多帧的预测方法。程序在当前帧的每个区域中搜索前一帧或多帧中的相似区域。如果找到相似区域,变换编码器会对差异进行编码并从当前区域中去除。当前帧区域的参考值也可以计算为前后帧相似区域的加权和。使用后续帧时,当前帧必须延迟若干帧间隔。
其他常用的视频压缩技术包括:
联合图像专家组(JPEG)压缩
配合MPEG压缩技术,JPEG是一种基本的数字视频压缩技术,针对单帧(静态)图像进行处理。它是由国际标准化组织(ISO)、国际电工委员会(IEC)和国际电信联盟(ITU)提出的视频编码标准之一。联合图像专家组(JPEG)成立于20世纪80年代中期,为JPEG标准奠定了基础。该专家组于1991年发布了JPEG标准的第一个组成部分,最初旨在创建彩色照片压缩标准;此后,JPEG专家组一直在改进原始JPEG标准和JPEG 2000标准。
假设我们拍摄了一张照片:一个人骑着摩托车,背景是树木。JPEG技术通过去除人眼不易察觉的元素来编码图像,例如某些颜色(因为人眼对颜色的敏感度不如亮度——亮度调整比颜色变化更容易被察觉)以及图像复杂区域中的一些细节(低频光线的变化比高频光线的变化更明显)。
根据所使用的压缩率,删除的数据可能会影响最终图像的质量。这就是为什么JPEG被称为有损压缩方法——部分原始图像信息会丢失且无法恢复。
Motion JPEG
假设我们用摄像机拍摄同一场景——骑自行车的人正在蹬车。摄像机拍摄一系列静态图像,每张图像都可以使用JPEG算法进行压缩。
这种数字视频压缩技术称为Motion JPEG,在20世纪90年代初期被广泛使用。它通过消除空间冗余来有效压缩视频,但忽略了帧之间共享的图像元素,如背景、树木等。这些共享内容称为时间冗余,可以从视频中删除以提高压缩率。
运动图像专家组(MPEG)
这种数字视频压缩技术与JPEG一起,是ISO、IEC和ITU提出的基本数字压缩技术。MPEG起源于20世纪80年代末成立的运动图像专家组(MPEG),旨在开发运动图像和声音的压缩系统。此后,该专家组制定了MPEG-1、MPEG-2和MPEG-4标准,以及MPEG-7和MPEG-21等非多媒体编码标准。
帧间压缩算法的开发旨在消除时间冗余(“inter”意为“之间”或“之中”),MPEG是其中使用最广泛的。与JPEG一样,MPEG压缩在称为“宏块”的基本单元中进行。
每一帧被分割成多个切片,每个切片包含多个宏块。宏块由像素块组成,像素块是图像中最小的可修改部分。在压缩过程中,宏块作为基本对象使用。
MPEG帧可以通过三种方式进行压缩:
● 帧内编码(I帧):视频被编码为独立帧(静止帧),与后续帧无关。
● 预测编码(P帧):算法利用前面的I帧或P帧进行预测编码,获得更高的压缩比(更小的帧)。
● 双向预测编码(B帧):利用前面和后面的I帧或P帧进行预测编码,提供最高的压缩率。
其他高级MPEG格式包括:专为电视广播和高质量存档设计的MPEG-2,用于2D和3D网格纹理映射、时变流编码以及时间、空间和质量可伸缩性算法的MPEG-4,用于视频监控的MPEG-7,以及MPEG-21。
H.264
20世纪90年代末,一个名为视频编码专家组(VCEG)的新组织创建了一种视频压缩标准,旨在将编码效率大幅提升至远超现有技术的水平,由此诞生了H.264。它提供了编码效率、成本和计算复杂度的最新平衡,并具备足够的灵活性,适用于多种应用场景,包括低速率和高速率视频、低分辨率和高分辨率视频,以及高延迟和低延迟需求。
