<!-- title: 存频率不存像素：JPEG凭什么压缩十倍 -->
<!-- domain: programming -->
<!-- video: https://www.youtube.com/watch?v=CR3WQ003EnE -->

# 存频率不存像素：JPEG 凭什么压缩十倍

> 解读视频：*Branch Education: JPEG Compression — How It Works & Why It Matters*（频道 CRZY CYBR）

## 导语：每天传的几十亿张照片，都靠同一个数学魔术

打开手机相册、刷一条朋友圈、加载一个电商商品图——你看到的绝大多数照片，背后都是同一个格式：JPEG。它把一张动辄几十 MB 的原始图像，压成几百 KB，却让你几乎看不出差别。这背后不是"把图缩小"，而是一场针对人眼弱点的精密围猎。

我推荐的这段视频，是少有的把 JPEG 从"格式科普"讲到"工程内核"的深度讲解。它没有停留在"JPEG 是有损压缩"这种正确的废话，而是拆开了那个真正改变世界的引擎：**离散余弦变换（DCT）+ 量化**。看完你会明白一个反直觉的事实——JPEG 压缩的本质，不是"更聪明地存像素"，而是**根本不存像素，它存的是频率**。

更妙的是，这个"把数据变到另一个域里再扔掉一部分"的思路，是 MP3、MP4、HEVC、甚至一部分机器学习特征提取的共同底座。理解 JPEG，等于拿到了理解整个现代有损压缩世界的钥匙。

## 视频背景卡片

| 项目 | 内容 |
|------|------|
| 视频标题 | Branch Education: JPEG Compression — How It Works & Why It Matters |
| 频道 | CRZY CYBR（搬运/二次讲解 Branch Education 风格内容） |
| 原始内容来源 | Branch Education 系列（高质量动画工程科普） |
| 核心主题 | JPEG 有损压缩的完整流水线：DCT 变换、量化、熵编码、色度抽样 |
| 一句话定位 | 把"格式"讲成"算法"的工程级科普 |

> 说明：因当前环境被 YouTube 按云服务器 IP 封锁，无法拉取该视频字幕做逐句引用；本解读以视频核心主题为骨架，结合 JPEG 编解码标准（ITU-T T.81 / JPEG baseline）的工程原理展开，凡延伸内容均有标注。

## 核心内容拆解

### 要点一：无损压缩已经撞上了天花板

视频首先回答一个常被跳过的问题：**为什么不直接用 ZIP 那样的无损压缩？** 答案藏在香农（Shannon）的信息论里——任何无损压缩，平均每个符号的编码长度都不可能低于信源本身的熵（信息量）。

而一张真实照片的熵极高：每一个像素的颜色都几乎不可预测，相邻像素虽然相关，但可压缩的冗余有限。用 PNG（无损）压一张相机原图，往往只能压掉 30%–50%，十几 MB 还是十几 MB。要在带宽和存储上"抠"出 10 倍以上的空间，无损路线在物理上就走死了。

**于是 JPEG 做了一个 PNG 不敢做的决定：主动丢信息。** 但丢得极其讲究——丢的是人眼根本注意不到的部分。这是整条流水线的设计原点：**压缩比的提升，来自对人类感知系统的精准建模，而不是更巧的编码。**（这一层判断是我延伸的框架，视频用画面语言表达了同一意思。）

### 要点二：DCT——把"像素"翻译成"频率"

这是整段视频最硬核、也最值钱的知识点。JPEG 不直接处理像素，而是先把图像切成 8×8 的小块，对每一块做**离散余弦变换（DCT）**。

DCT 做的事可以一句话概括：**把一个 8×8 的像素矩阵，变成另一个 8×8 的"频率系数"矩阵。** 左上角的系数代表整块的平均亮度（DC 分量），越往右下角，代表的空间频率越高——也就是越来越细的纹理、边缘、噪点。

为什么要费这趟劲？因为"像素域"里，每个数都差不多重要，看不出该删谁；但"频率域"里，重要程度天然分层：低频是图像的骨架（谁是谁、哪里亮哪里暗），高频是皮肤毛孔、毛发、噪点这些细节。**变换域把"值的大小"重新解读成"对人眼的重要性"。** 这是 JPEG 全部魔法的第一块基石。

### 要点三：人眼的频率盲区——丢信息却不被察觉的关键

DCT 之所以有用，是因为人眼有一个天生的不对称：**对低空间频率极其敏感，对高空间频率迟钝得多。** 一张图整体偏蓝还是偏黄、左侧比右侧亮还是暗，你一眼就能看出；但如果把某块皮肤里每 2 个像素交替的细微亮度差抹平，你大概率毫无察觉。

视频在这里点破了 JPEG 的设计哲学：它不是在"压缩图像"，而是在**压缩人眼的感知能力模型**——先把图像变成频率，再按"人眼对各种频率的敏感度"这张表，去决定哪些可以放心扔。你丢掉的，是生理上注定看不见的东西。

（延伸：这套"按感知敏感度分配精度"的思路，在音频里就是 MP3 的心理声学模型——人耳听不见的频率被相邻强音"掩蔽"，于是也可以扔。图像和音频压缩，底层是同一个哲学。）

### 要点四：量化——真正"扔数据"的那一步

如果说 DCT 是把仓库分好区，那**量化（Quantization）**就是动手扔货。它的操作简单粗暴：把每个频率系数除以一个数，然后取整。除以的数，写在一张叫**量化表（Q-table）**的 8×8 矩阵里。

量化表的精妙之处在于：**左上角（低频）的除数很小，比如 16；右下角（高频）的除数很大，比如 99 甚至 121。** 一个本就很小的高频系数，除以 100 再取整，结果几乎必然是 0。于是整块的右下角——那些细纹理、噪点——被成片地归零。

这就是 JPEG 的"损失"来源，也是 90% 压缩率的来源。你拍照 App 里的"画质 80、90"滑块，本质上就是在缩放这张量化表：数值越大，扔得越狠，文件越小、越糊。**JPEG 的"质量"参数，控制的不是分辨率，而是你愿意扔掉多少频率。** 视频用动图把"高频被归零、低频被保留"的过程可视化得非常直观。

### 要点五：色度抽样——还没开始 DCT，就先砍掉一半

很多人忽略 JPEG 的第一步其实是**色度抽样（Chroma Subsampling）**。人眼的视杆细胞（负责亮度）远比视锥细胞（负责颜色）密集，所以我们对亮度的分辨力，远高于对色度的分辨力。

JPEG 因此先把图像从 RGB 转成 YCbCr（一个亮度分量 Y + 两个色度分量 Cb、Cr），然后对色度做 **4:2:0 抽样**：每 2×2 个像素只保留 1 个颜色样本，亮度全留。这一刀下去，颜色数据直接砍到 1/4，而肉眼几乎无感。**它发生在 DCT 之前，是有损的第一道工序，也最容易被"画质党"忽略。**

实战含义很直接：拍风景人像，4:2:0 完全够；但如果存的是带文字的截图、UI 设计稿，色度抽样会让边缘发虚、彩边——这正是截图绝不该用 JPEG 的原因之一。

### 要点六：蛇形扫描 + 游程编码——把"大片零"打包

量化之后，每个 8×8 块的右下角几乎全是 0。如果按行存，0 和非零数字混在一起，很浪费。JPEG 用**蛇形扫描（Zigzag）**：从左上角低频出发，斜着一路扫到右下角高频。这样非零系数集中在前半段，后半段是一长串连续的 0。

紧接着是**游程编码（RLE）**：把连续的 0 打包成"连续多少个零 + 一个非零值"的对子，末尾再加一个 EOB（End of Block）符号表示"后面全是 0，不用存了"。一个块原本要 64 个数，量化+游程后常常只剩几个非零值和一个 EOB。压缩率在这一步再度跃升。

### 要点七：熵编码——最后的有损之后，再来一把无损榨干

到这一步所有"损失"都已经发生完了，剩下的是纯无损环节。JPEG 对 DC 系数做**差分编码（DPCM）**——只存相邻块平均亮度的差值（图像相邻区域亮度通常接近，差值很小）；对 AC 系数的 (游程, 大小) 对子，用**霍夫曼编码（Huffman）**或算术编码：出现越频繁的符号，给它越短的比特串。

熵编码把每个符号的平均码长压到接近其熵——这是信息论给出的极限。至此，原始像素已经变成了一段紧凑得多的比特流。**JPEG 的完整聪明在于：它把有损的脏活（DCT+量化）和无损的精算（熵编码）分工明确，各司其职。**

### 要点八（延伸）：JPEG 的边界——它在哪里会"露馅"

视频主要讲"为什么 JPEG 这么强"，我补一层"它在哪里会失败"，这对开发者选型更实用：

- **块效应（blocking）**：8×8 分块是独立的，高压缩率下块与块之间出现可见的接缝，蓝天、虚化背景上尤其明显。
- **振铃效应（ringing / mosquito noise）**：锐利边缘（文字、线条）周围出现涟漪状杂讯，因为代表这些边缘的高频被量化砍掉了。
- **对文字/截图灾难性差**：文字本质是高频信息，而 JPEG 恰恰最爱删高频。这就是为什么把截图另存为 JPEG 会发糊、出现彩边。

正是这些边界，催生了 WebP、HEIC、AVIF、JPEG XL 等新格式——它们同样用"变换+量化+熵编码"的骨架，但换上了更大的块、更强的帧内预测和更好的熵编码器。**JPEG 的 DCT 流水线，至今仍是整个有损图像压缩家族的祖型。**

## 知识结构图

```mermaid
flowchart TD
    A[原始 RGB 图像] --> B[RGB 转 YCbCr<br/>+ 4:2:0 色度抽样<br/>砍掉人眼不敏感的颜色]
    B --> C[切分成 8x8 像素块]
    C --> D[DCT 离散余弦变换<br/>像素域 → 频率域]
    D --> E[量化 Quantization<br/>高频系数除以大数 → 归零<br/>★有损的核心★]
    E --> F[蛇形扫描 Zigzag<br/>低频在前 高频归零在后]
    F --> G[游程编码 RLE<br/>长串零打包成一个符号]
    G --> H[熵编码 Huffman/算术<br/>高频符号用短码 纯无损]
    H --> I[压缩后的 JPEG 比特流]

    J[人眼频率盲区<br/>对低频敏感/对高频迟钝] -.驱动.-> E
    K[画质滑块<br/>缩放量化表] -.控制.-> E

    style D fill:#fff3cd
    style E fill:#f8d7da
    style J fill:#d1ecf1
```

```mermaid
flowchart LR
    subgraph 有损区[有损环节 - 决定压缩比]
      D2[色度抽样] --> E2[DCT 变换] --> Q2[量化]
    end
    subgraph 无损区[无损环节 - 榨干剩余冗余]
      Z2[Zigzag] --> R2[游程编码] --> H2[熵编码]
    end
    有损区 --> 无损区
    style Q2 fill:#f8d7da
    style H2 fill:#d4edda
```

## 实战启示：对开发者来说，JPEG 知识能直接变现

**第一，选对格式就是省一半带宽。** 自然照片（人像、风景、商品图）首选 JPEG / WebP / AVIF；但**截图、文字、UI 设计稿、Logo 必须用 PNG 或 WebP-Lossless**——因为它们的高频细节正是 JPEG 要删除的对象。把一张带文字的截图存成 JPEG，是新手最常见、也最隐蔽的画质灾难。

**第二，理解"画质 80"到底在调什么。** 那个滑块调的是量化表的缩放系数，不是分辨率。对网页用途，自然照片的甜点通常在 quality 75–85：再高，文件暴涨而肉眼几乎无收益；再低，块效应和振铃开始可见。做图床、CDN、电商前端，这条经验直接关系到带宽成本。

**第三，色度抽样要分场景。** 拍人像风景，4:2:0 是默认且安全；但如果图像里有文字、图表、需要锐利色块的 UI，应当切到 4:4:4（保留全部色度），否则边缘发虚、彩边会让你怀疑人生。

**第四，"变换域里扔数据"是可迁移的算法哲学。** DCT / DFT 不是 JPEG 专属：MP3 用 MDCT、视频编码（H.264/HEVC/AV1）用整数 DCT、甚至一些特征提取也借助频域。理解了 JPEG，你再看 MP3 为什么能压 10 倍、为什么一段 4K 视频能实时传输，就不再是黑盒——它们都是"先把信号变到能量集中的域，再按感知敏感度丢弃"这一个思路的不同实例。

**第五，知道何时该升级到下一代。** 当你需要比 JPEG 更高压缩比、或同时支持透明度和动画时，AVIF / WebP / JPEG XL 是明确的方向；但 JPEG 仍是最稳的"最低公约数"——兼容性无敌。技术选型永远是"压缩率 vs 兼容性 vs 编码耗时"的三角权衡。

## 延伸学习路径

1. **Branch Education 频道**——同系列还有视频压缩、网络协议等"动图级"工程科普，是理解复杂系统机制的最佳入口之一。
2. **Computerphile 的 JPEG/DCT 系列视频**——Mike Pound 的讲解偏算法细节，适合想啃 DCT 数学推导的读者。
3. **Parametric Press《Unraveling JPEG》互动文章**——用可交互的代码逐块拆解 JPEG，看完能自己写一个 toy 编码器。
4. **《数字图像处理》（Gonzalez & Woods）第 8 章**——图像压缩的学术正典，DCT 与量化理论的权威来源。
5. **3Blue1Brown 的傅里叶变换视频**——补上"为什么信号可以表示成频率之和"的直觉，是理解 DCT 的前置彩蛋。

## 一句话总结

JPEG 的伟大不在于"压缩"，而在于它看穿了人眼——**它存的从来不是像素，而是你能看见的那部分频率**，剩下的，它理直气壮地删掉。

## 参考来源

1. [Branch Education: JPEG Compression — How It Works & Why It Matters（分析核心视频）](https://www.youtube.com/watch?v=CR3WQ003EnE)
2. [ITU-T T.81 — JPEG 基线编码国际标准（DCT/量化/熵编码的权威定义）](https://www.w3.org/Graphics/JPEG/itu-t81.pdf)
3. [Parametric Press — Unraveling JPEG（交互式 JPEG 拆解）](https://parametric.press/issue-01/unraveling-the-jpeg/)
4. [Computerphile — How JPEG Compression Works / JPEG DCT（DCT 算法细节讲解）](https://www.youtube.com/results?search_query=computerphile+jpeg)

---
> 本文由「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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
