少なくとも2つの入力値を処理するための装置および方法
丸め誤差の減少のために、第1および第2の非整数の入力値は、丸められ第3の入力値に加算される(269)非整数の結果値を得るために非整数の状態で、例えば加算によって、提供され(260、262)、組み合わされる(268)。したがって、丸め誤差は、リフティングステップに分割された2つの回転間、または、リフティングステップに分割された第1回転およびそれに続く多次元リフティングの連なりの第1のリフティングステップ間のインターフェイスで減少させることができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号処理に関し、とりわけ可逆符号化アプリケーションに特に適するオーディオサンプルまたはビデオサンプルのような連続値の信号処理に特に関する。
【0002】
本発明は、オーディオおよび/またはイメージ情報を含む離散値の圧縮アルゴリズムにさらに適し、ハフマンの形態をとるエントロピー符号化、または算術符号化のような符号化が後に続く周波数領域、時間領域または位置領域の変換を含む符号化アルゴリズムに特に適している。
【背景技術】
【0003】
MPEGレイヤ3(MP3)またはMPEG AACのような最新のオーディオ符号化方法は、オーディオ信号のブロックに関する周波数表現を得るために、いわゆる変形離散コサイン変換(MDCT)のような変換を用いる。このようなオーディオ符号器は、通常、時間離散オーディオサンプルのストリームを得る。オーディオサンプルのストリームは、例えば1024個または2048個の窓掛けられたオーディオサンプルの窓掛けられたブロックを得るために窓掛けられる。窓掛けに関して、サイン窓などのような様々な窓関数が用いられる。
【0004】
窓掛けられた時間離散オーディオサンプルは、次に、フィルタバンクによりスペクトル表現に転換される。このために、原則として、フーリエ変換、または特別な理由によってはフーリエ変換の変形、例えばFFTまたは上述のMDCTを用いることができる。その後、必要に応じて、フィルタバンクの出力端におけるオーディオスペクトル値のブロックがさらに処理される。上記のオーディオ符号器では、次にオーディオスペクトル値の量子化が行われ、量子化段階は、一般に、量子化により取り込まれた量子化ノイズが心理音響的なマスキングしきい値を下回るように、すなわち「マスクして除去される」ように選択される。量子化は、不可逆符号化である。データ量の更なる減少を得るために、量子化されたスペクトル値は、次に、例えばハフマン符号化によりエントロピー符号化される。スケール係数などのような副次的な情報を加算されることにより、記憶または送信することができるビットストリームが、ビットストリームマルチプレクサによりエントロピー符号化された量子化スペクトル値から形成される。
【0005】
オーディオ復号器では、ビットストリームは、ビットストリームデマルチプレクサにより、符号化された量子化スペクトル値と副次的な情報とに分割される。エントロピー符号化された量子化スペクトル値は、まず、量子化スペクトル値を得るためにエントロピー復号化される。次に、量子化スペクトル値は、復号化されたスペクトル値を得るために逆量子化され、これらスペクトル値は量子化ノイズを含むが、この量子化ノイズは心理音響的なマスキングしきい値を下回るので、聞こえない。次に、これらスペクトル値は、時間離散復号化されたオーディオサンプルを得るために、合成フィルタバンクにより時間表現に転換される。合成フィルタバンクでは、変換アルゴリズムに対して逆の変換アルゴリズムを用いる必要がある。さらに、周波数−時間逆方向変換後に窓掛けを逆に行う必要がある。
【0006】
良好な周波数選択性を得るために、最新のオーディオ符号器は、一般に、ブロックオーバラップを用いる。このような場合が図6aに示される。まず、例えば2048個の時間離散オーディオサンプルが得られ、手段402により窓掛けられる。窓掛けを行う手段402は、2N個のサンプルの窓長を有し、2N個の窓掛けられたサンプルのブロックを出力側に提供する。窓のオーバラップを達成するために、2N個の窓掛けられたサンプルの第2ブロックが手段404により形成され、手段404は図6aでは単に明確にするために手段402から離して示される。しかしながら、手段404に供給された2048個のサンプルは、第1の窓のすぐ後に続く時間離散オーディオサンプルではなく、手段402により窓掛けられたサンプルの後半を含み、これに加えて1024個のみの「新たな」サンプルを含む。オーバラップは、図6aに、50%のオーバラップ度を生じる手段406により象徴的に示される。次に、手段402により出力された2N個の窓掛けられたサンプルと手段404により出力された2N個の窓掛けられたサンプルとの両方は、手段408および410によりそれぞれMDCTアルゴリズムを受ける。手段408は、既知のMDCTアルゴリズムに従ってN個のスペクトル値を第1の窓に提供し、一方、手段410もN個のスペクトル値を提供するが、第2の窓に供給し、この場合、第1の窓と第2の窓との間に50%のオーバラップが存在する。
【0007】
復号器では、図6bに示すように、第1の窓のN個のスペクトル値が逆変形離散コサイン変換を実行する手段412に供給される。第2の窓のN個のスペクトル値も同様である。これらは、逆変形離散コサイン変換を実行する手段414に供給される。両方の手段412および414は、それぞれ、2N個のサンプルを第1の窓に2N個のサンプルを第2の窓にそれぞれ提供する。
【0008】
図6bにTDAC(時間領域エイリアシングキャンセル)で示された手段416では、2つの窓がオーバラップしているという事実が考慮されている。特に、第1の窓の後半のサンプルy1、すなわちインデックスN+kの付いたサンプルy1は、第2の窓の前半のサンプルy2、すなわちインデックスkの付いたサンプルy2と合計され、その結果、N個の復号化された時間サンプルが出力側にすなわち復号器内に生じる。
【0009】
加算関数とも呼ばれる手段416の関数により、図6aにより概略的に示される符号器において実行される窓掛けは多少自動的に考慮され、その結果、いかなる明確な「逆窓掛け」も図6bにより示される復号器内において行われる必要がないことに留意すべきである。
【0010】
手段402または404により実施される窓関数がw(k)と称され、インデックスkが時間インデックスを表す場合、2乗された窓重みw(N+k)に2乗された窓重みw(k)が加算されると1であり、kが0〜N−1の範囲になるという条件を満たす必要がある。サイン関数の前半波形に従う窓重み付けを有するサイン窓が用いられる場合、この条件は、サインの2乗とコサインの2乗とを合わせると各角度に対して値1が生じるために、常に満たされる。
【0011】
図6aで説明されるMDCT関数を後に続けて用いる窓掛け法では、時間離散サンプルの乗法による窓掛けが、サイン窓を考えると、0°と180°との間の角度のサインが、90°の角度を除いて整数を生じないため、浮動小数点数で達成されるという欠点がある。整数の時間離散サンプルが窓掛けられる場合でも、浮動小数点数は窓掛けられた後に生じる。
【0012】
したがって、心理音響的な符号器が用いられないとしても、すなわち、可逆符号化が達成されるべきであれば、合理的に管理できるエントロピー符号化を実行できるように、量子化が手段408および410の出力部においてそれぞれ必要である。
【0013】
一般に、可逆オーディオおよび/またはビデオ符号化のための現在既知の整数変換は、そこで用いられる変換をギブンス回転に分解し、リフティングスキームを各ギブンス回転に適用することにより得られる。したがって、丸め誤差が各ステップにおいて取り込まれる。ギブンス回転の後に続く段階に対して、丸め誤差は累積し続ける。結果として生じる近似誤差は、特に、オーバラップおよび加算を用いる既知のMDCT(MDCT=変形離散コサイン変換)における場合のように、例えば1024個のスペクトル値を提供するために長期の変換が用いられる場合に、可逆オーディオ符号化方法対して特に問題になる。特に、オーディオ信号が非常に低いエネルギ量を一般的に有する高周波数範囲では、近似誤差は、実際の信号よりも急速に大きくなるおそれがあるので、これらの方法は、可逆符号化に関して、特にそれにより達成できる符号化効率に関して問題がある。
【0014】
オーディオ符号化に関して、整数変換、すなわち、整数出力値を生成する変換アルゴリズムは、特に、DC成分を考慮しない既知のDCT−IVに基づくのに対して、イメージアプリケーションに対する整数変換は、むしろ、DC成分に対する規定を特に含むDCT−IIに基づく。このような整数変換は、例えば、ワイ・ゾン(Y.Zeng)、ジー・ビー(G.Bi)およびゼット・リン(Z.Lin)著の「リフティング因数分解に基づく整数正弦波変換」(Integer sinusoidal transforms based on lifting factorization)、proc.ICASSP’01、2001年5月、p.1,181−1,184、ケイ・コマツ(K.Komatsu)およびケイ・セザキ(K.Sezaki)著の「可逆離散コサイン変換」(Reversible Discrete Cosine Transform)、Proc.ICASSP、1998年、第3巻、p.1,769−1,772、ピー・ハオ(P.Hao)およびキュー・シー(Q.Shi)著の「可逆整数マッピングのためのマトリクス因数分解」(Matrix factorizations for reversible integer mapping)、IEEEトランザクション信号処理(IEEE Trans.Signal Processig)、信号処理(Signal Processig)、第49巻、p.2,314−2,324、並びに、ジェー・ワン(J.Wang)、ジェー・サン(J.Sun)およびエス・ユー(S.Yu)著の「整数から整数への1−dおよび2−d変換」(1−d and 2−d transforms from integers to integers)、proc.ICASSP’03、香港、2003年4月において知られている。
【0015】
上述したように、上記で説明した整数変換は、変換をギブンス回転に分解し、既知のリフティングスキームをギブンス回転に適用することに基づき、これにより、丸め誤差を累積するという問題を生じる。これは、特に、1回の変換において、すなわち各リフティングステップの後で、丸めを何度も実行しなければならないので、特に、対応の多数のリフティングステップを生じさせる長期の変換では、極めて多数の丸めを必要とするという事実による。前述のように、これは、リフティングステップの後ごとに次のリフティングステップを実行するために丸めが実行されるため、結果的に累積誤差をもたらし、特に、比較的複雑な処理ももたらす。
【0016】
続いて、MDCT窓掛け分解が独国特許出願公開第10129240号で示すように図9〜図11に関して示され、この場合、リフティングマトリクスおよび対応の丸めを用いるギブンス回転へのMDCT窓掛けのこの分解は、完全な整数のMDCT近似値を得るために、すなわち、順方向および逆方向の双方の変換コンセプトをMDCTの例として与える本発明による整数MDCT(IntMDCT)を得るために、転換について図1で論じるコンセプトと逆転換について図2で論じるコンセプトとを有利に組み合わせる。
【0017】
図3は、IntMDCT整数変換アルゴリズムが動作する整数値を得るためにオーディオ信号を表す時間離散サンプルを処理するための本発明の好適な装置の概観図を示す。時間離散サンプルは、図3に示す装置により窓掛けられ、選択的に、スペクトル表現へ転換される。入力端10で装置に供給される時間離散サンプルは、変換手段により特に整数DCTを実行するための手段14によりスペクトル表現へ転換するのに適する整数の窓掛けられたサンプルを出力端12で得るために、2N個の時間離散サンプルに対応する長さを有する窓wで窓掛けられる。整数DCTは、N個の入力値からN個の出力値を生成するように設計され、それはMDCT方程式のため2N個の窓掛けられたサンプルからN個のスペクトル値だけを生成する図6aのMDCT関数408と対照的である。
【0018】
時間離散サンプルの窓掛けに関して、まず、2つの時間離散サンプルが手段16で選択され、これらが互いに時間離散サンプルのベクトルを表す。手段16により選択された時間離散サンプルは、窓の第1の4分の1内にある。その他の時間離散サンプルは、図5に関して詳細に説明するように、窓の第2の4分の1内にある。手段16により生成されたベクトルは、次に、次元2×2の回転マトリクスに提供され、この動作は直接実行されるのではなく、いくつかのいわゆるリフティングマトリクスにより実行される。
【0019】
リフティングマトリクスは、窓wに依存し、「1」または「0」に等しくない1つの要素だけを含むという特性を持つ。
【0020】
リフティングステップにおけるウェーブレット変換の因数分解は、専門の出版物「リフティングステップにおけるウェーブレット変換の因数分解」(Factoring Wavelet Transforms Into Lifting Steps)、イングリッド・ドベシィ(Ingrid Daubechies)およびウィム スウェルデン(Wim Sweldens)著、プレプリント、ベル研究所(Bell Laboratories)、ルーセント テクノロジー(Lucent Technologies)、1996年に、公開されている。一般に、リフティングスキームは、同一の低域通過フィルタまたは高域通過フィルタを有する完全な再構築フィルタ対において簡単な関係である。相補的なフィルタの各対は、リフティングステップに因数分解できる。これは特にギブンス回転に適用する。ポリフェーズマトリクスがギブンス回転である場合を考える。次式が適用する。
【0021】
等号の右手側に位置する3個のリフティングマトリクスの各々は、主対角要素として値「1」を有する。各リフティングマトリクスには、さらに、0に等しい副対角要素と、回転角度αに依存する副対角要素とがある。
【0022】
次に、ベクトルは、第1の結果ベクトルを得るために、3番目のリフティングマトリクス、すなわち、上記の式の一番右に位置するリフティングマトリクスに乗算される。これは、図3に手段18により示される。次に、第1の結果ベクトルは、図3に手段20により示されるように、一連の実数を一連の整数にマッピングする丸め関数で丸められる。手段20の出力端では、丸められた第1の結果ベクトルが得られる。次に、丸められた第1の結果ベクトルは、第2の結果ベクトルを得るために、それを中央のすなわち2番目のリフティングマトリクスに乗算するための手段22に供給され、第2の結果ベクトルは、丸められた第2の結果ベクトルを得るために、手段24で丸められる。次に、丸められた第2の結果ベクトルは、第3の結果ベクトルを得るために、それを上記の式の左側に示すリフティングマトリクスすなわち1番目のリフティングマトリクスに乗算するための手段26に供給され、第3の結果ベクトルは、整数の窓掛けられたサンプルを出力端12で最終的に得るために、最終的に手段28により丸められ、整数の窓掛けられたサンプルのスペクトル表現が所望のものであれば、整数のスペクトル値をスペクトル出力端30で得るために、整数の窓掛けられたサンプルは次に手段14により処理される必要がある。
【0023】
好ましくは、手段14は、整数DCTとして実施される。
【0024】
長さNを用いるタイプ4に従う離散コサイン変換(DCT−IV)は、次式により与えられる。
【0025】
DCT−IVの係数は、正規直交のN×Nマトリクスを形成する。専門の出版物のピー・ピー・ヴァイドヤナハン(P.P.Vaidyanathan)著、「マルチレートシステムおよびフィルタバンク」(Multirate Systems And Filter Banks)、プレンティスホール(Prentice Hall)、(イングルウッドクリフ(Englewood Cliffs)、1993年により記述されているように、各直交のN×Nマトリクスは、N(N−1)/2個のギブンス回転に分解できる。その他の分解も存在することに留意すべきである。
【0026】
様々なDCTアルゴリズムの分類に関して、エッチ・エス・マルヴァ(H.S.Malvar)著、「重ねられた変換を有する信号処理」(Signal Processing With Lapped Transforms)、アーテック・ハウス(Artech House)、1992年を参照する。一般に、DCTアルゴリズムは、基底関数の種類で異なる。この場合に好ましいDCT−IVは、非対称の基底関数、すなわち、コサイン1/4波、コサイン3/4波、コサイン5/4波、コサイン7/4波などを含むが、例えばタイプIIの離散コサイン変換(DCT−II)は、軸対称および点対称の基底関数を有する。例えば、0番目の基底関数はDC成分を有し、1番目の基底関数はコサイン波の半分であり、2番目の基底関数は全部のコサイン波である。DCT−IIがDC成分に特に重点を置くという事実のため、ビデオ符号化では用いられるが、オーディオ符号化では用いられない。その理由は、DC成分が、ビデオ符号化に比べてオーディオ符号化において関連しないためである。
【0027】
以下には、ギブンス回転の回転角度αがどのように窓関数に依存するかを論じる。
【0028】
2Nの窓長を用いるMDCTは、長さNを用いるタイプIVの離散コサイン変換まで軽減することができる。これは、TDAC動作を時間領域において明確に実行し、DCT−IVを適用することにより達成される。50%のオーバラップの場合、ブロックtの窓の左半分は、先行のブロックすなわちブロックt−1の右半分とオーバラップする。連続するブロックt−1およびtのオーバラップ部分は、次のように、時間領域において前処理され、すなわち変換前に処理され、すなわち図3の入力端10と出力端12との間で処理される。
【0029】
上記の式で波形符号を有しないx値は、入力端10での値、および/または、選択するための手段16の後の値であるが、波形符号を有する値は、図3の出力端12での値である。連続するインデックスkが0〜N/2−1の範囲に及ぶのに対して、wは窓関数を表す。
【0030】
窓関数wのTDAC条件から、次式を適用する。
【0031】
ある角度αk、ここで、k=0、・・・、N/2−1に対して、時間領域におけるこの前処理は、先に述べたようにギブンス回転として記すことができる。
【0032】
ギブンス回転の角度αは、次のように窓関数wに依存する。
α=arctan[w(N/2−1−k)/w(N/2+k)] (5)
【0033】
窓関数wがこのTDAC条件を満たす限り、いかなる窓関数wをも用いることができることに留意すべきである。
【0034】
以下には、カスケードされた符号器および復号器が、図4に関して説明される。1つの窓により一緒に「窓掛けられる」時間離散サンプルx(0)〜x(2N−1)は、まず、サンプルx(0)およびサンプルx(N−1)すなわち窓の第1の4分の1からのサンプルと窓の第2の4分の1からのサンプルとが手段16の出力端でベクトルを形成するために選択されるように、図3の手段16によりまず選択される。交差する矢印は、DCT−IVブロックの入力端で整数の窓掛けられたサンプルを得るために、手段18、20および22、24および26、28のリフティング乗算およびその後の丸めをそれぞれ概略的に表す。
【0035】
第1ベクトルが上述のように処理された場合、第2ベクトルは、サンプルx(N/2−1)およびx(N/2)、すなわち、この場合も窓の第1の4分の1からのサンプルと窓の第2の4分の1からのサンプルとからさらに選択され、図3に示すアルゴリズムにより再び処理される。これと同様に、窓の第1および第2の4分の1からの他のサンプル対のすべては処理される。最初の窓の第3および第4の4分の1について、同じ処理が実行される。この時、2N個の窓掛けられた整数のサンプルが出力端12に存在し、これらは、次に、図4に示すようにDCT−IV変換に供給される。特に、第2および第3の4分の1の整数の窓掛けられたサンプルはDCTに供給される。窓の第1の4分の1の窓掛けられた整数のサンプルは、先行の窓の第4の4分の1の窓掛けられた整数のサンプルとともに先行のDCT−IVに処理される。これと同様に、図4では、窓掛けられた整数のサンプルの第4の4分の1は、次の窓の第1の4分の1とともにDCT−IV変換に供給される。図4に示す中央の整数DCT−IV変換32は、次に、N個の整数のスペクトル値y(0)〜y(N−1)を提供する。窓掛けおよび変換が整数出力値を生じるので、これら整数のスペクトル値は、次に、割り込みの量子化を必要とせず、例えば、簡単にエントロピー符号化することができる。
【0036】
図4の右半分には、復号器が示される。逆方向変換および「逆窓掛け」からなる復号器は、符号器とは逆に動作する。図4に示すように、DCT−IVの逆方向変換に逆DCT−IVを使用できるということは既知である。次に、復号器DCT−IV34の出力値は、手段34の出力端における整数の窓掛けられたサンプルおよび/または、先行および次の変換から時間離散オーディオサンプルx(0)〜x(2−N1)を再び生成するために、図4に示すように、先行の変換および/または次の変換の対応の値で逆に処理される。
【0037】
出力側の動作は、逆ギブンス回転により、すなわち、ブロック26、28および22、24および18、20をそれぞれ逆方向に向きを変えて行われる。これは、式(1)の2番目のリフティングマトリクスに関して詳細に示される。丸められた第1の結果ベクトルを2番目のリフティングマトリクスに掛けること(手段22)により(符号器において)第2の結果ベクトルが形成される場合、次式が生じる。
【0038】
式(6)の右側の値x、yは、整数である。しかし、これは、値xsinαに適用されない。ここでは、次式に示すように、丸め関数rが取り込まれる必要がある。
【0039】
この動作は手段24により実行される。
【0040】
(復号器における)逆マッピングは以下のように規定される。
【0041】
丸め動作の前におけるマイナス記号により、誤差を取り込まずにリフティングステップの整数近似値を反転できるということが明らかになる。3つのリフティングステップの各々へのこの近似値のアプリケーションはギブンス回転の整数近似値をもたらす。逆に丸められたリフティングステップを逆の順序で移動することにより、すなわち、復号化において図3のアルゴリズムが下から上に実行されれば、(符号器において)丸められた回転は、誤差を取り込まずに(復号器において)反転することができる。
【0042】
丸め関数rが点対称であれば、逆に丸められた回転は、角度−αを有する丸められた回転と同一であって、以下のように表される。
【0043】
復号器すなわちこの場合では逆ギブンス回転のリフティングマトリクスは、表示「sinα」を表示「−sinα」に単に置き換えることにより式(1)から直接生じる。
【0044】
以下には、図5に関して、オーバラップする窓40〜46を用いる共通のMDCTの分解が再び示される。窓40〜46は、それぞれ、50%のオーバラップを有する。まず、矢印48により概略的に示されるように、ある窓の第1および第2の4分の1内の窓、および/または、ある窓の第3および第4の4分の1内の窓ごとにギブンス回転が実行される。次に、ある窓の第2および第3の4分の1と、次の窓の第4および第1の4分の1とがそれぞれDCT−IVアルゴリズムにより常に一緒にスペクトル表現に転換されるように、回転値すなわち窓掛けられた整数のサンプルがNからNへのDCTに供給される。
【0045】
したがって、共通のギブンス回転が、連続して実行されるリフティングマトリクスに分解され、この場合、結果ベクトルをリフティングマトリクスにそれぞれ掛ける前に、結果ベクトルが整数だけを有するように、浮動小数点数が生成された直後に浮動小数点数を丸められるように、各リフティングマトリクス乗算後、丸めステップが挿入される。
【0046】
したがって、出力値は常に整数のままであって、この場合、整数入力値をも用いることが好ましい。これは、制限を意味するものではない。その理由は、CDに記憶されるような例示的なPCMサンプルは、いずれも、ビット幅に依存して、すなわち、時間離散デジタル入力値が16ビット値であるか24ビット値であるかに依存して変化する値範囲を有する整数の数値であるためである。いずれにしても、上述のように、逆回転を逆の順序で実行することにより、すべての処理を反転できる。したがって、完全な再構築、すなわち、可逆変換をともなうMDCTの整数近似値が存在する。
【0047】
図示の変換は、浮動小数点数値の代わりに整数出力値を提供する。それは、順方向変換およびその後の逆方向変換を実行する際にいかなる誤差も取り込まないように、完全な再構築を行う。本発明の好適な実施形態によれば、この変換は、変形離散コサイン変換の代わりになるものである。しかしながら、回転への分解、並びに、リフティングステップへの回転の分解が可能である限り、その他の変換方法も整数で実行することができる。
【0048】
整数MDCTは、MDCTの有益な特性の大部分を有する。これは、オーバラップしないブロック変換の場合よりも良好な周波数選択性が得られるオーバラップ構造体を有する。変換前の窓掛け内に既に考慮されているTDAC関数のため、オーディオ信号を表すスペクトル値の総数が入力サンプルの総数に等しくなるように、限界サンプリングが維持される。
【0049】
浮動小数点サンプルを提供する標準のMDCTに比較すれば、上述した好適な整数変換は、小さい信号レベルが存在するスペクトル範囲内にだけノイズが標準のMDCTに比べて増大されるとはいえ、このノイズの増大が、著しい信号レベルで顕著なものとならないということを示している。しかし、整数処理は、ハードウェアで簡単かつ迅速に実施できるシフト/加算ステップへ容易に分解できる乗算ステップだけが用いられるため、効率的なハードウェアの実施を示唆する。もちろん、ソフトウェアの実施も可能である。
【0050】
整数変換は、オーディオ信号の良好なスペクトル表現を提供し、かつ、整数の領域内に残る。これをオーディオ信号の音の部分に適用すれば、良好なエネルギ濃度を生じる。この場合、エントロピー符号器とともに、図3に示す窓掛け/変換を単にカスケードすることにより、効率的な可逆符号化スキームを形成することができる。特に、エスケープ値を用いてスタックされた符号化は、MPEG AACで用いられるように有利である。すべての値が所望のコード表に適合するまで、2の特定の累乗によりすべての値を縮小し、次に、切り捨てられた最下位ビットを追加として符号化することが好ましい。大きいコード表を使用する代わりのものと比較して、上述した代わりになるものは、コード表を記憶するための記憶消費量に関して、より有益である。一部の最下位ビットを単に切り捨てることによっても、ほとんど可逆符号器を得ることができる。
【0051】
特に音の信号に対して、整数スペクトル値のエントロピー符号化は、高い符号化利得を可能にする。信号の過渡部分に対して、過渡信号の平らなスペクトルのため、言い換えれば、0に等しいかほとんど0である少数のスペクトル値のため、符号化利得は低い。しかしながら、ジェー・ヘレ(J.Herre)およびジェー・ディ・ジョンストン(J.D.Johnston)著、「時間ノイズシェーピング(TNS)を用いることによる知覚オーディオ符号器のパフォーマンスの強化」(Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping(TNS))、第101回エイイーエス・コンベンション(AES Convention)、ロサンジェルス、1996年、プレプリント4384に記載されているように、周波数領域で線形予測を用いて、この平坦性を利用することができる。代わりとなるものは、開ループを有する予測装置である。もう1つの代わりとなるものは、閉ループを有する予測装置である。最初の代わりとなるもの、すなわち、開ループを有する予測装置は、TNSと呼ばれる。予測後の量子化は、結果として生じた量子化ノイズをオーディオ信号の時間構造に適合させることにつながるので、心理音響的なオーディオ符号器におけるプリエコーを防止する。可逆オーディオ符号化に対して、もう1つの代わりとなるもの、すなわち、閉ループを有する予測装置は、より適している。その理由は、閉ループを用いる予測が入力信号の正確な再構築を可能にするためである。この技術が生成されたスペクトルに適用される場合、整数の領域内にとどめるために、予測フィルタの各ステップ後、丸めステップを実行する必要がある。逆フィルタおよび同一の丸め関数を用いることにより、元のスペクトルを正確に再生することができる。
【0052】
データ整理のために2つのチャネル間で冗長性を利用するために、π/4の角度を用いる丸められる回転が利用される場合、中央側符号化も可逆的に用いることができる。ステレオ信号の左チャネルおよび右チャネルの合計および差を計算する代わりとなるものと比較して、丸められた回転は、エネルギ節約の利点を有する。いわゆるジョイントステレオ符号化技術の利用は、それが標準のMPEG AACでも実行されるように、各帯域に対してオンまたはオフに切り換えることができる。より柔軟に2つのチャネル間の冗長性を減少できるように、更なる回転角度をも考慮することができる。
【0053】
特に、図3に関して示された変換コンセプトは、順方向変換およびその後の逆方向変換に対して可逆的に動作するMDCTの整数実施すなわちIntMDCTを提供する。さらに、丸めステップ20、24および28と、整数DCT(図3のブロック14)における対応の丸めステップとにより、整数処理、すなわち、例えばリフティングマトリクスとの浮動小数点乗算(図3のブロック18、22および26)により生成された値よりも大まかに量子化された値を有する処理を常に可能にする。
【0054】
その結果、計算に関してIntMDCT全体を効率的に実行できるようになる。
【0055】
このIntMDCTの可逆性、または、一般的に言って、可逆を意味するすべての符号化アルゴリズムの可逆性は、符号化された信号を実現するように信号を符号化し、その後、符号化/復号化された信号を実現するように信号を再び復号化すると信号が元の信号と全く同じように「見える」という事実に関連する。言い換えれば、元の信号は、符号化/復号化された元の信号と同一である。これは、いわゆる不可逆符号化と明らかに正反対のものであり、不可逆符号化では、心理音響的なベースで動作するオーディオ符号器の場合と同様に、データは、符号化処理により、特に、心理音響的なモデルにより制御される量子化処理により、回復できない程に損失を受ける。
【0056】
もちろん、丸め誤差は、依然として取り込まれる。したがって、図3に関してブロック20、24および28で示すような丸めステップが実行され、もちろん、丸め誤差を取り込み、丸め誤差は、逆動作が実行される際に復号器内で「削減される」だけである。したがって、可逆符号化/復号化コンセプトでは、丸め誤差が取り込まれて、丸め誤差を再び削減できるのに対して、不可逆符号化/復号化コンセプトの場合では、このことが当てはまらないという点で、可逆符号化/復号化コンセプトは、不可逆符号化/復号化コンセプトとは本質的に異なる。
【0057】
しかしながら、符号化された信号を考えれば、すなわち、変換符号器の例では、時間サンプルのブロックのスペクトル、順方向変換の丸め、および/または、一般的にこのような信号の量子化により、信号に取り込まれる誤差を生じさせる。したがって、丸め誤差は、信号の理想的な誤差のないスペクトル上に重ね合わされ、この誤差は、典型的に、例えば図3の場合に、考えられるスペクトル範囲のすべての周波数成分を一様に含むホワイトノイズである。したがって、理想的なスペクトル上に重ね合わされたこのホワイトノイズは、例えば、窓掛け中、すなわち、ブロック14の実際のDCTよりも前の信号の前処理中、ブロック20、24および28の丸めにより生じる丸め誤差を意味する。復号器が正確な可逆再構築を実現するために、符号器に取り込まれたすべての丸め誤差を要求するので、可逆性要求に関して、すべての丸め誤差が必然的に符号化され、すなわち復号器に送信されなければならないことに特に留意すべきである。
【0058】
スペクトル表現について何も「行われ」なければ、すなわち、スペクトル表現が記憶され、送信され、正確に整合する逆の復号器により再び復号化されるだけの場合、丸め誤差に問題がない場合がある。この場合、丸め誤差がどのくらいスペクトルに取り込まれたかに関係なく、可逆性の基準は、常に満たされる。しかしながら、スペクトル表現、すなわち、丸め誤差を含む元の信号の理想的なスペクトル表現について何かが行われたならば、例えば、拡張性層が生成されたならば、全てこれらのことはよりよく機能し、丸め誤差がより小さくなる。
【0059】
したがって、一方において信号を特別の復号器により可逆的に再構築すべきであるが、理想的でない可逆復号器にもスペクトル表現を与えることができるという点、または、非理想可逆復号器がスケーリング層を生成できるという点などで柔軟性を保つため、信号はスペクトル表現内に最小限の丸め誤差を持つべきでもあるという要求も可逆符号化/復号化にある。
【0060】
上述のように、丸め誤差は、考えられるスペクトル全体に及ぶホワイトノイズとして表される。その一方で、特に、可逆にとりわけ興味を持つような高品質アプリケーション、すなわち、96kHzのような極めて高いサンプリング周波数を有するオーディオアプリケーションにおいて、オーディオ信号は、特定のスペクトル範囲内に合理的な信号内容だけを有し、典型的に、特定のスペクトル範囲は、20kHzまで達し、多くとも20kHzである。オーディオ信号の最大信号エネルギが集中する範囲は、典型的に、0と10kHzとの間の範囲であるのに対して、10kHzよりも上の範囲では、信号エネルギがかなり減少する。しかしながら、これは、丸めにより取り込まれたホワイトノイズにとって問題ではない。それは、信号エネルギの考えられるスペクトル範囲の全体にわたって重ね合わされる。その結果、スペクトル範囲において、すなわち、オーディオ信号エネルギが全くなくまたはほんの少しある高スペクトル範囲において典型的に、丸め誤差しかないということになる。これと同時に、特に非決定性のため、丸め誤差は、符号化にとって困難でもあり、すなわち、比較的高いビット要求に関して、丸め誤差を符号化できる。これらビット要求は、特にいくつかの可逆アプリケーションにおいて、決定的な役割を果たさない。しかしながら、ますます普及する可逆符号化アプリケーションに対して、不可逆符号化コンセプトから既知であるように、ここでもビット効率を著しくよく動作して、可逆アプリケーションに内在する品質低下しない利点を対応のビット効率とも組み合わせることは極めて重要である。
【0061】
したがって、丸め誤差を復号化において削減できるという点で可逆状況において丸め誤差に問題はないけれども、第1に実行すべき可逆復号化および/または再構築を可能にするため、丸め誤差は、依然として極めて重要である。他方では、既に述べたように、丸め誤差は、スペクトル表現が問題になる、すなわち、丸められていない信号の理想的なスペクトル表現と比較して、スペクトル表現をゆがめる原因になっている。スペクトル表現すなわち符号化信号が実際に重要であるアプリケーションの特定の場合、すなわち、例えば様々なスケーリング層が符号化信号から生成される場合、可能な限り少ない丸め誤差を有する符号化表現を得ることは依然として望ましく、しかしながら、再構築に必要とされる丸め誤差は削減されない。
【発明の開示】
【発明が解決しようとする課題】
【0062】
本発明の目的は、入力値を処理するためのアーチファクトを削減するコンセプトを提供することである。
【課題を解決するための手段】
【0063】
この目的は、請求項1に記載の少なくとも2つの入力値を処理するための装置、または、請求項11に記載の少なくとも2つの入力値を処理するための方法、または、請求項12に記載のコンピュータプログラムにより達成される。
【0064】
本発明は、2つの値が実際に丸められなければならなく、次に2つの丸められた値が、例えば加算により、まず、2つの値を丸めていない状態ですなわち浮動小数点表現として加算し、次に、加算された出力値を第3の値に加算だけすることにより、第3の更なる値に組み合わされる時はいつでも、丸め誤差の減少が丸め誤差を減少することにより達成できるという発見事項に基づく。各値が個々に処理される通常の手順に比較して、本発明のコンセプトは、さらに、1つの合計処理および1つの丸め処理を節約するので、本発明のコンセプトは、丸め誤差が減少されるという事実に加えて、より効率的なアルゴリズムの実行にも寄与する。
【0065】
本発明の好適な実施形態では、2つの回転が互いに「隣接する」リフティングステップに分割される場合、すなわち、第1の値が最初に第3の値とともに「回転」する状況がある場合、および、この最初の回転の結果が次に第2の値と再び回転する場合、本発明のコンセプトが丸め誤差を減少するために用いられる。
【0066】
丸め誤差を減少するための本発明のコンセプトのアプリケーションの更なるケースは、長さの半分すなわちN/2個のポイントを有する2つのDCTにNポイントDCTが分割されるときに生じるように、多次元リフティングコンセプトのリフティング段階がバタフライ演算により処理されるときに存在する。この場合、実際の多次元リフティングの前にバタフライ演算段階があり、多次元リフティングの後に回転段階がある。特に、バタフライ演算段階により必要とされる丸めは、丸め誤差を減少するために、多次元リフティングコンセプトの第1のリフティング段階の丸めに組み合わされる。
【0067】
変換用の多次元リフティング処理および整数窓掛け/前処理を用いる整数MDCTにおける丸め段階の数が、本発明の適用なしに従来技術に比較して、既に著しく減少しているので、特にこの状況では、本発明のコンセプトは、既にわずかではあるが残りの丸め誤差を著しく減少することに寄与する。この結果として、例えば、理想的なスペクトルに対してほんのわずかな偏差を有するスペクトルを生じ、依然として存在するが、丸め誤差を非常に減少している。
【0068】
特に、可逆符号化/復号化の面において、本発明は、丸め誤差のスペクトル整形と組み合わせることができ、この場合、依然として残存する丸め誤差は、それがいずれにしろ高い信号エネルギを有する符号化すべき信号の周波数範囲内に「収められ」、その結果として、その信号がとにかくエネルギを持たない範囲内に丸め誤差が存在しないように、スペクトル整形される。従来技術では、可逆符号化、特に、整数アルゴリズムに基づく可逆符号化において、丸め誤差が、信号のスペクトル全体にわたって分散されたホワイトであったが、丸め誤差がピンクノイズの形態で理想的なスペクトル上に重ね合わされ、すなわち、丸めによるノイズエネルギが、信号がとにかく最も高い信号エネルギを有する箇所に存在し、したがって、丸め誤差によるノイズが、符号化すべき信号がそれ自体エネルギを持たない箇所で、エネルギをわずかにまたは全くないようにする。したがって、確率的信号でありしたがって符号化しにくい丸め誤差が、周波数範囲内で符号化すべき唯一の信号であって、したがって、ビットレートを不必要に増大させるという最悪の場合が回避される。
【0069】
エネルギが低周波数範囲内にあるオーディオ信号を考えれば、信号がとにかく多くのエネルギを持つ範囲内に丸め誤差がマッピングされるが、丸めるための手段は、生成された丸め誤差のスペクトル低域通過整形を達成し、符号化された信号の高周波数において信号エネルギもノイズエネルギも存在しないように設計されている。
【0070】
特に可逆符号化アプリケーションにとって、これは、丸め誤差が可聴範囲を除いて丸め誤差を得るためにスペクトル的に高域通過フィルタリングされる従来技術と対照的である。また、これは、丸め誤差が存在するスペクトル範囲が、丸め誤差を削減するために、電子的にまたは耳自体により除去される場合に対応する。しかしながら、可逆符号化/復号化について、丸め誤差は、復号器において完全に必要とされ、その理由は、そうしなければ、可逆符号化アルゴリズムに対して逆のものであって復号器に用いられるアルゴリズムがひずみを生じるからである。
【0071】
丸め誤差のスペクトル整形のコンセプトは、高いサンプリングレートで可逆アプリケーションに用いられるのが好ましく、その理由は、特に、スペクトルが理論上(オーバサンプリングのために)40kHzを上回るまで広がる場合、信号エネルギがとにかく存在しない高周波数範囲において、すなわち、符号化を極めて効率的に行うことができる高周波数範囲において、信号エネルギも高周波数範囲で零である非整数の符号化の場合のように、同じ状況が達成されるためである。
【0072】
多数の零が極めて効率的に符号化され、符号化に対して問題のある丸め誤差が、いずれにしても極めて精巧に典型的に符号化される範囲にシフトされるので、信号の全体的なデータレートは、丸め誤差が周波数範囲全体にわたってホワイトノイズとして分散されている場合と比較して減少される。さらに、符号化性能はしたがって復号化性能も、高周波数範囲の符号化および復号化に計算時間を費やす必要がないので増大される。そのため、このコンセプトは、符号器の一部でおよび/または復号器の一部で高速信号処理を達成できるという結果をも有する。
【0073】
一実施形態では、近似誤差を整形/減少するコンセプトは、逆にできる整数変換、特にIntMDCTに適用される。アプリケーションの2つの領域があり、すなわち、一方では、MDCTが要求される丸めステップに関してかなり単純化される多次元リフティングであり、他方では、実際のDCTより前の前処理に起きるような整数の窓掛けに必要な丸め動作である。
【0074】
誤差フィードバックコンセプトは、処理される信号が最も高い信号エネルギを有する周波数範囲に丸め誤差がシフトされる丸め誤差のスペクトル整形に用いられる。オーディオ信号に対して、特にビデオ信号に対しても、これは低周波数範囲となるので、誤差フィードバックシステムは低域通過特性を有する。これは、通常少ない信号成分が存在する高周波数範囲で丸め誤差は少なくなる。従来技術では、丸め誤差は高い範囲で広がり、その結果、これら丸め誤差は符号化されなければならなく、したがって、符号化のために必要とされるビット数を増大する。好ましくは、この丸め誤差は、高周波数で減少され、これにより、符号化のために必要とされるビット数を直接的に減少する。
【0075】
本発明の好ましい実施形態が添付図面を参照して後に詳述されるが、これらの図面としては:
図1は、丸め誤差のスペクトル整形を用いて一連の離散値を有する信号を処理するためのコンセプトのブロック回路図を示し、
図2aは、量子化誤差を高域通過スペクトル整形するための既知のコンセプトを示し、
図2bは、丸め誤差を低域通過整形するためのコンセプトを示し、
図2cは、スペクトル整形/丸めブロックの一実施形態によるブロック回路図を示し、
図3は、整数値を得るために時間離散オーディオサンプルを処理し、それから整数スペクトル値を決定できる好適な手段のブロック回路図を示し、
図4は、ギブンス回転へのMDCTおよび逆MDCTの分解と2つのDCT−IV動作との概略図を示し、
図5は、50%のオーバラップを用いるMDCTの回転への分解およびDCT−IV動作を示すための図であり、
図6aは、MDCTおよび50%のオーバラップを用いる既知の符号器の概略ブロック回路図を示し、
図6bは、図10aにより生成された値を復号化するための既知の復号器のブロック回路図を示し、
図7は、図3による窓掛けのリフティングを示す図であり、
図8は、実際の変換より前の窓掛けに対して図7のリフティングの「再分類された」図であり、
図9は、図3、7および8による窓掛けのためのスペクトル整形のアプリケーションを示し、
図10は、本発明の好適な実施形態による転換するための装置のブロック回路図を示し、
図11は、本発明の好適な実施形態による逆転換するための装置を示し、
図12は、本発明に用いることができるような値の2つの連続するブロックの変換を示す図であり、
図13は、順方向変換マトリクスを用いる多次元リフティングステップを示す詳細図であり、
図14は、逆方向変換マトリクスを用いる多次元逆リフティングステップを示す図であり、
図15は、長さNのDCT−IVを長さN/2の2つのDCT−IVに分解する本発明を示す図であり、
図16は、図10の多次元リフティングを用いる変換での本発明のコンセプトのアプリケーションを示し、
図17は、本発明の丸め誤差を減少する2つの連続するリフティングステップを示す図であり、
図18は、図17の2つの連続するリフティングステップで丸め誤差を減少するための本発明のコンセプトを示す図であり、
図19は、図16のコンセプトおよび図18のコンセプトの好ましい組み合わせを示す。
【発明を実施するための最良の形態】
【0076】
図1は、信号入力200を介して操作するための手段202に入力される一連の離散値を有する信号を処理するための装置を示す。この信号は、信号が高いエネルギを持つ第1の周波数範囲を有し、さらに、信号が比較的低いエネルギを持つ第2の周波数範囲とを有するように典型的に形成される。第1の信号がオーディオ信号であれば、高いエネルギを第1の周波数範囲、すなわち、低い周波数範囲に有し、低いエネルギを高い周波数範囲に有する。しかしながら、信号がビデオ信号であれば、この場合も、高いエネルギを低い周波数範囲に有し、低いエネルギを高い周波数範囲に有する。オーディオ信号とは対照的に、ビデオ信号の周波数範囲は、空間周波数範囲である。ただし、一連のビデオフレームが、例えば、選択されたイメージ領域に関連する時間周波数も一連のフレーム内に存在すると見なされる場合を除く。
【0077】
操作するための手段202は、少なくとも1つの操作値が整数でない一連の操作値が得られるように、一連の離散値を操作するために一般に形成される。この一連の非整数の離散値は、一連の丸められた操作値を得るために一連の操作値を丸めるための手段204に送られる。丸めるための手段204は、第1の周波数範囲、すなわち、元の信号が高いエネルギを有する周波数範囲で、スペクトル整形された丸め誤差も高いエネルギを持つように、さらに、第2の周波数範囲、すなわち、元の信号が低いエネルギを有する周波数範囲で、スペクトル整形された丸め誤差も低いエネルギを持つか全くエネルギを持たないように、丸めにより生成された丸め誤差のスペクトル整形を達成するために形成される。したがって、スペクトル整形された丸め誤差の第1の周波数範囲内のエネルギは、スペクトル整形された丸め誤差の第2の周波数範囲内のエネルギよりも一般に高い。しかしながら、スペクトル整形が丸め誤差のエネルギ全体で何も変えないのが好ましい。
【0078】
好ましくは、誤差を含む一連の丸められた操作値を生成するための装置は、直接的に、または、更なる操作あるいは丸めの組み合わせを介してスペクトル表現に転換するための手段206に結合される。したがって、誤差を含む一連の丸められた操作値は、誤差を含む一連の丸められた操作値の直接スペクトルを達成するために、スペクトル表現に転換するための手段206に直接的に送られる。しかしながら、一実施形態では、操作するための手段は、リフティングステップおよび/またはリフティングマトリクスであり、丸めるための手段は、リフティングステップの非整数結果を丸めるために形成される。この場合、手段204の後に、第2のリフティングステップを実行する操作するための更なる手段が続き、次に、この更なる手段の後に、丸めるための手段が続き、次に、この丸めるための手段の後に、第3のリフティングステップを実施する操作するための第3の手段が続き、3つのすべてのリフティングステップが達成されるように、他の操作がある。したがって、手段204の出力端における元の誤差を含む一連の丸められた操作値から導かれた、誤差を含む一連の丸められた操作値が生成され、次に、これらが、ブロック206に示すように、好ましくは整数変換によりスペクトル表現に最終的に転換される。ブロック206の出力端におけるスペクトル表現の出力信号は、この時、従来の技術とは対照的に、ホワイトの分散された丸め誤差をもはや有さず、スペクトル整形された丸め誤差を有するスペクトルを有し、すなわち、信号エネルギがない周波数範囲内に丸め誤差エネルギがない最高の状態でも、実際の「有用なスペクトル」が高い信号エネルギを持つ箇所に高い丸め誤差エネルギも存在するようになっている。
【0079】
このスペクトルは、次に、スペクトル表現をエントロピー符号化するための手段208に供給される。エントロピー符号化するための手段は、ハフマン符号化、算術符号化などのような何らかの符号化方法をも含むことができる。特に、零であって互いに隣接する多数のスペクトル線の符号化に対して、従来技術ではもちろん適用することができないランレングス符号化も適しており、その理由は、実際に確定的な信号は、そのような周波数範囲で符号化されなければならないが、ホワイトスペクトルを有し、したがって、個々のスペクトル値が互いに完全に無相関であるので、いかなる種類の符号化ツールにも著しく好ましくないためである。
【0080】
続いて、スペクトル整形で丸めるための手段204の好適な実施形態を図2a、2bおよび2cに関して説明する。
【0081】
図2aは、専門書「Digitale Audiosignalverarbeitung」、ユー・ゾエルザー(U.Zoelzer)著、トイブナー出版社(Teubner−Verlag)、シュトゥットガルト(Stuttgart)、1997年により記述されているように、量子化誤差をスペクトル整形するための既知の誤差フィードバックシステムを示す。入力値x(i)は、入力合計器210に供給される。合計器210の出力信号は、スペクトル整形装置の出力端で量子化出力値y(i)を提供する量子化器212に供給される。第2の合計器214では、量子化器212の後の値と量子化器212の前の値との差、すなわち、丸め誤差e(i)が決定される。第2の合計器214の出力信号は、遅延手段216に送られる。1つの時間ユニットだけ遅延された誤差e(i)は、次に、加算器210により入力値から減算される。この結果、元の誤差信号e(n)の高域通過評価を生じる。
【0082】
図2aに216と示された遅延手段Z-1の代わりにZ-1(−2+z-1)が用いられるならば、その結果は2次高域通過評価である。ある実施形態では、量子化誤差のこのようなスペクトル整形は、量子化誤差が知覚されないように知覚可能な範囲から、すなわち、例えば信号x(n)の低域通過範囲から量子化誤差を「マスク除去」するために用いられる。
【0083】
図2bに示すように、知覚の範囲外にではなくまさに知覚の範囲内に誤差のスペクトル整形を達成するために、代わりに低域通過評価が実行される。このため、加算器210の出力信号は、図2bに示すように、例えば、端数を切り上げでき、または、端数を切り捨てでき、または、切り捨てにより丸めることができ、または、次の整数まであるいは1つ置いて次の整数まであるいは2つ置いて次の整数までなど端数を切り上げ/端数を切り捨てることができる何らかの丸め関数を実施する丸めブロック218に送られる。誤差フィードバック経路、すなわち、加算器214および加算器210間では、遅延部材216に加えて、インパルス応答h(n)および/または伝達関数H(z)を有する更なるフィードバックブロック220がある。出力シーケンスのz変換、すなわちY(z)は、図2bに示す式により入力シーケンスX(z)に関連付けられる。
e(n)=x’(n)−y(n)
【0084】
上式では、x(n)は加算器210への入力信号であり、y(n)は丸めブロック218からの出力信号である。
【0085】
さらに、下式を適用する。
y(n)=round(x’(n))
【0086】
上式では、「round」は、ブロック218により実施される丸め関数を表す。さらに、下式を適用し、ここで、「*」は畳み込み演算を表す。
x’(n)=x(n)−h(n)*e(n−1)
【0087】
z範囲では、次の結果となる。
Y(z)=X’(z)+E(z)
X’(z)=X(z)−E(z)z-1H(z)
Y(z)=X(z)+(1−z-1H(z))E(z)
【0088】
E(z)が丸め誤差なので、これはフィルタ(1−z-1H(z))によりスペクトル整形される。本発明によれば、この時、低域通過のような伝達関数が用いられる。例えば、H(z)=−1の場合、最も簡単な低域通過のような伝達関数を得ることができる。したがって、この簡単な例では、前の丸め動作の丸め誤差は、次の丸め動作が適用される前に、丸めるべき値に簡単に加算される。このようにして、本発明にとって極めて効率的でしたがって好ましい丸め誤差の簡単な低域通過フィルタリングが達成される。
【0089】
一実施が図2cに示される。特に、元の一連の整数離散値を操作するための手段202が示され、これは一連の非整数離散値y0、y1、y2、・・・、yiを出力側に提供する。例えば、図3のブロック20、24および28に関して、または、図10のブロック104、110および142または図11のブロック126、132および150に関して示すように、従来技術とは対照的に、もはや各値はそれ自体に対して丸められない。その代わりに、結果が上述のスペクトル整形であるように、図2cに示す「ネットワーク」ごとのフィードバック分岐中の低域通過特性を用いて、互いに依存し合う一連の非整数離散値y0、y1、y2、y3、・・・がフィルタリングされる。図2cおよび図2bの同様の素子は、同一の符号で示される。
【0090】
さらに、図2cは、並行の実施、すなわち、丸めるべき値が並行に提供される実施を示す。もちろん、この図は概略である。この場合、値y0、y1、y2、・・・は、一連の出力値を得るために連続的に提供することができ、その際、素子210、214、216、218および220の構造の単独の実施は充分である。明確のためだけに、素子214、218、210および220の繰り返し構造が図示される。
【0091】
したがって、図2cに示す丸めるための手段204は、まず、丸め値[y0]を計算するために動作する。次に、丸め誤差i0が計算される。次に、−1であるのが好ましい伝達関数H(z)を用いるブロック220により丸め誤差i0が重み付け(フィルタリング)され、加算器210に送られる。このフィルタリングされた丸め誤差は、一連yiの次の値に加算され、すぐ、加算器210の結果は、丸められた次の値[y1]を得るために、ブロック218で丸められる。その後、丸め誤差は、加算器214により、すなわち、丸め値[y1]および元の値y1を用いて再び決定され、この得られた丸め誤差i1は、一連の次の値y2に対して同じ手順を実行するために、ブロック220で再びフィルタリングされる。
【0092】
この点において、方向が無関係であるということに留意すべきである。これは、大きい方のインデックスを持つyiから、小さい方のインデックスを持つyiへ、すなわち、図2cにおいて特にブロック220から加算器210へ伸びる矢印で表す方向に対して反対の方向に進行することも可能であることを意味する。したがって、順序、すなわち、手順は、低い方から高い方へ連続するインデックスに進行しようが、高い方から低い方へ連続するインデックスに進行しようが重要でない。
【0093】
特に、整数MDCT(IntMDCT)のアプリケーションの場合では、次の条件を満たす場所で特別な効率により丸め誤差のスペクトル整形が用いられることが好ましい。
−丸め誤差は、互いに独立するいくつかの隣接する値で加算される。
−隣接する値は、(最も広い意味で)時間信号であり、後に、変換によりスペクトル表現に転換され、すなわち、これらは周波数領域に移される。
【0094】
以下に、整数MDCTの一部分において丸め誤差のスペクトル整形を用いることが好ましい詳細な説明を示す。
【0095】
第1の好適な実施形態は、実際の変換前の窓掛けにあり、すなわち、図3においてブロック20、24および28により特定される丸めに対するものである。個々の元のサンプルx1、・・・、xNの各々が受けるリフティング動作であって、図3に基づいて概説したようなリフティング動作も、図7に示す図により明らかにすることができる。この場合、結果が「上から下へ」、「下から上へ」および「上から下へ」つながるように、3つのリフティングマトリクスのアプリケーション、すなわち、それぞれ1つのサンプルに関して、ある係数で乗ずることが例示される。
【0096】
図7に関して、矢印が横線に接触すれば、そこで加算が実行されることに留意すべきである。このような加算は、図7において例えば27で示される。図4を図7に比べると、その差は、図4のx(0)が図7のx1に対応するということだけである。この点において、図7のxNは、図4のx(N−1)に対応する。しかしながら、図4のx(N/2−1)は、図7のxN/2に対応する。さらに、図4のx(N/2)は、図7のxN/2+1に対応するので、結果は、図2に示すバタフライ演算であり、これにより、ある窓の第1の4分の1からのある値が、リフティングステップに従ってこの窓の第2の4分の1からのある値で常に重み付けられる一方で、同じようにこの窓の第3の4分の1の値も、図7に示すように、「下がり−上がり−下がりシステム」によりこの窓の第4の4分の1の値で処理される。
【0097】
対の値xN/2およびxN/2+1について対応の手順がある。この場合も、下がって、上がって下がる連なりとなり、下がりステップ29aの後に、上がりステップ29bが続き、この上がりステップ29bの次に、下がりステップ29cが続く。
【0098】
したがって、図7は、リフティングによる整数の窓掛けを示す。図8に示すように、結果を変えずに、この計算は、容易に再分類することもできる。したがって、もちろん、すべての下がりステップ(すべてのステップ29a)は、最初に実行することができる。次に、結果が下がりブロック31a、上がりブロック31b、そして再び下がりブロック31cとなるように、すべての上がりステップ(29b)が、すべての下がりステップ29cを最終的に実行するために実行される。図8は図7に対応するが、別の図では、本発明を理解するために図8がより適していることに留意すべきである。
【0099】
次に、図9は、丸めがスペクトル整形で実行されるコンセプトを示す。図9に示すリフティング計算コンセプトは、入力値x1、xN/2が入力端200において元の一連の整数離散値を表すという点で図1に対応する。下がりブロック31aの評価ブロックcs1、cs2、・・・、cskが互いに、操作するための手段202を形成する。[・]/ノイズ整形と表されたブロックは、図1の丸めるための手段204を表す。ここで、誤差を含む一連の丸められた操作値は、このブロック204の出力端に生じる。
【0100】
図9に示す実施形態では、誤差を含む一連の丸められた操作値は、新たな一連の整数離散値を得るために、更なる連なりxN/2+1〜xNに加算され、次に、この新たな一連の整数離散値は、素子204bにより上がりブロック31bで再び丸めを達成するために、(上がりブロック31bのブロックs1、skにより)操作される。次に、下がりブロック31aでのように、すなわち、加算器205aの場合でのように、再び、新たな連なりを得るために、値に関する加算器205bを用い、この新たな連なりが操作器202cに送られる。操作器202cの出力信号は、非整数であり、更なる丸め器204cで丸められ、次に、更なる加算器205cにより、すなわち、操作器202bに送られる連なりに加算される。
【0101】
図9に示す実施形態では、出力側の結果は、図4に関して示したような系統的なスキームに従って、対応してシフトされるDCT−IVブロックに送られる窓掛けられたサンプルのブロックである。これらシフトされるDCT−IVブロックは、誤差を含む一連の丸められた操作値をスペクトル表現に転換するための変換を提供する。したがって、図4のDCT−IVブロックは、図1の手段206の実施を表す。同様に、逆整数DCT−IVを実行するためのブロックは、時間表現に転換するための類似の手段を表す。
【0102】
続いて、多次元リフティングのアプリケーションが、図10aのスペクトル表現に転換するための手段206の整数実施および/または(復号器用の)逆転換の類似の整数実施を示すために、図10〜15に関して説明される。多次元リフティングのコンセプトは、独国特許出願第10331803.8号明細書にある。
【0103】
図10aは、整数値を有する変換表現に離散値を転換するための装置を示す。この離散値は、この装置に第1の入力端100aおよび第2の入力端100bを介して送られる。離散値の第1のブロックは入力端100aを介して供給されるのに対して、離散値の第2のブロックは入力端100bを介して供給される。離散値は、オーディオデータまたはイメージデータおよび/またはビデオデータを表す。以下で述べるように、離散値の第1のブロックと離散値の第2のブロックとは、オーディオサンプルの2つの時間的に連続するブロックを実際に含めることができる。離散値の第1および第2のブロックは、離散値および/または予測の後の剰余値、あるいは差分符号化の差分値などにより表された2つのイメージも含むことができる。しかしながら、離散値の2つのブロックは、MDCTの整数実施でのように前処理を受けることもでき、離散値の第1のブロックおよび第2のブロックは、実際に窓掛けられたサンプルからギブンス回転により生成される。したがって、離散値の第1および第2のブロックは、回転、置換、プラス/マイナスのバタフライ演算、スケーリングなどのように、いくつかの処理により元のオーディオデータまたはイメージデータから導くことができる。離散値の第1および第2のブロックは、オーディオ情報および/またはイメージ情報を依然として得るとはいえ、それらは、直接的にオーディオをサンプリングまたは離散化されたイメージ値ではない。
【0104】
離散値の第1のブロックは、図10aに示すように、手段102の出力端に変換値の第1のブロックを得るために、入力端100aを介して第1の変換ルールを用いて離散値の第1のブロックを処理するための手段102に送られる。変換値のこの第1のブロックは、フーリエ変換、ラプラス変換、FFT、DCT、DST、MDCT、MDSTのようないくつかの変換ルール、または、何らかの基底関数を有するウェーブレット変換のようないくつかの他の変換により変換値が典型的に得られるように、典型的に整数ではなく、浮動小数点数値を含む。変換値の第1のブロックは、丸められた変換値の第1のブロックを出力側で得るために、変換値の第1のブロックを丸めるための手段104に送られる。丸めるための手段104は、浮動小数点数値に応じて実行すべき、切り捨てによる丸めまたは端数の切り上げおよび/または端数の切り捨てなどのようにいくつかの丸め関数を実行するために形成される。
【0105】
したがって、手段104により実施される丸めルールは、丸められた変換値の第1のブロックが整数値だけを含むようにし、整数値の精度は、手段104により用いられた丸めルールにより決定される。丸められた変換値の第1のブロックは、離散値の第2のブロックが第2の入力端子100bに適用されるのと同時に、合計値の第2のブロックを得るために合計するための手段106に供給される。オーディオ信号の場合を考えれば、丸められた変換値の第1のブロックからのスペクトル値が、手段106により離散値の第2のブロックからの時間値に加算されることが明らかである。第2のブロックの離散値が、例えば電圧値であれば、丸められた変換値の第1のブロックが電圧振幅すなわち単位Vを持つ
値としても存在することを推奨する。この場合、合計において、何の単位の問題も予想されない。しかしながら、丸められた変換値の第1のブロックと離散値の第2のブロックとの双方が、例えば無単位であるという点において、丸められた変換値の第1のブロックおよび/または離散値の第2のブロックに関して何らかの単位の正規化を実行できることは、当業者によって明らかである。
【0106】
合計値の第2のブロックは、変換値の第2のブロックを得るために、第2の変換ルールを用いて合計値の第2のブロックを処理するための手段108に供給される。手段102に用いられる変換ルールが、例えば時間−周波数変換ルールであれば、ブロック108に用いられる第2の変換ルールは、例えば周波数−時間変換ルールである。しかしながら、これらの関係を逆にすることもできるので、離散値の第1および第2のブロックは、例えばスペクトル値であり、時間値が、変換ルールに基づいて処理するための手段102により得られるのに対して、スペクトル値が、逆変換ルールにより処理するための手段、すなわち手段108により得られる。したがって、第1および第2の変換ルールは、順方向変換ルールまたは逆方向変換ルールとすることができ、この場合、逆変換ルールは、逆方向変換ルールまたは順方向変換ルールである。
【0107】
変換値の第2のブロックは、図10aに示すように、丸められた変換値の第2のブロックを得るために、丸めるための手段110に送られ、丸められた変換値の第2のブロックは、出力端114で出力できる変換表現の整数出力値のブロックを得るために、第1の入力端108aを介して供給された離散値の第1のブロックから、丸められた変換値の第2のブロックを減算するために減算するための手段112に、最後的に送られる。手段102でも用いられた変換ルール、または、この変換ルールとは異なる変換ルールである何らかの第3の変換ルールを用いて変換表現の整数出力値のブロックを処理し、次に、丸められた変換出力値のブロックを得るために変換出力値のブロックを丸め、次に、丸められた変換出力値のブロックおよび合計値の第2のブロックを合計することにより、出力端114に適用された整数出力値のブロックを用いて離散値の第1および第2のブロックの完全な変換表現を提供する変換表現の整数出力値の更なるブロックを得ることができる。
【0108】
しかしながら、出力端114における変換表現の整数出力値のブロックが用いられる、処理、丸めおよび合計の最後の3つのステップを用いなくても、全体の変換表現の一部分、すなわち、例えば、逆処理を受ける時、離散値の第1および第2のブロックの逆算を可能にする最初の半分を既に得ることができる。
【0109】
この点について留意すべきことは、第1、第2および第3の変換ルールがあったとしても、変換ルール次第では、これらの変換ルールを同一にできるということである。これは、例えば、DCT−IVを用いる場合である。FFTが第1の変換ルールとして用いられたならば、FFTと同一でないIFFTを第2の(逆)変換ルールとして用いることができる。
【0110】
計算上の理由のため、変換ルールをマトリクスのフォームで提供するのが好ましく、このマトリクスは、第1のブロックの離散値の数が第2のブロックの離散値の数に等しく、第1のブロックの離散値の数と第2のブロックの離散値の数とがそれぞれNであれば、2次のN×Nマトリクスである。
【0111】
一実施形態では、丸めるための手段104および110は、図10aに示す機能を実行するコンピュータに固有の機械精度に満たない精度を有する丸め結果を提供する丸め関数に従って丸めるために形成される。丸め関数に関して、好適な一実施形態では、非整数の数を、次に大きいまたは小さい整数のみにマッピングすることに留意すべきである。丸め関数が丸めるべき数の精度の減少をもたらす限り、丸め関数は、他の整数にも、例えば、数17.7を数10または数20にマッピングすることができる。上述の例では、丸められていない数が、小数点の後に1桁の数字を有する数であるのに対して、丸められた数は、小数点の後にもはや数字を持たない数である。
【0112】
図10aでは、第1の変換ルールで処理するための手段102と第2の変換ルールで処理するための手段108とが別個の手段として示されたが、具体的な一実施では、特定のフローコントローラにより制御され、アルゴリズムの対応時間において、まず、離散値の第1ブロックを変換し、次に、合計値の第2のブロックを逆に変換する1つだけの変換関数ユニットを存在できることに留意すべきである。この場合、第1および第2の変換ルールは同一である。同様のことが、2つの丸めるための手段104および110にも当てはまる。これらも別個の手段として提供する必要はなく、この場合もフローコントローラにより制御され、アルゴリズムの要求に応じて、まず、変換値の第1のブロックを丸め、次に、変換値の第2のブロックを丸める1つの丸め関数ユニットにより実施することができる。
【0113】
一実施形態では、離散値の第1のブロックと離散値の第2のブロックとは、図3のブロック28の出力端で得られるように、整数窓掛けサンプルである。次に、図3のブロック14の整数DCTは、図3が関連するオーディオ信号の場合における変換表現が図3に示す装置の出力端30で整数スペクトル値を表現するように、図1に示す整数アルゴリズムにより実施される。
【0114】
続いて、図10aに対応して逆に転換するための手段が図10bに関して示され、図10bでは、図10aのブロック112の出力端における整数出力値のブロック以外に、図10aの手段106の出力端における合計値の第2のブロックも用いられる。これは、以下に詳細に説明する図11に関して、変換ブロック124がなく、ブロック150および130だけがある場合に対応する。
【0115】
図10bは、図10aの出力端114で得られるような変換表現の整数出力値のブロックと合計値の第2のブロックとを逆に転換するための装置を示す。合計値の第2のブロックは、図10bに示す逆に転換するための装置の入力端120に送られる。変換表現の出力値のブロックは、逆に転換するための装置の他の入力端122に送られる。
【0116】
符号化で最後に用いられた変換ルールが第2の変換ルールであった場合、合計値の第2のブロックは、第2の変換ルールを用いてこのブロックを処理するための手段130に送られる。手段130は出力側に変換値の第1のブロックを提供し、これは丸めるための手段132に供給され、次に、丸めるための手段132は、出力側に丸められた変換値の第1のブロックを生成する。次に、丸められた変換値の第1のブロックは、図10bの装置の第1の出力端149で離散値の第1のブロックを得るために、手段134により変換表現の出力値のブロックから減算される。
【0117】
離散値のこの第1のブロックは、手段150の出力端で変換値の第2のブロックを得るために、第1の変換ルールを用いてこのブロックを処理するための手段150に供給される。次に、減算され変換された値のこの第2のブロックは、丸められた変換値の第2のブロックを得るために、手段152で丸められる。丸められた変換値のこの第2のブロックは、出力側の出力端136で離散値の第2のブロックを得るために、入力端120を介して入力され入力側に提供された合計値の第2のブロックから減算される。
【0118】
第1、第2および第3の変換ルールの関係に関して、さらに、共通の関数ユニットおよび対応のフローコントローラ/ラッチングによる図10bの個々の機能ブロックの特別な実施に関して、図10aについて説明した記述を参照する。
【0119】
続いて、図10aに全般的に示した変換表現に転換するための装置の好適な実施形態を図10cに関して説明する。図10aの実施形態は、合計値の第2のブロックから整数出力値の更なるブロックを生成するために、図10aに比べて更なる変換/丸めを含む。
【0120】
第1の入力端100aは、離散値の第1のブロックのN個の値を入力するためのN個の入力線x0、・・・、xN-1を含む。また、第2の入力端100bは、離散値の第2のブロックのN個の値xN、・・・、x2N-1を入力するためのN個の入力線を含む。図10aの手段102は、図10cにDCT−IV変換器として表される。DCT変換器102は、N個の入力値からN個の出力値を生成し、次に、各出力値を図10cの手段104により示されるように「[・]」と表す丸めにより丸めるように形成される。合計するための手段106は、値に関して合計するように示される。これは、インデックス0の付いた手段102の出力値がインデックスNの付いた離散値の第2のブロックの第1値と合計されることを意味する。したがって、一般に、丸め手段104の出力端における序数iの付いた丸められた変換値の第1のブロックの値が、序数N+iの付いた出力値の第2のブロックの離散値と個々に合計され、ここで、iは、0からN−1までの範囲に及ぶ連続のインデックスである。
【0121】
第2の変換ルールを用いて処理するための手段108も、DCT−IV変換器として表される。図10cに示す好適な実施形態では、減算するための手段112も、値に関して減算を実行するために形成され、言い換えれば、丸め器110の出力値、すなわち丸められた変換値の第2のブロックの値が離散値の第1のブロックから個々に減算されるように形成される。図10cに示す実施形態では、N+iの序数の付いた第2のブロックの値が序数iの付いた第1のブロックの値から減算されるように、対応の減算を実行することが好ましく、ここで、iは、この場合も0からN−1までの範囲に及ぶ。しかしながら、例えば、N−1の序数の付いたブロックの値が序数Nの付いた他のブロックの値から差し引かれるように、これは逆転換において対応して考慮される限り、その他の合計/減算もまた実行できる。
【0122】
減算するための手段112は、出力側に変換表現の整数出力値のブロック、すなわち、変換表現の整数出力値y0〜yN-1を既に提供している。変換表現の残りの整数出力値、すなわち、更なるブロックyN〜y2N-1も得るために、これが状況に応じて望ましければ、出力端114に適用された変換表現の整数出力値のブロックは、順方向変換器140により第3の変換ルールを用いる変換を受け、順方向変換器140の出力値は、丸めるための手段142により示されるようにこの場合も丸められ、これらの値と合計器106の出力端における合計値の第2のブロックとの加算が、図10cの参照番号144により示されるように実行される。この場合、合計器144の出力値は、yN〜y2N-1と表される変換表現の整数出力値の更なるブロック146を表す。
【0123】
続けて、一実施形態に従って変換表現を逆に転換するための装置を図11に関して説明する。図10cに示す装置により実行される動作は、図11に示す装置により可逆的に反転されることに留意すべきである。図11は、図10bに示す実施形態において入力端120に送られる合計値の第2のブロックを変換出力値の更なるブロックから生成する追加の変換/丸め段階を除いて図10bに対応する。加算する機能が、減算する機能によりそれぞれ反転されることに留意すべきである。符号について反転された入力量をも加算器/減算器対(図10cの144および図11の128)に提供することができるので、図示の場合と比べて反対の符号を入力量のグループに提供する場合、加算器144は実際には減算動作を実行し、これが対応するもの(図11の128)で考慮される限り、対応するものは実際には加算動作を実行することにさらに留意すべきである。
【0124】
図11に示す減算器128、加算器134および更なる減算器154は、この場合も、個々の値に関する加算/減算を実行するために形成され、この場合も、同一の序数処理が、図10cに関して説明したように用いられる。図示とは別の序数の利用法が、図10cで用いられた場合、図11において、これがそれ相応に考慮される。
【0125】
減算器134の出力端において、x0〜xN-1と表された離散値の第1のブロック136が既に存在する。逆変換表現の残りも得るために、離散値の第1のブロックは、第1の変換ルールで動作する変換器150に供給され、変換器150の出力側の値は、丸め器152により丸められ、最終的にxN、・・・、x2N-1と表された離散値の第2のブロック156をも得るために、減算器128の出力端における減算値の第2のブロックから減算される。
【0126】
続いて、図10a、10b、10cおよび11に関して説明したような装置についての数学上の背景を図12〜15に関して説明する。転換および/または逆に転換するための図示の装置により、近似誤差を減少する可逆オーディオ符号化用の整数変換方法が提供される。さらに、ベースがもはやリフティングスキームを各ギブンス回転に適用する既知の方法ではないという点で計算労力も考慮される。この既知の方法では、自明な合計−差のバタフライ演算が常に生じる。これらは、コピーすべき変換の元の非整数バージョンと比較して、計算労力をかなり増大させる。
【0127】
通常、リフティングスキームは、ギブンス回転の可逆の整数近似値を得るために用いられる。
【0128】
この整数近似値は、各加算の後で、すなわち、各リフティングステップの後で丸め関数を用いることにより達成される。
【0129】
リフティングスキームは、特定のスケーリング動作の可逆の整数近似値にも用いることができる。専門の出版物、アール・ガイガー(R.Geiger)およびジー・シュラー(G.Schuller)著、「Integer low delay and MDCT filter banks」、Proc.of the Asilomar Conf. on Signals,Systems and Computers,2002年では、1に等しい決定要素を用いる下記の2×2スケーリングマトリクスのリフティング分解を記述し、説明する。
【0130】
1次元であるこのリフティング分解、すなわち、2×2スケーリングマトリクスにだけ関連するこのリフティング分解は、多次元の場合にまで拡張される。特に、上記の式からのすべての値は、n×nマトリクスにより置き換えられ、n、すなわち、ブロックの離散値の数は、2以上である。したがって、その結果として、好ましくは可逆とすべき任意のn×nマトリクスTに対して、下記の2n×2nブロックマトリクスへの分解が可能となり、ここで、Enはn×n単位マトリクスを表す。
【0131】
置換または−1による乗算のような簡単な動作に加えて、この分解の3つのすべてのブロックは、下記の一般構造を有する。
【0132】
この2n×2nブロックマトリクスに対して、以後、多次元リフティングとも称する一般化されたリフティングスキームを用いることができる。
【0133】
値x=(x0、・・・、x2n-1)のベクトルに対するこのブロックマトリクスのアプリケーションは、次式を提供する。
【0134】
上式の右側において、ベクトルが、ディメンションすなわち2nに等しい列の数を有することに留意すべきである。第1のn個の要素、すなわち、0からn−1までの要素は、x0〜xn-1に対応する。第2のn個の要素、すなわち、上式の右側に結果として生じるベクトルの後半は、離散値の第2のブロックの合計すなわちxn、・・・、x2n-1に等しいが、図10a、10b、10cおよび11の変換マトリクスに対応するマトリクスAと離散値の第1のブロックx0、・・・、xn-1との乗算と合計されている。変換マトリクスは、第1、第2および第3の変換ルールをそれぞれ表す。
【0135】
以下のフォームの2×2マトリクスを用いる一般的なリフティングスキームと同様に、
これらの2n×2nマトリクスは、下記のように変換Tの可逆の整数近似値に対して用いることができる。整数入力値(x0、・・・、x2n-1)に対して、浮動小数点出力値(y0、・・・、yn-1)=A・(x0、・・・、xn-1)は、整数値(xn、・・・、x2n-1)に加算される前に、すなわち、整数値に丸められる。ブロックマトリクスの逆数は、次の通りに生じる。
【0136】
したがって、同一のマトリクスAおよび同一の丸め関数を簡単に用い、次に、結果として生じた値を、順方向処理での加算の代わりに減算することにより、誤差を含まず、この処理を反転することができる。順方向処理が図13に示されるのに対して、逆方向処理は図14に示される。図13の変換マトリクスが図14の変換マトリクスと同一であり、このことが実施の単純性に好ましいことに留意すべきである。
【0137】
値(x0、・・・、xn-1)が、図13に示す順方向ステップにおいて変形されないので、これら値は、逆ステップすなわち図14の逆方向ステップに依然として存在している。マトリクスAに特定の制限がないことに留意すべきである。したがって、必ずしも可逆とする必要がない。
【0138】
既知のMDCTの可逆の整数近似値を得るために、MDCTは、窓掛け段階である第1段階と次のDCT−IV段階とでギブンス回転に分解される。図3で記述したこの分解は、下記で説明され、さらに、独国特許出願公開第10129240号に詳細に記載されている。
【0139】
DCT−IVがギブンス回転のいくつかの段階に分解される従来技術とは対照的に、変換自体は、変えられないままにしておき、その後、丸められる。
【0140】
したがって、DCT−IVの整数近似値がリフティングベースのギブンス回転のいくつかの段階により実行されることは既知である。ギブンス回転の数は、用いられ基礎となる高速アルゴリズムにより決定される。そのため、ギブンス回転の数は、長さNの変換に対してをO(NlogN)により与えられる。各MDCT分解の窓掛け段階は、N/2個のギブンス回転のみから、あるいは、3N/2個の丸めステップのみからなる。したがって、特に、変換長がオーディオ符号化アプリケーションで用いられるような大きい変換長(例えば、1024)に対して、DCT−IVの整数近似値は、近似値誤差の主な原因になる。
【0141】
この本方法は、上述した多次元リフティングスキームを用いる。したがって、DCT−IVの丸めステップの数は、従来のリフティングベースの方法における約2Nlog2N個の丸めステップに比べて、3N/2まで減少し、すなわち、窓掛け段階の丸めステップの数に等しくなる。
【0142】
DCT−IVは、信号の2つのブロックに同時に適用される。この1つの可能性が図12に示され、この場合、例えば、サンプルの2つの時間的に連続するブロックは簡単にDCT−IVを受ける。しかしながら、2つの変換を受ける2つのブロックは、マルチチャネル信号の2つのチャネルのサンプルとすることもできる。
【0143】
上述の多次元リフティング式からの分解は、N×Nマトリクスとしても考えられる変換ルールに適用される。特にDCT−IVに対して逆のものもDCT−IVであるので、結果として、図12に示すコンセプトに関して次の分解が生じる。
【0144】
−1による乗算の置換は、異なるブロックマトリクスに展開できるので、結果として、以下のものを生じる。
【0145】
したがって、信号の2つのブロックすなわち離散値の2つのブロックへの変換のアプリケーションは、好ましくは3つの多次元リフティングステップを用いて得ることができる。
【0146】
上式は、一実施形態に基づく図10cに視覚的に示される。これに対応して逆転換が、前述したように図11に示される。
【0147】
この方法の場合、長さNの2つのDCT−IV変換を可逆的に実施することができ、この場合、3N個だけの丸めステップ、すなわち、1変換当たり3N/2個の丸めステップが必要とされる。
【0148】
3つの多次元リフティングステップにおけるDCT−IVは、何らかの実施、すなわち、例えば、浮動小数点ベースまたは固定小数点ベースの実施を有することが可能である。これは、可逆とする必要さえない。これは、順方向処理および逆方向処理で全く同じように実行するだけでよい。結果として、このコンセプトは、現在のオーディオ符号化アプリケーションで用いられるような1024のような大きい変換長に適する。
【0149】
全体的な計算の複雑性は、2つのDCT−IV変換の非整数実施における計算の複雑性の1.5倍に等しい。この計算の複雑性は、実施が、アール・ガイガー(R.Geiger)、ティー・シューペーラー(T.Sporer)、ジェー・コラー(J.Koller)およびケイ・ブランデンブルク(K.Brandenburg)著、「Audio Coding based on Integer Transforms」、第111回エイイーエス・コンベンション(AES Convention)、ニューヨーク、2001年に記述されているように、エネルギ節約の達成のために用いられるリフティングスキームに基づいて、自明なプラス/マイナスのバタフライ演算を用いなければならないため、従来のDCT−IVの約2倍の複雑性を持つ従来のリフティングベースの整数実施の場合よりも依然としてかなり低い。
【0150】
図示の方法は、少なくとも2つのDCT−IV変換をいわゆる同時に、すなわち、1つの転換内で計算する。これは、例えば、オーディオ信号の2つの連続するブロック、または、イメージ信号の2つの連続するイメージについてDCT−IV変換を計算することにより達成することができる。2つのチャネルのステレオ信号の場合では、これは、転換動作および/または逆変換動作で左チャネルおよび右チャネルのDCT−IVを計算することによっても達成することができる。第1のバージョンは、1つのブロックの追加の遅延をシステム内に取り込む。第2のバージョンは、ステレオチャネルに関して、および/または、一般的に言えば、マルチチャネル信号に関して可能である。
【0151】
あるいはまた、双方の選択肢を望まない場合ではあるが、N個の値の標準的なブロック処理長さを維持しなければならない場合、長さNのDCT−IVは、長さN/2の2つのDCT−IV変換に分解することもできる。これに関連して、この分解が記述されているワイ・ゾン(Y.Zeng)、ジー・ビー(G.Bi)およびゼット・リン(Z.Lin)著、「Integer sinusoidal transforms based on lifting factorization」、proc.ICASSP’01、2001年5月、p.1181−1184を参照する。長さN/2の2つのDCT変換に加えて、ギブンス回転のいくつかの追加段階が必要である。このアルゴリズムでは、ブロックマトリクス
すなわち、N/2個のプラス/マイナスのバタフライ演算と、N/2個のギブンス回転を用いるブロック対角マトリクスと、更なるいくつかの置換マトリクスとがさらに適用される。N/2個のギブンス回転のこれら追加段階を用いれば、多次元リフティング方法は、長さNの1つだけのDCT−IVの計算に用いることもできる。このアルゴリズムの基本構造は図15に示され、そこでは、実際の転換段階に加えて、N/2の長さを用いる2つのDCT−IV変換が用いられ、まず、N/2の長さだけを有する離散値の第1および第2のブロックを計算するためにバタフライ演算段階がある。さらに、N/2個だけの値を各々有する変換表現の出力値のブロックおよび変換表現の出力値の更なるブロックから出力値y0、・・・、yN-1を得るために、出力側に回転段階を提供する。出力値y0、・・・、yN-1は、図15および図12の入力側および出力側のインデックスの比較で明らかになるように、図12のDCT−IV動作の出力値に等しい。
【0152】
ここまで、下記のフォームのブロックマトリクスへの多次元リフティングのアプリケーションだけを論じてきた。
【0153】
しかしながら、その他のブロックマトリクスを多次元リフティングステップに分解することも可能である。例えば、以下の分解は、多次元リフティングの3つのステップによるDCT−IV変換の2つのブロックおよび正規化されたプラス/マイナスのバタフライ演算を有する段階の組み合わせを実施するために用いることができる。
【0154】
上式の左側の括弧内に用いられている第1の変換ルールと、上式の中央の括弧内に用いられている第2の変換ルールと、上式の最後の括弧内に用いられている第3の変換ルールとを同一とする必要がないということが上式から明らかになる。さらに、主対角要素のみが占有されているブロックマトリクスを分解できるだけでなく、完全に占有されているマトリクスも処理できるということが上式から明らかになる。その上、変換表現に転換するのに用いられる変換ルールを同一とすべきであるという、あるいは、例えば、第2の変換ルールが第1の変換ルールに対する逆方向の変換ルールであるように互いに何らかの関係を持つべきであるという制約がないことに留意すべきである。基本的には、3つの互いに異なる変換ルールも、逆表現に考慮される限り用いることができる。
【0155】
これに関連して、図10cおよび図11を再び参照する。変換表現への離散値の転換では、手段102は、何らかの変換ルール1を実施するように形成することができる。さらに、手段108は、変換ルール2とも称するその他のまたは同一の変換ルールを用いるように形成することもできる。手段140は、第1または第2の変換ルールと必ずしも同一とする必要がない何らかの変換ルール3を一般に用いるようにさらに形成することができる。
【0156】
しかしながら、変換表現の逆転換では、転換するための第1の手段124が図10cのブロック140で実行された変換ルール3以外の変換ルールを実行しないように、図10cに記述した変換ルール1〜3へ適合されなければならない。これに対して、図11の手段130は、図10cのブロック108によっても実行された変換ルール2を実行する必要がある。最終的には、図11の手段150が、図10cの手段102によっても実行された変換ルール1を実行すべきであるので、可逆の逆変換が得られる。
【0157】
図16は、図10cに説明したコンセプトの変形形態を示す。特に、順方向変換用の素子104、110および142、または、逆方向変換用の素子126、132および152での丸めがサンプルに関してもはや実行されないが、丸め誤差をスペクトル整形できるようにする。
【0158】
図10cを図16に比較すれば、ブロック104だけをブロック204aに置き換え、丸めブロック110の代わりにブロック204bを用いるのが好ましいこと明らかである。スペクトル整形が実行されていない時、丸め誤差のホワイトノイズが解決し難い周波数範囲で変換を続ける場合に、このコンセプトが特に有利なので用いられる。丸め142の後、いかなる周波数変換もないので、ブロック142のスペクトル整形はもはや利点を含まない。しかしながら、これは、ブロック204aの場合である。その理由は、ブロック108の変換により再び周波数転換があるためである。したがって、ブロック204bのスペクトル整形も、最後のブロック140によりこの場合も変換があるので依然として有利である。しかしながら、図16に関して明らかなように、ノイズ整形された丸め誤差は、出力ブロック114に既に入力されているので、ブロック204bでは、丸め誤差のスペクトル整形の代わりに、図10cのブロック110により示すように一般の丸めも既に実行できている。
【0159】
スペクトル整形の丸めとするか、または、一般の丸め、言い換えれば、第2の変換すなわち変換108の端部で、ホワイトスペクトル分散を有する丸め誤差を伴うものとするかはアプリケーションの個々の場合に依存する。
【0160】
したがって、例えばk個の値の特定数の独立する丸めは、「依存する丸め」とも称することができるスペクトル整形の丸めにより置き換えられる。
【0161】
丸め誤差のスペクトル整形も、IntMDCTに必要とされる整数DCTで用いることができるということが図16に関する上記の説明から明らかになる。しかしながら、この場合、前述したように、丸めるべき値が、更なる変換ステップにより周波数領域に移される時間信号である時だけ、誤差フィードバックによるスペクトル整形が特に有利であるということを考慮しなければならない。したがって、図16の多次元リフティングに関して図示したように、スペクトル整形は、最初の2つのステップで有利であるが、3番目のステップでは必ずしも有利であるとはいえない。
【0162】
図16は、図10cに対応する符号器における場合を示すことに留意すべきである。図16に対応する復号器における場合は、図16および図11の比較から直接的に生じる。図16に直接的に対応する復号器は、2つの丸めブロック132および152を除いて、全く同じようにすべてのブロックが動作する際に図11から生じる。図11では、2つの丸めブロックは、独立する丸めブロックとして動作し、復号器では、依存する丸めブロック204aおよび204bにより置き換えられ、例えば、それらは、すべて、図2cに関して示した構造を有する。特に、全く同じスペクトル整形の丸めアルゴリズムが、符号器の場合と同様に復号器でも用いられることに留意すべきである。
【0163】
特にH(z)=「−1」に対して、図2bおよび図2cに示したコンセプトは、本発明による丸め誤差の減少、特に、整数変換での丸め誤差の減少を達成するためにも特に適する。
【0164】
本発明によれば、2つの浮動小数点数値が丸められ、異なる値の代わりに、同じ値に加算される時はいつでも、このような丸め誤差の減少が可能である。このような例示的な状況を図17に示す。ここでは、まず、リフティング関係値x1およびx3の間に、一連の下がり−上がり−下がりを伴う第1のリフティングステップがある。さらに、この場合には、リフティング関係値x2およびx3の間に、既知の一連の下がり−上がり−下がりを伴う第2のリフティングステップがある。特に、第1のリフティング動作で得られる値x3は、図17から明らかなように、第2のリフティングステップにおける加算の相手として作用するために用いられる。矢印が横線に達する時、このことが加算を意味することに再び留意すべきである。したがって、言い換えれば、丸められたばかりの値は、横線に対応する値に加算される。
【0165】
特に、図17で示した例では、まず、値x1が重み付けられ(ブロック250)、次に、個々に丸められる(ブロック252)。ブロック252の出力信号は、x3に加算される(ブロック254)。その後、加算254の結果が、再び重み付けられ(ブロック256)、再び丸められる(ブロック258)。この丸め258の結果は、次にx1に加算される(260)。加算260の結果は、再び重み付けられ(ブロック262)、丸められ(ブロック264)、x3の現在値に(ブロック266に)加算される。これに対して、値x2は、ブロック270により重み付けられ、次に、ブロック272により丸められる。ブロック272の結果は、x3の現在値に加算される(274)。その後、再び重み付けられ(276)、丸められて(278)、ブロック278の結果がx2の現在値に再び加算される(280)。この加算280の結果は、再び重み付けられ(ブロック282)、重み付けられた結果は、丸め処理られて(ブロック284)、次に、x3に対する結果の値を得るために、丸めブロック284の結果をx3の現在値へ再び加算する(ブロック286)。まず、第1の値すなわちブロック262の結果が、丸められ、次に、x3に加算されるということが図17から明らかである。これに加えて、第2の値すなわちブロック270の結果も、丸められ(ブロック272)、次に、値x3に加算される(加算器274)。このように、2つの浮動小数点数値が次々に丸められ、異なる値の代わりに、同じ値に加算される状況がある。図17に示す例では、第3および第4のリフティングステップの結果は、同じ値すなわちx3に加算されるので、丸め関数[・]を用いて加算が行われる。
[x1・cs1]+[x2・cs2]
【0166】
丸めにおける第3のリフティングステップの誤差が第4のリフティングステップに送られるならば、この場合に第3のステップの誤差を用い、2つの丸め誤差の代わりに1つの丸め誤差だけを生成することができる。これは、計算に関して下式から生じる。
[x1・cs1]+[x2・cs2+(x1・cs1−[x1・cs1])]=
[x1・cs1]+[x2・cs2+x1・cs1]−[x1・cs1]=
[x2・cs2+[x1・cs1]
【0167】
したがって、この場合、計算に関して、次の丸めへの丸め誤差の供給は、値の加算およびその後の丸めと同一である。この状況を図18に示し、図18は図17に対応するが、2つの別個の丸めブロック264、272および2つの別個の加算器266、274は、上記の式を実施するように形成されたブロック268により置き換えられている。したがって、2つのブロック262および270の結果は、まず、丸められないフォームで加算され、次に、丸められる。したがって、好ましい場合では、丸め誤差は半分にされる。ブロック268の出力では、加算器269によりx3に加算される1つだけの単一値を生じる。
【0168】
丸め誤差の減少および整形の組み合わせは、例えば、一組のギブンス回転および多次元リフティングステップが、図19に示すように、互いの後に続く時にも生じ得る。ほんの一例として、値x1〜x4のいくつかの値に対して一連の下がり−上がり−下がりステップでの最後のステップ、すなわち、例えば図9の下がりステップ31cが実行される。これら値は、次に、対応の値に加算され、これら対応の値には、図16の丸められた値、すなわち、ブロック204aの出力端での値も加算される。この場合、丸められていない値を最初に、すなわち、図19に示す加算器203により加算し、次に、加算値を図19のブロック204で丸め、次に、ただ1つの単純な丸め誤差が得られるようにこれらの加算値が同時にノイズ整形を受け、加算器106による加算後の出力値が少ない誤差を含むことが好ましい。この状況は、図19であり、したがって、図9が図16の左に置かれる場合、特に、N/2値のDCT−IVがN値のDCT−IVの代わりに用いられる場合に生じる。
【0169】
したがって、本発明によれば、丸め誤差の減少を丸め誤差の整形と組み合わせることが好ましい。したがって、丸め誤差の減少の場合、いくつかの入力値は、ともに処理されおよび丸められ、それらの丸められた値は1つの値に加算されるのに対して、丸め誤差のスペクトル整形の場合、丸められた値は互いに独立して丸められ、いくつかのそれぞれ異なる他の値に加算される。
【0170】
図19の状況が、図15に示すように、N/2のDCTが用いられる時にも生じることにさらに留意すべきである。この点、転換段階よりも前に、すなわち、2つのDCTブロックよりも前に、図15のバタフライ演算段階と称する段階があり、入力値x0〜xN/2-1は対応して重み付けられ、丸められて、次に、同一の値に加算され、これら値には、DCT−IV段階の値も加算される。図15の転換段階が概略的にしか示されていないことにさらに留意すべきである。実際の実施では、図15に概略的に示す2つのDCT−IVブロックは、図16においてxN/2-1がxN-1の代わりに記され、xN/2の代わりに記すものがあり、xN-1がxN/2-1の代わりに記されるならば、図16に示すコンポーネントにより置き換えられる。
【0171】
したがって、図19は、特にモノ・アプリケーションに対して、すなわち、N/2のDCT−IVが用いられる場合に対して好ましい実施を示す。
【0172】
状況に応じて、丸めるための本発明の方法は、ハードウェアまたはソフトウェアで実施することができる。この実施は、この方法が実行されるようにプログラム可能なコンピュータシステムと協働し、電子的に読み出すことができる制御信号を有するデジタル記憶媒体、特に、フロッピー(登録商標)ディスクまたはCD上で行うことができる。したがって、本発明は、一般に、コンピュータプログラム製品がコンピュータ上で実行すると、機械で読み出し可能なキャリアに記憶された本発明の方法を実行するためのプログラムコードを有するコンピュータプログラム製品にも存在する。したがって、言い換えれば、本発明は、コンピュータプログラムでもあり、コンピュータプログラムがコンピュータ上で実行すると、この方法を実行するためのプログラムコードを有するコンピュータプログラムでもある。
【図面の簡単な説明】
【0173】
【図1】図1は、丸め誤差のスペクトル整形を用いて一連の離散値を有する信号を処理するためのコンセプトのブロック回路図を示す。
【図2a】図2aは、量子化誤差を高域通過スペクトル整形するための既知のコンセプトを示す。
【図2b】図2bは、丸め誤差を低域通過整形するためのコンセプトを示す。
【図2c】図2cは、スペクトル整形/丸めブロックの一実施形態によるブロック回路図を示す。
【図3】図3は、整数値を得るために時間離散オーディオサンプルを処理し、それから整数スペクトル値を決定できる好適な手段のブロック回路図を示す。
【図4】図4は、ギブンス回転へのMDCTおよび逆MDCTの分解と2つのDCT−IV動作との概略図を示す。
【図5】図5は、50%のオーバラップを用いるMDCTの回転への分解およびDCT−IV動作を示すための図である。
【図6a】図6aは、MDCTおよび50%のオーバラップを用いる既知の符号器の概略ブロック回路図を示す。
【図6b】図6bは、図10aにより生成された値を復号化するための既知の復号器のブロック回路図を示す。
【図7】図7は、図3による窓掛けのリフティングを示す図である。
【図8】図8は、実際の変換より前の窓掛けに対して図7のリフティングの「再分類された」図である。
【図9】図9は、図3、7および8による窓掛けのためのスペクトル整形のアプリケーションを示す。
【図10a】図10aは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図10b】図10bは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図10c】図10cは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図11】図11は、本発明の好適な実施形態による逆転換するための装置を示す。
【図12】図12は、本発明に用いることができるような値の2つの連続するブロックの変換を示す図である。
【図13】図13は、順方向変換マトリクスを用いる多次元リフティングステップを示す詳細図である。
【図14】図14は、逆方向変換マトリクスを用いる多次元逆リフティングステップを示す図である。
【図15】図15は、長さNのDCT−IVを長さN/2の2つのDCT−IVに分解する本発明を示す図である。
【図16】図16は、図10の多次元リフティングを用いる変換での本発明のコンセプトのアプリケーションを示す。
【図17】図17は、本発明の丸め誤差を減少する2つの連続するリフティングステップを示す図である。
【図18】図18は、図17の2つの連続するリフティングステップで丸め誤差を減少するための本発明のコンセプトを示す図である。
【図19】図19は、図16のコンセプトおよび図18のコンセプトの好ましい組み合わせを示す。
【技術分野】
【0001】
本発明は、信号処理に関し、とりわけ可逆符号化アプリケーションに特に適するオーディオサンプルまたはビデオサンプルのような連続値の信号処理に特に関する。
【0002】
本発明は、オーディオおよび/またはイメージ情報を含む離散値の圧縮アルゴリズムにさらに適し、ハフマンの形態をとるエントロピー符号化、または算術符号化のような符号化が後に続く周波数領域、時間領域または位置領域の変換を含む符号化アルゴリズムに特に適している。
【背景技術】
【0003】
MPEGレイヤ3(MP3)またはMPEG AACのような最新のオーディオ符号化方法は、オーディオ信号のブロックに関する周波数表現を得るために、いわゆる変形離散コサイン変換(MDCT)のような変換を用いる。このようなオーディオ符号器は、通常、時間離散オーディオサンプルのストリームを得る。オーディオサンプルのストリームは、例えば1024個または2048個の窓掛けられたオーディオサンプルの窓掛けられたブロックを得るために窓掛けられる。窓掛けに関して、サイン窓などのような様々な窓関数が用いられる。
【0004】
窓掛けられた時間離散オーディオサンプルは、次に、フィルタバンクによりスペクトル表現に転換される。このために、原則として、フーリエ変換、または特別な理由によってはフーリエ変換の変形、例えばFFTまたは上述のMDCTを用いることができる。その後、必要に応じて、フィルタバンクの出力端におけるオーディオスペクトル値のブロックがさらに処理される。上記のオーディオ符号器では、次にオーディオスペクトル値の量子化が行われ、量子化段階は、一般に、量子化により取り込まれた量子化ノイズが心理音響的なマスキングしきい値を下回るように、すなわち「マスクして除去される」ように選択される。量子化は、不可逆符号化である。データ量の更なる減少を得るために、量子化されたスペクトル値は、次に、例えばハフマン符号化によりエントロピー符号化される。スケール係数などのような副次的な情報を加算されることにより、記憶または送信することができるビットストリームが、ビットストリームマルチプレクサによりエントロピー符号化された量子化スペクトル値から形成される。
【0005】
オーディオ復号器では、ビットストリームは、ビットストリームデマルチプレクサにより、符号化された量子化スペクトル値と副次的な情報とに分割される。エントロピー符号化された量子化スペクトル値は、まず、量子化スペクトル値を得るためにエントロピー復号化される。次に、量子化スペクトル値は、復号化されたスペクトル値を得るために逆量子化され、これらスペクトル値は量子化ノイズを含むが、この量子化ノイズは心理音響的なマスキングしきい値を下回るので、聞こえない。次に、これらスペクトル値は、時間離散復号化されたオーディオサンプルを得るために、合成フィルタバンクにより時間表現に転換される。合成フィルタバンクでは、変換アルゴリズムに対して逆の変換アルゴリズムを用いる必要がある。さらに、周波数−時間逆方向変換後に窓掛けを逆に行う必要がある。
【0006】
良好な周波数選択性を得るために、最新のオーディオ符号器は、一般に、ブロックオーバラップを用いる。このような場合が図6aに示される。まず、例えば2048個の時間離散オーディオサンプルが得られ、手段402により窓掛けられる。窓掛けを行う手段402は、2N個のサンプルの窓長を有し、2N個の窓掛けられたサンプルのブロックを出力側に提供する。窓のオーバラップを達成するために、2N個の窓掛けられたサンプルの第2ブロックが手段404により形成され、手段404は図6aでは単に明確にするために手段402から離して示される。しかしながら、手段404に供給された2048個のサンプルは、第1の窓のすぐ後に続く時間離散オーディオサンプルではなく、手段402により窓掛けられたサンプルの後半を含み、これに加えて1024個のみの「新たな」サンプルを含む。オーバラップは、図6aに、50%のオーバラップ度を生じる手段406により象徴的に示される。次に、手段402により出力された2N個の窓掛けられたサンプルと手段404により出力された2N個の窓掛けられたサンプルとの両方は、手段408および410によりそれぞれMDCTアルゴリズムを受ける。手段408は、既知のMDCTアルゴリズムに従ってN個のスペクトル値を第1の窓に提供し、一方、手段410もN個のスペクトル値を提供するが、第2の窓に供給し、この場合、第1の窓と第2の窓との間に50%のオーバラップが存在する。
【0007】
復号器では、図6bに示すように、第1の窓のN個のスペクトル値が逆変形離散コサイン変換を実行する手段412に供給される。第2の窓のN個のスペクトル値も同様である。これらは、逆変形離散コサイン変換を実行する手段414に供給される。両方の手段412および414は、それぞれ、2N個のサンプルを第1の窓に2N個のサンプルを第2の窓にそれぞれ提供する。
【0008】
図6bにTDAC(時間領域エイリアシングキャンセル)で示された手段416では、2つの窓がオーバラップしているという事実が考慮されている。特に、第1の窓の後半のサンプルy1、すなわちインデックスN+kの付いたサンプルy1は、第2の窓の前半のサンプルy2、すなわちインデックスkの付いたサンプルy2と合計され、その結果、N個の復号化された時間サンプルが出力側にすなわち復号器内に生じる。
【0009】
加算関数とも呼ばれる手段416の関数により、図6aにより概略的に示される符号器において実行される窓掛けは多少自動的に考慮され、その結果、いかなる明確な「逆窓掛け」も図6bにより示される復号器内において行われる必要がないことに留意すべきである。
【0010】
手段402または404により実施される窓関数がw(k)と称され、インデックスkが時間インデックスを表す場合、2乗された窓重みw(N+k)に2乗された窓重みw(k)が加算されると1であり、kが0〜N−1の範囲になるという条件を満たす必要がある。サイン関数の前半波形に従う窓重み付けを有するサイン窓が用いられる場合、この条件は、サインの2乗とコサインの2乗とを合わせると各角度に対して値1が生じるために、常に満たされる。
【0011】
図6aで説明されるMDCT関数を後に続けて用いる窓掛け法では、時間離散サンプルの乗法による窓掛けが、サイン窓を考えると、0°と180°との間の角度のサインが、90°の角度を除いて整数を生じないため、浮動小数点数で達成されるという欠点がある。整数の時間離散サンプルが窓掛けられる場合でも、浮動小数点数は窓掛けられた後に生じる。
【0012】
したがって、心理音響的な符号器が用いられないとしても、すなわち、可逆符号化が達成されるべきであれば、合理的に管理できるエントロピー符号化を実行できるように、量子化が手段408および410の出力部においてそれぞれ必要である。
【0013】
一般に、可逆オーディオおよび/またはビデオ符号化のための現在既知の整数変換は、そこで用いられる変換をギブンス回転に分解し、リフティングスキームを各ギブンス回転に適用することにより得られる。したがって、丸め誤差が各ステップにおいて取り込まれる。ギブンス回転の後に続く段階に対して、丸め誤差は累積し続ける。結果として生じる近似誤差は、特に、オーバラップおよび加算を用いる既知のMDCT(MDCT=変形離散コサイン変換)における場合のように、例えば1024個のスペクトル値を提供するために長期の変換が用いられる場合に、可逆オーディオ符号化方法対して特に問題になる。特に、オーディオ信号が非常に低いエネルギ量を一般的に有する高周波数範囲では、近似誤差は、実際の信号よりも急速に大きくなるおそれがあるので、これらの方法は、可逆符号化に関して、特にそれにより達成できる符号化効率に関して問題がある。
【0014】
オーディオ符号化に関して、整数変換、すなわち、整数出力値を生成する変換アルゴリズムは、特に、DC成分を考慮しない既知のDCT−IVに基づくのに対して、イメージアプリケーションに対する整数変換は、むしろ、DC成分に対する規定を特に含むDCT−IIに基づく。このような整数変換は、例えば、ワイ・ゾン(Y.Zeng)、ジー・ビー(G.Bi)およびゼット・リン(Z.Lin)著の「リフティング因数分解に基づく整数正弦波変換」(Integer sinusoidal transforms based on lifting factorization)、proc.ICASSP’01、2001年5月、p.1,181−1,184、ケイ・コマツ(K.Komatsu)およびケイ・セザキ(K.Sezaki)著の「可逆離散コサイン変換」(Reversible Discrete Cosine Transform)、Proc.ICASSP、1998年、第3巻、p.1,769−1,772、ピー・ハオ(P.Hao)およびキュー・シー(Q.Shi)著の「可逆整数マッピングのためのマトリクス因数分解」(Matrix factorizations for reversible integer mapping)、IEEEトランザクション信号処理(IEEE Trans.Signal Processig)、信号処理(Signal Processig)、第49巻、p.2,314−2,324、並びに、ジェー・ワン(J.Wang)、ジェー・サン(J.Sun)およびエス・ユー(S.Yu)著の「整数から整数への1−dおよび2−d変換」(1−d and 2−d transforms from integers to integers)、proc.ICASSP’03、香港、2003年4月において知られている。
【0015】
上述したように、上記で説明した整数変換は、変換をギブンス回転に分解し、既知のリフティングスキームをギブンス回転に適用することに基づき、これにより、丸め誤差を累積するという問題を生じる。これは、特に、1回の変換において、すなわち各リフティングステップの後で、丸めを何度も実行しなければならないので、特に、対応の多数のリフティングステップを生じさせる長期の変換では、極めて多数の丸めを必要とするという事実による。前述のように、これは、リフティングステップの後ごとに次のリフティングステップを実行するために丸めが実行されるため、結果的に累積誤差をもたらし、特に、比較的複雑な処理ももたらす。
【0016】
続いて、MDCT窓掛け分解が独国特許出願公開第10129240号で示すように図9〜図11に関して示され、この場合、リフティングマトリクスおよび対応の丸めを用いるギブンス回転へのMDCT窓掛けのこの分解は、完全な整数のMDCT近似値を得るために、すなわち、順方向および逆方向の双方の変換コンセプトをMDCTの例として与える本発明による整数MDCT(IntMDCT)を得るために、転換について図1で論じるコンセプトと逆転換について図2で論じるコンセプトとを有利に組み合わせる。
【0017】
図3は、IntMDCT整数変換アルゴリズムが動作する整数値を得るためにオーディオ信号を表す時間離散サンプルを処理するための本発明の好適な装置の概観図を示す。時間離散サンプルは、図3に示す装置により窓掛けられ、選択的に、スペクトル表現へ転換される。入力端10で装置に供給される時間離散サンプルは、変換手段により特に整数DCTを実行するための手段14によりスペクトル表現へ転換するのに適する整数の窓掛けられたサンプルを出力端12で得るために、2N個の時間離散サンプルに対応する長さを有する窓wで窓掛けられる。整数DCTは、N個の入力値からN個の出力値を生成するように設計され、それはMDCT方程式のため2N個の窓掛けられたサンプルからN個のスペクトル値だけを生成する図6aのMDCT関数408と対照的である。
【0018】
時間離散サンプルの窓掛けに関して、まず、2つの時間離散サンプルが手段16で選択され、これらが互いに時間離散サンプルのベクトルを表す。手段16により選択された時間離散サンプルは、窓の第1の4分の1内にある。その他の時間離散サンプルは、図5に関して詳細に説明するように、窓の第2の4分の1内にある。手段16により生成されたベクトルは、次に、次元2×2の回転マトリクスに提供され、この動作は直接実行されるのではなく、いくつかのいわゆるリフティングマトリクスにより実行される。
【0019】
リフティングマトリクスは、窓wに依存し、「1」または「0」に等しくない1つの要素だけを含むという特性を持つ。
【0020】
リフティングステップにおけるウェーブレット変換の因数分解は、専門の出版物「リフティングステップにおけるウェーブレット変換の因数分解」(Factoring Wavelet Transforms Into Lifting Steps)、イングリッド・ドベシィ(Ingrid Daubechies)およびウィム スウェルデン(Wim Sweldens)著、プレプリント、ベル研究所(Bell Laboratories)、ルーセント テクノロジー(Lucent Technologies)、1996年に、公開されている。一般に、リフティングスキームは、同一の低域通過フィルタまたは高域通過フィルタを有する完全な再構築フィルタ対において簡単な関係である。相補的なフィルタの各対は、リフティングステップに因数分解できる。これは特にギブンス回転に適用する。ポリフェーズマトリクスがギブンス回転である場合を考える。次式が適用する。
【0021】
等号の右手側に位置する3個のリフティングマトリクスの各々は、主対角要素として値「1」を有する。各リフティングマトリクスには、さらに、0に等しい副対角要素と、回転角度αに依存する副対角要素とがある。
【0022】
次に、ベクトルは、第1の結果ベクトルを得るために、3番目のリフティングマトリクス、すなわち、上記の式の一番右に位置するリフティングマトリクスに乗算される。これは、図3に手段18により示される。次に、第1の結果ベクトルは、図3に手段20により示されるように、一連の実数を一連の整数にマッピングする丸め関数で丸められる。手段20の出力端では、丸められた第1の結果ベクトルが得られる。次に、丸められた第1の結果ベクトルは、第2の結果ベクトルを得るために、それを中央のすなわち2番目のリフティングマトリクスに乗算するための手段22に供給され、第2の結果ベクトルは、丸められた第2の結果ベクトルを得るために、手段24で丸められる。次に、丸められた第2の結果ベクトルは、第3の結果ベクトルを得るために、それを上記の式の左側に示すリフティングマトリクスすなわち1番目のリフティングマトリクスに乗算するための手段26に供給され、第3の結果ベクトルは、整数の窓掛けられたサンプルを出力端12で最終的に得るために、最終的に手段28により丸められ、整数の窓掛けられたサンプルのスペクトル表現が所望のものであれば、整数のスペクトル値をスペクトル出力端30で得るために、整数の窓掛けられたサンプルは次に手段14により処理される必要がある。
【0023】
好ましくは、手段14は、整数DCTとして実施される。
【0024】
長さNを用いるタイプ4に従う離散コサイン変換(DCT−IV)は、次式により与えられる。
【0025】
DCT−IVの係数は、正規直交のN×Nマトリクスを形成する。専門の出版物のピー・ピー・ヴァイドヤナハン(P.P.Vaidyanathan)著、「マルチレートシステムおよびフィルタバンク」(Multirate Systems And Filter Banks)、プレンティスホール(Prentice Hall)、(イングルウッドクリフ(Englewood Cliffs)、1993年により記述されているように、各直交のN×Nマトリクスは、N(N−1)/2個のギブンス回転に分解できる。その他の分解も存在することに留意すべきである。
【0026】
様々なDCTアルゴリズムの分類に関して、エッチ・エス・マルヴァ(H.S.Malvar)著、「重ねられた変換を有する信号処理」(Signal Processing With Lapped Transforms)、アーテック・ハウス(Artech House)、1992年を参照する。一般に、DCTアルゴリズムは、基底関数の種類で異なる。この場合に好ましいDCT−IVは、非対称の基底関数、すなわち、コサイン1/4波、コサイン3/4波、コサイン5/4波、コサイン7/4波などを含むが、例えばタイプIIの離散コサイン変換(DCT−II)は、軸対称および点対称の基底関数を有する。例えば、0番目の基底関数はDC成分を有し、1番目の基底関数はコサイン波の半分であり、2番目の基底関数は全部のコサイン波である。DCT−IIがDC成分に特に重点を置くという事実のため、ビデオ符号化では用いられるが、オーディオ符号化では用いられない。その理由は、DC成分が、ビデオ符号化に比べてオーディオ符号化において関連しないためである。
【0027】
以下には、ギブンス回転の回転角度αがどのように窓関数に依存するかを論じる。
【0028】
2Nの窓長を用いるMDCTは、長さNを用いるタイプIVの離散コサイン変換まで軽減することができる。これは、TDAC動作を時間領域において明確に実行し、DCT−IVを適用することにより達成される。50%のオーバラップの場合、ブロックtの窓の左半分は、先行のブロックすなわちブロックt−1の右半分とオーバラップする。連続するブロックt−1およびtのオーバラップ部分は、次のように、時間領域において前処理され、すなわち変換前に処理され、すなわち図3の入力端10と出力端12との間で処理される。
【0029】
上記の式で波形符号を有しないx値は、入力端10での値、および/または、選択するための手段16の後の値であるが、波形符号を有する値は、図3の出力端12での値である。連続するインデックスkが0〜N/2−1の範囲に及ぶのに対して、wは窓関数を表す。
【0030】
窓関数wのTDAC条件から、次式を適用する。
【0031】
ある角度αk、ここで、k=0、・・・、N/2−1に対して、時間領域におけるこの前処理は、先に述べたようにギブンス回転として記すことができる。
【0032】
ギブンス回転の角度αは、次のように窓関数wに依存する。
α=arctan[w(N/2−1−k)/w(N/2+k)] (5)
【0033】
窓関数wがこのTDAC条件を満たす限り、いかなる窓関数wをも用いることができることに留意すべきである。
【0034】
以下には、カスケードされた符号器および復号器が、図4に関して説明される。1つの窓により一緒に「窓掛けられる」時間離散サンプルx(0)〜x(2N−1)は、まず、サンプルx(0)およびサンプルx(N−1)すなわち窓の第1の4分の1からのサンプルと窓の第2の4分の1からのサンプルとが手段16の出力端でベクトルを形成するために選択されるように、図3の手段16によりまず選択される。交差する矢印は、DCT−IVブロックの入力端で整数の窓掛けられたサンプルを得るために、手段18、20および22、24および26、28のリフティング乗算およびその後の丸めをそれぞれ概略的に表す。
【0035】
第1ベクトルが上述のように処理された場合、第2ベクトルは、サンプルx(N/2−1)およびx(N/2)、すなわち、この場合も窓の第1の4分の1からのサンプルと窓の第2の4分の1からのサンプルとからさらに選択され、図3に示すアルゴリズムにより再び処理される。これと同様に、窓の第1および第2の4分の1からの他のサンプル対のすべては処理される。最初の窓の第3および第4の4分の1について、同じ処理が実行される。この時、2N個の窓掛けられた整数のサンプルが出力端12に存在し、これらは、次に、図4に示すようにDCT−IV変換に供給される。特に、第2および第3の4分の1の整数の窓掛けられたサンプルはDCTに供給される。窓の第1の4分の1の窓掛けられた整数のサンプルは、先行の窓の第4の4分の1の窓掛けられた整数のサンプルとともに先行のDCT−IVに処理される。これと同様に、図4では、窓掛けられた整数のサンプルの第4の4分の1は、次の窓の第1の4分の1とともにDCT−IV変換に供給される。図4に示す中央の整数DCT−IV変換32は、次に、N個の整数のスペクトル値y(0)〜y(N−1)を提供する。窓掛けおよび変換が整数出力値を生じるので、これら整数のスペクトル値は、次に、割り込みの量子化を必要とせず、例えば、簡単にエントロピー符号化することができる。
【0036】
図4の右半分には、復号器が示される。逆方向変換および「逆窓掛け」からなる復号器は、符号器とは逆に動作する。図4に示すように、DCT−IVの逆方向変換に逆DCT−IVを使用できるということは既知である。次に、復号器DCT−IV34の出力値は、手段34の出力端における整数の窓掛けられたサンプルおよび/または、先行および次の変換から時間離散オーディオサンプルx(0)〜x(2−N1)を再び生成するために、図4に示すように、先行の変換および/または次の変換の対応の値で逆に処理される。
【0037】
出力側の動作は、逆ギブンス回転により、すなわち、ブロック26、28および22、24および18、20をそれぞれ逆方向に向きを変えて行われる。これは、式(1)の2番目のリフティングマトリクスに関して詳細に示される。丸められた第1の結果ベクトルを2番目のリフティングマトリクスに掛けること(手段22)により(符号器において)第2の結果ベクトルが形成される場合、次式が生じる。
【0038】
式(6)の右側の値x、yは、整数である。しかし、これは、値xsinαに適用されない。ここでは、次式に示すように、丸め関数rが取り込まれる必要がある。
【0039】
この動作は手段24により実行される。
【0040】
(復号器における)逆マッピングは以下のように規定される。
【0041】
丸め動作の前におけるマイナス記号により、誤差を取り込まずにリフティングステップの整数近似値を反転できるということが明らかになる。3つのリフティングステップの各々へのこの近似値のアプリケーションはギブンス回転の整数近似値をもたらす。逆に丸められたリフティングステップを逆の順序で移動することにより、すなわち、復号化において図3のアルゴリズムが下から上に実行されれば、(符号器において)丸められた回転は、誤差を取り込まずに(復号器において)反転することができる。
【0042】
丸め関数rが点対称であれば、逆に丸められた回転は、角度−αを有する丸められた回転と同一であって、以下のように表される。
【0043】
復号器すなわちこの場合では逆ギブンス回転のリフティングマトリクスは、表示「sinα」を表示「−sinα」に単に置き換えることにより式(1)から直接生じる。
【0044】
以下には、図5に関して、オーバラップする窓40〜46を用いる共通のMDCTの分解が再び示される。窓40〜46は、それぞれ、50%のオーバラップを有する。まず、矢印48により概略的に示されるように、ある窓の第1および第2の4分の1内の窓、および/または、ある窓の第3および第4の4分の1内の窓ごとにギブンス回転が実行される。次に、ある窓の第2および第3の4分の1と、次の窓の第4および第1の4分の1とがそれぞれDCT−IVアルゴリズムにより常に一緒にスペクトル表現に転換されるように、回転値すなわち窓掛けられた整数のサンプルがNからNへのDCTに供給される。
【0045】
したがって、共通のギブンス回転が、連続して実行されるリフティングマトリクスに分解され、この場合、結果ベクトルをリフティングマトリクスにそれぞれ掛ける前に、結果ベクトルが整数だけを有するように、浮動小数点数が生成された直後に浮動小数点数を丸められるように、各リフティングマトリクス乗算後、丸めステップが挿入される。
【0046】
したがって、出力値は常に整数のままであって、この場合、整数入力値をも用いることが好ましい。これは、制限を意味するものではない。その理由は、CDに記憶されるような例示的なPCMサンプルは、いずれも、ビット幅に依存して、すなわち、時間離散デジタル入力値が16ビット値であるか24ビット値であるかに依存して変化する値範囲を有する整数の数値であるためである。いずれにしても、上述のように、逆回転を逆の順序で実行することにより、すべての処理を反転できる。したがって、完全な再構築、すなわち、可逆変換をともなうMDCTの整数近似値が存在する。
【0047】
図示の変換は、浮動小数点数値の代わりに整数出力値を提供する。それは、順方向変換およびその後の逆方向変換を実行する際にいかなる誤差も取り込まないように、完全な再構築を行う。本発明の好適な実施形態によれば、この変換は、変形離散コサイン変換の代わりになるものである。しかしながら、回転への分解、並びに、リフティングステップへの回転の分解が可能である限り、その他の変換方法も整数で実行することができる。
【0048】
整数MDCTは、MDCTの有益な特性の大部分を有する。これは、オーバラップしないブロック変換の場合よりも良好な周波数選択性が得られるオーバラップ構造体を有する。変換前の窓掛け内に既に考慮されているTDAC関数のため、オーディオ信号を表すスペクトル値の総数が入力サンプルの総数に等しくなるように、限界サンプリングが維持される。
【0049】
浮動小数点サンプルを提供する標準のMDCTに比較すれば、上述した好適な整数変換は、小さい信号レベルが存在するスペクトル範囲内にだけノイズが標準のMDCTに比べて増大されるとはいえ、このノイズの増大が、著しい信号レベルで顕著なものとならないということを示している。しかし、整数処理は、ハードウェアで簡単かつ迅速に実施できるシフト/加算ステップへ容易に分解できる乗算ステップだけが用いられるため、効率的なハードウェアの実施を示唆する。もちろん、ソフトウェアの実施も可能である。
【0050】
整数変換は、オーディオ信号の良好なスペクトル表現を提供し、かつ、整数の領域内に残る。これをオーディオ信号の音の部分に適用すれば、良好なエネルギ濃度を生じる。この場合、エントロピー符号器とともに、図3に示す窓掛け/変換を単にカスケードすることにより、効率的な可逆符号化スキームを形成することができる。特に、エスケープ値を用いてスタックされた符号化は、MPEG AACで用いられるように有利である。すべての値が所望のコード表に適合するまで、2の特定の累乗によりすべての値を縮小し、次に、切り捨てられた最下位ビットを追加として符号化することが好ましい。大きいコード表を使用する代わりのものと比較して、上述した代わりになるものは、コード表を記憶するための記憶消費量に関して、より有益である。一部の最下位ビットを単に切り捨てることによっても、ほとんど可逆符号器を得ることができる。
【0051】
特に音の信号に対して、整数スペクトル値のエントロピー符号化は、高い符号化利得を可能にする。信号の過渡部分に対して、過渡信号の平らなスペクトルのため、言い換えれば、0に等しいかほとんど0である少数のスペクトル値のため、符号化利得は低い。しかしながら、ジェー・ヘレ(J.Herre)およびジェー・ディ・ジョンストン(J.D.Johnston)著、「時間ノイズシェーピング(TNS)を用いることによる知覚オーディオ符号器のパフォーマンスの強化」(Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping(TNS))、第101回エイイーエス・コンベンション(AES Convention)、ロサンジェルス、1996年、プレプリント4384に記載されているように、周波数領域で線形予測を用いて、この平坦性を利用することができる。代わりとなるものは、開ループを有する予測装置である。もう1つの代わりとなるものは、閉ループを有する予測装置である。最初の代わりとなるもの、すなわち、開ループを有する予測装置は、TNSと呼ばれる。予測後の量子化は、結果として生じた量子化ノイズをオーディオ信号の時間構造に適合させることにつながるので、心理音響的なオーディオ符号器におけるプリエコーを防止する。可逆オーディオ符号化に対して、もう1つの代わりとなるもの、すなわち、閉ループを有する予測装置は、より適している。その理由は、閉ループを用いる予測が入力信号の正確な再構築を可能にするためである。この技術が生成されたスペクトルに適用される場合、整数の領域内にとどめるために、予測フィルタの各ステップ後、丸めステップを実行する必要がある。逆フィルタおよび同一の丸め関数を用いることにより、元のスペクトルを正確に再生することができる。
【0052】
データ整理のために2つのチャネル間で冗長性を利用するために、π/4の角度を用いる丸められる回転が利用される場合、中央側符号化も可逆的に用いることができる。ステレオ信号の左チャネルおよび右チャネルの合計および差を計算する代わりとなるものと比較して、丸められた回転は、エネルギ節約の利点を有する。いわゆるジョイントステレオ符号化技術の利用は、それが標準のMPEG AACでも実行されるように、各帯域に対してオンまたはオフに切り換えることができる。より柔軟に2つのチャネル間の冗長性を減少できるように、更なる回転角度をも考慮することができる。
【0053】
特に、図3に関して示された変換コンセプトは、順方向変換およびその後の逆方向変換に対して可逆的に動作するMDCTの整数実施すなわちIntMDCTを提供する。さらに、丸めステップ20、24および28と、整数DCT(図3のブロック14)における対応の丸めステップとにより、整数処理、すなわち、例えばリフティングマトリクスとの浮動小数点乗算(図3のブロック18、22および26)により生成された値よりも大まかに量子化された値を有する処理を常に可能にする。
【0054】
その結果、計算に関してIntMDCT全体を効率的に実行できるようになる。
【0055】
このIntMDCTの可逆性、または、一般的に言って、可逆を意味するすべての符号化アルゴリズムの可逆性は、符号化された信号を実現するように信号を符号化し、その後、符号化/復号化された信号を実現するように信号を再び復号化すると信号が元の信号と全く同じように「見える」という事実に関連する。言い換えれば、元の信号は、符号化/復号化された元の信号と同一である。これは、いわゆる不可逆符号化と明らかに正反対のものであり、不可逆符号化では、心理音響的なベースで動作するオーディオ符号器の場合と同様に、データは、符号化処理により、特に、心理音響的なモデルにより制御される量子化処理により、回復できない程に損失を受ける。
【0056】
もちろん、丸め誤差は、依然として取り込まれる。したがって、図3に関してブロック20、24および28で示すような丸めステップが実行され、もちろん、丸め誤差を取り込み、丸め誤差は、逆動作が実行される際に復号器内で「削減される」だけである。したがって、可逆符号化/復号化コンセプトでは、丸め誤差が取り込まれて、丸め誤差を再び削減できるのに対して、不可逆符号化/復号化コンセプトの場合では、このことが当てはまらないという点で、可逆符号化/復号化コンセプトは、不可逆符号化/復号化コンセプトとは本質的に異なる。
【0057】
しかしながら、符号化された信号を考えれば、すなわち、変換符号器の例では、時間サンプルのブロックのスペクトル、順方向変換の丸め、および/または、一般的にこのような信号の量子化により、信号に取り込まれる誤差を生じさせる。したがって、丸め誤差は、信号の理想的な誤差のないスペクトル上に重ね合わされ、この誤差は、典型的に、例えば図3の場合に、考えられるスペクトル範囲のすべての周波数成分を一様に含むホワイトノイズである。したがって、理想的なスペクトル上に重ね合わされたこのホワイトノイズは、例えば、窓掛け中、すなわち、ブロック14の実際のDCTよりも前の信号の前処理中、ブロック20、24および28の丸めにより生じる丸め誤差を意味する。復号器が正確な可逆再構築を実現するために、符号器に取り込まれたすべての丸め誤差を要求するので、可逆性要求に関して、すべての丸め誤差が必然的に符号化され、すなわち復号器に送信されなければならないことに特に留意すべきである。
【0058】
スペクトル表現について何も「行われ」なければ、すなわち、スペクトル表現が記憶され、送信され、正確に整合する逆の復号器により再び復号化されるだけの場合、丸め誤差に問題がない場合がある。この場合、丸め誤差がどのくらいスペクトルに取り込まれたかに関係なく、可逆性の基準は、常に満たされる。しかしながら、スペクトル表現、すなわち、丸め誤差を含む元の信号の理想的なスペクトル表現について何かが行われたならば、例えば、拡張性層が生成されたならば、全てこれらのことはよりよく機能し、丸め誤差がより小さくなる。
【0059】
したがって、一方において信号を特別の復号器により可逆的に再構築すべきであるが、理想的でない可逆復号器にもスペクトル表現を与えることができるという点、または、非理想可逆復号器がスケーリング層を生成できるという点などで柔軟性を保つため、信号はスペクトル表現内に最小限の丸め誤差を持つべきでもあるという要求も可逆符号化/復号化にある。
【0060】
上述のように、丸め誤差は、考えられるスペクトル全体に及ぶホワイトノイズとして表される。その一方で、特に、可逆にとりわけ興味を持つような高品質アプリケーション、すなわち、96kHzのような極めて高いサンプリング周波数を有するオーディオアプリケーションにおいて、オーディオ信号は、特定のスペクトル範囲内に合理的な信号内容だけを有し、典型的に、特定のスペクトル範囲は、20kHzまで達し、多くとも20kHzである。オーディオ信号の最大信号エネルギが集中する範囲は、典型的に、0と10kHzとの間の範囲であるのに対して、10kHzよりも上の範囲では、信号エネルギがかなり減少する。しかしながら、これは、丸めにより取り込まれたホワイトノイズにとって問題ではない。それは、信号エネルギの考えられるスペクトル範囲の全体にわたって重ね合わされる。その結果、スペクトル範囲において、すなわち、オーディオ信号エネルギが全くなくまたはほんの少しある高スペクトル範囲において典型的に、丸め誤差しかないということになる。これと同時に、特に非決定性のため、丸め誤差は、符号化にとって困難でもあり、すなわち、比較的高いビット要求に関して、丸め誤差を符号化できる。これらビット要求は、特にいくつかの可逆アプリケーションにおいて、決定的な役割を果たさない。しかしながら、ますます普及する可逆符号化アプリケーションに対して、不可逆符号化コンセプトから既知であるように、ここでもビット効率を著しくよく動作して、可逆アプリケーションに内在する品質低下しない利点を対応のビット効率とも組み合わせることは極めて重要である。
【0061】
したがって、丸め誤差を復号化において削減できるという点で可逆状況において丸め誤差に問題はないけれども、第1に実行すべき可逆復号化および/または再構築を可能にするため、丸め誤差は、依然として極めて重要である。他方では、既に述べたように、丸め誤差は、スペクトル表現が問題になる、すなわち、丸められていない信号の理想的なスペクトル表現と比較して、スペクトル表現をゆがめる原因になっている。スペクトル表現すなわち符号化信号が実際に重要であるアプリケーションの特定の場合、すなわち、例えば様々なスケーリング層が符号化信号から生成される場合、可能な限り少ない丸め誤差を有する符号化表現を得ることは依然として望ましく、しかしながら、再構築に必要とされる丸め誤差は削減されない。
【発明の開示】
【発明が解決しようとする課題】
【0062】
本発明の目的は、入力値を処理するためのアーチファクトを削減するコンセプトを提供することである。
【課題を解決するための手段】
【0063】
この目的は、請求項1に記載の少なくとも2つの入力値を処理するための装置、または、請求項11に記載の少なくとも2つの入力値を処理するための方法、または、請求項12に記載のコンピュータプログラムにより達成される。
【0064】
本発明は、2つの値が実際に丸められなければならなく、次に2つの丸められた値が、例えば加算により、まず、2つの値を丸めていない状態ですなわち浮動小数点表現として加算し、次に、加算された出力値を第3の値に加算だけすることにより、第3の更なる値に組み合わされる時はいつでも、丸め誤差の減少が丸め誤差を減少することにより達成できるという発見事項に基づく。各値が個々に処理される通常の手順に比較して、本発明のコンセプトは、さらに、1つの合計処理および1つの丸め処理を節約するので、本発明のコンセプトは、丸め誤差が減少されるという事実に加えて、より効率的なアルゴリズムの実行にも寄与する。
【0065】
本発明の好適な実施形態では、2つの回転が互いに「隣接する」リフティングステップに分割される場合、すなわち、第1の値が最初に第3の値とともに「回転」する状況がある場合、および、この最初の回転の結果が次に第2の値と再び回転する場合、本発明のコンセプトが丸め誤差を減少するために用いられる。
【0066】
丸め誤差を減少するための本発明のコンセプトのアプリケーションの更なるケースは、長さの半分すなわちN/2個のポイントを有する2つのDCTにNポイントDCTが分割されるときに生じるように、多次元リフティングコンセプトのリフティング段階がバタフライ演算により処理されるときに存在する。この場合、実際の多次元リフティングの前にバタフライ演算段階があり、多次元リフティングの後に回転段階がある。特に、バタフライ演算段階により必要とされる丸めは、丸め誤差を減少するために、多次元リフティングコンセプトの第1のリフティング段階の丸めに組み合わされる。
【0067】
変換用の多次元リフティング処理および整数窓掛け/前処理を用いる整数MDCTにおける丸め段階の数が、本発明の適用なしに従来技術に比較して、既に著しく減少しているので、特にこの状況では、本発明のコンセプトは、既にわずかではあるが残りの丸め誤差を著しく減少することに寄与する。この結果として、例えば、理想的なスペクトルに対してほんのわずかな偏差を有するスペクトルを生じ、依然として存在するが、丸め誤差を非常に減少している。
【0068】
特に、可逆符号化/復号化の面において、本発明は、丸め誤差のスペクトル整形と組み合わせることができ、この場合、依然として残存する丸め誤差は、それがいずれにしろ高い信号エネルギを有する符号化すべき信号の周波数範囲内に「収められ」、その結果として、その信号がとにかくエネルギを持たない範囲内に丸め誤差が存在しないように、スペクトル整形される。従来技術では、可逆符号化、特に、整数アルゴリズムに基づく可逆符号化において、丸め誤差が、信号のスペクトル全体にわたって分散されたホワイトであったが、丸め誤差がピンクノイズの形態で理想的なスペクトル上に重ね合わされ、すなわち、丸めによるノイズエネルギが、信号がとにかく最も高い信号エネルギを有する箇所に存在し、したがって、丸め誤差によるノイズが、符号化すべき信号がそれ自体エネルギを持たない箇所で、エネルギをわずかにまたは全くないようにする。したがって、確率的信号でありしたがって符号化しにくい丸め誤差が、周波数範囲内で符号化すべき唯一の信号であって、したがって、ビットレートを不必要に増大させるという最悪の場合が回避される。
【0069】
エネルギが低周波数範囲内にあるオーディオ信号を考えれば、信号がとにかく多くのエネルギを持つ範囲内に丸め誤差がマッピングされるが、丸めるための手段は、生成された丸め誤差のスペクトル低域通過整形を達成し、符号化された信号の高周波数において信号エネルギもノイズエネルギも存在しないように設計されている。
【0070】
特に可逆符号化アプリケーションにとって、これは、丸め誤差が可聴範囲を除いて丸め誤差を得るためにスペクトル的に高域通過フィルタリングされる従来技術と対照的である。また、これは、丸め誤差が存在するスペクトル範囲が、丸め誤差を削減するために、電子的にまたは耳自体により除去される場合に対応する。しかしながら、可逆符号化/復号化について、丸め誤差は、復号器において完全に必要とされ、その理由は、そうしなければ、可逆符号化アルゴリズムに対して逆のものであって復号器に用いられるアルゴリズムがひずみを生じるからである。
【0071】
丸め誤差のスペクトル整形のコンセプトは、高いサンプリングレートで可逆アプリケーションに用いられるのが好ましく、その理由は、特に、スペクトルが理論上(オーバサンプリングのために)40kHzを上回るまで広がる場合、信号エネルギがとにかく存在しない高周波数範囲において、すなわち、符号化を極めて効率的に行うことができる高周波数範囲において、信号エネルギも高周波数範囲で零である非整数の符号化の場合のように、同じ状況が達成されるためである。
【0072】
多数の零が極めて効率的に符号化され、符号化に対して問題のある丸め誤差が、いずれにしても極めて精巧に典型的に符号化される範囲にシフトされるので、信号の全体的なデータレートは、丸め誤差が周波数範囲全体にわたってホワイトノイズとして分散されている場合と比較して減少される。さらに、符号化性能はしたがって復号化性能も、高周波数範囲の符号化および復号化に計算時間を費やす必要がないので増大される。そのため、このコンセプトは、符号器の一部でおよび/または復号器の一部で高速信号処理を達成できるという結果をも有する。
【0073】
一実施形態では、近似誤差を整形/減少するコンセプトは、逆にできる整数変換、特にIntMDCTに適用される。アプリケーションの2つの領域があり、すなわち、一方では、MDCTが要求される丸めステップに関してかなり単純化される多次元リフティングであり、他方では、実際のDCTより前の前処理に起きるような整数の窓掛けに必要な丸め動作である。
【0074】
誤差フィードバックコンセプトは、処理される信号が最も高い信号エネルギを有する周波数範囲に丸め誤差がシフトされる丸め誤差のスペクトル整形に用いられる。オーディオ信号に対して、特にビデオ信号に対しても、これは低周波数範囲となるので、誤差フィードバックシステムは低域通過特性を有する。これは、通常少ない信号成分が存在する高周波数範囲で丸め誤差は少なくなる。従来技術では、丸め誤差は高い範囲で広がり、その結果、これら丸め誤差は符号化されなければならなく、したがって、符号化のために必要とされるビット数を増大する。好ましくは、この丸め誤差は、高周波数で減少され、これにより、符号化のために必要とされるビット数を直接的に減少する。
【0075】
本発明の好ましい実施形態が添付図面を参照して後に詳述されるが、これらの図面としては:
図1は、丸め誤差のスペクトル整形を用いて一連の離散値を有する信号を処理するためのコンセプトのブロック回路図を示し、
図2aは、量子化誤差を高域通過スペクトル整形するための既知のコンセプトを示し、
図2bは、丸め誤差を低域通過整形するためのコンセプトを示し、
図2cは、スペクトル整形/丸めブロックの一実施形態によるブロック回路図を示し、
図3は、整数値を得るために時間離散オーディオサンプルを処理し、それから整数スペクトル値を決定できる好適な手段のブロック回路図を示し、
図4は、ギブンス回転へのMDCTおよび逆MDCTの分解と2つのDCT−IV動作との概略図を示し、
図5は、50%のオーバラップを用いるMDCTの回転への分解およびDCT−IV動作を示すための図であり、
図6aは、MDCTおよび50%のオーバラップを用いる既知の符号器の概略ブロック回路図を示し、
図6bは、図10aにより生成された値を復号化するための既知の復号器のブロック回路図を示し、
図7は、図3による窓掛けのリフティングを示す図であり、
図8は、実際の変換より前の窓掛けに対して図7のリフティングの「再分類された」図であり、
図9は、図3、7および8による窓掛けのためのスペクトル整形のアプリケーションを示し、
図10は、本発明の好適な実施形態による転換するための装置のブロック回路図を示し、
図11は、本発明の好適な実施形態による逆転換するための装置を示し、
図12は、本発明に用いることができるような値の2つの連続するブロックの変換を示す図であり、
図13は、順方向変換マトリクスを用いる多次元リフティングステップを示す詳細図であり、
図14は、逆方向変換マトリクスを用いる多次元逆リフティングステップを示す図であり、
図15は、長さNのDCT−IVを長さN/2の2つのDCT−IVに分解する本発明を示す図であり、
図16は、図10の多次元リフティングを用いる変換での本発明のコンセプトのアプリケーションを示し、
図17は、本発明の丸め誤差を減少する2つの連続するリフティングステップを示す図であり、
図18は、図17の2つの連続するリフティングステップで丸め誤差を減少するための本発明のコンセプトを示す図であり、
図19は、図16のコンセプトおよび図18のコンセプトの好ましい組み合わせを示す。
【発明を実施するための最良の形態】
【0076】
図1は、信号入力200を介して操作するための手段202に入力される一連の離散値を有する信号を処理するための装置を示す。この信号は、信号が高いエネルギを持つ第1の周波数範囲を有し、さらに、信号が比較的低いエネルギを持つ第2の周波数範囲とを有するように典型的に形成される。第1の信号がオーディオ信号であれば、高いエネルギを第1の周波数範囲、すなわち、低い周波数範囲に有し、低いエネルギを高い周波数範囲に有する。しかしながら、信号がビデオ信号であれば、この場合も、高いエネルギを低い周波数範囲に有し、低いエネルギを高い周波数範囲に有する。オーディオ信号とは対照的に、ビデオ信号の周波数範囲は、空間周波数範囲である。ただし、一連のビデオフレームが、例えば、選択されたイメージ領域に関連する時間周波数も一連のフレーム内に存在すると見なされる場合を除く。
【0077】
操作するための手段202は、少なくとも1つの操作値が整数でない一連の操作値が得られるように、一連の離散値を操作するために一般に形成される。この一連の非整数の離散値は、一連の丸められた操作値を得るために一連の操作値を丸めるための手段204に送られる。丸めるための手段204は、第1の周波数範囲、すなわち、元の信号が高いエネルギを有する周波数範囲で、スペクトル整形された丸め誤差も高いエネルギを持つように、さらに、第2の周波数範囲、すなわち、元の信号が低いエネルギを有する周波数範囲で、スペクトル整形された丸め誤差も低いエネルギを持つか全くエネルギを持たないように、丸めにより生成された丸め誤差のスペクトル整形を達成するために形成される。したがって、スペクトル整形された丸め誤差の第1の周波数範囲内のエネルギは、スペクトル整形された丸め誤差の第2の周波数範囲内のエネルギよりも一般に高い。しかしながら、スペクトル整形が丸め誤差のエネルギ全体で何も変えないのが好ましい。
【0078】
好ましくは、誤差を含む一連の丸められた操作値を生成するための装置は、直接的に、または、更なる操作あるいは丸めの組み合わせを介してスペクトル表現に転換するための手段206に結合される。したがって、誤差を含む一連の丸められた操作値は、誤差を含む一連の丸められた操作値の直接スペクトルを達成するために、スペクトル表現に転換するための手段206に直接的に送られる。しかしながら、一実施形態では、操作するための手段は、リフティングステップおよび/またはリフティングマトリクスであり、丸めるための手段は、リフティングステップの非整数結果を丸めるために形成される。この場合、手段204の後に、第2のリフティングステップを実行する操作するための更なる手段が続き、次に、この更なる手段の後に、丸めるための手段が続き、次に、この丸めるための手段の後に、第3のリフティングステップを実施する操作するための第3の手段が続き、3つのすべてのリフティングステップが達成されるように、他の操作がある。したがって、手段204の出力端における元の誤差を含む一連の丸められた操作値から導かれた、誤差を含む一連の丸められた操作値が生成され、次に、これらが、ブロック206に示すように、好ましくは整数変換によりスペクトル表現に最終的に転換される。ブロック206の出力端におけるスペクトル表現の出力信号は、この時、従来の技術とは対照的に、ホワイトの分散された丸め誤差をもはや有さず、スペクトル整形された丸め誤差を有するスペクトルを有し、すなわち、信号エネルギがない周波数範囲内に丸め誤差エネルギがない最高の状態でも、実際の「有用なスペクトル」が高い信号エネルギを持つ箇所に高い丸め誤差エネルギも存在するようになっている。
【0079】
このスペクトルは、次に、スペクトル表現をエントロピー符号化するための手段208に供給される。エントロピー符号化するための手段は、ハフマン符号化、算術符号化などのような何らかの符号化方法をも含むことができる。特に、零であって互いに隣接する多数のスペクトル線の符号化に対して、従来技術ではもちろん適用することができないランレングス符号化も適しており、その理由は、実際に確定的な信号は、そのような周波数範囲で符号化されなければならないが、ホワイトスペクトルを有し、したがって、個々のスペクトル値が互いに完全に無相関であるので、いかなる種類の符号化ツールにも著しく好ましくないためである。
【0080】
続いて、スペクトル整形で丸めるための手段204の好適な実施形態を図2a、2bおよび2cに関して説明する。
【0081】
図2aは、専門書「Digitale Audiosignalverarbeitung」、ユー・ゾエルザー(U.Zoelzer)著、トイブナー出版社(Teubner−Verlag)、シュトゥットガルト(Stuttgart)、1997年により記述されているように、量子化誤差をスペクトル整形するための既知の誤差フィードバックシステムを示す。入力値x(i)は、入力合計器210に供給される。合計器210の出力信号は、スペクトル整形装置の出力端で量子化出力値y(i)を提供する量子化器212に供給される。第2の合計器214では、量子化器212の後の値と量子化器212の前の値との差、すなわち、丸め誤差e(i)が決定される。第2の合計器214の出力信号は、遅延手段216に送られる。1つの時間ユニットだけ遅延された誤差e(i)は、次に、加算器210により入力値から減算される。この結果、元の誤差信号e(n)の高域通過評価を生じる。
【0082】
図2aに216と示された遅延手段Z-1の代わりにZ-1(−2+z-1)が用いられるならば、その結果は2次高域通過評価である。ある実施形態では、量子化誤差のこのようなスペクトル整形は、量子化誤差が知覚されないように知覚可能な範囲から、すなわち、例えば信号x(n)の低域通過範囲から量子化誤差を「マスク除去」するために用いられる。
【0083】
図2bに示すように、知覚の範囲外にではなくまさに知覚の範囲内に誤差のスペクトル整形を達成するために、代わりに低域通過評価が実行される。このため、加算器210の出力信号は、図2bに示すように、例えば、端数を切り上げでき、または、端数を切り捨てでき、または、切り捨てにより丸めることができ、または、次の整数まであるいは1つ置いて次の整数まであるいは2つ置いて次の整数までなど端数を切り上げ/端数を切り捨てることができる何らかの丸め関数を実施する丸めブロック218に送られる。誤差フィードバック経路、すなわち、加算器214および加算器210間では、遅延部材216に加えて、インパルス応答h(n)および/または伝達関数H(z)を有する更なるフィードバックブロック220がある。出力シーケンスのz変換、すなわちY(z)は、図2bに示す式により入力シーケンスX(z)に関連付けられる。
e(n)=x’(n)−y(n)
【0084】
上式では、x(n)は加算器210への入力信号であり、y(n)は丸めブロック218からの出力信号である。
【0085】
さらに、下式を適用する。
y(n)=round(x’(n))
【0086】
上式では、「round」は、ブロック218により実施される丸め関数を表す。さらに、下式を適用し、ここで、「*」は畳み込み演算を表す。
x’(n)=x(n)−h(n)*e(n−1)
【0087】
z範囲では、次の結果となる。
Y(z)=X’(z)+E(z)
X’(z)=X(z)−E(z)z-1H(z)
Y(z)=X(z)+(1−z-1H(z))E(z)
【0088】
E(z)が丸め誤差なので、これはフィルタ(1−z-1H(z))によりスペクトル整形される。本発明によれば、この時、低域通過のような伝達関数が用いられる。例えば、H(z)=−1の場合、最も簡単な低域通過のような伝達関数を得ることができる。したがって、この簡単な例では、前の丸め動作の丸め誤差は、次の丸め動作が適用される前に、丸めるべき値に簡単に加算される。このようにして、本発明にとって極めて効率的でしたがって好ましい丸め誤差の簡単な低域通過フィルタリングが達成される。
【0089】
一実施が図2cに示される。特に、元の一連の整数離散値を操作するための手段202が示され、これは一連の非整数離散値y0、y1、y2、・・・、yiを出力側に提供する。例えば、図3のブロック20、24および28に関して、または、図10のブロック104、110および142または図11のブロック126、132および150に関して示すように、従来技術とは対照的に、もはや各値はそれ自体に対して丸められない。その代わりに、結果が上述のスペクトル整形であるように、図2cに示す「ネットワーク」ごとのフィードバック分岐中の低域通過特性を用いて、互いに依存し合う一連の非整数離散値y0、y1、y2、y3、・・・がフィルタリングされる。図2cおよび図2bの同様の素子は、同一の符号で示される。
【0090】
さらに、図2cは、並行の実施、すなわち、丸めるべき値が並行に提供される実施を示す。もちろん、この図は概略である。この場合、値y0、y1、y2、・・・は、一連の出力値を得るために連続的に提供することができ、その際、素子210、214、216、218および220の構造の単独の実施は充分である。明確のためだけに、素子214、218、210および220の繰り返し構造が図示される。
【0091】
したがって、図2cに示す丸めるための手段204は、まず、丸め値[y0]を計算するために動作する。次に、丸め誤差i0が計算される。次に、−1であるのが好ましい伝達関数H(z)を用いるブロック220により丸め誤差i0が重み付け(フィルタリング)され、加算器210に送られる。このフィルタリングされた丸め誤差は、一連yiの次の値に加算され、すぐ、加算器210の結果は、丸められた次の値[y1]を得るために、ブロック218で丸められる。その後、丸め誤差は、加算器214により、すなわち、丸め値[y1]および元の値y1を用いて再び決定され、この得られた丸め誤差i1は、一連の次の値y2に対して同じ手順を実行するために、ブロック220で再びフィルタリングされる。
【0092】
この点において、方向が無関係であるということに留意すべきである。これは、大きい方のインデックスを持つyiから、小さい方のインデックスを持つyiへ、すなわち、図2cにおいて特にブロック220から加算器210へ伸びる矢印で表す方向に対して反対の方向に進行することも可能であることを意味する。したがって、順序、すなわち、手順は、低い方から高い方へ連続するインデックスに進行しようが、高い方から低い方へ連続するインデックスに進行しようが重要でない。
【0093】
特に、整数MDCT(IntMDCT)のアプリケーションの場合では、次の条件を満たす場所で特別な効率により丸め誤差のスペクトル整形が用いられることが好ましい。
−丸め誤差は、互いに独立するいくつかの隣接する値で加算される。
−隣接する値は、(最も広い意味で)時間信号であり、後に、変換によりスペクトル表現に転換され、すなわち、これらは周波数領域に移される。
【0094】
以下に、整数MDCTの一部分において丸め誤差のスペクトル整形を用いることが好ましい詳細な説明を示す。
【0095】
第1の好適な実施形態は、実際の変換前の窓掛けにあり、すなわち、図3においてブロック20、24および28により特定される丸めに対するものである。個々の元のサンプルx1、・・・、xNの各々が受けるリフティング動作であって、図3に基づいて概説したようなリフティング動作も、図7に示す図により明らかにすることができる。この場合、結果が「上から下へ」、「下から上へ」および「上から下へ」つながるように、3つのリフティングマトリクスのアプリケーション、すなわち、それぞれ1つのサンプルに関して、ある係数で乗ずることが例示される。
【0096】
図7に関して、矢印が横線に接触すれば、そこで加算が実行されることに留意すべきである。このような加算は、図7において例えば27で示される。図4を図7に比べると、その差は、図4のx(0)が図7のx1に対応するということだけである。この点において、図7のxNは、図4のx(N−1)に対応する。しかしながら、図4のx(N/2−1)は、図7のxN/2に対応する。さらに、図4のx(N/2)は、図7のxN/2+1に対応するので、結果は、図2に示すバタフライ演算であり、これにより、ある窓の第1の4分の1からのある値が、リフティングステップに従ってこの窓の第2の4分の1からのある値で常に重み付けられる一方で、同じようにこの窓の第3の4分の1の値も、図7に示すように、「下がり−上がり−下がりシステム」によりこの窓の第4の4分の1の値で処理される。
【0097】
対の値xN/2およびxN/2+1について対応の手順がある。この場合も、下がって、上がって下がる連なりとなり、下がりステップ29aの後に、上がりステップ29bが続き、この上がりステップ29bの次に、下がりステップ29cが続く。
【0098】
したがって、図7は、リフティングによる整数の窓掛けを示す。図8に示すように、結果を変えずに、この計算は、容易に再分類することもできる。したがって、もちろん、すべての下がりステップ(すべてのステップ29a)は、最初に実行することができる。次に、結果が下がりブロック31a、上がりブロック31b、そして再び下がりブロック31cとなるように、すべての上がりステップ(29b)が、すべての下がりステップ29cを最終的に実行するために実行される。図8は図7に対応するが、別の図では、本発明を理解するために図8がより適していることに留意すべきである。
【0099】
次に、図9は、丸めがスペクトル整形で実行されるコンセプトを示す。図9に示すリフティング計算コンセプトは、入力値x1、xN/2が入力端200において元の一連の整数離散値を表すという点で図1に対応する。下がりブロック31aの評価ブロックcs1、cs2、・・・、cskが互いに、操作するための手段202を形成する。[・]/ノイズ整形と表されたブロックは、図1の丸めるための手段204を表す。ここで、誤差を含む一連の丸められた操作値は、このブロック204の出力端に生じる。
【0100】
図9に示す実施形態では、誤差を含む一連の丸められた操作値は、新たな一連の整数離散値を得るために、更なる連なりxN/2+1〜xNに加算され、次に、この新たな一連の整数離散値は、素子204bにより上がりブロック31bで再び丸めを達成するために、(上がりブロック31bのブロックs1、skにより)操作される。次に、下がりブロック31aでのように、すなわち、加算器205aの場合でのように、再び、新たな連なりを得るために、値に関する加算器205bを用い、この新たな連なりが操作器202cに送られる。操作器202cの出力信号は、非整数であり、更なる丸め器204cで丸められ、次に、更なる加算器205cにより、すなわち、操作器202bに送られる連なりに加算される。
【0101】
図9に示す実施形態では、出力側の結果は、図4に関して示したような系統的なスキームに従って、対応してシフトされるDCT−IVブロックに送られる窓掛けられたサンプルのブロックである。これらシフトされるDCT−IVブロックは、誤差を含む一連の丸められた操作値をスペクトル表現に転換するための変換を提供する。したがって、図4のDCT−IVブロックは、図1の手段206の実施を表す。同様に、逆整数DCT−IVを実行するためのブロックは、時間表現に転換するための類似の手段を表す。
【0102】
続いて、多次元リフティングのアプリケーションが、図10aのスペクトル表現に転換するための手段206の整数実施および/または(復号器用の)逆転換の類似の整数実施を示すために、図10〜15に関して説明される。多次元リフティングのコンセプトは、独国特許出願第10331803.8号明細書にある。
【0103】
図10aは、整数値を有する変換表現に離散値を転換するための装置を示す。この離散値は、この装置に第1の入力端100aおよび第2の入力端100bを介して送られる。離散値の第1のブロックは入力端100aを介して供給されるのに対して、離散値の第2のブロックは入力端100bを介して供給される。離散値は、オーディオデータまたはイメージデータおよび/またはビデオデータを表す。以下で述べるように、離散値の第1のブロックと離散値の第2のブロックとは、オーディオサンプルの2つの時間的に連続するブロックを実際に含めることができる。離散値の第1および第2のブロックは、離散値および/または予測の後の剰余値、あるいは差分符号化の差分値などにより表された2つのイメージも含むことができる。しかしながら、離散値の2つのブロックは、MDCTの整数実施でのように前処理を受けることもでき、離散値の第1のブロックおよび第2のブロックは、実際に窓掛けられたサンプルからギブンス回転により生成される。したがって、離散値の第1および第2のブロックは、回転、置換、プラス/マイナスのバタフライ演算、スケーリングなどのように、いくつかの処理により元のオーディオデータまたはイメージデータから導くことができる。離散値の第1および第2のブロックは、オーディオ情報および/またはイメージ情報を依然として得るとはいえ、それらは、直接的にオーディオをサンプリングまたは離散化されたイメージ値ではない。
【0104】
離散値の第1のブロックは、図10aに示すように、手段102の出力端に変換値の第1のブロックを得るために、入力端100aを介して第1の変換ルールを用いて離散値の第1のブロックを処理するための手段102に送られる。変換値のこの第1のブロックは、フーリエ変換、ラプラス変換、FFT、DCT、DST、MDCT、MDSTのようないくつかの変換ルール、または、何らかの基底関数を有するウェーブレット変換のようないくつかの他の変換により変換値が典型的に得られるように、典型的に整数ではなく、浮動小数点数値を含む。変換値の第1のブロックは、丸められた変換値の第1のブロックを出力側で得るために、変換値の第1のブロックを丸めるための手段104に送られる。丸めるための手段104は、浮動小数点数値に応じて実行すべき、切り捨てによる丸めまたは端数の切り上げおよび/または端数の切り捨てなどのようにいくつかの丸め関数を実行するために形成される。
【0105】
したがって、手段104により実施される丸めルールは、丸められた変換値の第1のブロックが整数値だけを含むようにし、整数値の精度は、手段104により用いられた丸めルールにより決定される。丸められた変換値の第1のブロックは、離散値の第2のブロックが第2の入力端子100bに適用されるのと同時に、合計値の第2のブロックを得るために合計するための手段106に供給される。オーディオ信号の場合を考えれば、丸められた変換値の第1のブロックからのスペクトル値が、手段106により離散値の第2のブロックからの時間値に加算されることが明らかである。第2のブロックの離散値が、例えば電圧値であれば、丸められた変換値の第1のブロックが電圧振幅すなわち単位Vを持つ
値としても存在することを推奨する。この場合、合計において、何の単位の問題も予想されない。しかしながら、丸められた変換値の第1のブロックと離散値の第2のブロックとの双方が、例えば無単位であるという点において、丸められた変換値の第1のブロックおよび/または離散値の第2のブロックに関して何らかの単位の正規化を実行できることは、当業者によって明らかである。
【0106】
合計値の第2のブロックは、変換値の第2のブロックを得るために、第2の変換ルールを用いて合計値の第2のブロックを処理するための手段108に供給される。手段102に用いられる変換ルールが、例えば時間−周波数変換ルールであれば、ブロック108に用いられる第2の変換ルールは、例えば周波数−時間変換ルールである。しかしながら、これらの関係を逆にすることもできるので、離散値の第1および第2のブロックは、例えばスペクトル値であり、時間値が、変換ルールに基づいて処理するための手段102により得られるのに対して、スペクトル値が、逆変換ルールにより処理するための手段、すなわち手段108により得られる。したがって、第1および第2の変換ルールは、順方向変換ルールまたは逆方向変換ルールとすることができ、この場合、逆変換ルールは、逆方向変換ルールまたは順方向変換ルールである。
【0107】
変換値の第2のブロックは、図10aに示すように、丸められた変換値の第2のブロックを得るために、丸めるための手段110に送られ、丸められた変換値の第2のブロックは、出力端114で出力できる変換表現の整数出力値のブロックを得るために、第1の入力端108aを介して供給された離散値の第1のブロックから、丸められた変換値の第2のブロックを減算するために減算するための手段112に、最後的に送られる。手段102でも用いられた変換ルール、または、この変換ルールとは異なる変換ルールである何らかの第3の変換ルールを用いて変換表現の整数出力値のブロックを処理し、次に、丸められた変換出力値のブロックを得るために変換出力値のブロックを丸め、次に、丸められた変換出力値のブロックおよび合計値の第2のブロックを合計することにより、出力端114に適用された整数出力値のブロックを用いて離散値の第1および第2のブロックの完全な変換表現を提供する変換表現の整数出力値の更なるブロックを得ることができる。
【0108】
しかしながら、出力端114における変換表現の整数出力値のブロックが用いられる、処理、丸めおよび合計の最後の3つのステップを用いなくても、全体の変換表現の一部分、すなわち、例えば、逆処理を受ける時、離散値の第1および第2のブロックの逆算を可能にする最初の半分を既に得ることができる。
【0109】
この点について留意すべきことは、第1、第2および第3の変換ルールがあったとしても、変換ルール次第では、これらの変換ルールを同一にできるということである。これは、例えば、DCT−IVを用いる場合である。FFTが第1の変換ルールとして用いられたならば、FFTと同一でないIFFTを第2の(逆)変換ルールとして用いることができる。
【0110】
計算上の理由のため、変換ルールをマトリクスのフォームで提供するのが好ましく、このマトリクスは、第1のブロックの離散値の数が第2のブロックの離散値の数に等しく、第1のブロックの離散値の数と第2のブロックの離散値の数とがそれぞれNであれば、2次のN×Nマトリクスである。
【0111】
一実施形態では、丸めるための手段104および110は、図10aに示す機能を実行するコンピュータに固有の機械精度に満たない精度を有する丸め結果を提供する丸め関数に従って丸めるために形成される。丸め関数に関して、好適な一実施形態では、非整数の数を、次に大きいまたは小さい整数のみにマッピングすることに留意すべきである。丸め関数が丸めるべき数の精度の減少をもたらす限り、丸め関数は、他の整数にも、例えば、数17.7を数10または数20にマッピングすることができる。上述の例では、丸められていない数が、小数点の後に1桁の数字を有する数であるのに対して、丸められた数は、小数点の後にもはや数字を持たない数である。
【0112】
図10aでは、第1の変換ルールで処理するための手段102と第2の変換ルールで処理するための手段108とが別個の手段として示されたが、具体的な一実施では、特定のフローコントローラにより制御され、アルゴリズムの対応時間において、まず、離散値の第1ブロックを変換し、次に、合計値の第2のブロックを逆に変換する1つだけの変換関数ユニットを存在できることに留意すべきである。この場合、第1および第2の変換ルールは同一である。同様のことが、2つの丸めるための手段104および110にも当てはまる。これらも別個の手段として提供する必要はなく、この場合もフローコントローラにより制御され、アルゴリズムの要求に応じて、まず、変換値の第1のブロックを丸め、次に、変換値の第2のブロックを丸める1つの丸め関数ユニットにより実施することができる。
【0113】
一実施形態では、離散値の第1のブロックと離散値の第2のブロックとは、図3のブロック28の出力端で得られるように、整数窓掛けサンプルである。次に、図3のブロック14の整数DCTは、図3が関連するオーディオ信号の場合における変換表現が図3に示す装置の出力端30で整数スペクトル値を表現するように、図1に示す整数アルゴリズムにより実施される。
【0114】
続いて、図10aに対応して逆に転換するための手段が図10bに関して示され、図10bでは、図10aのブロック112の出力端における整数出力値のブロック以外に、図10aの手段106の出力端における合計値の第2のブロックも用いられる。これは、以下に詳細に説明する図11に関して、変換ブロック124がなく、ブロック150および130だけがある場合に対応する。
【0115】
図10bは、図10aの出力端114で得られるような変換表現の整数出力値のブロックと合計値の第2のブロックとを逆に転換するための装置を示す。合計値の第2のブロックは、図10bに示す逆に転換するための装置の入力端120に送られる。変換表現の出力値のブロックは、逆に転換するための装置の他の入力端122に送られる。
【0116】
符号化で最後に用いられた変換ルールが第2の変換ルールであった場合、合計値の第2のブロックは、第2の変換ルールを用いてこのブロックを処理するための手段130に送られる。手段130は出力側に変換値の第1のブロックを提供し、これは丸めるための手段132に供給され、次に、丸めるための手段132は、出力側に丸められた変換値の第1のブロックを生成する。次に、丸められた変換値の第1のブロックは、図10bの装置の第1の出力端149で離散値の第1のブロックを得るために、手段134により変換表現の出力値のブロックから減算される。
【0117】
離散値のこの第1のブロックは、手段150の出力端で変換値の第2のブロックを得るために、第1の変換ルールを用いてこのブロックを処理するための手段150に供給される。次に、減算され変換された値のこの第2のブロックは、丸められた変換値の第2のブロックを得るために、手段152で丸められる。丸められた変換値のこの第2のブロックは、出力側の出力端136で離散値の第2のブロックを得るために、入力端120を介して入力され入力側に提供された合計値の第2のブロックから減算される。
【0118】
第1、第2および第3の変換ルールの関係に関して、さらに、共通の関数ユニットおよび対応のフローコントローラ/ラッチングによる図10bの個々の機能ブロックの特別な実施に関して、図10aについて説明した記述を参照する。
【0119】
続いて、図10aに全般的に示した変換表現に転換するための装置の好適な実施形態を図10cに関して説明する。図10aの実施形態は、合計値の第2のブロックから整数出力値の更なるブロックを生成するために、図10aに比べて更なる変換/丸めを含む。
【0120】
第1の入力端100aは、離散値の第1のブロックのN個の値を入力するためのN個の入力線x0、・・・、xN-1を含む。また、第2の入力端100bは、離散値の第2のブロックのN個の値xN、・・・、x2N-1を入力するためのN個の入力線を含む。図10aの手段102は、図10cにDCT−IV変換器として表される。DCT変換器102は、N個の入力値からN個の出力値を生成し、次に、各出力値を図10cの手段104により示されるように「[・]」と表す丸めにより丸めるように形成される。合計するための手段106は、値に関して合計するように示される。これは、インデックス0の付いた手段102の出力値がインデックスNの付いた離散値の第2のブロックの第1値と合計されることを意味する。したがって、一般に、丸め手段104の出力端における序数iの付いた丸められた変換値の第1のブロックの値が、序数N+iの付いた出力値の第2のブロックの離散値と個々に合計され、ここで、iは、0からN−1までの範囲に及ぶ連続のインデックスである。
【0121】
第2の変換ルールを用いて処理するための手段108も、DCT−IV変換器として表される。図10cに示す好適な実施形態では、減算するための手段112も、値に関して減算を実行するために形成され、言い換えれば、丸め器110の出力値、すなわち丸められた変換値の第2のブロックの値が離散値の第1のブロックから個々に減算されるように形成される。図10cに示す実施形態では、N+iの序数の付いた第2のブロックの値が序数iの付いた第1のブロックの値から減算されるように、対応の減算を実行することが好ましく、ここで、iは、この場合も0からN−1までの範囲に及ぶ。しかしながら、例えば、N−1の序数の付いたブロックの値が序数Nの付いた他のブロックの値から差し引かれるように、これは逆転換において対応して考慮される限り、その他の合計/減算もまた実行できる。
【0122】
減算するための手段112は、出力側に変換表現の整数出力値のブロック、すなわち、変換表現の整数出力値y0〜yN-1を既に提供している。変換表現の残りの整数出力値、すなわち、更なるブロックyN〜y2N-1も得るために、これが状況に応じて望ましければ、出力端114に適用された変換表現の整数出力値のブロックは、順方向変換器140により第3の変換ルールを用いる変換を受け、順方向変換器140の出力値は、丸めるための手段142により示されるようにこの場合も丸められ、これらの値と合計器106の出力端における合計値の第2のブロックとの加算が、図10cの参照番号144により示されるように実行される。この場合、合計器144の出力値は、yN〜y2N-1と表される変換表現の整数出力値の更なるブロック146を表す。
【0123】
続けて、一実施形態に従って変換表現を逆に転換するための装置を図11に関して説明する。図10cに示す装置により実行される動作は、図11に示す装置により可逆的に反転されることに留意すべきである。図11は、図10bに示す実施形態において入力端120に送られる合計値の第2のブロックを変換出力値の更なるブロックから生成する追加の変換/丸め段階を除いて図10bに対応する。加算する機能が、減算する機能によりそれぞれ反転されることに留意すべきである。符号について反転された入力量をも加算器/減算器対(図10cの144および図11の128)に提供することができるので、図示の場合と比べて反対の符号を入力量のグループに提供する場合、加算器144は実際には減算動作を実行し、これが対応するもの(図11の128)で考慮される限り、対応するものは実際には加算動作を実行することにさらに留意すべきである。
【0124】
図11に示す減算器128、加算器134および更なる減算器154は、この場合も、個々の値に関する加算/減算を実行するために形成され、この場合も、同一の序数処理が、図10cに関して説明したように用いられる。図示とは別の序数の利用法が、図10cで用いられた場合、図11において、これがそれ相応に考慮される。
【0125】
減算器134の出力端において、x0〜xN-1と表された離散値の第1のブロック136が既に存在する。逆変換表現の残りも得るために、離散値の第1のブロックは、第1の変換ルールで動作する変換器150に供給され、変換器150の出力側の値は、丸め器152により丸められ、最終的にxN、・・・、x2N-1と表された離散値の第2のブロック156をも得るために、減算器128の出力端における減算値の第2のブロックから減算される。
【0126】
続いて、図10a、10b、10cおよび11に関して説明したような装置についての数学上の背景を図12〜15に関して説明する。転換および/または逆に転換するための図示の装置により、近似誤差を減少する可逆オーディオ符号化用の整数変換方法が提供される。さらに、ベースがもはやリフティングスキームを各ギブンス回転に適用する既知の方法ではないという点で計算労力も考慮される。この既知の方法では、自明な合計−差のバタフライ演算が常に生じる。これらは、コピーすべき変換の元の非整数バージョンと比較して、計算労力をかなり増大させる。
【0127】
通常、リフティングスキームは、ギブンス回転の可逆の整数近似値を得るために用いられる。
【0128】
この整数近似値は、各加算の後で、すなわち、各リフティングステップの後で丸め関数を用いることにより達成される。
【0129】
リフティングスキームは、特定のスケーリング動作の可逆の整数近似値にも用いることができる。専門の出版物、アール・ガイガー(R.Geiger)およびジー・シュラー(G.Schuller)著、「Integer low delay and MDCT filter banks」、Proc.of the Asilomar Conf. on Signals,Systems and Computers,2002年では、1に等しい決定要素を用いる下記の2×2スケーリングマトリクスのリフティング分解を記述し、説明する。
【0130】
1次元であるこのリフティング分解、すなわち、2×2スケーリングマトリクスにだけ関連するこのリフティング分解は、多次元の場合にまで拡張される。特に、上記の式からのすべての値は、n×nマトリクスにより置き換えられ、n、すなわち、ブロックの離散値の数は、2以上である。したがって、その結果として、好ましくは可逆とすべき任意のn×nマトリクスTに対して、下記の2n×2nブロックマトリクスへの分解が可能となり、ここで、Enはn×n単位マトリクスを表す。
【0131】
置換または−1による乗算のような簡単な動作に加えて、この分解の3つのすべてのブロックは、下記の一般構造を有する。
【0132】
この2n×2nブロックマトリクスに対して、以後、多次元リフティングとも称する一般化されたリフティングスキームを用いることができる。
【0133】
値x=(x0、・・・、x2n-1)のベクトルに対するこのブロックマトリクスのアプリケーションは、次式を提供する。
【0134】
上式の右側において、ベクトルが、ディメンションすなわち2nに等しい列の数を有することに留意すべきである。第1のn個の要素、すなわち、0からn−1までの要素は、x0〜xn-1に対応する。第2のn個の要素、すなわち、上式の右側に結果として生じるベクトルの後半は、離散値の第2のブロックの合計すなわちxn、・・・、x2n-1に等しいが、図10a、10b、10cおよび11の変換マトリクスに対応するマトリクスAと離散値の第1のブロックx0、・・・、xn-1との乗算と合計されている。変換マトリクスは、第1、第2および第3の変換ルールをそれぞれ表す。
【0135】
以下のフォームの2×2マトリクスを用いる一般的なリフティングスキームと同様に、
これらの2n×2nマトリクスは、下記のように変換Tの可逆の整数近似値に対して用いることができる。整数入力値(x0、・・・、x2n-1)に対して、浮動小数点出力値(y0、・・・、yn-1)=A・(x0、・・・、xn-1)は、整数値(xn、・・・、x2n-1)に加算される前に、すなわち、整数値に丸められる。ブロックマトリクスの逆数は、次の通りに生じる。
【0136】
したがって、同一のマトリクスAおよび同一の丸め関数を簡単に用い、次に、結果として生じた値を、順方向処理での加算の代わりに減算することにより、誤差を含まず、この処理を反転することができる。順方向処理が図13に示されるのに対して、逆方向処理は図14に示される。図13の変換マトリクスが図14の変換マトリクスと同一であり、このことが実施の単純性に好ましいことに留意すべきである。
【0137】
値(x0、・・・、xn-1)が、図13に示す順方向ステップにおいて変形されないので、これら値は、逆ステップすなわち図14の逆方向ステップに依然として存在している。マトリクスAに特定の制限がないことに留意すべきである。したがって、必ずしも可逆とする必要がない。
【0138】
既知のMDCTの可逆の整数近似値を得るために、MDCTは、窓掛け段階である第1段階と次のDCT−IV段階とでギブンス回転に分解される。図3で記述したこの分解は、下記で説明され、さらに、独国特許出願公開第10129240号に詳細に記載されている。
【0139】
DCT−IVがギブンス回転のいくつかの段階に分解される従来技術とは対照的に、変換自体は、変えられないままにしておき、その後、丸められる。
【0140】
したがって、DCT−IVの整数近似値がリフティングベースのギブンス回転のいくつかの段階により実行されることは既知である。ギブンス回転の数は、用いられ基礎となる高速アルゴリズムにより決定される。そのため、ギブンス回転の数は、長さNの変換に対してをO(NlogN)により与えられる。各MDCT分解の窓掛け段階は、N/2個のギブンス回転のみから、あるいは、3N/2個の丸めステップのみからなる。したがって、特に、変換長がオーディオ符号化アプリケーションで用いられるような大きい変換長(例えば、1024)に対して、DCT−IVの整数近似値は、近似値誤差の主な原因になる。
【0141】
この本方法は、上述した多次元リフティングスキームを用いる。したがって、DCT−IVの丸めステップの数は、従来のリフティングベースの方法における約2Nlog2N個の丸めステップに比べて、3N/2まで減少し、すなわち、窓掛け段階の丸めステップの数に等しくなる。
【0142】
DCT−IVは、信号の2つのブロックに同時に適用される。この1つの可能性が図12に示され、この場合、例えば、サンプルの2つの時間的に連続するブロックは簡単にDCT−IVを受ける。しかしながら、2つの変換を受ける2つのブロックは、マルチチャネル信号の2つのチャネルのサンプルとすることもできる。
【0143】
上述の多次元リフティング式からの分解は、N×Nマトリクスとしても考えられる変換ルールに適用される。特にDCT−IVに対して逆のものもDCT−IVであるので、結果として、図12に示すコンセプトに関して次の分解が生じる。
【0144】
−1による乗算の置換は、異なるブロックマトリクスに展開できるので、結果として、以下のものを生じる。
【0145】
したがって、信号の2つのブロックすなわち離散値の2つのブロックへの変換のアプリケーションは、好ましくは3つの多次元リフティングステップを用いて得ることができる。
【0146】
上式は、一実施形態に基づく図10cに視覚的に示される。これに対応して逆転換が、前述したように図11に示される。
【0147】
この方法の場合、長さNの2つのDCT−IV変換を可逆的に実施することができ、この場合、3N個だけの丸めステップ、すなわち、1変換当たり3N/2個の丸めステップが必要とされる。
【0148】
3つの多次元リフティングステップにおけるDCT−IVは、何らかの実施、すなわち、例えば、浮動小数点ベースまたは固定小数点ベースの実施を有することが可能である。これは、可逆とする必要さえない。これは、順方向処理および逆方向処理で全く同じように実行するだけでよい。結果として、このコンセプトは、現在のオーディオ符号化アプリケーションで用いられるような1024のような大きい変換長に適する。
【0149】
全体的な計算の複雑性は、2つのDCT−IV変換の非整数実施における計算の複雑性の1.5倍に等しい。この計算の複雑性は、実施が、アール・ガイガー(R.Geiger)、ティー・シューペーラー(T.Sporer)、ジェー・コラー(J.Koller)およびケイ・ブランデンブルク(K.Brandenburg)著、「Audio Coding based on Integer Transforms」、第111回エイイーエス・コンベンション(AES Convention)、ニューヨーク、2001年に記述されているように、エネルギ節約の達成のために用いられるリフティングスキームに基づいて、自明なプラス/マイナスのバタフライ演算を用いなければならないため、従来のDCT−IVの約2倍の複雑性を持つ従来のリフティングベースの整数実施の場合よりも依然としてかなり低い。
【0150】
図示の方法は、少なくとも2つのDCT−IV変換をいわゆる同時に、すなわち、1つの転換内で計算する。これは、例えば、オーディオ信号の2つの連続するブロック、または、イメージ信号の2つの連続するイメージについてDCT−IV変換を計算することにより達成することができる。2つのチャネルのステレオ信号の場合では、これは、転換動作および/または逆変換動作で左チャネルおよび右チャネルのDCT−IVを計算することによっても達成することができる。第1のバージョンは、1つのブロックの追加の遅延をシステム内に取り込む。第2のバージョンは、ステレオチャネルに関して、および/または、一般的に言えば、マルチチャネル信号に関して可能である。
【0151】
あるいはまた、双方の選択肢を望まない場合ではあるが、N個の値の標準的なブロック処理長さを維持しなければならない場合、長さNのDCT−IVは、長さN/2の2つのDCT−IV変換に分解することもできる。これに関連して、この分解が記述されているワイ・ゾン(Y.Zeng)、ジー・ビー(G.Bi)およびゼット・リン(Z.Lin)著、「Integer sinusoidal transforms based on lifting factorization」、proc.ICASSP’01、2001年5月、p.1181−1184を参照する。長さN/2の2つのDCT変換に加えて、ギブンス回転のいくつかの追加段階が必要である。このアルゴリズムでは、ブロックマトリクス
すなわち、N/2個のプラス/マイナスのバタフライ演算と、N/2個のギブンス回転を用いるブロック対角マトリクスと、更なるいくつかの置換マトリクスとがさらに適用される。N/2個のギブンス回転のこれら追加段階を用いれば、多次元リフティング方法は、長さNの1つだけのDCT−IVの計算に用いることもできる。このアルゴリズムの基本構造は図15に示され、そこでは、実際の転換段階に加えて、N/2の長さを用いる2つのDCT−IV変換が用いられ、まず、N/2の長さだけを有する離散値の第1および第2のブロックを計算するためにバタフライ演算段階がある。さらに、N/2個だけの値を各々有する変換表現の出力値のブロックおよび変換表現の出力値の更なるブロックから出力値y0、・・・、yN-1を得るために、出力側に回転段階を提供する。出力値y0、・・・、yN-1は、図15および図12の入力側および出力側のインデックスの比較で明らかになるように、図12のDCT−IV動作の出力値に等しい。
【0152】
ここまで、下記のフォームのブロックマトリクスへの多次元リフティングのアプリケーションだけを論じてきた。
【0153】
しかしながら、その他のブロックマトリクスを多次元リフティングステップに分解することも可能である。例えば、以下の分解は、多次元リフティングの3つのステップによるDCT−IV変換の2つのブロックおよび正規化されたプラス/マイナスのバタフライ演算を有する段階の組み合わせを実施するために用いることができる。
【0154】
上式の左側の括弧内に用いられている第1の変換ルールと、上式の中央の括弧内に用いられている第2の変換ルールと、上式の最後の括弧内に用いられている第3の変換ルールとを同一とする必要がないということが上式から明らかになる。さらに、主対角要素のみが占有されているブロックマトリクスを分解できるだけでなく、完全に占有されているマトリクスも処理できるということが上式から明らかになる。その上、変換表現に転換するのに用いられる変換ルールを同一とすべきであるという、あるいは、例えば、第2の変換ルールが第1の変換ルールに対する逆方向の変換ルールであるように互いに何らかの関係を持つべきであるという制約がないことに留意すべきである。基本的には、3つの互いに異なる変換ルールも、逆表現に考慮される限り用いることができる。
【0155】
これに関連して、図10cおよび図11を再び参照する。変換表現への離散値の転換では、手段102は、何らかの変換ルール1を実施するように形成することができる。さらに、手段108は、変換ルール2とも称するその他のまたは同一の変換ルールを用いるように形成することもできる。手段140は、第1または第2の変換ルールと必ずしも同一とする必要がない何らかの変換ルール3を一般に用いるようにさらに形成することができる。
【0156】
しかしながら、変換表現の逆転換では、転換するための第1の手段124が図10cのブロック140で実行された変換ルール3以外の変換ルールを実行しないように、図10cに記述した変換ルール1〜3へ適合されなければならない。これに対して、図11の手段130は、図10cのブロック108によっても実行された変換ルール2を実行する必要がある。最終的には、図11の手段150が、図10cの手段102によっても実行された変換ルール1を実行すべきであるので、可逆の逆変換が得られる。
【0157】
図16は、図10cに説明したコンセプトの変形形態を示す。特に、順方向変換用の素子104、110および142、または、逆方向変換用の素子126、132および152での丸めがサンプルに関してもはや実行されないが、丸め誤差をスペクトル整形できるようにする。
【0158】
図10cを図16に比較すれば、ブロック104だけをブロック204aに置き換え、丸めブロック110の代わりにブロック204bを用いるのが好ましいこと明らかである。スペクトル整形が実行されていない時、丸め誤差のホワイトノイズが解決し難い周波数範囲で変換を続ける場合に、このコンセプトが特に有利なので用いられる。丸め142の後、いかなる周波数変換もないので、ブロック142のスペクトル整形はもはや利点を含まない。しかしながら、これは、ブロック204aの場合である。その理由は、ブロック108の変換により再び周波数転換があるためである。したがって、ブロック204bのスペクトル整形も、最後のブロック140によりこの場合も変換があるので依然として有利である。しかしながら、図16に関して明らかなように、ノイズ整形された丸め誤差は、出力ブロック114に既に入力されているので、ブロック204bでは、丸め誤差のスペクトル整形の代わりに、図10cのブロック110により示すように一般の丸めも既に実行できている。
【0159】
スペクトル整形の丸めとするか、または、一般の丸め、言い換えれば、第2の変換すなわち変換108の端部で、ホワイトスペクトル分散を有する丸め誤差を伴うものとするかはアプリケーションの個々の場合に依存する。
【0160】
したがって、例えばk個の値の特定数の独立する丸めは、「依存する丸め」とも称することができるスペクトル整形の丸めにより置き換えられる。
【0161】
丸め誤差のスペクトル整形も、IntMDCTに必要とされる整数DCTで用いることができるということが図16に関する上記の説明から明らかになる。しかしながら、この場合、前述したように、丸めるべき値が、更なる変換ステップにより周波数領域に移される時間信号である時だけ、誤差フィードバックによるスペクトル整形が特に有利であるということを考慮しなければならない。したがって、図16の多次元リフティングに関して図示したように、スペクトル整形は、最初の2つのステップで有利であるが、3番目のステップでは必ずしも有利であるとはいえない。
【0162】
図16は、図10cに対応する符号器における場合を示すことに留意すべきである。図16に対応する復号器における場合は、図16および図11の比較から直接的に生じる。図16に直接的に対応する復号器は、2つの丸めブロック132および152を除いて、全く同じようにすべてのブロックが動作する際に図11から生じる。図11では、2つの丸めブロックは、独立する丸めブロックとして動作し、復号器では、依存する丸めブロック204aおよび204bにより置き換えられ、例えば、それらは、すべて、図2cに関して示した構造を有する。特に、全く同じスペクトル整形の丸めアルゴリズムが、符号器の場合と同様に復号器でも用いられることに留意すべきである。
【0163】
特にH(z)=「−1」に対して、図2bおよび図2cに示したコンセプトは、本発明による丸め誤差の減少、特に、整数変換での丸め誤差の減少を達成するためにも特に適する。
【0164】
本発明によれば、2つの浮動小数点数値が丸められ、異なる値の代わりに、同じ値に加算される時はいつでも、このような丸め誤差の減少が可能である。このような例示的な状況を図17に示す。ここでは、まず、リフティング関係値x1およびx3の間に、一連の下がり−上がり−下がりを伴う第1のリフティングステップがある。さらに、この場合には、リフティング関係値x2およびx3の間に、既知の一連の下がり−上がり−下がりを伴う第2のリフティングステップがある。特に、第1のリフティング動作で得られる値x3は、図17から明らかなように、第2のリフティングステップにおける加算の相手として作用するために用いられる。矢印が横線に達する時、このことが加算を意味することに再び留意すべきである。したがって、言い換えれば、丸められたばかりの値は、横線に対応する値に加算される。
【0165】
特に、図17で示した例では、まず、値x1が重み付けられ(ブロック250)、次に、個々に丸められる(ブロック252)。ブロック252の出力信号は、x3に加算される(ブロック254)。その後、加算254の結果が、再び重み付けられ(ブロック256)、再び丸められる(ブロック258)。この丸め258の結果は、次にx1に加算される(260)。加算260の結果は、再び重み付けられ(ブロック262)、丸められ(ブロック264)、x3の現在値に(ブロック266に)加算される。これに対して、値x2は、ブロック270により重み付けられ、次に、ブロック272により丸められる。ブロック272の結果は、x3の現在値に加算される(274)。その後、再び重み付けられ(276)、丸められて(278)、ブロック278の結果がx2の現在値に再び加算される(280)。この加算280の結果は、再び重み付けられ(ブロック282)、重み付けられた結果は、丸め処理られて(ブロック284)、次に、x3に対する結果の値を得るために、丸めブロック284の結果をx3の現在値へ再び加算する(ブロック286)。まず、第1の値すなわちブロック262の結果が、丸められ、次に、x3に加算されるということが図17から明らかである。これに加えて、第2の値すなわちブロック270の結果も、丸められ(ブロック272)、次に、値x3に加算される(加算器274)。このように、2つの浮動小数点数値が次々に丸められ、異なる値の代わりに、同じ値に加算される状況がある。図17に示す例では、第3および第4のリフティングステップの結果は、同じ値すなわちx3に加算されるので、丸め関数[・]を用いて加算が行われる。
[x1・cs1]+[x2・cs2]
【0166】
丸めにおける第3のリフティングステップの誤差が第4のリフティングステップに送られるならば、この場合に第3のステップの誤差を用い、2つの丸め誤差の代わりに1つの丸め誤差だけを生成することができる。これは、計算に関して下式から生じる。
[x1・cs1]+[x2・cs2+(x1・cs1−[x1・cs1])]=
[x1・cs1]+[x2・cs2+x1・cs1]−[x1・cs1]=
[x2・cs2+[x1・cs1]
【0167】
したがって、この場合、計算に関して、次の丸めへの丸め誤差の供給は、値の加算およびその後の丸めと同一である。この状況を図18に示し、図18は図17に対応するが、2つの別個の丸めブロック264、272および2つの別個の加算器266、274は、上記の式を実施するように形成されたブロック268により置き換えられている。したがって、2つのブロック262および270の結果は、まず、丸められないフォームで加算され、次に、丸められる。したがって、好ましい場合では、丸め誤差は半分にされる。ブロック268の出力では、加算器269によりx3に加算される1つだけの単一値を生じる。
【0168】
丸め誤差の減少および整形の組み合わせは、例えば、一組のギブンス回転および多次元リフティングステップが、図19に示すように、互いの後に続く時にも生じ得る。ほんの一例として、値x1〜x4のいくつかの値に対して一連の下がり−上がり−下がりステップでの最後のステップ、すなわち、例えば図9の下がりステップ31cが実行される。これら値は、次に、対応の値に加算され、これら対応の値には、図16の丸められた値、すなわち、ブロック204aの出力端での値も加算される。この場合、丸められていない値を最初に、すなわち、図19に示す加算器203により加算し、次に、加算値を図19のブロック204で丸め、次に、ただ1つの単純な丸め誤差が得られるようにこれらの加算値が同時にノイズ整形を受け、加算器106による加算後の出力値が少ない誤差を含むことが好ましい。この状況は、図19であり、したがって、図9が図16の左に置かれる場合、特に、N/2値のDCT−IVがN値のDCT−IVの代わりに用いられる場合に生じる。
【0169】
したがって、本発明によれば、丸め誤差の減少を丸め誤差の整形と組み合わせることが好ましい。したがって、丸め誤差の減少の場合、いくつかの入力値は、ともに処理されおよび丸められ、それらの丸められた値は1つの値に加算されるのに対して、丸め誤差のスペクトル整形の場合、丸められた値は互いに独立して丸められ、いくつかのそれぞれ異なる他の値に加算される。
【0170】
図19の状況が、図15に示すように、N/2のDCTが用いられる時にも生じることにさらに留意すべきである。この点、転換段階よりも前に、すなわち、2つのDCTブロックよりも前に、図15のバタフライ演算段階と称する段階があり、入力値x0〜xN/2-1は対応して重み付けられ、丸められて、次に、同一の値に加算され、これら値には、DCT−IV段階の値も加算される。図15の転換段階が概略的にしか示されていないことにさらに留意すべきである。実際の実施では、図15に概略的に示す2つのDCT−IVブロックは、図16においてxN/2-1がxN-1の代わりに記され、xN/2の代わりに記すものがあり、xN-1がxN/2-1の代わりに記されるならば、図16に示すコンポーネントにより置き換えられる。
【0171】
したがって、図19は、特にモノ・アプリケーションに対して、すなわち、N/2のDCT−IVが用いられる場合に対して好ましい実施を示す。
【0172】
状況に応じて、丸めるための本発明の方法は、ハードウェアまたはソフトウェアで実施することができる。この実施は、この方法が実行されるようにプログラム可能なコンピュータシステムと協働し、電子的に読み出すことができる制御信号を有するデジタル記憶媒体、特に、フロッピー(登録商標)ディスクまたはCD上で行うことができる。したがって、本発明は、一般に、コンピュータプログラム製品がコンピュータ上で実行すると、機械で読み出し可能なキャリアに記憶された本発明の方法を実行するためのプログラムコードを有するコンピュータプログラム製品にも存在する。したがって、言い換えれば、本発明は、コンピュータプログラムでもあり、コンピュータプログラムがコンピュータ上で実行すると、この方法を実行するためのプログラムコードを有するコンピュータプログラムでもある。
【図面の簡単な説明】
【0173】
【図1】図1は、丸め誤差のスペクトル整形を用いて一連の離散値を有する信号を処理するためのコンセプトのブロック回路図を示す。
【図2a】図2aは、量子化誤差を高域通過スペクトル整形するための既知のコンセプトを示す。
【図2b】図2bは、丸め誤差を低域通過整形するためのコンセプトを示す。
【図2c】図2cは、スペクトル整形/丸めブロックの一実施形態によるブロック回路図を示す。
【図3】図3は、整数値を得るために時間離散オーディオサンプルを処理し、それから整数スペクトル値を決定できる好適な手段のブロック回路図を示す。
【図4】図4は、ギブンス回転へのMDCTおよび逆MDCTの分解と2つのDCT−IV動作との概略図を示す。
【図5】図5は、50%のオーバラップを用いるMDCTの回転への分解およびDCT−IV動作を示すための図である。
【図6a】図6aは、MDCTおよび50%のオーバラップを用いる既知の符号器の概略ブロック回路図を示す。
【図6b】図6bは、図10aにより生成された値を復号化するための既知の復号器のブロック回路図を示す。
【図7】図7は、図3による窓掛けのリフティングを示す図である。
【図8】図8は、実際の変換より前の窓掛けに対して図7のリフティングの「再分類された」図である。
【図9】図9は、図3、7および8による窓掛けのためのスペクトル整形のアプリケーションを示す。
【図10a】図10aは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図10b】図10bは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図10c】図10cは、本発明の好適な実施形態による転換するための装置のブロック回路図を示す。
【図11】図11は、本発明の好適な実施形態による逆転換するための装置を示す。
【図12】図12は、本発明に用いることができるような値の2つの連続するブロックの変換を示す図である。
【図13】図13は、順方向変換マトリクスを用いる多次元リフティングステップを示す詳細図である。
【図14】図14は、逆方向変換マトリクスを用いる多次元逆リフティングステップを示す図である。
【図15】図15は、長さNのDCT−IVを長さN/2の2つのDCT−IVに分解する本発明を示す図である。
【図16】図16は、図10の多次元リフティングを用いる変換での本発明のコンセプトのアプリケーションを示す。
【図17】図17は、本発明の丸め誤差を減少する2つの連続するリフティングステップを示す図である。
【図18】図18は、図17の2つの連続するリフティングステップで丸め誤差を減少するための本発明のコンセプトを示す図である。
【図19】図19は、図16のコンセプトおよび図18のコンセプトの好ましい組み合わせを示す。
【特許請求の範囲】
【請求項1】
少なくとも2つの入力値を処理するための装置であって、
第1の非整数の入力値および第2の非整数の入力値を提供するための手段(202;250、252、254、256、258、260、262)、および
非整数の結果値を得るために前記第1の入力値および前記第2の入力値を組み合わせ、かつ、前記結果値を、丸められた結果値を得るために丸めるための手段(268)を備える、装置。
【請求項2】
前記組み合わせるための手段は、合計または差を形成するように設計されている、請求項1に記載の装置。
【請求項3】
前記第1および前記第2の入力値は、オーディオおよび/またはビデオ情報を含む離散値である、請求項1または2に記載の装置。
【請求項4】
出力値を得るために前記結果値を第3の入力値に結合するための手段(269)をさらに備える、先行する請求項の1つに記載の装置。
【請求項5】
前記結合するための手段(269;104)は、合計器または減算器として設計されている、請求項4に記載の装置。
【請求項6】
前記出力値が整数値となるように前記第3の入力値が整数の入力値である、請求項4または請求項5に記載の装置。
【請求項7】
前記提供するための手段は、第1および第2のリフティングステップとその後の重み付け(262)とにより第1の元の値および第3の値(x3)から前記第1の入力値を生成し、かつ、元の第2の入力値(x2)から重み付け(270)により前記第2の入力値を生成するために設計されている、先行する請求項の1つに記載の装置。
【請求項8】
リフティング動作により修正された第3の入力値に前記整数の結果値を加算し、リフティング動作により修正された前記第3の入力値および前記第2の入力値を用いて回転の第2および第3のリフティングステップを実行するようにさらに設計されている、請求項7に記載の装置。
【請求項9】
前記提供するための手段は、前記第1の入力値を得るために第1の元の値を重み付けし、かつ、前記元の第1の値(x1)が属する一連の元の入力値から変換により前記第2の入力値を計算するために設計されている、先行する請求項の1つに記載の装置。
【請求項10】
第2の変換ルールにより処理される更なる連なりの値を得るために、第1の変換ルール(102)により処理される連なりの一部分である更なる入力値に前記整数の入力値を加算するための手段(106)をさらに含み、前記第1の変換ルールおよび前記第2の変換ルールは、第1および第2の多次元リフティングステップを規定する変換ルールである、請求項9に記載の装置。
【請求項11】
少なくとも2つの入力値を処理するための方法であって、
第1の非整数の入力値および第2の非整数の入力値を提供するステップ(202;250、252、254、256、258、260、262)、および
非整数の結果値を得るために前記第1の入力値および前記第2の入力値を組み合わせ、かつ、前記結果値を、丸められた結果値を得るために丸めステップ(268)を備える、方法。
【請求項12】
前記組み合わせるステップの後に、整数の出力値を得るために第3の整数の入力値に前記結果値を結合するステップ(269)が実行される、請求項11に記載の方法。
【請求項13】
プログラムがコンピュータ上で動作するときに、請求項11に記載された方法を実行するためのプログラムコードを有する、コンピュータプログラム。
【請求項1】
少なくとも2つの入力値を処理するための装置であって、
第1の非整数の入力値および第2の非整数の入力値を提供するための手段(202;250、252、254、256、258、260、262)、および
非整数の結果値を得るために前記第1の入力値および前記第2の入力値を組み合わせ、かつ、前記結果値を、丸められた結果値を得るために丸めるための手段(268)を備える、装置。
【請求項2】
前記組み合わせるための手段は、合計または差を形成するように設計されている、請求項1に記載の装置。
【請求項3】
前記第1および前記第2の入力値は、オーディオおよび/またはビデオ情報を含む離散値である、請求項1または2に記載の装置。
【請求項4】
出力値を得るために前記結果値を第3の入力値に結合するための手段(269)をさらに備える、先行する請求項の1つに記載の装置。
【請求項5】
前記結合するための手段(269;104)は、合計器または減算器として設計されている、請求項4に記載の装置。
【請求項6】
前記出力値が整数値となるように前記第3の入力値が整数の入力値である、請求項4または請求項5に記載の装置。
【請求項7】
前記提供するための手段は、第1および第2のリフティングステップとその後の重み付け(262)とにより第1の元の値および第3の値(x3)から前記第1の入力値を生成し、かつ、元の第2の入力値(x2)から重み付け(270)により前記第2の入力値を生成するために設計されている、先行する請求項の1つに記載の装置。
【請求項8】
リフティング動作により修正された第3の入力値に前記整数の結果値を加算し、リフティング動作により修正された前記第3の入力値および前記第2の入力値を用いて回転の第2および第3のリフティングステップを実行するようにさらに設計されている、請求項7に記載の装置。
【請求項9】
前記提供するための手段は、前記第1の入力値を得るために第1の元の値を重み付けし、かつ、前記元の第1の値(x1)が属する一連の元の入力値から変換により前記第2の入力値を計算するために設計されている、先行する請求項の1つに記載の装置。
【請求項10】
第2の変換ルールにより処理される更なる連なりの値を得るために、第1の変換ルール(102)により処理される連なりの一部分である更なる入力値に前記整数の入力値を加算するための手段(106)をさらに含み、前記第1の変換ルールおよび前記第2の変換ルールは、第1および第2の多次元リフティングステップを規定する変換ルールである、請求項9に記載の装置。
【請求項11】
少なくとも2つの入力値を処理するための方法であって、
第1の非整数の入力値および第2の非整数の入力値を提供するステップ(202;250、252、254、256、258、260、262)、および
非整数の結果値を得るために前記第1の入力値および前記第2の入力値を組み合わせ、かつ、前記結果値を、丸められた結果値を得るために丸めステップ(268)を備える、方法。
【請求項12】
前記組み合わせるステップの後に、整数の出力値を得るために第3の整数の入力値に前記結果値を結合するステップ(269)が実行される、請求項11に記載の方法。
【請求項13】
プログラムがコンピュータ上で動作するときに、請求項11に記載された方法を実行するためのプログラムコードを有する、コンピュータプログラム。
【図1】
【図2a】
【図2b】
【図2c】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図10c】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2a】
【図2b】
【図2c】
【図3】
【図4】
【図5】
【図6a】
【図6b】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図10c】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公表番号】特表2007−508605(P2007−508605A)
【公表日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願番号】特願2006−530034(P2006−530034)
【出願日】平成16年9月28日(2004.9.28)
【国際出願番号】PCT/EP2004/010855
【国際公開番号】WO2005/033965
【国際公開日】平成17年4月14日(2005.4.14)
【出願人】(591037214)フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ (259)
【Fターム(参考)】
【公表日】平成19年4月5日(2007.4.5)
【国際特許分類】
【出願日】平成16年9月28日(2004.9.28)
【国際出願番号】PCT/EP2004/010855
【国際公開番号】WO2005/033965
【国際公開日】平成17年4月14日(2005.4.14)
【出願人】(591037214)フラウンホッファー−ゲゼルシャフト ツァ フェルダールング デァ アンゲヴァンテン フォアシュンク エー.ファオ (259)
【Fターム(参考)】
[ Back to top ]