(57)【要約】  周波数セグメント化は、スペクトル・データのエンコーディングの品質に重要である。セグメント化は、スペクトル・データをサブバンドまたはベクトルと呼ばれる単位に分解することを伴う。均一セグメント化は、準最適である場合がある。スペクトル・データ強度依存セグメント化を提供するさまざまな特徴を、説明する。より細かいセグメント化を、より大きいスペクトル変動を有する領域について提供し、より粗いセグメント化を、より均一な領域について提供する。類似する特性を有するサブバンドを、品質に対する影響をほとんど伴わずにマージすることができるが、非常に変動するデータを有するサブバンドは、あるサブバンドが分割される場合によりよく表現される可能性がある。サブバンドの調性、エネルギー、または形状を測定するさまざまな方法を、説明する。これらのさまざまな測定が、可変周波数セグメント化をもたらすためにサブバンドをいつ分割しまたはマージするかを決定する観点から議論される。
2009501945.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号をスペクトル・データに変換すること（３２０）、
前記スペクトル・データのうちのベースバンド部分をコーディングすること（３４０）、
前記スペクトル・データのうちの拡張バンド部分でスペクトル・データの特性を決定すること（３６０）、および
初期構成から変更された、前記拡張バンド部分内の個々のサブバンドを示すデータを備えるサブバンドの変更された構成をコーディングすること（３６０）
を備えることを特徴とするオーディオ符号化方法。
【請求項２】
前記スペクトル・データは、変換領域の複数の係数を備え、前記変更された構成は、サイズにおいて前記初期構成またはデフォルト構成から変更された、複数のサブバンドに対する複数の差分値を備えることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項３】
前記初期構成は、均一分割構成または不均一分割構成であることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項４】
バンド構成がデフォルトまたは最適化済みのどちらであるかの符号用に第１ビットが提供され前記初期構成が均一分割構成または不均一分割構成のどちらであるかの符号用に第２ビットが提供されることを特徴とする請求項２に記載のオーディオ符号化方法。
【請求項５】
前記変更された構成は、最小のサブバンド・サイズに対するサブバンド・サイズの相対比を反映するサブバンド・マルチプライヤを備えることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項６】
前記変更された構成は、前記初期構成からのサブバンドの分割およびマージを反映するサブバンド・マルチプライヤを備えることを特徴とする請求項１に記載のオーディオ・エンコーディング。
【請求項７】
スペクトル・データの特性は、調性、エネルギー、または形状のうちの少なくとも１つの測定値を備えることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項８】
前記初期構成は、調性に少なくとも部分的に基づいて変更され、前記方法は、
前記オーディオ信号を高速フーリエ変換ブロックに変換すること、
隣接する高速フーリエ変換ブロックの時間平均をとること、
前記時間平均をとられた隣接する高速フーリエ変換ブロックを中央値フィルタリングすることによって中央値フィルタリングされた値を決定すること、
調性番号を入手するために、前記時間平均をとられた隣接する高速フーリエ変換ブロックを前記中央値フィルタリングされた値と比較すること、
前記隣接する高速フーリエ変換ブロックに関係付けられる対応するサブバンドを決定すること、および
前記調性番号が、絶対数、前記中央値フィルタリングされた値の所与のパーセンテージ、または前記中央値フィルタリングされた値の局所標準偏差のパーセンテージによって表すことができる閾値を超える場合に、前記対応するサブバンドに調性特性を割り当てること
をさらに備えることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項９】
前記調性特性は、前記対応するサブバンドを分割しまたはマージするか否かを決定するのに使用される要因のうちの少なくとも１つであることを特徴とする請求項８に記載のオーディオ符号化方法。
【請求項１０】
隣接するサブバンドのエネルギーの比が、前記初期構成を変更するか否かを少なくとも部分的に決定することを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項１１】
サブバンド形状差が、サブバンドを分割するか否かを少なくとも部分的に決定することを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項１２】
個々のサブバンドを２つのサブバンドに分割するとの判断が、前記２つの分割されたサブバンドが前記個々のサブバンドより閾値量だけ少ない平均二乗ユークリッド差を有するときに少なくとも部分的に行われることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項１３】
前記変更された構成のコーディングは、さらに、最小比サブバンド・サイズをコーディングすることを備えることを特徴とする請求項１に記載のオーディオ符号化方法。
【請求項１４】
請求項１に記載の方法を使用して作成されることを特徴とする出力ビットストリーム。
【請求項１５】
請求項１に記載の出力をデコードすることを特徴とするデコーダ。
【請求項１６】
エンコードされたベースバンドをデコードすること（５４０）、および
エンコードされた拡張バンドをデコードすることであって、
最小比サブバンド・サイズおよび変更された構成を備えるデータを受け取ること（５４５）、
デフォルト構成での最小サブバンド・サイズを前記最小比サブバンド・サイズによって割ることによって、前記変更された構成における最小サブバンド・サイズを決定すること（５４５）、および
期待されるサブバンド・マルチプライヤをコーディングされた差分値に加算することによって実際のサブバンド・マルチプライヤを決定すること（５４５）
を備える、デコードすること
を備えることを特徴とするオーディオ復号方法。
【請求項１７】
初期の構成が、不均一分割構成であることを特徴とする請求項１６に記載のオーディオ復号方法。
【請求項１８】
第２のサブバンドについて、受け取られるデータは、初期の構成からの変更なしを示し、前記第２のサブバンドは、初期の構成に従ってデコードされることを特徴とする請求項１６に記載のオーディオ復号方法。
【請求項１９】
オーディオ信号をスペクトル・データに変換するトランスフォーマ（３２０）、
前記スペクトル・データのうちのベースバンド部分をコーディングするベースコーダ（３４０）、および
拡張バンド内のスペクトル・データの特性に基づいて可変サイズ・サブバンドを構成し（３６０）、
個々のサブバンドがサイズにおいて初期構成からどれほど異なるかを示す差分値をコーディングし（３６０）、
最小比サブバンド・サイズをコーディングし（３６０）、
前記拡張バンド内のサブバンドをコーディングする（３５０）
拡張バンド・コーダ（３５０、３６０）
を備えることを特徴とするオーディオ・エンコーダ。
【請求項２０】
差分値は、少なくとも部分的に、前記初期構成からのサブバンド分割またはマージによって決定されることを特徴とする請求項１９に記載のオーディオ・エンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、一般に、サブバンドの可変サイズ周波数セグメント化を用いるスペクトル・データのコーディングに関する。
【背景技術】
【０００２】
オーディオのコーディングは、人間の聴覚のさまざまな知覚モデルを活用するコーディング技法を利用する。たとえば、強い音の近くの多数のより弱い音は、マスクされ、したがって、コーディングする必要がない。従来の知覚オーディオ・コーディングでは、これが、異なる周波数データの適応量子化として活用される。知覚的に重要な周波数データは、より多くのビットを割り当てられ、したがって、より細かい量子化を割り当てられ、逆も同様である。
【０００３】
しかし、知覚コーディングは、より広い意味で解釈することができる。たとえば、スペクトルのいくつかの部分を、適切にシェーピングされたノイズを用いてコーディングすることができる。この手法を採用する場合に、コーディングされた信号は、オリジナルの正確なバージョンまたは正確に近いバージョンをレンダリングすることを目指さない場合がある。そうではなく、その目標は、オリジナルと比較したときに、コーディングされた信号が、オリジナルに似て、違和感がなく聞こえるようにすることである。
【０００４】
これらの知覚的効果のすべてを使用して、オーディオ信号のコーディングに必要なビットレートを下げることができる。これは、一部の周波数成分は、オリジナルの信号に存在するように正確に表現される必要があるのではなく、コーディングしないことも、オリジナルと同一の知覚的効果を与えるものに置換することも、できるからである。
【０００５】
【特許文献１】米国特許出願第１０／８８２８０１号
【特許文献２】米国特許出願第１０／０２０７０８号
【特許文献３】米国特許出願第１０／０１６９１８号
【特許文献４】米国特許出願第１０／０１７７０２号
【特許文献５】米国特許出願第１０／０１７８６１号
【特許文献６】米国特許出願第１０／０１７６９４号
【非特許文献１】ＩＴＵ−Ｒ  ＢＳ  １３８７
【発明の開示】
【課題を解決するための手段】
【０００６】
周波数セグメント化（Frequency segmentation）は、スペクトル・データのエンコーディングの品質に重要である。セグメント化は、スペクトル・データをサブバンドまたはベクトルと呼ばれる単位に分解することを必要とする。単純なセグメント化は、スペクトルを所望の個数の均一のセグメント（Homogeneous segments）またはサブバンドに、一様に（uniformly）分割することである。均一セグメント化（Homogeneous segmentation）は、最適状態には及ばない場合がある。より大きいサブバンド・サイズを用いて表現できるスペクトルの領域があり、他の領域が、より小さいサブバンド・サイズを用いてよりよく表される場合がある。スペクトル・データの強度に依存するセグメント化を提供するさまざまな特徴が説明される。より細かいセグメント化が、より大きいスペクトル変動を有する領域に対して提供され、より粗いセグメント化が、より均一な領域（homogeneous regions）について提供される。
【０００７】
たとえば、デフォルトのセグメント化が最初に提供され、最適化が、スペクトル・データ変動の強度に基づいてセグメント化を変更する（modify）。可変するサブバンド・サイズを提供することによって、コーディング効率を改善するためにサブバンドのサイズを指定する機会がもたらされる。しばしば、類似する特性（characteristics）を有するサブバンドを、品質に対する影響をほとんど伴わずにマージすることができるが、非常に変動するデータを有するサブバンドは、あるサブバンドが分割される場合によりよく表現される可能性がある。サブバンドの調性（tonality）、エネルギー、または形状を測定するさまざまな方法を、説明する。これらのさまざまな測定を、サブバンドをいつ分割しまたはマージするかの判断に鑑みて述べる。しかし、より小さいサブバンドは、同一のスペクトル・データを表すのにより多くのサブバンドを必要とする。したがって、より小さいサブバンド・サイズは、情報をコーディングするのにより多くのビットを必要とする。可変サブバンド・サイズが使用される場合に、サブバンドをコーディングするのに必要なデータと、サブバンド構成をデコーダに送るのに必要なデータとの両方を考慮しながら、スペクトル・データを効率的にコーディングするサブバンド構成を提供する。
【０００８】
スペクトル・データは、最初にサブバンドにセグメント化される。任意選択で、初期セグメント化を変更（modify）して、最適セグメント化を作ることができる。２つのそのような初期セグメント化またはデフォルト・セグメント化を、均一分割セグメント化および不均一分割セグメント化と呼ぶ。より高い周波数のサブバンドは、しばしば、元来より小さいバリエーションを有し、したがって、より少数のより大きいサブバンドが、それらのバンドのスケールおよび形状を取り込むことができる。さらに、より高い周波数のサブバンドは、より少ないエネルギーを有し、知覚的に重要性がより低いので、全体的な知覚的歪みにおいてより低い重要性を有する。デフォルト・セグメント化または初期セグメント化は、しばしば、スペクトル・データのコーディングに十分であるが、最適化されたセグメント化から利益を得る信号が存在する。
【０００９】
デフォルト・セグメント化（均一セグメント化または不均一セグメント化など）から始めて、複数のサブバンドが、最適化されたセグメントを得るために分割されまたはマージされる。１つのサブバンドを２つのサブバンドに分割するか、あるいは２つのサブバンドを１つのサブバンドにマージするかに関する判断がなされる。分割するかマージするかの判断は、サブバンド内の変化の強度の測定値など、初期サブバンド内のスペクトル・データのさまざまな特性に基づくものとすることができる。１つの例では、分割するかマージするかの判断は、サブバンド内の調性またはスペクトルの平坦度などのサブバンド・スペクトル・データ特性に基づいて、なされる。１つのそのような例で、エネルギーの比が２つのサブバンドの間で似ており、バンドの少なくとも１つが非調性である場合に、２つの隣接するサブバンドはマージされる。これは、単一の形状ベクトル（たとえば、コードワード）およびスケール係数（scale factor）が、その２つのサブバンドを表すのに十分である可能性が高いからである。
【００１０】
もう１つの例では、サブバンドが分割されると形状のマッチングが大幅に改善される場合に、異なる形状を有するように２つのサブバンドを定義することができる。１つの例で、形状のマッチングは、２つの分割されたサブバンドが、分割前のマッチングと比較して、分割後にはるかに低い平均二乗ユークリッド差（means-square Euclidean difference、MSE）マッチングを有する場合に、よりよいと考えられる。
【００１１】
もう１つの例では、分割されまたはマージされるサブバンドがなくなるまで、アルゴリズムが繰り返して実行される。無限ループの可能性を減らすために、分割、マージ、またはオリジナルとしてサブバンドにタグ付けすることが有益である場合がある。たとえば、あるサブバンドが、分割サブバンドとしてマークされる場合に、そのサブバンドは、それが分割された元のサブバンドに戻されるようにマージされることはない。
【００１２】
本発明の追加の特徴および利益は、添付図面を参照して、続行する次の実施形態の詳細な説明から明白になる。
【発明を実施するための最良の形態】
【００１３】
次の詳細な説明は、コードワードの変更（modification）および／またはデフォルトの周波数セグメント化の変更（modification）を使用するオーディオ・スペクトル・データのオーディオ・エンコーディング／デコーディングを用いるオーディオ・エンコーダ／デコーダの実施形態に向けられる。このオーディオ・エンコーディング／デコーディングは、ある周波数成分を、シェーピングされたノイズ（shaped noise）または他の周波数成分のシェーピングされたバージョンあるいはこの両方の組合せを使用して、表す。より具体的に言うと、いくつかの周波数バンドが、他のバンドのシェーピングされたバージョンまたは変形（transformation）として表される。これは、しばしば、所与の品質でのビットレートの低下または所与のビットレートでの品質の向上を可能にする。任意選択で、初期サブバンド周波数構成は、オーディオ・データの調性、エネルギー、または形状に基づいて変更する（modify）ことができる。
【００１４】
簡単な概要
２００４年６月２９日に出願した特許文献１、名称「Efficient coding of digital media spectral data using wide-sense perceptual similarity」で、スペクトル・データのある部分をコード・ベクトルのスケーリングされたバージョンとして表すことによって、スペクトル・データのコーディングを可能にするアルゴリズムが提供され、ここで、コード・ベクトルは、固定された所定のコードブック（たとえば、ノイズ・コードブック）またはベースバンドから引き出されるコードブック（たとえば、ベースバンド・コードブック）のいずれかから選択される。そのコードブックが適応的に作成されるときに、そのコードブックを、以前にエンコードされたスペクトル・データからなるものとすることができる。
【００１５】
コード・ベクトルが、それが表しているデータをよりよく表すことを可能にするいくつかのルールに従って、コードブック内のコード・ベクトルを変更する（modify）さまざまな任意選択の特徴を説明する。この変更（modification）は、線形変換、非線形変換、または複数の他のオリジナルのもしくは変更されたコード・ベクトルの組合せとしてコード・ベクトルを表すこと、のいずれかからなるものとすることができる。組合せの場合では、この変更（modification）は、１つのコード・ベクトルの諸部分をとり、これを他のコード・ベクトルの諸部分と組み合わせることによって実現することができる。
【００１６】
コード・ベクトルの変更（modification）を使用するときに、デコーダが変換を適用して新しいコード・ベクトルを形成することができるように、ビットを送らなければならない。その追加ビットにもかかわらず、コードワード変更（modification）は、それでも、スペクトル・データの諸部分を表すのに、その部分の実際の波形コーディングよりもより効率的なコーディングである。
【００１７】
説明される技術は、オーディオ・コーディングの品質の改善に関し、イメージ、ビデオ、および音声などのマルチメディアの他のコーディングに適用することもできる。知覚的改善は、オーディオをコーディングするときに、特にスペクトルのうちでコードブックの形成に使用される部分（通常はローバンド（lowband））が、コードブックを使用してコーディングされる部分（通常はハイバンド（highband））と異なる特性を有するときに、得られる。たとえば、ローバンドが「ピーキー」であり、したがって平均値から大きく離れた値を有し、且つ、ハイバンドがそうではない場合、またはその逆の場合に、この技法を使用して、ローバンドをコードブックとして使用してハイバンドをよりよくコーディングすることができる。
【００１８】
ベクトルは、スペクトル・データのサブバンドである。サブバンド・サイズが、所与の実装について可変である場合に、これは、コーディング効率を改善するためにサブバンドのサイズを指定する機会をもたらす。しばしば、類似する特性を有するサブバンドを、品質に対する影響をほとんど伴わずにマージすることができるが、非常に変動するデータを有するサブバンドは、あるサブバンドが分割される場合によりよく表現される可能性がある。サブバンドの調性、エネルギー、または形状を測定するさまざまな方法を、説明する。これらのさまざまな測定を、サブバンドをいつ分割しまたはマージするかを決定する観点から説明する。しかし、より小さい（分割）サブバンドは、同一のスペクトル・データを表すのにより多くのサブバンドを必要とする。したがって、より小さいサブバンド・サイズは、情報をコーディングするのにより多くのビットを必要とする。可変サブバンド・サイズが使用される場合に、サブバンドをコーディングするのに必要なデータと、サブバンド構成をデコーダに送るのに必要なデータとの両方を考慮しながら、スペクトル・データを効率的にコーディングするサブバンド構成を提供する。後続する段落は、より一般化された例からより具体的な例に進行する。
【００１９】
一般化されたオーディオ・エンコーダおよびオーディオ・デコーダ
図１および２は、一般化されたオーディオ・エンコーダ（１００）および一般化されたオーディオ・デコーダ（２００）のブロック図であり、ここで説明されている技法は、コードワードの変更（modification）および／または初期周波数セグメント化の変更（modification）を使用するオーディオ・スペクトル・データのオーディオ・エンコーディング／デコーディングである。そのエンコーダおよびデコーダ内のモジュールの間に示される関係は、そのエンコーダおよびデコーダ内の情報の主な流れを示し、他の関係は、図を単純にするために図示されていない。所望される圧縮の実装およびタイプに依存して、エンコーダまたはデコーダのモジュールは、追加し、省略し、複数のモジュールに分割し、他のモジュールと組合せ、かつ／または類似するモジュールに置換することができる。代替実施形態では、異なるモジュールおよび／またはモジュールの他の構成を有するエンコーダまたはデコーダが、知覚オーディオ品質を測定する。
【００２０】
広義の知覚類似性（wide-sense perceptual similarity）を有するオーディオ・スペクトル・データ・エンコーディング／デコーディングを組み込むことができるオーディオ・エンコーダ／デコーダのさらなる説明は、次の米国特許出願に記載されている：２００４年６月２９日に出願した特許文献１、２００１年１２月１４日に出願した特許文献２、２００１年１２月１４日に出願した特許文献３、２００１年１２月１４日に出願した特許文献４、２００１年１２月１４日に出願した特許文献５、および２００１年１２月１４日に出願した特許文献６。
【００２１】
例示的な一般化されたオーディオ・エンコーダ
一般化されたオーディオ・エンコーダ（１００）は、周波数トランスフォーマ（１１０）、マルチ・チャネル・トランスフォーマ（１２０）、知覚モデラ（１３０）、ウエイタ（weighter）（１４０）、クォンタイザ（量子化器）（１５０）、エントロピー・エンコーダ（１６０）、レート／品質コントローラ（１７０）、およびビットストリーム・マルチプレクサ［「ＭＵＸ」］（１８０）を含む。
【００２２】
エンコーダ（１００）は、時系列の入力オーディオ・サンプル（１０５）を受け取る。複数のチャネルを有する入力（たとえば、ステレオ・モード）について、エンコーダ（１００）は、これらのチャネルを独立に処理し、連係してマルチ・チャネル・トランスフォーマ（１２０）に続く、合同でコーディングされた複数のチャネル（jointly coded channels）を扱うことができる。エンコーダ（１００）は、オーディオ・サンプル（１０５）を圧縮し、エンコーダ（１００）のさまざまなモジュールによって作られた情報を多重化して、ビットストリーム（１９５）を、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏ［「ＷＭＡ」］、Ａｄｖａｎｃｅｄ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ［「ＡＳＦ」］などのフォーマットで出力する。代替として、エンコーダ（１００）は、他の入力フォーマットおよび／または出力フォーマットを扱う。
【００２３】
周波数トランスフォーマ（１１０）は、オーディオ・サンプル（１０５）を受け取り、これを周波数領域のデータに変換する。周波数トランスフォーマ（１１０）は、オーディオ・サンプル（１０５）を、可変時間分解能（variable temporal resolution）を可能にする可変サイズを有するブロックに分割ことができる。小さいブロックは、入力オーディオ・サンプル（１０５）内の短いがアクティブな遷移セグメントで、詳細な時間についてのより多くの保存を可能にするが、多少の周波数分解能（frequency resolution）を犠牲にする。対照的に、大きいブロックは、よりよい周波数分解能およびより不十分な時間分解能（time resolution）を有し、通常は、より長いがより非アクティブなセグメントでのより高い圧縮効率を可能にする。これらのブロックは、オーバーラップさせて、そうしない場合に後の量子化によって導入される可能性があるブロック間の知覚可能な不連続性、を減らすことができる。周波数トランスフォーマ（１１０）は、マルチ・チャネル・トランスフォーマ（１２０）に周波数係数データのブロックを出力し、ブロック・サイズなどのサイド情報をＭＵＸ（１８０）に出力する。周波数トランスフォーマ（１１０）は、周波数係数データとサイド情報との両方を知覚モデラ（perception modeler）（１３０）に出力する。
【００２４】
周波数トランスフォーマ（１１０）は、オーディオ入力サンプル（１０５）のフレームを、時間的に変化するサイズを有するオーバーラップするサブフレーム・ブロックに区分し、時間的に変化するＭＬＴをサブフレーム・ブロックに適用する。例示的なサブフレーム・サイズは、１２５サンプル、２５６サンプル、５１２サンプル、１０２４サンプル、２０４８サンプル、および４０９６サンプルを含む。ＭＬＴは、時間的に変化してサブフレーム・サイズのシーケンスに依存する時間ウィンドウ関数（time window function）によって変調されたＤＣＴのように、動作する。このＭＬＴは、サンプルｘ［ｎ］，０≦ｎ＜ｓｕｂｆｒａｍｅ＿ｓｉｚｅの所与のオーバーラップするブロックを、周波数係数Ｘ［ｋ］，０≦ｋ＜ｓｕｂｆｒａｍｅ＿ｓｉｚｅ／２のブロックに変換する。周波数トランスフォーマ（１１０）は、将来のフレームの複雑さの推定値をレート／品質コントローラ（rate/quality controller）（１７０）に出力することもできる。代替実施形態は、ＭＬＴの他の変形形態を使用する。さらに別の代替実施形態では、周波数トランスフォーマ（１１０）は、ＤＣＴ、ＦＦＴ、または、他のタイプの変調されたもしくは変調されていないオーバーラップするもしくはオーバーラップしない周波数変換を適用し、あるいは、サブバンド・コーディングまたはウェーブレット・コーディングを使用する。
【００２５】
マルチ・チャネル・オーディオ・データに関して、周波数トランスフォーマ（１１０）によって作られる周波数係数データからなる複数のチャネルは、しばしば相関する。この相関を活用するために、マルチ・チャネル・トランスフォーマ（１２０）は、複数のオリジナルの独立にコーディングされたチャネルを、合同でコーディングされた複数のチャネル（jointly coded channels）に変換することができる。たとえば、入力がステレオ・モードである場合に、マルチ・チャネル・トランスフォーマ（１２０）は、次のように、左右のチャネルを和チャネルおよび差チャネルに変換することができる。
【００２６】
【数１】
2009501945.tif 000003
【００２７】
あるいは、マルチ・チャネル・トランスフォーマ（１２０）は、左右のチャネルを独立にコーディングされたチャネルとしてパス・スルーすることができる。より一般的には、複数の個数の入力チャネルについて、マルチ・チャネル・トランスフォーマ（１２０）は、オリジナルの独立にコーディングされたチャネルを変更せずにパス・スルーし、あるいは、オリジナル・チャネルを合同でコーディングされた複数のチャネル（jointly coded channels）に変換する。独立にコーディングされたチャネルまたは合同でコーディングされたチャネルを使用する判断は、事前に決定することができ、あるいは、この判断を、エンコーディング中にブロックごとまたは他の基準（base）で適応的に行うことができる。マルチ・チャネル・トランスフォーマ（１２０）は、使用されたチャネル変換モードを示す、ＭＵＸ（１８０）への、サイド情報を作り出す。
【００２８】
知覚モデラ（１３０）は、所与のビットレートの再構成されたオーディオ信号の品質を高めるために、人間の聴覚系の特性をモデリングする。知覚モデラ（１３０）は、周波数係数の可変サイズブロックのエキサイテーション・パターン（excitation pattern）を計算する。まず、知覚モデラ（１３０）は、ブロックのサイズおよび振幅スケールを正規化する。これは、後続の時間スミアリングを可能にし、品質測定のための一貫したスケールを確立する。任意選択で、知覚モデラ（１３０）は、ある周波数で係数を減衰させて、外耳／中耳伝達関数をモデリングする。知覚モデラ（１３０）は、ブロック内の係数のエネルギーを計算し、２５個の臨界帯域別にこのエネルギーを集計する。代替として、知覚モデラ（１３０）は、臨界帯域の別の個数（たとえば、５５個または１０９個）を使用する。臨界帯域の周波数範囲は、実装依存であり、多数の任意選択が周知である。たとえば、非特許文献１またはその文献で言及される他の文献を参照されたい。知覚モデラ（１３０）は、同時の時間的なマスキングを考慮に入れるために、帯域エネルギーを処理する。代替実施形態では、知覚モデラ（１３０）は、非特許文献１に記載のまたは非特許文献１で言及されたものなどの異なる聴覚モデルに従ってオーディオ・データを処理する。
【００２９】
ウエイタ（１４０）は、知覚モデラ（１３０）から受け取った励起パターンに基づいて重み付け係数（量子化行列とも呼ばれる）を生成し、この重み付け係数を、マルチ・チャネル・トランスフォーマ（１２０）から受け取ったデータに適用する。重み付け係数は、オーディオ・データ内の複数の量子化帯域それぞれの重みを含む。この量子化帯域は、個数または位置において、エンコーダ（１００）内の他の場所で使用される臨界帯域と同一または異なるものとすることができる。重み付け係数は、より多くのノイズをノイズが可聴し難い帯域に置くことによって、およびその逆によって、ノイズの可聴性を最小にすることを目的に、ノイズが量子化帯域にまたがって拡散する比率を指し示す。重み付け係数は、量子化帯域の振幅および個数において、ブロックごとに変更することができる。一実装で、量子化帯域の個数は、ブロック・サイズに従って変化し、より小さいブロックは、より大きいブロックより少ない数の量子化帯域を有する。たとえば、１２８個の係数を有するブロックは、１３個の量子化帯域を有し、２５６個の係数を有するブロックは、１５個の量子化帯域を有し、２０４８個の係数を有するブロックについて、２５個までの量子化帯域がある。これらのブロックと帯域との比率は、例示にすぎない。ウエイタ（１４０）は、独立にまたは合同でコーディングされたチャネル内のマルチ・チャネル・オーディオ・データのチャネルごとに重み付け係数の一つの集合を生成し、あるいは、合同でコーディングされたチャネルについて重み付け係数の単一の集合を生成する。代替実施形態では、ウエイタ（１４０）は、励起パターンに加えてまたはそれ以外の情報から重み付け係数を生成する。
【００３０】
ウエイタ（１４０）は、係数データの重み付けされたブロックをクォンタイザ（１５０）に出力し、その重み付け係数の集合などのサイド情報をＭＵＸ（１８０）に出力する。ウエイタ（１４０）は、重み付け係数をレート／品質コントローラ（１４０）またはエンコーダ（１００）内の他のモジュールに出力することもできる。その重み付け係数の集合は、より効率的な表現のために圧縮することができる。重み付け係数がロッシイ圧縮される場合に、再構成された重み付け係数は、通常は、係数データからなる複数のブロックを重み付けするのに使用される。一つブロックのあるバンド内のオーディオ情報が、なんらかの理由（たとえば、ノイズ置換またはバンド切捨）で完全に除去されている場合に、エンコーダ（１００）が、そのブロックの量子化行列の圧縮をさらに改善することができる場合がある。
【００３１】
クォンタイザ（１５０）は、ウエイタ（１４０）の出力を量子化し、エントロピー・エンコーダ（１６０）への量子化された係数データ、およびＭＵＸ（１８０）への量子化ステップ・サイズを含むサイド情報を作り出す。量子化は、情報の不可逆損失を導入するが、エンコーダ（１００）が、レート／品質コントローラ（１７０）と共に出力ビットストリーム（１９５）のビットレートを規制することをも可能にする。図１では、クォンタイザ（１５０）は、適応均一スカラ・クォンタイザ（adaptive, uniform scalar quantizer）である。クォンタイザ（１５０）は、各周波数係数に同一の量子化ステップ・サイズを適用するが、量子化ステップ・サイズ自体は、ある反復から次の反復で、エントロピー・エンコーダ（１６０）出力のビットレートに影響を与えるために変化することができる。代替実施形態では、クォンタイザは、不均一クォンタイザ、ベクトル・クォンタイザ、および／または非適応クォンタイザである。
【００３２】
エントロピー・エンコーダ（１６０）は、クォンタイザ（１５０）から受け取った量子化された係数データをロスレス圧縮する。たとえば、エントロピー・エンコーダ（１６０）は、マルチ・レベル・ランレングス・コーディング、ｖａｒｉａｂｌｅ−ｔｏ−ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈコーディング、ランレングス・コーディング、ハフマン・コーディング、辞書コーディング、算術コーディング、ＬＺコーディング、上記の組合せ、またはある他のエントロピー・エンコーディング技法を使用する。
【００３３】
レート／品質コントローラ（１７０）は、エンコーダ（１００）の出力のビットレートおよび品質を規制するためにクォンタイザ（１５０）と共に働く。レート／品質コントローラ（１７０）は、エンコーダ（１００）の他のモジュールから情報を受け取る。一実装では、レート／品質コントローラ（１７０）は、周波数トランスフォーマ（１１０）から将来の複雑さの推定値を、知覚モデラ（１３０）からサンプリング・レート、ブロック・サイズ情報、オリジナル・オーディオ・データの励起パターンを、ウエイタ（１４０）から重み付け係数を、ＭＵＸ（１８０）からある形の（たとえば、量子化された、再構成された、またはエンコードされた）量子化されたオーディオ情報のブロックおよびバッファ状況情報を受け取る。レート／品質コントローラ（１７０）には、量子化された形からオーディオ・データを再構成するために、逆クォンタイザ、逆ウエイタ、逆マルチ・チャネル・トランスフォーマ、ならびに、潜在的に、エントロピー・デコーダおよび他のモジュールを含めることができる。
【００３４】
レート／品質コントローラ（１７０）は、その情報を処理し、現在の条件を与えられて所望の量子化ステップ・サイズを決定し、この量子化ステップ・サイズをクォンタイザ（１５０）に出力する。次に、レート／品質コントローラ（１７０）は、下で説明するように、その量子化ステップ・サイズを用いて量子化された、再構成されたオーディオ・データのブロックの品質を測定する。測定された品質ならびにビットレート情報を使用して、レート／品質コントローラ（１７０）は、瞬間的と長期との両方でビットレート制約および品質制約を満足させることを目的に、量子化ステップ・サイズを調整する。代替実施形態では、レート／品質コントローラ（１７０）は、異なる情報または追加の情報を扱い、あるいは、品質およびビットレートを規制するために異なる技法を適用する。
【００３５】
レート／品質コントローラ（１７０）と共に、エンコーダ（１００）は、ノイズ置換、バンド切捨、および／またはマルチ・チャネル・リマトリクシング（multi-channel rematrixing）を、オーディオ・データのブロックに適用することができる。低ビットレートおよび中ビットレートで、オーディオ・エンコーダ（１００）は、ノイズ置換を使用して、ある種のバンドで情報を伝えることができる。バンド切捨では、あるブロックの測定された品質が低い品質を示す場合に、エンコーダ（１００）は、ある（通常はより高い周波数の）バンド内の係数を完全に除去して、残りのバンドの総合品質を改善することができる。マルチ・チャネル・リマトリクシングでは、合同でコーディングされたチャネル内の低ビットレートのマルチ・チャネル・オーディオ・データについて、エンコーダ（１００）は、あるチャネル（たとえば、差チャネル）の情報を抑制して、残りのチャネル（たとえば、和チャネル）の品質を改善することができる。
【００３６】
ＭＵＸ（１８０）は、オーディオ・エンコーダ（１００）の他のモジュールから受け取ったサイド情報を、エントロピー・エンコーダ（１６０）から受け取ったエントロピー・エンコードされたデータと一緒に多重化する。ＭＵＸ（１８０）は、ＷＭＡまたはオーディオ・デコーダが認識する別のフォーマットで情報を出力する。
【００３７】
ＭＵＸ（１８０）は、エンコーダ（１００）によって出力されるビットストリーム（１９５）を格納する仮想バッファを含む。仮想バッファは、オーディオの複雑さの変化に起因するビットレートの短期変動の全体を通して平滑化するために、所定の持続時間のオーディオ情報（たとえば、ストリーミング・オーディオについて５秒）を格納する。次に、仮想バッファは、比較的一定のビットレートでデータを出力する。バッファの現在の充足度、バッファの充足度の変化のレート、およびバッファの他の特性は、品質およびビットレートを規制するために、レート／品質コントローラ（１７０）によって使用、することができる。
【００３８】
例示的な一般化されたオーディオ・デコーダ
図２を参照すると、一般化されたオーディオ・デコーダ（２００）は、ビットストリーム・デマルチプレクサ［「ＤＥＭＵＸ」］（２１０）、エントロピー・デコーダ（２２０）、逆クォンタイザ（２３０）、ノイズ・ジェネレータ（２４０）、逆ウエイタ（２５０）、逆マルチ・チャネル・トランスフォーマ（２６０）、および逆周波数トランスフォーマ（２７０）を含む。デコーダ（２００）は、レート／品質制御に関するモジュールを含まないので、エンコーダ（１００）より単純である。
【００３９】
デコーダ（２００）は、ＷＭＡまたは別のフォーマットで、圧縮オーディオ・データのビットストリーム（２０５）を受け取る。ビットストリーム（２０５）は、エントロピー・エンコードされたデータならびにサイド情報を含み、それらからデコーダ（２００）がオーディオ・サンプル（２９５）を再構成することになる。複数のチャネルを有するオーディオ・データについて、デコーダ（２００）は、各チャネルを独立に処理し、逆マルチ・チャネル・トランスフォーマ（２６０）の前で、合同でコーディングされたチャネルを扱うことができる。
【００４０】
ＤＥＭＵＸ（２１０）は、ビットストリーム（２０５）内の情報を解析し、情報をデコーダ（２００）の複数のモジュールに送る。ＤＥＭＵＸ（２１０）は、オーディオの複雑さの変動、ネットワーク・ジッタ、および／または他の要因に起因するビットレートの短期バリエーションを補償するために１つまたは複数のバッファを含む。
【００４１】
エントロピー・デコーダ（２２０）は、ＤＥＭＵＸ（２１０）から受け取ったエントロピー・コードを圧縮解除し、量子化された周波数係数データを作る。エントロピー・デコーダ（２２０）は、通常、エンコーダで使用されたエントロピー・エンコーディング技法の逆を適用する。
【００４２】
逆クォンタイザ（２３０）は、ＤＥＭＵＸ（２１０）から量子化ステップ・サイズを受け取り、エントロピー・デコーダ（２２０）から量子化された周波数係数データを受け取る。逆クォンタイザ（２３０）は、量子化された周波数係数データに量子化ステップ・サイズを適用して、周波数係数データを部分的に再構成する。代替実施形態では、逆クォンタイザは、エンコーダで使用されたある他の量子化技法の逆を適用する。
【００４３】
ノイズ・ジェネレータ（２４０）は、ＤＥＭＵＸ（２１０）から、データのブロックのどのバンドがノイズ置換されるかの指標（indication）ならびにノイズの形に関するすべてのパラメータを受け取る。ノイズ・ジェネレータ（２４０）は、示されたバンドのパターンを生成し、その情報を逆ウエイタ（２５０）に渡す。
【００４４】
逆ウエイタ（２５０）は、ＤＥＭＵＸ（２１０）から重み付け係数を、ノイズ・ジェネレータ（２４０）からすべてのノイズ置換されたバンドのパターンを、逆クォンタイザ（２３０）から部分的に再構成された周波数係数データを受け取る。必要に応じて、逆ウエイタ（２５０）は、重み付け係数を圧縮解除する。逆ウエイタ（２５０）は、ノイズ置換されなかったバンドの部分的に再構成された周波数係数データに重み付け係数を適用する。次に、逆ウエイタ（２５０）は、ノイズ・ジェネレータ（２４０）から受け取ったノイズ・パターンを追加する。
【００４５】
逆マルチ・チャネル・トランスフォーマ（２６０）は、逆ウエイタ（２５０）から再構成された周波数係数データを、ＤＥＭＵＸ（２１０）からチャネル変換モード情報を受け取る。マルチ・チャネル・データが独立にコーディングされたチャネルにある場合に、逆マルチ・チャネル・トランスフォーマ（２６０）は、チャネルをパス・スルーする（そのまま渡す）。マルチ・チャネル・データが合同でコーディングされたチャネルにある場合に、逆マルチ・チャネル・トランスフォーマ（２６０）は、データを独立にコーディングされたチャネルに変換する。望まれる場合に、デコーダ（２００）は、再構成された周波数係数データの品質を、この時点で測定することができる。
【００４６】
逆周波数トランスフォーマ（２７０）は、マルチ・チャネル・トランスフォーマ（２６０）によって出力された周波数係数データならびにＤＥＭＵＸ（２１０）からのブロック・サイズなどのサイド情報を受け取る。逆周波数トランスフォーマ（２７０）は、エンコーダで使用された周波数変換の逆を適用し、再構成されたオーディオ・サンプル（２９５）のブロックを出力する。
【００４７】
変更されたコードワードおよび広義知覚類似性を用いる例示的なエンコーディング／デコーディング
図３に、図１および２の一般化されたオーディオ・エンコーダ（１００）およびデコーダ（２００）の全体的なオーディオ・エンコーディング／デコーディング・プロセスに組み込むことができる、広義知覚類似性などの、適応サブバンド構成および／または変更されたコードワードを用いるエンコーディングを使用するオーディオ・エンコーダ（３００）の一実装を示す。この実装では、オーディオ・エンコーダ（３００）は、サブバンド変換またはＭＤＣＴもしくはＭＬＴなどのオーバーラップした直交変換のいずれかを使用することによって、変換（３２０）でスペクトル分解を実行して、オーディオ信号の入力ブロックごとにスペクトル係数の一つの集合を作る。周知のように、オーディオ・エンコーダは、デコーダに出力ビットストリームの形で送るために、これらのスペクトル係数をコーディングする。これらのスペクトル係数の値のコーディングが、オーディオ・コーデックで使用されるビットレートのほとんどを構成する。低ビットレートでは、オーディオ・エンコーダ（３００）は、ベースバンド・コーダ（３４０）を使用して、スペクトルの下側部分すなわちベースバンド部分など、より少数のスペクトル係数（すなわち、周波数トランスフォーマ（１１０）から出力されるスペクトル係数の、帯域幅のあるパーセンテージでエンコードできる個数の係数）をコーディングするように選択する。ベースバンド・コーダ（３４０）は、上で一般化されたオーディオ・エンコーダに関して説明したように、周知のコーディング構文を使用して、これらのベースバンド・スペクトル係数をエンコードする。これは、一般に、マッフルされて（mauffled）、または低域フィルタリングされて聞こえる、再構成されたオーディオをもたらす。
【００４８】
オーディオ・エンコーダ（３００）は、省略されたスペクトル係数を、適応サブバンド構成および／または広義知覚類似性を用いる変更されたコードワードを使用してコーディングすることによって、マッフル／低域濾波効果（muffled/low-pass effect）を避ける。ベースバンド・コーダ（３４０）を用いるコーディングから省略されたスペクトル係数（本明細書では、「拡張バンド・スペクトル係数」と称する）は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいはこの２つの複数の組合せとして、拡張バンドコーダ（３５０）によってコーディングされる。より具体的には、拡張バンド・スペクトル係数は、さまざまな潜在的に異なるサイズ（たとえば、通常は１６個、３２個、６４個、１２８個、２５６個、．．．などのスペクトル係数）の複数のサブバンドに分割される。これは、充実したより豊かなサウンドを与えるために、欠けているスペクトル係数からなる知覚的に満足なバージョンを追加する。実際のスペクトルが、このエンコーディングから生じる合成バージョンから逸脱する場合があるが、この拡張バンド・コーディングは、オリジナルに似た知覚的効果をもたらす。
【００４９】
いくつかの実装で、ベースバンドの幅（すなわち、ベースバンド・コーダ３４０を使用してコーディングされるベースバンド・スペクトル係数の個数）ならびに拡張バンドのサイズまたは個数は、デフォルト構成または初期構成から変更することができる。その場合に、ベースバンドの幅、および／または拡張バンド・コーダ（３５０）を使用してコーディングされる拡張バンドの個数（もしくはサイズ）を、出力ビットストリーム（１９５）にコーディング（３６０）することができる。
【００５０】
望ましい場合に、オーディオ・エンコーダ（３００）でのベースバンド・スペクトル係数と拡張バンド係数との間のビットストリームの区分化が、ベースバンド・コーダのコーディング構文に基づいて既存デコーダとの下位互換性（backward compatibility）を保証するために行われ、その結果、そのような既存デコーダが、拡張部分を無視しながらベースバンドのコーディングされた部分をデコードできるようになる。その結果は、より新しいデコーダが、拡張バンドのコーディングされたビットストリームによってカバーされる全スペクトルをレンダリングする能力を有し、一方、より古いデコーダが、エンコーダが既存構文を用いてエンコードすることを選択した部分をレンダリングできることである。周波数境界（たとえば、ベースバンド部分と拡張部分との間の境界）は、柔軟であり、時間的に変化するものとすることができる。周波数境界は、信号特性に基づいてエンコーダによって判断し、デコーダに明示的に送るか、デコードされるスペクトルの関数とし、送られる必要をなくすかのいずれかとすることができる。既存のデコーダは、既存（ベースバンド）コーデックを使用してコーディングされた部分をデコードすることしかできないので、これは、スペクトルの下側部分（たとえば、ベースバンド）が、既存コーデックを用いてコーディングされ、上側部分が、広義知覚類似性を使用する、変更されたコードワードを用いる拡張バンド・コーディングを使用してコーディングされることを意味する。
【００５１】
そのような下位互換性が必要ではない他の実装では、エンコーダは、周波数境界位置を考慮せずに、信号特性およびエンコーディングのコストだけに基づいて、従来のベースバンド・コーディングと（変更されたコードワードおよび広義知覚類似性手法を用いる）拡張バンドとの間で選択する自由を有する。たとえば、自然な信号ではまずありそうにはないが、より高い周波数を従来のコーデックによってエンコードし、下側部分を拡張コーデックを使用してエンコードすることが、よりよい可能性がある。
【００５２】
エンコーディングの例示的方法
図４は、拡張バンド・スペクトル係数をエンコードするために図３の拡張バンドコーダ（３５０）によって実行されるオーディオ・エンコーディング・プロセス（４００）を示す流れ図である。このオーディオ・エンコーディング・プロセス（４００）では、拡張バンド・コーダ（３５０）は、拡張バンド・スペクトル係数を複数のサブバンドに分割する。通常の実装では、これらのサブバンドは、一般に、それぞれ６４個または１２８個のスペクトル係数からなる。代替として、他のサイズのサブバンド（たとえば、１６個、３２個、または他の個数のスペクトル係数）を使用することができる。拡張バンド・エンコーダが、サブバンドのサイズを変更する可能性を提供する場合には、拡張バンド構成プロセス（３６０）が、サブバンドを変更し、拡張バンド構成をエンコードする。サブバンドは、互いに素とすることができ、あるいは、オーバーラップする（ウィンド・ウイングを使用する）ものとすることができる。オーバーラップするサブバンドを用いると、より多くのバンドがコーディングされる。たとえば、１２８個のスペクトル係数を、サイズ６４のサブバンドを用いて拡張バンド・コーダを使用してコーディングしなければならない場合に、この方法は、係数をコーディングするのに２つの互いに素なバンドを使用し、係数０から６３を一方のサブバンドとして、係数６４から１２７を他方のサブバンドとしてコーディングする。代替として、５０％オーバーラップを有する３つのオーバーラップするバンドを使用し、０から６３を１つのバンド、３２から９５をもう１つのバンド、６４から１２７を第３のバンドとしてコーディングすることができる。サブバンドの周波数セグメント化のさまざまな他の動的方法を、本明細書で後で述べる。
【００５３】
これらの固定されたサブバンドまたは動的に最適化されるサブバンドのそれぞれについて、拡張バンド・コーダ（３５０）は、２つのパラメータを使用してバンドをエンコードする。一方のパラメータ（「スケール・パラメータ」）は、バンド内の総エネルギーを表すスケール係数である。他方のパラメータ（一般に動きベクトルの形の「形状パラメータ」）は、バンド内のスペクトルの形状を表すのに使用される。任意選択で、下で述べるように、形状パラメータは、指数、ベクトル方向（たとえば、順方向／逆方向）、および／または係数符号変換を示す１つまたは複数の形状変換ビットを必要とする。
【００５４】
図４の流れ図に示されているように、拡張バンド・コーダ（３５０）は、拡張バンドのサブバンドごとにプロセス（４００）を実行する。まず（４２０で）、拡張バンド・コーダ（３５０）は、スケール係数（scale factor）を計算する。一実装で、スケール係数は、単純に、現在のサブバンド内の係数のｒｍｓ（二乗平均平方根）値である。これは、すべての係数の二乗値の平均の平方根をとることによって見つけられる。二乗値の平均は、サブバンド内のすべての係数の二乗値の合計をとり、係数の個数で割ることによって見つけられる。
【００５５】
次に、拡張バンド・コーダ（３５０）は、形状パラメータを決定する。形状パラメータは、通常、動きベクトルであり、これは、既にコーディングされたスペクトルの部分からのスペクトルの正規化されたバージョン（すなわち、ベースバンド・コーダを用いてコーディングされたベースバンド・スペクトル係数の部分）を単純にコピーオーバーすることを示す。いくつかの場合に、形状パラメータは、その代わりに、正規化されたランダム・ノイズ・ベクトルまたは単に固定コードブックからのスペクトル形状のベクトルを指定することができる。スペクトルの別の部分から形状をコピーすることは、オーディオにおいては、通常、多くの調性信号に、スペクトル全体を通じて繰り返す高調波成分があるので、有用である。ノイズまたはある他の固定コードブックの使用は、スペクトルのベースバンド・コーディングされた部分では明確に表されない成分の低ビットレート・コーディングを可能にする。したがって、プロセス（４００）は、本質的にこれらのバンドの利得−形状ベクトル量子化コーディングであるコーディングの方法を提供し、ここで、ベクトルは、スペクトル係数からなる周波数バンドであり、コードブックは、以前にコーディングされたスペクトルからとられ、他の固定ベクトルまたはランダム・ノイズ・ベクトルをも含むことができる。すなわち、拡張バンド・コーダによってコーディングされる各サブバンドは、ａ＊Ｘと表され、‘ａ’は、スケール・パラメータであり、‘Ｘ’は、形状パラメータによって表されるベクトルであり、（任意の）以前にコーディングされたスペクトル係数の正規化されたバージョン、固定コードブックからのベクトル、またはランダム・ノイズ・ベクトルとすることができる。また、スペクトルのこのコピーされる部分が、その同一部分の従来のコーディングに追加される場合に、この追加は、残差コーディング（residual coding）である。これは、信号の従来のコーディングが、少いビットを用いてコーディングするのが容易であるベース表現（たとえば、スペクトル・フロアのコーディング）を与え、残りが新しいアルゴリズムを用いてコーディングされる場合に、有用になり得る。
【００５６】
より具体的には、アクション（４３０）で、拡張バンドコーダ（３５０）は、現在のサブバンドに類似する形状を有するスペクトル係数のベースバンド内のベクトルを求めてベースバンド（または他の以前にコーディングされた）スペクトル係数を探索する。前に述べたように、「ベースバンドからのコードワード」には、現在のベースバンドの外部のソースも含まれる。拡張バンド・コーダは、ベースバンドの各部分の正規化されたバージョンとの最小二乗平均比較（least-means-square comparison）を使用して、ベースバンド（または他の以前のバンド）のどの部分が現在のサブバンドに最も似ているかを決定する。任意選択で、マッチングのために、複数の形状からなるより大きいユニバースを作成するために、線形変換または非線形変換（４３１）を、ベースバンド（または他の以前のバンド）のスペクトルの１つまたは複数の部分に適用する。再び、このベースバンドは、コードワードのソースについて述べるときに、ライブラリおよび他の以前のバンドを含む。任意選択で、拡張バンド・エンコーダは、マッチング用に使用可能な形状からなるより大きいライブラリを提供するために、ベースバンドおよび／または固定コードブックに対して１つまたは複数の線形変換または非線形変換を実行する。たとえば、入力ブロックから変換（３２０）によって作られた２５６個のスペクトル係数があり、拡張バンドのサブバンド（この例での）が、それぞれ幅においてスペクトル係数１６個分であり、ベースバンド・コーダが、ベースバンドとして最初の１２８個のスペクトル係数（０から１２７までの番号を付す）をエンコードする場合を検討されたい。すると、この探索は、係数位置０から１１１までで開始して（すなわち、この事例ではベースバンド内でコーディングされる合計１１２個の可能な異なるスペクトル形状）ベースバンド（または任意の以前にコーディングされたバンド）の各１６個のスペクトル係数部分の正規化されたバージョンとの、各拡張バンド内の正規化された１６個のスペクトル係数の最小二乗平均比較を実行する。最小の最小二乗平均値を有するベースバンド部分が、形状において現在の拡張バンドに最も近い（最も似ている）と考えられる。任意選択で、この探索は、ベースバンド（または他のバンド）の線形変換または非線形変換（４３１）に対して最小二乗平均比較を実行する。アクション（４３２）で、拡張バンド・コーダは、ベースバンド・スペクトル係数のうちのこの最も似ているバンドが、形状において現在の拡張バンドに十分に近い（たとえば、最小二乗平均値が事前に選択された閾値より小さい）かどうかをチェックする。そうである場合には、拡張バンド・コーダは、アクション（４３４）で、ベースバンド・スペクトル係数のこの最もよくマッチングするバンドをポイントする動きベクトルを決定し、任意選択で、最もよくマッチングする動きベクトルに対する線形変換または非線形変換に関する情報を決定する。動きベクトルは、ベースバンド内の開始係数位置（たとえば、この例では０から１１１まで）とすることができる。他の方法（調性対非調性をチェックするなど）を使用して、ベースバンド（または他のバンド）スペクトル係数のうちの最も似ているバンドが形状に���いて現在の拡張バンドに十分に近いかどうかを調べることもできる。
【００５７】
ベースバンドの十分に似ている部分が見つからない場合には、拡張バンド・コーダは、現在のサブバンドを表すために、スペクトル形状の固定コードブックを調べる（４４０）。拡張バンド・コーダは、現在のサブバンドのスペクトル形状に似たスペクトル形状を求めてこの固定コードブックを探索する（４４０）。任意選択で、この探索は、固定コードブックの線形変換または非線形変換（４３１）に対して最小二乗平均比較を実行する。見つかった場合には、拡張バンド・コーダは、アクション（４４４）で形状パラメータとしてコードブック内のそのインデックスを使用し、任意選択として、コードブック内の最もよくマッチングするインデックスに対する線形変換または非線形変換に関する情報を使用する。そうでない場合には、アクション（４５０）で、拡張バンド・コーダは、現在のサブバンドの形状を、正規化されたランダム・ノイズ・ベクトルとして表すと決定することもできる。
【００５８】
代替実装では、拡張バンド・エンコーダは、ベースバンド内で最良のスペクトル形状を探す前でさえ、スペクトル係数をノイズを使用して表すことができるかどうかを判断することができる。この方法では、十分に近いスペクトル形状がベースバンド内で見つかる場合であっても、拡張バンド・コーダは、それでも、ランダム・ノイズを使用してその部分をコーディングする。これは、ベースバンド内の位置に対応する動きベクトルを送ることと比較したときに、より少いビットをもたらすことができる。
【００５９】
アクション（４６０）で、拡張バンド・コーダは、予測コーディング、量子化、および／またはエントロピー・コーディングを使用して、スケール・パラメータおよび形状パラメータ（すなわち、この実装ではスケーリング係数および動きベクトル、ならびに、任意選択で、線形変換情報または非線形変換情報）をエンコードする。一実装では、たとえば、スケール・パラメータが、直前の拡張サブバンドに基づいて予測コーディングされる（拡張バンドのサブバンドのスケーリング係数は、値において似ており、その結果、連続するサブバンドは、通常は、値において近いスケーリング係数を有することになる）。言い換えると、拡張バンドの最初のサブバンドのスケーリング係数の全ての値が、エンコードされる。後続サブバンドは、実際の値の、その予測された値からの差としてコーディングされる（すなわち、予測された値は、先行するサブバンドのスケーリング係数である）。マルチ・チャネル・オーディオについて、各チャネル内の拡張バンドの最初のサブバンドは、その全ての値としてエンコードされ、後続サブバンドのスケーリング係数は、そのチャネル内の前のサブバンドのスケーリング係数から予測される。代替実装では、他の変形形態の中で、スケール・パラメータを、チャネルにまたがって、複数の他のサブバンドから、ベースバンド・スペクトルから、または以前のオーディオ入力ブロックから予測することもできる。
【００６０】
拡張バンド・コーダは、さらに、均一量子化または不均一量子化を使用してスケール・パラメータを量子化する。一実装では、スケール・パラメータの不均一量子化が使用され、ここで、スケーリング係数の対数が、均一に１２８個のビンに量子化される。その後、結果の量子化された値が、ハフマン・コーディングを使用してエントロピー・コーディングされる。
【００６１】
形状パラメータについて、拡張バンド・コーダは、予測コーディング（スケール・パラメータと同様に、先行するサブバンドから予測することができる）、６４個のビンへの量子化、およびエントロピー・コーディング（たとえば、ハフマン・コーディングを用いる）をも使用する。
【００６２】
いくつかの実装で、拡張バンド・サブバンドを、サイズにおいて可変とすることができる。その場合に、拡張バンド・コーダは、拡張バンドの構成をもエンコードする。
【００６３】
より具体的には、１つの例の実装で、拡張バンド・コーダは、表１の擬似コード・リスティングによって示されるように、スケール・パラメータおよび形状パラメータをエンコードする。複数のスケール・パラメータまたは形状パラメータを、複数コードワード（multiple codeword case）の事例について送ることができる。
【００６４】
【表１】
2009501945.tif 000004
【００６５】
上のコード・リスティングでは、バンド構成（すなわち、バンドの個数およびバンドのサイズ）を指定するコーディングは、拡張バンド・コーダを使用してコーディングされるスペクトル係数の個数に依存する。拡張バンド・コーダを使用してコーディングされる係数の個数は、拡張バンドの開始位置およびスペクトル係数の総数を使用して見つけることができる（拡張バンド・コーダを使用してコーディングされるスペクトル係数の個数＝スペクトル係数の総数−開始位置）。１つの例で、バンド構成は、許容されるすべての可能な構成のリスティングへのインデックスとしてコーディングされる。このインデックスは、ｎ＿ｃｏｎｆｉｇ＝ｌｏｇ２（構成の個数）ビットを有する固定長コードを使用してコーディングされる。許容される構成は、この方法を使用してコーディングされるスペクトル係数の個数の関数である。たとえば、１２８個の係数がコーディングされる場合に、デフォルト構成は、サイズ６４の２個のバンドである。他の構成が可能である場合があり、たとえば、表２に、１２８個のスペクトル係数に関する複数のバンド構成のリスティングを示す。
【００６６】
【表２】
2009501945.tif 000005
【００６７】
したがって、この例では、５つの可能なバンド構成がある。そのような構成では、係数のデフォルト構成は、‘ｎ’個のバンドを有するものとして選択される。次に、各バンドが分割またはマージ（１レベルのみ）のいずれかを行うことを可能にすると、５（ｎ／２）個の可能な構成があり、これは、コーディングするのに（ｎ／２）ｌｏｇ２（５）ビットを必要とする。他の実装では、可変長コーディングを使用して、構成をコーディングすることができる。コードワード変更から利益を得るために、拡張バンド構成の特定の方法は必要ではない。さらに、有益であるためにそのようなコードワード変更方法を一切必要としない、拡張バンド構成のさまざまな他の方法を、後で述べる。
【００６８】
上で述べたように、スケール係数は、予測コーディングを使用してコーディングされ、ここで、予測は、同一チャネル内の以前のバンドから、同一タイル内の以前のチャネルから、または以前にデコードされたタイルからの以前にコーディングされたスケール係数からとることができる。所与の実装について、予測の選択は、以前のバンド（同一拡張バンド内、同一チャネル内、または同一タイル（入力ブロック）内）のどれが最高の相関をもたらしたかを調べることによって行うことができる。一実装例では、バンドは、次のように予測コーディングされる。
【００６９】
あるタイルのスケール係数がｘ［ｉ］［ｊ］であるものとし、ここで、ｉ＝チャネル・インデックス、ｊ＝バンド・インデックスである。
【００７０】
ｉ＝＝０  ＆＆  ｊ＝＝０（最初のチャネル、最初のバンド）について、予測はない。
【００７１】
ｉ！＝０  ＆＆  ｊ＝＝０（他のチャネルの、最初のバンド）について、予測はｘ［０］［０］である（最初のチャネル、最初のバンド）。
【００７２】
ｉ！＝０  ＆＆  ｊ！＝０（他のチャネル、他のバンド）について、予測はｘ［ｉ］［ｊ−１］である（同一チャネル、以前のバンド）。
【００７３】
上のコード・テーブルで、「形状パラメータ」は、スペクトル係数の以前のコードワードの位置を指定する動きベクトル、固定コードブックからのベクトル、またはノイズである。前のスペクトル係数は、同一チャネル内から、以前のチャネルから、または以前のタイルからのスペクトル係数とすることができる。形状パラメータは、予測を使用してコーディングされ、ここで、予測は、同一チャネル内の以前のバンドの以前の位置から、同一タイル内の以前のチャネル、または以前のタイルからとられる。任意の線形変換または非線形変換を、形状に適用することができる。「変換」パラメータは、そのような変換情報、変換情報へのインデックス、またはその他を示す。
【００７４】
デコーディングの例示的方法
図５に、オーディオ・エンコーダ（３００）によって作られたビットストリーム用のオーディオ・デコーダ（５００）を示す。このデコーダでは、エンコードされたビットストリーム（２０５）が、ビットストリーム・デマルチプレクサ（２１０）によってベースバンド・コード・ストリームおよび拡張バンド・コード・ストリームに逆多重化され（たとえば、コーディングされたベースバンド幅および拡張バンド構成に基づいて）、このベースバンド・コード・ストリームおよび拡張バンド・コード・ストリームは、ベースバンド・デコーダ（５４０）および拡張バンド・デコーダ（５５０）内でデコードされる。ベースバンド・デコーダ（５４０）は、ベースバンド・コーデックの従来のデコーディングを使用して、ベースバンド・スペクトル係数をデコードする。拡張バンド構成デコーダ（５４５）は、デフォルト・バンド構成からの最適化が利用される場合に、最適化されたバンド・サイズをデコードする。拡張バンド・デコーダ（５５０）は、拡張バンド・コード・ストリームを、形状パラメータ（および動きベクトルによってポイントされる係数の線形変換または非線形変換に関するすべての任意選択の情報）の動きベクトルによってポイントされるオリジナルのまたは変換されたベースバンド・スペクトル係数（または任意の以前のバンドもしくはコードブック）の１つまたは複数の部分をコピーオーバーすることによって、スケール・パラメータのスケーリング係数によってスケーリングすることによって、を含み、デコードする。ベースバンド・スペクトル係数および拡張バンド・スペクトル係数は、単一のスペクトルに組み合わされ、この単一のスペクトルが、逆変換５８０によって変換されて、オーディオ信号が再構成される。
【００７５】
図６に、図５の拡張バンド・デコーダ（５５０）で使用されるデコーディング・プロセス（６００）を示す。拡張バンド・コード・ストリーム内の拡張バンドのコーディングされたサブバンドごとに（アクション（６１０））、拡張バンド・デコーダは、スケール係数をデコードし（アクション（６２０））、すべての変換情報と一緒に動きベクトルをデコードする（アクション（６３０））。次に、拡張バンド・デコーダは、動きベクトル（形状パラメータ）によって識別されるベースバンドのサブバンド、固定コードブック・ベクトル、またはランダム・ノイズ・ベクトルをコピーし、および、すべての識別された変換を実行する（アクション（６４０））。拡張バンド・デコーダは、コピーされたスペクトル・バンドまたはベクトルをスケーリング係数によってスケーリングして、拡張バンドの現在のサブバンドのスペクトル係数を作る。
【００７６】
例示的なスペクトル係数
図７は、スペクトル係数の一つの集合を表すグラフである。たとえば、係数（複数）（７００）は、オーディオ信号の入力ブロックごとにスペクトル係数の一つの集合を作る、ある変換、またはＭＤＣＴもしくはＭＣＴなどのオーバーラップした直交変換の、出力である。
【００７７】
図７に示されているように、変換の出力のうちでベースバンド（７０２）と呼ばれる部分は、ベースバンド・コーダによってエンコードされる。次に、拡張バンド（７０４）は、均一なサイズまたはさまざまなサイズ（７０６）のサブバンドに分割される。ベースバンド内の形状（７０８）（たとえば、係数の系列によって表される形状）が、拡張バンド内の形状（７１０）と比較され、ベースバンド内の似ている形状を表すオフセット（７１２）が、エンコードされデコーダに送られる必要があるビットがより少なくなるように、拡張バンド内の形状（たとえば、サブバンド）をエンコードするのに使用される。
【００７８】
ベースバンド（７０２）サイズは、変更することができ、結果の拡張バンド（７０４）は、ベースバンドに基づいて変更することができる。拡張バンドを、さまざまな複数のサイズのサブバンド・サイズ（７０６）に分割することができる。
【００７９】
この例では、ベースバンド・セグメント（このバンドまたは任意の以前のバンドからの）が、拡張バンド内のサブバンド（７１０）をシミュレートするためにコードワード（７０８）を識別するのに使用される。コーディングされるベクトル（７１０）用のモデルをより接近して提供することのできる他の形状（たとえば、係数の他の系列）を作成するために、コードワード（７０８）を線形変換しまたは非線形変換することができる。
【００８０】
したがって、ベースバンド内の複数のセグメントが、拡張バンド内のデータをコーディングするために潜在的モデル（たとえば、コードブック、ライブラリ、またはコードワードの辞書）として使用される。拡張バンド内のサブバンド内の実際の係数（７１０）を送るのではなく、動きベクトル・オフセット（７１２）などの識別子が、拡張バンドのデータを表すためにエンコーダに送られる。しかし、時々、サブバンド内でモデリングされているデータに関するベースバンド内に接近した一致がない場合がある。これは、限られたサイズのベースバンドを可能にする低ビットレート制約のゆえである場合がある。上で述べたように、拡張ベースバンドに対する相対的なベースバンド・サイズ（７０２）は、時間、出力デバイス、または帯域幅などのコンピューティング・リソースに基づいて変化することができる。
【００８１】
もう１つの例では、別のコードブック（７１６）が、設けられるか、あるいはエンコーダ／デコーダから使用可能であり、最もマッチングする識別子が、コードブック内の最も接近してマッチするコードワード（７１８）へのインデックスとして提供される。さらに、ランダム・ノイズがコードワードとして望ましい場合に、ビットストリームの一部（ベースバンドからのビットなど）が、エンコーダとデコーダとの両方で、乱数ジェネレータに同様にシードを与えるために使用することができる。
【００８２】
これらのさまざまな方法は、サブバンド（７１０）または他のベクトルのコーディングのために、コードワードのライブラリまたは辞書を作成して、形状をマッチングするための複数のコードワードからなるより大きいユニバースを提供するのに使用することができ、その結果、係数自体を、個別に量子化されるのではなく、動きベクトル（７１２）を介してモデリングすることができる。
【００８３】
コードワードの例示的変換
図８は、コードワードと、そのコードワードのさまざまな線形変換および非線形変換とを示すグラフである。たとえば、コードワード（８０２）は、ベースバンド、固定コードブック、および／またはランダムに生成されたコードワードからのものである。さまざまな線形変換および非線形変換が、コーディングされるベクトルをマッチングさせる際に最良の形状を識別するための形状のより大きいまたはより多様な集合を得るために、ライブラリ内の１つまたは複数のコードワードに対して実行される。１つの例で、コードワードは、形状マッチング用の別のコードワードを得るために、係数順序において逆転（８０４）される。係数値＜１，１．５，２．２，３．２＞を含むコードワードの逆は、＜３．２，２．２，１．５，１＞になる。もう１つの例で、コードワードのダイナミック・レンジまたは変動が、各係数で１未満の指数を用いる累乗を使用して減らされる（８０６）。同様に、図示されていないが、コードワードの変動は、１より大きい指数を使用して誇張される（たとえば、増大する変動）。たとえば、係数＜１，１，２，１，４，２，１＞を含むコードワードを２乗して、コードワード＜１，１，４，１，１６，４，１＞を作成する。もう１つの例で、コードワード＜−１，１，２，３＞（８０２）の係数が、＜１，−１，−２，−３＞（８０８）にネゲート（negate）される。もちろん、サブバンドのマッチング用のより大きいまたはより多様なユニバースまたはライブラリあるいは他のベクトルを提供するために、多数の他の線形変換および非線形変換（たとえば、８０６）を、１つまたは複数のコードワードに対して実行することができる。さらに、使用可能な形状のより高い多様性をもたらすために、１つまたは複数の変換を、組み合わせてコードワードに適用することもできる。
【００８４】
１つの例で、エンコーダは、まず、エンコードされるサブバンドへの最も近くマッチングするベースバンド内のコードワードを決定する。たとえば、ベースバンド内の係数の最小二乗平均比較を使用して、最良のマッチングを決定することができる。たとえば、（７０８）を（７１０）と比較した後に、比較は、一時に１係数ずつ、ストリームを下に１係数だけ移動して、（７１０）と比較される別のコードワードを得る。次に、最も近いマッチングが見つかったときに、１つの例で、最良マッチングのコードワードの形状を、非線形変換によって変更して、マッチングが改善されるかどうかを調べる。たとえば、最良マッチングのコードワードの係数に対する指数変換を使用することによって、マッチングに対する洗練をもたらすことができる。最良のコードワード・マッチングおよび指数を見つける２つの方法がある。第１の方法では、最良コードワードは、通常、メトリックとしてのユークリッド距離（ＭＳＥ）を使用することによって見つけられる。最良コードワードが見つかった後に、最良指数が見つけられる。最良指数は、次の２つの方法のうちの１つを使用することによって見つけられる。
【００８５】
一方の方法は、使用可能なすべての指数を試み、どの指数が最小のユークリッド距離を与えるかを調べることであり、他方の方法は、どの指数が最良のヒストグラムまたは確率質量関数（ｐｍｆ）マッチングを与えるかを調べるために指数を試すことである。ｐｍｆマッチングは、オリジナル・ベクトルのｐｍｆと累乗されたベクトルのそれぞれとの平均値の回りの二次モーメント（変動）を使用して計算することができる。最も近いマッチングを有する指数が、最小の指数として選択される。
【００８６】
最良のコードワードおよび指数マッチングを見つける第２の方法は、コードワードおよび指数の多数の組合せを使用して網羅的探索を行うことである。
【００８７】
たとえば、Ｘ０．５が、Ｘ１．０よりよい比較をもたらす場合に、サブバンドは、変換（線形または非線形）ｘｐと一緒に、ベースバンド内のそのコードワードへのオフセット（７１２）を使用してコーディングされ、ここで、ｐ＝０．５を示す１つまたは複数のビットが、デコーダに送られ、デコーダで適用される。この例では、探索は、まずコードワードを見つけることと、次に変換を用いて変更することとを用いて進行するが、そのような順序は、実際には必要ではない。
【００８８】
もう１つの例では、最良マッチングを見つけるために、網羅的探索が、ベースバンドおよび／または他のコードブックに沿って実行される。たとえば、（指数変換（ｐ＝０．５，１．０，２．０）、符号変換（＋／−）、方向（順方向／逆方向）のすべての組合せのベースバンドに沿った網羅的探索を含む探索が実行される。同様に、この網羅的探索を、ノイズ・コードブック・スペクトルまたはコードワードに沿って実行することができる。
【００８９】
一般に、近いマッチングは、コーディングされるサブバンドとコードワードとの間の最小の変動、およびサブバンドをモデリングするために選択された変換を決定することによって提供することができる。コードワードおよび／または変換の識別子またはコーディングされた表示（indication）は、スケール係数などの他の情報と一緒に、ビットストリーム内にコーディングされ、エンコーダに供給される。
【００９０】
例示的な複数コードワードコーディング（Exemplary Multiple Codeword Coding）
１つの例で、２つの異なるコードワードが、サブバンド・エンコーディングを提供するのに利用される。たとえば、長さｕの２つのコードワードｂおよびｎを与えられて、コーディングされるサブバンドをよりよく記述するために、ｂ＝＜ｂ０，ｂ１，．．．ｂｕ＞およびｎ＝＜ｎ０，ｎ１，．．．ｎｕ＞が提供される。ベクトルｂは、ベースバンド、任意の以前のバンド、ノイズ・コードブック、またはライブラリからとすることができ、ベクトルｎは、同様に、任意のそのようなソースからとすることができる。デコーダが、暗黙のうちにまた明示的に、コードワードｂおよびｎからどの係数をとるべきかを知るように、２つのあるいはそれ以上のコードワードｂおよびｎのそれぞれから係数をインターリーブするルールを提供する。このルールは、ビットストリーム内で提供することができ、あるいは、暗黙のうちにデコーダによって知られるものとすることができる。
【００９１】
このルールおよび２つまたはそれ以上のベクトルが、デコーダで、サブバンドｓ＝＜ｎ０，ｂ１，ｎ２，ｎ３，ｂ４，．．．ｎｕ＞を作成するのに使用される。たとえば、ルールは、送られるコードワードの順序およびパーセンテージ値“ａ”に基づいて確立される。エンコーダは、順序（ｂ，ｎ，ａ）で情報を配送する。デコーダは、この情報を、係数が‘ａ’にベクトルｂ内の最大の係数値Ｍを乗じたものより小さい場合に最初のベクトルｂから係数をとる要件に、翻訳する。したがって、係数ｂ１がａ＊Ｍより大きい場合に、ｂ１は、ベクトルｓに含まれ、そうでない場合には、ｎ１が、ｓに含まれる。もう１つのルールは、ｂ１がベクトルｓに含まれるために、ｂ１がａ＊Ｍ未満の値を有するＴ個の隣接する係数のグループの一部でなければならないことを要求することができる。‘ａ’のデフォルト値がセットされる場合に、‘ａ’は、暗黙なので、デコーダに送られる必要はない。
【００９２】
したがって、デコーダは、２つあるいはそれ以上のコードワード識別子を送ることができ、任意選択で、サブバンドを作成するために採用する係数をデコードするルールを送ることができる。エンコーダは、コードワードに関するスケール係数情報をも送ることができ、任意選択で、関連する場合に、ｂおよび／またはｎが、線形にまたは非線形に変換される可能性があるので、任意の他のコードワード変換情報を送ることができる。  上述の２つまたはそれ以上のコードワードｂおよびｎを使用すると、エンコーダは、コードワードの識別子（たとえば、動きベクトル、コードブック・インデックスなど）、ルール（たとえば、ルールブックへのインデックス）を送り、あるいは、このルールは、エンコーダとデコーダとの両方によって暗黙のうちに知られることになり、任意の追加の変換情報（たとえば、ｂまたはｎも追加変換を必要とすると仮定して、ｘｐ、ｐ＝０．５）、およびスケール係数に関する情報（たとえば、ｓｂ、ｓｎなど）を送る。スケール係数情報は、スケール係数および比（たとえば、ｓｂ、ｓｂ／ｓｎなど）とすることもできる。１つのベクトル・スケール係数および比があれば、デコーダは、他のスケール係数を計算するのに十分な情報を有する。
【００９３】
ベースバンドの例示的エンハンスメント
低ビットレート応用例など、ある種の条件の下で、ベースバンド自体が、良好にコーディングされない場合がある（たとえば、複数の連続する０係数または０が混在する係数）。１つのそのような例で、ベースバンドは、強度のピークを良好に表すが、ピークの間のより低い強度を表す係数での微妙な変化を良好には表さない。そのような場合に、ベースバンド自体からのコードワードのピークが、第１ベクトル（たとえば、ｂ）として選択され、０の係数または非常に低い相対的な係数が、ピークの間の低いエネルギーに非常によく似た第２ベクトル（たとえば、ｎ）と置換される。したがって、この２つのコードワード法を、ベースバンドまたはそのベースバンドのサブバンドで使用して、ベースバンド・エンハンスメントをもたらすことができる。前と同様に、第１または第２のベクトルから選択するのに使用されるルールは、明示的でありデコーダに送られるものとすることができ、あるいは、暗黙とすることができる。いくつかの場合に、第２のベクトルは、ノイズ・コードワードを介して最もよく提供することができる。
【００９４】
例示的変換
ベースバンド、以前のバンド、または他のコードブックは、連続する係数のライブラリを提供し、各係数は、潜在的に、コードワードとして働くことができる連続する係数の系列の最初の係数として働く。ライブラリ内の最良マッチングのコードワードが、識別され、スケール係数と一緒にデコーダに送られ、デコーダによって、拡張サブバンド内のサブバンドを作成するのに使用される。
【００９５】
任意選択で、ライブラリ内の１つまたは複数のコードワードが、変換され、コーディングされる形状に対する最良マッチングを見つけるために使用可能なコードワードからなるより大きいユニバースをもたらす。数学において、線形変換および非線形変換のユニバースが、形状、ベクトル、および行列に関して存在する。たとえば、ベクトルを、逆転し、軸にまたがってネゲートすることができ、あるいは、形状を、平方根関数、指数などを適用することによるなど、線形変換および非線形変換を用いて変更することができる。コードワードに１つまたは複数の線形変換または非線形変換を適用することを含む、探索が、コードワードのライブラリに対して実行され、最も近くマッチングするコードワードが、変換と一緒に識別される。最良マッチングの識別子、コードワード、スケール係数、および変換識別子が、デコーダに送られる。デコーダは、情報を受け取り、拡張バンド内のサブバンドを再構成する。
【００９６】
任意選択で、エンコーダは、コーディングされかつ／またはエンハンスされるサブバンドを一緒に最もよく表す複数のコードワードを選択する。ルールを使用して、コーディングされるサブバンド内の個々の係数位置を選択し、またはインターリーブする。ルールは、暗黙または明示的である。コーディングされるサブバンドは、拡張バンド内とすることができ、あるいは、エンハンスされるベースバンド内のサブバンドとすることができる。使用される複数のコードワードは、ベースバンドまたは任意の他のコードブックからのコードワードとすることができ、コードワードのうちの１つまたは複数を、線形にまたは非線形に変形することができる。
【００９７】
例示的なエンベロープ・マッチング
「エンベロープ」と呼ばれる信号（たとえば、Ｅｎｖ（ｉ））は、以下に示すように、入力信号ｘ（ｉ）（たとえば、オーディオ、ビデオなど）に対して加重平均を実行することによって生成される。
【００９８】
【数２】
2009501945.tif 000006
【００９９】
ここで、ｗ（ｊ）は、重み付け関数（現在は三角形形状）であり、Ｌは、重み付けされた分析で検討される隣接する係数の個数である。以前には、および網羅的探索の例を、コードワードの入力ユニバース、指数変換（０．５、１．０、２．０）、係数ネゲーション（符号＋／−）、およびコードワード係数方向（順方向、逆方向）を使用して論じた。その代わりに、最良の‘Ｑ’個のコードワード（コードワード、指数、符号、および／または方向）が、コーディングされるサブバンドのエンベロープの間のユークリッド距離およびコードワードを使用して選択される。コードワードのオリジナルの量子化されていないバージョンは、エンベロープ・ユークリッド距離を測定するのに有用である場合がある。ユークリッド距離に基づいて決定されたこれらのＱ個の最も近い候補から、最良マッチングが選択される。任意選択で、エンベロープを検討した後に、ある方法（前に説明したコードワード比較方法など）が、Ｑ個の候補のどれが最も良く適合するかを調べるためにリターンすることができる。
【０１００】
例示的なコードワード変更
コード・ベクトルからなるコードブックを与えられると、そのコードブック内のコード・ベクトルがコーディングされるベクトルをよりよく表すようにする、それらのコード・ベクトルの変更が試みられる。コードブック／コードワード変更は、次の変換のうちの１つまたは複数の任意の組合せからなるものとすることができる。
【０１０１】
・コード・ベクトルに適用される線形変換。
【０１０２】
・コード・ベクトルに適用される非線形変換。
【０１０３】
・新しいコード・ベクトルを得るために複数のコード・ベクトルを組み合わせること（組み合わされるベクトルは、同一のコードブックまたは異なるコードブックに由来するか、ランダムとすることができる）。
【０１０４】
・ベース・コーディングを用いてコード・ベクトルを組み合わせること。
【０１０５】
変換を使用する場合に、どの変換を使用するか、およびその変換でどのコード・ベクトルを使用するかに関する情報は、ビットストリーム内でデコーダに送られるか、デコーダが既に有する知識（そのデコーダが既にデコードしたデータ）を使用してデコーダで計算されるかのいずれかである。ベクトルは、通常、コーディングされるスペクトル係数のあるバンドである。
【０１０６】
具体的に、コードワード変更に関する３つの例を与える。
【０１０７】
（１）ベクトルの各要素に適用される累乗（非線形変換）、
（２）新しいベクトルを形成するための２つ（またはそれより多数）のベクトルの組合せ、ここで、２つのベクトルのそれぞれは、ベクトルのうちで異なる特性を有する部分を表すのに使用される、および
（３）ベース・コーディングを用いるコード・ベクトルの組合せ。次の議論では、ｖは、コーディングされるベクトルを表すのに使用され、ｘは、ｖをコーディングするのに使用されるコード・ベクトルまたはコードワードであり、ｙは、変更されたコード・ベクトルである。ベクトルｖは、近似ｖ’＝Ｓｘを使用してコーディングされ、Ｓはスケール係数である。使用されるスケール係数は、ｖとｘとの間のパワーの比の量子化されたバージョンである。
【０１０８】
【数３】
2009501945.tif 000007
【０１０９】
ここで、Ｑ（．）は量子化であり、‖．‖は、ノルムを表し、このノルムは、ベクトルのパワーである。オリジナル・ベクトルのパワーの量子化されたバージョンが、送られる。デコーダは、コード・ベクトルのパワーによって除算することによって、使用されるスケール係数を計算する。
【０１１０】
例示的な非線形変換
第１の例は、コード・ベクトルの各要素に指数を適用することからなる。表３に、コードワードの係数の系列の非線形変換を示す。
【０１１１】
【表３】
2009501945.tif 000008
【０１１２】
この例では、コードワード（コード・ベクトル）の各係数が、２乗される（ｘ２）。そのような例では、変換されたコードワードの形状が、コーディングされるベクトルの最良あてはめである場合に、エンコーダは、コードワードの識別と、最良のマッチングにつながる変換とを供給する。
【０１１３】
指数は、固定された個数のビットを使用してデコーダに送ることができ、あるいは、指数のコードブックから送ることができ、あるいは、以前に知ったデータを使用してデコーダで暗黙のうちに計算することができる。たとえば、Ｌ次元ベクトルについて、コードブック内の第‘ｉ’コード・ベクトルの要素が、ｘｉ［０］，ｘｉ［１］，．．．，ｘｉ［Ｌ−１］であるものとする。すると、累乗は、ベクトルを変更するために指数‘ｐ’を適用して、新しいベクトルｙｉを得る。
【０１１４】
ｙｉ［ｊ］＝（ｘｉ［ｊ］）ｐ、  ただし、ｊ＝０，１，．．．，Ｌ−１
ここで、‘ｊ’は、要素インデックスである。この非線形変換は、１未満のｐの値を使用することによって、ピークを有しないベクトルをコーディングするのに、ピークを有するコード・ベクトルを使用することを可能にする。同様に、この非線形変換は、ｐ＞１を使用することによって、ピークを有するコード・ベクトルを表すのに、ピーキーでないコード・ベクトルを使用することを可能にする。
【０１１５】
図９は、ピークを明瞭には表さない例示的ベクトルのグラフである。
【０１１６】
図１０は、指数変換によって作成された明瞭なピークを有する図９のグラフである。
【０１１７】
例として、図９および図１０を参照されたい。図９では、かなりランダムである図示のベクトルは、明瞭なピークを有しない。指数ｐ＝５が適用されるときに、図１０は、所望のピークをよりよく表す。同様に、オリジナルのコード・ベクトルが、図１０に示されたものである場合に、指数ｐ＝１／５＝０．２は、図９をもたらすはずである。もちろん、スケール係数は再計算される。というのは、コード・ベクトルのノルム（またはエネルギー）が、ｘからｙへの変換中に変化しているからである。具体的に言うと、今や、Ｓ＝Ｑ（‖ｖ‖）／‖ｙ‖が、スケール係数に使用される。送られる実際のスケール係数Ｑ（‖ｖ‖）は、指数によって変更はされないが、デコーダは、コード・ベクトルのパワーの変化に起因して、異なるスケール係数を計算しなければならない。
【０１１８】
あるコードワードは、それに適用されて、それぞれが異なる結果をもたらす複数の指数を有することができる。最良の指数を計算するのに使用される方法は、そのコード・ベクトル全体の値のヒストグラム（または確率質量関数（ｐｍｆ））が実際のベクトルのヒストグラムと最もよくマッチングするようになる指数を見つけることである。これを行うために、そのベクトルとコード・ベクトルとの両方のシンボル値の不一致（variance）が、累乗を使用して計算される。たとえば、その可能な指数の集合がｐｋであり、ｋは、その可能な指数の集合をインデクシングするのに使用され、ｋ＝０，１，．．．，Ｐ−１であると仮定する。次に、可能な指数のそれぞれから生じるコード・ベクトルの平均値の回りの正規化された二次モーメントを、計算し（Ｖｋ）、実際のベクトル（Ｖ）と比較する。
【０１１９】
【数４】
2009501945.tif 000009
【０１２０】
最良の指数は、ＶｋとＶとの間の差を最小にするように選択され、ｐｂによって与えられ、ここで、ｂは、
【０１２１】
【数５】
2009501945.tif 000010
【０１２２】
と定義される。
【０１２３】
前に述べたように、最良マッチング指数は、網羅的探索を使用して見つけることもできる。
【０１２４】
組合せを介する例示的なコードワード変更
もう１つの変換は、新しいコード・ベクトルを形成するために複数のベクトル（multiple vectors）を組み合わせる。これは、本質的に複数ステージ・コーディング（multistage coding）であり、各ステージでは、まだコーディングされていないベクトルの最も重要な部分と最もよくマッチングするマッチングが見つけられる。２つのベクトルに関する例として、まず、最良マッチングを見つけ、次に、ベクトルのどの部分が良好にコーディングされているかを調べる。このセグメント化は、明示的に送ることができるが、これが、多すぎるビットを要する場合がある。したがって、セグメント化は、１つの例ではベクトルのどの部分を使用するかを示すことによって、暗黙のうちに提供される。残りの部分は、ランダム・コード・ベクトルまたは残りの要素をよりよく表すコードブックからの別のコード・ベクトルのいずれかを使用して表される。ｘが、第１コード・ベクトルであり、ｗが、第２コード・ベクトルであるものとする。集合Ｔが、第１コード・ベクトルを使用してコーディングされなければならないと考えられる、ベクトルの部分を指定するものとする。集合Ｔの濃度は、０とＬとの間になる、すなわち、集合Ｔは、この第１コード・ベクトルを使用してコーディングされなければならないと考えられるベクトルのインデックスを表す０個とＬ個との間の要素を有する。どの要素が第１ベクトルによって良好に表されるかを算定するルールを提供し、このルールは、潜在的な係数が第１ベクトルの最大の係数のあるパーセンテージより大きいかどうかを決定するなど、メトリックスを使用することができる。したがって、第１ベクトルの最大係数のあるパーセンテージ以内の第１ベクトルのすべての係数について、その係数は、第１ベクトルからとられ、そうでない場合には、そのコードワード係数は、第２コードワードからとられる。Ｍが、第１コード・ベクトルｘの最大値であるものとする。すると、集合Ｔを、
Ｔ＝｛ｊ：ｘ［ｊ］＞ａＭ，ｊ＝０，１，．．．Ｌ−１｝
を使用して定義することができ、ここで、‘ａ’は、０と１との間のある定数である。たとえば、ａ＝０の場合に、すべての非０値は、コーディングされたベクトルの集合Ｔに属すると考えられる。ａ＝１−εの場合には、εが十分に小さくなるようにとられているならば、最大値自体だけをコーディングしなければならないと考えられる。すると、集合Ｔを与えられて、集合Ｎは、次のようにベクトルｗからとられる相補的な残りの集合である。
【０１２５】
Ｎ＝｛ｊ：ｘ［ｊ］≦ａＭ，ｊ＝０，１，．．．，Ｌ−１｝
したがって、ｘ［ｊ］の係数は、ａＭの値に依存してｘまたはｗからとられる。ＮまたはＴを、３つ以上のベクトルを得るために他の類似するルールを使用してさらに分割することができることに留意されたい。第１コード・ベクトル（ｘ）および第２コード・ベクトル（ｗ）を使用してインデックス・コーディングされた複数の集合としてＴおよびＮを与えられて、新しいベクトルｙは、
【０１２６】
【数６】
2009501945.tif 000011
【０１２７】
と定義され、ここで、ＳｘおよびＳｗは、それぞれｘおよびｗのスケール係数である。通常はコード・ベクトル全体のスケール係数が送られ、これが、コーディングされるベクトル全体のパワーの量子化されたバージョンを表すので、コード・ベクトル全体のスケール係数に加えて、この２つのスケール係数の間の比（Ｓｗ／Ｓｘ）を、この事例では送る必要がある。一般に、ベクトルが、‘ｍ’個のコード・ベクトルを使用して作成される場合に、ベクトル全体のスケール係数を含めて、‘ｍ’個のスケール係数を送らなければならない。たとえば、２つのベクトルの場合に、
【０１２８】
【数７】
2009501945.tif 000012
【０１２９】
であることに留意されたい。
【０１３０】
ｖ１およびｖｎが、この２つのベクトルとして定義されると仮定すると、そのパワーを、
【０１３１】
【数８】
2009501945.tif 000013
【０１３２】
と定義することができ、ここで、｜Ｔ｜および｜Ｎ｜は、２つの集合の濃度（要素の個数）である。‖ｖ‖の値（ベクトルの総パワー）および‖ｖｎ‖の値（ベクトルの第２成分のパワー）を与えられて、デコーダは、
【０１３３】
【数９】
2009501945.tif 000014
【０１３４】
を計算することができる。
【０１３５】
したがって、集合Ｎのパワーの量子化されたバージョンが送られ（Ｑ（‖ｖｎ‖）、総パワーが送られるＱ（‖ｖ‖）ならば、これが、デコーダにとって十分な情報である。
【０１３６】
セグメント化を実行するのにコード・ベクトルｘ自体を使用することによって、エンコーダが、セグメント化に関するすべての情報を送る必要を回避することに留意することが重要である。というのは、各ベクトルｘおよびｗから選択される係数が、ルールにおいて暗黙的である（たとえば、ｘ［ｊ］≧ａＭ）からである。ｘに対応するコード・ベクトル・インデックスまたは動きベクトルが送られない（ランダム・ベクトルである）場合であっても、集合ＴおよびＮのセグメント化を、ランダム・ベクトル・ジェネレータの状態がエンコーダとデコーダとの両方が有する情報に基づいて決定的であるランダム・ベクトルを使用することによって、エンコーダとデコーダとの間でマッチングさせることができる。たとえば、ランダム・ベクトルを、コーディングされデコーダに送られた（エンコードされたベースバンド内などで）データの最下位ビット（ＬＳＢ）のある組合せを使用することと、その後、これを擬似乱数ジェネレータにシードを与えるのに使用することによって、決定することができる。この形で、セグメント化を、実際のコード・ベクトルが送られない場合であっても暗黙のうちに制御することができる。
【０１３７】
２つのベクトルを組み合わせることによるこの変換は、コーディングされるベクトルのよりよい表現を可能にする。ベクトルｗは、コードブックからのベクトルとすることができ、インデックスを、ベクトルｗを表すために送ることができ、あるいは、ベクトルｗをランダムとすることができ、この場合に、追加情報を送る必要はない。上で与えた例では、セグメント化が、ベクトルｘを使用する係数に対する比較ルール（たとえば、ｘ［ｊ］≧ａＭ）を使用して行われ、したがって、セグメント化に関する情報を送る必要がないので、セグメント化が暗黙であることに留意されたい。この変換は、コーディングされるベクトルが２つの異なる分布を有するときに有用である。
【０１３８】
図１１は、コードワードがモデリングするサブバンドと比較した、そのコードワードのグラフである。この例（１１００）では、コード・ベクトルは、ベクトルのピークと最もよくマッチングするように選択されている。しかし、ピークは良好にマッチングしているが、ベクトルの残りは、類似するパワーを有しない。コード・ベクトルの残りの部分は、実際のベクトルが有するものよりはるかに小さい、ピークに対する相対的なパワーを有する。これは、顕著な圧縮アーティファクトをもたらす。しかし、ｖのうちでコード・ベクトルによって良好にコーディングされる部分が、第１ベクトルから選択され、次に、第２コード・ベクトルが、残りの部分に適用されるときに、はるかによい結果が得られる。
【０１３９】
図１２は、変換されたコードワードがモデリングするサブバンドと比較した、そのコードワードのグラフである。モデリングされるサブバンドは、２つのコードワードから作成されたコードワードによってモデリングされる。
【０１４０】
図１３は、コードワード、そのコードワードによってコーディングされるサブバンド、そのコードワードのスケーリングされたバージョン、およびそのコードワードの変更されたバージョンのグラフである。
【０１４１】
選択動作を介する例示的なコードワード変更
複数コード・ベクトル（multi codevectors）（たとえば、複数コードワード（multi -codewords））の代替バージョンは、ある選択された係数について第１コード・ベクトルに置換するのではなく、第１コード・ベクトルを追加する。これは、次の式を適用することによって行うことができる。
【０１４２】
【数１０】
2009501945.tif 000015
【０１４３】
ベースバンドの例示的エンハンスメント
この例では、コード・ベクトルが、ベース・コーディングと組み合わされる。これは、第１ベクトルｘが、コーディングされるベクトルであり、かつ、それ自体をエンコードするための２つのベクトルのうちの１つとしてそれ自体が使用されるということを除いて、２ベクトル（または複数ベクトル（multi vector））手法に似ている。たとえば、ベース・コーディングはこれらの係数を含むように変更され、そこでは、ベース・コーディングが良好に動作し、、よりよい係数が、前と同様に第２ベクトルからとられる。コーディングされるベクトル（サブバンド）ごとに、ベース・コーディングが既に存在する場合に、このベース・コーディングは、複数ベクトル方式（multi-vector scheme）の第１ベクトルになり、領域ＴおよびＮ（またはより多くの領域）にセグメント化される。このセグメント化（たとえば、係数選択）は、複数コード・ベクトル手法（multi code-vector approach）と同一の技法を使用してもたらすことができる。
【０１４４】
たとえば、ベース・コーディングのそれぞれについて、０の値を有する係数がある場合に、これらのすべてが、集合Ｎに含められ、その後、この集合Ｎは、エンハンスメント・レイヤ（たとえば、第２ベクトル）によってコーディングされる。そのような方法は、非常に低いビットレートでのコーディングからしばしば生じる、大きいスペクトルの穴を充填するのに使用することができる。変更には、ある閾値より大きくない限り穴（hole）または「０」の係数を充填しないことを含めることができ、ここで、閾値は、ある個数のヘルツ（Ｈｚ）または係数（複数の０の係数）と定義することができる。ある周波数未満の穴を充填しないことに対する制限も設けることができる。これらの制限は、上で与えた暗黙のセグメント化ルール（たとえば、ｘ［ｊ］＞ａＭなど）を変更する。たとえば、スペクトルの穴の最小サイズに関する閾値‘Ｔ’が設けられる場合に、これは、本質的に、集合Ｎの定義を次の定義に変更する。  
０，．．．，Ｔ−１の間のいくつかのＫについて、  
Ｎ＝｛ｊ：ｘ［ｊ−Ｋ］≦ａＭ  ＆＆  ｘ［ｊ−Ｋ＋１］≦ａＭ  ＆＆  Ｋ  ＆＆  ｘ［ｊ−Ｋ＋Ｔ−１］≦ａＭ，  ｊ＝０，１，．．．，Ｌ−１｝
したがって、ｘ［ｊ］が集合Ｎに含まれるためには、ｘ［ｊ］は、Ｔ個の連続する係数のグループの一部でなければならず、この係数のすべてが、（ａＭ）以下の値を有する。これは、２ステップで、すなわち、まず値が閾値未満であるかどうかを係数ごとに計算することと、次にこれらが「連続」要件を満足するかどうかを調べるためにこれらを一緒にグループ化することとによって、計算することができる。サイズＴの真のスペクトルの穴について、ａ＝０である。最小周波数制約などの他の条件は、集合Ｎに属するためにはｊ＞Ｔｍｉｎｆｒｅｑであるという追加の制約を追加する。
【０１４５】
上のルールは、第２ベクトルからの値で係数を置換することをルールがシグナリングする前に、連続する複数の係数（たとえば、Ｔ個の連続する係数）が、条件ｘ［ｊ］≦ａＭを満足することを要求するフィルタをもたらす。
【０１４６】
行う必要がある場合があるもう１つの変更は、ベース・コーディングが、チャネル変換を適用した後のチャネルをもコーディングするという事実に起因する。したがって、チャネル変換の後に、ベース・コーディングおよびエンハンスメント・コーディングが、異なるチャネル・グループ化を有する場合がある。したがって、エンハンスメントが適用される特定のチャネルに対してベース・コーディングを調べるのではなく、セグメント化は、ベースコーディング・チャネルより多くのものを調べることある。これは、やはり、セグメント化制約を変更する。たとえば、チャネル０および１が、合同でコーディングされると仮定する。すると、エンハンスメントを適用するルールは、次のルールに変更される。エンハンスメントを適用するためには、コーディングされたチャネルの両方が、実際のチャネルの両方に寄与するので、スペクトルの穴が、ベースバンド・コーディングされたチャネルの両方に存在しなければならない。
【０１４７】
サブバンドのセグメント化の例示的最適化
よい周波数セグメント化は、スペクトル・データのエンコーディングの品質に重要である。セグメント化は、スペクトル・データを、サブバンドまたはベクトルと呼ばれる単位に分割することを伴う。単純なセグメント化は、スペクトルを所望の個数の均一のセグメントまたはサブバンドに均一に分割することである。均一セグメント化は、準最適である場合がある。より大きいサブバンド・サイズを用いて表現できるスペクトルの領域がある場合があり、他の領域は、より小さいサブバンド・サイズを用いてよりよく表される。スペクトル・データ強度依存セグメント化を提供するさまざまな特徴を、説明する。より細かいセグメント化を、より大きいスペクトル変動を有する領域について提供し、より粗いセグメント化を、より均一な領域について提供する。たとえば、デフォルト・セグメント化または初期セグメント化を、最初に提供し、最適化または後続構成が、スペクトル・データ変動の強度に基づいてセグメント化を変更する。
【０１４８】
例示的なデフォルト・セグメント化
スペクトル・データは、最初にサブバンドにセグメント化される。任意選択で、初期セグメント化を変更して、最適セグメント化または後続セグメント化を作ることができる。２つのそのような初期セグメント化またはデフォルト・セグメント化を、均一分割セグメント化および不均一分割構成と呼ぶ。上記および他のサブバンド構成を、最初にまたはデフォルトで提供することができる。任意選択で、初期構成またはデフォルト構成を再構成して、後続サブバンド構成を提供することができる。
【０１４９】
Ｌ個のスペクトル係数のスペクトル・データを与えられれば、データのＭ個のサブバンドの均一分割セグメント化は、次の式を用いて識別される。
【０１５０】
【数１１】
2009501945.tif 000016
【０１５１】
たとえば、Ｌ個のスペクトル係数が、点として、０，１，．．．，Ｌ−１としてラベルを付けられる場合に、Ｍ個のサブバンドは、スペクトル・データのｓ［ｊ］個の係数で始まる。したがって、第‘ｊ’サブバンドは、ｓ［ｊ］からｓ［ｊ＋１］−１まで（ただし、ｊ＝０，１，．．．，Ｍ−１）の係数を有し、係数ｓ［ｊ＋１］−ｓ［ｊ］個分のサブバンド・サイズを有する。
【０１５２】
不均一分割セグメント化は、サブバンド・マルチプライヤが設けられることを除いて、類似する形で行われる。サブバンド・マルチプライヤは、Ｍ個のサブバンドのそれぞれについて、ａ［ｊ］（ただし、ｊ＝０，１，．．．，Ｍ−１）と定義される。さらに、累積サブバンド・マルチプライヤが、次のように設けられる。
【０１５３】
【数１２】
2009501945.tif 000017
【０１５４】
不均一分割構成事例のサブバンドの開始点は、
【０１５５】
【数１３】
2009501945.tif 000018
【０１５６】
と定義される。
【０１５７】
やはり、第‘ｊ’サブバンドは、ｓ［ｊ］からｓ［ｊ＋１］−１までの係数を含み、ここで、ｊ＝０，１，．．．，Ｍ−１であり、係数ｓ［ｊ＋１］−ｓ［ｊ］個分のサブバンド・サイズを有する。この不均一構成は、周波数に伴って増加するサブバンド・サイズを有するが、任意の構成とすることができる。さらに、望ましい場合に、不均一構成を事前に決定されるものとすることができ、その結果、それを記述するために追加情報を送る必要がなくなる。デフォルト不均一の事例について、サブバンド・マルチプライヤの例は、次のように提供される。
【０１５８】
ａ＝｛１，１，２，２，４，４，４，４，８，８，８，８，８，８，８，８，．．．｝
したがって、デフォルト不均一バンド・サイズ・マルチプライヤは、分割構成であり、ここで、バンド・サイズは、単調非減少である（最初の少数のサブバンドは、より小さく、より高い周波数のサブバンドは、より大きい）。より高い周波数のサブバンドは、しばしば、元来より小さいバリエーションを有し、したがって、より少数のより大きいサブバンドが、それらのバンドのスケールおよび形状を取り込むことができる。さらに、より高い周波数のサブバンドは、より少ないエネルギーを有し、知覚的に重要性がより低いので、全体的な知覚的歪みにおいてより低い重要性を有する。均一分割も、すべてのｊについてａ［ｊ］＝１であることを除いて、サブバンド・マルチプライヤを使用して説明できることに留意されたい。
【０１５９】
デフォルト・セグメント化または初期セグメント化は、しばしば、スペクトル・データのコーディングに十分であり、実際に、不均一方式が、事例のうちの大きいパーセンテージを扱うことができるが、最適化されたセグメント化から利益を得る信号が存在する。そのような信号について、バンド・マルチプライヤが固定されるのではなく任意であることを除いて不均一の事例に似たセグメント化が、定義される。任意のバンド・マルチプライヤは、サブバンドの分割およびマージを反映する。１つの例で、エンコーダは、セグメント化が固定（たとえば、デフォルト）または可変（たとえば、最適化されるか変更される）のどちらであるかを示す第１ビットを用いてデコーダにシグナリングする。初期セグメント化が均一分割または不均一分割のどちらであるかをシグナリングするために、第２ビットが設けられる。
【０１６０】
例示的な最適化されるセグメント化
デフォルト・セグメント化（均一セグメント化または不均一セグメント化など）から開始して、サブバンドは、最適化されたセグメント化または後続セグメント化を得るために分割され、またはマージされる。１つのサブバンドを２つのサブバンドに分割するか、あるいは２つのサブバンドを１つのサブバンドにマージするかに関する判断を行う。分割するかマージするかの判断は、サブバンドにまたがる変化の強度の測定値など、初期サブバンド内のスペクトル・データのさまざまな特性に基づくものとすることができる。１つの例では、サブバンド内の調性またはスペクトルの平坦度などのサブバンド・スペクトル・データ特性に基づいて、分割するかマージするかの判断を行う。
【０１６１】
１つのそのような例で、エネルギーの比が２つのサブバンドの間で似ており、バンドの少なくとも１つが非調性である場合に、２つの隣接するサブバンドがマージされる。これは、単一の形状ベクトル（たとえば、コードワード）およびスケール係数が、その２つのサブバンドを表すのに十分である可能性が高いからである。エネルギーのそのような比の１つの例は、次として提供される。
【０１６２】
【数１４】
2009501945.tif 000019
【０１６３】
この例では、Ｅ０は、サブバンド０のエネルギーであり、Ｅ１は、隣接するサブバンド１のエネルギーであり、‘ａ’は、定数閾値（通常は範囲０＜ａ＜１内）であり、Ｔは、調性比較メトリックである。サブバンド内の調性測定値（たとえば、Ｔｏｎａｌｉｔｙ０）は、スペクトルを分析するさまざまな方法を使用して得ることができる。
【０１６４】
同様に、単一のサブバンドを２つのサブバンドに分割することが、似ていないエネルギーを有する２つのサブバンドを生じさせる場合には、その分割を行わなければならない。あるいは、サブバンドの分割が、異なる形状特性を伴って強く調性（tonal）である２つのサブバンドを作成する場合には、そのサブバンドを分割しなければならない。たとえば、そのような条件は、次のように定義される。
【０１６５】
【数１５】
2009501945.tif 000020
【０１６６】
ここで、‘ｂ’は、０より大きい定数である。たとえば、サブバンドが分割されるときに形状マッチングが大幅に改善される場合に、異なる形状を有するように２つのサブバンドを定義することができる。１つの例で、２つの分割されたサブバンドが、分割前のマッチングと比較して、分割後にはるかに低い平均二乗ユークリッド差（ＭＳＥ）マッチングを有する場合に、形状マッチングはより良いと考えられる。たとえば、サブバンドは、その単一のサブバンドの最良マッチングコードワードを決定するために、複数のコードワードと比較される。次に、そのサブバンドが、２つのバンドに分割され、各サブバンドが、各分割サブバンドの最良マッチングを見つけるために（ハーフ）コードワードと比較される。２つのサブバンドマッチングのＭＳＥが、単一サブバンドマッチングのＭＳＥと比較され、大幅に改善されたマッチングは、分割をエンコードすることの余分のオーバーヘッドに値する改善を示す。たとえば、ＭＳＥが２０％以上改善される場合に、その分割は、効率的と考えられる。この例では、必要ではないが、形状マッチングは、両方の分割サブバンドが調性である場合に、関連するようになる。
【０１６７】
１つの例で、現在の反復において、分割されまたはマージされる追加のサブバンドがなくなるまで、アルゴリズムが繰り返して実行される。無限ループの可能性を減らすために、サブバンドに、分割、マージ、またはオリジナルとして、タグ付けすることが有益である場合がある。たとえば、あるサブバンドが、分割サブバンドとしてマークされる場合に、そのサブバンドは、それが分割された元のサブバンドに戻ってマージされなくなる。マージ済みとしてマークされたブロックは、同一の構成には分割されない。
【０１６８】
さまざまなメトリックスが、調性、エネルギー、または異なる形状を計算するのに使用される。動きベクトルおよびスケール・メトリックを使用して、拡張サブバンドをエンコードすることができる。１つのサブバンドを２つのサブバンドに分割することによって、スケール係数（たとえば、≧（１＋ｂ）、ただし、ｂは０．２〜０．５）においてかなり異なるエネルギーが作成される場合に、そのサブバンドを分割することができる。１つの例で、調性は、高速フーリエ変換（ＦＦＴ）領域で計算される。たとえば、入力信号が、２５６サンプルの固定ブロックに分割され、ＦＦＴが、３つの隣接するＦＦＴブロックに対して実行される。時間平均が、３つの隣接するＦＦＴ出力に対して実行されて、現在のブロックの時間平均されたＦＦＴ出力が得られる。中央値フィルタが、３つの時間平均されたＦＦＴ出力に対して実行されて、ベースラインが得られる。ある係数が、ベースラインの上のある閾値を超える場合に、その係数は、調性と分類され、それがベースラインを超えるパーセンテージが、調性の測定値である。その係数が、閾値未満である場合に、その係数は、調性ではなく、調性の測定値は０である。特定の時間周波数タイル（particular time frequency tile）の調性は、タイルの諸次元をＦＦＴブロックに写像し、ブロックにまたがって調性測定値を累算することによって見つけられる。係数がベースラインを超えなければならない閾値は、絶対閾値、ベースラインに対する相対的な比、またはベースラインの変動に対する相対的な比のいずれかになるように定義することができる。たとえば、係数が、ベースライン（中央値フィルタリングされ、時間平均された）を１局所標準偏差だけ超える場合に、その係数を、調性と分類することができる。その場合に、調性ＦＦＴブロックを表す、ＭＬＴでの対応する変換されたサブバンドは、調性とラベルを付けられ、分割することができる。この議論は、位相ではなくＦＦＴの大きさに関する。異なる形状に対するＭＳＥメトリックに関して、はるかに小さいＭＳＥのメトリックは、実質的にビットレートに基づいて変化する可能性がある。たとえば、より高いビットレートに関して、ＭＳＥが約２０％だけ低下する場合に、分割決定が意味をなす可能性がある。しかし、より高いビットレートでは、分割判断を、５０％低いＭＳＥで行うことができる。
【０１６９】
例示的な可変バンド・マルチプライヤおよびコーディング
サブバンドが分割され、かつまたはマージされた後に、オリジナルの最小のサブバンド・サイズと新しい最小のサブバンド・サイズとの間の比が、計算される。ｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅ＝ｍａｘ（１，オリジナルの最小サブバンド・サイズ／新しい最小サブバンド・サイズ）として比が定義される。次に、最小のサイズ（たとえば、サブバンド内の係数の個数）を有する最適化されたサブバンドが、１のサブバンド・マルチプライヤを割り当てられ、他のサブバンド・サイズは、ｒｏｕｎｄ（このサブバンド・サイズ／最小サブバンド・サイズ）としてセットされるバンド・マルチプライヤを有する。したがって、サブバンド・マルチプライヤは、１以上の整数であり、ｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅも、１以上の整数である。サブバンド・マルチプライヤは、本質的に、テーブルレス可変長コードを使用して、期待されるサブバンド・マルチプライヤと最適化されたサブバンド・マルチプライヤとの間の差をコーディングすることによってコーディングされる。０の差は、１ビットを用いてコーディングされ、０を超える１５個の最小の可能な差のうちの１つである差は、５ビットを用いてコーディングされ、残りの差は、テーブルレス・コードを使用してコーディングされる。
【０１７０】
例として、デフォルト不均一事例のサブバンド・サイズが、表４に示されているように、与えられる、次の事例を検討されたい。
【０１７１】
【表４】
2009501945.tif 000021
【０１７２】
さらに、分割／マージの後に、次の最適化されたサブバンド構成が、表５に示されているように作成されると仮定する。
【０１７３】
【表５】
2009501945.tif 000022
【０１７４】
図１４は、サブバンド・サイズ変換の例示的な系列の図である。たとえば、表５のサブバンド・サイズは、図１４の変換を介して表４から達成することができる。
【０１７５】
ｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅ＝ｍａｘ（１，４／２）＝２に関する上の式を使用すると、２の最小比サブバンド・サイズがもたらされ、表６に示されているように、バンド・サイズ・マルチプライヤの値を得ることができる。
【０１７６】
【表６】
2009501945.tif 000023
【０１７７】
ある方法を使用して、期待されるサブバンド・マルチプライヤを計算する。まず、分割されずマージされないブロックが、デフォルト・バンド・サイズ・マルチプライヤを有しなければならないと仮定する（期待されるバンド・サイズ・マルチプライヤを＝＝実際のバンド・サイズ・マルチプライヤ）。これは、期待されるバンド・サイズ・マルチプライヤからの変化だけをエンコードする必要があるので、ビットを節約する。さらに、デフォルト・バンド構成からの変更が少ないほど、構成をエンコードするのに必要なビット数が少なくなる。そうでない場合に、期待されるバンド・マルチプライヤは、次のロジックを使用してデコーダで計算される。
【０１７８】
・実際のバンドの開始点を調べ、デフォルト・バンド構成内のバンドの開始点および終了点と比較することによって、現在デコードされつつあるデフォルト構成内のサブバンドがどれであるかを調べる。
【０１７９】
・デフォルト構成内のバンド内に残っている係数の個数をとり、実際の構成内の最小のブロック（サブバンド）サイズで割ることによって、期待されるバンド・マルチプライヤが計算される。
【０１８０】
たとえば、ｓｄ［ｊ］が、デフォルト・バンド構成内の第‘ｊ’バンドの開始位置であり、ｓａ［ｊ］が、実際のバンド構成内の第‘ｊ’バンドの開始位置であり、ｍｄが、デフォルト事例の最小バンド・サイズであり、ｍａが、実際の事例の最小バンド・サイズであるものとする。次に、次を計算する。
【０１８１】
ｒ＝ｍａｘ（１，ｍｄ／ｍａ）
ａ［ｊ］＝（ｓａ［ｊ＋１］−ｓａ［ｊ］）／ｍａ
ここで、‘ｒ’は、ｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅであり、ａ［ｊ］は、第‘ｊ’バンドのバンド・マルチプライヤである。第‘ｊ’バンドの期待されるマルチプライヤを計算するためには、まず、実際のバンドの開始位置を含むデフォルト・バンド構成のインデックス‘ｉ’を計算する。次に、第‘ｊ’バンドの期待されるマルチプライヤになるａｅｘｐｅｃｔｅｄ［ｊ］を計算する。これは、次のように計算することができる。
【０１８２】
ｓｄ［ｉ］≦ｓａ［ｊ］＜ｓｄ［ｉ＋１］
ａｅｘｐｅｃｔｅｄ［ｊ］＝（ｓｄ［ｉ＋１］−ｓａ［ｊ］）／ｍａ
あるバンドが、分割またはマージされない場合に、期待されるバンド・マルチプライヤが、実際のバンド・マルチプライヤと同一になることに留意されたい。また、ｓｄ［ｉ＋１］がｓａ［ｊ＋１］と同一である限り、期待されるバンド・マルチプライヤは、実際のバンド・マルチプライヤと同一になる。
【０１８３】
この例を継続して、デフォルト・サブバンド構成を表７に示す。
【０１８４】
【表７】
2009501945.tif 000024
【０１８５】
デフォルト・バンド構成に写像された実際のサブバンドまたは最適化されたサブバンドを、表８に示す。
【０１８６】
【表８】
2009501945.tif 000025
【０１８７】
「デフォルト・バンド・インデックス」は、所与のｊに関する‘ｉ’の値である。「残っている係数」は、ｓｄ［ｉ＋１］−ｓａ［ｊ］である。「期待されるバンド・インデックス」は、ａｅｘｐｅｃｔｅｄ［ｊ］であり、「バンド・マルチプライヤ」は、ａ［ｊ］である。やはり、分割またはマージされないすべてのサブバンドが、必ず０の差を有することに留意されたい。コーディングは、各サブバンドの「差」値および構成のｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅ（‘ｒ’）を、それぞれの可変長コードを使用してコーディングする。ｍｉｎＲａｔｉｏＢａｎｄＳｉｚｅの使用は、最小のバンドがデフォルト構成のバンドより小さいバンド構成をコーディングすることを可能にする。
【０１８８】
コンピューティング環境
図１５に、例示的な実施形態を実施できる適切なコンピューティング環境（１５００）の一般化された例を示す。コンピューティング環境（１５００）は、本発明を別個の汎用のまたは特殊目的のコンピューティング環境で実装できるので、本発明の使用または機能性の範囲に関する限定を暗示することを意図されたものではない。
【０１８９】
図１５を参照すると、コンピューティング環境（１５００）は、少なくとも１つの処理ユニット（１５１０）およびメモリ（１５２０）を含む。図１５では、この最も基本的な構成（１５３０）が、破線の中に示されている。処理ユニット（１５１０）は、コンピュータ実行可能命令を実行し、実際のプロセッサまたは仮想プロセッサとすることができる。マルチ・プロセッシング・システムでは、処理能力を高めるために、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ（１５２０）は、揮発性メモリ（たとえば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（たとえば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリなど）、またはこの２つのある組合せとすることができる。メモリ（１５２０）は、オーディオ・エンコーダおよびまたはデコーダを実装するソフトウェア（１５８０）を記憶する。
【０１９０】
コンピューティング環境は、追加の特徴を有することができる。たとえば、コンピューティング環境（１５００）は、ストレージ（１５４０）、１つまたは複数の入力デバイス（１５５０）、１つまたは複数の出力デバイス（１５６０）、および１つまたは複数の通信接続（１５７０）を含む。バス、コントローラ、またはネットワークなどの相互接続機構（図示せず）が、コンピューティング環境（１５００）のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア（図示せず）が、コンピューティング環境（１５００）内で実行中の他のソフトウェアのオペレーティング環境を提供し、コンピューティング環境（１５００）のコンポーネントのアクティビティを調整する。
【０１９１】
ストレージ（１５４０）は、取外し可能または取外し不能とすることができ、磁気ディスク、磁気テープもしくは磁気カセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または情報を格納するのに使用できコンピューティング環境（１５００）内でアクセスできる任意の他の媒体を含む。ストレージ（１５４０）は、オーディオ・エンコーダおよびまたはデコーダを実装するソフトウェア（１５８０）の命令を格納する。
【０１９２】
１つまたは複数の入力デバイス（１５５０）は、キーボード、マウス、ペン、またはトラック・ボールなどのタッチ入力デバイス、音声入力デバイス、スキャニング・デバイス、あるいはコンピューティング環境（１５００）に入力を提供できる別のデバイスとすることができる。オーディオに関して、１つまたは複数の入力デバイス（１５５０）を、サウンド・カード、またはアナログ形式もしくはディジタル形式でオーディオ入力を受け入れる類似するデバイスとすることができる。１つまたは複数の出力デバイス（１５６０）は、ディスプレイ、プリンタ、スピーカ、またはコンピューティング環境（１５００）からの出力を供給する別のデバイスとすることができる。
【０１９３】
１つまたは複数の通信接続（１５７０）は、通信媒体を介する別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮オーディオ情報もしくは圧縮ビデオ情報、または他のデータなどの情報を変調されたデータ信号内で伝える。変調されたデータ信号とは、信号内で情報をエンコードする形でその特性のうちの１つまたは複数をセットされた、または変更された信号である。限定ではなく例として、通信媒体は、電気搬送波、光搬送波、ＲＦ搬送波、赤外線搬送波、音響搬送波、または他の搬送波を用いて実装される有線または無線の技法を含む。
【０１９４】
本発明を、コンピュータ可読媒体の全体的な文脈で説明することができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスできる任意の使用可能な媒体である。限定ではなく例として、コンピューティング環境（１５００）に関して、コンピュータ可読媒体は、メモリ（１５２０）、ストレージ（１５４０）、通信媒体、および上記のいずれかの組合せを含む。
【０１９５】
本発明を、コンピューティング環境内でターゲットの実際のプロセッサまたは仮想プロセッサ上で実行される、プログラム・モジュールに含まれるものなどのコンピュータ実行可能命令の全体的な文脈で説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行するか特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造体などを含む。プログラム・モジュールの機能性を、さまざまな実施形態で望み通りに組み合わせ、またはプログラム・モジュールの間で分割することができる。プログラム・モジュールからなるコンピュータ実行可能命令を、ローカル・コンピューティング環境または分散コンピューティング環境内で実行することができる。
【０１９６】
提示のために、この詳細な説明では、「決定する」、「得る」、「調整する」、および「適用する」などの用語を使用して、コンピューティング環境でのコンピュータ動作を説明する。これらの用語は、コンピュータによって実行される動作の高水準の抽象であり、人間によって実行される行為と混同してはならない。これらの用語に対応する実際のコンピュータ動作は、実装に応じて変化する。
【０１９７】
本発明の原理を適用できる多数の可能な実施形態に鑑みて、我々は、添付の特許請求の範囲およびその同等物の趣旨および範囲に含まれるそのような実施形態のすべてを、本発明として請求する。
【図面の簡単な説明】
【０１９８】
【図１】本コーディング技法を組み込むことができるオーディオ・エンコーダを示すブロック図である。
【図２】本コーディング技法を組み込むことができるオーディオ・デコーダを示すブロック図である。
【図３】図１の一般的なオーディオ・エンコーダに組み込むことができる変更されたコードワード（modified codewords）およびまたは可変周波数セグメント化を使用する効率的なオーディオ・コーディングを実装するベースバンド・コーダおよび拡張バンド・コーダを示すブロック図である。
【図４】図３の拡張バンド・コーダを使用する効率的なオーディオ・コーディングを用いるバンドのエンコーディングを示す流れ図である。
【図５】図２の一般的なオーディオ・デコーダに組み込むことができる、ベースバンド・デコーダ、拡張バンド構成デコーダ、および拡張バンド・デコーダを示すブロック図である。
【図６】図５の拡張バンド・デコーダを使用する効率的なオーディオ・コーディングを用いるバンドのデコーディングを示す流れ図である。
【図７】スペクトル係数の一つの集合を表すグラフである。
【図８】コードワードと、そのコードワードのさまざまな線形変換および非線形変換とを示すグラフである。
【図９】ピークを明瞭には表さない例示的ベクトルを示すグラフである。
【図１０】指数変換によるコードワード変更（codeword modification）を介して作成された明瞭なピークを有する図９のグラフを示すグラフである。
【図１１】コードワードがモデリングするサブバンドと比較した、そのコードワードを示すグラフである。
【図１２】変換されたサブバンド・コードワードがモデリングするサブバンドと比較した、そのコードワードを示すグラフである。
【図１３】コードワード、そのコードワードによってコーディングされるサブバンド、そのコードワードのスケーリングされたバージョン、およびそのコードワードの変更されたバージョン（modified version）を示すグラフである。
【図１４】分割サブバンド・サイズ変換およびマージ・サブバンド・サイズ変換の例示的な系列を示す図である。
【図１５】図１または２のオーディオ・エンコーダ／デコーダを実装するのに適切なコンピューティング環境を示すブロック図である。
【図１】
2009501945.tif 000026
【図２】
2009501945.tif 000027
【図３】
2009501945.tif 000028
【図４】
2009501945.tif 000029
【図５】
2009501945.tif 000030
【図６】
2009501945.tif 000031
【図７】
2009501945.tif 000032
【図８】
2009501945.tif 000033
【図９】
2009501945.tif 000034
【図１０】
2009501945.tif 000035
【図１１】
2009501945.tif 000036
【図１２】
2009501945.tif 000037
【図１３】
2009501945.tif 000038
【図１４】
2009501945.tif 000039
【図１５】
2009501945.tif 000040
【国際調査報告】
2009501945.tif 000041