为什么小尺寸 JPEG 在 Chrome 里长得不一样:一个聪明的解码优化
来源:guillaumetech.github.io — 2026-08-03
📋 概述
作者发现同一个 15px 小图标在 Chrome 里看起来比 Firefox 更粗、更不还原,换 SVG 就好了。这不是渲染 bug,而是 Chrome 在缩略渲染 JPEG 时的一个聪明优化。文章用尽量少的术语讲清了 JPEG 的 DCT 分块与频域原理:大图缩小时丢失的主要是高频细节,Chrome 正是利用这一点,只解码并保留 1/8 尺度下真正需要的低频信息,从而省下内存与计算——代价是极小块图标的观感与直接全量解码略有差异。
🔑 核心要点
- Chrome 对缩略 JPEG 使用按需解码频域的优化,而非全量解压再缩放。
- 大幅缩小丢的主要是高频细节,低频信息基本保留。
- JPEG 通过 DCT 把 8×8 块转成频域系数,天然适合做尺度裁剪。
- 2000×2000 的图显示成 20×20,全量解压要 12MB,直接解码仅需 1.2KB。
💡 金句
看起来像渲染 bug 的东西,往往是一个藏得很深的性能优化。
👍 0
👎 0
← 返回 Lobsters 首页