ネットでJPEGの画像サイズ変換プログラムを探したのですが、JAVAではあるんですが、
CやC++では見つけられなかったので「JPEG 概念からC++での実装まで」という本を
買いました。
冬休み中に読もうと思っていたのですが、なかなか手が伸びず今頃始めました。
勉強内容の記録を書いときます。
JPEGの処理方式には下記4つがあります。
・基本DCT方式
・拡張DCT方式
・可逆方式
・ハイアラーキカル方式
このうち基本DCT方式が多く用いられているようです。
※ 基本DCT方式における圧縮原理
RGBやYCbCrなどの画像各成分について、画素レベルをそのまま符号化するのでなく、
8X8画素の小さな周波数成分に変換し量子化を行いそれから符号化を行っています。
周波数成分への符号化には、フーリエ変換の一種であるDCTを用いています。
また、符号化にはランレングス符号とハフマン符号を組み合わせています。
参考サイト:
http://www.geocities.co.jp/AnimalPark-Shiro/1620/ft_index.html (フーリエ変換について)
http://www2.starcat.ne.jp/~fussy/algo/algo8-1.htm (ランレングス符号)
http://www2.starcat.ne.jp/~fussy/algo/algo8-3.htm (ハフマン符号)
ここまで勉強して量子化だとか、コサインだとか文系バリバリの私にはかなりきつい内容です。
かなり時間がかかりそうなので、ここからは時間をかけて読み進める予定です。
あしからず・・・・。
CやC++では見つけられなかったので「JPEG 概念からC++での実装まで」という本を
買いました。
冬休み中に読もうと思っていたのですが、なかなか手が伸びず今頃始めました。
勉強内容の記録を書いときます。
JPEGの処理方式には下記4つがあります。
・基本DCT方式
・拡張DCT方式
・可逆方式
・ハイアラーキカル方式
このうち基本DCT方式が多く用いられているようです。
※ 基本DCT方式における圧縮原理
RGBやYCbCrなどの画像各成分について、画素レベルをそのまま符号化するのでなく、
8X8画素の小さな周波数成分に変換し量子化を行いそれから符号化を行っています。
周波数成分への符号化には、フーリエ変換の一種であるDCTを用いています。
また、符号化にはランレングス符号とハフマン符号を組み合わせています。
参考サイト:
http://www.geocities.co.jp/AnimalPark-Shiro/1620/ft_index.html (フーリエ変換について)
http://www2.starcat.ne.jp/~fussy/algo/algo8-1.htm (ランレングス符号)
http://www2.starcat.ne.jp/~fussy/algo/algo8-3.htm (ハフマン符号)
ここまで勉強して量子化だとか、コサインだとか文系バリバリの私にはかなりきつい内容です。
かなり時間がかかりそうなので、ここからは時間をかけて読み進める予定です。
あしからず・・・・。
- JPEG―概念からC++での実装まで/橋本 晋之介
- ¥2,940
- Amazon.co.jp
- わかりやすいJPEG/MPEG2の技術/小野 定康
- ¥2,940
- Amazon.co.jp