削除された内容 追加された内容
→‎技術の詳細: 「周波数変換」という語を使わないようにした。
18行目:
 
== 技術の詳細 ==
JPEG 2000 も JPEG と同様、ある画素の状態(明るさや色)は周囲の状態との類似性が高いという画像の性質を利用して圧縮するため、一度画像を空間領域から[[周波数領域]](波の[[状態]])に変換する。この周波数領域へ変換する手法としてJPEGでは[[離散コサイン変換]](DCT: Discrete Cosine Transform)を用いたが、JPEG 2000では[[離散ウェーブレット変換]] (DWT: Discrete Wavelet Transform) を用いる。ウェーブレットとはさざなみのことである。
 
ウェーブレット変換は、従来の変換で使われていた全体に一様な定常波と異なり、波が部分的に存在する基底を使って変換する。さらに波のセットとしても高周波成分に比較的多くの波を割り当てることによって、ゆったりとした変化だけでなく急激な変化にも柔軟に対応が出来る。そのためJPEGではエッジなどの急峻な変化の周囲で発生していたもやもやしたノイズ(モスキートノイズ)を防ぐことができる。DWTでは、完全に周波数領域に変換するのではなく、空間領域の位置関係もある程度保ちながら変換を行うため、色や明るさが位置によって徐々に変化するようなグラデーションにも強い。また、JPEGでは8×8固定であった周波数領域への変換を行う単位(この単位をJPEGではブロック、JPEG 2000ではタイルと呼ぶ)のサイズをJPEG 2000では大きくできる(例えば256×256)ため、JPEGにおいてブロックの境界で生じていた段差([[ブロックノイズ]])が目立たない。特にブロックサイズ(タイルサイズ)を画面全体とした場合にはブロックノイズが全く生じない。これらの技術により、単に機械的な画質の指標である PSNR (Peak Signal to Noise Ratio) の数値が大きく向上しているだけでなく、その数値以上に見た目の画質(主観評価画質)が改善している。また、DCTは有限の演算精度においては非可逆変換であるのに対し、DWTは[[リフティング構成]]をとることによって、有限精度においても可逆な変換を行うことが可能である。JPEG 2000ではリフティング構成されたDWTを採用しているため、非可逆符号化と可逆符号化を同一の符号化方式で実現可能となっている。
 
周波数領域に変換後のデータは JPEG と同様、[[量子化]]してから[[エントロピー符号化]]を行う。このエントロピー符号化の方式は、 EBCOT (Embedded Block Coding with Optimized Truncation) と呼ばれる。EBCOTでは、DWT変換係数上に定義された矩形領域であるコードブロック単位で符号化が行われる。各コードブロックは[[ビットプレーン]]に分解され、係数ビットモデリング処理によって、高々3つの符号化パス(サブビットプレーン)に分類される。それぞれのサブビットプレーンに属する係数ビットは、2値画像圧縮方式のJBIG2 (Joint Bilevel Image Group) でも利用されているMQ-Coderと呼ばれる[[算術符号]]化器を用いて圧縮される。MQ-coderはマルチコンテクストの算術符号化器であり、注目係数の周囲状態に合わせて効率良くデータ圧縮が可能である。JPEGで用いた[[ハフマン符号]]に比べ、算術符号は圧縮効率が高い一方、その実行には一般に乗算器を必要とするため演算量が増加することが知られている。MQ-coderではこの乗算を加減算で近似することによって、この問題を回避している。