(57)【要約】【課題】  消費電力を低く抑えることができ、かつ、多様な信号処理を行うことができるオーディオ信号処理装置を提供する。【解決手段】  データパス部３０は、音声データＡおよびＢを受け取り、時分割制御により、これらに対する信号処理を実行する。モードレジスタ５０は、実行すべき信号処理を指定するモード情報を記憶する。ステートマシン部４０は、モードレジスタ５０に記憶されたモード情報により指定される信号処理を構成する１または複数の演算処理をデータパス部３０に実行させるための制御信号を順次生成する。【選択図】        図１
2005136626.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号に対する演算処理を実行するデータパス部と、
実行すべき信号処理を指定するモード情報を記憶するモードレジスタと、
前記モードレジスタに記憶されたモード情報により指定される信号処理を構成する１または複数の演算処理を前記データパス部に実行させる制御信号を順次出力するステートマシン部と
を具備するオーディオ信号処理装置。
【請求項２】
前記ステートマシン部は、各演算処理の対象となる入力データの所在を示す情報と各演算処理の結果の出力先を示す情報を前記制御信号として出力する請求項１記載のオーディオ信号処理装置。
【請求項３】
オーディオ信号を外部から受け取り、あるいは外部から与えられる信号に基づいてオーディオ信号を生成し、該オーディオ信号を前記データパス部に供給するインタフェースを複数有し、
前記ステートマシン部は、前記データパス部に供給されたオーディオ信号のフォーマットを所定のフォーマットに変換する演算処理を前記データパス部に実行させる制御信号を生成する手段を具備する請求項１記載のオーディオ信号処理装置。
【請求項４】
前記ステートマシン部は、前記データパス部内にある同一フォーマットの複数のオーディオ信号をミキシングする演算処理を前記データパス部に実行させる制御信号を生成する手段を具備する請求項３記載のオーディオ信号処理装置。
【請求項５】
前記ステートマシン部は、所定周期のクロックが与えられる毎に、前記モードレジスタに記憶されたモード情報により指定される信号処理を前記データパス回路に実行させるための制御信号を生成する請求項１記載のオーディオ信号処理装置。
【請求項６】
前記データパス部は、実行中の演算処理の状態を示す状態信号を前記ステートマシン部に送る手段を有し、
前記ステートマシン部は、前記状態信号に基づいて、次回のクロックが与えられたときに前記データパス部に送る制御信号の内容を決定する請求項５記載のオーディオ信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オーディオ信号に対して各種の音響処理を施すオーディオ信号処理装置に関する。
【背景技術】
【０００２】
オーディオ信号に対して、フィルタ処理、イコライザ処理、音像定位処理といった複数種類の演算処理を施すことが可能なオーディオ信号処理装置が提供されている。ここで、フィルタ処理等の個々の演算処理は、乗算器や累算器などを含んだ比較的規模の大きな演算回路を各々必要する。従って、複数の処理を組み合わせた複雑な信号処理が可能なオーディオ信号処理装置を構成しようとすると、そのための回路が極めて大規模なものとなってしまう。また、回路が大規模であると、そのような回路を動作させるためにオーディオ信号処理装置の消費電力が大きくなってしまう。一方、オーディオ信号処理装置の中には、例えばサンプリング周波数など、フォーマットの異なった複数チャネルのオーディオ信号を受け取って、信号処理を施すものもある。この種のオーディオ信号処理装置では、チャネル毎に用意された演算回路により入力ディジタルオーディオ信号に対する信号処理を行い、信号処理を経た各チャネルのディジタルオーディオ信号をＤ／Ａ変換し、ミキシングして出力していた。この種のオーディオ機器も、チャネル毎に演算回路を有しているため、信号処理のための回路が大規模なものとなっており、また、消費電力が大きなものとなっていた。このような問題を解決するため、共通の演算回路を使用して、フィルタ処理、イコライザ処理といった複数種類の演算処理を時分割制御により順次実行するオーディオ信号処理装置が提案されるに至った。この種のオーディオ信号処理装置によれば、単一の演算回路を時分割制御により使用するので、小規模な回路構成とすることができる。なお、この種のオーディオ信号処理装置については、例えば特許文献１に開示されている。
【０００３】
【特許文献１】特開平１２−１２２６５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上述した従来のオーディオ信号処理装置は、決められた種類の演算処理を固定された順序で順次実行するものであった。このため、オーディオ信号処理の内容の異なった多くの仕様のオーディオ信号処理装置を市場に提供しようとする場合、各仕様毎にオーディオ信号処理装置を開発し、製造しなければならず、開発コスト、製造コストが嵩むという問題があった。この問題を解決するための一方法として、例えばオーディオ信号処理装置自体は、フィルタ処理、イコライザ処理、音像定位処理などの多くの演算処理を実行可能な、いわばフル装備の構成としておき、ある仕様では、例えばフィルタ処理を省略し、別の仕様ではフィルタ処理を省略しない、といったことを行うことにより多くの仕様を実現する方法が考えられる。このような演算処理の省略は、例えばフィルタ処理の場合には、フィルタ演算のためのフィルタ係数を「１」にして、処理対象たるディジタルオーディオ信号に演算回路を素通りさせる、という方法により実現可能である。しかし、たとえ演算回路を素通りさせるとはいえ、そのときには演算回路が動作するので、不要な信号処理のために無駄な電力を消費してしまうという問題がある。
この発明は、以上説明した事情に鑑みてなされたものであり、消費電力を低く抑えることができ、かつ、多様な信号処理を行うことができるオーディオ信号処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、この発明は、オーディオ信号に対する演算処理を実行するデータパス部と、実行すべき信号処理を指定するモード情報を記憶するモードレジスタと、前記モードレジスタに記憶されたモード情報により指定される信号処理を構成する１または複数の演算処理を前記データパス部に実行させる制御信号を順次出力するステートマシン部とを具備するオーディオ信号処理装置を提供する。
かかるオーディオ信号処理装置によれば、モードレジスタ内のモード情報を書き換えることにより、多様な信号処理をデータパス部により実行させることができる。また、データパス部は、信号処理を構成する演算のみを実行し、無駄な動作を行わないので、消費電力を低く抑えることができる。
好ましい態様において、前記ステートマシン部は、各演算処理の対象となる入力データの所在を示す情報と各演算処理の結果の出力先を示す情報を前記制御信号として出力する。
別の好ましい態様において、オーディオ信号処理装置は、オーディオ信号を外部から受け取り、あるいは外部から与えられる信号に基づいてオーディオ信号を生成し、該オーディオ信号を前記データパス部に供給するインタフェースを複数有し、前記ステートマシン部は、前記データパス部に供給されたオーディオ信号のフォーマットを所定のフォーマットに変換する演算処理を前記データパス部に実行させる制御信号を生成する手段を具備する。
この態様において、前記ステートマシン部は、前記データパス部内にある同一フォーマットの複数のオーディオ信号をミキシングする演算処理を前記データパス部に実行させる制御信号を生成する手段を具備してもよい。
また、別の好ましい態様において、前記ステートマシン部は、所定周期のクロックが与えられる毎に、前記モードレジスタに記憶されたモード情報により指定される信号処理を前記データパス回路に実行させる制御信号を生成する。
この態様において、前記データパス部は、実行中の演算処理の状態を示す状態信号を前記ステートマシン部に送る手段を有し、前記ステートマシン部は、前記状態信号に基づいて、次回のクロックが与えられたときに前記データパス部に送る制御信号の内容を決定してもよい。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照して、本発明の実施形態について説明する。
＜第１実施形態＞
図１は、この発明の第１実施形態であるオーディオ信号処理装置１０の構成を示すブロック図である。このオーディオ信号処理装置１０は、図示された各部に相当する回路を半導体チップ上に形成してなるＬＳＩであり、エフェクタ機能、ミキシング機能などの機能を必要とする各種のオーディオ機器に搭載される。
【０００７】
本実施形態に係るオーディオ信号処理装置１０は、音声波形をサンプル化した時系列の音声データをソースＡから受け取り、演奏データをソースＢから受け取って、それらの処理を行う装置である。ここで、ソースＡは、例えばオーディオ信号処理装置１０が搭載されるオーディオ機器に接続された外部機器またはオーディオ機器に内蔵されたＭＰ３（MPEG 1 layer 3）デコーダ等のオーディオ再生装置である。また、ソースＢは、例えばオーディオ信号処理装置１０が搭載されるオーディオ機器内においてオーディオ信号処理装置１０の制御を行う上位プロセッサである。
【０００８】
ソースＡからの音声データを受け取るため、オーディオ信号処理装置１０には、ディジタルオーディオＩ／Ｆ１１が設けられている。本実施形態では、ＬおよびＲの２チャネルからなるサンプリング周波数ｆ１の音声データＡがディジタルオーディオＩ／Ｆ１１を介して入力される。
【０００９】
また、ソースＢからの演奏データを受け取って音声データを得るため、オーディオ信号処理装置１０には、ＣＰＵ Ｉ／Ｆ１２、シーケンサ１３および音源１４が設けられている。演奏データは、ソースＢからＣＰＵ Ｉ／Ｆ１２を介してシーケンサ１３に供給される。この演奏データは、シーケンシャルデータであり、このシーケンシャルデータは、ノートオン、ノートオフといった音源１４の制御を指示する一連のイベントデータと各イベントデータの音源１４への送出間隔を指定するデュレーションデータとを含んでいる。シーケンサ１３は、イベントデータの音源１４への送出タイミングの制御を行う。さらに詳述すると、シーケンサ１３は、あるイベントデータを音源１４に送出した場合、後続のイベントデータに対応付けられたデュレーションデータ相当の時間の経過を待って、後続のイベントデータを音源１４に送出する、という動作を繰り返す。好ましい態様において、音源１４は、ステレオサンプリングされた音声データを発生する音源である。この態様において、音源１４は、ノートオンのイベントデータが与えられたとき、各々異なる波形を表すＬ、Ｒ２チャネルからなるサンプリング周波数ｆ２の音声データＢを出力する。別の好ましい態様において、音源１４は、モノラルサンプリングされた音声データを発生する音源である。この態様において、音源１４は、ノートオンのイベントデータが与えられたとき、サンプリング周波数ｆ２を有するモノラルの音声データを発生する。この音声データは、音像定位の位置を示すパンポット係数に対応した音量比率で、Ｌ、Ｒ２チャネルの音声データＢに振り分けられ、音源１４から出力される。
【００１０】
オーディオ信号処理部２０は、ディジタルオーディオＩ／Ｆ１１および音源１４から各々得られる音声データＡおよびＢに対する信号処理を行い、その処理結果であるＬ、Ｒ２チャネルのディジタル信号を出力する装置である。このオーディオ信号処理部２０の内部では、周波数ｆｓのサンプリングクロックＣＬＫとこれより高速の演算用クロックＭＣＬＫが、図示しないクロックジェネレータにより発生される。オーディオ信号処理部２０内において、音声データＡおよびＢに対する信号処理は、サンプリングクロックＣＬＫが発生される度に、これをトリガとして実行される。また、この信号処理を行うための各部のタイミング制御は、演算用クロックＭＣＬＫに同期して行われる。本実施形態において、サンプリングクロックＣＬＫの周波数ｆｓは、音声データＢのサンプリング周波数ｆ２と同じである。従って、音声データＢについては、サンプリング周波数の変換を行うことなく、そのままオーディオ信号処理部２０内において処理可能である。音声データＡのサンプリング周波数ｆ１は、周波数ｆｓ（＝ｆ２）と異なっている。このため、本実施形態において音声データＡは、オーディオ信号処理部２０内に取り込まれた後、そのサンプリング周波数をｆ１からｆｓ（＝ｆ２）に変換するＳＲＣ演算処理が施される。なお、このＳＲＣ演算処理については後述する。
【００１１】
図１に示すように、オーディオ信号処理部２０は、データパス部３０と、ステートマシン部４０と、モードレジスタ５０とを有している。データパス部３０は、テンポラリデータ格納用メモリ３１と、演算部３２とを有している。テンポラリデータ格納用メモリ３１は、処理対象である音声データＡおよびＢを一時記憶するためのバッファリングエリア、信号処理の途中のディジタルデータを一時記憶するための一時記憶エリアとして用いられる。演算部３２は、テンポラリデータ格納用メモリ３１から読み出されるデータに対して演算処理を施す装置であり、乗算器３３と、累算器３４と、演算係数生成回路３５とを有している。ここで、乗算器３３は、テンポラリデータ格納用メモリ３１から読み出されるデータに対して演算係数を乗算する回路、演算係数生成回路３５は、その演算係数を生成する回路である。如何なる演算係数を生成するかは、処理対象であるデータに対して施すべき演算の種類に基づき決定される。累算器３４は、乗算器３３から乗算結果が出力される度にその累算を行う回路である。この累算器３４は、乗算器３３の乗算結果を累算する動作の他、累算を行うことなく乗算結果を素通りさせるスルー動作も可能な構成となっている。以上の演算部３２により如何なる演算を行うか、テンポラリデータ格納用メモリ３１内のどの領域のデータを演算対象にするか、演算結果である累算器３４の出力データをどこに供給するかは、ステートマシン部４０から供給される制御信号により決定される。
【００１２】
ステートマシン部４０には、データパス部３０の内部状態を示す状態信号が供給される。ステートマシン部４０は、この状態信号に基づいてデータパス部３０の内部状態の変化を監視し、この監視結果に基づいて制御信号を出力することにより、各種の信号処理をデータパス部３０に行わせる装置である。
【００１３】
ステートマシン部４０は、データパス部３０による演算の実行を制御するための手段として、演算処理用ステートマシン４１ａ〜４１ｈを有している。これらの演算処理用ステートマシンの制御下でデータパス部３０により行われる演算処理を列挙すると次の通りである。
ａ．ＳＲＣ（サンプリングレート変換）演算処理
これは、テンポラリデータ格納用メモリ３１からサンプリング周波数ｆ１の音声データを読み出して、サンプリング周波数ｆｓ（＝ｆ２）の音声データに変換する処理であり、演算処理用ステートマシン４１ａによる制御の下で実行される。
ｂ．ＶＯＬ（ボリューム）演算処理
これは、テンポラリデータ格納用メモリ３１から音声データを読み出してそのボリュームを調整する処理であり、演算処理用ステートマシン４１ｂによる制御の下で実行される。
ｃ．ＦＡＤＥ（フェイド）演算処理
これは、テンポラリデータ格納用メモリ３１から音声データを読み出してそのボリュームを一時的に無音状態のものにする処理であり、演算処理用ステートマシン４１ｃによる制御の下で実行される。
ｄ．ＭＩＸ（ディジタルミックス）演算処理
これは、テンポラリデータ格納用メモリ３１から２種類の音声データを読み出してそのミキシングを行う処理であり、演算処理用ステートマシン４１ｄによる制御の下で実行される。
ｅ．ＥＱ（ディジタルイコライザ）演算処理
これは、テンポラリデータ格納用メモリ３１から音声データを読み出して、周波数帯域毎にレベル調整を行う処理であり、演算処理用ステートマシン４１ｅによる制御の下で実行される。
ｆ．ＶＳＰ（仮想スピーカ定位）演算処理
これは、図２に示すように、テンポラリデータ格納用メモリ３１からＬチャネルおよびＲチャネルの音声データを読み出し、仮想的なスピーカＶＳＰ−ＬおよびＶＳＰ−Ｒの位置に合わせて用意されたＦＩＲ（Finite Impulse Response）フィルタ係数列を各々に畳み込み、さらにレベルのシフトを行う処理であり、演算処理用ステートマシン４１ｆによる制御の下で実行される。このＶＳＰ演算処理の施されたＬチャネルおよびＲチャネルの音声データがＤ／Ａ変換されて左右のスピーカＳＰ−ＬおよびＳＰ−Ｒから出力されると、ＬチャネルおよびＲチャネルの音声があたかも仮想スピーカＶＳＰ−ＬおよびＶＳＰ−Ｒから出力されたかのような聴覚的効果を聴者に与えることができる。
ｇ．ＬＯＡＤ（データロード）演算処理
これは、音声データＡおよびＢをテンポラリデータ格納用メモリ３１のバッファリングエリアに一旦格納するとともに、これらのデータを必要とする演算処理に引き渡す処理であり、演算処理用ステートマシン４１ｇによる制御の下で実行される。
ｈ．ＶＳＰ ＴＨＲＵ（ＶＳＰスルー）演算処理
これは、テンポラリデータ格納用メモリ３１からＬチャネルおよびＲチャネルの音声データを読み出し、ＶＳＰ演算処理からＦＩＲフィルタ演算を除いたもの、すなわち、図２におけるシフト演算を施す処理であり、演算処理用ステートマシン４１ｈによる制御の下で実行される。
【００１４】
本実施形態におけるオーディオ信号処理部２０は、以上の各演算処理を組み合わせた各種の信号処理を実行することができる。このオーディオ信号処理部２０が実行可能な信号処理の形態には、図３に示すように、モード０〜ｎ−１のｎ種類がある。オーディオ信号処理部２０におけるモードレジスタ５０には、モード０〜ｎ−１のうちいずれのモードでの信号処理を行うかを指定するモード情報が書き込まれる。好ましい態様では、オーディオ信号処理装置１０が搭載される機器の操作部の操作に応じて、このモードレジスタ５０にモード情報が書き込まれる。別の好ましい態様では、オーディオ信号処理装置１０を制御する上位プロセッサがソフトウェアに従ってモードレジスタ５０にモード情報を書き込む。なお、モードレジスタ５０を不揮発性メモリによって構成し、工場出荷時に所定のモード情報をモードレジスタ５０に書き込む、という実施の態様もある。
【００１５】
演算ステージ呼び出し用ステートマシン部４２は、図３に示されるモード０〜ｎ−１に対応した各信号処理をデータパス部３０に実行させるためのｎ個の演算ステージ呼び出し用ステートマシンの集合体である。ステートマシン部４０では、これらの演算ステージ呼び出し用ステートマシンのうち、モードレジスタ５０内のモード情報によって指定されたモードに対応した演算ステージ呼び出し用ステートマシンが、サンプリングクロックＣＬＫが発生する度に起動される。
【００１６】
各モードに対応した演算ステージ呼び出し用ステートマシンは、そのモードでの信号処理をデータパス部３０に行わせるために、その信号処理を構成する１または複数の演算処理に対応した演算処理用ステートマシンを順次起動する機能を有している。この演算ステージ呼び出し用ステートマシンにより起動された演算処理用ステートマシンは、該当する演算処理をデータパス部３０に行わせるための制御信号を生成する。この制御信号は、演算ステージ呼び出し用ステートマシンを介してデータパス部３０に供給される。
【００１７】
また、演算ステージ呼び出し用ステートマシンは、信号処理を構成する各演算処理間のデータの引き渡しを適正に行うための制御を行う。図３にも示されているように、信号処理を構成する各演算処理間のデータ引き渡しの態様はモードにより異なる。例えばＭＩＸ演算処理に着目すると、モード０ではＶＯＬ演算処理の結果とＬＯＡＤ演算処理の結果がＭＩＸ演算処理に引き渡されるが、モード１ではＶＯＬ演算処理の結果とＥＱ演算処理の結果がＭＩＸ演算処理に引き渡される。また、モード０においてＭＩＸ演算処理の結果はＥＱ演算処理に引き渡されるが、モード１においてＭＩＸ演算処理の結果はＶＳＰ演算処理に引き渡される。そこで、本実施形態において各モードに対応した演算ステージ呼び出し用ステートマシンは、ある演算処理を行わせるための制御信号がデータパス部３０に送られるとき、その演算処理の対象となるデータの所在を示す情報とその演算処理の結果の格納先または出力先を示す情報とを含む制御信号をデータパス部３０に送る。このような制御により、各演算処理の入力データの取得先と出力データの供給先をモード毎に設定し、同一構成のデータパス回路により多様な信号処理を行わせることを可能にしている。
【００１８】
ステートマシン部４０は、以上述べたステートマシンの他に、ステートマシン４３と、ステートマシン部４０内の全ステートマシンを統括するメインステートマシン４４を有している。ステートマシン４３は、モードレジスタ５０内のモード情報が書き換えられたときにメインステートマシン４４によって起動され、テンポラリデータ格納用メモリ３１の初期化処理を行う。これは、モードが切り換わった場合において切り換え前のモードでの演算処理結果がテンポラリデータ格納用メモリ３１内にそのまま残っていると、切り換え後のモードでの演算処理に支障を来す場合があるからである。例えばＶＳＰ演算処理のような遅延処理を伴う演算処理では、モード切り換えの際にテンポラリデータ格納用メモリ３１の初期化が行われないと、切り換え前のモードでの演算処理結果が切り換え後の演算処理に引き渡されることとなり、意図した結果が得られない。そのような不都合を回避するため、このステートマシン４３がモード切り換え時に起動されるのである。
【００１９】
図１におけるアナログ部６０は、Ｄ／Ａ変換器を主要な構成要素としており、以上説明したオーディオ信号処理部２０から出力されるＬ、Ｒ２チャネル分のディジタル信号をアナログ信号に各々変換し、左右のスピーカ（図１では図示略）に出力する。
以上が本実施形態に係るオーディオ信号処理装置１０の構成の詳細である。
【００２０】
次に本実施形態の動作を説明する。なお、以下説明する動作においてデータパス部３０の処理対象となるのはＬ、Ｒ２チャネルの音声データであるが、説明が煩雑になるのを防ぐため、単に音声データという。
【００２１】
図１において、ソースＡからの音声データとソースＢからの演奏データがオーディオ信号処理装置１０に供給されると、サンプリング周波数ｆ１の音声データＡがディジタルオーディオＩ／Ｆ１１から出力され、サンプリング周波数ｆ２の音声データＢが音源１４から出力され、各々オーディオ信号処理部２０に供給される。
【００２２】
図４はこれらの音声データを処理するオーディオ信号処理部２０の動作を示すタイムチャートである。オーディオ信号処理部２０の内部では、周波数ｆｓのサンプリングクロックＣＬＫとこれより高速の演算用クロックＭＣＬＫが発生される。音声データＡおよびＢは、これらのクロックとは非同期なタイミングでディジタルオーディオＩ／Ｆ１１および音源１４から各々出力され、テンポラリデータ格納用メモリ３１内の音声データＡ用のバッファリングエリアおよび音声データＢ用のバッファリングエリアに各々格納される。本実施形態において、これらのバッファリングエリアはＦＩＦＯとして機能する。すなわち、バッファリングエリアに格納された未読の音声データＡおよびＢは、各々古いものから順に読み出される。
【００２３】
オーディオ信号処理部２０では、サンプリングクロックＣＬＫが発生される度に、音声データＡおよびＢに対する信号処理が実行される。さらに詳述すると、モードレジスタ５０内のモード情報によって示されるモードが例えばモード０である場合、オーディオ信号処理部２０では、図示のように、サンプリングクロックＣＬＫが発生する度に、モード０の信号処理を構成するＬＯＡＤ演算処理、ＳＲＣ演算処理、ＶＯＬ処理、ＭＩＸ処理、ＥＱ処理、ＶＳＰ処理、ＦＡＤＥ処理が時分割制御により順次実行される。
【００２４】
図５は、あるサンプリング周期（１／ｆｓ）においてオーディオ信号処理部２０により行われるモード０に対応した信号処理を詳細に示すタイムチャートである。モード０においては、演算ステージ呼び出し用ステートマシン部４２におけるモード０に対応した演算ステージ呼び出し用ステートマシンがサンプリングクロックＣＬＫの立ち上がりにより起動される。このモード０に対応した演算ステージ呼び出し用ステートマシンは、まず、ＬＯＡＤ演算処理のための演算処理用ステートマシン４１ｇを起動する。この演算処理用ステートマシン４１ｇは、データパス部３０にＬＯＡＤ演算処理を行わせるための制御信号を生成する。この制御信号は、モード０に対応した演算ステージ呼び出し用ステートマシンを介してデータパス部３０に送られる。その際、モード０に対応した演算ステージ呼び出し用ステートマシンは、未読の音声データＢのうち最も古いものの格納エリアを示す情報と、音声データＢの出力先であるテンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアを指定する情報とを含む制御信号をデータパス部３０に送る。また、ＳＲＣ演算処理が音声データＡの補充を必要とする状態にある場合、モード０に対応した演算ステージ呼び出し用ステートマシンは、ＬＯＡＤ演算処理において読み出すべき音声データＡの格納エリアを示す情報と、音声データＡの出力先であるテンポラリデータ格納用メモリ３１内のＳＲＣ演算処理用エリアを指定する情報とを含む制御信号をデータパス部３０に送る。なお、ＳＲＣ演算処理が音声データＡの補充を必要とする状態が如何なる状態かについては後述する。
【００２５】
データパス部３０では、以上のようにしてステートマシン部４０から送られてくる制御信号に従い、ＬＯＡＤ演算処理が行われる。さらに詳述すると、まず、演算係数生成回路３５は演算係数として「１」を乗算器３３に与える。また、累算器３４は、スルー状態とされる。この状態において、音声データＢがテンポラリデータ格納用メモリ３１内の音声データＢ用のバッファリングエリアから読み出される。この音声データＢは、乗算器３３および累算器３４を素通りし、テンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアに格納される。また、ＳＲＣ演算処理が音声データＡの補充を必要とする状態においては、音声データＡがテンポラリデータ格納用メモリ３１内の音声データＡ用のバッファリングエリアから読み出される。この音声データＡは、乗算器３３および累算器３４を素通りし、テンポラリデータ格納用メモリ３１内のＳＲＣ演算処理用エリアに格納される。このようにしてＬＯＡＤ演算処理が終了すると、データパス部３０は、ＬＯＡＤ演算処理が終了した旨の状態信号をステートマシン部４０に送る。
【００２６】
モード０に対応した演算ステージ呼び出し用ステートマシンは、この状態信号を受け取ると、ＳＲＣ演算処理のための演算処理用ステートマシン４１ａを起動する。この演算処理用ステートマシン４１ａは、データパス部３０にＳＲＣ演算処理を行わせるための制御信号を生成する。なお、この制御信号については後に詳述する。ＳＲＣ演算処理のための制御信号は、モード０に対応した演算ステージ呼び出し用ステートマシンを介してデータパス部３０に送られる。その際、モード０に対応した演算ステージ呼び出し用ステートマシンは、ＳＲＣ演算処理の対象となる入力データの格納先として、テンポラリデータ格納用メモリ３１内のＳＲＣ演算処理用エリアを指定する情報と、サンプリングレート変換後の音声データの出力先であるテンポラリデータ格納用メモリ３１内のＶＯＬ演算処理用エリアを指定する情報とを含む制御信号をデータパス部３０に送る。
【００２７】
データパス部３０では、このようにしてステートマシン部４０から送られてくる制御信号に基づいて、ＳＲＣ演算処理が実行される。図６には、このＳＲＣ演算処理の様子が示されている。ＳＲＣ演算処理では、周波数ｆｓのサンプリングクロックＣＬＫが発生する度に、過去発生した一連の音声データＡの包絡線上において１／ｆｓ間隔で並んだ各サンプリング点における１個の音声波形瞬時値を求める補間演算が行われる。図６には、ある時刻ｔ１において、サンプリングクロックＣＬＫの発生に伴って求められる瞬時値がマークＸにより示されている。この瞬時値は、サンプリング点の前後所定個数の音声データＡに補間演算用の係数列を畳み込むことにより求められる。図６には、サンプリング点の後の１個の音声データＡｋとサンプリング点の前の３個の音声データＡｋ−１、Ａｋ−２およびＡｋ−３を用いてサンプリング点における瞬時値を求める場合が例示されている。位相情報Δｔは、瞬時値を求めるべきサンプリング点とその直前の音声データＡｋ−１の発生タイミングとの位相差を示す情報である。前述したＳＲＣ演算処理のための制御信号には、この位相情報Δｔが含まれている。演算係数生成回路３５は、位相情報Δｔに対応した予め決定された補間演算用の係数列を生成し、各補間演算用係数を乗算器３３に順次供給する。この動作と並行し、音声データＡｋ〜Ａｋ−３がテンポラリデータ格納用メモリ３１のＳＲＣ演算処理用エリアから読み出され、乗算器３３に順次供給される。乗算器３３では、音声データＡｋ〜Ａｋ−３の各々と補間演算用係数との乗算が順次行われ、累算器３４では乗算結果の累算が行われる。このようにして音声データＡｋ〜Ａｋ−３に補間演算用の係数列が畳み込まれる。そして、この畳み込み演算により得られる時刻ｔ１のサンプリング点に対応した音声波形瞬時値が、ＳＲＣ演算処理後の音声データＡとして、テンポラリデータ格納用メモリ３１内のＶＯＬ演算処理用エリアに書き込まれる。
【００２８】
次にデータパス部３０では、次回のＳＲＣ演算処理に備えて、今回瞬時値を求めたサンプリング点の次のサンプリング点に対応した位相情報Δｔが求められ、状態信号としてステートマシン部４０に送られる。この位相情報Δｔは、次回のＳＲＣ演算処理時に、制御信号の一部としてステートマシン部４０からデータパス部３０に送られることとなる。新たなサンプリング点に対応した位相情報Δｔは、例えば周波数比ｆ１／ｆｓを現在の位相情報Δｔに加算する処理を演算部３２に行わせることにより得ることができる。
【００２９】
ここで、周波数比ｆ１／ｆｓの加算により位相情報Δｔが周波数比ｆ１／ｆｓの加算により「１」を越える場合、次に求めるべき音声波形瞬時値は、ＳＲＣ演算処理用エリア内にある最も新しい音声データＡｋよりも時間的に後のものであることになる。この場合、次回のＳＲＣ演算処理では、新たな音声データＡｋ＋１を補充し、音声データＡｋ＋１、Ａｋ、Ａｋ−１、Ａｋ−２を用いる必要がある。そこで、データパス部３０は、周波数比ｆ１／ｆｓの加算後の位相情報Δｔから「１」を差し引いた位相情報Δｔと、次のサンプリング周期においては音声データＡｋ＋１の補充が必要であることを示す情報とを含む状態信号をステートマシン部４０に送る。
【００３０】
演算ステージ呼び出し用ステートマシン部４２におけるモード０に対応した演算ステージ呼び出し用ステートマシンでは、このようにしてデータパス部３０から送られてくる状態信号が、次回のＳＲＣ演算処理のために保存される。また、データパス部３０からの状態信号が新たな音声データＡの補充が必要であることを示す情報を含んでいる場合もある。この場合、モード０に対応した演算ステージ呼び出し用ステートマシンは、次のサンプリング周期においてＬＯＡＤ演算処理をデータパス部３０に行わせるときに、上述したように、音声データＡの格納エリアを示す情報と、音声データＡの出力先であるテンポラリデータ格納用メモリ３１内のＳＲＣ演算処理用エリアを指定する情報とを含む制御信号をデータパス部３０に送るのである。
以上がオーディオ信号処理部２０によって行われるＳＲＣ演算処理の詳細である。
【００３１】
なお、実際の音声データＡのサンプリング周波数ｆ１には時間変動があり、サンプリングクロックＣＬＫの周波数ｆｓにも時間変動がある。これらの時間変動が大きい場合、以上説明したような固定値ｆ１／ｆｓの累算により位相情報Δｔを求めると、ＳＲＣ演算処理により算出される音声波形瞬時値の位相と音声データＡ用のバッファリングエリアに書き込まれる音声データＡの位相との位相差が時間経過とともに大きくなり、バッファリングエリアのオーバフローあるいはアンダフローが発生するおそれがある。このような不都合を回避するため、バッファリングエリア内の読み出し未了の音声データＡの残量を監視し、残量が所定値より小さいときにはサンプリング周期毎に位相情報Δｔに加算する増分を小さくしてアンダフローを防止し、残量が所定値よりも大きいときには位相情報Δｔに加算する増分を大きくしてオーバフローを防止することが望ましい。なお、この技術については例えば本出願人によって出願された特許文献２に開示されている。
【００３２】
【特許文献２】特開平１１−５５０７５号公報
【００３３】
演算ステージ呼び出し用ステートマシン部４２におけるモード０に対応した演算ステージ呼び出し用ステートマシンは、データパス部３０からの状態信号により、ＳＲＣ演算処理の終了を検知すると、ＶＯＬ演算処理のための演算処理用ステートマシン４１ｃを起動する。この演算処理用ステートマシン４１ｃは、データパス部３０にＶＯＬ演算処理を行わせるための制御信号を生成する。この制御信号は、モード０に対応した演算ステージ呼び出し用ステートマシンを介してデータパス部３０に送られる。その際、モード０に対応した演算ステージ呼び出し用ステートマシンは、ＶＯＬ演算処理の対象となる入力データの所在を示す情報と、ＶＯＬ演算処理の結果得られる音声データの出力先として、テンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアを指定する情報を含む制御信号をデータパス部３０に送る。
【００３４】
データパス部３０では、以上のようにしてステートマシン部４０から送られてくる制御信号に従い、次のようにしてＶＯＬ演算処理が行われる。まず、テンポラリデータ格納用メモリ３１内のＶＯＬ演算処理用エリアからＳＲＣ演算処理後の音声データＡが読み出される。そして、演算部３２によりこの音声データにＶＯＬ演算処理が施され、その結果得られる音声データがテンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアに格納される。このようにしてＶＯＬ演算処理が終了すると、データパス部３０は、その旨の状態信号をステートマシン部４０に送る。
【００３５】
演算ステージ呼び出し用ステートマシン部４２におけるモード０に対応した演算ステージ呼び出し用ステートマシンは、データパス部３０からの状態信号により、ＶＯＬ演算処理の終了を検知すると、ＭＩＸ演算処理のための演算処理用ステートマシン４１ｄを起動する。この演算処理用ステートマシン４１ｄは、データパス部３０にＭＩＸ演算処理を行わせるための制御信号を生成する。この制御信号は、モード０に対応した演算ステージ呼び出し用ステートマシンを介してデータパス部３０に送られる。その際、モード０に対応した演算ステージ呼び出し用ステートマシンは、ＭＩＸ演算処理の対象となる入力データの所在を示す情報と、ＭＩＸ演算処理の結果得られる音声データの出力先として、テンポラリデータ格納用メモリ３１内のＥＱ演算処理用エリアを指定する情報を含む制御信号をデータパス部３０に送る。
【００３６】
データパス部３０では、以上のようにしてステートマシン部４０から送られてくる制御信号に従い、ＭＩＸ演算処理が行われる。このＭＩＸ演算処理では、テンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアに格納された音声データＡおよびＢが処理対象となる。ここで、音声データＡは、前述したＳＲＣ演算処理を経ているため、音声デーラＢと同様なサンプリング周波数ｆ２のサンプルデータとなっている。従って、ＭＩＸ演算処理では、これらの音声データの重み付け加算をするだけでよい。以下、その動作を説明する。
【００３７】
まず、ＭＩＸ演算処理用エリアから音声データＡが読み出されるとともに、演算係数生成回路３５から音声データＡの重みを決定付けるミキシング係数が出力され、両者が乗算器３３に与えられる。乗算器３３では音声データＡとミキシング係数との乗算が行われ、その乗算結果は累算器３４に与えられて格納される。次に、テンポラリデータ格納用メモリ３１内のＭＩＸ演算処理用エリアから音声データＢが読み出されるとともに、演算係数生成回路３５から音声データＢの重みを決定付けるミキシング係数が出力され、両者が乗算器３３に与えられる。乗算器３３では音声データＢとミキシング係数との乗算が行われ、その乗算結果は累算器３４に与えられる。累算器３４では、既に格納されたデータにこの乗算結果を加算する累算処理が行われる。この累算処理により、音声データＡおよびＢをミキシングした音声データが得られる。このミキシング処理後の音声データは、テンポラリデータ格納用メモリ３１内のＥＱ演算処理用エリアに格納される。このようにしてミキシング演算処理が終了すると、データパス部３０は、その旨の状態信号をステートマシン部４０に送る。
以後、基本的に上述と同様の制御により、ＶＳＰ演算処理、ＦＡＤＥ演算処理が進められる。
【００３８】
最後のＦＡＤＥ演算処理の実行時、モード０に対応した演算ステージ呼び出し用ステートマシンは、ＦＡＤＥ演算処理の結果の出力先としてアナログ部６０を指定する情報をデータパス部３０に送る。データパス部３０は、この情報に従い、ＦＡＤＥ演算処理の結果をアナログ部６０に送る。
【００３９】
最後のＦＡＤＥ演算処理が終わると、オーディオ信号処理部２０は、ＩＤＬＥ状態となる。このＩＤＬＥ状態において、データパス部３０では信号処理のための動作が全く行われないため、オーディオ信号処理装置１０全体の消費電力は僅かなものとなる。
【００４０】
その後、サンプリングクロックＣＬＫが発生し、新たなサンプリング周期が開始されると、図４に示すように、ＬＯＡＤ演算処理〜ＦＡＤＥ演算処理までのモード０の信号処理が再び実行される。
以上の処理がサンプリングクロックＣＬＫの発生の度に繰り返され、図３に示すモード０での信号処理を経たアナログ信号がアナログ部６０において生成され、左右のスピーカから音として出力される。
【００４１】
他のモードを指定するモード情報がモードレジスタ５０に格納されている場合にも、上述と同様の制御により、そのモードの信号処理が行われる。図７は、図３に示すモード１の信号処理が行われる場合のオーディオ信号処理部２０の動作を示している。なお、図７を図５と比べると、ＭＩＸ演算処理用エリアとＥＱ演算処理用エリアの位置が入れ替わっている。しかし、これは図示が煩雑になるのを防ぐために入れ替えて図示したものであり、実際にＭＩＸ演算処理用エリアとＥＱ演算処理用エリアとが入れ替わっているのではない。
【００４２】
上述したモード０の信号処理は、モード０に対応した演算ステージ呼び出し用ステートマシンの働きにより、ＬＯＡＤ、ＳＲＣ、ＶＯＬ、ＭＩＸ、ＥＱ、ＶＳＰ、ＦＡＤＥの順に各演算処理が起動された。これに対し、モード１の信号処理では、モード１に対応した演算ステージ呼び出し用ステートマシンの働きにより、ＬＯＡＤ、ＳＲＣ、ＶＯＬ、ＥＱ、ＭＩＸ、ＶＳＰ、ＦＡＤＥの順に各演算処理が起動される。また、各演算処理間のデータの引き渡しも、モード１に対応した演算ステージ呼び出し用ステートマシンの働きにより、モード０とは異なった態様で行われる。
【００４３】
以上のように、本実施形態に係るオーディオ信号処理装置１０は、共通のデータパス部３０を使用して、内容の異なった複数種類の信号処理を行うことが可能であり、所望の信号処理に対応したモード情報をモードレジスタ５０に書き込んでおくことにより、その信号処理をオーディオ信号処理部２０に行わせることができる。従って、信号処理の種類の異なった多くの仕様のオーディオ信号処理装置１０を１チップで実現することができる。また、本実施形態に係るオーディオ信号処理装置１０では、サンプリング周期が始まり、モード情報に対応した信号処理が実行された後、次のサンプリング周期が始まるまでの期間は、データパス部３０が全く動作しないＩＤＬＥ状態となる。しかも、モード情報に対応した信号処理において、データパス部３０は、その信号処理を行うための動作しか行わない。従って、本実施形態によれば、信号処理にとって不要な動作を回避することにより、無駄な電力消費をなくし、消費電力を低く抑えることができる。従って、例えば携帯電話など、低消費電力であることが要求される携帯型電子機器への搭載も可能であり、これらの機器において高品質のオーディオ信号処理機能を提供することが可能になる。
【００４４】
＜第２実施形態＞
本実施形態に係るオーディオ信号処理装置の構成は、図１に示す第１実施形態のものと基本的に同様である。上記第１実施形態において演算ステージ呼び出し用ステートマシン部４２は、モード０〜モードｎ−１に各々対応した複数の演算呼び出し用ステートマシンの集合体であった。本実施形態における演算ステージ呼び出し用ステートマシン部４２は、単一のステートマシンであり、図８に示す判断テーブルに従い、データパス部３０の制御および状態遷移を行う。図９はその動作を示す状態遷移図である。
【００４５】
図９に示すように、演算ステージ呼び出し用ステートマシン部４２は、現在の状態とモードとに基づいて、データパス部３０の制御の内容を決定する（ステップＳ１、Ｓ２）。例えば、現在、データパス部３０によるＳＲＣ演算処理を制御する状態にあり、モードがモード０である場合、演算ステージ呼び出し用ステートマシン部４２は、ＳＲＣ演算処理を指示する制御信号をデータパス部３０に送る。その際、演算ステージ呼び出し用ステートマシン部４２は、図８の判断テーブルに従い、ＳＲＣ演算処理により得られるデータの出力先としてＶＯＬ演算処理用エリアを指定する制御信号をデータパス部３０に送る。そして、演算ステージ呼び出し用ステートマシン部４２は、データパス部３０からの状態信号によりＳＲＣ演算処理の終了を検知すると、図８の判断表に従い、ＶＯＬ演算処理を制御する状態に遷移するのである（ステップＳ３）。そして、ＶＯＬ演算処理を制御する状態になると、再び現在の状態（この場合、ＶＯＬ演算処理を制御する状態）とモードとに基づいてデータパス部３０の制御を行うのである（ステップＳ１、Ｓ２）。
本実施形態においても上記第１実施形態と同様な効果が得られる。
【００４６】
＜他の実施形態＞
以上、本発明の第１実施形態および第２実施形態について説明したが、この他にも、本発明には次のような実施形態がある。
（１）モード毎に、各演算処理において使用するテンポラリデータ格納用メモリ内のエリアの割り当てを変えてもよい。例えば、実行する演算処理の種類が少ないモードでは、実行する演算処理の種類が多いモードに比べて、個々の演算処理に割り当てるエリアの容量を大きくする、という態様が考えられる。
（２）モード切り換えを動的に行わない場合には、テンポラリデータ格納用メモリの初期化処理のためのステートマシン４３と、メインステートマシン４４は不要であるので、これらを省略してもよい。
【図面の簡単な説明】
【００４７】
【図１】この発明の第１実施形態に係るオーディオ信号処理装置１０の構成を示すブロック図である。
【図２】同実施形態において実行されるＶＳＰ演算処理の内容を示す図である。
【図３】同実施形態において実行可能な信号処理の例を示す図である。
【図４】同実施形態の動作を示すタイムチャートである。
【図５】同実施形態の動作を示すタイムチャートである。
【図６】同実施形態におけるＳＲＣ演算処理を示すタイムチャートである。
【図７】同実施形態の動作を示すタイムチャートである。
【図８】この発明の第２実施形態であるオーディオ信号処理装置において用いられる判断表を示す図である。
【図９】同実施形態の動作を示す状態遷移図である。
【符号の説明】
【００４８】
１０……オーディオ信号処理装置、２０……オーディオ信号処理部、３０……データパス部、４０……ステートマシン部、４１ａ〜４１ｈ……演算処理用ステートマシン、４２……演算ステージ呼び出し用ステートマシン部、５０……モードレジスタ、１１……ディジタルオーディオＩ／Ｆ、１２……ＣＰＵ Ｉ／Ｆ、１３……シーケンサ、１４……音源、３１……テンポラリデータ格納用メモリ、３２……演算部、３３……乗算器、３４……累算器、３５……演算係数生成回路、６０……アナログ部。
【図１】
2005136626.tif 000003
【図２】
2005136626.tif 000004
【図３】
2005136626.tif 000005
【図４】
2005136626.tif 000006
【図５】
2005136626.tif 000007
【図６】
2005136626.tif 000008
【図７】
2005136626.tif 000009
【図８】
2005136626.tif 000010
【図９】
2005136626.tif 000011