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