画像圧縮の離散コサイン変換,量子化について
画像圧縮について勉強していてあやふやなところがあり教えて頂きたいです.
変換前
|126, 138, 135, 118, 118, 126, 126, 130|
|150, 168, 161, 122, 105, 109, 100, 118|
|150, 150, 126, 150, 142, 126, 126, 117|
|150, 161, 168, 130, 134, 150, 138, 130|
|130, 118, 134, 142, 157, 142, 117, 126|
|115, 117, 108, 117, 101, 99, 117, 126|
|122, 130, 130, 138, 117, 108, 108, 138|
|142, 118, 134, 117, 109, 91, 126, 109|
変換後
|1029, 52, 10, -21, -1, -3, 2, 1|
| 39, 21, 0, 6, -22, -17, 4, -7|
| -40, 12, 24, -19, -2, 7, -4, 5|
| -32, -34, -1, -7, 5, -8, 5, -7|
| 22, -14, -10, 16, -12, 4, 12, 18|
| 19, -17, 1, -3, -6, -3, -2, -8|
| -24, -18, 3, 15, 9, 15, -20, 1|
| 9, -16, -30, 14, 29, -2, -5, -5|
URLから参考にしたものですが,変換すると右下から左上へと値が高くなっています.
これは圧縮することで,左上の情報量が大きくなる方法ということはわかります.
ですが,量子化する方法がよくわかりません.
この値を使ってどうすればいいのでしょうか.
変換前は濃度あたりだと思うんですが,変換後はマイナスの値がついててさっぱりです.
検索していろいろでてきたのですが,
難しくてわからないところもあったので
一言“量子化する”とかじゃなくて
“離散コサイン変換後の量子化方法はこうするものだ”という具体的なものができればききたいです.
最終的に画像圧縮プログラムを組もうと思っています.
圧縮までに必要な仮定を教えてください.
あと,プログラムはVisualC++OpenCVで組もうと思うのですが,勉強ですので関数を使うつもりはありません.
おまけですが,JPEGで離散コサイン変換するという方法があるみたいですが,IPLimageを使用するのは不可能ですか?
質問する場所がわからなかったのでここでさせて頂いたのですが,間違っていたら移動させますので教えて頂けるとありがたいです.
よろしくお願いします.
参考URL:http://fussy.web.fc2.com/algo/algo8-6.htm
お礼
elttacさん、ご回答ありがとうございます!!その前に返事遅くなってしまい大変申し訳ありません!! 普段当たり前のように見ている画像もDCTのおかげといっても過言ではないのですね。。 大変参考になりました!!本当にありがとうございました!!