画像符号化方法
【課題】処理時間が短く且つ高品質な符号化を生成する。
【解決手段】各画素ブロックは、基調色と基調色に対する輝度オフセットとを含む符号化された画像色の1組として符号化される。基調色および輝度オフセット値の所定の組は、所定の色空間における輝度線の1組を定義し、符号化された画素色は少なくとも1つの輝度線上に存在する。この方法は、各ブロックに対して実施される所定の色空間における画素ブロックの色の平均色を決定するステップと、色空間における1つの輝度線からの平均色のオフセットに基づいて、輝度線を選択するステップと、輝度線上に存在する基調色候補の1組を識別するステップと、基調色候補および輝度オフセット値の組を用いて、符号化された画素色の組を決定し、基調色と輝度オフセットの組とは、色空間における、符号化された画素色の組と、画素ブロックの色との距離総計を示す符号化エラーに基づいて選択される、ステップとを含む。
【解決手段】各画素ブロックは、基調色と基調色に対する輝度オフセットとを含む符号化された画像色の1組として符号化される。基調色および輝度オフセット値の所定の組は、所定の色空間における輝度線の1組を定義し、符号化された画素色は少なくとも1つの輝度線上に存在する。この方法は、各ブロックに対して実施される所定の色空間における画素ブロックの色の平均色を決定するステップと、色空間における1つの輝度線からの平均色のオフセットに基づいて、輝度線を選択するステップと、輝度線上に存在する基調色候補の1組を識別するステップと、基調色候補および輝度オフセット値の組を用いて、符号化された画素色の組を決定し、基調色と輝度オフセットの組とは、色空間における、符号化された画素色の組と、画素ブロックの色との距離総計を示す符号化エラーに基づいて選択される、ステップとを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の符号化形式にしたがって画像を符号化するための符号化方法に関する。特に、本発明は、所定の符号化形式が画素ブロックにおいて画像を符号化する際、画素ブロックのそれぞれは、基調色と、その基調色に対する輝度オフセットの1組とを含む符号化された画素色の1組として符号化される、符号化方法に関する。
【背景技術】
【0002】
画像を符号化するための様々な符号化形式が知られている。これらの形式により具体化される特定の技術は、例えば、符号化は無損失であるべきどうか、符号化画像の望ましいサイズ、および符号化画像の全体的な品質等の、符号化された画像における様々な相対的重要性に応じて異なる。広く用いられ、且つよく知られている画像用の符号化形式は、JPEG groupにより定められたものである。しかし、JPEG等の所定の符号化形式がすべての用途、特に、画素エリアに対するランダムアクセスが要求される用途において適しているとは限らない。これは、例えば、符号化された画像が、図形用途において用いられる圧縮されたテクスチャを提供する場合、当てはまる。これは、JPEG等の符号化形式が、画像内の画像ブロックを符号化する際、同一画像内の以前のブロックを基準して符号化する技術に依存するためである。これにより、より高圧縮が可能となるが、しかし、この手法においては、画像が全体として復号化されることが要求され、したがって、係る符号化形式は、所与の画像のサブセクションへのランダムアクセスを要求する、テクスチャ表現等の用途においては適さない。
【0003】
したがって、係るランダムアクセスが可能である符号化方法にしたがって画像を符号化することが知られている。一般に、係る符号化形式においては、画像は、符号化および復号化が可能である画像の最小単位を表す画素ブロック(例えば、4x4)において個々に復号化される。係る符号化形式における1つの既知の技術は、画素ブロックを、基調色と、その基調色に対する1組の輝度オフセットで表現する技術である。すなわち、このように符号化された各ブロックにおいては、全画素に対してただ1つの色のみが定義され、各画素の輝度はその基調色からのオフセットとして与えられる。これは、一般に、許容可能な画像品質を提供する。なぜなら、人間の目に関するかぎり、局所的な輝度変化に対する感度よりも、局所的なクロミナンスの変化に対する感度のほうが、より低いからである。
【0004】
しかし、係る符号化形式(ETC形式(エリクソンテクスチャ圧縮)はその1例として挙げられる)により符号化される画像を生成することに関する問題点は、圧縮された(符号化された)画像を生成するために要求される圧縮時間である。例えば、既存のツールを用いてETC圧縮されたテクスチャを生成する際、圧縮時間は、これらのツールにより維持される最高品質を用いるならば、およそ300〜400画素/秒、すなわち通常のテクスチャについて30分〜1時間となる。係る極めて長い圧縮時間は、各画素ブロックに対して基調色(base colour)および輝度オフセットの最良の組み合わせを見出すための、利用可能な符号化空間内で実施される検索に起因するものである。最高品質の圧縮されたテクスチャを生成するにあたっては、多次元的且つ大規模な検索が実施される。その結果、係る長い圧縮時間が生じるのである。しかし係る長い圧縮時間は、図形用途を開発し検証する際には、許容不可能である。なぜなら、用途は何十・何百ものテクスチャを含む場合もあり、開発者は、開発中に、圧縮されたテクスチャの品質を評価することが可能でなければならないためである。
【0005】
図1Aは、4x4の画素ブロック10の概略図である。一般に、画素ブロックがETC等の符号化形式により符号化される際、各ブロックは、事実上、相互に隣接する2つのハーフブロックとして符号化される。図1Aに示すように、画素ブロック10は、垂直方向に分割されて、2つのハーフブロックとなってもよい。同様に、同一画素ブロックは、水平方向に分割されて、2つのハーフブロックとなってもよい。
【0006】
ETC符号化形式は、図1Bに示すように、輝度オフセットの8つのテーブルを定義する。したがって、基調色は各ハーフブロックに対して定義され、そのハーフブロック内の8つの画素が、1つの3ビットテーブル数および8つの2ビットテーブルエントリー数により、符号化される。
【0007】
2種類の符号化がETC規格により定義される。すなわち、図1Cに示すように、絶対符号化および差分符号化である。それぞれにより、画素ブロックは単一の64ビット値として符号化される。絶対符号化においては、各ハーフブロックは独立的に符号化される。各ハーフブロックに対する基調色は、12ビット(444)RGB値として符号化され、ブロック全体の符号化は、このブロックを構成する第1ハーフブロックおよび第2ハーフブロックに対する基調色のR成分、G成分、およびB成分を与える24ビットにより表される。これに、各ハーフブロックに対して用いられる輝度オフセットテーブルを与える2つの3ビット値が続く。「diff」ビットは、このブロックが絶対符号化または差分符号化のいずれを用いて符号化されたかを示す。「flip」ビットは、このブロックが水平または垂直のいずれの方向でハーフブロックに分割されたかを示す。最後に、2つのハーフブロックの16の個別画素のそれぞれは、選択されたテーブルにおける対応するエントリーを与える2つのビットにより表される。符号化形式はこれらを16のMSBおよび16のLSBに分類する。
【0008】
差分符号化においては第2ハーフブロックの基調色が、第1ハーフブロックに対するオフセットとして定義される他は、差分符号化も絶対符号化と同様に定義される。したがって、第1ハーフブロックの基調色は、15ビット(555)RGB値として与えられ、第2ハーフブロックに対するRオフセット、Gオフセット、およびBオフセットは、それぞれ3ビットオフセットとして与えられる。これにより、基調色の定義における精度をより高めることが可能となる。しかし、ハーフブロックの基調色は、これらの3ビットオフセットにより表されるよう、相互に対して十分に近くなければならない。それ以外の場合は、絶対符号化が用いられる。
【0009】
ハーフブロックに対する基調色を符号化するために用いられる24ビットは、エンコードにおいて定義され得る基調色の所定の組に対応する。この基調色の所定の組が図2Aで概略的に示される。図示の簡略化のためにのみ、R成分およびG成分のみが示される2次元表現が図示されていることに注意すべきである(第3次元におけるB成分は省略されている)。所与のハーフブロックの符号化のために選択される基調色は、一般に、ハーフブロック中の画素の平均色を基準として選択される。符号化された画素は、選択された基調色を基準に輝度オフセットとして符号化されるため、図2Aにおける対角線(輝度線)は、符号化された画素がこの色空間において存在し得る点を含む。
【0010】
図2Aに示されるように、所与の計算された平均色の所定の組に対して利用可能な基調色の所定の組から基調色を選択する方法は複数存在する。基調色40が幾何学的に最も近い基調色であるのに対し、基調色30は最も近い輝度線上における最も近い基調色である。
【0011】
図2Bは、基調色からの輝度オフセットを用いての所与の画素値の符号化を示す。輝度オフセット(輝度オフセットの予め定められたテーブルから選択される)は、基調色を基準にして、この色空間における圧縮された画素色の位置を示す。圧縮された画素色と本来の画素色との間の距離が、この画素に対する符号化エラーを与える。
【0012】
図3は画素の各ハーフブロックの基調色に対する既存のETC圧縮アルゴリズムにより実施される検索レンジを示す。ハーフブロックの画素の平均色に基づいて基点(すなわち基調色)を選択し、開始基点の周囲の基点のボリュームにおいて検索を実施し、改善された符号化が存在するかどうかを調べる。高品質バージョンの圧縮においては、7x7x7の検索ボリューム(図示する2D表現では7x7の検索エリアとして表される)が検索される。これらの中で、ハーフブロックに対する全体的符号化エラーを最小限にする符号化が検索される。この検索は、これらの各7x7x7(すなわち343)の基点候補に対する可能な8つのテーブルのすべてに対して最善の符号化を計算する反復プロセスである。そのために、既存の圧縮ツールに対しては、極めて長い圧縮手順となる。
【0013】
係る画像符号化/圧縮に対する既存の手法のいくつかは、以下に見出すことができる。
−Jacob StromおよびTomas Akenine−Mollerによる「iPACKMAN−High−Quality, Low Complexity Texture Compression for Mobile Phones」(取得先は、http://www.graphicsshardware.org/previous/www_2005/presentations/strom−ipackman−gh05.ppt) この提示はETC圧縮形式に関するものである。
−ETC形式に対する完全なクロノス規格。(以下で入手可能である。http://khronos.orJrettstry/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt);
−書類「Real Time DXT Compression」、J..M.Pおよびvan Waverem、2006年5月(http://cache−www.intel.com/cd/00/00/32/43/324337_324337.pdf)、および
−NVIDIAテクスチャツールの説明文における(2010年11月12日に以下から取得:http://code.google.com/p/nvidia−texture−tools/wiki/ApiDocumentation)。
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかし、上述のように、先行技術の手法においては極めて長い圧縮時間が当然となっている。したがって、処理時間が短く且つ高品質な符号化を生成するための改善さされた技術が望まれる。
【課題を解決するための手段】
【0015】
第1の態様の観点からは、本発明は、所定の符号化形式により全画像の符号化を生成するための符号化方法を提供する。なお、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする輝度オフセットの1組とを含む、符号化された画素色の1組として符号化され、
前記基調色は、前記所定の色空間において定義された基調色の所定の組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の所定の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して実施される前記方法は、
前記所定の色空間における前記画素ブロックの色の平均色を決定するステップと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するステップと、
前記少なくとも持つ1つの輝度線上に存在する、基調色候補の1組を識別するステップと、
前記1組の基調色候補および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記1組の輝度オフセットは、前記色空間における前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択されるステップと、
を含むものである。
【0016】
画像が画素ブロックにおいて符号化され且つ各画素ブロックが基調色とその基調色を基準とする輝度オフセットの1組を含む符号化された画素色の1組として符号化される符号化形式により画像を符号化するとき、本発明の発明者は、各画素ブロックに対する基調色を、符号化が実施される所定の色空間を通って伸びる少なくとも1つの輝度線上に存在する基調色の候補値の組から選択することにより、改善された方法が提供され得ることを見出した。所定の色空間における輝度線は、符号化に利用可能である基調色の所定の組により定義される。したがって、本発明に係る技術によれば、符号化される各画素ブロックに対して、最初に、その画素ブロックの画素の平均色を決定し、次いで、少なくとも1つの輝度線が、所定の色空間における少なくとも1つの輝度線からのオフセットに基づいて選択される。次いで、この少なくとも1つの輝度線は基調色候補の1組を提供し、次にこの基調色候補の組は、最終的な符号化を決定するために用いられる。
【0017】
例えば、符号化される3ブロックの画素(例えば、図3に示す7x7x7の検索ボリューム)の平均色をほぼ中心とする立方体を形成する基調色の1組を用いて基調色候補を識別するよりも、基調色候補が、所定の色空間を通って伸びる輝度線を基準に選択されるなら、改善された符号化方法が提供されることが見出された。
【0018】
これは、画素ブロックを、基調色およびその基調色を基準とする輝度オフセットの1組として符号化する符号化形式が、クロミナンス値を設定することよりも、輝度値を設定することのほうにより大きい柔軟性を提供するという事実に基づくものである。さらに、符号化された画素色は、所定の色空間を通って伸びる1つの輝度線上に存在するよう制約されている(各符号化された画素色は、輝度線上のいずれかに存在する基調色からの、これらの輝度線に沿ったオフセットとして表される)ため、特定の画素ブロックを符号化するために用いられる最良基調色の特定は、画素ブロックの平均画素色の周囲における空間検索を用いるよりも、輝度線に基づくこの選択を実施することにより、改善される。この技術は、例えば、画素ブロックの平均色の位置が個々の画素色を特に表すわけではないことを意味する、画素ブロックの色が所定の色空間において広く分布する場合に、特に有益であり得る。係る状況では、輝度線は、平均色の周囲における空間検索よりも、基調色候補を提供することに、より適している。
【0019】
輝度線に基づく手法がさらに有利であるさらなる要因は、所定の色空間における増加する輝度を定義する輝度線が、必ずしもクロミナンスが一定である線となるとは限らないことである。なぜなら、輝度は色成分が飽和する点を超えて増減することができるからである。図形な観点からすると、これは、輝度線が所定の色空間の端部と交差する状況を表す。このように、輝度線は必ずしも、所定の色空間を通る単一の直線的経路をとるとは限らない。したがって、所与の画素色の組とよりよく合致する輝度線が存在し得る。その一方で、これらの画素の平均色は、画素色の粗悪な符号化のみを生じさせ得る基調色により近く存在し得る。これは、所定の色空間における平均画素色に最も近い基調色が、クロミナンスの観点からすると個々の画素色から著しく異なる場合に特に当てはまる。なぜなら、所定の符号化形式は、個々の画素が基調色からの輝度オフセットにおいて変動することのみを許可し、したがってこのクロミナンスの差異により、大きい符号化エラー(符号化された画素色と本来の画素色との間の)が生じ得るためである。
【0020】
様々なオフセットの定義方法が存在することが理解されるであろう。しかし、1つの実施形態においては、前記色空間における前記オフセットは、前記平均色と前記少なくとも1つの輝度線との間の最短距離である。
【0021】
様々な符号化エラーの定義方法が存在することも理解されるであろう。しかし、1つの実施形態においては、前記符号化色は、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の二乗の和として計算される。
【0022】
1つの実施形態において、前記少なくとも1つの輝度線を選択する前記ステップは、前記オフセットの最小値を有する3つの輝度線を選択することを含む。3つの輝度線の選択は、3次元の所定の色空間の状況において特に適している。なぜなら、所与の平均色の位置が3つの輝度線により包囲されるからである。これら3つの輝度線のうちのいずれが符号化に対する基調色を提供するに当たって最も適しているかは、各輝度線に対して、画素ブロックの画素の色の位置に依存する。
【0023】
1つの実施形態においては、少なくとも1つの輝度線を選択する前記方法は、反復輝度線選択手順を含み、前記反復輝度線選択手順は、
既に選択した輝度線の隣接輝度線を検査するステップと、
前記隣接輝度線からの前記画素ブロックの前記色のオフセットの総計が、前記既に選択された輝度線からの前記画素ブロックの前記色のオフセットの総計よりも大きくない場合に、前記隣接輝度線を選択するステップと、
を含む。
【0024】
したがって、複数の輝度線が、この反復輝度線選択手順により選択され得る。この反復輝度線選択手順の提案は、所定の色空間における、画素ブロックの平均色からのオフセットに基づいて選択された最初の輝度線が、事実、画素ブロックに対する最良の符号化である基調色を提供しない場合もあるという認識に基づくものである。例えば、輝度線が所定の色空間を通る経路のために、個々の画素色に最も近い輝度線が、これらの画素の平均色に最も近い輝度線と同一であるとは限らない。したがって、反復輝度線選択手順は、隣接輝度線を検査し、隣接輝度線からの画素ブロックの色のオフセット総計と、既に選択された輝度線からの画素ブロックの色のオフセット総計とを比較し、隣接輝度線が画素ブロックの色に最も近い(オフセット総計に基づいて)ことが示されると、この隣接輝度線も選択される。
【0025】
様々なオフセット総計の計算方法が存在することも認識されるであろう。しかし、1つの実施形態においては、前記オフセット総計は、前記画素ブロックの前記色と、各輝度線のそれぞれの最も近い点との間の距離の二乗の和として計算される。
【0026】
1つの実施形態においては、前記隣接輝度線は、前記隣接輝度線が前記既に選択された輝度線よりも色飽和度における増加を表す場合にのみ、検査される。所定の色空間における輝度線を考慮するとき、画素ブロックの色に最も近く(例えば、平均二乗偏差(RMS)により)に存在する輝度線は、画素の平均色に最も近い線か、またはこの線よりも大きい色飽和度を有する線であることが見出された。したがって、反復輝度線選択手順の一部として輝度線を選択する際、隣接輝度線が、既に選択された輝度線よりも色飽和度における増加を表す場合にのみ、隣接輝度線の選択を考慮することは有利である。
【0027】
1つの実施形態において、前記隣接輝度線は、前記すでに選択された輝度線が前記オフセット総計の非ゼロ値を有する場合にのみ、検査される。画素色のいくつかの特定の構成は、これらの画素色と所与の輝度線との間のオフセットの総計がゼロ値となり得ることが見出されている。これは、例えば、画素色が1つまたは複数の輝度線上に存在する場合に当てはまる。このことは、例えば、画素色が所定の色空間の完全に色飽和した端部上に存在する場合に可能である。この状況においては、隣接輝度線を検査する必要がない。
【0028】
複数の輝度線が選択される1つの実施形態においては、前記複数の輝度線は、各輝度線に対する前記オフセット総計によりソートされる。任意の所与の符号化する画素色の組に対する符号化エラーが、少なくとも、対応する輝度線に対するオフセット総計でなければならない場合、これらの輝度線をオフセット総計によりソートするための複数の輝度線が存在するとき、それは有利である。平均して、最も小さいオフセット総計を有する輝度線が、最も低い符号化エラーを生じさせる可能性が最も大きい。しかし、最も小さいオフセット総計を有する線が必ずしも最も低い符号化エラーを生じさせるとは限らない点を認識すべきである。なぜなら、これは、その輝度線上において利用可能な基調色に対する画素色の特定の位置に依存するからである。例えば、これは、画素色が利用可能な基調色から比較的離れている場合に生じ得る。その場合は、他の輝度線が、この画素ブロックに対する最も小さい符号化エラーを提供し得る。
【0029】
1つの実施形態においては、前記符号化された画素色の組を決定するステップは反復輝度線考慮手順を含む。なお、この反復輝度線考慮手順においては、前記少なくとも1つの輝度線上に存在する基調色候補の組を識別する前記ステップと、前記符号化された画素色の組を決定する前記ステップは、増加するオフセット総計の順における前記複数の輝度線に対して実行される。複数の輝度線を選択した後、これらの輝度線を検査するための、手順的観点から最も効果的な方法は、増加するオフセット総計の順である。
【0030】
1つの実施形態においては、前記エンコードされた画素色の組を決定する前記ステップは、反復符号化決定手順を含む。なお、この反復符号化決定手順は、基調色候補の前記の組の各基調色候補に対して、
前記ベース色候補に対して適用された前記輝度オフセット値を用いて、符号化された画素色の候補組を決定するステップと、
前記色空間における、前記画素ブロックの前記色と前記符号化された画素色の候補組との間の距離総計を示す、前記符号化された画素色の候補組に対する符号化エラー候補を決定するステップと、
前記符号化エラー候補が前記画素ブロックに対する任意の以前の符号化エラー候補よりも低い場合に、前記符号化エラー候補を最良符号化エラーとして設定するステップと、
前記基調色および前記輝度オフセットの組として、前記基調色候補に適用されたときに前記最良符号化エラーを与える基調色候補および輝度オフセット値を選択するステップと、
を含む。
【0031】
したがって、基調色候補の組を決定した後、次に、基調色候補の組のそれぞれを、その基調色候補に適用された輝度オフセット値を用いて、符号化された画素色の候補組を決定するために用いられてもよい。このように、色空間における、画素ブロックの色と符号化された画素色の候補組との間の距離総計を示す符号化エラー候補が決定されてもよい。このように決定された各符号化エラー候補に対して、それがいずれの以前の符号化エラー候補よりも低いことが見出された場合、それが最良符号化エラーとして設定される。各基調色候補を考慮する間、今までに見出された最良符号化エラーが記録され、このプロセスの最後において、この最良符号化エラーを与えた基調色および輝度オフセットの組が、この画素ブロックに対する選択された基調色および輝度オフセットの組として用いられることができる。
【0032】
1つの実施形態においては、前記輝度オフセット値の少なくとも1つの所定のテーブルは、輝度オフセット値の複数の所定のテーブルを含み、前記基調色候補に適用された前記輝度オフセット値を用いて符号化された画素色の前記候補組を決定する前記ステップは、輝度オフセット値の前記複数の所定のテーブルのそれぞれのテーブルを用いて、符号化された画素色の前記候補組を反復的に決定するステップを含む。
【0033】
したがって、輝度オフセット値の複数の所定のテーブルが提供された後、基調色候補に適用された輝度オフセット値を用いて符号化された画素色の候補組を決定するステップは、最良の符号化エラーを見出すために、輝度オフセット値の各テーブルを検索してもよい。
【0034】
1つの実施形態においては、前記符号化エラーは累積的符号化エラーとして累積的に決定される。考慮中の輝度オフセット値の現在のテーブルに対する前記累積的符号化エラーが前記最良の符号化エラーよりも大きい場合、輝度オフセット値の前記現在のテーブルを用いて符号化された画素色の前記候補組を決定する前記ステップは、終了する。したがって、輝度オフセット値の各テーブルが考慮される間、符号化エラーは累積的に決定される。この累積的エラーが以前に見出された最良符号化エラーを越えると、このテーブルを用いたこの最終符号化エラーが今までに見出された最良符号化エラーを越えることを知ることができる。圧縮時間は、輝度オフセット値のこのテーブルに対する計算を終了することにより、節約され得る。この累積的符号化エラーは画素毎に評価され得、1つの実施形態においては、前記累積的符号化エラーは、前記画素ブロックの前記色に対して、画素毎に前記最良符号化エラーと比較される。したがって、所与の画素に対する計算により得られた累積的エラーが、今までに見出された最良符号化エラーを越えた場合、ただちに輝度オフセット値(考慮中の現在のベース色に適応される)のこのテーブルの考慮は終了することができる。
【0035】
1つの実施形態においては、次の輝度線を考慮する前に、前記次の輝度線に対する前記オフセット総計が前記最良の符号化エラーを越える場合、前記反復輝度線考慮手順は終了され、前記次の輝度線も、前記複数の輝度線のうちのさらなる輝度線も、考慮されない。これは、上述のように、所与の輝度線上の基調色を用いる符号化エラーは、少なくとも、その輝度線に対するオフセット総計よりも大きくなければならない事実に基づくものである。したがって、反復輝度線考慮手順の間、次の輝度線に対するオフセット総計が今までに見出された最良の符号化エラーを越えることが見出された場合、この次の輝度線も、および、さらなる輝度線も、最良符号化エラーに対する改善をもたらすことができないことがただちに結論できる。なぜなら、これらの輝度線はオフセット総計でソートされているからである。そのため、今までに見出された最良符号化エラーに対する改善はもたらされず、反復輝度線考慮手順はただちに終了され得る。
【0036】
1つの実施形態においては、前記ブロックはそれぞれ2画素×4画素の組を含む。
【0037】
1つの実施形態においては、前記画素ブロックの、少なくとも1対の近傍ブロックは、相互既存形式で符号化される。なお、相互依存形式の符号化においては、前記近傍ブロック対のうちの第2ブロックは前記近傍ブロック対のうちの第1ブロックに基づいて符号化される。符号化効率の観点から、近傍ブロック対が相互依存形式で符号化されることが有利であることが見出されることもある。例えば、各基調色が12ビットで符号化され得るのに対して、2つの近傍画素ブロックが24ビットで符号化される場合、他の基調色をそれに対する3ビットのオフセットの組として定義する一方で、1つの基調色を15ビット(例えば、RGB555)で符号化することにより、基調色の定義にあたってより大きい精度が達成され得る。これは、もちろんのこと、2つのブロックの基調色の間の相違が、この3ビットのオフセットの組で表され得るよう十分小さい場合にのみ可能である。
【0038】
1つの実施形態において、前記ブロックの対は、水平方向に隣接し、他の実施形態においては、前記ブロックの対は垂直方向に隣接する。
【0039】
1つの実施形態においては、この方法は、その画素ブロックが前記相互依存方式で符号化された場合に、またはその画素ブロックが他の画素ブロックに対して独立方式で符号化された場合に、前記符号化エラーがより低くなるかどうかを、各画素ブロックに対して、判定するステップをさらに含む。次いで、その画素ブロックに対する最も低い符号化エラーを与える符号化形式が選択されてもよい。
【0040】
1つの実施形態においては、この方法は、各画素ブロックに対して、すべての符号化方式に対して前記符号化エラーを反復的に決定し、前記符号化エラーに対して全体的に最も低い値を与える符号化方式を選択することをさらに含む。したがって、ブロック毎における、独立/相互依存符号化および水平/垂直分割の各順列は、いずれの順列が最良符号化を与えるかを判定するために、検証されてもよい。様々な相互依存符号化のそれぞれに対して、(ブロックの対に対して、第1および第2の仮想的なラベルを与えるものとして)第1ブロックが第2ブロックに依存する場合、または第2ブロックが第1ブロックに依存する場合、より低い符号化エラーが生成されたかどうかを判定してもよい。
【0041】
1つの実施形態においては、前記色空間における距離の計算は、前記色空間の各色成分に対する人間の目の感度による知覚的重みが加味されてもよい。異なる色成分に対する人間の目における感度の差異が存在するため、符号化の品質における知覚的改善は、距離計算にこの現象を繰り込むことにより得られる。
【0042】
1つの実施形態においては、前記符号化エラーは、ピーク信号対雑音比として計算される。これは、改善された品質の符号化を与えるために、判断されてもよい。
【0043】
1つの実施形態においては、前記画像はテクスチャ画像である。テクスチャ画像は図形用途によりランダムアクセスされる必要がある。したがって、ブロックに基づく符号化が特に好適である。
【0044】
1つの実施形態においては、前記所定の符号化形式は、ETC形式である。
【0045】
第2の態様の観点からは、本発明は、コンピュータに第1の態様の符号化方法を実施させるよう構成されたコンピュータプログラムを非一時的な方法で記憶するコンピュータプログラム製品を提供する。
【0046】
第3の態様の観点からは、本発明は、所定の符号化形式により全画像の符号化を生成するための符号化装置を提供する。なお、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする輝度オフセットの1組とを含む、符号化された画素色の1組として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組としてエンコードされ、
前記ベース色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
画素ブロックのそれぞれに作用するよう構成された前記装置は、前記書体の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定ユニットと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するよう構成された輝度線選択ユニットと、
前記少なくとも1つの輝度線上に存在する1組の基調色候補を識別するよう構成された基調色候補識別器と、
前記1組の基調色候補と前記輝度オフセット値とを用いて、前記の組の符号化された画素色を決定し、前記基調色および前記の組の輝度オフセットは、前記色空間における前記の組の符号化された画素色と前記画素ブロックの前記色との間の距離の合計を示す符号化エラーに基づいて選択するよう構成された、決定ユニットと、
を含む。
【0047】
第4の態様の観点からは、本発明は、所定の符号化形式により画像の符号化を生成するための符号化装置手段であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする1組の輝度オフセットとを含む、1組の符号化された画素色として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化される。
基調色の前記の所定の組と前記輝度オフセット値とが、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、前記少なくとも1つの輝度線上に存在し、
各画素ブロックのそれぞれに作用するよう構成された前記装置手段は、
前記所定の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定手段と、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するための輝度線選択手段と、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するための基調色候補識別手段と、
前記の組の基調色候補と前記輝度オフセット値とを用いて、前記の組の符号化された画素色を決定し、前記基調色および前記の組の輝度オフセットは、前記色空間における前記の組の符号化された画素色と前記画素ブロックの前記色との間の距離の合計を示す符号化エラーに基づいて決定される、決定手段と、
を含む。
【0048】
添付の図面に示された以下の実施形態を参照して、本発明につき実施例のみによりさらに説明する。
【図面の簡単な説明】
【0049】
【図1A】2つのハーフブロックに垂直分割された、符号化される画素ブロックの概略図である。
【図1B】ETC形式により定義された輝度オフセットの8つの所定の組を示す図である。
【図1C】絶対符号化および差分符号化の両方に対する、画素ブロックのそれぞれの64ビット・符号化の細分を示す図である。
【図2A】所定の色空間における、画素色の組と、これらの画素の平均色と、可能な基調色の所定の組とを示す図である。
【図2B】本来の画素色と対比させて、基調色および輝度オフセットにより圧縮された符号化を示す図である。
【図3】先行技術に係る符号化方法により基点が考慮される検索エリア(ボリューム)を示す図である。
【図4A】平均画素色に最も近い輝度線および本来の画素色に対する最良の輝度線を示す図である。
【図4B】増加する色飽和度の方向を示す輝度線の1組を示す図である。
【図5A】1つの実施形態において、所与の画素ブロックに対する最良の符号化を判定するために用いられる一連のステップを示す概略図である。
【図5B】図5Aに示すプロセスにおいて用いられる、差分計算に関するステップを示す図である。
【図6】輝度線の候補組を判定するときに1つの実施形態において用いられる一連のステップを示す概略図である。
【図7】反復輝度線考慮手順を実施するとき1つの実施形態において用いられる一連のステップを示す概略図である。
【図8】輝度線上の1組の基調色候補を考慮するとき反復符号化決定手順における1つの実施形態において用いられる一連のステップの概略図である。
【図9】様々な実施形態を実施するために用いられ得る汎用計算装置の概略図である。
【発明を実施するための形態】
【0050】
図4Aは、平均画素色の近傍がこれらの画素色を符号化するための最良の基調色を含み得ない理由を示す、画素ブロックからの(特に、2×4画素のハーフブロックからの)8つの画素色の組を示す。本来の画素色が2つの群の間、すなわち1つ群は原点の比較的近傍に、他の群は高R/低Gの領域に、分散する事実により、平均画素色は、2つの群の間の、中間R/低G値のあたりに位置することとなる。図4Aおよび図4Bは2次元色空間(RG)に対して示されるが、これは、ただ図示の簡略化のためになされたものであり、所定の色空間は一般には3次元(RGB)であることを理解すべきである。図4Aから見られるように、平均画素色に最も近いベース色(「最も近い輝度線」上)は、比較的大きい符号化エラーを有する、符号化された画素色しかを提供できないことが期待される。左側の画素群は、この基調色がその上に存在する輝度線から大きくは逸脱せず、そのために、比較的小さい輝度オフセットで適度に符号化されるのに対して、右側の画素色はこの輝度線から顕著に離れ、そのために比較的大きい符号化エラーでしか符号化され得ない。それに対比して、最良の基調色は、画素の左手の群および画素の右手の群の両方に対してより近くを通る輝度線(「最良の輝度線」)上に存在することが見られる。
【0051】
これらの画素の平均画素色に最も近い輝度線ではない輝度線を選択することにより画素色の所与の組に対して達成される符号化エラーの改良が、平均画素色に最も近い輝度線に対して色飽和度の増加を示す輝度線に対してのみ生じうる(もし生じる場合)ことが、本発明の発明者により特に認められた。輝度線の増加する色飽和度の進行が、図4Bに示される。図4Aに戻って、この「輝度線」は「最も近い輝度線」よりも色飽和度がより高い。したがって、本発明の実施形態は、反復輝度線選択手順を提案する。なお、この反復輝度線選択手順においては、増加する色飽和度の輝度線が(以下でより詳細に説明されるように)反復的に考慮される。
【0052】
本発明の実施形態に係る全体的な符号化手順が、図5Aに示される。4×4画素の各ブロックが、図5Aに示すステップにしたがって処理される。まず、ステップ100〜135において、いくつかの差分符号化計算が実施される。これらは、4×4ブロックを2つの2×4ハーフブロックに分割するステップと、1つのハーフブロックの符号化を、他方のハーフブロックに対して判定するステップとを含む。ブロックを2つのハーフブロックに分割するステップは、水平方向または垂直方向で行われ得、それぞれのハーフブロックは、「第1」ハーフブロックとして処理され、「第1」ハーフブロックに対して、「第2」ハーフブロックは差分符号化が施され得る。第1に、ステップ100において、ブロックは垂直方向に分割され、左側のハーフブロックが「第1」ハーフブロックとして設定され、右側のハーフブロックが「第2」ハーフブロックとして設定される。次いで、ステップ105において、この順列に対する符号化エラーを判定するために、差分計算が実施される。ステップ105における差分計算は、図5Bに示すように実行される。ここで、ステップ160において、まず、最良無制限差分符号化が第1ハーフブロックに対して計算される。次いで、ステップ165において、第1ハーフブロックに対して第2ハーフブロックの最良差分符号化が判定される。最後に、ステップ170において、ブロックに対する全体的な符号化エラーは、(色空間における)本来の画素値と圧縮された画素値との差異に基づいて判定される。
【0053】
図5Aに戻って、ステップ100およびステップ105において実行されたプロセスが、ステップ110およびステップ115において繰り返される。ただしここでは、右手のハーフブロックが「第1ブロック」として設定され、左手のハーフブロックが「第2ブロック」として設定される。同様に、ステップ120、125、130、および135において、同じプロセスが実行される。ただしここでは、ブロックは、上方ハーフブロックおよび下方ハーフブロックへと水平方向に分割され、上方ハーフブロックに関する差分計算が、下方ハーフブロックを基準にして実施され、次いで、逆の差分計算が行われる。すなわち、下方のハーフブロックに関する差分計算が、上方ハーフブロックを基準にして実施される。
【0054】
次いで差分エンコードの順列がすべて考慮された後、ステップ140において、最良の絶対符号化が、2つのハーフブロックへの水平方向分割に関して決定される。一方、ステップ145において、2つのハーフブロックへの垂直方向分割に関する最良絶対符号化が計算される。最後にステップ150において、ブロックに対する最も低い符号化エラーを与える最良全体的符号化が、このブロックに対して選択された符号化として、選択される。各ハーフブロックに対する最良符号化がどのように決定されるかに関する詳細が、ここで図6、7、および8を参照して説明される。
【0055】
各符号化手順は、符号化に用いられる輝度線候補を選択する図6に示すプロセスとともに開始される。まず、ステップ200において、ハーフブロックに対する平均画素色が決定される。次いで、ステップ205において、平均画素色に最も近い3つの符号化可能な輝度線が選択される。これらの3つの輝度線は、符号化に用いられる3次元RGB空間において、平均画素色を包囲する。次いでステップ210において、これらの輝度線のそれぞれについて、その輝度線上の最も近い点への、画素の色の距離の二乗の和(「オフセット総計」)を計算し、輝度線の候補組に加える。この輝度線の候補組の中で、3つの最初に選択された輝度線は「ペアレント」線としてフラグを設定され、この組は、それぞれに対して計算された距離の二乗の和に関してソートされる。次いで、反復輝度線選択手順がステップ215から開始して実行される。
【0056】
ステップ215において、「ペアレント」線としてフラグされた輝度線が選択される。次いで、ステップ220において、この「ペアレント」線が、ペアレントよりも色飽和度がより高い近傍「ドーター」線を有するかどうかが判定される。3次元色空間においては、各ペアレントに対して、飽和度がより高い近傍ドーター輝度線が一般に2つ存在することに注意すべきである。また、(異なるペアレントを介して)すでに検査された近傍ドーター線は、一般に再考慮されない点についても、注意すべきである。係る近傍ドーター輝度線が存在する場合、ステップ225において、ドーター輝度線は選択され、ハーフブロックの画素の色からこのドーター輝度線への距離の二乗の和が計算される。次いで、ステップ230において、この距離の二乗の和が、このドーターのペアレント輝度線に対する距離の二乗の和より大きいかどうかが判定される。これが真である場合、次いでステップ235において、このドーター線は距離の二乗の和によりソートされた線の候補組に加えられる。まずステップ240において、二乗の和が非ゼロであるかどうかが判定され、これが真である場合、このドーターも候補一覧においてペアレントとしてフラグを設定される。
【0057】
このドーターを線の候補組に加えた後、ステップ250において、考慮中の現在のペアレントの他のドーター線が存在するかどうかを判定し、存在する場合、処理の流れは、そのドーター線を処理するために、ステップ225に戻る。しかし、現在のペアレントのドーター線が他に存在しない場合、または(上述した)ステップ220において、考慮中の現在のペアレントが、飽和度がより高い、近傍ドーター輝度線をまったく有さない場合、処理の流れはステップ255に進み、ペアレントとしてフラグを設定され且つまだ処理されていない線の候補組において他の輝度線が存在するかどうかが判定される。存在する場合、処理の流れは、そのペアレント線を処理するために、ステップ215に進む。未処理のペアレント線が候補組の中にもはや存在しない場合、処理の流れはステップ260に進み、このステップ260において、候補線生成プロセスが完了する。
【0058】
輝度線の候補組が図6に説明する手順にしたがって選択されると、輝度線候補の組は次いで、いずれが、このハーフブロックに対する最良符号化を与える基調色を提供するかを判定するために、考慮される。この手順は、1つの実施形態においては、図7に概略的に示されたステップにしたがって実行される。まず、それぞれのオフセット総計(すなわち、その輝度線上の最も近い点への、ハーフブロックの画素の色からの距離の二乗の和)にしたがってソートされた輝度線の候補組から、最も低いオフセットを有する線がステップ300において選択される。ついで、ステップ305において、この線に対して利用可能な最良符号化が、決定される(すなわち、この線を定義する基調色および輝度オフセットを用いて)。これに関するさらなる詳細は、以下で図8を参照して説明する。この線に対する最良符号化を決定した後、ステップ310において、この線に対する符号化エラーは、このハーフブロックの本来の画素の色と、この符号化による符号化された画素色の組との間の距離の二乗の和として決定される。この符号化エラーが最良(すなわち、最も低い)である場合、これが現在の最良エラーとして設定される。次いで、処理の流れは、ステップ315に進み、ステップ315において、ソートされた一覧において他の輝度線候補が存在するかどうかが判定される。存在する場合、次に処理の流れは、ステップ320に進み、ステップ320において、次に最も近い(計算されたオフセット総計に関して)輝度線が選択される。次いで、ステップ325において、候補一覧においてこの線がソートされる基準となった、この線の距離の二乗の和(すなわち、この線に対するオフセット総計)が今までに決定された最良のエラーよりも大きいかどうかが確認される(ステップ310参照)。大きい場合、この線、またはさらなる線は、最良エラーについて改善することは不可能であり、処理の流れは、ステップ330に進み、ステップ330において、ハーフブロックは、その最良エラーを与えた線を用いて、特にその最良エラーを与えた線上のベース色を用いて、符号化される。しかしステップ325において、候補一覧におけるこの次の線に対するオフセット総計が今までに計算された最良エラーを越えないことが見出された場合、処理の流れは、この次の線に対する最良符号化を決定するために、ステップ310に戻り、ステップ310において、この次の線に対する符号化エラーが今までの最良エラーを越えるかどうかが確かめられる。いずれかの反復において、さらなる候補線一覧が存在しないとステップ315において判定された場合、処理の流れはステップ330に進む。
【0059】
所与の輝度線に対する最良エラーが決定される手順(図7におけるステップ305)にいて、図8を参照しつつ、ここで説明する。まず、ステップ400において、この輝度線上の第1基点(基調色候補)が選択される。次いで、ステップ405において、輝度オフセット値の第1テーブルが選択される。次いで、輝度オフセット値のこのテーブルから、ステップ410において、ハーフブロックの第1画素に対する最良テーブルエントリー(すなわち、輝度オフセット値)が決定される。ここで「最良」とは、この画素に対する最も低い符号化エラーを与えるエントリーを意味する。この画素に対する符号化エラー、すなわち色空間において符号化された画素色と本来の画素色との間の距離が、このハーフブロックに対する累積的符号化エラーに加えられる。ステップ415において、この累積的符号化エラーがこのハーフブロックに対するターゲットエラーを越えるかどうかが確認される。第1基点、第1テーブル、および第1画素に対して図8で説明されたプロセスのまさに最初の反復において、予め存在するターゲットエラーは当然存在せず、したがって、このまさに最初の反復において、ステップ415における結果は常に「無」経路にしたがうことなる点に注意すべきである。次いでステップ420において、ハーフブロック内に他の画素が存在するかどうかが判定され、存在する場合、次にステップ425において、最良テーブルエントリー(考慮中の現在のテーブルに対する)がこの次の画素に対して決定される。この次の画素に関連するエンコードエラーも計算され、このテーブルに対する累積的エラーに加えられる。ステップ415、420、および425におけるループが、ハーフブロックに対する全画素に対して完了する(すなわち、ステップ415におけるエラー総計テストに失敗することなく)と、ステップ430において、現在のテーブルに対するハーフブロックに関して計算されたエラー総計が、新しいターゲットエラーとして設定される。
【0060】
ステップ415におけるエラー総計テストに失敗するか、またはステップ430における新しいターゲットエラーの設定に失敗した場合、処理の流れはステップ435に進み、ステップ435において、このハーフブロックの符号化に対して考慮することができる他のテーブルが存在するかどうかが判定される。存在する場合、ステップ440において、その次のテーブルが選択され、処理の流れは、そのテーブルを用いて画素のハーフブロックを符号化するために、ステップ410に戻る。しかしステップ435において他のテーブルがもはや利用可能でない場合、処理の流れはステップ445に進み、ステップ445において、現在考慮中の輝度線上に他の基点(すなわち基調色候補)が存在するかどうかが判定される。存在する場合、次いで処理の流れはステップ405に進み、ステップ405において、利用可能なテーブルに対する反復決定プロセスが新しい基調色を用いて再び実行される。この線上のすべての基点が考慮された後、処理の流れはステップ450において完了し、ステップ450においては、この線に対する最良の符号化が、ターゲットエラーを与えた基調色および輝度オフセットにより与えられることが決定される。
【0061】
所定の色空間において計算された上記の計算は、いくつかの実施形態においては、異なる色成分に対する人間の目の感度を考慮に入れた知覚的重みを加味した距離として計算される。いくつかの実施形態における符号化エラーは、ピーク信号対雑音比に関して計算されてもよい。係る技術については、当業者は精通しているため、ここでは詳細に述べない。
【0062】
図9は、上述の技術を実施するために用いられ得る種類の汎用計算装置500の概略図である。汎用計算装置500は、バス522を介してともに接続された中央処理装置502と、ランダムアクセスメモリ504と、読み出し専用メモリ506とを備える汎用計算装置500はまた、すべて共通バス522を介して接続された、ネットワークインターフェースカード508と、ハードディスク駆動装置510と、ディスプレイドライバ512およびモニタ514と、キーボード518およびマウス520を有するユーザ入力/出力回路516とを、さらに備える。各画素ブロックの符号化を決定するために必要な計算を実行する動作中は、中央処理装置502は、コンピュータプログラム命令を実行され、このコンピュータプロクラム命令は、例えばランダムアクセスメモリ504および/または読み出し専用メモリ506に記憶されることもある。プログラム命令は、加えてハードディスク駆動装置510から取得されてもよく、または、ネットワークインターフェースカード508を介して動的にダウンロードされてもよい。実施された処理の結果は、接続されたディスプレイドライバ512およびモニタ514を介して、ユーザに表示されてもよい。汎用計算装置500の動作を制御するためのユーザ入力、接続されたユーザ入力/出力回路516を介して、キーボード518またはマウス520から受け取られてもよい。コンピュータプログラムは様々な異なるコンピュータ言語で記述され得る。コンピュータプログラムは記録媒体上に局所的に記憶されてもよく、または汎用計算装置500に動的にダウンロードされてもよい。適切なコンピュータプログラムの制御下で動作するとき、汎用計算装置500は、上述した技術を実施することができ、上述の技術を実施するための装置を形成すると考えられる。汎用計算装置500のアーキテクチャは、大きく異なるものであってもよく、図9はその1例にすぎない。
【0063】
本明細書に記載の技術は、先行技術において知られる技術よりも、画像の符号化をはるかに高速に実施することが可能である。例えば、既存のツールを用いてのETC圧縮テクスチャの生成はきわめて低速(既存のツールに維持される最高品質の場合、毎秒300〜400画素、すなわち通常のテクスチャに対して30分〜1時間)である。本明細書に記載の技術は、圧縮プロセスを最高で125倍(検証した例示的場合において)まで高速化し、最高で毎秒40,000画素の速度で圧縮する。さらに、多くの場合において、既存のアルゴリズムよりも高品質な結果を生成しながら、高速化を可能とする。これは、図形用途の開発および検証する環境において、特に有利である。なぜなら、用途は何十・何百のテクスチャを含む場合もあり、本明細書に記載の技術を用いると、開発者は、開発中に、圧縮されたテクスチャの品質をより高速に評価することが可能になる。
【0064】
本明細書においては特定の実施形態について説明してきたが、本発明はこれらの実施形態には限定されず、本発明の技術範囲から逸脱することなく、多くの変更例および追加例が可能であることが理解できるであろう。例えば、以下の従属請求項の特徴と、独立請求項の特徴との、様々な組み合わせが本発明の権利範囲から逸脱することなく、可能である。
【符号の説明】
【0065】
500 汎用計算装置
502 中央処理装置
504 ランダムアクセスメモリ
506 読み出し専用メモリ
508 ネットワークインターフェースカード
510 ハードディスク駆動装置
512 ディスプレイドライバ
514 モニタ
516 ユーザ入力/出力回路
518 キーボード
520 マウス
522 共通バス
【技術分野】
【0001】
本発明は、所定の符号化形式にしたがって画像を符号化するための符号化方法に関する。特に、本発明は、所定の符号化形式が画素ブロックにおいて画像を符号化する際、画素ブロックのそれぞれは、基調色と、その基調色に対する輝度オフセットの1組とを含む符号化された画素色の1組として符号化される、符号化方法に関する。
【背景技術】
【0002】
画像を符号化するための様々な符号化形式が知られている。これらの形式により具体化される特定の技術は、例えば、符号化は無損失であるべきどうか、符号化画像の望ましいサイズ、および符号化画像の全体的な品質等の、符号化された画像における様々な相対的重要性に応じて異なる。広く用いられ、且つよく知られている画像用の符号化形式は、JPEG groupにより定められたものである。しかし、JPEG等の所定の符号化形式がすべての用途、特に、画素エリアに対するランダムアクセスが要求される用途において適しているとは限らない。これは、例えば、符号化された画像が、図形用途において用いられる圧縮されたテクスチャを提供する場合、当てはまる。これは、JPEG等の符号化形式が、画像内の画像ブロックを符号化する際、同一画像内の以前のブロックを基準して符号化する技術に依存するためである。これにより、より高圧縮が可能となるが、しかし、この手法においては、画像が全体として復号化されることが要求され、したがって、係る符号化形式は、所与の画像のサブセクションへのランダムアクセスを要求する、テクスチャ表現等の用途においては適さない。
【0003】
したがって、係るランダムアクセスが可能である符号化方法にしたがって画像を符号化することが知られている。一般に、係る符号化形式においては、画像は、符号化および復号化が可能である画像の最小単位を表す画素ブロック(例えば、4x4)において個々に復号化される。係る符号化形式における1つの既知の技術は、画素ブロックを、基調色と、その基調色に対する1組の輝度オフセットで表現する技術である。すなわち、このように符号化された各ブロックにおいては、全画素に対してただ1つの色のみが定義され、各画素の輝度はその基調色からのオフセットとして与えられる。これは、一般に、許容可能な画像品質を提供する。なぜなら、人間の目に関するかぎり、局所的な輝度変化に対する感度よりも、局所的なクロミナンスの変化に対する感度のほうが、より低いからである。
【0004】
しかし、係る符号化形式(ETC形式(エリクソンテクスチャ圧縮)はその1例として挙げられる)により符号化される画像を生成することに関する問題点は、圧縮された(符号化された)画像を生成するために要求される圧縮時間である。例えば、既存のツールを用いてETC圧縮されたテクスチャを生成する際、圧縮時間は、これらのツールにより維持される最高品質を用いるならば、およそ300〜400画素/秒、すなわち通常のテクスチャについて30分〜1時間となる。係る極めて長い圧縮時間は、各画素ブロックに対して基調色(base colour)および輝度オフセットの最良の組み合わせを見出すための、利用可能な符号化空間内で実施される検索に起因するものである。最高品質の圧縮されたテクスチャを生成するにあたっては、多次元的且つ大規模な検索が実施される。その結果、係る長い圧縮時間が生じるのである。しかし係る長い圧縮時間は、図形用途を開発し検証する際には、許容不可能である。なぜなら、用途は何十・何百ものテクスチャを含む場合もあり、開発者は、開発中に、圧縮されたテクスチャの品質を評価することが可能でなければならないためである。
【0005】
図1Aは、4x4の画素ブロック10の概略図である。一般に、画素ブロックがETC等の符号化形式により符号化される際、各ブロックは、事実上、相互に隣接する2つのハーフブロックとして符号化される。図1Aに示すように、画素ブロック10は、垂直方向に分割されて、2つのハーフブロックとなってもよい。同様に、同一画素ブロックは、水平方向に分割されて、2つのハーフブロックとなってもよい。
【0006】
ETC符号化形式は、図1Bに示すように、輝度オフセットの8つのテーブルを定義する。したがって、基調色は各ハーフブロックに対して定義され、そのハーフブロック内の8つの画素が、1つの3ビットテーブル数および8つの2ビットテーブルエントリー数により、符号化される。
【0007】
2種類の符号化がETC規格により定義される。すなわち、図1Cに示すように、絶対符号化および差分符号化である。それぞれにより、画素ブロックは単一の64ビット値として符号化される。絶対符号化においては、各ハーフブロックは独立的に符号化される。各ハーフブロックに対する基調色は、12ビット(444)RGB値として符号化され、ブロック全体の符号化は、このブロックを構成する第1ハーフブロックおよび第2ハーフブロックに対する基調色のR成分、G成分、およびB成分を与える24ビットにより表される。これに、各ハーフブロックに対して用いられる輝度オフセットテーブルを与える2つの3ビット値が続く。「diff」ビットは、このブロックが絶対符号化または差分符号化のいずれを用いて符号化されたかを示す。「flip」ビットは、このブロックが水平または垂直のいずれの方向でハーフブロックに分割されたかを示す。最後に、2つのハーフブロックの16の個別画素のそれぞれは、選択されたテーブルにおける対応するエントリーを与える2つのビットにより表される。符号化形式はこれらを16のMSBおよび16のLSBに分類する。
【0008】
差分符号化においては第2ハーフブロックの基調色が、第1ハーフブロックに対するオフセットとして定義される他は、差分符号化も絶対符号化と同様に定義される。したがって、第1ハーフブロックの基調色は、15ビット(555)RGB値として与えられ、第2ハーフブロックに対するRオフセット、Gオフセット、およびBオフセットは、それぞれ3ビットオフセットとして与えられる。これにより、基調色の定義における精度をより高めることが可能となる。しかし、ハーフブロックの基調色は、これらの3ビットオフセットにより表されるよう、相互に対して十分に近くなければならない。それ以外の場合は、絶対符号化が用いられる。
【0009】
ハーフブロックに対する基調色を符号化するために用いられる24ビットは、エンコードにおいて定義され得る基調色の所定の組に対応する。この基調色の所定の組が図2Aで概略的に示される。図示の簡略化のためにのみ、R成分およびG成分のみが示される2次元表現が図示されていることに注意すべきである(第3次元におけるB成分は省略されている)。所与のハーフブロックの符号化のために選択される基調色は、一般に、ハーフブロック中の画素の平均色を基準として選択される。符号化された画素は、選択された基調色を基準に輝度オフセットとして符号化されるため、図2Aにおける対角線(輝度線)は、符号化された画素がこの色空間において存在し得る点を含む。
【0010】
図2Aに示されるように、所与の計算された平均色の所定の組に対して利用可能な基調色の所定の組から基調色を選択する方法は複数存在する。基調色40が幾何学的に最も近い基調色であるのに対し、基調色30は最も近い輝度線上における最も近い基調色である。
【0011】
図2Bは、基調色からの輝度オフセットを用いての所与の画素値の符号化を示す。輝度オフセット(輝度オフセットの予め定められたテーブルから選択される)は、基調色を基準にして、この色空間における圧縮された画素色の位置を示す。圧縮された画素色と本来の画素色との間の距離が、この画素に対する符号化エラーを与える。
【0012】
図3は画素の各ハーフブロックの基調色に対する既存のETC圧縮アルゴリズムにより実施される検索レンジを示す。ハーフブロックの画素の平均色に基づいて基点(すなわち基調色)を選択し、開始基点の周囲の基点のボリュームにおいて検索を実施し、改善された符号化が存在するかどうかを調べる。高品質バージョンの圧縮においては、7x7x7の検索ボリューム(図示する2D表現では7x7の検索エリアとして表される)が検索される。これらの中で、ハーフブロックに対する全体的符号化エラーを最小限にする符号化が検索される。この検索は、これらの各7x7x7(すなわち343)の基点候補に対する可能な8つのテーブルのすべてに対して最善の符号化を計算する反復プロセスである。そのために、既存の圧縮ツールに対しては、極めて長い圧縮手順となる。
【0013】
係る画像符号化/圧縮に対する既存の手法のいくつかは、以下に見出すことができる。
−Jacob StromおよびTomas Akenine−Mollerによる「iPACKMAN−High−Quality, Low Complexity Texture Compression for Mobile Phones」(取得先は、http://www.graphicsshardware.org/previous/www_2005/presentations/strom−ipackman−gh05.ppt) この提示はETC圧縮形式に関するものである。
−ETC形式に対する完全なクロノス規格。(以下で入手可能である。http://khronos.orJrettstry/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt);
−書類「Real Time DXT Compression」、J..M.Pおよびvan Waverem、2006年5月(http://cache−www.intel.com/cd/00/00/32/43/324337_324337.pdf)、および
−NVIDIAテクスチャツールの説明文における(2010年11月12日に以下から取得:http://code.google.com/p/nvidia−texture−tools/wiki/ApiDocumentation)。
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかし、上述のように、先行技術の手法においては極めて長い圧縮時間が当然となっている。したがって、処理時間が短く且つ高品質な符号化を生成するための改善さされた技術が望まれる。
【課題を解決するための手段】
【0015】
第1の態様の観点からは、本発明は、所定の符号化形式により全画像の符号化を生成するための符号化方法を提供する。なお、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする輝度オフセットの1組とを含む、符号化された画素色の1組として符号化され、
前記基調色は、前記所定の色空間において定義された基調色の所定の組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の所定の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して実施される前記方法は、
前記所定の色空間における前記画素ブロックの色の平均色を決定するステップと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するステップと、
前記少なくとも持つ1つの輝度線上に存在する、基調色候補の1組を識別するステップと、
前記1組の基調色候補および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記1組の輝度オフセットは、前記色空間における前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択されるステップと、
を含むものである。
【0016】
画像が画素ブロックにおいて符号化され且つ各画素ブロックが基調色とその基調色を基準とする輝度オフセットの1組を含む符号化された画素色の1組として符号化される符号化形式により画像を符号化するとき、本発明の発明者は、各画素ブロックに対する基調色を、符号化が実施される所定の色空間を通って伸びる少なくとも1つの輝度線上に存在する基調色の候補値の組から選択することにより、改善された方法が提供され得ることを見出した。所定の色空間における輝度線は、符号化に利用可能である基調色の所定の組により定義される。したがって、本発明に係る技術によれば、符号化される各画素ブロックに対して、最初に、その画素ブロックの画素の平均色を決定し、次いで、少なくとも1つの輝度線が、所定の色空間における少なくとも1つの輝度線からのオフセットに基づいて選択される。次いで、この少なくとも1つの輝度線は基調色候補の1組を提供し、次にこの基調色候補の組は、最終的な符号化を決定するために用いられる。
【0017】
例えば、符号化される3ブロックの画素(例えば、図3に示す7x7x7の検索ボリューム)の平均色をほぼ中心とする立方体を形成する基調色の1組を用いて基調色候補を識別するよりも、基調色候補が、所定の色空間を通って伸びる輝度線を基準に選択されるなら、改善された符号化方法が提供されることが見出された。
【0018】
これは、画素ブロックを、基調色およびその基調色を基準とする輝度オフセットの1組として符号化する符号化形式が、クロミナンス値を設定することよりも、輝度値を設定することのほうにより大きい柔軟性を提供するという事実に基づくものである。さらに、符号化された画素色は、所定の色空間を通って伸びる1つの輝度線上に存在するよう制約されている(各符号化された画素色は、輝度線上のいずれかに存在する基調色からの、これらの輝度線に沿ったオフセットとして表される)ため、特定の画素ブロックを符号化するために用いられる最良基調色の特定は、画素ブロックの平均画素色の周囲における空間検索を用いるよりも、輝度線に基づくこの選択を実施することにより、改善される。この技術は、例えば、画素ブロックの平均色の位置が個々の画素色を特に表すわけではないことを意味する、画素ブロックの色が所定の色空間において広く分布する場合に、特に有益であり得る。係る状況では、輝度線は、平均色の周囲における空間検索よりも、基調色候補を提供することに、より適している。
【0019】
輝度線に基づく手法がさらに有利であるさらなる要因は、所定の色空間における増加する輝度を定義する輝度線が、必ずしもクロミナンスが一定である線となるとは限らないことである。なぜなら、輝度は色成分が飽和する点を超えて増減することができるからである。図形な観点からすると、これは、輝度線が所定の色空間の端部と交差する状況を表す。このように、輝度線は必ずしも、所定の色空間を通る単一の直線的経路をとるとは限らない。したがって、所与の画素色の組とよりよく合致する輝度線が存在し得る。その一方で、これらの画素の平均色は、画素色の粗悪な符号化のみを生じさせ得る基調色により近く存在し得る。これは、所定の色空間における平均画素色に最も近い基調色が、クロミナンスの観点からすると個々の画素色から著しく異なる場合に特に当てはまる。なぜなら、所定の符号化形式は、個々の画素が基調色からの輝度オフセットにおいて変動することのみを許可し、したがってこのクロミナンスの差異により、大きい符号化エラー(符号化された画素色と本来の画素色との間の)が生じ得るためである。
【0020】
様々なオフセットの定義方法が存在することが理解されるであろう。しかし、1つの実施形態においては、前記色空間における前記オフセットは、前記平均色と前記少なくとも1つの輝度線との間の最短距離である。
【0021】
様々な符号化エラーの定義方法が存在することも理解されるであろう。しかし、1つの実施形態においては、前記符号化色は、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の二乗の和として計算される。
【0022】
1つの実施形態において、前記少なくとも1つの輝度線を選択する前記ステップは、前記オフセットの最小値を有する3つの輝度線を選択することを含む。3つの輝度線の選択は、3次元の所定の色空間の状況において特に適している。なぜなら、所与の平均色の位置が3つの輝度線により包囲されるからである。これら3つの輝度線のうちのいずれが符号化に対する基調色を提供するに当たって最も適しているかは、各輝度線に対して、画素ブロックの画素の色の位置に依存する。
【0023】
1つの実施形態においては、少なくとも1つの輝度線を選択する前記方法は、反復輝度線選択手順を含み、前記反復輝度線選択手順は、
既に選択した輝度線の隣接輝度線を検査するステップと、
前記隣接輝度線からの前記画素ブロックの前記色のオフセットの総計が、前記既に選択された輝度線からの前記画素ブロックの前記色のオフセットの総計よりも大きくない場合に、前記隣接輝度線を選択するステップと、
を含む。
【0024】
したがって、複数の輝度線が、この反復輝度線選択手順により選択され得る。この反復輝度線選択手順の提案は、所定の色空間における、画素ブロックの平均色からのオフセットに基づいて選択された最初の輝度線が、事実、画素ブロックに対する最良の符号化である基調色を提供しない場合もあるという認識に基づくものである。例えば、輝度線が所定の色空間を通る経路のために、個々の画素色に最も近い輝度線が、これらの画素の平均色に最も近い輝度線と同一であるとは限らない。したがって、反復輝度線選択手順は、隣接輝度線を検査し、隣接輝度線からの画素ブロックの色のオフセット総計と、既に選択された輝度線からの画素ブロックの色のオフセット総計とを比較し、隣接輝度線が画素ブロックの色に最も近い(オフセット総計に基づいて)ことが示されると、この隣接輝度線も選択される。
【0025】
様々なオフセット総計の計算方法が存在することも認識されるであろう。しかし、1つの実施形態においては、前記オフセット総計は、前記画素ブロックの前記色と、各輝度線のそれぞれの最も近い点との間の距離の二乗の和として計算される。
【0026】
1つの実施形態においては、前記隣接輝度線は、前記隣接輝度線が前記既に選択された輝度線よりも色飽和度における増加を表す場合にのみ、検査される。所定の色空間における輝度線を考慮するとき、画素ブロックの色に最も近く(例えば、平均二乗偏差(RMS)により)に存在する輝度線は、画素の平均色に最も近い線か、またはこの線よりも大きい色飽和度を有する線であることが見出された。したがって、反復輝度線選択手順の一部として輝度線を選択する際、隣接輝度線が、既に選択された輝度線よりも色飽和度における増加を表す場合にのみ、隣接輝度線の選択を考慮することは有利である。
【0027】
1つの実施形態において、前記隣接輝度線は、前記すでに選択された輝度線が前記オフセット総計の非ゼロ値を有する場合にのみ、検査される。画素色のいくつかの特定の構成は、これらの画素色と所与の輝度線との間のオフセットの総計がゼロ値となり得ることが見出されている。これは、例えば、画素色が1つまたは複数の輝度線上に存在する場合に当てはまる。このことは、例えば、画素色が所定の色空間の完全に色飽和した端部上に存在する場合に可能である。この状況においては、隣接輝度線を検査する必要がない。
【0028】
複数の輝度線が選択される1つの実施形態においては、前記複数の輝度線は、各輝度線に対する前記オフセット総計によりソートされる。任意の所与の符号化する画素色の組に対する符号化エラーが、少なくとも、対応する輝度線に対するオフセット総計でなければならない場合、これらの輝度線をオフセット総計によりソートするための複数の輝度線が存在するとき、それは有利である。平均して、最も小さいオフセット総計を有する輝度線が、最も低い符号化エラーを生じさせる可能性が最も大きい。しかし、最も小さいオフセット総計を有する線が必ずしも最も低い符号化エラーを生じさせるとは限らない点を認識すべきである。なぜなら、これは、その輝度線上において利用可能な基調色に対する画素色の特定の位置に依存するからである。例えば、これは、画素色が利用可能な基調色から比較的離れている場合に生じ得る。その場合は、他の輝度線が、この画素ブロックに対する最も小さい符号化エラーを提供し得る。
【0029】
1つの実施形態においては、前記符号化された画素色の組を決定するステップは反復輝度線考慮手順を含む。なお、この反復輝度線考慮手順においては、前記少なくとも1つの輝度線上に存在する基調色候補の組を識別する前記ステップと、前記符号化された画素色の組を決定する前記ステップは、増加するオフセット総計の順における前記複数の輝度線に対して実行される。複数の輝度線を選択した後、これらの輝度線を検査するための、手順的観点から最も効果的な方法は、増加するオフセット総計の順である。
【0030】
1つの実施形態においては、前記エンコードされた画素色の組を決定する前記ステップは、反復符号化決定手順を含む。なお、この反復符号化決定手順は、基調色候補の前記の組の各基調色候補に対して、
前記ベース色候補に対して適用された前記輝度オフセット値を用いて、符号化された画素色の候補組を決定するステップと、
前記色空間における、前記画素ブロックの前記色と前記符号化された画素色の候補組との間の距離総計を示す、前記符号化された画素色の候補組に対する符号化エラー候補を決定するステップと、
前記符号化エラー候補が前記画素ブロックに対する任意の以前の符号化エラー候補よりも低い場合に、前記符号化エラー候補を最良符号化エラーとして設定するステップと、
前記基調色および前記輝度オフセットの組として、前記基調色候補に適用されたときに前記最良符号化エラーを与える基調色候補および輝度オフセット値を選択するステップと、
を含む。
【0031】
したがって、基調色候補の組を決定した後、次に、基調色候補の組のそれぞれを、その基調色候補に適用された輝度オフセット値を用いて、符号化された画素色の候補組を決定するために用いられてもよい。このように、色空間における、画素ブロックの色と符号化された画素色の候補組との間の距離総計を示す符号化エラー候補が決定されてもよい。このように決定された各符号化エラー候補に対して、それがいずれの以前の符号化エラー候補よりも低いことが見出された場合、それが最良符号化エラーとして設定される。各基調色候補を考慮する間、今までに見出された最良符号化エラーが記録され、このプロセスの最後において、この最良符号化エラーを与えた基調色および輝度オフセットの組が、この画素ブロックに対する選択された基調色および輝度オフセットの組として用いられることができる。
【0032】
1つの実施形態においては、前記輝度オフセット値の少なくとも1つの所定のテーブルは、輝度オフセット値の複数の所定のテーブルを含み、前記基調色候補に適用された前記輝度オフセット値を用いて符号化された画素色の前記候補組を決定する前記ステップは、輝度オフセット値の前記複数の所定のテーブルのそれぞれのテーブルを用いて、符号化された画素色の前記候補組を反復的に決定するステップを含む。
【0033】
したがって、輝度オフセット値の複数の所定のテーブルが提供された後、基調色候補に適用された輝度オフセット値を用いて符号化された画素色の候補組を決定するステップは、最良の符号化エラーを見出すために、輝度オフセット値の各テーブルを検索してもよい。
【0034】
1つの実施形態においては、前記符号化エラーは累積的符号化エラーとして累積的に決定される。考慮中の輝度オフセット値の現在のテーブルに対する前記累積的符号化エラーが前記最良の符号化エラーよりも大きい場合、輝度オフセット値の前記現在のテーブルを用いて符号化された画素色の前記候補組を決定する前記ステップは、終了する。したがって、輝度オフセット値の各テーブルが考慮される間、符号化エラーは累積的に決定される。この累積的エラーが以前に見出された最良符号化エラーを越えると、このテーブルを用いたこの最終符号化エラーが今までに見出された最良符号化エラーを越えることを知ることができる。圧縮時間は、輝度オフセット値のこのテーブルに対する計算を終了することにより、節約され得る。この累積的符号化エラーは画素毎に評価され得、1つの実施形態においては、前記累積的符号化エラーは、前記画素ブロックの前記色に対して、画素毎に前記最良符号化エラーと比較される。したがって、所与の画素に対する計算により得られた累積的エラーが、今までに見出された最良符号化エラーを越えた場合、ただちに輝度オフセット値(考慮中の現在のベース色に適応される)のこのテーブルの考慮は終了することができる。
【0035】
1つの実施形態においては、次の輝度線を考慮する前に、前記次の輝度線に対する前記オフセット総計が前記最良の符号化エラーを越える場合、前記反復輝度線考慮手順は終了され、前記次の輝度線も、前記複数の輝度線のうちのさらなる輝度線も、考慮されない。これは、上述のように、所与の輝度線上の基調色を用いる符号化エラーは、少なくとも、その輝度線に対するオフセット総計よりも大きくなければならない事実に基づくものである。したがって、反復輝度線考慮手順の間、次の輝度線に対するオフセット総計が今までに見出された最良の符号化エラーを越えることが見出された場合、この次の輝度線も、および、さらなる輝度線も、最良符号化エラーに対する改善をもたらすことができないことがただちに結論できる。なぜなら、これらの輝度線はオフセット総計でソートされているからである。そのため、今までに見出された最良符号化エラーに対する改善はもたらされず、反復輝度線考慮手順はただちに終了され得る。
【0036】
1つの実施形態においては、前記ブロックはそれぞれ2画素×4画素の組を含む。
【0037】
1つの実施形態においては、前記画素ブロックの、少なくとも1対の近傍ブロックは、相互既存形式で符号化される。なお、相互依存形式の符号化においては、前記近傍ブロック対のうちの第2ブロックは前記近傍ブロック対のうちの第1ブロックに基づいて符号化される。符号化効率の観点から、近傍ブロック対が相互依存形式で符号化されることが有利であることが見出されることもある。例えば、各基調色が12ビットで符号化され得るのに対して、2つの近傍画素ブロックが24ビットで符号化される場合、他の基調色をそれに対する3ビットのオフセットの組として定義する一方で、1つの基調色を15ビット(例えば、RGB555)で符号化することにより、基調色の定義にあたってより大きい精度が達成され得る。これは、もちろんのこと、2つのブロックの基調色の間の相違が、この3ビットのオフセットの組で表され得るよう十分小さい場合にのみ可能である。
【0038】
1つの実施形態において、前記ブロックの対は、水平方向に隣接し、他の実施形態においては、前記ブロックの対は垂直方向に隣接する。
【0039】
1つの実施形態においては、この方法は、その画素ブロックが前記相互依存方式で符号化された場合に、またはその画素ブロックが他の画素ブロックに対して独立方式で符号化された場合に、前記符号化エラーがより低くなるかどうかを、各画素ブロックに対して、判定するステップをさらに含む。次いで、その画素ブロックに対する最も低い符号化エラーを与える符号化形式が選択されてもよい。
【0040】
1つの実施形態においては、この方法は、各画素ブロックに対して、すべての符号化方式に対して前記符号化エラーを反復的に決定し、前記符号化エラーに対して全体的に最も低い値を与える符号化方式を選択することをさらに含む。したがって、ブロック毎における、独立/相互依存符号化および水平/垂直分割の各順列は、いずれの順列が最良符号化を与えるかを判定するために、検証されてもよい。様々な相互依存符号化のそれぞれに対して、(ブロックの対に対して、第1および第2の仮想的なラベルを与えるものとして)第1ブロックが第2ブロックに依存する場合、または第2ブロックが第1ブロックに依存する場合、より低い符号化エラーが生成されたかどうかを判定してもよい。
【0041】
1つの実施形態においては、前記色空間における距離の計算は、前記色空間の各色成分に対する人間の目の感度による知覚的重みが加味されてもよい。異なる色成分に対する人間の目における感度の差異が存在するため、符号化の品質における知覚的改善は、距離計算にこの現象を繰り込むことにより得られる。
【0042】
1つの実施形態においては、前記符号化エラーは、ピーク信号対雑音比として計算される。これは、改善された品質の符号化を与えるために、判断されてもよい。
【0043】
1つの実施形態においては、前記画像はテクスチャ画像である。テクスチャ画像は図形用途によりランダムアクセスされる必要がある。したがって、ブロックに基づく符号化が特に好適である。
【0044】
1つの実施形態においては、前記所定の符号化形式は、ETC形式である。
【0045】
第2の態様の観点からは、本発明は、コンピュータに第1の態様の符号化方法を実施させるよう構成されたコンピュータプログラムを非一時的な方法で記憶するコンピュータプログラム製品を提供する。
【0046】
第3の態様の観点からは、本発明は、所定の符号化形式により全画像の符号化を生成するための符号化装置を提供する。なお、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする輝度オフセットの1組とを含む、符号化された画素色の1組として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組としてエンコードされ、
前記ベース色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
画素ブロックのそれぞれに作用するよう構成された前記装置は、前記書体の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定ユニットと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するよう構成された輝度線選択ユニットと、
前記少なくとも1つの輝度線上に存在する1組の基調色候補を識別するよう構成された基調色候補識別器と、
前記1組の基調色候補と前記輝度オフセット値とを用いて、前記の組の符号化された画素色を決定し、前記基調色および前記の組の輝度オフセットは、前記色空間における前記の組の符号化された画素色と前記画素ブロックの前記色との間の距離の合計を示す符号化エラーに基づいて選択するよう構成された、決定ユニットと、
を含む。
【0047】
第4の態様の観点からは、本発明は、所定の符号化形式により画像の符号化を生成するための符号化装置手段であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と、前記基調色を基準とする1組の輝度オフセットとを含む、1組の符号化された画素色として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化される。
基調色の前記の所定の組と前記輝度オフセット値とが、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、前記少なくとも1つの輝度線上に存在し、
各画素ブロックのそれぞれに作用するよう構成された前記装置手段は、
前記所定の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定手段と、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するための輝度線選択手段と、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するための基調色候補識別手段と、
前記の組の基調色候補と前記輝度オフセット値とを用いて、前記の組の符号化された画素色を決定し、前記基調色および前記の組の輝度オフセットは、前記色空間における前記の組の符号化された画素色と前記画素ブロックの前記色との間の距離の合計を示す符号化エラーに基づいて決定される、決定手段と、
を含む。
【0048】
添付の図面に示された以下の実施形態を参照して、本発明につき実施例のみによりさらに説明する。
【図面の簡単な説明】
【0049】
【図1A】2つのハーフブロックに垂直分割された、符号化される画素ブロックの概略図である。
【図1B】ETC形式により定義された輝度オフセットの8つの所定の組を示す図である。
【図1C】絶対符号化および差分符号化の両方に対する、画素ブロックのそれぞれの64ビット・符号化の細分を示す図である。
【図2A】所定の色空間における、画素色の組と、これらの画素の平均色と、可能な基調色の所定の組とを示す図である。
【図2B】本来の画素色と対比させて、基調色および輝度オフセットにより圧縮された符号化を示す図である。
【図3】先行技術に係る符号化方法により基点が考慮される検索エリア(ボリューム)を示す図である。
【図4A】平均画素色に最も近い輝度線および本来の画素色に対する最良の輝度線を示す図である。
【図4B】増加する色飽和度の方向を示す輝度線の1組を示す図である。
【図5A】1つの実施形態において、所与の画素ブロックに対する最良の符号化を判定するために用いられる一連のステップを示す概略図である。
【図5B】図5Aに示すプロセスにおいて用いられる、差分計算に関するステップを示す図である。
【図6】輝度線の候補組を判定するときに1つの実施形態において用いられる一連のステップを示す概略図である。
【図7】反復輝度線考慮手順を実施するとき1つの実施形態において用いられる一連のステップを示す概略図である。
【図8】輝度線上の1組の基調色候補を考慮するとき反復符号化決定手順における1つの実施形態において用いられる一連のステップの概略図である。
【図9】様々な実施形態を実施するために用いられ得る汎用計算装置の概略図である。
【発明を実施するための形態】
【0050】
図4Aは、平均画素色の近傍がこれらの画素色を符号化するための最良の基調色を含み得ない理由を示す、画素ブロックからの(特に、2×4画素のハーフブロックからの)8つの画素色の組を示す。本来の画素色が2つの群の間、すなわち1つ群は原点の比較的近傍に、他の群は高R/低Gの領域に、分散する事実により、平均画素色は、2つの群の間の、中間R/低G値のあたりに位置することとなる。図4Aおよび図4Bは2次元色空間(RG)に対して示されるが、これは、ただ図示の簡略化のためになされたものであり、所定の色空間は一般には3次元(RGB)であることを理解すべきである。図4Aから見られるように、平均画素色に最も近いベース色(「最も近い輝度線」上)は、比較的大きい符号化エラーを有する、符号化された画素色しかを提供できないことが期待される。左側の画素群は、この基調色がその上に存在する輝度線から大きくは逸脱せず、そのために、比較的小さい輝度オフセットで適度に符号化されるのに対して、右側の画素色はこの輝度線から顕著に離れ、そのために比較的大きい符号化エラーでしか符号化され得ない。それに対比して、最良の基調色は、画素の左手の群および画素の右手の群の両方に対してより近くを通る輝度線(「最良の輝度線」)上に存在することが見られる。
【0051】
これらの画素の平均画素色に最も近い輝度線ではない輝度線を選択することにより画素色の所与の組に対して達成される符号化エラーの改良が、平均画素色に最も近い輝度線に対して色飽和度の増加を示す輝度線に対してのみ生じうる(もし生じる場合)ことが、本発明の発明者により特に認められた。輝度線の増加する色飽和度の進行が、図4Bに示される。図4Aに戻って、この「輝度線」は「最も近い輝度線」よりも色飽和度がより高い。したがって、本発明の実施形態は、反復輝度線選択手順を提案する。なお、この反復輝度線選択手順においては、増加する色飽和度の輝度線が(以下でより詳細に説明されるように)反復的に考慮される。
【0052】
本発明の実施形態に係る全体的な符号化手順が、図5Aに示される。4×4画素の各ブロックが、図5Aに示すステップにしたがって処理される。まず、ステップ100〜135において、いくつかの差分符号化計算が実施される。これらは、4×4ブロックを2つの2×4ハーフブロックに分割するステップと、1つのハーフブロックの符号化を、他方のハーフブロックに対して判定するステップとを含む。ブロックを2つのハーフブロックに分割するステップは、水平方向または垂直方向で行われ得、それぞれのハーフブロックは、「第1」ハーフブロックとして処理され、「第1」ハーフブロックに対して、「第2」ハーフブロックは差分符号化が施され得る。第1に、ステップ100において、ブロックは垂直方向に分割され、左側のハーフブロックが「第1」ハーフブロックとして設定され、右側のハーフブロックが「第2」ハーフブロックとして設定される。次いで、ステップ105において、この順列に対する符号化エラーを判定するために、差分計算が実施される。ステップ105における差分計算は、図5Bに示すように実行される。ここで、ステップ160において、まず、最良無制限差分符号化が第1ハーフブロックに対して計算される。次いで、ステップ165において、第1ハーフブロックに対して第2ハーフブロックの最良差分符号化が判定される。最後に、ステップ170において、ブロックに対する全体的な符号化エラーは、(色空間における)本来の画素値と圧縮された画素値との差異に基づいて判定される。
【0053】
図5Aに戻って、ステップ100およびステップ105において実行されたプロセスが、ステップ110およびステップ115において繰り返される。ただしここでは、右手のハーフブロックが「第1ブロック」として設定され、左手のハーフブロックが「第2ブロック」として設定される。同様に、ステップ120、125、130、および135において、同じプロセスが実行される。ただしここでは、ブロックは、上方ハーフブロックおよび下方ハーフブロックへと水平方向に分割され、上方ハーフブロックに関する差分計算が、下方ハーフブロックを基準にして実施され、次いで、逆の差分計算が行われる。すなわち、下方のハーフブロックに関する差分計算が、上方ハーフブロックを基準にして実施される。
【0054】
次いで差分エンコードの順列がすべて考慮された後、ステップ140において、最良の絶対符号化が、2つのハーフブロックへの水平方向分割に関して決定される。一方、ステップ145において、2つのハーフブロックへの垂直方向分割に関する最良絶対符号化が計算される。最後にステップ150において、ブロックに対する最も低い符号化エラーを与える最良全体的符号化が、このブロックに対して選択された符号化として、選択される。各ハーフブロックに対する最良符号化がどのように決定されるかに関する詳細が、ここで図6、7、および8を参照して説明される。
【0055】
各符号化手順は、符号化に用いられる輝度線候補を選択する図6に示すプロセスとともに開始される。まず、ステップ200において、ハーフブロックに対する平均画素色が決定される。次いで、ステップ205において、平均画素色に最も近い3つの符号化可能な輝度線が選択される。これらの3つの輝度線は、符号化に用いられる3次元RGB空間において、平均画素色を包囲する。次いでステップ210において、これらの輝度線のそれぞれについて、その輝度線上の最も近い点への、画素の色の距離の二乗の和(「オフセット総計」)を計算し、輝度線の候補組に加える。この輝度線の候補組の中で、3つの最初に選択された輝度線は「ペアレント」線としてフラグを設定され、この組は、それぞれに対して計算された距離の二乗の和に関してソートされる。次いで、反復輝度線選択手順がステップ215から開始して実行される。
【0056】
ステップ215において、「ペアレント」線としてフラグされた輝度線が選択される。次いで、ステップ220において、この「ペアレント」線が、ペアレントよりも色飽和度がより高い近傍「ドーター」線を有するかどうかが判定される。3次元色空間においては、各ペアレントに対して、飽和度がより高い近傍ドーター輝度線が一般に2つ存在することに注意すべきである。また、(異なるペアレントを介して)すでに検査された近傍ドーター線は、一般に再考慮されない点についても、注意すべきである。係る近傍ドーター輝度線が存在する場合、ステップ225において、ドーター輝度線は選択され、ハーフブロックの画素の色からこのドーター輝度線への距離の二乗の和が計算される。次いで、ステップ230において、この距離の二乗の和が、このドーターのペアレント輝度線に対する距離の二乗の和より大きいかどうかが判定される。これが真である場合、次いでステップ235において、このドーター線は距離の二乗の和によりソートされた線の候補組に加えられる。まずステップ240において、二乗の和が非ゼロであるかどうかが判定され、これが真である場合、このドーターも候補一覧においてペアレントとしてフラグを設定される。
【0057】
このドーターを線の候補組に加えた後、ステップ250において、考慮中の現在のペアレントの他のドーター線が存在するかどうかを判定し、存在する場合、処理の流れは、そのドーター線を処理するために、ステップ225に戻る。しかし、現在のペアレントのドーター線が他に存在しない場合、または(上述した)ステップ220において、考慮中の現在のペアレントが、飽和度がより高い、近傍ドーター輝度線をまったく有さない場合、処理の流れはステップ255に進み、ペアレントとしてフラグを設定され且つまだ処理されていない線の候補組において他の輝度線が存在するかどうかが判定される。存在する場合、処理の流れは、そのペアレント線を処理するために、ステップ215に進む。未処理のペアレント線が候補組の中にもはや存在しない場合、処理の流れはステップ260に進み、このステップ260において、候補線生成プロセスが完了する。
【0058】
輝度線の候補組が図6に説明する手順にしたがって選択されると、輝度線候補の組は次いで、いずれが、このハーフブロックに対する最良符号化を与える基調色を提供するかを判定するために、考慮される。この手順は、1つの実施形態においては、図7に概略的に示されたステップにしたがって実行される。まず、それぞれのオフセット総計(すなわち、その輝度線上の最も近い点への、ハーフブロックの画素の色からの距離の二乗の和)にしたがってソートされた輝度線の候補組から、最も低いオフセットを有する線がステップ300において選択される。ついで、ステップ305において、この線に対して利用可能な最良符号化が、決定される(すなわち、この線を定義する基調色および輝度オフセットを用いて)。これに関するさらなる詳細は、以下で図8を参照して説明する。この線に対する最良符号化を決定した後、ステップ310において、この線に対する符号化エラーは、このハーフブロックの本来の画素の色と、この符号化による符号化された画素色の組との間の距離の二乗の和として決定される。この符号化エラーが最良(すなわち、最も低い)である場合、これが現在の最良エラーとして設定される。次いで、処理の流れは、ステップ315に進み、ステップ315において、ソートされた一覧において他の輝度線候補が存在するかどうかが判定される。存在する場合、次に処理の流れは、ステップ320に進み、ステップ320において、次に最も近い(計算されたオフセット総計に関して)輝度線が選択される。次いで、ステップ325において、候補一覧においてこの線がソートされる基準となった、この線の距離の二乗の和(すなわち、この線に対するオフセット総計)が今までに決定された最良のエラーよりも大きいかどうかが確認される(ステップ310参照)。大きい場合、この線、またはさらなる線は、最良エラーについて改善することは不可能であり、処理の流れは、ステップ330に進み、ステップ330において、ハーフブロックは、その最良エラーを与えた線を用いて、特にその最良エラーを与えた線上のベース色を用いて、符号化される。しかしステップ325において、候補一覧におけるこの次の線に対するオフセット総計が今までに計算された最良エラーを越えないことが見出された場合、処理の流れは、この次の線に対する最良符号化を決定するために、ステップ310に戻り、ステップ310において、この次の線に対する符号化エラーが今までの最良エラーを越えるかどうかが確かめられる。いずれかの反復において、さらなる候補線一覧が存在しないとステップ315において判定された場合、処理の流れはステップ330に進む。
【0059】
所与の輝度線に対する最良エラーが決定される手順(図7におけるステップ305)にいて、図8を参照しつつ、ここで説明する。まず、ステップ400において、この輝度線上の第1基点(基調色候補)が選択される。次いで、ステップ405において、輝度オフセット値の第1テーブルが選択される。次いで、輝度オフセット値のこのテーブルから、ステップ410において、ハーフブロックの第1画素に対する最良テーブルエントリー(すなわち、輝度オフセット値)が決定される。ここで「最良」とは、この画素に対する最も低い符号化エラーを与えるエントリーを意味する。この画素に対する符号化エラー、すなわち色空間において符号化された画素色と本来の画素色との間の距離が、このハーフブロックに対する累積的符号化エラーに加えられる。ステップ415において、この累積的符号化エラーがこのハーフブロックに対するターゲットエラーを越えるかどうかが確認される。第1基点、第1テーブル、および第1画素に対して図8で説明されたプロセスのまさに最初の反復において、予め存在するターゲットエラーは当然存在せず、したがって、このまさに最初の反復において、ステップ415における結果は常に「無」経路にしたがうことなる点に注意すべきである。次いでステップ420において、ハーフブロック内に他の画素が存在するかどうかが判定され、存在する場合、次にステップ425において、最良テーブルエントリー(考慮中の現在のテーブルに対する)がこの次の画素に対して決定される。この次の画素に関連するエンコードエラーも計算され、このテーブルに対する累積的エラーに加えられる。ステップ415、420、および425におけるループが、ハーフブロックに対する全画素に対して完了する(すなわち、ステップ415におけるエラー総計テストに失敗することなく)と、ステップ430において、現在のテーブルに対するハーフブロックに関して計算されたエラー総計が、新しいターゲットエラーとして設定される。
【0060】
ステップ415におけるエラー総計テストに失敗するか、またはステップ430における新しいターゲットエラーの設定に失敗した場合、処理の流れはステップ435に進み、ステップ435において、このハーフブロックの符号化に対して考慮することができる他のテーブルが存在するかどうかが判定される。存在する場合、ステップ440において、その次のテーブルが選択され、処理の流れは、そのテーブルを用いて画素のハーフブロックを符号化するために、ステップ410に戻る。しかしステップ435において他のテーブルがもはや利用可能でない場合、処理の流れはステップ445に進み、ステップ445において、現在考慮中の輝度線上に他の基点(すなわち基調色候補)が存在するかどうかが判定される。存在する場合、次いで処理の流れはステップ405に進み、ステップ405において、利用可能なテーブルに対する反復決定プロセスが新しい基調色を用いて再び実行される。この線上のすべての基点が考慮された後、処理の流れはステップ450において完了し、ステップ450においては、この線に対する最良の符号化が、ターゲットエラーを与えた基調色および輝度オフセットにより与えられることが決定される。
【0061】
所定の色空間において計算された上記の計算は、いくつかの実施形態においては、異なる色成分に対する人間の目の感度を考慮に入れた知覚的重みを加味した距離として計算される。いくつかの実施形態における符号化エラーは、ピーク信号対雑音比に関して計算されてもよい。係る技術については、当業者は精通しているため、ここでは詳細に述べない。
【0062】
図9は、上述の技術を実施するために用いられ得る種類の汎用計算装置500の概略図である。汎用計算装置500は、バス522を介してともに接続された中央処理装置502と、ランダムアクセスメモリ504と、読み出し専用メモリ506とを備える汎用計算装置500はまた、すべて共通バス522を介して接続された、ネットワークインターフェースカード508と、ハードディスク駆動装置510と、ディスプレイドライバ512およびモニタ514と、キーボード518およびマウス520を有するユーザ入力/出力回路516とを、さらに備える。各画素ブロックの符号化を決定するために必要な計算を実行する動作中は、中央処理装置502は、コンピュータプログラム命令を実行され、このコンピュータプロクラム命令は、例えばランダムアクセスメモリ504および/または読み出し専用メモリ506に記憶されることもある。プログラム命令は、加えてハードディスク駆動装置510から取得されてもよく、または、ネットワークインターフェースカード508を介して動的にダウンロードされてもよい。実施された処理の結果は、接続されたディスプレイドライバ512およびモニタ514を介して、ユーザに表示されてもよい。汎用計算装置500の動作を制御するためのユーザ入力、接続されたユーザ入力/出力回路516を介して、キーボード518またはマウス520から受け取られてもよい。コンピュータプログラムは様々な異なるコンピュータ言語で記述され得る。コンピュータプログラムは記録媒体上に局所的に記憶されてもよく、または汎用計算装置500に動的にダウンロードされてもよい。適切なコンピュータプログラムの制御下で動作するとき、汎用計算装置500は、上述した技術を実施することができ、上述の技術を実施するための装置を形成すると考えられる。汎用計算装置500のアーキテクチャは、大きく異なるものであってもよく、図9はその1例にすぎない。
【0063】
本明細書に記載の技術は、先行技術において知られる技術よりも、画像の符号化をはるかに高速に実施することが可能である。例えば、既存のツールを用いてのETC圧縮テクスチャの生成はきわめて低速(既存のツールに維持される最高品質の場合、毎秒300〜400画素、すなわち通常のテクスチャに対して30分〜1時間)である。本明細書に記載の技術は、圧縮プロセスを最高で125倍(検証した例示的場合において)まで高速化し、最高で毎秒40,000画素の速度で圧縮する。さらに、多くの場合において、既存のアルゴリズムよりも高品質な結果を生成しながら、高速化を可能とする。これは、図形用途の開発および検証する環境において、特に有利である。なぜなら、用途は何十・何百のテクスチャを含む場合もあり、本明細書に記載の技術を用いると、開発者は、開発中に、圧縮されたテクスチャの品質をより高速に評価することが可能になる。
【0064】
本明細書においては特定の実施形態について説明してきたが、本発明はこれらの実施形態には限定されず、本発明の技術範囲から逸脱することなく、多くの変更例および追加例が可能であることが理解できるであろう。例えば、以下の従属請求項の特徴と、独立請求項の特徴との、様々な組み合わせが本発明の権利範囲から逸脱することなく、可能である。
【符号の説明】
【0065】
500 汎用計算装置
502 中央処理装置
504 ランダムアクセスメモリ
506 読み出し専用メモリ
508 ネットワークインターフェースカード
510 ハードディスク駆動装置
512 ディスプレイドライバ
514 モニタ
516 ユーザ入力/出力回路
518 キーボード
520 マウス
522 共通バス
【特許請求の範囲】
【請求項1】
所定の符号化形式により画像の符号化を生成する方法であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と前記基調色を基準とする輝度オフセットの1組とを含む符号化された画素色の1組として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して実施される前記方法は、
前記所定の色空間における前記画素ブロックの色の平均色を決定するステップと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するステップと、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するステップと、
前記基調色候補の組および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組および前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択されるステップと、
を含む、符号化方法。
【請求項2】
前記色空間における前記オフセットは、前記平均色と前記少なくとも1つの輝度線との間の最短距離である、請求項1に記載の符号化方法。
【請求項3】
前記符号化エラーは、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の二乗の和として計算される、請求項1または請求項2に記載の符号化方法。
【請求項4】
前記少なくとも1つの輝度線を選択する前記ステップは前記オフセットの最も小さい値を有する3つの輝度線を選択するステップを含む、請求項1から請求項3のいずれかに記載の符号化方法。
【請求項5】
前記少なくとも1つの輝度線を選択するステップは反復輝度線選択手順を含み、前記反復輝度線選択手順は、
既に選択した輝度線の隣接輝度線を検査するステップと、
前記隣接輝度線からの、前記画素ブロックの前記色のオフセット総計が、前記既に選択された輝度線からの、前記画素ブロックの前記色のオフセット総計よりも大きくない場合に、前記隣接輝度線を選択するステップと、
を含む、請求項1から請求項4のいずれかに記載の符号化方法。
【請求項6】
前記オフセット総計は、前記画素ブロックの前記色と、それぞれ、各輝度線の最も近い点との間の距離の二乗の和として計算される、請求項5に記載の符号化方法。
【請求項7】
前記隣接輝度線は、前記隣接輝度線が前記既に選択された輝度線からの色飽和度における増加を表す場合にのみ検査される、請求項5または請求項6に記載の符号化方法。
【請求項8】
前記隣接輝度線は、前記既に選択された輝度線が前記オフセット総計の非ゼロ値を有する場合にのみ検査される、請求項5から請求項7のいずれかに記載の符号化方法。
【請求項9】
複数の輝度線が選択されるとき、前記複数の輝度線は、各輝度線に対する前記オフセット総計によりソートされる、請求項5から請求項8に記載の符号化方法。
【請求項10】
前記符号化された画素色の組を決定する前記ステップは反復輝度線考慮手順を含み、前記反復輝度線考慮手順においては、前記少なくとも1つの輝度線上に存在するベース色候補の1組を識別する前記ステップ、および前記エンコードされた画素色の組を決定する前記ステップは、増加するオフセット総計の順における前記複数の輝度線に対して実行される、請求項9に記載の符号化方法。
【請求項11】
前記符号化された画素色の組を決定する前記ステップは、前記ベース色候補の組の各基調色候補に対する反復エンコード決定手順を含み、
前記ベース色候補に対して適用された前記輝度オフセット値を用いて、符号化された画素色の候補組を決定するステップと、
前記色空間における、前記画素ブロックの前記色と前記符号化された画素色の候補組との間の距離総計を示す、前記符号化された画素色の候補組に対する符号化エラー候補を決定するステップと、
前記符号化エラー候補が、前記画素ブロックに対する任意の以前の符号化エラー候補よりも低い場合、前記符号化エラー候補を最良符号化エラーとして設定するステップと、
前記基調色および前記輝度オフセットの組として、前記基調色候補に適用されたときに前記最良符号化エラーを与える基調色候補および輝度オフセット値を選択するステップと、
を含む、請求項1から請求項10のいずれかに記載の符号化方法。
【請求項12】
前記輝度オフセット値の少なくとも1つの所定のテーブルは輝度オフセット値の複数の所定のテーブルを含み、前記ベース色候補に適用された前記輝度オフセット値を用いて、前記符号化された画素色の候補組を決定する前記ステップは、前記輝度オフセット値の複数の所定のテーブルのそれぞれのテーブルを用いて、前記符号化された画素色の候補組を反復的に決定するステップを含む、請求項11に記載の符号化方法。
【請求項13】
前記符号化エラーは累積的符号化エラーとして累積的に決定され、考慮中の輝度オフセット値の現在のテーブルに対する前記累積的符号化エラーが前記最良符号化エラーを越える場合、前記前記輝度オフセット値の現在のテーブルを用いて前記符号化された画素色の前記候補組を決定する前記ステップは終了される、請求項12に記載の符号化方法。
【請求項14】
前記累積的符号化エラーは、前記画素ブロックの前記色に対して、画素毎に前記最良符号化エラーと比較される、請求項13に記載の符号化方法。
【請求項15】
請求項10に従属するとき次の輝度線を考慮する前に、前記次の輝度線に対する前記オフセット総計が前記最良符号化エラーを越える場合、前記反復輝度線考慮手順は終了され、前記次の輝度線も、前記複数の輝度線におけるさらなる輝度線も考慮されない、請求項11に記載の符号化方法。
【請求項16】
前記ブロックはそれぞれ2×4画素の組を含む、請求項1から請求項15のいずれかに記載の符号化方法。
【請求項17】
前記画素ブロックの少なくとも1対の隣接するブロックは、前記ブロックの隣接する対のうちの第2ブロックが前記ブロックの隣接する対のうちの第1ブロックを基準に符号化される相互依存形式で符号化される、請求項1から請求項16のいずれかに記載の符号化方法。
【請求項18】
前記ブロックの対は水平方向に隣接する、請求項17に記載の符号化方法。
【請求項19】
前記ブロックの対は垂直方向に隣接する、請求項18に記載の符号化方法。
【請求項20】
前記符号化エラーは、画素ブロックが前記相互依存形式で符号化された場合に、または画素ブロックが他の画素ブロックを基準にすることなく独立形式で符号化された場合に、より低くなるかどうかを、各画素ブロックに対して、判定するステップをさらに含む、請求項17から請求項19のいずれかに記載の符号化方法。
【請求項21】
すべての符号化方式について、各画素ブロックに対して、前記符号化エラーを反復的に判定し、全体的に最も低い前記符号化エラーの値を与える符号化方式を選択するステップをさらに含む、請求項20に記載の符号化方法。
【請求項22】
前記色空間における距離の計算は、前記色空間における各色成分に対する人間の感度にしたがって知覚的重みが加味された、請求項1から請求項21のいずれかに記載の符号化方法。
【請求項23】
前記符号化エラーはピーク信号対雑音比として計算される、請求項1から請求項22のいずれかに記載の符号化方法。
【請求項24】
前記画像はテクスチャ画像である、請求項1から請求項23のいずれかに記載の符号化方法。
【請求項25】
前記所定の符号化形式はETC形式である、請求項1から請求項24のいずれかに記載の符号化方法。
【請求項26】
請求項1から請求項25のいずれかに記載の前記エンコード方法をコンピュータに実行させるよう構成されたコンピュータプログラムを非一時的な方法で記憶するコンピュータプログラム製品。
【請求項27】
所定の符号化形式により画像の符号化を生成し、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色および前記基調色を基準とする輝度オフセットの1組とを含む符号化された画素色の1組として符号化されるよう構成された符号化装置であって、
前記ベース色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記ベース色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して作用するよう構成された前記装置は、
前記所定のカラースペースにおける前記画素ブロックの平均色を決定するよう構成された平均色決定ユニットと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するよう構成された輝度線選択ユニットと、
前記少なくとも1つの輝度線上に存在する基調色候補の1組を識別するよう構成された基調色候補識別器と、
前記基調色候補の組および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択するよう構成された、決定ユニットと、
を含む、符号化装置。
【請求項28】
所定の符号化形式により画像の符号化を生成するための、符号化装置手段であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と前記基調色を基準とする1組の輝度オフセットを含む、1組の符号化された画素色として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
輝度オフセットの前記の組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の所定の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記エンコードされた画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックのそれぞれに作用するよう構成された前記装置手段は、
前記所定の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定手段と、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するための輝度線選択手段と、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するための基調色候補識別手段と、
前記基調色候補の組と前記輝度オフセット値とを用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて決定される、決定手段と、
を含む、符号化装置手段。
【請求項1】
所定の符号化形式により画像の符号化を生成する方法であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と前記基調色を基準とする輝度オフセットの1組とを含む符号化された画素色の1組として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して実施される前記方法は、
前記所定の色空間における前記画素ブロックの色の平均色を決定するステップと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するステップと、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するステップと、
前記基調色候補の組および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組および前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択されるステップと、
を含む、符号化方法。
【請求項2】
前記色空間における前記オフセットは、前記平均色と前記少なくとも1つの輝度線との間の最短距離である、請求項1に記載の符号化方法。
【請求項3】
前記符号化エラーは、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の二乗の和として計算される、請求項1または請求項2に記載の符号化方法。
【請求項4】
前記少なくとも1つの輝度線を選択する前記ステップは前記オフセットの最も小さい値を有する3つの輝度線を選択するステップを含む、請求項1から請求項3のいずれかに記載の符号化方法。
【請求項5】
前記少なくとも1つの輝度線を選択するステップは反復輝度線選択手順を含み、前記反復輝度線選択手順は、
既に選択した輝度線の隣接輝度線を検査するステップと、
前記隣接輝度線からの、前記画素ブロックの前記色のオフセット総計が、前記既に選択された輝度線からの、前記画素ブロックの前記色のオフセット総計よりも大きくない場合に、前記隣接輝度線を選択するステップと、
を含む、請求項1から請求項4のいずれかに記載の符号化方法。
【請求項6】
前記オフセット総計は、前記画素ブロックの前記色と、それぞれ、各輝度線の最も近い点との間の距離の二乗の和として計算される、請求項5に記載の符号化方法。
【請求項7】
前記隣接輝度線は、前記隣接輝度線が前記既に選択された輝度線からの色飽和度における増加を表す場合にのみ検査される、請求項5または請求項6に記載の符号化方法。
【請求項8】
前記隣接輝度線は、前記既に選択された輝度線が前記オフセット総計の非ゼロ値を有する場合にのみ検査される、請求項5から請求項7のいずれかに記載の符号化方法。
【請求項9】
複数の輝度線が選択されるとき、前記複数の輝度線は、各輝度線に対する前記オフセット総計によりソートされる、請求項5から請求項8に記載の符号化方法。
【請求項10】
前記符号化された画素色の組を決定する前記ステップは反復輝度線考慮手順を含み、前記反復輝度線考慮手順においては、前記少なくとも1つの輝度線上に存在するベース色候補の1組を識別する前記ステップ、および前記エンコードされた画素色の組を決定する前記ステップは、増加するオフセット総計の順における前記複数の輝度線に対して実行される、請求項9に記載の符号化方法。
【請求項11】
前記符号化された画素色の組を決定する前記ステップは、前記ベース色候補の組の各基調色候補に対する反復エンコード決定手順を含み、
前記ベース色候補に対して適用された前記輝度オフセット値を用いて、符号化された画素色の候補組を決定するステップと、
前記色空間における、前記画素ブロックの前記色と前記符号化された画素色の候補組との間の距離総計を示す、前記符号化された画素色の候補組に対する符号化エラー候補を決定するステップと、
前記符号化エラー候補が、前記画素ブロックに対する任意の以前の符号化エラー候補よりも低い場合、前記符号化エラー候補を最良符号化エラーとして設定するステップと、
前記基調色および前記輝度オフセットの組として、前記基調色候補に適用されたときに前記最良符号化エラーを与える基調色候補および輝度オフセット値を選択するステップと、
を含む、請求項1から請求項10のいずれかに記載の符号化方法。
【請求項12】
前記輝度オフセット値の少なくとも1つの所定のテーブルは輝度オフセット値の複数の所定のテーブルを含み、前記ベース色候補に適用された前記輝度オフセット値を用いて、前記符号化された画素色の候補組を決定する前記ステップは、前記輝度オフセット値の複数の所定のテーブルのそれぞれのテーブルを用いて、前記符号化された画素色の候補組を反復的に決定するステップを含む、請求項11に記載の符号化方法。
【請求項13】
前記符号化エラーは累積的符号化エラーとして累積的に決定され、考慮中の輝度オフセット値の現在のテーブルに対する前記累積的符号化エラーが前記最良符号化エラーを越える場合、前記前記輝度オフセット値の現在のテーブルを用いて前記符号化された画素色の前記候補組を決定する前記ステップは終了される、請求項12に記載の符号化方法。
【請求項14】
前記累積的符号化エラーは、前記画素ブロックの前記色に対して、画素毎に前記最良符号化エラーと比較される、請求項13に記載の符号化方法。
【請求項15】
請求項10に従属するとき次の輝度線を考慮する前に、前記次の輝度線に対する前記オフセット総計が前記最良符号化エラーを越える場合、前記反復輝度線考慮手順は終了され、前記次の輝度線も、前記複数の輝度線におけるさらなる輝度線も考慮されない、請求項11に記載の符号化方法。
【請求項16】
前記ブロックはそれぞれ2×4画素の組を含む、請求項1から請求項15のいずれかに記載の符号化方法。
【請求項17】
前記画素ブロックの少なくとも1対の隣接するブロックは、前記ブロックの隣接する対のうちの第2ブロックが前記ブロックの隣接する対のうちの第1ブロックを基準に符号化される相互依存形式で符号化される、請求項1から請求項16のいずれかに記載の符号化方法。
【請求項18】
前記ブロックの対は水平方向に隣接する、請求項17に記載の符号化方法。
【請求項19】
前記ブロックの対は垂直方向に隣接する、請求項18に記載の符号化方法。
【請求項20】
前記符号化エラーは、画素ブロックが前記相互依存形式で符号化された場合に、または画素ブロックが他の画素ブロックを基準にすることなく独立形式で符号化された場合に、より低くなるかどうかを、各画素ブロックに対して、判定するステップをさらに含む、請求項17から請求項19のいずれかに記載の符号化方法。
【請求項21】
すべての符号化方式について、各画素ブロックに対して、前記符号化エラーを反復的に判定し、全体的に最も低い前記符号化エラーの値を与える符号化方式を選択するステップをさらに含む、請求項20に記載の符号化方法。
【請求項22】
前記色空間における距離の計算は、前記色空間における各色成分に対する人間の感度にしたがって知覚的重みが加味された、請求項1から請求項21のいずれかに記載の符号化方法。
【請求項23】
前記符号化エラーはピーク信号対雑音比として計算される、請求項1から請求項22のいずれかに記載の符号化方法。
【請求項24】
前記画像はテクスチャ画像である、請求項1から請求項23のいずれかに記載の符号化方法。
【請求項25】
前記所定の符号化形式はETC形式である、請求項1から請求項24のいずれかに記載の符号化方法。
【請求項26】
請求項1から請求項25のいずれかに記載の前記エンコード方法をコンピュータに実行させるよう構成されたコンピュータプログラムを非一時的な方法で記憶するコンピュータプログラム製品。
【請求項27】
所定の符号化形式により画像の符号化を生成し、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色および前記基調色を基準とする輝度オフセットの1組とを含む符号化された画素色の1組として符号化されるよう構成された符号化装置であって、
前記ベース色は、所定の色空間において定義された基調色の所定の1組から選択され、
前記輝度オフセットの組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記ベース色の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記符号化された画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックに対して作用するよう構成された前記装置は、
前記所定のカラースペースにおける前記画素ブロックの平均色を決定するよう構成された平均色決定ユニットと、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するよう構成された輝度線選択ユニットと、
前記少なくとも1つの輝度線上に存在する基調色候補の1組を識別するよう構成された基調色候補識別器と、
前記基調色候補の組および前記輝度オフセット値を用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて選択するよう構成された、決定ユニットと、
を含む、符号化装置。
【請求項28】
所定の符号化形式により画像の符号化を生成するための、符号化装置手段であって、前記所定の符号化形式は、画素ブロックにおいて前記画像を符号化し、各画素ブロックは、基調色と前記基調色を基準とする1組の輝度オフセットを含む、1組の符号化された画素色として符号化され、
前記基調色は、所定の色空間において定義された基調色の所定の1組から選択され、
輝度オフセットの前記の組は、輝度オフセット値の少なくとも1つの所定のテーブルに対する参考値の1組として符号化され、
前記基調色の所定の組および前記輝度オフセット値は、前記所定の色空間における輝度線の1組を定義し、前記エンコードされた画素色は、少なくとも1つの前記輝度線上に存在し、
各画素ブロックのそれぞれに作用するよう構成された前記装置手段は、
前記所定の色空間における前記画素ブロックの平均色を決定するよう構成された平均色決定手段と、
前記平均色の前記色空間における、前記少なくとも1つの輝度線からのオフセットに基づいて、少なくとも1つの輝度線を選択するための輝度線選択手段と、
前記少なくとも1つの輝度線上に存在する、基調色候補の1組を識別するための基調色候補識別手段と、
前記基調色候補の組と前記輝度オフセット値とを用いて、前記符号化された画素色の組を決定し、前記基調色および前記輝度オフセットの組は、前記色空間における、前記符号化された画素色の組と前記画素ブロックの前記色との間の距離の和を示す符号化エラーに基づいて決定される、決定手段と、
を含む、符号化装置手段。
【図1A】
【図1B】
【図1C】
【図2A】
【図2B】
【図3】
【図4A】
【図4B】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【図1B】
【図1C】
【図2A】
【図2B】
【図3】
【図4A】
【図4B】
【図5A】
【図5B】
【図6】
【図7】
【図8】
【図9】
【公開番号】特開2012−157002(P2012−157002A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−11759(P2012−11759)
【出願日】平成24年1月24日(2012.1.24)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2012−11759(P2012−11759)
【出願日】平成24年1月24日(2012.1.24)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】
[ Back to top ]