JPEG 圧縮では、量子化中および DCT 変換中に損失が発生します。
JPEG 画像圧縮での DCT 変換後の量子化後に多くの 0 が得られるのはなぜですか。
JPEG 圧縮では、量子化中および DCT 変換中に損失が発生します。
JPEG 画像圧縮での DCT 変換後の量子化後に多くの 0 が得られるのはなぜですか。
私はあなたの質問を誤解したかもしれません。「多くの0」を取得することは、量子化の要点です。ゼロは、ハフマンコード内のすべてのシンボルの前に、次の係数までのゼロの数を付けることによって暗黙的にコード化されます。
JPEG圧縮での量子化は、量子化テーブルの対応する値を使用してすべての係数で整数除算を実行することによって実現されます。係数が量子化テーブルの値よりも小さい場合、係数はゼロになります。
デコーダーでは、係数が量子化テーブルの値で乗算されるため、係数がゼロでない限り、元の値(多かれ少なかれ)に復元されます。
DCT変換後、コンプレッサーは各DCT出力値を「量子化係数」で除算し、結果を整数に丸めます。量子化係数が大きいほど、より多くのデータが失われます。四捨五入のため、多くの0が表示される場合があります。結果の係数には、かなりの量の冗長データが含まれています。次のハフマン圧縮は、冗長性をロスレスで削除し、JPEGデータを小さくします。
@Dragon66が言ったことは正しいです.DCTマトリックスは数量化マトリックスで除算され、整数に切り上げられ、係数が十分に高い場合は0になります。
これが行われる理由は、人間の目は空間周波数が低いほどノイズに敏感ですが、空間周波数が高いほどノイズのほとんどを無視するからです。
ピクセル マトリックスを DCT で処理し、結果のマトリックスを取得すると、左上隅の係数がピクセル ブロックの平均輝度を表します。右に移動すると、係数は水平空間周波数の増加を表します。下に移動すると、係数は垂直空間周波数の増加を表します。
したがって、定量化マトリックスには、右下隅に移動するより高いコンポーネントがあります。これらの位置で係数が 0 になったときに失われる情報は、画像自体にとってはそれほど重要ではありません。
詳細はこちら: http://www.media-matters.net/docs/resources/Digital%20Files/MPEG/MPEG%20Encoding%20Basics.pdf