(57)【要約】【課題】デジタル情報信号を処理する場合に、ＣＰＵなどの処理部にかかる負荷を制御できるようにする装置、方法を提供する。【解決手段】ゲーム実行中に音声を発するキャラクタが登場したときには“１”加算、当該キャラクタが消滅したときには“１”減算というように、登場しているキャラクタの数を数えることにより、ＣＰＵ１１にかかっている負荷量の合計値を求め、この合計値がＣＰＵ１１の許容負荷量（しきい値）より小さいときには、負荷の重い通常処理を行い、負荷量の合計値が許容負荷量（しきい値）より大きいときには、負荷の軽い簡易処理を行う。【選択図】        図１
2004258765.tif 000002
【特許請求の範囲】
【請求項１】
デジタル信号に対して演算処理を施し、所望のデジタル信号を形成する演算処理手段と、
前記演算処理手段における処理の負荷量の合計値を算出するようにする算出手段と、
前記算出手段で算出される前記負荷量の合計値と、前記演算処理手段の許容負荷量とから、前記演算処理手段において行う前記演算処理の内容を決定する決定手段とを備えることを特徴とするデジタル信号処理装置。
【請求項２】
請求項１に記載のデジタル信号処理装置であって、
前記演算処理手段の前記負荷量の合計値は、前記演算処理手段で並列的に実行するようにされているデジタル信号の処理工程の数であり、
前記演算処理手段の前記許容負荷量は、前記演算処理手段において並列的に実行可能とされるデジタル信号の処理工程の総数であることを特徴とするデジタル信号処理装置。
【請求項３】
請求項１または請求項２に記載のデジタル信号処理装置であって、
前記演算処理手段において処理するようにされるデジタル信号には、処理にかかる負荷に関する情報が付加されており、
前記算出手段は、前記演算処理手段において処理されるデジタル信号の前記処理にかかる負荷に関する情報を考慮して、前記演算処理手段の前記負荷量の合計値を算出することを特徴とするデジタル信号処理装置。
【請求項４】
請求項１または請求項２に記載のデジタル信号処理装置であって、
前記演算処理手段において処理するようにされるデジタル信号には、優先度を示す情報が付加されており、
前記決定手段は、前記デジタル信号に付加されている前記優先度を示す情報をも考慮して、前記演算処理手段において行う前記演算処理の内容を決定することを特徴とするデジタル信号処理装置。
【請求項５】
請求項１、請求項２、請求項３または請求項４に記載のデジタル信号処理装置であって、
前記演算処理手段における処理状況に応じて、前記演算処理手段の許容負荷量を変更するようにする許容負荷量変更手段を備えることを特徴とするデジタル信号処理装置。
【請求項６】
演算処理部において、デジタル信号に対して演算処理を施し、所望のデジタル信号を形成する演算処理ステップと、
前記演算処理部における処理の負荷量の合計値を算出する算出ステップと、
前記算出ステップにおいて算出した前記負荷量の合計値と、前記演算処理部の許容負荷量とから、前記演算処理部において行う演算処理の内容を決定する決定ステップとを有することを特徴とするデジタル信号処理方法。
【請求項７】
請求項６に記載のデジタル信号処理方法であって、
前記演算処理部の前記負荷量の合計値は、前記演算処理手段で並列的に実行するようにされているデジタル信号の処理工程の数であり、
前記演算処理部の前記許容負荷量は、前記演算処理部において並列的に実行可能とされるデジタル信号の処理工程の総数であることを特徴とするデジタル信号処理方法。
【請求項８】
請求項６または請求項７に記載のデジタル信号処理方法であって、
前記演算処理部において処理するようにされるデジタル信号には、処理にかかる負荷に関する情報が付加されており、
前記算出ステップにおいては、前記演算処理部において処理されるデジタル信号の前記処理にかかる負荷に関する情報を考慮して、前記演算処理部の前記負荷量の合計値を算出することを特徴とするデジタル信号処理方法。
【請求項９】
請求項６または請求項７に記載のデジタル信号処理方法であって、
前記演算処理部において処理するようにされるデジタル信号には、優先度を示す情報が付加されており、
前記決定ステップにおいては、前記デジタル信号に付加されている前記優先度を示す情報をも考慮して、前記演算処理手段において行う前記演算処理の内容を決定することを特徴とするデジタル信号処理方法。
【請求項１０】
請求項６、請求項７、請求項８または請求項９に記載のデジタル信号処理方法であって、
前記演算処理部における処理状況に応じて、前記演算処理部の前記許容負荷量を変更するようにする許容負荷量変更ステップを有することを特徴とするデジタル信号処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、家庭用ゲーム機のように、複数のデジタル音声データや複数のデジタル映像データを同時に処理する必要のあるデジタル信号処理装置、デジタル信号処理方法に関する。
【０００２】
【従来の技術】
コンピュータとほぼ同様の構成を有するシステムを利用したゲームプラットホームが知られている。こうしたゲームプラットホームでゲームを行う場合、当該ゲームプラットホームのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にかかる負荷は動的に変化する。
【０００３】
例えば、こうしたゲームプラットホームには、発音機能が設けられており、ゲームの進行状況にあわせて所望の音声信号を作成して、その音声信号に応じた音声を発音するようにするべく制御が行なわれる。音声信号を生成する上で必要となる具体的な処理としては、例えば圧縮音源の復号化や、リバーブ処理などの、いわゆるエフェクト機能が知られている。
【０００４】
そして、ゲームの進行状況に応じて、登場キャラクタが増えた場合には登場キャラクタ分の異なる複数の音声信号を処理する必要が生じるが、その処理すべき音声信号の種類の増加に伴い（発音数の増加に伴い）音声信号についての処理量が増加してしまう。
【０００５】
また、画像処理についても同様のことが言える。いわゆるビデオゲームの場合には、人物、怪獣などのキャラクタ、乗り物、建物、背景物などの種々の表示対象物（表示オブジェクト）がゲームの進行に応じて３次元仮想空間に配置されて表示される。そして、上述した音声の場合と同様に、登場キャラクタが増えるなどして、表示オブジェクトが増えれば増えるほど、それらの表示オブジェクトを表示するための処理（画像処理）のためにＣＰＵには負荷がかかる。
【０００６】
このため、ゲームのプラットホームにおいては、ＣＰＵの処理負荷が、ゲームの進行上問題とならないようにするために適切な制御を行うようにすることが必要になる。例えば、特許文献１（特開２００２−５１４００号公報）には、音声処理の負荷を軽減する技術が開示されている。この技術によれば、例えば、キャラクタである飛行機の表示が画面中において移動する場合のように、音を発する対象物が単位時間内に移動することによって、その対象物の発する音の音像が定位する場合に、単位時間内の所定のタイミング毎の対象物の例えば位置情報から変化情報を形成する。
【０００７】
そして、形成した変化情報に基づいて、１回の処理で対象物が所定の位置に移動した場合の当該対象物が発する音（音源信号）の音像定位処理を行うようにする。このように、特許文献１に記載されている技術は、単位時間内の所定のタイミング毎に音像を定位させる処理を複数回行う従来の方式とは異なり、音源信号の位置情報、移動情報、定位情報などから変化情報を形成し、この変化情報に基づく１回の処理で対象物の発する音の音像定位処理を行うことによって、自然な音像定位を実現させるとともに、音声信号についての信号処理量を低減することができるものである。
【０００８】
また、例えば、特許文献２（特開２００１−１３７５３８号公報）には、画像処理の負荷を軽減する技術が開示されている。この技術によれば、直前のフレーム画像の生成時間が１フレーム周期を単位として計測され、その値を次に生成すべきフレームの生成時間の予測値として、そのまま次のフレーム画像が有すべきゲーム進行量の値として決定する。
【０００９】
そして、表示すべき表示オブジェクトについて、決定した進行量の値の数だけのフレーム期間が経過した後の位置と向きとを演算し、この演算結果に基づいて、表示オブジェクトを表示するようにする。このように、特許文献２に記載されている技術は、常に１フレーム単位に表示画像を形成することは行わず、過去のフレーム画像の生成時間に応じて、表示オブジェクトの位置や向きを調整するようにして表示することにより、不自然な画像表示となることなく、しかも、ＣＰＵの負荷の軽減をも実現することができるものである。
【００１０】
【特許文献１】
特開２００２−０５１４００号公報。
【００１１】
【特許文献２】
特開２００１−１３７５３８号公報。
【００１２】
【発明が解決しようとする課題】
ところで、上述したように、特許文献１に記載された技術の場合には、対象物の発する音（音源信号）の位置情報等から変化情報を形成するといういわば平均化処理的な前処理を必要とする。また、特許文献２に記載の技術の場合には、直前のフレームの生成時間を１フレームを単位として計測することにより、次のフレームの生成時間を予測する予測処理である前処理を必要とする。
【００１３】
このため、音声信号を処理するプログラムや画像信号を処理するプログラムが複雑になる。また、音声信号についての平均化処理的な前処理や、画像信号についての生成時間の予測処理である前処理は常に適正であるとは言えず、ビデオゲーム全編を通して、上述のような前処理を行うことはゲームのリアルさを阻害することとなる場合が発生することとなる可能性がある。
【００１４】
そこで、簡単には、同時に処理可能な異なる音声信号の数（発音数）や異なる画像信号の数にしきい値を持たせることが考えられる。しかしこの方法の場合、動的に確保できる登場させるキャラクタの数が制限されしまうなど、ゲームの進行そのものに仕様としての制限が生じてしまう。
【００１５】
また、別の方法として、演算精度を低下させたり簡易アルゴリズムを用いるといった方法も考えられる。しかし、この場合、一般に処理品質が低下してしまい、ゲーム中に放音される音声や表示される画像のリアルさが損なわれてしまうことになる。
【００１６】
この発明は、上述した事情を鑑みてなされたものであり、音声信号や画像信号等のデジタル情報信号を処理する場合に、ＣＰＵなどの処理部にかかる負荷を適切に制御できるようにする装置および方法を提供することを目的とする。
【００１７】
【課題を解決するための手段】
上記課題を解決するため、請求項１に記載の発明のデジタル信号処理装置は、デジタル信号に対して演算処理を施し、所望のデジタル信号を形成する演算処理手段と、
前記演算処理手段における処理の負荷量の合計値を算出するようにする算出手段と、
前記算出手段で算出される前記負荷量の合計値と、前記演算処理手段の許容負荷量とから、前記演算処理手段において行う前記演算処理の内容を決定する決定手段とを備えることを特徴とする。
【００１８】
この請求項１に記載のデジタル信号処理装置によれば、デジタル信号は、演算処理手段において所定の演算処理がなされて所望の形式のデジタル信号が形成するようにされる。この場合、所定のタイミング毎に算出手段により、演算処理手段にかかっている処理の負荷量の合計値が算出される。
【００１９】
そして、算出手段により算出された演算処理手段における処理の負荷量の合計値と、演算処理手段における処理の許容負荷量とから、演算処理手段において行われる処理が決定するようにされる。例えば、演算処理手段においての負荷が大きいときには、より単純化した処理を行うようにし、演算処理手段においての負荷が小さいときには、単純化していない通常の処理を行うようにする。
【００２０】
これにより、演算処理手段においての処理の負荷量が許容負荷量を越えるような大きなものとなることを防止し、デジタル信号の適切な処理を行うことができるようにされる。
【００２１】
【発明の実施の形態】
以下、図面を参照しながら、この発明による装置、方法の一実施の形態について説明する。以下に説明する実施の形態においては、この発明による装置、方法を家庭用ゲーム機に適用した場合を例にして説明する。
【００２２】
［家庭用ゲーム機の構成について］
図１は、この実施の形態の家庭用ゲーム機の構成例を説明するためのブロック図である。図１においてＣＰＵ１１は、いわゆる演算処理部に相当するものであり、ゲームの進行に関わる演算をすべて行うものである。ＲＯＭ１２は、システムの初期動作等、基本的な動作に関わる情報をあらかじめ保存しておく読み出し専用メモリである。ＲＡＭ１３は、後述するディスク再生機１４により読み出した所望のプログラム部分や、演算用のデータを一時的に蓄積したりするための動的に機能する書き換え可能なメモリである。
【００２３】
また、図１において、ディスク再生機１４は、いわゆるゲームプログラム等が記録された記録媒体（この実施の形態においてはディスクとしている。）２より、所望のプログラム部分やデータの読み出しを行うための装置である。なお、ディスク２には、ゲームプログラムや、所定のデータ圧縮方式に従ってデータ圧縮された画像データや音声データ、その他のゲーム進行上必要となる種々のデータ等が記録されているものである。
【００２４】
操作部１５は、使用者（ユーザ）からのゲームに対する指示入力（ゲーム操作）を受け付けるための操作入力装置（ゲームコントローラ）とそのインターフェースにより構成されるものである。表示部１６はゲームの進行状況を表示出力するためのＣＲＴ（Ｃａｔｈｏｄｅ−Ｒａｙ  Ｔｕｂｅ）やＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示装置とそのインターフェースにより構成されるものである。また、音声出力部１７はゲームの進行に伴い音声を出力するための音声出力装置であるスピーカとそのインターフェースにより構成されるものである。
【００２５】
これらの各部は、図１に示したように、基本的にいわゆるバス接続された状態となっており、操作部１５を通じて受け付ける使用者からの操作入力に応じたゲーム進行に伴い、所望の処理が動的になされることとなる。
【００２６】
図１に示した構成の家庭用ゲーム機においても、ＣＰＵ１１の処理能力が、当該家庭用ゲーム機全体のシステムとしての動作のスピードに大きな影響を及ぼす。上述もしたように、ゲーム機のシステムは使用者の操作入力等に応じて、動的に処理が行なわれていくこととなるが、例えば操作入力に伴う演算処理がＣＰＵ１１の処理能力を上回ってしまうような場合、表示部１６への表示出力や音声出力部１７への音声出力が間に合わなくなってしまうといった事態が発生する可能性がある。
【００２７】
こうした事態を鑑み、ゲームのプログラムを実行する場合には、常にＣＰＵ１１による演算処理能力以内に収まるように制御されるべく考慮がなされる必要がある。以下においては、家庭用ゲーム機におけるＣＰＵの演算処理能力と、それに伴う制御（ＣＰＵにかかる負荷についての制御）の必要性、および、この実施の形態の家庭用ゲーム機において行うＣＰＵにかかる負荷についての具体的な制御について、音声データを処理する場合を例にして説明する。
【００２８】
［ＣＰＵの演算処理能力とＣＰＵにかかる負荷の制御の必要性について］
図１に示したこの実施の形態の家庭用ゲーム機の音声出力部１７の構成が、例えば２チャンネルの音声出力装置に相当するものであった場合、音声出力部１７から目的とする音声を出力するようにすべく、２チャンネルのデジタルデータ列を生成する必要が生じる。
【００２９】
この時、目的とする音声の出力を行うべく、１音源分の音声データ列を生成し、この音声データ列に応じた音声を発音（放音）させるために、当該家庭用ゲーム機のＣＰＵ１１の演算能力が１０パーセント必要であるとする。この場合、処理するデータが、当該１音源分の音声データ列だけであれば、まだＣＰＵ１１の演算処理能力は９０パーセントが残されていることになる。
【００３０】
しかし現実には、音源は一つに限ったものではなく、例えば使用者が操作しているゲーム上のキャラクタの声や、そのキャラクタの動作に伴う動作音、特殊な状況をあらわす効果音、周囲の状態を表現する環境音、演出効果を伴う音楽といった、様々な種類の音源が想定される。
【００３１】
単純計算で、これらすべての音源が、データ列生成のためにＣＰＵ１１の処理能力の１０パーセントを必要とすると、ＣＰＵ１１は、最大で１０個までの音源のデータ列についてしか同時に処理が行えないことになる。これに加え、こうした処理を行うべき音源の数は、使用者の操作や、それに伴ったゲームの進行状況等により動的に変化するものである。つまり、登場するキャラクタが増えたり、変わったりするだけでも、処理すべき音声データ列が増えたり、減ったりする。
【００３２】
また実際には、音源に対する処理に限定されず、表示部１６に表示する画像データのための処理等、ゲームを支障なく実行するために必要となる処理の全部を動作させた場合のＣＰＵ１１の演算処理能力（ＣＰＵ１１の演算処理能力の上限しきい値）を考慮する必要が生じる。
【００３３】
この事態に対応する方式としては、ＣＰＵの演算処理能力の上限しきい値に達しないような形に、同時に処理可能な音源数を制限するようにプログラムを記述する方法が考えられる。これは即ち、常に、ＣＰＵ１１の演算処理能力の範囲内に納まるように、同時に処理する音源の数を制御するようにするものである。
【００３４】
しかし、例えば、この例においいて、音源のみの処理でＣＰＵ１１の演算処理能力の半分までを許容範囲と考えれば、一音源分が１０パーセントなので、音源５個分がしきい値となり、このプログラムでは６音源以上、音源の発音（放音）ができない状態となってしまう。
【００３５】
この時、発音数を増やす（同時に処理可能な音声データ列を増やす）ための方法としては、一音源分を発音（放音）するために必要なＣＰＵ１１の演算能力を１０パーセント未満となるように、音声データ列の生成、即ち発音のための処理工程の負荷を低下させるようにすることが考えられる。
【００３６】
この処理工程負荷を低下させる具体的な方法の一つは、例えば演算精度を低下させる処理が考えられる。一般に、浮動小数点で演算するよりも固定少数点で演算したほうが処理工程が少なく、ＣＰＵへの負荷を減少させることが可能となる。また、同じ固定少数点演算でも、扱われるビット長により演算の負荷が異なる。例えば３２ビットデータの乗算と比較して１６ビットデータの乗算は処理工程が少なくなる。
【００３７】
一般には、演算精度を低下させるほど処理工程数は少なくなる。また、アルゴリズムの中で部分的に浮動小数点化を行ういわゆるブロックフローティング処理等をなうことで、こうした演算精度の影響をより細かく制御する方法も考えられる。
【００３８】
また、これとは別に、アルゴリズムそのものを簡易化する方法も考えられる。例えば、いわゆるＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ：有限インパルス応答）のデジタルフィルタを用いたフィルタ処理を行う場合、フィルタ係数の次数を減らすことによって処理工程を減少させ、ＣＰＵ１１への負荷の減少（軽減）につなげることが可能となる。このように、アルゴリズムの簡易化する方法は、アルゴリズムの精緻化のレベルを調整する方法であるとも言える。
【００３９】
このように、演算精度の調整やアルゴリズムの簡易化によってＣＰＵ１１の負荷を低減させることは可能である。しかし、一般には、こうした負荷低減処理により、処理結果として得られる音声信号の品質は低下する。
【００４０】
［ＣＰＵ１１の負荷軽減の具体的な制御について］
この実施の形態の家庭用ゲーム機においても、上述した音声データ列についての演算精度の調整や、音声データ列についての処理のアルゴリズムの簡易化（アルゴリズムの精緻化レベルの調整）を利用するものである。しかし、上述のように、常時、演算精度の調整やアルゴリズムの簡易化によって、ＣＰＵ１１の負荷を軽減するようにしたのでは、放音される音声の品質は全体として低いものとなる。
【００４１】
この事情を鑑み、この実施の形態の家庭用ゲーム機においては、例えば、処理がなされるべき音源数などのＣＰＵ１１にかかる負荷量の合計値を把握し、このＣＰＵ１１にかかる負荷量と、ＣＰＵ１１が同時に処理してもゲームの進行に支障をきたすことの無いＣＰＵ１１の許容負荷量とに基づいて、音声データ列に対する処理を変えるようにして、ＣＰＵ１１にかかる負荷を軽減するとともに、使用者が違和感を感じるような放音音声の品質の劣化を生じることが無いようにするものである。
【００４２】
次に、この実施の形態の家庭用ゲーム機において行われるＣＰＵ１１の負荷の軽減についての具体的な制御の仕方について、図２、図３を参照しながら詳しく説明する。
【００４３】
図２は、この実施の形態の家庭用ゲーム機において行われるＣＰＵ１１の負荷の軽減の制御の仕方について、その基本的な考え方を説明するための図である。図２において、スレッドＡ、スレッドＢ、スレッドＣ、スレッドＤは、異なる音声データ列を処理をするための行程を意味するものであり、ゲームという大きなプログラム（タスク）から起動される、より小さいモジュールを意味するものである。
【００４４】
ここでは説明を簡単にするため、各スレッドにおいて、圧縮された音源データである音声データ列を復号する処理を例にして説明する。音声圧縮された信号を復号するには様々な手法があるが、一般には圧縮された時点のフォーマットに従って復号化していくことにより、圧縮されたデータ列の最小単位により何サンプルかの復号化された音声データ列が出力され、それを繰り返し行っていくことにより一連の音声データ列が復号される。
【００４５】
圧縮されたデータの最小単位をフレーム（音声フレーム）と定義した場合、１フレームの処理で例えば左右チャンネルの１０２４サンプル分の音声データが出力される。スレッドとしての処理は、この１フレーム毎の処理を継続的に繰り返し行っていく形となる。
【００４６】
ここで、図２におけるスレッドＡ、スレッドＢ、スレッドＣ、スレッドＤは、それぞれゲームにおけるキャラクタＡ，キャラクタＢ，キャラクタＣ、キャラクタＤの音声を算出するための圧縮復号化処理に相当するものとする。この時、例えば各キャラクタの登場や消滅が、ゲームの進行状況に依存するものであるとすると、スレッド（圧縮音源復号スレッド）の出現、消滅がその都度行なわれる事となる。
【００４７】
この時に、この実施の形態の家庭用ゲーム機においては、現在ゲーム全体として、いくつの音源、即ちスレッドが処理されているかを各スレッドから把握できるような共通変数Ｎを定義する。すなわち、その時に、圧縮された音声データ列の復号化のために、当該家庭用ゲーム機のＣＰＵ１１にかかっている負荷を、現在機能している（動作している）スレッドの数（共通変数Ｎ）によって把握するようにする。
【００４８】
具体的には共通のメモリ領域を使用し、各スレッドが、この共通のメモリ領域に記憶保持される共通変数Ｎの値を更新、参照する形となる。初期状態としては、共通変数Ｎは０（Ｚｅｒｏ）であるが、スレッドが出現した瞬間に、共通変数Ｎには１を加算し、逆にスレッドが消滅する瞬間には、共通変数Ｎから１を減算する。
【００４９】
従って、図２Ａに示すように、当該家庭用ゲーム機において、ゲームの進行に伴って、キャラクタＡ、キャラクタＢ、キャラクタＣが出現し、これらに対応するスレッドＡ、スレッドＢ、スレッドＣが動作するようにされた場合には、各スレッドにおいて、共通変数Ｎに１づつが加算され、図２Ａの状態の時には、共通変数Ｎ＝３となる。
【００５０】
また、図２Ｂに示すように、ゲームの進行に伴って、存在していたキャラクタＡ、キャラクタＢが消滅し、新たなキャラクタＤが出現した場合には、キャラクタＡのスレッドＡと、キャラクタＢのスレッドＢは終了することになるが、この終了の直前に共通変数Ｎからそれぞれ１づつを減算する。また、新たに出現したキャラクタＤに対応して実行するようにされたスレッドＤにおいては、共通変数Ｎに１が加算されることになる。キャラクタＣはそのまま存在し続けているので、共通変数Ｎに対する減算、加算の対象とはならない。従って、図２Ｂの状態の時には、共通変数Ｎ＝２となる。
【００５１】
このように、共通変数Ｎによって動作しているスレッドの数を動的に把握できるようにする。そして、動作しているスレッドの数により、そのときに、圧縮音声データを復号化するためのスレッドが実行されることにより、ＣＰＵ１１にかかつている負荷が把握される。
【００５２】
そして、スレッド内部での処理においては、共通変数Ｎを監視し、共通変数Ｎがしきい値より小さければ、ＣＰＵ１１にはそれほど負荷はかかっていないと判断して、通常通りの高品位の復号化処理を行う。一方、共通変数Ｎがしきい値以上であれば、ＣＰＵ１１には大きな負荷がかかっており、これ以上の負荷は適正な処理を行うことができなくなる可能性があるので、復号化処理の演算精度を落としたり、復号化処理のアルゴリズムを簡易化したり（アルゴリズムの精緻化レベルを調整したり）するなど、ＣＰＵ１１の負荷を増大させないように、簡易化した復号化処理を行うようにする。
【００５３】
なお、ここで共通変数Ｎと比較するしきい値は、ＣＰＵ１１の許容負荷量であり、この例の場合には、同時に処理しても処理の遅れなどを生じさせることの無いスレッド数となる。すなわち、音声データ列を復号化する処理を行うスレッドのＣＰＵ１１にかかる負荷量は予め分かっているので、このスレッド単位の負荷量に基づいてしきい値が予め決められるようにされる。
【００５４】
このようにすることによって、この実施の形態の家庭用ゲーム機においては、ＣＰＵ１１にかかる負荷を抑制し、音声データ列の処理の遅延を防止して、快適にゲームを楽しむことができるようにしている。
【００５５】
次に、この例の場合の各スレッドにおける具体的な処理について、図３のフローチャートを参照しながら説明する。図３は、上述したように、キャラクタが出現した場合に、当該キャラクタの音声データを復号化する処理を行うためにＣＰＵ１１において実行するようにされる各スレッドの具体的な処理を説明するためのフローチャートである。
【００５６】
上述もしたように、キャラクタが出現すると、新たに出現したそのキャラクタの音声を処理するための図３に示すスレッドがスタートする。そして、新たにキャラクタが出現したのであるから、このキャラクタ分のＣＰＵ１１にかかる負荷量、この例の場合にはスレッドの個数である１を共通変数Ｎに加算する（ステップＳ１０１）。
【００５７】
そして、当該スレッドにおいては、１フレーム分（１音声フレーム分）のデータ圧縮された音声データをディスク２から読み出し（ステップＳ１０２）、この読み出したデータ圧縮された音声データを復号化処理する前に、共通変数ＮがＣＰＵ１１の許容負荷量（しきい値）より小さいか否かを判断する（ステップＳ１０３）。
【００５８】
ステップＳ１０３の判断処理において、共通変数Ｎがしきい値よりも小さいと判断した場合は、まだそれほど処理すべき音源数が多くなく、ＣＰＵ１１の負荷は少ないとみなして、通常通りの高品位の復号化処理を行うようにする（ステップＳ１０４）。
【００５９】
ステップＳ１０３の判断処理において、共通変数Ｎがしきい値以上であると判断したときには、ある程度の音源数を処理しており、ＣＰＵ１１への負担が大きくなっているものとみなして、簡易復号化処理を行うようにする（ステップＳ１０５）。
【００６０】
ここで、簡易復号化処理は、例えば、通常実数で対処すべき演算を整数のみとするようにしたり、処理ビット数を制限したり、処理ループの数を少なくするなど、演算精度を調整したり、アルゴリズムを簡易化したりして、ＣＰＵ１１にかかる負荷を低減するようにしたものである。
【００６１】
この後、当該キャラクタが消滅するようにされたか否かを判断する（ステップＳ１０６）。このステップＳ１０６の判断処理は、換言すれば、この例でいうところの復号化処理を終えるか否かを判断する処理にあたる。そして、ステップＳ１０６の判断処理において、当該キャラクタは、まだ消滅していないと判断したときには、ステップＳ１０２からの処理を繰り返し、当該キャラクタについての次の音声フレームの音声データについての処理を繰り返すようにする。
【００６２】
また、ステップＳ１０６の判断処理において、当該キャラクタが消滅するようにされたと判断したときには、キャラクタが減ったのであるから、共通変数ＮからＣＰＵに対する負荷量、この例の場合にはスレッドの個数である１を減算する（ステップＳ１０７）。そして、この消滅したキャラクタのためのスレッドはその処理を終了することになる。
【００６３】
なお、この実施の形態の家庭用ゲーム機においては、ＣＰＵ１１の許容負荷量（しきい値）については、具体的な値で想定していないが、このしきい値は、ＣＰＵの能力やゲーム全体のバランス、音質劣化の重要性等を考慮して、所望の値を設定するようにすればよい。
【００６４】
例えば、単純な例では、ステップＳ１０４における通常処理のＣＰＵ１１にかかる負荷が３％で、ステップＳ１０５における簡略処理のＣＰＵ１１にかかる負荷が２％であり、システム全体として音源処理に許容される負荷が１０パーセントであるような場合は、しきい値に４を設定する。この時、音源数が３つまではステップＳ１０４における通常処理により復号化処理が行われ、音源数が４つ以上の場合はステップＳ１０５における簡易処理により復号化が行われることになる。
【００６５】
ただしこの場合、音源数が６つになるとステップＳ１０５の簡易処理を用いても処理負荷が１２％となるので別途システム全体としてのしきい値の設定が必要となる。この場合、全体のしきい値による、ゲームそのものの仕様も制限されることとなるが、ステップＳ１０４の通常処理しか行わない場合と比較して、仕様制限のレベルは大幅に少ないものとなることは明白である。
【００６６】
なお、この家庭用ゲーム機においても、ステップＳ１０５においての簡易処理（簡易復号化処理）が用いられた場合には、処理結果の品質は低下することとなるが、必ず複数の音は発音されている状態ということになる。この場合、互いの音源同士の間でいわゆるマスキング効果が働くこととなり、品質の低下は一つの音源だけしか存在しない場合よりも分かりにくくなる。
【００６７】
そもそも、複数の音がなると、一つの音の場合と比較して品質に対する注意力が散漫となり、その傾向は音源数が増えれば増えるほど顕著となっていくことは明白である。この実施の形態で説明した家庭用ゲーム機では、こうした聴覚上の特徴をも利用したものとなっている。
【００６８】
なお、図３に示した処理を行う場合、ステップＳ１０２の音声データの読み出し単位を１音声フレームとすれば、１音声フレームごとに共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにすることができる。また、ステップＳ１０２の音声データの読み出し単位を１音声フレームより小さな単位とすれば、１音声フレーム内において複数回、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにし、より詳細な制御を行うようにすることができる。
【００６９】
もちろん、ステップＳ１０２の音声データの読み出し単位を１音声フレームより小さな処理単位とし、所定数分の処理単位についての音声データ列についての通常処理、あるいは、簡易処理を行うようにした後に、共通変数Ｎと許容負荷量との比較を行うようにしても、１音声フレームに複数回の共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにすることができる。
【００７０】
また、図３に示した処理を行う場合、ステップＳ１０２の音声データの読み出し単位を複数音声フレームとすれば、複数音声フレームごとに共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにすることができる。
【００７１】
もちろん、ステップＳ１０２の音声データの読み出し単位を１音声フレーム単位とし、所定フレーム数分の音声フレームについての音声データ列についての通常処理、あるいは、簡易処理を行うようにした後に、共通変数Ｎと許容負荷量との比較を行うようにしても、複数音声フレームごとに共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにすることができる。
【００７２】
また、ゲームプログラム等が記録されたディスク２が装填される家庭用ゲーム機毎のＣＰＵの処理能力やメモリの空き容量などが異なる可能性もあり、家庭用ゲーム機毎に音声データの読み出し単位、あるいは、通常処理、簡易処理の繰り返し回数などを異ならせるようにしたい場合もある。
【００７３】
このため、例えば、実行するようにされたゲームプログラムにおいて、家庭用ゲーム機毎のＣＰＵの処理能力やメモリの空き容量などをチェックし、音声データの読み出し単位や、通常処理、簡易処理の繰り返し回数などを動的に異ならせるようにしてもよい。すなわち、ＣＰＵの処理能力やメモリの空き容量などの外部パラメータによっても、共通変数Ｎと許容負荷量との比較のタイミングを制御するようにすることができる。
【００７４】
また、上述した実施の形態においては、圧縮音源の復号処理を行う場合を例にして説明したが、発音（放音）される音声信号の処理はこれに限るものではない。例えば、図４に示すように、キャラクタが出現し、そのキャラクタが音声出力を伴うものである場合、そのキャラクタの音声データ列についての処理は、上述した圧縮音声の復号処理の他、いわゆるエフェクト処理や音像定位処理が施される場合がある。
【００７５】
エフェクト処理は、音声信号に様々な装飾効果を施すものであり、ゲーム中において、当該キャラクタが例えば洞窟にいる場合には、反響効果を施すことにより、洞窟にいる場合の音声を出力できるようにするなどのことである。そして、例えば、遅延による効果を演出するエフェクトの一つとしてマルチタップディレイ処理が知られているが、マルチタップディレイ処理においては、タップ数に応じて、処理結果の品質は向上するが処理負荷が重くなるといった、これまで説明してきた内容と同様の傾向がある。
【００７６】
この場合、例えば、図３においてステップＳ１０４の通常処理が通常のマルチタップディレイ処理となり、ステップＳ１０５の簡易処理がタップ数を少なくした簡易マルチタップディレイ処理となる。つまり、ステップＳ１０５の簡易処理のタップ数の方が、ステップＳ１０４の通常処理のタップ数と比較して少なくなるような構成にすることで、圧縮復号処理の場合と同様の効果が得られるようになる。
【００７７】
また、例えば、マルチタップディレイ処理などにおけるタップ数にもある程度の幅を持たせられる。従って、図３に示したように、通常処理と簡易処理の２つのステップに限定されず、ステップＳ１０３で得られた共通変数Ｎの値に応じて、タップ数を動的に変化させるようにすることで、処理負荷と、品質をより精緻に制御することもできる。
【００７８】
ここではマルチタップディレイ処理を例にしてエフェクト処理について説明したが、これに限るものではない。ディレイ処理の他、リバーブ処理、エコー処理などの種々のエフェクト処理を行う場合に、ＣＰＵにかかる負荷量に応じて、処理精度を調整したり、アルゴリズムの簡略化（あるいは精緻化）のレベルを変更したりすることによって、ＣＰＵ１１にかかる負荷が大きくなり過ぎないように調整することが可能である。
【００７９】
また、音像定位処理は、例えば、キャラクタが動くことにより、そのキャラクタの位置に応じた位置から音声が聞こえるように処理するものであり、例えば、音源の位置から使用者の耳までの音声の伝達関数を用いて、音声データを処理することにより、音像を定位させることができるようにされる。
【００８０】
そこで、この音像定位処理を行う場合にも、処理精度を調整したり、アルゴリズムの簡略化の程度（アルゴリズムの精緻化レベル）を変更したりすることによって、ＣＰＵ１１にかかる負荷が大きくなり過ぎないように調整することが可能である。
【００８１】
そして、図４に示したように、各キャラクタ単位で、異なる音声データ列について、復号処理、エフェクト処理、音像定位処理が行われることになるが、これらの１つ以上の処理をＣＰＵの負荷の制御の対象とすることができる。
【００８２】
また、ＣＰＵの負荷を制御するために行う、例えば復号処理などの所定の処理の演算精度やアルゴリズムの精緻化のレベルの調整は、即座に切り換える方式と、徐々に調整する方式とのいずれかを選ぶことが可能である。図５は、所定の処理の演算精度やアルゴリズムの精緻化のレベルの調整について説明するための図である。
【００８３】
図５Ａは、図３を用いて説明したように、例えば音声データ列の復号処理などの所定の処理について、高品位に処理を行う通常処理と、簡略化した処理をおこなう簡易処理とを選択できるようにしておき、共通変数Ｎで把握されるＣＰＵの負荷量が、ＣＰＵの許容負荷量（しきい値）を超えたか否かに応じて切り換える方式を示している。これに対し、図５Ｂは、上述したマルチタップディレイ処理におけるタップ数の変更のように、共通変数Ｎで把握されるＣＰＵの負荷量に応じて、処理のレベルを徐々に調整していくようにする方式を示している。
【００８４】
このように、２つ以上の処理レベルの異なる処理を実行できるようにしておき、ＣＰＵの許容負荷量と実際のＣＰＵ負荷量とに基づいて、実行する処理をダイナミックに変更する方式（図５Ａ）と、ＣＰＵの許容負荷量と実際のＣＰＵ負荷量とに基づいて、実行する処理の処理レベルを徐々に変更するようにする方式（図５Ｂ）とを、制御の対象となる処理の内容や性格等に応じて最適な方式を選択するようにすればよい。
【００８５】
なお、上述した実施の形態においては、キャラクタに対応する音声データ列を復号処理する各スレッドを実行することによりＣＰＵ１１にかかる負荷は、どのスレッドも同じである場合を例にして説明したが、これに限るものではない。例えば、スレッドによっては、他のスレッドよりもより大きな負荷をＣＰＵにかける場合もあると考えられる。
【００８６】
そこで、例えば、音声データ列などの処理の対象となるデータに、当該データを処理することによりかかる負荷を示す情報を付加しておき、負荷の重い処理の場合には、共通変数Ｎに１ではなく２を加算／減算するようにするなど、その負荷の大きさに応じた値を共通変数Ｎに対して加算／減算することにより、より正確にＣＰＵ１１にかかる負荷を把握することができるようにされる。
【００８７】
また、例えば主人公のキャラクタの音声は、ＣＰＵ１１にかかっている負荷が大きくても、高品位に出力するようにしたい場合もある。そこで、例えば、音声データ列などの処理の対象となるデータに、当該データはその品位を高品位に保つものであるのか、そうでないかの優先度あるいは重要度を示す情報を付加しておき、優先度や重要度が高い音声データ列の場合には、簡易処理を行わないようにしたり、あるいは、処理レベルを低下させたりしないように制御することも可能である。もちろん、ゲームプログラムからの指示に応じて、処理の精度や処理レベルを変更するようにすることもできる。
【００８８】
このように、優先度や重要度が高い音声データ列を処理する場合には、簡易処理とされたり、処理レベルが低くされたりするなどのことはないので、その負荷の大きさに応じた値を共通変数Ｎに対して加算／減算することにより、より正確にＣＰＵ１１にかかる負荷を把握することもできる。
【００８９】
また、音声データ列に対する処理とは別に、ＣＰＵ１１に負荷のかかる処理を実行している場合には、ＣＰＵ１１の許容負荷量（しきい値）自体を変更するなどして、適正にＣＰＵ１１にかかる負荷の制御を行うようにすることも可能である。
【００９０】
［スレッドの他の処理方法について］
また、上述した実施の形態においては、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにするタイミングは、１音声フレーム毎、１音声フレームより小さな所定の処理単位毎、あるいは、複数音声フレーム毎とすることが可能であることを説明した。しかし、これに限るものではない。
【００９１】
例えば、キャラクタの発生や場面の変更が発生したタイミング毎、あるいは、映像信号の垂直同期信号のタイミング毎などの所定のいわゆるイベント発生タイミング毎に、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにすることもできる。
【００９２】
以下においては、イベント発生タイミングとして、例えば、ゲームの画像を形成する映像信号の垂直同期信号の検出タイミング毎に、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させるようにする場合を例にして、キャラクタ毎の音声データの処理スレッドの処理について説明する。
【００９３】
図６は、図３を用いて上述した場合と同様に、キャラクタが出現した場合に、当該キャラクタの音声データを例えば復号化する処理を行うためにＣＰＵ１１において実行するようにされる各スレッドの具体的な処理を説明するためのフローチャートである。
【００９４】
そして、この図６に示す処理は、上述もしたように、イベント発生タイミング毎に、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させることにより、ＣＰＵ１１の負荷を制御するとともに、例えば、各キャラクタの音声データ列に付加するようにされる処理の優先度を示す情報も考慮して、各キャラクタの音声データ列を処理するようにしている。
【００９５】
キャラクタが出現すると、新たに出現したそのキャラクタの音声を処理するための図６に示すスレッドがスタートする。まず、ＣＰＵ１１は、出現したキャラクタの音声データ列などに付加されている優先度フラグなどの必要な情報を参照し、当該キャラクタの音声データ列は優先的に通常処理すべきデータか否か、また、その音声データ列を処理する場合にＣＰＵ１１にかかる負荷量はどれくらいかなどの情報を確認する（ステップＳ２０１）。
【００９６】
そして、新たにキャラクタが出現したのであるから、このキャラクタ分のＣＰＵ１１にかかる負荷量を共通変数Ｎに加算する（ステップＳ２０２）。この後、ＣＰＵ１１は、共通変数ＮがＣＰＵ１１の許容負荷量（しきい値）より小さいか否かを判断する（ステップＳ２０３）。
【００９７】
ステップＳ２０３の判断処理において、共通変数Ｎがしきい値よりも小さいと判断した場合は、まだそれほど処理すべき音源数が多くなく、ＣＰＵ１１の負荷は少ないとみなして、通常通りの高品位の復号化処理を行う通常処理ルーチンを実行するようにする（ステップＳ２０４）。
【００９８】
また、ステップＳ２０３の判断処理において、共通変数Ｎがしきい値以上であると判断したときには、ある程度の音源数を処理しており、ＣＰＵ１１への負担が大きくなっているものとみなして、簡易処理ルーチンを実行するようにする（ステップＳ２０５）。
【００９９】
そして、ステップＳ２０４の通常処理ルーチン、および、ステップＳ２０５の簡易処理ルーチンにおいては、後述もするように、当該キャラクタが消滅するか、あるいは、垂直同期信号のタイミングとなるまで、音声データ列についての復号処理を続行することとなる。
【０１００】
ステップＳ２０４の通常処理ルーチン、および、ステップＳ２０５の簡易処理ルーチンにおいて、当該キャラクタが消滅するか、あるいは、例えば、垂直同期信号のタイミングを検出すると、それらのルーチンを抜け、当該キャラクタが消滅したか否かを判断する（ステップＳ２０６）。
【０１０１】
ステップＳ２０６の判断処理において、当該キャラクタは消滅していないと判断したときには、ＣＰＵ１１は、ステップＳ２０３からの処理を繰り返し、映像信号の垂直同期信号のタイミングにおいて、共通変数Ｎと許容負荷量との比較を行って、実行する処理を分岐させて音声データについての処理を続行するようにする。
【０１０２】
ステップＳ２０６の判断処理において、当該キャラクタが消滅したと判断したときには、キャラクタが減ったのであるから、共通変数ＮからＣＰＵに対する負荷量、この例の場合にはスレッドの個数である１を減算する（ステップＳ２０７）。そして、この消滅したキャラクタのためのスレッドはその処理を終了することになる。
【０１０３】
このように、この図６に示す処理は、キャラクタが登場したときにスタートし、当該キャラクタが消滅するまで続行されるが、映像信号の垂直同期信号のタイミングで、共通変数Ｎと許容負荷量との比較を行って、通常処理を行うか、簡易処理を行うかを見直すようにしている。
【０１０４】
図７は、図６に示したステップＳ２０４において実行される通常処理ルーチンを説明するためのフローチャートであり、図８は、図６に示したステップ２０５において実行される簡易処理ルーチンを説明するためのフローチャートである。まず、図７に示す通常処理ルーチンについて説明する。
【０１０５】
図７に示すように、通常処理ルーチンにおいては、まず、音声データを読み出し（ステップＳ３０１）、読み出した音声データについて比較的に高品位に復号処理を行う通常処理を実行する（ステップＳ３０２）。そして、ＣＰＵ１１は、当該キャラクタが消滅したか否かを判断する（ステップＳ３０３）。
【０１０６】
ステップＳ３０３の判断処理において、当該キャラクタが消滅したと判断したときには、この図７に示す処理を終了し、上述もしたように、図６に示した音声データの復号処理自体が終了することになる。また、ステップＳ３０３の判断処理において、当該キャラクタは消滅していないと判断したときには、所定のイベント、すなわち、この例の場合には、映像信号の垂直同期信号を検出したか否かを判断する（ステップＳ３０４）。
【０１０７】
ステップＳ３０４の判断処理において、垂直同期信号を検出していないと判断したときには、ステップＳ３０１からの処理を繰り返し、当該キャラクタについての音声データの復号処理を続行する。また、ステップＳ３０４の判断処理において、垂直同期信号を検出したと判断したときには、この図７に示す通常処理ルーチンを終了して、図６に示したステップＳ２０６からの処理を行うことになる。
【０１０８】
このように、一度、通常処理ルーチンが実行された後においては、当該キャラクタが消滅するか、あるいは、映像信号の垂直同期信号が検出されるまで、通常処理により高品位に音声データの復号処理が行われる。
【０１０９】
次に、図６に示したステップＳ２０５において実行される処理であって、図８に示す簡易処理ルーチンについて説明する。図８に示すように、簡易処理ルーチンにおいては、まず、音声データを読み出し（ステップＳ４０１）、読み出した音声データについて、上述もしたように、演算精度を低く抑えるようにしたり、あるいは、復号化のアルゴリズムの精緻化レベルを低く抑えるようにしたりすることにより、簡易化した復号処理を行う簡易処理を実行する。
【０１１０】
そして、この簡易処理ルーチンの場合には、例えば、処理する音声データに付加するようにされている優先フラグに基づいて、処理する音声データは優先処理するデータか否かを判断する（ステップＳ４０２）。例えば、メインキャラクタの音声データについては、どんなにＣＰＵ１１に負荷がかかっていても、通常処理で復号を行いたい場合もある。このような場合には、例えば、ゲームの製作者の意図により、当該キャラクタの音声データには、上述のように、優先フラグが付加される。
【０１１１】
そして、ステップＳ４０２の判断処理において、優先フラグが付加されており、優先して通常処理で処理すべきデータであると判断したときには、この簡易処理ルーチンにおいても、高品位に復号処理を行う通常処理を実行する（ステップＳ４０３）。
【０１１２】
また、ステップＳ４０２の判断処理において、優先フラグは付加されておらず、優先処理データではないと判断したときには、簡易復号処理を行う簡易処理を実行する（ステップＳ４０４）。
【０１１３】
そして、ＣＰＵ１１は、ステップＳ４０３の処理、あるいは、ステップＳ４０４の処理の後、当該キャラクタが消滅したか否かを判断する（ステップＳ４０５）。ステップＳ４０５の判断処理において、当該キャラクタが消滅したと判断したときには、この図８に示す処理を終了し、上述もしたように、図６に示した音声データの復号処理自体が終了することになる。
【０１１４】
また、ステップＳ４０５の判断処理において、当該キャラクタは消滅していないと判断したときには、所定のイベント、すなわち、映像信号の垂直同期信号を検出したか否かを判断する（ステップＳ４０６）。
【０１１５】
ステップＳ４０６の判断処理において、垂直同期信号を検出していないと判断したときには、ステップＳ４０１からの処理を繰り返し、当該キャラクタについての音声データの簡易型の復号処理を続行する。また、ステップＳ４０６の判断処理において、垂直同期信号を検出したと判断したときには、この図８に示す簡易処理ルーチンを終了して、図６に示したステップＳ２０６からの処理を行うことになる。
【０１１６】
したがって、一度、簡易処理ルーチンが実行された後においても、当該キャラクタが消滅するか、あるいは、映像信号の垂直同期信号が検出されるまで、簡易処理によりＣＰＵ１１にかかる負荷が低くなるようにした簡易処理が行われることになる。
【０１１７】
このように、図６、図７、図８を用いて説明したように、垂直同期信号の検出タイミングや、シーンチェンジのタイミングなどの所定のいわゆるイベントの発生タイミングで、そのときのＣＰＵ１１の負荷量を示す共通変数Ｎと許容負荷量（しきい値）とを比較して、音声データ列について通常処理を行うか、簡易処理を行うかを切り換えることができる。
【０１１８】
このように、ＣＰＵ１１の負荷量を示す共通変数Ｎと許容負荷量（しきい値）との比較を、目的とするイベントの発生タイミングで行うようにすることができる。したがって、音声フレーム単位を基準としたタイミング、目的とするイベントの発生タイミングなどの適宜のタイミングでＣＰＵ１１の負荷量を示す共通変数Ｎと許容負荷量（しきい値）との比較を行い、実行する処理の分岐を行うようにすることができる。
【０１１９】
なお、ここでも、キャラクタの発する音声データ列の復号処理を行う場合を例にして説明したが、これに限るものではない。音声データ列の処理としては、復号処理の他、エフェクト処理、音像定位処理などの他の処理を行う場合にも、この発明を適用することができる。
【０１２０】
［処理対象データの他の例について］
上述した実施の形態においては、ゲームの進行に応じて出現／消滅するキャラクタが発生する音声を形成する音声データ列を処理する場合を例にして説明した。しかし、これに限るものではない。例えば、図１に示した家庭用ゲーム機の表示部１６に表示する画像を形成するための画像データを処理する場合にも、この発明を適用することが可能である。
【０１２１】
家庭用ゲーム機の表示部１６に表示される画像としては、例えば、頻繁に動く登場キャラクタの他、背景画像として、建物などの動きの無いものから、水の流れのある川などの動きのあるものまで種々のものがある。そして、各画像をいわゆるオブジェクト単位で処理して表示することにより、動きの無い画像はそのままに、動きのある画像のみを変化させるようにすることによって、効率よく画像処理を行うようにすることができる。
【０１２２】
例えば、登場キャラクタの画像（動きの激しいもの）、背景画像としての建物や道路（動きのないもの）、背景画像としての道路上を走る車や流れのある川（動きのあるもの）などは、それぞれをオブジェクトして別個に処理して表示することができるようにされる。
【０１２３】
そして、例えば、キャラクタが登場する前、あるいは、キャラクタの数が少なくその動きもあまり激しくない場合には、ＣＰＵ１１にかかる負荷はあまり大きくないので、全てのキャラクタを高品位に表示できるように各オブジェクトの画像データを処理する（高品位処理する）。
【０１２４】
しかし、キャラクタの数が増えたり、キャラクタの動きが激しくなってきたりした場合には、ＣＰＵ１１にかかる負荷は大きくなっているので、例えば、流れのある川や道路上を走る車などの動きのある背景画像のオブジェクトの画像データについては、演算精度を落としたり、アルゴリズムの精緻化レベルを落としたり、あるいは、動き自体を停止させるなど、低品位の画像データ処理を行うようにする。このように、動きのある背景画像のオブジェクトを低精度で処理することにより、ＣＰＵ１１にかかる負荷を軽減させることができるのである。
【０１２５】
そして、上述のように画像データを処理する場合にも、上述した音声データの場合と同様に、例えば、登場キャラクタなどの動きの激しいオブジェクトの数に応じて、背景画像の内の動きのあるオブジェクトの画像データを処理する場合の演算精度やアルゴリズムの精緻化レベルを調整することによって、ＣＰＵ１１にかかる負荷を所定の範囲内に収めるようにすることができる。
【０１２６】
このように、オブジェクト単位の画像データを処理する場合にも、例えば、動きの激しいオブジェクトの数と、ＣＰＵ１１の画像データについての許容負荷量とを比較し、動きの激しいオブジェクトの数が許容負荷量を超えた場合には、背景画像の内の動きのあるオブジェクトの画像データを処理する場合の演算精度やアルゴリズムの精緻化レベルを低くした簡易処理を行うようにしたり、あるいは、動きの激しいオブジェクトの数に応じて、背景画像の内の動きのあるオブジェクトの画像データを処理する場合の演算精度やアルゴリズムの精緻化レベルを調整したりすることにより、ＣＰＵ１１にかかる負荷を制御することができる。
【０１２７】
また、この場合、この家庭用ゲーム機の使用者は、動きの激しい登場キャラクタなどに注意を向けることになるため、背景画像の動きのある画像についての処理がレベルダウンしたとしても、これに明らかに気が付き、気になってしまうなどの不都合を生じさせることも無いようにすることができる。
【０１２８】
また、ここでは、背景画像の内の動きのあるオブジェクトの画像データについて、処理の演算精度やアルゴリズムの精緻化レベルを変えたり、徐々に調整したりする場合を説明したが、これに限るものでは無い。例えば、登場キャラクタなどの動きの激しいオブジェクトの画像データについての処理の演算精度やアルゴリズムの精緻化レベルを変えたり、徐々に調整したりしてもよい。
【０１２９】
なお、上述した実施の形態においては、演算処理手段、算出手段、決定手段、負荷容量変更手段のそれぞれは、ＣＰＵ１１の機能として実現されるものであり、これらをＣＰＵ１１において実行されるプログラムによって実現することができる。
【０１３０】
そして、演算処理手段としてのＣＰＵ１１においては、音声データの復号処理、エフェクト処理、音像定位処理の他、データ圧縮されていないデータをデータ圧縮して出力する必要性が生じた場合には、演算処理手段としてのＣＰＵ１１の処理として、データ圧縮処理を行うようにしてもよい。
【０１３１】
また、上述もしたように、ＣＰＵ１１において処理可能なデジタルデータとしては、音声データだけでなく、映像データでもよい。処理するデータが映像データである場合には、演算処理手段としてＣＰＵ１１において行なわれる処理は、映像データの復号処理やデータ圧縮処理、映像の拡大や縮小処理、色相調整や輝度調整、シャープネス調整などの種々の映像データに関する処理を行うようにすることができる。
【０１３２】
また、決定手段により決定される演算処理手段としてのＣＰＵ１１において実行される演算処理の内容の決定は、上述した実施の形態においても説明したように、比較的に高品位の処理を行う通常処理と、演算精度の抑制やアルゴリズムの簡易化を行うようにした簡易処理とのいずれかを選択する場合だけでなく、ＣＰＵ１１にかかる負荷量の合計値に応じて、演算精度やアルゴリズムの簡易化の程度（精緻化レベル）を段階的に調整するようにすることも含むものである。
【０１３３】
また、上述の実施の形態においては、演算処理手段、算出手段、決定手段、負荷容量変更手段のそれぞれは、ＣＰＵ１１の機能として実現されるものとして説明したがこれに限るものではない。音声データを処理するための音声データ専用ＣＰＵ（音声データ用エンジン）や画像データを処理するための画像データ専用のＣＰＵ（画像データエンジン）を備える場合にもこの発明を適用することができる。
【０１３４】
すなわち、演算処理手段、算出手段、決定手段、負荷容量変更手段のそれぞれを別個のＣＰＵによって構成してもよい。そして、音声データや映像データを処理するＣＰＵの負荷を適正に制御しようとする場合に、この発明を適用することができる。
【０１３５】
また、上述した実施の形態においては、この発明を家庭用ゲーム機に適用した場合を例にして説明したが、これに限るものではない。業務用のゲーム機であってもよいし、また、ゲーム機に限らず、音声や映像を処理して出力する例えば教育用機器等、各種のデジタル音声処理装置やデジタル映像処理装置にこの発明を適用することができる。
【０１３６】
【発明の効果】
以上説明したように、この発明により、ＣＰＵ負荷を動的に、かつ、適切に制御することが可能になり、例えばゲーム進行における仕様制限項目の減少など、ＣＰＵにかかる負荷に起因する制限を少なくすることができる。また、音声データや画像データ等の品質面においても、体感的には高品質を維持したものとして確認される。つまり、品質面の劣化を使用者に意識させることも無いようにすることができる。
【図面の簡単な説明】
【図１】この発明が適用された家庭用ゲーム機の構成例を説明するための図である。
【図２】図１に示した家庭用ゲーム機において行われる共通変数Ｎの更新処理を説明するための図である。
【図３】図１に示した家庭用ゲーム機において行われるＣＰＵにかかる負荷についての制御処理を説明するための図である。
【図４】音声データについての処理について説明するための図である。
【図５】音声データについての処理の所定の処理の処理精度やアルゴリズムの精緻化のレベルの調整について説明するための図である。
【図６】図１に示した家庭用ゲーム機において行われるＣＰＵにかかる負荷についての制御処理の他の例を説明するための図である。
【図７】図６に示した処理のステップＳ２０４において行われる処理を説明するための図である。
【図８】図６に示した処理のステップＳ２０５において行われる処理を説明するための図である。
【符号の説明】
１…家庭用ゲーム機、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ディスク再生機、１５…操作部、１６…表示部、１７…音声出力部
【図１】
2004258765.tif 000003
【図２】
2004258765.tif 000004
【図３】
2004258765.tif 000005
【図４】
2004258765.tif 000006
【図５】
2004258765.tif 000007
【図６】
2004258765.tif 000008
【図７】
2004258765.tif 000009
【図８】
2004258765.tif 000010