首页 › programming › 存频率不存像素:JPEG凭什么压缩十倍

存频率不存像素: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 这么强",我补一层"它在哪里会失败",这对开发者选型更实用:

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

知识结构图

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
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(分析核心视频)
  2. ITU-T T.81 — JPEG 基线编码国际标准(DCT/量化/熵编码的权威定义)
  3. Parametric Press — Unraveling JPEG(交互式 JPEG 拆解)
  4. Computerphile — How JPEG Compression Works / JPEG DCT(DCT 算法细节讲解)

本文由「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学通信知识星球海报-扫码加入