画像圧縮の離散コサイン変換,量子化について
画像圧縮について勉強していてあやふやなところがあり教えて頂きたいです.
変換前
|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
お礼
ありがとうございます。 参考になりました。 また機会があったらよろしくお願いします。