(57)【特許請求の範囲】
【請求項１】
プロパティ値を有する複数の画素（４０）を含む画像（１）を圧縮する方法であって、
前記画像（１）を複数のスーパーブロック（２０、２２）に分解するステップと、
ここで、スーパーブロック（２０、２２）はＮ個の画素ブロック（３０Ａ−３０Ｄ，３２Ａ−３２Ｄ）で構成され、各画素ブロックは複数の画素（４０）で構成され、Ｎは２以上の整数である；
目標ビット長を有する圧縮ブロックを取得するため、前記スーパーブロック（２０）のプロパティ値を固定レート圧縮するステップと、
前記スーパーブロック（２０）が包含する前記Ｎ個の画素ブロックに割り当てられたメモリロケーション（３１０、３２０）に、前記圧縮ブロックのＮ個のコピーを取得するために、前記圧縮ブロックを割り当てるステップとを有し、
前記圧縮ブロックのＮ個のコピーの集合が、前記スーパーブロック（２０）の圧縮表現を構成することを特徴とする方法。
【請求項２】
前記圧縮ブロックがＮ個の画素ブロック（３０Ａ〜３０Ｄ）に適用可能であることを示す第１の値を有するモード識別子を前記圧縮ブロックに割り当てるステップを更に含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のスーパーブロック（２０、２２）のうちの少なくとも他方のスーパーブロック（２２）に対して、
前記他方のスーパーブロック（２２）を、複数の画素（４０）のＮ個の画素ブロック（３２Ａ〜３２Ｄ）に分解するステップと、
前記目標ビット長を有する圧縮ブロックを取得するため、画素ブロック（３２Ａ〜３２Ｄ）のプロパティ値を固定レート圧縮するステップと、
前記圧縮ブロックを、前記画素ブロックに割り当てられたメモリロケーションに割り当てるステップと、
ここで、前記圧縮ブロックのＮ個のコピーの集合が、前記他方のスーパーブロック（２２）の圧縮表現を構成する
を更に有することを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記圧縮ブロックの前記Ｎ個のコピーを含む前記スーパーブロック（２０）の前記プロパティ値を表現を示す誤差計測値を判定するステップと、
前記誤差計測値が最大誤差閾値を上回る場合、
前記スーパーブロック（２０）を、複数の画素（４０）を有する前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）に分解するステップと、
前記スーパーブロック（２０）の前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）の画素ブロック（３０Ａ〜３０Ｄ）毎に、
前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック（３０Ａ〜３０Ｄ）のプロパティ値を固定レート圧縮するステップと、
前記画素ブロック（３０Ａ〜３０Ｄ）に対して割り当てられたメモリロケーション（３１０、３２０）に前記圧縮ブロックを割り当てるステップとを更に有し、
前記メモリロケーション（３１０、３２０）における前記Ｎ個の圧縮ブロックの集合が、前記スーパーブロック（２０）の前記圧縮表現を構成することを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記圧縮ブロックが１個の画素ブロック（３０Ａ〜３０Ｄ）に適用可能であることを示す第２の値を有するモード識別子を、前記Ｎ個の圧縮ブロックの各圧縮ブロックに割り当てるステップを更に有することを特徴とする請求項３又は４に記載の方法。
【請求項６】
前記圧縮ブロックの前記Ｎ個のコピーを含む前記スーパーブロック（２０）の前記プロパティ値を表現することを示す第１の誤差計測値を判定するステップと、
前記スーパーブロック（２０）を、複数の画素（４０）を有する前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）に分解するステップと、
前記スーパーブロック（２０）の前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）の画素ブロック（３０Ａ〜３０Ｄ）毎に、
前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック（３０Ａ〜３０Ｄ）のプロパティ値を固定レート圧縮するステップと、
前記画素ブロック（３０Ａ〜３０Ｄ）に対して割り当てられたメモリロケーション（３１０、３２０）に前記圧縮ブロックを割り当てるステップと、
ここで、前記メモリロケーション（３１０、３２０）における前記Ｎ個の圧縮ブロックの集合が、前記スーパーブロック（２０）の前記圧縮表現を構成する；
前記Ｎ個の圧縮ブロックを含む前記スーパーブロック（２０）の前記プロパティ値を表現を示す第２の誤差計測値を判定するステップと、
前記第１の誤差計測値及び前記第２の誤差計測値に基づいて、前記圧縮ブロックの前記Ｎ個のコピー及び前記Ｎ個の圧縮ブロックのうちの１つを選択するステップと
を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の方法。
【請求項７】
メモリ（３００）に格納された複数の圧縮ブロックにより表わされる画像（５）を復号する方法であって、
前記メモリ（３００）から圧縮ブロックを取り出すステップと、
複数のプロパティ値を取得するために前記圧縮ブロックを伸張するステップと、
前記複数のプロパティ値を画素ブロック（３０Ａ）、及び、スーパーブロック（２０）において前記画素ブロック（３０Ａ）と共に含まれる少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てるステップと、
前記画素ブロック（３０Ａ）の少なくとも１個のプロパティ値及び前記他の画素ブロック（３０Ｂ〜３０Ｄ）の少なくとも１個のプロパティ値に基づいて前記画像（５）を復号するステップと
を有することを特徴とする方法。
【請求項８】
前記伸張するステップは、前記複数のプロパティ値及びモード識別子を取得するために前記圧縮ブロックを伸張するステップを含み、
前記割り当てるステップは、前記モード識別子が第１の値を有する場合、前記複数のプロパティ値を前記画素ブロック（３０Ａ）及び前記スーパーブロック（２０）において前記画素ブロック（３０Ａ）と共に含まれる前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てるステップを有することを特徴とする請求項７に記載の方法。
【請求項９】
前記メモリ（３００）において前記画素ブロック（３０Ａ）に割り当てられたアドレスを判定するステップと、
前記アドレスに基づいて前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）を識別するステップと
を更に有することを特徴とする請求項７又は８に記載の方法。
【請求項１０】
前記画素ブロック（３０Ａ）に割り当てられたキャッシュ（４２０）のキャッシュロケーション（４２２）に前記圧縮ブロックを入力するステップと、
前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てられた前記キャッシュ（４２０）のキャッシュロケーション（４２４）に前記圧縮ブロックをコピーするステップと
を更に有することを特徴とする請求項７乃至９のいずれか１項に記載の方法。
【請求項１１】
プロパティ値を有する複数の画素（４０）を含む画像（１）を圧縮する画像圧縮器（１００）であって、
前記画像（１）を複数のスーパーブロック（２０、２２）に分解する画像分解器（１１０）と、
ここで、前記スーパーブロック（２０、２２）は、各々が複数の画素で構成されるＮ個の画素ブロック（３０Ａ〜３０Ｄ、３２Ａ〜３２Ｄ）を含み、前記Ｎは２以上の整数である；
前記複数のスーパーブロック（２０、２２）うちの少なくともスーパブロック（２０）について、目標ビット長を有する圧縮ブロックを得るため、前記スーパーブロックのプロパティ値を固定レート圧縮する固定レート圧縮器（１２０）と、
メモリ（１４０、３００）の、
前記圧縮ブロックをメモリ（１４０、３００）のメモリロケーション（３１０、３２０）に割り当てるメモリ割り当て器（１３０）と、
ここで、前記メモリロケーションは、前記圧縮ブロックのＮ個のコピーを得るため前記スーパーブロック（２０）で包含される前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）にそれぞれ割り当てられている；
前記圧縮ブロックのＮ個のコピーの集合が、前記スーパーブロック（２０）の圧縮表現を構成する
ことを特徴とする画像圧縮器。
【請求項１２】
前記圧縮ブロックがＮ個の画素ブロック（３０Ａ〜３０Ｄ）に適用可能であることを示す第１の値を有するモード識別子を前記圧縮ブロックに割り当てるモード割当器（１５０）を更に備えることを特徴とする請求項１１記載の画像圧縮器。
【請求項１３】
前記複数のスーパーブロック（２０、２２）のうちの少なくとも他方のスーパーブロック（２２）に対して、それぞれが複数の画素（４０）で構成されるＮ個の画素ブロック（３２Ａ〜３２Ｄ）に分解するブロック分解器（１６０）を更に備え、
前記固定レート圧縮器（１２０）は、前記他方のスーパーブロック（２２）の前記Ｎ個の画素ブロック（３２Ａ〜３２Ｄ）の各画素ブロック（３２Ａ〜３２Ｄ）毎に、前記目標ビット長を有する圧縮ブロックを取得するために、画素ブロック（３２Ａ〜３２Ｄ）のプロパティ値を固定レート圧縮するように構成され、
前記メモリ割り当て器（１３０）は、前記画素ブロック（３２Ａ〜３２Ｄ）に対して割り当てられた前記メモリ（３００）のメモリロケーション（３３０、３４０）に前記圧縮ブロックを割り当てるように構成され、
前記メモリロケーション（３００、３４０）における前記Ｎ個の圧縮ブロックの集合が前記他方のスーパーブロック（２２）の前記圧縮表現を構成することを特徴とする請求項１１又は１２に記載の画像圧縮器。
【請求項１４】
前記圧縮表現で前記スーパーブロック（２０）の前記プロパティ値を表現を示す示す誤差計測値を判定する誤差処理器（１７０）と、
前記誤差計測値が最大誤差閾値を上回る場合に、前記スーパーブロック（２０）を前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）に分解するように構成されるブロック分解器（１６０）とを更に備え、
前記固定レート圧縮器（１２０）は、前記スーパーブロック（２０）の前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）の画素ブロック（３０Ａ〜３０Ｄ）毎に及び前記誤差計測値が最大誤差閾値を上回る場合に、前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック（３０Ａ〜３０Ｄ）のプロパティ値を固定レート圧縮するように構成され、
前記メモリ割当器（１３０）は、前記誤差計測値が最大誤差閾値を上回る場合、前記画素ブロック（３０Ａ〜３０ｄ）に対して割り当てられた前記メモリ（３００）のメモリロケーション（３１０、３２０）に、前記圧縮ブロックを割り当てるように構成され、
前記メモリロケーション（３１０、３２０）における前記Ｎ個の圧縮ブロックの集合が、前記スーパーブロック（２０）の前記圧縮表現を構成することを特徴とする請求項１１乃至１３のいずれか１項に記載の画像圧縮器。
【請求項１５】
前記圧縮ブロックが、前記Ｎ個の圧縮ブロックの各圧縮ブロックに、当該圧縮ブロックが１つの画素ブロックに適用されたことを示す第２の値を有するモード識別子を割り当てるモード割当器（１５０）を更に備えることを特徴とする請求項１３又は１４記載の画像圧縮器。
【請求項１６】
前記スーパーブロック（２０）を前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）に分解するように構成されたブロック分解器（１６０）と、
ここで、前記固定レート圧縮器（１２０）は、前記スーパーブロック（２０）の前記Ｎ個の画素ブロック（３０Ａ〜３０Ｄ）の画素ブロック（３０Ａ〜３０Ｄ）毎に、前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック（３０Ａ〜３０Ｄ）のプロパティ値を固定レート圧縮するように構成され、
前記メモリ割り当て器（１３０）は、前記画素ブロック（３０Ａ〜３０Ｄ）に対して割り当てられた前記メモリ（３００）のメモリロケーション（３１０、３２０）に前記圧縮ブロックを割り当てるように構成され、前記メモリロケーション（３１０、３２０）における前記Ｎ個の圧縮ブロックの集合が前記スーパーブロック（２０）の前記圧縮表現を構成する；
前記Ｎ個の圧縮ブロックのコピーで前記スーパーブロック（２０）の前記プロパティ値を表現を示す第１の誤差計測値を判定し、且つ前記Ｎ個の圧縮ブロックで前記スーパーブロック（２０）の前記プロパティ値を表現をお示す第２の誤差計測値を判定する誤差処理器（１７０）と；
前記第１の誤差計測値及び前記第２の誤差計測値に基づいて、前記Ｎ個の圧縮ブロックのコピー及び前記Ｎ個の圧縮ブロックのうちの１個に選択する表現選択器（１８０）と
を更に備えることを特徴とする請求項１１乃至１３のいずれか１項に画像圧縮器。
【請求項１７】
画像（５）を復号する画像復号器（２００）であって、
前記画像（５）を示す複数の圧縮ブロックを格納するメモリ（３００）から圧縮ブロックを取り出すメモリアクセッサ（２１０）と、
複数のプロパティ値を取得するために前記圧縮ブロックを伸張する伸張器（２２０）と、
前記複数のプロパティ値を画素ブロック（３０Ａ）、及び、スーパーブロック（２０）に前記画素ブロック（３０Ａ）と共に含まれる少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てる値割当器（２４０）と、
前記画素ブロック（３０Ａ）の少なくとも１個のプロパティ値及び前記他の画素ブロック（３０Ｂ〜３０Ｄ）の少なくとも１個のプロパティ値に基づいて前記画像（５）を復号する画素復号器（２５０）と
を備えることを特徴とする画像復号器（２００）。
【請求項１８】
前記伸張器（２２０）は前記複数のプロパティ値及びモード識別子を取得するために前記圧縮ブロックを伸張するように構成され、前記値割当器（２４０）は、前記モード識別子が第１の値を有する場合、前記複数のプロパティ値を前記画素ブロック（３０Ａ）及び前記スーパーブロック（２０）において前記画素ブロック（３０Ａ）と共に含まれる前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てるように構成されることを特徴とする請求項１７に記載の画像復号器。
【請求項１９】
前記メモリ（３００）において前記画素ブロック（３０Ａ）に割り当てられたアドレスを判定するアドレス判定器（２６０）と、
前記アドレスに基づいて前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）を識別する画素識別器（２７０）と
を更に備えることを特徴とする請求項１７又は１８に記載の画像復号器。
【請求項２０】
前記画素ブロック（３０Ａ）に割り当てられたキャッシュ（４２０）のキャッシュ場所（４２２）に前記圧縮ブロックを入力し、且つ前記少なくとも１個の他の画素ブロック（３０Ｂ〜３０Ｄ）に割り当てられた前記キャッシュ（４２０）のキャッシュ場所（４２４）に前記圧縮ブロックをコピーするキャッシュアクセッサ（２８０）を更に備えることを特徴とする請求項１７乃至１９のいずれか１項に記載の画像復号器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に画像処理に関し、特に画像圧縮及び画像復号化に関する。
【背景技術】
【０００２】
グラフィックス処理ユニット（ＧＰＵ）の性能を向上させようとする場合の１つの解決方法は、メモリ帯域幅消費量を削減するための種々の技術を適用することである。処理能力の性能成長率が帯域幅の性能成長率及びランダムアクセスメモリ（ＲＡＭ）の遅延時間よりはるかに大きくなるのに伴い、帯域幅削減は更に益々重要になってきている。
【０００３】
テクスチャ圧縮は、帯域幅に対する要求を軽減する１つの一般的な方法である。テクスチャを圧縮した形態でメモリに格納し且つバスを介して圧縮データのブロックを転送することにより、テクスチャ帯域幅は大幅に削減される。
【０００４】
今日、最も使用されているテクスチャ圧縮システムは、Ｗｉｎｄｏｗｓ(登録商標)ベースのシステム及びＸｂｏｘに対するＤＸＴＣ［１］、並びに移動ハンドセットに対するＥＴＣ［２］である。これらの双方のシステムは、画像、すなわち、示されたテクスチャを４×４画素の画素ブロックに分割し、次いで、画素の赤、緑、青（ＲＧＢ）データを（８＋８＋８）×１６＝３８４ビットから６４ビットに圧縮するものである。従って、各画素ブロックは同一の数のビットを与えられる。これは、伸張するのに使用されたラスタライザが、テクスチャのあらゆる部分にアクセスする必要がある可能性があり、且つ所望の画素ブロックのメモリアドレスを容易に算出できる必要があるため重要である。換言すると、固定レートコーデック、すなわち全ての画素ブロックが同一の量の記憶空間を占めるコーデックは、非常に望ましく、今日のテクスチャ圧縮アルゴリズムの標準となっている。
【０００５】
しかし、固定圧縮レートは非常にコストがかかる。殆どのテクスチャにおいて、それらのいくつかの部分は、通常、テクスチャの他の部分より多くの情報を含む。固定レートが全ての画素ブロックに対して使用されなければならない場合、非常に多くのビットが簡単な領域において費やされるようになるため不必要に高品質になるか、あるいは非常に少ないビットが符号化しにくい領域において費やされるようになるため、これらの部分に対しては低品質となる。
【０００６】
固定レートコーデックのこの問題に対する解決方法は、いわゆる可変長符号化（ＶＬＣ）を使用することである。ＶＬＣにおいて、符号化しやすい画素ブロックにはビットを殆ど与えず、符号化しにくい画素ブロックにはより多くのビットを与える。しかし、画素ブロック圧縮におけるこのような改良は、特定の画素ブロックのメモリアドレスを容易に算出できないという問題がある。
【０００７】
Ｉｎａｄａ及びＭｃＣｏｏｌ［３］は、各ＶＬＣ符号化された画素ブロックがメモリにおいて配置される場所を示すルックアップテーブル（ＬＵＴ）を使用する解決方法を提示している。しかし、ＬＵＴを使用することにより、キャッシュの形態で新たな問題が発生する。復号化システムは、メモリから所望の画素ブロックを要求し始める前に、この場合は最初にＬＵＴを使用しなければならない。しかし、ＬＵＴは非常に大きく、チップ上に保持できない。従って、復号化システムは、最初にＬＵＴの関連部分を要求しなければならず、メモリからこの情報を受信するまでどこから画素ブロックの関連ビットを要求するのかを認識しない。これは、メモリの間接参照と呼ばれ、非常に厄介である。それにより遅延時間も加わり、近頃のグラフィック処理ユニット（ＧＰＵ）の主な問題の１つである。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の実施形態は、従来技術の構成のこれらの欠点及び他の欠点を克服する。
【０００９】
一般的な目的は、効率的な画像処理を提供することである。
【課題を解決するための手段】
【００１０】
この目的及び他の目的は、添付の請求の範囲により規定されたように実施形態により達成される。
【００１１】
簡単に説明すると、本発明の実施形態は、画像又はテクセルを複数のスーパーブロックに分解することによりそれを圧縮するステップを含む。ここでスーパーブロックは、各々が規定の数の画素又はテクセルを有するＮ個の複数の画素ブロック又はテクセルブロックを含む。更に、各画素は関連付けられたプロパティ値を有する。
【００１２】
スーパーブロックは、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮することにより圧縮される。その圧縮ブロックは、スーパーブロックにより含まれたＮ個の画素ブロックに対して割り当てられたメモリロケーションに割り当てられ且つ格納される。これは、同一の圧縮ブロックのＮ個のコピーがスーパーブロックに対するメモリに存在することを意味する。これらの圧縮ブロックのＮ個のコピーの集合が、スーパーブロックの圧縮表現を構成することになる。
【００１３】
復号化中、メモリアドレスは、復号化されるべきプロパティ値を含む画素を有する画素ブロックに対して判定される。固定レート圧縮は、画素ブロックの各メモリロケーションが同一の量のデータを含むことによりランダムアクセスを達成することを保証する。目標ビット長を有し且つ画素ブロックに割り当てられたメモリロケーションに格納される圧縮ブロックは、取り出され且つバスを介してメモリからキャッシュに転送される。その後圧縮ブロックは、複数のプロパティ値を取得するために伸張される。しかし、画素ブロックがスーパーブロックの一部を構成するため少なくとも１個の隣接画素ブロックと共に圧縮された場合、その画素ブロックの少なくとも１個のプロパティ値だけでなく少なくとも１個の隣接画素ブロックは、単一のメモリアクセスから取得される。
【００１４】
一実施形態において、画像圧縮器は、複数の画素を含む画像を圧縮するために提供される。画像圧縮器は、画像を複数のスーパーブロックに分解する画像分解器を備える。そのようなスーパーブロックは、上述したように、複数の画素を有するＮ個の画素ブロックを含む。固定レート圧縮器は、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮する画像圧縮器に配置される。この圧縮ブロックは、メモリ割当器によりメモリのＮ個のメモリロケーションに割り当てられる。これらのＮ個のメモリロケーションは、スーパーブロックにより含まれたＮ個の画素ブロックに対して割り当てられる。その結果、圧縮ブロックのＮ個のコピーは、メモリロケーションに存在し、スーパーブロックの圧縮表現を共に構成することとなる。
【００１５】
別の態様は、画像を復号化する画像復号器に関する。この画像復号器は、画像（５）を示す複数の圧縮ブロックを格納するメモリから圧縮ブロックを取り出すメモリアクセッサ、取出し器又はプロセッサを備える。取り出された圧縮ブロックは、複数のプロパティ値を取得するために圧縮ブロックを伸張する伸張器により処理される。これらの複数のプロパティ値は、値割当器により第１の画素ブロックだけでなく少なくとも１個の第２の画素ブロックに割り当てられる。この第１の少なくとも１個の画素ブロックは、画像の同一のスーパーブロックにおいて共に含まれる。次に、画素復号器は、第１の画素ブロックの少なくとも１個のプロパティ値及び少なくとも第２の画素ブロックの少なくとも１個のプロパティ値に基づいて画像を少なくとも部分的に復号化する。
【００１６】
画像復号化中に画像上で単一の画素を描画するために複数の画素又はテクセルが必要な場合が多いため、本明細書において開示されたような実施形態は従来技術よりかなり有利である。これは、時間のかかるメモリアクセスにより全ての所望のプロパティ値を取り出すことなくキャッシュにおいてそれらを有する確率が実施形態を用いることで大幅に向上することを意味する。従って、所定の画素ブロックに関連する圧縮ブロックにアクセスし且つそれを取り出すことにより、更なるメモリアクセスを必要とせずに画像中で隣接画素ブロックに適用される圧縮データが無償で更に得られる。
【００１７】
本発明の実施形態の以下の説明を読むことにより、提案された他の利点が理解されるだろう。
【００１８】
実施形態は、添付の図面と共に以下の説明を参照することにより、実施形態の更なる目的及び利点と共に最もよく理解されるだろう。
【図面の簡単な説明】
【００１９】
【図１】図１は、一実施形態に従って画像を圧縮する方法を示すフローチャートである。
【図２】図２は、一実施形態に従って圧縮される画像を示す概略図である。
【図３Ａ】、
【図３Ｂ】、
【図３Ｃ】、
【図３Ｄ】、
【図３Ｅ】、
【図３Ｆ】、
【図３Ｇ】、
【図３Ｈ】、
【図３Ｉ】図３Ａ〜図３Ｉは、画像の一部分をスーパーブロック及び画素ブロックに分解することを概略的に示す図である。
【図４】図４は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。
【図５】図５は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。
【図６】図６は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。
【図７】図７は、一実施形態に従って画像を復号化する方法を示すフローチャートである。
【図８】図８は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。
【図９】図９は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。
【図１０】図１０は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。
【図１１】図１１は、一実施形態に係る画像復号器を備える復号化システムを示す概略図である。
【図１２】図１２は、画像圧縮器の一実施形態を示す概略ブロック図である。
【図１３】図１３は、画像復号器の一実施形態を示す概略ブロック図である。
【図１４】図１４は、２×２画素チャンクを示す１６×１６カラーバッファを示す図である。
【図１５】図１５は、図１４のカラーバッファの画素のテクスチャへのマッピング方法を示す図である。
【図１６】図１６は、左側の画像により示された本発明の一実施形態と右側の画像により示された従来技術との比較を示す図である。
【図１７】図１７は、ＰＳＮＲ対レートを示すグラフである。
【図１８】図１８は、一実施形態に従って処理されたテストシーンを示す図である。
【図１９】図１９は、左が従来技術のＤＸＴＣを示し、中央が一実施形態を示し且つ右が第２の実施形態を示すシーンをレンダリングした場合の帯域幅の結果を示す図である。
【図２０】図２０は、中央において従来技術のシステムに従って拡大したテスト画像を示し且つ右側に一実施形態に従って拡大したテスト画像を示す図である。
【図２１】図２１は、重要な領域において品質を向上させ且つ相対的に重要でない領域において品質を低下させることにより主観的な品質を示す図であり、上の行が元の画像を示し、中央の行が一実施形態に従う画像を示し且つ下の行が従来技術に従う画像を示す図である。
【図２２】図２２は、種々のレベルの圧縮の複雑さを有する同様のテクスチャを示す図である。
【発明を実施するための形態】
【００２０】
図中、同一の図中符号は、対応する要素又は類似する要素に対して使用される。
【００２１】
本発明は、一般に画素プロパティ値の符号化及び復号化と呼ばれることもある圧縮及び伸張に関し、特にテクスチャの圧縮及び伸張に適した圧縮及び伸張に関する。
【００２２】
本発明の実施形態は、３次元（３Ｄ）グラフィックス、例えば限定しない例であるゲーム、３Ｄマップ及びシーン、動画メッセージ等の３Ｄメッセージ、スクリーンセーバ、マンマシンインタフェース（ＭＭＩ）等と使用するのに非常に適している。従って、実施形態は、１次元（１Ｄ）、２次元（２Ｄ）又は３Ｄ画像等の他の種類の画像又は図形を符号化するために更に採用されてもよい。
【００２３】
また、以下において、用語「画像」は、限定しない例であるバンプマップ、通常のマップ、写真、ゲーム型テクスチャ、文字、図、高ダイナミックレンジ画像及びテクスチャ等を含む本発明の実施形態を使用して符号化及び復号化されるあらゆる１Ｄ、２Ｄ又は３Ｄ画像又はテクスチャを示すために使用される。
【００２４】
画像は、複数、すなわち少なくとも２個のいわゆる画像要素によって構成される。画像要素は、一般に、当技術分野において画像要素の場合は画素、テクスチャ要素の場合はテクセル、又は体素(volume elements)の場合はボクセルで示される。以下において、表示画素は、そのような画像要素を示すために一貫して使用される。しかし、表示画素は、本明細書において例えば処理された画像がテクスチャ又は３Ｄ画像の形態である場合にはテクセル及びボクセルを包含すると考えられる。
【００２５】
一般に、画素は、関連付けられた画素パラメータ、あるいは画素プロパティ値又は特徴により特徴付けられる。当技術分野において画素に割り当てられる種々のそのような特徴的なプロパティ値がある。例えばプロパティ値は、画素に割り当てられた色値であってもよい。当技術分野においては既知であるように、種々の色空間が使用可能であり且つ画素色値を示すために使用される。通常のそのような色空間は、いわゆる赤、緑、青（ＲＧＢ）の色空間である。従って、プロパティ値は、ＲＧＢの色であってもよく、すなわち３色成分から構成される。
【００２６】
画素の色は、輝度成分及びクロミナンス成分の形態で表わされてもよい。そのような場合、変換は、ＲＧＢ色値を輝度値及び一般に２個のクロミナンス成分に変換するか、あるいは輝度値及びクロミナンス値をＲＧＢ色値に変換するために使用される。当技術分野における輝度−クロミナンス空間の例には、ＹＵＶ、ＹＣｏＣｇ及びＹＣｒＣｂが含まれる。従って、プロパティ値は、そのような輝度値（Ｙ）及び関連付けられたクロミナンス値（Ｕ、Ｖ、Ｃｏ、Ｃｇ、Ｃｒ又はＣｂ）であってもよい。
【００２７】
他の画素プロパティ値は、透明度データを搬送するために使用されることが多い深度マップに対する深度値、アルファ（Ａ）値を含み、ＲＧＢＡ等の色値と組み合わせて使用される。
【００２８】
本発明の実施形態は、ランダムアクセスを達成し且つ画素ブロックのメモリアドレスの容易な計算を可能にすることにより画像及びテクスチャ処理に新規な手法を提供するが、依然として帯域幅消費量の削減を実現する。
【００２９】
［圧縮］
図１は、一実施形態に従ってテクスチャ等の画像を圧縮する方法を示すフローチャートである。画像は、各画素がＲＧＢ８８８値等のそれぞれのプロパティ値を有する複数の画素を含む。圧縮は一般にステップＳ１から開始し、画像は、いわゆるスーパーブロックに分解される。
【００３０】
画像圧縮の当技術分野において、一般に画素ブロック又はタイルの形態の複数の画素は一括して処理される。好適な一実施形態において、そのような画素ブロックはＭ1×Ｍ2画素のサイズを有する。ここで、Ｍ1、Ｍ2は、Ｍ1及びＭ2の双方が同時に１ではないという条件で整数である。Ｍ1＝２k及びＭ2＝２lである。ここで、ｋ、ｌは、ｋ及びｌが同時に０ではないという条件で０又は整数であるのが好ましい。一般的な実現例において、Ｍ1＝Ｍ2及び好適なそのような画素ブロックの実施形態は、４×４画素又は８×８画素であってもよい。従来技術の「標準の」圧縮方式、すなわちＤＸＴＣ及びＥＴＣは、４×４画素の画素ブロックを使用する。図２は、テクスチャ１等の画像が複数の画素ブロック３０に分割される、このような概念を示している。ここで、各画素ブロック３０は複数の画素４０を含む。図２において、画素ブロック３０のうちの１個のブロックの画素４０が、図面を簡略化するために明示的に示されている。
【００３１】
ステップＳ１において規定されたようなスーパーブロックは、複数の画素から成るそのような画素ブロックをＮ個を含む。ここで、Ｎは２以上の整数である。従って、画素ブロックが４×４画素を含む場合、スーパーブロックは、Ｎ＝４の場合は８×８画素、あるいはＮ＝２の場合は４×８又は８×４画素であってもよい。更なる一実施形態において、Ｎ＝１６の場合は１６×１６画素のスーパーブロック、あるいはＮ＝８の場合は１６×８又は８×１６画素のスーパーブロックが更に使用可能であってもよい。それに対応して、画素ブロックが８×８画素のサイズを有する場合、スーパーブロックは、Ｎ＝４の場合は一般に当技術分野においてマクロブロックを示した１６×１６画素、あるいはＮ＝２の場合は８×１６又は１６×８画素であってもよい。更に、奇数の画素ブロックを含むスーパーブロックが本発明の範囲内において可能である。そのような場合、非正方形及び非長方形のスーパーブロックの形状、例えばＬ又はＴ形状のスーパーブロックが使用されてもよい。実施形態に従って処理された画像は、画像中でスーパーブロックの領域により占有された画素ブロック数に関して同一のサイズの複数のスーパーブロックを含んでもよい。しかし、実施形態は、本明細書において更に説明されるように必ずしもそれに限定されない。明らかに対照的に、第１のスーパーブロックは１６×１６画素等の第１のサイズを有してもよく、第２のスーパーブロックは１６×８画素等の第２のサイズを有してもよく、あるいは第３のスーパーブロックは８×１６画素等の第３のサイズを含む。これらのスーパーブロックの共通の特徴は、これらのスーパーブロックが、各画素ブロックがそれぞれのプロパティ値を有する複数の画素を含む少なくとも２個の画素ブロックにおいて占有される画像の領域を全て含むことである。しかし、本明細書において規定されたようなスーパーブロックのサイズは変動してもよいが、本明細書において規定されたような画素ブロックのサイズは固定されるのが好ましく、これは画像全体にわたって同じであり、例えば全ての画素ブロックに対して４×４画素又は８×８画素である。
【００３２】
次のステップＳ２において、圧縮ブロックを取得するためにステップＳ１において規定されたスーパーブロックのプロパティ値を固定レート圧縮する。固定レート圧縮は、結果として得られる圧縮ブロックのサイズ又はビット長が固定され且つ特定の目標ビット長に等しいことを示す。従って、固定レート圧縮器から出力された全ての圧縮ブロックは、同一の目標ビット長を有する。これは、スーパーブロックが例えば１６×１６画素、１６×８画素又は８×１６画素のサイズを有したかに関係なく目標ビット長に等しくなることを意味する。
【００３３】
しかし、圧縮ブロックのサイズが非圧縮バージョンのスーパーブロックのサイズより小さいのは当然である。例えば、各画素がＲＧＢ８８８プロパティ値を有するために２４ビットを必要とする場合、１６×１６スーパーブロックは、非圧縮バージョンにおいて２５６×２４＝６，１４４ビットのサイズを有する。目標ビット長は、例示的な例として２５６ビットであってもよい。
【００３４】
ステップＳ２において判定された圧縮ブロックは、ステップＳ３において、スーパーブロックにより含まれたＮ個の画素ブロックに対して割り当てられたメモリロケーション（記憶場所）に割り当てられる。これは、圧縮ブロックを示す同一のビットシーケンスがＮ個の画素ブロックに対して割り当てられたＮ個の異なる記憶場所に存在することを意味する。記憶場所における同一の圧縮ブロックのＮ個のコピー及び同一のビットシーケンスのＮ個のコピーは、スーパーブロックの圧縮表現を一括して構成する。
【００３５】
ステップＳ２においてスーパーブロックを固定レート圧縮すること及びステップＳ３において結果として得られる圧縮ブロックを複数の種々の記憶場所に割り当てることは、画像中の他のスーパーブロックに対して繰り返される。これを図１の線Ｌ１により概略的に示す。尚、これらの種々のスーパーブロックに対して、Ｎの値は同一であってもよくあるいは実際には異なってもよい。複数のスーパーブロックは、順次処理されてもよく、すなわち基本的にはそのようなスーパーブロック毎に順次ステップＳ２及びＳ３を繰り返す。あるいは、複数のスーパーブロックは、線Ｌ１により同時に更に示されたステップＳ２及びＳ３に従って処理されてもよい。
【００３６】
図４は、画像圧縮方法の更なるステップを示す。これらの更なるステップは、本明細書において更に説明されるように、画像がスーパーブロックを処理するだけでは圧縮されない場合に使用される。例えば、多くの情報及び詳細を含む画像の領域において、スーパーブロックはＮ個の画素ブロックに更に分解され、そのような画素ブロックの各々は別個に圧縮される。これを図４において示す。従って、第１のステップＳ１０において、スーパーブロックをＮ個の画素ブロック、例えばスーパーブロックのサイズに依存して２個又は４個の画素ブロックに分解する。そのような画素ブロックの各々は、ステップＳ１１及びＳ１２の手順に従って順次又は同時に処理される。これを線Ｌ２により概略的に示す。
【００３７】
ステップＳ１１において、目標ビット長を有する圧縮ブロックを取得するために画素ブロックのプロパティ値を固定レート圧縮する。従って、スーパーブロックが画素ブロックより大きな画像の領域を占有するにもかかわらずステップＳ２においてスーパーブロックを圧縮する場合のように、画素ブロックを圧縮することにより得られる圧縮ブロックの同一のビット長がステップＳ１１において達成される。実施形態のこの新規な特徴は、圧縮ブロックのランダムアクセスを達成する。
【００３８】
ステップＳ１２において、現在の画素ブロックに割り当てられたメモリの記憶場所に圧縮ブロックを割り当てる。スーパーブロックがＮ個の画素ブロックを含むため、ステップＳ１１及びＳ１２がＮ回実行される。これは、殆どの場合、ステップＳ１１の種々の動作において取得された圧縮ブロックが同一の圧縮ブロックを生成しない限り、メモリはＮ個の異なる圧縮ブロックを含む。記憶場所におけるＮ個の圧縮ブロックは、スーパーブロックの圧縮表現を一括して構成する。
【００３９】
尚、図１のステップＳ３において、同一の圧縮ブロックは、Ｎ個の記憶場所の各々に提供される。しかし、ステップＳ１２において、それぞれ個別に判定された圧縮ブロックは、Ｎ個の記憶場所のうちの１つを占有する。
【００４０】
図３Ａは、マーク付けされた画素ブロック３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ、３２Ａ、３２Ｂ、３２Ｃ、３２Ｄを含む画像の一部分を示すことによりこの概念を示す。図３Ａにおいて、アルファベットＡ〜Ｊは、図１のステップＳ２に従ってスーパーブロックを固定レート圧縮するかあるいは図４のステップＳ１１に従って画素ブロックを固定レート圧縮することにより取得された圧縮ブロックを示す。これらの圧縮ブロックＡ〜Ｊは、ビット長に関して全て同一のサイズを有する。
【００４１】
左上の隅を占有する４個の画素ブロック３０Ａ、３０Ｂ、３０Ｃ、３０Ｄは、共にスーパーブロック２０を構成する。このスーパーブロック２０は、圧縮ブロックＡを取得するために、図１のステップＳ２における手順に従って圧縮される。この圧縮ブロックＡの符号は、４個の画素ブロック３０Ａ、３０Ｂ、３０Ｃ、３０Ｄの各々の記憶場所を割り当てられる。図３Ａにおいて全てのこれらの画素ブロック３０Ａ、３０Ｂ、３０Ｃ、３０ＤにＡを割り当てることにより、これを概略的に示す。
【００４２】
しかし、画像中の次のスーパーブロック２２は、先のスーパーブロック２０のように図１に従って圧縮されない。明らかに対照的に、スーパーブロック２２は画素ブロック３２Ａ、３２Ｂ、３２Ｃ、３２Ｄに分解され、これらの画素ブロック３２Ａ、３２Ｂ、３２Ｃ、３２Ｄの各々は別個の圧縮ブロックＢ〜Ｅを取得するために個別に圧縮される。
【００４３】
第１のスーパーブロック２０の圧縮された表現の合計ビット数、すなわちＡの４倍のビット長が第２のスーパーブロック２２の圧縮された表現、すなわちＢ＋Ｃ＋Ｄ＋Ｅのビット長と同一であるため、ランダムアクセスが達成される。これは、画素ブロック序列における画素ブロック数ｒ、すなわち左上の隅から開始する行単位の移動がメモリにおいてアクセスされる場合、（ｒ−１）×Ｓｉｚｅからｒ×Ｓｉｚｅ−１まで占有するためその場所は容易に識別されることを意味する。ここで、Ｓｉｚｅは、圧縮ブロックＡ〜Ｊのビット長を示す。それに対応して、ｘ及びｙが画像中の所望の画素の座標である場合、ｆｌｏｏｒ（ｘ／８）及びｆｌｏｏｒ（ｙ／８）により、８×８画素の画素ブロックのサイズの場合に画素を含む画素ブロックの座標が得られる。従って、ｗｉｄｔｈが画素における画像の幅であり且つ圧縮ブロックが２５６ビットのビット長を有する場合、所望の圧縮ブロックのメモリバイトアドレスは、（ｆｌｏｏｒ（ｙ／８）×（ｗｉｄｔｈ／８）＋ｆｌｏｏｒ（ｘ／８））×２５６／８である。従って、実施形態によりランダムアクセスが可能になる。
【００４４】
図３Ｂ〜図３Ｉは、マクロブロックが１つのスーパーブロック、複数のスーパーブロック、１つのスーパーブロック及び複数の画素ブロック、あるいは複数の画素ブロックに分解される種々の可能性を示す。図３Ｂは、各画素ブロック３２が別個に処理され、各々が同一の目標ビット長を有する４個の一般に異なる圧縮ブロックＡ〜Ｄを生成する例を示す。
【００４５】
図３Ｃは、スーパーブロック２０が４個の画素ブロック３０を含み、単一の圧縮ブロックＡが全ての画素ブロックに対して判定される例を示す。しかし、この圧縮ブロックＡは、４個の画素ブロック３０に割り当てられた記憶場所において繰り返されることにより、４個のバージョンを格納する。
【００４６】
図３Ｄにおいて、マクロブロックは、各々がそれぞれ２個の画素ブロック３４、３６の領域を含む２個のスーパーブロック２４、２６に分割される。第１の圧縮ブロックＡは、第１のスーパーブロック２４に対して判定され、含まれた２個の画素ブロック３４の双方の記憶場所に割り当てられる。それに対応して、第２の圧縮ブロックＣは、他のスーパーブロック２６に対して判定され、このスーパーブロック２６により含まれた２個の画素ブロック３６に割り当てられる。
【００４７】
図３Ｅは図３Ｄに類似するが、２個のスーパーブロック２１、２３は２個の異なる列ではなく２個の異なる行の画素ブロック３１、３３を含む。第１のスーパーブロック２１に対して判定された圧縮ブロックＡは、スーパーブロック２１により含まれた双方の画素ブロック３１に割り当てられる。同様に、第２のスーパーブロック２３に対して判定された他の圧縮ブロックＢは、スーパーブロック２３より含まれた双方の画素ブロック３３に割り当てられる。
【００４８】
図３Ｆにおける２個の上部画素ブロック３４は、スーパーブロック２４として一括して処理されるため、同一の圧縮ブロックＡを割り当てられる。２個の下部画素ブロック３２は、別個に固定レート圧縮され、２個の異なる圧縮ブロックＣ、Ｄを生成する。
【００４９】
図３Ｇは図３Ｆに非常に類似するが、上部画素ブロック３２は別個に圧縮ブロックＡ、Ｂに圧縮され、２個の下部画素ブロック３６は、双方の画素ブロック３６の記憶場所に割り当てられた圧縮ブロックＣを取得するためにスーパーブロック２６として共に圧縮される。
【００５０】
図３Ｈ及び図３Ｉは、図３Ｆ及び図３Ｇと同様の概念を示すが、スーパーブロック２１、２３は異なる行の画素ブロック３１、３３を占有する。それぞれの他の２個の画素ブロック３２は、別個に固定レート圧縮される。
【００５１】
所定の画像は、図３Ｂ〜図３Ｉのうちのいずれかに従って規定された全てのマクロブロック領域を有する。しかし、最も実際的な適応例において、画像のいくつかの部分は図３Ｂ〜図３Ｉのうちの１つにおいて規定されたようなものになり、画像の少なくとも１つの他の部分は図３Ｂ〜図３Ｉのうちの少なくとも他の１つにおいて規定されたようなものになる。従って、画像は、スーパーブロック及び画素ブロックとして圧縮される異なる画像部分のパッチワークである場合がある。
【００５２】
一般に、図３Ｃにおいて示された実施形態は、通常殆ど詳細を含まない全く同様の画像部分に現れ、個別の画素ブロックを含む図３Ｂは、画像の非常に詳細な領域において現れる。図３Ｄ〜図３Ｉの他の実施形態は、大きなスーパーブロック全体として効率的に圧縮されないが、図３Ｄ及び図３Ｅのようなより小さなサイズのスーパーブロック又は図３Ｆ〜図３Ｉのようなより小さなサイズのスーパーブロック及び個別の画素ブロックに分解されるのが好ましい他の画像部分に対して示される。
【００５３】
図６は、画像圧縮方法の一実施形態の更なるステップを示すフローチャートである。この方法は、図１のステップＳ３から継続する。次のステップＳ３０において、図１のステップＳ２において判定された圧縮ブロックのＮ個のコピーがスーパーブロックの画像領域においてプロパティ値をどれほど適切に示すかを示す誤差計測値を判定する。
【００５４】
誤差計測値は、一般に、スーパーブロックにおける画素に対する元のプロパティ値の表現を取得するために圧縮ブロックを伸張することにより得られる。これらの表現と元のプロパティ値との平方誤差が算出され且つ合計されることにより、スーパーブロックに対する平方誤差和（ＳＳＤ）が得られる。あるいは、ＳＳＤではなく、当技術分野において既知であり且つ画像及びテクスチャ圧縮の分野内で使用されるのが好ましい他の誤差計測値が使用されてもよい。
【００５５】
次のオプションのステップＳ３１において、最大誤差閾値を規定する。このステップＳ３１は、一般に、ユーザ又はオペレータが画像圧縮に対する目標品質を判定できる場合に使用される。例えば、この目標品質は、画像のＸ％がスーパーブロックの形態で処理され、画像の残りの１００〜Ｘ％に対して画素ブロックが個別に固定レート圧縮されることであってもよい。そのような場合、画像全体は、図１において上述したように、最初にスーパーブロックに伸張されて圧縮されるのが好ましい。各誤差計測値は、スーパーブロック毎に判定される。最高品質、すなわち最も低い誤差計測値を有するスーパーブロックのＸ％が識別される。最大誤差閾値Ｔは、これらの最も低い誤差計測値のうちの最も高い誤差閾値に等しいものとして規定される。
【００５６】
あるいは、ステップＳ３１は省かれ、最大誤差閾値は、スーパーブロックに対する最大の許容可能な誤差であると考えられる事前定義された誤差値である。
【００５７】
次のステップＳ３２において、ステップＳ３０においてスーパーブロックに対して判定された誤差計測値を最大誤差閾値と比較する。誤差計測値が最大誤差閾値を上回らない場合、スーパーブロックのプロパティ値は、図１のステップＳ２において判定された圧縮ブロックのＮ個のコピーにより適切な品質で示される。
【００５８】
しかし、誤差計測値がステップＳ３２において最大誤差閾値を上回る場合、ステップＳ３３に継続する。このステップＳ３３において、スーパーブロックをＮ個の画素ブロックに分解する。このステップＳ３３は、図４のステップＳ１０と同様に実行されるため、本明細書において更に説明しない。Ｎ個の画素ブロックの各々は、ステップＳ３４及びＳ３５において個別に処理され、これをＬ３により概略的に示す。この場合、処理は、Ｎ個の画素ブロックに対して同時に又は順次実行される。ステップＳ３４は、基本的に図４のステップＳ１１に対応し、目標ビット長を有する圧縮ブロックを取得するために画素ブロックのプロパティ値を固定レート圧縮する。ステップＳ３５は、図４のステップＳ１２に対応し、この圧縮ブロックのビットシーケンスを画素ブロックに割り当てられた記憶場所に入力することを含む。
【００５９】
この場合、スーパーブロックのプロパティ値は、図１のステップＳ２において判定された圧縮ブロックのＮ個のコピーにより適切な品質で表されない。明らかに対照的に、スーパーブロックは、Ｎ個の異なる圧縮ブロックを取得するために個別に圧縮されるＮ個の画素ブロックに分解されなければならなかった。
【００６０】
種々の画像部分を異なる方法で、すなわち１つのスーパーブロック、複数のスーパーブロック、１つのスーパーブロック及び複数の画素ブロック、あるいは複数の画素ブロックの形態で処理できるようにする別の手順を図７において示す。
【００６１】
この方法は図１のステップＳ３から継続する。次のステップＳ４０において、図１のステップＳ２において判定された圧縮ブロックのＮ個のコピーでスーパーブロックのプロパティ値を表現することを示す第１の誤差計測値を判定する。誤差計測値は、図７のステップＳ３０において判定されたのと同一の種類の誤差計測値であってもよい。別の手法において、誤差計測値は、ｒｄ＝ｒａｔｅ＋λ×ｄｉｓｔｏｒｔｉｏｎとして規定されたいわゆるレート歪み値である。ここで、ｒａｔｅは、図３Ｂ〜図３Ｉを参照すると繰り返された圧縮ブロックを全くカウントすることなく２×２画素ブロックを占有する画像部分毎にプロパティ値を圧縮するのに必要なビット数を示す。これは、レートが、図３Ｂにおいて４×Ｓｉｚｅであり、図３ＣにおいてＳｉｚｅであり、図３Ｄ及び図３Ｅにおいて２×Ｓｉｚｅであり、図３Ｆ〜図３Ｉに対して３×Ｓｉｚｅであることを意味する。また、ｄｉｓｔｏｒｔｉｏｎは、圧縮ブロックを伸張することにより取得されたプロパティ値の表現と画素に対する元のプロパティ値と間の平方和：
0005203513.tif 000002
であり、
0005203513.tif 000003
及び、
0005203513.tif 000004
は、圧縮画素ブロック及び元の画素ブロックのそれぞれの赤色成分である。緑及び青色成分に関しても同様である。λは、レート歪み測度に対して歪みの所望の寄与を実現するために使用される重み係数である。λを変動させることにより、種々の品質、従って種々のビットレートが画像に対して達成される。
【００６２】
次のステップＳ４１において、図４及び図６に関連して上述したように、スーパーブロックをＮ個の画素ブロックに分解する。これらのＮ個の画素ブロックは、ステップＳ４２においてＮ個の圧縮画素ブロックに個別に固定レート圧縮される。圧縮画素ブロックは、ステップＳ４３においてメモリの画素ブロックに対して割り当てられたそれぞれの記憶場所に割り当てられる。線Ｌ４は、ステップＳ４２及びＳ４３がＮ個の画素ブロック毎に順次又は同時に実行されることを示す。
【００６３】
ステップＳ４４においてＮ個の圧縮画素ブロックがどれほど適切に判定されるかを示す第２の誤差計測値は、対応するプロパティ値を示す。画素に対して使用するための圧縮表現、すなわち図１のステップＳ２の圧縮ブロックのＮ個のコピー又はステップＳ４２のＮ個の圧縮ブロックは、２個のレート歪み値であるのが好ましい第１の誤差計測値及び第２の誤差計測値に基づいてステップＳ４５において選択される。
【００６４】
一般的な実現例において、画像の２×２画素ブロック領域の各々は、図３Ｂ〜図３Ｉにおいて示された８個の可能な変形例のうちのいずれかに従ってテストされる。これは、そのような画素ブロック領域の各々が８回圧縮され、８個のレート歪み値が領域に対して判定されることを意味する。画像に対する最も低いレート歪み値により得られたスーパーブロックと画素ブロックとの組合せが選択され、これらのスーパーブロック及び画素ブロックの圧縮ブロックは、画像の圧縮表現又は符号化表現として使用される。
【００６５】
図５は、図１、図４、図６及び図７における固定レート圧縮に関連してモード識別子を割り当てることを含む更なるステップを示すフローチャートである。圧縮ブロックは、ステップＳ２０において、圧縮ブロックがスーパーブロック又は画素ブロックに対して判定されるかに依存して種々の値を有するモード識別子を割り当てられる。従って、２×２画素ブロックのグループが１個の圧縮ブロックを取得するためにスーパーブロックとして共に圧縮され、その後コピーされて４個のバージョン、すなわち画素ブロック毎に１個のバージョンを取得する場合、モード識別子は第１の値を有する。しかし、２×２画素ブロックが４個の圧縮ブロックを取得するために個別に圧縮される場合、これらの４個の圧縮ブロックの各々は、第１の値とは異なる第２の値を有するモード識別子を含む。
【００６６】
それに対応して、図３Ｂ〜図３Ｉにおいて示されたように２×２画素ブロックのグループに対して８個の可能性がある場合、モード識別子は、４個の異なる値を有する必要がある。４個の異なる値は、３つがスーパーブロック型に対するものであり、１つが２ビットのモード識別子により実現される画素ブロックに対するものである。
【００６７】
モード識別子は、圧縮ブロックのビットシーケンスとして圧縮ブロックに含まれると考えられるのが好ましく、目標ビット長にも等しいべきである。
【００６８】
このモード識別子は、画素ブロックに対応する圧縮ブロックがメモリから読み出されると、圧縮画素ブロックを伸張することにより無償で少なくとも１個の隣接画素ブロックに対するプロパティ値が得られるかを判定するために、復号化中に使用される。これは、圧縮中に形成された画素ブロックがスーパーブロックの一部であり、画素ブロックの元のプロパティ値及び更に少なくとも１個の他の画素ブロックの元のプロパティ値が一括して処理されて圧縮ブロックを判定する場合に生じる。これは、本発明の実施形態の主な利点である。すなわち、メモリから単一の画素ブロックのビットシーケンスを自動的に読み出すことにより、ビットシーケンスを伸張する際に意図した画素ブロックのプロパティ値だけでなく１つ又は複数の隣接画素ブロックのプロパティ値が得られる。１つ又は複数の隣接ブロックのプロパティ値が復号化中に更に必要であり且つこれらがメモリにおいてではなくキャッシュから読み出される場合、必要なメモリアクセス数は減少する。従って、実施形態により、メモリ帯域幅及びメモリからＧＰＵキャッシュに転送されるべきデータ量は減少する。
【００６９】
上記において、スーパーブロックのプロパティ値又は画素ブロックのプロパティ値に適用可能な固定レート圧縮を使用することに関連して実施形態を説明した。実施形態は、事前定義された目標ビット長を有する圧縮ブロックを生成する当技術分野におけるあらゆる種類の固定レート圧縮アルゴリズムを実際に使用する。同一の種類の圧縮アルゴリズムは、より小さな画素ブロックを圧縮する場合のようにより大きなスーパーブロックを処理するために使用される。あるいは、第１の固定レート圧縮アルゴリズムはスーパーブロックを圧縮するのに適用可能であり、第２の固定レート圧縮アルゴリズムは画素ブロックに対して使用される。しかし、そのような場合、第１の圧縮アルゴリズムが第２の圧縮アルゴリズムと比較して入力としてより多くのプロパティ値を有するにもかかわらず、双方の圧縮アルゴリズムは、同一の目標ビット長を有する圧縮ブロックを生成すべきである。当然、この概念は、スーパーブロックが１６×１６画素対８×１６又は１６×８画素等の種々のサイズである場合にも適用されてもよい。そのような場合、最大３個又は４個の種々の固定レート圧縮アルゴリズムが使用されてもよい。種々の固定レート圧縮アルゴリズムは、それぞれ、１６×１６スーパーブロック、８×８画素ブロック、８×１６及び１６×８スーパーブロック又は８×１６スーパーブロック、並びに１６×８スーパーブロックに対するものである。
【００７０】
本明細書において、実施形態において使用される適切な固定レート圧縮アルゴリズムのいくつかの例示的な例を列挙する。しかし、実施形態はそれらに限定されず、上述の要件を満たす他の種類の固定レート圧縮アルゴリズムを使用できる。
【００７１】
教示が本明細書において参考として取り入れられる圧縮アルゴリズムＥＴＣ２［２、４、５］は、４×４画素ブロックを符号化して６４ビットの圧縮ブロックを生成するために使用される。この圧縮アルゴリズムは、８×８、８×４又は４×８スーパーブロックを処理するために更に使用される。そのような場合、画素は、最初に４×４画素にサブサンプリングされ、次にＥＴＣ２で通常通り圧縮される。従って、８×８スーパーブロックにおいて、単一のプロパティ値は、好ましくは４個のプロパティ値の平均値としてスーパーブロックにおいてオーバラップしない２×２画素グループ毎に算出される。従って、６４個のプロパティ値は、６４ビットの圧縮ブロックを取得するためにＥＴＣ２圧縮器に入力される１６個のプロパティ値にまで減少する。伸張中、圧縮ブロックから取得されたプロパティ値の伸張表現の各々は、それぞれの２×２画素グループに割り当てられる。より小さなスーパーブロックの場合、サブサンプリングは１次元でのみ必要である。すなわち、オーバラップしない２×１又は１×２画素グループ毎に単一のプロパティ値を判定する。
【００７２】
ＥＴＣ２［２、４、５］において、フリップビットは、使用される２個の異なる画素ブロック配列のうちのどちらかを信号伝送するために圧縮ブロックにおいて使用される。あるいは、このフリップビットは、圧縮ブロックが個別に圧縮された画素ブロック又は複数の画素ブロックを含むスーパーブロックから発生するかを判定するために本明細書において識別されたように、モード識別子として使用されてもよい。
【００７３】
２ビットのモード識別子が必要な場合、一方のビットは、上述のフリップビットであってもよい。他方のビットは、例えば色コードワードにおいて青色成分専用のビット数を減少することにより取得される。
【００７４】
別の手段は、４×４画素ブロックを６４ビットに圧縮するのに適したＤＸＴＣ［１］を使用する。ＤＸＴＣは、特に２個の色コードワードを含む圧縮ブロックを生成する。しかし、第１の値に等しい第１の色コードワード及び第２の値に等しい第２の色コードワードを含む圧縮ブロックは、伸張中、第２の値に等しい第１の色コードワード及び第１の値に等しい第２の色コードワードを含む圧縮ブロックと同一の伸張プロパティ値を生成する。その結果、ＤＸＴＣ圧縮器は、第１の色コードワードの値が常に第２の色コードワードの値より小さく且つ依然として全ての入力画素ブロックを処理できるようにさせられる。この序列トリックは、圧縮ブロックが画素ブロック又はスーパーブロックのいずれを起源とするか示すために使用される。従って、第１の色コードワードが第２の色コードワードより小さい場合、圧縮ブロックは画素ブロックを起源とする。しかし、第１の色コードワードが第２の色コードワードより大きい場合、圧縮ブロックはスーパーブロックを起源とする。これは、この場合モード識別子が色コードワードを含むことを意味する。色コードワードの序列を使用して２個の異なるモードを取得することについての説明は、教示が本明細書において参考として取り入れられる［５］において広範に説明される。
【００７５】
従って、４×４画素ブロックは、ＤＸＴＣにおけるように圧縮されるが、第１の色コードワードが第２の色コードワードより小さくなければならない。８×８スーパーブロックは、４×４プロパティ値を取得するために、最初に上述のようにサブサンプリングされる。これらは、ＤＸＴＣにおけるように圧縮されるが、第１の色コードワードが第２の色コードワードより大きくなければならない。
【００７６】
８×８、８×４及び４×８等の３個の異なるサイズのスーパーブロックを含む場合に対してＤＸＴＣを使用することが更に可能である。そのような場合、例えば、最初の２個の画素は、教示が本明細書において参考として取り入れられる文献［１］を参照すると、２個の色コードワードにより示された２個のベースカラーの異なる線形組合せとして判定される４個の色表現のうちの１つを識別するために使用された画素指標において同一の最も重要なビットを有するようにさせられる。従って、この手法により１ビットが節減される。次に、このビットは、圧縮画素ブロックが４×４画素ブロック、８×８スーパーブロック、８×４スーパーブロック又は４×８スーパーブロックのいずれを起源とするかを示すするために上述の序列トリックと共に使用される。ｘ方向（列にわたり）及び／又はｙ方向（行にわたり）におけるサブサンプリングは、上述したように最初にスーパーブロックに対して使用される。
【００７７】
あるいは、モード識別子を信号伝送するために、第１の色コードワード及び第２の色コードワードに対する制限は使用されない。明らかに対照的に、余分なビットは、色コードワードにおいて色成分のうちの１つから取得される。例えば、ＲＧＢ５６５ではなく代わりにＲＧＢ５５５を使用することにより、すなわちコードワードにおいて色成分毎に５ビット費やすことにより、２ビットがモード識別子として使用可能になる。
【００７８】
更なる一実施形態は、１６×１６、１６×８又は８×１６画素サイズのスーパーブロックにおける、８×８画素を有する画素ブロックである。スーパーブロックに対してサブサンプリングは必要ないが、各ブロックは、Ｈ．２６４［６］においてイントラフレームとして圧縮される。文献［６］は、本明細書において参考として取り入れられる。従来イントラフレームにおいて使用されたヘッダ情報及び他のメタデータは、本実施形態において省略される。代わりに、依然として２４８ビット以下のビット長が結果として得られる最小の量子化が判明するまで種々の量子化パラメータ（ｑｐ）を試行することにより、画素ブロック又はスーパーブロックが圧縮される。ビット長が２４８ビットを下回る場合、２４８ビットになるように、一連の０bin又は１bin等のダミービットが例えばビットシーケンスの末尾に付けられる。圧縮ブロックは、上記で列挙された４個の画素グループのうちのいずれかを示す２ビットのモード識別子と、６ビットで識別されたｑｐ値と、最後に最大２４８ビットを有する圧縮プロパティ値とを含む。従って、圧縮の合計サイズは、８×８画素ブロック、あるいは１６×１６、１６×８又は８×１６スーパーブロックのいずれを起源にするかに関係なく２５６ビットになる。
【００７９】
今日、Ｈ．２６４［６］において、最小の許可された画像サイズは１６×１６画素である。しかし、これは、圧縮器が目標サイズの画素ブロック又はスーパーサイズに到達すると圧縮器の動作を停止することにより、容易に解決される。
【００８０】
［復号化］
図８は、メモリに格納された複数の圧縮ブロックにより示された画像を復号化する方法を示すフローチャートである。この方法は、一般にステップＳ５０から開始し、画像中で画素のプロパティ値を生成するために必要な少なくとも１個のプロパティ値を有する所望の圧縮ブロックのメモリアドレスが判定される。圧縮の実施形態が同一の目標ビット長を有する圧縮ブロックを生成するため、圧縮ブロックのいずれかへのランダムアクセスは、最初に圧縮ブロックのメモリアドレスを算出することにより容易に実行される。圧縮ブロックのバイトアドレスは、画素ブロックが８×８画素である場合に単に（ｆｌｏｏｒ（ｙ／８）×ｗｉｄｔｈ／８＋ｆｌｏｏｒ（ｘ／８））×Ｓｉｚｅ／８であるか、あるいは画素ブロックが４×４画素である場合にｆｌｏｏｒ（ｙ／４）×ｗｉｄｔｈ／４＋ｆｌｏｏｒ（ｘ／４））×Ｓｉｚｅ／８である。
【００８１】
従って、復号化されるべきプロパティ値を有する第１の座標（ｘ，ｙ）画素は、画像の幅ｗｉｄｔｈ及び目標ビット長Ｓｉｚｅと共に上記の式に入力され、画素ブロック又は所望の画素ブロックを含むスーパーブロックから発生する圧縮ブロックの記憶場所を取得する。
【００８２】
圧縮ブロックのＳｉｚｅビットは、ステップＳ５１においてランダムアクセスメモリ（ＲＡＭ）から取り出され、メモリバスを介してＲＡＭから圧縮ブロックが復号化中に一時的に格納されるキャッシュに転送される。圧縮ブロックは、ステップＳ５２において伸張され、画素ブロック又はスーパーブロックの元のプロパティ値の表現として使用される複数のプロパティ値を取得する。圧縮ブロックは、上述したようなモード識別子を更に含むのが好ましい。このモード識別子は、基本的に、圧縮ブロックが画素ブロック又はスーパーブロックのいずれを起源にするか、並びにオプションとしてスーパーブロックのサイズ及び形状を規定する。従って、モード識別子の値は、ステップＳ５３において調査されるのが好ましい。
【００８３】
モード識別子がスーパーブロックを示す第１の値を有する場合、伸張中にステップＳ５２において判定された複数のプロパティ値は、目標画素を含む画素ブロックの画素及び少なくとも１個の画素ブロックの画素に割り当てられる。画素ブロック及び少なくとも１個の他の画素ブロックは、共にスーパーブロックに含まれる。これは、メモリアクセス及びステップＳ５１の圧縮ブロックの取出しが画素ブロックに対応する画像又はテクスチャの一部のプロパティ値を判定するために圧縮ブロックを検索する意図があったとしても、画像又はテクスチャの少なくとも１個の隣接部分に対するプロパティ値は無償で、すなわち更なるメモリアクセスを全く使用せずに取得されることを意味する。例えば、単一のメモリアクセスで６４個のプロパティ値を取得し、且つ８×８画素ブロックに対して圧縮ブロックを伸張することが期待された。しかし、例示的な一例において、２５６個又は１２８個のプロパティ値が１６×１６スーパーブロック又は１６×８／８×１６スーパーブロックを起源とする圧縮ブロックとして代わりに取得される。従って、ここで、キャッシュは、画像中で目標画素を含む画素ブロックだけでなく、少なくとも１個の隣接画素ブロックの元のプロパティ値の伸張プロパティ値を含む。
【００８４】
画像の少なくとも１個の画素は、キャッシュに存在する、ここで提供されたプロパティ値に基づいてステップＳ５６において復号化される。このような復号化は、画像の単一のプロパティ値を算出するためにステップＳ５２からの少なくとも２個の伸張プロパティ値を使用することを含むが好ましい。例えば、２次元線形補間において、２×２プロパティ値のチャンクは、復号化された画像中で画素のプロパティ値を判定するために使用される。これは、当技術分野において既知である。それに対応して、３次元線形補間において、８個のプロパティ値は、単一の画素の復号化されたプロパティ値を判定するために使用される。
【００８５】
本明細書における利点は、キャッシュに存在するプロパティ値が同一のスーパーブロックの目標画素ブロックだけでなく少なくとも１個の隣接画素ブロックを含むことである。これは、２次元線形補間のための２×２プロパティ値のチャンクが画素ブロックの境界を越えて存在する場合、プロパティ値を復号化するのに単一のメモリアクセスで十分である場合が多いことを意味する。従って、上部２個の画素及びプロパティ値が第１の画素ブロックに属し且つ下部２個の画素及びプロパティ値が第２の隣接画素ブロックに属すると仮定する。更に、これらの２個の画素ブロックが圧縮中にスーパーブロックとして共に処理されていたと仮定する。そのような場合、ステップＳ５１の単一のメモリの取出しにより、双方の画素ブロックに対するプロパティ値を生成できるようにする圧縮ブロックを実際に提供する。従来技術の従来の手法において、２個の別個のメモリアクセスは、最初に第１の画素ブロックの圧縮ブロックを提供し、次に第２の画素ブロックの圧縮ブロックを提供するのに必要であったと考えられる。メモリアクセス及び帯域幅の削減は、実施形態により達成される。
【００８６】
また、後で復号化中に隣接画素ブロックの少なくとも１個のプロパティ値が画像復号化に必要であることが判定された場合、実施形態は更なる利点を提供する。この隣接画素ブロックに対するプロパティ値は、より最近のデータにより置換されない限り他の画素ブロックに対して前のメモリアクセスにおいて取り出されたため、キャッシュに既に存在する。従って、隣接画素ブロックのプロパティ値を取得するのに新しい時間のかかるメモリアクセス及び圧縮ブロックの伸張は必要ない。テクスチャにおいて互いに隣接する画素ブロックからのプロパティ値を使用することは、画像復号化中非常に一般的である。例えば、第１の画素ブロックからの第１のプロパティ値は、画像の画素を描画するために必要とされ、その後描画される次の画素は、第１の画素ブロックの隣接画素ブロックである第２の画素ブロックからのプロパティ値を必要とする。これらの画素ブロックの双方が同一のスーパーブロックに属する場合、第２の画素ブロックのプロパティ値は、無償で発生し、第１の画素ブロックと同一のメモリアクセスにおいて取得される。
【００８７】
別の一実施形態において、ステップＳ５２の圧縮ブロックの伸張は、画素ブロック及び少なくとも１個の隣接画素ブロックに対する全てのプロパティ値を取得するために圧縮ブロックを伸張する必要はない。明らかに対照的に、伸張は、目標プロパティ値又は目標プロパティ値の集合がステップＳ５２において１回で伸張されるように実現される。そのような場合、ステップＳ５４において、少なくとも１個の目標プロパティ値を画素ブロックにおける少なくとも１個の画素に割り当てる。更に、圧縮中に画素ブロックと共に圧縮された隣接画素ブロックから少なくとも１個のプロパティ値がその後必要とされる場合、隣接画素ブロックに対する圧縮ブロックデータはキャッシュ上に既に存在する。従って、ステップＳ５２が隣接画素ブロックに対して繰り返されるが、ステップＳ５１において取り出され且つキャッシュ上に存在する同一の圧縮ブロック又は圧縮ブロックのコピーを使用する。次に、ステップ５４において、少なくとも１個の伸張プロパティ値を隣接画素ブロックにおける少なくとも１個の画素に割り当てる。画像の画素は、画素ブロック及び隣接画素ブロックからの伸張プロパティ値に基づいてステップ５６において復号化される。
【００８８】
ステップＳ５３において、モード識別子が、圧縮ブロックが単一の画素ブロックを起源とすることを示す場合、ステップＳ５５に継続する。このステップにおいて、ステップＳ５２から取得された少なくとも１個のプロパティ値は、単一の画素ブロックの少なくとも１個の画素に割り当てられる。従って、圧縮ブロックがスーパーブロック又は画素ブロックに関連するかに関係なく、ステップＳ５１において同一の量のデータがメモリから取り出される。しかし、モード識別子が第２の値ではなく第１の値を有する場合に複数の画素ブロックがスーパーブロックとして共に圧縮されているため、ステップＳ５４において、ステップＳ５５と比較してより多くのプロパティ値が圧縮データから取得可能である。
【００８９】
図９は、復号化方法の更なる好適なステップを示すフローチャートである。この方法は、図８のステップＳ５３から継続する。次のステップＳ６０において、判定されたプロパティ値のうちのいくつかが割り当てられるべき少なくとも１個の他の画素ブロックを識別する。この少なくとも１個の他の画素ブロックは、図８のステップＳ５０において判定された画素ブロックのメモリアドレス及び好ましくはモード識別子に基づいて識別される。従って、モード識別子は、２つ以上が可能である場合に現在の圧縮ブロックが対応するスーパーブロックの種類を判定するために使用される。スーパーブロックの種類により、４個又は２個等のスーパーブロックが含む画素ブロック数、並びに２個の行及び列に編成されるか、あるいは同一の行又は同一の列に互いに隣接して編成される等、画素ブロックが互いに対して画像中でどのように編成されるかに関する情報が更に与えられる。圧縮ブロックのメモリアドレスは、スーパーブロックにおいて画素ブロックの位置を判定するために使用される。例えば、モード識別子が１６×１６スーパーブロックとして示し、且つ画素ブロックが１２個の画素ブロックに対応する幅を有する画像の画素ブロック数６に対応することをメモリアドレスが示すと仮定する。そのような場合、モートン序列又は圧縮ブロックの他の何らかの局所性向上序列が使用されない限り、画素ブロックがスーパーブロックの右上の隅を占有し、且つ圧縮ブロックから更に取得される他のプロパティ値が画素ブロック数５、５＋１２＝１７及び６＋１２＝１８に割り当てられるべきであると判定する。その後、図８のステップＳ５４に継続する。
【００９０】
キャッシュが単一の画素ブロックのプロパティ値のみを保持するように設計されるが、複数の圧縮ブロックを含む場合、図１０は別の手法を示す。そのような場合、メモリから取り出された圧縮ブロックは、画素ブロック専用の第１のキャッシュ場所に入力される。圧縮ブロックはステップＳ５２において伸張され、モードは図８のステップＳ５３において識別される。圧縮ブロックが単一の画素ブロックではなくスーパーブロックに関連すると結論付けられた場合、図１０のステップ７０に継続する。そのような場合、ステップＳ５１において取り出された圧縮ブロックは、画素ブロックと同一のスーパーブロックの一部を構成する少なくとも１個の他の画素ブロック専用の少なくとも１個の第２のキャッシュ場所にコピーされる。
【００９１】
その後ステップＳ５２に継続し、第２のキャッシュ場所に提供された圧縮ブロックは、少なくとも１個の他の画素ブロックのプロパティ値を取得するように伸張される。スーパーブロックにより含まれた全ての画素ブロックのプロパティ値は、再度取得される。
【００９２】
別の一手法において、第１のメモリアクセスは、メモリから目標画素ブロックに対応する圧縮ブロックを取り出し、それをキャッシュに格納する。後で別の画素ブロックに存在する１個以上の画素が必要とされる場合、復号化方法は、この別の画素ブロックに対応する圧縮ブロックがキャッシュに存在するかを調査するのが好ましい。圧縮ブロックがキャッシュ上になく、すなわちキャッシュミスであり、且つこの別の画素ブロックとして潜在的に共に圧縮された、すなわち双方が同一のスーパーブロックに属する画素ブロックに関連する圧縮ブロックデータに対するキャッシュを復号化方法が代わりに傍観すると仮定する。この場合は、そのような圧縮ブロックは、事前にメモリから取り出されており且つ実際にはキャッシュ上に存在する。圧縮ブロックのモード識別子は、この識別された圧縮ブロックが実際には別の画素ブロックに適用可能であるか、すなわち画素ブロック及び別の画素ブロックが同一のスーパーブロックに属するかを判定するための識別子であるのが好ましい。そのような場合、既にキャッシュ上に存在する圧縮データは、更なるメモリアクセスを全く使用せずに別の画素ブロックに対して使用される。
【００９３】
圧縮に対して説明したように、事前定義された目標ビット長を含む圧縮ブロックに起因するあらゆる固定レート圧縮が使用されてもよい。図８のステップＳ５２において使用された特定の伸張アルゴリズムは、圧縮ブロックを生成するために使用された固定圧縮アルゴリズムにより要求される。
【００９４】
例えば、ＥＴＣ２又はＤＸＴＣは、１６個のプロパティ値を取得するように圧縮ブロックを伸張するために使用される。圧縮ブロックが８×８スーパーブロックを起源とすることをモード識別子が示す場合、４×４プロパティ値はアップサンプリングされる。これは、１６個のプロパティ値の各々が８×８スーパーブロックにおいてオーバラップしない画素の２×２グループの各々に割り当てられることを意味する。当然、この非常に簡単なアップサンプリングではなく、当技術分野において既知である他のアップスケーリングアルゴリズムが使用されてもよい。他のスーパーブロックのサイズに対して、アップサンプリングは１方向のみで使用される。すなわち、２×１又は１×２のグループにおいてプロパティ値を双方の画素に割り当てる。
【００９５】
Ｈ．２６４の場合、最初の２ビットは、圧縮ブロックが画素ブロック、スーパーブロックのいずれを起源とするかを判定し、スーパーブロックの場合はスーパーブロックの種類を判定するために使用される。その後、６ビットのｑｐコードワードが、圧縮ブロックの残りの部分に含まれたプロパティ値を伸張するために使用される量子化パラメータを判定するために使用される。
【００９６】
スーパーブロックは、特定の一実施形態において、画素数に関して、実際には画素ブロックの画素数をＮ倍上回るサイズを有してもよい。そのような場合、スーパーブロックの領域は、実際には画像中で隣接画素ブロック又はスーパーブロックの領域にオーバラップしてもよい。例えば図３Ｆにおいて、画素ブロック３２は８×８画素を有する。そのような場合、スーパーブロック２４は、例えば９×１６画素を有してもよい。これは、スーパーブロック２４が、画像中で自身が全体として含む２個の画素ブロック３４の領域及びスーパーブロック２４の下側に存在する２個の画素ブロック３２の第１の行により更に占有された画像の領域を範囲に含むことを意味する。スーパーブロックのそのようなオーバラップにより、ブロックの境界を越えてよりシームレスに遷移してもよい。
【００９７】
特定の一実施形態において、オーバラップするスーパーブロックは、１個の同一の画素ブロックが実際には２個以上のスーパーブロックに属するように使用される。例えば図３Ａを参照すると、第１のスーパーブロック２０は画素ブロック３０Ａ〜３０Ｄを含み、第２の部分的にオーバラップするスーパーブロックは画素ブロック３０Ｂ、３２Ａ、３０Ｄ、３２Ｃを含み、第３のスーパーブロック２２は画素ブロック３２Ａ〜３２Ｄを含む。この例示的な例において、画素ブロック３０Ｂ、３０Ｄ、３２Ａ及び３２Ｃは２個のスーパーブロックに属する。例えば、画素ブロック３０Ｃに対応する圧縮ブロックが取り出され且つ伸張される場合、更に同一のスーパーブロック２０に属する隣接画素ブロック３０Ａ、３０Ｂ、３０Ｄの伸張プロパティ値は無償で取得されてもよい。それに対応して、画素ブロック３０Ｄに対応する圧縮ブロックが代わりに取り出され且つ伸張される場合、更に隣接画素ブロック３０Ｂ、３２Ａ、３２Ｃに対して適用可能なプロパティ値は、同一のスーパーブロックに属するため無償で取得されてもよい。オーバラップするスーパーブロックは、行単位、列単位で使用されるか、あるいは行及び列に沿って双方に適用される。
【００９８】
［実現例］
図１１は、一実施形態に係る復号化システムを示す概略図である。システムは、圧縮ブロックを含む記憶場所３１０〜３４０を有するＲＡＭ３００を含む。ＧＰＵ４００は、メモリバスを介してＲＡＭ３００に接続される。ＧＰＵ４００は、ＲＡＭから取り出される画素ブロック及び圧縮ブロックを識別する機能又はデバイス４１０を含む。この画素ブロック識別子４１０は、基本的に、ＲＡＭ３００において圧縮ブロックのアドレスを算出し、メモリアクセス要求をバスを介してメモリ３００に送出する。画素ブロックに割り当てられたかあるいは画素ブロック専用の記憶場所３１０に存在する圧縮ブロックは、メモリから読み出され、バスを介してＧＰＵの画像復号器２００に転送される。
【００９９】
画像復号器２００は、圧縮ブロック及びプロパティ値を格納するキャッシュ場所又は領域４２２、４２４を有する少なくとも１個のキャッシュ４２０を含むかあるいはそれに接続される。ＧＰＵ４００は、一般に、復号化された画像５が表示される表示画面４３０に接続される。
【０１００】
ＧＰＵ４００及びそれに含まれたユニット２００、４１０、４２０は、グラフィックスカード、ビデオカード又はマザーボード等の１個以上のチップに提供されてもよい。
【０１０１】
［画像圧縮器］
図１２は、画像圧縮器１００の一実施形態を示す概略ブロック図である。画像圧縮器１００は、画像を同一のサイズ又は異なるサイズを有する複数のスーパーブロックに分解する画像分解器１１０を備える。スーパーブロックはそれぞれ複数の画素ブロックを含むが、この複数の数は種々のスーパーブロック毎に異なってもよい。しかし、各画素ブロックは、４×４画素又は８×８画素等の固定の画素数である。
【０１０２】
画像圧縮器１００の固定レート圧縮器１２０は、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮する。固定レート圧縮器１２０は、出力された圧縮ブロックが目標ビット長を有する限り、規定のあらゆる固定レート圧縮アルゴリズムに従ってプロパティ値を圧縮する。
【０１０３】
メモリ割当器１３０は、固定レート圧縮器１２０からの圧縮ブロックをメモリ１４０、３００の記憶場所に割り当てる。これらの記憶場所は、スーパーブロックにより含まれた複数の画素ブロックに割り当てられるか、あるいは画素ブロック専用である。これは、同一の圧縮ブロックの複数のコピーがこれらの記憶場所に存在し、関連する画素ブロックに対して各記憶場所において１個の圧縮ブロックのコピーが存在することを意味する。メモリ１４０は画像圧縮器１００に存在する。あるいは、メモリ３００は外部に又はリモートで提供される。そのような場合、圧縮ブロックは有線で又は無線で送出される。あるいは、メモリ割当器１３０は、最初に、内部メモリ１４０の複数の記憶場所に圧縮ブロックを入力し且つ格納する。次に、画像又はテクスチャ全体が圧縮されると、圧縮ブロックデータは、復号化システム等においてリモートメモリ３００に転送される。
【０１０４】
画像圧縮器１００は、一実施形態において圧縮ブロックの複数のコピーを含むスーパーブロックのプロパティ値を表現することを示す誤差計測値を判定する誤差処理器１７０を備えるのが好ましい。誤差計測値が最大誤差閾値を上回る場合にスーパーブロックを複数の個別の画素ブロックに分解するブロック分解器１６０が提供されてもよい。そのような場合、固定レート圧縮器１２０はプロパティ値を再度圧縮するが、ここでは各画素ブロックが別個に処理されるため、複数の一般に異なる圧縮ブロックを生じさせる。これらの圧縮ブロック１３０は、画素ブロック毎に専用のメモリ１４０、３００の記憶場所に割り当てられる。従って、これらの複数の記憶場所は、一般に種々の圧縮ブロックデータを含む。
【０１０５】
別の実施形態において、圧縮ブロックの複数の一致するコピーを含むスーパーブロックのプロパティ値を表現することを示す第１の誤差計測値を判定する誤差処理器１７０を使用する。スーパーブロックは、ブロック分解器１６０により個別の複数の画素ブロックに更に分解される。固定レート圧縮器１２０は、複数の圧縮ブロックを取得するためにそのような各画素ブロックを固定レート圧縮する。次に、誤差処理器１７０は、複数の圧縮ブロックを含むスーパーブロックのプロパティ値を表現することを示す第２の誤差計測値を算出する。本実施形態において、誤差計測値は上述されたレート歪み値であるのが好ましい。２個以上の種類のスーパーブロックが図３Ｂ〜図３Ｉに関連して上述したように使用可能である場合、画像の一部分が３回以上圧縮されてもよいため、スーパーブロック、スーパーブロックの組合せ、スーパーブロックと画素ブロックとの組合せ又は画素ブロックの組合せ毎の誤差計測値を判定する。
【０１０６】
オプションの表現選択器１８０は、少なくとも２個の誤差計測値を解析し、プロパティ値がスーパーブロックとして共に圧縮されるべきか、あるいは複数の画素ブロックとして個別に圧縮されるべきかを選択する。レート歪み計測値の場合、最も低いレート歪みに起因するバージョンが表現選択器１８０により選択される。
【０１０７】
画像圧縮器１００は、モード識別子を圧縮ブロックに割り当てるモード割当器１５０を更に備えるのが好ましい。このモード識別子は、圧縮ブロックの専用のビット又はビットシーケンスであるか、あるいは圧縮ブロックの色コードワードを更に示す等の２元機能を少なくとも有する。モード識別子は、プロパティ値がスーパーブロックとして共に圧縮された方法、複数のスーパーブロック又は１つのスーパーブロック及び複数の画素ブロックとして部分的に共に圧縮された方法、あるいは複数の画素ブロックとして個別に圧縮された方法を示す値を有する。
【０１０８】
画像圧縮器１００のユニット１１０〜１３０、１５０〜１８０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。画像圧縮器１００は、例えば、コンピュータ、ラップトップコンピュータ、移動電話及び他の移動処理ユニット、ゲーム機等のテクスチャ処理端末の中央処理装置（ＣＰＵ）上に設けられてもよい。ソフトウェアで実現される場合、特定の実施形態は、適切なオペレーティングシステム及びメモリ手段を有するコンピュータ又は他のあらゆるデータ処理端末に導入される場合に本明細書において開示された画像圧縮及び／又は画像ブロック圧縮の機能性を実行するようにコンピュータ又はデータ処理端末を動作可能に構成する機械可読命令の集合を有するコンピュータプログラムに関する。このような状況において、コンピュータは、コンピュータプログラムにより規定された画像（ブロック）圧縮の機能性を実行する手段を有するあらゆる処理デバイス、端末、チップ、ユニット又はシステムを含むように広く解釈されるべきである。
【０１０９】
更に画像（ブロック）圧縮の機能性は、コンピュータ可読媒体、コンピュータのハードディスク等のメモリ、あるいは他の画像又はグラフィックス処理ユニット、ＲＯＭ，ＲＡＭ等上で具体化されてもよい。
【０１１０】
［画像復号器］
図１３は、図１１において示された画像復号器等の画像復号器２００の一実施形態を示す概略ブロック図である。画像復号器２００は、少なくとも１個の画素、画像の画素を復号化するのに必要なプロパティ値を含む目標画素ブロックと関連付けられた圧縮ブロックのメモリアドレスを判定するアドレス判定器２６０を備えるのが好ましい。
【０１１１】
アドレス判定器２６０により判定されたメモリアドレスは、画像復号器２００において実現されたメモリアクセッサ２１０に転送され、メモリにアクセスし且つ判定されたメモリアドレスを占有する圧縮ブロックを取り出す。メモリは、一般に、限られたメモリ帯域幅を有するメモリバスを介してメモリアクセッサ２１０にアクセス可能なＲＡＭである。
【０１１２】
読み出された圧縮ブロックは、少なくとも１個のプロパティ値を取得するために圧縮ブロックのビットシーケンスを伸張するように構成された伸張器２２０に送られる。少なくとも１個のプロパティ値は、目標画素ブロックの少なくとも１個の画素に割り当てられる。それに対応して、圧縮ブロックに存在するモード識別子が、圧縮ブロックがスーパーブロックを起源とすることを示している場合、伸張から取得された少なくとも１個のプロパティ値は、圧縮中にスーパーブロックとして目標画素ブロックと共に圧縮された少なくとも１個の隣接画素ブロックに割り当てられる。あるいは、伸張器２２０は、最初に目標画素ブロックの少なくとも１個のプロパティ値を伸張する。その後、伸張器２２０は、隣接画素ブロックの少なくとも１個のプロパティ値を伸張する必要がある。しかし、隣接画素ブロックの圧縮ブロックは、前の目標画素ブロックに対してメモリアクセッサ２１０により取り出された圧縮ブロックデータに一致するため、既にキャッシュに存在する。従って、伸張器２２０は、圧縮ブロックを直接伸張し、別のメモリアクセスを必要とせずに少なくとも１個のプロパティ値を隣接画素ブロックに提供する。
【０１１３】
画素復号器２５０は、取得したプロパティ値のうちの少なくとも１個に基づいて画像の画素を復号化するように構成される。好適な一実現例において、復号化する特定の画素に依存して、目標画素ブロックからの少なくとも１個のプロパティ値及び少なくとも１個の他の画素ブロックからの少なくとも１個の画素は、２次元線形補間又は３次元線形補間等において画像中の画素のプロパティ値を算出するために使用されるのが好ましい。
【０１１４】
画像復号器２００は、オプションとして、上述したように目標画素ブロックのメモリアドレス及び好ましくはモード識別子に基づいて少なくとも１個の他の画素ブロックを識別するように構成された画素識別器２７０を備える。
【０１１５】
伸張されたプロパティ値を目標画素ブロックと同一のスーパーブロックに存在する少なくとも１個の他の画素ブロックの画素に割り当てるのではなく、メモリアクセッサ２１０によりアクセスされた圧縮ブロックは、画像復号器２００に対して使用可能なキャッシュの少なくとも２個のキャッシュ場所に一時的に入力される。そのような場合、これらのキャッシュ場所のうちの１個は目標画素ブロックに対して使用可能であり、少なくとも１個の他の場所は少なくとも１個の他の画素ブロックに対して使用可能である。そのような場合、後で復号化中に及び少なくとも１個の他の画素ブロックからのプロパティ値が必要とされる場合、圧縮ブロックは、新しいデータにより置換されない限り、新しい時間のかかるメモリアクセスを実行することなくキャッシュ場所から取り出される。
【０１１６】
画像復号器２００のユニット２１０〜２８０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。画像復号器２００は、例えばコンピュータ、ラップトップコンピュータ、移動電話又は別の移動処理ユニット、ゲーム機等のテクスチャ処理端末のＧＰＵ上に設けられてもよい。
【０１１７】
ソフトウェアで実現される場合、特定の実施形態は、適切なオペレーティングシステム及びメモリ手段を有するコンピュータ又は他のあらゆるデータ処理端末に導入される場合に本明細書において開示された画像復号化及び／又は画像ブロック復号化の機能性を実行するようにコンピュータ又はデータ処理端末を動作可能に構成する機械可読命令の集合を有するコンピュータプログラムに関する。このような状況において、コンピュータは、コンピュータプログラムにより規定された画像（ブロック）復号化の機能性を実行する手段を有するあらゆる処理デバイス、端末、チップ、ユニット又はシステムを含むように広く解釈されるべきである。
【０１１８】
更に画像（ブロック）復号化の機能性は、コンピュータ可読媒体、コンピュータのハードディスク等のメモリ、あるいは他の画像又はグラフィックス処理ユニット、ＲＯＭ，ＲＡＭ等上で具体化されてもよい。
【０１１９】
上述したように、画像圧縮器及び／又は画像復号器は、ソフトウェア、ハードウェア又はそれらの組合せとして実現されてもよい。画像圧縮器及び／又は画像復号器、あるいはそれらの一部を実現するコンピュータプログラムは、汎用のあるいは特別に構成されたコンピュータ、プロセッサ又はマイクロプロセッサ上で実行されたソフトウェア又はコンピュータプログラムを含む。ソフトウェアは、コンピュータプログラムコード要素又はソフトウェアコード部分を含む。プログラムは、全体的にあるいは部分的に、１個以上の適切なコンピュータ可読媒体、あるいは磁気ディスク、ＣＤ−ＲＯＭ又はＤＶＤディスク、ＵＳＢメモリ、ハードディスク、光磁気メモリ記憶媒体等のデータ格納手段上に、あるいはそれらに、ＲＡＭ又は揮発性メモリに、ファームウェアとしてＲＯＭ又はフラッシュメモリに、あるいはデータサーバ上に格納されてもよい。画像圧縮器及び／又は画像復号器は、上述したようにコンピュータ又は他のあらゆるデータ処理デバイスにおいて実現されてもよい。
【０１２０】
［実現例の態様］
特定の一実施形態において、バーストモードでクロックサイクル毎に２個の８ビットのワード、すなわち１６ビットを生成することを意味する「２倍速」である８ビット幅のバスを含む復号化システムを仮定する。通常、メモリ転送を設定するのに３クロックサイクルを要する。これは、当技術分野において「ＣＡＳサイクル」と呼ばれる。従って、１６ビットのメモリ転送を設定するために、この例において４サイクル、以下のＣにより示されたＣＡＳに対して３サイクル及び以下のＴ１６により示されたデータ転送に対して１サイクルが必要とされる。
【０１２１】
Ｃ  Ｃ  Ｃ  Ｔ１６
しかし、サイズ４のバーストは、３個のＣＡＳサイクルがかかるが、更に３個の転送のみを必要とし、以下の結果が得られる：
Ｃ  Ｃ  Ｃ  Ｔ１６  Ｔ１６  Ｔ１６  Ｔ１６
あるいは７サイクルが得られる。従って、１／２以下のサイクル数の場合、４倍のデータが取得される。従って、８ビットのバスシステムにおいて、６４ビットは適度なバーストサイズであるが、１６ビットの読み出しは不経済である。これは、各画素ブロックが６４ビット幅である多くの固定レート圧縮アルゴリズムに対してうまく適合する。
【０１２２】
一実施形態は、本明細書においてテクスチャを４×４画素ブロックに分割し且つＥＴＣ２又はＤＸＴＣ等を使用して各ブロックを６４ビットに圧縮する従来のテクスチャ圧縮システムと比較される。
【０１２３】
テクスチャは、一般に、互いに近接するバイトが多くの場合互いに近接する画像の特徴を示すように、局所性を向上するためにモートン序列で格納される。従って、１６×１６画素サイズのテクスチャは、ｍ００〜ｍ１５の１６個の４×４画素ブロックを有する。それらは、モートン序列で配置される場合、以下のように画面上に配列される。
ｍ００  ｍ０１  ｍ０４  ｍ０５
ｍ０２  ｍ０３  ｍ０６  ｍ０７
ｍ０８  ｍ０９  ｍ１２  ｍ１３
ｍ１０  ｍ１１  ｍ１４  ｍ１５
【０１２４】
しかし、圧縮されたそれらに対応するものは、ｍ００  ｍ０１  ｍ０２  ｍ０３  ｍ０４  ｍ０５  ｍ０６．．．ｍ１５としてメモリに配列される。
【０１２５】
殆どのシステムは、画像の微分係数が算出されるように２×２画素のチャンクにおいて画像をラスタ化する。図１４において、１６×１６ビットのカラーバッファが示される。第１の２×２画素チャンクは４個の白丸でマーク付けされ、第２の２×２画素チャンクは４個の三角形でマーク付けられ、プラス符号及び十字形が後続する。カラーバッファ全体を範囲に含む大きな四辺形がレンダリングされ、且つ白丸でマーク付けされた画素が最初にラスタ化されて三角形でマーク付けられた画素等が後続すると仮定する。
【０１２６】
次に、ラスタライザは、一般に画素毎にフラグメントシェーダプログラムを実行する。ラスタライザは、白丸でマーク付けされた４個のフラグメントに対してフラグメントシェーダプログラムにおいて同時に第１の命令を実行することにより開始する。ラスタライザは、テクスチャルックアップに達するまで全ての４個のフラグメントに対して第２の命令、次に第３の命令等を実行することにより継続する。所望のテクセルがキャッシュにない場合、外部メモリへの読み出しコマンドが付与される。しかし、ラスタライザは、データが使用可能になる前にいくつかのクロックを要する。従って、ラスタライザは、キャッシュミスを含むテクスチャルックアップに達するまで、白丸でマーク付けされた４個のフラグメントに対する状態を省き、三角形でマーク付けされたフラグメントに対する命令、全ての４個のフラグメント上のシェーダの第１の命令、次に第２の命令等を代わりに実行し始める。その後ラスタライザは、８×８ブロックにおいて最後の４個の画素に達するまで、プラス、次に十字形等最後まで進む。このように実行される場合、ラスタライザは、白丸でマーク付けされたフラグメントを再考する。この時点で、メモリの要求が提供され且つデータが使用可能である可能性が非常に高い。ここで、ラスタライザは、キャッシュミスを含む別のテクスチャルックアップを終了するか、あるいはそれに達するまで、フラグメントシェーダにおいて次の命令を実行し、その後、三角形等でマーク付けされたフラグメントを継続する。全てのフラグメントが全てのシェーダ命令を有する場合、ラスタライザは終了する。
【０１２７】
このように、ラスタライザは、テクスチャアクセスにより発生するメモリ遅延時間の殆どを隠蔽する。
【０１２８】
特定の一実現例において、モード識別子は、圧縮ブロックデータの開始又は開始に近接して存在するのが好ましい。そのような場合、モード識別子に対応するビットが受信され且つ調査されると、復号器は、圧縮ブロックがスーパーブロックに対応する単一の画素ブロック又は複数の画素ブロックに適用可能であるかを結論付ける。後者の場合、復号器は、同一のスーパーブロックの他の画素ブロックに関連するあらゆる読み出しコマンドをキューから除去する。これは、これらの他の画素ブロックに対する圧縮データがメモリから読み出される必要はなく、キューにおいて関連付けられた読み出しコマンドを有する他の画素ブロックの圧縮データが代わりに処理されることを意味する。これにより、メモリからキャッシュへの圧縮データの転送を更に加速する。
【０１２９】
従来のアーキテクチャは、一般に、ＤＸＴＣ又はＥＴＣ２を使用し、４×４画素ブロック毎に６４ビットを使用する。４×４画素ブロックは、一般にモートン序列で格納される。一例を図１５において示す。図１５は、図１４においてレンダリングされた四辺形が３２×３２画素サイズのテクスチャにマッピングされる方法を示す。例えば、Ａでマーク付けされた図１４における左上の隅は、Ａで更にマーク付けされた図１５において右端の隅にマッピングされる。
【０１３０】
図１５において各画素をレンダリングするために、図１４における４個のテクセル又は画素は、２次元線形ブレンドを実行するために読み出される。例えば、四角形でマーク付けされた４個の画素は、圧縮ブロックｍ１５に存在するテクセル又は画素を必要とする。ラスタライザは圧縮ブロックｍ１５を取り出し、これには６４ビット、すなわち７サイクルの１個のバーストアクセスを要する。その後、ラスタライザは、黒丸でマーク付けされたフラグメントを処理する場合、圧縮ブロックｍ１２を読み出す必要があり、これには更に６４ビット、すなわち別の７サイクルを要する。従って、四角形及び黒丸でマーク付けされた双方の画素をラスタ化するために、１２８ビット及び１４サイクルは、従来技術に従って外部メモリから読み出される必要がある。
【０１３１】
提案された一実施形態において、４個の４×４画素ブロックはスーパーブロックを形成する。例えば、ｍ１２、ｍ１３  ｍ１４及びｍ１５は、モートン序列で互いに隣接し且つ四角形を構成するため、そのようなスーパーブロックを形成する。従って、７サイクルのうちの６４ビットのバーストを使用して圧縮ブロックｍ１５を取り出す場合、圧縮ブロックｍ１２、ｍ１３及びｍ１４は無償で取り出される。従って、黒丸でマーク付けされた画素が後でラスタ化される際、データが依然としてキャッシュにある場合は別のメモリアクセスは必要ない。７サイクルはそのように節減される。
【０１３２】
実際には、バスは、今日一般に８ビット幅ではなく３２ビット幅であり、４サイクルのバーストは６４ビットではなく２５６ビットを取り出す。これは、従来の固定レートシステムが経済的なバースト挙動を有するように同時に４個の４×４画素ブロック又は８×８画素ブロックを読み出すことを意味する。提案されたシステムが２５６ビットの画素ブロックに対して８×８画素及び例えば２５６ビットの１６×１６スーパーブロックを有するため、これにより解析は変化しない。
【０１３３】
画像Ｌｅｎａは、画像を８×８スーパーブロックに分割し、且つ８×８スーパーブロックを更にそれぞれ４個の４×４画素ブロックに分割することにより従来技術のＥＴＣ２に従って圧縮され、ＥＴＣ２で全ての４×４画素ブロックを符号化する。伸張後の結果を図１６の右側に示す。
【０１３４】
また、８×８スーパーブロックの各々は、ＥＴＣ２で符号化された４×４画素ブロックにサブサンプリングされた。ＳＳＤはスーパーブロック毎に算出され、最低品質のスーパーブロックは従来技術に従って代わりに圧縮された。すなわち、スーパーブロックの４個の画素ブロックの各々は個別に圧縮される。この処理は、画像の５０％がスーパーブロックで処理され且つ残りの半分が個別の画素ブロックを有するまで繰り返された。伸張後の結果を図１６の左側に示す。
【０１３５】
従来技術に従うビットレートは、４ビット／画素（ｂｐｐ）である。本発明の例において、ＥＴＣ２圧縮器から６４ビットシーケンスに追加された１ビットのモード識別子を有することにより、スーパーブロック及び画素ブロック毎に６５ビットが費やされた。従って、ビットレートは、６５／１６×０．５＋６５／６４×０．５≒２．５４ｂｐｐとなった。図１６において示されるように、品質は依然として非常に高いが、ビットレートはほぼ半分である。
【０１３６】
ビットレートの低下は３６．５％と大幅に増加した。しかし、バスを介して転送される全てのテクセルが更に使用される場合にのみ、帯域幅がこのように節減される。スーパーブロックを使用する場合もあるため、これに当てはまらない可能性が高い。例えば、スーパーブロックが読み出される回数が半減する場合、画素ブロックを読み出すことは回避されると仮定する。それにより、２５％の帯域幅削減が達成され、これは非常に意義深い。例えば１０％のより低い削減でさえ意義深いと考えられる。
【０１３７】
更なる実現例の一例において、主に写真の６４個のテクスチャ及びゲームテクスチャの集合だけでなく、コンピュータにより生成された少数の画像が圧縮されている。固定レート圧縮器はＤＸＴ１−５６５圧縮に対するＴｈｅ  Ｃｏｍｐｒｅｓｓｏｎａｔｏｒ  １．５０．１７３１であり、ＤＸＴ１−５５５に達するために緑色成分において徹底的に探索された。従って、色コードワードの各々の１ビットは、上述したようにモード識別子として使用された。λを変動させることにより、各画像は、１ｂｐｐから、すなわち図３Ｃにおけるような８×８画素のスーパーブロックのみを使用して４ｂｐｐの多数のレートに圧縮された。ピーク信号対雑音比（ＰＳＮＲ）に関しての品質は、
ＰＳＮＲ＝１０ｌｏｇ（３ｗｈ２５５2／ｓｓｅ）
を使用して算出された。式中、ｓｓｅは画像にわたる平方誤差和であり、ｗ及びｈはテクスチャの幅及び高さである。図１７において、２個の破線は、レートに対する２個の異なるテクスチャの品質をグラフ化する。図示されるように、２個の破線はかなり異なる。すなわち、上部の破線の曲線の場合、品質が顕著に低下する前にビットレートを大幅に減少できるが、下部の破線の曲線により示されたテクスチャは、レートが下がる前に品質が急速に低下する。全ての６４個のテクスチャに対してｓｓｅを平均化することにより、最終的により短い黒色の実線の曲線が得られる。比較すると、従来技術に係る通常の固定レートＤＸＴ１−５６５は、４ｂｐｐ及び３７．９ｄＢでグラフにおいて三角形により示される。尚、ＰＳＮＲは、提案されたシステムの一実施形態を示す黒色の実線の曲線の端よりわずかに高い。この理由は、モード識別子に対して空間を有するために緑色成分において犠牲にされた２ビットである。通常は、提案されたシステムにより、かなり大きな帯域幅の削減に対して少量の品質を交換できることは、黒色の曲線から更に明らかである。
【０１３８】
別の実現例の態様において、固定レートＤＸＴ１−５６５より高いビットレートを有するコーデックは、品質を更に向上するために使用される。実現例の例により、４×４画素ブロックに対して使用される１２８ビット／ブロックコーデック（８ｂｐｐ）が提供される。第１の６４ビットは、２ビットのモード識別子に対して場所を開けるためにＲＧＢ５５５として格納された色を再度含むＤＸＴ１−５５５ブロックを示す。第２の６４ビットは、ＤＸＴ５において単にアルファ成分として復号化されるが、アルファ値ではなく画素毎に強度変更子値を含む。例えば、第１の６４ビットから復号化されたＲＧＢ値が（２２２；  １３２；  １６）であり、対応する画素に対する強度変更子値が１７８である場合、結果として得られる色はｃｌａｍｐ（（２２２；  １３２；  １６）＋（１７８；  １７８；  １７８）−（１２８；  １２８；  １２８））＝（２５６；  １８２；  ６６）となる。式中、ｃｌａｍｐ（・）は結果として得られる値が［０；  ２５５］の間隔にあることを確実にし、定数１２８により負の強度変更子を有することが可能になる。このコーデックは、［７］において示されたＹＣoＣg−ＤＸＴ圧縮の簡略化されたバージョンとしてみなされる。このようにＤＸＴ１−５５５分解値を補正することにより実質的に品質が向上するが、結果としてビットレートは倍増する。ＤＸＴ１−５５５圧縮の前に各色値を平面Ｒ＋Ｇ＋Ｂ−３８４＝０上で投影に向けて移動させることにより、いくつかのブロックに対して品質が更に向上する。
【０１３９】
これにより、ＤＸＴ１−５５５パートがクロミナンスを符号化するのが更に容易になる場合があるため、発生した強度誤差は強度変更子により容易に補正される。個別の色値は、Ｒ＋Ｇ＋Ｂ−３８４＝０平面まで完全に移動されるか、あるいはいくつかの値が［０；  ２５５］の範囲から外れる場合は早めに停止される。各画素ブロックが投影を用いて且つ投影を用いずに符号化され、結果として最高品質の圧縮が維持された。尚、復号器は、圧縮中に投影が使用されたか否かを認識する必要はない。すなわち、ビットは、このことを復号器に信号伝送する必要はない。本発明の例において、この変更された８ｂｐｐコーデックは、画素の輝度を変更することにより動作するため、「ｍｏｄｌｕｍ」と示される。
【０１４０】
固定レートコーデックとして適用される場合、この変更された８ｂｐｐコーデックにより、ＰＳＮＲは６４個の画像上で測定された固定レートＤＸＴ１−５６５に対して５．４ｄＢ増加するが、結果としてビットレートは倍増する。しかし、提案されたシステムの一実施形態において、この高いレートは最も複雑な画素ブロックに対して使用されるだけである。すなわちｍｏｄｌｕｍコーデックは、そのまま４×４画素ブロックに対してのみ使用される。８×８スーパーブロックは、コーデックにより更に符号化されるが、圧縮前に４×４画素に縮小され、分解後に再度８×８に２次元線形的に拡大される。
【０１４１】
あるいは、４×８及び８×４スーパーブロックは、各々が６４ビットを使用して４×４画素を符号化する並列の（又は互いの上に）２個のＤＸＴ１−１５５画素ブロックから構成される。従って、全てのサイズの画素ブロック及びスーパーブロックは１２８ビットを使用し、提案されたアーキテクチャが採用される。本明細書において、画素ブロック及び最大のスーパーブロックがｍｏｄｌｕｍコーデックに基づくため、この８ｂｐｐバージョンのシステムは「ｍｏｄｌｕｍ変数」と呼ばれる。図１７におけるより長い実線の曲線は、６４個のテストテクスチャに対して平均化されたｍｏｄｌｕｍ変数構成のレート歪み挙動を示す。示されるように、曲線は、４ｂｐｐのレートにおいて通常のＤＸＴ１−５６５より約２．１ｄＢ高い。この向上した品質は、２ｂｐｐを使用する８×８ブロックを使用することにより単純な領域におけるビットを節減し、且つ８ｂｐｐを使用する４×４ブロックを使用して複雑な領域においてこれらのビットを使用できるという事実によるものである。しかし、「ｍｏｄｌｕｍ変数」に対するテクスチャはメモリにおいて２倍の空間を取る。
【０１４２】
提案されたシステムの実施形態が同一の帯域幅に対する品質を本当に向上するかを評価し、向上する場合にどれくらい向上するかを評価するために、種々のテクスチャ圧縮方法を使用して種々のシーンをラスタ化し且つ消費されたテクスチャ帯域幅を報告するソフトウェアベースのシミュレーションフレームワークが実現された。シミュレーションフレームワークは実際の帯域幅転送のみを示し、遅延時間はモデル化されない。三角形は、空間的コヒーレンスに対してモートン序列でラスタ化される。テクスチャのキャッシュサイズは２０４８バイトに設定される。これは、キャッシュが固定レートＤＸＴ１システムの場合に２０４８×８／６４＝２５６、圧縮画素ブロック又はスーパーブロック及び提案された８ｂｐｐシステムの場合に２０４８×８＝１２８＝１２８個の画素ブロック又はスーパーブロックを保持することを意味する。
【０１４３】
帯域幅消費量は、図１８において示されたティーポットのテストシーンを使用してシミュレートされた。シーンは、平均的なシーンであるように作成されるが、全ての面に対して１つのテクスチャのみが使用される。テストにおいて使用されたテクスチャは、図１９において示されたゲーム「Ｍｉｒｒｏｒ’ｓ  Ｅｄｇｅ」からのライトマップテクスチャの一部である。６４ビットの４×４画素ブロックを使用して通常のＤＸＴ１−５６５を実行する基準システムの帯域幅消費量が最初に測定された。レンダリングされた画像の解像度は、最も高い解像度のミップマップがこの場合は１０２４×１０２４において少なくとも時々アクセスされるように設定された。テクスチャアクセスに対して測定された帯域幅はＤＸＴ１−５６５基準システムに対して１：２７ＭＢであり、最も高い解像度のミップマップレベル、すなわち図１９における左端の画像のＰＳＮＲスコアは４６．７ｄＢであった。テクスチャグラフィックスの従来技術において既知であるように、ミップマップは、事前に算出され、主なテクスチャに付随する画像の集合を最適化され、レンダリング速度の加速及びエイリアシングアーチファクトの減少を意図する。
【０１４４】
テクスチャは、「ｍｏｄｌｕｍ変数」構成を使用して提案されたシステムで圧縮された。ここで、各マクロブロックのビットレートは２ｂｐｐ〜８ｂｐｐで変動した。これにより、０．９０ＭＢの帯域幅において５．６ｄＢ増加した５２．３ｄＢのＰＳＮＲスコア、すなわち実質的により低いＰＳＮＲスコアが得られた。レート歪み最適化がビットをより複雑な領域に自動的に再分配するため、視覚品質は更に非常に良好である。
【０１４５】
最後に、８ｂｐｐの固定レートとｍｏｄｌｕｍ固定コーデックとの比較が実行された。本明細書において、テクスチャアクセスに対する帯域幅は２．７３５ＭＢ、すなわち提案されたシステムよりほぼ１／３高かったが、同様のＰＳＮＲレベルにおいては５３．８ｄＢであった。
【０１４６】
上記の実験例は、１２８ビットの単一のブロックがメモリから効率的に転送されると仮定して実行された。実際には、バスの幅及びシステムのバースト挙動は、依然としてバスを効率的に使用しつつメモリ転送の大きさを制限する。２倍速の６４ビットのメモリバスが仮定されるため、バーストモード中にクロック毎に１２８ビットのデータを転送できる。３サイクルのＣＡＳ遅延時間が更に仮定され、バーストサイクルは効率的になるように少なくとも４サイクルでなければならず、そのようなバーストアクセスに対して５１２ビットが得られる。これは、テクスチャブロックが「ｍｏｄｌｕｍ変数」の解決方法に対して使用された１２８ビットではなく５１２ビットであるべきであることを意味する。８×８の画素ブロックのサイズ及び１６×８、８×１６及び１６×１６のスーパーブロックのサイズを代わりに使用することにより、５１２ビットの圧縮サイズが得られる。
【０１４７】
前の例が再考され、これらの新しい画素ブロック及びスーパーブロックのサイズは読み出された２個の画素ブロック間の境界上の２次元線形パッチであったと仮定する。次に、基準システムがそれぞれ５１２ビットの８×８画素ブロックを使用すると仮定する。パッチの２個のテクセル又は画素は、図３Ｂの画素ブロック３０Ａに位置し且つ２個は画素ブロック３０Ｂに位置するため、基準システムは画素ブロック３０Ａ、３０Ｂの双方を読み出さなければならない。それを開始するために、データ転送は、それぞれ１２８ビットを搬送する画素ブロック３０Ａに対して４個のデータ転送サイクルにより後続された３ＣＡＳサイクルを要する。読み出し画素ブロック３０Ｂ、ビット５１２〜１０２３は、サイクル４において画素ブロック３０Ｂを要求し且つ画素ブロック３０Ｂに対してＣＡＳサイクルを効率的に隠蔽することにより早く開始されると仮定される。従って、ＣＡＳサイクルが常に隠蔽されると仮定すると、転送全体は１１サイクル又は８サイクルを要する。
【０１４８】
提案されたシステムの実施形態は、最初の５１２ビットを読み出すことにより更に開始する。しかし、システムは、クロック３において２ビットのモード識別子を含む最初の１２８ビットを既に取得している。このデータから、システムは、これが隣接する８×８画素において対象のテクセルを更に範囲に含む１６×８スーパーブロックであることを判定する。従って、ビット５１２〜１０２３が要求される必要はないため、システムは４個の１２８ビット幅のバスサイクルを節減する。
【０１４９】
この解析から、最大のスーパーブロックのサイズが８×８から１６×１６に変化する場合、システムが不要なメモリアクセスを回避する確率が高いことは明らかである。スーパーブロックのサイズを大きくする１つの方法は、前の２つの実施形態の同一のビルディングブロックを使用することであってもよい。すなわち、例えば、１６×１６スーパーブロック、４個のアップサンプリングされていない８×８ｍｏｄｌｕｍ画素ブロックが使用されてもよい。しかし、全ての８×８画素ブロックが独立しているため、それは非効率的である。そのため、４個の画素ブロック間で情報を共有したり、画素ブロックの境界にわたり予測したりするのは不可能である。そのような非効率性を回避するために、ビデオ圧縮のために使用されたＨ．２６４コーデックに基づいて８×８、８×１６、１６×８及び１６×１６画素に対するコーデックの第３の集合が使用される。Ｈ．２６４において考えられる最小の画像サイズが１６×１６画素であるため、Ｈ．２６４コーデック［８］の基準となる実現例は、画像を８×８画素に圧縮するように変更されている。全ての画素ブロック及びスーパーブロックに対して同一であるヘッダ情報は省略される。画素ブロック又はスーパーブロックを固定レートに圧縮するために、画素ブロック又はスーパーブロックは、品質及びビット数に影響を及ぼす量子化パラメータｑｐ、０〜５１の値の種々の設定で数回圧縮される。依然として固定レートより小さい最大のビットサイズが選択される。復号器が画素ブロック又はスーパーブロックを圧縮するために使用されたｑｐを認識しなければならないため、ｑｐは６ビットを使用して圧縮ブロックに格納される。提案されたシステムの場合、Ｈ．２６４データに対して３７６ビットを残し、２ビットはモード識別子となり、６ビットはｑｐとなり、１２８ビットはアルファに対して確保される。固定レート基準システムは、２ビットのモード識別子を必要としないため、Ｈ．２６４データの３７８ビットに適合する。
【０１５０】
Ｈ．２６４ベースの符号器の第１のテストは、帯域幅における実質的な利得がシステムにとって活用するのが容易であるべきテクスチャに対して構築されるかを確認するためのものである。それを実行するために、図２０において示されたテクスチャの帯域幅消費量がシミュレートされている。このため、このテクスチャを使用する全ての面を含むティーポットのシーンが使用された。帯域幅消費量は、最初に８×８画素ブロックを使用する固定レートＨ．２６４基準システムに対して測定された。品質の違いを更に明確に示すために、ビットレートが４ｂｐｐに下げられた。これは、単一の８×８画素ブロックが２５６ビットを使用して格納されたことを意味する。テクスチャアクセスに対して測定された帯域幅は、基準システムの場合２．２９８ＭＢであった。
【０１５１】
テクスチャは、同一のサイズのキャッシュを使用することにより、提案されたシステムの実施形態を使用して圧縮された。ここで、各マクロブロックのビットレートは変動した。これにより、６２％低い０．９１３ＭＢの帯域幅指数が得られた。レート歪み最適化がビットをより複雑な領域に自動的に分配するため、図２０において示されるように依然として非常に良好な品質が重要な領域において維持される。Ｈ．２６４コーデックが種々のビットレートで動作するため、８×８固定レートコーデックにおける画素ブロック毎のビット数は、提案されたシステムの帯域幅に厳密に一致するように下げられる。帯域幅がそのように低いため、１６×１６の固定ブロックのサイズを使用するほうがよいことが判明するが、そうであっても、測定されたＰＳＮＲは提案されたシステム、すなわち最も高い解像度の画像よりほぼフルｄＢ低い。測定データに伴うティーポットのシーンのスクリーンショットは、図１８において見られる。図１８におけるスクリーンショットに関連する性能値を以下の表Ｉに示す。
【０１５２】
【表１】
0005203513.tif 000005
【０１５３】
次の実験例が示すように、テクスチャにおける種々の領域に対して帯域幅消費量、すなわち品質を指向する機能は、平均的な品質が同等に分解される場合であっても有用である。本明細書において、提案されたシステムの実施形態は、１６×１６サイズの画素ブロックの固定レートシステムと比較される。図２１において示されたように、１６×１６固定レートシステムは、平均的なＰＳＮＲに関して提案されたシステムより実際に性能が優れている。依然として、テクスチャにおける品質を前景の子供の顔及び体の領域に指向する手段は、提案されたシステムの品質が主観的により優れていると非常に適切に知覚されてもよいことを意味する。図２１におけるズームインは、提案されたシステムにおいて好都合な顔の領域及び不都合な砂の領域を示す。
【０１５４】
いくつかのテクスチャの場合、全ての領域は、同等に符号化しにくく、同等に主観的に重要である。この場合、固定レート符号器は最適であり、品質をどの程度向上させるかによって無駄にされるビットはない。しかし、このような場合でも、提案されたシステムは、種々のビットレートで種々のテクスチャを圧縮できるため有益である。次の実験例はこれを示す。ゲームシーンは３２個のテクスチャを示す。残りの１２８ビットがアルファに対して確保されると仮定して、画素ブロック毎に３８４ビットを使用して８×８固定レート基準システムでこれらを圧縮した。テクスチャ毎にＰＳＮＲスコアが算出され、中間スコア５１．９ｄＢが示された。次に、シーンがレンダリングされ、測定されたテクスチャ帯域幅は２．４６ＭＢであった。
【０１５５】
提案されたシステムの場合、全てのテクスチャは、目標品質として５２ｄＢに切り上げられた中間ＰＳＮＲスコアで圧縮された。従って、テクスチャの半分は最大ビットレートで、すなわち図３Ｂに従って符号化され、残りの半分は中間ＰＳＮＲスコアを目標とし、品質が低下するだろう。このように、テクスチャの最も圧縮しやすい半分のみが変更された。レンダリングする場合、提案されたシステムに対するテクスチャ帯域幅は１．４９ＭＢであり、３９．２％の削減であった。これは、テクスチャの半分のみを変更するより大きな削減である。実際には、これは、部分的には、フロアテクスチャがある種のキャッシュブースティング効果を享受し、より大きなスーパーブロックがキャッシュにおいて同一の量のビットを取りつつより多くの画素を範囲に含む、すなわち有用なサイズのキャッシュがそのようなスーパーブロックに対して大きくなることを意味するためであった。フロアテクスチャがたまたま符号化しやすいため、そのスーパーブロックは図３Ｃにおいて示されたようなものである場合が多かった。従って、ミップマップレベル全体は、基準システムより早くフルＬＯＤレベルでキャッシュに適合し、帯域幅消費量が大幅に削減される。
【０１５６】
更に、いくつかのミップマップレベルは他のものより更に圧縮しにくい可能性があるため、提案されたシステムはミップマップレベル間でビットレートを変動させ、これは有益である。適切な一例は、高周波数のコンテンツを含むテクスチャ、例えば固定レートで圧縮された図２２において示されたゲームシーンのテクスチャである。最も高い解像度のミップマップレベルにおいて、テクスチャは、ノイズを伴い圧縮しにくい。すなわち、ＰＳＮＲは３８．１８ｄＢである。２ミップマップレベル離れると、画像は、より平滑になり圧縮しやすい。すなわち、ここでＰＳＮＲは４７．０８ｄＢである。このミップマップレベルにおいて多くの品質を低下させずに帯域幅を取得できるのは明らかであるが、これは最も高い解像度のミップマップレベルには当てはまらない。
【０１５７】
最後の実験例は、システムをストレステストすることに対して実行された。提案されたシステムの実施形態の主な利点は、システムが余分なコストをかけずに必要以上に多くの画素を読み出すことである。すなわち、これらの画素が全く使用されない場合、帯域幅の削減は小さい。反射のシーンは、この様な場合をテストするために作成された。反射のシーンは、ノイズを伴う反射マップを含む球体を示す。従って、球体からの反射により互いに遠く離れたテクスチャルックアップが得られるため、提案されたシステムが取得するものは殆どない。しかし、完全にインコヒーレントなルックアップであっても、利得はゼロではない。これは、２次元線形パッチが個別のテクセルではなくテクスチャから読み出されるためである。従って、２次元線形パッチは、固定レート基準システムにおいて８×８境界上に配置される場合、提案されたシステムにおいて完全にスーパーブロックの内部にある場合があり、帯域幅の１画素ブロックが節減される。このシーンにおいて、ｆr＝８ｂｐｐのフルレートが使用された。環境マップを圧縮する場合、レート歪みが目標ｔr＝３：８ｂｐｐに設定されたため、考えられる最大の節減は１−３．８／８＝５２．５％となる。このシーンにおいて、球体自体のテクスチャ帯域幅のみが計測され、テクスチャルックアップは最大限にインコヒーレントであるべきである。シーンが３２０×３２０画素の解像度にレンダリングされたことにより、最も高い解像度のミップマップの少なくともいくつかのテクスチャアクセスが得られた。測定された結果は期待された以上であり、帯域幅に対する要求が０．５６ＭＢから０．３８ＭＢに下がり、３２％の削減であった。従って、テクスチャコヒーレンスはこの画像中で依然として非常に高く、実際に方法をストレステストするため、球体上でランダムノーマルに完全に切り替える。ランダムノーマルであっても、提案された方法のテクスチャリング帯域幅は基準システムに対してより５．５％低かった。
【０１５８】
添付の請求の範囲により規定される本発明の範囲から逸脱せずに、種々の変形及び変更が本発明に対して行われてもよいことは、当業者により理解されるだろう。
【０１５９】
［参考資料］
［１］米国特許第５，９５６，４３１号公報
［２］Ｓｔｒｏｍ及びＭｏｌｌｅｒ、「ｉＰＡＣＫＭＡＮ：  Ｈｉｇｈ−Ｑｕａｌｉｔｙ，  Ｌｏｗ−Ｃｏｍｐｌｅｘｉｔｙ  Ｔｅｘｔｕｒｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｐｈｏｎｅｓ」、Ｇｒａｆｈｉｃｓ  Ｈａｒｄｗａｒｅ、２００５年、ＡＣＭ  Ｐｒｅｓｓ、６３〜７０ページ
［３］Ｉｎａｄａ及びＭｃＣｏｏｌ、「Ｃｏｍｐｒｅｓｓｅｄ  Ｌｏｓｓｌｅｓｓ  Ｔｅｘｔｕｒｅ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ａｎｄ  Ｃａｃｈｉｎｇ」、Ｇｒａｐｈｉｃｓ  Ｈａｒｄｗａｒｅ、２００６年
［４］Ｓｔｒｏｍ及びＰｅｔｔｅｒｓｓｏｎ、「ＥＴＣ２：  Ｔｅｘｔｕｒｅ  Ｃｏｍｐｒｅｓｓｉｏｎ  ｕｓｉｎｇ  Ｉｎｖａｌｉｄ  Ｃｏｍｂｉｎａｔｉｏｎｓ」、Ｇｒａｆｈｉｃｓ  Ｈａｒｄｗａｒｅ、２００７年、ＡＣＭ  Ｐｒｅｓｓ、４９〜５４ページ
［５］国際公開第ＷＯ２００６／００６９１５号
［６］ＩＴＵ−Ｔ、Ｈ．２６４：  Ａｄｖａｎｃｅ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ、２００７年１１月
［７］ｖａｎ  Ｗａｖｅｒｅｎ及びＣａｓｔａｎｏ、「Ｒｅａｌ−Ｔｉｍｅ  ＹＣｏＣｇ−ＤＸＴ  Ｃｏｍｐｒｅｓｓｉｏｎ」  ｎＶｉｄｉａ  Ｒｅｐｏｒｔ、２００７年、ｈｔｔｐ：／／ｄｅｖｅｌｏｐｅｒ．ｎｖｉｄｉａ．ｃｏｍ／ｏｂｊｅｃｔ／ｒｅａｌ−ｔｉｍｅ−ｙｃｏｃｇ−ｄｘｔ−ｃｏｍｐｒｅｓｓｉｏｎ．ｈｔｍにおいて入手可能
［８］Ｓｕｅｈｒｉｎｇ、ＪＭ  Ｓｏｆｔｗａｒｅ  Ｈ．２６４／ＡＶＣ、ｈｔｔｐ：／／ｉｐｈｏｍｅ．ｈｈｉ．ｄｅ／ｓｕｅｈｒｉｎｇ／ｔｍｌ／
【図１】
0005203513.tif 000006
【図２】
0005203513.tif 000007
【図３Ａ】
0005203513.tif 000008
【図３Ｂ】
0005203513.tif 000009
【図３Ｃ】
0005203513.tif 000010
【図３Ｄ】
0005203513.tif 000011
【図３Ｅ】
0005203513.tif 000012
【図３Ｆ】
0005203513.tif 000013
【図３Ｇ】
0005203513.tif 000014
【図３Ｈ】
0005203513.tif 000015
【図３Ｉ】
0005203513.tif 000016
【図４】
0005203513.tif 000017
【図５】
0005203513.tif 000018
【図６】
0005203513.tif 000019
【図７】
0005203513.tif 000020
【図８】
0005203513.tif 000021
【図９】
0005203513.tif 000022
【図１０】
0005203513.tif 000023
【図１１】
0005203513.tif 000024
【図１２】
0005203513.tif 000025
【図１３】
0005203513.tif 000026
【図１４】
0005203513.tif 000027
【図１５】
0005203513.tif 000028
【図１６】
0005203513.tif 000029
【図１７】
0005203513.tif 000030
【図１８】
0005203513.tif 000031
【図１９】
0005203513.tif 000032
【図２０】
0005203513.tif 000033
【図２１】
0005203513.tif 000034
【図２２】
0005203513.tif 000035