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