JP2012506665A - データ記録を圧縮し復元する方法及び装置 - Google Patents

データ記録を圧縮し復元する方法及び装置 Download PDF

Info

Publication number
JP2012506665A
JP2012506665A JP2011533152A JP2011533152A JP2012506665A JP 2012506665 A JP2012506665 A JP 2012506665A JP 2011533152 A JP2011533152 A JP 2011533152A JP 2011533152 A JP2011533152 A JP 2011533152A JP 2012506665 A JP2012506665 A JP 2012506665A
Authority
JP
Japan
Prior art keywords
record
data
data record
processor
nibbles
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
Application number
JP2011533152A
Other languages
English (en)
Inventor
ポール ジェイ. ヘイズ,
Original Assignee
マイクロ モーション インコーポレイテッド
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 マイクロ モーション インコーポレイテッド filed Critical マイクロ モーション インコーポレイテッド
Publication of JP2012506665A publication Critical patent/JP2012506665A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】
【解決手段】本発明の実施例に従って、データ圧縮方法が提供される。該データ圧縮方法は、第1のデータ記録と少なくとも第2のデータ記録を受信する工程を有する。第2のデータ記録は、第1のデータ記録と第2のデータ記録の差として圧縮される。
【選択図】 図2

Description

本発明は、データ格納システム、特にデータ格納システム内のデータ記録を圧縮し且つ復元する方法に関する。
デジタル処理技術は、入力データを内部又は外部メモリ内にしばしば格納する。データは例えば、デジタルビットの形式であり得る。データ格納の費用は、より正確にデータを測定する需要が増加すると、それとともに増加する。従って、後日データを検索する能力を弱体化させること無く、データ格納の必要性を減じることができるあらゆる技術が、処理システムの関連コストを実質的に減じることができる。
データ格納の必要性を減じる1つの方法は、格納の前にデータを圧縮することである。データを圧縮する広く受け入れられた2つの方法があり、それは即ち不可逆圧縮及び可逆圧縮である。不可逆圧縮は、データ圧縮方法であって、データの圧縮及び復元は、圧縮又は復元時に幾つかの情報を無くすが、元の記録に十分に略近似して有用である。この方法はオーディオ、ビデオ及び静止画のようなマルチメディアファイルの圧縮に最も頻繁に用いられる、何故なら人間の目又は耳は元のデータと圧縮データの差を一般に認識できないからである。反対に、可逆圧縮によって、圧縮されたファイルから正確な元のデータが再構成され得る。可逆圧縮が用いられ得る一般的な例は、ソースコード及び実行可能なプログラムである。何の情報が重要かが不明であり、従って元のファイルの如何なる情報も廃棄することが推奨されない他の例も存在する。
圧縮に一般に存在する代償の1つは、データを圧縮し復元するのに要求される極度のCPU時間である。従って、あらゆる圧縮ルーチンにおいて、圧縮量はそのような圧縮を実行するのに必要なCPU時間によって相殺されなければならない。
2つの連続した記録が互いに比較される連続又は半連続したデータ流れを圧縮する従来からの方法が存在する。一般的に、互いに同一である記録部分は圧縮され、その一方、互いに同一でない記録部分は非圧縮形式で格納される。この方法は、記録の多くのパーセンテージが繰り返しデータを含む多くの適用例において有用である。しかし、このアプローチはデータの多くのパーセンテージが非圧縮に残り、これにより、不要な格納空間を必要とする点で弱点がある(suffer)。非圧縮データのパーセンテージは、連続した記録が連続して変化する、例えば入ってくる測定結果が所定点の周りで振動する状況にて著しく増加する。この例において、全体の測定結果は、記録のグループ間で著しく異ならないが、連続した記録が連続して変化する状態で、必要なメモリの量は著しくは減らない。
或るタイプのデータは、連続した記録が少量だけ変化する情報を含む。例えば、流量計の送信器から受信される入力データは、1つの測定結果から次の測定結果に比較的少量だけ変化するだけである。従って、本発明は略全体の記録が圧縮され、圧縮された記録と第2の記録との差として格納される、データを圧縮し復元する方法を提供する。
態様
本発明の態様によれば、データを格納する方法は、
第1のデータ記録と少なくとも1つの第2のデータ記録を受信する工程と、
第1のデータ記録と第2のデータ記録とを比較する工程と、
第2のデータ記録を、第1のデータ記録と第2のデータ記録の差として圧縮する工程を含む。
データを格納する方法は更に、圧縮工程の前に、第2のデータ記録の最小の重要なデジット(桁)を切り捨てる工程を有するのが好ましい。
データを格納する方法は更に、正又は負を示すデジットを、第1のデータ記録又は少なくとも第2のデータ記録の開始部分からデータ記録の終点部に移動させる工程を含むのが好ましい。
第2のデータ記録を圧縮する工程は、ヘッダニブル及び1又は2以上のデータニブルを用いて第2のデータ記録を圧縮する工程を有するのが好ましい。
ヘッダニブルは、その後に続くデータニブルの数を表すのが好ましい。
ヘッダニブルは、第2のデータ記録が、第1のデータ記録より大きいか、第1のデータ記録より小さいか、或いは第1のデータ記録に等しいかを表すのが好ましい。
1又は2以上のデータニブルは、第1のデータ記録と第2のデータ記録の差を含むのが好ましい。
データを格納する方法は更に、
第1のデータ記録と第2のデータ記録の差が所定数のニブルによって表されないときは、第2のデータ記録を非圧縮状態で格納する工程を含むのが好ましい。
データを格納する方法は更に、
第1のデータ記録をベースライン記録として設定する工程と、
続いて受信したデータ記録を、ベースライン記録と比較する工程を含むのが好ましい。
データを格納する方法は更に、圧縮された記録をメモリに書き込む工程を含むのが好ましい。
本発明の他の態様によれば、処理システムは、
メモリと、
第1のデータ記録と第2のデータ記録を受信し、第1のデータ記録を第2のデータ記録と比較し、第2のデータ記録をメモリ内にて、第1のデータ記録と第2のデータ記録の差として圧縮するように構成されたプロセッサを備える。
プロセッサは更に、第2のデータ記録の最小の重要なデジットを切り捨てるように構成されているのが好ましい。
プロセッサは更に、正又は負を示すデジットを、第1のデータ記録又は第2のデータ記録の開始部分からデータ記録の終点部に移動させるように構成されているのが好ましい。
プロセッサは更に、第2のデータ記録をヘッダニブル及び1又は2以上のデータニブルを用いて第2のデータ記録を表すように構成されているのが好ましい。
ヘッダニブルは、圧縮された記録内のデータニブルの数を表すのが好ましい。
ヘッダニブルは、第2のデータ記録が、第1のデータ記録より大きいか、第1のデータ記録より小さいか、或いは第1のデータ記録に等しいかを表すのが好ましい。
1又は2以上のヘッダニブルは、第1のデータ記録と第2のデータ記録の差を含むのが好ましい。
プロセッサは更に、第1のデータ記録と第2のデータ記録の差が所定数のニブルによって表されないときは、第2のデータ記録を非圧縮状態で格納するように構成されているのが好ましい。
プロセッサは更に、第1のデータ記録をベースライン記録として設定し、続いて受信したデータ記録を、ベースライン記録と比較するように構成されているのが好ましい。
図1は、本発明の実施例による処理システムを示す。 図2は、本発明の実施例による圧縮アルゴリズムを示す。 図3は、本発明の他の実施例による圧縮アルゴリズムを示す。
図1―図3及び以下の記載は、特定の例を記載し、当該技術分野の専門家に対して本発明のベストモードを如何にして作り、用いるかを開示している。発明の原理を開示する目的から、幾つかの従来の態様は簡略化され又は省略される。当該技術分野の専門家は、本発明の範囲内に含まれる、これらの例から変形例を理解するだろう。当該技術分野の専門家は、以下に記載された特徴は種々の方法で組み合わされ得て、本発明の多数の変形例を形成することが判るだろう。その結果、本発明は以下に記載された特定例に限定されず、請求の範囲及びその均等物によって限定される。
図1は、本発明の実施例に従った処理システム100を示す。処理システム100は、プロセッサ101とメモリ102を備える。処理システム100は、汎用のコンピュータ、マイクロプロセッサシステム、論理回路、デジタル信号プロセッサ、又は幾つかの汎用又は特注の処理デバイスを含み得る。処理システム100は、多数の処理デバイスに分散され得る。処理システム100は、メモリ102のような、あらゆる方法の一体化された又は個々の電子的格納媒体を含み得る。送信器104がバスループ103によって処理システム100に接続されている。送信器104は、例えばコリオリ流量計を含む振動型流量計のような流れ測定デバイスを含むあらゆる数のデバイスに接続されるが、該デバイスは流れ測定デバイスに限定されない。送信器104は、処理システム100に情報を送るように構成され得る。情報は例えば流れ測定結果を含む。しかし、送信器によって送信される情報は、送信器の他端部に接続された特定のデバイス(図示せず)に依ることが判るだろう。従って、本発明は、流体流れ情報からなるデータに限定されるべきではない。
本発明の実施例によれば、データプロセッサ100は送信器104から入力されるデータビットを受信でき、メモリ102に該データを送信する前に、入力されるデータビットを圧縮することができる。プロセッサ101は現在のデータ記録と以前のデータ記録の間の差に基づいて、現在のデータ記録を圧縮する。以前のデータ記録と同じであるデータ記録の一部を圧縮するのみで、以前のデータ記録とは異なるデータ記録部分は圧縮しない従来技術の方法と異なり、本発明は略全てのデータ記録を圧縮することができる。本発明の実施例によれば、圧縮されたデータ記録は、現在の記録と第2の記録間の差として書き込まれる。本発明の他の実施例によれば、圧縮されたデータ記録は、以前の記録と現在の記録の間の差として書き込まれる。尚、本発明の他の実施例によれば、圧縮されたデータ記録は、現在の記録とベースラインの記録の間の差として書き込まれる。
本発明の実施例によれば、プロセッサ101によって受信されたデータは、デジタルビット流れを含む。データはデジタルビット流れを構成する必要は無いことは理解されるべきである。従って、プロセッサ101によって受信されるデータの特定の形式は、本発明の範囲を限定するべきではない。しかし、デジタルビット流れは、以下に記載するように、ニブル(4ビット)又はバイト(8ビット)のような明白に同一のグループに容易に分割される。
本発明の実施例によれば、プロセッサ101は例えば10進数又は16進数の桁のような入ってくるデータビットを表す。入ってくるデータは16進数の桁によって表される必要が無いことは理解されるべきである、しかし、幾つかの実施例において、16進数のコードは10進数で表すよりも圧縮が改善される。
本発明の実施例によれば、プロセッサ101は、入ってくるデータを圧縮された記録としてメモリ102内に書き込む。プロセッサ101は、入ってくるデータをニブルのストリングに圧縮する。ニブルのストリングは、一連の「ヘッダ」ニブルを含む。本発明の実施例によれば、各ヘッダニブルには、1又は2以上のデータニブルが続く。データニブルの数は、各ヘッダニブルに割り当てられた特定の定義づけによって変化する。しかし、一実施例において、データニブルの数は、1から8まで変化する。本発明の一実施例によれば、データニブルの数は連続したデータ記録が互いに変化する量に依存する。本実施例はデータをニブルに圧縮するとして記載されるが、一緒にされた特定数のビットは変化することができ、従って本発明は4ビットのグループ付けに限定されないことは理解されるべきである。むしろ、あらゆる数のビットが1つにまとめられる(group together)。
本発明の一実施例によれば、以下の表がヘッダニブルを表すのに用いられ得て、該ヘッダニブルは16進数の桁を用いる。表は単なる例として提供され、当該技術分野の専門家は本発明の範囲に含まれる他の種々のヘッダの定義づけを容易に認識することは理解されるべきである。
表1
Figure 2012506665
表1の第1列は、圧縮記録内のヘッダニブルの16進数の値である。16進数の値は、メモリ102内に実際に格納された2進数の値を表すべく、使用者/作業者に付与されると理解されるべきである。表1の第2列は、特定のヘッダニブルに幾つのデータニブルが続くかを付与している。表1の第3列は、データニブルが何を表しているかを記載している。例えば、ヘッダニブルが「E」であれば、7のデータニブルが続き、該データニブルは新たな値―以前の値を表す。換言すれば、現在の記録は、以前の記録よりも大きい。記録が流れ測定結果を含めば、例えばこれは現在の測定結果が以前の測定結果よりも大きいことを意味する。
圧縮アルゴリズムは、上記の定義付けとともに用いられ得て、現在のデータ記録と以前の非圧縮のデータ記録の間の差に基づいて、入ってくるデータビットを圧縮する。メモリ102に書き込まれた圧縮された記録は、非圧縮記録と以前の記録の間の差を含んでもよい。
図2は、本発明の一実施例によるデータ圧縮アルゴリズム200を示す。アルゴリズム200は、使用者/作業者によって開始され、或いはプロセッサ101によって作動される他のプログラムによって開始される。図2に示された実施例によれば、プロセッサ101はステップ201にて入ってくるデータを受信することができる。
ステップ202にて、プロセッサ101は現在の記録を第2のデータ記録と比較することができる。幾つかの実施例において、第2の記録は以前の記録を含む。現在の記録と比較すべき以前の記録が無ければ、プロセッサ101は記録を非圧縮状態で格納する。本発明の一実施例によれば、その後に1から8のデータニブルが続くヘッダニブルを含む。ヘッダニブルの値は、データ記録がどれだけの長さかに依る。換言すれば、ヘッダニブルの値は、現在の記録と以前の記録の間の差に基づく。本発明の一実施例によれば、ヘッダニブルは表1の値に基づき得る。本発明の一実施例によれば、プロセッサ101は、現在の記録を次に受信する記録と比較すべく、一時的に記録を格納することができる。現在の記録はステップ203(以下に示す)が完了するまで、非圧縮でキャッシュメモリ内に格納され得る。
プロセッサは、第1の記録と第2の記録の間の差が所定数のニブルによって表され得るかを判断する。プロセッサ101が表1の定義付けを実行する一実施例によれば、ニブルの所定数は8である、何故なら最高のヘッダニブルは続くべき8データニブルのみを提供するからである。しかし、他のヘッダニブルの定義付けが実行されたなら、データニブルの所定数は変わり得る。
差が所定数のニブルによって表されたならば、プロセッサ101はステップ203に進んで、現在の記録は、現在の記録と第2の記録の間の差として圧縮される。幾つかの実施例において、圧縮は現在の記録と以前の記録の間の差を表す。本発明の一実施例によれば、プロセッサ101は現在の記録を、ヘッダニブルを含む記録内に圧縮し、該ヘッダニブルの後に1又は2以上のデータニブルが続く。本発明の一実施例によれば、ヘッダニブルはその後に続くデータニブルの数を示すことができる。本発明の他の実施例によれば、ヘッダニブルは現在の記録が、以前の記録より大きいか、以前の記録より小さいか、或いは以前の記録に等しいかを表すことができる。本発明の一実施例によれば、データニブルは現在の圧縮された記録と以前の記録の間の差を表す。差が所定数のニブルにて表されなければ、プロセッサ101は記録を圧縮せず、記録を非圧縮状態で格納する。圧縮されない記録は尚、ヘッダニブルを含む。例えば、ヘッダニブルが表1のように定義付けられるならば、8ニブルを含む非圧縮のデータ記録のヘッダニブルは「F」である。
ステップ204にて、プロセッサ101は現在の記録が最近の記録を含んでいるかを判断する。現在の記録が最近の記録を含んでいれば、アルゴリズム200は終了することができる。プロセッサ100はまた、現在の記録を一時的に格納することなく、現在の記録を圧縮された記録としてメモリ102に書き込むことができる。これは、現在の記録が比較されるべき次の記録が存在しないからである。更に入ってくるデータ記録が存在すれば、アルゴリズム200は、次の記録が現在の記録と比較され得るステップ202に戻り得る。
本発明の実施例によって、本発明の理解を手助けすべく、整数のデータ値で実行されるアルゴリズム200の例が以下に示される。例えば、以下の入ってくるデータ記録を取り上げ、各10進数は2進コードにおけるニブルを表す。
(1) 12345678
(2) 12345678
(3) 12345678
(4) 12345677
(5) 12345675
(6) 12345676
アルゴリズム200によれば、プロセッサ100は第1のデータ記録を受信し、第1のデータ記録と比較する以前の記録が無いから、プロセッサ100は8ニブルが続くことを示すヘッダニブルで第1のデータ記録を格納する。従って、圧縮された形式は、F12345678であり、ここで「F」は非圧縮の8ニブルが続くことを表すヘッダニブルである。換言すれば、8データニブルは、元の入ってくるデータを含む。
本発明の実施例によれば、プロセッサ101は次に第1のデータ記録と同一の第2のデータ記録を受信することができる。従って、プロセッサ101は、尚、第1のデータ記録と同一である第3のデータ記録を進めることができる。プロセッサ101は次に、第4のデータ記録を進める。第4のデータ記録は第1のデータ記録と同一でないから、第2及び第3のデータ記録は2つのニブルに圧縮され、1つはヘッダニブルであって1の記録が以前の記録と同一であることを表し、もう1つはデータニブルであって幾つの記録が同一であるかを表している。この場合において、第2及び第3のデータ記録は第1のデータ記録と同一であるから、従ってデータニブルは2である。従って、第2及び第3のデータ記録は「02」に圧縮される。
プロセッサ101は次に、第4のデータ記録を第3のデータ記録と比較する。この場合において、差は1つの(12345678―12345677)である。更に、第4のデータ記録は第3のデータ記録未満である。差が所定数のデータニブル(この場合8)未満であることを表しているから、プロセッサ101は記録を比較する。この場合において、第4のデータ記録は「11」と圧縮され、ヘッダニブルは1であり、1ニブルが後に続き、データニブルの値は古い値―新たな値を表す。差が1であるから、データニブルは1である。
同様の比較が第5のデータ記録と第4のデータ記録の間でなされる、しかし、第5のデータ記録は第4のデータ記録とは2だけ異なる。従って、圧縮された記録は「12」として格納される。
第6のデータ記録は第5のデータ記録よりも大きい。しかし、差はまた、1つのニブルにて表される。従って、第6のデータ記録は「81」と圧縮され、「8」は1つのデータニブルが続くことを表すヘッダニブルを備え、該データニブルは、新たな値―古い値を表す。「1」はデータニブルを含み、第6のデータ記録と第5のデータ記録の差は1である。
プロセッサ101はこのようにして、入ってくるデータ流れ123456781234567812345678123456771234567512345676を受信し、圧縮された記録をF1234567802111281としてメモリ102に書き込む。これは、格納されたニブル23(40―17)内の全体の差が、58%に全体圧縮される結果となる。
上記の本発明は、従来技術に比して優れた圧縮を提供する、何故ならデータ記録の略全体はデータ記録の同一部分以外のみが圧縮されるからである。これは、メモリ102に書き込まれた圧縮された記録は、現在の記録と以前の記録の差を含むからである。このようにして、プロセッサ101は、データ記録の一部のみが圧縮される従来技術よりも、さらに大きな圧縮比を実現することができる。
上記の記載は、入ってくるデータが整数であることを示してきたが、本発明は浮動値(floating value)にも等しく適用可能であることは理解されるべきである。IEEE-754単精度浮動小数点数が以下の例に使用されるが、浮動小数点データの他の標準と同様のIEEE-754倍精度が等しく用いられ得ることは理解されるべきである。従って、本発明はIEEE-754単精度浮動小数点数に限定されるべきではない。変換された16進数表記が浮動値に続く浮動数を含む以下の入ってくるデータを考える。再度、各16進数文字は2進数の4ビットを表すことは理解されるべきである。
(1) 4.0218 4080B296
(2) 3.7209 406E233A
(3) 3.4170 405AB021
(4) 3.1076 4046E2EB
(5) 2.8633 4037404F
(6) 2.7233 402E4A8C
アルゴリズム200によれば、上記例の第1のデータ記録は非圧縮で残り、記録が非圧縮の8ニブルを含むことを表す「F」のヘッダニブルとともに格納される。このようにして、第1のデータ記録は実際には、負圧縮に帰する更なるニブル(ヘッダニブル)を含む。プロセッサ101は次に、第2のデータ記録を受信し、それを第1のデータ記録と比較する。比較時に、プロセッサ101はステップ203にて、第1のデータ記録と第2のデータ記録の間の差が、所定数のニブル(8)未満で格納され得ることを判断する。従って、第2のデータ記録は圧縮されて、「D128F5C」のように第2のデータ記録と第1のデータ記録の間の差として格納される。この圧縮された記録において、「D」は表1によれば6つのデータニブルが続くヘッダニブルであり、該データニブルは以前の値から新たな値を引くことを表す。データニブル128F5Cは、第1のデータ記録と第2のデータ記録の間の差を16進数で表す。
プロセッサ101は、同様の方法で残りのデータを圧縮し、第2のデータ記録と第3のデータ記録の間の差は16進数で137319であり、従って第3のデータ記録はD137319として圧縮される。同様に、第3のデータ記録と第4のデータ記録の間の差は16進数で13CD36であり、従って第4のデータ記録はD13CD36として圧縮される。第4のデータ記録と第5のデータ記録の差はFA29Cである。この差は6ではなく5ニブルとして表されるから、第5のデータ記録はCFA29Cとして圧縮され、先頭のCは5のデータニブルが続くことを表し、データニブルは以前の値―新たな値を表す。同様に、第5のデータ記録と第6のデータ記録の間の差は、8F5C3であり、従って第6のデータ記録はC8F5C3として圧縮される。
浮動数を表す第6のデータ記録の圧縮は、約12.5%の全体圧縮に帰する。より少ない連続した記録が異なれば、記録間の差を表すのに必要なニブルの数は少なくなり、より大きな圧縮に帰する。送信器104が流体流れ測定結果を送信する実施例に依れば、全体圧縮は測定の頻度に依存し得る。これは、何故なら、測定がより頻繁であれば、各測定が互いに変わることが少なくなるからである。従って、測定の数は増加するが、測定結果間の差は少ないニブルにて表され、圧縮の全体増加に帰する。
上記の圧縮に加え、プロセッサ101は更なるステップを実施して、浮動数上で実行される圧縮を増加させる。これらの更なるステップは、「ムンギング(munging)」と呼ばれる。本発明の一実施例によれば、プロセッサ101はデータ記録内の最下位の数を切り捨てることができる。或る応用例について、最下位の数を切り捨てることは、データの正確性に実質的に影響を与えない。これは特に流体流れ測定にて真実であり、例えば入ってくる測定結果は、顧客が要求するよりもより正確である。現在の電気電子技術標準協会の標準によれば、単精度の浮動数は8ニブルを用いて表され、仮数要素を考慮に入れると有効数字の7つの10進数の桁を大体表す。本発明の一実施例に依れば、プロセッサ101はデータを6つの桁として表し、このようにして格納時の1ニブルの値の必要性を減じている。このように、1つの桁を除去することは圧縮を増加させる。
更に、電気電子技術標準協会によって述べられた標準により、浮動数の符号(+/−)は第1のビットで表され、0は数が正であることを意味し、1は数が負であることを意味する。入ってくるデータが0回りを彷徨い、このように定期的に符号を変更すれば、2つの記録間の絶対差が比較的小さくても、差は高い数のニブルで表されなければならない。従って、本発明の一実施例に依れば、符号は記録の開始から記録の終端に動かされる。従って、入ってくるデータが符号を連続的に変えても、プロセッサ101によって処理される代表数(represented number)は比較的小さく変化し、連続した記録間の差は、より少ないニブルで表される。プロセッサ101によって実行されるこれらの追加のステップは、記録間の差がより少ないニブルで表されるので、圧縮時にかなり増加する結果となる。
上記記載はデータ圧縮に重点を置いたが、プロセッサ101はまた、メモリ102内に格納された記録を復元することができる。復元は圧縮アルゴリズムと同様の手順をたどる。メモリ102内に格納された記録は、種々の理由からアクセスされる必要があり、従って必要な特定の記録は変わる。全ての記録が必要であれば、プロセッサ101は単に記録の当初にて開始し、各記録に連続的にアクセスすることができる。
しかし、幾つかの状況において、全ての記録が一度にアクセスされる必要は無い。この場合には、プロセッサ101はどの記録が必要かを最初に識別するのに必要な記録にアクセスする。一旦、必要な記録が識別されると、プロセッサ101は続くデータニブルが非圧縮であることを示すヘッダニブルを含む以前に格納された記録を見付けなければならない。例えば、表1が用いられると、これはヘッダニブル「F」に対応する。この非圧縮記録は必要である、何故なら必要な記録を含む全ての連続した格納された記録は、2つの連続した記録の間の差を示すからである。しかし、以前の非圧縮記録を認識しないと、差は有益な情報をもたらさない。一旦、非圧縮記録が検索されると、プロセッサ101は、必要な記録が検索され復元されるまで続く略全ての記録を復元し続けることができる。
上記の連続したアクセスルーチンは、対象の記録を復元すべくアクセスすることが必要な記録の数が、著しく大きくない(not prohibitive)状況にて適切である。しかし、復元された記録の数は、過度の処理時間量を必要とする。従って、本発明の一実施例によれば、プロセッサ101は、圧縮アルゴリズム300に従って、入ってくるデータを圧縮することができる。
図3は、本発明の一実施例に従って、プロセッサ101によって実行され得る圧縮アルゴリズム300を示す。圧縮アルゴリズム300は、入ってくるデータがかなりの量は変化しない状況において特に有用である。これは送信器104が安定状態又は半安定状態であるとの中継情報である例において真実である。例えば、流体が比較的一定の流速で流れる地点にて、送信器104が流量計に連結されていれば、入ってくる流速は著しくは異ならない。従って、アルゴリズム200に従って、入ってくる記録が圧縮されることができない以前に、圧縮され得る入ってくる多数のデータビットがあり得る。連続した記録間の差は、小さい数のニブルによって表されるから、アルゴリズム200は高い圧縮比を提供することができる。しかし、対象の記録にアクセスするために多量の記録が復元されなければならない復元時には、面倒であることが判るであろう。アルゴリズム300は、入ってくるデータのデータビットをベースライン記録と比較することにより、この問題を克服する。本発明の実施例に従って、ベースライン記録は例えば最初に受信した記録を含み得る。しかし、ベースライン記録はあらゆる受信記録であり得て、最初に受信した記録に限定されない。更に、ベースライン記録はプロセッサ101によって設定される値である。例えば、ベースライン記録は全ての受信した記録の平均値を含み得る。
アルゴリズム300は、プロセッサ101が入ってくるデータを受信するステップ301にて開始する。入ってくるデータは図2に関して上記したようなビットデータの形式であり得る。本発明の実施例によれば、第1の記録は第1のベースライン記録として格納される。第1のベースライン記録は、第1の記録がアルゴリズム200内に格納されるのと同様の方法で格納され得る。アルゴリズム200の説明にて用いられる、入ってくる記録の例を取り上げる。
(1) 12345678
(2) 12345678
(3) 12345678
(4) 12345677
(5) 12345675
(6) 12345676
第1の記録は再び、F12345678として格納され、「F」は非圧縮データの8ニブルが続くことを示す。
ステップ302にて、プロセッサ101は、現在のデータ記録とベースライン記録を比較する。これは、現在の記録を直前の記録と比較するアルゴリズム200とは対照的である。
ステップ303にて、プロセッサ101は現在の記録とベースライン記録の間の差が所定数のニブルによって表されることができるかを判断する。表されることができるなら、プロセッサ101はステップ304に続き、現在の記録が、現在の記録とベースライン記録の差として圧縮される。一方、表されることができなければ、プロセッサ101はステップ305にて現在の記録を新たなベースライン記録として格納することができる。
ステップ306にて、プロセッサ101は以前に格納された記録が最新の記録であるかを判断し、そうであればアルゴリズム300は終了する。圧縮されるべき更なるデータがあれば、プロセッサはステップ302に戻る。
上記の6つのデータ記録の例において、第2の記録及び第3の記録は、アルゴリズム200に従って圧縮されたのと同じ方法で、アルゴリズム300に従って圧縮される、即ち、第2の記録及び第3の記録は「02」として圧縮される。
アルゴリズム200に従って、第4の記録は圧縮された記録「11」として書かれた。アルゴリズム300に従って、第4の記録は「11」と書かれる、何故なら第1のベースライン記録と第4の記録の差は、まだ1つであり、従って1つのニブルを用いて書き込まれる。
アルゴリズム200に従って、第5の記録は、第4の記録と第5の記録の間の差に基づいて、圧縮された記録「12」として書き込まれる。しかし、アルゴリズム300に従って、第5の記録は第1のベースライン記録と比較される。第5の記録とベースライン記録の間の差は、3である(12345678―12345675)。従って、第5の記録は、圧縮された記録「13」として書かれる。
アルゴリズム200に従って、第6の記録は、圧縮された記録「81」として書かれる。しかし、アルゴリズム300に従って、第6の記録は、第1のベースライン記録と第6の記録の間の差に基づいて「12」と書かれる。
上記の例において、圧縮比は両アルゴリズムについて同じである。常にこの状況ではないことは理解されるべきである。例えば、入ってくるデータが一方向に連続的に変化するならば、入ってくるデータが増加していれば、アルゴリズム300はアルゴリズム200と同等には圧縮しない。何故なら、圧縮された記録は、圧縮された記録とベースライン記録の間の差を表すのに、圧縮された記録と以前の記録の間の差を表すのに必要なニブルよりも、より多くのニブルを必要とするからである。
アルゴリズム200に対するアルゴリズム300の利点は、復元時に認識される。アルゴリズム200が必要とするように、第1の非圧縮記録と必要な記録の間の全ての記録の復元が必要ではなく、アルゴリズム300はベースライン記録と必要な記録の復元のみが必要である。上記の6つの例の記録に再び言及して、第5の記録が復元されることを要求されれば、プロセッサ101は5つの記録(1−5)を復元して、アルゴリズム200に従って復元された5つの記録を得なければならない。しかし、アルゴリズム300に従って、第5の記録にアクセスするために、2つの記録のみ、第1のベースライン記録と第5の記録が復元されることが必要である。このようにして、或る記録にアクセスするのに必要な処理時間は、アルゴリズム300に従って、略短くなる。
本発明の実施例に従って、ベースライン記録は、最初に受信された記録である必要は無いことは理解されるべきである。むしろ、ベースライン記録はあらゆる記録を含み得る。更に、新たなベースライン記録は、現在の記録とベースライン記録の間の差が所定数のニブルによって表され得ない各時間に要求される。従って、所定数のデータ記録の中で、多数のベースライン記録がある。復元中に記録にアクセスするとき、プロセッサ101は最も近似したベースライン記録にアクセスすることのみ必要である。有利なことに、所定の記録を復元するのに必要な処理時間は、短くなる。アルゴリズム300は、使用者/作業者が全ての記録にアクセスする必要なく、特定の記録にアクセスしたい状況にて特に有用である。
上記の発明は、連続してアクセスされたビットデータの記録を圧縮する方法を提供する。本発明は、現在のデータ記録と第2のデータ記録の間の差を表す圧縮された記録をメモリに書き込むことにより、従来技術に比した利点を提供する。第2のデータ記録は直前に受信したデータを含み、又は直前の記録である必要は無いが、以前に受信したベースライン記録を含み得る。何れの場合も、圧縮された記録は、従来技術のように他の記録とは異なる非圧縮部分の記録を格納するのではなく、2つの記録間の差を含む。有利なことに、本発明は、記録の同一部分のみが圧縮されていた従来技術で実現されていたよりも、一層大きな圧縮比を実現することができる。
本発明は、データを復元する効率的な方法をも提供する。本発明の実施例によれば、プロセッサ101は以前に格納された非圧縮記録を認識し、所望の記録と非圧縮記録の間に格納された記録を復元する。他の実施例に従って、プロセッサ101はベースライン記録のような以前に格納された非圧縮記録を認識し、ベースライン記録のみに基づいて所望の記録を得る。
上記の実施例の詳細な記載は、本発明の範囲内であると発明者によって考慮された全ての実施例の包括的な記載ではない。実際に、当該技術分野の専門家は、上記の実施例の或る要素は様々に結合され、又は除去されて、更なる実施例を生成し、そのような実施例は本発明の範囲及び開示内に含まれる。上記実施例は全体が又は一部が結合されて、本発明の範囲及び開示内の更なる実施例を生成することは当業者には明白であろう。
このようにして、本発明の特定の実施例及び例が説明の目的からここに記載されているが、関連技術分野の専門家が認識するように、種々の均等な修正が本発明の範囲内で可能である。ここに提供された開示は、他の格納システムに応用でき、上記に記載され且つ添付の図面に示された実施例だけのものではない。従って、本発明の範囲は、以下の請求の範囲から決定されるべきである。

Claims (19)

  1. 第1のデータ記録と少なくとも第2のデータ記録を受信する工程と、
    第1のデータ記録を第2のデータ記録と比較する工程と、
    第2のデータ記録を、第1のデータ記録と第2のデータ記録の差として圧縮する工程を有する、データ格納方法。
  2. 更に、圧縮する工程の前に、第2のデータ記録の最下位のデジットを切り捨てる工程を含む、請求項1に記載のデータ格納方法。
  3. 更に、正又は負を示すデジットを、第1のデータ記録又は少なくとも第2のデータ記録の先頭部からデータ記録の終端部に動かす工程を含む、請求項1に記載のデータ格納方法。
  4. 第2のデータ記録を圧縮する工程は、第2のデータ記録をヘッダニブル及び1又は2以上のニブルで圧縮する工程を含む、請求項1に記載のデータ格納方法。
  5. ヘッダニブルは、その後に続くデータニブルの数を表す、請求項4に記載のデータ格納方法。
  6. ヘッダニブルは、第2のデータ記録が第1のデータ記録より大きいか、第1のデータ記録より小さいか、第1のデータ記録に等しいかを表す、請求項4に記載のデータ格納方法。
  7. 1又は2以上のデータニブルは、第1のデータ記録と第2のデータ記録の間の差を含む、請求項4に記載のデータ格納方法。
  8. 更に、第1のデータ記録と第2のデータ記録の差が、所定数のニブルで表されないときは、第2のデータ記録を非圧縮で格納する、請求項1に記載のデータ格納方法。
  9. 更に、第1のデータ記録をベースライン記録として設定する工程と、
    続いて受信したデータ記録をベースライン記録と比較する工程を含む、請求項1に記載のデータ格納方法。
  10. 更に、圧縮された記録をメモリに書き込む工程を含む、請求項1に記載のデータ格納方法。
  11. メモリ102と、
    第1のデータ記録と少なくとも第2のデータ記録を受信し、
    第1のデータ記録を第2のデータ記録と比較し、
    メモリ102内の第2のデータ記録を、第1のデータ記録と第2のデータ記録の差として圧縮するように構成されたプロセッサ101を備える処理システム100。
  12. プロセッサ101は更に、第2のデータ記録の最下位のデジットを切り捨てるように構成された、請求項11に記載の処理システム100。
  13. プロセッサ101は更に、正又は負を示すデジットを、第1のデータ記録又は少なくとも第2のデータ記録の先頭部からデータ記録の終端部に動かすように構成された、請求項11に記載の処理システム100。
  14. プロセッサ101は更に、第2のデータ記録をヘッダニブルと1又は2以上のデータニブルで表すように構成された、請求項11に記載の処理システム100。
  15. ヘッダニブルは、圧縮された記録内のデータニブルの数を表す、請求項14に記載の処理システム100。
  16. ヘッダニブルは、第2のデータ記録が第1のデータ記録より大きいか、第1のデータ記録より小さいか、第1のデータ記録に等しいかを表す、請求項14に記載の処理システム100。
  17. 1又は2以上のデータニブルは、第1のデータ記録と第2のデータ記録の間の差を含む、請求項14に記載の処理システム100。
  18. プロセッサ101は更に、第1のデータ記録と第2のデータ記録の差が、所定数のニブルで表されないときは、第2のデータ記録を非圧縮で格納するように構成された、請求項11に記載の処理システム100。
  19. プロセッサ101は更に、第1のデータ記録をベースライン記録として設定し、続いて受信したデータ記録を該ベースライン記録と比較するように構成された、請求項11に記載の処理システム100。
JP2011533152A 2008-10-27 2008-10-27 データ記録を圧縮し復元する方法及び装置 Pending JP2012506665A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2008/081363 WO2010050924A1 (en) 2008-10-27 2008-10-27 Method and apparatus for compressing and decompressing data records

Publications (1)

Publication Number Publication Date
JP2012506665A true JP2012506665A (ja) 2012-03-15

Family

ID=40456339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011533152A Pending JP2012506665A (ja) 2008-10-27 2008-10-27 データ記録を圧縮し復元する方法及び装置

Country Status (11)

Country Link
US (1) US20110196849A1 (ja)
EP (1) EP2351229A1 (ja)
JP (1) JP2012506665A (ja)
CN (1) CN102197599A (ja)
AR (1) AR073836A1 (ja)
AU (1) AU2008363659A1 (ja)
BR (1) BRPI0823173A2 (ja)
CA (1) CA2741183A1 (ja)
MX (1) MX2011003914A (ja)
RU (1) RU2011121360A (ja)
WO (1) WO2010050924A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120082395A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Entropy Coder for Image Compression
GB2507751A (en) * 2012-11-07 2014-05-14 Ibm Storing data files in a file system which provides reference data files
KR102017808B1 (ko) * 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법
KR102017807B1 (ko) * 2013-12-31 2019-09-03 에스케이하이닉스 주식회사 데이터 처리 장치 및 데이터 처리 방법
EP3259849A1 (en) 2015-02-17 2017-12-27 Parstream GmbH Method and apparatus for adaptive data compression
CN106559083B (zh) * 2016-11-01 2020-06-09 惠州Tcl移动通信有限公司 一种移动终端对特定数据进行压缩的方法及系统
CN106788450A (zh) * 2016-11-22 2017-05-31 深圳市长龙铁路电子工程有限公司 一种道岔动作曲线的压缩方法
US10498865B2 (en) * 2017-12-12 2019-12-03 Intel Corporation Security-oriented compression
CN112104376B (zh) * 2020-11-19 2022-02-15 南京艾科朗克信息科技有限公司 一种证券期货行情数据实时压缩方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165720A (ja) * 1990-10-29 1992-06-11 Hitachi Ltd データ処理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710919A (en) * 1995-09-29 1998-01-20 Electronic Data Systems Corporation Record compression
US6167499A (en) * 1997-05-20 2000-12-26 Vlsi Technology, Inc. Memory space compression technique for a sequentially accessible memory
US5999936A (en) * 1997-06-02 1999-12-07 Compaq Computer Corporation Method and apparatus for compressing and decompressing sequential records in a computer system
CN1472887A (zh) * 2002-08-02 2004-02-04 艺高科技股份有限公司 一种改进的音乐压缩与解压缩方法
CN1314208C (zh) * 2003-11-28 2007-05-02 北京大学 可扩展标记语言数据流压缩器及其压缩方法
KR100837410B1 (ko) * 2006-11-30 2008-06-12 삼성전자주식회사 주관적인 무손실 이미지 데이터 압축 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165720A (ja) * 1990-10-29 1992-06-11 Hitachi Ltd データ処理装置

Also Published As

Publication number Publication date
CN102197599A (zh) 2011-09-21
EP2351229A1 (en) 2011-08-03
BRPI0823173A2 (pt) 2015-06-23
MX2011003914A (es) 2011-06-20
US20110196849A1 (en) 2011-08-11
AR073836A1 (es) 2010-12-01
WO2010050924A1 (en) 2010-05-06
AU2008363659A1 (en) 2010-05-06
RU2011121360A (ru) 2012-12-10
CA2741183A1 (en) 2010-05-06

Similar Documents

Publication Publication Date Title
JP2012506665A (ja) データ記録を圧縮し復元する方法及び装置
JP5498783B2 (ja) データ圧縮の方法
US5933104A (en) Method and system for compression and decompression using variable-sized offset and length fields
CN112953550B (zh) 数据压缩的方法、电子设备及存储介质
JP3362177B2 (ja) データ圧縮方法及び装置
US9041567B2 (en) Using variable encodings to compress an input data stream to a compressed output data stream
US8937563B2 (en) Using variable length encoding to compress an input data stream to a compressed output data stream
KR100353171B1 (ko) 적응형데이터압축을수행하는방법및장치
US5874908A (en) Method and apparatus for encoding Lempel-Ziv 1 variants
JPH07283739A (ja) 短ブロックのデータを圧縮、伸長するための方法、及び装置
US6225922B1 (en) System and method for compressing data using adaptive field encoding
US20190052284A1 (en) Data compression apparatus, data decompression apparatus, data compression program, data decompression program, data compression method, and data decompression method
TWI273779B (en) Method and apparatus for optimized lossless compression using a plurality of coders
CN116303297A (zh) 文件压缩处理方法、装置、设备及介质
CN111061722A (zh) 一种数据压缩、数据解压缩方法、装置及设备
CN113078908B (zh) 一种适用于时间序列数据库的简易编解码方法
CN111597154A (zh) 一种结构化交易数据压缩方法、相关方法及相关装置
WO2024138981A1 (zh) 数据压缩和解压缩方法、装置、电子设备及存储介质
KR20110089308A (ko) 데이터 레코드들의 압축 및 압축해제를 위한 방법 및 장치
CN115765754A (zh) 一种数据编码方法及一种编码数据比较方法
US10432216B1 (en) Configurable compression circuit
US10037148B2 (en) Facilitating reverse reading of sequentially stored, variable-length data
CN111263155B (zh) 一种等分辨率cr图像的压缩方法及系统
CN116208168A (zh) 一种数据压缩方法、数据解压方法及装置
JP2003318739A (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120323

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120626