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
140
1
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
テーブルをDELETEした
yuzneri
0
28
昔つくったIoTデバイス
yuzneri
0
37
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
280
色を視る
yuzneri
0
480
ゲームと乱数
yuzneri
0
83
即売会で使える業務用決算端末
yuzneri
0
74
コードの外側に惹かれた
yuzneri
0
78
ぼくの開発環境2026
yuzneri
1
430
2025年アウトプット振り返り
yuzneri
0
61
Other Decks in Programming
See All in Programming
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
200
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
110
Claude Team Plan導入・ガイド
tk3fftk
0
220
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
Foundation Models frameworkで画像分析
ryodeveloper
1
130
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
540
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
1年で人数1.5倍、PR数5.5倍増。 品質とアウトカムはどうなったか、 何が効いたか
ike002jp
0
140
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
140
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
390
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
150
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
463
34k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
The Language of Interfaces
destraynor
162
27k
WCS-LA-2024
lcolladotor
0
740
So, you think you're a good person
axbom
PRO
2
2.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
220
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
GitHub's CSS Performance
jonrohan
1033
470k
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