説明

画像の圧縮及び/又は復元

画像の複数のバージョンが圧縮される画像圧縮方法であって、各バージョンは異なる画像解像度を有する。方法は、画像の1つ又は複数の圧縮バージョンについて、復元画像データを生成するために、その圧縮バージョンを復元するステップと、画像の解像度のより高いバージョンと復元画像データとの画像差分を検出するステップと、検出された画像差分に応じて、差分データを圧縮するステップとを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像の圧縮及び/又は復元に関する。
【背景技術】
【0002】
三次元(3D)コンピュータグラフィックス(CG)システムでは、様々な技術を使用して、表示画面上に2Dビューとして表示する際の3Dオブジェクトの形状を決定する。次に、多くの場合、「シェーダ」と呼ばれる機構が、オブジェクトの表面外観を決定する。これは、一般に、描画されたオブジェクトに表面「テクスチャ」を適用すること、並びにオブジェクトの反射性及びそのオブジェクトに対する光源の位置(仮想環境内の)を考慮することを含む。
【0003】
表面テクスチャの適用は、「テクスチャマップ」(オブジェクトの所望の表面外観を表す)と呼ばれる事前に準備及び記憶された画像を3D形状に投影することを含む。これは確立された技術であり、グラフィカルに生成された3D形状に投影するための記憶されたテクスチャマップのセットに対する一般要件に関連する以外、本明細書において詳細に説明しない。テクスチャマップは単なる画像データである。これらの画像は、たまたまCGオブジェクトに適用すべき表面パターンを表しており、基本的には単に画像データを表す。例えば、コンピュータゲームシステムでは、多くの場合、非常に多くのこのようなテクスチャマップが必要とされる。これは、実際には、テクスチャマップを圧縮した形態で(例えば、コンピュータゲームディスクに)記憶する必要があることを意味する。
【0004】
多くのCGシステム、特にパーソナルコンピュータ又はゲーム機内のハードウェアアクセラレート3D CG装置は、リアルタイムで動作する。すなわち、表示(フレーム)周期毎に1回、表示する新しい画像を生成する。これを達成するためには、記憶されているテクスチャマップに高速アクセスする必要があり、ひいては記憶されているテクスチャマップの比較的単純で高速の復元を可能にする圧縮/復元技術が必要である。
【0005】
画像圧縮技術によっては、この特徴を提供するように、すなわち、復元プロセスに必要な処理及びメモリアクセスが比較的少ないように特別に設計されるものがある。一例は、S3 Graphics Ltdによって開発され、以下の非特許文献1及び特許文献1において説明されているDXTn(但し、nは1〜5である)と呼ばれることが多いS3テクスチャ圧縮技術(S3 Texture Compression technique)のファミリである。
【0006】
基本形態のDXT1は、24ビットRGB(赤−緑−青)カラーデータの6:1固定圧縮を提供し、それによって、4×4ピクセルブロック(384ビット)は64ビットデータ量に圧縮される。各ピクセルブロックは、565精度(すなわち、赤5ビット、緑6ビット、及び青5ビット)で「開始」カラー及び「終了」カラーを選択し、開始カラーと終了カラーとの間に(RGB色空間内の直線上で)均等に分散するものとして定義することができる最高で2つの最高精度中間色を考慮することによって圧縮される。したがって、中間色は、開始カラー及び終了カラーから導出することができ、中間色は、圧縮データの部分として明示的に符号化する必要がない。次に、4×4ピクセルブロック内の各ピクセルが、これらの4色のうち最も近い色の選択として2ビットインデックスを使用して符号化される。したがって、4×4ピクセルブロックの符号化に使用されるビット総数は、(16ピクセル×2ビット/ピクセル)+(2基準色×(5+6+5)ビット/基準色)=64ビットである。
【0007】
ピクセルブロックを復元する場合に必要なのは、開始カラー及び終了カラーを検出し、色空間内で開始カラーと終了カラーとの間に均等に分散した2つの中間色を補間し、それから、各ピクセルに提供される2ビットインデックスと共にルックアップテーブル内のこれらの4色を使用することだけである。このようにして、圧縮/復元処理のよりプロセッサ集約的な態様(例えば、開始カラー及び終了カラーの選択)を圧縮側で処理し、復元を比較的単純な処理動作として残すことができる。
【0008】
DXT1の他の変形及びDXTnファミリ技術の他のメンバは同様の手法を使用し、ピクセルブロックに関連するいわゆるアルファチャンネル(透明度)情報を処理することもできる。説明を容易にするために、DXT1が例として本明細書において考察されるが、これから説明する技術が残りのDXT技術及び添付の特許請求の範囲内にある他の圧縮技術の両方に適用可能なことが理解されるであろう。
【0009】
上述したDXT1圧縮システムは、CGシステムにおいて使用するために、特定の画像サイズで単一のテクスチャマップを圧縮する効率的な方法を提供する。しかし、テクスチャマップが投影される3Dオブジェクトのサイズは様々であり得る。サイズは、単純なレベルでは、表現されている物体がどれだけ大きいか、及びオブジェクトが仮想環境において仮想視点からどの程度離れて配置されるかに依存する。仮に単一のテクスチャマップのみが記憶された場合、テクスチャマップの画像サイズは、恐らく、3Dオブジェクトに正しくマッピングするために必要なサイズに合わないであろう。しかし、仮にテクスチャマップが、可能性のある各オブジェクトスケール毎に記憶された場合、ストレージ要件は実用的でない大きさになるだろう。したがって、従来の解決策は、異なるスケールから選択された少数のテクスチャマップが記憶され、特定のオブジェクトに対して、所要のスケールのテクスチャマップ(又はむしろ、テクスチャマップの関連部分)が、スケールが所要のスケールに最も近い1つ又は2つの記憶されているマップから補間される。一般に、この目的は、最も所要のスケールが一対の記憶されているマップスケールの間に入るのに十分に広い範囲の記憶されているマップを有することである。表示されたオブジェクトが仮想視点に対して移動しているため、スケールの異なるテクスチャマップが各フレームで必要かもしれず、この状況に対処するために、この補間プロセスをリアルタイムで実行することができる。
【0010】
複数のスケールのテクスチャマップの使用は、「MIPマッピング」(MIPは、「小さな空間に多くのもの」を意味するラテン語句multum in parvoの頭字語である)と呼ばれることがある。用語「MIPマップ」は、一般に、異なるスケールのテクスチャマップセットを指すために使用される。多くの場合、スケールは等比級数を形成するため、(例えば)、各スケールは次に高いスケールのサイズの1/4(各次元の50%)である。一例として、テクスチャマップが256×256ピクセルという基本サイズを有する場合、関連付けられるMIPマップは、そのテクスチャマップの8つのバージョン、画像サイズ128×128、64×64、32×32、16×16、8×8、4×4、2×2、及び1×1ピクセル、をさらに含み得る。MIPマップのストレージ要件の合計は、基本(256×256)テクスチャマップのストレージ領域の4/3倍に非常に近い。
【0011】
シェーダは、MIPマップを使用して、一般に、MIPマップ内の2つの最も近いスケール間を補間することによって、所要のスケールのテクスチャ情報を生成する。したがって、例えば、オブジェクトの表示サイズが、40×40ピクセルのスケールサイズのテクスチャマップが必要であることを意味する場合、シェーダは、MIPマップ内の64×64画像と32×32画像とから、所望のテクスチャ部分を補間する。
【0012】
0.25等比級数における上に列挙したスケールセットは、当然ながら、MIPマップの使用の単なる一例である。
【0013】
この技術は、かなり高い空間周波数情報を含むテクスチャマップに対しては上手く働くが、平滑な勾配を有する(比較的低い空間周波数詳細を表す)テクスチャマップに対してはあまり上手く働かないものと考えられる。このような低い周波数詳細を有するテクスチャマップの一例は、オブジェクトの照明を表すテクスチャマップである。低空間周波数テクスチャマップでは、DXT圧縮においてブロック単位で開始カラー及び終了カラーを選択する必要性によってもたらされる不連続を表すこともある圧縮アーチファクト(compression artefacts)が見える可能性がある。
【0014】
MIPマップ内に多くの画像を含むこともある他の様々なスケールセットも、表示されたオブジェクトのレンダリングされる外観の改良を図るために提案されている。別の可能性は、圧縮システムにRGBと異なる色空間を使用することである。しかし、これらの試みは、ストレージ要件の大幅な増大、又は復元ステージでの処理オーバーヘッドの望ましくない追加という欠点のいずれかを有することが分かっている。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】米国特許第5956431号明細書
【非特許文献】
【0016】
【非特許文献1】http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt
【発明の概要】
【0017】
本発明は、画像の複数のバージョンが圧縮される画像圧縮方法であって、各バージョンは異なる画像解像度を有し、当該方法は、画像の1つ又は複数の圧縮バージョンについて、復元画像データを生成するために、その圧縮バージョンを復元するステップと、画像の解像度のより高いバージョンと復元画像データとの画像差分を検出するステップと、検出された画像差分に応じた差分データを圧縮するステップとを含む、方法を提供する。
【0018】
また、本発明は、画像の複数の圧縮バージョンが提供される画像復元方法であって、各バージョンは、復元画像バージョンと解像度のより高い各画像バージョンとの画像差分に依存する圧縮差分データと共に、異なる画像解像度を有し、当該方法は、1つ又は複数の画像バージョンを選択するステップと、選択された画像バージョンに関連する圧縮画像データを復元するステップと、選択された画像バージョンよりも高い各解像度に関連する差分データを復元するステップと、所要の出力解像度の出力画像を生成するために復元画像データと復元差分データとを結合するステップとを含む、方法を提供する。
【0019】
選択された画像バージョンは、例えば、結果として生成される差分データが所要の出力解像度に広がる解像度を表すようなものであってよい。
【0020】
本発明は、CGアプリケーションでのリアルタイムでの使用に特に適し(しかし、排他的に適するものではない)、メモリ又は処理オーバーヘッドを殆ど増大させずに向上した出力画質を提供することができる画像データ圧縮/復元技術を提供する。特に、同様のストレージ要件及び処理要件で、平滑照明勾配等の低空間周波数画像情報が符号化されている状況において、視認することができるノイズを低減することができる(従来の技術と比較して、この技術を使用することによって)。
【0021】
本発明の様々な他の態様及び特徴は添付の特許請求の範囲において規定される。
【0022】
本発明の実施形態について、単なる例として、添付図面を参照しながらこれより説明する。
【図面の簡単な説明】
【0023】
【図1】データ処理装置の概略図である。
【図2】グラフィックスカードの概略図である。
【図3】MIPマップを概略的に示す図である。
【図4】本発明の実施形態によるMIPマップの生成を概略的に示す図である。
【図5】図4によって生成されたMIPマップからの所望のテクスチャマップ値の補間を概略的に示す図である。
【発明を実施するための形態】
【0024】
これより図1を参照すると、データ処理装置は、システムユニット10と、ディスプレイ20と、マウス、キーボード、ゲームコントローラ等、又はこれらの組み合わせのような入力装置30とを備える。ディスプレイ及び入力装置はデータ処理装置の周辺機器であり、当然ながら、データ処理装置はこれらアイテムなしで市販されてもよい。
【0025】
データ処理装置は、例えば、パーソナルコンピュータ、Sony(登録商標)PlayStation 3(登録商標)家庭用娯楽機器等のコンピュータゲーム機、又はSony(登録商標)PlayStation Portable(登録商標)娯楽機器等のハンドヘルド機器であってよい。
【0026】
システムユニット10は、バス構造40によって相互接続されたいくつかのアイテム、すなわち、中央演算処理装置(CPU)50、ランダムアクセスメモリ(RAM)60、読み取り専用メモリ(ROM)70、リムーバブル及び/又は固定ディスクストレージ(光ディスクストレージ等)80、入力装置30等の周辺機器と連結するための入出力(I/O)インタフェース90、ネットワーク及び/又はインタネット接続120と連結するための有線及び/又は無線ネットワークインタフェース100、並びにグラフィックスカード110を備える。
【0027】
データ処理装置の2つの動作モードについて後述する。これらは、グラフィカル画像を後で生成する際に使用するための圧縮テクスチャマップの準備及びテクスチャをグラフィカルオブジェクトに適用するための圧縮テクスチャマップの復元である。概して、これらは、同一のデータ処理装置によって実行されることができる。だが、これらプロセスのうちの最初のプロセスが、いわゆるデベロッパーキットのような強力な非可搬式システム又は強力なパーソナルコンピュータによって実行され、第2のプロセスは、上述した娯楽機器のうちの1つ等の消費者機器によって実行される可能性のほうが高いことが理解されよう。以下の説明のために、図1に示す装置がいずれかのプロセスを実行可能な装置を表すものと仮定する。
【0028】
動作に際して、コンピュータプログラムコードが、ディスクストレージ80から、ROM70から、且つ/又はネットワーク接続120を介して読み取られ、RAM60にロードされ、恐らくは、入力装置30から受信される信号に応答して、CPU50によって実行される。CPU50はデータ出力を生成し、このデータ出力はグラフィックスカード110に渡される。
【0029】
グラフィックスカード110は、CPU50から受信されたデータに対して作用して、ディスプレイ20に表示される画像を準備又は「レンダリング」する。グラフィックスカード110について以下でより詳細に説明する。概して、グラフィックスカード(当然ながら、カード形状である必要はなく、又は装置の残りの部分への接続に関して取り外し可能である必要さえもない)は、マイクロプロセッサ、及び関連付けられるメモリ、及び効率的な出力画像のレンダリングに固有の処理タスクの処理を専用とする他のハードウェアを備える。
【0030】
図2は、グラフィックスカード110の概略図である。グラフィックスカードが、それ自体、非常に強力な計算装置であることができ、したがって、図2が単に、CG技術の包括的な説明の基本を形成するのではなく、グラフィックスカードの機能の、本説明に関連する部分の概観であることが理解されよう。PlayStation 3(登録商標)娯楽機器のグラフィックスカードは、NVIDIA(登録商標)7800(商標)グラフィックスカードに基づく。
【0031】
したがって、概観として、グラフィックスカード110は、データをCPU50から受信し、そのデータから、ディスプレイバッファ180に記憶される出力画像を生成する。プリミティブレンダラ130が、プリミティブとして知られている小さな画像部分を生成し、そこから、出力画像が構築される。各プリミティブは、例えば、出力画像内のオブジェクト又は画像背景の部分を形成する小さなポリゴンを表し得る。「深度」又は「z」値が各プリミティブの各ピクセルに関連付けられて、最終画像内でのレンダリングされる他のプリミティブへの相対的な深度を示す。深度値は深度バッファ140に記憶される。同様に、透明度又は「α」値は各ピクセルに関連付けられて、透明さの程度を定義する。このようにして、最終画像は、背景ピクセルが非透明の前景ピクセルの背後に隠れるのに対して、同じ表示位置にある前景ピクセルが完全又は部分的に透明である場合、背景ピクセルが全体的又は部分的に見えるように構築することができる。
【0032】
シェーダ160は、テクスチャマップバッファ170に記憶されたテクスチャマップを使用して、表面テクスチャをレンダリングされたプリミティブのうちのいくつか又はすべてに適用する。これらのテクスチャマップは、(例えば)ディスクストレージ80、ROM70、RAM60から、又はネットワーク接続120を介して検索することができ、アクセスの容易さ及び速度のためにテクスチャマップバッファ170にローカルに記憶される。シェーダは、テクスチャマップデータのオリジナルソースから直接、すなわちローカルストレージを必要とすることなく働いてもよいが、このような構成は確実に、ローカルストレージにテクスチャマップデータをキャッシュするよりもかなり遅くなることが理解されよう。実際に、深度バッファ140、テクスチャマップバッファ170、及びディスプレイバッファ180は、図2に示されていないグラフィックスカードの他のストレージ要件と共に、動作速度のためにグラフィックスカード内又はグラフィックスカードの非常に近くに設けられるグラフィックスカードのローカルストレージ150の部分を形成する。
【0033】
シェーダは、そのオブジェクトに適用すべき表面仕上げ又は表面外観を適用するために、レンダリングされるオブジェクトの性質又は表面や、仮想環境での任意の照明の反射性及び性質及び位置等の他の要因を考慮に入れる。頂点シェーディング、ピクセルシェーディング、ジオメトリシェーディング等のような多くの異なるシェーダ技術が提案及び開発されてきた。これらはすべて当該技術分野において既知であり、本実施形態は、テクスチャマップデータが適用される特定の技術にではなく、シェーダによって適用されるテクスチャマップデータの生成に関連するため、本明細書において詳細に説明しない。
【0034】
シェーダは、通常、シェーダの機能に特に関連する特徴を有する特別に設計されたプログラミング言語であるシェーディング言語を使用して実装される。シェーダ言語で書かれたいくつかの機能例を以下に挙げる。Sony(登録商標)PlayStation 3(登録商標)娯楽機器に使用されるグラフィックスカードは、毎秒750億回のシェーダ演算が可能であると報告されている。
【0035】
図3は、前もって処理されたMIPマップを示す概略図である。
【0036】
用語「MIPマップ」は、本明細書では、異なるスケールのテクスチャマップセットを指すために使用される。本例では、スケールは、各スケール(解像度)が次に高いスケールのサイズの1/4(各次元が50%)であるように、幾何(すなわち、対数)級数又は集合を形成する。特に、テクスチャマップ200は256×256ピクセルという基本サイズを有する。MIPマップは、最高で8つのバージョンのテクスチャマップをさらに含み、そのテクスチャマップは、画像サイズ128×128、64×64、32×32、16×16、8×8、4×4、2×2、及び1×1ピクセルである。図3では、図面を明確にするために、最初の5つのスケールのみ、すなわち、256×256(テクスチャマップ200)、128×128(テクスチャマップ210)、64×64(テクスチャマップ220)、32×32(テクスチャマップ230)、及び16×16(テクスチャマップ240)が示される。9つすべてのバージョンがある場合、MIPマップのストレージ要件の合計は、基本(256×256)テクスチャマップ200のストレージ領域の4/3倍に非常に近い。
【0037】
MIPマップ内の異なるテクスチャマップバージョンはすべて、(この例では)DXT1圧縮を使用して圧縮されている。
【0038】
シェーダは、MIPマップを使用して、一般にMIPマップ内の2つの最も近いスケール間の補間によって所要のスケールのテクスチャ情報を生成する。このための様々な補間方法が提案されており、具体的な補間技術は本実施形態にとって重要ではない。異なるスケールのテクスチャマップバージョンが最初に生成され、アンチエイリアシング処理が実行された場合、この段階での補間が有利である。
【0039】
テクスチャマップの所要のスケールは、レンダリング中のオブジェクトの表示サイズに依存し、表示サイズは、基本サイズ及びオブジェクトが仮想視点から(仮想環境内で)表示される距離に依存する。既知の技術が使用されて、補間されるテクスチャマップの所要のスケールが確立される。所要のスケールのテクスチャマップ全体を補間するのではなく、一般に、オブジェクトの表示に必要なこれらの部分のみが補間される。補間される部分のこの選択は、ピクセル単位で行うことができる。
【0040】
したがって、例えば、オブジェクトの表示サイズが、(例えば)160×160ピクセルのスケールのテクスチャマップ250が必要であることを意味する場合、シェーダは、MIPマップ内の、256×256バージョン200及び128×128ピクセルバージョン210からテクスチャの必要な部分を補間する。DXT1圧縮は、圧縮画像の特定のブロックにローカルである(すなわち、ブロックの復元には、他のいかなるブロックの復元も必要としない)ため、復元する必要があるのは、補間プロセスに関連するバージョンのこれらの部分のみである。一例を図3に示し、部分252(シェーダによって従来通りに導出されるマップ内座標(u,v)によって定義される)が、シェーダ160において実行されている補間プロセス260によって、MIPマップ内の各画像バージョンの復元された部分202及び212から補間される。
【0041】
図3は、MIPマップ技術を使用して前に提案されたシェーダに関連付けられる処理を表した。本発明の実施形態によるMIPマップの生成及び使用と、シェーダ技術とに関連するプロセスについて、図4及び図5を参照してこれより説明する。
【0042】
図4は、本発明の実施形態によるMIPマップの生成を概略的に示す。これらの動作は、画像のリアルタイム表示ではなくデータの準備を指すため、一般に、グラフィックスカード110によって実行されない。むしろ、これらの動作は、通常、プログラム制御下のCPU50によって実行される。
【0043】
「基本」テクスチャマップ300(例えば、256×256ピクセル)から、MIPマップが、テクスチャマップのより小さなバージョンシリーズ310、320、330、340、・・・を生成するために、オプションとして既知のアンチエイリアシング処理を含む既知の技術を使用して生成される。図3を参照して上述したように、シリーズは1×1ピクセルのバージョンまで可能であるが、最小バージョンは、単に図面を明確にするために、図4に示されない。
【0044】
テクスチャマップは圧縮され(例えば、DXT1圧縮を使用して)、それから、以下の処理のために復元される。続けて記憶又は送信されるテクスチャマップについては(マップ300以外−以下参照)、圧縮された形態で記憶又は送信される。
【0045】
基本テクスチャマップ300は、最終的に破棄される。すなわち、記憶又は送信され、後にシェーダ160によって参照されるMIPマップにおいて使用されない。しかし、基本テクスチャマップ300は、MIPマップの準備に使用されるため、図4には破線で示される。
【0046】
「差分」テクスチャマップシリーズが生成される。これらは図4において差分マップ350、360、370、及び380として示される。基本テクスチャマップ300のサイズに対応する1つの差分マップ350があり、最小テクスチャマップサイズを除き、それよりも低い各テクスチャマップサイズ毎に1つの差分マップがある。
【0047】
差分マップが生成される方法についてこれより説明する。各MIPマップレベル310、・・・、330毎に、CPU50はマップを復元し、以下のプログラムプロセスステップ342、344、346、及び348を実行する。
(ステップ342)倍率4で次に低い解像度画像バージョンを画像拡張(すなわち、スケーリング)する(すなわち、現在レベルと同じサイズにする)。
(ステップ344)現在レベルのピクセルと画像拡張された次に低いレベルのピクセルとの差分をピクセル単位で計算(すなわち、検出)する。
(ステップ346)差分を利得係数(スケーリング定数)で乗算し、オフセット(例えば、128=ピクセル値の全範囲の半分)を適用する。
(ステップ348)DXT1又は他の圧縮を使用して、差分画像を圧縮する。
【0048】
利得係数は、例えば、圧縮/復元品質を向上させるために、4又は8であってよい。これは、差分値のすべてが(オフセットが適用される前)適度にゼロに近くなるため可能である。オフセットは、負の差分値を扱うために適用される。
【0049】
画像拡張プロセスは、既知の双線形フィルタリングプロセスであってよい。
【0050】
基本形態のDXT1圧縮は、24ビットRGBカラーデータの6:1固定圧縮を提供し、それによって、4×4ピクセルブロック(384ビット)は64ビットデータ量に圧縮される。各ピクセルブロックは、565精度(すなわち、赤5ビット、緑6ビット、及び青5ビット)で開始カラー及び終了カラーを(既知の技術を使用して)選択し、開始カラーと終了カラーとの間に(RGB色空間内の直線上で)均等に分散するものとして定義することができる最高で2つの最高精度中間色を考慮することによって圧縮される。それから、ブロック内の各ピクセルは、これらの4色のうち最も近い色の選択として2ビットインデックスを使用して符号化される。したがって、4×4ピクセルブロックの符号化に使用されるビット総数は、(16ピクセル×2ビット/ピクセル)+(2基準色×(5+6+5)ビット/基準色)=64ビットである。
【0051】
ピクセルブロックが後に復元される場合に必要なのは、開始カラー及び終了カラーを検出し、色空間内で開始カラーと終了カラーとの間に均等に分散した2つの色を補間し、それから、各ピクセルに提供される2ビットインデックスと共にルックアップテーブル内のこれらの4色を使用することだけである。
【0052】
図4を参照して、差分画像360の生成を概略形態で示す。テクスチャマップバージョン320が、テクスチャマップバージョン310と同じサイズに画像拡張される。上述したように、これら2つの差分が確立され、スケーリング、及びオフセットされて、差分画像360が生成され、それから、差分画像360はDXT1圧縮を受ける。対応する技術が使用されて、図4に示される他の差分画像が生成される。説明した技術が、最小テクスチャマップよりも1レベル(等比級数で)大きな最小差分画像をもたらすことが分かる。
【0053】
基本テクスチャマップ300が差分画像350の生成に使用されるが、後で使用するために記憶又は送信されないことが分かる。
【0054】
テクスチャマップバージョン310、・・・、340もDXT1圧縮を受ける。
【0055】
図4において生成されたすべてのデータは(好ましくは、本処理に関わる限り、破棄される最高解像度マップ300は別として)、圧縮された形態で、ネットワークを介して送信することができ、且つ/又は光ディスク等の記憶媒体に記憶することができる。
【0056】
図5は、図4に従って生成されたMIPマップ(テクスチャマップ等の画像の複数の圧縮バージョンと、復元された画像バージョンとより高い各解像度画像バージョンとの画像差分に依存する差分データと、を含む)からの所要のテクスチャマップ値の補間を概略的に示す。これらの動作は、一般に、シェーダ160によってリアルタイムで実行される。
【0057】
図5では、テクスチャマップバージョン310、・・・、340が、差分画像350、・・・380と共に提供される。ここでも、図面を明確にするために、少数の最小テクスチャマップバージョン及び差分画像が示されていないことに留意されたい。基本テクスチャマップ300(図4)が提供されていないことにも留意されたい。
【0058】
任意のサイズの所要のテクスチャマップスケール390の所要のテクスチャマップエリア392を生成する基本プロセスについて、これより説明する。本例では、所要のテクスチャマップスケールは、基本サイズ256×256ピクセルと次に低いサイズ128×128ピクセルとの間にある。
【0059】
2つの補間プロセス400、410がシェーダ160によって実行される。
【0060】
補間プロセス400は、シェーダ160によってこの目的のために選択された2つのテクスチャマップ内、すなわち(所要のスケール390から次に低い)テクスチャマップバージョン310及び(また次に低い)320内の領域312及び322を復元し、これら領域の間に作用して、所要の領域392に対応するが、所要のスケールの1/4(すなわち、MIPマップ構造内で1レベル下)の補間ピクセル又は領域を生成する。
【0061】
補間プロセス410は、所要のスケール390の両側のスケールの各差分画像350、360内の領域352、362を復元し、これら領域の間に作用する。したがって、差分データの補間は、テクスチャデータの補間に使用された解像度より次に高い解像度の差分データを使用して行われる。
【0062】
補間プロセス400(すなわち、図5の例においてテクスチャマップバージョン310及び320に適用されるプロセス)は、所要の出力スケール390の出力ピクセルを生成するように、2つのテクスチャマップバージョン間を補間する。したがって、補間プロセス400は、補間プロセス410に対してアップスケールすることを含むと考えることができる(しかし、実際には、両プロセスは単に、2つのMIPバージョンを入力としており、所要のスケール390の出力を生成するように、シェーダの機能を使用して構成される)。
【0063】
2つの補間プロセス400、410の結果は、ここでもシェーダ160によって実施される結合プロセス420に渡される。結合プロセスは、以下のように2つの補間領域をとり、これらの補間領域を結合する。
差分画像ピクセル値を利得係数(上記参照)で除算し、オフセットを減算し、
差分画像ピクセル値及び補間テクスチャマップ内の対応するピクセル位置を加算して、所要の解像度の出力テクスチャマップを生成する。
【0064】
各コマンドの説明と共に、シェーダプログラミング言語で実行されるこのプロセスの一例は以下である。
half3 base = tex2Dbias(baseTex, in_uv, bias_amount).xyz
half3は、続く変数名の種別を定義し、したがって、変数baseは半精度3構成要素(RGB)変数である。
tex2Dbiasは、現在必要とされているスケールにバイアスMIPレベルbias_amount(上記例では1であるが、他の実施形態では異なる数であってもよい)を加算したMIPマップからピクセル値を生成するコマンドである。
baseTexは、テクスチャマップに対応するMIPマップを識別する(この例では、マップ310、・・・、340)。
in_uvは、テクスチャマップ内の座標を表す。
.xyzは、引数の最初の3つの構成要素(RGB)を結果として渡すべきであることを示す。
したがって、このコマンドは、別の方法で選択されたスケールよりも1つ低い(MIPチェーン内で)テクスチャマップスケールを使用して、所要のピクセルを生成する。
half3 diff = tex2D(diffTex, in_uv).xyz
tex2Dは、所要のスケールでの(オフセットなし)MIPマップからのピクセル値を生成するコマンドであり、
diffTexは、差分画像(すなわち、この例では画像350、・・・、380)に対応するMIPマップを識別する。
half3 combined = base + scale.xxx * (diff-offset.xxx)
combinedは出力ピクセル値である。
scale(1/利得係数、を表す)及びoffsetについては図4を参照して上述した。
.xxxは、関連する変数の3つの構成要素の表現を示す。
【0065】
可能な発展では、見ることができる細部がより少ない、より遠いオブジェクトを(通常)表す、所要のスケールがより小さい場合、差分マップの使用を低減するか、又は完全に回避し、それに代えて、所要の出力スケールの両側のスケールを有するテクスチャマップ間の単に従来の補間を使用することができる。したがって、例えば、仮に、所要の出力スケールが特定のレベルよりも小さい場合、従来の技術を使用することができるのに対し、所要の出力スケールがこのような閾値よりも大きい場合、差分ベースの技術を使用することができる。又は、従来の技術の結果と新しい技術の結果との加重和を使用してもよく、重み付けは、一般に、所要のスケールの増大に伴って新しい(差分画像)技術を優先するように増大する。これらの2つの可能性を組み合わせてもよく、すなわち、加重され閾値処理されるシステムであってもよく、重み付けは閾値スケールを超えて適用される。当然ながら、最大テクスチャマップバージョンが上述したように破棄されていると仮定して、従来の技術は、2番目のMIPレベルよりも高い所要スケールでは適用することができない。
【0066】
図4に示す技術を使用して生成されたMIPマップのストレージ要件は、図3のMIPマップのストレージ要件よりもわずかに高くなり得る。特に、この要件は基本マップ200、300のサイズの約5/3であり得る。しかし、ストレージ内のこの小さな増大によって、大幅に改良された画質を提供することができる。
【0067】
まとめると、上述した実施形態は、CGアプリケーションでのリアルタイムでの使用に特に適し(しかし、排他的に適するものではない)、メモリ又は処理オーバーヘッドを殆ど増大させずに向上した出力画質を提供することができる画像データ圧縮/復元技術を提供する。特に、同様のストレージ要件及び処理要件で、平滑照明勾配等の低空間周波数画像情報が符号化されている状況において、視認することができるノイズを低減することができる(従来の技術と比較して、この技術を使用することによって)。
【0068】
上記実施形態は、適切なソフトウェアの制御下で動作した場合、上述した機能ステップを実行する手段を提供する図1のデータ処理装置によって実施することができる。特に、データ処理装置は、データ圧縮器、データ復元器、選択器、検出器、結合器、生成器等を提供し、これらはすべて上記技術において使用可能である。結果として、図4に関して説明したプロセスによって生成されるMIPマップデータは、例えばコンピュータゲームの部分として、又はコンピュータゲームに関連して、ネットワークを介して送信することができ、且つ/又は記憶媒体に記憶することができる。

【特許請求の範囲】
【請求項1】
画像の複数のバージョンが圧縮される画像圧縮方法であって、各バージョンは異なる画像解像度を有し、該方法は、
前記画像の1つ又は複数の圧縮バージョンについて、
復元画像データを生成するために、その圧縮バージョンを復元するステップと、
前記画像の解像度のより高いバージョンと前記復元画像データとの画像差分を検出するステップと、
前記検出された画像差分に応じた差分データを圧縮するステップと、
を含む、方法。
【請求項2】
前記画像差分を検出するステップの前に、前記復元画像データを前記画像の解像度のより高い各バージョンの画像解像度に等しい画像解像度にスケーリングするステップを含む、請求項1に記載の方法。
【請求項3】
前記画像バージョンは、異なる各画像解像度を有するバージョンセットとして構成され、
前記検出するステップは、前記復元画像データと前記バージョンセット内で次に高い解像度を有する画像バージョンとの画像差分を検出するように構成される、請求項1又は2に記載の方法。
【請求項4】
前記バージョンは、特定の画像バージョンについて、前記次に高い解像度の画像バージョンが、その画像バージョンの解像度の所定の倍数である解像度を有するように、対数級数によって関連する各画像解像度を有する、請求項3に記載の方法。
【請求項5】
前記圧縮画像バージョン及び前記圧縮差分データを記憶及び/又は送信するステップを含み、その構成は、最高解像度画像バージョンについては圧縮画像データが後に使用するために記憶又は送信されないようなものである、先行するいずれか一項に記載の方法。
【請求項6】
前記差分データは、スケーリング定数を乗算した前記検出された画像差分に応じるものである、先行するいずれか一項に記載の方法。
【請求項7】
画像の複数の圧縮バージョンが提供される画像復元方法であって、各バージョンは、復元画像バージョンと解像度のより高い各画像バージョンとの画像差分に応じた圧縮差分データと共に、異なる画像解像度を有し、該方法は、
1つ又は複数の画像バージョンを選択するステップと、
前記選択された画像バージョンに関連する前記圧縮画像データを復元するステップと、
前記選択された画像バージョンよりも高い各解像度に関連する前記差分データを復元するステップと、
所要の出力解像度の出力画像を生成するために、前記復元画像データと前記復元差分データとを結合するステップと、
を含む、方法。
【請求項8】
前記画像バージョンは、異なる各画像解像度を有するバージョンセットとして構成され、
復元される前記差分データは、前記選択された画像バージョンよりも次に高い各解像度に関連する、請求項7に記載の方法。
【請求項9】
前記結合するステップは、前記出力画像の前記所要の解像度に応じて、該出力画像の生成に使用される前記復元差分データの割合を変更するように構成される、請求項8に記載の方法。
【請求項10】
前記結合するステップは、実質的に、所要の出力解像度が低いほど前記出力画像が前記差分データに応じる程度が低くなるように構成される、請求項9に記載の方法。
【請求項11】
前記所要の出力解像度が所定の最低範囲の場合、前記出力画像は前記差分データから独立する、請求項10に記載の方法。
【請求項12】
データ処理装置で実行されるとき、該データ処理装置に、先行するいずれか一項に記載の方法を実行させるプログラムコードを有するコンピュータソフトウェア。
【請求項13】
請求項12に記載のソフトウェアを提供する媒体。
【請求項14】
請求項13に記載の媒体であり、前記媒体は記憶媒体である。
【請求項15】
請求項13に記載の媒体であり、前記媒体は伝送媒体である。
【請求項16】
画像の複数の圧縮バージョンを提供する圧縮画像セットであって、各バージョンは、異なる画像解像度と、圧縮バージョン毎に、復元時の該バージョンと前記画像の次に解像度の高いバージョンとの画像差分を表す差分データとを有する、圧縮画像セット。
【請求項17】
請求項16に記載の圧縮画像セットを保持する記憶媒体。
【請求項18】
画像の複数のバージョンが圧縮される画像圧縮装置であって、各バージョンは異なる画像解像度を有し、該装置は、前記画像の1つ又は複数の圧縮バージョンについて、
復元画像データを生成するためにその圧縮バージョンを復元し、
前記画像の解像度のより高いバージョンと前記復元画像データとの画像差分を検出し、
前記検出された画像差分に応じた差分データを圧縮する、
ように動作可能である、画像圧縮装置。
【請求項19】
画像の複数の圧縮バージョンが提供される画像復元装置であって、各バージョンは、復元画像バージョンと解像度のより高い各画像バージョンとの画像差分に応じた圧縮差分データと共に、異なる画像解像度を有し、該装置は、
1つ又は複数の画像バージョンを選択する選択器と、
前記選択された画像バージョンに関連する前記圧縮画像データを復元すると共に、前記選択された画像バージョンよりも高い各解像度に関連する前記差分データを復元する復元器と、
所要の出力解像度の出力画像を生成するために、前記復元画像データと前記復元差分データとを結合する結合器と、
を備える、装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2010−514310(P2010−514310A)
【公表日】平成22年4月30日(2010.4.30)
【国際特許分類】
【出願番号】特願2009−542203(P2009−542203)
【出願日】平成19年12月18日(2007.12.18)
【国際出願番号】PCT/GB2007/004862
【国際公開番号】WO2008/075027
【国際公開日】平成20年6月26日(2008.6.26)
【出願人】(502070679)ソニー コンピュータ エンタテインメント ヨーロッパ リミテッド (40)
【Fターム(参考)】