(57)【特許請求の範囲】
【請求項１】
各々が主音声成分および１つ以上の補助音声成分を含む３つ以上の音声チャネルについて、サンプル値をストアするためのミキサバッファ、
各音声チャネル毎の補助音声成分を音声効果プロセサに送るための送り経路、および
音声効果プロセサから各音声チャネル毎の音声効果処理された補助音声成分をそれぞれ対応する主音声成分に加えるための戻り経路を備える、音声信号用ミキサ。
【請求項２】
ミキサバッファに供給される各音声チャネルの主音声成分および補助音声成分のボリュームを独立的に制御するミキサボリュームコントロールをさらに備える、請求項１記載のミキサ。
【請求項３】
サラウンドエンコーダをさらに備え、
ミキサバッファは左，右およびサラウンド音声チャネルを含み、サラウンドエンコーダは、サラウンド音声チャネルに加えられる音声効果処理された補助音声成分を含むサラウンド音声チャネル上の情報をエンコードして、左および右音声チャネルに与える、請求項１記載のミキサ。
【請求項４】
３つ以上の音声チャネルについてのサンプル値は複数の音声について累算される、請求項１記載のミキサ。
【請求項５】
音声効果プロセサとミキサとを含む音声効果処理システムであって、
ミキサは
各々が主音声成分および１つ以上の補助音声成分を含む３つ以上の音声チャネルについて、サンプル値をストアするためのミキサバッファ、
各音声チャネル毎の補助音声成分を音声効果プロセサに送るための送り経路、および
音声効果プロセサから各音声チャネル毎の音声効果処理された補助音声成分をそれぞれ対応する主音声成分に加えるための戻り経路を含む、音声効果処理システム。
【請求項６】
ミキサは、ミキサバッファに供給される各音声チャネルの主音声成分および補助音声成分のボリュームを独立的に制御するミキサボリュームコントロールをさらに含む、請求項５記載のシステム。
【請求項７】
ミキサはサラウンドエンコーダをさらに含み、
ミキサバッファは左，右およびサラウンド音声チャネルを含み、サラウンドエンコーダは、サラウンド音声チャネルに加えられる音声効果処理された補助音声成分を含むサラウンド音声チャネル上の情報をエンコードして、左および右音声チャネルに与える、請求項５記載のシステム。
【請求項８】
３つ以上の音声チャネルについてのサンプル値は複数の音声について累算される、請求項５記載のシステム。
【請求項９】
音声効果プロセサは各音声チャネル毎の補助音声成分に残響を付与する、請求項５記載のシステム。
【請求項１０】
音声効果プロセサは各音声チャネル毎の補助音声成分に遅延を付与する、請求項５記載のシステム。
【請求項１１】
音声効果プロセサは各音声チャネル毎の補助音声成分にコーラスを付与する、請求項５記載のシステム。
【請求項１２】
音声効果プロセサは同じ音声効果パラメータを用いて各音声チャネル毎の補助音声成分を処理する、請求項５記載のシステム。
【請求項１３】
音声効果プロセサは異なる音声効果パラメータを用いて各音声チャネル毎の補助音声成分を処理する、請求項５記載のシステム。
【請求項１４】
ビデオゲームプログラムを実行するビデオゲーム機、および
前記ビデオゲーム機に接続されかつプレーヤによって操作されてビデオゲームプログラムのためのビデオゲーム制御信号を発生する手持ちプレーヤコントローラを備え、
前記ビデオゲーム機はスピーカを駆動する音声信号を発生するためのオーディオシステムを含み、
前記オーディオシステムは音声効果プロセサとミキサとを含み、
ミキサは
各々が主音声成分および１つ以上の補助音声成分を含む３つ以上の音声チャネルについて、サンプル値をストアするためのミキサバッファ、
各音声チャネル毎の補助音声成分を音声効果プロセサに送るための送り経路、および
音声効果プロセサからの各音声チャネル毎の音声効果処理された補助音声成分をそれぞれ対応する主音声成分に加えるための戻り経路を含む、ビデオゲームシステム。
【請求項１５】
ミキサは、ミキサバッファに供給される各音声チャネルの主音声成分および補助音声成分のボリュームを独立的に制御するミキサボリュームコントロールをさらに含む、請求項１４記載のシステム。
【請求項１６】
ミキサは、サラウンドエンコーダをさらに含み、
ミキサバッファは左，右およびサラウンド音声チャネルを含み、サラウンドエンコーダはサラウンド音声チャネルに加えられる音声効果処理された補助音声成分を含むサラウンド音声チャネル上の情報をエンコードして左および右音声チャネルに与える、請求項１４記載のシステム。
【請求項１７】
３つ以上の音声チャネルについてのサンプル値は複数の音声について累算される、請求項１４記載のシステム。
【請求項１８】
音声効果プロセサは各音声チャネル毎の補助音声成分に残響を付与する、請求項１４記載のシステム。
【請求項１９】
音声効果プロセサは各音声チャネル毎の補助音声成分に遅延を付与する、請求項１４記載のシステム。
【請求項２０】
音声効果プロセサは各音声チャネル毎の補助音声成分にコーラスを付与する、請求項１４記載のシステム。
【請求項２１】
音声効果プロセサは同じ音声効果パラメータを用いて各音声チャネル毎の補助音声成分を処理する、請求項１４記載のシステム。
【請求項２２】
音声効果プロセサは異なる音声効果パラメータを用いて各音声チャネル毎の補助音声成分を処理する、請求項１４記載のシステム。
【請求項２３】
オーディオシステムにおいて音声信号をミキシングするための方法であって、
(a) 各々が主音声成分と１つ以上の補助音声成分とを含む３つ以上の音声チャネルについて、サンプル値をストアするステップ、
(b) 各音声チャネル毎に補助音声成分を音声効果プロセサに送るステップ、および
(c) 各音声チャネル毎の音声効果処理された補助音声成分を対応する主音声成分にそれぞれ加えるステップを含む、ミキシング方法。
【請求項２４】
(d) 各音声チャネルの主音声成分および補助音声成分のボリュームを独立的に制御するステップをさらに含む、請求項２３記載の方法。
【請求項２５】
３つ以上の音声チャネルは左，右およびサラウンド音声チャネルを含み、
サラウンド音声チャネルに加えられた音声効果処理された補助音声成分を含むサラウンド音声チャネル上の情報がエンコードされて左および右音声チャネルに与えられる、請求項２３記載の方法。
【請求項２６】
３つ以上の音声チャネルについてのサンプル値は複数の音声について累算される、請求項２３記載の方法。
【請求項２７】
音声効果プロセサは各音声チャネル毎の補助音声成分に残響を付与する、請求項２３記載の方法。
【請求項２８】
音声効果プロセサは各音声チャネル毎の補助音声成分に遅延を付与する、請求項２３記載の方法。
【請求項２９】
音声効果プロセサは各音声チャネル毎の補助音声成分にコーラスを付与する、請求項２３記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は音声信号をミキシングするための方法および装置に関し、特にたとえば、家庭用ビデオゲームプラットホームのようなインタラクティブグラフィクスシステムのビデオ出力を伴う音声信号をミキシングする方法および装置に関する。
【０００２】
【発明の背景および発明の概要】
多くの人々はかなりリアルな恐竜，エイリアン，生き生きとしたおもちゃおよび他の空想的な動物を含む映画をかつて見たことがある。そのようなアニメーションはコンピュータグラフィクスによって可能とされた。そのような技術を用いて、コンピュータグラフィクスのアーティストは、各オブジェクトがどのように見えるべきかや時間の経過とともに外見上どのように変化すべきかを特定し、コンピュータは、そのオブジェクトをモデル化してテレビジョンやコンピュータスクリーンのようなディスプレイに表示する。コンピュータは、表示される映像の各部分を、場面中の各オブジェクトの位置や向き，各オブジェクトを照らすように見える照明の方向，各オブジェクトの表面テクスチャ，および他の要素に正確に基づいて、色付けしまた形作るために必要な多くのタスクを実行する。
【０００３】
コンピュータグラフィクスの生成は複雑であるので、ここ数年前のコンピュータによって生成された３次元（３Ｄ）グラフィクスは、ほとんど高価な特殊なフライトシミュレータ，ハイエンドグラフィクスワークステーションおよびスーパーコンピュータに限られていた。大衆は映画や高価なテレビコマーシャルにおいてこれらのコンピュータシステムによって生成された映像のいくつかを見たが、大部分の人はグラフィクスを生成しているコンピュータに対して実際に相互作用をさせることはできない。たとえば、Nintendo64（登録商標）や今や利用可能であるパソコン用の種々の３Ｄグラフィクスカードのような比較的安価な３Ｄグラフィクスプラットフォームの利用によって、このすべてが変わった。今や、家庭や会社の比較的安価なコンピュータグラフィクスシステム上でエキサイティングな３Ｄアニメーションやシミュレーションに対して相互作用を及ぼすことができる。
【０００４】
対話型（インタラクティブ）３Ｄコンピュータグラフィクスシステムは、ビデオゲームをプレイするのにしばしば用いられる。しかしながら、「ゲームの経験」はビデオコンテンツ以上のものを必要とする。たとえば、ほとんどすべてのゲーム経験はビデオコンテンツを伴うオーディオコンテンツを含む。ここで説明されるオーディオシステムは、音声エミッタ（放射器）を３次元空間に置くことを可能にし、かつ１対のスピーカでサイコアコースティック(psycho-acoustic)な３Ｄ音声効果を発生する強力な手段を提供する。オーディオシステムは、ＤＶＤのような大容量記憶媒体から読み出された、たとえば音声サンプル，楽器波形テーブル，オーディオトラックおよびその他をストアするのに用いられるオーディオメモリを含む。音声サンプル，波形テーブル，音声トラック等は、順次読み出されてゲームオーディオコンテンツを生成するために、オーディオディジタル信号プロセサによって処理される。このコンテンツは主メモリへ転送され、そこからさらにデコーダに供給しかつスピーカに出力するために読み出される。この分離されたオーディオメモリによって、主システムメモリにアクセスしようとしている他のリソース（たとえばグラフィクスシステム）と競争する必要性を回避して、オーディオデータへのオーディオ処理回路のアクセスを改善する。
【０００５】
この発明はビデオゲームのオーディオコンテンツを増強し、特に、残響，コーラスおよび遅延のような音声効果(sound effects)を増強する。ステレオ音声システムにおいて音声効果を付与する従来の構成が図１５に示される。音声ソースからの信号が左および右チャネルＬおよびＲに分配される。左および右チャネル上の信号がタップされて、残響，コーラスおよび遅延のような左および右チャネルの音声効果を個別に与える音声効果プロセサ１０００に送られる。処理された信号が左および右チャネルに加え戻され、その結果の信号が最終的にスピーカ１００２Ｌおよび１００２Ｒから出力される。
【０００６】
図１６はサラウンド音声システムにおいて音声効果を与える従来の構成を示す。音声ソースからの信号が左，右およびサラウンドチャネルＬ，ＲおよびＳに分配される。効果プロセサ１００４に送られてすべてのチャネルからのものと合計される１つの「補助」があり、１つの「補助」が効果プロセサ１００４から戻り、すべてのチャネルに供給される。思うに、たとえば、音声ソースからの信号が大量に左チャネルにミックスされて、効果プロセサ１００４が残響を加える。図１６の構成では、残響はすべてのチャネルに平等に分配されるので、残響が中央に置かれる。したがって、図１６の構成を用いて、３次元空間内に、残響もしくは遅延およびコーラスのような他の効果を選択的に位置決めすることはできない。
【０００７】
以下に説明するミキサおよび効果プロセサは、左，右およびサラウンドチャネルのような３つ以上のチャネル上の信号に別々に効果を付与する。したがって、効果が３次元空間内において選択的に「位置決め」され得る。ミキサバッファは３つ以上の音声チャネルについてサンプル値をストアし、各音声チャネルは主音声成分および１つ以上の補助音声成分を含む。送り経路が、各音声チャネル毎に補助音声成分を音声効果プロセサに送るために設けられ、音声効果プロセサからの戻り経路が、各音声チャネル毎に音声効果処理された補助音声成分をそれぞれ対応する主音声成分に加えるために設けられる。ミキサは、ミキサバッファ内のチャネル数が効果プロセサへの／からの送り／戻りの数と同じであるという点で、相称的である。
【０００８】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【０００９】
【実施例】
図１は対話型（インタラクティブ）３Ｄコンピュータグラフィクスシステム５０の一例を示す。システム５０は対話型３Ｄビデオゲームをステレオ音声とともにプレイするのに用いられ得る。これはまた多様な他のアプリケーションにも用いられ得る。
【００１０】
この実施例において、システム５０は３次元世界のディジタル表現ないしモデルをインタラクティブにかつリアルタイムに処理することができる。システム５０は、任意の視点から、その世界の一部または全部を表示することができる。たとえば、システム５０は、手持ちコントローラ５２ａおよび５２ｂまたは他の入力デバイスからのリアルタイム入力に応答して、視点をインタラクティブに変化できる。このことによって、ゲームプレーヤは、その世界内もしくは外の誰かの目を通してその世界を見ることができる。システム５０は、リアルタイム３Ｄインタラクティブ表示を必要としないアプリケーション（たとえば２Ｄ表示の発生やおよび／またはノンインタラクティブ表示）に使用できるが、高品質の３Ｄ映像を非常に速く表示する能力は、非常にリアルでエキサイティングなゲームプレイや他のグラフィクスインタラクションを創造するのに使用され得る。
【００１１】
システム５０を用いてビデオゲームまたは他のアプリケーションをプレイするために、ユーザはまず、主ユニット５４を、カラーテレビ５６または他の表示装置に、両者の間にケーブル５８を接続することによって、接続する。主ユニット５４はカラーテレビ５６を制御するためのビデオ信号およびオーディオ信号を発生する。ビデオ信号はテレビジョン画面５９上に表示されている映像を制御するものであり、オーディオ信号はテレビのステレオスピーカ６１Ｌおよび６１Ｒを通して音声として再生される。
【００１２】
ユーザはまた主ユニット５４を電源につなぐ必要がある。この電源は従来のＡＣアダプタ（図示せず）であってよく、そのＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、主ユニット５４を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例ではバッテリが用いられてもよい。
【００１３】
ユーザは主ユニット５４を制御するために手持ちコントローラ５２ａおよび５２ｂを用いる。コントロール６０は、たとえば、３Ｄ世界内においてテレビ５６に表示されているキャラクタが移動すべき方向（上または下、左または右、近づいてまたは遠ざかって）を指示するために使用され得る。コントロール６０は、また他のアプリケーションのための入力（たとえばメニュー選択，ポインタ／カーソル制御，その他）を与える。コントローラ５２は多様な形態をとり得る。この実施例においては、図示されるコントローラ５２は、各々ジョイスティック，押しボタンおよび／または方向スイッチのようなコントロール６０を含む。コントローラ５２は、ケーブルによって、もしくは電磁波（たとえば電波または赤外線）を介してワイヤレスで、主ユニット５４に接続され得る。
【００１４】
ゲームのようなアプリケーションをプレイするために、ユーザはビデオゲームもしくはプレイしたいと思う他のアプリケーションをストアしている適宜の記憶媒体６２を選択し、その記憶媒体を主ユニット５４のスロット６４に差し込む。記憶媒体６２は、たとえば、特別にエンコードされおよび／または記号化された光学的ならびに／もしくは磁気的ディスクであってよい。ユーザは主ユニット５４をオンするために電源スイッチ６６を操作し、主ユニットがその記憶媒体６２にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザは主ユニットに入力を与えるためにコントローラ５２を操作する。たとえば、コントロール６０を操作することによってゲームもしくは他のアプリケーションをスタートさせる。他のコントロール６０を動かすことによって、動画キャラクタを異なる方向に移動させ、または３Ｄ世界におけるユーザの視点を変化させる。記憶媒体６２にストアされている具体的なソフトウェアによって、コントローラ５２上の種々のコントロール６０は異なる時間で異なる機能を達成することができる。
【００１５】
全体システムの例
図２はシステム５０の例示的なコンポーネントのブロック図であり、重要なコンポーネントは、
・主プロセサ（ＣＰＵ）１１０，
・主メモリ１１２，および
・グラフィクス／オーディオプロセサ１１４を含む。
【００１６】
この実施例において、主プロセサ１１０（たとえばＩＢＭパワーＰＣ７５０の改良版）は、手持ちコントローラ５２（および／または他の入力デバイス）からの入力をグラフィクス／オーディオプロセサ１１４を通して受ける。主プロセサ１１０はユーザ入力にインタラクティブに応答し、光ディスクドライブのような大容量記憶媒体アクセス装置１０６を介して、たとえば外部記憶媒体６２から供給されるビデオゲームもしくは他のプログラムを実行する。一例として、ビデオゲームプレイの状況では、主プロセサ１１０は、多様なインタラクティブ制御機能に加えて、衝突検出および動画処理を実行する。主メモリ１１２は、たとえばモーゼスコーポレーション(Moses Corporation)によって作られた１ＴＳＲＡＭのようなＳＲＡＭを含み、これは自動的に内部リフレッシュ動作を実行する。
【００１７】
この実施例では、主プロセサ１１０は３Ｄグラフィクス／オーディオコマンドを発生し、それらをグラフィクス／オーディオプロセサ１１４に送る。グラフィクス／オーディオプロセサ１１４はこれらのコマンドを処理し、ディスプレイ５９上での可視映像を生成し、ステレオスピーカ６１Ｒおよび６１Ｌもしくは他の適宜の音声発生デバイス上でのステレオ音声を生成する。
【００１８】
実施例のシステム５０はビデオエンコーダ１２０を含み、このビデオエンコーダは、グラフィクス／オーディオプロセサ１１４からの映像信号を受けて、その映像信号をコンピュータモニタや家庭用テレビ５６のような標準的な表示装置上での表示に適したアナログおよび／またはディジタルビデオ信号に変換する。システム１００はまたオーディオコーデック（圧縮器／伸長器）１２２を含み、このオーディオコーデックはディジタル化されたオーディオ信号を圧縮しかつ伸長するとともに、必要に応じてディジタルオーディオ信号のフォーマットとアナログオーディオ信号のフォーマットとの間で変換を行う。オーディオコーデック１２２はバッファ１２４を介してオーディオ入力を受けることができ、処理（たとえば、プロセサが生成したおよび／または大容量記憶媒体アクセス装置１０６のストリームオーディオ出力を介して受信した他のオーディオ信号とのミキシング）するために、そのオーディオ入力をグラフィクス／オーディオプロセサ１１４に与える。この実施例におけるグラフィクス／オーディオプロセサ１１４は、オーディオタスクに利用可能なオーディオメモリ１２６にオーディオ関連情報をストアすることができる。グラフィクス／オーディオプロセサ１１４は、結果的に得られるオーディオ出力信号を、圧縮およびアナログ信号への変換のために、オーディオコーデック１２２に与え、したがってそのオーディオ出力信号が（たとえばバッファアンプ１２８Ｌおよび１２８Ｒを介して）スピーカ６１Ｌおよび６１Ｒによって再生され得る。
【００１９】
グラフィクス／オーディオプロセサ１１４はシステム１００内に存在するであろう種々の付加的なデバイスと通信する能力を有する。たとえば、パラレルディジタルバス１３０は大容量記憶媒体アクセス装置１０６および／または他のコンポーネントと通信するために用いられる。シリアル周辺バス１３２は多様な周辺機器または、たとえば、
・ＰＲＯＭおよび／またはＲＴＣ（リアルタイムクロック）１３４，
・モデム１３６もしくは他のネットワークインタフェース（それはシステム１００を、プログラム命令および／またはデータがダウンロードもしくはアップロードされ得るインターネットあるいは他のディジタルネットワークのようなテレコミュニケーションネットワーク１３８に接続する），および
・フラッシュメモリ１４０を含む他のデバイスと通信する。
別の外部シリアルバス１４２は、付加的な拡張メモリ１４４（たとえばメモリカード）もしくは他のデバイスと通信するために使用され得る。コネクタが種々のデバイスをバス１３０，１３２および１４２に接続するために使用され得る。
【００２０】
グラフィクス／オーディオプロセサの例
図３は実施例のグラフィクス／オーディオプロセサ１１４を示すブロック図である。或る実施例においては、グラフィクス／オーディオプロセサ１１４はシングルチップＡＳＩＣであってよい。この実施例においては、グラフィクス／オーディオプロセサ１１４は、
・プロセサインタフェース１５０，
・メモリインタフェース／コントローラ１５２，
・３Ｄグラフィクスプロセサ１５４，
・オーディオディジタル信号プロセサ（ＤＳＰ）１５６，
・オーディオメモリインタフェース１５８，
・オーディオインタフェース／ミキサ１６０，
・周辺コントローラ１６２，および
・表示コントローラ１６４を含む。
【００２１】
３Ｄグラフィクスプロセサ１５４はグラフィクス処理タスクを実行する。オーディオディジタル信号プロセサ１５６はオーディオ処理タスクを実行する。表示コントローラ１６４は主メモリ１１２からの映像情報にアクセスし、表示装置１０２上での表示のためにその映像情報をビデオエンコーダ１２０に与える。オーディオインタフェース／ミキサ１６０はオーディオコーデック１２２をインタフェースし、また異なるソースからのオーディオ（たとえば、大容量記憶媒体アクセス装置１０６からのオーディオストリーム，オーディオＤＳＰ１５６の出力，およびオーディオコーデック１２２を通して受ける外部オーディオ入力）をミックスすることができる。プロセサインタフェース１５０は主プロセサ１１０およびグラフィクス／オーディオプロセサ１１４の間のデータおよび制御インタフェースを提供する。
【００２２】
メモリインタフェース１５２はグラフィクス／オーディオプロセサ１１４とメモリ１１２との間のデータおよび制御インタフェースを提供する。この実施例においては、主プロセサ１１０は、プロセサインタフェース１５０およびグラフィクス／オーディオプロセサ１１４の一部であるメモリインタフェース１５２を介して、主メモリ１１２にアクセスする。周辺コントローラ１６２はグラフィクス／オーディオプロセサ１１４と上で述べた種々の周辺機器との間のデータおよび制御インタフェースを提供する。オーディオメモリインタフェース１５８はオーディオメモリ１２６とのインタフェースを提供する。
【００２３】
グラフィクスパイプラインの例
図４は図３の３Ｄグラフィクスプロセサ１５４をより詳細に示すグラフィクス処理システムを示す。この３Ｄグラフィクスプロセサ１５４は、とりわけ、コマンドプロセサ２００および３Ｄグラフィクスパイプライン１８０を含む。主プロセサ１１０はデータストリーム（たとえばグラフィクスコマンドストリームおよび表示リスト）をコマンドプロセサ２００に通信する。主プロセサ１１０はメモリレイテンシを最小化するために２レベルキャッシュ１１２を有し、さらにまたグラフィクス／オーディオプロセサ１１４に向けられたキャッシュされていないデータストリームのための書込収集(write-gathering)バッファ１１１を有する。この書込収集バッファ１１は部分キャッシュラインを全キャッシュラインに集め、バスの最大使用時に、グラフィクス／オーディオプロセサ１１４からのデータを１つのキャッシュラインに送る。
【００２４】
コマンドプロセサ２００は主プロセサ１１０からの表示コマンドを受け、それらを解剖し、メモリコントローラ１５２を介して共用メモリ１１２からのそのコマンドを処理するに必要な付加的なデータを入手する。コマンドプロセサ２００は、２Ｄおよび／または３Ｄ処理およびレンダリングのために、頂点コマンドのストリームをグラフィクスパイプライン１８０に与える。グラフィクスパイプライン１８０はこれらのコマンドに基づいて映像を生成する。結果として得られた映像情報は、表示コントローラ／ビデオインタフェースユニット１６４によるアクセスのために主メモリ１２０に転送され得て、この映像情報は表示装置１５６上にパイプライン１８０のフレームバッファ出力を表示する。
【００２５】
図５はグラフィクスプロセサ１５４を用いて実行される処理を図解的に示すブロック論理フロー図である。主プロセサ１０は、グラフィクスコマンドストリーム２１０，表示リスト２１２および頂点アレイ２１４を主メモリ１１２にストアし、ポインタをプロセサ／バスインタフェース１５０を介してコマンドプロセサ２００に送る。主プロセサ１１０は主メモリ１１０内に割り付けられた１つ以上のグラフィクスＦＩＦＯバッファ２１０にグラフィクスコマンドをストアする。
このコマンドプロセサ２００は、
・同期／フロー制御および負荷バランスのためにグラフィクスコマンドを受けかつバッファするオンチップＦＩＦＯメモリバッファ２１６を介して主メモリ１１２からのコマンドストリーム，
・オンチップコールＦＩＦＯメモリバッファ２１８を介して主メモリ１１２からの表示リスト２１２，および
・コマンドストリームからおよび／または主メモリ１１２の頂点アレイ２１４からの頂点アトリビュートを頂点キャッシュ２２０を介して取り込む。
【００２６】
コマンドプロセサ２００はコマンド処理動作２００ａを実行し、そのコマンド処理動作２００ａはアトリビュート形式を浮動小数点フォーマットに変換し、結果的に得られた完全頂点ポリゴンデータをレンダリング／ラスタライゼーションのためにグラフィクスパイプライン１８０に与える。プログラマブルメモリ調停回路１３０（グラフィクスメモリ要求調停回路：図４）は、グラフィクスパイプライン１８０，コマンドプロセサ２００および表示コントローラ／ビデオインタフェースユニット１６４の間での共用主メモリ１１２へのアクセスを調停する。
【００２７】
図４は、グラフィクスパイプライン１８０が
・変換ユニット３００，
・セットアップ／ラスタライザ４００，
・テクスチャユニット５００，
・テクスチャ環境ユニット６００，および
・ピクセルエンジン７００を含むことを示す。
【００２８】
変換ユニット３００は多様な２Ｄおよび３Ｄ変換および他の動作３００ａ（図５）を実行する。変換ユニット３００は変換処理３００ａに用いられるマトリクスをストアするための１つ以上のマトリクスメモリ３００ｂを含む。変換ユニット３００は、入来する頂点毎のジオメトリをオブジェクト空間からスクリーン空間へ変換し、そして入来するテクスチャ座標を変換しかつ投影テクスチャ座標（３００ｃ）を計算する。変換ユニット３００はまたポリゴンクリッピング／カリング(clipping/culling)３００ｄを実行する。変換ユニット３００ｂによってまた達成される照明処理３００ｅが、この実施例では８つまでの独立した照明について、頂点毎に照明計算を行う。変換ユニット３００は、エンボス(embossed)タイプのバンプマッピング効果およびポリゴンクリッピング／カリング動作（３００ｄ）のために、テクスチャ座標を発生する（３００ｃ）。
【００２９】
セットアップ／ラスタライザ４００はセットアップユニットを含み、このセットアップユニットは、変換ユニット３００からの頂点データを受け、三角形セットアップ情報を、エッジラスタライゼーション，テクスチャ座標ラスタライゼーションおよびカラーラスタライゼーションを実行する１つ以上のラスタライザユニット（４００ｂ）に送る。
【００３０】
テクスチャユニット５００は、オンチップテクスチャメモリ（ＴＭＥＭ）５０２を含んでもよく、たとえば、
・主メモリ１１２からのテクスチャ５０４の抽出、
・たとえばマルチテクスチャ処理，ポストキャッシュテクスチャ伸長，テクスチャフィルタリング，エンボシング，投影テクスチャの使用を通しての陰影付け，およびアルファトランスパーレンシおよびデプスを用いるＢＬＩＴを含むテクスチャ処理（５００ａ）、
・バンプマッピング，偽(psedo)テクスチャおよびテクスチャタイル(tiling)効果（５００ｂ）のためのテクスチャ座標置換を計算するバンプマップ処理、および
・間接テクスチャ処理（５００ｃ）を含むテクスチャリングに関連する種々のタスクを実行する。
【００３１】
テクスチャユニット５００はテクスチャ環境処理（６００ａ）のためにフィルタされたテクスチャ値をテクスチャ環境ユニット６００に出力する。テクスチャ環境ユニット６００は、ポリゴンおよびテクスチャカラー／アルファ／デプスをブレンドし、また逆レンジベース(reverse range based)のフォグ効果を達成するために、テクスチャフォグ処理（６００ｂ）を実行する。テクスチャ環境ユニット６００はたとえばカラー／アルファ変調，エンボシング，詳細テクスチャ，テクスチャスワッピング，クランピングおよびデプスブレンディングに基づく多様な他の環境関連機能を実行する多段階を提供する。
【００３２】
ピクセルエンジン７００はデプス（ｚ）比較（７００ａ）およびピクセルブレンディング（７００ｂ）を実行する。この実施例では、ピクセルエンジン７００はデータを埋め込み（オンチップ）フレームバッファメモリ７０２にストアする。グラフィクスパイプライン１８０は、フレームバッファおよび／またはテクスチャ情報をローカルにストアするために１つ以上の埋め込みＤＲＡＭメモリ７０２を含む。ｚ比較７００ａは、現在有効なレンダリングモードに依存して、グラフィクスパイプライン１８０におけるより早い段階で実行される（たとえば、ｚ比較は、もしアルファブレンディングが要求されていないならば早くに実行され得る）。このピクセルエンジン７００は表示コントローラ／ビデオインタフェースユニット１６４による主メモリ１１２へのアクセスのために、オンチップフレームバッファ７０２を周期的に書き込むコピー動作７００ｃを含む。このコピー動作７００ｃはまた動的テクスチャ合成効果のために、埋め込みフレームバッファ７０２の内容を主メモリ１１２中のテクスチャにコピーするために使用され得る。アンチエイリアシング(anti-aliasing)および他のフィルタリングがコピー動作中に実行され得る。最終的に主メモリ１１２にストアされるグラフィクスパイプライン１８０のフレームバッファ出力は、表示コントローラ／ビデオインタフェースユニット１６４によってフレーム毎に読み出される。表示コントローラ／ビデオインタフェース１６４は表示装置５６上での表示のためにディジタルＲＧＢピクセル値を与える。
【００３３】
オーディオシステムの例
オーディオＤＳＰ１５６はピッチ変調および音声データと効果データとのミキシングを行う。オーディオＤＳＰ１５６は、オーディオサンプルのようなオーディオ関連情報をストアするために用いられ得る大容量（たとえば１６ＭＢもしくはそれ以上）のオーディオメモリ１２６（補助ＲＡＭ−ＡＲＡＭ）によって増大される。オーディオはオーディオコーデック１２２を介してスピーカ６１Ｌおよび６１Ｒに送られ、そのオーディオコーデックはＤ／Ａ変換器を含む。大容量記憶媒体６２からのオーディオストリームがゲーム実行中にハイファイオーディオを再生するために効率的な方法を提供する。
【００３４】
図６は図３に示すオーディオＤＳＰ１５６，オーディオメモリインタフェース１５８およびオーディオインタフェース／ミキサ１６０をより詳細に示すブロック図である。サンプルレート変換器８０１は大容量記憶媒体６２からのものであろうオーディオストリームを４８ｋＨｚまたは３２ｋＨｚでサンプリングし、Ｌ／Ｒボリュームコントロール８０３はサンプルされたオーディオの左および右チャネルのボリュームレベルを制御する。オーディオストリームは完全に主メモリ１１２をバイパスし、それによってメモリおよびプロセサバンド幅を保存する。大容量記憶媒体６２のオーディオデータがたとえばＡＤＰＣＭフォーマットにエンコードされる場合、大容量記憶媒体アクセス装置１０６はＡＤＰＣＭデータをＰＣＭサンプル（たとえば１６ビット）に自動的にデコードしてサンプルレート変換器８０１に供給する。
【００３５】
ＤＭＡチャネル８０５は主メモリ１１２中の任意の記憶位置からのデータのＦＩＦＯバッファ８０７への転送を可能にする。ミキサ８０９はサンプルレート変換器８０１の出力とＦＩＦＯバッファ８０７の出力とをミックスし、その結果がオーディオコーデック１２２に出力される。オーディオコーデック１２２のサンプルレートはたとえば４８ｋＨｚであり、オーディオコーデック１２２はステレオ１６ビットＰＣＭをアナログ信号に変換するための標準的なシグマデルタ(Sigma Delta)コーデックであってよい。
【００３６】
ＤＳＰコア８１１は１００ＭＨｚの命令クロックを有し、１６ビットのデータワードとアドレスとを用いる。ＤＳＰコア８１１は、ＲＡＭ領域（たとえば８ｋバイト）およびＲＯＭ領域（たとえば８ｋバイト）を含むワード（１６ビット）アドレス可能命令メモリ８１３、およびＲＡＭ領域（たとえば８ｋバイト）およびＲＯＭ領域（たとえば４ｋバイト）を含むワードアドレス可能データメモリ８１５を用いる。ＤＳＰＤＭＡ８１９は、主メモリ１１２とＤＳＰデータ／命令ＲＡＭ領域との間でデータを転送し、またはＤＳＰデータ／命令ＲＯＭ領域から主メモリ１１２へデータを転送するために設けられる。命令メモリ８１３へのアクセスを要求する２つのものがあり、それはＤＳＰＤＭＡ８１９およびＤＳＰ８１１である。命令ＲＡＭ領域はＤＳＰＤＭＡ８１９によって読み出され／書き込まれ、ＤＳＰ８１１によっては読み出されるだけである。命令ＲＯＭ領域はＤＳＰ８１１によって読み出されるだけである。データメモリ８１５へのアクセスを要求する３つのものは、ＤＳＰＤＭＡ８１９，データバス１およびデータバス２である。メールボックスレジスタ８１７が主プロセサ１１０との通信のために設けられる。このメールボックスレジスタ８１７は、主プロセサ１１０からＤＳＰコア８１１への通信のための第１メールボックスレジスタと、ＤＳＰコア８１１から主プロセサ１１０への通信のための第２メールボックスレジスタとを含む。各々のレジスタはたとえば３２ビット幅である。オーディオメモリ１２６から読み出しかつそこへ書き込むために、ＤＳＰコア８１１に代えて、アクセラレータ８２１が利用可能である。オーディオメモリ１２６のためにメモリコントローラ８２３が設けられ、とりわけ、オーディオメモリ１２６と主メモリ１１２との間のデータ授受のために、ＤＳＰコア８１１と主プロセサ１１０によって制御される専用ＤＭＡチャネル８２５との間でオーディオメモリへのアクセス要求を調停するように動作する。一般的に、オーディオメモリ１２６とＤＳＰデータメモリ８１５との間のデータ授受はＤＭＡチャネル８２５に対する優先権を有する。メモリコントローラ８２３およびＤＭＡチャネル８２５の詳細を含むオーディオシステムのさらに詳細は「オーディオメモリにおけるデータプリフェッチのための方法および装置」という名称の同時係属中の出願（特願２０００−３９４１３６）にあり、したがってここではその内容を参照によって取り入れる。デコーダ８２７はそこへ供給されるオーディオサンプルをデコードする。オーディオメモリ１２６は一義的にはオーディオ関連データをストアするし、１６ＭＢのＳＤＲＡＭ（合計４８ＭＢまでに拡張可能）を備える。
【００３７】
オーディオデータの記憶要求を減じる手助けのために、種々の圧縮および伸長方法が利用され得る。ＡＤＰＣＭは適応差分ＰＣＭと呼ばれる。この方法は上で述べたオーディオシステムによって生成された音声を圧縮／伸長し、大容量記憶媒体６２上の音声を圧縮／伸長するために使用され得る。種々のＡＤＰＣＭのアルゴリズムがあり、オーディオシステムによって生成された音声と大容量記憶媒体６２上の音声とのために同じアルゴリズムが用いられる必要はない。デコーダ８２７がオーディオシステムによって生成された音声データの実行時ＡＤＰＣＭ伸長を提供し、大容量記憶媒体アクセス装置１０６が大容量記憶媒体６２からの音声データの実行時(runtime)ＡＤＰＣＭ伸長を提供する。８ビットＰＣＭ圧縮／伸長方法がオーディオシステムによって生成された音声データのためにまた利用可能である。したがって、デコーダ８２７がまた８ビットのＰＣＭ圧縮された音声データの実行時伸長を提供する。もちろん、上で述べた圧縮／伸長方法は単なる一例であって、これに限定されるものではない。
【００３８】
図７はＤＳＰＤＭＡ８１９の詳細を図解するブロック図である。上で述べたように、ＤＳＰＤＭＡ８１９は、主メモリ１１２から／へＤＳＰデータ／命令ＲＡＭ領域へ／から、もしくはＤＳＰデータ／命令ＲＯＭ領域から主メモリ１１２へデータを転送する機能を果たす。ＤＳＰＤＭＡ８１９はブロック長，主メモリアドレスおよびＤＳＰメモリアドレスを規定するために使用される３つのレジスタ７９６ａ−７９６ｃを含む。２×３２バイトのＦＩＦＯ７９２がデータ転送のために使用され、６４ビットデータバスがＦＩＦＯ７９２とオーディオメモリ１２６との間の高速データ転送を提供する。主メモリスタートアドレスは４バイト境界(boundary)に配置され、ＤＳＰスタートアドレスが２ワード（３２ビット）境界に配置される。ブロック長は４バイトの倍数である。ＤＳＰＤＭＡ８１９の制御レジスタは、ＤＭＡ転送方向を指定する第１ビットと、ＤＭＡ転送にデータメモリが含まれるのか命令メモリが含まれるのかを特定する第２ビットとを含む。制御レジスタはまた、制御ロジック７９０を介してＤＳＰＤＭＡステータスを与えるためのＤＳＰＤＭＡビジービットを含む。このビジービットはＤＳＰＤＭＡが能動化されるとセットされ、ブロック長レジスタ内のブロック長が０になったときクリアされる。
【００３９】
ＤＳＰＤＭＡ８１９は、ブロック長レジスタ７９６ａに書き込むＤＳＰ８１１によって能動化される。ＤＳＰＤＭＡ８１９が能動化されると、このＤＳＰＤＭＡ８１９は、メモリコントローラ１５２が主メモリへのアクセスを承諾することを要求する。アクセスが承諾されると、データ転送が開始される。データ転送が引き続き行われているとき、アドレス変更回路７９８および７９９が、レジスタ７９６ｂおよび７９６ｃにある主メモリ１１２のアクセスアドレスおよびＤＳＰメモリのアクセスアドレスをそれぞれ増加する。レジスタ７９６ａ内のブロック長はブロックが転送されるに応じて、ブロック長変更回路７９７に従って減少される。ブロック長レジスタが０になるまでデータ転送が継続し、そしてＤＭＡ動作が停止される。データ整列およびＤＳＰメモリ制御は制御回路７９４によって行われる。
【００４０】
主メモリ１１２からＤＳＰメモリへデータが転送されるとき、もしＦＩＦＯ７９２が満杯であれば、ＤＳＰＤＭＡ８１９はＦＩＦＯが満杯でなくなるのを待ち、そして主メモリ１１２から再補充する。ＦＩＦＯ７９２が空でなければ、ＤＭＡはＦＩＦＯが空になるまでＦＩＦＯのデータをＤＳＰメモリに転送する。ＤＳＰメモリから主メモリ１１２にデータが転送されるとき、もしＦＩＦＯ７９２が空であれば、ＤＳＰＤＭＡ８１９はＦＩＦＯが空でなくなるのを待ち、次いで、ＦＩＦＯのデータを主メモリ１１２に転送する。もしＦＩＦＯが満杯でなければ、ＤＭＡはＦＩＦＯが満杯になるまでＤＳＰメモリからＦＩＦＯを補充する。
【００４１】
ＤＳＰＤＭＡに関連するレジスタの例が表１−表５に示される。
【００４２】
【表１】
0004570766.tif 000002
【００４３】
【表２】
0004570766.tif 000003
【００４４】
【表３】
0004570766.tif 000004
【００４５】
【表４】
0004570766.tif 000005
【００４６】
【表５】
0004570766.tif 000006
【００４７】
実施例のシステムにおいて、命令ＲＡＭは２５６×６４ビットの同期式１方向デュアルポートＳＲＡＭの４つのコピーで形成され、命令ＲＯＭは２０４８×１６ビットの同期式シングルポートＲＯＭの２つのコピーで形成される。命令ＲＡＭおよび命令ＲＯＭは互いに独立しており、したがって、命令ＲＡＭについての読出／書込ＤＭＡ動作が実行されている間、ＤＳＰコア８１１は命令ＲＯＭにアクセスできる。さらに、ＤＳＰＤＭＡ８１９が命令ＲＡＭに書き込んでいるとき、ＤＳＰコア８１１は命令ＲＡＭを読み出しできる。ハードウェアによる競合を回避するために、同時読出／書込のための書込および読出アドレスは異なるようにされるべきである。
【００４８】
データＲＡＭは４ページで構成され、各ページは１ｋワードのサイズである。データＲＯＭは２ｋワードのサイズを有する１ページで構成される。１つのデータＲＡＭのページは２５６×１６ビットの同期式１方向デュアルポートＳＲＡＭの４つのコピーで形成され、データＲＯＭのページは２０４８×１６ビットの同期式シングルポートＲＯＭで形成される。各ページは、上記した３つの要求者に接続するために固有のデータ，アドレスバスおよび読出／書込制御信号を有するように、他のページから独立している。ＤＳＰバス１および２のためのデータ入力／出力ポートは１６ビット幅であり、ＤＳＰＤＭＡ８１９のためのデータ入力／出力ポートは６４ビットである。この構成において、３つの要求者について同時に３つまでのページがアクティブとされ得る。
【００４９】
実施例のシステムにおいて、各ＳＲＡＭのページは１つの読出または１つの書込もしくは１つの読出と１つの書込とによってアクセスされ得るが、２つの読出または２つの書込ではアクセスできない。読出はＤＳＰバス１または２もしくはＤＳＰＤＭＡ読出であり、書込はＤＳＰバス１または２もしくはＤＳＰＤＭＡの書込である。ＲＯＭのページは１つの読出によってのみアクセスされ得て、その読出はＤＳＰバス１または２の読出である。ＤＳＰＤＭＡ８１９はデータＲＯＭを読み出すことはできない。ページがＤＳＰＤＭＡによって読み出されているときには、ＤＳＰ８１１はそのページを書込または他のページを読出／書込できる。ページがＤＳＰＤＭＡ８１９によって書き込まれているとき、ＤＳＰ８１１はそのページを読出できまたは他のページを読出／書込できる。ハードウェアによる競合を回避するために、ＤＳＰ読出およびＤＭＡ書込またはＤＳＰ書込およびＤＭＡ読出が同じアドレス位置上で生じないようにしなければならない。ＤＳＰ８１１はＤＭＡが読出中のページを読出することはできず、ＤＳＰ８１１はＤＭＡが書込中のページに書き込むことはできない。
【００５０】
システムを初期化する間、実行時オーディオライブラリがオーディオＤＳＰ１５６にダウンロードされる。このオーディオライブラリは、主プロセサ１１０によって作られるコマンドリストにあるコマンドに従って音声を処理しかつミックスするために、オーディオＤＳＰ１５６によって使用される。コマンドリストは主メモリ１１２にストアされる。オーディオＤＳＰ１５６は主メモリ１１２からコマンドを引き出し、それをそこにダウンロードされた実行時オーディオライブラリに従って実行する。図８および図９は音声を再生するためのデータフローおよび制御フローをそれぞれ図解する。図８に示すように、音声サンプルは大容量記憶媒体６２から周辺（Ｉ／Ｏ）コントローラ１６２を介して主メモリ１１２に読み込まれ、かつその主メモリ１１２からＡＲＡＭＤＭＡ８２５を介してオーディオメモリ１２６に読み込まれる。音声サンプルはアクセラレータ８２１を介してＤＳＰコア８１１によって読み出され、このＤＳＰコア８１１はその音声サンプルを処理／ミックスする。処理／ミックスされた音声サンプルは、主メモリ１１２内にバッファされ、次いで、オーディオコーデック１２２を介してのスピーカ６１Ｌおよび６１Ｒへの出力のために、オーディオインタフェースＦＩＦＯ８０７に転送される。図９に示すように、ゲームアプリケーションは音声の必要性を最終的に指令する。このゲームアプリケーションはオーディオシステム（主プロセサ）実行時アプリケーションへのコールをし、その実行時アプリケーションはオーディオＤＳＰ１５６のためのコマンドリストを発生する。このコマンドリストを実行する際に、オーディオＤＳＰ１５６は適宜の音声サンプルを抽出し、それを必要に応じて処理する。
【００５１】
音楽合成のためのデータおよび制御フローは図８に示す音声サンプルについてのそれと同様である。大容量記憶媒体６２からの楽器波形テーブルが主メモリ１１２を介してオーディオメモリ１２６にストアされる。オーディオＤＳＰ１５６は、オーディオシステム（主プロセサ）実行時アプリケーションによって発生されたコマンドを受け取ると、必要な楽器サンプルを抽出し、それらを処理しかつミックスし、得られる結果を主メモリ１１２にストアする。その後、その結果がオーディオコーデック１２２を介してのスピーカ６１Ｌおよび６１Ｒへの出力のためにオーディオインタフェースＦＩＦＯ８０７に転送される。オーディオシステム（主プロセサ）実行時アプリケーションによって発生されたコマンドは楽譜によって駆動され、その楽譜は大容量記憶媒体６２から主メモリ１１２に読み込まれ、そしてゲームのコマンドに従ってオーディオシステム（主プロセサ）実行時アプリケーションによって処理されかつ順番に配列される。
【００５２】
オーディオシステム（主プロセサ）実行時アプリケーションはまたソフトウェアストリームを提供するためにオーディオトラックの再生およびミキシングを管理する。ソフトウェアストリームは１つ以上のオーディオトラックの同時再生を許容し、或る程度の双方向性（インタラクティビティ）を提供する。たとえばゲームが、たとえば１つのトラックから他のトラックにフェードインしてプレーヤの気分に影響を与える。一般的には、異なるオーディオトラックが個々の音声サンプルとしてオーディオメモリ１２６にバッファされる。オーディオＤＳＰ１５６はそしてトラックを引き出しそれらを他の音声としてミックスする。
【００５３】
ここで述べるオーディオシステムは音声エミッタの３次元空間内への配置を許容する。これは次のような特徴、
・ボリュームおよびパンニング制御，
・ピッチ変調（ドップラー効果），
・左および右チャネル間の位相シフトによる初期時間遅延，および
・ＦＩＲフィルタ（ＨＲＴＦおよび環境効果）によって達成される。
【００５４】
これらの特徴および主プロセサベースの以下に説明する効果処理が一緒に、１対のスピーカでのサイコアコースティックな３次元音声効果を発生する強力な手段を提供する。
【００５５】
音声処理パイプラインが図１０に示され、その図１０には次のようなステップが含まれる。
【００５６】
ステップ１：オーディオＤＳＰ１５６によってオーディオメモリ１２６からサンプルが読み出される。
【００５７】
ステップ２：オーディオメモリ１２６からのＡＤＰＣＭおよび８ビットＰＣＭサンプルがデコーダ８２７によってデコードされかつそのデコードされたサンプルが第１サンプルレート変換器に供給される。
【００５８】
ステップ３：オーディオメモリ１２６からの１６ビットＰＣＭサンプルが第１サンプルレート変換器に直接送られる。
【００５９】
ステップ４：サンプルレート変換器は入来サンプルのピッチを調節する。
【００６０】
ステップ５：ＦＩＲフィルタはオプションのユーザ規定フィルタをサンプルに適用する。
【００６１】
ステップ６：ボリュームランプ（傾斜）がボリュームエンベロープ調音のためにサンプルにボリュームランプを与える。
【００６２】
ステップ７：ミキサが３２ｋＨｚのサンプリングレートでかつ２４ビットの精度でサンプルをミックスする。
【００６３】
ステップ１−７が各音声毎に繰り返される。すべての音声が処理されかつミキサバッファに累算されたとき、次のステップ１および２が生じる。
【００６４】
ステップ１：ドルビーサラウンドおよび主プロセサ（ホスト）ベースの効果（残響およびコーラスのような）が、ミックスされた音声に与えられる。
【００６５】
ステップ２：サンプルは２４ビットから１６ビットの精度に切り縮められ、そのデータがオーディオコーデック１２２による出力のために４８ｋＨｚのサンプルレートに変換され、その結果のデータが主メモリ１１２に出力される。
【００６６】
上述のホストベースの効果を付与するためのデュアル効果（補助）バスを備える実施例のミキサを、図１１および図１２を参照して説明する。このミキサは、効果（補助）送り／戻りと同じ数のミキサ／アキュムレータチャネル（すなわち、３つ−左，右およびサラウンド）があるという意味において、相称的である。したがって、図１２に示すミキサは３×３相称的ミキサである。
【００６７】
図１１を参照して、オーディオシステムは３つのオーディオバス、すなわち、
・主バス９００，
・補助Ａバス（第１効果バス）９０２，および
・補助Ｂバス（第２効果バス）９０４を支持する。
【００６８】
これらのバスの各々は３つのチャネル、すなわち
・左，
・右，および
・サラウンドを含む。
【００６９】
したがって、このシステムは、主オーディオバス９００および２つの効果バス（補助Ａおよび補助Ｂ）９０２および９０４についてのフルドルビーステレオサラウンドのための本来的な支持を提供する。この補助Ａおよび補助Ｂ効果バス９０２および９０４は図１１において「効果Ａ」および「効果Ｂ」として示されている効果処理アルゴリズムにオーディオデータを分配する。これらのアルゴリズムは主プロセサ１１０によって実行され、その結果がミキサ出力に加え戻される。効果の例は、残響，コーラスおよび遅延である。これらの効果の詳細な説明は、たとえば、ホームページwww.harmony-central.com/Effects/Articles/Reverb/; www.harmony-central.com/Effects/Articles/Delay/;およびwww.harmony-central.com/Effects/Articles/Chorus/において利用可能なスコットリーマン（Scott Lehman）による一連の記事に見られ、それらの内容をここに参照によって取り入れる。プログラマはもちろん他の効果を開発し得るであろうし、この発明はこれらに限定されるものではない。
【００７０】
図１２は実施例の相称的３×３ミキサのより詳細な図解図である。乗算器９１０ａ−９１０ｉを用いることによって、ミキサはまず各バスのチャネル毎のボリューム値に対して入力サンプルを乗算する。その結果が、加算器９１２ａ−９１２ｉを用いるミキサバッファの左，右およびサラウンドチャネルのためのアキュムレータ／ミキサバス上にストアされている累算値に加算される。バッファにおけるすべての音声の累算の後、バッファの補助Ａおよび補助Ｂの成分は送り経路９１４ａ−９１４ｃを介して効果処理のために、主プロセサ１１０によって実行される効果処理アルゴリズムに与えられる。具体的には、左チャネルの補助Ａおよび補助Ｂ成分，右チャネルの補助Ａおよび補助Ｂ成分，およびサラウンドチャネルの補助Ａおよび補助Ｂ成分が、ＤＳＰＤＭＡ８１９を介して、送り経路９１４ａ−９１４ｃを通して効果処理のために主メモリ１１２に与えられる。主プロセサ１１０による効果処理は、チャネル毎の信号に基づいて、左，右およびサラウンドチャネル各々について独立的に実行される。具体的な一例においては、効果パラメータ（たとえば残響量や遅延量）はチャネルの各々について同じである。各チャネルについて異なるのは処理が実行される累算されたオーディオ信号の量である。もちろん、この発明はこのことに限定されず、チャネル毎の効果パラメータが異ならされてもよい。
【００７１】
ミキサは、次いで、ＤＳＰＤＭＡ８１９を介して主メモリ１１２から効果処理の結果を受け、戻り経路９１６ａ−９１６ｃおよび加算器９１８ａ−９１８ｆを介してミキサバッファに分配する。詳しく云うと、左チャネルの効果処理された補助Ａおよび補助Ｂ成分が、戻り経路９１６ａを介して左チャネルの主成分に加えられる。同じように、右チャネルの効果処理された補助Ａおよび補助Ｂ成分が、戻り経路９１６ｂを介して右チャネルの主成分に加えられ、効果処理されたサラウンドチャネルの補助Ａおよび補助Ｂ成分が、戻り経路９１６ｃを介してサラウンドチャネルの主成分に加えられる。上で述べた「送り−そして−遅延し−戻す」アーキテクチャは、すべての効果について、５ミリ秒のレイテンシを結果的に生じる。もしドルビーサラウンドがアクティブであれば、サラウンド音声エンコーダ９２０が、サラウンドチャネルの情報を、加算器９２２ａおよび９２２ｂを介してミキサバッファの主左および主右チャネルにエンコードして与える。
【００７２】
以下に述べるミキサおよび効果プロセサは、左，右およびサラウンドチャネルのような３つ以上のチャネル上の信号について個別的に効果を与える。したがって、効果は３次元空間中において選択的に「位置決め」され得て、したがってより増強または改良されたオーディオコンテンツを提供する。ミキサは、効果（補助）送り／戻りの数がミキシング／累算チャネルの数と同じであるという点で相称的である。上で述べた実施例のミキサは３つのミキシング／累算チャネルおよび３つの送り／戻りを用いるが、この発明の範囲はこの構成に限定されるものではなく、たとえば、３つ以上のミキシング／累算チャネルを有するシステムにも即座に適用できる。したがって、この発明は、左チャネル，右チャネル，サラウンドチャネル，左サラウンドチャネル，右サラウンドチャネル，センターチャネル，低域効果チャネルおよびその他のような３つ以上のチャネルを有する任意のシステムに適用できる。したがって、この出願による教示は、６つのミキシング／累算チャネルを利用しそしてそれゆえに６つの効果（補助）送り／戻りを含むＡＣ３のようなシステムに即座に適用できる。
【００７３】
オーディオアプリケーションはチャネル毎のボリュームレベルを指令する。したがって、ゲームアプリケーションは、ボリュームレベルを「前もって乗算する(pre-multiplying)」ことによってプレフェイダ(pre-fader)またはポストフェイダ(post-fader)の構成において補助Ａおよび補助Ｂを使用することができる。
【００７４】
実行時オーディオライブラリは、オーディオＤＳＰ１５６のリソース使用法をモニタし、そしてそれに従って音声割付をダイナミックに制限するリソース管理アルゴリズムを含む。このことによって、不正なオーディオ出力が結果的に生じることになるオーディオＤＳＰ１５６の過負荷を防止する。好ましくは、リソース管理アルゴリズムはスムーズで連続的なオーディオを確保するために、最悪値メモリアクセスレイテンシを想定する。たとえば、各音声のミキシングおよび処理要求に依存して、６４までの音声が支持され得る。
【００７５】
互換性のある他の実施例
上述のシステム５０は上で述べた家庭用ビデオゲームコンソールの構成以外としても実現できる。たとえば、或るものは、システム５０をエミュレートする異なる構成を有するプラットフォームもしくはそれと同等のものにおいて、システム５０のために書かれたグラフィクスアプリケーションや他のソフトウェアを実行させることができる。もし、他のプラットフォームがシステム５０のいくつかのもしくはすべてのハードウェアおよびソフトウェアリソースをエミュレートしシミュレートしおよび／または提供することができれば、その他のプラットフォームはそのソフトウェアを成功裏に実行することができる。
【００７６】
一例として、エミュレータがシステム５０のハードウェアおよび／またはソフトウェア構成（プラットフォーム）とは異なるハードウェアおよび／またはソフトウェア構成（プラットフォーム）を提供できる。そのエミュレータシステムは、それのためにアプリケーションソフトウェアが書かれているシステムのいくつかのもしくはすべてのハードウェアおよび／またはソフトウェアコンポーネンツをエミュレートしもしくはシミュレートするソフトウェアおよび／またはハードウェアコンポーネンツを含む。たとえば、エミュレータシステムはパソコンのような汎用ディジタルコンピュータを含み、それはシステム５０のハードウェアおよび／またはファームウェアをシミュレートするソフトウェアエミュレータプログラムを実行する。上述のオーディオシステムのＤＳＰ処理がパソコンによってエミュレートされ得る。
【００７７】
或る汎用ディジタルコンピュータ（たとえばＩＢＭやマッキントッシュのパソコンおよびそれらの同等物）は、ダイレクトＸ(DirectX)または他の標準的な３ＤグラフィクスコマンドＡＰＩｓに従った３Ｄグラフィクスパイプラインを提供する３Ｄグラフィクスカードを備える。それらはまた、音声コマンドの標準的なセットに基づいて高品質のステレオ音声を提供するステレオ音声カードを備える。エミュレータソフトウェアを実行するそのようなマルチメディアのハードウェアを備えるパソコンは、システム５０のグラフィクスおよび音声性能とほぼ等しい十分な性能を有する。エミュレータソフトウェアはパソコンプラットフォーム上のハードウェアリソースを制御して、それのためにゲームプログラマがゲームソフトウェアを書いた家庭用ビデオゲームコンソールプラットフォームの処理，３Ｄグラフィクス，音声，周辺および他の能力をシミュレートする。
【００７８】
図１３はホストプラットフォーム１２０１，エミュレータコンポーネント１３０３および記憶媒体６２上のゲームソフトウェア実行可能バイナリ映像を用いる全体のエミュレーション処理を図解する。ホスト１２０１は、たとえばパソコン，ビデオゲームコンソールあるいは十分な計算力を有する任意の他のプラットフォームのような汎用または特定目的ディジタル計算装置である。エミュレータ１３０３はそのホストプラットフォーム１２０１上で走るソフトウェアおよび／またはハードウェアであり、記憶媒体６２からのコマンド，データおよび他の情報のそのホスト１２０１によって実行可能な形態へのリアルタイム変換を行う。たとえば、エミュレータ１３０３は記憶媒体６２からシステム５０によって実行されるように意図された「ソース」であるバイナリ映像プログラム命令を取り込み、これらのプログラム命令をホスト１２０１によって実行されもしくは処理され得るターゲットとなる形態に変換する。
【００７９】
一例として、ソフトウェアがＩＢＭパワーＰＣまたは他の特定のプロセサを用いるプラットフォーム上での実行のために書かれかつホスト１２０１が異なる（たとえばインテル）プロセサを用いるパソコンである場合、エミュレータ１２０３は記憶媒体１３０５からの１つのもしくは一連のバイナリ映像プログラム命令を取り込み、これらのプログラム命令を１つまたはそれ以上の同等のインテルのバイナリ映像プログラム命令に変換する。エミュレータ１２０３はまたグラフィクス／オーディオプロセサ１１４によって処理されるように意図されたグラフィクスコマンドおよびオーディオコマンドを取り込みかつ／あるいは生成し、そしてホスト１２０１上で利用可能なハードウェアおよび／またはソフトウェアグラフィクス／オーディオ処理リソースによって処理され得る形態にこれらのコマンドを変換する。一例として、エミュレータ１３０３はホスト１２０１の特別なグラフィクスおよび／または音声ハードウェア（たとえば標準的なダイレクトＸ，オープンＧＬおよび／または音声ＡＰＩｓ）によって処理され得るコマンドにこれらのコマンドを変換する。
【００８０】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために用いられるエミュレータ１３０３は、また、エミュレータを使ってゲームを走らせている種々のオプションおよびスクリーンモードの選択を簡単化しもしくは自動化するグラフィックユーザインタフェース（ＧＵＩ）を備える。一例において、そのようなエミュレータ１３０３はさらにそのソフトウェアが本来的に目的とされたホストプラットフォームに比べてより増強された機能性を含むこともできる。
【００８１】
図１４はエミュレータ１３０３で用いるに適したエミュレーションホストシステム１２０１を図解的に示す。このシステム１２０１は処理ユニット１２０３およびシステムメモリ１２０５を含む。システムバス１２０７がシステムメモリ１２０５を含む種々のシステムコンポーネンツを処理ユニット１２０３に結合する。システムバス１２０７は多様なバスアーキテクチャのいずれかを用いるメモリバスもしくはメモリコントローラ，周辺バスおよびローカルバスを含むいくつかのタイプのバス構造の任意のものである。システムメモリ１２０７はＲＯＭ１２５２およびＲＡＭ１２５４を含む。起動中においてのようにパソコンシステム１２０１中のエレメント（要素）間に情報を伝送する手助けをする基本ルーチンを含む基本入力／出力システム（ＢＩＯＳ）１２５６がＲＯＭ１２５２中にストアされる。システム１２０１はさらに種々のドライブおよび関連のコンピュータ読出可能な媒体を含む。ハードディスクドライブ１２０９が（典型的には固定の）磁気ハードディスク１２１１から読み出しそれへ書き込む。付加的な（たぶんオプションとしての）磁気ディスクドライブ１２１３が着脱可能な「フロッピィ」または他の磁気ディスク１２５１から読み出しかつそれへ書き込む。光ディスクドライブ１２１７はＣＤ−ＲＯＭあるいは他の光学媒体のような着脱自在な光ディスク１２１９から読み出しかつそれへ書き込む。ハードディスクドライブ１２０９および光ディスクドライブ１２１７は、ハードディスクドライブインタフェース１２２１および光ディスクドライブインタフェース１２２５によって、システムバス１２０７にそれぞれ接続される。これらのドライブおよびその関連するコンピュータ読出可能な媒体は、パソコンシステム１２０１のためのコンピュータ読出可能な命令，データ構造，プログラムモジュール，ゲームプログラムおよび他のデータの不揮発性の記憶媒体を提供する。他の構成では、コンピュータによってアクセス可能なデータをストアすることができる他のタイプのコンピュータ読出可能な媒体（たとえば磁気カセット，フラッシュメモリカード，ディジタルビデオディスク，ベルヌーイカートリッジ，ＲＡＭ，ＲＯＭあるいはその他のもの）がまた使用できる。
【００８２】
エミュレータ１３０３を含む多数のプログラムモジュールがハードディスク１２１１，着脱可能な磁気ディスク１２１５，光ディスク１２１９および／またはシステムメモリ１２０５のＲＯＭ１２５２および／またはＲＡＭ１２５４にストアされ得る。このようなプログラムモジュールはグラフィクス／音声ＡＰＩｓ，１つ以上のアプリケーションプログラム，他のプログラムモジュール，プログラムデータおよびゲームデータを提供するオペレーティングシステム（ＯＳ）を含む。ユーザは、キーボード１２２７，ポインティングデバイス１２２９，マイクロフォン，ジョイスティック，ゲームコントローラ，衛星アンテナ(satellite dish)，スキャナあるいはその他のもののような入力デバイスを通して、パソコンシステム１２０１にコマンドおよび情報を入力することができる。これらのそして他の入力デバイスは、システムバス１２０７に結合されたシリアルポートインタフェース１２３１を通して処理ユニット１２０３に接続され得るが、パラレルポート，ゲームポートファイヤワイヤバス(Fire Wire)もしくはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースによって接続されてもよい。モニタまたは他のタイプの表示デバイスがまたビデオアダプタ１２３５のようなインタフェースを介してシステムバス１２０７に接続される。
【００８３】
システム１２０１はモデム１１５４またはインターネットのようなネットワーク１１５２を通しての通信を確立するための他のネットワークインタフェース手段を含む。内蔵もしくは外付けであってよいモデム１１５４はシリアルポートインタフェース１２３１を介してシステムバス１２３に接続される。システム１２０１がローカルエリアネットワーク１１５８を介して遠隔コンピュータ装置１１５０（たとえば他のシステム１２０１）と通信するのを許容するために、ネットワークインタフェース１１５６がまた設けられてもよい（もしくはそのような通信はダイヤルアップもしくは他の通信手段のようなワイドエリアネットワーク１１５２もしくは他の通信経路を介してもよい）。システム１２０１はプリンタのような周辺出力装置および他の標準的な周辺装置を含む。
【００８４】
一例では、ビデオアダプタ１２３５は、マイクロソフト(Microsoft)のダイレクトＸ７．０、または他のバージョンのような標準的な３Ｄグラフィクスアプリケーションプログラマインタフェースに基づいて発行された３Ｄグラフィクスコマンドに応答して、高速の３Ｄグラフィクスレンダリングを提供する３Ｄグラフィクスパイプラインチップセットを含んでもよい。１組のスピーカ１２３７はまた、バス１２０７によって与えられる音声コマンドに基づいて高品質ステレオ音声を生成するハードウェアおよび埋め込みソフトウェアを提供する従来の「音声カード」のような音声生成インタフェースを介して、システムバス１２０７に接続される。これらのハードウェア能力によって記憶媒体１３０５中にストアされているソフトウェアを再生するためにシステム１２０１に十分なグラフィクスおよび音声の速度性能を与えることができる。
【００８５】
上で述べたビデオゲームシステムのいくつかのもしくはすべての特徴を与えるために使用されるエミュレータ１３０３は、また、そのエミュレータを用いて実行しているゲームのための種々のオプションおよびスクリーンモードの選択を単純化しもしくは自動化するグラフィックユーザインタフェース（ＧＵＩ）を備えてもよい。一例として、そのようなエミュレータ１３０３は本来的にそのソフトウェアを意図していたホストプラットフォームに比べてより増強された機能性を含んでいてもよい。
【００８６】
最も現実的かつ好ましい実施例であると現在考えられているものに関連してこの発明が説明されたが、この発明は開示された実施例に限定されるものではなく、逆に、特許請求の範囲内に含まれる種々の変形例や等価的な構成をカバーするように意図されていることを理解されたい。
【図面の簡単な説明】
【図１】図１はインタラクティブコンピュータグラフィクスシステムの実施例を示す全体図である。
【図２】図２は図１実施例のコンピュータグラフィクスシステムのブロック図である。
【図３】図３は図２に示す実施例のグラフィクス／オーディオプロセサのブロック図である。
【図４】図４は図３に示す実施例の３Ｄグラフィクスプロセサのブロック図である。
【図５】図４のグラフィクス／オーディオプロセサの例示的な論理フロー図である。
【図６】図６は図３に示すオーディオＤＳＰ１５６，オーディオメモリインタフェース１５８およびオーディオインタフェース／ミキサ１６０をより詳細に示すブロック図である。
【図７】図７はＤＳＰＤＭＡ８１９の詳細を示すブロック図である。
【図８】図８は音声を再生するためのデータおよび制御フローの一例を示す図解図である。
【図９】図９は音声を再生するためのデータおよび制御フローの他の例を示す図解図である。
【図１０】図１０はＤＳＰ８１１の処理ステップを示す図解図である。
【図１１】図１１はミキサバスおよびチャネルを示す図解図である。
【図１２】図１２はこの発明の１つの局面に従ったミキサを示す図解図である。
【図１３】図１３は他の互換性のある一実施例を示す図解図である。
【図１４】図１４は他の互換性のある他の実施例を示す図解図である。
【図１５】図１５はステレオ音声システムにおいて音声効果を与える従来の構成を示す図解図である。
【図１６】図１６はサラウンド音声システムにおいて音声効果を与える従来の構成を示す図解図である。
【符号の説明】
５０  …インタラクティブ３Ｄコンピュータグラフィクスシステム
５４  …主ユニット
１１０  …主プロセサ
１１２  …主メモリ
１１４  …グラフィクス／オーディオプロセサ
１２６  …オーディオメモリ（ＡＲＡＭ）
１５６  …オーディオＤＳＰ
８０３  …ボリューム
８０９  …ミキサ
８１１  …ＤＳＰコア
９１０ａ−９１０ｉ  …乗算器
９１２ａ−９１２ｉ，９１８ａ−９１８ｆ，９２２ａ，９２２ｂ  …加算器
９１４ａ−９１４ｃ  …送り経路
９１６ａ−９１６ｃ  …戻り経路
９２０  …サラウンドエンコーダ
【図１】
0004570766.tif 000007
【図２】
0004570766.tif 000008
【図３】
0004570766.tif 000009
【図４】
0004570766.tif 000010
【図５】
0004570766.tif 000011
【図６】
0004570766.tif 000012
【図７】
0004570766.tif 000013
【図８】
0004570766.tif 000014
【図９】
0004570766.tif 000015
【図１０】
0004570766.tif 000016
【図１１】
0004570766.tif 000017
【図１２】
0004570766.tif 000018
【図１３】
0004570766.tif 000019
【図１４】
0004570766.tif 000020
【図１５】
0004570766.tif 000021
【図１６】
0004570766.tif 000022