2013-04-01

JPEG2000 の codestream の構造

ISO/IEC 15444-1:2000 Annex A "Codestream Syntax" に規定がある。

なんというか、わかった気になるための概要。

・コードストリームはマーカー・マーカーセグメント・データの羅列である。
 これらはすべてオクテットの倍数(BUFRと同様にパディングが行われる)。

・マーカーは 0xFF で始まる2オクテット。名前がついている。

・マーカーセグメントはマーカーの種類によって異なる構造を持つ固定長メタデータで、マーカーの種類によってはまったく存在しないこともある。
 セグメントが存在する場合には、先頭2オクテットがセグメント長(セグメント長自身を含むがマーカーは含まない)。

・コードストリームは巨視的にみると次のような構造を持つ:
 メインヘッダ, (タイルヘッダ, データ)+, EOC{FFD9}

・メインヘッダはSOC{FF4F}で始まるマーカー群である。

・タイルヘッダはSOT{FF90}で始まりSOD{FF93}で終わるマーカー群である。
SOTに続くセグメントの第4オクテット(SOTの最初+6オクテット)から32ビットがタイル長で、SOTの最初からデータの終わりまでの長さである。SODに長さを書かないでSOTに書くのは読み飛ばしを効率化しようとしているのだろう。

・マーカーで素人眼にも見るべきものは、COM{FF64} つまりコメントで、セグメント第2-3オクテットが種別(0がバイナリ、1がISO 8859-15文字列)、そのあとが任意長の文字列である。まあ実際
のところ "Creator: JasPer Version 1.900.1" が入っている。

ほんとうはファイルをダンプして確認するといろいろ発見もあるだろうのだが、まだやっていない。

あとはウェーブレットとかよう説明せんので、たぶん読書ノートはこのへんでお仕舞い。

0 件のコメント:

コメントを投稿