SOF (0xFFC0〜FFCF) フレームヘッダー |
SOFはJPEGファイルの種類や画像サイズなど最も重要なパラメータを記録しています。
ひとつのJPEGファイルやJPEG構造に必ず一つ記録されます。
SOFにはマーカコードの違いにより、全部で13種類有り、そのうち2種類、SOF0とSOF2が一般的に利用されます。
解析例
SOF0 :Start Of Frame 0 - Baseline DCT
640[0] x 480[0] pixel - 24bit color (YCbCr 4:2:0)
ComponentID-01 Y 2x2 QT0
ComponentID-02 Cb 1x1 QT1
ComponentID-03 Cr 1x1 QT1
1行目に表示されるSOFの種別はマーカによって異なります。SOF0=Baseline
2行目は画像の横サイズ X 縦サイズ 画像成分名(YCbCrの時はサンプリング比も表示)
画像サイズ横の[括弧]付き数字は、パディング数を表しています。
4:2:2または4:1:1のサンプリング比の画像をロスレス回転したものは回転4:2:2/回転4:1:1と表示されます。
3行目以降は各画像成分のサンプリングファクタ(横 X 縦)と参照している量子化テーブル
下の構造図と比較してみると値の対応が判ると思います。
YCbCrなどの画像成分名はAPPセグメントなどの内容やコンポーネント数、IDなどから判定、
パディング数は画像サイズ、サンプリング比などから割り出して表示しています。
SOFの構造
図の下の16進数値は 640x480 YCbCr 4:2:0 の画像の例
名称 サイズ 内容 Lf 2バイト セグメント長 P 1バイト 成分数 Y 2バイト 画像縦サイズ X 2バイト 画像横サイズ Nf 1バイト 成分数 以下の値は成分毎にあります Cn 1バイト 成分ID Hn 4ビット(上位) 水平サンプリング値 Vn 4ビット(下位) 垂直サンプリング値 Tqn 1バイト 対応量子化テーブル番号