(57)【要約】  画素ブロック（３００）は、ブロック（３００）中の画素（３１０〜３１８）毎に色成分予測を提供することにより圧縮される。２つの隣接画素（３１２、３１６）の色成分間の差分が計算され、閾値と比較される。差分が閾値より小さい場合、予測はそれらの２つの隣接画素（３１２、３１６）の色成分の第１の線形合成に基づいて計算される。しかし、差分が閾値を超える場合、隣接画素（３１２、３１６）の色成分の第２の線形合成又は第３の線形合成が予測として採用される。ガイドビット（４７０）は、選択された線形合成と関連付けられる。予測誤差は、画素（３１８）の色成分及び提供された予測に基づいて計算される。圧縮ブロック（４００）は、予測誤差の符号化表現（４８０）及び任意のガイドビット（４７０）を含む。
2011514024.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数の色成分を有する色を含む複数の画素のブロックを圧縮する方法であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素の第１の色成分の第１の予測を提供するステップであって、
ａ）前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の間の差分の大きさが閾値より小さい場合に、非ゼロ重みを採用する前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の第１の重み付き合成に基づいて、前記第１の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成、及び、前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうち、一方に基づくように前記第１の予測を選択し、
ｃ）前記差分の大きさが前記閾値より小さくない場合に前記第２の重み付き合成及び前記第３の重み付き合成のうちの前記選択した一方と関連付けられるガイドビットを提供する
ことにより提供するステップと、
−前記少なくとも１つの画素の前記第１の色成分及び前記第１の予測に基づいて第１の予測誤差を計算するステップと、
−前記第１の予測誤差の第１の符号化表現を判定するステップと
を備え、
前記圧縮ブロック表現は、前記第１の符号化表現、及び、前記オプションのガイドビットを含む、方法。
【請求項２】
前記計算ステップａ）は、前記第１の隣接画素の前記第１の色成分と前記第２の隣接画素の前記第１の色成分との差分の大きさが前記閾値より小さい場合に、
前記第１の隣接画素の前記第１の色成分と前記第２の隣接画素の前記第１の色成分との平均に基づいて、前記第１の予測を計算するステップを含む、請求項１に記載の方法。
【請求項３】
前記選択ステップｂ）は、
−前記第２の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第１の差分を計算するステップと、
−前記第３の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第２の差分を計算するステップと、
−前記第１の差分及び前記第２の差分に基づいて前記第１の予測を選択するステップと
を含む、請求項１又は２記載の方法。
【請求項４】
−wが重みであり、R(i-1)jが前記第１の隣接画素の前記第１の色成分であり、Ri(j-1)が前記第２の隣接画素の前記第１の色成分である場合に、w × R(i-1)j + (1 - w) × Ri(j-1)に基づいて前記第２の重み付き合成を計算するステップと、
−(1 - w) × R(i-1)j + w × Ri(j-1)に基づいて前記第３の重み付き合成を計算するステップと
を更に含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
−前記ブロック中の選択した画素の第１の色成分になるように開始成分値を選択するステップであって、前記圧縮ブロック表現が前記開始成分値の表現を含む、ステップと、
−前記選択した画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素毎に、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を選択するステップと
を更に含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記ブロックの識別された画素の第１の色成分となる再開成分値を選択するステップを更に含み、
前記圧縮ブロック表現が、前記再開成分値の表現と前記ブロックの識別された画素の画素位置の表現とを含む、請求項５に記載の方法。
【請求項７】
−前記開始成分値又は前記再開成分値を予測可能なものとして、前記ブロックの前記画素を分類するステップと、
−前記第１の隣接画素及び前記第２の隣接画素に対して前記少なくとも１つの画素と同一の分類が行なわれるかを調査するステップと、
−前記第１の隣接画素及び前記第２の隣接画素のいずれに対しても前記少なくとも１つの画素と同一の分類が行なわれない場合、前記ブロックの前記画素を再順序付けするステップと
を更に含み、
前記圧縮ブロック表現が任意の画素再順序付けを表す回転ビットを含む、請求項６記載の方法。
【請求項８】
前記分類するステップは、
−前記ブロックの画素の第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始色成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さい場合に前記開始成分値の予測として前記画素を分類するステップと、
−前記ブロックの前記画素の前記第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始色成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さくない場合に前記開始成分値の予測として前記画素を分類するステップと
を含む、請求項７記載の方法。
【請求項９】
−前記ブロックの画素毎に、前記画素の第２の色成分と前記画素の前記第１の色成分との間の差分を計算するステップと、
−前記少なくとも１つの画素の第２の色成分の第２の予測を提供するステップであって、
ａ）前記差分の大きさが前記閾値より小さい場合に前記第１の隣接画素の第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて前記第２の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記ガイドビットに基づいて前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうちの一方に基づくように前記第２の予測を選択する
ことにより提供するステップと、
−前記少なくとも１つの画素の前記第２の色成分及び前記第１の色成分と前記第２の予測とに基づいて第２の予測誤差を計算するステップと、
−前記圧縮ブロック表現が前記第２の符号化表現を含む場合に前記第２の予測誤差の第２の符号化表現を判定するステップと
を更に含む、請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
圧縮画素ブロックを伸張する方法であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれる第１の符号化誤差表現に基づいて第１の予測誤差を判定するステップと、
−前記少なくとも１つの画素の第１の色成分の第１の予測を提供するステップであって、
ａ）前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の間の差分の大きさが閾値より小さい場合に、非ゼロ重みを採用する前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の第１の重み付き合成に基づいて、前記第１の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれるガイドビットに基づいて、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成及び前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうち、一方に基づくように前記第１の予測を選択する
ことにより提供するステップと、
−前記第１の予測誤差及び前記第１の予測に基づいて前記少なくとも１つの画素の前記第１の色成分の表現を計算するステップと
を備える方法。
【請求項１１】
−前記圧縮画素ブロックに含まれる開始成分値の表現に基づいて、前記ブロックの開始画素の第１の色成分を提供するステップと、
−前記開始画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分になるように前記第１の予測を提供するステップと
を更に含む、請求項１０に記載の方法。
【請求項１２】
前記圧縮画素ブロックの再開画素位置の表現に基づいて、前記ブロックの再開画素を識別するステップと、
−前記圧縮画素ブロックに含まれる再開成分値の表現に基づいて、前記再開画素の第１の色成分を提供するステップと
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記圧縮画素ブロックに含まれる回転ビットに基づいて、前記ブロックの前記画素を再順序付けするステップを更に含む、請求項１０乃至１２のいずれか１項に記載の方法。
【請求項１４】
−前記少なくとも１つの画素に対して、前記圧縮画素ブロックに含まれる第２の符号化表現に基づいて第２の予測誤差を判定するステップと、
−前記少なくとも１つの画素の第２の色成分の第２の予測を提供するステップであって、
ａ）前記差分の大きさが前記閾値より小さい場合に前記第１の隣接画素の第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて前記第２の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記ガイドビットに基づいて前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうちの一方に基づくように前記第２の予測を選択する
ことにより提供するステップと、
−前記第２の予測誤差及び前記第２の予測に基づいて前記少なくとも１つの画素の前記第２の色成分の表現を計算するステップと
を更に含む、請求項１０乃至１３のいずれか１項に記載の方法。
【請求項１５】
各々が複数の色成分を有する色を含む複数の画素のブロックを圧縮するブロック圧縮器であって、
−前記ブロックの少なくとも１つの画素に対して前記少なくとも１つの画素の第１の色成分の第１の予測を提供するように構成された予測提供器であって、
−前記ブロックの第１の隣接画素の第１の色成分と前記ブロックの第２の隣接画素の第１の色成分との間の差分を計算する差分計算器と、
−前記差分の大きさが閾値より小さい場合に動作可能であり、非ゼロ重みを採用する前記隣接画素の前記第１の色成分の第１の重み付き合成に基づいて前記第１の予測を計算するように構成された予測計算器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成及び前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうちの一方に基づくように前記第１の予測を選択するように構成された予測選択器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記第２の選択器により選択された、前記第２の重み付き合成及び前記第３の重み付き合成の重み付き合成と関連付けられるガイドビットを提供するように構成されたガイドビット提供器と
を備える予測提供器と、
−前記少なくとも１つの画素の前記第１の色成分及び前記第１の予測に基づいて第１の予測誤差を計算する誤差計算器と、
−前記第１の予測誤差の第１の符号化表現を判定する表現判定器と
を備え、
前記圧縮ブロック表現が前記第１の符号化表現及び前記オプションのガイドビットを含む、ブロック圧縮器。
【請求項１６】
前記差分計算器は、
ｉ）前記第２の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第１の差分を計算し、
ｉｉ）前記第３の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第２の差分を計算するように構成され、
前記予測選択器は、前記第１の差分及び前記第２の差分に基づいて前記第１の予測を選択するように構成された、請求項１５に記載の圧縮器。
【請求項１７】
前記ブロックの選択された画素の第１の色成分となる開始成分値を選択する開始選択器を更に備え、
前記圧縮ブロック表現は前記開始成分値の表現を含み、
前記予測提供器は、前記選択された画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を提供するように構成された、
請求項１５又は１６に記載の圧縮器。
【請求項１８】
前記ブロックの識別された画素の第１の色成分となる再開成分値を選択する再開選択器を更に備え、
前記圧縮ブロック表現は、前記再開値の表現及び前記ブロックの前記識別された画素の画素位置の表現を含む、請求項１７記載の圧縮器。
【請求項１９】
−前記開始成分値又は前記再開成分値を予測可能なものとして、前記ブロックの前記画素を分類する画素分類器と、
−前記第１の隣接画素及び前記第２の隣接画素に対して前記少なくとも１つの画素と同一の分類が行なわれるかを調査する画素調査器と、
−前記第１の隣接画素及び前記第２の隣接画素のいずれに対しても前記少なくとも１つの画素と同一の分類が行なわれない場合、前記ブロックの前記画素を再順序付けする画素再順序付けユニットと
を更に備え、
前記圧縮ブロック表現が任意の画素再順序付けを表す回転ビットを含む、請求項１８記載の圧縮器。
【請求項２０】
前記画素分類器が、
ｉ）前記画素の第１の色成分と前記開始成分値との間の差分の大きさが、前記画素の前記第１の色成分と前記開始成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さい場合、前記開始成分値を予測可能なものとして前記ブロックの画素を分類し、
ｉｉ）前記画素の前記第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始成分値と最も異なる前記ブロックの前記第１の色成分との間の差分の大きさより小さくない場合、前記開始成分値を予測可能なものとして前記ブロックの前記画素を分類する、
ように構成された請求項１９記載の圧縮器。
【請求項２１】
前記ブロックの画素毎に前記画素の第２の色成分と前記画素の前記第１の色成分との間の差分を計算する成分差分計算器を更に備え、
前記予測計算器は、前記差分の前記大きさが閾値より小さい場合に動作可能であり、前記差分が前記閾値より小さい場合に前記第１の隣接画素の第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて前記少なくとも１つの画素の第２の色成分の第２の予測を計算するように構成され、
前記予測選択器は、前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記ガイドビットに基づいて前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうちの一方に基づくように前記第２の予測を選択するように構成され、
前記誤差計算器は、前記少なくとも１つの画素の前記第２の色成分及び前記第１の色成分と前記第２の予測との間の差分に基づいて第２の予測誤差を計算するように構成され、
前記表現判定器は、前記圧縮ブロック表現が前記第２の符号化表現を含む場合に前記第２の予測誤差の第２の符号化表現を判定するように構成された
請求項１５乃至２０のいずれか１項に記載の圧縮器。
【請求項２２】
圧縮画素ブロックを伸張するブロック伸張器であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれる第１の符号化誤差表現に基づいて第１の予測誤差を判定する誤差判定器と、
−前記少なくとも１つの画素の第１の色成分の第１の予測を提供する予測提供器であって、
−前記ブロックの第１の隣接画素の第１の色成分と前記ブロックの第２の隣接画素の第１の色成分との間の差分を計算する差分計算器と、
−前記差分の大きさが閾値より小さい場合に動作可能であり、非ゼロ重みを採用する前記隣接画素の前記第１の色成分の第１の重み付き合成に基づいて前記第１の予測を計算するように構成された予測計算器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれるガイドビットに基づいて前記隣接画素の前記第１の色成分の第２の異なる重み付き合成及び前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうちの一方に基づくように前記第１の予測を選択するように構成された予測選択器と
を含む予測提供器と、
−前記第１の予測誤差及び前記第１の予測に基づいて前記少なくとも１つの画素の前記第１の色成分の表現を計算する表現計算器と
を備えるブロック伸張器。
【請求項２３】
前記圧縮画素ブロックに含まれる開始成分値の表現に基づいて前記ブロックの開始画素の第１の色成分を提供する開始提供器を更に備え、
前記予測提供器は、前記開始画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を提供する
ように構成された請求項２２記載の伸張器。
【請求項２４】
−前記圧縮画素ブロックの再開画素位置の表現に基づいて前記ブロックの再開画素を識別する再開識別器と、
−前記圧縮画素ブロックに含まれる再開成分値の表現に基づいて前記再開画素の第１の色成分を提供する再開提供器と
を更に備える請求項２３に記載の伸張器。
【請求項２５】
前記圧縮画素ブロックに含まれる回転ビットに基づいて前記ブロックの前記画素を再順序付けする画素再順序付けユニットを更に備える、請求項２２乃至２４のいずれか１項に記載の伸張器。
【請求項２６】
前記誤差判定器は、前記少なくとも１つの画素に対して、前記圧縮画素ブロックに含まれる第２の符号化表現に基づいて第２の予測誤差を判定するように構成され、
前記予測計算器は、前記差分の前記大きさが前記閾値より小さい場合に動作可能であり、前記第１の隣接画素の第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて前記第２の予測を計算するように構成され、
前記予測選択器は、前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記ガイドビットに基づいて前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうちの一方に基づくように前記第２の予測を選択するように構成され、
前記表現計算器は、前記第２の予測誤差及び前記第２の予測に基づいて前記少なくとも１つの画素の前記第２の色成分の表現を計算するように構成された
請求項２２乃至２５のいずれか１項に記載の伸張器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に画像処理に関し、特に画像ブロックの予測に基づく圧縮及び伸張に関する。
【背景技術】
【０００２】
グラフィックス処理装置（ＧＰＵ）の性能を向上するために、メモリ帯域幅減少技術が採用される。そのような帯域幅に対する要求を軽減する方法の１つは、バッファ圧縮と呼ばれる処理を実行することである。一般にグラフィックスシステムは、２つのバッファ、すなわち画素の色が描かれるカラーバッファ及び各画素の奥行きが格納されるデプスバッファを使用する。レンダリング中、これらのバッファに対して読み出し及び書き込みが行なわれ、多くの場合、同一画素が双方のバッファに対して数回アクセスされる。この読み出し及び書き込みアクセスは、エネルギーに関して高価であるため、特に移動装置等の電源が制限されるユーザ端末に対しては最小限に維持されるべきである。
【０００３】
バッファ圧縮は、バッファデータのブロックが圧縮されてメモリに格納されることを示す。伸張及び圧縮が特定の画素及びブロックに対して数回行なわれる可能性があるため、圧縮は可逆的、すなわち非破壊的であることが重要である。
【０００４】
非特許文献１及び非特許文献２において、従来のバッファ圧縮及びデプスバッファ圧縮の適切な概要が与えられる。
【０００５】
カラーバッファデータは、描かれた三角形と背景との間の鮮明なエッジを含む可能性があるため、デプスバッファデータと比較して重要な問題を引き起こす。従来のカラーバッファデータ技術では、そのような不連続エッジを横切って予測することにより予測に基づくカラーバッファ圧縮を行なう場合に問題が起こるだろう。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Rasmusson、Hasselgren及びAkenine-Mollerの「Exact and Error-bounded Approximate Color Buffer Compression and Decompression」Graphics Hardware、２００７年、４１〜４８ページ
【非特許文献２】Haselgren及びAkenine-Mollerの「Efficient Depth Buffer Compression」Graphics Hardware、２００６年、１０３〜１１０ページ
【発明の概要】
【０００７】
本発明は、従来の構成の上記欠点及び他の欠点を克服する。
【０００８】
本発明の一般的な目的は、効率的なカラーバッファ圧縮及び伸張を提供することである。
【０００９】
この目的及び他の目的は、添付の請求の範囲により規定される本発明により満足される。
【００１０】
簡単に説明すると、本発明は、関連する色を有する画素のブロックの圧縮及び伸張を含む。圧縮は、ブロック中の少なくとも１つの画素の色成分の予測を提供することを含む。この予測は、好ましくは現在の画素と同一のブロック中の行又は列に位置付けられるブロック中の２つの隣接画素の色成分の間の差分を計算することにより提供される。この差分の大きさが所定の閾値を超える場合、色成分予測は、２つの隣接画素の色成分の第１の重み付き合成に基づいて、好ましくは２つの色成分の平均に基づいて計算される。しかし、差分の大きさが閾値より小さくない場合、２つの隣接画素の色成分の第２の重み付き合成と第３の重み付き合成との間で選択される。更に、選択された重み付き合成と関連付けられるガイドビット又は予測方向が画素に割り当てられる。第１の重み付き合成は非ゼロ重みを使用し、その一方で、第２の合成及び第３の合成のうちの少なくとも一方はゼロに等しい２つの重みのうちの一方を有することができる。更に、全ての３つの重み付き合成は２つの色成分に対して異なる重みを使用する。
【００１１】
予測誤差は、色成分及び提供された色成分予測に基づいて画素に対して計算される。生成された圧縮ブロックは、現在の画素に対して判定される場合、この計算された予測誤差＋ガイドビットの符号化表現を含む。
【００１２】
圧縮ブロックの伸張は、復号化する画素に対する予測誤差の判定を含む。この予測誤差は、画素と関連付けられ且つ圧縮ブロックに含まれる符号化誤差表現に基づいて判定される。その後、画素の色成分の予測が提供される。圧縮と同様に、２つの先行復号化隣接画素の色成分間の差分が判定される。差分の大きさが閾値より小さい場合、色成分予測は、２つの隣接画素の色成分の第１の重み付き合成に基づいて計算される。しかし、差分の大きさが閾値を超える場合、画素に割り当てられ且つ圧縮ブロックに含まれるガイドビットは予測を提供する際に採用される。ガイドビットは、２つの隣接画素の色成分の第２の重み付き合成及び第３の重み付き合成のうち現在の画素に対して予測として選択する重み付き合成を示す。
【００１３】
画素の色成分は、判定された誤差予測及び提供された色成分予測から取得される。
【００１４】
更に本発明は、圧縮器及び伸張器に関する。
【００１５】
本発明は、種々の画素位置の間の不自然に鮮明な色の不連続性を有する画素ブロックに対処可能である。従って、本発明はそのような不連続エッジを横切る予測を行なうことを回避する。
【００１６】
本発明により提供される他の利点は、本発明の実施形態の以下の説明を読むことにより理解されるだろう。
【図面の簡単な説明】
【００１７】
本発明は、添付の図面と共に以下の説明を参照することにより、本発明の更なる目的及び利点と共に最もよく理解されるだろう。
【図１】本発明に係るブロック圧縮方法の一実施形態を示すフローチャートである。
【図２】本発明において有用な画素ブロックの一例を示す図である。
【図３】浮動小数点数の表現としての整数の使用を概略的に示す図である。
【図４】図１、図１０、図１２及び図１５の予測計算ステップの一実施形態を示すフローチャートである。
【図５】図１の圧縮方法の追加のステップを示すフローチャートである。
【図６】図５の圧縮方法の追加のステップを示すフローチャートである。
【図７】図６の再開値選択ステップの一実施形態を更に詳細に示すフローチャートである。
【図８Ａ】再開画素を有する画素ブロックを示す図である。
【図８Ｂ】画素位置のミラー処理後の図８Ａの画素ブロックを示す図である。
【図８Ｃ】画素位置の回転後の図８Ａの画素ブロックを示す図である。
【図９】図１の判定ステップの一実施形態を更に詳細に示すフローチャートである。
【図１０】図９の圧縮方法の追加のステップを示すフローチャートである。
【図１１】画素ブロックの圧縮表現の一例を示す図である。
【図１２】本発明に係るブロック伸張方法の一実施形態を示すフローチャートである。
【図１３】図１２の伸張方法の追加のステップを示すフローチャートである。
【図１４】図１３の伸張方法の追加のステップを示すフローチャートである。
【図１５】図１２の伸張方法の追加のステップを示すフローチャートである。
【図１６】本発明の教示が適用されるバッファアーキテクチャを示す概略ブロック図である。
【図１７】本発明の一実施形態に係る圧縮器を示す概略ブロック図である。
【図１８】本発明の一実施形態に係る図１７の表現判定器を示す概略ブロック図である。
【図１９】本発明の別の実施形態に係る圧縮器を示す概略ブロック図である。
【図２０】本発明の一実施形態に係る伸張器を示す概略ブロック図である。
【図２１】本発明の一実施形態に係る図２０の誤差判定器を示す概略ブロック図である。
【図２２】本発明の別の実施形態に係る伸張器を示す概略ブロック図である。
【図２３】本発明の圧縮性能と従来の圧縮方式との比較を示す図である。
【発明を実施するための形態】
【００１８】
図中、同一の図中符号が対応する要素又は類似する要素に対して使用される。
【００１９】
本発明は、一般に、画素パラメータ値の可逆圧縮及び伸張に関し、特に、カラーバッファ圧縮及び伸張に適切な圧縮及び伸張に関する。
【００２０】
本発明は、ゲーム、３次元（３Ｄ）地図及びシーン、例えば動画メッセージである３Ｄメッセージ、スクリーンセーバ、マンマシンインタフェース（ＭＭＩ）等の３Ｄ図形と共に使用するのに最適であるが、それらに限定されない。従って、本発明は、１次元（１Ｄ）、２次元（２Ｄ）又は３Ｄ画像等の他の種類の画像又は図形を符号化するために採用されてもよい。
【００２１】
本発明において、圧縮及び伸張は、一般に画素のタイル又はブロックの形式で複数の画素を一括処理する。本発明の好適な一実施形態において、画素ブロックは、Ｍ×Ｎ画素のサイズを有する。ここで、Ｍ、Ｎは整数であるが、Ｍ及びＮの双方が同時に１にならないという条件付きである。好ましくは、M=2m且つN=2nである。ｍ、ｎはゼロ又は整数であるが、ｍ及びｎが同時にゼロにならないという条件付きである。一般的な一実現例において、M=Nであり、そのような好ましいブロックの実施形態は、４×４画素、８×８画素又は１６×１６画素である。
【００２２】
画素又は「画像要素」という表現は、ブロック中の要素又はブロックの符号化表現を示す。このブロックは、画像、テクスチャ又はバッファの一部分に対応する。従って、本発明によると、画像要素は、（１Ｄ、２Ｄ、３Ｄ）テクスチャのテクセル（テクスチャ要素）、（１Ｄ又は２Ｄ）画像の画素又は３Ｄ画像のボクセル（体素）であってもよい。一般に、画素は関連する画素パラメータ値又は特徴により特徴付けられる。本発明の好適な一実施形態において、画素パラメータ値は色値及びより好ましくは複数成分から成る色値である。従って、画素色は複数の色成分、すなわち少なくとも２つの色成分から構成される。そのような色の一般的な例は、色空間において３つの色成分を有するＲＧＢ（赤、緑、青）色である。ＹＵＶ、ＹＣｏＣｇ又はＹＣｒＣｂ等の他の色空間に存在する他の複数成分から成る色も従来技術において周知であり、本発明に従って使用可能である。そのような場合、色成分Ｙ、Ｃｒ及びＣｂの各々は、本明細書で説明される赤（第１の）色成分として符号化及び復号化されるのが好ましい。しかし、これらの他の色空間の場合、ＲＧＢ色とＹＵＶ／ＹＣｒＣｂ／ＹＣｏＣｇ色との間の可逆変換が必要とされ、その計算コストは高い。従って、ＲＧＢ色は、本発明において使用可能な有利な画素色である。
【００２３】
更に以下において、「画像」という用語は、本発明により符号化及び復号化可能な任意の１Ｄ、２Ｄ又は３Ｄ画像又はテクスチャを示すために使用される。それらの画像又はテクスチャは、バンプマップ、法線マップ、写真、ゲーム形式のテクスチャ、テキスト、図面、ダイナミックレンジの広い画像及びテクスチャ等を含むがそれらに限定されない。
【００２４】
本発明は、予測に基づくカラーバッファ圧縮（符号化）及び伸張（復号化）に関する。本発明の予測に基づく色データ処理は、例えば描かれた三角形と背景との間の鮮明なエッジにより起こる色値の不連続性に対処するのに最適である。そのような本発明の専用の不連続性管理は、従来のバッファ圧縮方式において利用されない。
＜圧縮＞
【００２５】
図１は、本発明に従って複数画素のブロックを圧縮する方法を示すフローチャートである。ブロックの各画素は、赤色成分、緑色成分及び青色成分等の複数の色成分から構成される色を有する。ブロック圧縮は、ブロック中の少なくとも１つの画素に対して画素の第１の色成分の予測を提供することを含む。以下において、この第１の色成分を赤色成分により示す。しかし、ＲＧＢ色の場合に緑又は青等の他の任意の色成分が圧縮方法において最初に処理されてもよいため、これは本発明の単なる例示として考えられるべきである。
【００２６】
予測提供動作は、ステップＳ１で開始する。このステップＳ１は、ブロックの第１の隣接画素の赤（第１の）色成分とブロックの第２の隣接画素の赤色成分との間の差分を計算することを含む。従って、これらの２つの隣接画素は、ブロックにおいて圧縮する現在の画素に隣接する。更に画素は、現在の画素に対する２つの異なる予測方向に関連する。好適な一実施形態において、２つの隣接画素は、ブロックの同一行の先行画素及びブロックの同一列の先行画素を含む。従って、現在の画素はブロックにおいて画素位置(i, j)を有すると仮定される。そのような場合、２つの隣接画素は、位置(i-1, j)及び(i, j-1)を占有するのが好ましい。
【００２７】
ステップＳ１の計算は、差分R(i-1)j - Ri(j-1)を計算することを含むのが好ましい。ここで、Rijはブロック位置(i, j)の画素の赤色成分を示す。これは符号ではなく関連性を示す差分の大きさであるため、絶対値又は差分の大きさ|R(i-1)j - Ri(j-1)|はステップＳ１において計算される。別の方法において、２乗差(R(i-1)j - Ri(j-1))2がステップＳ１において計算される。当然、これら２つ以外の大きさの表現も可能である。
【００２８】
いずれかの場合において、計算された差分表現（差分の大きさ又は２乗差）は、規定された閾値hと比較される。従って、比較は|R(i-1)j - Ri(j-1)| ＜ h1又は(R(i-1)j - Ri(j-1))2 ＜ h2で実現される。隣接画素の赤色成分の間の差分（の大きさ）が閾値より小さい場合、ステップＳ１からステップＳ２に進む。差分が閾値より小さくない場合、ステップＳ３に進む。
【００２９】
閾値hは、可能な限り多くの種々のカラー成分のブロックとして圧縮し、その結果可能な限り短いブロック圧縮長（ビット数に関して）が得られることを最適化の目的とする最適化手順において判定される。本発明に従って使用され且つ予備最適化手順から得られる閾値の例は、h1 = 2048及びh2 = 20482であるが、それらに限定されない。しかし、閾値の実際の値は、使用される特定の色形式、色成分値に対する利用可能な範囲等を含む複数の因子に依存する。この値２０４８は、色成分が半精度浮動小数点数として表されるＲＧＢ色に対して適切に動作する。
【００３０】
ステップＳ２は、２つの隣接画素の赤色成分から現在の画素の色成分予測を計算することを含む。換言すると、
2011514024.tif 000003
であり、
2011514024.tif 000004
は現在の画素Rijの予測であり、f()は関数であり、特に２つの隣接する赤色成分の第１の重み付き合成の形式
2011514024.tif 000005
である。第１の重み付き合成は、丸められるか、切り捨てられるか又は切り上げられて整数の予測値を得てもよい。
【００３１】
ステップＳ１において調査されるように、差分が閾値より小さくない場合、オプションであるが好適なステップＳ３に進む。ステップＳ３は、現在の画素の赤色成分と隣接画素の赤色成分の第２の重み付き合成WC2との間の第１の差分を計算することを含む。ステップＳ３は、現在の画素の赤色成分と隣接する画素の赤色成分の第３の異なる重み付き合成WC3との間の第２の差分を計算することを更に含む。別の方法において、２つの差分は、現在の画素の赤色成分と第１の隣接画素及び第２の隣接画素のそれぞれの赤色成分（又は赤色成分から判定される値）との間で計算される。画素の色成分予測は、２つの隣接する赤色成分の第２の重み付き合成及び第３の重み付き合成のうちの一方に基づくように、好ましくはその一方と等しくなるように選択される。更に、この予測の選択は、２つの計算された差分に基づいて実行される。一般に、調査された画素の赤色成分に最も近い重み付き合成が選択される。従って、|Rij - WC2| ＜ |Rij - WC3|（すなわち、(Rij - WC2）2 ＜ (Rij - WC3)2又は好ましくないが|Rij - R(i-1)j| ＜ |Rij - Ri(j-1)|）である場合、ステップ４において、赤色成分の第２の重み付き合成が赤色予測として選択される。すなわち、
2011514024.tif 000006
である。|Rij - WC2| ＜ |Rij - WC3|でない場合、ステップＳ５において、第３の重み付き合成が赤色予測として選択される。すなわち、
2011514024.tif 000007
である。別の方法において、現在の画素ブロックは、まず第２の重み付き合成を予測として使用して符号化され、その後第３の重み付き合成を予測として使用して再度符号化される。そのような場合、最も効率的なデータ圧縮を結果として与える重み付き合成が現在の画素に対する予測として選択される。
【００３２】
本発明によると、２つの隣接する赤色成分の３つの重み付き合成は、異なる重み付き合成である。すなわち、異なる重み
2011514024.tif 000008
2011514024.tif 000009
及び
2011514024.tif 000010
を使用する。上述したように、第１の重み付き合成と関連して、第２の重み付き合成及び第３の重み付き合成は丸められるか、切り捨てられるか又は切り上げられて整数値を得てもよい。
【００３３】
第１の重み付き合成又は線形合成の重み
2011514024.tif 000011
、
2011514024.tif 000012
は、非ゼロ重みであり、0 ＜ w1 ＜ 1の間隔内であるのが好ましい。第２の重み付き合成及び第３の重み付き合成の重みは非ゼロであるのが好ましいが、重み付き合成毎に１つがゼロであってもよい。そのような場合、好ましくは
2011514024.tif 000013
の場合に
2011514024.tif 000014
であり且つ好ましくは
2011514024.tif 000015
の場合に
2011514024.tif 000016
である。好適な一実施形態において、
2011514024.tif 000017
、
2011514024.tif 000018
の場合に
2011514024.tif 000019
であり且つ
2011514024.tif 000020
である。更に好ましくは
2011514024.tif 000021
である。そのような場合、第２の重み付き合成は
2011514024.tif 000022
であり、第３の重み付き合成は
2011514024.tif 000023
である。第２の合成及び第３の合成の適切な重み値の一例は、WC2 = 0.75R(i-1)j + 0.25Ri(j-1)及びWC3 = 0.25R(i-1)j + 0.75Ri(j-1)である。
2011514024.tif 000024
であり且つ
2011514024.tif 000025
である場合、WC2 = R(i-1)jであり且つWC3 = Ri(j-1)である。これは、２つの隣接画素の赤色成分のうち、現在の画素の赤色成分の予測として選択された一方に対応する。
【００３４】
その後、ステップＳ６に進み、選択された予測と関連付けられるガイドビットが提供される。従って、ステップＳ４において第２の重み付き合成が赤色予測として選択された場合、ガイドビットは0bin（又は1bin）に設定される。しかし、ステップＳ５において第３の重み付き合成が選択された場合、ガイドビットは1bin（又は0bin）である。
【００３５】
次のステップＳ７は、現在の画素の赤色成分及びステップＳ２、Ｓ４又はＳ５で提供された予測に基づいて予測誤差を計算する。予測誤差
2011514024.tif 000026
は、画素の元の赤色成分とRijとその予測
2011514024.tif 000027
との差分
2011514024.tif 000028
、すなわち
として計算されるのが好ましい。
【００３６】
計算された予測誤差の符号化表現は、ステップＳ８において判定される。ブロックの圧縮表現又は符号化表現はこの符号化表現を含み、ステップＳ１からステップＳ３に進んだ場合は画素に対してステップＳ６で提供されたガイドビットを含む。
【００３７】
手順はブロック中の複数の画素に対して繰り返されるのが好ましい。これを線Ｌ１により概略的に示す。そのような場合、圧縮ブロックは、それらの画素毎に符号化予測誤差表現を含む。更に、画素の一部は割り当てられたガイドビットを有してもよく、その一方で、他の画素はステップＳ２に従って計算された予測を有するため、任意の割り当てられたガイドビットを有さない。更に正確には、図１で開示される方法に従って符号化された全ての画素がガイドビットを有してもよく、いずれの画素も割り当てられたガイドビットを有さなくてもよく、あるいは少なくとも１つの画素がガイドビットを有する一方で、少なくとも別の画素は割り当てられたガイドビットを有さなくてもよい。
【００３８】
図２は、複数の画素３１０〜３１８のブロック３００を示す概略図である。図１に示す圧縮方法を考慮すると、現在の画素３１８を圧縮する場合、同一のブロック行及びブロック列の先行位置にある２つの隣接画素３１２、３１６の赤色成分が調査される。画素３１８に対する赤色成分の予測は、それらの差分の大きさが閾値より小さい場合、それらの双方の隣接画素３１２、３１６の赤色成分の第１の重み付き合成に基づいて計算され、閾値より小さくない場合、第２の重み付き合成及び第３の重み付き合成のうちの一方が予測基準として選択される。
【００３９】
従来技術において周知であるように、カラーバッファの画素の元の色成分は、浮動小数点数、特に半精度浮動小数点数、すなわちＦＰ１６である場合が多い。１６ビット半精度浮動小数の最上位ビットは符号ビットを表し、後続する５ビットは指数を構成し、１０個の最下位ビットは仮数を形成する。半精度浮動小数の数値は、(-1)sign × 2(exponent-l5) × (1.mantissa)である。しかし、半精度浮動小数の浮動小数点特性は問題を引き起こす。浮動小数点数の密度が均一でないため、２つの浮動小数の間の差分が表現できない場合がある。図３はこの概念を示す。図３の上半分は浮動小数表現を示す。数密度の不均一性は明らかに見て分かる。密度はゼロに近付くほど増加する。半精度浮動小数等の浮動小数点数の形式で色成分表現を有する問題を示すために、第１の色成分は７．５であり、第２の成分値は１．８７５であると仮定する。双方の数字は半精度浮動小数を使用して表現可能である。しかし、２つの数字の差分7.5 - 1.875 = 5.625は半精度浮動小数として表現できない。これに対して、最も近い表現は５．５である。しかし、背景の節で説明したように、カラーバッファ圧縮は可逆的である必要がある。従って、上述の半精度浮動小数の間の差分の計算を必要とするブロックは、その差分が半精度浮動小数で正確に表現できないため可逆圧縮できない。
【００４０】
本発明は、図３に示すように、各浮動小数点数を整数表現にマッピングすることにより浮動小数点数の問題を解決する。基本的にこれは、各浮動小数点数に固有の整数を割り当てることに対応する。浮動小数点から整数領域にマッピングすることは、より大きな整数をより大きな浮動小数点数に割り当てることを含む。これは、０．０には整数表現０が割り当てられ、次に最も小さい正の浮動小数点数には１が割り当てられ、更に次に最も小さい浮動小数点数には２が割り当てられる。
【００４１】
上記例は、整数１５に差分１６を加算して３１の結果、すなわち浮動小数点として解釈すると７．５の結果を得ることに対応する。従って、本発明の好適な一実現例は、浮動小数点領域と整数領域との間の１対１マッピングに従って浮動小数点色成分を整数として解釈することを含む。整数領域において計算及び算術を行なうことにより、コストのかかる浮動小数点演算が回避される。また、圧縮が可逆的であるため、Nan（非数）、Inf（無限大）及びdenorm（非正規化数）が適切に更に処理される。そのような場合、圧縮中、浮動小数点数は図３に示す上述のマッピングに従って整数として解釈される。伸張後、整数は、上述の整数と浮動小数点数との間の１対１マッピングを介して浮動小数点数に再度変換される。
【００４２】
画素中の画素の元の色値は、ＦＰ１６で表される符号なしの１５ビット値であるのが好ましい。
【００４３】
図４は、図１の予測計算ステップＳ２の一実施形態を示すフローチャートである。方法は、図１のステップＳ１から継続した。次のステップＳ１０は、２つの隣接画素の赤色成分の平均に基づいて画素予測
2011514024.tif 000029
2011514024.tif 000030
を計算する。好適な一実現例において、計算された平均は、予測として採用される。すなわち、
2011514024.tif 000031
である。整数予測のみが採用される場合、商は
2011514024.tif 000032
に従って丸められるか、あるいは床関数（又は天井関数）に入力される。
2011514024.tif 000033
等の平均に基づいて判定された他の予測も可能である。その後、図７のステップＳ７に進み、予測誤差が判定された予測に基づいて計算される。
【００４４】
図５は、本発明の圧縮方法の追加の好適なステップを示すフローチャートである。方法はステップＳ２０で開始する。ステップＳ２０は、ブロックに対して開始成分値を選択することを含む。この開始値は、ブロックの選択された位置又は事前定義済み位置の画素の赤（第１の）色成分になるように選択される。図２を参照すると、そのような事前定義済み位置の好適な一実現例は、ブロックの第１の画素３１０、すなわち左上隅を占有する画素を使用することである。可能な開始画素位置の他の例は、ブロックの他の隅のいずれであってもよい。
【００４５】
隅の位置及び特に左上隅の画素３１０がブロックの圧縮を非常に簡略化するが、実際には、ブロック中の任意の事前定義済み位置が開始位置として使用可能である。
【００４６】
圧縮ブロックは、開始成分値の表現Rstart = R11を含む。
【００４７】
次のステップＳ２１は、開始画素３１０と同一のブロック中の行又は列に属する少なくとも１つの残りの画素３１２、３１４、３１６に対する予測を選択する。好適な一実現例において、これは、ブロックの画素行又は画素列の先行する隣接画素の赤色成分と等しくなるように赤色成分予測を選択することを含む。これは、第１の行の画素３１２、３１４に対して、j = 2, 3,...の場合に予測
2011514024.tif 000034
がR1(j-1)に等しいこと及びR11がステップＳ２０において選択された開始成分値であることを意味する。第１の列の画素３１６に対する対応する予測は、i = 2, 3,...の場合に
2011514024.tif 000035
と定義され、R11は開始成分値である。ステップＳ２１は、第１の行及び第１の列の残りの画素毎に実行されるのが好ましい。これを線Ｌ２により概略的に示す。
【００４８】
上述したように、予測誤差は、画素の元の赤色成分値とその色成分予測との間の差分として種々の画素に対して計算される。すなわち、
2011514024.tif 000036
であるか又は
2011514024.tif 000037
である。その後、図１のステップＳ１に進み、ブロック中の残りの画素、すなわち第１の行又は第１の列に存在しない画素が上述したように圧縮される。
【００４９】
カラーバッファ圧縮は、上述したように描画された三角形と背景又は非常に異なる色の先に描画された三角形に属する画素との間の不自然に鮮明な色の不連続性が存在する可能性があるという点で他の画像圧縮とは異なる。従って、ブロックに不連続エッジが存在する可能性がある。そのような場合、いわゆる再開成分値が本発明に従って判定及び採用される。図６は、この概念を更に詳細に示す。方法は、図５のステップＳ２０から継続する。次のステップＳ３０は、ブロックに対する再開成分値を選択する。この再開値は、ブロックの識別された画素の赤（第１の）色成分になるように選択されるのが好ましい。
【００５０】
再開画素位置は、種々の実施形態に従って識別可能である。第１の方法において、ブロックは再開値を全く使用せずに圧縮される。同一ブロックは、可能な再開位置毎に、すなわち上述の開始画素位置以外の全ての画素位置に対して１度圧縮される。４×４のブロックの場合、これは、１＋１５の異なる圧縮ブロック候補を判定することを意味する。再開値を全く使用せずに圧縮されたブロックが最小の圧縮サイズを与える場合、再開値は採用されず、ステップＳ３０は省略される。しかし、最小の圧縮サイズを与える圧縮ブロック候補が再開値を使用する１５個の候補のうちの１つである場合、再開画素の位置は、最小の圧縮サイズを有するブロック候補において使用される位置になるように識別される。また、圧縮ブロックの単一ビットは、再開値を使用しないか又は再開値を使用するかを信号伝送するために使用される。別の方法において、４ビットの再開位置識別子は４×４のブロックに対して使用される。しかし、第１の画素位置は、開始位置になるように事前定義されるのが好ましい。これは、開始位置に対応する0000binに４ビットの位置識別子を設定することにより、再開値を使用しないことが黙示的に信号伝送される。
【００５１】
計算的に更に効果的である別の方法について、図７と関連して以下に更に説明する。
【００５２】
いずれの場合においても、再開位置が識別されると、ブロックの再開画素位置の表現は判定され、ブロックの圧縮表現に含まれる。４×４のブロックの場合、この表現は４ビット位置ワードである。更にブロックは、再開値の表現、すなわち識別された再開位置を占有する画素の赤色成分値の表現を含む。
【００５３】
その後、図５のステップＳ２１に進む。
【００５４】
ある特定のブロックに対して、再開画素は、開始画素と同一のブロック行又はブロック列に存在する。例えば、再開画素は、開始画素３１０が左上隅にある場合に第１の行の第２の画素３１２であると仮定される。そのような場合、第１の列に存在する画素３１６は列の先行画素の赤色成分を予測として有する。換言すると、開始値R11（画素３１０からの）は、画素３１６の予測として使用され、画素３１６の赤色成分値は第１の列の第３の画素の予測として採用される。図６を参照して与えられた上記説明を考慮すると、第１の行の第３の画素３１４に対する赤色成分の予測は再開値と等しい。その行の最後の画素は、第３の画素３１４の赤色成分を色成分予測として有する。
【００５５】
別の方法において、開始画素３１０及び再開画素３１２の双方と同一の行又は列に存在する画素３１４に対する予測が選択されてもよい。そのような場合、開始値又は再開値は予測として採用され、結果として最小の予測誤差を与える値が第１の行の第３の画素３１４及び第４の画素に対して選択される。選択ビットが採用され、開始値及び再開値のどちらが行又は列の残りの画素３１４に対する予測基準として使用されるかを示すために使用されるのが好ましい。例えば、0bin（又は1bin）の選択ビットは、現在の画素３１４の予測が開始値であることを信号伝送するが、その一方で、1bin（又は0bin）は、再開値が使用されたことを示す。
【００５６】
更に別の例において、行又は列の先行画素の赤色成分と先行画素に対して予測基準として採用されなかった開始／再開値の一方との間で選択が行なわれる。例えば、第１の行の第３の画素３１４に対する予測は再開値であったと仮定する。そのような場合、その行の第４の画素の予測は第３の画素３１４の赤色成分又は開始値と等しい。0bin（又は1bin）の選択ビットは、予測が同一行又は同一列の先行する隣接画素の色成分と等しいことを示すが、その一方で、1bin（又は0bin）の値は、開始値及び再開値の一方が予測として採用されることを信号伝送する。更に、隣接画素が再開（開始）値から予測された場合、開始（再開）値は予測として選択される。更に別の例において、行又は列の先行画素の赤色成分と先行画素に対して予測基準として採用されなかった開始値及び再開値のうちの一方から予測された行又は列の最近接する先行画素との間で選択が行なわれる。
【００５７】
図７は、図６の選択ステップＳ３０の一実施形態を示す。方法は、図５のステップＳ２０から継続する。次のステップＳ４０は、ブロックに対する再開画素を識別する。このステップは、上述したように全ての可能な再開位置の全数探索に従って実行される。別の方法において、まず開始値に対する絶対差分|R11 - Rij|がブロックの全ての残りの画素に対して計算される。ここで、(i, j) ≠ (1, 1)である。開始値と最も異なる色成分値を有する画素が識別される。本明細書において、この画素の赤色成分はRdiffで示される。その後、その赤色成分と開始値との間の第１の絶対差分|Rij - R11|及びその赤色成分とRdiffとの間の第２の絶対差分|Rij - Rdiff|が画素に対して計算される。ステップＳ４１において、第１の絶対差分が第２の絶対差分より小さい場合、画素は開始値の予測として分類され、第１の絶対差分が第２の絶対差分より小さくない場合、画素は再開値の予測として分類される。
【００５８】
この場合、再開画素は、第１の差分より大きい第２の絶対差分を有するブロックのトラバーサル順で第１の画素として識別される。
【００５９】
次のステップＳ４２は、圧縮される現在の画素と同一の行又は列に存在する２つの隣接する先行画素に対して現在の画素と同一の分類が行われるかを調査する。先行画素のいずれに対しても同一の分類が行なわれない場合、これらの３つの画素間で不連続エッジが発生する。従って、隣接画素のいずれも現在の画素に対する適切な予測候補ではない。本発明は、画素と同一の分類が行なわれる少なくとも１つの隣接画素を現在の画素に対して取得するためにブロックの画素位置を再順序付けすることによりこの問題を解決できる。
【００６０】
好適な一実施形態において、再順序付け手順は、１回等の制限された回数だけ実行可能であるのが好ましい。実行される回数が制限されない場合、圧縮される特定のブロックに依存して、再順序付けにより２つの異なる画素レイアウト間で切り替わる可能性がある。
【００６１】
図８Ａはこの概念を示す。図中、開始画素３１０は左上隅にある。この例において、上記に従う全数探索又は計算的に更に効果的な再開識別手順は、ブロックの右上隅の再開画素３１１を識別する。ステップＳ４１の分類手順の実行後、図中の白色で印がつけられた画素３１４、３１８は、開始値に基づいて予測可能として分類され、その一方で、灰色で印がつけられた画素３１７は再開値に基づいて予測可能である。第２の行の第３の画素３１７が符号化されるべきであると仮定する。しかし、同一行又は同一列の２つの隣接画素３１４、３１８は、現在の画素３１７とは異なるように分類される。これは、隣接画素の赤色成分の平均又はそれらのいずれかを予測として使用することにより、非常に大きな予測誤差及び低い圧縮品質がもたらされる。従って、再順序付け動作が実行される。
【００６２】
第１の実施形態において、ブロック中の画素位置は、ブロックの第２の列と第３の列との間に位置付けられる垂直線に関して反転される。従って、この際順序付けは、ブロック３００において画素位置(i, j)を有する画素を新しい画素位置(i, 5-j)に変換することを含む。ここで、i, j = 1, 2, 3, 4である。この再順序付け動作の結果を図８に示す。尚、画素は再順序付けの前と同一のブロック行に存在するが、新しい列に位置付けられる。
【００６３】
この場合、現在の画素３１７は同一の分類が行なわれる同一行に隣接画素を有し、その一方で、同一列の先行画素３１４に対しては別の分類が行なわれる。圧縮中、これらの２つの隣接画素３１４の赤色成分の間の差分が計算され、閾値と比較される。２つの隣接画素３１４に対して異なる分類が行なわれるため、差分は閾値を超える可能性が高い。従って、隣接画素３１４の赤色成分は図１に従って予測として使用されるべきである。この場合、予測候補は、現在の画素３１７と同一の分類が行なわれるため、同一行の先行する隣接画素である可能性が高い。
【００６４】
図８Ｃは、別の再順序付け実施形態の結果を示す。本実施形態は、ブロック３００の中心に位置付けられる回転点に関してブロック３００を９０(右又は左に回転させることを含む。この再順序付けのために、ブロック３００において先行位置(i, j)を有する画素は新しい画素位置(j, 5-i)を得る。ここで、i, j = 1, 2, 3, 4である。図から分かるように、現在の画素３１７は２つの候補隣接画素を有する。そのうちの一方は３１８で示され、他方（同一行に存在する）は同一の分類が行なわれるため、適切な予測候補である。
【００６５】
画素位置の再順序付けが実行された場合、圧縮ブロックは、そのような画素再順序付けを表す回転ビット（反転ビット又は再順序付けビットとも呼ばれる）を含むのが好ましい。例えば、1bin（又は0bin）は回転されたブロックを示すことができ、その一方で、0bin（又は1bin）は再順序付けが行なわれていないことを示す。
【００６６】
特定の一実施形態において、複数の種々の画素再順序付け動作が利用可能である。そのような場合、これらの再順序付け動作の一部は、新しい隣接画素が現在の画素とは異なって分類される場合があるため予測問題を解決しない可能性がある。更に、再順序付けの結果、ブロック中の他の画素が予測する同一の分類の隣接画素を有さない場合がある。上述したように、ブロック回転、ブロック反転等の全ての種々の再順序付け動作がテストされる。回転ビットは、複数の利用可能な動作の再順序付けなしと特定の再順序付けとを区別する複数ビットの回転ワードである。
【００６７】
一実施形態において、少なくとも１つの画素がその画素と異なる分類が行なわれた２つの隣接予測画素を有する場合、画素再順序付けが実行される。別の実現例は、まず再順序付けせずにブロックを圧縮し、位置の再順序付けをしてブロックを再度圧縮することである。元のブロックを最適に表す圧縮結果、すなわち最短の圧縮ブロック表現を結果として与える圧縮結果は、現在のブロックの圧縮表現として選択及び使用される。その後、図５のステップＳ２１に進む。
【００６８】
図９は、図１の予測誤差の符号化表現を判定する一実施形態を示すフローチャートである。方法は、図１のステップＳ７から継続する。次のステップＳ５０は、予測誤差を変更して正の予測誤差を得る。この変更は、負の予測誤差（ゼロ誤差を含む）に関数n(x) = -2xを適用し且つ正の予測誤差（ゼロ誤差を含まない）に関数p(x) = 2x - 1を適用することを含むのが好ましい。この結果、{0, 1, -1, 2, -2, 3, -3,...}である予測誤差の新しい構成が得られる。これは、小さい大きさの数字が小さい値を有することを意味する。変更された各予測誤差は、符号化表現を取得するためにGolomb-Rice符号化されるのが好ましい。
【００６９】
Golumb-Rice符号化は、指数kを探索することを含む。この数kは、ブロックの少なくとも１つの画素の集合に対して採用されるのが好ましい。例えば、ブロックの２×２のグループの４画素は同一のkを共有できる。０と１５との間等のkの利用可能な値の間で全数探索が使用され、グループに最適なkを見つける。しかし、探索は利用可能なkの値の選択された部分のみを見ることにより計算が軽減される。この好適なkの探索は、[p-4, p]の間隔でkを探索することを含む。ここで、pは画素グループの最大の予測誤差の最上位ビットのビット位置である。
【００７０】
次のステップＳ５２は、グループの各予測誤差を2kで除算し、商及び余りを形成する。商は、次のステップＳ５３においてアルファ符号化される。このアルファ符号化は、以下の表１に従って実行されるのが好ましい。
2011514024.tif 000038
アルファ符号化は、表１から明らかであるように、より大きな値により長いコードを割り当てる。一般に３１より大きい値は、0×ffffhexを使用して符号化され、その後値の１６ビットが続く。
【００７１】
予測誤差の符号化表現は、アルファ符号及び余りのkビットを含む。更に値kは、画素のグループに対して格納される。この手順は、開始画素及び再開画素を除くブロック中の画素毎に実行される。上述したように、これらの画素の元の色成分値は開始成分値及び再開成分値としてそれぞれ格納される。
【００７２】
Golumb-Rice符号化は使用可能な符号化アルゴリズムであるが、本発明はこれに限定されない。ハフマン符号化又はTunstall符号化を含む他の符号化アルゴリズムが代わりに採用できる。
【００７３】
赤（第１の）色成分は他のデータに依存せずに符号化されるが、その一方で、緑（第２の）色成分は赤色成分に対して符号化されるのが好ましい。この状況を図１０に示す。方法は、図１のステップＳ８から継続する。次のステップＳ６０は、ブロックの画素毎に成分差分を計算する。この成分差分は、画素の緑色成分と赤色成分との間の差分Gij - Rijである。その後、ブロックの第２の色成分に対する各予測が提供される。
【００７４】
第１に、ステップＳ６１において、２つの隣接画素の赤色成分の間の差分の大きさ／２乗差が閾値を超えるか否かが調査される。このステップＳ６１は、図１のステップＳ１と同様に実行される。従って、緑色成分の予測が提供されるが、ステップＳ６１の調査は赤色成分値を採用する。
【００７５】
差分が閾値より小さい場合、ステップＳ６２に進む。ステップＳ６２は、第１の隣接画素の緑色成分と赤色成分との間の第１の差分及び第２の隣接画素の緑色成分と赤色成分との間の第２の差分の第１の重み付き合成に基づいて予測を計算する。換言すると、
2011514024.tif 000039
であるか、あるいは丸められたか、切り捨てられたか又は切り上げられた重み付き合成である。好適な一実施形態において、予測は、２つの成分差分の平均に基づいて計算されるのが好ましく、平均
2011514024.tif 000040
又は床関数の場合は
2011514024.tif 000041
と等しいのが更に好ましい。
【００７６】
しかし、ステップＳ６１において隣接する赤色成分の間の差分の大きさが閾値を超える場合、ステップＳ６３に進む。ステップＳ６３は、現在の画素に対してステップＳ６で判定されたガイドビットを使用し、ステップＳ６４において予測として２つの差分の第２の重み付き合成
2011514024.tif 000042
を選択するか、あるいはステップＳ６５において予測として第３の重み付き合成
2011514024.tif 000043
を選択する。従って、図６のステップＳ４において赤色成分の第２の重み付き合成が現在の画素に対する予測として選択された場合、ステップＳ６においてガイドビットが設定され、ステップＳ６４において色成分の差分の第２の重み付き合成が画素に対する第２の予測として選択される。あるいは、ステップＳ５において隣接する赤色成分の第３の重み付き合成が画素の第１の予測として選択されたためにガイドビットが設定されなかった場合、ステップＳ６５において差分の第３の重み付き合成が第２の予測として選択される。これらの第２の重み付き合成及び第３の重み付き合成は、丸められてもよく、切り捨てられてもよく又は切り上げられてもよい。
【００７７】
好適な一実施形態において、図１０に開示される上述の色成分差分の３つの異なる重み付き合成を判定するために採用される重みは、赤色成分の３つの異なる重み付き合成を判定するために図１において採用された重みと同一であるのが好ましい。
【００７８】
次のステップＳ６６は、画素の緑色成分及び赤色成分と選択された予測との間の差分として画素の緑色成分に対する予測誤差
2011514024.tif 000044
を計算する。次のステップＳ６７は、ステップＳ６６で計算された第２の予測誤差の第２の符号化表現を判定することを含む。このステップＳ６７は、以下の相違点を除いて図９に関連して上述したステップＳ８と同様に実行されるのが好ましい。開始画素及び再開画素は、別個に処理されないが、他の予測と同様にGolomb-Rice（ハフマン又はTunstall）符号化に供給される。従って、開始画素の場合、差分G11 - R11はGolomb-Rice符号化され、同様のことが再開画素にも当てはまる。
【００７９】
開始画素及び／又は再開画素と同一の行又は列に存在する画素の場合、圧縮は、更に緑色成分と赤色成分との差分が使用されて赤色成分と同様に実行される。従って、開始画素と同一の行の画素は、
2011514024.tif 000045
である第２の予測誤差を有する。
【００８０】
青（第３の）色成分及び残りの色成分に対して、図９と関連して上述したように同一の手順が実行される。しかし、この場合、ステップＳ６０において青色成分と緑色成分との間の差分Bij - Gijが計算される。別の方法において、ステップＳ６０において青色成分と赤色成分との間の差分Bij - Rijが計算される。
【００８１】
図１１は、本発明に従って圧縮された画素ブロックの圧縮表現４００を示す概略図である。圧縮ブロック４００は、再開ビット４１０を含むのが好ましい。このビットは、再開画素が現在のブロックに対して使用される場合、1binと等しくなるように設定される。そのような場合、圧縮ブロックは、再開画素位置の指示４２０及び再開値の表現４３０を更に含む。再順序付けビット４４０は、任意の画素位置再順序付けが実行されたか否かを信号伝送する。更に開始値の表現４５０が圧縮ブロック４００に含まれる。圧縮ブロック４００は、判定されたk値の表現４６０、ガイドビット４７０、並びに図中では符号化誤差表現４８０で示されるGolomb-Rice符号化による商及び余りのアルファ符号を更に含む。
【００８２】
圧縮ブロック４００の含まれる成分の実際の順序は、図１１に示すものと異なってもよい。
＜圧縮の例＞
【００８３】
赤色成分に対する以下の色成分値を有する図２に示すような画素ブロックを仮定する。
2011514024.tif 000046
【００８４】
開始値は、ブロックの第１の画素に対応する。すなわち、Rstart = R11 = 10001である。この場合、第１の行及び第２の行の最後の３つの画素が開始値により最適に予測され、その一方で他の画素は予測されないように、続くエッジにおいて赤色成分の鮮明な不連続性を識別することは困難なことではない。
【００８５】
再開値は、画素毎にその画素の赤色成分と開始値との間の絶対差分|Rij - Rstart|を計算することにより識別可能である。
2011514024.tif 000047
【００８６】
開始値と最も異なる画素は第３の行の第４の画素である。従って、Rdiff = R34 = 9995である。画素の赤色成分とRstartとRdiffとの間の絶対差分が計算される。|Rij - Rstart| ＜ |Rij - Rdiff|である場合、画素には0binの一時的な分類ビットが割り当てられ、画素が開始値の予測であることを示し、|Rij - Rstart| ＜ |Rij - Rdiff|でない場合、画素は再開値の予測であり、1binが割り当てられる。現在のブロックに対する結果を以下に示す。
2011514024.tif 000048
【００８７】
一時的な分類ビットは、トラバーサル順に、すなわち第１の行の左側から開始して右側に進み、その後第２の行の左側から開始して右側に進む順序で調査される。分類ビット1binを有する第１の画素は、再開画素として識別される。この例において、第２の行の第１の画素が識別されるため、Rrestart = R21 = 11である。
【００８８】
最初に、第１の行の画素は、
2011514024.tif 000049
の予測手順を使用して圧縮される。従って、その行の第２の画素に対する予測誤差は、
2011514024.tif 000050
である。第１の行の残りの画素に対してこの手順を継続することにより、一連の予測誤差、すなわち1,1,1が得られる。
【００８９】
その後、第１の列の２つの残りの画素は、
2011514024.tif 000051
に従って予測される。この結果、第１の列の第３の画素に対しては、
2011514024.tif 000052
が得られる。その行の最後の画素に対する予測も１である。部分的に圧縮されたブロックは、以下の予測誤差を有する。
2011514024.tif 000053
【００９０】
その後、第２の行の第２の画素は、図１に従って調査される。２つの隣接する赤色成分の間の差分は計算され、閾値と比較される。すなわち、(10002 - 11)2 = 99912 ＞ 20482である。これは、予測が図１のステップＳ３〜Ｓ６に従って提供されるべきであることを意味する。この例において、
2011514024.tif 000054
であり且つ
2011514024.tif 000055
である。隣接する画素及び現在の画素の赤色成分の間の絶対差分が計算され且つ比較される。すなわち、|10003 - 10002| ＜ |10003 - 11|である。これは、この例における重みの特定の選択による画素成分の予測
2011514024.tif 000056
を意味する。ガイドビットは1binに設定され、予測は同一行ではなく同一列に沿って実行されることを意味する。予測誤差は、
2011514024.tif 000057
として計算される。
【００９１】
その後、第２の行の第３の画素が調査される。隣接する赤色成分の間の２乗差は、上記の(10003 - 10003)2 = 0 ＜ 20482として計算される。従って、予測は図１のステップＳ２に従って提供されるべきである。これは、隣接する色成分の平均が計算され、予測
2011514024.tif 000058
として使用される。結果として得られる予測誤差は、
2011514024.tif 000059
である。残りのブロックに対してこの手順を継続すると、以下の予測誤差が得られる。
2011514024.tif 000060
*1binのガイドビットが使用される。
**0binのガイドビットが使用される。
【００９２】
その後、予測誤差は、上述したようにGolomb-Rice符号化を使用して符号化される。  現在のブロックに対する緑色成分は以下の値を有すると仮定する。
2011514024.tif 000061
【００９３】
最初に、緑色成分と赤色成分との間の差分が計算され、以下の値を取得する。
2011514024.tif 000062
第１の画素行は、先行画素値を予測として上述したように処理される。従って、結果として得られる予測誤差は、第１の行の最後の３画素に対して2,2,2となる。第１の列の最後の２画素に対する対応する予測誤差は-3,-3である。
【００９４】
位置(2, 2)の画素に対するガイドビットによると、予測は同一列の隣接画素に対する値と等しい。予測誤差は18 - 21 = -3となる。
【００９５】
第２の行の第３の画素は、双方の隣接画素に基づいて予測されるべきである。従って、予測誤差は、
2011514024.tif 000063
である。残りの画素に対して手順を継続すると、緑色成分に対する予測誤差が得られる。
2011514024.tif 000064
その後、同一の手順が青色成分に対して実行される。
【００９６】
＜伸張＞
図１２は、本発明に従って圧縮画素ブロック又は符号化画素ブロックを伸張又は復号化する方法を示すフローチャートである。方法は、ステップＳ７０から開始し、予測誤差が復号化されるブロックの画素に対して判定される。この予測誤差は、画素と関連付けられ且つ圧縮ブロックに含まれる符号化誤差表現に基づいて判定される。従って、ステップＳ７０は、画素予測誤差を計算するために符号化誤差表現を利用することを含む。
【００９７】
予測誤差は、予測誤差の符号化表現をGolomb-Rice（あるいは、例えばハフマン又はTunstall）復号化することにより実行されるのが好ましい。そのような場合、予測誤差は、アルファ符号化された商、余り及び指数値kを含むのが好ましい。そのような場合、商は上記の表１を使用してアルファ符号化されたデータから取得される。その後、商及び余りは、予測誤差を形成するために2kで乗算される値を形成する。
【００９８】
画素の赤（第１の）色成分の予測が提供される。予測の提供は、ブロック中の２つの隣接画素の赤色成分の間の差分を計算することを含む。これらの２つの画素は、ブロックの種々の予測方向の隣接画素であり、好ましくは復号化される現在の画素と同一のブロック中の行又は列の先行画素位置に位置付けられる。差分は、絶対差分又は２乗差であるのが好ましく、符号に関係なく差分の大きさ表現のみを提供する。差分は、ステップＳ７１において事前定義済み閾値と比較される。差分が閾値より小さい場合、色成分予測はステップＳ７２に従って実行され、差分が閾値より小さくない場合、ステップＳ７３に進む。
【００９９】
ステップＳ７２は、ステップＳ７１の比較において使用された差分を計算するために採用されたブロック中の２つの隣接画素の赤色成分から成分予測を計算する。成分予測は、非ゼロ重みを有する第１の重み付き合成、好ましくはステップＳ７２の好適な一実施形態の詳細な一実現例である図４のステップＳ１０に示す上述した２つの赤色成分の平均に基づいて計算されるのが好ましい。
【０１００】
ステップＳ７１で判定されるように差分が閾値より小さくない場合、ステップＳ７３は、符号化画素と関連付けられ且つ圧縮画素ブロックに含まれるガイドビットの（ビット）値を調査する。ガイドビットが1bin等の第１のビット値を有する場合、ステップＳ７４に進む。しかし、ガイドビットが0bin等の第２のビット値を有する場合、予測はステップＳ７５に従って提供される。ステップＳ７４は、ブロック中の２つの隣接画素の赤色成分の第２の重み付き合成に基づくように、好ましくは第２の重み付き合成と等しくなるように色成分予測を選択することを含む。ステップＳ７５は、画素に対する成分予測としてブロック中の隣接画素の赤色成分の第３の重み付き合成を選択することを含む。これは、この場合、現在の画素に対するブロックに含まれるガイドビットが２つの可能な候補予測のうちのどちらを画素に対して使用するかを命令することを意味する。
【０１０１】
最後にステップＳ７６は、ステップＳ７０で判定された予測誤差及びステップＳ７２、Ｓ７４又はＳ７５で提供された成分予測に基づいて画素の赤色成分の表現を計算する。この計算は、（部分的に）復号化された画素の赤色成分を得るために、判定された予測誤差を成分予測に加算することにより実現されるのが好ましい。
【０１０２】
図１２の伸張方法は、復号化されるブロックの画素毎に繰り返されるのが好ましい。これを線Ｌ５により概略的に示す。これは、所定の圧縮ブロックに対して、方法がブロックの画素毎に１回等、１回又は複数回実行されることを意味する。
【０１０３】
図１３は、伸張方法の追加のステップを示すフローチャートである。方法はステップＳ８０で開始し、圧縮ブロックに含まれる開始成分値の表現に基づいてブロックの開始画素の赤色成分を提供する。好適な一実施形態において、開始値は、圧縮ブロックにおいて符号化されずに提供されるため、開始画素の赤色成分として直接割り当てられる。この画素は、上述したようにブロックにおいて事前定義済みの位置を有する。好ましくは(i, j) = (1, 1)に位置付けられる。
【０１０４】
ステップＳ８１は、開始画素と同一の画素行又は画素列の次の画素の予測を提供する。ステップＳ８１は、開始画素の赤色成分、すなわち開始成分値を隣接画素の予測として使用することを含む。画素の色成分は、この成分予測及び画素に対して判定された予測誤差に基づいて判定される。
【０１０５】
ステップＳ８１は、開始画素を含む（第１の）画素行又は画素列の残りの画素に対して繰り返されるのが好ましい。これを線Ｌ６により概略的に示す。しかし、これらの他の画素に対しては、予測は必ずしも開始画素の赤色成分である必要はなく、明らかに対照的に、現在の画素と同一の行又は列の直前の隣接画素の赤色成分に等しい。従って、最初に完全なブロックの伸張がステップＳ８０に従って実行され、開始画素を復号化する。その後ステップＳ８１において、第１の行及び列の第１の隣接画素は、開始画素の色成分値に基づいて復号化される。ステップＳ８１において、第１の行及び列の次の画素がステップＳ８１の１回目において判定された第１の隣接画素の第１の色成分値に基づいて復号化され、行／列の最後に到達するまで又は再開画素に到達するまで繰り返される。その後、ステップＳ７０に進み、ブロックの残りの画素は図１２に開示されるように復号化される。
【０１０６】
図１４は、ブロックの再開画素の場合の伸張方法の追加のステップを示すフローチャートである。方法は図１３のステップＳ８０から継続する。次のステップＳ９０は、ブロックの任意の再開画素が存在するかを調査し、存在する場合は再開画素を識別する。圧縮ブロックは、ブロックが再開画素を含むか否かを信号伝送する再開ビットを含むのが好ましい。従って、ステップＳ９０の調査は、そのような再開ビットに基づいて実行されるのが好ましい。また、圧縮ブロックは、ブロック中の複数の画素のうち再開画素の画素位置を表す位置ワードを含むのが好ましい。ステップＳ９０は、正確な画素位置を識別する際にそのような位置情報を使用するのが好ましい。
【０１０７】
次のステップＳ９１は、再開画素の赤色成分を提供する。再開画素の赤色成分は、圧縮画素ブロックに含まれる再開成分値の表現に基づいて提供される。好適な一実現例において、再開値は符号化されずに含まれるため、再開画素の赤色成分として直接割り当てられる。
【０１０８】
その後、図１３のステップＳ８１に進む。
【０１０９】
図１５は、ブロックの画素の緑（第２の）色成分を判定する追加の方法を示すフローチャートである。方法は、図１２のステップＳ７６から継続する。次のステップＳ１００は、復号化される画素に対する第２の予測誤差を判定する。この予測は、図１２のステップＳ７０と関連して説明された第１の予測と同様に判定される。換言すると、予測は圧縮画素ブロックに含まれる符号化表現に基づいて判定される。これは、符号化表現がアルファ符号化された商、余り及び指数値kを含むのが好ましいことを意味する。従って、ステップＳ１００の予測誤差判定は、符号化表現をGolomb-Rice（ハフマン又はTunstall）復号化することを含むのが好ましい。
【０１１０】
その後、緑色成分の予測は画素に対して判定される。最初に、ステップＳ１０１において、２つの先行する隣接画素の赤色成分の間の差分が判定及び利用され、予測がステップＳ１０２に従って提供されるか又はステップＳ１０４及びＳ１０５の一方に従って提供されるかを判定する。このステップＳ１０１は、図１２のス７テップＳ７１と同様に実行される。
【０１１１】
ステップＳ１０１において差分（絶対差分又は２乗差）が閾値より小さい場合、ステップＳ１０２は、第１の隣接画素の緑色成分と赤色成分との間の第１の差分及び第２の隣接画素の緑色成分と赤色成分との間の第２の差分の第１の重み付き合成（非ゼロ重みを使用する）から予測を計算する。計算は、図４のステップＳ１０で示されるように実行されるのが好ましい。換言すると、２つの差分の平均が計算され、予測は好ましくはその
2011514024.tif 000065
又は平均
2011514024.tif 000066
に基づいて判定され、その平均に等しく設定されるのが好ましい。
【０１１２】
ステップＳ１０１において差分（絶対差分又は２乗差）が閾値を超える場合、ステップＳ１０３に進む。ステップＳ１０３は、ガイドビットを使用して、２つの可能な候補予測のうちのどちらを現在の画素に対して使用するかを選択する。ガイドビットが第１の値を有する場合、ステップＳ１０４に進み、予測は隣接画素の緑色成分と赤色成分との間の差分の第２の重み付き合成に基づくように又は第２の重み付き合成と等しくなるように選択される。しかし、ガイドビットが別の値を有する場合、ステップＳ１０５において２つの隣接画素の緑色成分と赤色成分との間の差分の第３の重み付き合成が選択される。
【０１１３】
その後、ステップＳ１０６に進み、画素の緑色成分の表現がステップＳ１００で判定された予測誤差及びステップＳ１０２、Ｓ１０４又はＳ１０５で提供された成分予測に基づいて判定される。このステップＳ１０６は、画素の緑色成分と赤色成分との間の差分を得るために予測を予測誤差に加算することを含むのが好ましい。緑色成分は、先に判定された赤色成分（図１２のステップＳ７６から得られる）を単純に加算することにより判定される。
【０１１４】
手順は、復号化されるブロックの全ての画素に対して繰り返される。これを線Ｌ８により概略的に示す。
【０１１５】
青（第３の）色成分を復号化するために、図１５と関連して上述した手順が繰り返される。しかし、この場合、青色成分と緑色成分との間（又は青色成分と赤色成分との間）の差分が緑色成分と赤色成分との間の差分の代わりに処理される。
【０１１６】
従って、開始画素及び／又は再開画素と同一の行又は列に存在する画素は、図１３のステップＳ８１及び図１４のステップＳ９２と関連して上述したように復号化される。しかし、隣接画素の赤色成分と等しい赤色成分の予測を提供するのではなく、予測は隣接画素の緑色成分と赤色成分との差分又は青色成分と緑色成分との差分に等しい。
【０１１７】
方法は、ブロックの画素位置の再順序付けが実行されるべきであるかを調査することを更に含むのが好ましい。この判定は、圧縮画素ブロックに含まれる再順序付け又は回転ビットに基づいて実行されるのが好ましい。ビットが0bin等の第１の値を有する場合、再順序付けは行なわれない。ビットが第１の値を有さない場合、画素位置は例えばブロックの回転又はブロックの反転により上述したように再順序付けされる。そのような再順序付けの一例は、画素位置(i, j)から(i, 5-j)又は(5-j, i)へのマッピングである。
＜伸張の例＞
【０１１８】
以下の例において、図２に示すようなブロックサイズ及び図１１に示すような圧縮ブロックレイアウトを仮定する。
【０１１９】
再開ビット：1bin
再開位置：0100bin
再開値：000000000001011bin
再順序付けビット：0bin
開始値：010011100010001bin
k値：X1X2...Xn、ここで、Xi = 0/1bin、i = 1...nである。
【０１２０】
ガイドビット：1000bin
符号化表現：Y1Y2...Ym、ここで、Yi = 0/1bin、i = 1...mである。
【０１２１】
再開ビットは、現在のブロックに対して設定され、再開画素が使用されるべきであることを示す。この再開画素の位置は、位置番号0100bin = 4であり、これは、トラバーサル順に(1, 1)が位置番号0を有し、(1, 2)が位置番号1を有する場合に(2, 1)に対応する。再開値は、000000000001011bin=11である。従って、R(2,1) = Rrestart = 11である。開始画素は位置（1, 1)にあり、開始値は010011100010001bin = 10001である。従って、R(1,1) = Rstart = 10001である。この時点で、部分的に復号化されたブロックは以下のように見える。
2011514024.tif 000067
その後、ブロックは第１の行から開始してトラバーサル順に復号化される。位置(1, 2)にある次の画素の予測は、
2011514024.tif 000068
である。
【０１２２】
以下の例において、予測誤差は、本明細書では開示されないGolomb-Rice復号化により判定される。従って、ブロックに対する復号化された第１の予測誤差は以下に提示される通りであると仮定する。
2011514024.tif 000069
【０１２３】
第２の画素の赤色成分は、以下のように計算される。すなわち、
2011514024.tif 000070
である。第１の行の第３の画素の対応する色成分は、
2011514024.tif 000071
である。手順は、第１の行の第４の最後の画素に対して繰り返され、以下の部分的に復号化されたブロックが得られる。
2011514024.tif 000072
【０１２４】
その後、第１の列の画素が復号化される。その列の第３の画素の赤色成分は、
2011514024.tif 000073
である。第１の列の最後の画素は同様に復号化され、以下のブロックが得られる。
2011514024.tif 000074
【０１２５】
次に、位置(2, 2)にある画素が復号化される。この復号化の例において、先の圧縮の例で使用された同一の重みが第１の重み付き合成、第２の重み付き合成及び第３の重み付き合成に対しても採用される。隣接する色成分R(1,2)とR(2,1)との間の差分が計算され、２乗差はこの例においては20482の事前定義済み閾値と比較される。すなわち、(R(1,2) - R(2,1))2 = (10002 - 11)2 = 99912 ＞ 20482である。これは、第２の合成及び第３の合成の重みがそれぞれ１及び０、並びに０及び１であるため、画素がガイドビットと関連付けられ且つ隣接する第１の色成分のうちの１つのみから予測されるべきであることを意味する。この場合、ガイドビットは1binであり、同一列の隣接画素が予測として使用されるべきであることを示す。すなわち、
2011514024.tif 000075
である。
【０１２６】
位置(2, 3)にある画素に対してこの手順を繰り返すことにより、(R(1,3) - R(2,2))2 = (10003 - 10003)2 = 0 ＜ 20482が得られる。従って、画素は、隣接する赤色成分の双方から予測されるべきである。すなわち、
2011514024.tif 000076
である。同一の演算が第２の行の最後の画素に対して実行され、以下の部分的に復号化されたブロックが得られる。
2011514024.tif 000077
次に、位置(3, 2)にある画素が復号化される。隣接する色成分R(2,2)とR(3,1)との間の差分は計算され、２乗差は事前定義済み閾値と比較される。すなわち、(R(2,2) - R(3,1))2 = (10003 - 12)2 = 99912 ＞ 20482である。これは、画素がガイドビットと関連付けられ且つ隣接する第１の色成分のうちの１つのみから予測されるべきであることを意味する。この場合、ガイドビットは0binであり、同一行の隣接画素が予測として使用されるべきであることを意味する。すなわち、
2011514024.tif 000078
である。第３の行に沿ってこの手順を継続することにより、以下のブロックが得られる。
2011514024.tif 000079
最後に、最後の列の残りの画素が処理される。この場合、それらの画素の全てが各々の隣接画素の平均赤色成分から予測される。以下の第１の色成分に対する最終的なブロックが与えられる。
2011514024.tif 000080
その後、２つの残りの色成分が復号化される。開始画素及び再開画素に対する第２の予測誤差は、圧縮ブロックから判定されるようにそれぞれ１９及び９であると仮定される。これは、G(1,1) - R(1,1) = 19且つG(2,1) - R(2,1) = 9であることを意味する。これらの２つの画素の緑色成分は、単純に各復号化赤色成分を予測誤差に加算することにより取得され、G(1,1) = 10020及びG(2,1) = 20を得る。
【０１２７】
残りの画素は、緑色成分に対して開始値及び再開値から開始して復号化される。手順は、最後の青色成分に対して繰り返される。
【０１２８】
＜実施の態様＞
図１６は、本発明の教示が適用されるカラーバッファアーキテクチャ１を示す概略図である。アーキテクチャは、特にカラーバッファを含む画素ブロックを格納するためのランダムアクセスメモリ（ＲＡＭ）５０を含む。バッファユニット１０は、ＲＡＭ５０から取り出した圧縮ブロックを伸張するための本発明に係る伸張器２００を含む。伸張ブロック又は復号化ブロックは、バッファユニット１０の関連するタイルキャッシュ１４に一時的に格納される。更に、ＲＡＭ５０に格納するためにキャッシュ１４に存在する画素ブロックを圧縮する本発明に係る圧縮器１００がバッファユニット１０に提供される。
【０１２９】
好適な一実施形態において、バッファユニット１０は、タイルテーブルキャッシュ１２を更に含む。このテーブルキャッシュ１２は、画素ブロックと関連し且つカラーバッファデータとは別に保持されるヘッダ情報を格納する。一般にタイルテーブルエントリは、関連する画素ブロックが圧縮されずにＲＡＭ５０に格納されるか又は圧縮されてＲＡＭ５０に格納されるかを信号伝送するフラグを含む。後者の場合、種々の圧縮ブロックが種々の合計ビット長を有することができるため、フラグは圧縮ブロックのサイズを信号伝送するのが好ましい。例えば、２ビットのフラグは、非圧縮ブロック、元のサイズの５０％で圧縮された圧縮ブロック、元のサイズの２５％で圧縮された圧縮ブロック又はfast-color-clearedを信号伝送するために使用される。
【０１３０】
展開器又は展開ユニット２０は、バッファユニット１０に接続され、画素の実際の展開を実行する。展開器２０は、画素の奥行き及び色を算出するために採用される１つ又は複数の画素パイプライン３０に接続される。各画素パイプライン３０は、先に描かれた幾何学的形状により隠蔽される画素、すなわちより大きな奥行き値を有する画素を廃棄する役割を果たす奥行きテストユニット４０に接続される。画素パイプライン３０及び奥行きテストユニット４０の順序は、図１６に開示される順序から交換されてもよい。
【０１３１】
＜圧縮器＞
図１７は、本発明に係る圧縮器１００を示す概略ブロック図である。圧縮器１００は、圧縮器により圧縮される複数画素ブロックの画素の赤（第１の）色成分の予測を提供するように構成される予測提供器１１０を含む。予測提供器１１０は、現在の画素に隣接して位置付けられ且つブロックの同一の画素列又は画素行の先行位置にある２つの隣接画素の赤色成分の間の差分を計算するように構成される差分計算機を含む。画素に対して選択する特定の予測は、少なくとも部分的にこの差分に基づいて判定される。
【０１３２】
差分又は２乗差の絶対値が事前定義済み閾値より小さい場合、提供器１１０の予測計算機１１４は起動され、２つの隣接画素の赤色成分の第１の重み付き合成に基づいて画素の色成分予測を計算する。予測計算機１１４は、それらの２つの隣接する赤色成分の平均を判定するのが好ましい。予測は、可能性としてブロックの画素の更なる色成分を利用して平均から計算されるが、平均と等しいのが好ましい。
【０１３３】
しかし、差分が閾値より小さくない場合、提供器１１０の予測選択器１１６が起動される。この予測選択器１１６は、２つの隣接画素の赤色成分の第２の重み付き合成及び第３の異なる重み付き合成のうちの一方を画素に対する予測として選択する。予測選択器１１６は、赤色成分の第２の重み付き合成及び第３の重み付き合成のそれぞれを計算するように更に構成されるのが好ましい。
【０１３４】
好適な一実施形態において、差分計算機１１２は、差分R(i-1)j - Ri(j-1)が閾値より小さくない場合、２つの隣接画素の赤色成分の第２の重み付き合成と現在の画素との間の第１の差分及び隣接画素の赤色成分の第３の重み付き合成と現在の画素との間の第２の差分を計算する。予測選択器１１６は、現在の画素の赤色成分の予測を選択するためにこれらの２つの計算された差分を使用する。一般に選択器１１６は、第１の差分及び第２の差分のうち大きさに関して最小の差分を結果として与える第２の重み付き合成及び第３の重み付き合成のうちの一方を選択する。
【０１３５】
ガイドビット提供器１１８は、予測選択器１１６に機能的に接続されて構成される。提供器は、予測選択器１１６により色成分予測子として選択される重み付き合成及び選択された予測方向を表すガイドビットを生成する。
【０１３６】
圧縮器１００は、画素の赤色成分及び提供器１１０から提供された予測に基づいて現在の画素に対する予測誤差を計算するための誤差計算機１２０を更に含む。誤差は、（真の）色成分と予測との間の差分であるのが好ましい。
【０１３７】
表現判定器１３０は、計算された予測誤差を処理し、符号化誤差表現を得る。結果として得られる圧縮ブロックは、現在の画素に対するこの符号化誤差表現を含み、且つ採用された場合、すなわち予測計算機１１４ではなく予測選択器１１６が画素に対する色成分予測を提供した場合はガイドビットを含む。
【０１３８】
画素の赤色成分は、圧縮器１１０により圧縮されている。手順は、ブロック中の他の画素に対して繰り返されるのが好ましい。更に、画素の緑（第２の）色成分を圧縮する場合、圧縮器１００の成分差分計算機１４０が起動される。計算機１４０は、ブロックの画素毎に画素の緑色成分と赤色成分との間の差分Gij - Rijを計算する。
【０１３９】
そのような場合、差分計算機１１２は、所定の画素に対して事前定義済み予測方向の２つの隣接画素の赤色成分の間の差分が閾値を超えるか否かを調査する。差分が閾値より小さい場合、予測計算機１１４は、第１の隣接画素の緑色成分と赤色成分との間の第１の差分及び第２の隣接画素の緑色成分と赤色成分との間の第２の差分の第１の重み付き合成（赤色成分の第１の重み付き合成と同一の非ゼロ重みを採用するのが好ましい）に基づいて画素に対する第２の予測を計算する。好適な一実施形態において、第２の予測は、第１の差分及び第２の差分の平均に基づいて計算されるが、平均と等しいのが更に好ましい。
【０１４０】
差分が閾値を超える場合、予測選択器１１６は、第１の差分及び第２の差分の第２の重み付き合成及び第３の重み付き合成（赤色成分の第２の重み付き合成及び第３の重み付き合成と同一の重みをそれぞれ採用するのが好ましい）のうちの一方、すなわちG(i-1)j - R(i-1)j又はGi(j-1) - Ri(j-1)を現在の画素に対する第２の予測として選択する。選択器１１６は、それらの２つの重み付き合成のうち第２の予測として使用する重み付き合成を選択するために、画素に割り当てられる先に判定されたガイドビットを使用するのが好ましい。あるいは、差分計算機は、差分Rij - WC2及びRij - WC3を再度計算し、それに基づいて第２の予測を選択できる。
【０１４１】
誤差計算機１２０は、予測提供器１１０により提供される予測と色成分差分Gij - Rijとの間の予測誤差を計算する。判定器１３０は、第２の予測に対する計算された予測誤差の符号化表現を判定し、その結果は圧縮ブロックに含まれる。
【０１４２】
成分差分計算機１４０は、ブロックの画素の青（第３の）色成分と緑色成分との差分Bij - Gijを更に計算するのが好ましい。これらの差分は、青色成分予測及び第３の符号化予測誤差表現を画素に提供するために上述したように処理される。
【０１４３】
圧縮器１００のユニット１１０〜１４０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット１１０〜１４０は、圧縮器１００に共に実現されてもよい。あるいは、いくつかのユニットがカラーバッファアーキテクチャの他の場所に提供される分散型実現例も可能である。
【０１４４】
図１８は、図１７の表現判定器１３０の好適な一実現例を示すブロック図である。判定器１３０は、誤差変更器１３２を含む。この変更器１３２は、計算された予測誤差を処理し、上述したように正の予測誤差を得る。すなわち、負の予測誤差（及びゼロ値）の場合には予測誤差xを関数n(x) = -2xに入力し、正の予測誤差の場合には予測誤差xを関数p(x) = 2x -1に入力する。結果として得られる変更予測誤差は、好ましくはGolomb-Rice符号器１３４により符号化される。この符号器１３４は、誤差変更器１３２からの正の誤差の符号化に基づいて符号化予測誤差表現を出力する。
【０１４５】
一般に、符号器１３４は、数字2kを得るために採用される指数値kを探索するための値探索器を含む。変更予測誤差は、2kにより除算される。値kは、ブロック中の画素が同一の値kを共有するようにそれらの画素のグループに対して判定されるのが好ましい。これにより、ブロックの画素毎に専用の値kを有する場合と比較して最終的な圧縮ブロック表現のビット数が節約される。値探索器１３１は、0 ≦ k ≦ 15等の全ての利用可能な値kの間で全数探索を実行できる。最も効率的な符号化、すなわち最短の圧縮ブロック表現をもたらす値kが画素グループに対して選択及び使用される。計算コストがより少ない一実施形態において、値探索器はp-4 ≦ k ≦ pの中でのみ探索を実行する。ここで、pは調査される画素グループの最大の第１の色成分の最上位ビットのビット位置である。
【０１４６】
除算器１３３は、判定された値kを使用し、現在のグループの画素の予測誤差を数字2kで除算して商及びkビットの余りを得る。アルファ符号器１３５は、周知の手順に従って商をアルファ符号化するために提供される。画素の符号化予測誤差表現は、アルファ符号化された商、余り及び値kを含む。
【０１４７】
表現判定器１３０のユニット１３２〜１３５は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット１３２〜１３５は、表現判定器１３０に共に実現されてもよい。あるいは、いくつかのユニットが圧縮器の他の場所に提供される分散型実現例も可能である。
【０１４８】
図１９は、圧縮器１００の別の実施形態を示す概略ブロック図である。圧縮器は、図１７に関連して上述したユニットに加えて開始選択器１５０を含む。開始選択器１５０は、ブロックに対する開始成分値を選択する。この値は、ブロック中の選択された画素の赤色成分と等しい。この画素は、ブロックの事前定義済み画素位置を有するのが好ましく、左上の画素であるのが好ましい。圧縮ブロック表現は、好ましくは非符号化ビットシーケンスとして開始成分値の表現を含む。すなわち、開始値がPビットシーケンスである場合、圧縮ブロックに含まれる表現は同一のPビットシーケンスである。
【０１４９】
予測提供器１１０は、開始画素と同一の行及び列、好ましくは第１の行及び列に存在する画素に対して予測を提供するように構成される。これらの画素に対して、各予測は、現在の画素と同一の行又は列の開始画素に向かって直前の位置を有する画素の赤色成分（第１の予測の場合）、緑色成分と赤色成分との間の差分（第２の予測の場合）又は青色成分と緑色成分との間の差分（第３の予測の場合）と等しくなるように選択される。
【０１５０】
圧縮器１００は、再開成分値を選択する再開選択器１６０を更に含むのが好ましい。選択器１６０は、ブロックの選択された再開画素の赤色成分と等しい再開値を提供する。再開画素の識別は、開始画素以外の各画素位置を調査する全数探索に従って実行される。候補再開位置毎にブロックの圧縮候補表現が判定される。最も効率的な圧縮、すなわち圧縮ブロックの最短のビットシーケンスを結果として与える候補再開位置が選択されるの好ましい。また、再開選択器１６０の動作が行なわれない圧縮候補表現、すなわちブロックに再開画素のない圧縮候補表現が判定され、符号化効率に関して再開値を有する候補と比較されるのが好ましい。そのような場合、再開ビットは、圧縮ブロックに含まれ、ブロックが再開画素を有するか否かを信号伝送する。
【０１５１】
計算コストの高い全数探索を採用する代わりに、再開選択器１６０は開始選択器からの開始成分値と最も異なる赤色成分を有するブロックの画素を識別できる。赤色成分と開始値との間の第１の差分Rij - Rstart及び赤色成分と最も異なる値との間の第２の差分Rij - Rdiffが画素毎に計算される。第１の差分がある画素に対して最も小さい場合、画素分類器１７０はその画素を開始成分値の予測として分類する。しかし、|Rij - Rdiff| ＜ |Rij - Rstart|である場合、分類器１７０は、その画素を再開成分値の予測として分類する。
【０１５２】
再開選択器１６０は、再開値の予測と考えられるそれらの全ての画素を調査し、再開値の予測と考えられるトラバーサル順（４×４の画素ブロックの場合、(1, 1) → (1, 4), (2, 1) → (2, 4), (3, 1) → (3, 4), (4, 1) → (4, 4)）で第１の画素である再開画素を識別する。圧縮ブロック表現は、再開画素の識別された位置の表現及び再開値の表現、すなわち識別された再開画素の赤色成分値の表現を含むのが好ましい。
【０１５３】
圧縮器１００において、画素調査器１８０は、位置(i-1, j)及び(i, j-1)の２つの隣接画素に対して位置(i, j)の現在の画素と同一の分類が行なわれるかを調査するように構成される。いずれの隣接画素に対しても同一の分類が行なわれない場合、画素に対して利用可能な適切な予測は存在しない。圧縮器１００は、画素再順序付け１９０を介してこの問題を解決する。再順序付けユニット１９０は、好ましくは新しい位置(i-1, j)又は(i, j-1)の少なくとも１つの新しい隣接画素に対して現在の画素と同一の分類が行なわれるように、ブロックの画素に対する相対位置を再順序付けする。圧縮ブロック表現は、任意の画素再順序付けが現在のブロックに対して実行されたか否かを示す回転ビットを含むのが好ましい。
【０１５４】
圧縮器１００のユニット１１０〜１９０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット１１０〜１９０は、圧縮器１００に共に実現されてもよい。あるいは、いくつかのユニットがカラーバッファアーキテクチャの他の場所に提供される分散型実現例も可能である。
伸張器
図２０は、圧縮画素ブロックを伸張するための本発明に係る伸張器２００の一実施形態を示すブロック図である。伸張器２００は、復号化される画素の予測誤差を判定するように構成される誤差判定器２１０を含む。この予測誤差は、画素に割り当てられ且つ圧縮画素ブロックに含まれる符号化誤差表現に基づいて判定される。
【０１５５】
伸張器２００において、予測提供器２２０は、画素の赤色成分の予測を提供するために実現される。提供器２２０は、現在の画素と同一のブロック行及びブロック列に存在する２つの隣接画素の先行復号化赤色成分の間の差分を計算する差分計算機２２２を含む。この差分、あるいはより好ましくは絶対値又は２乗差は、事前定義済み閾値と比較される。差分が閾値より小さい場合、予測計算機２２４は起動され、それらの２つの隣接する色成分の第１の（非ゼロ）重み付き合成に基づいて予測を計算する。上述したように、計算は、２つの色成分の平均に基づいて実行されるのが好ましい。
【０１５６】
しかし、差分が閾値を超える場合、予測選択器２２６は、隣接画素の先行復号化色成分の第２の重み付き合成及び第３の重み付き合成のうちの一方を予測として選択する。この選択は、画素に割り当てられ且つ圧縮画素ブロックに含まれるガイドビットに基づいて更に実行される。
【０１５７】
表現計算機２３０は、誤差判定器２１０からの予測誤差及び提供器２２０からの予測を使用して、画素の赤色成分を計算する。
【０１５８】
従って、画素の緑色成分を復号化する場合、誤差判定器２１０は圧縮ブロックに含まれるデータから画素に対する第２の誤差予測を判定する。予測計算機２２４は、２つの隣接画素の赤色成分の間の差分が閾値より小さい場合、上述したように２つの隣接画素の先行復号化緑色成分と先行復号化赤色成分との間の差分の第１の重み付き合成に基づいて第２の予測を計算する。他の例において、すなわち、差分が閾値を超える場合、選択器２２６は、ガイドビットを使用して、２つの隣接画素の先行復号化緑色成分と先行復号化赤色成分との間の差分の第２の重み付き合成及び第３の重み付き合成のうちの一方を第２の予測として選択する。
【０１５９】
表現計算機２３０は、判定器２１０からの第２の予測誤差を予測提供器２２０からの第２の予測に加算するのが好ましい。また、画素の先行復号化赤色成分はその合計に加算され、復号化緑色成分が得られる。伸張器２００は、第３の予測誤差を判定し且つ第３の予測を提供することにより青色成分に対してこの手順を繰り返す。先行復号化緑色成分はそれらの第３の誤差及び予測に追加され、画素の復号化青色成分が得られる。
【０１６０】
伸張器２００のユニット２１０〜２３０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット２１０〜２３０は、伸張器２００に共に実現されてもよい。あるいは、いくつかのユニットがカラーバッファアーキテクチャの他の場所に提供される分散型実現例も可能である。
【０１６１】
図２１は、誤差判定器２１０の一実施形態を示す概略ブロック図である。判定器２１０は、圧縮ブロックの符号化予測誤差表現に対して動作するGolomb-Rice復号器２１２を含む。特に復号器２１２は、画素のアルファ符号化された商、kビットの余り及び値kを使用して上述したように予測誤差を計算する。
【０１６２】
誤差判定器２１０のユニット２１２は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット２１２は、誤差判定器２１０に共に実現されてもよい。あるいは、いくつかのユニットが伸張器の他の場所に提供される分散型実現例も可能である。
【０１６３】
図２２は、伸張器２００の別の実施形態を示す図である。伸張器２００は、図２０に関連して上述した伸張器ユニットに加えて開始提供器２４０を含む。この開始提供器２４０は、ブロックの開始画素の赤色成分を提供するように実現される。この成分は、圧縮画素ブロックに含まれる開始成分値と等しくなるように設定されるのが好ましい。
【０１６４】
予測提供器２２０は、開始画素と同一の行又は列の次の先行画素の赤色成分、緑色成分と赤色成分との差分及び青色成分と緑色成分との差分に等しくなるように予測を設定することによりその行及び列の画素に予測を提供するのが好ましい。
【０１６５】
伸張器２００において、対応する再開識別器２５０は、任意の再開画素がブロックに存在するかを判定するように構成される。この判定は、圧縮画素ブロックに含まれる再開ビットに基づいて行なわれる。再開値が使用されるべきである場合、識別器２５０は、圧縮ブロックの再開位置識別器を使用して、再開画素と考えられるブロック中の特定の画素位置を識別する。
【０１６６】
再開提供器２６０は、圧縮ブロックに含まれる再開成分値と等しくなるように再開画素の赤色成分を設定する。
【０１６７】
伸張器２００において、オプションの画素再順序付けユニット２７０は、画素が復号化されると画素位置の再順序付けが実行されるべきであるかを判定するために再順序付けビット又はワードを調査するように実現される。
【０１６８】
伸張器２００のユニット２１０〜２７０は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。ユニット２１０〜２７０は、伸張器２００に共に実現されてもよい。あるいは、いくつかのユニットがカラーバッファアーキテクチャの他の場所に提供される分散型実現例も可能である。
【０１６９】
図２３は、種々の解像度に対する「影」のシーンの圧縮性能を示す図である。１００％は元の帯域幅を表す。破線はHasselgren及びAkenine-Moller（非特許文献２）により提示されるデプスバッファ圧縮方式に対応し、実線は本発明のカラーバッファ圧縮を表す。尚、本発明は元のサイズの４５％〜３９％にデータを圧縮する。これは、帯域幅が全てのテストされた解像度に対して５０％を上回って減少されることを意味し、大きな利得である。
【０１７０】
種々のサイズの三角形に対して性能をテストするために、同一シーンが複数の解像度で使用されている。低解像度は、三角形が画素と比較して小さいこと、すなわち「複雑さの高い」種類のシーンを意味する。高い解像度は、三角形が画素と比較して大きいことを意味し、「複雑さの低い」種類のシーンを表す。
【０１７１】
添付の請求の範囲により規定される本発明の範囲から逸脱せずに、種々の変形及び変更が本発明に対して行なわれてもよいことが当業者には理解されるだろう。
【図１】
2011514024.tif 000081
【図２】
2011514024.tif 000082
【図３】
2011514024.tif 000083
【図４】
2011514024.tif 000084
【図５】
2011514024.tif 000085
【図６】
2011514024.tif 000086
【図７】
2011514024.tif 000087
【図８Ａ】
2011514024.tif 000088
【図８Ｂ】
2011514024.tif 000089
【図８Ｃ】
2011514024.tif 000090
【図９】
2011514024.tif 000091
【図１０】
2011514024.tif 000092
【図１１】
2011514024.tif 000093
【図１２】
2011514024.tif 000094
【図１３】
2011514024.tif 000095
【図１４】
2011514024.tif 000096
【図１５】
2011514024.tif 000097
【図１６】
2011514024.tif 000098
【図１７】
2011514024.tif 000099
【図１８】
2011514024.tif 000100
【図１９】
2011514024.tif 000101
【図２０】
2011514024.tif 000102
【図２１】
2011514024.tif 000103
【図２２】
2011514024.tif 000104
【図２３】
2011514024.tif 000105
【手続補正書】
【提出日】平成21年10月13日(2009.10.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
各々が複数の色成分を有する色を含む複数の画素のブロックを圧縮する方法であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素の第１の色成分の第１の予測を提供するステップであって、
ａ）前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の間の差分の大きさが閾値より小さい場合に、非ゼロ重みを採用する前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の第１の重み付き合成に基づいて、前記第１の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成、及び、前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうち、一方に基づくように前記第１の予測を選択し、
ｃ）前記差分の大きさが前記閾値より小さくない場合に、前記第２の重み付き合成及び前記第３の重み付き合成のうち、前記選択した一方と関連付けられるガイドビットを提供する
ことにより提供するステップと、
−前記ブロックの画素毎に、前記画素の第２の色成分と前記画素の前記第１の色成分との間の差分を計算するステップと、
−前記少なくとも１つの画素の第２の色成分の第２の予測を提供するステップであって、
ａ）前記差分の大きさが前記閾値より小さい場合に前記第１の隣接画素の前記第２の色成分と前記第１の色成分との間の第１の差分、及び、前記第２の隣接画素の前記第２の色成分と前記第１の色成分との間の第２の差分の、第１の重み付き合成に基づいて前記第２の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記ガイドビットに基づいて、前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と、前記第１の差分及び前記第２の差分の第３の異なる重み付き合成との、一方に基づくように前記第２の予測を選択する
ことにより提供するステップと、
−前記少なくとも１つの画素の前記第１の色成分及び前記第１の予測に基づいて第１の予測誤差を計算するステップと、
−前記少なくとも１つの画素の前記第２の色成分及び前記第１の色成分との差分、及び、前記第２の予測に基づいて第２の予測誤差を計算するステップと、
−前記第１の予測誤差の第１の符号化表現を判定するステップと、
−前記第２の予測誤差の第２の符号化表現を判定するステップと
を備え、
前記圧縮ブロック表現は、前記第１の符号化表現、前記第２の符号化表現、及び、前記オプションのガイドビットを含む、方法。
【請求項２】
前記計算ステップａ）は、前記第１の隣接画素の前記第１の色成分と前記第２の隣接画素の前記第１の色成分との差分の大きさが前記閾値より小さい場合に、
前記第１の隣接画素の前記第１の色成分と前記第２の隣接画素の前記第１の色成分との平均に基づいて、前記第１の予測を計算するステップを含む、請求項１に記載の方法。
【請求項３】
前記選択ステップｂ）は、
−前記第２の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第１の差分を計算するステップと、
−前記第３の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第２の差分を計算するステップと、
−前記第１の差分及び前記第２の差分に基づいて前記第１の予測を選択するステップと
を含む、請求項１又は２記載の方法。
【請求項４】
−wが重みであり、R(i-1)jが前記第１の隣接画素の前記第１の色成分であり、Ri(j-1)が前記第２の隣接画素の前記第１の色成分である場合に、w × R(i-1)j + (1 - w) × Ri(j-1)に基づいて前記第２の重み付き合成を計算するステップと、
−(1 - w) × R(i-1)j + w × Ri(j-1)に基づいて前記第３の重み付き合成を計算するステップと
を更に含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
−前記ブロック中の選択した画素の第１の色成分となる開始成分値を選択するステップであって、前記圧縮ブロック表現が前記開始成分値の非予測表現を含むステップと、
−前記選択した画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素毎に、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を選択するステップと
を更に含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記ブロックは、前記複数の画素の色において不連続エッジを含み、
前記方法は、前記開始成分として選択されるべき第１の色成分を有する前記選択した画素に対して、前記不連続エッジの別の側に位置する前記ブロックの前記識別された画素の第１の色成分となる再開成分値を選択するステップを更に含み、
前記圧縮ブロック表現は、前記再開成分値の非予測表現と前記ブロックの識別された画素の画素位置の表現とを含む、請求項５に記載の方法。
【請求項７】
−前記開始成分値又は前記再開成分値を予測可能なものとして、前記ブロックの前記画素を分類するステップと、
−前記第１の隣接画素及び前記第２の隣接画素に対して前記少なくとも１つの画素と同一の分類が行なわれるかを調査するステップと、
−前記第１の隣接画素及び前記第２の隣接画素のいずれに対しても前記少なくとも１つの画素と同一の分類が行なわれない場合、前記ブロックの前記画素を再順序付けするステップと
を更に含み、
前記圧縮ブロック表現が任意の画素再順序付けを表す回転ビットを含む、請求項６記載の方法。
【請求項８】
前記分類するステップは、
−前記ブロックの画素の第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始色成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さい場合に、前記開始成分値を予測可能なものとして前記ブロックの画素を分類するステップと、
−前記ブロックの前記画素の前記第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始色成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さくない場合に、前記開始成分値を予測可能なものとして前記ブロックの画素を分類するステップと、
を含む、請求項７記載の方法。
【請求項９】
圧縮画素ブロックを伸張する方法であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれる第１の符号化誤差表現に基づいて第１の予測誤差を判定するステップと、
−前記少なくとも１つの画素に対して、前記圧縮画素ブロックに含まれる第２の符号化表現に基づいて第２の予測誤差を判定するステップと、
−前記少なくとも１つの画素の第１の色成分の第１の予測を提供するステップであって、
ａ）前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の間の差分の大きさが閾値より小さい場合に、非ゼロ重みを採用する前記ブロックの第１の隣接画素の第１の色成分及び前記ブロックの第２の隣接画素の第１の色成分の第１の重み付き合成に基づいて、前記第１の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれるガイドビットに基づいて、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成及び前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうち、一方に基づくように前記第１の予測を選択する
ことにより提供するステップと、
−前記少なくとも１つの画素の第２の色成分の第２の予測を提供するステップであって、
ａ）前記差分の大きさが前記閾値より小さい場合に、前記第１の隣接画素の前記第２の色成分と前記第１の色成分との間の第１の差分、及び、前記第２の隣接画素の前記第２の色成分と前記第１の色成分との間の第２の差分の、第１の重み付き合成に基づいて前記第２の予測を計算し、
ｂ）前記差分の大きさが前記閾値より小さくない場合に、前記ガイドビットに基づいて、前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と、前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうち、一方に基づくように前記第２の予測を選択する
ことにより提供するステップと、
−前記第１の予測誤差及び前記第１の予測に基づいて、前記少なくとも１つの画素の前記第１の色成分の表現を計算するステップと、
−前記第２の予測誤差及び前記第２の予測に基づいて、前記少なくとも１つの画素の前記第２の色成分の表現を計算するステップと
を備える方法。
【請求項１０】
−前記圧縮画素ブロックに含まれる開始成分値の表現に基づいて、前記ブロックの開始画素の第１の色成分を提供するステップと、
−前記開始画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分になるように前記第１の予測を提供するステップと
を更に含む、請求項９に記載の方法。
【請求項１１】
前記圧縮画素ブロックの再開画素位置の表現に基づいて、前記ブロックの再開画素を識別するステップと、
−前記圧縮画素ブロックに含まれる再開成分値の表現に基づいて、前記再開画素の第１の色成分を提供するステップと
を更に含む、請求項１０に記載の方法。
【請求項１２】
前記圧縮画素ブロックに含まれる回転ビットに基づいて、前記ブロックの前記画素を再順序付けするステップを更に含む、請求項１１に記載の方法。
【請求項１３】
各々が複数の色成分を有する色を含む複数の画素のブロックを圧縮するブロック圧縮器であって、
−前記ブロックの画素毎に前記画素の各第１の色成分と前記画素の各第２の色成分との間の差分を計算する成分差分計算器と、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素の前記第１の色成分の第１の予測と、前記第２の色成分の第２の予測とを提供するように構成された予測提供器であって、
−前記ブロックの第１の隣接画素の第１の色成分と前記ブロックの第２の隣接画素の第１の色成分との間の差分を計算する差分計算器と、
−前記差分の大きさが閾値より小さい場合に動作可能であり、非ゼロ重みを採用する前記隣接画素の前記第１の色成分の第１の重み付き合成に基づいて前記第１の予測を計算し、前記第１の隣接画素の前記第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の前記第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて、前記第２の予測を計算するように構成された予測計算器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記隣接画素の前記第１の色成分の第２の異なる重み付き合成、及び、前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうち、一方に基づくように前記第１の予測を選択するように構成された予測選択器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記第２の選択器により選択された、前記第２の重み付き合成及び前記第３の重み付き合成の重み付き合成と関連付けられるガイドビットを提供するように構成されたガイドビット提供器とを備え、
前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記ガイドビットに基づいて、前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうち一方に基づくように前記第２の予測を選択するように構成された予測提供器と、
−前記少なくとも１つの画素の前記第１の色成分及び前記第１の予測に基づいて第１の予測誤差を計算し、前記少なくとも１つの画素の前記第２の色成分及び前記第１の色成分との差分と前記第２の予測とに基づいて第２の予測誤差を計算する誤差計算器と、
−前記第１の予測誤差の第１の符号化表現と、前記第２の予測誤差の第２の符号化表現とを判定する表現判定器とを備え、
前記圧縮ブロック表現が、前記第１の符号化表現、前記第２の符号化表現、及び、前記オプションのガイドビットを含む、ブロック圧縮器。
【請求項１４】
前記差分計算器は、
ｉ）前記第２の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第１の差分を計算し、
ｉｉ）前記第３の重み付き合成と前記少なくとも１つの画素の前記第１の色成分との間の第２の差分を計算するように構成され、
前記予測選択器は、前記第１の差分及び前記第２の差分に基づいて前記第１の予測を選択するように構成された、請求項１３に記載の圧縮器。
【請求項１５】
前記ブロックの選択された画素の第１の色成分となる開始成分値を選択する開始選択器を更に備え、
前記圧縮ブロック表現は前記開始成分値の非予測表現を含み、
前記予測提供器は、前記選択された画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を提供するように構成された、
請求項１３又は１４に記載の圧縮器。
【請求項１６】
前記ブロックは、前記複数の画素の色において不連続エッジを含み、
前記圧縮器は、前記開始成分として選択される第１の色成分を有する前記選択した画素に対して、前記不連続エッジの別の側に位置する前記ブロックの識別された画素の第１の色成分になるように再開成分値を選択する再開選択器を更に備え、
前記圧縮ブロック表現は、前記再開値の非予測表現及び前記ブロックの前記識別された画素の画素位置の表現を含む、請求項１５記載の圧縮器。
【請求項１７】
−前記開始成分値又は前記再開成分値を予測可能なものとして、前記ブロックの前記画素を分類する画素分類器と、
−前記第１の隣接画素及び前記第２の隣接画素に対して前記少なくとも１つの画素と同一の分類が行なわれるかを調査する画素調査器と、
−前記第１の隣接画素及び前記第２の隣接画素のいずれに対しても前記少なくとも１つの画素と同一の分類が行なわれない場合、前記ブロックの前記画素を再順序付けする画素再順序付けユニットと
を更に備え、
前記圧縮ブロック表現が任意の画素再順序付けを表す回転ビットを含む、請求項１６記載の圧縮器。
【請求項１８】
前記画素分類器が、
ｉ）前記画素の第１の色成分と前記開始成分値との間の差分の大きさが、前記画素の前記第１の色成分と前記開始成分値と最も異なる前記ブロックの第１の色成分との間の差分の大きさより小さい場合、前記開始成分値を予測可能なものとして前記ブロックの画素を分類し、
ｉｉ）前記画素の前記第１の色成分と前記開始成分値との間の差分の大きさが前記画素の前記第１の色成分と前記開始成分値と最も異なる前記ブロックの前記第１の色成分との間の差分の大きさより小さくない場合、前記開始成分値を予測可能なものとして前記ブロックの前記画素を分類する、
ように構成された請求項１７記載の圧縮器。
【請求項１９】
圧縮画素ブロックを伸張するブロック伸張器であって、
−前記ブロックの少なくとも１つの画素に対して、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれる第１の符号化誤差表現に基づいて第１の予測誤差を判定し、前記少なくとも１つの画素に対して、前記圧縮画素ブロックに含まれる第２の符号化表現に基づいて第２の予測誤差を判定する誤差判定器と、
−前記少なくとも１つの画素の第１の色成分の第１の予測と第２の色成分の第２の予測を提供する予測提供器であって、
−前記ブロックの第１の隣接画素の第１の色成分と前記ブロックの第２の隣接画素の第１の色成分との間の差分を計算する差分計算器と、
−前記差分の大きさが閾値より小さい場合に動作可能であり、非ゼロ重みを採用する前記隣接画素の前記第１の色成分の第１の重み付き合成に基づいて前記第１の予測を計算し、前記第１の隣接画素の前記第２の色成分と前記第１の色成分との間の第１の差分及び前記第２の隣接画素の前記第２の色成分と前記第１の色成分との間の第２の差分の第１の重み付き合成に基づいて前記第２の予測を計算するように構成された予測計算器と、
−前記差分の前記大きさが前記閾値より小さくない場合に動作可能であり、前記少なくとも１つの画素と関連付けられ且つ前記圧縮画素ブロックに含まれるガイドビットに基づいて前記隣接画素の前記第１の色成分の第２の異なる重み付き合成及び前記隣接画素の前記第１の色成分の第３の異なる重み付き合成のうちの一方に基づくように前記第１の予測を選択し、前記ガイドビットに基づいて、前記第１の差分及び前記第２の差分の第２の異なる重み付き合成と前記第１の差分及び前記第２の差分の第３の異なる重み付き合成とのうち、一方に基づくように前記第２の予測を選択するように構成された予測選択器と
を含む予測提供器と、
−前記第１の予測誤差及び前記第１の予測に基づいて前記少なくとも１つの画素の前記第１の色成分の表現を計算し、前記第２の予測誤差及び前記第２の予測に基づいて前記少なくとも１つの画素の前記第２の色成分の表現を計算する表現計算器と
を備えるブロック伸張器。
【請求項２０】
前記圧縮画素ブロックに含まれる開始成分値の表現に基づいて前記ブロックの開始画素の第１の色成分を提供する開始提供器を更に備え、
前記予測提供器は、前記開始画素を含む第１のブロック行又は第１のブロック列の少なくとも１つの残りの画素に対して、前記第１のブロック行又は前記第１のブロック列の先行する各隣接画素の第１の色成分となる前記第１の予測を提供する
ように構成された請求項１９記載の伸張器。
【請求項２１】
−前記圧縮画素ブロックの再開画素位置の表現に基づいて前記ブロックの再開画素を識別する再開識別器と、
−前記圧縮画素ブロックに含まれる再開成分値の表現に基づいて前記再開画素の第１の色成分を提供する再開提供器と
を更に備える請求項２０に記載の伸張器。
【請求項２２】
前記圧縮画素ブロックに含まれる回転ビットに基づいて前記ブロックの前記画素を再順序付けする画素再順序付けユニットを更に備える、請求項２１に記載の伸張器。
【国際調査報告】
2011514024.tif 000106
2011514024.tif 000107
2011514024.tif 000108
2011514024.tif 000109
2011514024.tif 000110
2011514024.tif 000111