JP2003516702A - 3d変換マトリックス圧縮および復元 - Google Patents

3d変換マトリックス圧縮および復元

Info

Publication number
JP2003516702A
JP2003516702A JP2001544274A JP2001544274A JP2003516702A JP 2003516702 A JP2003516702 A JP 2003516702A JP 2001544274 A JP2001544274 A JP 2001544274A JP 2001544274 A JP2001544274 A JP 2001544274A JP 2003516702 A JP2003516702 A JP 2003516702A
Authority
JP
Japan
Prior art keywords
matrix
data
integer
compression
real
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
JP2001544274A
Other languages
English (en)
Inventor
コメイアー,クロード
リ,シン
アボウ−サムラ,サミール
シャンパーニュ,ロバート
ファム,スン・ティエン
ガーリ,プラサンナ
パン,ジュン
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.)
Nintendo Co Ltd
Original Assignee
Nintendo Co 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 Nintendo Co Ltd filed Critical Nintendo Co Ltd
Publication of JP2003516702A publication Critical patent/JP2003516702A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Abstract

(57)【要約】 オブジェクトをアニメーション化するために3Dコンピュータグラフィックスシステムが用いる変換マトリックス向けの圧縮および復元技術は、同次3D変換マトリックスの一般的な特徴を利用することにより、高い圧縮率を達成する。この技術はビットマップを用いて、マトリックスの1および0の場所の情報をエンコードし、そのような情報を高精度の数として表わすコンパイラの傾向を無視する。ほとんどのビデオゲームプロセッサおよびディスプレイハードウェアはそれらの分解能の制約を受けかつ、元の変換マトリックスは、必要であるよりも正確なデータをしばしば記憶するため、この技術は、マトリックス中のいくつかの実数(たとえば−1から1の範囲内の数)を、それらを定数で基準化することによって整数に変換する。結果として生じる圧縮されたマトリックスは、それらの圧縮されていないものよりもはるかに少ない記憶空間を占め、対話型リアルタイム3Dアニメーションで用いるために、リアルタイムで効率的に復元可能である。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
この発明は、コンピュータグラフィックスシミュレーションおよびアニメーシ
ョンに関し、より特定的には、記憶空間を温存するため、3D変換データを効率
的に圧縮および復元するための方法および装置に関する。
【0002】
【発明の背景および概要】
我々の多くは、驚くほどリアルな恐竜、エイリアン、アニメーション化された
おもちゃおよび他の空想的な生き物を含む映画を見てきた。そのようなアニメー
ションは3Dコンピュータグラフィックスによって可能になる。オブジェクトを
3次元にモデリングしかつそれらをコンピュータ画面上に表示するためにコンピ
ュータが用いられる。作者は、各々のオブジェクトがどのように見えるかだけで
なく、その外観が経時的にどのように変化するかを完全に指定することができる
。コンピュータは、見る人からの距離、光がオブジェクトに当る方向、オブジェ
クトの表面テクスチャおよび他の多くの要因に基づいて、動画像の各部分にきち
んと正しく色がつけられるのを確かにするのに必要な何百万ものタスクを行なう
役割がある。
【0003】 3Dグラフィックス生成プロセスの複雑さのために、ほんの数年前は、コンピ
ュータで生成された3次元グラフィックスは、高価で特殊なフライトシミュレー
タ、グラフィックスワークステーションまたはスーパーコンピュータにほぼ限ら
れていた。一般の人はコンピュータで生成された3Dグラフィックスの結果を映
画および広告で見ていたが、グラフィックス生成を行なうコンピュータシステム
と実際に対話したことはなかった。Nintendo64(登録商標)、ソニープレイス
テーション(登録商標)およびパーソナルコンピュータで利用可能なさまざまな
3Dグラフィックスカードなどの比較的安価な3Dグラフィックスプラットホー
ムの利用可能性により、すべてが変化した。家庭または職場の比較的安価なコン
ピュータグラフィックスシステム上で、対話的にリアルタイムで、刺激的なリア
ルタイム対話型3Dアニメーションおよびシミュレーションを作り出すことが今
や可能である。
【0004】 良質のコンピュータアニメーションは、関節でつながれる構造および洗練され
た動きを備える複雑なモデルに基づくことがしばしばである。たとえば、そのよ
うなコンピュータシミュレーションおよびビデオゲームの3次元の関節つきオブ
ジェクトは、N個のノードの階層的システムとしてしばしばモデリングされ、こ
こでは各ノードはオブジェクトの結合部分(たとえば、人の腕、脚または頭)を
表わす。立つ、歩く、走るまたは武器を使うなどの動きは、変換のシーケンスで
表わされる一組のアニメーションを規定することにより、関節つきシステムに指
定される。そのような変換をリアルタイムで計算するのは計算集約的であるため
、それらは通常は予め計算され、次にコンピュータグラフィックシステムのメモ
リに記憶され、そうしてシステムは必要に応じて単にそれらを読出したり使用し
たりすることができる。ビデオゲームのプレイヤーがアニメーションを走らせる
とき、コンピュータグラフィックスシステムは、予め計算された変換をメモリか
ら読出しかつそれらを適用して、リアルタイムで画面上のオブジェクトの位置、
向きおよび/またはサイズを変更する。
【0005】 特に、安価な家庭用ビデオゲームおよびパーソナルコンピュータシステムなど
の資源制約型の計算環境では、3次元のコンピュータシミュレーションおよびビ
デオゲームのキャラクタアニメーションは、多数のそのような予め計算され予め
記憶された3D変換に頼るところが大きい。たとえば、かなり複雑なアニメーシ
ョンは、何万もの予め構築された変換を含むことがある。変換データを記憶する
のに必要な大きなメモリ空間は、コンピュータビデオゲームの中の、リアルな動
きを備えるキャラクタアニメーションの複雑さを限定する主な障害の1つとなっ
ている。たとえば、予め構築された変換マトリックスが各フレームで各ノードを
更新するように規定されるアニメーションを考察する。一例として、14個の関
節つきノードを用いて人体をモデリングできる。10のアニメーション化された
動きがそれに対して規定され、各々のアニメーションが完了するのに2秒かかり
、コンピュータが1秒当り30のイメージを生成すれば、(たとえば、4×4実
数マトリックスの形の)変換データを記憶するのに必要なメモリ空間は1メガバ
イトを超えるであろう。洗練されたアプリケーションは通常、2つ以上アニメー
ション化されたキャラクタを有するが、これは、マトリックスの数と、このすべ
ての変換データを記憶するのに必要な関連するメモリ空間とを劇的に倍増させて
しまう。
【0006】 コンピュータデータのサイズを減じるためにデータ圧縮および復元を用いるこ
とは一般的に公知である。そのような圧縮/復元は、データ自体の中のリダンダ
ンシに頼っている。圧縮プロセスは記憶の前にデータをエンコードする。次に、
データを記憶装置から読出すときに復元がデータをデコードし、その元の形にデ
ータを回復する。しかしながら、変換マトリックスデータを効率的に圧縮および
復元するためのさらなる改良が必要でありかつ望ましい。
【0007】 我々は、コンピュータグラフィックスシステムがオブジェクトの変換を表わす
のに用いる数学的記述(すなわち4×4実数マトリックス)を圧縮および復元す
るのに特に好適な圧縮/復元技術を開発した。この発明は、効率的な圧縮アルゴ
リズムを提供することにより、変換マトリックスが必要とする空間の複雑さを減
じ、それにより変換データがコンピュータまたはビデオゲーム装置の中で占める
記憶場所は実質的により少ない。この発明は、3Dグラフィックスで3次元同次
変換データ用の4×4のアレイに用いられるときに特別な利点を有するが、一般
的な概念はどの任意のM×Nのマトリックスにも数学的に適用可能である。
【0008】 簡潔にいうと、変換データをオフラインで圧縮し、記憶媒体からグラフィック
スシステムメモリにそれをロードするときにそれを復元する。この発明の1つの
局面に従うと、変換マトリックス構造全体を、各マトリックス要素ごとの少数の
ビットを含むコンパクトなビットマップ構造と置換える。同次3D変換マトリッ
クスはいくつかの0と1とを含むため、別個のビットマップテーブルを用いて情
報をそれらの場所に保持することにより、圧縮されたデータ中のそれら0および
1のための記憶場所を排除することができる。ビット値としてのそのような0お
よび1の整数値のエンコードは、すべての数値を二倍精度浮動小数点数としてコ
ンパイルする多くのコンパイラの傾向を効果的に無視し、したがってかなりの量
の記憶空間を温存する。
【0009】 さらに、ほとんどのビデオゲームプロセッサおよびディスプレイハードウェア
がそれらの分解能の制約を受けかつ、元の変換マトリックスが、必要であるより
も正確なデータをしばしば記憶するという事実に基づき、マトリックス中のいく
つかの実数を、圧縮が行なわれるときにそれらを定数で基準化(scaling)する
ことにより、整数に変換する(整数は典型的に、浮動小数点数値の2分の1から
4分の1のサイズで記憶可能である)。1つの方策は、データを復元する際に失
われるのが、数の最も重要でないいくつかの小数の桁のみであるように、−1か
ら1の範囲内で数を基準化することである。好ましい実施例では、基準化範囲[
−1,1]内のすべての数をそれらの絶対値で処理し、別個のテーブルを用いて
、基準化された値の符号を保持する。ある状況では、2つ以上の倍率(scale fa
ctor)を同じ組のデータに用いて、異なるレベルの正確さを提供しかつより多く
の空間を節減することができる。このタイプの、浮動から固定小数点への変換か
ら生じる打ち切りは、3Dコンピュータグラフィックスプラットホームの分解能
に依存して、無視できるほどのものであろう。
【0010】 したがってこの発明は、(異なって宣言されなければ、すべての数を二倍精度
浮動小数点値として扱おうとしがちな)一般的に用いられるコンパイラの挙動と
、(記憶空間の節減を最大化するため、すべての数および変数を適切に宣言しな
いことがある)一般的に用いられるプログラミング技術とを補う圧縮/復元技術
を提供し、一方、3Dグラフィックスアニメーションおよびシミュレーションに
一般的に用いられる、同次3D変換マトリックス中に一般的に見られる整数0、
整数1および小数の符号付きの値の高い出現率も利用する。この発明は、そのよ
うな3D変換マトリックスとともに用いるように特に適合されるが、この発明の
技術はどのM×Nのマトリックスにも有用である。
【0011】 この発明が提供するこれらおよび他の特徴および利点は、図面と関連する好ま
しい実施例の以下の詳細な説明を参照することにより、よりよくおよびより完全
に理解されるであろう。
【0012】
【好ましい実施例の詳細な説明】
図1は、この発明に従う変換マトリックス圧縮/復元を用いてリアルな対話型
リアルタイム3Dアニメーションおよびシミュレーションを提供するのに用いて
もよい、例示的なリアルタイム3Dコンピュータグラフィックスディスプレイシ
ステム50を示す。図1の例示的なシステム50は、NINTENDO64(登
録商標)3Dビデオゲームコンソール52および関連するハンドコントローラ5
4a、54bを含む。カートリッジ56すなわちソフトウェアアニメーションま
たはシミュレーション(たとえばビデオゲーム)プログラムを記憶する光ディス
クまたは他の記憶媒体が、動作するようにコンソール52に接続される。コンソ
ール52は、従来の家庭用カラーテレビまたはコンピュータモニタなどのディス
プレイ装置58に接続される。コンソール52は、コントローラ54a、54b
のユーザ操作にリアルタイムで応答して、ディスプレイ58上に3Dアニメーシ
ョンをレンダリングできる3Dグラフィックスエンジンを含む。カートリッジ5
6内のソフトウェアがコンソール52を制御して、ディスプレイ58上にアニメ
ーション化されたビデオフレームのシーケンスを表示する。人のプレイヤがハン
ドコントローラ54a、54bを動作して、ゲームカートリッジ56内のソフト
ウェアの制御下で、ゲームのキャラクタに、予め記憶された圧縮された変換マト
リックスにアクセスさせ、マトリックスを復元させ、復元されたマトリックスを
用いてリアルタイムで対話的にディスプレイ58上に画像を生成させ得る。
【0013】 図2は、我々の発明の好ましい実施例が圧縮プロセス200を実行し、オフラ
インでソース変換データ100を圧縮し、たとえば、記憶媒体56内に記憶し得
る圧縮されたデータ300を提供するのを示す。こうした圧縮プロセス200は
、コンパイルに先立って、たとえば、アニメーションスイートの一部である特別
なツールによって実行されてもよい。結果として生じる圧縮されたデータ300
を、復元ソフトウェア400、対話型ビデオゲームソフトウェアおよび、システ
ム50による実行のためのコードとともに、記憶媒体56内に記憶してもよい(
図2Aを参照)。
【0014】 我々の発明の好ましい実施例は、アニメーション化された/シミュレーション
画像の生成のために、圧縮されたデータを記憶媒体56からコンソール52のC
PUメモリにロードするときに、リアルタイムで必要に応じて、圧縮されたデー
タ300を復元する、対応する復元プロセス400も提供する。好ましい実施例
の復元プロセス400は、変換データ100を再構築されたマトリックス100
′の形で回復し、これは、(たとえば、以下に説明されるように、ある値の打切
りを除いて)ソース変換マトリックスデータ100と正確に一致するであろう。
好ましい実施例の復元プロセス400は十分に効率的で速いため、それを「実行
中に(on the fly)」用いて、リアルタイム対話型シミュレーションおよびアニ
メーションで用いるために必要に応じて変換マトリックス100′を復元しかつ
回復してもよい。
【0015】 図2に示されるように、好ましい実施例が生じる圧縮されたデータ300は3
つのテーブルを含む。すなわち、 ・ビットマップテーブル302、 ・サインマップテーブル304および ・データマップテーブル306、である。
【0016】 好ましい実施例のこれらさまざまなテーブル302、304、306の用い方
は以下のとおりである。 ・ビットマップテーブル302は、変換マトリックス100の各要素に対応する
要素を含み、一般的なタイプ(たとえば、整数1、整数0、その絶対値が1.0
よりも大きい要素またはその絶対値が1.0以下である要素)によってそのよう
な各マトリックス素子を分類する。 ・サインマップテーブル304は、マトリックス100中の各要素の符号を示す
。 ・データマップ306は、整数1または整数0ではない、マトリックス100の
それらの要素の基準化されたまたは基準化されていない絶対値を含む。
【0017】 [例示的な圧縮プロセス] 図3は、好ましい実施例が提供する圧縮プロセス200のフローチャートであ
る。一般的に、圧縮プロセス200は2つのステップで行なわれる。すなわち、 1) 0および1の整数値の排除(ブロック204、206)および 2) ある非整数値の打切り/基準化(ブロック208、212) である。
【0018】 この圧縮プロセス200をよりよく理解するため、図4の、例示的な一般化さ
れた同次4×4 3D変換マトリックス100の概略図が参照される。そのよう
なマトリックス100の16個の値についていくつかの一般的な観察を行なうこ
とができる。 ・要素a、f、kおよびp(影付き部分102)は典型的に倍率に関し、基準化
が用いられなければ整数1の値であり得(オブジェクトが1つのアニメーション
フレームから次のフレームへ、より大きくされたりまたはより小さくされたりし
ていないことがしばしばある)、または、基準化が適用されていれば、1よりも
大きいもしくは1よりも小さい浮動小数点値であり得る。 ・要素m、nおよびo(部分104)は典型的に、各々が同次変換に対して整数
値0を有する。 ・要素b、cおよびg(部分106a)ならびにe、iおよびj(部分106b
)は一般的に回転値に関し、それらは正弦/余弦関数をエンコードするため、通
常は1よりも小さい浮動小数点値を有する。 ・要素d、hおよびl(部分108)は典型的にx、yおよびz方向の変換に関
し、しばしば整数値または1もしくはそれよりも大きな値をとる。
【0019】 同次変換マトリックスは一般的にいくつかの0と1とを含むため、圧縮された
データ中のそれら0および1のための記憶場所を排除することができ、代わりに
、よりコンパクトなビットマップテーブル302を用いて、それらの場所に情報
を保持する。好ましい実施例では、M×Nマトリックスに対し、ビットマップテ
ーブル302はソースマトリックス100と同じ寸法を有するが、テーブル中の
各要素は、4つの異なる組合せを表わすのに2ビットしか占めない。
【0020】
【表1】
【0021】 上述のようなビットマップテーブル302の使用だけで、かなりの量のデータ
圧縮が生じる。しかしながら、ビットマップテーブル302内で2ビットのエン
トリを用いることは、ビットマップテーブル302中の各エントリに4つの異な
る可能な値を与えることに留意されたい。整数0および整数1を超える2つのカ
テゴリをエンコードする能力は、この発明の好ましい実施例が利用するさらなる
エンコードの機会を提供し、さらなるレベルの圧縮エンコードを提供する。特に
、好ましい実施例は、ビットマップテーブル302内の2つの他の値の可能性を
用いて、対応するマトリックス要素100が、基準化された整数としてまたは浮
動小数点数としてエンコードされるかをエンコードする。
【0022】
【表2】
【0023】 より詳細には、ビデオゲームのほとんどのプロセッサおよびディスプレイハー
ドウェアはそれらの分解能の制約を受けかつ、元の変換マトリックスは、必要で
あるよりも正確なデータをしばしば記憶するという事実に基づき、マトリックス
中のいくつかの実数を、圧縮が行なわれるときにそれらを定数で基準化すること
により、整数に変換する(当業者には理解されるように、整数値は典型的に、た
とえば4または8バイトに対して2バイトなど、浮動小数点数よりもコンパクト
に表わすことができる)。1つの方策は、データを復元する際に失われるのが、
数の最も重要でないいくつかの小数点桁のみであるように、−1から+1の範囲
内で数を基準化することである。好ましい実施例では、倍率範囲[−1,1]内
のすべての数がそれらの絶対値で処理され、サインマップテーブル304を用い
て、基準化された値の符号を保持する。サインマップテーブル304は元のマト
リックスの同じ寸法を有し、テーブル中の各要素は1ビットしか用いず、ここで
は、1が「負」をおよび0が「正」を表わす。
【0024】 図3に示されるように、好ましい実施例の圧縮プロセス200は単純かつ効率
的である。元のマトリックス中の各要素[i,j]ごとに(ブロック202、2
14)、(決定ブロック204がテストするように)要素が0または1ならば、
圧縮プロセス200は、ビットマップ[i,j]をそれぞれ0または1にセット
する(ブロック206)。(決定ブロック208がテストするように)絶対値が
1.0よりも大きければ、プロセス200は、ビットマップ[i,j]を2にセ
ットし、それをデータマップ中に連続順で記憶する(ブロック210)(所望に
より、このステップは、サインマップ304内の対応する位置にも値の符号を保
存できるが、値を浮動小数点数としてデータマップ306内に記憶することは典
型的に値の符号を保存するであろう)。それ以外では(決定ブロック208への
「No」出口)、プロセス200はビットマップ[i,j]を3にセットし、そ
の符号を表わすようにサインマップ[i,j]をセットし、その絶対値を定数で
基準化し、次にこの結果を次の利用可能なスロットのデータマップに記憶する(
ブロック212)。
【0025】 その絶対値が1.0を超えないマトリックス要素に好ましい実施例が適用する
倍率は定数であり、通常は2kにセットされる。k=16ならば、基準化された
値は2バイトの整数で記憶することができる。k=8ならば、それは1バイトの
整数で保存することができる。kが小さくなるにつれ、アルゴリズムが保存する
正確さが小さくなるのは当然である。ある状況では、2つ以上の倍率を同じ組の
データに用いて異なるレベルの正確さを提供し、より多くの空間を節減すること
ができる。この場合、ビットマップテーブル302を拡張して、要素当り2ビッ
ト以上を用いて、どのファクタがマトリックス100中の特定の要素に適用され
るかを示すことができる。
【0026】 [例示的な復元プロセス] 図5は例示的な復元プロセス400を示し、これは一般的に圧縮プロセス20
0の逆である。この例では、ビットマップ302の要素の各々をテストして、再
構築されたマトリックス100′に整数「1」または「0」の値を書込むべきで
ることを示すのが「1」または「0」であるかを判断する(ブロック406、4
08)。ビットマップ302の要素が、対応するマトリックス要素の絶対値が1
を超えることを示す「2」であれば(決定ブロック410)、プロセス400は
、対応するデータマップ306の値を、(所望により、サインマップ304から
適切な符号を加えて)再構築されたマトリックス100′に書込む(ブロック4
12)。ビットマップ302の要素が(要素の絶対値が1以下でありしたがって
基準化してもよいことを示す)「3」であれば(決定ブロック414)、プロセ
ス400はデータマップ306から関連するデータを入手し、対応する定数でデ
ータを再度基準化し、データマップ304からデータの符号を入手しかつ、再構
築された値をマトリックス100′に書込む(ブロック416)。
【0027】 [数学的表示] 以下は、上記圧縮/復元プロセス200、400の数学的記述である。任意の
M×Nの実数アレイAが (式1) A={aij|i∈[0,M−1],j∈[0,N−1]} で定義され、その圧縮されたバージョンが、 (式2) AC=<ビットマップ、サインマップ、データマップ> で定義され、式中、ACは3組のデータ項目、すなわちビットマップ、サインマ
ップおよびデータマップの集まりからなる。Aの圧縮アルゴリズムを定義するこ
とは、4つのエンコード関数(B、S、FおよびG)および2つのデコード関数
(F-1およびG-1)を明記することであり、これらは、Aがもともと占めるより
も少ない空間をACが占めるように、Aの要素とACの要素との間をマッピングす
るものである。
【0028】
【数1】
【0029】 式3は、エンコード関数B、S、FおよびGを介して、AをACに一意にマッ
ピングできることを述べている。同様に、デコード関数F-1およびG-1を介して
、ACをA′に一意にマッピングすることができる。A′が正確にAと等しけれ
ば、マッピング手順はロスレス圧縮と呼ばれる。A′がAの近似でしかなければ
、それはロッシー圧縮と呼ばれる。
【0030】 [エンコード関数] 式2のデータセットと、ACのそれらのデータセットにAをマッピングする式
3のエンコード関数とは、以下のように定義される。
【0031】
【数2】
【0032】 関数F(i,j)では、Φは値が定義されていないことを示す。G(i,j)
では、int(a)は、その独立変数aの整数部分を戻す整数関数である。Cは
基準化定数であり、通常は2kの値を有する。k=16であるとき、Cは、ai,j の絶対値を0から65,635の間の整数に基準化する。
【0033】 [デコード関数] ACのデータセットをA′にマッピングする式3のデコード関数は以下のよう
に定義され、
【0034】
【数3】
【0035】 式中、Cは、データを0から1の間に基準化する、以前に定義されたのと同じ値
である。
【0036】 [例] 3Dコンピュータグラフィックス中の典型的な変換マトリックスについては、
【0037】
【数4】
【0038】 であり、圧縮アルゴリズムを適用して、
【0039】
【数5】
【0040】 データマップ=[65516 210 1599 -1.7205 -256 65510 1907 59.7718 -1593 -19
14 65490 62.3249] を得る。
【0041】 以下のテーブルは、M×Nのマトリックス100のための、好ましい実施例で
のさまざまなテーブル302、304、306のサイズを示す。
【0042】
【表3】
【0043】 表中、pは、その値が2と等しい、ビットマップテーブル302中の要素の数で
あり、qは、その値が3である、ビットマップテーブル中の要素の数である。(
倍率が216=65,536であると仮定する。)ビットマップ中の2および3の
数がそれぞれ3個および9個であるため、この例での、合計で占められるバイト
は、16/4+16/8+3×4+9×2=36バイトである。元のサイズ64
バイトと比較すると、圧縮率は43.75%である。
【0044】 [代替的な実施例] 上述のように、好ましい実施例のデータマップ306は、整数値と浮動小数点
数値との組合せを記憶し得る。この発明の代替的な実施例は、データマップ30
6を2つの別個のテーブル(一方は整数、他方は非整数)に分けることにより、
整数値と非整数値とのこの混合を排除する。この代替的な実施例は、コンパイラ
が、一方のテーブルを整数値としておよび他方のテーブルを非整数(たとえば単
精度または二倍精度浮動小数点)値としてコンパイルするのを可能にするであろ
う。
【0045】 さらなる実施例は、特定のアニメーションまたはシミュレーションに対して、
マトリックス100内の値の範囲をテストする。このテストが、マトリックス1
00が、ある値よりも大きな整数を用いたりまたは必要としたりしないと判断す
れば、データマップ306内に記憶される整数を、より低い精度の値(たとえば
、2バイトの「長い」整数値よりもむしろ1バイトの「短い」整数)を用いて表
わすことができる。そのような技術は、ある条件下で、入手可能な圧縮率をさら
に上昇させるのに有用であろう。
【0046】 この発明は、最も実際的かつ好ましい実施例と現在考えられているものと関連
して説明されたが、この発明が開示された実施例に限定されるのではなく、これ
に対して、添付の請求項の精神および範囲内に含まれるさまざまな変更および同
等の構成に及ぶと意図されることを理解されたい。
【図面の簡単な説明】
【図1】 好ましい実施例のマトリックス圧縮および復元の発明を関連して
用いることが可能な、例示的なビデオゲームシステムを示す図である。
【図2】 この発明の好ましい実施例が提供する例示的な圧縮および復元プ
ロセス全体を示す図である。
【図2A】 例示的な記憶媒体の中身を示す図である。
【図3】 例示的な圧縮プロセスのフローチャートの図である。
【図4】 例示的な変換マトリックスを概略的に示す図である。
【図5】 例示的な復元プロセスのフローチャートの図である。
【手続補正書】
【提出日】平成13年8月16日(2001.8.16)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正の内容】
【図2】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,US,UZ, VN,YU,ZA,ZW (72)発明者 アボウ−サムラ,サミール カナダ、ブイ・6・エヌ 2・エル・9 ブリティッシュ・コロンビア、バンクーバ ー、ウェスト・サーティフィフス・アベニ ュ、2677 (72)発明者 シャンパーニュ,ロバート アメリカ合衆国、98053 ワシントン州、 レッドモンド、エヌ・イー・エイス・スト リート、21707 (72)発明者 ファム,スン・ティエン カナダ、ブイ・5・アール 6・イー・6 ブリティッシュ・コロンビア、バンクー バー、メルボルン・ストリート、ナンバ ー・1105−5183 (72)発明者 ガーリ,プラサンナ カナダ、ブイ・6・ジィ 2・ブイ・7 ブリティッシュ・コロンビア、バンクーバ ー、ダブリュ・ジョージア・ストリート、 1788、スウィート・ナンバー・101 (72)発明者 パン,ジュン アメリカ合衆国、98008 ワシントン州、 ベルビュ、エヌ・イー・トゥウェルフス、 16211 Fターム(参考) 2C001 BC05 BC08 CB01 CC02 5B056 BB00 CC00 HH03 5J064 AA02 BA00 BC02 BC29 BD04

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 変換マトリックスをエンコードする方法であって、 変換マトリックスに対応する要素を有する第1のデータ構造を提供するステッ
    プを含み、前記第1のデータ構造は、非数値表示を用いて整数「1」および「0
    」のマトリックス値をエンコードし、さらに 整数「1」および「0」のマトリックス値以外のマトリックス数値を含む第2
    のデータ構造を提供するステップを含む、方法。
  2. 【請求項2】 前記第2のデータ構造値の少なくともいくつかは基準化され
    た整数値である、請求項1に記載の方法。
  3. 【請求項3】 変換マトリックスをデコードする方法であって、 第1のデータ構造を読出して、前記マトリックスのどの値が整数「1」および
    「0」であるかを定めるステップと、 整数「1」および「0」のマトリックス値以外のマトリックス数値を含む第2
    のデータ構造を読出すステップとを含む、方法。
  4. 【請求項4】 前記第2のデータ構造値の少なくともいくつかは基準化され
    る、請求項1に記載の方法。
JP2001544274A 1999-12-07 2000-12-06 3d変換マトリックス圧縮および復元 Withdrawn JP2003516702A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16931099P 1999-12-07 1999-12-07
US60/169,310 1999-12-07
US09/493,257 2000-01-28
US09/493,257 US6591019B1 (en) 1999-12-07 2000-01-28 3D transformation matrix compression and decompression
PCT/US2000/032973 WO2001043074A1 (en) 1999-12-07 2000-12-06 3d transformation matrix compression and decompression

Publications (1)

Publication Number Publication Date
JP2003516702A true JP2003516702A (ja) 2003-05-13

Family

ID=26864948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001544274A Withdrawn JP2003516702A (ja) 1999-12-07 2000-12-06 3d変換マトリックス圧縮および復元

Country Status (7)

Country Link
US (1) US6591019B1 (ja)
EP (1) EP1159712A1 (ja)
JP (1) JP2003516702A (ja)
KR (1) KR20010113681A (ja)
AU (1) AU2060701A (ja)
CA (1) CA2362680A1 (ja)
WO (1) WO2001043074A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678120B1 (ko) * 2004-11-01 2007-02-02 삼성전자주식회사 이동통신 단말기에서 3d 애니메이션 파일을 제공하기 위한 장치 및 방법
JP2010521728A (ja) * 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド データ圧縮のための回路及びこれを用いるプロセッサ
JP2011511986A (ja) * 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド プロセッサ

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100612829B1 (ko) * 2001-07-07 2006-08-18 삼성전자주식회사 그래픽 애니메이션 데이터의 키 부호화 장치와 그 방법
WO2006120664A2 (en) * 2005-05-13 2006-11-16 Provost Fellows And Scholars Of The College Of The Holy And Undivided Trinity Of Queen Elizabeth Near Dublin A data processing system and method
WO2006128251A1 (en) * 2005-06-03 2006-12-07 The Commonwealth Of Australia Matrix compression arrangements
US8243340B2 (en) 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US20080126467A1 (en) * 2006-09-26 2008-05-29 Anwar Ghuloum Technique for transposing nonsymmetric sparse matrices
US8264407B2 (en) 2009-02-19 2012-09-11 Qualcomm Atheros, Inc. Transmitter beamforming steering matrix processing and storage
US8838051B1 (en) 2009-02-19 2014-09-16 Qualcomm Incorporated Transmitter beamforming power control
US9007263B2 (en) * 2010-09-09 2015-04-14 Qualcomm Incorporated Phase rotation techniques in a multi-user wireless communication environment
US9702979B1 (en) * 2012-08-03 2017-07-11 Rockwell Collins, Inc. Universal channel for location tracking system
GB2514397B (en) 2013-05-23 2017-10-11 Linear Algebra Tech Ltd Corner detection
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US9934043B2 (en) 2013-08-08 2018-04-03 Linear Algebra Technologies Limited Apparatus, systems, and methods for providing computational imaging pipeline
US9910675B2 (en) 2013-08-08 2018-03-06 Linear Algebra Technologies Limited Apparatus, systems, and methods for low power computational imaging
US9727113B2 (en) 2013-08-08 2017-08-08 Linear Algebra Technologies Limited Low power computational imaging
US9196017B2 (en) 2013-11-15 2015-11-24 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing noise from an image
US9270872B2 (en) 2013-11-26 2016-02-23 Linear Algebra Technologies Limited Apparatus, systems, and methods for removing shading effect from image
US10460704B2 (en) 2016-04-01 2019-10-29 Movidius Limited Systems and methods for head-mounted display adapted to human visual mechanism
US10949947B2 (en) 2017-12-29 2021-03-16 Intel Corporation Foveated image rendering for head-mounted display devices
US10762668B2 (en) 2018-12-28 2020-09-01 Intel Corporation Context-aware compression with quantization of hierarchical transform matrices

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0673573B2 (ja) 1982-10-29 1994-09-21 株式会社セガ・エンタ−プライゼス ビデオゲーム機における2次元メモリ方法
DE3783193T2 (de) * 1986-08-29 1993-07-15 Canon Kk Verfahren oder system zur verarbeitung von bilddaten.
US5033105A (en) 1987-08-11 1991-07-16 Apple Computer Video compression algorithm
US5467110A (en) 1989-05-12 1995-11-14 The Regents Of The University Of California, Office Of Technology Transfer Population attribute compression
US5119442A (en) 1990-12-19 1992-06-02 Pinnacle Systems Incorporated Real time digital video animation using compressed pixel mappings
US5206822A (en) 1991-11-15 1993-04-27 Regents Of The University Of California Method and apparatus for optimized processing of sparse matrices
NO175080B (no) * 1992-03-11 1994-05-16 Teledirektoratets Forskningsav Fremgangsmåte for koding av bildedata
US5583656A (en) 1992-12-31 1996-12-10 Eastman Kodak Company Methods and apparatus for attaching compressed look-up table (LUT) representations of N to M-dimensional transforms to image data and for processing image data utilizing the attached compressed LUTs
JPH09153146A (ja) 1995-09-28 1997-06-10 Toshiba Corp 仮想空間表示方法
US5990899A (en) 1995-10-27 1999-11-23 Microsoft Corporation Method for compressing journal streams
US5781779A (en) 1995-12-18 1998-07-14 Xerox Corporation Tools for efficient sparse matrix computation
US5867612A (en) * 1996-03-27 1999-02-02 Xerox Corporation Method and apparatus for the fast scaling of an image
US5778092A (en) * 1996-12-20 1998-07-07 Xerox Corporation Method and apparatus for compressing color or gray scale documents
US5907297A (en) 1997-02-28 1999-05-25 Oracle Corporation Bitmap index compression
US6160558A (en) 1997-03-06 2000-12-12 Fujitsu Limited Animation creating method and system, and animation reproducing method and system
US5996033A (en) 1997-09-04 1999-11-30 Chiu-Hao; Cheng Data compression device comprising input connector for connecting to game player system, output connector for connecting to memory card, and virtual memory page switch
JP2000175053A (ja) * 1998-12-07 2000-06-23 Xerox Corp 文書の圧縮ピクセルマップ表現を表す混合ラスタコンテントプレ―ンの処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100678120B1 (ko) * 2004-11-01 2007-02-02 삼성전자주식회사 이동통신 단말기에서 3d 애니메이션 파일을 제공하기 위한 장치 및 방법
JP2010521728A (ja) * 2007-03-15 2010-06-24 リニア アルジェブラ テクノロジーズ リミテッド データ圧縮のための回路及びこれを用いるプロセッサ
JP2011511986A (ja) * 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド プロセッサ

Also Published As

Publication number Publication date
WO2001043074A1 (en) 2001-06-14
US6591019B1 (en) 2003-07-08
CA2362680A1 (en) 2001-06-14
EP1159712A1 (en) 2001-12-05
KR20010113681A (ko) 2001-12-28
AU2060701A (en) 2001-06-18

Similar Documents

Publication Publication Date Title
JP2003516702A (ja) 3d変換マトリックス圧縮および復元
US8542243B2 (en) High-compression texture mapping
US7656401B2 (en) Techniques for representing 3D scenes using fixed point data
JP4846120B2 (ja) スケルトンアニメーションのステッチングハードウェアを有するグラフィクス装置
US6256041B1 (en) Decompression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US6215500B1 (en) Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US11496773B2 (en) Using residual video data resulting from a compression of original video data to improve a decompression of the original video data
EP3776218B1 (en) Machine learning applied to textures compression or upscaling
JP2000132704A (ja) 画像情報処理装置及び方法
CA2163839A1 (en) Method and apparatus for mapping texture
TW200809688A (en) A system for reducing bandwidth requirements for transferring graphics data and its related method
US7961195B1 (en) Two component texture map compression
JPH11316854A (ja) 三次元グラフィックスパイプラインのためのデータ編成システム及び方法
US6304935B1 (en) Method and system for data transmission in accelerated graphics port systems
US8918440B2 (en) Data decompression with extra precision
JP4017467B2 (ja) 三角形メッシュデータの圧縮方法及びプログラム
EP0889440A2 (en) Method and apparatus for geometric compression of three-dimensional graphics
US20020122035A1 (en) Method and system for parameterized normal predictive encoding
JPH1173527A (ja) グラフィカル・オブジェクトの規則的にタイリングされた表面部分を表現する3次元幾何データの圧縮および伸張
US11948338B1 (en) 3D volumetric content encoding using 2D videos and simplified 3D meshes
JPH09292927A (ja) 関数発生器
Krajcevski Improved encoding for compressed textures
Jong et al. An Improvement of Connectivity Compression for Triangular Meshes
Nowrouzezahrai et al. Shadowed Relighting of Dynamic Geometry with 1D BRDFs.
Rossignac Dealing with Shape Complexity for Internet Access and Graphic Applications.

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: 20080304