ニュース
AMDがRadeon R9&R7の一部モデルに搭載した「TrueAudio」とは何か。その秘密に迫る
TrueAudioは,9月28日の記事で紹介したグラフィックスAPI「Mantle」と同じように,AMD独自のサウンドAPIを介して利用可能になる機能だ。
TrueAudioとは何か
技術的な話をする前に,TrueAudioの概念を押さえておきたい。
TrueAudioは,「GPU内部のシェーダプロセッサを活用する機能」ではなく,GPUコアに組み込まれ,シリコンダイに統合されたDSP(Digital Signal Processor)によって実現される機能だ。
イメージとしては,Creative Technologyなどが長年展開してきている“サウンドチップ”的なDSPに近い。ただ,Sound Blasterシリーズで採用されるDSPは,プリセットの音響プログラムにパラメータを与えることで,ユーザーが好みの音像を作り出せるようなものに仕上げてあるのに対し,TrueAudioでAMDが提供するのは,直接DSPを叩けるようなローレベルのプログラミングAPIのみ。オリジナルの音響プログラムを走らせて活用する前提になっている。
つまり,TrueAudioを活用するには,音響プログラムを自分で開発するだけの技術力が必要になるのだ。
実力があり,かつAMDとの関係が深いスタジオだと,自前でTrueAudioエンジンを駆使してオリジナルの音響システムを実装してくる可能性もあるが,一般的には,専業のミドルウェアメーカーやサウンドライブラリメーカーが手がけるサウンドミドルウェアやライブラリを介してTrueAudioエンジンを利用することになるだろう。
ここで深読みして,「PlayStation 4やXbox OneにもこのTrueAudioが入っているの?」とワクワクしてしまった読者はいるかもしれないが,AMDによると,それはないとのこと。TrueAudioはあくまでも,R9 290XとR9 290,R7 260Xの新要素として訴求される技術となる。
TrueAudioは音響プログラムアクセラレータである
というわけで本題だが,いきなり結論めいたことを述べておくと,TrueAudioは基本的に,音響プログラムを実行するときに利用されるアクセラレータである。
現時点でAMDは具体的なDSPの機能リストを公開しておらず,DSPの詳細も語ってはいないのだが,代表的な機能の一部として,「畳み込み演算」(Convolution)の存在は,Radeon R9&R7発表の時点でも明らかになっている。
筆者はかつて,音楽制作システム「Z-MUSIC」なるモノを作っていた時期があり,このあたりの機能は(非リアルタイムながらも)実装した経験があったりするので,少し詳しく紹介してみよう。
で,畳み込み演算とは何なのか。
簡単に言えば,データ列1とデータ列2を総当たりで掛け算して,その結果をバッファに格納していくような計算だ。極端に簡略化した具体例を右に示してみたが,たとえばX()が音素材,H()が部屋の残響特性だとすれば,Y()にはその音素材をその部屋で鳴らしたときの音響結果が格納される仕組みとなる。
インパルス応答データの例。駐車場と林,教会では,残響の残り方が大きく異なる |
インパルス応答データを用いた畳み込み演算による残響効果のイメージ |
ただこの畳み込み計算,データ列の長さのべき乗で計算量が増加するという,とてつもなく負荷の高い計算になっている。そのため,(詳細は省略するが)デジタルサウンドデータを取り扱うときは,周波数領域(Frequency Domain)に変換しましょうというのが一般的な考え方になっている。たとえば,非可逆圧縮のサウンドデータフォーマットとして有名なMP3(MPEG-1 Audio Layer 3)は,まさしく周波数領域のサウンド圧縮技術だったりする。それくらい,周波数領域に変換したほうが何かと都合がいいのである。
さて,データ列を周波数領域に変換するのに用いるのがフーリエ変換
ただしその計算結果は,あくまでも周波数領域での計算結果であって,スピーカーから音として鳴らせるような時間領域(Time Domain)のサウンドデータにはなっていない。そこで逆高速FFT
デジタル音響機器であるAVアンプや,電子楽器のエフェクタなどは,こうした動作原理で動いている。
話をTrueAudioに戻すと,TrueAudioは,これらFFTやiFFTの計算と,周波数領域での畳み込み演算――まあ,これはただの乗算なのだが――をアクセラレーションして演算できるようになっているのである。
「非常にローレベルな計算をアクセラレーションをする仕組み」ということが,なんとなく分かってもらえたのではなかろうかと思う。
TrueAudioの搭載はCPU負荷低減のため
ではなぜ,わざわざAMDはGPUにTrueAudioを実装してきたのか。ここが気になる人も多いだろう。
その理由は実のところ単純明快。一言でまとめるなら,「CPU負荷の低減」である。
ただ,この理由(というか結論)に至るまでの経緯は解説の必要があるかもしれない。
これまで,ゲームサウンド向け音響効果の実装形態としては,それこそCreative TechnologyのSound Blasterシリーズに搭載されるDSPのような,完成されたハードウェアとしての音響プログラムにパラメータを与え,好みの音響効果を得るものが主流だったわけだが,これだと,作り出される音響特性が当該ハードウェアに依存してしまう。たとえば,ユーザーやゲームデベロッパが独自に用意した残響特性(=インパルス応答データ)を用いた音響効果を作り出すことはできない。
では,そういった音響処理ハードウェアを使わずに,すべてオリジナルの音響特性を創り出すにはどうしたらいいのか。その回答の1つに,「CPUで実行されるプログラム」として実装したサウンドミドルウェアやサウンドライブラリの類を用いる方法がある。
最近のCPUはマルチコアが当たり前で,SSEなどといったベクトル演算命令やメディア処理向けの機能も備えている。この「CPUを使う」というソリューションはその意味で,現実的な選択肢なのだ。
さらにいうと,CPUで100を超えるサウンドデータを処理するということは,CPUのデータキャッシュの利用効率が下がるということでもある。それほど再利用率の高くない長いサウンドデータがデータキャッシュに入って来てしまっては,データキャッシュ本来の機能に悪影響を及ぼしかねない。
そこでTrueAudioの出番だ。CPUに依存することなく,低遅延で音像プログラムを実行できる仕組みが,Radeon R9&R7シリーズの一部に搭載されたというのが,AMDがTrueAudioの発表で一番訴えたいことなのである。
なぜなら,TrueAudioがないPC環境では,サウンドミドルウェアはこれまでどおりCPUを活用し,(可能性は低いが)プリセットプログラムが動くような音響DSPが存在するならそれを使う。そして,TrueAudioがある環境では,CPUで実行していた音響プログラムをTrueAudioでアクセラレーションさせてCPU負荷を低減させるといった実装になっているからである。
TrueAudioの対応状況は?
Radeon R9&R7の発表会にはGenAudioの創業者兼CEOであるJerry Mahabub氏が登場。同社の3Dサラウンドサウンド技術「AstoundSound」をTrueAudioベースで実行するデモを披露した。
HRTFでは,人間の頭部と上半身を模した人形の耳の位置にマイクを設置して,「原音波がどのように変化して収録されるか」を分析して音響アルゴリズムを構築する。原音波を,そのHRTFアルゴリズムで変化させて耳に送り込めば,たとえその音を耳元で鳴らしていようが,任意の位置で鳴っているかのように聴者に感じさせることができる。これがHRTFに基づく仮想音源定位の理論だ。
BRTFはこれを一歩進めた考え方で,「任意の場所で定位した音を人間が聞いたときに出る脳波分布」のデータベースを構築し,音響特性と脳波分布の関係性に着目しつつ,仮想音源理論を組み立てたものになる。
BRTF自体は音響分野だけのものではなく,人間の五感に対して研究が進められている。人間の出す脳波は,SF映画や漫画でよく描かれる一本の電極で計れるような単純なものではなく,脳内の各所から同時多発的に発せられるため,その解析は非常に難しかったのだが,GPGPUに代表されるデータ並列コンピューティングが急速に進化した昨今では,この分野の新しい技術開発が進んでいるのである。AstoundSoundは,そのBRTFを音響に活かした技術というわけだ。
Radeon R9&R7発表会では,
Thiefは映像が暗いこともあり,音像表現に重きが置かれるタイトル。TrueAudioのデモタイトルとしては実におあつらえ向きか |
LichdomはWwiseのAstoundSoundプラグインを活用。CryENGINE 3採用タイトルとしても本作は注目されている |
TrueAudioは,完全に独自APIであり,PC専用のものだ。先に紹介したMantleのような,据え置き型ゲーム専用機との強い関連性もない。よって,ゲーム開発者から見て,Mantleほどの魅力があるかどうかは分からない。
ただ,発想としてはユニークで,AMDの主張する内容にも一理ある。対応GPUが3製品しかないという状況では結論を出しにくいが,今後,APUでの採用が始まったりすれば,化ける可能性はあるだろう。
AMD公式Webサイト
- 関連タイトル:
TrueAudio
- 関連タイトル:
Radeon R9 200
- 関連タイトル:
Radeon R7 200
- この記事のURL: