JP2016184830A - データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 - Google Patents
データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 Download PDFInfo
- Publication number
- JP2016184830A JP2016184830A JP2015063449A JP2015063449A JP2016184830A JP 2016184830 A JP2016184830 A JP 2016184830A JP 2015063449 A JP2015063449 A JP 2015063449A JP 2015063449 A JP2015063449 A JP 2015063449A JP 2016184830 A JP2016184830 A JP 2016184830A
- Authority
- JP
- Japan
- Prior art keywords
- data
- entry
- symbol
- conversion table
- symbols
- 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
Links
Images
Classifications
-
- 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
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- 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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
-
- 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
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- 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
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4062—Coding table adaptation
-
- 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
- H03M7/46—Conversion 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
ような様々なストリームデータに対する処理を行う電子回路チップ間を流れる。電子回路チップもエンティティの1つであり、エンティティ間の通信は、通信機器間の通信だけでなく、通信機器内部の電子回路チップ間の通信(いわゆる内部通信)を含む。
方、特にハードウェアによってデータ圧縮器及びデータ解凍器を実現する場合、変換前後のシンボルの対応関係を記憶しておくことができる容量は制限される。したがって、シンボルの出現傾向が異なるデータストリームに対し、共通に適用できる変換規則を用意しておくのは困難であった。
凍後に係る2以上のシンボルに、当該データ列に含まれるシンボルを変換して出力する。
図1は、データ圧縮/解凍システムを模式的に示す図である。図1において、データ圧縮/解凍システムは、送信側装置1と、送信側装置1が備え、信号線11で接続されたデータ圧縮器10と、受信側装置2と、受信側装置2が備え、信号線21で接続されたデータ解凍器20とを含む。また、データ圧縮器10とデータ解凍器20とは、伝送路3を介して接続されている。
図2は、図1に示したデータ圧縮器10の一例を示すブロック図である。データ圧縮器10は、送信側装置1から入力されるストリームデータに対して可逆圧縮処理(「符号化処理」とも呼ぶ)を行い、少なくとも一部が圧縮されたストリームデータを出力する。なお、ストリームデータの形式は、テキストであってもバイナリであってもよい。また、データ圧縮器10は、ストリームデータを、固定長の処理単位であるシンボルの列として扱う。1シンボルのサイズは任意であり、例えば1バイト(8ビット)とすることができる。
を行う。すなわち、データ圧縮器10は、データ圧縮処理を行うと共に、ストリームデータに含まれるシンボルの出現傾向に基づいて、変換ルールを生成及び変更する。
C(Application Specific Integrated Circuit)、PLD(Programmable Logic Device,例えばFPGA(Field-Programmable Gate Aarray))によって構成するようにしてもよい。また、データストリーム制御回路101は、入力イネーブル信号及び出力イネーブル信号をそれぞれ送受信し、他の装置と同期してデータを伝送する。データ圧縮器10の構成要素は、図示していないクロック信号に基づいて、同期して動作する。
05から入力される元のシンボルを順に2つ出力する。
図3は、データ圧縮器10が備える変換テーブル102の一例を示す。変換テーブル102は、変換の対象となる2つのシンボル「被圧縮シンボル列」(すなわち、変換前のシンボル列)と、圧縮処理によって変換される1つのシンボル「圧縮シンボル」(すなわち、変換後のシンボル)と、当該圧縮シンボルへのアクセス回数を表す「参照頻度」とを対応づけて記憶するメモリである。なお、入力シンボル列に含まれる2つのシンボルを、便宜上「シンボル0」及び「シンボル1」と呼ぶ。また、変換テーブル102に登録されるエントリ(「レコード」とも呼ぶ)の数は、変換テーブル102を構成するハードウェアの容量に応じた有限個である。本実施形態において、エントリは動的に追加及び削除されるが、処理の開始時において予め何らかのエントリを登録しておくようにしてもよい。本実施形態では、図3に示す1つの英字が1つのデータシンボルを表すものとする。
図4は、本実施形態に係る圧縮処理の工程を模式的に示す処理フロー図である。まず、データ圧縮器10のデータストリーム制御回路101は、変換テーブル102のエントリを初期化する(図4:S1)。本ステップでは、例えば変換テーブル102のエントリをすべて削除してもよいし、所定のエントリを予め登録しておくようにしてもよい。また、本ステップの処理は、例えば送信側装置1における1つのファイルの転送を開始する度に行うようにしてもよい。
次に、図5A〜図5Iを用いて、変換テーブル102へのエントリを追加する具体的例を説明する。図5A〜図5Iは、変換テーブルの生成及び更新を説明するための図である。この例では、「AABBCCDDCCBBCCAA」というストリームデータ(「入力データ」と呼ぶ)を、送信側装置1から受信側装置2へ送るものとする。また、データ圧縮器10は、入力データを2シンボルずつ処理する。すなわち、「AA」、「BB」、「CC」・・・という単位で処理をする。
エントリにヒットし、圧縮シンボル「2」が得られる。よって、シンボルペア「CC」は圧縮シンボル「2」に変換されて出力されると共に、当該エントリの参照頻度に1が加算される。そして、図5Iに示すように、次のシンボルペア「AA」が入力された場合も、「AA」が変換テーブル102のエントリにヒットし、圧縮シンボル「0」が得られる。よって、シンボルペア「AA」は圧縮シンボル「0」に変換されて出力されると共に、当該エントリの参照頻度に1が加算される。
図6は、図1に示したデータ解凍器20の一例を示すブロック図である。データ解凍器20は、データストリーム制御回路201と、変換テーブル202と、ラッチ203〜ラッチ205とを含み、これらが信号線で接続されている。データストリーム制御回路201は、他の構成要素にイネーブル信号を出力し、ストリームデータに含まれるシンボルを順次ラッチに保持させたり、変換テーブル202の検索や更新を行わせたりする制御を行う。そして、データストリーム制御回路201は、伝送路3を介して入力された1つのシンボルが圧縮後のシンボルであるか否かを示す付加ビットに基づき、変換テーブル202から復号後のシンボル列を出力させたり、伝送路3を介して入力されたシンボルをそのまま出力させたりする。なお、データストリーム制御回路201は、例えばLSI、ASIC、PLD(例えばFPGA)によって構成するようにしてもよい。また、また、データストリーム制御回路201は、他の装置との間で入力イネーブル信号及び出力イネーブル信号をそれぞれ送受信し、他の装置と同期してデータを伝送する。データ圧縮器20の構成要素も、図示していないクロック信号に基づいて、同期して動作する。また、データ解凍器20は、データ圧縮器10側と同様の規則に基づいて、データ圧縮器10側と対応するエントリを変換テーブル202に追加及び更新する。
図7は、データ解凍器20が備える変換テーブル202の一例を示す。変換テーブル202は、復号後の2つのシンボル「復号シンボル列」(すなわち、解凍処理における変換後のシンボル列)と、復号の対象となる1つのシンボル「圧縮シンボル」(すなわち、解凍処理における変換前のシンボル)と、当該圧縮シンボルへのアクセス回数を表す「参照頻度」とを対応づけて記憶するメモリである。なお、復号シンボル列に含まれる2つのシンボルを、便宜上「シンボル0」及び「シンボル1」と呼ぶ。また、変換テーブル202に登録されるエントリ(「レコード」とも呼ぶ)の数は、データ圧縮器10の変換テーブル102と同様とする。データ解凍器20の変換テーブル202も、処理の開始時において予めデータ圧縮器10の変換テーブル102と同一のエントリを登録しておくようにしてもよい。
図8は、本実施形態に係る解凍処理の工程を模式的に示す処理フロー図である。まず、データ解凍器20のデータストリーム制御回路201は、変換テーブル202のエントリを初期化する(図8:S11)。本ステップでは、例えば変換テーブル202のエントリをすべて削除してもよいし、所定のエントリを予め登録しておくようにしてもよいが、データ圧縮器10の変換テーブル102のエントリと対応させておく。本ステップの処理も、例えば送信側装置1における1つのファイルの転送を開始する度に行うようにしてもよい。このようなタイミングは、例えば所定のプロトコルにおけるヘッダ情報で通知する。
次に、図9A〜図9Iを用いて、変換テーブル202へのエントリを追加する具体的例を説明する。図9A〜図9Iは、データ解凍器20における変換テーブルの生成及び更新を説明するための図である。この例では、「AABBCCDD2120」というストリー
ムデータ(「入力データ」と呼ぶ)が、伝送路3を介してデータ解凍器20へ送られてきたものとする。
次に、データ圧縮器10の変換テーブル102、及びデータ解凍器20の変換テーブル202からエントリを削除する例を説明する。なお、実施形態2においては、実施形態1と共通する構成については同一の符号を付して説明を省略し、主として相違点について説明する。本実施形態では、変換テーブル102又は変換テーブル202にエントリを追加する際、空きがなければエントリの削除を行う。削除の対象は、ストリームデータにおけるシンボルペアの出現頻度に基づき、出現頻度(すなわち、変換テーブル202の「参照頻度」)の低いシンボルペアを被圧縮シンボル列として保持するエントリとする。ここで、参照頻度の値が所定の閾値(「削除閾値」とも呼ぶ)以下のエントリを削除するものとする。本実施形態では、削除閾値が1と定められているものとする。また、変換テーブル102からエントリを削除する処理は、例えば図2に示したデータストリーム制御回路101が制御する。
図10は、本実施形態に係る圧縮処理の一例を示す処理フロー図である。図10の処理フローでは、変換テーブルにエントリを追加する処理(S7)の前に、変換テーブルに空きがなければエントリを削除する処理(S21)を行う。本ステップでは、削除するエントリを変換テーブル102からシーケンシャルに全検索して決定する。なお、S6の処理と、S21及びS7の処理とを実行する順序は、並列であってもよいし、逆であってもよい。
図12は、本実施形態に係る解凍処理の一例を示す処理フロー図である。図12の処理フローでは、変換テーブルにエントリを追加する処理(S16)の前に、変換テーブルに空きがなければエントリを削除する処理(S31)を行う。本ステップでは、削除するエントリを変換テーブル202からシーケンシャルに全検索して決定する。
次に、データ圧縮器10の変換テーブル102、及びデータ解凍器20の変換テーブル202からエントリを削除する他の例を説明する。なお、実施形態3においては、実施形態2と共通する構成については同一の符号を付して説明を省略し、主として相違点について説明する。本実施形態でも、変換テーブル102又は変換テーブル202にエントリを追加する際、空きがなければエントリの削除を行う。すなわち、削除の対象は、ストリームデータにおけるシンボルペアの出現頻度に基づき、出現頻度の低いシンボルペアを被圧縮シンボル列として保持するエントリとする。ただし、本実施形態では、直近に入力された所定数のシンボルペアを保持するスタック構造のメモリ(単に「スタック」とも呼ぶ)を用いて、変換テーブルに新たに登録されたシンボルペアを優先的に削除する。
図14は、本実施形態に係る圧縮処理の一例を示す処理フロー図である。図14の処理フローでも、実施形態2と同様に、変換テーブル102にエントリを追加する処理(S7)の前に、変換テーブルに空きがなければエントリを削除する処理(S21)を行う。本ステップでは、変換テーブル102のエントリを削除すると共にスタックのエントリも削除する。ただし、本ステップでは、スタックに記憶されている直近に登録されたエントリを削除対象とする。また、図14の処理フローでは、変換テーブルにエントリを追加する処理(S7)においてスタックにもエントリを追加する。そして、スタックの容量が溢れた場合も、変換テーブルからエントリを削除すると共にスタックを空にする(S41)。
保持され、図15Aの例では、シンボルペア「EE」の前に2つのシンボルペア「CCAA」が入力されたものとする。なお、スタックの容量は、変換テーブルのエントリ数以下の任意の容量であれば好ましいが、本実施例では変換テーブルのエントリ2つ分とする。この場合、図14のS21において変換テーブル102に空きがないためエントリを削除する。すなわち、図15Bに示すように、スタックのエントリに記憶されていたシンボルペアについて、変換テーブル102のエントリから参照頻度を1減算すると共にスタックからエントリを削除する。そして、図15Cに示すように、変換テーブル102において参照頻度を減算することにより削除閾値以下となったエントリを削除する。また、図15Dに示すように、入力されたシンボルペア「EE」を被圧縮シンボル列とするエントリが変換テーブル102に追加される(図14:S7)。なお、本ステップでは、スタックにもシンボルペア「EE」に係るエントリが追加される。なお、S6の処理と、S21、S7及びS41の処理とを実行する順序は、並列であってもよいし、逆であってもよい。
図16は、本実施形態に係る解凍処理の一例を示す処理フロー図である。図16の処理フローでも、実施形態2と同様に、変換テーブル202にエントリを追加する処理(S16)の前に、変換テーブルに空きがなければエントリを削除する処理(S31)を行う。本ステップでは、変換テーブル102のエントリを削除すると共にスタックのエントリも削除する。ただし、本ステップでは、スタックに記憶されている直近に登録されたエントリを削除対象とする。また、図16の処理フローでは、変換テーブルにエントリを追加する処理(S16)においてスタックにもエントリを追加する。そして、スタックの容量が溢れた場合も、変換テーブルからエントリを削除すると共にスタックを空にする(S51)。
て、シンボルの変換規則が変更されてもデータ解凍器20は圧縮後のストリームデータを適切に解凍できるようになっている。
本実施形態でも、データ圧縮器10の変換テーブル102及びデータ解凍器20の変換テーブル202からエントリを削除する。また、本実施形態においても、上述の実施形態と共通する構成については同一の符号を付して説明を省略し、主として相違点について説明する。本実施形態でも、エントリを追加する際、空きがなければ変換テーブルからエントリの削除を行う。具体的には、ストリームデータにおける出現頻度が低いシンボルペアを被圧縮シンボル列として保持するエントリを削除する。ただし、本実施形態では、シーケンシャルに全件のエントリを検索するのではなく、各エントリを並列に処理する。
図18は、実施形態4に係るデータ圧縮器10の一例を示すブロック図である。図18のデータ圧縮器10は、例えば変換テーブルに登録可能なエントリ数のエントリ削除回路108を有する。エントリ削除回路108は、それぞれがデータストリーム制御回路101から指示を受け、変換テーブルの参照頻度の値を減算すると共に、削除閾値以下となったエントリを削除する処理を並列に実行する。複数のエントリ削除回路を設けることで、回路規模は大きくなる一方、エントリの削除に要する時間は短縮することができる。このようなエントリ削除回路は、LSIやFPGA等によって構成することができる。
本実施形態においてエントリの削除を行うタイミングは、例えば上述した実施形態2と同様である。すなわち、データ圧縮器10は、図10に示した処理フローに従って動作する。ただし、図11Bに示す参照頻度の減算処理は、並列に実行される。
図19は、実施形態4に係るデータ解凍器20の一例を示すブロック図である。図19のデータ解凍器20も、複数(例えば変換テーブルに登録可能なエントリ数)のエントリ削除回路206を有する。複数のエントリ削除回路206は、それぞれがデータストリーム制御回路201から指示を受け、変換テーブルの参照頻度の値を減算すると共に、削除閾値以下となったエントリを削除する処理を並列に実行する。データ解凍器20のエントリ削除回路206も、複数設けることで回路規模は大きくなる一方、エントリの削除に要する時間は短縮することができる。データ解凍器20のエントリ削除回路も、LSIやFPGA等によって構成することができる。
本実施形態においてエントリの削除を行うタイミングも、例えば上述した実施形態2と同様である。すなわち、データ解凍器20は、図12に示した処理フローに従って動作する。ただし、図13Bに示す参照頻度の減算処理は、並列に実行される。
本実施形態でも、データ圧縮器10の変換テーブル102及びデータ解凍器20の変換テーブル202からエントリを削除する。また、本実施形態においても、上述の実施形態と共通する構成については同一の符号を付して説明を省略し、主として相違点について説明する。本実施形態では、変換テーブルに空きがない場合に初めてシーケンシャルに全件のエントリを検索するのではなく、例えば、データストリーム制御回路が、変換テーブルからのエントリの削除と変換テーブルへのエントリの追加とを並行して行うものとする。すなわち、図4の圧縮処理におけるS7や、図8の解凍処理におけるS16で変換テーブルからエントリの削除も行う。
図20A〜図20Iは、変換テーブルへのエントリの追加及び削除を説明するための図である。ここでは、「AABBCCDDCCBBCCAADDEE」というストリームデータが入力されるものとする。また、登録インデックスは、変換テーブルの先頭から最初に表れる空き領域を探索する。そして、削除インデックスは、変換テーブルの先頭から順にエントリの登録位置を巡回するものとする。
最初の空き領域である1番目の領域をすでに示しているため、移動しない。一方、削除インデックスは、次のエントリ登録位置に移動し、変換テーブルの2番目の領域を示す。このとき、2番目に登録されているエントリは参照頻度が1であり、削除閾値以下であると判断され、当該エントリは削除される。
上述のデータ圧縮器10、データ解凍器20を、それぞれ複数直列に接続して圧縮率を向上させたデータ圧縮装置、データ解凍装置を示す。実施形態6も、実施形態1〜5と共通する構成を含むので、共通する構成については同一の符号を付して説明を省略し、主として相違点について説明する。
(すなわち伝送路3から遠い順に)1段目、2段目、3段目、4段目と呼ぶ。
上記の実施形態に示した技術は、様々な伝送路に適用することができる。例えば、伝送路3は、光ケーブルやHDMI(High-Definition Multimedia Interface,登録商標)、USB(Universal Serial Bus)等の有線であってもよいし、Bluetooth(登録商標)等
の無線であってもよい。また、送信側装置1、データ圧縮器10、データ解凍器20、及び受信側装置2が同期して、変換テーブル102及び変換テーブル202のエントリや、実施形態5に示した登録インデックス、削除インデックスの開始位置を予め定められた状態に初期化するようにしてもよい。このような指示は、直接信号線を介して送信されてもよいし、例えばデータ圧縮器が圧縮データを予め定められたフォーマットに基づいてパケット化して送信する場合、例えばヘッダに初期化を指示するフラグを含めるようにしてもよい。なお、圧縮対象のデータはストリームデータに限られず、例えばUSB等を介して送受信されるデータ列であってもよい。
ト)、シンボルの復号を実行せずシンボルをそのまま通過させるバイパスを指示する「Bypass」(1ビット)、「Data」部の長さを示す「Data Length」(10ビット)の領域を
含む。また、「Data」部の各々には1シンボル、最大で1023シンボルを格納することができるものとする。このようにすれば、シンボルの境界が明確になる。さらにフッタには、伝送データの誤り検出及び訂正を行うための「Checksum」の領域を有する。このようなフォーマットを採用し、例えば最終段のデータ圧縮器10の後でパケット化する。また、ヘッダの「Flush」部に1が入っていれば、変換テーブルのエントリ等を初期化する。
この場合において、「Flush」が1であり且つ「Datalength」が0のときは変換テーブル
を予め定められた値に初期化し、「Flush」が1であり且つ「Datalength」が0でないと
きは「Data」部を利用して変換テーブルの初期値を送信するようにしてもよい。「Flush
」が1であり且つ「Datalength」が0でないとき、例えば、「Data」部の各々にシンボルペアを格納して送信し、受信側は「Data」部に格納された順にシンボルペアを変換テーブルのエントリに登録する。また、パケットの送信前にマンチェスタ符号等によるプリアンブル信号を送信し、同期をとるようにしてもよい。
上述の圧縮処理及び解凍処理は、転送されるデータ量を削減するだけでなく、転送されるデータの内容をいわゆる換字式暗号によって暗号化するという側面を有している。すなわち、初期の変換テーブルのエントリや、登録インデックスの初期値、削除インデックスの初期値がわからなければ圧縮データを復号できない。ここで、上述の実施形態に係る圧縮処理及び解凍処理は、変換テーブルに登録されていないシンボルペアの出現時にはデータ圧縮器10はシンボルペアを変換せずに出力するという特徴を有している。このようにすることで、データ解凍器20が作成する変換テーブルにも対応するエントリを登録することができる一方、変換せずに伝送されるシンボルペアを第三者が盗み見ることで当該暗号が解読されるおそれがある。そこで、本実施形態では、変換せずに出力されるシンボルペアの少なくとも一部についてスクランブルをかけ、暗号強度を向上させる。
X(i)=A[i+8:i]%B
なお、上記の式はシンボルが8ビットの場合を表し、インデックスiは1からカウントするものとする。MD5によれば32文字の16進数からなるチェックサムが得られ、A[i+8:i]は当該チェックサムのビットを巡回させて用いている。そして、下記の式によりX(i)と圧縮されたシンボルS(i)との排他的論理和をとれば、スクランブルをかけた値S’(i)を得ることができ、S’(i)が伝送路3へ送信される。
S’(i)=X(i)xorS(i)
S(i)=X(i)xorS’(i)
ハードウェアによってデータ圧縮器10及びデータ解凍器20を形成する場合、変換テーブルへのエントリの登録がボトルネックとなりデータパイプライン全体の流れが遅延する(「ブロック」されるとも呼ぶ)おそれがある。そこで、本実施形態では、変換テーブルへのエントリの追加にかかる時間(処理サイクル)の間、後続のシンボルが変換テーブルのエントリにヒットしない場合であってもシンボルを変換テーブルに追加せずにそのまま出力する。また、解凍側においても変換テーブルへのエントリの追加を行う場合、対応する時間(処理サイクル)だけ後続のシンボルをそのまま出力する。このようにすれば、出力スループットを向上させることができる。また、このような圧縮処理及び解凍処理を、ノンブロック圧縮及びノンブロック復号と呼ぶものとする。ノンブロック圧縮及び復号は、上述した実施形態の各々に適用することができる。
であれば4シンボルを出力できるだけの処理サイクルであるものとする。この場合において、シンボル列「AABBCCDDCCBBAABBAACC」を処理する例を説明する。なお、図27Aに示すように、変換テーブルの初期状態はエントリが登録されていないものとする。
また、圧縮前のストリームデータに含まれるシンボルの種類が予めわかっている場合、変換テーブルにおいて圧縮後のシンボルとして、圧縮前のストリームデータには存在し得ないシンボルを登録しておくようにしてもよい。このようにすれば、付加ビットを参照しなくても圧縮されたシンボルであるか否か判断できるようになる。
る場合には、圧縮前のシンボルとして2文字のペアが登録され、圧縮後のシンボルとしては当該文字コードにおいて未使用のビット列が割り当てられる。また、例えば、ストリームデータが遺伝子データ(「A」、「G」、「T」及び「C」の核酸コード配列)である場合には、ルックアップテーブルの圧縮前の2シンボルとして、「A」、「G」、「T」及び「C」から2文字を取り出した順列が登録され、圧縮後の1シンボルとして、「A」、「G」、「T」及び「C」以外の値が割り当てられる
10 データ圧縮器
101 データストリーム制御回路
102 変換テーブル
103〜106 ラッチ
107 マルチプレクサ
2 受信側装置
20 データ解凍器
201 データストリーム制御回路
202 変換テーブル
203〜205 ラッチ
3 伝送路
Claims (10)
- 固定長のデータであるシンボル単位でデータ列を圧縮し、圧縮されたデータ列を受信側の装置へ送信する送信側の装置と、前記圧縮されたデータ列を受信し解凍する前記受信側の装置とを備えるデータ圧縮・解凍システムであって、
前記送信側の装置が、
変換前に係る2以上のシンボルと変換後に係る1つのシンボルとの対応付けを示すエントリが登録される変換テーブルを検索し、前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして登録されていないと判断された場合、前記連続する2以上のシンボルを変換前に係る2以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記連続する2以上のシンボルを変換せずに出力し、
前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている変換後に係る1つのシンボルに、前記連続する2以上のシンボルを変換して出力し、
前記受信側の装置が、
解凍前に係るシンボルと解凍後に係る2以上のシンボルとの対応付けを示すエントリが登録される変換テーブルを検索し、前記データ列に含まれるシンボルが、解凍前に係るシンボルとして登録されていないと判断された場合、前記データ列に含まれるシンボル及び後続の所定数のシンボルを解凍後に係る2つ以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記データ列に含まれるシンボル及び後続する所定数のシンボルを変換せずに出力し、
前記データ列に含まれるシンボルが、解凍前に係るシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている解凍後に係る2以上のシンボルに、当該前記データ列に含まれるシンボルを変換して出力する
データ圧縮・解凍システム。 - コンピュータが、固定長のデータであるシンボル単位でデータ列を処理し、当該データ列を圧縮するデータ圧縮方法であって、
変換前に係る2以上のシンボルと変換後に係る1つのシンボルとの対応付けを示すエントリが登録される変換テーブルを検索し、前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして登録されていないと判断された場合、前記連続する2以上のシンボルを変換前に係る2以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記連続する2以上のシンボルを変換せずに出力し、
前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている変換後に係る1つのシンボルに、前記連続する2以上のシンボルを変換して出力する、
データ圧縮方法。 - 前記変換テーブルのエントリごとに、当該エントリが示す変換前に係る2以上のシンボルの、前記データ列における出現回数に応じた値を計数し、
計数された前記出現回数に応じた値が小さいエントリを優先して、前記変換テーブルに登録されたエントリを削除する、
請求項2に記載のデータ圧縮方法。 - 前記変換テーブルにエントリを登録する際、前記変換テーブルの空き領域のうち、エントリを始めに格納する開始位置と以降のエントリを格納する位置を決定するための規則とに基づいて決定された位置にエントリを登録し、
前記変換テーブルからエントリを削除する際、前記変換テーブルの領域のうち、登録さ
れているエントリを削除するか否か始めに判断する開始位置と、以降にエントリを削除するか否か判断する位置を決定するための規則とに基づいて候補の位置を決定し、決定された位置に登録されているエントリに対応付けられている、前記出現回数に応じた値が所定の閾値以下である場合に、当該エントリを削除する
請求項3に記載のデータ圧縮方法。 - 請求項2から4のいずれか一項に記載のデータ圧縮方法を繰り返し実施し、
前段のデータ圧縮方法によって出力された前記圧縮データを入力として、後段のデータ圧縮方法を実施する
データ圧縮方法。 - 変換せずに出力された少なくとも一部の前記シンボル、又は変換して出力された前記シンボルを暗号化する
請求項2から5のいずれか一項に記載のデータ圧縮方法。 - コンピュータが、通信相手の装置から受信するデータ列を、固定長のデータであるシンボル単位で処理し、当該データ列を解凍するデータ解凍方法であって、
解凍前に係るシンボルと解凍後に係る2以上のシンボルとの対応付けを示すエントリが登録される変換テーブルを検索し、前記データ列に含まれるシンボルが、解凍前に係るシンボルとして登録されていないと判断された場合、前記データ列に含まれるシンボル及び後続の所定数のシンボルを解凍後に係る2つ以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記データ列に含まれるシンボル及び後続する所定数のシンボルを変換せずに出力し、
前記データ列に含まれるシンボルが、解凍前に係るシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている解凍後に係る2以上のシンボルに、当該前記データ列に含まれるシンボルを変換して出力する
データ解凍方法。 - 前記通信相手の装置から設定の初期化の指示を受信した場合、前記変換テーブルに予め登録しておくエントリ、前記変換テーブルの空き領域のうちエントリを格納する開始位置、又は前記変換テーブルの領域のうち当該領域のエントリを削除するか否か判断する開始位置を初期化する
請求項7に記載のデータ解凍方法。 - 固定長のデータであるシンボル単位でデータ列を処理し、当該データ列を圧縮するデータ圧縮器であって、
変換前に係る2以上のシンボルと変換後に係る1つのシンボルとの対応付けを示すエントリが登録される変換テーブルと、
前記変換テーブルに基づいてデータ列に含まれるシンボルの変換を制御する制御回路と、
を含み、
前記制御回路は、
前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして登録されていないと判断された場合、前記連続する2以上のシンボルを変換前に係る2以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記連続する2以上のシンボルを変換せずに出力し、
前記データ列において連続する2以上のシンボルが、変換前に係る2以上のシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている変換後に係る1つのシンボルに、前記連続する2以上のシンボルを変換して出力する、
データ圧縮器。 - 固定長のデータであるシンボル単位でデータ列を処理し、当該データ列を解凍するデータ解凍器であって、
解凍前に係るシンボルと解凍後に係る2以上のシンボルとの対応付けを示すエントリが登録される変換テーブルと、
前記変換テーブルに基づいてデータ列に含まれるシンボルの変換を制御する制御回路と、
を含み、
前記制御回路は、
前記データ列に含まれるシンボルが、解凍前に係るシンボルとして登録されていないと判断された場合、前記データ列に含まれるシンボル及び後続の所定数のシンボルを解凍後に係る2つ以上のシンボルとするエントリを前記変換テーブルに登録すると共に、前記データ列に含まれるシンボル及び後続する所定数のシンボルを変換せずに出力し、
前記データ列に含まれるシンボルが、解凍前に係るシンボルとして前記変換テーブルのエントリに登録されている場合、当該エントリにおいて対応付けられている解凍後に係る2以上のシンボルに、当該前記データ列に含まれるシンボルを変換して出力する
データ解凍器。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015063449A JP6256883B2 (ja) | 2015-03-25 | 2015-03-25 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
EP16768875.3A EP3276836B1 (en) | 2015-03-25 | 2016-03-24 | Data compression/decompression system, data compression method and data decompression method, and data compressor and data decompressor |
PCT/JP2016/059372 WO2016152972A1 (ja) | 2015-03-25 | 2016-03-24 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
US15/560,577 US9948319B2 (en) | 2015-03-25 | 2016-03-24 | Data compression/decompression system, data compression method and data decompression method, and data compressor and data decompressor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015063449A JP6256883B2 (ja) | 2015-03-25 | 2015-03-25 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016184830A true JP2016184830A (ja) | 2016-10-20 |
JP6256883B2 JP6256883B2 (ja) | 2018-01-10 |
Family
ID=56977453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015063449A Active JP6256883B2 (ja) | 2015-03-25 | 2015-03-25 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9948319B2 (ja) |
EP (1) | EP3276836B1 (ja) |
JP (1) | JP6256883B2 (ja) |
WO (1) | WO2016152972A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020036291A (ja) * | 2018-08-31 | 2020-03-05 | 国立大学法人 筑波大学 | データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム |
JP2020521408A (ja) * | 2017-05-19 | 2020-07-16 | スズキ,タカシ | データの圧縮および分析のコンピュータ化された方法 |
JP2020184672A (ja) * | 2019-05-07 | 2020-11-12 | 国立大学法人 筑波大学 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
US11741121B2 (en) | 2019-11-22 | 2023-08-29 | Takashi Suzuki | Computerized data compression and analysis using potentially non-adjacent pairs |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275426B1 (en) * | 2015-09-22 | 2019-04-30 | Amazon Technologies, Inc. | Dynamic kerning pair reduction for digital font rendering |
FR3064865B1 (fr) * | 2017-03-29 | 2020-10-30 | Acklio | Procede d'apprentissage d'un contexte de compression/decompression, dispositif, systeme et produit programme d'ordinateur correspondants. |
CN107193925B (zh) * | 2017-05-15 | 2019-09-20 | 浙江正泰中自控制工程有限公司 | 一种基于列式存储技术的实时数据压缩方法 |
EP4030738A1 (en) * | 2018-03-16 | 2022-07-20 | Acklio | Method and apparatus for processing message data |
US20220109455A1 (en) * | 2018-06-29 | 2022-04-07 | Zenotta Holding Ag | Apparatus and method for providing authentication, non-repudiation, governed access and twin resolution for data utilizing a data control signature |
CN111835676A (zh) * | 2019-04-15 | 2020-10-27 | 宇起数字科技(上海)有限公司 | 一种智能锁具的密码数据的压缩方法、解压方法和传输方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03247168A (ja) * | 1990-02-26 | 1991-11-05 | Fujitsu Ltd | データ圧縮方式 |
JPH05176001A (ja) * | 1991-12-25 | 1993-07-13 | Matsushita Electric Ind Co Ltd | データ伝送装置 |
JP2005020346A (ja) * | 2003-06-26 | 2005-01-20 | Konica Minolta Business Technologies Inc | データ秘密化装置、データ復元装置、画像データ保存装置及び画像形成装置 |
JP2013520926A (ja) * | 2010-02-25 | 2013-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | N個のチャネルを用いてデータを安全に分散させ格納する方法および装置 |
JP2014236449A (ja) * | 2013-06-04 | 2014-12-15 | 国立大学法人 筑波大学 | データ圧縮器及びデータ解凍器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3227901B2 (ja) * | 1993-05-21 | 2001-11-12 | ソニー株式会社 | 変調方法及び復調装置 |
JP2638426B2 (ja) | 1993-06-16 | 1997-08-06 | 日本電気株式会社 | 可変長符号化装置 |
JP3522331B2 (ja) * | 1994-04-22 | 2004-04-26 | 株式会社セタ | データ圧縮方法 |
DE69433620T2 (de) * | 1994-06-16 | 2004-08-12 | Seiko Epson Corp. | Datenkomprimierungsverfahren |
JP3277792B2 (ja) * | 1996-01-31 | 2002-04-22 | 株式会社日立製作所 | データ圧縮方法および装置 |
JP2011254445A (ja) * | 2010-05-06 | 2011-12-15 | Sony Corp | 符号化装置、符号化方法、記録装置、記録方法、復号装置、復号方法 |
US9547588B1 (en) * | 2013-09-10 | 2017-01-17 | Violin Memory Inc. | System and method of data storage in flash memory |
-
2015
- 2015-03-25 JP JP2015063449A patent/JP6256883B2/ja active Active
-
2016
- 2016-03-24 US US15/560,577 patent/US9948319B2/en active Active
- 2016-03-24 WO PCT/JP2016/059372 patent/WO2016152972A1/ja active Application Filing
- 2016-03-24 EP EP16768875.3A patent/EP3276836B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03247168A (ja) * | 1990-02-26 | 1991-11-05 | Fujitsu Ltd | データ圧縮方式 |
JPH05176001A (ja) * | 1991-12-25 | 1993-07-13 | Matsushita Electric Ind Co Ltd | データ伝送装置 |
JP2005020346A (ja) * | 2003-06-26 | 2005-01-20 | Konica Minolta Business Technologies Inc | データ秘密化装置、データ復元装置、画像データ保存装置及び画像形成装置 |
JP2013520926A (ja) * | 2010-02-25 | 2013-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | N個のチャネルを用いてデータを安全に分散させ格納する方法および装置 |
JP2014236449A (ja) * | 2013-06-04 | 2014-12-15 | 国立大学法人 筑波大学 | データ圧縮器及びデータ解凍器 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020521408A (ja) * | 2017-05-19 | 2020-07-16 | スズキ,タカシ | データの圧縮および分析のコンピュータ化された方法 |
JP2020036291A (ja) * | 2018-08-31 | 2020-03-05 | 国立大学法人 筑波大学 | データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム |
WO2020045238A1 (ja) | 2018-08-31 | 2020-03-05 | 国立大学法人筑波大学 | データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム |
US11196443B2 (en) | 2018-08-31 | 2021-12-07 | University Of Tsukuba | Data compressor, data decompressor, and data compression/decompression system |
JP7074989B2 (ja) | 2018-08-31 | 2022-05-25 | 国立大学法人 筑波大学 | データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム |
JP2020184672A (ja) * | 2019-05-07 | 2020-11-12 | 国立大学法人 筑波大学 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
WO2020226105A1 (ja) * | 2019-05-07 | 2020-11-12 | 国立大学法人筑波大学 | データの圧縮及び解凍方法、データ圧縮装置、及びデータ解凍装置 |
US11876542B2 (en) | 2019-05-07 | 2024-01-16 | University Of Tsukuba | Data compression and decompression methods, data compression device, and data decompression device |
US11741121B2 (en) | 2019-11-22 | 2023-08-29 | Takashi Suzuki | Computerized data compression and analysis using potentially non-adjacent pairs |
Also Published As
Publication number | Publication date |
---|---|
US20180054215A1 (en) | 2018-02-22 |
JP6256883B2 (ja) | 2018-01-10 |
EP3276836B1 (en) | 2023-06-28 |
EP3276836A4 (en) | 2018-12-05 |
US9948319B2 (en) | 2018-04-17 |
EP3276836A1 (en) | 2018-01-31 |
WO2016152972A1 (ja) | 2016-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6256883B2 (ja) | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 | |
US7643505B1 (en) | Method and system for real time compression and decompression | |
JP3900435B2 (ja) | データパケットのルーティング方法およびルーティング装置 | |
US6883035B2 (en) | System and method for communicating with temporary compression tables | |
JP2018520576A (ja) | 意味論的値のデータ圧縮及び解凍のための方法、装置、及びシステム | |
CN105052040A (zh) | 多流压缩与解压的方法与系统 | |
CN112399479B (zh) | 用于数据传输的方法、电子设备和存储介质 | |
US8909813B2 (en) | Efficient processing of compressed communication traffic | |
US20170272095A1 (en) | Improved compression and encryption of a file | |
US10230391B2 (en) | Compression and/or encryption of a file | |
JP6168595B2 (ja) | データ圧縮器及びデータ解凍器 | |
CN115225724B (zh) | 使用分区和无关位消除的数据压缩技术 | |
US11876542B2 (en) | Data compression and decompression methods, data compression device, and data decompression device | |
CN1656688B (zh) | 在压缩之前处理数字数据 | |
Jain et al. | An efficient compression algorithm (ECA) for text data | |
US20190020743A1 (en) | Data transmitting apparatus, data receiving apparatus and method thereof | |
US10505713B2 (en) | Compression and/or encryption of a file | |
KR20190091586A (ko) | TCP/IP 패킷에 있어서 고정비트 길이 이진데이터의 Octet 규격사이즈 압축을 위한 패킷 데이터 압축 방법 및 그 장치 | |
JP2006211331A (ja) | データ符号化装置、データ復号装置及びデータ符号化/復号システム | |
Kho et al. | Joint LZW and Lightweight Dictionary-based compression techniques for congested network | |
CN110995274B (zh) | 一种解压缩方法及装置 | |
Gustafsson | Protecting Privacy: Automatic Compression and Encryption of Next-Generation Sequencing Alignment Data | |
US20110128169A1 (en) | Unicode-compatible base-n range coding | |
CN112199343A (zh) | 一种小数据块场景的数据压缩/解压缩加速方法 | |
CN103686864A (zh) | 移动网络双边优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170720 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20170720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20170720 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170823 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171030 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171127 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6256883 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
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 |