特許第6262820号(P6262820)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6262820広義知覚類似性(wide−sense perceptual similarity)を使用するデジタルメディアスペクトルデータの効率的な復号
<>
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000005
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000006
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000007
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000008
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000009
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000010
  • 特許6262820-広義知覚類似性(wide−sense  perceptual  similarity)を使用するデジタルメディアスペクトルデータの効率的な復号 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6262820
(24)【登録日】2017年12月22日
(45)【発行日】2018年1月17日
(54)【発明の名称】広義知覚類似性(wide−sense perceptual similarity)を使用するデジタルメディアスペクトルデータの効率的な復号
(51)【国際特許分類】
   G10L 19/02 20130101AFI20180104BHJP
   G10L 21/0388 20130101ALI20180104BHJP
【FI】
   G10L19/02 150
   G10L21/0388 100
【請求項の数】12
【全頁数】22
(21)【出願番号】特願2016-171531(P2016-171531)
(22)【出願日】2016年9月2日
(62)【分割の表示】特願2014-145907(P2014-145907)の分割
【原出願日】2004年7月29日
(65)【公開番号】特開2017-37311(P2017-37311A)
(43)【公開日】2017年2月16日
【審査請求日】2016年9月2日
(31)【優先権主張番号】60/539,046
(32)【優先日】2004年1月23日
(33)【優先権主張国】US
(31)【優先権主張番号】10/882,801
(32)【優先日】2004年6月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100153028
【弁理士】
【氏名又は名称】上田 忠
(72)【発明者】
【氏名】サンジーブ メーロトラ
(72)【発明者】
【氏名】チェン ウェイ−ジ
【審査官】 冨澤 直樹
(56)【参考文献】
【文献】 特開2004−004530(JP,A)
【文献】 特開2003−186499(JP,A)
【文献】 特開平08−147000(JP,A)
【文献】 米国特許出願公開第2006/0287853(US,A1)
【文献】 米国特許第6680972(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/00−19/26
G10L 21/038−21/0388
(57)【特許請求の範囲】
【請求項1】
エンコーダにおいて、符号化されたオーディオビットストリームを得るステップであって、
複数の拡張帯域の各々について、
1または複数のベースバンドスペクトル係数の部分のうちのいずれか、当該拡張帯域に形状がより似ているかを判定するために探索を実行し、
判定された前記部分が、当該拡張帯域に形状が十分似ているか判定し、
十分似ている場合に、当該拡張帯域を、判定された前記部分の前記形状のスケーリングされたバージョンとして符号化し、
十分似ていない場合に、
固定されたコードブック内で表された形状の中で、当該拡張帯域により似ている形状があるかどうか探索を実行し、
当該似ている形状が前記固定されたコードブック内で見出された場合に、当該拡張帯域を、前記固定されたコードブック内の当該似ている形状のスケーリングされたバージョンとして符号化し、
当該似ている形状が前記固定されたコードブック内で見出されない場合に、当該拡張帯域を、ランダムノイズベクトルのスケーリングされたバージョンとして符号化する
ステップ
を含む、ステップと、
デコーダにおいて、前記符号化されたオーディオビットストリームから1または複数のベースバンドスペクトル係数を復号するステップと、
前記デコーダにおいて、
スケーリングファクタを復号し、
コピーすべき1または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、1若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する1若しくは複数の係数または正規化されたランダムノイズベクトルに対応する1若しくは複数の係数を選択的にコピーし、かつ
前記スケーリングファクタに応じて、コピーされた前記1または複数の係数をスケーリングすること
により、複数の拡張帯域の各々における1または複数の拡張帯域スペクトル係数を復号するステップと
を含む方法。
【請求項2】
前記スケーリングファクタは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の帯域の全エネルギーを表すことを特徴とする請求項1に記載の方法。
【請求項3】
前記スケーリングファクタは前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値であることを特徴とする請求項1に記載の方法。
【請求項4】
復号された前記1または複数のベースバンドスペクトル係数および復号された前記1または複数の拡張帯域スペクトル係数を入力オーディオ信号ブロックの複製に変換する逆変換操作を実行するステップをさらに含むことを特徴とする請求項1に記載の方法。
【請求項5】
方法をコンピュータ・システムに実行させるプログラムであって、前記方法は、
符号化されたオーディオビットストリームを得るステップであって、
複数の拡張帯域の各々について、
1または複数のベースバンドスペクトル係数の部分のうちのいずれか、当該拡張帯域に形状がより似ているかを判定するために探索を実行し、
判定された前記部分が、当該拡張帯域に形状が十分似ているか判定し、
十分似ている場合に、当該拡張帯域を、判定された前記部分の前記形状のスケーリングされたバージョンとして符号化し、
十分似ていない場合に、
固定されたコードブック内で表された形状の中で、当該拡張帯域により似ている形状があるかどうか探索を実行し、
当該似ている形状が前記固定されたコードブック内で見出された場合に、当該拡張帯域を、前記固定されたコードブック内の当該似ている形状のスケーリングされたバージョンとして符号化し、
当該似ている形状が前記固定されたコードブック内で見出されない場合に、当該拡張帯域を、ランダムノイズベクトルのスケーリングされたバージョンとして符号化する
ステップ
を含む、ステップと、
前記符号化されたオーディオビットストリームから1または複数のベースバンドスペクトル係数を復号するステップと、
スケーリングファクタを復号し、
コピーすべき1または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、1若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する1若しくは複数の係数または正規化されたランダムノイズベクトルに対応する1若しくは複数の係数を選択的にコピーし、かつ
前記スケーリングファクタに応じて、コピーされた前記1または複数の係数をスケーリングすること
により、複数の拡張帯域の各々における1または複数の拡張帯域スペクトル係数を復号するステップと
を含む、プログラム。
【請求項6】
前記スケーリングファクタは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の帯域の全エネルギーを表すことを特徴とする請求項5に記載のプログラム。
【請求項7】
前記スケーリングファクタは前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値であることを特徴とする請求項5に記載のプログラム。
【請求項8】
前記方法は復号された前記1または複数のベースバンドスペクトル係数および復号された前記1または複数の拡張帯域スペクトル係数を入力オーディオ信号ブロックの複製に変換する逆変換操作を実行するステップをさらに含むことを特徴とする請求項5に記載のプログラム。
【請求項9】
処理ユニットと、
方法を前記処理ユニットに実行させるように構成された命令を含む1または複数のコンピュータ読み取り可能な記憶媒体と
を備えたコンピュータ・システムであって、前記方法は、
符号化されたオーディオビットストリームを得るステップであって、
複数の拡張帯域の各々について、
1または複数のベースバンドスペクトル係数の部分のうちのいずれか、当該拡張帯域に形状がより似ているかを判定するために探索を実行し、
判定された前記部分が、当該拡張帯域に形状が十分似ているか判定し、
十分似ている場合に、当該拡張帯域を、判定された前記部分の前記形状のスケーリングされたバージョンとして符号化し、
十分似ていない場合に、
固定されたコードブック内で表された形状の中で、当該拡張帯域により似ている形状があるかどうか探索を実行し、
当該似ている形状が前記固定されたコードブック内で見出された場合に、当該拡張帯域を、前記固定されたコードブック内の当該似ている形状のスケーリングされたバージョンとして符号化し、
当該似ている形状が前記固定されたコードブック内で見出されない場合に、当該拡張帯域を、ランダムノイズベクトルのスケーリングされたバージョンとして符号化する
ステップ
を含む、ステップと、
前記符号化されたオーディオビットストリームから1または複数のベースバンドスペクトル係数を復号するステップと、
前記符号化されたオーディオビットストリームから、拡張帯域のある帯域に対するスケーリングファクタを復号し、
コピーすべき1または複数のベースバンドスペクトル係数を識別するモーションベクトル、固定されたコードブックからのスペクトル形状のためのベクトル及び正規化されたランダムノイズベクトルの何れかが指定されるように構成されたシェープパラメータに応じて、スペクトル帯域の形状を記述する1若しくは複数の識別されたベースバンドスペクトル係数、固定されたコードブックからのスペクトル形状のためのベクトルに対応する1若しくは複数の係数または正規化されたランダムノイズベクトルに対応する1若しくは複数の係数を選択的にコピーし、かつ
前記ある帯域に対する復号された前記スケーリングファクタに応じて、コピーされた前記1または複数の係数をスケーリングすること
により、前記符号化されたオーディオビットストリームから複数の拡張帯域の各々における1または複数の拡張帯域スペクトル係数を復号するステップと、
復号された前記1または複数のベースバンドスペクトル係数および復号された前記1または複数の拡張帯域スペクトル係数に逆変換を実行して、再構成されたオーディオ信号を作成するステップと
を含むことを特徴とするコンピュータ・システム。
【請求項10】
前記ある帯域に対する復号された前記スケーリングファクタは、前記符号化されたオーディオビットストリームを符号化したスペクトル係数の二乗平均平方根の値であることを特徴とする請求項9に記載のコンピュータ・システム。
【請求項11】
前記シェープパラメータは、前記スペクトル帯域の形状の伸張を表す値を更に含むことを特徴とする請求項9に記載のコンピュータ・システム。
【請求項12】
前記スケーリングファクタは、前記オーディオビットストリームから以前に復号されたスケーリングファクタからとられた予測復号を使用して復号されることを特徴とする請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、広義知覚類似性に基づくデジタルメディア(例えば、オーディオ、ビデオ、静止画など)符号化および復号に関する。
【背景技術】
【0002】
オーディオのコーディングには、人の聴力の様々な知覚モデルを利用するコーディング技法が使用される。例えば、強い音に近接する多数のより弱い音は覆い隠され、その結果、より弱い音はコード化することを必要としない。従来の知覚オーディオコーディングでは、これが様々な周波数データの適応量子化として利用される。知覚的に重要な周波数データには、より多くのビット、したがってより細かい量子化が割り振られ、逆も同様である。非特許文献1を参照されたい。
【0003】
しかし、知覚コーディングは、広い意味に取ることができる。例えば、スペクトルのいくつかの部分は、適切にシェーピングされたノイズと共にコード化することができる。非特許文献2を参照されたい。この手法を取るとき、コード化された信号は、原形の正確な、またはほぼ正確なバージョンを表そうとしない可能性がある。目標はむしろ、原形に比べて同様に、また快く響かせることである。
【0004】
これらの知覚効果はすべて、オーディオ信号のコーディングに必要とされるビットレートを削減するために使用することができる。これは、いくつかの周波数成分が、元の信号内にある場合のように正確に表現されることを必要とせず、コード化しない、あるいは原形における場合と同じ知覚効果を与える何かと置き換えることができるからである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許出願第10/020,708号明細書
【特許文献2】米国特許出願第10/016,918号明細書
【特許文献3】米国特許出願第10/017,702号明細書
【特許文献4】米国特許出願第10/017,861号明細書
【特許文献5】米国特許出願第10/017,694号明細書
【非特許文献1】Painter, T. and Spanias, A., "Perceptual Coding Of Digital Audio," Proceedings Of The IEEE, vol. 88, Issue 4, April 2000, pp. 451-515
【非特許文献2】Schulz, D., "Improving Audio Codecs By Noise Substitution," Journal Of The AES, vol. 44, no. 7/8, July/August 1996, pp. 593-598
【非特許文献3】ITU-R BS 1387
【発明の概要】
【課題を解決するための手段】
【0006】
本明細書に述べられているデジタルメディア(例えば、オーディオ、ビデオ、静止画など)符号化/復号技法は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいは両者の組合せを使用して、いくつかの周波数成分を知覚的に良好に、または部分的に表すことができることを利用する。より具体的には、いくつかの周波数帯域は、すでにコード化されている他の帯域のシェーピング済みバージョンとして、知覚的に良好に表すことができる。実際のスペクトルは、この合成バージョンから逸脱する可能性があるが、依然として、品質を落とすことなしにオーディオ信号符号化のビットレートを著しく減じるために使用することができる、知覚的に良好に表現されたも
のである。
【0007】
大抵のオーディオコーデックは、変形離散コサイン変換(MDCT)またはMLT(Modulated Lapped Transform)など、サブバンド変換または重ね合わせ直交変換(overlapped orthogonal transform)を使用してスペクトル分解を使用し、オーディオ信号を時間領域表現からスペクトル係数のブロックまたは組に変換する。次いで、これらのスペクトル係数は、コード化され、デコーダに送られる。これらのスペクトル係数の値のコーディングが、オーディオコーデック内で使用される大抵のビットレートを構成する。低いビットレートでは、係数すべてを粗くコード化し、不十分な品質で再構成されるように、あるいは、より少ない係数をコード化し、こもった、低域通過した響きの信号となるように設計することができる。本明細書に述べられているオーディオ符号化/復号技法は、これらの後者を行うとき(すなわち、オーディオコーデックが少ない係数、すなわち、必ずしも下位互換性のためではないが、一般に低いビットレートをコード化することを選んだとき)オーディオ品質を改善するために使用することができる。
【0008】
少ない係数が符号化されるだけのとき、コーデックは、再構築の際に、ぼやけた、低域通過した音を生成する。この品質を改善するために、この述べられている符号化/復号技法は、全ビットレートの小さな割合を費やして、欠けているスペクトル係数の知覚的に快いバージョンを追加し、完全な、より豊かな音を生み出す。これは、欠けている係数を実際にコード化することによってではなく、欠けている係数を、すでにコード化されているもののスケーリングされたバージョンとして知覚的に表すことによって達成される。一例では、(Microsoft Windows(登録商標)Media Audio(WMA)など)MLT分解を使用するコーデックは、ある割合の帯域幅までコード化する。次いで、述べられている符号化/復号技法のこのバージョンは、残りの係数を(それぞれが典型的には64個または128個のスペクトル係数からなるサブバンドなど)ある数の帯域に分割する。これらの帯域のそれぞれについて、このバージョンの符号化/復号技法は、2つのパラメータ、すなわち、その帯域内の全エネルギーを表すスケールファクタと、その帯域内でのスペクトルの形状を表すためのシェープパラメータ(shape parameter)とを使用して、その帯域を符号化する。スケールファクタパラメータは、単にその帯域内の係数のrms(2乗平均平方根)値とすることができる。シェープパラメータは、スペクトルの正規化バージョンを、すでにコード化されたスペクトルの同様な部分から単にコピーして符号化するモーションベクトルとすることができる。場合によっては、シェープパラメータは、代わりに、正規化されたランダムノイズベクトルを、または単に何らかの他の固定されたコードブックからのベクトルを指定することができる。スペクトルの別の部分から一部分をコピーすることは、オーディオにおいて有用である。というのは、一般に多数の音信号には、スペクトル全体にわたって繰り返す高調波成分があるからである。ノイズまたは何らかの他の固定コードブックの使用により、スペクトルの任意のすでにコード化された部分によって十分に表されない成分の低ビットレートコーディングが可能になる。このコーディング技法は、本質的に、これらの帯域の利得形状(gain−shape)ベクトル量子化コーディングであり、ベクトルは、スペクトル係数の周波数帯域であり、コードブックは、先にコード化されたスペクトルから取られ、他の固定ベクトルまたはランダムノイズベクトルをも含むことができる。また、スペクトルのこのコピーされた部分が、その同じ部分の従来のコーディングに追加される場合には、この追加は、残余コーディングである。これは、信号の従来のコーディングにより、少ないビットでコード化することが容易である基本表現(例えば、スペクトルフロアのコーディング)が得られ、残りの部分が新しいアルゴリズムでコード化される場合に有用となる可能性がある。
【0009】
したがって、述べられている符号化/復号技法は、既存のオーディオコーデックを改善
する。具体的には、この技法は、所与の品質でのビットレートの削減を、または固定ビットレートでの品質の改善を可能にする。この技法を使用し、様々なモード(例えば、連続ビットレートまたは可変ビットレート、ワンパスまたはマルチパス)でオーディオコーデックを改善することができる。
【0010】
本発明の追加の特徴および利点は、添付の図面を参照しながら進む以下の諸実施形態の詳細な説明から明らかになる。
【図面の簡単な説明】
【0011】
図1】本コーディング技法を組み込むことができるオーディオエンコーダのブロック図である。
図2】本コーディング技法を組み込むことができるオーディオデコーダのブロック図である。
図3図1の一般的なオーディオエンコーダに組み込むことができる、広義知覚類似性を使用する効率的なオーディオコーディングを実装するベースバンドコーダおよび拡張帯域コーダのブロック図である。
図4図3の拡張帯域コーダ内で、広義知覚類似性を使用する効率的なオーディオコーディングで帯域を符号化する流れ図である。
図5図2の一般的なオーディオデコーダに組み込むことができるベースバンドデコーダおよび拡張帯域デコーダのブロック図である。
図6図5の拡張帯域デコーダ内で、広義知覚類似性を使用する効率的なオーディオコーディングで帯域を復号する流れ図である。
図7図1のオーディオエンコーダ/デコーダを実装するための好適なコンピューティング環境のブロック図である。
【発明を実施するための形態】
【0012】
以下の詳細な説明は、本発明による広義知覚類似性を使用するデジタルメディアスペクトルデータのデジタルメディア符号化/復号を備えるデジタルメディアエンコーダ/デコーダ実施形態に対処する。より具体的には、以下の説明は、オーディオに対するこれらの符号化/復号技法の応用について述べている。これらは、他のデジタルメディアタイプ(例えば、ビデオ、静止画など)の符号化/復号に適用することもできる。そのオーディオへの応用では、このオーディオ符号化/復号は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいは両者の組合せを使用していくつかの周波数成分を表す。より詳細には、いくつかの周波数帯域が、すでにコード化されている他の帯域のシェーピング済みバージョンとして表される。これは、所与の品質でのビットレートの削減を、または固定ビットレートでの品質の改善を可能にする。
【0013】
1.一般化されたオーディオエンコーダ/デコーダ
図1および図2は、本明細書に述べられている、広義知覚類似性を使用するオーディオスペクトルデータのオーディオ符号化/復号のための技法を組み込むことができる一般化オーディオエンコーダ(100)および一般化オーディオデコーダ(200)のブロック図である。エンコーダおよびデコーダ内のモジュール間で示されている関係は、エンコーダおよびデコーダ内の情報の主流を示し、話を簡単にするために、他の関係は示されていない。実装と望まれる圧縮のタイプとに応じて、エンコーダまたはデコーダのモジュールは、追加する、割愛する、複数のモジュールに分ける、他のモジュールと組み合わせる、かつ/または同様なモジュールと置き換えることができる。代替の実施形態では、異なるモジュールおよび/またはモジュールの他の構成を有するエンコーダまたはデコーダが、知覚的なオーディオ品質を測定する。
【0014】
広義知覚類似性オーディオスペクトルデータ符号化/復号を組み込むことができるオー
ディオエンコーダ/デコーダのさらなる詳細は、2001年12月14日に出願された特許文献1、2001年12月14日に出願された特許文献2、2001年12月14日に出願された特許文献3、2001年12月14日に出願された特許文献4、2001年12月14日に出願された特許文献5に述べられており、これらの開示を参照により本明細書に組み込む。
【0015】
A.一般化オーディオエンコーダ
一般化オーディオエンコーダ(100)は、周波数トランスフォーマ(110)、多重チャネルトランスフォーマ(120)、知覚モデラ(130)、ウェイタ(weighter)(140)、量子化器(150)、エントロピーエンコーダ(160)、レート/品質コントローラ(170)、ビットストリームマルチプレクサ[MUX](180)を含む。
【0016】
エンコーダ(100)は、表1に示されているものなどのフォーマットで入力オーディオサンプル(105)の時間系列を受け取る。複数のチャネルを有する入力(例えば、ステレオモード)の場合、エンコーダ(100)は、各チャネルを独立して処理し、多重チャネルトランスフォーマ(120)の後で、一緒にコード化されたチャネルを扱うことができる。エンコーダ(100)は、オーディオサンプル(105)を圧縮し、エンコーダ(100)の様々なモジュールによって生成された情報を多重化して、WMA[Windows(登録商標)Media Audio]またはASF[Advanced Streaming Format]など、あるフォーマットでビットストリーム(195)を出力する。別法として、エンコーダ(100)は、他の入力フォーマットおよび/または出力フォーマットを扱うことができる。
【0017】
周波数トランスフォーマ(110)は、オーディオサンプル(105)を受け取り、それらを周波数領域内のデータに変換する。周波数トランスフォーマ(110)は、可変の時間的分解能(temporal resolution)を可能にするように可変のサイズを有することができるブロックに、オーディオサンプル(105)を分ける。小さなブロックは、入力オーディオサンプル(105)内の短いが活動的な遷移セグメントで時間詳細をより多く保存することを可能にするが、何らかの周波数分解能を犠牲にする。それに対して、より大きなブロックは、周波数分解能が良くなり時間分解能が悪化し、通常、より長く、あまり活動的でないセグメントで、より高い圧縮効率を可能にする。ブロックは重なり合うことができ、普通なら後の量子化によって導入されるはずの、ブロック間の知覚可能な不連続を低減する。周波数トランスフォーマ(110)は、周波数係数データのブロックを多重チャネルトランスフォーマ(120)に出力し、ブロックサイズなど側面情報をMUX(180)に出力する。周波数トランスフォーマ(110)は、周波数係数データと側面情報を共に知覚モデラ(130)に出力する。
【0018】
周波数トランスフォーマ(110)は、オーディオ入力サンプル(105)のフレームを、時間依存性のサイズを有する、重なり合うサブフレームブロックに区分し、時間依存性のMLTをサブフレームブロックに適用する。可能なサブフレームサイズは、128、256、512、1024、2048、4096個のサンプルを含む。MLTは、時間ウィンドウ関数によって変調されたDCTのように演算し、このウィンドウ関数は、時間依存性であり、サブフレームサイズのシーケンスによって決まる。MLTは、サンプルの所与の重なり合うブロックx[n],0≦n<subframe_sizeを、周波数係数のブロックX[k],0≦k<subframe_size/2に変換する。周波数トランスフォーマ(110)はまた、将来のフレームの複雑さの推定値をレート/品質コントローラ(170)に出力することができる。代替の実施形態は、他の様々なMLTを使用する。さらに他の代替の実施形態では、周波数トランスフォーマ(110)は、DCT、FFT、または他のタイプの変調もしくは非変調、重ね合わせもしくは非重ね合わせ周波
数変換を適用し、あるいは、サブバンドまたはウェーブレットコーディングを使用する。
【0019】
多重チャネルオーディオデータの場合、周波数トランスフォーマ(110)によって生成された周波数係数データの複数のチャネルは、しばしば相関関係にある。この相関を利用するために、多重チャネルトランスフォーマ(120)は、複数の元の、独立してコード化されたチャネルを、一緒にコード化されたチャネルに変換することができる。例えば、入力がステレオモードである場合、多重チャネルトランスフォーマ(120)は、左右のチャネルを和と差のチャネルに変換することができる。すなわち
【0020】
【数1】
【0021】
あるいは、多重チャネルトランスフォーマ(120)は、左右のチャネルを、独立してコード化されたチャネルとして通過させることができる。より一般的には、2つ以上のいくつかの入力チャネルの場合、多重チャネルトランスフォーマ(120)は、元の独立してコード化されたチャネルを変更しないで通過させ、または、元のチャネルを、一緒にコード化されたチャネルに変換する。独立してコード化されたチャネルか、それとも一緒にコード化されたチャネルを使用する判断は、所定のものとすることができ、あるいは、符号化中、ブロックなどごとに順応して判断を行うことができる。多重チャネルトランスフォーマ(120)は、MUX(180)に対する側面情報を生成し、使用されているチャネル変換モードを示す。
【0022】
知覚モデラ(130)は、所与のビットレートについて、再構築されたオーディオ信号の品質を改善するために、人の聴覚系の特性をモデル化する。知覚モデラ(130)は、周波数係数の可変サイズブロック励振パターンを計算する。最初に、知覚モデラ(130)は、ブロックのサイズおよび振幅スケールを正規化する。これは、後続の時間的なスミアリングを可能にし、品質測定のための一貫したスケールを確立する。任意選択で、知覚モデラ(130)は、外/中耳伝達関数をモデル化するために、ある周波数で係数を減衰する。知覚モデラ(130)は、ブロック内の係数のエネルギーを計算し、25個の臨界帯域によってエネルギーを集める。別法として、知覚モデラ(130)は、別の数の臨界帯域(例えば、55または109)を使用する。臨界帯域のための周波数範囲は実装によって決まり、多数の選択肢が周知である。例えば、非特許文献3、またはそこに述べられている参照を参照されたい。知覚モデラ(130)は、帯域エネルギーを処理し、同時および時間的なマスキングを調節する。代替の実施形態では、知覚モデラ(130)は、非特許文献3に記載され、または述べられているものなど、異なる聴覚モデルに従ってオーディオデータを処理する。
【0023】
ウェイタ(140)は、知覚モデラ(130)から受け取られた励振パターンに基づいて、重み係数(あるいは、量子化行列と呼ばれる)を生成し、その重み係数を、多重チャネルトランスフォーマ(120)から受け取られたデータに適用する。重み係数は、オーディオデータ内の複数の量子化帯域のそれぞれについて重みを含む。量子化帯域は、エンコーダ(100)内のどこかで使用された臨界帯域と、数または位置を同じとすることも、異なるものとすることもできる。重み係数は、ノイズがその量子化帯域全体にわたって拡散される比率を示し、ノイズがあまり聞き取れない帯域内に、より多くのノイズを置くことによってノイズの可聴性を最小限に抑え、またその逆にすることを目標とする。重み
係数は、量子化帯域の振幅および数がブロック間で変わる可能性がある。一実装では、量子化帯域の数は、ブロックサイズに従って変わり、ブロックが小さいと、大きいブロックより量子化帯域が少なくなる。例えば、128個の係数を有するブロックは、13個の量子化帯域を有し、256個の係数を有するブロックは、15個の量子化帯域を有し、2048個の係数を有するブロックについての25個の量子化帯域に至る。ウェイタ(140)は、独立して、または一緒にコード化されたチャネル内の多重チャネルオーディオデータの各チャネルについて、1組の重み係数を生成し、あるいは、一緒にコード化されたチャネルについて重み係数の単一の組を生成する。代替の実施形態では、ウェイタ(140)は、励振パターン以外に、または励振パターンに加えて、情報から重み係数を生成する。
【0024】
ウェイタ(140)は、係数データの加重ブロックを量子化器(150)に出力し、重み係数の組など側面情報をMUX(180)に出力する。ウェイタ(140)はまた、レート/品質コントローラ(170)、またはエンコーダ(100)内の他のモジュールに重み係数を出力することができる。重み係数の組は、より効率的に提示するために圧縮することができる。重み係数が不可逆圧縮される場合、再構築後の重み係数は、一般に、係数データのブロックを加重するために使用される。ブロックの帯域内のオーディオ情報が、何らかの理由(例えば、ノイズ置換または帯域トランケーション)で完全に省略される場合、エンコーダ(100)は、そのブロックについて量子化行列の圧縮をさらに改善することが可能となる。
【0025】
量子化器(150)は、ウェイタ(140)の出力を量子化し、エントロピーエンコーダ(160)に対して量子化された係数データを、また、MUX(180)に対して量子化ステップサイズを含む側面情報を生成する。量子化は、情報の不可逆な損失を導入するが、エンコーダ(100)がレート/品質コントローラ(170)と共に出力ビットストリーム(195)のビットレートを調節することも可能になる。図1では、量子化器(150)は適応性の均一なスカラ量子化器である。量子化器(150)は、各周波数係数に同じ量子化ステップサイズを適用するが、量子化ステップサイズそれ自体は、反復1回ごとに変化し、エントロピーエンコーダ(160)出力のビットレートに影響を及ぼす可能性がある。代替の実施形態では、量子化器は、不均一量子化器、ベクトル量子化器、および/または非適応量子化器である。
【0026】
エントロピーエンコーダ(160)は、量子化器(150)から受け取られた量子化済み係数データを可逆圧縮する。例えば、エントロピーエンコーダ(160)は、マルチレベルランレングス符号化、バリアブルトゥバリアブルレングス符号化(variable−to−variable length coding)、ランレングス符号化、ハフマン符号化、辞書符号化、算術符号化、LZ符号化、上記の組合せ、または何らかの他のエントロピー符号化技法を使用する。
【0027】
レート/品質コントローラ(170)は、量子化器(150)と共に働き、エンコーダ(100)の出力のビットレートおよび品質を調節する。レート/品質コントローラ(170)は、エンコーダ(100)の他のモジュールから情報を受け取る。一実装では、レート/品質コントローラ(170)は、周波数トランスフォーマ(110)から将来の複雑さの推定値を、知覚モデラ(130)からサンプリングレート、ブロックサイズ情報、元のオーディオデータの励振パターン、ウェイタ(140)から重み係数を、MUX(180)から(例えば、量子化、再構築、または符号化された)何らかの形態の量子化済みオーディオ情報のブロックとバッファ状況情報とを受け取る。レート/品質コントローラ(170)は、オーディオデータを量子化された形態から再構築するために、逆量子化器、逆ウェイタ、逆多重チャネルトランスフォーマ、またおそらくはエントロピーデコーダおよび他のモジュールを含むことができる。
【0028】
レート/品質コントローラ(170)は、現在の条件を与えられると、所望の量子化ステップサイズを決定するために情報を処理し、量子化ステップサイズを量子化器(150)に出力する。次いで、レート/品質コントローラ(170)は、下記で述べるように、その量子化ステップサイズで量子化された再構築後オーディオデータのブロックの品質を測定する。測定された品質、ならびにビットレート情報を使用して、レート/品質コントローラ(170)は、瞬間的にも長期的にもビットレート制約および品質制約を満たすという目標を用いて、量子化ステップサイズを調整する。代替の実施形態では、レート/品質コントローラ(170)は、異なる、または追加の情報を扱い、あるいは、様々な技法を適用し、品質およびビットレートを調節する。
【0029】
レート/品質コントローラ(170)と共に、エンコーダ(100)は、ノイズ置換、帯域トランケーション、および/または多重チャネル再マトリックス化をオーディオデータのブロックに適用することができる。低ビットレートおよび中間ビットレートでは、オーディオエンコーダ(100)は、ノイズ置換を使用し、ある帯域内で情報を搬送することができる。帯域トランケーションでは、あるブロックについて測定された品質が、不十分な品質であることを示す場合、エンコーダ(100)は、ある(通常、より高い周波数の)帯域内の係数を省略し、残りの帯域内で全体的な品質を改善することができる。多重チャネル再マトリックス化では、一緒にコード化されたチャネル内の低ビットレートの多重チャネルオーディオデータについて、エンコーダ(100)は、あるチャネル(例えば、差のチャネル)内の情報を抑制し、残りのチャネル(例えば、和のチャネル)の品質を改善することができる。
【0030】
MUX(180)は、オーディオエンコーダ(100)の他のモジュールから受け取られた側面情報を、エントロピーエンコーダ(160)から受け取られたエントロピー符号化データと共に多重化する。MUX(180)は、その情報をWMAで、またはオーディオデコーダが認識する別のフォーマットで出力する。
【0031】
MUX(180)は、エンコーダ(100)によって出力すべきビットストリーム(195)を格納する仮想バッファを含む。この仮想バッファは、オーディオ内の複雑さの変化によるビットレートの短期揺らぎを滑らかにするために、所定の期間のオーディオ情報(例えば、ストリーミングオーディオについて5秒)を格納する。次いで、この仮想バッファは、比較的一定のビットレートでデータを出力する。バッファの現在の満杯度、バッファの満杯度の変化率、バッファの他の特性は、レート/品質コントローラ(170)が品質およびビットレートを調節するために使用することができる。
【0032】
B.一般化オーディオデコーダ
図2を参照すると、一般化オーディオデコーダ(200)は、ビットストリームデマルチプレクサ[DEMUX](210)、エントロピーデコーダ(220)、逆量子化器(230)、ノイズ発生器(240)、逆ウェイタ(250)、逆多重チャネルトランスフォーマ(260)、逆周波数トランスフォーマ(270)を含む。デコーダ(200)はレート/品質制御のためのモジュールを含まないため、デコーダ(200)は、エンコーダ(100)より単純である。
【0033】
デコーダ(200)は、WMAまたは別のフォーマットの圧縮済みオーディオデータのビットストリーム(205)を受け取る。ビットストリーム(205)は、エントロピー符号化データと、デコーダ(200)がそこからオーディオサンプル(295)を再構築する側面情報とを含む。複数のチャネルを有するオーディオデータの場合、デコーダ(200)は、各チャネルを独立して処理し、逆多重チャネルトランスフォーマ(260)の前に、一緒にコード化されたチャネルを扱うことができる。
【0034】
DEMUX(210)は、ビットストリーム(205)内の情報を解析し、デコーダ(200)のモジュールに情報を送る。DEMUX(210)は、オーディオの複雑さの揺らぎ、ネットワークジッタ、および/または他の要因によるビットレートの短期変動を補償するために、1つまたは複数のバッファを含む。
【0035】
エントロピーデコーダ(220)は、DEMUX(210)から受け取られたエントロピー符号を可逆伸張し、量子化された周波数係数データを生成する。エントロピーデコーダ(220)は、一般に、エンコーダ内で使用されたエントロピー符号化技法の逆を適用する。
【0036】
逆量子化器(230)は、DEMUX(210)から量子化ステップサイズを受け取り、エントロピーデコーダ(220)から量子化周波数係数データを受け取る。逆量子化器(230)は、量子化ステップサイズを量子化周波数係数データに適用し、周波数係数データを部分的に再構築する。代替の実施形態では、逆量子化器は、エンコーダ内で使用された何らかの他の量子化技法の逆を適用する。
【0037】
ノイズ発生器(240)は、DEMUX(210)から、データのブロック内のどの帯域がノイズ置換されているかという指示と、ノイズの形態のための任意のパラメータとを受け取る。ノイズ発生器(240)は、示された帯域のためのパターンを生成し、その情報を逆ウェイタ(250)に渡す。
【0038】
逆ウェイタ(250)は、DEMUX(210)から重み係数を、ノイズ発生器(240)から任意のノイズ置換帯域のためのパターンを、逆量子化器(230)から部分的に再構築された周波数係数データを受け取る。必要に応じて、逆ウェイタ(250)は、重み係数を伸張する。逆ウェイタ(250)は、ノイズ置換されていない帯域について、部分的に再構築された周波数係数データに重み係数を適用する。次いで、逆ウェイタ(250)は、ノイズ発生器(240)から受け取られたノイズパターンを加える。
【0039】
逆多重チャネルトランスフォーマ(260)は、逆ウェイタ(250)から再構築済み周波数係数データを、DEMUX(210)からチャネル変換モード情報を受け取る。多重チャネルデータが、独立してコード化されたチャネル内にある場合、逆多重チャネルトランスフォーマ(260)は、そのチャネルを通過させる。多重チャネルデータが、一緒にコード化されたチャネル内にある場合、逆多重チャネルトランスフォーマ(260)は、そのデータを、独立してコード化されたチャネル内に変換する。望むなら、デコーダ(200)は、この時点で、再構築された周波数係数データの品質を測定することができる。
【0040】
逆周波数トランスフォーマ(270)は、逆多重チャネルトランスフォーマ(260)によって出力された周波数係数データと、DEMUX(210)からのブロックサイズなど側面情報とを受け取る。逆周波数トランスフォーマ(270)は、エンコーダ内で使用された周波数変換の逆を適用し、再構築されたオーディオサンプル(295)のブロックを出力する。
【0041】
2.広義知覚類似性を用いる符号化/復号
図3は、図1および図2の一般化オーディオエンコーダ(100)およびデコーダ(200)の全体的なオーディオ符号化/復号プロセス内に組み込むことができる、広義知覚類似性を用いる符号化を使用するオーディオエンコーダ(300)の一実装を示す。この実施では、オーディオエンコーダ(300)は、MDCTまたはMLTなどサブバンド変換または重ね合わせ直交変換を使用して、変換(320)においてスペクトル分解を実行
し、オーディオ信号の各入力ブロックについて1組のスペクトル係数を生成する。従来周知であるように、オーディオエンコーダは、出力ビットストリーム内でデコーダに送るために、これらのスペクトル係数をコード化する。これらのスペクトル係数の値のコーディングが、オーディオコーデック内で使用される大抵のビットレートを構成する。低いビットレートでは、オーディオエンコーダ(300)は、ベースバンドコーダ340を使用して、スペクトルのより低い部分、またはベースバンド部分など、より少ないスペクトル係数(すなわち、周波数トランスフォーマ(110)から出力されるスペクトル係数の帯域幅のある割合内で符号化することができるいくつかの係数)をコード化することを選択する。ベースバンドコーダ340は、上記で一般化オーディオエンコーダについて述べられているように、これらのベースバンドスペクトル係数を、従来周知のコーディング構文を使用して符号化する。これにより、一般に、再構築されたオーディオは、こもって響く、または低域通過ろ波されることになる。
【0042】
オーディオエンコーダ(300)は、広義知覚類似性を使用して、割愛されたスペクトル係数をもコード化することによって、こもった/低域通過効果を回避する。ベースバンドコーダ340によるコーディングから割愛された(ここでは「拡張帯域スペクトル係数」と呼ばれる)スペクトル係数は、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョン、あるいはこの2つの組合せとして、拡張帯域コーダ350によってコード化される。より具体的には、拡張帯域スペクトル係数は、いくつかの(例えば、典型的には64個または128個のスペクトル係数の)サブバンドに分割され、これらのサブバンドは、シェーピングされたノイズ、または他の周波数成分のシェーピングされたバージョンとしてコード化される。これは欠けているスペクトル係数の知覚的に快いバージョンを追加し、完全な、より豊かな音を提供する。実際のスペクトルは、この符号化から得られる合成バージョンから逸脱する可能性があるが、この拡張帯域コーディングは、原形における場合と同様な知覚効果をもたらす。
【0043】
いくつかの実装では、ベースバンドの幅(すなわち、ベースバンドコーダ340を使用してコード化されるベースバンドスペクトル係数の数)、ならびに拡張帯域のサイズまたは数が変わる可能性がある。そのような場合には、ベースバンドの幅、および拡張帯域コーダ(350)を使用してコード化される拡張帯域の数(またはサイズ)を、出力ストリーム(195)内にコード化することができる。
【0044】
オーディオエンコーダ(300)内におけるベースバンドスペクトル係数と拡張帯域係数の間のビットストリームの区分は、ベースバンドコーダのコーディング構文に基づいて既存のデコーダとの下位互換性を確保するし、その結果、そのような既存のデコーダが、拡張部分を無視しながら、ベースバンドでコード化された部分を復号することができるように行われる。その結果、より新しいデコーダだけが、拡張帯域でコード化されたビットストリームによってカバーされる完全なスペクトルを表す能力を有し、一方、より旧型のデコーダは、エンコーダが既存の構文を用いて符号化することを選んだ部分を表すことができるだけである。周波数境界は、柔軟かつ時間依存性とすることができる。信号特性に基づいてエンコーダが判断し、デコーダに明示的に送ることも、送ることを必要としないように、復号されたスペクトルの関数とすることもできる。既存のデコーダは、既存の(ベースバンド)コーデックを使用してコード化される部分を復号することができるだけであるため、これは、スペクトルのより低い部分が既存のコーデックでコード化され、より高い部分は、広義知覚類似性を使用して、拡張帯域コーディングを使用してコード化されることを意味する。
【0045】
そのような下位互換性が必要とされない他の実装では、エンコーダは、周波数位置を考えることなしに、信号特性と符号化のコストだけに基づいて、従来のベースバンドコーディングと拡張帯域(広義知覚類似性手法)との間で自由に選ぶことができる。例えば、自
然信号では非常に可能性が低いが、より高い周波数を従来のコーデックで、また、より低い部分を、拡張コーデックを使用して符号化するほうがよい可能性がある。
【0046】
図4は、拡張帯域スペクトル係数を符号化するために、図3の拡張帯域コーダ(350)によって実行されるオーディオ符号化プロセス(400)を示す流れ図である。このオーディオ符号化プロセス(400)では、拡張帯域コーダ(350)は、拡張帯域スペクトル係数をいくつかのサブバンドに分割する。典型的な実装では、これらのサブバンドは、一般にそれぞれ64個または128個のスペクトル係数で構成されることになる。別法として、他のサイズのサブバンド(例えば、16、32、または他の数のスペクトル係数)を使用することができる。サブバンドは、互いに素なものとすることも、(ウィンドウイングを使用して)重なり合うものとすることもできる。重なり合うサブバンドの場合、より多くの帯域がコード化される。例えば、サイズ64のサブバンドを用いる拡張帯域コーダを使用して、128個のスペクトル係数をコード化しなければならない場合、2つの互いに素な帯域を使用して係数をコード化する、すなわち、係数0から63を一方のサブバンドとして、また係数64から127を他方としてコード化することができる。別法として、50%の重なり合いで3つの重なり合う帯域を使用する、すなわち、0から63を1つの帯域として、また32から95を別の帯域として、また64から127を第3の帯域としてコード化することができる。
【0047】
これらのサブバンドのそれぞれについて、拡張帯域コーダ(350)は、2つのパラメータを使用して帯域を符号化する。一方のパラメータ(「スケールパラメータ」)は、帯域内の全エネルギーを表すスケールファクタである。他方のパラメータ(概してモーションベクトルの形態の「シェープパラメータ」)は、帯域内のスペクトルの形状を表すために使用される。
【0048】
図4の流れ図に示されているように、拡張帯域コーダ(350)は、拡張帯域の各サブバンドについて処理(400)を実行する。最初に(420で)拡張帯域コーダ(350)は、スケールファクタを計算する。一実装では、スケールファクタは、単に現在のサブバンド内の係数のrms(2乗平均平方根)値である。これは、係数すべての平均2乗値の平方根をとることによって見出される。平均2乗値は、サブバンド内の係数すべての2乗値の和をとり、係数の数で割ることによって見出される。
【0049】
次いで、拡張帯域コーダ(350)は、シェープパラメータを決定する。シェープパラメータは、通常、スペクトルの正規化バージョンを、すでにコード化されたスペクトルの一部分(すなわち、ベースバンドコーダでコード化されたベースバンドスペクトル係数の一部分)から単にコピーして符号化することを示すモーションベクトルである。場合によっては、シェープパラメータは、代わりに、正規化されたランダムノイズベクトルを、または単に、固定されたコードブックからのスペクトル形状のためのベクトルを指定することができる。スペクトルの別の部分から形状をコピーすることは、オーディオにおいて有用である。というのは、一般に多数の音信号には、スペクトル全体にわたって繰り返す高調波成分があるからである。ノイズまたは何らかの他の固定コードブックの使用により、スペクトルの、ベースバンドでコード化された部分で十分に表されない成分の低ビットレートコーディングが可能になる。したがって、プロセス(400)は、本質的にこれらの帯域の利得形状ベクトル量子化コーディングであり、ベクトルがスペクトル係数の周波数帯域であり、コードブックが、先にコード化されたスペクトルから取られ、他の固定ベクトルまたはランダムノイズベクトルをも含むことができるコーディングの方法を提供する。すなわち、拡張帯域コーダによってコード化された各サブバンドは、「a」がスケールパラメータであり「X」がシェープパラメータによって表されるベクトルであるa・Xとして表され、先にコード化されたスペクトル係数の正規化バージョン、固定されたコードブックからのベクトル、またはランダムノイズベクトルとすることができる。また、スペ
クトルのこのコピーされた部分が、その同じ部分の従来のコーディングに追加される場合には、この追加は、残余コーディングである。これは、信号の従来のコーディングにより、少ないビットでコード化することが容易である基本表現(例えば、スペクトルフロアのコーディング)が得られ、残りの部分が新しいアルゴリズムでコード化される場合に有用となる可能性がある。
【0050】
より具体的には、アクション(430)で、拡張帯域コーダ(350)は、同様な帯域のためのベースバンドスペクトル係数を、拡張帯域の現在のサブバンドと同様な形状を有するベースバンドスペクトル係数から探索する。拡張帯域コーダは、ベースバンドの各部分の正規化バージョンに対する最小平均2乗比較を使用して、ベースバンドのどの部分が現在のサブバンドに最も似ているか判定する。例えば、入力ブロックから変換(320)によって生成された256個のスペクトル係数があり、拡張帯域サブバンドは、それぞれ幅が16個のスペクトル係数であり、ベースバンドコーダは、(0から127と採番された)最初の128個のスペクトル係数をベースバンドとして符号化する場合を考えてみる。次いで、探索により、係数位置0から111(すなわち、この場合には、ベースバンド内でコード化された合計112個の可能な、異なるスペクトル形状)で始まるベースバンドの各16スペクトル係数部分の正規化バージョンに対して、各拡張帯域内の正規化された16個のスペクトル係数の最小平均2乗比較が実行される。最も低い最小平均2乗値を有するベースバンド部分が、現在の拡張帯域に形状が最も近い(最も似ている)と見なされる。アクション(432)で、拡張帯域コーダは、ベースバンドスペクトル係数からのこの最も似ている帯域が、現在の拡張帯域に形状において十分に近い(例えば、最小平均2乗値が予め選択された閾値より低い)かどうか検査する。近い場合には、アクション(434)で、拡張帯域コーダは、ベースバンドスペクトル係数のこの最も近い合致帯域を指すモーションベクトルを決定する。このモーションベクトルは、ベースバンド内の開始係数位置(例えば、この例では0から111)とすることができる。(調性対非調性を検査することなど)他の方法もまた、ベースバンドスペクトル係数からの最も似ている帯域が、現在の拡張帯域に形状において十分に近いかどうか確かめるために使用することができる。
【0051】
ベースバンドの十分に近い部分が見出せない場合には、拡張帯域コーダは、現在のサブバンドを表すためにスペクトル形状の固定コードブックを見る。拡張帯域コーダは、現在のサブバンドのスペクトル形状に似たスペクトル形状があるかどうか、この固定コードブックを探索する。見出された場合、拡張帯域コーダは、アクション(444)で、コードブック内のそのインデックスをシェープパラメータとして使用する。そうでない場合、アクション(450)で、拡張帯域コーダは、現在のサブバンドの形状を、正規化されたランダムノイズベクトルとして表すことを決定する。
【0052】
代替の実装では、拡張帯域コーダは、ベースバンド内の最良のスペクトル形状があるかどうか探索する前でさえも、ノイズを使用してスペクトル係数を表すことができるかどうか判断することができる。このようにして、十分近いスペクトル形状がベースバンド内で見出された場合でも、拡張帯域コーダは、依然としてその部分を、ランダムノイズを使用してコード化することになる。これにより、ベースバンド内の位置に対応するモーションベクトルを送ることに比べたとき、ビットが少なくなる可能性がある。
【0053】
アクション(460)で、拡張帯域コーダは、予測符号化、量子化、および/またはエントロピー符号化を使用して、スケールパラメータおよびシェープパラメータ(すなわち、この実装では、スケーリングファクタとモーションベクトル)を符号化する。一実装では、例えば、スケールパラメータは、直前の拡張サブバンドに基づいて予測符号化される(拡張帯域のサブバンドのスケーリングファクタは、一般に値が似ており、その結果、連続するサブバンドは、一般に値が近いスケーリングファクタを有する)。換言すれば、拡
張帯域の最初のサブバンドについてのスケーリングファクタの完全な値が符号化される。後続のサブバンドは、それらの実際の値の、それらの予測値からの差としてコード化される(すなわち、予測値は、先行するサブバンドのスケーリングファクタである)。多重チャネルオーディオの場合、各チャネル内の拡張帯域の最初のサブバンドが、その完全な値として符号化され、後続のサブバンドのスケーリングファクタが、そのチャネル内の先行するサブバンドのスケーリングファクタから予測される。代替の実装では、スケールパラメータはまた、変形形態の中でもとりわけ、2つ以上の他のサブバンドから、またはベースバンドスペクトルから、または以前のオーディオ入力ブロックからチャネル全体にわたって予測することができる。
【0054】
さらに拡張帯域コーダは、均一量子化または不均一量子化を使用して、スケールパラメータを量子化する。一実装では、スケールパラメータの不均一量子化が使用され、スケーリングファクタの対数が128個のビンに不均一に量子化される。次いで、得られた量子化値が、ハフマン符号化を使用してエントロピー符号化される。
【0055】
シェープパラメータの場合、拡張帯域コーダはまた、(スケールパラメータの場合と同様に先行するサブバンドから予測することができる)予測符号化、64個のビンへの量子化、および(例えば、ハフマン符号化を用いる)エントロピー符号化を使用する。
【0056】
いくつかの実装では、拡張帯域サブバンドは、サイズが可変であるものとすることができる。そのような場合、拡張帯域コーダはまた、拡張帯域の構成を符号化する。
より具体的には、例示的な一実装では、拡張帯域コーダは、以下のコード表内の擬似コードリストによって示されているように、スケールパラメータおよびシェープパラメータを符号化する。
【0057】
【表1】
【0058】
上記のコードリストでは、帯域構成(すなわち、帯域の数、およびそのサイズ)を指定するためのコーディングは、拡張帯域コーダを使用してコード化すべきスペクトル係数の数によって決まる。拡張帯域コーダを使用してコード化される係数の数は、拡張帯域の開始位置およびスペクトル係数の総数を使用して見出すことができる(拡張帯域コーダを使用してコード化されるスペクトル係数の数=スペクトル係数の総数−開始位置)。次いで、帯域構成は、許されるすべての可能な構成のリスト内へのインデックスとしてコード化
される。このインデックスは、n_config=log2(構成の数)個のビットを有する固定長符号を使用してコード化される。許される構成は、この方法を使用してコード化されるスペクトル係数の数の関数である。例えば、128個の係数をコード化すべき場合、デフォルト構成は、サイズ64の2帯域である。例えば、以下の表にリストされているように、他の構成も可能とすることができる。
【0059】
【表2】
【0060】
したがって、この例では、5つの可能な帯域構成がある。そのような構成では、係数のためのデフォルト構成は、「n」個の帯域を有するものとして選ばれる。各帯域が分かれる、またはマージする(1レベルだけ)ことを可能にすると、5(n/2)個の可能な構成が
有り、これは、コード化するために(n/2)log2(5)個のビットを必要とする。他の実装では、可変長コーディングを使用し、構成をコード化することができる。
【0061】
上記で論じたように、スケールファクタは、予測符号化を使用してコード化され、予測は、同じチャネル内の以前の帯域からの、または同じタイル内の以前のチャネルからの、または先に復号されたタイルからの先にコード化されたスケールファクタからとることができる。所与の実装について、予測のための選択は、(同じ拡張帯域、チャネル、またはタイル(入力ブロック)内の)以前のどの帯域に最も高い相関が与えられるか見ることによって行うことができる。一実装例では、帯域は、次のように予測符号化される。すなわち、
タイル内のスケールファクタをx[i][j]とする。ただし、i=チャネルインデックス、j=帯域インデックス
For i==0&&j==0(最初のチャネル、最初の帯域)、予測なし
For i!==0&&j==0(他のチャネル、最初の帯域)、予測はx[0][0](最初のチャネル、最初の帯域)
For i!==0&&j!==0(他のチャネル、他の帯域)、予測はx[i][j−1](同じチャネル、以前の帯域)
上記のコード表では、「シェープパラメータ」は、以前のスペクトル係数の位置を指定するモーションベクトル、または固定コードブックからのベクトル、またはノイズである。以前のスペクトル係数は、同じチャネル内から、または以前のチャネルから、または以前のタイルからのものとすることができる。シェープパラメータは予測を使用してコード化され、予測は、同じチャネル内の、または同じタイル内の以前のチャネル内の、または以前のタイルからの以前の帯域についての以前の位置からとられる。
【0062】
図5は、オーディオエンコーダ(300)によって生成されたビットストリーム用のオーディオデコーダ(500)を示す。このデコーダでは、符号化されたビットストリーム(205)が、(例えば、コード化されたベースバンド幅および拡張帯域構成に基づいて)ビットストリームデマルチプレクサ(210)によって、ベースバンド符号ストリームと拡張帯域符号ストリームに逆多重化され、ベースバンド符号ストリームと拡張帯域符号ストリームは、ベースバンドデコーダ(540)および拡張帯域デコーダ(550)内で復号される。ベースバンドデコーダ(540)は、ベースバンドコーデックの従来のデコーディングを使用して、ベースバンドスペクトル係数を復号する。拡張帯域デコーダ(550)は、シェープパラメータのモーションベクトルによって指されているベースバンド
スペクトル係数の一部分をコピーすること、およびスケールパラメータのスケーリングファクタによってスケーリングすることによるを含めて、拡張帯域符号ストリームを復号する。ベースバンドスペクトル係数および拡張帯域スペクトル係数は、オーディオ信号を再構築するために逆変換580によって変換される単一のスペクトルに組み合わされる。
【0063】
図6は、図5の拡張帯域デコーダ(550)内で使用される復号プロセス(600)を示す。拡張帯域符号ストリーム内の拡張帯域の各コード化済みサブバンドについて(アクション(610))、拡張帯域デコーダは、スケールファクタを(アクション(620))、またモーションベクトルを(アクション(630))復号する。次いで、拡張帯域デコーダは、モーションベクトル(シェープパラメータ)によって指定されたベースバンドサブバンド、固定コードブックベクトル、ランダムノイズベクトルをコピーする。拡張ベースバンドデコーダは、コピーされたスペクトル帯域またはベクトルをスケーリングファクタによってスケーリングし、拡張帯域の現在のサブバンドについてスペクトル係数を生成する。
【0064】
3.コンピューティング環境
図7は、例示的な諸実施形態を実施することができる好適なコンピューティング環境(700)の一般化された例を示す。本発明は、様々な汎用または専用コンピューティング環境で実施することができるため、コンピューティング環境(700)は、本発明の使用または機能の範囲についてどんな制限も暗示しないものとする。
【0065】
図7を参照すると、コンピューティング環境(700)は、少なくとも1つの処理装置(710)およびメモリ(720)を含んでいる。図7では、この最も基本的な構成(730)が破線内に含まれている。処理装置(710)はコンピュータ実行可能命令を実行し、実プロセッサとすることも仮想プロセッサとすることもできる。多重処理システムでは、複数の処理装置がコンピュータ実行可能命令を実行し、処理力を高める。メモリ(720)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュメモリなど)、またはこれら2つの何らかの組合せとすることができる。メモリ(720)は、オーディオエンコーダを実装するソフトウェア(780)を記憶する。
【0066】
コンピューティング環境は、追加の特徴を有することができる。例えば、コンピューティング環境(700)は、記憶装置(740)、1つまたは複数の入力デバイス(750)、1つまたは複数の出力デバイス(760)、1つまたは複数の通信接続(770)を含む。バス、コントローラ、ネットワークなど相互接続機構(図示せず)が、コンピューティング環境(700)の構成要素を相互接続する。一般に、オペレーティングシステムソフトウェア(図示せず)が、コンピューティング環境(700)内で実行する他のソフトウェアのための動作環境を提供し、コンピューティング環境(700)の構成要素の活動を調整する。
【0067】
記憶装置(740)は、取外し式または非取外し式とすることができ、磁気ディスク、磁気テープもしくはカセット、CD−ROM、CD−RW、DVD、または、情報を記憶するために使用することができる、また、コンピューティング環境(700)内でアクセスを受けることができる任意の他の媒体を含む。記憶装置(740)は、オーディオエンコーダを実装するソフトウェア(780)用の命令を記憶する。
【0068】
入力デバイス(750)は、キーボード、マウス、ペン、またはトラックボールなどタッチ入力デバイス、音声入力デバイス、走査デバイス、あるいは、コンピューティング環境(700)に入力を提供する別のデバイスとすることができる。オーディオの場合、入力デバイス(750)は、サウンドカード、または、オーディオ入力をアナログ形態もし
くはデジタル形態で受け入れる類似のデバイスとすることができる。出力デバイス(760)は、ディスプレイ、プリンタ、スピーカ、または、コンピューティング環境(700)からの出力を提供する別のデバイスとすることができる。
【0069】
通信接続(770)は、通信媒体を介して別のコンピューティングエンティティに対する通信を可能にする。通信媒体は、コンピュータ実行可能命令、圧縮されたオーディオもしくはビデオ情報、または、変調データ信号内の他のデータなど、情報を搬送する。変調データ信号は、情報を信号に符号化するようにその特性の1つまたは複数が設定された、または変化した信号である。限定ではなく例を挙げると、通信媒体には、電気、光、RF、赤外線、音響、または他の搬送波と共に実施される有線技法または無線技法が含まれる。
【0070】
本発明については、コンピュータ可読媒体の一般的な状況で述べることができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスを受けることができる任意の使用可能な媒体である。限定ではなく例を挙げると、コンピューティング環境(700)と共に、コンピュータ可読媒体には、メモリ(720)、記憶装置(740)、通信媒体、および上記のいずれかの組合せが含まれる。
【0071】
本発明については、コンピューティング環境内で、ターゲットの実プロセッサまたは仮想プロセッサ上で実行される、プログラムモジュール内に含まれるものなどコンピュータ実行可能命令の一般的な状況で述べることができる。概して、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データタイプを実施するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、様々な実施形態で望まれるように、組み合わせることも、プログラムモジュール間で分けることもできる。プログラムモジュール用のコンピュータ実行可能命令は、ローカルまたは分散型コンピューティング環境内で実行することができる。
【0072】
提示するために、詳細な説明では、「determine(決定(判定)する)」「get」「adjust(調整する)」「apply(適用する)」のような用語を使用し、コンピューティング環境内のコンピュータの動作について述べる。これらの用語は、コンピュータによって実行される動作について高レベルで抽象化したものであり、人間によって行われる動作と混同すべきでない。これらの用語に対応する実際のコンピュータの動作は、実装に応じて変わる。
【0073】
本発明の原理を適用することができる多数の可能な実施形態に鑑みて、本発明者等は、以下の特許請求の範囲とその均等物の範囲および精神内に入るそのような実施形態すべてを本発明として主張する。
【符号の説明】
【0074】
100 オーディオエンコーダ
110 周波数トランスフォーマ
120 多重チャネルトランスフォーマ
130 知覚モデラ
140 ウェイタ
150 量子化器
160 エントロピーエンコーダ
170 レート/品質コントローラ
180 ビットストリームMUX
200 オーディオデコーダ
210 ビットストリームDEMUX
220 エントロピーデコーダ
230 逆量子化器
240 ノイズ発生器
250 逆ウェイタ
260 逆多重チャネルトランスフォーマ
270 逆周波数トランスフォーマ
図1
図2
図3
図4
図5
図6
図7