video_codec_tutorial

第二章:视频信号的表示

开篇段落

欢迎来到第二章。在第一章中,我们探讨了视频压缩的“为什么”——即数字视频中存在的各种冗余。本章我们将深入探讨视频信号“是什么”,以及它是如何被数字化表示的。理解视频信号的表示方式是掌握后续所有压缩技术的基础。我们将从人眼视觉系统最敏感的色彩和亮度分离开始,介绍YCbCr色彩空间,并解释为何它在视频领域比RGB更受青睐。随后,我们将讨论色度采样,这是一个巧妙利用人眼特性的关键压缩预处理步骤。我们还会涵盖位深、动态范围、HDR和WCG等高级概念,并一如既往地,将这些经典理论与最新的AI技术、以及行业发展历史联系起来。

色彩空间:RGB 与 YCbCr/YUV

在数字世界中,我们首先接触到的色彩模型通常是 RGB(红、绿、蓝)。它是一种”加色”模型,模仿了人眼中三种视锥细胞对不同波长光线的感知:L-锥细胞(长波,~564nm峰值)、M-锥细胞(中波,~534nm峰值)和S-锥细胞(短波,~420nm峰值)。在显示设备(如显示器、手机屏幕)上,每个像素都由红、绿、蓝三个子像素组成,通过调整它们的亮度混合成我们看到的各种颜色。RGB模型非常直观,易于硬件实现,因此在图像采集(如相机传感器)和显示端得到了广泛应用。

然而,RGB模型有一个显著的缺点:三个分量高度相关。一张彩色图片中的R、G、B三个通道的图像看起来非常相似,包含了大量的冗余信息。从数学角度来说,自然图像的R、G、B分量之间通常具有0.95以上的皮尔逊相关系数,这意味着它们承载了极为相似的结构信息。此外,RGB模型没有将人眼最为敏感的亮度信息与相对不那么敏感的色度信息分离开。研究表明,人类视觉系统对亮度变化的敏感度是对色度变化敏感度的约10倍。正如我们在第一章所讨论的,压缩的核心就是去除冗余,而RGB模型显然不利于此。

从技术实现角度,RGB模型还存在另一个问题:伽马特性。由于CRT显示器的非线性光电特性,RGB值与实际发光亮度之间存在幂函数关系(通常γ≈2.2-2.4),这进一步增加了信号处理的复杂性。

为了解决这个问题,视频工程领域引入了 YCbCr 色彩空间。这是一种将亮度和色度分离的表示方法,通常被非精确地称为 YUV。(严格来说,YUV指代的是模拟时代的PAL和NTSC系统,而YCbCr是其数字化的版本,但两者概念相似,在口语中常常混用)。

值得注意的是,YCbCr变换实际上是一个旋转变换,它将RGB空间中的坐标轴重新定向,使得新的轴之一(Y轴)沿着RGB立方体主对角线方向,这正是自然图像数据密集分布的方向。这种重新定向大大降低了分量间的相关性,为后续压缩创造了有利条件。

从RGB到YCbCr的转换是一个线性的数学变换。以BT.709标准(常用于高清电视)为例,转换公式如下:

Y  = 0.2126 \times R + 0.7152 \times G + 0.0722 \times B
Cb = -0.1146 \times R - 0.3854 \times G + 0.5000 \times B + 128
Cr = 0.5000 \times R - 0.4542 \times G - 0.0458 \times B + 128

这些系数并非随意选择。Y分量的系数(0.2126, 0.7152, 0.0722)基于人眼对不同波长的敏感度曲线,其中绿色权重最大,因为人眼对绿光最为敏感。这个权重分布反映了CIE 1931标准观察者的光谱光视效率函数V(λ)。

需要注意的是,上述公式适用于Full Range(0-255)的RGB输入。在实际的广播级系统中,还需要考虑Limited Range(Y: 16-235, CbCr: 16-240)的映射:

Y_{limited}  = 16 + 219 \times Y_{full}/255
Cb_{limited} = 16 + 224 \times (Cb_{full} - 128)/255 + 128
Cr_{limited} = 16 + 224 \times (Cr_{full} - 128)/255 + 128

这个变换的精妙之处在于它实现了去相关。变换后的Y, Cb, Cr三个分量之间的相关性大大降低(通常从>0.95降至<0.3)。Y分量保留了图像的绝大部分空间细节和视觉重要性(通常承载约80-90%的感知质量),而Cb和Cr分量则更像是两张低频的、描述色彩信息的”染色图”。

从频域角度来看,YCbCr变换实现了能量的重新分布:高频细节主要集中在Y分量中,而色度分量主要包含低频信息。这种特性使得在后续的变换编码步骤中,Y分量和CbCr分量可以采用不同的处理策略。

Rule-of-thumb: 在视频编码中,几乎所有工作都是在YCbCr空间中完成的。将RGB转换为YCbCr是视频预处理的第一步,也是最重要的一步,因为它为后续的色度采样、变换和量化等压缩步骤铺平了道路。

下面是一个简单的ASCII图,帮助理解这个概念:

      Original Image (RGB)
            |
            |  [ R ] [ G ] [ B ]  (Highly correlated channels)
            |
      +---------------------+
      |  Color Transform    |
      | (e.g., RGB to YCbCr)|
      +---------------------+
            |
            |  [ Y ] [ Cb ] [ Cr ] (Largely decorrelated channels)
            |      /      \
            |     /        \
      (High spatial detail) (Low spatial detail, color info)

色度采样:4:4:4, 4:2:2, 4:2:0 的原理与应用

将图像转换到YCbCr空间后,我们就有机会利用人眼视觉系统(Human Visual System, HVS)的另一个重要特性:人眼对亮度(Y)的敏感度远高于对色度(Cb, Cr)的敏感度。这一特性源于人眼的生理结构:负责高精度视觉的中央凹区域主要由对亮度敏感的杆状细胞组成,而负责色彩感知的锥状细胞密度相对较低。具体来说,人眼对亮度变化的敏感度约为色度变化敏感度的10-20倍,这种差异在空间频率域表现得更为明显。

色度采样(Chroma Subsampling)正是利用这一特性来降低数据量的技术。其核心思想是:保持亮度分量Y的全分辨率,但降低色度分量Cb和Cr的分辨率。这样可以在人眼几乎无法察觉到画质损失的情况下,显著减少需要编码和传输的数据。

从理论基础来说,色度采样实际上是应用了Nyquist采样定理的一个变种。由于人眼对色度信息的空间分辨能力有限(大约相当于亮度分辨能力的1/2到1/4),我们可以安全地对色度信号进行降采样而不引入可察觉的混叠失真。

色度采样的格式通常用一个三部分的比例 J:a:b 来表示(例如 4:2:0),这个表示法由 Charles Poynton 提出,描述了一个宽度为J像素、高度为2像素的区域内的采样情况:

这个记号系统虽然看起来简单,但实际上编码了复杂的采样模式信息。需要特别注意的是,这个记号描述的是概念模型,实际实现中可能存在不同的色度样本位置策略(如co-sited vs. centered positioning)。

让我们来解析最常见的三种格式,以及它们在频域和空间域的特性:

  1. 4:4:4:
    • 含义: 每个亮度样本Y都有其对应的Cb和Cr样本。没有任何色度信息的压缩。此格式保持了完整的色彩分辨率,相当于没有应用色度采样。
    • 采样图示:
      Y Y Y Y   Cb Cb Cb Cb   Cr Cr Cr Cr
      Y Y Y Y   Cb Cb Cb Cb   Cr Cr Cr Cr
      (J=4, a=4, b=4)
      
    • 技术特性:
      • 色度带宽与亮度带宽相等,无频谱混叠
      • 色度-亮度空间配准完美,无色边伪影
      • 支持高饱和度色彩的精确表示
    • 应用: 专业影视制作、高端电影调色、医疗成像、数字电影母版制作等对色彩保真度要求极高的领域。在这些场景下,原始信号的完整性是首要考虑的。ProRes 4444和DNxHR 444格式广泛采用此模式。
  2. 4:2:2:
    • 含义: 在水平方向上,每两个亮度样本共享一个Cb和一个Cr样本。垂直方向上没有降采样。色度分量的水平分辨率是亮度分量的一半,垂直分辨率保持不变。
    • 采样图示:
      Y Y Y Y   Cb    Cb      Cr    Cr
      Y Y Y Y   Cb    Cb      Cr    Cr
      (J=4, a=2, b=2)
      
    • 技术特性:
      • 水平色度带宽减半,垂直带宽不变
      • 在垂直运动场景中表现良好(如人物特写、体育赛事)
      • 对水平色彩边界可能产生轻微色边,但人眼通常不敏感
      • 便于隔行扫描系统处理
    • 应用: 专业广播级视频、高端摄像机(如ProRes 422, XDCAM HD422格式)、电视台制作流程。它在压缩效率和色彩保真度之间取得了很好的平衡,是广播行业的标准。
  3. 4:2:0:
    • 含义: 在水平和垂直方向上,每四个(2x2)亮度样本共享一个Cb和一个Cr样本。色度分量的水平和垂直分辨率都是亮度分量的一半。注意这里的”0”并不意味着第二行没有色度信息,而是表示第二行的色度信息与第一行相同。
    • 采样图示:
      Y Y Y Y   Cb    Cb      Cr    Cr
      Y Y Y Y    \     /       \     /
      (J=4, a=2, b=0) ↓ shared ↓   ↓ shared ↓
      
    • 技术特性:
      • 色度带宽在水平和垂直方向都减半,频谱效率最高
      • 对斜向色彩边界最为敏感,可能产生阶梯状色边
      • 最适合自然场景和人像,对图形内容(如文字、图表)效果较差
      • 在现代编码器中通过先进的色度插值算法可以最小化伪影
    • 应用: 这是最常见的采样格式,几乎用于所有消费级视频应用,包括蓝光光盘、网络流媒体(YouTube, Netflix)、视频会议、数字电视广播和移动设备。H.264/AVC和H.265/HEVC的Main Profile都默认使用此格式。

数据量对比: 假设每个样本为8比特(1字节),对于一个4x2的像素块(8个像素):

对于10-bit系统(HDR常用),节省比例保持不变,但绝对数据量增加25%。

带宽影响分析: 以1920×1080@30fps的视频为例:

质量影响评估: 在主观质量评估中:

Rule-of-thumb: 从4:4:4到4:2:0,我们直接将总数据量减少了一半,而这种损失对于普通观众来说几乎是不可见的。这是视频压缩中”免费午餐”的第一道菜,也是所有现代视频编码标准默认采用的预处理步骤。当你处理任何来自网络或消费级设备的视频时,可以安全地假设它是4:2:0格式的。色度采样的效果如此之好,以至于即使在存储和带宽充足的今天,4:2:0仍然是主流选择。

位深 (Bit Depth) 与动态范围

位深 (Bit Depth),又称色深,指的是用于表示每个颜色分量(Y, Cb, Cr 或 R, G, B)的二进制位数。它直接决定了图像能够表示的颜色数量和色彩的平滑程度,是数字视频系统的一个基础参数。

位深的选择涉及量化噪声存储效率之间的权衡。从信号处理的角度来看,更高的位深意味着更精细的量化步长,从而降低了量化误差。根据Weber-Fechner定律,人眼对相对亮度变化的敏感度是对数关系的,这解释了为什么伽马曲线能够有效分配有限的码字。

量化噪声分析: 假设原始信号在[0,1]范围内均匀分布,量化噪声功率为:

\sigma_{q}^2 = \frac{\Delta^2}{12}

其中 Δ = 1/2^n 为量化步长,n为位深。因此:

从8-bit增加到10-bit或更高位深,带来的最直观的好处是减少色带(Color Banding)现象。色带是指在颜色渐变平缓的区域(如天空、墙壁),由于颜色级别不够,导致出现像等高线一样的明显条纹。更高的位深提供了更精细的量化级别,使得颜色过渡更加平滑。

      8-bit Gradient                10-bit Gradient
+------------------------+      +------------------------+
|#####|=====|-----|     |      |#######======-----      |
|#####|=====|-----|     |      |#######======-----      |
|#####|=====|-----|     |      |#######======-----      |
+------------------------+      +------------------------+
 (Visible banding)             (Smooth transition)

动态范围 (Dynamic Range) 是指图像中最亮部分和最暗部分之间的对比度比例,通常用比值或分贝表示。这个概念在视频技术中至关重要,因为它决定了图像能够表达的明暗层次的丰富程度。

传统的显示器和视频内容是为标准动态范围 (Standard Dynamic Range, SDR) 设计的:

然而,人眼的真实动态感知能力远超SDR:

这种巨大的差距催生了高动态范围 (High Dynamic Range, HDR) 技术的发展。HDR不仅仅是”更亮”的问题,而是关于更好地分配有限的码字来匹配人眼的感知特性

从编码角度看动态范围: 在SDR系统中,8-bit的256个级别在0-100 nits范围内线性分布(经过伽马曲线调整),平均每个级别约0.4 nits。但人眼对亮度变化的敏感度是非线性的,在低亮度区域更敏感。这意味着SDR系统在暗部浪费了精度,在亮部又精度不足。

Rule-of-thumb: 对于SDR视频,8-bit位深是标准。对于HDR视频,10-bit是起步要求,12-bit则更为理想。位深的增加对于压缩效率来说是一个挑战,因为需要编码的数据精度更高了,但它对于提升视觉质量,特别是消除色带,至关重要。现代编码器(如HEVC和AV1)都原生支持10-bit和12-bit编码,以适应HDR内容的需求。

高级话题:高动态范围 (HDR) 与宽色域 (WCG)

高动态范围 (High Dynamic Range, HDR) 是近年来视频领域最重要的技术革新之一。它旨在让视频画面更接近人眼的真实所见,拥有更亮的亮部、更暗的暗部,以及两者之间更丰富的细节。HDR的核心在于重新设计整个信号链,从拍摄、处理、编码、传输到显示的每个环节。

与SDR(亮度约100 nits)相比,HDR显示器的峰值亮度可以达到1000-10000 nits甚至更高。但HDR的价值不仅仅在于峰值亮度,更在于更好的亮度层次分布更准确的色彩表现

为了有效地表示如此宽广的亮度范围,HDR技术引入了几个核心概念:

  1. 电光转换函数 (Electro-Optical Transfer Function, EOTF): 传统SDR使用伽马曲线 (Gamma 2.4) 作为EOTF,它最初是为了补偿CRT显示器的非线性特性。而HDR则采用更先进的EOTF:

    • 感知量化 (Perceptual Quantization, PQ / SMPTE ST 2084): 基于Barten模型的人眼感知特性,能够表示0.0001到10,000 nits的亮度范围。PQ曲线在暗部分配更多码字,在亮部相对较少,符合Weber-Fechner定律。数学表达式:
      L = 10000 \times \left(\frac{\max(N^{1/m_2} - c_1, 0)}{c_2 - c_3 \times N^{1/m_2}}\right)^{1/m_1}
      

      其中 m₁=2610/4096×1/4, m₂=2523/4096×128, c₁=3424/4096, c₂=2413/4096×32, c₃=2392/4096×32

    • 混合对数伽马 (Hybrid Log-Gamma, HLG / ARIB STD-B67): 由BBC和NHK联合开发,在低亮度区域使用传统伽马曲线,在高亮度区域使用对数曲线,便于向后兼容SDR设备。
  2. 元数据 (Metadata): HDR内容通常包含元数据,用于告知显示设备如何正确地渲染画面。

    • 静态元数据 (Static Metadata): 如HDR10标准,它为整个视频提供一组固定的元数据(如最大和平均亮度)。
    • 动态元数据 (Dynamic Metadata): 如Dolby Vision和HDR10+,它可以为每个场景甚至每一帧提供不同的元数据,从而实现更精确的色调映射(Tone Mapping),最大化不同性能显示设备的回放效果。

宽色域 (Wide Color Gamut, WCG) 通常与HDR相伴相生。色域是指一个色彩空间能够表示的颜色范围,在CIE 1931色度图中用三角形表示。传统的SDR视频使用 BT.709 色域,它只能覆盖人眼可见颜色范围的约35%。而WCG标准则能表示更广泛的色彩:

      Color Gamuts (Illustrative Coverage in CIE 1931)
      .--------------------------------------.
      |      BT.2020 (75% coverage)          |
      |   .----------------------------.     |
      |   |      DCI-P3 (54%)         |     |
      |   |   .------------------.     |     |
      |   |   |   BT.709 (35%)   |     |     |
      |   |   '------------------'     |     |
      |   '----------------------------'     |
      '--------------------------------------'
      (Visible spectrum: ~2.3M distinguishable colors)

WCG的技术挑战:

Rule-of-thumb: HDR和WCG是现代高质量视频体验的基石。HDR负责“亮得上去,暗得下来”,而WCG负责“色彩更鲜艳,更真实”。两者结合,需要至少10-bit的位深来支撑,并需要整个生态系统(拍摄、制作、编码、传输、解码、显示)的全链路支持。

AI 算法改进:超分辨率 (Super-resolution) 与色彩增强

传统的视频处理流程是固定的,而AI(特别是深度学习)的引入为视频信号的表示和增强带来了革命性的变化。

  1. 超分辨率 (Super-resolution, SR):
    • 问题: 将低分辨率视频放大到高分辨率(例如,从1080p放大到4K)。传统的放大算法(如双线性和双三次插值)会使图像变得模糊,丢失细节。
    • AI方案: 基于深度学习的SR模型(如SRCNN, EDSR, SRGAN)通过在大量的“低分辨率-高分辨率”图像对上进行训练,学习到了如何智能地“创造”出丢失的细节。它们可以生成远比传统算法更清晰、更锐利的放大图像,甚至能恢复出一些纹理细节。
    • 在编解码中的应用: SR可以在解码端作为后处理步骤,允许在传输时使用较低的分辨率以节省带宽,然后在显示端恢复到高分辨率。一些前沿的编码方案甚至尝试将SR集成到编码循环中,作为一种新的压缩工具。
  2. 色彩增强 (Color Enhancement):
    • 问题: 视频在拍摄或传输过程中可能出现色彩暗淡、色偏或动态范围压缩等问题。
    • AI方案: 深度学习模型可以学习从低质量(如SDR、色偏)视频到高质量(如HDR、色彩校正后)视频的映射。例如,可以将一个普通的SDR视频“逆映射”成一个具有HDR效果的视频,这个过程被称为“反色调映射”(Inverse Tone Mapping)。同样,AI模型也可以用于自动白平衡、色彩校正和风格迁移。

Rule-of-thumb: AI正在从“后处理”工具逐渐走向视频编解码的核心。对于视频信号表示而言,AI不仅能“修复”和“增强”信号(如SR和色彩增强),未来更有可能“生成”信号,从根本上改变我们对视频压缩的认知。例如,不再传输像素,而是传输描述场景的语义信息,由AI在解码端重新渲染画面。

历史事件/人物:Charles Poynton 与色彩科学

在视频工程领域,Charles Poynton 是一位不得不提的人物。他是一位工程师、作家和科学家,以其在数字视频、色彩科学和高清电视领域的深刻见解和清晰阐述而闻名。他的著作《A Technical Introduction to Digital Video》和《Digital Video and HD: Algorithms and Interfaces》被誉为该领域的“圣经”。

Poynton最大的贡献之一是澄清和规范了许多视频工程中的基本概念

Poynton的另一个重要贡献是在计算机科学和视频工程两个领域之间架起了桥梁。在早期,计算机图形学倾向于使用8-bit RGB,而广播电视行业则使用YCbCr。Poynton的工作帮助两个领域的专家相互理解对方的术语和技术,促进了数字媒体技术的融合。

可以说,我们今天能准确地讨论和处理数字视频信号,很大程度上得益于Charles Poynton在概念普及和标准化方面做出的不懈努力。

当代事件/人物:Dolby Vision 与 HDR10+ 的竞争

进入HDR时代后,标准之争再次上演。其中最引人注目的就是 Dolby VisionHDR10+ 之间的竞争,这本质上是两种动态元数据技术路线的较量。

这场竞争的格局如下:

Rule-of-thumb: 对于追求极致画质的用户和内容创作者来说,基于动态元数据的Dolby Vision和HDR10+无疑优于静态的HDR10。这场标准之争仍在继续,但最终受益的是消费者,因为它推动了整个行业向更高质量的视觉体验迈进。

本章小结

本章我们深入探讨了数字视频信号的基础表示方法。以下是关键概念的总结:

理解这些基本概念至关重要,因为它们是所有现代视频编解码器设计和优化的出发点。在下一章,我们将开始探索混合编码框架的第一个核心模块:帧内预测。

常见陷阱与错误 (Gotchas)

  1. 混淆YUV和YCbCr: 虽然口语中常混用,但在技术讨论和编程中,务必清楚YUV通常指模拟信号,而YCbCr指数字信号。它们的转换矩阵和数值范围可能不同,混用会导致色彩错误。
  2. 错误的色彩空间转换: 在处理视频帧时,忘记或错误地进行色彩空间转换是一个常见错误。例如,在YCbCr数据上直接应用为RGB设计的图像处理算法,会导致奇怪的颜色和亮度失真。务必确保在正确的色彩空间下进行操作。
  3. 忽略色彩范围(Color Range): 数字视频中的Y, Cb, Cr值可以有两种表示范围:Limited Range(或称Studio/Legal Range,例如8-bit下Y为16-235,Cb/Cr为16-240)和 Full Range(或称PC Range,例如8-bit下所有分量均为0-255)。如果编码器和播放器对范围的假设不一致,会导致画面对比度过高(“crushed blacks”)或过低(“washed out”)。
  4. 对4:2:0的像素对齐感到困惑: 在编程处理4:2:0视频时,一个色度样本对应2x2个亮度样本。如何正确地索引和插值色度值是一个常见的绊脚石。例如,MPEG-2, H.264和HEVC/VVC对于色度样本相对于亮度样本的位置有不同的规定(co-sited vs. interstitial),处理不当会导致色边(color bleeding)伪影。
  5. 认为HDR仅仅是“更亮”: HDR的核心是“更高的动态范围”,而不仅仅是峰值亮度。这意味着暗部细节同样重要。一个好的HDR显示不仅要亮得上去,也要暗得下去,并且能在极亮和极暗的区域同时保留细节。
  6. 在8-bit下处理HDR/WCG内容: 试图在8-bit的限制下表示HDR的宽动态范围或WCG的宽色域,会立刻导致严重的色带。这是因为有限的256个级别无法平滑地覆盖如此广阔的范围。处理HDR/WCG内容时,使用10-bit或更高位深的流水线是强制性的。