コーディングコンテキストのピッチ依存適合を用いた、オーディオ信号復号器、オーディオ信号符号化器、オーディオ信号を復号するための方法、オーディオ信号を符号化するための方法、およびコンピュータプログラム
復号されたオーディオ信号表現(154)を、符号化されたスペクトル表現(ac_spectral_data[])と符号化されたタイムワープ情報(tw_data[])とを含む符号化されたオーディオ信号表現(152)に基づいて提供するためのオーディオ信号復号器(150)は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態に応じて復号して、復号されたスペクトル値(162,297,x_ac_dec[])を取得するように構成されたコンテキストベースのスペクトル値復号部(160)を備える。オーディオ信号復号器はまた、1つ以上前に復号されたスペクトル値(162,297)に応じて現在のコンテキスト状態(164,c)を決定するように構成されたコンテキスト状態決定部(170;400)も備える。オーディオ信号復号器はまた、所与のオーディオフレームのタイムワープされた時間領域表現(182)を、当該所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値復号部によって提供された、復号されたスペクトル値(162)の集合に基づいてかつタイムワープ情報に応じて提供するように構成されたタイムワーピング周波数領域−時間領域変換部(180)も備える。コンテキスト状態決定部(170)は、連続するオーディオフレーム間の基本周波数の変化に適合させるようにコンテキスト状態を決定するように構成されている。オーディオ信号符号化器は、同等の概念を適用するものである。
【発明の詳細な説明】
【技術分野】
【0001】
本発明による実施形態は、符号化されたオーディオ信号表現に基づいて復号されたオーディオ信号表現を提供するためのオーディオ信号復号器に関する。
【0002】
本発明によるさらなる実施形態は、入力オーディオ信号の符号化された表現を提供するためのオーディオ信号符号化器に関する。
【0003】
本発明によるさらなる実施形態は、復号されたオーディオ信号表現を符号化されたオーディオ信号表現に基づいて提供するための方法に関する。
【0004】
本発明によるさらなる実施形態は、入力オーディオ信号の符号化された表現を提供するための方法に関する。
【0005】
本発明によるさらなる実施形態は、コンピュータプログラムに関する。
【0006】
本発明によるいくつかの実施形態は、タイムワープ型修正離散コサイン変換(簡潔にTW−MDCTとして示す)と併用され得る、算術コーダのコンテキストをワープ情報を用いて適合させる概念に関する。
【背景技術】
【0007】
以下に、タイムワープ型オーディオ符号化の分野について簡単に紹介する。タイムワープ型オーディオ符号化の概念は、本発明の実施形態のいくつかと共に適用することができる。
【0008】
近年、オーディオ信号を周波数領域表現へ変換し、この周波数領域表現を、例えば知覚マスキング閾値を考慮して、効率的に符号化するための技術が開発されてきている。オーディオ信号符号化のこの概念は、符号化されたスペクトル係数の集合が送信されるブロックの長さが長い場合、およびグローバルなマスキング閾値を充分に上回るスペクトル係数の数が比較的少数であって、スペクトル係数のうちの多くがグローバルなマスキング閾値の付近又はそれ未満であり、ゆえに無視することが可能である(あるいは、最小限のコード長でコーディングすることが可能である)場合に、特に効率的である。前述の条件が成立するスペクトルは、スパーススペクトルと呼ばれる場合がある。
【0009】
例えば、余弦ベース又は正弦ベースの変調重複変換が、それらのエネルギー圧縮特性ゆえに、ソースコーディングのための用途においてしばしば使用される。すなわち、一定の基本周波数(ピッチ)を有する倍音については、これら変調重複変換により、信号のエネルギーが少数のスペクトル成分(サブ帯域)に集中し、効率的な信号表現がもたらされる。
【0010】
一般に、信号の(基本)ピッチは、当該信号のスペクトルから識別することができる最も低い優位周波数であると理解されるべきである。一般的なスピーチモデルにおいて、ピッチは人間の喉によって変調された励起信号の周波数である。ただ1つの基本周波数だけが存在すると考えられる場合、スペクトルはきわめて単純になり、基本周波数および倍音だけを含むと考えられる。このようなスペクトルは、きわめて効率的に符号化することが可能である。しかしながら、ピッチが変動する信号については、各ハーモニック成分に対応するエネルギーが、いくつかの変換係数にわたって広がり、コーディング効率が低下することになる。
【0011】
このコーディング効率の低下を克服するために、符号化されるオーディオ信号は非一様な時間格子上で有効に再サンプリングされる。続く処理において、非一様な再サンプリングによって得られたサンプル位置があたかも一様な時間格子上の値を表わしているかのように処理される。この操作は、一般に、「タイムワーピング(time warping)」という用語で呼ばれている。サンプル時間は、オーディオ信号のタイムワープされたバージョンにおけるピッチ変動がオーディオ信号の(タイムワーピング前の)元のバージョンにおけるピッチ変動よりも小さくなるように、ピッチの時間変動に依存して有利に選択することができる。オーディオ信号のタイムワーピングの後で、オーディオ信号のタイムワープされたバージョンが周波数領域に変換される。ピッチ依存型タイムワーピングは、タイムワープされたオーディオ信号の周波数領域表現が、典型的には、元の信号(タイムワープされていないオーディオ信号)の周波数領域表現と比べて、はるかに少数のスペクトル成分へのエネルギー圧縮を呈するという効果を有する。
【0012】
復号器側において、タイムワープされたオーディオ信号の周波数領域表現は、タイムワープされたオーディオ信号の時間領域表現を復号器側において利用できるように、時間領域へ変換される。しかしながら、復号器側で復元されたタイムワープされたオーディオ信号の時間領域表現には、符号器側での入力オーディオ信号の元のピッチ変動が含まれていない。したがって、復号器側で復元されたタイムワープされたオーディオ信号の時間領域表現の再サンプリングによる、さらに別のタイムワーピングが適用される。
【0013】
復号器側において符号化器側での入力オーディオ信号の良好な復元を実現するために、復号器側でのタイムワーピングが、符号化器側でのタイムワーピングに対して少なくともほぼ逆の動作であることが望ましい。適切なタイムワーピングを実現するために、復号器側でのタイムワーピングの調整を可能にする情報が復号器において入手可能であることが望ましい。
【0014】
一般的に、このような情報をオーディオ信号符号化器からオーディオ信号復号器へ伝達することが必要とされるため、この伝達に必要なビットレートを小さく抑えながらも、復号器側における必要なタイムワープ情報の確実な復元を可能にすることが望まれる。
【0015】
また、スペクトル値を符号化または復号する際のコーディング効率は、コンテキスト依存型符号化器またはコンテキスト依存型復号器を使用することによって高くなる場合がある。
【0016】
しかしながら、オーディオ符号化器またはオーディオ復号器のコーディング効率は、基本周波数またはピッチの変動がある場合には、タイムワープの概念が適用されたとしても比較的低いことが多いということが分かっている。
【0017】
このような状況に鑑み、基本周波数の変動がある場合においても良好なコーディング効率を可能にする概念が所望される。
【発明の概要】
【0018】
本発明の一実施形態は、復号されたオーディオ信号表現を、符号化されたスペクトル表現と符号化されたタイムワープ情報とを含む符号化されたオーディオ信号表現に基づいて提供するためのオーディオ信号復号器を実現する。オーディオ信号復号器は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態に応じて復号して、復号されたスペクトル値を取得するように構成されたコンテキストベースのスペクトル値復号部を備える。オーディオ信号復号器はまた、1つ以上前に復号されたスペクトル値に応じて現在のコンテキスト状態を決定するように構成されたコンテキスト状態決定部も備える。オーディオ信号復号器はまた、所与のオーディオフレームのタイムワープされた時間領域表現を、当該所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値決定部によって提供された、復号されたスペクトル値の集合に基づいてかつタイムワープ情報に応じて提供するように構成されたタイムワーピング周波数領域−時間領域変換部も備える。コンテキスト状態決定部は、コンテキスト状態の決定を、連続するフレーム間の基本周波数の変化に適合させるように構成されている。
【0019】
本発明のこの実施形態は、時変基本周波数を有するオーディオ信号の存在下でコンテキストベースのスペクトル値復号部によって達成されるコーディング効率は、連続する2つのフレーム間の基本周波数の変化にコンテキスト状態を適合させることによって向上するという知見に基づいている。なぜなら、基本周波数の経時変化(多くの場合、ピッチの変動と同等である)は、所与のオーディオフレームのスペクトルが、一般的に、以前のオーディオフレーム(所与のオーディオフレームに先行する)のスペクトルの周波数スケーリングされたバージョンに類似するという効果を有し、したがって、コンテキストの決定を基本周波数の変化に応じて適合させることにより、コーディング効率を向上させるためにこの類似性を利用することができるからである。
【0020】
すなわち、コンテキストベースのスペクトル値コーディングのコーディング効率(または復号効率)は、2つの連続するフレーム間の基本周波数に著しい変化がある場合には比較的低いこと、および、そのような状況に合わせてコンテキスト状態を決定することによってコーディング効率を高めることができることが分かっている。適応的にコンテキスト状態を決定することにより、以前のオーディオフレームのスペクトルと現在のオーディオフレームのスペクトルとの間の類似性を利用しながら、同時に、以前のオーディオフレームのスペクトルと現在のオーディオフレームのスペクトルとの間の系統的差異、例えば、典型的には、基本周波数の経時変化(すなわち、2つのオーディオフレーム間での基本周波数の経時変化)が存在する場合に現れるスペクトルの周波数スケーリングを考慮することが可能となる。
【0021】
要約すると、本発明のこの実施形態は、(連続するフレーム間の基本周波数の変化を示す情報がオーディオ信号符号化器または復号器のタイムワープの機能を用いたオーディオビットストリームにおいて何らかのやりかたで利用可能であると仮定した場合、)追加の副情報またはビットレートを必要とすることなく、コーディング効率を向上させるのに役立つ。
【0022】
好ましい実施形態において、タイムワーピング周波数領域−時間領域変換部は、所与のオーディオフレームの時間領域表現を、当該所与のオーディオフレームに対応付けられた復号され、コンテキストベースのスペクトル値復号部によって提供されたスペクトル値の集合に基づいて提供するように構成された通常の(非タイムワープ型)周波数領域−時間領域変換部と、所与のオーディオフレームの時間領域表現またはその処理されたバージョンをタイムワープ情報に応じて再サンプリングして、所与のオーディオフレームの再サンプリングされた(タイムワープされた)時間領域表現を取得するように構成されたタイムワープ再サンプリング部と、を備える。タイムワーピング周波数領域−時間領域変換部のこのような実施例は、「標準的な」周波数領域−時間領域変換部によるものであり、またその機能が周波数領域−時間領域変換部の機能とは独立していてもよいタイムワープ再サンプリング部を拡張機能として含むため実施が容易である。したがって、周波数領域−時間領域変換部は、タームワーピング(またはタイムデワーピング)が非アクティブである動作モードおよびタームワーピング(またはタイムデワーピング)がアクティブである動作モードの両方において再使用することができる。
【0023】
好ましい実施形態において、タイムワープ情報は、ピッチの経時変動を示している。この実施形態では、コンテキスト状態決定部は、タイムワープ情報から周波数伸長情報(すなわち、周波数スケーリング情報)を導出するように構成されている。さらに、コンテキスト状態決定部は、好ましくは、以前のオーディオフレームに対応付けられた過去のコンテキストを、周波数伸長情報に応じて周波数軸に沿って伸長または圧縮して、現在のオーディオフレームの1つ以上のスペクトル値のコンテキストベースの復号のための適合されたコンテキストを取得するように構成されている。ピッチの経時変動を示すタイムワープ情報は、周波数伸長情報の導出によく適していることが分かっている。さらに、以前のオーディオフレームに対応付けられた過去のコンテキストを周波数軸に沿って伸長または圧縮することにより、典型的には、伸長または圧縮されたコンテキストが得られ、これにより、現在のオーディオフレームのスペクトルに良好に適合され、ゆえに良好なコーディング効率をもたらす有意なコンテキスト状態情報を導出することが可能となることが分かっている。
【0024】
好ましい実施形態において、コンテキスト状態決定部は、第1のオーディオフレームの第1の平均周波数情報をタイムワープ情報から導出し、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均周波数情報を前記タイムワープ情報から導出するように構成されている。この場合、コンテキスト状態決定部は、周波数伸長情報を決定するために、第2のオーディオフレームにわたる第2の平均周波数情報と第1のオーディオフレームにわたる第1の平均周波数情報との比を計算するように構成されている。タイムワープ情報から平均周波数情報を一般に容易に導出することができることが分かっており、また、第1および第2の平均周波数情報間の比により、周波数伸長情報を計算効率よく導出することが可能になることも分かっている。
【0025】
別の好ましい実施形態において、コンテキスト状態決定部は、第1のオーディオフレームにわたる第1の平均タイムワープコンター情報をタイムワープ情報から導出し、第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均タイムワープコンター情報をタイムワープ情報から導出するように構成されている。この場合、コンテキスト状態決定部は、周波数伸長情報を決定するために、第1のオーディオフレームにわたる第1の平均タイムワープコンター情報と第2のオーディオフレームにわたる第2の平均タイムワープコンター情報との比を計算するように構成されている。第1および第2のオーディオフレーム(これらは重複し得る)わたるタイムワープコンター情報の平均を計算することは特に計算的効率が高いこと、および上記第1の平均タイムワープコンター情報と上記第2の平均タイムワープコンター情報間の比により、十分に正確な周波数伸長情報が提供されることが分かっている。
【0026】
好ましい実施形態において、コンテキスト状態決定部、第1および第2の平均周波数情報または第1および第2の平均タイムワープコンター情報を、複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンターから導出するように構成されている。複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンターを設定するという概念は、再サンプリング時間の正確でかつ歪みの無い計算を容易にするだけでなく、2つの連続するオーディオフレーム間の基本周波数の変化の推定に対する非常に優れた基礎を提供することが分かっている。したがって、共通のタイムワープコンターは、異なるオーディオフレーム間の相対周波数の経時変化を特定するための非常に優れた手段であると認識されている。
【0027】
好ましい実施形態において、オーディオ信号復号器は、複数の連続オーディオフレームにわたる相対ピッチの時間変遷を示すタイムワープコンター情報をタイムワープ情報に基づいて計算するように構成されたタイムワープコンター計算部を備える。この場合、コンテキスト状態決定部は、周波数伸長情報を導出するためにタイムワープコンター情報を使用するように構成されている。例えば、オーディオフレームの各サンプルについて定義され得るタイムワープコンター情報は、コンテキスト状態の決定の適合の非常に優れた基礎を成すことが分かっている。
【0028】
好ましい実施形態において、オーディオ信号復号器は、再サンプリング位置計算部を備える。再サンプリング位置計算部は、タイムワープ再サンプリング部によって使用される再サンプリング位置を、当該再サンプリング位置の時間変動が前記タイムワープコンター情報によって決定されるように、タイムワープコンター情報に基づいて計算するよう構成されている。周波数伸長情報の決定および再サンプリング位置の決定の両方に対して共通のタイムワープコンター情報を使用することは、周波数伸長情報を適用することによって得られる伸長されたコンテキストが現在のオーディオフレームのスペクトルの特性に良好に適合されるという効果を有し、現在のオーディオフレームのオーディオ信号は、少なくともほぼ、計算された再サンプリング位置を用いた再サンプリング動作によって復元される以前のオーディオ信号の延長であることが分かっている。
【0029】
好ましい実施形態において、コンテキスト状態決定部は、コンテキスト状態を示す現在の数値コンテキスト値を複数の以前に復号されたスペクトル値(コンテキストメモリ構造によって示されるかあるいはこれに含まれ得る)に応じて導出し、1つ以上のスペクトル値を表す記号コードまたは1つ以上のスペクトル値の数値表現の一部へのコード値のマッピングを示すマッピング規則を現在の数値コンテキスト値に応じて選択するように構成されている。この場合、コンテキストベースのスペクトル値復号部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、コンテキスト状態決定部によって選択されたマッピング規則を使用して復号するように構成されている。現在の数値コンテキスト値が複数の以前に復号されたスペクトル値から導出され、マッピング規則が当該(現在の)数値コンテキスト値から選択されるコンテキスト適合(コンテキスト適応化)において、コンテキスト状態を適応的に決定すること(例えば、適応的に(現在の)数値コンテキスト値の決定すること)が非常に有効であることが分かっている。なぜなら、このような概念を用いることにより、著しく不適切なマッピング規則を選択することを回避することができるからである。これに対し、コンテキスト状態、すなわち、現在の数値コンテキスト値の導出が連続するフレーム間の基本周波数の変化に応じて適合されなければ、基本周波数の変化がある場合にマッピング規則の選択ミスが頻繁に生じることになり、その結果、コーデイング利得が低下することになる。コーデイング利得のこのような低下は、本明細書に記載される機構によって回避される。
【0030】
好ましい実施形態において、コンテキスト状態決定部は、予備コンテキストメモリ構造を、当該予備コンテキストメモリ構造のエントリが第1のオーディオフレームの1つ以上のスペクトル値を示すように設定および更新するよう構成され、予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた(例えば、第1のオーディオフレームの時間領域表現を提供において対応付けられた)、前記周波数領域−時間領域変換部の周波数ビンまたは隣接する周波数ビンの集合を示している。コンテキスト状態決定部は、第1のオーディオフレームに続く第2のオーディオフレームの復号のための周波数スケーリングされたコンテキストメモリ構造を、第1の周波数インデックスを有する予備コンテキストメモリ構造の所与のエントリまたはサブエントリが、第2の周波数インデックスを有する周波数スケーリングされたコンテキストメモリ構造の対応するエントリまたはサブエントリにマッピングされるように、予備コンテキストメモリ構造に基づいて取得するよう構成されている。第2の周波数インデックスは、周波数領域−時間領域変換部の第1の周波数インデックスとは異なるビンまたは隣接する周波数ビンの異なる集合に対応付けられている。
【0031】
換言すれば、周波数領域−時間領域変換部のi番目のスペクトルビン(または周波数領域−時間領域変換部のスペクトルビンのi番目の集合)に対応する1つ以上のスペクトル値に基づいて取得された予備コンテキストメモリ構造のエントリが、周波数領域−時間領域変換部のj番目の周波数ビン(または周波数ビンのj番目の集合)に対応付けられた周波数スケーリングされたコンテキストメモリ構造のエントリにマッピングされる(ここで、jは、iとは異なる)。コンテキストメモリ構造のエントリを周波数スケーリングされたコンテキストメモリ構造のエントリにマッピングするというこのような概念により、コンテキスト状態の決定を基本周波数の変化に適合させる特に計算効率の高い方法が提供されることが分かっている。この概念を用いて、コンテキストの周波数スケーリングを少ない労力で達成することができる。したがって、周波数スケーリングされたコンテキストメモリ構造からの現在の数値コンテキスト値の導出は、大きなピッチ変動が無い場合は、従来の(例えば、予備)コンテキストメモリ構造からの現在の数値コンテキスト値の導出と同一であり得る。よって、上述の概念により、既存のオーディオ復号器においてコンテキスト適合を最小限の労力で実現することが可能となる。
【0032】
好ましい実施形態において、コンテキスト状態決定部は、第3の周波数インデックスが対応付けられた第2のオーディオフレームの1つ以上のスペクトル値または第2のオーディオフレームの1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードの復号のための現在のコンテキスト状態を示すコンテキスト状態値を、周波数スケーリングされたコンテキストメモリ構造の値を用いて導出するように構成され、周波数スケーリングされたコンテキストメモリ構造の値の周波数インデックスは、第3の周波数インデックスと所定の関係にある。この場合、第3の周波数インデックスは、現在のコンテキスト状態を用いて復号される第2のオーディオフレームの1つ以上のスペクトル値が対応付けられた、周波数領域−時間領域復号部の周波数ビンまたは隣接する周波数ビンの集合を指定する。
【0033】
コンテキスト状態値(例えば、現在の数値コンテキスト値)の導出のために復号される1つ以上のスペクトル値の所定の(かつ、好ましくは、固定の)相対的環境(周波数ビンに関する相対的環境)を使用することにより、当該コンテキスト状態値の計算を適度に単純にしておくことが可能となることが分かっている。周波数スケーリングされたコンテキストメモリ構造をコンテキスト状態値の導出の入力として用いることにより、基本周波数の変動を効率的に考慮することができる。
【0034】
好ましい実施形態において、コンテキスト状態決定部は、対応するターゲット周波数インデックスを有する周波数スケーリングされたコンテキストメモリ構造の複数のエントリのそれぞれを、対応するソース周波数インデックスを有する予備コンテキストメモリ構造の対応するエントリの値に設定するように構成されている。コンテキスト状態決定部は、周波数スケーリングされたコンテキストメモリ構造のエントリおよび予備コンテキストメモリ構造の対応するエントリの対応する周波数インデックスを、当該対応する周波数インデックスの比が、予備コンテキストメモリ構造のエントリが対応付けられた現在のオーディオフレームと、周波数スケーリングされたコンテキストメモリ構造のエントリによって復号コンテキストが決定される次のオーディオフレームとの間の基本周波数の変化によって決まるように、決定するよう構成されている。このような概念を周波数スケーリングされたコンテキストメモリ構造のエントリの導出に利用することにより、複雑度を低く抑えながらも、周波数スケーリングされたコンテキストメモリ構造を基本周波数の変化に適合させることができる。
【0035】
好ましい実施形態において、コンテキスト状態決定部は、予備コンテキストメモリ構造の複数のエントリのそれぞれが第1のオーディオフレームの複数のスペクトル値に基づくように予備コンテキストメモリ構造を設定するよう構成され、予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた(第1のオーディオフレームに関して)、周波数領域−時間領域変換部の隣接する周波数ビンの集合を示している。コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた予備周波数ビン個別コンテキスト値を、予備コンテキストメモリ構造のエントリから抽出するように構成されている。加えて、コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた、周波数スケーリングされた周波数ビン個別コンテキスト値を、第1の周波数ビンインデックスを有する所与の予備周波数ビン個別コンテキスト値が第2の周波数ビンインデックスを有する対応する周波数スケーリングされた周波数ビン個別コンテキスト値にマッピングされ、その結果、予備周波数ビン個別コンテキスト値の周波数ビン個別マッピングが得られるように、取得するよう構成されている。コンテキスト状態決定部は、複数の周波数スケーリングされた周波数ビン個別コンテキスト値を組み合わせて、周波数スケーリングされたコンテキストメモリ構造の1つの組み合わせエントリにするようにさらに構成されている。したがって、複数の周波数ビンがコンテキストメモリ構造の単一のエントリにまとめられている場合であっても、周波数スケーリングされたコンテキストメモリ構造を基本周波数の変化に対して非常に高い粒度で適合させることができる。よって、基本周波数の変化へのコンテキストの特に正確な適合を実現することができる。
【0036】
本発明による別の実施形態は、符号化されたスペクトル表現と符号化されたタイムワープ情報とを含む、入力オーディオ信号の符号化された表現を提供するためのオーディオ信号符号化器を実現する。オーディオ信号符号化器は、タイムワープ情報に応じてタイムワープされた、入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現を提供するように構成された周波数領域表現提供部を備える。オーディオ信号符号化器は、周波数領域表現の1つ以上のスペクトル値または周波数領域表現の1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態に応じて符号化して、符号化されたスペクトル表現の符号化されたスペクトル値を取得するように構成されたコンテキストベースのスペクトル値符号化部を更に備える。オーディオ信号復号器はまた、現在のコンテキスト状態を1つ以上前に符号化されたスペクトル値に応じて決定するように構成されたコンテキスト状態決定部であって、コンテキストの決定を、連続するオーディオフレーム間の基本周波数の変化に適合させるコンテキスト状態決定部も備える。
【0037】
このオーディオ信号符号化器は、上述のオーディオ信号復号器と同様の考え方および知見に基づくものである。また、オーディオ信号符号化器は、コンテキスト状態計算において、以前に符号化されたスペクトル値が以前に復号されたスペクトル値の役割を果たすオーディオ信号復号器に関して記載された特徴および機能のいずれでも補足することができる。
【0038】
好ましい実施形態において、コンテキスト状態決定部は、現在の数値コンテキスト値を複数の以前に符号化されたスペクトル値に応じて導出し、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の一部のコード値へのマッピングを示すマッピング規則を現在の数値コンテキスト値に応じて選択するように構成されている。この場合、コンテキストベースのスペクトル値符号化部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、コンテキスト状態決定部によって選択されたマッピング規則を使用して提供するように構成されている。
【0039】
本発明による別の実施形態は、復号されたオーディオ信号表現を符号化されたオーディオ信号表現に基づいて提供するための方法を実現する。
【0040】
本発明による別の実施形態は、入力オーディオ信号の符号化された表現を提供するための方法を実現する。
【0041】
本発明による別の実施形態は、上記方法のうち1つを実行するためのコンピュータプログラムを実現する。
【0042】
上記の方法およびコンピュータプログラムは、上述のオーディオ信号復号器およびオーディオ信号符号化器と同様の検討に基づくものである。
【0043】
さらに、上記のオーディオ信号符号化器、方法およびコンピュータプログラムは、オーディオ信号復号器に関して上記に記載され、また後述される特徴及び機能のいずれでも補足することができる。
【図面の簡単な説明】
【0044】
次に、本発明による実施形態を添付の図面を参照しながら説明する。
【図1A】図1aは、本発明の一実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図1B】図1bは、本発明の一実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2A1】図2aは、本発明の別の実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図2A2】図2aは、本発明の別の実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図2B1】図2bは、本発明の別の実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2B2】図2bは、本発明の別の実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2C】図2cは、本発明の実施形態によるオーディオ符号化器において使用される算術符号化部のブロック模式図を示す。
【図2D】図2dは、本発明の実施形態によるオーディオ信号復号器において使用される算術復号部のブロック模式図を示す。
【図3A】図3aは、コンテキスト適合型算術コーディング(符号化/復号)のグラフ表現を示す。
【図3B】図3bは、相対ピッチコンターのグラフ表現を示す。
【図3C】図3cは、タイムワープ型修正離散コサイン変換(TW−MDCT)の伸長効果のグラフ表現を示す。
【図4A】図4aは、本発明の実施形態によるオーディオ信号符号化器およびオーディオ信号復号器において使用されるコンテキスト状態決定部のブロック模式図を示す。
【図4B】図4bは、図4aによるコンテキスト状態決定部によって実行され得るコンテキストの周波数圧縮のグラフ表現を示す。
【図4C】図4cは、本発明による実施形態において適用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図4D】図4d〜図4eは、本発明による実施形態において使用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図4E】図4d〜図4eは、本発明による実施形態において使用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図5A】図5a、図5bは、本発明の一実施形態による、オーディオ信号復号器のブロック模式図からの詳細な抜粋を示す。
【図5B】図5a、図5bは、本発明の一実施形態による、オーディオ信号復号器のブロック模式図からの詳細な抜粋を示す。
【図6A】図6a、図6bは、本発明の一実施形態による、復号されたオーディオ信号表現を提供するためのマッピング部のフローチャートからの詳細な抜粋を示す。
【図6B】図6a、図6bは、本発明の一実施形態による、復号されたオーディオ信号表現を提供するためのマッピング部のフローチャートからの詳細な抜粋を示す。
【図7A1】図7aは、本発明の一実施形態によるオーディオ復号器において使用されるデータ要素およびヘルプ要素の定義の凡例を示す。
【図7A2】図7aは、本発明の一実施形態によるオーディオ復号器において使用されるデータ要素およびヘルプ要素の定義の凡例を示す。
【図7B】図7bは、本発明の一実施形態によるオーディオ復号器において使用される定数の定義の凡例を示す。
【図8】図8は、対応する復号されたタイムワープ値へのコードワードインデックスのマッピングのテーブル表現を示す。
【図9】図9は、等間隔ワープノード間を直線補間するためのアルゴリズムの疑似プログラムコード表現を示す。
【図10A】図10aは、ヘルパー関数「warp_time_inv」の疑似プログラムコード表現を示す。
【図10B】図10bは、ヘルパー関数「warp_inv_vec」の疑似プログラムコード表現を示す。
【図11A】図11は、サンプル位置ベクトルおよび遷移長を計算するためのアルゴリズムの疑似プログラムコード表現を示す。
【図11B】図11は、サンプル位置ベクトルおよび遷移長を計算するためのアルゴリズムの疑似プログラムコード表現を示す。
【図12】図12は、ウィンドウシーケンスおよびコアコーダフレーム長に依存する合成ウィンドウ長Nの値のテーブル表現を示す。
【図13】図13は、許可されたウィンドウシーケンスの行列表現を示す。
【図14A】図14は、ウィンドウ処理および「EIGHT_SHORT_SEQUENCE」のタイプのウィンドウシーケンスの内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図14B】図14は、ウィンドウ処理および「EIGHT_SHORT_SEQUENCE」のタイプのウィンドウシーケンスの内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図15】図15は、「EIGHT_SHORT_SEQUENCE」ではないタイプの他のウィンドウシーケンスのウィンドウ処理および内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図16】図16は、再サンプリングを行うためのアルゴリズムの疑似プログラムコード表現を示す。
【図17】図17は、本発明によるいくつかの実施形態において使用され得る、状態計算のためのコンテキストのグラフ表現を示す。
【図18】図18は、定義の凡例を示す。
【図19】図19は、アルゴリズム「arith_map_context()”」の疑似プログラムコード表現を示す。
【図20】図20は、アルゴリズム「arith_get_context()」の疑似プログラムコード表現を示す。
【図21】図21は、アルゴリズム「arith_get_pk()」の疑似プログラムコード表現を示す。
【図22A】図22は、アルゴリズム「arith_decode()”」の疑似プログラムコード表現を示す。
【図22B】図22は、アルゴリズム「arith_decode()”」の疑似プログラムコード表現を示す。
【図23】図23は、1つ以上の下位ビットプレーンを復号するためのアルゴリズムの疑似プログラムコード表現を示す。
【図24】図24は、算術復号されたスペクトル値の配列のエントリを設定するためのアルゴリズムの疑似プログラムコード表現を示す。
【図25】図25は、関数「arith_update_context()」の疑似プログラムコード表現を示す。
【図26】図26は、アルゴリズム「arith_finish()”」の疑似プログラムコード表現を示す。
【図27A】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27B】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27C】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27D】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27E】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27F】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【発明を実施するための形態】
【0045】
1.図1aによるオーディオ信号符号化器
図1aは、本発明の一実施形態によるオーディオ信号符号化器100のブロック模式図を示す。
【0046】
オーディオ信号符号化器100は、入力オーディオ信号110を受信し、この入力オーディオ信号の符号された表現112を提供するように構成されている。入力オーディオ信号の符号化された表現112は、符号化されたスペクトル表現および符号化されたタイムワープ情報を含む。
【0047】
オーディオ信号符号化器100は、入力オーディオ信号110およびタイムワープ情報122を受信するように構成された周波数領域表現提供部120を備える。周波数領域表現提供部120(タイムワーピング周波数領域表現提供部であると考えられ得る)は、タイムワープ情報122に従ってタイムワープされた、入力オーディオ信号110のタイムワープされたバージョンを表す周波数領域表現124を提供するように構成されている。オーディオ信号符号化器100はまた、スペクトル値符号化部130を備えており、スペクトル値符号化部130は、符号化されたスペクトル表現の符号化されたスペクトル値を取得するために、周波数領域表現124の1つ以上のスペクトル値または周波数領域表現124の1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワード132をコンテキスト状態に応じて提供する。コンテキスト状態は、例えば、コンテキスト状態情報134によって示され得る。オーディオ信号符号化器100はまた、現在のコンテキスト状態を1つ以上前に符号化されたスペクトル値124に応じて決定するように構成されたコンテキスト状態決定部140も備える。コンテキスト状態決定部140は、結果として、コンテキスト状態情報134をコンテキストベースのスペクトル値符号化部130に提供することができ、コンテキスト状態情報は、例えば、現在の数値コンテキスト値(マッピング規則またはマッピングテーブルの選択のための数値コンテキスト値)の形態または選択されたマッピング規則もしくはマッピングテーブルへの参照の形態をとり得る。コンテキスト状態決定部140は、コンテキスト状態の決定を、連続するフレーム間の基本周波数の変化に適合させるように構成されている。したがって、コンテキスト状態決定部は、連続するオーディオフレーム間の基本周波数の変化に関する情報を評価することができる。連続するフレーム間の基本周波数の変化に関するこの情報は、例えば、周波数領域表現提供部120によって使用されるタイムワープ情報122に基づくものであってもよい。
【0048】
したがって、コンテキスト状態情報134の導出が2つのオーディオフレーム間の基本周波数の変動に適合されるため、オーディオ信号符号化器は、経時変化する基本周波数または経時変化するピッチを含むオーディオ信号部分が処理対象である場合、特に高いコーディング効率を実現することがきる。したがって、コンテキストベースのスペクトル値符号化部130によって使用されるコンテキストは、基本周波数が1つのオーディオフレームから次のオーディオフレームへ(すなわち、2つのオーディオフレーム間で)変化する場合に起こる周波数領域表現124の(周波数に関する)スペクトル圧縮または(周波数に関する)スペクトル拡張に良好に適合される。その結果、コンテキスト状態情報134は、基本周波数が変化した場合であっても周波数領域表現124に概して良好に適合され、コンテキストベースのスペクトル値符号化部のコーディング効率が良好となる。これに対し、コンテキスト状態が基本周波数の変化に適合されない場合、コンテキストは、基本周波数が変化する状況においては不適切なものとなり、したがってコーディング効率が大きく低下することが分かっている。
【0049】
したがって、オーディオ信号符号化器100は、典型的には、基本周波数が変化する状況において、コンテキストベースのスペクトル値符号化を用いた従来のオーディオ信号符号化器よりも性能面で優れているということができる。
【0050】
ここで、連続するフレーム間の(すなわち、第1のフレームから第2の次のフレームへの)基本周波数の変化にコンテキスト状態の決定を適合させる方法には、多くの異なる実施例が存在するという点に留意されたい。例えば、エントリが周波数領域表現124のスペクトル値(または、より厳密にはその内容)から定義されるかあるいは導出されるコンテキストメモリ構造を、コンテキスト状態を示す現在の数値コンテキスト値が導出される前に、周波数において伸長または圧縮してもよい。このような概念については、後に詳述する。しかし、代わりに、エントリが周波数領域表現124に基づいているコンテキストメモリ構造のエントリからコンテキスト状態情報134を導出するために、アルゴリズムを変化させる(あるいは適合させる)ことも可能である。例えば、このような周波数スケーリングされていないコンテキストメモリ構造のどのエントリを考慮するかについて調整することができるが、その方法については本明細書では詳しく記載しない。
2.図1bによるオーディオ信号復号器
図1bは、オーディオ信号復号器150のブロック模式図を示す。
【0051】
オーディオ信号復号器150は、符号化されたスペクトル表現および符号化されたタイムワープ情報を含み得る符号化されたオーディオ信号表現152を受信するように構成されている。オーディオ信号復号器150は、復号されたオーディオ信号表現154を符号化されたオーディオ信号表現152に基づいて提供するように構成されている。
【0052】
オーディオ信号復号器150は、符号化されたスペクトル表現のコードワードを受信し、これに基づいて、復号されたスペクトル値162を提供するように構成されたコンテキストベースのスペクトル値復号部160を備える。さらに、コンテキストベースのスペクトル値復号部160は、例えば、選択されたマッピング規則の現在の数値コンテキスト値の形態または選択されたマッピング規則への参照の形態をとり得るコンテキスト状態情報164を受信するように構成されている。コンテキストベースのスペクトル値復号部160は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態(コンテキスト状態情報164によって示され得る)に応じて復号して、復号されたスペクトル値162を取得するように構成されている。オーディオ信号復号器150はまた、1つ以上前に復号されたスペクトル値162に応じて現在のコンテキスト状態を決定するように構成されたコンテキスト状態決定部170も備える。オーディオ信号復号器150はまた、所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値復号部によって提供される復号されたスペクトル値162の集合に基づいて、タイムワープされた時間領域表現182を提供するように構成されたタイムワーピング周波数領域−時間領域変換部180も備える。タイムワーピング周波数領域−時間領域変換部180は、タイムワープされた時間領域表現182が復号されたオーディオ信号表現154を構成する(あるいは同等に、後処理部が使用される場合は、復号されたオーディオ信号表現のベースを形成する)ように、タイムワープされた時間領域表現182の提供を、符号化されたオーディオ信号表現152に含まれる符号化されたタイムワープ情報によって示される所望のタイムワープに適合させるために、タイムワープ情報184を受信するよう構成されている。
【0053】
タイムワーピング周波数領域−時間領域変換部180は、例えば、所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値復号部160によって提供される復号されたスペクトル値162の集合に基づいて、所与のオーディオフレームの時間領域表現を提供するように構成された周波数領域−時間領域変換部を備え得る。タイムワーピング周波数領域−時間領域変換部はまた、当該所与のオーディオフレームの時間領域表現またはその処理されたバージョンを、タイムワープ情報184に応じて再サンプリングして、当該所与のオーディオフレームの再サンプリングされた時間領域表現182を取得するように構成されたタイムワープ再サンプリング部も備え得る。
【0054】
さらに、コンテキスト状態決定部170は、連続するオーディオフレーム間の(すなわち、第1のオーディオフレームから第2の次のオーディオフレームへの)基本周波数の変化にコンテキスト状態(コンテキスト状態情報164によって示される)の決定を適合させるように構成されている。
【0055】
オーディオ信号復号器150は、オーディオ信号符号化器100に関して既に述べた知見に基づいている。具体的には、オーディオ信号復号器は、コンテキスト状態(および、ひいては、異なるスペクトル値が出現する統計的確率に関してコンテキストベースのスペクトル値復号部160によって用いられる仮定)が当該コンテキスト情報を用いて復号される現在のオーディオフレームのスペクトルに、少なくとも概して良好に適合されるように、コンテキスト状態の決定を連続するオーディオフレーム間の基本周波数の変化に適合させるよう構成されている。したがって、当該現在のオーディオフレームのスペクトル値を符号化するコードワードは、特に短くなり得る。なぜなら、コンテキスト状態決定部170によって提供されたコンテキスト状態情報に応じて選択された選択済みのコンテキストと復号されるスペクトル値との間に良好な一致があれば、一般に、コードワードは比較的短くなり、これにより、ビットレート効率が良好となるからである。
【0056】
さらに、コンテキスト状態決定部170は、効率的に実現することができる。なぜなら、タイムワーピング周波数領域−時間領域変換部により使用される、符号化されたオーディオ信号表現152に含まれるタイムワープ情報184を、連続するオーディオフレーム間の基本周波数の変化に関する情報として、あるいは、連続するオーディオフレーム間の基本周波数の変化に関する情報を導出するために、コンテキスト状態決定部170によって再使用することができるからである。
【0057】
したがって、コンテキスト状態の決定を連続するフレーム間の基本周波数の変化に適合させるのに、追加の副情報すら必要とされない。したがって、オーディオ信号復号器150により、追加の副情報を一切必要とすることなく、コンテキストベースのスペクトル値復号のコーディング効率が向上し(そして、符号化器100側での符号化効率の向上が可能となり)、これにより、ビットレート効率が著しく向上する。
【0058】
さらに、連続するフレーム間の(すなわち、第1のオーディオフレームから第2の次のオーディオフレームへの)基本周波数の変化にコンテキスト状態の決定を適合させるために異なる概念を用いることができるという点に留意されたい。例えば、エントリが復号されたスペクトル値162に基づいているコンテキストメモリ構造を、コンテキスト状態決定部170によってコンテキスト状態情報164が周波数スケーリングされたコンテキストメモリ構造から導出される前に、例えば、周波数スケーリング(例えば、周波数伸長または周波数圧縮)を用いて適合させることができる。しかし、代わりに、コンテキスト状態情報164を導出するためにコンテキスト状態決定部170によって異なるアルゴリズムが使用され得る。例えば、所与のコードワード周波数インデックスを有するコードワードの復号のためのコンテキスト状態を決定するためにコンテキストメモリ構造のどのエントリを使用するかについて適合させることができる。後者の概念は、本明細書で詳しく記載されていないが、本発明によるいくつかの実施形態において適用され得ることは言うまでもない。また、基本周波数の変化を決定するために異なる概念が適用され得る。
3.図2aによるオーディオ信号符号化器
図2aは、本発明の一実施形態によるオーディオ信号符号化器200のブロック模式図を示す。尚、図2によるオーディオ信号符号化器200は、図1aによるオーディオ信号符号化器100と非常に類似し得るため、同一の手段および信号には同一の参照符号を付し、重複する詳細な説明は省略する。
【0059】
オーディオ信号符号化器200は、入力オーディオ信号110を受信し、これに基づいて、符号化されたオーディオ信号表現112を提供するように構成されている。任意には、オーディオ信号符号化器200はまた、外部で生成されたタイムワープ情報214を受信するようにも構成されている。
【0060】
オーディオ信号符号化器200は、周波数領域表現提供部120を備え、周波数領域表現提供部120の機能は、オーディオ信号符号化器100の周波数領域表現提供部120の機能と同一であってもよい。周波数領域表現提供部120は、入力オーディオ信号110のタイムワープされたバージョンを表す周波数領域表現を提供し、この周波数領域表現を124で示す。オーディオ信号符号化器200はまた、コンテキストベースのスペクトル値符号化部130およびコンテキスト状態決定部140も備え、これらは、オーディオ信号符号化器100に関して述べたように動作する。したがって、コンテキストベースのスペクトル値符号化部130は、コードワード(例えば、acod_m)を提供し、各コードワードは、符号化されたスペクトル表現の1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を表す。
【0061】
オーディオ信号符号化器は、オーディオフレーム中の基本周波数の変化、および/または入力オーディオ信号110の基本周波数の時間変遷、および/または入力オーディオ信号110のピッチの時間変遷を補償するために、入力オーディオ信号110を受信し、これに基づいて、例えば、周波数領域表現提供部120によって入力オーディオ信号110に適用されるタイムワープを示すタイムワープコンター情報222を提供するように構成された、タイムワープ分析部または基本周波数分析部またはピッチ分析部220を任意に備える。オーディオ信号符号化器200はまた、符号化されたタイムワープ情報226をタイムワープコンター情報222に基づいて提供するように構成されたタイムワープコンター符号化部224も備える。符号化されたタイムワープ情報226は、好ましくは、符号化されたオーディオ信号表現112に含められ、例えば、(符号化された)タイムワープ比値「tw_ratio[i]」の形態をとり得る。
【0062】
さらに、タイムワープコンター情報222は、周波数領域表現提供部120およびコンテキスト状態決定部140に提供され得る点に留意されたい。
【0063】
オーディオ信号符号化器200は、入力オーディオ信号110またはその前処理されたバージョンを受信し、心理音響分析を実行して、例えば、時間マスキング効果および/または周波数マスキング効果を測定するように構成された心理音響モデル処理部228を更に備え得る。したがって、心理音響モデル処理部228は、例えば、周波数領域オーディオ符号化器に関して周知であるような、入力オーディオ信号の異なる周波数帯域の心理音響的な重要性を表す制御情報230を提供することができる。
【0064】
以下に、周波数領域表現提供部120の信号経路について簡単に説明する。周波数領域表現提供部120は、任意の前処理部120aを含み、前処理部120aは、入力オーディオ信号110を任意には前処理して、入力オーディオ信号110の前処理されたバージョン120bを提供することができる。周波数領域表現提供部120はまた、入力オーディオ信号110またはその前処理されたバージョン120bをサンプリング位置計算部120eから受信されるサンプリング位置情報120dに応じてサンプリングまたは再サンプリングするように構成されたサンプリング部/再サンプリング部も備える。したがって、サンプリング部/再サンプリング部120cは、時変サンプリングまたは再サンプリングを入力オーディオ信号110(またはその前処理されたバージョン120b)に適用することができる。このような時変サンプリング(有効サンプル点間の時間距離が時間的に変動する)を適用することにより、入力オーディオ信号110と比較してピッチまたは基本周波数の時間変動が低減した、サンプリングまたは再サンプリングされた時間領域表現120fが取得される。サンプリング位置は、タイムワープコンター情報222に応じてサンプリング位置計算部120eによって計算される。周波数領域表現提供部120はまた、ウィンドウ処理部120gも備え、ウィンドウ処理部120gは、サンプリング部または再サンプリング部120cによって提供されたサンプリングまたは再サンプリングされた時間領域表現120fのウィンドウ処理を行うように構成されている。ウィンドウ処理は、ブロッキングアーチファクト(ブロッキング副作用)を低減または除去し、これにより、オーディオ信号復号器において円滑な重複−加算演算を可能にするために行われる。周波数領域表現提供部120はまた、時間領域−周波数領域変換部120iも備え、時間領域−周波数領域変換部120iは、ウィンドウ処理され、サンプリングされた/再サンプリングされた時間領域表現120hを受信し、これに基づいて、例えば、入力オーディオ信号110の1つのオーディオフレームにつきスペクトル係数の1つの集合を含み得る(入力オーディオ信号のオーディオフレームは、例えば、重複していても重複していなくてもよく、重複オーディオフレームの場合のいくつかの実施形態においては、およそ50%の重複が好ましい)周波数領域表現120jを提供するように構成されている。しかし、いくつかの実施形態では、1つのオーディオフレームに対してスペクトル係数の複数の集合が提供され得る点に留意されたい。
【0065】
周波数領域表現提供部120は、時間領域雑音整形および/または長期予測および/またはその他の形態のスペクトル後処理を実行して、これにより、後処理された周波数領域表現120lを取得するように構成されたスペクトル処理部120kを任意には備える(備えてもよい)。
【0066】
周波数領域表現提供部120は、スケーリング部/量子化部120mを任意には備え、スケーリング部/量子化部120mは、例えば、心理音響モデル処理部228によって提供された制御情報230に応じて、周波数領域表現120jまたはその後処理されたバージョン120lの異なる周波数ビン(または周波数帯域)をスケーリングするように構成され得る。したがって、周波数ビン(または複数の周波数ビンを含む周波数帯域)を、例えば、心理音響的な重要性が高い周波数ビン(または周波数帯域)が、実質上、コンテキストベースのスペクトル値符号化部によって高精度に符号化され、心理音響的な重要性が低い周波数ビン(または周波数帯域)が低精度で符号化されるように、心理音響的な重要性に応じてスケーリングすることができる。さらに、制御情報230は、任意には、ウィンドウ処理部、時間領域−周波数領域変換部および/またはスペクトル後処理部のパラメータを調整し得る点に留意されたい。また、制御情報230は、当業者に公知であるように、符号化されたオーディオ信号表現112に符号化された形態で含めることができる。
【0067】
オーディオ信号符号化器200の機能に関し、タイムワープ(不均一な時変サンプリングまたは再サンプリングという意味のタイムワープ)は、サンプリング部/再サンプリング部120cによってタイムワープコンター情報220に応じて適用されるということができる。したがって、時変サンプリング/再サンプリングを実行しなかったらスペクトルにスミアを生じさせることになる(スミアスペクトルを発生させることになる)ピッチの時間変動を有する入力オーディオ信号が存在する場合であっても、顕著なスペクトルのピークおよび谷を有する周波数領域表現120jを実現することができる。加えて、コンテキストベースのスペクトル値符号化部130による使用されるコンテキスト状態の導出は、連続するオーディオフレーム間の基本周波数の変化に応じて適合化され、これにより、上述したように、コーディング効率が特に高くなる。さらに、サンプリング部/再サンプリング部120cのためのサンプリング位置の計算およびコンテキスト状態の決定の適合の両方のベースとなるタイムワープコンター情報222は、タイムワープコンター情報222を示す符号化されたタイムワープ情報226が、符号化されたオーディオ信号表現112に含められるように、タイムワープコンター符号化部224を用いて符号化される。したがって、符号化されたオーディオ信号表現112により、符号化された入力オーディオ信号110を効率的に復号する場合に必要となる情報が、オーディオ信号復号器側で提供される。
【0068】
さらに、オーディオ信号符号化器200の各機能部は、オーディオ信号復号器240の各機能部と実質的に逆の機能を果たし得るという点に留意されたい。このことについては、図2bを参照して後述する。さらに、本明細書全体を通してオーディオ信号復号器の機能に関する詳細な記述を参照されたい。これにより、オーディオ信号復号器の理解が可能となる。
【0069】
オーディオ信号復号器およびその個々の機能部については、大幅な変形が可能であるという点にも留意されたい。例えば、サンプリング/再サンプリング、ウィンドウ処理および時間領域−周波数領域変換といったいくつかの機能を組み合わせることができる。さらに、必要な場合には、追加の処理ステップを導入してもよい。
【0070】
さらに、当然ながら、符号化されたオーディオ信号表現に、所望に応じてあるいは必要に応じて、追加の副情報を含ませるようにしてもよい。
4.図2bによるオーディオ信号復号器
図2bは、本発明の一実施形態によるオーディオ信号復号器240のブロック模式図を示す。オーディオ信号復号器240は、図1bによるオーディオ信号復号器150と非常に類似し得るため、同一の手段および信号には同一の参照符号を付し、重複する詳細な説明は省略する。
【0071】
オーディオ信号復号器240は、符号化されたオーディオ信号表現152を、例えば、ビットストリームの形態で受信するように構成されている。符号化されたオーディオ信号表現152は、符号化されたスペクトル表現を、例えば、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を表すコードワード(例えば、acod_m)の形態で含む。符号化されたオーディオ信号表現152はまた、符号化されたタイムワープ情報も含む。さらに、オーディオ信号復号器240は、復号されたオーディオ信号表現154、例えば、オーディオコンテンツの時間領域表現を提供するように構成されている。
【0072】
オーディオ信号復号器240は、符号化されたオーディオ信号表現152からスペクトル値を表すコードワードを受信し、これに基づいて、復号されたスペクトル値162を提供するように構成されたコンテキストベースのスペクトル値復号部160を備える。さらに、オーディオ信号復号器240はまた、コンテキスト状態情報164をコンテキストベースのスペクトル値復号部160に提供するように構成されたコンテキスト状態決定部170も備える。オーディオ信号復号器240はまた、復号されたスペクトル値162を受信し、復号されたオーディオ信号表現154を提供するタイムワーピング周波数領域−時間領域変換部180も備える。
【0073】
オーディオ信号復号器240はまた、符号化されたオーディオ信号表現152に含まれる符号化されたタイムワープ情報を受信し、これに基づいて、復号されたタイムワープ情報254を提供するように構成されたタイムワープ計算部(またはタイムワープ復号部)250も備える。符号化されたタイムワープ情報は、例えば、基本周波数またはピッチの時間変動を示すコードワード「tw_ratio[i]」を含み得る。復号されたタイムワープ情報254は、例えば、ワープコンター情報の形態をとり得る。詳しく後述するように、例えば、復号されたタイムワープ情報254は、値「warp_value_tbl[tw_ratio[i]]」または値prel[n]を含み得る。任意には、オーディオ信号復号器240はまた、復号されたタイムワープ情報254からタイムワープコンター情報258を導出するように構成されたタイムワープコンター計算部256も備える。タイムワープコンター情報258は、例えば、コンテキスト状態決定部170およびタイムワーピング周波数領域−時間領域変換部180のための入力情報として機能し得る。
【0074】
以下に、タイムワーピング周波数領域−時間領域変換部に関する詳細の一部について説明する。同変換部180は、復号されたスペクトル値162をコンテキストベースのスペクトル値復号部160から受信し、復号されたスペクトル値162の逆量子化および/または再スケーリングされたバージョン180bを提供するように構成され得る逆量子化部/再スケーリング部180aを任意には備え得る。例えば、逆量子化部/再スケーリング部180aは、オーディオ信号符号化器200の任意のスケーリング部/量子化部120mの演算と少なくともおよそ逆の動作を行うように構成され得る。したがって、任意の逆量子化部/再スケーリング部180aは、制御情報230に対応し得る制御情報を受信することができる。
【0075】
タイムワーピング周波数領域−時間領域変換部180は、復号されたスペクトル値162または逆量子化/再スケーリングされたスペクトル値180bを受信し、これに基づいて、スペクトル前処理されたスペクトル値180dを提供するように構成されたスペクトル前処理部180cを任意には備える(備えてもよい)。例えば、スペクトル前処理部180cは、オーディオ信号符号化器200のスペクトル後処理部120kと比較して逆の動作を行うことができる。
【0076】
タイムワーピング周波数領域−時間領域変換部180はまた、復号されたスペクトル値162、逆量子化/再スケーリングされたスペクトル値180bまたはスペクトル前処理されたスペクトル値180dを受信し、これに基づいて、時間領域表現180fを提供するように構成された周波数領域−時間領域変換部180eも備える。例えば、周波数領域−時間領域変換部は、逆スペクトル領域−時間領域変換、例えば、逆修正離散コサイン変換(IMDCT)を実行するように構成され得る。周波数領域−時間領域変換部180eは、例えば、復号されたスペクトル値の1つの集合に基づいて、あるいは、復号されたスペクトル値の複数の集合に基づいて、符号化されたオーディオ信号のオーディオフレームの時間領域表現を提供し得る。ただし、符号化されたオーディオ信号のオーディオフレームは、例えば、ある場合においては、時間において重複していてもよい。しかしながら、他の場合においては、オーディオフレームは、時間において重複していなくてもよい。
【0077】
タイムワーピング周波数領域−時間領域変換部180はまた、時間領域表現180fをウィンドウ処理し、周波数領域−時間領域変換部180eによって提供された時間領域表現180fに基づいて、ウィンドウ処理された時間領域表現180hを提供するように構成されたウィンドウ処理部180gも備える。
【0078】
タイムワーピング周波数領域−時間領域変換部180はまた、ウィンドウ処理された時間領域表現180hを再サンプリングし、これに基づいて、ウィンドウ処理および再サンプリングされた時間領域表現180jを提供するように構成された再サンプリング部180iも備える。再サンプリング部180iは、サンプリング位置情報180kをサンプリング位置計算部180lから受信するように構成されている。したがって、再サンプリング部180iは、符号化されたオーディオ信号表現の各フレームのウィンドウ処理および再サンプリングされた時間領域表現180jを提供し、ここで、連続するフレームは重複していてもよい。
【0079】
したがって、重複器/加算器180mは、符号化されたオーディオ信号表現152の連続するオーディオフレームのウィンドウ処理および再サンプリングされた時間領域表現180jを受信し、また、連続するオーディオフレーム間の平滑な移行を実現するために、当該ウィンドウ処理および再サンプリングされた時間領域表現180jを重複させて加算する(重複加算(オーバーラップ加算)する)。
【0080】
タイムワーピング周波数領域−時間領域変換部は、重複器/加算器180mによって提供された合成オーディオ信号180nに基づいて後処理を実行するように構成された時間領域後処理部180oを任意には備える(備えてもよい)。
【0081】
タイムワープコンター情報258は、コンテキスト状態情報164の導出をタイムワープコンター情報258に応じて適合させるように構成されたコンテキスト状態決定部170のための入力情報として機能する。さらに、タイムワーピング周波数領域−時間領域変換部180のサンプリング位置計算部180lはまた、タイムワープコンター情報を受信し、タイムワープコンター情報258に基づいてサンプリング位置情報180kを提供し、これにより、再サンプリング部180iによって実行される時変再サンプリングをタイムワープコンター情報によって示されるタイムワープコンターに応じて適合させる。したがって、タイムワープコンター情報258によって示されるタイムワープコンターに応じて、時間領域表現180fによって示される時間領域信号にピッチ変動が導入される。したがって、著しい経時ピッチ変動(または基本周波数の著しい経時変化)を有するオーディオ信号の時間領域表現180jを、顕著なピークおよび谷を有するスパーススペクトル180dに基づいて提供することができる。このようなスペクトルは、高いビットレート効率で符号化が可能であり、その結果、符号化されたオーディオ信号表現152に必要とされるビットレートが比較的低くなる。
【0082】
さらに、コンテキスト(または、より一般には、コンテキスト状態情報164の導出)はまた、コンテキスト状態決定部170を用いてタイムワープコンター情報258に応じて適合される。したがって、符号化されたタイムワープ情報252は、2度再使用され、また、スパーススペクトルの符号化を可能にすること、および、タイムワープが存在する場合の、または、基本周波数が時間的に変動する場合の特定のスペクトル特性へのコンテキスト状態情報の適合を可能にすることにより、コーディング効率の向上に寄与する。
【0083】
オーディオ信号符号化器240の各機能部の機能に関するさらなる詳細については後述する。
5.図2cによる算術符号化部
以下に、オーディオ信号符号化器100またはオーディオ信号符号化器200においてコンテキスト状態決定部140と組み合わせたコンテキストベースのスペクトル値符号化部130の代わりとなり得る算術符号化部290について説明する。算術符号化部290は、スペクトル値291(例えば、周波数領域表現124のスペクトル値)を受信し、これらのスペクトル値291に基づいてコードワード292a、292bを提供するように構成されている。
【0084】
換言すれば、算術符号化部290は、例えば、周波数領域オーディオ表現124の後処理、スケーリング、および量子化された複数のスペクトル値291を受信するように構成され得る。算術符号化部は、スペクトル値から最上位ビットプレーンmを抽出するように構成された最上位ビットプレーン抽出部290aを備える。なお、ここで、最上位ビットプレーンは、スペクトル値の最上位ビットから1または複数のビット(例えば、最上位ビットから2または3ビット)を含むものであってもよい。
【0085】
したがって、最上位ビットプレーン抽出部290aは、スペクトル値の最上位ビットプレーン値290bを提供する。算術符号化部290はまた、最上位ビットプレーン値mを表す算術コードワードacod_m[pki][m]を決定するように構成された第1のコードワード決定部290cも備える。
【0086】
任意には、第1のコードワード決定部290cはまた、例えば、利用可能な下位ビットプレーンの数を示す(ひいては最上位ビットプレーンの数値的重みを示す)1つ以上のエスケープコードワード(本明細書において「ARITH_ESCAPE」によっても示される)も提供し得る。第1のコードワード決定部290cは、累積度数テーブルインデックスpkiを有する(あるいは、これによって参照される)選択された累積度数テーブルを用いて、最上位ビットプレーン値mに対応付けられたコードワードを提供するように構成され得る。
【0087】
どの累積度数テーブルが選択されるべきであるかを決定するために、算術符号化部は、コンテキスト状態決定部140の機能を有し得る状態追跡部290dを好ましくは備える。状態追跡部290dは、例えば、どのスペクトル値が以前に符号化されたかを観察することにより算術符号化部の状態を追跡するように構成されている。状態追跡部290dは、これにより、コンテキスト状態情報134と同等であり得る状態情報290eを、例えば、場合によっては「s」または「t」で示される状態値の形態で提供する(ここで、状態値sは、周波数伸長因子sと混同してはならない)。
【0088】
算術符号化部290はまた、状態情報290eを受信し、選択された累積度数テーブルを示す情報290gをコードワード決定部290cに提供するように構成された累積度数テーブル選択部290fも備える。例えば、累積度数テーブル選択部290fは、64個の累積度数テーブルからなる集合のうちどの累積度数テーブルがコードワード決定部290cによる使用のために選択されるかを示す累積度数テーブルインデックス「pki」を提供し得る。あるいは、累積度数テーブル選択部290fは、選択された累積度数テーブル全体をコードワード決定部290cに提供することができる。よって、コードワード決定部290cは、選択された累積度数テーブルを最上位ビットプレーン値mのコードワードacod_m[pki][m]を提供するために用いることができ、したがって、最上位ビットプレーン値mを符号化する実際のコードワードacod_m[pki][m]は、mの値および累積度数テーブルインデックスpki、ひいては現在の状態情報290eに依存する。コーディング処理および取得されるコードワードのフォーマットのさらなる詳細については後述する。さらに、コンテキスト状態決定部140と同等である状態追跡部290dの動作に関する詳細については後述する。
【0089】
算術符号化部290は、下位ビットプレーン抽出部290hをさらに備え、下位ビットプレーン抽出部290hは、符号化されるスペクトル値の1つ以上が、最上位ビットプレーンのみを用いて符号化可能な値の範囲を上回る場合、スケーリングおよび量子化された周波数領域オーディオ表現291から1つ以上の下位ビットプレーンを抽出するように構成されている。下位ビットプレーンは、所望に応じて1つ以上のビットを含み得る。したがって、下位ビットプレーン抽出部290hは、下位ビットプレーン情報290iを提供する。
【0090】
算術符号化部290はまた、第2のコードワード決定部290jも備え、第2のコードワード決定部290jは、下位ビットプレーン情報290iを受信し、これに基づいて、0個、1個またはそれ以上の下位ビットプレーンの内容を表す0個、1個またはそれ以上のコードワード「acod_r」を提供するように構成されている。第2のコードワード決定部290jは、下位ビットプレーン情報290iから下位ビットプレーンのコードワード「acod_r」を導出するために、算術符号化アルゴリズムまたは他の符号化アルゴリズムを適用するように構成され得る。
【0091】
ここで、下位ビットプレーンの数は、スケーリングおよび量子化されたスペクトル値291の値によって異なり得るため、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的少数であれば下位ビットプレーンが全く存在しない場合があり、現在の符号化対象であるスケーリングおよび量子化されたスペクトル値が中間の範囲のものであれば1つの下位ビットプレーンが存在する場合があり、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的大きい値を有していれば2つ以上の下位ビットプレーンが存在する場合がある点に留意されたい。
【0092】
上記を要約すると、算術符号化部290は、階層型符号化処理を用いて、情報291によって示されるスケーリングおよび量子化されたスペクトル値を符号化するように構成されている。最上位ビットプレーン(例えば、1つのスペクトル値につき1つ、2つまたは3つのビットを含む)が符号化され、最上位ビットプレーン値の算術コードワード「acod_m[pki][m]」が取得される。1つ以上の下位ビットプレーン(下位ビットプレーンのそれぞれが、例えば、1つ、2つまたは3つのビットを含む)が符号化され、1つ以上のコードワード「acod_r」が取得される。最上位ビットプレーンを符号化する際、最上位ビットプレーンの値mは、コードワードacod_m[pki][m]にマッピングされる。算術符号化部170の状態に応じて、すなわち、以前に符号化されたスペクトル値に応じて、値mの符号化のために64個の異なる累積度数テーブルが利用可能である。したがって、コードワード「acod_m[pki][m]」が取得される。さらに、1つ以上の下位ビットプレーンが存在する場合、1つ以上のコードワード「acod_r」が提供され、ビットストリームに含められる。
【0093】
しかしながら、本発明によれば、コンテキスト状態情報134と同等である状態情報290eの導出は、第1のオーディオフレームから次の第2のオーディオフレームへの(すなわち、2つの連続するオーディオフレーム間の)基本周波数の変化に適合される。状態追跡部290dによって実行され得るこの適合に関する詳細については後述する。
6.図2dによる算術復号部
図2dは、図1dによるオーディオ信号復号器150および図2bによるオーディオ信号復号器240においてコンテキストベースのスペクトル値復号部160およびコンテキスト状態決定部170の代わりとなり得る算術復号部295のブロック模式図を示す。
【0094】
算術復号部295は、算術コーディングされたスペクトルデータを例えばコードワード「acod_m」および「acod_r」の形態で含み得る符号化された周波数領域表現296を受信するように構成されている。符号化された周波数領域表現296は、コンテキストベースのスペクトル値復号器160に入力されたコードワードと同等であってもよい。さらに、算術復号部は、コンテキストベースのスペクトル値復号器160によって提供される復号されたスペクトル値162と同等であり得る復号された周波数領域オーディオ表現297を提供するように構成されている。
【0095】
算術復号部295は、最上位ビットプレーン値mを示す算術コードワードacod_m[pki][m]を受信するように構成された最上位ビットプレーン決定部295aを備える。最上位ビットプレーン決定部295aは、算術コードワード「acod_m[pki][m]」から最上位ビットプレーン値mを導出するための複数の、例えば64個の累積度数テーブルからなる集合から1つの累積度数テーブルを使用するように構成され得る。
【0096】
最上位ビットプレーン決定部295aは、コードワード「acod_m」に基づいてスペクトル値の最上位ビットプレーンの値295bを導出するように構成されている。算術復号部295は、スペクトル値の1つ以上の下位ビットプレーンを表す1つ以上のコードワード「acod_r」を受信するように構成された下位ビットプレーン決定部295cをさらに備える。したがって、下位ビットプレーン決定部295cは、1つ以上の下位ビットプレーンの復号された値295dを提供するように構成されている。算術復号器295はまた、スペクトル値の最上位ビットプレーンの復号された値295bおよび当該スペクトル値の1つ以上の下位ビットプレーンの復号された値295b(現在のスペクトル値に対してこのような下位ビットプレーンが利用可能である場合)を受信するように構成されたビットプレーン結合部295eも備える。したがって、ビットプレーン結合部295eは、復号された周波数領域オーディオ表現297の一部であるコーディングされたスペクトル値を提供する。必然的に、算術復号部295は、典型的には、オーディオコンテンツの現在のフレームに対応付けられた復号されたスペクトル値の完全な集合を取得するために複数のスペクトル値を提供するように構成されている。
【0097】
算術復号部295は、算術復号部295の状態を示す状態インデックス295gに応じて、例えば64個の累積度数テーブルのうちの1つを選択するように構成された累積度数テーブル選択部295fをさらに含む。算術復号部295は、以前に復号されたスペクトル値に応じて算術復号部の状態を追跡するように構成された状態追跡部295hをさらに備える。状態追跡部295hは、コンテキスト状態決定部170に対応し得る。状態追跡部295hに関する詳細については後述する。
【0098】
したがって、累積度数テーブル選択部295fは、コードワード「acod_m」に応じて、最上位ビットプレーン値mの復号における適用のために、選択された累積度数テーブルのインデックス(例えば、pki)または選択された累積度数テーブル自体を提供するように構成されている。
【0099】
したがって、算術復号部295は、隣接するスペクトル値の最上位ビットプレーンの値の異なる組み合わせの異なる確率を利用する。コンテキストに応じて、異なる累積度数テーブルが選択され、適用される。換言すれば、以前に復号されたスペクトル値を観察することによって取得される状態インデックス295g(コンテキスト状態情報164と同等であり得る)に応じて、例えば64個の異なる累積度数テーブルを含む集合から異なる累積度数テーブルを選択することにより、スペクトル値間の統計的依存性が利用される。連続するオーディオフレーム間の基本周波数(またはピッチ)の変化に関する情報に応じて、状態インデックス295g(またはコンテキスト状態情報164)の導出を適合させることにより、スペクトルスケーリングが考慮される。
7.コンテキストの適合の概念についての概要
以下に、タイムワープ情報を用いて算術コーダのコンテキストを適合させるという概念についての概要を説明する。
7.1 背景情報
以下に、本発明の理解を容易にするために、いくつかの背景情報を示す。参考文献[3]において、量子化されたスペクトルビンを可逆符号化するためにコンテキスト適合型算術コーダ(例えば、参考文献[5]を参照)が使用されている点に留意されたい。
【0100】
使用されるコンテキストは、このようなコンテキスト適合型算術コーディングのグラフ表現を示す図3aに示されている。図3aにおいて、復号される周波数ビンのコンテキストを決定するために、前のフレームから既に復号されたビンが使用されていることが理解される。ここで、コンテキストおよびコーディングが4−タプルで編成されているか、ライン単位で編成されているか、あるいは他のn−タプル(nは可変)で編成されているかということは記載される発明にとって重要ではないという点に留意されたい。
【0101】
コンテキスト適合型算術コーディングまたは復号を示す図3aを再び参照する。尚、横軸310は時間を示し、縦軸312は周波数を示す。ここで、スペクトル値の4−タプルが、図3aに示すコンテキストに応じて共通のコンテキスト状態を使用して復号されるという点に留意されたい。例えば、時間インデックスkおよび周波数インデックスiを有するオーディオフレームに対応付けられたスペクトル値の4−タプル320の復号のためのコンテキストは、時間インデックスkおよび周波数インデックスi−1を有する第1の4−タプル322、時間インデックスk−1および周波数インデックスi−1を有する第2の4−タプル324、時間インデックスk−1および周波数インデックスiを有する第3の4−タプル326、ならびに時間インデックスk−1および周波数インデックスi+1を有する第4の4−タプル328のスペクトル値に基づいている。周波数インデックスi−1、i、i+1のそれぞれは、時間領域−周波数領域変換または周波数領域−時間領域変換の4つの周波数ビンを示す(あるいは、より厳密には、これらに対応付けられている)という点に留意されたい。したがって、4−タプル320の復号のためのコンテキストは、スペクトル値の4−タプル322、324、326、328のスペクトル値に基づいている。したがって、時間インデックスkを有する現在のオーディオフレームのタプル周波数インデックスiを有するスペクトル値(典型的には、時間インデックスkを有する現在復号されているオーディオフレームのタプル周波数インデックスi−1を有するスペクトル値と組み合わせて)を復号するためのコンテキストを導出するために、時間インデックスk−1を有する、以前のオーディオフレームのタプル周波数インデックスi−1、iおよびi+1を有するスペクトル値が使用される。
【0102】
タイムワープされた変換は、一般に、基本周波数において変動のある高調波信号のためのより優れたエネルギー圧縮をもたらし、これにより、タイムワーピングが適用されない場合に生じる多少スメアリングされた高い部分音(partials)ではなく、はっきりとした高調波構造を示すスペクトルが得られることが分かっている。タイムワーピングのもう1つの他の効果は、連続フレームの平均ローカルサンプリング周波数が異なる可能性によるものである。この効果により、その他の点では高調波構造が一定であるが基本周波数が変化する信号の連続スペクトルが周波数軸に沿って伸長されることが分かっている。
【0103】
図3cの下のグラフ390は、このような例を示している。同図は、2つの連続フレーム(例えば、基本周波数が変化する高調波信号がタイムワープ型修正離散コサイン変換コーダ(TW−MDCTコーダ)によってコーディングされる場合、「最後のフレーム」および「このフレーム」として示されるフレーム)のグラフ(例えば、周波数ビンインデックスの関数としての大きさをdB単位で示す)を含む。
【0104】
対応する相対ピッチ変遷は、高調波ラインの減少する相対ピッチおよび相対ピッチの減少に伴って増加する相対周波数を示す図3bのグラフ370で見られる。
【0105】
これにより、タイムワープアルゴリズム(例えば、タイムワーピングサンプリングまたは再サンプリング)の適用後に高調波ラインの周波数が増加する。現在のフレーム(「このフレーム」としても示す)のこのスペクトルは、最後のフレームのスペクトルのおおよそのコピーであるが、周波数軸392(修正離散コサイン変換の周波数ビンを単位として表示)に沿って伸長されていることがはっきりと分かる。これはまた、過去のフレーム(「最後のフレーム」としても示す)を算術コーダのための(例えば、現在のフレーム(「このフレーム」とも示す)のスペクトル値の復号のための)のコンテキストとして使用した場合、異なる周波数ビンにおいて一致する部分音が生じることになるため、当該コンテキストは準最適となるということも意味することになる。
【0106】
図3cの上のグラフ380は、これ(例えば、コンテキスト依存型算術コーディングを用いたスペクトル値の符号化のビット需要)を、算術コーディング方式よりも通常効果が低いと考えられているハフマン符号化方式と比較して示している。準最適な過去のコンテキスト(例えば、図3cのグラフ390に表される、「最後のフレーム」のスペクトル値によって定義され得る)により、算術コーディング方式は、現在のフレームの部分音が過去のフレームにおいてエネルギーの低い領域に位置している場合、より多くのビットを消費しており、またその逆の場合も同じである。一方、図3cのグラフ380は、コンテキストが良好である場合(これは少なくとも基本波の部分音(fundamental partial tone)については当てはまる)、ビット分布は、ハフマン符号化と比較して低い(例えば、コンテキスト依存型算術コーディングを用いた場合)ことを示している。
【0107】
上記を要約すると、図3bのグラフ370は、相対ピッチコンターの時間変遷の例を示している。横軸372は時間を示し、縦軸374は、相対ピッチprelおよび相対周波数frelの両方を示す。第1の曲線376は相対ピッチの時間変遷を示し、第2の曲線377は相対周波数の時間変遷を示す。相対ピッチは時間と共に減少し、相対周波数は時間と共に増加することが分かる。さらに、以前のフレーム(「最後のフレーム」としても示す)の時間延長378aおよび現在のフレーム(「このフレーム」としても示す)の時間延長378bは、図3bのグラフ370において重複していないという点に留意されたい。しかしながら、一般的には、連続するオーディオフレームの時間延長378a、378bは、重複していてもよい。例えば、重複は約50%であってもよい。
【0108】
次に図3cを参照すると、グラフ390は、2つの連続するフレームのMDCTスペクトルを示す点に注目されたい。横軸392は、周波数を修正離散コサイン変換の周波数ビンを単位として示す。縦軸394は、個々のスペクトルビンの相対的大きさ(デシベル単位)を示す。現在のフレーム(「このフレーム」)のスペクトルのスペクトルピークは、以前のフレーム(「最後のフレーム」)のスペクトルの対応するスペクトルピークに対して、周波数において(周波数依存的に)シフトされることが理解される。したがって、現在のフレームのスペクトルのスペクトルピークは以前のオーディオフレームのスペクトルのスペクトルピークと一致しない(周波数に関して)ので、現在のフレームのスペクトル値のコンテキストベースの符号化のためのコンテキストは、当該コンテキストが以前のオーディオフレームのスペクトル値の元のバージョンに基づくものである場合は、良好に適合されないことが分かっている。よって、スペクトル値のコンテキストベースの符号化のビットレート需要(必要されるビットレート)は、比較的高く、コンテキストベースでないハフマン符号化の場合には、さらに高くなり得る。このことは、図3cのグラフ380で理解される。同グラフにおいて、横軸は周波数(修正離散コサイン変換のビンを単位として)を示し、縦軸384はスペクトル値の符号化に必要とされるビット数を示す。
7.2. 解決法の検討
しかしながら、本発明による実施形態は、上述の問題に対する解決法を提供するものである。ピッチ変動情報を用いて、タイムワープ型修正離散コサイン変換コーダの連続スペクトル間(例えば、連続オーディオフレームのスペクトル間)の周波数伸長因子の近似値を導出することができることが分かっている。この伸長因子を用いて、過去のコンテキスを周波数軸に沿って伸長して、より良好なコンテキストを導出し、したがって1つの周波数ラインをコーディングするために必要なビット数を低減し、コーディング利得を向上させることができることが分かっている。
【0109】
この伸長因子が最後のフレームの平均周波数と現在のフレームの平均周波数との比率に近似している場合、良好な結果が得られることが分かっている。さらに、これは、ライン単位で、あるいは、算術コーダがn−タプルのラインを1つの項目としてコーディングする場合は、タプル単位で行われ得ることが分かっている。
【0110】
換言すれば、コンテキストの伸長は、ライン単位で(すなわち、修正離散コサイン変換の1つの周波数ビンずつ個別に)またはタプル単位で(すなわち、修正離散コサイン変換のタプルずつまたは複数のスペクトルビンの集合ずつ)行われるものであっってもよい。
【0111】
さらに、伸長因子の計算の分解能もまた、実施形態の要件によって異なり得る。
7.3 伸長因子の導出のための例
以下に、伸長因子を導出するためのいくつかの概念について詳細に説明する。参考文献[3]に記載されるタイムワープ型修正離散コサイン変換方法、および、その代わりに、本明細書に記載されるタイムワープ型修正離散コサイン変換方法は、いわゆる平滑なピッチコンターを中間情報として提供する。このような平滑化されたピッチコンター(例えば、配列「warp_contour[]」のエントリまたは配列「new_warp_contour[]」および「past_warp_contour[]」のエントリによって示され得る)は、いくつかの連続フレームにわたる相対ピッチの変遷の情報を含んでいるため、1つのフレーム内の各サンプルについて、相対ピッチの推定値が分かる。このサンプルの相対周波数は、単純に、この相対ピッチの逆数となる。
【0112】
例えば、以下の関係が成り立ち得る。
【0113】
【数1】
【0114】
上記式中、prel[n]は、所与の時間インデックスnについての相対ピッチを示し、この相対ピッチは、短期間の相対ピッチであり得る(時間インデックスnは、例えば、個別のサンプルを示し得る)。さらに、frel[n]は、時間インデックスnについての相対周波数を示し得ると共に、短期間の相対周波数値であり得る。
7.3.1 第1の代替案
そして、1つのフレームk(kは、フレームインデックス)にわたる平均相対周波数は、このフレームk内の全ての相対周波数の算術平均として示され得る。
【0115】
【数2】
【0116】
上記式中、frel,mean,kは、時間フレームインデックスkを有するオーディオフレームにわたる平均相対周波数を示す。Nは、フレームインデックスkを有するオーディオフレームについての時間領域サンプル数を示す。nは、オーディオフレームインデックスkを有する現在のオーディオフレームの時間領域サンプルの時間領域サンプルインデックスn=0〜n=N−1にわたって実行される変数である。frel[n]は、時間領域サンプル時間インデックスnを有する時間領域サンプルに対応付けられたローカル相対周波数値を示す。
【0117】
これより(すなわち、現在のオーディオフレームについてのfrel,mean,kの計算および以前のオーディオフレームについてのfrel,mean,k−1の計算から)、現在のオーディオフレームkの伸長因子sは以下のように導出することができる。
【0118】
【数3】
【0119】
7.3.2 第2の代替案
以下に、伸長因子sの計算に関する別の代替案について説明する。伸長因子sのより簡単かつより正確な近似(例えば、第1の代替案と比較して)は、概して、相対ピッチがほぼ1であり、したがって、相対ピッチと相対周波数との関係がほぼ直線的であり、また相対ピッチを反転させて相対周波数を取得するステップを省略することができることと、平均相対ピッチを使用することとを考慮すればば、得ることができる。
【0120】
【数4】
【0121】
上記式中、prel,mean,kは、時間オーディオフレームインデックスkを有するオーディオフレームについての平均相対ピッチを示す。Nは、時間オーディオフレームインデックスkを有するオーディオフレームの時間領域サンプル数を示す。実行中の変数nは、0〜N−1の値をとり、これにより、現在のオーディオフレームの時間インデックスnを有する時間領域サンプルにわたって実行される。prel[n]は、時間領域インデックスnを有する時間領域サンプルについての(ローカル)相対ピッチ値を示す。例えば、相対ピッチ値prel[n]は、ワープコンター配列「warp_contour[]」のエントリwarp_contour[n]に等しくてもよい。
【0122】
この場合、時間フレームkを有するオーディオフレームの伸長因子sは、以下のように近似することができる。
【0123】
【数5】
【0124】
上記式中、prel,mean,k−1は、時間オーディオフレームインデックスk−1を有するオーディオフレームの平均ピッチ値を示し、変数prel,mean,kは、時間オーディオフレームkを有するオーディオフレームの平均相対ピッチ値を示す。
7.3.3 さらなる代替案
ただし、伸長因子sの計算または推定のために著しく異なる概念が使用され得るという点に留意されたい(ここで、伸長因子sは、典型的には、第1のオーディオフレームと次の第2のオーディオフレームとの間の基本周波数の変化も示している)。例えば、第1のオーディオフレームのスペクトルと次の第2のオーディオフレームのスペクトルを、パターン比較概念によって比較し、これにより、伸長因子を導出してもよい。しかしながら、上述のようなワープコンター情報を用いた周波数伸長因子sの計算は、特に計算効率が高いため好ましい選択肢であると思われる。
8.コンテキスト状態の決定に関する詳細
8.1.図4aおよび図4bによる例
以下に、コンテキスト状態の決定に関する詳細について説明する。この目的で、ブロック模式図を図4aに示すコンテキスト状態決定部400の機能について説明する。
【0125】
コンテキスト状態決定部400は、例えば、コンテキスト状態決定部140またはコンテキスト状態決定部170の代わりとなり得る。コンテキスト状態決定部に関する詳細に関してオーディオ信号復号器の場合について以下で説明するが、コンテキスト状態決定部400は、オーディオ信号符号化器との関連においても使用することができる。
【0126】
コンテキスト状態決定部400は、以前に復号されたスペクトル値または以前に符号化されたスペクトル値に関する情報410を受信するように構成されている。加えて、コンテキスト状態決定部400は、タイムワープ情報またはタイムワープコンター情報412を受信する。タイムワープ情報またはタイムワープコンター情報412は、例えば、タイムワープ情報122に等しくてもよく、したがって、連続するオーディオフレーム間の基本周波数の変化を示し得る(少なくとも暗黙的に)。あるいは、タイムワープ情報またはタイムワープコンター情報412は、タイムワープ情報184と同等であってもよく、したがって、連続するフレーム間の基本周波数の変化を示し得る。しかし、タイムワープ情報/タイムワープコンター情報412は、代わりに、タイムワープコンター情報222またはタイムワープコンター情報258と同等であってもよい。一般に、タイムワープ情報/タイムワープコンター情報412は、連続するオーディオフレーム間の周波数変動を直接的にあるいは間接的に示し得るということができる。例えば、タイムワープ情報/タイムワープコンター情報212は、ワープコンターを示すことができ、したがって、配列「warp_contour[]」のエントリを含むことができるか、あるいは時間コンターを示すことができ、したがって配列「time_contour[]」のエントリを含むことができる。
【0127】
コンテキスト状態決定部400はコンテキスト状態値420を提供し、コンテキスト状態値420は、現在のフレームのスペクトル値の符号化または復号に使用されるコンテキストを示すと共に、現在のオーディオフレームのスペクトル値の符号化または復号の適切なマッピング規則を選択するためにコンテキストベースのスペクトル値符号化器またはコンテキストベースのスペクトル復号器によって使用され得る。コンテキスト状態値420は、例えば、コンテキスト状態情報134またはコンテキスト状態情報164と同等であってもよい。
【0128】
コンテキスト状態決定部400は、例えば、配列q[1][]といった予備コンテキストメモリ構造432を提供するように構成された予備コンテキストメモリ構造提供部430を備える。例えば、予備コンテキストメモリ構造提供部430は、図25および図26によるアルゴリズムの機能を実行し、これにより、例えば、配列q[1][]のN/4個のエントリq[1][i](i=0からi=M/4−1の場合)の集合を提供するように構成され得る。
【0129】
一般的に、予備コンテキストメモリ構造提供部430は、エントリ周波数インデックスiを有するエントリが、周波数インデックスiを有する(1つの)スペクトル値または共通の周波数インデックスiを有するスペクトル値の集合に基づくように、予備コンテキストメモリ構造432のエントリを提供するように構成され得る。しかしながら、予備コンテキストメモリ構造提供部430は、予備コンテキストメモリ構造432のエントリの周波数インデックスと、当該予備コンテキストメモリ構造432のエントリが基づいている1つ以上の符号化されたスペクトル値または復号されたスペクトル値の周波数インデックスとの間に、一定の周波数インデックス関係が存在するように、予備コンテキストメモリ構造432を提供するように構成されているのが好ましい。例えば、上記所定のインデックス関係は、予備コンテキストメモリ構造のエントリq[1][i]が時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックスi(またはi−const(constは定数))を有する周波数ビンのスペクトル値に基づくようなものであってもよい。あるいは、予備コンテキストメモリ構造432のエントリq[1][i]は、時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックス2i−1および2iを有する周波数ビンのスペクトル値(または周波数ビンインデックスのシフトされた領域)に基づいていてもよい。しかし、その代わりに、予備コンテキストメモリ構造432のインデックスq[1][i]は、時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックス4i−3、4i−2、4i−1および4iを有する周波数ビンのスペクトル値(または周波数ビンインデックスのシフトされた領域)に基づいていてもよい。したがって、予備コンテキストメモリ構造432の各エントリは、予備コンテキストメモリ構造432の設定の基礎となる、オーディオフレームの所定の周波数インデックスのスペクトル値または所定の周波数インデックスのスペクトル値の集合に対応付けることができる。
【0130】
コンテキスト状態決定部400はまた、タイムワープ情報/タイムワープコンター情報412を受信し、これに基づいて、周波数伸長因子情報436を提供するように構成された周波数伸長因子計算部434も備える。例えば、周波数伸長因子計算部434は、配列warp_contour[]のエントリから相対ピッチ情報prel[n](相対ピッチ情報prel[n]は、例えば、配列warp_contour[]の対応するエントリと等しくてもよい)を導出するように構成され得る。さらに、周波数伸長因子計算部434は、上記の式のうち1つを適用して、2つの連続するオーディオフレームの相対ピッチ情報prelから周波数伸長因子情報sを導出するように構成され得る。一般的に、周波数伸長因子計算部434は、周波数伸長因子情報(例えば、値s、あるいは、同等に、値m_ContextUpdateRatio)を、周波数伸長因子情報が、以前に符号化または復号されたオーディオフレームと、現在のコンテキスト状態値420を使用して符号化または復号される現在のオーディオフレームとの間の基本周波数の変化を示すように、提供するよう構成され得る。
【0131】
コンテキスト状態決定部400はまた、予備コンテキストメモリ構造432を受信し、これに基づいて、周波数スケーリングされたコンテキストメモリ構造を提供するように構成された周波数スケーリング済みコンテキストメモリ構造提供部も備える。例えば、周波数スケーリングされたコンテキストメモリ構造は、予備コンテキストメモリ構造432を示す配列の更新されたバージョンであり得る、配列q[1][]の更新されたバージョンによって表すことができる。
【0132】
周波数スケーリング済みコンテキストメモリ構造提供部は、周波数スケーリングされたコンテキストメモリ構造を周波数スケーリングを用いて予備コンテキストメモリ構造432から導出するように構成され得る。この周波数スケーリングにおいて、予備コンテキストメモリ構造432のエントリインデックスiを有するエントリの値を、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスjを有するエントリにコピーするかあるいはシフトさせてもよい(ここで、周波数インデックスiは、周波数インデックスjと異なっていてもよい)。例えば、予備コンテキストメモリ構造432の内容の周波数伸長が行われる場合、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj1を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi1を有するエントリの値に設定し、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj2を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi2を有するエントリの値に設定してもよいい(ここで、j2はi2よりも大きく、j1はi1よりも大きい)。対応する周波数インデックス(例えば、j1とi1、またはj2とi2)間の比は、所定の値をとり得る(丸め誤差の場合を除く)。同様に、予備コンテキストメモリ構造432によって示される内容の周波数圧縮が周波数スケーリング済みコンテキストメモリ構造提供部438によって実行される予定である場合、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj3を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi3を有するエントリの値に設定し、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj4を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi4を有するエントリの値に設定してもよい。この場合、エントリインデックスj3は、エントリインデックスi3よりも小さく、エントリインデックスj4は、エントリインデックスi4よりも小さくてもよい。さらに、対応するエントリインデックス間(例えば、エントリインデックスj3とi3との間、またはエントリインデックスj4とi4との間)の比は、一定であってもよく(丸め誤差の場合を除く)、また、周波数伸長因子情報436によって決定されてもよい。周波数スケーリング済みコンテキストメモリ構造提供部440の動作のさらなる詳細については後述する。
【0133】
コンテキスト状態決定部400はまた、周波数スケーリングされたコンテキストメモリ構造440に基づいてコンテキスト状態値420を提供するように構成されたコンテキスト状態値提供部442も備える。例えば、コンテキスト状態値提供部442は、周波数インデックスl0を有するスペクトル値の復号のためのコンテキストを示すコンテキスト状態値420を、周波数スケーリングされたコンテキストメモリ構造440のエントリ(当該エントリの周波数インデックスは周波数インデックスl0と所定の関係にある)に基づいて提供するように構成され得る。例えば、コンテキスト状態値提供部442は、周波数インデックスl0を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態値420を、周波数スケーリングされたコンテキストメモリ構造440の周波数インデックスl0−1、l0およびl0+1を有するエントリに基づいて提供するように構成され得る。
【0134】
したがって、コンテキスト状態決定部400は、周波数インデックスl0を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態値420を、周波数スケーリング済みコンテキストメモリ構造提供部438によって周波数伸長が行なわれる場合には、予備コンテキストメモリ構造432のl0−1よりも小さい周波数インデックス、l0よりも小さい周波数インデックスおよびl0+1よりも小さい周波数インデックスをそれぞれ有するエントリに基づいて、そして、周波数スケーリング済みコンテキストメモリ構造提供部438によって周波数圧縮が行われる場合には、予備コンテキストメモリ構造432のl0−1よりも大きい周波数インデックス、l0よりも大きい周波数インデックスおよびl0+1よりも大きい周波数インデックスをそれぞれ有するエントリに基づいて、有効に提供し得る。
【0135】
このように、コンテキスト状態決定部400は、周波数伸長因子436に応じて周波数スケーリングされた(したがって基本周波数の経時変動を示す)、予備コンテキストメモリ構造432の周波数スケーリングされたバージョンである周波数スケーリングされたコンテキストメモリ構造に基づいてコンテキスト状態値420を提供することにより、連続するフレーム間の基本周波数の変化に適合させてコンテキストの決定を行うように構成されている。
【0136】
図4bは、本発明の一実施形態によるコンテキスト状態の決定のグラフ表現を示す。図4bは、予備コンテキストメモリ構造提供部430によって提供される予備コンテキストメモリ構造432のエントリの概略表現を参照符号450において示す。例えば、周波数インデックスi1+1を有するエントリ450a、周波数インデックスi2+2を有するエントリ450bおよびエントリ450cが表示されている。しかしながら、参照符号452において示す周波数スケーリングされたコンテキストメモリ構造440を提供する際、周波数インデックスi1を有するエントリ452aは、周波数インデックスi1+1を有するエントリ450aの値をとるように設定され、周波数インデックスi2−1を有するエントリ452cは、周波数インデックスi2+2を有するエントリ450cの値をとるように設定される。同様に、周波数スケーリングされたコンテキストメモリ構造440のその他のエントリは、予備コンテキストメモリ構造430のエントリに応じて設定することができ、一般的には、周波数圧縮の場合、予備コンテキストメモリ構造のエントリのいくつかは破棄され、また、一般的には、周波数伸長の場合、予備コンテキストメモリ構造432のエントリのいくつかは、周波数スケーリングされたコンテキストメモリ構造440の2つ以上のエントリにコピーされる。
【0137】
さらに、図4bは、時間インデックスkを有するオーディオフレームのスペクトル値の復号のためのコンテキスト状態が周波数スケーリングされたコンテキストメモリ構造440のエントリ(参照符号452で示される)に基づいてどのように決定されるかを示している。例えば、時間インデックスkを有するオーディオフレームの周波数インデックスi1を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態(例えば、コンテキスト状態値420によって表される)を決定する際、時間インデックスkを有するオーディオフレームの周波数インデックスi1−1を有するコンテキスト値および時間インデックスk−1と周波数インデックスi1−1、i1、i1+1とを有するオーディオフレームの周波数スケーリングされたコンテキストメモリ構造のエントリが評価される。したがって、時間インデックスk−1と周波数インデックスi1−1、i1+1、i1+2とを有するオーディオフレームの予備コンテキストメモリ構造のエントリが、時間インデックスkと周波数インデックスi1とを有するオーディオフレームのスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキストを決定するために有効に評価される。したがって、コンテキスト状態の決定に使用されるスペクトル値の環境が、予備コンテキストメモリ構造(またはその内容)の周波数伸長または周波数圧縮によって有効に変更される。
8.2.図4cによる実施例
以下に、タプル単位の処理を示す図4cを参照して、4−タプルを用いた算術コーダのコンテキストのマッピングの例について説明する。
【0138】
図4cは、周波数スケーリングされたコンテキストメモリ構造(例えば、周波数スケーリングされたコンテキストメモリ構造440)を予備コンテキストメモリ構造(例えば、予備コンテキストメモリ構造432)に基づいて取得するためのアルゴリズムの疑似プログラムコード表現を示す。
【0139】
図4cによるアルゴリズム460は、予備コンテキストメモリ構造432が配列「self−>base.m_qbuf」に格納されると仮定する。さらに、アルゴリズム460は、周波数伸長因子情報436が変数「self−>base.m_ContextUpdateRatio」に格納されると仮定する。
【0140】
第1のステップ460aにおいて、変数の数を初期化する。具体的には、ターゲットタプルインデックス変数「nLinTupleIdx」およびソースタプルインデックス変数「nWarpTupleIdx」を0に初期化する。さらに、リオーダバッファ配列「Tqi4」を初期化する。
【0141】
ステップ460bにおいて、予備コンテキストメモリ構造「self−>base.m_qbuf」のエントリをリオーダバッファ配列にコピーする。
【0142】
続いて、ターゲットタプルインデックス変数およびソースタプルインデックス変数の両方がタプルの最大数を示す変数nTuplesよりも小さければ、コピーアルゴリズム460cを繰り返す。
【0143】
ステップ460caにおいて、(タプル)周波数インデックスがソースタプルインデックス変数(第1のインデックス定数「firstIdx」との組み合わせた)の現在の値によって決定される、リオーダバッファの4つのエントリを、周波数インデックスがターゲットタプルインデックス変数(nLinTupleIdx)(第1のインデックス定数「firstIdx」と組み合わせた)によって決定される、コンテキストメモリ構造(self−>base.m_qbuf[][])のエントリにコピーする。
【0144】
ステップ460cbにおいて、ターゲットタプルインデックス変数を1だけインクリメントする。
【0145】
ステップ460ccにおいて、ソースタプルインデックス変数を、ターゲットタプルインデックス変数(nLinTupleIdx)の現在の値と、最も近い整数値に丸めた周波数伸長因子情報(self−>base.m_ContextUpdateRatio)との積である値に設定する。したがって、ソースタプルインデックス変数の値は、周波数伸長因子の変数が1よりも大きい場合はターゲットタプルインデックス変数の値よりも大きくなり、周波数伸長因子の変数が1よりも小さい場合はターゲットタプルインデックス変数よりも小さくなり得る。
【0146】
したがって、ソースタプル変数の値は、(ターゲットタプルインデックス変数の値およびソースタプル変数の値の両方が定数nTuplesよりも小さければ、)ターゲットタプルインデックス変数の各値に対応付けられる。ステップ460cbおよび460ccの実行に続いて、ステップ460caにおいて、ソースタプルとターゲットタプルとの更新された対応付けを用いて、リオーダバッファからコンテキストメモリ構造へのエントリのコピーを繰り返す。
【0147】
このように、図4cによるアルゴリズム460は、周波数スケーリング済みコンテキストメモリ構造提供部430aの機能を果たし、予備コンテキストメモリ構造は、配列「self−>base.m_qbuf」の初期のエントリによって表され、周波数スケーリングされたコンテキストメモリ構造440は、配列「self−>base.m_qbuf」の更新されたエントリによって表される。
8.3.図4dおよび図4eによる実施例
以下に、ライン単位の処理を示す図4cを参照して、4−タプルを用いた算術コーダのコンテキストのマッピングの例について説明する。
【0148】
図4dおよび図4eは、コンテキストの周波数スケーリング(すなわち、周波数伸長または周波数圧縮)を行うためのアルゴリズムの疑似プログラムコード表現を示す。
【0149】
図4dおよび図4eによるアルゴリズム470は、配列「self−>base.m_qbuf[][]」(または少なくとも当該配列への参照)および周波数伸長因子情報「self self−>base.m_ContextUpdateRatio」を入力情報として受け取る。さらに、アルゴリズム470は、アクティブなラインの数を示す変数「self−>base.m_IcsInfo−>m_ScaleFactorBandsTransmitted」を入力情報として受け取る。さらに、アルゴリズム470は、配列self−>base.m_qbuf[][]を、当該配列のエントリが周波数スケーリングされたコンテキストメモリ構造を表すように修正する。
【0150】
アルゴリズム470は、ステップ470aにおいて、複数の変数の初期化を含む。具体的には、ターゲットラインインデックス変数(linLineIdx)およびソースラインインデックス変数(warpLineIdx)を0に初期化する。
【0151】
ステップ470bにおいて、アクティブなタプルの数およびアクティブなラインの数を計算する。
【0152】
以下では、異なるコンテキストインデックス(変数「contextIdx」によって示される)コンテキストの2つの集合が処理される。しかしながら、他の実施形態においては、1つのコンテキストを処理するだけで十分である。
【0153】
ステップ470cにおいて、ライン時間バッファ配列「lineTmpBuf」およびラインリオーダバッファ配列「lineReorderBuf」を0個のエントリに初期化する。
【0154】
ステップ470dにおいて、スペクトル値の複数のタプルの異なる周波数ビンに対応付けられた予備コンテキストメモリ構造のエントリをラインリオーダバッファ配列にコピーする。したがって、連続する周波数インデックスを有するラインリオーダバッファ配列のエントリを、異なる周波数ビンに対応付けられた予備コンテキストメモリ構造のエントリに設定する。換言すれば、予備コンテキストメモリ構造は、スペクトル値の1タプルにつき1つのエントリ「self−>base.m_qbuf[CurTuple][contextIdx]」を含み、スペクトル値のタプルに対応付けられたエントリは、個々のスペクトルライン(またはスペクトルビン)に対応付けられたサブエントリa、b、c、dを含む。ステップ470dにおいて、サブエントリa,b,c,dのそれぞれをラインリオーダバッファ配列「lineReorderBuf[]」の1つのエントリにコピーする。
【0155】
その結果、ステップ470eにおいて、ラインリオーダバッファ配列の内容は、ライン時間バッファ配列「lineTmpBuf[]」にコピーされる。
【0156】
続いて、ステップ470fにおいて、ターゲットラインインデックス変数およびソースラインインデックス変数を、0の値をとるように初期化する。
【0157】
続いて、ステップ470gにおいて、ラインリオーダバッファ配列のエントリ「lineReorderBuf[warpLineIdx]」を、ターゲットラインインデックス変数「linLineIdx」の複数の値についてのライン時間バッファ配列にコピーする。ステップ470gは、ターゲットラインインデックス変数およびソースラインインデックス変数の両方が、アクティブな(ゼロでない)スペクトルラインの合計数を示す変数「activeLines」よりも小さければ繰り返される。ターゲットラインインデックス変数「linLineIdx」の現在の値によって示されるライン時間バッファ配列のエントリを、ソースラインインデックス変数の現在の値によって示されるラインリオーダバッファ配列の値に設定する。続いて、ターゲットラインインデックス変数を1だけインクリメントする。ソースラインインデックス変数「warpLineIdx」を、ターゲットラインインデックス変数の現在の値と周波数伸長因子情報(変数「self−>base.m_ContextUpdateRatio」によって表される)との積によって決定される値に設定する。
【0158】
ターゲットラインインデックス変数およびソースラインインデックス変数の更新の後、ターゲットラインインデックス変数およびソースラインインデックス変数の両方が変数「activeLines」の値よりも小さければ、ステップ470gを繰り返す。
【0159】
したがって、予備コンテキストメモリ構造のコンテキストエントリは、タプル単位ではなく、ライン単位で周波数スケーリングされる。
【0160】
最後のステップ470hにおいて、ライン時間バッファ配列のライン単位のエントリに基づいてタプル表現を復元する。コンテキストのタプル表現「self−>base.m_qbuf[curTuple][contextIdx]」のエントリa、b、c、dを、ライン時間バッファ配列の「lineTmpBuf[(curTuple−1)*4+0]」から「lineTmpBuf[(curTuple−1)*4+3]」までの(周波数において隣接している)4つのエントリに応じて設定する。加えて、タプルエネルギフィールド「e」を、任意には、それぞれのタプルに対応付けられたスペクトル値のエネルギを表すように設定する。さらに、当該タプルに対応付けられたスペクトル値の大きさが比較的小さい場合は、任意には、タプル表現の追加のフィールド「v」を設定する。
【0161】
ただし、ステップ470hにおいて行われる新たなタプルの計算に関する詳細は、コンテキストの実際の表現に強く依存し、したがって大きく変化し得るという点に留意されたい。しかしながら、タプルベースの表現は、ステップ470hにおいて周波数スケーリングされたコンテキストの個別ラインベースの表現に基づいて得られると概して言うことができる。
【0162】
要約すると、アルゴリズム470によれば、タプル単位のコンテキスト表現(配列「self−>base.m_qbuf[curTuple][contextIdx]」のエントリ)を、まず、周波数ライン単位のコンテキスト表現(または周波数ビン単位のコンテキスト表現)(ステップ470d)に分割する。続いて、周波数スケーリングをライン単位で(ステップ470g)に実行する。最後に、ライン単位で周波数スケーリングされた情報に基づいて、コンテキストのタプル単位の表現(配列「self−>base.m_qbuf[curTuple][contextIdx]」の更新されたエントリ)を復元する(ステップ470h)。
9.周波数領域−時間領域復号アルゴリズムの詳細な説明
9.1.概要
以下に、本発明の一実施形態によるオーディオ復号器によって実行されるアルゴリズムのいくつかについて詳細に説明する。この目的で、図5a、図5b、図6a、図6b、図7a、図7b、図8、図9、図10a、図10b、図11、図12、図13、図14、図15および図16を参照されたい。
【0163】
まず、データ要素の定義の凡例およびヘルプ要素の定義の凡例を示す図7aを参照されたい。さらに、定数の定義の凡例を示す図7bを参照されたい。
【0164】
一般的に、本明細書で記載される方法は、タイムワープ型修正離散コサイン変換に従って符号化されたオーディオストリームの復号に用いることができると言うことができる。したがって、TW−MDCTをオーディオストリーム(例えば、特定の設定情報に含まれ得る「twMDCT」フラグというフラグによって示され得る)に対して有効にする場合、オーディオ復号器において標準的なフィルタバンクおよびブロック切り替えをタイムワープ型フィルタバンクおよびブロック切り替えで置き換えることができる。逆修正離散コサイン変換(IMCT)に加えて、タイムワープ型フィルタバンクおよびブロック切り替えは、任意の間隔で配置された時間グリッドから通常の規則的な間隔または直線的間隔で配置された時間グリッドへの時間領域−時間領域マッピングし、それに合わせてウィンドウ形状を適合することで実行される。
【0165】
ここで、本明細書に記載される復号アルゴリズムは、例えば、スペクトルの符号化された表現に基づいて、また、符号化されたタイムワープ情報184、252に基づいてタイムワーピング周波数領域−時間領域変換部180によって実行され得るという点に留意されたい。
9.2.定義
データ要素、ヘルプ要素および定数の定義に関しては、図7aおよび図7bを参照されたい。
9.3.復号処理−ワープコンター
ワープコンターノードのコードブックインデックスは、個々のノードの値をワーピングするために以下の様に復号される。
【0166】
【数6】
【0167】
しかしながら、本明細書において「warp_value_tbl[tw_ratio[k]]」として示す復号されたタイムワープ値へのタイムワープコードワード「tw_ratio[k]」のマッピングは、任意には、本発明による実施形態におけるサンプリング周波数に依存し得る。したがって、本発明によるいくつかの実施形態においては単一のマッピングテーブルが存在するのではなく、異なるサンプリング周波数についての個別のマッピングテーブルが存在する。
【0168】
サンプル単位の(n_long samples)新たなワープコンターデータ「new_warp_contour[]」を取得するために、疑似プログラムコード表現を図9に示すアルゴリズムを用いて、ワープノード値「warp_node_values[]」を等間隔(interp_dist apart)ノード間で直線補間する。
【0169】
このフレームの(例えば、現在のフレームの)完全なワープコンターを取得する前に、過去のワープコンター「past_warp_contour[]」の最後のワープ値が1に等しくなるように、過去のバッファリングされた値を再スケーリングしてもよい。
【0170】
【数7】
【0171】
過去のワープコンター「past_warp_contour」と新たなワープコンター「new_warp_contour」とを連結することにより、完全なワープコンター「warp_contour[]」を取得し、新たなワープ合計値「new_warp_sum」を新たなワープコンター値「new_warp_contour[]」の全体の合計値として計算する。
【0172】
【数8】
【0173】
9.4.復号処理−サンプル位置およびウィンドウ長調整
ワープコンター「warp_contour[]」から、線形時間スケールでのワープされたサンプルのサンプル位置のベクトルを計算する。このために、以下の式に従ってタイムワープコンターを生成する。
【0174】
【数9】
【0175】
疑似プログラムコード表現をそれぞれ図10aおよび図10bに示すヘルパー関数「warp_inv_vec()」および「warp_time_inv()」を用い、疑似プログラムコード表現を図11に示すアルゴリズムに従って、サンプル位置ベクトルおよび遷移長を計算する。
9.5.復号処理−逆修正離散コサイン変換(IMDCT)
以下に、逆修正離散コサイン変換について簡単に説明する。
【0176】
逆修正離散コサイン変換の解析方程式は以下の通りである。
【0177】
【数10】
【0178】
逆変換のための合成ウィンドウ長は、構文要素「window_sequence」(ビットストリームに含められ得る)およびアルゴリズムコンテキストの関数である。合成ウィンドウ長は、例えば、図12のテーブルに従って定義することができる。
【0179】
図13のテーブルにおいて、有意なブロック遷移を示す。所与のテーブルセルのチェックマークは、この特定の行に示されるウィンドウシーケンスの後に、この特定の列に示されるウィンドウシーケンスが続き得ることを示している。
【0180】
許可されたウィンドウシーケンスに関し、オーディオ復号器は、例えば、異なる長さのウィンドウ間で切り替えられ得るという点に留意されたい。しかしながら、ウィンドウ長の切り替えは、本発明にとって特に重要ではない。むしろ、本発明は、タイプ「only_long_sequence」のウィンドウのシーケンスが存在し、コアコーダフレーム長は1024に等しいというという仮定に基づいて理解することができる。
【0181】
さらに、オーディオ信号復号器は、周波数領域コーディングモードと時間領域コーディングモードとの間で切り替えられ得るという点に留意されたい。しかしながら、この可能性は本発明にとって特に重要ではない。むしろ、本発明は、例えば、図1bおよび図2bを参照して述べたような、周波数領域コーディングモードのみを処理することができるオーディオ信号復号器において適用可能である。
9.6.復号処理−ウィンドウ処理およびブロック切り替え
以下に、タイムワーピング周波数領域−時間領域変換部180により、具体的には、そのウィンドウ処理部180gにより実行され得るウィンドウ処理およびブロック切り替えについて説明する。
【0182】
「window_shape」要素(オーディオ信号を表すビットストリームに含められ得る)によっては、異なるオーバーサンプリングされた変換ウィンドウプロトタイプが使用され、オーバーサンプリングされたウィンドウの長さは、以下の通りである。
【0183】
【数11】
【0184】
window_shape==1の場合、ウィンドウ係数は、カイザー−ベッセル派生(KBD)ウィンドウによって以下のように得られる。
【0185】
【数12】
【0186】
式中
W',カイザー−ベッセル核関数は、以下のように定義される。
【0187】
【数13】
【0188】
一方、window_shape==0の場合、以下のように正弦ウィンドウを使用する。
【0189】
【数14】
【0190】
あらゆる種類のウィンドウシーケンスについて、左ウィンドウ部分の上記使用プロトタイプは、以前のブロックのウィンドウ形状によって決定される。以下の式がこのことを表している。
【0191】
【数15】
【0192】
同様に、右ウィンドウ形状のプロトタイプは、以下の式によって求められる。
【0193】
【数16】
【0194】
遷移長は既に求められているため、タイプ「EIGHT_SHORT_SEQUENCE」のウィンドウシーケンスと他の全てのウィンドウシーケンスとを区別するだけでよい。
【0195】
現在のフレームがタイプ「EIGHT_SHORT_SEQUENCE」である場合、ウィンドウ処理及び内部(フレーム内)重複加算を実行する。図14のCコードに似た部分は、ウィンドウタイプ「EIGHT_SHORT_SEQUENCE」を有するフレームのウィンドウ処理および内部重複加算を示している。
【0196】
その他のタイプのフレームについては、図15に疑似プログラムコード表現を示すアルゴリズムが使用され得る。
9.7.復号処理−時変再サンプリング
以下に、タイムワーピング周波数領域−時間領域変換部180により、具体的には、その再サンプリング部180iにより実行され得る時変再サンプリングについて説明する。
【0197】
ウィンドウ処理されたブロックz[]を、サンプル位置(復号されたタイムワープコンター情報258に基づいてサンプリング位置計算部180lにより提供される)に応じて、以下のインパルス応答を用いて再サンプリングする。
【0198】
【数17】
【0199】
再サンプリングの前に、ウィンドウ処理されたブロックの両端を0でパディングする。
【0200】
【数18】
【0201】
再サンプリング自体は、図16の疑似プログラムコードのセクションに示されている。
9.8.復号処理−以前のウィンドウシーケンスによる重複加算
タイムワーピング周波数領域−時間領域変換部180の重複器/加算器180mによって実行される重複加算は、全てのシーケンスについて同様であり、以下のように数学的に記述することができる。
【0202】
【数19】
【0203】
9.9.復号処理−メモリ更新
以下に、メモリ更新について説明する。図2bでは特定の手段は示されていないが、メモリ更新はタイムワーピング周波数領域−時間領域変換部180によって実行され得るという点に留意されたい。
【0204】
次のフレームの復号に必要なメモリバッファは、以下のように更新する。
【0205】
【数20】
【0206】
最初のフレームを復号する前に、あるいは、最後のフレームが光学LPC領域コーダによって符号化された場合、メモリ状態を以下のように設定する。
【0207】
【数21】
【0208】
9.10.復号処理−結論
上記を要約すると、タイムワーピング周波数領域−時間領域変換部180によって実行され得る復号処理について説明した。例えば、2048個の時間領域サンプルからなるオーディオフレームについての時間領域表現が提供され、連続するオーディオフレームは、例えば、約50%重複し得るため、連続するオーディオフレームの時間領域表現間の平滑な遷移が確実に実現されることが理解される。
【0209】
オーディオフレームの時間領域サンプルの実際のサンプリング周波数に関係なく、例えば、NUM_TW_NODES=16の復号されたタイムワープ値の集合をオーディオフレームのそれぞれに対応付けることができる(ただし、タイムワープが当該オーディオフレームにおいてアクティブである場合に限る)。
10.スペクトル・ノイズレス・コーディング
以下に、コンテキスト状態決定部170と組み合わせたコンテキストベースのスペクトル値復号部160によって実行され得るスペクトル・ノイズレス・コーディングに関するいくつかの詳細について説明する。尚、対応する符号化は、コンテキスト状態決定部140と組み合わせたコンテキストスペクトル値符号化器によって実行することができ、当業者であれば、復号ステップの詳細な記述から各符号化ステップを理解するであろう。
10.1.スペクトル・ノイズレス・コーディング−ツールの説明
スペクトル・ノイズレス・コーディングは、量子化されたスペクトルの冗長性をさらに低減するために用いられる。スペクトル・ノイズレス・コーディング方式は、動的に適合されたコンテキストと併用した算術コーディングに基づいている。後述するスペクトル・ノイズレス・コーディング方式は、2−タプルに基づいている。すなわち、2つの隣接スペクトル係数が組み合わされる。2−タプルは、それぞれ、符号、最上位2ビット単位プレーン、および残りの下位ビットプレーンに分割される。最上位2ビット単位プレーンmのためのノイズレスコーディングは、4つの以前に復号された2−タプルから導出されるコンテキスト依存の累積度数テーブルを用いる。ノイズレスコーディングは、量子化されたスペクトル値によって供給され、また、4つの以前に復号された隣接2−タプルから導出される(例えば、これに応じて選択される)コンテキスト依存の累積度数テーブルを用いる。ここでは、状態計算のためのコンテキストのグラフ表現を示す図16に示すように、時間および周波数の両方における隣接が考慮される。累積度数テーブルは、可変長2進コードを生成するために算術コーダ(符号化部または復号部)によって用いられる。
【0210】
ただし、コンテキストの異なるサイズが選択され得る点に留意されたい。例えば、復号すべきタプルの環境にある少数または多数のタプルをコンテキストの決定に使用することができる。また、タプルは、少数または多数のスペクトル値を含み得る。あるいは、タプルではなく、個々のスペクトル値を用いてコンテキストを取得してもよい。
【0211】
算術コーダは、記号の所与の集合およびそのそれぞれの確率について2進コードを生成する。2進コードは、記号の集合が位置する確率間隔をコードワードにマッピングすることによって生成される。
10.2 スペクトル・ノイズレス・コーディング−定義
変数、定数等の定義については、定義の凡例を示す図18を参照されたい。
10.3 復号処理
量子化されたスペクトル係数「x_ac_dec[]」を、最も低い周波数係数から開始して、最も高い周波数係数へとノイズレス復号する。これらは、例えば、いわゆる2−タプル(a,b)において集合する2つの連続する係数aおよびbのグループによって復号される。
【0212】
次いで、周波数領域モードの(上記のような)復号された係数x_ac_dec[]を、配列「x_ac_quant[g][win][sfb][bin]」に格納する。ノイズレス・コーディング・コードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、binが増加の最も早いインデックスであり、gが増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。
【0213】
任意には、変換符号化励起モードのための係数も評価することができる。上記の例は周波数領域オーディオ符号化および周波数領域オーディオ復号にのみ関連しているが、本明細書において開示される概念は、変換符号化励起領域で動作するオーディオ符号化器およびオーディオ復号器に実際に用いられ得る。変換符号化励起(transform coded excitation)(TCX)のための復号された係数x_ac_dec[]は、例えば、配列x_tcx_invquant[win][bin]に直接格納され、ノイズレス・コーディング・コードワードの送信の順序は、これらが受信され、配列binに格納された順に復号される場合、binが増加の最も早いインデックスであり、winが増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。
【0214】
まず、(任意の)フラグ「arith_reset_flag」は、コンテキストをリセットしなければならない(したほうがよいか)か否かを判定する。フラグがTRUEである場合、初期化を実行する。
【0215】
復号処理は初期化段階から開始され、初期化段階では、配列(またはサブ配列)q[1][]に格納された以前のフレームのコンテキスト要素を「q[0][]」にコピーおよびマッピングすることによりコンテキスト要素ベクトルqを更新する。q内のコンテキスト要素は、例えば、1つの2−タプルにつき4ビット格納される。初期化に関する詳細については、図19に疑似プログラムコード表現を示すアルゴリズムを参照されたい。
【0216】
図19のアルゴリズムに従って実行され得る初期化に続き、上述したコンテキストの周波数スケーリングを実行してもよい。例えば、配列(またはサブ配列)q[0][]を予備コンテキストメモリ構造432として考慮してもよい(あるいは、次元ならびにエントリeおよびvに関する詳細を除き、配列self−>base.m_qbuf[][]と同等であってもよい)。さらに、周波数スケーリングされたコンテキストを配列q[0][](または配列「self−>base.m_qbuf[][]」)に再び格納してもよい。しかし、その代わりに、またはそれに加えて、配列(またはサブ配列)q[1][]の内容を装置438によって周波数スケーリングしてもよい。
【0217】
要約すると、ノイズレス復号部は、符号無しの量子化されたスペクトル係数の2−タプルを出力する。最初に(あるいは、典型的には、周波数スケーリングの後に)、復号すべき2−タプルの周囲にある以前に復号されたスペクトル係数に基づいてコンテキスト状態cが計算される。したがって、状態は、2つの新しい2−タプルのみを考慮して、最後に復号された2−タプルのコンテキスト状態を用いて増加的に更新される。状態は、例えば、17ビットでコーディングされ、図20に疑似プログラムコード表現を示す関数「arith_get_context[]」によって戻される。
【0218】
関数「arith_get_context[]」の戻り値として取得されるコンテキスト状態cは、最上位2ビット単位プレーンmの復号に使用される累積度数テーブルを決定する。対応する累積度数テーブルインデックスpkiへのcからのマッピングは、図21に疑似プログラムコード表現を示す関数「arith_get_pk[]」によって行われる。
【0219】
値mは、累積度数テーブル「arith_cf_m[pki][]」によって呼び出される関数「arith_decode[]」を用いて復号される(ここで、pkiは関数「arith_get_pk[]」によって戻されるインデックスに対応している)。算術符号化部は、スケーリングによるタグ生成の方法を用いた整数インプリメンテーションである。図22による疑似Cコードは、使用アルゴリズムを記述している。
【0220】
復号された値mがエスケープ記号「ARITH_ESCAPE」である場合、変数「lev」および「esc_nb」を1だけインクリメントし、別の値mを復号する。この場合、値c&esc_nb<<17(esc_nbは、同じ2−タプルによって以前に復号されかつ7までに限定されているエスケープ記号の数である)を用いて、関数「get_pk[]」を再び入力引数として呼び出す。
【0221】
値mがエスケープ記号「ARITH_ESCAPE」でなくなると、復号器は、後続のmが「ARITH_STOP」記号を形成しているか否かをチェックする。条件(esc_nb>0&&m==0)が真である場合、「ARITH_STOP」が検出され、復号処理は終了する。復号器は、後述する符号復号に直接ジャンプする。この条件は、フレームの残りが0値からなることを意味する。
【0222】
「ARITH_STOP」記号が満たされない場合、現在の2−タプルについて(存在する場合)、残りのビットプレーンが復号される。残りのビットプレーンは、関数「arith_decode()」をlev回呼び出すことによって、最上位レベルから最下位レベルまで復号される。復号されたビットプレーンrにより、図23に疑似プログラムコードを示すアルゴリズムに従って、以前に復号された値a、bを改良することが可能となる。
【0223】
この時点で、2−タプル(a,b)の符号無し値が完全に復号される。当該値を、図24の疑似プログラムコードに示すような、スペクトル係数を保持する配列「x_ac_dec[]」に保存する。
【0224】
コンテキストqもまた、次の2−タプルについて更新する。このコンテキスト更新はまた、最後の2−タプルについても行う必要がある点に留意されたい。このコンテキスト更新は、図25に疑似プログラムコード表現を示す関数「arith_update_context[]」によって行われる。
【0225】
次いで、iを1だけインクリメントし、上述と同様の処理を再実行することによって、フレームの次の2−タプルを復号する。具体的には、コンテキストの周波数スケーリングを実行してもよく、続いて、関数「arith_get_context[]」から上述の処理を再開してもよい。lg/2個の2−タプルがフレーム内で復号される場合、あるいは、ストップ記号「ARITH_STOP」が出現した場合、スペクトルの振幅の復号処理を終了し、符号の復号を開始する。
【0226】
すべての符号無しの量子化されたスペクトル係数が復号されると、それに応じた符号を付加する。「x_ac_dec」のヌルでない量子化された値のそれぞれについて、1つのビットを読み出す。読み出されたビット値が1に等しい場合、量子化された値は正であり、何も行わず、符号付き値は、以前に復号された符号無し値に等しいものとなる。そうでない場合、復号された係数は負であり、符号無し値から2の補数を取る。符号ビットを、低い周波数からより高い周波数へと読み出す。
【0227】
図26に疑似プログラムコードを示す関数「arith_finish[]」を呼び出すことにより、復号を終了する。残りのスペクトル係数を0に設定する。それに応じて、各コンテキスト状態を更新する。
【0228】
上記を要約すると、スペクトル値のコンテキストベースの(あるいはコンテキスト依存型)復号が実行され、個々のスペクトル値が復号され得るか、あるいはスペクトル値がタプル単位で(上記の通り)復号され得る。本明細書に記載されるように、コンテキストは、基本周波数(あるいは、同等に、ピッチ)の時間変動がある場合に良好な符号化/復号性能を実現するために、周波数スケーリングされてもよい。
11.図27a〜図27fによるオーディオストリーム
以下に、1つ以上のオーディオ信号チャネルおよび1つ以上のタイムワープコンターの符号化された表現を含むオーディオストリームについて説明する。以下に説明するオーディオストリームは、例えば、符号化されたオーディオ信号表現112または符号化されたオーディオ信号表現152を運ぶことができる。
【0229】
図27aは、単一チャネル要素(SCE)、チャネル対要素(CPE)または1つ以上の単一チャネル要素および/もしく1つ以上のチャネル対要素の組み合わせを含み得る、いわゆる「USAC_raw_data_block」データストリーム要素の表現を示す。
【0230】
「USAC_raw_data_block」は、典型的には、符号化されたオーディオデータのブロックを含み得る一方で、追加のタイムワープコンター情報は、別個のデータストリーム要素において提供することができる。しかしながら、いくつかのタイムワープコンターデータを「USAC_raw_data_block」に符号化することは当然可能である。
【0231】
図27bから理解されるように、単一チャネル要素は、典型的には、図27dを参照して詳細に説明される周波数領域チャネルストリーム(「fd_channel_stream」)を含む。
【0232】
図27cから理解されるように、チャネル対要素(「channel_pair_element」)は、典型的には、複数の周波数領域チャネルストリームを含む。また、チャネル対要素は、例えば、設定データストリーム要素または「USAC_raw_data_block」において送信することができ、また、タイムワープ情報をチャネル対要素に含めるか否かを決定するタイムワープ起動フラグ(「tw_MDCT」)といったタイムワープ情報を含み得る。例えば、「tw_MDCT」フラグがタイムワープがアクティブであることを示す場合、チャネル対要素は、チャネル対要素のオーディオチャネルについて共通のタイムワープが存在するか否かを示すフラグ(「common_tw」)を含み得る。当該フラグ(「common_tw」)が多数のオーディオチャネルについて共通のタイムワープが存在することを示す場合、共通のタイムワープ情報(「tw_data」)を、例えば、周波数領域チャネルストリームとは別に、チャネル対要素に含める。
【0233】
ここで図27dを参照すると、周波数領域チャネルストリームが示されている。図27dから理解されるように、周波数領域チャネルストリームは、例えば、グローバルゲイン情報を含む。また、周波数領域チャネルストリームは、タイムワーピングがアクティブであり(フラグ「tw_MDCT」がアクティブであり)、多数のオーディ信号オチャネルについて共通のタイムワープ情報が存在しない(フラグ「「common_tw」が非アクティブである)場合、タイムワープデータを含む。
【0234】
さらに、周波数領域チャネルストリームはまた、スケーリング因子データ(「scale_factor_data」)および符号化されたスペクトルデータ(例えば、算術符号化されたスペクトルデータ「ac_spectral_data」)も含む。
【0235】
ここで図27eを参照し、タイムワープデータの構文について簡単に述べる。タイムワープデータは、例えば、タイムワープデータが存在しているか否かを示すフラグ(例えば、「tw_data_present」または「active_pitch_data」)を任意には含み得る。タイムワープデータが存在している(すなわち、タイムワープコンターが平坦でない)場合、タイムワープデータは、例えば、上述のようにサンプリングレート依存型コードブックテーブルに従って符号化され得る複数の符号化されたタイムワープ比の値(例えば、「tw_ratio[i]」または「pitch Idx[i]」)のシーケンスを含み得る。
【0236】
したがって、タイムワープデータは、タイムワープコンターが一定である(タイムワープ比が1.000にほぼ等しい)場合、利用可能なタイムワープデータが存在しないことを示すフラグ(オーディオ信号符号化器によって設定され得る)を含み得る。これに対し、タイムワープコンターが変化している場合、連続するタイムワープコンターノード間の比は、「tw_ratio」情報を構成するコードブックインデックスを用いて符号化され得る。
【0237】
図27fは、算術コーディングされたスペクトルデータ「ac_spectral_data()」の構文の図式表現を示す。算術コーディングされたスペクトルデータは、独立性フラグ(ここでは「indepFlag」)の状態に応じて符号化され、このフラグは、アクティブである場合には、算術コーディングされたデータが以前のフレームの算術符号化されたデータから独立していることを示す。独立性フラグ「indepFlag」がアクティブである場合、算術リセットフラグ「arith_reset_flag」はアクティブとなるよう設定される。そうでない場合、算術リセットフラグの値は、算術コーディングされたスペクトルデータにおけるビンによって決定される。
【0238】
さらに、算術コーディングされたスペクトルデータブロック「ac_spectral_data()」は、算術コーディングされたデータの1つ以上のユニットを含み、算術コーディングされたデータ「arith_data()」のユニットの数は、現在のフレームにおけるブロック(またはウィンドウ)の数に依存する。長ブロックモードでは、1つのオーディオフレームにつき1個のウィンドウしか存在しない。しかし、短ブロックモードでは、1つのオーディオフレームにつき例えば8個のウィンドウが存在し得る。算術コーディングされたスペクトルデータ「arith_data」の各ユニットは、例えば、逆変換部180eによって実行され得る周波数領域−時間領域変換のための入力として機能し得るスペクトル係数の集合を含む。
【0239】
算術符号化されたデータ「arith_data」の1つのユニット当たりのスペクトル係数の数は、例えば、サンプリング周波数と無関係であり得るが、ブロック長モード(短ブロックモード「EIGHT_SHORT_SEQUENCE」または長ブロックモード「ONLY_LONG_SEQUENCE」)に依存し得る。
12.結論
上記を要約すると、タイムワープ型修正離散コサイン変換の関連での改良について述べた。本明細書に記載の発明は、タイムワープ型修正離散変換コーダ(例えば、参考文献[1]および[2]を参照)を背景としており、また、ワープ型MDCT変換コーダの性能を向上させるための方法を含む。このようなタイムワープ型修正離散コサイン変換コーダの1つの実施例は、進行中のMPEG USACオーディオコーディング標準化作業(例えば、参考文献[3]を参照)において実現されている。使用されるTW−MDCTの実施例の詳細は、例えば、参考文献[4]において見られる。
【0240】
しかしながら、上記概念に対する改善案が本明細書において示される。
13.代替実施例
いくつかの態様を装置との関連で説明したが、これらの態様は対応する方法も示していることは明らかであり、方法においては、ブロックまたはデバイスは、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で説明した態様もまた、対応するブロックもしくは項目または対応する装置の特徴を示すものである。例えば、マイクロプロセッサ、プログラム可能なコンピュータ、または電子回路といったハードウェア装置によって(またはこれを用いて)、方法ステップの一部またはすべてを実行してもよい。いくつかの実施形態では、最も重要な方法ステップのうち任意の1つ以上をこのような装置によって実行してもよい。
【0241】
本発明の符号化されたオーディオ信号は、デジタル記憶媒体に格納することができ、あるいは、無線伝送媒体またはインターネットのような有線伝送媒体などの伝送媒体上に送信することができる。
【0242】
特定の実施要件によっては、本発明の実施形態は、ハードウェアにおいて、またはソフトウェアにおいて実施されることができる。実施は、電子的に読取可能な制御信号を格納したデジタル記憶媒体、例えば、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを用いて実行することができ、これらは、各方法が実行されるようにプログラム可能なコンピュータシステムと協働する(または協働することができる)。したがって、デジタル記憶媒体は、コンピュータ可読であってもよい。
【0243】
本発明によるいくつかの実施形態は、本明細書に記載される方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読取り可能な制御信号を有するデータキャリアを含む。
【0244】
通常、本発明の実施形態はプログラムコードを有するコンピュータプログラム製品として実現することができ、コンピュータプログラム製品がコンピュータで実行されたときに、プログラムコードが方法のうちの1つを実行するために動作する。プログラムコードは、例えば、機械可読キャリアに格納され得る。
【0245】
他の実施形態は、本明細書に記載される、機械可読キャリアに格納された方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0246】
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータ上で実行されたときに、本明細書に記載される方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0247】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムが記録されたデータキャリア(すなわちデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録された媒体は、典型的には、有形および/または非過渡的である。
【0248】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えばインターネットなどのデータ通信接続を介して転送されるように構成することができる。
【0249】
さらなる実施形態は、本明細書に記載される方法の1つを実行するように構成されるかあるいは適合された、例えばコンピュータまたはプログラム可能論理デバイスといった処理手段を含む。
【0250】
さらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを搭載したコンピュータを含む。
【0251】
本発明によるさらなる実施形態は、本明細書で説明された方法のうちの1つを実行するためのコンピュータプログラムを受信機に転送する(例えば、電子的または光学的に)ように構成された装置またはシステムを含む。受信機は、例えば、コンピュータ、携帯機器、メモリデバイス等であってもよい。この装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えていてもよい。
【0252】
いくつかの実施形態において、プログラム可能論理デバイス(例えばフィールドプログラマブルゲートアレイ)を用いて、本明細書に記載される方法の機能のいくつかまたはすべてを実行してもよい。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載される方法のうちの1つを実行するために、マイクロプロセッサと協働してもよい。通常、上記方法は、好ましくは、いかなるハードウェア装置によっても実行される。
【0253】
上述の実施形態は、本発明の原理のための単なる例示にすぎない。本明細書に記載される構成及び詳細事項の修正変更は、他の当業者にとって明らかであるものと理解される。したがって、本発明は、添付の特許クレームの範囲のみによって限定されるものであって、本明細書に記載の実施形態の記載および説明によって示される具体的な詳細事項によって限定されるものではない。
【0254】
参考文献
[1] Bernd Edler et.al., “Time Warped MDCT”, US 61/042,314, Provisional application for patent,
[2] L. Villemoes, “Time Warped Transform Coding of Audio Signals”,
PCT/EP2006/010246, International patent application, November 2005.
[3] “WD6 of USAC”, ISO/IEC JTC1/SC29/WG11 N11213, 2010
[4] Bernd Edler et. al., “A Time-Warped MDCT Approach to Speech Transform Coding”, 126th AES Convention, Munich, May 2009, preprint 7710
[5] Nikolaus Meine, “Vektorquantisierung und kontextabhaengige arithmetische Codierung fuer MPEG-4 AAC”, VDI, Hannover, 2007
【技術分野】
【0001】
本発明による実施形態は、符号化されたオーディオ信号表現に基づいて復号されたオーディオ信号表現を提供するためのオーディオ信号復号器に関する。
【0002】
本発明によるさらなる実施形態は、入力オーディオ信号の符号化された表現を提供するためのオーディオ信号符号化器に関する。
【0003】
本発明によるさらなる実施形態は、復号されたオーディオ信号表現を符号化されたオーディオ信号表現に基づいて提供するための方法に関する。
【0004】
本発明によるさらなる実施形態は、入力オーディオ信号の符号化された表現を提供するための方法に関する。
【0005】
本発明によるさらなる実施形態は、コンピュータプログラムに関する。
【0006】
本発明によるいくつかの実施形態は、タイムワープ型修正離散コサイン変換(簡潔にTW−MDCTとして示す)と併用され得る、算術コーダのコンテキストをワープ情報を用いて適合させる概念に関する。
【背景技術】
【0007】
以下に、タイムワープ型オーディオ符号化の分野について簡単に紹介する。タイムワープ型オーディオ符号化の概念は、本発明の実施形態のいくつかと共に適用することができる。
【0008】
近年、オーディオ信号を周波数領域表現へ変換し、この周波数領域表現を、例えば知覚マスキング閾値を考慮して、効率的に符号化するための技術が開発されてきている。オーディオ信号符号化のこの概念は、符号化されたスペクトル係数の集合が送信されるブロックの長さが長い場合、およびグローバルなマスキング閾値を充分に上回るスペクトル係数の数が比較的少数であって、スペクトル係数のうちの多くがグローバルなマスキング閾値の付近又はそれ未満であり、ゆえに無視することが可能である(あるいは、最小限のコード長でコーディングすることが可能である)場合に、特に効率的である。前述の条件が成立するスペクトルは、スパーススペクトルと呼ばれる場合がある。
【0009】
例えば、余弦ベース又は正弦ベースの変調重複変換が、それらのエネルギー圧縮特性ゆえに、ソースコーディングのための用途においてしばしば使用される。すなわち、一定の基本周波数(ピッチ)を有する倍音については、これら変調重複変換により、信号のエネルギーが少数のスペクトル成分(サブ帯域)に集中し、効率的な信号表現がもたらされる。
【0010】
一般に、信号の(基本)ピッチは、当該信号のスペクトルから識別することができる最も低い優位周波数であると理解されるべきである。一般的なスピーチモデルにおいて、ピッチは人間の喉によって変調された励起信号の周波数である。ただ1つの基本周波数だけが存在すると考えられる場合、スペクトルはきわめて単純になり、基本周波数および倍音だけを含むと考えられる。このようなスペクトルは、きわめて効率的に符号化することが可能である。しかしながら、ピッチが変動する信号については、各ハーモニック成分に対応するエネルギーが、いくつかの変換係数にわたって広がり、コーディング効率が低下することになる。
【0011】
このコーディング効率の低下を克服するために、符号化されるオーディオ信号は非一様な時間格子上で有効に再サンプリングされる。続く処理において、非一様な再サンプリングによって得られたサンプル位置があたかも一様な時間格子上の値を表わしているかのように処理される。この操作は、一般に、「タイムワーピング(time warping)」という用語で呼ばれている。サンプル時間は、オーディオ信号のタイムワープされたバージョンにおけるピッチ変動がオーディオ信号の(タイムワーピング前の)元のバージョンにおけるピッチ変動よりも小さくなるように、ピッチの時間変動に依存して有利に選択することができる。オーディオ信号のタイムワーピングの後で、オーディオ信号のタイムワープされたバージョンが周波数領域に変換される。ピッチ依存型タイムワーピングは、タイムワープされたオーディオ信号の周波数領域表現が、典型的には、元の信号(タイムワープされていないオーディオ信号)の周波数領域表現と比べて、はるかに少数のスペクトル成分へのエネルギー圧縮を呈するという効果を有する。
【0012】
復号器側において、タイムワープされたオーディオ信号の周波数領域表現は、タイムワープされたオーディオ信号の時間領域表現を復号器側において利用できるように、時間領域へ変換される。しかしながら、復号器側で復元されたタイムワープされたオーディオ信号の時間領域表現には、符号器側での入力オーディオ信号の元のピッチ変動が含まれていない。したがって、復号器側で復元されたタイムワープされたオーディオ信号の時間領域表現の再サンプリングによる、さらに別のタイムワーピングが適用される。
【0013】
復号器側において符号化器側での入力オーディオ信号の良好な復元を実現するために、復号器側でのタイムワーピングが、符号化器側でのタイムワーピングに対して少なくともほぼ逆の動作であることが望ましい。適切なタイムワーピングを実現するために、復号器側でのタイムワーピングの調整を可能にする情報が復号器において入手可能であることが望ましい。
【0014】
一般的に、このような情報をオーディオ信号符号化器からオーディオ信号復号器へ伝達することが必要とされるため、この伝達に必要なビットレートを小さく抑えながらも、復号器側における必要なタイムワープ情報の確実な復元を可能にすることが望まれる。
【0015】
また、スペクトル値を符号化または復号する際のコーディング効率は、コンテキスト依存型符号化器またはコンテキスト依存型復号器を使用することによって高くなる場合がある。
【0016】
しかしながら、オーディオ符号化器またはオーディオ復号器のコーディング効率は、基本周波数またはピッチの変動がある場合には、タイムワープの概念が適用されたとしても比較的低いことが多いということが分かっている。
【0017】
このような状況に鑑み、基本周波数の変動がある場合においても良好なコーディング効率を可能にする概念が所望される。
【発明の概要】
【0018】
本発明の一実施形態は、復号されたオーディオ信号表現を、符号化されたスペクトル表現と符号化されたタイムワープ情報とを含む符号化されたオーディオ信号表現に基づいて提供するためのオーディオ信号復号器を実現する。オーディオ信号復号器は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態に応じて復号して、復号されたスペクトル値を取得するように構成されたコンテキストベースのスペクトル値復号部を備える。オーディオ信号復号器はまた、1つ以上前に復号されたスペクトル値に応じて現在のコンテキスト状態を決定するように構成されたコンテキスト状態決定部も備える。オーディオ信号復号器はまた、所与のオーディオフレームのタイムワープされた時間領域表現を、当該所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値決定部によって提供された、復号されたスペクトル値の集合に基づいてかつタイムワープ情報に応じて提供するように構成されたタイムワーピング周波数領域−時間領域変換部も備える。コンテキスト状態決定部は、コンテキスト状態の決定を、連続するフレーム間の基本周波数の変化に適合させるように構成されている。
【0019】
本発明のこの実施形態は、時変基本周波数を有するオーディオ信号の存在下でコンテキストベースのスペクトル値復号部によって達成されるコーディング効率は、連続する2つのフレーム間の基本周波数の変化にコンテキスト状態を適合させることによって向上するという知見に基づいている。なぜなら、基本周波数の経時変化(多くの場合、ピッチの変動と同等である)は、所与のオーディオフレームのスペクトルが、一般的に、以前のオーディオフレーム(所与のオーディオフレームに先行する)のスペクトルの周波数スケーリングされたバージョンに類似するという効果を有し、したがって、コンテキストの決定を基本周波数の変化に応じて適合させることにより、コーディング効率を向上させるためにこの類似性を利用することができるからである。
【0020】
すなわち、コンテキストベースのスペクトル値コーディングのコーディング効率(または復号効率)は、2つの連続するフレーム間の基本周波数に著しい変化がある場合には比較的低いこと、および、そのような状況に合わせてコンテキスト状態を決定することによってコーディング効率を高めることができることが分かっている。適応的にコンテキスト状態を決定することにより、以前のオーディオフレームのスペクトルと現在のオーディオフレームのスペクトルとの間の類似性を利用しながら、同時に、以前のオーディオフレームのスペクトルと現在のオーディオフレームのスペクトルとの間の系統的差異、例えば、典型的には、基本周波数の経時変化(すなわち、2つのオーディオフレーム間での基本周波数の経時変化)が存在する場合に現れるスペクトルの周波数スケーリングを考慮することが可能となる。
【0021】
要約すると、本発明のこの実施形態は、(連続するフレーム間の基本周波数の変化を示す情報がオーディオ信号符号化器または復号器のタイムワープの機能を用いたオーディオビットストリームにおいて何らかのやりかたで利用可能であると仮定した場合、)追加の副情報またはビットレートを必要とすることなく、コーディング効率を向上させるのに役立つ。
【0022】
好ましい実施形態において、タイムワーピング周波数領域−時間領域変換部は、所与のオーディオフレームの時間領域表現を、当該所与のオーディオフレームに対応付けられた復号され、コンテキストベースのスペクトル値復号部によって提供されたスペクトル値の集合に基づいて提供するように構成された通常の(非タイムワープ型)周波数領域−時間領域変換部と、所与のオーディオフレームの時間領域表現またはその処理されたバージョンをタイムワープ情報に応じて再サンプリングして、所与のオーディオフレームの再サンプリングされた(タイムワープされた)時間領域表現を取得するように構成されたタイムワープ再サンプリング部と、を備える。タイムワーピング周波数領域−時間領域変換部のこのような実施例は、「標準的な」周波数領域−時間領域変換部によるものであり、またその機能が周波数領域−時間領域変換部の機能とは独立していてもよいタイムワープ再サンプリング部を拡張機能として含むため実施が容易である。したがって、周波数領域−時間領域変換部は、タームワーピング(またはタイムデワーピング)が非アクティブである動作モードおよびタームワーピング(またはタイムデワーピング)がアクティブである動作モードの両方において再使用することができる。
【0023】
好ましい実施形態において、タイムワープ情報は、ピッチの経時変動を示している。この実施形態では、コンテキスト状態決定部は、タイムワープ情報から周波数伸長情報(すなわち、周波数スケーリング情報)を導出するように構成されている。さらに、コンテキスト状態決定部は、好ましくは、以前のオーディオフレームに対応付けられた過去のコンテキストを、周波数伸長情報に応じて周波数軸に沿って伸長または圧縮して、現在のオーディオフレームの1つ以上のスペクトル値のコンテキストベースの復号のための適合されたコンテキストを取得するように構成されている。ピッチの経時変動を示すタイムワープ情報は、周波数伸長情報の導出によく適していることが分かっている。さらに、以前のオーディオフレームに対応付けられた過去のコンテキストを周波数軸に沿って伸長または圧縮することにより、典型的には、伸長または圧縮されたコンテキストが得られ、これにより、現在のオーディオフレームのスペクトルに良好に適合され、ゆえに良好なコーディング効率をもたらす有意なコンテキスト状態情報を導出することが可能となることが分かっている。
【0024】
好ましい実施形態において、コンテキスト状態決定部は、第1のオーディオフレームの第1の平均周波数情報をタイムワープ情報から導出し、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均周波数情報を前記タイムワープ情報から導出するように構成されている。この場合、コンテキスト状態決定部は、周波数伸長情報を決定するために、第2のオーディオフレームにわたる第2の平均周波数情報と第1のオーディオフレームにわたる第1の平均周波数情報との比を計算するように構成されている。タイムワープ情報から平均周波数情報を一般に容易に導出することができることが分かっており、また、第1および第2の平均周波数情報間の比により、周波数伸長情報を計算効率よく導出することが可能になることも分かっている。
【0025】
別の好ましい実施形態において、コンテキスト状態決定部は、第1のオーディオフレームにわたる第1の平均タイムワープコンター情報をタイムワープ情報から導出し、第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均タイムワープコンター情報をタイムワープ情報から導出するように構成されている。この場合、コンテキスト状態決定部は、周波数伸長情報を決定するために、第1のオーディオフレームにわたる第1の平均タイムワープコンター情報と第2のオーディオフレームにわたる第2の平均タイムワープコンター情報との比を計算するように構成されている。第1および第2のオーディオフレーム(これらは重複し得る)わたるタイムワープコンター情報の平均を計算することは特に計算的効率が高いこと、および上記第1の平均タイムワープコンター情報と上記第2の平均タイムワープコンター情報間の比により、十分に正確な周波数伸長情報が提供されることが分かっている。
【0026】
好ましい実施形態において、コンテキスト状態決定部、第1および第2の平均周波数情報または第1および第2の平均タイムワープコンター情報を、複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンターから導出するように構成されている。複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンターを設定するという概念は、再サンプリング時間の正確でかつ歪みの無い計算を容易にするだけでなく、2つの連続するオーディオフレーム間の基本周波数の変化の推定に対する非常に優れた基礎を提供することが分かっている。したがって、共通のタイムワープコンターは、異なるオーディオフレーム間の相対周波数の経時変化を特定するための非常に優れた手段であると認識されている。
【0027】
好ましい実施形態において、オーディオ信号復号器は、複数の連続オーディオフレームにわたる相対ピッチの時間変遷を示すタイムワープコンター情報をタイムワープ情報に基づいて計算するように構成されたタイムワープコンター計算部を備える。この場合、コンテキスト状態決定部は、周波数伸長情報を導出するためにタイムワープコンター情報を使用するように構成されている。例えば、オーディオフレームの各サンプルについて定義され得るタイムワープコンター情報は、コンテキスト状態の決定の適合の非常に優れた基礎を成すことが分かっている。
【0028】
好ましい実施形態において、オーディオ信号復号器は、再サンプリング位置計算部を備える。再サンプリング位置計算部は、タイムワープ再サンプリング部によって使用される再サンプリング位置を、当該再サンプリング位置の時間変動が前記タイムワープコンター情報によって決定されるように、タイムワープコンター情報に基づいて計算するよう構成されている。周波数伸長情報の決定および再サンプリング位置の決定の両方に対して共通のタイムワープコンター情報を使用することは、周波数伸長情報を適用することによって得られる伸長されたコンテキストが現在のオーディオフレームのスペクトルの特性に良好に適合されるという効果を有し、現在のオーディオフレームのオーディオ信号は、少なくともほぼ、計算された再サンプリング位置を用いた再サンプリング動作によって復元される以前のオーディオ信号の延長であることが分かっている。
【0029】
好ましい実施形態において、コンテキスト状態決定部は、コンテキスト状態を示す現在の数値コンテキスト値を複数の以前に復号されたスペクトル値(コンテキストメモリ構造によって示されるかあるいはこれに含まれ得る)に応じて導出し、1つ以上のスペクトル値を表す記号コードまたは1つ以上のスペクトル値の数値表現の一部へのコード値のマッピングを示すマッピング規則を現在の数値コンテキスト値に応じて選択するように構成されている。この場合、コンテキストベースのスペクトル値復号部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、コンテキスト状態決定部によって選択されたマッピング規則を使用して復号するように構成されている。現在の数値コンテキスト値が複数の以前に復号されたスペクトル値から導出され、マッピング規則が当該(現在の)数値コンテキスト値から選択されるコンテキスト適合(コンテキスト適応化)において、コンテキスト状態を適応的に決定すること(例えば、適応的に(現在の)数値コンテキスト値の決定すること)が非常に有効であることが分かっている。なぜなら、このような概念を用いることにより、著しく不適切なマッピング規則を選択することを回避することができるからである。これに対し、コンテキスト状態、すなわち、現在の数値コンテキスト値の導出が連続するフレーム間の基本周波数の変化に応じて適合されなければ、基本周波数の変化がある場合にマッピング規則の選択ミスが頻繁に生じることになり、その結果、コーデイング利得が低下することになる。コーデイング利得のこのような低下は、本明細書に記載される機構によって回避される。
【0030】
好ましい実施形態において、コンテキスト状態決定部は、予備コンテキストメモリ構造を、当該予備コンテキストメモリ構造のエントリが第1のオーディオフレームの1つ以上のスペクトル値を示すように設定および更新するよう構成され、予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた(例えば、第1のオーディオフレームの時間領域表現を提供において対応付けられた)、前記周波数領域−時間領域変換部の周波数ビンまたは隣接する周波数ビンの集合を示している。コンテキスト状態決定部は、第1のオーディオフレームに続く第2のオーディオフレームの復号のための周波数スケーリングされたコンテキストメモリ構造を、第1の周波数インデックスを有する予備コンテキストメモリ構造の所与のエントリまたはサブエントリが、第2の周波数インデックスを有する周波数スケーリングされたコンテキストメモリ構造の対応するエントリまたはサブエントリにマッピングされるように、予備コンテキストメモリ構造に基づいて取得するよう構成されている。第2の周波数インデックスは、周波数領域−時間領域変換部の第1の周波数インデックスとは異なるビンまたは隣接する周波数ビンの異なる集合に対応付けられている。
【0031】
換言すれば、周波数領域−時間領域変換部のi番目のスペクトルビン(または周波数領域−時間領域変換部のスペクトルビンのi番目の集合)に対応する1つ以上のスペクトル値に基づいて取得された予備コンテキストメモリ構造のエントリが、周波数領域−時間領域変換部のj番目の周波数ビン(または周波数ビンのj番目の集合)に対応付けられた周波数スケーリングされたコンテキストメモリ構造のエントリにマッピングされる(ここで、jは、iとは異なる)。コンテキストメモリ構造のエントリを周波数スケーリングされたコンテキストメモリ構造のエントリにマッピングするというこのような概念により、コンテキスト状態の決定を基本周波数の変化に適合させる特に計算効率の高い方法が提供されることが分かっている。この概念を用いて、コンテキストの周波数スケーリングを少ない労力で達成することができる。したがって、周波数スケーリングされたコンテキストメモリ構造からの現在の数値コンテキスト値の導出は、大きなピッチ変動が無い場合は、従来の(例えば、予備)コンテキストメモリ構造からの現在の数値コンテキスト値の導出と同一であり得る。よって、上述の概念により、既存のオーディオ復号器においてコンテキスト適合を最小限の労力で実現することが可能となる。
【0032】
好ましい実施形態において、コンテキスト状態決定部は、第3の周波数インデックスが対応付けられた第2のオーディオフレームの1つ以上のスペクトル値または第2のオーディオフレームの1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードの復号のための現在のコンテキスト状態を示すコンテキスト状態値を、周波数スケーリングされたコンテキストメモリ構造の値を用いて導出するように構成され、周波数スケーリングされたコンテキストメモリ構造の値の周波数インデックスは、第3の周波数インデックスと所定の関係にある。この場合、第3の周波数インデックスは、現在のコンテキスト状態を用いて復号される第2のオーディオフレームの1つ以上のスペクトル値が対応付けられた、周波数領域−時間領域復号部の周波数ビンまたは隣接する周波数ビンの集合を指定する。
【0033】
コンテキスト状態値(例えば、現在の数値コンテキスト値)の導出のために復号される1つ以上のスペクトル値の所定の(かつ、好ましくは、固定の)相対的環境(周波数ビンに関する相対的環境)を使用することにより、当該コンテキスト状態値の計算を適度に単純にしておくことが可能となることが分かっている。周波数スケーリングされたコンテキストメモリ構造をコンテキスト状態値の導出の入力として用いることにより、基本周波数の変動を効率的に考慮することができる。
【0034】
好ましい実施形態において、コンテキスト状態決定部は、対応するターゲット周波数インデックスを有する周波数スケーリングされたコンテキストメモリ構造の複数のエントリのそれぞれを、対応するソース周波数インデックスを有する予備コンテキストメモリ構造の対応するエントリの値に設定するように構成されている。コンテキスト状態決定部は、周波数スケーリングされたコンテキストメモリ構造のエントリおよび予備コンテキストメモリ構造の対応するエントリの対応する周波数インデックスを、当該対応する周波数インデックスの比が、予備コンテキストメモリ構造のエントリが対応付けられた現在のオーディオフレームと、周波数スケーリングされたコンテキストメモリ構造のエントリによって復号コンテキストが決定される次のオーディオフレームとの間の基本周波数の変化によって決まるように、決定するよう構成されている。このような概念を周波数スケーリングされたコンテキストメモリ構造のエントリの導出に利用することにより、複雑度を低く抑えながらも、周波数スケーリングされたコンテキストメモリ構造を基本周波数の変化に適合させることができる。
【0035】
好ましい実施形態において、コンテキスト状態決定部は、予備コンテキストメモリ構造の複数のエントリのそれぞれが第1のオーディオフレームの複数のスペクトル値に基づくように予備コンテキストメモリ構造を設定するよう構成され、予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた(第1のオーディオフレームに関して)、周波数領域−時間領域変換部の隣接する周波数ビンの集合を示している。コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた予備周波数ビン個別コンテキスト値を、予備コンテキストメモリ構造のエントリから抽出するように構成されている。加えて、コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた、周波数スケーリングされた周波数ビン個別コンテキスト値を、第1の周波数ビンインデックスを有する所与の予備周波数ビン個別コンテキスト値が第2の周波数ビンインデックスを有する対応する周波数スケーリングされた周波数ビン個別コンテキスト値にマッピングされ、その結果、予備周波数ビン個別コンテキスト値の周波数ビン個別マッピングが得られるように、取得するよう構成されている。コンテキスト状態決定部は、複数の周波数スケーリングされた周波数ビン個別コンテキスト値を組み合わせて、周波数スケーリングされたコンテキストメモリ構造の1つの組み合わせエントリにするようにさらに構成されている。したがって、複数の周波数ビンがコンテキストメモリ構造の単一のエントリにまとめられている場合であっても、周波数スケーリングされたコンテキストメモリ構造を基本周波数の変化に対して非常に高い粒度で適合させることができる。よって、基本周波数の変化へのコンテキストの特に正確な適合を実現することができる。
【0036】
本発明による別の実施形態は、符号化されたスペクトル表現と符号化されたタイムワープ情報とを含む、入力オーディオ信号の符号化された表現を提供するためのオーディオ信号符号化器を実現する。オーディオ信号符号化器は、タイムワープ情報に応じてタイムワープされた、入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現を提供するように構成された周波数領域表現提供部を備える。オーディオ信号符号化器は、周波数領域表現の1つ以上のスペクトル値または周波数領域表現の1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態に応じて符号化して、符号化されたスペクトル表現の符号化されたスペクトル値を取得するように構成されたコンテキストベースのスペクトル値符号化部を更に備える。オーディオ信号復号器はまた、現在のコンテキスト状態を1つ以上前に符号化されたスペクトル値に応じて決定するように構成されたコンテキスト状態決定部であって、コンテキストの決定を、連続するオーディオフレーム間の基本周波数の変化に適合させるコンテキスト状態決定部も備える。
【0037】
このオーディオ信号符号化器は、上述のオーディオ信号復号器と同様の考え方および知見に基づくものである。また、オーディオ信号符号化器は、コンテキスト状態計算において、以前に符号化されたスペクトル値が以前に復号されたスペクトル値の役割を果たすオーディオ信号復号器に関して記載された特徴および機能のいずれでも補足することができる。
【0038】
好ましい実施形態において、コンテキスト状態決定部は、現在の数値コンテキスト値を複数の以前に符号化されたスペクトル値に応じて導出し、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の一部のコード値へのマッピングを示すマッピング規則を現在の数値コンテキスト値に応じて選択するように構成されている。この場合、コンテキストベースのスペクトル値符号化部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、コンテキスト状態決定部によって選択されたマッピング規則を使用して提供するように構成されている。
【0039】
本発明による別の実施形態は、復号されたオーディオ信号表現を符号化されたオーディオ信号表現に基づいて提供するための方法を実現する。
【0040】
本発明による別の実施形態は、入力オーディオ信号の符号化された表現を提供するための方法を実現する。
【0041】
本発明による別の実施形態は、上記方法のうち1つを実行するためのコンピュータプログラムを実現する。
【0042】
上記の方法およびコンピュータプログラムは、上述のオーディオ信号復号器およびオーディオ信号符号化器と同様の検討に基づくものである。
【0043】
さらに、上記のオーディオ信号符号化器、方法およびコンピュータプログラムは、オーディオ信号復号器に関して上記に記載され、また後述される特徴及び機能のいずれでも補足することができる。
【図面の簡単な説明】
【0044】
次に、本発明による実施形態を添付の図面を参照しながら説明する。
【図1A】図1aは、本発明の一実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図1B】図1bは、本発明の一実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2A1】図2aは、本発明の別の実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図2A2】図2aは、本発明の別の実施形態によるオーディオ信号符号化器のブロック模式図を示す。
【図2B1】図2bは、本発明の別の実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2B2】図2bは、本発明の別の実施形態によるオーディオ信号復号器のブロック模式図を示す。
【図2C】図2cは、本発明の実施形態によるオーディオ符号化器において使用される算術符号化部のブロック模式図を示す。
【図2D】図2dは、本発明の実施形態によるオーディオ信号復号器において使用される算術復号部のブロック模式図を示す。
【図3A】図3aは、コンテキスト適合型算術コーディング(符号化/復号)のグラフ表現を示す。
【図3B】図3bは、相対ピッチコンターのグラフ表現を示す。
【図3C】図3cは、タイムワープ型修正離散コサイン変換(TW−MDCT)の伸長効果のグラフ表現を示す。
【図4A】図4aは、本発明の実施形態によるオーディオ信号符号化器およびオーディオ信号復号器において使用されるコンテキスト状態決定部のブロック模式図を示す。
【図4B】図4bは、図4aによるコンテキスト状態決定部によって実行され得るコンテキストの周波数圧縮のグラフ表現を示す。
【図4C】図4cは、本発明による実施形態において適用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図4D】図4d〜図4eは、本発明による実施形態において使用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図4E】図4d〜図4eは、本発明による実施形態において使用され得る、コンテキストを伸長または圧縮するためのアルゴリズムの疑似プログラムコード表現を示す。
【図5A】図5a、図5bは、本発明の一実施形態による、オーディオ信号復号器のブロック模式図からの詳細な抜粋を示す。
【図5B】図5a、図5bは、本発明の一実施形態による、オーディオ信号復号器のブロック模式図からの詳細な抜粋を示す。
【図6A】図6a、図6bは、本発明の一実施形態による、復号されたオーディオ信号表現を提供するためのマッピング部のフローチャートからの詳細な抜粋を示す。
【図6B】図6a、図6bは、本発明の一実施形態による、復号されたオーディオ信号表現を提供するためのマッピング部のフローチャートからの詳細な抜粋を示す。
【図7A1】図7aは、本発明の一実施形態によるオーディオ復号器において使用されるデータ要素およびヘルプ要素の定義の凡例を示す。
【図7A2】図7aは、本発明の一実施形態によるオーディオ復号器において使用されるデータ要素およびヘルプ要素の定義の凡例を示す。
【図7B】図7bは、本発明の一実施形態によるオーディオ復号器において使用される定数の定義の凡例を示す。
【図8】図8は、対応する復号されたタイムワープ値へのコードワードインデックスのマッピングのテーブル表現を示す。
【図9】図9は、等間隔ワープノード間を直線補間するためのアルゴリズムの疑似プログラムコード表現を示す。
【図10A】図10aは、ヘルパー関数「warp_time_inv」の疑似プログラムコード表現を示す。
【図10B】図10bは、ヘルパー関数「warp_inv_vec」の疑似プログラムコード表現を示す。
【図11A】図11は、サンプル位置ベクトルおよび遷移長を計算するためのアルゴリズムの疑似プログラムコード表現を示す。
【図11B】図11は、サンプル位置ベクトルおよび遷移長を計算するためのアルゴリズムの疑似プログラムコード表現を示す。
【図12】図12は、ウィンドウシーケンスおよびコアコーダフレーム長に依存する合成ウィンドウ長Nの値のテーブル表現を示す。
【図13】図13は、許可されたウィンドウシーケンスの行列表現を示す。
【図14A】図14は、ウィンドウ処理および「EIGHT_SHORT_SEQUENCE」のタイプのウィンドウシーケンスの内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図14B】図14は、ウィンドウ処理および「EIGHT_SHORT_SEQUENCE」のタイプのウィンドウシーケンスの内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図15】図15は、「EIGHT_SHORT_SEQUENCE」ではないタイプの他のウィンドウシーケンスのウィンドウ処理および内部重複−加算のためのアルゴリズムの疑似プログラムコード表現を示す。
【図16】図16は、再サンプリングを行うためのアルゴリズムの疑似プログラムコード表現を示す。
【図17】図17は、本発明によるいくつかの実施形態において使用され得る、状態計算のためのコンテキストのグラフ表現を示す。
【図18】図18は、定義の凡例を示す。
【図19】図19は、アルゴリズム「arith_map_context()”」の疑似プログラムコード表現を示す。
【図20】図20は、アルゴリズム「arith_get_context()」の疑似プログラムコード表現を示す。
【図21】図21は、アルゴリズム「arith_get_pk()」の疑似プログラムコード表現を示す。
【図22A】図22は、アルゴリズム「arith_decode()”」の疑似プログラムコード表現を示す。
【図22B】図22は、アルゴリズム「arith_decode()”」の疑似プログラムコード表現を示す。
【図23】図23は、1つ以上の下位ビットプレーンを復号するためのアルゴリズムの疑似プログラムコード表現を示す。
【図24】図24は、算術復号されたスペクトル値の配列のエントリを設定するためのアルゴリズムの疑似プログラムコード表現を示す。
【図25】図25は、関数「arith_update_context()」の疑似プログラムコード表現を示す。
【図26】図26は、アルゴリズム「arith_finish()”」の疑似プログラムコード表現を示す。
【図27A】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27B】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27C】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27D】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27E】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【図27F】図27a〜図27fは、本発明の一実施形態による、オーディオストリームの構文要素の表現を示す。
【発明を実施するための形態】
【0045】
1.図1aによるオーディオ信号符号化器
図1aは、本発明の一実施形態によるオーディオ信号符号化器100のブロック模式図を示す。
【0046】
オーディオ信号符号化器100は、入力オーディオ信号110を受信し、この入力オーディオ信号の符号された表現112を提供するように構成されている。入力オーディオ信号の符号化された表現112は、符号化されたスペクトル表現および符号化されたタイムワープ情報を含む。
【0047】
オーディオ信号符号化器100は、入力オーディオ信号110およびタイムワープ情報122を受信するように構成された周波数領域表現提供部120を備える。周波数領域表現提供部120(タイムワーピング周波数領域表現提供部であると考えられ得る)は、タイムワープ情報122に従ってタイムワープされた、入力オーディオ信号110のタイムワープされたバージョンを表す周波数領域表現124を提供するように構成されている。オーディオ信号符号化器100はまた、スペクトル値符号化部130を備えており、スペクトル値符号化部130は、符号化されたスペクトル表現の符号化されたスペクトル値を取得するために、周波数領域表現124の1つ以上のスペクトル値または周波数領域表現124の1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワード132をコンテキスト状態に応じて提供する。コンテキスト状態は、例えば、コンテキスト状態情報134によって示され得る。オーディオ信号符号化器100はまた、現在のコンテキスト状態を1つ以上前に符号化されたスペクトル値124に応じて決定するように構成されたコンテキスト状態決定部140も備える。コンテキスト状態決定部140は、結果として、コンテキスト状態情報134をコンテキストベースのスペクトル値符号化部130に提供することができ、コンテキスト状態情報は、例えば、現在の数値コンテキスト値(マッピング規則またはマッピングテーブルの選択のための数値コンテキスト値)の形態または選択されたマッピング規則もしくはマッピングテーブルへの参照の形態をとり得る。コンテキスト状態決定部140は、コンテキスト状態の決定を、連続するフレーム間の基本周波数の変化に適合させるように構成されている。したがって、コンテキスト状態決定部は、連続するオーディオフレーム間の基本周波数の変化に関する情報を評価することができる。連続するフレーム間の基本周波数の変化に関するこの情報は、例えば、周波数領域表現提供部120によって使用されるタイムワープ情報122に基づくものであってもよい。
【0048】
したがって、コンテキスト状態情報134の導出が2つのオーディオフレーム間の基本周波数の変動に適合されるため、オーディオ信号符号化器は、経時変化する基本周波数または経時変化するピッチを含むオーディオ信号部分が処理対象である場合、特に高いコーディング効率を実現することがきる。したがって、コンテキストベースのスペクトル値符号化部130によって使用されるコンテキストは、基本周波数が1つのオーディオフレームから次のオーディオフレームへ(すなわち、2つのオーディオフレーム間で)変化する場合に起こる周波数領域表現124の(周波数に関する)スペクトル圧縮または(周波数に関する)スペクトル拡張に良好に適合される。その結果、コンテキスト状態情報134は、基本周波数が変化した場合であっても周波数領域表現124に概して良好に適合され、コンテキストベースのスペクトル値符号化部のコーディング効率が良好となる。これに対し、コンテキスト状態が基本周波数の変化に適合されない場合、コンテキストは、基本周波数が変化する状況においては不適切なものとなり、したがってコーディング効率が大きく低下することが分かっている。
【0049】
したがって、オーディオ信号符号化器100は、典型的には、基本周波数が変化する状況において、コンテキストベースのスペクトル値符号化を用いた従来のオーディオ信号符号化器よりも性能面で優れているということができる。
【0050】
ここで、連続するフレーム間の(すなわち、第1のフレームから第2の次のフレームへの)基本周波数の変化にコンテキスト状態の決定を適合させる方法には、多くの異なる実施例が存在するという点に留意されたい。例えば、エントリが周波数領域表現124のスペクトル値(または、より厳密にはその内容)から定義されるかあるいは導出されるコンテキストメモリ構造を、コンテキスト状態を示す現在の数値コンテキスト値が導出される前に、周波数において伸長または圧縮してもよい。このような概念については、後に詳述する。しかし、代わりに、エントリが周波数領域表現124に基づいているコンテキストメモリ構造のエントリからコンテキスト状態情報134を導出するために、アルゴリズムを変化させる(あるいは適合させる)ことも可能である。例えば、このような周波数スケーリングされていないコンテキストメモリ構造のどのエントリを考慮するかについて調整することができるが、その方法については本明細書では詳しく記載しない。
2.図1bによるオーディオ信号復号器
図1bは、オーディオ信号復号器150のブロック模式図を示す。
【0051】
オーディオ信号復号器150は、符号化されたスペクトル表現および符号化されたタイムワープ情報を含み得る符号化されたオーディオ信号表現152を受信するように構成されている。オーディオ信号復号器150は、復号されたオーディオ信号表現154を符号化されたオーディオ信号表現152に基づいて提供するように構成されている。
【0052】
オーディオ信号復号器150は、符号化されたスペクトル表現のコードワードを受信し、これに基づいて、復号されたスペクトル値162を提供するように構成されたコンテキストベースのスペクトル値復号部160を備える。さらに、コンテキストベースのスペクトル値復号部160は、例えば、選択されたマッピング規則の現在の数値コンテキスト値の形態または選択されたマッピング規則への参照の形態をとり得るコンテキスト状態情報164を受信するように構成されている。コンテキストベースのスペクトル値復号部160は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコードワードをコンテキスト状態(コンテキスト状態情報164によって示され得る)に応じて復号して、復号されたスペクトル値162を取得するように構成されている。オーディオ信号復号器150はまた、1つ以上前に復号されたスペクトル値162に応じて現在のコンテキスト状態を決定するように構成されたコンテキスト状態決定部170も備える。オーディオ信号復号器150はまた、所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値復号部によって提供される復号されたスペクトル値162の集合に基づいて、タイムワープされた時間領域表現182を提供するように構成されたタイムワーピング周波数領域−時間領域変換部180も備える。タイムワーピング周波数領域−時間領域変換部180は、タイムワープされた時間領域表現182が復号されたオーディオ信号表現154を構成する(あるいは同等に、後処理部が使用される場合は、復号されたオーディオ信号表現のベースを形成する)ように、タイムワープされた時間領域表現182の提供を、符号化されたオーディオ信号表現152に含まれる符号化されたタイムワープ情報によって示される所望のタイムワープに適合させるために、タイムワープ情報184を受信するよう構成されている。
【0053】
タイムワーピング周波数領域−時間領域変換部180は、例えば、所与のオーディオフレームに対応付けられ、コンテキストベースのスペクトル値復号部160によって提供される復号されたスペクトル値162の集合に基づいて、所与のオーディオフレームの時間領域表現を提供するように構成された周波数領域−時間領域変換部を備え得る。タイムワーピング周波数領域−時間領域変換部はまた、当該所与のオーディオフレームの時間領域表現またはその処理されたバージョンを、タイムワープ情報184に応じて再サンプリングして、当該所与のオーディオフレームの再サンプリングされた時間領域表現182を取得するように構成されたタイムワープ再サンプリング部も備え得る。
【0054】
さらに、コンテキスト状態決定部170は、連続するオーディオフレーム間の(すなわち、第1のオーディオフレームから第2の次のオーディオフレームへの)基本周波数の変化にコンテキスト状態(コンテキスト状態情報164によって示される)の決定を適合させるように構成されている。
【0055】
オーディオ信号復号器150は、オーディオ信号符号化器100に関して既に述べた知見に基づいている。具体的には、オーディオ信号復号器は、コンテキスト状態(および、ひいては、異なるスペクトル値が出現する統計的確率に関してコンテキストベースのスペクトル値復号部160によって用いられる仮定)が当該コンテキスト情報を用いて復号される現在のオーディオフレームのスペクトルに、少なくとも概して良好に適合されるように、コンテキスト状態の決定を連続するオーディオフレーム間の基本周波数の変化に適合させるよう構成されている。したがって、当該現在のオーディオフレームのスペクトル値を符号化するコードワードは、特に短くなり得る。なぜなら、コンテキスト状態決定部170によって提供されたコンテキスト状態情報に応じて選択された選択済みのコンテキストと復号されるスペクトル値との間に良好な一致があれば、一般に、コードワードは比較的短くなり、これにより、ビットレート効率が良好となるからである。
【0056】
さらに、コンテキスト状態決定部170は、効率的に実現することができる。なぜなら、タイムワーピング周波数領域−時間領域変換部により使用される、符号化されたオーディオ信号表現152に含まれるタイムワープ情報184を、連続するオーディオフレーム間の基本周波数の変化に関する情報として、あるいは、連続するオーディオフレーム間の基本周波数の変化に関する情報を導出するために、コンテキスト状態決定部170によって再使用することができるからである。
【0057】
したがって、コンテキスト状態の決定を連続するフレーム間の基本周波数の変化に適合させるのに、追加の副情報すら必要とされない。したがって、オーディオ信号復号器150により、追加の副情報を一切必要とすることなく、コンテキストベースのスペクトル値復号のコーディング効率が向上し(そして、符号化器100側での符号化効率の向上が可能となり)、これにより、ビットレート効率が著しく向上する。
【0058】
さらに、連続するフレーム間の(すなわち、第1のオーディオフレームから第2の次のオーディオフレームへの)基本周波数の変化にコンテキスト状態の決定を適合させるために異なる概念を用いることができるという点に留意されたい。例えば、エントリが復号されたスペクトル値162に基づいているコンテキストメモリ構造を、コンテキスト状態決定部170によってコンテキスト状態情報164が周波数スケーリングされたコンテキストメモリ構造から導出される前に、例えば、周波数スケーリング(例えば、周波数伸長または周波数圧縮)を用いて適合させることができる。しかし、代わりに、コンテキスト状態情報164を導出するためにコンテキスト状態決定部170によって異なるアルゴリズムが使用され得る。例えば、所与のコードワード周波数インデックスを有するコードワードの復号のためのコンテキスト状態を決定するためにコンテキストメモリ構造のどのエントリを使用するかについて適合させることができる。後者の概念は、本明細書で詳しく記載されていないが、本発明によるいくつかの実施形態において適用され得ることは言うまでもない。また、基本周波数の変化を決定するために異なる概念が適用され得る。
3.図2aによるオーディオ信号符号化器
図2aは、本発明の一実施形態によるオーディオ信号符号化器200のブロック模式図を示す。尚、図2によるオーディオ信号符号化器200は、図1aによるオーディオ信号符号化器100と非常に類似し得るため、同一の手段および信号には同一の参照符号を付し、重複する詳細な説明は省略する。
【0059】
オーディオ信号符号化器200は、入力オーディオ信号110を受信し、これに基づいて、符号化されたオーディオ信号表現112を提供するように構成されている。任意には、オーディオ信号符号化器200はまた、外部で生成されたタイムワープ情報214を受信するようにも構成されている。
【0060】
オーディオ信号符号化器200は、周波数領域表現提供部120を備え、周波数領域表現提供部120の機能は、オーディオ信号符号化器100の周波数領域表現提供部120の機能と同一であってもよい。周波数領域表現提供部120は、入力オーディオ信号110のタイムワープされたバージョンを表す周波数領域表現を提供し、この周波数領域表現を124で示す。オーディオ信号符号化器200はまた、コンテキストベースのスペクトル値符号化部130およびコンテキスト状態決定部140も備え、これらは、オーディオ信号符号化器100に関して述べたように動作する。したがって、コンテキストベースのスペクトル値符号化部130は、コードワード(例えば、acod_m)を提供し、各コードワードは、符号化されたスペクトル表現の1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を表す。
【0061】
オーディオ信号符号化器は、オーディオフレーム中の基本周波数の変化、および/または入力オーディオ信号110の基本周波数の時間変遷、および/または入力オーディオ信号110のピッチの時間変遷を補償するために、入力オーディオ信号110を受信し、これに基づいて、例えば、周波数領域表現提供部120によって入力オーディオ信号110に適用されるタイムワープを示すタイムワープコンター情報222を提供するように構成された、タイムワープ分析部または基本周波数分析部またはピッチ分析部220を任意に備える。オーディオ信号符号化器200はまた、符号化されたタイムワープ情報226をタイムワープコンター情報222に基づいて提供するように構成されたタイムワープコンター符号化部224も備える。符号化されたタイムワープ情報226は、好ましくは、符号化されたオーディオ信号表現112に含められ、例えば、(符号化された)タイムワープ比値「tw_ratio[i]」の形態をとり得る。
【0062】
さらに、タイムワープコンター情報222は、周波数領域表現提供部120およびコンテキスト状態決定部140に提供され得る点に留意されたい。
【0063】
オーディオ信号符号化器200は、入力オーディオ信号110またはその前処理されたバージョンを受信し、心理音響分析を実行して、例えば、時間マスキング効果および/または周波数マスキング効果を測定するように構成された心理音響モデル処理部228を更に備え得る。したがって、心理音響モデル処理部228は、例えば、周波数領域オーディオ符号化器に関して周知であるような、入力オーディオ信号の異なる周波数帯域の心理音響的な重要性を表す制御情報230を提供することができる。
【0064】
以下に、周波数領域表現提供部120の信号経路について簡単に説明する。周波数領域表現提供部120は、任意の前処理部120aを含み、前処理部120aは、入力オーディオ信号110を任意には前処理して、入力オーディオ信号110の前処理されたバージョン120bを提供することができる。周波数領域表現提供部120はまた、入力オーディオ信号110またはその前処理されたバージョン120bをサンプリング位置計算部120eから受信されるサンプリング位置情報120dに応じてサンプリングまたは再サンプリングするように構成されたサンプリング部/再サンプリング部も備える。したがって、サンプリング部/再サンプリング部120cは、時変サンプリングまたは再サンプリングを入力オーディオ信号110(またはその前処理されたバージョン120b)に適用することができる。このような時変サンプリング(有効サンプル点間の時間距離が時間的に変動する)を適用することにより、入力オーディオ信号110と比較してピッチまたは基本周波数の時間変動が低減した、サンプリングまたは再サンプリングされた時間領域表現120fが取得される。サンプリング位置は、タイムワープコンター情報222に応じてサンプリング位置計算部120eによって計算される。周波数領域表現提供部120はまた、ウィンドウ処理部120gも備え、ウィンドウ処理部120gは、サンプリング部または再サンプリング部120cによって提供されたサンプリングまたは再サンプリングされた時間領域表現120fのウィンドウ処理を行うように構成されている。ウィンドウ処理は、ブロッキングアーチファクト(ブロッキング副作用)を低減または除去し、これにより、オーディオ信号復号器において円滑な重複−加算演算を可能にするために行われる。周波数領域表現提供部120はまた、時間領域−周波数領域変換部120iも備え、時間領域−周波数領域変換部120iは、ウィンドウ処理され、サンプリングされた/再サンプリングされた時間領域表現120hを受信し、これに基づいて、例えば、入力オーディオ信号110の1つのオーディオフレームにつきスペクトル係数の1つの集合を含み得る(入力オーディオ信号のオーディオフレームは、例えば、重複していても重複していなくてもよく、重複オーディオフレームの場合のいくつかの実施形態においては、およそ50%の重複が好ましい)周波数領域表現120jを提供するように構成されている。しかし、いくつかの実施形態では、1つのオーディオフレームに対してスペクトル係数の複数の集合が提供され得る点に留意されたい。
【0065】
周波数領域表現提供部120は、時間領域雑音整形および/または長期予測および/またはその他の形態のスペクトル後処理を実行して、これにより、後処理された周波数領域表現120lを取得するように構成されたスペクトル処理部120kを任意には備える(備えてもよい)。
【0066】
周波数領域表現提供部120は、スケーリング部/量子化部120mを任意には備え、スケーリング部/量子化部120mは、例えば、心理音響モデル処理部228によって提供された制御情報230に応じて、周波数領域表現120jまたはその後処理されたバージョン120lの異なる周波数ビン(または周波数帯域)をスケーリングするように構成され得る。したがって、周波数ビン(または複数の周波数ビンを含む周波数帯域)を、例えば、心理音響的な重要性が高い周波数ビン(または周波数帯域)が、実質上、コンテキストベースのスペクトル値符号化部によって高精度に符号化され、心理音響的な重要性が低い周波数ビン(または周波数帯域)が低精度で符号化されるように、心理音響的な重要性に応じてスケーリングすることができる。さらに、制御情報230は、任意には、ウィンドウ処理部、時間領域−周波数領域変換部および/またはスペクトル後処理部のパラメータを調整し得る点に留意されたい。また、制御情報230は、当業者に公知であるように、符号化されたオーディオ信号表現112に符号化された形態で含めることができる。
【0067】
オーディオ信号符号化器200の機能に関し、タイムワープ(不均一な時変サンプリングまたは再サンプリングという意味のタイムワープ)は、サンプリング部/再サンプリング部120cによってタイムワープコンター情報220に応じて適用されるということができる。したがって、時変サンプリング/再サンプリングを実行しなかったらスペクトルにスミアを生じさせることになる(スミアスペクトルを発生させることになる)ピッチの時間変動を有する入力オーディオ信号が存在する場合であっても、顕著なスペクトルのピークおよび谷を有する周波数領域表現120jを実現することができる。加えて、コンテキストベースのスペクトル値符号化部130による使用されるコンテキスト状態の導出は、連続するオーディオフレーム間の基本周波数の変化に応じて適合化され、これにより、上述したように、コーディング効率が特に高くなる。さらに、サンプリング部/再サンプリング部120cのためのサンプリング位置の計算およびコンテキスト状態の決定の適合の両方のベースとなるタイムワープコンター情報222は、タイムワープコンター情報222を示す符号化されたタイムワープ情報226が、符号化されたオーディオ信号表現112に含められるように、タイムワープコンター符号化部224を用いて符号化される。したがって、符号化されたオーディオ信号表現112により、符号化された入力オーディオ信号110を効率的に復号する場合に必要となる情報が、オーディオ信号復号器側で提供される。
【0068】
さらに、オーディオ信号符号化器200の各機能部は、オーディオ信号復号器240の各機能部と実質的に逆の機能を果たし得るという点に留意されたい。このことについては、図2bを参照して後述する。さらに、本明細書全体を通してオーディオ信号復号器の機能に関する詳細な記述を参照されたい。これにより、オーディオ信号復号器の理解が可能となる。
【0069】
オーディオ信号復号器およびその個々の機能部については、大幅な変形が可能であるという点にも留意されたい。例えば、サンプリング/再サンプリング、ウィンドウ処理および時間領域−周波数領域変換といったいくつかの機能を組み合わせることができる。さらに、必要な場合には、追加の処理ステップを導入してもよい。
【0070】
さらに、当然ながら、符号化されたオーディオ信号表現に、所望に応じてあるいは必要に応じて、追加の副情報を含ませるようにしてもよい。
4.図2bによるオーディオ信号復号器
図2bは、本発明の一実施形態によるオーディオ信号復号器240のブロック模式図を示す。オーディオ信号復号器240は、図1bによるオーディオ信号復号器150と非常に類似し得るため、同一の手段および信号には同一の参照符号を付し、重複する詳細な説明は省略する。
【0071】
オーディオ信号復号器240は、符号化されたオーディオ信号表現152を、例えば、ビットストリームの形態で受信するように構成されている。符号化されたオーディオ信号表現152は、符号化されたスペクトル表現を、例えば、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を表すコードワード(例えば、acod_m)の形態で含む。符号化されたオーディオ信号表現152はまた、符号化されたタイムワープ情報も含む。さらに、オーディオ信号復号器240は、復号されたオーディオ信号表現154、例えば、オーディオコンテンツの時間領域表現を提供するように構成されている。
【0072】
オーディオ信号復号器240は、符号化されたオーディオ信号表現152からスペクトル値を表すコードワードを受信し、これに基づいて、復号されたスペクトル値162を提供するように構成されたコンテキストベースのスペクトル値復号部160を備える。さらに、オーディオ信号復号器240はまた、コンテキスト状態情報164をコンテキストベースのスペクトル値復号部160に提供するように構成されたコンテキスト状態決定部170も備える。オーディオ信号復号器240はまた、復号されたスペクトル値162を受信し、復号されたオーディオ信号表現154を提供するタイムワーピング周波数領域−時間領域変換部180も備える。
【0073】
オーディオ信号復号器240はまた、符号化されたオーディオ信号表現152に含まれる符号化されたタイムワープ情報を受信し、これに基づいて、復号されたタイムワープ情報254を提供するように構成されたタイムワープ計算部(またはタイムワープ復号部)250も備える。符号化されたタイムワープ情報は、例えば、基本周波数またはピッチの時間変動を示すコードワード「tw_ratio[i]」を含み得る。復号されたタイムワープ情報254は、例えば、ワープコンター情報の形態をとり得る。詳しく後述するように、例えば、復号されたタイムワープ情報254は、値「warp_value_tbl[tw_ratio[i]]」または値prel[n]を含み得る。任意には、オーディオ信号復号器240はまた、復号されたタイムワープ情報254からタイムワープコンター情報258を導出するように構成されたタイムワープコンター計算部256も備える。タイムワープコンター情報258は、例えば、コンテキスト状態決定部170およびタイムワーピング周波数領域−時間領域変換部180のための入力情報として機能し得る。
【0074】
以下に、タイムワーピング周波数領域−時間領域変換部に関する詳細の一部について説明する。同変換部180は、復号されたスペクトル値162をコンテキストベースのスペクトル値復号部160から受信し、復号されたスペクトル値162の逆量子化および/または再スケーリングされたバージョン180bを提供するように構成され得る逆量子化部/再スケーリング部180aを任意には備え得る。例えば、逆量子化部/再スケーリング部180aは、オーディオ信号符号化器200の任意のスケーリング部/量子化部120mの演算と少なくともおよそ逆の動作を行うように構成され得る。したがって、任意の逆量子化部/再スケーリング部180aは、制御情報230に対応し得る制御情報を受信することができる。
【0075】
タイムワーピング周波数領域−時間領域変換部180は、復号されたスペクトル値162または逆量子化/再スケーリングされたスペクトル値180bを受信し、これに基づいて、スペクトル前処理されたスペクトル値180dを提供するように構成されたスペクトル前処理部180cを任意には備える(備えてもよい)。例えば、スペクトル前処理部180cは、オーディオ信号符号化器200のスペクトル後処理部120kと比較して逆の動作を行うことができる。
【0076】
タイムワーピング周波数領域−時間領域変換部180はまた、復号されたスペクトル値162、逆量子化/再スケーリングされたスペクトル値180bまたはスペクトル前処理されたスペクトル値180dを受信し、これに基づいて、時間領域表現180fを提供するように構成された周波数領域−時間領域変換部180eも備える。例えば、周波数領域−時間領域変換部は、逆スペクトル領域−時間領域変換、例えば、逆修正離散コサイン変換(IMDCT)を実行するように構成され得る。周波数領域−時間領域変換部180eは、例えば、復号されたスペクトル値の1つの集合に基づいて、あるいは、復号されたスペクトル値の複数の集合に基づいて、符号化されたオーディオ信号のオーディオフレームの時間領域表現を提供し得る。ただし、符号化されたオーディオ信号のオーディオフレームは、例えば、ある場合においては、時間において重複していてもよい。しかしながら、他の場合においては、オーディオフレームは、時間において重複していなくてもよい。
【0077】
タイムワーピング周波数領域−時間領域変換部180はまた、時間領域表現180fをウィンドウ処理し、周波数領域−時間領域変換部180eによって提供された時間領域表現180fに基づいて、ウィンドウ処理された時間領域表現180hを提供するように構成されたウィンドウ処理部180gも備える。
【0078】
タイムワーピング周波数領域−時間領域変換部180はまた、ウィンドウ処理された時間領域表現180hを再サンプリングし、これに基づいて、ウィンドウ処理および再サンプリングされた時間領域表現180jを提供するように構成された再サンプリング部180iも備える。再サンプリング部180iは、サンプリング位置情報180kをサンプリング位置計算部180lから受信するように構成されている。したがって、再サンプリング部180iは、符号化されたオーディオ信号表現の各フレームのウィンドウ処理および再サンプリングされた時間領域表現180jを提供し、ここで、連続するフレームは重複していてもよい。
【0079】
したがって、重複器/加算器180mは、符号化されたオーディオ信号表現152の連続するオーディオフレームのウィンドウ処理および再サンプリングされた時間領域表現180jを受信し、また、連続するオーディオフレーム間の平滑な移行を実現するために、当該ウィンドウ処理および再サンプリングされた時間領域表現180jを重複させて加算する(重複加算(オーバーラップ加算)する)。
【0080】
タイムワーピング周波数領域−時間領域変換部は、重複器/加算器180mによって提供された合成オーディオ信号180nに基づいて後処理を実行するように構成された時間領域後処理部180oを任意には備える(備えてもよい)。
【0081】
タイムワープコンター情報258は、コンテキスト状態情報164の導出をタイムワープコンター情報258に応じて適合させるように構成されたコンテキスト状態決定部170のための入力情報として機能する。さらに、タイムワーピング周波数領域−時間領域変換部180のサンプリング位置計算部180lはまた、タイムワープコンター情報を受信し、タイムワープコンター情報258に基づいてサンプリング位置情報180kを提供し、これにより、再サンプリング部180iによって実行される時変再サンプリングをタイムワープコンター情報によって示されるタイムワープコンターに応じて適合させる。したがって、タイムワープコンター情報258によって示されるタイムワープコンターに応じて、時間領域表現180fによって示される時間領域信号にピッチ変動が導入される。したがって、著しい経時ピッチ変動(または基本周波数の著しい経時変化)を有するオーディオ信号の時間領域表現180jを、顕著なピークおよび谷を有するスパーススペクトル180dに基づいて提供することができる。このようなスペクトルは、高いビットレート効率で符号化が可能であり、その結果、符号化されたオーディオ信号表現152に必要とされるビットレートが比較的低くなる。
【0082】
さらに、コンテキスト(または、より一般には、コンテキスト状態情報164の導出)はまた、コンテキスト状態決定部170を用いてタイムワープコンター情報258に応じて適合される。したがって、符号化されたタイムワープ情報252は、2度再使用され、また、スパーススペクトルの符号化を可能にすること、および、タイムワープが存在する場合の、または、基本周波数が時間的に変動する場合の特定のスペクトル特性へのコンテキスト状態情報の適合を可能にすることにより、コーディング効率の向上に寄与する。
【0083】
オーディオ信号符号化器240の各機能部の機能に関するさらなる詳細については後述する。
5.図2cによる算術符号化部
以下に、オーディオ信号符号化器100またはオーディオ信号符号化器200においてコンテキスト状態決定部140と組み合わせたコンテキストベースのスペクトル値符号化部130の代わりとなり得る算術符号化部290について説明する。算術符号化部290は、スペクトル値291(例えば、周波数領域表現124のスペクトル値)を受信し、これらのスペクトル値291に基づいてコードワード292a、292bを提供するように構成されている。
【0084】
換言すれば、算術符号化部290は、例えば、周波数領域オーディオ表現124の後処理、スケーリング、および量子化された複数のスペクトル値291を受信するように構成され得る。算術符号化部は、スペクトル値から最上位ビットプレーンmを抽出するように構成された最上位ビットプレーン抽出部290aを備える。なお、ここで、最上位ビットプレーンは、スペクトル値の最上位ビットから1または複数のビット(例えば、最上位ビットから2または3ビット)を含むものであってもよい。
【0085】
したがって、最上位ビットプレーン抽出部290aは、スペクトル値の最上位ビットプレーン値290bを提供する。算術符号化部290はまた、最上位ビットプレーン値mを表す算術コードワードacod_m[pki][m]を決定するように構成された第1のコードワード決定部290cも備える。
【0086】
任意には、第1のコードワード決定部290cはまた、例えば、利用可能な下位ビットプレーンの数を示す(ひいては最上位ビットプレーンの数値的重みを示す)1つ以上のエスケープコードワード(本明細書において「ARITH_ESCAPE」によっても示される)も提供し得る。第1のコードワード決定部290cは、累積度数テーブルインデックスpkiを有する(あるいは、これによって参照される)選択された累積度数テーブルを用いて、最上位ビットプレーン値mに対応付けられたコードワードを提供するように構成され得る。
【0087】
どの累積度数テーブルが選択されるべきであるかを決定するために、算術符号化部は、コンテキスト状態決定部140の機能を有し得る状態追跡部290dを好ましくは備える。状態追跡部290dは、例えば、どのスペクトル値が以前に符号化されたかを観察することにより算術符号化部の状態を追跡するように構成されている。状態追跡部290dは、これにより、コンテキスト状態情報134と同等であり得る状態情報290eを、例えば、場合によっては「s」または「t」で示される状態値の形態で提供する(ここで、状態値sは、周波数伸長因子sと混同してはならない)。
【0088】
算術符号化部290はまた、状態情報290eを受信し、選択された累積度数テーブルを示す情報290gをコードワード決定部290cに提供するように構成された累積度数テーブル選択部290fも備える。例えば、累積度数テーブル選択部290fは、64個の累積度数テーブルからなる集合のうちどの累積度数テーブルがコードワード決定部290cによる使用のために選択されるかを示す累積度数テーブルインデックス「pki」を提供し得る。あるいは、累積度数テーブル選択部290fは、選択された累積度数テーブル全体をコードワード決定部290cに提供することができる。よって、コードワード決定部290cは、選択された累積度数テーブルを最上位ビットプレーン値mのコードワードacod_m[pki][m]を提供するために用いることができ、したがって、最上位ビットプレーン値mを符号化する実際のコードワードacod_m[pki][m]は、mの値および累積度数テーブルインデックスpki、ひいては現在の状態情報290eに依存する。コーディング処理および取得されるコードワードのフォーマットのさらなる詳細については後述する。さらに、コンテキスト状態決定部140と同等である状態追跡部290dの動作に関する詳細については後述する。
【0089】
算術符号化部290は、下位ビットプレーン抽出部290hをさらに備え、下位ビットプレーン抽出部290hは、符号化されるスペクトル値の1つ以上が、最上位ビットプレーンのみを用いて符号化可能な値の範囲を上回る場合、スケーリングおよび量子化された周波数領域オーディオ表現291から1つ以上の下位ビットプレーンを抽出するように構成されている。下位ビットプレーンは、所望に応じて1つ以上のビットを含み得る。したがって、下位ビットプレーン抽出部290hは、下位ビットプレーン情報290iを提供する。
【0090】
算術符号化部290はまた、第2のコードワード決定部290jも備え、第2のコードワード決定部290jは、下位ビットプレーン情報290iを受信し、これに基づいて、0個、1個またはそれ以上の下位ビットプレーンの内容を表す0個、1個またはそれ以上のコードワード「acod_r」を提供するように構成されている。第2のコードワード決定部290jは、下位ビットプレーン情報290iから下位ビットプレーンのコードワード「acod_r」を導出するために、算術符号化アルゴリズムまたは他の符号化アルゴリズムを適用するように構成され得る。
【0091】
ここで、下位ビットプレーンの数は、スケーリングおよび量子化されたスペクトル値291の値によって異なり得るため、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的少数であれば下位ビットプレーンが全く存在しない場合があり、現在の符号化対象であるスケーリングおよび量子化されたスペクトル値が中間の範囲のものであれば1つの下位ビットプレーンが存在する場合があり、符号化対象のスケーリングおよび量子化されたスペクトル値が比較的大きい値を有していれば2つ以上の下位ビットプレーンが存在する場合がある点に留意されたい。
【0092】
上記を要約すると、算術符号化部290は、階層型符号化処理を用いて、情報291によって示されるスケーリングおよび量子化されたスペクトル値を符号化するように構成されている。最上位ビットプレーン(例えば、1つのスペクトル値につき1つ、2つまたは3つのビットを含む)が符号化され、最上位ビットプレーン値の算術コードワード「acod_m[pki][m]」が取得される。1つ以上の下位ビットプレーン(下位ビットプレーンのそれぞれが、例えば、1つ、2つまたは3つのビットを含む)が符号化され、1つ以上のコードワード「acod_r」が取得される。最上位ビットプレーンを符号化する際、最上位ビットプレーンの値mは、コードワードacod_m[pki][m]にマッピングされる。算術符号化部170の状態に応じて、すなわち、以前に符号化されたスペクトル値に応じて、値mの符号化のために64個の異なる累積度数テーブルが利用可能である。したがって、コードワード「acod_m[pki][m]」が取得される。さらに、1つ以上の下位ビットプレーンが存在する場合、1つ以上のコードワード「acod_r」が提供され、ビットストリームに含められる。
【0093】
しかしながら、本発明によれば、コンテキスト状態情報134と同等である状態情報290eの導出は、第1のオーディオフレームから次の第2のオーディオフレームへの(すなわち、2つの連続するオーディオフレーム間の)基本周波数の変化に適合される。状態追跡部290dによって実行され得るこの適合に関する詳細については後述する。
6.図2dによる算術復号部
図2dは、図1dによるオーディオ信号復号器150および図2bによるオーディオ信号復号器240においてコンテキストベースのスペクトル値復号部160およびコンテキスト状態決定部170の代わりとなり得る算術復号部295のブロック模式図を示す。
【0094】
算術復号部295は、算術コーディングされたスペクトルデータを例えばコードワード「acod_m」および「acod_r」の形態で含み得る符号化された周波数領域表現296を受信するように構成されている。符号化された周波数領域表現296は、コンテキストベースのスペクトル値復号器160に入力されたコードワードと同等であってもよい。さらに、算術復号部は、コンテキストベースのスペクトル値復号器160によって提供される復号されたスペクトル値162と同等であり得る復号された周波数領域オーディオ表現297を提供するように構成されている。
【0095】
算術復号部295は、最上位ビットプレーン値mを示す算術コードワードacod_m[pki][m]を受信するように構成された最上位ビットプレーン決定部295aを備える。最上位ビットプレーン決定部295aは、算術コードワード「acod_m[pki][m]」から最上位ビットプレーン値mを導出するための複数の、例えば64個の累積度数テーブルからなる集合から1つの累積度数テーブルを使用するように構成され得る。
【0096】
最上位ビットプレーン決定部295aは、コードワード「acod_m」に基づいてスペクトル値の最上位ビットプレーンの値295bを導出するように構成されている。算術復号部295は、スペクトル値の1つ以上の下位ビットプレーンを表す1つ以上のコードワード「acod_r」を受信するように構成された下位ビットプレーン決定部295cをさらに備える。したがって、下位ビットプレーン決定部295cは、1つ以上の下位ビットプレーンの復号された値295dを提供するように構成されている。算術復号器295はまた、スペクトル値の最上位ビットプレーンの復号された値295bおよび当該スペクトル値の1つ以上の下位ビットプレーンの復号された値295b(現在のスペクトル値に対してこのような下位ビットプレーンが利用可能である場合)を受信するように構成されたビットプレーン結合部295eも備える。したがって、ビットプレーン結合部295eは、復号された周波数領域オーディオ表現297の一部であるコーディングされたスペクトル値を提供する。必然的に、算術復号部295は、典型的には、オーディオコンテンツの現在のフレームに対応付けられた復号されたスペクトル値の完全な集合を取得するために複数のスペクトル値を提供するように構成されている。
【0097】
算術復号部295は、算術復号部295の状態を示す状態インデックス295gに応じて、例えば64個の累積度数テーブルのうちの1つを選択するように構成された累積度数テーブル選択部295fをさらに含む。算術復号部295は、以前に復号されたスペクトル値に応じて算術復号部の状態を追跡するように構成された状態追跡部295hをさらに備える。状態追跡部295hは、コンテキスト状態決定部170に対応し得る。状態追跡部295hに関する詳細については後述する。
【0098】
したがって、累積度数テーブル選択部295fは、コードワード「acod_m」に応じて、最上位ビットプレーン値mの復号における適用のために、選択された累積度数テーブルのインデックス(例えば、pki)または選択された累積度数テーブル自体を提供するように構成されている。
【0099】
したがって、算術復号部295は、隣接するスペクトル値の最上位ビットプレーンの値の異なる組み合わせの異なる確率を利用する。コンテキストに応じて、異なる累積度数テーブルが選択され、適用される。換言すれば、以前に復号されたスペクトル値を観察することによって取得される状態インデックス295g(コンテキスト状態情報164と同等であり得る)に応じて、例えば64個の異なる累積度数テーブルを含む集合から異なる累積度数テーブルを選択することにより、スペクトル値間の統計的依存性が利用される。連続するオーディオフレーム間の基本周波数(またはピッチ)の変化に関する情報に応じて、状態インデックス295g(またはコンテキスト状態情報164)の導出を適合させることにより、スペクトルスケーリングが考慮される。
7.コンテキストの適合の概念についての概要
以下に、タイムワープ情報を用いて算術コーダのコンテキストを適合させるという概念についての概要を説明する。
7.1 背景情報
以下に、本発明の理解を容易にするために、いくつかの背景情報を示す。参考文献[3]において、量子化されたスペクトルビンを可逆符号化するためにコンテキスト適合型算術コーダ(例えば、参考文献[5]を参照)が使用されている点に留意されたい。
【0100】
使用されるコンテキストは、このようなコンテキスト適合型算術コーディングのグラフ表現を示す図3aに示されている。図3aにおいて、復号される周波数ビンのコンテキストを決定するために、前のフレームから既に復号されたビンが使用されていることが理解される。ここで、コンテキストおよびコーディングが4−タプルで編成されているか、ライン単位で編成されているか、あるいは他のn−タプル(nは可変)で編成されているかということは記載される発明にとって重要ではないという点に留意されたい。
【0101】
コンテキスト適合型算術コーディングまたは復号を示す図3aを再び参照する。尚、横軸310は時間を示し、縦軸312は周波数を示す。ここで、スペクトル値の4−タプルが、図3aに示すコンテキストに応じて共通のコンテキスト状態を使用して復号されるという点に留意されたい。例えば、時間インデックスkおよび周波数インデックスiを有するオーディオフレームに対応付けられたスペクトル値の4−タプル320の復号のためのコンテキストは、時間インデックスkおよび周波数インデックスi−1を有する第1の4−タプル322、時間インデックスk−1および周波数インデックスi−1を有する第2の4−タプル324、時間インデックスk−1および周波数インデックスiを有する第3の4−タプル326、ならびに時間インデックスk−1および周波数インデックスi+1を有する第4の4−タプル328のスペクトル値に基づいている。周波数インデックスi−1、i、i+1のそれぞれは、時間領域−周波数領域変換または周波数領域−時間領域変換の4つの周波数ビンを示す(あるいは、より厳密には、これらに対応付けられている)という点に留意されたい。したがって、4−タプル320の復号のためのコンテキストは、スペクトル値の4−タプル322、324、326、328のスペクトル値に基づいている。したがって、時間インデックスkを有する現在のオーディオフレームのタプル周波数インデックスiを有するスペクトル値(典型的には、時間インデックスkを有する現在復号されているオーディオフレームのタプル周波数インデックスi−1を有するスペクトル値と組み合わせて)を復号するためのコンテキストを導出するために、時間インデックスk−1を有する、以前のオーディオフレームのタプル周波数インデックスi−1、iおよびi+1を有するスペクトル値が使用される。
【0102】
タイムワープされた変換は、一般に、基本周波数において変動のある高調波信号のためのより優れたエネルギー圧縮をもたらし、これにより、タイムワーピングが適用されない場合に生じる多少スメアリングされた高い部分音(partials)ではなく、はっきりとした高調波構造を示すスペクトルが得られることが分かっている。タイムワーピングのもう1つの他の効果は、連続フレームの平均ローカルサンプリング周波数が異なる可能性によるものである。この効果により、その他の点では高調波構造が一定であるが基本周波数が変化する信号の連続スペクトルが周波数軸に沿って伸長されることが分かっている。
【0103】
図3cの下のグラフ390は、このような例を示している。同図は、2つの連続フレーム(例えば、基本周波数が変化する高調波信号がタイムワープ型修正離散コサイン変換コーダ(TW−MDCTコーダ)によってコーディングされる場合、「最後のフレーム」および「このフレーム」として示されるフレーム)のグラフ(例えば、周波数ビンインデックスの関数としての大きさをdB単位で示す)を含む。
【0104】
対応する相対ピッチ変遷は、高調波ラインの減少する相対ピッチおよび相対ピッチの減少に伴って増加する相対周波数を示す図3bのグラフ370で見られる。
【0105】
これにより、タイムワープアルゴリズム(例えば、タイムワーピングサンプリングまたは再サンプリング)の適用後に高調波ラインの周波数が増加する。現在のフレーム(「このフレーム」としても示す)のこのスペクトルは、最後のフレームのスペクトルのおおよそのコピーであるが、周波数軸392(修正離散コサイン変換の周波数ビンを単位として表示)に沿って伸長されていることがはっきりと分かる。これはまた、過去のフレーム(「最後のフレーム」としても示す)を算術コーダのための(例えば、現在のフレーム(「このフレーム」とも示す)のスペクトル値の復号のための)のコンテキストとして使用した場合、異なる周波数ビンにおいて一致する部分音が生じることになるため、当該コンテキストは準最適となるということも意味することになる。
【0106】
図3cの上のグラフ380は、これ(例えば、コンテキスト依存型算術コーディングを用いたスペクトル値の符号化のビット需要)を、算術コーディング方式よりも通常効果が低いと考えられているハフマン符号化方式と比較して示している。準最適な過去のコンテキスト(例えば、図3cのグラフ390に表される、「最後のフレーム」のスペクトル値によって定義され得る)により、算術コーディング方式は、現在のフレームの部分音が過去のフレームにおいてエネルギーの低い領域に位置している場合、より多くのビットを消費しており、またその逆の場合も同じである。一方、図3cのグラフ380は、コンテキストが良好である場合(これは少なくとも基本波の部分音(fundamental partial tone)については当てはまる)、ビット分布は、ハフマン符号化と比較して低い(例えば、コンテキスト依存型算術コーディングを用いた場合)ことを示している。
【0107】
上記を要約すると、図3bのグラフ370は、相対ピッチコンターの時間変遷の例を示している。横軸372は時間を示し、縦軸374は、相対ピッチprelおよび相対周波数frelの両方を示す。第1の曲線376は相対ピッチの時間変遷を示し、第2の曲線377は相対周波数の時間変遷を示す。相対ピッチは時間と共に減少し、相対周波数は時間と共に増加することが分かる。さらに、以前のフレーム(「最後のフレーム」としても示す)の時間延長378aおよび現在のフレーム(「このフレーム」としても示す)の時間延長378bは、図3bのグラフ370において重複していないという点に留意されたい。しかしながら、一般的には、連続するオーディオフレームの時間延長378a、378bは、重複していてもよい。例えば、重複は約50%であってもよい。
【0108】
次に図3cを参照すると、グラフ390は、2つの連続するフレームのMDCTスペクトルを示す点に注目されたい。横軸392は、周波数を修正離散コサイン変換の周波数ビンを単位として示す。縦軸394は、個々のスペクトルビンの相対的大きさ(デシベル単位)を示す。現在のフレーム(「このフレーム」)のスペクトルのスペクトルピークは、以前のフレーム(「最後のフレーム」)のスペクトルの対応するスペクトルピークに対して、周波数において(周波数依存的に)シフトされることが理解される。したがって、現在のフレームのスペクトルのスペクトルピークは以前のオーディオフレームのスペクトルのスペクトルピークと一致しない(周波数に関して)ので、現在のフレームのスペクトル値のコンテキストベースの符号化のためのコンテキストは、当該コンテキストが以前のオーディオフレームのスペクトル値の元のバージョンに基づくものである場合は、良好に適合されないことが分かっている。よって、スペクトル値のコンテキストベースの符号化のビットレート需要(必要されるビットレート)は、比較的高く、コンテキストベースでないハフマン符号化の場合には、さらに高くなり得る。このことは、図3cのグラフ380で理解される。同グラフにおいて、横軸は周波数(修正離散コサイン変換のビンを単位として)を示し、縦軸384はスペクトル値の符号化に必要とされるビット数を示す。
7.2. 解決法の検討
しかしながら、本発明による実施形態は、上述の問題に対する解決法を提供するものである。ピッチ変動情報を用いて、タイムワープ型修正離散コサイン変換コーダの連続スペクトル間(例えば、連続オーディオフレームのスペクトル間)の周波数伸長因子の近似値を導出することができることが分かっている。この伸長因子を用いて、過去のコンテキスを周波数軸に沿って伸長して、より良好なコンテキストを導出し、したがって1つの周波数ラインをコーディングするために必要なビット数を低減し、コーディング利得を向上させることができることが分かっている。
【0109】
この伸長因子が最後のフレームの平均周波数と現在のフレームの平均周波数との比率に近似している場合、良好な結果が得られることが分かっている。さらに、これは、ライン単位で、あるいは、算術コーダがn−タプルのラインを1つの項目としてコーディングする場合は、タプル単位で行われ得ることが分かっている。
【0110】
換言すれば、コンテキストの伸長は、ライン単位で(すなわち、修正離散コサイン変換の1つの周波数ビンずつ個別に)またはタプル単位で(すなわち、修正離散コサイン変換のタプルずつまたは複数のスペクトルビンの集合ずつ)行われるものであっってもよい。
【0111】
さらに、伸長因子の計算の分解能もまた、実施形態の要件によって異なり得る。
7.3 伸長因子の導出のための例
以下に、伸長因子を導出するためのいくつかの概念について詳細に説明する。参考文献[3]に記載されるタイムワープ型修正離散コサイン変換方法、および、その代わりに、本明細書に記載されるタイムワープ型修正離散コサイン変換方法は、いわゆる平滑なピッチコンターを中間情報として提供する。このような平滑化されたピッチコンター(例えば、配列「warp_contour[]」のエントリまたは配列「new_warp_contour[]」および「past_warp_contour[]」のエントリによって示され得る)は、いくつかの連続フレームにわたる相対ピッチの変遷の情報を含んでいるため、1つのフレーム内の各サンプルについて、相対ピッチの推定値が分かる。このサンプルの相対周波数は、単純に、この相対ピッチの逆数となる。
【0112】
例えば、以下の関係が成り立ち得る。
【0113】
【数1】
【0114】
上記式中、prel[n]は、所与の時間インデックスnについての相対ピッチを示し、この相対ピッチは、短期間の相対ピッチであり得る(時間インデックスnは、例えば、個別のサンプルを示し得る)。さらに、frel[n]は、時間インデックスnについての相対周波数を示し得ると共に、短期間の相対周波数値であり得る。
7.3.1 第1の代替案
そして、1つのフレームk(kは、フレームインデックス)にわたる平均相対周波数は、このフレームk内の全ての相対周波数の算術平均として示され得る。
【0115】
【数2】
【0116】
上記式中、frel,mean,kは、時間フレームインデックスkを有するオーディオフレームにわたる平均相対周波数を示す。Nは、フレームインデックスkを有するオーディオフレームについての時間領域サンプル数を示す。nは、オーディオフレームインデックスkを有する現在のオーディオフレームの時間領域サンプルの時間領域サンプルインデックスn=0〜n=N−1にわたって実行される変数である。frel[n]は、時間領域サンプル時間インデックスnを有する時間領域サンプルに対応付けられたローカル相対周波数値を示す。
【0117】
これより(すなわち、現在のオーディオフレームについてのfrel,mean,kの計算および以前のオーディオフレームについてのfrel,mean,k−1の計算から)、現在のオーディオフレームkの伸長因子sは以下のように導出することができる。
【0118】
【数3】
【0119】
7.3.2 第2の代替案
以下に、伸長因子sの計算に関する別の代替案について説明する。伸長因子sのより簡単かつより正確な近似(例えば、第1の代替案と比較して)は、概して、相対ピッチがほぼ1であり、したがって、相対ピッチと相対周波数との関係がほぼ直線的であり、また相対ピッチを反転させて相対周波数を取得するステップを省略することができることと、平均相対ピッチを使用することとを考慮すればば、得ることができる。
【0120】
【数4】
【0121】
上記式中、prel,mean,kは、時間オーディオフレームインデックスkを有するオーディオフレームについての平均相対ピッチを示す。Nは、時間オーディオフレームインデックスkを有するオーディオフレームの時間領域サンプル数を示す。実行中の変数nは、0〜N−1の値をとり、これにより、現在のオーディオフレームの時間インデックスnを有する時間領域サンプルにわたって実行される。prel[n]は、時間領域インデックスnを有する時間領域サンプルについての(ローカル)相対ピッチ値を示す。例えば、相対ピッチ値prel[n]は、ワープコンター配列「warp_contour[]」のエントリwarp_contour[n]に等しくてもよい。
【0122】
この場合、時間フレームkを有するオーディオフレームの伸長因子sは、以下のように近似することができる。
【0123】
【数5】
【0124】
上記式中、prel,mean,k−1は、時間オーディオフレームインデックスk−1を有するオーディオフレームの平均ピッチ値を示し、変数prel,mean,kは、時間オーディオフレームkを有するオーディオフレームの平均相対ピッチ値を示す。
7.3.3 さらなる代替案
ただし、伸長因子sの計算または推定のために著しく異なる概念が使用され得るという点に留意されたい(ここで、伸長因子sは、典型的には、第1のオーディオフレームと次の第2のオーディオフレームとの間の基本周波数の変化も示している)。例えば、第1のオーディオフレームのスペクトルと次の第2のオーディオフレームのスペクトルを、パターン比較概念によって比較し、これにより、伸長因子を導出してもよい。しかしながら、上述のようなワープコンター情報を用いた周波数伸長因子sの計算は、特に計算効率が高いため好ましい選択肢であると思われる。
8.コンテキスト状態の決定に関する詳細
8.1.図4aおよび図4bによる例
以下に、コンテキスト状態の決定に関する詳細について説明する。この目的で、ブロック模式図を図4aに示すコンテキスト状態決定部400の機能について説明する。
【0125】
コンテキスト状態決定部400は、例えば、コンテキスト状態決定部140またはコンテキスト状態決定部170の代わりとなり得る。コンテキスト状態決定部に関する詳細に関してオーディオ信号復号器の場合について以下で説明するが、コンテキスト状態決定部400は、オーディオ信号符号化器との関連においても使用することができる。
【0126】
コンテキスト状態決定部400は、以前に復号されたスペクトル値または以前に符号化されたスペクトル値に関する情報410を受信するように構成されている。加えて、コンテキスト状態決定部400は、タイムワープ情報またはタイムワープコンター情報412を受信する。タイムワープ情報またはタイムワープコンター情報412は、例えば、タイムワープ情報122に等しくてもよく、したがって、連続するオーディオフレーム間の基本周波数の変化を示し得る(少なくとも暗黙的に)。あるいは、タイムワープ情報またはタイムワープコンター情報412は、タイムワープ情報184と同等であってもよく、したがって、連続するフレーム間の基本周波数の変化を示し得る。しかし、タイムワープ情報/タイムワープコンター情報412は、代わりに、タイムワープコンター情報222またはタイムワープコンター情報258と同等であってもよい。一般に、タイムワープ情報/タイムワープコンター情報412は、連続するオーディオフレーム間の周波数変動を直接的にあるいは間接的に示し得るということができる。例えば、タイムワープ情報/タイムワープコンター情報212は、ワープコンターを示すことができ、したがって、配列「warp_contour[]」のエントリを含むことができるか、あるいは時間コンターを示すことができ、したがって配列「time_contour[]」のエントリを含むことができる。
【0127】
コンテキスト状態決定部400はコンテキスト状態値420を提供し、コンテキスト状態値420は、現在のフレームのスペクトル値の符号化または復号に使用されるコンテキストを示すと共に、現在のオーディオフレームのスペクトル値の符号化または復号の適切なマッピング規則を選択するためにコンテキストベースのスペクトル値符号化器またはコンテキストベースのスペクトル復号器によって使用され得る。コンテキスト状態値420は、例えば、コンテキスト状態情報134またはコンテキスト状態情報164と同等であってもよい。
【0128】
コンテキスト状態決定部400は、例えば、配列q[1][]といった予備コンテキストメモリ構造432を提供するように構成された予備コンテキストメモリ構造提供部430を備える。例えば、予備コンテキストメモリ構造提供部430は、図25および図26によるアルゴリズムの機能を実行し、これにより、例えば、配列q[1][]のN/4個のエントリq[1][i](i=0からi=M/4−1の場合)の集合を提供するように構成され得る。
【0129】
一般的に、予備コンテキストメモリ構造提供部430は、エントリ周波数インデックスiを有するエントリが、周波数インデックスiを有する(1つの)スペクトル値または共通の周波数インデックスiを有するスペクトル値の集合に基づくように、予備コンテキストメモリ構造432のエントリを提供するように構成され得る。しかしながら、予備コンテキストメモリ構造提供部430は、予備コンテキストメモリ構造432のエントリの周波数インデックスと、当該予備コンテキストメモリ構造432のエントリが基づいている1つ以上の符号化されたスペクトル値または復号されたスペクトル値の周波数インデックスとの間に、一定の周波数インデックス関係が存在するように、予備コンテキストメモリ構造432を提供するように構成されているのが好ましい。例えば、上記所定のインデックス関係は、予備コンテキストメモリ構造のエントリq[1][i]が時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックスi(またはi−const(constは定数))を有する周波数ビンのスペクトル値に基づくようなものであってもよい。あるいは、予備コンテキストメモリ構造432のエントリq[1][i]は、時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックス2i−1および2iを有する周波数ビンのスペクトル値(または周波数ビンインデックスのシフトされた領域)に基づいていてもよい。しかし、その代わりに、予備コンテキストメモリ構造432のインデックスq[1][i]は、時間領域−周波数領域変換部または周波数領域−時間領域変換部の周波数ビンインデックス4i−3、4i−2、4i−1および4iを有する周波数ビンのスペクトル値(または周波数ビンインデックスのシフトされた領域)に基づいていてもよい。したがって、予備コンテキストメモリ構造432の各エントリは、予備コンテキストメモリ構造432の設定の基礎となる、オーディオフレームの所定の周波数インデックスのスペクトル値または所定の周波数インデックスのスペクトル値の集合に対応付けることができる。
【0130】
コンテキスト状態決定部400はまた、タイムワープ情報/タイムワープコンター情報412を受信し、これに基づいて、周波数伸長因子情報436を提供するように構成された周波数伸長因子計算部434も備える。例えば、周波数伸長因子計算部434は、配列warp_contour[]のエントリから相対ピッチ情報prel[n](相対ピッチ情報prel[n]は、例えば、配列warp_contour[]の対応するエントリと等しくてもよい)を導出するように構成され得る。さらに、周波数伸長因子計算部434は、上記の式のうち1つを適用して、2つの連続するオーディオフレームの相対ピッチ情報prelから周波数伸長因子情報sを導出するように構成され得る。一般的に、周波数伸長因子計算部434は、周波数伸長因子情報(例えば、値s、あるいは、同等に、値m_ContextUpdateRatio)を、周波数伸長因子情報が、以前に符号化または復号されたオーディオフレームと、現在のコンテキスト状態値420を使用して符号化または復号される現在のオーディオフレームとの間の基本周波数の変化を示すように、提供するよう構成され得る。
【0131】
コンテキスト状態決定部400はまた、予備コンテキストメモリ構造432を受信し、これに基づいて、周波数スケーリングされたコンテキストメモリ構造を提供するように構成された周波数スケーリング済みコンテキストメモリ構造提供部も備える。例えば、周波数スケーリングされたコンテキストメモリ構造は、予備コンテキストメモリ構造432を示す配列の更新されたバージョンであり得る、配列q[1][]の更新されたバージョンによって表すことができる。
【0132】
周波数スケーリング済みコンテキストメモリ構造提供部は、周波数スケーリングされたコンテキストメモリ構造を周波数スケーリングを用いて予備コンテキストメモリ構造432から導出するように構成され得る。この周波数スケーリングにおいて、予備コンテキストメモリ構造432のエントリインデックスiを有するエントリの値を、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスjを有するエントリにコピーするかあるいはシフトさせてもよい(ここで、周波数インデックスiは、周波数インデックスjと異なっていてもよい)。例えば、予備コンテキストメモリ構造432の内容の周波数伸長が行われる場合、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj1を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi1を有するエントリの値に設定し、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj2を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi2を有するエントリの値に設定してもよいい(ここで、j2はi2よりも大きく、j1はi1よりも大きい)。対応する周波数インデックス(例えば、j1とi1、またはj2とi2)間の比は、所定の値をとり得る(丸め誤差の場合を除く)。同様に、予備コンテキストメモリ構造432によって示される内容の周波数圧縮が周波数スケーリング済みコンテキストメモリ構造提供部438によって実行される予定である場合、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj3を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi3を有するエントリの値に設定し、周波数スケーリングされたコンテキストメモリ構造440のエントリインデックスj4を有するエントリを、予備コンテキストメモリ構造432のエントリインデックスi4を有するエントリの値に設定してもよい。この場合、エントリインデックスj3は、エントリインデックスi3よりも小さく、エントリインデックスj4は、エントリインデックスi4よりも小さくてもよい。さらに、対応するエントリインデックス間(例えば、エントリインデックスj3とi3との間、またはエントリインデックスj4とi4との間)の比は、一定であってもよく(丸め誤差の場合を除く)、また、周波数伸長因子情報436によって決定されてもよい。周波数スケーリング済みコンテキストメモリ構造提供部440の動作のさらなる詳細については後述する。
【0133】
コンテキスト状態決定部400はまた、周波数スケーリングされたコンテキストメモリ構造440に基づいてコンテキスト状態値420を提供するように構成されたコンテキスト状態値提供部442も備える。例えば、コンテキスト状態値提供部442は、周波数インデックスl0を有するスペクトル値の復号のためのコンテキストを示すコンテキスト状態値420を、周波数スケーリングされたコンテキストメモリ構造440のエントリ(当該エントリの周波数インデックスは周波数インデックスl0と所定の関係にある)に基づいて提供するように構成され得る。例えば、コンテキスト状態値提供部442は、周波数インデックスl0を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態値420を、周波数スケーリングされたコンテキストメモリ構造440の周波数インデックスl0−1、l0およびl0+1を有するエントリに基づいて提供するように構成され得る。
【0134】
したがって、コンテキスト状態決定部400は、周波数インデックスl0を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態値420を、周波数スケーリング済みコンテキストメモリ構造提供部438によって周波数伸長が行なわれる場合には、予備コンテキストメモリ構造432のl0−1よりも小さい周波数インデックス、l0よりも小さい周波数インデックスおよびl0+1よりも小さい周波数インデックスをそれぞれ有するエントリに基づいて、そして、周波数スケーリング済みコンテキストメモリ構造提供部438によって周波数圧縮が行われる場合には、予備コンテキストメモリ構造432のl0−1よりも大きい周波数インデックス、l0よりも大きい周波数インデックスおよびl0+1よりも大きい周波数インデックスをそれぞれ有するエントリに基づいて、有効に提供し得る。
【0135】
このように、コンテキスト状態決定部400は、周波数伸長因子436に応じて周波数スケーリングされた(したがって基本周波数の経時変動を示す)、予備コンテキストメモリ構造432の周波数スケーリングされたバージョンである周波数スケーリングされたコンテキストメモリ構造に基づいてコンテキスト状態値420を提供することにより、連続するフレーム間の基本周波数の変化に適合させてコンテキストの決定を行うように構成されている。
【0136】
図4bは、本発明の一実施形態によるコンテキスト状態の決定のグラフ表現を示す。図4bは、予備コンテキストメモリ構造提供部430によって提供される予備コンテキストメモリ構造432のエントリの概略表現を参照符号450において示す。例えば、周波数インデックスi1+1を有するエントリ450a、周波数インデックスi2+2を有するエントリ450bおよびエントリ450cが表示されている。しかしながら、参照符号452において示す周波数スケーリングされたコンテキストメモリ構造440を提供する際、周波数インデックスi1を有するエントリ452aは、周波数インデックスi1+1を有するエントリ450aの値をとるように設定され、周波数インデックスi2−1を有するエントリ452cは、周波数インデックスi2+2を有するエントリ450cの値をとるように設定される。同様に、周波数スケーリングされたコンテキストメモリ構造440のその他のエントリは、予備コンテキストメモリ構造430のエントリに応じて設定することができ、一般的には、周波数圧縮の場合、予備コンテキストメモリ構造のエントリのいくつかは破棄され、また、一般的には、周波数伸長の場合、予備コンテキストメモリ構造432のエントリのいくつかは、周波数スケーリングされたコンテキストメモリ構造440の2つ以上のエントリにコピーされる。
【0137】
さらに、図4bは、時間インデックスkを有するオーディオフレームのスペクトル値の復号のためのコンテキスト状態が周波数スケーリングされたコンテキストメモリ構造440のエントリ(参照符号452で示される)に基づいてどのように決定されるかを示している。例えば、時間インデックスkを有するオーディオフレームの周波数インデックスi1を有するスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキスト状態(例えば、コンテキスト状態値420によって表される)を決定する際、時間インデックスkを有するオーディオフレームの周波数インデックスi1−1を有するコンテキスト値および時間インデックスk−1と周波数インデックスi1−1、i1、i1+1とを有するオーディオフレームの周波数スケーリングされたコンテキストメモリ構造のエントリが評価される。したがって、時間インデックスk−1と周波数インデックスi1−1、i1+1、i1+2とを有するオーディオフレームの予備コンテキストメモリ構造のエントリが、時間インデックスkと周波数インデックスi1とを有するオーディオフレームのスペクトル値(またはスペクトル値のタプル)の復号のためのコンテキストを決定するために有効に評価される。したがって、コンテキスト状態の決定に使用されるスペクトル値の環境が、予備コンテキストメモリ構造(またはその内容)の周波数伸長または周波数圧縮によって有効に変更される。
8.2.図4cによる実施例
以下に、タプル単位の処理を示す図4cを参照して、4−タプルを用いた算術コーダのコンテキストのマッピングの例について説明する。
【0138】
図4cは、周波数スケーリングされたコンテキストメモリ構造(例えば、周波数スケーリングされたコンテキストメモリ構造440)を予備コンテキストメモリ構造(例えば、予備コンテキストメモリ構造432)に基づいて取得するためのアルゴリズムの疑似プログラムコード表現を示す。
【0139】
図4cによるアルゴリズム460は、予備コンテキストメモリ構造432が配列「self−>base.m_qbuf」に格納されると仮定する。さらに、アルゴリズム460は、周波数伸長因子情報436が変数「self−>base.m_ContextUpdateRatio」に格納されると仮定する。
【0140】
第1のステップ460aにおいて、変数の数を初期化する。具体的には、ターゲットタプルインデックス変数「nLinTupleIdx」およびソースタプルインデックス変数「nWarpTupleIdx」を0に初期化する。さらに、リオーダバッファ配列「Tqi4」を初期化する。
【0141】
ステップ460bにおいて、予備コンテキストメモリ構造「self−>base.m_qbuf」のエントリをリオーダバッファ配列にコピーする。
【0142】
続いて、ターゲットタプルインデックス変数およびソースタプルインデックス変数の両方がタプルの最大数を示す変数nTuplesよりも小さければ、コピーアルゴリズム460cを繰り返す。
【0143】
ステップ460caにおいて、(タプル)周波数インデックスがソースタプルインデックス変数(第1のインデックス定数「firstIdx」との組み合わせた)の現在の値によって決定される、リオーダバッファの4つのエントリを、周波数インデックスがターゲットタプルインデックス変数(nLinTupleIdx)(第1のインデックス定数「firstIdx」と組み合わせた)によって決定される、コンテキストメモリ構造(self−>base.m_qbuf[][])のエントリにコピーする。
【0144】
ステップ460cbにおいて、ターゲットタプルインデックス変数を1だけインクリメントする。
【0145】
ステップ460ccにおいて、ソースタプルインデックス変数を、ターゲットタプルインデックス変数(nLinTupleIdx)の現在の値と、最も近い整数値に丸めた周波数伸長因子情報(self−>base.m_ContextUpdateRatio)との積である値に設定する。したがって、ソースタプルインデックス変数の値は、周波数伸長因子の変数が1よりも大きい場合はターゲットタプルインデックス変数の値よりも大きくなり、周波数伸長因子の変数が1よりも小さい場合はターゲットタプルインデックス変数よりも小さくなり得る。
【0146】
したがって、ソースタプル変数の値は、(ターゲットタプルインデックス変数の値およびソースタプル変数の値の両方が定数nTuplesよりも小さければ、)ターゲットタプルインデックス変数の各値に対応付けられる。ステップ460cbおよび460ccの実行に続いて、ステップ460caにおいて、ソースタプルとターゲットタプルとの更新された対応付けを用いて、リオーダバッファからコンテキストメモリ構造へのエントリのコピーを繰り返す。
【0147】
このように、図4cによるアルゴリズム460は、周波数スケーリング済みコンテキストメモリ構造提供部430aの機能を果たし、予備コンテキストメモリ構造は、配列「self−>base.m_qbuf」の初期のエントリによって表され、周波数スケーリングされたコンテキストメモリ構造440は、配列「self−>base.m_qbuf」の更新されたエントリによって表される。
8.3.図4dおよび図4eによる実施例
以下に、ライン単位の処理を示す図4cを参照して、4−タプルを用いた算術コーダのコンテキストのマッピングの例について説明する。
【0148】
図4dおよび図4eは、コンテキストの周波数スケーリング(すなわち、周波数伸長または周波数圧縮)を行うためのアルゴリズムの疑似プログラムコード表現を示す。
【0149】
図4dおよび図4eによるアルゴリズム470は、配列「self−>base.m_qbuf[][]」(または少なくとも当該配列への参照)および周波数伸長因子情報「self self−>base.m_ContextUpdateRatio」を入力情報として受け取る。さらに、アルゴリズム470は、アクティブなラインの数を示す変数「self−>base.m_IcsInfo−>m_ScaleFactorBandsTransmitted」を入力情報として受け取る。さらに、アルゴリズム470は、配列self−>base.m_qbuf[][]を、当該配列のエントリが周波数スケーリングされたコンテキストメモリ構造を表すように修正する。
【0150】
アルゴリズム470は、ステップ470aにおいて、複数の変数の初期化を含む。具体的には、ターゲットラインインデックス変数(linLineIdx)およびソースラインインデックス変数(warpLineIdx)を0に初期化する。
【0151】
ステップ470bにおいて、アクティブなタプルの数およびアクティブなラインの数を計算する。
【0152】
以下では、異なるコンテキストインデックス(変数「contextIdx」によって示される)コンテキストの2つの集合が処理される。しかしながら、他の実施形態においては、1つのコンテキストを処理するだけで十分である。
【0153】
ステップ470cにおいて、ライン時間バッファ配列「lineTmpBuf」およびラインリオーダバッファ配列「lineReorderBuf」を0個のエントリに初期化する。
【0154】
ステップ470dにおいて、スペクトル値の複数のタプルの異なる周波数ビンに対応付けられた予備コンテキストメモリ構造のエントリをラインリオーダバッファ配列にコピーする。したがって、連続する周波数インデックスを有するラインリオーダバッファ配列のエントリを、異なる周波数ビンに対応付けられた予備コンテキストメモリ構造のエントリに設定する。換言すれば、予備コンテキストメモリ構造は、スペクトル値の1タプルにつき1つのエントリ「self−>base.m_qbuf[CurTuple][contextIdx]」を含み、スペクトル値のタプルに対応付けられたエントリは、個々のスペクトルライン(またはスペクトルビン)に対応付けられたサブエントリa、b、c、dを含む。ステップ470dにおいて、サブエントリa,b,c,dのそれぞれをラインリオーダバッファ配列「lineReorderBuf[]」の1つのエントリにコピーする。
【0155】
その結果、ステップ470eにおいて、ラインリオーダバッファ配列の内容は、ライン時間バッファ配列「lineTmpBuf[]」にコピーされる。
【0156】
続いて、ステップ470fにおいて、ターゲットラインインデックス変数およびソースラインインデックス変数を、0の値をとるように初期化する。
【0157】
続いて、ステップ470gにおいて、ラインリオーダバッファ配列のエントリ「lineReorderBuf[warpLineIdx]」を、ターゲットラインインデックス変数「linLineIdx」の複数の値についてのライン時間バッファ配列にコピーする。ステップ470gは、ターゲットラインインデックス変数およびソースラインインデックス変数の両方が、アクティブな(ゼロでない)スペクトルラインの合計数を示す変数「activeLines」よりも小さければ繰り返される。ターゲットラインインデックス変数「linLineIdx」の現在の値によって示されるライン時間バッファ配列のエントリを、ソースラインインデックス変数の現在の値によって示されるラインリオーダバッファ配列の値に設定する。続いて、ターゲットラインインデックス変数を1だけインクリメントする。ソースラインインデックス変数「warpLineIdx」を、ターゲットラインインデックス変数の現在の値と周波数伸長因子情報(変数「self−>base.m_ContextUpdateRatio」によって表される)との積によって決定される値に設定する。
【0158】
ターゲットラインインデックス変数およびソースラインインデックス変数の更新の後、ターゲットラインインデックス変数およびソースラインインデックス変数の両方が変数「activeLines」の値よりも小さければ、ステップ470gを繰り返す。
【0159】
したがって、予備コンテキストメモリ構造のコンテキストエントリは、タプル単位ではなく、ライン単位で周波数スケーリングされる。
【0160】
最後のステップ470hにおいて、ライン時間バッファ配列のライン単位のエントリに基づいてタプル表現を復元する。コンテキストのタプル表現「self−>base.m_qbuf[curTuple][contextIdx]」のエントリa、b、c、dを、ライン時間バッファ配列の「lineTmpBuf[(curTuple−1)*4+0]」から「lineTmpBuf[(curTuple−1)*4+3]」までの(周波数において隣接している)4つのエントリに応じて設定する。加えて、タプルエネルギフィールド「e」を、任意には、それぞれのタプルに対応付けられたスペクトル値のエネルギを表すように設定する。さらに、当該タプルに対応付けられたスペクトル値の大きさが比較的小さい場合は、任意には、タプル表現の追加のフィールド「v」を設定する。
【0161】
ただし、ステップ470hにおいて行われる新たなタプルの計算に関する詳細は、コンテキストの実際の表現に強く依存し、したがって大きく変化し得るという点に留意されたい。しかしながら、タプルベースの表現は、ステップ470hにおいて周波数スケーリングされたコンテキストの個別ラインベースの表現に基づいて得られると概して言うことができる。
【0162】
要約すると、アルゴリズム470によれば、タプル単位のコンテキスト表現(配列「self−>base.m_qbuf[curTuple][contextIdx]」のエントリ)を、まず、周波数ライン単位のコンテキスト表現(または周波数ビン単位のコンテキスト表現)(ステップ470d)に分割する。続いて、周波数スケーリングをライン単位で(ステップ470g)に実行する。最後に、ライン単位で周波数スケーリングされた情報に基づいて、コンテキストのタプル単位の表現(配列「self−>base.m_qbuf[curTuple][contextIdx]」の更新されたエントリ)を復元する(ステップ470h)。
9.周波数領域−時間領域復号アルゴリズムの詳細な説明
9.1.概要
以下に、本発明の一実施形態によるオーディオ復号器によって実行されるアルゴリズムのいくつかについて詳細に説明する。この目的で、図5a、図5b、図6a、図6b、図7a、図7b、図8、図9、図10a、図10b、図11、図12、図13、図14、図15および図16を参照されたい。
【0163】
まず、データ要素の定義の凡例およびヘルプ要素の定義の凡例を示す図7aを参照されたい。さらに、定数の定義の凡例を示す図7bを参照されたい。
【0164】
一般的に、本明細書で記載される方法は、タイムワープ型修正離散コサイン変換に従って符号化されたオーディオストリームの復号に用いることができると言うことができる。したがって、TW−MDCTをオーディオストリーム(例えば、特定の設定情報に含まれ得る「twMDCT」フラグというフラグによって示され得る)に対して有効にする場合、オーディオ復号器において標準的なフィルタバンクおよびブロック切り替えをタイムワープ型フィルタバンクおよびブロック切り替えで置き換えることができる。逆修正離散コサイン変換(IMCT)に加えて、タイムワープ型フィルタバンクおよびブロック切り替えは、任意の間隔で配置された時間グリッドから通常の規則的な間隔または直線的間隔で配置された時間グリッドへの時間領域−時間領域マッピングし、それに合わせてウィンドウ形状を適合することで実行される。
【0165】
ここで、本明細書に記載される復号アルゴリズムは、例えば、スペクトルの符号化された表現に基づいて、また、符号化されたタイムワープ情報184、252に基づいてタイムワーピング周波数領域−時間領域変換部180によって実行され得るという点に留意されたい。
9.2.定義
データ要素、ヘルプ要素および定数の定義に関しては、図7aおよび図7bを参照されたい。
9.3.復号処理−ワープコンター
ワープコンターノードのコードブックインデックスは、個々のノードの値をワーピングするために以下の様に復号される。
【0166】
【数6】
【0167】
しかしながら、本明細書において「warp_value_tbl[tw_ratio[k]]」として示す復号されたタイムワープ値へのタイムワープコードワード「tw_ratio[k]」のマッピングは、任意には、本発明による実施形態におけるサンプリング周波数に依存し得る。したがって、本発明によるいくつかの実施形態においては単一のマッピングテーブルが存在するのではなく、異なるサンプリング周波数についての個別のマッピングテーブルが存在する。
【0168】
サンプル単位の(n_long samples)新たなワープコンターデータ「new_warp_contour[]」を取得するために、疑似プログラムコード表現を図9に示すアルゴリズムを用いて、ワープノード値「warp_node_values[]」を等間隔(interp_dist apart)ノード間で直線補間する。
【0169】
このフレームの(例えば、現在のフレームの)完全なワープコンターを取得する前に、過去のワープコンター「past_warp_contour[]」の最後のワープ値が1に等しくなるように、過去のバッファリングされた値を再スケーリングしてもよい。
【0170】
【数7】
【0171】
過去のワープコンター「past_warp_contour」と新たなワープコンター「new_warp_contour」とを連結することにより、完全なワープコンター「warp_contour[]」を取得し、新たなワープ合計値「new_warp_sum」を新たなワープコンター値「new_warp_contour[]」の全体の合計値として計算する。
【0172】
【数8】
【0173】
9.4.復号処理−サンプル位置およびウィンドウ長調整
ワープコンター「warp_contour[]」から、線形時間スケールでのワープされたサンプルのサンプル位置のベクトルを計算する。このために、以下の式に従ってタイムワープコンターを生成する。
【0174】
【数9】
【0175】
疑似プログラムコード表現をそれぞれ図10aおよび図10bに示すヘルパー関数「warp_inv_vec()」および「warp_time_inv()」を用い、疑似プログラムコード表現を図11に示すアルゴリズムに従って、サンプル位置ベクトルおよび遷移長を計算する。
9.5.復号処理−逆修正離散コサイン変換(IMDCT)
以下に、逆修正離散コサイン変換について簡単に説明する。
【0176】
逆修正離散コサイン変換の解析方程式は以下の通りである。
【0177】
【数10】
【0178】
逆変換のための合成ウィンドウ長は、構文要素「window_sequence」(ビットストリームに含められ得る)およびアルゴリズムコンテキストの関数である。合成ウィンドウ長は、例えば、図12のテーブルに従って定義することができる。
【0179】
図13のテーブルにおいて、有意なブロック遷移を示す。所与のテーブルセルのチェックマークは、この特定の行に示されるウィンドウシーケンスの後に、この特定の列に示されるウィンドウシーケンスが続き得ることを示している。
【0180】
許可されたウィンドウシーケンスに関し、オーディオ復号器は、例えば、異なる長さのウィンドウ間で切り替えられ得るという点に留意されたい。しかしながら、ウィンドウ長の切り替えは、本発明にとって特に重要ではない。むしろ、本発明は、タイプ「only_long_sequence」のウィンドウのシーケンスが存在し、コアコーダフレーム長は1024に等しいというという仮定に基づいて理解することができる。
【0181】
さらに、オーディオ信号復号器は、周波数領域コーディングモードと時間領域コーディングモードとの間で切り替えられ得るという点に留意されたい。しかしながら、この可能性は本発明にとって特に重要ではない。むしろ、本発明は、例えば、図1bおよび図2bを参照して述べたような、周波数領域コーディングモードのみを処理することができるオーディオ信号復号器において適用可能である。
9.6.復号処理−ウィンドウ処理およびブロック切り替え
以下に、タイムワーピング周波数領域−時間領域変換部180により、具体的には、そのウィンドウ処理部180gにより実行され得るウィンドウ処理およびブロック切り替えについて説明する。
【0182】
「window_shape」要素(オーディオ信号を表すビットストリームに含められ得る)によっては、異なるオーバーサンプリングされた変換ウィンドウプロトタイプが使用され、オーバーサンプリングされたウィンドウの長さは、以下の通りである。
【0183】
【数11】
【0184】
window_shape==1の場合、ウィンドウ係数は、カイザー−ベッセル派生(KBD)ウィンドウによって以下のように得られる。
【0185】
【数12】
【0186】
式中
W',カイザー−ベッセル核関数は、以下のように定義される。
【0187】
【数13】
【0188】
一方、window_shape==0の場合、以下のように正弦ウィンドウを使用する。
【0189】
【数14】
【0190】
あらゆる種類のウィンドウシーケンスについて、左ウィンドウ部分の上記使用プロトタイプは、以前のブロックのウィンドウ形状によって決定される。以下の式がこのことを表している。
【0191】
【数15】
【0192】
同様に、右ウィンドウ形状のプロトタイプは、以下の式によって求められる。
【0193】
【数16】
【0194】
遷移長は既に求められているため、タイプ「EIGHT_SHORT_SEQUENCE」のウィンドウシーケンスと他の全てのウィンドウシーケンスとを区別するだけでよい。
【0195】
現在のフレームがタイプ「EIGHT_SHORT_SEQUENCE」である場合、ウィンドウ処理及び内部(フレーム内)重複加算を実行する。図14のCコードに似た部分は、ウィンドウタイプ「EIGHT_SHORT_SEQUENCE」を有するフレームのウィンドウ処理および内部重複加算を示している。
【0196】
その他のタイプのフレームについては、図15に疑似プログラムコード表現を示すアルゴリズムが使用され得る。
9.7.復号処理−時変再サンプリング
以下に、タイムワーピング周波数領域−時間領域変換部180により、具体的には、その再サンプリング部180iにより実行され得る時変再サンプリングについて説明する。
【0197】
ウィンドウ処理されたブロックz[]を、サンプル位置(復号されたタイムワープコンター情報258に基づいてサンプリング位置計算部180lにより提供される)に応じて、以下のインパルス応答を用いて再サンプリングする。
【0198】
【数17】
【0199】
再サンプリングの前に、ウィンドウ処理されたブロックの両端を0でパディングする。
【0200】
【数18】
【0201】
再サンプリング自体は、図16の疑似プログラムコードのセクションに示されている。
9.8.復号処理−以前のウィンドウシーケンスによる重複加算
タイムワーピング周波数領域−時間領域変換部180の重複器/加算器180mによって実行される重複加算は、全てのシーケンスについて同様であり、以下のように数学的に記述することができる。
【0202】
【数19】
【0203】
9.9.復号処理−メモリ更新
以下に、メモリ更新について説明する。図2bでは特定の手段は示されていないが、メモリ更新はタイムワーピング周波数領域−時間領域変換部180によって実行され得るという点に留意されたい。
【0204】
次のフレームの復号に必要なメモリバッファは、以下のように更新する。
【0205】
【数20】
【0206】
最初のフレームを復号する前に、あるいは、最後のフレームが光学LPC領域コーダによって符号化された場合、メモリ状態を以下のように設定する。
【0207】
【数21】
【0208】
9.10.復号処理−結論
上記を要約すると、タイムワーピング周波数領域−時間領域変換部180によって実行され得る復号処理について説明した。例えば、2048個の時間領域サンプルからなるオーディオフレームについての時間領域表現が提供され、連続するオーディオフレームは、例えば、約50%重複し得るため、連続するオーディオフレームの時間領域表現間の平滑な遷移が確実に実現されることが理解される。
【0209】
オーディオフレームの時間領域サンプルの実際のサンプリング周波数に関係なく、例えば、NUM_TW_NODES=16の復号されたタイムワープ値の集合をオーディオフレームのそれぞれに対応付けることができる(ただし、タイムワープが当該オーディオフレームにおいてアクティブである場合に限る)。
10.スペクトル・ノイズレス・コーディング
以下に、コンテキスト状態決定部170と組み合わせたコンテキストベースのスペクトル値復号部160によって実行され得るスペクトル・ノイズレス・コーディングに関するいくつかの詳細について説明する。尚、対応する符号化は、コンテキスト状態決定部140と組み合わせたコンテキストスペクトル値符号化器によって実行することができ、当業者であれば、復号ステップの詳細な記述から各符号化ステップを理解するであろう。
10.1.スペクトル・ノイズレス・コーディング−ツールの説明
スペクトル・ノイズレス・コーディングは、量子化されたスペクトルの冗長性をさらに低減するために用いられる。スペクトル・ノイズレス・コーディング方式は、動的に適合されたコンテキストと併用した算術コーディングに基づいている。後述するスペクトル・ノイズレス・コーディング方式は、2−タプルに基づいている。すなわち、2つの隣接スペクトル係数が組み合わされる。2−タプルは、それぞれ、符号、最上位2ビット単位プレーン、および残りの下位ビットプレーンに分割される。最上位2ビット単位プレーンmのためのノイズレスコーディングは、4つの以前に復号された2−タプルから導出されるコンテキスト依存の累積度数テーブルを用いる。ノイズレスコーディングは、量子化されたスペクトル値によって供給され、また、4つの以前に復号された隣接2−タプルから導出される(例えば、これに応じて選択される)コンテキスト依存の累積度数テーブルを用いる。ここでは、状態計算のためのコンテキストのグラフ表現を示す図16に示すように、時間および周波数の両方における隣接が考慮される。累積度数テーブルは、可変長2進コードを生成するために算術コーダ(符号化部または復号部)によって用いられる。
【0210】
ただし、コンテキストの異なるサイズが選択され得る点に留意されたい。例えば、復号すべきタプルの環境にある少数または多数のタプルをコンテキストの決定に使用することができる。また、タプルは、少数または多数のスペクトル値を含み得る。あるいは、タプルではなく、個々のスペクトル値を用いてコンテキストを取得してもよい。
【0211】
算術コーダは、記号の所与の集合およびそのそれぞれの確率について2進コードを生成する。2進コードは、記号の集合が位置する確率間隔をコードワードにマッピングすることによって生成される。
10.2 スペクトル・ノイズレス・コーディング−定義
変数、定数等の定義については、定義の凡例を示す図18を参照されたい。
10.3 復号処理
量子化されたスペクトル係数「x_ac_dec[]」を、最も低い周波数係数から開始して、最も高い周波数係数へとノイズレス復号する。これらは、例えば、いわゆる2−タプル(a,b)において集合する2つの連続する係数aおよびbのグループによって復号される。
【0212】
次いで、周波数領域モードの(上記のような)復号された係数x_ac_dec[]を、配列「x_ac_quant[g][win][sfb][bin]」に格納する。ノイズレス・コーディング・コードワードの送信の順序は、これらが受信され、配列に格納された順に復号される場合、binが増加の最も早いインデックスであり、gが増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。
【0213】
任意には、変換符号化励起モードのための係数も評価することができる。上記の例は周波数領域オーディオ符号化および周波数領域オーディオ復号にのみ関連しているが、本明細書において開示される概念は、変換符号化励起領域で動作するオーディオ符号化器およびオーディオ復号器に実際に用いられ得る。変換符号化励起(transform coded excitation)(TCX)のための復号された係数x_ac_dec[]は、例えば、配列x_tcx_invquant[win][bin]に直接格納され、ノイズレス・コーディング・コードワードの送信の順序は、これらが受信され、配列binに格納された順に復号される場合、binが増加の最も早いインデックスであり、winが増加の最も遅いインデックスであるような順序である。1つのコードワード内では、復号の順序はa、そしてbの順である。
【0214】
まず、(任意の)フラグ「arith_reset_flag」は、コンテキストをリセットしなければならない(したほうがよいか)か否かを判定する。フラグがTRUEである場合、初期化を実行する。
【0215】
復号処理は初期化段階から開始され、初期化段階では、配列(またはサブ配列)q[1][]に格納された以前のフレームのコンテキスト要素を「q[0][]」にコピーおよびマッピングすることによりコンテキスト要素ベクトルqを更新する。q内のコンテキスト要素は、例えば、1つの2−タプルにつき4ビット格納される。初期化に関する詳細については、図19に疑似プログラムコード表現を示すアルゴリズムを参照されたい。
【0216】
図19のアルゴリズムに従って実行され得る初期化に続き、上述したコンテキストの周波数スケーリングを実行してもよい。例えば、配列(またはサブ配列)q[0][]を予備コンテキストメモリ構造432として考慮してもよい(あるいは、次元ならびにエントリeおよびvに関する詳細を除き、配列self−>base.m_qbuf[][]と同等であってもよい)。さらに、周波数スケーリングされたコンテキストを配列q[0][](または配列「self−>base.m_qbuf[][]」)に再び格納してもよい。しかし、その代わりに、またはそれに加えて、配列(またはサブ配列)q[1][]の内容を装置438によって周波数スケーリングしてもよい。
【0217】
要約すると、ノイズレス復号部は、符号無しの量子化されたスペクトル係数の2−タプルを出力する。最初に(あるいは、典型的には、周波数スケーリングの後に)、復号すべき2−タプルの周囲にある以前に復号されたスペクトル係数に基づいてコンテキスト状態cが計算される。したがって、状態は、2つの新しい2−タプルのみを考慮して、最後に復号された2−タプルのコンテキスト状態を用いて増加的に更新される。状態は、例えば、17ビットでコーディングされ、図20に疑似プログラムコード表現を示す関数「arith_get_context[]」によって戻される。
【0218】
関数「arith_get_context[]」の戻り値として取得されるコンテキスト状態cは、最上位2ビット単位プレーンmの復号に使用される累積度数テーブルを決定する。対応する累積度数テーブルインデックスpkiへのcからのマッピングは、図21に疑似プログラムコード表現を示す関数「arith_get_pk[]」によって行われる。
【0219】
値mは、累積度数テーブル「arith_cf_m[pki][]」によって呼び出される関数「arith_decode[]」を用いて復号される(ここで、pkiは関数「arith_get_pk[]」によって戻されるインデックスに対応している)。算術符号化部は、スケーリングによるタグ生成の方法を用いた整数インプリメンテーションである。図22による疑似Cコードは、使用アルゴリズムを記述している。
【0220】
復号された値mがエスケープ記号「ARITH_ESCAPE」である場合、変数「lev」および「esc_nb」を1だけインクリメントし、別の値mを復号する。この場合、値c&esc_nb<<17(esc_nbは、同じ2−タプルによって以前に復号されかつ7までに限定されているエスケープ記号の数である)を用いて、関数「get_pk[]」を再び入力引数として呼び出す。
【0221】
値mがエスケープ記号「ARITH_ESCAPE」でなくなると、復号器は、後続のmが「ARITH_STOP」記号を形成しているか否かをチェックする。条件(esc_nb>0&&m==0)が真である場合、「ARITH_STOP」が検出され、復号処理は終了する。復号器は、後述する符号復号に直接ジャンプする。この条件は、フレームの残りが0値からなることを意味する。
【0222】
「ARITH_STOP」記号が満たされない場合、現在の2−タプルについて(存在する場合)、残りのビットプレーンが復号される。残りのビットプレーンは、関数「arith_decode()」をlev回呼び出すことによって、最上位レベルから最下位レベルまで復号される。復号されたビットプレーンrにより、図23に疑似プログラムコードを示すアルゴリズムに従って、以前に復号された値a、bを改良することが可能となる。
【0223】
この時点で、2−タプル(a,b)の符号無し値が完全に復号される。当該値を、図24の疑似プログラムコードに示すような、スペクトル係数を保持する配列「x_ac_dec[]」に保存する。
【0224】
コンテキストqもまた、次の2−タプルについて更新する。このコンテキスト更新はまた、最後の2−タプルについても行う必要がある点に留意されたい。このコンテキスト更新は、図25に疑似プログラムコード表現を示す関数「arith_update_context[]」によって行われる。
【0225】
次いで、iを1だけインクリメントし、上述と同様の処理を再実行することによって、フレームの次の2−タプルを復号する。具体的には、コンテキストの周波数スケーリングを実行してもよく、続いて、関数「arith_get_context[]」から上述の処理を再開してもよい。lg/2個の2−タプルがフレーム内で復号される場合、あるいは、ストップ記号「ARITH_STOP」が出現した場合、スペクトルの振幅の復号処理を終了し、符号の復号を開始する。
【0226】
すべての符号無しの量子化されたスペクトル係数が復号されると、それに応じた符号を付加する。「x_ac_dec」のヌルでない量子化された値のそれぞれについて、1つのビットを読み出す。読み出されたビット値が1に等しい場合、量子化された値は正であり、何も行わず、符号付き値は、以前に復号された符号無し値に等しいものとなる。そうでない場合、復号された係数は負であり、符号無し値から2の補数を取る。符号ビットを、低い周波数からより高い周波数へと読み出す。
【0227】
図26に疑似プログラムコードを示す関数「arith_finish[]」を呼び出すことにより、復号を終了する。残りのスペクトル係数を0に設定する。それに応じて、各コンテキスト状態を更新する。
【0228】
上記を要約すると、スペクトル値のコンテキストベースの(あるいはコンテキスト依存型)復号が実行され、個々のスペクトル値が復号され得るか、あるいはスペクトル値がタプル単位で(上記の通り)復号され得る。本明細書に記載されるように、コンテキストは、基本周波数(あるいは、同等に、ピッチ)の時間変動がある場合に良好な符号化/復号性能を実現するために、周波数スケーリングされてもよい。
11.図27a〜図27fによるオーディオストリーム
以下に、1つ以上のオーディオ信号チャネルおよび1つ以上のタイムワープコンターの符号化された表現を含むオーディオストリームについて説明する。以下に説明するオーディオストリームは、例えば、符号化されたオーディオ信号表現112または符号化されたオーディオ信号表現152を運ぶことができる。
【0229】
図27aは、単一チャネル要素(SCE)、チャネル対要素(CPE)または1つ以上の単一チャネル要素および/もしく1つ以上のチャネル対要素の組み合わせを含み得る、いわゆる「USAC_raw_data_block」データストリーム要素の表現を示す。
【0230】
「USAC_raw_data_block」は、典型的には、符号化されたオーディオデータのブロックを含み得る一方で、追加のタイムワープコンター情報は、別個のデータストリーム要素において提供することができる。しかしながら、いくつかのタイムワープコンターデータを「USAC_raw_data_block」に符号化することは当然可能である。
【0231】
図27bから理解されるように、単一チャネル要素は、典型的には、図27dを参照して詳細に説明される周波数領域チャネルストリーム(「fd_channel_stream」)を含む。
【0232】
図27cから理解されるように、チャネル対要素(「channel_pair_element」)は、典型的には、複数の周波数領域チャネルストリームを含む。また、チャネル対要素は、例えば、設定データストリーム要素または「USAC_raw_data_block」において送信することができ、また、タイムワープ情報をチャネル対要素に含めるか否かを決定するタイムワープ起動フラグ(「tw_MDCT」)といったタイムワープ情報を含み得る。例えば、「tw_MDCT」フラグがタイムワープがアクティブであることを示す場合、チャネル対要素は、チャネル対要素のオーディオチャネルについて共通のタイムワープが存在するか否かを示すフラグ(「common_tw」)を含み得る。当該フラグ(「common_tw」)が多数のオーディオチャネルについて共通のタイムワープが存在することを示す場合、共通のタイムワープ情報(「tw_data」)を、例えば、周波数領域チャネルストリームとは別に、チャネル対要素に含める。
【0233】
ここで図27dを参照すると、周波数領域チャネルストリームが示されている。図27dから理解されるように、周波数領域チャネルストリームは、例えば、グローバルゲイン情報を含む。また、周波数領域チャネルストリームは、タイムワーピングがアクティブであり(フラグ「tw_MDCT」がアクティブであり)、多数のオーディ信号オチャネルについて共通のタイムワープ情報が存在しない(フラグ「「common_tw」が非アクティブである)場合、タイムワープデータを含む。
【0234】
さらに、周波数領域チャネルストリームはまた、スケーリング因子データ(「scale_factor_data」)および符号化されたスペクトルデータ(例えば、算術符号化されたスペクトルデータ「ac_spectral_data」)も含む。
【0235】
ここで図27eを参照し、タイムワープデータの構文について簡単に述べる。タイムワープデータは、例えば、タイムワープデータが存在しているか否かを示すフラグ(例えば、「tw_data_present」または「active_pitch_data」)を任意には含み得る。タイムワープデータが存在している(すなわち、タイムワープコンターが平坦でない)場合、タイムワープデータは、例えば、上述のようにサンプリングレート依存型コードブックテーブルに従って符号化され得る複数の符号化されたタイムワープ比の値(例えば、「tw_ratio[i]」または「pitch Idx[i]」)のシーケンスを含み得る。
【0236】
したがって、タイムワープデータは、タイムワープコンターが一定である(タイムワープ比が1.000にほぼ等しい)場合、利用可能なタイムワープデータが存在しないことを示すフラグ(オーディオ信号符号化器によって設定され得る)を含み得る。これに対し、タイムワープコンターが変化している場合、連続するタイムワープコンターノード間の比は、「tw_ratio」情報を構成するコードブックインデックスを用いて符号化され得る。
【0237】
図27fは、算術コーディングされたスペクトルデータ「ac_spectral_data()」の構文の図式表現を示す。算術コーディングされたスペクトルデータは、独立性フラグ(ここでは「indepFlag」)の状態に応じて符号化され、このフラグは、アクティブである場合には、算術コーディングされたデータが以前のフレームの算術符号化されたデータから独立していることを示す。独立性フラグ「indepFlag」がアクティブである場合、算術リセットフラグ「arith_reset_flag」はアクティブとなるよう設定される。そうでない場合、算術リセットフラグの値は、算術コーディングされたスペクトルデータにおけるビンによって決定される。
【0238】
さらに、算術コーディングされたスペクトルデータブロック「ac_spectral_data()」は、算術コーディングされたデータの1つ以上のユニットを含み、算術コーディングされたデータ「arith_data()」のユニットの数は、現在のフレームにおけるブロック(またはウィンドウ)の数に依存する。長ブロックモードでは、1つのオーディオフレームにつき1個のウィンドウしか存在しない。しかし、短ブロックモードでは、1つのオーディオフレームにつき例えば8個のウィンドウが存在し得る。算術コーディングされたスペクトルデータ「arith_data」の各ユニットは、例えば、逆変換部180eによって実行され得る周波数領域−時間領域変換のための入力として機能し得るスペクトル係数の集合を含む。
【0239】
算術符号化されたデータ「arith_data」の1つのユニット当たりのスペクトル係数の数は、例えば、サンプリング周波数と無関係であり得るが、ブロック長モード(短ブロックモード「EIGHT_SHORT_SEQUENCE」または長ブロックモード「ONLY_LONG_SEQUENCE」)に依存し得る。
12.結論
上記を要約すると、タイムワープ型修正離散コサイン変換の関連での改良について述べた。本明細書に記載の発明は、タイムワープ型修正離散変換コーダ(例えば、参考文献[1]および[2]を参照)を背景としており、また、ワープ型MDCT変換コーダの性能を向上させるための方法を含む。このようなタイムワープ型修正離散コサイン変換コーダの1つの実施例は、進行中のMPEG USACオーディオコーディング標準化作業(例えば、参考文献[3]を参照)において実現されている。使用されるTW−MDCTの実施例の詳細は、例えば、参考文献[4]において見られる。
【0240】
しかしながら、上記概念に対する改善案が本明細書において示される。
13.代替実施例
いくつかの態様を装置との関連で説明したが、これらの態様は対応する方法も示していることは明らかであり、方法においては、ブロックまたはデバイスは、方法ステップまたは方法ステップの特徴に対応する。同様に、方法ステップとの関連で説明した態様もまた、対応するブロックもしくは項目または対応する装置の特徴を示すものである。例えば、マイクロプロセッサ、プログラム可能なコンピュータ、または電子回路といったハードウェア装置によって(またはこれを用いて)、方法ステップの一部またはすべてを実行してもよい。いくつかの実施形態では、最も重要な方法ステップのうち任意の1つ以上をこのような装置によって実行してもよい。
【0241】
本発明の符号化されたオーディオ信号は、デジタル記憶媒体に格納することができ、あるいは、無線伝送媒体またはインターネットのような有線伝送媒体などの伝送媒体上に送信することができる。
【0242】
特定の実施要件によっては、本発明の実施形態は、ハードウェアにおいて、またはソフトウェアにおいて実施されることができる。実施は、電子的に読取可能な制御信号を格納したデジタル記憶媒体、例えば、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROM、EPROM、EEPROMまたはフラッシュメモリを用いて実行することができ、これらは、各方法が実行されるようにプログラム可能なコンピュータシステムと協働する(または協働することができる)。したがって、デジタル記憶媒体は、コンピュータ可読であってもよい。
【0243】
本発明によるいくつかの実施形態は、本明細書に記載される方法のうちの1つが実行されるように、プログラム可能なコンピュータシステムと協働することができる電子的に読取り可能な制御信号を有するデータキャリアを含む。
【0244】
通常、本発明の実施形態はプログラムコードを有するコンピュータプログラム製品として実現することができ、コンピュータプログラム製品がコンピュータで実行されたときに、プログラムコードが方法のうちの1つを実行するために動作する。プログラムコードは、例えば、機械可読キャリアに格納され得る。
【0245】
他の実施形態は、本明細書に記載される、機械可読キャリアに格納された方法のうちの1つを実行するためのコンピュータプログラムを含む。
【0246】
したがって、換言すれば、本発明の方法の一実施形態は、コンピュータ上で実行されたときに、本明細書に記載される方法のうちの1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0247】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムが記録されたデータキャリア(すなわちデジタル記憶媒体またはコンピュータ可読媒体)である。データキャリア、デジタル記憶媒体、または記録された媒体は、典型的には、有形および/または非過渡的である。
【0248】
したがって、本発明の方法のさらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを表すデータストリームまたは信号のシーケンスである。データストリームまたは信号のシーケンスは、例えばインターネットなどのデータ通信接続を介して転送されるように構成することができる。
【0249】
さらなる実施形態は、本明細書に記載される方法の1つを実行するように構成されるかあるいは適合された、例えばコンピュータまたはプログラム可能論理デバイスといった処理手段を含む。
【0250】
さらなる実施形態は、本明細書に記載される方法のうちの1つを実行するためのコンピュータプログラムを搭載したコンピュータを含む。
【0251】
本発明によるさらなる実施形態は、本明細書で説明された方法のうちの1つを実行するためのコンピュータプログラムを受信機に転送する(例えば、電子的または光学的に)ように構成された装置またはシステムを含む。受信機は、例えば、コンピュータ、携帯機器、メモリデバイス等であってもよい。この装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するためのファイルサーバを備えていてもよい。
【0252】
いくつかの実施形態において、プログラム可能論理デバイス(例えばフィールドプログラマブルゲートアレイ)を用いて、本明細書に記載される方法の機能のいくつかまたはすべてを実行してもよい。いくつかの実施形態では、フィールドプログラマブルゲートアレイは、本明細書に記載される方法のうちの1つを実行するために、マイクロプロセッサと協働してもよい。通常、上記方法は、好ましくは、いかなるハードウェア装置によっても実行される。
【0253】
上述の実施形態は、本発明の原理のための単なる例示にすぎない。本明細書に記載される構成及び詳細事項の修正変更は、他の当業者にとって明らかであるものと理解される。したがって、本発明は、添付の特許クレームの範囲のみによって限定されるものであって、本明細書に記載の実施形態の記載および説明によって示される具体的な詳細事項によって限定されるものではない。
【0254】
参考文献
[1] Bernd Edler et.al., “Time Warped MDCT”, US 61/042,314, Provisional application for patent,
[2] L. Villemoes, “Time Warped Transform Coding of Audio Signals”,
PCT/EP2006/010246, International patent application, November 2005.
[3] “WD6 of USAC”, ISO/IEC JTC1/SC29/WG11 N11213, 2010
[4] Bernd Edler et. al., “A Time-Warped MDCT Approach to Speech Transform Coding”, 126th AES Convention, Munich, May 2009, preprint 7710
[5] Nikolaus Meine, “Vektorquantisierung und kontextabhaengige arithmetische Codierung fuer MPEG-4 AAC”, VDI, Hannover, 2007
【特許請求の範囲】
【請求項1】
復号されたオーディオ信号表現(154)を、符号化されたスペクトル表現(ac_spectral_data[])と符号化されたタイムワープ情報(tw_data[])とを含む符号化されたオーディオ信号表現(152)に基づいて提供するためのオーディオ信号復号器(150;240)であって、
1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態に応じて復号して、復号されたスペクトル値(162,297,x_ac_dec[])を取得するコンテキストベースのスペクトル値復号部(160)と、
1つ以上前に復号されたスペクトル値(162,297)に応じて現在のコンテキスト状態(164,c)を決定するコンテキスト状態決定部(170;400)と、
所与のオーディオフレームのタイムワープされた時間領域表現(182)を、該所与のオーディオフレームに対応付けられ、前記コンテキストベースのスペクトル値復号部によって提供された、復号されたスペクトル値(162,297)の集合に基づいてかつ前記タイムワープ情報に応じて提供するタイムワーピング周波数領域−時間領域変換部(180)と、を備え、
前記コンテキスト状態決定部(170;400)は、連続するオーディオフレーム間の基本周波数の変化に適合させるように、前記コンテキスト状態の決定するように構成されている、
オーディオ信号復号器(150;240)。
【請求項2】
前記タイムワープ情報(tw_data)は、ピッチの経時変動(prel)を示し、
前記コンテキスト状態決定部(170;400)は、前記タイムワープ情報(tw_data)から周波数伸長情報(s;m_ContextUpdateRatio)を導出するように構成され、
前記コンテキスト状態決定部は、前記以前のオーディオフレームに対応付けられた過去のコンテキスト(432,q[0][],450)を、前記周波数伸長情報(s,m_ContextUpdateRatio)に応じて周波数軸に沿って伸長または圧縮して、現在のオーディオフレームの1つ以上のスペクトル値のコンテキストベースの復号のための適合されたコンテキスト(440,q[0][],452)を取得するように構成されている、
請求項1に記載のオーディオ信号復号器。
【請求項3】
前記コンテキスト状態決定部(170,400)は、第1のオーディオフレームにわたる第1の平均周波数情報(frel,mean,k−1)を前記タイムワープ情報(tw_data,prel,warp_contour[])から導出し、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均周波数情報(frel,mean,k)を前記タイムワープ情報から導出するように構成され、
前記コンテキスト状態決定部は、前記周波数伸長情報(s,m_ContextUpdateRatio)を決定するために、前記第2のオーディオフレームにわたる第2の平均周波数情報(frel,mean,k)と前記第1のオーディオフレームにわたる第1の平均周波数情報(frel,mean,k−1)との比を計算するように構成されている、
請求項2に記載のオーディオ信号復号器。
【請求項4】
前記コンテキスト状態決定部(170;400)は、第1のオーディオフレームにわたる第1の平均タイムワープコンター(time warp contour)情報(prel,mean,k−1)を前記タイムワープ情報(tw_data,prel,warp_contour[])から決定するように構成され、
前記コンテキスト状態決定部は、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均タイムワープコンター情報(prel,mean,k)を前記タイムワープ情報(252,tw_data,prel,warp_contour[])から導出するように構成され、
前記コンテキスト状態決定部は、前記周波数伸長情報(s,m_ContextUpdateRatio)を決定するために、前記第1のオーディオフレームにわたる第1の平均タイムワープコンター情報(prel,mean,k−1)と前記第2のオーディオフレームにわたる第2の平均タイムワープコンター情報(prel,mean,k)との比を計算するように構成されている、
請求項2に記載のオーディオ信号復号器。
【請求項5】
前記コンテキスト状態決定部(170,400)は、前記第1および第2の平均周波数情報または前記第1および第2の平均タイムワープコンター情報を、複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンター(warp_contour[])から導出するように構成されている、
請求項3または4に記載のオーディオ信号復号器。
【請求項6】
前記オーディオ信号復号器は、複数の連続オーディオフレームにわたる相対ピッチの時間変遷(temporal evolution)を示すタイムワープコンター情報(prel[],warp_contour[],258)を前記タイムワープ情報(tw_data,252)に基づいて計算するように構成されたタイムワープ計算部(250)を備え、
前記コンテキスト状態決定部(170,400)は、前記周波数伸長情報を導出するために前記タイムワープコンター情報を使用するように構成されている、
請求項3、4または5に記載のオーディオ信号復号器。
【請求項7】
前記オーディオ信号復号器は、再サンプリング位置計算部(180l)を備え、
前記再サンプリング位置計算部(180l)は、タイムワープ再サンプリング部(180i)によって使用される再サンプリング位置を、該再サンプリング位置の時間変動が前記タイムワープコンター情報によって決定されるように、前記タイムワープコンター情報(prel[],warp_contour[],258)に基づいて計算するよう構成されている、
請求項6に記載のオーディオ信号復号器。
【請求項8】
前記コンテキスト状態決定部(170,400)は、前記コンテキスト状態を示す現在の数値コンテキスト値(164,c)を複数の以前に復号されたスペクトル値に応じて導出し、1つ以上のスペクトル値を表す記号コード(symbol)または1つ以上のスペクトル値の数値表現の一部(m)へのコード値(acod_m)のマッピングを示すマッピング規則(cum_freq[])を前記現在の数値コンテキスト値に応じて選択するように構成され、
前記コンテキストベースのスペクトル値復号部(160)は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示す前記コード値(acod_m)を、前記コンテキスト状態決定部によって選択された前記マッピング規則(cum_freq[])を使用して復号するように構成されている、
請求項1から7のいずれかに記載のオーディオ信号復号器。
【請求項9】
前記コンテキスト状態決定部(170,400)は、予備コンテキストメモリ構造(432,m_qbuf)を、該予備コンテキストメモリ構造のエントリが第1のオーディオフレームの1つ以上のスペクトル値(162,297)を示すように設定および更新するよう構成され、前記予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた、前記周波数領域−時間領域変換部(180e)の周波数ビンまたは隣接する周波数ビンの集合を示し、
前記コンテキスト状態決定部は、前記第1のオーディオフレームに続く第2のオーディオフレームの復号のための周波数スケーリングされたコンテキストメモリ構造(440;m_qbuf)を、第1の周波数インデックス(i1+1,i2+2,nWarpTupleIdx)を有する前記予備コンテキストメモリ構造の所与のエントリ(450a,450c,self−>base.m_qbuf[nWarpTupleIdx])またはサブエントリ(self−>base.m_qbuf[nWarpTupleIdx].a)が、第2の周波数インデックス(i1,i2−1,nLinTupleIdx)を有する前記周波数スケーリングされたコンテキストメモリ構造(440,m_qbuf,452)の対応するエントリ(452a,452c,self−>base.m_qbuf[nLinTupleIdx])またはサブエントリ(self−>base.m_qbuf[nLinTupleIdx].a)にマッピングされるように、前記予備コンテキストメモリ構造に基づいて取得するよう構成され、前記第2の周波数インデックスは、前記周波数領域−時間領域変換部(180e)の前記第1の周波数インデックスとは異なる周波数ビンまたは隣接する周波数ビンの集合に対応付けられている、
請求項8に記載のオーディオ信号復号器。
【請求項10】
前記コンテキスト状態決定部(170,400)は、第3の周波数インデックス(i1)が対応付けられた前記第2のオーディオフレームの1つ以上のスペクトル値または第2のオーディオフレームの1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)の復号のための前記現在のコンテキスト状態を示すコンテキスト状態値(164,420)を、前記周波数スケーリングされたコンテキストメモリ構造(440,m_qbuf、452)の値を用いて導出するように構成され、前記周波数スケーリングされたコンテキストメモリ構造の値の周波数インデックス(i1−1,i1,i1+1)は、前記第3の周波数インデックス(i1)と所定の関係にあり、
前記第3の周波数インデックス(i1)は、前記現在のコンテキスト状態を用いて復号される前記第2のオーディオフレームの1つ以上のスペクトル値が対応付けられた、前記周波数領域−時間領域変換部(180e)の周波数ビンまたは隣接する周波数ビンの集合を指定する、
請求項9に記載のオーディオ信号復号器。
【請求項11】
前記コンテキスト状態決定部(170;400)は、対応するターゲット周波数インデックス(i1,i2−1,nLinTupleIdx)を有する前記周波数スケーリングされたコンテキストメモリ構造(440,452,m_qbuf)の複数のエントリ(452a,452c,self−>base.m_qbuf[nLinTupleIdx])のそれぞれを、対応するソース周波数インデックス(i1+1,i2+2,nWarpTupleIdx)を有する前記予備コンテキストメモリ構造(432,450,m_qbuf)の対応するエントリ(450a,450c,self−>base.m_sqbuf[nWarpTupleIdx])の値に設定するように構成され、
前記コンテキスト状態決定部は、前記周波数スケーリングされたコンテキストメモリ構造のエントリおよび前記予備コンテキストメモリ構造の対応するエントリの対応する周波数インデックス(i1,i1+1;i2−1,i2+2;nLinTupleIdx,nWarpTupleIdx)を、該対応する周波数インデックス(nLinTupleIdx,nWarpTupleIdx)間の比が、前記予備コンテキストメモリ構造のエントリが対応付けられた現在のオーディオフレームと、前記周波数スケーリングされたコンテキストメモリ構造のエントリによって復号コンテキストが決定される次のオーディオフレームとの間の前記基本周波数の変化によって決まるように、決定するよう構成されている、
請求項9または10に記載のオーディオ信号復号器。
【請求項12】
前記コンテキスト状態決定部(170,400)は、前記予備コンテキストメモリ構造の複数のエントリ(450a,450c,self−>base.m_qbuf[nWarpTupleIdx])のそれぞれが第1のオーディオフレームの複数のスペクトル値(a,b,c,d)に基づくように前記予備コンテキストメモリ構造(432,m_qbuf,450)を設定するよう構成され、前記予備コンテキストメモリ構造(432,450,m_qbuf)のエントリのエントリインデックス(i1+1,i2+2,nWarpTupleIdx)は、それぞれのエントリが対応付けられた、前記周波数領域−時間領域変換部(180e)の隣接する周波数ビンの集合を示し、
前記コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた予備周波数ビン個別コンテキスト値(lineReorderBuf[(curTuple−1)*4+0],…,lineReorderBuf[(curTuple−1)*4+3])を、前記予備コンテキストメモリ構造のエントリ(self−>base.m_qbuf[curTuple[][])から抽出するように構成され、
前記コンテキスト状態決定部は、個別の周波数ビンインデックス(linLineIdx)が対応付けられた、周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[linLineIdx])を、第1の周波数ビンインデックス(warpLineIdx)を有する所与の予備周波数ビン個別コンテキスト値(lineReorderBuf[warpLineIdx])が第2の周波数ビンインデックス(linLineIdx)を有する対応する周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[linLineIdx])にマッピングされ、その結果、前記予備周波数ビン個別コンテキスト値の周波数ビン個別マッピングが得られるように、取得するよう構成され、
前記コンテキスト状態決定部は、複数の周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[(curTuple−1)*4+0,…,lineTmpBuf[(curTuple−1)*4+3]を組み合わせて、前記周波数スケーリングされたコンテキストメモリ構造の1つの組み合わせエントリ(self−>base.m_qbuf[curTuple][])にするように構成されている、
請求項9または10に記載のオーディオ信号復号器。
【請求項13】
符号化されたスペクトル表現(132)と符号化されたタイムワープ情報(226)とを含む、入力オーディオ信号(110)の符号化された表現(112)を提供するためのオーディオ信号符号化器(100;200)であって、
タイムワープ情報(122)に応じてタイムワープされた、前記入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現(124)を提供するように構成された周波数領域表現提供部(120)と、
前記周波数領域表現(124)の1つ以上のスペクトル値または前記周波数領域表現(124)の1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態(134)に応じて提供して、前記符号化されたスペクトル表現(132)の符号化されたスペクトル値(acod_m)を取得するように構成されたコンテキストベースのスペクトル値符号化部(130)と、
現在のコンテキスト状態(134)を1つ以上前に符号化されたスペクトル値に応じて決定するように構成されたコンテキスト状態決定部(140)であって、前記コンテキスト状態の決定を、連続するオーディオフレーム間の基本周波数の変化に適合させるコンテキスト状態決定部(140)と
を備えるオーディオ信号符号化器(100;200)。
【請求項14】
前記コンテキスト状態決定部は、現在の数値コンテキスト値(134,c)を複数の以前に符号化されたスペクトル値に応じて導出し、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の一部(m)のコード値(acod_m)へのマッピングを示すマッピング規則を前記現在の数値コンテキスト値に応じて選択するように構成され、
前記コンテキストベースのスペクトル値符号化部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、前記コンテキスト状態決定部によって選択された前記マッピング規則を使用して提供するように構成されている、
請求項13に記載のオーディオ信号符号化器。
【請求項15】
復号されたオーディオ信号表現(154)を、符号化されたスペクトル表現(ac_spectral_data[])と符号化されたタイムワープ情報(tw_data[])とを含む符号化されたオーディオ信号表現(152)に基づいて提供するための方法であって、
1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態に応じて復号して、復号されたスペクトル値(162,297,x_ac_dec[])を取得するステップと、
1つ以上前に復号されたスペクトル値(162,297)に応じて現在のコンテキスト状態(164,c)を決定するステップと、
所与のオーディオフレームのタイムワープされた時間領域表現(182)を、該所与のオーディオフレームに対応付けられ、前記コンテキストベースのスペクトル値復号部によって提供された、復号されたスペクトル値(162,297)の集合に基づいて、かつ前記タイムワープ情報に応じて提供するステップと、
を含み、
前記現在のコンテキスト状態は、連続するオーディオフレーム間の基本周波数の変化に適合して決定される、
方法。
【請求項16】
符号化されたスペクトル表現(132)と符号化されたタイムワープ情報(226)とを含む、入力オーディオ信号(110)の符号化された表現(112)を提供するための方法であって、
タイムワープ情報(122)に応じてタイムワープされた、前記入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現(124)を提供するステップと、
前記周波数領域表現(124)の1つ以上のスペクトル値または前記周波数領域表現(124)の1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態(134)に応じて提供して、前記符号化されたスペクトル表現(132)の符号化されたスペクトル値(acod_m)を取得するステップと、
現在のコンテキスト状態(134)を、1つ以上前に符号化されたスペクトル値に応じて決定するステップと、
を含み、
前記コンテキスト状態は、連続するオーディオフレーム間の基本周波数の変化に適合して決定される、
方法。
【請求項17】
コンピュータ上で実行されたときに、請求項15または16に記載の方法を実行するためのコンピュータプログラム。
【請求項1】
復号されたオーディオ信号表現(154)を、符号化されたスペクトル表現(ac_spectral_data[])と符号化されたタイムワープ情報(tw_data[])とを含む符号化されたオーディオ信号表現(152)に基づいて提供するためのオーディオ信号復号器(150;240)であって、
1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態に応じて復号して、復号されたスペクトル値(162,297,x_ac_dec[])を取得するコンテキストベースのスペクトル値復号部(160)と、
1つ以上前に復号されたスペクトル値(162,297)に応じて現在のコンテキスト状態(164,c)を決定するコンテキスト状態決定部(170;400)と、
所与のオーディオフレームのタイムワープされた時間領域表現(182)を、該所与のオーディオフレームに対応付けられ、前記コンテキストベースのスペクトル値復号部によって提供された、復号されたスペクトル値(162,297)の集合に基づいてかつ前記タイムワープ情報に応じて提供するタイムワーピング周波数領域−時間領域変換部(180)と、を備え、
前記コンテキスト状態決定部(170;400)は、連続するオーディオフレーム間の基本周波数の変化に適合させるように、前記コンテキスト状態の決定するように構成されている、
オーディオ信号復号器(150;240)。
【請求項2】
前記タイムワープ情報(tw_data)は、ピッチの経時変動(prel)を示し、
前記コンテキスト状態決定部(170;400)は、前記タイムワープ情報(tw_data)から周波数伸長情報(s;m_ContextUpdateRatio)を導出するように構成され、
前記コンテキスト状態決定部は、前記以前のオーディオフレームに対応付けられた過去のコンテキスト(432,q[0][],450)を、前記周波数伸長情報(s,m_ContextUpdateRatio)に応じて周波数軸に沿って伸長または圧縮して、現在のオーディオフレームの1つ以上のスペクトル値のコンテキストベースの復号のための適合されたコンテキスト(440,q[0][],452)を取得するように構成されている、
請求項1に記載のオーディオ信号復号器。
【請求項3】
前記コンテキスト状態決定部(170,400)は、第1のオーディオフレームにわたる第1の平均周波数情報(frel,mean,k−1)を前記タイムワープ情報(tw_data,prel,warp_contour[])から導出し、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均周波数情報(frel,mean,k)を前記タイムワープ情報から導出するように構成され、
前記コンテキスト状態決定部は、前記周波数伸長情報(s,m_ContextUpdateRatio)を決定するために、前記第2のオーディオフレームにわたる第2の平均周波数情報(frel,mean,k)と前記第1のオーディオフレームにわたる第1の平均周波数情報(frel,mean,k−1)との比を計算するように構成されている、
請求項2に記載のオーディオ信号復号器。
【請求項4】
前記コンテキスト状態決定部(170;400)は、第1のオーディオフレームにわたる第1の平均タイムワープコンター(time warp contour)情報(prel,mean,k−1)を前記タイムワープ情報(tw_data,prel,warp_contour[])から決定するように構成され、
前記コンテキスト状態決定部は、前記第1のオーディオフレームに続く第2のオーディオフレームにわたる第2の平均タイムワープコンター情報(prel,mean,k)を前記タイムワープ情報(252,tw_data,prel,warp_contour[])から導出するように構成され、
前記コンテキスト状態決定部は、前記周波数伸長情報(s,m_ContextUpdateRatio)を決定するために、前記第1のオーディオフレームにわたる第1の平均タイムワープコンター情報(prel,mean,k−1)と前記第2のオーディオフレームにわたる第2の平均タイムワープコンター情報(prel,mean,k)との比を計算するように構成されている、
請求項2に記載のオーディオ信号復号器。
【請求項5】
前記コンテキスト状態決定部(170,400)は、前記第1および第2の平均周波数情報または前記第1および第2の平均タイムワープコンター情報を、複数の連続オーディオフレームにわたって伸びる共通のタイムワープコンター(warp_contour[])から導出するように構成されている、
請求項3または4に記載のオーディオ信号復号器。
【請求項6】
前記オーディオ信号復号器は、複数の連続オーディオフレームにわたる相対ピッチの時間変遷(temporal evolution)を示すタイムワープコンター情報(prel[],warp_contour[],258)を前記タイムワープ情報(tw_data,252)に基づいて計算するように構成されたタイムワープ計算部(250)を備え、
前記コンテキスト状態決定部(170,400)は、前記周波数伸長情報を導出するために前記タイムワープコンター情報を使用するように構成されている、
請求項3、4または5に記載のオーディオ信号復号器。
【請求項7】
前記オーディオ信号復号器は、再サンプリング位置計算部(180l)を備え、
前記再サンプリング位置計算部(180l)は、タイムワープ再サンプリング部(180i)によって使用される再サンプリング位置を、該再サンプリング位置の時間変動が前記タイムワープコンター情報によって決定されるように、前記タイムワープコンター情報(prel[],warp_contour[],258)に基づいて計算するよう構成されている、
請求項6に記載のオーディオ信号復号器。
【請求項8】
前記コンテキスト状態決定部(170,400)は、前記コンテキスト状態を示す現在の数値コンテキスト値(164,c)を複数の以前に復号されたスペクトル値に応じて導出し、1つ以上のスペクトル値を表す記号コード(symbol)または1つ以上のスペクトル値の数値表現の一部(m)へのコード値(acod_m)のマッピングを示すマッピング規則(cum_freq[])を前記現在の数値コンテキスト値に応じて選択するように構成され、
前記コンテキストベースのスペクトル値復号部(160)は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示す前記コード値(acod_m)を、前記コンテキスト状態決定部によって選択された前記マッピング規則(cum_freq[])を使用して復号するように構成されている、
請求項1から7のいずれかに記載のオーディオ信号復号器。
【請求項9】
前記コンテキスト状態決定部(170,400)は、予備コンテキストメモリ構造(432,m_qbuf)を、該予備コンテキストメモリ構造のエントリが第1のオーディオフレームの1つ以上のスペクトル値(162,297)を示すように設定および更新するよう構成され、前記予備コンテキストメモリ構造のエントリのエントリインデックスは、それぞれのエントリが対応付けられた、前記周波数領域−時間領域変換部(180e)の周波数ビンまたは隣接する周波数ビンの集合を示し、
前記コンテキスト状態決定部は、前記第1のオーディオフレームに続く第2のオーディオフレームの復号のための周波数スケーリングされたコンテキストメモリ構造(440;m_qbuf)を、第1の周波数インデックス(i1+1,i2+2,nWarpTupleIdx)を有する前記予備コンテキストメモリ構造の所与のエントリ(450a,450c,self−>base.m_qbuf[nWarpTupleIdx])またはサブエントリ(self−>base.m_qbuf[nWarpTupleIdx].a)が、第2の周波数インデックス(i1,i2−1,nLinTupleIdx)を有する前記周波数スケーリングされたコンテキストメモリ構造(440,m_qbuf,452)の対応するエントリ(452a,452c,self−>base.m_qbuf[nLinTupleIdx])またはサブエントリ(self−>base.m_qbuf[nLinTupleIdx].a)にマッピングされるように、前記予備コンテキストメモリ構造に基づいて取得するよう構成され、前記第2の周波数インデックスは、前記周波数領域−時間領域変換部(180e)の前記第1の周波数インデックスとは異なる周波数ビンまたは隣接する周波数ビンの集合に対応付けられている、
請求項8に記載のオーディオ信号復号器。
【請求項10】
前記コンテキスト状態決定部(170,400)は、第3の周波数インデックス(i1)が対応付けられた前記第2のオーディオフレームの1つ以上のスペクトル値または第2のオーディオフレームの1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)の復号のための前記現在のコンテキスト状態を示すコンテキスト状態値(164,420)を、前記周波数スケーリングされたコンテキストメモリ構造(440,m_qbuf、452)の値を用いて導出するように構成され、前記周波数スケーリングされたコンテキストメモリ構造の値の周波数インデックス(i1−1,i1,i1+1)は、前記第3の周波数インデックス(i1)と所定の関係にあり、
前記第3の周波数インデックス(i1)は、前記現在のコンテキスト状態を用いて復号される前記第2のオーディオフレームの1つ以上のスペクトル値が対応付けられた、前記周波数領域−時間領域変換部(180e)の周波数ビンまたは隣接する周波数ビンの集合を指定する、
請求項9に記載のオーディオ信号復号器。
【請求項11】
前記コンテキスト状態決定部(170;400)は、対応するターゲット周波数インデックス(i1,i2−1,nLinTupleIdx)を有する前記周波数スケーリングされたコンテキストメモリ構造(440,452,m_qbuf)の複数のエントリ(452a,452c,self−>base.m_qbuf[nLinTupleIdx])のそれぞれを、対応するソース周波数インデックス(i1+1,i2+2,nWarpTupleIdx)を有する前記予備コンテキストメモリ構造(432,450,m_qbuf)の対応するエントリ(450a,450c,self−>base.m_sqbuf[nWarpTupleIdx])の値に設定するように構成され、
前記コンテキスト状態決定部は、前記周波数スケーリングされたコンテキストメモリ構造のエントリおよび前記予備コンテキストメモリ構造の対応するエントリの対応する周波数インデックス(i1,i1+1;i2−1,i2+2;nLinTupleIdx,nWarpTupleIdx)を、該対応する周波数インデックス(nLinTupleIdx,nWarpTupleIdx)間の比が、前記予備コンテキストメモリ構造のエントリが対応付けられた現在のオーディオフレームと、前記周波数スケーリングされたコンテキストメモリ構造のエントリによって復号コンテキストが決定される次のオーディオフレームとの間の前記基本周波数の変化によって決まるように、決定するよう構成されている、
請求項9または10に記載のオーディオ信号復号器。
【請求項12】
前記コンテキスト状態決定部(170,400)は、前記予備コンテキストメモリ構造の複数のエントリ(450a,450c,self−>base.m_qbuf[nWarpTupleIdx])のそれぞれが第1のオーディオフレームの複数のスペクトル値(a,b,c,d)に基づくように前記予備コンテキストメモリ構造(432,m_qbuf,450)を設定するよう構成され、前記予備コンテキストメモリ構造(432,450,m_qbuf)のエントリのエントリインデックス(i1+1,i2+2,nWarpTupleIdx)は、それぞれのエントリが対応付けられた、前記周波数領域−時間領域変換部(180e)の隣接する周波数ビンの集合を示し、
前記コンテキスト状態決定部は、個別の周波数ビンインデックスが対応付けられた予備周波数ビン個別コンテキスト値(lineReorderBuf[(curTuple−1)*4+0],…,lineReorderBuf[(curTuple−1)*4+3])を、前記予備コンテキストメモリ構造のエントリ(self−>base.m_qbuf[curTuple[][])から抽出するように構成され、
前記コンテキスト状態決定部は、個別の周波数ビンインデックス(linLineIdx)が対応付けられた、周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[linLineIdx])を、第1の周波数ビンインデックス(warpLineIdx)を有する所与の予備周波数ビン個別コンテキスト値(lineReorderBuf[warpLineIdx])が第2の周波数ビンインデックス(linLineIdx)を有する対応する周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[linLineIdx])にマッピングされ、その結果、前記予備周波数ビン個別コンテキスト値の周波数ビン個別マッピングが得られるように、取得するよう構成され、
前記コンテキスト状態決定部は、複数の周波数スケーリングされた周波数ビン個別コンテキスト値(lineTmpBuf[(curTuple−1)*4+0,…,lineTmpBuf[(curTuple−1)*4+3]を組み合わせて、前記周波数スケーリングされたコンテキストメモリ構造の1つの組み合わせエントリ(self−>base.m_qbuf[curTuple][])にするように構成されている、
請求項9または10に記載のオーディオ信号復号器。
【請求項13】
符号化されたスペクトル表現(132)と符号化されたタイムワープ情報(226)とを含む、入力オーディオ信号(110)の符号化された表現(112)を提供するためのオーディオ信号符号化器(100;200)であって、
タイムワープ情報(122)に応じてタイムワープされた、前記入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現(124)を提供するように構成された周波数領域表現提供部(120)と、
前記周波数領域表現(124)の1つ以上のスペクトル値または前記周波数領域表現(124)の1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態(134)に応じて提供して、前記符号化されたスペクトル表現(132)の符号化されたスペクトル値(acod_m)を取得するように構成されたコンテキストベースのスペクトル値符号化部(130)と、
現在のコンテキスト状態(134)を1つ以上前に符号化されたスペクトル値に応じて決定するように構成されたコンテキスト状態決定部(140)であって、前記コンテキスト状態の決定を、連続するオーディオフレーム間の基本周波数の変化に適合させるコンテキスト状態決定部(140)と
を備えるオーディオ信号符号化器(100;200)。
【請求項14】
前記コンテキスト状態決定部は、現在の数値コンテキスト値(134,c)を複数の以前に符号化されたスペクトル値に応じて導出し、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の一部(m)のコード値(acod_m)へのマッピングを示すマッピング規則を前記現在の数値コンテキスト値に応じて選択するように構成され、
前記コンテキストベースのスペクトル値符号化部は、1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部を示すコード値を、前記コンテキスト状態決定部によって選択された前記マッピング規則を使用して提供するように構成されている、
請求項13に記載のオーディオ信号符号化器。
【請求項15】
復号されたオーディオ信号表現(154)を、符号化されたスペクトル表現(ac_spectral_data[])と符号化されたタイムワープ情報(tw_data[])とを含む符号化されたオーディオ信号表現(152)に基づいて提供するための方法であって、
1つ以上のスペクトル値または1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態に応じて復号して、復号されたスペクトル値(162,297,x_ac_dec[])を取得するステップと、
1つ以上前に復号されたスペクトル値(162,297)に応じて現在のコンテキスト状態(164,c)を決定するステップと、
所与のオーディオフレームのタイムワープされた時間領域表現(182)を、該所与のオーディオフレームに対応付けられ、前記コンテキストベースのスペクトル値復号部によって提供された、復号されたスペクトル値(162,297)の集合に基づいて、かつ前記タイムワープ情報に応じて提供するステップと、
を含み、
前記現在のコンテキスト状態は、連続するオーディオフレーム間の基本周波数の変化に適合して決定される、
方法。
【請求項16】
符号化されたスペクトル表現(132)と符号化されたタイムワープ情報(226)とを含む、入力オーディオ信号(110)の符号化された表現(112)を提供するための方法であって、
タイムワープ情報(122)に応じてタイムワープされた、前記入力オーディオ信号のタイムワープされたバージョンを表す周波数領域表現(124)を提供するステップと、
前記周波数領域表現(124)の1つ以上のスペクトル値または前記周波数領域表現(124)の1つ以上のスペクトル値の数値表現の少なくとも一部(m)を示すコードワード(acod_m)をコンテキスト状態(134)に応じて提供して、前記符号化されたスペクトル表現(132)の符号化されたスペクトル値(acod_m)を取得するステップと、
現在のコンテキスト状態(134)を、1つ以上前に符号化されたスペクトル値に応じて決定するステップと、
を含み、
前記コンテキスト状態は、連続するオーディオフレーム間の基本周波数の変化に適合して決定される、
方法。
【請求項17】
コンピュータ上で実行されたときに、請求項15または16に記載の方法を実行するためのコンピュータプログラム。
【図1A】
【図1B】
【図2A1】
【図2A2】
【図2B1】
【図2B2】
【図2C】
【図2D】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図4D】
【図4E】
【図5A】
【図5B】
【図6A】
【図6B】
【図7A1】
【図7A2】
【図7B】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12】
【図13】
【図14A】
【図14B】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22A】
【図22B】
【図23】
【図24】
【図25】
【図26】
【図27A】
【図27B】
【図27C】
【図27D】
【図27E】
【図27F】
【図1B】
【図2A1】
【図2A2】
【図2B1】
【図2B2】
【図2C】
【図2D】
【図3A】
【図3B】
【図3C】
【図4A】
【図4B】
【図4C】
【図4D】
【図4E】
【図5A】
【図5B】
【図6A】
【図6B】
【図7A1】
【図7A2】
【図7B】
【図8】
【図9】
【図10A】
【図10B】
【図11A】
【図11B】
【図12】
【図13】
【図14A】
【図14B】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22A】
【図22B】
【図23】
【図24】
【図25】
【図26】
【図27A】
【図27B】
【図27C】
【図27D】
【図27E】
【図27F】
【公表番号】特表2013−521540(P2013−521540A)
【公表日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2012−556506(P2012−556506)
【出願日】平成23年3月9日(2011.3.9)
【国際出願番号】PCT/EP2011/053541
【国際公開番号】WO2011/110594
【国際公開日】平成23年9月15日(2011.9.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(597159765)フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. (68)
【出願人】(506427990)ドルビー・インターナショナル・アクチボラゲット (24)
【氏名又は名称原語表記】DOLBY INTERNATIONAL AB
【公表日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願日】平成23年3月9日(2011.3.9)
【国際出願番号】PCT/EP2011/053541
【国際公開番号】WO2011/110594
【国際公開日】平成23年9月15日(2011.9.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(597159765)フラウンホーファーゲゼルシャフト ツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. (68)
【出願人】(506427990)ドルビー・インターナショナル・アクチボラゲット (24)
【氏名又は名称原語表記】DOLBY INTERNATIONAL AB
[ Back to top ]