JP2011238236A - 数値データの圧縮及び伸張 - Google Patents

数値データの圧縮及び伸張 Download PDF

Info

Publication number
JP2011238236A
JP2011238236A JP2011105482A JP2011105482A JP2011238236A JP 2011238236 A JP2011238236 A JP 2011238236A JP 2011105482 A JP2011105482 A JP 2011105482A JP 2011105482 A JP2011105482 A JP 2011105482A JP 2011238236 A JP2011238236 A JP 2011238236A
Authority
JP
Japan
Prior art keywords
value
integer
effective value
predicted value
floating point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011105482A
Other languages
English (en)
Other versions
JP5833339B2 (ja
Inventor
Prosper Jean Deslandes Arnault
プロスパー ジーン デスランデス アルノー
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.)
Dassault Systemes SE
Original Assignee
Dassault Systemes SE
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 Dassault Systemes SE filed Critical Dassault Systemes SE
Publication of JP2011238236A publication Critical patent/JP2011238236A/ja
Application granted granted Critical
Publication of JP5833339B2 publication Critical patent/JP5833339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

【課題】浮動小数点実効値の構造化されたセットを含む数値データを圧縮するコンピュータ実装方法を提供する。
【解決手段】方法は、セットの対象実効値に関連した浮動小数点予測値を計算するステップを含む。計算するステップは、上記セットのサブセットの実効値の符号、指数、及び/又は仮数に対応する整数に対して演算を実行するステップを含む。また、上記方法は、対象実効値及び予測値から得られた整数の差を表すビットシーケンスを記憶するステップを含む。
【選択図】図1

Description

本発明は、コンピュータプログラム及びシステムの分野に関し、特に数値データを圧縮し、伸張するコンピュータ実装方法に関する。
コンピュータ支援技術は、コンピュータ支援設計、すなわちCAD(Computer-Aided Design)を含むことが知られている。CADは、製品のデザインを作成するソフトウェアソリューションに関連する。同様にCAEとは、Computer-Aided Engineering(コンピュータ支援エンジニアリング)の頭字語である。例えばCAEは将来の製品の物理的挙動をシミュレートするソフトウェアソリューションに関連する。CAMとは、コンピュータ支援製造(Computer-Aided Manufacturing)を表しており、製造工程及び動作を定義するソフトウェアソリューションを通常含む。
コンピュータ支援技術において、グラフィカルユーザインターフェイス(GUI:graphical user interface)は、技術の効率性に関して重要な役割を果たす。モデル化されたオブジェクトを操作し、及び/又は、ナビゲートするのに必要とされる操作の大部分が、GUIでユーザ(例えば、設計者)によって実行され得る。特にユーザは、製品を形成するモデル化されたオブジェクトを作成し、修正し、削除し、そして製品を調査して、モデル化されたオブジェクトが例えば、製品構成を介してどのように相互に関連しているかを理解する。伝統的にこれら操作は、GUI側に設けられた専用のメニュー及びアイコンを介して実行される。最近、CATIA等のCADシステムは、製品の表示の付近でこれら機能の呼び出しを可能にする。設計者は、もはやマウスをメニュー及びアイコンに向けて移動させる必要はない。よって操作は、マウスの届く範囲内で利用可能である。さらに操作は、意味的に振る舞う。すなわち設計者によって選択された所定の動作に対して、CADシステムは、マウスの付近において設計者が選択し得る作成者選択操作に従って一群の新規な動作を設計者に示し得る。
ビジネス戦略を示す製品ライフサイクル管理(PLM:Product Lifecycle Management)ソリューションも知られている。従って、PLMは、企業が構想からそれらの寿命の終わりにいたるまで広範囲の事業構想にわたって製品開発のために製品データを共有し、共通の処理工程を適用し、企業の知識を活用することを幇助するビジネス戦略に関連する。アクター(会社の部門、事業パートナー、サプライヤ、相手先商標製造会社(OEM)、及び顧客)を含むことによって、PLMは、このネットワークが製品及び製造工程を概念化し、設計し、製造し、サポートする単一のエンティティとして動作することを可能にし得る。
いくつかのPLMソリューションは、例えばデジタルモックアップ(製品の3Dグラフィックモデル)を生成することによって製品を設計し、開発することを可能にする。デジタル製品は、適切なアプリケーションを使用して最初に定義され、シミュレートされ得る。そしてスリム化されたデジタル製造処理が定義されモデル化され得る。
(CATIA、ENOVIA、及びDELMIAという商標の下)本件出願人によって提供されるPLMソリューションは、製品工学知識を組織化するエンジニアリングハブ、製造エンジニアリング知識を管理するマニファクチャリングハブ、並びにエンジニアリングハブ及びマニファクチャリングハブの双方に事業の統合及び結合を可能にするエンタープライズハブを提供する。システムのすべてが、製品、処理工程、リソースをリンクするオープンオブジェクトモデルを実現して、動的な知識ベースの製品生成と意志決定支援を可能にする。この意志決定支援は、最適化された製品定義、製造準備、製造、及びサービスを推進する。
かかるPLMソリューションは、製品に関するリレーショナルなデータベースを含む。データベースは、一群のテキストデータと、データ間の関係を含む。データは、その製品に関連する技術データを通常含む。このデータは、データの階層化によって順序付けされ、検索可能となるようにインデックスが付されている。データは、モデル化されたオブジェクトを表しており、多くの場合モデル化された製品及び処理工程である。
製品の構成、処理工程の知識、及びリソース情報を含む製品のライフサイクル情報は、共同するように、編集されることを通常意図されている。
多くのシステム及びプログラムが、オブジェクト(又はパーツ)の設計又はオブジェクトのアセンブリの市場において提供され、CATIAという商標の下本件出願人によって提供されたもの等の製品を形成する。
これらCADシステムは、ユーザがオブジェクトの若しくはオブジェクトのアセンブリの複雑な3次元(3D)モデル又は2次元(2D)モデルを構成し操作することを可能にする。よってCADシステムは、エッジ又はラインを使用して、特定の場合には曲面を使用して、モデル化されたオブジェクトの表示を提供する。ライン又はエッジは、様々な手法で、例えば非一様有理Bスプライン(NURBS:non-uniform rational B-splines)で表され得る。これらCADシステムは、主に幾何学構造の設計書であるパーツ又はパーツのアセンブリをモデル化されたオブジェクトとして管理する。具体的にはCADファイルは、設計書を含み、この設計書から幾何学構造が生成され、幾何学構造は生成されるべき表示を可能にする。幾何学構造及び表示は、単一のCADファイル又は複数のCADファイル内に記憶され得る。CADシステムは、モデル化されたオブジェクトを設計者に表すためのグラフィックツールを含む。これらツールは、複合オブジェクトの表示に用いられ、CADシステムにおけるオブジェクトを表すファイルの典型的なサイズは、1つのパーツあたり1メガバイトの範囲内にあり、アセンブリは、何千ものパーツを含み得る。CADシステムは、電子ファイルで記憶されたオブジェクトのモデルを管理する。
よって、CADソフトウェアを用いユーザによって生成された2Dモデル又は3Dモデルは、点、ベクトル、曲線、曲面、及びメッシュ等の幾何学的オブジェクトを含む。これらオブジェクトは、浮動小数点の値並びに他のデータタイプを用いてたいてい表される。
浮動小数点値は、(数学的意味において)実数に属する数を表すのに使用されるデータタイプの値である。浮動小数点値の最も広く使用された標準的なフォーマットは、IEEE754フォーマット標準規格において、特にIEEE754−1985において定義された倍精度浮動小数点である。このフォーマットにおいて実数
Figure 2011238236
を表す浮動小数点の値aは、64ビットの符号、指数、及び仮数によって定義される。aがIEEE754標準規格の64‐ビット浮動小数点の値である場合、我々は、以下の要素を用いてa=(s、e、m)と表記し得る。この要素は、符号s(1ビットでコード化された整数)、指数e(11ビットでコード化された整数)、及び仮数m(52ビットでコード化された整数)である。そして標準規格の定義によって、0<e<211―1である場合、aが正規化されていると述べられ、aは実数
Figure 2011238236
を表す。ここでbias=211-1―1=1023である。e=0であり、m=0である場合、aはゼロであると言われ、実数
Figure 2011238236
を表している。e=0であり、mが0とは異なる場合、aは非正規化されていると言われ、実数
Figure 2011238236
を表している。ここで、bias=211-1―1=1023である。e=211―1である場合、aは無効であると言われ、実数を表していない。
CADソフトウェアによって提供された基本機能は、第1のセッション中にユーザによって生成され又は変更された永続的なサポートでモデルを記憶する能力であり、これらモデルが(例えば、ローカルディスクにおける又はサーバにあるファイルにおいて)後に更なる使用のために再度開かれることを可能にする能力である。モデルは、このソフトウェアの異なるバージョン又は別のプラットフォームにもかかわらず、例えば後に同一のソフトウェアの第2のセッションで開かれ得る。プラットフォームは、ハードウェア(異なるCPU)に関して異なり得るし、又はソフトウェアに関して(異なる言語コンパイラ又はインタプリタ)異なり得る。オープン後の第2のセッションにおけるモデルは、記憶する前の第1のセッションにおけるモデルと厳密に同じであるべきである。したがって記憶は無損失であるに違いない(すなわち、情報損失を全く伴わない)し、異なるプラットフォームにわたって安定的であるに違いない(すなわち、モデルを開くことは、モデルを定義するのに使用されるデータタイプをサポートする異なるプラットフォームにおける同一の結果を提供する)。
(例えば、データを圧縮し、伸張することによって)モデルの記憶及び再オープンがモデルを定義するために記憶されたデータを変更することを伴うとき、特にモデルの変換が算術演算を伴う場合、安定性の問題が生ずる。実際、異なるプラットフォームは、データのタイプに依存して、同じ演算に対して異なる結果を与える。例えば、a、b、及びcが浮動小数点値である場合、いくつかのプラットフォームは、演算a+b+cを(a+b)+cとして計算するだろう。一方いくつかの他のプラットフォームは、同一の演算をa+(b+c)として計算するだろうし、必ずしも同一の結果をもたらすとは限らないだろう。その上浮動小数点の算術は、計算を実行するために媒介を伴う。これら媒介は、異なる結果をもたらす異なるプラットフォームに対して同一のビット長を有しない。したがって、演算が同一のデータに対して実行されるものの、異なるプラットフォームに対して実行される同一の浮動小数点の演算は、異なる結果をもたらす。デヴィッド・ゴールドバーグによる「“What every scientist should know about floating point arithmetic”, ACM Computing Surveys, Vol.23, No 1, March 1991」という文献は、浮動小数点値に対する演算に関する問題を提示している。以下において(複数の)演算が任意の標準的なプラットフォームに対して同じ結果をもたらす場合、安定性は、演算(又は一連の演算)に対して確実にされると言われるだろう。
モデルが簡単な実装における永続的なサポートで、すなわち圧縮することなく記憶され得る。この実装において、浮動小数点値と所定の幾何学的オブジェクトを定義する他のデータとは、それ自体記憶される。この簡単な方法(すなわち、圧縮を伴わない)は、CATIAにおいて、及び他のCADソフトウェアにおいて特に使用される。かかる方法を用いると、記憶は無損失である。実際、モデルを定義するデータは、記憶する前に変更されないし、それゆえデータの損失もあり得ない。また、記憶は安定している。実際、データが圧縮されないので、モデルを定義するデータは、モデルを再び開くとき、変換されることにならない。しかしながらかかる方法は、CADモデルの記憶サイズを最適化しない。
一般的なデータ圧縮の分野において、デルタ‐エンコーディングは、データを圧縮する手法である。このデータは、対象オブジェクト自体の代わりに対象オブジェクトと周知の参照オブジェクトとの差異を記憶することによって、対象オブジェクトを表す。対象オブジェクトより少ないスペースで差異を記憶することができる場合、これは有利である。
予測のエンコーディングは、改良型のデルタエンコーディングである。このデルタエンコーディングにおいて参照オブジェクトは、データにおいて取られた実際のオブジェクトでないが、予測関数を使用して1つ又は数個の実際のオブジェクトから計算される。したがって予測関数は、参照オブジェクトを実際のオブジェクトから予測する。対象オブジェクトをそれ自体記憶することの代わりに(すなわち、圧縮することなく)、予測された参照オブジェクトと対象オブジェクトとの差異が記憶される。予測が現在のオブジェクトに近似すればするほど差異が小さくなり、差異を記憶するのに要する記憶スペースが、より小となる。したがって圧縮の効率性は、予測の精度に依存する。
量子化は、別の圧縮技術である。量子化は、浮動小数点値を含むデータを圧縮するために使用され、場合によっては、デルタ‐エンコーディング又は予測エンコーディングとの組み合わせによって、使用される。量子化は、浮動小数点値を整数にマッピングする処理である。量子化は、いくつかの浮動小数点値の最下位ビットを切り捨てることを伴うので、データの損失を生成する。
John Danskinによる「”Higher Bandwith X” (1994) and the Ph.D. Thesis "Compressing the X Graphics Protocol" (1995)」という文献は、デルタ‐エンコーディングの形態である「相対座標」を使用して幾何学構造を圧縮する方法を記載している。しかしながら幾何学構造は、整数座標を用いて定義される。したがって本方法は幾何学構造が高いレベルの精度で定義されるCADモデルに不適切である。
Michael Deeringによる「"Geometry Compression" (1995)」という文献は、浮動小数点数の量子化及び隣接の間のデルタ‐エンコーディングを使用する三角メッシュの圧縮について記載している。またCosta Touma及びCraig Gotsmanによる「"Triangle Mesh Compression" (1998)」という文献は、量子化及び予測エンコーディングを使用する三角メッシュの圧縮について記載している。Gabriel Taubin及びJarek Rossignacによる「"Geometric Compression Through Topological Surgery" (1998)」という文献及びMartin Isenburg及びPierre Alliezによる「"Compressing Polygon Mesh Geometry with Parallelogram Prediction." (2002)」という文献は、異なる予測スキームを用いた類似の手法について記載している。予測は、メッシュ内の他のポイントの線形結合によって計算される。これらすべての方法が、量子化のために不可逆圧縮を生成する短所を特に提示する。
L.Ibarria他による「"Out-of-core Compression and Decompression of Large ndimensional Scalar Fields" (2003)」という文献は、浮動小数点データに対して予測エンコーディング方法について記載している。予測関数は、浮動小数点の算術計算を伴うので、安定性が異なるプラットフォームわたって保証されないという欠陥を有する。実際、上記に説明したように、浮動小数点の算術計算は、異なるプラットフォームに対して同一の結果を生じない。
Isenburg他による「"Lossless Compression of Floating-Point Geometry" (2004)」という文献は、浮動小数点データに対する予測エンコーディング方法について記載している。上記したように、安定性は異なるプラットフォームわたって保証されない。
米国特許番号第5793371号、第5825369号、第5842004号、第5867167号、第5870094号、第5905502号、第5905507号、第5933153号、第6047088号、第6167159号、第6215500号、第6239805号、第6522327号、第6525722号、及び第6532012号は、類似の方法について記載しており、これら文献のいずれも安定性の問題に対処していない。
Engelson他による「"Lossless Compression of High-volume Numerical Data from Simulations" (2000)」という文献は、浮動小数点値の圧縮について記載している。値は幾何学的オブジェクトを表していないが、値は、むしろスムーズに変化し且つ所定変数によってパラメータ化される値のシーケンスである。この文献は、線形的に増加するシーケンス
Figure 2011238236
である3つの値(a1,a2,a3)のシーケンスの一例を提供する。このシーケンスに対する単純な予測エンコーディングスキームは、a3の予測としてap 3=a2+a2−a1を取ることであろう。予測値と対象実効値との差異は、Δ23=a3−ap 3=(a3−a2)−(a2−a1)である。シーケンスが線形的であるので予測は良好であり、Δ23は小さい。すなわち(a1,a2,Δ23)が記憶され得るし、当初のシーケンスより小なる記憶サイズを取る。上記文献によって注目された問題は、予測の計算は浮動小数点の演算を伴い、これは異なるプラットフォームに対して安定性を阻むことである。よって上記文献は、浮動小数点数の整数表示の観念を導入している。pが浮動小数点の64‐ビット数である場合、その整数表示Int(p)は、pと同じ64‐ビット列によって表される整数として定義される。整数表示は、b1=Int(a1)、b2=Int(a2)、b3=Int(a3)として定義される。圧縮は、シーケンス(b1,b2,b3)に対して上記説明した予測‐エンコーディングを適用し、Δ23=(b3−b2)−(b2−b1)である(b1,b2,Δ23)を記憶する。安定性を確実にする目的をもって、そのドキュメントは、以下のステップを実行することを提案している。このステップは、mの連続浮動小数点値をそれら整数表示に変換するステップ、及びこれら整数表示に対して古典的な整数減算のシーケンスを計算するステップである。
しかしながらいくつかの数値を用いて、Engelson他の方法は、完全に効率が悪い。例えばドキュメントの記法を使用して、浮動小数点値のシーケンス(a1=1.5,a2=2.0,a3=2.5)が考えられる(浮動小数点の値は、本明細書において、彼らが示している実数を参照している)。このシーケンスは線形的であり、差異Δ23が厳密に0であるので、上記説明した予測‐エンコーディングスキームは、浮動小数点算術を使用して、これら浮動小数点数に対して非常に効率的に理論上は適用されるべきである。しかしながら文献の方法を適用する場合、Δ23=(b3−b2)−(b2−b1)は51の有効ビットを有する。これは2つの浮動小数点の値の整数表示の整数の差は、2つの浮動小数点値の浮動小数点の差異に依存するだけではなく、2つの浮動小数点自体の値自体にも依存するという事実に帰属する。上記実施例において、b3−b2は、b2−b1とは異なる。なぜならば2.5及び2.0の浮動小数点表示が同じ指数を有するものの、1.5の浮動小数点表示が同じ指数を有しないからである。したがって圧縮の効率性は、満足のいくものではない。よってこの方法の第1の欠陥は、この方法がいくつかのタイプのシーケンスにおいて十分良好に働かない(すなわち、圧縮率が十分高くない)というものである。文献は、「シーケンスInt(a)が多項式によって近似され得る場合、固定されたステップ差アルゴリズムは良好に働く」とさらに述べている。しかしながら実際のアプリケーションにおいて、aが多項式によって近似され得ると仮定する方が良い。したがって実際のアプリケーションにおいて、シーケンスInt(a)において整数差異を実行する方法は、不良な予測を生じるであろう。
別の欠陥としては、Δの計算が減算のみを使用し、他の演算を使用し得ないというものである。例えば乗算及び除算が整数表示に適用され得ない。言い換えると2つの浮動小数点の数の整数表示の差異は、同一の場合における2つの浮動小数点の数の差異を表し得るが(少なくとも上述した例外を有する)、しかし整数表示の乗算(又は除算若しくは加算)は、2つの浮動小数点数間の乗算(又は除算若しくは加算)を表すものでない。例えば加算に対して、これは顕著である。なぜならばそれら整数表示に変換された2つの浮動小数点の値の指数が加算されるからであろう。これは、使用され得る予測スキームを厳しく制限する。したがって、実行された予測は、あまり正確ではなく、圧縮率が影響される。
Ratanaworabhan他による「"Fast Lossless Compression of Scientific Floating-Point Data" (2006)」という文献、及び、Peter Lindstrom及びMartin Isenburgによる「"Fast and Efficient Compression of Floating-Point Data" (2006)」という文献は、同一の欠陥を有する同様の技術を記載している。
CADファイルの記憶サイズを効率的に低減させるのに適した方法を提供することが、発明の目的である。かかるソリューションは、ストレージインフラストラクチャのコストを低減するだろうし、ネットワーク上でCADモデルを送信し又は受信する速度を増大することができるであろう。
この目的は、数値データを圧縮するコンピュータ実装方法を用いて達成される。この数値データは、浮動小数点実効値の構造化されたセットを含む。浮動小数点値は、符号、指数、及び仮数によって定義されている。本方法は、そのセットの対象実効値に関連した浮動小数点予測値を計算するステップであって、その計算するステップは、そのセットのサブセットの実効値の符号、指数、及び/又は仮数に対応する整数に対して演算を実行するステップと、対象実効値及び予測値から得られた整数の差を表すビットシーケンスを記憶するステップと、を含む。
好ましい実施形態は、以下に示す特徴の1又は複数を含み得る。
‐計算するステップ及び記憶するステップはそのセットの順序に従って反復される。
‐そのセットの少なくとも一方の初期実効値は記憶され、計算するステップは、セットの他方の実効値のすべてに対して反復される。それに続いて、各反復において、反復に関して計算された予測値を閾値と比較するステップ、予測値が閾値より大きいときには、反復の対象実効値と反復の予測値から得られた整数の差を表すビットシーケンスを記憶するステップと、又は、反復の予測値が閾値よりも小さいときには、反復の対象実効値を記憶するステップが実行される。
‐そのセットの実効値は、幾何学的オブジェクトに関連づけられた座標であり、望ましくは幾何学的オブジェクトの制御点の座標である。
‐サブセットの実効値は、幾何学的オブジェクトの別の制御点に隣接する幾何学的オブジェクトの制御点の座標である。対象実効値は、別の制御点の座標である;
‐予測値は、別の制御点に関連付けられた少なくとも1つのパラメータ、サブセットの実効値、及び別の制御点に隣接する各制御点に関連付けられた少なくとも1つのパラメータに従って判定される。
‐少なくとも1つのパラメータは、幾何学的オブジェクトのそれぞれの節点ベクトルに従って判定される。
‐幾何学的オブジェクトはNURBS曲面であり、少なくとも1つのパラメータはグレビルパラメータである。
‐対象実効値及び予測値から得られた整数は、対象実効値及び予測値をそれぞれ定義する文字列によって定義された整数である。
‐差を表すビットシーケンスは、多くの有効ビットを示すプレフィックスビットシーケンスと、差に等しいボディビットシーケンスと、を含む。先頭のゼロ及び望ましくは1に等しい第1のビットが、差となるように削除される。差のサイズは、有効ビットの数である。
‐演算は、整数の加算、減算、乗算、及び/又は、除算を含む算術演算と、及び/又は、ビットシフト及び/又は先頭ゼロカウントを含むビット単位の演算を含む。
この目的は、上記方法に従って圧縮され得たであろう数値データを伸張するコンピュータ実装方法を用いても達成される。本方法は、浮動小数点予測値を計算するステップであって、計算するステップは、セットの実効値の符号、指数、及び/又は仮数に対応する整数における演算を実行するステップと、予測値から得られた整数を有するビットシーケンスの加算から浮動小数点実効値を取得するステップと、を含む。
よって伸張する方法は、数値データを伸張するためのものであり得る。数値データは、浮動小数点実効値の構造化されたセットを含む圧縮された形態のデータであり、浮動小数点値は符号、指数、及び仮数によって定義され、数値データは、セットの対象実効値と、対象実効値に関連した浮動小数点予測値とから得られた整数の差を表すビットシーケンスを含む。そして本方法は、予測値を計算するステップであって、計算するステップは、そのセットのサブセットの実効値の符号、指数、及び/又は仮数に対応する整数における演算を実行するステップと、予測値から得られた整数を有するビットシーケンスの加算から対象実効値を得るステップと、を含む。
実施形態において、伸張する方法は、以下に示す特徴の任意のもの又は組み合わせを含み得る。
‐計算するステップ及び取得するステップはそのセットの順序に従って反復される;
‐各反復において、サブセットは、先の反復において取得された対象値及び/又は数値データに含まれる対象値を含む。
‐数値データは、そのセットの少なくとも一方の(それ自体記憶された)初期実効値をさらに含み、計算するステップは、そのセットの他方の実効値のすべてに対して反復される。計算するステップに続いて、各反復において、反復の計算された予測値を閾値と比較するステップと、予測値が閾値より大きいときに、(上記したように)予測値から取得された整数を有する(数値データに含まれる)ビットシーケンスの加算から対象実効値を取得するステップ、又は反復の予測値が閾値よりも小さいとき(数値データにおいてそれ自体含まれる)対象実効値を読み出すステップが行われる。
‐そのセットの実効値は、幾何学的オブジェクトに関連づけられた座標であり、望ましくは幾何学的オブジェクトの制御点の座標である。
‐サブセットの実効値は、幾何学的オブジェクトの別の制御点に隣接する幾何学的オブジェクトの制御点の座標であり、対象実効値は、別の制御点の座標である;
‐予測値は、別の制御点に関連付けられた少なくとも1つのパラメータ、サブセットの実効値、及び別の制御点に隣接する各制御点に関連付けられた少なくとも1つのパラメータに従って判定される。
‐少なくとも1つのパラメータは、幾何学的オブジェクトのそれぞれの節点ベクトルに従って判定される。
‐幾何学的オブジェクトはNURBS曲面であり、少なくとも1つのパラメータは、グレビルパラメータである。
‐対象実効値及び予測値から得られた整数は、対象実効値及び予測値をそれぞれ定義する文字列によって定義された整数である。
‐差を表すビットシーケンスは、多くの有効ビットを示すプレフィックスビットシーケンス、及び先頭のゼロ及び望ましくは1に等しい第1のビットが削除され、サイズが有効ビットの数である、差に等しいボディビットシーケンスを含む。
‐演算は、整数の加算、減算、乗算及び/又は除算を含む算術演算、及び/又はビットシフト及び/又は先頭ゼロカウントを含むビット単位の演算を含む。
この目的は、コンピュータ支援設計システムを用いても達成される。コンピュータ支援設計システムは、浮動小数点実効値の構造化されたセットを含む数値データによってモデル化されたオブジェクトを記憶するデータベースと、グラフィカルユーザインターフェイスと、上記圧縮方法に従って数値データを圧縮し、及び/又は上記伸張方法に従って数値データを伸張する手段と、を含む。
この目的は、コンピュータによる実行のための命令を含むコンピュータプログラムを用いても達成され、その命令は、上記方法を実行する手段を含む。
この目的は、コンピュータ読み取り可能な記憶媒体を用いても達成される。このコンピュータ可読記憶媒体は、記憶された上述のコンピュータプログラムを有する。
本発明の更なる特徴及び利点が、非限定的な実施例として与えられているように、以下に記載された添付図面を参照して、以下に示す本発明の実施形態の説明から明らかであろう。
圧縮方法の実施例のフロー図である。 圧縮方法の実施例のフロー図である。 圧縮方法の実施例のフロー図である。 圧縮方法の実施例のフロー図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 NURBSの圧縮の実施例を示す図である。 伸張方法の実施例を示す図である。 本発明の方法を実行するのに適切なクライアントコンピュータシステムの実施例を示す図である。
本発明は、データを処理するコンピュータ実装方法に関する。特に本発明は、浮動小数点実効値の構造化されたセットを含む数値データを圧縮するコンピュータ実装方法に関する。本方法は、上記セットの対象実効値に関連した浮動小数点予測値を計算するステップを含む。計算するステップは、整数における演算を実行するステップを含む。整数は、上記セットのサブセットの実効値の符号、指数、及び/又は仮数に対応する。本方法は、整数の差を表すビットシーケンスを記憶するステップを含み、整数は、対象実効値及び予測値から得られる。かかるコンピュータ実装方法は、浮動小数点実効値の構造化されたセットを含む数値データの効率的な圧縮を可能とし、圧縮は無損失であり、浮動小数点のデータタイプをサポートする異なるプラットフォームにわたって安定的である。かかる方法は、浮動小数点実効値の構造化されたセットを含む数値データを含むファイルの記憶サイズを効率的に低減させるのに適している。
圧縮は無損失であり、異なるプラットフォームにわたって安定的であるので、本方法は、特に2Dモデル又は3Dモデルの設計図を含むCADファイルに対して適用され得る。実際、CADモデルは、浮動小数点実効値の構造化されたセットを含む数値データによって特定される。よって本方法は、かかるCADファイルを効率的に圧縮することができ、それゆえCADファイルの記憶サイズを低減させる。ファイルを「効率的に」圧縮するとは、圧縮率が20%統計的に高いことを意味している。圧縮方法がより高い圧縮率を統計的に成し遂げる場合、圧縮方法は、別の圧縮方法に対してより効率的であると言われる。本方法は、記憶のインフラストラクチャのコストを低減することができるだろうし、ネットワーク上でCADモデルを送信し又は受信する速度を増大することができる。
しかしながら本方法は、一般的に数値データの圧縮に指向されている。言い換えると本方法は、数値データの記憶サイズを低減して、かかるデータを含む任意のファイルのサイズをも低減することを可能とする。データは、データが数に関連することを意味する数値である。特に、本方法は、浮動小数点実効値の構造化されたセットを含む任意の数値データをも圧縮するのに利用され得る。
浮動小数点値はIEEE754フォーマット規格により定義されたデータタイプのものであり得る。しかしながら本方法は、他の類似のデータタイプに指向されている。例えば浮動小数点値は、標準の64ビットより小さいビット又は大なるビットにおいて符号化され得る。浮動小数点値は、異なる構造のデータタイプ、例えば指数、仮数、非符号のものであり得る。より一般的には本方法は、少なくとも2つの整数によって表されるあらゆる数値データタイプにも適用する。しかしながら明確にするために、以下において浮動小数点の値を、IEEE754のタイプであると考慮する。
実際の浮動小数点実効値のセットは構造化されている。「構造化されている」とは、実際の浮動小数点値によって表される数字のセットがコヒーレントであることを意味する。すなわち数は互いから完全に独立していない。このコヒーレンスは、お互いから完全に独立していないセットの実際の浮動小数点の値に反映される。セットが構造化されているおかげで、セットの実際の浮動小数点の値の各々の値は、セットの他の実際の浮動小数点の値から予測され得る。構造は、数値データによって表されたオブジェクトの種類に依存し得る。この場合予測は、予測スキームに従って実行され得る(場合によっては、本方法の第1のステップにおいて一度に若しくはすべてに対して予め判定され及び選択され得る)。予測スキームは、数値データによって表されたオブジェクトの種類に依存し得る。定義によって、同一の種類のオブジェクトは同一の手法により構造化されるという事実に起因して、本方法は、この場合同一の予測スキームを用いて、所定の種類のあらゆるオブジェクトをも表す数値データを圧縮するのに適切である。
本方法のアプリケーションの一例が、時間経過の株の価格であるオブジェクトにおけるものである。実際の浮動小数点の値のセットは、時系列上の価格の値を表し得る。ある時刻の株の価格は他の時刻の価格から完全に独立しているというわけではないことがよく知られている。金融定量分析は、予測するために、例えばブラウン運動に基づいて、異なる予測スキームを使用する。同一の予測スキームが、異なる株に対して使用され得る。別の例は、都市の温度を表す実際の浮動小数点の値のセットを含む。またしてもこの場合、2つの都市間の地理的な近接性はそれら温度間の依存関係を伴い得る。したがって都市の温度を表す浮動小数点の値は、隣接する都市の温度を表す浮動小数点の値から予測され得る。別の例は、オブジェクトに印加された力場を含む。オブジェクトに印加された力が、空間的なコヒーレンスを示すとき、力場は、構造化された実際の浮動小数点の値の1セットによって表される。例えば磁場は、一般的にかかるコヒーレンスを示す力場を誘起する。後でより詳細に説明する別の例は、CADモデルの幾何学上表面である。かかる表面は、一般的にスムーズに変化し、表面のある点における位置は、表面の隣接点の位置に従って予測され得る。
本方法は、数値データを圧縮するために、(その構造は浮動小数点の値によって表される数字の構造から得られる)浮動小数点実効値のセットの構造を使用する。予測エンコーディングにおけるものと同様に、原理は、セットの実際の浮動小数点の値のうち1つを第1に選択することである。この値は、圧縮方法によって変換される値であるので、「対象」値と称される。本方法は、対象実効値に関連した浮動小数点予測値を計算する。言い換えると、本方法は、対象の予測値であり、必ずしも対象の実効値でない予測値を計算する。この計算は、セットの他方の実効値に従って実行され、対象の実効値を抽出する。予測値は、それ自身浮動小数点のデータタイプである。
セットが構造化され、予測スキームがこの構造に従って実行されるので、セットの他の値に従って実行される予測値の計算は、対象の実効値に比較的近い結果を提供する。したがって予測値と対象実効値との差異は、数ビットにおいてコード化され得る。この考えは予測のエンコーディングによってたいてい続くものである。
予測スキームはセットのサブセットの選択を含み得る。サブセットの浮動小数点の値が予測値の計算の元となる。サブセットは、対象値に従って選択され得る。サブセットの値は、対象浮動小数点値によって表される数の予測に対して理論的に関連している数を表している。この選択を実行する本方法は、数値データによって表されたオブジェクトの種類によって提供され得る。
予測値の計算は、整数に対して演算を実行するステップを含む。この演算は、浮動小数点値において実行されないので、安定性の問題が生じない。実際、標準的なプラットフォームは、同一の結果を用いて整数演算を実行する(浮動小数点値における演算とは対立する)。よって本方法は、整数において演算を実行するだけであるので、すべての標準的なプラットフォームにわたって安定的である。
整数は、上記セットのサブセットの実効値の符号、指数、及び/又は仮数に対応する。サブセットは、対象実効値の予測値を計算するのに使用される実効値を含む。本方法は、少なくとも予測に使用される実効値のために、符号、指数、及び/又は仮数に対して保存されたビットスロットを読取り、整数として何が読み取れるかを解釈する。あらゆる手法の解釈が本方法の範囲内にある。例えば本方法は、52ビットでコード化された仮数を64‐ビットの整数として解釈し得る。仮数に対応する整数は、例えば最初の12ビットが0に等しく最後の52ビットが仮数のビットである64‐ビットの整数であり得る。逆に、仮数に対応する整数は、例えば最後の12ビットが0に等しく且つ最初の52ビットが仮数のビットである64‐ビットの整数であり得る。より長い整数も使用され得る。一般に、符号、指数、及び/又は仮数の解釈は、予測スキーム(すなわち、予測値を計算するよう実行された演算のシーケンス)の次のステップに依存し、要求される精度に依存する。
整数は、サブセットの実効値の符号、指数、及び/又は仮数に対応するので、予測スキームは、実効値の浮動小数点の形態を利用する。実際、上述したEngelson他の方法のように、演算は、浮動小数点値当たり1つの整数を表すものを大まかに判定する代わりに、浮動小数点の特性に関していかなる考慮もすることなく、個別に考慮された符号、指数、及び/又は仮数を表すものにおいて実行され得る。特に整数の減算とは異なる演算も実行され得る。例えば符号、指数、及び/又は仮数において実行される整数の加算、乗算、除算が意味を成す。よって予測は洗練され、より正確である。より正確な予測は、高い圧縮率をもたらす。予測がどのように洗練されるかを示す実施例が、後に提供されている。
上記に説明したように、本方法は、整数の差を表すビットシーケンスを記憶するステップを含み、整数は、対象実効値及び予測値から得られる。このセットが構造化されているので、予測は、通常、対象実効値に近い予測値をもたらす。この場合対象実効値及び予測値から得られた整数間の差は、小さい。それゆえ差は、対象実効値のサイズより小さいサイズのビットシーケンスにおいて記憶され得る。したがって、このように対象実効値を記憶する代わりに、より小さいサイズのビットシーケンスが記憶される。ビットシーケンスは、対象実効値を取り出すために、伸張ステップにおいて使用され得る。ビットシーケンスは、整数間で実行される差を表すものであるので、圧縮の安定性と無損失品質が維持される。実際、2つの整数の差異は、情報損失することなく、すべての標準的なプラットフォームにおいて同じ結果をもたらす。対象実効値及び予測値から得られた整数の取得について、後に詳細に説明する。
上記説明は、本方法のアプリケーションの一般的なケースに関するものである。図1を参照すると、一般的なケースは、予測値predk tを計算するステップS10と、ビットシーケンスBkを記憶するステップS20の単一のアプリケーションを含む。図1の実施例に示されているように、本方法はまた、計算ステップS10の前に、浮動小数点実効値valkの構造化されたセットEを提供するステップS0と、計算されるべき予測値predk tが関連する上記セットの対象実効値valk tを選択するステップS5と、を含む。
計算ステップS10及び記憶S20は、図2に示されているように、望ましくは反復される(すなわち、繰り返される)。各反復(すなわち、繰り返し)kにおいて、対象値valk tは、セットEの新しい選択された実効値であり、本方法の先の反復のうちの1つの対象値ではない。かかる反復が、セットEの順序(0,...,k−1,k,k+1,...)に従って実行される。よってセットは、順序に従って、走査され(すなわち、解析され)、走査の各反復kにおいて、対象値の選択S5が、順序に続いて、kの番号がつけられた値valkが選択される。順序は、予め判定されている。例えば数値データは、順序に関する情報を含み得る。あるいは、順序は反復を実行する前に、開始時に任意に判定され得る。反復中に、それは動的に反復され得る。かかる方法は、数値データの全体的な圧縮を統計的に可能にせしめる。
図3に例示されるように、本方法は、セットの少なくとも一方の始めの実効値val0、例えば、1つの値のval0、2つの値(val0及びval1)、又は、3又はそれより多くの値(val0、val1、及びval2)を記憶S3とし、計算するステップS10は、このセットの他方の実効値のすべてにわたって反復され得る。例えば、最初の値val0がS3において記憶されて、セットEがnの値を有する場合、計算するステップS10は、残りの値val1、val2、…、valnにおいて反復され得る。あるいは、いくつかの残りの値は、スキップされ得る(しかしながら、これはセットを計算ステップS10が実行された値に再定義することに等しい)。記憶するステップS20は、それ自身、計算ステップS10が実行されたすべての値又はいくつかの値に対して実行され得る。したがって始めの値は、それ自体記憶された値である(すなわち、圧縮されない)。よって始めの値は、計算ステップS10及び記憶ステップS20が実行される反復kの対象ではない。伸張するとき後に分かるように、予測はサブセットの実効値に基づいて実行され得る。したがって少なくともいくつかの値が、伸張の開始を許容するように記憶され得る。あるいは実効値の第1の予測は、実効値の記憶された手段に基づいて実行され得る。あるいは第1の予測は、数値データに含まれた他のパラメータに従って実行され得る。
図4に例示されるように、各反復kにおいて、計算ステップS10に続いて、反復kの計算された予測値predk tを閾値と比較するステップS15が行われる。この場合記憶する次のステップにおいて、何が記憶されるかは、比較の結果に依存する。本方法は、ステップ20において、又は先に説明したように、予測値predk tが閾値より大きいときに、反復における対象実効値valk tと反復kの予測値predk tから得られた整数間の差Dkを表すビットシーケンスBkを記憶し、又は反復の予測値が閾値よりも小さいときに、ステップS20’において、反復の非圧縮の対象実効値valk tを記憶する。
各計算するステップS10において、予測値predk t計算は、対象実効値valk tに可能な限り近似するように計算される。しかしながら多くのコンテクストおいて、predk tとvalk tの差が、大きすぎて効率的に圧縮され得ないという可能性を有することが先験的に推定され得る。予測値predk tが所定の閾値より小さい場合、predk tとvalk tの差がpredk tよりも大であることにより、valk tをコード化するのに使用されるビット数よりも高くなってしまうpredk t及びvalk tから得られた整数間の差を表すビットシーケンスBkがもたらされるというリスクが存在する。例えば予測値predk tが0付近である場合、ビットシーケンスBkが長過ぎるとき、実効値valk tが予測値predk tとは異なる符号を有するリスクが存在する。かかるビットシーケンスBkの実施例が提供されるとき、これはさらに明確に現れるだろう。符号化スペースの生じ得る不要な増大を避けるためには、予測値が、閾値よりも小である場合に、valk t自身の圧縮の試みは全くなされない。その上ビットシーケンスBkが判定されないので、全体的な処理速度が増大される。
閾値は、予測値predk tの指数の値における閾値であり得る。言い換えるとpredk tの指数が、閾値と比較される。かかる閾値は比較ステップS15の高速化を確実にする。かかる閾値は、予め決められ得るし、アプリケーションのコンテクストに依存し得る。あるいは閾値は、数値データに従って判定され得るし、伸張中に再利用されるために記憶され得る。閾値の値は、予測値predk tを計算S10するのに使用される算術演算の丸めの精度を考慮し得る。また閾値は、先に計算された予測値(predk-1 t,predk-2 t,…)及び/又は関連付けられた実効値(valk-1 t,valk-2 t,…)に従って、動的に判定され得る。反復kの閾値は、valk t及びpredk tに通常依存しない。閾値を用いた比較は、予測値が低い圧縮率をもたらす高い可能性を有する実効値の場合を処理することによって、より効率的な圧縮を提供する。
セットの少なくとも一方の初期実効値を記憶するステップS3は、図4に示されていないが、図3のように浮動小数点実効値valkの構造化されたセットEを提供するステップS0の後において、本方法に含まれ得る。
セットの実効値は、幾何学的オブジェクトに関連付けられた座標、例えば幾何学的オブジェクトの制御点の座標であり得る。幾何学的オブジェクトの座標の浮動小数点座標を含む数値データは、高い割合のCADファイルの埋め合わせをする。よって本方法は特にCADファイルの圧縮に適切である。1つの実施例において、幾何学的オブジェクトは、NURBS曲面である。他の実施例において、幾何学的オブジェクトは、曲線、例えばNURBS曲線であり、又は別のタイプの曲線若しくは曲面である。本方法は、一般に任意の幾何学的オブジェクトにも適用する。本方法の実施例が、明確にするために、NURBSを参照して以下に詳細に説明されている。しかし以下の説明は本方法の他の使用に適用することが理解されるべきである。
NURBS曲面は、3D空間の値を有する2D空間において定義されたCADにおいて広く使用される曲面である。すなわちS(u,v)→(x,y,z)。NURBS曲面は、2つの節点ベクトル及び制御点の2次元のアレイ、並びに場合によっては使用されるCADソフトウェアに依存する他のデータを用いて表される。通常節点ベクトルは、浮動小数点値のアレイである。制御点のアレイは、順序付けされ得る。各々の制御点は、座標x、y、zを有する3Dの点である。アレイにおける位置は2つのインデックスi及びjを用いて定義される。ここで、
Figure 2011238236
であり、
Figure 2011238236
である。グレビルパラメータとして知られている1セットのパラメータが、節点ベクトルから計算され得るので、インデックスi又はjの各値、グレビルパラメータ(ui,vj)に関連づけられ得る。伝統的にグレビルパラメータは、節点ベクトルの連続した値の定数に関する1組の手段である。「次数」と呼ばれるこの定数は、節点ベクトルの各次元(u又はv)において異なり得る。一般に1組の次数(d,g)は、NURBS曲面を表すデータに属する。詳細については、Gerald Farinによる「"Curves and surfaces for Computer Aided Geometric Design", ed. Morgan Kaufmann, (2001)」という文献が、NURBS曲面の基本を提供している。
図5は、M=5であり且つN=4であるNURBS曲面Sの実施例を提供する。座標x、y、zの制御点
Figure 2011238236
は、グリッド55の交差点である。上記説明したように、各制御点Pi,jに対して、表された1組のグレビルパラメータ(ui,vj)が上記説明したように計算され得る。例えば1組の表面の次数が(d=2、g=4)であり、表面の節点ベクトルが(u_knot1,…,u_knot6)及び(v_knot1,…,u_knot7)である場合、通常
Figure 2011238236
及び
Figure 2011238236
となる。しかしながら、他の数式が使用され得る。
NURBSの制御点の各々は、x、y、z座標を表す3つの浮動小数点値を用いて定義される。アレイの次元がM*Nである場合、NURBS曲面の制御点を記憶するのに必要な記憶サイズは、圧縮なしで3*M*N*64ビットである。出願人はいくつかの産業モデルにおいて、モデルのNURBS曲面の制御点の座標を表す浮動小数点の値のサイズが、全モデルサイズの50%以上を占めることに気付いている。したがって本方法は、NURBS曲面を有するCADファイルの圧縮に対して、特に有効である。
以下において、数値データを圧縮する方法のアプリケーションの実施例であって、この実施例において、セットの実効値は幾何学的オブジェクトに関連づけられた座標であり、計算ステップ及び記憶ステップは、セットの順序に従って反復される実施例が、図6乃至12を参照して説明されている。この実施例において実効値は、NURBS曲面の制御点の座標である。曲面は示されていないが、図5の表面に類似している。図6乃至12は、図5のグリッド55と類似するグリッドのプロジェクション60を表している。プロジェクション60は、以下において「グリッド」と称される。グリッド60の各交差点は、表面のそれぞれの制御点Pi,j=(xi,j,yi,j,zi,j)を表しており、グリッドの垂直線は、左から右に伸びるインデックスiを表しており、グリッドの水平線は、下部から上部に伸びるインデックスjを表している。
この実施例において数値データは、節点ベクトルを含む。本方法は、このように節点ベクトルを記憶する先のステップを含む(すなわち、特定の圧縮スキームをともなわない)。上記説明したように圧縮処理は、セットの順序に従う浮動小数点実効値のセットを走査することを含む。数値データは制御点のインデックス(i,j)を提供する。インデックスは、セットの順序を定義するのに使用され得る。例えば
Figure 2011238236
及び
Figure 2011238236
である場合、制御点の間の順序は、(P0,0,…,P0,M-1,P1,0,…,P1,M-1,………,PN-1,0,…,PN-1,M-1)であり得る。言い換えると、インデックスi及びjは、それぞれ下位の境界値からそれぞれ上位の境界値にいたるまで増大し、iは、jに対して優先される。従って浮動小数点実効値のセットが、
Figure 2011238236
となるよう順序化され得る。この場合セットを走査することは、次の制御点を走査する前に制御点の3つの座標の走査をもたらす。これにより予測値を計算するステップにおける3つの座標の使用が可能となる。あるいはこのセットは、
Figure 2011238236
のように順序化され得る。この場合セットの走査することは、すべてのx座標を走査し、次にすべてのy座標を走査し、次にすべてのz座標の走査をもたらすであろう。以下に説明される原理は、2つの代替的ソリューションの任意の実装を可能にする。
図6に示されるように実施例の方法は、それぞれ(0,0)、(1,0)、(0,1)のインデックスを有する3つの制御点P0,0、P1,0、P0,1を特定の圧縮スキームなしで記憶するステップS3を含む。実際には座標x、y、zの各々に対して、((x0,0,x1,0,x0,1)、(y0,0,y1,0,y0,1)、(z0,0,z1,0,z0,1))セットの3つの初期実効値がそれ自身(全体の9つの最初の実効値)記憶される。以下において浮動小数点実効値は、それらが表す座標によって、又はそれらが表す制御点によって差別なく参照される。
グリッドは下部から上部まで、及び左から右まで解析される。ステップS3で既に記憶された点は、スキップされる。図2−4のうちの1つを参照して説明した方法は、制御点の残りに適用される。図7は、本方法の4つの連続した反復(k=11、k=12、k=13、及び、k=14)を示す。各反復kにおいて(kは解析のインデックスi、j及び記憶された始めの値の数によって判定され、この実施例で3*3である)、対象実効値valk tに関連する予測値predk tを計算S10するのに使用される実施例の予測スキームは、(以下の対象値に同化される)対象によって表された制御点Pt=Pi_t,j_tのインデックス(i_t,j_t)に依存する計算を含む。これらインデックスは、上述された反復kのランクにリンクされている(kはk(i_t,j_t)と表され得る)。これらインデックスに依存して、本方法は先の反復で記憶された制御点のサブセットを判定する。本方法は多項式Q(u,v)を判定するので、サブセットの制御点Pi,jの各々に対して、我々は、Q(ui,vj)=Pi,jを有する。判定された多項式Qの次数に認められる最大数は,サブセットの制御点の数に関連する。よってQの係数は、Pi,j及びパラメータ(ui,vj)の値に従って判定される。パラメータ(ui,vj)は、上記定義されたグレビルパラメータであり得る。対象制御点の予測値は、pred(i_t,j_t)=Q(ui_t,vj_t)として計算され得る。この予測は3つの座標x、y、及びzに対して独自に定義される。そして数式は3つの座標(例えば、QとPは次元3のベクトルである)に適用する。上記のスキームは多項式補間に基づいている。他のスキームが実装され得る。例えば回帰又は他のタイプの補間が使用され得る。
図8乃至12は、異なる状況における対象値Ptのインデックス(i_t,j_t)の値に従ったサブセットの判定及びQの定義の判定を示している。図8乃至12の各々の最左端のフレームは、状況がこの対象点Ptに対応しているグリッド60上のすべての異なる対象点Ptを示している。最右端フレームは、状況がこの対象点Ptに対応しているかかる対象点Ptの一例とともに、実施例の場合の予測スキームにおいて使用される多項式Q(u,v)の一般的な数式88を示している。最右端のフレームは、実施例の場合におけるQ(u,v)の厳密式92、又は方程式90のシステムが、Q(u,v)の係数を導いて、実施例の場合の厳密式を導くかどうかを提供する。
図8乃至図12の実施例において、サブセットの実効値は、幾何学的オブジェクトの別の制御点に隣接する座標が対象実行値によって表される幾何学的オブジェクトの制御点の座標である。言い換えると対象制御点Ptの予測値pred(i_t,j_t)は、グリッド上の対象の近傍にある先に解析された制御点に従って実行される。max(|i1−i2|,|j1−j2||)≦sである場合(すなわち、グリッド60上のPi1,j1とPi2,j2との間のグラフ距離がsよりも小さい)、2つの点Pi1,j1及びPi2,j2は、グリッド上で隣接していると言われる。ここでs=1又はs=3であり、より望ましくはs=2である。本方法を局所的に滑らかな変動を示す表面に適用するとき、対象を予測するのに隣接するポイントを使用することは、予測が正確であるので、良好な圧縮を可能にする。2つのポイントが隣り合うかであるかどうかを判定するようにグリッド上の2つのポイント間で可能とされる距離を限定することは、予測の低減された精度に必ずしも導くことはないものの、圧縮に必要な時間を低減する。実際対象から離れた制御点は、対象を予測する際に必ずしも有益ではない。
図8は、(i_t,j_t)=(2,0)又は(0,2)であるとき、予測値pred(i_t,j_t)を計算するステップS10をどのように実行するかということに関する基本を説明している。この状況に対応する2つの対象点Ptは、グリッド60の下部の境界82と最左端の境界84にそれぞれ位置づけられている。一般に曲面の境界は何らかの規則性を示す。したがって境界における対象点の正確な予測が、同一の境界における制御点に従って、1回実行され得る。例えばP2、0に対する予測値pred(2,0)は、上記のスキームを使用して実行され得る。サブセットは、P0,0及びP1,0から成る。これは、厳密式92、
Figure 2011238236
をもたらす。これは図8の最右端のフレームにおいて示されている。P0,2は、ブセットP0,0及びP1,0を用いて同様に予測され得る。上記はpred(0,2)を計算するのに同様に適用され得る。
図9乃至12は、pred(i_t,j_t)の計算が異なって実行される他の状況について同様に説明している。図9は、
Figure 2011238236
又は
Figure 2011238236
である状況を示している。Qは、(P0,j_t-1、P0,j_t-2、及びP0,j_t-3)又は(Pi_t-1,0、Pi_t-2,0、及びPi_t-3,0)に従ってそれぞれ判定され得る。図10は、i_t=j_t=0及びQが、P0,0、P0,1、及びP1,0に従って判定される状況を説明している。図11は、
Figure 2011238236
又は
Figure 2011238236
である状況を示している。Qは、(P0,j_t、P0,j_t-1、P0,j_t-2、P1,j_t-1、及びP1,j_t-2)又は(Pi_t,0、Pi_t-1,0、Pi_t-2,0、Pi_t-1,1、及びPi_t-2,1)に従ってそれぞれ判定され得る。図11は、
Figure 2011238236
Figure 2011238236
である一般的な状況を示している。Qは、Pi_t,j_t-1、Pi_t,j_t-2、Pi_t-1,j_t、Pi_t-2,j_t、Pi_t-1,j_t-1、Pi_t-2,j_t-1、Pi_t-1,j_t-2、及びPi_t-2,j_t-2に従ってそれぞれ判定され得る。
実施例において、予測は3つの座標x、y、zに対して独自に計算される。予測は、AX=Bという形態の線形システム90の解を見出すことを含む。ここでAは正方行列であり、Xは多項式Qの未知係数を含むベクトルであり、Bはベクトルである。理解され得るように、予測の計算は、四則演算(加算、減算、乗算、除算)のみを使用して実行され得る。実際、先に説明したように、グレビルパラメータは、四則演算のみを使用した周知の方法を使用して、節点ベクトルから計算され得る。Aの係数は、同様に乗算のみを使用して、レビルパラメータから計算され得る。ベクトルBの係数は、先の反復にて既に記憶されている制御点の座標である。よってこの計算のためにそれらを取得するための計算は全く必要とされない。AX=Bというタイプの方程式を解くことは、例えばガウスピボット等の四則演算のみを伴う周知の技法を使用して、実行され得る。これは、多項式Qの係数であるXの係数をもたらす。そして予測値をpred(i_t,j_t) t=Q(ui_t,vj_t)として計算するステップが、四則演算のみを用いて実行され得る。
一般的な場合において、予測値は、別の制御点に関連付けられた少なくとも1つのパラメータ、サブセットの実効値、及び別の制御点に隣接する各制御点に関連付けられた少なくとも1つのパラメータに従って判定される。それぞれの隣接している制御点は、自身と関連付けられた少なくとも1つのパラメータを有する。上記実施例において、予測値は、実際、対象制御点(グレビルパラメータ)に関連づけられ、サブセットの実効値(隣接している制御点の座標)に関連付けれ2つのパラメータに従って判定されるし、隣接する各制御点(グレビルパラメータ)に関連付けられた2つのパラメータに従って判定され得る。上記実施例において、予測関数は、図8−12を参照して詳細に説明した特定の予測スキームから生ずる先のパラメータの有理関数である。このスキームは、多項式の関数によって局所的に近似され得る滑らかな曲面の場合、正確に予測をするのに適切である。しかしながら判定がサブセットの制御点に従って行われ、予測の評価が算術演算のみを含む他の関数は、例えば他の種類のNURBSに対して、他の予測スキームから生じ得る。予測スキームは、(例えば、この効果に対して記憶された情報を通して)NURBSの種類を判定する先のステップを一般的に含み得るし、従って異なる動作を適用し得る。
少なくとも1つのパラメータは、何学的オブジェクトのそれぞれの節点ベクトルに従って一般的に判定される。既に説明したようにパラメータは、上記実施例において説明したようなグレビルパラメータであり得る。実施例の多項式アプローチにおいて、グレビルパラメータの使用は、曲面の設計図を完全に利用することによって、より正確な予測を可能にする。
実施例に戻ると、計算ステップS10は、例えば多項式Qの係数をいくつかの介入パラメータの値から判定する第1の動作と、介入パラメータの値における多項式を評価するため1つの演算等、介入するパラメータの値の有理関数の評価によって単一の演算にて実行され得るし、計算ステップS10は、より多くの演算にて実行され得る。これは本方法の実装に依存する。
セットの値の浮動小数点の性質、及びそれらが使用される場合には節点ベクトルの値の浮動小数点の性質を考慮することなく、予測値を計算するステップを説明してきた。一般に、予測スキームは、算術演算を含む。上記の説明は演算が実行される実数に対する差の値を同化した。浮動小数点の演算は、これらの数に対してこれら演算を実際に実行するのに使用され得る。しかしながらこれは、先に説明した安定性問題を伴う。
異なるプラットフォームにわたる圧縮及び伸張の安定性を得るために、本方法は、整数の算術演算を用いて、浮動小数点の算術演算のエミュレーションを使用し得る。一般にセットの対象実効値に関連した浮動小数点予測値を計算するステップは、セットのサブセットの実効値の符号、指数、及び/又は仮数に対応する整数において演算を実行するステップを含み得、この演算は、浮動小数点の算術演算をエミュレートする。
Hauserによる1998年の「"SoftFloat"」の発表、及びC.Bertinらの2004年の「"A Floating-Point Library for Integer Processors"」という文献は、64ビットの浮動小数点数のエミュレーションを説明している。これら研究において、重要な要件は、標準[IEEE754−1985]の仕様を厳密にエミュレートすることである。これにより特に除算演算においてアルゴリズムが遅くなってしまい、これによりいくつかの反復を必要とする。本方法は、この要件を有しないし、それゆえそれほどコストを要しないアルゴリズムが設計され得る。
Dave Astle及びDave Durnilによる「OpenGL ES 1.0 Game Development, Chapter 4 "A Fixed Point for Math Primer" (2004)」という教科書は、32‐ビットの整数を使用する浮動小数点の値のエミュレーションを説明している。除算演算のアルゴリズムは、いくつかのプラットフォームには長過ぎ得る媒介整数を演算がエミュレートされる浮動小数点値のサイズにおいて使用する。
予測値を計算するために、入力浮動小数点値として取る算術演算のシーケンスが本発明の方法によって実行される。本方法は、浮動小数点の算術演算の使用を避ける。これは演算のかかるシーケンスの結果が異なるプラットフォームで異なる場合があるからである。よって本方法は、これら算術演算の整数ベースのエミュレーションを使用する。以下に64-ビットの浮動小数点に対する4つの算術演算(加算、引算、乗算、除算)が64-ビットの整数に対する演算のみを使用してどのようにエミュレートされ得るかに関する実施例が提供される。本方法によって提供されたエミュレーションは、高速である。なぜならば、予測値を計算するステップに対する演算が、浮動小数点値の符号、指数、及び/又は仮数に対応する整数において実行されるからである。[IEEE754−1985]規格の他の要件、又は本方法に使用される浮動小数点値の他のあらゆる標準規格の他の要件が無視され得る。
以下に提供されたエミュレーションは、64-ビットの整数をサポートするすべてのプラットフォーム上で実装され得る。これはCADソフトウェアを実行するのに使用されるほとんどのプラットフォームの場合である。128ビットの整数をサポートするプラットフォームにおいてなされるに過ぎないエミュレーションは、必要とされないであろう。かかるプラットフォームは広く利用可能ではないからである。なお、同じ原理が、64−ビットの整数をサポートしないものの128ビットの整数をサポートするプラットフォームにおいて32ビットの浮動小数点数における演算のエミュレーションを実装するのに適用され得ることが理解される。
aを[IEEE−754]規格における64‐ビットの浮動小数点値(予測値を計算するステップで使用される任意の値)とする。先に既に説明したように、以下の要素を用いてa=(s,e,m)と表記し得る。この要素は、符号s(1ビット)、指数e(11ビット)及び仮数m(52ビット)である。
浮動小数点値aは、3つの64‐ビットの整数のセットによって表された整数ベースのフォーマット(又は、以下において「エミュレーションフォーマット」とも称される)の値Aに関連付けられ得るので、符号S(非符号64−ビットの整数)、指数E(符号64−ビット整数)、仮数M(非符号64−ビットの整数)をもちいて、A=(S,E,M)となる。値Aを表すデータは、例えばS、E又はMをそれぞれの表す3つの整数のアレイであり得る。かかるデータが、予測の目的のために作成され得る。
これらフォーマットの各数は、(数学的意味において)実数の値を表している。これら値に対して以下の記号をとる。
Figure 2011238236
はaの値である。
Figure 2011238236
はAの値である。
以下において、一方のフォーマットの値を他方のフォーマットの値に関連付けられた値にどのように変換するかということに関する規則が、提供される。
aが[IEEE‐754]フォーマットの正規化された値である場合、0<e<211であり、a=(S,E,M)という数字の値は、以下の通りである。
Figure 2011238236
ここで、bias=211-1−1=1023である。
整数ベースのフォーマットへのaの変換の結果は、A=(S,E,M)である。ここで、
Figure 2011238236
である。実数の値は、以下のように定義され得る。
Figure 2011238236
エミュレーションフォーマットから[IEEE−754]フォーマットへの再変換は、簡単である(Mをmに変換する、我々はmの11最下位ビットを無視している)。
aがゼロ又は非正規化数(すなわち、e=0)である場合、整数ベースのフォーマットへ変換するために、以下の規則が適用され得る:
Figure 2011238236
言い換えると、すべてのゼロ又は非正規化数は、ゼロに変換される。[IEEE‐754]フォーマットへの再変換は、簡単である。
aが[IEEE‐754]フォーマットの無効な数である場合(すなわち、e=211−1)、エミュレーションフォーマットへ変換するために、我々は以下のように設定する。
Figure 2011238236
エミュレーションフォーマットへの浮動小数点値のこの変換の結果、使用される演算は、整数の加算、減算、乗算、及び/又は、除算を含む算術演算を含み得るし、及び/又は、ビットシフト及び/又は先頭ゼロカウントを含むビット単位の演算を含み得る。かかる演算は安定性を保証し、予測値を計算するのに使用され得る。
一般に算術演算のシーケンスを浮動小数点値において実行するためには、値は、まず整数ベースのフォーマット、例えば上記したエミュレーションフォーマットの均等値に変換される。本方法は、これら均等な数において算術演算のシーケンスを実行し得る。以下において、整数ベースのフォーマットで表された2つの演算数A及びBにおいて四則演算する方法の実施例が提供される。ここでかかる算術演算の要件について説明する。
Figure 2011238236
という表記を用いて任意の四則演算について考慮する。ここで、
Figure 2011238236
は、+−*/の何れであってもよい。
以下の仮定を考慮する。
Figure 2011238236
Figure 2011238236
はAの値である
Figure 2011238236
はBの値である
Figure 2011238236
は実数に対する演算の結果である。
我々は、
Figure 2011238236
を計算したいので、
Figure 2011238236
であり、
Figure 2011238236
はCの値である。
目的は、(オーバーフローすることなく)64‐ビットの整数に対して算術演算のみを使用し算術ビット単位シフトのみを使用することによって、(Sc,Ec,Mc)を計算することであり得る(先に述べたように、それらがすべてのプラットフォームにわたって安定的でないので、本方法は浮動小数点値における演算を避ける)。これら要求は、すべての演算子(+,−,*,/)に対して同一である。以下の表記が、説明のために採用され得る。ここでMは64‐ビットの整数である。
・M<<n:整数Mのnビットの左のシフト。
・M>n:整数Mのnビットの右のシフト。
・LZC(M):Mの先行ゼロカウント(Mの左の連続ゼロの数)。
・M+=(M>>32)。
・M=((M<<32)>>)32:Mの32の上位ビットがゼロに設定される。
以下において、加算の規則が与えられる。加算は可換であるので、我々は、
Figure 2011238236
であると想定し得る。
AとBが同じ符号を有する場合、
Figure 2011238236
であり、
Figure 2011238236
である。
Mに対応する実数
Figure 2011238236
Figure 2011238236
からあまりに離れていないことを確実にしながら(例えば、
Figure 2011238236
であることを確実にしながら)、目的は、MExactの近似である64ビットの整数M、及び、整数の算術及びビット単位のシフトのみを用いて計算され得る64ビットの整数Mを定義することである。
Figure 2011238236
が便利である。かかるMの計算によって、オーバーフローが生じないこと、及び、Mが十分に良好なMExactの近似であること、例えば
Figure 2011238236
であることをチェックすることは容易である。よって、本方法は、Cを以下のように計算し得る。
Figure 2011238236
A及びBが異なる符合である場合、
Figure 2011238236
であり、
Figure 2011238236
である。
同様のアプローチにより、M=MA−(MB>>(EB−EA))となり、
Figure 2011238236
となる。
2つの演算数の引算を計算するために、本方法は上記定義した加算法を用いるので、演算数A及び(−B)において加算を実行する。
乗算に対しては、
Figure 2011238236
であり、MExact=MA*MB*2-64である。
Figure 2011238236
であることをチェックすることは容易である。
我々は、MExactの近似である64ビットの整数M、及び整数の算術及びビット単位シフトのみを用いて計算され得る64ビットの整数Mを定義したい。そこで我々は、MExactを以下のように表す。
Figure 2011238236
我々は、Mを以下のように計算する。
Figure 2011238236
上記数式の演算は、オーバーフローすることなく64‐ビット整数算術を用いて実行され得る。なぜならばすべでの積が、nullに設定されたそれら32最上位ビットを有する演算数を有するからである。これら積の合計がオーバーフローすることなく64‐ビット整数に一致することを確かめることも容易である。なぜならば、
Figure 2011238236
であり、
Figure 2011238236
であるからである。
Mが、十分に良好なMExact近似であること、すなわち、
Figure 2011238236
であることをチェックすることは容易である。
我々は、Cを最終的に以下のように定義する。
Figure 2011238236
そして、
Figure 2011238236
であることをチェックすることは容易である。
以下に、除算の規則を提供する。除算は、実数において定義され得る。なお、
a=b/c
又は
Figure 2011238236
であり、
Figure 2011238236
であることを記す。
除算は、64‐ビットの無符号整数においても定義され得る。尚、
Figure 2011238236
であることを記す。(ここで、A、B、Q、Rは、無符号の64‐ビットの整数であり、Qは、A÷Bの商であり、Rは、その余りである)。
Figure 2011238236
であり、
Figure 2011238236
である。
我々は、
Figure 2011238236
であると容易に確認し得る。
目的は、MExactの近似である64ビットの整数M、及び、整数の算術及びビット単位シフトのみを用いて計算され得る64ビットの整数Mを定義することである。我々は、MExactを以下のように表す。
Figure 2011238236
ここで、
Figure 2011238236
であり、
Figure 2011238236
である。
Exact=D(1−λ)+ε
ここで、ε<D*λ2<2-62Exactである。
我々は、以下のように表す。
Figure 2011238236
ここで、
Figure 2011238236
であり、
Figure 2011238236
である。
そして、
Figure 2011238236
ここで、
Figure 2011238236
である。
最終的に、我々は、Mを以下のように計算する。
Figure 2011238236
我々は、オーバーフローを生ずることなく、上記数式の演算が64‐ビット整数算術を用いて実効され得ることを確認し得る。
Mが、十分に良好なMExact近似であること、すなわち
Figure 2011238236
であることをチェックすることは容易である。
我々は、Cを最終的に以下のように定義する。
Figure 2011238236
そして
Figure 2011238236
であることをチェックすることは、容易である。
上記の説明は、整数に対する演算による浮動小数点の算術をエミュレートすることによって対象の予測値を計算する方法に関する実施例をあらわにした。しかしながら他の種類のエミュレーション、例えば従来技術からすでに知られているエミュレーションが、実装され得る。以下に対象実効値及び予測値から得られた整数の差を表すビットシーケンスを記憶して、任意の上記実施例に対して圧縮を達成する実施例を提供する。
この実施例において、対象実効値及び予測値から得られた整数は、対象実効値及び予測値をそれぞれ定義する文字列によって定義された整数である。より具体的には、Engelson他によって開示されたものと同様の整数表示へのマッピングが使用され得る。これにより、ビットシーケンスの判定の高速化、リソースの節約を可能にする。
伸張を目的として、差を表すビットシーケンスは、多くの有効ビットを示すプレフィックスビットシーケンスと、先頭のゼロと望ましくはさらにいっそう大なる圧縮のために、1に等しい最初のビットを削除され、サイズが有効ビットの数である、差に等しいボディビットシーケンスとを含む。プレフィックスビットは、伸張方法が読み取られるべきボディビットシーケンスのサイズを特定することを可能にする。一方ボディビットシーケンスは、圧縮された対象値を取得するのに必要な情報を含む。
これは、[IEEE−754]フォーマットで表された2つの64‐ビットの浮動小数点値a及びpを参照する以下の実施例において詳細に説明される。
a=(sa,ea,ma
p=(sp,ep,mp
値aは、対象浮動小数点値であり、値pがaの予測値である。本方法は、これら2つの値から、aの圧縮を表すビットシーケンスBを計算する。aがビットシーケンスBから及びpから取得され得るように、シーケンスBは定義され、a及びpの値が近い場合には、そのサイズが小さくなるようにBが定義されなければならない。上述したNURBS曲面の圧縮のコンテクストにおいて、値aは、現在の点のx、y、又はz座標の任意のものであり、pは、この現在の点の同一の座標に対する予測値である。
f=(sF,eF,mF)を、[IEEE754]フォーマットで表された64‐ビット浮動小数点数とする。本方法の実施例によって用いられるfの整数へのマッピングは、Int(f)と記され、fと同一の64‐ビット列によって表された64‐ビットの無符号整数である。我々は、このマッピングの逆関数を、Realと記すため、Real(Int(f))=fとなる。
我々は、無符号の64‐ビット整数D及び1‐ビット数Sを以下のように定義する。
(Int(a)≧Int(p))である場合、
Figure 2011238236
(Int(p)≧Int(a))である場合、
Figure 2011238236
N=LeadingZeros(D)をDの先頭0の数とする。Dは、以下のビットシーケンスによって表されえる。
Figure 2011238236
である場合、
Figure 2011238236
(N=64)である場合、
Figure 2011238236
我々は、aの圧縮された形態であるビットシーケンスB=Compressed(a,p)を定義する。我々は、Nの値に従い、3つのケースを区別する。
ケース1:(N=64)である場合、
Figure 2011238236
となる。
ケース2:
Figure 2011238236
である場合、
Figure 2011238236
となる。
ケース3:
Figure 2011238236
である場合、
Figure 2011238236
プレフィックスビットシーケンスBin(k+1)は、無符合の2進数として表された(k+1)の値である。
必ずしもセットの構造に基づくものでない別の圧縮スキームが、数値データを圧縮するためにさらに使用され得る。例えばエントロピ符号化が、上述した演算によって圧縮された後に、データに対して使用され得る。したがって、本方法は、例えば、エントロピコーディングを使用して、数値データを再度圧縮するステップを含み得る。
図13に示されるように、本発明は、数値データを伸張するためのコンピュータ実装方法にも関する。数値データは、一般に、浮動小数点実効値の構造化されたセットを含む圧縮された形態のデータである。浮動小数点値は、上記定義されたように、符号、指数、及び仮数によって定義されている。数値データは、セットの対象実効値及び対象実効値に関連した浮動小数点予測値から得られた整数の差を表すビットシーケンスを含む。伸張は、予測値を計算するステップS140であって、計算は、セットのサブセットの実効値の符号、指数、及び/又は仮数に対応する整数における演算を実行するステップと、予測値から得られた整数を有するビットシーケンスの加算から対象実効値を得るステップS150と、を含む。
かかる方法は、実効値、すなわち対象値を圧縮されたデータから取り出し、それにより、利用可能となる。
計算ステップ及び取得ステップはこのセットの順序に従って反復される。このセットが、それ自体それぞれのビットシーケンスを含む数値データにおいてそれ自体記憶されていない少なくとも2つの実効値を含むとき、これは有益である。この順序は、このセットの順序の表示を含み得る数値データによって示され得る。かかる表示は、このセットに明確に関連し得ない。例えばこのセットが順序付けされるとき、圧縮は、先に説明したようにその順位に従う。従って伸張は、圧縮されていないセットの順序に対応する圧縮された数値データによって表示された順位に単に従い得る。
各反復において、サブセットは、前の反復において取得された対象値及び/又は数値データにそれ自体含まれる対象値を含み得る。言い換えるとこのセットは、数値データに含まれないようにし、それぞれのビットシーケンスをむしろ含まれるようにすることによって、数値データにおいてそれ自体含まれる実効値と、セットの圧縮に加わる実効値を含み得る。この場合全体的な伸張処理は、数値データからこのセットのすべての実効値を判定する。取得ステップが実行される全体的な処理の各反復において、判定されるべき実効値、すなわち対象値は、上記説明したように、先に判定されたこのセットの実効値、言い換えると、前の反復において取得された対象値及び/又はそれ自体数値データに含まれる対象値から構成され得るサブセットを使用して取得される。
例えば数値データは、セットの少なくとも一方の初期実効値をさらに含み、計算ステップは、セットの他方の実効値のすべてに対して反復される。この場合、各反復において、計算ステップに続いて、反復において計算された予測値を閾値と比較するステップと、予測値が閾値より大きいときに(上記したように)予測値から取得された整数を有する(数値データに含まれる)ビットシーケンスの加算から対象実効値を取得するステップ、又は、反復に関する予測値が閾値よりも小さいときに(数値データにおいてそれ自体含まれる)対象実効値を用いてサブセットを増加させるステップが行われる。これは実効値がそれ自体記憶されているのかどうか又は「圧縮」されている(すなわち、ビットシーケンスがその位置で記憶されている)のかどうかを判定する。あるいは、数値データは、(上記説明したように)次の対象値が数値データにそれ自体含まれるのかどうか又は次の対象値が数値データに含まれるビットシーケンスから取得されるべきであるかどうか示す情報(例えば、プレフィックスビット)を含み得る。これは伸張速度を増大せしめる。
圧縮方法を説明するとき、伸張方法の実施例が上記提供された定義を参照して、今説明されるだろう。これら定義もここで適用している。実際、これは必ずしもそうとは限らないが、伸張されるべき数値データは、上記圧縮方法によって取得され得る。
セットの実効値は、幾何学的オブジェクトに関連付けられた座標であり得るし、望ましくは幾何学的オブジェクトの制御点の座標であり得、サブセットの実効値は、幾何学的オブジェクトの別の制御点に隣接する幾何学的オブジェクトの制御点の座標であり得る。対象実効値が別の制御点の座標である。予測値は、別の制御点に関連付けられた少なくとも1つのパラメータ、サブセットの実効値、及び別の制御点に隣接する各制御点に関連付けられた少なくとも1つのパラメータに従って判定され得る。少なくとも1つのパラメータは、それ自体それらを含み得る数値データから判定され得るし、少なくとも1つのパラメータの判定を許容する要素を含む。例えば少なくとも1つのパラメータは、幾何学的オブジェクトのそれぞれの節点ベクトルに従って判定され得る。幾何学的オブジェクトは、NURBS曲面であり得るし、少なくとも1つのパラメータは、グレビルパラメータであり得る。対象実効値及び予測値から得られた整数は、対象実効値及び予測値をそれぞれ定義する文字列によって定義された整数であり得る。差を表すビットシーケンスは、多くの有効ビットのプレフィックスビットシーケンス及び先頭のゼロ及び望ましくは1に等しい第1のビットが削除され、サイズが有効ビットの数である差に等しいボディビットシーケンスを含み得る。演算は、整数の加算、減算、乗算、及び/又は、除算を含む算術演算、及び/又は、ビットシフト及び/又は先頭ゼロカウントを含むビット単位の演算を含み得る。これらすべての特徴は、上記説明したように、圧縮に関連付けられた利点を提供する。
上記圧縮方法に従う圧縮方法が実効された場合において、ステップS140において予測値を計算するために使用される予測スキームは、圧縮方法で使用されるのと同じ予測スキームである。より具体的には、先に圧縮方法の説明の際に使用された表記を参照すると、浮動小数点予測値pが計算されているとき、伸張方法は、ビットシーケンスBを読み取るステップを含み得る。予測値pに対応する実効値aは、ビットシーケンスB及び予測値pから、a=Decompressed(B,p)として取得され得る。上に提供された実施例を参照すると、Bの最初の6ビットは読み取られ6ビットの無符号整数mとして解釈される。(m=0)である場合、我々はa=p(ケース1)とする。(1≦m≦62)である場合、我々はD及びSを取得することを可能にする次のmビットを読み取り、我々は(S=0)である場合、a=Real(Int(p)+D)とし、(S=1)である場合、a=Real(Int(p)−D)とする。(m=63)である場合、我々は、次の64ビットを読み取り、それらを数aとして解釈する。
図2−4を参照して説明したように、圧縮が反復を含むことによって実行されたとき、上記ステップS140及びS150は、対応して反復される。
図3を参照して説明したように、圧縮が、初めの値を記憶するステップを含むとき、伸張方法は、ステップS140及びS150を反復する前に、対応して始めの値を読み取る。よって始めの値は、予測の基礎を供給する少なくとも第1の計算するステップS140を実行するのに使用され得る。計算された予測値は、上述したように、それに対応する実効値をステップS150において取得するのに使用され得る。少なくとも一つのかかるステップ後に、取得された値は、伸張方法の反復に含まれる計算ステップ140の次のステップを計算するのに使用され得る。圧縮方法が、予測値を閾値と比較するステップを含んで、図4を参照して説明したように、それらが圧縮されるべきかどうかを判定する場合、伸張方法は、対応して実効値を取得する前にステップS140において計算された予測値の比較を実行する。比較の結果において、取得ステップS150が実効値を取得するために実行されるのか、又は(圧縮方法の反復中に、比較が対象値を圧縮しないがそれ自体それを記憶する判定を得る場合)データを読み取るステップが実行される。
図5−12を参照して先に説明した圧縮されたNURBSの実施例に伸張方法が適用されるとき、節点ベクトルを記憶データから読取るステップを含み得る。3つの非圧縮制御点の座標である始めの値が、読み取られる。読み取られるべき現在の制御点のインデックスが、図7を参照して説明したように、判定される。圧縮するときと同一の予測スキーム(すなわち、図8−12を参照して説明した予測スキーム)が、現在の制御点のインデックスに従って選択される。次の制御点の予測値が、例えば多項式補間を使用して計算される。この計算に必要なすべてのデータが、この段階において読み取られている。すなわち節点ベクトルが読取られており、(選択された予測スキームに従って)この計算のために必要な制御点の実効値が、先の反復中に既に存在している。現行の点の座標が、それら圧縮された形態から読み取られ復号化される。これは予測を使用してなされる。これは3つの座標x、y、zに対して独自になされ得る。さもなければNURBS曲面のすべての制御点が読取られている場合、記憶処理は終了される。
したがって一般的な場合において、伸張方法は、圧縮方法が後に続く同一のコースに従うと理解されるべきである。これは本来データ圧縮の分野から知られている。
また本発明は、コンピュータ支援設計システムに関する。システムは、浮動小数点実効値の構造化されたセットを含む数値データによってモデル化されたオブジェクトを記憶するデータベースと、グラフィカルユーザインターフェイスと、上記提示した圧縮方法に従って数値データを圧縮し、及び/又は、上記提示した伸張方法に従って数値データを伸張する手段と、を含む。例えば数値データは、ハードディスクと接続されたプロセッサによって読み取られ且つ処理される。このプロセッサは、上記方法に従って、数値データを圧縮し又は伸張し得る。数値データは、対応する(圧縮され又は伸張された)形態にてメモリに記憶される。かかるシステムは、少ないメモリリソースにてオブジェクトのモデル化を可能にする。実際、システムが上に提示された効率的な圧縮法に従って数値データを圧縮するかもしれないので、より多くのオブジェクトが、他のシステムと比べて圧縮された形態の下でシステムのデータベースに記憶され得る。上述したように、システムが数値データを伸張し得るので、システムは、ユーザが圧縮されたデータを読むのを幇助し得る。ユーザは、圧縮を利用し得る。
グラフィカルユーザインターフェイスは、ユーザがオブジェクトをモデル化するデータの圧縮を命令し又はオブジェクトをモデル化するデータの伸張を命令することを可能にする。従ってオブジェクトは、CADファイルによってモデル化された一部であり得る。設計者が、例えばグラフィカルユーザインターフェイスの手段によって、この一部に対して作業する必要がある場合、システムは、圧縮された形態のCADファイルを記憶し、それらを伸張し得る。
図14は、クライアントコンピュータシステム、例えば、ユーザのワークステーションであるかかるシステムを示している。
クライアントコンピュータは、内部通信バス100に接続された中央演算処理装置(CPU)101、バスに接続されたランダム・アクセス・メモリ(RAM)107を含む。クライアントコンピュータは、さらにバスに接続されたビデオRAM110に関連づけられているグラフィカル処理ユニット(GPU)111が提供される。ビデオRAM110は、フレームバッファとして当技術分野で知られている。大容量記憶装置コントローラ102は、ハードドライブ103等の大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令及びデータをタンジブルに具現化するのに適した大容量記憶装置は、一例としてEPROM、EEPROM、フラッシュメモリデバイス等の半導体記憶装置、内部ハードディスクや着脱式ディスク等の磁気ディスク、光磁気ディスク及びCD−ROMディスク104を含むすべての形態の不揮発性メモリを含む。任意の上記の機能が、特別に設計されたASICs(特定用途向けIC)によって追加され得るし、特別に設計されたASICs(特定用途向けIC)に組み込まれ得る。ネットワークアダプタ105は、ネットワーク106へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイス、キーボード等の接触デバイス109を含み得る。カーソル制御デバイスは、クライアントコンピュータにおいて使用されて、ユーザがカーソルをディスプレイ108上の所望の位置に選択的に位置付けることを可能にする。さらにカーソル制御デバイスは、ユーザが様々なコマンド及び入力制御信号を選択することを可能にする。カーソル制御デバイスは、システムに対する入力制御信号の多くの信号発生デバイスを含む。通常、カーソル制御デバイスは、マウスであり得る、マウスのボタンは信号を生成するのに使用され得る。
本発明は、コンピュータによる実行のための命令を含むコンピュータプログラムにも関する。命令は、上記方法を実行する手段を含む。かかるプログラムは、コンピュータ可読記憶媒体に記憶され得る。かかるプログラムは、既存のシステムに追加され得るし、かかるシステムが上に提示された方法を実行することを可能にする。かかるプログラムは、既存のシステムに本方法の利点を提供する。
本発明は、予測符号化スキームを使用して、情報損失を伴うことなく、浮動小数点幾何学的オブジェクトを圧縮する(すなわち、圧縮は無損失である)。予測関数は、整数の算術演算のみを使用して浮動小数点の算術演算をエミュレートすることによって算術演算を実行する。このエミュレーションは、正確な結果をすべての四則演算(加算、減算、乗算、除算)に提供する。すなわち浮動小数点計算を使用することによって得られたものに非常に近い結果を与える。よって予測は、正確である。このエミュレーションは、このコンテクストにおいて不必要であるので、全体の[IEEE754−1985]規格に従う必要はない。
本発明は、先の技術に対していくつかの利点を提供する。
本発明の1つの利点は、圧縮及び伸張が異なるソフトウェア及びハードウェアプラットフォームで行われ得るということである。これは、予測の数値計算が浮動小数点計算の整数ベースのエミュレーションを使用して実行され得るからである。このエミュレーションは整数における演算のみを伴うので、結果はまさにすべてのプラットフォームにおいて同じである。したがって圧縮するとき又は伸張するときに計算される予測は、厳密に同一であり、それら圧縮された形態から現在の点の座標の復号化が厳密に圧縮中に記憶された当初の値をもたらす。
実施例の予測関数は、整数算術を使用する浮動小数点の算術のエミュレーションに基づいており、浮動小数点算術を使用することによって得られたものに非常に近い結果を与える。
整数算術を使用する実施例において提供された浮動小数点算術のエミュレーションは、他の既存のエミュレーションよりも高速である。これは、それが全体の[IEEE754−1985]規格をサポートする必要はないという事実に帰属される。
予測スキームは幾何学的オブジェクトのタイプに適用させられ、オブジェクトのパラメータ化を考慮する。
自動車産業のCADデータにおいて実行されテストは、45%の圧縮率を例証しており、これは、18.3MBの初期圧縮ファイルが本発明の圧縮方法によって、10MBの圧縮ファイルにダウンサイズされることを意味している。

Claims (15)

  1. 浮動小数点実効値の構造化されたセットを備える数値データをコンピュータが圧縮する方法であって、浮動小数点の値は符号、指数、及び仮数によって定義されており、前記方法は、
    前記セットの対象実効値に関連した浮動小数点予測値を計算するステップであって、前記計算するステップは、前記セットのサブセットの実効値の前記符号、前記指数、及び/又は前記仮数に対応する整数において演算を実行するステップを含む、ステップと、
    前記対象実効値及び前記予測値から得られた整数の差を表すビットシーケンスを記憶するステップと
    を含むことを特徴とする方法。
  2. 前記計算するステップ及び前記記憶するステップは、前記セットの順序に従って反復されることを特徴とする請求項1に記載の方法。
  3. 前記セットの少なくとも1つの初期実効値が記憶されており、前記計算するステップは前記セットの他の実効値のすべてにわたって反復され、各反復において、前記計算するステップに、
    前記反復の前記計算された予測値を閾値と比較するステップと、
    前記予測値が前記閾値より大きいときには、前記反復の前記対象実効値と前記反復の前記予測値とから得られた整数の差を表すビットシーケンスを記憶するステップ、又は、
    前記反復に関する前記予測値が前記閾値よりも小さいときには、前記反復の前記対象実効値を記憶するステップと
    が続くことを特徴とする請求項2に記載の方法。
  4. 前記セットの前記実効値は、幾何学的オブジェクトに関連づけられた座標であり、望ましくは前記幾何学的オブジェクトの制御点の座標であることを特徴とする請求項1乃至3のうちいずれかに記載の方法。
  5. 前記サブセットの前記実効値は、前記幾何学的オブジェクトの別の制御点に隣接する前記幾何学的オブジェクトの制御点の座標であり、前記対象実効値が前記別の制御点の座標であることを特徴とする請求項4に記載の方法。
  6. 前記予測値は、前記別の制御点に関連付けられた少なくとも1つのパラメータ、前記サブセットの前記実効値、及び、前記別の制御点に隣接する各制御点に関連付けられた少なくとも1つのパラメータに従って決定されることを特徴とする請求項5に記載の方法。
  7. 前記少なくとも1つのパラメータは、前記幾何学的オブジェクトのそれぞれの節点ベクトルに従って決定されることを特徴とする請求項6に記載の方法ことを特徴とする請求項6に記載の方法。
  8. 前記幾何学的オブジェクトはNURBS曲面であり、
    前記少なくとも1つのパラメータはグレビルパラメータであることを特徴とする請求項7に記載の方法。
  9. 前記対象実効値及び前記予測値から得られた前記整数は、前記対象実効値及び前記予測値をそれぞれ定義する文字列によって定義された前記整数であることを特徴とする請求項1乃至8のいずれかに記載の方法。
  10. 前記差を表す前記ビットシーケンスは
    多くの有効ビットを示すプレフィックスビットシーケンスと、
    ‐前記差に等しいボディビットシーケンスであって、先頭のゼロ及び望ましくは1に等しい最初のビットが削除され、サイズが前記有効ビットの数である、ボディビットシーケンスと
    を備えることを特徴とする請求項1乃至9のいずれかに記載の方法。
  11. 前記演算は、整数の加算、減算、乗算及び/若しくは除算を含む算術演算、及び/又は、ビットシフト及び/若しくは先頭ゼロカウントを含むビット単位の演算を備えることを特徴とする請求項1乃至10のうちのいずれかに記載の方法。
  12. 数値データを伸張するコンピュータ実装方法であって、前記数値データは、浮動小数点実効値の構造化されたセットを備える圧縮された形態のデータであり、浮動小数点値は、符号、指数、及び仮数によって定義されており、前記数値データは、前記セットの対象実効値から得られた整数の差を表すビットシーケンスと、前記対象実効値に関連した浮動小数点予測値と、を含み、前記方法は、
    前記予測値を計算するステップであって、前記セットのサブセットの実効値の前記符号、前記指数及び/又は前記仮数に対応する整数において演算を実行するステップと、
    前記予測値から得られた整数を有する前記ビットシーケンスの前記加算から対象実効値を得るステップと
    を含むことを特徴とする方法。
  13. 浮動小数点実効値の構造化されたセットを備える数値データによってモデル化されたオブジェクトを記憶するデータベースであって、浮動小数点値が符号、指数、及び仮数によって定義される、データベースと、
    グラフィカルユーザインターフェイスと、
    請求項1−11のいずれかに記載の方法に従って数値データを圧縮し、及び/又は、請求項12に記載の方法に従って数値データを伸張する手段と
    を備えることを特徴とするコンピュータ支援設計システム。
  14. コンピュータによる実行のための命令を含むコンピュータプログラムであって、
    前記命令は、請求項1−13のうちいずれかに記載の方法を実行する手段を含むことを特徴とする方法。
  15. 請求項14に記載に従うコンピュータプログラムが記憶されていることを特徴とするコンピュータ読み取り可能な記憶媒体。
JP2011105482A 2010-05-11 2011-05-10 数値データの圧縮及び伸張 Active JP5833339B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10305502.6A EP2387004B1 (en) 2010-05-11 2010-05-11 Lossless compression of a structured set of floating point numbers, particularly for CAD systems
EP10305502.6 2010-05-11

Publications (2)

Publication Number Publication Date
JP2011238236A true JP2011238236A (ja) 2011-11-24
JP5833339B2 JP5833339B2 (ja) 2015-12-16

Family

ID=43303274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011105482A Active JP5833339B2 (ja) 2010-05-11 2011-05-10 数値データの圧縮及び伸張

Country Status (6)

Country Link
US (2) US8368568B2 (ja)
EP (1) EP2387004B1 (ja)
JP (1) JP5833339B2 (ja)
KR (1) KR101808027B1 (ja)
CN (1) CN102323922B (ja)
CA (1) CA2739956C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8947274B2 (en) 2012-06-21 2015-02-03 Mitsubishi Electric Corporation Encoding apparatus, decoding apparatus, encoding method, encoding program, decoding method, and decoding program
WO2015052787A1 (ja) * 2013-10-09 2015-04-16 株式会社日立製作所 解析データ表示システムおよび解析データの転送表示方法

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2387004B1 (en) 2010-05-11 2016-12-14 Dassault Systèmes Lossless compression of a structured set of floating point numbers, particularly for CAD systems
TWI524265B (zh) * 2011-06-30 2016-03-01 艾特拉股份有限公司 浮點資料之壓縮
US10311096B2 (en) * 2012-03-08 2019-06-04 Google Llc Online image analysis
EP2750107B1 (en) 2012-12-31 2017-03-15 Dassault Systèmes Groups of faces that form a geometrical pattern
EP2750106B1 (en) 2012-12-31 2021-09-15 Dassault Systèmes Geometrical elements transformed by rigid motions
EP2808810B1 (en) 2013-05-28 2017-01-11 Dassault Systèmes Compression and decompression of 3d modeled object
US10305980B1 (en) 2013-11-27 2019-05-28 Intellectual Property Systems, LLC Arrangements for communicating data in a computing system using multiple processors
US9608664B2 (en) 2013-12-30 2017-03-28 International Business Machines Corporation Compression of integer data using a common divisor
US9628107B2 (en) 2014-04-07 2017-04-18 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
US9350384B2 (en) 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US10114554B1 (en) 2015-01-20 2018-10-30 Intellectual Property Systems, LLC Arrangements for storing more data in faster memory when using a hierarchical memory structure
US10909078B2 (en) 2015-02-25 2021-02-02 International Business Machines Corporation Query predicate evaluation and computation for hierarchically compressed data
US9819962B2 (en) * 2015-04-06 2017-11-14 Ati Technologies Ulc Efficient low-complexity video compression
EP3098734A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with likeness criterion
EP3098735A1 (en) 2015-05-28 2016-11-30 Dassault Systèmes Querying a database with thickness criterion
EP3163536B1 (en) * 2015-10-30 2021-12-08 Dassault Systèmes Compression of a three-dimensional modeled object
WO2017163106A1 (en) * 2016-03-23 2017-09-28 Phatak Amar Method for lossless compression and regeneration of digital design data
EP3264286B1 (en) 2016-06-28 2020-11-18 Dassault Systèmes Querying a database with morphology criterion
EP3321817A1 (en) 2016-11-14 2018-05-16 Dassault Systèmes Querying a database based on a parametric view function
WO2018099788A1 (en) * 2016-11-29 2018-06-07 Koninklijke Philips N.V. Floating point data compression/compressor
DE102017204946A1 (de) * 2017-03-23 2018-09-27 Volkswagen Aktiengesellschaft Verfahren zur Bestimmung eines Wertes einer Integer-Skalierung in einer Verknüpfung von Eingangsmengen zu Ausgangsmengen und Computerprogrammprodukt
US10153779B1 (en) * 2017-04-25 2018-12-11 EMC IP Holding Company LLC Content-aware compression of floating-point time-series data using multiple prediction functions and estimated bit-saving thresholds
US11281824B2 (en) 2017-12-13 2022-03-22 Dassault Systemes Simulia Corp. Authoring loading and boundary conditions for simulation scenarios
WO2020037511A1 (zh) * 2018-08-21 2020-02-27 华为技术有限公司 数据存储及获取方法和装置
CN110875743B (zh) * 2018-08-30 2023-04-28 上海川源信息科技有限公司 基于抽样猜测的数据压缩方法
CN109816739B (zh) * 2018-12-14 2024-02-20 上海昇晔网络科技有限公司 图片压缩方法、装置、计算机设备及计算机可读存储介质
CN110175185B (zh) * 2019-04-17 2023-04-07 上海天数智芯半导体有限公司 一种基于时序数据分布特征的自适应无损压缩方法
CN111510154B (zh) * 2020-04-17 2023-07-21 环荣电子(惠州)有限公司 坐标数据压缩方法
CN112054805B (zh) * 2020-09-14 2023-03-31 哈尔滨工业大学(深圳) 一种模型数据压缩方法、系统及相关设备
CN113282553B (zh) * 2021-05-24 2021-11-02 北京航空航天大学 一种电磁环境远场数据的快速无损压缩存储方法
US20230137394A1 (en) * 2021-10-28 2023-05-04 Halliburton Energy Services, Inc. Methods for Data Compression and Optimization for Downhole Telemetry
CN114418098A (zh) * 2022-03-16 2022-04-29 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 一种神经网络差量压缩方法、装置、电子设备及存储介质
US11979174B1 (en) * 2022-07-13 2024-05-07 Ansys, Inc. Systems and methods for providing simulation data compression, high speed interchange, and storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134437A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd 座標データ圧縮方法
JP2002049933A (ja) * 2000-08-01 2002-02-15 Ricoh Co Ltd 3次元幾何データの表現方法、圧縮・伸長方法、圧縮・伸長装置および該圧縮・伸長方法を実現するプログラムの記録媒体
WO2004114527A1 (ja) * 2003-06-20 2004-12-29 Nippon Telegraph And Telephone Corporation 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6525722B1 (en) 1995-08-04 2003-02-25 Sun Microsystems, Inc. Geometry compression for regular and irregular mesh structures
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
US6215500B1 (en) 1995-08-04 2001-04-10 Sun Microsystems, Inc. Compression of three-dimensional geometry data representing a regularly tiled surface portion of a graphical object
US5905507A (en) 1996-01-16 1999-05-18 International Business Machines Corporation Compression of geometric models using spanning trees
US5825369A (en) 1996-01-16 1998-10-20 International Business Machines Corporation Compression of simple geometric models using spanning trees
US6047088A (en) 1996-12-16 2000-04-04 Sharp Laboratories Of America, Inc. 2D mesh geometry and motion vector compression
US6028541A (en) * 1998-03-12 2000-02-22 Liquid Audio Inc. Lossless data compression with low complexity
US6167159A (en) 1998-04-30 2000-12-26 Virtue Ltd. Triangle mesh compression
US7864083B2 (en) * 2008-05-21 2011-01-04 Ocarina Networks, Inc. Efficient data compression and decompression of numeric sequences
CN101661631B (zh) * 2009-09-27 2012-05-23 大连民族学院 基于局部最小生成树的点模型快速无损压缩处理方法
EP2387004B1 (en) 2010-05-11 2016-12-14 Dassault Systèmes Lossless compression of a structured set of floating point numbers, particularly for CAD systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09134437A (ja) * 1995-11-08 1997-05-20 Hitachi Ltd 座標データ圧縮方法
JP2002049933A (ja) * 2000-08-01 2002-02-15 Ricoh Co Ltd 3次元幾何データの表現方法、圧縮・伸長方法、圧縮・伸長装置および該圧縮・伸長方法を実現するプログラムの記録媒体
WO2004114527A1 (ja) * 2003-06-20 2004-12-29 Nippon Telegraph And Telephone Corporation 浮動小数点形式ディジタル信号可逆符号化方法、及び復号化方法と、その各装置、その各プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015016081; 佐野 健太郎, 片平 和也, 山本 悟: 'FPGAを用いた浮動小数点データストリーム高速圧縮のためのアルゴリズムの検討' 可視化情報学会誌 第29巻/第1号, 20090701, 第49-54頁, 可視化情報学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8947274B2 (en) 2012-06-21 2015-02-03 Mitsubishi Electric Corporation Encoding apparatus, decoding apparatus, encoding method, encoding program, decoding method, and decoding program
WO2015052787A1 (ja) * 2013-10-09 2015-04-16 株式会社日立製作所 解析データ表示システムおよび解析データの転送表示方法

Also Published As

Publication number Publication date
US20130124589A1 (en) 2013-05-16
KR101808027B1 (ko) 2017-12-12
CA2739956C (en) 2020-10-20
CN102323922A (zh) 2012-01-18
US20110279293A1 (en) 2011-11-17
CN102323922B (zh) 2017-06-13
US8963748B2 (en) 2015-02-24
KR20110124720A (ko) 2011-11-17
EP2387004A1 (en) 2011-11-16
US8368568B2 (en) 2013-02-05
EP2387004B1 (en) 2016-12-14
CA2739956A1 (en) 2011-11-11
JP5833339B2 (ja) 2015-12-16

Similar Documents

Publication Publication Date Title
JP5833339B2 (ja) 数値データの圧縮及び伸張
JP7084703B2 (ja) 物理的属性を表す信号の圧縮
CN111738448B (zh) 量子线路模拟方法、装置、设备及存储介质
JP7491685B2 (ja) ニューラルネットワークのセット
CN106202545B (zh) 利用相近性准则来查询数据库
US8983805B2 (en) Modeled object updating
CN111382470A (zh) 用于3d建模对象推断的机器学习
EP3906616A1 (en) Neural network activation compression with outlier block floating-point
JP2022036024A (ja) パラメータ化された3dモデルを出力するニューラルネットワーク
JP2015028782A (ja) 三次元モデル化オブジェクトの圧縮
CN111382496A (zh) 学习用于推断可编辑特征树的神经网络
US20220207370A1 (en) Inferring device, training device, inferring method, and training method
JP2020109660A (ja) 編集可能なフィーチャツリーの推測のためのデータ集合を形成すること
CN114078169A (zh) 用于输出3d模型的变分自动编码器
CN113554178A (zh) 优化梯度提升特征选择
Lee et al. Progressive 3D mesh compression using MOG-based Bayesian entropy coding and gradual prediction
KR101067826B1 (ko) 폴리곤 모델에 대한 하우스도르프 거리 산출 방법
US20220300788A1 (en) Efficient compression of activation functions
Nikolaev et al. 3D model compression with support of parallel processing on the GPU
Song et al. Compression algorithm for implicit 3D B-spline solids
US20230351076A1 (en) Classification and similarity detection of multi-dimensional objects
US11979174B1 (en) Systems and methods for providing simulation data compression, high speed interchange, and storage
Chen et al. Lossless Geometry Compression for Steady-State and Time-Varying Irregular Grids.
JP2024049515A (ja) サンプリングプログラム、サンプリング方法、および情報処理装置
Wahanik et al. The fast multipole method for the computation of large-scal e three-dimensional elastostatics boundary-element problems in underground excavations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150728

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151029

R150 Certificate of patent or registration of utility model

Ref document number: 5833339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250