ブログ内リンク:高音質で音楽を聴くため可逆圧縮音源について学ぼう
以前、可逆圧縮フォーマットである「FLAC,APE,TAK,TTA」の4つについて紹介しました。
今回は、その補足・コラム的な内容となります。
実際にデータをカットすることで大幅に容量を減らすことができる不可逆圧縮フォーマット。この音声波形を見て、どのようにデータがカットされていくのか、その一部をMP3とAACを例にして見ていきたいと思います。音楽の圧縮とは具体的に何をしているのか、その一部を目で見れるようにしてみます。
カットの性質が理解できれば、どの程度の圧縮で音楽を保存すればいいのか、また色々調べるためのキッカケにもなるかと思います。
今回の実験で使用するMP3はすべて「LAME バージョン 3.98」です。AACはiTuneを使用しました。
※フォーマットの違いとか音質にどう影響しているのかとかMP3の性能とをかを評価しているわけではないので注意。
あくまで「音楽の圧縮とは何をしているか」をわかりやすい部分で視覚化しただけです。
無圧縮音源(WAV)
まずはCDからのデータをそのまま圧縮せずに保存する無圧縮フォーマット「WAV」について解析してみましょう。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
WAV(WAVE) | PCM | 44.10kHz | 1411.20kb/s | 17,868,188Bytes |
▲WAVのスペクトル(上:左、下:右)
▲WAVの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
上がスペクトル表示したもの、下が曲全体を対象にした周波数解析結果です。
低音から人間が聴き取ることができない高音(20kHz~)の音も記録されています。なので非常に高音質ですが、その代わりデータ容量は大きくなってしまいます。
MP3 320kbps
ではここからメイン。まずは「MP3」形式のビットレート「320kbps」のファイルを解析してみます。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
MP3 | mp3 | 44.10kHz | 320.00kb/s | 4,057,276Bytes |
▲MP3 320kbpsのスペクトル(上:左、下:右)
▲MP3 320kbpsの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
スペクトル表示では違いが分かりませんが、周波数解析をしてみると一目瞭然ですね。
20kHz以上の音がばっさりカットされています。人間が聴き取れないような高音部分はさほど音質に影響しないとしてカットし、データ容量を減らします。実際、WAVと比較しても音質の違いなんてよほどよい環境を持っていない限り分かりません。しかし、データ容量は大幅に減らすことができています。
MP3 190kbps
次は少しビットレートを下げてみます。「MP3」形式のビットレート「190kbps」のファイルを解析してみます。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
MP3 | mp3 | 44.10kHz | 195.05kb/s | 2,470,790Bytes |
▲MP3 190kbpsのスペクトル(上:左、下:右)
▲MP3 190kbpsの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
スペクトル表示では上の部分でカットされた部分がわかるようになりました。それ以外では特段大きな変化はないようです。音楽のメロディ自体に変化があるわけではないということですね。ただ、周波数解析をすると320kbpsのときよりも低音部分(19kHz~)から音がカットされています。データ容量もさらに少なくなりました。
ビットレートを下げていくとLAMEのMP3はどんどん高音部分をカットしていくことがわかりました。ただ、これにより明確な音質の違いか聴き取れるのは190kbpsより下からでしょう。190kbps程度ならよい再生環境を持っていない限り正直違いなど明確には分かりません。
AAC 320kbps
次はAACを見てみます。これはiTunes10に付属しているエンコーダーで変換しました。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
AAC(m4a) | aac | 44.10kHz | 320.00kb/s | 4,224,031Bytes |
▲AAC 320kbpsのスペクトル(上:左、下:右)
▲AAC 320kbpsの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
AACはMP3より性能を上げるために開発された形式ですが、これを見ればその一端が分かるでしょう。AACの320kbpsは不可逆圧縮にも関わらず、高音部分も残しています。しかし、ファイル容量はMP3と同程度に圧縮されています。
AACはMP3と比べて、人間が聴き取りにくい音を探し出す能力が高いため、高音部分を大幅にカットしなくともその他の部分でデータ容量を減らすことができるのです。特に低ビットレート(190kbps以下)に強く、ビットレートの値を下げてもMP3と比べて音質の劣化が少ないと言われています。
※本当に性能が上がっているのかどうかはこれだけでは結論づけられないので、気になる方は他の専門的なサイトを御覧ください。
AAC 192kbps
次はAAC、ビットレート「192kbps」を見てみます。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
AAC(m4a) | aac | 44.10kHz | 192.00kb/s | 2,509,095Bytes |
▲AAC 192kbpsの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
AACもビットレートを下げると高音部分をカットします。しかし、カットの仕方はMP3と少し異なるようです。
容量は同程度ほど圧縮されています。
WAV→MP3→WAVとやったとき、最初のWAVと最後のWAVは違う
ここまで見てくれた方はもう分かるかと思いますが、WAV→MP3→WAVとやったとき、最初のWAVと最後のWAVは異なります。音がカットされたMP3に音を復活させるなんてことはできません。
ただ、よくこの質問をネット上で見かけるので実際に確認してみましょう。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
WAV(WAVE) | PCM | 44.10kHz | 1411.20kb/s | 17,868,188Bytes |
▲WAVの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
まずはWAVファイルを用意します。(因みに先ほど解析したものです)
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
MP3 | mp3 | 44.10kHz | 195.05kb/s | 2,470,790Bytes |
▲MP3の周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
これを190kbpsのMP3ファイルに圧縮します。以上のように高音部分はカットされました。
形式 | コーデック | サンプルレート | ビットレート | ファイル容量 |
---|---|---|---|---|
WAV(WAVE) | PCM | 44.10kHz | 1411.20kb/s | 17,869,340Bytes |
▲WAVの周波数解析結果、クリックで拡大(赤:左、青:右。縦軸:デシベル、横軸:周波数)
先ほど変換したMP3ファイルを無理矢理WAVに変換しました。
どうでしょうか、ビットレートもファイル容量も大きくなったのに高音部分はカットされたままですね。このように一度不可逆圧縮された音を無圧縮フォーマットに変換しても全く意味が無いどころか容量の無駄遣いということになります。
ただ、音声編集などをしている場合は、一度圧縮された音源でも無圧縮フォーマットに戻す必要性がでてきます。何度も圧縮をかけるとどんどん音が劣化していくからです。その場合は一度WAVに戻すという作業も必要になります。
まとめ(この記事の解釈と注意点)
どうだったでしょうか。
普段使っているMP3やAACなどの不可逆圧縮フォーマットがどのように音をカットしていくかお分かりいただけたでしょうか。今回の周波数解析はその特徴の一部を見ただけに過ぎませんが、今後音楽をどのように取り込めばいいのか、その参考程度にはなるでしょう。
では最後に、この記事の解釈について少し注意を。
あくまでこの記事は「不可逆圧縮フォーマットがどのように音をカットしているのか」を見るだけであって「音質や性能の比較」をしている訳ではありません。「音をカットしているとはいうけど実際には何をしているの?」というのを一部視覚化しただけです。
MP3やAACなどは非常によくできたフォーマットで、正直190kbpsまでビットレートの値を下げることがなければどちらも違いなんてわかりません。無圧縮とMP3 320kbpsなら高いヘッドフォンを使っても普通の人は違いがわからないほどです。
ビットレートを下げていってもでもスペクトルには大きな違いは無かったですよね。音楽が根底から変化しているわけではないということです。
「データ容量を小さくしたいが音もカットされたくない」ならMP3・AACで最高音質として取り込めばいいですし、「多少の劣化は問題ない、できるだけ圧縮された方がいい」なら190kbps程度で圧縮すればよいでしょう。(190kbpsくらいから音質の違いが聴き取れるため)
「音の劣化なんて許さない」なら以前紹介した可逆圧縮フォーマットで取り込めばOKです。
今回の記事は「圧縮の課程を見ることでどこまで圧縮すればいいのか、その妥協点を見つけるための参考データ」としてお読み頂ければと思います。音の細かな違いとかフォーマットごとのちゃんとした評価はこの記事では分かりようがないので別の専門的なことを書いているサイトをお読みください。
追記
この記事では「周波数解析」を中心にしていますが、別記事にて「MP3は低音部分もカットするのか」を検証するべく「波形の位相反転」を利用した解析をしています。よろしければこちらもどうぞ。
コメント
コメント欄を開く
コメント一覧 (4件)
記事内でスペクトル解析に使ったソフトを教えてください。自分も使ってみたいのです。
「Adobe Audition CS 5.5」ですよ。ただ、一般個人向けだと少々お高めです。(今はCS6が最新です)
私は学生の立場ですのでアカデミック版として安く購入できましたが、それ以外だとAdobeの製品は少々高いですね。
安く買える今がチャンス&Dreamweaverなどの新調ということで奮発して買ってみました。
(それまではいわゆる「お下がり」でしたので・・・)
フリーとなりますと、有名どころではありますが昔は「Audacity」や「SoundEngine Free」などを使ってました。
波形分析に特化したものですと、「Sonic Visualiser 」がおもしろかったです。
この記事のような解析をしたいならば「FFT解析ソフト 音声」などで検索するといくつか見つかると思います。
馴染みやすいソフトウェアが見つかるといいですね。
Adobe flash c6 を使って、 wavを書き出したものを、mp3に変換してから モバイルでアニメと一緒に再生したときに
タイムラインにずれが発生して アニメと音声が合わないことがあります。
wav から mp3にエンコードしたときに 波形だけで見比べると ずれが出ているようにも思います。
なぜ?といろいろ調べていて、こちらを発見しました。
いろいろな確認をされていますが、WAV→mp3に変換したときのタイムラインのずれについて
何かご存知なことがあればご意見をいただきたいです。
どうぞよろしくお願いします。
変な質問してすみません。
中々突っ込んだコメントですね・・・
正直私もそこまで詳しくないので憶測になってしまうのですが。
確かにWAVファイルをMP3ファイルへ変換するとデュレーションが少し異なりますね。
通常、無圧縮と呼ばれているWAVコンテナにはPCM方式でサンプリングし
量子化したデータが使用されています。これ以上の圧縮はしないので高音質と呼ばれているわけですね。
MP3は、ここからさらに聴覚心理に基づいたビットの再割り当てをして圧縮させます。この圧縮は非可逆圧縮で全体のビット列を調整していくので、ここでデュレーションも変化してしまうのでないかと思っています。無音の部分も圧縮処理されますからね。
これ以上はMP3のアルゴリズムを隅から隅まで勉強したわけではないので私も分からないです。申し訳ないです。
音ズレですが、MP3への変換時にサンプルレートを変えたりすると問題が発生しやすいようです。また、アニメーションの部分が可変フレームだったりすると音声と合わせられなくなることもあるようです。
ここらはコメント欄で書けるものではないので、またお調べになってください。
参考になったかどうかはちょっと自信ないですが、お返事となります。