JP5055470B2 - サウンドプロセッサ - Google Patents
サウンドプロセッサ Download PDFInfo
- Publication number
- JP5055470B2 JP5055470B2 JP2007540953A JP2007540953A JP5055470B2 JP 5055470 B2 JP5055470 B2 JP 5055470B2 JP 2007540953 A JP2007540953 A JP 2007540953A JP 2007540953 A JP2007540953 A JP 2007540953A JP 5055470 B2 JP5055470 B2 JP 5055470B2
- Authority
- JP
- Japan
- Prior art keywords
- sound
- effect
- wave data
- channel
- echo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K15/00—Acoustics not otherwise provided for
- G10K15/08—Arrangements for producing a reverberation or echo sound
- G10K15/12—Arrangements for producing a reverberation or echo sound using electronic time-delay networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H2210/00—Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
- G10H2210/155—Musical effects
- G10H2210/265—Acoustic effect simulation, i.e. volume, spatial, resonance or reverberation effects added to a musical sound, usually by appropriate filtering or delays
- G10H2210/281—Reverberation or echo
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Stereophonic System (AREA)
- Electrophonic Musical Instruments (AREA)
Description
しかしながら、上記楽音信号発生装置では、全てのサウンドチャンネルからの音声データを原音として共鳴効果を付加しており、共鳴効果を付加する原音を割り当てるサウンドチャンネルを任意に設定することができない。また、共鳴効果が付加された加算音声データを割り当てるサウンドチャンネルも固定であり、任意に設定することができない。
そこで、本発明は、音響効果を付与する対象となるウェーブデータ(原音)を任意の論理サウンドチャンネルに割り当てることができ、かつ、音響効果を付与したウェーブデータを任意の論理サウンドチャンネルに割り当てることができるサウンドプロセッサ及びその関連技術を提供することを目的とする。
この構成によれば、エフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ(原音)に音響効果(例えば、エコー/リバーブ等)を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、エフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
このように任意の論理サウンドチャンネルに任意の属性を設定できるため、例えば、楽曲再生に割り当てられている論理サウンドチャンネルをエフェクト原音チャンネルに設定して、そこで再生されているウェーブデータにエコー等の音響効果を施す一方、効果音の再生に割り当てられている論理サウンドチャンネルを非エフェクトチャンネルに設定して、そこで再生されているウェーブデータには音響効果を施さないといった組み合わせが実現できる。また、再生されるウェーブデータにピッチ変換や振幅変調等を施す機能が論理サウンドチャンネルに設けられている場合、エフェクトチャンネルに割り当てられたウェーブデータに対しても同じ機能を利用できる。
このサウンドプロセッサにおいて、前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
このように、バッファからのウェーブデータの取り出しを所定時間後に行うことにより、簡易に遅延機能を構築できる。
このサウンドプロセッサにおいて、前記音響効果付与手段は、複数の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合に、当該複数のエフェクト原音チャンネルによって再生されたウェーブデータを加算する加算手段を含み、前記音響効果付与手段は、前記加算結果であるウェーブデータを前記バッファに格納し、格納してから前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
この構成によれば、複数の論理サウンドチャンネルがエフェクト原音チャンネルに設定されている場合でも、バッファに格納されるのは1チャンネル分なので、当該バッファの容量を抑制できる。
このサウンドプロセッサは、前記論理サウンドチャンネル毎に独立して、かつ、前記物理サウンドチャンネル毎に独立して、ウェーブデータに対して、任意の率で振幅変調を施す振幅変調手段をさらに備え、前記音響効果付与手段は、前記論理サウンドチャンネルである前記エフェクト原音チャンネル毎に、前記複数の物理サウンドチャンネルに対する振幅変調の前記率の平均値を算出して、前記エフェクト原音チャンネル毎に、ウェーブデータに前記平均値を乗算する平均手段をさらに含み、前記加算手段は、前記平均手段による乗算結果であるウェーブデータを加算する。
この構成によれば、複数の物理サウンドチャンネル毎に論理サウンドチャンネルのミキシングバランスが異なる場合でも、バッファに格納されるのは1チャンネル分なので、バッファの容量を抑制できる。
上記サウンドプロセッサにおいて、前記音響効果付与手段は、前記加算手段による加算結果である累積ウェーブデータから、所定ビット数の複数ビットを抽出する抽出手段と、前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記抽出手段により抽出された前記複数ビットを所定値に置き換える飽和処理手段と、をさらに含み、前記加算手段による加算結果であるウェーブデータが、前記所定ビット数によって表現可能な範囲内である場合、前記音響効果付与手段は、前記抽出手段により抽出された前記複数ビットで表されるウェーブデータをそのまま前記バッファに格納し、前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記音響効果付与手段は、前記飽和処理手段により前記所定値に置き換えられた前記複数ビットで表されるウェーブデータを前記バッファに格納し、前記音響効果付与手段は、前記所定ビット数によって表現可能な範囲を超えているか否かに応じて前記バッファに格納したウェーブデータを前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当てる。
この構成によれば、累積ウェーブデータから任意のビット列が取り出せるため、エフェクトチャンネルによって再生されるウェーブデータの振幅を最適化できる。
このサウンドプロセッサにおいて、前記抽出手段は、前記累積ウェーブデータから、前記所定ビット数の実質的に連続する前記複数ビットを抽出し、前記飽和処理手段は、前記累積ウェーブデータのうちの、抽出された前記複数ビットより上位に位置し、前記複数ビットに含まれない全ビットが、抽出された前記複数ビットの最上位ビットと同じ値を示していない場合に、抽出された前記複数ビットを前記所定値に置き換える。
上記サウンドプロセッサにおいて、前記音響効果付与手段は、前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す振幅変調手段と、前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含む。
この構成によれば、リバーブ機能を簡易に実現できる。
上記サウンドプロセッサは、デジタル信号をアナログ信号に変換するデジタル/アナログ変換手段をさらに備え、前記論理サウンドチャンネルによって処理されるウェーブデータは、PCMデータであり、前記デジタル/アナログ変換手段は、前記PCMデータをアナログ信号に変換する。
この構成によれば、論理サウンドチャンネルによって処理される対象はPCMデータ、つまり、デジタルデータなので、音響効果を付与するための処理(例えば、遅延処理など)に必要なバッファをRAM等の手段で簡単に構築できる。また、音響効果を付与するための処理(例えば、振幅変調処理など)を小規模な論理回路及び/又は小規模なソフトウェアで行うことができる。
このサウンドプロセッサは、前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル/アナログ変換手段に出力する時分割多重出力手段をさらに備える。
この構成によれば、複数の論理サウンドチャンネルのミキシングを加算器によって行わず、時分割多重化によって実現している。従って、このミキシングための加算器が不要になるばかりか、デジタル/アナログ変換手段の解像度(ビット数)を抑制でき、コスト低減を図ることができる。
このサウンドプロセッサにおいて、前記時分割多重出力手段は、前記エフェクトチャンネルによって再生されたウェーブデータを、当該エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する。
この構成によれば、時分割出力において、エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果が付与されたウェーブデータに与えることが可能になる。
本発明の第2の観点によると、サウンドシステムは、複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサと、外部から入力されたアナログ音声信号をデジタル音声信号に変換するアナログ/デジタル変換ユニットと、プログラムに従って演算処理を実行する演算処理ユニットと、を備え、前記サウンドプロセッサは、前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、第1の所定の音響効果が付与されたウェーブデータが割り当てられる第1エフェクトチャンネル、第2の所定の音響効果が付与されたウェーブデータが割り当てられる第2エフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった4つの属性の内の1つを設定するチャンネル設定手段と、1以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータを第1バッファに格納し、格納してから第1の所定時間後に取り出して再生し、前記第1エフェクトチャンネルに割り当てる第1の音響効果付与手段と、を含み、前記チャンネル設定手段は、前記4つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、前記演算処理ユニットは、前記アナログ/デジタル変換ユニットによって得られた前記デジタル音声信号を第2バッファに格納し、前記サウンドプロセッサは、前記演算処理ユニットが前記第2バッファに格納した前記デジタル音声信号を、前記第2バッファに格納されてから第2の所定時間後に取り出して再生し、前記第2エフェクトチャンネルに割り当てる第2の音響効果付与手段をさらに含む。
この構成によれば、エフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ(原音)に音響効果(例えば、エコー/リバーブ等)を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、第1のエフェクトチャンネル及び第2のエフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
また、外部から入力されたアナログ音声信号に対しても、デジタル音声信号に変換後に、音響効果を付与して、再生可能である。この場合、音響効果を付与するための一部の処理を演算処理ユニット(つまり、ソフトウェア)が行うので、音響効果を付与する構成を任意に構築できる。
このサウンドシステムにおいて、前記第1の音響効果付与手段は、前記第1バッファに格納してから前記第1の所定時間後に取り出して再生したウェーブデータに対して、第1の所定の率で振幅変調を施す振幅変調手段と、前記第1の所定時間後の再生のための前記第1バッファからのウェーブデータの読出し位置から第1の所定の距離変位された位置に格納されているウェーブデータに、前記第1の所定の率で振幅変調が施されたウェーブデータを加算する加算手段と、を含み、前記演算処理手段は、前記第2バッファに格納してから前記第2の所定時間後に取り出して再生したウェーブデータに対して、第2の所定の率で振幅変調を施し、そのウェーブデータを、前記第2の所定時間後の再生のための前記第2バッファからのウェーブデータの読出し位置から第2の所定の距離変位された位置に格納されているウェーブデータに加算する。
この構成によれば、簡易にリバーブ機能を実現できる。
上記サウンドシステムにおいて、前記サウンドプロセッサは、デジタル信号をアナログ信号に変換するデジタル/アナログ変換手段をさらに含み、前記論理サウンドチャンネルによって処理されるウェーブデータは、PCMデータであり、前記デジタル/アナログ変換手段は、前記PCMデータをアナログ信号に変換し、前記サウンドプロセッサは、前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル/アナログ変換手段に出力する時分割多重出力手段をさらに含み、前記時分割多重出力手段は、前記第1エフェクトチャンネルによって再生されたウェーブデータを、当該第1エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力し、かつ、前記第2エフェクトチャンネルによって再生されたウェーブデータを、当該第2エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する。
この構成によれば、時分割出力において、第1エフェクトチャンネル及び第2エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、第1エフェクトチャンネルによって再生されたウェーブデータ及び第2エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果が付与されたウェーブデータに与えることが可能になる。
図1は、本発明の実施の形態におけるマルチメディアプロセッサ1の内部構成を示すブロック図である。
図2は、一般的なエコーモデルの説明図である。
図3は、本発明の実施の形態におけるエコーモデルの説明図である。
図4は、本発明の実施の形態におけるエコー機能の概念図である。
図5は、本発明の実施の形態におけるマイクエコー機能の概念図である。
図6は、本発明の実施の形態における論理サウンドチャンネル及び物理サウンドチャンネルの概念図である。
図7は、図1のSPU13の内部構成を示すブロック図である。
図8は、図7のデータ処理ブロック35による時分割多重化の説明図である。
図9は、図1のメインRAM25に構成されるエコーFIFOバッファ及びマイクエコーFIFOバッファの説明図である。
図10は、図7のエコー機能ブロック55の内部構成を示すブロック図である。
図11は、図7のマイクエコー機能ブロック57の内部構成を示すブロック図である。
図12は、本発明の実施の形態におけるエコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力の例示図である。
図1は、本発明の実施の形態によるマルチメディアプロセッサ1の内部構成を示すブロック図である。図1に示すように、このマルチメディアプロセッサ1は、外部メモリインタフェース3、DMAC(direct memory access controller)4、中央演算処理装置(以下、「CPU」と呼ぶ。)5、CPUローカルRAM7、レンダリングプロセッシングユニット(以下、「RPU」と呼ぶ。)9、カラーパレットRAM11、サウンドプロセシングユニット(以下、「SPU」と呼ぶ。)13、SPUローカルRAM15、ジオメトリエンジン(以下、「GE」と呼ぶ。)17、Yソーティングユニット(以下、「YSU」と呼ぶ。)19、外部インタフェースブロック21、メインRAMアクセスアービタ23、メインRAM25、I/Oバス27、ビデオDAC(digital to analog converter)29、オーディオDACブロック31、及びA/Dコンバータ(以下、「ADC」と呼ぶ。)33を具備する。メインRAM25及び外部メモリ50を区別して説明する必要がないときは、「メモリMEM」と表記する。
CPU5は、メモリMEMに格納されたプログラムを実行して、各種演算やシステム全体の制御を行う。また、CPU5は、DMAC4にプログラム及びデータの転送要求を行うこともできるし、DMAC4を介さずに、外部メモリ50から直接プログラムコードをフェッチし、外部メモリ50に直接データアクセスを行うこともできる。
I/Oバス27は、CPU5をバスマスタとするシステム制御用のバスであり、バススレイブである各機能ユニット(外部メモリインタフェース3、DMAC4、RPU9、SPU13、GE17、YSU19、外部インタフェースブロック21、及びADC33)の制御レジスタ及びローカルRAM7,11,15へのアクセスに用いられる。このようにして、これらの機能ユニットは、I/Oバス27を通じて、CPU5により制御される。
CPUローカルRAM7は、CPU5専用のRAMであり、サブルーチンコールや割り込み時におけるデータの退避などを行うためのスタック領域、及びCPU5のみが扱う変数の格納領域等として使用される。
RPU9は、ポリゴン及びスプライトから構成される三次元イメージをリアルタイムに生成する。具体的には、RPU9は、YSU19によるソート済みの、ポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、メインRAM25から読み出し、所定の処理を実行して、スクリーン(表示画面)のスキャンに合わせて水平ラインごとにイメージを生成する。生成されたイメージは、コンポジットビデオ信号波形を示すデータストリームに変換され、ビデオDAC29に出力される。また、RPU9は、DMAC4に対して、ポリゴン及びスプライトのテクスチャパターンデータの取り込みのためのDMA転送要求を行う機能を有する。
テクスチャパターンデータとは、ポリゴンまたはスプライトに貼り付けられる2次元の画素配列データであり、各画素データは、カラーパレットRAM11のエントリを指定するための情報の一部である。以降、テクスチャパターンデータの画素を「テクセル」と呼称し、スクリーンに表示されるイメージを構成する画素を指す「ピクセル」とは区別して使用する。従って、テクスチャパターンデータは、テクセルデータの集合である。
ポリゴン構造体配列は、多角形状のグラフィック要素であるポリゴンのための構造体配列であり、スプライト構造体配列は、スクリーンに平行な矩形のグラフィック要素であるスプライトのための構造体配列である。ポリゴン構造体配列の要素を、「ポリゴン構造体インスタンス」と呼び、スプライト構造体配列の要素を、「スプライト構造体インスタンス」と呼ぶ。ただし、両者を区別して説明する必要がないときは、単に「構造体インスタンス」と呼ぶこともある。
ポリゴン構造体配列に格納された各ポリゴン構造体インスタンスは、ポリゴンごとの表示情報(スクリーンにおける頂点座標、テクスチャマッピングモードでのテクスチャパターンに関する情報及びグーローシェーディングモードでのカラーデータ(RGBのカラーコンポーネント)を含む。)であり、1つのポリゴン構造体インスタンスに1つのポリゴンが対応している。スプライト構造体配列に格納された各スプライト構造体インスタンスは、スプライトごとの表示情報(スクリーンにおける座標及びテクスチャパターンに関する情報を含む。)であり、1つのスプライト構造体インスタンスに1つのスプライトが対応している。
ビデオDAC29は、アナログのビデオ信号を生成するためのデジタル/アナログ変換器である。ビデオDAC29は、RPU9から入力されたデータストリームをアナログのコンポジットビデオ信号に変換し、ビデオ信号出力端子(図示せず)からテレビジョンモニタ等(図示せず)に出力する。
カラーパレットRAM11は、本実施の形態では512色すなわち512エントリのカラーパレットからなる。RPU9は、テクスチャパターンデータに含まれるテクセルデータをカラーパレットのエントリを指定するインデックスの一部として、カラーパレットRAM11を参照し、テクスチャパターンデータを、カラーデータ(RGBのカラーコンポーネント)に変換する。
本発明の特徴の1つであるSPU13は、PCM(pulse code modulation)波形データ(以下、「ウェーブデータ」と呼ぶ。)、アンプリチュードデータ、及びメインボリュームデータを生成する。具体的には、SPU13は、最大64チャンネル分のウェーブデータを生成して時分割多重化するとともに、最大64チャンネル分のエンベロープデータを生成してチャンネルボリュームデータと乗算し、アンプリチュードデータを時分割多重化する。そして、SPU13は、メインボリュームデータ、時分割多重化されたウェーブデータ、及び時分割多重化されたアンプリチュードデータを、オーディオDACブロック31に出力する。また、SPU13は、DMAC4に対して、ウェーブデータ及びエンベロープデータの取り込みのためのDMA転送要求を行う機能を有する。SPU13の詳細は後述する。
本発明の特徴の1つであるオーディオDACブロック31は、SPU13から入力されたウェーブデータ、アンプリチュードデータ、及びメインボリュームデータをそれぞれアナログ信号に変換し、結果をアナログ乗算して、アナログオーディオ信号を生成する。このアナログオーディオ信号は、オーディオ信号出力端子(図示せず)からテレビジョンモニタ等(図示せず)のオーディオ入力端子(図示せず)に出力される。
SPUローカルRAM15は、SPU13がウェーブ再生及びエンベロープ生成を行う際に用いるパラメータ(例えば、ウェーブデータやエンベロープデータの格納アドレスやピッチ情報など)を格納する。
GE17は、三次元イメージを表示するための幾何演算を実行する。具体的には、GE17は、行列積、ベクトルアフィン変換、ベクトル直交変換、透視投影変換、頂点明度/ポリゴン明度計算(ベクトル内積)、及びポリゴン裏面カリング処理(ベクトル外積)などの演算を実行する。
YSU19は、メインRAM25に格納されているポリゴン構造体配列の各構造体インスタンス及びスプライト構造体配列の各構造体インスタンスを、ソートルール1〜4に従ってソートする。この場合、ポリゴン構造体配列とスプライト構造体配列とで、別個にソートが行われる。
以下、YSU19によるソートルール1〜4について説明するが、その前に座標系について説明する。テレビジョンモニタ等のディスプレイ装置(図示せず)への実際の表示に用いられる二次元座標系をスクリーン座標系と呼ぶ。本実施の形態では、スクリーン座標系は、水平方向2048ピクセル×垂直方向1024ピクセルの2次元ピクセル配列から構成される。座標原点は左上にあり、右方向がX軸の正、下方向がY軸の正に相当する。ただし、実際に表示される領域は、スクリーン座標系の全空間ではなく一部の空間である。この表示領域をスクリーンと呼ぶことにする。ソートルール1〜4におけるY座標はスクリーン座標系の値である。
ソートルール1は、最小Y座標が小さい順に、各ポリゴン構造体インスタンスを並べ替えることである。最小Y座標とは、ポリゴンの全頂点のY座標のうち、最も小さいY座標のことである。ソートルール2は、最小Y座標が同じである複数のポリゴンについては、デプス値が大きい順に、各ポリゴン構造体インスタンスを並べることである。なお、デプス値が大きいほど奥に描画される。
ただし、YSU19は、スクリーンの先頭ラインに表示されるピクセルを持つ複数のポリゴンについては、最小Y座標が異なっている場合でも、それらが同一であるとみなして、ソートルール1ではなく、ソートルール2に従って、各ポリゴン構造体インスタンスの並べ替えを行う。つまり、スクリーンの先頭ラインに表示されるピクセルを持つポリゴンが複数存在する場合は、最小Y座標が同一であるとみなして、デプス値が大きい順に並べ替えられる。これがソートルール3である。
インタレーススキャンの場合でも、ソートルール1〜3が適用される。ただし、奇数フィールドを表示するためのソートでは、奇数ラインに表示されるポリゴンの最小Y座標及び/又はその奇数ラインの1つ前の偶数ラインに表示されるポリゴンの最小Y座標が同一であるとみなして、ソートルール2によるソートを行う。ただし、先頭の奇数ラインは除く。なぜなら、その1つ前の偶数ラインが存在しないからである。一方、偶数フィールドを表示するためのソートでは、偶数ラインに表示されるポリゴンの最小Y座標及び/又はその偶数ラインの1つ前の奇数ラインに表示されるポリゴンの最小Y座標が同一であるとみなして、ソートルール2によるソートを行う。これがソートルール4である。
スプライトに関するソートルール1〜4は、それぞれポリゴンに関するソートルール1〜4と同様である。
外部メモリインタフェース3は、外部バス51を介して、外部メモリ50からのデータの読み出し、及び外部メモリ50へのデータの書き込みを司る。この場合、外部メモリインタフェース3は、図示しないEBI優先順位テーブルに従って、CPU5及びDMAC4からの外部バスアクセス要求要因(外部バス51へのアクセスを要求する要因)を調停して、いずれか1つの外部バスアクセス要求要因を選択する。そして、選択した外部バスアクセス要求要因に対して外部バス51へのアクセスを許可する。EBI優先順位テーブルは、CPU5からの複数種類の外部バスアクセス要求要因及びDMAC4からの外部バスアクセス要求要因の優先順位を定めたテーブルである。
外部バスアクセス要求要因として、CPUに含まれる図示しないIPL(initial program loader)によるブロック転送要求、CPU5によるデータアクセス要求、CPU5による命令フェッチ要求、及びDMAC4によるDMA要求がある。
DMAC4は、メインRAM25と、外部バス51に接続された外部メモリ50と、の間でDMA転送を行う。この場合、DMAC4は、図示しないDMA優先順位テーブルに従って、CPU5、RPU9、及びSPU13からのDMA転送要求要因(DMA転送を要求する要因)を調停して、いずれか1つのDMA転送要求要因を選択する。そして、外部メモリインタフェース3に対して、DMA要求を行う。DMA優先順位テーブルは、CPU5、RPU9、及びSPU13からのDMA要求要因の優先順位を定めたテーブルである。
SPU13のDMA要求要因として、(1)ウェーブデータをウェーブバッファに転送すること、(2)エンベロープデータをエンベロープバッファに転送すること、がある。ウェーブバッファ及びエンベロープバッファは、それぞれメインRAM25上に設定されるウェーブデータ及びエンベロープデータのテンポラリ格納領域である。なお、SPU13の2つのDMA要求要因間の調停は、SPU13内のハードウェア(図示せず)で行われ、DMAC4は関知しない。
RPU9のDMA要求要因として、テクスチャパターンデータをテクスチャバッファに転送すること、がある。テクスチャバッファは、メインRAM25上に設定されるテクスチャパターンデータのテンポラリ格納領域である。
CPU5のDMA要求要因として、(1)仮想記憶管理においてページミスが発生した場合のページ転送、(2)アプリケーションプログラム等が要求するデータ転送、がある。なお、CPU5内で複数のDMA転送要求が同時に発生した場合は、その調停はCPU5で実行されるソフトウェアにて行われ、DMAC4は関知しない。
外部インタフェースブロック21は、周辺装置54とのインタフェースであり、24チャンネルのプログラマブルなデジタル入出力(I/O)ポートを含む。24チャンネルのI/Oポートの各々は、4チャンネル分のマウスインタフェース機能、4チャンネル分のライトガンインタフェース機能、2チャンネル分の汎用タイマ/カウンタ、1チャンネル分の調歩同期式シリアルインタフェース機能、1チャンネル分の汎用パラレル/シリアル変換ポート機能のうち1または複数に内部接続されている。
ADC33は、4チャンネルのアナログ入力ポートに接続され、これらを介して、アナログ入力装置52から入力されたアナログ信号をデジタル信号に変換する。例えば、マイク音声等のアナログ入力信号をサンプリングしてデジタルデータに変換する。
メインRAMアクセスアービタ23は、機能ユニット(CPU5、RPU9、GE17、YSU19、DMAC4、及び外部インタフェースブロック21(汎用パラレル/シリアル変換ポート))からのメインRAM25へのアクセス要求を調停して、いずれかの機能ユニットにアクセス許可を出す。
メインRAM25は、CPU5のワーク領域、変数格納領域、および仮想記憶管理領域等として利用される。また、メインRAM25は、CPU5が他の機能ユニットに受け渡すデータの格納領域、RPU9及びSPU13が外部メモリ50からDMAによって取得したデータの格納領域、GE17及びYSU19の入力データ及び出力データの格納領域等としても使用される。
外部バス51は、外部メモリ50にアクセスするためのバスである。CPU5およびDMAC4から、外部メモリインタフェース3を介してアクセスされる。外部バス51のアドレスバスは、30ビットから成り、最大で1Gバイト(=8Gビット)の外部メモリ50を接続することができる。外部バス51のデータバスは、16ビットから成り、8ビット又は16ビットのデータバス幅を持つ外部メモリ50を接続できる。異なるデータバス幅を持つ外部メモリを同時に接続可能であり、アクセスする外部メモリによってデータバス幅を自動的に切り替える機能が備えられる。
以下、SPU13の機能について詳細に説明していく。まず、使用する用語について説明する。一般的に、エコーとは、ある音が壁や天井などに反射する場合に発生する、明確に原音が判別可能な反射音を指し、リバーブとは、個々の音の判別ができない残響音のことを指す。
図2は、一般的なエコーモデルの説明図である。図2には、音楽ホール等におけるエコー及びリバーブの一般的なモデルが示されている。このモデルにおいて、初期遅延時間は、音源と反射壁との距離によって決まる。初期反射音は、一般的にエコーと呼ばれるものであり、原音が遅延・減衰して聞こえる音である。音色は聴感上ほぼ原音に近い音として聞こえる。初期反射音の大きさと音色は、反射壁の大きさや材質によって変化する。残響音は、一般的にリバーブと呼ばれるものであり、原音や反射音が天井,床,客席,観客といった様々な物体に反射して聞こえる音である。通常、残響音だけを聞いても原音がどのような音であるかの判別はできない。残響音の大きさ,音色,持続時間は、ホールの容積,形状,材質等の様々な要素によって変化する。
このようなモデルをリアルタイムで完全にシミュレートするためには、非常に複雑な演算を高速に処理する必要があるため、本実施の形態では、簡易なモデルで擬似的にエコー及びリバーブを再現する。本実施の形態では、エコーとリバーブとを統一的に扱う音声遅延モデルを提供する。このモデルを実現する機能を「エコー機能」と呼ぶことにする。
図3は、本発明の実施の形態におけるエコーモデルの説明図である。このモデルにおいて、エコー遅延時間は、メインRAM25上に構成されるエコーFIFOバッファによって作り出される。つまり、エコーソースに指定された(つまり、エコー機能によって音響効果を付与する対象となるウェーブデータが割り当てられる)論理サウンドチャンネルによって再生されたウェーブデータの総和がエコーFIFOバッファに順次格納され、格納されたウェーブデータ(総和)を一定時間経過後に取り出して再生することにより、遅延を発生させる。
ここで、エコーソースに指定された論理サウンドチャンネルを「エフェクト原音チャンネル」、エコー成分としてのウェーブデータ(つまり、エコー機能により音響効果が付与されたウェーブデータ)が割り当てられる論理サウンドチャンネルを「エフェクトチャンネル」、通常の音成分としてのウェーブデータ(つまり、エコー機能により音響効果が付与されないウェーブデータ)が割り当てられる論理サウンドチャンネルを「非エフェクトチャンネル」と呼ぶこともある。
ここで、物理線に対応するサウンドチャンネルを物理サウンドチャンネルと呼び、物理サウンドチャンネルに出力するウェーブデータを再生するサウンドチャンネルである論理サウンドチャンネルとは明確に区別する。
以下では、単に「サウンドチャンネル」と言う場合は、論理サウンドチャンネルを意味する。また、本実施の形態では、左右2つの物理サウンドチャンネルを設定している。従って、左音声信号(左ウェーブデータ)を再生する物理サウンドチャンネルを「左チャンネル」、右音声信号(右ウェーブデータ)を再生する物理サウンドチャンネルを「右チャンネル」と呼ぶ。
さて、リバーブ遅延時間もまた、メインRAM25上に構成されるエコーFIFOバッファによって作り出される。但し、リバーブ遅延時間を経て再生されるウェーブデータは、リバーブを再現するために、減衰しながら繰り返し再生される。つまり、エフェクトチャンネルによって再生されたウェーブデータとエコーリリースレートERとを乗算し、乗算結果をエコーFIFOバッファに格納されているウェーブデータに加算することで、図のような波形を生成する。
エフェクトチャンネルによって再生されたウェーブデータに基づく音のレベルを「En」、その後リバーブ遅延時間を経てエフェクトチャンネルによって再生するウェーブデータに基づく音のレベルを「E(n+1)」とすると、エコーリリースレートERは、次式で表される。
ER=E(n+1)/E(n)
なお、本実施の形態では、エコー機能及び後述のマイクエコー機能を使用しない場合は、64のサウンドチャンネルを再生可能であるが、エコー機能あるいはマイクエコー機能を用いる場合は、再生可能なサウンドチャンネルの数は48以下に制限される。従って、48のサウンドチャンネルの中からエコー成分を再生するための1つのエフェクトチャンネルを設定する必要がある。
本実施の形態では、ADC33から入力された音声データに対するエコー及びリバーブについてもハードウェアでサポートしている。この機能をマイクエコー機能と呼ぶことにする。マイクエコー機能も、エコー機能と同様に、メインRAM25上に、遅延のためのマイクエコーFIFOバッファを構成する。但し、リバーブのために必要とされる演算は、CPU5が行う。
なお、本実施の形態では、マイクエコー機能を用いる場合は、再生可能なサウンドチャンネルの数は48以下に制限されるので、48のサウンドチャンネルの中からマイクエコー成分を再生するための1つのエフェクトチャンネルを設定する必要がある。もちろん、エコー機能及びマイクエコー機能の双方を使用することもできるので、この場合は、それぞれに対して、エフェクトチャンネルを設定する。
図4は、本発明の実施の形態におけるエコー機能の概念図である。図4を参照して、エコー機能は、エコーブロックEB0〜EB(N−1)、加算器Ap、ファネルシフタ/飽和処理回路FS、エコーFIFOバッファBa,Bb、加算器Al、及び乗算器Mlを含む。エコーブロックEB0〜EB(N−1)の各々は、乗算器Mp及びスイッチSWを含む。また、エコーブロックEB0〜EB(N−1)は、対応するサウンドチャンネル#0〜(N−1)のアンプリチュード左右平均値算出部AM0〜AM(N−1)を含む。そして、サウンドチャンネル#0〜(N−1)のウェーブデータW0〜W(N−1)、左アンプリチュードデータAML0〜AML(N−1)、及び右アンプリチュードデータAMR0〜AMR(N−1)が、対応するエコーブロックEB0〜EB(N−1)に入力される。
左アンプリチュードデータAL0〜AL(N−1)と右アンプリチュードデータAR0〜AR(N−1)の平均値が、アンプリチュード左右平均値算出部AM0〜AM(N−1)によって算出され、アンプリチュード左右平均値ALR0〜ALR(N−1)としてエコーブロックEB0〜EB(N−1)内で生成される。「N」は整数であり、1から48までの値をとることができる。
ここで、サウンドチャンネル#0〜#(N−1)、エコーブロックEB0〜EB(N−1)、並びに、サウンドチャンネル#0〜#(N−1)のウェーブデータW0〜W(N−1)及びアンプリチュード左右平均値ALR0〜ALR(N−1)を、包括的に表現するときは、それぞれ、サウンドチャンネル#n、エコーブロックEBn、並びに、サウンドチャンネル#nのウェーブデータWn及びアンプリチュード左右平均値ALRnと表記する。
さて、サウンドチャンネル#0〜#(N−1)のうちの任意のサウンドチャンネルをエフェクト原音チャンネルに設定できる。つまり、サウンドチャンネル#nのエコーブロックEBnのスイッチSWをオンにすることにより、当該サウンドチャンネル#nがエフェクト原音チャンネルに設定される。
エコーソースとなるウェーブデータは、エフェクト原音チャンネルに設定されたサウンドチャンネル#nのウェーブデータWnとアンプリチュードの左右平均値ALRnとの乗算結果EMnである。つまり、エフェクト原音チャンネルに設定されたサウンドチャンネル#nのウェーブデータWnとアンプリチュード左右平均値ALRnとが、エコーブロックEBnの乗算器Mpによって乗算され、乗算結果EMnが得られる。
エコーブロックEBnのスイッチSWは、サウンドチャンネル#nがエフェクト原音チャンネルに設定されている場合にオンするため、サウンドチャンネル#n毎に算出された乗算結果EMnは、エフェクト原音チャンネルに設定されたサウンドチャンネル#nに限って、加算器Apによって互いに加算され、総和σが算出される。これを数式で表すと、下記のようになる。
総和σは、22ビットの値として得られる。ファネルシフタ/飽和処理回路FSのファネルシフタは、エコーシグマウィンドウ値に従って、総和σの22ビットのデータの中から連続した8ビットを抽出する。エフェクト原音チャンネルに設定されたサウンドチャンネル#nの数、エコーソースのウェーブデータWnの振幅、並びにアンプリチュードデータAMLn及びAMRnの振幅によって、総和σの結果が大きく異なるため、このファネルシフタは、値を正規化するために設けられている。
その結果、ファネルシフタ/飽和処理回路FSは、8ビットのウェーブデータを後段に出力する。但し、総和σが、8ビットで表現可能な範囲を超えている場合、8ビットのウェーブデータは、8ビット中の最上位ビットである符号ビットの値に応じて、ファネルシフタ/飽和処理回路FSの飽和処理回路により、所定値に飽和される。
ファネルシフタ/飽和処理回路FSからの8ビットのウェーブデータは、メインRAM25上に設けられたエコーFIFOバッファBaに順次入力される。入力された値は、エコーFIFOバッファBa及びBbの全エントリを経過した後に、音響効果(エコー及びリバーブ)が付与されたウェーブデータとしてエフェクトチャンネルから出力される。
従って、エコー遅延時間Techo(図3参照)は、エコーFIFOバッファBaのエントリ数Na及びエコーFIFOバッファBbのエントリ数Nbと、エコーFIFOバッファBa及びBbにウェーブデータが入力される周波数fecho(Hz)とから算出することができる。次式は、エコー遅延時間Techo(秒)の算出式である。
リバーブ遅延時間Treverb(図3参照)は、エコーFIFOバッファBbのエントリ数Nbと、エコーFIFOバッファBa及びBbにウェーブデータが入力される周波数fecho(Hz)とから算出できる。次式は、リバーブ遅延時間Treverb(秒)の算出式である。
図5は、本発明の実施の形態におけるマイクエコー機能の概念図である。図5を参照して、マイクエコー機能は、ADC25、CPU5、マイクエコーFIFOバッファMBa,MBb、加算器As、及び乗算器Msを含む。
ADC25は、マイク等の外部アナログ入力装置52からのアナログ音声信号を10ビットのデジタルデータに変換する。この10ビットのデジタルデータは符号無しの値であるため、CPU5は、このデジタルデータを8ビットの符号付きの値(−127〜+127の範囲)に変換して、マルチメディアプロセッサ1に適合する形式のPCMウェーブデータとする。
1サンプルあたり8ビットのPCMウェーブデータは、メインRAM25上に設けられたマイクエコーFIFOバッファMBaに、CPU5によって順次入力される。入力されたPCMウェーブデータは、マイクエコーFIFOバッファMBa及びMBbの全エントリを経過した後に、音響効果(エコー及びリバーブ)が付与されたウェーブデータとして、エフェクトチャンネルから出力される。したがって、マイクエコー機能のエコー遅延時間は、エコー機能の場合と同様に(数1)により、マイクエコーFIFOバッファMBa及びMBbのエントリ数の総和と、マイクエコーFIFOバッファMBa及びMBbにウェーブデータが入力される周波数とから算出できる。
マイクエコーFIFOバッファMBbから出力された値は、マイクエコー成分たるウェーブデータとしてエフェクトチャンネルから出力されるとともに、乗算器Msに出力されて、マイクエコーリリースレートと乗算される。この乗算結果は、加算器Asによって、エコーFIFOバッファMBaから出力されたウェーブデータと加算され、マイクエコーFIFOバッファMBbに書き込まれる。なお、マイクエコーリリースレートは、エコーリリースレートERと同様のものである。
この場合、乗算器Msによる乗算と加算器Asによる加算は、エコー機能の場合と異なりハードウェアではサポートされていないので、CPU5(つまり、ソフトウェア)が行う。従って、CPU5の処理内容を変更することにより、マイクエコー機能を実現するための構成内容を柔軟に変更できる。
マイクエコー機能のリバーブ遅延時間は、エコー機能の場合と同様に(数2)により、マイクエコーFIFOバッファMBbのエントリ数と、マイクエコーFIFOバッファMBa及びMBbにウェーブデータが入力される周波数とから算出できる。
図6は、本発明の実施の形態における論理サウンドチャンネル及び物理サウンドチャンネルの概念図である。但し、この概念図は人間の聴覚に基づいて論理サウンドチャンネル及び物理サウンドチャンネルの構成を示す図であり、本発明の実施の形態における回路実装例とは必ずしも各部の構成が一致しない。図6を参照して、設定される論理サウンドチャンネル#0〜#(K−1)に対応して、デジタルブロックDIB0〜DIB(K−1)が設けられる。「K」は整数であり、1から64の値をとることができる。アナログブロックANBは、左チャンネル(物理サウンドチャンネル)に対応した、乗算器ML0〜ML(K−1)、加算器ADL、及び乗算器MLO、並びに、右チャンネル(物理サウンドチャンネル)に対応した、乗算器MR0〜MR(K−1)、加算器ADR、及び乗算器MRO、を含む。乗算器ML0〜ML(K−1)は、それぞれ、デジタルブロックDIB0〜DIB(K−1)からの入力WVL0〜WVL(K−1)並びにAML0〜AML(K−1)を受け、乗算器MR0〜MR(K−1)は、それぞれ、デジタルブロックDIB0〜DIB(K−1)からの入力WVR0〜WVR(K−1)並びにAMR0〜AMR(K−1)を受ける。
別の言い方をすれば、デジタルブロックDIB0〜DIB(K−1)は、それぞれ、論理サウンドチャンネル#0〜#(K−1)の再生部に相当する。また、アナログブロックANBは、論理サウンドチャンネルから物理サウンドチャンネルへの変換部(左チャンネルへの変換部及び右チャンネルへの変換部)に相当する。また、アナログブロックANBから出力される音声出力信号AULは、左チャンネル(物理サウンドチャンネル)に相当し、アナログブロックANBから出力される音声出力信号AURは、右チャンネル(物理サウンドチャンネル)に相当する。
ここで、論理サウンドチャンネル#0〜#(K−1)を包括的に表現するときは、サウンドチャンネル#kと表記し、デジタルブロックDIB0〜DIB(K−1)を包括的に表現するときは、デジタルブロックDIBkと表記し、乗算器ML0〜ML(K−1)を包括的に表現するときは、乗算器MLkと表記し、乗算器MR0〜MR(K−1)を包括的に表現するときは、乗算器MRkと表記する。なお、エコー機能(マイクエコー機能)が使用される場合の論理サウンドチャンネル#0〜#(N−1)(N=1〜48)は、論理サウンドチャンネル#0〜#(K−1)(K=1〜64)のうちのn個である。
デジタルブロックDIBkは、対応する論理サウンドチャンネル#kの再生処理を行う。デジタルブロックDIBkの各々は、スイッチSWz、ウェーブバッファWBFk、エフェクトFIFOバッファEBF、スイッチSWf、補間フィルタIF、スイッチSWs、エンベロープバッファEVBFk、スイッチSWt、および乗算器MP,MPL,MPRを含む。ここで、前述のエコーFIFOバッファ及びマイクエコーFIFOバッファを包括して、エフェクトFIFOバッファEBFと表記している。
PCMウェーブデータは、8ビット単位のデータストリームであり、通常、予め外部メモリ50に格納される。論理サウンドチャンネル#kの再生が開始されると、SPU13は、DMAC4にPCMウェーブデータの取得要求を開始する。DMAC4は、SPU13からの要求に応じて、PCMウェーブデータを外部メモリ50からメインRAM25上に確保されたウェーブバッファWBFkへと転送する。このときは、スイッチSWzはオンされている。
但し、SPU13は、CPU5による圧縮PCMウェーブデータの解凍等が行われる場合、スイッチSWzをオフにして、DMAC4によるPCMウェーブデータの取得をディセーブルにする。この場合は、CPU5が直接ウェーブバッファWBFkにPCMウェーブデータを書き込む。
SPU13は、スイッチSWfをウェーブバッファWBFk側と短絡し、ウェーブバッファWBFkに格納されたPCMウェーブデータをウェーブデータWkとして後段に送出する。
一方、論理サウンドチャンネル#kがエコー成分を再生するエフェクトチャンネルに設定されている場合には、エコー成分たるPCMウェーブデータは、SPU13によってエフェクトFIFOバッファEBF(エコーFIFOバッファ)に書き込まれる。この場合は、スイッチSWfがエフェクトFIFOバッファEBF側と短絡されるため、このバッファEBFから順次エコー成分たるPCMウェーブデータがウェーブデータWkとして後段に送出される。
また、論理サウンドチャンネル#kがマイクエコー成分を再生するエフェクトチャンネルに設定されている場合には、マイクエコー成分たるPCMウェーブデータは、CPU5によってエフェクトFIFOバッファEBF(マイクエコーFIFOバッファ)に書き込まれる。この場合は、スイッチSWfがエフェクトFIFOバッファEBF側と短絡されるため、このバッファEBFから順次マイクエコー成分たるPCMウェーブデータが後段に送出される。
SPU13では、ウェーブバッファWBFkからの読み出し速度を変えることで、ピッチ変換が行われる。ピッチ変換に伴うエイリアスノイズの増加を防ぎ、滑らかな波形を再生するために、PCMウェーブデータの補間を行う補間フィルタIFが搭載される。補間を行うか否かの切り替えは、全論理サウンドチャンネル#0〜#(K−1)に対して一括して行われる。補間を行う場合は、スイッチSW2が補間フィルタIF側に短絡され、補間後のPCMウェーブデータが後段に送出される。一方、補間を行わない場合は、スイッチSWsがスイッチSWf側に直接短絡され、補間なしのPCMウェーブデータが後段に送出される。
スイッチSWsからのPCMウェーブデータは、左チャンネルと右チャンネルと(左右の物理サウンドチャンネル)の両方の変換部に出力される。ここで、左チャンネルの変換部に出力されたPCMウェーブデータを左ウェーブデータWVLkと表記し、右チャンネルの変換部に出力されたPCMウェーブデータを右ウェーブデータWVRkと表記する。
さて、一方、エンベロープの各サンプルの生成方法は、シーケンシャルモードとリリースモードとで異なる。シーケンシャルモードでは、DMAC4がSPU13からの要求に応じて外部メモリ50からメインRAM25上に確保されたエンベロープバッファEVBFkにエンベロープデータ列を転送し、SPU13がエンベロープデータ列をデコードしてエンベロープサンプルEVSkを随時生成する。この場合、スイッチSWtは、エンベロープサンプルEVSk側に短絡されており、エンベロープサンプルEVSkが、エンベロープデータEVDkとして、後段に送出される。
一方、リリースモードでは、乗算器MPによって、前回のエンベロープデータEVDkに、SPUローカルRAM15に格納されたエンベロープリリースレートEVRkが掛け合わせられ、エンベロープサンプルが生成される。この場合は、スイッチSWtが乗算器MP側に短絡され、乗算器MPからのエンベロープサンプルが、エンベロープEVDkとして後段に送出される。
左チャンネルのゲインGLk及び右チャンネルのゲインGRkは、論理サウンドチャンネル#k毎にSPUローカルRAM15に格納される。乗算器MPLは、エンベロープデータEVDk(16ビット)とゲインGLk(8ビット)とを乗算して、左チャンネルのアンプリチュードデータAMLk(16ビット)を生成する。乗算器MPRは、エンベロープデータEVDk(16ビット)とゲインGRk(8ビット)とを乗算して、右チャンネルのアンプリチュードデータAMRk(16ビット)を生成する。
さて、アナログブロックANBの乗算器MLkには、対応するデジタルブロックDIBkの左ウェーブデータWVLkと左アンプリチュードデータAMLk(整数部8ビット)とが入力され、これらを乗算する。乗算器MRkには、対応するデジタルブロックDIBkの右ウェーブデータWVRkと右アンプリチュードデータAMRk(整数部8ビット)とが入力され、これらを乗算する。
ウェーブデータWVLkとアンプリチュードデータAMLkとの乗算結果から得られる論理サウンドチャンネル#kの左音声信号は、加算器ADLによって、再生中の他の全ての論理サウンドチャンネルの左音声信号と加算される。そして、乗算器MLOは、この加算結果に8ビットのメインボリュームデータMVを乗算し、最終的な左チャンネルの音声出力信号AULを生成する。
ウェーブデータWVRkとアンプリチュードデータAMRkとの乗算結果から得られる論理サウンドチャンネル#kの右音声信号は、加算器ADRによって、再生中の他の全ての論理サウンドチャンネルの右音声信号と加算される。そして、乗算器MROは、この加算結果に8ビットのメインボリュームデータMVを乗算し、最終的な右チャンネルの音声出力信号AURを生成する。
図7は、図1のSPU13の内部構成を示すブロック図である。図7を参照して、SPU13は、データ処理ブロック35、コマンド処理ステートマシン37、制御レジスタセット39、DMAリクエスタ41、メインRAMインタフェース43、クロストーク低減回路45、およびSPUローカルRAMインタフェース47を含む。データ処理ブロック35は、エコー機能ブロック55およびマイクエコー機能ブロック57を含む。
コマンド処理ステートマシン37は、CPU5がI/Oバス27を通じて発行するコマンドに応じて、SPU13のコマンド実行における状態制御を行う。発行されるコマンドの種類は、「START」、「STOP」、「UPDATE」、及び「NOP」の4種類である。これらのコマンドは、コマンド処理ステートマシン37のSPUコマンドレジスタ38に、対象となる論理サウンドチャンネルの番号kと共に書き込まれる。
コマンドSTARTは、指定された論理サウンドチャンネル#kの再生を開始させる命令である。CPU5は、このコマンドSTARTの発行前に、SPUローカルRAM15に再生に必要なパラメータを予め書き込んでおく。コマンドSTOPは、指定された論理サウンドチャンネル#kの再生を停止させる命令である。
コマンドUPDATEは、論理サウンドチャンネル#kの再生中に、再生に用いられるパラメータの一部を更新させる命令である。CPU5は、このコマンドUPDATEの発行前に、SPU13内の対応する制御レジスタ(次に説明する制御レジスタセット39に含まれる。)に更新するパラメータを予め書き込んでおく。コマンドNOPは、特に何の処理も行わせない命令である。
制御レジスタセット39は、SPUコマンドレジスタ38以外のSPU13を制御するための複数の制御レジスタ(図示せず)を含む。
例えば、制御レジスタセット39は、エコー機能設定レジスタ(図示せず)を含む。エコー機能設定レジスタには、非エフェクトチャンネルに設定(「00」)、エフェクト原音チャンネルに設定(「01」)、エコー成分に対するエフェクトチャンネルに設定(「10」)、マイクエコー成分に対するエフェクトチャンネルに設定(「11」)、のうちのいずれかの値が設定される。コマンドSTARTが発行されると、対象となる論理サウンドチャンネルには、そのときのエコー機能設定レジスタの値に従った属性(非エフェクトチャンネル、エフェクト原音チャンネル、エコー成分に対するエフェクトチャンネル、あるいはマイクエコー成分に対するエフェクトチャンネルのいずれか)が設定される。従って、CPU5がエコー機能設定レジスタにアクセスすることにより、各論理サウンドチャンネルに、いずれの属性でも設定できる。もちろん、いずれの論理サウンドチャンネルにもエコー成分に対するエフェクトチャンネル及び/又はマイクエコー成分に対するエフェクトチャンネルを設定しないこともできる。
DMAリクエスタ41は、コマンド処理ステートマシン37からの指示に従い、ウェーブデータ及びエンベロープデータを外部メモリ50から取得するために、DMAC4に対してDMA転送要求を発行する。また、DMA転送によって取得したデータをデータ処理ブロック35に出力する。
データ処理ブロック35は、ウェーブデータの取得及び再生、エンベロープデータの取得及びデコード、アンプリチュードデータの生成、エコー処理、並びに、マイクエコー処理を行う。
そして、データ処理ブロック35は、左チャンネルに対する複数の論理サウンドチャンネル#kのウェーブデータWVLkを時分割多重化し、左チャンネルウェーブデータMWLとして、クロストーク低減回路45に出力する。また、データ処理ブロック35は、右チャンネルに対する複数の論理サウンドチャンネル#kのウェーブデータWVRkを時分割多重化し、右チャンネルウェーブデータMWRとして、クロストーク低減回路45に出力する。
さらに、データ処理ブロック35は、左チャンネルに対する複数の論理サウンドチャンネル#kのアンプリチュードデータAMLkを時分割多重化し、左チャンネルアンプリチュードデータMAMLとして、クロストーク低減回路45に出力する。また、データ処理ブロック35は、右チャンネルに対する複数の論理サウンドチャンネル#kのアンプリチュードデータAMRkを時分割多重化し、右チャンネルアンプリチュードデータMAMRとして、クロストーク低減回路45に出力する。
このように、物理サウンドチャンネル毎に時分割多重化を行うことにより、物理サウンドチャンネル毎に複数の論理サウンドチャンネル#kのウェーブデータのミキシング、および、物理サウンドチャンネル毎に複数の論理サウンドチャンネル#kのアンプリチュードデータのミキシングを行う。これは、時分割多重化されてデジタル/アナログ変換された音声出力が、聴覚上ミキシングされて聞こえることを利用している。
図8は、図7のデータ処理ブロック35による時分割多重化の説明図である。図8を参照して、時分割多重化(つまり、ミキシング)する論理サウンドチャンネル#0〜#(K−1)の総チャンネル数は、1から64の間で、1チャンネル単位で設定可能である。つまり、多重チャンネル数Kの値は、1〜64の任意の値に設定できる。
各論理サウンドチャンネル#kのデータは、時分割多重化されるスロットにそれぞれ割り当てられる。Kチャンネルのミキシングが行われるのであれば、Kスロットから構成されるループが、継続的に出力される。
ここで、SPUローカルRAM15には、複数の論理サウンドチャンネルに対応して複数の記憶領域が設けられる。各記憶領域には、対応する論理サウンドチャンネルの再生に必要なパラメータが格納される。従って、SPUローカルRAM15に設けられている記憶領域の総数は64であり、この内、多重チャンネル数K(=再生する論理サウンドチャンネル数)に等しい数の記憶領域が用いられる。また、各記憶領域に格納されるパラメータには、ウェーブデータのアドレス情報も含まれ、これによって、論理サウンドチャンネルに割り当てるウェーブデータが設定される。
図7に戻って、メインRAMインタフェース43は、データ処理ブロック35のメインRAM25へのアクセスを仲介する。メインRAM25へのアクセスは、(1)DMA転送によって取得したウェーブデータ及びエンベロープデータのメインRAM25への書き込み、(2)論理サウンドチャンネル#kの再生のためのウェーブデータ及びエンベロープデータのメインRAM25からの読み出し、(3)エコー処理及びマイクエコー処理のためのメインRAM25へのエコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの読み書き、において行われる。
SPUローカルRAMインタフェース47は、データ処理ブロック35のSPUローカルRAM15へのアクセスを仲介する。SPUローカルRAM15へのアクセスは、ウェーブデータ再生のためのパラメータ、並びに、エンベロープデータ及びアンプリチュードデータ生成のためのパラメータの読み書き、において行われる。また、SPUローカルRAMインタフェース47は、CPU5がI/Oバス27を通じてSPUローカルRAM15へアクセスする際の仲介も行う。
図1のオーディオDACブロック31は、カスケード接続されたDAC(図示せず)を含む。上記のように、複数の論理サウンドチャンネル#kのミキシングは、データを時分割多重化することによって行われるので、時分割多重化されたデータをそのままオーディオDACブロック31に入力すると、カスケード接続されたDAC間における伝播遅延が、論理サウンドチャンネル#k間のクロストークを引き起こす可能性がある。
図7のクロストーク低減回路45は、このような論理サウンドチャンネル#k間のクロストークの発生を防止する。このクロストーク低減回路45は、各論理サウンドチャンネル#kのデータをカスケード接続されたDACに出力する際に、論理サウンドチャンネル#k間に予め設定された長さの無音期間を挿入する。これにより、カスケード接続されたDAC間を、ある論理サウンドチャンネル#kの信号が伝播する際に、前後の論理サウンドチャンネル#kの信号と干渉が発生することを防止する。無音期間の長さは、CPU5がI/Oバス27を通じて、制御レジスタセット39の対応する制御レジスタ(図示せず)に設定する。
詳細には、クロストーク低減回路45は、左チャンネルウェーブデータMWLの論理サウンドチャンネル#k間に無音期間を挿入して、左チャンネルウェーブデータMWLCとして、オーディオDACブロック31に出力する。また、クロストーク低減回路45は、右チャンネルウェーブデータMWRの論理サウンドチャンネル#k間に無音期間を挿入して、右チャンネルウェーブデータMWRCとして、オーディオDACブロック31に出力する。
さらに、クロストーク低減回路45は、左チャンネルアンプリチュードデータMAMLの論理サウンドチャンネル#k間に無音期間を挿入して、左チャンネルアンプリチュードデータMALCとして、オーディオDACブロック31に出力する。また、クロストーク低減回路45は、右チャンネルアンプリチュードデータMAMRの論理サウンドチャンネル#k間に無音期間を挿入して、右チャンネルアンプリチュードデータMARCとして、オーディオDACブロック31に出力する。
さらに、クロストーク低減回路45は、制御レジスタセット39の対応する制御レジスタ(図示せず)から入力されたメインボリュームデータMVを、そのままメインボリュームデータMVCとして、オーディオDACブロック31に出力する。
次に、エコー機能ブロック55及びマイクエコー機能ブロック57の詳細な説明をする前に、図4のエコーFIFOバッファBa,Bbおよび図5のマイクエコーFIFOバッファMBa,MBbについて詳細に説明する。
図9は、図1のメインRAM25に構成されるエコーFIFOバッファ及びマイクエコーFIFOバッファの説明図である。図9を参照して、エコーFIFOバッファの領域は、メインRAM25上に自由に設定することができる。エコーFIFOバッファの領域の始端及び終端は、それぞれ後述のエコーFIFOバッファ始端アドレスレジスタ115及びエコーFIFOバッファ終端アドレスレジスタ117で設定される(図10参照)。
エコーFIFOバッファ始端アドレスレジスタ115およびエコーFIFOバッファ終端アドレスレジスタ117の値は、I/Oバス27を通じてCPU5により設定される。
但し、それぞれのレジスタの下位3ビットには値を設定できず、エコーFIFOバッファ始端アドレスレジスタ115の下位3ビットは「0b000」に固定され、エコーFIFOバッファ終端アドレスレジスタ117の下位3ビットは「0b111」に固定される。すなわち、エコーFIFOバッファの領域は、必ず8バイトアラインに従って配置される。これは、メインRAM25の1ワードが64ビット(=8バイト)から構成されているからである。
このように、エコーFIFOバッファのサイズは自由に定められるので、必要とされるエコー遅延時間(図2参照)に応じた必要十分なサイズをメインRAM25上に確保することができる。
同様に、マイクエコーFIFOバッファの領域は、メインRAM25上に自由に設定することができる。マイクエコーFIFOバッファの領域の始端及び終端は、それぞれ後述のマイクエコーFIFOバッファ始端アドレスレジスタ141及びマイクエコーFIFOバッファ終端アドレスレジスタ143で設定される(図11参照)。
マイクエコーFIFOバッファ始端アドレスレジスタ141及びマイクエコーFIFOバッファ終端アドレスレジスタ143の値は、I/Oバス27を通じてCPU5により設定される。
但し、それぞれのレジスタの下位3ビットには値を設定できず、マイクエコーFIFOバッファ始端アドレスレジスタ141の下位3ビットは「0b000」に固定され、マイクエコーFIFOバッファ終端アドレスレジスタ143の下位3ビットは「0b111」に固定される。すなわち、マイクエコーFIFOバッファの領域は、必ず8バイトアラインに従って配置される。これは、メインRAM25の1ワードが64ビット(=8バイト)から構成されているからである。
このように、マイクエコーFIFOバッファのサイズは自由に定められるので、必要とされるエコー遅延時間(図2参照)に応じた必要十分なサイズをメインRAM25上に確保することができる。
図10は、図7のエコー機能ブロック55の内部構成を示すブロック図である。図10を参照して、エコー機能ブロック55は、ウェーブデータテンポラリレジスタ71、左アンプリチュードテンポラリレジスタ73、右アンプリチュードテンポラリレジスタ75、加算器77、除算器79、乗算器81、加算器83、累積値格納レジスタ85、ファネルシフタ87、飽和処理回路89、マルチプレクサ(MUX)93、エコーFIFOバッファライトアドレスカウンタ95、エコーライトデータバッファ97、エコーFIFOバッファリードアドレスカウンタ99、エコーリードデータバッファ101、エコーFIFOバッファリリースアドレスカウンタ103、リリースリードデータバッファ105、リリースライトデータバッファ107、乗算器111、及び加算器113を含む。
エコーシグマウィンドウレジスタ91、エコーFIFOバッファ始端アドレスレジスタ115、エコーFIFOバッファ終端アドレスレジスタ117、及びエコーリリースレートレジスタ109は、図7の制御レジスタセット39に含まれる。
ウェーブデータテンポラリレジスタ71、左アンプリチュードテンポラリレジスタ73、および右アンプリチュードテンポラリレジスタ75は、それぞれ再生のためにクロストーク低減回路45を介してオーディオDACブロック31に出力されるサウンドチャンネル#nの(図4参照)、ウェーブデータWn、左アンプリチュードデータAMLn、及び右アンプリチュードデータAMRnを格納するレジスタである。
左アンプリチュードテンポラリレジスタ73及び右アンプリチュードテンポラリレジスタ75に格納された値AMLn及びAMRnは、加算器77によって互いに加算され、その加算結果は、除算器79によって「2」で除され、左右チャンネルのアンプリチュードデータの平均値ALRnが求められる。乗算器81は、左右チャンネルのアンプリチュードデータの平均値ALRnと、ウェーブデータテンポラリレジスタ71に格納された値Wnとの積EMnを算出する。乗算器81による乗算結果の上位8ビットEMnが、加算器83によって、累積値格納レジスタ85の格納値に加算され、この加算結果が、累積値格納レジスタ85に格納される。但し、この加算処理は、論理サウンドチャンネル#nがエコーソースとして指定されている場合にのみ行われ、エコーソースとして指定されていない論理サウンドチャンネル#nに対しては、ここで破棄される。
この一連の処理は論理サウンドチャンネル#0〜#(N−1)の範囲で繰り返される(図4参照)。論理サウンドチャンネル#0〜#(N−1)の処理が完了すると、累積値格納レジスタ85の格納値σ(22ビット)は、ファネルシフタ87と飽和処理回路89とに出力される。
ファネルシフタ87は、エコーシグマウィンドウレジスタ91の設定値に従い、累積値格納レジスタ85からの22ビットの入力値σ中の連続する8ビットを選択してMUX93に出力する。
飽和処理回路89は、エコーシグマウィンドウレジスタ91の設定値に従い、累積値格納レジスタ85からの22ビットの入力値σ中の連続する8ビットを選択するとともに、選択された8ビットより上位に位置する全てのビットを抽出する。つまり、ここで選択される8ビットは、ファネルシフタ87が選択した8ビットと同一値である。そして、飽和処理回路89は、22ビットの入力値σのうち、選択された8ビットより上位に位置し、かつ選択された8ビットに含まれない全てのビットが、選択した8ビットの値の符号ビット(8ビット中の最上位ビット)と同じ値でない場合(条件1)、選択された8ビットの符号ビットの値が「0」であれば「0x7F」を、符号ビットの値が「1」であれば「0x81」を、MUX93に出力する。
また、飽和処理回路89は、選択した8ビットの値が「0x80」を示し、かつ、22ビットの入力値σのうち、選択された8ビットより上位に位置し、かつ選択された8ビットに含まれない全てのビットが、「1」である場合(条件2)、「0x81」をMUX3出力する。
さらに、飽和処理回路89は、条件1あるいは条件2が成立した場合、MUX93に飽和処理回路89からの入力値を選択するための選択信号を出力する。従って、MUX93は、条件1あるいは条件2が成立した場合には、飽和処理回路89からの入力値を選択してエコーライトデータバッファ97に出力する。一方、条件1及び条件2のいずれも成立しない場合には、MUX93は、ファネルシフタ87からの入力値をエコーライトデータバッファ97に出力する。
MUX93から出力されたデータは、エコーライトデータバッファ97に1バイトずつ格納される。エコーライトデータバッファ97に8バイトのデータが格納されると、格納されたデータはエコーFIFOバッファライトアドレスカウンタ95が示すメインRAM25のアドレスWAD(図9のエコーFIFOバッファ参照)に書き出される。
エコーFIFOバッファライトアドレスカウンタ95の初期値は、制御レジスタセット39を通じてCPU5により設定される。エコーFIFOバッファライトアドレスカウンタ95の値は、メインRAM25への書き込みが行われる度に8ずつインクリメントされるが(8バイト単位の書き込みのため)、インクリメント後の値がエコーFIFOバッファ終端アドレスレジスタ117の設定値を超える場合には、インクリメントされずにエコーFIFOバッファ始端アドレスレジスタ115の設定値に初期化される。エコーFIFOバッファライトアドレスカウンタ95の現在値は、制御レジスタセット39を通じて、CPU5から読み出すことができる。
エコー成分たるウェーブデータWi(iは0〜(N−1)のいずれか)は、エコーFIFOバッファリードアドレスカウンタ99が示すメインRAM25のアドレスRAD(図9のエコーFIFOバッファ参照)から8バイト単位で読み出され、エコーリードデータバッファ101に格納される。エコーFIFOバッファリードアドレスカウンタ99の初期値は、制御レジスタセット39を通じてCPU5により設定される。
エコーFIFOバッファリードアドレスカウンタ99の値は、1ずつインクリメントされるが、インクリメント後の値がエコーFIFOバッファ終端アドレスレジスタ117の設定値を超える場合には、インクリメントされずにエコーFIFOバッファ始端アドレスレジスタ115の設定値に初期化される。エコーFIFOバッファリードアドレスカウンタ99の現在値は、制御レジスタセット39を通じて、CPU5から読み出すことができる。
ウェーブデータWiとして出力される1バイトのデータは、乗算器111によって、エコーリリースレートレジスタ109に格納されたエコーリリースレートERと乗算される。エコーリリースレートレジスタ109の値ERは、I/Oバス27を通じてCPU5により設定される。その乗算結果は、加算器113によって、リリースリードデータバッファ105に格納された1バイトのデータと加算される。リリースリードデータバッファ105に格納された1バイトのデータは、エコーFIFOバッファリリースアドレスカウンタ103が指し示すメインRAM25のアドレスLAD(図9のエコーFIFOバッファ参照)から読み出されたデータである。この場合の読出しは、1バイト単位で行われる。
エコーFIFOバッファリリースアドレスカウンタ103の初期値は、制御レジスタセット39を通じてCPU5により設定される。エコーFIFOバッファリリースアドレスカウンタ103の値は、1ずつインクリメントされるが、インクリメント後の値がエコーFIFOバッファ終端アドレスレジスタ117の設定値を超える場合には、インクリメントされずにエコーFIFOバッファ始端アドレスレジスタ115の設定値に初期化される。
加算器113による加算結果は、リリースライトデータバッファ107に格納され、エコーFIFOバッファリリースアドレスカウンタ103が指し示すメインRAM25のアドレスLAD(エコーFIFOバッファ)に書き戻される。エコーFIFOバッファリリースアドレスカウンタ103の現在値は、制御レジスタセット39を通じて、CPU5が読み出すことができる。
エコーFIFOバッファライトアドレスWAD、エコーFIFOバッファリードアドレスRAD、及びエコーFIFOバッファリリースアドレスLADについて詳細に説明する。まず、エコーFIFOバッファについて説明する。
さて、図9に示されるように、エコーFIFOバッファライトアドレスWADからエコーFIFOバッファリードアドレスRADを差し引いた値が、エコーFIFOバッファBaとBbと(図4参照)のエントリ数の総和(Na+Nb)となる((数2)参照)。また、エコーFIFOバッファリリースアドレスLADからエコーFIFOバッファリードアドレスRADを差し引いた値が、エコーFIFOバッファBbのエントリ数Nbとなる((数3)参照)。
従って、ライトアドレスカウンタ95、エコーライトデータバッファ97、リードアドレスカウンタ99、エコーリードデータバッファ101、リリースアドレスカウンタ103、リリースリードデータバッファ105、リリースライトデータバッファ107、乗算器111、加算器113、エコーリリースレートレジスタ109、始端アドレスレジスタ115、及び終端アドレスレジスタ117によって、図3に示したエコーモデルを生成できる。
図11は、図7のマイクエコー機能ブロック57の内部構成を示すブロック図である。図11を参照して、マイクエコー機能ブロック57は、マイクエコーFIFOバッファリードアドレスカウンタ145およびマイクエコーリードデータバッファ147を含む。マイクエコーFIFOバッファ始端アドレスレジスタ141およびマイクエコーFIFOバッファ終端アドレスレジスタ143は、図7の制御レジスタセット39に含まれる。
マイクエコー機能が用いられる場合、マイクエコーの原音成分は、通常CPU5からメインRAM25上に確保されたマイクエコーFIFOバッファに直接書き込まれる。そして、マイクエコー成分たるウェーブデータWj(jは0〜(N−1)のいずれか)は、マイクエコーFIFOバッファリードアドレスカウンタ145が示すメインRAM25のアドレスMRAD(図9のマイクエコーFIFOバッファ参照)から8バイト単位で読み出され、マイクエコーリードデータバッファ147に格納される。
マイクエコーFIFOバッファリードアドレスカウンタ145の初期値は、制御レジスタセット39を通じてCPU5により設定される。マイクエコーFIFOバッファリードアドレスカウンタ145の値は、1ずつインクリメントされるが、インクリメント後の値がマイクエコーFIFOバッファ終端アドレスレジスタ143の設定値を超える場合には、インクリメントされずにマイクエコーFIFOバッファ始端アドレスレジスタ141の設定値に初期化される。マイクエコーFIFOバッファリードアドレスカウンタ145の現在値は、制御レジスタセット39を通じて、CPU5が読み出すことが可能である。
ここで、マイクエコー機能では、エコー機能の場合と異なり、乗算器111による乗算に相当する乗算および加算器113による加算に相当する加算が、ハードウェアではサポートされていないので、これらの演算はCPU5(つまり、ソフトウェア)が行う。
従って、エコー機能の、ライトアドレスカウンタ95、エコーライトデータバッファ97、リリースアドレスカウンタ103、リリースリードデータバッファ105、リリースライトデータバッファ107、乗算器111、加算器113、およびエコーリリースレートレジスタ109に相当する機能は、CPU5で実行されるプログラムとメインRAM25とによって実現される。これらと、図11の構成と、によって、図3に示したエコーモデルと同様のマイクエコーモデルを生成できる。
さて、図9に示されるように、マイクエコーFIFOバッファライトアドレスMWADからマイクエコーFIFOバッファリードアドレスMRADを差し引いた値が、マイクエコーFIFOバッファMBaとMBbと(図5参照)のエントリ数の総和(Na+Nb)となる((数2)参照)。また、マイクエコーFIFOバッファリリースアドレスMLADからマイクエコーFIFOバッファリードアドレスMRADを差し引いた値が、マイクエコーFIFOバッファMBbのエントリ数Nbとなる((数3)参照)。
ここで、マイクエコーFIFOバッファライトアドレスMWADは、メインRAM25上に形成される、ライトアドレスカウンタ95と同様の機能を有するライトアドレスカウンタによって生成され、マイクエコーFIFOバッファリリースアドレスMLADは、メインRAM25上に形成される、リリースアドレスカウンタ103と同様の機能を有するリリースアドレスカウンタによって生成される。
次に、エコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力について説明する。エコー成分たるウェーブデータWiを割り当てることができる論理サウンドチャンネルは1つであり、マイクエコー成分たるウェーブデータWjを割り当てることができる論理サウンドチャンネルは1つである。
ただし、エコー成分及び/又はマイクエコー成分の出力バランスを引き上げるために、エコー成分及び/又はマイクエコー成分の出力を複数サウンドチャンネル継続して行う機能が設けられる。なお、本実施の形態では、最大の継続チャンネル数は「32」である。また、最終サウンドチャンネルを超えて継続出力は行われない。さらに、エコー成分の継続出力のために割り当てられたサウンドチャンネルの本来の設定は無視される。この点は、マイクエコー成分の継続出力の場合も同様である。
図7を参照して、制御レジスタセット39に含まれるエコーホールドタイムレジスタ(図示せず)に、エコー成分継続出力のディセーブルあるいはイネーブルが設定されるとともに、継続チャンネル数が設定される。エコーホールドタイムレジスタの設定に従って、データ処理ブロック35は、エコー成分の継続出力を行う。また、制御レジスタセット39に含まれるマイクエコーホールドタイムレジスタ(図示せず)に、マイクエコー成分継続出力のディセーブルあるいはイネーブルが設定されるとともに、継続チャンネル数が設定される。マイクエコーホールドタイムレジスタの設定に従って、データ処理ブロック35は、マイクエコー成分の継続出力を行う。以下、具体例を挙げながら説明する。
図12は、エコー成分たるウェーブデータ及びマイクエコー成分たるウェーブデータの継続出力の例示図である。図12では、再生するサウンドチャンネルの数を「8」とし、サウンドチャンネル#2にエコー成分が割り当てられ、サウンドチャンネル#6にマイクエコー成分が割り当てられる。つまり、エコー成分に対してのエフェクトチャンネルがサウンドチャンネル#2であり、マイクエコー成分に対してのエフェクトチャンネルがサウンドチャンネル#6である。また、エコー成分の継続チャンネル数を「2」、マイクエコー成分の継続チャンネル数を「3」としている。
図12に示すように、サウンドチャンネル#2とそれに続くサウンドチャンネル#3において、エコー成分が継続して出力される。この場合、エコー成分に割り当てられたサウンドチャンネル#2に続くサウンドチャンネル#3については、本来の設定が無視される。
また、サウンドチャンネル#6とそれに続くサウンドチャンネル#7において、マイクエコー成分が継続して出力される。この場合、マイクエコー成分に割り当てられたサウンドチャンネル#6に続くサウンドチャンネル#7については、本来の設定が無視される。また、この場合、設定に従って継続チャンネル数を「3」にすると、最終サウンドチャンネル#7を超えるため、この例では、マイクエコー成分の継続出力は2チャンネル分しか行われない。
さて、以上のように、本実施の形態によればエフェクト原音チャンネルを任意の論理サウンドチャンネルに設定できるため、複数の論理サウンドチャンネルで再生されているウェーブデータのうち、任意の論理サウンドチャンネルで再生されているウェーブデータ(原音)に音響効果(例えば、エコー/リバーブ等)を施すことが可能となる。また、複数の論理サウンドチャンネルは等価であり、エフェクトチャンネルを任意の論理サウンドチャンネルに設定できるため、音響効果が付与されたウェーブデータを任意の論理サウンドチャンネルで再生できる。さらに、音響効果の付与が不要な場合には、全ての論理サウンドチャンネルを非エフェクトチャンネルに設定して、音響効果なしのウェーブデータの再生のために割り当てることが可能である。
このように任意の論理サウンドチャンネルに任意の属性を設定できるため、例えば、楽曲再生に割り当てられている論理サウンドチャンネルをエフェクト原音チャンネルに設定して、そこで再生されているウェーブデータにエコー等の音響効果を施す一方、効果音の再生に割り当てられている論理サウンドチャンネルを非エフェクトチャンネルに設定して、そこで再生されているウェーブデータには音響効果を施さないといった組み合わせが実現できる。また、再生されるウェーブデータにピッチ変換や振幅変調等を施す機能が論理サウンドチャンネルに設けられている場合、エフェクトチャンネルに割り当てられたウェーブデータに対しても同じ機能を利用できる。
また、本実施の形態では、マイクロフォン等の外部アナログ入力装置52から入力されたアナログ音声信号に対しても、ADC33によってデジタル音声信号(PCMデータ)に変換後に、音響効果を付与して、再生可能である(マイクエコー機能)。この場合、音響効果を付与するための一部の処理をCPU5(つまり、ソフトウェア)が行うので、音響効果を付与する構成を任意に構築できる。つまり、図5での遅延を生成する部分MBa,MBb,Ms及びAsは、必ずしもこのような構成に限られず、任意の構成により遅延機能を構築できる。
さらに、本実施の形態では、エコーFIFOバッファをメインRAM25に構築して、そこから所定時間後にウェーブデータを取り出すことで遅延を発生させている。このように、エコーFIFOバッファによって、簡易に遅延機能を構築している。また、メインRAM25の一部をエコーFIFOバッファとして用いているので、エコーFIFOバッファ用に確保される領域以外は、他の用途に用いることが可能である。マイクエコー機能についても同様である。
さらに、本実施の形態では、図10の加算器83及び累積値格納レジスタ85を設けているので、複数の論理サウンドチャンネルがエフェクト原音チャンネルに設定されている場合でも、エコーFIFOバッファに格納されるのは1チャンネル分である。しかも、図10の加算器77および除算器79を設けて、左右のアンプリチュードの平均値を求めるので、左右の物理サウンドチャンネル毎に論理サウンドチャンネルのミキシングバランスが異なる場合でも、エコーFIFOバッファに格納されるのは1チャンネル分である。以上の結果、メインRAM25に構築するエコーFIFOバッファの容量を抑制できる。
さらに、本実施の形態では、図10のファネルシフタ87及び飽和処理回路89を設けているので、累積値格納レジスタ85から出力される格納値(累積ウェーブデータ)σから任意のビット列が取り出せるため、エフェクトチャンネルによって再生されるウェーブデータの振幅を最適化できる。
さらに、本実施の形態では、エコーFIFOバッファに格納してから所定時間後(Na+Nb)に取り出して再生したウェーブデータWiに対して、所定の率(エコーリリースレート)で振幅変調を施す乗算器111を設けると共に、再生のためのエコーFIFOバッファからのウェーブデータWiの読出し位置(リードアドレスカウンタ99が示すアドレス)RADから所定の距離(Nb)だけ変位された位置LADに格納されているウェーブデータに、乗算器111で振幅変調が施されたウェーブデータを加算する加算器113を設けて(図9参照)、リバーブ機能を簡易に実現している。マイクエコー機能についても、これらの処理を行う主体が、CPU5というだけで、簡易にリバーブ機能を実現できる。
さらに、本実施の形態では、論理サウンドチャンネルによって処理される対象はPCMデータ、つまり、デジタルデータなので、音響効果を付与するための処理(例えば、遅延処理など)に必要なバッファ(エコーFIFOバッファ及びマイクエコーFIFOバッファ)をRAM等の手段で簡単に構築できる(上記では、メインRAM25上に構築)。また、音響効果を付与するための処理(例えば、振幅変調処理など)を小規模な論理回路及び/又は小規模なソフトウェアで行うことができる。
さらに、本実施の形態では、複数の論理サウンドチャンネルのミキシングを加算器によって行わず、時分割多重化(複数の論理サウンドチャンネルのPCMデータを時間単位で切り換えて出力)によって実現している(図8参照)。従って、このミキシングための加算器が不要になるばかりか、オーディオDACブロック31のDACの解像度(ビット数)を抑制でき、コスト低減を図ることができる。
さらに、本実施の形態では、時分割出力において、エフェクトチャンネル以外の他の論理サウンドチャンネルの出力時間に、エフェクトチャンネルによって再生されたウェーブデータを割り当てることができるので、簡単な回路で本来設定可能な上限を超えた音量を音響効果(エコー機能による効果、マイクエコー機能による効果)が付与されたウェーブデータに与えることが可能になる(図12参照)。なお、複数の物理サウンドチャンネルが用いられて音楽や音声の再生が行われる場合、エコー成分を再生する論理サウンドチャンネルが1つだけでは、音量バランスが不足することがある。マイクエコー成分についても同様である。
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
(1)上記では、物理サウンドチャンネル数を複数にしたが、単数であっても、本発明は適用できる。
以上、本発明を実施例により詳細に説明したが、当業者にとっては、本発明が本願中に説明した実施例に限定されるものではないということは明らかである。本発明は、特許請求の範囲の記載により定まる本発明の趣旨及び範囲を逸脱することなく修正及び変更態様として実施することができる。
Claims (3)
- 複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサであって、
前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、所定の音響効果が付与されたウェーブデータが割り当てられるエフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった3つの属性の内の1つを設定するチャンネル設定手段と、
1以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータに前記所定の音響効果を付与し、前記エフェクトチャンネルに割り当てる音響効果付与手段と、を備え、
前記チャンネル設定手段は、前記3つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、
前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記音響効果付与手段は、
前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す第1振幅変調手段と、
前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する第1加算手段と、
複数の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合に、当該複数のエフェクト原音チャンネルによって再生されたウェーブデータを加算する第2加算手段と、を含み、
前記音響効果付与手段は、前記第2加算手段による加算結果であるウェーブデータを前記バッファに格納し、格納してから前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記サウンドプロセッサは、
前記論理サウンドチャンネル毎に独立して、かつ、前記物理サウンドチャンネル毎に独立して、ウェーブデータに対して、任意の率で振幅変調を施す第2振幅変調手段をさらに備え、
前記音響効果付与手段は、
前記論理サウンドチャンネルである前記エフェクト原音チャンネル毎に、前記複数の物理サウンドチャンネルに対する振幅変調の前記任意の率の平均値を算出して、前記エフェクト原音チャンネル毎に、ウェーブデータに前記平均値を乗算する平均手段をさらに含み、
前記第2加算手段は、前記平均手段による乗算結果であるウェーブデータを加算する、サウンドプロセッサ。 - 複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサであって、
前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、所定の音響効果が付与されたウェーブデータが割り当てられるエフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった3つの属性の内の1つを設定するチャンネル設定手段と、
1以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータに前記所定の音響効果を付与し、前記エフェクトチャンネルに割り当てる音響効果付与手段と、を備え、
前記チャンネル設定手段は、前記3つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、
前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記音響効果付与手段は、
前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す第1振幅変調手段と、
前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する第1加算手段と、
複数の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合に、当該複数のエフェクト原音チャンネルによって再生されたウェーブデータを加算する第2加算手段と、を含み、
前記音響効果付与手段は、前記第2加算手段による加算結果であるウェーブデータを前記バッファに格納し、格納してから前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記音響効果付与手段は、
前記第2加算手段による加算結果である累積ウェーブデータから、所定ビット数の複数ビットを抽出する抽出手段と、
前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記抽出手段により抽出された前記複数ビットを所定値に置き換える飽和処理手段と、をさらに含み、
前記第2加算手段による加算結果である前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲内である場合、前記音響効果付与手段は、前記抽出手段により抽出された前記複数ビットで表されるウェーブデータをそのまま前記バッファに格納し、
前記累積ウェーブデータが、前記所定ビット数によって表現可能な範囲を超えている場合、前記音響効果付与手段は、前記飽和処理手段により前記所定値に置き換えられた前記複数ビットで表されるウェーブデータを前記バッファに格納し、
前記音響効果付与手段は、前記所定ビット数によって表現可能な範囲を超えているか否かに応じて前記バッファに格納したウェーブデータを前記所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記抽出手段は、前記累積ウェーブデータから、前記所定ビット数の実質的に連続する前記複数ビットを抽出し、
前記飽和処理手段は、前記累積ウェーブデータのうちの、抽出された前記複数ビットより上位に位置し、前記複数ビットに含まれない全ビットが、抽出された前記複数ビットの最上位ビットと同じ値を示していない場合に、抽出された前記複数ビットを前記所定値に置き換える、サウンドプロセッサ。 - 複数の論理サウンドチャンネルによって再生されたウェーブデータをミキシングして単数又は複数の物理サウンドチャンネルから出力するサウンドプロセッサであって、
前記論理サウンドチャンネルの各々に、音響効果を付与する対象のウェーブデータが割り当てられるエフェクト原音チャンネル、所定の音響効果が付与されたウェーブデータが割り当てられるエフェクトチャンネル、及び、音響効果が付与されないウェーブデータが割り当てられる非エフェクトチャンネルといった3つの属性の内の1つを設定するチャンネル設定手段と、
1以上の前記論理サウンドチャンネルが前記エフェクト原音チャンネルに設定されている場合、前記エフェクト原音チャンネルによって再生されたウェーブデータに前記所定の音響効果を付与し、前記エフェクトチャンネルに割り当てる音響効果付与手段と、
デジタル信号をアナログ信号に変換するデジタル/アナログ変換手段と、
前記複数の論理サウンドチャンネルによって再生されたウェーブデータを時分割多重化して、前記デジタル/アナログ変換手段に出力する時分割多重出力手段と、を備え、
前記チャンネル設定手段は、前記3つの属性の内のいずれの属性でも前記論理サウンドチャンネルに任意に設定でき、
前記音響効果付与手段は、前記エフェクト原音チャンネルによって再生されたウェーブデータをバッファに格納し、格納してから所定時間後に取り出して再生し、前記エフェクトチャンネルに割り当て、
前記音響効果付与手段は、
前記バッファに格納してから前記所定時間後に取り出して再生したウェーブデータに対して、所定の率で振幅変調を施す第1振幅変調手段と、
前記所定時間後の再生のための前記バッファからのウェーブデータの読出し位置から所定の距離変位された位置に格納されているウェーブデータに、前記所定の率で振幅変調が施されたウェーブデータを加算する第1加算手段と、を含み、
前記論理サウンドチャンネルによって処理されるウェーブデータは、PCMデータであり、
前記デジタル/アナログ変換手段は、前記PCMデータをアナログ信号に変換し、
前記時分割多重出力手段は、前記エフェクトチャンネルによって再生されたウェーブデータを、当該エフェクトチャンネルに割り当てられた時間に出力するとともに、後続する他の前記論理サウンドチャンネルに割り当てられた時間に、前記他の論理サウンドチャンネルのウェーブデータの代わりに出力する、サウンドプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007540953A JP5055470B2 (ja) | 2005-10-20 | 2006-10-10 | サウンドプロセッサ |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005306257 | 2005-10-20 | ||
JP2005306257 | 2005-10-20 | ||
PCT/JP2006/320525 WO2007046311A1 (ja) | 2005-10-20 | 2006-10-10 | サウンドプロセッサ及びサウンドシステム |
JP2007540953A JP5055470B2 (ja) | 2005-10-20 | 2006-10-10 | サウンドプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007046311A1 JPWO2007046311A1 (ja) | 2009-04-23 |
JP5055470B2 true JP5055470B2 (ja) | 2012-10-24 |
Family
ID=37962405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007540953A Expired - Fee Related JP5055470B2 (ja) | 2005-10-20 | 2006-10-10 | サウンドプロセッサ |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5055470B2 (ja) |
WO (1) | WO2007046311A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5732497A (en) * | 1980-08-06 | 1982-02-22 | Matsushita Electric Ind Co Ltd | Echo adding unit |
JPH0612075A (ja) * | 1992-06-25 | 1994-01-21 | Kawai Musical Instr Mfg Co Ltd | 音響効果装置 |
JPH0683343A (ja) * | 1992-09-01 | 1994-03-25 | Yamaha Corp | 効果付与装置 |
JPH06149250A (ja) * | 1992-11-11 | 1994-05-27 | Yamaha Corp | 変調信号発生装置 |
JPH11220791A (ja) * | 1998-02-02 | 1999-08-10 | Shinsedai Kk | サウンドプロセッサ |
JP2000298480A (ja) * | 1999-04-14 | 2000-10-24 | Mitsubishi Electric Corp | オーディオ信号レベル調整装置およびその調整方法 |
-
2006
- 2006-10-10 JP JP2007540953A patent/JP5055470B2/ja not_active Expired - Fee Related
- 2006-10-10 WO PCT/JP2006/320525 patent/WO2007046311A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5732497A (en) * | 1980-08-06 | 1982-02-22 | Matsushita Electric Ind Co Ltd | Echo adding unit |
JPH0612075A (ja) * | 1992-06-25 | 1994-01-21 | Kawai Musical Instr Mfg Co Ltd | 音響効果装置 |
JPH0683343A (ja) * | 1992-09-01 | 1994-03-25 | Yamaha Corp | 効果付与装置 |
JPH06149250A (ja) * | 1992-11-11 | 1994-05-27 | Yamaha Corp | 変調信号発生装置 |
JPH11220791A (ja) * | 1998-02-02 | 1999-08-10 | Shinsedai Kk | サウンドプロセッサ |
JP2000298480A (ja) * | 1999-04-14 | 2000-10-24 | Mitsubishi Electric Corp | オーディオ信号レベル調整装置およびその調整方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2007046311A1 (ja) | 2007-04-26 |
JPWO2007046311A1 (ja) | 2009-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6643744B1 (en) | Method and apparatus for pre-fetching audio data | |
CA2355794C (en) | Method and apparatus for pre-caching data in audio memory | |
AU702762B2 (en) | Method of producing image data, image data processing apparatus, and recording medium | |
US7034828B1 (en) | Recirculating shade tree blender for a graphics system | |
EP0715278B1 (en) | Method of producing image data and associated recording medium | |
KR19980703317A (ko) | 묘화장치 및 묘화방법 | |
US7369665B1 (en) | Method and apparatus for mixing sound signals | |
JP2001307126A (ja) | 画像描画方法、画像描画装置、記録媒体及びプログラム | |
US5614685A (en) | Digital signal processor for musical tone synthesizers and the like | |
JP5055470B2 (ja) | サウンドプロセッサ | |
JP2002117412A (ja) | 画像処理システム、デバイス、方法及びコンピュータプログラム | |
JP2007132961A (ja) | マルチメディアプロセッサ及びサウンドプロセッサ | |
JP4683760B2 (ja) | 再構成可能なピクセルフォーマットを有する組み込みフレームバッファを有するグラフィックスシステム | |
US20120218549A1 (en) | Method for estimating light scattering | |
JP3596263B2 (ja) | データ処理装置およびデータ処理方法 | |
JP2007128180A (ja) | 演算処理装置 | |
JPH08212377A (ja) | 画像情報生成装置及び方法、画像情報処理装置及び方法、並びに記録媒体 | |
JPWO2007052420A1 (ja) | 画像生成装置 | |
JP4848562B2 (ja) | マルチプロセッサ | |
JP4658397B2 (ja) | オーディオメモリ内のデータを予めキャッシュする方法及び装置 | |
JP4361628B2 (ja) | オーディオ信号生成装置 | |
JPH06203176A (ja) | 画像データ処理方法及び装置 | |
JP2011197550A (ja) | 楽音生成装置 | |
JP3660379B2 (ja) | 音源制御情報の記憶方法及び音源制御装置 | |
JP5510814B2 (ja) | 楽音生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110831 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120206 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120404 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |