(57)【要約】それぞれの画素の色成分が高ダイナミックレンジの値によって表される画像を符号化する方法であって、画像を複数の画像ブロックに分解することと、各画素の高ダイナミックレンジ値から、上記画像ブロックにおける画素の色情報および輝度情報を分離することと、圧縮された画像データを提供するために、上記画像ブロックにおける画素の色情報と、上記画像ブロックにおける画素の輝度情報とを、互いに独立に圧縮することと、を含む、方法。【選択図】図３
2009524315.tif 000002
【特許請求の範囲】
【請求項１】
各画素の色成分が高ダイナミックレンジの値によって表される画像を符号化する方法であって、
前記画像を複数の画像ブロックに分解することと、
各画素の前記高ダイナミックレンジ値から、前記画像ブロックにおける前記画素の色情報および輝度情報を分離することと、
圧縮された画像データを提供するために、前記画像ブロックにおける前記画素の前記色情報と、前記画像ブロックにおける前記画素の前記輝度情報とを、互いに独立に圧縮することと、
を含む、方法。
【請求項２】
前記画像ブロックにおける画素毎に別々に、前記画素の前記輝度情報を圧縮することをさらに含む、請求項１に記載の方法。
【請求項３】
前記全画像ブロック内の最小輝度を識別することと、
圧縮ブロックデータのテーブルに、最小輝度の浮動小数点指数をバイアス値として保存することと、
をさらに含む、請求項２に記載の方法。
【請求項４】
各画素についてバイアスされた輝度値を準備するために、前記画像ブロック内の全ての輝度値の指数から、前記バイアス値を減算することと、
バイアスされた最大輝度値の浮動小数点ビットパターンの先頭におけるゼロビットの数を、圧縮ブロックデータの前記テーブルに保存すること、ただし符号ビットは前記ゼロビットの数から無視することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
各画素について、前記バイアスされた輝度値に関する浮動小数点ビットパターンの先頭のゼロビット列から、前記バイアスされた最大輝度の浮動小数点ビットパターンの先頭におけるゼロビットの数だけゼロビットを削除することと、
この結果として得られた、前記バイアスされた輝度値の浮動小数点ビットパターンから、各画素について、先頭の所定数のビットを圧縮ブロックデータの前記テーブルに保存することと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記画像ブロックにおける前記画像データを、サブブロックに分割することと、
前記サブブロックにおける各画素の色値が同一の平均色値であるとみなされるように、前記サブブロックにおける前記画素の前記色情報を平均化することと、
をさらに含む、請求項１から５のいずれかに記載の方法。
【請求項７】
前記平均化された色情報を、その色成分の和で割ることによって正規化することと、
前記正規化された色成分のうちの１つを、前記圧縮処理から省くことと、
をさらに含む、請求項６に記載の方法。
【請求項８】
前記残りの色成分を、７ビットの固定小数点として符号化することをさらに含む、請求項７に記載の方法。
【請求項９】
前記画像ブロックのサイズが４×４画素である、請求項１から８のいずれかに記載の方法。
【請求項１０】
前記サブブロックのサイズが２×２画素である、請求項６から９のいずれかに記載の方法。
【請求項１１】
符号化された画像データから画像を復号する方法であって、
前記符号化された画像データを、複数の符号化された画像ブロックに分解することと、
前記画像ブロックのサブブロックにおける画素の平均色情報を復号することと、
前記画像ブロックにおける前記画素の輝度情報を復号することと、
各画素の前記輝度情報を、対応する画素の前記平均色情報で調節することと、
前記復号された画像ブロックを、元のダイナミックレンジを有する画像に合成することと、
を含む方法。
【請求項１２】
前記画素の前記色成分の前記元のダイナミックレンジ値を１６ビットまたは３２ビット浮動小数点演算で表すことをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記画像ブロックにおける前記画素の輝度情報を復号することは、
各画素の所定数の輝度値ビットを復号することと、
各画素の前記輝度値ビットに含められるべき先頭のゼロビット列を復号することと、
各画素の前記輝度値ビットに加算されるバイアス値を復号することと、
をさらに含む、請求項１１または１２に記載の方法。
【請求項１４】
前記符号化された画像データの任意の画素を復号するために、
・  復号される少なくとも１つの画素を同定することと、
・  前記符号化された画像データを前記画像ブロックに分解した後に、前記復号される少なくとも１つの画素を含む前記少なくとも１つの画像ブロックのアドレスを決定することと、
・  前記復号される前記少なくとも１つの画素を含む、前記少なくとも１つの画像ブロックのみを読み出すことと、
・  前記少なくとも１つの画素が復号された画像データを出力するために、前記少なくとも１つの画像ブロックの前記画像データを復号することと、
をさらに含む、請求項１１から１３のいずれかに記載の方法。
【請求項１５】
各画素の色成分が高ダイナミックレンジの値によって表される画像を受信し、かつ前記画像を複数の画像ブロックに分解する画像分解器と、
前記画像ブロックにおける前記画素の色情報および輝度情報を、各画素の前記高ダイナミックレンジ値から分離し、かつ、圧縮された画像データを提供するために、前記画像ブロックにおける前記画素の前記色情報と、前記画像ブロックにおける前記画素の前記輝度情報とを、互いに独立に圧縮する、少なくとも１つのブロック符号器と、
前記複数の符号化された画像ブロックの前記圧縮された画像データから、符号化された画像ファイルを合成する符号化画像合成器と、
を備える画像符号器。
【請求項１６】
前記少なくとも１つのブロック符号器が、前記画像ブロックにおける画素毎に別々に、前記画素の前記輝度情報を圧縮するように構成される、請求項１５に記載の画像符号器。
【請求項１７】
前記少なくとも１つのブロック符号器が、
・  前記全画像ブロック内の最小輝度を識別し、
・  圧縮ブロックデータのテーブルにおいて、前記最小輝度の浮動小数点指数をバイアス値として保存する、
ように構成される、請求項１６に記載の画像符号器。
【請求項１８】
前記少なくとも１つのブロック符号器が、
・  各画素についてバイアスされた輝度値を準備するために、前記画像ブロック内の全ての輝度値の指数から、前記バイアス値を減算し、
・  バイアスされた最大輝度値の浮動小数点ビットパターンの先頭におけるゼロビットの数を、圧縮ブロックデータの前記テーブルに保存し、ただし符号ビットは前記ゼロビットの数から無視する、
ように構成される、請求項１７に記載の画像符号器。
【請求項１９】
前記少なくとも１つのブロック符号器が、
・  各画素について、前記バイアスされた輝度値に関する浮動小数点ビットパターンの先頭のゼロビット列から、前記バイアスされた最大輝度の浮動小数点ビットパターンの先頭におけるゼロビットの数だけゼロビットを削除し、
・  この結果として得られた、前記バイアスされた輝度値の浮動小数点ビットパターンから、各画素について、先頭の所定数のビットを圧縮ブロックデータの前記テーブルに保存する、
ように構成される、請求項１８に記載の画像符号器。
【請求項２０】
前記少なくとも１つのブロック符号器が、
・  前記画像ブロックにおける前記画像データを、サブブロックに分割し、
・  前記サブブロックにおける各画素の色値が同一の平均色値であるとみなされるように、前記サブブロックにおける前記画素の前記色情報を平均化する、
ように構成される、請求項１５から１９のいずれかに記載の画像符号器。
【請求項２１】
前記少なくとも１つのブロック符号器が、
・  前記平均化された色情報を、その色成分の和で割ることによって正規化し、
・  前記正規化された色成分のうちの１つを、前記圧縮処理から省く、
ように構成される、請求項２０に記載の画像符号器。
【請求項２２】
前記少なくとも１つのブロック符号器が、前記残りの色成分を、７ビットの固定小数点として符号化するように構成される、請求項２１に記載の画像符号器。
【請求項２３】
前記画像ブロックのサイズが４×４画素である、請求項１５から２２のいずれかに記載の画像符号器。
【請求項２４】
前記サブブロックのサイズが２×２画素である、請求項２０から２３のいずれかに記載の画像符号器。
【請求項２５】
符号化された画像データを受信し、かつ前記符号化された画像データを、複数の符号化された画像ブロックに分解する画像分解器と、
前記画像ブロックのサブブロックにおける画素の平均色情報を復号し、前記画像ブロックにおける前記画素の輝度情報を復号し、また、各画素の前記輝度情報を、対応する画素の前記平均色情報で調節する、少なくとも１つのブロック復号器と、
前記復号された画像ブロックを、元のダイナミックレンジを有する画像に合成する画像合成器と、
を備える、画像復号器。
【請求項２６】
前記画素の前記色成分の前記元のダイナミックレンジ値を、１６ビットまたは３２ビット浮動小数点演算で表す手段をさらに備える、請求項２５に記載の画像復号器。
【請求項２７】
前記少なくとも１つのブロック復号器が、
・  各画素の所定数の輝度値ビットを復号し、
・  各画素の前記輝度値ビットに含められるべき先頭のゼロビット列を復号し、
・  バイアス値を復号し、各画素の前記輝度値ビットに前記バイアス値を加算する、
ようにさらに構成される、請求項２５または２６に記載の画像復号器。
【請求項２８】
復号される少なくとも１つの画素を同定する手段と、
前記符号化された画像データを前記画像ブロックに分解した後に、前記復号される少なくとも１つの画素を含む前記少なくとも１つの画像ブロックのアドレスを決定するブロックアドレス計算手段と、
前記復号される少なくとも１つの画素を含む、前記少なくとも１つの画像ブロックのみを読み出すブロック取り出し手段と、
をさらに備え、
前記少なくとも１つのブロック復号器は、前記少なくとも１つの画素が復号された画像データを出力するために、前記少なくとも１つの画像ブロックの前記画像データを復号するように構成される、
請求項２５から２７のいずれかに記載の画像復号器。
【請求項２９】
各画素の色成分が高ダイナミックレンジの値によって表される画像を符号化する画像処理装置であって、
前記画像の画像データを受信し、かつ前記画像を複数の画像ブロックに分解する画像分解器と、
前記画像ブロックにおける前記画素の色情報および輝度情報を、各画素の前記高ダイナミックレンジ値から分離し、かつ、圧縮された画像データを提供するために、前記画像ブロックにおける前記画素の前記色情報と、前記画像ブロックにおける前記画素の前記輝度情報とを、互いに独立に圧縮する少なくとも１つのブロック符号器と、
前記複数の符号化された画像ブロックの前記圧縮されたデータから、符号化された画像ファイルを合成する符号化画像合成器と、
を備える画像符号器、
を含む、画像処理装置。
【請求項３０】
符号化された画像データを復号する画像処理装置であって、
符号化された画像データを受信し、かつ前記符号化された画像データを、複数の符号化された画像ブロックに分解する画像分解器と、
前記画像ブロックのサブブロックにおける画素の平均色情報を復号し、前記画像ブロックにおける前記画素の輝度情報を復号し、また、各画素の前記輝度情報を、対応する画素の前記平均色情報で調節する、少なくとも１つのブロック復号器と、
前記復号された画像ブロックを、元のダイナミックレンジを有する画像に合成する画像合成器と、
を備える画像復号器、
を含む、画像処理装置。
【請求項３１】
各画素の色成分が高ダイナミックレンジの値によって表される画像を符号化するコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ可読媒体に保存され、かつデータ処理装置において実行可能であり、さらに前記コンピュータプログラムは、
前記画像の画像データを受信し、かつ前記画像を複数の画像ブロックに分解するコンピュータプログラムコード部分と、
前記画像ブロックにおける前記画素の色情報および輝度情報を、各画素の前記高ダイナミックレンジ値から分離するコンピュータプログラムコード部分と、
圧縮された画像データを提供するために、前記画像ブロックにおける前記画素の前記色情報と、前記画像ブロックにおける前記画素の前記輝度情報とを、互いに独立に圧縮するコンピュータプログラムコード部分と、
前記複数の符号化された画像ブロックの前記圧縮されたデータから、符号化された画像ファイルを合成するコンピュータプログラムコード部分と、
を備える、コンピュータプログラム。
【請求項３２】
符号化された画像データを復号するコンピュータプログラムであって、該コンピュータプログラムはコンピュータ可読媒体に保存され、かつデータ処理装置において実行可能であり、さらに前記コンピュータプログラムは、
前記符号化された画像データを、複数の符号化された画像ブロックに分解するコンピュータプログラムコード部分と、
前記画像ブロックのサブブロックにおける画素の平均色情報を復号するコンピュータプログラムコード部分と、
前記画像ブロックにおける前記画素の輝度情報を復号するコンピュータプログラムコード部分と、
各画素の前記輝度情報を、対応する画素の前記平均色情報で調節するコンピュータプログラムコード部分と、
前記復号された画像ブロックを、元のダイナミックレンジを有する画像に合成するコンピュータプログラムコード部分と、
を備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックスに関し、より具体的には、テクスチャおよび３次元コンピュータグラフィックスにおいて一般的に使用されるその他の類似する画像の圧縮に関する。
【発明の背景】
【０００２】
３次元（３Ｄ）シーンをより本物らしく見せる場合に一般的に使用する技術として、３Ｄ物体表面へのテクスチャの適用がある。テクスチャは、写真などの通常の２次元画像として定義されることが可能であり、画素（または、画面画素と区別する場合はテクセル）の配列としてメモリに保存される。ディスプレイおよびディスプレイドライバの質の向上や、コンピュータで使用するグラフィックアクセラレータの処理能力の向上とともに、コンピュータグラフィックスの画質をさらに改善させる要求も依然として存在している。一般原則として、メモリ空間およびメモリ帯域幅をテクスチャに多く費やすと、最終的な３Ｄシーンにおいてより優れた画質を達成することができる。
【０００３】
テクスチャ表示の従来の方法は、赤、緑、青（RGB）の3つの原色の組み合わせとして各画素の色を保存する。一般的に、8ビットが各成分に割り当てられ、結果的に画素毎に24ビット（24bpp）となる。これは、RGB8形式と呼ばれる。普及しているその他の形式として、RGB4およびRGB565が挙げられるが、メモリ空間の使用が少ないために色域が犠牲になる。色表示の従来の形式に関する問題は、例えば、4dB（つまり、コントラスト比1:104 =1:10 000）を越える輝度を同時に知覚する人間の能力と比べると、色のダイナミックレンジが大幅に限られることである。従って、このような従来の方法で作成されるテクスチャは、通常、低ダイナミックレンジ（low dynamic range; LDR）テクスチャと呼ばれる。LDRテクスチャの分野における事実上の基準は、S3TCとしても知られているDirectXテクスチャ圧縮（DirectX Texture Compression; DXTC）であり、US6,658,146にさらに詳しく記載されている。その他の類似の方法には、FXT、FLXTC、およびエリクソンテクスチャ圧縮（Ericsson Texture Compression; ETC）が含まれ、ETCについてはWO05/059836に開示されている。
【０００４】
コンピュータグラフィックスにおけるより優れた画質に対する要求を満たすために、輝度のダイナミックレンジ全体を表示可能である画像形式が、実際に開発されている。この画像形式は、高ダイナミックレンジ（high dynamic range; HDR）形式と呼ばれる。高ダイナミックレンジ画像の保存および操作に関する事実上の新たな基準は、OpenEXRであり、これは、色成分に関する16ビットまたは32ビットの浮動小数点表現を使用する。OpenEXRのダイナミックレンジは、16ビットのバリアント型を使用する場合に11dBを上回り、32ビットのバリアント型を使用する場合に最大76dBとなる。ほとんどの目的において16ビット形式で十分であり、48bppの実用的なビットレートをもたらす。 
【０００５】
HDRテクスチャに関する問題は、従来のLDR形式に比べて、2倍の量のメモリ帯域幅およびバス帯域幅を消費することである。さらに、LDRテクスチャのためには非常に効果的な圧縮形式が存在し、それは、ビットレートを元々のものから6分の1にすることが可能である。従って、メモリ帯域幅およびバス帯域幅の消費の観点から見たHDRテクスチャとLDRテクスチャの違いは12倍以上になる。
【０００６】
OpenEXR基準は、PIZ、ZIP、RLE、およびPXR24などのいくつかの圧縮方法に対応するが、それらは全て、圧縮データにランダムアクセス不可能であるという技術的欠陥を伴い、それは、３Ｄ物体にテクスチャをマッピングする際に極めて重大となる。グラフィックスハードウェアは、画像全体を解凍する必要がないように、画像における任意の所定画素を解凍可能である必要がある。また、現代のハードウェアは、1秒に何十億ものLDRテクセルを取り出しおよび解凍可能であるために、解凍は、非常に高速でなければならず、提案されたいかなるHDRテクスチャの圧縮スキームも、少なくともそれに近い性能を達成すべきである。
【０００７】
また、JPEGおよびPNGなどのHDR画像に適用可能である通常の画像圧縮技術は、個々の画素へのランダムアクセスが不可能という点において、OpenEXR形式に類似している。例えばJPEG画像において、ある１つの画素にアクセスするためには、その画素を含めて画像全体を解凍しなければならない。３Ｄゲームなどの現代のコンピュータグラフィックスでは、1秒につき何百万さらには何十億のテクセルにアクセスしなければならないことから、これが遅過ぎることは明らかである。
【０００８】
従って、従来の画像圧縮技術は、ネットワーク上で永久的に保存および伝送するために、テクスチャのサイズを減少させるという点において有用であるが、解凍器におけるランタイムメモリ空間およびメモリ帯域幅消費の軽減に対する適用には不十分である。
【０００９】
出願者の以前の特許出願である米国特許第11/241,854号は、画像圧縮方法について説明している。その方法では、画像データが既知のLDR技術に基づき圧縮および解凍可能になるように、HDRテクスチャ画像が適切にスケーリングされる。。しかしながら、特定の場合において、スケーリングにより生じる画像データへの誤りが過度に発生する。従って、より正確な画像圧縮方法に対する必要性が存在する。
【特許文献１】US6,658,146
【特許文献２】WO05/059836
【発明の摘要】
【００１０】
ここで、改良された方法と、その方法を実装する技術装置とが発明され、これらによって、HDRテクスチャの効率的な圧縮が達成されると同時に、ハードウェアにおけるより正確な画素毎のランタイム解凍が可能になる。本発明の種々の側面は、符号化および復号方法、符号器、復号器、符号化システム、符号化／復号装置、および符号化／復号を実行するコンピュータプログラムを含み、これらの側面は、独立請求項における記載により特徴付けられる。本発明の種々の実施形態は、独立請求項において開示される。
【００１１】
第1の側面によると、本発明に従う方法は、各画素の色成分が高ダイナミックレンジの値によって表される画像を符号化する概念に基づき、まず、前記画像を複数の画像ブロックに分解し、各画素の前記高ダイナミックレンジから、前記画像ブロックにおける前記画素の色情報および輝度情報を分離し、また、圧縮された画像データを提供するために、前記画像ブロックにおける前記画素の前記色情報と、前記画像ブロックにおける前記画素の前記輝度情報とを、互いに独立に圧縮するようにする。
【００１２】
ある実施形態によると、前記画像ブロックにおける画素毎に別々に、前記画素の前記輝度情報を圧縮する。
【００１３】
ある実施形態によると、前記全画像ブロック内の最小輝度を識別し、圧縮ブロックデータのテーブルに、最小輝度の浮動小数点指数をバイアス値として保存する。
【００１４】
ある実施形態によると、前記方法は、各画素についてバイアスされた輝度値を準備するために、前記画像ブロック内の全ての輝度値の指数から、前記バイアス値を減算することと、バイアスされた最大輝度値の浮動小数点ビットパターンの先頭におけるゼロビットの数を、圧縮ブロックデータ前記テーブルに保存すること、ただし符号ビットはこのゼロビットの数から無視することと、をさらに含む。
【００１５】
ある実施形態によると、前記方法は、各画素について、前記バイアスされた輝度値に関する浮動小数点ビットパターンの先頭のゼロビット列から、前記バイアスされた最大輝度の浮動小数点ビットパターンの先頭におけるゼロビットの数だけゼロビットを削除することと、この結果として得られた、前記バイアスされた輝度値の浮動小数点ビットパターンから、各画素について、先頭の所定数のビットを圧縮ブロックデータの前記テーブルに保存することと、をさらに含む。
【００１６】
ある実施形態によると、前記方法は、前記画像ブロックにおける前記画像データを、サブブロックに分割することと、前記サブブロックにおける各画素の色値が同一の平均色値であるとみなされるように、前記サブブロックにおける前記画素の前記色情報を平均化することと、をさらに含む。
【００１７】
ある実施形態によると、前記平均化された色情報を、その色成分の和で割ることによって正規化し、前記正規化された色成分のうちの1つを、前記圧縮処理から省く。
【００１８】
ある実施形態によると、前記残りの色成分を、7ビットの固定小数点として符号化する。
【００１９】
ある実施形態によると、前記画像ブロックのサイズは、4×4画素であり、前記画像ブロックのサイズは、2×2画素である。
【００２０】
本発明に従う符号化方法は、重要な利点を提供する。主な利点は、HDRテクスチャを処理する際に、記憶容量および所要のバス帯域幅の両観点において、大幅なメモリ節約が達成されることである。例えば、16ビットのOpenEXR画像形式を使用する非圧縮HDRテクスチャは、48bppの実用的なビットレートを有する。上記手順により、ビットレートを8bpp変換することによって、16ビットOpenEXR非圧縮HDRテクスチャと比べて、約85%のメモリ節約をもたらすことが可能になる。さらなる利点は、復号の際の標準画像の画質がほとんど低下しないこと、あるいは全く低下しないことである。また、さらなる利点は、既存のハードウェア実装に少しの修正を加えるだけで、実施形態が実装可能であることである。
【００２１】
第2の側面によると、符号化された画像データから画像を復号する方法が提供され、前記方法は、前記符号化された画像データを、複数の符号化された画像ブロックに分解することと、前記画像ブロックのサブブロックにおける画素の平均色情報を復号することと、前記画像ブロックにおける前記画素の輝度情報を復号することと、各画素の前記輝度情報を、対応する画素の前記平均色情報で調節（modulate）することと、前記復号された画像ブロックを、元のダイナミックレンジを有する画像に合成することと、を含む。
【００２２】
ある実施形態によると、前記画素の前記色成分の前記元のダイナミックレンジ値を、16ビットまたは32ビット浮動小数点演算で表す。
【００２３】
ある実施形態によると、前記画像ブロックにおける前記画素の輝度情報を復号することは、各画素の所定数の輝度値ビットを復号することと、各画素の前記輝度値ビットに含められるべき先頭のゼロビット列を復号することと、各画素の前記輝度値ビットに加算されるバイアス値を復号することと、をさらに含む。
【００２４】
ある実施形態によると、前記符号化された画像データの任意の画素を復号するために、前記方法は、復号される少なくとも1つの画素を識別することと、前記符号化された画像データを前記画像ブロックに分解した後に、前記復号される少なくとも1つの画素を含む前記少なくとも1つの画像ブロックのアドレスを決定することと、前記復号される少なくとも1つの画素を含む、前記少なくとも1つの画像ブロックのみを読み出すことと、前記少なくとも1つの画素の復号された画像データを出力するために、前記少なくとも1つの画像ブロックの前記画像データを復号することと、をさらに含む。
【００２５】
本発明に従う復号方法によって提供される利点は、当業者に明白である。有利には、グラフィックスのサブシステムのテクスチャハードウェアは、浮動小数点テクスチャから画像データを直接読み込んだかのように、復号画像データを解釈する。
【００２６】
本発明に従う復号方法によって提供される前記ダイナミックレンジ、つまり結果的に前記画質は、従来のLDR形式よりも大幅に改善される。さらに、ある実施形態によると、ランダムアクセス特性により、いかなる画像ブロックのいかなる画素も、ランダムにアクセス可能であり、画像の必要な部分だけを復号のために有利に選択することができる。
【００２７】
本発明のさらなる側面は、上記方法の発明的ステップを実行するように構成される種々の装置を含む。
【００２８】
本発明の種々の実施形態について、添付の図面を参照して、以下にさらに詳細に説明する。
【実施形態の詳細な説明】
【００２９】
本発明の好適な実施形態に従う符号化／復号装置の構造について、図1を参照して説明する。符号化構成の機能ブロックを使用して本構造について説明する。いくつかの機能は、単一の物理的装置を使用して実行可能であること、例えば、全計算手順は、必要に応じて単一のプロセッサにおいて実行可能であることは、当業者に明白であるだろう。図1の例に従う符号化／復号装置のデータ処理システムは、処理ユニット100、メモリ102、記憶装置104、入力装置106、出力装置108、およびグラフィックスサブシステム110を備え、その全ては、データバス112を介して相互接続される。
【００３０】
処理ユニット100は、例えば、Intel Pentium（登録商標）プロセッサ、Sun SPARC（登録商標）プロセッサ、またはAMD Athlon（登録商標）プロセッサなどの従来の処理ユニットである。処理ユニット100は、データ処理システム内でデータを処理する。メモリ102、記憶装置104、入力装置106、および出力装置108は、当業者が認識する従来の構成要素である。メモリ102および記憶装置104は、データ処理システム100内でデータを保存する。入力装置106は、データをシステムに入力し、一方、出力装置108は、データ処理システムからデータを受信する。データバス112は、従来のデータバスであり、単一回線が図示されているが、プロセッサバス、PCIバス、グラフィックバス、およびISAバスの組み合わせであってもよい。従って、符号化／復号装置は、コンピュータ装置または通信システムの無線端末のようないかなる従来のデータ処理装置であってもよく、この装置は、後述する実施形態に従う画像符号化システムおよび／または画像復号システムを備えることを、当業者は容易に認識する。
【００３１】
ある実施形態に従う画像処理システム200は、図2のブロック図においてさらに示される。画像処理システム200は、画像符号化システム202および画像復号システム204を備える。画像符号化システム202は、画像ソース206から画像を受信するように連結される。画像復号システム204は、出力部208に出力するように連結され、処理された画像は、保存またはさらなる処理のためにこの出力部に転送される。画像処理システム200は、図1のデータ処理システム内で実行されてもよく、その場合、画像符号化システム202は、データ回線を介して画像復号システム204に連結され、また、例えば、記憶装置104および／またはメモリ102を介して接続されてもよい。また、画像処理システム200は、別々のユニットに分散することも可能であり、第1のユニットは、画像符号化システム202と、通信路を介して符号化された画像を送信する送信器とを備え、第2のユニットは、画像復号システム204と、符号化された画像を受信する受信器とを備える。
【００３２】
画像符号化システム202内において、画像は、個々のブロックに分割され、例えば、圧縮または符号化された画像データとして記憶装置104に転送される前に処理される。符号化された画像データにさらにデータ処理を行なう準備が整うと、その符号化されたデータは、画像復号システム204に転送される。画像復号システム204は、符号化された画像データを受信し、それを復号して、画像ソース206から受信した元画像の表示である出力を生成する。
【００３３】
従来技術によると、各画素の色成分に関する16ビットの浮動小数点表現は、表1に基づいて従来と同じように符号化される。
【表１】
2009524315.tif 000003
【００３４】
浮動小数点数は、一般的に、表1の科学的記数法に基づいて符号化される。ここで、最上位ビットは符号（Sign）であり、次の上位ビット（例えば、16ビット形式のうち5ビット）は、最小の負の値が0にマッピングされるようにバイアスされる指数（Exponent）を表し、ビットパターンの最下位部分（先頭の1ビットを引いた8ビットの小数点部）は、仮数（Mantissa）である。16ビット表示は、色成分（RGB）毎に生成され、48bppの実用的なビットレートをもたらす。また、現代のグラフィックスハードウェアの多くは、64bppのビットレートを有する、いわゆる「半浮動」形式にも対応する。この場合、各画素は、画素の透明度を決定するα値を含む。
【００３５】
ある実施形態に従う画像符号化システム202は、図3のブロック図においてさらに示される。実施形態に従う画像符号化システム202の動作は、上述の16ビットの浮動小数点表現からもたらされる。符号化の基本的概念は、HDR画像を適切なブロック（例えば、4×4画素）に分割することと、色情報および輝度情報を画像データの浮動小数点形式から分離することと、非可逆圧縮スキームを使用して色情報および輝度情報を別々に符号化することと、を含む。このような符号化によって、48bppのビットレートを有するHDR画像を、実用的なビットレートである8bppに2進符号化することによって、視覚的忠実性を保持し、かつハードウェア実装のランダムアクセスが可能になるようにする。
【００３６】
従って、画像符号化システムは、画像分解器300、ヘッダ変換器302、1つ以上のブロック符号器304、および符号化画像合成器306を備える。HDR画像を処理するために、画像分解器300は、画像ソース206などのソースから、元のHDR画像を受信するように連結される。画像分解器300は、元のHDR画像のヘッダからの情報をヘッダ変換器302に転送する。ヘッダ変換器302は、元のヘッダを修正して、修正ヘッダを生成する。次いで、画像分解器300は、元のHDR画像をNの数の画像ブロックIBNに分割または分解する。ここで、Nは、ある整数値である。各画像ブロックが4画素X4画素（16画素）になるように、画素を分解することが好ましい。当業者は、画素数または画像ブロックの大きさが変動してもよいこと、例えば、mおよびnが正の整数値であるm*n画素であってもよいことを理解する。
【００３７】
これらの画像ブロックは、1つ以上のブロック符号器304に提供され、ここで、各画像ブロックIBN（好ましくは4×4画素ブロック）は、ランダムアクセスが可能になるように独立的に符号化される。画像ブロックを符号化するために、まず、画像ブロックの各画素の輝度が、元データの赤、緑、および青（RGB）成分の和として計算される。ある実施形態によると、数値域を拡大するために、整数値で輝度も割ってもよいが、これにより下部の精度が低下する。次に、全ブロックにおける最小輝度、つまり、最小指数を有するブロック内の画素を識別し、最小輝度の浮動小数点指数を、圧縮ブロックデータのテーブルに保存する。このテーブルは、最小指数値用の個別のフィールドを含むことが好ましく、このフィールドは、本明細書において「expBias」（expバイアス）フィールドと呼ばれる。
【００３８】
バイアスが決定されると、画像ブロック内の全ての輝度値の指数からバイアスを減算する。次に、この減算により生成された浮動小数点指数から、ブロック内で最大値を有する画素を識別する。次に、最大ビット値における不要なゼロビットの数を識別する。つまり、符号ビット、指数ビット、および仮数ビットを含む先頭のビットのうち、ビット値ゼロを有するビットを識別する。不要なゼロビットの数は、画像ブロックデータに応じて0から7の間で変動してもよいことに留意されたい。最大ビット値における不要なゼロビットの数から1を差し引いた値が、圧縮ブロックデータのテーブルに保存される（符号ビットは常にゼロであるため）。このフィールドは、本明細書において、「bitShift」（ビットシフト）フィールドと呼ばれる。次に、上記の数の不要なゼロビットが、画像ブロック内の各画素の先頭ビットから除去される。
【００３９】
ある実施形態によると、圧縮ブロックデータのテーブルは、画像ブロックの各画素の輝度情報のために、4ビットだけのフィールドしか含まない。ゆえに、極端な場合のブロックの元の数値域を符号化することが不可能である可能性がある。ある実施形態において、符号器は、画像ブロックデータが極端に暗い値および極端に明るい値を含む場合に対処するようにするための既定の設定を含む。選択するアプローチに応じて、符号器は、「expBias」値を調整することによって、暗値をクリッピングするか、明値がクリッピングされるように指数値をクランプすることができる。
【００４０】
バイアス分が差し引かれた画素の輝度を符号化するために、各輝度値に関する指数フィールドの最下位ビットおよび／または仮数フィールドの最上位ビットの、合わせて4ビットが、各画素の輝度フィールドに保存される。通常の浮動小数点ビット構成において、ビットは元の値の近値であることから、符号化および復号の簡素化が有利に可能になることに留意されたい。
【００４１】
画像ブロックの輝度値の符号化に関する上記処理について、以下の例においてさらに解説していく。本例において、簡易化および明確化のため、画素が4つだけの場合の符号化について説明する。表2は、その4つの画素（P1〜P4）の色成分に関する16ビットの浮動小数点表現を示す。
【表２】
2009524315.tif 000004
【００４２】
画素P4は最小の指数（00010）を有する。従って、この最小指数は、圧縮ブロックデータのテーブルの「expBias」フィールドに保存され、次に、残りの指数から減算される。表3は、この減算によりもたらされる浮動小数点指数を示す。
【表３】
2009524315.tif 000005
【００４３】
ここで、画素P1は、最大値を有し、そのMSBにおいて4つの不要なゼロビットを有する。従って、値3（4-1=3）が、圧縮ブロックデータのテーブルの「bitShift」フィールドに保存され、4つの不要なゼロビットが、各画素のMSBから削除される。表4は、この除去による結果を示す。
【表４】
2009524315.tif 000006
【００４４】
各画素について、残りのビットのうち最上位（Most Significant）の4つのビットが、輝度値として、圧縮ブロックデータのテーブルにそれぞれ保存される。本例において、画素毎に、2ビットが指数ビットからもたらされ、また、2ビットが仮数ビットからもたらされる。従って、画素P1の輝度ビット値は（1,1,1,0）であり、残りの画素の輝度ビット値は、P2（0,1,0,0）、P3（0,1,0,0）、およびP4（0,0,0,1）である。画像ブロックデータに応じて、不要なゼロビットの数（「bitShift」）は、変動してもよく、場合によっては、4ビットの全てが指数ビットまたは仮数ビットのそれぞれからもたらされてもよいことを、当業者は理解する。
【００４５】
結果として、上記手順は、画像データのダイナミクスを効果的に符号化するために実行され、精度がある程度低下しても、HDR画像の高ダイナミックレンジが保持される。
【００４６】
圧縮効率を上げることは、主に、色の符号化によって達成される。色を符号化するために、まず、各画像ブロックIBN（4×4の画素ブロック）は、2×2画素のサブブロックに分割される。従って、各4×4画像ブロックIBNは、2×2画素の4つのサブブロックを含む。次に、各2×2画素のサブブロックの平均色を決定する。平均色を決定する方法は重要ではなく、平均は、例えば、RGB値の単純平均、画素の輝度による加重平均、または符号器がそのサブブロックに最適であると考えるその他のいかなるRGB色であることが可能である。
【００４７】
そのR、G、およびB成分の和で割ることによって各平均色を正規化し、正規化された色座標r'、g'、およびb'が得られる。正規化された座標の和は1になるため、正規化された色座標r'、g'、およびb'のうちの1つは冗長である。従って、例えば、g'座標は省略されてもよく、r'およびb'座標のみが、2×2のサブブロック毎に、7ビットの固定小数点として符号化される。これらの7ビットの固定小数点は、圧縮ブロックデータのテーブルにおける特定フィールドに保存される。このフィールドは、本明細書において「colorR」フィールドおよび「colorB」フィールドと呼ばれる。
【００４８】
従って、画素毎に別々に色値を有する代わりに、2×2画素ブロックにおける色値の平均化をすることと、色座標を正規化することによって、符号化において1つの色座標を無視できるようにすることと、残りの色座標を7ビット固定小数点としてのみ符号化することと、の3つのステップによる色符号化において、有効な圧縮効率が求められる。全符号化スキームの結果、4×4画素の画像ブロックを有する画像データは、128ビットを含み、かつ8bppのビットレートをもたらす、圧縮ブロックデータとなる。128ビットは、圧縮された画像ブロック毎に、表5に示されるように割り当てられる。
【表５】
2009524315.tif 000007
【００４９】
当然ながら、上述のビット割り当ては、適切な符号化スキームに関するほんの一例であり、当業者は、代替のビット割り当てが使用可能であることを理解する。例えば、より正確な輝度値を有することが必要であると考える場合、色ビットを減少ささえて画素毎の輝度ビットの数を増加してもよい。従って、例えば、画素毎に5つの輝度ビットと、2×2画素のサブブロック毎の両方の色座標に関する5つの色ビットとを有する代替のビット割り当てを使用してもよい。表6は、本代替スキームにおける128ビットの割り当てを示す。
【表６】
2009524315.tif 000008
【００５０】
次に、符号化された画像ブロックは、符号化画像合成器306に挿入され、ここで、符号化されたブロックをデータファイルに配置する。このデータファイルを、ヘッダ変換器302からの修正ヘッダと連結させて、符号化された画像データファイルを生成する。ヘッダ変換器302によって生成された修正ヘッダは、ファイルの種類、元画像の画素毎のビット数、元画像へのアドレス指定、その他種々の符号化パラメータに関する情報のだけでなく、その元画像の大きさを示す幅および高さ情報も含む。修正ヘッダと、符号化された画像ブロックとの両方によって、元画像を表す符号化画像データを形成するが、高度に圧縮された形式で形成する。
【００５１】
上述の符号化スキームが、開示された4×4および2×2ブロックとは異なる、その他の画像ブロックサイズおよびサブブロックサイズで実行可能であることを、当業者は理解する。より大きいサイズのブロックを使用する場合、さらに優れた圧縮効率を達成することができるが、当然ながら、これにより視覚的忠実性が低下する。画質が低下しないようにしたい場合、または画像がほとんど低下しないようにしたい場合は、2×2画素のサブブロックを有する4×4画素の画像ブロックサイズを使用することによって、良い結果を達成することができる。
【００５２】
実施形態により提供される利点は、当業者に明らかである。主な利点は、HDRテクスチャを処理する際に、記憶容量および所要のバス帯域幅の両観点において、大幅なメモリ節約が達成されることである。例えば、16ビットのOpenEXR画像形式を使用する非圧縮HDRテクスチャは、48bppの実用的なビットレートを有する。上記手順により、ビットレートを8bpp変換することによって、16ビットOpenEXR非圧縮HDRテクスチャと比べて、約85%のメモリ節約をもたらすことが可能になる。さらなる利点は、復号の際の標準画像の画質がほとんど低下しないこと、あるいは全く低下しないことである。またさらなる利点は、既存のハードウェア実装に少しの修正を加えるだけで、実施形態が実装可能であることである。
【００５３】
実施形態に従う画像復号システム204は、図4のブロック図にさらに示される。画像復号システム204は、符号化画像分解ユニット400、ヘッダ変換器402、1つ以上のブロック復号器404、および画像合成器406を備える。符号化された画像データは、復号システム204に入力される。符号化画像分解器400は、符号化された画像データを、そのヘッダと、符号化された画像ブロックIBNとに分解または分割する。修正ヘッダは、ヘッダ変換器402に転送される。個々の符号化された画像ブロックIBNは、解凍のために、1つ以上のブロック復号器404に転送される。同時に、ヘッダ変換器402は、修正ヘッダを出力ヘッダに変換する。
【００５４】
ブロック復号器404は、まず、2×2のサブブロック毎の、正規化された色座標（r', g', b'）を復号することによって、解凍を開始する。この処理において、「colorR」および「colorB」フィールドのそれぞれの値を、g' = 1 - (r' + b')である情報と共に使用することによって、欠落している色成分を、復号された2つの色成分から導くことができる。次に、ブロック復号器404は、「bitShift」フィールドの値と、指数ビットおよび／または仮数ビットを含む各輝度フィールドからの4ビットを抽出することによって、画素毎の輝度値を復号する。次に、「bitShift」フィールドの値が示すゼロビットの数に1を加算した数（符号ビットはゼロ）であるゼロビットの数は、各輝度フィールドのその4ビットに、最大有効ビットとして含まれる。その後、16ビット表示を生成するために、欠落している最小有効ビットがゼロとして設定される。その後、「expBias」フィールドに保存された最小輝度指数が、各指数に加算される。これにより、各画素の元のグレースケール輝度に極めて近似となる。
【００５５】
各画素の輝度値に関する復号処理は、上述の符号化例を参照することによって示される。本例において、画素の符号化された輝度ビット値は、P1（1,1,1,0）、P2（0,1,0,0）、P3（0,1,0,0）、およびP4（0,0,0,1）であった。「bitShift」フィールドの値は3であったので、3+1の4つのゼロビットが各輝度ビット値に、最大有効ビットとして含まれ、欠落している最小有効ビットは、ゼロに設定される。表7は、本手順による結果を示す。
【表７】
2009524315.tif 000009
【００５６】
さらに、本例において、「expBias」フィールドの値は00010であったため、その値が各指数フィールドに加算される。表8は、その加算による結果を示す。
【表８】
2009524315.tif 000010
【００５７】
ここで、表8における各画素の復号された輝度値の結果を、表2における各画素の色成分に関する元の16ビットの浮動小数点表現と比較することによって、両方の表の指数フィールドが等しいこと、ならびに仮数フィールドのMBSが等しいことが分かる。従って、浮動小数点演算の性質により、若干の詳細が損失していても、各画素の復号された輝度値の大きさが極めて正確になるという結論に達することができる。
【００５８】
各画素のグレースケール輝度値が復号されると、画素が属するサブブロックの（r', g', b'）色座標で、各画素のグレースケール輝度を変調する。本手順の結果、復号された画像ブロックIBNに対応するRGBテクスチャサンプルは、入手される。
【００５９】
次に、復号された画像ブロックIBNは、画像合成器406に挿入され、ここで、このブロックをファイルに再配置する。さらに、画像合成器406は、ヘッダ変換器402から、変換されたヘッダを受信し、そのヘッダを復号された画像ブロックと共に配置することによって、元のHDR画像データを表す出力データを生成する。
【００６０】
従って、復号処理は、極めて単純な方法で実装可能であり、これは、復号に必要なハードウェア論理の簡易化を意味する。有利には、グラフィックスのサブシステムのテクスチャハードウェアは、浮動小数点テクスチャから画像データを直接読み込んだかのように、画像データを解釈する。上述の画像データ圧縮処理により、元のHDR画像からある程度詳細が損失するが、これは、あらゆる非可逆圧縮スキームにおいて発生することを、当業者は容易に理解する。さらに、HDRデータにおいて使用する浮動小数点演算の性質により、一般的な用途において、大きい値は、通常、小さい詳細を支配する。その結果、バイアス調整ダイナミクスおよび平均色符号化による詳細損失は必ずしも非常に明白であるとは限らない。
【００６１】
テクスチャキャッシュ内にある場合のブロックか、ブロックデータの一部のみを画素毎にアクセスする必要がある場合の1つの画素のいずれかに、復号を実行してもよいことに留意されたい。従って、ある実施形態によると、画像復号システム204は、画像内のいかなる所望の画素または画像ブロックにも、ランダムアクセスを提供するサブシステムをさらに備える。図5に示すランダムアクセスサブシステムは、図4の画像復号システムにおいて実装され、ブロックアドレス計算モジュール408と、1つ以上のブロック復号器404に接続されるブロック検索モジュール410とを備える。ブロックアドレス計算モジュール408は、符号化された画像データのヘッダ情報を、符号化画像分解器400から受信する。ブロック検索モジュール410は、符号化された画像データの復号された画像ブロック部分を受信する。
【００６２】
画像内の1つ以上の画素へのランダムアクセスの処理は、一般的に、復号される特定の画素を識別することによって開始する。画像復号システムが符号化された画像データを受信すると、符号化された画像データの修正ヘッダがブロックアドレス計算モジュール408に転送され、符号化された画像データの符号化された画像ブロック部分がブロック検索モジュール410に転送される。ブロックアドレス計算モジュール408は、所望の画像を含む符号化された画像ブロック部分のアドレス（つまり、画素座標）を推定し、ブロック検索モジュール410は、そのアドレスに基づき、所望の画素を含む符号化された画像ブロックを識別する。次に、符号化された画像ブロックのうちの識別されたものだけが、復号のためにブロック復号器404に転送される。上記と同様に、ブロック復号器404は、2×2のサブブロック毎に正規化された色座標（r'、g'、b'）を復号し、その後、画素毎の輝度値は、「bitShift」フィールドの値と、各輝度フィールドからの4ビットを抽出することによって復号される。ゼロビットの所要数は、各輝度フィールドのその4ビットに最大有効ビットとして含まれ、「expBias」フィールドに保存された最小輝度指数は、各指数に加算される。最後に、各画素のグレースケール輝度は、対応するサブブロック（r'、g'、b'）色座標で変調されることによって、高ダイナミックレンジを有するRGBテクスチャサンプルが、画像ブロックIBN毎に達成される。次に、画素値に従い所望の画素の色を選択し、画像復号システムから所望の画素を出力する。
【００６３】
ある実施形態によると、画像復号システムは、バッファメモリ（つまり、テクスチャキャッシュ）を備え、符号化された画像ブロックのうち最も高い頻度で使用されるものを、一時的に保存可能であり、保存された画像ブロックの所望の画素にだけ、ランダムアクセス処理を適用することができる。すなわち、符号化された画像データ全体を、分解ユニット400に挿入する必要がなく、符号化された所望の画像ブロックだけを、テクスチャキャッシュから取り出すことができる。
【００６４】
従って、いかなる画像ブロックのいかなる画素も、ランダムにアクセス可能であり、画像の必要な部分だけを復号のために有利に選択することができる。また、ランダムアクセスによって、いかなる所望の順番でも画像の異なる部分を復号することが可能になり、これは、例えば、３次元テクスチャマッピングにおいて好ましく、この場合、テクスチャのいくつかの部分だけが必要とされてもよく、また、これらの部分は、不連続な順番においてさらに必要とされてもよい。
【００６５】
実施形態に従うステップは、プログラムコマンドで主に実装可能であり、このプログラムコマンドは、符号化および／または復号装置として動作するデータ処理装置の処理ユニットにおいて実行される。従って、上述の方法を実行する上記手段は、少なくとも復号器におけるハードウェアソルーションがより好ましいが、コンピュータソフトウェアコードとして実装可能である。コンピュータソフトウェアは、PCのハードディスクまたはCD-ROMディスクなどのいかなるメモリ手段にも保存されてもよく、そこから、データ処理装置のメモリにロード可能である。また、コンピュータソフトウェアは、ネットワークを介してロード可能であり、例えば、TCP/IPプロトコルスタックを使用してロード可能である。また、発明的手段を実装するために、ハードウェアソルーションとソフトウェアソルーションとの組み合わせを使用することも可能である。
【００６６】
本発明は、上に提示された実施形態だけに限定されず、添付の請求項の範囲内で修正可能であることは明らかである。
【図面の簡単な説明】
【００６７】
【図１】本発明のある実施形態に従う符号化／復号装置を、簡易ブロック図において示す。
【図２】ある実施形態に従う画像処理システムを、簡易ブロック図において示す。
【図３】ある実施形態に従う画像符号化システムを、簡易ブロック図において示す。
【図４】ある実施形態に従う画像復号システムを、簡易ブロック図において示す。
【図５】ある実施形態に従う画像復号器のランダムアクセスサブシステムを、簡易ブロック図において示す。
【図１】
2009524315.tif 000011
【図２】
2009524315.tif 000012
【図３】
2009524315.tif 000013
【図４】
2009524315.tif 000014
【図５】
2009524315.tif 000015
【国際調査報告】
2009524315.tif 000016
2009524315.tif 000017
2009524315.tif 000018
2009524315.tif 000019