(57)【要約】【課題】計算複雑度を低くするように配列された一連のリフティングステップとしての実装を持つ２Ｄ変換とその逆変換を提供する。【解決手段】変換ペアは、離散コサイン変換（ＤＣＴ）に類似したエネルギー圧縮特性を有し、また可逆で、スケールフリーでもある。２Ｄデータブロックの行と列とに分離可能な形で適用される１Ｄ  ＤＣＴ変換として実装された分離可能なＤＣＴ変換と比較して、これらの変換演算は、２×２アダマール変換、およびリフティング回転を組み込む２×２変換を含む基本変換のカスケードに再配列される。これらの基本変換は、一連のリフティング演算としての実装を有する。【選択図】図１９
2006197572.tif 000002
【特許請求の範囲】
【請求項１】
デジタル媒体データの二次元ブロック上で水平および垂直方向に適用される一次元変換として定義される可逆なスケールフリー二次元ブロック変換を実行する方法であって、
前記水平および垂直方向に適用される一次元変換から演算をインターリーブする２つまたはそれ以上の段の各々において、リフティングステップとして実装される基本変換の集合として再配列された前記それぞれの段における演算を二次元ブロックにおける値の独立な部分集合に適用するステップを備えたことを特徴とする方法。
【請求項２】
前記段の第１において、２×２アダマール変換を前記二次元ブロックにおける値の独立な４値の部分集合に適用するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記４値の部分集合は、前記二次元ブロックの隅における４つの値のグループと、前記二次元ブロックの中心における４つの値のグループと、前記二次元ブロックの横の辺の中心における４つの値のグループと、前記二次元ブロックの縦の辺の中心における４つの値のグループとを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記段の第２において、変換の集合を前記二次元ブロックにおける値の独立な４値の部分集合に適用するステップをさらに備え、および前記変換の集合の少なくとも１つは、３つの段からなるカスケードの形式において実装され、
リフティングステップを使用して演算子
【数１】
2006197572.tif 000024
により定義される二重バタフライ演算と、
それぞれ成分値の第１のペアの間、および成分値の第２のペアの間の２点（２−ｐｏｉｎｔ）回転と、
前記二重バタフライ演算の反転とを含むことを特徴とする方法。
【請求項５】
前記段の第２において、２×２アダマール変換、２点アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換、および前記２つの点回転行列とのクロネッカー積として導かれる２×２奇数−奇数回転変換を含んだ変換の集合を前記二次元ブロックにおける値の独立な４値の部分集合に適用するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項６】
除算または右ビットシフトを伴うバタフライ演算について、前記それぞれのバタフライ演算に先立って除算または右ビットシフトされるオペランドに可変係数を追加するステップをさらに備え、丸め誤差バイアスの低減を使用することを特徴とする請求項１に記載の方法。
【請求項７】
前記変換に先立って、係数を掛けて前記二次元ブロックをスケーリングするステップと、
前記変換を実行するステップと、
前記係数を掛けた所望の量子化器に等しい量子化器により結果として得られる変換係数を量子化するステップと
をさらに備え、ロッシー圧縮に丸め誤差バイアスの低減を使用することを特徴とする請求項１に記載の方法。
【請求項８】
前記水平および垂直方向に適用される一次元変換から演算をインターリーブする２つまたはそれ以上の段の各々において、リフティングステップとして実装される基本変換の集合として再配列された前記それぞれの段における前記演算を前記二次元ブロックにおける値の独立な部分集合に適用するステップを含む、請求項１に記載の前記二次元変換の逆変換を実行する方法。
【請求項９】
前記段の第１において、２×２アダマール変換、２点アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換、および前記２つの点回転行列のクロネッカー積として導かれる２×２奇数−奇数回転変換を含んだ変換の集合を前記二次元ブロックにおける値の独立な４値の部分集合に適用するステップをさらに備えたことを特徴とする請求項８に記載の方法。
【請求項１０】
前記４値の部分集合は、前記二次元ブロックの左上、右上、左下、および右下において４つの値のグループを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記２×２アダマール変換、２×２奇数回転変換、および２×２奇数−奇数回転変換は、小数点以下４桁の小数に近似した、式
【数２】
2006197572.tif 000025
および
【数３】
2006197572.tif 000026
により与えられることを特徴とする請求項９に記載の方法。
【請求項１２】
前記段の第２において、２×２アダマール変換を前記二次元ブロックにおける値の独立な４値の部分集合に適用するステップをさらに備えたことを特徴とする請求項８に記載の方法。
【請求項１３】
デジタル媒体データの二次元ブロックに垂直および水平方向に適用される４点変換として定義される可逆なスケールフリー二次元変換を使用するブロック変換による符号化により二次元デジタル媒体データのロッシー／ロスレス圧縮を実行するロッシー／ロスレス圧縮システムの符号化器であって、
符号化される二次元デジタル媒体データをバッファリングするためのバッファメモリと、
前記水平および垂直の一次元４点変換から演算をインターリーブする２つまたはそれ以上の段の各々において、リフティングステップとして実装される基本２×２変換の集合として再配列されている前記それぞれの段における前記演算を前記二次元ブロックにおける独立な４値の部分集合に適用することにより前記デジタル媒体データの二次元ブロックに前記変換を適用するためのプロセッサと
を備えたことを特徴とする符号化器。
【請求項１４】
前記基本２×２変換は、２×２アダマール変換、２点アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換、および前記２つの点回転行列のクロネッカー積として導かれる２×２奇数−奇数回転変換を含むことを特徴とする請求項１３に記載の符号化器。
【請求項１５】
第１段における前記プロセッサは、２×２アダマール変換を、前記デジタル媒体ブロックの隅、中心、上下辺、および左右辺において４値の集合を含んでいる前記それぞれのデジタル媒体ブロックの４値の部分集合に適用することを特徴とする請求項１３に記載の符号化器。
【請求項１６】
第２段における前記プロセッサは、２×２アダマール変換を前記それぞれのデジタル媒体ブロックの左上において４値の部分集合に適用し、２×２アダマール変換、および前記２×２アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換を前記それぞれのデジタル媒体ブロックの右上および左下において４値の部分集合に適用し、ならびに前記２つの点回転行列とともに前記２つの点回転行列のクロネッカー積として導かれる２×２奇数−奇数回転変換を前記各々のデジタル媒体ブロックの右下おいて４値の部分集合に適用することを特徴とする請求項１３に記載の符号化器。
【請求項１７】
前記可逆なスケールフリー二次元変換の逆変換を使用するブロック変換による復号化により前記圧縮された二次元デジタル媒体データのロッシー／ロスレス圧縮解除を実行する請求項１３に記載のロッシー／ロスレス圧縮システムの復号化器であって、
前記圧縮された二次元デジタル媒体データのブロックの変換係数をバッファリングするバッファメモリと、
前記水平および垂直の一次元４点逆変換から演算をインターリーブする２つまたはそれ以上の段の各々において、リフティングステップとして実装される基本２×２変換の集合として再配列されている前記それぞれの段における前記演算を前記二次元ブロックにおける独立な４値の部分集合に適用することにより前記デジタル媒体データの二次元ブロックに前記逆変換を適用するプロセッサと
を備えたことを特徴とする復号化器。
【請求項１８】
前記基本２×２変換は、２×２アダマール変換、２点アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換、および前記２つの点回転行列のクロネッカー積として導かれる２×２奇数−奇数回転変換を含むことを特徴とする請求項１７に記載の復号化器。
【請求項１９】
第１段の前記プロセッサは、２×２アダマール変換を前記それぞれのデジタル媒体ブロックの左上において４値の部分集合に適用し、２×２アダマール変換、および２点アダマール変換と２つの点回転行列とのクロネッカー積として導かれる２×２奇数回転変換を前記それぞれのデジタル媒体ブロックの右上および左下において４値の部分集合に適用し、ならびに前記２つの点回転行列のクロネッカー積として導かれる２×２奇数−奇数回転変換を前記それぞれのデジタル媒体ブロックの右下において４値の部分集合に適用することを特徴とする請求項１８に記載の復号化器。
【請求項２０】
第２段の前記プロセッサは、２×２アダマール変換を、前記デジタル媒体ブロックの隅、中心、上下辺、および左右辺において４値の集合を含んでいる前記それぞれのデジタル媒体ブロックの４値の部分集合に適用することを特徴とする請求項１８に記載の復号化器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、ブロック変換に基づくデジタル媒体（ｂｌｏｃｋ  ｔｒａｎｓｆｏｒｍ−ｂａｓｅｄ  ｄｉｇｉｔａｌ  ｍｅｄｉａ）（例えば、ビデオおよびイメージ）圧縮に関し、より詳細には、ロッシーおよびロスレス２Ｄデータ圧縮のための可逆な変換に関する。
【背景技術】
【０００２】
（ブロック変換に基づく符号化）  
変換符号化は、多くのオーディオ、イメージ、およびビデオ圧縮システムにおいて使用される圧縮手法である。未圧縮デジタルイメージおよびビデオは、通常、二次元（２Ｄ）グリッドとして配列されたイメージまたはビデオフレームの位置における画素または色のサンプルとして表されるか、または取り込まれる。これは、イメージまたはビデオの空間領域表現（ｓｐａｔｉａｌ−ｄｏｍａｉｎ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）と呼ばれる。例えば、通常のイメージの形式は、グリッドとして配列された２４ビットカラー画素サンプルのストリームである。それぞれのサンプルは、ＲＧＢ、または特にＹＩＱなどの色空間内のグリッドにおけるピクセル位置の色成分を表す数である。さまざまなイメージおよびビデオシステムは、サンプリングのさまざまな異なる色、空間、および時間の分解能を使用することができる。同様に、デジタルオーディオは、通常、時間サンプリングされたオーディオ信号ストリームとして表される。例えば、典型的なオーディオ形式は、規則正しい時間間隔で抽出したオーディオ信号の１６ビット振幅サンプルのストリームからなる。
【０００３】
未圧縮デジタルオーディオ、イメージ、およびビデオ信号は、記憶領域および伝送容量をかなり消費する可能性がある。変換符号化では、信号の空間領域表現を周波数領域（または他の類似の変換領域）表現に変換し、続いて変換領域表現のいくつかの一般的にあまり目立たない周波数成分の分解能を下げることにより、デジタルオーディオ、イメージおよびビデオのサイズを縮小する。この方法では、一般的に、空間領域内のイメージまたはビデオの色または空間分解能、または時間領域内のオーディオの空間分解能を落とす方法と比較して、デジタル信号に目立った劣化があまり生じない。
【０００４】
より具体的には、図１に示されている典型的なブロック変換符に基づくコーデック１００では、未圧縮デジタルイメージのピクセルを、それぞれのブロックが場合によっては他のブロックとオーバーラップする固定サイズの複数の二次元ブロック（Ｘ１、．．．Ｘｎ）に分割する。空間周波数分析を実行する線形変換１２０〜１２１がそれぞれのブロックに適用され、ブロック内の間隔をあけて並べられているサンプルを、一般的にそのブロック間隔上の対応する周波数帯域内のデジタル信号の強度を表す一組の周波数（または変換）係数に変換する。圧縮するため、変換係数を選択的に量子化し１３０（すなわち、係数値の最下位ビットを落とすか、または他の何らかの手段により高い分解能の数値群の中の値を低い分解能にマッピングすることなどにより分解能を下げられる）、エントロピーまたは可変長を圧縮データストリーム内に符号化することができる。復号化では、変換係数を逆変換し１７０〜１７１、元の色／空間サンプリングイメージ／ビデオ信号をほぼ再構成する（ブロック
【０００５】
【数１】
2006197572.tif 000003
【０００６】
が再構成される）。
【０００７】
ブロック変換１２０〜１２１は、サイズＮのベクトルｘに対する数学演算として定義することができる。最も多い演算は、行列乗算であり、これは、Ｍを変換行列として変換領域出力ｙ＝Ｍｘを生成する。入力データの長さが任意である場合、サイズＮの複数のベクトルにセグメント分割され、ブロック変換がそれぞれのセグメントに適用される。データ圧縮の目的のために、可逆なブロック変換が選択される。すなわち、行列Ｍは逆行列を持つ。多次元では（例えば、イメージおよびビデオの場合）、ブロック変換は、通常、分離可能な演算（ｓｅｐａｒａｂｌｅ  ｏｐｅｒａｔｉｏｎｓ）として実装される。行列乗算は、データのそれぞれの次元（すなわち、行と列）にそって別々に適用される。
【０００８】
圧縮するため、変換係数（ベクトルｙの成分）を選択的に量子化し（すなわち、係数値の最下位ビットを落とすか、または他の何らかの手段により高い分解能の数値群の中の値を低い分解能にマッピングすることなどにより分解能を下げられる）、エントロピーまたは可変長を圧縮データストリーム内に符号化することができる。
【０００９】
復号化器１５０での復号化において、これらの演算の逆演算（逆量子化／エントロピー復号化１６０および逆ブロック変換１７０〜１７１）が、図１に示されているように、復号化器１５０側に適用される。データを再構成している間に、逆行列Ｍ−１（逆変換１７０〜１７１）を乗数として変換領域データに適用する。変換領域データに適用されると、逆変換は、元の時間領域または空間領域デジタル媒体をほぼ再構成する。
【００１０】
多くのブロック変換に基づく符号化アプリケーションでは、量子化係数に応じてロッシー圧縮およびロスレス圧縮の両方をサポートするために変換は可逆であるのが望ましい。例えば、量子化を行わない場合（一般に、量子化係数１で表される）、可逆な変換を使用するコーデックは、復号化時に入力データを正確に再現することが可能である。しかし、これらのアプリケーションにおける可逆性の要件は、コーデックを設計できる変換の選択を制約することになる。
【００１１】
多くのイメージおよびビデオ圧縮システム、特にＭＰＥＧおよびＷｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａなどは、離散的コサイン変換（ＤＣＴ）に基づく変換を利用する。ＤＣＴは、最適に近いデータ圧縮をもたらす好ましいエネルギー圧縮特性を有することが知られている。これらの圧縮システムでは、個別のイメージブロックを再構成するため圧縮システムの符号化器と復号化器の両方の再構成ループ内で逆ＤＣＴ（ＩＤＣＴ）が使用される。ＤＣＴは文献で説明されている（例えば、非特許文献１を参照）。ＩＤＣＴの実装例は文献で説明されている（例えば、非特許文献２を参照）。
【００１２】
可逆な２Ｄデータ圧縮器を実装するために使用される従来のデータ変換には、一般に、以下の主要な欠点のうちの１つまたは複数があった。  
１．複雑なエントロピー符号化のしくみを必要とし、変換係数間でノルムが等しくない  ２．ＤＣＴなどの最適な変換の近似が劣る  
３．計算の複雑さが大きい
【００１３】
（２Ｄ変換の従来の実装）  
分離可能な２Ｄ変換は、通常、データの行に対し１Ｄ変換を実行した後、データの例に対し１Ｄ変換を実行する（またはその逆）ことにより実装される。（例えば、非特許文献３を参照）。行列表記では、Ｔで変換行列を表し、Ｘを２Ｄデータとする。Ｔを持つ分離可能な２Ｄ変換は、以下の式の中のＹにより定義される。
Ｙ＝ＴＸＴｔ    （１）
【００１４】
実際に、行方向および列方向の変換は異なるものとすることができる。例えば、データ行列は、非方形（例えば、４×８のサイズ）、または行方向および列方向の変換は、それぞれＤＣＴおよび離散的サイン変換（ＤＳＴ）とすることが可能である。この場合、左から掛ける乗数と右から掛ける乗数は、異なり（すなわち、Ｔ１およびＴ２）、および変換Ｙは、
【００１５】
【数２】
2006197572.tif 000004
【００１６】
により与えられる。
【００１７】
例えば、図２は、２段階で実装される２Ｄ  ４×４ＤＣＴを示している。第１段では、データ行列の列が、４点（４  ｐｏｉｎｔ）１Ｄ  ＤＣＴを使用して変換される。第２段では、４点１Ｄ  ＤＣＴが行にそって適用される。無限な算術精度では、この順序付けは、出力の変更なしで切り替えることができる。
【００１８】
４点１Ｄ  ＤＣＴは、図３に示されている信号フローグラフで表されるように、４点入力データ値に対する乗算および加算の演算シーケンスとして実装することができる。この図の値ｃおよびｓは、それぞれ、π／８のコサインおよびサインである。分離可能なデータ変換アプローチは、ロッシーコーデックの場合にうまく働く。ロスレスコーデックは、実現がより難しい。単位量子化であっても、分離可能な逆ＤＣＴまたはＩＤＣＴとともに上で説明されている分離可能な２Ｄ  ＤＣＴは、元の入力とビット毎に正確に一致することを保証されない。これは、図３の除数から、符号化器と復号化器との間で無効にならない丸め誤差が生じるためである。
【００１９】
（リフティング）  
ブロック変換に基づくコーデックを使用してロスレス圧縮を実現するためには、上述の４×４２Ｄ  ＤＣＴをロスレス変換で置き換える必要がある。分離可能な変換は、各々の１Ｄ変換がロスレスまたは可逆である場合のみ使用できる。可逆な１Ｄ変換に対し複数の選択が存在するが、「リフティング」に基づく変換は、最も望ましい。リフティングは、連続する「剪断（ｓｈｅａｒ）」を使用して行列−ベクトル乗算を実行するプロセスである。剪断は、オペランドのベクトルと単位行列に１つの非ゼロ非対角要素を加えたものである行列との乗算として定義される。１つまたは複数のベクトル係数の符号反転は、一般性を失うことなく、このプロセスのどこかに置くことができる。
【００２０】
リフティングは、従来、はしご、または格子フィルタ構造を通じて実装されている。グラフィックスでは、リフティングまたは連続剪断に基づく手法が使用されている（例えば、非特許文献４および５を参照）。実際には、ガウスジョルダン消去法は、リフティングの１つの表現であると主張することができる。
【００２１】
単純な２点演算（２  ｐｏｉｎｔ  ｏｐｅｒａｔｉｏｎ）の１つは、アダマール変換であり、これは、変換行列
【００２２】
【数３】
2006197572.tif 000005
【００２３】
により与えられる。リフティングに基づく（可逆な）１Ｄアダマール変換を実装するために、２つのアプローチが一般に使用される。第１のアプローチでは、図４に示されているように、リフティングステップで正規化またはスケールフリーのアダマール変換を実装する。第２のアプローチでは、図５に示されているように、２つの変換係数間でスケールが異なるようにできる。
【００２４】
（リフティングの問題）  
リフティングは、問題なしではない。図４に示されている第１のアダマール変換アプローチでは、２つの変換係数が正規化される。これは、４または８点ＤＣＴなどの多段変換を実現する場合に望ましい。しかし、この実装には、第１に、それぞれの２点アダマール変換は３つの非自明な（すなわち、計算量が多い）リフティングステップを必要とすること、および第２に、リフティングステップの丸め誤差のためローパスエネルギーが高周波項に「漏れ」て圧縮効率が低下するという２つの大きな欠点がある。この第１のアプローチでは、近似式
【００２５】
【数４】
2006197572.tif 000006
【００２６】
および
【００２７】
【数５】
2006197572.tif 000007
【００２８】
を使用することで、ＡＣ基底関数が得られる［０．７５〜０．７１８８］。必要な［０．７０７１  ０．７０７１］からの食い違いは、ひどく大きいようには見えないが、振幅６４のＤＣ信号により、２単位のＡＣ応答を生成し、これが符号化のコストが高い高周波帯域に漏れる。
【００２９】
第２のアプローチ（図５）では、自明なリフティングステップを使用する。しかし、ローパス項は、
【００３０】
【数６】
2006197572.tif 000008
【００３１】
の倍率で大きくされるが、ハイパス項は、
【００３２】
【数７】
2006197572.tif 000009
【００３３】
の倍率で小さくされる（またはその逆）。この２つの係数の分解能の差は１ビットである。２つの次元において、ハイ−ハイ項はロー−ロー項と比べて分解能が２ビットだけ小さい。カスケード変換段は、この食い違いを大きくすることしかしない。エントロピー符号化は、係数の範囲が異なるためより実装が困難である。
【００３４】
要約すると、リフティングに基づくロスレス変換の問題は、以下のとおりである。  
１．より複雑なエントロピー符号化メカニズムにかかわる、変換係数間の等しくないスケーリングの可能性。  
２．ＤＣがＡＣ帯域に漏れるなどの望ましくない影響を引き起こす可能性のある、所望の変換基底関数に対する精度の低い近似。  
３．潜在的に高い計算複雑度、特に、リフティングに基づく実装が所望の変換を適切に近似するように設計されている場合に高い。  
【００３５】
【非特許文献１】N. Ahmed, T. Natarajan, and K.R. Rao, "Discrete Cosine Transform," IEEE Transactions on Computers, C-23 (January 1974), pp. 90-93.
【非特許文献２】"IEEE Standard Specification for the Implementations of 8x8 Inverse Discrete Cosine Transform," IEEE Std 1180-1990, December 6, 1990
【非特許文献３】A. K. Jain, "Fundamentals of Digital Image Processing," Prentice Hall, 1989.
【非特許文献４】A. Tanaka, M. Kameyama, S. Kazama, and O. Watanabe, "A rotation method for raster image using skew transformation," Proc IEEE Conf on Computer Vision and Pattern Recognition, pages 272-277, June 1986
【非特許文献５】A. W. Paeth, "A fast algorithm for general raster rotation," Proceedings of Graphics Interface '86, pages 77-81, May 1986
【発明の開示】
【発明が解決しようとする課題】
【００３６】
デジタル媒体符号化器／復号化器システムは、従来技術による変換の上述した問題点および欠点に向けられる本明細書において説明するさまざまな実装を含む分離可能な２Ｄブロック変換に基づく。特に、分離可能な２Ｄ変換とその逆変換のペアの説明されている実装は、計算複雑度を低くするように一連のリフティングステップを配列したものである（すなわち、多数の非自明な演算を削減する）。この変換ペアは、ＤＣＴに類似したエネルギー圧縮特性を有し、さらにロスレスであり、およびスケールフリーである。「ロスレス（ｌｏｓｓｌｅｓｓ）」という用語は、変換に入力された元の整数値を、量子化なしと仮定して、その整数変換係数から逆変換により誤差なしで復元できることを意味する。「スケールフリー（Ｓｃａｌｅ−ｆｒｅｅ）」は、変換ペアの基底関数が等しくスケーリングされることを意味し、さらにその結果得られる変換行列が直交行列であることをも意味する。
【課題を解決するための手段】
【００３７】
この変換ペアの説明されている１つ実装は、４×４変換としてのものであるが、他のサイズにも拡張できる（例えば、８×８など）。さらに、変換ペアのカスケードを使用して、階層ピラミッドおよびさらに大きな変換を実現することが可能である。例えば、１つの説明されている実装では、２レベルカスケードの変換を使用する。第２の変換段では、変換は、マクロブロック内で生成された１６個のＤＣ係数に適用される。変換はＤＣＴに類似しているので、卓越した速度歪み性能および圧縮効率で、ロスレス−ロッシーデジタル媒体コーデック（すなわち、量子化パラメータをロスレス設定からロッシー設定に変更することができるコーデック）を実現できる。
【００３８】
本発明の他の特徴および利点は、付属の図面を参照しつつ進行する実施形態の以下の詳細な説明から明白になる。
【発明を実施するための最良の形態】
【００３９】
以下の説明は、改良された可逆なスケールフリー２Ｄ変換を使用する、デジタル媒体圧縮システムまたはコーデックに関する。例示のため、改良された変換を組み込む圧縮システムの一実施形態は、イメージまたはビデオ圧縮システムである。あるいはまた、改良された変換は、さらに、他の２Ｄデータ用の圧縮システムまたはコーデックに組み込むことも可能である。変換は、デジタル媒体圧縮システムが特定の符号化形式において圧縮デジタル媒体データを符号化することを必要としない。
【００４０】
（１．符号化器／復号化器）  
図６および７は、後述の改良された可逆なスケールフリー２Ｄ変換６５０に基づく代表的な二次元（２Ｄ）データ符号化器６００および復号化器７００で使用されるプロセスの一般化された図である。図は、２Ｄデータ符号化器および復号化器を組み込んだ圧縮システムにおけるこの変換の使用および適用を一般化された、または簡略化された例示を提供する。この変換に基づく代替の符号化器では、２Ｄデータ圧縮に使用することができるプロセスを、この代表的な符号化器および復号化器で例示されているものに追加することも、減らすこともできる。例えば、いくつかの符号化器／復号化器は、さらに、色変換、色形式、スケーラブル符号化（ｓｃａｌａｂｌｅ  ｃｏｄｉｎｇ）、ロスレス符号化、マクロブロックモードなどを含むことができる。改良された２Ｄ変換では、圧縮システム（符号化器および復号化器）は、ロスレスからロッシーまで変化する量子化パラメータに基づく量子化に応じて、２Ｄデータのロスレスおよび／またはロッシー圧縮を実行することができる。
【００４１】
２Ｄデータ符号化器６００は、符号化器に入力されたとおりに送られる２Ｄデータ６１０のよりコンパクトな表現（典型的な入力の）である圧縮されたビットストリーム６２０を生成する。例えば、２Ｄデータ入力は、イメージ、ビデオシーケンスのフレーム、または２つの次元を持つ他のデータとすることができる。２Ｄデータ符号化器は、入力されたデータを、この代表的な符号化器においてサイズが１６×１６ピクセルである複数のマクロブロックにタイル化する６３０。２Ｄデータ符号化器は、さらに、それぞれのマクロブロックを４×４ブロック６３２にタイル化する。「順オーバーラップ（ｆｏｒｗａｒｄ  ｏｖｅｒｌａｐ）」演算子６４０は、ブロック間のそれぞれのエッジに適用され、その後、それぞれの４×４ブロックが可逆なスケールフリー変換６５０を使用して変換される。その後、それぞれの４×４変換ブロックのＤＣ係数６６０に対し、類似の処理連鎖（タイリング、順オーバーラップ、その後４×４ブロック変換）が適用される。その結果得られるＤＣ変換係数およびＡＣ変換家因数は、量子化６７０され、エントロピー符号化６８０され、パケット化６９０される。
【００４２】
復号化器は、逆プロセスを実行する。復号化器側では、それぞれのパケットから変換係数ビットが抽出７１０され、そこから係数がそれ自体復号化７２０され、逆量子化７３０される。ＤＣ係数７４０は、逆変換を適用することにより再生成され、ＤＣ係数の平面は、ＤＣブロックエッジ間に適用される適当な平滑化演算子を使用して「逆オーバーラップ」される。その後、データ全体が、４×４逆変換７５０をＤＣ係数に適用することにより再生成され、ＡＣ係数７４２がビットストリームから復号化される。最後に、その結果得られるイメージ平面内のブロックエッジが逆オーバーラップ７６０によりフィルタ処理される。これは、再構成された２Ｄデータ出力を生成する。
【００４３】
（２．改良された可逆なスケールフリー変換の実装）  
非特許文献３で説明されているように、分離可能な２Ｄ変換は、同様の順序付けされたベクトルの結果を生成する、１Ｄにおいて順序付けされたデータに作用する１Ｄ変換として実装することができる。等しい変換行列は、分離可能な場合に使用される左および右から掛ける乗数のクロネッカー積により生成される。ｘおよびｙが（２）でその２Ｄ表現から順序を変更して得られるデータおよび変換ベクトルを表す場合、その関係は、
ｙ＝Ｔｘ    （３）  
で与えられるが、ただし、  
Ｔ＝Ｋｒｏｎ（Ｔ１，Ｔ２）  
である。
【００４４】
式（２）で示されている２Ｄ変換分離可能な実装は式（３）よりも計算効率が高いが（漸近的意味で）、後者の表現のほうが望ましい特性を持つ場合もある。例えば、式（３）に基づく実装は、単一段行列乗算（本質的に複数のデジタルシグナルプロセッサ（ＤＳＰ）上でサポートされる演算）のため、式（２）よりも低い待ち時間を持つ。本明細書で説明されている改良された可逆なスケールフリー変換については、２×２ステップの１Ｄ表現により、スケールフリーの可逆な構造が得られる。
【００４５】
さらに、分離可能な２Ｄ変換は、より単純な１Ｄ変換のカスケードとして実装することができる。変換行列Ｔ１およびＴ２は以下のように分解できると仮定する。  
Ｔ１＝Ｔ１ＡＴ１Ｂ 
Ｔ２＝Ｔ２ＡＴ２Ｂ    （４）
行列乗算演算の結合性を使用して、２Ｄ変換（２）を  
【００４６】
【数８】
2006197572.tif 000010
【００４７】
のように順序変更し、カスケード化された１Ｄ実装  
ｙ＝Ｋｒｏｎ（Ｔ１Ａ，Ｔ２Ａ）・Ｋｒｏｎ（Ｔ１Ｂ，Ｔ２Ｂ）・ｘ    （６）  
を得ることができる。
【００４８】
ＤＣＴなどの変換は、基本的な２点回転演算のカスケードとして定式化することができる。２Ｄ  ＤＣＴは、先に詳述される、いくつかの望ましい特性を持つように（６）の構造を使用して定式化することができる。
【００４９】
（Ａ．２Ｄアダマール変換）  
２Ｄアダマール変換は、１Ｄ演算として実装され、クロネッカー積
【００５０】
【数９】
2006197572.tif 000011
【００５１】
により生成される。
【００５２】
自明なリフティングステップのみを使用して、式（７）に対応するスケールフリーの可逆な変換を実現することが可能であることは興味深い。この形式の実装は、図８に信号フローグラフ８００として示されている。いくつかの冗長な演算をなくした対応するＣ＋＋コードは、図９に示されている。このコードリスト９００では、「ｓｗａｐ（ｘ，ｙ）」は引数の値を入れ換える関数である。
【００５３】
上述のことから、正規化された可逆な２Ｄアダマール変換は、自明なリフティングステップのみを使用して定式化できるが、これは、おそらく「より単純な」１Ｄアダマールの場合に対しては可能でない。変換行列それ自体はインボリュートリ（ｉｎｖｏｌｕｔｏｒｙ）（すなわち、ＴＨはそれ自体の逆変換）であるが、ロスレス再構成では、丸めの効果を正確に再現するようにリフティングステップを慎重に反転する必要がある。図８の構造８００の逆１０００は、図１０に示されている。構造１０００は、この場合における順変換と同じである。変換係数ＢおよびＣは、信号フローグラフにおいて順序変更されることに注意されたい。
【００５４】
図６の符号化器６００における可逆なスケールフリー２Ｄ変換６５０では、４×４  ＤＣＴへの近似を使用する。以下の説明では、変換６５０の変換プロセス全体を、２×２アダマール変換である３つの基本的な２×２変換演算のカスケード、および以下の式で、実現できることを実証している。  
【００５５】
【数１０】
2006197572.tif 000012
【００５６】
ただし、２点回転行列ＴＲは以下の式で与えられる。
【００５７】
【数１１】
2006197572.tif 000013
【００５８】
式（８）の１Ｄ実装は、左および右から掛ける変換行列（小数点以下４桁の小数に近似）
【００５９】
【数１２】
2006197572.tif 000014
【００６０】
および
【００６１】
【数１３】
2006197572.tif 000015
【００６２】
のクロネッカー積を計算することにより得られる。キャレット＾は所望の変換行列を表す。実際の実装からの結果として得られる近似は、キャレットを伴わない。２×２アダマール変換では、所望の変換行列およびその近似は同じである。したがって、ＴＨは、明確さを失うことなく、１Ｄで実装される２×２アダマール変換を表すために使用される。次に、ＴｏｄｄおよびＴｏｄｄ−ｏｄｄのリフティング実装を調べる。
【００６３】
（Ｂ．Ｔｏｄｄの実装）  
Ｔｏｄｄ変換１１００のスケールフリーのリフティングに基づく実装は、図１１では信号フローグラフとして、図１２ではＣ＋＋コードプログラムリスト１２００において示される。最初および最後のリフティング段階は、アダマール変換の場合と同じであることがわかる。自明な剪断のほかに、２つの非自明なリフティング回転は、中間段階で適用される。各々の非自明な回転は、３を掛け、および３または４ビットだけビットシフトする、３ステップにおいて実装される。したがって、Ｔｏｄｄは、６つの非自明なリフティングステップを使用することにより可逆なスケールフリーの方法において実現できる。
【００６４】
結果である１Ｄ変換行列Ｔｏｄｄは、以下の（１２）に示されており、これは、（１０）の
【００６５】
【数１４】
2006197572.tif 000016
【００６６】
の元の定式化によく一致している。その結果得られる変換行列の第２および第４の行の和は０となり、ＤＣはＡＣ帯域に漏れないことを意味していることがわかる。この望ましい特性が達成されるが、必要な２Ｄ回転が構造において単に近似されるだけである。
【００６７】
【数１５】
2006197572.tif 000017
【００６８】
変換行列Ｔｏｄｄはインボリュートリ（すなわち、それ自体の逆変換）であるが、丸め誤差は、信号フローグラフまたはコードの２回連続適用で消えない。Ｔｏｄｄのロスレス逆変換は、信号フローグラフまたはＣ＋＋コードのいずれかでリフティングステップを反転することにより導かれ、順変換側の丸め誤差を複製する。Ｔｏｄｄの逆変換１３００の信号フローグラフは、図１３に示されている。コードも同様に導くことができる。
【００６９】
（Ｃ．Ｔｏｄｄ−ｏｄｄの実装）  
Ｔｏｄｄ−ｏｄｄ変換１４００は、２つの回転からなるが、いずれもアダマール変換ではない。Ｔｏｄｄ−ｏｄｄは、Ｔｏｄｄよりも少ない非自明なリフティングステップで実現できることは興味深い。これは、ＴＲとそれ自身とのクロネッカー積の対称特性によるものである。Ｔｏｄｄ−ｏｄｄ変換１４００の信号フローグラフおよびそのＣ＋＋コード実現のプログラムリスト１５００がそれぞれ図１４および１５に示されている。
【００７０】
Ｔｏｄｄ−ｏｄｄを実現するために、３つの非自明なリフティングステップにより実装される１つの非自明な回転のみが必要であることがわかる。この回転は、スケールフリー１Ｄ  ２点アダマール変換に対応する。  
【００７１】
【数１６】
2006197572.tif 000018
【００７２】
ここで考察されている他の変換と同様、式（１３）で表されているようなＴｏｄｄ−ｏｄｄはインボリュートリであるが、それ自体のビット毎に正確な逆変換ではない。Ｔｏｄｄ−ｏｄｄのロスレス逆変換１６００は、図１６に示されているように、順変換に使用される信号フローグラフを反転することにより得られる。
【００７３】
（Ｄ．上記の２×２変換実装の表記および導き方）  
これらの３つの可逆なスケールフリー変換を使用した可逆なスケールフリー２Ｄ変換の説明では、以下の点が適用される。第１に、上記信号フローグラフおよびＣ＋＋コードで得られる２×２データの順序付け１７００は、図１７に示されているとおりである。空間領域点は、左に示され、対応する周波数領域点は、右に示されている。４つのデータ点を示すために４つの灰色レベルを使用するカラーコーディングをここで導入し、以下の可逆なスケールフリー２Ｄ変換の説明をわかりやすくする。
【００７４】
多くの場合、２点変換または回転は、以下の演算  
【００７５】
【数１７】
2006197572.tif 000019
【００７６】
として定義され、インボリュートリ形式
【００７７】
【数１８】
2006197572.tif 000020
【００７８】
として定義されない。
【００７９】
これら２つの形式は、第２の変換係数の符号が異なるだけなので、本質的に同じである。本明細書では、後者の表現（１５）が使用されているが、本明細書の導出全体は、等しく、前者の形式（１４）にも適用可能である。
【００８０】
上で定義されている基本的な２×２変換、ＴＨ、Ｔｏｄｄ、およびＴｏｄｄ−ｏｄｄの構造は、各々の２点変換が回転であることに注意して構成される。さらに、２つの２点回転のクロネッカー積は以下の式で与えられる。
【００８１】
【数１９】
2006197572.tif 000021
【００８２】
次に、演算子Ｈを以下のように定義する。  
【００８３】
【数２０】
2006197572.tif 000022
【００８４】
Ｈは非正規化二重バタフライ演算を表しており、およびリフティングを使用して効率よく実装することができる。
【００８５】
以下の因数分解が成立する。  
【００８６】
【数２１】
2006197572.tif 000023
【００８７】
これに基づき、型Ｔのクロネッカー積は、以下の３段階のカスケードとして実装することができる。  
Ａ．リフティングステップを使用してＨにより定義される二重バタフライ演算。  
Ｂ．成分の第１のペアの間、および成分の第２のペアの間の２点回転。  
Ｃ．ステップａで実行される二重バタフライの反転。
【００８８】
特別な場合のＴＨでは、よりいっそう単純な分解が存在し、これは、図８の信号フローグラフとして示され、上で説明されている。他の場合（例えば、ＴｏｄｄおよびＴｏｄｄ−ｏｄｄ）では、その結果の構造は、図２５に示されているフローグラフ２５００として一般化することができる。
【００８９】
上述の変換（およびその逆変換）の３つの信号フローグラフを調べると、その構造の中に基本的な類似性が見つかる。変換の第１段は、ａ−ｄとｂ−ｃ係数との間のリフティング演算である。同様に、最終段は、逆リフティングプロセスである（符号および係数交換を無視する）。それに対応して、逆変換の第１段は、ＡとＤとの間のリフティング演算、さらに、ＢとＣとの間のリフティング演算であり、反転演算は最終段である。対角要素間のリフティングステップは、ここで示されている組み合わされた２Ｄ  ２×２変換の際立った特徴である。
【００９０】
次の節では、４×４  ＤＣＴ／ＩＤＣＴを近似する、ロスレススケールフリー変換の構成について説明する。この変換の実施例はこの詳細な技術説明において示されているが、他の２×２の基本的な可逆なリフティングに基づく変換の追加定義とともに同じ手順を使用して、望ましい特性を有するさらに高次元の可逆な変換実施形態を生成することができる。
【００９１】
（Ｅ．ロスレススケールフリー変換）  
４点ＤＣＴは、図３の信号フローグラフに示されているように４つのバタフライ演算のシーケンスに換算することができる。第１段は、２点アダマール演算を入力データに対し実行する２つのバタフライ演算からなる（すなわち、入力データのインデックスが０および３の第１の２点アダマール、および入力インデックスが１および２の第２のもの）。第２段は、偶数周波数成分（インデックス０および２）を生成する第１段のローパス結果に対する２点アダマール演算、および奇数周波数成分（インデックス１および３）を生成するπ／８の２点回転を含む。
【００９２】
２つの次元において、ＤＣＴは、別々に実装することができ、まず、４×４入力データの各々の列の垂直１Ｄ  ４点ＤＣＴ、次に、その行の水平１Ｄ  ４点ＤＣＴ（またはその逆）の順に行う。これは、図１８で分離可能なＤＣＴ実装１８００として示されている。それとは別に、上述の２つの１Ｄ  ＤＣＴ段は、図１９のインターリーブされたＤＣＴ実装１９００として示されているように、式（５）の理論を使用して、水平と垂直との間でインターリーブすることができる。
【００９３】
さらに、上述のアプローチに従った場合、対応する水平段および垂直段をさらに組み合わせることができる。例えば、第１段は、「内側」および「外側」入力要素に対する２点アダマール変換である。水平および垂直段をマージして、１６個の入力データ要素に２×２  ２Ｄアダマール変換を４回適用するようにでき、各々の変換は、対称的な入力点の集合に適用される。同様に、第２の段の水平および垂直ステップを合体して、１つの２×２アダマール変換と３つの２×２変換とにすることができ、そのうち２つは転置行列である。後者の３つの２×２変換は、実際には前のほうで定義されたＴｏｄｄおよびＴｏｄｄ−ｏｄｄの２Ｄ再マッピングである。
【００９４】
より具体的には、可逆なスケールフリー２Ｄ変換６５０（図６）は、変換演算を２×２アダマール、ＴｏｄｄおよびＴｏｄｄ−ｏｄｄ変換の配列にそのように再配列することにより実装される。この変換６５０の２つの段は、それぞれ、図２０および２１に示されているように実行される。各々の段は、任意の順序で、または同時に、その段の中で、実行できる４つの２×２変換からなる。
【００９５】
２Ｄ逆変換７５０（図７）では、それらの段は、順序を逆にされ、および変換の各々の段内のステップでは、ステップの逆を順変換プロセスで使用する。上に指摘したように、可逆な２×２アダマール変換ＴＨは、ビット毎に正確であるという意味で、またはロスレスの意味で、自己逆変換である。したがって、逆フォトン変換の第２段は、図２０に示されているように、順フォトン変換の単に第１段にすぎない。逆フォトン変換の第１段２２００は、図２２に示されている。この段の中の４つのステップ（順変換の場合については、任意の順序または同時に実行できる）は、前のほうで定義されているようにＴＨ、Ｔｏｄｄ、およびＴｏｄｄ−ｏｄｄの逆変換を適用し、２Ｄ  ２×２空間に再マッピングで戻される。
【００９６】
図２０および２１で示されている改良された順２Ｄ変換のステップに続いて、その結果得られる変換係数は図２３に示されているように順序付けされる。同じ順序付け２３００が、その順序で図２２および２０のステップを使用して逆変換される係数について仮定される。
【００９７】
順２Ｄ変換６５０の上述の改良された実装では、ＴＨを５回、Ｔｏｄｄを２回、Ｔｏｄｄ−ｏｄｄを１回、それぞれの４×４ブロックに適用する。これらの変換を同じ回数だけ適用することは、逆２Ｄ変換７５０の実装に伴う。したがって、非自明なリフティングステップの総数は、それぞれのブロックについて５×０＋２×６＋１×３＝１５であり、ロスレス順または逆２Ｄ変換を実現する。これは、ピクセル毎に１個程度の非自明なステップである。非自明なステップは、（３×ｘ＋ｒ）＞＞ｋの形式の演算であり、ただし、ｘはオペランド、ｒおよびｋは、丸めおよびビットシフトを決定する定数である。ｋは、２、３、または４のいずれかである。同様に、ブロック毎に１桁右シフト（すなわち、ｘ＞＞１）が１７回実行される。加算、減算、およびマイナス（ｎｅｇａｔｉｏｎ）は、本概要において含めない。
【００９８】
比較として、図１８に例示されている２Ｄ  ＤＣＴの分離可能な実装１８００を考察する。各々の４点ＤＣＴは、図３に示されているように３つの２点正規化アダマール演算を使用して実装され、およびπ／８の回転は、３つの非自明なリフティングステップを使用して実装されることを仮定する。順変換または逆変換のいずれかに対する４×４ブロック毎の非自明なリフティング演算の総数は、２×４×３＝２４である。１桁右シフトの総数も２４である。これらの数値は、結果として得られる変換はノルムが１／４から２まで（または無理数範囲の基底関数を回避する場合には４まで）の範囲である基底関数を生成するという事実を考慮せずに、改良された順変換６５０および逆変換７５０の実装よりも約５０％高い。対照的に、改良された変換６５０のすべての基底関数は単位ノルムである。
【００９９】
（Ｆ．４：２：０色空間に対する改良された変換）  
符号化器６００（図６）および復号化器７００（図７）の一実施例では、ＹＵＶ  ４：２：０色空間を使用して、イメージ（またはビデオフレーム）内のピクセルの色を表現する。このコーデックの実施例では、ＹＵＶ  ４：２：０色空間におけるマクロブロックは、輝度（Ｙ）チャネルにおける１６×１６タイル、およびクロミナンス（ＵおよびＶ）チャネルにおける８×８タイルとして定義される。これらは、さらに、上述の変換６５０を使用して符号化された変換である４×４ブロックに分割される。４×４変換６５０は、輝度チャネルのＤＣ係数に適用される。しかし、マクロブロック内ではクロミナンスの２×２サンプルしか使用できない。次に、コーデックの実施例では、上述しているように可逆なスケールフリー２×２アダマール変換であるＴＨを各々のマクロブロック内のＤＣクロミナンス値に適用する。したがって、コーデック形式の実施例のマクロブロック構造は保存され、および４：２：０形式を取り扱うためにコーデックに追加変換を導入する必要はない。
【０１００】
（Ｇ．丸め誤差の最小化）  
丸め誤差は、右ビットシフトを伴うＴＨ、Ｔｏｄｄ、Ｔｏｄｄ−ｏｄｄ変換のリフティングステップに導入される。これらの丸め誤差は、知られているバイアスを持ち、および変換の過程で蓄積する可能性がある。例えば、ｘ＋＝（ｙ＞＞１）という形式のステップは、数学的に同等な式ｘ：＝ｘ＋ｙ／２と比較してｘの値に−１／４のバイアスが入る。これは、（ｙ＞＞１）は切り捨てられる２による除算であり、ｙが偶数であれば正確な値であり、ｙが奇数であれば１／２だけ離れる。したがって、確率論的に、これは−１／４だけバイアスされる。丸め誤差は、リフティングを伴う整数−整数変換には不可避であるが、システム全体ではバイアスを最小限に抑えることが望ましい。
【０１０１】
上でＣ＋＋コードスニペットとして示されているＴＨ、Ｔｏｄｄ、およびＴｏｄｄ−ｏｄｄの定式化は、除算される、または右ビットシフトされるオペランドにさまざまな因子を加える。これらの因子は、バイアスを最小にするように選択される。特に、図９のＣ＋＋コードリスト９００を使用する（未バイアス入力への）ＴＨの第１段演算の後４つの変換係数のバイアスは、［１／４  −１／４  −１／４  −１／４］であることを示すことができる。改良された２Ｄ変換６５０（図６）でのＴＨの第２段の適用は、第１段のＤＣ値、すなわち、すでに１／４にバイアスされている係数に作用する。第２段の演算の結果から、［３／４  −１／４  −１／４  −１／４］のバイアスが生成される。第１の係数はＤＣのＤＣであるため、大きいことが予想され、また３／４の比較的高いバイアスは、コーティング性能に影響を及ぼさない。
【０１０２】
ＴｏｄｄおよびＴｏｄｄ−ｏｄｄの非自明なリフティングステップは、変換バイアスを最小にする丸め係数を選択する自由度がある。Ｔｏｄｄ−ｏｄｄに対するＣ＋＋コードリスト１５００（図１５）は、ときには中心外れ丸め規則（ａ＋＝（３ｂ＋５）＞＞３など）によりバイアス全体が小さくなり、特に入力データがそれ自体バイアスされている場合にはそうであることを示している。改良された２Ｄ変換ステップＴｏｄｄおよびＴｏｄｄ−ｏｄｄでは、すべての入力は−１／４にバイアスされる。
【０１０３】
通常、コーデックの定義は、ビットストリームの復号化器の定義に制限される。符号化器および復号化器は入力データが損失なしで再構成されることを完全に見張っていなければならないため、この規則の例外はロスレスコーデックに対してのものである。これは、ロッシー−ロスレスコーデックの場合、符号化器と復号化器の両側で定義される。しかし、符号化器が純粋にロッシーモードで動作する場合、コーデックの仕様で定義されているようなベースラインの性能よりも（速度歪み、または計算サイクルカウントに関して）よい性能を発揮できる何らかのショートカットまたは機能強化を可能にする。
【０１０４】
符号化器の性能を改善する１つの手段は、係数バイアスの変換に関係する。各々の４×４ブロックに対して、以下の手順を実行することにより符号化器６００／復号化器７００のいくつかの実施形態におけるバイアスの影響を低減することが可能である。  
１．ｍ＝２ｋ（通常は、ｍ＝４で十分）を掛けて４×４ブロックをスケールアップする。  
２．ブロックに対し改良された２Ｄ変換６５０を実行する。  
３．元の所望の量子化パラメータのｍ倍である量子化器を使用してブロックを量子化する（例えば、３２の量子化係数（ＱＰ）を、ステップ１で所望のＱＰが８、ｍ＝４であれば使用する）。
【０１０５】
復号化器７００側に変化はなく、その上よいのはＰＳＮＲ数が同じビットレートで可能である。もちろん、これは、ロスレス符号化については機能しない。
【０１０６】
（３．コンピューティング環境）  
改良された可逆なスケールフリー２Ｄ変換を使用する上述のコーデックは、とりわけ、コンピュータ、イメージおよびビデオ記録、伝送および受信機器、携帯型ビデオプレーヤ、ビデオ会議装置などを含む、デジタル媒体信号処理が実行されるさまざまなデバイスのどれかで実行することができる。デジタル媒体符号化技術は、ハードウェア回路だけでなく、図２４に示されているようなコンピュータまたはその他のコンピューティング環境内で実行中のデジタル媒体処理ソフトウェアで実装することができる。
【０１０７】
図２４は、説明されている実施形態を実装できる好適なコンピューティング環境（２４００）の一般化された実施例を例示している。本発明は多様な汎用または専用コンピューティング環境に実装できるため、コンピューティング環境（２４００）は、本発明の使用または機能性の範囲に関する制限を示唆する意図はない。
【０１０８】
図２４を参照すると、コンピューティング環境（２４００）は、少なくとも１つの処理ユニット（２４１０）およびメモリ（２４２０）を備える。図２４で、この最も基本的な構成（２４３０）は、破線で囲まれている。処理ユニット（２４１０）は、コンピュータ実行可能命令を実行し、実プロセッサでも、仮想プロセッサでもよい。マルチプロセッシングシステムでは、処理能力を高めるため、複数の処理ユニットがコンピュータ実行可能命令を実行する。メモリ（２４２０）は、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭなど）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなど）、またはこれら２つの何らかの組み合わせとすることができる。メモリ（２４２０）は、説明されている符号化器／復号化器および変換を実装するソフトウェア（２４８０）を格納する。
【０１０９】
コンピューティング環境には、機能を追加することができる。例えば、コンピューティング環境（２４００）は、記憶装置（２４４０）、１つまたは複数の入力装置（２４５０）、１つまたは複数の出力装置（２４６０）、および１つまたは複数の通信接続（２４７０）を含む。バス、コントローラ、またはネットワークなどの相互接続メカニズム（図に示されていない）は、コンピューティング環境（２４００）のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア（図に示されていない）は、コンピューティング環境（２４００）内で他のソフトウェアを実行するためのオペレーティング環境を提供し、コンピューティング環境（２４００）のコンポーネントの活動を調整する。
【０１１０】
記憶装置（２４４０）は、取り外し可能であるか、または取り外し不可能であり、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、または情報を格納するために使用することができ、コンピューティング環境（２４００）内でアクセスできるその他の媒体を含む。記憶装置（２４４０）は、改良されたＳＤＬＴによりコーデックを実装するソフトウェア（２４８０）の命令を格納する。
【０１１１】
入力装置（２４５０）は、キーボード、マウス、ペン、またはトラックボールなどの接触入力装置、音声入力装置、スキャニングデバイス、またはコンピューティング環境（２４００）に入力を行う他のデバイスとすることができる。オーディオについては、入力装置（２４５０）は、サウンドカードまたは、アナログまたはデジタル形式のオーディオ入力を受け入れる類似のデバイス、またはコンピューティング環境にオーディオサンプルを供給するＣＤ−ＲＯＭリーダーとすることができる。出力装置（２４６０）は、表示装置、プリンタ、スピーカ、ＣＤライター、またはそのコンピューティング環境（２４００）からの出力を供給する他のデバイスとすることができる。
【０１１２】
通信接続（２４７０）では、通信媒体を介して、他のコンピューティングエンティティと通信することが可能である。通信媒体は、コンピュータ実行可能命令、圧縮オーディオまたはビデオ情報、またはその他のデータなどの情報を変調データ信号で伝達する。変調データ信号は、信号内の情報を符号化する方法によりその特性のうち１つまたは複数が設定または変更された信号である。例えば、限定はしないが、通信媒体は、電気的搬送波、光学的搬送波、ＲＦ搬送波、赤外線搬送波、音響搬送波、またはその他の搬送波により実装された有線または無線技術を含む。
【０１１３】
本明細書のデジタル媒体処理技術は、コンピュータ可読媒体の一般的な文脈において説明することができる。コンピュータ可読媒体は、コンピューティング環境内でアクセスできる入手可能な媒体である。例えば、限定はしないが、コンピューティング環境（２４００）では、コンピュータ可読媒体は、メモリ（２４２０）、記憶装置（２４４０）、通信媒体、およびこれらのどれかの組み合わせを含む。
【０１１４】
本明細書のデジタル媒体処理技術は、ターゲットの実または仮想プロセッサ上のコンピューティング環境で実行される、プログラムモジュールに含まれるような、コンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含む。プログラムモジュールの機能は、さまざまな実施形態で望まれているように、組み合わせたり、または複数のプログラムモジュールに分割したりすることができる。プログラムモジュールのコンピュータ実行可能命令は、ローカルまたは分散コンピューティング環境内で実行することができる。
【０１１５】
提示するため、詳細な説明では、「決定する」、「生成する」、「調整する」、および「適用する」のような用語を使用して、コンピューティング環境におけるコンピュータのオペレーションを説明する。これらの用語は、コンピュータにより実行されるオペレーションの高水準の抽象化であり、人間が実行する行為と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装によって異なることがある。
【０１１６】
本発明の原理を適用できる多くの可能な実施形態の観点において、特許請求の範囲および均等に属する範囲および精神に収まりうるすべての実施形態を本発明として請求する。
【図面の簡単な説明】
【０１１７】
【図１】従来技術において従来のブロック変換に基づくコーデックのブロック図である。
【図２】従来技術において２段に実装される２Ｄ  ４×４  ＤＣＴのブロック図である。
【図３】従来技術において１Ｄ  ４×４  ＤＣＴの信号フローグラフの図である。
【図４】従来技術において正規化された２点アダマール変換の信号フローグラフの図である。
【図５】従来技術において自明な２点アダマール変換の信号フローグラフの図である。
【図６】改良された可逆な２Ｄ変換に基づく符号化器のフロー図である。
【図７】改良された可逆な２Ｄ変換に基づく復号化器のフロー図である。
【図８】可逆な２×２アダマール変換の正規化されたリフティングに基づく実装の信号フローグラフの図である。
【図９】図８の正規化された可逆な２×２アダマール変換を実現するＣプログラミング言語のプログラムリストの図である。
【図１０】図８の正規化された可逆な２×２アダマール変換の逆変換の信号フローグラフの図である。
【図１１】Ｔｏｄｄ変換の正規化されたリフティングに基づく実装の信号フローグラフの図である。
【図１２】図１１の正規化されたＴｏｄｄ変換を実現するＣプログラミング言語のプログラムリストの図である。
【図１３】図１１のＴｏｄｄ変換の逆変換の正規化されたリフティングに基づくバージョンの信号フローグラフの図である。
【図１４】Ｔｏｄｄ−ｏｄｄ変換の正規化されたリフティングに基づく実装の信号フローグラフの図である。
【図１５】図１４の正規化されたＴｏｄｄ−ｏｄｄ変換を実現するＣプログラミング言語のプログラムリストの図である。
【図１６】図１４のＴｏｄｄ−ｏｄｄ変換の逆変換の正規化されたリフティングに基づくバージョンの信号フローグラフの図である。
【図１７】変換および逆変換演算の本明細書の図における２×２データの順序付けを例示する図である。
【図１８】４×４データ入力のそれぞれ列および行に適用される１Ｄ垂直ＤＣＴおよび１Ｄ水平ＤＣＴとして別々に実装される２Ｄ  ＤＣＴを例示する信号フローグラフの図である。
【図１９】２段における水平および垂直変換演算をインターリーブすることにより実装される可逆なスケールフリー２Ｄ変換を例示する信号フローグラフの図である。
【図２０】図６の符号化器における改良された可逆な２Ｄ変換の実装の第１段において図８の２×２アダマール変換を適用する４×４データブロックの点を例示する図である。
【図２１】図６の符号化器における改良された可逆な２Ｄ変換の実装の第２段において図８の２×２アダマール変換、図１１のＴｏｄｄ変換、および図１４のＴｏｄｄ−ｏｄｄ変換を適用する４×４データブロックの点を例示する図である。
【図２２】図７の復号化器における２Ｄ逆変換の実装の第１段において図８の２×２アダマール変換、図１１のＴｏｄｄ変換、および図１４のＴｏｄｄ−ｏｄｄ変換を適用する４×４変換係数ブロックの点を例示する図である。
【図２３】図６の符号化器および図７の復号化器における２Ｄ順変換および２Ｄ逆変換に対する変換係数の順序付けを例示する図である。
【図２４】図６および７の改良された空間領域重複変換によりブロック変換に基づくコーデックを実装するのに適したコンピューティング環境のブロック図である。
【図２５】図１１および１４に示す可逆な２×２変換の正規化されたリフティングに基づく実装に関する構造の信号フローグラフの図である。
【符号の説明】
【０１１８】
１９００  インターリーブされたＤＣＴ実装
【図１】
2006197572.tif 000027
【図２】
2006197572.tif 000028
【図３】
2006197572.tif 000029
【図４】
2006197572.tif 000030
【図５】
2006197572.tif 000031
【図６】
2006197572.tif 000032
【図７】
2006197572.tif 000033
【図８】
2006197572.tif 000034
【図９】
2006197572.tif 000035
【図１０】
2006197572.tif 000036
【図１１】
2006197572.tif 000037
【図１２】
2006197572.tif 000038
【図１３】
2006197572.tif 000039
【図１４】
2006197572.tif 000040
【図１５】
2006197572.tif 000041
【図１６】
2006197572.tif 000042
【図１７】
2006197572.tif 000043
【図１８】
2006197572.tif 000044
【図１９】
2006197572.tif 000045
【図２０】
2006197572.tif 000046
【図２１】
2006197572.tif 000047
【図２２】
2006197572.tif 000048
【図２３】
2006197572.tif 000049
【図２４】
2006197572.tif 000050
【図２５】
2006197572.tif 000051