- ベストアンサー
DCT変換の圧縮について
画像をDCT変換すると、左上の方に重要な成分が集まりますよね。 なので右下の方をカットして復元しても元画像に大きな影響を与えない。つまり少ない劣化で圧縮できた。 と言うのがDCT変換の圧縮であると認識しています。 (これが間違いだったらすみません。勉強不足でした。) でもこれって復元画像の画素数(ピクセル数?)は変わりませんよね?変わるのは各画素の数値だけ。この場合、元画像に比べて復元画像のファイルサイズは減少するんでしょうか?ファイルサイズは画素数に依存すると思うんですが… (もしかして、圧縮=ファイルサイズの減少、って訳ではない?)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>と言うのがDCT変換の圧縮であると認識しています。 違います。 が、それはひとまず置いておいて、疑問に対して答えておくと、 その方法で保存するのはDCT結果のデータであって、復元した画像データではありません。 たとえば元画像が8×8の64個の数値からなっているとして、DCTをかけると同じく64個の数値になります。これを保存するときはそのうち左上16個だけを保存します。 保存した画像を見る時にはその16個のデータから逆DCTによって画像を復元します。 もちろん復元した状態を保存しようとしたら元と同じデータ量になります。bmp→jpg→bmpと変換したようなものです。 で、これが圧縮かということですが、 この例は圧縮の説明に必ずといっていいほど出てくるのですが、jpgなどの実際の圧縮方式とは全く別物です。似ているところはDCTを使っているところだけ。これはあくまでDCTの概念の説明だと考えてください。 例えば上の例で挙げた「64個のDCTデータから左上16個を保存(の後逆DCTをかける)」というのは、「画像を1/2に縮小(の後2倍に拡大)」と同じことです。これを圧縮とは普通呼びません。
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
DCT で圧縮しようとすると, 普通は画像を「ブロック」単位に分割して各ブロックに対して DCT を使う, ということになりますね. で単純な計算をします. 今どきはブロックの大きさが 8×8 です. このブロックに対して DCT を適用すると (やはり) 64個の数値になりますが, そのうち 32個だけ使うことにするとしましょう. ファイルサイズはどうなりますか?
お礼
回答ありがとうございました。
補足
32個のDCT係数を使って逆変換したとしても、復元された画像は8×8になりませんか? 元画像に比べて、各画素の数値は変化しても個数は変わらないような…。 ということはファイルサイズも変わらないのでは?
お礼
丁寧な説明ありがとうございました。