注目★★★★★Hacker News
Chrome の小さい JPEG がぼやけて見える理由、JPEG デコード最適化の罠
30秒で把握
- 1Chrome の JPEG デコードが小スケール表示で部分的逆離散コサイン変換を適用、低周波のみ抽出
- 28 分の 1 スケール以下で高周波情報 (エッジ・細部) が失われ、Firefox より太く見える結果に
- 3アイコンやロゴは JPEG より SVG 採用を推奨、JPEG は写真向け形式
要約
Chrome は小さく表示される JPEG 画像に対し、部分的な逆離散コサイン変換 (partial IDCT scaling) という最適化を適用している。この技術は 8 分の 1 スケール以下での表示時に低周波成分のみをデコードするため、エッジ情報や細部が失われ、Firefox などの完全展開方式と異なる見た目になる。Chrome が使用する libjpeg-turbo による高速化が、アイコンや小さな図像でテクスチャをより厚ぼったく見せてしまう。
あなたへの影響
JPEG をアイコンやロゴなど小さなグラフィックスに使い続けている場合、ブラウザごとに見た目が異なる可能性がある。
推奨:アイコンセットや UI グラフィックスは SVG への移行を検討する価値がある。