JPEGはマーカーと呼ばれる2バイトの識別子でその後に続くデータの意味を表す
(以下、上がファイルの先頭。)
Markar |
byte |
内容 |
種類 |
SOI |
ff,d8 |
Start of Image |
|
: |
: |
: |
複数のセグメント |
SOF |
ff,c0~cf(c4,c8,ccを除く) |
ここにサイズや色の情報が入っている。必ずSOF0からSOF14までのうち必ず1つは存在する |
セグメント |
: |
: |
: |
複数のセグメント |
SOS |
ff,da |
このファイルの実データ |
イメージデータ |
EOI |
ff,d9 |
End of Image |
|
各セグメントの中は、
[マーカー(2byte)][セグメントのサイズ(2byte,この2byteを含むサイズ)][セグメントの内容]
という順番で並んでいる。
SOI,EOIはマーカー(2byte)のみからなる。
SOSの中に「ff」が存在する場合は、識別子と混同しないよう、後ろに「00」がつく。
(ff,00 はマーカーじゃないよ、という印。)
[入力画像の作成成分の1画素あたりのビット数(1byte)][画像の高さ(2byte)][画像の幅(2byte)][フレーム内の色成分数(1byte)]・・・・
例)画像の高さが、[02,58] の順で並んでいたとすると、
258(16進数)→600(10進数)
高さは600pxとなる。
入力画像の作成成分の1画素あたりのビット数が8、フレーム内の色成分数が3なら、
8×3で24ビットカラーとなる。
-
最終更新:2007年03月09日 10:13