説明

画素ブロック処理

圧縮画素ブロック(400)は、複数の使用可能なプロパティ値を規定することにより伸張される。画素ブロック(300)に対する少なくとも1つの参照点は、圧縮画素ブロック(400)の基準コードワード(410)に基づいて識別される。画素(310)の画素インデックスは、少なくとも1つの参照点に対する画素ブロック(300)における画素(310)のそれぞれの位置に基づいて判定される。これらの画素インデックスは、複数の規定されたプロパティ値の中から選択するために使用される。その後、選択されたプロパティ値は、判定された画素インデックスに基づいて伸張される画素(310)に割り当てられる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に画素ブロック処理に関し、特に画素ブロックの圧縮及び伸張に関する。
【背景技術】
【0002】
グラフィックス処理装置(GPU)の性能を向上しようとする場合、1つの解決方法は、メモリ帯域幅の消費量を減少するように種々の技術を適用することである。処理能力に対する性能成長率が帯域幅に対する性能成長率及びランダムアクセスメモリ(RAM)に対する遅延時間を大きく上回るため、帯域幅の削減は益々重要になってきている。
【0003】
テクスチャの圧縮は、帯域幅に対する要求を低減する1つの一般的な方法である。テクスチャが圧縮された形態でメモリに格納し且つバスを介して圧縮されたデータのブロックを転送することにより、テクスチャの帯域幅は大幅に削減される。
【0004】
テクスチャは、通常、赤、緑、青及びアルファの4つのチャンネルから構成される。本来アルファチャンネルは、完全に透明から完全に不透明までの範囲にわたる不透明度情報を格納することを意図した。しかし、ピクセルシェーダの出現により、現在、アルファチャンネルは、通常の色データと共にレンダリングする間に有用なあらゆる種類の情報を格納するために使用される。そのような情報の例には、鏡面性又は明るさ等の物質プロパティ(material properties)及びバンプマップ等の幾何学情報が含まれる。例えばスペキュラマップ等のスカラデータを格納するために、アルファチャンネルのみを含む、すなわち赤、緑及び青のチャンネルを含まないテクスチャを使用することが更に益々一般的になってきている。
【0005】
アルファ圧縮に対する現在の業界標準のアルゴリズムは、DXTC/S3TCテクスチャ圧縮規格[1]に組み込まれたものである。これらのアルゴリズムは2つの異なるアルファ圧縮モードを含み、その双方は、アルファチャンネルを1画素当たり通常8ビットの元のサイズから1画素当たり4ビットに圧縮する。
【0006】
従って、DXTC圧縮アルファチャンネルの品質は非常に高い。いくつかの応用例において、1画素当たり4ビットを使用するのは過剰である場合もある。これに対して、3つの色チャンネルは合わせて1画素当たり4ビットに圧縮され、圧縮RGBAテクスチャに対しては1画素当たり合計で8ビットである。従って、アルファチャンネルに格納されたデータが一般にテクスチャの色より低い精度を要求するが、アルファチャンネルに含まれた情報は4つのチャンネルの優れた最高品質を得る。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、アルファチャンネルの効率的な処理を可能にし且つ非常に高い圧縮率を達成することにより、帯域幅又はメモリを節約するたに、あるいは色チャンネルを更に増強するために使用される節約ビットを可能にするテクスチャの圧縮及び伸張方式が必要である。
【0008】
一般的な目的は、テクスチャを圧縮及び伸張する効率的な処理方式を提供することである。
【課題を解決するための手段】
【0009】
この目的及び他の目的は、添付の請求の範囲により規定されたように実施形態により達成される。
【0010】
簡単に説明すると、本発明の実施形態は、関連付けられたプロパティ値を有する画素を含む画素ブロックの圧縮及び伸張を含む。伸張において、圧縮画素ブロックは、好ましくは圧縮画素ブロックに含まれたコードワードデータに基づいて複数の使用可能な画素プロパティ値を規定するために処理される。圧縮画素ブロックに含まれた基準コードワード(reference codeward)は、画素ブロックに対する少なくとも1つの参照点を識別するために使用される。
【0011】
画素が復号化又は伸張される場合、画素プロパティ値は規定された複数のプロパティ値から画素に対して選択される。このような値の選択は、更に少なくとも1つの参照点に対する画素ブロックにおける画素の位置に基づいて実行される。選択された画素プロパティ値は、現在の画素に割り当てられ、画素に対する元のプロパティ値の復号化された表現として使用される。
【0012】
圧縮において、複数の画素プロパティ値は、好ましくは画素ブロックにおける画素プロパティ値のうちの少なくとも一部に基づいて画素ブロックに対して規定される。また、画素ブロックに対する少なくとも1つの参照点は、画素プロパティ値に基づいて判定される。この少なくとも1つの参照点は、画素ブロックにおける画素に対して規定されたプロパティ値の中からそれぞれの画素プロパティ値を識別できるように、上述したような伸張の間使用される。画素ブロックの圧縮された表現は、判定された1つ又は複数の参照点の表現に基づいて及び好ましくは規定されたプロパティ値の表現に基づいて生成される。
【0013】
更に実施形態は、圧縮器及び伸張器に関する。
【0014】
実施形態は、1つ以上の参照点に対する画素の位置を介して選択されたプロパティ値に対して画素インデックスを黙示的に信号伝送することにより、効率的な圧縮を提供する。これにより、圧縮画素ブロックにおいて明示的な画素インデックスの信号伝送を使用する従来技術のアルゴリズムと比較してより高い圧縮率が可能になる。
【0015】
実施形態の以下の説明を読むことにより、実施形態により与えられた他の利点が理解されるだろう。
【0016】
添付の図面と共に以下の説明を参照することにより、更なる目的及び利点を加えた実施形態が最もよく理解されるだろう。
【図面の簡単な説明】
【0017】
【図1】一実施形態に従って圧縮画素ブロックを伸張する方法を示すフローチャートである。
【図2】図1の伸張方法の値を規定するステップの一実施形態を示すフローチャートである。
【図3】図1の伸張方法の識別するステップの一実施形態を示すフローチャートである。
【図4】図1の伸張方法の更なるオプションのステップを示すフローチャートである。
【図5】一実施形態に従って画素ブロックを圧縮する方法を示すフローチャートである。
【図6】図5の圧縮方法の値を規定するステップの一実施形態を示すフローチャートである。
【図7】図5の圧縮方法の参照点を判定するステップの一実施形態を示すフローチャートである。
【図8】一実施形態に係る伸張器を示す概略ブロック図である。
【図9】図8の伸張器における数値デファイナの一実施形態を示す概略ブロック図である。
【図10】図8の伸張器における参照識別器の一実施形態を示す概略ブロック図である。
【図11】図8の伸張器における値選択器の一実施形態を示す概略ブロック図である。
【図12】一実施形態に係る圧縮器を示す概略ブロック図である。
【図13】図12の圧縮器における数値デファイナの一実施形態を示す概略ブロック図である。
【図14】図12の圧縮器における参照点判定器の一実施形態を示す概略ブロック図である。
【図15】、
【図16】、
【図17】画素に対する参照点を規定し且つ価値指数を黙示的に判定する種々の実施形態を示す図である。
【図18】ベースプロパティ値及び修飾子値の修飾子セットから画素プロパティ値のセットを算出する一実施形態を概略的に示す図である。
【図19】2つのベースプロパティ値から画素プロパティ値のセットを算出する一実施形態を概略的に示す図である。
【図20】一実施形態に係る圧縮画素ブロックを示す概略図である。
【発明を実施するための形態】
【0018】
図中、同一の参照符号は対応する要素又は類似する要素に対応づけるために使用されるものである。
【0019】
本発明は、一般に画素プロパティ値(pixel property values)の圧縮及び伸張に関し、特にテクスチャの圧縮及び伸張に適するような圧縮及び伸張に関する。
【0020】
本発明の実施形態は、例えば限定しない例であるゲーム、3次元(3D)マップ及び3Dシーン、動画メッセージ等の3Dメッセージ、スクリーンセーバ、マンマシンインタフェース(MMI)等の3Dグラフィックスで使用するように適切に構成される。従って、実施形態は、1次元(1D)、2次元(2D)又は3D画像等の他の種類の画像又はグラフィックスを符号化するように更に採用されてもよい。
【0021】
本明細書において、圧縮及び伸張は、通常画素のブロック又はタイルの形態で複数の画素を一元的に処理する。好適な一実施形態において、そのような画素ブロックはM×N画素のサイズを有する。ここで、M、Nは、M及びNの双方が同時に1ではないという条件で整数である。M=2m及びN=2nであるのが好ましく、ここで、m、nは、m及びnが同時にゼロではないという条件でゼロ又は整数である。一般的な実現例において、M=N及び好適なそのような画素ブロックの実施形態は、4×4画素、8×8画素、又は16×16画素であってもよい。
【0022】
画素又は「ブロック要素」という表現は、画素ブロックにおける要素又は画素ブロックの符号化された表現を示す。その結果、この画素ブロックは、画像又はテクスチャの一部に対応する。従って、画素は、1D、2D、3Dテクスチャのテクセル、すなわちテクスチャ要素、1D又は2D画像の画素、あるいは3D画像のボクセル、すなわち体積要素であってもよい。一般に、画素は、関連付けられた画素パラメータ、あるいは画素プロパティ値又は画素機能により特徴付けられる。
【0023】
通常どのような種類の画素ブロックを圧縮/伸張するかに依存して、画素に割り当てられるそのような種々の特徴的なプロパティ値が存在する。例えばプロパティ値は、画素に割り当てられた色値であってもよい。当技術分野において周知のように、種々の色空間が使用可能であり且つ画素色値を示すために使用される。通常のそのような色空間は、いわゆる赤、緑、青(RGB)の色空間である。従って、画素プロパティ値は、RGB色の赤値、緑値又は青値であってもよい。
【0024】
画素カラーは、輝度及びクロミナンス構成要素の形態で更に表現される。そのような場合、変換は、RGB色値を輝度値及び一般に2つのクロミナンス構成要素に変換するために使用される。当技術分野における輝度クロミナンス空間の例は、YUV、YCog及びYCrbを含む。従って、プロパティ値は、そのような輝度値(Y)、あるいはクロミナンス値(U、V、Co、Cg、Cr又はCb)であってもよい。
【0025】
本発明の実施形態は、RGB色データ中のテクスチャ及び画素がRGBA形式である場合にRGB色データとは別に又はRGBデータと共に使用されたアルファチャンネルにより含まれた画素プロパティ値を処理するために使用されるのに有利である。その結果、アルファチャンネルは、例えば不透明なデータ、物質プロパティデータ、鏡面性、明るさ、幾何学データ、バンプマップ又は深度データ、スペキュラマップデータ等の非常に種々の画素特徴を規定できる。従って、プロパティ値は、画素ブロックの画素、すなわちタイルと関連付けられるか、あるいはそれを用いて処理されるあらゆるプロパティ又は特徴を示す。しかし、実施形態は、RGBAテクスチャのアルファチャンネルにおいて保持された画素プロパティ値を圧縮及び伸張するために使用されることに必ずしも限定されない。明らかに対照的に、実施形態は、あらゆる既知の画素プロパティ値を処理するためのスタンドアロンツールとして使用されてもよく、又は画素と関連付けられた他の画素プロパティデータを処理する他のあらゆる圧縮/伸張アルゴリズムを補完するものとして使用されてもよい。
【0026】
従って、本明細書において開示された実施形態は、例えばアルファチャンネルデータ、RGBデータ及びRGBAデータを圧縮及び伸張するために使用される。後者において、アルファチャンネルデータは本明細書において開示されたように処理され、あらゆる従来技術の圧縮/伸張方式はRGBデータを処理するために使用される。
【0027】
また、以下において、用語「画像」は、本発明の実施形態を利用して符号化及び復号化されるあらゆる1D、2D又は3D画像又はテクスチャを示すために使用される。あらゆる1D、2D又は3D画像又はテクスチャは、バンプマップ、通常の地図、写真、ゲームタイプのテクスチャ、文字、図面、ハイダイナミックレンジ画像及びテクスチャ等を含むがそれらに限定されない。
【0028】
本発明は、圧縮画素ブロックにおいて、明示的な画素インデックスの信号伝送を使用するのではなく、黙示的そのような画素インデックスの信号伝送を提供することにより、画像及びテクスチャの圧縮に新規な方法を提供する。これは、よりコンパクトな符号化を達成するか又は圧縮画素ブロックに含まれた他の特徴に対してより多くのビットを費やすために使用される。
【0029】
[伸張]
図1は、画素ブロックにおいて少なくとも1つの画素の元のプロパティ値の伸張された表現を取得するために、圧縮画素ブロックを伸張する方法を示すフローチャートである。
【0030】
方法は、一般に復号化/伸張する圧縮画素ブロックを識別することにより開始する。符号化された画像又はテクスチャの全ての圧縮画素ブロックが元のテクスチャの復号化された表現を生成するように復号化されることが可能であってもよい。あるいは、テクスチャの一部分のみがアクセスされてもよい。その結果、選択された複数の画素ブロックのみが復号化されなければならず、すなわちより正確には、ある特定の画素ブロックの選択された複数の画素が復号化されなければならない。
【0031】
方法はステップS1から開始し、複数の許容可能な画素プロパティ値が現在の画素ブロックに対して規定される。第1の実施形態において、これらの複数のプロパティ値は、あらゆる値、すなわち少なくとも[0.0,1.0]等の規定の間隔内において限られたビット分解能で表現可能なあらゆる値をとってもよい。第2の実施形態において、これらの複数のプロパティ値は、例えば8個の異なるプロパティ値の場合にプロパティ値の範囲が000binから111binの範囲にわたる複数のプロパティ値のプロパティ値セットを共に規定する。しかし、好適な一実施形態において、規定するステップS1は、圧縮画素ブロックに含まれた情報、すなわちセットコードワードに基づいてプロパティ値セットを提供することを含み、これは本明細書において更に説明される。
【0032】
次のステップS2は、画素ブロックに対する少なくとも1つの参照点を識別する。このような参照点の識別は、圧縮画素ブロックに含まれた基準コードワードに基づいて実行される。一般的な一実施形態において、ステップS2は、少なくとも1つの画素の中心位置であるのが好ましい画素ブロックにおける1つ以上の画素位置と一致するような1つ以上の参照点を識別する。そのような場合、画素ブロックは、画素ブロックに対する事前定義された位置を有する座標の原点を含む座標系に配置されると考えられる。一般に原点は、画素ブロックにおいて座標(x,y)=(0,0)を有する左上の画素位置と一致する。ここで、xは画素ブロックにおける列座標又は列番号を示し、yは対応する行座標又は行番号である。少なくとも1つの参照点を画素ブロックの内側の座標として位置付けるのが好ましいが、参照点のうちの少なくとも1つは、実際に座標系において現在の画素ブロックの境界の外側に位置付けられてもよい。
【0033】
オプションの一実施形態において、基準コードワード(reference codeword)は、画素ブロックに対する1つ又は複数の参照点を規定する。少なくとも1つの更なる参照点は、規定された1つ又は複数の参照点に基づいてステップS2において識別される。この状況を図15及び図16において概略的に説明する。図15及び図16の左部分において、基準コードワード410は、画素ブロック300において2つの画素位置、すなわちこの図示する例において(0,0)及び(3,1)を含むものとして概略的に示される。図15において、これらの座標を有する2つの参照点/画素312、314は、画素ブロック300において黒でマーク付けされる。更に本実施形態において、更なる参照点は、一方の参照点から他方の参照点に移動する際にパス上に置かれている中間画素316として識別される。本発明の例において、2つのそのような中間参照点/画素316は、図15において陰影をつけて示される。
【0034】
図16は、更なる参照点を提供する別の方法を示す。この場合、基準コードワード410の2つの参照点座標を相互接続する線が画素ブロック300において示される。この線又は曲線上のあらゆる点は、ステップS2において識別された参照点であると考えられる。
【0035】
図15及び図16の例において、複数の参照点がステップS2において識別される。図17は、単一の参照点/画素312のみが基準コードワード410に基づいて識別される別の方法を示す。
【0036】
ステップS1及びS2は、ステップS1がステップS2に先行する図1において示されたように連続して実行される。あるいは、ステップS2はステップS1に先行して実行されてもよく又は実際に2つのステップS1及びS2は同時に実行されてもよい。後続する2つのステップS3及びS4は、画素ブロックにおいて復号化されるべき画素毎に実行される。
【0037】
ステップS3は、復号化される画素に対してステップS1において規定された複数のプロパティ値の中から画素プロパティ値を選択する。更にこのような値の選択は、ステップS2において識別された参照点のうちの少なくとも1つの位置に対する画素ブロックにおける画素の位置に基づいて実行される。従って、参照点のうちの1つ以上に対する画素の相対位置により、ステップS1の許容可能なプロパティ値のうち画素に対して選択されるプロパティ値が判定される。その結果、圧縮画素ブロックにおける画素に割り当てられ且つ許容可能なプロパティ値のうちの1つを示す明示的な画素インデックスは、画素に対して必要ない。
【0038】
ステップS3における値の選択は、本明細書において更に説明されるように種々の実施形態に従って、例えば画素ブロックにおいて現在の画素に隣接する隣接参照点の数、現在の画素から最近接の参照点までの距離等に基づいて実行される。
【0039】
最後のステップS4は、ステップS3において選択されたプロパティ値を復号化される現在の画素に割り当てる。従って、この割り当てられたプロパティ値は、画素の元のプロパティ値の伸張又は復号化された表現として使用される。
【0040】
ステップS3及びS4は、線L1により概略的に示されるように画素ブロックにおいていくつかの画素に対して実行されてもよい。ある応用例においては単一の画素のみが画素ブロックから復号化され、他の応用例においては画素ブロックの複数の画素及び/又は全ての画素が復号化されることが予想される。
【0041】
ステップS1〜S4は、線L2により概略的に示されるように、復号化されるべき画素を含む全ての画素ブロックに対して繰り返されるのが好ましい。これは、ステップS1〜S4のループが1回実行されてもよいが、殆どの場合種々の圧縮画素ブロック及び/又は特定の圧縮画素ブロックに対してループが複数回実行されることを意味する。
【0042】
次に、元の画像/テクスチャ又はその一部が復号化された表現は、復号化された画素及び画素ブロックに基づいて生成される。尚、いくつかの応用例において、いくつかの画素は、復号化された表現の単一の画素をレンダリングするために復号化されなければならない。例えば、3次元線形補間中に8個の隣接画素が復号化され、2次元線形補間の場合には対応する数は4個の画素である。これは当業者には周知である。その後、方法は終了する。
【0043】
図2は、図1の値を規定するステップの特定の実施形態を示すフローチャートである。本実施形態において、複数の画素プロパティ値であるプロパティ値セットは、圧縮画素ブロックに含まれたセットコードワードに基づいて提供される。また、このセットコードワードは、ベースコードワード及び修飾子コードワードを含むのが好ましい。
【0044】
方法はステップS10から開始し、現在の画素ブロックに対してベースプロパティ値を提供する。このベースプロパティ値は、圧縮画素ブロックに含まれたベースコードワードに基づいて更に提供される。従って、ベースコードワードは、関連するベースプロパティ値の符号化された表現である。一実施形態において、ベースコードワードはベースプロパティ値の非量子化バージョンであり、ベースコードワードのビットシーケンスが圧縮画素ブロックから単純に取り出され且つ画素ブロックに対してベースプロパティ値として直接使用されることを意味する。別の実施形態において、ベースコードワードはベースプロパティ値の量子化バージョンである。そのような場合、量子化された値は、ベースプロパティ値を取得するために最初に逆量子化されなければならない。いくつかの種々の量子化−逆量子化技術は、当技術分野において既知であり、情報に対して使用される。図示された例は、例えば2Bビットプロパティ値のB個の最上位ビット及びB個の最下位ビットと同一のBビットシーケンスを再使用することにより、2Bビットプロパティ値に拡張されるBビットベースコードワードを使用するものである。
【0045】
ステップS11は、ベースプロパティ値に適用可能な複数の値修飾子の修飾子セットを提供する。この修飾子セットは、圧縮画素ブロックに含まれた修飾子コードワードに基づいてステップS11において提供される。第1の実施形態において、修飾子コードワードは、複数の値修飾子の量子化バージョン又は非量子化バージョンを含む。しかし、修飾子コードワードのビット長を短縮するために、修飾子コードワードが複数の値修飾子のサブセットのみを含めば更に効率的だろう。次に、修飾子セットの残りの値修飾子は、この値修飾子のサブセットから算出される。例えば、サブセットは正又は負の値修飾子を含む。そのような場合、負又は正に相当するものは、サブセットにおいて値修飾子を否定することにより算出される。更に又はあるいは、更なる値修飾子は、1つ以上の更なる値識別子を取得するためにサブセットからの値修飾子に1つ以上の事前定義された係数を乗算することにより算出される。
【0046】
更なる実施形態は、複数の修飾子セットを含む表を使用する。そのような場合、表の各セットはセットインデックスと関連付けられる。従って、圧縮画素ブロックにおける修飾子コードワードは、表から修飾子セットのうちの1つを識別及び提供するためにセットインデックスとして使用される。
【0047】
複数の許容可能な画素プロパティ値は、ステップS10のベースプロパティ値及びステップS11の値修飾子に基づいてステップS12において算出される。好適な一実施形態において、修飾子セットの種々の値修飾子は、プロパティ値セットを取得するためにベースプロパティ値に加算される。これは、値修飾子をベースプロパティ値に単純に加算するものとして実現されてもよい。別の一実施形態において、加算ではなく、乗算、XOR又は別の算術演算等の別の種類の変更が採用されてもよい。
【0048】
プロパティ値が事前定義された間隔内にのみ存在できる場合、結果として得られるプロパティ値は最小閾値と最大閾値との間でクランプされる。例えば、値修飾子をベースプロパティ値に加算した後の場合、結果として得られるプロパティ値は最小閾値より小さく、プロパティ値はこの最小閾値の値にクランプされる。それに対応して、結果として得られるプロパティ値が最大閾値より大きい場合、最大閾値の値はプロパティ値として代わりに使用されるべきである。256個の異なる画素プロパティ値を含む場合、最小閾値及び最大閾値の限定しない例は、それぞれ0及び255である。
【0049】
図18は、画素プロパティ値を提供する本実施形態を示す概略図である。図18の上部分において、ベースコードワード422は、0111bin=7の量子化された値を示すものとして概略的に示される。その結果、逆量子化後に01110111bin=119のベースプロパティ値10が得られる。修飾子コードワード424は、値0101bin=5を有する。図18は、この場合は16個である複数の修飾子セット22を含む表20の限定しない例を更に示す。修飾子コードワード424は、この例において値修飾子[−58、3、−46、−6、1、22、45、52]を有する正確な修飾子セット22を検索するために使用される。これらの値修飾子は、119等のベースプロパティ値10に加算され、結果として得られるアルファ値の形態で図18の右側上に示された異なるグレーの陰影として示される最後のプロパティ値セット30を取得する。
【0050】
実施形態に従って使用される複数の修飾子セットを含む表の限定しない例は、図18及び以下において表Iとして示された表である。
【0051】
【表1】

【0052】
表における実際の値修飾子は、画素ブロックにおいて画素のプロパティ値の種類に少なくともある程度依存する。表Iにおけるような修飾子セットの適切な表は、ピーク信号対雑音比(PSNR)に関して可能な限り高い精度で検査画素ブロックを圧縮及び伸張するために種々の修飾子セットが異なる検査画素ブロックに対して検査される最適化手順において判定される。
【0053】
図19は、プロパティ値セット30を提供する別の一実施形態を示す。本実施形態において、セットコードワード420は、1001bin=9等の第1の量子化プロパティ値の表現及び1110bin=14等の第2の量子化プロパティ値の表現を含む。これらのプロパティ値は、量子化された形式であるのが好ましく、10011001bin=153及び11101110bin=238の最後の画素プロパティ値40、42を取得するために最初に逆量子化される。プロパティ値セットの残りの画素プロパティ値は、これらの2つのプロパティ値40、42の種々の重み付き組み合わせ、好ましくは線形組み合わせとして算出される。残りのプロパティ値は

として算出された中間プロパティ値であるのが好ましい。ここで、Aは153等の第1の画素プロパティ値40を示し、Bは238等の第2の画素プロパティ値42を示し、Rは8等のプロパティ値セットにおけるプロパティ値の総数を示し、j∈[0,R−1]である。
【0054】
本実施形態は、RGBデータを処理するのに特に適している。
【0055】
図3は、図1の識別するステップの一実施形態を示すフローチャートである。方法は図1のステップS1から継続する。次のステップS20は、基準コードワードに基づいて画素ブロックにおける第1の参照画素及び第2の参照画素を識別する。従って、基準コードワードは、図15及び図16に示されたようにこれらの2つの画素の座標を含む。次のステップS21は、第1の参照画素312から第2の参照画素314に延在する画素ブロック300における線を規定する。第1の実施形態において、参照点は、第1の参照画素312及び第2の参照画素314の位置、並びに線上に置かれている画素ブロック300におけるあらゆる中間画素316の位置を含む。これを図15に示す。
【0056】
図15の実施形態において、1つの画素幅の線が2つの参照画素312と314との間に描かれ、線上の全ての画素316は参照点であると考えられる。線を描くために使用された方法は非常に単純である。第1の画素312から出発して第2の画素314に向けてステップを移動し、座標が既に同一でない限り、各ステップは終点に1つの画素の長さだけ水平座標及び垂直座標を近接する。その間の全ての画素316は、図15において陰影をつけて示され、終点に到達すると停止する。基本的に、同一のアルゴリズムが圧縮及び伸張のために使用される限り、ブレセンハムアルゴリズム(Bresenham algorithm)等のあらゆる線画アルゴリズムが代わりに使用されてもよい。
【0057】
図16は、参照点又は参照画素312と314との間に相互接続する直線を代わりに描くことにより、別の方法を使用した。この線上のあらゆる点は、本実施形態における参照点であると考えられる。
【0058】
図1のステップS3に進む。
【0059】
参照点の1つ以上の位置は特別な画素ブロック専用であってもよい。例えば、画素ブロックにおける全ての画素が少なくとも実質的に同一のプロパティ値を有する場合、画素ブロックの適切な表現は、このプロパティ値の表現となるベースプロパティ値を判定し、このベースプロパティ値を画素ブロックにおける全ての画素に対して使用することである。2つの参照点に対する座標の所定の結合は、そのような特別な例を信号伝送する。その後、修飾子セットが提供されなくてもよいため、修飾子コードワードは任意の値を有する。あるいは、基準コードワードがこの特定の座標の結合を示す場合、ベースコードワード及び修飾子コードワードの双方に対するコードは、ベースプロパティ値を示すために使用されてもよい。これは、ベースプロパティ値がこれらの特別な例においてより高い精度で示されることを意味する。
【0060】
別の特別な例は、2つの参照点が画素ブロックにおいて同一の座標及び位置を有する場合であってもよい。そのような場合、これらの画素ブロックは別個のモードに従って処理される。例えば、使用可能な修飾子セットは、表における修飾子セットのサブセットであってもよく、又は2つの異なる参照点を有する場合に使用不可である他の修飾子セットを使用してもよい。
【0061】
基準コードワードが2つの参照画素又は参照点の2つの座標を示し、且つ更に中間の参照点が相互接続線上にあるか、あるいは2つの参照画素又は参照点の間のパス上にある場合、更なる特別な例が発生するだろう。従って、第1の参照画素又は参照点が座標(α,β)を有し、且つ第2の参照画素又は参照点が座標(χ,δ)を有すると仮定する。そのような画素ブロックは、画素ブロックと同様に割り当てられた画素プロパティ値を分配される。ここで、ベースコードワード及び修飾子コードワードが2つの画素ブロックに対して同一である場合、第1の参照画素又は参照点は座標(χ,δ)を有し、第2の参照画素又は参照点は座標座標(α,β)を有する。従って、第1の参照点又は参照画素及び第2の参照点又は参照画素の位置が入れ替えられる場合、結果は同一となる。これは、2つの異なるモードを信号伝送するために利用される。例えば第1のモードにおいて、例えば図18に示されたように修飾子セットの事前定義された表が使用される。第2のモードにおいて、修飾子セットにおける値修飾子の順序は逆になる。基本的にこれは、第1のモードと比較すると、第2のモードにおいて画素に提供されたプロパティ値セットの順序を逆にすることに対応する。第2のモードの別の変形例は、第1のモードにおいて使用された値修飾子と比較して、事前定義された表において種々の修飾子セットの値修飾子の符号を入れ替えることである。
【0062】
図4は、一実施形態に従って伸張方法の更なるオプションのステップを示すフローチャートである。方法は図1のステップS2から継続する。次のステップS30は、参照点であると考えられる画素に対する画素ブロックにおける隣接画素数を復号化される所定の画素に対してカウントする。ステップS3に進み、このカウントされた数は、規定されたプロパティ値のうちの1つを識別及び選択するために使用される。
【0063】
例えばそのようなカウントは、図15に関連して以下において説明されるように実行される。残りの画素310、すなわち参照点であると考えられない各画素は、ゼロの開始カウント値を割り当てられる。参照画素312、314、316である対角線上に隣接する各画素に対して1が加算され、参照画素312、314、316である垂直に又は水平に隣接する各画素に対して2が加算され、最後に隣接画素のいずれかが参照点である場合に画素310に隣接する画素ブロック300の各縁部に対して1が加算される。従って、これらの残りの画素310は、0〜6のカウント値を取得する。カウント値7は、参照点画素312、314、316に対して確保される。手順を図15に示す。例えば、画素ブロックの位置(0,2)における画素は、参照点である対角線の隣接画素(位置(1,1)における)を有するために1点を取得し、縁部の画素でもある画素に対して更に1点を取得し、合計のカウント値は2となる。図15の右側の画素ブロックは、本実施形態を図15における参照画素の例の位置に適用する場合に結果として得られたカウント値を示す。
【0064】
図16は、事前定義された値7を2つの参照画素312、314に割り当てる。残りの画素310は、相互接続線上の参照点までのそれぞれの最短距離に依存して0〜6のいずれかの値を取得する。そのような一実施形態の結果を図16の右側の画素ブロックにおいて示す。
【0065】
図17において、基準コードワード410は、画素ブロック300において単一の画素312の座標を含み、オプションとして画素座標の中心に置かれた円の半径の座標を含む。この場合、画素ブロック300におけるカウント値は、画素310の中心から円の中心までの距離及び円の半径までの距離の関数として算出される。楕円等の他の同様の表現を想像することは容易であり、基準コードワード410におけるパラメータは形状を規定し、画素310のカウント値はこの形状までの距離に基づいて算出される。
【0066】
生成されたカウント値は、画素ブロックに対して使用可能なプロパティ値のうちの1つを選択するために画素インデックスとして使用される。従って、プロパティ値セットが8個の使用可能なプロパティ値を含む場合、カウント値0〜7は、8個の可能なプロパティ値のうちの1つを識別するために使用される。画素ブロックにおける相対位置に基づいて画素の画素インデックスを割り当てる特定の方法がプロパティ値セットにおける使用可能なプロパティ値の数に依存して種々の画素インデックス値の間隔を使用することは、当業者には明らかである。
【0067】
図20は、圧縮画素ブロック400の一実施形態を示す概略図である。圧縮画素ブロック400は、2つの参照画素又は参照点のx、y座標で示された基準コードワード0を含む。セットコードワード420は、本実施形態においてベースコードワード422及び修飾子コードワード424を含む。含まれたコードワード410、420の実際の順序は、上記で示された実施形態とは異なってもよい。
【0068】
他の実施形態は、図20の圧縮画素ブロック400においてコードワード410、420のうちの1つを置換又は省略してもよい。例えばいくつかの実施形態において、プロパティ値セットが固定されるため、圧縮器及び伸張器の双方においてハードコードされる。そのような場合、ベースコードワード422及び修飾子コードワード424は省略される。あるいは、圧縮器及び伸張器は、制限された数の種々のプロパティ値セットへアクセスできる。そのような場合、セットコードワード420は、これらのプロパティ値セットのうちの1つに対するセットインデックスとして使用される。
【0069】
また、基準コードワード410は、単一の座標のみを含んでもよく、単一の座標及び半径又は3つ以上の座標を含んでもよい。
【0070】
[伸張の例]
この例において、4×4画素の画素ブロックが仮定された。また、圧縮画素ブロックは16ビットを含む。この例において圧縮された画素ブロックの16ビットを復号化する場合、最初のステップはベースコードワード及び修飾子コードワードを読み取ることである。ベースコードワードは、8ビットの4番目に高く且つ4番目に低いものと同一の4ビットシーケンスを再使用することにより、8ビットのベースプロパティ値に拡張される4ビットの整数である。
【0071】
修飾子コードワードは、図18に示された修飾子セットのコードブック又は表からエントリを取り出すために使用される。取り出された修飾子セットにおける8個の値修飾子は8ビットのベースプロパティ値に加算され、その結果は間隔[0,255]に対してクランプされる。ここで、復号化されたブロックにおいて使用される8個の可能な画素プロパティ値から構成されるプロパティ値セットを有する。
【0072】
例えば、0111bin(7)のベースコードワード及び0101bin(5)の修飾子コードワードは、8ビットのベースプロパティ値01110111bin(119)及び値修飾子[−58、3、−46、−6、1、22、45、52]を生成する。これらが加算されると、ブロックに対して結果として得られる画素プロパティ値は、[61、122、73、113、120、141、164、171]の順序である。
【0073】
8個の画素プロパティ値が判定されると又は判定されるのと同時に、4×4ブロック内のそれらの配置は、基準コードワードの2ビットの値(x1,y1)及び(x2,y2)を使用して判定される。第1の2つの値は第1の参照画素のx座標及びy座標をマーク付けし、第2の2つの値は第2の参照画素の座標をマーク付けする。1つの画素幅の線が2つの画素間に描かれ、線上の全ての画素は上述の例においては171であるブロックに対する最後の画素プロパティ値を受信する。
【0074】
線が描かれると、上述されたように残りの画素毎にカウントされる。
【0075】
この方法を使用すると、第1の所定の画素及び第2の所定の画素の位置が入れ替えられる場合に結果が非常に類似する。これは、例えば左から右、上から下を使用するなどブロックの16画素の固定された順序付けを仮定して第2の参照画素の後に第1の参照画素が置かれている場合にプロパティ値セットの画素プロパティ値の順序を逆にすることにより、特定の実施形態において利用される。
【0076】
説明した伸張手順は、一般にテクスチャがアクセスされる際にリアルタイムでGPU上で実行される。
【0077】
説明した方法の単純な変形は、黙示的に規定された第1の参照画素の中心から第2の参照画素の中心への線に依存するのではなく、明示的にマーク付けされたあらゆる線画素を有さないことである。画素ブロックにおける全ての画素は、中心から図16のように規定された線上の最近接の点までの距離の関数のみに基づいて全く同様に処理され且つ画素インデックスを与えられる。この方法は、多少より複雑な計算を必要とするが、より並列処理可能であるという利点を有するため、画素ブロックにおける画素毎にインデックスを別個に復号化できる。
【0078】
更に、プロパティ値セットは異なる方法で選択されてもよい。例えば、2つのベースプロパティ値は図19のように規定される。ベースプロパティ値間の値は補間される。検査は、この方法が複数の値修飾子を含む表を使用するより結果として劣る圧縮となるが、修飾子セットの表がオンチップに格納される必要はないという利点を有することを示す。
【0079】
[圧縮]
図5は、各々がそれぞれのプロパティ値を有する複数の画素の画素ブロックを圧縮する方法を示すフローチャートである。方法はステップS40から開始し、複数のプロパティ値は、画素ブロックにおける元のプロパティ値の表現として規定される。この値を規定するステップは、画素ブロックにおけるプロパティ値のうちの少なくとも一部に基づいて実行されるのが好ましく、且つ画素ブロックにおける全てのプロパティ値に基づいて実行されるのが更に好ましい。
【0080】
規定するステップS40は、図1のステップS1に関連して説明したような種々の実施形態に従って実行される。例えば、複数の事前定義されたプロパティ値のプロパティ値セットはステップS40において提供される。そのような場合、この事前定義されたプロパティ値セットは、画素ブロックにおける元のプロパティ値を考慮せずに提供される。別の方法において、ステップS40は、複数のそのように事前定義されたプロパティ値セットを含む表から複数のプロパティ値のプロパティ値セットを選択することを含む。選択は、画素ブロックにおける画素プロパティ値に基づいて実行されるのが好ましい。別の手段は、場合によっては画素ブロックにおけるプロパティ値、許容可能なプロパティ値を取り囲む値の間隔又は範囲に基づいて規定することである。更に別の実施形態では、画素ブロックにおけるプロパティ値、第1の画素プロパティ値及び第2の画素プロパティ値に基づいて判定する。一般的な実現例において、第1の値は画素ブロックにおける最小プロパティ値に基づいて選択されるか又はそれと等しくなるように選択され、第2の値は画素ブロックにおける最大プロパティ値に基づいて選択されるか又はそれと等しくなるように選択される。少なくとも1つの更なるプロパティ値は、プロパティ値セットを取得するために、ステップS40においてこれらの2つの画素プロパティ値の重み付け組み合わせとして規定される。図6を参照して、ステップS40の更なる実施形態を更に詳細に説明する。
【0081】
次のステップS41は、画素ブロックにおける画素プロパティ値のうちの少なくとも一部に基づいて画素ブロックに対する少なくとも1つの参照点を判定する。この少なくとも1つの参照点は、1つ又は複数の参照的に対する画素ブロックにおける画素のそれぞれの位置に基づいて画素ブロックにおける画素に対するカウント値を算出するために、伸張の間使用される。
【0082】
2つのステップS40、S41の動作は、連続して実行されてもよいが、一般に現在の画素ブロックに対して最適なプロパティ値及び参照点を規定するために同時に実行される。
【0083】
次のステップS42は、ステップS41において判定された少なくとも1つの参照点の表現及び好ましくはステップS40において規定されたプロパティ値の表現として使用されたセットコードワードに基づいて画素ブロックの圧縮された表現を生成する。
【0084】
ステップS40〜S42は、線L3により概略的に示されるように、テクスチャの圧縮される全ての画素ブロックに対して繰り返されるのが好ましい。その結果、圧縮画素ブロックのシーケンス又はファイルが得られる。その後、方法は終了する。
【0085】
符号化されたテクスチャは、テクスチャの後続の表示等のレンダリングまで記憶しておくためにメモリに提供されてもよい。更に符号化されたテクスチャは、別の装置に無線又は有線で送信するために符号化された画素ブロックの信号として送信機に提供されてもよい。
【0086】
テクスチャの伸張とは明らかに対照的に、圧縮は、テクスチャが使用される前にオフ線で実行されるため、より複雑で時間がかかる。従って、一実施形態において、全ての可能なプロパティ値セット及び参照点の間で徹底的に探索される。例えば、特定のプロパティ値セットが与えられたとすると、4×4の画素ブロックに対してカウント値から256個の異なる画素インデックスが分配される。更に、16個の異なる修飾子セットを含む表から選択された4ビットのベースコードワード及び修飾子セットを使用してプロパティ値セットが判定される場合、256個の異なる可能なプロパティ値セットが存在する。これにより、画素ブロックに対して合計で65,536個の異なる結合が得られる。従って、全てのこれらの結合間で徹底的に探索することは、オフ線で圧縮する際に実際に実現可能である。そのような場合、これらの65,536個の可能な候補画素は事前に算出される。次に、画素ブロックが圧縮される場合、それを候補画素ブロックのリストと比較し、最少の平均二乗誤差を含むものを画素ブロックの圧縮された表現として選択する。
【0087】
この手順は、最初にある特定の候補画素ブロックを除去して65,536個の候補画素ブロックのサブセットに対する探索を制限することにより、計算上より効率的だろう。そのような場合、平均的な画素プロパティ値は、65,536個の候補画素ブロック毎に事前に算出されるのが好ましい。圧縮中、圧縮される画素ブロックにおける画素の平均的なプロパティ値が算出される。その後、探索は、算出された平均値から非常に異なる事前に算出された平均値、すなわち既定の閾値以上異なる事前に算出された平均値をそれぞれ有するこれらの候補画素ブロックを除去することにより、この算出された平均値を使用して制限される。
【0088】
図6は、図5のプロパティ値を規定するステップの一実施形態を示すフローチャートである。方法は、ステップS50から開始する。このステップS50は、画素ブロックにおける画素プロパティ値のうちの少なくとも一部に基づいてベースプロパティ値を判定する。次のステップS51は、好ましくは複数のそのような種々の修飾子セットを含む表又はコードブックから複数の値修飾子の修飾子セットを選択する。これらの値修飾子は、ベースプロパティ値を修飾して複数の画素プロパティ値のプロパティ値セットを取得するために伸張の間使用される。その後、図5のステップS41に進む。
【0089】
本実施形態において、画素ブロックの圧縮された表現は、ベースプロパティ値の表現、すなわちベースコードワード及び修飾子セットの表現、すなわち修飾子コードワードを含む。
【0090】
プロパティ値セットが代わりに図19において示されたように規定される場合、圧縮ブロックは、プロパティ値セットの残りの値を補間するために使用された2つの画素プロパティ値の表現としてセットコードワードを含むのが好ましい。
【0091】
図7は、圧縮方法のオプションの更なるステップを示すフローチャートである。方法は図5のステップS40から継続する。次のステップS60は、画素ブロックにおける第1の参照画素及び対応する第2の参照画素を識別する。ステップS61は、これらの2つの参照画素間の線を規定する。そのような場合、図5のステップS41において判定された参照点は、第1の参照画素及び第2の参照画素、並びに既定の線上に置かれている画素ブロックにおけるあらゆる中間画素の位置として判定される。
【0092】
圧縮中、プロパティ値セットから取得した画素ブロックで元の画素ブロックを表現する場合の誤差を最小限にするか又はある形態で部分最適化するプロパティ値セット及び参照点、並びに参照点により規定されたようなカウント値からの画素インデックスの分配が判定される。
【0093】
[伸張器]
図8は、一実施形態に係る伸張器又は復号化器200を示す概略図である。復号化器200は、複数の画素プロパティ値、好ましくは複数のプロパティ値のプロパティ値セットを規定するための数値デファイナ(value definer)210を備える。これらの複数のプロパティ値は、上述されたセットコードワード等の圧縮画素ブロックに含まれた情報に基づいて規定されるのが好ましい。
【0094】
参照識別器220は、圧縮画素ブロックに含まれた基準コードワードに基づいて画素ブロックに対する少なくとも1つの参照点を識別するために使用される。
【0095】
復号化器200は、画素ブロックにおいて伸張される画素毎に数値デファイナ210により規定された複数のプロパティ値から画素プロパティ値を選択する値選択器230を更に備える。更に値選択器230は、参照識別器220により提供された少なくとも1つの参照点に対する画素ブロックにおける画素の位置に基づいてこのような値の選択を実行する。その後、選択されたプロパティ値は、値割当器240により画素に割り当てられ、画素の元の画素プロパティ値の伸張された表現として使用される。
【0096】
復号化器200の装置210〜240は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。特にソフトウェアの実現例において、復号化器200は、例えばコンピュータ、ラップトップコンピュータ、移動電話又は別の移動処理装置、ゲーム機等のテクスチャ処理端末のGPU上に配置されてもよい。
【0097】
図9は、数値デファイナ210の一実施形態を示す概略ブロック図である。この場合、圧縮画素ブロックは、ベースコードワード及び修飾子コードワードを更に含むセットコードを含む。値供給器212は、ベースコードワードに基づいて伸張される現在の画素ブロックにベースプロパティ値を供給する。このような供給は、ベースコードワードをベースプロパティ値に逆量子化することにより実行されるのが好ましい。
【0098】
数値デファイナ210の修飾子供給器214は、修飾子コードワードに基づいて複数の値修飾子の修飾子セットを供給する。供給器214は、複数の修飾子セットを含む表からこの修飾子セットを供給するのが好ましい。値算出器216は、プロパティ値セットを取得するために、修飾子供給214からの値修飾子で値供給器212からのベースプロパティ値を修飾する。
【0099】
数値デファイナ210の装置212〜216は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。装置212〜216は、数値デファイナ210において共に実現されてもよい。あるいは、いくつかの装置が復号化器の他の場所に提供される分散型実現例も可能である。
【0100】
図10は、復号化器における参照識別器220の一実施形態を示す概略ブロック図である。識別器220は、基準コードワードに基づいて画素ブロックにおける第1の参照画素及び第2の参照画素を識別するための画素識別器222を備える。次に線デファイナ224は、これらの参照画素間に延在する画素ブロックにおける線を実質的に規定する。参照点は、2つの参照画素及び線上に置かれているブロックにおけるあらゆる中間画素として規定される。
【0101】
参照識別器220の装置222及び224は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。装置222及び224は、参照識別器220において共に実現されてもよい。あるいは、いくつかの装置が復号化器の他の場所に提供される分散型実現例も可能である。
【0102】
図11は、復号化器の値選択器230の一実施形態を示す概略ブロック図である。選択器230は、参照点であると仮定され且つ例えば対角線上に、垂直に又は水平に現在の画素に隣接する画素ブロックにおける隣接画素数をカウントするための画素カウンタ232を備える。このカウント数又はカウント値は、画素ブロックに対して使用可能な画素プロパティ値のうちの1つを選択するために選択器234により使用される画素に対する画素インデックスを判定するために使用される。
【0103】
値選択器230の装置232及び234は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。装置232及び234は、値選択器230において共に実現されてもよい。あるいは、いくつかの装置が復号化器の他の場所に提供される分散型実現例も可能である。
【0104】
[圧縮器]
図12は、圧縮器又は符号化器100の一実施形態を示す概略ブロック図である。圧縮器100は、現在の画素ブロックに対して使用可能な複数の画素プロパティ値を規定するための数値デファイナ110を備える。参照点判定器120は、圧縮される現在の画素ブロックにおける画素の画素プロパティ値のうちの少なくとも一部に基づいて画素ブロックに対する少なくとも1つの参照点を判定する。画素ブロックの圧縮された表現は、少なくとも1つの参照点の表現及び好ましくは規定された複数のプロパティ値の表現に基づいて表現生成器130により生成される。
【0105】
圧縮器100の装置110〜130は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。圧縮器100は、例えばコンピュータ、ラップトップコンピュータ、移動電話及び他の移動処理装置、ゲーム機等のテクスチャ処理端末のCPU上に配置されてもよい。
【0106】
図13は、数値デファイナ110の一実施形態を示す概略ブロック図である。デファイナ110は、画素ブロックにおける画素プロパティ値のうちの少なくとも一部に基づいてベースプロパティ値を判定するための値判定器を備える。修飾子セット選択器114は、画素ブロックにおける画素プロパティ値に基づいて複数の値修飾子を含む修飾子セットを選択する。この修飾子セットは、複数のそのような修飾子セットを含む表から選択されるのが好ましい。
【0107】
そのような場合、圧縮画素ブロックは、ベースプロパティ値の表現としてベースコードワードを含み、且つ修飾子セットの表現として修飾子コードワードを含む。
【0108】
数値デファイナ110の装置112及び114は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。装置112及び114は、数値デファイナ110において共に実現されてもよい。あるいは、いくつかの装置が圧縮器の他の場所に提供される分散型実現例も可能である。
【0109】
図14は、圧縮器の参照点判定器120の一実施形態を示す概略ブロック図である。画素識別器122は、画素ブロックにおいて複数の画素の中から第1の参照画素及び第2の参照画素を識別する。識別器122は、画素ブロックにおける元のプロパティ値のうちの少なくともいくつかに基づいてこのような選択を実行するのが好ましい。
【0110】
判定器124は、2つの参照画素の位置である参照点及び2つの参照画素を相互接続する線上に置かれているブロックにおけるあらゆる中間画素を判定する。
【0111】
参照点判定器120の装置122及び124は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。装置122及び124は、参照点判定器120において共に実現されてもよい。あるいは、いくつかの装置が、圧縮器の他の場所に提供される分散型実現例も可能である。
【0112】
アルファチャンネルがより少ないビットを必要とし、他の領域における視覚品質又はシステムの性能及びエネルギー消費量を向上するために利用されるという点で、本発明の方式はDXTC[1]より有利である。
【0113】
アルファチャンネルをより効率的に圧縮することにより、アルファチャンネルに対する品質が低下する。本明細書における重要な問題は、このサイズの減少に付随する品質の低下が許容可能かどうかである。これは、Bethesda Softworksによる2006 computer game Oblivionにおいて種々の目的で使用されたアルファチャンネルを圧縮することにより検査されている。
【0114】
この特定の応用例の場合、アルファチャンネルにおける画像品質の著しい劣化はそれから生成された最後にレンダリングされた画像において殆ど目立たないと考えられ、これは多くの他の応用例に対しても当てはまると考えられる。
【0115】
実施形態に従って実行された圧縮が実際に有効な圧縮であり且つ単なる不作為な情報の除去ではないかどうかを調査するために、比較検査が実施された。この検査において、本発明の方式で達成されたPSNRのスコアは、x次元及びy次元の双方で画像を半分のサイズに縮小し、DXTCを使用してそれを1画素当たり4ビットに圧縮し且つ伸張後に元の分解能に拡大することにより容易に達成できるものと比較された。
【0116】
検査は、本発明の方式が一連の検査画像より平均で約2〜3dBだけ良いPSNRスコアを達成することを示しており、本発明の方式が実際に圧縮に対して有用な方式であることを示す。
【0117】
添付の請求の範囲により規定される本発明の範囲から逸脱せずに、種々の変形及び変更が本発明に対して行なわれてもよいことが当業者には理解されるだろう。
【0118】
[参考文献]
[1]米国特許第5,956,431号公報

【特許請求の範囲】
【請求項1】
圧縮画素ブロックを伸張する方法であって、
複数の画素プロパティ値を規定するステップと、
前記圧縮画素ブロックに含まれた基準コードワードに基づいて、画素ブロックに対する少なくとも1つの参照点を識別するステップと、
前記識別された少なくとも1つの参照点のうちの少なくとも1つの参照点に対する前記画素ブロックにおける前記少なくとも1つの画素の位置に基づいて前記画素ブロックにおける少なくとも1つの画素に対して前記規定された複数の画素プロパティ値のうち画素プロパティ値を選択するステップと、
前記少なくとも1つの画素の元の画素プロパティ値の伸張された表現として前記選択された画素プロパティ値を前記少なくとも1つの画素に割り当てるステップと
を有することを特徴とする方法。
【請求項2】
前記規定するステップは、前記圧縮画素ブロックに含まれたセットコードワードに基づいて複数の画素プロパティ値のプロパティ値セットを提供するステップを有することを特徴とする請求項1に記載の方法。
【請求項3】
前記セットコードワードはベースコードワード及び修飾子コードワードを含み、
前記規定するステップは、
前記ベースコードワードに基づいてベースプロパティ値を提供するステップと、
前記修飾子コードに基づいて複数の値修飾子の修飾子セットを提供するステップと、
前記提供されたベースプロパティ値及び前記提供された修飾子セットに基づいて前記プロパティ値を算出するステップと
を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記識別するステップは、
前記基準コードワードに基づいて前記画素ブロックにおける第1の参照画素及び前記画素ブロックにおける第2の参照画素を識別するステップと、
前記第1の参照画素から前記第2の参照画素に延在する前記画素ブロックにおける線を規定するステップと;ここで前記第1の参照画素、前記第2の参照画素、及び前記線上に置かれている前記画素ブロックにおけるあらゆる中間画素の位置が前記少なくとも1つの参照点を構成する
を有することをことを特徴とする請求項1乃至3のいずれか1項に記載の方法。
【請求項5】
前記選択するステップは、
参照点であり且つ前記画素ブロックにおける前記少なくとも1つの画素に隣接する隣接画素数をカウントするステップと、
前記カウントされた隣接画素数に基づいて前記規定された複数の画素プロパティ値のうち前記画素プロパティ値を選択するステップと
を有することを特徴とする請求項4に記載の方法。
【請求項6】
圧縮画素ブロックを伸張するための伸張器であって、
複数の画素プロパティ値を規定するための数値デファイナと、
前記圧縮画素ブロックに含まれた基準コードワードに基づいて、画素ブロックに対する少なくとも1つの参照点を識別するための参照点識別器と、
前記参照点識別器により識別された少なくとも1つの参照点のうちの少なくとも1つの参照点に対する前記画素ブロックにおける前記少なくとも1つの画素の位置に基づいて前記画素ブロックにおける少なくとも1つの画素に対して前記数値デファイナにより規定された前記複数の画素プロパティ値のうち画素プロパティ値を選択するための値選択器と、
前記少なくとも1つの画素の元の画素プロパティ値の伸張された表現として前記値選択器により選択された前記画素プロパティ値を前記少なくとも1つの画素に割り当てるための値割当器と
を有することを特徴とする伸張器。
【請求項7】
前記数値デファイナは、前記圧縮画素ブロックに含まれたセットコードワードに基づいて複数の画素プロパティ値のプロパティ値セットを提供するように構成されることを特徴とする請求項6に記載の伸張器。
【請求項8】
前記セットコードワードはベースコードワード及び修飾子コードワードを含み、
前記数値デファイナは、
前記ベースコードワードに基づいてベースプロパティ値を供給するための値供給器と、
前記修飾子コードワードに基づいて複数の値修飾子の修飾子セットを供給するための修飾子供給器と、
前記値供給器により供給された前記ベースプロパティ値及び前記修飾子供給器により供給された前記修飾子セットに基づいて前記プロパティ値セットを算出するための値算出器と
を有することを特徴とする請求項7に記載の伸張器。
【請求項9】
前記参照点識別器は:
前記基準コードワードに基づいて前記画素ブロックにおける第1の参照画素及び前記画素ブロックにおける第2の参照画素を識別するための画素識別器と、
前記第1の参照画素から前記第2の参照画素に延在する前記画素ブロックにおける線を規定するための線デファイナと;ここで前記第1の参照画素、前記第2の参照画素及び前記線上に置かれている前記画素ブロックにおけるあらゆる中間画素の位置が前記参照点識別器により識別された前記少なくとも1つの参照点を構成する
を有することを特徴とする請求項6乃至8のいずれか1項に記載の伸張器。
【請求項10】
前記値選択器は、
参照点であり且つ前記画素ブロックにおける前記少なくとも1つの画素に隣接する隣接画素数をカウントするための画素カウンタと、
前記画素カウンタによりカウントされた前記隣接画素数に基づいて前記数値デファイナにより規定された前記複数の画素プロパティ値のうち前記画素プロパティ値を選択するための選択器と
を有することを特徴とする請求項9に記載の伸張器。
【請求項11】
各々がそれぞれの画素プロパティ値を有する複数の画素の画素ブロックを圧縮する方法であって、
複数の画素プロパティ値を規定するステップと、
前記複数の画素の前記画素プロパティ値のうちの少なくとも一部に基づいて前記画素ブロックに対する少なくとも1つの参照点を判定するステップと;ここで前記画素ブロックにおける前記少なくとも1つの参照点に対する前記複数の画素の1つの画素の位置が、前記規定された複数のうちの画素プロパティ値の画素プロパティ値の識別器を規定する、
前記少なくとも1つの参照点の表現に基づき、前記画素ブロックの圧縮表現を生成するステップと
を有することを特徴とする方法。
【請求項12】
前記規定するステップは、
前記複数の画素の前記画素プロパティ値のうちの少なくとも一部に基づいてベースプロパティ値を判定するステップと、
前記複数の画素の前記画素プロパティ値のうちの前記少なくとも一部に基づいて、複数の画素プロパティ値のプロパティ値セットを取得するため、前記ベースプロパティ値に適用可能な複数の値修飾子の修飾子セットを選択するステップとを有し、
前記生成するステップは、前記少なくとも1つの参照点の前記表現、前記ベースプロパティ値の表現及び前記修飾子セットの表現に基づいて前記画素ブロックの前記圧縮された表現を生成するステップを有することを特徴とする請求項11に記載の方法。
【請求項13】
前記判定するステップは、
前記複数の画素の前記画素プロパティ値のうちの前記少なくとも一部に基づいて、前記画素ブロックにおける第1の参照画素及び前記画素ブロックにおける第2の参照画素を識別するステップと、
前記識別された第1の参照画素、前記第2の参照画素、及び、前記第1の参照画素から前記第2の参照画素に延在する線上に置かれている前記画素ブロックにおけるあらゆる中間画素の位置として前記少なくとも1つの参照点を判定するステップと
を有することを特徴とする請求項11又は12に記載の方法。
【請求項14】
各々がそれぞれの画素プロパティ値を有する複数の画素の画素ブロックを圧縮するための圧縮器であって、
複数の画素プロパティ値を規定するための数値デファイナと、
前記複数の画素の前記画素プロパティ値のうちの少なくとも一部に基づいて前記画素ブロックに対する少なくとも1つの参照点を判定するための参照点判定器と;ここで、前記画素ブロックにおける前記少なくとも1つの参照点に対する前記複数の画素の画素の位置が、前記数値デファイナにより規定された前記複数の画素プロパティ値のうちの画素プロパティ値の識別器を規定する、
前記少なくとも1つの参照点の表現に基づき、前記画素ブロックの圧縮表現を生成する表現生成器と
を有することを特徴とする圧縮器。
【請求項15】
前記数値デファイナは、
前記複数の画素の前記画素プロパティ値のうちの少なくとも一部に基づいてベースプロパティ値を判定するための値判定器と、
前記複数の画素の前記画素プロパティ値のうちの前記少なくとも一部に基づいて複数の画素プロパティ値のプロパティ値セットを取得するように前記値判定器により判定された前記ベースプロパティ値に適用可能な複数の値修飾子の修飾子セットを選択するための修飾子セット選択器とを有し、
前記表現生成器は、前記少なくとも1つの参照点の前記表現、前記ベースプロパティ値の表現、及び、前記修飾子セットの表現に基づいて前記画素ブロックの前記圧縮された表現を生成するように構成されることを特徴とする請求項14に記載の圧縮器。
【請求項16】
前記参照点判定器は:
前記複数の画素の前記画素プロパティ値のうちの前記少なくとも一部に基づいて前記画素ブロックにおける第1の参照画素、及び、前記ブロックにおける第2の参照画素を識別するための画素識別器と、
前記画素識別器により識別された前記第1の参照画素、前記第2の参照画素、並びに前記第1の参照画素から前記第2の参照画素に延在する線上に置かれている前記画素ブロックにおけるあらゆる中間画素の位置として前記少なくとも1つの参照点を判定するための判定器と
を有することを特徴とする請求項14又は15に記載の圧縮器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公表番号】特表2012−503409(P2012−503409A)
【公表日】平成24年2月2日(2012.2.2)
【国際特許分類】
【出願番号】特願2011−527768(P2011−527768)
【出願日】平成20年11月18日(2008.11.18)
【国際出願番号】PCT/SE2008/051322
【国際公開番号】WO2010/036166
【国際公開日】平成22年4月1日(2010.4.1)
【出願人】(598036300)テレフオンアクチーボラゲット エル エム エリクソン(パブル) (2,266)
【Fターム(参考)】