SOF (0xFFC0〜FFCF) フレームヘッダー Back
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バイト 対応量子化テーブル番号