藤本健のDigital Audio Laboratory

第931回

「Opus」と「AAC」どっちが高音質? 周波数分析でコーデック比較した

前回は「Opus」という音声圧縮フォーマットについて、いろいろと検証してみた。すると、MP3よりも遥かに高性能であること、8kbps、16kbpsといった低ビットレートにおいても音楽が破綻せず十分聴くことができるレベルであること、そして128kbps、192kbps、さらには320kbpsにおいてもロスが少なく高音質なものであることが分かった。

では、現在音楽配信で広く使われている「AAC」とOpusを比較したらどのような違いが現れるだろう? もし、Opusのほうが高性能であれば、ライセンスフリーという利点もあり、Opusへの移行が加速していくようにも思える。というわけで、今回はそのOpusとAACの性能をじっくり比較していこう。

2種類の比較方法を使って、OpusとAACを対決させた

前回の記事が公開されたあと、TwitterやFacebookなどのSNSを介し、さまざまな声や情報が寄せられた。「Opusなんてまったく知らなった」という人が多かった一方、Opusの利用事例などもいくつか連絡をいただいた。YouTubeの音声コーデックの一つとして搭載されているだけでなく、ほかの音楽ストリーミングサービスなどでも採用されているようなのだ。筆者自身、しっかり検証ができていないので、具体な名前は伏せるが、大手でも採用しているケースがあるという。

一方、筆者の身近なソフトとしては、PreSonusのDAW「Studio One」でもOpusのインポート・エクスポートに対応しているという情報も寄せられた。ホントか? と思い、「Studio One 5 Professional」を起動し、Opusファイルをトラックへドラッグしたら、そのまま波形が表示され、さらにエクスポート機能を確認したら、普通にOpusファイルという項目が用意されていた。

「Studio One 5 Professional」のエクスポート画面

今回はそのOpusとAACを対決させようと思うのだが、方法は前回と同じ2つの測定方法を用いてみる。1つはefu氏開発の周波数分析ソフト「WaveSpectra」を使う方法。WaveSpectraでは、リアルタイムの分析結果が黒で表示される一方、ピーク値が赤で、直前の300サンプル分の平均が青で表示されるので、同じ曲を16秒のところでどうなっているかを比較するという方法だ。

ちなみに、このWaveSpectra。連載では長年使わせてもらったが、実は1~2カ月前にサイトが閉じてしまったようだ。WaveSpectraのほかに、波形生成ソフトである「WaveGen」、ビットbyビットでオーディオファイルの比較を行なう「WaveCompare」など、非常に有益なツールを開発し、さらにフリーで公開していて、ずっと利用させてもらっていた。改めてefu氏に感謝を申し上げたい。これらのツールが入手し難い状況になってしまったものの、まだしばらく活用させていただこうと考えている。

efu氏のホームページ ※現在はサイトが閉じている

WaveSpectraとは異なるもう一つの方法が、昨年編み出したスペクトログラムの差分を見るという方法。

オリジナルと圧縮結果のスペクトログラムを作成し、それをグラフィック的に比較して差分を抜き出せば、そぎ落とされた成分を視覚的に確認できるだろう、というもの。当然、差分が少ない、つまり真っ暗になるほど、オリジナルに近いというわけだ。これにはSteinbergのWaveLab Pro 11を使ってスペクトログラムを作成し、DiffImgというフリーウェアで差分を作り出している。

WaveLab Pro 11を使ってスペクトログラムを作成
DiffImg
差分を可視化

前回は、OpusencというソフトでWAVファイルからOpusファイルを生成し、その後Opusdecというソフトで再度WAVに変換した結果を分析していた。今回のAACでは、どのエンコーダーを使おうかと考えたが、やはりAppleのエンコーダーの評判がいいので、これを使ってエンコード、デコードを行なっている。

本来であれば、最新のMacを使い、最新のmacOS Monterey上でミュージックアプリを使って操作するのがよさそうだが、分析ソフトがWindowsベースなので、WindowsのiTunesをMicrosoft Storeからダウンロードし、これを使って処理を行なった。

WindowsのiTunesをMicrosoft Storeからダウンロード

具体的には、一般環境設定の「読み込み設定」において、AACエンコーダを選ぶとともに、カスタムでビットレートを設定。その後、ファイルメニューから「変換」-「AACバージョンを作成」を選んで変換。AACファイルが生成されたら、これをWAVファイルに変換している。

一般環境設定の「読み込み設定」
AACエンコーダを選ぶ
ビットレートを設定

iTunesのAACエンコーダーでは、64kbpsから320kbpsまで10段階で設定できるので、一般的に使われるケースが多い、64kbps、96kbps、128kbps、192kbps、256kbps、320kbpsの6パターンで変換してみた。

前回Opusは、6kbps、16kbps、32kbps、64kbps、96kbps、128kbps、192kbps、256kbpsの各ビットレートで実験したが、AACにはない低ビットレートは比較対象からは外すと共に、新たに320kbpsのOpusデータを作成、比較することにした。

iTunesは、64kbpsから320kbpsまで10段階のAACが設定できる

Opus vs AAC ~WaveSpectra比較の場合

というわけで、以下に1つ目の実験であるWaveSpectraの比較を掲載する。

オリジナル
64kbpsの場合
Opus 64kbps
AAC 64kbps
96kbpsの場合
Opus 96kbps
AAC 96kbps
128kbpsの場合
Opus 128kbps
AAC 128kbps
192kbpsの場合
Opus 192kbps
AAC 192kbps
256kbpsの場合
Opus 256kbps
AAC 256kbps
320kbpsの場合
Opus 320kbps
AAC 320kbps

上記の結果から、いろいろ面白いことが見えてくる。

64kbpsあたりの低ビットレートにおいては、Opusが圧倒的によく、ビットレートが上がるごとに、だんだんとAACが追い上げてくるが、192kbpsあたりまではOpusが勝っているように見える。ところが256kbpsではOpusの音質向上がにぶり、AACのほうはかなりオリジナルに近い高域までキレイに音が出る形になる。そして320kbpsでは256kbpsとあまり違いが見えないといった具合だ。

Opus vs AAC ~スペクトログラム差分の場合

では、2つ目の実験では、どうなるのか。そのスペクトログラムの差分の結果は以下の通り。

64kbpsの場合
Opus 64kbps
AAC 64kbps
96kbpsの場合
Opus 96kbps
AAC 96kbps
128kbpsの場合
Opus 128kbps
AAC 128kbps
192kbpsの場合
Opus 192kbps
AAC 192kbps
256kbpsの場合
Opus 256kbps
AAC 256kbps
320kbpsの場合
Opus 320kbps
AAC 320kbps

スペクトログラム差分の結果も、実験1から想像できる通りのものではあったが、やはり192kbpsまではOpusが優位にあったが、256kbpsで逆転し、AACの320kbpsにおいては、ほぼオリジナルと変わらないレベルにまでなっている。

前回Opusを試した際、これが非可逆圧縮においてはベストなのでは? という気もしたが、やはりOpus、AACではそれぞれの得意・不得意があるようだ。そして低ビットレートではOpusの勝ち、256kbpsを超える高ビットレートではAACの勝ちということがハッキリと見えた。Appleが推奨するiTunes Plusは、まさにそのAACの256kbpsなのだから、これがいいというのを確信をもって導きだしていたのだろう。

また機会があったら、別のCODECについても同じ方法で調べてみたいと思う。

藤本健

 リクルートに15年勤務した後、2004年に有限会社フラクタル・デザインを設立。リクルート在籍時代からMIDI、オーディオ、レコーディング関連の記事を中心に執筆している。以前にはシーケンスソフトの開発やMIDIインターフェイス、パソコン用音源の開発に携わったこともあるため、現在でも、システム周りの知識は深い。  著書に「コンプリートDTMガイドブック」(リットーミュージック)、「できる初音ミク&鏡音リン・レン 」(インプレスジャパン)、「MASTER OF SONAR」(BNN新社)などがある。またブログ型ニュースサイトDTMステーションを運営するほか、All AboutではDTM・デジタルレコーディング担当ガイドも務めている。Twitterは@kenfujimoto