Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
人間の目はかわらない、だからJPEGは30年もつ
Search
yuzneri
July 25, 2026
Programming
19k
12
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
人間の目はかわらない、だからJPEGは30年もつ
2026/07/25
大吉祥寺.pm 2026
yuzneri
July 25, 2026
More Decks by yuzneri
See All by yuzneri
かわいい娘
yuzneri
0
40
人間の目はかわらない、でも、発表の届き方はかわる
yuzneri
0
90
テーブルをDELETEした
yuzneri
0
170
昔つくったIoTデバイス
yuzneri
0
110
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
380
色を視る
yuzneri
0
570
ゲームと乱数
yuzneri
0
150
即売会で使える業務用決算端末
yuzneri
0
110
コードの外側に惹かれた
yuzneri
0
100
Other Decks in Programming
See All in Programming
バグを直したら useEffect が消えた
colorful12
3
840
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.8k
AIの中の人になってみる
htkym
0
170
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
iOS開発×AI駆動開発 〜最近使って便利だったスキルの話〜
nogu66
0
140
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
130
Foundry Localでエージェント開発
seosoft
0
150
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.8k
ソフトウェアラスタライザ
fadis
1
790
アクセシビリティから考える情報設計
high_g_engineer
0
280
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
320
The untapped power of vector embeddings
frankvandijk
2
1.9k
Designing for Performance
lara
611
70k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Believing is Seeing
oripsolob
1
210
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Transcript
⼈間の⽬はかわらない、 だからJPEGは30年もつ 2026/07/25 ⼤吉祥寺.pm 2026 ゆずねり@yuzneri 撮影OK、𝕏投稿OK
ゆずねり 𝕏: yuzneri •株式会社ペイメントフォー •バックエンドエンジニア •商業、同⼈誌の執筆 •趣味はドールを愛でること ←𝕏フォローしてね
時は1990年代 •640x480の画像が無圧縮で約1MB •3.5インチフロッピーが1.44MB •HDDが50〜100MB •メモリが2MB •ネットがISDN(128kbps=16KB/s≓1分) 2026/07/25 3
JPEG(34歳) •Joint Photographic Experts Groupが開発 •1992年にITU-T T.81で標準化 • インターネットの⼀般普及より前 •2026年でも普通に使われている
2026/07/25 4
JPEGより⾼性能な形式は何度も登場した 年 フォーマット ひとこと 1987 1992 1996 2000 2009 2010
2015 2019 2022 GIF JPEG PNG JPEG 2000 JPEG XR WebP HEIF AVIF JPEG XL 動く先輩 本⽇の主役 GIFのお家騒動で⽣まれた透明感がある完璧な後輩 時代が早すぎた JPEGと⾔いつつMicrosoft育ち GoogleがVP8を元に作って本気で広めた MPEGが作ったAppleのお気に⼊り AV1を元にしたAV1の副業 天下を担うJPEG正統後継 2026/07/25 5
それでもなぜJPEGは消えないのか •GIFは最⼤256⾊という制約が、写真⽤途には不 向きだった •JPEGは捨てる物を⼈の眼に合わせた •「⼈間の視覚→JPEGの仕組み→設計ヒント」 の順に⾒ていきます 2026/07/25 6
⼈の眼という前提 2026/07/25 7
⾊差の変化より輝度の変化を識別しやすい •明るさを⾒る桿体(かんたい)細胞 • 約1.2億個 •⾊を⾒る錐体(すいたい)細胞 • 約600万個 •⾊差の細かな空間変化は識別しにくい 2026/07/25 8
明るさと⾊の⾒え⽅の⽐較 明るさ(Y) 2026/07/25 ⾊差(Cb) 9
細部(⾼周波)に鈍い •模様が細かくなるほど識別できない •細かい変化は省いてもバレない 2026/07/25 10
JPEGの仕組み 2026/07/25 11
JPEGは捨てても気付きにくい物を捨てる 1. ⾊変換 2. サンプリング 3. DCT 4. 量⼦化 ⾊を捨てる
細部を捨てる 5. 符号化 2026/07/25 12
1.⾊変換 - 明るさと⾊を分ける •RGB画像を明るさ (Y)と⾊(Cb、Cr)に 分ける •⾊だけ捨てる前処理 2026/07/25 13
2.サンプリング - ⾊を間引く •明るさはそのまま •⾊は4画素を1画素にする • ⾊のデータは75%削減 •全体で50%削減 2026/07/25 14
サンプリングの例 オリジナル 2026/07/25 4:2:0 15
サンプリングの例(⼀部拡⼤) オリジナル 2026/07/25 4:2:0 16
3.DCT - 画像を波に変換する •画像を8x8に区切り、64画素をDCT(離散コサイ ン変換)すると画像を波として表現出来る 2026/07/25 17
波にすると画像の特徴が集まる • 明るさ • 形状 • ゆるやかな グラデー ション 2026/07/25
低 周波数(縦) • ⼤まかな変化 周波数(横) •細かな変 化 • 模様 • エッジ • ノイズ 18
4. 量⼦化 - ⾼周波成分を捨てる •DCT係数を量⼦化 テーブルの値で割っ て丸める 16 11 10
16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 •右下の⾼周波ほど、 強く丸める 18 22 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 2026/07/25 19
量⼦化前のデータ 2026/07/25 -235.4 -131.3 23.2 -21.6 -0.9 3.2 2.7 -1.8
-140.7 36.6 53.3 5.6 8.3 -3.6 0.1 1.5 62.1 102.6 -15.3 -25.9 2.8 -0.4 3.7 -0.2 -28.2 -19.9 -16.7 -2.5 -2.6 -6.3 -1.3 -2.3 26.1 17.1 -9.9 1.7 5.6 5.4 10.5 -1.7 9.1 3.4 3.9 7.9 5.1 -1.5 -5.4 2 2 -4.6 -10.3 -1.7 1.2 3 -5.9 -2.4 0.4 -2.8 -0.1 -2.4 -5.2 -1.5 0.8 0.4 20
量⼦化後のデータ 2026/07/25 -15 -12 2 -1 0 0 0 0
-12 3 4 0 0 0 0 0 4 8 -1 -1 0 0 0 0 -2 -1 -1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21
量⼦化の例 オリジナル 2026/07/25 Q50 Q10 22
量⼦化の例(⼀部拡⼤) オリジナル 2026/07/25 Q50 Q10 23
5. 符号化 •左上からジグザグに⾒ ると、後の44個が連続 してゼロになる -15 -12 2 -1 0
0 0 0 -12 3 4 0 0 0 0 0 4 8 -1 -1 0 0 0 0 -2 -1 -1 0 0 0 0 0 •前20個+打切り記号だ けで64画素の近似で復 元できる 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2026/07/25 24
WebPとの⽐較 2026/07/25 25
JPEGとWebPの⽐較 JPEG(1992) 捨てるもの ⾊差‧⾼周波成分 予測 符号化 ハフマン符号化 ⾊の間引き 4:4:4, 4:2:2,
4:2:0 変換 8x8 計算資源 数⼗MHz ストレージ 数⼗MB 2026/07/25 WebP(2010) ⾊差‧⾼周波成分 イントラ予測 算術符号化 4:2:0 主に4x4 数GHz 数TB 26
WebPは予測してから符号化 •上と左の画素から中⾝を予測 •予測が当たれば差分が0になり圧縮 で⾮常に有利 •2010年の計算資源で成⽴した設計 2026/07/25 上左の 画素か ら予測 27
30年で変わったもの、変わらないもの 変わったもの 変わらないもの •計算資源 •⼈間の眼 •圧縮アルゴリズム • 30年変わらない制約 •ネットワーク環境 •画像の利⽤環境
2026/07/25 28
まとめ •時代と共に技術は変わる •JPEGは、変わりにくい⼈間の視覚を圧縮の中 ⼼に置いた •そこにシンプルさと互換性が積み重なり、30年 以上使われた 2026/07/25 29
) 古 夏 * % 空 写 規 # !
, 格 " # ( $ 2026/07/25 30