(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-17
(45)【発行日】2024-10-25
(54)【発明の名称】ダウンスケールされた復号化
(51)【国際特許分類】
G10L 19/022 20130101AFI20241018BHJP
G10L 19/02 20130101ALI20241018BHJP
【FI】
G10L19/022
G10L19/02 160A
【外国語出願】
(21)【出願番号】P 2023139246
(22)【出願日】2023-08-29
(62)【分割の表示】P 2023122204の分割
【原出願日】2016-06-10
【審査請求日】2023-09-28
(32)【優先日】2015-06-16
(33)【優先権主張国・地域又は機関】EP
(32)【優先日】2015-10-12
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】591037214
【氏名又は名称】フラウンホッファー-ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ
(74)【代理人】
【識別番号】100079577
【氏名又は名称】岡田 全啓
(72)【発明者】
【氏名】シュネル マルクス
(72)【発明者】
【氏名】ルツキ マンフレード
(72)【発明者】
【氏名】フォトプゥルゥ エレニ
(72)【発明者】
【氏名】シュミット コンスタンティン
(72)【発明者】
【氏名】ベンドルフ コンラート
(72)【発明者】
【氏名】トマセク エイドリアン
(72)【発明者】
【氏名】アルベルト トビアス
(72)【発明者】
【氏名】ザイドル タイモン
【審査官】大野 弘
(56)【参考文献】
【文献】特開2014-059570(JP,A)
【文献】国際公開第2013/142650(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 19/022
G10L 19/02
(57)【特許請求の範囲】
【請求項1】
オーディオ信号
のフレーム
のそれぞれについて、それぞれの前記フレームと、Nが整数であるN-1個の先行フレームを含む時間的部分のスペクトル分解を形成するスペクト
ルを受信するように構成され
たレシー
バと、
各フレームについて、前
記スペクトル
の1/Fの
長さの低周波数部分をグラブアウトするように構成され
たグラバーと、
各フレー
ムについて、前記低周波数部分
を逆変換して、
前記時間的部分
の時間的表現を
取得
するように構成されたスペクトル時間モジュレー
タと、
各フレー
ムについて
、合成ウィンドウを使用して、前記時間的部分
の前記時間的表現をウィンドウ化
して、前記時間的部分のウィンドウ化された時間的表現を取得するように構成されるウィンドウ化
器であって、
前記合成ウィンドウは、その先端にフレーム長の1/4のゼロ部分を含み、前記ゼロ部分に続く前記合成ウィンドウの時間的間隔の範囲内においてピークを有する、ウィンドウ化器と、
前記フレームの
前記時間的部分の前記ウィンドウ化された時間的部分を
、前記フレーム長に相当する相互のフレーム間距離で重畳加算処理するように構成される時間領域エイリアシング・キャンセラ
ーと、
を備え、
ここで、前記逆変換は逆MDCTまたは逆MDSTであり、
前記合成ウィンドウは、
互いにセグメント長さ
が等しい4・N個のセグメントにおけるセグメント補間によって、係数Fでダウンサンプ
リングされた、
参照合成ウィンドウのダウンサンプ
リングされたバージョンであ
り、
前記合成ウィンドウは、前記4・N個のセグメントのそれぞれについての1つの3次スプライン関数の連結であり、
前記合成ウィンドウの面積の80%以上が、前記ゼロ部分に続く前記時間的間隔の範囲内に含まれ、前記ゼロ部分に続く前記時間的間隔は、前記フレーム長の7/4倍の長さである、
オーディオデコーダ。
【請求項2】
前記オーディオデコー
ダは、前記合成ウィンドウ
の係数の過半数が前記参照合成ウィンドウの2つ以上の係数に依存
し、且つ前記合成ウィンドウの各係数は、前記各係数が位置するセグメントに対してオフセットに位置する前記参照合成ウィンドウの係数から独立しているように、前記補間を実行するように構成される、請求項
1に記載のオーディオデコーダ。
【請求項3】
前記オーディオデコー
ダは、セグメント
の境界から係数2つ以上
離間している前記合成ウィンドウの各係数
が前記参照合成ウィンドウの2つ以上の係数に依存するように
、前記補間を実行するように構成される、請求項
1に記載のオーディオデコーダ。
【請求項4】
前記ウィンドウ化器が
前記合成ウィンドウを使用して前記時間的部分に重み付けする際に前記ゼロ部分をスキップし、且つ
前記時間領域エイリアシング・キャンセラーが前記重畳加算処理において
前記ウィンドウ化された時間的部分の対応する非重み付け部分を無視するように、前記ウィンドウ化
器と前記時間領域エイリアシング・キャンセラ
ーが協働する、請求項
1に記載のオーディオデコーダ。
【請求項5】
オーディオ信号を復号化するための方法であって、前記方法は、
前記オーディオ信号のフレームのそれぞれについて、それぞれの前記フレームとNが整数であるN-1個の先行フレームを含む時間的部分のスペクトル分解を形成するスペクトルを受信するステップと、
各フレームについて、前記スペクトルの1/Fの長さの低周波数部分をグラブアウトするステップと、
前記時間的部分の時間的表現を取得するために、各フレームについて、前記低周波数部分を逆変換することによってスペクトル時間変調を実行するステップと、
各フレームについて、合成ウィンドウを使用して前記時間的部分の前記時間的表現をウィンドウ化して、前記時間的部分のウィンドウ化された時間的表現が得られるようにするステップであって、前記合成ウィンドウは、その先端にフレーム長の1/4のゼロ部分を含み、且つ前記ゼロ部分に続く前記合成ウィンドウの時間的間隔の範囲内にピークを有する、ウィンドウ化するステップと、
前記フレームの前記時間的部分の前記ウィンドウ化された時間的表現を、前記フレーム長に相当する相互フレーム間距離で重畳加算処理することによって時間領域エイリアシングのキャンセルを実行するステップと、
を含み、
ここで、前記逆変換は逆MDCTまたは逆MDSTであり、
前記合成ウィンドウは、互いにセグメント長さが等しい4・N個のセグメントにおけるセグメント補間によって係数Fでダウンサンプリングされた、参照合成ウィンドウのダウンサンプリングされたバージョンであり、
前記合成ウィンドウは、前記4・N個のセグメントそれぞれのための1つの3次スプライン関数の連結であり、
前記合成ウィンドウの面積の80%以上が、前記ゼロ部分に続く前記時間的間隔の範囲内に含まれ、前記ゼロ部分に続く前記時間的間隔は、前記フレーム長の7/4倍の長さである、
方法。
【請求項6】
コンピュータ・プログラムがコンピュー
タによって
実行さ
れる場合に、請求項
5に記載
のオーディオ信号を復号化するための方法を実行するための
前記コンピュータ・プログラ
ムを記憶した、
非一時的デジタル記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ダウンスケールされた復号化の概念に関する。
【背景技術】
【0002】
MPEG-4拡張 低遅延AAC(MPEG-4 Enhanced Low Delay;AAC-ELD)は、通常、最高48kHzのサンプル・レートで処理され、15msのアルゴリズムの遅延を結果として得る。いくつかのアプリケーション、たとえば、オーディオの同期録音の伝送のために、さらに低い遅延が望ましい。AAC-ELDは、既に、より高いサンプル・レート、たとえば、96kHzで処理することによってすでにこの種のオプションを提供する。したがって、処理モードにさらにより低い遅延、たとえば、7.5msを提供する。しかしながら、この処理モードは、高いサンプル・レートのため、不必要に高い複雑さによって進行する。
【0003】
この課題の解決は、フィルタ・バンクのダウンスケールされたバージョンを適用して、したがって、より低いサンプル・レート、たとえば、96kHzの代わりに48kHzでオーディオ信号をレンダーリングすることである。ダウンスケールする処理は、すでに、MPEG-4 AAC-LDコーデックから継承されて、すでに、そのままAAC-ELDの部分であり、AAC-ELDの基礎として役立つ。
【0004】
しかしながら、残る問題は、どのように、特定のフィルタ・バンクのダウンスケールされたバージョンを見つけるのかということである。すなわち、AAC-ELDデコーダのダウンスケール処理モードの明確な一致テストを可能にする間、唯一の不確定度は、ウィンドウ係数が導出される方法である。
【0005】
以下において、AAC-(E)LDコーデックのダウンスケールされた処理モードの原理が記載される。
【0006】
ダウンスケールされた処理モードまたはAAC-LDが、セクション4.6.17.2.7「より低いサンプリング・レートを使用するシステムへの適応」のISO/IEC 14496-3:2009において、AAC-LDについて以下のように記載される。
【0007】
「特定のアプリケーションにおいて、ビットストリーム・ペイロードの名目上のサンプリング・レートが、より非常に高い(たとえば、約20msのアルゴリズムのコーデック遅延に対応する、48kHz)一方、より低遅延のデコーダを、より低いサンプリング・レート(たとえば、16kHz)で動作しているオーディオシステムに集積するのに必要でありうる。そのような場合、復号化の後、付加的なサンプリング・レート変換処理を使用することよりむしろターゲットサンプリング・レートで直接低遅延コーデックの出力を復号化することは、有利である。
【0008】
これは、いくつかの整数ファクター(たとえば、2、3)によって、コーデックのその同じ時間/周波数の解像度を結果として得るように、フレームサイズおよびサンプリング・レートの両方のダウンスケールに割り当てることによって、近似できる。たとえば、コーデック出力は、たとえば、合成フィルタ・バンクに先行するスペクトル係数の最低3分の1(すなわち、480/3=160)だけを保持し、逆変換サイズを次のように3分の1に低減することによって(すなわち、ウィンドウサイズ960/3=320)、名目上48kHzではなく16kHzのサンプリング・レートで生成することができる。
【0009】
結果として、より低いサンプリング・レートのための復号化は、メモリ要件および計算要件の両方を低減するが、帯域制限およびサンプル・レート変換に続く全帯域幅復号化と全く同じ出力を生成しない可能性がある。
【0010】
上記のように、より低いサンプリング・レートで復号化することは、AAC低遅延ビットストリーム・ペイロードの名目上のサンプリング・レートを意味するレベルの解釈には影響しないことに注意されたい。」
【0011】
AAC-LDは、標準のMDCTフレームワークと2つのウィンドウシェイプ、つまりサイン・ウィンドウとローオーバーラップウィンドウで動作する点に留意されたい。両方のウィンドウは式で完全に記述されているため、任意の変換長のウィンドウ係数を決定できる。
【0012】
AAC-LDと比較して、AAC-ELDコーデックは、2つの大きな違いを示す:
・低遅延MDCTウィンドウ(LD-MDCT)
・低遅延SBRツールを利用する可能性
【0013】
低遅延MDCTウィンドウを使用するIMDCTアルゴリズムは、[1]の4.6.20.2において記載され、それは、たとえば、サイン・ウィンドウを使用する標準IMDCTバージョンに非常に類似する。低
遅延MDCTウィンドウ(480および512のサンプルフレームサイズ)の係数は、[1]の表4.A.15および表4.A.16において与えられる。係数は、最適化アルゴリズムの結果であるため、数式で係数を決定することはできない点に留意されたい。
図9は、フレームサイズ512のウィンドウ形状のプロットを示す。
【0014】
低遅延SBR(LD-SBR)ツールがAAC-ELDコーダと共に使用される場合、LD-SBRモジュールのフィルタ・バンクも同様にダウンスケールされる。これにより、SBRモジュールが同じ周波数分解能で処理することが保証されるため、これ以上の適応は必要ない。
【0015】
したがって、上記の説明は、たとえば、AAC-ELDでの復号化をダウンスケールするなど、復号化処理をダウンスケールする必要があることを明らかにする。ダウンスケールされた合成ウィンドウ関数の係数を新たに見つけることは可能であるが、これは厄介な作業であり、ダウンスケールされたバージョンを記憶するための追加の記憶を必要とし、非ダウンスケールされた復号化とダウンスケールされた復号化との間の適合チェックをより複雑な状態にする、あるいは、別の観点からは、たとえば、AAC-ELDで要請されたダウンスケールの方法に従わない。ダウンスケール比、すなわち、もとのサンプリング・レートとダウンサンプルされたサンプリング・レートとの比に応じて、ダウンサンプルされた合成ウィンドウ関数を単純にダウンサンプル、すなわちもとの合成ウィンドウ関数の2番目、3番目、・・・を選び出すことにより導出できる。しかし、この手順では、それぞれ非ダウンスケールされた復号化とダウンスケールされた復号化の十分な適合性が得られない。合成ウィンドウ関数に適用されるより高度なデシメーション手順を使用すると、もとの合成ウィンドウ関数形状からの許容できない偏差が生じる。したがって、当技術分野では、改良されたダウンスケールされる復号化の概念が必要とされている。
【先行技術文献】
【非特許文献】
【0016】
【文献】ISO/IEC 14496-3:2009
【文献】M13958, "Proposal for an Enhanced Low Delay Coding Mode", October 2006, Hangzhou, China
【発明の概要】
【発明が解決しようとする課題】
【0017】
したがって、本発明の目的は、このような改良されたダウンスケールされた復号化を可能にするオーディオ復号化スキームを提供することである。
【0018】
この目的は、独立請求項の主題によって達成される。
【課題を解決するための手段】
【0019】
本発明は、ダウンスケールされたオーディオ復号化に使用される合成ウィンドウが、ダウンサンプルされたサンプリング・レートおよびもとのサンプリング・レートが逸脱するダウンサンプリング係数によるダウンサンプリング化と、フレーム長の1/4のセグメントにおけるセグメント補間を使用したダウンサンプルにより、ダウンスケールされていないオーディオ復号化に含まれる参照合成ウィンドウのダウンサンプルされたバージョンである場合に、より効果的におよび/またはより改善されたコンプライアンス維持が達成されるという知見に基づいている。
【0020】
本出願の有利な態様は、従属請求項の主題である。本出願の好ましい実施形態は、図面に関して以下に説明される。
【図面の簡単な説明】
【0021】
【
図1】
図1は、完全な再構成を保存するために復号化をダウンスケールするときに従う必要がある完全な再構成要件を示す概略図を示す。
【
図2】
図2は、実施例に記載されるダウンスケールされた復号化のためのオーディオデコーダのブロック図を示す。
【
図3】
図3は、オーディオ信号がもとのサンプリング・レートでデータストリームに符号化され、
図2のオーディオデコーダの動作モードを示すように、上半分から破線の水平線で分離された下半分において、
低減されたあるいはダウンスケールされた
サンプリング・レートでデータストリームからオーディオ信号
を再構成するための
ダウンスケールされた復号化処理を実行する。
【
図4】
図4は、
図2のウィンドウ化器と時間領域エイリアシング・キャンセラーとの協働を示す概略図である。
【
図5】
図5は、スペクトル対時間変調された時間部分のゼロ加重部分の特別な処理を使用して、
図4による再構成を達成するための可能な実装を示す。
【
図6】
図6は、ダウンサンプルされた合成ウィンドウを得るためのダウンサンプルを示す概略図を示す。
【
図7】
図7は、低遅延SBRツールを含むAAC-ELDのダウンスケールされた処理を示すブロック図を示す。
【
図8】
図8は、モジュレータ、ウィンドウ
化器およびキャンセラーがリフティング実装に従って実施される実施形態によるダウンスケールされた復号化のためのオーディオデコーダのブロック図を示す。
【
図9】
図9は、ダウンサンプルされる参照合成ウィンドウの一例としての512サンプルフレームサイズに対するAAC-ELDによる低遅延ウィンドウのウィンドウ係数のグラフを示す。
【発明を実施するための形態】
【0022】
以下の説明は、AAC-ELDコーデックに関するダウンスケールされた復号化のための実施形態の説明から始める。すなわち、以下の説明は、AAC-ELDのためにダウンスケールされたモードを形成できる実施形態から始める。この記述は、同時に、本出願の実施形態の根底にある動機づけの一種の説明を形成する。その後、この説明が一般化され、それにより、本出願の一実施形態によるオーディオデコーダおよびオーディオ復号化方法が説明される。
【0023】
本願の明細書の導入部で説明したように、AAC-ELDは低遅延MDCTウィンドウを使用する。そのダウンスケールされたバージョン、すなわちダウンスケールされた低遅延ウィンドウを生成するために、AAC-ELDのためのダウンスケールされたモードを形成するために後に説明される提案は、非常に高い精度を有するLD-MDCTウィンドウの完全な再構成特性(PR)を維持するセグメント・スプライン補間アルゴリズムを使用する。したがって、アルゴリズムは、[2]で説明されているように、ISO/IEC 14496-3:2009のみならずリフティング形式で記述されているように、直接形式のウィンドウ係数を互換性のある方法で生成することができる。これは、両方の実装が16ビット準拠の出力を生成することを意味する。
【0024】
低遅延MDCTウィンドウの補間は、以下のように実行される。
【0025】
一般に、スプライン補間は、周波数応答とほぼ完璧な再構成特性(約170dB SNR)を維持するためにダウンスケールされたウィンドウ係数を生成するために使用される。補間は、完全な再構成特性を維持するために特定のセグメントにおいて制約を受ける必要がある。変換のDCTカーネルをカバーするウィンドウ係数c(
図1も参照、c(1024)…c(2048))に対しては、以下の制約が必要である。
i=0…N/2-1に対して、
1=|(sgn・c(i)・c(2N-1-i)+c(N+1)・c(N-1-i)|
(1)
ここで、Nは、フレームサイズを意味する。いくつかの実装は、複雑さを最適化するために、異なる記号を使用することができ、ここでは、sgnによって
示される。(1)の要件は、
図1で説明することができる。単純にF=2の場合であっても、すなわち、サンプリング・レートを半分にすると、参照合成ウィンドウの第2のウィンドウ係数を1つ置きに放棄して、ダウンスケールされた合成ウィンドウを得ることは要件を満たさないことを思い出さなければならない。
【0026】
係数c(0)…c(2N-1)は、ダイヤモンド形状に沿ってリスト化される。フィルタ・バンクの遅延低減の原因となるウィンドウ係数のN/4個のゼロは、太い矢印でマークされる。
図1は、MDCTに含まれるフォールディングによって引き起こされる係数の依存性と、望ましくない依存性を避けるために補間が拘束される必要がある点を示す。
・N/2係数ごとに、補間を停止して(1)を維持する必要がある。
・さらに、補間アルゴリズムは、挿入されたゼロのためにすべての
N/4係数を停止する必要がある。これにより、ゼロが維持され、補間誤差が広がらず、PRを維持することが保証される。
【0027】
第2の制約は、ゼロを含むセグメントだけでなく、他のセグメントに対しても必要である。DCTカーネル内のいくつかの係数が最適化アルゴリズムによって決定されなかったが、PRを可能にするために式(1)によって決定されたことを知ると、ウィンドウ形状におけるいくつかの不連続性が、たとえば、
図1におけるc(1536+128)付近で説明される。PR誤差を最小にするために、補間は、N/4グリッドに現れるそのような点で停止することを必要とする。
【0028】
この理由により、セグメント・スプライン補間のためのN/4のセグメント・サイズが、ダウンスケールされたウィンドウ係数を生成するために選択される。ソース・ウィンドウ係数は、常にN=512に使用される係数によって与えられ、N=240またはN=120のフレームサイズをもたらすダウンスケーリング演算についても同様である。基本的なアルゴリズムは、MATLABコードとして以下に簡単に概説される。
FAC = Downscaling factor % e.g. 0.5
sb = 128; % segment size of source window
w_down = []; % downscaled window
nSegments = length(W)/(sb);% number of segments; W=LD window coefficients for N=512
xn=((0:(FAC*sb-1))+0.5)/FAC-0.5; % spline init
for i=1:nSegments,
w_down=[w_down,spline([0:(sb-1)],W((i-1)*sb+(1:(sb))),xn)];
end;
【0029】
スプライン関数が完全に決定論的でない可能性があるため、完全アルゴリズムは、AAC-ELDで改良されたダウンスケールモードを形成するために、ISO/IEC 14496-3:2009に含まれる次のセクションで正確に規定される。
【0030】
換言すると、以下のセクションは、上記の考え方をER AAC ELDにどのように適用できるか、すなわち、第1のデータレートよりも低い第2のデータレートで、低複雑なデコーダがどのようにして第1のデータレートで符号化されたER AAC ELDビットストリームを復号化するかについての提案を提供する。ただし、以下で使用されるNの定義は、標準に準拠していることが強調される。ここで、Nは、DCTカーネルの長さに対応するが、本明細書の上、請求項およびその後に説明される一般化された実施形態では、Nはフレーム長、すなわちDCTカーネルの相互オーバーラップ長、すなわちDCTカーネル長の半分に対応する。したがって、上記ではNを512としたが、たとえば、以下では1024とする。
【0031】
以下のパラグラフは、14496-3:2009に改正を介して含めるために提案されている。
【0032】
A.0 より低いサンプリング・レートを使用するシステムへの適用
特定のアプリケーションでは、ER AAC LDは追加のリサンプリングステップ(4.6.17.2.7を参照)を避けるために再生サンプル・レートを変更することができる。ER AAC ELDは、低遅延MDCTウィンドウとLD-SBRツールを使用して同様のダウンスケーリングステップを適用できる。AAC-ELDがLD-SBRツールで動作する場合、ダウンスケーリング係数は2の倍数に制限される。LD-SBRがなければ、ダウンスケールされたフレームサイズは整数でなければならない。
【0033】
【0034】
fs_window_size = 2048; /* Number of fullscale window coefficients.
According to ISO/IEC 14496-3:2009, use 2048. For lifting implemenations,
please adjust this variable accordingly */
ds_window_size = N * fs_window_size / (1024 * F); /* downscaled window
coefficients; N determines the transformation length according to 4.6.20.2 */
fs_segment_size = 128;
num_segments = fs_window_size / fs_segment_size;
ds_segment_size = ds_window_size / num_segments;
tmp[128], y[128]; /* temporary buffers */
/* loop over segments */
for (b = 0; b < num_segments; b++) {
/* copy current segment to tmp */
copy(&W_LD[b * fs_segment_size], tmp, fs_segment_size);
/* apply cubic spline interpolation for downscaling */
/* calculate interpolating phase */
phase = (fs_window_size - ds_window_size) / (2 * ds_window_size);
/* calculate the coefficients c of the cubic spline given tmp */
/* array of precalculated constants */
m = {0.166666672, 0.25, 0.266666681, 0.267857134,
0.267942578, 0.267948717, 0.267949164};
n = fs_segment_size; /* for simplicity */
/* calculate vector r needed to calculate the coefficients c */
for (i = n - 3; i >= 0; i--)
r[i] = 3 * ((tmp[i + 2] - tmp[i + 1]) - (tmp[i + 1] - tmp[i]));
for (i = 1; i < 7; i++)
r[i] -= m[i - 1] * r[i - 1];
for(i = 7; i < n - 4; i++)
r[i] -= 0.267949194 * r[i - 1];
/* calculate coefficients c */
c[n - 2] = r[n - 3] / 6;
c[n - 3] = (r[n - 4] - c[n - 2]) * 0.25;
for (i = n - 4; i > 7; i--)
c[i] = (r[i - 1] - c[i + 1]) * 0.267949194;
for (i = 7; i > 1; i--)
c[i]=(r[i-1]-c[i+1])*m[i-1];
c[1] = r[0] * m[0];
c[0] = 2 * c[1] - c[2];
c[n-1] = 2 * c[n - 2] - c[n - 3];
/* keep original samples in temp buffer y because samples of
tmp will be replaced with interpolated samples */
copy(tmp, y, fs_segment_size);
/* generate downscaled points and do interpolation */
for (k = 0; k < ds_segment_size; k++) {
step = phase + k * fs_segment_size / ds_segment_size;
idx = floor(step);
diff = step - idx;
di = (c[idx + 1] - c[idx]) / 3;
bi = (y[idx + 1] - y[idx]) - (c[idx + 1] + 2 * c[idx]) / 3;
/* calculate downscaled values and store in tmp */
tmp[k] = y[idx] + diff * (bi + diff * (c[idx] + diff * di));
}
/* assemble downscaled window */
Copy(tmp, &W_LD_d[b* ds_segment_size], ds_segment_size);
}
【0035】
A.2 低遅延SBRツールのダウンスケール
低遅延SBRツールをELDと組み合わせて使用する場合、このツールは、少なくとも2の倍数のダウンスケール係数の場合、サンプル・レートを下げるためにダウンスケールすることができる。ダウンスケール係数Fは、CLDFB分析および合成フィルタ・バンクに使用される帯域の数を制御する。次の2つのパラグラフでは、ダウンスケールされたCLDFB分析および合成フィルタ・バンクについて説明する(4.6.19.4も参照)。
【0036】
4.6.20.5.2.1 ダウンスケールされた分析CLDFBフィルタ・バンク
・ ダウンスケールされたCLDFB帯域の数B=32/Fを定義する。
・ 配列xのサンプルをB位置にシフトする。最も古いB個のサンプルは破棄され、B個の新しいサンプルは0からB-1の位置に格納される。
・ 配列xのサンプルにウィンドウciの係数を掛けて配列zを得る。ウィンドウ係数ciは、係数cの線形補間によって得られる。すなわち、以下の式である。
cのウィンドウ係数は表4.A.90に示される。
・サンプルを合計して2B-要素配列uを作成する。
・ 行列演算MuによってB個の新しいサブバンドサンプルを計算する。ここで、
式中、exp()は複素指数関数を示し、jは虚数単位を示す。
【0037】
4.6.20.5.2.2 ダウンスケールされた合成CLDFBフィルタ・バンク
・ ダウンスケールされたCLDFB帯域の数B=64/Fを定義する。
・ 配列vのサンプルを2B位置にシフトする。最も古い2B個のサンプルは破棄される。
・ B個の新しい複素
数値のサブバンドサンプルに行列Nが乗算される。ここで、
式中、exp()は複素指数関数を示し、jは虚数単位
である。この演算の出力の実数部
分は、配列vの0から2B-1の位置に格納される。
・ vからサンプルを抽出して10B-要素配列gを作成する。
・ 配列gのサンプルにウィンドウciの係数を掛けて配列wを生成する。ウィンドウ係数ciは、係数cの線形補間によって得られる。すなわち、以下の式である。
cのウィンドウ係数は表4.A.90に示される。
・ 以下にしたがって、配列wのサンプルを合計してB個の新しい出力サンプルを計算する。
【0038】
F=2に設定すると、4.6.19.4.3に従ってダウンサンプルされた合成フィルタ・バンクが得られることに留意されたい。したがって、ダウンサンプルされたLD-SBRビットストリームを追加のダウンスケール係数Fで処理するためには、Fに2を掛ける必要がある。
【0039】
4.6.20.5.2.3 ダウンスケールされた実数値のCLDFBフィルタ・バンク
CLDFBのダウンスケールは、同様に低電力SBRモードの実数値のバージョンのために適用されうる。また、説明のために、4.6.19.5を考慮されたい。
ダウンスケールされた実数値分析および合成フィルタ・バンクについては、4.6.20.5.2.1および4.6.20.2.2の説明に従い、cos()のモジュレータによってMのexp()モジュレータを交換する。
【0040】
A.3 低遅延MDCT分析
この節では、AAC ELDエンコーダで使用される低遅延MDCTフィルタ・バンクについて説明する。nが現在-NからN-1(0からN-1ではなく)で実行されるような長いウィンドウでは、コアMDCTアルゴリズムはほとんど変わらない。
スペクトル係数X
i,kは、以下のように定義される。
ここで:
z
in = ウィンドウ化された入力シーケンス
N = サンプル・インデックス
K = スペクトル係数インデックス
I = ブロック・インデックス
N = ウィンドウ
長
n
0 = (-N/2+1)/2
ウィンドウ長N(サインウィンドウに基づく)は、1024または960である。
低遅延ウィンドウのウィンドウ長は2*Nである。ウィンドウ処理は、以下のように過去に拡張されている。n=-N,…,N-1に対して、
であり、その順序を逆転させることによって、
合成ウィンドウwは分析ウィンドウとして使用される。
【0041】
A.4 低遅延MDCT合成
合成フィルタ・バンクは、低遅延フィルタ・バンクを採用するために、サイン・ウィンドウを使用する標準IMDCTアルゴリズムと比較して修正される。コアIMDCTアルゴリズムはほとんど変更されないが、nが2N-1まで(N-1までではなく)実行されるように、より長いウィンドウを使用する。
ここで:
n = サンプル・インデックス
i = ウィンドウ・インデックス
k = スペクトル係数インデックス
N = ウィンドウ
長/フレーム
長の2倍
n
0 = (-N/2+1)/2
N=960または1024である。
【0042】
ウィンドウ処理と重畳加算は、以下の方法で行われる:
【0043】
長さNのウィンドウは長さ2Nのウィンドウに置き換えられ、過去のオーバーラップはより大きく、将来のオーバーラップはより少なくなる(N/8の値は実際にはゼロである)。
【0044】
低遅延ウィンドウのためのウィンドウ化:
ここで、
現在のウィンドウの長さは2Nであり、従ってn=0,…,2N-1。
【0045】
【0046】
ここで、パラグラフは、14496-3:2009改正の終わりまでに含まれるように提案された。
【0047】
当然のことながら、AAC-ELDの可能なダウンスケールされたモードについての上記説明は、本出願の一実施形態を単に表しており、いくつかの変更が可能である。一般に、本出願の実施形態は、AAC-ELD復号化のダウンスケールされたバージョンを実行するオーディオデコーダに限定されない。換言すれば、本出願の実施形態は、たとえば、スペクトルエンベロープのスケールファクタベースの送信、TNS(時間ノイズシェイピング)フィルタリング、スペクトル・バンド複製(SBR)などのAAC-ELDに特有の様々な他のタスクをサポートすることなく、または使用することなく、ダウンスケールされる方法において、逆変換処理を実行することができるオーディオデコーダを形成することによって導出されうる。
【0048】
次に、オーディオデコーダのより一般的な実施形態について説明する
。ダウンスケールされたモードをサポートするAAC-ELDオーディオデコーダのための上
述の概要の例は、このようにして
後に説明されるオーディオデコーダの実装を表すことができる。特に、後に説明されるデコーダは
図2に示され、
図3は
図2のデコーダによって実行されるステップを示す。
【0049】
図2のオーディオデコーダは、参照符号10を使用して一般に示されており、レシーバ12、グラバー14、スペクトル時間モジュレータ16、ウィンドウ化器18、および時間領域エイリアシング・キャンセラー20を含み、それら
全ての言及の順序で互いに直列に接続されている。オーディオデコーダ10のブロック12~20の相互作用および機
能は、
図3に関して以下に説明される。本出願の説明の最後に記載されているように、ブロック12~20は、コンピュータ・プログラム、FPGAまたは適切にプログラムされたコンピュータ、プログラムされたマイクロプロセッサまたは特定用途向け集積回路の形態のようなソフトウェア、プログラム可能ハードウェアまたはハードウェア
により実装でき、ブロック12~20は、それぞれのサブルーチンや回路パス等を表
す。
【0050】
以下でより詳細に概説されるように、
図2のオーディオデコーダ10は、オーディオストリーム24からオーディオ信号22を復号化するために、オーディオデコーダ10の要素が適切に協働するように構成されている。オーディオデコーダ
10は、オーディオ信号22が符号化側でデータストリーム24に変換符号化されたサンプリング・レートの1/Fであるサンプリング・レートで信号22を復号
化することは注目に値する。Fは、たとえば、1より大きい有理数であってもよい。オーディオデコーダは、異なるもしくは可変のダウンスケーリング係数Fまたは固定されたスケーリング係数Fで動作するように構成することができる。代替案については、後で詳しく説明する。
【0051】
オーディオ信号22が符号化またはもとのサンプリング・レートでデータストリームに変換符号化される方法は、
図3の上半分に示されている。
図3は、
26において水平に延びる時間軸30および
図3において垂直に走る周波数軸32に沿ってスペクトル
時間的に配置された小さなボックスまたは四角28を使用するスペクトル係数を示す。スペクトル係数28は、データストリーム24内で送信される。したがって、スペクトル係数28が得られる方法、そして、スペクトル係数28がオーディオ信号22を表す方法が、
図3の34に示されており、そしてそれは、時間軸30の一部について、スペクトル係数28が、どのようにオーディオ信号から得られるそれぞれの時間部分に属しているか、または表しているかを示す。
【0052】
特に、データストリーム24内で送信される係数28は、オーディオ信号22の重複変換の係数であり、その結果、もとのまたは符号化サンプリング・レートでサンプリングされたオーディオ信号22は、時間的に連続し、所定の長さN
の非重畳フレームに分割される。ここで、N個のスペクトル係数は、各フレーム36についてデータストリーム24で送信される。すなわち、変換係数28は、臨界サンプリングされた重畳変換を用いてオーディオ信号22から得られる。スペクト
ル時間スペクトログラム表示26において、スペクトル係数28の列の時間的シーケンスの各列は、一連のフレームのフレーム36のそれぞれに対応する。N個のスペクトル係数28は、結果として得られるスペクトル係数28が属するフレーム36にわたってだけでなく、E+1個前のフレームにまたがり、時間的に伸びる変調関数が、スペクトル分解変換または時間スペクトル変調によって、対応するフレーム36について得られる。ここで、Eは、任意の整数または0より大きい任意の偶数番号の整数でありうる。すなわち、あるフレーム36に属する26のスペクトログラムの1つの列のスペクトル係数28は、変換ウィンドウに変換を適用することによって得られ、さらに、それぞれのフレームは過去に現在のフレームに関して存在するE+1個のフレームを含む。34で示された部分の中間フレーム36に属する変換係数列28の
図3に示されているこの変換ウィンドウ38内のオーディオ信号のサンプルのスペクトル分解は、低遅延ユニモーダルな分析を用いて達成されるMDCTまたはMDSTまたは他のスペクトル分解変換を施す前に、変換ウィンドウ38内のスペクトルサンプルに重み付けをするためのウィンドウ関数40を使用する。エンコーダ側遅延を低下させるために、分析ウィンドウ40は、エンコーダが現在のフレーム36内の最新のサンプルの対応する部分を待つ必要がないように、その時間的な前端にゼロ間隔42を含み、この現在のフレーム36のスペクトル係数28を
算出する。すなわち、ゼロインターバル42内では、低遅延ウィンドウ関数40はゼロであるか、またはゼロウィンドウ係数を有するので、現在のフレーム36の同じ位置に配置されたオーディオサンプルは、ウィンドウ加重40のために
フレームおよびデータストリーム24のために変換された変換係数28
に寄与しない。すなわち、上記を要約すると、現在のフレーム36に属する変換係数28は、変換ウィンドウ38の範囲内におけるオーディオ信号のサンプルのウィンドウ化およびスペクトル分解によって得られ、そしてそれは、現在のフレームだけでなく時間的な先行フレームを含み、時間的に隣接するフレームに属するスペクトル係数28を決定するために使用される対応する変換ウィンドウと時間的にオーバーラップする。
【0053】
オーディオデコーダ10の説明を再開する前に、これまでに提供されたデータストリーム24内のスペクトル係数28の伝送の説明は、スペクトル係数28が量子化される方法に関して簡略化されている、あるいはオーディオ信号をラップ変換に供する前に、オーディオ信号22が前処理された方法および/またはデータストリーム24に符号化されうる。たとえば、変換符号化されたオーディオ信号22をデータストリーム24に有するオーディオエンコーダは、心理音響モデルを介して制御されてもよいし、心理音響モデルを使用して、量子化雑音を保持してもよく、聴者に感知できないおよび/またはマスキング閾値関数以下のスペクトル係数28を量子化してもよく、量子化及び送信されたスペクトル係数28がスケーリングされるスペクトル帯域のためのスケールファクタを決定する。スケールファクタは、データストリーム24においてもシグナリングされる。あるいは、オーディオエンコーダは、TCX(Transform Coded Excitation:変換符号化励振)タイプのエンコーダでありうる。次に、オーディオ信号は、励起信号、すなわち線形予測残差信号に重複変換を適用することによって、スペクトル係数28のスペクトル時間表現26を形成する前に、線形予測分析フィルタリングを受けていたであろう。たとえば、線形予測係数もデータストリーム24にシグナリングでき、スペクトル係数28を得るためにスペクトル均一量子化を適用することができる。
【0054】
さらに、これまでの説明は、フレーム36のフレーム長さおよび/または低遅延窓関数40に関して単純化されている。実際、オーディオ信号22は、変化するフレームサイズおよび/または異なるウィンドウ40を使用してデータストリーム24に符号化されうる。しかしながら、以下の説明は、オーディオ信号をデータストリームに符号化する間にエントロピー符号器がこれらのパラメータを変更する場合に容易に拡張することができるが、以下の説明は1つのウィンドウ40と1フレーム長に集中する。
【0055】
図2のオーディオデコーダ10およびその説明に戻ると、レシーバ12はデータストリーム24を受信し、それによって各フレーム36に対してN個のスペクトル係数28、すなわち
図3に示す係数28のそれぞれの列を受信する。もとの符号化サンプリング・レートまたは符号化サンプリング・レートのサンプルで測定されたフレーム36の時間的長さは、
図3の34で示されるようにN個であるが、
図2のオーディオデコーダ10は、オーディオ
信号22を低減されたサンプリング・レートで復号化するように構成されている
ことを想起すべきである。オーディオデコーダ10は、たとえば、以下で説明するこのダウンスケールされた復号化機能のみをサポートする。あるいは、オーディオデコーダ10は、もとのまたは符号化サンプリング・レートでオーディオ信号を再構成することができるが、以下に説明するように、オーディオデコーダ10の動作のモード
がダウンスケールされた復号化モードと一致するように、ダウンスケールされた復号化モードと非ダウンスケールされた復号化モードとの間で切り替えられうる。たとえば、オーディオエンコーダ10は、バッテリレベルが低い場合、再生環境能力が低下した場合等のように、ダウンスケールされた復号化モードに切り替えることができる。状況が変化するたびに、オーディオデコーダ10は、たとえば、ダウンスケールされた復号化モードから非ダウンスケールされた復号化モードに切り替えることができる。いずれにしても、以下に説明するように、デコーダ10のダウンスケールされた復号化処理に従って、オーディオ信号22は、低減されたサンプリング・レートにおいて、フレーム36が、この低減されたサンプリング・レートのサンプルにおいて測られる低い長さ、すなわち、低減されたサンプリング・レートでのN/Fサンプルの長さを有するサンプリング・レートで再構成される。
【0056】
レシーバ12の出力は、N個のスペクトル係数のシーケンス、すなわちフレーム36ごとにN個のスペクトル係数の1組、すなわち
図3の1つの列である。
レシーバ12は、フレーム36ごとにN個のスペクトル係数を得る際に様々なタスクを適用することができることは、データ
ストリーム24を形成するための変換符号化処理の上記の簡単な説明から既に明らかである
。たとえば、レシーバ12は、データストリーム24からスペクトル係数28を読み出すためにエントロピー復号化を使用することができる。レシーバ12はまた、データストリーム内に供給されるスケールファクタおよび/またはデータストリーム24内に伝達される線形予測係数によって得られるスケールファクタを用いて、データストリームから読み取られたスペクトル係数をスペクトル的に整形することができる。たとえば、レシーバ12は、データストリーム24から、すなわちフレームごとおよびサブバンド
ベースごとにスケールファクタを取得
でき、
データストリーム24内で伝達されるスケールファクタをスケーリングするためにこれらのスケールファクタを使用
することができる。あるいは、レシーバ12は、各フレーム36について、データストリーム24内で伝達された線形予測係数からスケールファクタを導出
でき、
送信されたスペクトル係数28をスケーリングするために、これらのスケールファクタを使用
することができる。任意選択的に、レシーバ12は、フレーム当たりN個のスペクトル係数18のセット内のゼロ量子化部分を合成的に満たすためにギャップ充填を実行してもよい。それに加えて、またはこれに代えて、レシーバ12は、TNS係数をデータストリーム24内で送信しながら、データストリームからのスペクトル係数28の再構成を支援するために、フレームごとに送信TNSフィルタ係数にTNS合成フィルタを適用することができる。レシーバ12の考えられる可能性のあるタスクは、可能な測定値の非限定的なリストとして理解されるべきであり、レシーバ12は、データストリーム24からのスペクトル係数28の読み取りに関連してさらに実行され、
または他
のタスクを
実行できる。
【0057】
したがって、グラバー14は、レシーバ12からスペクトル係数28のスペクトログラム26を受信し、各フレーム36について、各フレーム36のN個のスペクトル係数の低周波数部分44、すなわちN/F最低周波数スペクトル係数を取り込む。
【0058】
すなわち、スペクトル時間モジュレータ16は、グラバー14から、スペクトログラム26の低周波スライスに対応するフレーム36ごとのN/Fスペクトル係数28のストリームまたはシーケンス46を受信し、
図3のインデックス「0」を用いて示される最低周波数スペクトル
係数にスペクトル的に記録され
、インデックスN/F-1のスペクトル係数まで伸びる係数を含む。
【0059】
スペクトル時間モジュレータ16は、各フレーム36について、スペクトル係数28の対応する低周波数部分44を、
図3の50に図示されているように、それぞれのフレームとE+1個前のフレームにわたって時間的に延びる長さ(E+2)・N/Fの変調関数を有する逆変換48
を行いそれ
によって(E+2)・N/Fの時間的部分、すなわち未だウィンドウ化されていない時間セグメント52を得る。すなわち、スペクトル時間モジュレータは、たとえば、上記の代替案セクションA.4の提案された第1の式を用いて、同じ長さの変調関数を重み付けして合計することによって、低減されたサンプリング・レートの(E+2)・N/Fサンプルの時間的時間セグメントを得ることができる。時間セグメント52の最新のN/Fサンプルは、現在のフレーム36に属する。変調関数は、示されるように、
例えば逆変換が逆MDCTである場合には余弦関数であり、
逆変換が逆MDCTである場合には正弦関数でありうる。
【0060】
このようにして、ウィンドウ化器52は、各フレームごとに、時間的部分52を受信し、その先端におけるN/Fサンプルは、それぞれの時間的部分52の他のサンプルが対応する時間的に先行するフレームに属する間、それぞれのフレームに時間的に対応する。ウィンドウ化器18は、各フレーム36について、長さ(E+2)・N/Fのユニモーダルな合成ウィンドウ54を使用して、時間的部分52をウィンドウ化し、その先端部に長さ1/4・N/Fのゼロ部分56すなわち1/F・N/Fのゼロ値ウィンドウ係数を含み、時間的にゼロ部分56に続いてその時間間隔、すなわちゼロ部分52によってカバーされない時間的部分52の時間間隔内にピーク58を有する。後者の時間間隔は、ウィンドウ58の非ゼロ部分と呼ぶことができ、低減されたサンプリング・レートのサンプル、すなわち7/4・N/Fウィンドウ係数で測定された7/4・N/Fの長さを有する。ウィンドウ化器18は、たとえばウィンドウ58を用いて時間的部分52を重み付けする。この各時間的部分52のウィンドウ54による重み付けまたは乗算58は、時間的範囲が関係する限りウィンドウ化された時間的部分60を各フレーム36に対して1つずつ、それぞれの時間的部分52と一致させる。上記の提案されたセクションA.4において、ウィンドウ18によって使用され得る窓処理は、zi,nとxi,nとの関係式によって記述される。xi,nは、ウィンドウ化されていない前述の時間的部分52に対応し、zi,nは、フレーム/ウィンドウのシーケンスをインデックスするウィンドウ化された時間的部分60に対応し、nは、各時間的部分52/60内で、減少されたサンプリング・レートに従って、それぞれの部分52/60の位置のサンプルまたは値をインデックス付けする。
【0061】
このようにして、時間領域エイリアシング・キャンセラー20は、ウィンドウ化器18から一連のウィンドウ化された時間的部分60、すなわちフレーム36ごとに1つを受信する。キャンセラー20は、各ウィンドウ化された時間的部分60をその先頭のN/F値と対応するフレーム36と一致するように登録することによって、フレーム36のウィンドウ化された時間的部分60に重畳加算処理62を行う。この方法により、現在のフレームのウィンドウ化された時間的部分60の長さ(E+1)/(E+2)の終端部分、すなわち長さ(E+1)・N/Fを有する剰余は、直前の先行するフレームの時間的部分の対応する等しい長さの先端の部分とオーバーラップする。式において、時間領域エイリアシング・キャンセラー20は、セクションA.4の上記提案バージョンの最後の式に示すように動作することができる。ここで、outi,nは、低減されたサンプリング・レートでの再構成オーディオ信号22のオーディオサンプルに対応する。
【0062】
ウィンドウ化器18および時間領域エイリアシング・キャンセラー20によって実行されるウィンドウ化処理58および重畳加算62の処理は、
図4に関して以下により詳細に示される。
図4は、上で提案されたセクションA.4に適用された体系と
図3および
図4に適用された参照符号の両方を使用する。x
0,0からx
0,(E+2)・
N/F-1は、0番目のフレーム36の空間時間モジュレータ16によって得られた0番目の時間的部分52を表す。xの第1のインデックスはフレーム36を時間的順序に沿ってインデックスし、xの第2のインデックスは時間的順序に沿った時間的サンプル、すなわち低減されたサンプル・レートに属するサンプル間ピッチをオーダーする。そして、
図4において、w
0からx
0,(E+2)・
N/F-1は、ウィンドウ54のウィンドウ係数を示す。xの第2のインデックス、すなわちモジュレータ16の出力としての時間的部分52と同様に、ウィンドウ54がそれぞれの時間的部分52に適用される場合、wのインデックスはインデックス0が最も古いものに対応し、インデックス(E+2)・N/F-1が最新のサンプル値に対応する。0番目のフレームに対してウィンドウ化された時間的部分を意味するz
0,0からz
0,(E+2)・
N/F-1は、z
0,0
=x
0,0・
w
0,…,z
0,(E+2)
・
N/F-1
=x
0,(E+2)・N/F-1
・
W(E+2)・
N/F-1によって得られるように、ウィンドウ化された時間的部分60を得るために、ウィンドウ化器18は、ウィンドウ54を用いて時間的部分52をウィンドウ化する。zのインデックスはxと同じ意味を有する。このようにして、モジュレータ16およびウィンドウ化器18は、xおよびzの第1のインデックスによってインデックスされた各フレームに対して作用する。キャンセラー20は、
1つのフレーム、ここではu
-(E+1),0…u
-(E+1),N/F-1のサンプルuを得るために、キャンセラー20は、E+2個の直接に連続したフレームのE+2個のウィンドウ化された時間的部分60を合算し、ウィンドウ化された時間的部分60のサンプルを互いに1フレーム、すなわちフレーム36当たりのサンプル数、すなわちN/Fだけオフセットする。ここでも、uの第1のインデックスはフレーム番号を示し、第2のインデックスはこのフレームのサンプルを時間順に並べる。キャンセラーは、連続フレーム36内の再構成されたオーディオ信号22のサンプルが、互いに、u
-(E+1),0…u
-(E+1),N/F-1,u
-E,N/F-1,u
-(E-1),0…によって続くように、こうして得られた再構成されたフレームを結合する。キャンセラー22は、u
-(E+1),0=z
0,0+z
-1,N/F+…z
-(E+1),(E+1)・
N/F,…,u
-(E+1),N/F-1=z
0,N/F-1+z
-1,2・
N/F-1+…+z
-(E+1),
(E+2)
・
N/F-1によって、-(E+1)番目のフレーム内のオーディオ信号22の各サンプルを計算する。すなわち、現在のフレームのサンプルuごとに(e+2)加数を加算する。
【0063】
図5は、フレーム-(E+1)のオーディオサンプルuに寄与するちょうどウィンドウ化されたサンプルの中で、可能性のある利用を示し、それは、ウィンドウ54のゼロ部分56に対応するか、または使用してウィンドウ化される。すなわち、z
(E+1),(E+7/4)・
N/F…z
-(E+1),(E+2)・
N/F-1はゼロ値である。したがって、E+2加数を使用してオーディオ信号uの-(E+1)番目のフレーム36内のすべてのN/Fサンプルを得る代わりに、キャンセラー20は、その先頭の1/4を計算することができる。すなわち、u
-(E+1),(E+7/4)・
N/F…u
-(E+1),(E+2)・
N/F-1は、単に、u
-(E+1),(E+7/4)・
N/F=z
0,3/4・
N/F+z
-1,7/4・
N/F+…+z
-E,(E+3/4)・
N/F,…,u
-(E+1),(E+2)・
N/F-1=z
0,N/F-1+z
-1,2・
N/F-1+…+z
-E,(E+1)・
N/F-1によってE+1加数を使用する。このようにして、ウィンドウ化器はゼロ部分56に対する重み付け58の性能を効果的に排除することさえできる。現在の-(E+1)番目のフレームのサンプルu
-(E+1),(E+7/4)・
N/F…u
-(E+1),(E+2)・
N/F-1は、E+1加数のみを使用して得られ、一方、u
-(E+1),(E+1)・
N/F…u
-(E+1),(E+7/4)・
N/F-1は、E+2加数を使用して得られる。
【0064】
かくして、上記において概説したようにして、
図2のオーディオデコーダ10は、データストリーム24に符号化されたオーディオ信号をダウンスケールされた態様で再生する。この目的のために、オーディオデコーダ10は、それ自体が長さ(E+2)・Nの参照合成ウィンドウのダウンサンプルされたバージョンであるウィンドウ関数54を使用する。
図6に関して説明されるように、このダウンサンプルされたバージョン、すなわちウィンドウ54は、
セグメント補間を用いて、すなわち、ダウン
スケールされていない状態で測定された場合
、長さ1/4・Nのセグメントを用いて
ダウンサンプルされた領域では長さ1/4・N/Fのセグメントで、フレーム36のフレーム長の1/4のセグメントで時間的に測定され、サンプリング・レートとは独立して表現される、
Fの係数すなわちダウンサンプリング係数だけ参照合成ウィンドウ
をダウンサンプル
することによって得られる。
図6を参照されたい。
図6は、長さ(E+2)・Nの参照合成ウィンドウ70の下のダウンサンプルされたオーディオ復号化手順に従ってオーディオデコーダ10によってユニモーダルに使用される合成ウィンドウ54を示す。すなわち、参照合成ウィンドウ70から、ダウンサンプルされた復号化のためにオーディオデコーダ10によって実際に使用される合成ウィンドウ54に至るダウンサンプル手順72によって、ウィンドウ係数の数は、係数Fだけ低減される。
図6において、図
5および図
6の体系
が順守されている。すなわち、wはダウンサンプルされたバージョンのウィンドウ54を示すために使用され、w’は参照合成ウィンドウ70のウィンドウ係数を示すために使用される。
【0065】
上述したように、ダウンサンプル72を実行するために、参照合成ウィンドウ70は、等しい長さのセグメント74で処理される。番号には、(E+2)・4個のセグメント74がある。もとのサンプリング・レート、すなわち参照合成ウィンドウ70のウィンドウ係数の数で測定された各セグメント74は、1/4・N個のウィンドウ係数w’長さであり、低減またはダウンサンプルされたサンプリング・レートで測定される。各セグメント74は、1/4・N/F個のウィンドウ係数w長さである。
【0066】
ンプル72を行うことが可能であ
る。しかし、この手順は、参照合成ウィンドウ70の近似性に乏しい結果となる。すなわち、ダウンサンプルされた復号化のためにオーディオデコーダ10によって使用される合成ウィンドウ54は、参照合成ウィンドウ70の近似が不十分であるため、それによって、データストリーム24からオーディオ信号の非ダウンスケール復号化と比較してダウンスケールされた復号化の適合試験を保証するための要求を果たさない。したがって、ダウンサンプル72は、ダウンサンプルされたウィンドウ54のウィンドウ係数w
iの大部分、すなわちセグメント74の境界からオフセットされた位置にあるウィンドウ係数w
iの大部分がダウンサンプル手順72によって、参照ウィンドウ70の2つ以上のウィンドウ係数w’
に依存する補間手順を含む。特に、ダウンサンプルされたウィンドウ54のウィンドウ係数w
iの大部分は、補間/ダウンサンプルされた結果の品質、すなわち近似品質を高めるために、参照ウィンドウ70の2つ以上のウィ
【0067】
たとえば、合成ウィンドウ54は、長さ1/4・N/Fのスプライン関数の連結であってもよい。3次スプライン関数を使用することができる。そのような例は、セクションA.1で概説されており、外側のfor-nextループがセグメント74上を順次ループする。各セグメント74において、ダウンサンプルまたは補間72は、「係数cを計算するために必要なベクトルrを計算する」セクションの次の句の例えば最初の部分における現在のセグメント74内の連続ウィンドウ係数w’の数学的組合せを含んでいた。しかしながら、セグメントに適用される補間は、異なる方法でも選択されうる。すなわち、補間はスプラインまたは3次スプラインに限定されない。むしろ、線形補間または任意の他の補間方法を同様に使用することができる。いずれにしても、補間のセグメント実装は、別のセグメントに隣接して、ダウンスケールされた合成ウィンドウのサンプル、すなわち、ダウンスケールされた合成ウィンドウのセグメントの最外サンプルの計算に、異なるセグメントに存在している参照合成ウィンドウのウィンドウ係数に依存しないようにさせる。
【0068】
ウィンドウ化器18は、ダウンサンプルされた合成ウィンドウ54を、このダウンサンプルされた合成ウィンドウ54のウィンドウ係数w
iがダウンサンプル72を用いて得られた後に記憶されている記憶装置から得ることができる。あるいは、
図2に示すように、オーディオデコーダ10は、参照合成ウィンドウ70に基づいて
図6のダウンサンプル72を実行するセグメントダウンサンプラ76を備えてもよい。
【0069】
図2のオーディオデコーダ10は、ただ1つの固定ダウンサンプリング係数Fをサポートするように構成されてもよく、または異なる値をサポートしてもよいことに留意されたい。その場合、オーディオデコーダ10は、
図2に78で示すようにFの入力値に応答することができる。グラバー14は、たとえば、上述したように、フレームのスペクトルごとのN/Fスペクトル値を取得するために、この値Fに応答することができる。同様に、オプションのセグメントダウンサンプラ76は、上記のように動作するFのこの値に応答もしうる。S/Tモジュレータ16は、Fに応答して、たとえば、ダウンスケールされていない動作モードで使用されるものに対してダウンスケール/ダウンサンプルされた、変調機能のダウンスケール/ダウンサンプルされたバージョンを計算的に得る。ここで、再構成により、完全なオーディオサンプルレートが得られる。
【0070】
当然のことながら、モジュレータ16は変調関数の適切にダウンサンプルされたバージョンを使用するので、モジュレータ16はF入力78にも応答するであろうし、低減またはダウンサンプルされたサンプリング・レートにおいて、フレームの実際の長さの適応に関しては同様のことがウィンドウ化器18およびキャンセラー20についても当てはまる。
【0071】
たとえば、Fは、1.5以上10以下である。
【0072】
図2および
図3のデコーダまたは本明細書で概説されたそれらの任意の修正は、たとえば、EP 2 378 516 B1に教示されているような低遅延MDCTのリフティング実装を使用してスペクトルから時間への変換を実行するように実装されうる
ことに留意されたい。
【0073】
図8は、リフティングの概念を使用するデコーダの実装を示す。S/Tモジュレータ16は、例示的に逆DCT-IVを実行し、続いて、ウィンドウ化器18と時間領域エイリアシング・キャンセラー20の連結を表すブロックが示される。
図8の実施例において、Eは2、すなわちE=2である。
【0074】
モジュレータ16は、逆タイプ-iv離散コサイン変換周波数/時間コンバータを含む。(E+2)N/F長の時間的部分52のシーケンスを出力する代わりに、全てN/F長のスペクトル46のシーケンスから得られる長さ2・N/Fの時間的部分52を出力するだけであり、これらの短縮部分52は、DCTカーネル、すなわち、以前に記述された部分の2・N/F最新のサンプルに対応する。
【0075】
ウィンドウ化器18は、前述したように動作し、各時間的部分52に対してウィンドウ化された時間的部分60を生成するが、それは単にDCTカーネル上で動作する。この目的のために、ウィンドウ化器18は、カーネル・サイズを有するi=0…2N/F-1のウィンドウ関数ωiを使用する。i=0…(E+2)・N/F-1のwiとの関係は、後で述べるリフティング係数およびi=0…(E+2)・N/F-1のwiの関係として記載される。
【0076】
上に適用された体系を使用して、これまでに記載された処理が得られる:
n=0,…,2M-1に対して、z
k,n=ω
n・x
k,n
M=N/Fを再定義することにより、Mが
図2-6の体系を用いてダウンスケールされた領域で表現されたフレームサイズに対応するようにする。ここで、しかしながら、z
k,nおよびx
k,nは、サイズ2・Mを有し、
図4におけるサンプルE・N/F…(E+2)・N/F-1に時間的に対応するDCTカーネル内のウィンドウ化された時間的部分および未だウィンドウ化されていない時間的部分のサンプルのみを含む。すなわち、nはサンプル・インデックスを示す整数であり、ω
nはサンプル・インデックスnに対応する実数値のウィンドウ関数の係数である。
【0077】
キャンセラー20の重畳加算処理は、上記の説明とは異なる方法で動作する。以下に記載の方程式または式に基づいて、中間の時間的部分mk(0),…mk(M-1)を生成する。
n=0,…,M-1に対して、mk,n=zk,n+zk-1,n+M
【0078】
図8の実装において、この装置は、リフター80が、
モジュレータおよびウィンドウ化器がモジュレータ機能の拡
張および
拡張がゼロ部分56を補償するために導入された過去に向けてのカーネルを越える合成ウィンドウを処理する代わりに、DCTカーネルへの処理を制限した
という事実を補償するので、モジュレータ16およびウィンドウ化器18の一部として解釈され得るリフター80をさらに備える。リフター80は、遅延器および乗算器82および加算器84のフレームワークを使用して、以下に記載の方程式または式に基づいて、直接に連続したフレーム対の長さMの最終的に再構成された時間的部分またはフレームを生成する。
n=M/2,…,M-1に対して、u
k,n=m
k,n+l
n-M/2・m
k-1,M-1-n
および
n=0,…,M/2-1に対して、u
k,n=m
k,n+l
M-1-n・out
k-1,M-1-n
ここで、n=0…M-1であるl
nは、以下でより詳細に説明する方法で、ダウンスケールされた合成ウィンドウに関連する実数値のリフティング係数である。
【0079】
言い換えれば、E個のフレームの過去の重なり合いのために、リフター80のフレームワークに見られるように、M個の追加の乗算-加算演算のみが必要とされる。これらの追加演算は、
しばしば「ゼロ遅延行列」と呼ばれることもある。
ときにはこれらの操作は、「リフティングステップ」とも呼ばれる。
図8に示す効率的な実装は、場合によっては、直接的な実装としてより効率的であり得る。より正確には、具体的な実装形態に依存して、このようなより効率的な実装は、
図19において示される実装のように、M個の動作の単純な実装の場合のように、M個の動作を節約する結果となる可能性があり、基本的に、モジュール820のフレームワークにおける2Mの操作と、リフター830のフレームワークにおけるMの操作とを必要とする
ことを実装することが望ましい。
【0080】
i=0…(E+2)M-1を伴う合成ウィンドウw
i上のn=0…2M-1を伴うω
nおよびn=0…M-1を伴うl
nの依存性に関して(ここでE=2)、以下の式は、それぞれの変数に続く括弧の中にこれまで使用されている添え字インデックスを置換することによるそれらの関係を説明している。
【0081】
ウィンドウwiは、この公式において右側のピーク値、すなわちインデックス2Mと4M-1との間のピーク値を含むことに留意されたい。上記の式は、ダウンスケールされた合成ウィンドウのn=0…(E+2)M-1を伴う係数wnにn=0…M-1を伴う係数lnおよび0,…,2M-1を伴うωnを関連付ける。見て分かるように、n=0…M-1を伴うlnは、実際には、ダウンサンプルされた合成ウィンドウ、すなわち、n=0…(E+1)M-1を伴うwnの係数の3/4にのみ依存し、一方、n=0,…,2M-1を伴うωnは、n=0…(E+2)M-1を伴うすべてのwnに依存する。
【0082】
上述したように、ダウンサンプル72を用いて得られた後、ウィンドウ化器18は、このダウンサンプルされた合成ウィンドウ54のウィンドウ係数w
iが格納された記憶装置から、ダウンサンプルされた合成ウィンドウ54(n=0…(E+2)M-1を伴うw
n)を得ることができる。そして、そこから上記の関係を用いて、n=0…M-1を伴う係数l
nおよびn=0,…,2M-1を伴うω
nを計算するために読み出される。しかし、あるいは、ウィンドウ化器18は、プレダウンサンプルされた合成ウィンドウから計算されたn=0…M-1を伴う係数l
nおよびn=0,…,2M-1を伴うω
nを記憶装置から直接得る。あるいは、上述したように、オーディオデコーダ10は、参照合成ウィンドウ70に基づいて
図6のダウンサンプル72を実行するセグメントダウンサンプラ76を備えることにより、ウィンドウ化器18は、上記の関係/公式を用いて、n=0…M-1を伴う係数l
nおよびn=0,…,2M-1を伴うω
nを計算することに基づいて、n=0…(E+2)M-1を伴うw
nを得る。リフティング実装を使用しても、Fの複数の値がサポートされる。
【0083】
リフティング実装を簡単に要約すると、オーディオ信号が第2のサンプリング・レートで変換符号化されるデータストリーム24から第1のサンプリング・レートでオーディオ信号22を復号化するように構成されたオーディオデコーダ10においても同様の結果が得られ、第1のサンプリング・レートは第2のサンプリング・レートの1/Fであり、オーディオデコーダ10は、オーディオ信号の長さN個のフレームごとにN個のスペクトル係数28を受信するレシーバ12を含み、各フレームについてグラブアウトするグラバー14は、N個のスペクトル係数28のうちの長さN/Fの低周波数部分であり、スペクトル時間モジュレータ16は、各フレーム36について対象とするように構成され、低周波数部分は、長さ2・N/Fの時間的部分を得るために、各フレームおよび先行するフレームにわたって時間的に伸びる長さ2・N/Fの変調関数を有する逆変換へと変換され、そして、n=0…2M-1を伴うウィンドウ化された時間的部分zk,n
=ω
n
・x
k,n
を得るために、ウィンドウ化器18は、n=0,…,2M-1に対するzk,nに従う時間的部分xk,nを、各フレーム36について、ウィンドウ化する。時間領域エイリアシング・キャンセラー20は、n=0,…,M-1に対してmk,n=zk,n+zk-1,n+Mに従う中間の時間的部分mk(0),…mk(M-1)を生成する。最後に、リフター80は、n=M/2,…,M-1に対するuk,n=mk,n+ln-M/2・mk-1,M-1-nおよびn=0,…,M/2-1に対するuk,n=mk,n+ln-M/2・out
k-1,M-1-nに従うn=0…M-1を伴うオーディオ信号のフレームuk,nを計算し、ここで、n=0…M-1を伴うlnは、リフティング係数であり、逆変換は、逆MDCTまたは逆MDSTであり、そして、n=0…M-1を伴うlnおよびn=0,…,2M-1を伴うωnは、合成ウィンドウのn=0…(E+2)M-1を伴う係数wnに依存し、さらに、合成ウィンドウは、長さ4・Nの参照合成ウィンドウのダウンサンプルされたバージョンであり、1/4・Nの長さのセグメントのセグメント補間によって係数Fでダウンサンプルされる。
【0084】
図2のオーディオデコーダが低遅延SBRツールを伴う可能性がある、ダウンスケールされた復号化モードに関するAAC-ELDの拡張の提案に関する上記議論から既に判明した。たとえば、AAC-ELDコーダが上記の提案されたダウンスケールされた動作モードをサポートするために、どのように拡張されたかについての以下の概要は、低遅延SBRツールを使用する場合に動作する。低遅延SBRツールがAAC-ELDコーダに関連して使用される場合、本出願の明細書の導入部で既に述べたように、低遅延SBRモジュールのフィルタ・バンクも同様にダウンスケールされる。これにより、SBRモジュールが同じ周波数分解能で動作することが保証され、それ以上の適応は必要ない。
図7は、96kHzで動作するAAC-ELDデコーダの信号経路の概要を示しており、フレームサイズが480サンプルであり、ダウンサンプルされたSBRモードであり、ダウンスケーリング係数Fが2である。
【0085】
図7において、ビットストリームは、AACデコーダ、逆LD-MDCTブロック、CLDFB解析ブロック、SBRデコーダおよびCLDFB合成ブロック(CLDFB=複素低遅延フィルタ・バンク)のシーケンスによって処理されて達する。ビットストリームは、図
3ないし図
6に関して先に説明したデータストリーム24に等しい。
しかし、逆低遅延MDCTブロックの出力においてダウンスケールされたオーディオ復号化によって得られたオーディオ信号のスペクトル周波数を拡張するスペクトル拡張帯域のスペクトル複製のスペクトル整形を支援するパラメトリックSBRデータを付加的に伴い、スペクトル整形はSBRデコーダによって実行される。特に、AACデコーダは、適切な構文解析およびエントロピー復号化によって必要な構文要素のすべてを検索する。AACデコーダは、
図7において逆低遅延MDCTブロックによって具現化されるオーディオデコーダ10のレシーバ12と部分的に一致してもよい。
図7において、Fは典型的には2に等しい。すなわち、
図7の逆低遅延MDCTブロックは、
図2の再構成オーディオ信号22の一例として、オーディオ信号が最初に到着したビットストリームの中へ
符号化されるレートの半分でダウンサンプルされた48kHzの時間信号を出力する。CLDFB分析ブロックは、この48kHzの時間信号、すなわち、ダウン
スケールされたオーディオ
復号化によって得られたオーディオ信号を、N個の帯域、ここではN=16に分割し、そして、SBRデコーダは、これらの帯域の再整形係数を計算し、それに応じてN帯域を再構成する。すなわち、AACデコーダの入力に到着する入力ビットストリーム内のSBRデータを介して制御され、そして、CLDFB合成ブロックは、逆低遅延MDCTブロックによって出力されたもとの復号化されたオーディオ信号に加えられるべき高周波数拡張信号を得ることによって、スペクトル領域から時間領域へと再変換する。
【0086】
SBRの標準動作は32バンドCLDFBを使用することに注意されたい。32バンドCLDFBウィンドウ係数ci
32の補間アルゴリズムは、[1]の4.6.19.4.1に既に記載されている。
ここで、c
64は、[1]における表4.A.90において与えられる64個のバンドウィンドウのウィンドウ係数である。この式をさらに一般化して、より少ない数のバンドBの
ウィンドウ係数を定義することができる。
ここで、Fは、ダウンスケール係数F=32/Bを示す。ウィンドウ係数のこの定義により、セクションA.2の上記の例に概説されているように、CLDFB分析および合成フィルタ・バンクを完全に記述することができる。
【0087】
したがって、上記の例は、より低いサンプル・レートのシステムにコーデックを適用させるために、AAC-ELDコーデックのいくつかの欠落した定義を提供した。これらの定義は、ISO/IEC 14496-3:2009規格に含められうる。
【0088】
したがって、上記の議論において、それは、とりわけ以下に記載される:
【0089】
オーディオデコーダは、オーディオ信号が第2のサンプリング・レートで変換符号化されているデータストリームから、第1のサンプリング・レートでオーディオ信号を復号化するように構成することができ、第1のサンプリング・レートは、第2のサンプリング・レートの1/Fであり、オーディオデコーダは、オーディオ信号の長さNのフレームごとに、N個のスペクトル係数を受信するように構成されるレシーバと、各フレームについて、N個のスペクトル係数から長さN/Fの低周波数部分をグラブアウトするように構成されるグラバーと、各フレームについて、低周波数部分を、それぞれのフレームおよびE+1個の先行するフレームに時間的に広がる長さ(E+2)・N/Fの変調関数を有する逆変換を実行して、長さ(E+2)・N/Fの時間的部分を得るように構成されたスペクトル時間モジュレータと、各フレームについて、その先端に長さ1/4・N/Fのゼロ部分を含み、ユニモーダルな合成ウィンドウの時間的間隔の範囲内においてピークを有する、長さ(E+2)・N/Fのユニモーダルな合成ウィンドウを使用して、時間的部分をウィンドウ化するように構成されるウィンドウ化器であって、時間的間隔は、ウィンドウ化器が、長さ(E+2)・N/Fのウィンドウ化された時間的部分を得るように、ゼロ部分に続き、そして、長さ7/4・N/Fを有する、ウィンドウ化器と、現在のフレームのウィンドウ化された時間的部分の長さ(E+1)/(E+2)の終端部分が、先行するフレームのウィンドウ化された時間的部分の長さ(E+1)/(E+2)の先端と重なるように、フレームのウィンドウ化された時間的部分を重畳加算処理するように構成された時間領域エイリアシング・キャンセラーと、を備え、逆変換は、逆MDCTまたは逆MDSTであり、ユニモーダルな合成ウィンドウは、長さ(E+2)・Nの参照ユニモーダル合成ウィンドウの、長さ1/4・N/Fのセグメントにおけるセグメント補間によって、係数Fでダウンサンプルされた、ダウンサンプルされたバージョンである。
【0090】
実施例に記載のオーディオデコーダにおいて、ユニモーダルな合成ウィンドウは、長さ1/4・NFのスプライン関数の連結である。
【0091】
実施例に記載のオーディオデコーダにおいて、ユニモーダルな合成ウィンドウは、長さ1/4・NFの3次スプライン関数の連結である。
【0092】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、E=2である。
【0093】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、逆変換は、逆MDCTである。
【0094】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、ユニモーダルな合成ウィンドウの面積の80%以上がゼロ部分に続く、長さ7/4・N/Fである時間的間隔の範囲内に含まれる。
【0095】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、オーディオデコーダは、記憶装置から補間を実行するように、または、ユニモーダルな合成ウィンドウを導出するように構成される。
【0096】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、オーディオデコーダは、Fについて異なる値をサポートするように構成される。
【0097】
前述の実施例のいずれかに記載のオーディオデコーダにおいて、Fは、1.5以上10以下である。
【0098】
方法は、前述の実施例のいずれかに記載のオーディオデコーダによって実行される。
【0099】
コンピュータ・プログラムは、コンピュータで動作させる場合に、実施例に記載の方法を実行するためのプログラムコードを有する。
【0100】
「長さの」という用語に関しては、この用語はサンプルにおける長さを測定するものとして解釈されるべきであることに留意すべきである。ゼロ部分およびセグメントの長さに関する限り、それが整数値でありうることに留意すべきである。あるいは、それは、非整数値でもありうる。
【0101】
ピークが位置する時間間隔に関しては、
図1は、E=2およびN=512の参照ユニモーダルな合成ウィンドウの例についてのこのピークおよび時間間隔を例示的に示していることに留意されたい。ピークはおよそサンプル番号1408で最大値を有し、時間間隔はサンプル番号1024からサンプル番号1920まで及ぶ。従って、時間的間隔は、DCTカーネルの7/8
の長さである。
【0102】
用語「ダウンサンプルされたバージョン」に関しては、上記の明細書では、この用語の代わりに、「ダウンスケールされたバージョン」が同義語として使用されていることに留意されたい。
【0103】
「一定の間隔内の関数の面積」という用語については、同じことがそれぞれの間隔内のそれぞれの関数の定積分を示すことに留意されたい。
【0104】
Fの異なる値をサポートするオーディオデコーダの場合、それは、参照ユニモーダルな合成ウィンドウのそれに応じてセグメント補間されたバージョンを有する記憶装置を含むことができ、またはFの現在アクティブな値についてセグメント補間を実行することができる。異なるセグメント補間バージョンは、補間がセグメント境界における不連続性に悪影響を及ぼさないという共通点を有する。これらは、上述したように、スプライン関数でありうる。
【0105】
上記の
図1のような参照ユニモーダルな合成ウィンドウからセグメント補間によりユニモーダルな合成ウィンドウを導出することにより、4・(E+2)個のセグメントは3
次スプライン等のスプライン近似によって形成され、
補間を行うにもかかわらず遅延を小さくするための手段として、合成
的に導入された
ためにゼロ部分が1/4・N/Fのピッチでユニモーダルな合成ウィンドウに存在する不連続性が保存される。
【0106】
文献
[1] ISO/IEC 14496-3:2009
[2] M13958, "Proposal for an Enhanced Low Delay Coding Mode", October 2006, Hangzhou, China