JP2008512917A - 浮動小数点数列を圧縮及び伸張する方法 - Google Patents
浮動小数点数列を圧縮及び伸張する方法 Download PDFInfo
- Publication number
- JP2008512917A JP2008512917A JP2007530792A JP2007530792A JP2008512917A JP 2008512917 A JP2008512917 A JP 2008512917A JP 2007530792 A JP2007530792 A JP 2007530792A JP 2007530792 A JP2007530792 A JP 2007530792A JP 2008512917 A JP2008512917 A JP 2008512917A
- Authority
- JP
- Japan
- Prior art keywords
- floating
- value
- sequence
- compressed
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/14—Conversion to or from non-weighted codes
- H03M7/24—Conversion to or from floating-point codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/156—Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】浮動小数点数列の圧縮率を改善することのできる圧縮方法及び圧縮装置を提供する。
【解決手段】本発明は、浮動小数点数列を圧縮及び伸張する方法に関する。圧縮方法は、前記浮動小数点数列の最小値と最大値を決定する工程と、前記最大値と最小値の関数として量子化ステップ値を決定する工程と、前記量子化ステップ値を用い、前記浮動小数点数列に前記最大値と最小値の間で線形量子化を適用し、前記浮動小数点数列の各数値を圧縮する工程と、前記量子化ステップ値を用いて得られた前記浮動小数点数列の各数値の圧縮値を2進数列に挿入する工程とを含む。
【選択図】図4
【解決手段】本発明は、浮動小数点数列を圧縮及び伸張する方法に関する。圧縮方法は、前記浮動小数点数列の最小値と最大値を決定する工程と、前記最大値と最小値の関数として量子化ステップ値を決定する工程と、前記量子化ステップ値を用い、前記浮動小数点数列に前記最大値と最小値の間で線形量子化を適用し、前記浮動小数点数列の各数値を圧縮する工程と、前記量子化ステップ値を用いて得られた前記浮動小数点数列の各数値の圧縮値を2進数列に挿入する工程とを含む。
【選択図】図4
Description
本発明は、データを転送し、格納し、取り出し、表示するコンピュータシステムに関し、詳しくは、浮動小数点数列を圧縮及び伸張する方法及びシステムに関する。
多くのアプリケーションソフトは、特に、芸術作品、技術図面、概略図等のディジタルグラフィックドキュメントを生成及び表示するとき、膨大な数の数値データを転送し、格納し、読み出すことを要求される。なぜなら、ドキュメントが、点、直線、曲線を描写するためのグラフィックデータを含んでいるからである。このようなグラフィックドキュメントでは、2次元ベクトルやベクトル/ラスター混合で記述するSVG(Scalable Vector Graphics)等の言語を用いてグラフィック対象が記述される。
SVGは、拡張可能なマークアップ言語XML(eXtensible Markup Language)に基いたマークアップ言語であり、ベクトルグラフィックシェイプ、イメージ、テキストの3タイプのグラフィック対象が記述可能である。ベクトルグラフィックシェイプは、直線と曲線で定義される。各直線及び曲線は、複数のセグメントの列で定義され、始点と終点の座標と始点から終点までの曲線の形状を定義する変換コマンドとを含んでいる。複雑な形状は、その座標とコマンドの長いリストのSVG言語で表される。SVG言語では、全ての座標がIEEE 754フォーマットに基づいて32ビットで符号化された浮動小数点数である。
SVGは、特に、携帯電話でグラフィックの転送及び表示に広く使用される傾向がある。しかしながら、携帯電話で可能なデータ転送レートは、一般に、減じられ、携帯電話の画面サイズも小さい。
ディジタルドキュメントを転送又は格納するのに必要なデータ転送レート又は容量を削減するため、ディジタルドキュメントが圧縮されている。ISO/IEC 15938-1やMPEG-7(Moving Picture Expert Group)は、XMLドキュメントの符号化(圧縮)方法及び復号化(伸張)方法を提案している。この規格は、特に、マルチメディア・メタデータのような高度に構造化されたデータ処理に適応される。しかしながら、数列は、SVGドキュメントの重要な部分を構成しており、浮動賞数点数列の圧縮が必要である。
ZLIB(ZIP)などの一般的な圧縮アルゴリズムは、浮動小数点数列に適用しても期待できるほど高い圧縮率は得られない。
浮動小数点数の圧縮方法が、特許文献US6,253,222及びUS6,396,420に開示されている。特許文献US6,253,222に開示された方法は、圧縮される浮動小数点数から一定の数値を差し引き、圧縮している。特許文献US6,396,420に開示された方法は、圧縮される2つの数値の共通の桁を特定し、共通の桁の数値と被共通の桁の数値を別々に圧縮している。
本発明は、従来の問題を解決するためになされたもので、浮動小数点数列の圧縮率を改善することのできる圧縮方法を提供することを目的とする。また、低解像ディスプレイにSVGドキュメントなどのベクトルグラフィックドキュメントを表示する圧縮方法及び伸張方法を提供することを目的とする。
本発明の圧縮方法は、浮動小数点数列を圧縮する圧縮方法であって、
前記浮動小数点数列の最小値minと最大値maxを決定する工程と、
次式を用いて量子化ステップ値を決定する工程と、
ここで、記号nbitsは圧縮された値の少なくとも1つのビット数であり、
次式を用い、前記最小値と最大値の間に線形量子化を適用し、前記浮動小数点数列の各数値vを圧縮する工程と、
ここで、記号qは浮動小数点数列の各数値が圧縮された値、記号Int[x]はカッコ内の数値xの整数部が得られる関数であり、
前記圧縮工程で得られる圧縮された値を2進数列に挿入する工程とを含む。
前記浮動小数点数列の最小値minと最大値maxを決定する工程と、
次式を用いて量子化ステップ値を決定する工程と、
ここで、記号nbitsは圧縮された値の少なくとも1つのビット数であり、
次式を用い、前記最小値と最大値の間に線形量子化を適用し、前記浮動小数点数列の各数値vを圧縮する工程と、
ここで、記号qは浮動小数点数列の各数値が圧縮された値、記号Int[x]はカッコ内の数値xの整数部が得られる関数であり、
前記圧縮工程で得られる圧縮された値を2進数列に挿入する工程とを含む。
本発明の圧縮方法は、前記圧縮された値のビット数は、前記浮動小数点数列の最大精度の関数として決定される。
本発明の圧縮方法は、前記浮動小数点数列は、ディジタルグラフィックイメージの各点の座標であり、前記圧縮された値のビット数は、前記ディジタルグラフィックイメージが表示されるディスプレイの解像度の関数として決定される。
本発明の圧縮方法は、前記浮動小数点数列の最初の数値を除く各数値を前の数値との差分の相対数に置き換える初期工程を含み、
前記圧縮工程は、前記相対数から圧縮された相対数を生成し、
前記圧縮された相対数のビット数は、前記浮動小数点数列の各数値の圧縮値のビット数より小さい。
前記圧縮工程は、前記相対数から圧縮された相対数を生成し、
前記圧縮された相対数のビット数は、前記浮動小数点数列の各数値の圧縮値のビット数より小さい。
本発明の圧縮方法は、前記圧縮された相対数のビット数は、前記相対数の最大値を使って決定される。
本発明の圧縮方法は、前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を含み、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮する。
本発明の圧縮方法は、前記浮動小数点数列は、SVGドキュメントに所属する。
前記座標は、少なくとも2つの浮動小数点数を含み、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮する。
本発明の圧縮方法は、前記浮動小数点数列は、SVGドキュメントに所属する。
本発明の伸張方法は、複数の浮動小数点数の夫々を圧縮した複数のディジタル値の2進数列を伸張する伸張方法であって、
前記複数の浮動小数点数の夫々は、最大値と最小値の間の数値であり、
次式を用いて量子化ステップ値と前記2進数列の少なくとも1つのディジタル値のビット数nbitsを決定する工程と、
前記複数の浮動小数点数の夫々を圧縮した複数のディジタル値の夫々を前記ビット数を使って読み取る工程と、
次式を用い、
読み取ったディジタル値から浮動小数点数の伸張された値vを取得するため、ディジタル値qを伸張する工程とを含む。
前記複数の浮動小数点数の夫々は、最大値と最小値の間の数値であり、
次式を用いて量子化ステップ値と前記2進数列の少なくとも1つのディジタル値のビット数nbitsを決定する工程と、
前記複数の浮動小数点数の夫々を圧縮した複数のディジタル値の夫々を前記ビット数を使って読み取る工程と、
次式を用い、
読み取ったディジタル値から浮動小数点数の伸張された値vを取得するため、ディジタル値qを伸張する工程とを含む。
本発明の伸張方法は、前記ビット数、前記最小値及び前記最大値は、前記2進数列のヘッダーに規定された識別子から決定される。
本発明の伸張方法は、前記ビット数、前記最小値及び前記最大値は、前記2進数列のヘッダーに規定される。
本発明の伸張方法は、前記2進数列の最初のディジタル値のビット数よりも、それ以外のディジタル値のビット数の方が小さく、
前記2進数列の各ディジタル値を伸張し、伸張した浮動小数点数を取得し、
今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算し、
最初の浮動小数点数は、前記2進数列の最初のディジタル値から得られる。
前記2進数列の各ディジタル値を伸張し、伸張した浮動小数点数を取得し、
今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算し、
最初の浮動小数点数は、前記2進数列の最初のディジタル値から得られる。
本発明の伸張方法は、前記相対数のビット数は、前記2進数列のヘッダーから読み取られる。
本発明の伸張方法は、前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を含み、
各浮動小数点数は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮する。
前記座標は、少なくとも2つの浮動小数点数を含み、
各浮動小数点数は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮する。
本発明の圧縮装置は、浮動小数点数列を圧縮する圧縮装置であって、
前記浮動小数点数列の最小値minと最大値maxを決定する手段と、
次式を用いて量子化ステップ値を決定する手段と、
ここで、記号nbitsは圧縮された値の少なくとも1つのビット数であり、
次式を用い、前記最小値と最大値の間に線形量子化を適用し、前記浮動小数点数列の各数値vを圧縮する手段と、
ここで、記号qは浮動小数点数列の各数値が圧縮された値、記号Int[x]はカッコ内の数値xの整数部が得られる関数であり、
前記圧縮手段で得られる圧縮された値を2進数列に挿入する手段とを含む。
前記浮動小数点数列の最小値minと最大値maxを決定する手段と、
次式を用いて量子化ステップ値を決定する手段と、
ここで、記号nbitsは圧縮された値の少なくとも1つのビット数であり、
次式を用い、前記最小値と最大値の間に線形量子化を適用し、前記浮動小数点数列の各数値vを圧縮する手段と、
ここで、記号qは浮動小数点数列の各数値が圧縮された値、記号Int[x]はカッコ内の数値xの整数部が得られる関数であり、
前記圧縮手段で得られる圧縮された値を2進数列に挿入する手段とを含む。
本発明の圧縮装置は、前記新規数列が、浮動小数点数列である。
本発明の圧縮装置は、前記浮動小数点数列の最初の数値を除く各数値を前の数値との差分の相対数に置き換える手段を含み、
前記圧縮手段は、前記相対数から圧縮された相対数を生成し、
前記圧縮された相対数のビット数は、前記浮動小数点数列の各数値の圧縮値のビット数より小さい。
前記圧縮手段は、前記相対数から圧縮された相対数を生成し、
前記圧縮された相対数のビット数は、前記浮動小数点数列の各数値の圧縮値のビット数より小さい。
本発明の伸張装置は、複数の浮動小数点数の夫々を圧縮した複数のディジタル値の2進数列を伸張する伸張装置であって、
前記複数の浮動小数点数の夫々は、最大値と最小値の間の数値であり、
次式を用いて量子化ステップ値と前記2進数列の少なくとも1つのディジタル値のビット数nbitsを決定する手段と、
前記複数の浮動小数点数の夫々を圧縮した複数のディジタル値の夫々を前記ビット数を使って読み取る手段と、
次式を用い、
読み取ったディジタル値から浮動小数点数の伸張された値vを取得するため、ディジタル値qを伸張する手段とを含む。
前記複数の浮動小数点数の夫々は、最大値と最小値の間の数値であり、
次式を用いて量子化ステップ値と前記2進数列の少なくとも1つのディジタル値のビット数nbitsを決定する手段と、
前記複数の浮動小数点数の夫々を圧縮した複数のディジタル値の夫々を前記ビット数を使って読み取る手段と、
次式を用い、
読み取ったディジタル値から浮動小数点数の伸張された値vを取得するため、ディジタル値qを伸張する手段とを含む。
本発明の伸張装置は、前記ビット数、前記最小値及び前記最大値を前記2進数列のヘッダーに規定された識別子から決定する手段を備える。
本発明の伸張装置は、前記2進数列の最初のディジタル値のビット数よりも、それ以外のディジタル値のビット数の方が小さく、
前記伸張手段は、前記2進数列の各ディジタル値を伸張し、伸張した浮動小数点数を取得し、今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算することによって各浮動小数点数を決定し、
最初の浮動小数点数は、前記2進数列の最初のディジタル値から得る。
前記伸張手段は、前記2進数列の各ディジタル値を伸張し、伸張した浮動小数点数を取得し、今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算することによって各浮動小数点数を決定し、
最初の浮動小数点数は、前記2進数列の最初のディジタル値から得る。
本発明の伸張装置は、前記相対数のビット数を前記2進数列のヘッダーから読み取る手段を備える。
以下、本発明の特徴を詳細に説明する。図1は、本発明の圧縮装置CMPを示している。この圧縮装置は、SVG言語のディジタルグラフィックドキュメントなどの浮動小数点数列を含むドキュメントを処理するようになっている。圧縮装置CMPは、ドキュメントDOC1から圧縮されたドキュメントCDOCを生成する。圧縮されたドキュメントCDOCはドキュメントDOC1よりもサイズが小さい。
図2は、圧縮装置CPMで生成された圧縮されたドキュメントCDOCを処理し、伸張されたドキュメントを出力する伸張装置DECを示している。圧縮されたドキュメントCDOC1から得られた伸張されたドキュメントDOC2は、圧縮されたドキュメントCDOCが生成される元のドキュメントDOC1と必ずしも同等でない。
図3は、圧縮されるドキュメントの一例を示している。このドキュメントは、少なくとも1つの浮動小数点数列FPSを含んでいる。この浮動小数点数列FPSは、ヘッダーSHDと複数の浮動小数点数を含んでいる。複数の浮動小数点数は、グラフィックイメージの各点の座標(X1,Y2)、(X2,Y2)、・・・(Xn,Yn)を表している。SVG言語では、各点の座標が32ビット浮動小数点フォーマットで符号化される。
図4は、本発明の圧縮方法を示している。この圧縮方法は、以下のステップを含んでいる。
S1:圧縮される浮動小数点数列を分析する。
S2:量子化ステップ値を決定する。
S3:圧縮されたドキュメントに圧縮パラメータRLを挿入する。
S4:浮動小数点数列の最初の数値を読み取る。
S5:最初の数値を圧縮する。
S6:圧縮されたドキュメントに最初の数値の圧縮値を挿入する。
S7:浮動小数点数列の次の数値を読み取る。
S8:圧縮パラメータRLを調べる。
S9:浮動小数点数列の次の数値を圧縮する。
S10:浮動小数点数列の次の数値と前回の数値との差分を圧縮する。
S11:圧縮されたドキュメントに圧縮値を挿入する。
S12:浮動小数点数列の最後の数値まで読み取られたか否かを判定する。
S13:圧縮されたドキュメントにエンドコードを挿入する。
S1:圧縮される浮動小数点数列を分析する。
S2:量子化ステップ値を決定する。
S3:圧縮されたドキュメントに圧縮パラメータRLを挿入する。
S4:浮動小数点数列の最初の数値を読み取る。
S5:最初の数値を圧縮する。
S6:圧縮されたドキュメントに最初の数値の圧縮値を挿入する。
S7:浮動小数点数列の次の数値を読み取る。
S8:圧縮パラメータRLを調べる。
S9:浮動小数点数列の次の数値を圧縮する。
S10:浮動小数点数列の次の数値と前回の数値との差分を圧縮する。
S11:圧縮されたドキュメントに圧縮値を挿入する。
S12:浮動小数点数列の最後の数値まで読み取られたか否かを判定する。
S13:圧縮されたドキュメントにエンドコードを挿入する。
ステップS1において、浮動小数点数列FPSを分析し、浮動小数点数列FPSの圧縮パラメータを決定する。最小値と最大値及び有効ビット数又は浮動小数点数列の精度を決定することがこの分析の目的である。
本実施の形態では、浮動小数点数列FPS又はドキュメントDOC1のヘッダーのパラメータから最小値と最大値が決定される。このパラメータには、例えば、浮動小数点数の最大値及び最小値と関連付けられた構成単位の定義又は浮動小数点数列の種類の情報が含まれている。
本発明の他の実施例では、最小値と最大値が浮動小数点数列FPSから決定される。
浮動小数点数の精度が低下しないように浮動小数点数の有効ビット数が選択されるので、精度を低下させないで圧縮が実行される。
代わりの実施例では、ドキュメントに基づいて浮動小数点数の有効ビット数が決定される。例えば、ドキュメントが携帯電話などの低解像ディスプレイに表示されるベクトルグラフィックイメージを含んでいる場合、解像度に応じた値が浮動小数点数の有効ビット数として選択される。例えば、解像度が320×240のディスプレイの場合、一方の次元の浮動小数点数の有効ビット数として9ビットが選択され、他方の次元の浮動小数点数の有効ビット数として8ビットが選択される。この場合の圧縮には精度が低下するので付加逆である。しかしながら、浮動小数点数がベクトルグラフィックイメージの各点の座標を表している場合、イメージの各点は、画面上での各点の座標が少し異なるが、イメージの鮮明さは低下しない。
また、ステップS1では、浮動小数点数列FPSの隣接の数値間の差分の最大値が計算される。差分の最大値は、圧縮比という意味において圧縮が効率的であるか否かが示された圧縮パラメータRLを決定するのに使用される。例えば、浮動小数点数が2次元イメージの各点の座標であり、各点が隣接の点に近い場合、より効率的な圧縮となる。
浮動小数点数がイメージの各点の座標である場合、量子化ステップ値が階数毎に決定される。例えば、X成分及びY成分に対して決定される。
ステップS3では、圧縮パラメータRLが圧縮されたドキュメントCDOCに書き込まれる。
ステップS4では、最初の浮動小数点数X1が浮動小数点数列FPSから読み取られ、ステップS5では、最初の浮動小数点数X1に最小値と最大値の間に線形量子化を適応し、量子化ステップ値qstepを用い、最初の浮動小数点数X1が圧縮される。圧縮は、圧縮される数値に式(2)を適用することである。
記号vは圧縮される浮動小数点数、記号qは浮動小数点数vの圧縮値、記号Int[x]は整数部が得られる関数である。
記号vは圧縮される浮動小数点数、記号qは浮動小数点数vの圧縮値、記号Int[x]は整数部が得られる関数である。
ステップS6では、圧縮されたドキュメントCDOCに圧縮値が書き込まれる。浮動小数点数が2次元の各点の座標を表している場合、ステップS4乃至S6で浮動小数点数列FPSの最初の2つの数値X1,Y2が読み取られ、圧縮され、圧縮されたドキュメントに挿入される。
ステップS7では、浮動小数点数列FPSから次の浮動小数点数が読み取られる。圧縮パラメータRLに基づいて相対的方法で圧縮を実行する場合には、ステップS10に進み、それ以外の場合には、ステップS9に進む。ステップS9では、ステップS7で読み取られた浮動小数点数が式(2)を用いて圧縮される。ステップS10では、ステップS7で読み取られた浮動小数点数と前回の浮動小数点数(すなわち、浮動小数点数列FPSの2番目の数値が処理されている場合には、最初の数値X1又はY1)との差分の圧縮に式(2)が適用される。ステップS10で圧縮された浮動小数点数の有効ビット数は、ステップS9で圧縮された浮動小数点数の有効ビット数より小さい。相対的圧縮でのビット数は、浮動小数点数列の分析(ステップS1)に基づいて浮動小数点数列の隣接する2つの数値の差分の関数として決定されるか、又は予め定義されているかの何れかである。
ステップS11では、圧縮値が圧縮されたドキュメントCDOCに挿入される。浮動小数点数が2次元イメージの各点の座標を表している場合には、ステップS7乃至S11で浮動小数点数列FPSの最初の2つの数値X1,Y2が読み取られ、圧縮され、圧縮されたドキュメントに挿入される。
ステップS12では、浮動小数点数列の最後の数値まで終了したか否かを決定している。浮動小数点数列の最後の数値まで終了した場合には、終了コードESCが圧縮されたドキュメントに挿入され(ステップS13)、それ以外の場合にはステップS7乃至S12が繰り返される。
図5は、ドキュメントDOC1の圧縮で得られる圧縮されたドキュメントCDOCの構造を示している。圧縮されたドキュメントは、浮動小数点数列FPSの圧縮で得られる圧縮された浮動小数点数列CSを含んでいる。圧縮された浮動小数点数列CSは、ヘッダーCSHDと浮動小数点数列の各数値X2,Y2…Xn,Ynの圧縮値CX2,CY2…CXn,CYnを有する本体CSBYとを含んでいる。
ヘッダーCSHDは圧縮パラメータを含み、その圧縮パラメータRLが下記の場合には、相対的圧縮を示している。
パラメータFPは、浮動小数点数列の最初の数値が絶対的な方法で圧縮されたことを示している。
パラメータFPは、圧縮された最初の数値CX1を示している。浮動小数点数列FPSの各数値が各点の座標である場合には、圧縮された最初の数値CX1,CY1を示している。
圧縮パラメータNDは、相対的圧縮でのビット数が初期値と違うか否かを示している。
圧縮パラメータNDは、初期値と違うビット数、すなわち、相対的圧縮でのビット数DYNを示している。
パラメータFPは、浮動小数点数列の最初の数値が絶対的な方法で圧縮されたことを示している。
パラメータFPは、圧縮された最初の数値CX1を示している。浮動小数点数列FPSの各数値が各点の座標である場合には、圧縮された最初の数値CX1,CY1を示している。
圧縮パラメータNDは、相対的圧縮でのビット数が初期値と違うか否かを示している。
圧縮パラメータNDは、初期値と違うビット数、すなわち、相対的圧縮でのビット数DYNを示している。
図6は、圧縮された浮動小数点数列FPSのヘッダーを表している。圧縮された浮動小数点数列FPSは、各点の座標と各点を結ぶ線の形状を定義するコマンドを含んでいる。この場合、ヘッダーは、図5に示されたヘッダーに加え、下記のパラメータ及びコマンドを含んでいる。
パラメータECは、浮動小数点数列が明確なコマンドを含むことを示している。
パラメータUPは、コマンドが大文字で表現されている。
コマンドCMD。
パラメータECは、浮動小数点数列が明確なコマンドを含むことを示している。
パラメータUPは、コマンドが大文字で表現されている。
コマンドCMD。
図7は、本発明の伸張方法を示している。この伸張方法は以下の工程を含んでいる。
S21:量子化ステップ値を決定する。
S22:圧縮パラメータRLを読み取る。
S23:圧縮された浮動小数点数列CSの最初の圧縮値CX1を読み取る。
S24:最初の圧縮値を伸張する。
S25:伸張されたドキュメントに伸張値を挿入する。
S26:圧縮された浮動小数点数列の次の圧縮値を読み取る。
S27:次の圧縮値が圧縮値の最後を示すエスケープコードか否かを調べる。
S28:次の圧縮値を伸張する。
S29:圧縮パラメータを調べる。
S30:次の伸張値と前回の伸張値の和を計算する。
S31:圧縮値を圧縮されたドキュメントに挿入する。
S21:量子化ステップ値を決定する。
S22:圧縮パラメータRLを読み取る。
S23:圧縮された浮動小数点数列CSの最初の圧縮値CX1を読み取る。
S24:最初の圧縮値を伸張する。
S25:伸張されたドキュメントに伸張値を挿入する。
S26:圧縮された浮動小数点数列の次の圧縮値を読み取る。
S27:次の圧縮値が圧縮値の最後を示すエスケープコードか否かを調べる。
S28:次の圧縮値を伸張する。
S29:圧縮パラメータを調べる。
S30:次の伸張値と前回の伸張値の和を計算する。
S31:圧縮値を圧縮されたドキュメントに挿入する。
ステップS21では、量子化ステップ値qstepが式(1)を用いて算出される。式(1)のビット数nbit、最大値max、最小値minは、圧縮された浮動小数点数列のヘッダーCSHDの識別子から得られる。
ステップS22では、圧縮パラメータRLが圧縮された浮動小数点数列のヘッダーCSHDから読み取られる。
ステップS23では、圧縮された浮動小数点数列から浮動小数点数の最初の数値の圧縮値CX1が読み取られる。ステップS24では、ステップS5の圧縮演算の逆の演算が適用され、最小値min及び最大値maxと量子化ステップ値qstepを用い、圧縮値CX1が伸張される。伸張は、圧縮値に、例えば、式(3)を適用することである。
伸張値は、伸張されたドキュメントDOC2の伸張された浮動小数点数列に挿入される。圧縮された浮動小数点数列の各値が各点の座標を表している場合には、ステップS23乃至S25が繰り返される。
圧縮された浮動小数点数列CSから次の圧縮値が読み取られる。次の圧縮値が浮動小数点数列の最後を示すエスケープコードである場合、圧縮された浮動小数点数列の伸張を完了し(ステップS27)。エスケープコードでない場合、ステップS28に進む。ステップS28では、ステップS24と同じ計算が適用され、ステップS26で読み取られた次の圧縮値に量子化ステップ値qstepを掛け、次の圧縮値が伸張される。ステップS29では、圧縮パラメータRLから浮動小数点数列が相対的方法で圧縮されたか否かが判定される。浮動小数点数列が相対的方法で圧縮された場合、式(4)を用いて次の圧縮値の伸張が更に続く。伸張されたドキュメントDOC2に挿入された伸張値は、ステップS28で得られた伸張値と前回の伸張で得られた伸張値との和に等しい(ステップS30)。
ここで、記号v(n)は次の伸張値、記号v(n−1)は1つ前の伸張値、記号qは圧縮された浮動小数点数列から読み取った次の圧縮値である。
ここで、記号v(n)は次の伸張値、記号v(n−1)は1つ前の伸張値、記号qは圧縮された浮動小数点数列から読み取った次の圧縮値である。
圧縮された浮動小数点数列の各数値に対して伸張プロセスのステップS25乃至S30が繰り返される。圧縮された浮動小数点数列の各数値が各点の座標を表している場合、座標毎にステップS25,S26,S28,S30が繰り返される。
伸張プロセスは、次のような構文で定義される。この構文には、ビットストリーム又は圧縮された浮動小数点数列から読み取られたデータ項目の夫々はボールド体で現れ、その名称とビット長で記述される。また、データのタイプと転送順序の簡略記号で記述される。ビットストリームから伸張されるデータ項目で始動される動作は、各項目の値とそれ以前に読み取られ伸張されたデータ項目に依存している。
この条件が真の場合、ビットストリームにデータの項目のグループが発生し、この条件が偽になるまで続ける。この構文は、変数又は数式が真の条件に一致している状態と、変数又は数式が偽の条件に一致している状態に従うCコードの慣例を使用する。
この条件が真の場合、ビットストリームにデータの項目のグループが発生し、この条件が偽になるまで続ける。この構文は、変数又は数式が真の条件に一致している状態と、変数又は数式が偽の条件に一致している状態に従うCコードの慣例を使用する。
次の構造では、データ項目のグループが(n−m)回発生する。条件構造は、データ項目の範囲内で、ループ制御変数iの値に依存し、最初の発生でmに設定され、2回目の発生で1だけ増やされ、そして更に続けられる。
この構文テーブルは、datatypeというパラメータparameter_nameを受け取る関数を説明している。パラメータparameter_nameは、この構文内で使用され、他の関数、例えば、上述の関数OtherFunctionに渡すことができる。
構文テーブル2は、圧縮された浮動小数点数列の伸張関数の構文テーブルである。この関数は、パラメータcodecを受け取る。このパラメータcodecは、圧縮された浮動小数点数列の圧縮値のビット数、最小値、最大値を定義するnbits, min, maxを含む複雑なデータである。この関数は、他の関数decodeListOfCoodinatesHeaderを呼び出し、次に、ブール変数escapeを初期化し、下記の命令を実行するループに入る。最初の命令で、圧縮された浮動小数点数列を読み出し、伸張する関数decodeNumberを呼び出す。この関数は、2つのパラメータcodecと整数を受け取り、変数escapeとして記憶されるブール値を返す。次の命令では、圧縮された浮動小数点数列の各数値が2次元上の点の座標なのか否かが調べられる。次元の数は、変数codecのnbDimに格納されている。次の命令は、圧縮された浮動小数点数列の各数値が点の座標であるとき、圧縮された浮動小数点数列の各数値が2次元上の点の座標であるとき、関数decodeNumberを呼び出す。
関数decodeListOfCoodinatesHeaderの最初の命令は、ビット長が1ビットで変数codecのフィールドrelativeに格納された圧縮パラメータRLを読み取ることである。この圧縮パラメータRLが1のとき、変数startPointが1に設定される。フィールドcontextualが真に設定されるとき、1ビットで符号化された圧縮パラメータSPが圧縮された浮動小数点数列から読み取られ、変数startPointとして格納される。変数startPointが1のとき、圧縮された浮動小数点数列の最初の数値を読み取る関数decodeが呼び出される。この関数decodeは、変数codecのフィールドにあり、量子化ステップ値qstepを含んでいる入力パラメータcodec.quantizerUsedとして受け取る。関数decodeは、圧縮された浮動小数点数列の次の数値を読み取り、伸張し、変数codecのフィールドv(1)に格納される伸張値を返す。各伸張値が、平面(次元の数codec.nbDim = 2)上の点の座標を表しているとき、関数codecは、再度、呼び出され、圧縮された浮動小数点数列のY座標の最初の数値が読み取られ、伸張される。伸張された値は、変数codecのフィールドv(2)に格納される。次いで、変数newDynamicが1に初期化される。次の命令は、変数codecのフィールドcontextualの値を調べることである。フィールドcontextualが真であるとき、1ビットで符号化された圧縮パラメータNDは、圧縮された浮動小数点数列CSから読み取られ、変数newDynamicに格納される。次いで、変数newDynamicの値が1と比べられ、1に等しいとき、圧縮パラメータDYNの5ビットが読み取られ、変数codecのフィールドdynamicに格納される。関数decodeListOfCoodinatesHeaderの最後の命令は、その関数の出力である変数startPointの値を特定することである。
関数decodeNumberは、複素変数codecとindexという変数を入力パラメータとして受け取る。この関数は、最初に、フィールドcodec.relativeに格納された圧縮パラメータを分析する。圧縮パラメータが、相対的方法で圧縮が実行されていないことを示している場合、数列CSの次の値を読み、伸張する関数decodeが呼び出される。伸張値が変数numに格納され、その変数numが変数codecのフィールドcodec.quantizerUser.escapeCodeに格納されたエスケープ符号と比較される。このエスケープ符号は、圧縮された浮動小数点数列の最後を示す符号ESCである。圧縮された浮動小数点数列から読んだ値がエスケープ符号ESCであるとき、関数decodeNumberを終え、ブール値を戻す。次に、最後に伸張値を変数codecのフィールドv(index)に格納する。圧縮が相対的方法で実行された場合には、次の命令が実行される。最初の命令は、変数codec及び変数offsetのフィールドdynamicをパラメータとして受け取る関数readOffsetを呼び出す。関数readOffsetは、浮動小数点数列の最後であることを示すブール値を戻す。関数readOffsetによって読み取られた値は、変数offsetに戻される。次の命令で、変数offsetに変数codecのフィールドquantizerUser.stepに格納された量子化ステップ値qstepを掛け、変数codec.v(indec)に加算される。
この関数は、圧縮された浮動小数点数列CSから読み取られるビット数を示す変数dynamicityと読み取られる数値の格納先である変数ポインタvalueを入力パラメータとして受け取り、ブール値を返す。この関数の最初の命令は、圧縮された浮動小数点数列CSから、数値が負の数であるか否かを示すビットを読み取り、このビットが変数negativeに格納される。次いで、この関数は、変数dynamicityと同じ数のビット数で、圧縮された浮動小数点数列の圧縮値を読み取り、変数valueに格納される。変数negativeが調べられ、負の数である場合には、変数valueが負の数に設定される。この関数の次の命令は、読み取った値が圧縮された浮動小数点数列の最後に達しているか否かを示すエスケープコード(“-0”として符号化)であるか否かを調べる。この情報がブール値として返される。
この関数は、浮動小数点数を圧縮するために使用される最小値minと量子化ステップ値qstepを含む複素変数quantizerを入力パラメータとして受け取る。この関数は、式(3)を適用し、浮動小数点フォーマットで圧縮の結果を返す。
この関数の最初の命令は、変数variableに偽を設定し、変数firstCoordinateに真を設定する。この関数はループを含んでいる。出力条件としての変数escapeの値を有している。このループの最初の命令は、圧縮された浮動小数点数列から、圧縮パラメータEC(図6参照)を読み取り、変数explicitCommandに格納する。次いで、変数explicitCommandが調べられる。この値が1つなら、1ビットの圧縮パラメータUPと4ビットのCMDが圧縮された浮動小数点数列から読み取られ、変数uppercase及び変数commandに格納される。以下の命令はループに対応している。このループは、表に定義されたパラメータcommand.nbFollowで定義される回数だけ繰り返される。実際、変数command.nbFollowがコマンドcommandに従う点の数を示している。ループの最初の命令は、変数firstCoodinateを調べることであり、変数firstCoodinateが真ならば、関数decodeListOfCoodinatesHeaderを呼び出し、整数startPointを返す。次の命令は、変数startPointを調べることである。この値がゼロなら、関数decodeNumberを呼び出し、最初の位置の座標を読み出し、伸張する。次いで、変数firstCoodinateが偽に設定される。関数decodeListOfCoodinatesHeaderを呼び出した後の変数firstCoodinateが偽ならば、次の点の座標を読み取り、また、関数decodeNumberを呼び出して伸張する。ループの最後に、命令commandとエスケープコードを比較し、命令commandとエスケープコードが等しいとき、ループを終了するため、変数escapeが真に設定される。言い換えると、関数decadePathは、命令がエスケープコードになるまで、圧縮された浮動小数点数列から、コマンドとコマンドに従属する複数の点の座標を読み取る。
この構文は、関数codec_pathと関数codec_pointSequenceを定義する。関数code_pathは、最初に、関数code_pointSequenceを呼び出し、圧縮された浮動小数点数列から5ビットの整数を読み取り、その値を変数nbOfTypesに格納する。次の命令は、変数nbOfTypesで繰り返されるループ内に入る。このループは、圧縮された浮動小数点数列から5ビットの符号無しの整数を読み取り、その値を変数typeに格納する命令を含んでいる。言い換えると、関数codec_pathは、関数codec_pointSequenceを呼び出し、変数nbOfTypesを読み取り、テーブルtypeに変数nbOfTypesを格納する。
関数codec_pointSequenceは、圧縮された浮動小数点数列から、5ビットの変数nbPointsの整数と1ビットのflagを読み取る。変数flagがゼロでないとき、関数codec_pointSequenceは動作しない。また、変数nbPointsが3と比較され、変数nbPointsが3より小さいとき、浮動小数点数列の5ビットの整数を読み取り、その整数を変数bitsに格納する。次の命令は、圧縮された浮動小数点数列から、変数nbPointと同じ数の座標x及びYを読み取り、テーブルx及びYに格納する。圧縮された浮動小数点数列の各座標は、変数bitsと同じビット数の整数である。変数nbPoints3よりも大きいか又は同じとき、5ビットの整数が読み取られ、変数bitsに格納される。最初の位置のx座標及びY座標が浮動小数点数列から読み取られ、テーブルx及びテーブルYに格納される。5ビットの2つの整数が圧縮された浮動小数点数列から読み取られ、変数bitsx及び変数bitsyに格納される。次の命令は、浮動小数点数列の変数dx及び変数dyの整数値nbPointsを読み取る。この変数dx及び変数dyは、変数bitsx及び変数bitsyのビット数と同じである。実際には、変数dx及び変数dyが各点の相対座標を表している。次の命令は、座標の絶対値を算出し、テーブルx及びテーブルYに格納することである。
実際には、関数codec_pointSequenceが次のように設定される。浮動小数点数列の点の数が3より小さい場合、点の座標を絶対的方法で圧縮し、点の数が3以上の場合、点の座標を相対的方法で圧縮する。更に、escape codeを使う代わりに、浮動小数点数列の点の数を圧縮された浮動小数点数列に書き込む。相対的方法で圧縮が実行されるとき、x座標のビット数bitsxとy座標のbitsy数の差が圧縮された浮動小数点数列に書き込まれ、x座標のテーブルとy座標のテーブルに格納された各座標の圧縮値を式(3)を使って伸張する。
従来のZlibのような圧縮アルゴリズムでは、圧縮率が21%以上であるのに対し、本発明の圧縮方法では、圧縮率を元のドキュメントのサイズの4%以下にすることができる。
上述の実施例から、本発明の方法が、実施例の変形や多様な応用が可能であることは当業者なら明らかなことである。他の量子化計算を適応し、他の数式で量子化ステップ及び圧縮値を計算することもできる。
Claims (36)
- 浮動小数点数列を圧縮する圧縮方法であって、
前記浮動小数点数列の最小値と最大値を決定する工程と、
前記最大値と最小値の関数として量子化ステップ値を決定する工程と、
前記量子化ステップ値を用い、前記浮動小数点数列に前記最大値と最小値の間で線形量子化を適用し、前記浮動小数点数列の各数値を圧縮する工程と、
前記圧縮工程で得られる各圧縮値を2進数列に挿入する工程とを含むことを特徴とする圧縮方法。 - 前記圧縮値のビット数が前記浮動小数点数列の最大精度の関数として決定されることを特徴とする請求項3に記載の圧縮方法。
- 前記浮動小数点数列はディジタルグラフィックイメージの各点の座標であり、前記圧縮値のビット数は前記ディジタルグラフィックイメージが表示されるディスプレイの解像度の関数として決定されることを特徴とする請求項3に記載の圧縮方法。
- 前記浮動小数点数列を新規の数列に置き換える初期工程を含み、
前記新規の数列は、前記浮動小数点数列の最初の数値と複数の相対数とを含み、
前記複数の相対数は、前記浮動小数点数列の各数値とそれ以前の数値との差分からなり、
前記複数の相対数は、前記量子化ステップ値を用いて圧縮され、
圧縮された相対数のビット数は、前記浮動小数点数列の各数値の圧縮値のビット数より小さいことを特徴とする請求項1から請求項5までの何れかに記載の圧縮方法。 - 前記圧縮された相対数のビット数は、前記相対数の最大値を使って決定されることを特徴とする請求項6に記載の圧縮方法。
- 前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を含み、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮することを特徴とする請求項1から請求項7までの何れかに記載の圧縮方法。 - 前記浮動小数点数列は、SVGドキュメントに所属していることを特徴とする請求項1から請求項8までの何れかに記載の圧縮方法。
- 浮動小数点数列の各数値の圧縮値の2進数列を伸張する伸張方法であって、
前記浮動小数点数列は、最大値と最小値を含み、
量子化ステップ値及び前記2進数列の少なくとも1つの圧縮値のビット数を決定する工程と、
前記ビット数を使って前記2進数列から前記浮動小数点数列の各数値の圧縮値を読み取る工程と、
前記量子化ステップ値と前記最小値又は最大値を使って前記浮動小数点数列の各数値の圧縮値を伸張する工程を含むことを特徴とする伸張方法。 - 前記ビット数、前記最小値及び前記最大値が前記2進数列のヘッダーの識別子から決定されることを特徴とする請求項12に記載の伸張方法。
- 前記圧縮値のビット数と前記浮動小数点数列の最小値及び最大値は、前記2進数列のヘッダーで規定されることを特徴とする請求項12に記載の伸張方法。
- 前記2進数列の最初の圧縮値のビット数よりも、それ以外の圧縮値のビット数の方が小さく、
前記2進数列の各圧縮値を伸張し、伸張した浮動小数点数を取得し、
今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算し、
1つめの浮動小数点数は、前記2進数列の最初の圧縮値から得られることを特徴とする請求項10から請求項14までの何れかに記載の伸張方法。 - 前記圧縮された相対数のビット数は、前記相対数の最大値を使って決定されることを特徴とする請求項15に記載の伸張方法。
- 前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を含み、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮することを特徴とする請求項10から請求項16までの何れかに記載の伸張方法。 - 前記浮動小数点数列は、SVGドキュメントに所属していることを特徴とする請求項10から請求項17までの何れかに記載の伸張方法。
- 浮動小数点数列を圧縮する圧縮装置であって、
前記浮動小数点数列の最小値と最大値を決定する手段と、
前記最大値と最小値から量子化ステップ値を決定する手段と、
前記量子化ステップ値を用い、前記浮動小数点数列に前記最大値と最小値の間で線形量子化を適用し、前記浮動小数点数列を数値毎に圧縮する手段と、
前記量子化ステップ値を用いて得られた前記浮動小数点数列の各数値の圧縮値を2進数列に挿入する手段とを備えることを特徴とする圧縮装置。 - 前記圧縮値のビット数が前記浮動小数点数列の最大精度の関数として決定されることを特徴とする請求項21に記載の圧縮装置。
- 前記浮動小数点数列はディジタルグラフィックイメージの各点の座標であり、前記圧縮値のビット数は前記ディジタルグラフィックイメージが表示されるディスプレイの解像度の関数として決定されることを特徴とする請求項21に記載の圧縮装置。
- 前記浮動小数点数列を新規の数列に置き換える手段を備え、
前記新規の数列は、複数の相対数からなる第1の浮動小数点数列を含み、
前記相対数は、元の数列の現在の浮動小数点数とそれ以前の浮動小数点数との差分からなり、
前記圧縮手段は、前記量子化ステップ値を用いて前記相対数を圧縮し、
圧縮された相対数のビット数は、前記第1の浮動小数点数列の各数値の圧縮値のビット数より小さいことを特徴とする請求項19から請求項23までの何れかに記載の圧縮装置。 - 前記圧縮された相対数のビット数は、前記相対数の最大値を使って決定されることを特徴とする請求項24に記載の圧縮装置。
- 前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を備え、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に圧縮することを特徴とする請求項19から請求項25までの何れかに記載の圧縮装置。 - 前記浮動小数点数列は、SVGドキュメントに所属していることを特徴とする請求項19から請求項26までの何れかに記載の圧縮装置。
- 浮動小数点数列の圧縮値が示された2進数列を伸張する伸張装置であって、
前記浮動小数点数列は、最大値と最小値を備え、
量子化ステップ値及び前記2進数列の少なくとも1つの圧縮値のビット数を決定する手段と、
前記ビット数を使って前記2進数列から前記浮動小数点数列の各数値の圧縮値を読み取る手段と、
前記量子化ステップ値と前記最小値又は最大値を使って前記浮動小数点数列の各数値の圧縮値を伸張する手段とを備えることを特徴とする伸張装置。 - 前記ビット数、前記最小値及び前記最大値が前記2進数列のヘッダーの識別子から決定する手段を備えることを特徴とする請求項30に記載の伸張装置。
- 前記圧縮値のビット数と前記浮動小数点数列の最小値及び最大値は、前記2進数列のヘッダーで規定されることを特徴とする請求項30に記載の伸張装置。
- 前記2進数列の最初の圧縮値のビット数よりも、それ以外の圧縮値のビット数の方が小さく、
前記伸張手段は、前記2進数列の各圧縮値を伸張し、伸張した浮動小数点数を取得し、
今回伸張した浮動小数点数を前回伸張した浮動小数点数に加算することによって各浮動小数点数を決定し、
1つめの浮動小数点数は、前記2進数列の最初の圧縮値からなることを特徴とする請求項28から請求項32までの何れかに記載の伸張装置。 - 前記圧縮された相対数のビット数は、前記相対数を読み取る手段を備えることを特徴とする請求項32に記載の伸張装置。
- 前記浮動小数点数列は、複数の点の座標であり、
前記座標は、少なくとも2つの浮動小数点数を備え、
前記座標は、階数を有し、
前記浮動小数点数列の各数値を階数別に伸張することを特徴とする請求項28から請求項34までの何れかに記載の伸張装置。 - 前記浮動小数点数列は、SVGドキュメントに所属していることを特徴とする請求項28から請求項35までの何れかに記載の伸張装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US60889804P | 2004-09-13 | 2004-09-13 | |
PCT/IB2005/002723 WO2006030288A2 (en) | 2004-09-13 | 2005-09-13 | Method for compressing and decompressing a sequence of floating point numbers |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008512917A true JP2008512917A (ja) | 2008-04-24 |
Family
ID=35562216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007530792A Pending JP2008512917A (ja) | 2004-09-13 | 2005-09-13 | 浮動小数点数列を圧縮及び伸張する方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20070208792A1 (ja) |
EP (1) | EP1790080A2 (ja) |
JP (1) | JP2008512917A (ja) |
KR (1) | KR20070083652A (ja) |
CN (1) | CN101019325A (ja) |
CA (1) | CA2580146A1 (ja) |
WO (1) | WO2006030288A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070178B2 (en) | 2006-08-11 | 2015-06-30 | Siemens Product Lifecycle Management Software Inc. | Method and system for organizing topology elements for better compression |
EP2050078A2 (en) * | 2006-08-11 | 2009-04-22 | Siemens Product Lifecycle Management Software Inc. | Method and system for organizing topology elements for better compression |
US8156088B2 (en) * | 2007-09-20 | 2012-04-10 | Canon Kabushiki Kaisha | Document encoding apparatus, document encoding method, and computer-readable storage medium |
EP2264904B9 (en) * | 2009-06-16 | 2013-08-21 | Canon Kabushiki Kaisha | Methods and device of binary coding and decoding for structured document comprising a plurality of data |
EP2278550B1 (en) * | 2009-06-17 | 2013-08-14 | Canon Kabushiki Kaisha | Method of encoding and decoding a graphics path sequence into a layered scheme |
CN101795138B (zh) * | 2010-01-19 | 2013-01-16 | 北京四方继保自动化股份有限公司 | 电力系统广域测量系统高密度时间序列数据的压缩处理方法 |
SG189549A1 (en) * | 2010-11-02 | 2013-06-28 | I Ces Innovative Compression Engineering Solutions | Method for compressing digital values of image, audio and/or video files |
US8959129B2 (en) | 2011-06-30 | 2015-02-17 | Altera Corporation | Compression of floating-point data |
EP2798480B1 (en) * | 2011-12-30 | 2018-09-26 | Intel Corporation | Vector frequency compress instruction |
US9104473B2 (en) | 2012-03-30 | 2015-08-11 | Altera Corporation | Conversion and compression of floating-point and integer data |
CN103853855A (zh) * | 2012-11-29 | 2014-06-11 | 北京华大九天软件有限公司 | 一种电路仿真模拟同步波形压缩格式 |
CN103729864A (zh) * | 2013-12-18 | 2014-04-16 | 珠海金山网络游戏科技有限公司 | 一种三维模型的压缩存储方法及系统 |
US9450602B2 (en) | 2014-01-02 | 2016-09-20 | Sap Se | Efficiently query compressed time-series data in a database |
CN105680868B (zh) | 2014-11-17 | 2019-04-12 | 华为技术有限公司 | 压缩流数据的方法及设备 |
CN108628807B (zh) * | 2017-03-20 | 2022-11-25 | 北京百度网讯科技有限公司 | 浮点数矩阵的处理方法、装置、设备及计算机可读存储介质 |
CN110771045B (zh) * | 2017-06-22 | 2024-03-29 | 日本电信电话株式会社 | 编码装置、解码装置、编码方法、解码方法、以及记录介质 |
US11436011B2 (en) | 2020-02-18 | 2022-09-06 | Samsung Electronics Co., Ltd. | Processing method and processing device with matrix multiplication computation |
TWI785546B (zh) | 2021-03-23 | 2022-12-01 | 創鑫智慧股份有限公司 | 浮點數的編碼與解碼的方法與裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1032838A (ja) * | 1996-07-17 | 1998-02-03 | Sony Corp | 画像符号化装置および画像符号化方法、画像復号化装置、並びに記録媒体 |
JP2002501650A (ja) * | 1998-01-30 | 2002-01-15 | ユニバーシティー オブ サザン カリフォルニア | 3次元メッシュの圧縮および符号化 |
JP2002158589A (ja) * | 2000-09-11 | 2002-05-31 | Matsushita Electric Ind Co Ltd | 符号化装置および復号化装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1251555A (en) * | 1984-12-19 | 1989-03-21 | Tetsujiro Kondo | High efficiency technique for coding a digital video signal |
JPH0474063A (ja) * | 1990-07-13 | 1992-03-09 | Matsushita Electric Ind Co Ltd | 画像の符号化方法 |
US6253222B1 (en) * | 1998-10-31 | 2001-06-26 | Hewlett-Packard Company | Compression of limited range floating point numbers |
US6154761A (en) * | 1999-02-12 | 2000-11-28 | Sony Corporation | Classified adaptive multiple processing system |
US6396420B1 (en) * | 1999-02-26 | 2002-05-28 | Autodesk, Inc. | Delta compression of floating point coordinate data |
US7432925B2 (en) * | 2003-11-21 | 2008-10-07 | International Business Machines Corporation | Techniques for representing 3D scenes using fixed point data |
-
2005
- 2005-09-13 CN CNA2005800305189A patent/CN101019325A/zh active Pending
- 2005-09-13 JP JP2007530792A patent/JP2008512917A/ja active Pending
- 2005-09-13 WO PCT/IB2005/002723 patent/WO2006030288A2/en active Application Filing
- 2005-09-13 EP EP05783375A patent/EP1790080A2/en not_active Withdrawn
- 2005-09-13 CA CA002580146A patent/CA2580146A1/en not_active Abandoned
- 2005-09-13 KR KR1020077008187A patent/KR20070083652A/ko not_active Application Discontinuation
-
2007
- 2007-03-13 US US11/685,467 patent/US20070208792A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1032838A (ja) * | 1996-07-17 | 1998-02-03 | Sony Corp | 画像符号化装置および画像符号化方法、画像復号化装置、並びに記録媒体 |
JP2002501650A (ja) * | 1998-01-30 | 2002-01-15 | ユニバーシティー オブ サザン カリフォルニア | 3次元メッシュの圧縮および符号化 |
JP2002158589A (ja) * | 2000-09-11 | 2002-05-31 | Matsushita Electric Ind Co Ltd | 符号化装置および復号化装置 |
Also Published As
Publication number | Publication date |
---|---|
CA2580146A1 (en) | 2006-03-23 |
CN101019325A (zh) | 2007-08-15 |
US20070208792A1 (en) | 2007-09-06 |
WO2006030288A2 (en) | 2006-03-23 |
WO2006030288A3 (en) | 2006-07-06 |
EP1790080A2 (en) | 2007-05-30 |
KR20070083652A (ko) | 2007-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008512917A (ja) | 浮動小数点数列を圧縮及び伸張する方法 | |
US8930924B2 (en) | Method of encoding and decoding a graphics path sequence into a layered scheme | |
US7129862B1 (en) | Decoding bit streams encoded according to variable length codes | |
KR20080049019A (ko) | 구조 문서를 압축하고 해제하는 방법 및 장치 | |
CN111510718B (zh) | 通过图像文件的块间差异提高压缩率的方法及系统 | |
CN101751440A (zh) | 一种数据压缩/解压缩方法及其装置 | |
EP0810552B1 (en) | Image display device | |
US10282889B2 (en) | Vertex attribute compression and decompression in hardware | |
CN110493242B (zh) | 基于WGAN-GP和U-net改进的图像增强的方法、装置及存储介质 | |
CN111510716A (zh) | 通过图像文件的像素变换提高压缩率的方法和系统 | |
JPH11288457A (ja) | 画像情報処理装置及び方法、並びにエンタテインメント装置 | |
US9054730B2 (en) | Method and system for LZW based decompression | |
JPWO2014024255A1 (ja) | 端末および動画再生プログラム | |
JP2882404B1 (ja) | 手書き符号処理装置 | |
JP2004511139A (ja) | データの復号 | |
JPH06217110A (ja) | 画像変換方法 | |
JPS62195979A (ja) | フアクシミリ符号変換装置 | |
KR100647957B1 (ko) | 사전 기반 압축 방법을 이용한 연속된 이미지 압축 및복원 방법 | |
KR0153620B1 (ko) | 텔레라이팅장치의 스트로크데이타 압축방법 | |
JP2845098B2 (ja) | 多値画像圧縮符号の復号方法および装置 | |
WO2019191904A1 (zh) | 一种数据处理方法及装置 | |
JPH09261645A (ja) | 画像データ伸長装置 | |
CN115100566A (zh) | 视频目标分割方法、装置、服务器及存储介质 | |
CN115767096A (zh) | 图像压缩方法、装置、设备及介质 | |
JP2002149710A (ja) | ベクトルデータ圧縮方法及びベクトルデータ解凍方法並びにこれらの方法を実現するためのプログラムの記録された記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110719 |