(57)【要約】本発明は、アレイの複数の要素を表すデータを圧縮するための方法及び装置を提供する。データは、元のデーフのタィルタ処理バージョンから少なくとも２つの縮小サイズデータセットを生成することによって圧縮される。縮小サイズデータの各々の要素は、元のデータの複数の要素を表す。次に、元のデータは変調データを生成するために使用され、変調データの各々の要素は、元のデータに対する近似値を生成するために、縮小サイズデータセットの組み合わせる方法を特定する。縮小サイズデータセットと変調データは圧縮データとして保存される。本発明は、これらの圧縮データにアクセスして、それを解凍するために更に別の方法及び装置を提供する。
2005525616.tif 000002
【特許請求の範囲】
【請求項１】
アレイの複数の要素を表すデータを圧縮する方法であって、
（ａ）元のデータをフィルタリングすることによって、各々の要素が元のデータの複数の要素を表す、少なくとも２つの縮小サイズのデータセットを生成する段階と、
（ｂ）前記元のデータを使用して変調データを生成する段階であって、前記変調データの要素の各々が、縮小サイズデータの組み合わせ方法を特定して、前記元のデータに対する近似値を生成するようになっている段階と、
（ｃ）縮小サイズデータセット及び変調データを圧縮データとして保存する段階と、
を含むことを特徴とする方法。
【請求項２】
前記縮小サイズデータセットを生成する前記段階が、
（ａ）複数の前記要素を、中間縮小サイズデータを形成する代表要素セットに縮小するために、フィルタリングによって前記元のデータサイズを縮小する段階と、
（ｂ）前記元のデータに近似し前記元のデータと同数の要素を有する第１のレベルの低解像度データを形成するために、前記中間縮小サイズのデータを拡大縮小する段階と、
（ｃ）前記元のデータと前記第１のレベルの低解像度データとから差分データを生成する段階と、
（ｄ）前記第１のレベルの低解像度データと前記差分データとを使用して、少なくとも２つの第２のレベルの低解像度データセットを生成する段階と、
（ｅ）前記第２のレベルの低解像度データセットの各々のサイズを縮小して、前記縮小サイズデータセットを形成する段階と、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記変調データを生成する段階が、前記元のデータと前記第２のレベルの低解像度データを使用して複数の変調値を生成する段階を更に含み、各々の変調値が、前記元のデータを近似するために、前記元のデータの各々の要素に対して前記第２のレベルの低解像度データの組み合わせ方を表し、各々の変調値が、前記変調データの要素として保存されることを特徴とする請求項２に記載の方法。
【請求項４】
前記変調データを生成する段階が、
（ａ）前記元のデータと前記第２のレベルの低解像度データを使用して、複数の変調値を生成する段階であって、各々の変調値が、前記元のデータを近似するために、前記元のデータの各々の要素に対して前記第２のレベルの低解像度データの組み合わせ方を表すようになっている段階と、
（ｂ）前記縮小サイズデータと同数の要素を有する変調データを生成する段階であって、前記変調データの各々の要素が複数の変調値を表すようになっている段階と、
を更に含むことを特徴とする請求項２に記載の方法。
【請求項５】
各々の変調値が、２ビットで保存されることを特徴とする請求項４に記載の方法。
【請求項６】
他の全ての変調値が保存され、各々の保存された変調値が２ビットを専有し、前記変調値の残りが、隣接の保存された前記変調値の平均値によって暗示的に表されることを特徴とする請求項４に記載の方法。
【請求項７】
各々の変調値が、１ビットで保存されることを特徴とする請求項４に記載の方法。
【請求項８】
２つの縮小サイズデータセットのみが生成されることを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項９】
前記差分データの最大成分方向を表す主軸データを計算する段階を更に含むことを特徴とする請求項２から７のいずれか１項に記載の方法。
【請求項１０】
前記主軸データを計算する段階が、
（ａ）前記差分データの各々の要素の平均値がゼロであると想定して、前記差分データの共分散マトリックスを求める段階と、
（ｂ）前記共分散マトリックスの主固有ベクトルを求める段階と、
（ｃ）主固有ベクトルを使用して、差分データの主軸データを配置する段階と、
を更に含むことを特徴とする請求項９に記載の方法。
【請求項１１】
（ａ）前記主軸データを用いて差分データの各々の要素のドット積を計算する段階と、
（ｂ）前記段階（ａ）が負のスカラー結果を生成した場合、前記差分データの要素を否定することによって位置合わせされた差分データを生成する段階と、
（ｃ）前記位置合わせされた差分データをオーバーラップするブロック要素に分割する段階と、
（ｄ）各々のブロックの前記共分散マトリックスから主固有ベクトルを計算する段階と、
（ｅ）結果として得られた主固有ベクトルを構築して、第３のレベルの低解像度データを形成する段階と、
（ｆ）前記第３のレベルの低解像度データを拡大縮小して、フィルタ処理された軸データを生成する段階と、
によって、フィルタ処理された軸データを計算する段階を更に含むことを特徴とする請求項９又は請求項１０に記載の方法。
【請求項１２】
前記第２のレベルの低解像度データの第２のセットが、前記第１のレベルの低解像度データと実質的に同じであり、前記第２のレベルの低解像度データの第１のセットが、前記第１のレベルの低解像度データから差分データを減算することで計算され、
（ａ）前記フィルタ処理された軸データの対応する要素を用いて前記差分データの各々の要素のドット積を計算する段階と、
（ｂ）前記段階（ａ）で計算された前記ドット積が負の場合、前記第２のレベルの低解像度データの第１のセットと、前記第２のレベルの低解像度データの第２のセットとに対応する要素の値を交換する段階と、
を更に含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記変調データを生成する段階が、データの各々の要素に関する変調値ｍを、次の関数、
2005525616.tif 000040
ここで、
2005525616.tif 000041
は、元のデータの要素、
2005525616.tif 000042
は、第２のレベルの低解像度データの第１のセットに対応する要素、
2005525616.tif 000043
は、第２のレベルの低解像度データの第２のセットに対応する要素
を使用して推定する段階を含むことを特徴とする請求項２に記載の方法。
【請求項１４】
オーバーラップする局所領域の変調値を少なくとも２つのセットのグループ化する段階と、
前記グループ化された変調値を使用して、前記第２のレベルの低解像度データセットを改善する段階と、
前記改善された第２のレベルの低解像度データセットから新しい変調値を計算する段階と、
を更に含むことを特徴とする請求項２に記載の方法。
【請求項１５】
前記データを繰り返して改善することによって、最適化された第２のレベルの低解像度データ及び変調データのセットを形成することを特徴とする請求項１４に記載の方法。
【請求項１６】
請求項１のステップ（ａ）が、前記元のデータに対してウエーブレット変換を適用する段階と、高周波数情報を捨てる段階と、縮小サイズデータ内に低周波数データを保持する段階とを含むことを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項１７】
前記ウエーブレット変換が、修正線形ウエーブレット変換であることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記中間の縮小サイズデータの拡大縮小段階が、双一次拡張によって実行されることを特徴とする請求項２に記載の方法。
【請求項１９】
前記縮小サイズデータセットが、保存前に量子化されることを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項２０】
縮小サイズデータの１つのセットが１６ビットで保存されるように量子化され、縮小サイズデータの別のセットが１５ビットで保存されるように量子化されることを特徴とする請求項１９に記載の方法。
【請求項２１】
縮小サイズデータセットの各々の要素が、赤色、緑色、青色、及びアルファ成分データを有し、前記要素データのそれぞれのサイズが、前記要素が半透明か又は不透明かによって決定されることを特徴とする請求項２０に記載の方法。
【請求項２２】
不透明要素に関して、１ビットの不透明フラグ、５ビットの赤色成分、５ビットの緑色成分として成分データが保存され、青色成分は、縮小サイズデータの１つのセットに関して５ビットで、縮小サイズデータの別のセットに関して４ビットで保存されることを特徴とする請求項２１に記載の方法。
【請求項２３】
半透明要素に関して、１ビットの不透明フラグ、３ビットのアルファ成分、４ビットの赤色成分、４ビットの緑色成分として成分データが保存され、青色成分は、縮小サイズデータの１つのセットに関して４ビットで、縮小サイズデータの別のセットに関して３ビットで保存されることを特徴とする請求項２１に記載の方法。
【請求項２４】
前記データが画像データであることを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項２５】
前記データがテクスチャデータであることを特徴とする請求項２４に記載の方法。
【請求項２６】
縮小サイズデータの各々のセットの各々の要素が、前記元のデータの要素のブロックを表し、４×４の要素の単位であることを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項２７】
前記縮小サイズデータセットの４つの要素が、原寸データの単一要素に対してテクスチャを適用するように要求されることを特徴とする請求項２６に記載の方法。
【請求項２８】
前記データが、音声データであることを特徴とする前記請求項のいずれか１項に記載の方法。
【請求項２９】
圧縮データを解凍する方法であって、前記圧縮データは、少なくとも２つの縮小サイズデータと変調データとを備え、前記変調データは、非圧縮データに対する近似値を生成するために前記縮小サイズデータの組み合わせ方を定義するようになっており、前記方法は、
（ａ）前記元のデータのＮ個の要素セットの各々に関して、各々の縮小サイズデータセットの対応する要素の少数セットを識別する段階と、
（ｂ）縮小サイズデータの少数セットを使用し、各々の縮小サイズデータセットを拡張して、Ｎ個の要素の低周波数データセットを生成する段階と、
（ｃ）前記変調データの対応する要素を識別して、前記変調データの前記要素をＮ個の変調値に分割する段階と、
（ｄ）前記関連変調値を使用して、Ｎ個の要素の低周波数データセットの各々の対応する要素の重み付けを行い、Ｎ個の重み付け低解像度データセットを形成するする段階と、
（ｅ）Ｎ個の重み付け低解像度データセットの対応する要素を組み合わせて、前記元のデータのＮ個の要素部の近似値を生成する段階と、
を含むことを特徴とする方法。
【請求項３０】
前記段階（ａ）、（ｂ）、（ｃ）、及び（ｄ）が、各々の縮小サイズデータセットの全ての要素と、前記変調データの全ての要素上で実行され、前記元のデータ全ての近似値を生成することを特徴とする請求項２９に記載の方法。
【請求項３１】
前記段階（ａ）、（ｂ）、（ｃ）、及び（ｄ）が、各々の縮小サイズデータセットのＰ個の要素ブロックと、前記変調データの対応するＰ個の要素ブロック上で実行され、前記元のデータのＰ×Ｎ個の要素のブロックの近似値を生成することを特徴とする請求項２９に記載の方法。
【請求項３２】
前記縮小サイズデータの要素と前記変調データの要素が、前記元のデータの１６個の要素に対応することを特徴とする請求項２９から３１のいずれか１項に記載の方法。
【請求項３３】
前記縮小サイズデータの要素と前記変調データの要素が、４×４要素アレイに配列された前記元のデータの要素のブロックに対応することを特徴とする請求項２９から３１のいずれか１項に記載の方法。
【請求項３４】
Ｐが４でＮが１６であり、前記元のデータの要素が、縮小データセットと変調データの４つの要素を処理することによって推定され、前記縮小サイズデータセットと変調データの各々の要素が、元のデータの４×４の要素のブロックに対応し、４×４ブロックは、非オーバーラップ２×２アレイに配列されることを特徴とする請求項３１に記載の方法。
【請求項３５】
前記元のデータが画像データであることを特徴とする請求項２９から３５のいずれか１項に記載の方法。
【請求項３６】
前記画像データがテクスチャデータであることを特徴とする請求項３５に記載の方法。
【請求項３７】
圧縮テクスチャデータを解凍する方法であって、前記圧縮テクスチャデータの各々の要素は、前記元のデータの４×４の要素のブロックを表し、前記圧縮テクスチャデータは、少なくとも２つの縮小サイズデータセット、変調データ、及び変調フラグデータを有し、各々の縮小サイズデータセットの各々の要素は、前記元のテクスチャデータの４×４の要素の対応するブロックの代表値のブロックを保存し、前記変調データの各々の要素は、前記縮小サイズデータセットから非圧縮テクスチャデータを再生するための１６個の成分の変調値を有し、前記変調フラグデータの各々の要素は、前記変調データの解釈を修正するようになっており、前記方法は、
（ａ）対象物の要素をテクスチャ化するのに必要な原寸データの２×２要素のブロックを識別する段階と、
（ｂ）各々の縮小サイズデータセット、変調データ、及び原寸データの２×２要素を生成するのに必要な変調フラグデータの４つの要素を識別する段階と、
（ｃ）前記４つの識別された要素を同時に解凍して、元のテクスチャデータの所要の４×４要素を形成する段階と、
を含むことを特徴とする方法。
【請求項３８】
前記段階（ｃ）が更に、
（ａ）前記要素が４×４ブロックの要素を表すブロックに位置するか否かを判定するために、前記２×２ブロックのテクスチャデータの各々の位置をマッピングする段階と、
（ｂ）ブロックを表する以外の場所に位置する前記２×２ブロックのテクスチャデータの各々の要素に関して、前記４×４ブロックの前記代表値を隣接する４×４ブロックの少なくとも１つの代表値と組み合わせて、修正代表値を生成する段階と、
（ｃ）ブロックを表すブロックに位置する前記２×２ブロックのテクスチャデータの各々の要素に関して、前記ブロックの前記代表値に対して修正代表値を設定する段階と、
（ｄ）前記修正代表値を前記修正データと組み合わせて、２×２テクスチャデータを生成する段階と、
を含むことを特徴とする請求項３７に記載の方法。
【請求項３９】
前記４つの識別された要素を解凍する段階が更に、
（ａ）前記識別された変調データ要素から４つの関連要素変調値を分離する段階と、
（ｂ）識別された変調データ要素の各々に関する前記４つの関連要素値を、前記変調フラグデータの対応する要素と組み合わせて、４つの変調デコードデータセットを形成する段階と、
（ｃ）変調デコードデータセットの各々を、前記識別された縮小サイズデータの前記関連要素に適用して、元のテクスチャデータの所要の２×２要素を生成する段階と、
を含むことを特徴とする請求項３７に記載の方法。
【請求項４０】
前記解凍されたテクスチャデータが、対象物をテクスチャ化するために適用されることを特徴とする請求項２９から３９のいずれか１項に記載の方法。
【請求項４１】
データを圧縮する方法であって、
（ａ）圧縮のためのデータを受け取る段階と、
（ｂ）圧縮のためのデータを非オーバーラップ均一ブロックに分割する段階と、
（ｃ）第１のブロックの中心を見つける段階と、
（ｄ）前記第１のブロックの中心に最も近い前記第１のブロック内の要素を識別する段階と、
（ｅ）前記第１のブロックの前記識別要素から第１のブロックの代表要素を選択する段階と、
（ｆ）前記第１のブロックの代表値に対応する位置で前記ブロックの前記要素を選択することによって、他のブロックの各々に関するブロック代表要素を選択する段階と、
（ｇ）各々のブロックの前記代表要素を圧縮データとして保存する段階と、
を含むことを特徴とする方法。
【請求項４２】
前記非オーバーラップ均一ブロックが、４×４の要素であり、各々のブロックの前記代表要素が、前記ブロックの局所の３列３行の要素であることを特徴とする請求項３７に記載の方法。
【請求項４３】
（ａ）複数の変調値を生成する各々のブロックに関して、各々の変調値がブロック代表要素を圧縮のためにデータのブロックの要素に対応させる段階と、
（ｂ）前記代表要素と併せて前記変調データを保存する段階と、
を含むことを特徴とする請求項４１又は４２に記載の方法。
【請求項４４】
圧縮のためのブロックのデータの各々に関する少なくとも２つの代表要素セットが生成され保存されることを特徴とする請求項４３に記載の方法。
【請求項４５】
各々の変調値が、圧縮用データに近似する推定値の代表要素セットの各々に対して適用される重み付けを特定することを特徴とする請求項４３に記載の方法。
【請求項４６】
保存するために圧縮されたデータ要素にアクセスする方法であって、
（ａ）アクセスされることになる要素の位置を使用して、前記圧縮データの第１の要素を識別する段階であって、前記第１の要素が、アクセスされることになる前記要素が圧縮されているブロックを表すようになっている段階と、
（ｂ）前記圧縮データの３つの別の要素を識別する段階であって、前記３つの別の要素が、アクセスされることになる要素が圧縮されている前記ブロックに隣接する３つのブロックに対応し、前記３つの別の要素が、アクセスされることになる要素に対する近似値を生成するために前記圧縮データの前記第１の要素を解凍することを要求されるようになっている前記段階と、
（ｃ）圧縮データの前記第１の要素と３つの他の全て要素までを使用して、アクセスされることになる前記元のデータの前記要素に対する第１の近似値を生成する段階と、
を含むことを特徴とする請求項１から５のいずれか１項に記載の方法。
【請求項４７】
（ａ）アクセスされることになる前記要素が、前記第１のブロックの前記代表要素に対応する場合、前記元のデータの前記要素の前記近似値は、単に前記第１のブロックの前記代表要素であり、
（ｂ）アクセスされることになる前記要素が、前記第１のブロックの前記代表要素と同じ行にある場合、アクセスされることになる前記要素に対する前記近似値は、水平方向に隣接する前記ブロックの前記代表要素を使用して、前記第１のブロックの前記代表要素を補間することによって生成され、
（ｃ）アクセスされることになる前記要素が、前記第１のブロックの前記代表要素と同じ列にある場合、アクセスされることになる前記要素に対する前記近似値は、垂直方向に隣接する前記ブロックの前記代表要素を使用して、前記第１のブロックの前記代表要素を補間することによって生成され、
（ｄ）アクセスされることになる前記要素が、前記第１のブロックの前記代表要素とは異なる行及び列にある場合、アクセスされることになる前記要素に対する前記近似値は、垂直方向に隣接する前記ブロックと水平に隣接する前記ブロックの前記代表要素を使用して、前記第１のブロックの前記代表要素を補間することによって生成されることを特徴とする請求項４６に記載の方法。
【請求項４８】
前記元のデータの２×２アレイの４つの要素は、同時にアクセスされる必要があり、２×２アレイの左上要素は、前記第１のブロックを識別するために使用され、前記請求項４７の段階（ａ）、（ｂ）、（ｃ）、及び（ｄ）に記載の作動を実行する方法であって、
（ａ）データ（Ｐ０、Ｑ０、Ｒ０、Ｓ０）を第１の回転ユニットに入力する段階であって、Ｐ０は前記第１のブロックの前記代表要素であり、Ｑ０は前記第１のブロックに水平方向に隣接する前記ブロックに対応する前記代表要素であり、Ｒ０は前記第１のブロックに垂直方向に隣接する前記ブロックに対応する前記代表要素であり、Ｓ０は残りの識別された前記ブロックに対応する前記代表要素である段階と、
（ｂ）アクセスされることになる２×２アレイの左上要素の座標から第１の回転角度と第２の回転角度とを求める段階と、
（ｃ）前記第１の回転ユニット内で前記データ（Ｐ０、Ｑ０、Ｒ０、Ｓ０）を前記第１の回転角度により回転させ、第１の双一次ユニットに結果として得られた前記データ（Ｐ０、Ｑ０、Ｒ０、Ｓ０）を出力する段階と、
（ｄ）前記第１の双一次ユニット内で、
Ｐｏｕｔ＝Ｐ
Ｑｏｕｔ＝（Ｐ＋Ｑ）／２
Ｒｏｕｔ＝（Ｐ＋Ｒ）／２
Ｓｏｕｔ＝（Ｐ＋Ｑ＋Ｒ＋Ｓ）／４
の計算を実行し、第２の回転ユニットにＰｏｕｔ、Ｑｏｕｔ、Ｒｏｕｔ、及びＳｏｕｔを出力する段階と、
（ｅ）前記第２の回転角度から前記第１の回転角度を減算して、第３の回転角度を求める段階と、
（ｆ）前記第２の回転ユニット内で、（Ｐ１、Ｑ１、Ｒ１、Ｓ１）を生成するために前記第３の回転角度に基づいてデータを回転させて、前記第２の双一次フィルタリングユニットに前記データを出力する段階と、
（ｇ）前記第２の双一次フィルタリングユニット内で、
Ｐｏｕｔ＝Ｐ１
Ｑｏｕｔ＝（Ｐ１＋Ｑ１）／２
Ｒｏｕｔ＝（Ｐ１＋Ｒ１）／２
Ｓｏｕｔ＝（Ｐ１＋Ｑ１＋Ｒ１＋Ｓ１）／４
の計算を行い、第３の回転ユニットにＰｏｕｔ、Ｑｏｕｔ、Ｒｏｕｔ、及びＳｏｕｔを出力する段階と、
（ｈ）３６０度から前記第２の回転角度を減算して、第４の回転角度を生成する段階と、
（ｉ）第３の回転ユニット内で、前記第４の回転角度に基づいてデータを回転させ、結果としてアクセスされことになる要素の前記２×２アレイを出力する段階と、
を含むことを特徴とする請求項４７に記載の方法。
【請求項４９】
前記回転角度は、アクセスされることになる要素の前記２×２アレイの左上要素の前記第１のブロックに局所の前記座標の前記最下位ビットによって決定されることを特徴とする請求項４８に記載の方法。
【請求項５０】
前記第１のブロックに局所の前記座標は、アクセスされることになる前記要素の前記２×２アレイの左上要素の大域座標から、ｘ及びｙ座標の２つの前記最下位ビットを取得して、それらを関連の局所座標にマッピングすることによって計算されることを特徴とする請求項４９に記載の方法。
【請求項５１】
前記圧縮データの前記要素は保存前に量子化され、アクセスされることになるデータの前記元の要素の前記近似値は、出力前に最大精度に変換されることを特徴とする請求項４６から５０のいずれか１項に記載の方法。
【請求項５２】
前記圧縮データは付加的に変調データを有し、変調データの要素は、前記元のデータ内の前記ブロックの各々の要素に対する、前記圧縮データの前記対応代表要素に関連する複数の変調値を有し、これによりアクセスされることになる前記元のデータの前記要素に対する前記第１の近似値が、適切な変調値を使用して修正され、アクセスされることになる元のデータの前記要素に対する第２の近似値を生成することを特徴とする請求項４６から５１のいずれか１項に記載の方法。
【請求項５３】
圧縮データを受信するための入力装置を有するプロセッサと、請求項４１から４２に記載された方法を実行するための命令セットと、圧縮データを出力するための出力装置とを備えることを特徴とするデータ圧縮装置。
【請求項５４】
（ａ）圧縮のためのデータを受け取る入力装置と、
（ｂ）前記入力装置に接続され、圧縮のためのデータを非オーバーラップ均一ブロックに分割するための分割手段と、
（ｃ）前記分割手段に接続され、第１のブロックの中心位置を見つけて、前記第１のブロックの前記中心に最も近い前記第１のブロック内の前記要素を識別するための第１のブロック識別手段と、
（ｄ）前記分割手段と前記第１のブロック識別手段に接続され、前記第１のブロックの前記識別要素から第１のブロック代表要素を選択するための第１の選択手段と、
（ｅ）前記分割手段と前記第１のブロック識別手段に接続され、前記第１のブロック代表要素に対応する位置の別のブロックの要素を選択することによって、前記別のブロックの各々に関するブロック代表要素を選択するための複数の別の選択手段と、
（ｆ）各々のブロックの前記代表要素を圧縮データとして出力するための出力装置と、
を備えることを特徴とするデータ圧縮装置。
【請求項５５】
各々の選択手段に接続され、各々のブロックの前記代表要素を圧縮データとして記憶するための記憶装置を更に備えることを特徴とする請求項５４に記載の装置。
【請求項５６】
前記分割手段が、圧縮のためのデータを４×４の要素の非オーバーラップ均一ブロックに分割するように構成され、前記選択手段が、前記ブロック代表要素として前記ブロックに局所の３行３列の前記要素を選択するように構成されることを特徴とする請求項５５に記載の装置。
【請求項５７】
各々のブロックのために複数の変調値を生成するように構成された変調データ生成手段を更に備え、各々の変調値が、前記ブロック代表要素を圧縮のためのデータの前記ブロックの要素に関連付けすることを特徴とする請求項５５又は５６に記載の装置。
【請求項５８】
各々の選択手段が、各々のブロック圧縮のためのデータに関する少なくとも２つの代表要素セットを生成するように構成されることを特徴とする請求項５７に記載の装置。
【請求項５９】
前記変調データ生成手段が、圧縮のためのデータの近似値を生成するために、各々の変調値を、前記代表要素セットに適用されることになる重み付け値に対して関連付けるように構成されることを特徴とする請求項５７に記載の装置。
【請求項６０】
前記請求項４１から４５のいずれか１項に記載の方法により圧縮されたデータから元のデータの要素を推定する装置であって、
（ａ）推定されることになる元のデータの前記要素の位置を入力するための入力装置と、
（ｂ）前記入力装置に接続され、前記圧縮データの第１の要素を識別するように構成され、前記第１の要素が、元のデータの前記要素が圧縮されている前記ブロックを表すようになっている第１の要素識別手段と、
（ｃ）前記入力装置と前記第１の要素識別装置とに接続され、前記圧縮データの３つの別の要素を識別するように構成され、前記３つの別の要素が、元のデータの前記要素が圧縮されている前記ブロックに隣接する３つのブロックに対応して、前記３つの別の要素が、前記圧縮データの前記第１の要素を解凍するように要求され、元のデータの前記要素に対する近似値を生成するようになっている別の要素識別装置と、
（ｄ）前記要素識別手段に接続され、圧縮データの前記第１の要素と前記３つの別の要素の全てまでを使用して、前記元のデータの前記要求された要素に対する近似値を生成するように構成された処理手段と、
を備えることを特徴とする装置。
【請求項６１】
前記処理手段が、
（ａ）アクセスされることになる前記要素が前記第１のブロックの前記代表要素に対応する場合、前記要求された要素に対する近似値として前記第１のブロックの前記代表要素を生成する段階と、
（ｂ）アクセスされることになる前記要素が前記第１のブロックの前記代表要素と同じ行にある場合、水平方向に隣接するブロックの前記代表要素を使用して、前記第１のブロックの前記代表要素を補間することによってアクセスされることになる前記要素に対する近似値を生成する段階と、
（ｃ）アクセスされることになる前記要素が前記第１のブロックの前記代表要素と同じ列にある場合、垂直方向に隣接するブロックの前記代表要素を使用して、前記第１のブロックの前記代表要素を補間することによって前記要求される要素に対する近似値を生成する段階と、
（ｄ）アクセスされることになる前記要素が前記第１のブロックの前記代表要素と異なる行及び列にある場合、前記垂直方向に隣接するブロックの前記代表要素と前記水平に隣接するブロックの前記代表要素とを使用して、前記第１のブロックの前記代表要素を補間することによってアクセスされることになる前記要素に対する近似を生成する段階と、
によって元のデータの要素を推定するように構成されていることを特徴とする請求項６０に記載の装置。
【請求項６２】
前記元のデータの２×２アレイの４つの要素が同時にアクセスされるように要求される装置であって、前記装置が更に、
（ａ）前記２×２アレイの左上要素を使用して前記第１のブロックを識別するための手段と、
（ｂ）アクセスされることになる前記２×２アレイの前記左上要素の座標から第１の回転角度を求めるための第１の回転推定手段と、
（ｃ）アクセスされることになる前記２×２アレイの前記左上要素の座標から第２の回転角度を求めるための第２の回転推定手段と、
（ｄ）前記第１の回転推定手段及び前記第２の回転推定手段に接続され、第３の回転角度を求めるために、前記第２の回転角度から前記第１の回転角度を減算するための第３の回転推定手段と、
（ｅ）前記第２の回転推定手段に接続され、第４の回転角度を生成するために、３６０度から前記第２の回転角度を減算するための第４の回転推定手段と、
（ｆ）Ｐ０が前記第１のブロックの要素であり、Ｑ０が前記第１のブロックに水平方向に隣接する前記ブロックに対応する要素であり、Ｒ０が前記第１のブロックに垂直方向に隣接する前記ブロックに対応する要素であり、Ｓ０が残りの識別されたブロックと前記第１の回転推定手段に対応する要素である、（Ｐ０、Ｑ０、Ｒ０、Ｓ０）を受信するために前記識別装置に接続され、前記第１の回転角度に基づいて前記（Ｐ０、Ｑ０、Ｒ０、Ｓ０）を回転させて、結果として得られるデータ（Ｐ、Ｑ、Ｒ、Ｓ）を出力するように構成された第１の回転ユニットと、
（ｇ）前記第１の回転ユニットの出力に接続され、
Ｐｏｕｔ＝Ｐ
Ｑｏｕｔ＝（Ｐ＋Ｑ）／２
Ｒｏｕｔ＝（Ｐ＋Ｒ）／２
Ｓｏｕｔ＝（Ｐ＋Ｑ＋Ｒ＋Ｓ）／４
の計算を実行して、Ｐｏｕｔ、Ｑｏｕｔ、Ｒｏｕｔ、Ｓｏｕｔを出力するように構成された第１の双一次ユニットと、
（ｈ）（Ｐｏｕｔ、Ｑｏｕｔ、Ｒｏｕｔ、Ｓｏｕｔ）を受信するために、前記第３の角度回転推定手段と前記第１の双一次ユニットの出力とに接続され、（Ｐ１、Ｑ１、Ｒ１、Ｓ１、）を出力するために前記第３の回転角度に基づいて前記データを回転させるように構成された第２の回転ユニットと、
（ｉ）前記第２の回転ユニットの出力に接続され、
Ｐｏｕｔ＝Ｐ１
Ｑｏｕｔ＝（Ｐ１＋Ｑ１）／２
Ｒｏｕｔ＝（Ｐ１＋Ｒ１）／２
Ｓｏｕｔ＝（Ｐ１＋Ｑ１＋Ｒ１＋Ｓ１）／４
の計算を実行して、Ｐｏｕｔ、Ｑｏｕｔ、Ｒｏｕｔ、Ｓｏｕｔを出力するように構成された第２の双一次フィルタユニットと、
（ｊ）前記第４の回転推定手段と前記第２の双一次フィルタの出力とに接続され、前記第４の回転角度に基づいてデータを回転させ、結果として、アクセスされることになる要素の２×２アレイを出力するように構成された第３の回転ユニットと、
を備えることを特徴とする請求項６１に記載の装置。
【請求項６３】
前記第１の回転推定ユニット及び前記第２の回転推定ユニットが、アクセスされることになる要素の２×２のアレイの左上要素の前記第１のブロックに局所の座標の最下位ビットを使用して、回転角度を求めるように構成されることを特徴とする請求項６２に記載の装置。
【請求項６４】
前記圧縮データの前記要素は装置に入力される前に圧縮されており、前記装置が、出力の前に前記要求された要素に対する前記近似値を最大精度で変換するように構成された変換手段を更に備えることを特徴とする請求項５３から６３のいずれか１項に記載の装置。
【請求項６５】
前記圧縮データは追加的に変調データを有し、変調データの要素は前記元のデータの前記ブロックの各々の要素に対する前記圧縮データの前記対応代表要素に関連する複数の変調値を有し、前記装置が、前記変調データを受信し、前記変調値の適切な前記要素から前記要求された要素に関する適切な前記変調値を識別し、適切な前記変調値を使用して前記第１の近似値を前記要求された要素に変調して、前記要求された要素に対する第２の近似値を生成する変調手段を更に備えることを特徴とする請求項５３から６４のいずれか１項に記載の装置。
【請求項６６】
添付図面４から８及び１０から２０のいずれかを参照して説明したように実質的にデータを圧縮することを特徴とする方法。
【請求項６７】
添付図面４から８及び１０から２０のいずれかを参照して説明したように実質的にデータを圧縮することを特徴とする装置。
【請求項６８】
添付図面４から８及び１０から２０のいずれかを参照して説明したように実質的にデータを解凍することを特徴とする方法。
【請求項６９】
添付図面４から８及び１０から２０のいずれかを参照して説明したように実質的にデータを解凍することを特徴とする装置。
【請求項７０】
請求項１から５２に記載のいずれかのプロセスをコンピュータに実行させるプログラム命令を備えることを特徴とするコンピュータプログラム。
【請求項７１】
記録媒体に組み込まれたことを特徴とする請求項７０に記載のコンピュータプログラム。
【請求項７２】
コンピュータメモリに保存されたことを特徴とする請求項７０に記載のコンピュータプログラム。
【請求項７３】
読み出し専用メモリ組み込まれたことを特徴とする請求項７０に記載のコンピュータプログラム。
【請求項７４】
電気搬送信号上で搬送されることを特徴とする請求項７０に記載のコンピュータプログラム。
【請求項７５】
（ａ）アレイの複数の要素を表す、圧縮されることになるデータを受信するための入力装置と、
（ｂ）前記入力装置に接続され、前記受信データをフィルタリングして、少なくとも２つの縮小サイズデータセットを生成し、各々の縮小サイズデータセットの各々の要素が前記受信データの複数の要素を表すようになっているフィルタリング手段と、
（ｃ）前記入力装置に接続され、前記受信データに対する近似値を生成するために、前記縮小サイズデータセットの組み合わせ方を特定する変調データを生成するための変調生成手段と、
（ｄ）前記フィルタリング手段と前記変調生成手段とに接続され、前記縮小サイズデータセットと変調データを圧縮データとして出力するための出力装置と、
を備えることを特徴とするデータ圧縮装置。
【請求項７６】
前記変調生成手段と前記フィルタリング手段とに接続され、前記縮小サイズデータセットと変調データを圧縮データとして記憶するための記憶装置を更に備え、前記出力装置が、前記圧縮データを出力するため記憶装置に直接接続できることを特徴とする請求項７５に記載の装置。
【請求項７７】
前記フィルタリング手段が、
（ａ）中間縮小サイズデータを形成するために前記受信データをフィルタ処理し、
（ｂ）第１のレベルの低解像度データを形成するために前記中間縮小サイズのデータを拡大し、
（ｃ）前記受信データと第１のレベルの低解像度データから差分データを生成し、
（ｄ）少なくとも２つの第２のレベルの低解像度データセットを生成するために、前記第１のレベルの低解像度データと前記差分データを使用し、
（ｅ）縮小サイズデータセットを生成するために、前記第２のレベルの低解像度データセットの各々のサイズを縮小する、
ように構成されることを特徴とする請求項７５又は７６に記載の装置。
【請求項７８】
前記フィルタリング手段に接続され、前記元の受信データを推定するために、圧縮データの解凍に使用する変調データを生成するための変調データ生成手段を更に備えることを特徴とする請求項７５から７７に記載の装置。
【請求項７９】
前記変調データ生成手段と前記フィルタリング手段とに接続され、前記縮小サイズデータセットと前記変調データを繰り返して改善するための最適化手段を更に備えることを特徴とする請求項７５から７８に記載の装置。
【請求項８０】
圧縮データを解凍するための装置であって、前記圧縮データは少なくとも２つの縮小サイズデータセットと変調データを有し、前記変調データは非圧縮データに対する近似値を生成するために、前記縮小サイズデータセットの組み合わせ方を定義し、前記装置は、
（ａ）前記圧縮データを受信するための入力装置と、
（ｂ）前記入力装置に接続され、前記非圧縮の元のデータの各々の要素に対する少なくとも２つの第１の近似値を生成するために、各々の縮小サイズデータセットを補間するための補間手段と、
（ｃ）前記入力装置に接続され、変調データの要素を複数の変調値に分割するための分割手段と、
（ｄ）前記補間手段と前記分割手段とに接続され、前記関連変調値を使用して、補間された各々の縮小サイズデータセットに対応する要素に重み付けするための重み付け手段と、
（ｅ）前記重み付け手段に接続され、非圧縮データ要素に対して第２の近似を生成するために、対応する前記重み付け補間縮小サイズデータを結合するための結合器と、
を備えることを特徴とする装置。
【請求項８１】
縮小サイズデータの４つの要素を同時に解凍するように構成されることを特徴とする請求項８０に記載の装置。
【請求項８２】
第２のレベルの低解像度データセットは、最新変調データと対応する元のデータのウインドウを選択し、局所化された第２のレベルの低解像度データセットに関する方程式の線形システムを計算し、単一値の分解を使用して最小二乗誤差を形成する第２のレベルの低解像度データセットを解くことによる、各々の繰り返しの間に改善されることを特徴とする請求項１４に記載の方法。
【請求項８３】
縮小サイズデータセットの要素と変調データの要素が、前記元のデータの３２の要素に対応することを特徴とする請求項２９から３１に記載の方法。
【請求項８４】
縮小サイズデータセットの要素と変調データの要素が、４×８要素のアレイに構成された前記元のデータの要素のブロックに対応することを特徴とする請求項８３に記載の方法。
【請求項８５】
画像データを第１の解像度から第２の解像度まで拡大する装置であって、２×２ブロックのピクセルを表すデータは、
（ａ）前記第１の解像度でピクセルの各々のブロックに関するカラー要素データセットを受信すると共のピクセルの前記ブロックに関する対応する位置データを受信するための手段と、
（ｂ）前記位置データからのデータに関する少なくとも第１の回転角度と第２の回転角度を導出するための手段と、
（ｃ）前記カラー要素データと前記第１の回転角度を受信し、前記回転角度に基づいて前記カラー要素から第１の値セットを形成するための手段と、
（ｄ）前記第１の値セットと第１の回転角度及び第２の回転角度を受信し、前記第１の回転角度及び第２の回転角度に基づいて第１の値セットの後続の値セットを形成するための手段と、
（ｅ）前記後続の値セットと前記第２の回転角度を受信する手段と、前記後続の値セットを前記第２の回転角度に基づいて前記ブロックのピクセルに割り当てる手段と、
を備えることを特徴とする装置。
【請求項８６】
後続の値セットを受信するための少なくとも２つの手段があり、各々は別の回転角度を受信し、前記第２の回転角度に基づいて前記ブロックのピクセルに次に別の後続の値セットを割り当てる手段に先行して、前記回転角度に基づいて別の後続の値セットを形成することを特徴とする請求項８５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを圧縮し、データを解凍するための方法及び装置に関する。本発明は、コンピュータグラフィックスシステムに使用され、特に３Ｄ面に対してテクスチャ画像データを適用するテクスチャリングを使用して、三次元画像を形成するコンピュータグラフィックスシステムに使用される。
【背景技術】
【０００２】
３Ｄコンピュータグラフィックスにおいて、通常、対象物の表面詳細は、画像ベースのテクスチャを使用して追加される。これは、１９７５年にＥｄ  Ｃａｔｍａｌｌ（１９７５年５月号、ＩＥＥＥコンピュータ部会会報、Ｇｒａｐｈｉｃｓ，  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅｓ、「曲面のコンピュータディスプレイ」）によって最初に導入された。例えば、木材シートの画像を椅子の３Ｄモデルを表す多角形セットに適用して、対象物を木製の外観に３Ｄレンダリングすることができる。
【０００３】
複雑な３Ｄ場面では、多数の前述の「テクスチャ」が必要になるが、これにより２つの関連する問題が生じる。最初の問題は、単純にこれらのテクスチャをメモリに保存するコストである。特に、民生用３Ｄシステムではテクスチャの保存に利用できるメモリ量は比較的少なく、すぐにいっぱいになる可能性がある。これは、典型的にテクスチャの単位ピクセル毎に３２ビットの、即ち、赤色、緑色、青色、及びアルファ（半透明）成分の各々に対して８ビットの「トゥルーカラー」と呼ばれるテクスチャを使用することよって著しく悪化する。
【０００４】
第２の問題は帯域幅であり、これは大変重要である。３Ｄ場面のレンダリング時には、相当量のテクスチャデータにアクセスする必要がある。このことは、リアルタイム・システムにおいては大きな性能上の障害となる。
【０００５】
前述の２つの問題点を改善する１つの方法は、画像圧縮形式を使用することである。ＪＰＥＧ規格等の多数の方式が画像の処理及び送信に使用されているが、リアルタイム式３Ｄコンピュータグラフィックスに適合するものは殆どない。多くの圧縮スキームの主要な問題は、圧縮スキームが圧縮形式の範囲内でピクセルデータの直接的な「ランダムアクセス」を許可しないことであり、高速の任意アクセスがテクスチャリング処理の要求であることである。このランダムアクセスは実現できない場合が多く、その理由は、ピクセル毎の保存速度が画像全体にわたって変化するので、通常、テクスチャデータを圧縮するために使用及び／又は実行したスキームが固定速度の符号化の制限を受けるためである。
【０００６】
テクスチャを解凍するいくつかの方法には、ハードウエア上で解凍処理を高速で安価に行う必要があるという別の要求がある。このことはＪＰＥＧで使用される離散コサイン変換（ＤＣＴ）等の「変換符号化」方式を除外する。
【０００７】
頻繁に使用される方式はカラーパレットに基づく方式であり、これは本来メモリとビデオフレームバッファ帯域幅のコストを低減する方法として使用されたものである。Ｋａｊｉｙａ、  Ｓｕｔｈｅｒｌａｎｄ、  Ｃｈｅａｄｌｅによる「ランダムアクセスのビデオフレームバッファ」、ＩＥＥＥコンピュータ部会会報１９７５年５月号Ｇｒａｐｈｉｃｓ，  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅｓを参照されたい。本スキームでは、各々のピクセルは、典型的に４又は８ビットの小さなビット数で表され、カラーテーブル又はパレットにそれぞれ１６又は２５６項目の索引を保存する。おそらく最も有名なＰ．Ｈｅｃｋｂｅｒｔの「フレームバッファ表示のためのカラー画像の量子化」（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ、１９８２年７月号、２９７−３０７頁）を含む、元の「トゥルーカラー」画像をこのパレット形式まで縮小するための多数の方法が存在する。
【０００８】
パレットシステムにはいくつかの欠点がある。第１の欠点は、テクセルとも呼ばれる各々のテクスチャピクセルの符号化に伴う間接レベルが存在することである。テクセルの索引は、最初にメモリから読み出し、次に、カラーテーブルの対応する項目にアクセスする必要がある。カラーテーブルを「オンチップ」にするか、又は専用ＲＡＭを使用することによって、二重読み出しの時間遅れを「隠蔽」することができるが、これは単なるゲートコスト以外の別のペナルティを生じる。例えば、新しいテクスチャがアクセスされる度に、専用パレットテーブルをリロードする必要がある。もしくは、全てのテクスチャに対して汎用パレットを使用できるが、これは圧縮画像の品質を大幅に低下させるであろう。最終的に、８ビット／ピクセル（即ちｂｐｐ）のテクスチャに対する保存及び帯域幅の節約は顕著ではなく、４ｂｐｐの品質は一般に劣る。
【０００９】
更に、テクスチャのフィルタリングに起因するコストの問題が発生する。通常、表面にテクスチャを適用する場合、テクスチャの「濃淡むら」を避けるために、複数のサンプルテクセルに対して加重フィルタが適用される。双一次フィルタリングは、特定の高度な方法に対する基礎をなす一般的に使用される方法である。例えば、図１は、双一次フィルタリングを使用してテクスチャ「２」を適用した三角形の面「１」を示す。「３」のような三角形によって囲まれた各々のスクリーンピクセルの位置は、テクスチャの座標系に逆にマッピングされ、この位置を囲む４つのテクセルは「４」と識別される。この４つのテクセルの加重平均は、次に、適用されたテクスチャ値を計算するために使用される。
【００１０】
リアルタイム方式において、テクスチャ処理を最大速度で実行するためには、テクセル取込み方式がこの２×２ブロックの全てのテクセルを並列に供給できることが望ましい。カラーパレットテクスチャを組み込むテクスチャ方式において、これらの段階は、４つのテクセル全ての索引を取込み、次に、テーブル内の各々のテクセルに対応するカラーを見出す段階を含むであろう。マルチポート化されてなければ、パレット／カラーテーブルＲＡＭが障害になることは理解できるであろう。これは追加のコストを意味する。（複数の索引を並列にアドレス指定する問題は、非圧縮テクスチャを使用することと同じであり、従来、種々の方法ですでに「解決」されているので、本明細書では考慮する必要はない）。
【００１１】
パレット化テクスチャは、ベクトル量子化圧縮、即ちＶＱの形式であり、３Ｄコンピュータグラフィックスには、より複雑な形式が使用されている。Ｂｅｅｒらは（１９９６年８月、Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ会報、ＳＩＧＧＲＡＰＨ、３７３−３７８頁の「圧縮テクスチャからのレンダリング」において）、ＶＱテクスチャを使用するハードウエアレンダリング手段をシミュレートした。これは、単一の索引を有する各々２×２又は４×４ブロックのピクセルを大きな参照テーブルに置き換えることで、約２ｂｐｐから等価の１／２ｂｐｐに至る保存コストを与える。２、１、及び１／２ｂｐｐの圧縮テクスチャのデータレータを与える単純なＶＱ方式は、ＳＥＧＡのＤＲＥＡＭＣＡＳＴ（商標）ゲームコンソールのハードウエアで実行される。興味深いことに、本方式の２つの高い圧縮レートは、２つのベクトル量子化レベルを組み合わせることによって実現される。
【００１２】
前述のＶＱ形式は、高レベルの圧縮を適切な品質で提供するが、依然として２つのメモリアクセスを必要とする。更に、索引テーブルのサイズはパレット化テクスチャのテーブルよりも非常に大きいので、参照テーブルの何れの内部保存又はキャッシングもコストがかかる。また、広範囲に及ぶデータ構造によりフィルタリングコストも高くなる。
【００１３】
Ｄｅｌｐ及びＭｉｔｃｈｅｌｌによるブロックトランケーション符号化（１９７９年９月のＩＥＥＥ  Ｔｒａｎｓ．  Ｃｏｍｍｕｎ．  ｖｏｌ．ＣＯＭ−２７の「ブロックトランケーション符号化を使用した画像圧縮」）、即ち、ＢＴＣをベースにした多数の別の圧縮方法が存在する。ＢＴＣでは、モノクロム画像は、例えば、４×４ピクセルのサイズの非オーバーラップ矩形ブロックに再分割され、次に、各々のブロックは単独で処理される。各々８ビットの２つの代表値は、ブロック単位で選択され、ブロック内の各々のピクセルは、２つの値のいずれかに量子化される。従って、本例の各々のブロックの保存コストは、２つの代表値に対して１６＊１ビット＋１６ビットであり、全体レートは２ｂｐｐである。ブロックは独立しているので、これは圧縮及び解凍アルゴリズムを単純化するが、ブロック境界にわたってアーティファクトをもたらす場合もある。
【００１４】
Ｃａｍｂｅｌｌらは（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ会議会報、ＳＩＧＧＲＡＰＨ’８６  １９９８６年８月、第２０巻第４号、２１５−２２３頁、「２ビット／ピクセルフルカラーエン符号化」）、カラー画像を２ｂｐｐで符号化するための拡張ＢＴＣカラーセル圧縮、即ち、ＣＣＣを提案している。残念ながら、これは外部パレットを要求し、本例の画像はいくぶんカラーバンディングの徴候を示した。これらの欠点にも関わらず、Ｋｎｉｔｔｅｌらは（第１０回Ｅｕｒｏｇｒａｐｈｉｃｓ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｈａｒｄｗａｒｅ、３３−３９、１９９５会報、「優れたテクスチャ特性のためのハードウエア」）、これらの画像圧縮スキームのテクスチャ方式を使用することを提案している。
【００１５】
また、米国特許第５，９５６，４３１号において、Ｉｏｕｒｃｈａらはカラー符号化のためにＢＴＣ法を利用している。Ｓ３ＴＣ又はＤＸＴＣと呼ぶ場合が多いＩｏｕｒｃｈａの方式において、各々のブロックは、通常各々１６ビットの２つの代表カラーを保存する。ブロックの各々のピクセルは、典型的に２ビットを使用して符号化されるので、４つの異なる値を参照することができる。これらの内の２つの値は２つの代表カラーを参照し、他の２つの値は、直接２つの代表値から導出された２つのカラーを参照する。通常、２つの導出カラーは、主要な代表カラーの線形ブレンドではあるが、完全に透明なピクセルを表示するために他の１つの値が選択される場合もある。ＢＴＣと同様に、各々のブロックは、他の全てのブロックから独立している。
【００１６】
一般に、Ｓ３ＴＣ形式の品質はＣＣＣ形式よりも高くカラーパレットを必要としないが、これらの利点は、４ｂｐｐの保存コストの約２倍でもたらされる。更に、この圧縮方法ではブロックあたり４つのカラーに限定されるので、特定のテクスチャはバンディングを表示することが知られている。また、ＢＴＣと同様に、ブロック境界においてアーティファクトをもたらす場合がある。
【００１７】
Ｓ３ＴＣ形式で圧縮されたテクスチャの双一次フィルタリングを検討すると、加重フィルタに必要な２×２セットのテクセルは単一の４×４ピクセルのブロックから取込まれる場合が多いが、多数のブロックを必要とする場合もあることが分かった。図２に示すように、２×２ピクセルのセット１０が別の４×４のブロック１１に属する場合に最悪の状況になる。１つの双一次フィルタリングされたスクリーンピクセルをクロック毎にテクスチャすることができるリアルタイム方式は、並行式で４つのブロックにアクセスして符号化できることが必要である。
【００１８】
ブロックベース方式をパレット式手法と組み合わせる別のスキームがＩｖａｎｏｖ及びＫｕｚｍｉｎ（Ｅｕｒｏｇｒａｐｈｉｃｓ  ２０００「カラー分散−テクスチャ圧縮に対する新しいアプローチ」）によって示されている。ここでは、各々のブロックが少なくとも１つの基本カラーを保存するが、隣接ブロックの特定セットの基本カラーにアクセス可能にすることによってローカルパレットが暗示的に定義される。例示的な方式において、特定ブロックのローカルパレットは、追加された３つの隣接ブロックから基本カラーにアクセスでき、例えば、選択範囲は、右のブロック、下のブロック、そして「右下」のブロックの基本カラーを使用することである。従って、ブロック内の各々のテクセルは、４つの使用可能な基本カラー選択肢の１つにアクセスする２ビットの索引によって表すことができる。本方式は、隣接するカラーに繰り返してアクセスすることは依然としてコストがかかるので、それが有効になるように基本カラーのキャッシュを必要とする。本スキームにおける双一次フィルタリングの最悪の状況は、９つの異なるブロックのいずれかにアクセスすることを含み、図３に示すように、ピクセル２０を符号化するためには、ブロック２１、２２、２３、及び２４の基本カラーブロックの１つにアクセスすることが必要であるが、ピクセル２５を符号化するためには、ブロック２４、２６、２７、及び２８の１つにアクセスすることが必要であることに留意されたい。
【００１９】
１９９９年に３ｄｆｘ  Ｉｎｔｅｒａｃｔｉｖｅ社からＦＸＴ１と呼ばれる別のテクスチャ圧縮スキームが発表された。このスキームは８×４ブロックを使用し、各々のブロックが４つの別々の方法で圧縮される。このブロックモードの１つはＳ３ＴＣ（ＣＣ＿ＭＩＸＥＤ）と類似しているが、別のブロックモード（ＣＣ＿ＣＨＲＯＭＡ）は、直接索引付けできる４つのローカルカラーパレットを保存する。
【００２０】
テクスチャ圧縮には直接適用できないが、複数解像度画像解析とウエーブレット法は（例えば、Ｓｔｏｌｌｎｉｔｚ、ＤｅＲｏｓｅ、及びＳａｌｅｓｉｎによる「コンピュータグラフィックス用ウエーブレット、理論と応用」、ＩＳＢＮ１−５５８６０−３７５−１に記載）、画像圧縮に適用され、ある程度成功を収めている。この方法は、その後に拡大される画像の低解像度バージョンが、元の画像に非常に近似する場合が多いことを利用している。
【００２１】
図４ａはグレースケール画像（モノクロム印刷の制約による）を用いたこのプロセスを示す。ソース画像４０はｘ及びｙの両方向に１／４だけフィルタ縮小を行い、１／１６のデータをもつ低解像度バージョン４１を形成する。本例において、線形ウエーブレットはｘ及びｙの両方向に２回適用し、差信号を除去する。次に、これを双一次拡大して低周波数画像４２を形成する。この信号と元の信号との差は４３で示す（図示の目的で拡大されている）。
【００２２】
拡大バージョンから元の信号を復元するのに必要な差信号は、ピクセルあたり非常に少数のビットを必要とする場合が多い。実際には、非可逆圧縮形式をもたらすために多数のデータが除去される。これは自然画像に対しては効果があるが、線図やテキスト等の画像はデルタ信号に非常に多くの情報を有する場合が多いので、この方法では、この種の画像に対して良好な圧縮レートを実現できない。（これは、ＪＰＥＧで圧縮した線図のテキストの周りによく見られる、紛れもないアーティファクトに類似している）。
【００２３】
【特許文献１】米国特許第５，９５６，４３１号公報
【非特許文献１】Ｅｄ  Ｃａｔｍａｌｌ著「曲面のコンピュータディスプレイ」、ＩＥＥＥコンピュータ部会会報１９７５年５月号、Ｇｒａｐｈｉｃｓ，  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅｓ
【非特許文献２】Ｋａｊｉｙａ、  Ｓｕｔｈｅｒｌａｎｄ、  Ｃｈｅａｄｌｅ著「ランダムアクセスのビデオフレームバッファ」、ＩＥＥＥコンピュータ部会会報１９７５年５月号、Ｇｒａｐｈｉｃｓ、  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｓｔｒｕｃｔｕｒｅｓ
【非特許文献３】Ｐ．Ｈｅｃｋｂｅｒｔ著「フレームバッファ表示のためのカラー画像の量子化」、Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ、１９８２年７月号、２９７−３０７頁
【非特許文献４】Ｂｅｅｒ他著「圧縮テクスチャからのレンダリング」、１９９６年８月、Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ会報、ＳＩＧＧＲＡＰＨ、３７３−３７８頁
【非特許文献５】Ｄｅｌｐ及びＭｉｔｃｈｅｌｌ著「ブロックトランケーション符号化を使用した画像圧縮」、１９７９年９月、ＩＥＥＥ  Ｔｒａｎｓ．  Ｃｏｍｍｕｎ．  ｖｏｌ．ＣＯＭ−２７
【非特許文献６】Ｃａｍｂｅｌｌ他著「２ビット／ピクセルフルカラーエン符号化」、Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ会議会報、ＳＩＧＧＲＡＰＨ’８６  １９９８６年８月、第２０巻第４号、２１５−２２３頁
【非特許文献７】Ｋｎｉｔｔｅｌ他著「優れたテクスチャ特性のためのハードウエア」、第１０回Ｅｕｒｏｇｒａｐｈｉｃｓ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｈａｒｄｗａｒｅ、３３−３９、１９９５会報
【非特許文献８】Ｉｖａｎｏｖ及びＫｕｚｍｉｎ著「カラー分散−テクスチャ圧縮に対する新しいアプローチ」、Ｅｕｒｏｇｒａｐｈｉｃｓ  ２０００
【非特許文献９】Ｓｔｏｌｌｎｉｔｚ、ＤｅＲｏｓｅ、及びＳａｌｅｓｉｎ著「コンピュータグラフィックス用ウエーブレット、理論と応用」、ＩＳＢＮ１−５５８６０−３７５−１
【発明の開示】
【発明が解決しようとする課題】
【００２４】
本発明は、Ｓ３ＴＣよりも優れた圧縮データ／ビット品質の圧縮方式を提供することを意図している。この圧縮方式は、適度に単純な解凍アルゴリズムと共に固定レートの符号化又は圧縮を使用する。ＣＣＣ又はＶＱ方式とは異なり、本発明は、カラー索引テーブル等の二次的なデータ構造を必要としない。
【００２５】
ウエーブレットの関連画像処理フィールドの作動から得ると、縮小フィルタリング、その後に拡大が行われた画像は、元の画像に適度に近似することが分かっている。このような信号は、低周波信号と呼ぶことにする。本発明者は、隣接ピクセルのグループ又はブロックに関連するデータを共有することによって、このような信号が効率よく構成できることを理解している。
【００２６】
低周波信号と元の信号との差を計算して、差分データとして、即ちデルタ信号として参照することができる。更に、本発明者は、多数のテクスチャに関して、データ信号、即ち低周波信号と元の信号との間の差は、局所的には比較的単色性であることを理解している。例えば、１つのデルタ画像の局所領域のピクセルは大部分が青−黄（即ち補色）である。
【００２７】
デルタ信号及び低周波信号を使用することによって、２つの新しい低周波信号Ａ及びＢを形成することができるので、元の画像の各々のピクセルは、Ａ及びＢ信号のピクセル毎の線形ブレンドによって非常に近似されるはずである。図４ａに戻ると、画像５０は低周波数Ａ信号によって形成された画像を表し、この画像は本例では画像上の近似下限であり、一方で５１は低周波数Ｂ信号によって形成された画像を表し、近似上限を与える。本例でＡ及びＢ信号は、元の画像に比べて少なくとも１／１６の情報しかもっていないことに留意されたい。Ａ信号及びＢ信号を使用して、２セットの縮小サイズデータＡ’及びＢ’をそれぞれ形成でき、縮小サイズがデータＡ’及びＢ’のセットが圧縮データとして保存される。
【００２８】
また、線形ブレンドを実行するためには変調信号が必要となる。これは図４ｂの画像５２によって表される。この画像の各々のピクセル（ｘ，ｙ）は、端数値０≦αy,x≦１を表し、（１−αy,x）＋αy,xＢy,xが元の画像の対応ピクセルとほぼ等しくなるように選択される。
【００２９】
解凍されることになるピクセルの特定、及びその変調値５３の取得に続いてテクスチャの解凍が行なわれる。また、そのピクセルにおける低周波数Ａ及びＢ信号を形成するために必要なデータは、Ａ（５４）及びＢ（５５）に対応するピクセルを形成するために取得され使用される。これらはブレンドされ（５６）、解凍ピクセルが形成される（５７）。このプロセスを全てのピクセルに適用して全体画像を解凍する（５８）。
【００３０】
Ａ及びＢ信号は、拡大の前には、比較的低解像度のはずである。例えば、元の画像の１／４から１／８の解像度は、通常、良好な品質の画像を形成する。更に、典型的にはピクセル毎に１又は２ビットの、非常に少数のピクセル毎の変調データが必要とされる。このことは、人間の目がある程度、輝度が大幅に変化する範囲のノイズをマスクする傾向にあることに起因する（Ｄｅｌｐ及びＭｉｔｃｈｅｌｌによる）。
【課題を解決するための手段】
【００３１】
本発明は、ＢＴＣ及びその変形例に由来する単純なアドレス指定の利点をもち続け、更に、そのスキームのブロック境界で頻繁に発生する多数の不連続性の問題を回避する。また、本発明は、双一次フィルタリング作動に必要な４ピクセルを並行して解凍するように最適化される。
【００３２】
Ａ及びＢ信号は多数の関数によって形成できるが、双一次関数又は双三次関数といったテンソル積の面は、拡大手段として提案される。この選択は、品質対実行コストのトレードオフを意味する。
【００３３】
典型的に、変調データは、「保存」ブロックのアレイ内に保存され、各々の「保存」ブロックは、Ｎ×Ｍの変調値を形成するための情報を保存するが、Ｎ及びＭは典型的に低周波信号に対して使用されるスケーリング係数に対応する。Ａ及びＢ信号を再構築するために必要な低解像度情報は、別のアレイ内に保存されるか、又は、別の方法として、一組のＡ及びＢの低解像度は、各々の「保存」ブロック内に保存される。前者の方式は、補間を行うために多数のデータ制御点を必要とする双三次関数のような拡大機能である場合に好都合である。後者の方式は、典型的に少数のデータ制御点を必要とする双一次関数のような単純な拡大機能に対して有用である。
【００３４】
システムが前者の「個別のデータ保存」形式を使用し、同様にその時点で取得した変調及びＡ及びＢ値のキャッシュを保持する場合、帯域幅の理由で、所要ブロック変調データを用いて、テクセルの特定のセクションを解凍するのに必要なＡ及びＢの値が「位相を外れる」ように、拡大機能の挙動を取り決めるのが効果的である。換言すれば、連続したテクセルにアクセスする場合、キャッシュは、一般に、外部メモリに対する要求のバランスを取る必要があるので、変調データ、次にＡ及びＢの値を交互に取込むことになる。このことは図４ｃに示されている。本例では、Ａ及びＢデータの双一次拡大を使用している。図４ｃは、画像に属する一組のテクセル（７０）を示し、テクセル７１が解凍されることになる。テクセル７１に関連する変調値を保存する「保存」ブロックは、４×４の隣接テクセル７２に対する変調値を保存する。双一次関数を使用したので、テクセル７１に対する低周波信号Ａ及びＢを形成するために、４組（まで）のＡ及びＢ代表値（７３ａ）、（７３ｂ）、（７３ｃ）、及び（７３ｄ）が必要となる。隣接テクセル（７４）は同じ組の変調値７２を使用するが、若干異なる組のＡ及びＢの値、即ち（７３ｃ）、（７３ｄ）、（７３ｅ）、及び（７３ｆ）を必要とする。テクセル７１に対して使用した前述の値は、依然としてキャッシュ内に存在することが想定される。Ａ及びＢに対する代表値がコーナ（７２）に整列されている場合、データアクセスの平均速度が同じであっても、新しい変調値とＡ及びＢ値が同時に取込まれるので、ピークデータ速度は高いことが必要であることを理解されたい。位相外れの構成が好ましい第２の理由は、変調情報のブロックをブロックサイズの整数倍で整列させるのが自然だからである。また、Ａ及びＢの値が前述のように整列される場合、左上の端部に優先傾向があるという理由で、テクスチャの端部の代表値の分散に不均一が存在する。
【００３５】
また、本発明は、多数の信号の使用にまで拡張することができる。例えば、追加のピクセル毎の変調値と一緒に第３のチャンネル「Ｃ」を導入することができる。従って、信号をブレンドするために重心座標が使用される。
【００３６】
本発明により、例えば双一次拡張によって、又はテンソル積の面を使用して、４つの隣接する要素が並列に拡張される。これは四分区間を循環的に特定し、単純な９０度の回転を利用して、４つの四分区間の各々のケースを単一なケースに至るまでマッピングする。計算は、低い精度で実行して最大精度まで高めることができる。
【００３７】
本発明は、ｍ次元アレイに配列されたｎ次元のソースデータを符号化する手段を提供する。装置は、Ｐデータ信号Ｒを形成する手段を必要とし、Ｐは２又はそれ以上であり、各々の信号はｍ次元アレイに配列されたｎ次元のデータから構成される。各々のＲ信号は、元のデータソースよりも少ない代表値データ要素を有する。また、変調情報Ｍを取得又は形成する手段を備える。また、変調データは、元のソースデータと同数の要素を有するｎ次元アレイに配列される。Ｍの各々のデータは（Ｐ−１）のスカラー値で構成される。Ｍ及びＲのデータを保存する手段を備える。Ｐ個の個別のＲデータ信号の各々を元のソースデータに対応するものに挿入する手段と、挿入されたＲデータに対してＭを適用する手段を備える。元のソース画像の各々のデータに対して、（Ｐ−１）スカラー値で構成される対応するＭデータを使用して、重心座標によって、対応する補間Ｒ信号のＰデータのアイテムを補間するようになっている。また、Ｍデータの補間Ｒデータへの適用に関して結果が対応する元のデータに近くなるように、保存されたＲ及びＭデータを最適化する手段を備える。
【００３８】
種々の態様における本発明は、請求範囲に定義され以下に説明する。有利な特徴は請求範囲に記載されている。
本発明の実施形態の適応及び用途を以下に説明する。
図面を参照して本発明の実施形態を詳細に説明する。
【発明を実施するための最良の形態】
【００３９】
本発明には２つの好適な実施形態がある。第１の実施形態は、テクスチャを４ビット／ピクセル（ｂｐｐ又はＢＰＰ）の速度で保存するが、第２の実施形態は、画像品質では劣るが、２ビット／ピクセルの高い圧縮をもたらす。最初に４ｂｐｐの改良例を示し、保存データのフォーマット、次に解凍プロセス、最後に圧縮アルゴリズムを説明する。
【００４０】
４ＢＰＰデータフォーマット
本実施形態において、Ａ及びＢの低周波信号は、双一次拡大の低解像度画像によって形成され、最終的なテクスチャマップが１／４×１／４の解像度で保存される。Ａ及びＢデータとピクセル変調データとを別個に保存することができるが、好適な実施形態において、これらはブロックの変調情報を有する局所Ａ及びＢデータが融合したものとしてブロック内に配置される。好適な実施形態の各々のブロックは、６４ビットの記憶容量を必要とし、そのフォーマットを図に示す。
【００４１】
データ（１００）の各々のブロックは、４つの主情報フィールドから成り、各々、局所「カラーＢ」信号情報（１０１）を表す１６ビットのフィールド、１５ビットの「カラーＡ」フィールド（１０２）、１ビットの変調モードフラグ（１０３）、及び３２ビットの変調データ（１０４）である。
【００４２】
カラーＡ及びＢのフィールドの各々は、完全に不透明なカラー（１１０）か、又は透明度が変化するカラー（１１１）のいずれかを表すように独立に解釈される。各々の「カラーＡ」及び「カラーＢ」フィールドの１ビットのフラグ（１１２）は特定のモードを決定する。完全不透明モードにおいて、黒色は「１」に設定されるが透明モードでは「０」に設定される。
【００４３】
不透明モードにおいて、カラーＡ及びカラーＢに関して、赤色チャンネル（１１３）及び緑色チャンネル（１１４）は５ビットで符号化される。Ｂのカラーデータフィールドにおいて、青色チャンネル（１１５）は同様に５ビットで表されるが、容量の理由からカラーＡに関するフィールドは４ビットに低減される。不透明モードの場合、最大値に設定されることが想定されるアルファチャンネルに関するデータを明示的に符号化する要求はなく、これは、後ほど与えられることになるという理由から、完全に１ｓで構成されるビット値である。
【００４４】
透明モード（１１１）において、カラー精度は低減され、明示的なアルファ値（１１６）を保存する３ビットを専有する空間を割り当てることができる。Ａ及びＢのデータ信号に関して、赤色チャンネル（１１７）及び緑色チャンネル（１１８）の各々は４ビットを使用する。透明なカラーＢの場合には、同様に、４ビットの精度で青色チャンネル１１９を使用するが、やはり容量の理由からカラーＡに対しては３ビットに低減される。
【００４５】
これらのカラーチャンネルは、５ビット／チャンネルでもって「標準」３２ビットＡＲＧＢカラーデータ信号に再変換することができる。本技術分野で広く使用される方法としては、８ビットの完全な補集合を形成するのに十分な数の低精度の数の最上位ビットの追加を挙げることができる。例えば、元の５ビットを８ビット値の最上位ビットにし、次に３つの最上位ビットをコピーし、これらを、結果として得られたものの３つの最下位ビットとして使用することによって、５ビットのチャンネル値は等価な８ビット値に変換される場合が多い。ハードウエアの経済性の観点から、むしろ「Ｃ」コードで示される以下の変形例が使用される。
【００４６】
2005525616.tif 000003
2005525616.tif 000004
2005525616.tif 000005
【００４７】
図６を参照すると、変調データ（１０４）は、４×４ブロックのピクセル（１３０）の変調情報を符号化する。各々のピクセル値は、最下位の位置（１３２）に保存される、厳密に２ビットの左上ピクセルの値（１３１）を使用して符号化される。続くピクセルは、列順に、各々の列内の左から右に、ビット有効桁の昇順で保存され、右下ブロックのピクセルが２つの最上位ビットに保存される。
【００４８】
変調モードフラグ（１０３）は、２ビットの変調値を解釈する方法を決めるために使用される。このフラグがゼロの場合、２つのビットパターンは、以下の表のように解釈される。
符号化表０
2005525616.tif 000006
【００４９】
この選択の理由は２つある。第１に、変調値の分布は、約１／２に中心とする正規分布の形に従うので、分布を中心方向に僅かに偏らせることが好都合である。第２に、分子が小さいので、ブレンド操作はハードウエアで実現するのが低コストである。
【００５０】
フラグ（１０３）が１に設定される場合、パンチスルー・アルファテクスチャの形態がピクセルのブロックに対して有効になる。次に、変調値は以下の表のように解釈される。
符号化表１
2005525616.tif 000007
【００５１】
００、０１、及び１１コードは、０１の多少異なる変調値以外は他の変調モードと同様に作用する。１０のコードに対して、赤色、緑色、及び青色成分の値は同じ方法で計算されるが、最終ピクセルのアルファ値は、拡大されたＡ及びＢの低解像度信号のアルファ値に無関係に強制的にゼロにされる。
【００５２】
全テクスチャに関する６４ビットのブロックは、第１列の全ブロックが左から右に配列されて次の列に続く、標準的な列順でメモリ内に配列することができる。しかしながら、好適な実施形態において、これらのブロックは、インターリーブした順番のアドレスビットに保存される。この方法は、本出願者による米国特許第６３１３８４６号にピクセルアドレスに関連して説明されているが、ブロック構成に対しても容易に適用できる。本構成には、例えばメモリのページ区切りの低減及びデータキャッシュ設計の簡略化等の大きな実施効率の利点がある。
【００５３】
４ＢＰＰの解凍方法及び装置
好適な実施形態において、本発明は、双一次テクスチャのフィルタリング用に構成された４ピクセルの解凍グループに対して最適化される。また、図４ｃに関連して前述した理由で、変調保存データを用いて、ＡＢ信号は「位相が外れた」状態に最適化される。図７を参照すると、双一次テクスチャフィルタリング作動に必要とされる、任意の２×２テクセルの組は、同様に２×２アレイに配列された特定の組の４つの４×４ピクセルブロック（１５０）を一意的に決定できることに注目されたい。これは、図１の（５）で示すように、２×２構成の左上テクセル（即ちＴＬＴ）を検討することで理解できる。このテクセルは、一様なグレー領域（１５１）によって示される、画像内の一意的な４×４のピクセル領域を一意的に決定する。残りの３つのテクセルは、グレー領域（１５１）と、クロスハッチング領域１５２との和集合のどこかに入る。
【００５４】
テクスチャ境界での複雑性を避けるために、「ブロック」は無限に繰り返されるものと想定する。これは当業者にはよく知られているテクスチャの「ワープモード」とは多少異なる問題であり、その態様は以下に説明する。
【００５５】
グループ内の左上ブロックの座標は、ＴＬＴ座標から直接決定することができる。テクセルの座標を（ｙ，ｘ）、テクスチャの寸法をＹsize×Ｘsizeと仮定すると、ブロック座標（ｉ，ｊ）は以下の式によって与えられる。
2005525616.tif 000008
【００５６】
好適な実施形態において、テクスチャの寸法は２の累乗に制限され、これにより、当業者が正しく認識する場合には、コンピュータハードウエアで前述の計算を低コストで実行できる。
【００５７】
グループ内の他のブロックは隣接しているので、これらの座標は、それぞれのテクスチャの境界を通り過ぎる全ての座標値を「取り囲む」（ゼロを割り当てる）ことに注意して単純に足し算すること、即ち（ｉ，ｊ＋１）、（ｉ＝１，ｊ）、及び（ｉ＋１，ｊ＋１）とすることによって決定できる。好適な実施形態において、元のソーステクスチャは、繰り返されるように、即ちタイル張りされるように設計されることが想定される。このようなテクスチャにおいて、上端及び下端と同様に、左端と右端とは「類似」している。この仮定により、画像の右下のブロックアドレスの取り囲みを除いて、所要ハードウエアは単純化され、他の特別な処理は必要ない。別の実施形態において、追加の信号を発生して境界を横切ったこと（即ち、左右に及び／又は上下）ことを随意的に示すようになっている。これらの信号は、説明予定の双一次拡大ハードウエアに、それぞれのブロック内の代表値を局所的に繰り返すように指示するであろう。
【００５８】
要求された４つのテクセルの解凍に関して、今後は検討を４つの対応するピクセルグループに限定することができる。
【００５９】
ＴＬＴは、ブロックグループのピクセルに関連して配置する必要がある。左上（１６０）のテクセル（ｘ＝０，ｙ＝０）から列順に右下のピクセル（７，７）（１６１）までの領域のピクセルに番号付けを行うと、ＴＬＴの局所位置は、その座標の各々のｙ値及びｘ値から２つの最下位のビットを取得し、以下の表を用いてマッピングすることで見出すことができる。
表２
2005525616.tif 000009
【００６０】
この表は主として例示を目的としており、この機能は自明であり単一ビットでは機能せず、実際上ハードウエアには必要ない。
【００６１】
従って、局所ピクセルの座標値は、要求された変調情報を形成するために使用できる。このことは図８に示す。識別された４つのピクセルブロック、｛（ｉ，ｊ）、（ｉ，ｉ＋１）、（ｉ＋１，ｊ）、（ｉ＋１，ｊ＋１）｝から、４つの対応する変調フィールド（１０４）がグループ化され（２００）、マルチプレクサ（２０１）に送られる。ＴＬＴ座標（２０２）の２組の最下位ビットに応答して、マルチプレクサは、４つの双一次テクセルの変調符号化に対応する４組のビットを出力する。
【００６２】
各々の変調フィールド（１０４）は３２ビットを保存するが、これら全てをマルチプレクサ（２０１）に送る必要がないことを理解されたい。図７を参照すると、ブロック（ｉ，ｊ）の４つだけが対象領域、即ち、領域（１５１）及び（１５２）の和集合に含まれるので、３２ビットの８ビットだけをマルチプレクサに供給する必要があることが分かる。
【００６３】
同様に、４つのブロックに対応する４つの変調モードフラグ（１０３）のセット（２０３）は、マルチプレクサユニット（２０４）に供給され、マルチプレクサユニット（２０４）は、再度ＴＬＴ座標（２０２）に応答して、４つのテクセルの要求された変調モードを示す、４つの単一ビットのフラグを出力する。
【００６４】
最終的に、マルチプレクサ（２０１）及び（２０４）の出力はテクセルによってグループ化され、３ビットの４つの組の各々は、４つのテクセル｛（ｙ，ｘ）、（ｙ，ｘ＋１）、（ｙ＋１，ｘ）、（ｙ＋１，ｘ＋１）｝に対応する４つの変調符号化ユニット２０５の１つに供給される。各々の符号化ユニットは前述の符号化表０及び１を実行して５ビットを出力する。これらの５ビットの内の４ビットは符号化表から分子の値、即ち０、３、４、５、又は８の内の１つを表すが、残りのビットはテクセルのアルファ値が強制的に０にする必要があるか否かを表す。
【００６５】
また、Ａ及びＢカラー信号は、双一次ブロックの４つのテクセルに対する補間値を形成するために拡大する必要がある。この拡大を行う方法は、効率の点で重要であり、「自明の」選択は最善ではない。例えば、低周波数の項を形成するために、「標準」線形ウエーブレットフィルタ（例えば、Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ｓｏｕｔｈ  Ｃａｌｉｆｏｒｎｉａ、Ｄｅｐａｒｔｍｅｎｔ  ｏｆ  Ｍａｔｈｅｍａｔｉｃｓ、Ｉｎｄｕｓｔｒｉａｌ  Ｍａｔｈｅｍａｔｉｃｓ  Ｉｎｉｔｉａｔｉｖｅ、Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  １９９５年５月、Ｓｗｌｄｅｎｓ及びＳｈｒｏｅｄｅｒ著「あなた自身のウエーブレットを自宅で構築する」を参照）を使用する場合、代表カラーを各々のブロックの左上ピクセルの「中央」に置く。これは図９に示される。低解像度データ（２３０）は、元の画像（２３１）から形成した。低解像度画像からのデータ要素（２３２）は、４×４ピクセルのブロック（２３３）の左上ピクセルに対応することになる。同様に、別の（２４０）は、ブロック（２４１）の左上ピクセルに対応することになる。各々のブロックの左上ピクセル以外の全てのピクセルは、左上ピクセルからの双一次補間によって取得する。
【００６６】
これは品質に関しては（前述の画像端部での可能性のあるアンバランスの除去によって）適度な結果をもたらすが、効率の問題がある。図４ｃに関連して前述したように、代表値Ａ及びＢは変調データに関して位相から外れることが望まれる。この目的を達成するために、図７からの対象領域（１５１）とクロスハッチング領域（１５２）の和集合、図９の（２４２）は、変調データブロックとオーバーラップするように定義される。この領域の全テクセルを形成するために、４つの包含ブロックの代表カラーのみならず、（２４３）に示す５つの追加ブロックの代表カラーも必要である。
【００６７】
もしくは、本発明は、代表カラーが各々のブロックのセンタの直下で右側のテクセルに方向付けされた変形例を使用する。このようなテクセルの２つが（２４４）で示されている。このテクセルは、代表「位置」を表すのでブロック代表テクセル又はＢＲＴと呼ばれる。本スキームは、対象領域（２４２）の全ピクセルを形成するために、４つの包含ブロックからの代表カラーだけをいつも要求することを保証する。（本変形例は、シフト画像に標準の双一次画像を適用することによって実行される）。
【００６８】
図７に説明した局所ピクセルの座標スキームを使用して、対象領域（１５１）と領域（１５２）の和集合における任意のピクセルでの、信号Ａ又はＢのいずれかの拡大信号のカラーは、以下の双一次方程式によって与えられる。
2005525616.tif 000010
2005525616.tif 000011
2005525616.tif 000012
2005525616.tif 000013
2005525616.tif 000014
ここで、（Ｙ，Ｘ）は４つの４×４ブロックに対するピクセルの座標であり、
2005525616.tif 000015
は４つのブロック、即ちＡ値又はＢ値のいずれかに関する低周波数代表カラー（ベクトル）であり、
2005525616.tif 000016
は結果として得られるピクセルに関する拡大カラー（ベクトル）である。
【００６９】
これらの方程式は、４つのテクセルの各々に関して推定する必要があることに留意されたい。更に、前記の方程式において、
2005525616.tif 000017
のカラーセットは、前述の保存値の３２ビットカラー等価値を参照することに留意されたい。
【００７０】
解凍プロセスは前記の方程式を実行できるが、本発明者は、２つの独立した最適化を高く評価している。第１の最適化は、データ構造に保存された低精度の値に対して殆ど直接的に補間を実行し、次に、これらの補間結果を完全な３２ビット精度に変換する方法である。第２の重要な革新は、４つの拡大ピクセルを並行に非常に効率よく形成する方法である。この方法は、２値再分割を使用して３Ｄ曲面を形成する方法に関連する。
【００７１】
好適な実施形態においては、これらの２つの方法を組み合わせたものを使用し、以下に図１０に関連して説明する。赤色チャンネルのみを示すが、青色及び緑色チャンネルに関する処理も同一である。全体的に１ビットだけ精度が劣る、アルファチャンネルに対するわずかな違いは当業者には明らかである。同様に、「Ａ」信号だけを説明するが、「Ｂ」信号に関する処理もほとんど同じである。以下の好適な実施形態の説明において、この機能として１つの角度計算ハードウエアの具体例が必要とされるが、Ａ信号及びＢ信号に含まれる全てのチャンネルに関して同一であることに留意されたい。
【００７２】
４つのブロックの代表値Ａからの４つの赤色成分の各々は、５ビット精度で供給される（２５０）。特定のカラーが（フラグ（１１２）で）透明として記録された場合、前述したように、保存された４ビット値は、最初に５ビット精度に変換される。ＴＬＴのｘ及びｙ座標の２つの最下位ビットから、ｘ及びｙからのより上位のビットを抽出し（２５１）、「ＸＹ角度化」ユニット（２５２）に送る。このユニットは、２ビットを検査して、０、９０、１８０、又は２７０度の内の１つの回転角度を特定する。角度１と呼ぶこの角度は、２ビットで符号化され、回転ユニット（２５３）に送られる。カラー代表値は、正方形のコーナに位置すると見なすことができ、回転ユニットは、単に入力角度に応じて正方形を「回転させる」。回転後、正方形のコーナは、左から右にＰ、Ｑ、Ｒ、Ｓの列順に呼び出される。
【００７３】
第１の回転ユニットの出力は、次に双一次ユニット２５４に送られ、ユニットは、ＰとＱの平均値（ａｖ  ＰＱ）、ＰとＲの平均値（ａｖ  ＰＲ）、及び４つの入力値全ての平均値（ａｖ  ＰＱＲＳ）を計算して、Ｐ、ａｖ  ＰＱ、ａｖ  ＰＲ、及びａｖ  ＰＱＲＳを出力する。出力値は、分数精度以上の精度を要求することに留意されたい。
【００７４】
ＴＬＴのｘ及びｙ座標の各々の最下位ビット（２６０）は、（２５２）の機能と同一の第２の角度計算ユニット（２６１）に供給される。計算された角度は角度２と呼ぶ。ユニット（２６２）において、角度１は角度２から減算され、「モジュロ３６０度」、第２の回転ユニット（２６３）に供給される差分が形成される。これは同様に４つの入力成分値を回転させ、結果Ｐ１、Ｑ１、Ｒ１、Ｓ１を第２の双一次ユニット（２６４）に出力する。このユニットは、入力ビットの精度が高いので作動精度がわずかに高くなる以外は、（２５４）と同様に作動する。
【００７５】
最終的に、角度２はユニット（２７０）の否定「モジュロ３６０」であり、出力は最後の回転ユニット（２７１）に供給される。この出力（２７２）は、等価な８ビットフォーマットに変換する必要がある、拡大信号Ａの赤色成分の中間形態である。
【００７６】
「ＸＹ角度化」ユニット（２５２）及び（２６１）は非常に単純で、これらの機能は以下に示す「疑似Ｃコード」機能によって厳密に記述することができる。これはハードウエアでの実行のためにＶＨＤＬに変換できることは自明である。
【００７７】
2005525616.tif 000018
【００７８】
また、「回転」ユニット（２５３）、（２６３）、及び（２７１）は、非常に単純であり、小数のマルチプレクサセットで実行することができる。同様に、機能は「疑似Ｃコード」で記述される。
【００７９】
2005525616.tif 000019
【００８０】
効率の理由から、マルチプレクサの入出力ビットの数は、完全な精度を維持するために必要な最小のビット数に設定する必要があることに留意されたい。例えば、回転ユニット（２５３）はわずか５ビット値で作動する。一方で、（２６３）は「Ｐｉｎ」に関する５つのビット、「Ｑｉｎ」及び「Ｒｉｎ」の各々に関する６ビット、及び「Ｓｉｎ」に関する７つの「有効」ビットを受信するであろう。出力値の各々は７つの有効ビットを有する。双一次ユニット（２５４）及び（２６４）の説明におけるこれらの数は、コンピュータ計算の当業者であれば理解できるはずである。
【００８１】
双一次ユニット（２５４）及び（２６４）は、「疑似Ｃコード」を使用して同様に説明できる。
【００８２】
2005525616.tif 000020
【００８３】
全ての出力値に同じ２進固定小数点を与えるために、Ｐｏｕｔ値には「４を乗算」する、即ち、最下位の位置に２つのゼロビットを追加する必要があり、一方で、ａｖＰＱ×２及びａｖＰＲ×２には「２を乗算」する、即ち、単一のゼロビットを追加する必要がある。ハードウエアでは、この精度の正規化処理は、実質的に後続の回転ユニット（２６３）及び（２７１）でそれぞれ実行されるので、これらユニット内のマルチプレクサのサイズが最小化される。経済性の理由から、ユニット（２６４）の出力精度は、９ビットのはずが、切り捨てられて８ビットになるが品質の大きな劣化はない。
【００８４】
双一次拡大に関する残りの１つの作動は、中間チャンネルの結果（２７２）を８ビット等価に変換することである。Ｒ、Ｇ、Ｂの信号に関し、これらの値は、目下「５．３」フォーマットで８ビット精度、即ち、２進小数点よりも大きい５ビット表示値及び分数３ビットである。以下の作動はフォーマットを変換するために使用される。
2005525616.tif 000021
また、アルファ成分の場合、（２７２）における最終的な中間精度は８ビットの結果であるが、「４．４」フォーマットである。これは以下のように変換される。
2005525616.tif 000022
【００８５】
解凍プロセスの最終ステップは、４つの変調値をそれぞれのＡ信号及びＢ信号値とブレンドして、所要であれば、アルファを強制的にゼロにすることである。図１１は、アルファチャンネルだけを示している４つの双一次ピクセルの１つに関するハードウエアを示す。図６で決定された５ビット変調情報（２０５）は、４ビット変調値（２８０）と、「アルファを強制ゼロにする」フラグ（２８１）とに分割される。８ビットのアルファ値（２８２）及び（２８３）は、信号Ａ及びＢの双一次拡張の出力に対応し、減算ユニット（２８４）に供給されて符号付き９ビット結果を形成する。この結果は、０から１の範囲の値を表す４ビット値（２８０）に乗算され（２８５）、「９．３」フォーマットの１２ビットの符号付き結果を形成するようになっている。（２８０）の範囲が制限されているので、これは１２ビットであり１３ビットではない。最終的に、これは（２８６）において（Ａ）値（２８２）に加算され、分数３ビット及び単一の符号ビットが切り捨てられて８ビット結果を与える。数学的計算を含むので、結果は、正値であり、０から２５５までの範囲に包含されることが保証される。最終的に、実際に（２８１）フラグによってテクセルがパンチスルーであるとマークされた場合、計算値は強制的にゼロにされる（２８７）。結果（２８８）は、所定テクセルに関するアルファ値を表す。
【００８６】
赤色、緑色、及び青色チャンネル用ハードウエアは、「強制ゼロ」ユニット（２８８）が存在しない以外はアルファのハードウエアと同一である。
【００８７】
また、主要なグラフィックスライブラリ基準において、テクスチャの繰り返しに関する特別な作動に対する要求がある。この作動は、ｘ及びｙの寸法に対して独立に適用することができるが、テクスチャの無限の繰り返しを含み、テクスチャの毎秒の繰り返しに対して方向を反転させるか、又は単純にテクセルを境界に固定する。これらの作動は、選択された繰り返しモードに関する元のピクセル位置の計算からの１組の信号を送ることによって実行され、ｘ及びｙの寸法に対して独立して利用可能な３つのオプションのうちの１つを指示する。ｘ方向に関するオプションは図１２に示す。これらは出力を変更しない（３００）か、左側ペアを右側ペアにコピーする（３０１）か、又は出力テクセルの左側ペアと右側ペアとを交換する（３０２）かである。ｙ寸法に関するオプションも類似している。
【００８８】
４ＢＰＰ圧縮方法
解凍処理は比較的簡単であるが、圧縮処理は非常に複雑である。図４ａに戻ると、好適な実施形態の圧縮プロセスは、前述の修正線形ウエーブレット変換、即ち、代表値をＢＲＴ上の「中央に置く」変換を使用して、元の画像（４０）を両方向に４倍だけダウンフィルタリングすることから始まる。ウエーブレット変換からの高周波数情報は、低周波数タームを残して捨てる（４１）。次に、これを、双一次拡張を使用して拡大する（４２）。低周波信号と元の画像との差分を計算する（４３）。
【００８９】
図１３は残りの処理の概要を示す。本方法は、ステップ（３１０）において、入力として元の画像（４０）、低周波数バージョン（４２）、及びデルタ画像（４３）を取得し、この信号から「軸」画像を形成する。これはデルタ信号の最大成分のフィルタリング方向を表す。この信号、元の信号、及びデルタ信号から初期のＡ及びＢ信号が形成される。
【００９０】
ステップ（３１１）において、各々のピクセルに関する変調値は、元の画像と初期のＡ及びＢ信号から計算し、次に、この信号は、量子化セットに分割され、初期の信号Ａ及びＢを最適化するために使用される。
【００９１】
ステップ（３１２）において、変調値は、更新されたＡ及びＢ信号から再計算し、これらは各々のブロックの最適変調モードを選択して量子化する。
【００９２】
ステップ（３１３）において、選択された量子化変調値を使用して、Ａ及びＢ信号は、特異値分解ＳＶＤを使用することでピクセルのオーバーラップ領域の最小の最小二乗誤差を「解決する」ことによって「最適」値に設定される。この方法は、線形代数学及び数値代数学によってもたらされる。単一値解凍の検討は、Ｐｒｅｓｓ他の「Ｃ数値方法」（Ｃａｍｂｒｉｄｇｅ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ、ＩＳＢＮ  ０−５２１−４３１０８−５）に示されている。
【００９３】
更新されたＡ及びＢ信号から新しい変調値を計算して、ステップ（３１２）と同じ方法で量子化する（３１４）。ステップ（３１５）では、（３１３）及び（３１４）の最適化ステップを複数回繰り返す。最後に、カラーを量子化して保存する（３１６）が、随意的なステップにより、元の画像のより良い代表値を取得するために保存値を僅かに「調整」することができる。
【００９４】
図１４及び図１５は、ステップ（３１０）で実行される作動を説明する。図１４に関して、データの全体的な主軸を見出すためにデルタ信号（４３）を解析する（３２１）。この種の解析は、例えば、Ｗｕによって説明されるように（「動的プログラミング及び主解析によるカラー量子化」Ｘｉａｏｌｉｎ  Ｗｕ、ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎＧｒａｐｈｉｃｓ、１９９２年１０月号、第１１巻４号、３４８−３７２頁）、又はＩｏｕｒｃｈａによって説明されるように（米国特許第５，９５６，４３１号）、最初に入力データの共分散マトリックスを計算し、次に、そのマトリックスの主ベクトルを見出す。従って、主固有ベクトルはデータを貫く主軸を表すことになる。
【００９５】
本発明は、前述の手法に対して２つの小さな変更点を有する方法を使用する。第１の変更点は、三次元ではなく、カラーベクトルが、該カラーベクトル及び主軸を四次元の共分散マトリックス４×４にするアルファ要素を含む点である。第２の変更点、即ち、より重要な違いは、デルタベクトルが起点の周りで対称であると想定されることである。これは、共分散の評価において各々のデルタ値を２度使用することによって実現でき、２度目の使用で各成分が否定される。しかしながら、非常に安価な方法は、単に各々の成分の平均値がゼロであると仮定することである。これは以下のように表現できる。
2005525616.tif 000023
2005525616.tif 000024
ここで、Ｍcovarは、要求された共分散マトリックス、
Ｒi、Ｇi、Ｂi、Ａiは、ピクセルｉのカラー成分、
ｗiは、サンプルのピクセル（この場合１）の重み又は重要度、
ｎは、サンプル数、
φ及びθは、（潜在的に等しい）カラーチャンネルの選択を表し、
Ｃφθは、φ、θの共分散である。
【００９６】
圧縮方法は、起点の周りで対称であると仮定されているので、前述の共分散方程式の平均値はゼロと仮定でき、推定が簡単になる。マトリックスの固有ベクトルが計算されこれが全体的な軸となる。位置合わせステップ（３２２）において、元のデルタデータ（４３）のピクセルの各々は、そのピクセルと軸とのドット積を取ることによって、全体的な軸と比較される。スカラー結果が負の場合、各々の成分を否定することによってデルタピクセルは「反転」される。
【００９７】
「軸が位置合わせされた」デルタデータは、次に、オーバーラップする７×７のピクセルブロック（３３０）に分割される。これらの寸法は（２．ＰｉｘｅｌＢｌｏｃｋHeight−１）（２．ＰｉｘｅｌＢｌｏｃｋWidth−１）に対応する。これらのオーバーラップブロックの各々は、ＢＲＴ上に中心が置かれ、代表カラーに直接影響を受ける領域を表す。各々の局所領域についての主軸は、加重フィルタを使用して計算される（３３１）。ピクセル毎の重みは（３３２）に示し、中心の最上位の重みは、ＢＲＴ上に位置合わせされる（３３３）。これらの重みは、拡大されたその領域の代表カラーに関する双一次フィルタ重みに対応するので、重みの合計値は１である。主ベクトル計算の他の態様（即ち、共分散マトリックスの作成及び固有ベクトルの計算）も同様である。
【００９８】
結果として得られた主ベクトルを再構築してｘ及びｙで解像度が１／４の低解像度画像３３４を形成する。次に、これを双一次拡大して（３３５）フィルタ処理された軸画像を形成する（３３６）。
【００９９】
（３１０）の次の部分では、Ａ及びＢ信号に対する初期推測値を計算する。図１５に関して、この処理は、画像の各々のピクセルまで（３５０）のステップを繰り返す。デルタ画像（４３）から対応するピクセルを選択して低周波信号（４２）から減算することによって、画像の各々のピクセルから代わりの「他の」ピクセルを計算する（３５１）。（これら２つのピクセルを追加することで、元の画像からのピクセルが生じることに留意されたい）。この「他の」ピクセルは「一時的」であり、ピクセル毎の「Ａ」値に割り当てられ、元の画像からのピクセルは、ピクセル毎の「Ｂ」値に割り当てられる（３５２）。
【０１００】
また、デルタ画像（４３）からの対応ピクセル及びフィルタ処理された軸信号（３３６）のドット積を計算する（３６０）。この結果（３６１）の符号が負の場合、ピクセルに対して割り当てられた「Ａ」及び「Ｂ」値を交換し（３６２）、負でない場合はそのままにする。個々のピクセル毎のＡ及びＢカラーは、２つの画像に再構築し（３６３）、縮小して（３６４）、各々のブロックに関する開始Ａ及びＢ代表値を形成する。この値は保存して後で使用する。また、この値は双一次拡大されて低周波数の「初期Ａ」及び「初期Ｂ」信号を形成する。
【０１０１】
第１のステップ（３１１）は、初期の低周波数推定値「初期Ａ」及び「初期Ｂ」からの画像に関する変調値の第１のセットを計算する。以下の方程式は、各々のピクセルの変調スカラー値ｍを取得するために使用される。
2005525616.tif 000025
ここで、
2005525616.tif 000026
は、元のテクスチャの対応ピクセル（ベクトル）であり、
2005525616.tif 000027
は、（初期）低周波数（拡大）Ａ及びＢ（ベクトル）信号の対応ピクセルである。
【０１０２】
分母がゼロの場合、結果はゼロと仮定する。変調値は、モノクロム画像として取り扱かうことができる。
【０１０３】
この変調値の初期セットを使用して、ブロック毎の最適なＡ及びＢ代表値信号を送る。再度、（３３２）で規定されるフィルタカーネルを使用して、ＢＲＴ上に中心を置く７×７のオーバーラップ領域に分割する。図１６に関して、７×７の変調値及び関連の重み対は（３９０）、変調値の昇順に保存される（３９１）。次に、これらの保存された要素は、以下に示すように、ＰとＱの２セットに分割される。
2005525616.tif 000028
及び
2005525616.tif 000029
、ｐｍｏｄ＜ｑｍｏｄであり、ここで誤差Ｅは、
2005525616.tif 000030
が最小である。この方程式において、
2005525616.tif 000031
は、加重平均である。
【０１０４】
誤差を最小にする分割処理を計算で求めることは、
2005525616.tif 000032
を観察して線形時で計算でき、絶えず追加的に更新できることに留意されたい。つまり、分割点がセット値を通して掃引される際に、各々の分割に起因する誤差を素早く更新することができる。
【０１０５】
初期の分割セットを計算した状態で、このセットは、主要な４つの変調量子化レベル、即ち、０．０、３／８、５／８、及び１．０に対応する４つに再分割する。速度の理由から、単純な汎用Ｌｌｏｙｄアルゴリズム、ＧＬＡを使用する（３９３）。
【０１０６】
このアルゴリズムの第１のステップ（３９４）は、０及び１に対する代表値を計算する等価物から構成され、この値は単純に加重平均ｐwav及びｑwavであり、明らかな線形ブレンドである２つの暗示的な分数代表値の「等価値」を求める。変調値は、これらの新しいカテゴリに再分割される（３９５）。（１３／１６）（ｐwav）＋（３／１６）（ｑwav）よりも小さい任意の値は、新しい「０」（即ちｐ）セットに割り当てられ、（１３／１６）（ｐwav）＋（３／１６）（ｑwav）よりも大きい任意の値は、新しい「１」（即ちｑ）セットに割り当てられる。目下、他の２つのセットは必要ない。次に、新しいセットに対応するｐwav及びｑwavの値を計算する。
【０１０７】
所定回数の繰り返しが未実行の場合（３９６）、ＧＬＡは、ステップ（３９４）及び（３９５）を繰り返す。十分作動した後に、ステップ（３９７）でセット「０」及びセット「１」の最終的な代表値、即ち、ｐwav及びｑwavを使用して、以下の方程式を用いてこの領域に関する代表値Ａ及びＢを修正する。
2005525616.tif 000033
2005525616.tif 000034
【０１０８】
ステップ（３１２）において、ステップ（３１１）の最初の部分に説明した方程式を使用して変調値を再度計算する。画像の各々の４×４ブロックに関して、変調値の計算値は、｛０，３／８，５／８，１｝の値セット及び｛０，１／２，１｝の値セットに対して量子化される。最小量子化誤差を生じる量子化レベルセットは、ブロックモードに対して選択される。（しかしながら、パンチスルーピクセルを含むブロックの場合、後者のモードは自動的に選択される）。変調値は、それらの量子化レベルに設定される。
【０１０９】
ステップ（３１３）において、次に、選択された量子化変調値は、特異値分解、即ちＳＶＤを用いて、最適化されたＡ及びＢ値を再計算するために使用される。この段階では、任意セットを、好適には隣接するＡ及びＢ代表値セットを最適化するためにＳＶＤを使用する。これは、圧縮結果がＡ及びＢの組の選択セットによって決定されるピクセルを選択し、元のピクセルカラー及び選択された量子化変調値を検索することによって行われる。理論的には、この方法は、単一ステップで画像全体に対して適用できるであろう。しかしながら、ＳＶＤアルゴリズムの実行時間は、Ｏ（ｎ3）である。ｎはピクセル数なので非常にコストがかかる。好適な実施形態において、最適化は、一度に４つの組のＡ及びＢ値セットに対して繰り返して実行され、このようなセットの１つは、図１７に示されている。
【０１１０】
１１×１１のピクセル領域（４２０）は、４組のＡ及びＢ値によって直接影響を受け、その位置は黒塗りの菱形によって示す。これらのうちの左上のものは（４２１）で示す。このピクセル領域のサイズは、式（３ＰｉｘｅｌＢｌｏｃｋHeight−１）（３ＰｉｘｅｌＢｌｏｃｋwidth−１）で求めることができる。参考のために、（４２１）を含む４×４ピクセルブロックは（４２２）によって示す。グレー円で示す更に１２組のＡＢは、その領域に影響を与える。この組の１つは（４２３）である。４組のＡＢに対応するグループに対して新しい最適値を計算する場合、外側の１２組は一定に保たれる。
【０１１１】
（４３０）で表すマトリックスＭAは、１２１行と８列で構成される。各々の行（４３１）は、領域（４２０）の固有ピクセルに対応し、各々の列（４３２）は「影響」に対応し、各々の８つのＡＢ値、即ち、４組は、そのピクセルに置く。この実施例において、ＡＢの組（４２１）に対応する値は、最初の２つの列（４３３）に割り当てた。特定の値の影響は、ピクセル及びＡＢの位置に関連する双一次重み、及び、ピクセルに割り当てられた変調値によって決定される。例えば、ピクセル（４３５）は、割り当てられた量子化変調値ｍ1をもつと仮定する。ＭAには以下の対応行がある。
〔（１−ｍ1）（３／１６），ｍ1（３／１６），０，０，（１−ｍ1）（９／１６），ｍ1（９／１６），０，０〕
【０１１２】
左側のＡＢ組だけがピクセル（４３５）に影響を与えること、及び、変調値ｍ2をもつピクセル（４３６）に関しては、対応行は以下の通りであることに留意されたい。
〔（１−ｍ2）（４／１６），ｍ2（４／１６），（１−ｍ2）（４／１６），ｍ2（４／１６），（１−ｍ2）（４／１６），ｍ2（４／１６），（１−ｍ2）（４／１６），ｍ2（４／１６）〕
【０１１３】
また、第２のマトリックスＭＢも構築され、１２１行と４列を有し、列は赤色、緑色、青色、及びアルファチャンネルに対応する。このマトリックスは、領域４２０のピクセル値を含み、（４２３）等の外側の１２組に起因するピクセルの任意の成分以外は減算によって取り除かれる。
【０１１４】
８つの未知のＡ及びＢの最適値は、８成分列ベクトル
2005525616.tif 000035
によって表す。
2005525616.tif 000036
を決定するためには、最小二乗誤差が最小になるように以下の一次式を「解く」必要がある。
2005525616.tif 000037
【０１１５】
この連立方程式が与えられると、ＳＶＤ法は最適ベクトル
2005525616.tif 000038
を戻すことになる。新しいＡ及びＢ値が抽出され、この領域に関する元の値を置き換える。このステップは、ＡＢの４組のグループの全部又はサブセットに対して繰り返される。
【０１１６】
ステップ（３１６）において、Ａ及びＢのカラー値を量子化する。圧縮画像の全体的な精度が改善されたか否かを調べるために、遺伝的アルゴリズム等によって随意的な機能を実行して、量子化レベルの僅かな違いを検証する。
【０１１７】
最終的な量子化Ａ及びＢ値、変調値、及びブロック毎の変調モードは、前述のフォーマットに圧縮され、解凍システムが使用できるように保存される。
【０１１８】
２ＢＰＰ法
２ＢＰＰ法は、４ＢＰＰスキームに対する変形例であり、２つの主たる差異のみを説明する。
【０１１９】
図１８に示すように、「ブロック」は４×８（Ｙ＊Ｘ）ピクセルのサイズまで拡張する（４５０）。各々のブロックのＢＲＴ（４５１）の位置は、再度、ブロック中央の直下で右側のテクセルに設定される。双一次拡大は、ｘ方向の２倍の追加的な拡張により明らかに実行される。
【０１２０】
４ＢＰＰモードと同様に、各々のブロックは、図５の（１００）に示すように、各々が同じ４つのデータフィールドをもつ６４ビットを使用して保存される。カラー代表値（１１０）及び（１１１）は、４ＢＰＰモードと同一である。唯一の違いは、３２ビットの変調データ（１０４）及び変調モードフラグを解釈する方法である。
【０１２１】
変調モードフラグ（１０３）がゼロに設定されている場合、各ビットは、図１９に示す方法で解釈される。ブロック（４６０）の３２ピクセル変調値の各々は、単一ビットを使用して符号化される。前述のように、左上ピクセルは最下位の位置（４６１）に保存され、右下ピクセルは最上位の位置４６２に保存される。保存されたゼロの値は０．０の変調値を表し、１の値は１．０を表す。
【０１２２】
モードフラグ（１０３）が１に設定されている場合、図２０に示す、１つおきのピクセルのみが明示的に符号化される。ピクセルグループ（４７０）において、「白」とマークされたテクセルに関する変調値のみが、２ビット／テクセルにて保存される。これらのテクセルの符号化は、４ＢＰＰモードの場合と同一であり、符号化した場合の４つの可能性のある変調値は｛０，３／８，５／８，１｝である。前述のように、左上ピクセルの変調値は、最下位の２ビット（４７１）に保存され、右下の値は最上位の各ビットに保存される。
【０１２３】
チェッカーボードパターンの残りの「グレー」テクセルは、隣接して取り囲んでいる４つの「白」テクセルの平均値によって暗示される変調値を有する。例えば、（４７５）で表されるテクセルＴ2,5は、テクセルＴ1,5、Ｔ2,4、Ｔ2,6、及びＴ3,5の平均値によって暗示された変調値を有する。ブロック端部の「グレー」テクセルは、隣接ブロックの「白」テクセルの変調値を使用する。
【０１２４】
後続の変調作用のコストを最小化するために、計算された平均値は、最も近い１／８の値に丸められる。正確には、ｍａ、ｍｂ、ｍｃ、及びｍｄが「グレー」テクセルを取り囲んでいる「白」変調値の場合、「グレー」テクセルは以下の式によって求められる。
2005525616.tif 000039
【０１２５】
別の実施例
別の実施形態は、単位、平均値としてブロック毎に２つのカラーと、２つの元のカラーの差分を保存でき、平均値に対しては高いビット精度を割り当て、差分に対しては低いビット精度を割り当てる。この方式は、一般に自然の画像には適切に機能するが、図表には劣るであろう。ＹＵＶ＋アルファのような別のカラー空間は、ブロック毎のカラーを表すために使用できるであろう。
【０１２６】
更に別の実施形態は、ＤＣＴ、アダマール変換、あるいは１つ又は２つのウエーブレットパス等を使用するような、変換符号化方法で変調値を保存できるであろう。幾つかの低位の高周波数タームは捨て去ることができる。この場合も同様に、この方法は、自然の画像に対しては適切に機能するが、線図に対しては上手く機能しない場合が多い。
【０１２７】
追加のメモリアクセスと推定コストを要求するが、双二次方程式又は双三次方程式補間を使用して圧縮画像の品質を改善できる。この方式において、全てのベースカラーを別個に変調情報に保存するのが有利である。
【０１２８】
記述の実施形態において、ハードウエアは非圧縮テクスチャをサポートする必要がありそうなので、３Ｄハードウエアの後半段階でテクスチャ化フィルタリングが行われることが想定されている。別の実施形態では、テクスチャ解凍の一部としてフィルタリングを組み込むことによって、ハードウエアを簡略化できる。これは、最初に変調値をフィルタリングし、次にフィルタ処理された変調値を、拡大Ａ及びＢ信号に適用することによって、双一次フィルタ又は更に複雑なフィルタを近似する、安価なフィルタリングモードまで更に拡張できる。変調値はスカラーであり、即ち、元来出力されたテクセルよりも低次元なので、全体的なハードウエアコストが低減される。
【０１２９】
高い圧縮レートが必要な場合、この方式は、二次的な参照テーブルを使用するようにできる。これは２つの独立した方法で実行できる。保存されたカラーは、テーブルへの索引を用いて置換するか、及び／又は、変調情報は別のテーブルへの索引に縮小することができる。
【０１３０】
２ＢＰＰの別の実施形態は、追加の変調モードを実行できる。ブロックのモードフラグ（１０３）が１に設定された場合、ブロックのＴ００テクセル変調値の精度は、２ビットから１ビットに低減するであろう。次に、「未使用」ビットは別のモード選択フラットＳｅｌ１になる。Ｓｅｌ１が０の場合、図２０のグレーテクセルは、前述の方法と全く同じ方法で形成される。しかしながら、Ｓｅｌ１が１の場合、Ｔ２４の変調値の精度も１ビットに低減するであろう。次に、「未使用」ビットは、別のモード選択フラットＳｅｌ２になる。Ｓｅｌ２が０の場合、暗示的な「グレー」ピクセルの変調値は、直近の２つの水平方向の隣接値だけを平均することによって形成される。Ｓｅｌ２が１の場合、垂直方向の隣接値を平均する。
【０１３１】
別の実施形態では、他のエン符号化を使用するために追加のモードのビットを使用でき、結果的に全部で４つのモードを与える。２つのモードは既に説明した２つの変調モードであるが、残りの２つのモードは、モードをエミュレートするために使用できる。例えば、１つのモードは、ブロック内で解凍がＳ３ＴＣの作動を近似するように使用できるので、むしろブロックからブロックへのＡ及びＢカラーを補間するのではなく、Ａ及びＢカラーがブロック内で一定に保たれるようにする。別の追加モードは、各カラー値の局所隣接値への索引として変調値を直接使用する。同一ではないが、これは「カラー分散」又はＦＸＴ１「ＣＣ＿ＣＨＲＯＭＡ」テクスチャ圧縮法と類似の画像特性をもつであろう。
【０１３２】
別の用途
本方法は、三次元（又は高次）テクスチャをサポートするように拡張できる。低周波信号は、二次元ではなく三次元（又はそれ以上）にわたって簡単に補間され、ピクセルの矩形ブロックは拡張されて矩形プリズムになる。
【０１３３】
Ａ＆Ｂ信号を代表カラー画像として説明したが、本発明はこれに限定されるものではない。例えば、Ａ及びＢ代表値は、グレースケール画像に対して単色性であってもよく、又はＵＶ摂動テクスチャのマッピングに関する二次元マップを保存することもできる。もしくは、Ａ＆Ｂ値は、（ｘ，ｙ，ｚ）又は本出願人のＥＰＯ特許出願９８  ９３９  ７５１．８に記載されている二次元最適化のいずれかによって符号化された、バンプマップベクトル正規形として解釈することもできる。
【０１３４】
更に、Ａ＆Ｂ信号は、二次元画像と考える必要はない。例えば、一次元を捨て去り、例えば双一次ではなく線形補間を使用することにより、本方法は音声圧縮に適用できる。
【０１３５】
本方法は、３Ｄモデリング等の関連分野にも適用できる。本方法は、境界面及び低精度モデル化テクスチャマップを使用して、曲面（例えば、双三次面で表れる）を変位マッピングと組み合わせることによって、複雑な表面モデルの圧縮／保存／再構成の手段を提供する。
【０１３６】
特定の図面を参照して明細書の別の部分で説明した特徴は、特に説明又は図示したもの以外と組み合わせて使用できることに留意されたい。このような修正は全て請求範囲に記載した本発明の範囲内に包含される。
【０１３７】
前述の説明に関連して、当業者であれば均等の装置及び方法を容易に考えることができ、図面に示し明細書に記載した均等の装置及び方法の全ては、本発明に含まれることが意図されている点を理解されたい。従って、前述のものは本発明の原理を例示するのみである。更に、当業者であれば、種々の修正及び変更を容易に行うことができ、本発明は、図示及び説明した構成及び作動に限定することは意図されておらず、従って、全ての修正及び均等物は本発明の範囲に属するものである。
【図面の簡単な説明】
【０１３８】
【図１】双一次フィルタリングを使用した、表面へのテクスチャの適用を示す。
【図２】Ｓ３ＴＣを用いた双一次フィルタリングの最悪のケースを示す。
【図３】「カラー分散」テクスチャ圧縮の双一次フィルタリングを用いた最悪のケースを示す。
【図４ａ】画像の低域フィルタリング及びデルタ信号の計算に含まれる各ステップを示す。
【図４ｂ】本発明の、全体的なテクスチャ解凍処理を示す。
【図４ｃ】変調データを有する位相を外れたＡ値及び／又はＢ値を概略示す。
【図５】圧縮テクスチャデータブロックのフォーマットを示す。
【図６】４ＢＰＰブロックの変調情報のレイアウトを示す。
【図７】特定のテクセルセットを解凍するのに必要なブロックデータを示す。
【図８】変調情報の選択及び変換を示すブロック図である。
【図９】単純な双一次拡大を示す。
【図１０】並列双一次拡大のために最適化されたハードウエアを説明する。
【図１１】Ａ及びＢ信号を変調するハードウエアのブロック図である。
【図１２】テクスチャの繰り返しモードを実行するのに必要な交換モードを示す。
【図１３】圧縮処理の概要である。
【図１４】圧縮処理の「軸画像」の計算ステップである。
【図１５】圧縮処理の初期Ａ及びＢを計算するステップのブロック図である。
【図１６】圧縮処理における変調とＡ及びＢ値の初期最適化である。
【図１７】入力マトリックス表示で、ＳＶＤステップによって最適化された典型的な領域を示す。
【図１８】２ＢＰＰフォーマットのブロック構成を示す。
【図１９】２ＢＰＰフォーマットで使用される１つの変調モードを示す。
【図２０】２ＢＰＰフォーマットの他の変調モードを示す。
【図２１ａ】複数の変調値の２つの補間低解像度データセットへの適用を示す。
【図２１ｂ】図２１ａで使用した変調値を示す。
【図１】
2005525616.tif 000044
【図２】
2005525616.tif 000045
【図３】
2005525616.tif 000046
【図４ａ】
2005525616.tif 000047
【図４ｂ】
2005525616.tif 000048
【図４ｃ】
2005525616.tif 000049
【図５】
2005525616.tif 000050
【図６】
2005525616.tif 000051
【図７】
2005525616.tif 000052
【図８】
2005525616.tif 000053
【図９】
2005525616.tif 000054
【図１０】
2005525616.tif 000055
【図１１】
2005525616.tif 000056
【図１２】
2005525616.tif 000057
2005525616.tif 000058
2005525616.tif 000059
【図１３】
2005525616.tif 000060
【図１４】
2005525616.tif 000061
【図１５】
2005525616.tif 000062
【図１６】
2005525616.tif 000063
【図１７】
2005525616.tif 000064
【図１８】
2005525616.tif 000065
【図１９】
2005525616.tif 000066
【図２０】
2005525616.tif 000067
【図２１ａ】
2005525616.tif 000068
【図２１ｂ】
2005525616.tif 000069
【国際調査報告】
2005525616.tif 000070
2005525616.tif 000071
2005525616.tif 000072
2005525616.tif 000073
2005525616.tif 000074
2005525616.tif 000075
2005525616.tif 000076