JP4384813B2 - 時間依存ジオメトリの圧縮 - Google Patents

時間依存ジオメトリの圧縮 Download PDF

Info

Publication number
JP4384813B2
JP4384813B2 JP2000553881A JP2000553881A JP4384813B2 JP 4384813 B2 JP4384813 B2 JP 4384813B2 JP 2000553881 A JP2000553881 A JP 2000553881A JP 2000553881 A JP2000553881 A JP 2000553881A JP 4384813 B2 JP4384813 B2 JP 4384813B2
Authority
JP
Japan
Prior art keywords
mesh
matrix
geometric transformation
meshes
geometry
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.)
Expired - Lifetime
Application number
JP2000553881A
Other languages
English (en)
Other versions
JP2002517851A (ja
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002517851A publication Critical patent/JP2002517851A/ja
Application granted granted Critical
Publication of JP4384813B2 publication Critical patent/JP4384813B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/001Model-based coding, e.g. wire frame
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Generation (AREA)

Description

【0001】
発明の分野
本発明はコンピュータ生成グラフィックスに関し、さらに具体的には、時間依存 (time dependent) ジオメトリック(幾何図形)データの圧縮に関する。
【0002】
発明の背景
3次元 (3D) グラフィックスでは、移動するオブジェクトは3Dジオメトリックモデル(geometric model−幾何モデルまたは図形モデル)を使用してモデリングされている。これらのモデルは、3D空間におけるオブジェクトの表面を表している表面要素 (surface element) のメッシュの位置を定義している3D座標の集合として表現されているのが代表的である。3Dオブジェクトモデルを含んでいるシーンをレンダリング (rendering) するために、グラフィックスレンダリングパイプライン(graphics rendering pipeline) は、最初に、一連のジオメトリック変換(geometric transformation−図形変換)を実行してモデルをローカル座標空間からシーンのグローバルまたは「ワールド」座標系に変換してから2Dビュー空間のビューイングまたは「カメラ」座標に変換している。次に、変換されたジオメトリとその属性(カラー、陰影など)を出力イメージ(画像、映像など。以下「画像」という)を表すピクセル値の配列に変換している。このプロセスは、オブジェクトモデルがシーンの周りを移動するとき、アニメーションシーケンスの画像フレームごとに繰り返されているのが代表的である。
【0003】
移動するグラフィカルオブジェクトは時間依存ジオメトリ (time-dependent geometry) の形で表現されている。モデルの3D位置を表しているメッシュは時間の経過と共に移動し、変形して、3Dオブジェクトの動き(モーション)をシミュレートしている。アニメーションで3Dジオメトリの動きを描写するために使用される動きモデル (motion model) にはいくつかがある。比較的単純なオブジェクトは剛体 (rigid body) でジオメトリック変換を使用してモデリングすることができる。しかし、計算能力が向上し、より現実的なアニメーションの要求に伴い、複雑なアニメーションモデルをリアルタイムでプレイバックするようなアプリケーションの要求が高まっている。
【0004】
Avid Technology, Inc. 提供のSoftimageモデリングツールのような、精巧なオーサリングツール (authoring tool) やモデリングプログラムは、非常に複雑な時間依存ジオメトリを作成する能力を備えている。複雑に移動するジオメトリシーメーンスは、フリーフォーム変形格子 (free-formed deformation lattice)、ジョイントエンベロープ (joint envelope)や物理的シミュレーション、その他の操作によって作ることが可能になっている。アニメーション変換 (animated transformation) による単純な剛体モデル以上のものがリアルタイプアプリケーションに要求されることに伴い、複雑なアニメーションモデルをリアルタイムのパフォーマンスで効率的にストアし、プレイバックする方法を開発することがますます緊急になっている。
【0005】
オーサリングツールがますます精巧化されていることのほかに、3Dキャプチャシステム (capture system) の進歩により、3Dグラフィックスアプリケーションで使用される時間依存ジオメトリもさらに複雑化することが見込まれている。ここで、「3Dキャプチャ」という用語は、現実モデルのデジタル化3Dモデルを生成するプロセスのことを意味している。現在は、スタチック(静的)ジオメトリ集合はレンジスキャナ (range scanner) で得ている。しかし、レンジスキャナの精度とスピードが向上するのに伴い、大きな時間依存ジオメトリックメッシュのソースが増加している。シミュレーションは、リッチなアニメーションジオメトリを得る別のソースになっている。有限要素 (definite element) 法によると、現実的で複雑なアニメーションが得られるが、リアルタイムで計算するにはコストがかかりすぎる。
【0006】
複雑な時間依存ジオメトリを得るソースが普及するのに伴い、必要なメモリ量と帯域幅を低減化するために時間依存ジオメトリをもっと効率よくストアし、伝達するための方法に対する要求が高まっている。研究者は、スタチックジオメトリを圧縮する方法を研究している。参考文献として、Michael F. Deering著「ジオメトリック圧縮(Geometric Compression)」(pp. 13-20, SIGGRAPH 95)、Mike M. Chow著「リアルタイムレンダリングのための最適化ジオメトリ圧縮(Optimized Geometry Compression for Real-Time Rendering)」(pp. 347-354, Proceedings of IEEE Visualization, 97)、Stefan Gumhold、Wolfgang Strasser共著「トライアングルメッシュ接続性のリアルタイム圧縮(Real Time Compression of Triangle Mesh Connectivity)」(pp. 133-140, SIGGRAPH 98)、Gabriel Taubin、Jarek Rossignac共著「トポロジカルサージャリによるジオメトリック圧縮(Geometric Compression Through Topological Surgery)」(ACM Transactions on Graphics, Vol. 17, No. 2, April 1998, pp. 84-115)、Gabriel Taubin、Andre Gueziec、William Horn、Francis Lazarus共著「プログレッシブフォレストスプリット圧縮(Progressive Forest Split Compression)」(pp. 123-132, SIGGRAPH 98)、Costa Touma、Crag Gotsman共著「トライアングルメッシュ圧縮(Triangle Mesh Compression)」(Proceedings of Graphics Interface, ’98, pp. 26-34)、およびFrank Bossen(編者)「3Dモデルコーディングでのコア実験の説明(Description of Core Experiments on 3D Mode Coding)」(ISO/IEC JTC!/SC29/WG11 MPEG98/N244rev1, Atlantic City, October 1998)がある。この研究では、スタチックジオメトリの圧縮が対象になっているが、移動する3Dジオメトリストリームを圧縮する方法を開発するには、もっと多くの作業が必要である。
【0007】
3Dジオメトリの圧縮とは対照的に、静止画像と移動画像圧縮の分野は十分に開発されている。静止画像の圧縮のために使用できる手法には、ランレングス符号化 (run-length encoding)、JPEG符号化などのように、さまざまな手法がある。画像シーケンスの圧縮手法も、MPEG、AVIなどのように多数の手法がある。研究者は、3Dジオメトリを使用してムービー(動画)圧縮を支援する手法も提供している。参考文献としては、Brian K. Guenter、Hee Cheol Yun、Russell M. Mersereau共著「コンピュータアニメーションフレームの動き補償圧縮(Motion Compensated Compression of Computer Animated Frames)」(pp. 297-304, SIGGRAPH ’93)、Mark Levoy著「合成画像のポリゴン支援JPEGおよびMPEG圧縮(Polygon-Assisted JPEG and MPEG Compression of Synthetic Images)」(pp. 21-28, SIGGRAPH ’95)、およびDan S. Wallach、Sharma Kunapalli、Michael F. Cohen共著「ダイナミックポリゴナルシーンの高速MPEG圧縮(Accelerated MPEG Compression of Dynamic Polygonal Scenes)」(pp. 193-197, SIGGRAPH ’94) がある。
【0008】
ある側面では、従来のグラフィックスレンダリングパイプレインによる手法では、アニメーションオブジェクトが一連のアニメーション変換マトリックスを使用して変換されるスタティックな剛体で表されている場合、アニメーションジオメトリの圧縮が行われている。このケースでは、時間依存ジオメトリックモデルは、剛体を表すシングルメッシュと、時間の経過と共に剛体の動きを記述する一連のアニメーション変換マトリックスにレンダリングされている。このように単純にコヒーレント部分に分割すると、移動するオブジェクトは剛体の階層として構築できるので大きな時間依存アニメーション群の符号化 (encode) が可能になっている。この方法によると、限られたクラスの時間依存ジオメトリは効率よく圧縮されるが、もっと複雑なアニメーションモデルをもっと一般化され、フレキシブルな方法で圧縮するという要求には、十分に応えていない。複雑な動きの形態によっては、剛体の階層および関連変換マトリックスの使用によるシミュレーションに適さないものがある。さらに、モデルによっては、剛体から構築されないものがあり、むしろ、これらのモデルは、オーサリングツールや3Dキャプチャツールのように、ジオメトリが剛体の形で表されていないジオメトリソースから得られている。
【0009】
発明の概要
本発明は、時間依存ジオメトリおよびアニメーションをコード化 (code) する方法を提供している。本発明の側面は、アニメーション3Dオブジェクトだけでなく、時間以外の次元と共に変化する3Dアニメーションも表している時間依存メッシュのエンコーダ(符号器)およびデコーダ(復号器)で実現されている。これらの手法を使用すると、3Dジオメトリストリームのストアと転送が効率化される。これは、コンピュータシステム内で使用すると、ホストプロセッサまたはストレージデバイスとグラフィックスレンダリングエンジン (graphics rendering engine) との間の帯域幅が低減されるので便利である。また、ローカルエリアネットワーク (local area network − LAN) や広域ネットワーク (wide area network − WAN) 上のコンピュータ相互間の伝送帯域幅を低減する上でも便利である。さらに、これらの手法は、ジオメトリストリームが生成され、符号化され、その後、即時プレイバックのために復号化されるアプリケーションのように、ジオメトリストリームが時間的拘束の中で符号化されるような、ダイナミック圧縮コンテキストで使用すると便利である。
【0010】
一般的に、本発明の圧縮方法によれば、ジオメトリストリームは、そのストリームの低パラメータモデルを得るように分解し、その残余を符号化することによってコード化されている。圧縮器 (compressor) は、オブジェクトの3D位置を選択したタイムサンプル (selected time samples) で表している時間依存ジオメトリ構造に作用する。具体的には、以下で説明するコーダ (coder) は、アニメーションシーケンス内の一連のタイムサンプルに対するメッシュの3D位置を表している頂点 (vertex) 位置(マトリックスの列)のマトリックスを圧縮することが中心になっている(マトリックスの行は選択したタイムサンプルでのメッシュを表している)。圧縮器 (compressor) は各タイムサンプルのメッシュに近似化し、その近似化メッシュとマトリックスの行からの実際のメッシュとの間の残余 (residual) を復号化 (decode) する。また、圧縮器は、ジオメトリまたはベースメッシュ (base mesh) のコヒーレント部分、残余、およびメッシュに近似化するために使用されるパラメータを符号化する。伸張器 (decompressor) は、圧縮されたジオメトリストリームを復号化し、選択したタイムサンプルのときのメッシュを、コヒーレント部分、残余および各メッシュに近似化するために使用されたパラメータから再構築する。
【0011】
コーダの一形態として、ジオメトリック変換コーダ (geometric transform coder)、もっと具体的には、メッシュ変換コーダ (mesh transform coder) と呼ばれているものがある。このコーダは、入力マトリックス内の各メッシュと変換されたベースメッシュとの差分 (difference) を決定することによって残余を符号化している。ジオメトリック変換は、ベースメッシュと、カレントタイムサンプルのときのメッシュとの間の動きに近似化するために使用されている。ジオメトリック変換はコーダに与えることも、ベースメッシュを各タイムサンプルでのメッシュにマッチング(合致させること)することによって導き出すことも可能である。同様に、ベースメッシュはコーダに与えることも、頂点位置の入力マトリックスから導き出すことも可能である。
【0012】
別形態のコーダとして、列/行予測器 (column/row predictor) がある。この形態のコーダは、時間依存ジオメトリを表すマトリックスでコヒーレンスを利用している。例えば、頂点位置のマトリックスの時間的コヒーレンス (temporal coherence) は、マトリックス内の隣接行 (neighboring rows) 間の差分を符号化することによって利用できる。空間的コヒーレンス (spatial coherence) は、マトリックス内の隣接列 (neighboring columns) 間の差分を符号化することによって利用できる。コード化効率を向上するには、行と列は、隣接行/列間の差分が最小限になるようにソートすることができる。列と行の予測は頂点位置を表すマトリックスに適用され、この中には、入力マトリックス、残余マトリックス、およびこれらのマトリックスのどちらかを主要コンポーネント分析 (principal component analysis) することで得られる重み (weight) マトリックスが含まれている。
【0013】
さらに別形態のコーダとして、基底分解コーダ (basis decomposition coder) がある。主要コンポーネント分析を使用して、時間依存ジオメトリのマトリックスは、基底ベクトルと重みに分解される。基底ベクトルと重みは、オリジナルマトリックスの近似を基底ベクトルと重みから再構築し、その後オリジナルマトリックスと近似マトリックスとの差分を符号化することによって、残余を計算するために使用できる。この形態のコーダでは、残余は基底ベクトルおよび重みと一緒に符号化される。別の基底分解コーダでは、時間依存ジオメトリのマトリックスは基底ベクトルと重みに分解され、その後、重みで列/行予測が使用されて重みが符号化されている。
【0014】
さらに別形態のコーダでは、時間依存ジオメトリのマトリックスは時間依存ジオメトリを階層空間−時間ピラミッド (space-time pyramid) として表しているデータ構造に変換されている。このデータ構造は、空間と時間詳細レベル(level of detail) と、各詳細レベル間のデルタを符号化している。これが一種の圧縮であるのは、マトリックスのサイズが大きくなっても、デルタが小さいからである。
【0015】
この空間−時間詳細レベルを表現すると、特定の空間−時間構成で必要になる空間的または時間的精細化 (spatial or temporal refinements) だけを、エンコーダからデコーダに送ればよいので、送信期間中に別形態の圧縮が得られることになる。圧縮表現全体を送信するのではなく、デコーダは、要求された詳細レベルをフィードバックチャネルでデコーダに送信し、その後、エンコーダは、空間−時間のカレント領域用に要求された詳細レベルを達成するために必要な精細化だけを送信する。
【0016】
空間と時間にわたるアニメーションを符号化するために使用される原理は、他の次元にも応用可能である。例えば、時間次元の代わりに、ジョイントアングル(関節角度)、回転軸、並行移動軸などの、別の次元にわたってジオメトリストリームを符号化することが可能である。このケースでは、ジオメトリは空間次元と新次元(例えば、時間次元の代わりに)内に階層的に符号化される。このように次元に沿って符号化することをインタラクティブアニメーションで利用すると、ユーザはアニメーションオブジェクトの動きを次元に沿って制御できるので便利である。ユーザがこの次元に沿う詳細レベルを指定して入力すると、コーダは該当詳細レベルをジオメトリの階層表現からどのように抽出するかを指定している更新レコードを計算する。
【0017】
上述したコード化手法は、アニメーションで使用される他の形態のジオメトリックデータにまで拡張可能である。例えば、これらの手法はテクスチャ座標 (texture coordinate) のコード化に応用されている。
【0018】
以下では、本発明の特徴の理解を容易にするために、添付図面を参照して詳しく説明することにする。
【0019】
詳細説明
序論
アニメーション3Dオブジェクトの動きを記述する時間依存ジオメトリは、次に示す3D位置のマトリックスPで表すことができる。
【0020】
【数1】
Figure 0004384813
【0021】
マトリックスPの各列は、3Dメッシュの頂点位置のように、3D位置を表している。行は、アニメーションシーケンスのフレームのように、時間のインクリメント(増分)を表している。マトリックスの各要素のスーパスクリプトは3D位置を示し、この表記では、列番号に対応している。マトリックス内の各要素のサブスクリプトはタイムインクリメントを示し、マトリックスの行番号に対応している。マトリックスPが空間的に連続していると考えると、あるオブジェクトの3D表面を完全に記述する3D位置(列)は、概念的には、無限個数(infinite number)になる。実際には、アニメーションの各タイムインクリメントの3D位置は有限個数(finite number)であり、位置は、その時点でのアニメーションのジオメトリック詳細レベルに対応している。マトリックスPが時間的に連続していると考えると、行は、概念的には、無限個数になる。グラフィックレンダリングパイプラインでは、当然のことであるが、3Dモデルは離散的時間で出力画像にレンダリングされ、最も起こり得ることは、フレームレートのように周期的レートで出力画像にレンダリングされている。ある種のアーキテチャでは、オブジェクトの更新レートが変化し得るため、各行はアニメーションシーケンスのフレームに対応している必要がない。もっと一般化された表現では、行はタイムサンプルに対応しているだけである。
【0022】
マトリックスPは、次式に示すように3つのコンポーネントに因数分解 (factorize) することができる。
【0023】
【数2】
Figure 0004384813
【0024】
コンポーネントGは、低レベルのグラフィックスハードウェアに実装されているポリゴン補間 (polygon interpolation) または表面パッチ補間 (surface patch interpolation) である。コンポーネントSは時間を通るマトリックスの補間である。言い換えれば、時間補間コンポーネントは、3Dモデルが出力画像にレンダリングされるときの離散的時間を指定している。空間的および時間的詳細レベルをジオメトリ補間関数と時間補間関数で制御すると、任意の空間−時間ポリトープ (polytope) はこの公式を使用して符号化することができる。
【0025】
時間とジオメトリ補間コンポーネントはグラフィックスレンダリングハードウェアに実装されているのが代表的であるので、以下に説明する圧縮手法では、頂点位置マトリックスVが中心になっている。
【0026】
頂点位置マトリックスVの各列は、単一頂点の動きを記述している。
【0027】
【数3】
Figure 0004384813
【0028】
マトリックスVの列は頂点位置を表している。具体的には、マトリックスVの各要素のスーパスクリプトは頂点であることを示している。マトリックスVの行はタイムサンプルを表している。マトリックスVの各要素のサブスクリプトはタイムサンプルであることを示している。
【0029】
汎用重み付け軌跡 (Generic Weighted Trajectories)
以下に説明する手法はすべて、次のメッシュアニメーション手法を特殊化したものと考えることができる。
【0030】
【数4】
Figure 0004384813
【0031】
アフィン変換 (Affine Transformations)
代表的なグラフィックスアーキテクチャでは、マトリックスVは、剛体オブジェクトの階層に因数分解されている。これが、上述したもっと一般化されたマトリックスVに比べて小さなクラスの移動ジオメトリであるのは、特定タイプの動き、つまり、剛体で行われる一連のアフィン変換 (affine transform) に限定されているためである。この概念を具体例で示すと、剛体動きのマトリックスVの特殊ケースは次式で表すことができる。
【0032】
【数5】
Figure 0004384813
【0033】
このケースでは、剛体の時間依存ジオメトリックマトリックスPR = VRGは、3つのコンポーネントに因数分解されている。すなわち、アフィン変換、剛体、およびジオメトリ補間である。左側のマトリックスはアフィン変換を表し、各行はアニメーションのフレームに対応し、各列は剛体のアフィン変換に対応している。上式では、左側マトリックスのアフィン変換が唯一の変化する項であり、フレームごとに更新される。上に示す剛体の各々は剛体構造を構成する頂点の集合からなり、アフィン変換の列が剛体構造と関連付けられている。ジオメトリ補間コンポーネントは各剛体の補間関数からなり、この補間関数は剛体内の頂点にストアされた属性を保管して、デバイス座標を出力するために使用される。
【0034】
グラフィックスレンダリングアーキテクチャには、基本タイプとして即時モード (immediate-mode) アーキテクチャと保存モード (retained-mode) アーキテクチャの2つがある。即時モードアーキテクチャでは、頂点とジオメトリック接続性マトリックス (geometric connectivity matrix) 全体がフレームごとに再送信される。このプロセスによると、3Dジオメトリレンダリングシステムにフレームごとに送信する必要のあるデータが大量であるために、大量の帯域幅が必要になる。これとは対照的に、保存モードアーキテクチャでは、頂点とジオメトリック接続性マトリックスは、あるシーケンスのフレームの間一度だけ送信され、フレームごとに剛体の位置をどのように変更すべきかを3Dレンダリングサブシステムに通知するために使用される変化アフィン変換が符号化される。
【0035】
事実、マトリックスVの列を、コヒーレントな動きをもつ剛体の集合にセグメント化することが1つの圧縮方式となっているのは、この方式によると、3Dジオメトリのフレーム間の(frame to frame)変化がアフィン変換で符号化できるからである。しかし、この動きモデルが適用されるのは、その動きがアフィン変換の形で定義できる剛体に限られているという点で、この方式はどちらかと言えば、制約的である。以下のセクションでは、アニメーション剛体に限定されない、より一般化された頂点位置の時間依存マトリックスを圧縮する方法について説明する。
【0036】
フリーフォーム変形 (Free-Form Deformations)
より一般化されたグラフィックスアーキテクチャによれば、剛体の動きの制約は、より一般化されたパラメータ化変形 (parameterized deformation) をサポートすることによって解消している。より一般化された3D動きモデルの例としては、フリーフォーム変形格子 (free-form deformation lattice) をもつ逆キネマチックリンケージ (inverse-kinematic linkage) がある。この形態の動きモデルは文字アニメーションで広く使用されている。次の式は、一般的時間依存ジオメトリマトリックスがこのより一般化された動きモデル用にどのように因数分解されるかを示している。時間依存ジオメトリマトリックスの係数としては、変形関数Fのマトリックス、一連の剛体V、および剛体の各々ごとに対応する一連のジオメトリ補間関数Gがある。
【0037】
【数6】
Figure 0004384813
【0038】
左側のマトリックスの変形関数は、剛体を構成する頂点の集合の動きを定義するパラメータが少数になっているのが代表的である。各変形関数のこれらの動きパラメータは時間を通るようにスプラインされることが時にはあるが、ユーザ入力から計算されて、アニメーションシーケンス内のフレームに対する剛体の位置が決定されることもある。上式において、変形関数Fと対応する剛体
【0039】
【数7】
Figure 0004384813
【0040】
との乗算は、変形関数Fを剛体の頂点に適用していることを示している。
【0041】
【数8】
Figure 0004384813
【0042】
キー形状 (Key Shapes)
もう1つの有用な圧縮手法は、マトリックスを基底関数と重みに分解することである。この手法は、主要コンポーネント分析またはKL変換 (Karhunen-Loeve) といった、いくつかの名前で通っている。
【0043】
【数9】
Figure 0004384813
【0044】
この変換によると、データの相関性が最大限になくなり、正規直交の基底 (orthonormal basis) が得られる。しかし、KL手法はデータの非線形変換をキャプチャすることができない。z軸を中心にスピンしながらx方向に並行移動する剛体形状を想像してみると、この単純な回転と並行移動をキャプチャするように結合できる基底形状 (basis shape) の集合が存在しない。
【0045】
スキンニング (skinning)
もう1つ広く使用されている手法は各頂点で「スキンニング」重みβjを使用して、移動する「ボーン(bone)」座標フレームCi がメッシュをどのように変形するかを決定することである。代表例として、重みのほとんどはゼロであるので、頂点当たりの重みマトリックスはスパース (sparse) になっている。この手法の利点は、単一静止形状 (rest shape) が、関心のある領域の近くに埋め込まれている座標フレームの集合によって変形できることである。初期フレームの逆がカレント座標フレームに事前付加されていると、「ボーン」座標フレームが得られる。
【0046】
【数10】
Figure 0004384813
【0047】
特殊ケース重み付け軌跡 (Special-Case Weighted Trajectories)
時間依存ジオメトリは、3D空間内の選択したコントロールポイントの動きを通して、これらのコントロールポイントとメッシュ内の頂点とのアソシエーションと共に表現することもできる。参考文献としては、Brian Guenter、Cindy Marie Grimm、およびHenrique Sarmento Malvar(以下、Guenter他という)による係属中の米国特許出願第09/093,590号、発明の名称「3Dジオメトリ、表面表現のカラーと陰影および他のアニメーションオブジェクトをキャプチャし表現する方法およびシステム (Method and System For Capturing And Representing 3d Geometry, Color And Shading Of Facial Expressions And Other Animated Objects)」があるが、その内容全体は引用により本明細書に含まれている。Guenter他では、コントロールポイントの動きが関連頂点に適用されてメッシュを変形している。あるフレームから別のフレームへのコントロールポイントの動きは、軌跡 (trajectory) と呼ばれている。
【0048】
コントロールポイントをこのように使用することは、一般的に、種々のグラフィックスアプリケーションに応用可能であるが、Guenter他では、コントロールポイントは人間の顔を表している時間変化ジオメトリを符号化するために使用されている。Guenter他では、俳優の顔の動きは、基準 (fiducial) 「ドット」を付加し、その後ビジョン手法を使用してドットの動きを回復することによって回復されている。また、Guenter他では、静止位置で俳優の顔を表しているスタチック3Dメッシュを、従来の3Dキャプチャシステムを使用してキャプチャしている。Guenter他では、これらのドットをコントロールポイントとして使用し、次のようにドットの動きを適用してメッシュを変形している。
【0049】
【数11】
Figure 0004384813
【0050】
Guenter他では、この因数分解は、ドット軌跡の主要コンポーネントを計算し、その結果の係数をコード化することによってさらに圧縮されている。
【0051】
【数12】
Figure 0004384813
【0052】
この符号化方式では、ドット軌跡にキー形状を使用してから、ドットの動きを頂点の残余に適用している。
【0053】
セグメンテーション (segmentation)
最初のステップは、頂点マトリックスVのどの列をローカル座標系で符号化するかを決定することである。ある種のアニメーションでは、モデリングパッケージからこの情報が得られるようになっている。いくつかの現行アニメーションパッケージは「ボーン」と「スキンニング」を使用し、座標フレームは最終頂点位置が得られるように重み付けされている。汎用アニメーション(シミュレーション、シェープカメラ (shape camera) などの出力)では、分解を良好にするために入力頂点マトリックスが分析されている。「ボーン」の数をランタイムシステム用に変更する必要があるときは、自動分析によると便利である。このクラスタリング問題は、学習、ベクトル量子化、および他の圧縮手法でよく起こっている。本件のケースでは、ベクトルは頂点マトリックスの列から構成されている。問題は、クラスタがいくつ必要であり、どのクラスタを各クラスタに所属させるかを決定することである。もう1つの問題は、変形のクラスをクラスタごとに決定することである。
【0054】
クラスタセグメンテーション問題は次の通りである。頂点マトリックスVが与えられているとき、クラスタの数nclusterと、各頂点のクラスタ割り当てのリストが戻される。複数の割り当てが許されるので、各頂点はあるクラスタの集合に所属し、関連の重みをもつことができる。各クラスタは関連の時間変化座標フレームCをもち、これは所与であるか、あるいはクラスタのメンバである頂点に基づいて計算されたものである。
【0055】
【数13】
Figure 0004384813
【0056】
プロトタイプのセグメンテーションアルゴリズムでは、オリジナルメッシュのトライアングルをベースにした貪欲クラスタリング手法 (greedy clustering approach) を使用している。シードトライアングル (seed triangle) の集合はランダムに選択されている。トライアングルは、必要ならば、すべてをシードトライアングルとして使用できるが、以下に説明する実験では、メッシュ内のオリジナルトライアングルの約10%が使用されている。シードトライアングルの座標フレーム軌跡が比較され、所与の許容範囲内にあれば、クラスタは結合される。頂点の軌跡は、その結果得られたクラスタの各々のローカル座標系に投影され、軌跡を通るマッチング (match)の品質別に分類される。
【0057】
ジオメトリック変換コード化 (Geometric Transform Coding)
ジオメトリック変換コード化 とは、3Dジオメトリの動きをジオメトリック変換で近似化し、その後、アニメーションシーメンス全体にわたる選択されたタイムサンプル期間の、変換された3Dジオメトリと3Dジオメトリの実際位置との差分を符号化することによって時間依存ジオメトリを圧縮する方法のことである。これらのタイムサンプルはアニメーションシーケンスの時間に対応し、そこでは、オブジェクトの位置が更新されている(フレームごとに更新されるとは限らない)。アニメーションシーケンスの時間依存ジオメトリは一連の3Dメッシュとして表され、各々はアニメーション内の特定タイムサンプルでの頂点位置の集合を示している。この形態の時間依存ジオメトリの具体例として、上述した頂点位置マトリックスVがある。このジオメトリック変換コード化方法は基底メッシュを選択することから始まる。次に、基底メッシュとアニメーション内のメッシュの各々との間の、ジオメトリック変換が決定される。時間依存ジオメトリを圧縮するために、この方法によれば、変換された基底メッシュと実際のメッシュとの間の差分が決定され、この差分は残余 (residual) と呼ばれる。
【0058】
ジオメトリック変換コード化手法は、時間依存ジオメトリがアニメーション剛体から構成されている特殊ケースと競合関係にある。この特殊ケースでは、基底メッシュは剛体に対応し、ジオメトリック変換は、アフィン変換や格子フリーフォーム変換のように、剛体に適用される動きモデルに対応している。この概念を示すために、一緒にアニメーション化される頂点のブロック、すなわち、アフィン変換やフリーフォーム変形格子をもつ逆キネマチックリンケージのように、単純化クラスの移動ジオメトリのどちらかにおける剛体に対応している列のブロックを考えてみることにする。このケースでは、変換されたベース剛体とカレントメッシュの間にどれだけのひずみがあるかは、残余から分かるようになっている。以下の式は、変形関数Fが剛体
【0059】
【数14】
Figure 0004384813
【0060】
に適用された場合の、残余の計算を示している。
【0061】
【数15】
Figure 0004384813
【0062】
アニメーションシーケンスの時間依存ジオメトリが変形関数を剛体に適用することによって作られる場合は、ひずみがなくなる。以下に説明するジオメトリック変換コード化方法がもっと一般的であるのは、動きをもっと一般的な形で表現でき、変換関数または時間依存ジオメトリの剛体部分がコード化時に分かっていないような、任意のメッシュを符号化するのに適応できるからである。
【0063】
時間依存ジオメトリを表している所与のデータ集合を圧縮するには、ジオメトリック変換方法では、変形パラメータ、ベースメッシュまたはメッシュ、および残余を量子化し、符号化している。時間依存ジオメトリが単純化サブクラス(剛体または格子FFD)の1つに合致するときは、残余はゼロであるので、符号化するときのオーバヘッドは非常に低くなる。
【0064】
ジオメトリックコード化方法は単独で使用することも、時間依存ジオメトリマトリックスVのコヒーレンスを活用するために下述する他の圧縮手法と併用することも可能である。時間依存ジオメトリマトリックスの時間的および空間的コヒーレンスをさらに活用するための1つの方法は、マトリックスVの行と列の中からコヒーレンスを特定し、符号化することである。時間依存ジオメトリをコード化する方法は、以下で説明するように、単純化された動きモジュールに内在する圧縮を改善し、しかも、現行3Dグラフィックスレンダリングアーキテクチャとの互換性を維持したまま、もっと複雑な動きモデルに応用可能である。
【0065】
図1は、メッシュ変換コーダの例を示すブロック図である。図1には、時間依存ジオメトリがどのように符号化されて伝送またはストアされた後、どのように復号化されるかを示すために、圧縮器 (compressor) 20と伸張器 (decompressor) 40の両方が示されている。圧縮器20への入力には、3種類ある。時間の経過と共に変化するメッシュ頂点の位置を表しているマトリックスVと、ベースメッシュVと、ベースメッシュを、時間依存マトリックスV内のメッシュとマッチングするジオメトリック変換 (”xfm”) である。圧縮器はジオメトリック変換の変換パラメータ、ベースメッシュ、および残余を量子化し、符号化する。伸張器で再構築されるメッシュのひずみを最小限にするために、圧縮器は量子化/量子化解除変換 (quantized/de-quantized transformation) とベースメッシュパラメータを使用して残余を計算する。
【0066】
このエンコーダでのベースメッシュは、剛体を表す頂点のメッシュになることを目的としている。しかし、一部の実施形態では、ベースメッシュはコーダに与えられないので、これは時間依存ジオメトリVのストリームから導き出す必要がある。このような場合には、ベースメッシュは、マトリックスVの行をベースメッシュとして使用するか、Vの複数行の平均をベースメッシュとしてとるか、あるいは変換パラメータと残余のための結合帯域幅が最小になるようにベースメッシュを事前に計算することで、計算することができる。後者の方法によると、変形パラメータとベースメッシュの両方は同時に非線形的に最適化される。
【0067】
図1に圧縮器への入力として示されているジオメトリック変換 (”Xfm”) は、選択したタイムサンプルインクリメントでベースメッシュの位置を新しい位置に変換するために使用されるジオメトリック変換パラメータの集合である。従来のグラフィックスレンダリングパイプラインでは、選択したタイムインクリメントはアニメーションシーケンス内のフレームに対応しているのが代表的である。しかし、もっと一般的には、タイムインクリメントは、変化するレートでオブジェクトの更新を可能にするレンダリングアーキテクチャと互換性をもつように、タイムサンプルに対応させることも可能である。変換パラメータは、タイムサンプルごとにベースメッシュを新しい位置に変換するために使用されるので、各サンプルは対応する変換パラメータの集合をもっている。ベースメッシュが剛体を表している場合には、変換パラメータは、アフィン変換や一般的フリーフォーム変換のように、剛体をそのローカル座標系からアニメーショングラフィックスシーンのワールド座標に変換するジオメトリック変換を表している。
【0068】
圧縮器20は、変換パラメータとベースメッシュの3D位置値を、それぞれ量子化する量子化モジュール22、24を備えている。また、圧縮器は変換パラメータとベースメッシュの3D位置値を量子化解除するために使用される量子化解除器26、28も備えている。圧縮器20に示されている変換モジュール30は、量子化解除変換パラメータを量子化解除3D位置値に適用して、時間依存ジオメトリのカレント位置に近似化している変換メッシュを出力する。その後、減算器モジュール32は変換ベースメッシュの値と、マトリックスVの対応する要素との差分を計算する。具体的には、減算器モジュールは、量子化解除され、変換されたベースメッシュの頂点と、カレントタイムサンプルのときの頂点位置マトリックスVの行の頂点との差分を計算する。
【0069】
圧縮器20の出力には、タイムサンプルごとの量子化変換パラメータと量子化ベースメッシュが含まれており、これは圧縮データストリームの先頭で一度送信される。この出力には、量子化器34で計算された量子化残余も、タイムサンプルごとに含まれている。従って、圧縮データストリームは、アニメーションシーケンスに対してベースメッシュを一度符号化し、アニメーションシーケンス内の各フレームのように、アニメーションシーケンスに含まれる複数のタイムサンプルの残余で変換パラメータを符号化する。圧縮データストリームは、将来の使用に備えて永続メモリにストアしておくことも、トランスミッタに送信し、そこから別のコンピュータやレンダリングデバイスに送信することも可能である。
【0070】
伸張器40は、選択したタイムインクリメントのときの時間依存ジオメトリを、圧縮データストリームから再構築する。具体的には、伸張器はアニメーションシーケンス内のタイムサンプルに対して、頂点位置のマトリックスを1行ごとに再構築する。伸張器に含まれる量子化解除器42、44は、残余、変換パラメータ、およびベースメッシュの3D位置データをそれぞれ量子化解除する。ジオメトリック変換モジュール48はカレントタイムサンプルの量子化解除変換パラメータを量子化解除ベースメッシュに適用して、変換ベースメッシュを計算する。加算器モジュール50はカレントタイムサンプルの変換ベースメッシュを、そのタイムサンプルのときの、対応する量子化解除残余と結合し、時間依存ジオメトリのカレント3D位置を計算する。
【0071】
伸張器40はオンラインレンダリングアプリケーションで使用できる。その場合には、圧縮時間依存ジオメトリが取り出されたあと、頂点位置の集合は時間的余裕をもって再構築されてからジオメトリが3Dグラフィックスレンダリングサブシステムに渡され、そこでアニメーションシーケンスでのレンダリングが行われることになる。
【0072】
変換マッチング (Transformation Matching)
ある種のアプリケーションでは、時間と共に変化する変換パラメータは、時間依存ジオメトリのコード化が開始される前に使用可能になっていない。このことが特に該当するアプリケーションとしては、アフィン変換やフリーフォーム変形などの、標準的ジオメトリック変換を使用して変換された単純な剛体になっていない時間依存頂点位置の集合を表している、より一般化されたマトリックスのコード化を行うアプリケーションがある。このようなアプリケーションでは、圧縮器はベースメッシュを、アニメーションシーケンス内の選択したタイムインクリメントのときのカレントメッシュに最良に合致させる一連の変換を得ている。以下では、一般的で、任意の動きをもつ時間依存ジオメトリを表しているマトリックスの変換パラメータを導き出すコーダについて説明する。以下に説明する図示の例では、アフィン変換を導き出すことが示されているが、これと同じ手法は他の動きモジュールにも応用可能である。
【0073】
図2は、変換マッチングを行って時間依存ジオメトリから変換パラメータを導き出すベースメッシュ変換コーダを示すブロック図である。図1と同じように、図2には、圧縮器モジュール60と伸張器モジュール62が示されている。図を単純化するために、図1に示す量子化器モジュールと量子化解除器モジュールは、図2には破線62−68で示されている。
【0074】
圧縮器60への入力としては、ベースメッシュV0 と、時間依存ジオメトリを表している頂点位置のマトリックスVとがある。ベースメッシュが剛体を表している特殊ケースとは対照的に、より一般的なケースでのベースメッシュはコード化を始める前に分かっている必要がない。ベースメッシュはマトリックスVから導き出すことができる。例えば、ベースメッシュはVの行を選択するか、Vの行の平均をとるか、あるいは上述したように、変換パラメータと残余の結合帯域幅が最小になるようにベースメッシュを再計算することによって選択することができる。
【0075】
ベースメッシュと同じように、変換パラメータも頂点位置のマトリックスから導き出すことができる。図2に示すように、圧縮器60に置かれた変換マッチングモジュール (transform match module) 70は、ベースメッシュを、マトリックスV内の時間依存メッシュの各々とに最良に合致させるジオメトリック変換を決定する。マトリックスVの行の各々は、選択した時間におけるメッシュに対応している。変換マッチングモジュール70は、マトリックスVの行にストアされたメッシュの位置に近似化するようにベースメッシュを変換するために使用されるジオメトリック変換の変換パラメータを計算する。
【0076】
圧縮器60は変換モジュール72を含み、このモジュールは量子化解除変換パラメータを量子化解除メッシュパラメータに適用し、カレントメッシュの位置に近似化するようにする。その後、減算器モジュール74は、変換ベースメッシュとカレントメッシュとの間の3D位置の差分を計算し、残余を出力する。残余、変換パラメータ、およびベースメッシュパラメータは、破線64、66、68で示すように量子化され、送信される。ベースメッシュは、代表的なアニメーションシーケンスでは一度送信されるだけである。変換パラメータと残余は符号化されるアニメーションのタイムサンプルごとに計算される。代表例では、このタイムサンプルはアニメーションシーケンスのフレームに対応している。
【0077】
図1と同じように、図2の伸張器62は圧縮データストリームを復号化し、時間依存ジオメトリのストリームを再構築するために使用されるコンポーネントを表している。破線64−68で示す固有の量子化解除モジュールのほかに、伸張器62は変換モジュール80と加算器モジュール82も備えている。変換モジュールは量子化解除変換パラメータを量子化解除ベースメッシュに適用し、選択したタイムサンプルに対する変換ベースメッシュを計算する。加算器モジュール82は変換ベースメッシュを受け取り、その時間の間にそれを残余メッシュと結合してメッシュを再構築する。変換モジュール80と加算器モジュール82は、他の変換パラメータと関連残余メッシュの集合ごとに上記プロセスを繰り返す。
【0078】
変換マッチングモジュール70がどのように実現されるかは、その一部として、ベースメッシュとマトリックスVの対応するメッシュとの間の変更位置に近似化するために使用される動きモデルによって決まる。例えば、3Dの動きがアフィン変換モデルに基づいて推定される場合は、変換マッチングモジュール70は、選択した時点において変換ベースメッシュと対応するメッシュとが最も緊密に合致しているものが得られるようにアフィン変換係数を計算する。変換係数を計算する式は次のように表すことができる。
【0079】
【数16】
Figure 0004384813
【0080】
上式において、Ak は望ましい4 x 4マトリックスであり、これは、ベースメッシュV0 を、一般的マトリックスVのカレント行であるVk に変換するために使用される。最良の最小2乗解 (best least-squares solution) を表している変換係数を求める1つの手法は、ベースメッシュVo の特異値分解 (singular value decomposition) を計算し、ベースメッシュの分解をVのカレント行に適用することである。この手法では、マトリックスが大きいと計算コストが高くなる。この計算の複雑さを軽減するために、変換マッチングモジュール70は、以下で説明する最適化の1つまたは2つ以上を使用するように適応させることができる。1つの最適化は、ベースメッシュとカレントメッシュに低詳細レベルのマトリックスを使用して計算を行うことである。低詳細レベルのマトリックスを使用すると、最良の最小2乗解の近似値を計算し、それを完全マトリックスに適用することができる。
【0081】
もう1つの最適化は正規方程式 (normal expression) を使用することであるが、そこでは、ベースメッシュの4 x 4適合マトリックス、および n x 4マトリックスと適合マトリックスとのマトリックス積を累算し、反転することが行われている。この手法を数学的に示すと、次の2式のようになる。
【0082】
【数17】
Figure 0004384813
【0083】
正規方程式の手法は完全方程式系の解を求めて、変換係数を決定するほどには堅固でないが、実用的にはその働きは十分である。この手法が完全系で解を求めるほど正確でないのは、小さな部分空間に投影するとき情報が失われるからである。しかし、変換係数はメッシュの動きの近似にすぎないため、正規方程式の手法でも十分に正確である。セグメント化頂点ブロックのフレームごとに、最良合致(matching)アフィン変換を計算するために、プロトタイプでは次の方法が採用されている。
【0084】
1) 静止形状Vo(これは頂点マトリックスの最初の行またはモデルの代表的ポーズのどちらかである)を使用して、合致マトリックス K = Vo T (V oVoT)-1 を計算する。
【0085】
2) アニメーションのフレームごとに、最良合致アフィン変換をAj = VjKとして計算する。
【0086】
3) 頂点グループが縮退 (degenerate)(つまり、すべての点が平面内にある)であるときは、V oVoT マトリックスは特異であるか、状態が乏しくなっている。このケースでは、静止形状頂点Vo とフレーム当たり頂点Vjを増加するために追加頂点が追加され、縮退を取り除いている。この追加頂点は、各トライアングルの法線に沿って各トライアングルの中心をオフセットすることによって、頂点に関連するトライアングルから導き出されている。
【0087】
図2に示す手法で使用されているジオメトリック変換がアフィン変換であれば、カレントフレームのメッシュの位置に近似化するために使用されるジオメトリック変換を、そのフレームのビューイング変換と一緒に結合することが可能である。ジオメトリック変換コーダは、図3に示すように改良すれば、ジオメトリック変換をビューイング変換と結合することが可能になる。
【0088】
図3は、ジオメトリック変換ではなく逆ジオメトリック変換 (inverse geometric transform) を符号化する代替ベースメッシュ変換コーダを示すブロック図である。このタイプのコーダでは、各タイムサンプルの残余は、カレントメッシュのローカル座標で変換ベースメッシュをカレントメッシュから減算するのではなく、変換ベースメッシュの座標で計算される。この計算式は次に示すとおりである。
【0089】
【数18】
Figure 0004384813
【0090】
上式において、残余パラメータΔVk は、1) ベースメッシュの座標空間に変換された頂点位置のマトリックスのカレント行と、2) ベースメッシュV0 との差分として計算される。変換ベースメッシュをカレントメッシュにマッチングするのではなく、変換パラメータはカレントメッシュをベースメッシュにマッチングする。
【0091】
図3に示す逆変換コーダに含まれる圧縮器100と伸張器102は同じ入力データに作用し、図2のメッシュ変換コーダと同じようなコンポーネントをもっている。具体的には、圧縮器の変換マッチングモジュール104は、変換されたカレントメッシュをベースメッシュと合致させる変換パラメータを計算する。その後、逆変換モジュール106は量子化解除変換パラメータをカレントメッシュに適用し、カレントメッシュをベースメッシュ座標に適用して残余を計算し、減算器モジュール108は、変換されたカレントメッシュとベースメッシュの対応する要素間の差分を計算する。圧縮器は入力マトリックスVの行ごとに上記プロセスを繰り返し、圧縮ジオメトリストリームを出力する。
【0092】
伸張器は量子化残余、量子化変換パラメータ、および量子化ベースメッシュに作用する。時間依存ジオメトリ内の各メッシュを再構築するために、伸張器102に含まれる加算器モジュール110はベースメッシュの量子化解除パラメータを量子化残余と結合する。伸張器に含まれるジオメトリック変換モジュール112は、カレントフレームのビューイング変換を、圧縮器で計算された3D変形変換と結合する量子化解除変形を入力として受け取る。変換モジュール112はカレントメッシュを、ベースメッシュ座標からワールド座標に変換し、その後ワールド座標からビューイング座標に変換する。この方法によると、圧縮器の変換モジュールは変換マッチングで計算された3D変換を、グラフィックスレンダリングパイプラインの標準モデリングおよびカメラ変換と結合することができる。
【0093】
メッシュフィードバック (Mesh Feedback)
これまでのセクションで説明したように、ある種の時間依存ジオメトリのベースメッシュは剛体を表す事前定義のメッシュであり、他方、他のアプリケーションでは、メッシュは一般的なマトリックス位置の頂点から導き出されている。時間依存ジオメトリの経時的コヒーレンスを利用するために、ジオメトリック変換コーダは、先行フレームのメッシュをカレントフレームのベースメッシュとして使用するように適応化することができる。この方法によると、先行フレームのメッシュを使用するフィードバックループは、メッシュがカレントフレームのどこに置かれるかを予測する手段 (predictor) として使用されている。ここで注意すべきことは、この種の予測が、頂点位置のマトリックスで行われる行予測と異なっているのは、変換がN次元ベクトル空間ではなく、3D座標空間で行われるためである、ということである。しかし、以下で詳しく説明するように、行予測と列予測を使用すると、どちらの場合も、残余やベースメッシュのような、3D位置データのマトリックスをさらに圧縮することができる。
【0094】
図4は、先行タイムサンプルで計算されたメッシュを、カレントタイムサンプルのベースメッシュとして使用するメッシュ変換コーダを示すブロック図である。図4には、この種のコーダ用として圧縮器120と伸張器122の両方が示されている。このコーダでは、各カレントフレームのベースメッシュは先行フレームからの構築メッシュである。
【0095】
他のメッシュコーダと同じように残余を計算することのほかに、圧縮器は先行タイムサンプルからのメッシュを再構築したあと、その再構築メッシュのコピーを保存している。第1フレームのメッシュの予測手段として初期メッシュから始めて、変換マッチングモジュール124は最良変換を見つけ、先行フレームの近似頂点V’ を次フレームのメッシュにマッピングする。カレントメッシュは、アニメーションシーケンス全体のシングルベースメッシュよりも先行フレームのメッシュに類似しているのが普通であるので、この手法によって得られる残余値は小さくなる傾向がある。
【0096】
変換マッチングモジュール124は、「ディレイ」メモリに一時的にストアされた近似メッシュに作用し、先行メッシュとカレントメッシュが最良適合する変換パラメータを見つける。図2および図3と同じように、破線は量子化器と量子化解除器のペアを示している。圧縮器は変換マッチングモジュール124からの変換パラメータを量子化する。量子化パラメータは、圧縮データストリーム128の一部となり、圧縮器で残余を計算するために使用される前に量子化解除器にも入力される。
【0097】
変換モジュール130は量子化解除変換パラメータを先行フレームの近似メッシュに適用し、カレントフレームのメッシュの位置を推定する変換メッシュを計算する。圧縮器の減算器モジュール132は残余を、先行フレームの変換メッシュとカレントメッシュとの差分として計算する。この残余は量子化され、量子化残余は、量子化変換パラメータ128と共に圧縮データストリームの別部分となる。
【0098】
圧縮器のフィードバックループはカレントメッシュの近似メッシュを再構築し、カレントフレームの近似メッシュをメモリ126に一時的にストアしておく。具体的には、加算器モジュール136はカレントフレームで計算された残留3D位置データを、変換バージョンの先行フレームと結合し、その結果のカレントメッシュの近似メッシュをメモリ126にストアしておく。圧縮器は、あるタイムインクリメント、例えば、フレームのときの、頂点のカレント近似頂点のコピーを保存しておき、時間依存ジオメトリVで次タイムインクリメントのときの、メッシュを予測する手段として使用できるようにする。
【0099】
伸張器122にも、最近に計算された頂点をあるタイムインクリメントだけ遅延させるフィードバックループがあるので、次の頂点集合を予測する手段として使用できるようになっている。伸張器の変換モジュール140は量子化解除変換パラメータを、以前に構築され、メモリ142に一時的にストアされていたメッシュに適用する。変換モジュール140の出力はカレントメッシュに変換された先行フレームのメッシュである。加算器モジュール144はこの変換メッシュを、圧縮データストリームからの、カレントフレームの量子化解除残余と結合し、カレント近似頂点V’を構築する。
【0100】
図3を参照して上述した逆変換コード化方法は、図4に示すフィードバックコーダで使用することも可能である。このケースでは、変換マッチングモジュール124はカレントメッシュ入力を、先行フレームの近似メッシュの座標に変換する。その後、圧縮器は先行フレームの座標に変換されたカレントメッシュと先行フレームの近似メッシュとの差分として、残余を計算する。圧縮器と伸張器は、先行フレームの近似メッシュを変換カレントメッシュと結合することによって、残余からカレントメッシュを再構築する。図3の逆メッシュコーダと同様に、その結果の3D位置データは、変換マッチングモジュール124で計算された変換パラメータを使用して、カレントフレームでその位置に変換される。しかし、図3のコーダとは異なり、3D変換はカメラ変換と結合することはできない。カレントメッシュは、カメラ変換なしで変換し、次フレームのメッシュの位置を予測する際に使用されるように別にストアしておかなければならない。
【0101】
列と行の予測とソート
時間依存ジオメトリのマトリックスでジオメトリックと時間的コヒーレンスを利用するもう1つの方法は、マトリックスの行と列で予測を行うことである。上述した圧縮方法と同じように、時間依存ジオメトリのストリームは3Dジオメトリック位置データのマトリックスで表すことでき、そこでは、各行はアニメーションシーケンスのフレームのような、タイムサンプルに対応し、各列は3D位置と関連付けられている。オリジナルマトリックスを圧縮マトリックスから減算すると(つまり、上述した方法を使用すると)得られる残余マトリックスはオリジナルマトリックスと同じ形態になっているので、このセクションで説明している圧縮手法は、オリジナル頂点マトリックスに関する残余マトリックスにも十分に適用される。時間的予測は、各行を別の行または参照行 (reference row) とペアにし、2行の各対応する要素の間の差分を計算し、例えば、差分値を量子化することによって2行の間の差分を符号化することによって行うことができる。ジオメトリック予測は、類似の手法を用いて列についても行うことができる。また、各列に関連する3D位置間のジオメトリック接続性は独立に指定されるのが普通であるので、列は、隣接列の対応する要素の値が可能な限り類似するようにソートすることができる。
【0102】
図5は、圧縮器160と伸張器162の両方を備えたマトリックス予測コーダの例を示すブロック図である。圧縮器160は時間依存ジオメトリストリームに作用するが、これは、このケースでは、頂点位置のマトリックスVになっている。圧縮器に含まれるソートモジュール162は、隣接列/行の対応する要素が、オリジナルマトリックスよりも類似するように列または行(または両方)を位置付ける。具体的には、ソートモジュール162は、隣接頂点パス(経路)が可能な限り類似するように列をソートする。このジオメトリでのソーティングプロセスは、コヒーレントな動きをもつジオメトリの部分を一個所に置くようにする。3Dジオメトリが一連の剛体からなるようなけースでは、列は一緒に移動する剛点グループになるように配列される。
【0103】
もっと一般化された頂点マトリックスでは、ソートモジュール162は、列の類似性程度に作用して類似の動きをもつ列グループを見つける。この類似性程度の1つとして、平均除去列 (mean-removed columns) の内積 (inner product) が使用できる。
【0104】
類似性程度を計算するには、
1)マトリックス内の各列の平均をとり、その結果を行ベクトル
【0105】
【数19】
Figure 0004384813
【0106】
にストアし、
2)列平均値を各行
【0107】
【数20】
Figure 0004384813
【0108】
から減算する。
【0109】
その後、ソータはその結果の類似性程度を使用して列をソートすることができる。
【0110】
プロトタイプでは、列iとjの類似性は2つの方法で計算されている。生 (raw)の列ドット積 (raw column dot product) Vi・Vj 、および列要素間の二乗距離 (squared distances) の和 (Σ(Vk i − Vk j )2 )1/2 である。最も類似している頂点の列は相互に隣接して置かれる。左から始まって右に移動しながら、列ソータは残余の列から最も類似する列を見つけていき、カレント列のちょうど右になるようにその列をスワップする。トライアングルリストは頂点インデックスを使用し、各頂点は列で表されているので、マトリックス内のロケーションと出力時の列の使用との間にはインディレクション(indirection) のレベルがある。このようにすると、デコーダに気づかないで列の再配列が行われることになる。エンコーダは、頂点マトリックス内のソートされた列に対応するように、トラインアングルリスト内のインデックスに番号を付け直す。
【0111】
行のソーティングも、列のソーティングと同じように行うことができる。
【0112】
類似の経路を移動する頂点は類似するものとみなされる。この特定ソートでは、2D表面で線形的ソート (linear sort) が行われるので、得られる最良結果は、Peano曲線に類似する表面を満たす頂点マトリックスを通る経路になっている。なお、Peano曲線は「空間を満たす」曲線の一種である。言い換えれば、頂点は2Dメッシュ上にあるので、利用できる隣接間のコヒーレンスは単純な1Dソートによる場合よりも向上するが、1Dソートでも、コヒーレンスが向上するので、伸張器は低コストになる。エッジ縮小 (edge contraction) で隣接頂点をクラスタ化することによって列間のコヒーレンスを向上するソート手法は以後のセクションで詳しく説明する。
【0113】
ソートモジュール163は、マトリックスの行/列をソートして、隣接行/列のコヒーレンスを向上するプロセスを表しているのが一般である。ソートモジュール163は列データのソートを行うと、マトリックスのジオメトリック接続性データを更新し、ソートされたマトリックス内の該当列を正しく指すようにする。ジオメトリック接続性データ164は、マトリックス内の頂点位置間の接続性を定義している。データは、1つに接続されたメッシュ内の頂点の部分集合を定義しており、その構造内の頂点位置とマトリックスV内の対応する頂点位置の間のレファレンス(参照)も維持している。ソートモジュール163は列の順序を変更するとき、接続性データ内の頂点位置がマトリックスV内の該当列を指すように接続情報を更新する。
【0114】
空間的予測 (spatial prediction) のほかに、圧縮器160は頂点位置のマトリックスの行について時間的予測 (temporal prediction) も行う。大部分のケースでは、マトリックスV内の隣接行は、隣接行が最も類似している、対応する要素を含むようにすでに配列されている。しかし、隣接行がオリジナル入力マトリックスよりも類似するように行をソートすることも可能である。また、参照行、つまり、他の行の動きを予測する基礎として使用される参照行を選択することも可能である。行がソートされるとき、ソートモジュール163は行間の時間的関係を維持しているデータ構造165を更新する。このデータ構造を使用すると、メッシュデータを正しい時間的順序で再構築できるかを確かめることができる。
【0115】
圧縮器160は、参照行/列と別の列/行間の各対応する要素の間の差分を計算することによって行/列予測を行う。ソートが完了すると、予測器モジュール166は、行予測を行うときは、ペアの隣接行内の各対応する要素の間の差分を計算し、列予測を行うときは、隣接列内の各対応する要素の間の差分を計算する。予測器モジュール166の出力は差分値のマトリックスである。これらの差分値は量子化モジュール168で量子化することができる。
【0116】
圧縮データストリームを伸張 (decompress) するために、図5の伸張器162は圧縮器160のオペレーションと逆のことを実行する。具体的には、量子化解除器170は差分値のマトリックスを量子化解除する。その後、差分値のマトリックスは再構築され、ソートされたマトリックスのオリジナル行と列が逆予測器モジュール172で計算される。再配列モジュール (reorder module) 174は列予測のためにソートされた場合は列を再配列し、行予測のためにソートされた場合は行を再配列する。ジオメトリック接続性データ176は列を再配列するために使用される。同様に、時間的データ178で表されている行の配列は、ジオメトリックデータが正しい時間シーケンスにあるかを確かめるために使用される。
【0117】
図5の上例では、頂点位置のマトリックスVが対象になっているが、行と列の予測は他の形態の時間依存ジオメトリマトリックスで行うことも可能である。例えば、以下で詳しく説明するように、時間依存ジオメトリックデータのマトリックスは、主要コンポーネント分析を使用して、基底ベクトルのマトリックスと別の重みマトリックスに分解することができる。このケースでは、行/列予測は、重みを表すマトリックスで行うことができる。メッシュコーダで計算された残余値のマトリックスとベースマトリックスで予測を使用することも可能である。
【0118】
基底分解コーダ (Basis Decomposition Coder)
時間依存ジオメトリを表すマトリックスを圧縮するもう1つの方法は、主要コンポーネント分析を使用してマトリックスを基底関数 (basis function) と重みに分解することである。マトリックスの最良基礎ベクトル集合を見つける手法は、例えば、PCA(principal components analysis−主要コンポーネント分析)、KL変換 (Karhunen-Loeve)、SVD(singular value decomposition−特異値分解)などのように、いろいろな名前で通っている。SVDは頂点マトリックスVをUDWに因数分解している。ここで、UとWは正規直交マトリックス (orthonormal matrix) であり、D = diag(s0, s1, s2, ...) はサイズ別にソートされた特異値 (singular value) の対角マトリックス (diagonal matrix) である。特異値のサイズは対応する基底ベクトルの大きさを示している。基底ベクトルは特異値si と行Wi によって与えられる。各列Ui はフレーム当たりの対応する重みを示している。次式は、頂点位置のマトリックスがどのようにして基底ベクトルと重みのメッシュに分解されるかを示している。
【0119】
【数21】
Figure 0004384813
【0120】
左側のマトリックスは重みを表し、重みは係数とも呼ばれる。頂点位置のオリジナルマトリックスと同じように、上に示す重みのマトリックスは、タイムインクリメントに対応する行とジオメトリック位置を表す列をもっている。同様に、メッシュ基底ベクトルを表している右側のマトリックスは、各タイムインクリメントの行と基底ベクトルを表す列を含んでいる。重要な基底ベクトルの数が少なければ、最も重要な基底ベクトルだけを符号化し、送信し、そのあとフレーム当たりの重みと、明示的に符号化されなかった基底ベクトルの残りからの残余とを加えたものを送信するようにすると、良好な圧縮が得られる。
【0121】
主要コンポーネント分析は、3Dオブジェクトではフルサイズの頂点位置マトリックスで行うことができるが、特に複雑なオブジェクトでは、フルサイズマトリックスを分解すると、計算コストが高くなる。従って、フルサイズの特異値分解 V = UDW(Uはサイズnframe x nframe、Wはサイズnvertex x nvertex)を計算する方法もあるが、もっと良い方法は、マトリックスの処理前にメッシュ単純化を行ってから、基底分解を行うことである。このケースでは、オリジナル頂点マトリックスVは空間的(プログレッシブメッシュ法の使用による)と時間的(結び目削除 (knot deletion) またはウェーブレット (wavelet) 符号化の使用による)にスムーズなバージョンVs が得られるまでフィルタに通され、得られたバージョンはVs = UsDsWs として因数分解されている。DsWs で与えられた基底ベクトルは、次に、プログレッシブメッシュ頂点分割レコードによって拡張されるが、これはファイン詳細 (fine-detail) メッシュの基礎を得るために必要になるものである。同様に、Us によって与えられる重みは、詳細レコード(結び目挿入またはウェーブレット詳細によって与えられる)によって時間的に拡張される。
【0122】
もう1つの方法は、特異値分解に対してスモールランク近似 (small rank approximation)、Vk = UkDkWk T(Uk はサイズnframe x K、Vk はサイズK x nvertex)を反復的に計算できる近似SVDコーダを使用することである。
【0123】
図6は、主要コンポーネント分析を使用して時間依存ジオメトリストリームを圧縮するメッシュ基底コーダを示すブロック図である。図6に示すメッシュ基底コーダは、頂点位置のマトリックスVをメッシュ基底ベクトルの集合に投影し、その後基底係数と残余を圧縮する。圧縮器200では、基底投影モジュール202はカレントメッシュを基底係数と基底ベクトルに分解する。量子化モジュール204は基底係数を量子化し、これは圧縮データストリーム206の一部になる。量子化解除モジュール206はカレントメッシュの基底係数を量子化解除する。基底合成モジュール (basis synthesis module) 208は、量子化解除基底係数と基底ベクトルからカレントメッシュを再構築する。圧縮器で残余を計算するために、減算器210は、再構築メッシュとカレントメッシュの間の、対応する各要素の差分を計算する。最後に、量子化器212は残余を量子化し、量子化された残余は量子化された基底係数と共に圧縮データストリーム214の第2部分となる。
【0124】
圧縮データストリームを伸張するために、伸張器220は、コード化残余と基底係数からカレントメッシュを再構築する。量子化解除器222は基底係数を再構築し、量子化解除器224は残余を再構築する。基底合成モジュール226は、量子化解除基底係数を基底ベクトルに適用することによってカレントメッシュに近似化する。その後、加算器ユニット228は、基底合成モジュール226からの近似メッシュを量子化解除残余と結合して、再構築メッシュを計算する。
【0125】
量子化 (Quantization)
符号化時間変化ジオメトリのコンポーネントを表している数を量子化するために使用できる、従来の量子化手法にはさまざまなものがある。ワープ(warp) 係数と残余を量子化するために、圧縮器は3レンジ正規量子化器を使用している。参考文献としては、Allen Gersho、Robert M. Gray共著「ベクトル量子化と信号圧縮(Vector Quantization and Signal Compression)」(Kluwer Academic Publishers, 1991) がある。メインレンジは平均の標準偏差内の信号に対するもので、他の2つは下位と上位のアウトライア(outlier) に対するものである。第1パスでは、信号の統計が計算され、第2パスでは、実際の量子化が行われる。
【0126】
空間時間詳細レベル (Spacetime Level of Detail)
メッシュ単純化手法は、3D時間依存ジオメトリをメッシュ精細化 (mesh refinements) の階層に変換するために使用することができる。メッシュ単純化手法の例をいくつか挙げると、Hugues Hoppe著「プログレシッブメッシュ(Progressive Meshes)」、pp. 99-108, SIGGRAPH 95 およびHugues Hoppe著「プログレッシブメッシュのビュー依存精細化(View-Dependent Refinement of Progressive Meshes)」、pp. 189-198, SIGGRRAPH 97 に記載されているプログレッシブメッシュがある。プログレッシブメッシュを詳しく説明した文献としては、次の米国特許出願、すなわち、第08/586,593号、発明の名称「プログレッシブメッシュの符号化とプログレッシブ伝送(Encoding and Progressive Transmission of Progressive Meshes)」(Hugues Hoppe)、第08/797,502号、発明の名称「プログレッシブメッシュのメッシュ単純化と構築(Mesh Simplification and Construction of Progressive Meshes)」(Hugues Hoppe)、第08/7907,501号、発明の名称「プログレッシブメッシュのジオモルフと可変解像度制御(Geomorphs and Variable Resolution Control of Progressive Meshes)」(Hugues Hoppe)、および第08/797,781号、発明の名称「プログレッシブメッシュの選択的精細化(Selective Refinement of Progressive Meshes)」(Hugues Hoppe) がある。なお、これらの内容全体は引用により本明細書に含まれている。
【0127】
二次曲面誤差メッシュ単純化 (quadric error mesh simplification) は、Michael Garland、Paul S. Heckbert共著「二次曲面誤差メトリックスを使用した表面単純化(Surface Simplification Using Quadric Error Metrics)」、pp. 209-216, SIGGRAPH 97に記載されている。
【0128】
MetaCreations Corporation提供のMetaStream 3Dファイルフォーマットで使用されているメッシュ単純化のように、他のメッシュ単純化手法を使用することも可能である。
【0129】
時間依存ジオメトリの圧縮で詳細レベルコントロールを使用すると、いくつかの利点が得られる。詳細レベルコントロールを使用すると、3Dジオメトリを表すメッシュが単純化されるので、時間依存ジオメトリの符号化コストが大幅に低減される。単純化されたジオメトリの動きは詳細化メッシュに表れた動きによく近似しているので、ジオメトリの単純化バージョンを使用すると、メッシュ変換コーダではアフィン変換、基底分解コーダでは基底ベクトルといったように、圧縮パラメータを計算することができる。
【0130】
詳細レベルコントロールのもう1つの利点は、このコントロールによると、圧縮器が時間を通るメッシュのトポロジを変更できることである。特定の3Dオブジェクトがシーンのどこに置かれているか、そのオブジェクトがどれだけ変化するかに応じて、オブジェクトの時間依存ジオメトリは、高詳細レベルでも、低詳細レベルでも表現することができる。従って、3Dオブジェクトまたはオブジェクトの一部は、選択した時点でのアニメーションシーケンスの中でどれだけ重要であるかに応じて、変化する詳細レベルで表現することができる。
【0131】
時間と空間の両方でメッシュ単純化を拡張すると、時間依存ジオメトリの効率的な表現が得られる。具体的には、メッシュ単純化は、時間依存ジオメトリを空間と時間でピラミッドとして表現するデータ構造を作るように拡張することができる。このピラミッドは、時間と空間の両方で3Dオブジェクトの詳細レベルの階層を表している。この空間−時間ピラミッドが一種の圧縮として使用できるのは、オブジェクトの時間依存ジオメトリの階層表現が、アニメーション内のフレームごとにメッシュからなるオリジナル時間依存ジオメトリよりも小さくなるからである。また、この階層表現が伝送するのに効率的であるのは、階層表現を精細化 (refine) または粗粒化 (coarsen) するために使用される精細化と粗粒化レコードが、フレームごとにメッシュを伝送する代わりに伝送できるからである。上述したように、階層表現によると、上述した他の圧縮方式は、空間−時間ピラミッドの該当詳細レベルで動作するように設計できるので、さらに効率化されることになる。
【0132】
ローカルフレーム (Local Frames)
以下で詳しく説明するように、空間−時間ピラミッドの階層表現は、一連の拡張レコードを使用して表現することができる。メッシュ表面のローカル座標で拡張レコードを符号化すると、動きの多くはファイン詳細化することができる。このローカル座標には、メッシュ形状の階層コントロールや階層量子化といった、いくつかの利点がある(そこでは、ファイン詳細を符号化するビット数が少なくなる)。これらの利点は細分化方式 (subdivision scheme) で得られる利点と類似している。細分化方式に関する参考文献としては、Denis Zorin、Peter Schroeder、Wim Sweldens共著「任意トポロジをもつメッシュの補間細分化(Interpolating Subdivision for Meshes with Arbitrary Topology)」、pp. 189-192, SIGGRAPH 96、Denis Zorin、Peter Schroeder、Wim Sweldens共著「インタラクティブマルチレゾルーションメッシュ編集(Interactive Multiresolution Mesh Editing)」、pp. 259-268, SIGGRAPH 97、およびMichael Lounsbery、Tony D. DeRose、Joe Warren共著「任意トポロジカルタイプの表面のマルチレゾルーション分析(Multiresolution analysis for Surfaces of Arbitrary Topological Type)」、pp. 34-73, ACM Transaction on Graphics, volume 16, January 1997がある。しかし、時間依存ジオメトリという意味では、ローカル座標系のコヒーレンスは時間を通すとさらに大きくなる。
【0133】
本実施形態では、空間−時間ピラミッドの階層は、時間依存頂点位置のマトリックスを、1) 縮小したジオメトリの集合と、2) 拡張レコードに因数分解することにより作られている。次の式は、頂点位置のマトリックスが、どのように縮小頂点列のマトリックスと頂点拡張に因数分解されるかを示している。
【0134】
【数22】
Figure 0004384813
【0135】
縮小頂点列の各々は、空間階層におけるペアの隣接レベル間のデルタを表している。頂点拡張には、各々の対応する縮小頂点列の拡張レコードが含まれ、縮小頂点列をどのように拡張すると、オリジナルマトリックスの近似に復元できるかを示している。
【0136】
マトリックス位置の頂点は、次式に示すように、時間拡張と縮小頂点行のマトリックスに因数分解することも可能である。
【0137】
【数23】
Figure 0004384813
【0138】
上式において、行は、時間次元における階層の隣接ペア間のデルタを表している。時間拡張Tは、各縮小頂点行に対応する時間拡張レコードを含み、対応する行をどのように拡張すると、オリジナルマトリックスの近似に復元できるかを定義している。前記2式の考え方を結合すると、次式に示すように、頂点位置のマトリックスは時間拡張、縮小頂点ブロックのマトリックス、および頂点拡張に因数分解することができる。
【0139】
【数24】
Figure 0004384813
【0140】
縮小頂点ブロックは、空間−時間階層における隣接列と行の間のデルタを表している。
【0141】
精細化基底コード化 (Refinement Basis Coding)
本実施形態では、メッシュ精細化手法を使用して一連のエッジ縮小/頂点分割レコード (edge-contraction/vertex-split record) を作成している。メッシュの詳細レベルを減少するには、頂点位置を相互接続するエッジは、頂点が少なくなったメッシュを作成するように縮小される。逆に、メッシュの詳細レベルを増加するには、頂点位置は、詳細化されたメッシュを作成するように追加位置に分割される。この実装では、デルタ値の集合をメッシュ精細化のトポロジから分離することによって、次の形式の精細化マトリックスを得ている。
【0142】
【表1】
Figure 0004384813
【0143】
上のマトリックスは頂点拡張リストを表している。マトリックスの上段行は時間依存ジオメトリの空間階層の分割を示している。マトリックス内の後続行は時間のインクリメントに対応している。マトリックスの列は空間ドメインにおける階層の隣接レベル間のデルタ値に対応している。
【0144】
本実施形態では、縮小係数は右から左に向かい、逆に拡張係数は左から右に向かっている。精細化プロシージャの構造により、マトリックスの各要素にストアされたデルタベクトルの大きさは、左から右に向かって減少している。当然に理解されるように、これは、縮小される最初のエッジがオリジナルメッシュを乱すことが最小になる設計になっているためである。信号強度はマトリックスの左側が強く、マトリックスの左から右に向かって徐々に小さくなっている。
【0145】
精細化マトリックスを使用すると、上述した圧縮方法、具体的には、ジオメトリック変換方法と基底伸張方法の効率が向上する。例えば、テストケースでは、メッシュ精細化方法の本実施形態によれば、約3000の頂点をもつオリジナルメッシュは精細化マトリックスに変換されている。プロトタイプのジオメトリック変換コーダで計算されたアフィン変換係数とプロトタイプの基底分解コーダで計算された基底ベクトルは、精細化マトリックスの左側で300 − 1000要素を使用するだけで扱いやすくなっている。事実、このメッシュ単純化を行うと、メッシュがローパスフィルタの働きをするという利点が得られる。
【0146】
拡張リストで要素をどのように配列するかは、メッシュ単純化プロセス期間に使用される最適化基準によって決定される。本実施形態では、アニメーションの第1フレームのメッシュで二次曲面誤差測定プログレッシブメッシュ手法 (quadric-error measure Progressive Mesh technique) が使用され、その結果がジオメトリデータのオリジナル時間依存マトリックス内の行の残りに適用されている。この方法は十分に高速で、正確である。しかし、圧縮をダイナミックに行うという意味では、このように配列を行うことは、アニメーションシーケンス全体では最適でない。もっと最適な配列を見つけるには、頂点分割の依存性グラフを使用すると、二次曲面誤差測定のように、同時に使用される圧縮と忠実度測定によって拡張レコードを再配列することができる。言い換えれば、どの分割列が再配列できるか、マトリックスのさらに左側の頂点が分割に依存するためどの分割列が再配列できないかは、頂点分割の依存性グラフによって決まることになる。もっと一般化された手法では、最良の圧縮/最良のビジュアル品質が得られる特定のプログレッシブメッシュ (PM) 拡張が探索されるようになっている。特定の瞬時では(言い換えれば、Vのある行が与えられているとき)、このプログレッシブメッシュ手法では、低詳細レベルメッシュの空間ジオメトリをオリジナルメッシュの空間ジオメトリに合致させる、最良の頂点縮小のシーケンスが見つけられる。時間依存ジオメトリでは、特定のPMの品質を測定するためには、PMの詳細レベルごとに時間次元にわたって(つまり、オリジナル頂点マトリックスVの行にわたって)ジオメトリの誤差を加算する必要がある。
【0147】
例えば、PMはVの行ごとに計算したあと、Vの全行にわたってテストして、ジオメトリの正確性を確かめることができる。また、Vの列の平均をとることによって得られた平均メッシュに対してPMを計算することもできる。
【0148】
空間−時間コーダのオペレーションを示す例
時空コーダの理解を容易にするために、以下では、人物を例にして説明することにする。ある距離からは、必要になることは、手足を固定させたまま、ボディ全体を低ポリゴンカウントで並行移動し、回転させることである。人物が近づくと、動きの正しい知覚を伝達するために手足のおおまかな運動と形状が必要になる。人物がさらに近づくと、顔と他の筋肉の動きと形状のファイン詳細が大きくなる。その後、人物が後退すると、上に挙げたステップとは逆順に、必要になる詳細は小さくなる。詳細を段階的に大きくした後、小さくしていくために、空間−時間コーダは、最初に、モデルの単純なジオメトリック表現とアニメーションの単純なバージョンを送信する。その後、クライアントのビューポイントに基づいて、サーバは、空間的および時間的詳細更新を必要に応じてストリームダウンする。
【0149】
ここで言うサーバとは、時間と共に変化するジオメトリのソースの働きをするシステムエンティティのことであり、クライアントとは、そこでプレイバックが行われるエンティティのことである。ここで言う広い意味では、必要になる帯域幅とメモリを低減化するアプリケーションは広範囲にわたっている。サーバとクライアントは、同一または異なるプロセッサ上で実行されるソフトウェアプロセスにすることができる。サーバは、ホストプロセッサ上で実行されるソフトウェアモジュールにすることができ、クライアントは、コンピュータシステムのグラフィックスコプロセッサにすることができる。サーバは第1コンピュータ上で実行されるソフトウェアにすることができ、クライアントは第2コンピュータで実行されるハードウェアデバイスまたはソフトウェアモジュールにすることができ、この場合、第2コンピュータは、モデム接続、ローカルエリアネットワークまたは広域ネットワークを介して第1コンピュータに接続されている。
【0150】
空間−時間ピラミッドの導出
入力は、高蜜にタイムサンプリングされたメッシュM(0), ..., M(n-1) の集合である。これまでのセクションで上述したように、頂点の位置はマトリックスVとして考えることができる。Vの各行iはシングルタイムサンプルVi = M(i) に対応している。Vの各列j は時間を通る座標の軌跡である。空間−時間ピラミッドは空間(列にまたがる)と時間(行にまたがる)の2つの次元に沿ってVを分解したものである。これを具体的に説明するために、左から右へ移動する立方体の単純な1秒アニメーションについて考えてみる。そこでは、立方体の上部は底部に対して垂直軸を中心に周期的に回転(ツイスト)している。このアニメーションは図7に示されている。立方体の上部と底部は、x − z 平面に同一線上の四角のままになっているが、立方体の側辺は、図7の上段アニメーションシーケンスに示すように、上部のy回転が増減したとき、曲面になっている。このアニメーションは60Hzでタイムサンプリングされ、60個の初期メッシュM(0), ..., M(59) を得ている。上部頂点はV0からV3までであり、下部頂点はV4からV7までである。頂点の残りは立方体の回転している側面を符号化している。
【0151】
最初のステップでは、メッシュが係数にセグメント化され、これらの係数は独立にアニメーション化された後、アニメーション式と結合される。立方体では、望ましいアニメーション式は次のようになっている。
【0152】
【数25】
Figure 0004384813
【0153】
k項の各々は、異なる回転速度でメッシュのセグメントを符号化している。下部セグメントは立方体の下部と合致し、静止している。下から上へ移動するとき、各セグメントの速度は、立方体の上部のy回転と合致する上部セグメントに至るまで徐々に増加している。
【0154】
生の入力シーケンスからこのアニメーション式を得るために、ジオメトリック変換符号化ステップのリストがメッシュに適用される。例示のリストはカレントVマトリックスの平均値軌跡であり、その後、一連のアフィン合致ジオメトリック符号化になっている。Vマトリックスメッシュの各行の平均を求めると、マス中心の軌跡が得られ、それからアニメーション式のTranslation項が得られる。立方体の並行移動は、図7の下段アニメーションシーケンスに示されている。
【0155】
次に、一連のアフィン合致ジオメトリック変換符号化はy軸を中心に回転している頂点の残りと合致される。頂点マトリックス全体に合致されるy回転項が立方体の中心に良好に合致しているのは、立方体の中心近くの頂点が平均的回転と共に移動するからである。符号化はy軸の中心から始まり、その後、アニメーション式の、次の回復項にどれだけ合致しているかに基づいて、上部までと下部まで外側に移動していく。これから得られるアニメーション式は、次のような形式になっている。
【0156】
【数26】
Figure 0004384813
【0157】
単純な代数で単純化すると、これは所望のアニメーション式(A)になる。
【0158】
詳細項は、次の2パラグラフで説明するように、空間的または時間的に符号化することができる。エンコーダの仕事は、符号化シーケンスの各ステップで、最大のコヒーレンスをもつ次元を選択することである。これは、次元を利用すると共に、最良の予測で詳細スムーズ化を選択することによって行われる。
【0159】
各セグメントの空間的次元は、代表的なメッシュを使用するプログレッシブメッシュのエッジ縮小 (edge collapse) を使用してコード化され、この代表的なメッシュはシーケンスの最初のものであるか、初期の未アニメーション化メッシュ(静止形状とも呼ばれる)であるか、のどちらかである。エッジ縮小を行うと、Vの2列が結合されて1つの列になり、オリジナル列を回復するためにデルタが符号化される。
【0160】
各セグメントの時間的次元をコード化するには、2つの方法がある。スパースでスムーズなデータでは、頂点位置とアニメーション係数は時間を通るようにスプライン (spline) される。より高詳細レベルは、2つの既存頂点の間に新しいスプライン頂点を挿入することにより追加され、動きは新しいローカル特徴をもつことになる。時間エッジ縮小を行うと、カレントセグメントの2行が結合され、オリジナル行を回復するために行デルタが符号化される。高蜜度アニメーションでは、ウェーブレット (wavelet) が使用され、より高詳細レベルがより多くの詳細係数と共に追加される。詳細レベル間でスムーズに移行するために、クライアント側の表現は、よりスムーズな係数を残したまま、新しい詳細係数とブレンドされる。
【0161】
ビューに依存する、望ましい空間的および時間的解像度が与えられているとき、チェックポイントがセーブされ、符号化は各次元で反復的に開始される。これにより、メッシュのピラミッド格子が得られる。格子の各ノード間のリンクは、一方から他方へ移動するために必要な一連の更新である。図8はピラミッドの1レベルを示している。この構造が繰り返されて、完全なピラミッドが得られる。
【0162】
空間−時間コーダで使用されるデータ構造の例は以下に示されている。データ構造は、それがサーバに置かれているか、クライアントに置かれているか、あるいは3Dアニメーションシーケンスの選択的プレイバック期間にクライアントとサーバの間で送信されるかどうかに基づいて分類されている。
【0163】
クライアント側データ構造のフォーマット
次のデータ構造は、クライアント側でアニメーションを表現するために使用されるものである。
【0164】
【表2】
Figure 0004384813
【0165】
サーバからクライアントへのデータ構造のフォーマット
サーバは次のデータ構造をクライアントに伝達し、選択的プレイバック期間にクライアント側でアニメーションを更新することを可能にする。
【0166】
【表3−1】
Figure 0004384813
【0167】
【表3−2】
Figure 0004384813
【0168】
【表3−3】
Figure 0004384813
【0169】
サーバ側データ構造のフォーマット
次のデータ構造は、クライアント側でのアニメーションの選択的プレイバックに関連してサーバ側に置かれているものである。
【0170】
【表4】
Figure 0004384813
【0171】
アニメーションの伝送期間中、サーバとクライアントの間では次のような通信が行われる。
【0172】
【表5】
Figure 0004384813
【0173】
クライアントは、セグメントのカレントビューポイントを、所望の空間的解像度 (spatial resolution) と一緒にサーバに送信する。空間的解像度は、クライアントがセグメントをレンダリングするときのジオメトリック詳細レベルを示している。これに応答して、サーバは空間的更新レコードを返送し、クライアントが空間−時間ピラミッドから所望のジオメトリック詳細レベルを抽出できるようにする。
【0174】
セグメントが更新されるときのレートを指定するために、クライアントは時間的解像度 (temporal resolution) とカレント時間インターバルをサーバに送信する。これに応答して、サーバは時間的更新レコードを送信し、クライアントが空間−時間ピラミッドから所望の時間的詳細レベルを抽出できるようにする。
【0175】
他の次元にまたがる符号化
これまでは、本明細書では代表的な次元として時間を使用してきた。リニアシーケンスをプレイバックするだけでなく、この次元はインタラクティブコントロールのためにも使用できる。例えば、ひじを曲げる詳細アニメーション(隆起する筋肉、スライドするスキンなどと共に)は、ひじのジョイントアングル(関節角度)によってパラメータ化されている。ユーザがジョイントアングルを指定し、アニメーションシーケンスをその指定に応じて伸張 (decompress) できるようにすると、ユーザは高詳細のアニメーションを制御することができる。これは、ゲームなどのインタラクティブアプリケーションで利用すると便利である。
【0176】
この特定例では、曲げるひじのアニメーションは、空間―角度マトリックス構造で表現することができる。各列はひじのオブジェクトの3Dメッシュ内の位置を表し、行はひじの関節の角度位置を表している。時間と同じように、関節角度は、低詳細レベル(例えば、関節角度サンプルが少ない)から高詳細レベル(例えば、関節角度位置を多くしてひじの曲がりを詳細に表している)までの階層構造で表現することができる。選択的プレイバック期間、クライアントは角度の動きに見合った詳細レベルを要求し、この要求に応答して、サーバは関節角度次元の、対応する更新レコード(粗粒化または精細化のどちらか)を送信し、ひじの運動が該当詳細レベルでアニメーション化されるようにする。例えば、ユーザはひじの関節の角度位置を、ジョイスティックなどの入力デバイスから指定することができる。この場合、クライアントは角度位置を計算し、それをサーバに送信すると、サーバからは、該当更新レコードが戻される。
【0177】
類似の手法を使用して、他の次元(例えば、ある軸を中心とする回転運動、軸に沿う並行運動、カーブした通路上の動きなど)上の3Dアニメーションを符号化することもできる。
【0178】
テクスチャとジオメトリの結合圧縮
頂点位置のほかに、各頂点は、テクスチャ座標のように、3D頂点位置に関して上述した同じ手法を用いて圧縮することができる、他のデートと関連付けることも可能である。テクスチャマップオペレーション (texture map operation) では、グラフィックスレンダリングシステムは2D画像を3Dオブジェクトの表面にマッピングする。オブジェクトの各頂点のテクスチャ座標は、2Dテクスチャ空間における、その頂点の対応する位置を表している。出力画像のピクセルを計算するとき、グラフィックスレンダリングシステムはテクスチャ座標を使用して、テクスチャ画像内の該当テクスチャサンプル(1つまたは複数)をピクセルごとに見つける。テクスチャマップオペレーションの形態に応じて、グラフィックスレンダリングシステムはテクスチャサンプルをフィルタに通してから、その結果のカラー値を出力ピクセルに適用することができる。テクスチャ座標は、テクスチャ座標が3D空間ではなく2D空間の位置を表していることを除けば、3D頂点位置のメッシュと同じマトリックス形式で表現することができる。構造が類似しているために、時間変化3Dジオメトリのマトリックスに適用される同じ圧縮手法を、テクスチャ座標のマトリックスにも適用することが可能である。
【0179】
代表例として、テクスチャ座標はスタッチク(静的)であるが、これは必須ではない。例えば、川の水のさざなみの画像は、テクスチャ座標をアニメーション化することだけで下流に移動させることができる。具体的には、特定頂点のテクスチャ座標は時間の関数として表現することができる。ビジュアル効果が大きいクラスでは、アニメーション化ジオメトリとアニメーション化テクスチャを結合することは不可欠である。テクスチャ座標を変化させる新しいアプリケーションは、アニメーション化ジオメトリ圧縮の基礎が与えられていれば、実現することができる。
【0180】
詳細レベルの表現は、ジオメトリ座標とテクスチャ画像の両方を含んでいることが好ましい。ジオメトリック詳細レベルが低であれば、テクスチャ座標には対応する低詳細レベルを使用するだけで十分である。テクスチャ画像の空間的解像度は、空間的解像度レベルが変化する階層方式で、可能ならば、空間−時間ピラミッドにおけるジオメトリック詳細レベルに対応付けて、符号化することができる。選択的プレイバックのコンテキストでは、サーバは最初にテクスチャ画像の低詳細レベル係数を送信し、その後、必要に応じて高詳細レベルを送信すれば、よりファインな詳細を必要とするビューポイントでテクスチャ画像を精細化することができる。画像とジオメトリの両方の更新を結合すると、与えられた解像度でどちらが重要であるかに応じて、トレードオフを行うことができる。アニメーション化テクスチャ画像では、このトレードオフは時間的詳細と空間的詳細の両方で行うことができる。
【0181】
時間的および空間的符号化の対象となる高次表面
高密度にサンプリングされた頂点マトリックスVの初期表現では、2つの補間マトリックスS(時間を通る)とG(空間を通る)は、連続する位置マトリックスP = S V Gを得るようにグラフィックスシステムによって定義されるものと想定していた。しかし、SとGが初期に一定補間または線形的補間として与えられていれば、特に最新のグラフィックスハードウェアには、スプラインや細分化表面のような、高次ジオメトリック補間のサポートが含まれているので、高次補間値(interpolator) S’とG’をVから導き出すようにすると好都合である。
【0182】
最良S’とG’の推定は下から上に向かって行われる。最初に、時間的および空間的に小さな近隣値がランダムに選択され、与えられた次数のローカル最良合致スプライン表面と適合する。次に、最良合致をもつ近隣値の成長と合体 (coalesce) を繰り返すと、S’とG’のローカル貪欲最適値 (local greedy optimum) が見つかる。これは、前述したトライアングルセグメンテーションに似ているが、空間的座標と時間的座標の両方を使用して、合致領域の規模を決定している。
【0183】
高次補間値が正確に合致しないときでも、これらは、表面が時間的にどのように移動するか、あるいは空間的に点から点へどのように変化するかを予測する手段として使用することができる。残余R = S V G − S’ V’ G’は、オリジナルマトリックスP = S’ V’ G’ + Rを回復するために使用できる。
【0184】
残余の符号化のための変位マップ
大部分のグラフィックスハードウェアは、2Dカラー画像を形状の表面ジオメトリに効率良くマッピングするテクスチャマッピングハードウェアを含んでいる。最新グラフィックスハードウェアは「バンプ(bump)」マッピングも含んでおり、そこでは、2D画像はカラーではなく、形状の法線 (normal) を乱し、関心のある照明効果が得られるようにしている。いくつかの最新グラフィックスハードウェアは「変位(displacement)」マッピングも含んでおり、そこでは、オフセットの2D画像が形状の位置を乱すようにしている。
【0185】
時間依存ジオメトリコーダの残余を表面のローカル座標に変換すると、変位マッピングは残余を伸張された表面に適用するために使用することができる。時間依存残余は、変位マップとして符号化された複数の残余をブレンドすることで計算することができる。グラフィックスシステムは高速データ通路と高速頂点プロセッサを装備しているので、このグラフィックスシステムは、最終的残余補正を伸張された形状に適用する効率的な場所になっている。これが特に効率的な手法となるのは、前述した高次表面符号化と併用したときである。
【0186】
実施形態の例
本実施形態では、上述した圧縮方法を組み合わせたものを使用して、時間依存ジオメトリを表す頂点位置のマトリックスを圧縮している。図9はこの実施形態におけるコンピュータを示すブロック図であり、図10は伸張器を示すブロック図である。
【0187】
図9に示すように、頂点位置のマトリックスVで表されている、時間依存ジオメトリのストリームを圧縮するプロセスは時間依存メッシュを単純化することから始められる。本実施形態では、アニメーションの第1フレームのメッシュはベースメッシュとして使用されている。しかし、上述したように、ベースメッシュを決定するには、さまざまな代替方法があり、この中には、モデルの作成者が事前定義したもの、マトリックスVに含まれる一連のメッシュの平均から導き出されるもの、などが含まれている。本実施形態では、アニメーションの第1フレームのメッシュに二次曲面誤差測定手法を使用して、ペア縮小の集合を上述した精細化マトリックステーブル行の1つの形で得ている。図9に示す単純化メッシュブロック250は、頂点位置のメッシュについてGarlandの二次曲面誤差測定手法を実装するために使用されるルーチンを表している。
【0188】
結果として得られるペア縮小の集合は、オリジナル時間依存頂点マトリックスVの行の残りに適用され、ブロック252に示すような精細化マトリックスが得られる。この精細化マトリックスは拡張レコードを通るように「順方向にローリング」され、マトリックスVに含まれるオリジナルメッシュの各々の単純化バージョンが作成される。
【0189】
ブロック252からの単純化メッシュは、単純化ベースメッシュを含めて、ベースメッシュとマトリックスV内の他のメッシュとの間の最良アフィン合致を見つけるために使用される。マトリックスV内のメッシュの各々は、アニメーションシーケンス内のタイムサンプル、つまり、アニメーション内のフレームに対応している。変換合致ブロック254は、各フレームのアフィン変換係数の集合を計算するために使用されるルーチンを表している。これらのルーチンは低詳細レベルの頂点マトリックスを使用して、
【0190】
【数27】
Figure 0004384813
【0191】
に対する最小2乗解の近似値を計算する。変換ブロック254には、正規方程式の方法を実行して変換係数の解を求めるルーチンも含まれており、そこには、ベースメッシュの4 x 4 適合マトリックスの累算と反転、およびn x 4 マトリックスと適合マトリックスとのマトリックス積が次のように含まれている。
【0192】
【数28】
Figure 0004384813
【0193】
本実施形態では、頂点位置の時間依存マトリックスVにおけるメッシュの各々は、そのローカル座標系に表現されている。このようにすると、時間を通るメッシュの動きのコヒーレンスが向上するが、圧縮器の計算複雑性も増加することになる。精細化マトリックスのメッシュはローカル座標に表現されるので、ローカル座標はグローバル座標に変換される必要がある(言い換えれば、メッシュが変換される必要がある)。本実施形態では、これは、アフィン変換係数が計算された後、新しい座標内のメッシュの各々を単純化し直すことによって解決されている。
【0194】
精細化マトリックスを新しい座標系に変換する別の方法は、拡張レコードに入っているデルタ値を、それぞれのローカル座標系から新しいグローバル座標系に変換することである。図9のブロック256は、ブロック250と252のメッシュ単純化ルーチンを新座標系のメッシュの各々に適用するプロセスを表している。
【0195】
次に、圧縮器は、メッシュの各々と変換ベースメッシュとの間の差分で、各メッシュに対応するアフィン変換係数を使用して計算された差分として残余を圧縮する。アフィン変換係数と単純化ベースメッシュは共に量子化され、その後、量子化器ブロック260、262と量子化解除器ブロック264、266に示すように量子化解除される。ジオメトリック変換ブロック270は、カレントメッシュのアフィン変換係数をベースメッシュに適用して、変換ベースメッシュを計算するルーチンを表している。変換ベースメッシュと対応する単純化メッシュとの差分は図示のように減算器ブロック272によって計算される。
【0196】
時間依存ジオメトリをさらに圧縮するために、本実施形態によれば、基底分解コード化 (basis decomposition coding) がオプションとしてサポートされている。なお、量子化残余(量子化ブロック274)、アフィン変換係数276、およびベースメッシュ278は、このステージでトランスミッタ280に直接に送ることができる。しかし、ある種のアニメーションでは、基底分解によると、3Dジオメトリマトリックスをさらに圧縮することができ、この中には、残余マトリックス282と単純化ベースメッシュを表すマトリックスが含まれている。
【0197】
基底分解ブロック286は、マトリックスをその基底ベクトル288と重み290(係数とも呼ばれる)に分解するプロセスを表している。本実施形態では、精細化マトリックスの切り捨てバージョン (truncated version) を使用して、基底関数と重みの集合を計算している。このステップを行うかどうかはオプションであるのは、ある種の動きは分解に役立たないが、それでも精細化マトリックスの空間的および時間的コヒーレンスが大きいためである。従って、基底分解ステップをバイパスし、残余の精細化マトリックスで列/行予測を行うことが可能である。
【0198】
基底分解が残余の精細化マトリックスで行われる場合は、重みがブロック292、294に示すように列/行予測器に渡される。逆に、基底分解が適用されない場合は、フラット精細化階層が列/行予測器に渡される。圧縮器は、量子化ブロック296と298に示すように、正規量子化を基底ベクトルと予測器ブロックの出力に適用する。
【0199】
圧縮器は、時間依存ジオメトリストリームを表す精細化階層全体を符号化するが、階層全体をランタイムにデコーダに送る必要はない。その代わりに、アニメーションの中の、与えられたビューポイントのために必要とされる空間的精細化だけが送信され、更新される必要がある。同様に、時間的精細化が必要になるのは、ジオメトリの位置の変化がアニメーションの中で見える程度まででよい。トランスミッタ280は、時間依存ジオメトリの、どの時間的および空間的コンポーネントを送信する必要があるかを決定するように適応させることができる。例えば、トランスミッタは時間依存ジオメトリストリームで表されたモデルのスクリーン空間投影を評価して、アニメーションの中の、与えられたビューポイントのために送信する必要のある空間的および時間的精細化を決定することができる。
【0200】
図10は、図9の圧縮器からの符号化時間依存ジオメトリを復号化する伸張器を示すブロック図である。レシーバブロック320は符号化時間依存ジオメトリをデマルチプレクスする。圧縮器の動作モードに応じて、この符号化データには、量子化基底ベクトル322、予測および/量子化重み324、階層構造326内の量子化ベースメッシュ、量子化ジオメトリック変換パラメータ328、および精細化マトリックスフォーマットの量子化残余(場合によっては、予測残余)を含めることができる。なお、基底ベクトル322と重み324を使用すると、ベースメッシュだけでなく、残余も表現することができる。量子化解除ブロック340−348は、それぞれのデータタイプの各々の量子化解除を表している。
【0201】
圧縮器がベースメッシュまたはベースメッシュの重みと残余で予測(行または列)を使用していれば、伸張器は逆の予測350を行って、マトリックスを予測以前の形態に復元する。
【0202】
メッシュ再構築ブロック352は、残余の精細化マトリックスとベースメッシュを復元する。圧縮器で行われる基底合成では、k個の浮動小数点乗算累算が行われる。ここで、kは基底ベクトルの個数である。なお、k個の基底ベクトルの部分集合nだけを送信して、精細化マトリックスを圧縮することも可能である。n個の基底ベクトルは最上位ベクトルである。例えば、k個中の最初のn個のベクトル。
【0203】
変換ブロック354はカレントメッシュの量子化解除アフィン変換係数を、ベースメッシュの再構築精細化マトリックス内の対応するエントリに適用して変換ベースメッシュを計算する。加算器ブロック356は量子化解除残余と、変換ベースメッシュの対応する要素を結合することを表している。残余は精細化マトリックスの一部から得られる。その後、拡張ブロック358は再構築精細化マトリックスの該当部分を拡張して、カレントフレームの再構築メッシュを計算する。
【0204】
軌跡の圧縮
上述したように、3Dモデルの動きを定義するために使用されるジオメトリックデータは、3Dモデルに関連する3D参照点の一連の変形ベクトルとして表すことができる。Guenter他を参照。変形ベクトルはマトリックス形式で表現することができる。例えば、マトリックスの列は時間インターバルに対応し、行は3D参照点の変形ベクトルに対応している。このマトリックスはマトリックスを基底ベクトルと係数に分解すると、効率よくコード化することができる。係数は時間的予測を使用してコード化することができる。量子化とエントロピコード化は、基底ベクトルと係数をコード化するためにも使用できる。
【0205】
図11は、変形ベクトルのマトリックスをどのようにコード化すると、ストアと送信に効率のよいフォーマットになるかを示す図である。ジオメトリックデータは変形ベクトルのマトリックス(400)として表現されている。この特定例では、列は、アニメーションシーケンスのフレームのような時間のインクリメントに対応している。行は、対応する3D参照点の位置を定義している3Dベクトルに対応している。
【0206】
分解ブロック(402)はマトリックスを係数(440)と基底ベクトル(406)に分解するモジュールである。時間的予測ブロック(408)は、係数マトリックスの列間の時間的予測を行うモジュールを表している。係数と基底ベクトルは、量子化とエントロピコード化モジュール(410、412、414および416)に示すような、量子化とエントロピコード化を使用して圧縮することができる。係数の場合には、予測は係数の予測前と後に係数のマトリックスで行うことができる。ジオメトリックデータとそのデータをストアするために使用されるマトリックスの形態によっては、係数マトリックスの列と行のどちらでも予測を使用することが可能である。
【0207】
エントロピコード化モジュール(412、416)の出力はトランスミッタまたはハードディスクなどのストレージデバイスに送られる。ある種のアプリケーションでは、変形ベクトルは、可能であれば、なんらかの形態の入力に応答して計算され、送信用にコード化されている。ここで言う「トランスミッタ」とは、バス、コンピュータネットワーク、電話回線、シリアル通信リンクなどの、なんらかの形態の通信媒体上にコード化データを伝送するために使用されるシステムソフトウェアおよび/またはハードウェアのことである。圧縮ジオメトリデータがどのように転送されるかは、通信媒体によって決まる。
【0208】
変形データの即時転送を必要としない他のアプリケーションでは、変形ベクトルを圧縮すると、依然として有利である。具体的には、圧縮データに必要な記憶スペースが少なくなり、必要とするメモリ帯域幅が低減化される。
【0209】
マトリックスを基底ベクトルと係数に分解する方法には、さまざまなものがある。以下では、主要コンポーネント分析をどのように適用すると、3Dモデルの時間変化位置を表すマトリックスを圧縮できるかを、例を示して説明することにする。
【0210】
データ集合がマトリックスAとして表されていて、データのフレームiがAの列iをマップしているとすると、Aの最初の主要コンポーネントは次のようになる。
【0211】
【数29】
Figure 0004384813
【0212】
式 (3) を最大限にするuは、AAT の最大固有値 (eigenvalue) に関連する固有ベクトル (eigenvector) あり、これは最大値の値でもある。後続の主要コンポーネントは、すべての先行主要コンポーネントに直交していることを除けば、同じように定義される。つまり、ui T uj for j ≠ i。主要コンポーネントはマトリックスUで表される正規直交基底集合 (orthonormal basis set) となり、そこでは、Uの列は、固有値サイズ別に配列されたAの主要コンポーネントであり、最上位主要コンポーネントはUの最初の列に置かれている。
【0213】
Aマトリックス内のデータは、次のように主要コンポーネント基底上に投影することができる。
【0214】
【数30】
Figure 0004384813
【0215】
Wの行iは、列Ai を基底ベクトルui 上に投影したものである。もっと正確に言うと、Wの行iのj番目の要素はオリジナルデータのフレームjを、i番目の基底ベクトル上に投影したものに対応している。Wマトリックス投影の要素は係数と呼ぶことにする。
【0216】
同様に、Aは、次のように基底集合で乗算すると、Wから正確に再構築することができる。
【0217】
【数31】
Figure 0004384813
【0218】
本発明の目的上、主要コンポーネントの最も重要なプロパティは、これらが、I2 正規形の意味で再構築するときの最良線形基底集合となることである。与えられたどのマトリックスUk の場合も(ここで、kはマトリックスの列の数およびk < rank(A) である)、次の再構築誤差
【0219】
【数32】
Figure 0004384813
【0220】
(ここで、
【0221】
【数33】
Figure 0004384813
【0222】
は次のように定義されているFrobenius正規形である。)
【0223】
【数34】
Figure 0004384813
【0224】
は、Uk がAのk個の最上位主要コンポーネントを含んでいるマトリックスであれば、最小限になる。
【0225】
データ集合Aは、その対応するWとUマトリックスの要素を量子化し、これらをエントロピコード化することで圧縮することができる。圧縮データは主要コンポーネント基底ベクトルがなければ再構築できないので、WマトリックスとUマトリックスの両方を圧縮する必要がある。基底ベクトルでは、DCT基底のように、オリジナルデータ集合から独立して計算できる基底集合では存在しないオーバヘッドが余分に生じることになる。
【0226】
特定の構造をもたないデータシーケンスでは、得られる圧縮効率以上に基底ベクトルの余分オーバヘッドが発生するおそれがある。しかし、正規フレーム間構造をもつデータ集合では、主要コンポーネントの基底ベクトルで再構築するときの残余誤差は、他のベースよりもはるかに小さくすることができる。この残余誤差の減少は、基底ベクトルのオーバヘッドビットを埋め合わせるのに十分な大きさになる。
【0227】
主要コンポーネントは、Strang著「線形代数とその応用(Linear Algebra and its Application)」、HBJ, 1988に記載されている特異値分解 (singular value decomposition − SVD) 法を使用して計算することができる。このアルゴリズムを効率化した実装は広く利用されている。マトリックスAのSVDは次のようになっている。
【0228】
【数35】
Figure 0004384813
【0229】
上記において、Uの列はA AT の固有値、対角マトリックスΣ上の特異値Σi はA AT の固有値の平方根、Vの列はA AT の固有値である。Uのi 番目の列はAのi 番目の主要コンポーネントである。Aの最初のk個の左特異値を計算することは、最初のk個の主要コンポーネントを計算するのと同じである。
【0230】
以上、あるタイプの主要コンポーネント分析を説明してきたが、他の形態の主要コンポーネント分析を使用してジオメトリデータを圧縮することも可能である。別の形態の主要コンポーネント分析は、KL変換 (Karhunen-Loeve) と呼ばれている。
【0231】
3Dマーカの変形ベクトルの圧縮
ジオメトリックデータは、顔の動きが高度に構造化されているため、上述したように長期の時間的コヒーレンスプロパティをもっている。本実施形態を使用したあるテストケースでは、ジオメトリックデータの基底ベクトルのオーバヘッドは、キャプチャされる3Dオブジェクトに182個のマーカがあったため、固定していた。このケースでは、基底ベクトルの最大数は、3つの数x, y, zが各マーカと関連付けられているので182 * 3である。基底ベクトルのオーバヘッドはアニメーションシーケンスの長さが増加すると共に着実に減少している。
【0232】
ジオメトリックデータは、i番目のフレームの3Dオフセットデータを受け取り、それをデータマトリックスAg のi番目の列にマッピングすることによってマトリックス形式にマッピングされる。投影係数はマトリックスMg にストアされる。
【0233】
投影係数の列の間に顕著な相関関係があるのは、3D参照点の動きが経時的に相対的にスムーズであるからである。量子化投影係数のエントロピは列iの投影係数を、列i-1、つまり、ci-1iから時間的に予測し、これらの列の対応する要素間の差分を符号化することによって減少することができる。このテストケースでデータ集合を圧縮するために、均一量子化を使用して係数を量子化し、その後時間的予測を使用してこれらをさらに圧縮した。以下で述べるように、他の形態の量子化を使用することも可能である。
【0234】
このデータ集合では、Wg の最初の45個の行に対応する、最初の45個の主要コンポーネントに関連する投影係数だけが顕著な時間的相関関係をもっているため、最初の45個の行だけが時間的に予測される。残りの行は直接にエントロピコード化される。時間的予測の後、エントロピこのテストケースでは、約20パーセントだけ減少している。図12は、最初の45個の係数の時間的予測が、どのようにエントロピを減少したかを示すグラフである。垂直軸はエントロピをサンプル当たりのビット数で示し、水平軸は係数のインデックスを示している。このケースでは、各係数はサンプルである。点線は予測なしの係数のエントロピをプロットしたもので、実線は予測付きの係数のエントロピをプロットしたものである。
【0235】
上述したように、基底ベクトルはこれらを量子化すると、さらに圧縮することができる。本実施形態では、基底ベクトルは、ピーク誤差レートを選択し、その後、各ベクトルに割り当てられた量子化レベルの数を各ベクトルの投影係数の標準偏差に基づいて変えることによって圧縮されている。この形態の量子化はスカラ量子化 (scalar quantization − SQ) とも呼ばれている。SQは、実数を丸めによって整数に変換する量子化法である。SQでは、丸め関数(例えば、round(.))が次の例に示すように、実数を整数に変換している。すなわち、数4.73はround(4.73) = 5によって近似化され、数3.21はround(3.21) = 3によって近似化され、数-6.1はround(-6.1) = -6によって近似化される。なお、丸めには、近似化誤差があり、これは-0.5と0.5の範囲で変化している。つまり、その最大絶対値は0.5である。round(.)関数のとり得る値は量子化レベルとも呼ばれている。
【0236】
以下の例では、xi が基底ベクトルのi 番目の座標であり、i が1からNの間で変化するものとしている。ここで、Nは、すべてのベクトルにおけるすべての座標の数である。SQ法の例は次のようになっている。
【0237】
1) すべてのxi(ただし、I = 1,2,..., N)を調べ、Vをその最大絶対値と名付ける。つまり、すべてのiについてV = max { |xi| }
2) 最大相対誤差(「ピーク誤差レート」)dをセットする。例えば、d = 0.001は、最大相対誤差が0.1%であることを意味する。
3) すべてのxi を「ゲイン」係数だけスケーリングする。ただし、A = 0.5 / (d* V)。すなわち、すべてのiについてyi = A * xi を計算する。
4) 次に、値を最寄りの整数に丸めて量子化する。つまり、すべてのi についてui = round(yi)
5) 量子化した値のスケーリングを、Aの反転によって元に戻す。つまり、すべてのi について vi = ui / Aを計算する。
【0238】
なお、量子化値vi はオリジナル値xi の近似値になっている。この近似値の質は、最大相対誤差がmax(|xi - vi|) / max {|xi|} <= d を満足しているので、パラメータdによって制御される。
【0239】
なお、vi とui の間には1対1の関係がある。ui は整数であるので、これらは有限数のビットで表されている。さらに、小さな値をもつui は大きい値をもつものよりもビット数が少なくなっている。
【0240】
最後に、画像の集合が与えられているとき、ベクトルの値ui は確率分布が非均一になる。例えば、yi の値の多くは非常に小さいのが代表的であるので、ui はゼロになる。従って、量子化によると、量子化されたデータをエントロピコーダで圧縮すると、コードワードが発生確率に基づいて各値に割り当てられるので圧縮効率が向上する。図12のグラフは、そのようなコーダのエントロピ(係数当たりの平均ビット数)を示している。
【0241】
別の形態の量子化を使用することも可能である。例えば、数xi は小さなベクトルにグループ化した後で(例えば、M = 4またはM = 8の値グループ)、ベクトル量子化 (vector qualification − VQ) を使用して圧縮することができる。VQでは、ベクトルはM次元空間における正規または非正規点格子内の最寄りの近隣によって近似化される。
【0242】
実用では、本テストケースで生成されたデータの場合、VQを使用しても向上はわずかである。多くても圧縮が20%向上するだけである。
【0243】
上述したように、予測係数と量子化基底ベクトルは、算術演算またはハフマン(Huffman) コード化などの、エントロピコード化を使用するとさらに圧縮される。エントロピコード化によると、発生頻度の高いサンプルには短いコードが、発生頻度の低いサンプルには長いコードが割り当てられるので、ジオメトリックデータはさらに圧縮されることになる。
【0244】
ピーク誤差レートをいろいろと変えてWgを圧縮したアニメーションシーケンスをビジュアルに検査した。誤差レベルが約0.001または0.002のときのWg のエントロピは36 Kビット/秒、Ug のエントロピは13 Kビット/秒であり、全グラフィックデータでは合計40 Kビット/秒である。これらの値は3330フレームのアニメーションシーケンス(1秒)の場合の平均である。
【0245】
伸張 (decompression)
ジオメトリデータは、コード化ステップを逆に実行することによって復号化される。最初に、エントロピデコーダ(復号器)は、基底ベクトルと係数を可変長コードから再構築する。次に、係数が予測係数から再構築される。次に、逆量子化器は係数と基底ベクトルを復元する。変形ベクトルのオリジナルマトリックスは、その後、基底ベクトルと係数マトリックスから再構築される。
【0246】
変形軌跡エンコーダとしてのセグメンテーションとジオメトリック変換
Guenter他によれば、システムへの入力として変形コントロールの集合が与えられている(例えば、俳優の顔またはボディ上の蛍光ドットの位置によって)。このセクションで説明している手法は、生の頂点マトリックスが与えられているとき、変形コントロールを推定している。初期頂点マトリックスVが与えられた後で、上述したセグメンテーションとジオメトリック変形手法を適用すると、V = A Bが因数分解される。ここで、Aは軌跡の集合、Bは影響重み (influence weight) の集合である。例えば、アフィンジオメトリックコーダでは、左辺は時間依存アフィン変換であり、右辺は初期ベースメッシュの集合である。
【0247】
【数36】
Figure 0004384813
【0248】
ジオメトリの意味では、Aは時間変化変形コントロールの集合である。アフィン例では、これらのコントロールは、オリジナル表面近くの並行移動中心周りの回転、スケール、およびスキューを定義する点の集合である。
【0249】
動作環境
プロトタイプは次の2システム上に実装されている。
1) Silicon Graphics, Inc.提供のワークステーション
a. 150MHz MIPS R4400 プロセッサおよび128 MBメモリを搭載し、IRIX 5.3オペレーティングシステムが稼動しているIndigo2 モデル。
b. OpenGLが稼動している急進的グラフィックスコプロセッサ
2) Gateway, Inc. 提供のGateway 2000コンピュータ
a. 300MHz Intel Pentium IIプロセッサと128 MBメモリを搭載し、Microsoft Windows 98オぺレーティングシステムが稼動しているE5000モデル。
b. NVIDIA RivaTNTグラフィックスチップセットを使用し、Microsoft DirectXマルチメディアAPIが稼動しているDiamond Multimedia Viper550グラフィックスカード。
【0250】
図13と以下の説明は、上述したソフトウェアルーチンを実装できる適当なコンピューティング環境の概要を簡単に説明することを目的としている。
【0251】
図13は、本発明用の動作環境として使用できるコンピュータシステムの例を示す図である。コンピュータシステムは従来のコンピュータ520を装備し、その中には、処理ユニット521、システムメモリ522、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット521に結合しているシステムバス523が含まれている。システムバスは、いくつかを挙げると、PCI、VESA、マイクロチャネル (Microchannel)、ISAおよびEISAなどの、従来の種々バスアーキテクチャのいずれかを使用する、数種タイプのバス構造のいずれかで構成することが可能であり、この中には、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスが含まれている。システムメモリとしては、リードオンリメモリ (read only memory - ROM) 524とランダムアクセスメモリ (random access memory - RAM) 525がある。基本入出力システム (basic input/output system − BIOS) 526は、スタートアップ時のときのように、コンピュータ520内のエレメント間で情報を転送しやすくする基本ルーチンから構成され、ROM524に格納されている。コンピュータ520は、さらに、ハードディスクドライブ527、例えば、取り外し可能ディスク529に読み書きするための磁気ディスクドライブ528、および例えば、CD-ROMディスク531を読み取り、あるいは他の光媒体に読み書きするための光ディスクドライブを装備している。ハードディスクドライブ527、磁気ディスクドライブ528、および光ディスクドライブ530は、それぞれハードディスクドライブインタフェース532、磁気ディスクドライブインタフェース533、および光ディスクドライブインタフェース534を通してシステムバス523に接続されている。これらのドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令などをコンピュータ520のために保管しておく、不揮発性ストレージとなっている。上記コンピュータ可読媒体の説明では、ハードディスク、取り外し可能磁気ディスクおよびCDだけが挙げられているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、Bernoulliカートリッジなどのように、コンピュータが読み取れる媒体ならば、他のタイプの媒体をこのコンピューティング環境で使用することも可能である。
【0252】
ドライブおよびRAM525には、複数のプログラムモジュールを格納しておくことができる。そのようなものとしては、オペレーティングシステム、1つまたは複数のアプリケーションプログラム(上述した圧縮および伸張ルーチンなど)、他のプログラムモジュール537、およびプログラムデータ538(例えば、マトリックスV、ジオメトリック変換パラメータ、残余の精細化マトリックス、ベースメッシュなど)などがある。ユーザは、キーボード540およびマウス542などのポインティングデバイスからコマンドや情報をコンピュータ520に入力することができる。他の入力デバイス(図示せず)としては、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。上記および他の入力デバイスは、システムバスに結合されているシリアルポートインタフェース546を通して処理ユニット521に接続されていることがよくあるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス (universal serial bus − USB) などの、他のインタフェースで接続することも可能である。
【0253】
モニタ547または他のタイプのディスプレイデバイスも、ビデオコントローラ548などのインタフェースを介してシステムバス523に接続されている。ビデオコントローラは、ピクセル強度値を、ディスプレイ上でスキャンされるアナログ信号に変換することによってレンダリングパイプラインによって生成される出力画像の表示を管理している。グラフィックスワークステーションによっては、コンピュータ上の拡張スロットにプラグインされるグラフィックスアクセラレータやマザーボード上のバス構造を通してプロセッサとメモリに接続されるグラフィックスレンダリングチップセットのような、追加のレンダリングデバイスを装備しているものもある。この種のグラフィックスレンダリングハードウェアは、代表例として、専用ハードウェアを使用して、Vにメッシュで形成されたポリゴン(多角形)などの、ジオメトリックプリミティブをスキャン変換することによって画像生成を加速化している。
【0254】
コンピュータ520は、リモートコントローラ549などの、1つまたは複数のリモートコンピュータとの論理的コネクションを使用するネットワーキング環境で動作させることができる。リモートコンピュータ549はサーバ、ルータ、ピアデバイスまたは他の共通ネットワークノードにすることができ、コンピュータ520に関連して上述したエレメントの多くまたはすべてを含んでいるのが代表的である。なお、図13には、メモリストレージデバイス550だけが示されている。図13に示す論理的コネクションとしては、ローカルエリアネットワーク (local area network − LAN) 551と広域ネットワーク(wide area network − WAN) 552がある。このようなネットワーキング環境は、オフィス、エンタープライズワイドコンピュータネットワーク、イントラネットおよびインターネット (the Internet) で普及している。
【0255】
LANネットワーキング環境で使用されるときは、コンピュータ520はネットワークインタフェースまたはアダプタ553を通してローカルネットワーク551に接続されている。WANネットワーキング環境で使用されるときは、コンピュータ520は、インターネットなどの広域ネットワーク552上で通信を確立するためのモデム554または他の手段を装備しているのが代表的である。モデム554は、外部モデムと内部モデムのどちらも、シリアルポートインタフェース546を介してシステムバス523に接続されている。ネットワーキング環境では、コンピュータ520に関連して示されているプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納しておくことができる。図示のネットワークコネクションは単なる例であり、コンピュータ間の通信リンクを確立する他の手段を使用することも可能である。
【0256】
【表6】
Figure 0004384813
【0257】
表1は、コーデックでの結果であり、そこでは、残余行予測によるジオメトリック変換コード化 (Affin-Match) によって時間依存頂点マトリックスが圧縮され、その後に続いてエントロピコード化(GNUのgzipのLempel-Ziv手法を使用)が行われている。この表は、未圧縮浮動小数点頂点マトリックス(サイズ14544000バイト = 400フレーム * 3030頂点/フレーム * 3座標/頂点 * 4バイト/座標)と圧縮メッシュとの比率別にソートされている。比較のために、最後の行には、16ビットに量子化された生の(raw)頂点マトリックスが示されている。
【0258】
【表7】
Figure 0004384813
【0259】
表2は、各種圧縮手法の比較を示している。これらの結果から分かるように、アニメーション化モデルがアフィン変換モデル(Chicken欄の最下段行)に近いとき、アフィンマッチ手法が高圧縮になっている。MPEG4の実験用圧縮器は階層のアニメーションを活用する設計になっていない。顔の例では、全頂点マトリックスに適用される汎用アフィン合致圧縮器は、各フレームに適用されるMPEG4実験用コーダよりも性能が悪くなっている。ドット軌跡に適用されたときは、アフィン合致圧縮器は良好な働きをする。このことから分かるように、圧縮器は、最も適合するエンコーダを見つけるためには、アフィン合致だけよりも、大きなクラスのアニメーションモデルを探さなければならない。
【0260】
代替実施形態
以上、可能とされるいくつかの実施形態を参照して本発明を説明してきたが、本発明はこれらの特定実施形態の範囲に限定されないことはもちろんである。本発明の実施形態には、上述してきた新規コード化方法の1つまたは2つ以上を取り入れることが可能である。さらに、上述したコード化方法は、他のコード化方法と併用することが可能である。時間変化ジオメトリデータを表すマトリックスには、離散コサイン変換 (Discrete Cosine Transform − DCT)、ウェーブレット/ゼロツリーコーダのような、周波数ドメインコーダを適用することが可能であり、この中には、頂点位置のマトリックス、変形ベクトルや奇跡のマトリックス、および残余のマトリックスが含まれている。これらのコード化方式は、上述したコード化方法で残余マトリックスに適用したとき特に効果的である。ジオメトリック構造が除かれた後(例えば、アフィン変換ベースメッシュがカレントの頂点位置マトリックスから除かれた後)、周波数ドメインコーダを残余マトリックスに適用することができる。周波数ドメインコーダに加えて、エントロピコーダと量子化を使用すると、変化するジオメトリストリーム内のデータをさらに圧縮することができる。
【0261】
圧縮手法は、上述した空間と時間だけでなく、他の次元にわたっても適用することが可能である。
【0262】
本発明の原理を適用できる実施形態は多数が可能であるので、当然に理解されるように、上述してきた実施形態は本発明の単なる例であり、本発明の範囲を限定するものではない。むしろ、本発明の範囲は特許請求の範囲に定義されている通りである。従って、特許請求の範囲に記載されている特徴はすべて、本発明の範囲と精神に属するものである。
【図面の簡単な説明】
【図1】 メッシュ変換コーダの例を示すブロック図である。
【図2】 変換マッチングを実行して変換パラメータを時間依存ジオメトリから導き出すベースメッシュ変換コーダを示すブロック図である。
【図3】 ジオメトリック変換ではなく、逆ジオメトリック変換を符号化する代替ベースメッシュ変換コーダを示すブロック図である。
【図4】 先行タイムサンプル用に計算されたメッシュを、カレントタイムサンプルのベースメッシュとして使用する別タイプのメッシュ変換コーダを示すブロック図である。
【図5】 マトリックス予測コーダの例を示すブロック図である。
【図6】 主要コンポーネント分析を使用して時間依存ジオメトリストリームを圧縮するメッシュ基底コーダを示すブロック図である。
【図7】 回転しながら、並行移動する立方体のアニメーションシーケンスを示す図であり、そこでは、アニメーションのいくつかの側面が別々のフレーム列に示されている。つまり、1) 最下行は左から右へ単純に並行移動する立方体のジオメトリを示し、2) 中間行は立方体の上部が立方体の下部よりも高速に回転しているが、立方体の辺が直線のままになっている中間形態のアニメーションを示し、3) 最上行は立方体の曲線の動きが複雑化し、その頂点が立方体の下部から上部に徐々に高速に回転していることを示している。
【図8】 空間と時間の両方における詳細レベル間の空間−時間ピラミッドの構造を示す図である。
【図9】 メッシュ変換コード化、基底コード化、メッシュ単純化および行/列予測コード化を結合した時間依存ジオメトリのプロトタイプ圧縮器を示すブロック図である。
【図10】 図9の圧縮器によって出力された圧縮時間依存ジオメトリの伸張器を示すブロック図である。
【図11】 主要コンポーネント分析、時間的予測、量子化およびエントロピコード化を使用して時間変化ジオメトリを符号化するコーダを示すブロック図である。
【図12】 変形ベクトルの主要コンポーネント分析によって生成された係数の時間的予測が係数のエントロピを低減化する様子を示すグラフである。
【図13】 本発明をソフトウェアで実現したときの動作環境の働きをするコンピュータシステムを示すブロック図である。

Claims (21)

  1. コンピュータの処理ユニットによって、アニメーションシーケンスで移動する3Dジオメトリを圧縮する方法であって、該方法は、
    アニメーションシーケンス内の一連の3Dメッシュを定義するジオメトリストリームを受け取るステップであって、前記一連の3Dメッシュを表すために、3D空間におけるオブジェクトをモデリングするための離散的時間での3Dの頂点位置のマトリックスが用いられ、前記3Dの頂点位置は、前記一連の3Dメッシュ間を動き、前記アニメーションシーケンス内の前記オブジェクトの動きのシミュレーションを行うステップと、
    前記ジオメトリストリームを符号化するステップであって、
    アニメーションシーケンス内の一連のカレントメッシュの位置に近似化するようにベースジオメトリックメッシュを変換するジオメトリック変換を決定するステップであって、前記ジオメトリック変換は、動きモデルに従うメッシュ変換を含むステップと、
    変換されたベースメッシュを決定する前記ジオメトリック変換に従い前記ベースメッシュを変換するステップと、
    前記変換されたベースメッシュの要素とカレントメッシュの対応する要素との間の差分として残余を決定するステップと、
    残余、ベースメッシュおよびジオメトリック変換を符号化するステップとを含むステップとを備えることを特徴とする方法。
  2. 請求項1に記載の方法において、さらに、
    ジオメトリック変換を量子化するステップと、
    ジオメトリック変換を量子化解除するステップと、
    ベースメッシュを量子化するステップと、
    ベースメッシュを量子化解除するステップとを含み、
    前記変換するステップは、量子化解除ベースメッシュを量子化解除変換で変換して変換ベースメッシュを計算することを含むことを特徴とする方法。
  3. 請求項1に記載の方法において、さらに、1つ以上の一連の後続メッシュの各々に対して、
    前記アニメーションシーケンス内の前記後続メッシュの位置を近似化するためのジオメトリック変換を決定するステップと、
    前記後続メッシュの残余を決定するステップと、
    前記後続メッシュの前記残余と前記後続メッシュを近似化するための前記ジオメトリック変換を符号化するステップであって、1つ以上の後続メッシュの各々に対する前記ベースメッシュは、残余と先行メッシュの変換ベースメッシュから再構築されたメッシュであるステップとを含むことを特徴とする方法。
  4. コンピュータの処理ユニットによって、アニメーションシーケンスで移動する3Dジオメトリを圧縮する方法であって、該方法は、
    アニメーションシーケンス内の一連の3Dメッシュを定義するジオメトリストリームを受け取るステップであって、前記一連の3Dメッシュを表すために、3D空間におけるオブジェクトをモデリングするための離散的時間での3Dの頂点位置のマトリックスが用いられ、前記3Dの頂点位置は、前記一連の3Dメッシュ間を動き、前記アニメーションシーケンス内の前記オブジェクトの動きのシミュレーションを行うステップと、
    前記ジオメトリストリームを符号化するステップであって、
    前記アニメーションシーケンス内の一連のカレントメッシュの位置に近似化するようにベースメッシュを変換するジオメトリック変換を決定するステップであって、前記ジオメトリック変換は、動きモデルに従うメッシュ変換を含むステップと、
    変換されたカレントメッシュを決定する逆ジオメトリック変換に従い前記カレントメッシュを変換するステップと、
    前記変換されたカレントメッシュと前記ベースメッシュとの間の残余を決定するステップと、
    残余、ベースメッシュおよびジオメトリック変換を符号化するステップとを含むステップとを備えることを特徴とする方法。
  5. 請求項1又は請求項4に記載の方法において、前記残余を符号化するステップは、前記残余を表すマトリックスの行または列で行または列予測を使用して残余を符号化することを特徴とする方法。
  6. 請求項1又は請求項4に記載の方法において、前記残余を符号化するステップは、前記残余を表すマトリックスを基底ベクトルと重みに分解することを特徴とする方法。
  7. 請求項6に記載の方法において、前記残余を符号化するステップは、重みで行または列予測を実行することをさらに含むことを特徴とする方法。
  8. 請求項4に記載の方法において、前記残余は、前記変換されたカレントメッシュの要素と前記ベースメッシュの対応する要素との間の差分を表し、該方法は、さらに、
    ジオメトリック変換を、カレントタイムサンプルのモデリングおよびカメラ変換と結合するステップを含むことを特徴とする方法。
  9. コンピュータの処理ユニットによって、アニメーションシーケンスで移動する3Dジオメトリを復号化する方法であって、該方法は、
    アニメーションシーケンス内の一連の3Dメッシュを定義するジオメトリストリームのための符号化されたデータを受け取るステップであって、前記一連の3Dメッシュを表すために、3D空間におけるオブジェクトをモデリングするための離散的時間での3Dの頂点位置のマトリックスが用いられ、前記3Dの頂点位置は、前記一連の3Dメッシュ間を動き、前記アニメーションシーケンス内の前記オブジェクトの動きのシミュレーションを行うステップと、
    前記符号化されたデータを用いて前記ジオメトリストリームを復号化するステップであって、
    前記アニメーションシーケンス内のオブジェクトのジオメトリを表しているベースメッシュを復号化するステップと、
    アニメーションシーケンスにおける特定のタイムサンプルに対して、ジオメトリック変換パラメータの集合を復号化するステップであって、前記ジオメトリック変換パラメータは、ジオメトリック変換を指定して、前記ベースメッシュを変換して前記アニメーションシーケンス内の一連のカレントメッシュの位置に近似化し、前記ジオメトリック変換は、動きモデルに従うメッシュ変換を含むステップと、
    前記特定のタイムサンプルの残余が、前記カレントメッシュと、前記ジオメトリック変換パラメータの集合によって変換された前記特定のタイムサンプルの前記ベースメッシュとの間の差分を表す、前記特定のタイムサンプルの符号化残余を復号化するステップと、
    前記特定のタイムサンプルの前記カレントメッシュを、再構築するステップであって、
    前記特定のタイムサンプルに対応する復号化された前記ジオメトリック変換パラメータの集合を前記ベースメッシュに適用することと、
    前記復号化された残余を前記変換されたベースメッシュに追加することとを含むステップとを含むステップとを備えることを特徴とする方法。
  10. コンピュータの処理ユニットによって、アニメーションシーケンスで移動する3Dジオメトリを復号化する方法であって、該方法は、
    アニメーションシーケンス内の一連の3Dメッシュを定義するジオメトリストリームのための符号化されたデータを受け取るステップであって、前記一連の3Dメッシュを表すために、3D空間におけるオブジェクトをモデリングするための離散的時間での3Dの頂点位置のマトリックスが用いられ、前記3Dの頂点位置は、前記一連の3Dメッシュ間を動き、前記アニメーションシーケンス内の前記オブジェクトの動きのシミュレーションを行うステップと、
    前記符号化されたデータを用いて前記ジオメトリストリームを復号化するステップであって、
    前記アニメーションシーケンス内の前記オブジェクトのジオメトリを表しているベースメッシュを復号化するステップと、
    アニメーションシーケンスにおける特定のタイムサンプルに対して、ジオメトリック変換パラメータの集合を復号化するステップであって、前記ジオメトリック変換パラメータは、ジオメトリック変換を指定して、前記ベースメッシュを変換して前記アニメーションシーケンス内の一連のカレントメッシュの位置に近似化し、前記ジオメトリック変換は、動きモデルに従うメッシュ変換を含むステップと、
    前記特定のタイムサンプルの残余が、前記ベースメッシュと、逆ジオメトリック変換パラメータの集合によって変換された前記特定のタイムサンプルの前記カレントメッシュとの間の差分を表す、前記特定のタイムサンプルの符号化残余を復号化するステップと、
    前記特定のタイムサンプルの前記カレントメッシュを、再構築するステップであって、
    前記復号化された残余を前記ベースメッシュに追加することと、
    前記特定のタイムサンプルに対応する復号化された前記ジオメトリック変換パラメータの集合を前記ベースメッシュに適用することとを含むステップとを含むステップとを備えることを特徴とする方法。
  11. 請求項1又は請求項4に記載の方法において、前記符号化するステップは、量子化、エントロピコード化、および伝送のためのフォーマッティングを含むことを特徴とする方法。
  12. 請求項1又は請求項4に記載の方法において、前記ジオメトリック変換を決定するステップは、前記カレントメッシュに近似化するように前記ベースメッシュを変換するための1つ以上の可能なジオメトリック変換を評価することを含むことを特徴とする方法。
  13. 請求項12に記載の方法は、前記評価の前に、前記ベースメッシュおよび前記カレントメッシュを単純化することを含むことを特徴とする方法。
  14. 請求項1、4、9、10のいずれかに記載の方法において、前記ベースメッシュは、一連の3Dメッシュの最初のメッシュ、一連の3Dメッシュの平均、又は前記アニメーションシーケンスに対して事前に定義されたメッシュであることを特徴とする方法。
  15. 請求項1、4、9、10のいずれかに記載の方法において、前記ジオメトリック変換は、1つ以上の剛体の各々に対するアフィン変換を含むことを特徴とする方法。
  16. 請求項1、4、9、10のいずれかに記載の方法を実行するための命令を有するコンピュータで読取り可能な媒体。
  17. 請求項9又は請求項10に記載の方法において、ジオメトリック変換パラメータの集合を復号化するステップは、ジオメトリック変換パラメータを量子化解除することを含むことを特徴とする方法。
  18. 請求項9又は請求項10に記載の方法において、ベースメッシュと符号化残余を復号化するステップは、ベースメッシュと符号化残余を量子化解除することを含むことを特徴とする方法。
  19. 請求項9に記載の方法において、さらに、1つ以上の一連の後続メッシュの各々に対して、
    前記後続メッシュのジオメトリック変換パラメータの集合を復号化するステップと、
    前記後続メッシュの符号化された残余を復号化するステップと、
    前記後続メッシュを再構築するステップであって、前記1つ以上の後続メッシュ各々を再構築するために使用されるベースメッシュは、再構築バージョンの先行メッシュであるステップを含むことを特徴とする方法。
  20. 請求項9又は請求項10に記載の方法において、符号化残余を復号化するステップは、基底ベクトルマトリックスと重みマトリックスから残余マトリックスを再構築することを含むことを特徴とする方法。
  21. 請求項9又は請求項10に記載の方法において、符号化残余を復号化するステップは、残余マトリックスの行または列で逆予測を実行することを含み、残余マトリックスの行または列は隣接行または列の対応する要素の間の異なる値から再構築されることを特徴とする方法。
JP2000553881A 1998-06-08 1999-06-07 時間依存ジオメトリの圧縮 Expired - Lifetime JP4384813B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US8849598P 1998-06-08 1998-06-08
US13143799P 1999-04-26 1999-04-26
US60/088,495 1999-04-26
US60/131,437 1999-04-26
PCT/US1999/012732 WO1999064944A2 (en) 1998-06-08 1999-06-07 Compression of time-dependent geometry

Publications (2)

Publication Number Publication Date
JP2002517851A JP2002517851A (ja) 2002-06-18
JP4384813B2 true JP4384813B2 (ja) 2009-12-16

Family

ID=26778735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000553881A Expired - Lifetime JP4384813B2 (ja) 1998-06-08 1999-06-07 時間依存ジオメトリの圧縮

Country Status (5)

Country Link
US (3) US6573890B1 (ja)
EP (1) EP1086412A4 (ja)
JP (1) JP4384813B2 (ja)
AU (1) AU4424899A (ja)
WO (1) WO1999064944A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220094941A1 (en) * 2020-09-23 2022-03-24 Nokia Technologies Oy Temporal Alignment of MPEG and GLTF Media

Families Citing this family (147)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2784211B1 (fr) * 1998-10-02 2000-12-15 France Telecom Procede de codage d'images fixes ou animees avec reduction et adaptation du debit
US6909431B1 (en) * 1999-03-01 2005-06-21 Lucas Digital Ltd. Position and shape control for cloth and soft body animation
US7502027B1 (en) * 1999-09-13 2009-03-10 Solidworks Corporation Electronic drawing viewer
US7663648B1 (en) * 1999-11-12 2010-02-16 My Virtual Model Inc. System and method for displaying selected garments on a computer-simulated mannequin
JP2001266159A (ja) * 2000-03-17 2001-09-28 Toshiba Corp 物体領域情報生成方法及び物体領域情報生成装置並びに近似多角形生成方法及び近似多角形生成装置
US20020012472A1 (en) * 2000-03-31 2002-01-31 Waterfall Andrew E. Method for visualization of time sequences of 3D optical fluorescence microscopy images
FR2811791B1 (fr) * 2000-07-13 2002-11-22 France Telecom Estimateur de mouvement pour le codage et le decodage de sequences d'images
FR2813485B1 (fr) * 2000-08-24 2003-12-26 France Telecom Procede de construction d'au moins une image interpolee entre deux images d'une sequence animee, procedes de codage et de decodage, signal et support de donnees correspondant
JP3636681B2 (ja) * 2000-08-24 2005-04-06 株式会社ソニー・コンピュータエンタテインメント 画像処理方法、画像処理装置、半導体デバイス、コンピュータプログラム及び記録媒体
US7006097B2 (en) 2000-11-23 2006-02-28 Samsung Electronic Co., Ltd. Method and apparatus for compression and reconstruction of animation path using linear approximation
US6959114B2 (en) * 2001-02-28 2005-10-25 Samsung Electronics Co., Ltd. Encoding method and apparatus of deformation information of 3D object
US6888549B2 (en) * 2001-03-21 2005-05-03 Stanford University Method, apparatus and computer program for capturing motion of a cartoon and retargetting the motion to another object
US9400921B2 (en) * 2001-05-09 2016-07-26 Intel Corporation Method and system using a data-driven model for monocular face tracking
KR100981405B1 (ko) * 2001-05-14 2010-09-10 가부시키가이샤 네트디멘션 정보 배급 시스템 및 정보 배급 방법
US6697064B1 (en) 2001-06-08 2004-02-24 Nvidia Corporation System, method and computer program product for matrix tracking during vertex processing in a graphics pipeline
WO2002101497A2 (en) * 2001-06-08 2002-12-19 Nvidia Corporation System, method and computer program product for programmable fragment processing in a graphics pipeline
US6909807B2 (en) * 2001-06-28 2005-06-21 Intel Corporation Compression and synthesis of two dimensional images
DE60106301T2 (de) * 2001-07-04 2005-10-20 Okyz Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
US7081893B2 (en) * 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
US6900809B2 (en) * 2001-10-18 2005-05-31 Qualcomm Incorporated Method and apparatus for animation of an object on a display
EP1322119B1 (en) * 2001-11-27 2013-01-09 Samsung Electronics Co., Ltd. Apparatus for encoding and decoding key data and keyvalue data of coordinate interpolator and recording medium
JP2005514683A (ja) * 2001-12-06 2005-05-19 ニューヨーク・ユニバーシティ 合成、認識および圧縮のための多モード・データ集団の多重線形表現のための論理装置、データ構造、システムおよび方法
JP3922919B2 (ja) * 2001-12-11 2007-05-30 株式会社リコー 静止画像伸長装置及び静止画像伸長方法
US7548241B2 (en) * 2002-01-04 2009-06-16 Intel Corporation Determining a node path through a node graph
DE10209146A1 (de) * 2002-03-01 2003-09-18 Bayer Ag Verfahren und System zur automatischen Planung von Experimenten
US6850233B2 (en) * 2002-05-01 2005-02-01 Microsoft Corporation Systems and methods for optimizing geometric stretch of a parametrization scheme
US7061491B2 (en) * 2002-06-03 2006-06-13 Omnigon Technologies Ltd. Method for solving frequency, frequency distribution and sequence-matching problems using multidimensional attractor tokens
EP1565901A2 (en) * 2002-08-19 2005-08-24 Koninklijke Philips Electronics N.V. Video circuit
US8421804B2 (en) 2005-02-16 2013-04-16 At&T Intellectual Property Ii, L.P. System and method of streaming 3-D wireframe animations
US20050131660A1 (en) * 2002-09-06 2005-06-16 Joseph Yadegar Method for content driven image compression
US7809204B2 (en) * 2002-10-18 2010-10-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
US7138998B2 (en) * 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
US7129942B2 (en) * 2002-12-10 2006-10-31 International Business Machines Corporation System and method for performing domain decomposition for multiresolution surface analysis
FR2849329A1 (fr) * 2002-12-20 2004-06-25 France Telecom Procede de codage d'une image par ondelettes, procede de decodage, dispositifs, signal et applications correspondantes
WO2004061702A1 (en) 2002-12-26 2004-07-22 The Trustees Of Columbia University In The City Of New York Ordered data compression system and methods
US20040227761A1 (en) * 2003-05-14 2004-11-18 Pixar Statistical dynamic modeling method and apparatus
US7469069B2 (en) * 2003-05-16 2008-12-23 Samsung Electronics Co., Ltd. Method and apparatus for encoding/decoding image using image residue prediction
FR2856228A1 (fr) * 2003-06-12 2004-12-17 France Telecom Procede et dispositif de codage et de decodage d'une sequence d'images video
US7218755B2 (en) * 2003-09-04 2007-05-15 Mitsubishi Electric Research Laboratories, Inc. Detecting temporally related components of multi-modal signals
DE10345081A1 (de) * 2003-09-26 2005-05-19 Peguform Gmbh & Co. Kg Verfahren zur Bearbeitung einer dreidimensionalen Oberfläche
US8133115B2 (en) 2003-10-22 2012-03-13 Sony Computer Entertainment America Llc System and method for recording and displaying a graphical path in a video game
US7432925B2 (en) * 2003-11-21 2008-10-07 International Business Machines Corporation Techniques for representing 3D scenes using fixed point data
US7236170B2 (en) * 2004-01-29 2007-06-26 Dreamworks Llc Wrap deformation using subdivision surfaces
FR2867928B1 (fr) * 2004-03-16 2006-06-09 Medialive Procede et systeme hautement securises pour la distribution de flux audiovisuels
US7292250B2 (en) * 2004-03-31 2007-11-06 Dreamworks Animation, Llc Character deformation pipeline for computer-generated animation
US7342580B1 (en) * 2004-04-02 2008-03-11 Pacific Data Images Llc Surface compression based on reference geometry in animation models
US7302451B2 (en) * 2004-05-07 2007-11-27 Mitsubishi Electric Research Laboratories, Inc. Feature identification of events in multimedia
US7529418B2 (en) * 2004-05-20 2009-05-05 Hewlett-Packard Development Company, L.P. Geometry and view assisted transmission of graphics image streams
US20060071933A1 (en) 2004-10-06 2006-04-06 Sony Computer Entertainment Inc. Application binary interface for multi-pass shaders
WO2006080663A1 (en) * 2004-10-21 2006-08-03 Samsung Electronics Co., Ltd. Method and apparatus for effectively encoding multi-layered motion vectors
KR100703740B1 (ko) * 2004-10-21 2007-04-05 삼성전자주식회사 다 계층 기반의 모션 벡터를 효율적으로 부호화하는 방법및 장치
FR2878396A1 (fr) * 2004-11-19 2006-05-26 France Telecom Procede de codage d'images codees par ondelettes a controle du debit, dispositif de codage et programme d'ordinateur corespondants
WO2006075895A1 (en) * 2005-01-14 2006-07-20 Electronics And Telecommunications Research Institute Method of encoding and decoding texture coordinates in three-dimensional mesh information for effective texture mapping
KR100668714B1 (ko) * 2005-01-14 2007-01-16 한국전자통신연구원 효과적인 텍스처 매핑을 위한 3차원 메쉬 정보의 텍스처좌표 부호화 및 복호화 방법
GB2438783B8 (en) 2005-03-16 2011-12-28 Lucasfilm Entertainment Co Ltd Three-dimensional motion capture
KR100896279B1 (ko) * 2005-04-15 2009-05-07 엘지전자 주식회사 영상 신호의 스케일러블 인코딩 및 디코딩 방법
EP1889369A4 (en) * 2005-06-03 2009-04-22 Commw Of Australia MESSAGING METHOD
US7636126B2 (en) 2005-06-22 2009-12-22 Sony Computer Entertainment Inc. Delay matching in audio/video systems
US7499947B2 (en) * 2005-07-22 2009-03-03 International Business Machines Corporation Mechanism for converting after image data to a delta level change
WO2007043829A1 (en) * 2005-10-13 2007-04-19 Lg Electronics Inc. Method and apparatus for encoding/decoding
WO2007043826A1 (en) 2005-10-13 2007-04-19 Lg Electronics Inc. Method and apparatus for encoding/decoding
KR20070047463A (ko) * 2005-11-02 2007-05-07 삼성전자주식회사 장면 기반의 벡터 에니메이션 생성 장치
US20070104359A1 (en) * 2005-11-10 2007-05-10 Mauricio Telias Digital inspection of the physical quality of plain surfaces
US7782324B2 (en) * 2005-11-23 2010-08-24 Dreamworks Animation Llc Non-hierarchical unchained kinematic rigging technique and system for animation
NZ567884A (en) * 2005-11-23 2011-07-29 Pixar Performing rendering operations to form intermediate data of images, processing the inermediate data, and then performing additional rendering
CN100498727C (zh) * 2005-12-19 2009-06-10 国际商业机器公司 矩阵的解压缩方法和设备
EP1966756B1 (en) * 2005-12-19 2009-07-22 Koninklijke Philips Electronics N.V. Method for facilitating post-processing of images using deformable meshes
WO2007087444A2 (en) * 2006-01-25 2007-08-02 Pixar Methods and apparatus for accelerated animation using point multiplication and soft caching
US7839407B2 (en) * 2006-01-25 2010-11-23 Pixar Methods and apparatus for accelerated animation using point multiplication
US8244051B2 (en) * 2006-03-15 2012-08-14 Microsoft Corporation Efficient encoding of alternative graphic sets
US7880746B2 (en) 2006-05-04 2011-02-01 Sony Computer Entertainment Inc. Bandwidth management through lighting control of a user environment via a display device
US7965859B2 (en) 2006-05-04 2011-06-21 Sony Computer Entertainment Inc. Lighting control of a user environment via a display device
US7953260B2 (en) 2006-06-09 2011-05-31 Craniosim Solutions, Inc. Predicting movement of soft tissue of the face in response to movement of underlying bone
EP2050078A2 (en) * 2006-08-11 2009-04-22 Siemens Product Lifecycle Management Software Inc. Method and system for organizing topology elements for better compression
US9070178B2 (en) 2006-08-11 2015-06-30 Siemens Product Lifecycle Management Software Inc. Method and system for organizing topology elements for better compression
US8243066B2 (en) * 2006-12-11 2012-08-14 Richard Garfinkle System and method for model creation and computer animation
US8379026B2 (en) * 2006-12-29 2013-02-19 Intel Corporation Multiresolution ray intersection
US8542236B2 (en) * 2007-01-16 2013-09-24 Lucasfilm Entertainment Company Ltd. Generating animation libraries
US8199152B2 (en) 2007-01-16 2012-06-12 Lucasfilm Entertainment Company Ltd. Combining multiple session content for animation libraries
US8130225B2 (en) 2007-01-16 2012-03-06 Lucasfilm Entertainment Company Ltd. Using animation libraries for object identification
US8296662B2 (en) 2007-02-05 2012-10-23 Brother Kogyo Kabushiki Kaisha Image display device
US8035643B2 (en) * 2007-03-19 2011-10-11 Lucasfilm Entertainment Company Ltd. Animation retargeting
US7831104B2 (en) * 2007-04-27 2010-11-09 General Electric Company Using geometric wavelets based on active contours for signal processing
US9342912B1 (en) 2007-06-06 2016-05-17 Lucasfilm Entertainment Company Ltd. Animation control retargeting
US8144153B1 (en) 2007-11-20 2012-03-27 Lucasfilm Entertainment Company Ltd. Model production for animation libraries
US9076203B2 (en) * 2007-11-26 2015-07-07 The Invention Science Fund I, Llc Image guided surgery with dynamic image reconstruction
US8493381B1 (en) * 2008-04-14 2013-07-23 Google Inc. Methods and systems for geometry compression
US8264493B2 (en) 2008-05-12 2012-09-11 Playcast Media Systems, Ltd. Method and system for optimized streaming game server
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
EP2364190B1 (en) * 2008-05-12 2018-11-21 GameFly Israel Ltd. Centralized streaming game server
US8339395B2 (en) * 2008-07-08 2012-12-25 Lockheed Martin Corporation Method and apparatus for model compression
US8321903B2 (en) 2008-07-28 2012-11-27 Playcast Media Systems, Ltd. External services allocation in closed on-demand systems
US8108361B2 (en) * 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
US9142024B2 (en) * 2008-12-31 2015-09-22 Lucasfilm Entertainment Company Ltd. Visual and physical motion sensing for three-dimensional motion capture
JP5573316B2 (ja) * 2009-05-13 2014-08-20 セイコーエプソン株式会社 画像処理方法および画像処理装置
EP2261859A1 (en) * 2009-06-10 2010-12-15 Thomson Licensing Method for encoding/decoding a 3D mesh model that comprises one or more components
EP2278550B1 (en) * 2009-06-17 2013-08-14 Canon Kabushiki Kaisha Method of encoding and decoding a graphics path sequence into a layered scheme
US8633932B1 (en) 2009-07-16 2014-01-21 Lucasfilm Entertainment Company Ltd. Animation with adjustable detail level
EP2474951A4 (en) * 2009-09-04 2017-05-10 Panasonic Intellectual Property Management Co., Ltd. Image generation system, image generation method, computer program, and recording medium in which computer program is recorded
US8860731B1 (en) * 2009-12-21 2014-10-14 Lucasfilm Entertainment Company Ltd. Refining animation
US8786610B1 (en) * 2009-12-21 2014-07-22 Lucasfilm Entertainment Company Ltd. Animation compression
US8633926B2 (en) * 2010-01-18 2014-01-21 Disney Enterprises, Inc. Mesoscopic geometry modulation
US9317970B2 (en) 2010-01-18 2016-04-19 Disney Enterprises, Inc. Coupled reconstruction of hair and skin
US9214042B2 (en) 2010-01-25 2015-12-15 Thomson Licensing Method for encoding normals of a 3D mesh model, method for decoding normals of a 3D mesh model, encoder and decoder
GB201003962D0 (en) * 2010-03-10 2010-04-21 Tangentix Ltd Multimedia content delivery system
US10786736B2 (en) 2010-05-11 2020-09-29 Sony Interactive Entertainment LLC Placement of user information in a game space
CN103329169B (zh) 2010-09-30 2016-01-27 汤姆逊许可公司 几何图案编码方法和设备,以及几何图案解码方法和设备
KR20120070131A (ko) * 2010-12-21 2012-06-29 한국전자통신연구원 비정형 물체의 모션을 캡처하여 애니메이션을 생성하는 장치 및 방법
US20120281145A1 (en) * 2011-05-06 2012-11-08 Casas Raul Alejandro Least squares matrix compression and decompression in a digital television receiver
US9082229B1 (en) 2011-05-10 2015-07-14 Lucasfilm Entertainment Company Ltd. Transforming animations
US8749559B2 (en) * 2011-06-03 2014-06-10 Microsoft Corporation Mesh sequence file format
US9342817B2 (en) 2011-07-07 2016-05-17 Sony Interactive Entertainment LLC Auto-creating groups for sharing photos
US8736603B2 (en) * 2011-11-02 2014-05-27 Visual Technology Services Limited Compression of texture rendered wire mesh models
CN103918009A (zh) * 2011-11-07 2014-07-09 汤姆逊许可公司 预测位置编码
US9508176B2 (en) 2011-11-18 2016-11-29 Lucasfilm Entertainment Company Ltd. Path and speed based character control
US9536338B2 (en) * 2012-07-31 2017-01-03 Microsoft Technology Licensing, Llc Animating objects using the human body
DE102014103768A1 (de) 2014-03-19 2015-09-24 Sidact Gmbh Verfahren zur Kompression von Beobachtungen einer Vielzahl von Testabläufen
US9477998B2 (en) * 2014-06-01 2016-10-25 Apple Inc. Performance control for concurrent animations
EP2996086A1 (en) 2014-09-12 2016-03-16 Kubity System, method and computer program product for automatic optimization of 3d textured models for network transfer and real-time rendering
US10531121B2 (en) * 2015-01-30 2020-01-07 Hewlett-Packard Development Company, L.P. Spectral reflectance compression
US9716875B2 (en) 2015-09-18 2017-07-25 Intel Corporation Facilitating quantization and compression of three-dimensional graphics data using screen space metrics at computing devices
WO2017064264A1 (en) * 2015-10-15 2017-04-20 Huawei Technologies Co., Ltd. Method and appratus for sinusoidal encoding and decoding
US10191912B2 (en) * 2016-02-12 2019-01-29 Oracle International Corporation Shared decompression engine
US10186082B2 (en) * 2016-04-13 2019-01-22 Magic Leap, Inc. Robust merge of 3D textured meshes
US10812790B2 (en) 2016-04-19 2020-10-20 Sony Corporation Data processing apparatus and data processing method
KR102471221B1 (ko) * 2016-11-14 2022-11-28 삼성에스디에스 주식회사 애플리케이션 변환 장치 및 방법
US10529119B2 (en) 2016-12-25 2020-01-07 Biosense Webster (Israel) Ltd. Fast rendering of quadrics and marking of silhouettes thereof
US10306254B2 (en) 2017-01-17 2019-05-28 Seiko Epson Corporation Encoding free view point data in movie data container
WO2019023400A1 (en) * 2017-07-28 2019-01-31 Baobab Studios Inc. SYSTEMS AND METHODS FOR ANIMATIONS AND INTERACTIVITY OF REAL-TIME COMPLEX CHARACTERS
WO2019143729A1 (en) 2018-01-16 2019-07-25 Pacific Light & Hologram, Inc. Three-dimensional displays using electromagnetic field computations
US10417806B2 (en) * 2018-02-15 2019-09-17 JJK Holdings, LLC Dynamic local temporal-consistent textured mesh compression
WO2019200141A1 (en) * 2018-04-12 2019-10-17 Google Llc Vertex split connectivity prediction for improved progressive mesh compression
US10659789B2 (en) 2018-04-12 2020-05-19 Google Llc Encoding cost aware edge selection for improved progressive mesh compression
US10643352B2 (en) 2018-04-12 2020-05-05 Google Llc Vertex split connectivity prediction for improved progressive mesh compression
US10692248B2 (en) 2018-04-12 2020-06-23 Google Llc Increased density of batches for improved progressive mesh compression
EP3671660A1 (en) * 2018-12-20 2020-06-24 Dassault Systèmes Designing a 3d modeled object via user-interaction
JP7282532B2 (ja) * 2019-01-24 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法、データ構造、及びプログラム
US11348314B2 (en) * 2020-05-08 2022-05-31 Dreamworks Animation Llc Fast and deep facial deformations
CN111556319B (zh) * 2020-05-14 2021-12-17 电子科技大学 一种基于矩阵分解的视频编码方法
US11501470B2 (en) 2020-05-27 2022-11-15 Microsoft Technology Licensing, Llc Geometric encoding of data
US11762333B2 (en) 2020-09-17 2023-09-19 Pacific Light & Hologram, Inc. Reconstructing objects with display zero order light suppression
US20230014820A1 (en) * 2021-07-19 2023-01-19 Tencent America LLC Methods and apparatuses for dynamic mesh compression
US20230388543A1 (en) * 2022-05-25 2023-11-30 Tencent America LLC Temporal prediction based vertex position compression
US20240022708A1 (en) * 2022-07-12 2024-01-18 Tencent America LLC Grouping of mesh vertices in position compression
WO2024030279A1 (en) * 2022-08-01 2024-02-08 Innopeak Technology, Inc. Encoding method, decoding method, encoder and decoder
WO2024091860A1 (en) * 2022-10-25 2024-05-02 Innopeak Technology, Inc. Encoding method, decoding method, encoder and decoder
US11900842B1 (en) 2023-05-12 2024-02-13 Pacific Light & Hologram, Inc. Irregular devices

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04207516A (ja) 1990-11-30 1992-07-29 Norio Akamatsu 補間方法
JPH07501162A (ja) 1991-06-28 1995-02-02 リム ホン リップ 3dコンピュータグラフィック用可視性計算の改善
JPH06325151A (ja) * 1993-03-17 1994-11-25 Fujitsu Ltd アニメーション編集装置
AU6081494A (en) * 1993-07-27 1995-02-28 Taligent, Inc. Object-oriented rendering system
US5608850A (en) 1994-04-14 1997-03-04 Xerox Corporation Transporting a display object coupled to a viewpoint within or between navigable workspaces
US5519818A (en) * 1994-09-19 1996-05-21 Taligent, Inc. Object-oriented graphic picking system
US5751931A (en) 1995-04-18 1998-05-12 Lucent Technologies Inc. Three dimensional graphical display of information
JP3649469B2 (ja) 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント アニメーションデータの作成方法および作成装置
US5999189A (en) 1995-08-04 1999-12-07 Microsoft Corporation Image compression to reduce pixel and texture memory requirements in a real-time image generator
US5842004A (en) 1995-08-04 1998-11-24 Sun Microsystems, Inc. Method and apparatus for decompression of compressed geometric three-dimensional graphics data
US5793371A (en) * 1995-08-04 1998-08-11 Sun Microsystems, Inc. Method and apparatus for geometric compression of three-dimensional graphics data
US5963209A (en) 1996-01-11 1999-10-05 Microsoft Corporation Encoding and progressive transmission of progressive meshes
US5966134A (en) * 1996-06-28 1999-10-12 Softimage Simulating cel animation and shading
US5945996A (en) * 1996-10-16 1999-08-31 Real-Time Geometry Corporation System and method for rapidly generating an optimal mesh model of a 3D object or surface
US5818463A (en) * 1997-02-13 1998-10-06 Rockwell Science Center, Inc. Data compression for animated three dimensional objects
US6108006A (en) 1997-04-03 2000-08-22 Microsoft Corporation Method and system for view-dependent refinement of progressive meshes
US6137492A (en) 1997-04-03 2000-10-24 Microsoft Corporation Method and system for adaptive refinement of progressive meshes
US5966140A (en) 1997-06-20 1999-10-12 Microsoft Corporation Method for creating progressive simplicial complexes
US6262737B1 (en) * 1998-01-30 2001-07-17 University Of Southern California 3D mesh compression and coding
US6075540A (en) 1998-03-05 2000-06-13 Microsoft Corporation Storage of appearance attributes in association with wedges in a mesh data model for computer graphics
US6239807B1 (en) * 1998-03-13 2001-05-29 Mgi Software Corporation Method and system for multi-resolution texture mapping
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
US6222551B1 (en) 1999-01-13 2001-04-24 International Business Machines Corporation Methods and apparatus for providing 3D viewpoint selection in a server/client arrangement

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220094941A1 (en) * 2020-09-23 2022-03-24 Nokia Technologies Oy Temporal Alignment of MPEG and GLTF Media
US11695932B2 (en) * 2020-09-23 2023-07-04 Nokia Technologies Oy Temporal alignment of MPEG and GLTF media

Also Published As

Publication number Publication date
EP1086412A4 (en) 2008-05-07
WO1999064944A2 (en) 1999-12-16
JP2002517851A (ja) 2002-06-18
AU4424899A (en) 1999-12-30
WO1999064944A3 (en) 2000-03-23
US6614428B1 (en) 2003-09-02
US6606095B1 (en) 2003-08-12
US6573890B1 (en) 2003-06-03
EP1086412A2 (en) 2001-03-28

Similar Documents

Publication Publication Date Title
JP4384813B2 (ja) 時間依存ジオメトリの圧縮
Briceño Pulido Geometry videos: a new representation for 3D animations
Karni et al. Compression of soft-body animation sequences
US6438266B1 (en) Encoding images of 3-D objects with improved rendering time and transmission processes
Ibarria et al. Dynapack: space-time compression of the 3D animations of triangle meshes with fixed connectivity.
Arikan Compression of motion capture databases
Peng et al. Technologies for 3D mesh compression: A survey
Li et al. Progressive coding of 3-D graphic models
Lengyel Compression of time-dependent geometry
Liu et al. Segment-based human motion compression
CN101622874A (zh) 对象存档系统和方法
JP2005332412A (ja) 3次元生成シーンにおける回転および垂線の符号化方法およびシステム
Chou et al. Vertex data compression through vector quantization
Beaudoin et al. Adapting wavelet compression to human motion capture clips
Pavez et al. Dynamic polygon cloud compression
KR20060087631A (ko) 3차원 삼각 메쉬의 기하 정보 데이터 단순 압축 및 해제 기술
JPH09502586A (ja) データ分析方法及び装置
He et al. Point set surface compression based on shape pattern analysis
Sim et al. Compression of 3-D point visual data using vector quantization and rate-distortion optimization
Mamou et al. Multi-chart geometry video: A compact representation for 3D animations
Marvie et al. Coding of dynamic 3D meshes
Lv et al. A survey on motion capture data compression algorithm
JPH0837664A (ja) 動画像符号化/復号化装置
Dhibi et al. Multi-layer compression algorithm for 3D deformed mesh based on multi library wavelet neural network architecture
Díaz et al. MTV-Player: Interactive Spatio-Temporal Exploration of Compressed Large-Scale Time-Varying Rectilinar Scalar Volumes.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060515

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090623

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090721

TRDD Decision of grant or rejection written
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090904

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090928

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4384813

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D15

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term