SoCへ効率的に組み込める オーディオ・サブシステム

White Paper
SoC へ効率的に組み込める
オーディオ・サブシステム
HD マルチチャネル・オーディオ機能のチップ統合期間を短縮
2012 年 3 月
Author
Pieter van der Wolf
Senior Staff,
Synopsys Inc.
概要
高度なオーディオ機能を SoC にインプリメントするには、オーディオ・プロセッサ、
オーディオ・ペリフェラル、ソフトウェア・ドライバ、オーディオ処理ソフトウェア
などさまざまなハードウェア / ソフトウェア・コンポーネントを組み合わせる必要が
あります。本稿では、まず HD(High-Definition)マルチチャネル・オーディオを処
理するためのオーディオ・ソリューションに求められる条件についてご説明した後、
これらのソリューションを構築する際の課題として、以下の 3 点について詳しくご説
明します。
▶ オーディオ・プロセッサで実行する各種ソフトウェア・コーデックとサウンド
処理機能の提供
▶ 統合されたデジタル / アナログ・オーディオ・ペリフェラルの提供
▶ ホスト・プロセッサとのインターフェイスやユースケースの構築と実行のための
API の提供
現在、SoC にオーディオ機能を組み込む際は、市販または内製のハードウェア / ソフ
トウェア・コンポーネントを組み合わせて、自前でオーディオ・ソリューションを構
築するのが一般的です。しかしこの作業には非常に多くの労力とリスクが伴います。
ハードウェア / ソフトウェア・コンポーネントを完全な汎用オーディオ・サブシステ
ムとして統合し、検証済みの形で提供されるオーディオ・ソリューションを利用すれ
ば、高度な HD マルチチャネル・オーディオ機能の SoC への統合に伴う労力とリス
クが大幅に軽減され、SoC 開発スケジュールの短縮とコスト削減にもつながります。
開発対象の SoC によってさまざまに異なるアプリケーション・ニーズを満たすには、
厳選されたコンフィギュレーション・オプションがオーディオ・サブシステムに用意
されていることも必要です。また、明確に定義されたインターフェイス、ツール・サポー
ト、プロトタイピング・サポートもオーディオ・サブシステムを SoC に効率よくイン
テグレーションする上で重要な役割を果たします。DesignWare ARC AS211SFX/
AS221BD オーディオ・プロセッサを搭載した DesignWare SoundWave オーディ
オ・サブシステムは、この「オーディオ・サブシステム」というアプローチの利点を
完全に備えたソリューションです。
はじめに
オーディオ処理は、現在ほとんどのコンシューマ機器で重要な役割を担っています。代表的な例として、デジ
タル・テレビ、セットトップ・ボックス(STB)、Blu-ray ディスク・プレーヤー、携帯メディア・プレーヤー、
タブレット、携帯電話などがあります。これらの機器向けの SoC にオーディオ処理機能を組み込むのは容易で
はなく、特にサポートしなければならないユースケースやオーディオ圧縮フォーマットの種類が多い場合には、
非常に長時間の複雑な作業が必要です。しかも、オーディオ処理に対する要求は年々厳しさを増しています。オー
ディオ処理に関する最近のトレンドとしては、以下のようなことが挙げられます。
▶ 24 ビット精度、最大 192kHz の高サンプリング・レート、複数のオーディオ・チャネル(5.1/7.1)など、
HD マルチチャネル・オーディオへのシフト。
このトレンドは、高品質なオーディオ・コンテンツの保存や配信に使われる Dolby TrueHD、DTS HD-
Master Audio、FLAC、WMA 9/10 Pro などのオーディオ圧縮フォーマットの登場によって牽引されて
います。また、Blu-ray ディスクも高品質オーディオの新しい標準となっています。
▶ コンシューマ機器がネットワークに接続するようになり、幅広い種類のオーディオ・コンテンツにアクセ
スできるようなっていること。
この結果、サポートしなければならないオーディオ圧縮フォーマットの種類が増えています。たとえば、
最近は多くの携帯機器がインターネットのオーディオ・コンテンツにアクセスする機能を備えています。
また、HDMI を経由して Blu-ray ディスクのコンテンツを圧縮オーディオ・データとして A/V レシーバや
デジタル・テレビに転送した場合、転送先の機器でデコードとオーディオ処理が必要になります。
▶ 豊かなサラウンド・サウンドを実現する高度なサウンド処理技術の登場。
たとえば、 仮 想サラウンド・サウンドや ダイナミック・ボリューム・コントロールなどのテクノロジが
Dolby(Dolby Pro LogicIIz、Dolby Volume など)、DTS(DTS Neo:6、DTS Neo:X)、SRS(SRS
TruSurround HD、SRS TruVolume)といった企業から提供されています。これらのテクノロジの中には、
マルチチャネル・オーディオをさらに 9.1 チャネル
(Dolby Pro LogicIIz)や 11.1 チャネル
(DTS Neo:X)オー
ディオにまで拡張できるものもあります。
こうしたトレンドの結果として、現在ではコンシューマ機器の多くでオーディオのデコードとエンコード、サ
ウンド・エンハンスなど幅広いオーディオ処理機能のサポートが必須となっています。当然、これらの機能を
実行するには強力なオーディオ処理性能が要求されます。
HD マルチチャネル・オーディオの処理にどれだけの演算性能が要求されるかは、CD 品質のオーディオと Bluray ディスク品質のオーディオを比べてみれば明らかです。CD がデータ・レート 44.1kHz、ステレオ、16 ビッ
トの非圧縮オーディオ・ストリームであるのに対し、Blu-ray は 192 kHz、5.1 チャネル、24 ビットの非圧縮
オーディオ・ストリームで、情報量の差はほぼ 20 倍に達します。このため、サンプリング・レート変換(SRC)
やイコライズなど非圧縮オーディオ・データに対する処理の実行にも、より高い演算性能が要求されます。そ
れに加え、マルチチャネル・オーディオでは通常、アップミックス(ステレオ→ 5.1ch など)やダウンミック
ス(7.1ch → 5.1ch など)といった機能も必要になります。オーディオのデコードやエンコードなどの機能に
必要な演算性能も、状況によって大きく異なります。これは、MP3(標準ビット・レート最大 320kbit/s)と
DTS-HD Master Audio(同最大 24.5Mbit/s)を比べてみると明らかです。一般に、MP3 のデコードは動作
周波数 10MHz 未満のオーディオ DSP(メモリー・アクセス・レイテンシを 0 サイクルとした場合)で実行で
きますが、Dolby TrueHD や DTS-HD Master Audio などの圧縮コンテンツをデコードするには数十∼数百
MHz の動作周波数が必要です。高度なサウンド処理をサポートした場合、HD マルチチャネル・オーディオの
処理に必要な演算性能はさらに高くなります。
SoC へ効率的に組み込めるオーディオ・サブシステム
2
このように HD マルチチャネル・オーディオの処理には非常に高度な演算性能が要求されるため、この処理を
SoC のホスト・プロセッサで実行するのは得策ではありません。多くのアプリケーションでは、1 つまたは複
数のオーディオ専用プロセッサにオーディオ処理を任せてホスト・プロセッサの負荷を軽減した方がコストと
消費電力の面で大きなメリットがあります。本稿では、SoC にオーディオ機能を組み込む上での課題とその解
決方法、そして HD マルチチャネル・オーディオの処理を専用プロセッサに移管するメリットについてご説明
します。
アプリケーションとユースケース
オーディオ機能に求められる要件を詳しく見ていくため、ここでは SoC に搭載されるオーディオ機能の具体的
なユースケースについていくつか考察してみます。図 1 は、多くのアプリケーションで使われるオーディオ機
能の範囲を一般化して示したものです。
ライン
マイク
ADC
ボリューム
トーン
ミキシング
フィルタリング
放送
ストレージ
ワイヤレス
HDMI
USB
...
ライン
ヘッドフォン
DAC
デジタル・ペリフェラル
ストレージ
ワイヤレス
SRC
+
デコード処理
(圧縮音声を
入力の場合)
エンコード
(圧縮音声を
出力の場合)
サウンド処理
S/PDIF
アナログ・ペリフェラル
HDMI
USB
...
オーディオ処理
システム・メモリー経由で
アクセス
S/PDIF
I 2S
I 2S
図1:一般的なSoCで必要になるオーディオ・ソリューションの機能
オーディオ・データは、アナログまたはデジタル・ペリフェラルから入力するか、または SoC 上のバスを経由
してシステム・メモリー内のオーディオ・データにアクセスして入力します。アナログのライン入力またはマ
イク入力からのオーディオ・データは、オーディオ A/D コンバータ(ADC)を経由して入力します。S/PDIF
や I2S などのペリフェラルは、デジタル入力として利用できます。表 1 に示したように、S/PDIF は非圧縮のス
テレオ・オーディオ・データ(IEC60958)と圧縮ステレオ / マルチチャネル・オーディオ・データ(IEC61937)
に対応しています。I2S は非圧縮のステレオ / マルチチャネル・オーディオ・データに対応しています。
非圧縮
ステレオ
S/PDIF
I2S
圧縮
マルチチャネル
ステレオ
マルチチャネル
○
×
○
○
○
○
×
×
表1:デジタル・ペリフェラルでサポートされるオーディオ・データの種類
放送受信機やファイル・システムなど、SoC の他の機能によってシステム・メモリーに記録されたオーディオ・
データは、SoC 上のバス経由でアクセスします。ここで言うシステム・メモリーには、SoC の DRAM インター
フェイスを介してアクセスするオフチップの DRAM も含みます。
入力オーディオ・データが圧縮されている場合、最初にデコード処理が必要です。その後、システムはボリュー
ム / トーン・コントロール、ミキシング、サンプリング・レート変換などの基本的なポストプロセッシングを実行
します。さらに、システムで高度なサウンド処理機能を実行してオーディオ・データを処理することもあります。
オーディオ・データはペリフェラル経由で出力するか、またはシステム・メモリー内に保存します。オーディオ・デー
SoC へ効率的に組み込めるオーディオ・サブシステム
3
タをアナログのラインまたはヘッドフォンに出力するには D/A コンバータ(DAC)を使用します。デジタル出力
の場合は S/PDIF または I2S を使用します。S/PDIF からマルチチャネルの圧縮オーディオ・データを出力するな
ど、圧縮オーディオ・データを出力する場合は、まずオーディオ・エンコード機能をシステムで実行します。録画
のユースケースでは、オーディオ・データをファイル・システムによってシステム・メモリーに書き込みます。
ユースケースの例
Blu-ray ディスク・プレーヤーやデジタル・テレビなどのコンシューマ機器には、それぞれサポートすべきユー
スケースがあります。ユースケースとは、機器がサポートする動作を定義したものです。ここではいくつかのユー
スケースを例に挙げ、SoC にオーディオ機能を搭載する際に求められる条件を見ていきます。
必須: LPCM、DD、DTS
オプション: DTS HD HRA、DD+、DRA
オプション: TrueHD、DTS HD MA
(5.1/192kHzまたは7.1/96kHz)
ストリーム1
デコード
PCM
2/5.1/7.1
192kHz
SRC、
DD+(5.1/48kHz)
DTS Express(5.1/48kHz)
ストリーム2
デコード
BD-Jからの対話型オーディオ
PCM、48kHz
ミックス、
ダウンミックス、
DTS
Neo:6
BD-J
DAC
PCM
2/5.1
48kHz
Dolby
または
S/PDIF
DTS
エンコード
PCM
2/5.1/7.1
192kHz
デコード
HDMI
図2:Blu-rayディスク再生のユースケース
図 2 は、Blu-ray ディスクの圧縮コンテンツ再生のユースケースを示したものです。このユースケースには複数
の入力ストリームがあります。メインの音声ストリーム以外に、映画監督による解説を第 2 オーディオ・トラッ
クに記録するといった使い方もできます。第 3 の入力ストリームは Blu-ray ディスク Java コンテンツを使用
し、対話型メニューのシステム・サウンド再生や、BD-J 制御の映画再生をサポートします。デコード機能には、
AC-3 と呼ばれる Dolby Digital(DD)や DTS など必須のデコーダに加え、Dolby Digital Plus(DD+)や
Dynamic Resolution Adaptation(DRA)などオプションのデコーダもあります。このほか、高品位な Bluray オーディオ再生に対応する場合には、ロスレス・オーディオ符号化をサポートする Dolby TrueHD や DTS
HD-Master Audio などの音声圧縮フォーマットに対応したデコーダを加える場合もあります。サンプリング・
レート変換(SRC)は、
後でミックスが行えるようにすべてのストリームを第 1 ストリームと同じサンプリング・
レートに変換します。S/PDIF から圧縮ストリームを出力するにはオーディオ・エンコード機能が必要です。
PCM
2/5.1
多重化された
トランスポート
ストリーム(TS)
の分離
デコード
PCM
5.1
ダウンミックス、
PCM
5.1
SRC
サウンド
処理
DAC
S/PDIF
エンコード
HDMI
PCM
2
エンコード
ハードディスク
図3:デジタル・テレビ放送の受信と録画のユースケース
SoC へ効率的に組み込めるオーディオ・サブシステム
4
図 3 はデジタル・テレビ放送の受信と録画のユースケースを示したものです。まず、多重化された MPEG-2 ト
ランスポート・ストリーム(TS)などのオーディオやビデオ・データを分離したら、システム・メモリー経由
で圧縮オーディオ・コンテンツを受信します。オーディオ・デコード機能は、ターゲットとするデジタル・テ
レビ放送規格で使われているオーディオ圧縮フォーマット(たとえば ATSC なら AC-3/Dolby Digital)をサポー
トする必要があります。このユースケースでは、DAC を経由してスピーカーやヘッドフォンに出力されるオー
ディオ・データに対して高度なサウンド処理を実行します。S/PDIF や HDMI でオーディオ・データを出力す
る場合はエンコードも行います。ダウンミックスしたステレオのオーディオ・データは、エンコードしてからハー
ドディスクに記録します。
これらの 2 つのユースケースには大きな違いが 1 つあります。Blu-ray 再生のユースケース(図 2)ではオーディ
オ・データが「プル・モード」で入力されるのに対し、放送受信のユースケース(図 3)ではオーディオ・デー
タが放送局から「プッシュ・モード」で到着する点です。プッシュ・モードで到着したオーディオ・データを
ペリフェラルから出力する場合、これらのペリフェラルを駆動するサンプル・クロックは放送局から送信され
た参照クロックから再構築したシステム・クロックを使って生成する必要があります。こうすれば、放送受信
機は放送ネットワーク経由時に発生したクロックの精度低下やドリフトを補償し、受信機側でのオーディオ・
データのアンダーフローやオーバーフローを防げます。
オーディオ機能のインプリメントに関する課題
ターゲットとする SoC アプリケーションのユースケースを、コストと消費電力を抑えた効率的なハードウェア /
ソフトウェア・インプリメンテーションとして実現するには、下記のようにさまざまな課題を解決する必要があ
ります。ここでは、これらの課題について詳しく見ていきます。
▶ オーディオ処理(デコーダ、エンコーダ、基本的なポストプロセッシング、高度なサウンド処理)のインプ
リメンテーション
▶ ペリフェラルとサンプル・クロック生成のインテグレーション
▶ ホスト・インターフェイスとユースケース構築 / 実行のための API
オーディオ処理のインプリメンテーション
現在の SoC インテグレーションでは、内製または外部サプライヤから調達したハードウェア / ソフトウェア・
コンポーネントを組み合わせてオーディオ機能を構築するのが一般的です。ハードウェア・コンポーネントの
中でも特に中心的な役割を果たすのが、オーディオ処理機能を実行するオーディオ・プロセッサです。このオー
ディオ・プロセッサは、ターゲットとするユースケースで要求される演算性能をなるべく少ない面積と消費電
力で達成する必要があります。オーディオ・プロセッサを選ぶ上でもう 1 つ重要な基準となるのが、そのプロセッ
サ上で実行できるオーディオ処理機能の種類です。多くの場合、
SoC アプリケーションのユースケースをサポー
トしてユーザーニーズを満たすには、非常に多くのオーディオ処理機能が必要になります。しかしこのように
大規模で複雑なオーディオ処理機能を開発し、任意のプロセッサで効率よく実行できるように最適化するには
非常に多くの作業が必要です。また、ソフトウェア・コーデックについては各標準化団体と協力して規格適合
の承認を受ける必要があります。
幅広い種類のオーディオ処理機能を用意し、これらの機能を組み合わせて完全なユースケースを構築する際、
これらの機能にインターオペラビリティがなければ作業の負担とリスクを抑えることはできません。ここでの
インターオペラビリティとは、オーディオ・データ・フォーマット、メタデータ処理、バッファ・マネジメン
トに関する互換性を言います。しかしこのような互換性の確保に関する標準規格は存在しないため、さまざま
なソースやサプライヤから別々にオーディオ処理機能 IP を調達して組み合わせるのは非常に困難な作業となり
ます。たとえばインターリーブありのオーディオ・データ(別々のチャネルのオーディオ・ワードが 1 つのバッ
SoC へ効率的に組み込めるオーディオ・サブシステム
5
ファを交互に使用する)を出力するオーディオ処理機能とインターリーブなしの入力(オーディオ・データのチャ
ネルごとに専用のバッファにアクセスする)しか受け付けないオーディオ処理機能を接続する場合、SoC イン
テグレーションの際に互換性の問題を解決しなければなりません。もう 1 つの例として、タイムスタンプ管理
の問題があります。あるユースケースの中をオーディオ・データが移動する際は、タイムスタンプを正しく管
理してオーディオとビデオの出力を同期(リップシンク)させる必要があります。オーディオ処理機能同士の
インターオペラビリティがないと設計の手間が増えるだけでなく、オーディオ・データのフォーマット変換を
実行するグルー・ロジックが必要となるため、プロセッサやメモリー・リソースの利用効率も低下します。
また、ユースケースの実行に必要な演算性能は SoC アプリケーションによって大きく異なるため、同じオーディ
オ処理ソフトウェアを再利用して異なるアプリケーション向けの SoC を開発するには、演算性能のスケーラビ
リティも必要になります。たとえば、サポートするオーディオ圧縮フォーマットやサウンド処理機能の数が少
ないローエンド・システムなら、Dolby TrueHD や DTS-HD Master Audio などのオーディオ圧縮フォーマッ
トや高度なサウンド処理機能をサポートしたハイエンドのシステムほどの演算性能は必要ありません。
ペリフェラルとサンプル・クロック生成のインテグレーション
オーディオ機能を SoC に組み込む際は、オーディオ・ストリームの入出力を行うための専用ペリフェラルを含
めるのが一般的です。一般に広く普及しているデジタル・ペリフェラルとしては、I2S と S/PDIF があります。
I2S と S/PDIF はどちらもシリアル・インターフェイスで、少ないピン数でチップ外部と接続できます。マイク、
ライン、ヘッドフォンなどのアナログ入出力をサポートするためにアナログ・コーデックを SoC に組み込む場
合もあります。
ペリフェラルの動作には、マスタ・モードとスレーブ・モードがあります。ペリフェラルがマスタ・モードで
動作する場合、オーディオ・ワードの入力 / 出力を駆動するためのサンプル・クロックをオーディオ機能ブロッ
クからペリフェラルに供給する必要があります。スレーブ・モードで動作する場合は、外部クロック・ソース
がオーディオ・ワードの入力 / 出力を駆動します。この場合、マスタ・モードで動作する他のオーディオ・ペリ
フェラル用のサンプル・クロックを生成するためにサンプル・クロックのリカバリが必要です。I2S ペリフェラ
ルは、マスタ・モードとスレーブ・モードの両方が可能です。図 4 は、I2S のステレオ出力を例として示してい
ます。マスタ・モードでは、供給されたサンプル・クロック(clk)がシリアル・データ出力(sdout)を駆動
します。スレーブ・モードでは、外部ビット・クロック(sclk)とレフトライト・クロック(lrclk)がデータ
転送を駆動します。
clk
オーディオ
データ
I 2S
Tx
マスタ
sclk
Irclk
sdout
clk
オーディオ
データ
I 2S
Tx
スレーブ
sclk
Irclk
sdout
図4:I2Sペリフェラルのステレオ出力(左がマスタ・モード、右がスレーブ・モード)
S/PDIF の場合、入力ペリフェラルはスレーブ・モードのみで、出力ペリフェラルはマスタ・モードのみとなり
ます。I2S プロトコルで使用するビット・クロック(sclk)の最小周波数は、「Fs x オーディオ・ワード x 2」
です(ただし Fs はオーディオ・ストリームのサンプル・レート(48kHz など))。S/PDIF は、IEC60958 プロ
トコルに基づき Fs x 128 のシンボル・レート・クロックでデータをシリアル駆動します。オンチップまたはオ
フチップのアナログ・コーデックへの接続には、通常 I2S インターフェイスを使用し、Fs x 256 や Fs x 384 な
どの周波数のオーバーサンプリング・クロックを使用します。
オーディオ機能ブロックにペリフェラルを追加するのも大変な作業です。ハードウェアに関しては、ペリフェ
SoC へ効率的に組み込めるオーディオ・サブシステム
6
ラルの IP ブロックを開発または購入し、コンフィギュレーションとインテグレーションを行う必要があります。
この作業では、バス・インターフェイス、割り込み、DMA 制御など低レベルの細部に関する作業が発生します。
ソフトウェアに関しては、プロセッサや使用するオペレーティング・システム(OS)用のソフトウェア・ドラ
イバを用意し、ペリフェラルのレジスタ空間をメモリー・マップに割り当て、ソフトウェア・ドライバをソフ
トウェア・スタックに統合することにより、ユースケースでペリフェラルを使用できるようにする必要があり
ます。ハードウェアとソフトウェアのインテグレーションが正しく行われており、必要な動作モードをすべて
サポートしているかどうかを検証するには長時間の作業が要求されます。
ペリフェラルのインテグレーションで特に重要になるのが、サンプル・クロックの生成です。ハードウェアに
関しては、サポートするすべてのサンプル・レート(Fs)に関してペリフェラル用のサンプル・クロックを 1
つのソース・クロックから供給できるようなサンプル・クロック・インフラストラクチャが必要です。これに
は、スレーブ・モードのペリフェラルがマスタ・モードで動作中の他のペリフェラルに対してサンプル・クロッ
クを生成するためのオーディオ PLL が含まれます。クロック制御ソフトウェアに関しては、ユースケースで使
用するペリフェラルに対して適切なサンプル・クロックを生成できるように、クロック・インフラストラクチャ
のプログラミングをサポートする必要があります。
オーディオ・ペリフェラルにはリアルタイム制約があり、入力ペリフェラルでのオーバーフローや出力ペリフェ
ラルでのアンダーフローを避けなければなりません。このようなオーバーフローやアンダーフローは聴覚上の
ノイズとして知覚され、ユーザー体験の質を低下させる原因となります。定義した動作条件の範囲内でリアル
タイム制約の違反が発生しないようにするには、ワーストケース・パフォーマンス解析を行い、バッファのサ
イジングを正しく実行する必要があります。ワーストケース・パフォーマンス解析では考えうるすべての相互
連携を考慮する必要がありますが、その解析結果はどのようなハードウェア / ソフトウェア・アーキテクチャを
選択するかによって大きく変化します。
ホスト・インターフェイスとユースケース構築 / 実行のための API
一般に、ホスト・プロセッサ上のソフトウェア・アプリケーションはオーディオ・ユースケースだけでなくビ
デオ、グラフィックス、ストレージなどの機能も実行します。アプリケーションの構築をサポートするには、オー
ディオ・プロセッサで実行するオーディオ処理機能を制御するためのソフトウェア・インターフェイスがホスト・
プロセッサ側に必要です。
オーディオ処理機能のホスト・インターフェイスには、ホスト・プロセッサとオーディオ・プロセッサ間のプ
ロセッサ間通信(IPC)を使用します。この IPC 上で、オーディオ処理機能の作成、開始、一時停止、再開、
停止などをホスト・プロセッサから実行できる機能が必要です。また、個々のオーディオ処理機能からユースケー
スを構築し、ペリフェラルとの間でオーディオ・データの双方向ストリーミングを行うためのサポートも必要
です。ここでは、ホスト・プロセッサとオーディオ・プロセッサのやりとりを、高レベル API を用いて透過的
に実行できるのが理想的です。このような API を使用すると、ホスト・プロセッサ上でローカルに実行してい
るのと同じ感覚でユースケースの構築と実行を行えます。ホスト・プロセッサ上でのオーディオ機能ソフトウェ
アのインテグレーションの詳細は、本稿末尾でご紹介する関連ホワイトペーパー(Derwig, 2012)でご説明し
ています。
オーディオ・サブシステム
SoC に集積するオーディオ・ソリューションは、さまざまなハードウェア / ソフトウェア・コンポーネントを
組み合わせて構築できます。しかし内製または外部サプライヤから調達した複数の IP を組み合わせるこのアプ
ローチでは、前述のようなインプリメンテーション上の課題に直面してしまいます。これでは、ハードウェア /
ソフトウェア設計エンジニアの作業負担が非常に大きくなります。
SoC へ効率的に組み込めるオーディオ・サブシステム
7
これに対し、完成したオーディオ・サブシステムとして提供されるオーディオ・ソリューションを利用すれば、
SoC インテグレーションの手間を大幅に軽減できます。オーディオ・サブシステムとは、ハードウェア / ソフ
トウェア・コンポーネントが完全な形で統合、検証されており、SoC に組み込むだけで面倒な設定なしに利用
できるソリューションをいいます。このようなオーディオ・サブシステムには 2 つの種類があります。1 つは、
単一の「汎用製品」として定義されたものです。しかし前述のように、オーディオ処理機能の実行に必要な処
理性能や使用するペリフェラルの数と種類など、オーディオ機能に求められる要件は SoC のアプリケーション
によって大きく異なります。
また、1 種類の汎用製品であらゆる用途に対応しようとすると、多くの SoC アプリケーションでシリコンの占
有面積が必要以上に大きくなります。そこでもう 1 つのアプローチとして考えられるのが、ターゲットとなる
SoC アプリケーションに合わせて最適なコンフィギュレーションを選択できるコンフィギュラブルなオーディ
オ・サブシステムです。図 5 は、コンフィギュラブルなオーディオ・サブシステム、複数 IP の組み合わせ、汎
用製品という 3 つのアプローチを、「特定の要件に合わせて最適化できる自由度」と「オーディオ機能の構築と
インテグレーションの際の使い勝手の良さ」に着目して比較したものです。使い勝手の良さは、エンジニアの
作業量に反比例します。
理想的な製品
複数のIPの
組み合わせ
設計自由度
・
・
・
・
オーディオ
サブシステム
自由度が高い
作業負担が大きい
リードタイムが長い
リスクが高い
・
・
・
・
・ コンフィギュラブルなソリューション
・ 作業負担が少ない
・ すぐに利用可能
・ リスクが低い
現状のまま(自由度がほとんどない)
作業負担が少ない
すぐに利用可能
リスクが低い
汎用製品
使い勝手の良さ
図5:3つのアプローチ(コンフィギュラブルなオーディオ・サブシステム、複数IPの組み合わせ、汎用製品)の比較
ここからは、簡単な作業で SoC に集積可能なオーディオ機能を実現するコンフィギュラブルなオーディオ・サ
ブシステムの利点について詳しく見ていきます。
コンフィギュレーション性
SoC アプリケーションによってさまざまに異なるニーズを満たすには、オーディオ・サブシステムに高いコン
フィギュレーション性が求められます。ここで重要になるのは、以下の 3 つです。
▶ ターゲットとなるユースケースのオーディオ処理機能を実行する上で必要な演算性能のコンフィギュレー
ション性。オーディオ・プロセッサのコンフィギュレーション・パラメータでキャッシュ・サイズやコア
数を変更できること。
▶ ペリフェラルの数や種類を設定できること。
▶ アドレスバス・インターフェイスの種 類( AHB/A XI など)やメモリー・マップの ベース・など、SoC 環境
へのオーディオ・サブシステムのインテグレーションに影響するプロパティを設定できること。
コンフィギュレーション性はハードウェアとソフトウェアの両面で必要です。たとえば、選択したペリフェラ
ルに合わせてソフトウェアを設定できることも必要です。
SoC へ効率的に組み込めるオーディオ・サブシステム
8
ただし、コンフィギュレーション・オプションの数はオーディオ・サブシステムの使い勝手の良さとの間で慎
重なバランスをとる必要があります。コンフィギュレーション・オプションが多すぎると SoC インテグレーショ
ンの際に複雑な細部を扱うことになるため、オーディオ・サブシステムのインテグレーション作業が複雑にな
ります。コンフィギュレーション・オプションの数が多いと設計自由度は向上しますが、使い勝手が悪くなる
ため、図 5 のグラフでは左上に位置してしまい、好ましくありません。このため、オーディオ・サブシステム
の設計自由度を十分に維持しながらコンフィギュレーション・オプションの数を最小限に抑えるのが理想です。
オーディオ・サブシステムには、複数 IP の組み合わせによるアプローチでは実現できないメリットがほかにも
いくつかあります。まず、スマートなユーザー・インターフェイスを備えた合理的なツールのサポートや、選
択したハードウェア / ソフトウェア・コンフィギュレーションを生成する自動化されたコンフィギュレーション・
フローにより、インテグレーションが簡単に行える点です。また、すべてのコンポーネントが 1 つのサブシス
テムとしてまとめられているため、サブシステムのサプライヤが現在の標準 IP ブロックと同じような感覚でブ
ロック全体を検証できます。複数の調達先からのコンポーネントを組み合わせて SoC インテグレーションを行
う場合のような検証の手間は発生しません。
オーディオ・サブシステムのアーキテクチャ
シノプシスの DesignWare IP には、コンフィギュラブルなオーディオ・サブシステムとして SoundWave オーディ
オ・サブシステムが提供されています。図 6 は、SoundWave オーディオ・サブシステムにいくつかのペリフェ
ラルを含めてコンフィギュレーションしたハードウェア・アーキテクチャのブロック図を示したものです。
スマート
ローカル
インターコネクト
ホスト
プロセッサ
システム
メモリー
ARC
AS211SFX/
AS221BD
オーディオ・プロセッサ
SRAM
DAC
クロック
マネジメント
マイク
ライン
アナログ
コーデック
HDMI
USB
ADC
リセット
コントローラ
ヘッドフォン
ライン
I2 S
I 2 S 入力
I2 S
I 2 S 出力
S/PDIF
S/PDIF入力
S/PDIF
S/PDIF出力
オーディオ・サブシステム
ハードウェア・アーキテクチャ
図6:DesignWare SoundWaveオーディオ・サブシステムのハードウェア・アーキテクチャ
シノプシスは、SoC 環境へのインテグレーションを容易にするため、省面積のソリューションとなるようにハー
ドウェア・アーキテクチャを設計しました。図 6 の ARC AS211SFX/AS221BD オーディオ・プロセッサ・ブ
ロックはシングルコア ARC AS211SFX オーディオ・プロセッサまたはデュアルコア ARC AS221BD オーディ
オ・プロセッサとしてコンフィギュレーションできるため、ターゲットとなるユースケースの要件に合わせて
処理性能を選択できます。ARC AS211SFX と ARC AS221BD オーディオ・プロセッサは、少ない面積と消
費電力で効率よくオーディオ処理機能を実行できるように最適化されたコンフィギュラブルなプロセッサです。
ARC AS211SFX/AS221BD オーディオ・プロセッサのキャッシュは、SoC 環境ではオーディオ・サブシステ
ムがメモリー・アクセス・レイテンシから受ける影響を考慮して SoC インテグレーション時にコンフィギュレー
ションが可能です。
SoC へ効率的に組み込めるオーディオ・サブシステム
9
ARC AS211SFX/AS221BD オーディオ・プロセッサとオーディオ・ペリフェラルは、スマート・ローカル・
インターコネクトで接続しています。このインターコネクトは、ペリフェラルのリアルタイム制約を満たしな
がらオーディオをストリーミングできる省面積のインフラストラクチャを提供します。このスマート・ローカル・
インターコネクトには、SoC インフラストラクチャ側にオーディオ・ペリフェラルのインテグレーション専用
ポートを必要としないという利点もあります。
SoundWave オーディオ・サブシステムは、デジタル・ペリフェラル(I2S、S/PDIF)とアナログ・ペリフェ
ラル(マイク、ライン、ヘッドフォン)を両方サポートしています。I2S ペリフェラルは、コンフィギュレーショ
ンによって入力または出力、マスタまたはスレーブ、ステレオまたはマルチチャネル(5.1/7.1)を選択できます。
S/PDIF を使って HDMI レシーバまたはトランスミッタをチップ上で直接接続することもできます。S/PDIF と
HDMI はどちらも IEC60958 と IEC61937 規格に基づいたプロコトルであり、直接接続することによって面積
を大幅に削減できます。
このハードウェア・アーキテクチャには、コンフィギュレーションに含めたペリフェラルに対するすべてのサ
ンプル・クロック(アナログ・コーデック用のオーバーサンプリング・クロックを含む)を生成可能なクロック・
インフラストラクチャが用意されています。SoC インテグレーションを容易にするもう 1 つの手段として、リ
セット・コントローラも提供されます。オーディオ・サブシステムをリセットするための 1 つのコマンドを実
行するだけで、オーディオ・サブシステム内部の詳細を意識することなくサブシステムの各コンポーネントを
正しくリセットできます。
図 7 に、ハードウェアとソフトウェアを組み合わせた SoundWave オーディオ・サブシステムのアーキテクチャ
を示します。
ペリフェラルの
インテグレーション
オーディオ処理
ビデオ
Gfx
アプリケーション
オーディオ
プラグイン
OS
ホスト・プロセッサ
デコード
+
エンコード
基本的な
ポスト
プロセッシング
高度な
サウンド処理
ソフトウェア・インフラストラクチャ
ARC AS211SFX/AS221BD
オーディオ・プロセッサ
ソース
オーディオ・サブシステムの
ソフトウェア
シンク
オーディオ・サブシステムの
ハードウェア
+
ドライバ
ペリフェラルと
クロック
その他のソフトウェア
その他のハードウェア
図7:DesignWare SoundWaveオーディオ・サブシステムのアーキテクチャ
図 7 の中央上部に示したオーディオ処理機能は、ARC AS211SFX/AS221BD オーディオ・プロセッサで実行
します。ARC オーディオ・プロセッサでは、小型の OS と軽量のストリーミング・フレームワークで構成され
るソフトウェア・インフラストラクチャがデコーダ、エンコーダ、基本的なポストプロセッシング、高度なサ
ウンド処理といったオーディオ処理機能のフローグラフの作成と実行をサポートします。SoundWave オーディ
オ・サブシステムには利用可能なオーディオ処理機能が豊富に用意されており、ターゲットとするユースケー
スで必要なオーディオ処理機能を SoC インテグレーションの際に選択できます。
図 7 の右下に示したモジュールは、ペリフェラルとクロック・インフラストラクチャのハードウェアを表
しています(詳細は図 6 に記載)。これらペリフェラルのドライバは、オーディオ・サブシステム内の ARC
AS211SFX/AS221BD オーディオ・プロセッサで実行します。このため、ペリフェラルのインテグレーショ
ンに関してソフトウェアのポーティングを行う必要が一切なく、SoC へのオーディオ・サブシステムのインテ
SoC へ効率的に組み込めるオーディオ・サブシステム
10
グレーションが容易になります。入力ペリフェラルと出力ペリフェラルがそれぞれソース機能とシンク機能と
して提供されており、これらをユースケースのフローグラフの開始点と終了点として使用できるのも、SoC イ
ンテグレーションを容易にする特長の 1 つです。ソース機能とシンク機能によって提供される高レベル API を
利用すれば、ペリフェラルとクロック・インフラストラクチャの細部を意識せずに制御できます。これらはす
べて、ソース機能とシンク機能をユースケースにインスタンス化して、開始、停止などを実行するだけで透過
的に処理されます。
図 7 の左側に示したのは、ホスト・インターフェイスです。SoundWave オーディオ・サブシステムには、オー
ディオ処理機能、ソース機能、シンク機能をホスト・プロセッサから利用できるようにするオーディオ・プラ
グインが付属しており、アプリケーションの構築を容易に行えます。このようなアプリケーションでは、ビデ
オやグラフィックスなど他の必要な処理と併せてオーディオ処理を実行できます。オーディオ・プラグインは、
ホスト・プロセッサと ARC AS211SFX/AS221BD オーディオ・プロセッサ間の IPC を利用します。
オーディオ・プラグインは、ユースケースの構築と実行に関する高レベル API を提供します。SoundWave
オーディオ・サブシステムでサポートされる API の 1 つに、GStreamer API があります。GStreamer はスト
リーミング・メディア・アプリケーションを作成するためのオープンソースのマルチメディア・フレームワー
クとして広く使われており、GStreamer プラグインも数多く提供されています。オーディオ・サブシステム
のオーディオ・プラグインを利用すると、すべてのオーディオ処理機能やソース / シンク機能をホスト・プロ
セッサ上で GStreamer 要素として実行できます。GStreamer 要素はプロキシとして動作し、実際には ARC
AS211SFX/AS221BD オーディオ・プロセッサ上で機能が実行されます。GStreamer API を使うと、ホスト・
プロセッサ上でローカルに実行しているような感覚でユースケースを構築し実行できます。こうすると、ホスト・
プロセッサの処理をオーディオ・プロセッサに簡単に移管して HD マルチチャネル・オーディオの処理性能を
最適化できるため、ソフトウェア・インテグレーションの作業負担が大幅に軽減します。
プロトタイピングのサポート
あらかじめインテグレーションが完了したオーディオ・サブシステムとは、SoC に統合した完全なオーディ
オ機能のプロトタイプ開発もサポートしたものでなければいけません。プロトタイピングとしては、バーチャ
ル・プロトタイピングまたはフィジカル・プロトタイピング、あるいはそのハイブリッド形式が可能です。
SoundWave オーディオ・サブシステムにもプロトタイピング環境が用意されており、SoC のハードウェア設
計と並行してアプリケーション・ソフトウェアを開発できます。開発が完了したら、アプリケーション・ソフ
トウェアをホスト・プロセッサのプロトタイプ上で実行し、構築したユースケースをオーディオ・サブシステ
ムのプロトタイプ上で実行します。こうすると、実際のオーディオ処理を SoundWave オーディオ・サブシス
テムの量産用ソフトウェアで実行できます。要求される演算性能がそれほど高くないユースケースの場合、リ
アルタイムにオーディオ出力を得ることも可能です。ソフトウェア開発が完了した後も、プロトタイプはバリ
デーションやデモンストレーションといった用途に役立ちます。
SoC へ効率的に組み込めるオーディオ・サブシステム
11
まとめ
本稿では、SoC へのオーディオ機能の統合について、アプリケーションとユースケースの観点から詳しく考察
しました。HD マルチチャネル・オーディオの処理に必要な演算性能は年々高まっており、オーディオ処理を
専用のオーディオ・プロセッサに移管すれば、ホスト・プロセッサは負荷の大きいオーディオ機能の処理から
解放され、全体的なコストと消費電力を抑えられます。
SoC への HD マルチチャネル・オーディオ・ソリューションのインテグレーションに関しては、以下の課題が
あります。
▶ ターゲットとするユースケースで求められる演算性能を備えたオーディオ・プロセッサ上で、幅広い種類の
ソフトウェア・コーデックとサウンド処理機能を提供すること
▶ デジタル / アナログ・ペリフェラルのインテグレーション(必要なサンプル・クロックの生成を含む)
▶ ホスト・プロセッサとのインターフェイスやユースケースの構築と実行のための API の提供
ハードウェア / ソフトウェア・コンポーネントを完全な汎用オーディオ・サブシステムとして統合し、検証済み
の形で提供されるオーディオ・ソリューションを利用すれば、SoC への高度な HD マルチチャネル・オーディ
オのインテグレーションに伴う労力とリスクが大幅に軽減されます。
DesignWare SoundWave オーディオ・サブシステムは、この「オーディオ・サブシステム」というアプロー
チの利点を完全に備えたソリューションです。このサブシステムは ARC AS211SFX/AS221BD オーディオ・
プロセッサを搭載し、インターオペラビリティの確保されたオーディオ処理機能を幅広く提供しています。また、
効率的なツールを用いてコンフィギュレーションが行えます。オーディオ処理機能をホスト・プロセッサから
利用できるオーディオ・プラグインも用意されており、オーディオ処理のプロセッサ移管も非常に簡単な作業
で実現します。また、ペリフェラルのインテグレーション、サブシステムのリセット、ホスト・プロセッサとオー
ディオ・プロセッサのやりとりなど、インプリメンテーションの細部を抽象化するハードウェア / ソフトウェア・
インターフェイスも明確に定義されているため、SoC へのオーディオ・サブシステムのインテグレーションを
簡単に行えます。オーディオ・サブシステムのプロトタイピング機能を利用すると、ハードウェア・インプリ
メンテーションと並行してアプリケーション・ソフトウェア開発を進められます。複数のソースから IP を調達
してハードウェア / ソフトウェア・コンポーネントを組み合わせた統合度の低いアプローチに比べ、検証済みの
完全なオーディオ・サブシステムならエンジニアの労力、開発コスト、リスクを最小限に抑えて SoC インテグ
レーションを完成させ、製品を短期間で市場に投入できます。
関連ホワイトペーパー:
Derwig, R. (2012)
High-end audio made easy: the software story, Software integration of an audio subsystem into a system on chip.
Synopsys, Inc.
日本シノプシス合同会社
〒158-0094 東京都世田谷区玉川2-21-1 二子玉川ライズ オフィス
〒531-0072 大阪府大阪市北区豊崎3-19-3 ピアスタワー13F
© Synopsys, Inc. All rights reserved.Synopsysは、米国およびその他の国におけるSynopsys, Inc.の商標です。
シノプシスの商標一覧は、http://www.synopsys.com/copyright.html をご参照ください。その他の名称は、各社の商標または登録商標です。
TEL.03-6746-3500 (代) FAX.03-6746-3535
TEL.06-6359-8139(代) FAX.06-6359-8149
03/12.AP.CS1458.