lain画集のBinHexエンコードされた画像を見る(10)
スキャンヘッダー
table: innocent.jpg_スキャンヘッダー
データ名 バイト数 実際のデータ(16進) 説明
マーカー 2 FF DA スキャンヘッダー
セグメント長 2 00 0C 12
成分数 1 03 3
成分ID等 (Y) 2 01 00 1, 0, 0 (成分ID, DC成分ハフマンテーブル番号, AC成分ハフマンテーブル番号)
成分ID等 (Cb) 2 02 11 2, 1, 1
成分ID等 (Cr) 2 03 11 3, 1, 1
量子化係数開始番号 1 00 0
量子化係数終了番号 1 3F 63
係数値分割シフト量 1 00 0, 0 (前回のスキャンの係数値分割シフト量, 係数値分割シフト量)
この後にイメージデータが来ることを示すらしい。あと各成分がどのハフマンテーブルを使うかなども。
イメージデータ
table: innocent.jpg_イメージデータ
データ名 バイト数 実際のデータ(16進) 説明
~16行 73 F4 04 92 49 ... 24 92 4A 7F
マーカー 2 FF D0 リスタートマーカー
~32行 121 F4 04 92 49 ... 24 92 4A 7F
マーカー 2 FF D1 リスタートマーカー
~48行 141 F4 04 92 49 ... 92 49 25 3F
マーカー 2 FF D2 リスタートマーカー
~64行 134 F4 04 92 49 ... 24 92 49 4F
マーカー 2 FF D3 リスタートマーカー
~80行 107 F4 04 92 49 ... 92 49 24 A7
マーカー 2 FF D4 リスタートマーカー
~96行 71 F4 04 92 49 ... 24 92 49 0F
マーカー 2 FF D5 リスタートマーカー
~112行 60 F4 04 92 49 ... 92 49 24 A7
マーカー 2 FF D6 リスタートマーカー
~128行 46 F4 04 92 49 ... 24 92 4A 7F
マーカー 2 FF D7 リスタートマーカー
~144行 52 F4 04 92 49 ... 24 94 FF 00
マーカー 2 FF D0 リスタートマーカー
~160行 52 F4 04 92 49 ... 24 92 4A 7F
マーカー 2 FF D1 リスタートマーカー
~176行 44 F4 04 92 49 ... 24 92 49 29
マーカー 2 FF D2 リスタートマーカー
~192行 47 F4 04 92 49 ... 49 24 92 9F
マーカー 2 FF D3 リスタートマーカー
~208行 44 F4 04 92 49 ... 92 49 25 3F
マーカー 2 FF D4 リスタートマーカー
~224行 41 F4 04 92 49 ... 24 92 49 4F
マーカー 2 FF D5 リスタートマーカー
~240行 45 F4 04 92 49 ... 24 92 49 29
マーカー 2 FF D6 リスタートマーカー
~256行 68 F4 04 92 49 ... 49 24 92 9F
マーカー 2 FF D7 リスタートマーカー
~272行 69 F4 04 92 49 ... 49 24 92 53
マーカー 2 FF D0 リスタートマーカー
~288行 56 F4 04 92 49 ... 24 94 FF 00
マーカー 2 FF D1 リスタートマーカー
~304行 45 F4 04 92 49 ... 92 49 24 A7
マーカー 2 FF D2 リスタートマーカー
~320行 48 F4 04 92 49 ... 49 24 92 9F
(73+121+141+134+107+71+60+46+52+52+44+47+44+41+45+68+69+56+45+48+2*19 = 1402)
画像の本体部分。(量子化テーブル、ハフマンテーブルが違えば別物になるけど)
BinHexエンコードされた文字列のどこがイメージデータの開始やリスタートマーカーに対応しているかは次のページで。
エンドマーカー
table: innocent.jpg_エンドマーカー
データ名 バイト数 実際のデータ(16進) 説明
マーカー 2 FF D9 エンドマーカー
JPEGの終端
JPEGのどの部分が何なのかはこれで全て見ることができた(一応)。あとは1,l問題をどうするか的なことを少し書こうかと。