(57)【特許請求の範囲】
【請求項１】
入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化装置において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御装置であって、
目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定部と、
スケール・ファクタ・バンドごとに、前記ＮＭＲ決定部によって決定したＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定部と、
を含み、
前記ＮＭＲ決定部が、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値を選定する都度、前記スケール・ファクタ決定部が前記ＮＭＲ候補値に対するスケール・ファクタとレートを決定し、
前記ＮＭＲ決定部は、前記スケール・ファクタ決定部で決定したスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分に基づいて目標レートを超えない最小のＮＭＲを最適なＮＭＲとして決定する、前記レート制御装置。
【請求項２】
前記ＮＭＲ決定部は、
ＮＭＲ予測値と、該ＮＭＲ予測値に対するレートに対して対応するレートが前記目標レートを挟むようにして選定したＮＭＲ候補値により確定される区間から、２分探索を開始する、請求項１記載のレート制御装置。
【請求項３】
前記スケール・ファクタ決定部は、
スケール・ファクタ・バンドごとに、周波数スペクトルの量子化値の絶対値が既定された最大値を超えないスケール・ファクタのうち最小のスケール・ファクタを西のスケール・ファクタとし、周波数スペクトルの量子化値がすべてゼロになるスケール・ファクタのうち最小のスケール・ファクタを東のスケール・ファクタとして算出し、前記西のスケール・ファクタと前記東のスケール・ファクタとによって画定される区間から、前記ＮＭＲ決定部が選定したＮＭＲ候補値に対応する最大のスケール・ファクタの２分探索を開始する、請求項１記載のレート制御装置。
【請求項４】
前記スケール・ファクタ決定部は、前記スケール・ファクタ決定部が算出した西のスケール・ファクタと東のスケール・ファクタに基づいてＮＭＲの最小値と最大値を算出し、
前記スケール・ファクタ決定部は、
前記ＮＭＲ候補値が最小のＮＭＲを下回る場合は前記西のスケール・ファクタを前記ＮＭＲ候補値に対するスケール・ファクタとして決定し、
前記ＮＭＲ候補値が最大のＮＭＲを上回る場合は前記東のスケール・ファクタを前記ＮＭＲ候補値に対するスケール・ファクタとして決定する、請求項３記載のレート制御装置。
【請求項５】
さらに、前記スケール・ファクタ決定部が実行する２分検索の過程を記憶する記憶部を備え、
前記スケール・ファクタ決定部は、前記記憶部に記憶された２分検索の過程に基づいて２分検索を実行する、請求項１記載のレート制御装置。
【請求項６】
前記目標レートは、所定の範囲で変動可能である、請求項１記載のレート制御装置。
【請求項７】
前記ＮＭＲ決定部は、ＮＭＲ予測値に基づいて算出したレートが前記所定の範囲の中にある場合、前記ＮＭＲを最適なＮＭＲとして決定する、請求項６記載のレート制御装置。
【請求項８】
前記ＮＭＲ決定部は、前記フレームが符号化されるごとに、ＮＭＲの予測値を更新する、請求項１記載のレート制御装置。
【請求項９】
入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化方法において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御方法であって、
目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定ステップと、
スケール・ファクタ・バンドごとに、前記ＮＭＲ決定ステップで決定されたＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定ステップであって、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値が前記ＮＭＲ決定ステップで選定される都度、前記ＮＭＲ候補値に対するスケール・ファクタを決定するスケール・ファクタ決定ステップと、
前記スケール・ファクタ決定ステップで決定されたスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分を評価して、前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであるか否かを判断する評価ステップと、
を含み、
前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであると判断された場合は、前記ＮＭＲ候補値を最適なＮＭＲとして決定し、
前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲでないと判断された場合は、前記ＮＭＲ決定ステップから前記評価ステップまでを反復する、前記レート制御方法。
【請求項１０】
入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化方法において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御処理をコンピュータに実行させるレート制御プログラムであって、
前記レート制御処理は、
目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定ステップと、
スケール・ファクタ・バンドごとに、前記ＮＭＲ決定ステップで決定されたＮＭＲに対応する最大のスケール・ファクタとレートを２分探索によって決定するスケール・ファクタ決定ステップであって、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値が前記ＮＭＲ決定ステップで選定される都度、前記ＮＭＲ候補値に対するスケール・ファクタを決定するスケール・ファクタ決定ステップと、
前記スケール・ファクタ決定ステップで決定されたスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分を評価して、前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであるか否かを判断する評価ステップと、
を含み、
前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであると判断された場合は、前記ＮＭＲ候補値を最適なＮＭＲとして決定し、
前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲでないと判断された場合は、前記ＮＭＲ決定ステップから前記評価ステップまでを反復するようになっており、
前記ＮＭＲ決定ステップと前記評価ステップとを外部ループとして、前記スケール・ファクタ決定ステップを内部ループとしてコンピュータに実行させる、レート制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノイズ・エネルギーとビットレートを最適に制御するレート制御を行うレート制御装置、レート制御方法及びレート制御プログラムに関する。
【背景技術】
【０００２】
従来、ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ：アドバンスト・オーディオ・コーディング）などのオーディオ符号化におけるレート制御の目標は、オーディオ信号から取得した所定数のデータサンプル（以後、「オーディオ・サンプル」と呼ぶ）を、例えば、ＭＤＣＴ（Ｍｏｄｉｆｉｅｄ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ：修正離散コサイン変換）などにより時間周波数変換して得られる周波数スペクトルを、量子化ノイズ・エネルギーが聴覚心理モデルによって求められるマスク・エネルギーを超えないように、量子化することであった。同時に、符号量はある一定値、例えば平均ビットレートを超えないように制御する必要がある。ＡＡＣでは、ビット・リザバと呼ばれる仕組みによって、ビットレートを短期的に変化させることで品質をできるだけ一定に保ちながら、長期的には一定のビットレートになるように制御することもできる。【０００３】
聴覚心理モデルによって求められるマスク・エネルギーを量子化ノイズ・エネルギーが超えないという条件、さらに符号量を一定値以下に制御するという条件、という２つの矛盾する条件をどのようにして満たすべきか、あるいは破るべきか、ということが、オーディオ符号化におけるレート制御の課題である。標準化された「最適な」レート制御の方法は存在していない。一例として、ＡＡＣの規格書のｉｎｆｏｒｍａｔｉｖｅ  ｐａｒｔで説明される、従来用いられている２重ループを用いる方法について説明する。以下の説明ではオーディオ・コーデックをＡＡＣと仮定する。【０００４】
ＡＡＣの量子化は以下の手順で行われる。バンドごとの量子化の前に、振幅に応じてノイズ整形をするため、周波数スペクトルを非線形変換する。非線形変換した周波数スペクトルを、マスク効果の及ぶ範囲を模した、スケール・ファクタ・バンドに分割し、バンドごとに量子化を制御する。スケール・ファクタ・バンドの量子化は、スケール・ファクタと呼ばれる、約１．５ｄＢステップで変化する量子化スケールによって制御される。スケール・ファクタそれら自身はＤＰＣＭ（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ：差分パルス符号変調）符号化される。各バンドの量子化値は一定の範囲（［−８１９１，＋８１９１］）となるように制御し、エントロピー符号化する。量子化値の分布の統計的性質に応じて、あらかじめ定められたエントロピー符号化のテーブルの中から、最適なテーブルを選択することができる。すべての量子化値が０であるバンドについては、スケール・ファクタと量子化値のエントロピー符号を省略して、符号を節約することができる。【０００５】
従来法では、内部ループと外部ループからなる２重ループを用いて、符号量が平均ビットレート以下になるようにスケール・ファクタを決定する。図１６に、従来法の内部ループ（レート制御処理）を説明するフローチャートを、図１７に、従来法の外部ループ（歪み制御処理）を説明するフローチャートを示す。【０００６】
図１６を参照して、従来法の内部ループについて説明する。
まず、各バンドごとに与えられたスケール・ファクタで符号量を計算する（Ｓ１０１）。次に、符号量が平均ビットレート以下か否かを判断する（Ｓ１０２）。符号量が平均ビットレートを上回ると判断された場合は、全てのバンドのスケール・ファクタを大きくし（Ｓ１０３）、処理はＳ１０１に戻る。符号量が平均ビットレート以下と判断された場合、処理を終了する。【０００７】
図１７を参照して、従来法の外部ループについて説明する。まず、スケール・ファクタを初期化する（Ｓ１１１）。例えば、スケール・ファクタを最小値、すなわち一番細かい量子化となるように初期化する。次に、内部ループを呼び出し（Ｓ１１２）、バンドごとにノイズ・エネルギーを算出する（Ｓ１１３）。具体的には、すべてのバンドについて、逆量子化したスペクトルを求めて、ノイズ・エネルギーを算出する。このように逆量子化してノイズを求める方法をＡｂＳ（Ａｎａｌｙｓｉｓ−ｂｙ−Ｓｙｎｔｈｅｓｉｓ：合成による分析）と呼ぶ。さらに、ノイズ・エネルギーが、聴覚心理分析によって求めたマスク・エネルギーより大きいバンドについて、スケール・ファクタを小さくして、量子化を細かくする（Ｓ１１４）。ノイズ・エネルギーとマスク・エネルギーとの比を、ＮＭＲ（Ｎｏｉｓｅ−ｔｏ−Ｍａｓｋ  Ｒａｔｉｏ）とすると、スケール・ファクタを小さくする条件はＮＭＲ＞１となる。【０００８】
すべてのバンドのスケール・ファクタを変化させたか否かを判断し（Ｓ１１５）、変化させていないと判断した場合は、どのバンドのスケール・ファクタも変化させてないか否かを判断する（Ｓ１１６）。ステップＳ１１６で、スケール・ファクタを変化させたバンドが存在すると判断すると、処理はステップＳ１１２に戻る。ステップＳ１１５で、すべてのバンドでスケール・ファクタを変化させた、あるいは、ステップＳ１１６でどのバンドのスケール・ファクタも変化させていない、と判断された場合は、スケール・ファクタを復元する（Ｓ１１７）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−１３６３６２号公報
【非特許文献】
【００１０】
【非特許文献１】Ｍ．  Ｂｏｓｉ  ａｎｄ  Ｒ．  Ｅ．  Ｇｏｌｄｂｅｒｇ，  “Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｄｉｇｉｔａｌ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ  ａｎｄ  Ｓｔａｎｄａｒｄｓ，”  Ｋｌｕｗｅｒ  Ａｃａｄｅｍｉｃ  Ｐｕｂｌｉｓｈｅｒｓ，  ２００３．
【非特許文献２】ＩＳＯ／ＩＥＣ  １３８１８−７：２００６，  “Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  −  Ｇｅｎｅｒｉｃ  Ｃｏｄｉｎｇ  ｏｆ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ａｕｄｉｏ  −  Ｐａｒｔ  ７：  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ  （ＡＡＣ），”  ２００６
【発明の概要】
【発明が解決しようとする課題】
【００１１】
この従来法には、ループが収束する保証がないという問題がある。さらに、例えループが収束する場合であっても、符号量が足りない場合などで、聴覚心理モデルによる要求を満たさなくても、可能な限りノイズが目立たないようにＮＭＲを一定に保つ量子化を行う条件、すなわち最適解を見いだせない場合があった。そして、この従来法には、あらかじめ決められた符号量になるようにレート制御するのでビット・リザバを有効に使えないという課題もある。【００１２】
本発明は、上述した従来技術に鑑みてなされ、ＮＭＲに基づいて、ビットレートを最適に制御するレート制御を行うレート制御装置、レート制御方法及びレート制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の第１の態様によると、入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化装置において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲ（Ｎｏｉｓｅ−ｔｏ−Ｍａｓｋ  Ｒａｔｉｏ）に基づくレート制御を行うレート制御装置であって、目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定部と、スケール・ファクタ・バンドごとに、前記ＮＭＲ決定部によって決定したＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定部と、を含み、前記ＮＭＲ決定部が、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値を選定する都度、前記スケール・ファクタ決定部が前記ＮＭＲ候補値に対するスケール・ファクタとレートを決定し、前記ＮＭＲ決定部は、前記スケール・ファクタ決定部で決定したスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分に基づいて目標レートを超えない最小のＮＭＲを最適なＮＭＲとして決定する、レート制御装置を提供する。このような構成により、本発明のレート制御装置は、目標レートを満たすと同時に、可能な限りＮＭＲを一定にする、すなわち品質を一定に保つことができる。【００１４】
また、本発明のレート制御装置において、前記ＮＭＲ決定部は、ＮＭＲ予測値と、該ＮＭＲ予測値に対するレートに対して対応するレートが前記目標レートを挟むようにして選定したＮＭＲ候補値により確定される区間から２分探索を開始するようにしてもよい。また、前記スケール・ファクタ決定部は、スケール・ファクタ・バンドごとに、周波数スペクトルの量子化値の絶対値が既定された最大値を超えないスケール・ファクタのうち最小のスケール・ファクタを西のスケール・ファクタとし、周波数スペクトルの量子化値がすべてゼロになるスケール・ファクタのうち最小のスケール・ファクタを東のスケール・ファクタとして算出し、前記西のスケール・ファクタと前記東のスケール・ファクタとによって画定される区間から、前記ＮＭＲ決定部が選定したＮＭＲ候補値に対応する最大のスケール・ファクタの２分探索を開始するようにしてもよい。このような構成によって、本発明のレート制御装置は、２分探索を行う区間を効果的に短縮することができる。【００１５】
また、本発明のレート制御装置において、前記スケール・ファクタ決定部は、前記スケール・ファクタ決定部が算出した西のスケール・ファクタと東のスケール・ファクタに基づいてＮＭＲの最小値と最大値を算出し、前記スケール・ファクタ決定部は、前記ＮＭＲ候補値が最小のＮＭＲを下回る場合は前記西のスケール・ファクタを前記ＮＭＲ候補値に対するスケール・ファクタとして決定し、前記ＮＭＲ候補値が最大のＮＭＲを上回る場合は前記東のスケール・ファクタを前記ＮＭＲ候補値に対するスケール・ファクタとして決定するようにしてもよい。【００１６】
スケール・ファクタのＮＭＲは量子化に伴うノイズ・エネルギーとマスク・エネルギーとの比として計算できる。スケール・ファクタのマスク・エネルギーは、それを超えない信号エネルギーを持つ信号がマスクされる、すなわち人間が聞いても識別できないようなエネルギーである。このような構成によって、本発明のレート制御装置は、例えば、人間の聴覚が識別できない音声信号にはビットを割り当てず、可聴領域の信号成分に適応的にビットを割り当てるように効率的な符号化ができる。【００１７】
本発明のレート制御装置は、さらに、前記スケール・ファクタ決定部が実行する２分検索の過程を記憶する記憶部を備え、前記スケール・ファクタ決定部は、前記記憶部に記憶された２分検索の過程に基づいて２分検索を実行するようにしてもよい。【００１８】
このような構成によって、本発明のレート制御装置は、スケール・ファクタ決定部が２分探索を実行する際、その過程を記憶部に保存しておくことで再計算を不要にし、効率的な処理を実現することができる。【００１９】
また、本発明のレート制御装置において、前記目標レートは、所定の範囲で変動可能としてもよい。目標レートにある程度の幅を持たせれば、ＮＭＲ決定部はまずＮＭＲの予測値を用いて符号量を計算し、その符号量が目標レート内にあるとき２分探索せずにレート制御を終了してもよい。ＮＭＲの予測値として、例えば、前のフレームに用いたＮＭＲを用いてもよい。このような構成によって、本発明のレート制御装置は、例えば、ビット・リザバの目標値、例えばビット・リザバの最大値の８０％からのずれに応じて、次のフレームの符号量を増減させるようにＮＭＲの予測値をフィードバック制御することもできる。短期的にレートを変動させることでＮＭＲ、あるいは信号の品質をできるだけ一定に保ちながら、長期的には一定のレートで符号化できる。【００２０】
さらに、前記ＮＭＲ決定部は、前記フレームが符号化されるごとに、ＮＭＲの予測値を更新するようにしてもよい。ＮＭＲの予測値を、例えば、フレームを符号化するごとにビット・リザバの目標値からの変動に応じて修正するようにしてもよい。ほぼ一定のＮＭＲの予測値に基づいてスケール・ファクタを決定するので、品質をできるだけ一定に保ちながら、短期的なレート変動はビット・リザバで吸収し、長期的には一定のレートになるように制御できる。このようにビット・リザバを有効に活用することが可能となり、より適応的なレート制御が実現できる。【００２１】
本発明の第２の態様によると、入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化方法において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御方法であって、目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定ステップと、スケール・ファクタ・バンドごとに、前記ＮＭＲ決定ステップで決定されたＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定ステップと、前記スケール・ファクタ決定ステップで決定されたスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分を評価して、前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであるか否かを判断する評価ステップと、を含み、前記ＮＭＲ決定ステップで、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値が選定される都度、前記スケール・ファクタ決定ステップで、前記ＮＭＲの候補値に対するスケール・ファクタが決定され、前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであると判断された場合は、前記ＮＭＲ候補値を最適なＮＭＲとして決定し、前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲでないと判断された場合は、前記ＮＭＲ決定ステップから前記評価ステップまでを反復する、レート制御方法を提供する。【００２２】
このような構成によって、本発明のレート制御方法は、目標レートを満たすと同時に、できるだけＮＭＲを一定にすなわち品質を一定にできる。【００２３】
本発明の第３の態様によると、入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、前記複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行う音声符号化方法において、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御処理をコンピュータに実行させるレート制御プログラムであって、前記レート制御処理は、目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定ステップと、スケール・ファクタ・バンドごとに、前記ＮＭＲ決定ステップで決定されたＮＭＲに対応する最大のスケール・ファクタとレートを２分探索によって決定するスケール・ファクタ決定ステップと、前記スケール・ファクタ決定ステップで決定されたスケール・ファクタに基づいて算出した前記ＮＭＲ候補値に対するレートと前記目標レートとの差分を評価して、前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであるか否かを判断する評価ステップと、を含み、前記ＮＭＲ決定ステップで、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値が選定される都度、前記スケール・ファクタ決定ステップで、前記ＮＭＲの候補値に対するスケール・ファクタが決定され、前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲであると判断された場合は、前記ＮＭＲ候補値を最適なＮＭＲとして決定し、前記評価ステップで前記ＮＭＲ候補値が目標レートを超えない最小のＮＭＲでないと判断された場合は、前記ＮＭＲ決定ステップから前記評価ステップまでを反復するようになっており、前記ＮＭＲ決定ステップと前記評価ステップとを外部ループとして、前記スケール・ファクタ決定ステップを内部ループとしてコンピュータに実行させる、レート制御プログラムを提供する。このような構成によって、本発明のレート制御プログラムは、目標レートを満たすと同時に、できるだけＮＭＲを一定にすなわち品質を一定にするようにコンピュータにレート制御を実行させることができる。
【図面の簡単な説明】
【００２４】
【図１】信号エネルギー、ノイズ・エネルギーとマスク・エネルギーの関係の一例を示す図である。
【図２】レートとＮＭＲの関係を示す図である。
【図３】スケール・ファクタとＮＭＲの関係の一例を示す図である。
【図４】目標ＮＭＲに対応するスケール・ファクタを求めるための２分探索木の一例を示す図である。
【図５】スケール・ファクタ・バンドごとのＮＭＲの範囲を示す図である。
【図６】本発明の一実施の形態のレート制御装置を含むオーディオ符号化装置の機能ブロック図である。
【図７】図６のレート制御装置の概略機能ブロック図である。
【図８】図６のレート制御装置が実行する処理を説明するフローチャートである。
【図９】レート制御装置１５のＮＭＲ決定部１の機能を実行させる外部ループの流れを説明するフローチャートである。
【図１０Ａ】レート制御装置１５のスケール・ファクタ決定部２の機能を実行させる内部ループの流れを説明するフローチャートである。
【図１０Ｂ】レート制御装置１５のスケール・ファクタ決定部２の機能を実行させる、図１０Ａに続く内部ループの流れを説明するフローチャートである。
【図１１】外部ループの疑似コードを示す図である。
【図１２】外部ループの第１段の擬似コードを示す図である。
【図１３】外部ループの第２段の擬似コードを示す図である。
【図１４】内部ループの擬似コードを示す図である。
【図１５】スケール・ファクタを２分探索で求める擬似コードを示す図である。
【図１６】従来のレート制御装置が実行する外部ループの処理を説明するフローチャートである。
【図１７】従来のレート制御装置が実行する内部ループの処理を説明するフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の具体的な実施の形態について、図面を参照して詳細に説明する。
【００２６】
まず、本発明のレート制御の原理について説明する。
＜本発明のレート制御の原理＞
図１に信号エネルギー、ノイズ・エネルギーとマスク・エネルギーの関係の一例を示す。本明細書では特に断らない限りＮＭＲとして、そのデシベル値ＮＭＲｄＢを用いる。ＮＭＲｄＢを以下のように定義する。
【数１】
0005539992.tif 000002
【００２７】
図１に示すように、ＮＭＲが正の場合、ノイズはマスクされない。一方で、ＮＭＲが負の場合、ノイズはマスクされる。典型的なビットレートでは、聴覚心理モデルによる要求を完全に満たすことはまれであり、正のＮＭＲでレート制御することが多い。
【００２８】
図２に、レートとＮＭＲの関係を示す。図２に示すように、レート、すなわち符号量とＮＭＲには負の相関があるが、必ずしも単調現象とはならない。レート、すなわち符号量もＮＭＲも直接的に制御することはできず、スケール・ファクタを介して制御する。このため、２重のループを使ってレート制御を行ってもよい。
【００２９】
この外部ループでは目標レート（Ｔａｒｇｅｔ  Ｒａｔｅ）を超えない最小のＮＭＲを探索する。
【００３０】
この探索は２段階からなる。第１の段階では、目標レートを飛び越えるまでより遠くのＮＭＲの候補値を試す。図２の例ではＮＭＲの候補値a、b、cを試して目標レートを挟むＮＭＲの区間（ｂ，ｃ）を得ている。また、ＮＭＲの初期候補値ａはＮＭＲの予測値と等しくなるようにしてもよい。図２の例では予測値を０としている。目標レートを飛び越えるまで、ＮＭＲの候補値の間隔を徐々に増やしてもよい。ＮＭＲの予測値として、例えば、前のフレームを符号化する際に用いたＮＭＲの値、又は前のフレームを符号化する際に用いたＮＭＲに基づいて算出した値を用いてもよい。
【００３１】
第２の段階では、区間（ｂ，ｃ）から２分探索を実行し、新たな候補値ｄ，ｅについてレートを求め、区間を狭めていき（（ｂ，ｃ）→（ｄ，ｃ）→（ｄ，ｅ））、目標レートを超えない最小のＮＭＲを見つける。
【００３２】
目標レートにはある程度の幅を持たせてもよい。目標最小符号量を、例えば、平均符号量の５０％として、目標最大符号量を、例えば、平均符号量の２００％として、符号量が目標最小符号量と目標最大符号量の範囲に収まるようにレート制御してもよい。目標最小符号量から目標最大符号量までの範囲の局所的な符号量、すなわちレートの変動は、ビット・リザバを使って吸収することができる。
【００３３】
また、ＮＭＲの予測値は、フレームを符号化するごとに更新してもよい。例えば、ビット・リザバの目標値、例えばビット・リザバの最大占有量の８０％からのずれに応じて、次のフレームの符号量を増減させるようにＮＭＲの予測値をフィードバック制御してもよい。以上のようにして、短期的にレートを変動させることでＮＭＲ、あるいは品質をできるだけ一定に保ちながら、長期的には一定のレートで符号化できる。このようなレート制御の方式をＡＢＲと呼ぶ。
【００３４】
図３に、スケール・ファクタ（ＳＦ:Ｓｃａｌｅ  Ｆａｃｔｏｒ）とＮＭＲの関係の一例を示す。図３に示すように、スケール・ファクタとＮＭＲには正の相関があるが、必ずしも単調増加にはならない。ここで、あるバンドにおいて、周波数スペクトルの量子化値がすべて０になるスケール・ファクタのうち、最小のものを東（Ｅａｓｔ）のスケール・ファクタ（東ＳＦ）と呼ぶ。図３においてＥ点がこれに相当する。このときＮＭＲは最大になる。ＮＭＲは上述のＡｂＳによって求めることができる。
【００３５】
また、あるバンドにおいて、量子化値の絶対値が規定された最大値（ＡＡＣでは８１９１）を超えない最小のスケール・ファクタを西（Ｗｅｓｔ）のスケール・ファクタ（西ＳＦ）と呼ぶ。図３においてＷ点がこれに相当する。このときＮＭＲは最小になる。各バンドについて、内部ループを実行する前に、あらかじめ東西のスケール・ファクタとＮＭＲの最大値、最小値を求めることができる。
【００３６】
本実施の形態では、各バンドについて、２分探索を実行して目標ＮＭＲに対応するスケール・ファクタを求める。具体的には、目標ＮＭＲがそのバンドの最大ＮＭＲと最小ＮＭＲの間にあるときは、区間（Ｗ，Ｅ）から２分探索を実行し、与えられた目標ＮＭＲを超えない最大のスケール・ファクタを探索する。ただし、目標ＮＭＲがそのバンドの最大ＮＭＲ以上の場合は、東のスケール・ファクタを用い、目標ＮＭＲが最小ＮＭＲ以下の場合は、西のスケール・ファクタを用いる。図４に、目標ＮＭＲに対応するスケール・ファクタを求めるための２分探索木の一例を示す。
【００３７】
図３の例では、（Ｗ，Ｅ）→（ａ，Ｅ）→（ｂ，Ｅ）→（ｂ，ｃ）の順で区間が狭められている。この２分探索の過程は、例えば、図４のような２分探索木として保存される。内部ループが再度実行されたとき、保存された２分探索木をたどることで、ＡｂＳによるＮＭＲの再計算を省くことができる。外部ループでは、２分探索のため、似通った目標ＮＭＲによって内部ループを繰り返し実行する。このため、内部ループの２分探索の反復では、高い確率で保存された２分探索木をたどることが期待でき、再計算を省略する効果も大きくなる。
【００３８】
図５に、スケール・ファクタ・バンドごとのＮＭＲの範囲を示す。図５において、縦軸はＮＭＲを、横軸はＳＦＢ（Ｓｃａｌｅ  Ｆａｃｔｏｒ  Ｂａｎｄ：スケール・ファクタ・バンド）インデックスを表し、インデクスが大きいほどより高周波のスケール・ファクタ・バンドを表す。図５に示すように、一般にＮＭＲの範囲はバンドごとに異なる。特に、高周波領域ではマスク・エネルギーが大きくなるため、ＮＭＲの最大値が０以下になることが多い。目標ＮＭＲが最大ＮＭＲ以上又は最小ＮＭＲ以下となるバンドでは、２分探索の必要はない。目標ＮＭＲが最大ＮＭＲ以上となる場合、東のスケール・ファクタを用いて、すべての周波数スペクトルの量子化値を０とし、目標ＮＭＲがそのバンドの最大ＮＭＲを下回るような場合に初めてＮＭＲの最小値、つまり西のスケール・ファクタにおけるＮＭＲを計算するようにして、常に目標ＮＭＲがそのバンドの最大ＮＭＲを下回らないバンドでは、最小ＮＭＲの計算を省略してもよい。また、東西のスケール・ファクタは、そのバンドにおける周波数スペクトルの最大の絶対値から求めることができる。
【００３９】
＜一実施の形態＞
図６に本発明の一実施の形態のレート制御装置を制御部に含むオーディオ符号化装置の機能ブロック図を示す。
図６に示すように、オーディオ符号化装置１０は、聴覚心理分析部１１と、フィルタ・バンク１２と、ＴＮＳ（Ｔｅｍｐｏｒａｌ  Ｎｏｉｓｅ  Ｓｈａｐｉｎｇ：時間領域ノイズ整形）部１３と、Ｍ／Ｓ（Ｍｉｄｄｌｅ／Ｓｉｄｅ（ミドル／サイド））ステレオ部１４と、本実施の形態のレート制御装置１５と、量子化部１６と、エントロピー符号化部１７と、ビット・ストリーム生成部１８を備える。オーディオ符号化装置１０は、入力信号から生成したフレームを複数のスケール・ファクタ・バンドに分割し、複数のスケール・ファクタ・バンドの各々をスケール・ファクタを用いて符号化を行い、符号化ビット・ストリームをビット・ストリーム生成部１８から出力する。
【００４０】
音声信号は、聴覚心理分析部１１とフィルタ・バンク１２に入力される。聴覚心理分析部１１は聴覚心理モデルに従って聴覚心理分析を行い、その結果に基づいて、フィルタ・バンク、ＴＮＳ部１３、Ｍ／Ｓステレオ部１４などを含む符号化関連部と、制御部２０などが動作する。
【００４１】
フィルタ・バンク１２は、オーディオ・サンプルからなる時間信号に時間周波数変換を実行し、周波数スペクトルに変換する。周波数スペクトルは、さらにいくつかの符号化関連部（図示されていない）に入力される。これらの符号化関連部は、復号に必要な補助情報をビット・ストリーム生成部１８に出力する。図６では、説明を容易にするため、ＡＡＣで使用可能なＴＮＳ部１３及びＭ／Ｓステレオ部１４以外の符号化関連部は省略している。
【００４２】
こうして符号化関連部で処理された周波数スペクトルは、次に、量子化部１６に入力される。量子化部１６は周波数スペクトルを量子化し量子化スペクトルを生成し、エントロピー符号化部１７に出力する。エントロピー符号化部１７は量子化スペクトルをエントロピー符号化する。制御部２０は、量子化部１６とエントロピー符号化部１７を制御して、レート制御を行う。具体的には、特に、レート制御装置１５には、聴覚心理分析部１１からスケール・ファクタ・バンドのマスク・エネルギーの情報が与えられる。さらに、後述する量子化部１６からノイズ・エネルギーの情報が与えられる。レート制御装置１５のスケール・ファクタ決定部２は、それぞれのスケール・ファクタ・バンドについて、ＡｂＳによって求めたノイズ・エネルギーと与えられたマスク・エネルギーとの比としてＮＭＲ（Ｎｏｉｓｅ−ｔｏ−Ｍａｓｋ  Ｒａｔｉｏ）を算出する。さらに、算出したＮＭＲを目標ＮＭＲと比較することで最適なスケール・ファクタを決定する。制御部２０は、レート制御装置１５から得られる最適なＮＭＲに基づくスケール・ファクタとレートを用いて量子化部１６とエントロピー符号化部１７とを制御する。
【００４３】
レート制御が終了すると、エントロピー符号化部１７はビット・ストリーム生成部１８に補助情報と符号化データとを出力する。すべての補助情報と符号化データとをまとめて、ビット・ストリーム生成部は符号化した音声ビット・ストリーム（Ｃｏｄｅｄ  Ａｕｄｉｏ  Ｂｉｔ  Ｓｔｒｅａｍ）として出力する。
【００４４】
図７に、本実施の形態のレート制御装置１５の概略機能ブロック図を示す。レート制御装置１５は、ノイズ・エネルギーと所定の聴覚心理モデルに基づくマスク・エネルギーとの比であるＮＭＲに基づくレート制御を行うレート制御装置であって、目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定部１と、スケール・ファクタ・バンドごとに、ＮＭＲ決定部１によって決定したＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定部２と、を含み、ＮＭＲ決定部１は、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値を選定する都度、スケール・ファクタ決定部２がＮＭＲ候補値に対するスケール・ファクタを決定し、ＮＭＲ決定部１は、スケール・ファクタ決定部で決定したスケール・ファクタに基づいて算出したＮＭＲ候補値に対するレートと目標レートとの差分に基づいて最小のＮＭＲを最適なＮＭＲとして決定するようになっている。
【００４５】
図８は、本実施の形態のレート制御装置１５が実行するレート制御処理を説明するフローチャートである。以下の処理はレート制御装置１５に含まれる、図示されないＣＰＵやＣＰＵ関連プログラムの制御の下で実行される。
【００４６】
先ず、ステップＳ１で、ＮＭＲ決定部１は２分探索によってＮＭＲ候補値を決定する。また、２分探索の第１段階の場合は、ＮＭＲの初期候補値として、例えば、前のフレームを符号化する際に用いたＮＭＲを用いてもよい。
【００４７】
ステップＳ２で、スケール・ファクタ決定部２は、スケール・ファクタ・バンドごとに、ＮＭＲ決定部１によって決定したＮＭＲ候補値に対応する最大のスケール・ファクタを２分探索によって決定する。本実施の形態では、スケール・ファクタ決定部２はさらに、決定したスケール・ファクタに対応するレートも算出する。ただし、本発明はこれに限定されず、スケール・ファクタ決定部２が決定したスケール・ファクタに対応するレートは、他のいかなる構成部が算出してもよいことは当業者であれば明らかである。
【００４８】
ステップＳ３で、ＮＭＲ決定部１は、スケール・ファクタ決定部２で決定したスケール・ファクタに基づいて算出したＮＭＲ候補値に対するレートと目標レートとの差分を算出して比較する。
【００４９】
ステップＳ４で、ＮＭＲ決定部１は、ステップＳ３で行った目標レートと算出したレートとの差分に基づいて最適なＮＭＲ候補値が見つかったか否かを判定する。具体的には、ＮＭＲ決定部１は、ＮＭＲの２分探索の区間が十分に狭められたときに最適なＮＭＲの候補値が見つかったと判断する。
【００５０】
ステップＳ４で最適なＮＭＲ候補値が見つかったと判断された場合は、ステップＳ５に進み、十分に狭められたＮＭＲの２分探索の区間の東のＮＭＲの候補値、すなわち、目標レートを超えない最小のＮＭＲの候補値を最適なＮＭＲとして出力する。一方で、ステップＳ４で、最適なＮＭＲが見つかっていないと判断された場合、処理はステップＳ１に戻る。
【００５１】
このように、本実施のレート制御装置１５は、目標レートを超えないＮＭＲを２分探索によって決定するＮＭＲ決定部１と、スケール・ファクタ・バンドごとに、ＮＭＲ決定部によって決定したＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定部２と、を含み、ＮＭＲ決定部１が、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値を選定する都度、スケール・ファクタ決定部２がＮＭＲ候補値に対するスケール・ファクタとレートを決定し、ＮＭＲ決定部１は、スケール・ファクタ決定部２で決定したスケール・ファクタに基づいて算出したＮＭＲ候補値に対するレートと目標レートとの差分に基づいて最小のＮＭＲを最適なＮＭＲとして決定する。このような構成により、本実施のレート制御装置１５は、目標レートを満たすと同時に、可能な限りＮＭＲを一定にする、すなわち品質を一定に保つことができる。
【００５２】
ここで、ＮＭＲ決定部１は、ＮＭＲ予測値と、該ＮＭＲ予測値に対して、対応するレートが目標レートを挟むようにして選定したＮＭＲ候補値により確定される区間から２分探索を開始する。また、スケール・ファクタ決定部２は、スケール・ファクタ・バンドごとに、ＮＭＲの範囲決定部が選定したＮＭＲ候補値に対して、周波数スペクトルの量子化値の絶対値が既定された最大値を超えないスケール・ファクタのうち最小のスケール・ファクタを西のスケール・ファクタとし、周波数スペクトルの量子化値がすべてゼロになるスケール・ファクタのうち最小のスケール・ファクタを東のスケール・ファクタとして算出し、西のスケール・ファクタと東のスケール・ファクタとによって画定される区間からＮＭＲに対応する最大のスケール・ファクタの２分探索を開始する。このため、本実施の形態のレート制御装置１５は、２分探索を行う区間を効果的に短縮することができる。
【００５３】
また、スケール・ファクタ決定部２は、スケール・ファクタ決定部が算出した西のスケール・ファクタと東のスケール・ファクタに基づいてＮＭＲの最小値と最大値を算出し、スケール・ファクタ決定部２は、ＮＭＲ候補値に対して算出したスケール・ファクタが西のスケール・ファクタを下回る場合は西のスケール・ファクタをＮＭＲ候補値に対するスケール・ファクタとして決定し、ＮＭＲ候補値に対して算出したスケール・ファクタが東のスケール・ファクタを下回る場合は西のスケール・ファクタをＮＭＲ候補値に対するスケール・ファクタとして決定する。
【００５４】
さらに、レート制御装置１５は、スケール・ファクタ決定部２が実行する２分検索の過程を記憶する記憶部３を備え、スケール・ファクタ決定部２は、記憶部３に記憶された２分検索の過程に基づいて２分検索を実行する。また、目標レートは、所定の範囲で変動可能としてもよい。目標レートにある程度の幅を持たせれば、ＮＭＲ決定部２はまずＮＭＲの予測値を用いて符号量を計算し、その符号量が目標レート内にあるときはこのＮＭＲの予測値を最適なＮＭＲとして決定して、２分探索せずにレート制御を終了してもよい。例えば、ビット・リザバの目標値、例えばビット・リザバの最大値の８０％からのずれに応じて、次のフレームの符号量、すなわち、目標レートを増減させるようにＮＭＲ決定部をフィードバック制御することもできる。短期的にレートを変動させることでＮＭＲ、あるいは信号の品質をできるだけ一定に保ちながら、長期的には一定のレートで符号化できる。
【００５５】
さらに、ＮＭＲ決定部１は、フレームが符号化されるごとに、ＮＭＲの予測値を更新するようにしてもよい。ＮＭＲの予測値を、例えば、フレームを符号化するごとにビット・リザバの目標値からの変動に応じて修正する。ほぼ一定のＮＭＲの予測値に基づいてスケール・ファクタを決定するので、品質をできるだけ一定に保ちながら、短期的なレート変動はビット・リザバで吸収し、長期的には一定のレートになるように制御できる。このようにビット・リザバを有効に活用することが可能となり、より適応的なレート制御が実現できる。
【００５６】
なお、本発明のレート制御装置１５は、ＣＰＵとメモリを含む、一般的なコンピュータを上述した各手段として機能させるレート制御プログラムによって実現させることができる。かかるレート制御プログラムは、通信回線を介して配布することも可能であるし、ＣＤ−ＲＯＭなどの記録媒体に書き込んで配布することも可能である。
【００５７】
本実施の形態では、ＣＰＵとメモリを含むコンピュータに、レート制御装置１５のＮＭＲ決定部１の機能を外部ループとして、レート制御装置１５のスケール・ファクタ決定部２の機能を内部ループとして実現させる場合を想定して説明を続ける。
【００５８】
図９は、ＣＰＵとメモリを含むコンピュータに、レート制御装置１５のＮＭＲ決定部１の機能を実行させる外部ループの流れを説明するフローチャートである。以下の処理はメモリに含まれるプログラムに従って、ＣＰＵの制御の下で実行される。
【００５９】
まず、ＮＭＲ予測値をＮＭＲ候補値とし（Ｓ１１）、ＮＮＭＲ候補値について内部ループを実行し、ＮＭＲ候補値のレートを取得する（Ｓ１２）。ＮＭＲ候補値のレートが目標レートより大きいか否かを判定し（Ｓ１３）、ＮＭＲ候補値のレートが目標レートを超えると判定すると、ＮＭＲ候補値を西のＮＭＲとし、ＮＭＲ候補値を所定の値だけ増加させる（Ｓ１４）。一方で、ＮＭＲ候補値のレートが目標レートを超えないと判定すると、ＮＭＲ候補値を東のＮＭＲとし、ＮＭＲ候補値を所定の値だけ減少させる（Ｓ１５）。
【００６０】
続いて、東西のＮＭＲが両方みつかったか否かを判定し（Ｓ１６）、見つかっていないと判定した場合はステップＳ１２に戻り、見つかったと判定した場合は、東西のＮＭＲの差が十分に小さいか否かを判定する（Ｓ１７）。東西のＮＭＲの差が十分に小さいか否かは、例えば、東西のＮＭＲの差を所定の値と比較して、所定の値を下回る場合は東西のＮＭＲの差が十分に小さいと判定し、所定の値以上の場合は東西のＮＭＲの差が十分に小さいくはないと判定する。東西のＮＭＲの差が十分に小さいと判定した場合、東のＮＭＲとレートを、それぞれ、最適なＮＭＲとレートとし（Ｓ２３）、処理を終了する。東西のＮＭＲの差が十分に小さくはないと判定した場合は、東西のＮＭＲの平均値を、ＮＭＲ候補値とする（Ｓ１８）。ＮＭＲ候補値について内部ループを実行し、ＮＭＲ候補値のレートを得る（Ｓ１９）。ＮＭＲ候補値のレートが目標レートを超えるか否かを判定し（Ｓ２０）、ＮＭＲ候補値のレートが目標レートを超える判定した場合は、ＮＭＲ候補値を西のＮＭＲとし（Ｓ２１）、ＮＭＲ候補値のレートが目標レートを超えないと判定した場合は、ＮＭＲ候補値を東のＮＭＲとする（Ｓ２２）。次に、ステップＳ１７に戻る。
【００６１】
図１０Ａ及び１０Ｂは、ＣＰＵとメモリを含むコンピュータに、レート制御装置１５のＮＭＲ決定部１の機能を実行させる外部ループの流れを説明するフローチャートである。
【００６２】
まず、最初のスケール・ファクタ・バンドを、処理対象のスケール・ファクタ・バンドとする（Ｓ３１）。続いて処理対象のスケール・ファクタ・バンドに対応する東西のＮＭＲとスケール・ファクタを、それぞれ、処理対象の東西のＮＭＲとスケール・ファクタとする（Ｓ３２）。処理対象のスケール・ファクタ・バンドの二分探索木のルートを、処理対象の二分探索木として用いる（Ｓ３３）。
【００６３】
次に、東のＮＭＲが目標ＮＭＲ以下であるか否かを判定する（Ｓ３４）。東のＮＭＲが目標ＮＭＲ以下であると判定した場合は、東のスケール・ファクタを、処理対象のスケール・ファクタ・バンドのスケール・ファクタとして用いて（Ｓ３５）、処理はステップＳ４８に進む。東のＮＭＲが目標ＮＭＲを上回ると判定した場合は、西のＮＭＲが目標ＮＭＲ以上であるか否かを判定する（Ｓ３６）。西のＮＭＲが目標ＮＭＲ以上であると判定した場合は、西のスケール・ファクタを、処理対象のスケール・ファクタ・バンドのスケール・ファクタとして用いて（Ｓ３７）、処理はステップＳ４８に進む。
【００６４】
次に、東西のスケール・ファクタの差が十分小さいか否かを判定し（Ｓ３８）、東西のスケール・ファクタの差が十分小さいと判定した場合、処理はステップＳ４７に進む。東西のスケール・ファクタの差が十分小さくはないと判定した場合は、東西のスケール・ファクタの平均値を、スケール・ファクタ候補値とする（Ｓ３９）。東西のスケール・ファクタの差が十分に小さいか否かは、例えば、東西のスケール・ファクタの差を所定の値と比較して、所定の値を下回る場合は東西のスケール・ファクタの差が十分に小さいと判定し、所定の値以上の場合は東西のスケール・ファクタの差が十分に小さいくはないと判定する。
【００６５】
次に、二分探索木のルートに、スケール・ファクタ候補値に対応するノードが存在するか否かを判定し（Ｓ４０）、二分探索木のルートに、スケール・ファクタ候補値に対応するノードが存在すると判定した場合、処理はステップＳ４３に進む。二分探索木のルートに、スケール・ファクタ候補値に対応するノードが存在しないと判定した場合は、処理対象のスケール・ファクタ・バンドをスケール・ファクタ候補値で量子化したときの量子化スペクトルを求め、さらに、量子化スペクトルからＡｂＳによってＮＭＲを求める（Ｓ４１）。さらに、求めた量子化スペクトルとＮＭＲを含む、スケール・ファクタ候補値に対応するノードを、二分探索木のルートに追加する（Ｓ４２）。スケール・ファクタ候補値に対応するノードから、スケール・ファクタ候補値のＮＭＲを取り出す（Ｓ４３）。
【００６６】
続いて、スケール・ファクタ候補値のＮＭＲが目標ＮＭＲを超えるか否かを判定し（Ｓ４４）、スケール・ファクタ候補値のＮＭＲが目標ＮＭＲを超えると判定した場合は、スケール・ファクタ候補値を東のスケール・ファクタとし、二分探索木を西にたどり（Ｓ４５）、処理はステップＳ３８に進む。スケール・ファクタ候補値のＮＭＲが目標ＮＭＲを越えていないと判定した場合は、スケール・ファクタ候補値を西のスケール・ファクタとし、二分探索木を東にたどり（Ｓ４６）、処理はステップＳ３８に進む。
【００６７】
ステップＳ３８で東西のスケール・ファクタの差が十分小さいと判定した場合、西のスケール・ファクタを、処理対象のスケール・ファクタ・バンドのスケール・ファクタとして用いる（Ｓ４７）。次のスケール・ファクタ・バンドが存在するか否かを判定し（Ｓ４８）、次のスケール・ファクタ・バンドが存在すると判定した場合は、次のスケール・ファクタ・バンドを、処理対象のスケール・ファクタ・バンドとして（Ｓ４９）、処理はステップＳ３２に戻る。一方で次のスケール・ファクタ・バンドが存在しないと判定した場合は、求めたスケール・ファクタの組み合わせにおけるレートを計算する（Ｓ５０）。
【００６８】
図１１に、ＣＰＵとメモリを含むコンピュータにＭＮＲ決定部１の機能を実行させる外部ループの流れを説明する擬似コードを示す。
【００６９】
外部ループでは、ＮＭＲを変化させて、処理対象のフレームのレートが目標レート以下になるようにレート制御を行う。以下では特に断らない限り、ＮＭＲとしてデシベル値を用い、ＮＭＲを変化させる最小単位をΔＮＭＲで表すものとする（例えばΔＮＭＲ＝０．３ｄＢ）。量子化したＮＭＲをｉとすると、対応するＮＭＲの値は逆量子化ｉΔＮＭＲで求められる。
【００７０】
関数ｏｕｔｅｒ＿ｌｏｏｐ（）は、量子化ＮＭＲの初期値（予測値）と目標レートの組を引数に受け取る。まず、ｏｕｔｅｒ＿ｌｏｏｐ＿ｆｉｒｓｔ（）が２分探索を行う区間、すなわち、東西の量子化ＮＭＲとそれらに対応するレートを決定する。ＮＭＲｍａｘとＮＭＲｍｉｎは、それぞれ、処理対象のフレームがとりうる最大と最小のＮＭＲを表し、
【数２】
0005539992.tif 000003
と
【数３】
0005539992.tif 000004
は、それぞれ、そのフレームがとりうる最大と最小の量子化ＮＭＲを表す。
【数４】
0005539992.tif 000005
２分探索の区間が決定されると、次に、ｏｕｔｅｒ＿ｌｏｏｐ＿ｓｅｃｏｎｄ（）が２分探索を実行し、最適な量子化ＮＭＲとそのときのレートの組を返す。目標レートがそのフレームのとりうるレートの範囲にない場合、２分探索の区間が決定できない。最大レートが目標レートを下回る場合、すなわち西の点が決定できない場合、最大レートとなる東の点を最適値として返す。最小レートが目標レートを上回る場合、すなわち東の点が決定できない場合、すべてのスペクトルとその他の補助情報を省略することを示す、特別な量子化ＮＭＲΙ∞と、そのときの符号量の組を返す。
【００７１】
量子化ＮＭＲがΙ∞以上のとき、レートはフレームの内容によらずある一定の値（これをレートの下限と呼ぶ）以下となるので、目標レートを常に下限以上にすることでレート制御が成功すること（目標レート以下にレート制御できること）を保証できる。
【００７２】
図１２に、外部ループの第１段階の流れを説明する擬似コードを示す。関数ｏｕｔｅｒ＿ｌｏｏｐ＿ｆｉｒｓｔ（）は、順に、量子化ＮＭＲの初期値、目標レート、量子化ＮＭＲの最大値、量子化ＮＭＲの最小値を引数にとる。ｏｕｔｅｒ＿ｌｏｏｐ＿ｆｉｒｓｔ（）は、初期値から初めて、量子化ＮＭＲを徐々に変化させて、目標レートを挟む区間を探す。探索を終えると、西と東の量子化ＮＭＲとレートを返す。関数ｉｎｎｅｒ＿ｌｏｏｐ（）は与えられた量子化ＮＭＲにおけるレートを計算する。量子化ＮＭＲの変化量ｋは、目標レートと実際のレートのずれによって決まる値に初期化され、一定の割合（例えば１．５倍）で増加する。定数ＤＢＲはレート１ビットあたりのＮＭＲの変化量、又はＮＭＲの変化量の近似値を表す。例えば、１サンプルあたりの符号量を１ビット増加させると６ｄＢのＮＭＲの改善が得られると仮定すると、１０２４サンプルのデータを含むフレームについて、ＤＢＲ＝６／１０２４となる。
【００７３】
図１３に、外部ループの第２段階の流れを説明する擬似コードを示す。関数ｏｕｔｅｒ＿ｌｏｏｐ＿ｓｅｃｏｎｄ（）は、２分探索の区間（西と東の量子化ＮＭＲとレート）と目標レートを引数にとる。目標レートを上回らない最小の量子化ＮＭＲ（これを最適化された量子化ＮＭＲと呼ぶ）を２分探索によって見つけ、最適化された量子化ＮＭＲとそのときのレートの組を返す。具体的には、ＮＭＲの２分探索の範囲が十分に狭められたとき、すなわち、東西の量子化ＮＭＲの差が１になったとき、西の量子化ＮＭＲと西のレートの組を返す。
【００７４】
図１４に、ＣＰＵとメモリを含むコンピュータにスケール・ファクタ決定部２の機能を実行させる内部ループの流れを説明する擬似コードを示す。関数ｉｎｎｅｒ＿ｌｏｏｐ（）は（目標）量子化ＮＭＲを引数にとる。量子化ＮＭＲがΙ∞以上であれば、関数ｓｉｍｕｌａｔｅ＿ｚｅｒｏ（）によって計算されたレートを返す。関数ｓｉｍｕｌａｔｅ＿ｚｅｒｏ（）は、すべてのスペクトルとその他の補助情報を省略したときのレートを計算する。量子化ＮＭＲがΙ∞より小さければ、以下のようにレートを求める。まず、スケール・ファクタ・バンドごとに、与えられたＮＭＲを上回らない最大のスケール・ファクタを、関数ａｌｌｏｃａｔｅ＿ｎｏｉｓｅ（）によって見つける。次に、ａｌｌｏｃａｔｅ＿ｎｏｉｓｅ（）によって求めたスケール・ファクタの組み合わせについて、レートを関数ｓｉｍｕｌａｔｅ（）によって計算する。ＲＯＯＴｊはｊ番目のバンドの２分探索木のルートノードを表し、＆ＲＯＯＴｊはそのノードへのポインタを表す。ＳＦＢｊはｊ番目のバンドのスペクトルなどのデータを表す。ＳＦｊｗｅｓｔとＳＦｊｅａｓｔは、それぞれ、ｊ番目のバンドの西と東のスケール・ファクタを表す。ＮＭＲｊｗｅｓｔとＮＭＲｊｅａｓｔは、それぞれ、ｊ番目のバンドの西と東のＮＭＲを表す。関数ｓｉｍｕｌａｔｅ＿ｚｅｒｏ（）とｓｉｍｕｌａｔｅ（）については擬似コードを省略する。なお、常に目標ＮＭＲがそのバンドの最大ＮＭＲを下回らないようなバンドでは、最小ＮＭＲを計算する必要はない。
【００７５】
図１５に、スケール・ファクタを２分探索で求める流れを説明する擬似コードを示す。関数ａｌｌｏｃａｔｅ＿ｎｏｉｓｅ（）は、順に、２分探索木のルートノードへのポインタ、スケール・ファクタ・バンドのデータ、西のスケール・ファクタ、東のスケール・ファクタ、西のＮＭＲ、東のＮＭＲ、目標ＮＭＲを引数にとる。引数ｔｔにはルートノードへのポインタが渡されるので、＊ｔｔに対する変更が呼び出し元に反映される。
【００７６】
関数ａｌｌｏｃａｔｅ＿ｎｏｉｓｅ（）は、目標ＮＭＲが東と西のＮＭＲの間に存在しなければ、東か西のスケール・ファクタどちらか目標ＮＭＲに近いものを返す。目標ＮＭＲが東西の間にあれば、２分探索でスケール・ファクタを見つける。ルートノードを含む２分探索木のノードには、最初は、メモリが割り当てられておらず、探索の過程で、新たなノードをたどったときにメモリが割り当てられる。ｔ＝φが真ならメモリが割り当てられていない。ノードｔはｔ≠φのとき、少なくとも、そのノードにおけるＮＭＲ  ｔ：ｎｍｒ、西の子ノードｔ：ｎｏｄｅｗｅｓｔと東の子ノードｔ：ｎｏｄｅｅａｓｔにアクセスできる。
【００７７】
関数ｎｅｗ＿ｎｏｄｅ（）は、スケール・ファクタ・バンドｓｆｂをスケール・ファクタｓｆで量子化したときのＮＭＲを持つノードを返す（子ノードにはどちらもφを設定する）。ＡＡＣではスケール・ファクタｓｆに対応する量子化ステップはｑ＝２ｓｆ／４で表される。これは約１．５ｄＢで量子化を制御できることを意味する。ノードに量子化されたスペクトルをさらに含めることによって、レート制御後の符号生成において量子化を繰り返さないようにして計算を省いてもよい。関数ｎｅｗ＿ｎｏｄｅ（）の擬似コードは省略する。
【００７８】
以上説明したように、本実施の形態のレート制御装置は、目標レートを超えない最小のＮＭＲを２分探索によって決定するＮＭＲ決定部と、ＮＭＲ決定部によって決定したＮＭＲに対応する最大のスケール・ファクタを２分探索によって決定するスケール・ファクタ決定部と、を含み、ＮＭＲ決定部は、ＮＭＲを２分探索する際に候補となるＮＭＲ候補値を選定する都度、スケール・ファクタ決定部がＮＭＲ候補値に対するスケール・ファクタを決定し、ＮＭＲ決定部は、スケール・ファクタ決定部で決定したスケール・ファクタに基づいて算出したＮＭＲ候補値に対するレートと目標レートとの差分に基づいて最小のＮＭＲを決定するため、本実施の形態のレート制御装置は、目標レートと同時にＮＭＲの要件、すなわち品質の要件を満たすことができる。目標レートを下回るＮＭＲを２分探索で求め、こうして求めたＮＭＲに基づいてスケール・ファクタを決定するので、ある程度の幅のレートの変動に対しても対応することができ、ビット・リザバを有効に活用することができる。
【００７９】
以上、本発明について様々な実施の形態を、図面を参照して詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではない。本発明の目的を実現可能な範囲における様々な変形、改良などは本発明の範囲に含まれる。例えば、上述の実施の形態では、ＡＡＣに従って符号化を行う音声符号化装置の場合について説明したが、本発明はＡＡＣに従った符号化方式に限定されず、ノイズ・エネルギーとマスク・エネルギーとに基づくレート制御に適用可能である
【符号の説明】
【００８０】
１      ＮＭＲ決定部
２      スケール・ファクタ決定部
３      記憶部
１０    オーディオ符号化装置（音声符号化装置）
１１    聴覚心理分析部
１２    フィルタ・バンク
１３    ＴＮＳ部
１４    Ｍ／Ｓステレオ部
１５    レート制御装置
１６    量子化部
１７    エントロピー符号化部
１８    ビット・ストリーム生成部
２０    制御部
【図１】
0005539992.tif 000006
【図２】
0005539992.tif 000007
【図３】
0005539992.tif 000008
【図４】
0005539992.tif 000009
【図５】
0005539992.tif 000010
【図６】
0005539992.tif 000011
【図７】
0005539992.tif 000012
【図８】
0005539992.tif 000013
【図９】
0005539992.tif 000014
【図１０Ａ】
0005539992.tif 000015
【図１０Ｂ】
0005539992.tif 000016
【図１１】
0005539992.tif 000017
【図１２】
0005539992.tif 000018
【図１３】
0005539992.tif 000019
【図１４】
0005539992.tif 000020
【図１５】
0005539992.tif 000021
【図１６】
0005539992.tif 000022
【図１７】
0005539992.tif 000023