(57)【要約】整数出力値を提供する整数変換を達成するために、ＭＤＣＴのＴＤＡＣ関数が時間ドメイン内で前方変換の前に格別に実行される。オーバーラップしているウィンドウにおいて、これはリフティングマトリクスによって表現できるギブンズ回転という結果となる。ギブンズ回転では、オーディオ信号の時間離散サンプル値は、ベクトルを形成するためにまず対のような状態でまとめられ、リフティングマトリクスを順に実行される。本発明では、ベクトルとリフティングマトリクスとの各乗算（１８，２２，２６）の後でラウンディングステップ（２０，２４，２８）が実行され、出力側においては整数のみが出力される。ウィンドウ化整数サンプル値を整数変換で変換（１４）することで、整数スペクトル値を持つスペクトル表現が得られる。逆回転マトリクスによる逆マッピングおよび対応する逆リフティングマトリクスにより、正確な再生が可能となる。本発明の概念は、損失のない変換であって、量子化を伴わずにエントロピーエンコーダと直結可能な変換を提供し、ハードウェアで容易に達成できるウィンドウ化および変換方法を提供する。
2004531151.tif 000002
【特許請求の範囲】
【請求項１】
オーディオ信号を表す時間離散サンプル値を処理し、整数値を得る方法であって、
Ｎ個の入力値からＮ個の出力値を生成する変換によって、上記時間離散サンプル値をスペクトル表現に変換するのに用いるウィンドウ化時間離散サンプル値を得るために、上記時間離散サンプル値を２Ｎ個の時間離散サンプル値に対応する長さを持つ１つのウィンドウ（Ｗ）でウィンドウ化するステップを含み、
上記ウィンドウ化のステップは、
１つの時間離散サンプル値を上記ウィンドウの１つのクォータから選択し、もう１つの時間離散サンプル値を上記ウィンドウの他の１つのクォータから選択して、時間離散サンプル値の１つのベクトルを得るサブステップ（１６）と、
上記ベクトルに対し回転マトリクスを適用するサブステップであって、この回転マトリクスのディメンションは上記ベクトルのディメンションと一致し、さらに上記回転マトリクスは複数のリフティングマトリクスにより表現され、１つのリフティングマトリクスは上記ウィンドウ（Ｗ）に依存しかつ１でも０でもない成分を１つだけ持つものであるサブステップとを含み、
上記回転マトリクスを適用するサブステップは、
上記ベクトルに１つのリフティングマトリクスを乗算（１８）し、第１結果ベクトルを得るサブステップと、
上記第１結果ベクトルの要素を、実数を整数にマッピングするラウンディング関数（ｒ）でラウンディング（２０）し、ラウンディングされた第１結果ベクトルを得るサブステップと、
全てのリフティングマトリクスが処理されるまで乗算（２２）およびラウンディング（２４）のステップを他のリフティングマトリクスを用いて順に実行し、その結果、上記ウィンドウの上記１つのクォータからの整数ウィンドウ化サンプル値と上記ウィンドウの上記他の１つのクォータからの整数ウィンドウ化サンプル値とを持つ回転されたベクトルを得るサブステップと、を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法において、
上記リフティングマトリクスは２×２マトリクスであり、３つのリフティングマトリクスの全てを各回転マトリクスにおいて実行することを特徴とする方法。
【請求項３】
請求項１または２に記載の方法において、
上記ベクトルまたはラウンディングされた結果ベクトルを乗算するサブステップは、部分要素を形成しかつその部分要素を合計することで実行され、この合計の前に非整数部分要素に対し上記ラウンディングステップが実行されることを特徴する方法。
【請求項４】
請求項１乃至３のいずれかに記載の方法において、
上記ウィンドウは２の累乗に等しい２Ｎ個のサンプル値を備えることを特徴とする方法。
【請求項５】
請求項１乃至４のいずれかに記載の方法において、
上記回転マトリクスはギブンズ回転マトリクスであることを特徴とする方法。
【請求項６】
請求項１乃至５のいずれかに記載の方法であって、
上記ウィンドウの上記クォータの全ての時間離散サンプル値に対して上記ウィンドウ化ステップを実行し、２Ｎ個のウィンドウ化された整数サンプル値を得るステップと、
上記ウィンドウの第２クォータおよび第３クォータのウィンドウ化された整数サンプル値を持つ値に対して、整数離散コサイン変換により、Ｎ個のウィンドウ化された整数サンプル値をスペクトル表現に変換（１４）し、Ｎ個の整数スペクトル値を得るステップと、をさらに備えることを特徴とする方法。
【請求項７】
請求項６に記載の方法において、
上記整数離散コサイン変換は、非対称基底関数を含む離散コサイン変換であることを特徴とする方法。
【請求項８】
請求項７に記載の方法において、
上記離散コサイン変換は、タイプＩＶの離散コサイン変換であることを特徴とする方法。
【請求項９】
請求項６乃至８のいずれかに記載の方法において、
上記離散コサイン変換はギブンズ回転マトリクスに分解され、かつそれが再度リフティングマトリクスに分解されるような離散コサイン変換であり、さらに、リフティングマトリクスによる各乗算の後にラウンディングステップが実行されることを特徴とする方法。
【請求項１０】
請求項１乃至９のいずれかに記載の方法において、
上記ギブンズ回転マトリクスは次式で表され、
【数１０】
2004531151.tif 000012
上記リフティングマトリクスは次式で表され、
【数１１】
2004531151.tif 000013
上記角度αは次式により定義され、
【数１２】
2004531151.tif 000014
ｋは時間離散サンプル値の時間指数であって、０から２Ｎ−１まで変化し、ｗはウィンドウ関数を示すことを特徴とする方法。
【請求項１１】
請求項１乃至１０のいずれかに記載の方法において、
次の条件式がウィンドウ関数ｗについて満たされることを特徴とする方法。
【数１３】
2004531151.tif 000015
【請求項１２】
請求項１１に記載の方法において、
上記ウィンドウ関数はサインウィンドウであることを特徴とする方法。
【請求項１３】
請求項１乃至１２のいずれかに記載の方法において、
上記時間離散サンプル値は整数であることを特徴とする方法。
【請求項１４】
請求項６に記載の方法であって、
上記整数スペクトル値をエントロピー符号化し、エントロピー符号化された上記オーディオ信号を得るステップを備えることを特徴とする方法。
【請求項１５】
請求項６に記載の方法であって、
上記整数スペクトル値を、聴覚心理マスキングしきい値を考慮しながら量子化し、量子化ノイズが略マスキングされるように量子化された量子化スペクトル値を得るステップを備えることを特徴とする方法。
【請求項１６】
請求項６に記載の方法であって、
所定の周波数を超える上記整数スペクトル値を閉ループによる予測によりフィルタリングするステップと、予測誤差をラウンディングするステップとを備えることを特徴とする方法。
【請求項１７】
請求項１に記載の方法により生成された整数値を逆処理する方法であって、
上記回転されたベクトルを上記回転マトリクスとは逆の回転マトリクスに適用するステップであって、上記逆回転マトリクスは複数の逆リフティングマトリクスにより表され、１つの逆リフティングマトリクスは上記ウィンドウ（Ｗ）に依存しかつ１でも０でもない成分を１つだけ持つステップを備え、
上記適用ステップは、
上記回転されたベクトルに対し、上記整数値を生成した時に使用された上記リフティングマトリクスとは逆の１つの逆リフティングマトリクスを乗算し、第１逆結果ベクトルを得るサブステップと、
上記第１逆結果ベクトルの要素を上記ラウンディング関数でラウンディングし、ラウンディングされた第１逆結果ベクトルを得るサブステップと、
上記整数値を生成した時とは逆の順序で、上記乗算およびラウンディングのサブステップをさらなる逆リフティングマトリクスを用いて順に実行し、その結果、上記ウィンドウの１つのクォータからの整数時間離散サンプル値と上記ウィンドウの他の１つのクォータからの整数時間離散サンプル値とを含む１つの逆処理されたベクトルを得るサブステップと、を含むことを特徴とする方法。
【請求項１８】
請求項１７に記載の方法において、
上記整数値は請求項２に記載の方法により生成され、かつ整数スペクトル値を含み、
上記回転されたベクトルを適用するステップより以前に、上記整数離散コサイン変換とは逆の整数離散コサイン変換により上記整数スペクトル値を時間表現に変換し、上記回転されたベクトルを得るステップが実行されることを特徴とする方法。
【請求項１９】
請求項１７または１８に記載の方法において、
上記ラウンディング関数は点対称であり、上記逆リフティングマトリクスは上記リフティングマトリクスと等しいが回転角が負の回転角となることを特徴とする方法。
【請求項２０】
請求項１８に記載の方法において、
上記整数離散コサイン変換は、タイプＩＶの離散コサイン変換から派生した離散コサイン変換であることを特徴とする方法。
【請求項２１】
請求項１７乃至２０のいずれかに記載の方法において、
上記逆リフティングマトリクスは、上記対応するリフティングマトリクスと比較して、負となる副対角成分を除き等しいことを特徴する方法。
【請求項２２】
オーディオ信号を表す時間離散サンプル値を処理し、整数値を得る装置であって、
Ｎ個の入力値からＮ個の出力値を生成する変換によって、上記時間離散サンプル値をスペクトル表現に変換するのに用いるウィンドウ化時間離散サンプル値を得るために、上記時間離散サンプル値を２Ｎ個の時間離散サンプル値に対応する長さを持つウィンドウ（Ｗ）でウィンドウ化する手段を含み、
上記ウィンドウ化する手段は、
１つの時間離散サンプル値を上記ウィンドウの１つのクォータから選択し、もう１つの時間離散サンプル値を上記ウィンドウの他の１つのクォータから選択して、時間離散サンプル値のベクトルを得る手段（１６）と、
上記ベクトルに対し回転マトリクスを適用する手段であって、この回転マトリクスのディメンションは上記ベクトルのディメンションと一致し、さらに上記回転マトリクスは複数のリフティングマトリクスにより表現され、１つのリフティングマトリクスは上記ウィンドウ（Ｗ）に依存しかつ１でも０でもない成分を１つだけ持つものである手段とを含み、
上記回転マトリクスを適用する手段はさらに、
上記ベクトルに１つのリフティングマトリクスを乗算（１８）し、第１結果ベクトルを得る手段と、
上記第１結果ベクトルの要素を、実数を整数にマッピングするラウンディング関数（ｒ）でラウンディング（２０）し、ラウンディングされた第１結果ベクトルを得る手段と、
全てのリフティングマトリクスが処理されるまで乗算（２２）およびラウンディング（２４）のステップを他のリフティングマトリクスを用いて順に実行し、その結果、上記ウィンドウの上記１つのクォータからの整数ウィンドウ化サンプル値と上記ウィンドウの上記他の１つのクォータからの整数ウィンドウ化サンプル値とを持つ回転されたベクトルを得る手段と、を含むことを特徴とする装置。
【請求項２３】
請求項２２に記載の装置により生成された整数値を逆処理する装置であって、
上記回転されたベクトルを、上記回転マトリクスとは逆の回転マトリクスに適用する手段であって、上記逆回転マトリクスは複数の逆リフティングマトリクスにより表され、１つの逆リフティングマトリクスは上記ウィンドウに依存しかつ１でも０でもない成分を１つだけ持つものである手段を備え、
上記適用する手段は、
上記回転されたベクトルに対し、上記整数値を生成した時に最後に使用された上記リフティングマトリクスとは逆の１つの逆リフティングマトリクスを乗算して、第１逆結果ベクトルを得るための手段と、
上記第１逆結果ベクトルの要素を上記ラウンディング関数でラウンディングし、ラウンディングされた第１逆結果ベクトルを得るための手段と、
上記整数値を生成した時とは逆の順序で、上記乗算およびラウンディングをさらなる逆リフティングマトリクスを用いて順に実行し、その結果、上記ウィンドウの１つのクォータからの整数時間離散サンプル値と上記ウィンドウの他の１つのクォータからの整数時間離散サンプル値とを含む１つの逆処理されたベクトルを得る手段と、を含むことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はオーディオエンコード（符号化）に関し、特に、整数の出力値を得るために時間離散オーディオサンプル値を処理する方法と装置に関する。
【背景技術】
【０００２】
これまで、例えばＭＰＥＧレイヤ３（ＭＰ３）またはＭＰＥＧ  ＡＡＣのようなオーディオエンコードの方法は、オーディオ信号のブロック状の周波数表示を得るために、例えばいわゆる変形離散コサイン変換（ＭＤＣＴ）等の変換を用いている。そのようなオーディオエンコーダ（符号器）は通常、時間離散オーディオサンプル値からなるビットストリームを受け取る。オーディオサンプル値からなるビットストリームは、ウィンドウ化され、例えば１０２４個または２０４８個のウィンドウ化オーディオサンプル値からなる１個のウィンドウ化ブロックを得る。ウィンドウ化のためには、例えばサインウィンドウなど、様々なウィンドウ関数が用いられる。
【０００３】
ウィンドウ化された時間離散オーディオサンプル値は、その後フィルタバンクによりスペクトル表示化される。これには原則的に、フーリエ変換、または特別な理由により、例えばＦＦＴ（高速フーリエ変換）やこれまで実行されてきたＭＤＣＴなど、このフーリエ変換の亜種が用いられる。フィルタバンクの出力におけるオーディオスペクトル値のブロックは、その後必要に応じてさらなる処理を受ける。上述のオーディオエンコーダを使用すれば、次にオーディオスペクトル値の量子化が行われる。この場合、量子化ステージは、量子化に伴って入り込む量子化ノイズが聴覚心理マスキング閾値より低い値になる方法、すなわち典型的には「マスキングにより消去」されるような方法が選択される。量子化とは損失（データ削減量）のある符号化を意味する。さらにデータ量を削減するために、この量子化されたスペクトル値には次に、ハフマン符号化によるエントロピー符号化が実行される。その後、ビットストリームマルチプレクサにより、この量子化されエントロピー符号化されたスペクトル値から、例えばスケールファクタ等のページインフォメーションを追加することで、記憶されあるいは伝送されるであろうビットストリームが生成される。
【０００４】
オーディオデコーダ（復号器）の中では、上記ビットストリームは、ビットストリームデマルチプレクサにより、量子化されエントロピー符号化されたスペクトル値とページインフォメーションとに編成される。この量子化されエントロピー符号化されたスペクトル値は、まずエントロピー復号化され、量子化されたスペクトル値を得る。その後、量子化されたスペクトル値は逆量子化され、復号化されたスペクトル値を得る。ここで得られる復号化されたスペクトル値は量子化ノイズを含むが、しかしこのノイズは聴覚心理マスキング閾値よりも低い範囲にあり、結果的に聞こえることはない。これらのスペクトル値は、その後合成フィルタバンク(synthesis filterbank)により時間ドメインによって表示され、復号化時間離散オーディオサンプル値を得る。合成フィルタバンク内では、上記変換アルゴリズムとは逆の変換アルゴリズムが使用されなければならない。さらに、周波数−時間逆変換の後に、ウィンドウ化は解除されなければならない。
【０００５】
良好な周波数選択性（frequency selectivity）を達成するために、これまでのオーディオエンコーダは、典型的にはブロックオーバーラッピングを用いている。図４ａはこのような場合を示している。最初、手段４０２により、例えば２０４８個の時間離散オーディオサンプル値が取り出され、ウィンドウ化される。このウィンドウは、手段４０２を具体的に表現したものであるが、２Ｎ個のサンプル値のウィンドウ長を持ち、その出力側において、２Ｎ個のウィンドウ化サンプル値からなる１つのブロックを出力する。ウィンドウのオーバーラップを達成するために、２Ｎ個のウィンドウ化サンプル値からなる第２ブロックが、手段４０４により生成される。この手段４０４は、明確に示す目的で、図４ａにおいては手段４０２とは別に示されている。しかし、手段４０４に入力される２０４８個のサンプル値は、第１ウィンドウにそのまま関連する時間離散オーディオサンプル値ではなく、手段４０２によりウィンドウ化されるサンプル値の後半を含み、さらに追加的に、新たなサンプル値を１０２４個だけ含む。図４ａにおいて、このオーバーラッピングが手段４０６により図式的に示されてあり、この手段４０６は５０％程度のオーバーラッピングを発生させる。次に、手段４０２により出力された２Ｎ個のウィンドウ化サンプル値と、手段４０４により出力された２Ｎ個のウィンドウ化サンプル値との両方に対し、手段４０８および／または４１０によってＭＤＣＴアルゴリズム処理が行われる。手段４０８は、従来技術のＭＤＣＴアルゴリズムに従えば、第１ウィンドウのためのＮ個のスペクトル値を出力し、他方、手段４１０もまた、第２ウィンドウのためのＮ個のスペクトル値を出力し、第１ウィンドウと第２ウィンドウとの間には５０％のオーバーラップが存在する。
【０００６】
デコーダの中では、図４ｂに示すように、第１ウィンドウのＮ個のスペクトル値が手段４１２へと供給される。この手段４１２では、逆変形離散コサイン変換が実行される。同様に、第２ウィンドウのＮ個のスペクトル値もまた手段４１４へと供給され、この手段４１４でも逆変形離散コサイン変換が実行される。これら両方の手段４１２と手段４１４とはそれぞれ、２Ｎ個のサンプル値を第１ウィンドウおよび／または第２ウィンドウについて供給する。
【０００７】
図４ｂにおいて、ＴＤＡＣ（時間ドメインエリアシングキャンセレーション＝高効率変換符号化）と表示された手段４１６内では、上述の２つのウィンドウがオーバーラップしている事実を考慮に入れる。具体的には、第１ウィンドウの後半にある１つのサンプル値ｙ１、すなわちＮ＋ｋの指数が付けられたサンプル値ｙ１は、第２ウィンドウの前半にある１つのサンプル値ｙ２、すなわちｋの指数が付けられたサンプル値ｙ２と合計され、その結果、デコーダの出力側ではＮ個の復号化時間サンプル値が出力される。
【０００８】
注目すべきことは、この手段４１６の関数すなわち加算関数と呼ぶことができる関数により、図４ａに概略的に示されたエンコーダ内で実行されるウィンドウ化が自動的に考慮されるということである。その結果、図４ｂに示されるデコーダ内では、格別な「逆ウィンドウ化」は不要となる。
【０００９】
もし、手段４０２または４０４により実行される関数をｗ（ｋ）とし、指数ｋは時間を示すとすれば、次の条件を満たす必要がある。すなわち、２乗されたウィンドウ重量（squared window weight）ｗ（ｋ）と２乗されたウィンドウ重量ｗ（Ｎ＋ｋ）とが加算されて１となり、ｋは０からＮ−１までの領域を持つという条件である。もしウィンドウ重量（window weightings）がサイン関数の波形の前半をたどるサインウィンドウを使用すれば、この条件は常に満たされることになる。なぜなら、サインの２乗とコサインの２乗との和は全ての角度において１の値となるからである。
【００１０】
図４ａに示された後段のＭＤＣＴ関数を持つウィンドウ方式の欠点は、ウィンドウ化が時間離散サンプル値を乗算することで達成されるという事実であり、特にサインウィンドウを考慮した場合、浮動小数点数を乗算することで達成されるという事実である。なぜなら、０°から１８０°までの角度のサインは、９０°を除けば整数にはならないからである。
【００１１】
従って、たとえ聴覚心理エンコーダが使用されない場合、すなわちたとえ損失なしの符号化が実施されるべき場合でも、明快なエントロピー符号化処理を実行することができるように、手段４０８および／または４１０の出力側においては量子化が必要となる。
【００１２】
もし、損失がないオーディオ符号化のために図４ａのような公知の変換方法を使用する必要がある場合には、上記浮動小数点数のラウンディング（丸め操作）に基づいて生じるエラーを無視できるように、非常に精密な量子化を実行するか、あるいは、そのエラー信号も例えば時間ドメインの中で追加的に符号化されなければならない。
【００１３】
さらに、デジタル信号プロセッサは通常、多すぎるラウンディング操作を避ける目的で、通常の作業用長さよりも長い語長を持つ蓄積手段(accumulator)を備えている。フィルタバンクを実行するために高速アルゴリズムを使用すれば、典型的な結果として、後の段階で使用するために途中の計算結果を記憶する必要が生じる。途中の計算結果は操作精度に従ってラウンディング操作を施される必要があり、また記憶操作の中へと分類されていく必要がある。典型的な場合、ラウンディング操作のエラーは数回もの処理段階を通して蓄積される。大多数の浮動小数点デジタル信号プロセッサが、たった２４ビットの仮数(mantissa)を備えた３２ビットの語長を持つことを考慮すれば、２４ビットの精度を持つ入力信号に対して何が起こるかということは自明である。
【００１４】
精密過ぎる量子化の結果として、およびこれに代わるエラー信号の追加的な符号化の結果として、エンコーダ内の計算はより複雑なものとなり、エンコーダも複雑となる。また、これに対応してデコーダもより複雑となる。特にデコーダは、例えばインターネットを介した音楽の配信を考えた場合、市場に出回る他のデコーダと比較して優位性を持つために、大量生産品でかつ低コスト品でなければならない。このような必要性を考慮すれば、非常に精密な量子化または追加的なエラー信号の符号化を用いることは、多くの場合両立するものではない。なぜなら、追加的なコストはデコーダにとってより高いコストを招くからである。
【００１５】
同時に、競争が激しいオーディオエンコーダの市場に出回るエンコーダという視点から見れば、大きなデータ量を生成することも、多くの場合、容認できるものではない。換言すれば、可能な限り高い圧縮ファクタを達成することは非常に重要な意味を持つ。なぜなら、バンド幅が限られたネットワークがしばしば存在し、圧縮率が低いオーディオ作品はそのようなネットワークを介した伝送時間があまりにも長くかかるため、顧客はすぐにより高いデータ圧縮率とより短い伝送時間を持つ別の製品を選ぶという結果になるからである。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明の目的は、損失のない符号化に適し、同時に容認可能な程度の複雑さという点も考慮して、高いデータ圧縮率を提供できるエンコーダおよびデコーダの概念を提供することである。
【００１７】
上記目的は、請求項１に記載の時間離散オーディオサンプル値を処理する方法と、請求項１７に記載の整数値を逆処理する方法と、請求項２２に記載の時間離散オーディオサンプル値を処理する装置と、請求項２３に記載の整数値を逆処理する装置とで達成される。
【課題を解決するための手段】
【００１８】
本発明は次のような知見に基づいている。すなわち、ウィンドウ化の段階における浮動小数点値の発生は、ある時間ドメイン、すなわち変換を行う前の時点においてＴＤＡＣ操作を格別に実行することで防ぐことができるという知見である。これは、当該技術分野の現状とは逆に、変換の前に既にオーバーラップを考慮することと、１つのウィンドウの異なるクォータ(４分の１：quarter)からの２つの時間離散サンプル値を処理することで達成されるであろう。この処理とは、そのウィンドウの異なるクォータからの２つの時間離散サンプル値のベクトルに対して回転マトリクスを適用することで実行され、この回転マトリクスは、複数のいわゆるリフティングマトリクスにより表すことができる。公知のように、リフティングマトリクスは“０”でも“１”でもない成分、すなわち非整数の成分はただ１つしか持たないという特徴がある。リフティングマトリクスと時間離散サンプル値のベクトルとの乗算およびそれに続く非整数ベクトル要素のラウンディング操作を順に実行することで、浮動小数点数はそれらが発生する直後に均一にラウンディングされるであろう。注目すべきは、リフティングマトリクスの上述の特性により、乗算で生じた結果ベクトル(result vector)のただ１つの要素だけがラウンディングされればよいという点である。
【００１９】
望ましくは、回転マトリクスはギブンズ(Givens)回転マトリクスであり、公知のように、３つのリフティングマトリクスにより表されてもよい。ギブンズ回転マトリクスの回転角はウィンドウ関数に依存する。注目すべきは、本発明の方法に対し、上述の条件を満たす限りにおいて全てのウィンドウ関数を適用できるという点である。すなわち、１つのウィンドウ重量の２乗と、それからＮウィンドウ重量だけ離れたもう１つのウィンドウ重量の２乗との和が、常に１の値になるという条件である。さらに注目すべきは、この条件は異なる形を持つ２つの連続するウィンドウ、例えば１つのサインウィンドウと１つのカイザー−ベッセルウィンドウ(Kaiser-Bessel window)等によって満たされてもよいという点である。
【００２０】
本発明の望ましい実施例においては、５０％のオーバーラップを伴うＭＤＣＴ処理は、リフティングマトリクスおよびラウンディングと、それに続く非対称基底関数(non-symmetric basis function)を持つＤＣＴ（離散コサイン変換）、すなわちタイプＩＶのＤＣＴとによって置き換えられる。
【００２１】
整数ウィンドウ化を達成するためだけではなく、整数離散コサイン変換を達成するためにも、ＤＣＴ変換をギブンズ回転により置き換えることが望ましい。特に、リフティングマトリクスと、各リフティングマトリクスの乗算後のラウンディングとによる処理で置き換えることが望ましい。
【００２２】
本発明の長所は、ウィンドウ化の途中かあるいはオフセット値を完全に変換している時にのみ、ウィンドウサンプル値あるいはスペクトル値が整数として存続するという点である。さらに、リフティングマトリクスによる処理に関しては単純に逆回転マトリクスを逆の順序で適用し、かつ同じラウンディング関数を適用することで、全体的なプロセスを逆転させることが可能となる点である。そのため、本発明の概念は、完全な再構成の可能性を備えたＭＤＣＴの整数近似法として適切であり、ゆえに、整数変形離散コサイン変換（ＩＮＴ  ＭＤＣＴ）と呼べるものである。
【００２３】
本発明の概念はさらに、ＭＤＣＴの望ましい特性、すなわちオーバーラッピング構造を備えている。この構造は、非オーバーラッピングブロック変換と比較してより良好な周波数選択性と、臨界サンプリング(critical sampling) とを提供するものであり、この場合、１つのオーディオ信号を表すスペクトル値の合計数は入力されたサンプル値の数を超えない。そのため、回転段階におけるラウンディングにより、非線形性が導入されるであろう。しかし、同時にラウンディングの結果は、整数スペクトル値の数領域の中にあり、本質的に入力値の数領域を超えない。オーバーラッピング構造であるため、パーセバルの定理(Parseval theorem)によって与えられるようなブロック単位でのエネルギー保存は存在しないが、本発明の整数ＭＤＣＴは、各ブロックの中心エネルギーが維持されるという特徴がある。なぜなら、望ましくはラウンディングされたギブンズ回転マトリクスのみが使用されるからであり、その結果、一般的にはエネルギー保存を生じさせるからである。
【００２４】
さらに本発明の長所は、整数出力値が存在するという事実から、後続の量子化が省略されてもよいという点である。その結果、整数ＭＤＣＴの出力値が直後にエントロピー符号化され、損失のないデータ圧縮が得られる。
【発明を実施するための最良の形態】
【００２５】
本発明の望ましい実施例を、以下に添付した図を参照しながら説明する。
図１は、時間離散オーディオサンプル値を処理して整数値を得るための本発明に係る装置のブロック図を示し、
図２は、本発明の望ましい実施例に従った、ギブンズ回転におけるＭＤＣＴおよび逆ＭＤＣＴと、２つのＤＣＴ（離散コサイン変換）タイプＩＶ操作とを示す分解概要図であり、
図３は、順番に５０％のオーバーラップを伴うＭＤＣＴとＤＣＴタイプＩＶ操作との分解図であり、
図４ａは、ＭＤＣＴおよび５０％のオーバーラップを伴う従来技術のエンコーダを示す概要ブロック回路図であり、
図４ｂは、図４ａのエンコーダによって生成された値を復号化するための従来技術のデコーダを示すブロック図である。
【実施例１】
【００２６】
図１は、オーディオ信号を表す時間離散サンプル値を処理して整数値を得るための本発明の装置および／または本発明の方法を示す全体図である。時間離散サンプル値は図１に示される装置によりウィンドウ化され、選択的にスペクトル表現で示される。時間離散サンプル値は、入力１０においてこの装置に入力され、２Ｎ個の時間離散サンプル値に相当する長さを持つウィンドウＷでウィンドウ化される。その結果、出力１２において整数のウィンドウ化サンプル値が得られ、このサンプル値は変換、特に整数ＤＣＴを実行する手段１４により、スペクトル表現で示されるのに適している。整数ＤＣＴはＮ個の入力値からＮ個の出力値を生成するように作られており、これは図４ａのＭＤＣＴの関数４０８とは対照的である。なぜなら、ＭＤＣＴの方程式に従えば、２Ｎ個のウィンドウ化されたサンプル値からＮ個のスペクトル値しか生成されないからである。
【００２７】
時間離散サンプル値をウィンドウ化するために、まず２個の時間離散サンプル値が手段１６内において選択され、これらは合同して時間離散サンプル値の１個のベクトルを表す。手段１６により選択された１つの時間離散サンプル値は、ウィンドウの第１クォータに対応し、もう１つの時間離散サンプル値は、ウィンドウの第２クォータに対応する。この点に関しては、図３においてより詳細に説明する。２×２のディメンションを持つ回転マトリクスが、手段１６により生成されたベクトルに対して適用される。このベクトル回転操作は単一のステップで実行されるわけではなく、複数のいわゆるリフティングマトリクスによって実行される。
【００２８】
リフティングマトリクスとは、ウィンドウＷに依存し、かつ“１”でも“０”でもない成分を１つだけ備えるという特徴を持つ。
【００２９】
リフティングステップにおけるウェーブレット変換（wavelet transform）の因数分解は、"Factoring Wavelet Transforms Into Lifting Steps" という技術文献(Ingrid Daubechies and Wim Sweldens, Preprint, Bell Laboratories, Lucent Technologies, 1996)に表されている。一般的に、リフティングの概要は、同一のローパスフィルタまたはハイパスフィルタを備えた完全再構築型フィルタ対の間の単純な関係式である。補足的なフィルタからなる各対は、リフティングステップにおいて因数分解されてもよい。特に、これはギブンズ回転に対して適用される。多相マトリクスがギブンズ回転である場合を考えてみる。この時、以下の方程式が有効となる。
【００３０】
【数１】
2004531151.tif 000003
【００３１】
等記号の右側にある３つのリフティングマトリクスの夫々は、主対角成分(main diagonal elements)として値“１”を持つ。さらに、各リフティングマトリクスにおいて、１つの副対角成分(subsidiary diagonal element)は０であり、もう１つの補助対角成分は回転角αに依存する。
【００３２】
ベクトルは、まず第３のリフティングマトリクス、すなわち上述の方程式の最も右側にあるリフティングマトリクスを用いて乗算され、第１結果ベクトルを得る。これは、図１内では手段１８により示されている。本発明によれば、第１結果ベクトルは、次に実数値を整数値にマッピングするいずれかのラウンディング関数によりラウンディングされる。これは、図１内では手段２０により示されており、ラウンディングされた第１結果ベクトルが手段２０の出力において得られる。このラウンディングされた第１結果ベクトルは手段２２に供給され、ここで上述の方程式の中間のリフティングマトリクス、すなわち第２のリフティングマトリクスを用いて乗算され、第２結果ベクトルを得る。この第２結果ベクトルは、手段２４において再度ラウンディングされ、ラウンディングされた第２結果ベクトルを得る。このラウンディングされた第２結果ベクトルは、次に手段２６に対して供給され、上述の方程式の左側に記載のリフティングマトリクス、すなわち第１リフティングマトリクスを用いて乗算され、第３結果ベクトルを得る。この第３結果ベクトルは、手段２８により最終的にもう一度ラウンディングされ、出力１２においては整数ウィンドウ化サンプル値が最終的に得られる。もしスペクトル出力３０において整数スペクトル値を得るために、この値のスペクトル表現が求められる場合には、この整数ウィンドウ化サンプル値は次に手段１４により処理されなければならない。
望ましくは、上記手段１４は整数ＤＣＴとしての役割を果たす。
【００３３】
長さＮを持ちタイプＩＶに従う離散コサイン変換（ＤＣＴ−ＩＶ）は、以下の方程式で表現できる。
【００３４】
【数２】
2004531151.tif 000004
【００３５】
ＤＣＴ−ＩＶの係数は正規直交Ｎ×Ｎマトリクスを形成する。各直交Ｎ×ＮマトリクスはＮ（Ｎ−１）／２ギブンズ回転に分解されてもよい。この点に関しては、技術文献P. P. Vaidyanathan, “Multirate Systems And Filter Banks", Prentice Hall, Englewood Cliffs, 1993 に説明の通りである。また、さらなる分解も存在することにも留意すべきである。
【００３６】
様々なＤＣＴアルゴリズムの分類に関しては、H. S. Malvarの“Signal Processing With Lapped Transforms", Artech House, 1992を参照されたい。一般的に、ＤＣＴアルゴリズムはそれらの基底関数のタイプにより特徴づけられている。本発明において望ましいとされるＤＣＴ−ＩＶは、非対称基底関数、すなわちコサイン１／４波、コサイン３／４波、コサイン５／４波、コサイン７／４波等を含むが、タイプＩＩの離散コサイン変換（ＤＣＴ−ＩＩ）は軸対称かつ点対称の基底関数を含む。０番目の基底関数は直結要素(direct component)を持ち、１番目の基底関数は１／２コサイン波であり、２番目の基底関数は全コサイン波である等である。タイプＩＩの離散コサイン変換は特に直結要素を考慮するという事実から、このタイプＩＩの離散コサイン変換はビデオ符号化に使用され、オーディオ符号化には使用されない。なぜなら、オーディオ符号化においては、ビデオ符号化とは対照的に、直結要素は関係がないからである。
【００３７】
以下に、ギブンズ回転の回転角αがいかにウィンドウ関数に依存するかという点について、特に説明する。
【００３８】
２Ｎウィンドウ長を持つＭＤＣＴは、Ｎウィンドウ長を持つタイプＩＶの離散コサイン変換へと減数されてもよい。これは、時間ドメインにおいてＴＤＡＣ変換を格別に実行し、その後ＤＣＴ−ＩＶを適用することで達成できる。５０％のオーバーラップにより、ブロックｔに対するウィンドウの左半分は、先行するブロック、すなわちブロックｔ−１の右半分と重複する。２個の連続するブロックｔ−１とブロックｔの重複する部分は時間ドメインの中で前処理される。すなわち、上記変換に先立ち、図１内の入力１０から出力１２の間で下記のように処理される。
【００３９】
【数３】
2004531151.tif 000005
【００４０】
波型記号を付して示された値は、図１の出力１２の値を示し、他方、上記の式内で波型記号を付けずにｘ値として示される値は、図１の入力１０の値および／または選択手段１６の後の値を示す。変数(running index)ｋは０からＮ／２−１まで変化し、ｗはウィンドウ関数を表す。
【００４１】
ウィンドウ関数ｗのためのＴＤＡＣの条件から、以下の式が有効となる。
【００４２】
【数４】
2004531151.tif 000006
【００４３】
ある所定の角度αk，ｋ＝０，…，Ｎ／２−１について、この時間ドメインにおける前処理は、上述のように、ギブンズ回転として記載されてもよい。
【００４４】
ギブンズ回転の角度αは以下のようにウィンドウ関数ｗに依存する。
【００４５】
【数５】
2004531151.tif 000007
【００４６】
留意すべき点は、このＴＤＡＣの条件が満たされる限りにおいては、いかなるウィンドウ関数ｗも用いることができるという点である。
【００４７】
以下に、図２を参照しながらカスケードエンコーダおよびデコーダを説明する。１個のウィンドウで一緒にウィンドウ化された時間離散サンプル値ｘ（０）〜ｘ（２Ｎ−１）は、図１内の手段１６により以下のように選択される。つまり、ウィンドウの第１クォータからサンプル値ｘ（０）が選択され、ウィンドウの第２クォータからサンプル値ｘ（Ｎ−１）が選択され、手段１６の出力においてベクトルを形成する。途中で交差する矢印は、ＤＣＴ−ＩＶのブロックの入力において整数ウィンドウ化サンプル値を得るため、手段１８と２０、手段２２と２４、および／または手段２６と２８のリフティングマトリクスによる乗算とそれに続くラウンディングとを概略的に示す。
【００４８】
上述のような最初のベクトルが処理された時、次に、ウィンドウの第１クォータからサンプル値ｘ（Ｎ／２−１）が選択され、ウィンドウの第２クォータからサンプル値ｘ（Ｎ／２）が選択されて２番目のベクトルが形成され、その後図１に示されたアルゴリズムによって処理される。上記と同様に、ウィンドウの第１および第２クォータからの他の全てのサンプル値が処理される。同様の処理が第１ウィンドウの第３および第４クォータに対しても実行される。この時点で、出力１２において２Ｎ個のウィンドウ化された整数サンプル値が存在し、これらは次に、図２に示されるように、ＤＣＴ−ＩＶに対して入力される。特に、第２および第３クォータの整数ウィンドウ化サンプル値がＤＣＴに対して入力される。ウィンドウの第１クォータの整数ウィンドウ化サンプル値は、先行するウィンドウの第４クォータの整数ウィンドウ化サンプル値と一緒に、先行するＤＣＴ−ＩＶ内で処理される。これと同様に、図２内の第４クォータの整数ウィンドウ化サンプル値は、後続ウィンドウの第１クォータのサンプル値と一緒に、ＤＣＴ−ＩＶに対して入力される。図２に示す中間の整数ＤＣＴ−ＩＶ３２は、Ｎ個の整数スペクトル値ｙ（０）からｙ（Ｎ−１）までを供給する。これらの整数スペクトル値は、次に、いかなる中間の量子化をも必要とせず、単純にエントロピー符号化を施されてもよい。なぜなら、本発明のウィンドウ化と変換とは、整数出力値を提供するからである。
【００４９】
図２の右半分には、デコーダが示されている。逆変換と逆ウィンドウ化とからなるデコーダは、エンコーダとは逆に操作する。図２に示すように、ＤＣＴ−ＩＶの逆変換のために、逆ＤＣＴ−ＩＶが使用されてもよいことは既に公知である。本発明によれば、図２に示すように、デコーダＤＣＴ−ＩＶ３４の出力値は、先行する変換および／または後続の変換の対応する値と共に逆処理され、その結果、手段３４の出力における整数ウィンドウ化サンプル値、および／または前後の変換の出力における整数ウィンドウ化サンプル値から、時間離散オーディオサンプル値ｘ（０）〜ｘ（２Ｎ−１）が生成される。
【００５０】
出力側の操作は、本発明によれば、逆ギブンズ回転により実行される。すなわち、ブロック２６と２８、ブロック２２と２４、および／またはブロック１８と２０を逆方向に通過することになる。これは、方程式（１）の第２リフティングマトリクスにより詳細に表されている。もし、（エンコーダ内で）第２結果ベクトルが、ラウンディングされた第１結果ベクトルに第２リフティングマトリクスを乗算することで形成されるならば（手段２２）、その結果は以下の式に示される。
【００５１】
【数６】
2004531151.tif 000008
【００５２】
上記の式の右側にある値ｘ，ｙは整数である。しかし、ｓｉｎαの値は整数ではない。そこで、ラウンディング関数ｒが以下の方程式のように導入されなければならない。
【００５３】
【数７】
2004531151.tif 000009
【００５４】
上記手段２４はこの操作を実行する。
【００５５】
逆マッピング（デコーダにおける）は、以下のように定義される。
【００５６】
【数８】
2004531151.tif 000010
【００５７】
ラウンディング操作の前にあるマイナス記号から自明なことは、リフティングステップの整数近似値は、いかなる誤差も導入されずに逆転されることができるということである。３つの各リフティングステップにおいてこの近似法を適用する結果、ギブンズ回転の整数近似値を得ることができる。（エンコーダ内で）ラウンディングされた回転は、（デコーダ内で）誤差を導入せずに逆回転させることができる。つまり、ラウンディングされた逆リフティングステップを逆の順序で実行することで、誤差を導入せずに逆回転させることが可能である。換言すれば、復号化において、図１に示されたアルゴリズムを下から上へという順序で実行すれば可能である。
【００５８】
もし、ラウンディング関数ｒが点対称であれば、逆ラウンディングされた回転は、角度−αでラウンディングされた回転と同一であり、次の式が成り立つ。
【００５９】
【数９】
2004531151.tif 000011
【００６０】
この場合、デコーダのため、すなわち逆ギブンズ回転のためのリフティングマトリクスは、方程式（１）の“ｓｉｎα”という表現を“−ｓｉｎα”という表現に置き換えることで、直ちに結果が得られる。
【００６１】
以下に、オーバーラップウィンドウ４２〜４６を備えた一般的なＭＤＣＴの分解を、図３を参照しながら再度説明する。ウィンドウ４０〜４６は、それぞれ５０％のオーバーラップを持つ。各ウィンドウにおいて、ギブンズ回転は最初にウィンドウの第１および第２クォータ内および／またはウィンドウの第３および第４クォータ内で実行される。これは、矢印４８により図式的に示されている。次に、回転する値、すなわちウィンドウ化整数サンプル値は、ＮからＮへの離散コサイン変換（Ｎ−ｔｏ−Ｎ−ＤＣＴ）に入力され、その結果、ウィンドウの第２クォータと第３クォータ、および／または第４クォータと後続のウィンドウの第１クォータとがＤＣＴ−ＩＶアルゴリズムにより常に一緒にスペクトル表現へと処理されるようになる。
【００６２】
本発明によれば、通常のギブンズ回転はリフティングマトリクスに分解される。これらのリフティングマトリクスの乗算は順に実行され、各リフティングマトリクスの乗算後にラウンディングステップが実行される。そのため、浮動小数点数が発生すると直ちにラウンディングされるので、結果ベクトルと（次の）リフティングマトリクスとの各乗算の前において、結果ベクトルは整数しか含まない。
【００６３】
以上のように、出力値は常に整数となるが、入力値も整数を使用することが望ましい。但し、これに制約されるものではない。なぜなら、ＣＤに記憶されたいかなるＰＣＭサンプル値も整数値であるからであり、その値の領域はビット幅に依存しており、つまりは時間離散デジタル入力値が１６ビット値か２４ビット値かという点に依存しているからである。さらに、上述のように、逆の順序で逆回転マトリクスを実行することで、全体的な処理を逆転させることが可能である。本発明によれば、ＭＤＣＴの整数近似値法により、完全な再生すなわち損失のない変換が可能となる。
【００６４】
本発明の変換は、浮動小数点値に代えて整数出力値を提供する。それにより、もし前方変換およびその後の後方変換が実行された場合に、誤差が導入されずに完全な再生を実現できる。本発明の望ましい実施例によれば、この変換は変形離散コサイン変換に代わるものである。回転への分解と、リフティングステップへの回転の分解とが可能であれば、他の変換方法もまた整数で実行可能であろう。
【００６５】
本発明の整数ＭＤＣＴは、ＭＤＣＴの最も望ましい特性を提供する。オーバーラップ構造を備え、その結果として、オーバーラップなしのブロック変換より良好な周波数選択性を得ることができる。変換に先立ちウィンドウ化の時に既に考慮されていたＴＤＡＣ関数を基礎として、臨界サンプリングが維持され、その結果、１つのオーディオ信号を表すスペクトル値の全体数が入力サンプル値の全体数と等しくなる。
【００６６】
浮動小数点サンプル値を提供する他の通常ＭＤＣＴと比較して、本発明の整数変換は以下の点を開示している。すなわち、通常ＭＤＣＴと比較して、信号レベルが殆どないところではノイズはスペクトル領域でのみ増大し、他方、意味のある信号レベルの中ではこのノイズの増大は認識されないであろう。この目的のために、本発明の整数処理はハードウェアによる能率的な実施に適している。なぜなら、乗算ステップのみが使用されるからであり、それは容易にシフト／加算ステップに分解され、つまりはハードウェアで容易かつ迅速に実行可能であるからである。
【００６７】
本発明の整数変換は、オーディオ信号の良好なスペクトル表現を提供し、かつ整数領域に留まるものである。もし、オーディオ信号の調性部分(tonal parts)に適用される場合には、これにより、良好なエネルギー集中が得られる。そのため、図１に示す本発明のウィンドウ化／変換をエントロピーエンコーダとカスケード接続することで、能率的で損失のない符号化機構が構築できるであろう。特に、ＭＰＥＧ  ＡＡＣに使用されているような、エスケープ値を用いた積層符号化は、本発明にとって望ましいものである。適切なコード表に適合するまで全ての値をある所定の冪(power)により縮小し、その後追加的に、除外された最小限の重要性を持つビットを符号化することが望ましい。他の方法としてより大きなコード表を使用する方法があるが、その場合と比較して、上述の方法はコード表を記憶させるための記憶消費量という観点から見て、より経済的である。重要性がほとんどないビット中の所定のものを単純に除外することで、ほとんど損失のないエンコーダを得ることも可能であろう。
【００６８】
特に、調性信号に関しては、整数スペクトル値のエントロピー符号化は高い符号化ゲインを可能にする。信号の一時的な部分に関しては、この符号化ゲインは低い。これは、一時的信号のフラットスペクトル、すなわち０または略０に等しい低い数のスペクトル値に基づくからである。J. Herre, J. D. Johnstonの著書である"Enhancing the Performance of Perceptual Audio Coders by Using Temporal Noise Shaping (TNS)"  101, AES Convention, Los Angeles, 1996, Preprint 4384 に記載のように、このフラット部分は、周波数ドメイン内で線形予測を用いることで使用可能となるであろう。他の方法としては、開ループによる予測があり、さらに他の方法としては、閉ループによる予測がある。前者の方法、すなわち開ループによる予測は、ＴＮＳと呼ばれるものである。予測の量子化により、結果的に生じる量子化ノイズをオーディオ信号の時間構造に適応させ、聴覚心理オーディオ符号化におけるプリエコーを防止する。損失のないオーディオ符号化のためには、２番目の方法、すなわち閉ループによる予測がより適している。なぜなら、閉ループによる予測は入力信号の正確な再生を可能にするからである。もし、この技術が本発明の技術で生成されたスペクトルに対して適用されれば、整数領域に留まるために、ラウンディングステップは各予測フィルタのステップの後で実行されなければならない。逆フィルタおよび同様のラウンディング関数を使用することで、オリジナルスペクトルが正確に再生されるであろう。
【００６９】
データ削減のため、２チャンネル間の余分な重複を利用するために、もしπ／４の角度を持つラウンディングされた回転が使用されるならば、損失のない限りにおいてミドルサイド符号化(middle-side encoding)を用いてもよい。ステレオ信号の左右のチャネルの合計と差とを計算する他の方法と比較して、ラウンディングされた回転はエネルギーの集中という利点がある。標準ＭＰＥＧ  ＡＡＣで実行されているように、いわゆるジョイントステレオ符号化技術の使用は、各バンドに対してオンまたはオフさせてもよい。２チャンネル間の余分な重複をより柔軟な方法で減少させることができるように、さらなる回転角度もまた考慮してもよい。
【図面の簡単な説明】
【００７０】
【図１】時間離散オーディオサンプル値を処理して整数値を得るための本発明に係る装置のブロック図である。
【図２】本発明の望ましい実施例に従った、ギブンズ回転におけるＭＤＣＴおよび逆ＭＤＣＴと、２つのＤＣＴ（離散コサイン変換）タイプＩＶ操作とを示す分解概要図である。
【図３】順に５０％のオーバーラップを伴うＭＤＣＴとＤＣＴ−ＩＶの操作を示す分解図である。
【図４ａ】５０％のオーバーラップを伴うＭＤＣＴを用いた従来技術のエンコーダを示す概要ブロック回路図である。
【図４ｂ】図４ａのエンコーダによって生成された値を復号化するための従来技術のデコーダを示すブロック図である。
【符号の説明】
【００７１】
１０    入力
１４    整数ＤＣＴ
１６    選択手段
１８，２２，２６    リフティングマドリクスによる乗算手段
２０，２４，２８    ラウンディング手段
【図１】
2004531151.tif 000016
【図２】
2004531151.tif 000017
【図３】
2004531151.tif 000018
【図４ａ】
2004531151.tif 000019
【図４ｂ】
2004531151.tif 000020
【国際公開パンフレット】
2004531151.tif 000021
2004531151.tif 000022
2004531151.tif 000023
2004531151.tif 000024
2004531151.tif 000025
2004531151.tif 000026
2004531151.tif 000027
2004531151.tif 000028
2004531151.tif 000029
2004531151.tif 000030
2004531151.tif 000031
2004531151.tif 000032
2004531151.tif 000033
2004531151.tif 000034
2004531151.tif 000035
2004531151.tif 000036
2004531151.tif 000037
2004531151.tif 000038
2004531151.tif 000039
2004531151.tif 000040
2004531151.tif 000041
2004531151.tif 000042
2004531151.tif 000043
2004531151.tif 000044
2004531151.tif 000045
2004531151.tif 000046
2004531151.tif 000047
2004531151.tif 000048
2004531151.tif 000049
2004531151.tif 000050
2004531151.tif 000051
2004531151.tif 000052
2004531151.tif 000053
2004531151.tif 000054
2004531151.tif 000055
【国際調査報告】
2004531151.tif 000056
2004531151.tif 000057
2004531151.tif 000058
2004531151.tif 000059