视频压缩算法很重要。我们的生活充满视频。手机聊天要看视频。网络课程要看视频。电视电影也是视频。视频文件通常很大。大的文件不方便存储。大的文件不方便传输。存储需要硬盘空间。传输需要网络带宽。硬盘空间有限。网络带宽有限。视频压缩算法解决这个问题。视频压缩算法让视频文件变小。文件变小了存储就方便。文件变小了传输就容易。
视频压缩算法的原理很简单。视频由一连串画面组成。每一张画面叫做一帧。连续播放帧就成了视频。帧里面有很多信息。信息有的是重复的。信息有的是多余的。重复的信息不用每次都记录。多余的信息可以去掉。视频压缩算法找到这些信息。视频压缩算法处理这些信息。处理之后文件就变小了。
视频压缩分两种。一种叫做无损压缩。一种叫做有损压缩。无损压缩不丢失信息。压缩前和压缩后完全一样。有损压缩会丢失一些信息。压缩前和压缩后不完全一样。人的眼睛有特点。人眼对某些变化不敏感。丢失不敏感的信息没有问题。观看效果几乎一样。有损压缩用得更多。有损压缩可以让文件更小。
帧与帧之间有相似之处。前一帧和后一帧往往变化不大。背景可能是一样的。只有人的嘴巴在动。记录全部信息很浪费。只记录变化的部分更节省。这种思想叫做帧间压缩。帧间压缩只存储差异。差异的数据量小很多。视频压缩算法计算帧之间的差异。算法只编码差异部分。解码时根据前一帧和差异重建新帧。这个方法效率很高。
一帧内部也有规律。画面中的天空是同一片蓝色。蓝色区域像素值接近。记录一片蓝色区域不用每个点都记。记下颜色和范围就行。这种思想叫做帧内压缩。帧内压缩利用空间冗余。空间冗余是指相邻像素相似。算法将图像分成小块。对每个小块进行预测。预测当前块旁边像素的值。实际值和预测值的差需要编码。差值通常很小。编码差值占用空间少。
预测和差异是基础。编码方法也关键。差异数据还要进一步压缩。一种常见编码是变换编码。图像数据从空间域变换到频率域。人眼对高频细节不敏感。高频部分可以粗略处理。离散余弦变换常用。变换后得到频率系数。量化过程减少系数精度。量化后很多系数变成零。游程编码记录连续的零。熵编码分配短码给常见符号。这些步骤使数据量大减。
运动估计很重要。视频中物体经常运动。运动不是随机乱动。运动有方向和速度。运动估计找到物体的运动轨迹。算法在参考帧中搜索匹配块。找到匹配块就知道运动矢量。编码运动矢量比编码像素值节省。运动补偿根据运动矢量预测当前帧。预测帧和真实帧的残差被编码。残差数据量很小。这是帧间压缩的核心。
标准组织制定压缩标准。大家遵守标准才能互通。常见标准有H.264、H.265、AV1。H.264过去十几年很流行。H.265压缩效率更高。H.265文件比H.264小一半。但H.265计算更复杂。AV1是开放标准。AV1免费使用。这些标准都在不断改进。改进目标是更高压缩率。更高压缩率节省存储和带宽。
网络环境各种各样。有的网络快。有的网络慢。视频压缩需要适应网络。自适应码率技术解决这个问题。视频服务器存储多个版本。每个版本码率不同。网络好时发送高清版本。网络差时发送流畅版本。播放器自动切换版本。观看体验更平滑。这个技术依赖压缩算法。算法需要支持分层编码。分层编码将视频分成基础层和增强层。基础层保证基本画质。增强层提升画质。网络好时接收所有层。网络差时只接收基础层。
计算复杂度需要考虑。压缩算法在设备上运行。设备有手机、电脑、摄像机。设备计算能力有限。算法不能太复杂。太复杂的算法耗电多。太复杂的算法发热大。工程师需要平衡压缩效率和计算复杂度。硬件加速帮助解决问题。专用芯片处理视频编解码。专用芯片速度快。专用芯片功耗低。许多设备都有这种芯片。
压缩算法影响视频质量。压缩太厉害画质会下降。画面可能出现块状。块状是编码块边界明显。画面可能出现模糊。模糊是细节丢失太多。画面可能出现拖影。拖影是运动处理不佳。工程师测试各种场景。测试人脸、文字、运动场景。调整参数找到最佳平衡。主观测试让人来评分。客观测试用数学公式计算分数。目标是在低码率下保持好画质。
新技术的出现改变现状。机器学习用于视频压缩。神经网络可以预测帧内容。神经网络可以优化编码参数。神经网络的学习能力强。基于神经网络的压缩方法正在研究。这些方法可能超越传统方法。现在还没有大规模应用。未来可能会有新标准。新标准可能包含人工智能。
虚拟现实需要新算法。虚拟现实视频是全景的。全景视频数据量极大。传统压缩方法不够用。专门为全景视频设计的方法正在开发。这些方法考虑人眼视野。只压缩视野内的区域。视野外的区域降低质量。这需要更复杂的算法。
视频压缩算法无处不在。我们每天接触压缩视频。视频通话使用压缩。在线视频使用压缩。监控录像使用压缩。没有压缩就没有现代视频生活。压缩算法是幕后英雄。我们看不到算法。我们享受算法的成果。文件变小了。加载变快了。画面变清晰了。这些都是算法的功劳。
研究还在继续。更好的算法被发明。更高效的标准被制定。硬件也在进步。网络也在升级。视频质量会更好。文件体积会更小。我们的体验会提升。视频压缩算法是一个技术领域。这个领域充满活力。工程师和学者努力工作。他们的工作让我们生活更方便。