512x512 の画像があり、それを再圧縮しようとしました。画像を jpeg ファイルに再圧縮する手順は次のとおりです。
1) convert rgb to YCrCb
2) perform down sampling on Cr and Cb
2) convert YCrCb to DCT and Quantized according to chosen Quality
3) perform Huffman Encoding on Quantized DCT
しかし、ハフマン エンコーディングの前に、DCT 係数の数を数えたところ、393216 でした。これを 64 で割ると、DCT ブロック (8x8) の数がわかり、6144 になります。
次に、ピクセル ドメインの 8x8 ブロックの数を数えてみました。512/8=64 とすると、水平方向に 64 ブロック、垂直方向に 64 ブロックになります。ピクセル数が 512x512 = 262144 であるのに対し、64 x 64 = 4096 は DCT ブロックの数と等しくありません
私の質問は、ハフマン エンコーディングが魔法のように 393216 係数を 262144 ピクセルに変換し、各ピクセル値を取得し、圧縮画像 (jpeg) の寸法 (512x512) を計算する方法です。
よろしくお願いします。:D