IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ダッソー システムズの特許一覧

<>
  • 特許-物理的属性を表す信号の圧縮 図1
  • 特許-物理的属性を表す信号の圧縮 図2
  • 特許-物理的属性を表す信号の圧縮 図3
  • 特許-物理的属性を表す信号の圧縮 図4
  • 特許-物理的属性を表す信号の圧縮 図5
  • 特許-物理的属性を表す信号の圧縮 図6
  • 特許-物理的属性を表す信号の圧縮 図7
  • 特許-物理的属性を表す信号の圧縮 図8
  • 特許-物理的属性を表す信号の圧縮 図9
  • 特許-物理的属性を表す信号の圧縮 図10
  • 特許-物理的属性を表す信号の圧縮 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-07
(45)【発行日】2022-06-15
(54)【発明の名称】物理的属性を表す信号の圧縮
(51)【国際特許分類】
   G06T 9/40 20060101AFI20220608BHJP
   H04N 1/41 20060101ALI20220608BHJP
   H03M 7/30 20060101ALI20220608BHJP
【FI】
G06T9/40
H04N1/41
H03M7/30 A
【請求項の数】 11
【外国語出願】
(21)【出願番号】P 2017173983
(22)【出願日】2017-09-11
(65)【公開番号】P2018101404
(43)【公開日】2018-06-28
【審査請求日】2020-08-12
(31)【優先権主張番号】16306158.3
(32)【優先日】2016-09-13
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】500102435
【氏名又は名称】ダッソー システムズ
【氏名又は名称原語表記】DASSAULT SYSTEMES
(74)【代理人】
【識別番号】110000752
【氏名又は名称】特許業務法人朝日特許事務所
(72)【発明者】
【氏名】ジャン=ジュリアン トゥッフェル
(72)【発明者】
【氏名】マリカ ブルケンアフェッド
【審査官】西谷 憲人
(56)【参考文献】
【文献】特開2005-184086(JP,A)
【文献】特表2012-523804(JP,A)
【文献】特表2006-521048(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 9/40
H04N 1/41
H03M 7/30
(57)【特許請求の範囲】
【請求項1】
所定の空間(S)内における物理的属性の値を表すデータを圧縮するための、コンピュータによって実施される方法であって、
前記所定の空間の階層的区画(octree(S))の葉セル(a …a ∈C(L(octree(S))),a n,n∈{1,…,N}∈{0,1})のそれぞれから、各葉セルにおける物理的属性の値を表す係数(cN,000(a …a ))へのマッピング(cN,000(・))を含む信号(cN,000)を提供することと、
前記信号(cN,000)から開始して、今回の繰り返しのそれぞれ(D∈{N-1,N-2,・・・,0})において、前回の繰り返し(D+1)におけるローパスサブバンド(cD+1,000)に各ウェーブレット畳み込みフィルタ(f)を渡すことによって、ウェーブレット畳み込みフィルタ(f(d,s),l∈{0,1}またはl∈{L,H})の所定の基底を用いて前記信号の離散ウェーブレット変換を決定し、それによって、ローパスサブバンド(cD,000)を含むサブバンド(cD,l,l∈{0,1}またはl∈{L,H})を反復的に決定することであって、
今回の繰り返し(D)で決定されたサブバンド(cD,l)は、それぞれ、前回の繰り返し(D+1)における同じ階層的区画(octreeD+1(S))をその区画とする階層的区画(octree(S))の、葉セル(a ・・・a ∈C(L(octree(S))),a n,n∈{1,…,D}∈{0,1})からのマッピング(cD,l(・))を含み、それぞれの所与の葉セル(a 1* 2*・・・a D*)は、それぞれのウェーブレット畳み込みフィルタ(f)を前回の繰り返し(D+1)のローパスサブバンド(cD+1,000)に渡す間に、前記所与の葉セル(a 1* 2*…a D*)を細分化する前回の繰り返し(D+1)の階層的区画(octreeD+1(S))の葉セル(a 1* 2*…a D*D+1 D+1∈C(LD+1(octreeD+1(S))),aD+1 D+1∈{0,1}))からマッピングされた前回の繰り返し(D+1)のローパスサブバンド(cD+1,000)の係数(cD+1,000(a 1* 2*・・・a D*D+1 D+1))にそれぞれのウェーブレット畳み込みフィルタ(f)を適用することによって決定されたそれぞれの係数(cD,l(a 1* 2*・・・a D*))にマッピングされるような、決定することと、
前記決定した離散ウェーブレット変換を符号化すること、とを含む
ことを特徴とする方法。
【請求項2】
前記ウェーブレット畳み込みフィルタfが、コンパクトな台({0,1})を有していること
を特徴とする請求項1に記載の方法。
【請求項3】
繰り返しにおける少なくとも1つの所与の回(D)において、前記渡すことは、係数にマッピングされなかった前回の繰り返し(D+1)のローパスサブバンド(cD+1,000)の少なくとも1つの葉セル(
【数1】
に遭遇し、前記離散ウェーブレット変換を決定することは、遭遇したセルに値(
【数2】
を割り当てることを含み、前記割り当てられた値は、前記ウェーブレット畳み込みフィルタのそれぞれに入力される
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記割り当てられた値は、繰り返しの前記所与の回(D)で決定されたサブバンド内を強制的に1つ以上のゼロにすることに関連する基準に従って決定される
ことを特徴とする請求項3に記載の方法。
【請求項5】
前記基準(
【数3】
)は、強制的にゼロにされなかった、繰り返しの所与の回(D)で決定されたすべてのサブバンドの係数の数が、強制的にゼロにされなかった、前回の繰り返し(D+1)のローパスサブバンドの係数の数に等しいことである
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記コンパクトな台のサイズは、階層的細分化のディバイダの最小値以下である
ことを特徴とする請求項2~5のいずれか1項に記載の方法。
【請求項7】
前記階層的細分化のディバイダは定数値(2)であり、コンパクトな台のサイズは前記階層的細分化のディバイダの前記定数値に等しい
ことを特徴とする請求項6に記載の方法。
【請求項8】
請求項1~7のいずれか1項に記載の方法によって得られる圧縮信号を復元するための、コンピュータによって実施される方法。
【請求項9】
請求項1~8のいずれか1項に記載の方法を実行するための指示を含むコンピュータプログラム。
【請求項10】
請求項9に記載のコンピュータプログラムを記録したコンピュータ読み取り可能記憶媒体。
【請求項11】
請求項9に記載のコンピュータプログラムを記録したメモリに接続されたプロセッサを備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラムおよびシステムの分野に関し、より具体的には、所定の空間における物理的属性の値を表す信号を圧縮および/または復元するための方法、システムおよびプログラム、およびそのような圧縮信号に関する。
【背景技術】
【0002】
オブジェクトの設計、エンジニアリング、製造のため、多数のシステムおよびプログラムが市場に提供されている。CADは、コンピュータ支援設計(Computer-Aided Design)の略語であり、例えば、オブジェクトを設計するためのソフトウェア・ソリューションに関する。CAEは、コンピュータ支援エンジニアリング(Computer-Aided Engineering)の略語であり、例えば、将来の製品の物理的挙動をシミュレーションするためのソフトウェア・ソリューションに関する。CAMは、コンピュータ支援製造(Computer-Aided Manufacturing)の略語であり、例えば、製造工程および動作を定義するためのソフトウェア・ソリューションに関する。このようなコンピュータ支援設計システムにおいて、グラフィカル・ユーザ・インターフェースは、技術の効率に関して、重要な役割を果たす。これらの技術は、製品ライフサイクル管理(Product Lifecycle Management: PLM)システムに組み込むことができる。PLMとは、企業が、拡張エンタープライズの概念全体にわたって、製品データを共有し、共通の工程を適用し、構想に始まり製品寿命の終わりに至る製品開発のための企業知識を活用するのを支援するビジネス戦略を指す。ダッソー・システムズが提供するPLMソリューション(製品名CATIA、ENOVIA、DELMIA)は、製品エンジニアリング知識をオーガナイズするエンジニアリング・ハブ、製品エンジニアリング知識を管理する製造ハブ、およびエンジニアリング・ハブと製造ハブの両方に対するエンタープライズ統合と接続を可能にするエンタープライズ・ハブを提供する。全てのシステムは、製品、工程、リソースを結ぶオープンなオブジェクトモデルを提供し、最適化された製品定義、製造準備、生産およびサービスを推進する、動的な知識ベースの製品作成および意思決定支援を可能にする。
【0003】
この文脈において、粒子ベースのアプリケーション(例えば、点群の描画や、平滑化粒子流体力学などのSPHによる流体シミュレーション)、または3Dモデル化は、データ圧縮の恩恵を受けることができる。したがって、3D(または2D)空間に広がる多数の粒子に適用されるデータ圧縮を実行する方法が開発されている。そのような先行技術は主に2つの研究分野によってカバーされる。第1の分野は、3D(または2D)メッシュのジオメトリによる圧縮である。第2の分野は、点群の圧縮である。
【0004】
ここで、第1の分野(メッシュ圧縮)について述べる。
【0005】
3Dメッシュを圧縮するために非常に多数の方法が提案されている。3Dメッシュは、通常、ジオメトリデータ(例えば、空間内のメッシュの各頂点の位置)、接続性データ(例えば、頂点間の入射関係、すなわち、頂点がどのようにリンクして多角形の面を形成するか)、およびオプションとして、頂点ごと、および/または、面ごとの属性(すなわち、頂点/面の位置に関連付けられた少なくとも1つの物理的属性の値、例えば、アプリケーションに有用な頂点/面の特性、例えば、色、法線ベクトル、および/または、テクスチャの座標)からなる。これらの方法の比較的包括的な分類は、Maglo他による2013年の論文「3D mesh compression:survey,comparisons and emerging trends」に記載されている。基本的に、2つの主系統に分けられる。
【0006】
第1の系統は、接続性圧縮法である。この方法は、主として接続性データを用いて、接続性データと頂点情報を符号化する。Edgebreaker(Rossignacによる)、Layered decomposition(Bajajによる)、および、Spanning trees(TaubinとRossignacによる)のアルゴリズムが、よい例である。これらの方法は、接続された頂点の位置および属性値が近いため、良い結果をもたらす。これは、圧縮方式に有利に利用することができる。すなわち、接続された頂点の位置/属性値を既に復号している場合、それらを予測できる(Edgebreakerアルゴリズムの、いわゆる「平行四辺形予測」法)。
【0007】
第2の系統は、ジオメトリによる圧縮法に関する。この系統では、まず、ジオメトリデータ(およびその他の頂点属性)を、接続性を考慮することなく圧縮する。接続性は、その後、ジオメトリデータを用いて圧縮する。このような方法の着眼点は、非常に大きな3Dメッシュ内の頂点位置/他の属性と比較して、接続性データは、データのほんの一部だけを表すということである。したがって、このような方法は、ジオメトリデータをより慎重に扱うのにより適切であると考えられる。最先端のジオメトリによる圧縮法のほとんどは、空間分割に基づいている。すなわち、頂点がBSP、K-dツリー、八分木(2Dでは四分木)などの階層構造に分割されている。頂点位置を符号化するのにK-dツリーを用いる方法の数少ない例には、以下が含まれる。Lewiner他(2006)による論文「GEn-code: Geometry-driven compression for General Meshes」、およびGandoinおよびDevilliers(2002)による論文「Progressive lossless compression of arbitrary simplicial complexes」。頂点位置を符号化するのに八分木を用いる方法の例には、以下が含まれる。Peng他(2005)による論文「Geometry-guided progressive lossless 3D mesh coding with octree decomposition」、Tian他(2012)による論文「Adaptive coding of generic 3D triangular meshes based on octree decomposition」、Jamin他(2009)による論文「CHuMI viewer: Compressive huge mesh interactive viewer」、およびDu他(2009)による論文「Out-of-Core Progressive Lossless Compression and Selective Decompression of Large Triangle Meshes」。
【0008】
ここで第2の分野(点群圧縮)について述べる。
【0009】
点群には、ジオメトリデータ(頂点位置)と頂点ごとの属性(例えば、頂点ごとの色、および/または、法線ベクトル)のみが含まれる。点群は非常に大きなデータで構成されることが多いため、圧縮は重要な課題である。最先端の圧縮方法も、空間分割に基づいている。これは良い結果をもたらし、頂点のランダムアクセス(点群の別の注目事項)が可能になることもある。以下の方法は、すべて八分木分解に基づいている。Botsch他による論文「Efficient high quality rendering of point sampled geometry」、Huang他による論文「A Generic Scheme for Progressive Point Cloud Coding」、Huang他による論文「Octree-Based Progressive Geometry Coding of Point Cloud」、Juiang他による論文「Tangent-plane-continuity maximization based 3d point compression」、Kammerl他による論文「Real-time compression of point cloud streams」、およびZhang他による論文「Point cloud attribute compression with graph transform」。
【0010】
これらの方法の多くは、2つのステップからなる。まず、各葉が0個または1個(またはいくつか)の頂点(群)を含み、頂点を含む各葉が小さい次元を持つように、八分木内の空間を分割する。このように、ツリー内のセルの位置を知ることにより、3D空間内の頂点を配置するのに十分な精度が得られる。次いで、ツリー構造を効率的に符号化し、その葉が空であるかどうかを判定する方法である。この情報は、頂点位置を回復するのに十分である。
【0011】
上に列挙した圧縮方法は、それが第1の分野のものか第2の分野のものかに関わらず、効率を上げるための努力や工夫が惜しむことなくなされている。効率は、以下の基準のいずれか1つ、またはいずれかのトレードオフによって評価することができる。すなわち、圧縮率、圧縮復元時間、プログレッシブ性、データランダムアクセス、および時間的相関関係である。圧縮率は、圧縮後と圧縮前のデータサイズの比である。これは具体的で定量化された尺度であり、通常は、効率を評価する際の最初の方法である。圧縮復元時間もまた、効率を評価するための確かな定量化された尺度である。現実の3Dアプリケーションでは、リアルタイムでデータを読み込んで復元する必要があるため、復元時間がより深く関連するが、このようなデータはオフラインで(一度だけ)圧縮されている可能性がある。これはリアルタイムで動作できるかどかという問題に強く関連しているため、メモリ消費を考慮に入れることもある。プログレッシブ性とは、データを部分的にロードし、既に使用可能であるものを得る能力である。部分的にロードされたデータは、最終的な結果の粗いバージョンとして表示され、さらにロードすることによって(さらに)細かい詳細が追加されてもよい。データランダムアクセスは、データの、適切に配置された小さな部分を、他の部分の読み込み/ロードを行うことなく(または最小限の時間で)ロードする機能である。時間的相関関係は、データが継時的にアニメーション化される場合、フレーム間の相関関係(すなわち異なる時間におけるデータの状態)を利用してデータをさらに圧縮する能力である。
【発明の概要】
【発明が解決しようとする課題】
【0012】
多くの努力にもかかわらず、上に列挙された方法の大部分は、3D点の属性ではなく、その位置を符号化する効率に重点を置いている。これらの属性は、点群/3Dモデルを高品質で描画する上で重要である。これらの頂点の属性のサイズもまた、頂点の位置のサイズに比べて重要である。
【0013】
いくつかの方法は有効な解決策を提供しているが、それでもなお十分に効率的ではない。
・Huang他による論文「A Generic Scheme for Progressive Point Cloud Coding」は、線形非相関変換を行い、次いで、変換したそれぞれの軸に沿って適応量子化を行うことによって、色(頂点ごとの属性)を符号化することを教示している。この方式は高速ではあるが、八分木ベースの方法と同程度の符号化効率しか得られない。
・Huang他による論文「Octree-based Point-Cloud Compression」は、位置と色を、別々の八分木構造中で符号化することを教示している。
・Zhang他による論文「Point cloud attribute compression with graph transform」は、頂点の属性の圧縮に着目し、「グラフ変換」に基づく方法を紹介している。
【0014】
主な難点は、属性(例えば、画素色)が完全に規則的な(例えば、格子状の)構造上にある従来の画像およびビデオとは異なり、この場合の属性は、非構造化および/または疎な点群上に存在し、したがって圧縮が難しいことである。
【0015】
このような文脈において、現実の物体を表すモデル化オブジェクトを圧縮するための改善された方法が依然として必要である。
【課題を解決するための手段】
【0016】
したがって、所定の空間内における物理的属性の値を表すデータを圧縮するための、コンピュータによって実施される方法が提供される。本方法は、所定の空間の階層的区画の葉セルのそれぞれから、各葉セルにおける物理的属性の値を表す係数のそれぞれへのマッピングを含む信号を提供することを含む。本方法はまた、当該信号から開始して、今回の繰り返しのそれぞれにおいて、前回の繰り返しにおけるローパスサブバンドに各ウェーブレット畳み込みフィルタを渡すことによって、ウェーブレット畳み込みフィルタの所定の基底を用いて当該信号の離散ウェーブレット変換を決定し、それによって、ローパスサブバンドを含むサブバンドを反復的に決定することを含む。今回の繰り返しで決定されたサブバンドは、それぞれ、前回の繰り返しにおける同じ階層的区画をその区画とする階層的区画の、葉セルからのマッピングを含み、それぞれの所与の葉セルは、それぞれのウェーブレット畳み込みフィルタを前回の繰り返しのローパスサブバンドに渡す間に、所与の葉セルを細分化する前回の繰り返しの階層的細分化の葉セルからマッピングされた前回の繰り返しのローパスサブバンドの係数にそれぞれのウェーブレット畳み込みフィルタを適用することによって決定されたそれぞれの係数にマッピングされる。本方法は、また、決定した離散ウェーブレット変換を符号化することを含む。
【0017】
本方法は、以下のうちの1つまたは複数を含んでいてもよい。
・ウェーブレット畳み込みフィルタは、コンパクトな台を有する。
・繰り返しにおける少なくとも1つの所与の回において、前記渡すことは、係数にマッピングされなかった前回の繰り返しのローパスサブバンドの少なくとも1つの葉セルに遭遇し、前記離散ウェーブレット変換を決定することは、遭遇したセルに値を割り当てることを含み、前記割り当てられた値は、ウェーブレット畳み込みフィルタのそれぞれに入力される。
・前記割り当てられた値は、繰り返しの前記所与の回で決定されたサブバンド内を強制的に1つ以上のゼロにすることに関連する基準に従って決定される。
・前記基準は、強制的にゼロにされなかった、繰り返しの所与の回で決定されたすべてのサブバンドの係数の数が、強制的にゼロにされなかった、前回の繰り返しのローパスサブバンドの係数の数に等しいことである。
・前記コンパクトな台のサイズは、階層的細分化のディバイダの最小値以下である。かつ/あるいは、
・階層的細分化のディバイダは定数値であり、コンパクトな台のサイズは階層的細分化のディバイダの定数値に等しい。
【0018】
また、上記圧縮方法によって得られる圧縮信号が提供される。そのような圧縮された信号は、所定の空間、特に初期の階層細分化の葉セルにおける物理的属性の値を表すが、初期マッピングよりも、要するメモリ空間が小さい(「初期」という形容詞は、初期の信号、すなわち離散ウェーブレット変換以前の状態の信号を指す)。圧縮された信号は実際に符号化された離散ウェーブレット変換を含み、それにより離散ウェーブレット変換から生じるサブバンドの階層的構成を符号化した結果を表すデータを含む。圧縮された信号は、係数が初期の信号上にマッピングされる初期の階層的細分化の葉セルを示す追加情報をさらに含んでいてもよい。このような追加情報は、初期マッピング自体を表すデータであってもよいが、係数データを提供するデータを初期データ内(のみ)において破棄する。係数値は実際、縮小したサイズのバージョンの圧縮信号で提供される。すなわち、符号化した離散ウェーブレット変換である。
【0019】
また、上記圧縮方法によって得られる圧縮信号を復元するための、コンピュータによって実施される方法が提供される。圧縮信号は、上述の圧縮方法によって効果的に得ることができる。したがって、圧縮および復元は、圧縮・復元グローバル処理において逐次実行されてもよい。しかし、圧縮された信号は、同じ圧縮形式になるのであれば、他の圧縮方法で得てもよい。復元は、圧縮を行うのに実行される演算を逆に行うことをその本質とし、後で説明するオプションを用いて、それ自体既知の離散ウェーブレット変換から初期信号を取得する。したがって、復元は、圧縮信号を復号し、次いで、離散ウェーブレット変換を元に戻す(すなわち、その逆を実行する)ことを含んでいてもよい。
【0020】
一例において、復元により、初期信号に存在しなかった係数、すなわち、圧縮前に係数をマッピングしなかった葉セルからマッピングされる係数が得られる可能性がある。この復元は、復元に由来する各係数について、係数が最初に存在したか否かを決定することを含んでいてもよい。これは、圧縮信号に存在する付加的な情報、例えば上述の付加情報に基づいていてもよい。復元は、最初に存在しなかった係数を破棄することを含んでいてもよい。
【0021】
また、信号の使用、例えば表現および/または演算および/またはマッピングに基づいて実行されるシミュレーションの表示を含む、コンピュータによって実施される方法が提供される。この使用は、復元後、および/または圧縮前のグローバル処理で実行されてもよい。
【0022】
さらには、前記圧縮方法、前記復元方法、および/または、前記使用を実行するための命令を含むコンピュータプログラムが提供される。
【0023】
さらには、前記コンピュータプログラム、および/または前記圧縮信号を記録したコンピュータ読み取り可能記憶媒体が提供される。
【0024】
また、前記コンピュータプログラム、および/または圧縮信号を記録したメモリに接続されたプロセッサを備えるシステムが提供される。
【図面の簡単な説明】
【0025】
図1】本方法の一例のフローチャート。
図2】本システムの一例。
図3】本方法を説明する図である。
図4】本方法を説明する図である。
図5】本方法を説明する図である。
図6】本方法を説明する図である。
図7】本方法を説明する図である。
図8】本方法を説明する図である。
図9】本方法を説明する図である。
図10】本方法を説明する図である。
図11】本方法を説明する図である。
【発明を実施するための形態】
【0026】
以下、非限定的な例として、本発明の実施の形態を添付の図面を参照しつつ説明する。
図1のフローチャートを参照して、所定の空間内の物理的属性の値を表すデータを圧縮するための、コンピュータによって実施される方法を提案する(すなわち、メモリ記憶装置上のデータのサイズが、例えば、少なくとも統計的に、例えば、情報の損失が比較的少ないか、または全くないように縮小されるように、前記データを処理する)。本方法は、所定の空間の階層的区画の各葉セルにおける物理的属性の値を表す信号を提供すること(S10)を含む。本方法はまた、ウェーブレット畳み込みフィルタの所定の基底を用いて信号の離散ウェーブレット変換を決定すること(S20)を含む。離散ウェーブレット変換は、信号のデータ構造に基づき、特に階層的細分化構造に従って実行される。言い換えれば、離散ウェーブレット変換の基底となる繰り返しの構造は、階層的細分化の構造に従う。さらに言い換えれば、離散ウェーブレット変換は、葉セルから開始して、階層的細分化構造を巻き戻すことに対応するシーケンス内のサブバンドを決定することを含む。本方法はまた、S20で決定した離散ウェーブレット変換を、例えば任意の方法、例えばロスレスな方法で符号化すること(S30)を含む。オプションとして、本方法はまた、符号化(S30)の前に、ウェーブレット変換から生じる係数を任意の古典的な方法(例えば、そのような段階で圧縮を不可逆なものにするが、圧縮率を増加させるような方法)で量子化することを含んでいてもよい。このような方法は、所定の空間内における物理的属性の値を表すデータの圧縮の分野を改善する。
【0027】
第1に、S30で符号化された物理的属性の離散ウェーブレット変換は、元のデータおよび初期信号の圧縮(すなわち、圧縮されたバージョン)を形成するデータ構造をもたらす(例えば、元のデータおよび初期信号は、本方法の後、その信号が最初に保存されていた不揮発性メモリから、あるいは本方法による処理中のモデル化オブジェクトを形成するあらゆるデータから、破棄/削除されて、例えば遠隔のシステムに送信されてもよい。例えば、本方法は、モデル化オブジェクトを不揮発性メモリ上に定義するデータを圧縮する処理、および/またはモデル化オブジェクトを圧縮したものを遠隔のシステム、例えば別のワークステーションに送信して、帯域幅を削減する処理に関与する)。このように、本方法は、他の任意の圧縮方式に基づき構築され、それによって、そのような他の圧縮方式の効率、特に圧縮率を高める新しい圧縮法を提供する。さらに、例において、圧縮は、少なくとも前記決定(S20)の段階でロスレスである。
【0028】
また、本方法は、現実の物体のロケーションの集合、位置の集合、または形状の表現とは異なる物理的属性を表す信号を変換および符号化してもよい。実際、本方法は、ロケーションの集合、すなわち階層的細分化の葉セルにマッピングされた係数の形で、信号を提供する。したがって、ロケーションの集合は、階層的細分化データ構造によって既に提供されているので、マッピングによって提供された係数は単なるロケーションの集合を超える追加の情報を伝達することができ、その場合、本方法はそのような追加情報を圧縮する。このように、本方法は、単に位置決めデータを圧縮することに着目する従来技術の方法を改善する。
【0029】
最終的に符号化されるのが具体的には特定の離散ウェーブレット変換であるという事実は、特に効率的であることを証明する。実際、ウェーブレット圧縮方式を使用することにより、本方法は比較的高い圧縮率を達成することができる。特に、物理的属性値(例えば、頂点の色または頂点ごとの法線ベクトルなどの標準属性)は、ウェーブレット圧縮方式によって十分に考慮される良好な空間的相関関係を有する。一例では、物理的属性の値は、所定の閾値を上回る空間的相関関係を有する。さらに、ウェーブレット圧縮方式を使用することにより、本方法は比較的高速になる。特に、決定(S20)および/または符号化(S30)は、並列化(例えば、GPU上で実施)することができる。
【0030】
また、離散ウェーブレット変換係数(S20の出力)を周波数サブバンドにソートすることができる。しかし、本方法は、ウェーブレットを対象とする周知の符号化方式、例えば、当然漸進性を提供するように設計された、EZW(Shapiroによる論文「Embedded image coding using zerotrees of wavelets」に記載)やSPIHT(SaidおよびPearlmanによる論文「A new fast and efficient image codec based on set partitioning in hierarchical trees」に記載)、あるいは、漸進性を提供するように構成された他の符号化方式(それ自体公知のもの)に従って、符号化(S30)を実行してもよい。
【0031】
そして、属性データは、未処理で(例えば、構造化していない値の集合として)考慮され変換されない。むしろ、物理的属性係数は、階層的区画(それ自体、信号が供給される所定の空間に関連付けられている)に関連付けられ、前記特定の構造は、物理的属性の空間連続性が利用されるため、圧縮効率を達成する方法で変換に関与する。階層的細分化に基づいて前記決定(S20)を実行する方法のおかげで、本方法は、葉セル、および、それからマッピングされた物理的属性の値を表す係数の不規則なおよび/または疎な構造を考慮に入れることができる。実際、階層的細分化は、規則的な格子状の構造を定義せず、すなわち、その葉セルがすべて同じレベル、かつ/あるいは、すべて空ではなく、係数の集合は、所定の空間内の物理的属性の完全な連続値を定義しない。さらに、本方法は、空間的相関関係が高く、前記相関関係は、圧縮されるデータが物理的属性の値であるという事実に起因する。言い換えれば、本方法は、連続性がある場合の相関関係を考慮しながら、不連続性を処理する。このように、本方法は比較的高い圧縮効率を達成する。要約すると、本方法は、ウェーブレット圧縮パラダイムを、不規則な、および/または、疎な場合に、効率的に適用することができる。
【0032】
さらに、図1の方法の例と比較して、ウェーブレット変換を決定できる特定の方法の直接的な適用(例えば、従来技術の2D画像の場合)は非効率的であることに留意されたい。例えば、空の空間(物理的属性がない空間)にゼロ値を関連付けることは、不連続が作成されるため、本方法の例より効率が悪くなる。また、ウェーブレット変換の前記決定(S20)前の物理的属性の多項式補間は、実行が比較的長くかかる。その代わりに、本方法の例は、圧縮率を下げる不連続性を導入せず、よって比較的高速に実行する。
【0033】
例では、本方法は、各離散位置または要素が物理的属性の1つの値に関連付けられる点群または3Dメッシュの形式で元のデータを(例えば、RGB深度カメラ、および/または、構造物移動解析装置、および/または、他の任意の検出装置などの1つまたは複数の物理センサを用いた信号取得を介して)提供することを含み、本方法は、そのような未処理データを処理する。すなわち(例えば、ゼロ、および/または、多項式補間値によって)完成させることなく処理する。言い換えれば、本方法によって圧縮された信号に含まれる係数は、未処理の取得データのすべての値である(例えば、逆に、未処理の取得データのすべてあるいは大部分(例えば少なくとも75%)の値がS10で提供され圧縮される信号の係数となる。
【0034】
さらに、圧縮が実行される方法は、高速な復元(ウェーブレット変換データ圧縮の分野それ自体で知られているように、圧縮方法から直接的に生じるような復元方法)を可能にする。以下において、「方法」という表現は、復元方法を指す場合がある。
【0035】
本方法は、コンピュータにより実施される。すなわち、本方法のステップ(あるいは略全てのステップ)が少なくとも1つのコンピュータ、または類似の任意のシステムによって実行される。よって本方法のステップは、コンピュータにより、完全に自動的に、あるいは半自動的に実行される可能性がある。例えば、本方法の少なくともいくつかのステップは、ユーザとコンピュータの対話を通じて始動されてもよい。求められるユーザとコンピュータの対話レベルは、想定される自動性のレベルに応じたものであって、ユーザの要望を実装する必要性との間でバランスをとるものとしてもよい。例えば、このレベルは、ユーザが設定し、かつ/あるいは、予め定義されていてもよい。例えば、決定が行われる信号またはデータは、ユーザによって提供されてもよく(例えば、メモリから取得、および/または、設計/構築される)、また、本方法は、次いで、(例えば、ユーザが特定のソフトウェア機能、例えば「圧縮コマンド」を開始した後に)信号を圧縮するために完全に自動的に実行されてもよい。
【0036】
本方法のコンピュータによる実施の典型的な例は、この目的に適したシステムを用いて本方法を実行することである。当該システムは、本方法を実行するための命令を含むコンピュータプログラムを記録したメモリ(および、例えばグラフィカル・ユーザ・インターフェース、すなわちGUIに)に接続されたプロセッサを備えていてもよい。メモリは、データベースを記憶していてもよい。メモリは、そのような記憶に適した任意のハードウェアであり、場合により、物理的に区別可能ないくつかの部分(例えば、プログラム用に1つ、場合によりデータベース用に1つ)を含む。
【0037】
図2は、本システムの一例を示すものであって、当該システムは、クライアントコンピュータシステム、例えばユーザのワークステーションである。
【0038】
本例のクライアントコンピュータは、内部通信バス1000に接続された中央演算処理装置(CPU)1010、および同じくバスに接続されたランダムアクセスメモリ(RAM)1070とを備える。クライアントコンピュータは、さらに、バスに接続されたビデオランダムアクセスメモリ1100と関連付けられたグラフィックス処理装置(GPU)1110を備える。ビデオRAM1100は、当該技術分野において、フレームバッファとしても知られる。大容量記憶装置コントローラ1020は、ハードドライブ1030などの大容量記憶装置へのアクセスを管理する。コンピュータプログラムの命令及びデータを具体的に実現するのに適した大容量メモリ装置は、例として、EPROM、EEPROM及びフラッシュメモリ装置のような半導体メモリ装置、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMディスク1040を含む、全ての形式の不揮発性メモリを含む。前述のいずれも、特別に設計されたASIC(特定用途向け集積回路)によって補完されてもよいし、組み入れられてもよい。ネットワークアダプタ1050は、ネットワーク1060へのアクセスを管理する。クライアントコンピュータはまた、カーソル制御装置、キーボードなどの触覚装置1090を含んでいてもよい。カーソル制御装置は、ユーザがディスプレイ1080上の任意の所望の位置にカーソルを選択的に位置させることを可能にするために、クライアントコンピュータ内で使用される。さらに、カーソル制御デバイスは、ユーザが様々なコマンドを選択し、制御信号を入力することを可能にする。カーソル制御装置は、システムに制御信号を入力するための多数の信号生成装置を含む。典型的には、カーソル制御装置はマウスであってもよく、マウスのボタンは信号を生成するために使用される。あるいは、または追加的に、クライアントコンピュータシステムは、感知パッドおよび/または感知スクリーンを備えてもよい。
【0039】
コンピュータプログラムは、コンピュータによって実行可能な命令を含んでいてもよく、命令は、上記システムに方法を実行させるための手段を含む。プログラムは、システムのメモリを含む任意のデータ記憶媒体に記録可能であってもよい。プログラムは、例えば、デジタル電子回路、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実装されてもよい。プログラムは、例えばプログラマブルプロセッサによる実行のための機械読み取り可能な記憶装置に具体的に実現された製品のような装置として実装されてもよい。方法ステップは、プログラム可能なプロセッサが命令のプログラムを実行し、入力データを操作して出力を生成することによって方法の機能を実行することによって実行されてもよい。したがって、プロセッサは、データ記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、また、それらにデータおよび命令を送信するようにプログラム可能であってもよく、またそのように接続されていてもよい。アプリケーションプログラムは、高水準の手続き型またはオブジェクト指向のプログラミング言語で、または必要に応じてアセンブリ言語または機械語で実装されていてもよい。いずれの場合も、言語はコンパイラ型言語またはインタープリタ型言語であってもよい。プログラムは、フルインストールプログラムまたは更新プログラムであってもよい。いずれの場合も、プログラムをシステムに適用すると、本方法を実行するための指示が得られる。
【0040】
本方法は、一般に、モデル化オブジェクトを操作し、その物理的属性信号を圧縮してもよい。モデル化オブジェクトは、例えばデータベースに格納されたデータによって定義される任意のオブジェクトである。さらには、「モデル化オブジェクト」という表現は、データそのものも指す。システムの種類に応じて、異なる種類のデータによってモデル化オブジェクトが定義されてもよい。実際、システムは、CADシステム、CAEシステム、CAMシステム、PDMシステム、および/またはPLMシステムのうちの任意の組み合わせであってもよい。それら異なるシステムにおいて、モデル化オブジェクトは、対応するデータによって定義される。したがって、CADオブジェクト、PLMオブジェクト、PDMオブジェクト、CAEオブジェクト、CAMオブジェクト、CADデータ、PLMデータ、PDMデータ、CAMデータ、CAEデータについて言及することがある。しかしながら、モデル化オブジェクトは、これらのシステムの任意の組み合わせに対応するデータによって定義されてもよいため、これらのシステムは、互いに排他的なものではない。したがって、システムは、CAD兼PLMシステムであってもよい。
【0041】
ここで、本方法により処理されるデータについて述べる。本方法に入力されるデータは、信号の提供(S10)を可能にする任意のデータである。本方法は、以下に説明するアプリケーションのいずれか1つまたは任意の組み合わせで実施することができ、かつ/あるいは、所定の空間および/または物理的属性は、以下に説明するもののいずれか1つまたは任意の組み合わせであってもよく、かつ/あるいは、物理的属性は、現実の物体の1つであってもよく、その場合、現実の物体は、例えば、以下に説明するもののいずれか1つまたは任意の組み合わせであってもよい。
【0042】
本方法は、以下にわたってSで表される所定の空間内の、同一の物理的属性の値を表す元のデータを圧縮するためのものである。元のデータは、任意のフォーマットで本方法に入力することができ、既にS10で提供された信号のフォーマットである可能性がある(これは、S10で提供された信号が元のデータであることを意味する)。次いで、本方法は、S10において、任意の方法で、圧縮される信号の注目フォーマット、すなわちマッピングを含むフォーマットを提供してもよい。当該信号(S10)は元のデータを表す。信号は、あらかじめ提供された未処理データから任意の方法で作成するか、あるいはそのまま取得することができる。本方法は、S10で提供された信号のみを処理してもよい。
【0043】
物理的属性は、Sで生じる物理的現象の挙動に関する情報を伝達する任意の関数である。したがって、物理的属性は、物理的現象を表す任意の空間連続関数(Sに対して)であってもよい。関数は少なくともSのロケーションで値を取り、各値は当該ロケーションにおける物理的現象を表す。関数は、本方法では考慮されていない他のロケーションで値を取ってもよく、したがって単に破棄してもよい。
【0044】
物理的属性は、色または測光データ、物質量データ、形状データ、速度データ、電磁気データ、温度または熱データ、質量データ、力データ、放射能データ、材料品質データ、エネルギーデータ、音響または無線データ、化学データ、および/または生物学的データのうちのいずれか1つまたは組み合わせに関連していてもよい。
【0045】
Sは、物理属性の値が表されるロケーションを含む任意の領域である。「空間」という用語は、例えば「ベクトル空間」のように、数学的定義によって広く定義される。「ロケーション」という用語は、S内の任意の位置を指定し、例えば、ジオメトリ的位置を含むが、これに限定されない。物理現象が時間に依存し、空間Sが時間次元を含まない場合、例えば、ジオメトリ的位置に限定される場合、値は、同じ時間または同じ時間枠(例えば、10秒未満)に対応してもよく、これは、その値がその同じ時間または時間枠で物理的属性を表し、それにより物理的現象の静的な画像/キャプションを表してもよいことを意味する。理解されるように、Sは、2次元であってもよく(例えば、信号が2D画像である場合)、また、3次元であってもよい(例えば、3D表現の場合)。しかし、Sは、時間次元または他の次元も含んでいてもよい。
【0046】
物理的属性は、例えば現実の物体を構成する物質によって占有されるSの位置とは異なる、現実の物体の物理的属性であってもよい。現実の物体は、例えば固体、流体、および/または、粒子の集合(例えば気体)によって表現可能な任意の物体のように、形状を有する任意の物理的実体からなっていてもよい。「形状」という用語は、現実世界における現実の物体の少なくとも一部の任意の物理的構造/ジオメトリを指定する。このような場合、階層的区画は、現実の物体の形状の階層的区画に対応していてもよい。階層的区画表現は、例えば、現実の物体の存在を示す情報でマークされた葉セルを有していてもよい。
【0047】
したがって、現実の物体の物理的属性は、例えば物体の単なる形状ではなく、その1つまたは複数の物理的特性または特徴の任意の集合を表す情報であってもよい。物理的属性は、色(例えばこれは、各値が、関連付けられた位置での現実の物体の色を表すことを意味する)、法線ベクトル(例えばこれは、各値が、関連付けられた位置での現実の物体の面法線を表すことを意味する)、テクスチャリング(例えば、信号の値は、例えば、公知のABF++アルゴリズムのような、UBテクスチャリングとも呼ばれる、テクスチャアトラス作成アルゴリズムによって生成される、テクスチャ座標)、および/または、速度(例えば、物体が流体からなる場合、例えば流体シミュレーションにおける粒子速度)のうちのいずれか1つまたは組み合わせであってもよい。
【0048】
例では、本方法は、例えば産業計測処理または検査処理などの、CADの文脈で適用されてもよい。現実の物体は、機械部品の集合体における機械部品などのように、製造製品であってもよい。本方法は、医療画像処理の文脈で適用されてもよい。このような場合、現実の物体は、器官または他の任意の生物学的システム、例えば任意の生物学的組織(例えば、任意の医療データ取得システムで取得される)などの、生物学的システムであってもよい。本方法は、地形または都市環境の変更に適用してもよい。このような場合、現実の物体は、都市の一部、例えば、1つまたは複数の建物またはその部分を含むシーンであってもよい。本方法は、3Dによる再構築または仮想化の文脈で適用されてもよい。そのような場合、現実の物体は、現実生活の物体を3Dで再構築したものであってもよい。本方法は、流体シミュレーションの文脈(例えばSPH)で適用されてもよい。そのような場合、現実の物体は流体であってもよく、位置の集合は、それぞれ、その流体粒子を表してもよい(例えば、この場合、本方法は、流体の挙動のシーケンスをシミュレートするいくつかのフレームに適用してもよい)。
【0049】
現実の物体は、CADソフトウェア・ソリューションやCADシステム等を用いた仮想的設計の完了後に実世界において製造される製品、すなわち(例えば機械)部品や、部品の集合(あるいは同様に部品の集合。なぜなら部品の集合は本方法の観点では一つの部品としてみることができ、また、本方法は集合体における各部品に独立して適用することができるからである)、より一般的には任意の剛体の集合体(例えば移動機構)などの製品のジオメトリを表現してもよい。CADソフトウェア・ソリューションは、航空宇宙、建築、建設、消費財、ハイテク機器、産業機器、輸送、海洋、および/または海洋石油/ガス生産、または交通を含む、限定されることのない様々な産業分野における製品の設計を可能にする。本方法により設計される3Dモデル化オブジェクトは、このように、地上車両の部品(例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモーター機器、トラック、バス、電車を含む)、航空車両の部品(例えば、航空機体機器、航空宇宙機器、推進機器、防衛製品、航空路線機器、宇宙機器を含む)、海軍車両の部品(例えば、海軍用機器、商業用船舶、オフショア機器、ヨットおよび作業船、船舶用機器を含む)、一般的な機械部品(例えば、工業用製造機械、大型移動機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む)、電気機械部品または電子部品(例えば、家電、セキュリティおよび/または制御および/または計装製品、コンピューティングおよび通信機器、半導体、医療装置および設備を含む)、消費者製品(例えば、家具、家庭用および庭用製品、レジャー用品、ファッション用品、耐久消費財小売用品、織物類小売用品を含む)、包装(例えば、食品および飲料およびたばこ、美容およびパーソナルケア、家庭用製品包装を含む)などのように、任意の機械部品であり得る工業製品を表してもよい。
【0050】
空間Sは、現実の物体が定義される任意の所定の空間であってもよい。空間Sは、現実の物体がロケーションによって表されるシーン、例えば2Dまたは3Dシーンであってもよく、例えば、現実の物体が3D再構築処理で使用されるときに、現実の物体が設計され、ロードされ、また、さらに再構築されたシーンであってもよい。あるいは、空間Sは、そのようなシーン内の現実の物体を囲むボックスであってもよく、例えば、物体を含む、例えば最も小さい正方形あるいは立方体のジオメトリであってもよい。
【0051】
本方法は、Sの値の集合が提供され、比較的不規則かつ/あるいは疎であり(これは、少なくとも1つの空の葉セル、すなわち、係数上にマッピングされないか、またはヌルにマッピングされない葉セルを有する階層的区画によって保証されてもよく、例えば、全ての空のセルは、Sのサイズの少なくとも10%または50%に対応する)、かつ/または、物理的属性が非ゼロの空間的相関関係(例えば、値の空間的相関関係が厳密に0より大きい、例えば比較的大きな値)を有する、多数の状況において、物理的属性が何であるかに応じて適用され得る。そのような文脈において、本方法は特に高い圧縮率を達成する。例えば、本方法は、粒子ベースのアプリケーション(例えば、点群の描画や、平滑化粒子流体力学などのSPHによる流体シミュレーション、または3Dモデル圧縮)に適用することができる。
【0052】
例において、元のデータの少なくとも一部は、1つまたは複数の3Dスキャナ(すなわち、3Dデータ取得装置)で取得されたデータによって提供されてもよい。あるいは、または追加的に、元のデータの少なくとも一部は、RGBカメラ、および/またはRGBDカメラなどの深度センサを含む3D再構築検出装置によって提供されてもよい。あるいは、または追加的に、元のデータの少なくとも一部は、ユーザにより設計/定義されてもよい。元のデータの値は、物理現象のキャプション、測定値、シミュレーション、および/または設計に由来してもよい。元のデータ、すなわちS10で提供された信号は、Sに対してある程度の空間的相関関係を示す。
【0053】
すでに説明したように、元のデータは、任意のフォーマットでよい。特に、元のデータは、物理的属性のそれぞれの値が与えられたSのロケーションの集合を含んでいてもよい。ロケーションの集合は、例えば2Dまたは3D点群または2Dまたは3Dメッシュのような位置の集合として提供されてもよい。位置は、固体、流体、気体または任意の有形の物体などの現実の物体の材料の形状または存在を表してもよい。あるいは、または追加的に、元のデータは、物理的属性が現実の物体の材料を表さない値をとる位置を含んでいてもよい。しかし、元のデータはS10の信号に相当してもよい。いずれの場合も、元のデータはSにおいて値をとる物理的属性を表す。
【0054】
S10をそのまま提供するか、または他の元のデータから構築する場合、本方法によって圧縮された信号は特定の構造をとる。具体的には、Sの階層的区画の要素からそれぞれの係数へのマッピングを含む。マッピングは任意の方法で決定できる。マッピングは、元のデータに基づいて決定してもよい。Sの階層的区画は、元のデータ内に存在してもよいし、図1の方法とは独立して、形状情報を圧縮する方法の間に構築してもよい。いずれの場合も、Sの階層的区画の要素、すなわちセルは、係数を示す(または「関連付けられる」、「関連する」、「リンクする」)係数である。係数はそれぞれ、それが指し示されるセルにおける物理的属性の値を、元のデータに沿って表す。
【0055】
元のデータが、2Dまたは3D点群、あるいは2Dまたは3DメッシュのようなSのロケーションの集合として提供される場合、階層的区画は、例えば、BSP、K-dツリー、八分木(例えば3D形状の場合)、または四分木(例えば2D形状の場合)のような従来技術に関して言及した空間ツリー分割を介して、任意の方法で構築してもよい。このような階層的細分化は、例えば、先行技術に関して言及したような圧縮された方法で現実の物体の形状を表すために、独立して、かつ/あるいは、図1の方法の前に実行することができる。ロケーションの集合に対して与えられた物理的属性値は、それぞれのロケーションを表す階層的区画のそれぞれの葉セルに割り当てられてもよい。割り当ては、任意の方法で、例えば、葉セルごとにいくつかの元のロケーションがある場合には、平均をとることによって、実行することができる。ここでは、階層的区画が、空の葉セル、すなわち物理的属性値に必ずしも関連付けられていない葉セルを含むことができることが理解される。いずれの場合も、S10で提供された信号におけるマッピングは、データの位置特定を行うという観点から、元の属性の位置ごとの値(例えば点群)の元の未処理データの圧縮を構成する。図1の方法は、S10で提供された信号をさらに圧縮することによって、それ以上のものとなる。
【0056】
所与の空間sの階層的区画は、定義上、sをセル(すなわちsの部分)へと階層的(すなわち反復的)に細分化することを表すデータである。それ自体公知の定義を以下に示す。しかし、ここで、現実の物体の形状を表す所与の空間sの階層的区画の例には、階層的区画は、BSP、K-dツリー、八分木(例えば3D形状の場合)、または四分木(例えば2D形状の場合)のような従来技術に関して言及した空間ツリー分割が含まれることに留意されたい。したがって、以下に示される定義は、そのような特定の種類の階層的区画(従来技術から公知である)に適用され、それにより、本方法によって実施され得る。
【0057】
「セル」は、空間sの任意の部分である。したがって、空間sはセルそのものであってもよい。セルは、sの規則的、かつ/あるいは、凸の部分に限定されてもよい。例において、すべてのセルがsと同じ形を示してもよい。例えば、sが立方体(あるいは正方形)である場合、セルはそれに対応して立方体(あるいは正方形)に限定されてもよい。例において、繰り返しの同じレベルにおけるセルは、同じジオメトリ(形状と寸法)を示し、位置だけが異なっていてもよい。例において、繰り返しの全てのレベルにおけるセルは、同じ形状を示し、寸法と位置だけが異なっていてもよい。寸法は、場合により空間sの寸法とともに、繰り返しのレベルによって完全に決定される。
【0058】
「反復的区画」を表すデータとは、例えば、ツリー構造(最大ツリー深さn)の形で空間sの階層的分割を表すデータ構造を意味し、例えば、一意のルートノード(ルートノードは、例えばsを表し、したがって、sは区画の開始セルである)を有する1つのツリー、または、それぞれがルートノードを有する幾つかのツリーの集合である。「反復的細分化」という表現は、階層的分割(これはS20の前に、図1の方法で実行されてもよいが、必ずしも実行されなくてもよい)をもたらす操作と、結果そのもの、すなわち階層的分割そのものの、両方を指す。反復的細分化のセル(「親」セルと呼ばれる)は、それぞれ、いくつかのセル(「子」セルと呼ばれる)に細分化されてもよい。所与の(同じ)親セルの子セルは、空間の位置の集合に適用される集合分割についての公知の数学的定義に従って、親セルの空間分割を形成する。
【0059】
空間sの階層的細分化は、sの最大深さnの階層的なk個の区画とすることができる。所与の空間sの最大深さnの階層的なk個の区画は、「深さnの空間sのk分割」とも呼ばれ、以下では一般にk_tree(s)で表され、定義上、sのセル(すなわちsの部分)への反復的な細分化を表すデータであり、反復における経路の長さは、nより短いか、または等しい(すなわち、ツリーデータ構造の「深さ」の定義に対応して、繰り返しの1回における細分化演算は最大n回)。所与のセルの各区画からは、正確にk個の子セル(すなわち、所与のセルをそれらの共通の親セルとして有するセル)が得られ、ここで、kは、厳密に正の整数であり、これは予め定められていてもよい。kは、異なる区画にわたって一定であってもよい。よく知られているように、八分木(あるいは四分木)の場合、kは8(あるいは4)に等しく、与えられたセルの子セルは「オクタント」(あるいは「クアドラント」)と呼ばれる。
【0060】
反復的細分化は、所定の方法、すなわち、所定の細分化スキームに従って実行されてもよい。一例では、反復的細分化は、繰り返しの各回で同じ所定の細分化動作を実行することができる。このようにして、各セルの細分化において、子セルは、k_tree(s)を形成するデータ構造内のどこに論理的に配置されるかを決定するだけでジオメトリ的に配置することができる。したがって、k_tree(s)は、単に空間sへのリンク(例えば、リレーショナルデータベースにおけるポインタまたは関係)と、全体の反復的区画を論理的に表す(例えば、最小限の)ツリーデータ構造とを含んでいてもよく、ここで、各ノードはリンクされた空間(すなわち空間s)のセルを表す。細分化が所定の方法に従って実行され、それによってk_tree(s)は対応する既知のデータ型(すなわち、前記所定の方法を示す)を有し、ツリー構造の各ノードは、空間s内に適切に配置されたセルを、そのように、それに関連付けられた特定のジオメトリデータが存在しないように表す。これは、特に八分木または四分木において、広く知られている。
【0061】
例えば、八分木(あるいは四分木)において、所定の方向(x,y,z)(あるいは(x,y))に関して、細分化された各セルは立方体(あるいは正方形)であり、細分化されたセルの長さの半分の長さ(すなわち、各寸法が半分に分けられる)を有する8個(あるいは4個)の子セルが得られる。したがって、各セルのロケーションは、セルを表すk_tree(s)内の各データ(例えばノード)に対して、その親セルに対する相対的な位置を付与し、ルート(例えばノード)を空間sにリンクさせることによって完全に決定されてもよい。相対的な位置は、ツリーのデータ編成によって最小限の方法で決定されてもよい。相対位置は、(x,y,z)(あるいは(x,y))に関して、2つの取り得る値のうちの1つであってもよい。これらの取り得る値は、例えば、xに関して「左」および「右」、yに関して「前」および「後」、そして八分木の場合には、zに関して「上」および「下」で表される。バイナリパラメータを考慮することができるので、これは表記規則に過ぎない。
【数1】
のタイプの表記、例えば、{0,1}3は、以下のように得られる。そのようなk_tree(s)内のセルの位置およびジオメトリは、sの知識およびk_tree(s)内のセルを表すデータ(例えば、ノード)の論理的位置によって完全に決定される。
【0062】
したがって、k_tree(s)は、空間sを指すツリーデータ構造であり、sのセルを表すノードを有し、ルートノードは空間s自体を表してもよい。k_tree(s)は、それぞれ開始ノードから終了ノードへの有向の弧を有している。弧は、終了ノードが、開始ノードによって表されるセルのサブセルを表すという事実を捉えている。同じ開始ノードを有する弧は、その終了ノードによって表される各セルの相対位置が予め決定されるように編成されていてもよい。そのような場合、k_tree(s)の最大深さは、k_tree(s)の最大の枝の弧の数であり、nに等しい。nは反復的細分化に対して予め決定されていてもよい。あるいは、特に、反復的細分化が、現実の物体の形状を3D位置または3Dメッシュタイルまたはメッシュの頂点のようなジオメトリの有限集合として表すデータ構造に対して実行された場合、nは、例えば、反復的細分化方式によって実装される基準、例えば、精度または解像度によって決定されてもよい。例えば、各セルがせいぜい1つのジオメトリ(例えば、1つの位置または頂点)を含むように、nを最小の整数として決定することができる。これは単なる例である。
【0063】
ここで、形状および/または物理的属性値を表すk_tree(s)において、各セルは空であるか、または空ではなく、これは、k_tree(s)によって表される反復的細分化の各セルが、形状および/または物理的属性を含まないか(すなわち空のセル)、または、形状および/または物理的属性の少なくとも一部を含む(空でないセル)ことを意味する。したがって、空のセルは、現実の物体の材料を含まないセルであり、空でないセルは、現実の物体の材料を含むセルである。したがって、k_tree(s)は、そのような情報を捉えるデータを含んでいてもよく、このデータは、セル(例えば、ノードによって表される)が空のセルを表すか、空でないセルを表すかを示す任意の種類のデータ(例えば、セルから値/マーカ(例えばバイナリ値)へのポインタを含む)であり得る。nとは異なる深さの空でないセルは、それぞれ、k個のセルに細分化されてもよい。言い換えれば、材料および/または物理的属性情報がセルに存在し、細分化に許容される最大深さに達していない限り、セルは、セルによって搬送される情報が精密になるように細分化される。セルが空であることと空でないこととを示す情報は、任意の方法で提供でき、現実の物体の形状のジオメトリは、空でないセルの位置によって表すことができ、これは先に述べた論理的位置決めによって完全に決定される。
【0064】
従来技術で知られているように、k_tree(s)は、正確な位置に基づくジオメトリ的方法ではなく論理的方法で、(空間sのn個の区画に対応する解像度で)材料を含む空間s内のセルを指定することによって、現実の物体の形状の圧縮したバージョンを構成する。反復的細分化が正確なジオメトリに基づいて実行された場合、そのような正確なジオメトリは破棄してもよい。このような場合は、正確なジオメトリの形で現実の物体の形状を表すデータの不可逆圧縮に対応し得る。図1の方法は、このような第1の不可逆圧縮に次いで行われてもよい。しかし、代わりに正確なジオメトリを保持してもよい。実際、図1の方法は、物理的属性を表す信号に適用され、現実の物体自体の形状を表すデータには適用されず、したがって他の処理を受けることができる。
【0065】
反復的細分化は、空のセルが、それぞれ、必ず葉セルであるように構成することができる。これは、空のセルを細分化することができないことを意味する。言い換えれば、繰り返し中に材料を有していないセルが見つかった場合、処理はそれ以上それを細分化しない。これは、従来技術で知られているように、圧縮率を増加させる。
【0066】
図1の方法によって圧縮された信号は、実際の物体の形状のk_tree(s)表現に関係し得るが、k_tree(s)自体ではない。具体的には、信号は、最初に、空でない葉セル上に係数を分布させることにより、上述した現実の物体の物理的属性を表す。係数は、空でない葉セルにおける物理的属性が取る値を表す任意のデータ、例えば、ダブルおよび/または浮動小数点、および/または、整数、または、そのベクトル/集合/リストである。ヌルはまた、K_tree(S)の空でない葉セル上に分配され、係数として認められ、例えば、ゼロ値を表してもよい。ゼロ値は、全く係数なしで表すこともでき、この場合、物理的属性は、情報がないか、少なくとも逆の情報(例えば、0とは異なる係数)が提供されていない、すべての空でない葉セルにおいて、ゼロと等しいと考えられる。あるいは、ゼロ値は、明確に存在する情報のみによって表されることが要求される可能性がある。これらは、保持されている規則に依存する実装の詳細である。
【0067】
空の葉のセルまたは葉でないセルに関連付けられた係数がもしあれば、それらは考慮されていなくてもよく、したがってこの方法によって廃棄されてもよい(例えば、削除され、かつ/あるいは、少なくとも処理されないか、演算に関与しない)。係数がスカラー(すなわち、一次元)ではなくベクトル/集合/リスト(すなわち多次元)である場合、図1の方法は、ベクトル/集合/リストを全体とみなして1回適用されるか、または数回、その回ごとに、次元が縮小された集合に対して、例えば座標ごとに(例えば、各座標を別個の物理的属性とみなして)ベクトル/集合/リストを投影することによって、適用される。
【0068】
ここで、決定すること(S20)について述べる。
【0069】
所与の初期信号の離散ウェーブレット変換を決定することは、定義により、また信号処理の分野においてそれ自体公知であるように、一般に、ウェーブレット畳み込みフィルタの所定の基底が関与することを意味する。所定の基底は、ウェーブレット関数の所定の集合に過ぎない(各関数はウェーブレット特性に従う)。フィルタはそれぞれ所定の初期信号に渡され(すなわち反復的に適用され)てもよく、それぞれサブバンドを生じる。それによって得られたサブバンドは、基底に関して、所与の初期信号の座標に対応し、共に、信号を表す圧縮した方法を形成する(圧縮は後の符号化によって達成される)。「ローパスサブバンド」と呼ばれるサブバンドの1つは、他のサブバンドと比較して全体的な圧縮に対する関与が少ない。そのため、処理は、このローパスサブバンドなど(同一の基底を有する)に対して繰り返すことができる。したがって、所定の初期信号の離散ウェーブレット変換を決定することは、図1の方法が、所定の基底のウェーブレット畳み込みフィルタを用いて、所定の初期信号から開始して、各繰り返しにおいてローパスサブバンドを含む各サブバンドの決定を(反復を介して)繰り返す(同じ1つの繰り返しにより幾つかのサブバンドが生じる。1つのフィルタに対して1つのサブバンドが生じる)ことを意味する。離散ウェーブレット変換では、それぞれのウェーブレット畳み込みフィルタをサブバンドに適用することは、それぞれのウェーブレット畳み込みフィルタに「サブバンドを通過させる」と呼ばれる。したがって、フィルタは、フィルタを通過するサブバンドの全ての初期係数上を「スライド」する。これはすべてそれ自体公知である。
【0070】
基本的には、本方法は、各ウェーブレットフィルタを、繰り返しの最初の回で信号に提供された係数に反復的に渡し、次に、前回の繰り返しで得られたローパスサブバンドのウェーブレット係数に反復的に渡す。当該渡すことは、階層的細分化の構造に従う。繰り返しの各回において、各ウェーブレット係数は、最初の階層的区画から始まり、「現在の」階層的区画の構造に従って、同じ「次の」階層的区画に割り当てられる。したがって、当該渡すことは、繰り返しの各回だけでなく、変換の字反復処理全体を通じて、階層的細分化の構造に従う。これにより、空間的相関関係が確実に保存され、良好な結果が得られる。また、これは、圧縮および/または復元時間のスピードに関与する。
【0071】
S10で提供された入力信号の特定のフォーマットが与えられるとして、S20で離散ウェーブレット変換が決定される方法について、階層的細分として八分木の例を用いて詳細に説明する。本方法は、S10において、cN,000で表される信号を提供することを含む。cN,000は、本例では八分木データ構造について定義される。しかしながら、この例は、他の種類の階層的細分化にも適用することができる。
【0072】
N,000は、八分木が整数Nに等しい最大深さを有する空間Sを細分化する際、octree(S)で表される八分木の葉セルからのcN,000(・)で表されるマッピング(を表すデータ)を含む。先に説明したように、octree(S)のすべての葉セルが画像にこのようにマッピングされるわけではない。例えば、Nと異なる深さの葉セルは、必ず空であってもよい。深さNのいくつかの葉セルが空であってもよい。また、octree(S)は、葉セルがoctree(S)の葉セルとは異なる、より大きな八分木に属してもよい。これは、1つの観点に過ぎず、本方法は、葉レベルで物理的属性が定義されている八分木を考慮する。
【0073】
それぞれの係数にマッピングされるoctree(S)の葉セルは、上記で提供され、以下に保持される例に沿って、八分木におけるそれらの経路を用いて次のように表すことができる:a ・・・a ∈C(L(octree(S))。ここで、各aN(それぞれn∈{1,・・・,N})は、ルートノードから始まって、前のノードから八分木で取られた分岐方向を示す∈{0,1}の値を取る3つ組である。Lは、octree(S)の深さNのすべての葉セルを表す記号である。Cは、信号内の係数にマッピングされたすべてのセルの階層的細分化を表す記号である。初期信号中のそのようなセルの数は、C(octree(S))の基数と呼ばれ、|c(N,000)(・)|と表すことができる。係数がマッピングされる唯一のセルは深さNの葉セルのみである場合、|cN,000(・)|=|C(octree(S))|=C(L(octree(S))である。
【0074】
以下では、考慮される信号は、|cN,000(・)|=|C(L(octree(S))|を満たすマッピングcN,000(・)であり、これは深さNの葉セルのみが信号にマッピングされることを意味する。したがってC(L(octree(S)))は、そのようなa ・・・a すべての集合、すなわち、係数にマッピングされる階層的細分化のすべての葉セルである。また、octree(S)は、深さNおよび/またはNとは異なる深さの葉セルを含む、係数にマッピングされない葉セルを含んでいてもよい。そのような信号は、前述したように、属性値が与えられた位置の集合を圧縮して得られる八分木に基づいて構築することができる。
【0075】
各係数にマッピングされた葉セルa ・・・a から見て、係数はcN,000(a ・・・a )で表される。このような係数は、各葉セルにおける物理的属性の値を表す。したがって、このマッピング全体が、物理的属性が空間S上でどのように作用するかを表す。
【0076】
ここで、先に述べたように、図1の方法は、ウェーブレット畳み込みフィルタの任意の所定の基底で信号の離散ウェーブレット変換を決定すること(S20)を含む。フィルタの数は、例では8個であり、したがって、fl(d,s)、l∈{0,1}で表され、これは離散ウェーブレット変換の各繰り返しで8個のサブバンドが生成されることを意味する。この例は、フィルタの数が異なっても基本的に使用できる。フィルタの索引付けがとる値の集合はl∈{L,H}で表され、「L」はローパスを示し、「H」はハイパスを示す。指数は、八分木の例における3Dの場合の自然基底を指す(基底の索引付けは、四分木については、l∈{0,1}となる)。dはウェーブレット関数であり、sはスケーリング関数である。
【0077】
既知のように、決定すること(S20)は、サブバンド(この例では8つ)を反復的に決定することになる。反復(recursion)(またはiteration/repetition)の各回は、Dで索引付けすることが可能であり、ここで保持されている表記例ではDは減少する。以下で着目する例においては、使用される異なるオブジェクトの寸法設定のために、DはN-1から具体的には1つずつ減少し、これはいつでも停止することができるが、D∈D∈{N-1,N-2,…,0}となるように0までずっと進み、この整数の集合における、連続的に減少する整数値をとる。したがって繰り返しの所与の回Dで決定された各サブバンドはcD,lで表され、l∈{0,1}または{L、H}である。これらの8つのサブバンドは、cD,000(または同等にcD,LLL)で表されるローパスサブバンドを含む。このような各サブバンドは、既知のように、各ウェーブレット畳み込みフィルタf1に、cD+1,000で表される、前回の繰り返し(繰り返しD+1)のローパスサブバンドを渡すことによって決定される。繰り返しの開始時には、ローパスサブバンドはまだ存在しないため、初期信号、すなわちcN,000とみなされる。
【0078】
上述のように、従来の離散ウェーブレット変換では、繰り返しの各回においてローパスサブバンドを一連のフィルタに、例えば独立して通過させるか、または同等に、一連のフィルタを、ローパスサブバンドに渡す(すなわち、フィルタは、ローパスサブバンドの係数が存在するロケーション上をスライドさせるか、またはシフトさせ、それ自体公知のフィルタ定義によって提供される演算における当該係数値を含む)。この場合、ローパスサブバンドは、(マッピングによって)その葉セルに係数を有する八分木のフォーマットを有する。このように、そのような八分木に所与のフィルタを渡すことは、係数が存在する(すなわち、係数がマッピングされた)ローパスサブバンドの葉セル領域に渡すことになり、そのような係数のすべてを当該所与のフィルタを通過させることを含むが、これに限定されない。
【0079】
初期信号のフォーマットは、演算が、反復を通じて、すなわちN-1から0まで繰り返すことができるように維持される。実際、繰り返しの回Dで決定されたサブバンドcD,l、特にローパスサブバンドcD,000は、それぞれ、初期信号同様、八分木の葉セルから係数(ウェーブレットフィルタによって決定され、したがって、ウェーブレット係数と呼ばれる)へのマッピングcD,l(・)を含む。初期信号の八分木の深さがNであった場合、繰り返しの回Dで考慮されるそのような八分木の深さはDである。この八分木は、繰り返しの回Dで決定されたすべてのサブバンドについて同じである(ただし、その上に定義されたマッピングは異なる可能性がある)。異なるインスタンスが作成されるかもしれないが、八分木は構造的に同じであり、octree(S)(サブバンド索引lなし)で表すことができる。このように、そのような八分木の葉セルは、深さDの経路として、そのような索引付けをしなくても表すことができる。すなわち、a ・・・a ∈C(L(octree(S)))であって、セルに対するそのような経路の各a n,n∈{1,・・・,D}は、{0,1}において変化する。octreeD+1(S)はoctree(S)の区画であり、これはoctree(S)の1つまたは複数セルを分割することに対応することを意味する。この例では、octree(S)はoctreeD+1(S)のサブツリーでもある。同様に、octreeD+1(S)はoctree(S)の区画であり、これはSに対して実行される八分木の反復的区画構築処理における追加の細分化ステップに対応することを意味する。これはoctree(S)がSそれ自体であることを示唆する。図を参照して後で説明するように、図1の本方法は、このようにoctree(S)を巻き戻す。
【0080】
基本的に、C(L(octree(S))の各所与の葉セルa 1* 2*・・・a D*は、 cD,l(a 1* 2*・・・a D*)で表されるそれぞれの係数にマッピングされる。cD,l(a 2*・・・a D*)は、前回の繰り返しD+1のローパスサブバンドcD+1,000にウェーブレット畳み込みフィルタf1を渡す間に、fを、cD+1,000の任意の係数ではなく、a ・・・a を細分化するoctreeD+1(S)の葉セルからマッピングされたcD+1,000の係数に適用する。言い換えれば、ローパスサブバンドをフィルタに渡すとき、葉セルのブロック(すなわち、同じ親セルを有する葉セル)の係数は、親セルにマッピングされた係数を生成する(これは、次のローパスサブバンドに関連付けられた八分木の葉セルでもある)。このような葉セルはすべて、寸法が保持されているため(なぜなら、フィルタのコンパクトな台のサイズがこの例の八分木のディバイダと同じであるため)、この例に含まれていてもよい。従って、係数は、cD+1,000(a 1* 2*・・・a D*D+1 D+1)で表され、a 1* 2*・・・a D*D+1 D+1(aD+1 D+1は{0,1}において変化する)はC(LD+1(octreeD+1(S))に属する。
【0081】
ウェーブレット畳み込みフィルタf1は、コンパクトな台を有していてもよい。したがって、フィルタは、隣接するセルによってマッピングされた係数を入力とするように設計される。これにより、空間的相関関係が保存され、良好な結果が得られる。
【0082】
コンパクトな台のサイズは、階層的細分化のディバイダの最小値以下であってもよい。階層的細分化のディバイダは、階層的細分化処理(例ば、本方法の前に実行される)の間に1つのセルの細分化で生じるセルの数である。それは、各親セルが階層的細分化によって有する子セルの数であってもよい。これはまた、変化する値、あるいは一定の値であってもよい。変化する値の場合、最小値が考慮される。一定値の場合、最小値は当該一定値に等しいと考えられる。八分木の場合、各セルは葉セルであるか8つの子を有するかのいずれかであるので、ディバイダは8(すなわち、2)である。コンパクトな台のサイズが階層的細分化のディバイダの最小値以下であるため、相対的に非常に疎な階層的細分化の場合でも、空間的相関関係が保存できる。
【0083】
階層的細分化のディバイダが一定値を有する場合、コンパクトな台のサイズは、階層的細分化のディバイダの一定値と等しくてもよい。前述の八分木の例では、コンパクトな台は{0,1}であり、従ってサイズは8である。したがって、フィルタはそれぞれ、(離散ウェーブレット変換の今回の繰り返しのそれぞれにおける)階層的細分化の最大深さの葉セルに対して、「姉妹セルのブロックごと」に適用される。このような構成により、圧縮の効率が保証される。
【0084】
今回の繰り返しの階層的細分化のセルにフィルタを渡すことは、階層的細分化によって定義された順序を尊重するような任意の方法で実行すればよい。渡している間に、少なくとも1つの所与の繰り返しの回Dにおいて、特にフィルタがコンパクトな台に適用されるように制約されている場合、当該渡すことは、係数にマッピングされていない少なくとも1つの葉セルに遭遇してもよい。この葉セルは、aD+1 1’D+1 2’・・・aD+1 D+1’,で表され、これはC(LD+1(octreeD+1(S)))に属する。セルは係数にマッピングされず、フィルタは任意の方法でこのケースを処理できる。
【0085】
一例においては、決定すること(S20)は、そのような状況において、c’D+1,000(aD+1 1’D+1 2’・・・aD+1 D+1’)で表される各値をそのような遭遇したセルに割り当てることを含む。次に、(同じ)割り当て値が各ウェーブレット畳み込みフィルタに入力される。言い換えれば、本方法は、フィルタを直接的に適用できるようにするために、フィルタのコンパクトな台を、「人工的に」割り当てられた値で埋める。これにより、既知の空間のコンパクトな台に関して定義された任意のフィルタ、特に四分木の場合には任意の所定の2D画像フィルタの基礎を、また八分木の場合には任意の所定の3D画像フィルタの基礎を実装することができる。
【0086】
したがって、フィルタの引数は、フィルタがセルのブロックに適用されるたび、上述の係数cD+1,000(a 1* 2*・・・a D*D+1 D+1)であり、a 1* 2*・・・a D*はブロックの親セルへの経路を指定し、aD+1 D+1は{0,1}において変化し、欠落した係数に遭遇した場合(すなわち「空」のセル)には、割り当てた値c’D+1,000(aD+1 1’D+1 2’・・・aD+1 D+1’)で補間する。
【0087】
復元時には、人工的に割り当てられた値は、デコーダで認識することによってフィルタリングしてもよい。例えば、本方法は、データのうち、最初の階層的細分化のどの葉セルが係数にマッピングされるかについての情報を維持することを含んでいてもよい。例えば、図1の方法は、そのようなセルにマークをつけるステップを含んでいてもよい。マーカーは、圧縮信号に存在してもよい。信号を復元する際に得て、他の葉セルにマッピングした係数は、破棄してもよい。
【0088】
割り当てる値は、どのような方法で決定してもよい。例えば、繰り返しの所与の回で決定されたサブバンド内を強制的に1つまたは複数のゼロにすることに関連する基準に従って決定してもよい。言い換えれば、本方法は、ランダムにではなく、それらを含むフィルタを期待して値を割り当てるので、ゼロが得られる。したがって、割り当てられる値は、(フィルタを適用した際に)結果がゼロとなるフィルタの、引き数である。割り当てられる値は、フィルタおよび現在の係数に基づいて、反復的な方法で(例えば、空のセルごとに)決定してもよい。こうした例は後で示す。ゼロは非常に効率的に符号化可能であるため、高い圧縮率を達成できる。このようにして得られたゼロに等しいウェーブレット係数は、「強制ゼロ」と呼ぶことができる。
【0089】
基準は、強制的にゼロにされない、繰り返しの所与の回で決定されるすべてのサブバンドの係数の数が、強制的にゼロにされない、前回の繰り返しのローパスサブバンドの係数の数に等しいことであってもよい。基準は、
【数2】
で表されてもよい。このようにして、初期信号中に提供される係数の数は、繰り返しを通じて維持され、本方法は特に高い圧縮率を達成する。例えば、係数は、繰り返しの各回において、フィルタを適用することによって行われる変換を法として、全てのサブバンドに(例えば、実質的に等しく)分配されるように見えてもよい。
【0090】
ここで、上記に沿った図1の方法の概要の例について述べる。図3は、八分木の葉セルから係数へのマッピングを含む信号を提供(S10)するために、メッシュ(左図)または点群(右図)として提供される元のデータを八分木でどのように分割することができるかを示す。
【0091】
八分木を用いる本方法の概要の例は、頂点属性の圧縮に着目してもよい。この例における本方法は、空間が八分木に既に分割されていると仮定しており、これは前述の従来技術のアプローチのほとんどと互換性がある。なぜなら、それらのほとんどが、頂点位置を圧縮するのに八分木を用いるからである。したがって、位置の非構造化集合から開始する代わりに、この例における本方法は、八分木(位置の非構造化集合から得られる可能性がある)から開始する。図4は、点群から始まるそのような八分木分割処理を概略的に示す図であり、これは本方法の前に実行されてもよい。
【0092】
本方法の例は、画像のウェーブレット圧縮方式に関連するものとして見ることができる。この方法の例は、このアイデアを八分木構造に適用する。本方法の例は、隣接するセルの頂点の属性が互いに関連しているという事実に基づいて構築されている(例えば、色が圧縮したい属性である場合、同じ領域に配置された粒子は近い色の値を持つ可能性が高い)。ウェーブレット圧縮は、圧縮されるべき属性(例えば、画素色)があらゆる場所に定義されている完全に規則的な構造(例えば、画像またはビデオ)について公知である。本方法の例では、葉が、粒子(および圧縮される属性の定義された値)を含んでいるかまたは空であるような八分木に、このような方式を適用する。
【0093】
したがって、本方法は、記憶手段上の2D空間または3D空間内の粒子の集合を圧縮する、コンピュータによって実施される方法を本質とする。本方法は、一例において、各粒子が空間内の位置と、圧縮したい少なくとも1つの属性(通常は色と法線ベクトル)を有するような、2Dまたは3Dの粒子(頂点)の集合を圧縮するのに適用されてもよい。本方法では、空間が、各葉が粒子(および圧縮される属性の定義された値)を含んでいるかまたは空であるような八分木(あるいは2Dの場合、四分木)に、すでに分割されているものと仮定する。先行技術で知られているアプローチは、八分木構造を採用することが最も多いため、このデータ構造が便利である。本方法ではさらに、八分木が、デコーダにおいてうまく再構築され得る(デコーダが、そうすることによって粒子の位置を回復する)ような、任意の所定の圧縮方式で符号化されると仮定する。本方法は、次に、色、法線ベクトル、および/または、速度など、粒子の集合上の属性値を圧縮することを提供する。八分木を符号化/復号する圧縮方式は、そのような任意の方式であってもよい。便利な方式の1つが、先の触れたPeng他による論文「Geometry-guided progressive lossless 3D mesh coding with octree decomposition」に記載のジオメトリコーダである。この方式は、所望の特性を有する八分木を構築するが、先に列挙した論文のうち、八分木に基づく任意の方法を、代わりに使用することができる。八分木構造は、属性の前に(および属性とは別々に)符号化、および/または、復号することができる。
【0094】
例の方法をよりよく理解するために、ウェーブレット圧縮方式が画像に対してどのように機能するかについて、概要を説明する。このフレームワークは、本方法の例によって実施できる。
【0095】
画像のウェーブレット圧縮方式は、以下のステップからなる。まず、ウェーブレット変換を行う:離散ウェーブレット変換が空間構造に適用される。そして、量子化を行う:得られたウェーブレット係数は(公知の方法で)定量化される。そして、符号化を行う:定量化されたウェーブレット係数が符号化される。場合によっては、追加のステップ(例えば、ブロック分割、色空間変換、および/またはPCAによるデータ整列)を適用することもできる。本方法は、そのようなアーキテクチャに従ってもよく、特に、決定すること(S20)の後に(例えば、それとインターレースして)量子化ステップを含んでもよい。復号方式は、正確に対称的に逆であってもよく、各逆ステップは逆の順序で適用されてもよい。これらのステップのより詳細な説明を以下に示す。
【0096】
符号化では、データサイズが真に縮小される。短いシンボルは、入力シンボルに従って出力されるが、動作は可逆的なままである。ウェーブレット圧縮方式で使用されているエンコーダには、ランレングスエンコーダ、エントロピーエンコーダ(例えば、Huffmanコーダ、Arithmeticコーダ)、辞書エンコーダ(例えばLempel-Zivコーダ)、および、専用エンコーダ(例えば、Zerotreesコーダ、SPIHT、EBCOT)などの、一般的なエンコーダが含まれる。これらのコーダの任意の組み合わせ(例えば、ランレングスエンコーダ+Huffmanコーダ)を実装することもできる。この段階は、ほとんどの場合、完全に逐次的である。つまり、GPU上で並列化することはほとんど不可能であり、以前のすべてのシンボルを復号しないと、符号化したデータの途中でシンボルを復号できないため、データへのランダムアクセスが防止できる。エンコーダの効率(圧縮率)は、入力データ内のシンボルの多様性およびこれらのシンボルの分布の影響を受ける。入力がシンボルの小さな集合しか使用しない場合、出力は小さくなる。出力は、等確率分布から遠く離れていると小さくなる。すなわち、入力がたくさんのゼロが含み、ゼロでないシンボルがほとんどない場合、圧縮率は高くなる。
【0097】
量子化とは、値をある精度単位で丸めるなど、入力値の大きな集合を小さな集合にマッピングする処理である。量子化を実行する装置またはアルゴリズム機能は、量子化器と呼ばれる。量子化によってもたらされた丸め誤差は、量子化誤差と呼ばれる。繰り返すが、多くの量子化器がウェーブレット圧縮方式で用いられている。この段階では、一部のデータが失われ(量子化エラー)、その後不可逆的になる。ロスレスウェーブレット圧縮方式は、この段階をスキップする。この段階は、シンボルの多様性を大幅に減少させるので、符号化ステップをより効率的にする。また、シンボル分布にも影響を与える可能性がある(たとえば、デッドゾーン量子化器は、ほとんどの値をゼロに丸めようとする)。
【0098】
ウェーブレット変換は、いくつかの係数に対して信号のエネルギーを圧縮し、他の係数をゼロに近づける。ほとんどの場合、ほぼ可逆的な変換である。ウェーブレット変換は、たいていの場合、ウェーブレットの選択によって決定される。この選択は、圧縮される信号の形式に従って行うことができる:Haarウェーブレットは、高速で変化する信号に適している。LeGall5/3ウェーブレットと9/7-CDFウェーブレットは、ゆっくり変化する信号に適している。この段階は、シンボル分布に影響を与えることで、符号化ステップをより効率的にする:ウェーブレット変換された画像は、たくさんのゼロを有し、ゼロでない係数はほとんどない。ウェーブレット変換は、一連の畳み込みフィルタとして反復的に適用することによって実行される。画像畳み込みは、いわゆるスライディングウィンドウアプローチによって実行される:画像内の各画素について、画素の局所的な近傍が重み付けカーネルによって乗算され、次に加算されて、新しい画素の値が得られる。図5は、スライディングウィンドウアルゴリズムを用いて実行される畳み込みのそのような例を、概略的に示す。リフティングフィルタと呼ばれるもう1つのアプローチ(Wim Sweldensによる論文「The Lifting Scheme:A Construction of Second Generation Wavelets」に詳述)は、より速いため好まれることもあるが、コンボリューションフィルタのアプローチと完全に同等である。この段階は、信号の空間的相関関係を利用していると言われる:すなわち、冗長な情報と見なすことができる、画素の隣接画素への依存関係を削除し、データの圧縮は冗長な情報を何らかの方法で削除することである。
【0099】
離散ウェーブレット変換ステップが画像N*Nに対して実行されるとき、一連の畳み込みフィルタが繰り返し適用される。これにより、画像が、サブバンドと呼ばれる、一連のより小さな画像に分解される。これは、多重解像度解析を示す図6に示されている:結果として得られるN*Nのウェーブレット係数は、サブバンドにソートされる。各サブバンドは、所定の周波数範囲(ローパスを含む)に限定されたタイル情報を含む。ウェーブレット分解の1つのレベルでは、前の分解ステップ中に導出されたローパスサブバンドから、4つのサブバンドを構築することが可能である。各サブバンドの寸法は、それが由来する画像/サブバンドの寸法の2分の1である。図6からわかるように、サブバンド1HL、1LH、1HH、1LLは、完全なタイルに適用されたウェーブレット分解の結果である(それらの寸法はN/2である)。サブバンド2HL、2LH、2HH、2LLは、サブバンド1LLに適用されたウェーブレット分解の結果である(それらの寸法はN/4である)。以下同様。階層的サブバンド構造は、多重解像度解析と呼ぶことができる(生成された係数が周波数範囲によってグループ分けされているため)。処理の終了時におけるウェーブレット係数の総数は、入力画素数(N*N)と同じである。
【0100】
これまでに言及したことはすべて、3D画像に拡張することができる。4つのサブバンドの代わりに、ウェーブレット分解の1つのレベルで、8つのサブバンドが生成される。これは、離散ウェーブレット変換が3Dで実行されるときのサブバンドを示す、図7に示されている。しかしながら、離散ウェーブレット圧縮方式を八分木構造に適用するうえでの主な問題は、完全に規則的な(例えば格子状の)構造を有する従来の画像とは異なり、ここでは、属性値は、より複雑な構造上に存在し、属性値はどこにでも定義されているわけではないことである。ただし、このステートメントの影響を受ける唯一のステップは、ウェーブレット変換である:畳み込みフィルタとリフティングフィルタの両方で、各粒子の局地的な近傍を定義する必要があるが、ここでは明確ではない。量子化ステップでは、画素の近傍は見ない。符号化ステップは係数の順序の影響を受けるが、ウェーブレット変換に比べて程度は低い。したがって、符号化(およびオプションとしての量子化)をこのシナリオに適用するのは容易であり、主な問題はウェーブレット変換(すなわち、決定すること(S20))である。
【0101】
ここで、このような離散ウェーブレット変換を3D八分木に適用する例について、図1を参照して説明した本方法の例に沿って説明する。
【0102】
ここでこの例についてさらに詳細に説明する。ここでは、八分木に適用される新たな離散ウェーブレット変換を疎なウェーブレット変換と呼ぶ。
【0103】
まず、多重解像度解析がどのようなものであるべきかを考える。通常の入力が、N*N*N個の画素の規則的な3D画像(各画素に定義された値を有する)でなければならない場合、本方法は、最大深さがNで、各葉が、明確に定義された値を保持することも(そのセルに粒子が存在する場合)、あるいは保持しないことも(粒子が存在しない場合)できるような八分木を扱う。
【0104】
この例の方法は、ウェーブレット変換が、「規則的な画像」のウェーブレット変換(詳細は後述)に近いままとなることを保証する。よって、「規則的」な場合、
1.ウェーブレット変換は、信号を一連のフィルタに通す(すなわち、信号にフィルタを渡す)ことによって算出される。
【0105】
2.分解の各レベルにおいて、前のレベルで得られたローパスサブバンドから8つのサブバンドを生成する。
【0106】
本方法は、以下を追加する。
【0107】
3.画像全体を描くのに必要な係数の数は、各ステップを通して維持される。簡略化して、8つのサブバンドは、それぞれ、それらが由来するローパスサブバンドと比べて8分の1の(ヌルでない、またはゼロでない)係数を含む。
【0108】
各ステップの前後に同じ数の係数を維持することは、疎なウェーブレット変換が以下の特性を有することを示唆する(あるステップの前のローパスサブバンドの最大深さをDとするとき、第1のステップについてはD=Nが成り立つ):
i.1つのステップによって生成される8つのサブバンドは、最大深さD-1の八分木(より正確には、八分木の葉セル上に定義されたマッピング)である。
【0109】
ii.ローパスサブバンドにおける深さd<Dの空の葉は、結果として生じるサブバンドの深さdにおいて空の葉を生成する(すなわち、これらの葉には情報が含まれない)。
【0110】
iii.深さDの8個(2×2×2)のセル(1つのセルが空でない)のブロックは、結果として生じるサブバンドにおいて深さD-1にセルを生成する。
【0111】
iv.深さDにおける8個(2×2×2)のセルのブロックは、1個から8個の空でないセルを有することができる。常に同じ数の係数を維持するために、X個の空でないセルを含むブロックが、結果として生じる8個のサブバンドに分配されたX個のヌルでない係数を生成する必要がある(すなわち、この段階で強制的にゼロにされ、この強制ゼロは、ヌルの係数値または係数値がまったく存在しないものとして符号化されてもよい)。
【0112】
2×2×2個のセルのグループを扱うので、コンパクトな台(畳み込みカーネルの幅)が2以下のウェーブレットを使用するのが比較的効率的である。しかし、本方法は、代わりに、より大きなコンパクトな台を有するウェーブレットを用いても機能する。Haarウェーブレット(コンパクトな台=2)は、この場合に良い候補であるが、他の所定のウェーブレットフィルタベースを実装することもできる。したがって、本方法は、ウェーブレットが2以下のコンパクトな台を有するウェーブレットベースに適用されてもよい。
【0113】
各画素が符号化する属性に対して定義された値を有する「規則的な画像」では、2×2×2個の画素のグループ(aijk,i,j,k∈{0,1})に適用される分解の1ステップは、以下の係数を生成する(ウェーブレットフィルタは分離可能であると仮定する。これは、畳み込みフィルタを、x軸に沿った畳み込みとy軸に沿った畳み込みとの積として分解することができることを意味する):
LLLサブバンドにおいて:c000=s(s(s(a000,a001),s(a010,a011)),s(s(a100,a101),s(a110,a111)))
LLHサブバンドにおいて:c001=s(s(d(a000,a001),d(a010,a011)),s(d(a100,a101),d(a110,a111)))
LHLサブバンドにおいて:c010=s(s(s(a000,a001),s(a010,a011)),s(s(a100,a101),s(a110,a111)))
LHHサブバンドにおいて:c011=s(d(d(a000,a001),d(a010,a011)),d(d(a100,a101),d(a110,a111)))
HLLサブバンドにおいて:c100=d(s(s(a000,a001),s(a010,a011)),s(s(a100,a101),s(a110,a111)))
HLHサブバンドにおいて:c101=d(s(d(a000,a001),d(a010,a011)),s(d(a100,a101),d(a110,a111)))
HHLサブバンドにおいて:c110=d(d(s(a000,a001),s(a010,a011)),d(s(a100,a101),s(a110,a111)))
HHHサブバンドにおいて:c111=d(d(d(a000,a001),d(a010,a011)),d(d(a100,a101),d(a110,a111))))
ここでdはウェーブレット関数、sは関連付けられたスケーリング関数である。Haarの場合、s(x,y)=α*(x+y)であり、d(x,y)=β*(x-y)である。ここでαとβは正規化係数である。
【0114】
疎なウェーブレット分解の1つのステップにおいて、
・深さDの8個(2×2×2)のセルのブロックが8個の空でないセルを有する場合、1つは3D画像の場合と同じであると考えられる。aijkはすべて明確に定義されており、本方法は、上記の式を適用することができる。言い換えれば、この場合、本方法は、2D画像に適合し、2×2のコンパクトな台の画素を有する所定のウェーブレット(例えば、本ケースではHaarウェーブレット)および、3D(すなわち、2×2×2のコンパクトな台の画素)のために構成された所定のウェーブレットを適用する。
【0115】
・深さDにおける8個(2×2×2)のセルのブロックは、X個(0<X<8)の空でないセルを有する。幾つかのaijkは明確に定義されており(空でないセル)、幾つかは、定義されていない値を有する(空のセル)。上述のように、本方法は、X個の空でないセルが、8個のサブバンドに分配されたX個のヌルでない係数を生成することを保証する(先に述べた特性iv)。したがって、本方法は、8-X個のcijk係数を強制的にヌルにする。本方法の一例は、未定義のaijkの任意の値を選択することをその本質とし、それにより8-X個のcijk係数がヌルとなる。
【0116】
以下の記号を用いる。
【0117】
・[A]=(aijk)、[A]は8×1のベクトル。
【0118】
・[C]=(cijk)、[C]は8×1のベクトル。
【0119】
・[M]=上で定義した変換に関連付けられた行列。[M]は、8×8の行列。
【0120】
・[C]=[M]*[A]
・[M]の各列が、離散ウェーブレット変換の機能により、直交(非ヌル)ベクトルである。
【0121】
標準的なHaarウェーブレットの場合:
【数3】
である。
【0122】
[A]と[C]の要素を次のように並べ替えることができる。

【数4】
であり、[A]は明確に定義されたaijkであり、[A-]は定義されていないaijkである。

【数5】
であり、[C]は強制的にヌルにしないX個のcijkの値である。
【0123】
[M]の行列を再計算する必要がある:新たな[M]は、基本的に、置換行列が左と右に乗算された古いものと等しい。新たな[M]の各列は、依然として直交(非ヌル)ベクトルである。なぜなら、この性質は置換行列を用いた乗算で保存されるためである。
【0124】
新たな行列[M]は以下のように表すことができる。
【数6】
[C]=[M]*[A]は、
[C]=[M1]*[A]+[M2]*[A-]、および
[0]=[M3]*[A]+[M4]*[A-]となる。
[M4]が可逆である場合:
[A-]=-[M4]-1*[M3]*[A](式1)であり、最終的に、
[C]=([M1]-[M2]*[M4]-1*[M3])*[A](式2)となる。
【0125】
(式1)は、8-X個のcijkをヌルにするために未定義のaijkに割り当てる必要がある任意の値が、ヌルにしたい8-X個のcijk係数の選択によって完全に決定されることを示している。
【0126】
(式2)は、[M4]を可逆にするのにヌルでなければならないcijk係数を選べば、上記の式で分解のステップの結果である[C]を算出できることを示している。
【0127】
本方法の例で最終的に設定する必要があるのは、ヌルにする8-X個のcijk係数の選択だけである。この選択は、任意の方法で実行できる。この選択が完了すると、本方法は[M1]、[M2]、[M3]、[M4]、および最後に分解のステップの結果である[C]を算出することができる。
【0128】
次の例は、このような有効な選択肢が常に存在し、本方法が常に選択を実行できることを示す。
【数7】
は、[M]の8-X個の列である。
【数8】
は、8-X次元の部分空間S上におけるこれら8-X個の列の直交射影である。この部分空間Sは、構成(すなわち、8個(2×2×2)のセルのブロックにおける明確に定義されたaijkおよび未定義のaijkの位置)によって与えられる。[M]の8-X個の列の選択は、強制的にゼロにしたい8-X個のcijk係数の選択によって与えられる。
【数9】
の列が線形独立であれば、[M4]は可逆である。
【0129】
前述のように、[M]の各列は直交(非ヌル)ベクトルである。これらのベクトルmは、正規化して正規直交基底を得ることができる。これらの基底ベクトルのSへの直交投影は、Sの過完備基底である。したがって、S上の投影[M4]はSの完備な基底を形成し、このような[M]の8-X列を常に見つけることができ、これは[M4]が可逆であることを意味する。
【0130】
以下は、ヌルにしなければならない8-X個のcijk係数の選択方法に着目する。
【0131】
X個の明確に定義されたaijk(0<X<8)を有する8個(2×2×2)のセルのブロックには、
【数10】
個の取り得る構成(8個のセルのうち、X個の明確に定義されたaijkの位置)がある。すべての取り得る構成(Xが取り得るすべての値)を考慮すると、考慮するケースは254(
【数11】
)ある。
【0132】
疎なウェーブレット分解を完全に定義するのに、これらの254のケースのそれぞれについて、まだ定義していないものがあり、それはヌルにしたいcijk係数である。各構成について、少なくとも1つの有効な選択肢があることは、既に示した。本方法では、明確に定義されたX個(0<X<8)のaijkを有する8個(2×2×2)のセルのブロックに遭遇するたびに、それがどの構成であるかを単純にチェックし、その構成に対して予め決められた選択肢を適用する。
【0133】
実際には、多くの場合、各構成にたくさんの有効な選択肢がある。いくつかの選択肢は、他と比較して、より関連性がある。選択肢の事前決定は、より効率を良くするために、以下に述べる原則に従ってもよい。
【0134】
多くの構成が似ている場合、同種のものとしてグループ化して扱うことができる。また、「標準的」な選択肢を予め設定することもできる。そのような標準的なオプションは単純であり、多くの構成で機能する。それは次のように記述することができる。{0,1}の各(i,j,k)に対して、aijkが未定義の値を有する場合、本方法は、cijkを強制的にヌルにする。これが有効な選択肢ではない構成はほとんどない([M4]が可逆でない場合)。
【0135】
なお、「規則的」なHaar分解の場合、LLLサブバンドにおいて:
【数12】
→LLLサブバンドは8個の画素の一種の平均を格納する。また、他のサブバンドは、一方向の平均差を格納する(c100は、ほぼ、x軸に沿った平均差、c010はy軸に沿った平均差、など)。つまり、X個の明確に定義されたaijkを有する8個(2×2×2)のセルのブロックでは、本方法は、明確に定義されたaijkの平均がヌルの場合を除いて、c000に対してヌルでない値を保持してもよい。したがって、この動作を維持するために、本方法は、強制的にヌルにしたい8-X個のcijk係数のうちc000を保持することがある。
【0136】
以下のステップ(量子化および符号化)では、八分木構造が分かっているため、本方法は、多重解像度解析構造がどのようなものであるか、および、この構造のどのゼロが前段落で生成された「強制ゼロ」であるかが分かっている。したがって、これらのセルは量子化され符号化される必要がない。
【0137】
復元段階において、復元方法は、八分木構造が既に復号されている(頂点位置が、頂点属性の前に別個に復号されている)と仮定することができる。逆ウェーブレット変換が実行されるとき、本方法は、どの値が実際の空でないセルであり、どの値が「充填したセル」であるかを考慮して、これらの値を破棄することができる。
【0138】
このような離散ウェーブレット変換を2D四分木に適合させる例を次に説明する。この例は、前の例を2次元(八分木ではなく四分木)で使用するケースに対応しており、3D八分木のケースは、この例の拡張である。
【0139】
離散ウェーブレット変換を四分木に適合させるために、まず多重解像度解析がどのようなものであるべきかを見ることができる。四分木に適用されるこの新たな離散ウェーブレット変換は、疎なウェーブレット変換とも呼ばれる。ウェーブレット変換の古典的な画像N*Nは、最大深さNの四分木に置き換えられる。
【0140】
分解の各レベルで、前の分解ステップ中に導出されたローパスサブバンドから、4つのサブバンドが生成される。
【0141】
変換の前後で同じ数の係数を維持するには:
1.これらのサブバンドは、最大深さN-1の四分木である。
【0142】
2.深さM≠Nの空の葉は空の葉を生成する。
【0143】
3.深さNの4つのセル(2×2)(1つは空でない)のグループは、深さN-1にセルを生成する。4つのサブバンドがあるので、4つの係数を作る。これは図8に示されており、図8は左から右に、元の四分木(圧縮されるデータが、定義された値を有する黒点図)、および、疎なウェーブレット変換の1/2/3個のステップの後の多重解像度解析を示す。規則1-3は、多重解像度解析の構造を定義する。疎なウェーブレット変換の各ステップは、4つのサブバンドを生成する。各サブバンドは四分木である。
【0144】
4.深さNの4つのセルのグループは、1,2,3または4つの空でないセルを有することができる。同じ数の係数を常に維持するために、1/2/3/4個の空でないセルを含むグループは、4つのサブバンドに分配される1/2/3/4個の係数を生成することができる。これは図9に示されており、図9は、規則4を追加することによって更新された図8の方式を示している。疎なウェーブレット変換の各ステップは、この例では、同じ数の係数を維持する。
【0145】
2×2個のセルのグループを扱うので、可能性の1つとして、コンパクトな台(畳み込みカーネルの幅)が2以下のウェーブレットを使用することができ、これにより演算が単純になる。Haarウェーブレット(コンパクトな台=2)は良い候補である。より大きいコンパクトな台を有するウェーブレットを用いてもよい。
【0146】
これ以降、ウェーブレットが2以下のコンパクトな台を有すると仮定する。各画素が符号化する属性に対して定義された値を有する2D画像では、2×2個の画素のグループ(a00,a01,a10,a11)に適用される分解の1ステップは、以下の係数を生成する(ウェーブレットフィルタは分離可能であると仮定する。これは、畳み込みフィルタを、x軸に沿った畳み込みとy軸に沿った畳み込みとの積として分解することができることを意味する):
LLサブバンドにおいて:c00=s(s(a00,a01),s(a10,a11))
LHサブバンドにおいて:c01=s(d(a00,a01),d(a10,a11))
HLサブバンドにおいて:c10=d(s(a00,a01),s(a10,a11))
HHサブバンドにおいて:c11=d(d(a00,a01),d(a10,a11))
ここで、図10に示されるように、dはウェーブレット関数、sは関連付けられたスケーリング関数である(図10は、画像に適用された、コンパクトな台=2の離散ウェーブレット変換の1つのステップを示しており、各サブバンドにおいて、2×2画素のブロックが1つの係数を提供している)。Haarの場合、s(a00,a01)=α*(a00+a01)であり、d(a00,a01)=β*(a00-a01)である。ここでαとβは正規化係数である。
【0147】
Haarウェーブレットでは、
LLサブバンドにおいて:c00α(a00+a01+a10+a11)→LLサブバンドは4個の画素の一種の平均を格納する。
【0148】
LHサブバンドにおいて:c01α(a00-a01+a10-a11)→LHサブバンドは水平方向の一種の差異を格納する。
【0149】
HLサブバンドにおいて:c10α(a00+a01-a10-a11)→HLサブバンドは垂直方向の一種の差異を格納する。
【0150】
HHサブバンドにおいて:c11α(a00-a01-a10+a11)→HHサブバンドは一種のクロス差を格納する。
【0151】
四分木では、深さNの2×2個のセルのグループは1、2、3または4個の空でないセルを有することができ、4つのサブバンドに分配された1/2/3/4個の係数を生成する必要がある。これは図11に示されており、図11は、2×2個のセルのブロックに適用された疎なウェーブレット変換の1つのステップを示す。ここで、1/2/3/4個の空でないセルのグループは、4個のサブバンドに分配された1/2/3/4個の係数を提供する。
【0152】
このアプローチの考え方は、空のセルを、選択した値で埋めることであり、生成するウェーブレット係数の数を最小にするのに役立つ(ゼロにしたいサブバンド係数をヌルにする)。
・空でないセルが4つある場合は、2D画像の場合と同じである。
・空でないセルが1つ(a)しかない場合は、「平均」だけを保持、すなわち値aをLLサブバンドに格納する必要がある。これは、空のセルを同じ値aで埋め、Haarのフィルタを通常どおり適用するのと同等である。
・空でないセルが2つ(a、b)しかない場合、本方法は、LLサブバンドにおける「平均」と、(空でないセルの相対位置に応じて)他のサブバンドのうちの1つにおける「差」のみを保持する必要がある。これは、空でないセルが対角線上にある場合には、空のセルを(a-b)/2と(b-a)/2で埋め、Haarのフィルタを通常どおり適用することと同等である。これは、空でないセルが対角線上にある場合には、空のセルを(a-b)/2と(b-a)/2で埋め、Haarのフィルタを通常どおり適用することと同等である。
・空でないセルが3つ(a、b、c)しかない場合、本方法は、LLサブバンドにおける「平均」と、他のサブバンドのうちの1つにおける2つの「差」のみを保持する必要がある。これは、空のセルを、第4のサブバンド係数をヌルにする値で埋めることと同等である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11