(57)【要約】【課題】入力されるオーディオ信号の信号レベルに追従して、オーディオ信号の信号レベルを適切に調整する。【解決手段】信号取得部１１は、オーディオ信号を取得する。記憶部１２には、取得されるオーディオ信号の信号レベルの基準値が記憶される。更新部１３は、記憶されている基準値が、取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する。ゲイン取得部１４は、更新された基準値に基づいて、取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得する。調整部１５は、取得されたゲインに基づいて、取得されたオーディオ信号の信号レベルを調整する。【選択図】図３
2012095248.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を取得する信号取得部と、
前記取得されるオーディオ信号の信号レベルの基準値が記憶される記憶部と、
前記記憶されている基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新部と、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得部と、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整部と、を備える、
ことを特徴とする信号レベル調整装置。
【請求項２】
前記ゲイン取得部は、前記取得されたオーディオ信号の信号レベルが高いほど低いゲインを取得する、
ことを特徴とする請求項１に記載の信号レベル調整装置。
【請求項３】
前記ゲイン取得部は、前記取得されたオーディオ信号の信号レベルが前記記憶されている基準値に収束する場合に、ゲインに基づく調整後の信号レベルが前記所定の信号レベルに収束するゲインを取得する、
ことを特徴とする請求項１又は２に記載の信号レベル調整装置。
【請求項４】
前記更新部は、前記取得されたオーディオ信号の信号レベルが前記記憶されている基準値よりも大きい場合、当該オーディオ信号の信号レベルが当該基準値よりも小さい場合よりも、当該基準値の更新量を大きくする、
ことを特徴とする請求項１乃至３のいずれか１項に記載の信号レベル調整装置。
【請求項５】
前記信号取得部は、複数のオーディオ信号を取得し、
前記更新部は、前記記憶されている基準値が、前記取得された複数のオーディオ信号の信号レベルのうち、最も大きな信号レベルに近づくように、当該基準値を更新し、
前記ゲイン取得部は、前記複数のオーディオ信号のそれぞれに対するゲインを取得し、
前記調整部は、前記取得された前記複数のオーディオ信号のそれぞれに対するゲインのうち、最も小さいゲインに基づいて、当該取得された複数のオーディオ信号の信号レベルのそれぞれを調整する、
ことを特徴とする請求項１乃至４のいずれか１項に記載の信号レベル調整装置。
【請求項６】
オーディオ信号を取得する信号取得工程と、
前記取得されるオーディオ信号の信号レベルの基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新工程と、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得工程と、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整工程と、を備える、
ことを特徴とする信号レベル調整方法。
【請求項７】
オーディオ信号を取得する信号取得部と、前記取得されるオーディオ信号の信号レベルの基準値が記憶される記憶部と、を備えるコンピュータを、
前記記憶されている基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新部、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得部、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整部、として機能させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号レベル調整装置、信号レベル調整方法、および、プログラムに関する。
【背景技術】
【０００２】
オーディオ信号の信号レベルを、所定の信号レベルを超えないように調整することにより、クリップの発生を抑制する信号レベル調整装置が知られている。例えば、特許文献１には、電源電圧が変更されたことをトリガとして、スレッショルドレベルを所定の初期値から徐々に下げる音響装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１５９５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された音響装置においては、一度下がったスレッショルドレベルは、新たなトリガが発生するまで上がらない。従って、特許文献１に開示された音響装置では、例えば、入力されるオーディオ信号の信号レベルが大きく変動する場合に、オーディオ信号の信号レベルを適切に調整することができなかった。このため、入力されるオーディオ信号の信号レベルに追従して、オーディオ信号の信号レベルを適切に調整することが可能な信号レベル調整装置が望まれている。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、入力されるオーディオ信号の信号レベルに追従して、オーディオ信号の信号レベルを適切に調整するのに好適な信号レベル調整装置、信号レベル調整方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の第１の観点に係る信号レベル調整装置は、
オーディオ信号を取得する信号取得部と、
前記取得されるオーディオ信号の信号レベルの基準値が記憶される記憶部と、
前記記憶されている基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新部と、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得部と、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整部と、を備える、
ことを特徴とする。
【０００７】
前記ゲイン取得部は、前記取得されたオーディオ信号の信号レベルが高いほど低いゲインを取得してもよい。
【０００８】
前記ゲイン取得部は、前記取得されたオーディオ信号の信号レベルが前記記憶されている基準値に収束する場合に、ゲインに基づく調整後の信号レベルが前記所定の信号レベルに収束するゲインを取得してもよい。
【０００９】
前記更新部は、前記取得されたオーディオ信号の信号レベルが前記記憶されている基準値よりも大きい場合、当該オーディオ信号の信号レベルが当該基準値よりも小さい場合よりも、当該基準値の更新量を大きくしてもよい。
【００１０】
前記信号取得部は、複数のオーディオ信号を取得し、
前記更新部は、前記記憶されている基準値が、前記取得された複数のオーディオ信号の信号レベルのうち、最も大きな信号レベルに近づくように、当該基準値を更新し、
前記ゲイン取得部は、前記複数のオーディオ信号のそれぞれに対するゲインを取得し、
前記調整部は、前記取得された前記複数のオーディオ信号のそれぞれに対するゲインのうち、最も小さいゲインに基づいて、当該取得された複数のオーディオ信号の信号レベルのそれぞれを調整してもよい。
【００１１】
上記目的を達成するために、本発明の第２の観点に係る信号レベル調整方法は、
オーディオ信号を取得する信号取得工程と、
前記取得されるオーディオ信号の信号レベルの基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新工程と、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得工程と、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整工程と、を備える、
ことを特徴とする。
【００１２】
上記目的を達成するために、本発明の第３の観点に係るプログラムは、
オーディオ信号を取得する信号取得部と、前記取得されるオーディオ信号の信号レベルの基準値が記憶される記憶部と、を備えるコンピュータを、
前記記憶されている基準値が、前記取得されたオーディオ信号の信号レベルに近づくように、当該基準値を更新する更新部、
前記更新された基準値に基づいて、前記取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、当該調整後の信号レベルが所定の信号レベルよりも小さくなるゲインを取得するゲイン取得部、
前記取得されたゲインに基づいて、前記取得されたオーディオ信号の信号レベルを調整する調整部、として機能させる、
ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、入力されるオーディオ信号の信号レベルに追従して、オーディオ信号の信号レベルを適切に調整することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係る信号レベル調整装置が適用される信号処理システムを示すブロック図である。
【図２】本発明の第１実施形態に係る信号レベル調整装置の物理的な構成を示すブロック図である。
【図３】本発明の第１実施形態に係る信号レベル調整装置の機能を説明するためのブロック図である。
【図４Ａ】入力と出力との関係を示す第１の図である。
【図４Ｂ】入力と出力との関係を示す第２の図である。
【図５Ａ】入力と出力との関係を示す第３の図である。
【図５Ｂ】入力と出力との関係を示す第４の図である。
【図６】本発明の第１実施形態に係る信号レベル調整装置が実行する信号レベル調整処理を示すフローチャートである。
【図７】図６に示す基準値更新処理を示すフローチャートである。
【図８】図６に示すゲイン取得処理を示すフローチャートである。
【図９】図６に示すリミッタ解除処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、本発明の実施形態に係る信号レベル調整装置について説明する。
【００１６】
（第１実施形態）
まず、図１を参照して、本実施形態に係る信号レベル調整装置が適用される信号処理システムの構成について説明する。
【００１７】
図１に示すように、信号処理システム１０００は、信号レベル調整装置１００と、信号処理装置２００と、Ｄ／Ａ（Ｄｉｇｉｔａｌ／Ａｎａｌｏｇ）コンバータ３００と、ボリューム４００と、増幅器５００と、スピーカ６００と、を備える。
【００１８】
信号レベル調整装置１００は、信号処理装置２００から供給されたオーディオ信号の信号レベルを調整する。具体的には、信号レベル調整装置１００は、後段の装置（例えば、Ｄ／Ａコンバータ３００）への出力に歪みが発生しないように、信号処理装置２００から供給されたオーディオ信号の信号レベルを、所定の信号レベルを超えないように制限する。つまり、信号レベル調整装置１００は、リミッタ装置として機能する。なお、信号処理装置２００から供給されるオーディオ信号は、ＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）データなどである。ＰＣＭデータは、例えば、サンプリング周波数が４４．１ｋＨｚ、量子化ビット数が１６ビットのディジタルデータにより表現される。なお、Ｄ／Ａコンバータ３００への出力が歪まないというのは、ディジタルデータの場合、[-２＾ｋ]＜＝ディジタルデータ＜＝[(２＾ｋ)-１](ただし、ｋ：信号バッファのビット長−１。ビット長はＤ／Ａコンバータ３００とのオーディオ・インターフェースのフォーマットで決まる。)ということと等価である。
【００１９】
信号処理装置２００は、図示しない外部装置から供給されたオーディオ信号に所定の信号処理を施して出力する。信号処理装置２００は、種々の処理を実行する装置であり、例えば、入力されたオーディオ信号に所定の値を乗じて出力する増幅器である。この場合、信号処理装置２００に入力されるオーディオ信号の信号レベルをｘ（ｎ）、ゲインをｇ、信号処理装置２００から出力されるオーディオ信号の信号レベルをｙ’（ｎ）、とすると、ｙ’（ｎ）＝ｇｘ（ｎ）となる。ただし、ｎは、ディジタル信号のサンプル番号である。
【００２０】
ｘ（ｎ）＜＝０ｄＢで、ｇ＞１．０のとき、ｙ’（ｎ）＜＝０ｄＢが成立しなくなる。ここで、信号レベル調整装置１００から出力されるオーディオ信号の信号レベルをｙ（ｎ）とすると、信号レベル調整装置１００が信号調整処理をしない場合（信号レベル調整装置１００が存在せず、信号処理装置２００から出力されるオーディオ信号が直接Ｄ／Ａコンバータ３００に供給される場合と同義）、ｙ（ｎ）＝ｙ’（ｎ）となり、０ｄＢを超えたオーディオ信号は、結果として歪みを発生させてしまう。従って、ｙ（ｎ）＜＝０ｄＢが常に成立するように、信号レベルを調整することが信号レベル調整装置１００の責務となる。ここでいう０ｄＢとは、ＤＡＣに対して出力したデータがこのレベルを超えると歪んでしまうレベルであることを示す。
【００２１】
なお、従来の信号レベル調整装置（リミッタ装置）は、リミッタ処理の結果、オーディオ信号の信号レベルが小さくなり、結果として音量が下がったように聞こえたり、若干の歪みが残ったりする問題があった。本実施形態に係る信号レベル調整装置１００は、オーディオ信号の信号レベルが小さくなることを抑制しつつ、歪みが残らないように、オーディオ信号の信号レベルを調整する装置である。
【００２２】
Ｄ／Ａコンバータ３００は、信号レベル調整装置１００から供給されたディジタルのオーディオ信号をアナログ信号に変換する。例えば、Ｄ／Ａコンバータ３００は、供給されたオーディオ信号により１６ビット(実際はＤＡＣとのオーディオ・インターフェースのフォーマットに依存)で表される信号レベルに対応する電圧を出力する。
【００２３】
ボリューム４００は、Ｄ／Ａコンバータ３００から供給されたアナログ信号の信号レベルを調整する。ボリューム４００は、例えば、ユーザによって回転させられるつまみを有する可変抵抗器を備える。このつまみが回転させられると、可変抵抗器の抵抗値が変更され、ボリューム４００から出力されるアナログ信号の信号レベル（電圧値）が調整される。
【００２４】
増幅器５００は、ボリューム４００から供給されたアナログ信号を増幅する。具体的には、増幅器５００は、供給されたアナログ信号の信号レベルに所定のゲインを乗じることにより得られるアナログ信号を出力する。
【００２５】
スピーカ６００は、増幅器５００から供給されたアナログ信号を音声に変換して、出力する。
【００２６】
次に、図２を参照して、本実施形態に係る信号レベル調整装置の物理的な構成について説明する。
【００２７】
図１に示すように、信号レベル調整装置１００は、ＣＰＵ(Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２、ＲＡＭ(Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)１０３、入力装置１０４、出力装置１０５、を備える。信号レベル調整装置１００が備えるこれらの構成要素は、バスにより相互に接続される。
【００２８】
ＣＰＵ１０１は、信号レベル調整装置１００の全体の動作を制御する。なお、ＣＰＵ１０１は、ＲＯＭ１０２に格納されているプログラムに従って動作し、ＲＡＭ１０３をワークエリアとして使用する。ＣＰＵ１０１は、入力装置１０４に供給されたオーディオ信号の信号レベルを調整するための演算処理などを実行する。
【００２９】
ＲＯＭ１０２には、信号レベル調整装置１００の全体の動作を制御するためのプログラムやデータが記憶される。
【００３０】
ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして機能する。つまり、ＣＰＵ１０１は、ＲＡＭ１０３にプログラムやデータを一時的に書き込み、これらのプログラムやデータを適宜参照する。
【００３１】
入力装置１０４は、オーディオ信号の入力を受け付ける。入力装置１０４は、例えば、所定のサンプリング周波数で所定の量子化ビットにより表されるオーディオ信号が入力されるシリアルポートを備える。
【００３２】
出力装置１０５は、調整後のオーディオ信号を出力する。出力装置１０５は、例えば、所定のサンプリング周波数で所定の量子化ビットにより表されるオーディオ信号を出力するシリアルポートを備える。
【００３３】
次に、図３を参照して、信号レベル調整装置１００が備える基本的な機能について説明する。
【００３４】
図３に示すように、信号レベル調整装置１００は、信号取得部１１、記憶部１２、更新部１３、ゲイン取得部１４、調整部１５、を備える。
【００３５】
信号取得部１１は、オーディオ信号を取得する。取得されるオーディオ信号は、信号処理装置２００から出力されるオーディオ信号であってもよいし、所定の記憶装置などに記憶されているオーディオ信号であってもよい。信号取得部１１は、例えば、入力装置１０４により構成される。
【００３６】
記憶部１２には、信号取得部１１により取得されるオーディオ信号の信号レベルの基準値が記憶される。この基準値は、オーディオ信号の信号レベルを調整するためのゲインを求めるための値である。なお、後述するゲイン取得部１４によって、この基準値からゲイン取得用係数が求められ、求められたゲイン取得用係数からゲインが求められる。この基準値は、例えば、近い将来に信号レベル調整装置１００に供給されるオーディオ信号の信号レベルのピーク値として推定される値であってもよい。記憶部１２は、例えば、ＲＡＭ１０３により構成される。
【００３７】
更新部１３は、記憶部１２に記憶されている基準値が、信号取得部１１により取得されたオーディオ信号の信号レベルに段階的に近づくように、この基準値を更新する。つまり、更新部１３は、供給されたオーディオ信号の信号レベルに基づいて、オーディオ信号の信号レベルを調整するためのゲインを求めるための基準値を更新する。更新部１３は、例えば、ＣＰＵ１１により構成される。
【００３８】
ゲイン取得部１４は、更新部１３により更新された基準値に基づいて、ゲインを取得する。ゲイン取得部１４により取得されるゲインは、信号取得部１１により取得されたオーディオ信号の信号レベルが高いほどゲインに基づく調整後の信号レベルが高くなり、かつ、この調整後の信号レベルが所定の信号レベルよりも小さくなるゲインである。ゲイン取得部１４は、例えば、ＣＰＵ１１により構成される。
【００３９】
調整部１５は、ゲイン取得部１４により取得されたゲインに基づいて、信号取得部１１により取得されたオーディオ信号の信号レベルを調整する。例えば、調整部１５は、取得されたオーディオ信号の信号レベルに、取得されたゲインを乗じて得られる信号レベルのオーディオ信号を生成する。調整部１５は、例えば、ＣＰＵ１１により構成される。
【００４０】
次に、図４Ａ、４Ｂ、５Ａ、５Ｂを参照して、信号レベル調整装置１００に供給されるオーディオ信号（以下、適宜「入力信号」という。）の信号レベルと、信号レベル調整装置１００から出力されるオーディオ信号（以下、適宜「出力信号」という。）の信号レベルと、の関係について説明する。
【００４１】
図４Ａは、入力信号の信号レベルにかかわらず、ゲインを１に設定したとき（圧縮をかけないとき）の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す図である。なお、ゲインは、圧縮率と同義である。また、図４Ａ、４Ｂ、５Ａ、５Ｂにおいては、横軸を入力信号の信号レベル（単位はｄＢ）とし、縦軸を出力信号の信号レベル（単位はｄＢ）としている。
【００４２】
ここで、線分４１は、入力信号の信号レベルが０からＣｍｐＰｅａｋＩｎまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す線分である。ここで、ＣｍｐＰｅａｋＩｎは、入力信号の信号レベルのピーク値として設定される信号レベル（以下、適宜「基準値」という。）である。ＣｍｐＰｅａｋＩｎは、入力信号の信号レベルに応じて、フレキシブルに変化する。これにより、随時、最適な圧縮が実現される。
【００４３】
このようにフレキシブルに変化させる理由は以下のとおりである。第１の理由は、入力信号のコンテンツによって、ピークレベルが異なるためである（例えば、ピークが−３ｄＢの音楽コンテンツに合わせて圧縮してしまうと、ピークが−６ｄＢしかない音楽コンテンツでは、余分に圧縮がかかってしまう）。第２の理由は、信号レベル調整装置１００の前段の信号処理装置２００がイコライザ等のレベルブースター機能を備えている場合、この機能がオン／オフされると、入力信号の信号レベルが変わってしまうためである。ＣｍｐＰｅａｋＩｎには、典型的には、信号レベル調整装置１００に供給されたオーディオ信号の信号レベルが設定される。これは、信号レベル調整装置１００に実際に供給されたオーディオ信号の信号レベルは、近い将来に信号レベル調整装置１００に供給されるオーディオ信号の信号レベルのピーク値に近い値と考えられるためである。ただし、ＣｍｐＰｅａｋＩｎが急激に変化すると音のつながりが不自然になるなどの問題が生じる場合、ＣｍｐＰｅａｋＩｎは、時定数に従って段階的に徐々に変化させてもよい。
【００４４】
一方、ＣｍｐＰｅａｋＯｕｔは、出力信号の信号レベルのピーク値として設定される信号レベル（以下、適宜「出力の上限値」という。）である。ＣｍｐＰｅａｋＯｕｔは、信号処理システム１０００において、クリップせずに扱うことが可能な信号レベルの最大値である。本実施形態では、ＣｍｐＰｅａｋＯｕｔは１であるものとして説明する。
【００４５】
ここで、信号レベル調整装置１００がリミッタ装置として適切に機能するためには、出力信号の信号レベルが出力の上限値を超えないように、ゲインが設定されることが望ましい。しかしながら、図４Ａに示すように、ゲインを１固定とすると、入力信号の信号レベルがＣｍｐＰｅａｋＯｕｔを超えた場合に、出力信号の信号レベルがＣｍｐＰｅａｋＯｕｔを超えてしまう。かかる構成では、歪みが生じてしまう可能性がある。つまり、入力信号の信号レベルがどのような値であっても、出力信号の信号レベルがＣｍｐＰｅａｋＯｕｔを超えないようにゲインが設定されることが望ましい。
【００４６】
そこで、図４Ｂに示すように、入力信号の信号レベルに圧縮をかける（リミットを設ける）ことが考えられる。図４Ｂにおいて、線分４２は、入力信号の信号レベルが０からＣｍｐＴｈｒｓｈまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す線分であり、線分４３は、入力信号の信号レベルがＣｍｐＴｈｒｓｈからＣｍｐＰｅａｋＩｎまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す線分である。
【００４７】
図４Ｂには、入力信号の信号レベルがＣｍｐＴｈｒｓｈ以下の場合、ゲインが１であり、入力信号の信号レベルがＣｍｐＴｈｒｓｈを超える場合、入力信号の信号レベルの増大に比例して出力信号の信号レベルが増大するように、１よりも小さいゲインが設定された例を示す。なお、入力信号の信号レベルがＣｍｐＴｈｒｓｈのとき出力信号の信号レベルがＣｍｐＴｈｒｓｈとなり、入力信号の信号レベルがＣｍｐＰｅａｋＩｎのとき出力信号の信号レベルがＣｍｐＰｅａｋＯｕｔとなるように、ゲインが設定される。ここで、ＣｍｐＴｈｒｓｈは、ゲインが１に設定される入力信号の信号レベルの最大値である。
【００４８】
つまり、ＣｍｐＴｈｒｓｈを超えた入力信号に対してリミッタ処理が行われる。なお、ＣｍｐＴｈｒｓｈの値を小さくすると、振幅が激しく変動する入力信号を調整する場合、クリップを検出したときの歪みが残りやすくなる。一方、ＣｍｐＴｈｒｓｈの値を大きくすると、音量が下がりやすくなる。本実施形態では、歪みの発生や音量の低下が抑制されるように工夫がされている。
【００４９】
ここで、図４Ｂに示すように、入力信号の信号レベルがＣｍｐＴｈｒｓｈを超える場合に、入力信号の信号レベルの増大に比例して出力信号の信号レベルが増大するようにゲインが設定されると、ＣｍｐＴｈｒｓｈとＣｍｐＰｅａｋＩｎとの中間位の信号レベルに対するゲインが小さすぎてしまい、ダイナミックレンジの効率が悪くなってしまう。従って、ＣｍｐＴｈｒｓｈとＣｍｐＰｅａｋＩｎとの中間位の信号レベルに対するゲインが小さくなり過ぎないようにゲインが設定されることが望ましい。
【００５０】
そこで、図５Ａに示すように、入力信号の信号レベルがＣｍｐＴｈｒｓｈを超える場合に、入力信号の信号レベルが増大するのに従って、出力信号の信号レベルが緩やかに増大するようにゲインを設定する。図５Ａにおいて、線分４２は、入力信号の信号レベルが０からＣｍｐＴｈｒｓｈまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す線分であり、曲線４４は、入力信号の信号レベルがＣｍｐＴｈｒｓｈからＣｍｐＰｅａｋＩｎまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す曲線である。
【００５１】
ここで、曲線４４は、入力信号の信号レベルをＤａｔａ、入力信号の信号レベルがＤａｔａのときのゲイン（圧縮率）をＣｍｐＲａｔｉｏ、として、式（１）のように表現される。なお、ｓｑｒｔは平方根を表す関数であり、ｆａｂｓは絶対値を表す関数である。ここで、ＣｍｐＳｌｏｐｅは、圧縮係数、つまり、曲線４４の接線の傾きを表す関数であり、式（２）のように表現される。ここで、式（１）において、効率よく圧縮する（できる限り低圧縮とする。）ためには、ＣｍｐＳｌｏｐｅを工夫する必要がある。このため、式（２）に示すように、入力信号の信号レベルに応じてＣｍｐＳｌｏｐｅをフレキシブルに変化させて、効率の良い圧縮を可能としている。
ＣｍｐＲａｔｉｏ＝（（（ｓｑｒｔ（ｆａｂｓ（Ｄａｔａ））−ｓｑｒｔ（ＣｍｐＴｈｒｓｈ））＊ＣｍｐＳｌｏｐｅ）＋ｓｑｒｔ（ＣｍｐＰｅａｋＩｎ））／ｆａｂｓ（Ｄａｔａ）  ・・・  （１）
ＣｍｐＳｌｏｐｅ＝（ｓｑｒｔ（ＣｍｐＰｅａｋＯｕｔ）−ｓｑｒｔ（ＣｍｐＴｈｒｓｈ））／（ｓｑｒｔ（ＣｍｐＰｅａｋＩｎ）−ｓｑｒｔ（ＣｍｐＴｈｒｓｈ））  ・・・  （２）
【００５２】
式（１）、（２）においては、各値の平方根を使って演算されている。このため、ＣｍｐＴｈｒｓｈを大きな値としてもパワー感が失われにくくなる。また、ＣｍｐＴｈｒｓｈを大きな値とすることで、大きな振幅の信号が入力されても、自然な圧縮が実現される。
【００５３】
式（１）では、ＣｍｐＳｌｏｐｅの値が大きくなると、ＣｍｐＲａｔｉｏの値が大きくなり、ＣｍｐＳｌｏｐｅの値が小さくなると、ＣｍｐＲａｔｉｏの値が小さくなる。ここで、ＣｍｐＲａｔｉｏの値は、クリップが発生しない範囲でできる限り大きい方がよい。従って、ＣｍｐＳｌｏｐｅの値ができるだけ大きくなるように式（２）を採用している。
【００５４】
ここで、図５Ａに示す例では、入力信号の信号レベルがＣｍｐＴｈｒｓｈからＬｉｎｅａｒＩｎまでの間、ゲインが１よりも大きな値となっている。これは、線分４１よりも曲線４４の方が上側に表示されていることからも明らかである。ここで、ゲインが１よりも大きな値とならないようにするために、式（１）により求められたゲインが１よりも大きな値が得られた場合、強制的にゲインを１にする手法がある。なお、ＬｉｎｅａｒＩｎは、線分４１と曲線４４とが交差する入力信号の信号レベル（もしくは、出力信号の信号レベル）である。
【００５５】
図５Ｂには、入力信号の信号レベルがＣｍｐＴｈｒｓｈからＬｉｎｅａｒＩｎまでの間のゲインが１に設定される例を示す。図５Ｂにおいて、線分４５は、入力信号の信号レベルが０からＬｉｎｅａｒＩｎまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す線分であり、曲線４６は、入力信号の信号レベルがＬｉｎｅａｒＩｎからＣｍｐＰｅａｋＩｎまでにある場合の、入力信号の信号レベルと出力信号の信号レベルとの関係を示す曲線である。本実施形態では、入力信号の信号レベルと出力信号の信号レベルとの関係が図５Ｂに示す関係になるように、入力信号の信号レベルに基づいて、ゲインが調整される例を示す。
【００５６】
次に、図６に示すフローチャートを用いて、信号レベル調整装置１００が実行する信号レベル調整処理について説明する。信号レベル調整装置１００は、電源が投入されると、図６に示す信号レベル調整処理を実行する。
【００５７】
まず、ＣＰＵ１０１は、入力装置１０４に供給されたオーディオ信号の信号レベルを取得する（ステップＳ１０１）。ここで、取得された信号レベルをＤａｔａとする。なお、ＣＰＵ１０１は、オーディオ信号が取得できない場合、オーディオ信号が取得されるまで待機する。
【００５８】
ＣＰＵ１０１は、ステップＳ１０１の処理を終了すると、基準値更新処理を実行する（ステップＳ１０２）。基準値更新処理については、図７に示すフローチャートを参照して詳細に説明する。
【００５９】
まず、ＣＰＵ１０１は、暫定の基準値を取得する（ステップＳ２０１）。ここで、暫定の基準値を表すＣｍｐＰｅａｋＩｎＮｅｗは、取得された信号レベルを表すＤａｔａに基づいて求められる。本実施形態では、ＤａｔａをＣｍｐＰｅａｋＩｎＮｅｗとする。なお、Ｄａｔａに所定の係数を乗じた値をＣｍｐＰｅａｋＩｎＮｅｗとしてもよい。
【００６０】
ＣＰＵ１０１は、ステップＳ２０１の処理を終了すると、暫定の基準値が現在の基準値以上であるか否かを判別する（ステップＳ２０２）。ここで、現在の基準値がＣｍｐＰｅａｋＩｎにより表されるものとすると、ＣｍｐＰｅａｋＩｎＮｅｗ≧ＣｍｐＰｅａｋＩｎであるか否かが判別される。
【００６１】
ＣＰＵ１０１は、暫定の基準値が現在の基準値以上であると判別すると（ステップＳ２０２：ＹＥＳ）、暫定の基準値に基づいて現在の基準値を上げる（ステップＳ２０３）。具体的には、式（３）に基づいて、現在の基準値であるＣｍｐＰｅａｋＩｎを求める。ここで、ＣｍｐＰｋＡｔｋＴｍは、アタック時の時定数を表す。つまり、アタック時は、ＣｍｐＰｋＡｔｋＴｍの値に応じて、ＣｍｐＰｅａｋＩｎの値はＣｍｐＰｅａｋＩｎＮｅｗの値に段階的に近づけられる。なお、ＣｍｐＰｋＡｔｋＴｍ＞＝１とする。
ＣｍｐＰｅａｋＩｎ＝ＣｍｐＰｅａｋＩｎ＋（ＣｍｐＰｅａｋＩｎＮｅｗ−ＣｍｐＰｅａｋＩｎ）／ＣｍｐＰｋＡｔｋＴｍ  ・・・  （３）
【００６２】
ＣＰＵ１０１は、ステップＳ２０３の処理を終了すると、現在の基準値が暫定の基準値以上であるか否かを判別する（ステップＳ２０４）。具体的には、ＣｍｐＰｅａｋＩｎ≧ＣｍｐＰｅａｋＩｎＮｅｗであるか否かが判別される。
【００６３】
ＣＰＵ１０１は、現在の基準値が暫定の基準値以上であると判別すると（ステップＳ２０４：ＹＥＳ）、暫定の基準値を現在の基準値に設定する（ステップＳ２０５）。具体的には、ＣｍｐＰｅａｋＩｎに、ＣｍｐＰｅａｋＩｎＮｅｗが代入される。つまり、現在の基準値は、暫定の基準値以下の値に設定される。
【００６４】
一方、ＣＰＵ１０１は、暫定の基準値が現在の基準値以上ではないと判別すると（ステップＳ２０２：ＮＯ）、暫定の基準値に基づいて現在の基準値を下げる（ステップＳ２０６）。具体的には、式（４）に基づいて、現在の基準値であるＣｍｐＰｅａｋＩｎを求める。ここで、ＣｍｐＰｋＲｌｓＴｍは、リリース時の時定数を表す。つまり、リリース時は、ＣｍｐＰｋＲｌｓＴｍの値に応じて、ＣｍｐＰｅａｋＩｎの値はＣｍｐＰｅａｋＩｎＮｅｗの値に段階的に近づけられる。なお、ＣｍｐＰｋＲｌｓＴｍ＞＝１とする。
ＣｍｐＰｅａｋＩｎ＝ＣｍｐＰｅａｋＩｎ−（ＣｍｐＰｅａｋＩｎ−ＣｍｐＰｅａｋＩｎＮｅｗ）／ＣｍｐＰｋＲｌｓＴｍ  ・・・  （４）
【００６５】
ＣＰＵ１０１は、ステップＳ２０６の処理を終了すると、現在の基準値が暫定の基準値以下であるか否かを判別する（ステップＳ２０７）。具体的には、ＣｍｐＰｅａｋＩｎ≦ＣｍｐＰｅａｋＩｎＮｅｗであるか否かが判別される。
【００６６】
ＣＰＵ１０１は、現在の基準値が暫定の基準値以下であると判別すると（ステップＳ２０７：ＹＥＳ）、暫定の基準値を現在の基準値に設定する（ステップＳ２０８）。具体的には、ＣｍｐＰｅａｋＩｎに、ＣｍｐＰｅａｋＩｎＮｅｗが代入される。つまり、現在の基準値は、暫定の基準値以上の値に設定される。
【００６７】
ＣＰＵ１０１は、ステップＳ２０４においてＮＯと判別した場合、ステップＳ２０５の処理を完了した場合、ステップＳ２０７においてＮＯと判別した場合、もしくは、ステップＳ２０８の処理を完了した場合、基準値更新処理を終了する。
【００６８】
ＣＰＵ１０１は、ステップＳ１０２の処理を終了すると、ゲイン取得用の係数を取得する（ステップＳ１０３）。ゲイン取得用の係数は、圧縮係数である。ゲイン取得用の係数は、ＣｍｐＳｌｏｐｅにより表され、式（２）により求められる。ＣｍｐＳｌｏｐｅは、入力信号のピークレベルに応じた係数である。
【００６９】
ＣＰＵ１０１は、ステップＳ１０３の処理を終了すると、取得された信号レベルがスレッショルドレベル以上であるか否かを判別する（ステップＳ１０４）。具体的には、ＣＰＵ１０１は、Ｄａｔａ≧ＣｍｐＴｈｒｓｈであるか否かを判別する。
【００７０】
ＣＰＵ１０１は、取得された信号レベルがスレッショルドレベル以上であると判別すると、ゲイン取得処理を実行する（ステップＳ１０５）。ゲイン取得処理については、図８に示すフローチャートを参照して詳細に説明する。
【００７１】
まず、ＣＰＵ１０１は、ゲイン取得用の係数に基づいて暫定のゲインを算出する（ステップＳ３０１）。ここで、暫定のゲインを表すＣｍｐＲａｔｉｏＮｅｗは、ゲイン取得用の係数を表すＣｍｐＳｌｏｐｅに基づいて、式（５）により求められる。ＣｍｐＲａｔｉｏＮｅｗは、最新の情報から求められる圧縮率である。
ＣｍｐＲａｔｉｏＮｅｗ＝（（（ｓｑｒｔ（ｆａｂｓ（Ｄａｔａ））−ｓｑｒｔ（ＣｍｐＴｈｒｓｈ））＊ＣｍｐＳｌｏｐｅ）＋ｓｑｒｔ（ＣｍｐＰｅａｋＩｎ））／ｆａｂｓ（Ｄａｔａ）  ・・・  （５）
【００７２】
ＣＰＵ１０１は、ステップＳ３０１の処理を終了すると、暫定のゲインが現在のゲイン以下であるか否かを判別する（ステップＳ３０２）。ここで、現在のゲインがＣｍｐＲａｔｉｏＮｏｗにより表されるものとすると、ＣｍｐＲａｔｉｏＮｅｗ≦ＣｍｐＲａｔｉｏＮｏｗであるか否かが判別される。
【００７３】
ＣＰＵ１０１は、暫定のゲインが現在のゲイン以下であると判別すると（ステップＳ３０２：ＹＥＳ）、現在のゲインよりも小さい仮のゲインを設定する（ステップＳ３０３）。具体的には、式（６）に基づいて、仮のゲインであるＣｍｐＲａｔｉｏを求める。ここで、ＣｍｐＡｔｋＴｍは、アタック時の時定数を表す。つまり、ＣｍｐＲａｔｉｏは、時定数を考慮して設定される圧縮率である。この圧縮率（係数）を入力信号の信号レベルに乗算することでクリップを抑制可能である。また、アタック時は、ＣｍｐＡｔｋＴｍの値に応じて、ＣｍｐＲａｔｉｏの値はＣｍｐＲａｔｉｏＮｅｗの値に段階的に近づけられる。なお、ＣｍｐＡｔｋＴｍ＞＝１とする。
ＣｍｐＲａｔｉｏ＝ＣｍｐＲａｔｉｏＮｏｗ−（ＣｍｐＲａｔｉｏＮｏｗ−ＣｍｐＲａｔｉｏＮｅｗ）／ＣｍｐＡｔｋＴｍ  ・・・  （６）
【００７４】
ＣＰＵ１０１は、ステップＳ３０３の処理を終了すると、仮のゲインが暫定のゲイン以下であるか否かを判別する（ステップＳ３０４）。具体的には、ＣｍｐＲａｔｉｏ≦ＣｍｐＲａｔｉｏＮｅｗであるか否かが判別される。
【００７５】
ＣＰＵ１０１は、仮のゲインが暫定のゲイン以下であると判別すると（ステップＳ３０４：ＹＥＳ）、暫定のゲインを仮のゲインに設定する（ステップＳ３０５）。具体的には、ＣｍｐＲａｔｉｏに、ＣｍｐＲａｔｉｏＮｅｗが代入される。つまり、仮のゲインは、暫定のゲイン以上の値に設定される。
【００７６】
一方、ＣＰＵ１０１は、暫定のゲインが現在のゲイン以下ではないと判別すると（ステップＳ３０２：ＹＥＳ）、現在のゲインよりも大きい仮のゲインを設定する（ステップＳ３０６）。具体的には、式（７）に基づいて、仮のゲインであるＣｍｐＲａｔｉｏを求める。ここで、ＣｍｐＲｌｓＴｍは、リリース時の時定数を表す。つまり、リリース時は、ＣｍｐＲｌｓＴｍの値に応じて、ＣｍｐＲａｔｉｏの値はＣｍｐＲａｔｉｏＮｅｗの値に段階的に近づけられる。なお、ＣｍｐＲｌｓＴｍ＞＝１とする。
ＣｍｐＲａｔｉｏ＝ＣｍｐＲａｔｉｏＮｏｗ＋（ＣｍｐＲａｔｉｏＮｅｗ−ＣｍｐＲａｔｉｏＮｏｗ）／ＣｍｐＲｌｓＴｍ  ・・・  （７）
【００７７】
ＣＰＵ１０１は、ステップＳ３０６の処理を終了すると、仮のゲインが暫定のゲイン以上であるか否かを判別する（ステップＳ３０７）。具体的には、ＣｍｐＲａｔｉｏ≧ＣｍｐＲａｔｉｏＮｅｗであるか否かが判別される。
【００７８】
ＣＰＵ１０１は、仮のゲインが暫定のゲイン以上であると判別すると（ステップＳ３０７：ＹＥＳ）、暫定のゲインを仮のゲインに設定する（ステップＳ３０８）。具体的には、ＣｍｐＲａｔｉｏに、ＣｍｐＲａｔｉｏＮｅｗが代入される。つまり、仮のゲインは、暫定のゲイン以下の値に設定される。
【００７９】
ＣＰＵ１０１は、ステップＳ３０４においてＮＯと判別した場合、ステップＳ３０５の処理を完了した場合、ステップＳ３０７においてＮＯと判別した場合、もしくは、ステップＳ３０８の処理を完了した場合、ゲイン取得処理を終了する。
【００８０】
一方、ＣＰＵ１０１は、取得された信号レベルがスレッショルドレベル以上ではないと判別すると、リミッタ解除処理を実行する（ステップＳ１０６）。リミッタ解除処理については、図９に示すフローチャートを参照して詳細に説明する。
【００８１】
まず、ＣＰＵ１０１は、ゲインの初期値を暫定のゲインに設定する（ステップＳ４０１）。例えば、暫定のゲインを表すＣｍｐＲａｔｉｏＮｅｗは、１に設定される。
【００８２】
ＣＰＵ１０１は、ステップＳ４０１の処理を終了すると、暫定のゲインが現在のゲイン以下であるか否かを判別する（ステップＳ４０２）。ここで、現在のゲインがＣｍｐＲａｔｉｏＮｏｗにより表されるものとすると、ＣｍｐＲａｔｉｏＮｅｗ≦ＣｍｐＲａｔｉｏＮｏｗであるか否かが判別される。
【００８３】
ＣＰＵ１０１は、暫定のゲインが現在のゲイン以下であると判別すると（ステップＳ４０２：ＹＥＳ）、現在のゲインよりも小さい仮のゲインを設定する（ステップＳ４０３）。具体的には、式（８）に基づいて、仮のゲインであるＣｍｐＲａｔｉｏを求める。ここで、ＣｍｐＲｌｓＴｍは、リリース時の時定数を表す。つまり、リリース時は、ＣｍｐＲｌｓＴｍの値に応じて、ＣｍｐＲａｔｉｏの値はＣｍｐＲａｔｉｏＮｅｗの値に段階的に近づけられる。なお、ＣｍｐＲｌｓＴｍ＞＝１とする。
ＣｍｐＲａｔｉｏ＝ＣｍｐＲａｔｉｏＮｏｗ−（ＣｍｐＲａｔｉｏＮｏｗ−ＣｍｐＲａｔｉｏＮｅｗ）／ＣｍｐＲｌｓＴｍ  ・・・  （８）
【００８４】
ＣＰＵ１０１は、ステップＳ４０３の処理を終了すると、仮のゲインが暫定のゲイン以下であるか否かを判別する（ステップＳ４０４）。具体的には、ＣｍｐＲａｔｉｏ≦ＣｍｐＲａｔｉｏＮｅｗであるか否かが判別される。
【００８５】
ＣＰＵ１０１は、仮のゲインが暫定のゲイン以上以下であると判別すると（ステップＳ４０４：ＹＥＳ）、暫定のゲインを仮のゲインに設定する（ステップＳ４０５）。具体的には、ＣｍｐＲａｔｉｏに、ＣｍｐＲａｔｉｏＮｅｗが代入される。つまり、仮のゲインは、暫定のゲイン以上の値に設定される。
【００８６】
一方、ＣＰＵ１０１は、暫定のゲインが現在のゲイン以下ではないと判別すると（ステップＳ４０２：ＹＥＳ）、現在のゲインよりも大きい仮のゲインを設定する（ステップＳ４０６）。具体的には、式（７）に基づいて、仮のゲインであるＣｍｐＲａｔｉｏを求める。
【００８７】
ＣＰＵ１０１は、ステップＳ４０６の処理を終了すると、仮のゲインが暫定のゲイン以上であるか否かを判別する（ステップＳ４０７）。具体的には、ＣｍｐＲａｔｉｏ≧ＣｍｐＲａｔｉｏＮｅｗであるか否かが判別される。
【００８８】
ＣＰＵ１０１は、仮のゲインが暫定のゲイン以上であると判別すると（ステップＳ４０７：ＹＥＳ）、暫定のゲインを仮のゲインに設定する（ステップＳ４０８）。具体的には、ＣｍｐＲａｔｉｏに、ＣｍｐＲａｔｉｏＮｅｗが代入される。つまり、仮のゲインは、暫定のゲイン以下の値に設定される。
【００８９】
ＣＰＵ１０１は、ステップＳ４０４においてＮＯと判別した場合、ステップＳ４０５の処理を完了した場合、ステップＳ４０７においてＮＯと判別した場合、もしくは、ステップＳ４０８の処理を完了した場合、リミッタ解除処理を終了する。
【００９０】
ＣＰＵ１０１は、ステップＳ１０５もしくはステップＳ１０６の処理を終了すると、仮のゲインを現在のゲインに設定する（ステップＳ１０７）。具体的には、ＣｍｐＲａｔｉｏＮｏｗに、ＣｍｐＲａｔｉｏが代入される。
【００９１】
ＣＰＵ１０１は、ステップＳ１０７の処理を終了すると、現在のゲインがゲインの上限値を超えるか否かを判別する（ステップＳ１０８）。例えば、ＣｍｐＲａｔｉｏＮｏｗ＞１であるか否かが判別される。
【００９２】
ＣＰＵ１０１は、現在のゲインがゲインの上限値を超えると判別すると（ステップＳ１０８：ＹＥＳ）、ゲインの上限値を現在のゲインに設定する（ステップＳ１０９）。例えば、ＣｍｐＲａｔｉｏＮｏｗに１が代入される。つまり、現在のゲインは、ゲインの上限値以下の値に設定される。
【００９３】
ＣＰＵ１０１は、ステップＳ１０８においてＮＯと判別した場合、もしくは、ステップＳ１０９の処理を終了した場合、現在のゲインに基づいて信号レベルを調整する（ステップＳ１１０）。例えば、ゲイン調整後のオーディオ信号の信号レベルをＤａｔａＮｅｗとすると、ＤａｔａＮｅｗは式（１０）により表される。
ＤａｔａＮｅｗ＝Ｄａｔａ＊ＣｍｐＲａｔｉｏＮｏｗ  ・・・  （１０）
【００９４】
ＣＰＵ１０１は、ステップＳ１１０の処理を終了すると、ステップＳ１０１に処理を戻す。
【００９５】
本実施形態に係る信号レベル調整装置１００によれば、供給されるオーディオ信号の信号レベルが時間の経過とともに大きく変動する場合であっても、常に適切なリミッタ処理が可能となる。例えば、前段の信号処理装置２００により０ｄＢを大きく超えるようなブースト処理がなされる場合があっても（例えば、信号処理装置２００がＥＱのようなレベルブースターの場合であっても）、広いダイナミックレンジを確保しつつ、オーディオ信号のクリップを最大限に抑えることができる。その理由は、供給されるオーディオ信号のピークレベルを監視し、このピークレベルが、出力されるオーディオ信号の信号レベルの最大値に対応するようにゲイン（圧縮率）を設定し、かつ、０ｄＢを超えない範囲ではあまり圧縮をかけないようにゲインを設定しているためである。
【００９６】
また、ＣｍｐＰｅａｋＩｎは、時定数（ＣｍｐＰｋＡｔｋＴｍもしくはＣｍｐＰｋＲｌｓＴｍ）に従って、段階的に変化する。さらに、ＣｍｐＲａｔｉｏは、時定数（ＣｍｐＡｔｋＴｍもしくはＣｍｐＲｌｓＴｍ）に従って、段階的に変化する。このため、音のつながりが不自然になることを抑制できる。なお、ＣｍｐＰｋＡｔｋＴｍ、ＣｍｐＰｋＲｌｓＴｍ、ＣｍｐＡｔｋＴｍ、ＣｍｐＲｌｓＴｍに１を設定することにより、時定数を持たなくすることができる。この場合、入力信号の信号レベルの変化に応じて、速やかに圧縮率が変化する。
【００９７】
（第２実施形態）
第１実施形態では、信号レベル調整装置１００に供給されるオーディオ信号が１つである例を示した。しかし、本発明において、信号レベル調整装置１００に供給されるオーディオ信号が２つ以上であってもよい。例えば、５．１ｃｈサラウンドシステムにおいて使用される６つのオーディオ信号が信号レベル調整装置１００に供給されてもよい。このように、互いに依存関係にあると考えられる複数のオーディオ信号の信号レベルは、一括して調整されることが好ましい。
【００９８】
例えば、信号レベル調整装置１００は、供給される複数のオーディオ信号の信号レベルに基づいて、複数のオーディオ信号の信号レベルのそれぞれに共通して乗じる１つのゲインを取得してもよい。以下、本実施形態に係る信号レベル調整装置１００が実行する信号レベル調整処理について説明する。なお、当該信号レベル調整処理は、基本的には、第１実施形態において、図６〜９において説明した信号レベル調整処理と同様である。従って、ここでは、第１実施形態と異なる部分についてのみ説明する。
【００９９】
まず、ＣＰＵ１０１は、ステップＳ１０１において、複数のチャネルのそれぞれに供給された、複数のオーディオ信号の信号レベルを全て取得する。ここで、入力装置１０４は、複数のチャネルを備え、１つのチャネルには、１つのオーディオ信号が供給されるものとする。また、出力装置１０５は、複数のチャネルを備え、１つのチャネルからは、１つのオーディオ信号が出力されるものとする。
【０１００】
そして、ＣＰＵ１０１は、ステップＳ２０１において、例えば、複数のオーディオ信号の信号レベルのうち、最大の信号レベルを暫定の基準値として取得する。
【０１０１】
その後、ＣＰＵ１０１は、ステップＳ２０２〜Ｓ２０８において、現在の基準値を設定する。
【０１０２】
そして、ＣＰＵ１０１は、ステップＳ１０３において、ゲイン取得用の係数を算出する。
【０１０３】
次に、ＣＰＵ１０１は、複数のチャネルのそれぞれについて、ステップＳ１０４〜Ｓ１０６の処理を実行する。具体的には、ＣＰＵ１０１は、ステップＳ１０４において、選択した１つのチャネルについて、取得されたオーディオ信号の信号レベルがスレッショルドレベル以上であるか否かを判別する。そして、ＣＰＵ１０１は、取得されたオーディオ信号の信号レベルがスレッショルドレベル以上であると判別すると、ステップＳ１０５において、当該選択した１つのチャネルについて、ゲイン取得処理を実行する。一方、ＣＰＵ１０１は、取得されたオーディオ信号の信号レベルがスレッショルドレベル以上ではないと判別すると、ステップＳ１０６において、当該選択した１つのチャネルについて、ゲイン取得処理を実行する。
【０１０４】
ここで、ＣＨをチャネル番号として、ＣＨチャネルにおいて取得されたオーディオ信号の信号レベルは、ＤＡＴＡ［ＣＨ］であるものとする。また、暫定のゲインを表すＣｍｐＲａｔｉｏＮｅｗは、チャネル毎に用意され、各チャネルの暫定のゲインは、ＣｍｐＲａｔｉｏＮｅｗ［ＣＨ］であるものとする。さらに、仮のゲインを表すＣｍｐＲａｔｉｏは、チャネル毎に用意され、各チャネルの仮のゲインは、ＣｍｐＲａｔｉｏ［ＣＨ］であるものとする。ただし、現在のゲインを表すＣｍｐＲａｔｉｏＮｏｗは、全てのチャネルに共通して１つ用意されるものとする。
【０１０５】
そして、ＣＰＵ１０１は、ステップＳ１０７において、仮のゲインを現在のゲインに設定する。例えば、全てのチャネルについて取得された仮のゲインのうち、最小の仮のゲインが現在のゲインに設定される。具体的には、全てのチャネルについて取得された仮のゲインを表すＣｍｐＲａｔｉｏ［ＣＨ］のうち、最小のものが、現在のゲインを表すＣｍｐＲａｔｉｏＮｏｗに設定される。なお、オーディオ信号の信号レベルが０のチャネルは除外されて、ＣｍｐＲａｔｉｏＮｏｗが設定される。
【０１０６】
ＣＰＵ１０１は、ステップＳ１０８において、現在のゲインがゲインの上限値を超えると判別した場合、ステップＳ１０９において、ゲインの上限値を現在のゲインに設定する。
【０１０７】
そして、ＣＰＵ１０１は、ステップＳ１１０において、現在のゲインに基づいて、全てのチャネルのオーディオ信号の信号レベルを調整する。例えば、各チャネルにおける、ゲイン調整後のオーディオ信号の信号レベルをＤａｔａＮｅｗ［ＣＨ］とすると、ＤａｔａＮｅｗ［ＣＨ］は式（１１）により表される。
ＤａｔａＮｅｗ［ＣＨ］＝Ｄａｔａ［ＣＨ］＊ＣｍｐＲａｔｉｏＮｏｗ  ・・・  （１１）
【０１０８】
ＣＰＵ１０１は、ステップＳ１１０の処理を終了すると、ステップＳ１０１に処理を戻す。
【０１０９】
本実施形態に係る信号レベル調整装置１００によれば、信号レベルが互いに依存関係にある複数のオーディオ信号に対して、広いダイナミックレンジを確保しつつ、複数のオーディオ信号の信号レベルのそれぞれが所定の値を超えてしまうことを抑制することができる。
【０１１０】
（変形例）
本発明は、上記実施形態に開示したものに限られない。
【０１１１】
第１、２の実施形態では、図５Ｂに示すように、計算により求められたゲインが１を超える場合、ゲインを強制的に１にする例（つまり、ゲインの上限値が１である例）を示した。しかし、図５Ａに示すように、１を超えるゲインが許容される（つまり、ゲインの上限値が１を超える）ようにしてもよい。
【０１１２】
第１、２の実施形態では、信号レベル調整装置１００をリミッタ装置として機能させるために、ゲインの初期値を１にする例を示した。しかし、ゲインの初期値は１を超える値にすることもできる。例えば、ゲインの初期値を２(約６ｄＢ)に設定し、ＣｍｐＴｈｒｓｈを低めの値（例えば、−５０ｄＢ）に設定することで、０ｄＢ以下の入力信号の信号レベルを増幅することができる。
【０１１３】
第１、２の実施形態では、出力の上限値を表すＣｍｐＰｅａｋＯｕｔが１である例を示した。しかし、ＣｍｐＰｅａｋＯｕｔは、１を超える値であっても良いし、１未満の値であっても良い。
【０１１４】
また、信号レベル調整装置１００は、ＣＰＵ１０１に代えてまたはＣＰＵ１００１と協働するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）を備えていてもよい。さらに信号レベル処理装置１００と信号処理装置２００は、共通するＣＰＵ１０１またはＤＳＰにより実現されてもよい。
【０１１５】
なお、本発明に係る信号レベル調整装置は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、コンピュータに、上記動作を実行するためのプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  Ｄｉｓｋ）などのコンピュータ読み取り可能な記録媒体に記憶して配布し、これをコンピュータシステムにインストールすることにより、上述の処理を実行する信号レベル調整装置を構成しても良い。
【０１１６】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを記憶しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【符号の説明】
【０１１７】
１１  信号取得部
１２  記憶部
１３  更新部
１４  ゲイン取得部
１５  調整部
１００  信号レベル調整装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  入力装置
１０５  出力装置
２００  信号処理装置
３００  Ｄ／Ａコンバータ
４００  ボリューム
５００  増幅器
６００  スピーカ
１０００  信号処理システム
【図１】
2012095248.tif 000003
【図２】
2012095248.tif 000004
【図３】
2012095248.tif 000005
【図４Ａ】
2012095248.tif 000006
【図４Ｂ】
2012095248.tif 000007
【図５Ａ】
2012095248.tif 000008
【図５Ｂ】
2012095248.tif 000009
【図６】
2012095248.tif 000010
【図７】
2012095248.tif 000011
【図８】
2012095248.tif 000012
【図９】
2012095248.tif 000013