(57)【要約】      （修正有）【課題】広義知覚類似性を使用するデジタルメディアスペクトルデータの効率的な復号を提供する。【解決手段】広義知覚類似性を使用するオーディオエンコーダ１００は、すでにコード化されているスペクトルの、省略されたスペクトル係数の知覚的に類似のバージョンを符号化することによって品質を改善する。省略されたスペクトル係数は、いくつかのサブバンドに分割され、２つのパラメータ、すなわち、帯域内のエネルギーを表すスケールファクタと、帯域の形状を表すシェープパラメータとして符号化される。シェープパラメータは、モーションベクトル、固定コードブック内のインデックス、またはランダムノイズベクトルの形態である。この符号化により、復号時にコピーされるスペクトルの似た形状の一部分のスケーリングされたバージョンが効率的に表される。【選択図】図１
2014240963.tif 000002
【特許請求の範囲】
【請求項１】
デコーダにおいて、符号化されたオーディオビットストリームに対するオーディオ復号を実行する方法であって、
前記符号化されたオーディオビットストリームから１または複数のベースバンドスペクトル係数を復号するステップと、
コピーすべき１または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、１若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する１若しくは複数の係数または正規化されたランダムノイズベクトルに対応する１若しくは複数の係数を選択的にコピーし、かつ
スケールパラメータに応じて、前記コピーされた１または複数の係数をスケーリングすること
により、１または複数の拡張帯域スペクトル係数を復号するステップと
を含むことを特徴とする方法。
【請求項２】
前記スケールパラメータは、先行する拡張帯域のスケールパラメータに基づいて予測されることを特徴とする請求項１に記載の方法。
【請求項３】
前記スケールパラメータは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の帯域の全エネルギーを表すスケーリングファクタを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記スケールパラメータはスケーリングファクタを含み、前記スケーリングファクタは前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値であることを特徴とする請求項１に記載の方法。
【請求項５】
前記復号された１または複数のベースバンドスペクトル係数および前記復号された１または複数の拡張帯域スペクトル係数を入力オーディオ信号ブロックの複製に変換する逆変換操作を実行するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記スケールパラメータは、複数の拡張帯域スペクトル係数に対するスケーリングファクタを周波数の関数として与える多項関係を特徴付ける係数を含むことを特徴とする請求項１に記載の方法。
【請求項７】
符号化されたオーディオビットストリームに対するオーディオ復号方法であって、
前記符号化されたオーディオビットストリームから１または複数のベースバンドスペクトル係数を復号するステップと、
コピーすべき１または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、１若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する１若しくは複数の係数または正規化されたランダムノイズベクトルに対応する１若しくは複数の係数を選択的にコピーし、かつ
スケールパラメータに応じて、前記コピーされた１または複数の係数をスケーリングすること
により、１または複数の拡張帯域スペクトル係数を復号するステップと
を含む方法をコンピュータに実行させるプログラム。
【請求項８】
前記スケールパラメータは、先行する拡張帯域のスケールパラメータに基づいて予測されることを特徴とする請求項７に記載のプログラム。
【請求項９】
前記スケールパラメータは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の帯域の全エネルギーを表すスケーリングファクタを含むことを特徴とする請求項７に記載のプログラム。
【請求項１０】
前記スケールパラメータはスケーリングファクタを含み、前記スケーリングファクタは前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値であることを特徴とする請求項７に記載のプログラム。
【請求項１１】
前記方法は前記復号された１または複数のベースバンドスペクトル係数および前記復号された１または複数の拡張帯域スペクトル係数を入力オーディオ信号ブロックの複製に変換する逆変換操作を実行するステップをさらに含むことを特徴とする請求項７に記載のプログラム。
【請求項１２】
前記スケールパラメータは、複数の拡張帯域スペクトル係数に対するスケーリングファクタを周波数の関数として与える多項関係を特徴付ける係数を含むことを特徴とする請求項７に記載のプログラム。
【請求項１３】
処理ユニットと、
符号化されたオーディオビットストリームに対するオーディオ復号方法を前記処理ユニットに実行させるために構成された命令を含む１または複数のコンピュータ読み取り可能な記憶媒体と
を備えたコンピュータであって、前記方法は、
前記符号化されたオーディオビットストリームから１または複数のベースバンドスペクトル係数を復号するステップと、
前記符号化されたオーディオビットストリームから、拡張スペクトル係数のある帯域に対するスケールファクタを復号し、
コピーすべき１または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、スペクトル帯域の形状を記述する１若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する１若しくは複数の係数または正規化されたランダムノイズベクトルに対応する１若しくは複数の係数を選択的にコピーし、かつ
前記ある帯域に対する前記復号されたスケールファクタに応じて、前記コピーされた１または複数の係数をスケーリングすること
により、前記符号化されたオーディオビットストリームから拡張スペクトル係数の前記ある帯域を復号するステップと、
前記復号された１または複数のベースバンドスペクトル係数および前記復号された１または複数の拡張帯域スペクトル係数に逆変換を実行して、再構成されたオーディオ信号を作成するステップと
を含むことを特徴とするコンピュータ。
【請求項１４】
前記スケールパラメータは、先行する拡張帯域のスケールパラメータに基づいて予測されることを特徴とする請求項１３に記載のコンピュータ。
【請求項１５】
前記ある帯域に対する前記復号されたスケールファクタは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値を含むことを特徴とする請求項１３に記載のコンピュータ。
【請求項１６】
前記シェープパラメータは、前記スペクトル帯域の形状の伸張を表す値を更に含むことを特徴とする請求項１３に記載のコンピュータ。
【請求項１７】
前記スケールパラメータは、前記オーディオビットストリームから以前に復号されたスケールファクタからとられた予測復号を使用して復号されたスケールファクタを更に含むことを特徴とする請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、広義知覚類似性に基づくデジタルメディア（例えば、オーディオ、ビデオ、静止画など）符号化および復号に関する。
【背景技術】
【０００２】
オーディオのコーディングには、人の聴力の様々な知覚モデルを利用するコーディング技法が使用される。例えば、強い音に近接する多数のより弱い音は覆い隠され、その結果、より弱い音はコード化することを必要としない。従来の知覚オーディオコーディングでは、これが様々な周波数データの適応量子化として利用される。知覚的に重要な周波数データには、より多くのビット、したがってより細かい量子化が割り振られ、逆も同様である。非特許文献１を参照されたい。
【０００３】
しかし、知覚コーディングは、広い意味に取ることができる。例えば、スペクトルのいくつかの部分は、適切にシェーピングされたノイズと共にコード化することができる。非特許文献２を参照されたい。この手法を取るとき、コード化された信号は、原形の正確な、またはほぼ正確なバージョンを表そうとしない可能性がある。目標はむしろ、原形に比べて同様に、また快く響かせることである。
【０００４】
これらの知覚効果はすべて、オーディオ信号のコーディングに必要とされるビットレートを削減するために使用することができる。これは、いくつかの周波数成分が、元の信号内にある場合のように正確に表現されることを必要とせず、コード化しない、あるいは原形における場合と同じ知覚効果を与える何かと置き換えることができるからである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１０／０２０，７０８号明細書
【特許文献２】米国特許出願第１０／０１６，９１８号明細書
【特許文献３】米国特許出願第１０／０１７，７０２号明細書
【特許文献４】米国特許出願第１０／０１７，８６１号明細書
【特許文献５】米国特許出願第１０／０１７，６９４号明細書
【非特許文献１】Painter, T. and Spanias, A., "Perceptual Coding Of Digital Audio," Proceedings Of The IEEE, vol. 88, Issue 4, April 2000, pp. 451-515
【非特許文献２】Schulz, D., "Improving Audio Codecs By Noise Substitution," Journal Of The AES, vol. 44, no. 7/8, July/August 1996, pp. 593-598
【非特許文献３】ITU-R BS 1387
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書に述べられているデジタルメディア（例えば、オーディオ、ビデオ、静止画など）符号化／復号技法は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいは両者の組合せを使用して、いくつかの周波数成分を知覚的に良好に、または部分的に表すことができることを利用する。より具体的には、いくつかの周波数帯域は、すでにコード化されている他の帯域のシェーピング済みバージョンとして、知覚的に良好に表すことができる。実際のスペクトルは、この合成バージョンから逸脱する可能性があるが、依然として、品質を落とすことなしにオーディオ信号符号化のビットレートを著しく減じるために使用することができる、知覚的に良好に表現されたものである。
【０００７】
大抵のオーディオコーデックは、変形離散コサイン変換（ＭＤＣＴ）またはＭＬＴ（Ｍｏｄｕｌａｔｅｄ  Ｌａｐｐｅｄ  Ｔｒａｎｓｆｏｒｍ）など、サブバンド変換または重ね合わせ直交変換（ｏｖｅｒｌａｐｐｅｄ  ｏｒｔｈｏｇｏｎａｌ  ｔｒａｎｓｆｏｒｍ）を使用してスペクトル分解を使用し、オーディオ信号を時間領域表現からスペクトル係数のブロックまたは組に変換する。次いで、これらのスペクトル係数は、コード化され、デコーダに送られる。これらのスペクトル係数の値のコーディングが、オーディオコーデック内で使用される大抵のビットレートを構成する。低いビットレートでは、係数すべてを粗くコード化し、不十分な品質で再構成されるように、あるいは、より少ない係数をコード化し、こもった、低域通過した響きの信号となるように設計することができる。本明細書に述べられているオーディオ符号化／復号技法は、これらの後者を行うとき（すなわち、オーディオコーデックが少ない係数、すなわち、必ずしも下位互換性のためではないが、一般に低いビットレートをコード化することを選んだとき）オーディオ品質を改善するために使用することができる。
【０００８】
少ない係数が符号化されるだけのとき、コーデックは、再構築の際に、ぼやけた、低域通過した音を生成する。この品質を改善するために、この述べられている符号化／復号技法は、全ビットレートの小さな割合を費やして、欠けているスペクトル係数の知覚的に快いバージョンを追加し、完全な、より豊かな音を生み出す。これは、欠けている係数を実際にコード化することによってではなく、欠けている係数を、すでにコード化されているもののスケーリングされたバージョンとして知覚的に表すことによって達成される。一例では、（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ａｕｄｉｏ（ＷＭＡ）など）ＭＬＴ分解を使用するコーデックは、ある割合の帯域幅までコード化する。次いで、述べられている符号化／復号技法のこのバージョンは、残りの係数を（それぞれが典型的には６４個または１２８個のスペクトル係数からなるサブバンドなど）ある数の帯域に分割する。これらの帯域のそれぞれについて、このバージョンの符号化／復号技法は、２つのパラメータ、すなわち、その帯域内の全エネルギーを表すスケールファクタと、その帯域内でのスペクトルの形状を表すためのシェープパラメータ（ｓｈａｐｅ  ｐａｒａｍｅｔｅｒ）とを使用して、その帯域を符号化する。スケールファクタパラメータは、単にその帯域内の係数のｒｍｓ（２乗平均平方根）値とすることができる。シェープパラメータは、スペクトルの正規化バージョンを、すでにコード化されたスペクトルの同様な部分から単にコピーして符号化するモーションベクトルとすることができる。場合によっては、シェープパラメータは、代わりに、正規化されたランダムノイズベクトルを、または単に何らかの他の固定されたコードブックからのベクトルを指定することができる。スペクトルの別の部分から一部分をコピーすることは、オーディオにおいて有用である。というのは、一般に多数の音信号には、スペクトル全体にわたって繰り返す高調波成分があるからである。ノイズまたは何らかの他の固定コードブックの使用により、スペクトルの任意のすでにコード化された部分によって十分に表されない成分の低ビットレートコーディングが可能になる。このコーディング技法は、本質的に、これらの帯域の利得形状（ｇａｉｎ−ｓｈａｐｅ）ベクトル量子化コーディングであり、ベクトルは、スペクトル係数の周波数帯域であり、コードブックは、先にコード化されたスペクトルから取られ、他の固定ベクトルまたはランダムノイズベクトルをも含むことができる。また、スペクトルのこのコピーされた部分が、その同じ部分の従来のコーディングに追加される場合には、この追加は、残余コーディングである。これは、信号の従来のコーディングにより、少ないビットでコード化することが容易である基本表現（例えば、スペクトルフロアのコーディング）が得られ、残りの部分が新しいアルゴリズムでコード化される場合に有用となる可能性がある。
【０００９】
したがって、述べられている符号化／復号技法は、既存のオーディオコーデックを改善する。具体的には、この技法は、所与の品質でのビットレートの削減を、または固定ビットレートでの品質の改善を可能にする。この技法を使用し、様々なモード（例えば、連続ビットレートまたは可変ビットレート、ワンパスまたはマルチパス）でオーディオコーデックを改善することができる。
【００１０】
本発明の追加の特徴および利点は、添付の図面を参照しながら進む以下の諸実施形態の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１１】
【図１】本コーディング技法を組み込むことができるオーディオエンコーダのブロック図である。
【図２】本コーディング技法を組み込むことができるオーディオデコーダのブロック図である。
【図３】図１の一般的なオーディオエンコーダに組み込むことができる、広義知覚類似性を使用する効率的なオーディオコーディングを実装するベースバンドコーダおよび拡張帯域コーダのブロック図である。
【図４】図３の拡張帯域コーダ内で、広義知覚類似性を使用する効率的なオーディオコーディングで帯域を符号化する流れ図である。
【図５】図２の一般的なオーディオデコーダに組み込むことができるベースバンドデコーダおよび拡張帯域デコーダのブロック図である。
【図６】図５の拡張帯域デコーダ内で、広義知覚類似性を使用する効率的なオーディオコーディングで帯域を復号する流れ図である。
【図７】図１のオーディオエンコーダ／デコーダを実装するための好適なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明は、本発明による広義知覚類似性を使用するデジタルメディアスペクトルデータのデジタルメディア符号化／復号を備えるデジタルメディアエンコーダ／デコーダ実施形態に対処する。より具体的には、以下の説明は、オーディオに対するこれらの符号化／復号技法の応用について述べている。これらは、他のデジタルメディアタイプ（例えば、ビデオ、静止画など）の符号化／復号に適用することもできる。そのオーディオへの応用では、このオーディオ符号化／復号は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいは両者の組合せを使用していくつかの周波数成分を表す。より詳細には、いくつかの周波数帯域が、すでにコード化されている他の帯域のシェーピング済みバージョンとして表される。これは、所与の品質でのビットレートの削減を、または固定ビットレートでの品質の改善を可能にする。
【００１３】
１．一般化されたオーディオエンコーダ／デコーダ
図１および図２は、本明細書に述べられている、広義知覚類似性を使用するオーディオスペクトルデータのオーディオ符号化／復号のための技法を組み込むことができる一般化オーディオエンコーダ（１００）および一般化オーディオデコーダ（２００）のブロック図である。エンコーダおよびデコーダ内のモジュール間で示されている関係は、エンコーダおよびデコーダ内の情報の主流を示し、話を簡単にするために、他の関係は示されていない。実装と望まれる圧縮のタイプとに応じて、エンコーダまたはデコーダのモジュールは、追加する、割愛する、複数のモジュールに分ける、他のモジュールと組み合わせる、かつ／または同様なモジュールと置き換えることができる。代替の実施形態では、異なるモジュールおよび／またはモジュールの他の構成を有するエンコーダまたはデコーダが、知覚的なオーディオ品質を測定する。
【００１４】
広義知覚類似性オーディオスペクトルデータ符号化／復号を組み込むことができるオーディオエンコーダ／デコーダのさらなる詳細は、２００１年１２月１４日に出願された特許文献１、２００１年１２月１４日に出願された特許文献２、２００１年１２月１４日に出願された特許文献３、２００１年１２月１４日に出願された特許文献４、２００１年１２月１４日に出願された特許文献５に述べられており、これらの開示を参照により本明細書に組み込む。
【００１５】
Ａ．一般化オーディオエンコーダ
一般化オーディオエンコーダ（１００）は、周波数トランスフォーマ（１１０）、多重チャネルトランスフォーマ（１２０）、知覚モデラ（１３０）、ウェイタ（ｗｅｉｇｈｔｅｒ）（１４０）、量子化器（１５０）、エントロピーエンコーダ（１６０）、レート／品質コントローラ（１７０）、ビットストリームマルチプレクサ［ＭＵＸ］（１８０）を含む。
【００１６】
エンコーダ（１００）は、表１に示されているものなどのフォーマットで入力オーディオサンプル（１０５）の時間系列を受け取る。複数のチャネルを有する入力（例えば、ステレオモード）の場合、エンコーダ（１００）は、各チャネルを独立して処理し、多重チャネルトランスフォーマ（１２０）の後で、一緒にコード化されたチャネルを扱うことができる。エンコーダ（１００）は、オーディオサンプル（１０５）を圧縮し、エンコーダ（１００）の様々なモジュールによって生成された情報を多重化して、ＷＭＡ［Ｗｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ  Ａｕｄｉｏ］またはＡＳＦ［Ａｄｖａｎｃｅｄ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ］など、あるフォーマットでビットストリーム（１９５）を出力する。別法として、エンコーダ（１００）は、他の入力フォーマットおよび／または出力フォーマットを扱うことができる。
【００１７】
周波数トランスフォーマ（１１０）は、オーディオサンプル（１０５）を受け取り、それらを周波数領域内のデータに変換する。周波数トランスフォーマ（１１０）は、可変の時間的分解能（ｔｅｍｐｏｒａｌ  ｒｅｓｏｌｕｔｉｏｎ）を可能にするように可変のサイズを有することができるブロックに、オーディオサンプル（１０５）を分ける。小さなブロックは、入力オーディオサンプル（１０５）内の短いが活動的な遷移セグメントで時間詳細をより多く保存することを可能にするが、何らかの周波数分解能を犠牲にする。それに対して、より大きなブロックは、周波数分解能が良くなり時間分解能が悪化し、通常、より長く、あまり活動的でないセグメントで、より高い圧縮効率を可能にする。ブロックは重なり合うことができ、普通なら後の量子化によって導入されるはずの、ブロック間の知覚可能な不連続を低減する。周波数トランスフォーマ（１１０）は、周波数係数データのブロックを多重チャネルトランスフォーマ（１２０）に出力し、ブロックサイズなど側面情報をＭＵＸ（１８０）に出力する。周波数トランスフォーマ（１１０）は、周波数係数データと側面情報を共に知覚モデラ（１３０）に出力する。
【００１８】
周波数トランスフォーマ（１１０）は、オーディオ入力サンプル（１０５）のフレームを、時間依存性のサイズを有する、重なり合うサブフレームブロックに区分し、時間依存性のＭＬＴをサブフレームブロックに適用する。可能なサブフレームサイズは、１２８、２５６、５１２、１０２４、２０４８、４０９６個のサンプルを含む。ＭＬＴは、時間ウィンドウ関数によって変調されたＤＣＴのように演算し、このウィンドウ関数は、時間依存性であり、サブフレームサイズのシーケンスによって決まる。ＭＬＴは、サンプルの所与の重なり合うブロックｘ［ｎ］，０≦ｎ＜ｓｕｂｆｒａｍｅ＿ｓｉｚｅを、周波数係数のブロックＸ［ｋ］，０≦ｋ＜ｓｕｂｆｒａｍｅ＿ｓｉｚｅ／２に変換する。周波数トランスフォーマ（１１０）はまた、将来のフレームの複雑さの推定値をレート／品質コントローラ（１７０）に出力することができる。代替の実施形態は、他の様々なＭＬＴを使用する。さらに他の代替の実施形態では、周波数トランスフォーマ（１１０）は、ＤＣＴ、ＦＦＴ、または他のタイプの変調もしくは非変調、重ね合わせもしくは非重ね合わせ周波数変換を適用し、あるいは、サブバンドまたはウェーブレットコーディングを使用する。
【００１９】
多重チャネルオーディオデータの場合、周波数トランスフォーマ（１１０）によって生成された周波数係数データの複数のチャネルは、しばしば相関関係にある。この相関を利用するために、多重チャネルトランスフォーマ（１２０）は、複数の元の、独立してコード化されたチャネルを、一緒にコード化されたチャネルに変換することができる。例えば、入力がステレオモードである場合、多重チャネルトランスフォーマ（１２０）は、左右のチャネルを和と差のチャネルに変換することができる。すなわち
【００２０】
【数１】
2014240963.tif 000003
【００２１】
あるいは、多重チャネルトランスフォーマ（１２０）は、左右のチャネルを、独立してコード化されたチャネルとして通過させることができる。より一般的には、２つ以上のいくつかの入力チャネルの場合、多重チャネルトランスフォーマ（１２０）は、元の独立してコード化されたチャネルを変更しないで通過させ、または、元のチャネルを、一緒にコード化されたチャネルに変換する。独立してコード化されたチャネルか、それとも一緒にコード化されたチャネルを使用する判断は、所定のものとすることができ、あるいは、符号化中、ブロックなどごとに順応して判断を行うことができる。多重チャネルトランスフォーマ（１２０）は、ＭＵＸ（１８０）に対する側面情報を生成し、使用されているチャネル変換モードを示す。
【００２２】
知覚モデラ（１３０）は、所与のビットレートについて、再構築されたオーディオ信号の品質を改善するために、人の聴覚系の特性をモデル化する。知覚モデラ（１３０）は、周波数係数の可変サイズブロック励振パターンを計算する。最初に、知覚モデラ（１３０）は、ブロックのサイズおよび振幅スケールを正規化する。これは、後続の時間的なスミアリングを可能にし、品質測定のための一貫したスケールを確立する。任意選択で、知覚モデラ（１３０）は、外／中耳伝達関数をモデル化するために、ある周波数で係数を減衰する。知覚モデラ（１３０）は、ブロック内の係数のエネルギーを計算し、２５個の臨界帯域によってエネルギーを集める。別法として、知覚モデラ（１３０）は、別の数の臨界帯域（例えば、５５または１０９）を使用する。臨界帯域のための周波数範囲は実装によって決まり、多数の選択肢が周知である。例えば、非特許文献３、またはそこに述べられている参照を参照されたい。知覚モデラ（１３０）は、帯域エネルギーを処理し、同時および時間的なマスキングを調節する。代替の実施形態では、知覚モデラ（１３０）は、非特許文献３に記載され、または述べられているものなど、異なる聴覚モデルに従ってオーディオデータを処理する。
【００２３】
ウェイタ（１４０）は、知覚モデラ（１３０）から受け取られた励振パターンに基づいて、重み係数（あるいは、量子化行列と呼ばれる）を生成し、その重み係数を、多重チャネルトランスフォーマ（１２０）から受け取られたデータに適用する。重み係数は、オーディオデータ内の複数の量子化帯域のそれぞれについて重みを含む。量子化帯域は、エンコーダ（１００）内のどこかで使用された臨界帯域と、数または位置を同じとすることも、異なるものとすることもできる。重み係数は、ノイズがその量子化帯域全体にわたって拡散される比率を示し、ノイズがあまり聞き取れない帯域内に、より多くのノイズを置くことによってノイズの可聴性を最小限に抑え、またその逆にすることを目標とする。重み係数は、量子化帯域の振幅および数がブロック間で変わる可能性がある。一実装では、量子化帯域の数は、ブロックサイズに従って変わり、ブロックが小さいと、大きいブロックより量子化帯域が少なくなる。例えば、１２８個の係数を有するブロックは、１３個の量子化帯域を有し、２５６個の係数を有するブロックは、１５個の量子化帯域を有し、２０４８個の係数を有するブロックについての２５個の量子化帯域に至る。ウェイタ（１４０）は、独立して、または一緒にコード化されたチャネル内の多重チャネルオーディオデータの各チャネルについて、１組の重み係数を生成し、あるいは、一緒にコード化されたチャネルについて重み係数の単一の組を生成する。代替の実施形態では、ウェイタ（１４０）は、励振パターン以外に、または励振パターンに加えて、情報から重み係数を生成する。
【００２４】
ウェイタ（１４０）は、係数データの加重ブロックを量子化器（１５０）に出力し、重み係数の組など側面情報をＭＵＸ（１８０）に出力する。ウェイタ（１４０）はまた、レート／品質コントローラ（１７０）、またはエンコーダ（１００）内の他のモジュールに重み係数を出力することができる。重み係数の組は、より効率的に提示するために圧縮することができる。重み係数が不可逆圧縮される場合、再構築後の重み係数は、一般に、係数データのブロックを加重するために使用される。ブロックの帯域内のオーディオ情報が、何らかの理由（例えば、ノイズ置換または帯域トランケーション）で完全に省略される場合、エンコーダ（１００）は、そのブロックについて量子化行列の圧縮をさらに改善することが可能となる。
【００２５】
量子化器（１５０）は、ウェイタ（１４０）の出力を量子化し、エントロピーエンコーダ（１６０）に対して量子化された係数データを、また、ＭＵＸ（１８０）に対して量子化ステップサイズを含む側面情報を生成する。量子化は、情報の不可逆な損失を導入するが、エンコーダ（１００）がレート／品質コントローラ（１７０）と共に出力ビットストリーム（１９５）のビットレートを調節することも可能になる。図１では、量子化器（１５０）は適応性の均一なスカラ量子化器である。量子化器（１５０）は、各周波数係数に同じ量子化ステップサイズを適用するが、量子化ステップサイズそれ自体は、反復１回ごとに変化し、エントロピーエンコーダ（１６０）出力のビットレートに影響を及ぼす可能性がある。代替の実施形態では、量子化器は、不均一量子化器、ベクトル量子化器、および／または非適応量子化器である。
【００２６】
エントロピーエンコーダ（１６０）は、量子化器（１５０）から受け取られた量子化済み係数データを可逆圧縮する。例えば、エントロピーエンコーダ（１６０）は、マルチレベルランレングス符号化、バリアブルトゥバリアブルレングス符号化（ｖａｒｉａｂｌｅ−ｔｏ−ｖａｒｉａｂｌｅ  ｌｅｎｇｔｈ  ｃｏｄｉｎｇ）、ランレングス符号化、ハフマン符号化、辞書符号化、算術符号化、ＬＺ符号化、上記の組合せ、または何らかの他のエントロピー符号化技法を使用する。
【００２７】
レート／品質コントローラ（１７０）は、量子化器（１５０）と共に働き、エンコーダ（１００）の出力のビットレートおよび品質を調節する。レート／品質コントローラ（１７０）は、エンコーダ（１００）の他のモジュールから情報を受け取る。一実装では、レート／品質コントローラ（１７０）は、周波数トランスフォーマ（１１０）から将来の複雑さの推定値を、知覚モデラ（１３０）からサンプリングレート、ブロックサイズ情報、元のオーディオデータの励振パターン、ウェイタ（１４０）から重み係数を、ＭＵＸ（１８０）から（例えば、量子化、再構築、または符号化された）何らかの形態の量子化済みオーディオ情報のブロックとバッファ状況情報とを受け取る。レート／品質コントローラ（１７０）は、オーディオデータを量子化された形態から再構築するために、逆量子化器、逆ウェイタ、逆多重チャネルトランスフォーマ、またおそらくはエントロピーデコーダおよび他のモジュールを含むことができる。
【００２８】
レート／品質コントローラ（１７０）は、現在の条件を与えられると、所望の量子化ステップサイズを決定するために情報を処理し、量子化ステップサイズを量子化器（１５０）に出力する。次いで、レート／品質コントローラ（１７０）は、下記で述べるように、その量子化ステップサイズで量子化された再構築後オーディオデータのブロックの品質を測定する。測定された品質、ならびにビットレート情報を使用して、レート／品質コントローラ（１７０）は、瞬間的にも長期的にもビットレート制約および品質制約を満たすという目標を用いて、量子化ステップサイズを調整する。代替の実施形態では、レート／品質コントローラ（１７０）は、異なる、または追加の情報を扱い、あるいは、様々な技法を適用し、品質およびビットレートを調節する。
【００２９】
レート／品質コントローラ（１７０）と共に、エンコーダ（１００）は、ノイズ置換、帯域トランケーション、および／または多重チャネル再マトリックス化をオーディオデータのブロックに適用することができる。低ビットレートおよび中間ビットレートでは、オーディオエンコーダ（１００）は、ノイズ置換を使用し、ある帯域内で情報を搬送することができる。帯域トランケーションでは、あるブロックについて測定された品質が、不十分な品質であることを示す場合、エンコーダ（１００）は、ある（通常、より高い周波数の）帯域内の係数を省略し、残りの帯域内で全体的な品質を改善することができる。多重チャネル再マトリックス化では、一緒にコード化されたチャネル内の低ビットレートの多重チャネルオーディオデータについて、エンコーダ（１００）は、あるチャネル（例えば、差のチャネル）内の情報を抑制し、残りのチャネル（例えば、和のチャネル）の品質を改善することができる。
【００３０】
ＭＵＸ（１８０）は、オーディオエンコーダ（１００）の他のモジュールから受け取られた側面情報を、エントロピーエンコーダ（１６０）から受け取られたエントロピー符号化データと共に多重化する。ＭＵＸ（１８０）は、その情報をＷＭＡで、またはオーディオデコーダが認識する別のフォーマットで出力する。
【００３１】
ＭＵＸ（１８０）は、エンコーダ（１００）によって出力すべきビットストリーム（１９５）を格納する仮想バッファを含む。この仮想バッファは、オーディオ内の複雑さの変化によるビットレートの短期揺らぎを滑らかにするために、所定の期間のオーディオ情報（例えば、ストリーミングオーディオについて５秒）を格納する。次いで、この仮想バッファは、比較的一定のビットレートでデータを出力する。バッファの現在の満杯度、バッファの満杯度の変化率、バッファの他の特性は、レート／品質コントローラ（１７０）が品質およびビットレートを調節するために使用することができる。
【００３２】
Ｂ．一般化オーディオデコーダ
図２を参照すると、一般化オーディオデコーダ（２００）は、ビットストリームデマルチプレクサ［ＤＥＭＵＸ］（２１０）、エントロピーデコーダ（２２０）、逆量子化器（２３０）、ノイズ発生器（２４０）、逆ウェイタ（２５０）、逆多重チャネルトランスフォーマ（２６０）、逆周波数トランスフォーマ（２７０）を含む。デコーダ（２００）はレート／品質制御のためのモジュールを含まないため、デコーダ（２００）は、エンコーダ（１００）より単純である。
【００３３】
デコーダ（２００）は、ＷＭＡまたは別のフォーマットの圧縮済みオーディオデータのビットストリーム（２０５）を受け取る。ビットストリーム（２０５）は、エントロピー符号化データと、デコーダ（２００）がそこからオーディオサンプル（２９５）を再構築する側面情報とを含む。複数のチャネルを有するオーディオデータの場合、デコーダ（２００）は、各チャネルを独立して処理し、逆多重チャネルトランスフォーマ（２６０）の前に、一緒にコード化されたチャネルを扱うことができる。
【００３４】
ＤＥＭＵＸ（２１０）は、ビットストリーム（２０５）内の情報を解析し、デコーダ（２００）のモジュールに情報を送る。ＤＥＭＵＸ（２１０）は、オーディオの複雑さの揺らぎ、ネットワークジッタ、および／または他の要因によるビットレートの短期変動を補償するために、１つまたは複数のバッファを含む。
【００３５】
エントロピーデコーダ（２２０）は、ＤＥＭＵＸ（２１０）から受け取られたエントロピー符号を可逆伸張し、量子化された周波数係数データを生成する。エントロピーデコーダ（２２０）は、一般に、エンコーダ内で使用されたエントロピー符号化技法の逆を適用する。
【００３６】
逆量子化器（２３０）は、ＤＥＭＵＸ（２１０）から量子化ステップサイズを受け取り、エントロピーデコーダ（２２０）から量子化周波数係数データを受け取る。逆量子化器（２３０）は、量子化ステップサイズを量子化周波数係数データに適用し、周波数係数データを部分的に再構築する。代替の実施形態では、逆量子化器は、エンコーダ内で使用された何らかの他の量子化技法の逆を適用する。
【００３７】
ノイズ発生器（２４０）は、ＤＥＭＵＸ（２１０）から、データのブロック内のどの帯域がノイズ置換されているかという指示と、ノイズの形態のための任意のパラメータとを受け取る。ノイズ発生器（２４０）は、示された帯域のためのパターンを生成し、その情報を逆ウェイタ（２５０）に渡す。
【００３８】
逆ウェイタ（２５０）は、ＤＥＭＵＸ（２１０）から重み係数を、ノイズ発生器（２４０）から任意のノイズ置換帯域のためのパターンを、逆量子化器（２３０）から部分的に再構築された周波数係数データを受け取る。必要に応じて、逆ウェイタ（２５０）は、重み係数を伸張する。逆ウェイタ（２５０）は、ノイズ置換されていない帯域について、部分的に再構築された周波数係数データに重み係数を適用する。次いで、逆ウェイタ（２５０）は、ノイズ発生器（２４０）から受け取られたノイズパターンを加える。
【００３９】
逆多重チャネルトランスフォーマ（２６０）は、逆ウェイタ（２５０）から再構築済み周波数係数データを、ＤＥＭＵＸ（２１０）からチャネル変換モード情報を受け取る。多重チャネルデータが、独立してコード化されたチャネル内にある場合、逆多重チャネルトランスフォーマ（２６０）は、そのチャネルを通過させる。多重チャネルデータが、一緒にコード化されたチャネル内にある場合、逆多重チャネルトランスフォーマ（２６０）は、そのデータを、独立してコード化されたチャネル内に変換する。望むなら、デコーダ（２００）は、この時点で、再構築された周波数係数データの品質を測定することができる。
【００４０】
逆周波数トランスフォーマ（２７０）は、逆多重チャネルトランスフォーマ（２６０）によって出力された周波数係数データと、ＤＥＭＵＸ（２１０）からのブロックサイズなど側面情報とを受け取る。逆周波数トランスフォーマ（２７０）は、エンコーダ内で使用された周波数変換の逆を適用し、再構築されたオーディオサンプル（２９５）のブロックを出力する。
【００４１】
２．広義知覚類似性を用いる符号化／復号
図３は、図１および図２の一般化オーディオエンコーダ（１００）およびデコーダ（２００）の全体的なオーディオ符号化／復号プロセス内に組み込むことができる、広義知覚類似性を用いる符号化を使用するオーディオエンコーダ（３００）の一実装を示す。この実施では、オーディオエンコーダ（３００）は、ＭＤＣＴまたはＭＬＴなどサブバンド変換または重ね合わせ直交変換を使用して、変換（３２０）においてスペクトル分解を実行し、オーディオ信号の各入力ブロックについて１組のスペクトル係数を生成する。従来周知であるように、オーディオエンコーダは、出力ビットストリーム内でデコーダに送るために、これらのスペクトル係数をコード化する。これらのスペクトル係数の値のコーディングが、オーディオコーデック内で使用される大抵のビットレートを構成する。低いビットレートでは、オーディオエンコーダ（３００）は、ベースバンドコーダ３４０を使用して、スペクトルのより低い部分、またはベースバンド部分など、より少ないスペクトル係数（すなわち、周波数トランスフォーマ（１１０）から出力されるスペクトル係数の帯域幅のある割合内で符号化することができるいくつかの係数）をコード化することを選択する。ベースバンドコーダ３４０は、上記で一般化オーディオエンコーダについて述べられているように、これらのベースバンドスペクトル係数を、従来周知のコーディング構文を使用して符号化する。これにより、一般に、再構築されたオーディオは、こもって響く、または低域通過ろ波されることになる。
【００４２】
オーディオエンコーダ（３００）は、広義知覚類似性を使用して、割愛されたスペクトル係数をもコード化することによって、こもった／低域通過効果を回避する。ベースバンドコーダ３４０によるコーディングから割愛された（ここでは「拡張帯域スペクトル係数」と呼ばれる）スペクトル係数は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいはこの２つの組合せとして、拡張帯域コーダ３５０によってコード化される。より具体的には、拡張帯域スペクトル係数は、いくつかの（例えば、典型的には６４個または１２８個のスペクトル係数の）サブバンドに分割され、これらのサブバンドは、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョンとしてコード化される。これは欠けているスペクトル係数の知覚的に快いバージョンを追加し、完全な、より豊かな音を提供する。実際のスペクトルは、この符号化から得られる合成バージョンから逸脱する可能性があるが、この拡張帯域コーディングは、原形における場合と同様な知覚効果をもたらす。
【００４３】
いくつかの実装では、ベースバンドの幅（すなわち、ベースバンドコーダ３４０を使用してコード化されるベースバンドスペクトル係数の数）、ならびに拡張帯域のサイズまたは数が変わる可能性がある。そのような場合には、ベースバンドの幅、および拡張帯域コーダ（３５０）を使用してコード化される拡張帯域の数（またはサイズ）を、出力ストリーム（１９５）内にコード化することができる。
【００４４】
オーディオエンコーダ（３００）内におけるベースバンドスペクトル係数と拡張帯域係数の間のビットストリームの区分は、ベースバンドコーダのコーディング構文に基づいて既存のデコーダとの下位互換性を確保するし、その結果、そのような既存のデコーダが、拡張部分を無視しながら、ベースバンドでコード化された部分を復号することができるように行われる。その結果、より新しいデコーダだけが、拡張帯域でコード化されたビットストリームによってカバーされる完全なスペクトルを表す能力を有し、一方、より旧型のデコーダは、エンコーダが既存の構文を用いて符号化することを選んだ部分を表すことができるだけである。周波数境界は、柔軟かつ時間依存性とすることができる。信号特性に基づいてエンコーダが判断し、デコーダに明示的に送ることも、送ることを必要としないように、復号されたスペクトルの関数とすることもできる。既存のデコーダは、既存の（ベースバンド）コーデックを使用してコード化される部分を復号することができるだけであるため、これは、スペクトルのより低い部分が既存のコーデックでコード化され、より高い部分は、広義知覚類似性を使用して、拡張帯域コーディングを使用してコード化されることを意味する。
【００４５】
そのような下位互換性が必要とされない他の実装では、エンコーダは、周波数位置を考えることなしに、信号特性と符号化のコストだけに基づいて、従来のベースバンドコーディングと拡張帯域（広義知覚類似性手法）との間で自由に選ぶことができる。例えば、自然信号では非常に可能性が低いが、より高い周波数を従来のコーデックで、また、より低い部分を、拡張コーデックを使用して符号化するほうがよい可能性がある。
【００４６】
図４は、拡張帯域スペクトル係数を符号化するために、図３の拡張帯域コーダ（３５０）によって実行されるオーディオ符号化プロセス（４００）を示す流れ図である。このオーディオ符号化プロセス（４００）では、拡張帯域コーダ（３５０）は、拡張帯域スペクトル係数をいくつかのサブバンドに分割する。典型的な実装では、これらのサブバンドは、一般にそれぞれ６４個または１２８個のスペクトル係数で構成されることになる。別法として、他のサイズのサブバンド（例えば、１６、３２、または他の数のスペクトル係数）を使用することができる。サブバンドは、互いに素なものとすることも、（ウィンドウイングを使用して）重なり合うものとすることもできる。重なり合うサブバンドの場合、より多くの帯域がコード化される。例えば、サイズ６４のサブバンドを用いる拡張帯域コーダを使用して、１２８個のスペクトル係数をコード化しなければならない場合、２つの互いに素な帯域を使用して係数をコード化する、すなわち、係数０から６３を一方のサブバンドとして、また係数６４から１２７を他方としてコード化することができる。別法として、５０％の重なり合いで３つの重なり合う帯域を使用する、すなわち、０から６３を１つの帯域として、また３２から９５を別の帯域として、また６４から１２７を第３の帯域としてコード化することができる。
【００４７】
これらのサブバンドのそれぞれについて、拡張帯域コーダ（３５０）は、２つのパラメータを使用して帯域を符号化する。一方のパラメータ（「スケールパラメータ」）は、帯域内の全エネルギーを表すスケールファクタである。他方のパラメータ（概してモーションベクトルの形態の「シェープパラメータ」）は、帯域内のスペクトルの形状を表すために使用される。
【００４８】
図４の流れ図に示されているように、拡張帯域コーダ（３５０）は、拡張帯域の各サブバンドについて処理（４００）を実行する。最初に（４２０で）拡張帯域コーダ（３５０）は、スケールファクタを計算する。一実装では、スケールファクタは、単に現在のサブバンド内の係数のｒｍｓ（２乗平均平方根）値である。これは、係数すべての平均２乗値の平方根をとることによって見出される。平均２乗値は、サブバンド内の係数すべての２乗値の和をとり、係数の数で割ることによって見出される。
【００４９】
次いで、拡張帯域コーダ（３５０）は、シェープパラメータを決定する。シェープパラメータは、通常、スペクトルの正規化バージョンを、すでにコード化されたスペクトルの一部分（すなわち、ベースバンドコーダでコード化されたベースバンドスペクトル係数の一部分）から単にコピーして符号化することを示すモーションベクトルである。場合によっては、シェープパラメータは、代わりに、正規化されたランダムノイズベクトルを、または単に、固定されたコードブックからのスペクトル形状のためのベクトルを指定することができる。スペクトルの別の部分から形状をコピーすることは、オーディオにおいて有用である。というのは、一般に多数の音信号には、スペクトル全体にわたって繰り返す高調波成分があるからである。ノイズまたは何らかの他の固定コードブックの使用により、スペクトルの、ベースバンドでコード化された部分で十分に表されない成分の低ビットレートコーディングが可能になる。したがって、プロセス（４００）は、本質的にこれらの帯域の利得形状ベクトル量子化コーディングであり、ベクトルがスペクトル係数の周波数帯域であり、コードブックが、先にコード化されたスペクトルから取られ、他の固定ベクトルまたはランダムノイズベクトルをも含むことができるコーディングの方法を提供する。すなわち、拡張帯域コーダによってコード化された各サブバンドは、「ａ」がスケールパラメータであり「Ｘ」がシェープパラメータによって表されるベクトルであるａ・Ｘとして表され、先にコード化されたスペクトル係数の正規化バージョン、固定されたコードブックからのベクトル、またはランダムノイズベクトルとすることができる。また、スペクトルのこのコピーされた部分が、その同じ部分の従来のコーディングに追加される場合には、この追加は、残余コーディングである。これは、信号の従来のコーディングにより、少ないビットでコード化することが容易である基本表現（例えば、スペクトルフロアのコーディング）が得られ、残りの部分が新しいアルゴリズムでコード化される場合に有用となる可能性がある。
【００５０】
より具体的には、アクション（４３０）で、拡張帯域コーダ（３５０）は、同様な帯域のためのベースバンドスペクトル係数を、拡張帯域の現在のサブバンドと同様な形状を有するベースバンドスペクトル係数から探索する。拡張帯域コーダは、ベースバンドの各部分の正規化バージョンに対する最小平均２乗比較を使用して、ベースバンドのどの部分が現在のサブバンドに最も似ているか判定する。例えば、入力ブロックから変換（３２０）によって生成された２５６個のスペクトル係数があり、拡張帯域サブバンドは、それぞれ幅が１６個のスペクトル係数であり、ベースバンドコーダは、（０から１２７と採番された）最初の１２８個のスペクトル係数をベースバンドとして符号化する場合を考えてみる。次いで、探索により、係数位置０から１１１（すなわち、この場合には、ベースバンド内でコード化された合計１１２個の可能な、異なるスペクトル形状）で始まるベースバンドの各１６スペクトル係数部分の正規化バージョンに対して、各拡張帯域内の正規化された１６個のスペクトル係数の最小平均２乗比較が実行される。最も低い最小平均２乗値を有するベースバンド部分が、現在の拡張帯域に形状が最も近い（最も似ている）と見なされる。アクション（４３２）で、拡張帯域コーダは、ベースバンドスペクトル係数からのこの最も似ている帯域が、現在の拡張帯域に形状において十分に近い（例えば、最小平均２乗値が予め選択された閾値より低い）かどうか検査する。近い場合には、アクション（４３４）で、拡張帯域コーダは、ベースバンドスペクトル係数のこの最も近い合致帯域を指すモーションベクトルを決定する。このモーションベクトルは、ベースバンド内の開始係数位置（例えば、この例では０から１１１）とすることができる。（調性対非調性を検査することなど）他の方法もまた、ベースバンドスペクトル係数からの最も似ている帯域が、現在の拡張帯域に形状において十分に近いかどうか確かめるために使用することができる。
【００５１】
ベースバンドの十分に近い部分が見出せない場合には、拡張帯域コーダは、現在のサブバンドを表すためにスペクトル形状の固定コードブックを見る。拡張帯域コーダは、現在のサブバンドのスペクトル形状に似たスペクトル形状があるかどうか、この固定コードブックを探索する。見出された場合、拡張帯域コーダは、アクション（４４４）で、コードブック内のそのインデックスをシェープパラメータとして使用する。そうでない場合、アクション（４５０）で、拡張帯域コーダは、現在のサブバンドの形状を、正規化されたランダムノイズベクトルとして表すことを決定する。
【００５２】
代替の実装では、拡張帯域コーダは、ベースバンド内の最良のスペクトル形状があるかどうか探索する前でさえも、ノイズを使用してスペクトル係数を表すことができるかどうか判断することができる。このようにして、十分近いスペクトル形状がベースバンド内で見出された場合でも、拡張帯域コーダは、依然としてその部分を、ランダムノイズを使用してコード化することになる。これにより、ベースバンド内の位置に対応するモーションベクトルを送ることに比べたとき、ビットが少なくなる可能性がある。
【００５３】
アクション（４６０）で、拡張帯域コーダは、予測符号化、量子化、および／またはエントロピー符号化を使用して、スケールパラメータおよびシェープパラメータ（すなわち、この実装では、スケーリングファクタとモーションベクトル）を符号化する。一実装では、例えば、スケールパラメータは、直前の拡張サブバンドに基づいて予測符号化される（拡張帯域のサブバンドのスケーリングファクタは、一般に値が似ており、その結果、連続するサブバンドは、一般に値が近いスケーリングファクタを有する）。換言すれば、拡張帯域の最初のサブバンドについてのスケーリングファクタの完全な値が符号化される。後続のサブバンドは、それらの実際の値の、それらの予測値からの差としてコード化される（すなわち、予測値は、先行するサブバンドのスケーリングファクタである）。多重チャネルオーディオの場合、各チャネル内の拡張帯域の最初のサブバンドが、その完全な値として符号化され、後続のサブバンドのスケーリングファクタが、そのチャネル内の先行するサブバンドのスケーリングファクタから予測される。代替の実装では、スケールパラメータはまた、変形形態の中でもとりわけ、２つ以上の他のサブバンドから、またはベースバンドスペクトルから、または以前のオーディオ入力ブロックからチャネル全体にわたって予測することができる。
【００５４】
さらに拡張帯域コーダは、均一量子化または不均一量子化を使用して、スケールパラメータを量子化する。一実装では、スケールパラメータの不均一量子化が使用され、スケーリングファクタの対数が１２８個のビンに不均一に量子化される。次いで、得られた量子化値が、ハフマン符号化を使用してエントロピー符号化される。
【００５５】
シェープパラメータの場合、拡張帯域コーダはまた、（スケールパラメータの場合と同様に先行するサブバンドから予測することができる）予測符号化、６４個のビンへの量子化、および（例えば、ハフマン符号化を用いる）エントロピー符号化を使用する。
【００５６】
いくつかの実装では、拡張帯域サブバンドは、サイズが可変であるものとすることができる。そのような場合、拡張帯域コーダはまた、拡張帯域の構成を符号化する。
より具体的には、例示的な一実装では、拡張帯域コーダは、以下のコード表内の擬似コードリストによって示されているように、スケールパラメータおよびシェープパラメータを符号化する。
【００５７】
【表１】
2014240963.tif 000004
【００５８】
上記のコードリストでは、帯域構成（すなわち、帯域の数、およびそのサイズ）を指定するためのコーディングは、拡張帯域コーダを使用してコード化すべきスペクトル係数の数によって決まる。拡張帯域コーダを使用してコード化される係数の数は、拡張帯域の開始位置およびスペクトル係数の総数を使用して見出すことができる（拡張帯域コーダを使用してコード化されるスペクトル係数の数＝スペクトル係数の総数−開始位置）。次いで、帯域構成は、許されるすべての可能な構成のリスト内へのインデックスとしてコード化される。このインデックスは、ｎ＿ｃｏｎｆｉｇ＝ｌｏｇ２（構成の数）個のビットを有する固定長符号を使用してコード化される。許される構成は、この方法を使用してコード化されるスペクトル係数の数の関数である。例えば、１２８個の係数をコード化すべき場合、デフォルト構成は、サイズ６４の２帯域である。例えば、以下の表にリストされているように、他の構成も可能とすることができる。
【００５９】
【表２】
2014240963.tif 000005
【００６０】
したがって、この例では、５つの可能な帯域構成がある。そのような構成では、係数のためのデフォルト構成は、「ｎ」個の帯域を有するものとして選ばれる。各帯域が分かれる、またはマージする（１レベルだけ）ことを可能にすると、５(n/2)個の可能な構成が有り、これは、コード化するために（ｎ／２）ｌｏｇ２（５）個のビットを必要とする。他の実装では、可変長コーディングを使用し、構成をコード化することができる。
【００６１】
上記で論じたように、スケールファクタは、予測符号化を使用してコード化され、予測は、同じチャネル内の以前の帯域からの、または同じタイル内の以前のチャネルからの、または先に復号されたタイルからの先にコード化されたスケールファクタからとることができる。所与の実装について、予測のための選択は、（同じ拡張帯域、チャネル、またはタイル（入力ブロック）内の）以前のどの帯域に最も高い相関が与えられるか見ることによって行うことができる。一実装例では、帯域は、次のように予測符号化される。すなわち、
タイル内のスケールファクタをｘ［ｉ］［ｊ］とする。ただし、ｉ＝チャネルインデックス、ｊ＝帯域インデックス
Ｆｏｒ  ｉ＝＝０＆＆ｊ＝＝０（最初のチャネル、最初の帯域）、予測なし
Ｆｏｒ  ｉ！＝＝０＆＆ｊ＝＝０（他のチャネル、最初の帯域）、予測はｘ［０］［０］（最初のチャネル、最初の帯域）
Ｆｏｒ  ｉ！＝＝０＆＆ｊ！＝＝０（他のチャネル、他の帯域）、予測はｘ［ｉ］［ｊ−１］（同じチャネル、以前の帯域）
上記のコード表では、「シェープパラメータ」は、以前のスペクトル係数の位置を指定するモーションベクトル、または固定コードブックからのベクトル、またはノイズである。以前のスペクトル係数は、同じチャネル内から、または以前のチャネルから、または以前のタイルからのものとすることができる。シェープパラメータは予測を使用してコード化され、予測は、同じチャネル内の、または同じタイル内の以前のチャネル内の、または以前のタイルからの以前の帯域についての以前の位置からとられる。
【００６２】
図５は、オーディオエンコーダ（３００）によって生成されたビットストリーム用のオーディオデコーダ（５００）を示す。このデコーダでは、符号化されたビットストリーム（２０５）が、（例えば、コード化されたベースバンド幅および拡張帯域構成に基づいて）ビットストリームデマルチプレクサ（２１０）によって、ベースバンド符号ストリームと拡張帯域符号ストリームに逆多重化され、ベースバンド符号ストリームと拡張帯域符号ストリームは、ベースバンドデコーダ（５４０）および拡張帯域デコーダ（５５０）内で復号される。ベースバンドデコーダ（５４０）は、ベースバンドコーデックの従来のデコーディングを使用して、ベースバンドスペクトル係数を復号する。拡張帯域デコーダ（５５０）は、シェープパラメータのモーションベクトルによって指されているベースバンドスペクトル係数の一部分をコピーすること、およびスケールパラメータのスケーリングファクタによってスケーリングすることによるを含めて、拡張帯域符号ストリームを復号する。ベースバンドスペクトル係数および拡張帯域スペクトル係数は、オーディオ信号を再構築するために逆変換５８０によって変換される単一のスペクトルに組み合わされる。
【００６３】
図６は、図５の拡張帯域デコーダ（５５０）内で使用される復号プロセス（６００）を示す。拡張帯域符号ストリーム内の拡張帯域の各コード化済みサブバンドについて（アクション（６１０））、拡張帯域デコーダは、スケールファクタを（アクション（６２０））、またモーションベクトルを（アクション（６３０））復号する。次いで、拡張帯域デコーダは、モーションベクトル（シェープパラメータ）によって指定されたベースバンドサブバンド、固定コードブックベクトル、ランダムノイズベクトルをコピーする。拡張ベースバンドデコーダは、コピーされたスペクトル帯域またはベクトルをスケーリングファクタによってスケーリングし、拡張帯域の現在のサブバンドについてスペクトル係数を生成する。
【００６４】
３．コンピューティング環境
図７は、例示的な諸実施形態を実施することができる好適なコンピューティング環境（７００）の一般化された例を示す。本発明は、様々な汎用または専用コンピューティング環境で実施することができるため、コンピューティング環境（７００）は、本発明の使用または機能の範囲についてどんな制限も暗示しないものとする。
【００６５】
図７を参照すると、コンピューティング環境（７００）は、少なくとも１つの処理装置（７１０）およびメモリ（７２０）を含んでいる。図７では、この最も基本的な構成（７３０）が破線内に含まれている。処理装置（７１０）はコンピュータ実行可能命令を実行し、実プロセッサとすることも仮想プロセッサとすることもできる。多重処理システムでは、複数の処理装置がコンピュータ実行可能命令を実行し、処理力を高める。メモリ（７２０）は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど）、またはこれら２つの何らかの組合せとすることができる。メモリ（７２０）は、オーディオエンコーダを実装するソフトウェア（７８０）を記憶する。
【００６６】
コンピューティング環境は、追加の特徴を有することができる。例えば、コンピューティング環境（７００）は、記憶装置（７４０）、１つまたは複数の入力デバイス（７５０）、１つまたは複数の出力デバイス（７６０）、１つまたは複数の通信接続（７７０）を含む。バス、コントローラ、ネットワークなど相互接続機構（図示せず）が、コンピューティング環境（７００）の構成要素を相互接続する。一般に、オペレーティングシステムソフトウェア（図示せず）が、コンピューティング環境（７００）内で実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境（７００）の構成要素の活動を調整する。
【００６７】
記憶装置（７４０）は、取外し式または非取外し式とすることができ、磁気ディスク、磁気テープもしくはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または、情報を記憶するために使用することができる、また、コンピューティング環境（７００）内でアクセスを受けることができる任意の他の媒体を含む。記憶装置（７４０）は、オーディオエンコーダを実装するソフトウェア（７８０）用の命令を記憶する。
【００６８】
入力デバイス（７５０）は、キーボード、マウス、ペン、またはトラックボールなどタッチ入力デバイス、音声入力デバイス、走査デバイス、あるいは、コンピューティング環境（７００）に入力を提供する別のデバイスとすることができる。オーディオの場合、入力デバイス（７５０）は、サウンドカード、または、オーディオ入力をアナログ形態もしくはデジタル形態で受け入れる類似のデバイスとすることができる。出力デバイス（７６０）は、ディスプレイ、プリンタ、スピーカ、または、コンピューティング環境（７００）からの出力を提供する別のデバイスとすることができる。
【００６９】
通信接続（７７０）は、通信媒体を介して別のコンピューティングエンティティに対する通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮されたオーディオもしくはビデオ情報、または、変調データ信号内の他のデータなど、情報を搬送する。変調データ信号は、情報を信号に符号化するようにその特性の１つまたは複数が設定された、または変化した信号である。限定ではなく例を挙げると、通信媒体には、電気、光、ＲＦ、赤外線、音響、または他の搬送波と共に実施される有線技法または無線技法が含まれる。
【００７０】
本発明については、コンピュータ可読媒体の一般的な状況で述べることができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスを受けることができる任意の使用可能な媒体である。限定ではなく例を挙げると、コンピューティング環境（７００）と共に、コンピュータ可読媒体には、メモリ（７２０）、記憶装置（７４０）、通信媒体、および上記のいずれかの組合せが含まれる。
【００７１】
本発明については、コンピューティング環境内で、ターゲットの実プロセッサまたは仮想プロセッサ上で実行される、プログラムモジュール内に含まれるものなどコンピュータ実行可能命令の一般的な状況で述べることができる。概して、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実施するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態で望まれるように、組み合わせることも、プログラムモジュール間で分けることもできる。プログラムモジュール用のコンピュータ実行可能命令は、ローカルまたは分散型コンピューティング環境内で実行することができる。
【００７２】
提示するために、詳細な説明では、「ｄｅｔｅｒｍｉｎｅ（決定（判定）する）」「ｇｅｔ」「ａｄｊｕｓｔ（調整する）」「ａｐｐｌｙ（適用する）」のような用語を使用し、コンピューティング環境内のコンピュータの動作について述べる。これらの用語は、コンピュータによって実行される動作について高レベルで抽象化したものであり、人間によって行われる動作と混同すべきでない。これらの用語に対応する実際のコンピュータの動作は、実装に応じて変わる。
【００７３】
本発明の原理を適用することができる多数の可能な実施形態に鑑みて、本発明者等は、以下の特許請求の範囲とその均等物の範囲および精神内に入るそのような実施形態すべてを本発明として主張する。
【符号の説明】
【００７４】
１００  オーディオエンコーダ
１１０  周波数トランスフォーマ
１２０  多重チャネルトランスフォーマ
１３０  知覚モデラ
１４０  ウェイタ
１５０  量子化器
１６０  エントロピーエンコーダ
１７０  レート／品質コントローラ
１８０  ビットストリームＭＵＸ
２００  オーディオデコーダ
２１０  ビットストリームＤＥＭＵＸ
２２０  エントロピーデコーダ
２３０  逆量子化器
２４０  ノイズ発生器
２５０  逆ウェイタ
２６０  逆多重チャネルトランスフォーマ
２７０  逆周波数トランスフォーマ
【図１】
2014240963.tif 000006
【図２】
2014240963.tif 000007
【図３】
2014240963.tif 000008
【図４】
2014240963.tif 000009
【図５】
2014240963.tif 000010
【図６】
2014240963.tif 000011
【図７】
2014240963.tif 000012