JP6614735B1 - データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム - Google Patents
データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム Download PDFInfo
- Publication number
- JP6614735B1 JP6614735B1 JP2019087870A JP2019087870A JP6614735B1 JP 6614735 B1 JP6614735 B1 JP 6614735B1 JP 2019087870 A JP2019087870 A JP 2019087870A JP 2019087870 A JP2019087870 A JP 2019087870A JP 6614735 B1 JP6614735 B1 JP 6614735B1
- Authority
- JP
- Japan
- Prior art keywords
- symbol
- entry
- compression
- registered
- index
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 241
- 230000006837 decompression Effects 0.000 title claims description 265
- 238000013144 data compression Methods 0.000 title claims description 34
- 238000007906 compression Methods 0.000 claims abstract description 373
- 230000006835 compression Effects 0.000 claims abstract description 367
- 238000012545 processing Methods 0.000 claims abstract description 192
- 230000008569 process Effects 0.000 claims abstract description 108
- 238000004364 calculation method Methods 0.000 claims description 170
- 230000004044 response Effects 0.000 claims description 5
- 210000002784 stomach Anatomy 0.000 claims 2
- 238000006243 chemical reaction Methods 0.000 description 307
- 230000005540 biological transmission Effects 0.000 description 65
- 238000010586 diagram Methods 0.000 description 52
- 238000012217 deletion Methods 0.000 description 41
- 230000037430 deletion Effects 0.000 description 41
- 230000006870 function Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 238000010257 thawing Methods 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 102220104796 rs879254247 Human genes 0.000 description 3
- 102220560827 Aldehyde dehydrogenase family 16 member A1_S12A_mutation Human genes 0.000 description 2
- 102220471969 Single-stranded DNA cytosine deaminase_S38A_mutation Human genes 0.000 description 2
- 102220471954 Single-stranded DNA cytosine deaminase_S38D_mutation Human genes 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 230000037303 wrinkles Effects 0.000 description 1
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/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/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/4087—Encoding of a tuple of symbols
-
- 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/60—General implementation details not specific to a particular type of compression
- H03M7/6052—Synchronisation of encoder and decoder
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
解凍装置が、前記非圧縮を示す指標データ及び前記シンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記第1テーブルと同一のデータ
構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、前記圧縮を示す指標データと前記位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と、を行う
データの圧縮及び解凍方法である。
(1)圧縮装置が、入力されたシンボルが複数のエントリを有する第1テーブルに未登録である場合に、前記複数のエントリの一つに前記シンボルを登録するとともに、非圧縮を示す指標データと前記シンボルとを出力する処理と、前記シンボルが前記テーブルに登録済みの場合に、圧縮を示す指標データと、前記シンボルが登録されているエントリの位置を示すとともに前記シンボルのサイズより小さいサイズを有する位置情報とを出力する処理と、前記複数のエントリの使用状況に応じて前記位置情報のサイズを変更する処理と、を行う。
(2)解凍装置が、前記非圧縮を示す指標データ及び前記シンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記第1テーブルと同一のデータ構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、前記圧縮を示す指標データと前記位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と、を行う。
式1:ceil(log2k)
式2:ceil(log2((使用率/ヒット率)*エントリ数))
てのエントリが使用中であれば、第2テーブルにおける第1エントリに前記シンボルを上書き登録する。例えば、第1テーブルにおける第1エントリは第1テーブルの末尾のエントリであり、第2テーブルにおける第1エントリは第2テーブルの末尾のエントリである。但し、他のエントリを第1エントリにしてもよい。
本発明の実施形態を説明する前に、参考例に係る圧縮器及び解凍器(圧縮及び解凍方法について説明する。図1は、参考例に係る圧縮器及び解凍器に実装される変換テーブルを模式的に示す。変換テーブルは、インデックスを有する複数のエントリからなる。エントリ数として、圧縮器及び解凍器について同じ数の適宜の数が決定される。エントリ数の最大値は、インデックスの最大値に1を加えた数となる。図1に示す例では、インデックス値が0〜3であり、エントリ数は4である。
リ)である場合には、登録ポインタはインデックス“0”に戻った後、未登録のエントリ位置に設定される。
次に、圧縮器の動作例(圧縮方法)を示す。図2A〜C、図3A〜C、図4A及B、図5A及びBは、参考例の圧縮方法の説明図である。図2Aには、動作例に係る変換テーブルが示されている。この変換テーブルは、図1を用いて説明した構造を有する。変換テーブルの全エントリ数は4であり、カウント値の初期値は2である。入力は、一例として、8ビット(1バイト)のデータ(シンボル)が連なるデータ列である。初期状態の変換テーブルでは、全てのエントリが未登録状態である。登録ポインタ及び削除ポインタは、変換テーブルが初期状態である場合、インデックス“0”のエントリを指す。以下の説明では、エントリをインデックス値で特定することがある(例えば、インデックス値“0”のエントリは、単にインデックス“0”と称する)。
1”のカウント値のデクリメントが行われ(2→1)、削除ポインタがインデックス“0”に進む。また、登録ポインタが次の未登録エントリであるインデックス“2”に進む。
クス“2”に進む。登録ポインタは移動しない。
次に、解凍器の動作例(解凍方法)について説明する。解凍器には、圧縮器から出力されたデータ列(シンボル列)“ABAC0ADBCFGDEDA0AB・・・”が入力される。図6A〜C、図7A〜C、図8A及びB、図9A及びBは、参考例の解凍方法の説明図である。図6Aは、解凍器が有する変換テーブルを示す。変換テーブルの構造は圧縮器が有する変換テーブルの構造と同じである。また、図6Aは、解凍器の変換テーブルが初期状態である場合において、解凍器に入力されたシンボル列“AB”に係る処理を示す。
に対応する変換テーブルのインデックスはない。このため、シンボル“B”と次のシンボル“C”とからシンボル列“BC”が解凍器から出力される。また、シンボル列“BC”とカウント値“2”とが、登録ポインタが指すエントリ(インデックス“3”)に登録される。また、削除ポインタが指すインデックス“1”のカウント値が一つ減算され(1→0)、削除ポインタが次のインデックス“2”に進む。インデックス“1”のカウント値が0となることによって、インデックス“1”のエントリが未登録状態となる。登録ポインタは、インデックス“1”に設定される。
た解凍処理を行うことができる。
すビットを付加する。Cmarkビットの値“0”は非圧縮を示し、値“1”は圧縮を示す。
但し、逆でもよい。
<<課題1>>
参考例に係る圧縮及び解凍方法では、圧縮後のシンボル長が固定長であった。例示したように、2シンボルの入力を1シンボルに変換する圧縮では、圧縮率は最大でも50%であった。このため、さらなる圧縮率の向上が望まれていた。
Aの出現確率:4/10=0.4
Bの出現確率:3/10=0.3
Cの出現確率:2/10=0.2
Dの出現確率:1/10=0.1
上述した参考例に係る圧縮・解凍方法では、圧縮データの終端が不明であった。もし、特殊なコードを埋め込むことができれば、解凍器に圧縮データ列の終端を知らせることができる。
び解凍方法を発明するに至った。
以下、図面を参照して、データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置。データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラムの実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<圧縮装置の構成>
図10は、実施形態1における圧縮装置の構成例を示す。図10において、圧縮装置10は、圧縮器11と、シリアライザ12とを備える。圧縮器11には、Nビット(Nは正の整数)のオリジナルのシンボルデータが入力される。圧縮器11は、Mビット(Mは正の整数)の圧縮シンボル)と、Cmarkビットと、Mビットのデータマスクとを出力する。
以下の実施形態の説明では、N=Mに設定されている場合を中心に説明する。但し、N<Mの場合やN>Mの場合もあり得る。Mを“log2(エントリ数)”とすると、エントリ数が2のN乗より大きいとN<Mとなる。逆の場合はN>Mとなる。
れているか否かを示すビットである。一例として、ビット値“0”の場合に非圧縮を示し、ビット値“1”の場合に圧縮を示す。ビット値と意味は逆でもよい。データマスクは、圧縮シンボルをなすビット列のうち、有効なビットの桁又は有効なビット数を表現するために使用される。例えば、データマスクは、有効なビット桁を“1”で示す。また、データマスクは、有効なビット数を示すビット列でもよい。
図11は、シリアライザ12における処理例を示すフローチャートである。S1において、シリアライザ12は、データマスクに基づいて、圧縮シンボルから不要な(無効の)ビットを除去する。すなわち、シリアライザ12は、データマスクにおいて“1”で示された桁に対応する部分を圧縮シンボルから切り出す。
ットを付加する。S3では、シリアライザ12は、Cmarkビット及び切り出し後の圧縮シ
ンボルについて、適宜のルールに従って、Kビット分ずつ、ビットの出力を行う。
の関係を例示する表である。例えば、ビッグエンディアン(big endian)である場合において、圧縮シンボルデータ、Cmarkビット、データマスク列の夫々が、“0001000”(M=7)、“1”、“0011111”(M=7)である場合を仮定する。この場合、データマスク
は最下位ビット(LSB)から5ビット目までを有効ビットとして示す。このため、シリアライザ12において、最上位ビット(MSB)から2ビット目までが圧縮シンボルから
除去され、Cmarkビット“1”と有効ビット列“01000”とのビット列(シリアルデータ)“101000”が出力される。
ータマスク“1111111”である場合、シリアライザ12の出力は、Cmarkビット“1”及び
有効ビット“1110100”のシリアルデータ“01110100”となる。図12には、他の圧縮シ
ンボルとCmarkビットとの組み合わせに係るシリアライザ12の出力も例示されている。
図13は、圧縮器11の構成例を示す。圧縮器11は、シンボル変換部111、エントロピー計算部112、及びマスク生成部113を含む。シンボル変換部111は、変換テーブルを用いたシンボル変換処理を行う。
力する。例えば、オリジナルシンボルが変換テーブルからヒットしなかった場合(変換テーブルに登録されていなかった場合)には、非圧縮を示すCmarkビット“0”をシンボル
変換部111は出力する。これに対し、オリジナルシンボルがヒットした場合(変換テー
ブルに登録されている場合)には、圧縮を示すCmarkビット“1”をシンボル変換部11
1は出力する。
合、エントロピー計算値とは無関係にオール“1”のデータマスクが出力されるようにしてもよく、データマスクが出力されない(Cmarkビットが“1”のときに出力される)よ
うにしても良い。
図16A〜Cは、変換テーブルの第1の操作方法を説明する図である。図16Aは、オリジナルシンボルがヒットした場合を示す。図16Aに示すような変換テーブルへの登録状況において、オリジナルシンボル“B”が入力された場合を仮定する。この場合、シンボル“B”は変換テーブルに既登録であり、シンボル“B”がヒットする。このとき、シンボル変換部111は、ヒットしたシンボル“B”を先頭のエントリに移動する。また、シンボル“B”が登録されたエントリのインデックス値“1”と、圧縮を示すCmarkビッ
ト“1”とをシンボル変換部111は出力する。
換テーブルに未登録であり、シンボル“B”はミスヒットとなる。このとき、シンボル変換部111は、変換テーブル全体をプッシュし、既登録の各シンボル(“A”、“C”、“D”)をインデックス値が1つ加算された位置へ移動させる。これによって先頭のエントリ(インデックス“0”)が空き状態となる。シンボル変換部111は、先頭のエントリにシンボル“B”を登録する。また、オリジナルシンボル“B”と、非圧縮を示すCmarkビット“0”とをシンボル変換部111は出力する。
シンボル“B”は変換テーブルに未登録であり、シンボル“B”はミスヒットとなる。このとき、シンボル変換部111は、変換テーブル全体をプッシュして既登録の各シンボル(“A”、“C”、“D”、“E”)をインデックス値が1つ加算された位置へ移動させる。但し、末尾のエントリ(インデックス“3”)に登録されていたシンボル“E”は、変換テーブルから追い出されて削除される。シンボル変換部111は、空き状態となった先頭のエントリにシンボル“B”を登録する。また、オリジナルシンボル“B”と、非圧縮を示すCmarkビット“0”とをシンボル変換部111は出力する。
図17A〜Cは、変換テーブルの第2の操作方法を説明する図である。図17Aは、オリジナルシンボルがヒットした場合を示す。図17Aに示すような変換テーブルへの登録状況において、オリジナルシンボル“B”が入力された場合を仮定する。この場合、シンボル変換部111は、シンボル“B”がヒットしたため、シンボル“B”を先頭のエントリに移動する。また、インデックス値“1”と、Cmarkビット“1”とをシンボル変換部
111は出力する。これは、第1の操作方法と同じである。
図17Bに示すように、インデックス“3”が空きエントリである場合に、オリジナルシンボル“B”が入力された場合を仮定する。 この場合、シンボル“B”は変換テーブル
に未登録であり、シンボル“B”はミスヒットとなる。このとき、シンボル変換部111は、空きエントリ中の予め定めた位置(例えば末尾の空きエントリ)に該当するインデックス“3”にシンボル“B”を登録する。また、オリジナルシンボル“B”と、Cmarkビ
ット“0”とをシンボル変換部111は出力する。
換部111は、予め定めたエントリ(例えば末尾のインデクス“3”)にシンボル“B”を上書き登録する(シンボル“E”は結果として削除)。シンボル変換部111は、シンボル“B”と、Cmarkビット“0”とを出力する。
圧縮器11は、オリジナルシンボルが変換テーブルから検出された場合(オリジナルシンボルがヒットした場合)、Cmarkビット“1”を出力するとともに、エントロピー計算
の結果に従ったデータマスクを出力する。
式1:E= ceil(log2k)
となる。また、使用中のエントリ数が2の場合、ceil(log22)=1となる。また、使
用中のエントリ数が3の場合、ceil(log23)=2となる。また、使用中のエントリ数
が5の場合ceil(log25)=3となる。
タマスクとして、“00000000”をマスク生成部113が生成して出力する。k=1の場合にCmarkビットが“1”であれば、必ずインデックス“0”のエントリにシンボルが登録
されていることが自明である。このため、インデックス“0”は0ビットで表され、Cmarkビットのみがシリアライザ12から出力される。
2となり、データマスクとして、N=8ビットのうち、最下位ビットから2桁のビットが“1”に設定された(有効ビットが下位2ビットを示す)データマスク“00000011”が出力される。図18Cに示す例では、使用中のエントリ数が5であるため、エントロピーの計算結果はceil(log25)=3となり、データマスクとして、N=8ビットのうち、最
下位ビットから3桁のビットが“1”に設定された(有効ビットが下位3ビットを示す)データマスク“00000111”が出力される。
図19は、実施形態1における解凍装置の構成例を示す。図19において、解凍装置50は、デシリアライザ51と、解凍器52とを備える。デシリアライザ51には、Kビット毎に分けて伝送された伝送データが入力される。デシリアライザ51は、伝送データから、Mビットの圧縮シンボルと、1ビットのCmarkビットを取り出し、解凍器52に入力
する。解凍器52は、圧縮シンボルとCmarkビットを用いて、Mビットのデータマスクを
出力するとともに、Nビットのオリジナルシンボルデータを出力する。
リジナルシンボルを出力する。
あれば、全て“1”のデータマスクを出力し、ビット値が“1”であれば、エントロピー計算部522からのエントロピー計算結果に従った有効ビット数を有するデータマスクを出力する。データマスクは、デシリアライザ51に入力される。
)を読み出す。
関係にNビット出力する定義に従って行ってもよい。実施形態1では、Cmarkビット“0
”の場合にデータマスク“11111111”が入力される態様について説明する。
は、S23及びS24の前に実行されてもよく、S22の前に実行されてもよい。S26では、伝送データが終了したかを判定し、伝送データがない場合には、処理が終了する。伝送データがある場合には、処理がS21に戻る。
“0”か“1”かを判定する。Cmarkビットの値が“0”の場合(S31,0)、シンボ
ル変換部521は、変換テーブルに、登録対象のシンボルが既に登録されているか否かを判定する。このとき、登録対象のシンボルが既登録と判定される場合には(S38,Y)、解凍器52は所定のエラー処理を行い(S41)、処理を終了する。
は、デシリアライザ51から入力された圧縮シンボルの値に合致するインデックスを変換テーブルから検索する(S32)。シンボル変換部521は、インデックスがヒットしたかを判定し(S33)、ヒットしなかった場合には(S33,N)、所定のエラー処理を行い(S42)、図22の処理を終了する。
<<圧縮方法>>
図23A〜C、図24A〜C、図25A〜C、図26A〜C、図27A〜C、図28は、圧縮装置10の動作例(圧縮方法)の説明図である。図23Aには、動作例に係る変換テーブルが示されている。この変換テーブルは、図18A〜Cを用いて説明した構造を有
する。変換テーブルの全エントリ数は8(インデックス値“0”〜“7”)である。入力は、一例として、8ビットのオリジナルシンボルが連なるシンボルデータ列“ABACDABFGEFHJAB”である。初期状態の変換テーブルでは、全てのエントリが未登録状態であると仮
定する。以下の動作例では、変換テーブルの第1の操作方法により、変換テーブルの更新処理が行われる。変換テーブルの更新処理は、圧縮器11(シンボル変換部)111により行われる。エントロピー計算部112は、第1の計算方法を用いてエントロピーを計算する。また、本動作例は、N=M=8ビットの場合について説明する。
ド以外で表されてもよい。
マスク“11111111”を出力する。シリアライザ12は、データマスクに従って、Cmarkビ
ット“0”にシンボル“B”(ASCIIコード:01000010)を続けた“0B”のシリアルデータを出力する。
の処理を示す。シンボル“A”はインデックス“1”に登録されている。このため、シンボル“A”がヒットする。この場合、シンボル変換部111は、シンボル“A”が登録されていたエントリのインデックス値“1”を示すビット値“1”を圧縮シンボルとして出力するとともに圧縮を示すCmarkビット“1”を出力する。また、シンボル変換部111
は、ヒットしたシンボル“A”を先頭のエントリ(インデックス“0”)に移動する一方で、インデックス“0”に登録されていたシンボル“B”を次のエントリ(インデックス“1”)に移動させる。
力する。シンボルが圧縮された(シンボル変換が行われた)場合、シリアライザ12は、Cmarkビットが“1”の場合、データマスクが示す有効ビット数(=1)のビット“1”
を、圧縮シンボルとして出力する(図21、S23)。これによって、Cmarkビット“1
”に圧縮シンボル“1”が続く2ビットのシリアルデータ“11”をシリアライザ12は出力する。
す。シンボル“C”は未登録であるため、シンボル変換部111は、シンボル“C”及びCmarkビット“0”を出力するとともに、シンボル“C”についてのプッシュ処理を行う
。すなわち、シンボルCをインデックス“0”に登録し、既登録のシンボルを次のエント
リに移動する。この場合、マスク生成部113は、オール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボ
ル“C”(ASCIIコード:01000011)が続く“0C”のシリアルデータを出力する。
す。シンボル“D”は未登録であるため、シンボル変換部11は、シンボル“C”及びCmarkビット“0”を出力するとともに、シンボル“D”についてのプッシュ処理を行う。
マスク生成部113は、オール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボル“D”(ASCIIコー
ド:01000100)が続く“0D”のシリアルデータを出力する。
す。シンボル“A”はインデックス“2”に登録されている(図24C)。このため、シンボル変換部111は、シンボル“A”が登録されていたエントリのインデックス値“2”(図24C)を示すビット値“10”を圧縮シンボルとして出力するとともに圧縮を示すCmarkビット“1”を出力する。また、シンボル変換部111は、ヒットしたシンボル
“A”をインデックス“0”に移動する一方で、シンボル“D”,“C”,“B”を次のエントリに移動させる。
2)のビット“10”を圧縮シンボルとして出力する。これによって、Cmarkビット“1
”に圧縮シンボル“10”が続く3ビットのシリアルデータ“110”がシリアライザ12から出力される。
す。シンボル“B”はインデックス“3”に登録されているため(図25A)、シンボル変換部111は、シンボル“B”が登録されていたエントリのインデックス値“3”を示すビット値“11”を圧縮シンボルとして出力するとともに圧縮を示すCmarkビット“1
”を出力する。また、シンボル変換部111は、シンボル“B”をインデックス“0”に移動する一方で、シンボル“A”,“D”,“C”を次のエントリに移動させる。
トを圧縮シンボルとして出力する。これによって、Cmarkビット“1”に圧縮シンボル“
11”が続く3ビットのシリアルデータ“111”がシリアライザ12から出力される。
す。シンボル“F”は未登録であるため、シンボル変換部111は、シンボル“F”及びCmarkビット“0”を出力するととともに、シンボル“F”についてのプッシュ処理を行
う。この場合、マスク生成部113はオール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボル“F”(A
SCIIコード:01000110)が続く“0F”のシリアルデータを出力する。
力するととともに、シンボル“G”についてのプッシュ処理を行う。この場合、マスク生成部113はオール“1”のデータマスクを生成及び出力する。シリアライザ12は、デ
ータマスクに従って、Cmarkビット“0”にシンボル“G”(ASCIIコード:01000110)が続く“0G”のシリアルデータを出力する。
力するととともに、シンボル“E”についてのプッシュ処理を行う。この場合、マスク生成部113はオール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボル“E”(ASCIIコード:01000101)が続く“0E”のシリアルデータを出力する。
す。シンボル“F”はインデックス“2”に登録されている(図26B)。このため、シンボル変換部111は、インデックス値“2”を示すビット値“10”とCmarkビット“
1”とを出力する。また、シンボル“F”をインデックス“0”に移動する一方で、シンボル“E”,“G”を次のエントリに移動させる(シンボル“B”,“A”,“D”,“C”はそのままである)。
ト“010”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”に圧縮
シンボル“010”が続く4ビットのシリアルデータ“1010”がシリアライザ12から出力される。
す。シンボル“H”は未登録であるため、シンボル変換部111は、シンボル“H”及びCmarkビット“0”を出力するととともに、シンボル“H”についてのプッシュ処理を行
う。この場合、マスク生成部113はオール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボル“H”(A
SCIIコード:01001000)が続く“0H”のシリアルデータを出力する。
力するととともに、シンボル“J”についてのプッシュ処理を行う。このとき、シンボル“C”は変換テーブルから追い出されて削除される。マスク生成部113はオール“1”のデータマスクを生成及び出力する。シリアライザ12は、データマスクに従って、Cmarkビット“0”にシンボル“J”(ASCIIコード:01001010)が続く“0J”のシリ
アルデータを出力する。
た、シンボル“A”をインデックス“0”に移動する一方で、シンボル“J”から“B”を次のエントリに移動させる。
ト“110”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”に圧縮
シンボル“110”が続く4ビットのシリアルデータ“1110”がシリアライザ12か
ら出力される。
シンボル“B”をインデックス“0”に移動する一方で、シンボル“A”から“G”を次のエントリに移動させる。
ト“110”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”に圧縮
シンボル“110”が続く4ビットのシリアルデータ“1110”がシリアライザ12から出力される。
(15×8=120ビット)に対するシリアライザ12の出力は101ビットとなり、圧縮率は84%となる。
図29A〜C、図30A〜C、図31A〜C、図32A〜C、図33A〜C、図34は、解凍装置50の動作例(圧縮方法)の説明図である。図29Aには、解凍装置50の動作例に係る変換テーブルが示されている。この変換テーブルは、図23Aに示した圧縮装置10が有する変換テーブルと同じデータ構造を有する。このため、再度の説明は省略する。
,“0B”,“11”,“0C”,“0D”,“110”,“111”,“0F”,“0G”,“0E”,“1010”,“0H”,“0J”,“1110”,“1110”である。
ボル“A”とに分離され、解凍器52に入力される。
リジナルシンボル(解凍シンボル)として出力する。エントロピー計算部522は、エントロピーの計算結果として0を出力し、データマスク生成部523は、エントロピー計算値とは無関係に全て有効ビットを示すデータマスク“11111111”を生成及び出力する。
B”とに分離し、解凍器52に入力する。Cmarkビットが“0”であるため、シンボル変
換部521は、圧縮シンボル“B”をオリジナルシンボルとして出力する。このとき、データマスク“11111111”を生成及び出力する。
ト“1”と判定する。この場合、解凍器52からのデータマスク“00000001”に従って1ビット読み出し、圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧
縮シンボル“1”との分離が行われ、それぞれが解凍器52に入力される。
すインデックス、すなわちインデックス“1”に登録(記憶)されたシンボル“A”(図29C)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“A”をインデックス“0”に移動し、シンボル“B”を次のエントリ(インデックス“1”)に移動させる。エントロピー計算部522はエントロピーの計算結果として“1”を出力し、マスク生成部523がデータマスク“00000001”を生成してデシリアライザ51に供給する。
よって、圧縮シンボル“C”が出力される。デシリアライザ51は、Cmarkビット“0”
及び圧縮シンボル“C”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“C”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
シンボル“D”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“D”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“D”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
ビット“1”と判定する。この場合、解凍器52からのデータマスク“00000011”に従って2ビット読み出し、ビット値“10”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧縮シンボル“10”とが解凍器52に入力される。
示すインデックス、すなわちインデックス“2”に登録されたシンボル“A”(図30C)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“A”をインデックス“0”に移動し、シンボル“D”及び“C”を次のエントリに移動させる。エントロピー計算部522はエントロピーの計算結果として“2”を出力し、マスク生成部523がデータマスク“00000011”を生成してデシリアライザ51に供給する。
ビット“1”と判定する。この場合、解凍器52からのデータマスク“00000011”に従って2ビット読み出し、ビット値“11”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧縮シンボル“11”とが解凍器52に入力される。
示すインデックス、すなわちインデックス“3”に登録されたシンボル“B”(図31A)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“B”をインデックス“0”に移動し、シンボル“A”,“D”,“C”を次のエントリに移動させる。エントロピー計算部522はエントロピーの計算結果として“2”を出力し、マスク生成部523がデータマスク“00000011”を生成してデシリアライザ51に供給する。
シンボル“F”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“F”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“F”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
シンボル“G”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“G”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“G”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
シンボル“E”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“E”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“E”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
従って3ビット読み出し、ビット値“010”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧縮シンボル“010”とが解凍器52に入力される。
が示すインデックス、すなわちインデックス“2”に登録されたシンボル“F”(図32B)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“F”をインデックス“0”に移動し、シンボル“E”,“G”を次のエントリに移動させる。エントロピー計算部522はエントロピーの計算結果として“3”を出力し、マスク生成部523がデータマスク“00000111”を生成してデシリアライザ51に供給する。
シンボル“H”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“H”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“H”をインデックス“0”に登録する。この場合、データマスク“11111111”が生成及び出力される。
シンボル“J”を出力する。デシリアライザ51は、Cmarkビット“0”及び圧縮シンボ
ル“J”を解凍器52に供給する。
リジナルシンボルとして出力するとともに、変換テーブルに対するプッシュ処理を行い、シンボル“J”をインデックス“0”に登録する。このとき、シンボル“C”は変換テーブルから追い出されて削除される。エントロピー計算部522はエントロピー計算結果として“3”を出力し、マスク生成部523がデータマスク“00000111”をデシリアライザ51に供給する。
って3ビット読み出し、ビット値“110”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧縮シンボル“110”とが解凍器52に入力される。
が示すインデックス、すなわちインデックス“6”に登録されたシンボル“A”(図33B)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“A”をインデックス“0”に移動し、シンボル“J”から“B”を次のエントリに移動させる。エントロピー計算部522はエントロピーの計算結果として“3”を出力し、マスク生成部523がデータマスク“00000111”を生成してデシリアライザ51に供給する。
ビット“1”と判定する。この場合、解凍器52からのデータマスク“00000111”に従って3ビット読み出し、ビット値“110”を圧縮シンボルとして出力する。これによって、Cmarkビット“1”と圧縮シンボル“110”とが解凍器52に入力される。
が示すインデックス、すなわちインデックス“6”に登録されたシンボル“B”(図33C)を読み出し、オリジナルシンボルとして出力する。また、シンボル変換部521は、シンボル“A”をインデックス“0”に移動し、シンボル“A”から“G”を次のエントリに移動させる。エントロピー計算部522はエントロピーの計算結果として“3”を出力し、マスク生成部523がデータマスク“00000111”を生成してデシリアライザ51に供給する。
次に、実施形態2に係る圧縮装置及び解凍装置について説明する。実施形態2は実施形態1と同様の構成を含むため、同様の構成については説明を省略し、主として相違点について説明する。
ット及び圧縮シンボルのシリアルデータは、“1011”となる。
ル“11”からなるシリアルデータ“111”が圧縮装置から出力される。
び圧縮シンボル“01”からなるシリアルデータ“101”が圧縮装置から出力される。
次に、実施形態3に係る圧縮装置及び解凍装置について説明する。実施形態3は実施形態1と同様の構成を含むため、同様の構成については説明を省略し、主として相違点について説明する。
ができる。解凍側(解凍装置)ではその引数の個数は把握しているものとする。
図37A〜Cは、例外シンボルの説明図である。図37Aには、圧縮装置と解凍装置と
で共有する変換テーブルの一例が示されている。変換テーブルは、所定数(一例として4つ)のエントリ(インデックス“0”〜“3”)を有し、インデックス“0”がコマンド1を示す例外シンボルの登録用にリザーブされ、インデックス“1”がコマンド2を示す例外シンボルの登録用にリザーブされている。
ンデックス“0”とを解凍側に送る。解凍装置は、Cmarkビット“1”に従って、インデ
ックス“0”からコマンド1の例外シンボルを読み出し、コマンド1を認識して、コマンド1に応じた処理を行う。但し、第1送信方法を用いる場合には、コマンドに使用されるビット列(シンボル)はオリジナルシンボルとして出現しないことを保証することが要求される。或いは、コマンドが登録されるエントリがオリジナルエントリの登録用として使用されないようにリザーブする必要がある。
例外シンボルとを、解凍装置へ送る。解凍装置では、Cmarkビット“0”に従って、コマ
ンド1の例外シンボルを変換テーブルに登録しようとするが、コマンド1の例外シンボルは既に登録されているため、エラー(例外)が発生する(図22、S38、S41参照)。解凍装置は、この例外に対する例外処理において、例外コマンドであるコマンド1を実行する。
ルとしての、空エントリのインデックスであるインデックス“2”又は“3”とを送信する。解凍装置は、Cmarkビット“1”に従ってインデックス“2”又は“3”からシンボ
ルの読み出しを試行するが、空エントリであるため読み出しができず、エラーとなる(図22、S33、S42参照)。このエラーの発生を、例外(コマンド実行)の発生と解凍装置は扱う。このとき、インデックス“2”であればコマンド1、インデックス“3”であればコマンド2と解釈することもできる。
ルとしての、シンボル“AB”又は“CD”とを送信する。解凍装置は、Cmarkビット“
0”に従ってシンボル“AB”又は“CD”の登録を試行するが、シンボル“AB”及び“CD”は既に登録されているためエラーとなる。このエラーの発生を、例外(コマンド実行)の発生と解凍装置は扱う。このとき、シンボル“AB”であればコマンド1の実行を、シンボル“CD”であればコマンド2の実行と解釈することもできる。
生成して送信するようにしてもよい。
する。解凍装置は、インデックスにより指定されたエントリに登録されたコマンドを取得して、コマンドを実行する。第1の送信方法は、RETI(Reserve Entry, Transmit Index)と呼ばれる。
ット“0”とを解凍装置に送る。解凍装置では、オリジナルシンボル(コマンド)が既に登録済であるためエラー(例外)が発生する。解凍装置は、この例外に対する例外処理としてコマンドを実行する。第2の送信方法は、RETO(Reserve Entry, Transmit Original)と呼ばれる。
解凍装置では、インデックスが示すエントリが未使用であるのでエラー(例外)が生じる。解凍装置は、この例外に対する例外処理として所定のコマンドを実行する。第3の送信方法は、FETI(Free Entry, Transmit Index)と呼ばれる。
ット“0”とを解凍装置に送る。解凍装置では、オリジナルシンボルが既に登録済であるためエラー(例外)が発生する。解凍装置は、この例外に対する例外処理として所定のコマンドを実行する。第4の送信方法は、FETO(Free Entry, Transmit Original)と
呼ばれる。第3及び第4の送信方法では、圧縮装置から送られたコマンドを用いてもよく、解凍装置が例外発生時にローカルに保持されたコマンドを取得して実行してもよい。コマンドの取得経路は問わない。
コマンド実行用データには、コマンド実行に係る1又は2以上の引数を含むことができる。図40ではコマンドの後に、二つの引数が挿入されている。例外処理が終わると、オリジナルシンボルに対する圧縮処理が再開される。
<<圧縮装置における処理>>
図41A〜C、図42A〜C、図43A〜C、図44A〜C、図45A〜C、図46A及びBは、実施形態3における圧縮装置10の動作例(圧縮方法)を説明する図である。本動作例では、8ビットのオリジナルシンボルを扱う。変換テーブルのテーブルサイズは、エントリ数8(インデックス“0”〜“7”)である(図41A参照)。例外シンボルに関して、FETI(第3の送信方法)又はFETO(第4の送信方法)を用いた対応を行う。
EOS(End of Stream)コマンドとを用いる。RESコマンドは、変換テーブルの登録
内容をリセットするコマンドである。RESコマンドは“RET”と表記する。RESコマンドはシンボル“E”により表される。EOSコマンドは、圧縮シンボル列の終端を示すコマンドであり、“EOS”と表記する。EOSコマンドはシンボル“F”により表される。以下の説明において、コマンドの実行をシンボル変換部111、521が行う例を示すが、コマンドの実行は、シンボル変換部111、521以外によって行われてもよい。例えば、コマンドを実行するコマンド実行部を設けてもよい。
入力された場合を仮定する。図41Bは、オリジナルシンボル列のうち最初のシンボル“A”に対する処理を示し、図41Cは、シンボル“A”の次のシンボル“B”に対する処理を示す。シンボル“A”及び“B”に対する処理は、実施形態1と同様であるので説明を省略する。
”に設定する。これにより、解凍装置50でシンボル“C”に関する矛盾が生じ、例外発生のトリガとなる。続いて、RESコマンドを意味するコマンドシンボル“E”をシンボル変換部111は出力する。なお、FETOに用いるエントリは、登録済であればインデックス“0”以外でもよい。
Sコマンドによって、異なるデータストリームのためにエントロピーの履歴をリセットすることができる。
“EOS”が入力された場合の処理を示す。圧縮装置10の圧縮器11のシンボル変換部111は、“EOS”が入力されると、FETO(第4の送信方法)による対応として、インデックス“0”に登録されたシンボル“K”を圧縮シンボルとして出力する。シンボル変換部111は、このシンボル“K”に対するCmarkビットの値を“0”に設定する。
これにより、解凍装置50でシンボル“C”に関する矛盾が生じ、例外発生のトリガとなる。続いて、EOSコマンドを意味するコマンドシンボル“F”をシンボル変換部111は出力する。その後、圧縮装置10では、例外コマンド“EOS”により、オリジナルシンボル列の終端を認識し、所定の処理を行う(圧縮処理を終了してもよい)。
図47A〜C、図48A〜C、図49A〜C、図50A〜C、図51A〜C、図52A及びBは、実施形態3における解凍装置50の動作例(解凍方法)の一例を説明する図である。図47Aは、解凍装置50の解凍器52が有する変換テーブルを示し、圧縮装置10が有する変換テーブルと同じ構造を有する。本動作例では、圧縮シンボルとして“AB1CCEBAC1GFHJKKF”が解凍装置50に入力される場合について説明する。但し、各シンボル
は、その前にCmarkビットが置かれ、Cmarkビットとの組み合わせによるシリアルデータをなしている。この点は実施形態1と同じである。
とに分離して解凍器52に入力する。解凍器52は、Cmarkビット“0”に従って圧縮シ
ンボル“A”をオリジナルシンボルとして出力する。これは、実施形態1と同様の処理である。
示す。図48Bは、シリアルデータ“11”の次のシリアルデータ“0C”に対する処理を示す。これらの処理は、実施形態1と同様であるので説明を省略する。
ろが、シンボル“C”は既に変換テーブルに登録されている。このため、矛盾(エラー)が発生する。すると、シンボル変換部521は、次に入力される圧縮シンボルを参照し、シンボルの値がシンボル“E”であると、コマンド“RET”を実行し、変換テーブルの全てのエントリをクリアする。これにより、テーブルリセットがなされる(図49A参照)。シンボル変換部521は、シンボル“C”は、矛盾発生用のシンボルであり、シンボル“E”はコマンドシンボルであるため、シンボル変換部521は、これらに対応するオリジナルシンボル(解凍シンボル)の出力は行わない。
を変換テーブルに登録しようとする。ところが、シンボル“K”は既に変換テーブルに登録されているため、矛盾が発生する。すると、シンボル変換部521は、次の圧縮シンボルを参照する。次のシンボルが“F”であると、シンボル変換部はコマンド“EOS”を実行し、オリジナルシンボル列の終端を認識(検出)する。これに伴い、所定の処理(解凍処理の終了など)を行う。
次に、実施形態4に係る圧縮装置及び解凍装置について説明する。実施形態4は実施形態1及び実施形態3と同様の構成を含むため、同様の構成については説明を省略し、主として相違点について説明する。
ータマスクはオール1となる。図53Bは、オリジナルシンボル“B”に対する処理を示す。この場合、シンボル“B”がインデックス“2”に登録され、シンボル“A”は次のインデックス“3”に移動する。Cmarkビット“0”及び圧縮シンボル“B”が出力され
る。エントロピー計算値は2であり、データマスクはオール1である。
“3”とが出力される。このときのエントロピー計算値は2であり、データマスクは有効ビット数2を示す“00000011”となる。
れる。このように、オリジナルシンボルとしてのシンボル“C”に対しては、コマンドシンボル“C”の登録用にリザーブされたインデックス“0”が、オリジナルシンボル“C”の圧縮に使用される。この場合におけるエントロピー計算値は2であり、データマスクは“00000011”である。
ビット“0”を出力する。このため、データマスクはオール1となる。シンボル変換部111は、コマンド“RET”に従って、インデックス“2”以降のエントリ中の登録済シンボルをクリアする。
ス値“1”とを出力する。このときのエントロピー計算値は3であり、データマスク“00000111”が出力される。
ット“0”を出力する。このため、データマスクはオール1となる。圧縮器11(圧縮装置10)では、コマンド“EOS”によって、オリジナルシンボル列の終端を認識し、所定の処理を行う。
にCmarkビットが付加されたシリアルデータの集合である。以下、解凍装置50における
処理を、実施形態3との比較において説明する。
分離して解凍器52に供給する。デシリアライザ51の動作は、実施形態3と同じである、解凍器52では、シンボル変換部521が実施形態3と同様の処理を行う(図22)。但し、インデックス“0”及び“1”がリザーブされているため、圧縮シンボルを登録するためのエントリがインデックス“2”から始まること、これによって、エントロピーの計算結果が変わってくることを除き、実施形態3と同じである。
ット“0”と、圧縮装置10におけるRETOによって圧縮シンボルとして出力されたシンボル“C”(コマンド“RET”のシンボル)とが入力される。シンボル変換部521は、Cmarkビット“0”に従って、変換テーブルを参照すると、シンボル“C”が既に登
録されているため、エラーとなる。このエラーを契機にシンボル“C”が割り当てられたコマンド“RET”を実行し、リザーブ領域を除いて変換テーブルの登録内容をリセットする。
ト“0”と、圧縮装置10がRETOによって出力した圧縮シンボル “F”(コマンド
“EOS”のシンボル)とが入力される。Cmarkビット“0”に従って、変換テーブルか
らシンボル“F”が検索され、シンボル“F”が既に登録されているため、エラーとなる
。このエラーを契機にシンボル“F”が割り当てられたコマンド“EOS”が実行され、オリジナルシンボル列の終端が認識される。終端の認識に応じた所定の処理が実行されてもよい。
次に、実施形態5に係る圧縮装置及び解凍装置について説明する。実施形態5の構成は、実施形態1と共通点を有するので、主として相違点について説明し、共通点については説明を省略する。
施形態1と同じであるため、詳細な説明は省略する。データマスクについても、その作成方法は実施形態と同じである。
” 、圧縮シンボルは“2”、データマスクは“00000011”となる。また、ヒット回数(
ヒットカウント)の値が1となる。
縮器11から出力される。このとき、ヒットしたエントリのインデックス“4”から2個遡ったインデックス“2”にシンボル“B”が移動する。このとき、シンボル“A”及び“C”がプッシュされて、それぞれ次のエントリへ移動する。これらの変換テーブルの書き換え処理は、例えば圧縮器11(シンボル変換部111)によって行われるが、シンボル変換部111以外で行うようにしてもよい。この場合のエントロピー計算値は2、データマスクは“00000011”となる。
縮器11から出力される。このとき、ヒットしたエントリのインデックス“3”から2個遡ったインデックス“1”にシンボル“C”が移動する。このとき、シンボル“D”及び“B”がプッシュされて、それぞれ次のエントリへ移動する。この場合のエントロピー計算値は2、データマスクは“00000011”、ヒットカウントは1となる。
とインデックス“0”とが圧縮器11から出力される。コマンドシンボルのヒットの場合、ヒットしたシンボルの移動は起こらない。このため、このヒットをカリングの発生条件であるヒットカウントに加えるか否かは任意であり、コマンド仕様に従う。図67Cでは、ヒットの回数に加えてカリングが実行され、末尾のシンボル“B”が削除された例を示す。この場合、エントロピー計算値は2であり、データマスクは“00000011”であり、ヒットカウントが0となる。カリングが行われない場合、シンボル“B”及びヒットカウント値“1”が維持される。
は、オリジナルシンボル列の変換によって得られた圧縮シンボル列“AB2CD430”の各シンボルに、Cmarkビットが付加されたシリアルデータ列が入力される。
“A”とに分離して解凍器52に供給する。デシリアライザ51の動作は、実施形態3と同じである、解凍器52では、シンボル変換部521が実施形態3と同様の処理を行う(図22)。但し、インデックス“0”がリザーブされているため、圧縮シンボルを登録するためのエントリがインデックス“1”から始まること、これによって、エントロピーの計算結果が変わってくることを除き、実施形態3と同じである。
圧縮シンボル“10”に基づいて、インデックス“2”がヒットする。この場合、インデックス“2”に登録されたシンボル“A”がインデックス“1”に移動し(i−k≦0が満たされるため)、インデックス“1”に登録されていたシンボル“B”がインデックス“2”に移動する。解凍シンボルとして、シンボル“A”が出力される。エントロピー計算値は2であり、データマスクは“00000011”であり、ビットカウントは1となる。
いて、圧縮シンボル“C”がインデックス“1”に登録され、シンボル“A”及び“B”が次のエントリに移動する。解凍シンボルとしてシンボル“C”が出力される。エントロピー計算値、データマスク、ビットカウントに変化はない。
いて、圧縮シンボル“D”がインデックス“1”に登録され、シンボル“C”,“A”,“B”が次のエントリに移動する。解凍シンボルとしてシンボル“D”が出力される。エントロピー計算値が3となり、データマスクは“00000111”となる。ビットカウントは1のままである。
、圧縮シンボル“100”とに基づいて、インデックス“4”がヒットする。この場合、インデックス“4”に登録されたシンボル“B”がインデックス“2”に移動し(k=2のため)、インデックス“2”及び“3”に登録されていたシンボル“C”及び“A”が次のエントリに移動する。このとき、ヒットカウントが2となるため、エントロピーカリングが行われ、末尾に位置するシンボル“A”が削除される。これによって、エントロピー計算値は2となり、データマスクは“00000011”となる。ヒットカウントはリセットされる。
圧縮シンボル“11”とに基づいて、インデックス“3”がヒットする。この場合、インデックス“3”に登録されたシンボル“C”がインデックス“1”に移動し(k=2のため)、インデックス“1”及び“2”に登録されていたシンボル“D”及び“B”が次のエントリに移動する。このとき、ヒットカウントが1となる。解凍シンボルとして、シンボル“C”が出力される。エントロピー計算値は2であり、データマスクは“00000011”である。
圧縮シンボル“00”とに基づいて、インデックス“0”がヒットする。この場合、インデックス“0”に登録されたシンボル“コマンド1=コマンドEOS”が読み出される。EOSが実行され、解凍器52は、オリジナルシンボル列の終端を認識する。この認識に
従って、所定の処理が行われてもよい。また、図70Cに示す例では、エントロピーカリングによって末尾のシンボル“B”が削除された様子を示すが、削除しなくてもよい。
次に、実施形態6に係る圧縮装置及び解凍装置について説明する。実施形態6の構成は、実施形態1と共通点を有するので、主として相違点について説明し、共通点については説明を省略する。
1aと同じ構成を有する。圧縮器11bは、圧縮器11aから入力されるNビットの圧縮シンボルを、N=2シンボルで、Nビットの圧縮シンボル“ABCD1002EF”に変換し、対応するCmarkビットともに出力する。圧縮器11bは「他の圧縮装置」の一例である。
ビット、及びデータマスクを出力する。
凍器52bは、Nビットの圧縮シンボルと対応するCmarkビットとを出力する。解凍器5
2bは「他の解凍装置」の一例である。
凍器52cは、Nビットのオリジナルシンボルデータを出力する。解凍器52aは、Nビットの解凍シンボル“ABCD1002EF”を出力し、解凍器52bは、N=2シンボルでの解凍を行い、解凍シンボル“ABCD1010ABEF”を出力し、解凍器52cは、オリジナルシンボルデータ“ABCDABCDABEF”を出力する。
器52a〜52c)がカスケード接続された構成を有する。これによって、長いビットパターンを有するオリジナルシンボルデータの、伝送路におけるサイズを十分に小さくすることが可能となる。
次に、実施形態7に係る圧縮装置及び解凍装置について説明する。実施形態7の構成は、実施形態1と共通点を有するので、主として相違点について説明し、共通点については説明を省略する。
、その下位2ビットの“10”(二進数の3)に基づき、バンク#2が選択される。バンク#2の検索により、シンボル“A”が登録されたエントリとして、インデックス“1”がヒットする。この場合、圧縮器11は、バンク番号“10”に、インデックス番号“1”を続けた圧縮シンボルを生成する。圧縮シンボルの前には、圧縮を示すCmarkビット“
1”が付加される。よって、オリジナルシンボル“A”は、4ビットのシリアルデータ“1101”に圧縮され、伝送データとして解凍装置50へ送信される。実施形態7では、圧縮装置10、解凍装置50のそれぞれにおいて、バンク毎にエントロピー計算が行われ、バンク毎にデータマスクが生成される。
+バンク番号+インデックス番号を示すビットからなる。但し、ハッシュ値がデータの順番により決まる場合(例えば、バンクがバンク番号に従ってラウンドロビンに決定される場合)では、バンク番号をシンボルデータに含めなくてよい。
ジナルシンボルの組み合わせとなる。ハッシュ関数によりバンクが一意に決まるため、バンク内では、バンク化されていない場合と同じ動作をすればよいからである。解凍器では、Cmarkビット“0”以降のNビットをオリジナルシンボルとして認識することができる
。但し、シンボルデータにおけるCmarkビット、バンク番号、インデックス番号、オリジ
ナルシンボルの位置(順序)は、解凍側で圧縮側と同じハッシュ関数を用いていれば、バンク内のエントリ使用状態から一意に決まる。
、バンク番号2のバンク#2にアクセスする。また、シリアルデータの最下位ビットをインデックス番号と認識し、インデックス“1”に登録されているシンボルをオリジナルシンボルとして出力する。このようにして、オリジナルシンボル“A”が出力される。
あるため、解凍器52がシリアルデータの最下位からNビットをオリジナルシンボルとしと認識する。Cmarkビット“0”に続くオリジナルシンボルに対するハッシュによってバ
ンク番号が決まり、バンクに対応するエントロピー計算によってデータマスクが決まり、バンク内部でオリジナルシンボルが登録される。
次に、実施形態8に係る圧縮装置及び解凍装置について説明する。実施形態8の構成は、実施形態1と共通点を有するので、主として相違点について説明し、共通点については説明を省略する。
ステップ1〜3)が実行される。但し、ステップ2はオプションである。
(ステップ1)第1キー(共通鍵)を圧縮装置10Bから解凍装置50Bへ送る。
(ステップ2)第2キーを圧縮装置10Bから解凍装置50Bへ送る。最後にEOK(End of Key)コマンドを送信する。EOKコマンドは、鍵交換の終了を示すコマンドである。
(ステップ3)暗号化するデータ(オリジナルシンボルデータ)を圧縮装置10Bに入力する。
例えば、上記のパラメータを全て組み合わせた場合の一例としては以下となる。
(8,8,4,+2,EOK by RETI,f(x),0xA5,2,1)
”、“001000011”、“001000100” 、“1100”、“111”、“100”といったシリアルデ
ータとなる。これらのシリアルデータが、スクランブル演算部14に入力される。
00100000 xor 10100101 = 10000101
10010000 xor 11010010 = 01000010
10110001 xor 01101001 = 11011000
00001100 xor 10110100 = 10111000
10001001 xor 01011010 = 11010011
10011110 xor 00101101 = 10111111
01001001 xor 10010110 = 11011111
00100100 xor 01001011 = 01101111
1000”、“1011”、“1000”、“1101”、“0011”、“1011”、“1111”、“1101”、“1111”、“0110”、“1111”といったシリアルデータが暗号データとして出力される。
(8,8,4,+2,EOK by RETI,f-1(x),0xA5,2,1)
但し、f-1(x)は、スクランブル演算に用いる関数f(x)の逆関数であり、“f-1(x)=X xor cyclic(KEY)”である。
10000101 xor 10100101 = 00100000
01000010 xor 11010010 = 10010000
11011000 xor 01101001 = 00100001
10111000 xor 10110100 = 00000100
11010011 xor 01011010 = 00001000
10111111 xor 00101101 = 00001100
11011111 xor 10010110 = 00000000
01101111 xor 01001011 = 00000000
ンボルの形式に区切る。この結果、シリアライザ12の出力と同じシリアルデータ、“001000001”、“001000010”、“110”、“001000011”、“001000100” 、“1100”、“111”、“100”が得られる。すなわち、暗号データの復号がなされる。このようなシリアルデータ群を用いて、解凍器52における変換テーブルの初期状態が生成される。解凍装置50では、コマンド“EOK”の繰り返しを検出することで、変換テーブルの初期状態を作成するシンボル列の終端を検出する。
実施形態1〜8に示した圧縮装置及び解凍装置は、ソフトウェアによって実装されてもよく、ハードウェアによって実装されてもよい。
図76は、実施形態1〜8に係る圧縮装置及び解凍装置に適用可能な端末装置の構成例を示す。端末装置30は、汎用又は専用のコンピュータ(情報処理装置)である、汎用のコンピュータとして、例えば、パーソナルコンピュータ(PC)やワークステーションを
適用できる。専用コンピュータとして、例えばサーバマシンを適用できる。また、端末装置30は、固定端末でも無線端末であってもよい。無線端末は、スマートフォンやタブレット端末のようなスマートデバイスを含む。また、端末装置30は、カーナビゲーション装置やゲーム装置なども含み得る。
Programmable Read-Only Memory(EEPROM)などである。また、補助記憶装置は、情報処理装置に対して着脱自在な可搬性記憶媒体を含む。可搬性記憶媒体は、例えばUniversal Serial Bus(USB)メモリである。
、無線LAN(IEEE802.11シリーズやWi-Fi)、Bluetooth(登録商標)、BLEなどを適用し得る。但し、通信規格はこれらに制限されない。
置34は、解凍によって得られたオリジナルシンボルデータの出力や表示に使用することができる。
)、IC,LSI,Application Specific Integrated Circuit(ASIC)などの集積
回路を含む。また、圧縮装置及び解凍装置は、MCU(Micro Control Unit)やSoC(System-on-a-Chip)のような回路とプロセッサの組み合わせにより実装されてもよい。
<<圧縮装置の回路構成>>
図77は、圧縮装置10の回路構成例を示す。図77において、圧縮装置10は、解凍装置オリジナルシンボルデータを保持するフリップフロップ(F/F)61と、テーブル回路62と、変換テーブルの操作回路63と、圧縮/非圧縮の判定回路64と、エントロピー計算部112及びマスク生成部113として動作する回路65と、シリアライザ12として動作するバレルシフタ66とを含む。
力する。これに対し、オリジナルシンボルと同じ値を出力した記憶領域621がある場合には、Cmarkビット“1”と、その記憶領域621のインデックス値(INDEX)とを出力する。
力される制御端子と、Cmarkビットが“0”のときにオリジナルシンボルを圧縮シンボル
として出力し、Cmarkビットが“1”のときにインデックス値を圧縮シンボルとして出力
する出力端子とを有する。
レクタ631は、Cmarkビットが“0”のときにオリジナルシンボルを先頭の(インデッ
クス“0”の)記憶領域621に出力し、Cmarkビットが“1”のときにセレクタ632
からのシンボルをインデックス“0”の記憶領域621に出力する出力端子を有する。
ンボルが記憶されていれば、そのシンボルを次の記憶領域621に移動させる。但し、インデックス“n−1”の記憶領域621に対しては、シンボルの値が上書きされる。
vビットとが入力される。vビットにより、変換テーブルの使用率がわかる。回路65は、Cmarkビットが“1”の場合に、第1又は第2の計算方法によるエントロピー計算を行
う。回路65は、エントロピー計算値に応じたデータマスクを生成し、バレルシフタ66に入力する。
65からのデータマスクとが入力される。バレルシフタ66は、Cmarkビット+圧縮シン
ボルを、Kビット単位で出力する。バレルシフタ66の出力は、伝送データとして解凍装置50へ送信される。
ータマスク“11111111”がバレルシフタに入力されるように回路を構成する。或いは、Cmarkビットが“0”のとき、回路65はデータマスクを出力せず、バレルシフタ66が、
圧縮シンボルについてはCmarkビットに続けてそのまま出力するようにしてもよい。
図78は、解凍装置50の回路構成例を示す。図78に示す解凍装置50は、図77に示した圧縮装置10に対応した構成を有する。解凍装置50は、デシリアライザ51として動作するバレルシフタ76と、回路75と、AND回路77と、F/F71と、テーブル回路72と、変換テーブルの操作回路73と、解凍要否の判定回路74とを有する。
ロピー計算と、その計算結果に応じたデータマスクの生成とを行う。そして、回路75は、データマスクをAND回路77の入力端に入力する。なお、バレルシフタ76からAND回路77に入力される圧縮シンボルのビット数は、データマスクに示される有効ビット数で決まる。
た有効ビット数を示すデータマスクを出力する。Cmarkビットが“0”のとき、エントロ
ピー計算値に関わらず、全ビットが有効であることを示すデータマスク“11111111”を出力する。但し、Cmarkビットが“0”のとき、回路75はデータマスクを出力せず、バレ
ルシフタ66から出力される圧縮シンボルがそのままF/F71に入力される構成を採用してもよい。
レクタ631は、Cmarkビットが“0”のときにオリジナルシンボルを先頭の(インデッ
クス“0”の)記憶領域621に出力し、Cmarkビットが“1”のときにセレクタ732
からのシンボルをインデックス“0”の記憶領域721に出力する出力端子を有する。
ンボルが記憶されていれば、そのシンボルを次の記憶領域721に移動させる。但し、インデックス“n−1”の記憶領域621に対しては、シンボルの値が上書きされる。
実施形態10として、実施形態1で説明したエントロピー計算方法(第1の計算方法)と異なるエントロピーの第2の計算方法について説明する。エントロピーの第2の計算方法では、過去Tシンボルに対する圧縮処理における変換テーブルの使用率及びエントリのヒット率を用いてエントロピーを算出する。例えば、第1の計算方法におけるceil(log
2k)の代わりに、以下の式2を用いてエントロピー値Eを求める。
式2:E=ceil(log2((使用率/ヒット率)*エントリ数))
2のE乗以上であれば、ミスヒット(未登録)として扱う。
の、インデックス値が2のE乗以降のエントリに関して、圧縮シンボルの検索を行う(S38A)。圧縮シンボルがヒットしたと判定される場合(S38B、Y)、解凍器52は、第1の操作方法のヒット時の動作(図16C参照)を行う(S38C)、すなわち、ヒットした圧縮シンボルをオリジナルシンボル(解凍シンボル)として出力するとともに、圧縮シンボルを所定位置(例えばエントリの先頭)に移動し、先頭エントリからヒットしたエントリの一つ前のエントリのそれぞれに登録されたシンボルを次のエントリに移動する。
“2”とされる。
実施形態1〜10で説明したエントロピー計算がシャノンの平均情報量を正しく表現できているかを実験的に証明する。実施形態1で説明した圧縮装置10を用いて、上述したエントロピーの第1の計算方法及び第2の計算方法を用いて、オリジナルシンボルが入力される毎に、エントロピーを計算して記録し、オリジナルシンボル列全体の処理が終わった場合における第1及び第2の計算方法による計算結果の平均値の夫々と、オリジナルシンボル列全体のシャノンの平均情報量とを比較する。
実施形態11について説明する。実施形態11は、実施形態4及び実施形態5の変形例にあたる。実施形態4及び5では、変換テーブルのリザーブされたエントリ領域については、登録されたシンボルが固定され、エントリのヒット/ミスヒットに伴うテーブル更新の対象となっていない(図54A、図66Aを参照)。
置及び解凍装置以外に適用可能である。例えば、参考例に示した圧縮装置及び解凍装置に適用が可能である。
11・・・圧縮器
12・・・シリアライザ
50・・・解凍装置
51・・・デシリアライザ
52・・・解凍器
111,521・・・シンボル変換部
112,522・・・エントロピー計算部
113,523・・・マスク生成部
Claims (28)
- 圧縮装置が、入力されたシンボルが複数のエントリを有する第1テーブルに未登録である場合に、前記複数のエントリの一つに前記シンボルを登録するとともに、非圧縮を示す指標データと前記シンボルとを出力する処理と、前記シンボルが前記テーブルに登録済みの場合に、圧縮を示す指標データと、前記シンボルが登録されているエントリの位置を示すとともに前記シンボルのサイズより小さいサイズを有する位置情報とを出力する処理と、を行い、
解凍装置が、前記非圧縮を示す指標データ及び前記シンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記第1テーブルと同一のデータ構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、前記圧縮を示す指標データと前記位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と、を行い、
前記圧縮装置が、前記圧縮を示す指標データと前記位置情報を出力する場合に、前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第1のビット数で表現された前記位置情報を出力し、
前記解凍装置が、前記非圧縮を示す指標データ及び前記シンボルを受信して前記シンボルを前記第2テーブルに登録した場合に、前記第2テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1のビット数の算出方法と同じ算出方法により算出される、前記第2テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第2のビット数を用いて、前記圧縮装置から送信され前記解凍装置に入力されるビット列から前記位置情報を抽出する
データの圧縮及び解凍方法。 - 前記圧縮装置が、前記第1のビット数を、前記第1テーブルの使用中のエントリ数k及び下記式1を用いて算出し、
前記解凍装置が、前記第2のビット数を、使用中の前記第2テーブルのエントリ数k及び下記式1を用いて算出する、
請求項1に記載のデータの圧縮及び解凍方法。
式1:ceil(log2k) - 前記圧縮装置が、前記第1のビット数を、所定数のシンボルに対する圧縮処理の結果における前記第1テーブルの使用率と、シンボルが登録されたエントリのヒット率と、下記式2とを用いて算出し、
前記解凍装置が、前記第2のビット数を、前記所定数のシンボルに対する解凍処理の結果における前記第2テーブルの使用率と、シンボルが登録されたエントリのヒット率と、下記式2とを用いて算出する、
請求項1に記載のデータの圧縮及び解凍方法。
式2:ceil(log2((使用率/ヒット率)*エントリ数)) - 前記位置情報は、前記第1テーブル及び前記第2テーブルの前記複数のエントリに対して先頭のエントリから順に割り当てられたインデックス番号である
請求項1から3のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記シンボルの前記第1テーブルの検索において前記シンボルが登録されたエントリがヒットした場合に、前記シンボルを前記第1テーブルの先頭のエントリに移動させるともに、前記第1テーブルの前記先頭のエントリから前記ヒットしたエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させ、
前記解凍装置は、前記シンボルの前記第2テーブルの検索において前記シンボルが登録されたエントリがヒットした場合に、前記シンボルを前記第2テーブルの先頭のエントリに移動させるともに、前記第2テーブルの先頭のエントリから前記ヒットしたエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させる
請求項1から4のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記シンボルの前記第1テーブルの検索において前記シンボルが登録されたエントリがヒットした場合に、前記第1テーブルに関して、前記ヒットしたエントリに登録されていたシンボルを前記ヒットしたエントリより先頭側にある所定の移動先エントリに登録するとともに、前記移動先エントリから前記ヒットしたエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させ、
前記解凍装置は、前記シンボルの前記第2テーブルの検索において前記シンボルが登録されたエントリがヒットした場合に、前記第2テーブルに関して、前記ヒットしたエントリ中のシンボルを前記ヒットしたエントリより先頭側にある所定の移動先エントリに登録するとともに、前記移動先エントリから前記ヒットしたエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させる
請求項1から4のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記所定の移動先エントリは、前記第1テーブル及び前記第2テーブルにおける先頭のエントリである
請求項6に記載のデータの圧縮及び解凍方法。 - 前記所定の移動先エントリは、前記第1テーブル及び前記第2テーブルにおいて、前記ヒットしたエントリから先頭方向に所定数だけ遡った位置にあるエントリであり、
前記圧縮装置及び前記解凍装置は、前記所定数だけ遡った位置が先頭を超える場合に、先頭のエントリを移動先に設定する
請求項6に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記第1テーブルの全てのエントリが使用中の状態における、前記シ
ンボルの前記第1テーブルの検索において前記シンボルが登録されたエントリがヒットしない場合に、前記シンボルを前記第1テーブルの先頭のエントリに登録するとともに、前記第1テーブルの前記先頭のエントリから末尾のエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させて前記末尾に登録されていたエントリ中のシンボルを削除し、
前記解凍装置は、前記第2テーブルの全てのエントリが使用中の状態における、前記シンボルの前記第2テーブルの検索において前記シンボルが登録されたエントリがヒットしない場合に、前記シンボルを前記第2テーブルの先頭のエントリに登録するとともに、前記第2テーブルの前記先頭のエントリから末尾のエントリの1つ前にあるエントリまでの間にあるエントリに登録されているシンボルを次のエントリに移動させて前記末尾に登録されていたエントリ中のシンボルを削除する
請求項1から8のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記シンボルの前記第1テーブルの検索において前記シンボルが登録されたエントリがヒットしない場合に、前記第1テーブルにおける第1エントリが空き状態であれば、前記第1テーブルにおける第1エントリに前記シンボルを登録し、前記第1テーブルの全てのエントリが使用中であれば、前記第1テーブルにおける第1エントリに前記シンボルを上書き登録し、
前記解凍装置は、前記シンボルの前記第2テーブルの検索において前記シンボルが登録されたエントリがヒットしない場合に、前記第2テーブルにける第1エントリが空き状態であれば、前記第2テーブルにおける第1エントリに前記シンボルを登録し、前記第2テーブルの全てのエントリが使用中であれば、前記第2テーブルにおける第1エントリに前記シンボルを上書き登録する、
請求項1から8のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記第1テーブルにおける第1エントリが前記第1テーブルの末尾のエントリであり、
前記第2テーブルにおける第1エントリが前記第2テーブルの末尾のエントリである
請求項10に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記第1テーブルに関して、シンボルが登録されたエントリのヒット数、又はシンボルが登録されたエントリのミスヒット数が所定値に達した場合に、シンボルを登録しているエントリのうちインデックス番号が最大のエントリ中のシンボルを削除し、
前記解凍装置は、前記第2テーブルに関して、シンボルが登録されたエントリのヒット数、又はシンボルが登録されたエントリのミスヒット数が所定値に達した場合に、シンボルを登録しているエントリのうちインデックス番号が最大のエントリ中のシンボルを削除する
請求項1から11のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記第1テーブルに関して、前記インデックス番号が最大のエントリが先頭から所定範囲にあるエントリに該当する場合には、前記インデックス番号が最大のエントリ中のシンボルを削除せず、
前記解凍装置は、前記第2テーブルに関して、前記インデックス番号が最大のエントリが先頭から所定範囲にあるエントリに該当する場合には、前記インデックス番号が最大のエントリ中のシンボルを削除しない
請求項12に記載のデータの圧縮及び解凍方法。 - 前記第1テーブル及び前記第2テーブルにおける同一の所定エントリに命令を示す命令シンボルが登録されており、
前記圧縮装置は、圧縮を示す指標データと前記所定エントリを示す位置情報とを出力す
るとともに、前記命令シンボルが示す命令を実行し、
前記解凍装置は、前記圧縮装置から受信される、前記圧縮を示す指標データと前記所定エントリを示す位置情報とに基づいて、前記第2テーブルにおける前記所定エントリに登録された前記命令シンボルを読み出し、前記命令シンボルが示す命令を実行する
請求項1から13のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記第1テーブル及び前記第2テーブルにおける同一の所定エントリに前記解凍装置に実行させる命令を示す命令シンボルが登録されており、
前記圧縮装置は、非圧縮を示す指標データと前記命令シンボルとを出力し、
前記解凍装置は、前記非圧縮を示す指標データに基づく前記命令シンボルの登録処理において前記第2テーブルに既に前記命令シンボルが登録されていることに対する例外処理として前記命令シンボルが示す命令を実行する
請求項1から13のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置が、前記解凍装置に命令を実行させる場合に、圧縮を示す指標データと前記第1テーブルの空き状態のエントリを示す位置情報とを出力し、
前記解凍装置が、前記圧縮装置から受信された、前記圧縮を示す指標データ及び前記位置情報に基づくシンボルの読出処理において前記位置情報が示す前記第2テーブルのエントリにシンボルが登録されていないことによって生じる例外の発生時に、前記命令を示す情報を取得して実行する
請求項1から13のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置が、前記圧縮を示す指標データ及び前記第1テーブルの空き状態のエントリを示す位置情報の出力に続いて、非圧縮を示す指標データと前記命令を示す命令シンボルとを出力し、
前記解凍装置は、前記例外の発生時に、前記命令シンボルが示す命令を実行する
請求項16に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置が、前記解凍装置に命令を実行させる場合に、非圧縮を示す指標データと前記第1テーブルにおいて登録中のシンボルとを出力し、
前記解凍装置が、前記圧縮装置から受信された、前記非圧縮を示す指標データに基づくシンボルの登録処理において前記第2テーブルに同一のシンボルが登録されていることによって生じる例外の発生時に、前記命令を示す情報を取得して実行する
請求項1から13のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置が、前記非圧縮を示す指標データ及び前記第1テーブルにおいて登録中のシンボルの出力に続いて、非圧縮を示す指標データと前記命令を示す命令シンボルとを出力し、
前記解凍装置は、前記例外の発生時に、前記命令シンボルが示す命令を実行する
請求項18に記載のデータの圧縮及び解凍方法。 - 前記シンボルは、前記圧縮装置の前段に位置する他の圧縮装置によって圧縮処理が施されたシンボル列をなすシンボルであり、
前記解凍装置が出力する前記シンボルが、前記シンボル列の一部として、前記解凍装置の後段にある他の解凍装置に入力される
請求項1から19のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記第1テーブル及び前記第2テーブルは、テーブルの分割によって得られた複数のバンクの一つであり、前記第1テーブル及び前記第2テーブルの選択は、同一のハッシュ関数を用いて行う
請求項1から20のいずれか一項に記載のデータの圧縮及び解凍方法。 - 前記圧縮装置は、前記シンボルに対する圧縮処理のために設定する複数のパラメータから選択される2以上のパラメータの組み合わせを含む共通鍵を前記解凍装置に送信し、その後、前記非圧縮を示す指標データと前記シンボルとの組み合わせ、及び前記圧縮を示す指標データと前記位置情報との組み合わせに対する、前記共通鍵を用いた暗号化を行い、前記暗号化の結果を前記解凍装置に送信し、
前記解凍装置が、前記圧縮装置から送信された前記共通鍵中の前記2以上のパラメータを、前記非圧縮を示す指標データと前記シンボルとの組み合わせ、又は前記圧縮を示す指標データと前記位置情報との組み合わせを用いて前記シンボルを出力する解凍処理のために設定し、前記暗号化の結果の復号を前記共通鍵を用いて行うとともに、復号した結果に対する前記解凍処理を行う
請求項1から21のいずれか一項に記載のデータの圧縮及び解凍方法。 - 圧縮装置が、
入力されたシンボルが複数のエントリを有する第1テーブルに未登録の場合に、前記複数のエントリの一つに前記シンボルを登録するとともに、非圧縮を示す指標データと前記シンボルとを出力する処理と、
前記シンボルが前記テーブルに登録済みの場合に、圧縮を示す指標データと、前記シンボルが登録されているエントリの位置を示すとともに前記シンボルのサイズより小さいサイズを有する位置情報とを出力する処理と、
前記複数のエントリの使用状況に応じて前記位置情報のサイズを変更する処理と、
を行い、
前記圧縮を示す指標データと前記位置情報を出力する処理において、前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数で表現された前記位置情報を出力する、
データ圧縮方法。 - 入力されたシンボルが複数のエントリを有する第1テーブルに未登録の場合に、前記複数のエントリの一つに前記シンボルを登録するとともに、非圧縮を示す指標データと前記シンボルとを出力する処理と、前記シンボルが前記テーブルに登録済みの場合に、圧縮を示す指標データと、前記シンボルが登録されているエントリの位置を示すとともに前記シンボルのサイズより小さいサイズを有する位置情報とを出力する処理と、を行う圧縮器
を含み、
前記圧縮器は、前記圧縮を示す指標データと前記位置情報を出力する処理において、前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数で表現された前記位置情報を出力する、
データ圧縮装置。 - 入力されたシンボルが複数のエントリを有する第1テーブルに未登録の場合に、前記複数のエントリの一つに前記シンボルを登録するとともに、非圧縮を示す指標データと前記シンボルとを出力する処理と、前記シンボルが前記テーブルに登録済みの場合に、圧縮を示す指標データと、前記シンボルが登録されているエントリの位置を示すとともに前記シンボルのサイズより小さいサイズを有する位置情報とを出力する処理と、をコンピュータに実行させ、
前記圧縮を示す指標データと前記位置情報を出力する処理において、前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数で表現された前記位置情報を出力する
、
プログラム。 - 解凍装置が、圧縮装置から送信された、非圧縮を示す指標データ及びシンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記圧縮装置が有する第1テーブルと同一のデータ構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、圧縮を示す指標データと前記第1テーブルにおいて前記シンボルが登録されたエントリの位置を示す位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と、
を行い、
前記位置情報は、前記圧縮装置が前記圧縮を示す指標データと前記位置情報を出力する場合に前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて算出される、前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第1のビット数で表現されており、
前記解凍装置は、前記非圧縮を示す指標データ及び前記シンボルを受信して前記シンボルを前記第2テーブルに登録した場合に前記第2テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1のビット数の算出方法と同じ算出方法により算出される、前記第2テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第2のビット数を用いて、前記圧縮装置から送信され前記解凍装置に入力されるビット列から前記位置情報を抽出する
データ解凍方法。 - 圧縮装置から送信された、非圧縮を示す指標データ及びシンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記圧縮装置が有する第1テーブルと同一のデータ構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、圧縮を示す指標データと前記第1テーブルにおいて前記シンボルが登録されたエントリの位置を示す位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と、を行う解凍器
を含み、
前記位置情報は、前記圧縮装置が前記圧縮を示す指標データと前記位置情報を出力する場合に前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて算出される、前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第1のビット数で表現されており、
前記解凍器は、前記非圧縮を示す指標データ及び前記シンボルを受信して前記シンボルを前記第2テーブルに登録した場合に前記第2テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1のビット数の算出方法と同じ算出方法により算出される、前記第2テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第2のビット数を用いて、前記圧縮装置から送信され前記解凍装置に入力されるビット列から前記位置情報を抽出する
データ解凍装置。 - 圧縮装置から送信された、非圧縮を示す指標データ及びシンボルを受信した場合に、前記圧縮装置における前記シンボルの登録方法と同一の方法で前記圧縮装置が有する第1テーブルと同一のデータ構造を有する第2テーブルに前記シンボルを登録するとともに前記シンボルを出力する処理と、圧縮を示す指標データと前記第1テーブルにおいて前記シンボルが登録されたエントリの位置を示す位置情報であって、前記第1テーブルの使用状況に応じてサイズが変更される位置情報とを受信した場合に、前記位置情報によって示される前記第2テーブル中のエントリに登録された前記シンボルを読み出して出力する処理と
、をコンピュータに実行させ、
前記位置情報は、前記圧縮装置が前記圧縮を示す指標データと前記位置情報を出力する場合に前記第1テーブルの前記複数のエントリの使用状況を示す情報に基づいて算出される、前記第1テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第1のビット数で表現されており、
前記非圧縮を示す指標データ及び前記シンボルを受信して前記シンボルを前記第2テーブルに登録した場合に前記第2テーブルの前記複数のエントリの使用状況を示す情報に基づいて前記第1のビット数の算出方法と同じ算出方法により算出される、前記第2テーブルにおける使用中のエントリの位置情報を表現可能な最小のビット数である第2のビット数を用いて、前記圧縮装置から送信され前記解凍装置に入力されるビット列から前記位置情報を抽出するプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019087870A JP6614735B1 (ja) | 2019-05-07 | 2019-05-07 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
EP20801810.1A EP3968524A4 (en) | 2019-05-07 | 2020-04-28 | DATA COMPRESSION AND DECOMPRESSION METHODS, DATA COMPRESSION DEVICE AND DATA DECOMPRESSION DEVICE |
US17/609,447 US11876542B2 (en) | 2019-05-07 | 2020-04-28 | Data compression and decompression methods, data compression device, and data decompression device |
CN202080033904.8A CN113796015A (zh) | 2019-05-07 | 2020-04-28 | 数据的压缩和解压缩方法、数据压缩装置、以及数据解压缩装置 |
PCT/JP2020/018146 WO2020226105A1 (ja) | 2019-05-07 | 2020-04-28 | データの圧縮及び解凍方法、データ圧縮装置、及びデータ解凍装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019087870A JP6614735B1 (ja) | 2019-05-07 | 2019-05-07 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6614735B1 true JP6614735B1 (ja) | 2019-12-04 |
JP2020184672A JP2020184672A (ja) | 2020-11-12 |
Family
ID=68763437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019087870A Active JP6614735B1 (ja) | 2019-05-07 | 2019-05-07 | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11876542B2 (ja) |
EP (1) | EP3968524A4 (ja) |
JP (1) | JP6614735B1 (ja) |
CN (1) | CN113796015A (ja) |
WO (1) | WO2020226105A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115333544B (zh) * | 2022-10-13 | 2023-01-31 | 上海登临科技有限公司 | 一种数据解压缩电路及其方法、芯片及电子设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
JP2823918B2 (ja) * | 1990-01-12 | 1998-11-11 | 富士通株式会社 | データ圧縮方式 |
US5627533A (en) * | 1994-08-05 | 1997-05-06 | Hayes Microcomputer Products, Inc. | Adjusting encoding table size and memory allocation for data compression in response to input data |
JPH0993138A (ja) * | 1995-09-27 | 1997-04-04 | Canon Inc | データ圧縮装置及びデータ復元装置 |
JP3209923B2 (ja) | 1996-06-27 | 2001-09-17 | タカノ株式会社 | 螺着部材の脱落防止構造及びそれを用いた椅子 |
US6606040B2 (en) * | 2001-02-13 | 2003-08-12 | Mosaid Technologies, Inc. | Method and apparatus for adaptive data compression |
JP4000266B2 (ja) * | 2002-03-08 | 2007-10-31 | 株式会社リコー | データ符号化装置、データ符号化方法、及びそのプログラム |
WO2008034213A1 (en) * | 2006-09-18 | 2008-03-27 | Infobright Inc. | A method and system for data compression in a relational database |
JP6168595B2 (ja) * | 2013-06-04 | 2017-07-26 | 国立大学法人 筑波大学 | データ圧縮器及びデータ解凍器 |
JP6256883B2 (ja) * | 2015-03-25 | 2018-01-10 | 国立大学法人 筑波大学 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
-
2019
- 2019-05-07 JP JP2019087870A patent/JP6614735B1/ja active Active
-
2020
- 2020-04-28 EP EP20801810.1A patent/EP3968524A4/en active Pending
- 2020-04-28 CN CN202080033904.8A patent/CN113796015A/zh active Pending
- 2020-04-28 US US17/609,447 patent/US11876542B2/en active Active
- 2020-04-28 WO PCT/JP2020/018146 patent/WO2020226105A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
US20220239316A1 (en) | 2022-07-28 |
JP2020184672A (ja) | 2020-11-12 |
EP3968524A1 (en) | 2022-03-16 |
WO2020226105A1 (ja) | 2020-11-12 |
US11876542B2 (en) | 2024-01-16 |
EP3968524A4 (en) | 2023-06-14 |
CN113796015A (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9503434B2 (en) | Single-pass data compression and encryption | |
US5229768A (en) | Adaptive data compression system | |
JP6256883B2 (ja) | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 | |
JP3900435B2 (ja) | データパケットのルーティング方法およびルーティング装置 | |
US8799239B2 (en) | Method, apparatus and computer program product for performing a query using a decision diagram | |
US20050210151A1 (en) | Data compression | |
JP4814292B2 (ja) | データ圧縮及び復元装置、並びに方法 | |
US20080033942A1 (en) | Substring search algorithm optimized for hardware acceleration | |
JP5251799B2 (ja) | データ処理装置およびデータ処理方法 | |
JP5845824B2 (ja) | 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システム、コンテンツの生成方法およびコンテンツの復号化方法 | |
US8106799B1 (en) | Data compression and decompression using parallel processing | |
JP2009065674A (ja) | データ圧縮装置および方法 | |
CN115065725B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP6614735B1 (ja) | データの圧縮及び解凍方法、データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ解凍方法、データ解凍装置、データ解凍プログラム | |
CN115051798A (zh) | 一种随机数生成方法、装置、电子设备及存储介质 | |
CN111279617A (zh) | 数据解压缩的装置与方法 | |
CN1656688B (zh) | 在压缩之前处理数字数据 | |
US9054730B2 (en) | Method and system for LZW based decompression | |
US10284226B1 (en) | Performing parallel deflate compression | |
JP4726046B2 (ja) | 文字列検索装置及びコンピュータプログラム及び文字列検索方法 | |
WO2020045238A1 (ja) | データ圧縮器、データ圧縮方法、データ圧縮プログラム、データ解凍器、データ解凍方法、データ解凍プログラムおよびデータ圧縮解凍システム | |
US11967975B1 (en) | Method and apparatus for recursive data compression using seed bits | |
TWI819516B (zh) | 基於消息驗證的金鑰擴展的處理方法與電路 | |
CN114091117A (zh) | 数据存储方法、服务器、介质及装置 | |
JP3143030B2 (ja) | データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190620 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20190620 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20190710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190730 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190930 |
|
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: 20191015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191101 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6614735 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |