(57)【特許請求の範囲】
【請求項１】
画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにする属性値ペア生成部と、
各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転させる回転部と、
回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮処理部と、
を有することを特徴とする圧縮回路。
【請求項２】
前記属性値の平均値を前記属性値の種類ごとに求める平均値算出部と、
前記属性値から前記平均値を減算する平均値減算部と、
を更に有し、
前記属性値ペア生成部は、前記平均値を減算した前記属性値から前記ペアを生成することを特徴とする請求項１記載の圧縮回路。
【請求項３】
前記属性値ペア生成部は、相関係数の絶対値が最も大きくなる２つの前記属性値を、前記ペアとすることを特徴とする請求項１または２に記載の圧縮回路。
【請求項４】
属性値ペア生成部が、画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにし、
回転部が、各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転し、
圧縮処理部が、回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶することを特徴とする圧縮方法。
【請求項５】
画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにし、各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転し、回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮回路部と、
前記回転角度と、前記ビット数とを入力し、前記ビット数をもとに、圧縮された前記ペアの前記属性値をメモリから読み出し、圧縮前のビット長に伸長し、前記回転角度をもとに、圧縮時とは反対の回転方向で、伸長した前記ペアの前記属性値を回転させる伸長回路部と、
を有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像情報を圧縮する圧縮回路、圧縮方法及び半導体集積回路に関する。
【背景技術】
【０００２】
３次元グラフィックスなどを描画する描画回路は一般的に、３次元での位置情報、色情報などの属性情報を持った頂点を読み込み、その頂点に対して各種の処理を行う。たとえば、描画回路は、頂点に対して回転や色の計算などを行う処理（ジオメトリ処理）、頂点を組み合わせて図形を生成する処理（ラスタライズ）、また、図形の内部を塗りつぶして画面に表示する処理（レンダリング）などを行う。
【０００３】
近年では、グラフィックス描画回路の性能向上により、表示されるグラフィックスモデルの頂点数も増加しており、多数の頂点をメモリから読み出すことは、バンド幅を圧迫し性能低下の原因となっている。
【０００４】
ところで、一般的に、画像を圧縮するための手段としてＪＰＥＧ（Joint Photographic Experts Group）が知られている。また、画像以外の一般的なデータに対する圧縮手段としてＬＺ７７などの圧縮方式が知られている。また、グラフィックス処理に用いられるテクスチャを圧縮するための方式として、Ｓ３ＴＣ（ＤＸＴＣとも呼ばれる）が知られている。Ｓ３ＴＣでは、ある画素ブロックを固定長で圧縮するため、ＪＰＥＧやＬＺ７７で不可能なランダムアクセスによるメモリからのデータ取り出しが可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−０８８８６６号公報
【特許文献２】特開平５−１５３４１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の圧縮手法は、ランダムアクセス性と可逆圧縮を両方備えたものではなく、グラフィックス処理に適したものではなかった。
グラフィックス処理では頂点データは順番に読み出されるのではなく、図形に必要な頂点から読み出されるため、ランダムアクセスが不可能なＪＰＥＧやＬＺ７７を用いることができない。一方で、Ｓ３ＴＣではランダムアクセスでデータを取り出すことができるが、非可逆圧縮であるため、データの劣化が生じてしまい、厳密な値が要求される頂点に対して適用することができないという問題があった。
【０００７】
上記の点を鑑みて、本発明は、ランダムアクセスによる頂点データの読み出し及び可逆圧縮を可能とする圧縮回路、圧縮方法及び半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、以下のような圧縮回路が提供される。
この圧縮回路は、画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにする属性値ペア生成部と、各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転させる回転部と、回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮処理部と、を有する。
【０００９】
また、上記目的を達成するために、以下のような半導体集積回路が提供される。
この半導体集積回路は、画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにし、各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転し、回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮回路部と、前記回転角度と、前記ビット数とを入力し、前記ビット数をもとに、圧縮された前記ペアの前記属性値をメモリから読み出し、圧縮前のビット長に伸長し、前記回転角度をもとに、圧縮時とは反対の回転方向で、伸長した前記ペアの前記属性値を回転させる伸長回路部と、を有する。
【発明の効果】
【００１０】
開示の圧縮回路、圧縮方法及び半導体集積回路によれば、ランダムアクセスによる頂点データの読み出し及び可逆圧縮が可能となる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態の圧縮回路の構成を示す図である。
【図２】属性値を回転させる一例を示す図である。
【図３】属性値を固定長に圧縮する一例を示す図である。
【図４】第２の実施の形態の圧縮回路の構成を示す図である。
【図５】圧縮回路による動作の流れを示すフローチャートである。
【図６】属性情報の回転の様子を具体的な図形を用いて説明する図である。
【図７】属性値を頂点ごとにまとめて格納した例を示す図である。
【図８】属性値をペアごとにまとめて格納した例を示す図である。
【図９】伸長回路の一例の構成を示す図である。
【図１０】伸長回路による動作の流れを示すフローチャートである。
【図１１】圧縮回路部と伸長回路部を有した半導体集積回路の構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
図１は、第１の実施の形態の圧縮回路の構成を示す図である。
圧縮回路１は、たとえば、ＬＳＩ（Large Scale Integrated circuit）などの半導体集積回路であり、属性値ペア生成部１ａ、回転部１ｂ、圧縮処理部１ｃを有している。
【００１３】
属性値ペア生成部１ａは、メモリ２から読み出した画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにする。
回転部１ｂは、各ペアの属性値を２次元座標値と見なし、複数の頂点においてペアの共分散を０にするための回転角度をペアの種類ごとに求め、その回転角度により属性値を２次元平面上で回転させる。また、回転部１ｂは算出した回転角度をメモリ２に記憶する。
【００１４】
圧縮処理部１ｃは、回転後の属性値の最大値と最小値とから、属性値を表すために必要なビット数を求め、ビット数をもとに属性値を固定ビット長に圧縮してメモリ２に記憶する。また、圧縮処理部１ｃは、求めたビット数をメモリ２に記憶する。
【００１５】
以下、圧縮回路１の動作を説明する。
メモリ２から読み出される画像の頂点に付随する属性値には、座標情報（Ｘ，Ｙ，Ｚ，Ｗ）、色情報（Ｒ，Ｇ，Ｂ，Ａ）、テクスチャ座標（Ｓ，Ｔ）、法線情報（Ｎｘ，Ｎｙ，Ｎｚ）などがある。
【００１６】
属性値ペア生成部１ａは、これらの属性値から２種類ずつのペアを生成する。たとえば、属性値ペア生成部１ａは、座標情報のＸとＹを２種類の属性値としてペアにしたり、色情報のＲとＧをペアにしたりする。ペアの生成方法の詳細については後述する。
【００１７】
その後、回転部１ｂは属性値ペア生成部１ａにて生成された各ペアにおける属性値を２次元座標値とし、複数の頂点において同一種類のペアの共分散を０にするための回転角度を求める。その後、回転部１ｂは、求めた回転角度で各ペアの属性値を２次元平面上で回転させる。
【００１８】
図２は、属性値を回転させる一例を示す図である。図２（Ａ）は座標情報Ｘ，Ｙのペアをプロットした例を示し、図２（Ｂ）はペアの共分散を０にするための回転角度で回転させた結果の例を示している。
【００１９】
横軸はｘ、縦軸はｙである。
共分散が０とは、ある値がもう一方の値と全く相関がない状態を示しており、このような状態にすると、ある値がもう一方の値と相関がある場合と比べて、値を表現するために必要な範囲を狭くすることができる。
【００２０】
図２の例では、図２（Ａ）のように２次元平面上にプロットされたペアを、矢印Ｔ１方向に共分散が０になるような回転角度で回転させている。この場合、図２（Ｂ）に示すように、ｙ軸方向において値を表現するための範囲を狭くすることができ、情報量を圧縮することができる。共分散を０にする具体的な回転角度の算出法については、後述する。
【００２１】
次に、圧縮処理部１ｃは、各頂点における回転後の属性値の最大値と最小値を求め、各属性値の表現に必要なビット数を求める。そして、圧縮処理部１ｃは、そのビット数をもとに属性値を固定ビット長に圧縮し、メモリ２に記憶する。
【００２２】
図３は、属性値を固定長に圧縮する一例を示す図である。図３（Ａ）は圧縮前のビット範囲、図３（Ｂ）は圧縮後のビット範囲を示している。斜線部は実際に使用されているデータ領域を示している。
【００２３】
頂点の各属性値は、３２ビット、１６ビットの浮動小数、または８ビットの整数のフォーマットが用いられることが一般的である。たとえば、色情報で浮動小数形式の場合、属性情報は、０から１の場合であることがほとんどである。また、８ビットの整数形式の場合でも、表現可能な色全てを同一図形内で使用するということはまれであり、属性値は８ビットを全て使い切っていない場合が多い。
【００２４】
図３（Ａ）の例では、８ビット整数のうち、−１６から１５までしか使用されていない。つまり、１６以上及び−１７以下を表現するためのビットは無駄となっている。そのため、圧縮処理部１ｃは、最小値である−１６と最大値である１５とから、その属性値を表すために必要なビット数Ｎ＝５を求める。そして、圧縮処理部１ｃは、求めたビット数Ｎ＝５で、図３（Ｂ）のように属性値を圧縮する。
【００２５】
なお、回転部１ｂで求めた回転角度や、圧縮処理部１ｃが求めたビット数Ｎは、伸長の際に用いられるため、メモリ２に記憶される。
以上のような圧縮回路１によれば、各属性値を固定ビット長に圧縮してメモリ２に記憶するので、各頂点のビット幅は固定となり、ランダムアクセスによる頂点データの読み出しが可能となる。また、伸長の際には、メモリ２に記憶した回転角度やビット数Ｎを用いることで、元の頂点データと同じものが復元されるため、可逆圧縮が可能となる。伸長処理についての詳細は後述する。
【００２６】
以下、第２の実施の形態の圧縮回路を説明する。
図４は、第２の実施の形態の圧縮回路の構成を示す図である。
圧縮回路１０は、たとえば半導体集積回路であり、平均値算出部１１、平均値減算部１２、属性値ペア生成部１３、回転部１４、圧縮処理部１５を有している。各部はメモリ２０と接続しており、各部で算出または生成したデータをメモリ２０に記憶できるとともに、メモリ２０に記憶したデータを読み出して各部の処理に用いることができる。
【００２７】
平均値算出部１１は、メモリ２０から読み出した頂点データから、属性値の平均値を、属性値の種類ごとに算出する。また、平均値算出部１１は算出した平均値を、たとえば、メモリ２０に記憶する。
【００２８】
平均値減算部１２は、各属性値から、平均値算出部１１が算出した平均値を減算する。
属性値ペア生成部１３は、平均値を減算した属性値から、２種類ずつの属性値によるペアを生成する。
【００２９】
回転部１４は、回転角度算出部１４ａと２次元回転実行部１４ｂとを有する。
回転角度算出部１４ａは、生成されたペアの属性値を２次元座標値とし、複数の頂点においてペアの共分散を０にするための回転角度を、ペアの種類ごとに求める。また、回転角度算出部１４ａはペアの種類ごとの回転角度を、たとえば、メモリ２０に記憶する。
【００３０】
２次元回転実行部１４ｂは、各ペアの属性値に対して、算出された回転角度による２次元平面上での回転を実行する。
圧縮処理部１５は、最大・最小値算出部１５ａ、必要ビット数算出部１５ｂ、データ圧縮部１５ｃを有している。
【００３１】
最大・最小値算出部１５ａは、回転部１４で回転された属性値の最大値と最小値を算出する。
必要ビット数算出部１５ｂは、算出された最大値と最小値から、各属性値の表現に必要なビット数を算出し、算出したビット数を、たとえば、メモリ２０に記憶する。
【００３２】
データ圧縮部１５ｃは、算出されたビット数で属性値を圧縮し、メモリ２０に記憶する。
次に、圧縮回路１０の動作についてフローチャートを用いて更に詳細に説明する。
【００３３】
図５は、圧縮回路１０による動作の流れを示すフローチャートである。
まず、平均値算出部１１は、メモリ２０から画像の頂点データを読み込み、属性値の種類ごとに、図形の各頂点の属性値の平均値を算出する（ステップＳ１）。座標情報Ｘを例とした場合、平均値算出部１１は、図形の各頂点のＸの値の平均値を算出する。
【００３４】
次に、平均値減算部１２は、算出された平均値を各頂点の属性値から減算する（ステップＳ２）。座標情報Ｘを例とした場合、ある頂点でのＸの値をＸｉ、Ｘの平均値をＸａとすると、平均値減算部１２は、Ｘｉ−Ｘａを頂点ごとに求める。
【００３５】
属性値を平均値で減算することで、その属性値を表す値の範囲を狭くすることができ、情報量を圧縮することができる。
次に、属性値ペア生成部１３は、平均値を減算した属性値からペアを生成する（ステップＳ３）。たとえば、属性値ペア生成部１３は、属性値同士の相関係数を求めて、相関係数の絶対値が最も大きい属性値の対をペアとして確定する。
【００３６】
相関関係の大きい（相関係数の絶対値が大きい）属性値の対は、値を表現するために必要な範囲が広い。そのため、相関係数の絶対値が最も大きくなるような属性値の対をペアとすることで、回転により共分散を０にしたときに、値を表現するために必要な範囲を大幅に減らすことができ、情報量をより効率よく圧縮することができる。
【００３７】
相関係数は２つの属性値に対する統計的指標であり、−１から１の間の実数値をとる。２つの属性値に正の相関、すなわち属性値Ａが増加すると属性値Ｂも増加するという傾向がある場合、相関係数は１に近い値をとる。一方、負の相関、すなわち属性値Ａが増加すると属性値Ｂは減少するという傾向がある場合、相関係数は−１に近い値をとる。相関係数は、２つの属性値に関連性がない場合は０に近い値をとる。
【００３８】
ｎ個の頂点に対する属性値Ａと属性値Ｂの相関係数は、ある頂点ｉでの属性値Ａ，ＢをＡｉ，Ｂｉ、属性値Ａの平均値をＡａ、属性値Ｂの平均値をＢａとした場合、以下の式により求めることができる。
【００３９】
【数１】
0005454178.tif 000002
【００４０】
なお、属性値ペア生成部１３は、ユーザの指定により属性値のペアを確定するようにしてもよい。
次に、回転角度算出部１４ａは、各ペアの属性値を２次元座標値とし、複数の頂点においてペアの共分散を０にするための回転角度を算出する（ステップＳ４）。
【００４１】
たとえば、座標情報Ｘ，Ｙを属性値のペアとした場合、ある頂点での座標情報をＸｉ，Ｙｉとすると、ｎ個の頂点における当該ペアの共分散を０にするための回転角度θは、以下の式によって求められる。
【００４２】
【数２】
0005454178.tif 000003
【００４３】
座標情報以外の属性値（たとえば、色情報やテクスチャ座標など）のペアについても同様に、式（２）を用いることにより共分散を０にするための回転角度θを算出することができる。
【００４４】
次に、２次元回転実行部１４ｂは、回転角度算出部１４ａで算出された回転角度で、各ペアの属性値を２次元平面上で回転させる（ステップＳ５）。
図６は、属性情報の回転の様子を具体的な図形を用いて説明する図である。図６（Ａ）は回転前の図形、図６（Ｂ）は回転後の図形の様子を示している。横軸がｘ、縦軸がｙである。
【００４５】
たとえば、図６（Ａ）のような図形３０の各頂点の座標情報Ｘ，Ｙをペアとした場合、２次元回転実行部１４ｂは、各ペアを、ｘ−ｙ平面上で、ｚ軸を中心として矢印Ｔ２の方向に回転角度θだけ回転させる。
【００４６】
ある頂点での座標情報をＸi，Ｙiとすると、回転角度θでの回転後の座標情報Ｘｄi，Ｙｄiは、以下の式により求められる。
【００４７】
【数３】
0005454178.tif 000004
【００４８】
これにより、たとえば、図６（Ｂ）に示すように、ｙ軸方向の値を表現するために必要な範囲を狭くすることができ、情報量を圧縮できる。
座標情報以外の属性値（たとえば、色情報やテクスチャ座標など）についてのペアに対しても同様に、図６に示したような２次元平面上で、ペアを、ｚ軸を中心として共分散を０にする回転角度で回転させることで同様の効果が得られる。
【００４９】
次に、最大・最小値算出部１５ａは、図３を用いて説明したように、各属性値の最大値、最小値を求め、必要ビット数算出部１５ｂは、最大値及び最小値から各属性値の表現に必要なビット数Ｎをそれぞれ算出する（ステップＳ６）。
【００５０】
その後、データ圧縮部１５ｃは、必要ビット数算出部１５ｂが算出した、それぞれの属性値の表現に必要なビット数Ｎで、各属性値を圧縮する（ステップＳ７）。
最後に、圧縮回路１０の各部は、これまでの処理（ステップＳ１〜Ｓ７）で求めた、各属性値の平均値、ビット数Ｎ、回転角度及びビット数Ｎに圧縮された属性値をメモリ２０に格納する（ステップＳ８）。
【００５１】
なお、メモリ２０への平均値、ビット数、回転角度などのパラメータの格納は、最後にまとめて格納するのではなく、各パラメータを算出するたびに行ってもよい。
固定ビット長に圧縮された属性値は、たとえば、頂点ごとにまとめてメモリ２０に格納されるか、ペアごとにメモリ２０に格納される。
【００５２】
図７は、属性値を頂点ごとにまとめて格納した例を示す図である。
ここでは、各頂点０〜ｎは、属性値として色情報（Ｒ，Ｇ，Ｂ，Ａ）及びテクスチャ座標（Ｓ，Ｔ）を持っているとする。この場合、図７のように、たとえば、頂点０は、Ｒ０，Ｇ０，Ｂ０，Ａ０，Ｓ０，Ｔ０の計６個の属性値を持っている。また、頂点ｎも同様に、Ｒｎ，Ｇｎ，Ｂｎ，Ａｎ，Ｓｎ，Ｔｎの６個の属性値を持っている。また、色情報のＲとＧ、同じく色情報のＢとＡ、テクスチャ座標であるＳとＴとがそれぞれペアとなっている。
【００５３】
図８は、属性値をペアごとにまとめて格納した例を示す図である。
ここでは、色情報のＲとＧによるペアと、同じく色情報のＢとＡによるペアと、テクスチャ座標であるＳとＴによるペアごとに、属性値をまとめて格納した例を示している。
【００５４】
（Ｒ０，Ｇ０）〜（Ｒｎ，Ｇｎ）は、頂点０〜ｎにおける色情報Ｒ，Ｇの圧縮後の属性値を示す。また、（Ｂ０，Ａ０）〜（Ｂｎ，Ａｎ）は、頂点０〜ｎにおける色情報Ｂ，Ａの圧縮後の属性値を示す。また、（Ｓ０，Ｔ０）〜（Ｓｎ，Ｔｎ）は、頂点０〜ｎにおけるテクスチャ座標Ｓ，Ｔの圧縮後の属性値を示す。
【００５５】
圧縮後の属性値以外の情報のうち、各属性値の平均値、ビット数Ｎは、属性値ごとに決定されるパラメータであり、たとえば頂点に付随する属性値が１０種類であれば、１０個の平均値、ビット数Ｎが算出される。また、回転角度θは、各属性値ペアにつき１つの値であり、たとえば、属性値が１０種類であれば、５つのθが算出される。
【００５６】
このような属性値の平均値、ビット数Ｎ、回転角度θのデータサイズはごく小さいため、メモリ２０に保存するのではなく、圧縮回路１０の内部の記憶部（たとえば、ＳＲＡＭ（Static Random Access Memory））などに保存しておくようにしてもよい。
【００５７】
以上のような処理で圧縮された属性値は、以下のような伸長回路によって伸長される。
図９は、伸長回路の一例の構成を示す図である。また、図９では、前述したメモリ２０の他に、復元した頂点の属性値を入力して各種のグラフィックス処理を行うグラフィックス描画回路５０を示している。
【００５８】
伸長回路４０は、圧縮パラメータ入力部４１、圧縮パラメータ保持部４２、伸長処理部４３を有する。
圧縮パラメータ入力部４１は、属性値の圧縮時に用いたパラメータとして、前述したような、属性値ごとの平均値、ペアの種類ごとの回転角度、属性値を表すために必要なビット数などを入力する。図９では、圧縮パラメータ入力部４１は、パラメータをメモリ２０から読み出して入力する例を示しているが、これらのパラメータが前述した圧縮回路１０内の図示しない記憶部に保存されている場合には、その記憶部から読み出すようにしてもよい。
【００５９】
圧縮パラメータ保持部４２は、圧縮パラメータ入力部４１が入力したパラメータを保持する。圧縮パラメータ保持部４２として、たとえば、ＳＲＡＭなどが用いられる。
伸長処理部４３は、圧縮データ読み出し部４３ａ、伸長部４３ｂ、２次元回転実行部４３ｃ、平均値加算部４３ｄを有している。
【００６０】
圧縮データ読み出し部４３ａは、圧縮された各属性値のビット幅を圧縮パラメータ保持部４２から読み出し、そのビット幅をもとに、メモリ２０に記憶されている各ペアの属性値を読み出す。
【００６１】
伸長部４３ｂは、読み出した属性値を元のビット長に伸長する。各属性値の元のビット長に関する情報は、伸長回路４０の図示しない記憶部が予め記憶しておいてもよいし、パラメータの１つとして圧縮パラメータ入力部４１が、たとえば、メモリ２０または圧縮回路１０から取得するようにしてもよい。
【００６２】
２次元回転実行部４３ｃは、ペアの種類ごとに求められた回転角度を圧縮パラメータ保持部４２から取り出し、圧縮時とは反対の回転方向で、伸長したペアの属性値を２次元平面上で回転させる。
【００６３】
平均値加算部４３ｄは、各属性値の平均値を圧縮パラメータ保持部４２から読み出し、回転後の属性値に加算することで、元の属性値を復元し、これをグラフィックス描画回路５０に供給する。
【００６４】
以下、伸長回路４０の動作についてフローチャートを用いて説明する。
図１０は、伸長回路による動作の流れを示すフローチャートである。
まず、圧縮パラメータ入力部４１は、たとえば、メモリ２０から、属性値の平均値、属性値を表現するために必要なビット数Ｎ、回転角度θなどを読み出し、圧縮パラメータ保持部４２に保持する（ステップＳ１０）。
【００６５】
次に、圧縮データ読み出し部４３ａは、圧縮後の属性値を、圧縮パラメータ保持部４２に保持されたビット数Ｎにしたがって、メモリ２０から読み出す（ステップＳ１１）。たとえば、圧縮データ読み出し部４３ａは、図示しない制御信号により、グラフィックス描画回路５０での図形の描画に必要な順番で、各頂点における圧縮後の属性値を読み出していく。メモリ２０には、各頂点の属性値が固定ビット長で記憶されているので、ランダムアクセスでの頂点データの読み出しが可能である。
【００６６】
そして、伸長部４３ｂは、読み出したビット数Ｎの属性値を、元のビット長に伸長する（ステップＳ１２）。
更に、２次元回転実行部４３ｃは、ペアの種類ごとに求められた回転角度θを圧縮パラメータ保持部４２から読み出して、圧縮時とは反対の回転方向（つまり、回転角度−θ）で、伸長した各ペアの属性値を回転させる（ステップＳ１３）。
【００６７】
最後に、平均値加算部４３ｄが、各属性値の平均値を圧縮パラメータ保持部４２から読み出し、回転後の属性値に平均値を加算する（ステップＳ１４）。前述のように、属性値は可逆圧縮されているので、以上の伸長処理により、頂点における属性値が復元される。
【００６８】
復元された頂点の属性値は、グラフィックス描画回路５０に入力される。
グラフィックス描画回路５０は、ジオメトリ処理、ラスタライズ、レンダリングなどのグラフィックス処理を行い、描画結果をメモリ２０に記憶する。
【００６９】
なお、上記の伸長処理は、簡単な処理であるので、図４に示したような伸長回路４０をグラフィックス描画回路５０に組み込むようにしてもよい。
また、圧縮回路１０と伸長回路４０を組み合わせて１つの半導体集積回路としてもよい。
【００７０】
図１１は、圧縮回路部と伸長回路部を有した半導体集積回路の構成を示す図である。
半導体集積回路６０は、圧縮回路部６１と伸長回路部６２を有する。圧縮回路部６１は、図１で示した圧縮回路１または図４で示した圧縮回路１０に対応しており、伸長回路部６２は、図９で示した伸長回路４０に対応しており、それぞれ、前述したような圧縮処理及び伸長処理を行う。メモリ７０は、図１で示したメモリ２または、図４、図９で示したメモリ２０に対応している。
【００７１】
なお、メモリ７０を半導体集積回路６０内に含めるようにしてもよい。
以上、実施の形態に基づき、本発明の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００７２】
以上説明した複数の実施の形態に関し、更に以下の付記を開示する。
（付記１）  画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにする属性値ペア生成部と、
各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転させる回転部と、
回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮処理部と、
を有することを特徴とする圧縮回路。
【００７３】
（付記２）  前記属性値の平均値を前記属性値の種類ごとに求める平均値算出部と、
前記属性値から前記平均値を減算する平均値減算部と、
を更に有し、
前記属性値ペア生成部は、前記平均値を減算した前記属性値から前記ペアを生成することを特徴とする付記１記載の圧縮回路。
【００７４】
（付記３）  前記属性値ペア生成部は、相関係数の絶対値が最も大きくなる２つの前記属性値を、前記ペアとすることを特徴とする付記１または２に記載の圧縮回路。
（付記４）  画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにし、
各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、
前記回転角度で各前記ペアの前記属性値を２次元平面上で回転し、
回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、
前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶することを特徴とする圧縮方法。
【００７５】
（付記５）  画像の頂点に付随する複数の種類の属性値を２種類ずつのペアにし、各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするための回転角度を前記ペアの種類ごとに求め、前記回転角度で各前記ペアの前記属性値を２次元平面上で回転し、回転後の前記属性値の最大値と最小値とから、前記属性値を表すために必要なビット数を求め、前記ビット数をもとに前記属性値を固定ビット長に圧縮してメモリに記憶する圧縮回路部と、
前記回転角度と、前記ビット数とを入力し、前記ビット数をもとに、圧縮された前記ペアの前記属性値をメモリから読み出し、圧縮前のビット長に伸長し、前記回転角度をもとに、圧縮時とは反対の回転方向で、伸長した前記ペアの前記属性値を回転させる伸長回路部と、
を有することを特徴とする半導体集積回路。
【００７６】
（付記６）  前記圧縮回路部は、前記属性値の平均値を前記属性値の種類ごとに求め、
前記属性値から前記平均値を減算し、前記平均値を減算した前記属性値から前記ペアを生成し、前記伸長回路部は、回転後の前記属性値に、前記平均値を加算することを特徴とする付記５記載の半導体集積回路。
【００７７】
（付記７）  画像の頂点に付随する複数の属性値の圧縮時に用いたパラメータとして、前記属性値を２種類ずつのペアとして各前記ペアの前記属性値を２次元座標値とし、複数の前記頂点において前記ペアの共分散を０にするために２次元平面上で回転させたときの回転角度と、回転後の前記属性値の最大値と最小値とから求められた前記属性値を表すために必要なビット数と、を入力する圧縮パラメータ入力部と、
前記ビット数をもとに、圧縮された前記ペアの前記属性値をメモリから読み出し、圧縮前のビット長に伸長し、前記回転角度をもとに、圧縮時とは反対の回転方向で、伸長した前記ペアの前記属性値を回転させる伸長処理部と、
を有することを特徴とする伸長回路。
【符号の説明】
【００７８】
１  圧縮回路
１ａ  属性値ペア生成部
１ｂ  回転部
１ｃ  圧縮処理部
２  メモリ
【図１】
0005454178.tif 000005
【図２】
0005454178.tif 000006
【図３】
0005454178.tif 000007
【図４】
0005454178.tif 000008
【図５】
0005454178.tif 000009
【図６】
0005454178.tif 000010
【図７】
0005454178.tif 000011
【図８】
0005454178.tif 000012
【図９】
0005454178.tif 000013
【図１０】
0005454178.tif 000014
【図１１】
0005454178.tif 000015