你手机里每一张照片几乎都是JPEG。一张1200万像素的照片,原始数据约36MB,存进相册却只要三四MB——被扔掉的九成信息去了哪里?为什么你看不出少了东西?Computerphile频道的这节《JPEG DCT》课,用一块8×8的小方格把这个问题讲到了骨头里。它是目前为止把离散余弦变换(DCT)讲得最清楚的视频之一:不堆公式,先给你看64张“花纹”,再让你亲眼看着高频花纹被一张量化表批量抹零。看完这条课,你不只是懂了JPEG——你拿到了音频压缩、视频编码乃至机器学习谱方法共用的那把“换基”钥匙。本文按视频叙事顺序拆解全片要点,补上理论与史料出处,并对几处流行的简化说法做批判性核查。
| 项目 | 内容 |
|---|---|
| 视频标题 | JPEG DCT, Discrete Cosine Transform (JPEG Pt1) |
| 中文译名 | JPEG的灵魂:离散余弦变换(JPEG系列第一集) |
| 频道 | Computerphile(Brady Haran主持的计算机科普频道) |
| 主讲 | Dr Mike Pound(诺丁汉大学,计算机视觉方向) |
| 发布时间 | 2019年10月(据频道页面) |
| 热度 | 百万级以上播放,长期居频道算法类内容前列(据频道页面,未实时核验) |
| 续作 | 《JPEG 'files' & Colour (JPEG Pt2)》,讲文件结构与色彩存储 |
注:热度与时间数据以频道页面公开信息为准,本文未做实时核验,故不引精确数字。
Mike Pound开篇先算一笔账。屏幕上每个像素由红绿蓝三个通道构成,各占一个字节,合计24比特。一张1200万像素的照片,1200万×3字节≈36MB。可相册里同一张照片只有三四MB。中间差的这九成,不是“被压缩了”,而是“被判定为冗余后扔掉了”。整条JPEG流水线,本质上是一套关于“怎么扔、按什么顺序扔、扔到什么程度”的工程学:先做感知手术(有损),再做记账优化(无损)。
压缩的第一步不是数学,是生理学。RGB不适合直接压,因为人眼不是这样看世界的。视频先把颜色换成YCbCr:Y是亮度,Cb和Cr是色度。然后动手——色度通道的分辨率直接砍半再砍半(业内叫4:2:0降采样),色度数据只剩四分之一,整张图的数据量先腰斩。
依据是视觉科学的经典结论:人眼对亮度的空间变化极其敏感,对色块的边界却相当迟钝。你从来没发现照片里的色彩其实是“糊”的,因为它在相机里就是糊的,你的视网膜从不介意。
真正的重头戏是DCT。把图切成8×8的小块,每块64个像素。DCT做的事情,是把“第几行第几列是什么颜色”这种记法,改写成“64种固定花纹各自有多强”。这64种花纹从左上到右下,空间频率由低到高:左上角是近乎纯色的平底基,右下角是最细密的棋盘条纹。视频最精彩的一幕就是把这64张花纹全部摆出来——那一刻“频率”这个抽象词变成了可以看见的东西。
这一步本身无损,只是换了一种记账方式。神奇之处在于:自然图像的能量几乎全部集中在低频。大片天空、渐变皮肤、平滑墙面,用前十几种花纹就能拼个八九不离十;一块纯色天空的64个系数里,代表整块平均值的DC系数之外,其余63个几乎全是零。高频系数大多接近零——这就是后面敢下重手的原因。
有损发生在量化这一步。每个频率系数除以量化表里对应的数字,再四舍五入取整。低频配小除数,误差可控;高频配大除数,一大批系数直接归零。你在软件里拖动“图片质量”滑杆时,本质上只是在改这张表的整体倍率——质量越低,除数越大,归零的越多。
量化之后做Z字形扫描:从左上低频区一路走Z字到右下高频区,让零值在序列尾部连成长串,为最后一步备好原料。
最后是行程编码加哈夫曼编码:一长串零记成“零×23”,出现频繁的符号分配短比特。这一步严格无损,是纯粹的组合数学。视频在此点题:真正砍掉九成体积的是前半段的感知手术,后半段只是把幸存的信息写得紧凑。
DCT:一篇1974年的IEEE论文。 离散余弦变换由Nasir Ahmed、T. Natarajan与K. R. Rao在1974年1月的《IEEE Transactions on Computers》上提出。相比傅里叶变换要伺候复数,DCT只用实数余弦基,且对图像这类“边界不希望跳变”的信号能量集中度更好——这是它胜出的数学底子。
标准化:1992年的T.81。 JPEG由联合图像专家组(Joint Photographic Experts Group)制定,1986年前后启动,1992年定稿为ITU-T T.81建议书(ISO/IEC 10918系列)。标准里写死的默认量化表与哈夫曼表,就是你在软件里看到“质量75”的出厂默认。标准同时允许算术编码替代哈夫曼,但因专利问题,普及度远逊。
哈夫曼:一门课程作业。 1952年,MIT学生David Huffman在Robert Fano的信息论课上,用一学期的作业击败了老师和Shannon的香农-范诺编码,最优前缀码从此姓哈夫曼。JPEG熵编码层用的正是它。
视觉科学:为什么扔得掉。 Campbell与Robson在1958年给出的对比敏感度函数(CSF)表明:人眼对不同空间频率条纹的敏感度差异巨大,中低频最敏感,高频迅速衰减——这正是量化表“对高频下手重”的知觉依据。色度迟钝则源于视网膜锥细胞的分布,对短波长敏感的S锥占比很低。换句话说,4:2:0降采样是在替你的视网膜做决定。
香农的地基。 1948年香农的《通信的数学理论》奠定的率失真思想指出:有损压缩的本质是在比特预算与失真预算之间做交易。JPEG是这个理论最成功的商业实现之一。
次优的胜利:DCT与KLT。 理论上能量压缩最优的是K-L变换(KLT),但它依赖每张图自己的统计特征,换一张图就要重算一套基,代价高到无法部署。Rao与Yip在1990年的专著《Discrete Cosine Transform》中系统论证了DCT在常见信号假设下逼近KLT,同时基是固定的、硬件友好的。工程史一再重演这一幕:最优的不可部署,可部署的赢天下。
家族树。 JPEG的直系后代是视频编码:MPEG把“每帧做一次JPEG式变换”加上帧间运动补偿,长成了H.26x家族;MP3/AAC里的MDCT是它在音频界的表亲。而技术更先进的JPEG 2000(小波路线)因授权复杂、实现笨重,至今只在少数垂直领域存活;今天网络上崛起的WebP与AVIF,则是视频编码器“抽一帧”反哺静态图片的回旋镖。
证据扎实的部分:整条流水线(YCbCr→降采样→DCT→量化→熵编码)是教科书内容,与T.81标准文本一致;“能量集中于低频”有大量实测支撑;DCT的1974出处与哈夫曼的1952出处都是硬史料。
需要打折的部分:
2019年的课放到2026年要补的背景:视频没有提JPEG XL——这之后图片格式赛道的最大变量。它支持把现有JPEG直接重压缩、体积再减约一半,但2023年Chrome宣布移除其支持后,浏览器阵营几经反复,至今未全面铺开。读老课要带着新地图。
启示一:存图前先问内容类型。 照片→JPEG或WebP,质量75–85是性价比区间;截图、文字、图标、代码界面→PNG(无损对锐利边缘反而更小);需要反复编辑→保留无损母版,每次发布才导出有损版本。铁律一条:有损格式不做二次有损,每压一次,失真上叠失真。
启示二:学会“换基”这一个动作。 JPEG的灵魂不是删除,是变换——把信号换到一组更讲道理的基上,让能量站到少数坐标轴,剩下的全是删零的体力活。同一思想贯穿音频的MDCT、视频的宏块变换、机器学习的特征分解与谱方法。看懂这节课,等于拿到一族算法的同一把钥匙。
启示三:给“够用的次优”记一功。 KLT最优而不可部署,JPEG 2000先进而输掉生态,DCT固定、简单、授权干净,反而统治图像世界三十余年。做技术选型时,把实现复杂度、授权成本与生态惯性放进评分表,比单比参数表更接近真实胜负。
flowchart TD
A["原始照片<br/>每像素24比特"] --> B["色彩空间转换<br/>RGB改为YCbCr"]
B --> C["色度降采样4:2:0<br/>数据先砍一半"]
C --> D["切成8×8小块<br/>逐块处理"]
D --> E["DCT变换<br/>像素改记为64种花纹强度"]
E --> F["量化<br/>高频四舍五入归零"]
F --> G["Z字形扫描<br/>零值连成长串"]
G --> H["行程编码+哈夫曼<br/>无损收尾"]
H --> I["JPEG文件<br/>体积缩至一成左右"]
F -.->|"低频小心保留"| J["人眼敏感区"]
F -.->|"高频粗粒度删除"| K["人眼迟钝区"]
本文由「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 等场景全覆盖。
