重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

https://ja.wikipedia.org/wiki/%E9%9B%A2%E6%95%A3 …
http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1 …
https://oshiete.goo.ne.jp/qa/4739034.html




この辺りのページが書かれてあるのですが
コサイン変換とは
JPEGなどの圧縮技術に用いられるもので
計算コストを下げるために
フーリエ変換の虚数項を取り除いたものです。
サイン変換を用いない理由はサイン波だとDC成分を扱うことができないためです。


ここで疑問なのですが、
コサイン変換を用いるためには、
入力信号が偶関数である必要があります。
偶関数とはy軸対称である関数のことですが
実際にはJPEG圧縮などでは対称ではない画像であっても
用いることができます。
それではこの偶関数とは一体何に対しての対称のことを指しているのでしょうか?
そもそもフーリエ変換から虚数項を取り除いたら
元の画像が再現できなくなると思うのですが
なぜ虚数項なしで再現できるのでしょうか?




それと高速コサイン変換では
8×8画素ごとに分割してそれぞれに対してコサイン変換が行われるそうですが
8の倍数ではない画像の場合にはどうしているのでしょうか?
端数の部分だけは通常の離散コサイン変換で変換を行っているのでしょうか?

A 回答 (1件)

> 偶関数


対称ではないデータを反転させて2つくっつることで対称にします。
1番めのリンク先にあるように、「DCTはy軸で折り返して偶関数化してDFTすることと等価」です。
2番めのリンク先にあるように、「鏡像を用いて任意の信号から周期が倍の偶関数を生成」しています。
> 虚数項を取り除いたら
虚数項は取り除くのでなく、もともと無いのです。
1番めのリンク先にあるように、「DFTも偶関数数列に対しては実係数を返す」のです。
2番めのリンク先にあるように、「偶関数化のため、離散フーリエ変換の係数は全て実数となり」ます。
なぜ偶関数をフーリエ変換すると虚数項が出ないのかは知りません。式を追えば分かるのでしょうが。
> 8の倍数ではない画像の場合
JPEGについての質問ですね。
端に余計な画素を追加して8×8にして処理します。

なお「計算コストを下げるため」というのは違います。気にするほど計算コストが下がっているとは思いません。
DCTでは低周波側に大きな値が偏るために圧縮効率が良いことが選ばれた理由でしょう。
2番めのリンク先にあるようにフーリエ変換は「各周期の境界部分で生じる段差成分が、高い周波数成分を発生させる原因となり」ます。
(では適切な窓関数をかければ? MDCTのようなModifiedフーリエ変換ができるかもしれませんね)
    • good
    • 0
この回答へのお礼

ありがとうございます。

ご回答は全て理解できました。


もう一つ質問がありますので
良ければご回答いただけますでしょうか?

お礼日時:2015/10/12 14:24

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