「JPEG/マーカー」の版間の差分
imported>Administrator ページの作成:「'''マーカー'''(英語:maker)とは、JPEGファイルの中に存在する2バイトの区切りのことである。 == 概要 == JPEGファイルは基...」 |
imported>Fallout New Tokyo 編集の要約なし |
||
| (2人の利用者による、間の11版が非表示) | |||
| 1行目: | 1行目: | ||
'''マーカー''' | [[JPEG]]の'''マーカー'''([[英語]]:maker)とは、JPEGファイルの中に存在する2[[バイト]]の区切りのことである。 | ||
== 概要 == | == 概要 == | ||
| 14行目: | 14行目: | ||
| データ本体 | | データ本体 | ||
|} | |} | ||
マーカーは2[[バイト]]も使っているが上位1バイトは「0xFF」固定だったりする。 | |||
[[JPEG]]と互換性のない[[JPEG2000]]も基本的にはJPEGのファイル構造をベースとしており、新たにマーカーを追加拡張するかたちで実装されている。 | |||
== マーカーの種類 == | == マーカーの種類 == | ||
[[JPEG]]を標準化した標準化団体の[[ITU-T]]は何でもかんでも[[3文字アルファベット]]で表記する決まりがあるため、それぞれのマーカーには[[3文字アルファベット]](+数字の場合もある)が割り当てられている。 | |||
{| class="wikitable" style="width:100%; font-family:monospace" | {| class="wikitable" style="width:100%; font-family:monospace" | ||
| 26行目: | 29行目: | ||
|- | |- | ||
| 0xFF, 0xC0 | | 0xFF, 0xC0 | ||
| SOF0 | | [[JPEG/マーカー/SOF0|SOF0]] | ||
| 基本処理 DCT | | 基本処理 DCT 処理のフレーム開始マーカー。一般的なJPEGはこれ。 | ||
|- | |- | ||
| 0xFF, 0xC1 | | 0xFF, 0xC1 | ||
| SOF1 | | [[JPEG/マーカー/SOF1|SOF1]] | ||
| 拡張順次 DCT のフレーム開始マーカー、ハフマン符号処理 | | 拡張順次 DCT のフレーム開始マーカー、ハフマン符号処理 | ||
|- | |- | ||
| 0xFF, 0xC2 | | 0xFF, 0xC2 | ||
| SOF2 | | [[JPEG/マーカー/SOF2|SOF2]] | ||
| 段階 DCT | | 段階 DCT のフレーム開始マーカー、ハフマン符号処理。一般的には[[プログレッシブJPEG]]として知られている。 | ||
|- | |- | ||
| 0xFF, 0xC3 | | 0xFF, 0xC3 | ||
| SOF3 | | [[JPEG/マーカー/SOF3|SOF3]] | ||
| 可逆処理 | | 可逆処理 のフレーム開始マーカー、ハフマン符号処理。[[DICOM]]などに多い。 | ||
|- | |- | ||
| 0xFF, 0xC5 | | 0xFF, 0xC5 | ||
| SOF5 | | [[JPEG/マーカー/SOF5|SOF5]] | ||
| 差分順次 DCT のフレーム開始マーカー、ハフマン符号処理 | | 差分順次 DCT のフレーム開始マーカー、ハフマン符号処理 | ||
|- | |- | ||
| 0xFF, 0xC6 | | 0xFF, 0xC6 | ||
| SOF6 | | [[JPEG/マーカー/SOF6|SOF6]] | ||
| 差分段階 DCT のフレーム開始マーカー、ハフマン符号処理 | | 差分段階 DCT のフレーム開始マーカー、ハフマン符号処理 | ||
|- | |- | ||
| 0xFF, 0xC7 | | 0xFF, 0xC7 | ||
| SOF7 | | [[JPEG/マーカー/SOF7|SOF7]] | ||
| 差分可逆処理のフレーム開始マーカー、ハフマン符号処理 | | 差分可逆処理のフレーム開始マーカー、ハフマン符号処理 | ||
|- | |- | ||
| 0xFF, 0xC8 | | 0xFF, 0xC8 | ||
| JPG | | [[JPEG/マーカー/JPG|JPG]] | ||
| | | JPEG規格拡張のために予約。いわゆる永遠に使われない予約領域 | ||
|- | |- | ||
| 0xFF, 0xC9 | | 0xFF, 0xC9 | ||
| SOF9 | | [[JPEG/マーカー/SOF9|SOF9]] | ||
| 順次 DCT のフレーム開始マーカー、算術符号処理 | | 順次 DCT のフレーム開始マーカー、算術符号処理 | ||
|- | |- | ||
| 0xFF, 0xCA | | 0xFF, 0xCA | ||
| SOF10 | | [[JPEG/マーカー/SOF10|SOF10]] | ||
| 段階 DCT のフレーム開始マーカー、算術符号処理 | | 段階 DCT のフレーム開始マーカー、算術符号処理 | ||
|- | |- | ||
| 0xFF, 0xCB | | 0xFF, 0xCB | ||
| SOF11 | | [[JPEG/マーカー/SOF11|SOF11]] | ||
| 可逆処理のフレーム開始マーカー、算術符号処理 | | 可逆処理のフレーム開始マーカー、算術符号処理 | ||
|- | |- | ||
| 0xFF, 0xCD | | 0xFF, 0xCD | ||
| SOF13 | | [[JPEG/マーカー/SOF13|SOF13]] | ||
| 差分順次 DCT のフレーム開始マーカー、算術符号処理 | | 差分順次 DCT のフレーム開始マーカー、算術符号処理 | ||
|- | |- | ||
| 0xFF, 0xCE | | 0xFF, 0xCE | ||
| SOF14 | | [[JPEG/マーカー/SOF14|SOF14]] | ||
| 差分段階 DCT のフレーム開始マーカー、算術符号処理 | | 差分段階 DCT のフレーム開始マーカー、算術符号処理 | ||
|- | |- | ||
| 0xFF, 0xCF | | 0xFF, 0xCF | ||
| SOF15 | | [[JPEG/マーカー/SOF15|SOF15]] | ||
| 差分可逆処理のフレーム開始マーカー、算術符号処理 | | 差分可逆処理のフレーム開始マーカー、算術符号処理 | ||
|- | |||
| 0xFF, 0xC4 | |||
| [[JPEG/マーカー/DHT|DHT]] | |||
| ハフマン符号表の定義マーカー | |||
|- | |||
| 0xFF, 0xCC | |||
| [[JPEG/マーカー/DAC|DAC]] | |||
| 算術符号処理条件の定義マーカー | |||
|- | |||
| 0xFF, 0xD0 | |||
| [[JPEG/マーカーRSTm|RST0]] | |||
| リスタートインターバルの0番マーカー | |||
|- | |||
| 0xFF, 0xD1 | |||
| [[JPEG/マーカーRSTm|RST1]] | |||
| リスタートインターバルの1番マーカー | |||
|- | |||
| 0xFF, 0xD2 | |||
| [[JPEG/マーカーRSTm|RST2]] | |||
| リスタートインターバルの2番マーカー | |||
|- | |||
| 0xFF, 0xD3 | |||
| [[JPEG/マーカーRSTm|RST3]] | |||
| リスタートインターバルの3番マーカー | |||
|- | |||
| 0xFF, 0xD4 | |||
| [[JPEG/マーカーRSTm|RST4]] | |||
| リスタートインターバルの4番マーカー | |||
|- | |||
| 0xFF, 0xD5 | |||
| [[JPEG/マーカーRSTm|RST5]] | |||
| リスタートインターバルの5番マーカー | |||
|- | |||
| 0xFF, 0xD6 | |||
| [[JPEG/マーカーRSTm|RST6]] | |||
| リスタートインターバルの6番マーカー | |||
|- | |||
| 0xFF, 0xD7 | |||
| [[JPEG/マーカーRSTm|RST7]] | |||
| リスタートインターバルの7番マーカー | |||
|- | |||
| 0xFF, 0xD8 | |||
| [[JPEG/マーカー/SOI|SOI]] | |||
| ファイルの始まりを示すマーカー | |||
|- | |||
| 0xFF, 0xD9 | |||
| [[JPEG/マーカー/EOI|EOI]] | |||
| ファイルの終わりを示すマーカー | |||
|- | |||
| 0xFF, 0xDA | |||
| [[JPEG/マーカー/SOS|SOS]] | |||
| 画像データ本体の始まりを示すマーカー | |||
|- | |||
| 0xFF, 0xDB | |||
| [[JPEG/マーカー/DQT|DQT]] | |||
| 量子化表の定義マーカー | |||
|- | |||
| 0xFF, 0xDC | |||
| [[JPEG/マーカー/DNL|DNL]] | |||
| 行数を定義するマーカー | |||
|- | |||
| 0xFF, 0xDD | |||
| [[JPEG/マーカー/DRI|DRI]] | |||
| [[JPEG/リスタートインターバル|リスタートインターバル]]が出現する[[JPEG/MCU|MCU]]間隔を定義するマーカー | |||
|- | |||
| 0xFF, 0xDE | |||
| [[JPEG/マーカー/DHP|DHP]] | |||
| 階層化モード時(動画)のキーフレーム(非差分フレーム)を示すマーカー? | |||
|- | |||
| 0xFF, 0xDF | |||
| [[JPEG/マーカー/EXP|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 | |||
| [[JPEG/マーカー/COM|COM]] | |||
| コメントを示すマーカー | |||
|- | |||
| 0xFF, 0x01 | |||
| [[JPEG/マーカー/TEM|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マーカー、ファイルの終わり) | |||
== 関連項目 == | == 関連項目 == | ||
2014年3月3日 (月) 06:33時点における最新版
JPEGのマーカー(英語:maker)とは、JPEGファイルの中に存在する2バイトの区切りのことである。
概要[編集 | ソースを編集]
JPEGファイルは基本的に以下のような構造の繰り返しになっている。 ようするにバイナリなHTMLタグみたいなものである。
| 2バイト | 2バイト | 可変長 |
| マーカー | データ長 | データ本体 |
マーカーは2バイトも使っているが上位1バイトは「0xFF」固定だったりする。
JPEGと互換性のない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マーカー、ファイルの終わり)