JPEG 2000
MQ-coderからの出力バイトストリームは、プリシンクトを単位とした「パケット」として整列される。各パケットには、パケットヘッダとして以下の情報が付加される。
emptyパケットフラグ(1bit)
レイヤ番号 l {\displaystyle l} におけるコードブロックの包含情報
ゼロビットプレーン数
符号化パス数
バイトストリームの長さ
各パケットヘッダの先頭1bitは、そのパケットのデータが空である場合には0、それ以外には1となるフラグである。
2. 3.については、タグツリーと呼ばれるデータ構造によって符号化される。
生成されたパケットヘッダは、各パケットの先頭あるいは、メインヘッダ内、あるいはタイルパートヘッダ内のいずれか一つの場所に格納される。
入力画像はタイルと呼ばれる任意サイズの矩形領域に分割可能である。タイル分割は、エンコーダで利用できるメモリに制限がある場合などに有用である。各タイルは完全に独立して符号化されるため、分割数やビットレートによってJPEGで見られるようなブロックノイズが現れる場合もある。タイルの符号化結果であるバイトストリームは、上述のようなエンコーダの制約に応じて複数の部分集合(タイルパート)に分割することも可能である。
各コードブロックは、ビットプレーンに分割される。各ビットプレーンは、最上位ビットに位置するプレーンから順に最下位ビットプレーン至るまで処理される。各ビットプレーン内のDWT係数ビットは、周辺係数ビットの状態に応じて、最大3つの符号化パスに分割される。各符号化パスは、Significance Propagation(SP), Magnitude Refinement(MR), Cleanup(CU)と呼ばれる。各係数ビットは、必ずこれらの符号化パスのいずれかに一度だけ属する。
各ビットプレーンのスキャンパターンを下図に示す。スキャンの際には 1 × 4 {\displaystyle 1\times 4} 係数ビットからなるstripeという単位が存在し、各stripe内は上から下へと順にスキャンされる。
最上位ビットプレーンをスキャンする際には、上位のビットプレーンに関する情報が得られないため、必ずCleanupパスとして処理される。