MP3の圧縮の仕組みを教えてください。離散コサ

Writer: admin Type: clarksre Date: 2019-01-14 00:00
MP3の圧縮の仕組みを教えてください。離散コサイン変換という仕組みらしいのですが、ウィキペディアをみてもよくわかりませんでした。ようするに、たくさんのコサインの重ね合わせでもとの音が圧縮されるということらしいですが、自動的にその多くのコサイン関数を生み出す仕組みを高校生にもわかるように教えてください。共感した0###ぶっちゃけ高校生で理解すんのは無理だから厳密な話はしないよ。概要を掴んでもらうために適当な表現が混じるのは承知の上で。というか三角関数(y=sin(x)やy=cos(3x)のグラフが書けるくらい)の知識はないと全く理解できないから、その場合は理解する事を諦めてください。以下解説mp3ってことは音である。音って事は波である。波って事はグラフ上に波の形が書ける。形が書けるって事は、どんな書けるかは分からないけど、とにかく何かしらの関数の形で表せるって事である。実は関数の性質として「全ての関数はsin,cosの組み合わせで書ける」って性質がある。たとえば、y=x^2もsinとcosで表せる。試しに書いてみると、y=x^2=π^2/3 + 4(∑[k=1から∞]1/k^2*(-1)^k*cos(kx))とかける。y=x^2ですらこれだけややこしくなるわけだけど...。まあこれだとさっぱり意味分からんだろうから、下記にk=5までの代入結果を書く。(3.14)^2/3+4(-cos(x)+cos(2x)/4-cos(3x)/9+cos(4x)/16-cos(5x)/25)これをコピペしてPCでgoogleにそのまま入れてみるといい。googleにはグラフ描画機能があるから、上記の式を入れるとグラフが出てくる。真ん中にy=x^2とそっくりの形が出てくるはず。こんな感じでありとあらゆるグラフ上の形はsinとcosで表せる。この変換作業を「フーリエ変換」と呼ぶ。ここが大学数学でないと理解できない部分。フーリエ変換を使うとデータの圧縮が出来る。なぜか。音楽の例でみてみよう。もし圧縮をしないと「0.1秒目はドの音、0.2秒目はレの音...」のように、全ての時間の音データを細かく保存しておかなきゃいけない。これだとデータ量がやばくなりそうなことは何となく予想がつくだろう。しかしこの音の波形を表示してフーリエ変換にかけると「cos(x)の係数は"a",cos(2x)の係数は"b"...」という形で覚えることが出来るようになる。これだと係数覚えるだけでいい。だからデータ量が滅茶苦茶減る。あとはこの係数の式から元の音を逆算で求めてあげることで、元の音を再現できるってわけ。離散コサイン変換ってのはフーリエ変換の亜種。フーリエ変換って確かにいいんだけど、係数を求めるまでの計算量が莫大なので出来れば使いたくないのです。なので特殊な場合にだけ使える、「計算少ないフーリエ変換」がいくつか発明された。離散コサイン変換はそのうちの1つ。その名のとおり、cosだけでデータが表せることが分かっているときにだけ使える技法。そしてmp3は、そもそもの音声データを離散コサイン変換を使えるような形に変形しているのである。ナイス0
###丁寧なご回答ありがとうございます。実は私が知りたい核心は、係数を自動的に見つけ出す仕組みの部分なのですが、そこは高校生レベルでは難しすぎますか?
###ありがとうございます。

 

TAG