添付図面を参照しながら、本発明の実施形態を以下に説明する。
図1〜19は、オーディオ副帯値を生成する装置及び方法、時間領域サンプルを生成する装置及び方法、前記装置、方法のうちの少なくともいずれか一つを含むシステムの異なる実施形態の機能的特性及び特徴を示す回路図及び説明図である。本発明の第1実施形態を詳しく説明する前に、本発明の実施形態はハードウェアにもソフトウェアにも実行可能であることを明記しておく。従って、それぞれの実施形態のハードウェアへ実行する場合のブロック図として説明されているものは、それに相当する方法の実施形態のフローチャートとしても考えられ得る。また、本発明の実施形態を説明するフローチャートは、それに相当するハードウェアへの実行のブロック図としても考えられ得る。
以下に、フィルターバンクとしての実施形態を説明するが、これは解析フィルターバンクまたは合成フィルターバンクとして実施可能である。解析フィルターバンクは、初期のサンプルから後期のサンプルに至る時間列内にある時間領域オーディオ(入力)サンプルに基づき、オーディオ副帯チャンネルのオーディオ副帯値を生成する装置である。つまり、解析フィルターバンクという言葉は、オーディオ副帯値を生成する装置としての本発明の実施形態と類義語的に使用され得る。合成フィルターバンクは、オーディオ副帯チャンネルのオーディオ副帯値から時間領域オーディオサンプルを生成するフィルターバンクである。つまり、合成フィルターバンクという言葉は、時間領域オーディオサンプルを生成する装置としての本発明の実施形態と類義語的に使用され得る。
解析フィルターバンク、合成フィルターバンクどちらも略してフィルターバンクと称されるものであるが、例えば、変調フィルターバンクとして実施されてもよい。変調フィルターバンクは、周波数領域の対応する副帯の中心周波数から導き出される周波数を有する振動に基づくものであり、その例及び実施形態は後述する。「変調」という言葉は、ここでは、このような変調フィルターバンクの具体的な実施に応じて、前述の振動はウィンドウ関数またはプロトタイプフィルター関数に関連して使用されるという事実を指している。変調フィルターバンクは、原則的には、調和振動(正弦振動または余弦振動)などの実数値振動またはそれに対応する複合値振動(複素励振)に基づき可能である。従って、変調フィルターバンクは、実数変調フィルターバンクまたは複合フィルター変調フィルターバンクと称される。
以下、複合変調低遅延フィルターバンクや実数変調低遅延フィルターバンクとしての本発明の実施形態、及びそれに相当する方法やソフトウェアへの実施を詳細に説明する。このような変調低遅延フィルターバンクの主な応用の一つは、低遅延スペクトル帯域再生(SBR)システムへの統合であり、現在、対称プロトタイプフィルターを備えた複合QMF(複合直角ミラーフィルター)の使用に基づいている。
本明細書の構成から明らかなように、本発明の実施形態に係る低遅延フィルターバンクは、コンピュータ処理の複雑さ、周波数応答、一時的なノイズ拡散及び(再生の)質の間のトレードオフが向上されるという利点をもたらす。さらに、遅延と再生の質との間のトレードオフの向上は、さらなる遅延を引き起こすことなく、それぞれのフィルターバンクのフィルターインパルス応答を引き延ばすためのいわゆるゼロ遅延技術を利用する方法に基づき、達成できる。既定の質レベルでの低遅延、既定の遅延レベルでのより良い質または遅延と質の同時向上は、本発明の実施形態に係る解析フィルターバンクまたは合成フィルターバンクを用いることで達成可能である。
本発明の実施形態は、これらの向上は、第1の個数のウィンドウ係数を有するウィンドウ関数を、それより多い第2の個数のウィンドウ係数を有するウィンドウ関数に基づき得るために補間体系を利用することで達成できるという発見に基づくものである。補間体系を利用することで、ウィンドウ関数のウィンドウ係数のエネルギー値の分布の向上が達成できる。これは、多くの場合、エイリアシングレベルの向上とオーディオの質に関する向上をもたらす。例えば、より大きいウィンドウ関数が偶数個のウィンドウ係数を含む場合、補間体系は有用である。
補間体系を用いることにより、コンピュータ処理の複雑化はわずかですむ。しかし、二つの別のウィンドウ関数が独立して記憶されている場合と比較すると、このわずかな複雑化があるにしても、それを上回る質の向上とメモリー使用量の節約が得られる。補間がプロセッサのクロック信号の一回または数回のサイクルの内に行われている間、多くの場合はわずかな遅延とコンピュータ処理の複雑化をもたらすが、メモリーが余分にあることは多くの応用で非常に重要である。例えば、モバイルに応用する場合、特にかなり多数のウィンドウ係数を有する長いウィンドウ関数が使用される場合、メモリーは限られている。
さらに、本発明に係る実施形態は、前述した二つのフィルターバンクのいずれかのための新しいウィンドウ関数に使用でき、前述のトレードオフをさらに向上させる。解析フィルターバンクの場合、一つのウィンドウ係数列を含む解析ウィンドウ関数を使用することによって、質及び/または遅延をさらに向上できる。ウィンドウ係数列は、ウィンドウ係数第1連続部を含む第1グループとウィンドウ係数第2連続部を含む第2グループとからなる。第1連続部と第2連続部はウィンドウ関数の全てのウィンドウ係数を含む。さらに、第1部は第2部よりも少ないウィンドウ係数を含むが、第1部のウィンドウ係数のエネルギー値は第2部のウィンドウ係数のエネルギー値よりも高い。第1グループのウィンドウ係数は後期の時間領域サンプルをウィンドウ処理するために使用され、第2グループのウィンドウ係数は前期の時間領域サンプルをウィンドウ処理するために使用される。これが、前述したウィンドウ係数の二つの部分への分配の結果と、それらの時間領域オーディオサンプル列への応用である。結果的に、このようなウィンドウ関数を使用することで、一定の質レベルでフィルターバンクによって生じる遅延を低下させ、あるいは一定の遅延レベルで質の向上を可能にする。
従って、時間領域オーディオサンプルを生成する装置及び方法としての本発明の実施形態の場合、合成ウィンドウ処理部は、ウィンドウ係数が第1連続部と第2連続部にそれぞれ同様に配置されたウィンドウ係数列を含む合成ウィンドウ関数を使用し得る。合成ウィンドウ関数の場合も、第1部のウィンドウ係数のエネルギー値つまり第1部全体のエネルギー値は第2部のウィンドウ係数のエネルギー値つまり第2部全体のエネルギー値よりも大きいが、第1部は第2部よりも少ない数のウィンドウ係数を含む。合成ウィンドウ処理部のウィンドウ係数がこのように二つの部分へ分配され、また、合成ウィンドウ処理部は後期の時間領域サンプルをウィンドウ処理するために第1部のウィンドウ係数を使用し、前期の時間領域サンプルをウィンドウ処理するために第2部のウィンドウ係数を使用するという事実により、合成フィルターバンク及び相当する方法にも前述した効果及び利点が当てはまる。
本発明のいくつかの実施形態の構造に用いられている合成ウィンドウ関数と解析ウィンドウ関数については後に詳細に説明する。本発明の多くの実施形態において、合成ウィンドウ関数及び/または解析ウィンドウ関数のウィンドウ係数列は、正に第1グループのウィンドウ係数と第2グループのウィンドウ係数を含んでいる。さらに、このウィンドウ係数列の各ウィンドウ係数は、確実に第1グループか第2グループのいずれかに属している。
前記二つの各グループは、正にウィンドウ係数列の一部分を連続的に含んでいる。本明細書では、一つの部分は、ウィンドウ係数列に応じた連続した一組のウィンドウ係数を含んでいる。本発明に係る実施形態において、二つのグループ(第1及び第2グループ)のそれぞれは、正に前述したウィンドウ係数列の一部を含んでいる。ウィンドウ係数の各グループは、正にそのグループの部分に属さないいかなるウィンドウ係数をも含まない。換言すれば、本発明に係る多くの実施形態において、第1、第2各グループのウィンドウ係数は、それぞれ、ウィンドウ係数第1部分、ウィンドウ係数第2部分のみを含み、他のウィンドウ係数を含まない。
本明細書の構造において、ウィンドウ係数列の一つの連続部とは、数学的な意味で接続する一組のウィンドウ係数として理解されるべきものである。ウィンドウ係数列と比較して、一組のウィンドウ係数は、それぞれの部分の範囲(例えば指数範囲)内にあるウィンドウ係数を欠くことはない。つまり、本発明に係る多くの実施形態において、一つのウィンドウ係数列は二つのウィンドウ係数接続部分に分けられ、これらの部分はそれぞれウィンドウ係数の第1グループと第2グループを形成する。これらの場合、第1グループに含まれる各ウィンドウ係数は、ウィンドウ係数列全体に関して、第2グループの各ウィンドウ係数の前または後に配置される。
さらに換言すると、本発明に係る多くの実施形態において、ウィンドウ係数列は、いかなるウィンドウ係数をも省くことなく、正確に二つのグループまたは部分に分けられる。ウィンドウ係数列はまたウィンドウ係数の順番を表わすものでもあるが、これに応じて、二つのグループまたは部分のそれぞれがボーダー係数までの(ボーダー係数を含まない)またはボーダー係数から始まる(ボーダー係数を含む)全てのウィンドウ係数を含む。一例として、一つのウィンドウ関数が640のウィンドウ係数(0〜639の指数を有する)を含む場合、第1部分または第1グループが0〜95,(の指数を有するウィンドウ係数を含み、第2部分または第2グループが)96〜639の指数を有するウィンドウ係数を含んでいてもよい。この場合、ボーダー係数は96の指数に相当するものである。当然、他の例も可能である(例えば0〜543と544〜639)。
以下に説明する解析フィルターバンクの具体例は10ブロックの入力サンプルをカバーするだけの長さを有するのに対し、わずか2ブロックのシステム遅延を引き起こす。このシステム遅延はMDCT(修正分散余弦変換)またはMDST(修正分散正弦変換)によって生じる遅延に相当する。MDCTまたはMDSTの場合と比較して、10ブロックの入力サンプルをカバーするだけの長いフィルター長による違いは、MDCTおよびMDSTの場合には1ブロックである重複が、9ブロックの重複にまで増加することである。しかし、別の個数のブロックの入力サンプル(オーディオ入力サンプルとも称される)をカバーする他の実施も実現可能である。さらに、他のトレードオフも考慮、実行可能である。
図1は、オーディオ副帯チャンネルのオーディオ副帯値を生成する装置の一実施形態としての解析フィルターバンク100のブロック図を示す。解析フィルターバンク100は、時間領域オーディオ入力サンプルのフレーム120をウィンドウ処理するための解析ウィンドウ処理部110を有する。フレーム120は、T個のブロック130−1,…,130−Tの時間領域オーディオ(入力)サンプルを含んでいる。Tは正の整数であり、図1に示す実施形態の場合は10である。しかし、フレーム120は別の個数のブロック130を含んでいてもよい。
フレーム120と各ブロック130のどちらにおいても、図1に矢印140で示すような時間直線に応じた初期サンプルから後期サンプルまで続く時間列内の時間領域オーディオ入力サンプルを含んでいる。換言すれば、図1の場合、時間領域オーディオサンプル(この場合時間領域オーディオ入力サンプル)が右寄りであればあるほど、その時間領域オーディオサンプルは時間領域オーディオサンプル列に関して後方にある。
解析ウィンドウ処理部110は時間領域オーディオサンプル列に基づき、時間領域でウィンドウ処理されたサンプルを生成する。これらのウィンドウ処理されたサンプルはウィンドウ処理後のサンプルのフレーム150に配列される。時間領域オーディオ入力サンプルフレーム120に応じて、ウィンドウ処理後サンプルフレーム150もまたT個のブロック160−1,…,160−Tのウィンドウ処理後のサンプルを含む。本発明の好ましい実施形態において、ウィンドウ処理後サンプルの各ブロック160は、時間領域オーディオ入力サンプルの各ブロック130内の時間領域オーディオ入力サンプルの数と同じ数のウィンドウ処理後サンプルを含む。従って、各ブロック130がN個の時間領域オーディオ入力サンプルを含む場合、フレーム120,150はそれぞれT・N個のサンプルを含む。この場合、Nは正の整数であり、例えば32または64である。この例のそれぞれの場合、T=10であれば、各フレーム120,150は320個または640個のサンプルを含む。
解析ウィンドウ処理部110は、解析ウィンドウ処理部110によって提供されるウィンドウ処理後のサンプルに基づきオーディオ副帯値を計算する計算機170と組み合わされている。オーディオ副帯値は、計算機170によって、オーディオ副帯値ブロック180として提供され、その中の各オーディオ副帯値は一つのオーディオ副帯チャンネルに相当する。好ましい実施形態において、オーディオ副帯値ブロック180もまたN個の副帯値を含んでいる。
各オーディオ副帯チャンネルは特有の中心周波数に相当している。異なるオーディオ副帯チャンネルのそれぞれの中心周波数は、例えば、解析フィルターバンク100に与えられた時間領域オーディオ入力サンプルで説明したように、対応するオーディオ信号の周波帯域に関して等しく分配されている、つまり等間隔で配置されていてもよい。
解析ウィンドウ処理部110は、フレーム150のウィンドウ処理後のサンプルを得るために、フレーム120の時間領域オーディオ入力サンプルを第1の個数のウィンドウ係数の列を含む解析ウィンドウ関数に基づきウィンドウ処理するように構成されている。解析ウィンドウ処理部110における時間領域オーディオサンプルのフレーム120のウィンドウ処理は、時間領域オーディオサンプルの値を解析ウィンドウ関数のウィンドウ係数を掛けることによって実行される。つまり、このウィンドウ処理は、時間領域オーディオサンプルのそれぞれの要素とそれに対応するウィンドウ係数との掛け算を含むものである。時間領域オーディオサンプルとウィンドウ係数は一致する順序を有し、ウィンドウ係数と時間領域オーディオサンプルの要素ごとの掛け算は、例えばサンプル/ウィンドウ係数指数によって示されるそれぞれの順序に応じて実行される。
本発明の実施形態において、時間領域オーディオ入力サンプルのフレームのウィンドウ処理に使用されるウィンドウ関数は、より多くの個数のウィンドウ係数を含むより大きいウィンドウ関数に基づき、例えば図3,4に示すような補間体系を用いて生成される。このより大きいウィンドウ関数は典型的には偶数個のウィンドウ係数を含み、例えばウィンドウ係数列に関しては非対称であってもよい。
時間領域オーディオ入力サンプルフレーム120のウィンドウ処理に使用されるウィンドウ関数190は、例えばより大きいウィンドウ関数のウィンドウ係数を補間する解析ウィンドウ処理部110またはフィルターバンク100によって得られる。本発明に係る実施形態において、これは、例えばより大きいウィンドウ関数の連続するウィンドウ係数を補間することによって実行される。ここでは、直線的、多項式的またはスプラインを基にした補間体系が使用され得る。
例えばより大きいウィンドウ関数の各ウィンドウ係数がウィンドウ関数のウィンドウ係数を生成するのに一度だけ使用され、第2の数が偶数である場合、ウィンドウ関数190のウィンドウ係数の個数(第1の数)は第2の数の半分である。このような補間は直線的補間に基づくものであり、その一例は後記の式(15)に示されている。しかし、他の補間体系も使用可能である。
図1に示すような解析フィルターバンク100としての本発明の実施形態において、解析ウィンドウ関数は例えば実数値ウィンドウ係数のみを含むものであってもよい。このことは、合成フィルターバンクの場合の合成ウィンドウ関数においても同様である。換言すれば、ウィンドウ係数指数に起因する各ウィンドウ係数は実数値である。
これらのウィンドウ係数がまとまり、それぞれのウィンドウ関数を形成する。この一例は、解析ウィンドウ関数190として図1に示されている。前述したようなフィルターバンクに使用される場合、遅延低下を可能にするウィンドウ関数を、以下に検討する。しかし、本発明の実施形態はこのような低遅延ウィンドウ関数に限るものではない。
解析ウィンドウ関数190を形成するウィンドウ係数列は、ウィンドウ係数の第1グループ200と第2グループ210を有する。第1グループ200は、ウィンドウ係数列の第1連続接続部分を含み、第2のグループ210は、ウィンドウ係数列の第2連続接続部分を含む。第1グループ200の第1部分と第2グループの第2部分は共に解析ウィンドウ関数190のウィンドウ係数列全体を形成する。また、このウィンドウ係数列の各ウィンドウ係数は第1部分または第2部分のどちらかに属し、解析ウィンドウ関数190全体が第1部分及び第2部分のウィンドウ係数によって成り立っている。従って、図1の矢印200,201で示されているように、ウィンドウ係数の第1部分はウィンドウ係数の第1グループ200と同じであり、第2部分はウィンドウ係数の第2グループ210と同じである。
第1グループ200つまり第1部分のウィンドウ係数の個数は、第2グループつまり第2部分のウィンドウ係数の個数よりも少ない。しかし、第1グループ200のウィンドウ係数のエネルギー値または全体的なエネルギー値は第2グループ210のウィンドウ係数のエネルギー値または全体的なエネルギー値よりも高い。後述するように、一組のウィンドウ係数のエネルギー値は、それらのウィンドウ係数の絶対値の2乗の合計に基づくものである。
従って、本発明に係る実施形態において、解析ウィンドウ関数190及び合成ウィンドウ関数はウィンドウ係数列またはウィンドウ係数指数に関して非対称であってもよい。解析ウィンドウ関数190がそれにより定義されるウィンドウ係数指数の定義集合を基に、全ての実数nに対してさらなる実数n0が存在し、ウィンドウ係数指数(n0−n)に対応するウィンドウ係数の絶対値はウィンドウ係数指数(n0+n)に対応するウィンドウ係数の絶対値と異なり、(n0−n)と(n0+n)がその定義集合に属する場合、その解析ウィンドウ関数190は非対称である。
さらに、図1に概略的に示すように、解析ウィンドウ関数190は、二つの連続するウィンドウ係数の積が負である際の符号変換を含む。本発明の実施形態に係るウィンドウ関数の特徴に関しては、図11〜19を参照してより詳細に説明する。
前述したように、ウィンドウ処理後のサンプルのフレーム150は、時間領域入力サンプルのフレーム120と同様に、個々のブロック160−1,…,160−Tを有するブロック構造である。解析ウィンドウ処理部110は、時間領域オーディオ入力サンプルを解析ウィンドウ関数190のウィンドウ係数で掛けることにより、これらの値をウィンドウ処理するように構成されているので、ウィンドウ処理後サンプルフレーム150もまた時間領域である。計算機170はオーディオ副帯値、より正確には、ウィンドウ処理後サンプルフレーム150を使用してオーディオ副帯値ブロック180を算出し、時間領域から周波数領域への変換を行う。計算機170は従って、時間/周波数変換機と考えられ、この変換機は、オーディオ副帯値ブロック180をウィンドウ処理後サンプルフレーム150のスペクトル表示として提供することができる。
ブロック180の各オーディオ副帯値は特性周波数を有する一つの副帯に相当する。ブロック180に含まれるオーディオ副帯値の数はバンド数と称されることもある。
本発明に係る多くの実施形態において、ブロック180内のオーディオ副帯値の個数は、フレーム120のそれぞれのブロック130内の時間領域オーディオ入力サンプルの個数と一致している。ウィンドウ処理後サンプルフレーム150がフレーム120と同じブロック構造である場合、ウィンドウ処理後サンプルの各ブロック160が時間領域オーディオ入力サンプルブロック130と同じ個数のサンプルを含み、オーディオ副帯値ブロック180も当然ブロック160と同じ個数の値を含む。
フレーム120は、新しい時間領域オーディオ入力サンプルのブロック220に基づき、ブロック130−1,…,130−(T−1)を、時間方向を示す矢印140と反対の方向に1ブロック分だけ移動させることにより、生成され得る。このように、処理されるべき時間領域オーディオ入力サンプルフレーム120は、直前の時間領域オーディオサンプルフレーム120の最新の(T−1)個のブロックを初期の方向に1ブロック分だけ移動させ、新たな時間領域オーディオ入力サンプルの新しいブロック220を、現在のフレーム120の最新の時間領域オーディオ入力サンプルを含む新しいブロック130−1として追加することにより生成される。このことは、図1において、一連の点線矢印230により、ブロック130−1,…,130−(T−1)の矢印140とは反対の方向への移動として示されている。
矢印140で示す時間方向とは反対の方向へのブロック130の移動により、直前のフレーム120の130−(T−1)というブロックは、処理すべき現在のフレーム120においては、130−Tのブロックとして含まれることになる。同様に、処理すべき現在のフレーム120のブロック130−(T−1),…,130−2は直前のフレーム120のブロック130−(T−2),…,130−2と等しい。直前のフレーム120のブロック130−Tは廃棄される。
従って、新しいブロック220内の時間領域オーディオサンプルは、時間領域オーディオ入力サンプルのT個の連続するフレーム120をT回連続して処理する間に、それぞれT回処理される。従って、新しいブロック220内の各時間領域オーディオ入力サンプルはT個の異なるフレーム120の一部となるだけでなく、T個の異なるウィンドウ処理後サンプルフレーム150及びT個のオーディオ副帯値ブロック180の一要因となる。前述したように、本発明の好ましい実施形態においては、フレーム120のブロックの個数Tは10であり、解析フィルターバンク100に与えられる各時間領域オーディオサンプルは、10個の異なるオーディオ副帯値ブロック180に影響する。
最初に、一つのフレーム120が解析フィルターバンク100によって処理される前に、そのフレーム120は小さな絶対値(既定の閾値未満)、例えば0に初期化され得る。以下に詳述するが、解析ウィンドウ関数190の形は、中心点または「質量の中心」を有し、それは典型的には第1グループ200の二つのウィンドウ係数指数の間に位置する。
従って、フレーム120が、少なくともフレーム120の部分がそのエネルギー値に関して重要な要因となるウィンドウ係数に相当する消失しない値(つまり0ではない値)で占められるような点まで埋められる前に、フレーム120に挿入される新しいブロック220の数は少ない。典型的には、「意味のある」処理が開始可能となる前にフレーム120に挿入されるべきブロックの数は、解析ウィンドウ関数190の形により、2〜4ブロックである。従って、解析フィルターバンク100は、例えば対称ウィンドウ関数を使用している対応するフィルターバンクよりも速くブロック180を提供することができる。典型的には新しいブロック220はひとまとめで解析フィルターバンク100に与えられるので、各新しいブロックは、基本的にブロック220の長さ(つまり、ブロック220に含まれる時間領域オーディオ入力サンプルの数)によって決まる記録またはサンプリング時間及びサンプリング速度またはサンプリング周波数に対応する。故に、本発明の実施形態に用いられるような解析ウィンドウ関数190は、オーディオ副帯値の第1及びそれに引き続くブロック180がフィルターバンク100によって提供または出力される前の遅延を小さくする。
さらなる選択として、装置100は、フレーム180を生成する際に使用される解析ウィンドウ関数190に関する情報または合成フィルターバンクの構造に使用されるべき合成ウィンドウ関数に関する情報を含む信号を生成してもよい。従って、解析フィルター関数190は、例えば、合成フィルターバンクによって使用されるべき合成ウィンドウ関数の時間逆転または指数逆転のものであってもよい。
図2aは、オーディオ副帯値ブロックに基づき時間領域オーディオサンプルを生成する装置300の一実施形態のブロック図を示す。前述したように、時間領域オーディオサンプルを生成する装置300としての本発明の一実施形態は、しばしば合成フィルターバンクとも称される。この装置は時間領域オーディオサンプルを生成することができ、時間領域オーディオサンプルは原則的に、オーディオ信号に関するスペクトル情報を含むオーディオ副帯値に基づき再生可能である。従って、合成フィルターバンク300は、オーディオ副帯値に基づき時間領域オーディオサンプルを合成することができるが、これらのオーディオ副帯値は例えば対応する解析フィルターバンク100によって生成できる。
図2aのブロック図に示す合成フィルターバンク300は計算機310を含み、そこに(周波数領域の)オーディオ副帯値が与えられる。計算機310は、ブロック320のオーディオ副帯値から、中間時間領域サンプル列を含むフレーム330を算出することができる。本発明の多くの実施形態において、中間時間領域サンプルフレーム330もまた、例えば図1の解析フィルターバンク100のウィンドウ処理後サンプルフレーム150と同様のブロック構造を有している。このような場合、フレーム330は中間時間領域サンプルのブロック340−1,…,340−Tを含む。
フレーム330の中間時間領域サンプル列及び中間時間領域サンプルの各ブロック340は、図2aの矢印350によって示されるような時間に基づく順序を有する。従って、フレーム330は、ブロック340−T内に初期の中間時間領域サンプル、そしてブロック340−1内に最新の中間時間領域サンプルを含み、それぞれのブロック340−T,340−1内のサンプルは、つまりフレーム330における最初と最後の中間時間領域サンプルである。また、各ブロック340も同様の順序を有している。つまり、合成フィルターバンクの実施形態において、「フレーム」という言葉と「列」という言葉はしばしば同意語として使用される。
計算機310は、中間時間領域サンプルフレーム330がそこに与えられる合成ウィンドウ処理部360と組み合わされている。合成ウィンドウ処理部は、図2aに概略的に示すように、合成ウィンドウ関数370を使用して中間時間領域サンプル列をウィンドウ処理するように構成されている。合成ウィンドウ処理部360は、一つの出力として、ウィンドウ処理後の中間時間領域サンプルフレーム380を提供し、このフレーム380もまたブロック390−1,…,390−Tというブロック構造を有している。
フレーム330と380は、それぞれT個(Tは正の整数)のブロック340,390を含んでいてもよい。合成フィルターバンク300としての本発明の好ましい実施形態において、ブロックの個数Tは10である。しかし、異なる実施形態において、それぞれのフレームのブロックの個数はこれと異なっていてもよい。より正確には、どちらもブロック構造である解析フィルターバンク100と合成フィルターバンク300を含む本発明の実施形態における実施環境や前述したトレードオフに応じて、ブロックの個数Tは原則的には3以上または4以上である。
合成ウィンドウ処理部360は重複加算出力部400と組み合わされ、そこにはウィンドウ処理後の中間時間領域サンプルが与えられる。重複加算出力部400は、時間領域サンプルのブロック410を得るために、ウィンドウ処理後の中間時間領域サンプルを処理することができる。時間領域(出力)サンプルは、その後、例えばさらなる処理、保存または視聴可能なオーディオ信号への変換のための別の部材に与えられ得る。
フレーム330に含まれる時間領域サンプル列を算出するための計算機310は、データを周波数領域から時間領域に変換可能である。故に、計算機310は、オーディオ副帯値ブロック320に含まれるスペクトル表示の時間領域信号を生成可能な周波数/時間変換機を含んでいてもよい。図1に示した解析フィルターバンク100の計算機170で説明したように、ブロック320の各オーディオ副帯値は、特徴的な中心周波数を有するオーディオ副帯チャンネルに相当する。
これとは対照的に、フレーム330に含まれる中間時間領域サンプルは、原則的に時間領域の情報である。合成ウィンドウ処理部360は、図2aに概略的に示すように、合成ウィンドウ関数370を使用してフレーム330に含まれている中間時間領域サンプル列をウィンドウ処理できる。
図1に関して述べたように、合成ウィンドウ処理部360もまた合成ウィンドウ関数370を使用し、この関数370は第2の数のウィンドウ係数を含むより大きなウィンドウ関数の補間によって得られるものである。第2の数は、従って、フレーム330の中間時間領域サンプルをウィンドウ処理するのに使用される合成ウィンドウ関数370のウィンドウ係数の個数(第1の数)よりも大きい。
合成ウィンドウ関数370は、例えば合成ウィンドウ処理部360、または前述した補間体系のうちの一つを実行するフィルターバンク300(装置)によって得られる。合成ウィンドウ関数のウィンドウ係数は、例えば、直線的、多項式的またはスプラインを基にした補間に基づき生成されてもよい。さらに、本発明の実施形態において、補間はより大きいウィンドウ関数の連続するウィンドウ係数を使用して行われる。より大きいウィンドウ関数のウィンドウ係数がそれぞれ正確に一度ずつ使用される場合、第2の数が偶数であるならば、ウィンドウ関数370に含まれるウィンドウ係数の数(より小さい第1の数)は、より大きいウィンドウ関数のウィンドウ係数の数の半分である。換言すれば、この場合、第2の数は第1の数の2倍である。しかし、他の補間方法や補間体系も本発明の実施形態に適用可能である。
以下に、いわゆる低遅延ウィンドウ関数の場合をより詳細に検討する。前述したように、本発明に係る実施形態はこれらのウィンドウ関数に限るものではない。また、対称ウィンドウ関数等の他のウィンドウ関数を用いてもよい。
合成ウィンドウ関数370はウィンドウ係数列を含み、このウィンドウ係数列は、前述したウィンドウ関数190がウィンドウ係数の第1グループ200と第2グループ210を含むのと同様に、ウィンドウ係数の第1グループ420と第2グループ430を含む。
合成ウィンドウ関数370のウィンドウ係数の第1グループ420はウィンドウ係数列の第1連続部分を含む。同様に、ウィンドウ係数の第2グループ430は係数列の第2連続部分を含む。第1部分は第2部分よりも少ないウィンドウ係数を有しているが、第1部分のウィンドウ係数のエネルギー値または全体的なエネルギー値は第2部分のウィンドウ係数のエネルギー値または全体的なエネルギー値よりも高い。さらに、合成ウィンドウ関数370の特徴及び特性は、図1に概略的に示す解析ウィンドウ関数190の特徴及び特性と同様であってもよい。従って、ここでは解析ウィンドウ関数190の構造について説明し、さらに図11〜19を参照したウィンドウ関数の説明においては、第1グループ200は第1グループ420に相当し、第2グループ210は第2グループ430に相当する。
例えば、ウィンドウ係数の二つのグループ420,430に含まれる各部分は、概して、ウィンドウ係数の連続接続部分を形成し、これらの連続接続部分はひとまとまりとして、ウィンドウ関数370のウィンドウ係数列の全てのウィンドウ係数を含む。本発明に係る多くの実施形態において、図1に示すような解析ウィンドウ関数190及び図2aに示すような合成ウィンドウ関数370は、互いを基礎としている。例えば、解析ウィンドウ関数190は合成ウィンドウ関数370の時間的逆転版または指数的逆転版であってもよい。しかし、これらの二つのウィンドウ関数190,370の間には他の関係も可能である。合成ウィンドウ関数370は、合成フィルターバンク300に与えられたオーディオ副帯値ブロック320の生成(さらなる処理の前の生成であってもよい)の際に使用された解析ウィンドウ関数190に関連する合成ウィンドウ処理部360の構造で使用されることが望ましい。
図1を参照して述べたように、図2aの合成フィルターバンク300は、入力されてくるブロック320がウィンドウ関数に関する付加的な信号または付加的な情報を含む場合に適合させたものであってもよい。一例として、ブロック320は、ブロック320の生成の際に使用された解析ウィンドウ関数190に関する情報、または合成ウィンドウ処理部360によって使用されるべき合成ウィンドウ関数370に関する情報を含んでいてもよい。このように、フィルターバンク300はそれぞれの情報を分離し、これらを合成ウィンドウ処理部360に与えるように構成されたものであってもよい。
重複加算出力装置400は、フレーム380に含まれるウィンドウ処理後の中間時間領域サンプルを処理することによって時間領域サンプルのブロック410を生成することができる。本発明の別の実施形態において、重複加算出力装置400は、以前に受信したウィンドウ処理後中間時間領域サンプルフレーム380を一時的に保存するためのメモリーを含んでいてもよい。実施の詳細により、重複加算出力装置400は、例えばウィンドウ処理後中間時間領域サンプルの全てのフレーム380(フレーム総数T)を記憶するためのメモリー内にT個の記憶部を有していてもよい。しかし、重複加算出力装置400内には、必要に応じてそれ以外の個数の記憶部があってもよい。さらに、本発明の別の実施形態において、重複加算出力装置400は中間時間領域サンプルの一つのフレーム380のみに基づき時間領域サンプルのブロック410を与えることができるものであってもよい。異なる合成フィルターバンク300の実施形態は後に詳述する。
図2bは、合成フィルターバンク300としての本発明に係る実施形態の機能的原理を示す。図2bにおいて、簡略化のために、補間によるウィンドウ関数370の生成は示していない。
オーディオ副帯値ブロック320は、最初に、図2b中矢印440で示すように、計算機310によって周波数領域から時間領域に変換される。その結果生じる中間時間領域サンプルブロック340はブロック340−1,…,340−Tを含み、その後、図2bには図示されていないが、合成ウィンドウ処理部360によってウィンドウ処理される。詳しくは、フレーム340の中間時間領域サンプル列に合成ウィンドウ関数370のウィンドウ係数列を掛けることで、ウィンドウ処理後の中間時間領域サンプルのフレーム380を得る。このフレーム380は、ウィンドウ処理後の中間時間領域サンプルのブロック390−1,…,390−Tを含み、これらのブロックがまとまってウィンドウ処理後中間時間領域サンプルフレーム380を形成している。
本発明に係る合成フィルターバンク300の図2bに示す実施形態において、その後、重複加算出力装置400は、ブロック410の時間領域オーディオサンプルのそれぞれの指数のために、異なるフレーム380の一つのブロック390のウィンドウ処理後中間時間領域サンプルを加算することで、時間領域出力サンプルのブロック410を生成する。図2bに示すように、ブロック410の時間領域オーディオサンプルは、各オーディオサンプル指数のために、前述したように今回合成ウィンドウ処理部360によって処理されたフレーム380内のブロック390−1の一つのウィンドウ処理後時間領域サンプルと、フレーム380の直前に処理され、重複加算出力装置400の記憶部に保存されているフレーム380−1内の第2ブロック390−2の中間時間領域サンプルを加算することによって得られる。図2bに示すように、以前に合成フィルターバンク300によって処理されたさらなるブロック390(例えばフレーム380−2の390−3、フレーム380−3のブロック390−4、フレーム380−4のブロック390−5)のウィンドウ処理後中間時間領域サンプルを使用してもよい。フレーム380−2,380−3,380−4及びさらなるフレームは以前に合成フィルターバンク300で処理されたものである。フレーム380−2はフレーム380−1の直前に処理され、フレーム380−3はフレーム380−2の直前に処理されたものである。
実施形態に使用されるような重複加算出力装置400は、時間領域(出力)サンプルブロック410の各指数を求めるために、T個の異なるフレーム380,380−1,…,380−(T−1)からのT個の異なるウィンドウ処理された中間時間領域サンプルブロック390−1,…,390−Tを合計する。従って、処理された最初のT個のブロックとは別に、ブロック410の各時間領域(出力)サンプルはオーディオ副帯値のT個の異なるブロック320に基づいている。
本発明の一実施形態である図1に示す解析フィルターバンク100の場合と同様に、合成ウィンドウ関数370の形のために、合成フィルターバンク300は時間領域(出力)サンプルブロック410を素早く与えることができる。これはまた、ウィンドウ関数370の形の結果である。ウィンドウ係数の第1グループ420はより高いエネルギー値を有し、第2グループ430よりも少ないウィンドウ係数を有するので、合成ウィンドウ処理部360は、少なくとも第1グループ420のウィンドウ係数がフレーム380の要因となるように中間時間領域サンプルのフレーム330が満たされると、ウィンドウ処理後サンプルの「意味のある」フレーム380を与えることができる。第2グループ430のウィンドウ係数は、それらが小さいエネルギー値しか持っていないために、それらの影響は小さい。
従って、合成フィルターバンク300は最初0に初期化され、原則的に、オーディオ副帯値のわずか数個のブロック320を受信しただけでブロック410を提供し始める。このように、合成フィルターバンク300もまた、例えば対称合成ウィンドウ関数を有する合成フィルターバンクと比較してかなりの遅延低下を可能にする。
前述したように、図1,2aに示す実施形態の計算機170,310は、それぞれブロック180,320の実数オーディオ副帯値を生成または処理する実数値計算機として実施可能である。これらの場合、計算機は例えば正弦関数または余弦関数等の調和振動関数に基づく実数値計算機であってもよい。また、複合値計算機も、計算機170,310として使用可能である。これらの場合、計算機は例えば複合指数関数または他の調和複合値関数に基づくものであってもよい。実数値振動または複合値振動の周波数は通常、オーディオ副帯値の指数に左右されるものである。オーディオ副帯値の指数は特定の副帯の帯域指数または副帯指数と称されることもある。さらに、周波数は対応する副帯の中心周波数と同じか、またはそれによって決まる。例えば、振動周波数に一定の因数を掛け、振動周波数が対応する副帯の中心周波数によって変化するようにするか、または両方の修正の組み合わせによって決まるようにしてもよい。
複合値計算機170,310は実数値計算機に基づき構成されてもよい。例えば、複合値計算機の有効な実施は、原則的に、複合値成分の実数部分及び仮想部分を表すフィルターバンクの余弦変調部分及び正弦変調部分両方のために使用できるものである。これは、例えば、修正DCT−IV構造及び修正DST−IV構造に基づき余弦修正部分及び正弦修正部分の両方を提供できるということを意味する。また、別の実施において、FFT(高速フーリエ変換)を随意に使用してもよい。複合変調計算機の実数部分と仮想部分の両方のために一つのFFT(高速フーリエ変換)が共通して使用されるか、または各変換のために別々のFFTが使用される。
数学的説明
前述したようなさらなる遅延を生じさせない過去への8ブロックの重複部分と、MDCT(修正離散余弦変換)/MDST(修正離散正弦変換)構造と同じ遅延を引き起こす未来への1ブロックの重複部分を有する解析フィルターバンク及び合成フィルターバンクの実施形態の一例について、以下に説明する。以下の例では、パラメータTは10である。
まず、複合変調低遅延解析フィルターバンクを説明する。図1に示すように、解析フィルターバンク100は、解析ウィンドウ処理部110によって行われる解析ウィンドウ処理、及び計算機170によって行われる解析変換という変換ステップを実行する。解析ウィンドウ処理は以下の式に基づき行われる。
zi,nは、図1に示すフレーム150のブロック指数i及びサンプル指数nに対応する(実数値の)ウィンドウ処理後のサンプルである。xi,nは、同じブロック指数i及びサンプル指数nに対応する(実数値の)時間入力サンプルである。解析ウィンドウ関数190は、式(1)中、その実数値のウィンドウ係数w(n)で表わされ、nは式(1)で示される範囲におけるウィンドウ係数指数である。前述したように、パラメータNは一つのブロック220,130,160,180内のサンプルの個数である。
解析ウィンドウ関数w(10N−1−n)の偏角から、この解析ウィンドウ関数は合成ウィンドウ関数の逆転版つまり時間逆転版であることがわかり、合成ウィンドウ関数は実際ウィンドウ係数w(n)で表わされるものである。
図1の実施形態において計算機170で実行される解析変調は、以下の二つの式に基づいている。
kはスペクトル係数指数または帯域指数であり、以下の範囲である。
値XReal,i,k及びXImag,i,kは、ブロック180のブロック指数iとスペクトル係数指数kに対応する複合値オーディオ副帯値の実数部分と仮想部分を示している。パラメータn0は指数オプションを示し、以下の式で表されるものである。
このフィルターバンクに相当する複合変調低遅延合成フィルターバンクは、以下に説明するように、合成変調、合成ウィンドウ処理及び重複加算という変換ステップを実行する。
合成変調は以下の式に基づき行われる。
x’i,nは、サンプル指数n及びブロック指数iに相当するフレーム330の中間時間領域サンプルである。パラメータNは、ブロック320,340,390,410の長さを示す整数であり、変換ブロック長、またはフレーム330,380のブロック構造のために前のブロックに対するオフセットとも称される。また、スペクトル係数指数kやオフセットn0等の他の変数やパラメータも導入されている。
図2aの実施形態において合成ウィンドウ処理部360によって実行される合成ウィンドウ処理は以下の式に基づいている。
z’i,nは、サンプル指数n及びフレーム380のブロック指数iに対応する中間時間領域サンプルの値である。
重複加算の変換ステップは以下の式に基づいて行われる。
outi,nは、サンプル指数n及びブロック指数iに対応する時間領域(出力)サンプルを示す。従って、式(8)は、図2bの下部に示す重複加算出力装置400で実行されるような重複加算処理を説明している。
しかし、本発明に係る実施形態はオーディオ信号処理を可能にする複合変調低遅延フィルターバンクに限るものではない。超低遅延オーディオ符号化のための実数値用の低遅延フィルターバンクもまた実施可能である。例えば、式(2),(6)はその余弦部分によって、解析変調及び合成変調への余弦の影響は、MDCTのそれと同等のものであることを示している。原則として、設計方法により、MDCTの時間に関する両方向への延長が可能であるが、T個のブロックのそれぞれがN個のサンプルを有している場合、ここでは過去へのE(=T−2)個のブロックの延長のみが可能である。NチャンネルまたはN帯域解析フィルターバンク内の帯域kとブロックiの周波数係数Xi,kは、以下のように集約される。
kは式(4)によって定義されるスペクトル係数指数である。ここでもまた、nはサンプル指数であり、Waは解析ウィンドウ関数である。
完全を期するため、複合変調低遅延解析フィルターバンクの前記数学的説明は、余弦関数を複合値指数関数に交換することで、式(9)のような集約形態として提示する。より正確には、前記の定義及び変数により、式(1),(2),(3),(5)は以下のように集約され、延長される。
式(2),(3)と比較して、過去への8ブロックの延長が変数E(=8)に置き換えられた。
合成変調及び合成ウィンドウ処理のステップは、式(6),(7)のような複雑な場合に関して説明したように、実数値の合成フィルターバンクの場合に集約可能である。ウィンドウ処理後時間領域サンプルフレーム380は復調ベクトルとも称されるものであるが、これは以下の式(11)によって与えられる。
z’i,nは、帯域指数i及びサンプル指数nに対応するウィンドウ処理後の時間領域サンプルである。サンプル指数nは以下の範囲の整数である。
ws(n)は合成ウィンドウであり、式(9)の解析ウィンドウwa(n)と合致している。
重複加算の変換ステップは、以下の式で与えられる。
x’i,nは、再生された信号、正確に言えば、図2aに示す重複加算出力装置400によって与えられるブロック410の時間領域サンプルである。
複合値合成フィルターバンク300のために、式(6),(7)は以下の式により、E(=8)個のブロックの過去への延長に関して集約され、一般化される。
j=√(−1)は仮想単位である。式(13)は式(8)の一般化された形態を示し、また、複合値の場合にも有効なものである。
式(14)と式(7)を直接比較すると、式(7)のウィンドウ関数w(n)は式(14)の合成ウィンドウ関数ws(n)と同じである。前述したように、解析ウィンドウ関数係数wa(n)を有する式(10)と式(1)を比較すると、解析ウィンドウ関数は式(1)の合成ウィンドウ関数の時間逆転版であることがわかる。
図1の解析フィルターバンク100及び図2aの合成フィルターバンクのどちらにおいても、一方では遅延、他方ではオーディオ処理の質との間のトレードオフに関してかなりの向上が見られるので、これらのフィルターバンク100,300はしばしば低遅延フィルターバンクと称される。これらの複合値用のものは複合値低遅延フィルターバンクと称されることもあり、CLDFBと省略される。CLDFBという言葉は、複合値フィルターバンクに限らず実数値フィルターバンクにも使用される場合がある。
以上検討したような数学的背景が示すように、ここで提案する低遅延フィルターバンクを実施するための構造は、MPEG−4標準から知られており、延長重複を使用するMDCTまたはIMDCT(逆転MDCT)構造を利用するものである。追加の重複部分は、MDCTのようなコアの右側だけでなく左側にも、ブロックごとに付け加えることができる。ここでは、(合成フィルターバンクの場合)右側への延長のみが行われ、この延長は過去のサンプルからのみであり、故にさらなる遅延を引き起こすことはない。
式(1),(2),(14)を参照すると、この処理はMDCTまたはIMDCTの処理と非常に似ていることがわかる。修正解析ウィンドウ関数と修正合成ウィンドウ関数を含むわずかな修正により、MDCTまたはIMDCTは、多層重複部を扱うことができ、その遅延に関して非常に融通性のある変調フィルターバンクにまで拡大される。例えば、複合版を示す式(2),(3)は、原則的に、単に余弦変調に正弦変調を付加することで得られる。
補間
図1,2aに関して説明したように、解析ウィンドウ処理部110と合成ウィンドウ処理部360、またはフィルターバンク100,300は、各時間領域オーディオサンプルに個々のウィンドウ係数を掛けることで、それぞれの時間領域サンプルフレームをウィンドウ処理するように構成されている。つまり、式(1)、(7),(9),(10),(11),(14)が示しているように、各時間領域サンプルは、(個々の)ウィンドウ係数で掛けられる。従って、それぞれのウィンドウ関数のウィンドウ係数の個数は、概して時間領域オーディオサンプルの個数と等しい。
しかし、ある実施状況においては、より少ない第1の個数の係数を有し、それぞれの時間領域オーディオサンプルフレームまたは列をウィンドウ処理するのに使用される実際のウィンドウ関数に比べて、より多い第2の個数のウィンドウ係数を有するウィンドウ関数を使用することの方が良い場合もある。これは、例えば特定の実施のために必要なメモリー容量がコンピュータ処理の能率よりも重要である場合に薦められる。ウィンドウ係数のダウンサンプリングが有効である別の場合は、例えばSBR(スペクトル帯域再生)システムの構造に用いられる、いわゆる二種速度方法の場合である。SBRの概念は、図5,6を参照して後述する。
このような場合、解析ウィンドウ処理部110または合成ウィンドウ処理部360は、また、それぞれのウィンドウ処理部110,360に与えられた時間領域オーディオサンプルをウィンドウ処理するのに使用される各ウィンドウ関数が、より多くの(第2の数の)ウィンドウ係数を有するより大きなウィンドウ関数のウィンドウ係数の補間により導き出されるように、構成されている。
この補間は、例えば直線的、多項式的またはスプラインに基づく補間である。例えば、直線的補間の場合だけでなく多項式的またはスプラインに基づく補間の場合にも、それぞれのウィンドウ処理部100,360は、ウィンドウ関数の一つのウィンドウ係数を得るために、より大きいウィンドウ関数のウィンドウ係数列に応じた、より大きなウィンドウ関数の二つの連続したウィンドウ係数に基づき、ウィンドウ処理に使用されるウィンドウ関数のウィンドウ係数を補間可能であってもよい。
特に時間領域オーディオサンプルとウィンドウ係数の個数が偶数である場合、前述したような補間の実行はオーディオの質の点でかなりの向上をもたらす。例えば、フレーム120,330のいずれか一つの時間領域オーディオサンプルが偶数N・Tである場合、直線的補間等の補間を実行しなければ、それぞれの時間領域オーディオサンプルのさらなる処理の間に深刻なエイリアシング効果が起こることになる。
図3は、N・T/2個の時間領域オーディオサンプルを含むフレームの場合に使用されるべきウィンドウ関数(解析ウィンドウ関数または合成ウィンドウ関数)に基づく直線的補間の例を示す。メモリーの制限や他の詳細な実施状況により、ウィンドウ関数自身のウィンドウ係数はメモリーに保存されず、N・T個のウィンドウ係数を含むより大きいウィンドウ関数が適当なメモリーに保存されているかまたは何らかの方法で入手可能である。図3の上部グラフは、0〜N・T−1の間のウィンドウ係数指数nの関数として、それに相当するウィンドウ係数c(n)を示す。
より多くの数のウィンドウ係数を有するウィンドウ関数の二つの連続したウィンドウ係数の直線的補間に基づき、図3の上部グラフに示すように、補間されたウィンドウ関数は以下の式により算出される。
N・T/2個の時間領域オーディオサンプルを有するフレームに応用されるウィンドウ関数の補間されたウィンドウ係数ci(n)の個数は、ウィンドウ係数の数の半分である。
これをさらに説明するために、図3の上部に、ウィンドウ係数450−0,…,450−7が示され、これらはウィンドウ係数c(0),…,c(7)に相当するものである。これらのウィンドウ係数及びウィンドウ関数のさらなるウィンドウ係数に基づき、式(15)を使用して、図3の下部に示すような補間後のウィンドウ関数のウィンドウ係数ci(n)を導き出す。例えば、ウィンドウ係数450−2,450−3に基づき、図3の矢印470で示されているように、ウィンドウ係数460−1が式(15)より生成される。同様に、補間後のウィンドウ関数のウィンドウ係数460−2は、図3の上部に示すウィンドウ関数のウィンドウ係数450−4,450−5に基づき算出される。図3はさらなるウィンドウ係数ci(n)の生成を示している。
ウィンドウ関数の補間ダウンサンプリングにより達成できるエイリアシング解消を説明するために、図4に、例えばMDCTに使用され得る正弦ウィンドウ関数の場合のウィンドウ係数の補間を示す。簡略化のために、このウィンドウ関数の左半分と右半分を重ねて示している。図4に示されているものは、8個のサンプル長を有するMDCTのためのたった2・4の個のウィンドウ係数またはポイントしか含まない簡単な正弦ウィンドウである。
図4は、正弦ウィンドウの前半の4個のウィンドウ係数480−1,480−2,480−3,480−4及び正弦ウィンドウの後半の4個のウィンドウ係数490−1,490−2,490−3,490−4を示す。ウィンドウ係数490−1,…,490−4はウィンドウ係数指数5,…,8に対応する。ウィンドウ係数490−1,…,490−4はウィンドウ関数長さの後半に相当し、実指数を得るために、指数にN’=4が与えられる。
前述したようにエイリアシング効果の低下または解消を達成するために、ウィンドウ係数は可能な限り以下の条件を満たす。
条件(16)に近づけば近づくほど、エイリアシングの低下または解消が良くなる。
半分の数のウィンドウ係数を有する新しいウィンドウ関数がウィンドウ関数の左半分のために決定されるとすると、以下の問題が生じる。ウィンドウ関数は偶数個のウィンドウ係数(偶数個のダウンサンプリング)を含むという事実のために、図3に示すような補間体系を使用しないでも、ウィンドウ係数480−1,480−3または480−2,480−4が元のウィンドウ関数または元のフィルターのただ一つのエイリアシング値に相当する。
このことは、スペクトルエネルギーの不均衡な割合と対応するウィンドウ関数の中心周波数(質量の中心)の非対称な再分配をもたらす。図4のウィンドウ係数w(n)のための補間式(15)に基づき補間された値I1,I2はエイリアシングの条件(16)をよりよく満たし、従って処理されたオーディオデータの質のかなりの向上をもたらす。
しかし、より精巧な補間体系、例えばスプラインに基づく補間体系またはそれと同様の別の補間体系を使用することにより、条件(16)をさらによりよく満たすウィンドウ係数が得られる。多くの場合、直線的な補間が十分な成果をもたらし、速く能率的な実施を可能にする。
SBR−QMFフィルターバンク(QMF=方形ミラーフィルター)を使用した典型的なSBRシステムの場合には、このSBR−QMFプロトタイプフィルターは奇数個のプロトタイプフィルター係数を含むので、直線的補間もまた他の補間体系も実行される必要がない。このことは、SBR−QMFプロトタイプフィルターが、SBR−QMFプロトタイプフィルターの対称性が全く損なわれないようにダウンサンプリングが実施され得る最大値を有していることを意味する。
図5,6では、解析フィルターバンク及び合成フィルターバンク両方の形での本発明に係る実施形態の可能な応用を説明する。一つの重要な応用分野はSBRシステムまたはSBR装置(SBR=スペクトル帯域再生)である。しかし、本発明はさらに他の分野でも応用できる。他の分野とは、空間的オーディオ対象符号化、低遅延パラメータのステレオ符号化、低遅延空間的/サラウンド符号化、フレーム損失隠蔽、エコー消去または他の同様の応用等の、スペクトル修正(ゲイン修正または均一化)の必要性がある分野のことである。
SBRの背後にある基本的な考えは、通常、同じ信号の、高周波域(いわゆる高帯域信号と称される)の特徴と低周波域(低帯域または低帯域信号と称される)の特徴との間に関連性があるというものである。従って、元の入力信号の高帯域の再生は、低帯域から高帯域への置換によって、より近似的に行われ得る。
置換に加えて、高帯域の再生は、ゲイン調整を含むスペクトルエンヴィロープの整形を含む。この工程は、概して元の入力信号の高帯域スペクトルエンヴィロープの送信によって制御される。置換だけでは十分ではないと思われる場合、エンコーダから送られるさらなるガイダンス情報が、オーディオ材料を扱うための逆転フィルターや正弦加算機等のさらなる合成モジュールを制御する。対応するパラメータは、ノイズの合計のためのパラメータ「ノイズ高帯域」と正弦加算のためのパラメータ「調性高帯域」を含む。これらのガイダンス情報は通常SBRデータと称される。
SBR処理は、エンコーダでの前処理及びデコーダでの後処理による従来の波形またはコーデックと組み合わされてもよい。SBRはオーディオ信号の高周波部分を非常に低コストで符号化し、オーディオコーデックは信号の低周波部分を符号化するのに使用される。
エンコーダ側において、元の入力信号が解析され、高帯域スペクトルエンヴィロープ及び低帯域に対するそれの特徴が符号化され、その結果得られるSBRデータに低帯域のためのコーデックからのビットストリームで多重化される。デコーダ側において、SBRデータはまず単一化される。復号化工程は一般的にいくつかのステップから成り立っている。まず、コアデコーダが低帯域を生成し、次に、SBRデコーダが、スペクトル帯域再生をガイドするために、復号化されたSBRデータを使用して後処理装置として動作する。そして、全帯域出力信号が得られる。
できる限り高い符号化能率を得るために、そしてコンピュータ処理の複雑性を低く抑えるために、SBR機能の高いコーデックがいわゆる二種速度システムとして実行されることがよくある。二種速度とは、帯域限定のコアコーデックが、外部オーディオサンプリング速度の半分の速度で動作することを意味する。対照的に、SBR部分はサンプリング周波数全体において処理される。
図5はSBRシステム500の概略ブロック図を示す。SBRシステム500は、例えばAAC−LDエンコーダ(AAC−LD=高度オーディオ低遅延コーデック)510及びSBRエンコーダ520を含み、処理されるべきオーディオデータはそれらに並列的に与えられる。SBRエンコーダ520は解析フィルターバンク530を含み、それは、図5中、QMF解析フィルターバンクとして示されている。解析フィルターバンク530は、SBRシステム500に与えられるオーディオ信号に基づき、副帯に相当する副帯オーディオ値を提供することができる。これらの副帯オーディオ値はSBRパラメータ抜粋モジュール540に送られ、このモジュール540は、例えば高帯域のためのスペクトルエンヴィロープ、高帯域ノイズパラメータ及び高帯域調性パラメータを含む前述したようなSBRデータを生成する。これらのSBRデータはAAC−LDエンコーダ510に送られる。
AAC−LDエンコーダ510は、図5中、二種速度エンコーダとして示されている。換言すれば、エンコーダ510は、そこに入力されるオーディオデータのサンプリング周波数と比較すると、その半分の周波数で動作する。これを容易にするために、AAC−LDエンコーダ510は、ダウンサンプリング部550を有し、それは、例えばナイキスト−シャノン理論を破ったために生じる歪曲を避けるために、随意にローパスフィルターを有していてもよい。ダウンサンプリング部550の出力としてのダウンサンプルされたオーディオデータは、それからMDCTフィルターバンクという形態のエンコーダ560(解析フィルターバンク)に送られる。エンコーダ560によって出力される信号は、その後、量子化・符号化部570において量子化、符号化される。さらに、SBRパラメータ抜粋モジュール540によって生成されるSBRデータもまたビットストリームを得るために符号化され、このビットストリームはその後ACC−LDエンコーダ510から出力される。量子化・符号化部570は、例えば人の耳の聴覚特性に応じてデータを量子化する。
ビットストリームは、その後、このビットストリームが送られるデコーダ側の一部であるAAC−LDデコーダ580に与えられる。AAC−LDデコーダは復号化・復量子化部590を含み、これは、ビットストリームからSBRデータを抜粋し、量子化されたオーディオ信号を低帯域の周波数領域に戻す。その後、低帯域データは合成フィルターバンク600(逆転MDCTフィルターバンク)に送られる。逆転MDCT部(MDCT-1)600は、時間信号を得るために、与えられた信号を周波数領域から時間領域に変換する。この時間領域信号はその後SBRデコーダ610に与えられる。SBRデコーダ610は、解析フィルターバンク620を含み、これは、図5中、QMF解析フィルターバンクとして示されている。
解析フィルターバンク620は、そこに与えられた低帯域を表す時間信号のスペクトル解析を行う。これらのデータはその後、HF生成部とも称される高周波生成部630に送られる。AAC−LDデコーダ580及びその復号化・復量子化部590によって与えられたSBR信号に基づき、HF生成部630は解析フィルターバンク620により与えられた低帯域信号から高帯域信号を生成する。低帯域信号、高帯域信号のどちらも、その後合成フィルターバンク640に送られ、それらの信号は周波数領域から時間領域に変換される。そして、SBRシステム500からの時間領域オーディオ出力信号が得られる。
完全を期するために、多くの場合、SBRシステム500は図5に示すようには実施されてはいないことを明記しておく。より正確には、AAC−LDエンコーダ510及びSBRエンコーダ520は、通常、エンコーダ側に配置され、エンコーダ側は、通常、AAC−LDデコーダ580及びSBRデコーダ610を含むデコーダ側とは分かれて設置されている。換言すれば、図5に示すシステム500は、本来的に二つのシステム、つまり前記エンコーダ510,520を含むエンコーダと前記デコーダ580,610を含むデコーダとの連結を示すものである。
解析フィルターバンク100及び合成フィルターバンク300という形での本発明に係る実施形態は、例えば、図5に示すシステム500において、解析フィルターバンク530,620及び合成フィルターバンク640の代わりに用いてもよい。つまり、システム500のSBR部品である合成フィルターバンクと解析フィルターバンクは、例えば本発明のそれぞれ相当する実施形態に置き換えられる。また、MDCT560と逆転MDCT600も、それぞれ低遅延解析フィルターバンクと合成フィルターバンクとに置き換えられる。このような置換がすべて行われた場合、いわゆる超低遅延AACコーデック(AACコーダ・デコーダ)が実現できる。
この超低遅延AAC(AAC−ELD)は、SBRをAAC−LDと共に用いることにより、AAC−LD(低遅延高度オーディオコーデック)の低遅延特徴とHE−AAC(高能率高度オーディオコーデック)の高い符号化能率を組み合わせようとするものである。SBRデコーダ610は、この場合、完全な解析フィルターバンクと合成フィルターバンク640を含むコアデコーダ580の後に設置される後処理装置として機能する。故に、SBRデコーダ610の部品はさらなる復号遅延を生じさせ、これは、図5中、部分620,630,640への斜線で示されている。
SBRシステム500の実施の多くの場合、0kHzから概して5〜15kHZの低周波域または低帯域は、コアコーデックと称される波形コーダを使用して符号化される。コアコーデックは、例えばMPEGオーディオコーデックのうちの一つである。さらに、高周波域または高帯域の再生は低帯域の転移によって行われる。SBRとコアコーダとの組み合わせは、多くの場合、二種速度システムとして実施され、このシステムでは、基本的なAACエンコーダ/デコーダは、SBRエンコーダ/デコーダのサンプリング速度の半分の速度で動作する。
制御データの大部分はスペクトルエンヴィロープ表示のために使用され、スペクトルエンヴィロープ表示は、できる限り小さいビットレートで最大限にSBR処理を制御できるように、変動時間周波数分解を有する。他の制御データは、主に、高帯域の調性−ノイズ率を制御するのに使用される。
図5に示すように、基本的なAACデコーダ580からの出力は一般的に32チャンネルQMFフィルターバンク620で解析される。そして、HF生成モジュール630は、存在する低帯域から高帯域までのQMF副帯を修正することによって高帯域を再生する。さらに、ビットストリームから得られる制御データ(SBRデータ)に基づき、副帯ごとに逆フィルタリングが行われる。エンヴィロープアジャスターは、再生された高帯域のスペクトルエンヴィロープを修正し、ノイズのようなさらなる部分を付加する。これにより、ビットストリームの制御データに応じたしなやかさが付け加えられる。全ての動作が周波数領域(QMFまたは副帯領域としても知られている)で行われ、デコーダ610の最後の段階は、時間領域信号を保持するためのQMF合成640である。例えば、1024個の時間領域サンプルのために、エンコーダ側のQMF解析が32のQMF副帯システムで行われる場合、高周波再生は64QMF副帯を生じさせ、それに基づく合成は2048個の時間領域サンプルを生み出すことになり、比率が2のアップサンプリングが行われることになる。
また、コアコーダ510の遅延は、二種速度モードで元のサンプリング速度の半分の速度で動作することにより、倍加され、このことは、SBRと組み合わせたAAC−LDの符号化及び復号化処理両方において遅延源が増すことになる。以下に、このような遅延源と、それらに関する遅延の最小化を検討する。
図6は、図5に示したシステムの簡易化されたブロック図である。図6は、SBRと低遅延フィルターバンクを使用する符号化/復号化処理における遅延源に焦点を当てたものである。図6を図5と比較すると、MDCT560と逆MDCT600が、遅延最適化モジュール、いわゆる低遅延MDCT560’(LD MDCT)と低遅延逆MDCT600’(LD IMDCT)に置き換えられている。さらに、HF生成器630もまた遅延最適化モジュール630’に置き換えられている。
図6のシステムには、低遅延MDCT560’や低遅延逆MDCT610’とは別に、修正SBRフレーム・修正HF生成器630’が用いられている。コアエンコーダ/デコーダ560,600のフレームとそれぞれのSBRモジュールを異ならせることで遅延を避けるために、SBRフレーム生成器は480のフレーム長またはAAC−LDの512個のサンプルに適合している。さらに、HF生成器630の可変時間グリッドは遅延の384のサンプルを含み、互いに隣接するAC−LDフレームに関するSBRデータの拡散に関して制限されている。これにより、SBRモジュールにおいて未だ遅延源であるのはフィルターバンク530,620,640である。
図6はAAC−ELDコーデックの一部実施を示しているが、この場合、AAC−LDコアの低遅延フィルターバンクの使用と前述したSBR重複の除去を含む、いくらかの遅延最適化が行われたものである。さらなる遅延向上のために、残りのモジュールに関しても検討する必要がある。図6は、SBRとLD−MDCTとLD−IMDCTと呼ばれる低遅延フィルターバンクを使用する符号化/復号化処理における遅延源を示している。図5とは対照的に、図6に示す全ての部分が遅延源であり、そのうち遅延最適化モジュールは斜線で示されている。その他のモジュールは、この時点では、低遅延のための最適化が行われていない。
図7aは、解析フィルターバンク、またはそれに対応するオーディオ副帯チャンネルのオーディオ副帯値を生成する方法という形での本発明の一実施形態を説明するためのC−またはC++−偽コードを含むフローチャートである。より正確には、図7aは、32帯域のための複合値解析フィルターバンクのフローチャートである。
前述したように、解析フィルターバンクは時間領域信号、例えば、コアコーダからの出力をN=32の副帯信号に分けるものである。複合値解析フィルターバンクの場合、そのフィルターバンクの出力、つまり副帯サンプルまたはオーディオ副帯値は、実数値フィルターバンクの場合と比較すると、複合値、つまり2の比率でオーバーサンプルされたものである。フィルタリングは以下に説明するステップを含み、一つのアレイx(n)が正確に320個の時間領域サンプルを含むものである。アレイのサンプル指数nが高ければ高いほど、サンプルは古いものである。
本実施形態の方法がステップS100で開始され、その後、最初にステップS110でアレイx(n)のサンプルが32個の位置分移動させられる。最も古い32個のサンプルが廃棄され、ステップS120で、32個の新しいサンプルが位置31〜0に保存される。図7aに示すように、入力される時間領域オーディオサンプルは、31から0まで減少していく指数nで示される位置に保存される。これは、相当するフレームまたはベクトルに保存されたサンプルを時間逆転することになり、(同じ長さの)合成ウィンドウ関数に基づき解析ウィンドウ関数を得るためのウィンドウ関数の逆転がすでに行われたことになる。
ステップS130では、式(15)に基づき係数c(j)の直線的補間を行うことにより、ウィンドウ係数ci(j)が得られる。この補間は、N=64というブロックサイズ値(ブロック長または副帯値の数)及びT=10という1フレーム中のブロック数に基づいている。従って、補間後のウィンドウ関数のウィンドウ係数の指数は、式(15)より、0〜319の範囲にある。ウィンドウ係数c(n)は、本明細書の付録1の表に示す。しかし、実施の詳細により、付録1,3の表に示す値に基づくウィンドウ係数を得るために、指数128〜255と指数384〜511に対応するウィンドウ係数に関して、符号変換(比率−1の掛け算)がさらに必要となる場合がある。
これらの場合、使用されるべきウィンドウ係数w(n)またはc(n)は以下の式に基づき得られる。
符号変換関数s(n)は以下に基づいている。
n=0〜639であり、Wtable(n)は、付録の表に示す値である。
しかし、ウィンドウ係数は、例えば前述したような遅延低下のために付録1の表に基づき実施される必要はない。処理後のオーディオデータの質を保ちながらこの遅延低下を達成するために、または別のトレードオフを達成するために、0〜639の範囲のウィンドウ係数指数nのためのウィンドウ係数c(n)は付録2〜4のうちのいずれか一つに示されている関係を満たしていてもよい。付録1〜4の表は640個のウィンドウ係数を有するウィンドウ関数に応用されるものであるが、当然、320または640以外の別の個数のウィンドウ係数を有する他のウィンドウ関数も使用可能である。
ステップS130の直線的補間は、偶数個のウィンドウ係数を有するウィンドウ関数の場合、かなりの質の向上及びエイリアシング効果の低下または解消につながる。複合単位は、式(1),(2),(16)のようなjではなく、i=√(−1)によって示されている。
ステップS140では、アレイx(n)のサンプルは補間後のウィンドウ係数ci(n)で素子ごとに掛け算される。
ステップS150では、64個の素子を有するアレイu(n)を生成するために、ウィンドウ処理後のサンプルが図7aのフローチャートに示されている式に基づき合計される。ステップS160では、32個の新しい副帯サンプルまたはオーディオ副帯値W(k,1)がマトリックス処理Muにより算出され、マトリックスMの素子は以下の式で与えられる。
exp()は複合指数関数を示し、前述したように、iは仮想単位である。フローチャートの循環がステップS170で終わる前に、各副帯値W(k,1)(=W[k][l])が出力され、それは指数kを有する副帯の副帯サンプルlに相当する。換言すれば、図7aのフローチャートの一巡の間に、それぞれが一つのフィルターバンク副帯からの出力を表す32個の複合副帯値が生成される。
図7bは、10ブロック160−1、…,160−10のウィンドウ処理後の時間領域オーディオサンプルz(n)を含むウィンドウ処理後の時間領域オーディオサンプルフレーム150を、フレーム150のブロックを二つずつ、5回合算することでベクトルu(n)に分解するステップS150を示している。この分解または再構成は素子ごとに行われ、160−1、160−3,160−5,160−7,160−9の各ブロック内の同じサンプル指数に対応するウィンドウ処理後の時間領域オーディオサンプルが合計され、ベクトルu(n)の第1ブロック650−1内に対応する値が得られる。ステップS150では、同様に、160−2,160−4、160−6,160−8,160−10のブロックに基づき、ベクトルu(n)のブロック650−2内に対応する素子が得られる。
解析フィルターバンクという形での本発明に係る別の実施形態は、64帯域複合低遅延フィルターバンクとして実施できるものである。この複合低遅延フィルターバンクの解析フィルターバンクとしての処理は、基本的に図7aを参照して説明した解析フィルターバンクと同様のものである。図7aに関して説明した処理と類似であり基本的に同じであるので、ここでは、64副帯のための複合解析フィルターバンクの、図7aに関して説明した32帯域のための複合解析フィルターバンクとの違いについて概略的に説明する。
図7aに示すような解析フィルターバンクを含む32副帯のものと比較して、64副帯解析フィルターバンク640の場合、フレームx(n)のベクトルは0〜639の指数を有する素子を含む。従って、ステップS110は、アレイx(n)のサンプルが64個の位置分移動させられるように、変更される。ステップS120において、32個ではなく64個の新しいサンプルが位置63〜0に保存される。図7cに示すように、入力されてくる時間領域オーディオサンプルは63〜0まで減少する指数nに対応する位置に保存される。これは、相当するフレームまたはベクトルに保存されたサンプルを時間逆転することになり、(同じ長さの)合成ウィンドウ関数に基づき解析ウィンドウ関数を得るためのウィンドウ関数の逆転がすでに行われたことになる。
フレームx(n)のベクトルの素子のウィンドウ処理に使用されるウィンドウc(n)は概して640個の素子を含んでいるので、ウィンドウ処理されたウィンドウci(n)を得るためのウィンドウ関数の直線的補間のステップS130は省略できる。
そして、ステップS140においては、ウィンドウ係数列c(n)を使用してアレイx(n)のサンプルの掛け算またはウィンドウ処理が行われる。ウィンドウ係数列c(n)は付録1の表中の値に基づくものである。ウィンドウ係数c(n)が合成ウィンドウ関数のものである場合、アレイx(n)のウィンドウc(n)によるウィンドウ処理または掛け算は以下の式に応じて行われる。
n=0,…,639である。ここでもまた、ウィンドウ関数の低遅延特性を達成するために、必ずしも正確に付録1の表に示す値に基づくウィンドウ係数に応じたウィンドウ関数を採用する必要はない。多くの応用において、質と遅延の低下との間の許容できるトレードオフを達成するためには、ウィンドウ係数が付録2〜4の表のうちのいずれかに示されている関係を満たすものであれば十分である。しかし、実施の詳細によっては、付録1〜3の表に示されている値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に対応するウィンドウ係数に関し、式(16a),(16b)に基づく符号変換(比率−1の掛け算)がさらに必要となる場合がある。
図7aに示すフローチャートのステップS150は、128個の素子を有するアレイu(n)を生成するために、以下の式(19)に基づくフレームz(n)のベクトルのサンプルの合計に置き換えられる。
そして、図7aのステップS160は、64個の新しい副帯サンプルがマトリクス処理Muに基づき計算されるステップに置き換えられる。このマトリクス処理において、マトリクスMのマトリクス素子は以下の式によって与えられる。
式(20)中、exp()は複合指数関数を示し、iは前述したように仮想単位である。
図7cは、32副帯チャンネルのための実数値解析フィルターバンクという形での本発明に係る実施形態のフローチャートを示している。図7cに示す実施形態は、図7aに示す実施形態とは重要な違いはない。これら二つの実施形態の間の主な違いは、新しい32個の複合値副帯オーディオ値を計算するステップS160が、図7cにおいては、32個の実数値副帯オーディオサンプルがマトリクス処理Mruに基づき計算されるステップS162に置き換えられていることである。マトリクスMrの素子は以下の式によって与えられる。
従って、フローチャートの一巡は32個の実数値副帯サンプルを生成し、W(k、l)は、副帯kの副帯オーディオサンプルlに相当する。
実数値解析フィルターバンクは、図5に示すように、例えばSBRシステムの低電源モード構造に使用され得る。SBR装置の低電源モードは、主に実数値フィルターバンクが使用されているという点で、高性能SBR装置とは異なっている。これは、仮想部分の計算を必要としないので、2の比率でコンピュータ処理の複雑さ及びコンピュータ処理の手間を低減させ、単位時間あたりの処理数は基本的に2の比率で減じられる。
本発明によって提案される新たなフィルターバンクはSBRシステムの低電源モードにも十分適合するものである。従って、本発明のフィルターバンクを使用すれば、SBRシステムは、通常モードつまり複合フィルターバンクを使用する高性能モード及び実数値フィルターバンクを使用する低電源モードのどちらにおいても動作可能である。実数値フィルターバンクは、例えば実数値(余弦変調によるもの)のみを使用し、仮想値(正弦変調によるもの)を省略することにより、複合フィルターバンクから導き出されるものであってもよい。
図8aは、64個の副帯チャンネルのための複合値合成フィルターバンクという形での本発明の別の例に基づくフローチャートを示している。前述したように、SBR処理された副帯信号の合成フィルタリングは、64個の副帯のための合成フィルターバンクを使用して行われる。このフィルターバンクからの出力は、図1に関して説明したように、1ブロックの実数値時間領域サンプルである。この処理は図8aのフローチャートによって説明され、図8aはまた、時間領域オーディオサンプルを生成する方法という形の例を示すものである。
合成フィルタリングは、開始(ステップS200)後、以下のようなステップを含み、一つのアレイvは1280個のサンプルを含む。ステップS210において、アレイvのサンプルは128個の位置分移動させられ、最も古い128個のサンプルが廃棄される。ステップS120では、64個の新しい複合値オーディオ副帯サンプルがマトリクスNによって掛けられ、マトリクス素子N(k、n)は以下の式によって与えられる。
式中、exp()は複合指数関数を示し、iは仮想単位を示す。図8aに示すように、この処理の出力の実数部分は、アレイvの位置0〜127に保存される。
ステップS230において、今や時間領域であるサンプルが図8aに示されている式に基づきアレイvから抜粋され、640個の素子を有するアレイg(n)が生成される。ステップS240では、アレイwを生成するために、アレイgの時間領域の実数値サンプルをウィンドウ係数c(n)で掛ける。これらのウィンドウ係数c(n)は、付録1の表に示されている値に基づくものである。
しかし、前述したように、ウィンドウ係数は必ずしも正確に付録1の表によって与えられる値である必要はない。異なる比較例においては、付録2〜4の表のいずれかに示されている関係を満足するウィンドウ係数であれば、合成フィルターバンクの望ましい低遅延特性を達成するのに十分である。さらに、解析フィルターバンクに関して説明したように、合成フィルターバンクの構造に他のウィンドウ係数が使用されてもよい。しかし、実施の詳細により、付録1〜3の表によって与えられる値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に対応するウィンドウ係数に関する符号変換(比率−1の掛け算)がさらに必要となる場合がある。
図8aのフローチャートの一巡がステップS260で終了する前に、ステップS250で、このフローチャートの最後のステップとして示されている式に基づくアレイw(n)からのサンプルの合計によって、64個の新しい出力サンプルが算出される。図8aに示すフローチャートにおいて、X[k][l](=X(k,l))は指数kを有する副帯のオーディオ副帯値lに相当する。図8aに示すような新たな一巡は、その出力として、64個の時間領域実数値オーディオサンプルを生成する。
64個の帯域のための複合値解析フィルターバンクの図8aに示すような実施は、図2bに示す実施形態に関して説明したようないくつかの記憶領域を含む重複・加算バッファを必要としない。ここでは、重複・加算バッファはベクトルv,gに「かくれて」いる。ベクトルgはベクトルvに保存された値に基づき計算される。重複・加算バッファは、指数が128よりも大きいこれらのベクトルの構造内で実現され、その結果、値は以前のブロックからのものと同じである。
図8bは、64個の実数値オーディオ副帯チャンネルのための実数値合成フィルターバンクのフローチャートを示している。図8bに係る実数値合成フィルターバンクは、低電源SBR装置の場合、SBRフィルターバンクとして実施され得る。
図8bのフローチャートは、主にステップS222が図8aのステップS220に取って代わっているという点で、図8aのフローチャートとは異なっている。ステップS222では、64個の新しい実数値オーディオ副帯値がマトリクスNrで掛け算され、このマトリクスの素子Nr(k,n)は以下の式によって与えられる。
この処理の出力は、ここでもまた、アレイvの位置0〜127に保存される。
これらの変更以外に、低電源SBRモードのための実数値合成フィルターバンクの場合の図8bに示すフローチャートは、高性能SBRモードのための複合値合成フィルターバンクの場合の図8aに示すフローチャートとはほとんど違いがない。
図8cは、ダウンサンプルされた複合値合成フィルターバンク、及び例えば高性能SBR装置に採用される適当な方法という形での本発明の一実施形態に係るフローチャートを示している。より正確には、図8cに示す合成フィルターバンクは、32個の副帯チャンネルのための複合値オーディオ副帯値を処理可能な複合値合成フィルターバンクに関連するものである。
SBR処理副帯信号のダウンサンプル合成フィルタリングは、図8cに示す32チャンネルの合成フィルターバンクを使用して行われる。このフィルターバンクからの出力は、一ブロックの実数値時間領域サンプルである。この処理は図8cのフローチャートに示されている。合成フィルタリングは、開始(ステップS300)後、以下のステップを含み、一つのアレイvは640個の実数値時間領域サンプルを含む。
ステップS310において、アレイvのサンプルは64個の位置分移動させられ、最も古い64個のサンプルが廃棄される。そして、ステップS320では、64個の新しい複合値副帯サンプルまたは複合値オーディオ副帯値がマトリクスNで掛け算され、このマトリクスの素子は以下の式によって与えられる。
式中、exp()は複合値指数関数を示し、iは仮想単位である。この処理の出力の実数部分はアレイvの位置0〜63に保存される。
ステップS330では、サンプルが図8cのフローチャートに示されている式に基づきベクトルvから抜粋され、320個の素子を有するアレイgが生成される。ステップS340では、式(15)に基づく係数c(n)の直線的補間により、補間されたウィンドウ関数c(n)が得られる。ここでもまた、指数nは0〜319(式(15)に対してN=64,T=10)の範囲にある。前述したように、ウィンドウ関数c(n)の係数は付録1の表に示されている値に基づくものである。また、前述したような低遅延特性を得るためには、ウィンドウ経緯数が必ずしも正確に付録1の表に示されている数値である必要はない。ウィンドウ係数c(n)が付録2〜4に示されている少なくともいずれかの関係を満たすものであれば十分である。しかし、実施の詳細により、付録1〜3の表に示されている値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に相当するウィンドウ係数に関する式(16a),(16b)に基づく符号変換(比率−1の掛け算)がさらに必要となる場合がある。当然、本発明の実施形態に、他のウィンドウ係数c(n)を含む他のウィンドウ関数を用いてもよい。
ステップS350において、アレイgのサンプルが補間後のウィンドウ関数の補間後ウィンドウ係数ci(n)で掛け算され、補間後の時間領域サンプルw(n)が得られる。
そして、図8cのフローチャートの最後のステップS370の前に、ステップS360において、アレイw(n)からのサンプルの合計によって32個の新しいサンプルを算出する。
前述したように、図8cのフローチャートでは、X([k],[l])(=x(k,l)はオーディオ副帯チャンネルkのオーディオ副帯値lに相当する。また、図8cに示すフローチャートの新たな一巡は、その出力として、新しい32個の実数値時間領域サンプルを生成する。
図8dは、例えば低電源SBR装置に採用可能なダウンサンプルされた実数値合成フィルターバンクという形での本発明の一実施形態に係るフローチャートを示している。図8dに示す実施形態及びフローチャートと図8cに示したダウンサンプルされた複合値合成フィルターバンクのフローチャートとの違いは、ステップS320が図8dではステップS322に置き換えられている点だけである。
ステップS322において、32個の新しい実数値オーディオ副帯値または副帯サンプルがマトリクスNrで掛け算され、マトリクスNrの素子は以下の式で与えられる。
この処理の出力はアレイvの0〜64の位置に保存される。
図9aは、64個の副帯のための複合値解析フィルターバンクに対応する方法の比較例を示す。図9aは、出力としてベクトルyとベクトル“state”を提供するMATLAB実施を示す。図9aに示す手順で定義される関数はLDFB80と呼ばれ、新しいオーディオサンプルを含むベクトルxとベクトル“state”がこのLDFB80に入力として与えられる。関数LDFB80という名前は、過去に8ブロック及び未来に0ブロック延長するための低遅延フィルターバンクの省略である。
MATLABプログラム言語において、パーセントの印(%)は注記を示し、それは実行されないが、注解をしたりソースコードを説明する目的でのみ記されている。以下では、ソースコードの異なる部分をその機能に関して説明する。
ステップS400では、指数577〜640を有するベクトル“state”の内容が新しい時間領域オーディオ入力サンプルを含むベクトルxの内容に置き換えられるように、ベクトル“state”によって表わされるバッファが更新される。ステップS410では、可変LDFB80_winに保存されているような解析ウィンドウ関数のウィンドウ係数がベクトルwin_anaに転送される。
ステップS420では、最新のサンプルがバッファの右側に並べられると仮定して、実際のウィンドウ処理を行う。ブロックS420では、ベクトル“state”の内容が素子ごとに、解析ウィンドウ関数を含むベクトルwin_anaで掛け算される(.*)。この掛け算の出力は、ベクトルx_win_origに保存される。
ステップS430において、x_stackと呼ばれる128・5の素子を有するサイズのマトリクスを形成するために、ベクトルx_win_origの内容が整形される。ステップS440では、マトリクスx_stackの第2〜第4列に関して、x_stackの符号変換が実行される。
ステップS450では、第2の指数に関するx_stackの素子を合計し、同時に素子の順序を逆転し、結果を置き換えることによってx_stackを破壊または取り消し、その結果は再び別のx_stackに保存される。
ステップS460においては、x_stackの素子ごとに複合指数関数で掛けられた内容が複合高速フーリエ変換(FFT)で時間領域から周波数領域へ転換され、0〜−127の指数及び仮想単位iに関して偏角(−i・π・n/128)が提供される。
ステップS470では後処理が行われ、変数m=(64+1)/2を定義し、以下の式によりオーディオ副帯値を含むブロックをベクトルyとして算出する。
図9aに示す実施において、指数kは1〜64の整数をカバーする。ベクトルyは図1のオーディオ副帯値180を含むベクトルまたはブロックとして出力される。第2の要因となる式(26)の上の線及び図9aに示すステップS470のconj()の符号化部分は、それぞれの複素数の偏角の複合共役を示す。
最後の符号化ステップS480において、ステートベクトルが64個の素子分移動させられる。移動後のステートベクトルは、関数LDFB80に、次の一巡の入力として与えられる。
図9bは32個の副帯のための複合値解析フィルターバンクに相当する方法という形での本発明の一実施形態に係るMTBLAB実施を示す。従って、定義される関数はLDFB80_32と称され、これは、過去に8ブロック未来に0ブロックの追加重複に基づく32個の副帯のための低遅延フィルターバンクを示す。
図9bの実施と図9aの実施との違いは、いくつかの符号化ステップに関するものだけであり、これについて以下に説明する。主に副帯の数つまり関数LDFB80_32によって出力される副帯値の数が2の比率で少なくなるという事実を考慮して、ステップS400,S430,S460,S470はステップS430’,S460’,S470’に置き換えられている。従って、ステップS400’は、図1に示すような新しいブロック220の32個の時間領域オーディオ入力サンプルを有する指数289〜320に対応する最後の32個の入力に関して更新されたステートベクトルに関するものである。
しかし、図9aの実施と図9bの実施との主な違いは、図9aのステップS410が、図9bの実施においてはステップS412に置き換えられていることである。図9bのステップS412は、まず、ベクトルLDFB80_winに保存されているウィンドウを含む640個のウィンドウ係数をローカルベクトルwin_anaにコピーする。そして、式(15)に基づき補間を実行し、ベクトルwin_anaのベクトル素子によって示される二つの連続するウィンドウ係数が加算され、2で割られ、そしてベクトルwin_anaに再び保存される。
次のステップS420は図9aに示されているステップS420と同じであり、ステートベクトルの値つまり素子の、補間後のウィンドウ関数の補間ウィンドウ係数を含むベクトルwin_anaの素子での掛け算(.*)というウィンドウ処理が実行される。この処理の出力はベクトルx_win_origに保存される。しかし、図9bのステップS420と図9aのステップS420との違いは、図9bの場合には、ウィンドウ処理として640個ではなく320個の掛け算が行われることである。
ステップS430に代わるステップS430’において、ベクトルx_win_origを整形することによってx_stackが準備される。しかし、ベクトルx_win_origはたった320個の素子を含むだけなので、図9aの対応するベクトルに比べて、そのマトリクスx_stackはたった64・5個の素子を含むだけである。
符号変換のステップS440及びスタックを崩壊させるステップS450は、素子の数が少なくなった(640に対して320)という点以外は、図9a,9bどちらの実施においても同じである。
ステップS460に代わるステップS460’においては、ウィンドウデータの奇数複合高速フーリエ変換(FFT)が行われ、これは図9aのステップS460で実行される変換と酷似している。高速フーリエ変換の出力、つまりx_stackと偏角(−i・π・n/64)の複合指数関数の素子ごとの掛け算の出力がベクトルtempに与えられるが、ここでも、出力オーディオ副帯値の数が少なくなったために、指数nは0〜63の範囲である。
その後、修正ステップS470’において、変数m=(32+1)/2を定義し、式(26)に基づきベクトルyを生成することで、後処理が行われる。ここでは、指数kは1〜32の範囲しかカバーせず、複合指数関数の偏角に現れる128という数字は64に置き換えられている。
最後に、図9aの場合はステップS480でバッファが64個の素子分移動させられたが、図9bの場合、変更ステップS480’でバッファが32個の素子分移動させられる。
図10aは、64副帯のための複合値合成フィルターバンクに相当する方法の比較例を示すMATLAB原稿である。図10aの原稿は関数ILDFB80を示し、この関数ILDFB80には、図2aのオーディオ副帯値のブロック320及びステートベクトル“state”が入力パラメータとして与えられる。関数LDFB80という名前は、この関数が定義するものは、過去の8ブロックのオーディオデータ及び未来の0ブロックのオーディオデータに相当する逆転低遅延フィルターバンクであることを示している。この関数は、出力として、ベクトルy及び新しいまたは再定義されたステートベクトル“state”を与え、ベクトルyは図2aの時間領域オーディオサンプルブロック410に相当する。
ステップS500では、前処理が行われ、変数m=(64+1)/2及びベクトルtempが定義される。ベクトルtempの素子temp(n)は以下の式に基づき定義される。
ベクトルの素子x(n)の上の線及び関数conj()は複合共役を示し、exp()は複合指数関数を示し、iは仮想単位を示し、nは1〜64の範囲の指数を示す。
ステップS510においては、ベクトルtempが、第1列にベクトルtempの素子及び第2列にベクトルの指数に定義された素子の順序に関して逆転されたベクトルtempの複合共役を有するマトリクスに変換される。このように、ステップS510では、ベクトルtempに基づきマトリクスtempの奇数対称が確立される。
ステップS520では、奇数高速フーリエ変換(FFT)がマトリクスtempに基づき実行される。このステップでは、マトリクスtempの逆フーリエ変換の出力と(i・π/128)の偏角を有する指数関数との素子ごとの実数部分での掛け算が実行され、ベクトルy_knlに出力される。ここでは、指数nは0〜127の範囲にある。
ステップS530において、データの拡張及び交互の符号変換が行われる。これを達成するために、ベクトルy_knlの素子の順序が逆転され、必要な場合には符号変換が同時に行われる。そして、第1,第3,第5列にベクトルy_knlを含み、第2,第4列に符号変換されたベクトルy_knlを含むマトリクスtempが定義される。
ステップS540では、ベクトルLDFB80_winに保存されているウィンドウ係数がまずベクトルwin_anaにコピーされる。そして、合成ウィンドウ係数がベクトルwin_anaに保存された解析ウィンドウ係数に基づき決定されるが、これは、以下の式に基づき解析ウィンドウ関数の時間逆転版を生成することにより行われる。
N・Tはウィンドウ係数の合計数であり、nはウィンドウ係数の指数である。
ステップS550において、ベクトルと合成ウィンドウの素子ごとの掛け算により、合成ウィンドウがベクトルtempに適応される。ステップS560では、577〜640の指数を有するベクトルstateの素子を0にセットし、ステートベクトルstateにウィンドウ処理されたベクトルtempを付加することにより、バッファが更新される。
ステップS570では、指数1〜64を有するベクトルstateの素子を抜粋することにより、時間領域オーディオサンプルを含む出力ベクトルyがベクトルstateから抜粋される。
ステップS580は図10aに示す関数の最後のステップであり、ステートベクトルstateが64個の素子分だけ移動させられ、65〜640の指数を有する素子がベクトルstateの最初の576個の素子にコピーされる。
図10bは32個の副帯値のための複合値合成フィルターバンクという形での本発明の実施形態のMATLAB原稿を示す。図10bに示す原稿により定義される関数はILDFB80_32と呼ばれるものであるが、この名前は、この関数が過去からの8ブロックの重複と未来からの0ブロックの重複を有する32帯域のための逆転低遅延フィルターバンクであることを示している。
図9a,9bに示した実施形態に関して説明したように、図10bの実施形態もまた、図10aに係る64副帯合成バンクフィルターと密接に関わるものである。つまり、同様のベクトルが関数に与えられ、また関数によって出力される。しかし、それらのベクトルは、図10aの場合と比較して、半分の数の素子しか含まない。32帯域合成フィルターバンクは、図10aに示す64副帯の合成フィルターバンクとは、主に二つの面で異なっている。ステップS500,S510,S520,S530,S560,S570,S580は、処理される素子の数及び素子に関係するパラメータの数が半分であるステップに置き換えられている。さらに、合成ウィンドウ関数を生成するステップS540は、ステップS542に置き換えられ、合成ウィンドウ関数は、式(15)に基づき直線的補間された合成ウィンドウ関数として生成される。
ステップS500に代わるステップS500’において、変数mはm=(32+1)/2として定義され、ベクトルtempは式(27)に基づき定義される。そこでは、指数nは単に1〜32の範囲をカバーするだけのものであり、指数関数の偏角において、1/128の比率が1/64の比率に置き換えられる。
従って、ステップS510に代わるステップS510’においても、指数の範囲はベクトルtempを含む単に32個の素子の指数である。換言すれば、指数は1〜32の値をカバーしているだけである。従って、ステップS520に代わるステップS520’においても、指数関数の偏角は(i・π・n/64)に置き換えられ、指数nは0〜63の範囲である。ステップS530’においても、指数範囲は、ステップS530と比べて2の比率で減じられている。
図10aのステップS540に代わるステップS542でもまた、ベクトルLDFB80_winに保存されているウィンドウ関数がベクトルwin_anaにコピーされ、式(28)に基づき時間逆転版win_synが生成される。しかし、図10bに示す実施形態のステップS542は、さらに式(15)に基づく補間ステップを含み、合成ウィンドウ関数のウィンドウ係数を含む再定義されたベクトルwin_synの各素子のために、元の合成ウィンドウ関数の二つの連続するウィンドウ係数の直線的補間が行われる。
ウィンドウをベクトルtmpに応用し、素子tmpをそのウィンドウ処理後のものに置き換えるステップS550は、図10a,図10bのそれぞれのステップを直接比較すると、同じである。しかし、図10bの場合にはベクトルtmpのサイズが小さいので、半分の掛け算が実行されるだけである。
ステップS560,S570,S580に代わるステップS560’,S570’,S580’においても、指数640及び64がそれぞれ320及び32に置換される。故に、これらの最後の三つのステップは、図10aに示した実施形態のこれらのステップと比べて、ベクトルstateのサイズの点でのみ異なっている。
これまでに説明した実施形態で述べたように、解析ウィンドウ処理装置及び合成ウィンドウ処理装置は、それぞれのフレームに含まれる時間領域のそれぞれのサンプルをウィンドウ関数のウィンドウ係数と素子ごとに掛け算することによってウィンドウ処理するように構成されている。
例えば、時間逆転版に合成ウィンドウ関数及び解析ウィンドウ関数として使用され得るウィンドウ関数をより詳細に説明する前に、本発明に係る実施形態の利点を、特に図5,6に示すSBR装置またはシステムの構造の実施に関して詳細に説明する。
本発明に係る実施形態及び本発明の実施形態を一つ以上含むシステムが提供する利点は、他のフィルターバンクによる遅延をかなり低下させることである。この低遅延特性は図13,14に関して後により詳細に述べる。これに関する一つの重要な側面は、ウィンドウ関数の長さ、つまり時間領域サンプルのフレームまたはブロックに適応されるウィンドウ係数の数は、遅延とは無関係であるということである。
本発明に係る実施形態は、(再生された)オーディオデータの質を高めるというさらなる利点を有する。本発明の実施形態で使用される補間は、ウィンドウ係数の数を減らすという他の方法と比較して、エイリアシングをかなり低下させる。
また、図17,18に関して後に詳細に述べるが、心理音響の点に関して、本発明の実施形態は、しばしば、他の多くのフィルターバンクよりも有効に人間の耳の一時的なマスキング特性を利用している。さらに、図15,16,19を参照して後により詳細に述べるが、本発明の実施形態は非常に良好な周波数応答を提供する。
また、本発明の一実施形態に係る多くのフィルターバンクにおいては、解析フィルターバンクと合成フィルターバンクが相互接続されているならば、完全な再生が可能である。換言すれば、本発明の実施形態は、このような相互接続された一組の解析フィルターバンクと合成フィルターバンクへの入力と比較して聴覚的に区別不可能な出力を提供するだけでなく、量子化の誤差及びコンピュータ処理の循環効果と必要な個別分離化によって生じる他の効果は別として、入力と同じ出力を提供する。
本発明に係るフィルターバンクのSBRモジュールへの統合は、簡単にできる。概してSBRモジュールが二種速度モードで動作するが、本発明にかかる複合値低遅延フィルターバンクは一種速度モードで完全な再生を行うことが可能である。しかし、元来のSBR QMFフィルターバンクは完全ではなく、それに近い再生が可能であるだけである。二種速度モードでは、インパルス応答の32帯域版が直線的補間によって得られる。この直線的補間は、図3に関して説明したように、64帯域インパルス応答またはウィンドウ関数の二つの隣接したタップまたはウィンドウ係数のダウンサンプリングのことを意味している。
複合値フィルターバンクの場合、批判的に取り上げたフィルターバンクに比べて、解析(または合成)遅延をかなり低下させることができ、サンプリング周波数または処理周波数は、ナイキスト−シャノン理論によるボーダー周波数に相当するものである。実数値フィルターバンクの場合、例えば図9,10でMATLAB実施に関して示したように、最適化されたアルゴリズムを使用することで有効な実施ができる。これらの実施形態は、図5,6に関して説明したように、例えばSBR装置の低電源モードに使用できる。
図5,6を参照して述べたように、SBRシステムにおいて、本発明の一実施形態に係る複合値低遅延フィルターバンクを使用することで、遅延をより低下させることができる。前述したように、図5に示すようなSBRデコーダ610において、QMF解析フィルターバンク620は本発明の一実施形態に係る複合値低遅延フィルターバンク(CLDFB)に置き換えられる。帯域の数(64)とインパルス応答の長さ(640)を保ちながら、複合調整を用いることによって、この置き換えはコンピュータ処理として実行される。この装置による遅延は、達成可能な質のレベルを犠牲にせずに、全体としての遅延が双方向通信にとって十分低いものとなる程度に、抑えられる。
例えば、複合値のMDCTに類似のシステムを形成するためにMDCT及びMDSTを有するシステムと比較して、本発明に係る一実施形態は非常に良い周波数応答を有する。例えば、今日、MPEG−4 SBRに使用されるQMFフィルターバンクと比べて、本発明の実施形態に係る一つまたはそれ以上のフィルターバンクを含むシステムは、かなり低い遅延を有する。
低遅延QMFフィルターバンクと比較しても、本発明に係る実施形態は、低遅延と共に完全な再生という利点を有する。QMFフィルターバンクの完全に近い再生とは対照的な完全な再生特性から得られる利点は、以下のようなものである。完全に近い再生のためには、エイリアシングを十分に低いレベルに抑えるために、高いストップバンド減衰が必要である。このことは、フィルター設計において非常に低遅延なものを達成する可能性に制限を与える。しかし、本発明に係る実施形態を採用すれば、エイリアシングを十分に低いレベルに抑えるために高いストップバンド減衰を必要としないので、フィルターを独立的に設計する可能性を与えることになる。ストップバンド減衰は、必要とされる信号処理の応用にとってエイリアシングの十分な低下を可能とするのに十分な低さである。従って、フィルター設計において、低遅延に対するより良いトレードオフが可能である。
図11は、例えば正弦ウィンドウ関数710と本発明に係る実施形態に使用可能なウィンドウ関数700との比較を示す。このウィンドウ関数700は「合成」CMLDFBウィンドウ(CMLDFB=複合変調低遅延フィルターバンク)とも称されるが、付録1の表に示す値に基づく640個のウィンドウ係数を有している。ウィンドウ関数の大きさに関して、以下に示すように、ウィンドウ信号の振幅調性のための一般的な増幅率または抑制率は考慮されないことを明記しておく。このウィンドウ関数は、図13に示されているように、例えば遅延の中心に相当する値に関して、またはn=N,n=N−1,n=N+1(N=ブロック長,n=ウィンドウ係数の指数)に関して標準化される。これに対して、正弦ウィンドウ関数710は128個のサンプルによって定義されるものであり、例えば、MDCTまたはMDSTモジュールに使用される。
しかし、実施の詳細により、付録1〜3の表に示されている値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に相当するウィンドウ係数に関して、式(16a),(16b)に基づく符号変換(比率−1の掛け算)がさらに必要となる場合がある。
二つのウィンドウ関数700,710を論ずる前に、どちらのウィンドウ関数も実数値のウィンドウ係数のみを含むものであることを明記する。さらに、どちらの場合も、指数n=0に相当するウィンドウ係数の絶対値は0.1よりも小さい。CMLDFBウィンドウ700の場合、それぞれの値はさらに0.02よりも小さい。
二つのウィンドウ関数700,710をそれらの定義集合に関して考慮すると、いくつかの重要な違いが明らかとなる。正弦ウィンドウ関数710は対称であるのに対し、ウィンドウ関数700は非対称である。これをより明確に定義するために、全ての実数nに関するある一つの実数値n0の場合、(n0+n)及び(n0−n)にとって正弦ウィンドウ関数710が望ましい誤差(ε≧0;式(29)の両辺の項の差の絶対値はε以下である)まで、以下の関係を満たすように定義されるので、正弦ウィンドウ関数は対称である。
w(n)は指数nに相当するウィンドウ係数を示す。正弦ウィンドウの場合、それぞれの指数n0が二つの最大のウィンドウ係数の正確に真ん中にある。換言すれば、正弦ウィンドウ関数710にとって、指数はn0=63.5である。この正弦ウィンドウ関数は指数n=0,…,127で定義される。
これとは対照的に、ウィンドウ関数700は指数n=0,…,639によって定義される。このウィンドウ関数700は、全ての実数n0のために少なくとも一つの実数が常に存在し、(n0+n)及び(n0−n)は、以下の不等式が(ほぼ計画的に)定義可能な誤差(ε≧0;式(29)の両辺の項の差の絶対値はε以上である)にするウィンドウ関数の定義集合に属している点から、明らかに非対称である。
ここでも、w(n)は指数nに相当するウィンドウ係数である。
これら二つのウィンドウ関数はどちらも64個のサンプルというブロックサイズに関するものであるが、これらのさらなる違いは、ウィンドウ関数700の最大値は1よりも大きく、合成ウィンドウに関して以下の範囲の指数のために得られたものであるということである。
図11に示すウィンドウ関数700の場合、得られた最大値は、指数n=77のサンプルで得られた1.04よりも大きい。これに対して、正弦ウィンドウ710の最大値は1以下であり、n=63及びn=64で得られる。
しかし、ウィンドウ関数700では、n=N近辺のサンプル指数で約1の値が得られる。より正確には、指数n=N−1に相当するウィンドウ係数w(N−1)の絶対値またはそれ自身の値は1よりも小さく、n=Nに相当するウィンドウ係数w(N)の絶対値またはそれ自身の値は1よりも大きい。本発明に係るいくつかの実施形態において、これら二つのウィンドウ係数は以下の関係を満たす。
これは本発明の実施形態に係るフィルターバンクのオーディオの質を最適化した結果である。多くの場合において、できる限り小さい絶対値のウィンドウ係数w(0)を有することが望ましい。この場合、可能なパラメータに関して最適化されたオーディオの質を達成するためには、以下の式で示されるように、ウィンドウ係数の決定要素はできる限り1に近づけるべきである。
式(33)によって与えられる決定要素は、しかし自由に選択できる。ウィンドウ係数w(0)は0よりも小さいまたは約0であるので、w(N−1)・w(N)の積またはその絶対値は+/−1に限りなく近い。この場合、ウィンドウ係数w(2N−1)はほとんど自由に選択できる。式(33)は、G.D.T.シュラー及びM.J.T.スミスによる「変調完全再生フィルターバンクの新しい構造」(信号処理に関するIEEE変換,Vol.44,No.8,1996年8月)に説明されているような0遅延マトリクス技術を用いた結果である。
さらに、図13を参照しながら後述するが、指数N−1及びNに相当するウィンドウ係数は変調コアの中心に含まれ、従って、約1.0の値を含み、プロトタイプフィルター関数またはウィンドウ関数によって定義されるフィルターバンクの遅延と同時に生じるサンプルに相当する。
図11に示すような合成ウィンドウ関数700は、さらに、最新の時間領域オーディオサンプルをウィンドウ処理するのに使用される指数(n=0)に相当するウィンドウ係数列のウィンドウ係数から、合成ウィンドウ関数700のウィンドウ係数全てのうちで最も高い絶対値を有するウィンドウ係数まで、完全に単調に増加する動きを示す。当然、時間逆転解析ウィンドウ関数の場合には、対応する(時間逆転)解析ウィンドウ関数で最も高い絶対値を有するウィンドウ係数から、最新の時間領域オーディオサンプルをウィンドウ処理するのに使用される指数(n=639)に相当するウィンドウ係数列のウィンドウ係数まで、完全に単調に低下する動きを示す。
このような動きの結果、合成ウィンドウ関数700の展開は0.02よりも小さい絶対値を有する指数n=0に相当するウィンドウ係数から開始され、指数n=1に相当するウィンドウ係数の絶対値は0.03よりも小さく、指数n=Nで約1の値が得られ、式(31)に示す範囲内の指数で1.04より大きい最大値が得られ、n=90及びn=91で再び約1の値が得られ、n=162及びn=163の指数で最初の符号変化が見られ、約n=3Nの指数で−0.1または−0.12755よりも小さい最小値が得られ、n=284及びn=285の指数でさらなる符号変化が見られる。しかし、この合成ウィンドウ関数700は、さらに別の指数nでさらなる符号変化をしてもよい。これらのウィンドウ係数を付録1及び3の表に示されている値と比較すると、指数128〜255,384〜511に相当するウィンドウ係数に関して、式(16a),(16b)に基づくさらなる符号変換(比率−1の掛け算)が考えられるべきである。
合成ウィンドウ関数700のこの振動は、かなり低減された振動と同様のものであり、最大値が約1.04、最小値が−0.12として描かれている。この結果、全てのウィンドウ係数のうちの50%以上が0.1以下の絶対値を有している。図1,2aの実施形態に関して説明したように、ウィンドウ関数の展開は第1グループ420(または200)及び第2グループ430(または210)を含み、第1グループ420はウィンドウ係数第1連続部分を含み、第2グループ430はウィンドウ係数第2連続部分を含む。前述したように、ウィンドウのウィンドウ係数列は第1グループ420のウィンドウ係数と第2グループ430のウィンドウ係数だけを含み、第1グループ420のウィンドウ係数は正にウィンドウ係数第1連続部分であり、第2グループ430のウィンドウ係数は正にウィンドウ係数第2連続部分である。従って、第1グループ420とウィンドウ係数第1連続部分、第2グループとウィンドウ係数第2連続部分とは類義語として使用される。
全てのウィンドウ係数のうちの0.1以下の値を有している50%以上のものは、第2グループつまりウィンドウ係数第2部分430に、ウィンドウ関数700の非常に低減された振動の結果として含まれている。また、第2グループつまり第2部分430に含まれている全てのウィンドウ係数のうちの50%以上のものは0.01以下の絶対値を有する。
ウィンドウ係数第1部分420は、ウィンドウ係数列の全てのウィンドウ係数のうちの3分の1未満のものを含んでいる。従って、ウィンドウ係数第2部分430はウィンドウ係数の2/3以上を含んでいることになる。フレーム120,150,330,380のいずれかで処理されるべきブロックの合計数がT(4ブロックよりも多い)である場合、第1部分は概して3/2・N個のウィンドウ係数を含み、Nは一つのブロック中の時間領域サンプルの数である。従って、第2部分は残りのウィンドウ係数、より正確には、(T−3/2)N個のウィンドウ係数を含む。図11に示すように、フレーム毎のブロック数が10(T=10)の場合、第1部分は3/2・N個のウィンドウ係数を含み、第2部分は8.5・N個のウィンドウ係数を含む。ブロック毎の時間領域オーディオサンプルの数が64(ブロックサイズがN=64)の場合、第1部分は96個のウィンドウ係数を含み、第2部分は544個のウィンドウ係数を含む。図11に示すような合成ウィンドウ関数700では、第1部分と第2部分のボーダー、つまり指数nが95または96の部分において、約0.96の値が得られる。
第1部分420及び第2部分430に含まれているウィンドウ係数の数がこのようなものであるにもかかわらず、それぞれの部分でのウィンドウ係数のエネルギー値または合計エネルギー値は互いに大きく異なっている。エネルギー値は以下の式によって定義される。
w(n)はウィンドウ係数であり、式(34)で合計される指数nはそれぞれの部分420,430の指数であり、それぞれのエネルギー値Eは、一組のウィンドウ係数全体のものである。ウィンドウ係数が数の点で前記のような重大な違いがあるにもかかわらず、第1部分420のエネルギー値は全てのウィンドウ係数の合計エネルギー値の2/3以上である。従って、第2部分430のエネルギー値は全てのウィンドウ係数の合計エネルギー値の1/3以下である。
より詳細には、ウィンドウ関数700のウィンドウ係数第1部分420のエネルギー値は約55.85であり、ウィンドウ係数第2部分430のエネルギー値は22.81である。ウィンドウ関数700の全てのウィンドウ係数の合計エネルギー値は約78.03であるので、第1部分420のエネルギー値はウィンドウ係数全体のエネルギー値の約71.6%であり、第2部分430のエネルギー値は全体のエネルギー値の約28.4%である。
当然、式(34)は、エネルギー値Eを標準化係数E0で割ることにより、標準化版として示すことも可能である。E0は原則的にどんなエネルギー値であってもよい。標準化係数E0は、例えば式(34)に基づき計算されるウィンドウ係数列の全てのウィンドウ係数の合計エネルギー値であってもよい。
ウィンドウ係数の絶対値またはそれぞれのウィンドウ係数のエネルギー値に基づき、ウィンドウ係数列の中心点または「質量の中心」が決定され得る。ウィンドウ係数列の質量の中心または中心点は実数であり、概してウィンドウ係数第1部分420の指数の範囲に存在している。それぞれのフレームが4よりも多いブロック数の時間領域オーディオサンプル(T>4)を含む場合、ウィンドウ係数の絶対値に基づく質量の中心ncaまたはウィンドウ係数のエネルギー値に基づく質量の中心nceは、3/2・Nよりも小さい。換言すれば、フレーム毎のブロック数T=10の場合、質量の中心は第1部分420の指数の領域にある。
ウィンドウ係数w(n)の絶対値に基づく質量の中心ncaは、以下の式(35)によって定義され、ウィンドウ係数w(n)のエネルギー値に基づく質量の中心nceは、以下の式(36)によって定義される。
NとTは、それぞれ、ブロック毎の時間領域オーディオサンプルの数及びフレーム毎のブロックの数を示す正の整数である。当然、式(35),(36)による中心点はまた、前記の合計の限界を置き換えることによって、限定された一組のウィンドウ係数に関して求めることも可能である。
図1に示すようなウィンドウ関数700のために、ウィンドウ係数w(n)の絶対値に基づく質量の中心ncaは、nca≒87.75の値に等しく、ウィンドウ係数w(n)のエネルギー値に関する中心点または質量の中心nceは、nce≒80.04である。ウィンドウ関数700のウィンドウ係数第1部分200は96個(=3/2・N;N=64)のウィンドウ係数を含み、前述したように、中心点は両方ともウィンドウ係数第1部分200内にある。
ウィンドウ係数700のウィンドウ係数w(n)は付録1の表に示されている値に基づいている。しかし、例えば前述したようなフィルターバンクの低遅延特性を達成するためには、付録1の表に示されている値を正確にウィンドウ係数に適用する必要はない。多くの場合、640個のウィンドウ係数を含むウィンドウ関数のウィンドウ係数のためには、付録2〜4のいずれかの表に示されている関係または式を満たすだけで十分である。付録1の表に示されているウィンドウ係数またはフィルター係数は好ましい値を示し、いくつかの実施においては式(16a),(16b)により適応されてもよい。しかし、例えば、別の付録の別の表により、これらの好ましい値は小数点第2位、第3位、第4位、第5位以降が変更されてもよく、結果としてのフィルターまたはウィンドウ関数は本発明に係る実施形態の利点をなおも有している。しかし、実施の詳細により、付録1〜3の表に示されている値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に対応するウィンドウ係数に関して、式(16a),(16b)に応じたさらなる符号変換(比率−1の掛け算)を考慮すべきである。
当然、別の個数のウィンドウ係数を含む別のウィンドウ関数が同様に定義され、本発明に係る実施形態の構造に使用され得る。これに関して、過去のサンプルと未来のサンンプルに関するブロックの配列だけでなく、ブロック毎の時間領域オーディオサンプルの数とフレーム毎のブロックの数のどちらもまた、多様な範囲のパラメータにより変更可能である。
図12は、図11に示すような複合変調低遅延フィルターバンクウィンドウ(CMLDFB−ウィンドウ)700と、例えばMPEG標準のSBR装置に使用される元来のSBR QMFプロトタイプフィルター720との比較である。図11に示すように、CMLDFBウィンドウ700は本発明の一実施形態に係る合成ウィンドウである。
本発明の一実施形態に係るウィンドウ関数700は式(30)で定義されるように明らかに非対称である。ウィンドウ関数700及びSBR QMFプロトタイプフィルター720はそれぞれ640個の指数に関して定義されるので、元来のSBR QMFプロトタイプフィルター720は、指数n=319及び320に関して対称である。換言すれば、式(29)に関して、対称の中心を表す「指数値」n0は、SBR QMFプロトタイプフィルター720の場合、n0=319.5である。
さらに、SBR QMFプロトタイプフィルター720が対称であるために、式(35),(36)による中心点nca,nceもまた、それぞれ対称の中心n0に等しい。SBR QMFプロトタイプフィルター720は直交フィルターであるので、このプロトタイプフィルターのエネルギー値は64.00である。これとは対照的に、明らかに非対称のウィンドウ関数700は、前述したように、78.0327のエネルギー値を有している。
以下に、図5,6に関して説明したSBRシステムについて検討する。このシステムにおいて、SBRデコーダ610は、解析フィルターバンクという形の本発明の実施形態をフィルターバンク620として、及び合成フィルターバンクの形の本発明の実施形態を合成フィルターバンク640として含む。後述するように、図11,12に示すようなウィンドウ関数700を使用する本発明に係る解析フィルターバンクの総合遅延は、127個のサンプルの合計遅延であるが、元来のSBR QMFプロトタイプのフィルターに基づくSBR装置では640個のサンプルの合計遅延となる。
例えば、SBRデコーダ610におけるQMFフィルターバンクのようなSBRモジュールを、複合値低遅延フィルターバンク(CLDFB)に置き換えることで、オーディオの質を低下させることもコンピュータ処理を複雑化させることもなく、遅延を42msから31.3msに低下させることができる。図7〜10に関する本発明に係る実施形態で説明したように、この新しいフィルターバンクで、標準SBRモード(高性能モード)と実数値フィルターバンクのみを使用する低電源モードの両方が支えられる。
特に遠距離通信と双方向通信の分野において、低遅延は非常に重要である。超低遅延AACはすでに42msの通信応用にとって十分低い遅延を達成できたが、そのアルゴリズムの遅延はなおも、AAC低遅延コアコーデック(20msという低遅延を達成した)や他の遠距離通信コーデックのそれよりも高い。その遅延を低下させるための有望な方法は、本発明の一実施形態に係る低遅延フィルターバンク技術を利用することと、現在のQMFフィルターバンクを本発明の実施形態に係る低遅延のものに置き換えることである。換言すれば、さらなる遅延低下は、単にSBRモジュール610で使用されている通常のフィルターバンクを本発明の実施形態に係る複合低遅延フィルターバンクに置き換えることによって達成される。
CLDFBとも称される本発明の実施形態に係る新しいフィルターバンクは、SBRモジュール610での使用のために、できる限り元々使用されてきたQMFフィルターバンクと類似するように設計される。これは、例えば、SBRシステムで使用されているような64帯域または64副帯の使用、同じ長さのインパルス応答、二種速度モードとの適合性を含む。
図13は、本発明の一実施形態に係るCLDFBウィンドウ700と元のSBR QMFプロトタイプフィルター720との比較を示す。さらに、図13は変調フィルターバンクの遅延を示し、これは、DCT−IVシステムの場合、N個のサンプルという長さを有する変調コアのフレーム遅延及びプロトタイプフィルターまたはウィンドウ関数によって引き起こされる重複遅延を解析することによって決定できる。図13もまた、合成フィルターバンクの場合を示している。ウィンドウ関数700もプロトタイプフィルター関数720も、これら二つのフィルターバンクの合成プロトタイプフィルターのインパルス応答を示している。
SBR QMFフィルターバンク及び本発明の一実施形態によって提案されているCLDFBの両方の遅延解析に関して、解析及び合成において変調コアの右側と左側の重複部のみがそれぞれ遅延となる。
両方のフィルターバンクにおいて、変調コアは、図13では遅延750として記されている64個のサンプルの遅延を引き起こすDCT−IVに基づいている。SBR QMFプロトタイプフィルター720の場合、その対称性のために、図13に示すように、変調コア遅延750は、質量の中心またはプロトタイプフィルター関数720の中心点に関して対称的に配置される。このようなふるまいの理由は、SBRQMFフィルターバンクのバッファは、プロトタイプフィルター値のそれぞれのエネルギー値の点で最も大きな影響を及ぼすプロトタイプフィルター関数720が処理の際に考慮されるであろうポイントまで埋められる必要がある。プロトタイプフィルター関数720のこの形のために、バッファが、それぞれのプロトタイプフィルター関数の少なくとも中心点または質量の中心まで埋められなければならない。
このことをさらに説明すると、最初にSBR QMFフィルターバンクのバッファを全て初期化し、そのバッファは、データ処理が意義のあるデータの処理となるようなポイントまで埋められる必要があり、このためには、それぞれのウィンドウ関数またはプロトタイプフィルター関数が大きな要因となる。SBR QMFプロトライプフィルター関数の場合、質量の中心つまりプロトタイプフィルター関数の中心点に関して、プロトタイプフィルター720が対称形であることが遅延を生じさせる。
しかし、サンプル数N=64のDCT−IVを基礎とするシステムの変調コアによって生じる遅延は常に存在し、このシステムはまた1ブロックの遅延を含むので、SBR QMFのための合成プロトタイプは288個のサンプルの重複遅延を生じさせることになる。
前述したように、図13に関する合成フィルターバンクの場合、この付加的な左側の重複760が遅延を生じさせ、右側の重複770は過去のサンプルに関しているのでさらなる遅延を生じさせない。
これとは対照的に、本発明の一実施形態に係るCLDFBのバッファは最初に全て初期化され、合成フィルターバンク及び解析フィルターバンクは、そのウィンドウ関数の形のために、SBR QMFフィルターバンクと比べて即座に「意味のある」データを提供することができる。換言すれば、解析または合成フィルターバンク700の形のために、ウィンドウ関数で処理され、重要な影響力を有するサンプルがより即座に得られる。従って、CLDFBのプロトタイプまたは合成ウィンドウ関数は、変調コアによってすでに生じた遅延750を考慮に入れて、32個のサンプルの重複遅延が生じるだけである。本発明の一実施形態に係るウィンドウ関数700のウィンドウ係数第1部分または第1グループ420は、好ましくは、変調コア遅延750と左側の重複760により生じる遅延750に相当する96個のウィンドウ係数を含む。
解析フィルターバンクも合成フィルターバンクもどちらも同じ遅延を引き起こす。それは、解析フィルターバンクは、合成ウィンドウ関数またはプロトタイプ関数の時間領域逆転版に基づくものであるからである。従って、重複遅延は、合成フィルターバンクと同じ重複サイズを有する右側に生じる。このように、本発明の一実施形態に係る解析フィルターバンクの場合には、32サンプルの遅延が生じるのに対して、一方、元のQMFプロトタイプフィルターバンクの場合には、288サンプルの遅延が生じる。
図14aに示す表は、フレーム長が480サンプル、サンプリング速度が48kHzの場合を想定し、異なる修正段階での遅延を示す。標準SBR装置と共にAAC−LDコーデックを有する標準的な構造において、二種速度モードのMDCT,IMDCTフィルターバンクは40msの遅延を引き起こす。そして、QMF装置自身が12msの遅延を引き起こす。また、SBR重複のために、さらに8msの遅延が生じ、このコーデックの総合的な遅延は大体60msとなる。
MDCT,IMDCTの低遅延版を有するAAC−ELDは、二種速度において、30msの遅延を生じさせる。また、SBR装置の元来のQMFフィルターバンクによる遅延が12msであるのに対して、本発明の一実施形態に係る複合値低遅延フィルターバンクを使用することで、たった1msの遅延となる。SBR重複を避けることにより、AAC−LD装置とSBR装置の単純な組み合わせにより8msの遅延が生じることを完全に防止することができる。従って、前記のような単純な組み合わせで60msの遅延が生じるのに対して、超低遅延AACコーデックは、アルゴリズム全体の遅延として30msとすることができる。故に、前述したような遅延低下方法の組み合わせは、実際、遅延全体として29msの節約になる。
図14bの表は、図5,6に示したシステムの元来のフィルターバンク及びここで提案するフィルターバンクによって生じる全体的なコーデック遅延を示す。図14bに示すデータ及び値は、サンプリング速度が48kHz、コアコーダのフレームサイズが480サンプルの場合に基づく。図5,6で説明したSBRシステムの二種速度方法により、コアコーダは24kHzのサンプリング速度で効果的に動作する。変調コアでの64サンプルのフレーム遅延がコアコーダによってすでに引き起こされているので、図13に関して説明しように、二つのフィルターバンクの個別の遅延値からそれを差し引くことができる。
図14bの表が、MDCT,IMDCTの低遅延版(LD MDCT,LD IMDCT)を有する超低遅延AACコーデックの全体的な遅延を低下させることが可能であるということの基礎になる。MDCT,IMDCTの低遅延版および元来のQMFフィルターバンクを使用するだけで、全体的なアルゴリズム遅延が42msとなり、さらに従来のQMFフィルターバンクを本発明の一実施形態に係る複合値低遅延フィルターバンクに置き換えるだけで、全体的なアルゴリズム遅延を31.3msにまで低下させることができる。
一つまたはそれ以上のフィルターバンクを含む本発明の実施形態に係るフィルターバンクの質を評価するために、リスニングテストが行われ、そのテストから、本発明の実施形態に係るフィルターバンクはAAC−ELDと同じレベルのオーディオの質を保持し、複合SBRモード、実数値低電源SBRモードのどちらにおいても質の低下がないという結論が得られた。従って、本発明の実施形態に係る遅延最適化フィルターバンクは、遅延を10ms以上低下させるにもかかわらず、オーディオの質にも負担をかけることがない。一時的な特徴として、統計上重要でないが、わずかな向上さえ見られた。この向上とは、カスタネットと鉄琴のテストにおいて観察された。
本発明の一実施形態に係る32帯域のフィルターバンクの場合のダウンサンプリングは、本発明に係るフィルターバンクのために、QMFフィルターバンクと同様によく動作することをさらに証明するために、以下のような評価が行われた。まず、対数正弦曲線がダウンサンプルされた32帯域フィルターバンクで解析され、0に初期化された32個の高帯域が付加された。その後、その出力は64帯域フィルターバンクにより合成され、再びダウンサンプルされ、元の信号と比較された。従来のSBR QMFプロトタイプフィルターバンクの使用は、信号・ノイズ率(SNR)が59.5dBという結果になる。しかし、本発明に係るフィルターバンクは78.5dBのSNRを達成する。このことは、本発明の実施形態に係るフィルターバンクは、ダウンサンプルされたものにおいても、少なくとも元のQMFフィルターバンクと同様に機能することを示している。
本発明の実施形態に採用されたこの遅延最適化非対称フィルターバンク方法は、対称プロトタイプの従来のフィルターバンクと比較して、まさに付加価値を提供するということを示すために、以下、同じ遅延を有する非対称プロトタイプと対称プロトタイプとを比較する。
図15aは、広範囲における、低遅延ウィンドウ(グラフ800)を使用する本発明に係るフィルターバンクの周波数応答と128タップの長さを有する正弦ウィンドウ(グラフ810)を使用するフィルターバンクの周波数応答との比較を示す。図15bは、これらのウィンドウ関数を使用する同じフィルターバンクの狭い範囲での周波数応答を示す拡大図である。
二つのグラフ800,810の直接的な比較から、本発明の一実施形態に係る低遅延フィルターバンクを使用するフィルターバンクの周波数応答は、同じ遅延を有する128タップの正弦ウィンドウを使用するフィルターバンクの周波数応答よりもかなり良いことがわかる。
また、図16aは、全体的な遅延が127サンプルである異なるウィンドウ関数の比較を示す。64帯域のフィルターバンク(CLDFB)は、フレーム遅延と重複遅延を含む127サンプルの全体的な遅延を有する。対称プロトタイプと同じ遅延を有する変調フィルターバンクは、従って、図15a,15bに関して説明したように、128の長さのプロトタイプを有することになる。50%の重複を有するこれらのフィルターバンクのために、例えばMDCT、正弦ウィンドウまたはカイザー・ベッセルから導き出されるウィンドウは、概してプロトタイプとして良い選択である。従って、図16aにおいて、本発明の一実施形態に係るプロトタイプとしての低遅延ウィンドウを使用するフィルターバンクの周波数応答が、同じ遅延を有する対称プロトタイプの周波数応答と比較されている。図16aでは、図15a,15bで説明したような、本発明の実施形態に係るフィルターバンクの周波数応答(グラフ800)と正弦ウィンドウを使用するフィルターバンクの周波数応答(グラフ810)以外に、さらに二つのKBDウィンドウ、つまりパラメータα=4に基づくもの(グラフ820)とα=6に基づくもの(グラフ830)が示されている。図16a、及び図16aの拡大図である図16bのどちらも、非対称ウィンドウ関数または同じ遅延のプロトタイプフィルター関数を有する本発明の一実施形態に係るフィルターバンクを使用することで、かなり良い周波数応答が達成できることを示している。
この利点をより一般的な点から説明するために、図17において、前記フィルターバンクとは異なる遅延値を有する二つのフィルターバンクプロトタイプが比較されている。図15,16で検討した本発明に係るフィルターバンクは127サンプルの全体的な遅延を有し、この遅延は過去に8ブロック及び未来に0ブロックの重複(CLDFB80)に相当するものである。図17は、同じ遅延(383サンプルの遅延)を有する二つの異なるフィルターバンクプロトタイプの周波数応答の比較を示す。より正確には、図17は、本発明の一実施形態に係る非対称プロトタイプフィルターバンクの周波数応答(グラフ840)を示し、これは、過去に6ブロックの時間領域サンプル、未来に2ブロックの時間領域サンプルの重複に基づくものである(CLDEFB62)。さらに図17は、383サンプルの遅延を有する対称プロトタイプフィルター関数の周波数応答(グラフ850)を示す。非対称プロトタイプまたはウィンドウ関数が、同じ遅延値の対称ウィンドウ関数またはプロトタイプフィルターを有するフィルターバンクよりも良い周波数応答を達成することがわかる。このことは、前述したように、遅延と質との間のより良いトレードオフが可能であることを示している。
図18は人間の耳の一時的なマスキング効果を示す。図18中、線860で示す瞬間に音が発生する場合、その音の周波数とその近辺の周波数に関するマスキング効果が、実際の音が開始される約20ms前に発生する。この効果はプレマスキングと呼ばれ、人間の耳の心理音響特性の一つの側面である。
図18に示す状況において、音は、線870で示される瞬間までの約200msの間聞こえるものとして残る。この間、人間の耳のマスキングが働き、これは同時マスキングとも称される。図18に示すように、音が止まった後(線870で示される)、その音の周波数及び近辺の周波数のマスキングは約150msの間、徐々に消えていく。この心理音響効果はポストマスキングとも称される。
図19は、本発明の一実施形態に係る低遅延フィルターバンク(CMLDFB)を使用するフィルターバンクに基づく従来のHE−AAC符号化信号とHE−AAC符号化信号のプレエコーを示す。図19aは、カスタネットの元の時間信号を示し、HE−AACコーデック(高能率高度オーディオコーデック)を含むシステムで処理されたものである。従来のHE−AACに基づくシステムの出力は図19bに示されている。二つの信号、つまり元の時間信号とHE−AACコーデックの出力信号との直接比較すると、HE−AACコーデックの出力信号において、カスタネットの音が始まる前の矢印880で示されている部分に、プレエコーが見られることがわかる。
図19cは、本発明の一実施形態に係るCMLDFBウィンドウを含むフィルターバンクに基づくHE−AACを有するシステムの出力信号を示す。図19aに示されている元の時間信号と、本発明の一実施形態に係るフィルターバンクを使用した処理後の信号から、図19cの矢印890で示されているように、カスタネットの音の開始直前のプレエコー効果がかなり低下していることがわかる。図18に関して説明したプレマスキング効果のために、図19cの矢印890で示されるプレエコー効果は、従来のHE−AACコーデックの場合の矢印880で示されるプレエコー効果よりも、ずっとよく隠されている。本発明に係るフィルターバンクのプレエコーのこの状態は、従来のフィルターバンクに比べてかなり遅延が低下されたという結果でもあるが、これは人間の耳の一時的なマスキング特性と心理音響特性にずっとよく適合した出力を提供するものである。結果的に、リスニングテストを説明する際に述べたように、本発明の一実施形態に係るフィルターバンクを使用することは、遅延低下によりもたらされる質の向上さえにもつながる。
本発明に係る実施形態は、従来のフィルターバンクに比べて、コンピュータ処理の複雑さを増すことはない。低遅延フィルターバンクは、コンピュータ処理が複雑化されないように、例えばSBRシステムの場合のQMFフィルターバンクと同じフィルター長及び同じ変調モードを使用する。プロトタイプフィルターの非対称な本質のために必要とされるメモリーに関して、合成フィルターバンクのために必要なROM(読み出し専用メモリ)は、ブロック毎のサンプル数N=64であり、フレーム毎のブロック数T=10であるフィルターバンクの場合、約320ワード増加する。さらに、SBR関連のシステムの場合、解析フィルターが別に保存されるならば、必要なメモリーは、さらにもう320ワード増加する。
しかし、AAC−ELDコアのために現在必要なROMは約2.5キロワードであり、SBR装置のためには、さらに2.5キロワード必要であるが、必要なROMは約10%増加するだけである。メモリーと複雑性との間のできる限りのトレードオフとして、低いメモリー使用量の方が重要である場合、図3及び式(15)に関して述べたように、合成フィルターから解析フィルターを生成するために直線的補間が使用できる。この補間処理は、必要な指示の数を約3.6%増加させるだけである。従って、SBRモジュール構造内の従来のQMFフィルターバンクを本発明の実施形態に係る低遅延フィルターバンクに置き換えることで、いくつかの実施形態においては、オーディオの質の低下や目立った複雑化を引き起こすことなく、10ms以上の遅延の低下を達成することができる。
このように、本発明に係る実施形態は、解析または合成ウィンドウまたはウィンドウ処理のための装置または方法に関する。さらに、解析または合成フィルターバンクまたはウィンドウを用いて信号を解析または合成する方法を説明する。当然、前記の方法のうちの一つを実行するためのコンピュータプログラムもまた開示される。
本発明の実施形態は、ハードウェアでの実施、ソフトウェアでの実施または両方の組み合わせとして実行され得る。生成され、受信され、または処理のために保存されるデータ、ベクトル及び変数は、ランダムアクセスメモリー、バッファ、リードオンリーメモリー、持久記憶装置(例えばEEPROM、フラッシュメモリー)また磁器メモリー、光メモリーなどの多様な種類のメモリーに保存可能である。保存場所は、例えば、変数、パラメータ、ベクトル、マトリクス、ウィンドウ係数や他の情報及びデータのそれぞれのデータ量を保存するのに必要な一つまたはそれ以上のメモリーユニットであってもよい。
ソフトウェアの実施は、多様なコンピュータ、コンピュータと同様のシステム、プロセッサ、ASIC(応用特定集積回路)また他の集積回路(IC)で実行され得る。
本発明の方法を実施するための必要条件によって、本発明の方法の実施形態はハードウェア、ソフトウェアまたはその両方の組み合わせで実行可能である。プログラム可能なコンピュータシステム、プロセッサや集積回路と協働するデジタル記憶媒体、特にCD、DVDや電気的に読み出し可能な制御信号を記憶する他のディスクを使用して、本発明の実施形態が実行される。一般的に、本発明の一実施形態は、プログラムコードが機械読み取り可能な媒体に保存されたコンピュータプログラム製品であり、そのプログラムコードは、コンピュータプログラムがコンピュータ、プロセッサや集積回路上で起動された際、本発明の方法の実施形態を実行するものである。換言すれば、本発明の方法の実施形態は、従って、コンピュータ、プロセッサや集積回路上で起動された際に本発明の方法の少なくとも一つの実施形態を実行するプログラムコードを有するコンピュータプログラムである。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置は、ウィンドウ処理されたサンプルを得るために、初期のサンプルから後期のサンプルに至る時間列での時間領域オーディオ入力サンプルのフレーム(120)を、ウィンドウ係数列を含む解析ウィンドウ関数(190)を使用してウィンドウ処理するためのウィンドウ処理部(110)を有し、解析ウィンドウ関数(190)は、ウィンドウ係数列の第1部分を含むウィンドウ係数第1グループ(200)と、ウィンドウ係数列の第2部分を含むウィンドウ係数第2グループ(210)とを含み、第1部分は第2部分よりも少ない数のウィンドウ係数を含むが、第1部分のウィンドウ係数のエネルギー値は第2部分のウィンドウ係数のエネルギー値よりも高く、ウィンドウ係数第1グループは後期の時間領域サンプルをウィンドウ処理するのに使用され、ウィンドウ係数第2グループは初期の時間領域サンプルをウィンドウ処理するのに使用される。また、この装置はウィンドウ処理後のサンプルを使用してオーディオ副帯値を算出する計算機(170)を有する。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、解析ウィンドウ関数(190)がウィンドウ係数列に関して非対称であるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、第1部分のウィンドウ係数のエネルギー値がウィンドウ係数列の全てのウィンドウ係数のエネルギー値の2/3以上であり、第2部分のウィンドウ係数のエネルギー値がウィンドウ係数列の全てのウィンドウ係数のエネルギー値の1/3以下であるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、第1部分に含まれるウィンドウ係数がウィンドウ係数列のウィンドウ係数の総合計の1/3以下の個数であり、第2部分に含まれるウィンドウ係数がウィンドウ係数列のウィンドウ係数の総合計の2/3以上の個数であるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、解析ウィンドウ関数(190)のウィンドウ係数の中心点が第1部分のウィンドウ係数の指数範囲の実数値に相当するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、解析ウィンドウ関数(190)が、解析ウィンドウ関数(190)の全てのウィンドウ係数のうちで最大の絶対値を有するウィンドウ係数から、最新の時間領域オーディオサンプルをウィンドウ処理するのに使用されるウィンドウ係数列の一つのウィンドウ係数までの、厳密に単調な減少を有するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、解析ウィンドウ関数(190)が振動挙動を有するように構成される。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、指数n=(T−1)・Nに対応するウィンドウ係数が0.9〜1.1の範囲の絶対値を有するように構成され、ウィンドウ係数列の指数は0〜N・T−1の範囲の整数であり、フレーム(120)の最新の時間領域オーディオ入力サンプルをウィンドウ処理するのに使用されるウィンドウ係数は、指数N・T−1に対応するウィンドウ係数であり、解析ウィンドウ処理部(110)はまた、時間領域オーディオ入力サンプルのフレーム(120)が、そのフレーム(120)の最初から最新までの時間領域オーディオ入力サンプルのT個のブロック列を含み、各ブロックはN個の時間領域オーディオ入力サンプルを含み、T及びNは正の整数であり、Tは4よりも大きい。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数指数n=N・T−1に対応するウィンドウ係数が0.02よりも小さい絶対値を有するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ処理が、ウィンドウ処理後のフレームのウィンドウ処理後のサンプルz(n)を得るために、以下の式に基づきフレーム(120)の時間領域オーディオ入力サンプルx(n)の掛け算をすることを含む。
nは0〜T・N−1の範囲のウィンドウ係数列の指数を示す整数であり、c(n)は指数nに対応する解析ウィンドウ関数のウィンドウ係数であり、x(N・T−1)は時間領域オーディオ入力サンプルフレーム(120)の最新の時間領域オーディオ入力サンプルであり、解析ウィンドウ処理部(110)はまた、時間領域オーディオ入力サンプルフレーム(120)がフレーム(120)の最初から最新まで延びるT個のブロック(130)の時間領域オーディオ入力サンプル列を含むように構成され、各ブロックはN個の時間領域オーディオ入力サンプルを含み、T及びNは正の整数、Tは4よりも大きい。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数c(n)が付録4の表に示す関係を満たすように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、この装置(100)は、オーディオ副帯値のために使用される合成ウィンドウ関数(370)の時間逆転または指数逆転版である解析ウィンドウ関数(190)を使用するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、解析ウィンドウ関数の第1部分が、1よりも大きい最大絶対値を有するウィンドウ係数を含むように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数列の全てのウィンドウ係数が実数値ウィンドウ係数であるように構成される。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、時間領域オーディオ入力サンプルフレーム(120)がフレーム(120)の最初から最新まで延びるT個のブロック(130)の時間領域オーディオ入力サンプル列を含むように構成され、各ブロックはN個の時間領域オーディオ入力サンプルを含み、T及びNは正の整数、Tは4よりも大きい。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ処理がフレーム(120)の時間領域オーディオ入力サンプルとウィンドウ係数列のウィンドウ係数との素子ごとの掛け算を含むように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、時間領域オーディオ入力サンプルとウィンドウ係数列に基づき、各時間領域オーディオ入力サンプルが素子ごとに解析ウィンドウ関数のウィンドウ係数で掛け算されるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、時間領域オーディオ入力サンプルフレーム(120)の各時間領域オーディオ入力サンプルに対して、正確に一つのウィンドウ処理後のサンプルが生成されるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数指数n=(T−3)・Nに対応するウィンドウ係数が−0.1よりも小さい値を有し、ウィンドウ係数列の指数は0〜N・T−1の範囲の整数であり、最新の時間領域オーディオ入力サンプルをウィンドウ処理するために使用されるウィンドウ係数は、指数N・T−1に対応するウィンドウ係数である。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数列のうち、ウィンドウ係数の第1部分が3/2・N個のウィンドウ係数を含み、ウィンドウ係数の第2部分が(T−3/2)・N個のウィンドウ係数を含むように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数c(n)が付録3の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数c(n)が付録2の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、解析ウィンドウ処理部(110)は、ウィンドウ係数c(n)が付録1の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、この装置(100)は、処理されるべき時間領域オーディオ入力サンプルの現在のフレーム(120)が、時間領域オーディオ入力サンプルの直前のフレーム(120)の(T−1)個の後方のブロックを時間領域オーディオ入力サンプルの初期の方向へ1ブロックずつ移動させ、新しい時間領域オーディオサンプルのブロック(220)を、現在のフレーム(120)の最新の時間領域オーディオ入力サンプルを含むブロックとして追加することによって生成されるように、構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、この装置(100)は、時間またはサンプル指数n=32,…,319の場合、処理されるべき時間領域オーディオ入力サンプルx(n)の現在のフレーム(120)が、時間領域オーディオ入力サンプルの直前のフレーム(120)の時間領域オーディオ入力サンプルxprev(n)を以下の式に基づき移動することにより生成される。
この装置(100)はさらに、時間またはサンプル指数n=31から始まる時間領域オーディオ入力サンプルx(n)の現在のフレーム(120)のために、時間またはサンプル指数nが小さくなっていく次にくる時間領域オーディオ入力サンプルの順番に基づき、次にくる32個の時間領域オーディオ入力サンプルを含ませることにより、時間領域オーディオ入力サンプルの現在のフレーム(120)の時間領域オーディオ入力サンプルx(n)を生成するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、一つのウィンドウ処理後サンプルフレーム(150)に基づく全ての副帯値がそのウィンドウ処理後サンプルフレーム(150)のウィンドウ処理後のサンプルのスペクトル表示として表されるように、計算機(170)はオーディオ副帯値を生成するのに適合した時間/周波数変換機を有している。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、時間/周波数変換機は複合値または実数値オーディオ副帯値を生成するよう構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、計算機(170)は、一つの時間領域オーディオ入力サンプルブロック(130)の各時間領域オーディオ入力サンプルに対して、一つのオーディオ副帯値を算出するよう構成され、各オーディオ副帯値の算出または一つの時間領域オーディオ入力サンプルブロック(130)の時間領域オーディオ入力サンプルのそれぞれの計算は、ウィンドウ処理後フレーム(150)のウィンドウ処理後のサンプルに基づいている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、計算機(170)は、ウィンドウ処理後のサンプル(150)を各副帯値のための調和振動関数で掛け算し、掛け算されたウィンドウ処理後のサンプルを合計することで、オーディオ副帯値を算出するように構成され、調和振動関数の周波数は副帯値のうちの対応する副帯の中心周波数に基づいている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、計算機(170)は、調和振動関数が複合指数関数、正弦関数または余弦関数であるように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、計算機(170)は、n=0,…,63、k=0,…,31の場合、以下の式に基づきオーディオ副帯値wklを算出する。
z(n)は指数nに対応するウィンドウ処理後のサンプルであり、kは副帯指数であり、lはオーディオ副帯値ブロック(180)の指数であり、fosc(x)は実数値変数xに応じた振動関数である。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、計算機(170)は、振動関数fosc(x)は以下の式のうちのいずれかである。
iは仮想単位である。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、この装置(100)は、実数値時間領域オーディオ入力サンプルのフレーム(120)を処理するように構成されている。
本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置において、この装置(100)は、オーディオ帯域値と共に使用されるべき合成ウィンドウ関数(370)を示す信号またはオーディオ副帯値を生成するために使用される解析ウィンドウ関数(190)を示す信号を提供するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置は、オーディオ副帯チャンネルのオーディオ副帯値から、中間時間領域サンプル列(330)を算出する計算機(310)を有し、この列は初期の中間時間領域サンプルと後期の中間時間領域サンプルを含む。また、この装置は、ウィンドウ処理された中間時間領域サンプルを得るために、中間時間領域サンプル列(330)に対して、ウィンドウ係数列を含む合成ウィンドウ関数(370)を使用してウィンドウ処理を行う合成ウィンドウ処理部(360)を有し、この合成ウィンドウ関数(370)はウィンドウ係数列の第1部分を含むウィンドウ係数第1グループ(420)とウィンドウ係数列の第2部分を含むウィンドウ係数第2グループ(430)を含み、第1部分は第2部分よりも少ない数のウィンドウ係数を含み、第1部分のウィンドウ係数のエネルギー値は第2部分のウィンドウ係数のエネルギー値よりも高く、ウィンドウ係数第1グループは後期の中間時間領域サンプルを処理するのに使用され、ウィンドウ係数第2グループは初期の中間時間領域サンプルを処理するのに使用される。この装置は、さらに、時間領域サンプルを得るために、ウィンドウ処理後の中間時間領域サンプルを処理する重複加算出力部(400)を有する。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、第1部分のウィンドウ係数のエネルギー値が合成ウィンドウ関数(370)の全てのウィンドウ係数のエネルギー値の2/3以上であり、第2部分のウィンドウ係数のエネルギー値が合成ウィンドウ関数の全てのウィンドウ係数のエネルギー値の1/3以下であるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、第1部分に含まれるウィンドウ係数がウィンドウ係数列のウィンドウ係数の総合計の1/3以下の個数であり、第2部分に含まれるウィンドウ係数がウィンドウ係数列のウィンドウ係数の総合計の2/3以上の個数であるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、合成ウィンドウ関数(370)のウィンドウ係数の中心点が第1部分のウィンドウ係数の指数範囲の実数値に相当するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、合成ウィンドウ関数が、最新の中間時間領域オーディオサンプルをウィンドウ処理するのに使用されるウィンドウ係数列の一つのウィンドウ係数から、合成ウィンドウ関数の全てのウィンドウ係数のうちで最大の絶対値を有するウィンドウ係数までの、厳密に単調な増加を有するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、合成ウィンドウ関数(370)が振動挙動を有するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、指数n=(T−1)・Nに対応するウィンドウ係数が0.9〜1.1の範囲の絶対値を有し、ウィンドウ係数列の指数nは0〜N・T−1の範囲の整数であり、最新の中間時間領域オーディオ入力サンプルをウィンドウ処理するのに使用されるウィンドウ係数は、指数n=0に対応するウィンドウ係数であり、Tは中間時間領域オーディオ入力サンプルのフレーム(330)に含まれるブロックの数を示す4よりも大きい整数であり、この装置(300)は、N個の時間領域オーディオサンプルを含む時間領域オーディオサンプルブロック(410)を生成するように構成され、Nは正の整数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、指数n=0に対応するウィンドウ係数が0.02以下の絶対値を有するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、指数n=3Nに対応するウィンドウ係数が−0.1よりも小さくなるように構成され、この装置(300)は、N個の時間領域オーディオサンプルを含む時間領域オーディオサンプルブロック(410)を生成するように構成され、Nは正の整数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、ウィンドウ処理が、ウィンドウ処理後のフレームのウィンドウ処理後のサンプルz(n)を得るために、以下の式に基づき中間時間領域サンプル列の中間時間領域サンプルg(n)の掛け算をすることを含む。
nは0,…,T・N−1である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、ウィンドウ係数c(n)が付録4の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、この装置(300)は、オーディオ副帯値を生成するために使用される解析ウィンドウ関数(190)の時間逆転または指数逆転版である合成ウィンドウ関数(370)を使用するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、この装置(300)は、N個の時間領域オーディオ入力サンプルを含む時間領域オーディオサンプルブロック(410)を生成するように構成され、Nは正の整数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、この装置(300)は、N個のオーディオ副帯値を含むオーディオ副帯値ブロック(320)に基づき時間領域オーディオサンプルを生成するよう構成され、計算機(310)は、T・N個の中間時間領域オーディオサンプルを含む中間時間領域オーディオサンプル列(330)を算出するように構成され、Tは正の整数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、合成ウィンドウ関数がウィンドウ係数列に関して非対称であるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、第1部分が、合成ウィンドウ関数の全てのウィンドウ係数のうちの1よりも大きい絶対値を有する最大値を含むように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、第1部分が3/2・N個のウィンドウ係数を含み、第2部分が(T−3/2)・N個のウィンドウ係数を含むよう構成され、Tは中間時間領域サンプルブロック(330)に含まれるブロック340の個数を示す4以上の指数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、中間時間領域サンプル列のウィンドウ処理が、中間時間領域サンプルとウィンドウ係数の素子ごとの掛け算を含むように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、中間時間領域サンプル列とウィンドウ係数列に基づき、各中間時間領域サンプルが素子ごとに合成ウィンドウ関数(370)のウィンドウ係数で掛け算されるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、合成ウィンドウ関数のウィンドウ係数(370)が実数値であるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、ウィンドウ係数c(n)が付録3の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、ウィンドウ係数c(n)が付録2の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、合成ウィンドウ処理部(360)は、ウィンドウ係数c(n)が付録1の表に示されている関係を満たすように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、オーディオ副帯値を調和振動関数で掛け算し、掛け算されたオーディオ副帯値を合計することで、中間時間領域サンプル列の中間時間領域サンプルを算出するように構成され、調和振動関数の周波数は対応する副帯の中心周波数に基づいている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、調和振動関数が複合指数関数、正弦関数または余弦関数であるように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、複合値または実数値オーディオ副帯値に基づき、実数値中間時間領域サンプルを算出するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、実数値中間時間領域サンプルz(i,n)を以下の式に基づき算出するように構成されている。
整数nが0〜Nの範囲であり、Re(x)は複合値xの実数部分であり、π=3.14…は円周率である。fosc(x)は調和振動関数であり、計算機に与えられるオーディオ副帯値が複合値である場合、以下の通りである。
iは仮想単位である。計算機(310)に与えられるオーディオ副帯値が実数値である場合、fosc(x)は以下の通りである。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、中間時間領域サンプル列を生成するのに適合した周波数/時間変換機を有し、計算機(310)に与えられたオーディオ副帯値は中間時間領域サンプル列としてスペクトル表示される。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、周波数/時間変換機は、複合値または実数値オーディオ副帯値に基づき中間時間領域サンプル列を生成するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、整数nが20N−1〜2Nの範囲である場合、以下の式に基づき、オーディオ副帯値X(k)から中間時間領域サンプル列g(n)を算出するように構成されている。
整数nが0〜2N−1の範囲の場合、以下の式に基づき算出される。
整数jが0〜4の範囲であり、整数kが0〜N−1の場合、以下の式に基づき算出される。
Nはオーディオ副帯値の個数つまり時間領域オーディオサンプルの個数を示し、vは実数値ベクトルであり、Vprevは直前に生成された時間領域オーディオサンプルの実数値ベクトルvであり、iは仮想単位であり、πは円周率である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、計算機(310)は、整数nが20N−1〜2Nの範囲である場合、以下の式に基づき、オーディオ副帯値X(k)から中間時間領域サンプル列g(n)を算出するように構成されている。
整数nが0〜2N−1の範囲の場合、以下の式に基づき算出される。
整数jが0〜4の範囲であり、整数kが0〜N−1の場合、以下の式に基づき算出される。
Nはオーディオ副帯値の個数つまり時間領域オーディオサンプルの個数を示し、vは実数値ベクトルであり、Vprevは直前に生成された時間領域オーディオサンプルの実数値ベクトルvであり、πは円周率である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、重複加算出力部(400)は、ウィンドウ処理後の中間時間領域サンプルを重複方法でT個の連続するオーディオ副帯値ブロック(320)に基づき処理するように構成されている。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、重複加算出力部(400)は、時間領域サンプルout1(n)を以下の式に基づき出力するように構成されている。
nはサンプル指数を示す整数であり、zl,nはサンプル指数nと0〜T−1の範囲のフレーム指数または列指数lに対応するウィンドウ処理後の中間時間領域サンプルであり、l=0は最新のフレームまたは列に相当し、小さいlの値は以前に生成されたフレームまたは列に相当する。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、重複加算出力部(400)は、時間領域サンプルout(k)を以下の式に基づき出力するように構成されている。
wはウィンドウ処理後の中間時間領域サンプルを含むベクトルであり、kは0〜N−1の範囲の指数を示す整数である。
本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置において、この装置(300)は、オーディオ副帯値を生成するために使用された解析ウィンドウ関数(190)を示す信号または時間領域オーディオサンプルを生成するのに使用されるべき合成ウィンドウ関数(370)を示す信号を受信するように構成されている。
本発明の一実施形態によると、エンコーダ(510)は、本発明の一実施形態に係るオーディオ副帯チャンネルのオーディオ副帯値を生成する装置(560)を含む。
本発明の一実施形態によると、エンコーダ(510)はさらに、オーディオ副帯チャンネルのオーディオ副帯値を生成する装置(560)に接続され、装置(560)によって出力されたオーディオ副帯値を量子化・符号化し、量子化及び符号化されたオーディオ副帯値を出力するように構成されている量子化・符号化部(570)を含む。
本発明の一実施形態によると、デコーダ(580)は、本発明の一実施形態に係る時間領域オーディオサンプルを生成する装置(600)を含む。
本発明の一実施形態によると、デコーダ(580)はさらに、オーディオ副帯値を生成する装置(560)に接続され、符号化・量子化されたオーディオ副帯値を受信するように構成され、時間領域オーディオサンプルを生成する装置に接続され、復号化・復量子化されたオーディオ副帯値をオーディオ副帯値として装置(600)に提供するように構成された復量子化・復号化部(590)を含む。
本発明の一実施形態によると、SBRエンコーダ(520)は、SBRエンコーダ(520)に与えられた時間領域オーディオ入力サンプルフレームに基づき、オーディオ副帯チャンネルのオーディオ副帯値を生成する装置(530)、及びオーディオ副帯値を生成する装置(530)に接続され、オーディオ副帯値に基づきSBRパラメータを抜粋、出力するSBRパラメータ抜粋モジュール(540)を含む。
本発明の一実施形態によると、システム(610)は、システム(610)に与えられた時間領域オーディオ入力サンプルフレームに基づき、オーディオ副帯値を生成する装置(620)、及びオーディオ副帯値生成装置(620)によって生成されたオーディオ副帯値に基づき、時間領域オーディオサンプルを生成する装置(640)を含む。
本発明の一実施形態によると、システム(610)はSBRデコーダを含む。
本発明の一実施形態によると、システムはさらに、オーディオ副帯値を生成する装置(620)と時間領域オーディオサンプルを生成する装置(640)との間に相互接続され、SBRデータを受信し、SBRデータとオーディオ副帯値生成装置(620)からのオーディオ副帯値に基づきオーディオ副帯値を修正または加算するように構成されたHF生成部(630)を含む。
本発明の実施形態に係る全ての装置及び方法に関して、実施の詳細により、付録1,3の表に示されている値に基づくウィンドウ係数を得るために、指数128〜255,384〜511に対応するウィンドウ係数に関する符号変換(比率−1の掛け算)がさらに実行されてもよい。つまり、ウィンドウ関数のウィンドウ係数は付録1の表に示されているウィンドウ係数に基づくものである。図面に示されているウィンドウ関数のウィンドウ係数を得るために、指数0〜127,256〜383,512〜639に対応する表中のウィンドウ係数が(+1)で掛けられ(つまり符号変換は行われない)、指数128〜255,384〜511に対応するウィンドウ係数は(−1)で掛けられる(つまり符号変換が行われる)必要がある。付録3の表に示されている関係をこのように扱う必要がある。
さらなる遅延、要因、付加的な係数の導入及び別の簡単な関数の導入も、式に基づく本応用の構造に含まれると理解されるべきである。さらに、簡単な定数、定加数などは削除してもよい。また、代数変換、同値変換及び近似式(例えばテイラー近似式)は式の結果を全くあるいは意義深く変えることはない。換言すれば、わずかな変更や変換が結果において本質的に同じものとなるならば、それらは、式に基づいていると考えられる。
以上、本発明を特に実施形態に関して説明してきたが、当業者にとっては、本発明の要旨の範囲内での形や詳細における多様な変更が可能である。これらの変更は、ここで開示し、以下のクレームにより理解される広い概念から離れない限り、本発明の別の実施形態として理解すべきである。