0

JPEG 圧縮プロセスを理解しようとしており、いくつかのことを確認するために次の手順を実行しました。

入力画像 img1.jpg を取得し、IrfanView を使用して圧縮します。たとえば、quality=50 (img1_compress.jpg) とします。

次に、入力画像 img1.jpg (X、Y=16,16 でサイズ 8x8 の block.jpg) から小さなブロックをトリミングし、同じ値の品質パラメーター (50) を使用して圧縮します。これを block_compress.jpg としましょう。

このブロックのピクセル値を完全に圧縮された画像のピクセル値と比較すると、一致しません。

明確にするために、block_compress.jpg の位置 0,0 のピクセル値は、img1_compress.jpg の位置 16,16 のピクセル値と一致する必要があります。

ピクセル値が一致しない理由がわかりません。何か案は?

4

3 に答える 3

2

JPEG コーデックでこの実験を行ったところ、ピクセル値が一致しました。Irfanview は、JPEG 画像を圧縮するときに、何らかのノイズ フィルターまたはその他の変更を適用している可能性があります。コーデックのソース コードを見ないと、何をしているのかわかりません。あなたの実験は有効ですが、他の人のコードを使ってあなたの理論をテストすることで、彼らのコードの中で実際に何が起こっているのかを知ることはできません.

于 2013-03-22T18:26:26.007 に答える
1

JPEG は非可逆圧縮アルゴリズムです。異なるツールで同じ圧縮設定を使用して 1 つの画像を圧縮すると、異なる結果が生じる可能性があります。ピクセルからピクセルへの結果が必要な場合は、ロスレス アルゴリズムのいずれかを使用する必要があります。つまり、PNGを使用できます

于 2013-03-22T17:09:16.533 に答える
-3

「各 8x8 ブロックの DC コンポーネントは、前のブロックから予測されます。」: オリ・チャールズワース

于 2013-03-22T17:56:10.543 に答える