2. 数字媒体基础
在进入编解码原理之前,必须先建立一套“数字媒体参数坐标系”。因为编码器调优本质上是在有限的比特预算下,对空间、时间、色彩和精度四个维度做取舍。采样、量化、像素格式、色彩空间、帧率、分辨率与码率,正是描述这些取舍的基本语言。理解它们之间的换算与制约关系,才能在后续配置编码器时判断“该降哪个参数、该保哪个参数”。
一、从模拟到数字:采样与量化
现实世界的图像和声音是连续信号。数字化需要两步:采样把连续信号在空间或时间上离散化,量化把每个采样点的幅度映射到有限个离散等级。对图像而言,采样决定“有多少个像素”,量化决定“每个像素能表示多少种颜色”。
- 采样:二维图像按行列网格取样,采样点密度即分辨率;视频在时间轴上按帧率取样。
- 量化:每个采样值用固定比特数表示,8 bit 可表示 256 级,10 bit 可表示 1024 级。
- 量化误差:比特数越低,平滑渐变越容易出现色带(banding),暗部尤其明显。
二、像素格式与色彩空间
像素格式描述一个像素在内存中如何排布,色彩空间描述这些数值如何被解释为颜色。二者常被混用,但职责不同。
最常见的像素格式是 YUV 4:2:0。人眼对亮度(Y)敏感、对色度(U/V)不敏感,因此色度可以降采样:每 4 个 Y 共享一组 U/V。相比 RGB 4:4:4,4:2:0 直接把原始数据量降到约一半,是 H.264/H.265 消费级编码的主流输入格式。
| 像素格式 | 色度采样 | 相对数据量 | 典型场景 |
|---|---|---|---|
| RGB 4:4:4 | 无降采样 | 100% | 图形、屏幕内容、后期合成 |
| YUV 4:4:4 | 色度全采样 | 100% | 专业调色、无损中间格式 |
| YUV 4:2:2 | 水平 2:1 | 约 67% | 广播采集、演播室 |
| YUV 4:2:0 | 水平垂直 2:1 | 约 50% | 流媒体、点播、直播 |
色彩空间则决定“数值到颜色”的映射。常见的有 BT.601、BT.709、BT.2020。若把 BT.709 的素材误标为 BT.601,画面会明显偏色;HDR 还涉及 PQ/HLG 传递函数与 BT.2020 色域。编码器本身通常不改变色彩空间,但转码链路中的元数据标记错误会直接导致播放端色彩异常。
三、帧率、分辨率与码率的基本关系
码率(bitrate)是单位时间内编码输出的数据量,单位通常是 kbps 或 Mbps。它与分辨率、帧率、位深、像素格式和内容复杂度共同决定压缩难度。可以用一个简化的原始数据量公式来理解:
原始码率 ≈ 宽 × 高 × 帧率 × 每像素比特数
例:1920×1080、25fps、YUV420、8bit
每像素平均比特 ≈ 12 bit(Y 8bit + UV 共 4bit)
原始码率 ≈ 1920 × 1080 × 25 × 12 ≈ 622 Mbps
编码器的任务,就是把这 622 Mbps 压缩到几 Mbps 甚至几百 kbps,同时尽量保持主观质量。压缩比越高,越依赖编码工具的效率和码率控制策略。
四、案例:同一内容在不同参数下的码率取舍
假设一段 1080p25 的直播画面,目标是在 4 Mbps 内保持清晰。若直接按 1080p25 编码,运动场景容易出现块效应。此时可考虑以下调整:
- 把帧率从 25 降到 20,时间维度数据量下降 20%,运动平缓场景几乎无感。
- 保持 1080p,但把编码 preset 从 veryfast 调到 medium,提升压缩效率。
- 若仍不足,再考虑降到 720p,但优先保帧率,避免画面卡顿。
- 像素格式保持 4:2:0,位深保持 8 bit,避免链路不兼容。
这个顺序体现了一个原则:先动时间与编码工具,再动空间分辨率,最后才动色彩精度。因为人眼对帧率下降和分辨率下降的敏感度,通常高于对色度降采样的敏感度。
五、常见误区与复盘
- 误区一:分辨率越高越清晰。若码率不足,高分辨率反而因压缩过度而更糊。
- 误区二:帧率越高越好。高帧率会显著增加码率需求,低码率下可能牺牲单帧质量。
- 误区三:4:2:0 一定比 4:4:4 差。在观看距离和显示设备受限时,4:2:0 的视觉损失往往可接受。
- 误区四:色彩空间只是元数据,不影响画质。标记错误会导致整体偏色,属于典型“参数事故”。