(57)【特許請求の範囲】
【請求項１】
複数の入力音声ストリームをミックスして、一つの出力音声ストリームを形成するよう機能する音声処理装置であって、
前記入力音声ストリームを受信し、周波数領域表現の混合周波数領域音声ストリームを出力するよう機能するミキサーと、
前記混合周波数領域音声ストリームを、周波数領域表現から時間領域表現へと変換して、出力音声ストリームを形成するよう機能する周波数−時間コンバータとから構成され、
前記ミキサーは、
複数のサブミキサーを備え、各サブミキサーは入力音声ストリームに各々対応する、複数の中間周波数領域音声ストリームを受信するよう機能し、該中間周波数領域音声ストリームをミックスして対応する予備周波数領域音声ストリームを作成する複数のサブミキサーと、
前記予備周波数領域音声ストリームをミックスして、混合周波数領域音声ストリームを作成するよう機能するメインミキサーと、を有すること
を特徴とする音声処理装置。
【請求項２】
請求項１に記載された音声処理装置であって、
前記ミキサーは、時間領域表現の入力音声ストリームを受信するよう機能し、該ミキサーは、入力音声ストリームを時間領域表現から周波数領域表現へと変換するよう機能する、時間−周波数コンバータを備えることを特徴とする音声処理装置。
【請求項３】
請求項１または請求項２に記載された音声処理装置であって、
前記ミキサーは、周波数領域表現の入力音声ストリームを受信するよう機能することを特徴とする音声処理装置。
【請求項４】
請求項１から３のいずれか一つの請求項に記載された音声処理装置であって、
音声ストリームの各々は、少なくとも一つの音声チャネルを備えることを特徴とする音声処理装置。
【請求項５】
請求項２に従属する請求項４に記載の音声処理装置であって、
前記時間−周波数コンバータは、入力音声ストリームの音声チャネルに高速フーリエ変換を施すよう機能し、前記周波数−時間コンバータは、混合周波数領域音声ストリームの音声チャネルに、逆高速フーリエ変換を施すよう機能することを特徴とする音声処理装置。
【請求項６】
請求項１から５のいずれか一つの請求項に記載された音声処理装置であって、
前記ミキサーは、
周波数領域表現の入力音声ストリームおよびまたは混合周波数領域音声ストリームに対し、オーディオエフェクトを施すよう機能するエフェクト装置を備えることを特徴とする音声処理装置。
【請求項７】
請求項６に記載の音声処理装置であって、
前記エフェクト装置は、予備周波数領域音声ストリームに対してオーディオエフェクトを施すよう機能することを特徴とする音声処理装置。
【請求項８】
請求項７に記載の音声処理装置であって、
前記エフェクト装置は、別の予備周波数領域音声ストリームのボリュームに従って、ある予備周波数領域音声ストリームのボリュームを制御するよう機能することを特徴とする音声処理装置。
【請求項９】
請求項６から請求項８のいずれか一つに記載の音声処理装置であって、
前記エフェクト装置によって施されるオーディオエフェクトは、等化、ピッチシフティング、反響音適用、ボリューム制御、圧縮、音声ストリームの包絡線の調整、のうちの少なくとも一つを含むことを特徴とする音声処理装置。
【請求項１０】
請求項１から９のいずれか一つに記載の音声処理装置であって、
前記周波数領域音声ストリームは、浮動小数点データとして処理されることを特徴とする音声処理装置。
【請求項１１】
複数の入力音声ストリームをミックスして、一つの出力音声ストリームを形成するよう機能する音声処理方法であって、
前記入力音声ストリームをミックスして、周波数ベース表現の混合周波数ベース音声ストリームを出力するミックスステップと、
前記混合周波数領域音声ストリームを、周波数領域表現から時間領域表現へと変換して、出力音声ストリームを形成する周波数−時間変換を行う変換ステップと、を備え、
前記ミックスステップは、
前記入力音声ストリームに各々対応する、複数の中間周波数領域音声ストリームをサブミックスして、対応する予備周波数領域音声ストリームを作成するステップと、
前記予備周波数領域音声ストリームをミックスして、混合周波数領域音声ストリームを作成するステップと、を備えることを特徴とする音声処理方法。
【請求項１２】
請求項１１に記載の音声処理方法をコンピュータに実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録した記憶媒体。
【請求項１４】
請求項１１に記載の音声処理方法によって生成された音声ストリームが記録された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音声処理に関する。
【発明の開示】
【０００２】
音声ストリームに対してさまざまな処理技術が施されることが知られている。このような音声処理の例としては、フィルタリング、圧縮、等化、およびボリュームコントロールが含まれる。現行の音声処理装置は、音声ストリームを時間領域で処理する。すなわち、アナログ音声処理のためには、時間の関数である電圧として音声データを処理し、デジタル音声処理のためには、時間的連続音声サンプルのシーケンスとして音声データを処理する。必要とされる特定の処理によって、音声処理装置は、一時的に入力音声ストリームの音声データを、時間領域から周波数領域へと変換し、処理の特定部分を実行し、処理済の音声データを時間領域へと戻す。任意の処理ステップのシーケンスについて、いくつもの周波数領域処理ステップでインターリーブされた、いくつもの時間領域ステップを実行する必要がある。その結果、時間領域と周波数領域の相互間での変換が数多く必要となる。
【０００３】
また、音声ストリームのミキシングを行うことも周知であり、このミキシングにおいては、二つ以上の入力音声ストリームが共に結合され、単一の出力音声ストリームを形成する。これは例えば、何人もの人が自身の個人用マイクロホンを所有しているインタビューの場面などに生じる。別の例としては、音楽コンサートやスポーツイベントなどで多くのマイクロホンが使用されており、ときに解説者用にさらに音声ストリームを加えて、そこで生成された音声ストリームが共にミックスされ、放送用の単一出力ストリームが作成される場合に生じる。ミキシングは、時間領域処理である。
【０００４】
本発明の一態様により、複数の入力音声ストリームをミックスして、一つの出力音声ストリームを形成するよう機能する音声処理装置が提供され、該装置は、入力音声ストリームを受信し、周波数ベース表現の混合周波数ベース音声ストリームを出力するよう機能するミキサーと、
混合周波数ベース音声ストリームを、周波数ベース表現から時間ベース表現へと変換して、出力音声ストリームを形成するよう機能する周波数−時間コンバータとから構成される。
【０００５】
本発明の実施例は、最初に、すべての入力音声ストリームが周波数領域へと変換されることに利点がある。すべての音声ミキシングおよび音声処理は、その後、周波数領域で実行される。処理済みかつ混合済みの音声ストリームはその後、周波数領域から出力用に時間領域へと変換される。このようにして、時間領域と周波数領域の間の、複数の連続した変換の必要性が回避される。これによって、音声処理を実行するために必要とされるハードウェアの量を軽減することができ、同時に、このような複数の変換によって生じてしまうであろう、システム全体の待ち時間を削減する。
【０００６】
本発明のさらなる態様および特徴は、それぞれ、添付の請求の範囲により定義される。
【０００７】
以下、例示のみを目的として、添付の図面を参照しながら本発明の実施例について説明する。
【図面の簡単な説明】
【０００８】
【図１】図１は、音声処理装置の一例としてのプレイステーション２(RTM)ゲーム機の全体的なシステム構造を概略的に示したものである。
【図２】図２は、エモーションエンジンの構造について概略的に示したものである。
【図３】図３は、グラフィックスシンセサイザの構造を概略的に示したものである。
【図４】図４は、音声ミキシングの一例を概略的に示したものである。
【図５】図５は、音声ミキシングの他の例を概略的に示したものである。
【図６】図６は、本発明の一実施例による音声ミキシングおよび音声処理を概略的に示したものである。
【発明を実施するための最良の形態】
【０００９】
図１は、プレイステーション２ゲーム機の全体的なシステム構造を概略的に示したものである。一方、本発明の実施例は、プレイステーション２ゲーム機に限定されるわけではないと理解される。
【００１０】
システムユニット１０は、当該システムユニットに接続可能なさまざまな周辺装置を備える。
【００１１】
システムユニット１０は、エモーションエンジン１００、グラフィックスシンセサイザ２００、 ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を有するサウンドプロセッサユニット３００、読出し専用メモリ（ＲＯＭ）４００、コンパクトディスク（ＣＤ）およびデジタル多用途ディスク（DVD）リーダー４５０、 ラムバス・ダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）装置５００、専用ＲＡＭ７５０を有する入出力プロセッサ（ＩＯＰ）７００から構成される。（任意の）外部ハードディスクドライブ（ＨＤＤ）３９０が接続される場合もある。
【００１２】
入出力プロセッサ７００は、二つのユニバーサル・シリアル・バス（ＵＳＢ）ポート７１５、およびｉＬｉｎｋまたはＩＥＥＥ１３９４ポートを有する（ｉＬｉｎｋとは、ソニー株式会社が、ＩＥＥＥ１３９４標準を実施したもの）。入出力プロセッサ７００は、ＵＳＢ、ｉＬｉｎｋおよびゲームコントローラのデータ・トラフィックのすべてを処理する。例えば、ユーザがゲームをしている際、入出力プロセッサ７００は、ゲームコントローラからデータを受信して、それをエモーションエンジン１００に送り出し、エモーションエンジンはそれに従い、ゲームの現在の状態を更新する。入出力プロセッサ７００は、迅速なデータ転送速度を容易に実現するダイレクト・メモリ・アクセス（ＤＭＡ）構造を有する。ＤＭＡは、ＣＰＵにデータを通さずに、メインメモリから装置までのデータを転送することを必要とする。ＵＳＢインタフェースはオープン・ホスト・コントローラ・インタフェース（ＯＨＣＩ）と互換性があり、１．５Ｍｂｐｓから１２Ｍｂｐｓまでのデータ転送速度を処理できる。これらのインタフェースが装備されているということは、プレイステーション２が潜在的に、ビデオ・カセット・レコーダ（VCRｓ）、デジタルカメラ、マイクロホン、セットトップボックス、プリンタ、キーボード、マウスおよびジョイスティック等の周辺装置と互換性を持つことを意味する。
【００１３】
通常、ＵＳＢポート７１５に接続されている周辺装置との間で円滑なデータ通信が行われるように、デバイス・ドライバのような適当なソフトウェア部分を備えなければならない。デバイス・ドライバ技術は非常に良く知られており、ここで詳細を説明しない。ただし、当業者であれば、ここに記載する実施例において、デバイス・ドライバまたは類似のソフトウェア・インタフェースが必要とされると認識するであろう。
【００１４】
本実施例において、ＵＳＢマイクロホン７３０は、ＵＳＢポートに接続されている。ＵＳＢマイクロホン７３０は、手持ち式マイクロホン、またはオペレータにより着用されるヘッドセットの一部を形成する場合もあると理解される。ヘッドセットを着用することによる利点は、オペレータの手が自由になり、他の動作を行うことができるということである。このマイクロホンは、アナログデジタルコンバータ（ＡＤＣ）および基本ハードウェアをベースにしたリアルタイムデータ圧縮およびコード化構成を含み、その結果、音声データは、例えばプレイステーション２システムユニット１０で復号化するための１６ビット・モノラルＰＣＭ（非圧縮フォーマット）のような適切なフォーマットで、マイクロホン７３０によってＵＳＢポート７１５に送信される。
【００１５】
ＵＳＢポートとは別に、他に二つのポート７０５、７１０が専用ソケットとなっており、ゲーム関連の情報を格納するための専用不揮発性ＲＡＭメモリカード７２０、手持ち式ゲームコントローラ７２５、またはダンスマット等の手持ち式コントローラに類する装置（図示せず）の接続を可能とする。
【００１６】
システムユニット１０は、ネットワークにインタフェース（例えばイーサネット・インタフェース）を提供するネットワークアダプタ８０５に接続することが可能である。例えば、このネットワークは、ＬＡＮ、ＷＡＮまたはインターネットであってもよい。このネットワークは一般のネットワークであってもよいし、または、ゲーム関連の通信専用のものであってもよい。このネットワークアダプタ８０５によって、同じネットワークに接続される他のシステムユニット１０とデータの送受信を行うことが可能である。（他のシステムユニット１０もまた対応するネットワークアダプタ８０５を有する）。
【００１７】
エモーションエンジン１００は、１２８ビット中央演算処理装置（ＣＰＵ）であり、ゲームアプリケーション用三次元（３Ｄ）グラフィックスの効率的シミュレーションのために専用に設計されたものである。エモーションエンジンの構成要素は、データバス、キャッシュメモリおよびレジスタを含み、いずれも１２８ビットである。これによって、大量のマルチメディア・データの迅速処理を容易にする。これと比較すると、従来のＰＣは、基本６４ビットのデータ構造を有する。プレイステーション２の浮動小数点演算性能は、６．２ＧＦＬＯＰｓである。エモーションエンジンはまた、ＭＰＥＧ２デコーダ回路を備え、これによって３ＤグラフィックスデータとＤＶＤデータの同時処理が可能となる。エモーションエンジンは、数学的変換およびトランスレーションを含む幾何学的計算を実行し、更に、例えば二つのオブジェクト間の摩擦の算出など、シミュレーションオブジェクトの物理的過程に関連する計算を行う。これによって、その次にグラフィックスシンセサイザ２００によって使用されるイメージレンダリングコマンドのシーケンスが生成される。このイメージレンダリングコマンドは、表示リスト形式で出力される。表示リストとは、描画コマンドのシーケンスであり、画面上、どの初期グラフィックスオブジェクト（例えば、点、線、三角形、スプライト）をどの座標に描くかをグラフィックスシンセサイザに指示する。従って、典型的な表示リストは、頂点を描くためのコマンド、多角形の表面に陰影をつけたり、ビットマップを描いたりするためのコマンド等を備える。エモーションエンジン１００は、非同期で複数の表示リストを生成できる。
【００１８】
グラフィックスシンセサイザ２００は、エモーションエンジン１００により生成された表示リストのレンダリングを行うビデオアクセラレータである。グラフィックスシンセサイザ２００は、この複数の表示リストを処理し、追跡し、管理するグラフィックスインタフェース装置（ＧＩＦ）を含む。グラフィックスシンセサイザ２００のレンダリング機能は、選択肢となるいくつかの標準出力画像フォーマット、すなわちＮＴＳＣ／ＰＡＬ、高精細デジタルテレビ、およびＶＥＳＡをサポートする画像データを生成することができる。一般に、グラフィックスシステムのレンダリング能力は、ピクセルエンジンとビデオメモリの間のメモリ帯幅によって定められ、その各々は、グラフィックスプロセッサ内に位置する。従来のグラフィックスシステムは、外部ビデオランダムアクセスメモリ（ＶＲＡＭ）を使用しており、これはオフ・チップバスを介してピクセルロジックに接続されるので利用可能な帯幅を制限する傾向にある。しかし、プレイステーション２のグラフィックスシンセサイザ２００は、ピクセルロジックとビデオメモリを単一の高性能チップ上に備え、これによって、１秒につき３８．４ギガバイトという比較的大きいメモリアクセス帯幅を可能とする。このグラフィックスシンセサイザは、理論的には、１秒につき７，５００万ポリゴンの最高描画容量を実現できる。テクスチャ、ライティングおよびトランスペアレンシー等あらゆる種類の効果を用いても、１秒につき２，０００万ポリゴンの持続速度で、連続的に描画できる。従って、グラフィックスシンセサイザ２００は、フィルム品質の画像を描画することが可能である。
【００１９】
サウンドプロセッサユニット（ＳＰＵ）３００は、事実上、本システムのサウンドカードであって、ＤＶＤに使用されるサウンドフォーマットである、デジタルシアターサウンド（ＤＴＳ（Ｒ））やＡＣ−３（ドルビーデジタルとしても知られる）のような三次元デジタルサウンドを認識できる。
【００２０】
対応するスピーカー構成３１０を伴ったビデオモニタまたはテレビ等のディスプレイおよび音声出力装置３０５は、グラフィックスシンセサイザ２００およびサウンドプロセッサユニット３００に接続され、映像および音声信号を受け取る。
【００２１】
エモーションエンジン１００をサポートしているメインメモリは、ラムバス社製のＲＤＲＡＭ（ラムバス・ダイナミック・ランダムアクセスメモリ）モジュール５００である。このＲＤＲＡＭメモリ・サブシステムは、ＲＡＭ、ＲＡＭコントローラ、および、ＲＡＭをエモーションエンジン１００に接続しているバスにより構成されている。
【００２２】
図２は、図１のエモーションエンジン１００の構造を概略的に示したものである。エモーションエンジン１００は、浮動小数点数演算装置（ＦＰＵ）１０４、中央演算処理装置（ＣＰＵ）コア１０２、ベクトルユニットゼロ（ＶＵ０）１０６、ベクトルユニット1（ＶＵ１）１０８、グラフィックスインタフェース装置（ＧＩＦ）１１０、割り込みコントローラ（ＩＮＴＣ）１１２、タイマー装置１１４、ダイレクトメモリ・アクセス・コントローラ１１６、画像データ処理装置（IPU）１１８、ダイナミック・ランダム・アクセス・メモリ・コントローラ（ＤＲＡＭＣ）１２０、サブバスインタフェース（ＳＩＦ）１２２により構成され、これらの構成要素のすべては１２８ビット・メインバス１２４を介して接続される。
【００２３】
ＣＰＵコア１０２は、クロック３００ＭＨｚで動作する１２８ビットプロセッサである。このＣＰＵコアは、ＤＲＡＭＣ１２０を介して、メインメモリのうちの３２ＭＢに対してアクセスする。このＣＰＵコア１０２の命令セットは、さらにマルチメディア命令を追加したＭＩＰＳ ＩＶ ＲＩＳＣ命令をいくつか有するＭＩＰＳ ＩＩＩ  ＲＩＳＣに基づいている。ＭＩＰＳ ＩＩＩおよびＩＶは、縮小命令セットコンピュータ（ＲＩＳＣ）の命令セット構造であり、ＭＩＰＳテクノロジ社が所有権を有する。標準命令は、６４ビット、ツーウェイ・スーパースカラであって、すなわち、二つの命令を同時に実行できる。一方、マルチメディア命令は、二つのパイプラインを介した１２８ビット命令を使用する。ＣＰＵコア１０２は、１６ＫＢの命令キャッシュ、８ＫＢのデータキャッシュ、および、ＣＰＵによるダイレクトプライベート使用のために確保されるキャッシュの一部である１６ＫＢのスクラッチパッドＲＡＭにより構成される。
【００２４】
ＦＰＵ１０４は、ＣＰＵコア１０２用の第一のコプロセッサとしての役割を果たす。ベクトルユニット１０６は、第二のコプロセッサとして動作する。ＦＰＵ１０４は、浮動小数点積和演算器（ＦＭＡＣ）および浮動小数点除算演算器（ＦＤＩＶ）により構成される。ＦＭＡＣおよびＦＤＩＶは、どちらも３２ビット値で演算を行うので、演算が１２８ビット値（４つの３２ビット値から成る）で行われる場合は、４つのすべての部分において、並行して演算が実行される。例えば、二本のベクトルの合算を同時に行うことができる。
【００２５】
ベクトルユニット１０６および１０８は、数値演算を実行するものであり、ベクトル方程式の乗算および加算で数値を求める場合に極めて高速である、基本的に専門ＦＰＵである。これらは、加算および乗算演算用の浮動点少数積和演算器（ＦＭＡＣｓ）および除算および平方根演算用の浮動小数点除算器（ＦＤＩＶｓ）を使用する。これらは、マイクロプログラムを格納するための内蔵メモリを有し、ベクトル・インタフェース・ユニット（ＶＩＦｓ）を介して、システムの残りの部分とのインタフェースをとる。
【００２６】
ベクトルユニットゼロ１０６は、専用１２８ビットバスを介してＣＰＵコア１０２に対するコプロセッサとして機能できるので、これは基本的に第二の専門ＦＰＵである。一方、ベクトルユニットワン１０８は、グラフィックスシンセサイザ２００への専用バスを有するので、それによって、完全に分離したプロセッサとして考えることができる。二台のベクトルユニットを搭載することにより、ソフトウェア開発者はＣＰＵの異なる部分間に作業を切り分けることが可能となり、これらのベクトルユニットはシリアルまたはパラレル接続のいずれかで使用できる。
【００２７】
ベクトルユニットゼロ１０６は、四つのＦＭＡＣＳと一つのＦＤＩＶとを備える。ベクトルユニットゼロは、コプロセッサ接続によりＣＰＵコア１０２に接続される。これは、データ用ベクトルユニットメモリ４Ｋｂと、命令用マイクロメモリ４Ｋｂを有する。ベクトルユニットゼロ１０６は、表示用画像に関連する物理計算を行うために有用である。これは主に、ＣＰＵコア１０２と共に非パターン化幾何学処理を実行する。
【００２８】
ベクトルユニットワン１０８は、五つのＦＭＡＣＳと二つのＦＤＩＶｓとを備える。これは、ＧＩＦユニット１１０へのダイレクトパスは有するが、ＣＰＵコア１０２へのダイレクトパスを有しない。これは、データ用ベクトルユニットメモリ１６Ｋｂと、命令用マイクロメモリ１６Ｋｂを有する。ベクトルユニットワン１０８は、変換を実行する際に有用である。これは主に、パターン化された幾何学処理を実行して、生成された表示リストをＧＩＦ１１０に直接出力する。
【００２９】
ＧＩＦ１１０は、グラフィックスシンセサイザ２００に対するインタフェースユニットである。表示リストパケットの最初のタグ指定に従って、データを変換し、相互に複数の転送を調整しながら、描画命令をグラフィックスシンセサイザ２００に転送する。割り込みコントローラ（ＩＮＴＣ）１１２は、ＤＭＡＣ１１６を除いた周辺装置からの割り込みを調整する役割を果たす。
【００３０】
タイマー装置１１４は、１６ビットカウンタを有する四つの独立したタイマーから成る。このタイマーは、バスクロック（１／１６または１／２５６間隔）によって、または外部クロックを介して駆動される。ＤＭＡＣ１１６は、メインメモリおよび周辺処理装置間の、または、メインメモリおよびスクラッチパッドメモリ間のデータ転送を行う。同時に、メインバス１２４を調整する。ＤＭＡＣ１１６のパフォーマンス最適化は、エモーションエンジン性能を向上させる鍵となる方法である。画像処理装置（ＩＰＵ）１１８は、圧縮された動画およびテクスチャ画像を展開するために用いる画像データプロセッサである。これは、Ｉ−ＰＩＣＴＵＲＥマクロブロック・デコーディング、カラースペース変換、およびベクトル量子化を実行する。最後に、サブバスインタフェース（ＳＩＦ）１２２は、ＩＯＰ７００に対するインタフェースユニットである。サウンドチップおよび記憶装置等の入出力装置を制御するために、サブバスインタフェースは、それ自体のメモリおよびバスを有する。
【００３１】
図３は、グラフィックスシンセサイザ２００の構成を概略的に示したものである。グラフィックスシンセサイザは、ホストインターフェース２０２、セットアップ・ラスタライズ用ユニット、ピクセルパイプライン２０６、メモリインターフェース２０８、フレームページ・バッファ２１４およびテクスチャページ・バッファ２１６を含むローカルメモリ２１２、およびビデオコンバータ２１０を備える。
【００３２】
ホストインターフェース２０２は、ホストとデータのやりとりを行う（エモーションエンジン１００のＣＰＵコア１０２の場合）。ホストからの描画データおよびバッファデータは双方とも、このインタフェースを通過する。ホストインターフェース２０２からの出力は、グラフィックスシンセサイザ２００に供給される。このグラフィックスシンセサイザ２００は、グラフィックスを展開し、エモーションエンジン１００から受け取った頂点情報に基づいてピクセルを描画し、各ピクセルの、ＲＧＢＡ値、深度値（例えばＺ値）、テクスチャ値およびフォグ値等の情報を算出する。ＲＧＢＡ値は、赤、緑、青（ＲＧＢ）のカラー構成要素を特定し、A（アルファ）構成要素は画像オブジェクトの不透明性を表す。アルファ値は、完全に透明から完全に不透明まで変化させることができる。ピクセルデータは、ピクセルパイプライン２０６に供給され、ここで、テクスチャマッピング、フォギングおよびアルファブレンディング等の処理を行い、算出されたピクセル情報に基づいて最終的な描画のカラーを決定する。
【００３３】
ピクセルパイプライン２０６は、１６個のピクセルエンジンＰＥ１、ＰＥ２、・・・ＰＥ１６を備え、最大１６ピクセルを同時に処理できる。ピクセルパイプライン２０６は、３２ビットカラーおよび３２ビットＺバッファで、１５０ＭＨｚで動作する。メモリインターフェース２０８は、ローカル・グラフィックスシンセサイザ・メモリ２１２からデータを読み込み、かつ、書き込みを行う。ピクセル操作の終了時には、メモリに対して描画ピクセル値（ＲＧＢＡおよびＺ）を書き込み、メモリからフレームバッファ２１４のピクセル値を読み込む。フレームバッファ２１４から読み込まれるこれらのピクセル値は、ピクセルテストまたはアルファブレンディングのために使用される。メモリインターフェース２０８はまた、ローカルメモリ２１２から、フレームバッファの現在の内容に対するＲＧＢＡ値を読み込む。ローカルメモリ２１２は、グラフィックスシンセサイザ２００に内蔵される３２Ｍビット（４ＭＢ）のメモリである。これは、フレームバッファ２１４、テクスチャバッファ２１６および３２ビットＺバッファ２１５で構成することができる。フレームバッファ２１４は、カラー情報のようなピクセルデータが格納されるビデオメモリの部分である。
【００３４】
グラフィックスシンセサイザは、視覚的な細部を三次元ジオメトリに加えるために、二次元から三次元へのテクスチャマッピング処理を使用する。各テクスチャは、三次元画像オブジェクトの周囲に巻きつけられ、伸ばされ、そして曲げられて、三次元のグラフィック効果を与える。テクスチャバッファは、画像オブジェクトに対するテクスチャ情報を格納するために使用される。Ｚバッファ２１５（別名、深度バッファ）は、ピクセルについての深度情報を格納するために利用できるメモリである。画像は、グラフィックスプリミティブまたはポリゴンとして知られる基本構成ブロックにより構築される。ポリゴンが、Ｚバッファリングを使って描かれる場合、各ピクセルの深度値は、Ｚバッファに格納される対応する値と比較される。Ｚバッファに格納される値が新しいピクセル値の深度以上の場合、このピクセルが可視であると決定され、その結果、そのピクセルは描画されることとなって、Ｚバッファは新しいピクセル深度により更新される。しかしながら、Ｚバッファ深度値が新しいピクセル深度値よりも小さい場合、新しいピクセル値はすでに描画されたものの後ろ側にあって、描かれることはない。
【００３５】
ローカルメモリ２１２は、フレームバッファとＺバッファとにアクセスするための１０２４ビットの読み込みポートおよび１０２４ピットの書き込みポート、およびテクスチャ読込み用の５１２ビットのポートを有する。ビデオコンバータ２１０は、ある特定の出力フォーマットにおいて、フレームメモリの内容を表示するよう機能する。
【００３６】
図４は、音声ミキシングの一例を概略的に示したものである。５つの入力音声ストリーム１０００ａ、１０００ｂ、１０００ｃ、１０００ｄ、１０００ｅがミックスされて、単一の出力音声ストリーム１００２を生成する。このミキシングは、サウンドプロセッサユニット３００よって実行される。この入力音声ストリーム１０００は、少なくとも一台のマイクロホン７３０、およびまたはリーダー４５０によって読み込まれるＣＤ・ＤＶＤディスク等、さまざまなソースによってもたらされる。図４は、入力音声ストリーム１０００のミキシング以外に、入力音声ストリーム１０００上または出力音声ストリーム１００２上で行われる音声処理を全く示していないが、サウンドプロセッサユニット３００は、さまざまな他の音声処理ステップを実行する場合があると理解される。また、図４は、単一の出力音声ストリーム１００２を生成するためにミックスされている五つの入力音声ストリーム１０００を示しているが、入力音声ストリーム１０００の数については他のいかなる数でも利用可能であると理解される。
【００３７】
図５は、サウンドプロセッサユニット３００により行われる音声ミキシングの他の例を概略的に示したものである。図４に示された方法と同様に、五つの入力音声ストリーム１０１０ａ、１０１０ｂ、１０１０ｃ、１０１０ｄ、１０１０ｅがともにミックスされ、単一の出力音声ストリーム１０１２を形成している。しかし、図５に示すように、サウンドプロセッサユニット３００によりミキシングの中間段階が行われる。具体的には、二つの入力音声ストリーム１０１０ａ、１０１０ｂはミックスされて、予備音声ストリーム１０１４ａを生成し、一方、他の残りの三つの入力音声ストリーム１０１０ｃ、１０１０ｄ、１０１０ｅはミックスされて、予備音声ストリーム１０１４ｂを生成する。予備音声ストリーム１０１４ａと１０１４ｂは、その後ミックスされて、出力音声ストリーム１０１２を生成する。図５に示されるミキシング動作が図４に示されるものよりも優れている点は、もし、最初の二つの入力音声ストリーム１０１０ａ、１０１０ｂのように、入力音声ストリーム１０１０のうちのいくつかが、各々同じ音声処理を実行することを要求する場合、これらの音声ストリームをともにミックスして単一の予備音声ストリーム１０１４ａを形成し、それについてその音声処理が実行される。このような方法で、入力音声ストリーム１０１０ａ、１０１０ｂの各々に一つずつ、二つの音声処理ステップを行う必要なく、単一の予備音声ストリーム１０１４ａに対して単一の音声処理ステップが実行される。これによって、より効率的な音声処理を実現できる。
【００３８】
図６は、本発明の一実施例による音声ミキシングおよび音声処理を概略的に示したものである。三つの入力音声ストリーム１１００ａ、１１００ｂ、１１００ｃはミックスされて予備音声ストリーム１１０２ａが生成される。他の二つの入力音声ストリーム１１００ｄ、１１００ｅは、ミックスされてもう一つ別の予備音声ストリーム１１０２ｂが生成される。予備音声ストリーム１１０２ａ、１１０２ｂは、その後ミックスされて、出力音声ストリーム１１０４を生成する。図６は、ミックスされて一つの予備音声ストリーム１１０２ａを形成する三つの入力音声ストリーム１１００ａ、１１００ｂ、１１００ｃを示し、また、ミックスされて別の予備音声ストリーム１１０２ｂを形成する二つの異なる入力音声ストリーム１１００ｄ、１１００ｅを示しているが、ミキシングの実際の構成は、音声処理の特定の要件によって変わる場合があると理解される。実際には、異なる数の入力音声ストリーム１１００があってもよいし、異なる数の予備音声ストリーム１１０２があってもよい。さらに、少なくとも一つの入力音声ストリーム１１００が、少なくとも二つの予備音声ストリーム１１０２の一因となってもよい。
【００３９】
入力音声ストリーム１１００ａ、１１００ｂ、１１００ｃ、１１００ｄ、１１００ｅの各々は、少なくとも一つの音声チャネルから成る。
【００４０】
ここで、個々の入力音声ストリーム１１００で実行される最初の処理を説明する。入力音声ストリーム１１００ａ、１１００ｂ、１１００ｃ、１１００ｄ、１１００ｅの各々は、それぞれ対応するプロセッサ１１０１ａ、１１０１ｂ、１１０１ｃ、１１０１ｄ、１１０１ｅにより処理される。これらは、上記のプレイステーション２ゲーム機の機能の一部として、各々スタンドアロンのデジタル信号プロセッサとして、また、複数の同時操作を行うことが可能な汎用データプロセッサのソフトウェア制御操作等として、実装されるものである。もちろん、プレイステーション２ゲーム機は、この機能の一部またはすべてを実行することが可能な装置の有用な一例にすぎないと理解される。
【００４１】
入力音声ストリーム１１００は、対応するプロセッサ１１０１の入力１１０６で受信される。この入力音声ストリーム１１００は、例えば、リーダー４５０を介してＣＤやＤＶＤから受信される場合もあるし、マイクロホン７３０を介して受信される場合もある。あるいは、この入力音声ストリーム１１００は、ＲＡＭ（例えばＲＡＭ７２０）に格納される場合もある。
【００４２】
入力音声ストリーム１１００の包絡線は、包絡線プロセッサ１１０７により変調・加工される。
【００４３】
その後、高速フーリエ変換（ＦＦＴ）プロセッサ１１０８が、時間領域から周波数領域へと入力音声ストリーム１１００を変換する。もし入力音声ストリーム１１００が、一つ以上の音声チャンネルで構成されていれば、ＦＦＴプロセッサは、ＦＦＴをチャネル毎に別々に施す。ＦＦＴプロセッサ１１０８は、適切なサイズに設定された音声サンプルのウィンドウであればいかなるウィンドウでも動作可能である。好ましい実施例では、４８ｋＨｚでサンプルされた入力音声ストリーム１１００を有する１０２４サンプルのウィンドウサイズを使用する。ＦＦＴプロセッサ１１０８は、浮動小数点周波数領域サンプルか、固定ビット幅に限られている周波数領域サンプルのいずれかを出力できる。ＦＦＴプロセッサ１１０８は、時間領域から周波数領域へと入力音声ストリームを変換させるためにＦＦＴを利用するが、他のいかなる時間領域から周波数領域への変換でも利用可能であると理解される。
【００４４】
入力音声ストリーム１１００は、周波数領域データとしてプロセッサ１１０１に供給されると理解される。例えば、入力音声ストリーム１１００は、最初から周波数領域で生成された場合もある。このような場合、ＦＦＴプロセッサ１１０８はバイパスされ、プロセッサ１１０１が時間領域の入力音声ストリーム１１００を受信するときのみ、ＦＦＴプロセッサ１１０８が使用される。
【００４５】
その後、音声処理ユニット１１１２は、周波数領域に変換された入力音声ストリーム１１００に対してさまざまな音声処理を実行する。例えば、音声処理ユニット１１１２は、タイムストレッチングおよびまたはピッチシフティングを行うことができる。タイムストレッチングを実行する際、入力音声ストリーム１１００の再生時間は、入力音声ストリーム１１００の実際のピッチを変えることなく変更される。ピッチシフティングを実行する際は、入力音声ストリーム１１００のピッチは、入力音声ストリーム１１００の再生時間を変えずに変更される。
【００４６】
一旦、音声処理ユニット１１１２が、周波数領域変換された入力音声ストリーム１１００に対する処理を終えると、イコライザ１１１４は、この入力音声ストリーム１１００に対し周波数等化を行う。等化とは、周知の技術であるので本願明細書においては詳述しない。
【００４７】
イコライザ１１１４が、周波数領域変換入力音声ストリーム１１００の等化を行った後、周波数領域変換入力音声ストリーム１１００は、イコライザ１１１４からボリュームコントローラ１１１０へと出力される。ボリュームコントローラ１１１０は、入力音声ストリーム１１００のレベルを制御する役割を果たす。ボリュームコントローラ１１００は、入力音声ストリーム１１００のレベルを制御するためのいかなる周知技術も利用することが可能である。例えば、出力音声ストリーム１１０４のフォーマットが７．１サラウンドサウンドである場合、ボリュームコントローラ１１１０は、対応するスピーカー各々にひとつずつ、八つのボリュームパラメータを生成する。その結果、入力音声ストリーム１１００の出力ボリュームは、スピーカーベースで制御することができる。
【００４８】
ボリュームコントローラ１１１０が、周波数領域変換入力音声ストリーム１１００に対するボリューム処理を実行した後、エフェクトプロセッサ１１１６が周波数領域変換入力音声ストリーム１１００をさまざまな異なる方法で(例えば、入力音声ストリーム１１００の音声チャネルの各々に対する等化により）変調し、これらの変調されたバージョンをミックスする。これは、例えば反響音のような、さまざまな効果を作り出すために使用される。
【００４９】
包絡線プロセッサ１１０７、ボリュームコントローラ１１１０、音声処理ユニット１１１２、イコライザ１１１４、およびエフェクトプロセッサ１１１６により実行される音声処理は、どのような順序で行われてもよいと理解される。実際には、ある特定の音声処理効果のために、包絡線プロセッサ１１０７、ボリュームコントローラ１１１０、音声処理ユニット１１１２、イコライザ１１１４またはエフェクトプロセッサ１１１６により行われる処理がバイパスされる場合もある。しかし、ＦＦＴプロセッサ１１０８に従ったすべての処理は、ＦＦＴプロセッサ１１０８により生成される周波数領域変換入力音声ストリーム１１００を使用して、周波数領域で開始される。
【００５０】
入力音声ストリーム１１００の各々に施される音声処理は、ストリーム毎に変化する場合がある。
【００５１】
ここで予備音声ストリーム１１０２の生成について説明する。予備音声ストリーム１１０２a、１１０２ｂの各々はそれぞれ、サブバス１１０３ａ、１１０３ｂにより生成される。
【００５２】
サブバス１１０３のミキサー１１１８は、周波数領域で表される少なくとも一つの処理済み入力音声ストリーム１１００を受信して、これらの処理済み入力音声ストリーム１１００のミックスバージョンを作り出す。図６において、第一のサブバス１１０３ａのミキサー１１１８は、入力音声ストリーム１１００ａ、１１００ｂ、１１００ｃの処理済みバージョンを受信する。その後、ミックスされた音声ストリームは、イコライザ１１２０へと引き渡される。イコライザ１１２０は、イコライザ１１１４と同様の機能を実行する。その後、イコライザ１１２０の出力は、エフェクトプロセッサ１１２２に引き渡される。エフェクトプロセッサ１１２２により実行される処理は、エフェクトプロセッサ１１１６により実行される処理と同様のものである。
【００５３】
サブバスプロセッサ１１２４は、エフェクトプロセッサ１１２２からの出力を受信し、少なくとも一つの他のサブバス１１０３から受信した制御情報に従って、エフェクトプロセッサ１１２２の出力のレベルを調整する（しばしば「ダッキング」または「サイドチェーンコンプレッション(side chain compression)」と称する）。このサブバスプロセッサ１１２４はまた、少なくとも一つの他のサブバス１１０３に対して制御情報を与え、その結果、これらのサブバス１１０３は、サブバスプロセッサ１１２４により供給された制御情報に従って、その予備音声ストリームのレベルを調整できる。例えば、予備音声ストリーム１１０２ａはフットボールの試合からの音声に関連させ、一方、予備音声ストリーム１１０２ｂはそのフットボールの試合に対する解説に関連させることができる。予備音声ストリーム１１０２aおよび１１０２ｂ各々に対するサブバスプロセッサ１１２４がともに、フットボールの試合とその解説からの音声のレベルを調整するよう動作し、解説が適宜フェイドイン、フェイドアウトされる。
【００５４】
また、イコライザ１１２０、エフェクトプロセッサ１１２２、およびサブバスプロセッサ１１２４により実行される音声処理は、どのような順序で行われてもよいと理解される。実際には、特定の音声処理効果のために、イコライザ１１２０、エフェクトプロセッサ１１２２、サブバスプロセッサ１１２４により実行される処理はバイパスされる場合がある。しかしながら、これらの処理のすべては周波数領域で開始される。
【００５５】
ここで、最終的に出力される音声ストリームの生成について説明する。ミキサー１１２６は、予備音声ストリーム１１０２aおよび１１０２ｂを受信して、それらをミックスし、最初の混合出力音声ストリームを作り出す。ミキサー１１２６の出力は、イコライザ１１２８に供給される。イコライザ１１２８は、イコライザ１１２０およびイコライザ１１１４と同様の処理を実行する。イコライザ１１２８の出力は、エフェクトプロセッサ１１３０に供給される。エフェクトプロセッサ１１３０は、エフェクトプロセッサ１１２２およびエフェクトプロセッサ１１１６と同様の処理を実行する。最後に、エフェクトプロセッサ１１３０の出力は、逆ＦＦＴプロセッサ１１３２に供給される。逆ＦＦＴプロセッサ１１３２は、ＦＦＴプロセッサ１１０８により施された変換を逆にするために、すなわち、エフェクトプロセッサ１１３０により出力された音声ストリームの周波数領域表現を、時間領域表現に変換するために、逆ＦＦＴを実行する。混合出力音声ストリームが一つ以上の音声チャネルから構成されている場合は、逆ＦＦＴプロセッサ１１３２は、このチャネル毎に別々に逆ＦＦＴを施す。その後、逆ＦＦＴプロセッサ１１３２による時間領域表現出力は、少なくとも一台のスピーカー１１３４等、時間領域音声信号を受信すると想定されている適切な音声装置に供給される。
【００５６】
ＦＦＴプロセッサ１１０８および逆ＦＦＴプロセッサ１１３２の間で実行される音声処理の全ては、周波数領域で行われ、時間領域ではないと理解される。このように、時間領域入力音声ストリーム１１００の各々について、時間領域から周波数領域への変換はこれまでに一回のみである。さらに、時間領域から周波数領域への変換もこれまでに一回のみであり、かつ、これは最終の混合出力音声ストリームに対してのみ実行される。
【００５７】
実行される音声処理は、ソフトウェア、ハードウェア、またはハードウェアおよびソフトウェアの組合せにおいて行うことが可能である。上記の本発明の実施例を実現するにおいては、少なくとも一部はソフトウェアに制御されたデータ処理装置を使用し、このようなソフトウェア制御を提供しているコンピュータプログラム、およびこのようなコンピュータプログラムを格納する記憶媒体は、本発明の態様として実現可能であると理解される。
【図１】
0005010851.tif 000002
【図２】
0005010851.tif 000003
【図３】
0005010851.tif 000004
【図４】
0005010851.tif 000005
【図５】
0005010851.tif 000006
【図６】
0005010851.tif 000007