JP2018022933A - データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム - Google Patents

データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム Download PDF

Info

Publication number
JP2018022933A
JP2018022933A JP2016145397A JP2016145397A JP2018022933A JP 2018022933 A JP2018022933 A JP 2018022933A JP 2016145397 A JP2016145397 A JP 2016145397A JP 2016145397 A JP2016145397 A JP 2016145397A JP 2018022933 A JP2018022933 A JP 2018022933A
Authority
JP
Japan
Prior art keywords
data
column
encoding
record
decoding
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
JP2016145397A
Other languages
English (en)
Other versions
JP6336524B2 (ja
Inventor
鈴木 隆之
Takayuki Suzuki
隆之 鈴木
柴田 薫
Kaoru Shibata
薫 柴田
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.)
Kousokuya Inc
Original Assignee
Kousokuya Inc
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 Kousokuya Inc filed Critical Kousokuya Inc
Priority to JP2016145397A priority Critical patent/JP6336524B2/ja
Priority to EP17834102.0A priority patent/EP3490153B1/en
Priority to CN201780045701.9A priority patent/CN109478893B/zh
Priority to PCT/JP2017/025955 priority patent/WO2018021094A1/ja
Priority to EP20197054.8A priority patent/EP3771104A1/en
Publication of JP2018022933A publication Critical patent/JP2018022933A/ja
Application granted granted Critical
Publication of JP6336524B2 publication Critical patent/JP6336524B2/ja
Priority to US16/235,741 priority patent/US10547324B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • 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/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • 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/60General implementation details not specific to a particular type of compression
    • H03M7/6035Handling of unkown probabilities
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

【課題】固定長データを連続して符号化する場合に適した圧縮符号化方法、装置、及びプログラムを提供する。【解決手段】圧縮符号化方法は、予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに分割することと、複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により複数の前記レコードを符号化することと、を含む。【選択図】図6

Description

以下の本実施形態は、データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムに関する。
近年、複数のセンサ付き無線端末を空間に散在させ、それらが協調して環境や物理的状況を採取するセンサネットワークの構築が構想されている。また、自動車の電子制御化の進展に伴い、各種車載用のセンサネットワークが実用化されている。
図1は、これらセンサネットワークを模式的に例示した概略図である。例えばセンサネットワーク1においては、センサ2a等が検出するデータをセンサノード5とゲートウェイ3を介して処理装置4に送信する。センサ2a、2b、2cが取得するデータを処理装置4に送る場合、送信されるデータは、データサイズが固定長となる傾向がある。
各センサが検出する環境の状態等の、サイズが予め決められたデータを特定の並び順で配置したデータ列をレコードと呼ぶ。このような場合、1レコードは、固定長のビット列からなる固定長データとなる。センサネットワークにおいては、センサが時々刻々と検出する環境の状態等のデータをレコードとして連続して出力する。ここで、センサは、温度センサ、湿度センサ、圧力センサ、回転数センサ、風速センサ、流速センサ、加速度センサ、速度センサ、または位置センサ、あるいはスイッチのオン・オフ情報を検出するものなどを含む。
図2は、上述の固定長データ例を説明する図である。
図2に示す例では、センサ2aの検出情報として、回転パルス数、センサ2b、2cの検出情報としてそれぞれ対応するスイッチのオン・オフ情報の場合を示す。
センサネットワーク1で送受信される固定長データは、そのビット長が固定値に設定されている。そして、その固定長ビットデータの内部は、更に、所定数のビットごとにフィールドに分けられ、各フィールドに記述されるデータの種類が決められていることもありえる。例えば、図2(a)においては、固定長データの10進数表記の例が記載されている。図2(a)の例においては、固定長データの先頭に26ビットの時刻が記述され、次に、回転パルス数センサ2aの出力である14ビットの回転パルス数が記述されている。また、その次には、センサ2bの検出情報がオンかオフかを示す1ビットのデータ、その次に、センサ2cの検出情報がオンかオフかを示す1ビットのデータが記述されている。そして、全体のデータビット長が固定値とされている。なお、図1及び図2の例では、センサネットワーク1の1つのセンサノード5に、3つのセンサが設けられていることを示している。しかし、1つのセンサノードに設けられるセンサの種類とセンサ数は、これに限定されるものではなく、1以上の任意の数の任意の種類のセンサを設けることが出来る。
図2(b)は、図2(a)の10進数表記の固定長データを2進数表記したものである。この場合にも、先頭から、26ビットの時刻、14ビットの回転パルス数、1ビットのセンサ1のオン/オフ状態、センサ2のオン/オフ状態が記述されている。図2(c)は、図2(b)の2進数表記された固定長データを連続ビットとして表記したものである。この場合も、先頭から何ビット目から何ビット目がどういう情報を示しているかが予め決められているので、固定長データを受け取った装置は、先頭からビットを順次読み込むことにより、固定長データ内に記述されているデータを認識することが出来る。
なお、図1〜図2の例では、センサの検出情報として、回転パルス数及びスイッチのオン・オフ情報の場合を示したが、本実施形態のセンサはこれに限定されることは無く、例えば、温度、湿度、位置、速度、加速度、風速、流速、圧力などの様々な検出量を検出するセンサとすることが出来る。
さらに、送受信されるデータをセンサの検出情報と限定する必要もない。
このような固定長のレコードを連続して転送する場合、ある程度の分量のデータを蓄積し、既存の圧縮技術でデータサイズを小さくしてから転送し、受けた側が伸長する方法が用いられることがある。
この場合、蓄積する量がある程度大きくないと圧縮効率が良くならないので、即時性が求められる場合には圧縮せずに送られることもある。圧縮せずに転送するとデータ転送量は圧縮した場合よりも大きくなってしまう。
データ圧縮の従来技術として、特許文献1〜3及び非特許文献1に開示されたものがあるが、いずれも、固定長のデータを符号化する場合に適したデータの圧縮符号化方法については記載されていない。
特開2007−214998号 米国特許公開第2011/0200104号 特表2014−502827号
lossless compression handbook, academic press, 2002/8/15, ISBN-10:0126208611, ISBN-13:978-0126208610
したがって、本発明の一側面に従った実施形態においては、固定長データを符号化し、また復号化するのに適したデータ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムを提供することを目的とする。
本発明の一側面よるデータ圧縮符号化は、予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに分割することと、複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいて複数の前記レコードをエントロピー符号化することと、を含む。
なお、エントロピー符号化とは出現確率の大きいシンボルには短い符号長を割り当て出現確率の小さいシンボルには長い符号長を割り当てることで圧縮を行う符号化方式である。代表的なエントロピー符号化としてはハフマン符号、算術符号などが知られている。
ハフマン符号は適応型ハフマン符号、Canonical Huffman Codes等多くの方式があり
算術符号には適応型算術符号、Qコーダー、レンジコーダー、等の多くの方式が知られている。
本発明の一側面に従った実施形態によれば、固定長データを符号化する場合に適したデータ圧縮符号化方法、復号化方法、その装置、及び、そのプログラムを提供することが出来る。
センサネットワークを模式的に例示した概略図である。 固定長データ例を説明する図である。 本実施形態の符号化方法に従ったカラム分割を説明する図である。 本実施形態によるデータ圧縮符号化装置の機能ブロック構成の一つの例を示す図である。 本実施形態によるデータ圧縮符号化装置の機能ブロック構成の他の例を示す図である。 本実施形態による復号化装置の機能ブロック構成の一つの例を示す図である。 本実施形態による第2の復号化装置の機能ブロック構成の他の例を示す図である。 適応型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。 蓄積型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。 蓄積型ハフマン符号化方法を説明するフローチャートである。 蓄積型ハフマン復号化方法を説明するフローチャートである。 適応型ハフマン符号化方法を説明するフローチャートである。 適応型ハフマン復号化方法を説明するフローチャートである。 適応型算術符号化方法を説明するフローチャートである。 適応型算術復号化方法を説明するフローチャートである。 本実施形態の蓄積型ハフマン符号化方法を具体例により説明する図である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その1)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その2)である。 本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。(その3)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その1)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その2)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その3)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その4)である。 カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図(その5)である。 本実施形態の蓄積型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その1)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その2)である。 本実施形態の適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その3)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その1)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その2)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その3)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その4)である。 本実施形態の適応型算術符号化方法により符号化された符号化データを復号する復号化方法を具体例により説明する図(その5)である。 本実施形態をプログラムで実装する場合の、プログラムを実行する例示的コンピュータのハードウェア環境図である。
図3は、本実施形態に従ったカラム分割を説明する図である。
図3は、固定長ビット列からなる固定長データの1レコードの例を示す。レコードは、決められたビット位置と幅のフィールドからなっており、フィールド1〜フィールドnにデータが記述される。本実施形態においては、レコードを所定ビット幅からなるカラムに分割する。例えば、図3の場合、カラム1は、1〜aビットからなり、カラム2は、a+1〜aビットからなり、カラム3は、a+1〜aビットからなり、以降同様に、カラムmは、am−1+1〜aビットからなる。a〜aは、同一値であってもよいし、それぞれ異なる値であっても良い。また、カラムは、フィールドの位置と幅に合わせて分割してもよいし、フィールドの幅や位置とは関係なく分割するものであっても良い。また、カラムのビット幅は、例えば、1ビット、2ビット、4ビット、8ビット、16ビットなどとすることが出来る。
なお、固定長データには、有意なデータが可変長データとして構成されるが、データの後方に「0」を追加することにより、データ長を調整して、固定長データするものも含み、可変長データが、同種のデータを格納するフィールドからなり、後方のデータにおいてデータが記録されない場合に「0」で埋めてデータ長を固定値にする、というような場合にも本実施形態の方法は適用可能である。上述のように、本実施形態においては、固定長データの固定長ビット列からなるレコードが、複数の決められたフィールドに記述される異なる意味を持つデータから構成され、レコードごとに、同じ位置にあるフィールドに記述されるデータが同じ種類のデータとする。そして、レコードを任意のビット数のブロックであるカラムに分割し、カラム相互には個別に、カラム方向に連続して符号化することにより、従来の符号化方法より有効な圧縮符号化を実現する。すなわち、本実施形態においては、複数のレコードの同じ位置のカラムごとに連続して各カラムを符号化することにより、一つのレコードを符号化する。
ここで、カラム相互に個別に符号化するとは、符号化のプロセスが、異なるカラムのデータに依存しない、ということを意味する。また、フィールドは、一塊のデータを格納し、フィールドごとに、格納されている一塊のデータの意味が決められているような固定長データ内のデータ格納位置である。固定長データは、1以上のフィールドに格納されたデータからなる。カラムは、固定長データを分割したものであるが、必ずしもカラムに格納されるデータは一塊の意味のあるデータとなっていると限る必要はない。カラムは、フィールドにまたがって分割されることもあれば、一つのフィールドが複数のカラムに分割されることもあるなど、単純に分割されたデータの塊である。ただし、カラムの分割の仕方は、複数の固定長データに渡って同一であり、同一のカラムは、複数の固定長データに渡って、同様な部分のデータの塊を示す。
図4Aは、本実施形態によるデータ圧縮符号化装置の機能ブロック構成の一つの例を示す図である。図4Aにあるように、入力レコードをカラムに分割手段10で分割した後、各カラムのデータは、それぞれ、各カラム用のレジスタ11−1〜11−mに一旦格納されてから、各カラム用符号化手段12−1〜12−mにより、カラムごとに個別に圧縮符号化される。圧縮符号化された各カラムのデータは、混合手段13によって1つのデータストリームとされ、1つのレコードの符号化データ出力として出力される。
ここで、各カラム用符号化手段12−1〜12−mは、それぞれ、個別の符号化手段が設けられているように記載されているが、必ずしもこれには限定されず、1つの符号化手段がカラムごとに個別な圧縮符号化となるように時分割で圧縮符号化処理を処理するようにしても良い。
図4Aに機能ブロック構成を示すデータ圧縮符号化装置の用いる圧縮符号化方法は、例えば、ハフマン符号化などの方法を含む、エントロピー符号化方法とすることが出来る。カラム用符号化手段12−1〜12−mがエントロピー符号化方法を採用する場合には、各カラム用符号化手段12−1〜12−mには、図4Aに示すように頻度表と符号化表が格納される。
このような、本実施形態の圧縮符号化方法は、固定長ビット列が複数の独立した情報により構成されている時に特に効果がある。たとえ、カラムへの分割が、固定長ビット列の独立した情報を含むフィールドの境界を無視したものであっても、カラムの間の相関を考慮しないことにより圧縮符号化後の平均データ量を小さくすることができる。
図4Bは、本実施形態によるデータ圧縮符号化装置の機能ブロック構成の他の例を示す図である。図4Bに示す例は、算術符号化を用いる場合である。
図4Bに示すように、算術符号化における符号化の場合には、レコード入力に対し、分割手段10aがカラムごとの分割を行い、カラム用レジスタ11a−1〜11a―mに各カラムのデータを保持する。そして、カラム分割範囲判定手段12a−1〜12a−mにおいて、それぞれのカラムにおける読み込んだデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値をカラムごとに判定する。そして、求めた値とカラムの値からレンジ分割手段により次のカラムに対応するレンジを求める。
すなわち、カラム1のカラム分割範囲判定手段12a−1が処理を終わると、レンジ分割手段18−1において、カラム1のデータとカラム1のデータを処理した結果に基づいて、レンジを算術符号化方法に従いカラム2に対応するレンジを分割する。次に、カラム2のカラム分割範囲判定手段12a−2がカラム2のデータの出現確率によりカラム2のレンジを分割する値を判定し、その結果とカラム2のデータとから、レンジ分割手段18−2が次のカラム3のためのレンジを分割する。以下同様に、カラムmまで、上述の処理を繰り返す。そして、符号化手段19において、レンジ分割手段18−mのレンジ分割結果であるレンジに含まれる二進数表現が最も短くなる値に基づいて入力されたレコードを符号化して、符号化データ出力を得る。
図5Aは、本実施形態による復号化装置の機能ブロック構成の一つの例を示す図である。
図5Aに示す復号化装置は、図4Aに示すデータ圧縮符号化装置に対応する復号化装置である。図4Aのデータ圧縮符号化装置によって符号化された符号化データが入力されると、分割手段16が符号化データをカラムに分割する。そして、複数の復号化手段14−1〜14−mは、各カラムの符号化データを復号化する。このとき、復号化手段14−1〜14−mは、具体的な符号化方法に従って、符号化前のデータのカラムごとに設けられる頻度表、符号化表15−1〜15−mを参照して復号化を行う。例えば、符号化方法が、ハフマン符号化の場合には、符号化データを順次読み込み、符号化データのシンボルパターンを各カラム1〜カラムmに対して設けられた頻度表、符号化表を参照して、復号化データのシンボルを生成する。
そして、カラムごとに復号された復号化データを混合手段17で結合して復号レコードを出力する。
図5Bは、本実施形態による復号化装置の機能ブロック構成の他の例を示す図である。
図5Bに示す復号化装置は、図4Bに示すデータ圧縮符号化装置に対応する復号化装置である。
図5Bに示す算術符号の復号化の場合には、符号化されたレコードはカラム1のカラム分割範囲判定手段20−1に入力される。そして、カラム分割範囲判定手段20a−1〜20a−mにおいて、それぞれのカラムにおける復号化されたデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値を求める。そして、カラム1復号化手段14a−1〜カラムm復号化手段14a−mにおいて、各カラムに対応する現在のレンジが分割される値と符号化データの値を比較して当該カラムの復号化データを求める。さらにこの復号化データと先に求められた現在のレンジが分割される値に基づき、レンジ分割手段により次のカラムに対応するレンジを求める。カラム1復号化手段14a−1〜カラムm復号化手段14a−mの復号化データが混合手段17aで結合され、復号レコードが出力される。
図6は、適応型のエントロピー符号化方法を用いた本実施形態のデータ圧縮符号化方法を一般的に説明するフローチャートである。適応型の符号化方法はデータが入力されるに従い逐次圧縮符号化するものである。
まず、ステップS10において、エントロピー符号化に用いる頻度表を初期化する。頻度表とは、あるシンボルが符号化データ内で何回現れたかを計数したものである。この頻度表自体は、エントロピー符号化において従来から使用されているものである、本実施形態においては、複数のレコードの同一位置のカラムに存在するシンボルを計数することが特徴である。初期化として例えば、全てのエントリを0に設定する。
次にステップS11のループにおいては、1レコードのカラムの数だけ、ステップS12の処理を繰り返し行う。ステップS12では、頻度表に基づく、符号化表の作成を行なう。符号化表は、ハフマン符号の場合、ハフマン符号辞書であり、算術符号の場合には、出現確率であり、実際に符号化情報に元データを置き換える場合に用いる表である。
ステップS11のカラム数分の繰り返し処理が終了すると、ステップS13に進む。ステップS11の最初の処理においては、ステップS10で初期化された頻度表に基づいて符号化表が作成される。
ステップS13において、固定長ビット列である1レコードを読み込む。次に、ステップS14において、レコードを、予め決められた方法に従って、カラムに分割する。ステップS14aにおいては、カラムごとの符号化を行い、ステップS15において、カラムごとの符号化データを混合して、1レコードの圧縮符号化データとする。ステップS16において、圧縮符号化後の1レコード分のデータを出力する。この1レコード分のデータを全てのレコードについて出力し終わると、入力データの圧縮符号化が完了したことになる。
次にステップS16の後に、ステップS17に進み、ステップS18の処理をカラム数分繰り返し行う。ステップS18では、頻度表の更新を行う。このとき、頻度表は、カラムごとに独立して、カラム数分持つ。頻度表の更新は、他のカラムの符号化結果は用いず、レコードの所定のカラムについて、レコードを順次符号化していくに従い、以前のレコードの対応するカラムの符号化結果に基づいて更新されるものである。
ステップS17のループ処理が終了すると、ステップS11に戻り、ステップS17のループ処理で更新した各カラムの頻度表に基づいて符号化表を作成し、ステップS13に進んで次のレコードの符号化処理に進む。処理するレコードがなくなった時点で、圧縮符号化の完了となる。
なお、エントロピー符号化方式に該当するいくつかの方式について、具体例を挙げて後にさらに詳しく説明する。
図7は、蓄積型のエントロピー符号化方法を用いた本実施形態に従ったデータ圧縮符号化方法を一般的に説明するフローチャートである。蓄積型の符号化方法は圧縮符号化すべきデータを一旦全て読み込んでから圧縮符号化するものである。すなわち、符号化するデータを一旦全て読み込んで頻度表を完成してから、再びデータを読み込んで、符号化するものである。
まず、ステップS19において、頻度表を初期化する。ステップS20のループにおいて、符号化すべきデータの全てのレコードについて、レコード数分の繰り返し処理を行う。ステップS21においては、1レコードを読み込み、ステップS22において、予め決められた方法によってレコードをカラムに分割する。ステップS23のループで、ステップS24をカラム数分繰り返し処理する。ステップS24においては、カラムごとに個別に設けられた頻度表を更新する。ステップS23のカラム数分の繰り返し処理が終わると、ステップS20のレコード数分の繰り返し処理が終わったか判断し、終わっていない場合には繰り返し処理を継続し、終わった場合には、ステップS25に進む。ステップS25に至った時点で、符号化すべき全てのデータについて頻度表の更新が終わったことになるので、頻度表を出力して、ステップS26に進む。
ステップS26においては、カラム数の分だけステップS27の処理を繰り返す。ステップS27においては、頻度表から符号化表を作成する。符号化表は、ハフマン符号の場合には、ハフマン符号辞書であり、算術符号の場合には、出現確率であり、実際に符号化情報に元データを置き換える場合に用いる表である。ステップS26のカラム数分の繰り返し処理が終了すると、ステップS28に進む。
ステップS28では、符号化すべきデータに含まれるレコード数分だけ繰り返し処理を行う。ステップS29においては、1レコードを読み込み、ステップS30において、レコードを予め決められた方法に従って分割する。ステップS31において、カラムごとに圧縮符号化し、ステップS32において、圧縮符号化データを混合して、1レコードの圧縮符号化データを得る。ステップS33において、1レコード分のデータを出力する。ステップS28のループ処理において、レコード数分の繰り返し処理が終了した場合には、処理を終了する。
なお、ここで、圧縮符号化すべきデータのレコード数は、例えば、圧縮符号化すべきデータがセンサなどから受信する固定長データである場合、どの程度のデータをまとめて圧縮符号化するかに依存する。まとめて圧縮符号化するデータの容量は、符号化装置が有するメモリの容量などに依存するが、これは、本実施形態を利用する当業者によって適宜決定されるべきものである。
図8及び図9は、蓄積型ハフマン符号化及び復号化方法をさらに詳しく説明するフローチャートである。
図8に示す蓄積型ハフマン符号化方法においては、ステップS40において、頻度表を初期化する。ステップS41のループで、ステップS41の間の処理をレコード数分繰り返す。ステップS42においては、1レコードを読み込み、ステップS43において、レコードを所定の方法で、カラムに分割する。ステップS44のループで、ステップS45をカラム数分繰り返す。ステップS45においては、頻度表をカラムごとに更新する。そして、全てのカラムの頻度表を更新するとステップS46において頻度表を出力し、ステップS47のループに進む。
ステップS47のループにおいては、ステップS48の処理をカラム数分繰り返す。ステップS48においては、頻度表に基づいて符号化表を作成する。
次にステップS49のループにおいて、ステップS49の間にある処理をレコード分繰り返す。ステップS50においては、1レコードを読み込む。ステップS51においては、レコードを所定の方法でカラムに分割する。ステップS52のループにおいては、ステップS53の処理をカラム数分繰り返す。ステップS53においては、カラムデータを符号化する。次にステップS54において、ステップS52のループで求めた符号化データを1レコードに混合する。ステップS55においては、1レコード分のデータを出力する。レコード数分の処理が終わったら、処理を終了する。
図9に示す蓄積型ハフマン復号化方法においては、ステップS60において、頻度表を読み込む。ステップS61のループにおいては、ステップS62をおカラム数分繰り返す。ステップS62において、頻度表に基づいて符号表を作成する。ステップS63のループにおいては、ステップS63の間の処理をレコード数分繰り返す。ステップS64においては、1レコードを読み込む。ステップS65のループにおいては、ステップS66をカラム数分繰り返す。ステップS66においては、ステップS62で作成した符号化表に基づいてカラムデータを復号化する。ステップS67においては、各カラムの復号化データを1レコードに混合する。ステップS68においては、1レコード分のデータを出力する。レコード数分の処理が終わったら、処理を終了する。
図10及び図11は、適応型ハフマン符号化及び復号化方法を説明するフローチャートである。
図10に示す適応型ハフマン符号化方法においては、ステップS70において、頻度表を初期化する。ステップS71のループにおいては、ステップS72の処理をカラム数分繰り返す。ステップS72において、初回の処理ではステップS70で初期化された頻度表に基づいて、それ以降はステップS80で更新された頻度表に基づいて符号化表を作成する。ステップS73においては、1レコードを読み込む。ステップS74において、レコードを所定の方法でカラムに分割する。ステップS75のループにおいては、ステップS76の処理をカラム数分繰り返す。ステップS76においては、ステップS72で作成した符号化表に基づいてカラムデータを符号化する。ステップS77においては、各カラムの符号化データを1レコード分混合する。ステップS78においては、1レコード分のデータを出力する。ステップS79のループにおいては、ステップS80の処理をカラム数分繰り返す。ステップS80において、各カラムの頻度表を更新する。カラム数分の繰り返しが終わると、ステップS71に戻って符号化表を作成し、ステップS73以降の次のレコードの処理を繰り返す。
図11に示す適応型ハフマン復号化方法は、図10に示す適合型ハフマン符号化方法で符号化されたデータを復号化するものである。符号化データの復号は、符号化に用いられた符号化表を逆引きして符号化データから元のカラムのデータを求めることにより行われる。したがって、図11に示すフローは、図10に示すフローのカラムデータの符号化のステップと符号化データを混合するステップが、カラムデータの復号化のステップと復号化データを混合するステップに置き換わり、1レコード読込みステップが1レコード分の符号化データ読込みステップに、符号化データの出力ステップが復号化されたレコードの出力ステップに置き換わったものである。
図11に示すように、ステップS85において、頻度表を初期化する。ステップS86のループにおいては、ステップS87の処理をカラム数分繰り返す。ステップS87において、初回の処理ではステップS85で初期化された頻度表に基づいて、それ以降はステップS94で更新された頻度表に基づいて、符号化表を作成する。ステップS88においては、1レコード分の符号化データを読み込む。ステップS89のループにおいては、ステップS90の処理をカラム数分繰り返す。ステップS90においては、ステップS87で作成した符号化表に基づいてカラムデータを復号化する。ステップS91においては、各カラムの復号化データを1レコード分混合する。ステップS92において、1レコード分のデータを出力する。ステップS93のループにおいては、ステップS94の処理をカラム数分繰り返す。ステップS94においては、各カラムの頻度表を更新する。カラム数分の処理が終わると、ステップS86に戻って符号化表を作成し、ステップS88以降の次のレコードの処理を繰り返す。
図12及び図13は、適応型算術符号化及び復号化方法を説明するフローチャートである。先に図4B及び図5Bにより説明した機能ブロックの構成に対応するものであり、これらフローチャートに示すアルゴリズムを実行するプログラムにより、コンピュータ上に適応型算術符号化及び復号化装置を実現することができる。
図12に示す適応型算術符号化方法においては、ステップS95において、頻度表を初期化する。ステップS96のループにおいては、ステップS97の処理をカラム数分繰り返す。ステップS97において、初回の処理ではステップS95で初期化された頻度表に基づいて、それ以降はステップS106で更新された頻度表に基づいて、出現確率表を作成する。ステップS98においては、1レコードを読み込む。ステップS99においては、レコードを所定の方法でカラムに分割する。ステップS100においては、レンジを初期化する。ステップS101のループにおいては、ステップS102の処理をカラム数分繰り返す。ステップS102においては、レンジを算術符号化方法に従って分割する。ステップS103においては、ステップS101のループで最終的に得られたレンジから符号化データを作成する。ステップS104においては、この符号化データを1レコード分の符号化データとして出力する。ステップS105のループにおいては、ステップS106の処理をカラム数分繰り返す。ステップS106においては、頻度表を更新する。カラム数分の処理が終わると、ステップS96に戻って出現確率表を作成し、ステップS98以降の次のレコードの処理を繰り返す。
図13に示す適応型算術復号化方法は、図12に示す適合型算術符号化方法で符号化されたデータを復号化するものである。
図13に示すように、ステップS110において、頻度表を初期化する。ステップS111のループにおいては、ステップS112の処理をカラム数分繰り返す。ステップS112においては、頻度表に基づき、出現確率表を作成する。ステップS113においては、1レコード分の符号化データを読み込む。ステップS114において、レンジを初期化する。ステップS115のループにおいては、ステップS116a、ステップS116とステップS117の処理をカラム数分繰り返す。ステップS116aにおいては、それぞれのカラムにおける復号化されたデータ値の頻度により出現確率を計算し、当該カラムに対応する現在のレンジが分割される値を求める。ステップS116においては、各カラムに対応する現在のレンジが分割される値と符号化データの値を比較して当該カラムの復号化データを求める。ステップS117においては、ステップS116で求めた復号化データとステップS116aで求めた現在のレンジが分割される値に基づき、次のカラムに対応するレンジを求める。ステップS118においては、ステップS116で求めたカラム復号化データを1レコード分混合する。ステップS119においては、1レコード分のデータを出力する。ステップS120のループにおいては、ステップS121の処理をカラム数分繰り返す。ステップS121においては、各カラムの頻度表を更新する。カラム数分の処理が終わると、ステップS111に戻って出現確率表を作成し、ステップS113以降の次のレコードの処理を繰り返す。
以上、図6〜図13を参照して本実施形態に係るデータ圧縮符号化方法及び復号化方法を説明したが、これら図面に記載したフローチャートに示すアルゴリズムを用いたプログラムにより本実施形態に係るデータ圧縮符号化装置及び復号化装置をコンピュータ上に実装することも可能である。
次にレコードの具体例を用いて本実施形態のデータ圧縮符号化・復号化について説明する。
図14〜図22は、本実施形態のデータ圧縮符号化方法の処理例を示す。
図14は、本実施形態の蓄積型ハフマン符号化方法を具体例により説明する図である。図14に示す例では、10個のレコードを蓄積し、その後一括して圧縮符号化する。
図14(a)に例示するのは、固定長8ビットの10件のレコードからなるレコード群20である。各レコードは、例えば、4ビット幅のカラム1とカラム2に分割されるものとする。なお、これ以降の他の方式の符号化の説明においても、符号化の対象となるレコード群として、同じくレコード群20を用いる。
図14(b)に例示するのは、ハフマン符号を用いた場合の符号辞書25の例である。従来のハフマン符号化の方法については、非特許文献1を参照されたい。本実施形態の場合、符号辞書25は、それぞれのカラムに個別に持つ。同一のカラムについては、同一の符号辞書を使う。図14の場合、1レコードを2つのカラムに分割しているので、符号辞書も2つ設けられている。
図14(b)において、引用符号21で示すのはそれぞれのカラムに対して出現する可能性のあるデータである。つまり、1つのカラムは4ビットからなっているので、0と1の順列が、2通りある。したがって、これらのビットの組み合わせ全てを網羅するために、符号辞書25は、16個の行からなっている。
引用符号22で示すのは、レコード群20における、各ビットパターンの出現回数を求めたものである。この出現回数から各データの出現確率を求めたものが引用符号23で示されるものであり、引用符号24で示すのは自己情報エントロピーである。出現確率23は、出現回数22を、レコードの数で割ったもので得られる。例えば、引用符号25で示される符号辞書の左の符号辞書において、「0010」の出現回数は7回であるが、全レコード数は、10件なので、出現確率23は、7/10=0.7となる。また、自己情報エントロピー24をSとし、出現確率23をpとすると、S=−log(p)で与えられる。この出現確率23及び自己情報エントロピー24を基に符号化を行う。
引用符号27で示すのが上記符号化で得られた各カラムの符号化データである。このハフマン符号を結合することでレコードを圧縮符号化した符号化データが得られる。図14(c)の引用符号26に示すのがレコード群20の各レコードに対する符号化データである。レコード群20と符号化データ26を比較すると、データ量が削減されていることが判るが、この方法では、復号化を行う際に、圧縮符号化の時に使用した符号辞書を参照する必要があるため別途引用符号22の頻度表(または、引用符号25の符号辞書)の授受が必要である。図14に例示した蓄積型の場合、ある程度のレコードをまとめて圧縮符号化するのに適する。
なお、図6及び図7の説明においては、頻度表と符号化表は別個のものとして説明したが、図14の例においては、頻度表は符号化表に含まれる構造となっている。
図15〜図17は、本実施形態の適応型ハフマン符号化方法を具体例により説明する図である。適応型の符号化復号化方法では、事前に出現確率ないし発生頻度を求めておく必要がなく、レコードデータが発生した時点で即時に符号化することができる。またこの符号化された情報は即時に復号化できる。
図15(a)に示すのは、引用符号30−1で示す初期状態の符号化表25、レコード群20及び最初のレコードの符号化データ31−1である。入力されるレコード群20は、図14に示すものと同じである。ただし、図15(a)に示すように、入力されたレコードは太字で未入力のレコードは細字で表記している。なお、図15(b)以下では引用符号20は省略している。
符号化表25の構造は図14に示す符号辞書25の構造と同じである。同一の項目には図15(a)においてのみ同一の引用符号を付している。初期状態の符号化表25に含まれる頻度表22にはラプラススムージングを適用してすべて同一の値“1”としてある。この頻度を基に出現確率、自己情報エントロピー、ハフマン符号を求め、この符号を用いて最初のレコードを符号化する。符号化結果は、符号化データ31−1に示すとおり入力レコードと同じ値である。初期状態ではすべての頻度が等しくなるため圧縮の効果は得られない。
次に、最初のレコードを基に頻度表を更新する。出現したデータに該当する項の頻度を一定値増加させる。図15(b)に示すように、左のカラムでは「0010」、右のカラムでは「1000」の発生回数が1増加している。この頻度表を基に改めて出現確率、自己情報エントロピーを求めたものが30−2として示した符号化表25であり、ハフマン符号を求めたものが符号化データ31−2に太字で示されている。符号化データ31−2では、圧縮効果が得られていない最初のレコードに比べ、圧縮効果が現れたことを示している。
次に、図16(a)に示すように、3番目のレコードの左カラムに「0010」、右カラムに「1000」が再び現れているので、30−3として示した符号化表の左の頻度表の「0010」の項と、右の頻度表の「1000」の項が3に更新されている。この頻度表に基づいてハフマン符号化した結果が、符号化データ31−3に示されている。
更に、図16(b)において、4番目のレコードの左カラムに「0010」、右カラムに「1100」が現れているので、30−4として示した符号化表の頻度表においては、左の頻度表において、「0010」の項が4に更新されている。また、右の頻度表において「1100」の項は、初めて現れたのであるが、初期値が1であるため、更新はされていない。この頻度表に基づいてハフマン符号化した結果が、符号化データ31−4に示されている。
更に、図17(a)において、5番目のレコードの左カラムに「1010」、右カラムに「1000」が現れているので、30−5として示した符号化表の頻度表においては、左の頻度表において、「1010」の項が1の初期値に維持されている。また、右の頻度表において「1000」の項は、4に更新されている。この頻度表に基づいてハフマン符号化した結果が符号化データ31−5に示されている。
更に、図17(b)において、6番目のレコードの左カラムに「0010」、右カラムに「1000」が現れているので、30−6として示した符号化表の頻度表においては、左の頻度表において、「0010」の項が5に更新されている。また、右の頻度表において「1000」の項は、5に更新されている。この頻度表に基づいてハフマン符号化した結果が符号化データ31−6に示されている。
このように処理を繰り返すことにより、順次符号化していく。図17には、6レコードまでの符号化表を記してあるが、同様に頻度表の更新と出現確率、自己情報エントロピー、ハフマン符号を繰り返し求め、符号化することにより、全てのレコードについて符号化が可能である。
このように、適応型の符号化方法を用いると、符号辞書の授受が不要なためレコード数が少ないデータでも圧縮効果が得られることが示される。
図18〜図22は、カラム分割を1ビット単位とした本実施形態のデータ圧縮符号化方法を具体例により説明する図である。
この方法により符号化及び復号化時に頻度表の記録に使用するメモリ容量を削減することができる。
ビット単位に分割したときは、算術符号化(Arithmetic coding)の方法を応用して符号化することができる。また、カラム方向に順次符号化しながら頻度を更新していくので、適応型二値算術符号化方法を用いる。算術符号化の方法自体は従来から知られたものを採用ができる。必要とあれば非特許文献1を参照されたい。
入力されるレコード群20は、図14に示すものと同じデータであるが1ビット単位にカラム分割している。
図18(a)に示す表40−1の上段が頻度であり、下段がそれに対応する出現確率である。以下の図18(a)〜図22(b)まで同様である。表40−1は初期状態の表である。本来はデータが「0」の場合と「1」の場合それぞれの頻度が必要になるが、「0」の頻度のみを表40−1に記載している。「1」の場合の頻度を記録する代わりに総レコード数41−1の欄を設けている。「1」の頻度は総レコード数から「0」の頻度を減ずることで求めることができる。初期値は、やはりラプラススムージングを用いて「0」の頻度が1、総レコード数は2としている。この頻度から求めた「0」の出現確率を表40−1の下の段に記載している。出現確率は、頻度/総レコード数で求めることが出来る。また、「1」の出現確率は (1 - (「0」の出現確率))で計算することができる。
この出現確率を基に算術符号化を行う。ここで、本実施形態では、カラムごとに独立した(今の例の場合、ビットごとに独立した)出現確率(頻度)を用いる。1レコード目の算術符号化結果が、符号化データ42−1に示されている。また、算術符号化で求めたレンジの値が符号化データ42−1の右側に記載されている。このレンジに含まれる最も短いビット数で表現できる数値の2進数表現の小数部分が算術符号化の結果になる。この例の場合は 0.00101(2進数)=0.15625(10進数)であるから結果は「00101」になる。一般に、算術符号化の場合、符号化結果の末尾の「0」は省略しても復号することが可能であるので、通常の通り、ここでは、末尾の「0」を省略している。また、符号化結果として、本実施形態では、ビット単位でカラム分割するので、頻度は、レコード内の他のビットの頻度とは無関係に、しかし、異なるレコード間では、1ビット目は1ビット目のビットの出現頻度、2ビット目は2ビット目の出現頻度・・・のように、ビット位置によって決まるビットの出現頻度を計数する。したがって、出現確率は、所定のビット位置に現れた「0」の数を、処理したレコード数で割ることによって得ている。「1」の出現確率は、1から「0」の出現確率を引くことによって得ている。
1レコード目の符号化の後に更新された2レコード目の出現頻度と出現確率が図18(b)の表40−2に示されている。「0」の頻度のみを求めているので、表40−2においては、1レコード目で「0」が現れた箇所だけ頻度が1増加されている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41−2が3に増加されている。頻度と総レコード数から求めた出現確率が頻度表40−2の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−2の2番目に2番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。このレンジに含まれる最小ビット数の2進表現は0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
2レコード目の符号化の後に更新された3レコード目の出現頻度と出現確率が図19(a)の表40−3に示されている。表40−3においては、2レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、3となっている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41−2が4に増加されている。頻度と総レコード数から求めた出現確率が表40−3の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−3の3番目に3番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
3レコード目の符号化の後に更新された4レコード目の出現頻度と出現確率が図19(b)の表40−4に示されている。表40−4においては、3レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、4となっている。「1」が現れた3ビット目と5ビット目の箇所の頻度は初期値のままである。また、総レコード数41−4が5に増加されている。頻度と総レコード数から求めた出現確率が表40−4の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−4の4番目に4番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.1(2進)=0.5(10進)であるから符号化の結果は「1」になる。
4レコード目の符号化の後に更新された5レコード目の出現頻度と出現確率が図20(a)の表40−5に示されている。表40−5においては、4レコード目で「0」が現れた箇所だけ頻度が1増加され、それぞれ、5となっている。4レコード目で新たに「1」が現れた3ビット目と5ビット目と6ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−5が6に増加されている。頻度と総レコード数から求めた出現確率が表40−5の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−5の5番目に5番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.111(2進)=0.875(10進)であるから符号化の結果は「111」になる。
5レコード目の符号化の後に更新された6レコード目の出現頻度と出現確率が図20(b)の表40−6に示されている。表40−6においては、5レコード目で「0」が現れた箇所だけ頻度が1増加されている。5レコード目で新たに「1」が現れた1ビット目と3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−6が7に増加されている。頻度と総レコード数から求めた出現確率が表40−6の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−6の6番目に6番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
6レコード目の符号化の後に更新された7レコード目の出現頻度と出現確率が図21(a)の表40−7に示されている。表40−7においては、6レコード目で「0」が現れた箇所だけ頻度値が1増加されている。6レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−7が8に増加されている。頻度と総レコード数から求めた出現確率が表40−7の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−7の7番目に7番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
7レコード目の符号化の後に更新された8レコード目の出現頻度と出現確率が図21(b)の表40−8に示されている。表40−8においては、7レコード目で「0」が現れた箇所だけ頻度が1増加されている。7レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−8が9に増加されている。頻度と総レコード数から求めた出現確率が表40−8の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−8の8番目に8番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.01(2進)=0.25(10進)であるから符号化の結果は「01」になる。
8レコード目の符号化の後に更新された9レコード目の出現頻度と出現確率が図22(a)の表40−9に示されている。表40−9においては、8レコード目で「0」が現れた箇所だけ頻度値が1増加されている。8レコード目で新たに「1」が現れた3ビット目と5ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−9が10に増加されている。頻度と総レコード数から求めた出現確率が表40−9の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−9の9番目に9番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.10101(2進)=0.65625(10進)であるから符号化の結果は「10101」になる。
9レコード目の符号化の後に更新された10レコード目の出現頻度と出現確率が図22(b)の表40−10に示されている。表40−10においては、9レコード目で「0」が現れた箇所だけ頻度が1増加されている。9レコード目で新たに「1」が現れた3ビット目と4ビット目の箇所の頻度は、以前の値のままである。また、総レコード数41−10が11に増加されている。頻度と総レコード数から求めた出現確率が表40−10の下の段に記載されている。そして、この出現確率から行った算術符号化結果が、符号化データ42−10の10番目に10番目のレコードに対応して示されている。算術符号化のレンジの値が変化していることが分かる。0.101111(2進)=0.734375(10進)であるから符号化の結果は「101111」になる。
このように、頻度の更新、算術符号化を繰り返すことで符号化を行う。
上記ビットごとの分割で、算術符号化を用いる場合には、以下のような効果がある。
すなわち、レコード全体を1カラムと見做せば従来技術と同様の圧縮になるが、本実施形態の例で必要とする頻度表の大きさは8ビットのレコードをビット単位に分割した場合8+1=9であるが、従来技術では256の大きさを必要とする。なお、出現確率は頻度表から計算できるので別途記憶する必要はない。
仮にレコード長が32ビットだとすると本実施形態の例では33、従来技術では2の32乗=4294967296になり、レコード長が長いデータではレコード全体を1カラムと見做す方法は現実的には不可能になる。分割を行った場合全体で1種類の辞書を持つ従来の圧縮技術を用いる方法よりも本実施形態の例の方法の方が高い圧縮効果が得られる。
図23〜図31は、本実施形態の復号化方法の処理例を示す。
図23は、図14に示す蓄積型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
事前に図14に示す蓄積型ハフマン符号化方法により符号化された符号化データを復号すること、即ち、4ビットのカラムが2つからなる8ビットのレコードを扱うことを決めておく。またハフマン符号を求める方式も取り決めておく。
さらに復号側では事前に図23に示す表50−1を用意する。上記の取り決めにより16(2の4乗)行2ブロックからなる表50−1ができる。また表50−1のa列以外の列は空欄にしておく。
次に符号化で作成されたシンボルの発生頻度を列bに読み込む。この場合32個の整数値を読み込むことになる。この発生頻度を基に列cの出現確率を計算しハフマン木を作成しハフマン符号を列eに求めて表50−1を完成させる。ハフマン符号の計算手順は符号化と同一の手順を用いる必要がある。
列bの発生頻度ではなく列cの出現確率を授受する方法もある。また列eのハフマン符号表を授受することもでき、この場合はハフマン符号を求める方式は事前に取り決めておく必要はない。
次に符号化ビット列を読み込み表50−1から復号化データを求める。ハフマン符号は接頭符号であるから符号化ビット列を先頭から順に復号化することができる。特別な区切り記号は必要ない。
表50−1を用いて、符号化データ51−1を復号化したものが復号レコード51−2である。符号化データ51−1の第1行を見ると、符号化データは「00」となっている。表50−1の列aと列eを見ると、左カラムにおいては、符号化データ「0」は、シンボル列「0010」に対応し、右カラムにおいては、符号化データ「0」は、シンボル列「1000」に対応している。従って、符号化データ「00」は、復号化後は、「00101000」となる。符号化データ51−1の第3行まで同様である。
符号化データ51−1の第4行は「010」となっている。表50−1から、左コラムでは、「01」という符号は存在しないので、左コラムの符号化データとして「0」を取る。これは、復号化後は「0010」に対応する。右コラムの符号化データは「10」となるので、表50−1を見ると、符号化後は「1100」となる。従って、復号化後のシンボル列は、「00101100」となる。以下同様にして、符号化データ51−1を復号化することが出来る。
図24〜図26は、図15〜図17に示す適応型ハフマン符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
事前に図15〜図17に示す適応型ハフマン符号化方法により符号化された符号化データを復号すること、即ち、4ビットのカラムが2つからなる8ビットのレコードを扱うことを決めておく。またハフマン符号を求める方式も取り決めておく。
復号側では事前に図24(a)に示す表50−2を用意する。上記の取り決めにより16(2の4乗)行2ブロックからなる表ができる。この方法では事前に頻度表の授受を行わないので発生頻度の初期値は符号化時と同様にラプラススムージングを用いてすべて「1」としてハフマン符号を計算する。
ここで最初の符号化データ「00101000」を領域51−2に読み込んだ時点で表50−2のe列から対応する符号を求めればa列が復号化データである。これを左のカラムと右のカラムについて行い、2つの復号化データを表51−3上で結合することにより、符号化前のレコードを復号することができる。ハフマン符号は接頭符号であるから符号化ビット列を先頭から順に復号化することができるので、特別な区切り記号は必要ない。
左カラムの復号化データは「0010」、右カラムの復号化データは「1000」であるから表50−2の該当する欄の頻度に1加算する。この加算した頻度を基に図24(b)に示す表50−3のハフマン符号を求める。
ここで2レコード目のデータ「010101」を読み込む。最初に左側のe列から1カラム目を復号化する。つまり、符号化データの先頭から「010」を見つけて、これが、表50−3において復号化後のデータ「0010」に対応することを取得する。続けて右側のe列から2カラム目を復号化する。つまり、符号化データの残りが「101」になっていることから、表50−3を見ると、これは、「1000」に対応することが分かる。従って、復号化後の右カラムのデータは「1000」であることを取得する。そして、左カラムと右カラムの復号化後のシンボル列を結合し、「00101000」を得る。そして、表50−3を更新する。ハフマン符号は接頭符号であるから区切り記号は必要ない。この処理を繰り返すことで復号化ができる。
図25(a)においては、3番目の符号化データが「001001」であるので、表50−4の左カラムから「001」が「0010」に、右カラムから「001」が「1000」に対応することが分かる。従って、3番目の復号化後シンボル列は、「00101000」となる。
また、図25(b)に示すように4番目の符号化データは「00100010」であるので、表50−5から、左カラムの「001」が「0010」に対応し、右カラムの「00010」が「1100」に対応すると分かる。従って、4番目の復号化後のシンボル列が「00101100」であることがわかる。
図26(a)に示すように、5番目の符号化データが「0000011」であるので、表50−6の左カラムから「00000」が「1010」に、右カラムから「11」が「1000」に対応することが分かる。従って、5番目の復号化後シンボル列は、「10101000」となる。
また、6番目の符号化データは「0101」であるので、表50−7から、左カラムの「01」が「0010」に対応し、右カラムの「01」が「1000」に対応すると分かる。従って、6番目の復号化後のシンボル列が「00101000」であることがわかる。以上の処理を繰り返すことですべてのレコードの復号化を行うことができる。
図27〜図31は、図18〜図22に示す適応型算術符号化方法により符号化された符号化データを復号する復号化方法を説明する図である。
事前に図18〜図22に示す適応型算術符号化方法により符号化された符号化データを復号すること、即ち、1ビットのカラム×8カラムからなる8ビットのレコードを扱うことを決めておく。また算術符号化の方式も取り決めておく。
復号側では事前に図27(a)に示す表60−1を用意する。上述の取り決めにより8ブロックからなる表ができる。各ブロックはカラムデータが「0」の時と「1」の時の2通りが必要だが符号化の時と同様に「0」の時のみを記憶する。適応型では事前に頻度表の授受を行わないので発生頻度の初期値は符号化時と同様にラプラススムージングを用いてすべて「1」として出現確率を計算したのが図27(a)に示す表60−1である。
ここで1レコード目のデータ「00101」を領域61−2に読み込む。なお、算術符号は接頭符号ではないのでレコード区切りが判定できるプロトコルを使う必要がある。
受信データ「00101」を2進小数と解釈すると符号化データ0.15625が得られる。このデータに基づきカラム値を判定しながら算術符号化と同様の方法でレンジの分割を行うことで表61−3に示すように符号化前のレコードである復号化データ「00101000」が得られる。
レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図27(b)に示す表60−2である。
ここで2レコード目のデータ「01」を読み込む。
受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら算術符号化と同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。以下、この2番目の復号化データ取得のための処理例を念のため詳細に説明する。
表60−2には1番目の符号化データの入力により、図27(b)に示す頻度が記載されている。入力された2番目の符号化値「01」は2進小数 0.01 の小数部分であり、10進表現では0.25となる。この10進表現の値「0.25」と復号された各カラムの「0」の頻度から求めたカラム(ビット)ごとの「0」の出現確率に基づいて、ビットごとに復号化データを順次求めていく。最初のビットを復号化するときのレンジの初期値は[0,1)である。カラムごとの「0」の出現確率に従ってレンジ分割を繰り返す。分割値は「(レンジの最大 − レンジの最小)*「0」の確率 + レンジの最小」の計算式により計算される。
まず、表60−2の最初のカラムに記載された「0」の頻度「2」とレコード数「3」から表60−2に記載されたように出現確率「0.667」を求め、上述の式により現在のレンジの分割値を求める。現在のレンジは初期値の[0,1)であるから、算出される分割値は「0.667」である。この分割値を求める処理は図5Bに示すカラム分割範囲判定手段20−1の処理に対応する。(なお、出現確率は頻度が更新された時に予め計算しておくこともできる。)
復号されたレコードの各カラムの値は、符号値<=分割値のとき「0」、符号値>分割値のとき「1」になる。今の場合、分割値は「0.667」、符号値は「0.25」であるから、最初のカラムの復号されたビット値は「0」になる。この処理は、図5Bのカラム1復号化手段14a−1の処理に対応する。また、最初のカラムのビット値が「0」、分割値は「0.667」であるから、次のレンジを分割値より小さい範囲の[0, 0.667)とする。この処理は、図5Bのレンジ分割手段21−1の処理に対応する。
次に表60−2の2番目のカラムの「0」の出現頻度から現在のレンジ[0, 0.667)の分割値「0.444」を求め、この分割値と符号値「0.25」の大小関係から2番目のカラムの復号されたビット値は「0」になる。また、この復号ビット値により次のレンジは[0, 0.444)になる。これらの2番目のカラムについての処理は、最初のカラムについての処理と同様に、図5Bに記載されたカラム分割範囲判定手段20−2、カラム2復号化手段14a−2及びレンジ分割手段21−2による処理対応する。
以下同様に、に表60−2の3番目のカラムの「0」の出現頻度から現在のレンジ[0, 0.444)の分割値「0.148」を求め、この分割値と符号値「0.25」の大小関係から3番目のカラムの復号されたビット値は「1」になる。また、この復号ビット値により次のレンジは[0.148, 0.444)になる。
上述の処理を順次カラムごとに繰り返すことで1つのレコードの復号化が完成する。
このように、順次復号化されるカラムデータを図5Bの混合手段17aで混合して、1レコードの復号化データとする。
次に図27(b)に示す表60−2のレコード数に1加算し、2番目の復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したものが図28(a)に示す表60−3である。
ここで3レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら2番目のレコードについて説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図28(b)に示す表60−4である。
ここで4レコード目のデータ「1」を読み込む。受信データ「1」を2進小数と解釈すると符号化データ0.5が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101100」が得られる。
レコード数に1加算し、この復号化データ「00101100」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図29(a)に示す表60−5である。
ここで5レコード目のデータ「111」を読み込む。受信データ「111」を2進小数と解釈すると符号化データ0.875が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「10101000」が得られる。
レコード数に1加算し、この復号化データ「10101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図29(b)に示す表60−6である。
ここで6レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図30(a)に示す表60−7である。
ここで7レコード目のデータ「01」を読み込む。受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図30(b)に示す表60−8である。
ここで8レコード目のデータ「01」を読み込む受信データ「01」を2進小数と解釈すると符号化データ0.25が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00101000」が得られる。
レコード数に1加算し、この復号化データ「00101000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図31(a)に示す表60−9である。
ここで9レコード目のデータ「10101」を読み込む。受信データ「10101」を2進小数と解釈すると符号化データ0.65625が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00110000」が得られる。
レコード数に1加算し、この復号化データ「00110000」の「0」であるカラムの頻度に1を加算して改めて出現確率を計算したのが図31(b)に示す表60−10である。
ここで10レコード目のデータ「101111」を読み込む。受信データ「101111」を2進小数と解釈すると符号化データ0.734375が得られる。このデータに基づきカラム値を判定しながら先に説明したと同様の方法でレンジの分割を行うことで復号化データ「00111100」が得られる。
図32は、本実施形態をプログラムで実装する場合の、プログラムを実行する例示的コンピュータのハードウェア環境図である。
例示的コンピュータ60は、例えば、CPU50、ROM51、RAM52、ネットワークインタフェース53、記憶装置56、読み書きドライブ57、入出力デバイス59を含む。これらは、バス55によって、相互に接続される。
CPU50は、本実施形態を実装するプログラムを実行する。プログラムは、記憶装置56あるいは、可搬記録媒体58に記録され、これらから、RAM52に展開されることによって、CPU50で実行可能となる。
記憶装置56は、例えば、ハードディスクなどである。可搬記録媒体58は、フレキシブルディスクなどの磁気ディスク、CD−ROM、DVD、Blu−Rayなどの光ディスク、ICメモリなどの半導体メモリなどを含み、読み書きドライブ57に挿入されて、可搬記録媒体58への読み書きが行われる。本実施形態においては、本実施形態を実装するプログラムが記憶装置56や可搬記録媒体58に記録されるのみならず、符号化対象の入力固定長データが一旦これらに記録されてから、RAM52に読み出されて、符号化されても良い。
ROM51は、バス55を介しての通信や、ネットワークインタフェース53、入出力デバイス59の機能を実行するためのBIOSなどの基本プログラムが格納される。CPU50がこれらの基本プログラムを実行することにより、例示的コンピュータ60の基本機能が実現される。
入出力デバイス59は、例示的コンピュータ60を使用するユーザからの情報の入力を受け付けたり、ユーザへの情報の出力を行ったりするために用いられる。入出力デバイス59は、例えば、キーボード、マウス、タッチパネル、ディスプレイ、プリンタ等を含む。
ネットワークインタフェース53は、例示的コンピュータ60がネットワーク54を介して、他のコンピュータやネットワーク装置等と通信を行うために用いられる。本実施形態においては、本実施形態を実装するプログラムが、ネットワーク54を介して、記憶装置56あるいは可搬記録媒体58に記録されることが出来る。また、ネットワーク54に接続された他のコンピュータやネットワーク装置上で、本実施形態を実装するプログラムを実行し、その入出力データの送受信を、ネットワーク53を介して行ってもよい。更に、符号化されるべき固定長データは、ネットワーク54に接続された、センサを有する端末から送信されてくることが出来る。
ネットワーク54は、有線ネットワーク、無線ネットワークなどコンピュータ同士あるいはコンピュータとネットワーク装置との間で通信を行うことができるものであればいずれのものであってもよい。一例では、ネットワーク54は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、固定電話ネットワーク、携帯電話ネットワーク、アドホックネットワーク、VPN(Virtual Private Network)、センサネットワークなどを含むことが出来る。
以上説明したように、本発明の一側面による本実施形態においては、固定長データの固定長ビット列が、複数の決められたフィールドに記述される異なる意味を持つデータから構成され、固定長データごとに、同じ位置にあるフィールドに記述されるデータが同じ種類のデータである場合に、固定長データの固定長ビット列を任意のビット数のカラムに分割し、カラム相互には個別に、カラム方向に連続して符号化することにより、圧縮率が従来の符号化方法より高い圧縮符号化を実現することが出来る。
圧縮率の向上の例としては、本発明者による本実施形態を利用した圧縮符号化装置の試作機によれば、70,016バイト、560,128ビットの元データに対し、13,532バイト、94,000ビット(パッディングビットを含まず)まで圧縮することが出来た。gzipが14,464バイト、115,712ビットの圧縮、bzip2が12,985バイト、103,880ビットの圧縮であったことから、本実施形態の圧縮符号化方法の有効性が理解できる。
また、本実施形態の符号化装置は、FPGA(Field Programmable Gate Array)などのハードウェアによって実装することも出来る。
例えば、本実施形態の符号化装置は、一部をハードウェアで、他の部分をソフトウェアで、ハードウェアとソフトウェアを組み合わせて実現することも出来る。
また、上記各実施形態は、相互に独立に、あるいは、相互に組み合わされて実現されることが出来る。
上記実施形態において、適応型符号化方法を用いる実施形態においては、逐次圧縮符号化することができ、一旦データをまとめて格納する必要が無いので、リアルタイムに符号化を実行することが出来る。
1 センサネットワーク
2 センサ
3 ゲートウェイ
4 処理装置
10、10a、16 分割手段
11−1〜11−m、11a−1〜11a−m カラム1〜mレジスタ
12−1〜12−m カラム1〜m符号化手段
12a―1〜12a−m、20−1〜20−m カラム1〜mカラム分割範囲判定手段
13、17、17a 混合手段
14−1〜14−m、14a−1〜14a−m カラム1〜m復号化手段
15−1〜15−m カラム1〜m頻度表、符号化表
18−1〜18−m、21−1〜21−m レンジ分割手段
19 符号化手段
50 CPU
51 ROM
52 RAM
53 ネットワークインタフェース
54 ネットワーク
55 バス
56 記憶装置
57 読み書きドライブ
58 可搬記録媒体
59 入出力デバイス

Claims (10)

  1. 予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに分割することと、
    複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により複数の前記レコードを符号化することと、
    を含む圧縮符号化方法。
  2. 前記カラムのビット幅は、カラムごとに異なる、請求項1に記載の圧縮符号化方法。
  3. 前記カラムに分割することは、前記フィールドごとに分割することである、請求項1に記載の圧縮符号化方法。
  4. 前記カラムに分割することは、前記フィールドの境界とは無関係に分割することである、請求項1に記載の圧縮符号化方法。
  5. 前記カラムに分割することは、ビット単位で分割することである、請求項1に記載の圧縮符号化方法。
  6. 請求項1に記載の圧縮符号化方法によって圧縮符号化されたデータを復号化する復号化方法であって、
    前記圧縮符号化されたデータをカラム毎にエントロピー符号の復号化方法により復号することと、
    該カラムごとに復号された復号化データを結合することと、
    を含む復号化方法。
  7. 請求項1記載の圧縮符号化方法をコンピュータに実行させるプログラム。
  8. 請求項6記載の復号化方法をコンピュータに実行させるプログラム。
  9. 予め決められたフィールドのうちの同一のフィールドに同種のデータが記述される、1以上のフィールドを含む固定長ビット列からなるレコードを所定のビット幅のカラムに分割する分割手段と、
    複数のレコードにわたって同一位置のカラムにおけるビット値の出現確率をカラムごとに求め、該出現確率に基づいてエントロピー符号化方法により複数の前記レコードを符号化する符号化手段と、
    を備える圧縮符号化装置。
  10. 請求項9の圧縮符号化装置によって圧縮符号化されたデータを復号化する復号化装置において、
    前記圧縮符号化されたデータをカラム毎にエントロピー符号の復号化方法により復号する復号化手段と、
    該カラムごとに復号された復号化データを結合する混合手段と、
    を含む復号化装置。
JP2016145397A 2016-07-25 2016-07-25 データ圧縮符号化方法、その装置、及び、そのプログラム Active JP6336524B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2016145397A JP6336524B2 (ja) 2016-07-25 2016-07-25 データ圧縮符号化方法、その装置、及び、そのプログラム
EP17834102.0A EP3490153B1 (en) 2016-07-25 2017-07-18 Data compression coding method, device therefor, and program therefor
CN201780045701.9A CN109478893B (zh) 2016-07-25 2017-07-18 数据压缩编码方法、其装置及存储介质
PCT/JP2017/025955 WO2018021094A1 (ja) 2016-07-25 2017-07-18 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム
EP20197054.8A EP3771104A1 (en) 2016-07-25 2017-07-18 Data compression coding method, decoding method, apparatus for the methods, and program for the methods
US16/235,741 US10547324B2 (en) 2016-07-25 2018-12-28 Data compression coding method, apparatus therefor, and program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016145397A JP6336524B2 (ja) 2016-07-25 2016-07-25 データ圧縮符号化方法、その装置、及び、そのプログラム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2017008317A Division JP6336636B2 (ja) 2017-01-20 2017-01-20 データ圧縮符号化方法、その装置、及び、そのプログラム
JP2017242544A Division JP2018074604A (ja) 2017-12-19 2017-12-19 データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム

Publications (2)

Publication Number Publication Date
JP2018022933A true JP2018022933A (ja) 2018-02-08
JP6336524B2 JP6336524B2 (ja) 2018-06-06

Family

ID=61015968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016145397A Active JP6336524B2 (ja) 2016-07-25 2016-07-25 データ圧縮符号化方法、その装置、及び、そのプログラム

Country Status (5)

Country Link
US (1) US10547324B2 (ja)
EP (2) EP3490153B1 (ja)
JP (1) JP6336524B2 (ja)
CN (1) CN109478893B (ja)
WO (1) WO2018021094A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135158A (ko) * 2018-05-28 2019-12-06 삼성에스디에스 주식회사 데이터 엔트로피 기반의 데이터 프로세싱 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7047651B2 (ja) * 2018-07-30 2022-04-05 富士通株式会社 情報処理装置、分散処理システム、および分散処理プログラム
EP3817236A1 (en) * 2019-11-04 2021-05-05 Samsung Electronics Co., Ltd. Neural network data processing method and apparatus
CN111181568A (zh) * 2020-01-10 2020-05-19 深圳花果公社商业服务有限公司 数据压缩装置及方法、数据解压装置及方法
US20230214367A1 (en) * 2022-01-05 2023-07-06 AVAST Software s.r.o. System and method for data compression and decompression
CN115441878A (zh) * 2022-08-05 2022-12-06 海飞科(南京)信息技术有限公司 针对文本压缩的fse码表快速建立方法
CN115078892B (zh) * 2022-08-19 2022-11-01 深圳天川电气技术有限公司 一种单机大传动变频器状态远程监测系统
DE102022003682A1 (de) * 2022-10-05 2024-04-11 Mercedes-Benz Group AG Verfahren zur Kompression und Dekompression von Log-Dateien und informationstechnisches System
CN115658628B (zh) * 2022-12-19 2023-03-21 武汉惠强新能源材料科技有限公司 用于mes系统的生产数据智能管理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04216285A (ja) * 1990-12-17 1992-08-06 Nippon Telegr & Teleph Corp <Ntt> サブバンド符号化方式
JP2000305822A (ja) * 1999-04-26 2000-11-02 Denso Corp データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
JP2006100973A (ja) * 2004-09-28 2006-04-13 Nomura Research Institute Ltd データ圧縮装置、及びデータ伸長装置
JP2007214813A (ja) * 2006-02-08 2007-08-23 Sony Corp 符号化方法、符号化プログラムおよび符号化装置
JP2009286064A (ja) * 2008-05-30 2009-12-10 Toyo Seikan Kaisha Ltd 圧縮成形金型及び圧縮成形装置
JP2010026884A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd データ圧縮処理を伴うデータ管理方法
JP2010118795A (ja) * 2008-11-11 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 並列分散情報源符号化システム及び並列分散情報源符号化・復号化方法
WO2013175909A1 (ja) * 2012-05-25 2013-11-28 クラリオン株式会社 データ解凍/圧縮装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748520B1 (en) * 2000-05-02 2004-06-08 3Com Corporation System and method for compressing and decompressing a binary code image
JP4143471B2 (ja) * 2003-05-21 2008-09-03 キヤノン株式会社 画像符号化方法、画像符号化装置及び記録装置
JP4846381B2 (ja) 2006-02-08 2011-12-28 富士通セミコンダクター株式会社 帯域割り当て方法、通信制御装置及び通信装置
JP2007214998A (ja) 2006-02-10 2007-08-23 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法、復号化方法、及びプログラム
JP4688690B2 (ja) 2006-02-15 2011-05-25 日立造船株式会社 プラント設備における状態変化検出方法および状態変化検出装置
US20090006399A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Compression method for relational tables based on combined column and row coding
US7609179B2 (en) * 2008-01-08 2009-10-27 International Business Machines Corporation Method for compressed data with reduced dictionary sizes by coding value prefixes
US7827187B2 (en) * 2008-04-04 2010-11-02 International Business Machines Corporation Frequency partitioning: entropy compression with fixed size fields
US7683809B2 (en) * 2008-04-11 2010-03-23 Aceurity, Inc. Advanced lossless bit coding
US8108361B2 (en) * 2008-07-31 2012-01-31 Microsoft Corporation Efficient column based data encoding for large-scale data storage
JP2011048514A (ja) 2009-08-26 2011-03-10 Panasonic Electric Works Co Ltd データ管理装置及び認証システム
US8487791B2 (en) 2010-02-18 2013-07-16 Research In Motion Limited Parallel entropy coding and decoding methods and devices
EP2362657B1 (en) * 2010-02-18 2013-04-24 Research In Motion Limited Parallel entropy coding and decoding methods and devices
EP2622744B1 (en) * 2010-10-01 2019-11-06 BlackBerry Limited Methods and devices for parallel encoding and decoding using a bitstream structured for reduced delay
EP2664070B1 (en) 2011-01-14 2016-11-02 GE Video Compression, LLC Entropy encoding and decoding scheme
US10816579B2 (en) * 2012-03-13 2020-10-27 Informetis Corporation Sensor, sensor signal processor, and power line signal encoder
US8933829B2 (en) * 2013-09-23 2015-01-13 International Business Machines Corporation Data compression using dictionary encoding
US10235377B2 (en) * 2013-12-23 2019-03-19 Sap Se Adaptive dictionary compression/decompression for column-store databases
CN104156990B (zh) * 2014-07-03 2018-02-27 华南理工大学 一种支持特大型数据窗口的无损压缩编码方法及系统
CN104462524A (zh) * 2014-12-24 2015-03-25 福建江夏学院 一种物联网数据压缩存储方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04216285A (ja) * 1990-12-17 1992-08-06 Nippon Telegr & Teleph Corp <Ntt> サブバンド符号化方式
JP2000305822A (ja) * 1999-04-26 2000-11-02 Denso Corp データベース管理装置,データベースレコード抽出装置,データベース管理方法及びデータベースレコード抽出方法
JP2006100973A (ja) * 2004-09-28 2006-04-13 Nomura Research Institute Ltd データ圧縮装置、及びデータ伸長装置
JP2007214813A (ja) * 2006-02-08 2007-08-23 Sony Corp 符号化方法、符号化プログラムおよび符号化装置
JP2009286064A (ja) * 2008-05-30 2009-12-10 Toyo Seikan Kaisha Ltd 圧縮成形金型及び圧縮成形装置
JP2010026884A (ja) * 2008-07-23 2010-02-04 Hitachi Ltd データ圧縮処理を伴うデータ管理方法
JP2010118795A (ja) * 2008-11-11 2010-05-27 Nippon Telegr & Teleph Corp <Ntt> 並列分散情報源符号化システム及び並列分散情報源符号化・復号化方法
WO2013175909A1 (ja) * 2012-05-25 2013-11-28 クラリオン株式会社 データ解凍/圧縮装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135158A (ko) * 2018-05-28 2019-12-06 삼성에스디에스 주식회사 데이터 엔트로피 기반의 데이터 프로세싱 방법
KR102552833B1 (ko) 2018-05-28 2023-07-06 삼성에스디에스 주식회사 데이터 엔트로피 기반의 데이터 프로세싱 방법

Also Published As

Publication number Publication date
EP3490153A1 (en) 2019-05-29
JP6336524B2 (ja) 2018-06-06
EP3490153A4 (en) 2020-03-11
US20190140657A1 (en) 2019-05-09
US10547324B2 (en) 2020-01-28
EP3490153B1 (en) 2023-11-01
CN109478893A (zh) 2019-03-15
CN109478893B (zh) 2023-05-09
EP3771104A1 (en) 2021-01-27
WO2018021094A1 (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6336524B2 (ja) データ圧縮符号化方法、その装置、及び、そのプログラム
US6061398A (en) Method of and apparatus for compressing and restoring data
Crochemore et al. A subquadratic sequence alignment algorithm for unrestricted scoring matrices
JP5221047B2 (ja) 圧縮率の向上のために改善されたコンテキストモデル選択を使用するcabac符号化方法及び装置、並びにcabac復号化方法及び装置
JP4801776B2 (ja) データ圧縮
ES2732009T3 (es) Procedimiento y aparato para codificar y descodificar coeficientes de transformada
CN110021369B (zh) 基因测序数据压缩解压方法、系统及计算机可读介质
JP5656593B2 (ja) 符号化データを復号する装置及び方法
US9698819B1 (en) Huffman code generation
WO2019076177A1 (zh) 基因测序数据压缩预处理、压缩、解压方法、系统及计算机可读介质
CN104468044A (zh) 应用于网络传输中的数据压缩的方法及装置
Namasudra et al. Applications and future trends of DNA computing
JP2018074604A (ja) データ圧縮符号化方法、復号化方法、その装置、及び、そのプログラム
JP6336636B2 (ja) データ圧縮符号化方法、その装置、及び、そのプログラム
CN112332854A (zh) 霍夫曼编码的硬件实现方法、装置及存储介质
CN112804029A (zh) 基于ldpc码的bats码的传输方法、装置、设备及可读存储介质
JP4758494B2 (ja) ビット長を符号に変換する回路及び方法
CN109698703B (zh) 基因测序数据解压方法、系统及计算机可读介质
Kaipa et al. System for random access dna sequence compression
Shoba et al. A Study on Data Compression Using Huffman Coding Algorithms
Challa et al. A novel compression technique for DNA sequence compaction
Wei et al. Efficient VLSI Huffman encoder implementation and its application in high rate serial data encoding
JP2014220713A (ja) 符号装置、復号装置、方法、及びプログラム
Chuang et al. An SGH-tree based efficient huffman decoding
CN109698704B (zh) 比对型基因测序数据解压方法、系统及计算机可读介质

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171219

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20171222

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20180119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180502

R150 Certificate of patent or registration of utility model

Ref document number: 6336524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250