(57)【要約】  ダイナミックなビット割り当て動作は、複数のベクトルのそれぞれに対するビット割り当てを、対応する複数の利得係数に基づいて決定し、各割り当てを、ベクトルの次元に基づいているしきい値と比較する。
2013534328.tif 000002
【特許請求の範囲】
【請求項１】
ビット割り当ての方法において、
前記方法は、
複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算することと、
前記複数のベクトルのうちのそれぞれに対して、前記利得係数に基づいている対応するビット割り当てを計算することと、
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定することと、
前記決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、前記対応するビット割り当てを変更することとを含む方法。
【請求項２】
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記ベクトルの長さに基づいている請求項１記載のビット割り当ての方法。
【請求項３】
前記少なくとも１つのベクトルのそれぞれに対して、前記最小の割り当て値は、前記ベクトルの長さに基づいている請求項１および２のいずれか１項記載のビット割り当ての方法。
【請求項４】
前記方法は、前記少なくとも１つのベクトルのそれぞれに対して、前記ベクトルの長さの単調非減少関数にしたがって、前記最小の割り当て値を計算することを含む請求項３記載のビット割り当ての方法。
【請求項５】
前記方法は、前記複数のベクトルのうちのそれぞれに対して、前記ベクトル内のエネルギーの分布の測度の値を計算することを含み、
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記計算された値に基づいている請求項１ないし４のいずれか１項記載のビット割り当ての方法。
【請求項６】
前記方法は、前記複数のベクトルのうちの少なくとも１つに対して、
前記対応するビット割り当てが、有効なコードブックインデックス長に対応しないことを決定することと、
前記決定に応答して、前記対応する割り当てを低減させることとを含む請求項１ないし５のいずれか１項記載のビット割り当ての方法。
【請求項７】
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当ては、それぞれがｎ個の単位パルスを有するパターンのコードブックのインデックス長であり、前記方法は、前記対応するビット割り当てと、それぞれが（ｎ＋１）個の単位パルスを有するパターンのコードブックのインデックス長との間のビット数を計算することを含む請求項１ないし６のいずれか１項記載のビット割り当ての方法。
【請求項８】
前記方法は、前記複数のベクトルのうちのそれぞれから、対応する利得係数と、対応する形状ベクトルとを計算することを含む請求項１ないし７のいずれか１項記載のビット割り当ての方法。
【請求項９】
前記方法は、前記複数のベクトルのそれぞれの長さを決定することを含み、
前記複数の長さを決定することは、第２の複数のベクトルの位置に基づいており、
オーディオ信号のフレームが、前記複数のベクトルと、前記第２の複数のベクトルとを含む請求項１ないし８のいずれか１項記載のビット割り当ての方法。
【請求項１０】
前記複数の利得係数を計算することは、対応する量子化された利得ベクトルを逆量子化することを含む請求項１ないし９のいずれか１項記載のビット割り当ての方法。
【請求項１１】
ビット割り当てのための装置において、
前記装置は、
複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算する手段と、
前記複数のベクトルのうちのそれぞれに対して、前記利得係数に基づいている対応するビット割り当てを計算する手段と、
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定する手段と、
前記決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、前記対応するビット割り当てを変更する手段とを具備する装置。
【請求項１２】
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記ベクトルの長さに基づいている請求項１１記載のビット割り当てのための装置。
【請求項１３】
前記少なくとも１つのベクトルのそれぞれに対して、前記最小の割り当て値は、前記ベクトルの長さに基づいている請求項１１および１２のいずれか１項記載のビット割り当てのための装置。
【請求項１４】
前記装置は、前記少なくとも１つのベクトルのそれぞれに対して、前記ベクトルの長さの単調非減少関数にしたがって、前記最小の割り当て値を計算する手段を具備する請求項１３記載のビット割り当てのための装置。
【請求項１５】
前記装置は、前記複数のベクトルのうちのそれぞれに対して、前記ベクトル内のエネルギーの分布の測度の値を計算する手段を具備し、
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記計算された値に基づいている請求項１１ないし１４のいずれか１項記載のビット割り当てのための装置。
【請求項１６】
前記装置は、前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当てが、有効なコードブックインデックス長に対応しないことを決定し、前記決定に応答して、前記対応する割り当てを低減させる手段を具備する請求項１１ないし１５のいずれか１項記載のビット割り当てのための装置。
【請求項１７】
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当ては、それぞれがｎ個の単位パルスを有するパターンのコードブックのインデックス長であり、前記装置は、前記対応するビット割り当てと、それぞれが（ｎ＋１）個の単位パルスを有するパターンのコードブックのインデックス長との間のビット数を計算する手段を具備する請求項１１ないし１６のいずれか１項記載のビット割り当てのための装置。
【請求項１８】
前記装置は、前記複数のベクトルのうちのそれぞれから、対応する利得係数と、対応する形状ベクトルとを計算する手段を具備する請求項１１ないし１７のいずれか１項記載のビット割り当てのための装置。
【請求項１９】
前記装置は、前記複数のベクトルのそれぞれの長さを決定する手段を具備し、
前記複数の長さを決定することは、第２の複数のベクトルの位置に基づいており、
オーディオ信号のフレームが、前記複数のベクトルと、前記第２の複数のベクトルとを含む請求項１１ないし１８のいずれか１項記載のビット割り当てのための装置。
【請求項２０】
前記複数の利得係数を計算する手段は、対応する量子化された利得ベクトルを逆量子化する手段を備える請求項１１ないし１９のいずれか１項記載のビット割り当てのための装置。
【請求項２１】
ビット割り当てのための装置において、
前記装置は、
複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算するように構成されている利得係数計算器と、
前記複数のベクトルのうちのそれぞれに対して、前記利得係数に基づいている対応するビット割り当てを計算するように構成されているビット割り当て計算器と、
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定するように構成されている比較器と、
前記決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、前記対応するビット割り当てを変更するように構成されている割り当て調整モジュールとを具備する装置。
【請求項２２】
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記ベクトルの長さに基づいている請求項２１記載のビット割り当てのための装置。
【請求項２３】
前記少なくとも１つのベクトルのそれぞれに対して、前記最小の割り当て値は、前記ベクトルの長さに基づいている請求項２１および２２のいずれか１項記載のビット割り当てのための装置。
【請求項２４】
前記装置は、前記少なくとも１つのベクトルのそれぞれに対して、前記ベクトルの長さの単調非減少関数にしたがって、前記最小の割り当て値を計算するように構成されている計算器を具備する請求項２３記載のビット割り当てのための装置。
【請求項２５】
前記方法は、前記複数のベクトルのうちのそれぞれに対して、前記ベクトル内のエネルギーの分布の測度の値を計算するように構成されているスパース性係数計算器を具備し、
前記複数のベクトルのうちのそれぞれに対して、前記対応するビット割り当ては、前記計算された値に基づいている請求項２１ないし２４のいずれか１項記載のビット割り当てのための装置。
【請求項２６】
前記装置は、前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当てが、有効なコードブックインデックス長に対応しないことを決定し、前記決定に応答して、前記対応する割り当てを低減させるように構成されている検証モジュールを具備する請求項２１ないし２５のいずれか１項記載のビット割り当てのための装置。
【請求項２７】
前記複数のベクトルのうちの少なくとも１つに対して、前記対応するビット割り当ては、それぞれがｎ個の単位パルスを有するパターンのコードブックのインデックス長であり、前記装置は、前記対応するビット割り当てと、それぞれが（ｎ＋１）個の単位パルスを有するパターンのコードブックのインデックス長との間のビット数を計算するように構成されているモジュールを具備する請求項２１ないし２６のいずれか１項記載のビット割り当てのための装置。
【請求項２８】
前記装置は、前記複数のベクトルのうちのそれぞれから、対応する利得係数と、対応する形状ベクトルとを計算するように構成されているノーマライザを具備する請求項２１ないし２７のいずれか１項記載のビット割り当てのための装置。
【請求項２９】
前記装置は、前記複数のベクトルのそれぞれの長さを決定するように構成されているフレーム分割器を具備し、
前記複数の長さを決定することは、第２の複数のベクトルの位置に基づいており、
オーディオ信号のフレームが、前記複数のベクトルと、前記第２の複数のベクトルとを含む請求項２１ないし２８のいずれか１項記載のビット割り当てのための装置。
【請求項３０】
前記利得係数計算器は、対応する量子化された利得ベクトルを逆量子化することによって、前記複数の利得係数を計算するように構成されている請求項２１ないし２９のいずれか１項記載のビット割り当てのための装置。
【請求項３１】
有体的な機能を読み出す機械に、請求項１ないし１０のいずれか１項記載の方法を実行させる前記機能を有するコンピュータ読取り可能記憶媒体。
【発明の詳細な説明】
【合衆国法典第３５部第１１９条に基づく優先権の主張】
【０００１】
特許に対する本出願は、２０１０年７月３０日に出願され、“オーディオ信号の効率的な変換領域コーディングのためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／３６９，６６２号に対する優先権を主張する。特許に対する本出願は、２０１０年７月３１日に出願され、“ダイナミックなビット割り当てのためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／３６９，７０５号に対する優先権を主張する。特許に対する本出願は、２０１０年８月１日に出願され、“マルチステージ形状ベクトル量子化のためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／３６９，７５１号に対する優先権を主張する。特許に対する本出願は、２０１０年８月１７日に出願され、“汎用型オーディオコーディングのためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／３７４，５６５号に対する優先権を主張する。特許に対する本出願は、２０１０年９月１７日に出願され、“汎用型オーディオコーディングのためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／３８４，２７３号に対する優先権を主張する。特許に対する本出願は、２０１１年３月３１日に出願され、“ダイナミックなビット割り当てのためのシステム、方法、装置およびコンピュータ読取り可能媒体”と題する仮出願第６１／４７０，４３８号に対する優先権を主張する。
【分野】
【０００２】
本開示は、オーディオ信号処理の分野に関する。
【背景】
【０００３】
修正離散コサイン変換（ＭＤＣＴ）に基づくコーディングスキームが、通常、一般化されたオーディオ信号をコード化するために使用されている。一般化されたオーディオ信号は、スピーチ、および／または、音楽のような非スピーチコンテンツを含んでもよい。ＭＤＣＴコーディングを使用する既存のオーディオコーデックの例は、ＭＰＥＧ−１オーディオレイヤ３（ＭＰ３）、ドルビーデジタル（登録商標）（ドルビーラボラトリーズ、英国、ロンドン；ＡＣ−３とも呼ばれ、ＡＴＳＣ Ａ／５２として標準化されている）、ボルビス（ザイフォドットオルグファンデーション、マサチューセッツ、サマヴィル）、ウィンドウズ（登録商標）メディアオーディオ（ＷＭＡ、マイクロソフト株式会社、ワシントン、レドモンド）、Ａｄａｐｔｉｖｅ Ｔｒａｎｓｆｏｒｍ Ａｃｏｕｓｔｉｃ Ｃｏｄｉｎｇ（ＡＴＲＡＣ、ソニー株式会社、日本、東京）およびＡｄｖａｎｃｅｄ Ａｕｄｉｏ Ｃｏｄｉｎｇ（ＡＡＣ、ＩＳＯ／ＩＥＣ １４４９６−３において最も最近標準化されている：２００９）を含む。ＭＤＣＴコーディングはまた、Ｅｎｈａｎｃｅｄ Ｖａｒｉａｂｌｅ Ｒａｔｅ Ｃｏｄｅｃ（ＥＶＲＣ、第３世代パートナーシッププロジェクト２（３ＧＰＰ２）文書Ｃ．Ｓ００１４−Ｄ ｖ２．０ ２０１０年１月２５日において標準化されている）のような、いくつかの電気通信標準規格の構成要素である。Ｇ．７１８コーデック（“フレーム誤りにロバストな８−３２ｋビット／秒の狭帯域／広帯域エンベデッド可変ビットレート音声／オーディオコーディング”、電気通信標準化部門（ＩＴＵ−Ｔ）、スイス、ジュネーブ、２００８年６月、２００８年１１月および２００９年８月に訂正され、２００９年３月および２０１０年３月に修正されている）は、ＭＤＣＴコーディングを使用するマルチレイヤコーデックの１つの例である。
【概要】
【０００４】
一般的な構成にしたがった、ビット割り当ての方法は、複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算することを含む。この方法はまた、複数のベクトルのうちのそれぞれに対して、利得係数に基づいている対応するビット割り当てを計算することを含む。この方法はまた、複数のベクトルのうちの少なくとも１つに対して、対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定することを含む。この方法はまた、前記決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、対応するビット割り当てを変更することとを含む。具体的な特徴を有し、特徴を読み取る機械に、このような方法を実行させるコンピュータ読取り可能記憶媒体（例えば、非一時的な媒体）もまた開示される。
【０００５】
一般的な構成にしたがった、ビット割り当てのための装置は、複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算する手段と、複数のベクトルのうちのそれぞれに対して、利得係数に基づいている対応するビット割り当てを計算する手段とを備える。この装置はまた、複数のベクトルのうちの少なくとも１つに対して、対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定する手段と、前記決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、対応するビット割り当てを変更する手段とを備える。
【０００６】
別の一般的な構成にしたがった、ビット割り当てのための装置は、複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算するように構成されている利得係数計算器と、複数のベクトルのうちのそれぞれに対して、利得係数に基づいている対応するビット割り当てを計算するように構成されているビット割り当て計算器とを備える。この装置はまた、複数のベクトルのうちの少なくとも１つに対して、対応するビット割り当てが、最小の割り当て値よりも大きくないことを決定するように構成されている比較器と、決定に応答して、前記少なくとも１つのベクトルのそれぞれに対して、対応するビット割り当てを変更するように構成されている割り当て調整モジュールとを備える。
【図面の簡単な説明】
【０００７】
【図１Ａ】図１Ａは、一般的な構成にしたがった、方法Ｍ１００に対するフローチャートを示す。
【図１Ｂ】図１Ｂは、タスクＴ２００の実現Ｔ２１０に対するフローチャートを示す。
【図１Ｃ】図１Ｃは、タスクＴ２１０の実現Ｔ２２０に対するフローチャートを示す。
【図１Ｄ】図１Ｄは、タスクＴ２２０の実現Ｔ２３０に対するフローチャートを示す。
【図２】図２は、ローバンドオーディオ信号における、選択されたサブバンドの例を示す。
【図３】図３は、ハイバンドオーディオ信号における、選択されたサブバンドおよび残差成分の例を示す。
【図４Ａ】図４Ａは、参照フレームおよびターゲットフレームにおけるサブバンドの位置間の関係の例を示す。
【図４Ｂ】図４Ｂは、タスクＴ２３０の実現Ｔ２４０に対するフローチャートを示す。
【図５Ａ】図５Ａは、利得−形状ベクトルの量子化構造の例を示す。
【図５Ｂ】図５Ｂは、利得−形状ベクトルの量子化構造の例を示す。
【図５Ｃ】図５Ｃは、利得−形状ベクトルの量子化構造の例を示す。
【図５Ｄ】図５Ｄは、利得−形状ベクトルの量子化構造の例を示す。
【図６Ａ】図６Ａは、タスクＴ２３０の実現Ｔ２５０に対するフローチャートを示す。
【図６Ｂ】図６Ｂは、タスクＴ２５０の実現Ｔ２５５に対するフローチャートを示す。
【図７Ａ】図７Ａは、タスクＴ２５０の実現Ｔ２６０のフローチャートを示す。
【図７Ｂ】図７Ｂは、ダイナミックな割り当てタスクＴ２６０の実現Ｔ２６５に対するフローチャートを示す。
【図８Ａ】図８Ａは、ダイナミックなビット割り当てタスクＴ２３０の実現ＴＡ２７０のフローチャートを示す。
【図８Ｂ】図８Ｂは、ダイナミックなビット割り当てタスクＴ２２０の実現Ｔ２８０のブロックダイヤグラムを示す。
【図８Ｃ】図８Ｃは、方法Ｍ１００の実現Ｍ１１０のフローチャートを示す。
【図９】図９は、パルスコーディングの例を示す。
【図１０Ａ】図１０Ａは、タスクＴ２８０の実現Ｔ２９０のブロックダイヤグラムを示す。
【図１０Ｂ】図１０Ｂは、ダイナミックな割り当てタスクＴ２９０の実現Ｔ２９５に対するフローチャートを示す。
【図１１Ａ】図１１Ａは、ダイナミックな割り当てタスクＴ２２０の実現Ｔ２２５に対するフローチャートを示す。
【図１１Ｂ】図１１Ｂは、１組のソートされたスペクトル係数におけるサブセットの例を示す。
【図１２Ａ】図１２Ａは、一般的な構成にしたがった、ビット割り当てに対する装置ＭＦ１００のブロックダイヤグラムを示す。
【図１２Ｂ】図１２Ｂは、一般的な構成にしたがった、ビット割り当てに対する装置Ａ１００のブロックダイヤグラムを示す。
【図１３Ａ】図１３Ａは、一般的な構成にしたがった、エンコーダＥ１００のブロックダイヤグラムを示す。
【図１３Ｂ】図１３Ｂは、エンコーダＥ１００の実現Ｅ１１０のブロックダイヤグラムを示す。
【図１３Ｃ】図１３Ｃは、エンコーダＥ１１０の実現Ｅ１２０のブロックダイヤグラムを示す。
【図１３Ｄ】図１３Ｄは、エンコーダＥ１００に対応するデコーダＤ１００のブロックダイヤグラムを示す。
【図１３Ｅ】図１３Ｅは、デコーダＤ１００の、エンコーダＥ１１０に対応する実現Ｄ１１０のブロックダイヤグラムを示す。
【図１３Ｆ】図１３Ｆは、デコーダＤ１００の、エンコーダＥ１２０に対応する実現Ｄ１２０のブロックダイヤグラムを示す。
【図１４】図１４ＡないしＥは、エンコーダＥ１００に対する適用の範囲を示す。
【図１５Ａ】図１５Ａは、信号分類の方法ＭＺ１００のブロックダイヤグラムを示す。
【図１５Ｂ】図１５Ｂは、通信デバイスＤ１０のブロックダイヤグラムを示す。
【図１６】図１６は、ハンドセットＨ１００の正面図、背面図および側面図を示す。
【図１７】図１７は、マルチバンドコーダの例のブロックダイヤグラムを示す。
【図１８】図１８は、マルチバンドコーディングに対する方法の例のフローチャートを示す。
【図１９】図１９は、エンコーダＥ２００のブロックダイヤグラムを示す。
【図２０】図２０は、回転行列の例を示す。
【詳細な説明】
【０００８】
エンコーダからデコーダにサイド情報の明示的な送信をせずにスキームを実行してもよいように、エンコーダおよびデコーダの両方に知られているコード化された利得パラメータに基づくダイナミックなビット割り当てスキームを使用することが望ましいかもしれない。
【０００９】
その文脈によって明白に限定されない限り、用語“信号”は、ワイヤ、バスまたは他の送信媒体上で表現されるような記憶場所の状態（または記憶場所の組）を含む、その通常の意味のいずれかを示すように、ここでは使用される。その文脈によって明白に限定されない限り、用語“発生させること”は、コンピュータで計算すること、または、そうでなければ、生成させることのような、その通常の意味のいずれかを示すように、ここでは使用される。その文脈によって明白に限定されない限り、用語“計算すること”は、コンピュータで計算すること、評価すること、平滑化すること、および／または、複数の値から選択することのような、その通常の意味のいずれかを示すように、ここでは使用される。その文脈によって明白に限定されない限り、用語“取得すること”は、計算すること、導出すること、（例えば、外部デバイスから）受信すること、および／または、（例えば、記憶素子のアレイから）検索することのような、その通常の意味のいずれかを示すように使用される。その文脈によって明白に限定されない限り、用語“選択すること”は、識別すること、示すこと、適用すること、ならびに／あるいは、２以上の組のうちの、少なくとも１つ、および、すべてよりも少ないものを使用することのような、その通常の意味のいずれかを示すように使用される。用語“含む”が、本説明および特許請求の範囲中で使用されるとき、それは、他の要素または動作を除外しない。用語（“ＡはＢに基づく”のように）“基づく”は、（ｉ）“〜から導出される”（例えば、“ＢはＡの先行モデルである”）、（ｉｉ）“少なくとも基づく”（例えば、“Ａは少なくともＢに基づく”）、および、特定の文脈において適切な場合、（ｉｉｉ）“〜に等しい”（例えば、“ＡはＢに等しい”）、のケースを含む、その通常の意味のいずれかを示すように使用される。同様に、用語“〜に応答して”は、“少なくとも〜に応答して”を含む、その通常の意味のいずれかを示すように使用される。
【００１０】
特に示されていない限り、用語“連続”は、２以上のアイテムのシーケンスを示すように使用される。用語“対数”は、底が１０の対数を示すように使用されるが、他の底への、そのような演算の拡張は、本開示の範囲内である。用語“周波数成分”は、（例えば、高速フーリエ変換によって生成されるような）信号の周波数領域表現のサンプルまたは信号のサブバンド（例えば、バーク尺度またはメル尺度のサブバンド）のような、信号の１組の周波数または周波数帯域のうちの１つを示すように使用される。
【００１１】
特に示されていない限り、特定の特徴を有する装置の動作の何らかの開示はまた、類似の特徴を有する方法を開示するように明白に向けられており（逆も成り立つ）、特定の構成にしたがった装置の動作の何らかの開示はまた、類似の構成にしたがった方法を開示するように明白に向けられている（逆も成り立つ）。用語“構成”は、その特定の文脈によって示されるような方法、装置および／またはシステムへの参照において使用され得る。特定の文脈によって示されていない限り、用語“方法”、“プロセス”、“手続き”および“技術”は、包括的に、および、区別なく使用される。複数のサブタスクを有する“タスク”もまた方法である。用語“装置”および“デバイス”もまた、特定の文脈によって示されていない限り、包括的に、および、区別なく使用される。用語“エレメント”および“モジュール”は、通常、より大きな構成の一部を示すように使用される。その文脈によって明白に限定されない限り、用語“システム”は、“共通の目的を果たすように相互作用するエレメントのグループ”を含む、その通常の意味のいずれかを示すように、ここでは使用される。文書の一部の参照による何らかの組み込みは、その部分内で参照される用語または変数の定義を組み込むことが理解され、そのような定義は、文書中の他の場所だけでなく、組み込まれている部分において参照される図においても現れる。
【００１２】
ここで記述するシステム、方法および装置は、一般に、周波数領域におけるオーディオ信号の表現をコード化するのに適用可能である。そのような表現の典型的な例は、変換領域における一連の変換係数である。適切な変換の例は、シヌソイドユニタリ変換のような、離散直交変換を含む。適切なシヌソイドユニタリ変換の例は、離散三角変換を含み、離散三角変換は、限定ではないが、離散コサイン変換（ＤＣＴ）、離散サイン変換（ＤＳＴ）および離散フーリエ変換（ＤＦＴ）を含む。適切な変換の他の例は、そのような変換の重複バージョンを含む。適切な変換の特定の例は、先に紹介した修正ＤＣＴ（ＭＤＣＴ）である。
【００１３】
この開示全体を通して、オーディオ周波数範囲の“ローバンド”および“ハイバンド”（言い換えると、“上位バンド”）に対して、ならびに、ゼロないし４キロヘルツ（ｋＨｚ）のローバンドおよび３．５ないし７ｋＨｚのハイバンドの特定の例に対して、参照が成されている。ここで開示した原理は、そのような限定が明確に述べられていないかぎり、決してこの特定の例に限定されないことが特に注目される。エンコーディング、デコーディング、割り当て、量子化および／または他の処理に関する、これらの原理の適用が、特に熟慮され、ここで開示される周波数範囲の（再度、限定ではない）他の例は、０、２５、５０、１００、１５０、２００Ｈｚのいずれかにおける下限と３０００、３５００、４０００、４５００Ｈｚのいずれかにおける上限とを有するローバンド、および、３０００、３５００、４０００、４５００、５０００Ｈｚのいずれかにおける下限と６０００、６５００、７０００、７５００、８０００、８５００、９０００Ｈｚのいずれかにおける上限とを有するハイバンドを含む。３０００、３５００、４０００、４５００、５０００、５５００、６０００、６５００、７０００、７５００、８０００、８５００、９０００Ｈｚのいずれかにおける下限と、１０、１０．５、１１、１１．５、１２、１２．５、１３、１３．５、１４、１４．５、１５、１５．５、１６ｋＨｚのいずれかにおける上限とを有するハイバンドへの（再度、限定ではない）そのような原理の適用もまた、特に熟慮され、ここに開示されている。ハイバンド信号は通常、（例えば、再サンプリングおよび／またはデシメーションによって）コーディングプロセスのより早い段階でより低いサンプリングレートに変換されるが、それはハイバンド信号のままであり、それが搬送する情報は、ハイバンドオーディオ周波数範囲を表し続けることが、特に注目される。
【００１４】
ここで記述するダイナミックなビット割り当てを含むコーディングスキームは、（例えば、スピーチを含む）何らかのオーディオ信号をコード化するのに適用されてもよい。代わりに、非スピーチオーディオ（例えば、音楽）に対してのみ、そのようなコーディングスキームを使用するのが望ましいかもしれない。そのようなケースでは、コーディングスキームは、オーディオ信号の各フレームのコンテンツのタイプを決定して、適切なコーディングスキームを選択する分類スキームとともに使用されてもよい。
【００１５】
ここで記述するダイナミックなビット割り当てを含むコーディングスキームは、主要なコーデックとして、あるいは、マルチレイヤまたはマルチステージコーデックにおけるレイヤまたはステージとして使用されてもよい。そのような１つの例において、そのようなコーディングスキームは、オーディオ信号の周波数コンテンツの一部（例えば、ローバンドまたはハイバンド）をコード化するために使用され、別のコーディングスキームが、信号の周波数コンテンツの別の部分をコード化するために使用される。そのような別の例において、そのようなコーディングスキームは、別のコーディングレイヤの残差（すなわち、オリジナル信号およびエンコードされた信号の間の誤差）をコード化するために使用される。
【００１６】
オーディオ信号の低ビットレートコーディングは、オーディオ信号フレームのコンテンツをコード化するのに利用可能なビットの最適な利用を要求することが多い。オーディオ信号フレームのコンテンツは、信号のＰＣＭ（パルスコード変調）サンプルまたは信号の変換領域表現のいずれかであってもよい。各フレームのエンコーディングは、通常、フレームを複数のサブバンドに分割すること（すなわち、ベクトルとしてのフレームを複数のサブベクトルに分割すること）、ビット割り当てを各サブベクトルに割り当てること、各サブベクトルを、対応する、割り当てられた数のビットにエンコードすることを含む。通常のオーディオコーディングの適用において、例えば、各フレームに対する多数の（例えば、１０、２０、３０または４０の）異なるサブバンドベクトルに関してベクトル量子化を実行することが望ましいかもしれない。フレームサイズの例は、（限定ではない）１００、１２０、１４０、１６０および１８０の値（例えば、変換係数）を含み、サブバンドの長さの例は、（限定ではない）５、６、７、８、９、１０、１１、１２および１６を含む。
【００１７】
ビット割り当てへの１つのアプローチは、サブベクトルの間で一様に総ビット割り当てを分配することである。例えば、各サブベクトルに割り当てられるビットの数は、フレームごとに固定されていてもよい。このケースでは、デコーダは、ビット割り当てスキームの知識とともにすでに構成されており、それにより、エンコーダがこの情報を送信する必要がない。しかしながら、ビットの最適な利用の目標は、オーディオ信号フレームのさまざまな構成要素が、それらの知覚の重要性に関連する（例えば、比例する）ビット数によりコード化されるのを保証することであるかもしれない。入力サブバンドベクトルのうちのいくつかは、あまり重要ではないかもしれず（例えば、ほとんどエネルギーを取り込まないかもしれない）、それにより、これらのベクトルをエンコード化するのにより少ないビットを、および、より重要なサブバンドのベクトルをエンコードするのにより多くのビットを割り当てることによって、より良好な結果が取得され得る。
【００１８】
固定された割り当てスキームは、サブベクトルの相対的な知覚の重要性における変化に対処しないことから、代わりに、ダイナミックな割り当てスキームを使用することが望ましく、それにより、各サブベクトルに割り当てられるビットの数は、フレームごとに変化してもよい。このケースでは、各フレームに対して使用される特定のビット割り当てスキームに関する情報は、フレームがデコードされるようにデコーダに提供される。
【００１９】
ほとんどのオーディオエンコーダは、サイド情報として、そのようなビット割り当て情報をデコーダに明示的に提供する。例えば、ＡＡＣのようなオーディオコーディングアルゴリズムは、通常、ビット割り当て情報を伝達するために、サイド情報またはハフマンコーディングのようなエントロピーコーディングスキームを使用する。もっぱらビット割り当てを伝達する情報の使用は、このサイド情報が信号をコード化するのに直接使用されないとき、非効率的である。ハフマンコーディングまたは算術コーディングのような可変長コードワードは、何らかの利益を提供するかもしれないが、コーディングの効率を低減させる長いコードワードに出会うかもしれない。
【００２０】
代わりに、エンコーダおよびデコーダの両方に知られているコード化された利得パラメータに基づいているダイナミックなビット割り当てスキームを使用し、それにより、エンコーダからデコーダにサイド情報の明示的な送信なくスキームを実行することが望ましいかもしれない。そのような効率は、セルラ電話機のような、低ビットレートのアプリケーションに対して特に重要である。１つの例において、そのようなダイナミックな割り当ては、関係する利得の値にしたがって、形状ベクトル量子化に対してビットを割り当てることによって、サイド情報なく実現されてもよい。
【００２１】
図１Ａは、分割タスクＴ１００およびビット割り当てタスクＴ２００を含む、一般的な構成にしたがった方法Ｍ１００のフローチャートを示す。タスクＴ１００は、エンコードされることになるベクトル（例えば、フレームの複数の変換領域係数）を受け取り、それを１組のサブベクトルに分割する。サブベクトルは、オーバーラップする必要はなく、さらに、互いに分離していてもよい（ここで記述する特定の例において、サブベクトルは、オーバーラップしない）。この分割は、予め定められていてもよく（例えば、ベクトルのコンテンツから独立している）、それにより、各入力ベクトルは、同じ方法で分割される。予め定められている分割の１つの例は、１００の要素の各入力ベクトルを、それぞれの長さ（２５、３５、４０）のサブベクトルに分割する。予め定められている分割の別の例は、１４０の要素の入力ベクトルを、長さ７の、１組の２０個のサブベクトルに分割する。予め定められている分割のさらなる例は、２８０の要素の入力ベクトルを、長さ７の、１組の４０個のサブベクトルに分割する。
【００２２】
代わりに、この分割は、可変であってもよく、それにより、入力ベクトルは、（例えば、何らかの知覚基準にしたがって）１つのフレームから次のフレームに異なって分割される。例えば、信号の高調波成分の、検出およびターゲットとされるコーディングにより、オーディオ信号の効率的な変換領域コーディングを実行するのが望ましいかもしれない。図２は、大きさ対周波数のグラフであり、このグラフにおいて、ローバンドの線形予測コーディング（ＬＰＣ）残差信号の調和的に間隔を置いたピークに対応する、長さ７の８個の選択されたサブバンドが、周波数軸の近くのバーによって示されている。図３は、選択されたサブバンドの間と外側に横たわる残差成分を示すハイバンドＬＰＣ残差信号に対する類似の例を示す。このようなケースでは、１組のサブバンドと全残差との間でダイナミックな割り当てを実行すること、１組のサブバンド間でダイナミックな割り当てを実行すること、および／または、残差成分の間でダイナミックな割り当てを実行することが望ましいかもしれない。ハーモニックモデリングおよびハーモニックモードコーディングの追加の記述は、本出願が優先権を主張する先にリストにした出願において見出される。
【００２３】
可変分割スキームの別の例は、前のフレームであってもよい別のフレーム（参照フレームとも呼ばれる）のコード化バージョンにおける知覚的に重要なサブバンドの位置に基づいて、現在のフレーム（ターゲットフレームとも呼ばれる）における１組の知覚的に重要なサブバンドを識別する。図４Ａは、そのようなコーディングスキーム（依存モードコーディングとも呼ばれる）におけるサブバンド選択動作の例を示す。依存モードコーディングの追加の記述は、本出願が優先権を主張する先にリストにした出願において見出される。
【００２４】
残差信号の別の例は、１組の選択されたサブバンドをコード化し、オリジナル信号から、コード化された組を減算することによって取得される。このケースでは、結果として生じる残差を（例えば、予め定められている分割にしたがって）１組のサブベクトルに分割して、サブベクトル間でダイナミックな割り当てを実行することが望ましいかもしれない。
【００２５】
選択されたサブバンドは、ベクトル量子化スキーム（例えば、利得−形状ベクトル量子化スキーム）を使用してコード化してもよく、残差信号は、階乗パルスコーディング（ＦＰＣ）スキームまたは組合せパルスコーディングスキームを使用してコード化してもよい。
【００２６】
複数のベクトル間で割り当てられることになるビットの総数から、タスクＴ２００は、さまざまなベクトルのそれぞれに、ビット割り当てを割り当てる。この割り当ては、ダイナミックであってもよく、それにより、各ベクトルに割り当てられるビット数は、フレームごとに変化してもよい。
【００２７】
方法Ｍ１００は、タスクＴ２００によって生成されるビット割り当てを、記憶または送信のためにサブベクトルをエンコードする動作にパスするように構成されていてもよい。そのような動作の１つのタイプは、ベクトル量子化（ＶＱ）スキームであり、ＶＱスキームは、ベクトルを（デコーダにも知られている）１つ以上のコードブックのそれぞれにおけるエントリに整合させ、ベクトルを表すためにこれらのエントリのインデックスを使用することによって、ベクトルをエンコードする。コードブック中のエントリの最大数を決定する、コードブックインデックスの長さは、アプリケーションに適切であると考えられる任意の整数であってもよい。デコーダにおいて実行されるような方法Ｍ１００の実現は、タスクＴ２００によって生成されるビット割り当てを、エンコードされたオーディオ信号の再生のためにサブベクトルをデコードする動作にパスするように構成されていてもよい。
【００２８】
複数のベクトルのうちの２つ以上が異なる長さを有するケースに対して、タスクＴ２００は、ベクトルの次元の数（すなわち、長さ）に基づいて、各ベクトルｍ（ここで、ｍ＝１，２，．．．，Ｍ）に対してビット割り当てを計算するように実現されてもよい。このケースにおいて、タスクＴ２００は、Ｂ×（Ｄm／Ｄh）として、各ベクトルｍに対してビット割り当てＢmを計算するように構成されていてもよく、ここでＢは、割り当てられることになるビットの総数であり、Ｄmは、ベクトルｍの次元であり、Ｄhは、すべてのベクトルの次元の合計である。いくつかのケースでは、タスクＴ１００は、１組のモデルパラメータに基づいて、１組のサブバンドのそれぞれに対する位置を決定することによって、ベクトルの次元を決定するように実現されてもよい。ハーモニックモードコーディングに対して、モデルパラメータは、（現在のフレーム内の、または別のバンドのフレーム内の）基本周波数Ｆ０と、隣接するサブバンドのピーク間のハーモニック間隔ｄとを含んでいてもよい。ハーモニックモデルに対するパラメータはまた、サブバンドのうちの１つ以上のそれぞれに対する、対応するジッター値を含んでいてもよい。依存モードコーディングに対して、モデルパラメータは、サブバンドのうちの１つ以上のそれぞれに対して、コード化された前のフレームの対応する重要なバンドの位置を基準として、ジッター値を含んでいてもよい。フレームの残差成分の位置および次元は、次に、サブバンドの位置に基づいて決定されてもよい。サブバンド間にある、および／または、サブバンドの外側にあるスペクトルの部分を含んでいてもよい残差成分は、１つ以上のより大きなベクトルに連結されてもよい。
【００２９】
図１Ｂは、サブタスクＴＡ２００およびＴＡ３００を含む、ダイナミックなビット割り当てタスクＴ２００の実現Ｔ２１０のフローチャートを示す。タスクＴＡ２００は、ベクトルに対してビット割り当てを計算し、タスクＴＡ３００は、割り当てを、最小の割り当て値と比較する。タスクＴＡ３００は、各割り当てを、同じ最小の割り当て値と比較するように実現されてもよい。代わりに、タスクＴＡ３００は、各割り当てを、複数のベクトル中の２以上に対して異なっていてもよい最小の割り当て値と比較するように実現されてもよい。
【００３０】
タスクＴＡ３００は、（例えば、割り当てを最小の割り当て値に変更することによって）最小の割り当て値よりも小さいビット割り当てを増加させるように実現されてもよい。代わりに、タスクＴＡ３００は、最小の割り当て値よりも小さい（代わりに、最小の割り当て値よりも大きくない）ビット割り当てをゼロに低減させるように実現されてもよい。
【００３１】
図１Ｃは、割り当てタスクＴＡ２００のサブタスクＴＡ１００および実現ＴＡ２１０を含む、ダイナミックなビット割り当てタスクＴ２００の実現Ｔ２２０のフローチャートを示す。タスクＴＡ１００は、複数のベクトルのそれぞれに対する対応する利得係数を計算し、タスクＴＡ２１０は、対応する利得係数に基づいて、各ベクトルに対してビット割り当てを計算する。通常、エンコーダが、デコーダと同じ利得係数を使用して、ビット割り当てを計算するのが望ましい。例えば、デコーダにおいて実行される利得係数計算タスクＴＡ１００が、エンコーダにおいて実行されるタスクＴＡ１００と同じ結果を生成させるのが望ましいかもしれない。その結果、エンコーダにおいて実行されるタスクＴＡ１００が、利得係数を逆量子化することを含むことが望ましいかもしれない。
【００３２】
利得−形状ベクトル量子化は、利得係数によって表されるベクトルエネルギーを、形状によって表されるベクトル方向から切り離すことによって、（例えば、サウンドまたは画像データを表す）信号ベクトルを効率的にエンコードするために使用してもよいコーディング技術である。このような技術は、スピーチおよび／または音楽のようなオーディオ信号のコーディングのような、信号のダイナミックレンジが大きいアプリケーションに対して特に適していてもよい。
【００３３】
利得−形状ベクトル量子化器（ＧＳＶＱ）は、別々に、入力ベクトルｘの形状および利得をエンコードする。図５Ａは、利得−形状ベクトル量子化動作の例を示す。この例において、形状量子化器ＳＱ１００は、入力ベクトルｘに対して、コードブック中の最も近いベクトル（例えば、２乗平均誤差の意味において最も近い）としてコードブックから量子化された形状ベクトルＳ^を選択して、インデックスをコードブック中のベクトルＳ^に出力することによって、ベクトル量子化（ＶＱ）スキームを実行するように構成されている。別の例において、形状量子化器ＳＱ１００は、入力ベクトルｘに最も近い（例えば、２乗平均誤差の意味において最も近い）、単位パルスの単位ノルムパターンを選択し、コードブックインデックスをそのパターンに出力することによって、パルスコーディング量子化スキームを実行するように構成されている。ノルム計算器ＮＣ１０は、入力ベクトルｘのノルム||ｘ||を計算するように構成されており、利得量子化器ＧＱ１０は、ノルムを量子化して、量子化された利得係数を生成させるように構成されている。利得量子化器ＧＱ１０は、ベクトル量子化に対して、スカラーとしてノルムを量子化するか、または、ノルムを他の利得（例えば、複数のベクトルのうちの他のベクトルからのノルム）と結合して利得ベクトルにするように構成されていてもよい。
【００３４】
形状量子化器ＳＱ１００は通常、コードブックベクトルが単位ノルムを有する（すなわち、単位超球上のすべての点である）制約を伴うベクトル量子化器として実現される。この制約は、コードブックサーチ（例えば、２乗平均誤差の計算から内積演算まで）を簡単にする。例えば、形状量子化器ＳＱ１００は、ａｒｇ ｍａｘk（ｘTＳk）のような演算にしたがって、Ｋ個の単位ノルムベクトルＳk、ｋ＝０，１，．．．，Ｋ−１のコードブックの中からベクトルＳ^を選択するように構成されていてもよい。このようなサーチは、しらみ潰しであってもよく、または、最適化されてもよい。例えば、ベクトルは、特定のサーチ戦略をサポートするようにコードブック内に配置されていてもよい。
【００３５】
いくつかのケースでは、（例えば、特定のコードブックサーチ戦略を可能にするために）形状量子化器ＳＱ１００への入力を単位ノルムであるようにさせることが望ましいかもしれない。図５Ｂは、利得−形状ベクトル量子化動作の、そのような例を示す。この例では、ノーマライザＮＬ１０が、入力ベクトルｘをノーマライズして、ベクトルノルム||ｘ||および単位ノルム形状ベクトルＳ＝ｘ／||ｘ||をもたらすように構成されており、形状量子化器ＳＱ１００は、その入力として、形状ベクトルＳを受け取るように構成されている。そのようなケースでは、形状量子化器ＳＱ１００は、ａｒｇ ｍａｘk（ＳTＳk）のような演算にしたがって、Ｋ個の単位ノルムベクトルＳk、ｋ＝０，１，．．．，Ｋ−１のコードブックの中からベクトルＳ^を選択するように構成されていてもよい。
【００３６】
代わりに、形状量子化器ＳＱ１００は、単位パルスのパターンのコードブックの中からベクトルＳ^を選択するように構成されていてもよい。このケースでは、量子化器ＳＱ１００は、ノーマライズされたときに、形状ベクトルＳに最も近い（例えば、２乗平均誤差の意味において最も近い）パターンを選択するように構成されていてもよい。そのようなパターンは通常、パルスの数およびパターン中の占有されている各位置に対する符号とを示すコードブックインデックスとしてエンコードされる。パターンを選択することは、入力ベクトルをスケーリングすることと、それをパターンに整合させることとを含んでいてもよく、量子化されたベクトルＳ^は、選択されたパターンをノーマライズすることによって生成される。このようなパターンをエンコードするために形状量子化器ＳＱ１００によって実行してもよいパルスコーディングスキームの例は、階乗パルスコーディングおよび組合せパルスコーディングを含む。
【００３７】
利得量子化器ＧＱ１０は、ベクトル量子化に対して、利得のスカラー量子化を実行するか、または、利得を他の利得と結合して利得ベクトルにするように構成されていてもよい。図５Ａおよび５Ｂの例において、利得量子化器ＧＱ１０は、ノルム||ｘ||（“開ループ利得”とも呼ばれる）として入力ベクトルｘの利得を受け取って量子化するように構成されている。他のケースでは、利得は、オリジナルの形状との、量子化された形状ベクトルＳ^の相関に基づいている。このような利得は、“閉ループ利得”と呼ばれる。図５Ｃは、内積計算器ＩＰ１０と、量子化された形状ベクトルＳ^を生成させる、形状量子化器ＳＱ１００の実現ＳＱ１１０とを含む、そのような利得−形状ベクトル量子化動作の例を示す。計算器ＩＰ１０は、量子化された形状ベクトルＳ^およびオリジナルの入力ベクトルの内積（例えば、Ｓ^Tｘ）を計算するように構成されており、利得量子化器ＧＱ１０は、閉ループ利得として、この積を受け取って量子化するように構成されている。形状量子化器ＳＱ１１０が乏しい形状量子化結果を生成させる限りでは、閉ループ利得は、より低くなるだろう。形状量子化器が形状を正確に量子化する限りでは、閉ループ利得は、より高くなるだろう。形状量子化が完全であるとき、閉ループ利得は、開ループ利得に等しい。図５Ｄは、入力ベクトルｘをノーマライズして、形状量子化器ＳＱ１１０への入力として単位ノルム形状ベクトルＳ＝ｘ／||ｘ||を生成させるように構成されているノーマライザＮＬ２０を含む、類似の利得−形状ベクトル量子化動作の例を示す。
【００３８】
ソースコーディングの意味において、閉ループ利得は、それが開ループ利得とは異なって、特定の形状量子化誤差を考慮に入れることから、より最適であると考えられ得る。しかしながら、この利得値（開ループ利得）に基づいて、アップストリームの処理を実行することは望ましいかもしれない。特に、この利得係数を使用して、形状を量子化する（例えば、形状間でビットをダイナミックに割り当てる）方法を決定することが望ましいかもしれない。利得に関する形状コーディング動作のそのような依存性は、開ループ利得計算を使用すること（例えば、サイド情報を回避すること）を望ましいものにさせる。このケースでは、利得はビット割り当てを制御することから、形状量子化は、エンコーダおよびデコーダの両方において利得に明確に依存し、それにより、形状に依存しない開ループ利得計算が使用される。ここで記述するダイナミックな割り当てスキームと共に使用してもよい、マルチステージ形状量子化構造を含む、利得−形状ベクトル量子化の追加の記述は、本出願が優先権を主張する先にリストにした出願中に見出される。
【００３９】
利得コーディングに対して、予測利得コーディング構造（例えば、差分パルスコード変調スキーム）を変換構造と結合することが望ましいかもしれない。このような１つの例において、１つの平面上のサブバンド利得のベクトル（例えば、複数のベクトルの利得係数のベクトル）が、平均および差分の成分を取得するために変換コーダに入力され、予測コーディング動作は、（例えば、フレームごとに）平均の成分に対してのみ実行される。このような１つの例において、長さＭの入力利得ベクトルの各成分ｍは、１０ｌｏｇ10||ｘm||2のような表現にしたがって計算され、ここで、ｘmは、対応するサブバンドベクトルを表す。ここで記述するダイナミックな割り当てタスクＴ２１０と共にこのような方法を使用することが望ましいかもしれない。平均の成分は、ベクトル間のダイナミックな割り当てに影響を及ぼさないことから、（例えば、前のフレームの消失に起因する）予測コーディング動作の失敗に耐性のある動作を取得するために、ダイナミックな割り当てタスクＴ２１０の実現における利得係数として、（過去に依存せずにコード化される）差分成分を使用してもよい。図２０は、回転行列の１つの例を示し（ここでＳは、列ベクトル［１１１．．．１］T／ｓｑｒｔ（Ｍ）である）、回転行列は、第１の要素において平均の成分と、他の要素において対応する差分成分とを有する回転されたベクトルを取得するために、変換コーダによって、利得係数の長さＭのベクトルに適用されてもよい。このケースでは、平均の成分によって占有される要素に対する差分成分は、平均の成分および他の差分成分から再構築されてもよい。
【００４０】
タスクＴＡ２１０は、割り当てが、ベクトルの次元Ｄmの数およびエネルギーＥmに（例えば、ベクトルの次元当たりのエネルギーに）基づくように、各ベクトルｍに対してビット割り当てＢmを計算するように構成されていてもよい。このような１つの例において、各ベクトルｍに対するビット割り当てＢmは、値Ｂ×（Ｄm／Ｄh）＋ａｌｏｇ2（Ｅm／Ｄm）−ｂＦzに初期化され、ここでＦzは、すべてのベクトルｍに対する合計Σ［（Ｄm／Ｄh）×ｌｏｇ2（Ｅm／Ｄm）］として計算される。係数ａおよびｂのそれぞれに対する例示的な値は、０．５を含む。ベクトルｍが、単位ノルムベクトル（例えば、形状ベクトル）であるケースに対して、タスクＴＡ２１０における各ベクトルのエネルギーＥmは、対応する利得係数である。
【００４１】
図１Ｄは、比較タスクＴＡ３００の実現ＴＡ３１０を含む、ダイナミックな割り当てタスクＴ２００の実現Ｔ２３０に対するフローチャートを示す。タスクＴＡ３１０は、各ベクトルｍに対する現在の割り当てを、ベクトルの次元Ｄmの数に基づいているしきい値Ｔmと比較する。各ベクトルｍに対して、しきい値Ｔmは、次元Ｄmの対応する数の単調非減少関数として計算される。しきい値Ｔmは、例えば、Ｄmおよび値Ｖの最小値として計算される。このような１つの例において、Ｄmの値は、５から３２の範囲にわたり、Ｖの値は１２である。このケースでは、５次元のベクトルは、その現在の割り当てが５ビットより小さい場合、比較に失敗し、一方、２４次元のベクトルは、その現在の割り当てが少なくとも１２ビットである限り、比較をパスするだろう。
【００４２】
タスクＴ２３０は、タスクＴＡ３１０において比較に失敗するベクトルに対する割り当てがゼロにリセットされるように構成されていてもよい。このケースでは、これらのベクトルに以前に割り当てられたビットを使用して、１つ以上の他のベクトルに対する割り当てを増加させてもよい。図４Ｂは、（例えば、割り当てが依然として変更を受けているベクトルに対して、割り当てに対して利用可能な変更されたビット数にしたがって、タスクＴＡ２１０を繰り返すことによって）このような分配を実行するサブタスクＴＡ４００を含む、タスクＴ２３０の実現Ｔ２４０に対するフローチャートを示す。
【００４３】
タスクＴＡ２１０は、知覚基準（例えば、次元当たりのエネルギー）に基づいてダイナミックな割り当てを実行するように実現されてもよいが、方法Ｍ１００の対応する実現は、入力利得値およびベクトル次元だけに依存する結果を生成させるように構成されてもよいことが、特に注目される。その結果、同じ逆量子化された利得値およびベクトル次元の知識を有するデコーダが、対応するエンコーダが何らかのサイド情報を送信することを必要とせずに、方法Ｍ１００を実行して、同じビット割り当てを取得してもよい。
【００４４】
タスクＴＡ２００（例えば、タスクＴＡ２１０）によって計算されたビット割り当てに最大値を課すようにダイナミックなビット割り当てタスクＴ２００を構成することが望ましいかもしれない。図６Ａは、タスクＴＡ２１０において計算されたビット割り当てを最大割り当て値および／または最小割り当て値と比較する、サブタスクＴＡ３００の実現ＴＡ３０５を含む、タスクＴ２３０のこのような実現Ｔ２５０のフローチャートを示す。タスクＴＡ３０５は、各割り当てを同じ最大割り当て値と比較するように実現されてもよい。代わりに、タスクＴＡ３０５は、各割り当てを、複数のベクトルの中の２以上に対して異なっていてもよい最大割り当て値と比較するように実現されてもよい。
【００４５】
タスクＴＡ３０５は、ベクトルのビット割り当てを最大割り当て値Ｂmax（上限とも呼ばれる）に変更し、アクティブな割り当てからベクトルを取り除く（例えば、そのベクトルの割り当てに対するさらなる変更を防ぐ）ことによって、値Ｂmaxを超える割り当てを訂正するように構成されていてもよい。代わりに、または、追加として、タスクＴＡ３０５は、最小割り当て値Ｂmin(下限とも呼ばれる）よりも小さい（代わりに、最小割り当て値Ｂminよりも大きくない）ビット割り当てをゼロに低減させるか、または、ベクトルのビット割り当てを値Ｂminに変更し、アクティブな割り当てからベクトルを取り除く（例えば、そのベクトルの割り当てに対するさらなる変更を防ぐ）ことによって、値Ｂminよりも小さい割り当てを訂正するように構成されていてもよい。パルスコード化されることになるベクトルに対して、パルスの整数に対応するＢminおよび／またはＢmaxの値を使用するか、または、そのようなベクトルに対してタスクＴＡ３０５をスキップすることが望ましいかもしれない。
【００４６】
タスクＴＡ３０５は、制限違反が残らなくなるまで、最悪の現在の過大および／または過少の割り当てを繰り返し訂正するように構成されていてもよい。タスクＴＡ３０５は、すべての制限違反を訂正した後に、追加の動作を実行するように、例えば、ＤhおよびＦzの値を更新し、誤りを訂正するための再割り当てに対処する利用可能なビット数Ｂavを計算し、（例えば、Ｄm×（Ｂav／Ｄh）＋ａｌｏｇ2（Ｅm／Ｄm）−ｂＦzのような表現にしたがって）現在アクティブな割り当て中のベクトルｍに対して割り当てＢmを再計算するように、実現されてもよい。
【００４７】
図６Ｂは、タスクＴＡ３１０の具体例を含む、ダイナミックな割り当てタスクＴ２５０の実現Ｔ２５５に対するフローチャートを示す。
【００４８】
ビット割り当てのそれぞれに整数制約を課すように、ダイナミックな割り当てタスクＴ２００を構成することが望ましいかもしれない。図７Ａは、タスクＴＡ４００と、サブタスクＴＡ５００およびＴＡ６００との具体例を含む、タスクＴ２５０のこのような実現Ｔ２６０のフローチャートを示す。
【００４９】
割り当て解除されたビットが、タスクＴＡ４００において分配された後、タスクＴＡ５００は、各割り当てＢmを、Ｂmよりも大きくない最大整数に打ち切ることによって、ビット割り当てＢmに整数制約を課す。パルスコード化されることになるベクトルに対して、対応する割り当てＢmを、パルスの整数に対応する、Ｂmよりも大きくない最大整数に打ち切ることが望ましいかもしれない。タスクＴＡ５００はまた、利用可能なビット数Ｂavを更新する。更新は、例えば、次の表現にしたがう。
【数１】
2013534328.tif 000003
【００５０】
タスクＴＡ５００はまた、（例えば、タスクＴＡ６００における後の使用のために）各ベクトルに対する打ち切られた残りを記憶するように構成されていてもよい。このような１つの例において、タスクＴＡ５００は、誤差アレイΔＢの対応する要素における、各ベクトルに対する打ち切られた残りを記憶する。
【００５１】
タスクＴＡ６００は、割り当てるために残っている何らかのビットを分配する。１つの例において、残りのビット数Ｂavが、現在アクティブな割り当てにおけるベクトルの数に少なくとも等しい場合、タスクＴＡ６００は、この状態がもはや成り立たなくなるまで、各ベクトルに対する割り当てをインクリメントし、割り当てがＢmaxに達するベクトルをアクティブな割り当てから取り除き、Ｂavを更新する。Ｂavが、現在アクティブな割り当てにおけるベクトルの数よりも小さい場合、タスクＴＡ６００は、タスクＴＡ５００からの最大の打ち切られた残りを有するベクトル（例えば、誤差アレイΔＢ中の最も高い値に対応するベクトル）に、残りのビットを分配する。パルスコード化されることになるベクトルに対して、パルスの整数に対応する値だけまで、それらの割り当てを増やすことが望ましいかもしれない。
【００５２】
図７Ｂは、タスクＴＡ３１０の具体例をさらに含む、ダイナミックな割り当てタスクＴ２６０の実現Ｔ２６５に対するフローチャートを示す。
【００５３】
図８Ａは、刈込み（ｐｒｕｎｉｎｇ）サブタスクＴＡ１５０を含む、ダイナミックなビット割り当てタスクＴ２３０の実現ＴＡ２７０のフローチャートを示す。タスクＴＡ１５０は、計算された利得係数に基づいて、量子化すべきベクトル（例えば、形状ベクトル）の組Ｓvの最初の刈込みを実行する。例えば、タスクＴＡ１５０は、低いエネルギーのベクトルを考慮から取り除くように実現されてもよく、ここで、ベクトルのエネルギーは、２乗開ループ利得として計算されてもよい。タスクＴＡ１５０は、例えば、エネルギーがしきい値Ｔsよりも小さい（代わりに、しきい値Ｔsよりも大きくない）ベクトルを刈込むように構成されていてもよい。１つの特定の例において、Ｔsの値は、３１６である。タスクＴＡ１５０はまた、ベクトル当たりの平均エネルギーが些細なものである（例えば、１００よりも大きくない）場合に、タスクＴ２７０を終了させるように構成されていてもよい。
【００５４】
タスクＴＡ１５０は、何らかの１つのベクトルに割り当てられるビットの最大数Ｂmaxによって除算した、組Ｓvに割り当てられるビットの総数Ｂに基づいて、刈込むベクトルの最大数Ｐmaxを計算するように構成されていてもよい。１つの例において、タスクＴＡ１５０は、Ｍからｃｅｉｌ（Ｂ／Ｂmax）を減算することによって、Ｐmaxを計算する。ここでＭは、Ｓv中のベクトルの数である。非常に多くのベクトルが刈込まれるケースに対して、タスクＴＡ１５０は、ベクトルの最大数を超えて刈込まれなくなるまで、現在刈込まれているベクトルの中で最大のエネルギーを有するベクトルを刈込まないように構成されていてもよい。
【００５５】
図８Ｂは、刈込みタスクＴＡ１５０、整数制約タスクＴＡ５００および分配タスクＴＡ６００を含む、ダイナミックなビット割り当てタスクＴ２２０の実現Ｔ２８０のブロック図を示す。タスクＴ２８０は、入力利得値だけに依存する結果を生成させるように実現されてもよく、それにより、エンコーダおよびデコーダは、何らかのサイド情報を送信することなく、同じビット割り当てを取得するために同じ逆量子化された利得値に対してタスクＴ２８０を実行してもよいことが特に注目される。タスクＴ２８０は、ここで記述したタスクＴＡ３１０および／またはＴＡ４００の具体例を含むように実現されてもよく、さらに、あるいは、代わりに、タスクＴＡ３００は、タスクＴＡ３０５として実現されもよいことも注目される。付録Ａ中でリストにしている擬似コードは、タスクＴ２８０の特定の実現を記述する。
【００５６】
ダイナミックな割り当てスキームをサポートするために、形状量子化器（および対応する形状逆量子化器）を実現して、量子化すべき各形状に対して割り当てられる特定のビット数に応答して、異なるサイズのコードブックの中から（すなわち、異なるインデックスの長さを有するコードブックの中から）選択することが望ましいかもしれない。このような例において、形状量子化器ＳＱ１００（またはＳＱ１１０）は、開ループ利得が低いサブバンドベクトルの形状をエンコードするために、より短いインデックス長を有するコードブックを使用し、開ループ利得が高いサブバンドベクトルの形状をエンコードするために、より長いインデックス長を有するコードブックを使用するように実現されてもよい。このようなダイナミックな割り当てスキームは、ベクトル利得と、固定されているか、またはさもなければ決定論的な形状コードブックインデックス長との間のマッピングを使用するように構成されていてもよく、それにより、対応する逆量子化器は、何らかの追加のサイド情報なく、同じスキームを適用してもよい。
【００５７】
別のタイプのベクトルエンコーディング動作は、パルスコーディングスキーム（例えば、階乗パルスコーディングまたは組合せパルスコーディング）であり、これは、ベクトルを単位パルスのパターンに整合させ、ベクトルを表すためにそのパターンを識別するインデックスを使用することによって、ベクトルをエンコードする。図９は、各次元における値が実線によって示されている３０の次元のベクトルが、点によって示されるパルスのパターン（０，０，−１，−１，＋１，＋２，−１，０，０，＋１，−１，−１，＋１，−１，＋１，−１，−１，＋２，−１，０，０，０，０，−１，＋１，＋１，０，０，０，０）によって表される例を示す。このパルスのパターンは通常、３０ビットよりもはるかに少ないインデックスによって表すことができる。（例えば、残差の）一般的なベクトル量子化に対して、および／または、形状量子化に対して、パルスコーディングスキームを使用することが望ましいかもしれない。
【００５８】
１ビットのインクリメントで量子化ビット割り当てを変更すること（すなわち、１ビットの固定された量子化粒度または“整数粒度”を課すこと）は、通常、任意の整数コードブックベクトル長に適応できる、従来のＶＱにおいて比較的単純である。しかしながら、量子化領域のサイズが、コードブックベクトル長によってではなく、むしろ、所定の入力ベクトル長に対してエンコードされてもよいパルスの最大数によって決定されるという点で、パルスコーディングは、異なるように動作する。このパルスの最大数が１だけ変化するとき、コードブックベクトル長は、１より大きい整数だけ（すなわち、量子化の粒度が可変であるように）変化してもよい。その結果、１ビットのステップでパルスコーディング量子化ビット割り当てを変更すること（すなわち、整数粒度を課すこと）は、有効でない割り当てを結果として生じさせるかもしれない。パルスコーディングスキームに対する量子化粒度は、低ビットレートにおいてより大きく、ビットレートが増価するにつれて整数粒度まで低下する傾向がある。
【００５９】
パルスコーディングインデックスの長さは、対応するパターンにおけるパルスの最大数を決定する。先に注目したように、１だけパルスコーディングインデックスの長さを増加させることは、対応するパターンによって表されてもよいパルスの数を必ずしも増加させないことから、すべての整数インデックス長が有効であるわけではない。その結果、ダイナミックな割り当てタスクＴ２００のパルスコーディングの適用が、（パルスコーディングスキームにおいて必ずしも有効でない）タスクＴ２００によって生成されるビット割り当てをパルス割り当てに翻訳するタスクを含むことが望ましいかもしれない。図８Ｃは、ここのようなタスクＴ３００を含む、方法Ｍ１００の実現Ｍ１１０のフローチャートを示し、Ｍ１１０は、割り当てがパルスコードブックにおける有効なインデックス長であるかどうかを確認し、無効な割り当てよりも小さい、最も大きい有効なインデックス長まで無効な割り当てを低減させるように実現されてもよい。
【００６０】
従来のＶＱおよびパルスコーディングＶＱの両方を使用するケースに対して方法Ｍ１００を使用することも考えられる（例えば、ベクトルの組のうちのいくつかが、従来のＶＱスキームを使用してエンコードされることになり、ベクトルのうちの少なくとも１つが、代わりにパルスコーディングスキームを使用してエンコードされることになる）。
【００６１】
図１０Ａは、それぞれ、タスクＴＡ３００、ＴＡ５００およびＴＡ６００の実現ＴＡ３２０、ＴＡ５１０およびＴＡ６１０を含む、タスクＴ２８０の実現Ｔ２９０のブロックダイヤグラムを示す。この例において、割り当ての下でｍ個のサブバンドのうちの最後のもの（擬似コードにおいて使用されるゼロベースのインデックス付け慣習において、サブバンドは、インデックスｍ−１を有する）は、パルスコーディングスキーム（例えば、階乗パルスコーディングまたは組合せパルスコーディング）を使用してエンコードされ、一方、最初の（ｍ−１）個のサブバンドは、従来のＶＱを使用してエンコードされるように、入力ベクトルは配置される。従来の（例えば、非パルス）ＶＱを使用してエンコードされるサブバンドに対して、ビット割り当ては、上述したような整数制約にしたがって計算される。パルスコード化されるサブバンドに対して、ビット割り当ては、エンコードすべきパルスの最大数に対する整数制約にしたがって計算される。このようなスキームの適用の１つの例において、知覚的に重要なサブバンドの選択された組は、従来のＶＱを使用してエンコードされ、対応する残り（例えば、選択されないサンプルの連結、または、オリジナルのフレームと、選択されコード化されたサブバンドとの間の差異）は、パルスコーディングを使用してエンコードされる。Ｔ２８０は、１つのベクトルのパルスコーディングに関して記述しているが、タスクＴ２８０は、複数のベクトル（例えば、図３中で示したような、残りの複数のサブベクトル）のパルスコーディングに対して実現されてもよいことが理解される。
【００６２】
タスクＴＡ３２０は、タスクＴＡ３００およびＴＡ３０５に関して上述したように、上限および／または下限を最初のビット割り当てに課すように実現されてもよい。このケースでは、パルスコード化されるサブバンドは、過大および／または過少の割り当てに対するテストから除外される。タスクＴＡ３２０はまた、各訂正の後に実行される再割り当てからこのサブバンドを除外するように実現されてもよい。
【００６３】
タスクＴＡ５１０は、各割り当てＢmを、Ｂmよりも大きくない最大整数に打ち切ることによって、従来のＶＱサブバンドに対するビット割り当てＢmに整数制約を課す。タスクＴＡ５１０はまた、エンコードされるパルスの最大数に整数制約を適用することによって、必要に応じて、パルスコード化されるサブバンドに対して最初のビット割り当てＢmを低減させる。タスクＴＡ５１０は、最初のビット割り当てＢmによりエンコードされてもよいパルスの最大数を計算し、パルスコード化されるサブバンドベクトルの長さが与えられると、このようなベクトル長に対してパルスのその最大数をエンコードするのに必要な実際のビット数に、最初のビット割り当てＢmを置き換えることによって、このパルスコーディング整数制約を適用するように構成されていてもよい。
【００６４】
タスクＴＡ５１０はまた、次の表現にしたがって、Ｂavの値を更新する。
【数２】
2013534328.tif 000004
【００６５】
タスクＴＡ５１０は、Ｂavが、少なくとも、パルスコーディング量子化におけるパルスの最大数を１だけ増加させるのに必要なビット数の大きさであるかどうかを決定し、それに応じて、擬似コーディングビット割り当ておよびＢavを調節するように構成されていてもよい。タスクＴＡ５１０は、誤差アレイΔＢの対応する要素における、従来のＶＱを使用してエンコードされる各サブバンドベクトルに対する打ち切られた残りを記憶するように構成されていてもよい。
【００６６】
タスクＴＡ６１０は、残りのＢav個のビットを分配する。タスクＴＡ６１０は、誤差アレイΔＢ中の最も高い値に相当する、従来のＶＱを使用してコード化されるサブバンドベクトルに、残りのビットを分配するように構成されていてもよい。タスクＴＡ６１０はまた、従来のすべてのＶＱビット割り当てがＢmaxであるケースに対して、可能なら、パルスコード化されるサブバンドに対してビット割り当てを増加させるために、何らかの残りのビットを使用するように構成されていてもよい。
【００６７】
付録Ｂ中でリストにしている擬似コードは、ヘルパー関数ｆｉｎｄ＿ｆｐｃ＿ｐｕｌｓｅｓを含む、タスクＴ２８０の特定の実現を記述する。所定のベクトル長およびビット割り当て制限に対して、この関数は、コード化され得るパルスの最大数、パルスのその数をエンコードするのに必要なビット数、パルスの最大数がインクリメントされる場合に必要とされる追加のビット数を戻す。
【００６８】
図１０Ｂは、タスクＴＡ３１０の具体例を含む、ダイナミックな割り当てタスクＴ２９０の実現Ｔ２９５に対するフローチャートを示す。
【００６９】
スパース信号は、いくつかのパラメータ（または係数）が信号の情報のほとんどを含むことから、コード化するのに容易であることが多い。スパース成分および非スパース成分の両方を有する信号をコード化する際に、スパース成分よりも非スパース成分をコード化するのにより多くのビットを割り当てることが望ましいかもしれない。信号の非スパース成分を強調して、これらの成分のコーディング性能を向上させることが望ましいかもしれない。このようなアプローチは、ベクトルによるエネルギーの分布の測度（例えば、スパース性の測度）に焦点を当てて、他と比べて特定の信号クラスに対するコーディング性能を向上させ、これは、非スパース信号が十分に表されることを保証し、全コーディング性能を持ち上げるのを支援するだろう。
【００７０】
より多くのエネルギーを有する信号は、コード化するのにより多くのビットを取る。同様に、あまりスパースでない信号は、同じエネルギーを有するがよりスパースである信号よりも、コード化するのにより多くのビットを取るかもしれない。非常にスパースである信号（例えば、ただの単一のパルス）は通常、コード化するのに非常に容易である一方、非常に分布される信号（例えば、ノイズのような）は通常、２つの信号が同じエネルギーを有する場合でさえ、コード化するのにはるかに困難である。サブバンドの相対的なスパースの、それらのそれぞれの相対的なコーディングの困難性への影響に対処するように、ダイナミックな割り当て動作を構成することが望ましいかもしれない。例えば、このようなダイナミックな割り当て動作は、同じエネルギーを有する、よりスパースである信号に対する割り当てよりも、あまりスパースでない信号に対する割り当てに、より重く重みをかけるように構成されてもよい。
【００７１】
モデルにより誘導されるコーディングに適用される例において、サブバンドにおけるエネルギーの集中は、モデルが入力信号への良好な適合であることを示し、それにより、良好なコーディング品質が、低ビット割り当てから期待される。ここで記述し、ハイバンドに適用されるような、ハーモニックモデルコーディングに対して、このようなケースは、単一の機器音楽信号により生じるかもしれない。このような信号は、“スパース”と呼ばれることもある。代わりに、エネルギーのフラットな分布は、モデルが、信号の構造を同様に捕えないことを示し、それにより、望ましい知覚品質を維持するために、より高いビット割り当てを使用することが望ましいかもしれない。このような信号は、“非スパース”と呼ばれることもある。
【００７２】
図１１Ａは、サブタスクＴＢ１００と、割り当て計算タスクＴＡ２１０の実現ＴＡ２１５とを含む、ダイナミックな割り当てタスクＴ２２０の実現Ｔ２２５に対するフローチャートを示す。複数のベクトルのそれぞれに対して、タスクＴＢ１００は、ベクトル内のエネルギーの分布の測度の対応する値（すなわち、スパース性係数）を計算する。タスクＴＢ１００は、サブバンドの総エネルギーと、サブバンドの係数のサブセットの総エネルギーとの間の関係に基づいて、スパース性係数を計算するように構成されていてもよい。１つのこのような例において、サブセットは、（例えば、図１１Ｂ中で示したような）サブバンドのＬc個の最も大きい（すなわち、最大のエネルギー）係数である。Ｌcに対する値の例は、５、１０、１５および２０（例えば、サブバンドにおける係数の総数の５、７、１０、１５または２０パーセント）を含む。このケースでは、これらの値間の関係［例えば、（サブセットのエネルギー）／（総サブバンドエネルギー）］は、サブバンドのエネルギーが集中または分散されている程度を示すことが理解される。同様に、タスクＴＢ１００は、総サブバンドエネルギーの指定された部分（例えば、５、１０、１２、１５、２０、２５または３０パーセント）であるエネルギー合計に達するのに十分であるサブバンドの最大の係数の数に基づいて、スパース性係数を計算するように構成されていてもよい。タスクＴＢ１００は、サブバンドの係数のエネルギーをソートすることを含んでいてもよい。
【００７３】
タスクＴＡ２１５は、対応する利得係数およびスパース性係数に基づいて、ベクトルに対するビット割り当てを計算する。タスクＴＡ２１５は、より多くのビットが、より少なく集中されているサブバンドに割り当てられるように、サブバンドの対応するスパース性係数の値に比例して、サブバンド間で、利用可能な総ビット割り当てを分割するように実現されてもよい。このような１つの例において、タスクＴＡ２１５は、しきい値ｓLよりも小さいスパース性係数を１にマッピングし、しきい値ｓHよりも大きいスパース性係数を、１よりも小さい値Ｒ（例えば、Ｒ＝０．７）にマッピングし、ｓLからｓHまでのスパース性係数を、１ないしＲの範囲に直線的にマッピングするように構成されている。このようなケースでは、タスクＴＡ２１５は、各ベクトルｍに対するビット割り当てＢmを、値ｖ×Ｂ×（Ｄm／Ｄh）＋ａｌｏｇ2（Ｅm／Ｄm）−ｂＦzとして計算するように実現されてもよく、ここでＦzは、すべてのベクトルｍに対する合計Σ［（Ｄm／Ｄh）×ｌｏｇ2（Ｅm／Ｄm）］として計算される。係数ａおよびｂのそれぞれに対する例示的な値は、０．５を含む。ベクトルｍが、単位ノルムベクトル（例えば、形状ベクトル）であるケースに対して、タスクＴＡ２１０における各ベクトルのエネルギーＥmは、対応する利得係数である。
【００７４】
ここで記述したタスクＴＡ２１０の具体例のいくつかは、（例えば、スパース性係数を計算タスクＴＢ１００の対応する具体例とともに）タスクＴＡ２１５の具体例として実現されてもよいことが、特に注目される。このようなダイナミックな割り当てタスクを実行するエンコーダは、スパース性係数および利得係数の指示を送信するように構成されていてもよく、それにより、デコーダは、これらの値からビット割り当てを導出してもよい。さらなる例において、ここで記述したタスクＴＡ２１０の実現は、ＬＰＣ動作からの情報に基づいて（例えば、ベクトルの次元および／またはスパース性に加えて、あるいは、ベクトルの次元および／またはスパース性の代わりに）、ビット割り当てを計算するように構成されていてもよい。例えば、タスクＴＡ２１０のこのような実現は、スペクトル傾斜（すなわち、第１の反射係数）に比例する重み係数にしたがってビット割り当てを生成させるように構成されていてもよい。このような１つのケースにおいて、低周波数バンドに対応するベクトルに対する割り当ては、フレームに対するスペクトル傾斜に基づいて、より多くまたはより少なく重みづけられてもよい。
【００７５】
代わりに、または、追加として、ここで記述するスパース性係数を使用して、対応するサブバンドに対する変調率の値を選択するか、または、そうでなければ、計算してもよい。変調率を次に使用して、サブバンドの係数を変調（例えば、スケーリングする）してもよい。特定の例において、このようなスパース性に基づく変調スキームは、ハイバンドのエンコーディングに適用される。
【００７６】
開ループ利得コーディングのケースにおいて、開ループ利得を、形状をエンコードするために使用されたビット数（例えば、形状コードブックベクトルへのインデックスの長さ）の関数である係数γと乗算するようにデコーダ（例えば、利得逆量子化器）を構成するのが望ましいかもしれない。非常に少ないビットが形状を量子化するために使用されるとき、形状量子化器は、大きな誤差を生成させ、それにより、ベクトルＳおよびＳ^があまり整合しない確率が高いことから、デコーダにおいて、その誤差を反映する利得を低減させることが望ましいかもしれない。補正係数γは、平均の意味においてのみ、この誤差を表し：それは、コードブック（特に、コードブックにおけるビット数）にのみ依存し、入力ベクトルｘの特定の詳細に依存しない。補正係数γが送信されず、むしろ、どのくらいのビットがベクトルＳ^を量子化するために使用されたかにしたがって、デコーダによって単にテーブルから読み出されるように、コーデックが構成されてもよい。
【００７７】
この補正係数γは、ビットレートに基づいて、ベクトルＳ^が平均して、真の形状Ｓにどれくらい近づくことが予期されるかを示す。ビットレートが上がるにつれて、平均の誤差は減少し、補正係数γの値は１に近づき、ビットレートが非常に低くなるにつれて、ＳおよびベクトルＳ^間の相関（例えば、ベクトルＳ^TおよびＳの内積）は減少し、補正係数γの値もまた減少するだろう。閉ループ利得においても同じ効果（例えば、実際の入力ごとに、適応できる意味に）を取得するのが望ましいかもしれないが、開ループのケースに対して、補正は通常、平均の意味においてのみ利用可能である。
【００７８】
代わりに、開ループ利得および閉ループ利得の間で一種の補間を実行してもよい。このようなアプローチは、単なる長さベースの平均の量子化誤差の代わりに、特定の形状量子化の品質に依存するダイナミックな補正係数で、開ループ利得の表現を補う。このような係数は、量子化された形状と、量子化されていない形状とのドット積に基づいて計算されてもよい。この補正係数の値が非常に少ないビットで送信されるように、この補正係数の値を非常に粗く（例えば、４エントリまたは８エントリのコードブックへのインデックスとして）エンコードするのが望ましいかもしれない。
【００７９】
図１２Ａは、一般的な構成にしたがった、ビット割り当てのための装置ＭＦ１００のブロックダイヤグラムを示す。装置ＭＦ１００は、（例えば、タスクＴＡ１００の実現に関してここで記述したような、）複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算する手段ＦＡ１００を含む。装置ＭＦ１００はまた、（タスクＴＡ２１０の実現に関してここで記述したような、）複数のベクトルのうちのそれぞれに対して、利得係数に基づいている対応するビット割り当てを計算する手段ＦＡ２１０を含む。装置ＭＦ１００はまた、（例えば、タスクＴＡ３００の実現に関してここで記述したような、）複数のベクトルのうちの少なくとも１つに対して、対応するビット割り当てが最小の割り当て値よりも大きくないことを決定する手段ＦＡ３００を含む。装置ＭＦ１００はまた、（例えば、タスクＴＡ３００の実現に関してここで記述したような、）前記少なくとも１つのベクトルのそれぞれに対して、前記決定に応答して、対応するビット割り当てを変更する手段ＦＢ３００を含む。
【００８０】
図１２Ｂは、一般的な構成にしたがった、ビット割り当てのための装置Ａ１００のブロックダイヤグラムを示し、装置Ａ１００は、利得係数計算器１００と、ビット割り当て計算器２１０と、比較器３００と、割り当て調整モジュール３００Ｂとを含む。利得係数計算器１００は、（例えば、タスクＴＡ１００の実現に関してここで記述したように、）複数のベクトルのうちのそれぞれに対して、複数の利得係数のうちの対応する１つを計算するように構成されている。ビット割り当て計算器２１０は、（タスクＴＡ２１０の実現に関してここで記述したように、）複数のベクトルのうちのそれぞれに対して、利得係数に基づいている対応するビット割り当てを計算するように構成されている。比較器３００は、（例えば、タスクＴＡ３００の実現に関してここで記述したように、）複数のベクトルのうちの少なくとも１つに対して、対応するビット割り当てが最小の割り当て値よりも大きくないことを決定するように構成されている。割り当て調整モジュール３００Ｂは、（例えば、タスクＴＡ３００の実現に関してここで記述したように、）前記少なくとも１つのベクトルのそれぞれに対して、前記決定に応答して、対応するビット割り当てを変更するように構成されている。装置Ａ１００はまた、（例えば、タスクＴ１００の実現に関してここで記述したように、）フレームを複数のサブベクトルに分割するように構成された分割器を含むように実現されてもよい。
【００８１】
図１３Ａは、装置Ａ１００およびサブバンドエンコーダＳＥ１０の具体例を含む、一般的な構成にしたがったエンコーダＥ１００のブロックダイヤグラムを示す。サブバンドエンコーダＳＥ１０は、装置Ａ１００によって計算された対応する割り当てにしたがって、複数のベクトル（または、対応する複数の形状ベクトルのような、それに基づく複数のベクトル）を量子化するように構成されている。例えば、サブバンドエンコーダＳＥ１０は、ここで記述したような、従来のＶＱコーディング動作および／またはパルスコーディングＶＱ動作を実行するように構成されていてもよい。図１３Ｄは、装置Ａ１００およびサブバンドデコーダＳＤ１０の具体例を含む対応するデコーダＤ１００のブロックダイヤグラムを示す。サブバンドデコーダＳＤ１０は、装置Ａ１００によって計算された対応する割り当てにしたがって、複数のベクトル（または、対応する複数の形状ベクトルのような、それに基づく複数のベクトル）を逆量子化するように構成されている。図１３Ｂは、ここで記述したような１つ以上のコーデック（例えば、ＥＶＲＣ、ＡＭＲ−ＷＢ）に準拠しているフレームに、エンコードされたサブバンドをパックするように構成されているビットパッカーＢＰ１０を含む、エンコーダ１００の実現Ｅ１１０のブロックダイヤグラムを示す。図１３Ｅは、対応するビットアンパッカーＵ１０を含む、デコーダ１００の対応する実現Ｄ１１０のブロックダイヤグラムを示す。図１３Ｃは、装置Ａ１００の具体例Ａ１００ａおよび１００ｂと、残差エンコーダＳＥ２０とを含む、エンコーダＥ１１０の実現Ｅ１２０のブロックダイヤグラムを示す。このケースでは、サブバンドエンコーダＳＥ１０は、装置Ａ１００ａによって計算された対応する割り当てにしたがって、第１の複数のベクトル（または、対応する複数の形状ベクトルのような、それに基づく複数のベクトル）を量子化するように構成されており、残差エンコーダＳＥ２０は、装置Ａ１００ｂによって計算された対応する割り当てにしたがって、第２の複数のベクトル（または、対応する複数の形状ベクトルのような、それに基づく複数のベクトル）を量子化するように構成されている。図１３Ｆは、対応する残差デコーダＳＤ２０を含む、デコーダＤ１００の対応する実現Ｄ１２０のブロックダイヤグラムを示す。ＳＤ２０は、装置Ａ１００ｂによって計算された対応する割り当てにしたがって、第２の複数のベクトル（または、対応する複数の形状ベクトルのような、それに基づく複数のベクトル）を逆量子化するように構成されている。
【００８２】
図１４ＡないしＥは、ここで記述したエンコーダＥ１００に対する適用の範囲を示す。図１４Ａは、変換モジュールＭＭ１（例えば、高速フーリエ変換またはＭＤＣＴモジュール）と、変換領域におけるサンプルとして（すなわち、変換領域係数として）オーディオフレームＳＡ１０を受け取って、対応する、エンコードされたフレームＳＥ１０を生成させるように構成されているエンコーダＥ１００の具体例とを含む、オーディオ処理パスのブロックダイヤグラムを示す。
【００８３】
図１４Ｂは、変換モジュールＭＭ１がＭＤＣＴ変換モジュールを使用して実現される、図１４Ａのパスの実現のブロックダイヤグラムを示す。修正ＤＣＴモジュールＭＭ１０は、各オーディオフレームに対してＭＤＣＴ動作を実行して、１組のＭＤＣＴ領域係数を生成させる。
【００８４】
図１４Ｃは、線形予測コーディング分析モジュールＡＭ１０を含む、図１４Ａのパスの実現のブロックダイヤグラムを示す。線形予測コーディング（ＬＰＣ）分析モジュールＡＭ１０は、分類されたフレームに対してＬＰＣ分析動作を実行して、１組のＬＰＣパラメータ（例えば、フィルタ係数）と、ＬＰＣ残差信号とを生成させる。１つの例において、ＬＰＣ分析モジュールＡＭ１０は、ゼロから４０００Ｈｚまでの帯域幅を有するフレームに対して１０次ＬＰＣ分析を実行するように構成されている。別の例において、ＬＰＣ分析モジュールＡＭ１０は、３５００から７０００Ｈｚまでのハイバンド周波数範囲を表すフレームに対して６次ＬＰＣ分析を実行するように構成されている。修正ＤＣＴモジュールＭＭ１０は、ＬＰＣ残差信号に対してＭＤＣＴ動作を実行して、１組の変換領域係数を生成させる。対応するデコーディングパスは、エンコードされたフレームＳＥ１０をデコードし、デコードされたフレームに対して逆ＭＤＣＴ変換を実行して、ＬＰＣ合成フィルタへの入力に対する励振信号を取得するように構成されていてもよい。
【００８５】
図１４Ｄは、信号分類器ＳＣ１０を含む処理パスのブロックダイヤグラムを示す。信号分類器ＳＣ１０は、オーディオ信号のフレームＳＡ１０を受け取って、各フレームを、少なくとも２つのカテゴリのうちの１つに分類する。例えば、信号分類器ＳＣ１０は、スピーチまたは音楽としてフレームＳＡ１０を分類するように構成されていてもよく、それにより、フレームが音楽として分類された場合、図１４Ｄ中で示されているパスの残りは、それをエンコードするために使用され、フレームがスピーチとして分類された場合、異なる処理パスが、それをエンコードするために使用される。このような分類は、信号アクティビティ検出、ノイズ検出、周期性検出、時間領域スパース性検出、および／または、周波数領域スパース性検出を含んでもよい。
【００８６】
図１５Ａは、（例えば、オーディオフレームＳＡ１０のそれぞれに対して）信号分類器ＳＣ１０によって実行してもよい、信号分類の方法ＭＺ１００のブロックダイヤグラムを示す。方法ＭＣ１００は、タスクＴＺ１００、ＴＺ２００、ＴＺ３００、ＴＺ４００、ＴＺ５００およびＴＺ６００を含む。タスクＴＺ１００は、信号中のアクティビティのレベルを定量化する。アクティビティのレベルがしきい値を下回る場合、タスクＴＺ２００が、（例えば、低ビットレートのノイズ励振線形予測（ＮＥＬＰ）スキームおよび／または不連続送信（ＤＸＴ）スキームを使用して）サイレンスとして信号をエンコードする。アクティビティのレベルが、十分に高い（例えば、しきい値を上回る）場合、タスクＴＺ３００は、信号の周期性の程度を定量化する。タスクＴＺ３００が、信号が周期的でないことを決定した場合、タスクＴＺ４００が、ＮＥＬＰスキームを使用して信号をエンコードする。タスクＴＺ３００が、信号が周期的であることを決定した場合、タスクＴＺ５００が、時間および／または周波数領域における信号のスパース性の程度を定量化する。タスクＴＺ５００が、信号が時間領域においてスパースであることを決定した場合、タスクＴＺ６００が、リラックスドＣＥＬＰ（ＲＣＥＬＰ）または代数ＣＥＬＰ（ＡＣＥＬＰ）のような、コード励振線形予測（ＣＥＬＰ）スキームを使用して信号をエンコードする。タスクＴＺ５００が、信号が周波数領域においてスパースであることを決定した場合、タスクＴＺ７００が、（例えば、図１４Ｄ中の処理パスの残りに信号をパスすることによって）ハーモニックモデルを使用して信号をエンコードする。
【００８７】
図１４Ｄ中で示されているように、処理パスは、知覚刈込モジュールＰＭ１０を含んでいてもよく、知覚刈込モジュールＰＭ１０は、時間マスキング、周波数マスキング、および／または、聴覚しきい値のような、音響心理学の基準を適用することによって、ＭＤＣＴ領域信号を簡単にする（例えば、エンコードされることになる変換領域係数の数を低減させる）ように構成されている。モジュールＰＭ１０は、知覚モデルをオリジナルのオーディオフレームＳＡ１０に適用することによって、このような基準に対する値を計算するように実現されてもよい。この例において、エンコーダＥ１００は、刈込まれたフレームをエンコードして、対応するエンコードされたフレームＳＥ１０を生成させるように構成されている。
【００８８】
図１４Ｅは、図１４Ｃおよび１４Ｄのパスの両方の実現のブロック図を示し、図１４Ｅにおいて、エンコーダＥ１００は、ＬＰＣ残差をエンコードするように構成されている。
【００８９】
図１５Ｂは、装置Ａ１００の実現を含む通信デバイス１０のブロックダイヤグラムを示す。デバイスＤ１０は、装置Ａ１００（またはＭＦ１００）のエレメント、および、ことによると、装置Ｄ１００（またはＤＦ１００）のエレメントを実現する、チップまたはチップセットＣＳ１０（例えば、移動局モデム（ＭＳＭ）チップセット）を含む。チップ／チップセットＣＳ１０は、（例えば、命令のような、）装置Ａ１００またはＭＦ１００のソフトウェアおよび／またはファームウェアの部分を実行するように構成されている１つ以上のプロセッサを含んでいてもよい。
【００９０】
チップ／チップセットＣＳ１０は、無線周波数（ＲＦ）通信信号を受信し、ＲＦ信号内でエンコードされているオーディオ信号をデコードして再生するように構成されている受信機と、マイクロフォンＭＶ１０によって生成された信号に基づいているエンコードされたオーディオ信号（例えば、装置Ａ１００によって生成されるようなコードブックインデックスを含む）を記述するＲＦ通信信号を送信するように構成されている送信機とを含む。このようなデバイスは、１つ以上のエンコーディングおよびデコーディングスキーム（“コーデック”とも呼ばれる）を介して、ワイヤレスに音声通信データを送受信するように構成されていてもよい。このようなコーデックの例は、“ワイドバンド拡散スペクトルデジタルシステムに対する、エンハンスド可変レートコーデック、スピーチサービスオプション３、６８および７０”（２００７年２月（ｗｗｗ−ｄｏｔ−３ｇｐｐ−ｄｏｔ−ｏｒｇにおいてオンラインで利用可能））と題する第３世代パートナーシッププロジェクト２（３ＧＰＰ２）文書Ｃ．Ｓ００１４−Ｃ、ｖ１．０中で記述されているようなエンハンスド可変レートコーデックと、“ワイドバンド拡散スペクトル通信システムに対する、選択可能なモードボコーダ（ＳＭＶ）サービスオプション”（２００４年１月（ｗｗｗ−ｄｏｔ−３ｇｐｐ−ｄｏｔ−ｏｒｇにおいてオンラインで利用可能））と題する３ＧＰＰ２文書Ｃ．Ｓ００３０−０、ｖ３．０中で記述されているような選択可能なモードボコーダスピーチコーデックと、文書ＥＴＳＩ ＴＳ １２６ ０９２ Ｖ６．０．０（欧州電気通信標準化機構（ＥＴＳＩ）、ソフィアアンチポリス、Ｃｅｄｅｘ、フランス、２００４年１２月）中で記述されているような、適応型マルチレート（ＡＭＲ）スピーチコーデックと、文書ＥＴＳＩ ＴＳ １２６ １９２ Ｖ６．０．０（ＥＴＳＩ、２００４年１２月）中で記述されているような、ＡＭＲワイドバンドスピーチコーデックとを含む。例えば、チップまたはチップセットＣＳ１０は、このような１つ以上のコーデックに準拠されるエンコードされたフレームを生成させるように構成されていてもよい。
【００９１】
デバイスＤ１０は、アンテナＣ３０を介してＲＦ通信信号を受信および送信するように構成されている。デバイスＤ１０はまた、アンテナＣ３０へのパス中に、ダイプレクサーおよび１つ以上の電力増幅器を含んでいてもよい。チップ／チップセットＣＳ１０はまた、キーパッドＣ１０を介してユーザ入力を受け取り、ディスプレイＣ２０を介して情報を表示するように構成されている。この例では、デバイスＤ１０はまた、グローバルポジショニングシステム（ＧＰＳ）ロケーションサービス、および／または、ワイヤレス（例えば、ブルートゥース（登録商標））ヘッドセットのような外部デバイスとの短距離通信をサポートする１つ以上のアンテナＣ４０を含む。別の例では、このような通信デバイスは、ブルートゥースヘッドセットそのものであり、キーパッドＣ１０、ディスプレイＣ２０およびアンテナＣ３０を欠く。
【００９２】
通信デバイスＤ１０は、スマートフォン、ラップトップおよびタブレットコンピュータを含む、さまざまな通信デバイスにおいて具現されてもよい。図１６は、ハンドセットＨ１００（例えば、スマートフォン）の、正面図、背面図および側面図を示し、ハンドセットＨ１００は、正面に配置された２つの音声マイクロフォンＭＶ１０−１およびＭＶ１０−３と、背面に配置された音声マイクロフォンＭＶ１０−２と、正面の上部角に位置しているエラーマイクロフォンＭＥ１０と、背面上に位置しているノイズ参照マイクロフォンＭＲ１０とを有する。ラウドスピーカーＬＳ１０が、エラーマイクロフォンＭＥ１０の近くの正面の上部中央に配置されており、他の２つのラウドスピーカーＬＳ２０Ｌ、ＬＳ２０Ｒもまた（例えば、スピーカーフォン適用のために）提供されている。このようなハンドセットのマイクロフォン間の最大距離は、通常、約１０または１２センチメートルである。
【００９３】
（例えば、図１７中で示されているような）マルチバンドコーダでは、ローバンドにおいて（例えば、ここでの他の箇所において記述したような、依存モードまたはハーモニックモードのコーダにおいて）閉ループ利得ＧＳＶＱを実行し、ハイバンドにおける形状の間で、（例えば、タスクＴ２１０の実現にしたがって）利得ベースのダイナミックなビット割り当てにより開ループ利得ＧＳＶＱを実行することが望ましいかもしれない。この例において、ローバンドフレームは、オーディオ周波数入力フレームから分析フィルタバンクによって生成されるような、ローバンドに対する１０次ＬＰＣ分析動作の残差であり、ハイバンドフレームは、オーディオ周波数入力フレームから分析フィルタバンクによって生成されるような、ハイバンドに対する６次ＬＰＣ分析動作の残差である。図１８は、マルチバンドコーディングの対応する方法のフローチャートを示し、示されたコーディング（すなわち、ＵＢ−ＭＤＣＴスペクトルのパルスコーディング、ハーモニックサブバンドのＧＳＶＱエンコーディング、および／または、残差のパルスコーディング）のうちの１つ以上に対するビット割り当てが、タスクＴ２１０の実現にしたがって実行されてもよい。
【００９４】
上述したように、マルチバンドコーディングスキームは、ローバンドおよびハイバンドのそれぞれが、独立コーディングモードまたは依存（代わりに、ハーモニック）コーディングモードのいずれかを使用してエンコードされるように構成されてもよい。ローバンドが独立コーディングモード（例えば、１組の固定されたサブバンドに適用されるＧＳＶＱ）を使用してエンコードされるケースに対して、上述したようなダイナミックな割り当てを（例えば、タスクＴ２１０の実現にしたがって）実行して、対応する利得にしたがって、ローバンドおよびハイバンドの間で、（固定されていてもよく、またはフレームごとに異なっていてもよい、）フレームに対する総ビット割り当てを割り当ててもよい。このようなケースでは、上述したような別のダイナミックな割り当てを（例えば、タスクＴ２１０の実現にしたがって）実行して、ローバンドのサブバンド間で、結果として生じるローバンドのビット割り当てを割り当ててもよく、および／または、上述したような別のダイナミックな割り当てを（例えば、タスクＴ２１０の実現にしたがって）実行して、ハイバンドのサブバンド間で、結果として生じるハイバンドのビット割り当てを割り当ててもよい。
【００９５】
ローバンドが、依存（代わりに、ハーモニック）コーディングモードを使用してエンコードされるケースに対して、（固定されていてもよく、またはフレームごとに異なっていてもよい）フレームに対する総ビット割り当てから、コーディングモードによって選択されたサブバンドにビットを最初に割り当てることが望ましいかもしれない。この割り当てに対して、ローバンドに対するＬＰＣスペクトルからの情報を使用することが望ましいかもしれない。このような１つの例において、（例えば、最初の反射係数によって示されるような）ＬＰＣ傾斜スペクトルが、最も高いＬＰＣ重みを有するサブバンドを決定するために使用され、最大数のビット（例えば、１０ビット）が、（例えば、形状量子化に対して）そのサブバンドに割り当てられ、それに対応して、より低い割当てが、より低いＬＰＣ重みを有するサブバンドに与えられる。上述したようなダイナミックな割り当てを（例えば、タスクＴ２１０の実現にしたがって）実行して、ローバンドの残差とハイバンドとの間で、フレーム割り当てにおいて残っているビットを割り当ててもよい。このようなケースでは、上述したような別のダイナミックな割り当てを（例えば、タスクＴ２１０の実現にしたがって）実行して、ハイバンドのサブバンド間で、結果として生じるハイバンドのビット割り当てを割り当ててもよい。
【００９６】
図１８中で示されているようなコーディングモード選択は、マルチバンドのケースに対して拡張されてもよい。このような１つの例において、ローバンドおよびハイバンドのそれぞれは、独立コーディングモードおよび依存コーディングモード（代わりに、独立コーディングモードおよびハーモニックコーディングモード）の両方を使用してエンコードされ、それにより、４つの異なるモードの組み合わせが、フレームに対して最初に検討される。次に、ローバンドモードのそれぞれに対して、対応する最良のハイバンドモードが、（例えば、ハイバンドに対して知覚メトリックを使用する２つのオプション間の比較にしたがって）選択される。２つの残りのオプション（すなわち、対応する最良のハイバンドモードを有するローバンド独立モード、および、対応する最良のハイバンドモードを有するローバンド依存（またはハーモニック）モード）のうち、これらのオプション間の選択は、ローバンドおよびハイバンドの両方をカバーする知覚メトリックを参照して実施される。このようなマルチバンドのケースの１つの例において、ローバンド独立モードは、ＧＳＶＱを使用して、１組の固定されたサブバンドをエンコードし、ハイバンド独立モードは、パルスコーディングスキーム（例えば、階乗パルスコーディング）を使用して、ハイバンド信号をエンコードする。
【００９７】
図１９は、一般的な構成にしたがった、エンコーダＥ２００のブロックダイヤグラムを示し、エンコーダＥ２００は、ＭＤＣＴ領域中のサンプルとして（すなわち、変換領域係数として）オーディオフレームを受け取るように構成されている。エンコーダ２００は、独立モードエンコーダＩＭ１０を含み、独立モードエンコーダＩＭ１０は、独立コーディングモードにしたがってＭＤＣＴ領域信号ＳＭ１０のフレームをエンコードして、独立モードによりエンコードされたフレームＳＩ１０を生成させるように構成されている。独立コーディングモードは、予め定められている（すなわち、固定されている）サブバンド分割にしたがって、変換領域係数をサブバンドにグループ化し、ベクトル量子化（ＶＱ）スキームを使用して、サブバンドをエンコードする。独立コーディングモードに対するコーディングスキームの例は、パルスコーディング（例えば、階乗パルスコーディングおよび組合せパルスコーディング）を含む。エンコーダＥ２００はまた、高速フーリエ変換（ＦＦＴ）領域のような、別の変換領域におけるサンプルとしてオーディオフレームを受け取るように、同じ原理にしたがって構成されていてもよい。
【００９８】
エンコーダＥ２００はまた、ハーモニックモードエンコーダＨＭ１０（代わりに、依存モードエンコーダ）を含み、ハーモニックモードエンコーダＨＭ１０は、ハーモニックモデルにしたがってＭＤＣＴ領域信号ＳＭ１０のフレームをエンコードして、ハーモニックモードによりエンコードされたフレームＳＤ１０を生成させるように構成されている。エンコーダＩＭ１０およびＨＭ１０の両方のうちのいずれもが、ここで記述したようなダイナミックな割り当てスキームにしたがって、対応するエンコードされたフレームが生成されるように、装置Ａ１００の対応する具体例を含むように実現されてもよい。エンコーダＥ２００はまた、コーディングモード選択器ＳＥＬ１０を含み、コーディングモード選択器ＳＥＬ１０は、歪み測度を使用して、エンコードされたフレームＳＥ１０として、独立モードによりエンコードされたフレームＳＩ１０およびハーモニックモードによりエンコードされたフレームＳＤ１０の中から１つを選択するように構成されている。図１４Ａないし１４Ｅ中で示されているエンコーダＥ１００は、エンコーダＥ２００の実現として実現されてもよい。エンコーダＥ２００はまた、図１７中で示されているようなマルチバンドコーデックにおいて、ＭＤＣＴ領域におけるローバンド（例えば、０ないし４ｋＨｚ）ＬＰＣ残差をエンコードするために、および／または、ＭＤＣＴ領域におけるハイバンド（例えば、３．５ないし７ｋＨｚ）ＬＰＣ残差をエンコードするために使用されてもよい。
【００９９】
ここで開示した方法および装置は、一般に、任意の送受信アプリケーションおよび／またはオーディオ感知アプリケーション、特に、このようなアプリケーションの、移動またはそうでなければポータブルの具体例において適用され得る。例えば、ここで開示した構成の範囲は、エアインターフェースによってコード分割多元接続（ＣＤＭＡ）を用いるように構成されているワイヤレス電話通信システム中に存在する通信デバイスを含む。しかしながら、ここで記述した特徴を有する方法および装置は、ワイヤードおよび／またはワイヤレスの（例えば、ＣＤＭＡ、ＴＤＭＡ、ＦＤＭＡ、および／またはＴＤ−ＳＣＤＭＡ）送信チャネルによってボイスオーバＩＰ（ＶｏＩＰ）を用いるシステムのような、当業者に知られている広範囲の技術を用いるさまざまな通信システムのいずれかに存在してもよいことが、当業者によって理解されるだろう。
【０１００】
ここで開示した通信デバイスは、パケット交換であるネットワーク（例えば、ＶｏＩＰのようなプロトコルにしたがって、オーディオ送信を搬送するように構成されているワイヤードおよび／またはワイヤレスのネットワーク）および／または回路交換であるネットワークにおける使用に適合されていてもよいことが、特に考察され、ここに開示されている。ここで開示した通信デバイスは、全バンドのワイドバンドコーディングシステムおよび分割バンドのワイドバンドコーディングシステムを含む、ナローバンドコーディングシステム（例えば、約４または５キロヘルツのオーディオ周波数範囲エンコードするシステム）における使用に対して、および／または、ワイドバンドコーディングシステム（例えば、５キロヘルツよりも大きいオーディオ周波数をエンコードするシステム）における使用に対して適合されていてもよい。
【０１０１】
記述した構成の提示は、当業者が、ここで開示した方法および他の構造を実施または使用できるように提供されている。ここで示し、記述したフローチャート、ブロックダイヤグラムおよび他の構造は、例に過ぎず、これらの構造の他の変形もまた、本開示の範囲内である。これらの構成へのさまざまな修正が可能であり、ここで与えた一般的な原理を、同様に他の構成に適用してもよい。したがって、本開示は、先に示した構成に限定されるように向けられておらず、むしろ、元の開示の一部を形成する添付の特許請求の範囲におけるものを含む、ここでの何らかの型で開示した原理および新規な特徴に一致する最も広い範囲に一致すべきである。
【０１０２】
さまざまな異なる技術および技法のいずれかを使用して情報および信号を表わしてもよいことを、当業者は理解するであろう。例えば、電圧、電流、電磁波、磁界または磁気粒子、光領域または光粒子、あるいはそれらの任意の組み合わせにより、上の記述を通して参照されているデータ、命令、コマンド、情報、信号、ビットおよびシンボルを表わしてもよい。
【０１０３】
ここで開示したような構成の実現に対する重要な設計要件は、特に、圧縮されたオーディオまたはオーディオヴィジュアル情報（例えば、ここで識別された例のうちの１つのような、圧縮フォーマットにしたがってエンコードされるファイルまたはストリーム）の再生のような、計算集約型のアプリケーション、あるいは、ワイドバンド通信に対するアプリケーション（例えば、１２、１６、４４．１、４８または１９２ｋＨｚのような、８キロヘルツよりも高いサンプリングレートでの音声通信）に対して、（通常、秒当たりの百万命令すなわちＭＩＰＳで測定される）処理の遅延および／または計算の複雑さを最小化することを含む。
【０１０４】
ここで開示したような装置（例えば、装置Ａ１００およびＭＦ１００）は、意図された適用に適していると思われる、ソフトウェアとハードウェアの任意の組み合わせおよび／またはファームウェアとハードウェアの任意の組み合わせにおいて、実現されてもよい。例えば、このような装置のエレメントは、例えば、同じチップ上にまたはチップセット中の２つ以上のチップ間に存在する、電子デバイスならびに／あるいは光デバイスとして組み立てられてもよい。このようなデバイスの１つの例は、トランジスタまたは論理ゲートのような、論理エレメントの固定アレイまたはプログラム可能アレイであり、これらのエレメントのうちの任意のものが、１つ以上のこのようなアレイとして実現されてもよい。これらのエレメントのうちの任意の２つ以上が、または、これらのエレメントのすべてでさえも、同じアレイ内で実現されてもよい。このようなアレイは、１つ以上のチップ内で（例えば、２つ以上のチップを含むチップセット内で）実現されてもよい。
【０１０５】
ここで開示した装置（例えば、装置Ａ１００およびＭＦ１００）のさまざまな実現の１つ以上のエレメントは、その全体または一部が、マイクロプロセッサと、埋め込みプロセッサと、ＩＰコアと、デジタル信号プロセッサと、ＦＰＧＡ（フィールドプログラム可能ゲートアレイ）と、ＡＳＳＰ（特定用途向け標準品）と、ＡＳＩＣ（特定用途向け集積回路）とのような、論理エレメントの１つ以上の固定アレイまたはプログラム可能アレイ上で実行するように構成されている１つ以上の組の命令として実現されてもよい。ここで開示したような装置の実現のさまざまなエレメントの任意のものはまた、１つ以上のコンピュータ（例えば、“プロセッサ”とも呼ばれる、１つ以上の組の命令または１つ以上のシーケンスの命令を実行するようにプログラムされている１つ以上のアレイを含むマシン）として具現化されてもよく、これらのエレメントのうちの２つ以上、または、これらのエレメントのすべてでさえも、このような同じコンピュータ内で実現されてもよい。
【０１０６】
ここで開示したように処理するプロセッサまたは他の手段は、例えば、同じチップ上にまたはチップセット中の２つ以上のチップ間に存在する、１つ以上の電子デバイスならびに／あるいは光デバイスとして組み立てられてもよい。このようなデバイスの１つの例は、トランジスタまたは論理ゲートのような、論理エレメントの固定アレイまたはプログラム可能アレイであり、このようなエレメントの任意のものが、１つ以上のこのようなアレイとして実現されてもよい。このようなアレイは、１つ以上のチップ内で（例えば、２つ以上のチップを含むチップセット内で）実現されてもよい。このようなアレイの例は、マイクロプロセッサと、埋め込みプロセッサと、ＩＰコアと、ＤＳＰと、ＦＰＧＡと、ＡＳＳＰと、ＡＳＩＣとのような、論理エレメントの固定アレイまたはプログラム可能アレイを含む。ここで開示したように処理するプロセッサまたは他の手段はまた、１つ以上のコンピュータ（例えば、１つ以上の組の命令または１つ以上のシーケンスの命令を実行するようにプログラムされている１つ以上のアレイを含むマシン）あるいは他のプロセッサとして具現化されてもよい。タスクを実行するために、あるいは、プロセッサがその中に組み込まれているデバイスまたはシステム（例えば、オーディオセンシングデバイス）の別の動作に関連するタスクのような、方法Ｍ１００またはＭＤ１００の実現の手順に直接関連しない他の組の命令を実行するために、ここで説明したようなプロセッサを使用することが可能である。ここで開示したような方法の一部を、オーディオセンシングデバイスのプロセッサによって実行し、方法の別の部分を、１つ以上の他のプロセッサの制御下で実行することも可能である。
【０１０７】
さまざまな例示的なモジュール、論理ブロック、回路、および、テスト、ならびに、ここで開示したコンフィギュレーションに関連して説明した他の動作が、電子ハードウェア、コンピュータソフトウェア、あるいは、双方の組み合わせたものとして実現されてもよいことを当業者は正しく認識するだろう。このようなモジュール、論理ブロック、回路、および、動作は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、ＡＳＩＣまたはＡＳＳＰ、ＦＰＧＡまたは他のプログラム可能論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、ここで開示したようなコンフィギュレーションを生成させるように設計されたこれらの任意の組み合わせによって、実現または実行されてもよい。例えば、このようなコンフィギュレーションは、ハードワイヤード回路として、特定用途向け集積回路中に組み立てられる回路コンフィギュレーションとして、あるいは、不揮発性記憶装置中にロードされるファームウェアプログラムまたは機械読取可能コードとしてデータ記憶媒体からロードされるか、機械読取可能コードとしてデータ記憶媒体中にロードされるソフトウェアプログラムとして、少なくとも部分的に実現されてもよく、このようなコードは、汎用プロセッサまたは他のデジタル信号処理ユニットのような、論理エレメントのアレイによって実行可能な命令である。汎用プロセッサは、マイクロプロセッサであってもよいが、代替実施形態では、プロセッサは、何らかの従来のプロセッサ、制御装置、マイクロ制御装置、または、状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組み合わせとして、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアを備えた１つ以上のマイクロプロセッサ、または、このようなコンフィギュレーションの他の何らかのものとして実現されてもよい。ソフトウェアモジュールは、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリーメモリ）、フラッシュＲＡＭのような不揮発性ＲＡＭ（ＮＶＲＡＭ）、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、レジスタ、ハードディスク、リムーバブルディスク、または、ＣＤ−ＲＯＭ、あるいは、技術的に知られている他の何らかの形態の記憶媒体のような、一時的でない記憶媒体に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合されてもよい。代替実施形態では、記憶媒体はプロセッサと一体化されてもよい。プロセッサおよび記憶媒体は、ＡＳＩＣに存在してもよい。ＡＳＩＣは、ユーザ端末に存在してもよい。代替実施形態では、プロセッサおよび記憶媒体は、ユーザ端末中にディスクリートコンポーネントとして存在してもよい。
【０１０８】
プロセッサのような論理エレメントのアレイによって、ここで開示したさまざまな方法（例えば、ここで説明したさまざまな装置の動作を参照して開示した方法Ｍ１００および他の方法の実現）が、実行されてもよいことに、ならびに、ここで説明したような装置のさまざまなエレメントが、このようなアレイ上で実行するように設計されているモジュールとして実現されてもよいことに、留意されたい。ここで使用したような、“モジュール”または“サブモジュール”という用語は、ソフトウェアの形で、ハードウェアの形で、または、ファームウェアの形で、コンピュータ命令（例えば、論理式）を含む、任意の方法、装置、デバイス、ユニット、または、コンピュータ読取可能データ記憶媒体のことを指すことができる。複数のモジュールまたはシステムを組み合わせて１つのモジュールまたはシステムにすることができ、１つのモジュールまたはシステムを、同じ機能を実行する複数のモジュールまたはシステムに分けることができることを理解すべきである。ソフトウェアまたは他のコンピュータ実行可能命令で実現されるときに、プロセスのエレメントは、本質的に、例えば、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および、これらに類似するものによって、関連するタスクを実行するコードセグメントである。“ソフトウェア”という用語は、ソースコードと、アセンブリ言語コードと、マシンコードと、バイナリコードと、ファームウェアと、マクロコードと、マイクロコードと、論理エレメントのアレイによって実行可能な任意の１つ以上の組の命令または１つ以上のシーケンスの命令と、このような例の任意の組み合わせとを含むことを理解すべきである。プログラムまたはコードセグメントは、プロセッサ読取可能媒体に記憶することができ、送信媒体または通信リンクを通して、搬送波で具現化されるコンピュータデータ信号によって送信することができる。
【０１０９】
ここで開示した、方法、スキーム、および、技術の実現はまた、論理エレメントのアレイ（例えば、プロセッサ、マイクロプロセッサ、マイクロ制御装置、または、他の有限状態マシン）を含むマシンによって実行可能な１つ以上の組の命令として、有体的に（例えば、ここでリストアップしたような１つ以上のコンピュータ読取可能媒体の有体的なコンピュータ読取可能機能で）具現化されてもよい。“コンピュータ読取可能媒体”という用語は、揮発性記憶媒体と、不揮発性記憶媒体と、リムーバブル記憶媒体と、ノンリムーバル記憶媒体とを含む、情報を記憶または転送できる任意の媒体を含んでもよい。コンピュータ読取可能媒体の例は、電子回路、半導体メモリデバイス、ＲＯＭ、フラッシュメモリ、消去可能ＲＯＭ（ＥＲＯＭ）、フロッピー（登録商標）ディスケットまたは他の磁気記憶装置、ＣＤ−ＲＯＭ／ＤＶＤまたは他の光記憶装置、ハードディスクまたは所望の情報を記憶するために使用できる他の何らかの媒体、光ファイバ媒体、無線周波数（ＲＦ）リンク、あるいは、所望の情報を搬送するために使用でき、アクセスすることができる他の何らかの媒体を含んでいる。コンピュータデータ信号は、電子ネットワークチャネル、光ファイバ、無線、電磁気、ＲＦリンク等のような送信媒体を通して伝搬できる、何らかの信号を含んでもよい。コードセグメントは、インターネットまたはイントラネットのようなコンピュータネットワークを介してダウンロードされてもよい。任意のケースでは、本開示の範囲は、このような実施形態によって限定されるものとして解釈すべきではない。
【０１１０】
ここで説明した方法のタスクのそれぞれは、直接、ハードウェアで、プロセッサにより実行されるソフトウェアモジュールで、または、２つを組み合わせたもので、具現化されてもよい。ここで開示したような方法の実現の典型的な適用において、論理エレメント（例えば、論理ゲート）のアレイは、方法のさまざまなタスクのうちの１つ、１つより多いもの、または、すべてでさえ実行するように構成されている。タスクのうちの１つ以上（場合によってはすべて）は、コード（例えば、１つ以上の組の命令）として実現されてもよく、論理エレメントのアレイ（例えば、プロセッサ、マイクロプロセッサ、マイクロ制御装置、または、他の有限状態マシン）を含むマシン（例えば、コンピュータ）によって読取可能および／また実行可能であるコンピュータプログラムプロダクト（例えば、ディスク、フラッシュ、または、他の不揮発性メモリカード、半導体メモリチップ等のような、１つ以上のデータ記憶媒体）で具現化されてもよい。ここで開示したような方法の実現のタスクはまた、１つより多いこのようなアレイまたはマシンによって実行されてもよい。これらの実現または他の実現において、セルラ電話機またはこのような通信能力を有する他のデバイスのような、ワイヤレス通信用のデバイス内で、タスクを実行してもよい。このようなデバイスは、（例えば、ＶｏＩＰのような１つ以上のプロトコルを使用する）回路交換ネットワークおよび／またはパケット交換ネットワークと通信するように構成されていてもよい。例えば、このようなデバイスは、エンコードされたフレームを受信および／または送信するように構成されているＲＦ回路を備えてもよい。
【０１１１】
ここで開示したさまざまな方法が、ハンドセット、ヘッドセット、または、ポータブルデジタルアシスタント（ＰＤＡ）のような、ポータブル通信デバイスによって実行されてもよいこと、ならびに、ここで説明するさまざまな装置がこのようなデバイス内に含まれてもよいことを明確に開示した。典型的なリアルタイム（例えば、オンライン）適用は、このような移動デバイスを使用して行われる電話機での会話である。
【０１１２】
１つ以上の例示的な実施形態では、ここで説明した動作が、ハードウェアで、ソフトウェアで、ファームウェアで、または、これらのものを組み合わせた任意のもので実現されてもよい。ソフトウェアで実現された場合に、このような動作は、１つ以上の命令またはコードとして、コンピュータ読取可能媒体上に記憶されてもよく、あるいは、１つ以上の命令またはコードとして、コンピュータ読取可能媒体上に送信されてもよい。“コンピュータ読取可能媒体”という用語は、コンピュータ読取可能記憶媒体と通信（例えば、送信）媒体の双方を含む。一例として、これらに限定されないが、コンピュータ読取可能記憶媒体は、（これらに限定されないが、ダイナミックまたはスタティックな、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭならびに／あるいはフラッシュＲＡＭを含んでもよい）半導体メモリ、あるいは、強誘電体メモリ、磁気抵抗メモリ、オーボニックメモリ、高分子（polymeric）メモリ、または、相変化メモリのような、記憶エレメントのアレイ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、ならびに／あるいは、磁気ディスク記憶装置または他の磁気記憶デバイスを含むことができる。このような記憶媒体は、コンピュータによってアクセスできる命令またはデータ構造の形で、情報を記憶してもよい。通信媒体は、１つの場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む、コンピュータによってアクセスできる命令またはデータ構造の形で、所望のプログラムコードを搬送するために使用できる任意の媒体を含むことができる。また、あらゆる接続は、コンピュータ読取可能媒体と適切に呼ばれる。例えば、同軸ケーブル、光ファイバケーブル、撚り対、デジタル加入者線（ＤＳＬ）、あるいは、赤外線、無線、および／または、マイクロ波のようなワイヤレス技術を使用しているウェブサイト、サーバ、または、他の遠隔ソースから、ソフトウェアが送信される場合には、同軸ケーブル、光ファイバケーブル、撚り対、ＤＳＬ、あるいは、赤外線、無線、および／またはマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。ここで使用したようなディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザディスク（登録商標）、光ディスク、デジタル多用途ディスク（ＤＶＤ）、フロッピーディスク、および、ブルーレイ（登録商標）ディスク（ブルーレイディスクアソシエーション、ｕｎｉｖｅｒｓａｌ ｃｉｔｙ、ＣＡ）を含むが、一般的に、ディスク（ｄｉｓｋ）は、データを磁気的に再生する一方で、ディスク（ｄｉｓｃ）はデータをレーザによって光学的に再生する。先のものを組み合わせたものもまた、コンピュータ読取可能媒体の範囲内に含められるべきである。
【０１１３】
ここで説明したような音響信号処理装置は、通信デバイスのような、ある動作を制御するためにスピーチ入力を受け入れ、または、そうでなければ、バックグラウンドノイズから所望のノイズを分離することによって恩恵を受けてもよい電子デバイス中に組み込まれてもよい。多くの適用は、クリアーな所望のサウンドを向上させること、または、複数の方向から発生するバックグラウンドサウンドからクリアーな所望のサウンドを分離することによって恩恵を受けてもよい。このような適用は、音声の認識および検出と、スピーチの向上および分離と、音声起動制御と、これらに類似するものとのような能力を組み込んでいる電子デバイス中あるいはコンピューティングデバイス中に、ヒューマン−マシンインターフェース含めてもよい。限定された処理能力のみを提供するデバイスにおいて適切であるように、このような音響信号処理装置を実現することが望ましいことがある。
【０１１４】
例えば、ここで説明したモジュール、エレメント、および、デバイスのさまざまな実現のエレメントは、例えば、同じチップ上にまたはチップセット中の２つ以上のチップ間に存在する、電子デバイスおよび／または光デバイスとして組み立てられてもよい。このようなデバイスの１つの例は、トランジスタまたはゲートのような、論理エレメントの固定アレイあるいはプログラム可能アレイである。ここで説明した装置のさまざまな実現のうちの１つ以上のエレメントもまた、その全体または一部が、マイクロプロセッサと、埋め込みプロセッサと、ＩＰコアと、デジタル信号プロセッサと、ＦＰＧＡと、ＡＳＳＰと、ＡＳＩＣとのような、論理エレメントの１つ以上の固定アレイまたはプログラム可能アレイ上で実行するように構成されている１つ以上の組の命令として実現されてもよい。
【０１１５】
タスクを実行するために、あるいは、装置がその中に組み込まれているデバイスまたはシステムの別の動作に関連するタスクのような、装置の動作に直接関連しない他の組の命令を実行するために、ここで説明したような装置の実現のうちの１つ以上のエレメントを使用することが可能である。このような装置の実現のうちの１つ以上のエレメントが、共通の構造（例えば、異なる時間において、異なるエレメントに対応するコードの一部を実行するために使用されるプロセッサ、異なる時間において、異なるエレメントに対応するタスクを実行するように実行される１組の命令、あるいは、異なる時間において、異なるエレメントに対する動作を実行する、電子デバイスおよび／または光デバイスの構成）を有することも可能である。
【表１】
2013534328.tif 000005
【０１１６】
2013534328.tif 000006
【０１１７】
2013534328.tif 000007
【表２】
2013534328.tif 000008
【０１１８】
2013534328.tif 000009
【０１１９】
2013534328.tif 000010
【０１２０】
2013534328.tif 000011
【図１Ａ】
2013534328.tif 000012
【図１Ｂ】
2013534328.tif 000013
【図１Ｃ】
2013534328.tif 000014
【図１Ｄ】
2013534328.tif 000015
【図２】
2013534328.tif 000016
【図３】
2013534328.tif 000017
【図４Ａ】
2013534328.tif 000018
【図４Ｂ】
2013534328.tif 000019
【図５Ａ】
2013534328.tif 000020
【図５Ｂ】
2013534328.tif 000021
【図５Ｃ】
2013534328.tif 000022
【図５Ｄ】
2013534328.tif 000023
【図６Ａ】
2013534328.tif 000024
【図６Ｂ】
2013534328.tif 000025
【図７Ａ】
2013534328.tif 000026
【図７Ｂ】
2013534328.tif 000027
【図８Ａ】
2013534328.tif 000028
【図８Ｂ】
2013534328.tif 000029
【図８Ｃ】
2013534328.tif 000030
【図９】
2013534328.tif 000031
【図１０Ａ】
2013534328.tif 000032
【図１０Ｂ】
2013534328.tif 000033
【図１１Ａ】
2013534328.tif 000034
【図１１Ｂ】
2013534328.tif 000035
【図１２Ａ】
2013534328.tif 000036
【図１２Ｂ】
2013534328.tif 000037
【図１３Ａ】
2013534328.tif 000038
【図１３Ｂ】
2013534328.tif 000039
【図１３Ｃ】
2013534328.tif 000040
【図１３Ｄ】
2013534328.tif 000041
【図１３Ｅ】
2013534328.tif 000042
【図１３Ｆ】
2013534328.tif 000043
【図１４】
2013534328.tif 000044
【図１５Ａ】
2013534328.tif 000045
【図１５Ｂ】
2013534328.tif 000046
【図１６】
2013534328.tif 000047
【図１７】
2013534328.tif 000048
【図１８】
2013534328.tif 000049
【図１９】
2013534328.tif 000050
【図２０】
2013534328.tif 000051
【国際調査報告】
2013534328.tif 000052
2013534328.tif 000053
2013534328.tif 000054