首页 › programming › 消失的像素:视频压缩神课深读

消失的像素:视频压缩神课深读

概述

你每点开一部在线电影,都在享用一场人类工程学上的静默奇迹:原始数据量 1.5Gbps 的视频,被塞进一条 5Mbps 的家用宽带管道里,还让你看着毫无知觉。这不是魔法,而是一整套叫“视频编解码器”(Video Codec)的机器在替你干活——它每秒删掉超过 99% 的数据,删得你的眼睛完全看不出来。YouTube 频道 Reducible 的《How do Video Codecs Work?》用二十多分钟把这台机器拆开给你看,被普遍视为该频道播放量最高的镇宅之作之一,也是同类主题里公认最清晰的入门神课。本文按视频的叙事顺序逐层拆解,补上它没讲透的理论源头、争议点,以及你今天就能用上的实操建议——没看过视频你能看懂,看过视频能多懂一层。

一、视频基本信息

项目 内容
视频标题 How do Video Codecs Work?(视频编解码器是怎么工作的)
频道 Reducible
发布时间 2023 年
热度 播放量达数百万量级,是该频道影响最大的作品之一,长期被开发者社区与 HN(Hacker News)用户列为计算机科学入门必看

诚实说明:本文撰写环境未能实时抓取频道页面,以上数据为公开长期信息的量级参考,不编造精确数字;精确播放量与日期请以频道页面为准。

二、核心主张拆解:一场对“冗余”的围剿

视频的整体叙事结构非常干净:先立问题,再连挥三刀,最后落到标准与产业。下面按它讲故事的原顺序展开。

1. 出发点:视频天生“超重”

一帧 1080p 的画面是 1920×1080 ≈ 207 万个像素,每个像素用 24 比特表示红绿蓝,每秒 30 帧——乘下来就是约 1.5 Gbps 的原始码率。一部 90 分钟的电影,裸存要 800GB 上下的空间,是你手里蓝光碟片的三十多倍,更是一条家用宽带根本啃不动的洪流。

而流媒体上的同一部电影,1080p 档位的码率通常只有每秒 5Mbps 上下(约合每小时几个 GB)。两头一除,压缩比在两三百倍的量级。视频的第一个主张就立在这里:没有编解码器,就没有流媒体时代。你付给运营商的每一分流量钱,背后都是这门手艺在打折。

2. 第一刀:颜色减半(YCbCr 与 4:2:0)

第一刀砍向颜色。视频系统不存 RGB,而是转成 YCbCr:Y 是亮度,Cb/Cr 是两路色度。依据是人的视网膜结构——负责明暗感知的视杆细胞数量远多于负责颜色的视锥细胞,人眼对亮度细节极其挑剔,对颜色的分辨率却相当迟钝。

既然如此,颜色通道就可以“减半再减半”。最常用的 4:2:0 采样方案,把水平和垂直方向的色度分辨率各砍一半,四个像素共用一组色度值。平均每像素数据量从 24 比特降到 12 比特——一刀直接省一半,而普通观众毫无察觉。

这是典型的“信息不删、精度打折”。但注意,此时码率也只降到 750Mbps 左右,离 5Mbps 还差一百多倍。光靠空间上偷懒不够,第二维度的冗余还在 时间 里。

3. 第二刀:时间冗余(帧间预测与运动补偿)

视频是画面的序列,相邻两帧大概率长得几乎一样。摄像机横摇一次,整幅画面平移几个像素,如果把每一帧都当新画面存,就是在反复花钱买同一幅画。

所以编码器把帧分成三类,构成所谓 GOP(图像组)结构:

这就是运动估计与运动补偿:编码器在参考帧里搜索当前画面块最像的位置,记下位移,再把没对齐的误差(残差)单独编码。对镜头缓慢移动的电视剧,这一刀的收益极其恐怖——大部分时间屏幕上根本没有新信息。

4. 第三刀:空间冗余(DCT 变换与量化)

运动补偿之后剩下的残差、以及 I 帧本身,还要做一遍帧内的“像素手术”,方法和 JPEG 同宗同源:

把画面切成小块(如 8×8),对每块做离散余弦变换(DCT)——本质是把“一张像素亮度表”改写成“一组空间频率的配方”:低频是缓慢变化的大色块,高频是细密的锯齿和纹理。自然图像的能量高度集中在低频,变换之后,大多数高频系数几乎为零。

接下来是量化:对低频系数精确保留,对高频系数大刀阔斧地除以一个大数再取整——大量系数直接归零。这一步是整条流水线里唯一的“不可逆有损”环节,也是所有压缩伪影(色块、模糊、蚊子噪声)的出生地。量化后的稀疏系数再做 zigzag 扫描和游程编码,零就被成串打包,体积骤减。

5. 最后一刀:熵编码(CABAC)

前三刀都是“减少要表达的量”,最后一刀是纯无损的“把表达本身写到最短”。现代编码器用 CABAC(基于上下文的自适应二进制算术编码),核心思想来自 1970 年代的算术编码研究:给出现概率越高的符号分配越短的码,并且一边编码一边根据上下文动态更新概率模型。在 H.264 标准里,CABAC 相比它身边那个简化版(CAVLC)通常还能再省约 10% 的码率——最后一榨,榨得干干净净。

6. 地上世界:标准、专利与政治

视频的收尾部分跳出算法,讲了一件更少人知道的事:编解码器不只是算法,更是产业链协议。

这条线讲完,你会意识到一个程序员世界反复上演的剧本:技术再好,绕不开制度的接口。

三、知识与理论溯源:这些名字你应该知道

视频节奏快,很多出处一笔带过。这里是它们背后的真实源头,每一条都可以按图索骥:

四、批判性审查:哪些说法要打折扣

这门课大局极稳,但有几处简化,值得你多存一个心眼:

1. “人眼对颜色不敏感”是统计意义上的大多数。 色度减半对风景、人脸成立,但在高饱和度色彩的锐利边缘(比如黑底上的纯红文字)会出现色彩溢出。更要命的是“屏幕内容”:代码编辑器、PPT、网页文字这类 UI 画面大面积违反自然图像假设,所以 HEVC 和 AV1 后来都专门加了 Screen Content Coding 扩展。这也顺带解释了一个日常现象:为什么录屏和游戏画面比电影更难压、更容易糊。

2. “高频可以扔”只在自然画面上成立。 胶片颗粒、雨点、树叶、水面反光都是高频,却恰恰承载质感。压狠了画面会呈现一种发腻的“塑料感”。作为补救,AV1 加入了胶片颗粒合成技术——把颗粒从画面里剥掉单独编码,显示端再“撒”回去。你看,工程学最后总是绕回来,把删掉的东西用另一种方式补上。

3. 运动均匀假设的失效瞬间。 快速甩镜、粒子爆炸、半透明叠加、满屏噪点,都会让运动预测失去意义,残差爆炸。直播事故里“糊成马赛克再慢慢变清晰”的那几秒,就是码率预算追不上残差成本的现场实录——不是网络断了,是数学在报警。

4. “新标准一定更好”要打折。 实验室 BD-rate 数字漂亮,不等于部署收益:编码复杂度高几个数量级、存量设备解码能力不足、专利授权不明朗,都足以让更好的标准迟到十年。HEVC 的推广困境和 AV1 的渐进替代,是“实验室指标 ≠ 产业现实”的活教材(授权细节据行业长期报道,本文不展开)。

5. 评价体系本身有争议。 PSNR 与人眼观感长期脱节,VMAF 好得多但也只是代理指标。所谓“压缩质量”,永远是在下注“人如何感知”,而人对感知的建模,本身还在迭代。

五、认知提升与实用启示

1. 自建影音库、做内容分发的开发者:用 AV1/HEVC 慢速档重压老库。 FFmpeg 一条命令就能把 H.264 老片重编码为 HEVC 或 AV1(CRF 取 22–28、preset 放慢),同画质下体积通常能省 30%–50%(社区常见经验值,因内容而异)。本质是用编码时间换存储和带宽——对有几千小时片库的档案型用户,这笔账非常划算。

2. 内容创作者与直播者:码率预算要花在“人眼所在”。 高频噪点会吃掉大半码率——推流前适度降噪;运镜尽量稳,避免频繁甩镜;大面积的树叶、网格、水花是最贵的画面。反之,“静止背景 + 小面积运动”是最省码率的内容形态。理解了冗余在哪,你就理解了钱花在哪。

3. 方法论层面:每一代 codec 都是对人类感知的一次工程化建模。 这个视角可以迁移到所有“有损”系统——文档摘要、缓存过期、API 分页截断,本质上都在赌“哪些信息你不会注意”。做产品时值得自问一句:我的 4:2:0 是什么?我赌你不会看的那部分,真的看不出来吗?

六、一图看懂:视频压缩流水线

flowchart TD
    A["原始帧<br/>约1.5Gbps"] --> B["色彩转换<br/>YCbCr 4:2:0"]
    B --> C["第一刀省一半<br/>约750Mbps"]
    C --> D{"按帧类型分流"}
    D -->|I帧| E["帧内预测<br/>直接进变换"]
    D -->|P帧/B帧| F["运动估计<br/>只记位移"]
    F --> G["残差很小<br/>同样进变换"]
    E --> H["DCT变换"]
    G --> H
    H --> I["量化<br/>高频清零"]
    I --> J["熵编码 CABAC"]
    J --> K["码流约5Mbps<br/>压掉99%以上"]
    K --> L["解码端<br/>逆向重建画面"]

整条流水线的哲学浓缩成一句话:先骗过时间(帧间预测),再骗过空间(变换与量化),最后骗过字母表(熵编码)——三场骗局环环相扣,观众的眼睛是唯一的裁判。

延伸阅读

  1. Discrete cosine transform - Wikipedia — DCT 从 1974 年原始论文到各视频标准中变体的完整脉络
  2. AV1 - Wikipedia — 免版税编解码器的产业史与技术细节,理解“算法之外”那一层

参考来源

  1. Reducible 频道主页 — 本文解读对象《How do Video Codecs Work?》所在频道
  2. Discrete cosine transform - Wikipedia — Ahmed/Natarajan/Rao 1974 论文与 DCT 在 JPEG、H.26x 中的应用
  3. Chroma subsampling - Wikipedia — 4:2:0 色度采样方案的原理与视觉依据
  4. Advanced Video Coding (H.264) - Wikipedia — I/P/B 帧结构、CABAC 与标准时间线
  5. AV1 - Wikipedia — AOMedia 联盟与免版税标准演进

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入