JP2002008060A - データ処理方法、記録媒体及びデータ処理装置 - Google Patents

データ処理方法、記録媒体及びデータ処理装置

Info

Publication number
JP2002008060A
JP2002008060A JP2000194935A JP2000194935A JP2002008060A JP 2002008060 A JP2002008060 A JP 2002008060A JP 2000194935 A JP2000194935 A JP 2000194935A JP 2000194935 A JP2000194935 A JP 2000194935A JP 2002008060 A JP2002008060 A JP 2002008060A
Authority
JP
Japan
Prior art keywords
data
reference point
vertex
difference
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2000194935A
Other languages
English (en)
Inventor
Yasuhiko Saito
靖彦 斎藤
Masahiro Uminaga
正博 海永
Koshi Yamada
孔司 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000194935A priority Critical patent/JP2002008060A/ja
Priority to US09/886,281 priority patent/US6873324B2/en
Publication of JP2002008060A publication Critical patent/JP2002008060A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】 ポリゴンの頂点データに対する圧縮を簡易に
行え、圧縮データに対する伸長処理もプロセッサに過大
な負荷を与えないデータ圧縮・伸張方法を提供する。 【解決手段】 画像の3次元形状を近似する複数のポリ
ゴンの頂点を複数の頂点集合(V1〜V5)に分割し、
頂点集合毎に基準点(V3)を決め、頂点集合毎にその
各頂点の位置情報として、当該頂点の座標と基準点の座
標との差分データ(Int(x1−x3),Int(y
1−y3),Int(z1−z3))を、所定のスケー
ル値に対する大きさを示す整数値として求める。頂点集
合毎の基準点の座標データ及び差分データが圧縮データ
であり、各頂点とその基準点との距離は十分小さく、各
成分を整数値で表現できる。圧縮されたデータ構造は各
頂について規則的であり、整数型データから浮動小数点
数型データへの変換とスケール値との乗算で伸張可能で
ある。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、3次元グラフィッ
クスデータ等の画像データに対するデータの圧縮・伸長
技術、アフィン変換や透視変換などの画像処理方法、そ
して画像データやプログラムの記録媒体に関する。
【0002】
【従来の技術】ゲームや映画等の3次元グラフィックス
を利用する分野では高精細で高速な画像処理へのニーズ
は年々高まる傾向にあり、画像処理装置に必要な演算量
および扱うデータ量は年々増加している。
【0003】これら3次元グラフィックス分野では3次
元物体をポリゴンと呼ばれる一種の多角形の集まりで表
現し、それらに対して画像処理を適用する。ポリゴンを
対象とした画像処理の参考文献としては、Addiso
n Wesley社から1982年に出版された文献
「(J.D.Foley & A.Van Dam著)
Fundamentals of Interacti
ve ComputerGraphics」がある。
【0004】ポリゴンで表現された物体を高精細且つ滑
らかに表現する方式としては物体を構成するポリゴンを
より細かくし、必要なポリゴン数を増やすということが
考えられる。しかし、ポリゴン数を増やすことにより、
データ量および演算量が増大する。
【0005】演算量の増大に対してはプロセッサの処理
能力を向上させることで対応できるが、データ量の増大
に対しては画像データを記録している記録媒体の大容量
化や、メモリとプロセッサのデータ転送幅(並列転送デ
ータビット数)の拡大等が必要になる。しかし、プロセ
ッサのデータ処理能力と、外部メモリ・プロセッサ間の
バスを介するデータ転送能力とのギャップは広がる傾向
にあり、プロセッサの処理能力が十分であっても、バス
を介するデータ転送能力がプロセッサに追随できず、全
体的なデータ処理性能をデータ転送能力が律則してしま
うことがある。
【0006】従来技術として、プロセッサで処理される
データを予め圧縮し、メモリや記録媒体に格納してお
き、プロセッサで処理する直前に圧縮されたデータを伸
長する方法が知られている。3次元画像データ、特にポ
リゴンデータの圧縮データ構造としては、例えば、「J
AVA(登録商標).3D」が定める圧縮方式(SUN
MICROSYSTEMS社の公開ホームページ「h
ttp://java.sun.com/product
s/java−media/3D」内の公開資料:「J
ava3D API Specification(V
ersion 1.1.2,June 1999)」の付
録Bにある3次元幾何圧縮(3D GeometryC
ompression))が知られている。
【0007】前記「Java 3D」では、ポリゴンを
構成する個々の頂点に対応してある種の命令を対応させ
る。これは可変長命令であり、頂点の座標、色、法線な
どのデータをそれ以前に処理された点に対する差分値で
持ち、さらに全体を可変長圧縮したものである。これに
よりネットワーク通信時の転送時間の短縮を図ることが
できる。
【0008】
【発明が解決しようとする課題】しかしながら、前記
「Java 3D」の圧縮方式だと、圧縮された情報を
伸長するには、上記命令を逐次的に解釈して伸長しなが
らポリゴンを再構成しなければならない。可変長圧縮デ
ータの伸長を逐次的に行う必要があるため、伸長処理が
遅い傾向にある。
【0009】また、特開平11−259680号公報記
載のように、時間的に連続する2面の画像データの比較
において基準画像とのポリゴン差分データを作成し、基
準画像データに対する差分データを持つことで、データ
量を削減する技術がある。これは、画像の動きを記述す
るデータ量を削減するものであり、画像の静的なデータ
量を削減するものではない。
【0010】本発明の目的は、ポリゴンの頂点データに
対する圧縮を簡易に行うことができ、圧縮データに対す
る伸長処理でもプロセッサ等に過大な負荷を与えること
のないデータ圧縮方法及びデータ伸張方法を提供するこ
とにある。
【0011】本発明の別の目的は、ポリゴンの頂点デー
タに対するデータ圧縮構造との関連においてアフィン変
換や透視変換などの3次元画像処理の高速化に寄与でき
るデータ処理方法を提供することにある。
【0012】本発明の更に別の目的は、前記データ圧縮
方法及びデータ伸張方法、更には前記アフィン変換や透
視変換などの高速化に寄与するデータ処理方法を容易に
実現可能にするプログラムの記録媒体を提供することに
ある。
【0013】本発明の更に別の目的はアフィン変換や透
視変換などの3次元画像処理の高速化にとって望ましい
ところの、ポリゴンのデータ構造或いはそのデータを記
録した記録媒体を提供することにある。
【0014】本発明のその他の目的は、ポリゴンの頂点
データに対するデータ圧縮構造との関連においてアフィ
ン変換や透視変換などの3次元画像処理の高速化に寄与
できるデータ処理装置を提供することにある。
【0015】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0016】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0017】〔1〕《圧縮方法》 ポリゴンデータの圧縮データ構造を次のようにする。先
ず、複雑な3次元の物体を、より単純な剛体のような部
品の集まりに分解する。例えば人体をポリゴンで表現す
る場合、顔や腕、肘などのパーツに分解する。これらパ
ーツ毎に含まれる複数のポリゴンを構成する頂点の集合
をクラスタと呼ぶことにする。ポリゴン数を増やせば、
各パーツを構成する複数の頂点は互いに空間的に近い範
囲に存在することになる。これに着目し、空間的に互い
に近い頂点の集合毎に基準点を定め、各頂点とその基準
点との相対ベクトルを考えたとき、その距離が小さいた
め、各成分を例えば1バイトのような整数値で表現する
ことが可能になる。従来、ポリゴンの幾何情報は、一つ
の原点に対して頂点座標の各座標値を4バイトの浮動小
数点で表現していたことと比較すれば、データ量を約4
分の1に圧縮することができる。
【0018】そのようなデータ圧縮に着目したデータ処
理方法は、画像の3次元形状を近似する複数のポリゴン
の頂点座標データを圧縮する方法であって、画像の3次
元形状を近似する複数のポリゴンの頂点を複数の頂点集
合(V1〜V5)に分割する第1ステップと、頂点集合
毎に基準点(V3,P)を決める第2ステップと、頂点
集合毎にその各頂点の位置情報として当該頂点の座標と
基準点の座標との差分データを求める第3ステップと、
頂点集合毎における基準点の座標データ及び差分データ
を圧縮されたデータとして格納する第4ステップと、を
含む。
【0019】前記頂点の座標及び基準点の座標が浮動小
数点データで与えられても、前記第3ステップでは前記
差分データとして、頂点の座標と基準点の座標との差分
を所定のスケール値に対する大きさを示す整数値として
求めることが可能である。例えば、差分データを符号付
き1バイトの整数(値0〜値127)で表現しようとす
るなら、基準点と頂点との距離の最大値を127で除し
た商をスケール値し、頂点座標と基準点座標との差分値
を前記スケール値で除した商を差分データとすればよ
い。
【0020】前記頂点集合の基準点を、頂点集合毎に当
該頂点集合に含まれる各頂点の座標から求められる重心
点に近い頂点、又は前記重心点としてよい。これによ
り、頂点と相互に近い位置の基準点を容易に決めること
ができる。
【0021】〔2〕《伸張》 前記方法で圧縮されたデータを伸長するのに以下の手段
を採用する。前記圧縮されたデータ構造は各頂点につい
て規則的な構造をち、例えば整数型データから浮動小数
点数型データへの型変換処理と、前記スケール値との乗
算処理とによって、伸張処理が可能である。この伸長処
理方法は簡易且つ高速処理可能であり、専用の伸張装置
も低コストで済む。更に、プロセッサに比較的簡易な伸
長命令を定義すれば、プロセッサの処理性能に見合う速
度でデータ伸長が可能になる。
【0022】更に詳しくは、伸張を行うデータ処理方法
は、画像の3次元形状を近似する複数のポリゴンの頂点
の集合に対する基準点を浮動小数点数で与える座標デー
タと、夫々の頂点の座標と基準点の座標との差分を整数
で与える差分データと、差分データの大きさの基準を浮
動小数点数で与えるスケール値データとを入力する第1
ステップと、入力した前記差分データを浮動小数点数に
型変換する第2ステップと、型変換された差分データに
前記スケール値データを乗算する第3ステップと、前記
第3ステップによる乗算結果を、伸張された差分データ
として格納する第4ステップと、を含む。
【0023】そのようなデータ伸張方法を実現す観点の
データ処理装置は、画像の3次元形状を近似する複数の
ポリゴンの頂点の集合に対する基準点を浮動小数点数で
与える座標データと、夫々の頂点の座標と基準点の座標
との差分を整数で与える差分データと、差分データの大
きさの基準を浮動小数点数で与えるスケール値データと
を格納可能な記憶手段を有する。そして、前記記憶手段
から読み出された前記差分データを入力して浮動小数点
数に型変換し、型変換された差分データに前記スケール
値データを乗算し、乗算結果を伸張された差分データと
して出力する演算制御手段を備える。
【0024】前記演算手段は例えばCPUであり、CP
Uは整数データの浮動小数点数データへの型変換を指示
する命令を実行可能であり、この型変換を指示する命令
は、整数データのビット長を指示するビット長情報フィ
ールドを有しいる。前記型変換では整数データのビット
長と所定の浮動小数点フォーマットの仮数のビット長と
の相違に応じたビット長拡張処理が行われるが、それに
必要な整数データのビット長情報を、前記命令のデコー
ド結果から得られるから、ビット長の異なる整数データ
が混在する場合も、1命令で前記型変換を伴う処理を行
うことができる。処理対象とする整数データのビット長
情報を制御レジスタで指定する場合に比べ、処理対象と
する整数データのビット長が変わっても、その都度、余
計なレジスタアクセス動作を行わずに済み、データ処理
能率も向上する。
【0025】〔3〕《データ記録媒体》 前記差分データによって圧縮された画像データはコンピ
ュータ読取り可能な記録媒体に記録して提供することが
できる。例えば、そのような記録媒体に記録される画像
データは、画像の3次元形状を近似する複数のポリゴン
の頂点の集合に対する基準点の座標データと、夫々の頂
点の座標と基準点の座標との差分データとを有する。前
記基準点の座標データは浮動小数点データであり、前記
差分データは所定の標準値に対する大きさを示す整数値
データである。前記基準点は、前記複数のポリゴンの頂
点の集合に含まれる各頂点の座標から求められる重心点
の座標データ、又はその重心点に近い頂点の座標データ
である。
【0026】前記差分データによって圧縮された画像デ
ータを記録媒体に記録して提供すれば、そのデータを用
いて画像処理が行なわれることにより、圧縮データの伸
長がプロセッサの画像処理性能を落とさず、また、記録
媒体及びデータ転送のコストを減少させることを、可能
にする。
【0027】〔4〕《アフィン変換》 伸長されたデータ構造を活用した3次元画像処理の高速
化のために、伸長された各頂点のデータは、基準点から
の差分ベクトルで表され、各成分は例えば夫々4バイト
の浮動小数点型データとされる。クラスタを構成する頂
点の「アフィン変換」では基準点に対する各頂点の差分
ベクトルに平行移動を除いた線形変換を適用すること
で、演算量の軽減が可能になる。
【0028】更に詳しくは、そのようなアフィン変換を
行うデータ処理方法は、画像の3次元形状を近似する複
数のポリゴンの頂点の集合に対する基準点を浮動小数点
数で与える座標データと、夫々の頂点の座標と基準点の
座標との差分を浮動小数点数で与える差分データとを入
力する。差分データは前記圧縮データ構造に対して伸張
されたようなデータを想定する。そして、入力した前記
基準点の座標データに対してアフィン変換を行うとき、
当該基準点を共有する座標データに対して当該アフィン
変換から平行移動を除外した線形変換を行う。
【0029】そのようなデータ処理方法の実現を支援す
るプログラムはコンピュータ読取り可能に記録媒体に記
録して提供することができる。前記プログラムは、コン
ピュータに、画像の3次元形状を近似する複数のポリゴ
ンの頂点の集合に対する基準点を浮動小数点数で与える
座標データと、夫々の頂点の座標と基準点の座標との差
分を浮動小数点数で与える差分データとを入力させ、入
力させた前記基準点の座標データに対してアフィン変換
を行う場合には、当該基準点を共有する座標データに対
して当該アフィン変換から平行移動を除外した線形変換
を実行させる。
【0030】そのようなデータ処理方法を適用したデー
タ処理装置は、画像の3次元形状を近似する複数のポリ
ゴンの頂点の集合に対する基準点を浮動小数点数で与え
る座標データと、夫々の頂点の座標と基準点の座標との
差分を浮動小数点数で与える差分データとを格納可能な
記憶手段と、前記記憶手段から読み出された前記基準点
の座標データに対してアフィン変換を行うとき、当該基
準点を共有する座標データに対して当該アフィン変換か
ら平行移動を除外した線形変換を行う演算手段と、を含
んで成る。
【0031】〔5〕《透視変換》 伸長されたデータ構造を活用した3次元画像処理の高速
化のために、透視変換の近似処理を行なう。すなわち、
基準点を共有する頂点の集合に含まれる頂点は空間的に
互いに近く存在していることから、そのような各頂点の
透視変換では、基準点に対応する透視変換結果を用いて
乗算と加算の組み合わせの演算で近似させて、透視変換
で必要となる除算処理を軽減できるようにする。乗算や
加算に比べて除算処理に時間がかかるようなプロセッサ
による処理に効果的である。
【0032】更に詳しくは、そのような透視変換を行う
データ処理方法は、画像の3次元形状を近似する複数の
ポリゴンの頂点の集合に対する基準点を浮動小数点数で
与える座標データと、夫々の頂点の座標と対応する基準
点の座標との差分を浮動小数点数で与える差分データと
を入力し、前記複数のポリゴンの頂点に対する透視変換
を行うとき、基準点に対しては幾何学の相似の関係を用
いた除算による透視変換を行って透視変換後の座標デー
タを求める。基準点以外の頂点に対しては、マクローリ
ン級数展開による近似計算に対応する基準点の透視変換
後の座標データ及び対応する差分データを用いて透視変
換後の座標データを求める。
【0033】上記透視変換の近似計算において、透視変
換の座標原点から透視面までの距離が既定値よりも小さ
いときは、近似計算による誤差が無視し得ないときであ
る、その場合には、基準点以外の頂点の座標データに対
しても幾何学の相似の関係を用いた除算による透視変換
を行う方がよい。
【0034】そのようなデータ処理方法の実現を支援す
るプログラムはコンピュータ読取り可能に記録媒体に記
録して提供することができる。前記プログラムは、コン
ピュータに、画像の3次元形状を近似する複数のポリゴ
ンの頂点の集合に対する基準点を浮動小数点数で与える
座標データと、夫々の頂点の座標と対応する基準点の座
標との差分を浮動小数点数で与える差分データとを入力
させ、前記複数のポリゴンの頂点に対する透視変換を行
うとき、入力した基準点の座標データに対しては幾何学
の相似の関係を用いた除算による透視変換を行って透視
変換後の座標データを取得させ、基準点以外の入力した
頂点の座標データに対しては、対応する基準点の透視変
換後の座標データをマクローリン級数展開による近似計
算に用いて透視変換後の座標データを取得させる。
【0035】そのようなデータ処理方法を適用したデー
タ処理装置は、画像の3次元形状を近似する複数のポリ
ゴンの頂点の集合に対する基準点を浮動小数点数で与え
る座標データと、夫々の頂点の座標と対応する基準点の
座標との差分を浮動小数点数で与える差分データとを格
納可能な記憶手段を有する。更に、前記複数のポリゴン
の頂点に対する透視変換を行うとき、記憶手段に格納さ
れた基準点の座標データに対しては幾何学の相似の関係
を用いた除算による透視変換を行って透視変換後の座標
データを求め、記憶手段に格納されたところの基準点以
外の頂点の座標データに対しては、透視変換の透視面か
ら基準点までの距離が既定値よりも大きいとき、対応す
る基準点の透視変換後の座標データをマクローリン級数
展開による近似計算に用いて透視変換後の座標データを
求め、透視変換の透視面から基準点までの距離が既定値
よりも小さいとき、記憶手段に格納されたところの基準
点以外の頂点の座標データに対しても幾何学の相似の関
係を用いた除算による透視変換を行って透視変換後の座
標データを求める演算手段を備える。
【0036】
【発明の実施の形態】《画像処理システム》図4は本発
明の差分データ構造を活用する画像処理システムのブロ
ック図である。記録媒体2には画像処理対象とされる画
像データ、そしてアプリケーションプログラムとしての
画像処理プログラムが格納されている。記録媒体2は例
えばフロッピー(登録商標)ディスク、CD−ROMデ
ィスク、MO(光磁気)ディスク、フラッシュメモリカ
ード等から成る。記録媒体2に対する画像データや画像
処理プログラムの記録は磁気的、電気的、光学的、ディ
スクの樹脂材料に対する機械的塑性変形などを介して行
なわれている。記録媒体2に記録されている画像データ
及び画像処理プログラムは画像処理システム1によって
読み取り可能にされる。画像処理システム1は、ワーク
ステーション又はパーソナルコンピュータなどのコンピ
ュータによって構成される。記録媒体2に記録されてい
る画像データ及び画像処理プログラムは、プロセッサ5
の制御により、当該記録媒体2に対応したディスクドラ
イブ装置3を介して読み取られる。読み取られた画像デ
ータは差分データ変換器4に供給される。差分データ変
換器4は記録媒体2から読み出された画像データをプロ
セッサ5にとって画像処理し易いデータ構造に変換する
機能を有する。記録媒体2から読み取られた画像処理プ
ログラムはプロセッサ5の制御でメモリ7にロードさ
れ、プロセッサ5によって実行される。プロセッサ5は
OS(オペレーティングシステム)を実行して基本的な
データ処理を行う。さらにプロセッサ5はキーボードや
ポインティングデバイスなどの入力装置6からの指示を
参照して画像処理プログラムを実行することにより画像
データを処理する。処理した画像データの表示は画像表
示装置8で行う。
【0037】図4に例示される画像処理システムを用い
て例えば3次元画像処理対象とされる画像データは、空
間内の頂点の集まりから成り、各頂点は、3次元の座標
値、さらに明るさを示すための頂点法線データ(法線ベ
クトル)等の属性データを持っている。プロセッサ5は
これら座標値や属性データに対してアフィン変換、クリ
ッピング、シェーディング、透視変換、及びレンダリン
グなどの処理をパイプライン処理的に行う。このような
一連の処理はグラフィックパイプラインと呼ばれること
もある。以下の説明では、グラフィックパイプライン処
理のうち、本発明の差分データ構造を利用したアフィン
変換及び透視変換に関するデータ処理について述べる。
【0038】《整数差分データ》図1には3次元画像を
構成する頂点集合の一例を示す。ここでは3角形の集合
により3次元空間内の物体表面を表す。このような三角
形をポリゴンと呼ぶ。図1では3つの頂点V1、V2、
V3を持つポリゴンをポリゴンV1V2V3と表記する
ことにすれば、図1はポリゴンV1V2V3、ポリゴン
V2V3V4、ポリゴンV3V4V5をもつ物体表面を
表している。このような幾何情報は頂点の並びV1、V
2、V3、V4、V5をこの順番で与えることにより表
現できる。すなわち最初の2つの頂点V1、V2は例外
として、次の頂点V3にポリゴンV1V2V3を対応さ
せ、次の頂点V4と直前のポリゴンを構成する頂点のう
ち、順番の新しい2つ、すなわち頂点V2,V3とによ
りポリゴンV2V3V4が表現できる。同様に次の頂点
V5によりポリゴンV3V4V5が表現される。このよ
うに頂点を1つ加える毎に新しいポリゴンを構成するデ
ータ表現をストリップ表現と呼ぶ。各頂点の位置はその
3次元座標値、すなわちx座標値、y座標値,z座標値
で確定する。各座標値は浮動小数点数で表現されるもの
とする。例えば、頂点V1のx座標値、y座標値,z座
標値はそれぞれx1,y1,z1で表し、各座標値は浮
動小数点数とする。各頂点は、さらに3次元座標値以外
にも、色属性や、法線ベクトル情報等の属性データも持
っている。
【0039】図1では、例として5つの頂点V1、V
2、V3、V4、V5の集まりを示している。このよう
に予め決められた頂点の集まりをクラスタと呼ぶことに
する。クラスタは複雑な3次元物体を構成する頂点集合
をより単純ないくつかの部分集合に分割したときの頂点
集合を表現するのに使用する。これらクラスタの例とし
ては、剛体的な特性、すなわち空間内の移動でその形を
変えないような特性をもつ物体を構成する頂点の集まり
などがある。
【0040】図2には上記クラスタデータのデータ構造
が例示される。図2の(A)に例示されるようにクラス
タデータ24は、そのクラスタに対応するヘッダデータ
10及びそのクラスタに属する頂点に関する頂点データ
23から成る。頂点データ23は各頂点毎に存在し、頂
点座標データ及び必要な頂点属性データ(頂点法線デー
タなど)から成る。
【0041】図2の(B)に示されるヘッダデータ10
は、予め決められた頂点集合(=クラスタ)毎に定めら
れるデータ構造であり、そのクラスタを構成する頂点の
個数を頂点個数フィールド11に持ち、後述するクラス
タを構成する差分データのデータ変換で利用するスケー
ル値をスケールフィールド12に持ち、そのクラスタの
基準点を示す基準点インデックスフィールド13を有す
る。この他に、必要に応じてそのクラスタで表される物
体の光の反射特性や質感を表す属性などを示すクラスタ
属性フィールドを持つことも可能である。
【0042】前記頂点データ23に含まれる頂点座標デ
ータは、図2の(C)示される浮動小数型頂点データ1
4又は図2の(D)に示される整数差分データ19とさ
れる。
【0043】前記浮動小数型頂点データ14は、頂点座
標を浮動小数型データ(浮動小数点数データとも称す
る)で表すデータ構造である。頂点のx成分フィールド
15、y成分フィールド16、z成分フィールド17は
頂点のx、y、z座標成分を夫々4バイトの浮動小数点
数表現で持つ。浮動小数型頂点データ14は、例えば、
後述する差分データ表現の基準となる点(基準点)や、
浮動小数型データに変換された差分データを表すことが
可能である。
【0044】前記整数差分データ19は、x差分値フィ
ールド20、y差分値フィールド21、z差分値フィー
ルド22を持つ。整数差分データ19は、例えば、頂点
と前記基準点との相対的な位置関係を、基準点と頂点と
の差分ベクトルで表したときのx成分(dx)、y成分
(dy)、z成分(dz)を例えば1バイトの整数値で
表したデータである。
【0045】図1に示したクラスタの例において、頂点
V3をこのクラスタの基準点とし、それ以外の頂点V
1,V2,V4,V5を近傍頂点と呼ぶことにする。図
1のクラスタに対応するクラスタのデータ(クラスタデ
ータ)の例を図3に示す。図3の(A)に示される整数
差分表現では、基準点V3のx,y,z座標値をそれぞ
れの浮動小数点データ型で表し、近傍点V1,V2,V
4,V5については整数差分データ型で表す。図3の
(B)にはそれらの浮動小数点差分表現が示されてい
る。図3の(A)の近傍点V1,V2,V4,V5のデ
ータは、(B)の夫々浮動小数点データで表した基準頂
点と近傍頂点との差分ベクトルのx成分、y成分、z成
分を、それぞれ1バイト整数に変換した値を示してい
る。たとえば、基準点V3に対する近傍頂点V1の差分
ベクトルは図3の(B)に例示されるように「(x1−
x3、y1−y3、z1−z3)」と表される。整数差
分データ19はこの浮動小数値を図3の(A)に例示さ
れるように、整数化したものである。近傍頂点V1の整
数データ型での差分ベクトルは「(Int(x1−x
3)、Int(y1−y3)、Int(z1−z3))」と表
記している。この整数差分値「Int(x1−x3)、I
nt(y1−y3)、Int(z1−z3)」と頂点データ
との関係は図1に例示されている。ここで「Int」と
いう記号は浮動小数データ型から整数データ型に変換し
た値を意味するものである。この変換方法については後
ほど詳しく述べる。
【0046】前記記録媒体2に格納される画像データの
座標データ表現に必要なデータサイズは、前記近傍頂点
の位置情報を整数データ型に圧縮した整数差分データで
表すことにより、全ての座標点の座標データを浮動小数
点データ型で表現する場合に比べて、約4分の1に低減
できる。
【0047】《整数差分データへの圧縮方法》図5のフ
ローチャートには差分データ表現形式の整数差分データ
の生成若しくは変換方法、即ちポリゴンデータ圧縮方法
が例示される。これは図1に示すような浮動小数型座標
データV1(x1,y1,z1)〜V5(x5,y5,
z5)をもつ頂点集合から、クラスタデータ24の各頂
点データ23を作成する方法を示すものである。
【0048】ステップS1ではクラスタ化対象頂点集合
の選択を行う。前述したように、クラスタは複雑な3次
元物体をより単純な部分に分割したときの各部分に対応
して使われる。これらクラスタの例としては、剛体的な
特性、すなわち空間内の移動でその形を変えないような
特性をもつ物体を構成する頂点の集まりなどがある。こ
れらクラスタは画像データのモデル化段階で定義されて
いるものであり、ここではそれらクラスタに属する頂点
の座標値を読み込む。各座標値は浮動小数点型データで
表されているとする。
【0049】ステップS2では選択されたクラスタを構
成する頂点の集まりから整数差分表現の基準となる頂点
(基準点)を選択する。基準点以外の点を近傍点と呼
ぶ。基準点と近傍点との差分ベクタの長さが各近傍点毎
に大きくばらつかないようにするために、クラスタに属
する頂点群の「重心点」を求め、例えばその点の座標値
に近い一つの頂点を基準点とする。即ち、ここで重心点
のx座標値は、各頂点のx座標値の平均値、すなわち、
x座標値の総和を頂点個数で割った値とする。同様に重
心点のy座標値、z座標値は、それぞれ、各頂点のy座
標値の平均、z座標値の平均とする。この重心点と各頂
点の距離を計算し、重心点から最小の距離にある頂点を
このクラスタの基準点とする。基準点以外の点は近傍点
と呼ぶことにする。
【0050】ステップS3では、基準点と近傍点との差
分ベクタを整数化するためのスケール値を計算する。基
準点と各近傍点の距離のうち、最大の値をLとおく。こ
のLを例えば値127で除算した商をこのクラスタのス
ケール値(浮動小数点数)とし、Sで表すことする。こ
こでは、1バイトの符号付き整数で差分値を0〜127
の値で表すためである。もし、整数値を表すビットサイ
ズを変えたいならば、そのビットサイズで表現できる正
の整数値をSとすればよい。このとき、整数差分データ
19の各成分は当該ビットサイズに変更すればよい。
【0051】ステップS4では、スケール値から近傍点
の整数差分を計算する。まず、各近傍点と基準点との差
分ベクタを浮動小数型で表す。例えば図3の(B)の浮
動小数差分表現では近傍点V1に対する差分ベクタは
「(x1−x3,y1−x3,z1−z3)」と表され
ている。次にこの浮動小数型の差分ベクタの各x,y,
z成分をステップS3で計算されたスケール値Sでそれ
ぞれ除算し、四捨五入した商を整数値に変換する。この
操作を「Int」という記号で表すとき、上記例の浮動
小数型差分ベクタ「(x1−x3,y1−x3,z1−
z3)」は整数型差分ベクタ「(Int(x1−x3),
Int(y1−x3),Int(z1−z3))」で近似表
現できる。この操作を全ての近傍点に対して行う。図3
の(A)の整数差分表現では近傍頂点V1,V2,V
4,V5に対する整数差分データ19のx,y,z成分
が示されている。
【0052】浮動小数点数から整数への変換方法につい
ては、公知でありここではその詳細な説明は省略する
が、例えば、以下のような処理で実現できる。浮動小数
点数の仮数Mの有効桁数Lを整数データの桁数に合わせ
て、仮数をM=1.b1b2b3…bLと変形する。指
数EのゲタE0と前記浮動小数点数の仮数の有効桁数L
との和の値E0+Lを取得し、E<E0+Lならば、E
=E0+Lになるまで、仮数Mを1桁右シフトし、Eを
+1し、E=E0+Lのときの値b1b2b3…bLを
整数の絶対値とする。浮動小数点数の符号が負の場合に
はその絶対値を2の補数に変換する。これによって、浮
動小数点数から整数への変換が完了される。
【0053】ステップS5では、ステップS4で得られ
た近傍点の整数差分データの各成分から整数差分データ
19を構成し、このクラスタに対応するヘッダデータ1
0、基準点に対応する浮動小数点型頂点データ14、及
び整数差分データ19を合わせてクラスタデータ24を
構成する。
【0054】ステップS6では、未処理のクラスタがあ
るか判定し、未処理のものがあれば、そのクラスタを上
記同様に処理する。
【0055】《浮動小数点差分データへの伸張》前記差
分データ変換器4は整数差分データ19を浮動小数点型
データへ変換する機能を有する。前記差分データ変換器
4は先ず、入力された整数差分データ19のx差分値フ
ィールド20の値dX、y差分値フィールド21の値d
Y、z差分値フィールド22の値dZをそれぞれ4バイ
トサイズの単精度浮動小数点形式に変換する。
【0056】整数から浮動小数点数への変換方法につい
ては、公知でありここではその詳細な説明は省略する
が、例えば、以下の処理で実現することが可能である。
整数データの符号を浮動小数点数データの符号(S)と
し、整数データの絶対値の2進表現(b0b1b2…b
L)を求め、2進表現の桁数(L+1)が仮数の桁数に
なるようにする。前記絶対値の2進表現を正規化前の仮
数(M=b0.b1b2…bL)とし、その2進表現の
桁数(L)及び指数のゲタ(E0)から正規化前の指数
(E=E0+L)を決定し、それらによって正規化され
ていない浮動小数点数が求められる。これを正規化する
ことによって整数データの浮動小数点数への変換が完了
される。
【0057】次に、浮動小数で表現された各差分値にス
ケールフィールド12のスケール値を乗算することによ
り浮動小数点型差分データに変換される。例えば、図3
の(A)における整数差分表現に示される各整数値は、
図3の(B)における浮動小数差分表現のように4バイ
トの浮動小数値に変換される。すなわち、クラスタデー
タ10を構成する各頂点データ23のうち、近傍点に対
応するものは、データ変換により整数差分データ19の
データ構造から、浮動小数点型差分データに変換され
る。ただし、ここでのx、y、z成分の意味は、基準点
と近傍点との差分を表すベクトルの各x、y、z成分で
ある。以降のアフィン変換や透視変換などの処理では、
ここで変換された浮動小数点差分データに対して演算が
行なわれる。各頂点に関する浮動小数点差分型差分デー
タのデータサイズは各成分毎に4バイトに伸張されてい
る。
【0058】《アフィン変換》図6には伸張された差分
データを用いるアフィン変換の一例が示される。図6の
(B)に示される式1において、W、V、Pはそれぞれ
3次元空間内のベクトルを表し、Mは3行3列の正方行
列を表すとする。*は積を意味する。このとき、ベクト
ルVからベクトルWへの変換をアフィン変換といい、ア
フィン変換は行列MとベクトルPで決定される。ベクト
ルPは3次元空間内の平行移動と解釈される。図6の
(B)における式2は式1のアフィン変換を成分で表現
したものである。図6の(A)において点V1は前記ア
フィン変換によって点W1に変換され、点V2はアフィ
ン変換によって点W2に変換されたものとする。また、
ベクトルdV2は点V1から点V2への相対ベクトルと
し、そのx、y、z成分をそれぞれ、dx2、dy2、
dz2で表す。またベクトルdW2は点W1から点W2
へ向かう相対ベクトルとする。
【0059】このとき、数学の線形性から、ベクトルd
W2はベクトルdW1を行列Mで変換したものに過ぎな
い。すなわち、アフィン変換に含まれる平行移動の影響
が相対ベクトルには表れない。この性質を利用して差分
表現された頂点のクラスタデータを操作する。
【0060】今、図6の点V1はある頂点クラスタの基
準点とし、点V2はそのクラスタの近傍点とする。この
とき、差分データ変換器4で変換された近傍点V2の浮
動小数型差分データは、図7の(A)のアフィン変換前
の座標差分表現のように示されている。
【0061】クラスタ内の基準点V1および近傍点V2
に、それぞれ図6の(B)の式1、式2で表されるアフ
ィン変換を適用してできる点をそれぞれW1、W2とお
くと、W1は変換後クラスタ内の基準点、W2は変換後
クラスタ内の近傍点となる。そのとき、変換後のクラス
タデータは図7の(B)のアフィン変換後座標差分表現
に示されるようになる。すなわち、アフィン変換に含ま
れる平行移動の影響が相対ベクトルには表れない性質か
ら、近傍点に対しては、浮動小数型差分データのx、
y、z成分から構成されるベクトルを単に図6の(B)
の式1、式2の行列Mで変換すればよいことがわかる。
ただし、基準点V1に対しては、図6の(B)の式1、
式2の行列Mでの変換とベクトルPでの平行移動が必要
であることは言うまでもない。
【0062】クラスタに対して以上のようなアフィン変
換を適用することにより、近傍点に対応する頂点のアフ
ィン変換では平行移動の演算が不要となり演算量の軽減
に寄与することができる。
【0063】《透視変換》図8には伸張された頂点差分
データを利用した透視変換の手法が例示される。図8は
3次元空間をz軸に垂直な方向から見た図である。点V
1と原点とを結ぶ直線と2次元透視平面30との交点を
W1で表す。このように点V1と原点を結ぶ直線と透視
平面30との交点W1を求めることを透視変換といい、
W1を透視点と呼ぶことにする。
【0064】透視点W1のx,y,z座標値をそれぞ
れ、px1,py1,z0と表す。2次元透視平面上の
点の座標値は方程式「z=z0」を満たす平面なので、
この平面上の点のz座標値は常にz0である。W1の
x、y座標値px1,py1は幾何学の相似の関係よ
り、図8(B)の式3および式4で計算できる。ここで
式3および式4に含まれる値Aは式1により計算され
る。すなわち、透視点の座標値を計算するには、除算が
1回と、乗算が2回あれば十分である。
【0065】点V2が点V1の十分近くにあれば、点V
2の透視点W2のx、y座標値を除算を使用しない近似
式で計算できる。この近似式とは、数学の分野での微分
可能関数「1/z」をz=z1の近くで「マクローリン
級数展開」した級数(図8(B)の式10)を定数項と
1次の項で打ち切ったものである。要するに、図8の式
11のようにz0/(z1+dz2)に対して定数項と
1次の項で打ち切ったマクローリン級数展開を施す。こ
れにより、図8の点V2が十分点V1に近ければ、点V
2の透視点W2のx、y座標値はそれぞれ、図8の
(B)の式5及び式6のpx2,py2で近似できる。
ここで、値dx2,dy2,dz2はV1からV2へ向
かう相対ベクトルのx,y,z成分であり、「x1+d
x2」、「y1+dy2」、「z1+dz2」はそれぞ
れ点V2のx、y、z座標値を点V1の座標値と点V1
から点V2へ向かう相対ベクトルの成分値で表したもの
である。
【0066】ここで、図8の(B)における式5及び式
6に含まれる値A、Bは図8の(B)の式1及び式2に
より予め計算しておき、値「A−B*dz2」も一度計
算された値を式5、式6で再利用するものとすれば、透
視点の座標値の近似計算には、実質的に乗算が3回と加
算が3回あれば十分である。すなわち、毎回除算は不要
となる(ここで記号「*」は乗算を表すとする)。プロ
セッサによる除算に必要な演算サイクル数が乗算や加算
に比べて大幅に大きいとき、上記のような近似計算を点
V1の十分近くに存在する透視変換対象点に対して適用
することにより全体の演算処理時間が短縮される。例え
ば、浮動小数点データの除算に15サイクルかかり、浮
動小数点データの乗算と加算にそれぞれ2サイクル掛か
るとすれば、近似計算しない場合、除算が1回、乗算が
2回、加算が2回で合計、23サイクルかかる。一方、
近似計算すれば、乗算が3回と加算が3回で合計12サ
イクルで済む。
【0067】図9には浮動小数点差分データを用いた透
視変換処理のフローチャートが示される。いま、図8の
点V1はあるクラスタの基準点であり、点V2はそのク
ラスタの近傍点であるとする。
【0068】ステップS11で、除算を含む正規の透視
変換により、先ず基準点に対応する透視点を計算する。
すなわち、図8の(B)における式1、式3、式4で透
視点の座標値を計算する。加えて以降の近似計算で繰り
返し再利用される値を式2で計算しておく。
【0069】ステップS12はこのクラスタに属する近
傍点に対して除算を含まない近似計算を適用するかどう
かを判定する。基準点V1のz座標値が座標原点に近す
ぎると近似による誤差が拡大するので、画像処理プログ
ラムで予め決定されているある値cより小さいときは誤
差が顕著に表れるのを防ぐためにステップS13に進
む。そうでないときはステップS14に進む。
【0070】ステップS13では図8の(B)における
式7、式8、式9により近傍点に対応する透視点のx、
y座標値を計算する。dx、dy、dxはそれぞれ近傍
点に対応する浮動小数型頂点データのx、y、z成分値
である。
【0071】S14では近傍点に対応する透視点のx、
y座標値の近似で共有される値「A−B*dz2」を計
算する。ここで、A、BはステップS11において図8
の(B)における式1、式2を用いて計算された値であ
り、dz2は近傍点に対応する浮動小数型頂点データの
z成分値である。
【0072】ステップS15では近傍点に対応する透視
点のx座標値の近似を図8の(B)における式5で計算
する。dx2は近傍点に対応する浮動小数型頂点データ
のx成分値である。
【0073】ステップS16では近傍点に対応する透視
点のy座標値の近似を図8の(B)における式6で計算
する。dy2は近傍点に対応する浮動小数型頂点データ
のy成分値である。
【0074】ステップS17で与えられたクラスタ内で
未処理の近傍点があれば、ステップS15に進み、なけ
れば当該クラスタに属する点の透視変換を終了する。
【0075】前記プロセッサ5が以上説明した「アフィ
ン変換」及び「透視変換」を行う為の処理プログラム
は、特に制限されないが、前記記録媒体2から読み込ま
れた前記画像処理プログラムに含まれている。
【0076】ここで、以上説明した整数差分データ構造
を採用することによる画像情報の圧縮、圧縮された画像
情報の伸張、伸張して得られる浮動小数点差分データを
利用する「アフィン変換」及び「透視変換」の夫々、に
より得られる作用効果を説明する。一般に、3次元画像
のポリゴン表現においてポリゴン数を増やせば増やすほ
ど、よりなめらかでより緻密な3次元画像を構成できる
とされている。一方で、ポリゴン数を増やすということ
は頂点個数および必要なデータ量が増大することを意味
し、また画像処理に必要な計算量が増大することを意味
する。
【0077】ポリゴンを構成する頂点の位置情報が座標
成分あたり4バイトの浮動小数点データで表されるモデ
ルにおいて、上述のように、この位置情報を整数データ
型に圧縮した整数差分データ19に変換することによ
り、画像データ格納時にはポリゴンの位置情報に必要な
データサイズを約4分の1に圧縮することができる。
【0078】また、伸長処理は各頂点データに対して、
1バイト整数データを4バイト浮動小数点データにデー
タ型変換してスケール値(フィールド12のデータ)を
乗算するので、複雑な伸長処理が不要である。
【0079】また、整数差分データ19を浮動小数点型
頂点データに伸長したとき近傍点の各x、y、z成分は
基準点に対する相対値であるという特徴を利用して、ア
フィン変換では平行移動の演算が不要となる場合があ
り、演算量の軽減に寄与することができる。
【0080】さらに、頂点数が増えるということは頂点
間の距離が近づくことを意味しており、透視変換処理に
おいて、除算を乗算と加算の組み合わせで近似すること
が可能で、基準点と近傍点間の距離が近づくことにより
誤差も小さく済むため、除算に必要なサイクル数が大き
いなプロセッサなどでは、画像の品質を落とさずに透視
変換処理時間を全体的に短縮することができる。
【0081】《整数差分データの別の例》上記の説明で
は、図5のフローチャートに基づいて説明したように、
クラスタの基準点としてポリゴンを構成する頂点の中か
ら一つを選んだ。すなわち、ステップS2において、ク
ラスタに属する頂点群の「重心点」を求め、その点の座
標値に近い頂点を基準点とした。このとき、前記重心点
そのものを基準点とすることも可能である。すなわち、
図10の(A)に示すように点V1,V2,V3,V
4,V5から成るクラスタの重心が点Pであるとき、ク
ラスタを構成する各頂点V1,V2,V3,V4,V5
を全て近傍点として、それらの整数差分データ19の内
容を図10の(B)の整数差分表現で表すことができ
る。ここで、x0、y0、z0はそれぞれクラスタの重
心点のx、y、z座標値とし、「Int」は前述と同様
の意味を持つ。
【0082】こうしたときのクラスタデータ24におけ
る前述の例との相違点は、ヘッダデータ10において基
準点となる頂点を指定するための基準点インデックスフ
ィールド13が不要になることである。基準点Pの位置
情報を浮動小数型頂点データ14の形式で表し、データ
構造としては、ヘッダデータの直後に配置すればよい。
ここで基準点Pはポリゴンを構成する頂点ではないの
で、基準点Pに関しては頂点法線データ等の付加属性デ
ータは不要である。そして各頂点に対応する頂点データ
23をデータ構造としては基準点Pに対応するデータの
直後に順番に配置する。この順番は例えば、ストリップ
表現で規定される頂点順序とすればよい。
【0083】アフィン変換においても、基準点Pと近傍
点との関係は前述の例とほぼ同様である。相違点は、ク
ラスタを構成する頂点が全て近傍点の役割を担い、基準
点Pはポリゴンの頂点とはならないことである。透視変
換においても、基準点Pと近傍点との関係は前述の例と
ほぼ同様である。違いは、クラスタを構成する頂点が全
て近傍点の役割を担い、基準点Pは実際の透視平面上で
の表示対象とはならないことである。
【0084】基準点をこのようにする場合にも、前述の
例と同様に、クラスタの各頂点の位置情報を整数データ
型に圧縮した整数差分データに変換することにより、画
像データ格納時にはポリゴンの位置情報に必要なデータ
サイズを約4分の1に圧縮することができる。
【0085】また、画像データを整数差分データに圧縮
する処理において、基準点をクラスタを構成する頂点か
ら選ぶ必要がないため、圧縮時間が前述の例に比較して
さらに短縮できる。さらに基準点がクラスタデータ24
上でいつも同じ位置(例えばヘッダデータ10の直後)
に配置され、且つ頂点データが全て同じ差分データ構造
をもつので、画像処理プログラム実行時にプロセッサな
どによるデータアクセスが規則的に行え、この点におい
ても処理時間の短縮を促進できる。
【0086】また、前述の例と同様にアフィン変換では
平行移動の演算が不要となる場合があり演算量の軽減に
寄与することができる。さらに、前述の例と同様に、透
視変換処理において、除算を乗算と加算の組み合わせで
近似することが可能で、基準点と近傍点間の距離が近づ
くことにより誤差も小さく済むため、除算に必要なサイ
クル数が大きいプロセッサなどでは、画像の品質を落と
さずに全体の処理時間を短縮できる。
【0087】《浮動小数点差分データへの別の変換例》
前述の例では、プロセッサ5のアクセラレータなどとし
て位置付けられるハードウェアとしての差分データ変換
器4により、整数差分データ19を浮動小数型差分デー
タに変換しているが、別の実現方式として、差分データ
変換器4を用いずに、プロセッサ5で実行される所定の
データロード命令に、上記変換機能をもたせることも可
能である。
【0088】例えば、図4において差分データ変換器4
を削除する。各クラスタデータ24は画像データの記録
媒体2から一旦メモリ7にストアされているとする。こ
のストア処理はプロセッサ5が行ってもよいが、図示を
省略するDMAC(ダイレクト・メモリ・アクセス・コ
ントローラ)で行ってもよい。プロセッサ5は、画像処
理プログラムに従って、頂点の位置データをプロセッサ
5内のレジスタにロードする機能と整数データを浮動小
数にフォーマット変換する機能を持つ所定のデータロー
ド命令(FLOAD命令)により、メモリ上の整数差分
データ19のx差分値フィールド20、y差分値フィー
ルド21、z差分値フィールド22をそれぞれ浮動小数
点数形式に変換して浮動小数点レジスタにロードでき
る。その後のアフィン変換や透視変換は前述の例と同様
に、画像処理プログラムに従って行うことができ、前述
の例と同じ効果を得ることができる。また、差分データ
変換器4を用いずに、プロセッサ5で実行されるFLO
AD命令に、上記変換機能をもたせることにより、画像
データのデータ圧縮形式が多少変更されても、プログラ
ムの変更でデータ伸長機能を柔軟に対応させることが可
能となる。
【0089】図11には前記FLOAD命令をサポート
するプロセッサの一例が示される。同図に示されるプロ
セッサ5は、特に制限されないが、32ビットRISC
(Reduced Instruction Set Computer)アーキテクチャを
有し、その命令セットには16ビット固定長の浮動小数
点命令を含んでいる。ここで説明する例は、ゲーム機な
どのように3次元グラフィックスをサポートすることが
必要な機器組み込み制御用途に有効である。
【0090】プロセッサ5は、命令制御回路42、整数
ユニット43、浮動小数点ユニット44、命令キャッシ
ュユニット45、及びデータキャッシュユニット46を
有する。
【0091】命令制御回路42は命令アドレスバス48
及び命令バス49を介して命令キャッシュユニット45
に接続されている。また、整数ユニット43及び浮動小
数点ユニット44はデータバス50を介してデータキャ
ッシュユニット46に接続されている。データバス50
を介するデータアクセスのためのアドレシングは専ら整
数ユニット43が行うようになっており、アドレスバス
51は整数ユニット43からデータキャッシュユニット
46に接続されている。
【0092】命令制御回路42は、プログラムの実行順
序に従って命令キャッシュユニット45から命令をフェ
ッチし、これを解読して制御信号を生成し、前記整数ユ
ニット43及び浮動小数点ユニット44等の動作を制御
する。プログラムの実行順序は、図示を省略するプログ
ラムカウンタの値や割り込み要求に基づいて決定され
る。命令アドレスは命令アドレスバス47から命令キャ
ッシュユニット45に与えられ、その命令アドレスの命
令が命令キャッシュユニット45から命令バス48を介
して命令制御回路42に与えられる。
【0093】前記整数ユニット43は整数演算回路6
0、汎用レジスタファイル61、及び整列・拡張回路6
2を有する。整数演算回路60は算術論理演算器、算術
演算器、及びシフタ等を有し、整数データの算術演算、
論理演算、そしてアドレス演算を可能にする。汎用レジ
スタファイル62は、特に制限されないが、32ビット
長の汎用レジスタを複数個有し、バイト(8ビット)、
ワード(16ビット)、ロングワード(32ビット)の
データレジスタ並びにアドレスレジスタとして利用され
る。前記データバス50は、特に制限されないが、64
ビットである。前記整列・拡張回路62は、64ビット
幅のデータバスに伝達されるデータと汎用レジスタとの
ビット位置をデータサイズなどに応じて整合させるアラ
イナ機能と、データを符号拡張又は論理値“0”拡張す
る拡張機能を有する。
【0094】尚、前記整数ユニット43と命令制御回路
42の全部又は一部の機能を合せた回路構成を所謂CP
Uとして位置付けてよい。
【0095】前記浮動小数点ユニット44は、浮動小数
点演算回路70、浮動小数点レジスタファイル71、及
び変換回路72を有する。前記浮動小数点演算回路70
は浮動小数点数データの積和演算を可能にする乗算器、
加算器、正規化器等を有する。浮動小数点レジスタファ
イル71は複数個の32ビット浮動小数点レジスタを有
する。浮動小数点レジスタは浮動小数点演算においてソ
ースデータレジスタ及びディスティネーションデータレ
ジスタ等に利用される。浮動小数点レジスタは前記変換
回路72を介してデータバス50に接続されている。各
浮動小数点レジスタは32ビットであり、単精度浮動小
数点数データ毎に1個の浮動小数点レジスタが用いられ
る。倍精度浮動小数点数データには2個の浮動小数点レ
ジスタがペアで割り当てられる。
【0096】前記変換回路72は、64ビット幅のデー
タバス50に伝達されるデータと浮動小数点レジスタと
のビット位置をデータサイズなどに応じて整合させるア
ライナ機能と、整数データを符号拡張又は論理値“0”
拡張する拡張機能と、整数データを浮動小数点数データ
に変換する型変換機能、そしてその逆の変換を行う逆型
変換機能を有する。それら機能の詳細については後述す
る。
【0097】前記データキャッシュユニット46及び命
令キャッシュユニット45は、夫々図示を省略するキャ
ッシュコントローラ及びキャッシュメモリを備えてい
る。前記命令キャッシュユニット45及びデータキャッ
シュユニット46はデータ信号やコントロール信号を含
むキャッシュバス57を介してバスコントローラ52に
接続される。命令キャッシュユニット45におけるキャ
ッシュミスヒット等に起因する外部アクセスのための命
令アドレスは前記バスコントローラ52に与えられる。
また、データキャッシュユニット46におけるキャッシ
ュミスヒット等に起因する外部アクセスのためのデータ
アドレスは前記バスコントローラ52に与えられる。バ
スコントローラ52はそれら命令アドレス又はデータア
ドレスに従って、バスインタフェースバッファ53に外
部バス54を介して結合される外部メモリ(図示を省
略)などをアクセスするために、外部バスサイクルを起
動する制御を行う。また、バスコントローラ52にはタ
イマやシリアルコミュニケーションインタフェースコン
トローラ等の周辺回路55が周辺バス56を介して接続
されている。第1図に示されるプロセッサ5は、単結晶
シリコンのような1個の半導体基板(半導体チップ)に
形成されている。
【0098】前記プロセッサ5の命令セットは固定小数
点転送命令、算術演算命令、論理演算命令、分岐命令、
システム制御命令、浮動小数点命令などに大別される。
前述のように、データアクセス及び命令フェッチのため
のアドレシング機能は全て整数ユニット43が負担す
る。従って、命令制御回路42は、デコードした命令が
浮動小数点命令(浮動小数点ユニットを動作させる必要
のある命令)である場合、整数ユニット43にはソース
又はディスティネーションデータをアクセスするための
アドレシング動作を制御し、浮動小数点ユニット44に
は演算制御などを指示する。
【0099】図12には前記変換回路72及び整列・拡
張回路62の一例が示される。前記データキャッシュユ
ニット46のデータ入出力ポートは64ビットであり、
データアクセスにおいてバス50上には64ビットのデ
ータが現れる。前記整列・拡張回路62はアライナ62
Aと拡張回路62Bを含む。前記変換回路72はアライ
ナ72A、型変換・逆変換回路72C及び拡張回路72
Bを有する。図12の回路接続状態はデータキャッシュ
ユニット46から汎用レジスタフィル61、浮動小数点
レジスタファイル71へのデータロードを想定して図示
してある。浮動小数点レジスタ71の値をデータキャッ
シュユニット46にストアするデータ転送方向の接続状
態は図示を省略してある。
【0100】汎用レジスタファイル61にデータをロー
ドするとき、前記アライナ62Aは、データバス50か
ら供給される64ビットデータ内の1バイトデータ、2
バイトデータ、又は4バイトデータを32ビット出力中
の対応する最下位ビットフィールドへシフトさせる。こ
の32ビットを受ける拡張回路62Bは、入力32ビッ
トの最下位の1バイト又は最下位から2バイトを32ビ
ットへゼロ拡張(論理値“0”拡張)し、或いは符号拡
張する。
【0101】汎用レジスタファイル61からデータキャ
ッシュメモリ46にデータをストアするときは、特に図
12には図示を省略しているが、アライナ62Aが汎用
レジスタの出力を受けて、汎用レジスタファイル61か
ら供給される32ビットデータ内の1バイト又は2バイ
ト、又は4バイトを64ビット出力中の対応する最下位
ビットフィールドへシフトさせる。このとき拡張回路6
2Bはその64ビットを受けて、入力64ビット中の1
バイト、2バイト又は4バイトをゼロ拡張し、或いは符
号拡張してデータバス50に出力する。
【0102】データキャッシュメモリ46から浮動小数
点レジスタファイル71にデータをロードするとき、ア
ライナ72Aは、データバス50から入力する64ビッ
トの内の1バイト、2バイト、又は4バイトを、出力6
4ビットの上位32ビットまたは下位32ビット中の対
応する最下位ビットフィールドへシフトさせる。この6
4ビットを受ける型変換・逆変換回路72Cは、入力6
4ビットの上位32ビット及び下位32ビット中の最下
位1バイト又は最下位から2バイトの前記上位及び下位
2つの整数データを各々単精度の浮動小数点数データへ
並列的に変換可能にされている。拡張回路72Bは型変
換・逆変換回路72Cの動作に代えて動作され、入力6
4ビットの上位32ビット整数データ及び下位32ビッ
ト整数データ中の最下位1バイト又は最下位から2バイ
トの上位側をゼロ拡張(論理値“0”拡張)或いは符号
拡張し、整数データのまま、浮動小数点レジスタファイ
ル71に転送する。
【0103】浮動小数点レジスタファイル71からデー
タキャッシュメモリ46にデータをストアするときは、
特に図12には図示を省略しているが、型変換・逆変換
回路72Cは、入力64ビットの上位32ビット浮動小
数点数データ及び下位32ビット浮動小数点数データ
を、夫々1バイト又は2バイトの整数データに変換す
る。或いは、入力64ビットの倍精度浮動小数点数デー
タを32ビットの整数データに変換する。変換された整
数データは、アライナに64ビットのデータとして入力
され、上位32ビット及び下位32ビットの対応するビ
ットフィールドの下位側に夫々配置されてデータキャッ
シュユニット46に向けて出力される。
【0104】前記変換回路72及び整列・拡張回路62
の動作は命令制御回路42による命令デコード結果に従
って制御される。
【0105】図13にはプロセッサ1の浮動小数点ロー
ド命令として”FLOAD.SW2S @Rm,FR
n”が例示される。同図に示される浮動小数点ロード命
令は、データキャッシュユニット46のキャッシュメモ
リから2バイトの整数データを変換回路72に与え、こ
の変換回路72で単精度の浮動小数点数データに変換
し、単精度の浮動小数点レジスタへロードする処理を指
示する命令である。
【0106】図13に例示される浮動小数点ロード命
令”FLOAD.SW2S @Rm,FRn”におい
て、80は主オプコード(主オペレーションコード)フ
ィールド、81はアドレッシングモードフィールド、8
2サブオプコード(サブオペレーションコード)フィー
ルド、83はリザーブフィールド、84はソースオペラ
ンドサイズフィールド、85はベースレジスタ指定フィ
ールド、86はデスティネーションレジスタサイズ指定
フィールド、87はデスティネーションレジスタ指定フ
ィールドである。
【0107】図13の例では、主オプコードフィールド
80には浮動小数点ロードを示す主オプコードfloa
dが割り付けられ、アドレシングモードフィールド81
にはレジスタ間接を示すアドレッシングモードriが割
り付けられ、サブオプコードフィールド82には符号付
き整数から単精度浮動小数点数への型変換を示すサブオ
プコードi2fが割り付けられ、リザーブフィールド8
3はゼロフィールドとされ論理値“0”が割り付けら
れ、ソースオペランドサイズ指定フィールド84には2
バイト(word)を示すサイズwが割り付けられ、ベ
ースレジスタ指定フィールドにはベースレジスタとなる
汎用レジスタの番号を示すベースレジスタ番号mが割り
付けられ、ディスティネーションレジスタサイズ指定フ
ィールドにはデスティネーションレジスタとなる浮動小
数点レジスタのサイズsが割り付けられ、ディスティネ
ーションレジスタフィールドにはデスティネーションレ
ジスタ番号nが割り付けられている。
【0108】なお、ここではソースオペランドは2バイ
トとされるが、これは、各頂点成分毎に1バイトに圧縮
された整数差分データは、説明の便宜上、上位側が
“0”拡張されて2バイトにアライメントされているも
のと理解されたい。
【0109】図14には前記浮動小数点ロード命令”F
LOAD.SW2S @R1,FR4”を実行したとき
のデータフローが例示される。図14の例では、アドレ
ス0x0104(0xは16進数を意味する)番地に格
納されている2バイト整数データ0x0003を浮動小
数点レジスタ4番(FR4)へロードする命令”FLO
AD.SW2S @R1,FR4”を一例とする。
【0110】汎用レジスタ1番(R1)の内容はソース
オペランドのアドレス0x0104とする。0x010
0番地には2バイトの整数0x0001、0x0102
番地には2バイトの整数0x0002、0x0106番
地には2バイトの整数0x0004がそれぞれ格納され
ている。
【0111】第1ステップとして、先ず、浮動小数点ロ
ード命令”FLOAD.SW2S@R1,FR4”が発
行されると、汎用レジスタR1の内容0x0104をア
ドレスとしてデータキャッシュユニット46がアクセス
され、0x0104の最下位4ビットをゼロとした0x
0100番地からの8バイト(64ビット)の整数デー
タ0x0001 0002 0003 0004が読み出
される。
【0112】第2ステップとして、アライナ72Aはデ
ータキャッシュユニット46から読み出された8バイト
のデータに対する整列制御の為に、前記アドレス0x0
104の最下位ビット4の値(32ビット)を入力デー
タ8バイトに関するオフセットとし(offset
4)、命令で指定されるアクセスサイズ2(16ビッ
ト)をサイズとし(size 2)、出力64ビットの
上位又は下位32ビットのどちらへシフトするかを示す
出力位置指ビットとしてデスティネーションレジスタ
(FR4)のレジスタ番号4の最下位ビットの値である
0をアップ/ローとし(up/low 0)とする制御
信号を入力する。これにより、入力データ8バイト中の
オフセット4バイト(32ビット)からの下位側2バイ
ト0x0003を出力データ8バイト中のオフセット4
から上位側へ2バイトシフトさせ、その他の出力値は対
応するビット位置の入力値をそのままにして、8バイト
データ列0x0001 0003 0003 0004を
アライナ72Aから出力する。
【0113】第3ステップとして、データ型変換・逆変
換回路72Cはアライナ72Aの出力である8バイト、
および変換の方法として符号付き2バイト整数を32ビ
ット単精度浮動小数点数に変換することを意味する制御
信号を前記命令制御回路42から入力し、入力8バイト
中の上位4バイト及び下位4バイトの各最下位ビットを
基準とした2つの2バイト0x0003、0x0004
を2つの符号付き2バイト整数とし、各々を32ビット
単精度浮動小数点数0x4040 0000、0x40
80 0000に変換し、2つの32ビット単精度浮動
小数点数である8バイトを出力する。
【0114】第4ステップとして、最後に型変換・逆変
換回路72Cが出力する8バイトの上位4バイト0x4
040 0000が浮動小数点レジスタファイル内の単
精度浮動小数点レジスタ4番(FR4)へ書き込まれ
る。
【0115】以上の手順によって、0x0104番地の
2バイト整数0x0003が32ビット単精度浮動小数
点数データ0x40400000(3.0)に変換され
て浮動小数点レジスタFR4へ書き込まれる。
【0116】浮動小数点レジスタFR4にロードされた
データには前記スケール値が乗算されて浮動小数点差分
データとされ、これがアフィン変換などの画像処理に供
される。
【0117】前記第3ステップにおいて整数データを浮
動小数点数データに変換する手法には公知の方法を採用
し、これを型変換・逆変換回路の変換アルゴリズム若し
くは変換論理に反映しておけばよい。
【0118】前記FLOAD命令は、整数データのビッ
ト長を指示するビット長情報フィールド84を有してい
る。整数から浮動小数点への型変換では整数データのビ
ット長と所定の浮動小数点フォーマットの仮数のビット
長との相違に応じたビット長拡張処理が行われるが、そ
れに必要な整数データのビット長情報を、前記FLOA
D命令のビット長情報フィールド84のデコード結果か
ら得られるから、ビット長の異なる整数データが混在す
る場合も、1命令で前記型変換を伴う処理を行うことが
できる。処理対象とする整数データのビット長情報を制
御レジスタで指定する場合に比べ、処理対象とする整数
データのビット長が変わっても、その都度、余計なレジ
スタアクセス動作を行わずに済み、データ処理能率も向
上する。
【0119】《情報処理ネットワーク》図15には図1
1のプロセッサ(MPU)5を採用した情報処理装置
(コンピュータ装置とも称する)を含む情報処理ネット
ワークの一例が示される。
【0120】図15に示される情報処理ネットワークは
LAN(ローカル・エリア・ネットワーク)、インター
ネットなどのWAN(ワイド・エリア・ネットワー
ク)、無線通信ネットワークなどのシステムであり、9
4で示されるものがそのシステムにおける光ファイバ、
ISDN回線、又は無線回線などの伝送媒体を意味して
いる。伝送媒体94には、特に制限されないが、ホスト
コンピュータ装置93、ルータやターミナルアダプタ等
の通信アダプタ95,96,97を介して代表的に示さ
れた端末コンピュータ装置90,91,92が接続され
ている。
【0121】端末コンピュータ装置90は、特に制限さ
れないが、前記プロセッサ(MPU)5を有し、表示コ
ントローラ(DISPC)103、ネットワークコント
ローラ(NETC)104、及びメインメモリ(DRA
M)105が接続され、また、プロセッサ5の前記周辺
回路55に接続されたフロッピーディスクコントローラ
(FDC)100、キーボードコントローラ(KEY
C)101、及びインテグレーテッド・デバイス・エレ
クトロニクス・コントローラ(IDEC)102が設け
られている。DISPC103はビデオRAM(VRA
M)111に描画制御を行い、描画した表示データをデ
ィスプレイ(DISP)110に表示制御する。NET
C104は通信アダプタ95に接続され、送受信情報の
バッファリング及び通信プロトコル制御等を行う。DR
AM105はプロセッサ1のプログラム領域及びワーク
領域などに利用される。前記FDC100にはフロッピ
ーディスクドライブ装置106が接続され、前記記録媒
体2の一例であるフロッピーディスク120から情報を
読み取り、また、情報を書込む。KEYC101にはキ
ーボード107が接続される。IDEC102にはハー
ドディスクドライブ装置(HDD)108、CD―RO
Mドライブ装置(CDRD)109が接続される。HD
D108は記録媒体2の別の例である磁気ディスクを有
する。CDRD109は記録媒体2の更に別の例である
CD−ROM121を有する。尚、その他の端末コンピ
ュータ装置91,92も上記同様に構成される。
【0122】例えば前記端末コンピュータ装置90を用
い、前記クラスタデータ24によって特定される画像デ
ータを伸張し、これに対して前記アフィン変換や透視変
換等の3次元グラフィックス処理を行う場合、そのため
のプログラムは、例えばフロッピーディスク120やC
D−ROM121からハードディスクドライブ装置10
8にインストールされる。このとき、フロッピーディス
ク120やCD−ROM121には前記伸張、アフィン
変換、及び透視変換等の画像処理プログラムが予め記録
されている。端末コンピュータ装置のセットメーカがそ
のプログラムをハードディスクドライブ装置にプリイン
ストールして提供する場合もある。
【0123】プロセッサ5はインストールされたプログ
ラムを実行するとき、そのプログラムをDRAM105
にロードし、DRAM105から順次命令をフェッチし
て実行する。尚、CD−ROM121に格納されている
プログラムの一部を直接CD−ROMから取り出して実
行することも可能である。
【0124】これにより、前記端末コンピュータ装置9
0は、フロッピーディスク120等を介して前記プログ
ラムをインストールでき、或いはハードディスクドライ
ブ装置108等から直接前記プログラムを実行できる。
【0125】また、端末コンピュータ装置90はホスト
コンピュータ装置93から前記プログラムをダウンロー
ドすることができる。即ち、ホストコンピュータ装置9
3は、例えば圧縮された前記プログラムをハードディス
ク装置などに保有している。端末コンピュータ装置90
がホストコンピュータ装置93と通信を確立した後、端
末コンピュータ装置90がそのプログラムを指定をして
ダウンロードを指示することにより、前記プログラムが
伝送媒体94に伝送されて、端末コンピュータ装置90
のハードディスクドライブ装置108にダウンロードさ
れる。ダウンロードされたプログラムは、その後、伸長
されて、所定のプログラム格納エリアにインストールさ
れる。これによって端末コンピュータ装置90には、前
記アフィン変換や透視変換などに3次元グラフィックス
処理を行う機能が実現される。
【0126】前記クラスタデータに対してもCD−RO
Mディスク121などの記録媒体2又は伝送媒体94を
介してコンピュータ装置90,91,92に取り込むこ
とが可能である。
【0127】前記整数差分データによって圧縮されたク
ラスタデータを伸張し、伸張された浮動小数点差分デー
タに対し前記アフィン変換及び透視変換を行うための、
データ処理プログラムを記録媒体2に記録して提供する
ことにより、そのようなクラスタデータを用いた前記ア
フィン変換及び透視変換の処理を容易に実現できるよう
になる。
【0128】また、図1で説明した整数差分データを含
むクラスタデータを記録媒体2(120,121)に記
録して提供すれば、そのデータを用いて画像処理が行な
われることにより、圧縮データの伸長がプロセッサ処理
性能に対して大きな負担をかけず、また、記録媒体及び
データ転送のコストを減少させる。
【0129】以上本発明者によってなされた発明を実施
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
【0130】例えば、前記整数差分データの伸張、伸張
された浮動小数点差分データを用いる前記アフィン変換
及び透視変換の為のデータ処理は、汎用的な制御にも用
いられるプロセッサが行う場合に限定されず、グラフィ
ックプロセッサなどの専用プロセッサ若しくはアクセラ
レータで行うことも可能である。また、プロセッサの具
体的な構成も図11に限定されず、適宜変更可能であ
る。また、圧縮されたクラスタデータを伸張し、伸張さ
れた浮動小数点差分データに対し前記アフィン変換及び
透視変換を行うためのプログラムは、圧縮されたクラス
タデータを記録した記録媒体とは別の単数又は複数の記
録媒体に記録して提供してよい。
【0131】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0132】クラスタの頂点座標と基準点との差分デー
タを用いてポリゴンを表現するデータ形式を採用するか
ら、画像データのサイズを小さくでき、これを記録する
記録媒体の容量を圧迫せず、また、その画像データの転
送時間短縮にも寄与する。
【0133】圧縮方法は、ポリゴン頂点の浮動小数点で
表現される位置情報を整数値に変換する形式であるか
ら、複雑な圧縮装置を必要とせず、ソフトウェアでも容
易に対処することができる。
【0134】ポリゴン頂点の位置情報を予め定められた
サイズの整数値で表現できるため、圧縮後のデータサイ
ズの圧縮度も容易に調整可能である。また、圧縮データ
が規則的な構造を持つことにより、簡易なデータ伸長手
段で伸長できる。更に、圧縮データが規則的な構造を持
つことにより、メモリアクセス機能と整数型から浮動小
数型へのデータ変換機能とを持つ命令を実行できるプロ
セッサで容易に伸長することができる。
【0135】画像圧縮の基準点を、各頂点座標の重心に
近い頂点、或いは重心そのものとすることができるた
め、基準点と頂点との差分データの値を小さくすること
が容易であり、複雑な圧縮計算が不要になる。
【0136】伸長されたクラスタを構成する頂点のアフ
ィン変換は、各頂点に対応する差分ベクトルに対して、
アフィン変換における線形変換を適用するため、アフィ
ン変換の演算処理を軽減することが可能になる。
【0137】クラスタに属する各頂点の透視変換におい
て基準点に対応する値から乗算と加算の組み合わせで近
似することにより、透視変換で必要となる除算処理を軽
減できる。これは除算完了に必要な時間が、乗算や加算
より大きいようなプロセッサで有効である。
【0138】透視変換の近似計算の適用対象を選択可能
にすることにより、精度が重要な頂点と、近似処理で十
分な頂点を選択して、描画品質を劣化させずに高速処理
が可能である。
【0139】整数差分データを伸張するプログラム、或
いは、伸張された浮動小数点差分データをを用いる前記
アフィン変換及び透視変換の為のデータ処理プログラム
を、記録媒体に記録して提供することにより、そのよう
なクラスタデータを用いた前記アフィン変換及び透視変
換の処理を容易に実現できるようになる。
【0140】また、整数差分データを含むクラスタデー
タを記録媒体に記録して提供すれば、そのデータを用い
て画像処理が行なわれることにより、圧縮データの伸長
がプロセッサの処理におきな負担をかけず、また、記録
媒体及びデータ転送のコストを減少されることができ
る。
【図面の簡単な説明】
【図1】3次元画像を構成する頂点集合としてのクラス
タ及び整数座分データの意義を示す説明図である。
【図2】差分データによって圧縮された頂点データ等に
よって構成されるクラスタデータの一例を示す説明図で
ある。
【図3】クラスタ内頂点座標に対するデータ御差分表現
例示する説明図である。
【図4】図1のクラスタデータを利用する画像処理シス
テムの一例を示すブロック図である。
【図5】整数差分データへの圧縮方法の一例を示すフロ
ーチャートである。
【図6】伸張された浮動小数点差分データを利用したア
フィン変換方法を例示する説明図である。
【図7】図6のアフィン変換前の座標差分表現による頂
点データとアフィン変換後の座標差分表現による頂点デ
ータとを例示する説明図である。
【図8】伸張された浮動小数点差分データを利用した透
視変換方法を例示する説明図である。
【図9】伸張された浮動小数点差分データを利用した透
視変換方法を例示するフローチャートである。
【図10】クラスタに属する頂点群の重心点を基準点と
して整数差分データを生成する場合の一例を示す説明図
である。
【図11】FLOAD命令をサポートするプロセッサの
一例を示すブロック図である。
【図12】図11のプロセッサが備える変換回路及び整
列・拡張回路の一例を示すブロック図である。
【図13】FLOAD命令の命令フォーマットを例示す
る説明図である。
【図14】FLOAD命令を実行したときのデータフロ
ーを例示する説明図である。
【図15】情報処理ネットワークの一例を示すブロック
図である。
【符号の説明】
1 画像処理システム 2 記録媒体 4 差分データ変換器 5 プロセッサ 7 メモリ 10 ヘッダデータ 14 浮動小数点型頂点データ 15 整数差分データ 23 頂点データ 24 クラスタデータ 46 データキャッシュユニット 71 浮動小数点レジスタファイル 72 変換回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 孔司 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体グループ内 Fターム(参考) 5B050 AA08 BA10 EA10 EA27 FA02 FA05 FA06 5B057 BA28 CA13 CG10 CH08 CH11 DC06

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 画像の3次元形状を近似する複数のポリ
    ゴンの頂点座標データを圧縮するデータ処理方法であっ
    て、 画像の3次元形状を近似する複数のポリゴンの頂点を複
    数の頂点集合に分割する第1ステップと、 頂点集合毎に基準点を決める第2ステップと、 頂点集合毎にその各頂点の位置情報として当該頂点の座
    標と基準点の座標との差分データを求める第3ステップ
    と、 頂点集合毎における基準点の座標データ及び差分データ
    を圧縮されたデータとして格納する第4ステップと、を
    含むことを特徴とするデータ処理方法。
  2. 【請求項2】 前記頂点の座標及び基準点の座標は浮動
    小数点データで与えられ、前記第3ステップは前記差分
    データとして、頂点の座標と基準点の座標との差分を所
    定のスケール値に対する大きさを示す整数値として求め
    ることを特徴とする請求項1記載のデータ処理方法。
  3. 【請求項3】 前記第2ステップは、頂点集合毎に当該
    頂点集合に含まれる各頂点の座標から求められる重心点
    に近い頂点、又は前記重心点を、当該頂点集合の基準点
    として採用することを特徴とする請求項1又は2記載の
    データ処理方法。
  4. 【請求項4】 コンピュータ読取り可能に画像データを
    記録した記録媒体であって、 前記画像データは、画像の3次元形状を近似する複数の
    ポリゴンの頂点の集合に対する基準点の座標データと、
    夫々の頂点の座標と基準点の座標との差分データとを有
    して成るものであることを特徴とする記録媒体。
  5. 【請求項5】 前記基準点の座標データは浮動小数点デ
    ータであり、前記差分データは所定のスケール値に対す
    る大きさを示す整数値データであることを特徴とする請
    求項4記載の記録媒体。
  6. 【請求項6】 前記基準点は、前記複数のポリゴンの頂
    点の集合に含まれる各頂点の座標から求められる重心点
    の座標データ、又はその重心点に近い頂点の座標データ
    であることを特徴とする請求項4又は5記載の記録媒
    体。
  7. 【請求項7】 画像の3次元形状を近似する複数のポリ
    ゴンの頂点の集合に対する基準点を浮動小数点数で与え
    る座標データと、夫々の頂点の座標と基準点の座標との
    差分を整数で与える差分データと、差分データの大きさ
    の基準を浮動小数点数で与えるスケール値データとを入
    力する第1ステップと、 入力した前記差分データを浮動小数点数に型変換する第
    2ステップと、 型変換された差分データに前記スケール値データを乗算
    する第3ステップと、 前記第3ステップによる乗算結果を、伸張された差分デ
    ータとして格納する第4ステップと、を含むことを特徴
    とするデータ処理方法。
  8. 【請求項8】 画像の3次元形状を近似する複数のポリ
    ゴンの頂点の集合に対する基準点を浮動小数点数で与え
    る座標データと、夫々の頂点の座標と基準点の座標との
    差分を整数で与える差分データと、差分データの大きさ
    の基準を浮動小数点数で与えるスケール値データとを格
    納可能な記憶手段と、 前記記憶手段から読み出された前記差分データを入力し
    て浮動小数点数に型変換し、型変換された差分データに
    前記スケール値データを乗算し、乗算結果を伸張された
    差分データとして出力する演算制御手段と、を含んで成
    るものであることを特徴とするデータ処理装置。
  9. 【請求項9】 前記演算手段はCPUであり、CPUは
    整数データの浮動小数点数データへの型変換を指示する
    命令を実行可能であり、この型変換を指示する命令は、
    整数データのビット長を指示するビット長情報フィール
    ドを有して成るものであることを特徴とする請求項8記
    載のデータ処理装置。
  10. 【請求項10】 画像の3次元形状を近似する複数のポ
    リゴンの頂点の集合に対する基準点を浮動小数点数で与
    える座標データと、夫々の頂点の座標と基準点の座標と
    の差分を浮動小数点数で与える差分データとを入力し、 入力した前記基準点の座標データに対してアフィン変換
    を行うとき、当該基準点を共有する座標データに対して
    当該アフィン変換から平行移動を除外した線形変換を行
    うことを特徴とするデータ処理方法。
  11. 【請求項11】 コンピュータ読取り可能にプログラム
    を記録した記録媒体であって、 前記プログラムは、コンピュータに、画像の3次元形状
    を近似する複数のポリゴンの頂点の集合に対する基準点
    を浮動小数点数で与える座標データと、夫々の頂点の座
    標と基準点の座標との差分を浮動小数点数で与える差分
    データとを入力させ、入力させた前記基準点の座標デー
    タに対してアフィン変換を行う場合には、当該基準点を
    共有する座標データに対して当該アフィン変換から平行
    移動を除外した線形変換を実行させること特徴とする記
    録媒体。
  12. 【請求項12】 画像の3次元形状を近似する複数のポ
    リゴンの頂点の集合に対する基準点を浮動小数点数で与
    える座標データと、夫々の頂点の座標と基準点の座標と
    の差分を浮動小数点数で与える差分データとを格納可能
    な記憶手段と、 前記記憶手段から読み出された前記基準点の座標データ
    に対してアフィン変換を行うとき、当該基準点を共有す
    る座標データに対して当該アフィン変換から平行移動を
    除外した線形変換を行う演算手段と、を含んで成るもの
    であることを特徴とするデータ処理装置。
  13. 【請求項13】 画像の3次元形状を近似する複数のポ
    リゴンの頂点の集合に対する基準点を浮動小数点数で与
    える座標データと、夫々の頂点の座標と対応する基準点
    の座標との差分を浮動小数点数で与える差分データとを
    入力し、前記複数のポリゴンの頂点に対する透視変換を
    行うとき、 基準点に対しては幾何学の相似の関係を用いた除算によ
    る透視変換を行って透視変換後の座標データを求め、 基準点以外の頂点に対しては、マクローリン級数展開に
    よる近似計算に対応する基準点の透視変換後の座標デー
    タ及び対応する前記差分データを用いて透視変換後の座
    標データを求める、ことを特徴とするデータ処理方法。
  14. 【請求項14】 上記透視変換の近似計算において、透
    視変換の座標原点から透視面までの距離が既定値よりも
    小さいときは、基準点以外の頂点の座標データに対して
    も幾何学の相似の関係を用いた除算による透視変換を行
    うことを特徴とする請求項13記載のデータ処理方法。
  15. 【請求項15】 コンピュータ読取り可能にプログラム
    を記録した記録媒体であって、 前記プログラムは、コンピュータに、画像の3次元形状
    を近似する複数のポリゴンの頂点の集合に対する基準点
    を浮動小数点数で与える座標データと、夫々の頂点の座
    標と対応する基準点の座標との差分を浮動小数点数で与
    える差分データとを入力させ、前記複数のポリゴンの頂
    点に対する透視変換を行うとき、入力した基準点の座標
    データに対しては幾何学の相似の関係を用いた除算によ
    る透視変換を行って透視変換後の座標データを取得さ
    せ、基準点以外の入力した頂点の座標データに対して
    は、対応する基準点の透視変換後の座標データをマクロ
    ーリン級数展開による近似計算に用いて透視変換後の座
    標データを取得させることを特徴とする記録媒体。
  16. 【請求項16】 画像の3次元形状を近似する複数のポ
    リゴンの頂点の集合に対する基準点を浮動小数点数で与
    える座標データと、夫々の頂点の座標と対応する基準点
    の座標との差分を浮動小数点数で与える差分データとを
    格納可能な記憶手段と、 前記複数のポリゴンの頂点に対する透視変換を行うと
    き、記憶手段に格納された基準点の座標データに対して
    は幾何学の相似の関係を用いた除算による透視変換を行
    って透視変換後の座標データを求め、記憶手段に格納さ
    れたところの基準点以外の頂点の座標データに対して
    は、透視変換の透視面から基準点までの距離が既定値よ
    りも大きいとき、対応する基準点の透視変換後の座標デ
    ータをマクローリン級数展開による近似計算に用いて透
    視変換後の座標データを求め、透視変換の透視面から基
    準点までの距離が既定値よりも小さいとき、記憶手段に
    格納されたところの基準点以外の頂点の座標データに対
    しても幾何学の相似の関係を用いた除算による透視変換
    を行って透視変換後の座標データを求める演算手段と、
    を含んで成るものであることを特徴とするデータ処理装
    置。
JP2000194935A 2000-06-23 2000-06-23 データ処理方法、記録媒体及びデータ処理装置 Withdrawn JP2002008060A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000194935A JP2002008060A (ja) 2000-06-23 2000-06-23 データ処理方法、記録媒体及びデータ処理装置
US09/886,281 US6873324B2 (en) 2000-06-23 2001-06-22 Data processing method, recording medium and data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000194935A JP2002008060A (ja) 2000-06-23 2000-06-23 データ処理方法、記録媒体及びデータ処理装置

Publications (1)

Publication Number Publication Date
JP2002008060A true JP2002008060A (ja) 2002-01-11

Family

ID=18693687

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000194935A Withdrawn JP2002008060A (ja) 2000-06-23 2000-06-23 データ処理方法、記録媒体及びデータ処理装置

Country Status (2)

Country Link
US (1) US6873324B2 (ja)
JP (1) JP2002008060A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296747A (ja) * 2002-03-26 2003-10-17 Imagination Technologies Ltd 3−dコンピュータ・グラフィックス・レンダリングシステム
KR100473704B1 (ko) * 2002-02-27 2005-03-08 이상욱 3차원 메쉬 영상의 점진적 부호화 방법
KR100809379B1 (ko) 2007-01-29 2008-03-05 부산대학교 산학협력단 삼각영역 직교벡터를 이용한 평면영역 추출 장치 및 그방법
US7558811B2 (en) 2003-01-27 2009-07-07 Denso Corporation Electronic control apparatus and memory apparatus for electronic control apparatus
JP2009193095A (ja) * 2008-02-12 2009-08-27 Akuseru:Kk ポリゴンデータの圧縮システム、圧縮プログラム、伸張システムおよび伸張プログラム
US7876318B2 (en) 2006-03-17 2011-01-25 Nec Corporation Three-dimensional data processing system
JP2012511219A (ja) * 2008-12-08 2012-05-17 マイクロソフト コーポレーション 改良されたコマンドリモーティング技術
US8310480B2 (en) 2008-01-21 2012-11-13 Samsung Electronics Co., Ltd. Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
US9292960B2 (en) 2010-09-10 2016-03-22 Imagination Technologies Limited Random accessible lossless parameter data compression for tile based 3D computer graphics systems
JP2016126555A (ja) * 2015-01-05 2016-07-11 富士通株式会社 磁界シミュレータプログラム、磁化ベクトル格納方法、及び磁界シミュレータ装置
JPWO2020008643A1 (ja) * 2018-07-06 2021-03-11 日本電気株式会社 データ処理装置、データ処理回路およびデータ処理方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1465035A (zh) * 2001-06-21 2003-12-31 Hi股份有限公司 信息处理装置
US8085273B2 (en) * 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US8190669B1 (en) 2004-10-20 2012-05-29 Nvidia Corporation Multipurpose arithmetic functional unit
CN101849227A (zh) 2005-01-25 2010-09-29 透明信息技术有限公司 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统
JP4613636B2 (ja) * 2005-02-21 2011-01-19 セイコーエプソン株式会社 印刷データ出力装置、および印刷データ出力方法
US8037119B1 (en) 2006-02-21 2011-10-11 Nvidia Corporation Multipurpose functional unit with single-precision and double-precision operations
US7712076B2 (en) * 2006-09-13 2010-05-04 International Business Machines Corporation Register indirect access of program floating point registers by millicode
US8051123B1 (en) 2006-12-15 2011-11-01 Nvidia Corporation Multipurpose functional unit with double-precision and filtering operations
US8744198B1 (en) * 2007-11-20 2014-06-03 Lucasfilm Entertainment Company Ltd. Image compression and decompression
US8106914B2 (en) * 2007-12-07 2012-01-31 Nvidia Corporation Fused multiply-add functional unit
US8243070B1 (en) * 2008-04-18 2012-08-14 Adobe Systems Incorporated Triangulation for accelerated rendering of polygons
US9153064B2 (en) * 2009-12-23 2015-10-06 Intel Corporation Grouping pixels to be textured
GB201104066D0 (en) 2011-03-09 2011-04-20 Imagination Tech Ltd Compression of a tessellated primitive index list in a tile rendering system
CN103378863B (zh) * 2012-04-18 2017-11-10 苏州超擎图形软件科技发展有限公司 空间数据压缩、解压与渐进传输的有关方法与装置
CN103729864A (zh) * 2013-12-18 2014-04-16 珠海金山网络游戏科技有限公司 一种三维模型的压缩存储方法及系统
GB2526598B (en) * 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
JP2017207581A (ja) * 2016-05-17 2017-11-24 株式会社ジャパンディスプレイ 表示装置
CN106681920B (zh) * 2016-12-27 2020-11-03 河南理工大学 一种基于测地距的并发系统模型检测方法
US10171104B1 (en) * 2017-11-08 2019-01-01 International Business Machines Corporation Encoding variable length integers for graph compression
KR20200030305A (ko) * 2018-09-12 2020-03-20 삼성전자주식회사 영상 처리를 위한 학습 데이터 생성 방법, 영상 처리 방법, 및 그 장치들

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2861647B2 (ja) * 1992-07-08 1999-02-24 松下電器産業株式会社 画像生成装置
JP3239975B2 (ja) * 1994-11-29 2001-12-17 富士通株式会社 多角形描画装置
JP3635359B2 (ja) * 1995-11-09 2005-04-06 株式会社ルネサステクノロジ 透視投影計算装置および透視投影計算方法
JP3926866B2 (ja) * 1996-05-10 2007-06-06 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法、及び描画システム
US5886702A (en) * 1996-10-16 1999-03-23 Real-Time Geometry Corporation System and method for computer modeling of 3D objects or surfaces by mesh constructions having optimal quality characteristics and dynamic resolution capabilities
WO1998025233A1 (fr) * 1996-12-05 1998-06-11 Setoguchi Laboratory Ltd. Procede d'affichage d'une forme tridimensionnelle
US6208347B1 (en) * 1997-06-23 2001-03-27 Real-Time Geometry Corporation System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture
US6184887B1 (en) * 1998-03-30 2001-02-06 Oak Technology, Inc. Method and apparatus for clamping image gradients
US6072496A (en) * 1998-06-08 2000-06-06 Microsoft Corporation Method and system for capturing and representing 3D geometry, color and shading of facial expressions and other animated objects
JP3740865B2 (ja) * 1998-10-08 2006-02-01 コニカミノルタホールディングス株式会社 多視点3次元データの合成方法および記録媒体
US6249286B1 (en) * 1998-10-31 2001-06-19 Hewlett-Packard Company Memory efficient surface normal compression
US6373489B1 (en) * 1999-01-12 2002-04-16 Schlumberger Technology Corporation Scalable visualization for interactive geometry modeling
US6515673B1 (en) * 2000-02-16 2003-02-04 Enroute, Inc. Displaying immersive videos using tiled decompression

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100473704B1 (ko) * 2002-02-27 2005-03-08 이상욱 3차원 메쉬 영상의 점진적 부호화 방법
JP4564718B2 (ja) * 2002-03-26 2010-10-20 イマジネイション テクノロジーズ リミテッド 3−dコンピュータ・グラフィックス・レンダリングシステム
JP2003296747A (ja) * 2002-03-26 2003-10-17 Imagination Technologies Ltd 3−dコンピュータ・グラフィックス・レンダリングシステム
US7558811B2 (en) 2003-01-27 2009-07-07 Denso Corporation Electronic control apparatus and memory apparatus for electronic control apparatus
US7876318B2 (en) 2006-03-17 2011-01-25 Nec Corporation Three-dimensional data processing system
KR100809379B1 (ko) 2007-01-29 2008-03-05 부산대학교 산학협력단 삼각영역 직교벡터를 이용한 평면영역 추출 장치 및 그방법
US8310480B2 (en) 2008-01-21 2012-11-13 Samsung Electronics Co., Ltd. Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
JP2009193095A (ja) * 2008-02-12 2009-08-27 Akuseru:Kk ポリゴンデータの圧縮システム、圧縮プログラム、伸張システムおよび伸張プログラム
JP4721072B2 (ja) * 2008-02-12 2011-07-13 株式会社アクセル ポリゴンデータの圧縮システムおよび伸張システム
JP2012511219A (ja) * 2008-12-08 2012-05-17 マイクロソフト コーポレーション 改良されたコマンドリモーティング技術
US9639963B2 (en) 2008-12-08 2017-05-02 Microsoft Technology Licensing, Llc Command remoting techniques
US9292960B2 (en) 2010-09-10 2016-03-22 Imagination Technologies Limited Random accessible lossless parameter data compression for tile based 3D computer graphics systems
US10380781B2 (en) 2010-09-10 2019-08-13 Imagination Technologies Limited Random accessible lossless parameter data compression for tile based 3D computer graphics systems
US11043016B2 (en) 2010-09-10 2021-06-22 Imagination Technologies Limited Random accessible lossless parameter data compression for tile based 3D computer graphics systems
US11625883B2 (en) 2010-09-10 2023-04-11 Imagination Technologies Limited Random accessible lossless parameter data compression for tile based 3D computer graphics systems
JP2016126555A (ja) * 2015-01-05 2016-07-11 富士通株式会社 磁界シミュレータプログラム、磁化ベクトル格納方法、及び磁界シミュレータ装置
US10146894B2 (en) 2015-01-05 2018-12-04 Fujitsu Limited Magnetization vector storing method, magnetization vector data compression method, and magnetic field simulator device
JPWO2020008643A1 (ja) * 2018-07-06 2021-03-11 日本電気株式会社 データ処理装置、データ処理回路およびデータ処理方法
JP7120308B2 (ja) 2018-07-06 2022-08-17 日本電気株式会社 データ処理装置、データ処理回路およびデータ処理方法

Also Published As

Publication number Publication date
US6873324B2 (en) 2005-03-29
US20010055032A1 (en) 2001-12-27

Similar Documents

Publication Publication Date Title
JP2002008060A (ja) データ処理方法、記録媒体及びデータ処理装置
US11797301B2 (en) Generalized acceleration of matrix multiply accumulate operations
US11816481B2 (en) Generalized acceleration of matrix multiply accumulate operations
JP3860859B2 (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
US8098257B2 (en) Filtering unit for floating-point texture data
US7385611B1 (en) Decompression of block encoded texture data
US5862066A (en) Methods and apparatus for fast check of floating point zero or negative zero
US6037947A (en) Graphics accelerator with shift count generation for handling potential fixed-point numeric overflows
JP2012084142A (ja) 融合型積和演算機能ユニット
US8051123B1 (en) Multipurpose functional unit with double-precision and filtering operations
US7640285B1 (en) Multipurpose arithmetic functional unit
US6212627B1 (en) System for converting packed integer data into packed floating point data in reduced time
JP4483025B2 (ja) 画像処理装置、情報処理装置
WO2001042903A1 (fr) Appareil et systeme de traitement de donnees
US6169819B1 (en) High performance surface normal compression
JP3222206B2 (ja) ポリゴンデータ処理装置
JP4483026B2 (ja) 図形情報変換装置、図形情報変換方法及び記録媒体
JP4556646B2 (ja) 図形情報生成装置、画像処理装置、情報処理装置、および図形情報生成方法
US6175369B1 (en) High performance surface normal decompression
JP3657350B2 (ja) 関数発生器
JP2002536763A (ja) 命令セット構造の比較拡張を有するプロセッサ
JP3547277B2 (ja) グラフィックス処理装置
JPH09293145A (ja) 画像生成方法および画像生成装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070904