JPEG/マーカー
ナビゲーションに移動
検索に移動
マーカー(英語:maker)とは、JPEGファイルの中に存在する2バイトの区切りのことである。
概要
JPEGファイルは基本的に以下のような構造の繰り返しになっている。 ようするにバイナリなHTMLタグみたいなものである。
2バイト | 2バイト | 可変長 |
マーカー | データ長 | データ本体 |
マーカーは2バイトも使っているが上位1バイトは「0xFF」固定だったりする。
JPEG2000は基本的にはJPEGのファイル構造をベースとしており、新たにマーカーを追加拡張するかたちで実装されている。
マーカーの種類
JPEGを標準化した標準化団体のITU-Tは何でもかんでも3文字アルファベットで表記する決まりがあるため、それぞれのマーカーには3文字アルファベット(+数字の場合もある)が割り当てられている。
バイト表記 | ITU-T表記 | 概要 |
---|---|---|
0xFF, 0xC0 | SOF0 | 基本処理 DCT 処理のフレーム開始マーカー。一般的なJPEGはこれ。 |
0xFF, 0xC1 | SOF1 | 拡張順次 DCT のフレーム開始マーカー、ハフマン符号処理 |
0xFF, 0xC2 | SOF2 | 段階 DCT のフレーム開始マーカー、ハフマン符号処理。一般的にはプログレッシブJPEGとして知られている。 |
0xFF, 0xC3 | SOF3 | 可逆処理 のフレーム開始マーカー、ハフマン符号処理。DICOMなどに多い。 |
0xFF, 0xC5 | SOF5 | 差分順次 DCT のフレーム開始マーカー、ハフマン符号処理 |
0xFF, 0xC6 | SOF6 | 差分段階 DCT のフレーム開始マーカー、ハフマン符号処理 |
0xFF, 0xC7 | SOF7 | 差分可逆処理のフレーム開始マーカー、ハフマン符号処理 |
0xFF, 0xC8 | JPG | JPEG規格拡張のために予約。いわゆる永遠に使われない予約領域 |
0xFF, 0xC9 | SOF9 | 順次 DCT のフレーム開始マーカー、算術符号処理 |
0xFF, 0xCA | SOF10 | 段階 DCT のフレーム開始マーカー、算術符号処理 |
0xFF, 0xCB | SOF11 | 可逆処理のフレーム開始マーカー、算術符号処理 |
0xFF, 0xCD | SOF13 | 差分順次 DCT のフレーム開始マーカー、算術符号処理 |
0xFF, 0xCE | SOF14 | 差分段階 DCT のフレーム開始マーカー、算術符号処理 |
0xFF, 0xCF | SOF15 | 差分可逆処理のフレーム開始マーカー、算術符号処理 |
0xFF, 0xC4 | DHT | ハフマン符号表の定義マーカー |
0xFF, 0xCC | DAC | 算術符号処理条件の定義マーカー |
0xFF, 0xD0 | RST0 | リスタートインターバルの0番マーカー |
0xFF, 0xD1 | RST1 | リスタートインターバルの1番マーカー |
0xFF, 0xD2 | RST2 | リスタートインターバルの2番マーカー |
0xFF, 0xD3 | RST3 | リスタートインターバルの3番マーカー |
0xFF, 0xD4 | RST4 | リスタートインターバルの4番マーカー |
0xFF, 0xD5 | RST5 | リスタートインターバルの5番マーカー |
0xFF, 0xD6 | RST6 | リスタートインターバルの6番マーカー |
0xFF, 0xD7 | RST7 | リスタートインターバルの7番マーカー |
0xFF, 0xD8 | SOI | ファイルの始まりを示すマーカー |
0xFF, 0xD9 | EOI | ファイルの終わりを示すマーカー |
0xFF, 0xDA | SOS | 画像データ本体の始まりを示すマーカー |
0xFF, 0xDB | DQT | 量子化表の定義マーカー |
0xFF, 0xDC | DNL | 行数を定義するマーカー |
0xFF, 0xDD | DRI | リスタートインターバルが出現するMCU間隔を定義するマーカー |
0xFF, 0xDE | DHP | 階層化モード時(動画)のキーフレーム(非差分フレーム)を示すマーカー? |
0xFF, 0xDF | EXP | 階層化モード時(動画)の拡張参照成分(差分フレーム)を示すマーカー? |
0xFF, 0xE0 | APP0 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE1 | APP1 | アプリケーションが自由に使える領域を示すマーカー、Exifはここに入れる決まりになっている。APP0やAPP2に入れちゃダメよ。 |
0xFF, 0xE2 | APP2 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE3 | APP3 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE4 | APP4 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE5 | APP5 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE6 | APP6 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE7 | APP7 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE8 | APP8 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xE9 | APP9 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xEA | APP10 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xEB | APP11 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xEC | APP12 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xED | APP13 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xEE | APP14 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xEF | APP15 | アプリケーションが自由に使える領域を示すマーカー |
0xFF, 0xF0 | JPG0 | 将来の拡張のために予約。 |
0xFF, 0xF1 | JPG1 | 将来の拡張のために予約。 |
0xFF, 0xF2 | JPG2 | 将来の拡張のために予約。 |
0xFF, 0xF3 | JPG3 | 将来の拡張のために予約。 |
0xFF, 0xF4 | JPG4 | 将来の拡張のために予約。 |
0xFF, 0xF5 | JPG5 | 将来の拡張のために予約。 |
0xFF, 0xF6 | JPG6 | 将来の拡張のために予約。 |
0xFF, 0xF7 | JPG7 | 将来の拡張のために予約。 |
0xFF, 0xF8 | JPG8 | 将来の拡張のために予約。 |
0xFF, 0xF9 | JPG9 | 将来の拡張のために予約。 |
0xFF, 0xFA | JPG10 | 将来の拡張のために予約。 |
0xFF, 0xFB | JPG11 | 将来の拡張のために予約。 |
0xFF, 0xFC | JPG12 | 将来の拡張のために予約。 |
0xFF, 0xFD | JPG13 | 将来の拡張のために予約。 |
0xFF, 0xFE | COM | コメントを示すマーカー |
0xFF, 0x01 | TEM | 算術符号処理での一時的な補助に用いるマーカー |
0xFF, 0xFF | NOP | 穴埋めマーカー、無視せよ |
主な構造
- 0xFF, 0xD8(SOIマーカー、ファイルの始まり)
- 0xFF, 0xE1(APP1マーカー、Exifが入ってる)
- 0xFF, 0xC4(DHTマーカー)
- 0xFF, 0xDB(DQTマーカー)
- 0xFF, 0xC0(SOF0マーカー)
- 0xFF, 0xDA(SOSマーカー)
- (画像データ)
- 0xFF, 0xD9(EOFマーカー、ファイルの終わり)