dポイントプレゼントキャンペーン実施中!

https://oshiete.goo.ne.jp/qa/9085083.html

このページでコサイン変換に関してご回答いただきました。


あと一つ疑問点なのですが、
JPEG圧縮では8×8のデータに分割して変換・圧縮が行われるのはなぜなのでしょうか?

疑問点としては
・高速DCTのアルゴリズム(chenのものなど)は8×8のものを計算することはできないのでしょうか?
・もし、これができないとして、FFTを使った方法は用いないのはなぜなのでしょうか?


wikiのページには
FFTよりも高速DCTの方が、多くの場合高速だが
高度に最適化されたFFTプログラムが広く出回っており、
実際にはそれほど変わりないというように書かれてあります。

JPEGに8×8のアルゴリズムが用いられるのは

>プログラムコードが短くて済むことも重要だからである。
と書かれてあります。

しかし、ここまでコンピュータが進化した現代において
コードを短くする利点はないように思うのですがどうなのでしょうか?

それよりも8×8に分割した場合
ブロックノイズが出るというデメリットがあるため、
画像全体で高速DCTを行った方がメリットが大きいと思うのですが
どういう理由で8×8に分割したアルゴリズムが用いられているのでしょうか?

A 回答 (3件)

当時のPC性能や画像ファイルのサイズから考えると8x8でまぁOKだったんですよ…


当時の論文は18年ほど前に一度見た限りなので覚えてませんが、たぶん画像サイズは256x256程度です

画像全体でDCTすると、画像内は乱雑すぎるのでDCTでのノイズがすごいことになると思います
8x8ならその画素内は近傍なため、ある程度似通っておりノイズも抑えられます(たぶん)
    • good
    • 0

> JPEG圧縮では8×8のデータに分割して変換・圧縮が行われるのはなぜなのでしょうか?


これは分割が8×8であることではなく、そもそも分割しなければよいのではないかという疑問でよろしいでしょうか。
質問を通して読んだ印象でそちらだと判断しました。

> 高速DCTのアルゴリズム(chenのものなど)は8×8のものを計算することはできないのでしょうか?
知りませんが、FFTがそうであるように2のべき乗なら何でもよいのではないでしょうか。

> JPEGに8×8のアルゴリズムが用いられるのは
> >プログラムコードが短くて済むことも重要だからである。
違います。汎用のFFTアルゴリズムでなく専用のDCTを使う理由です。

> コードを短くする利点はない
別の方が答えられていますので飛ばします。

> 画像全体で高速DCTを行った方がメリットが大きいと思うのですが
2点デメリットが思い付きます。
DCT(やFFT)は対象サイズが大きいほど処理が重くなるので、当時のCPUパワーを考えたらできるだけ対象を小さくしたかったはず。
対象サイズが2のべき乗でないとFFTのような処理が使えず非常に遅くなるのでサイズの分からない画像全体という選択肢は無いだろう。
    • good
    • 0

○JPEGの規格が決まったのが、20年近く前だということを考慮するべきでしょう。


○PCだけがJPEGを使っているわけではありません。
 小型のデジカメ等では、CPUもメモリもそこまで高性能ではありません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!