(57)【要約】【課題】圧縮後の、例えばブロックデータのサイズを計算可能とし、圧縮後のデータに対するランダム・アクセスを容易にする。【解決手段】データ圧縮装置が、データを複数のブロックに分割するブロック分割部と、複数のブロック内で同一の位置にある各要素データのうちの最大値と最小値から、各要素データの圧縮のために割り当てるべきビット数を求めるビット数算出部と、そのビット数に対応して各要素データの圧縮を行うデータ圧縮部とを備える。【選択図】図１
2009077183.tif 000002
【特許請求の範囲】
【請求項１】
データを複数のブロックに分割するブロック分割手段と、
前記複数のブロック内で同一の位置にある各要素データのうちの最大値と最小値から、該各要素データの圧縮のためにそれぞれ割り当てるべきビット数を求めるビット数算出手段と、
該ビット数に対応して前記各要素データの圧縮を行うデータ圧縮手段とを備えることを特徴とするデータ圧縮装置。
【請求項２】
前記ブロックに分割されたデータの変換を行い、該変換後のデータを前記ビット数算出手段に与えるデータ変換手段をさらに備えることを特徴とする請求項１に記載のデータ圧縮装置。
【請求項３】
前記データが画像データであり、前記変換がアダマール変換であることを特徴とする請求項２に記載のデータ圧縮装置。
【請求項４】
前記データ圧縮装置と、
該データ圧縮装置から与えられる、前記ビット数を含むデータ伸張用パラメータを記憶するパラメータ記憶手段と、該データ伸張用パラメータを用いて前記データ圧縮装置によって圧縮されたデータの伸張を行うデータ伸張手段とを備えるデータ伸張装置と、
を備えることを特徴とするデータ圧縮・伸張システム。
【請求項５】
データを複数のブロックに分割し、
前記複数のブロック内で同一の位置にある各要素データのうちの最大値と最小値から、該各要素データの圧縮のためにそれぞれ割り当てるべきビット数を求め、
該ビット数に対応して前記各要素データの圧縮を行うことを特徴とするデータ圧縮方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ圧縮方式に係り、さらに詳しくは画像データ、例えばコンピュータグラフィックスのテクスチャ画像データの圧縮、および伸張方式に関する。
【背景技術】
【０００２】
データの圧縮方式としては各種の方式があるが、以下の説明では主として画像データの圧縮について説明するために、ここでは画像データの圧縮方式の従来技術とその問題点について説明する。
【０００３】
従来の代表的な画像データ圧縮方式として、ＪＰＥＧ（ジョイント・フォトグラフィック・エキスパーツ・グループ）方式がよく知られている。また、３次元コンピュータグラフィックスの手法の１つとしての、物体の表面に質感を表現するテクスチャと呼ばれる画像を貼り付けるテクスチャ・マッピングにおける画像データ圧縮方式として、Ｓ３社によって開発されたＳ３ＴＣ（Ｓ３テクスチャ・コンプレッション）という圧縮方式がある。
【０００４】
しかしながらこのような手法においては、一般にデータの圧縮や伸張の方法が複雑であり、また圧縮後のデータサイズが予測できないため、画像中の任意の画素のデータだけを読み込むためのランダム・アクセスが不可能であるという問題点があった。
【０００５】
またテクスチャ・マッピングにおけるフィルタリングの方式として、トリリニア・フィルタリングや、ミップマップを用いたフィルタリング方式が用いられている。トリリニア・フィルタリングは、バイリニア・フィルタリングという手法の問題点を改善したものである。
【０００６】
バイリニア・フィルタリングは、テクスチャをポリゴンに貼り付けるときにテクスチャの拡大によって画像が粗くなることを防ぐために、テクスチャのピクセル４点のデータを平均し、ジャギーの目立たないなめらかな画像を作り出す手法である。物体の奥行きに対応して画像サイズの違うテクスチャを貼り付ける場合に、その変わり目でテクスチャのちらつきを抑えるための技術であり、同様に８点のデータを平均化する手法がトリリニア・フィルタリングである。
【０００７】
ミップマップによるテクスチャフィルタリングでは、同じ絵柄の画像を複数のサイズで用意し、視点から遠ざかるにしたがってサイズの小さい画像を使うことによって、画像が不自然になることを防止する技術である。
【０００８】
このようなトリリニア・フィルタリングやミップマップを用いたテクスチャ・フィルタリングでは、絵柄は同一であってもサイズ（解像度）が異なる複数の画像を読み出して、処理を行う必要がある。このためランダム・アクセスができない場合には、複数の画像から画像データを読み出す時間がかかり、高速な処理ができなくなるという問題点があった。
【０００９】
このような画像データの圧縮の効率化などに関する従来技術として、次の特許文献１から特許文献４がある。特許文献１には、少なくとも水平方向、および垂直方向に隣接しない位置関係にある所定数の画素のデータを１ブロックとして直交変換することによって、データの再生側でビットエラーが発生したブロックの画素データを、他のブロックの画素データを用いて修正可能とする技術が開示されている。
【００１０】
特許文献２には、飛び越し走査されたフレーム映像信号の一方のフィールドに対してはその画像データを圧縮し、他方のフィールドについては一方のフィールドとの差分をとることによってデータ圧縮を行い、少ないデータ量で画像データの記録、あるいは伝送を可能とする技術が開示されている。
【００１１】
特許文献３には、ブロック毎に符号化モードを切り替えることによって、画像中で横に相関が強い領域、縦に相関が強い領域など、局所的な画質の性質に対応した適応的な符号化を行うことができる符号化装置、および方法が開示されている。
【００１２】
特許文献４には、量子化テーブルを２の乗数から形成することによって、画像情報の伸張が正確になされ、従来の圧縮・伸張で生じていた量子化誤差がない再生画像データを求めることができる技術が開示されている。
【００１３】
しかしながらこのような従来技術を用いても、例えばＪＰＥＧ方式を用いた画像圧縮において圧縮後のデータサイズが予測できないために、画像中の任意の画素データに対するランダム・アクセスが不可能であり、また例えば複数の画像サイズのテクスチャ画像を読み出すための処理時間が増加するという問題点を解決することはできなかった。
【特許文献１】特開平１−２４００８８号公報  「データ伝送装置」
【特許文献２】特開平１−２５１９７３号公報  「映像信号の直交変換符号化装置および直交逆変換復号装置」
【特許文献３】特開平８−１８６８２３号公報  「符号化装置及び方法」
【特許文献４】特開平１１−８８７０１号公報  「画像圧縮装置および画像伸張装置」
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の課題は、上述の問題点に鑑み、例えば４×４個のデータによって構成されるブロックの同一位置のデータ毎に、データ圧縮のために割り当てるビット数を切り替えることによって、圧縮後のデータサイズを計算可能とし、圧縮後のデータに対するランダム・アクセスを可能にすることによって、例えばコンピュータグラフィックス処理装置の処理効率を向上させることである。
【課題を解決するための手段】
【００１５】
本発明のデータ圧縮装置は、少なくともブロック分割手段、ビット数算出手段、およびデータ圧縮手段を備える。ブロック分割手段は、データ、例えば画像データを複数のブロックに分割するものであり、ビット数算出手段は、分割された複数のブロック内で、同一の位置にある各要素データのうちの最大値と最小値から、各要素データの圧縮のためにそれぞれ割り当てるべきビット数を求めるものであり、データ圧縮手段は、そのビット数に対応して、各要素データの圧縮を行うものである。
【００１６】
発明の実施の形態においては、データ圧縮装置はブロックに分割されたデータの変換、例えばデータが画像データである場合にはアダマール変換を行い、変換後のデータをビット数算出手段に与えるデータ変換手段をさらに備えることもできる。
【００１７】
また本発明のデータ圧縮方法は、本発明のデータ圧縮装置によって用いられるデータ圧縮方法である。
以上のように本発明によれば、複数のブロック内で同一の位置にある各要素データの圧縮のためにそれぞれ割り当てられるビット数が決定され、そのビット数に対応してデータの圧縮が行われる。
【発明の効果】
【００１８】
本発明によれば、複数のブロック内で同一の位置にある各要素データの圧縮のためにそれぞれ割りあてられるべきビット数が求められ、そのビット数に対応してデータ圧縮が行われることによって、圧縮後のデータに対するランダム・アクセスが可能となり、例えば複数のサイズの画像データを用いるコンピュータグラフィックス装置の処理効率向上に寄与するところが大きい。
【発明を実施するための最良の形態】
【００１９】
図１は、本実施形態におけるデータ圧縮装置の基本構成ブロック図である。同図においてデータ圧縮装置１は、ブロック分割部２、データ変換部３、ビット数算出部４、およびデータ圧縮部５を備える。
【００２０】
ブロック分割部２は、データ、例えば画像データを複数のブロック、例えば４×４個の画素のデータを含むブロックに分割するものであり、データ変換部３はそのブロック単位でデータの変換、例えばアダマール変換を行うものである。ビット数算出部４は、データ変換部３の出力データとしての複数のブロック内で、同一の位置にあるそれぞれの要素データのうちの最大値と最小値から、各要素データの圧縮のためにそれぞれ割り当てるべきビット数を求めるものであり、データ圧縮部５はそのビット数に対応して各要素データの圧縮を行うものである。
【００２１】
本実施形態においては、データ圧縮装置１によってデータ、例えば画像データの圧縮が行われるが、圧縮された画像データを伸張するデータ伸張装置と、図１のデータ圧縮装置とによって、データ圧縮・伸張システムを構成することができる。
【００２２】
そのデータ伸張装置は、データ圧縮装置側から与えられる前述のビット数を含むデータ伸張用パラメータを記憶するパラメータ記憶部と、そのデータ伸張用パラメータを用いてデータ圧縮装置によって圧縮されたデータの伸張を行うデータ伸張部とを備えることになる。
【００２３】
図２、および図３は、本実施形態における画像データ圧縮方式の基本説明図である。図２は、圧縮対象画像中でのある画素、例えば４×４個の画素単位で分割された各ブロック内で同一位置にある要素（画素）の要素値（画素値）の変化範囲の説明図である。
【００２４】
本実施形態では、圧縮対象画像の、例えば４×４個の画素単位のブロックに対する２次元アダマール変換が行われた後にデータの圧縮が行われるものとする。図２において、例えば簡単のために画像の大きさを８×８画素とすると、画像は４×４画素の４つのブロックに分割される。各ブロックのうちで同一位置、例えば最も左上の位置にある画素（要素）の要素値の変化範囲は、例えば“０〜１０２３”の１０２４階調のうちで、最小値（ＭＩＮ）から最大値（ＭＡＸ）の範囲内にあるものとする。すると最小値（ＭＩＮ）未満の要素値の領域と最大値（ＭＡＸ）を越えて１０２３までの要素値の領域は、対象画像中でのその位置の要素値の変化範囲外となるため、この位置の要素の値として“０〜１０２３”の範囲を全て使用することは冗長となることになる。そこで本実施形態では、例えば４×４個の画素単位のブロック内の各位置の要素の値の変化範囲に対応して、その要素値に割り当てるビット数を決定するものとする。
【００２５】
図３は、画像のブロックへの分割と、ブロック内の各要素毎に要素値の変化範囲を求める方法の詳細説明図である。同図においては、まず画像が４×４画素単位のブロックに分割され、そのブロック単位に２次元アダマール変換が行われ、各ブロック内の各要素の要素値が求められる。
【００２６】
そして図３の右側に示すように、４×４画素単位の各ブロック内で最も左上の要素から、要素値の最小値（ＭＩＮ）から最大値（ＭＡＸ）までの範囲が求められ、その範囲内が分割されて符号化されることになる。その範囲が狭い場合には、本実施形態では、例えば分割数を少なくする、すなわち量子化のための係数を大きくするものとして以後の説明を行うものとする。
【００２７】
なお、ここでは圧縮対象画像に対してブロック分割を行い、２次元アダマール変換を行った結果の要素値の変化範囲を求めるものとしているが、画像の変換方式としては２次元アダマール変換に限定されることはなく、直交変換、離散コサイン変換（ＤＣＴ）など、他の変換方式を用いることができることは当然である。
【００２８】
本実施形態における画像圧縮方式を一般的に説明する前に、まず具体例を用いて、画像圧縮方式と画像伸張（復元）方式について、図４から図１２を用いて説明する。
図４から図１０は、画像圧縮方式の具体例の説明図である。前述のように１つの画像は４×４画素単位のブロックに分割される。図４（ａ）は１つのブロックの画素データの例である。画像データは、例えばＲＧＢの各成分で表わされるものとするが、図４（ａ）は、例えばＲ成分を１つのブロックに対して表わしたものである。
【００２９】
この４×４画素のブロックを対象として２次元アダマール変換が実行される。図４（ｂ）は図４（ａ）の画素データのアダマール変換結果を示す。このアダマール変換された結果の画素（要素）の値をＥとする。
【００３０】
前述のように、例えば１つの画像が８×８個の画素で構成されるものとし、４×４画素のブロック単位に２次元アダマール変換された結果が図５に示されるものとする。同図において４×４画素単位の各ブロックにおいて同一位置にある要素、例えば最も左上の要素に対する最大値、最小値はそれぞれ“５８２”、“３６７”であり、その右隣の要素に対する最大値、最小値はそれぞれ“２４２”、“−１７７”であり、２行目左端の要素に対する最大値、最小値はそれぞれ“１”、“−１１９”であり、その右隣の要素に対する最大値、最小値はそれぞれ“３７”、“−９２”である。
【００３１】
ここで計算の簡略化のために、各ブロックの右上の要素、すなわち直流成分以外の要素の値に“５１０”を加算するものとする。一般的に直流成分は“０〜１０２３”、その他の成分は“−５１０〜＋５１０”の間の値をとるため、直流成分以外の要素に“５１０”を加算することによって全ての要素の値を正とすることができる。図６は、図５の直流成分以外の要素に“５１０”を加算した結果を示す。なお、この加算値はすべての要素値を正とするものであれば、例えば“５１１”、あるいは“５１２”でも良い。
【００３２】
図２、および図３で説明したように本実施形態では、各要素の要素値の最大値と最小値（２つの値の間の差分）、および要素の位置に対応して各要素の圧縮のために割り当てるビット数が決定される。本実施形態においては次式によって割当ビット数をｂを決定するものとする。このビット数ｂが“０”以下の場合には割り当てるビット数の値はｂ＝１となる。
【００３３】
ｂ＝ＭＡＸ（（ＣＥＩＬ（ｌｏｇ２（最大値−最小値）−Ｍ），１）  ・・・  （１）
ここでＣＥＩＬ（ｘ）は、ｘの小数部を切り上げた整数値を求める関数である。パラメータＭは要素の位置に対応するパラメータであり、ユーザによって予め設定されるものとする。ここでは直流成分、すなわち４×４画素単位のブロックのうちで最も左上の要素に対してはＭの値を“０”とし、その他の要素（交流成分）に対してはＭ＝２と設定する。求められたｂの値をブロック内のすべての要素に対して合計することにより、各ブロックのデータサイズが確定し、圧縮後のデータに対するランダム・アクセスが可能となる。
【００３４】
図７（ａ）は交流成分に“５１０”を加算した結果としての図６に対応して、各ブロックの中で同一位置にある要素の値のうちの最大値を示し、図７（ｂ）は最小値を示し、図７（ｃ）は最大値と最小値の差分を示す。
【００３５】
図８は（１）式によって求められたブロック内の各位置の要素に対する割当ビット数を示す。
本実施形態では、画像データ伸張（復元）時において、２次元逆アダマール変換の前の各要素Ｅを次の（２）式で表わせるようにするために、量子化のための係数ａを（３）式を用いて求めるものとする。
Ｅ＝ａ・ｘ＋最小値ｍ  ・・・  （２）
ａ＝（最大値−最小値ｍ）／（２ｂ−１）  ・・・  （３）
【００３６】
図９は図７の最大値、最小値、および図８の割当ビット数を用いて（３）式によって求められた係数ａの値を示す。
【００３７】
最後に図６の画像全体の要素値に対する量子化後の圧縮値ｘを次式によって求めるものとする。
ｘ＝ＩＮＴ［（要素値Ｅ−最小値ｍ）／ａ＋０．５］  ・・・  （４）
ここでＩＮＴ［  ］は小数部を切り捨てた整数値を求める関数であり、また“０．５”は小数部が０．５より大きいときに４捨５入を実現するための加算値である。
【００３８】
図１０は図６の各要素値に対応して、（４）式を用いて求められた要素値の圧縮結果を示す。本実施形態では、前述のように（２）式を用いて画像データ伸張（復元）を行うために、この圧縮値ｘに加えて、（３）式によって求められた係数ａ、および最小値ｍの値をメモリやレジスタに格納し、また圧縮されたデータに対するランダム・アクセスを可能とするために割当ビット数ｂの値をレジスタに格納し、データ圧縮を終了する。
【００３９】
図１１、および図１２は画像データの伸張（復元）結果と、圧縮前の値との誤差の説明図である。図１１の伸張結果の要素値は、前述のようにメモリなどに格納された圧縮値ｘ、量子化のための係数ａ、および各要素の最小値ｍを用いて次式によって求められる。
【００４０】
Ｅ＝ＩＮＴ（ａ・ｘ＋ｍ＋０．５）（直流成分）  ・・・  （５）
Ｅ＝ＩＮＴ（ａ・ｘ＋ｍ＋０．５−５１０）（交流成分）  ・・・  （６）
なお、これらの式でも“０．５”は４捨５入のために加算されている。
【００４１】
図１２は圧縮前の要素値、すなわち図５の値と、図１１の伸張された結果の値との誤差の説明図である。同図においては、８×８個の画素によって構成される画像に対して画素（要素）単位で誤差が示されている。
【００４２】
図１１の伸張結果に対して、４×４個の画素で構成されるブロック単位に２次元逆アダマール変換を行うことによって、元の画像データが求められることになる。逆アダマール変換においては、当然変換の方向は違うが、変換に用いられる行列はアダマール変換におけると同一であり、その意味では図１１の伸張結果に対して“２次元アダマール変換”を行うことによって元の画像を求めることができるということもできる。
【００４３】
以上において本実施形態における画像データ圧縮と伸張方式について具体例を用いた説明を終わり、以後本実施形態におけるデータ圧縮と伸張方式についてさらに一般的に説明する。図１３、および図１４は本方式における画像データ圧縮と伸張処理の詳細フローチャートである。
【００４４】
図１３はデータ圧縮処理のフローチャートであり、処理が開始されると、まずステップＳ１０で画像の垂直方向の座標を示すｙについて、ｙ＝０から画像高さまでの範囲内で、ｙの値が“４”だけ加算され、４×４個の画素によって構成されるブロックの水平方向の並びがとられ、ステップＳ１１で水平方向の座標としてのｘの値が“０”から画像幅までの範囲で、ｘの値が“４”だけ加算されることによってブロックの区切りが行われ、ステップＳ１２でそのブロック単位で２次元アダマール変換が行われ、各ブロック単位でのアダマール変換結果の要素の値が得られる。この処理がステップＳ１１でｘの値が“４”加算されるたびに繰り返され、水平方向の並びのブロックに対しての処理が行われる。
【００４５】
水平方向のブロックに対する処理が終了すると、ステップＳ１０からステップＳ１２の処理でその下の水平方向のブロックに対する処理が繰り返され、画像内の全てのブロックに対する２次元アダマール変換が終了すると、ステップＳ１３の処理に移行し、４×４個の画素（要素）で構成される各ブロックにおいて同一位置の各要素の最大値と最小値が求められ、ステップＳ１４で前述の（１）式を用いて各要素毎の割当ビット数ｂが求められ、ステップＳ１５で（３）式を用いて量子化のための係数ａが各要素に対して求められる。
【００４６】
以上の処理によって、２次元アダマール変換後の画素（要素）値の圧縮、および伸張に用いるためのパラメータとしての最小値ｍ、量子化のためのａの値が求められたことになるので、ステップＳ１６でこれらの値をレジスタ、すなわち後述する伸張用パラメータ保持レジスタに格納するとともに、圧縮後のデータに対するランダム・アクセスのために必要となる各要素に対する割当ビット数ｂをレジスタに格納した後に、ステップＳ１７以降の処理に移行する。
【００４７】
ステップＳ１７では座標データｙの値が１つずつ、ステップＳ１８では座標データｘの値が１つずつインクリメントされ、ステップＳ１９でブロック単位の４×４個の各要素に対する量子化のための係数ａと最小値ｍとを用いて、例えば８×８個の画素に対応する要素の圧縮値ｘの値が１つずつ計算され、ステップＳ２０でその値ｘがメモリに格納される処理が繰り返され、８×８個の要素に対する圧縮値ｘの計算が終了した時点でデータの圧縮処理を終了する。
【００４８】
図１４は画像データ伸張処理の詳細フローチャートである。同図において処理が開始されると、まずステップＳ３０で４×４個の各要素に対応するパラメータとしての最小値ｍと量子化のための係数ａ、およびデータアクセスのための割当ビット数ｂがレジスタから読み込まれ、ステップＳ３１で各要素の座標と割当ビット数ｂを用いてデータの伸張を行いたい４×４個の単位の画素のアドレスが計算され、ステップＳ３２でそのアドレスを用いて圧縮値ｘがメモリから読み込まれ、ステップＳ３３で前述の（５）、および（６）式を用いてデータの伸張結果が求められる。
【００４９】
伸張が必要な全てのブロック、例えば画像全体のブロックに対するステップＳ３０からＳ３３の処理が終了すると、ステップＳ３４で４×４個の要素によって構成されるブロック単位で２次元（逆）アダマール変換が行われ、画像データが得られて処理を終了する。
【００５０】
図１５は、本実施形態における画像データ圧縮、および伸張方式を用いるコンピュータグラフィックス処理装置の構成例のブロック図である。同図においてコンピュータグラフィックス処理装置１０はメモリ１１と接続されている。コンピュータグラフィックス処理装置１０の内部の頂点シェーダ１２から画素の後処理部１６までは一般的な画像処理に必要なブロックであり、本実施形態における画像データ圧縮・伸張方式とは直接の関係はないので、その動作については簡単に説明する。
【００５１】
まず頂点シェーダ１２は、外部から与えられる頂点情報などに対応して必要に応じて頂点位置を変える処理などを行うものであり、頂点の後処理部１３は、例えば画面の外に三角形などがある場合に、その三角形はその後の処理の対象としないことを決定するものであり、ラスタライザ１４は、例えば３つの頂点の位置が与えられた時、その３つの頂点によって構成される三角形の内部の画素データを埋めるものであり、ピクセルシェーダ１５は必要に応じて画素の色を変えるものであり、画素の後処理部１６は、例えば色の混合、すなわち混色を行うものである。
【００５２】
メモリ１１はコンピュータグラフィックス処理装置１０の外部にあるか、あるいは内蔵されているメモリであり、フレームバッファ１８、およびテクスチャメモリ１９を備えている。フレームバッファ１８には画素の後処理部１６の出力が与えられ、フレームバッファ１８からは描画イメージの画像の元データが、コンピュータグラフィックス処理装置１０の内部のテクスチャ圧縮回路２１に与えられる。そしてテクスチャ圧縮回路２１によって圧縮された画素（要素）データはテクスチャメモリ１９に格納される。テクスチャメモリ１９には外部から非圧縮のテクスチャデータを与えることもできる。
【００５３】
コンピュータグラフィックス処理装置１０の内部のテクスチャ圧縮回路２１、およびテクスチャユニット２２が本実施形態における画像データ圧縮、および伸張処理を行うための回路ブロックである。前述のようにテクスチャ圧縮回路２１によって圧縮されたデータはテクスチャメモリ１９に格納されるが、圧縮データはテクスチャユニット２２によって伸張され、例えばピクセルシェーダ１５に与えられる。テクスチャ圧縮回路２１、テクスチャユニット２２の詳細構成については図１６、図１７を用いて説明する。
【００５４】
図１６はテクスチャ圧縮回路２１の詳細構成ブロック図である。同図においてテクスチャ圧縮回路２１は、２次元アダマール変換回路２５、画像解析回路２６、伸張用パラメータ保持レジスタ２７、画像圧縮回路２８によって構成されている。図１５ではフレームバッファ１８に格納されている描画イメージの画像データがテクスチャ圧縮回路２１に与えられるものとしたが、図１６では圧縮前の画像データはテクスチャメモリ１９からテクスチャ圧縮回路２１に与えられ、圧縮後のデータは再びテクスチャメモリ１９に格納されるものとする。なお、画像データ圧縮処理の速度が遅くなっても描画速度などには影響しないため、ハードウェアとしてのテクスチャ圧縮回路の代わりに、ＣＰＵを用いたソフトウェア処理も可能である。
【００５５】
テクスチャメモリ１９から与えられる圧縮前の元画像のデータに対して、２次元アダマール変換回路２５によって２次元アダマール変換が行われ、その結果は画像解析回路２６に与えられる。画像解析回路２６は、図１３のステップＳ１０からＳ１５で説明した処理に相当する動作によって、画素データ圧縮、および伸張に必要なパラメータとしての４×４個の画素（要素）によって構成されるブロック単位の各要素に対応する最小値ｍ、量子化のための係数ａとともに、データアクセスのためのビット数ｂを算出し、ステップＳ１６で説明したようにこれらのパラメータを伸張用パラメータ保持レジスタ２７に格納する。
【００５６】
画像圧縮回路２８は、２次元アダマール変換回路２５による変換結果と、伸張用パラメータ保持レジスタ２７に格納されているパラメータ、すなわち４×４個の画素単位のブロックの各要素に対する最小値ｍ、量子化のための係数ａを用いて、前述の（４）式によって画像データの圧縮値ｘを計算し、その結果を圧縮データとしてテクスチャメモリ１９に出力する。
【００５７】
なお、本発明の特許請求の範囲の請求項１におけるブロック分割手段と請求項２におけ
るデータ変換手段は２次元アダマール変換回路２５に、ビット数算出手段は画像解析回路２６に、またデータ圧縮手段は画像圧縮回路２８に相当する。
【００５８】
図１７は圧縮されたデータの伸張を行うテクスチャユニット２２の構成ブロック図である。同図においてテクスチャユニット２２は、伸張用パラメータ保持レジスタ３０、メモリアドレス計算およびアクセス回路３１、アダマール変換用要素値伸張回路３２、２次元逆アダマール変換回路３３、および画像データ保持ランダム・アクセス・メモリ３４によって構成されている。
【００５９】
伸張用パラメータ保持レジスタ３０には、図１６の伸張用パラメータ保持レジスタ２７から、またはＣＰＵが用いられる場合にはＣＰＵから、パラメータとしてのレジスタ値が格納される。メモリアドレス計算およびアクセス回路３１は、このレジスタ３０の保持内容を用い、図１５のピクセルシェーダ１５、または図示しないテクスチャ読み出し回路からの指示に応じて、伸張すべきデータのメモリアドレスを計算し、このメモリアドレスをテクスチャメモリ１９に与える。
【００６０】
アダマール変換用要素値伸張回路３２は、このメモリアドレスによって指定されるテクスチャメモリ１９内の圧縮データの入力を受けて、図１４のステップＳ３２、Ｓ３３で説明したように伸張結果を求め、２次元逆アダマール変換回路３３に出力し、２次元逆アダマール変換回路３３は４×４個の画素によって構成されるブロック単位に、ステップＳ３４で説明したように（逆）アダマール変換を行い、その結果を画像データ保持ＲＡＭ３４に格納し、格納結果はテクスチャデータとして、例えばピクセルシェーダ１５に与えられる。
【００６１】
なお、請求項４におけるパラメータ記憶手段は伸張用パラメータ保持レジスタ３０に、またデータ伸張手段はアダマール変換用要素値伸張回路３２に相当する。
以上において本実施形態における画像データ圧縮方式について詳細に説明したが、最後に図１８を用いて本方式の効果について説明する。同図においては、従来技術としてのＪＰＥＧ方式、Ｓ３ＴＣ方式と、本方式との比較結果が示されている。まず、圧縮効率については本方式では図２、および図３で説明したように画像データの変化範囲以外の領域を量子化から除外するために圧縮効率が向上するが、従来技術のＪＰＥＧ方式ではブロックの大きさを可変としたり、圧縮後にさらに後処理を行うことによって、本方式より圧縮効率が向上することもある。
【００６２】
ランダム・アクセスについては、本方式ではブロック内の各要素の圧縮のために使用するビット数を決定し、その結果、ランダム・アクセスが容易となるという大きな特徴がある。
【００６３】
ミップマップ処理については、本方式では大きさの異なる画像データに対するランダム・アクセスが可能となることによって、データ読み出しにかかる時間を短縮し、ミップマップ処理が容易となる。
【００６４】
再現色数については、Ｓ３ＴＣ方式が画像を減色することを基本としているために、本方式ではＪＰＥＧ方式と同様の数の色を再現することができる。
圧縮時、および伸張時の演算量については、本方式では圧縮時に割当ビット数、要素値の最小値、量子化に使用する係数を求めた後にデータ圧縮を行う必要があり、圧縮時には演算量が増大するが、伸張時には前述の（５）、および（６）式を用いた計算を行うだけであり、演算量は少なくて済む特徴がある。
【００６５】
以上においては、グラフィックス処理としてのミップマップ方式や、トリリニア・フィ
ルタリング処理への応用についての詳しい説明を省略したが、本方式はこのようにサイズの異なる複数のテクスチャ画像を用いる処理に応用することも当然可能である。さらに本実施形態における画像データ圧縮方式は、対象データが画像データに限定されることなく、各種のデータの圧縮に利用できることも当然である。
【図面の簡単な説明】
【００６６】
【図１】本実施形態におけるデータ圧縮装置の基本構成ブロック図である。
【図２】本実施形態における量子化範囲の説明図である。
【図３】ブロック内の各要素に対する量子化範囲の説明図である。
【図４】４×４個の画素によって構成されるブロックの画素データとそのアダマール変換結果の例である。
【図５】８×８個の画素によって構成される画像データのアダマール変換結果の例である。
【図６】図５のデータを全て正の値に変換した結果を示す図である。
【図７】４×４個のブロック内で同一位置にある要素データの最大値、最小値、および最大値と最小値の差分を示す図である。
【図８】ブロック内の各要素の量子化に割り当てるビット数の説明図である。
【図９】量子化のために用いられる係数ａの値を示す図である。
【図１０】図６のデータの圧縮値を示す図である。
【図１１】図１０のデータの伸張によって求められた、図５に対応する要素値を示す図である。
【図１２】図５と図１１のデータの間の誤差を示す図である。
【図１３】本実施形態におけるデータ圧縮処理の詳細フローチャートである。
【図１４】データ伸張処理の詳細フローチャートである。
【図１５】コンピュータグラフィックス処理装置の構成ブロック図である。
【図１６】図１５のテクスチャ圧縮回路の構成ブロック図である。
【図１７】図１５のテクスチャユニットの構成ブロック図である。
【図１８】本発明の効果を説明する図である。
【符号の説明】
【００６７】
１  データ圧縮装置
２  ブロック分割部
３  データ変換部
４  ビット数算出部
５  データ圧縮部
１０  コンピュータグラフィックス処理装置
１１  メモリ
１２  頂点シェーダ
１３  頂点の後処理部
１４  ラスタライザ
１５  ピクセルシェーダ
１６  画素の後処理部
１８  フレームバッファ
１９  テクスチャメモリ
２１  テクスチャ圧縮回路
２２  テクスチャユニット
２５  ２次元アダマール変換回路
２６  画像解析回路
２７、３０  伸張用パラメータ保持レジスタ
２８  画像圧縮回路
３１  メモリアドレス計算およびアクセス回路
３２  アダマール変換用要素値伸張回路
３３  ２次元逆アダマール変換回路
３４  画像データ保持ＲＡＭ
【図１】
2009077183.tif 000003
【図２】
2009077183.tif 000004
【図３】
2009077183.tif 000005
【図４】
2009077183.tif 000006
【図５】
2009077183.tif 000007
【図６】
2009077183.tif 000008
【図７】
2009077183.tif 000009
【図８】
2009077183.tif 000010
【図９】
2009077183.tif 000011
【図１０】
2009077183.tif 000012
【図１１】
2009077183.tif 000013
【図１２】
2009077183.tif 000014
【図１３】
2009077183.tif 000015
【図１４】
2009077183.tif 000016
【図１５】
2009077183.tif 000017
【図１６】
2009077183.tif 000018
【図１７】
2009077183.tif 000019
【図１８】
2009077183.tif 000020