JP2019047450A - Compression processing device, decompression processing device, compression processing program, and decompression processing program - Google Patents

Compression processing device, decompression processing device, compression processing program, and decompression processing program Download PDF

Info

Publication number
JP2019047450A
JP2019047450A JP2017171728A JP2017171728A JP2019047450A JP 2019047450 A JP2019047450 A JP 2019047450A JP 2017171728 A JP2017171728 A JP 2017171728A JP 2017171728 A JP2017171728 A JP 2017171728A JP 2019047450 A JP2019047450 A JP 2019047450A
Authority
JP
Japan
Prior art keywords
compression
code
value
unit data
decompression
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
JP2017171728A
Other languages
Japanese (ja)
Other versions
JP6833643B2 (en
Inventor
隆 岩野
Takashi Iwano
隆 岩野
聡 渋谷
Satoshi Shibuya
聡 渋谷
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.)
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan Corp
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 Toshiba Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2017171728A priority Critical patent/JP6833643B2/en
Publication of JP2019047450A publication Critical patent/JP2019047450A/en
Application granted granted Critical
Publication of JP6833643B2 publication Critical patent/JP6833643B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

To provide a compression processing device capable of increasing the processing speed without requiring any calculation such as narrowing down the lower and upper limits while repartitioning the lower and upper segment.SOLUTION: The compression processing device comprises: compression processing means 110 configured to calculate an upper limit value and a lower limit value of a compression value for each unit data of decompression code by using a formula for tracing the deformation Bernoulli map and to repeat a calculation for obtaining the range of the compression value; and compression code generation means 120 configured to generate a compression code from the range of the compression value which is finally obtained by the compression processing means 110.SELECTED DRAWING: Figure 1

Description

この発明は、様々なデータを圧縮しまた伸長して元のデータに戻す場合に好適な、1次元写像による可逆の圧縮・伸長を行う圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラムに関するものである。   The present invention relates to a compression processing device, a decompression processing device, a compression processing program, and a decompression processing, which perform lossless compression / decompression by one-dimensional mapping, which is suitable for compressing and decompressing various data and restoring it to the original data. The program is for

従来技術の可逆圧縮を行う代表的アルゴリズムとして、ハフマン符号、Lempel-Ziv圧縮、算術符号が知られている。この中で繰り返しのパターンが多い(出現確率の偏りが大きい)データに圧縮率が最も大きいとされるものが算術符号である。   Huffman code, Lempel-Ziv compression, and arithmetic code are known as typical algorithms for performing lossless compression according to the prior art. Among them, it is the arithmetic code that is the data with the largest compression ratio among the data with many repetitive patterns (large deviation of the appearance probability).

算術符号では演算精度を保証するアルゴリズムとしてJONES符号やレンジコーダが知られている。このアルゴリズムによれば、圧縮と伸長処理の計算過程においてデータの頻度を元に区間を再分割しながら下限と上限の2つの区間を絞り込む計算を繰り返す必要があった。算術符号では、伸長処理の演算については、圧縮過程と同じ処理となる。即ち、下限と上限を再分割しながら、区間を絞り込んでいく計算を必要とする。このため、その分の演算コストがかかるという問題があった。   For arithmetic codes, JONES codes and range coders are known as algorithms for guaranteeing the operation accuracy. According to this algorithm, in the calculation process of compression and decompression processing, it is necessary to repeat the calculation to narrow down the two sections of the lower limit and the upper limit while dividing the section based on the data frequency. In arithmetic code, the operation of the decompression process is the same process as the compression process. That is, it is necessary to carry out calculations to narrow the section while dividing the lower limit and the upper limit. For this reason, there is a problem that the calculation cost for that amount is required.

また、従来の圧縮アルゴリズムはデータパターンの頻度が等しく、パターン化が難しい(良質な乱数、または圧縮済みである情報エントロピーが大きい)データに関しては、それ以上圧縮が難しくなるため、圧縮を行っても辞書領域(オーバーヘッド)分データが大きくなるといった問題がある。   Also, with conventional compression algorithms, data with the same frequency of data patterns, which is difficult to pattern (high quality random numbers or compressed information entropy is large), is more difficult to compress, so even if compression is performed There is a problem that data is increased by the dictionary area (overhead).

特許文献1には、算術デコーダでは、復号オペレーションを開始する際に、デコーダがビットのグループを先読みするので、不一致又は非対称性が生じ得るとことが記載されている。上記の非対称性を補償するため、従来の一解決策では、エンコーダにおいて符号化データに余分なビットを追加しているものがあり、別の解決策では、追加の符号化ビットを発生させず、デコーダにおいて、符号化データのビットストリームを先読みした後、後戻りさせていることが紹介されている。   Patent Document 1 states that in the arithmetic decoder, when the decoding operation is started, a mismatch or asymmetry may occur because the decoder prefetches a group of bits. In order to compensate for the above asymmetry, one conventional solution adds an extra bit to the encoded data in the encoder, and another solution does not generate an additional encoded bit. In the decoder, it is introduced that the bit stream of encoded data is prefetched and then backtracked.

上記特許文献1では、上記の解決策は、両者ともに、効率が悪いものとして、符号化アルゴリズム及び復号アルゴリズムの複雑さを低減し、符号化、送信、及び復号を行うデータを減らし、更に、記憶の必要性を緩和するために、より効率の良い解決策が要望されているため、これに応えるものとしている。   In the above-mentioned patent document 1, the above solutions both reduce the complexity of the encoding algorithm and the decoding algorithm, reduce the data to be encoded, transmitted and decoded, and further store them as inefficient. In order to alleviate the need for a more efficient solution is being sought and will be addressed.

特許文献1のデータ符号化方法は、イベントシーケンスにおける複数のイベントを符号化して、符号化データを生成するステップと、当該符号化データを用いてビットストリームを生成するとともに、当該符号化データの後のビットストリームにゼロ以上のスタフィングビットを追加することを含むステップとを備えるものである。ここに、ゼロ以上のスタフィングビットは、符号化されたイベントの量と、符号化されているブロックの数と、ビットストリームにおけるビットの数との間の関係を実質的に維持するように機能するものとしている。   The data encoding method of Patent Document 1 includes the steps of encoding a plurality of events in an event sequence to generate encoded data, generating a bit stream using the encoded data, and generating a bit stream after the encoded data. Including adding zero or more stuffing bits to the bitstream of. Here, zero or more stuffing bits function to substantially maintain the relationship between the amount of encoded events, the number of blocks being encoded, and the number of bits in the bitstream It is supposed to be.

また、特許文献1の算術デコーダは、イベントシーケンスのイベントに対してコンテクスト識別子を生成するシーケンサと、LPSの値及びLPSの確率推定値を決定する確率推定器と、LPSのレンジに値を割り当てるレンジレジスタを含む復号エンジンとを備えている。コンテクスト識別子がインデックスに等しくない場合に、当該値は、LPSの確率推定値と、レンジレジスタに記憶された値と、LPSのレンジへのコンテクスト識別子とに基づき、また、コンテクスト識別子がインデックスに等しい場合に、当該値は、レンジレジスタに記憶された値に基づかないものである。復号エンジンは、更に、LPSのレンジの値及び情報シーケンスからのビットに基づいて2進イベントの値を決定するように動作する。   Also, the arithmetic decoder of Patent Document 1 includes a sequencer that generates a context identifier for an event of an event sequence, a probability estimator that determines a value of LPS and a probability estimate of LPS, and a range of allocating a value to a range of LPS. And a decoding engine including a register. If the context identifier is not equal to the index, then the value is based on the probability estimate of the LPS, the value stored in the range register, and the context identifier to the range of the LPS, and if the context identifier is equal to the index The value is not based on the value stored in the range register. The decoding engine is further operative to determine the value of the binary event based on the value of the range of LPS and the bits from the information sequence.

特開2012-75150号公報JP 2012-75150 A

上記の特許文献1の発明は、その0066欄に記載の通り、エンコーダ400は、算術符号化のオペレーションを実行するものである。従って、算術符号化のアルゴリズムからの抜け出しは不十分と言わざるを得ないものであった。   In the invention of Patent Document 1 described above, as described in the column 0066, the encoder 400 executes an operation of arithmetic coding. Therefore, we had to say that we left the algorithm of arithmetic coding insufficiently.

本発明は上記のようなデータの圧縮処理、伸長処理の分野における現状に鑑みなされたもので、その目的は、圧縮処理では変形ベルヌーイ写像を逆に演算する式を用いることによって、算術符号のように圧縮演算の過程において下限と上限の区間を再分割しながら下限と上限の区間を絞り込むといった演算を必要としない圧縮処理装置及び圧縮処理用プログラムを提供することである。   The present invention has been made in view of the current situation in the field of data compression processing and decompression processing as described above, and its purpose is to use arithmetic expressions such as arithmetic codes by using a modified Bernoulli map in reverse operation in compression processing. It is an object of the present invention to provide a compression processing device and a program for compression processing which do not require operations such as narrowing down the lower limit and upper limit sections while redividing the lower limit and upper limit sections in the process of compression calculation.

また、伸長処理では、変形ベルヌーイ写像を一方向的に反復演算することにより、算術符号の圧縮過程と同じ処理のような、下限と上限を再分割しながら区間を絞り込んでゆく計算を必要とせず、これによって高速に伸長することができる伸長処理装置及び伸長処理用プログラムを提供することである。   Further, in the expansion processing, it is not necessary to perform calculation to narrow the section while re-dividing the lower limit and the upper limit, such as the same processing as the compression process of the arithmetic code, by iteratively operating the modified Bernoulli map in one direction. Accordingly, it is an object of the present invention to provide a decompression processing device and a program for decompression processing that can be decompressed at high speed.

更に、これまでは高い圧縮効果が得られなかった情報エントロピーが高いデータについても、フラクタルな特性を持つ一次元写像である変形ベルヌーイ写像を採用することにより効果的な圧縮が可能となり、高い圧縮率を得ることができる圧縮処理装置及び圧縮処理用プログラムを提供することである。   Furthermore, even for data with high information entropy where high compression effects have not been obtained up to now, effective compression becomes possible by adopting a modified Bernoulli map, which is a one-dimensional map with fractal characteristics, and a high compression ratio. It is to provide a compression processing device and a program for compression processing that can obtain

本発明に係る圧縮処理装置は、変形ベルヌーイ写像を遡る式を用いて、伸長コードの1単位データ毎に圧縮値の上限値と下限値とを算出し前記圧縮値の範囲を得る演算を反復して行う圧縮処理手段と、前記圧縮処理手段により最終的に求められた圧縮値の範囲から圧縮コードを生成する圧縮コード生成手段とを具備することを特徴とする。   The compression processing apparatus according to the present invention repeats the calculation of calculating the upper limit value and the lower limit value of the compression value for each unit data of the decompression code using an expression for tracing back the modified Bernoulli map, and obtaining the range of the compression value. And compression code generation means for generating a compression code from the range of compression values finally obtained by the compression processing means.

本発明に係る圧縮処理装置では、圧縮処理手段は、伸長コードの最後尾の1単位データから最前の1単位データへ向かって1単位データ毎に圧縮値の範囲を得る演算を行うことを特徴とする。   In the compression processing apparatus according to the present invention, the compression processing means performs an operation for obtaining the range of the compression value for each unit data from the last 1 unit data of the decompression code to the last 1 unit data. Do.

本発明に係る圧縮処理装置では、圧縮処理手段は、上限値を求める演算と下限値を求める演算を、別個に行うことを特徴とする。   In the compression processing device according to the present invention, the compression processing means is characterized in that the calculation for obtaining the upper limit value and the calculation for obtaining the lower limit value are separately performed.

本発明に係る圧縮処理装置では、圧縮コード生成手段は、最終的に求められた圧縮値の範囲において最も少ないビット列で表すことが可能な2進数の小数を圧縮コードとすることを特徴とする。   In the compression processing apparatus according to the present invention, the compression code generation means is characterized in that a binary decimal fraction that can be represented by the smallest bit string in the range of compression values finally obtained is used as the compression code.

本発明に係る圧縮処理装置では、変形ベルヌーイ写像を遡る式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする。   In the compression processing apparatus according to the present invention, the expression for tracing back the modified Bernoulli mapping is characterized by being divided corresponding to the type of one unit data constituting the decompression code.

本発明に係る圧縮処理装置では、圧縮コード生成手段は、上限値と下限値との差分値と、上限値または下限値のみを求め、上限値のみを求めた場合には最終的に求めた上限値から上記差分値を引いて最終的な下限値を求め、下限値のみを求めた場合には最終的に求めた下限値に上記差分値を加えて最終的な上限値を求めることを特徴とする。   In the compression processing apparatus according to the present invention, the compression code generation unit obtains only the difference between the upper limit and the lower limit and only the upper limit or the lower limit, and finally obtains only the upper limit. The above difference value is subtracted from the value to obtain the final lower limit, and when only the lower limit is obtained, the final difference is added to the finally obtained lower limit to obtain the final upper limit. Do.

本発明に係る圧縮処理装置では、演算を整数演算化して行い、変形ベルヌーイ写像の式の係数を、伸長コードを構成する1単位データの数(M)倍することを特徴とする。   The compression processing device according to the present invention is characterized in that the operation is performed by integer arithmetic and the coefficient of the modified Bernoulli mapping is multiplied by the number (M) of one unit data constituting the decompression code.

本発明に係る圧縮処理装置では、変形ベルヌーイ写像を遡る式の係数を、約分することを特徴とする。   The compression processing apparatus according to the present invention is characterized in that the coefficients of the equation that trace back the modified Bernoulli map are reduced.

本発明に係る圧縮処理装置では、圧縮コード生成手段により生成された圧縮コードの伸長コードに対する圧縮率を求める圧縮率算出手段と、前記圧縮率算出手段により算出された圧縮率が所定値よりも大きい場合に、変形ベルヌーイ写像を遡る式の係数を変更して圧縮コードを求める処理を行うことを特徴とする。   In the compression processing apparatus according to the present invention, the compression ratio calculation unit for obtaining the compression ratio for the decompression code of the compression code generated by the compression code generation unit, and the compression ratio calculated by the compression ratio calculation unit is larger than a predetermined value. In this case, it is characterized in that processing is performed to obtain a compression code by changing the coefficients of an equation that goes back to the modified Bernoulli map.

本発明に係る圧縮処理装置では、二分探索法により新たな係数を求めて係数を変更し、圧縮コードを求める処理を行うことを特徴とする。   The compression processing apparatus according to the present invention is characterized in that a new coefficient is obtained by binary search, the coefficient is changed, and a compression code is obtained.

本発明に係る圧縮処理装置では、伸長コードを構成する1単位データの数が2の倍数となり、且つ変形ベルヌーイ写像を遡る式の係数を、約分可能となるように、伸長コードに所定の1単位データをパディングし、圧縮コードを求める処理を行うことを特徴とする。   In the compression processing apparatus according to the present invention, the number of one unit data constituting the decompression code is a multiple of 2, and the predetermined one is added to the decompression code so that the coefficients of the equation which trace back the modified Bernoulli map can be reduced. It is characterized in that the unit data is padded to perform processing for obtaining a compressed code.

本発明に係る伸長処理装置は、圧縮コードに対し変形ベルヌーイ写像の式を用いた演算を施して、伸長コードの1単位データに対応する値を得る計算である1単位データ取得計算及び、この得られた値を前記変形ベルヌーイ写像の式を用いた演算に用いて次の1単位データを得る1単位データ取得計算を、所定回となるまで繰り返す反復計算を行う伸長処理手段と、前記伸長処理手段の1単位データ取得計算毎に得られる値を、前記変形ベルヌーイ写像の式の係数に基づき伸長コードの1単位データに変換する伸長コード生成手段とを具備することを特徴とする。   The decompression processing device according to the present invention performs one unit data acquisition calculation, which is a calculation to obtain a value corresponding to one unit data of the decompression code by performing an operation using a modified Bernoulli mapping equation to the compression code. And an expansion processing means for repeatedly performing one unit data acquisition calculation for obtaining the next one unit data by using the calculated value for the calculation using the modified Bernoulli mapping equation until a predetermined number of times is obtained; And a decompression code generation unit configured to convert a value obtained for each calculation of acquisition of one unit data into one unit data of the expansion code based on the coefficient of the equation of the modified Bernoulli map.

本発明に係る伸長処理装置では、変形ベルヌーイ写像の式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする。   In the decompression processing apparatus according to the present invention, the modified Bernoulli mapping equation is characterized by being divided according to the type of one unit data constituting the decompression code.

本発明に係る伸長処理装置では、演算を整数演算化して行い、変形ベルヌーイ写像の式の係数を、伸長コードを構成する1単位データの数(M)倍することを特徴とする。   The decompression processing device according to the present invention is characterized in that the operation is performed by integer arithmetic and the coefficient of the modified Bernoulli mapping is multiplied by the number (M) of one unit data constituting the decompression code.

本発明に係る圧縮処理用プログラムは、コンピュータを、変形ベルヌーイ写像を遡る式を用いて、伸長コードの1単位データ毎に圧縮値の上限値と下限値とを算出し前記圧縮値の範囲を得る演算を反復して行う圧縮処理手段、前記圧縮処理手段により最終的に求められた圧縮値の範囲から圧縮コードを生成する圧縮コード生成手段として機能させることを特徴とする。   The compression processing program according to the present invention obtains the range of the compression value by calculating the upper limit value and the lower limit value of the compression value for each unit data of the decompression code using a computer using an expression for tracing back the modified Bernoulli map It is characterized in that it functions as compression processing means for repeatedly performing operations and compressed code generation means for generating a compressed code from the range of compression values finally obtained by the compression processing means.

本発明に係る圧縮処理用プログラムでは、コンピュータを更に、伸長コードの最後尾の1単位データから最前の1単位データへ向かって1単位データ毎に圧縮値の範囲を得る演算を行う圧縮処理手段として機能させることを特徴とする。   In the compression processing program according to the present invention, the computer is further provided as compression processing means for performing an operation to obtain a range of compression values for each unit data from the last 1 unit data of the decompression code to the last 1 unit data. It is characterized by having it function.

本発明に係る圧縮処理用プログラムでは、コンピュータを更に、上限値を求める演算と下限値を求める演算を、別個に行う圧縮処理手段として機能させることを特徴とする。   The compression processing program according to the present invention is characterized in that the computer is further caused to function as compression processing means for separately performing an operation for obtaining an upper limit value and an operation for obtaining a lower limit value.

本発明に係る圧縮処理用プログラムでは、コンピュータを更に、最終的に求められた圧縮値の範囲において最も少ないビット列で表すことが可能な2進数の小数を圧縮コードとする圧縮コード生成手段として機能させることを特徴とする。   In the program for compression processing according to the present invention, the computer is further caused to function as compression code generation means that uses as a compression code a binary decimal that can be represented by the smallest bit string in the finally obtained compression value range. It is characterized by

本発明に係る圧縮処理用プログラムでは、変形ベルヌーイ写像を遡る式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする。   In the compression processing program according to the present invention, the expression for tracing back the modified Bernoulli mapping is characterized by being divided corresponding to the type of one unit data constituting the decompression code.

本発明に係る圧縮処理用プログラムでは、コンピュータを更に、上限値と下限値との差分値と、上限値または下限値のみを求め、上限値のみを求めた場合には最終的に求めた上限値から上記差分値を引いて最終的な下限値を求め、下限値のみを求めた場合には最終的に求めた下限値に上記差分値を加えて最終的な上限値を求める圧縮コード生成手段として機能させることを特徴とする。   In the compression processing program according to the present invention, the computer further determines only the difference between the upper limit value and the lower limit value, and only the upper limit value or the lower limit value, and finally determines only the upper limit value. The above difference value is subtracted from to calculate the final lower limit value, and when only the lower limit value is obtained, this difference value is added to the finally obtained lower limit value to obtain the final upper limit value. It is characterized by having it function.

本発明に係る圧縮処理用プログラムでは、演算を整数演算化して行い、変形ベルヌーイ写像の式の係数を、伸長コードを構成する1単位データの数(M)倍することを特徴とする。   The compression processing program according to the present invention is characterized in that the operation is performed by integer arithmetic and the coefficient of the modified Bernoulli mapping is multiplied by the number (M) of one unit data constituting the decompression code.

本発明に係る圧縮処理用プログラムでは、変形ベルヌーイ写像を遡る式の係数を、約分することを特徴とする。   The program for compression processing according to the present invention is characterized in that the coefficients of the equation that trace back the modified Bernoulli map are reduced.

本発明に係る圧縮処理用プログラムでは、コンピュータを更に、圧縮コード生成手段により生成された圧縮コードの伸長コードに対する圧縮率を求める圧縮率算出手段として機能させ、前記圧縮率算出手段により算出された圧縮率が所定値よりも大きい場合に、変形ベルヌーイ写像を遡る式の係数を変更して圧縮コードを求める処理を行うことを特徴とする。   In the compression processing program according to the present invention, the computer further functions as compression ratio calculation means for calculating a compression ratio for the decompression code of the compression code generated by the compression code generation means, and the compression calculated by the compression ratio calculation means When the rate is larger than a predetermined value, the coefficient of the equation that traces back the modified Bernoulli map is changed to obtain the compression code.

本発明に係る圧縮処理用プログラムでは、二分探索法により新たな係数を求めて係数を変更し、圧縮コードを求める処理を行うことを特徴とする。   The compression processing program according to the present invention is characterized in that a new coefficient is obtained by binary search, the coefficient is changed, and a compression code is obtained.

本発明に係る圧縮処理用プログラムでは、伸長コードを構成する1単位データの数が2の倍数となり、且つ変形ベルヌーイ写像を遡る式の係数を、約分可能となるように、伸長コードに所定の1単位データをパディングし、圧縮コードを求める処理を行うことを特徴とする。   In the program for compression processing according to the present invention, the number of one unit data constituting the decompression code is a multiple of 2, and the coefficient of the equation going back to the modified Bernoulli map can be reduced to a predetermined code. It is characterized in that one unit data is padded to perform processing for obtaining a compressed code.

本発明に係る伸長処理用プログラムは、コンピュータを、圧縮コードに対し変形ベルヌーイ写像の式を用いた演算を施して、伸長コードの1単位データに対応する値を得る計算である1単位データ取得計算及び、この得られた値を前記変形ベルヌーイ写像の式を用いた演算に用いて次の1単位データを得る1単位データ取得計算を、所定回となるまで繰り返す反復計算を行う伸長処理手段、前記伸長処理手段の1単位データ取得計算毎に得られる値を、前記変形ベルヌーイ写像の式の係数に基づき伸長コードの1単位データに変換する伸長コード生成手段として機能させることを特徴とする。   A program for decompression processing according to the present invention is a computation for obtaining 1 unit data, which is a computation for obtaining a value corresponding to 1 unit data of a decompression code by performing a computation using a modified Bernoulli mapping equation on a compression code And expansion processing means for performing one-unit-data acquisition calculation for obtaining the next one-unit data using the obtained value for calculation using the equation of the modified Bernoulli mapping, repeating calculation until it reaches a predetermined number of times, It is characterized in that it functions as expansion code generation means for converting a value obtained for each calculation of 1 unit data acquisition of the expansion processing means into 1 unit data of expansion code based on the coefficients of the equation of the modified Bernoulli map.

本発明に係る伸長処理用プログラムでは、変形ベルヌーイ写像の式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする。   In the decompression processing program according to the present invention, the modified Bernoulli mapping equation is characterized by being divided according to the type of one unit data constituting the decompression code.

本発明に係る伸長処理用プログラムでは、演算を整数演算化して行い、変形ベルヌーイ写像の式の係数を、伸長コードを構成する1単位データの数(M)倍することを特徴とする。   The program for expansion processing according to the present invention is characterized in that the operation is performed by integer arithmetic and the coefficient of the modified Bernoulli mapping is multiplied by the number (M) of one unit data constituting the expansion code.

本発明によれば、圧縮処理においては、変形ベルヌーイ写像を逆に演算する式を用いるので、算術符号のように圧縮演算の過程において下限と上限の区間を再分割しながら下限と上限の区間を絞り込むといった演算を必要としないという効果を奏する。   According to the present invention, in the compression processing, since an expression for reversely operating the modified Bernoulli map is used, the lower limit and the upper limit are divided while the lower limit and the upper limit are subdivided in the process of the compression operation like arithmetic code. The effect of not requiring calculation such as narrowing down is achieved.

本発明によれば、伸長処理では、変形ベルヌーイ写像を一方向的に反復演算することになるので、算術符号の圧縮過程と同じ処理のような、下限と上限を再分割しながら区間を絞り込んでゆく計算を必要とせず、これによって高速に伸長することができるという効果を奏する。   According to the present invention, in the expansion processing, since the modified Bernoulli map is iteratively operated in one direction, the section is narrowed while re-dividing the lower limit and the upper limit as in the same processing as the compression process of the arithmetic code. This has the effect that it can be expanded at high speed without requiring any calculation.

本発明によれば、これまでは高い圧縮効果が得られなかった情報エントロピーが高いデータについても、フラクタルな特性を持つ一次元写像である変形ベルヌーイ写像を採用することにより効果的な圧縮が可能となり、高い圧縮率を得ることができるという効果を奏する。   According to the present invention, even for data with high information entropy, for which a high compression effect has not been obtained up to now, effective compression becomes possible by adopting a modified Bernoulli map, which is a one-dimensional map with fractal characteristics. The effect is obtained that a high compression rate can be obtained.

本発明に係る圧縮処理装置と伸長処理装置の第1の実施形態の構成を示すブロック図。FIG. 1 is a block diagram showing the configuration of a first embodiment of a compression processing device and a decompression processing device according to the present invention. 本発明に係る実施形態において用いた、データパターンが2種のときにおける、変形ベルヌーイ写像の一例のマップを示す図。The figure which shows the map of an example of a deformation | transformation Bernoulli map in, when two data patterns were used in embodiment which concerns on this invention. 本発明に係る実施形態において用いた変形ベルヌーイ写像の一例における時系列の値変化を示す図。The figure which shows the value change of the time series in an example of the deformation | transformation Bernoulli mapping used in embodiment which concerns on this invention. 本発明に係る実施形態において採用された変形ベルヌーイ写像の一例を用いた伸長処理により得られた伸長コードと、その際に用いた式との対応関係を示す図。The figure which shows the correspondence of the expansion | extension code | cord | chord obtained by the expansion | extension process which used an example of the deformation | transformation Bernoulli map employ | adopted in embodiment which concerns on this invention, and the formula used at that time. 本発明に係る実施形態において採用された変形ベルヌーイ写像の一例を用いた伸長処理により得られる4ビットの伸長コードと、各4ビットの伸長コードに対応する初期値の座標を変形ベルヌーイ写像の線分と共に示した図。A 4-bit extension code obtained by extension processing using an example of the modified Bernoulli map adopted in the embodiment according to the present invention, and a coordinate of an initial value corresponding to each 4-bit extension code, a line segment of the modified Bernoulli map Figure shown together. 図5の4ビットの伸長コードと、各4ビットの伸長コードに対応する初期値の上限値と下限値とを対応付けて示した図。FIG. 6 is a diagram showing the 4-bit decompression code of FIG. 5 and upper and lower limit values of initial values corresponding to each 4-bit decompression code in association with each other. 図5の例において、傾きp を変動させた場合の対応する初期値の変化を示す図。The figure which shows the change of the corresponding initial value at the time of changing inclination p in the example of FIG. 6ビットの伸長コードを生成した場合において、傾きp を変動させた場合の対応する初期値の変化を示す図。The figure which shows the change of the corresponding initial value at the time of changing inclination p in the case where the expansion code of 6 bits is produced | generated. 4ビットの伸長コードを生成した場合において、傾きp に対して採り得る初期値の区間を、変形ベルヌーイ写像の場合と算術符号の場合とで比較して示した図。The figure which compared and showed the area of the initial value which can be taken with respect to inclination p in the case of deformation | transformation Bernoulli mapping, and the case of an arithmetic code, when the expansion code of 4 bits is produced | generated. データパターンが2種のときにおいて、所定伸長コードが与えられた場合に圧縮コードを得るまでの工程を示した図であり、(a)は算術符号の場合を示す図、(b)は変形ベルヌーイ写像の場合を示す図。FIG. 8 is a diagram showing a process for obtaining a compression code when a predetermined decompression code is given when two types of data patterns are provided, (a) shows a case of arithmetic code, (b) shows a modified Bernoulli The figure which shows the case of mapping. データパターンが3種のときにおいて、所定伸長コードが与えられた場合に圧縮コードを得るまでの工程を示した図であり、(a)は算術符号の場合を示す図、(b)は変形ベルヌーイ写像の場合を示す図。FIG. 8 is a diagram showing a process until obtaining a compression code when a predetermined decompression code is given when the number of data patterns is three, (a) shows a case of arithmetic code, (b) shows a modified Bernoulli The figure which shows the case of mapping. 本発明に係る実施形態において用いた、データパターンが3種のときにおける、変形ベルヌーイ写像の一例のマップを示す図。The figure which shows the map of an example of a deformation | transformation Bernoulli map in case three types of data patterns were used in embodiment which concerns on this invention. 本発明に係る実施形態において、データパターンが3種のときにおける、伸長コード生成過程における演算の結果の値xiと、生成される1単位の伸長コードの対応を示す図。FIG. 7 is a diagram showing correspondence between a value x i of a result of an operation in an expansion code generation process and one unit of expansion code generated when the number of data patterns is three in the embodiment according to the present invention. 本発明に係る実施形態において、データパターンが3種のときに、傾きpaと傾きpb を変動させた場合の対応する初期値の変化を示す図であり、(a)はデータ列"abaacb"の場合の図、(b)はデータ列"caabac"の場合の図。FIG. 7 is a diagram showing changes in the corresponding initial values when the inclination pa and the inclination pb are changed when the data pattern is three types in the embodiment according to the present invention, and (a) shows the data string “abaacb” Figure of the case, (b) is the case of the data string "caabac". 本発明に係る実施形態の、圧縮処理の動作を示すフローチャート。The flowchart which shows operation of compression processing of the embodiment concerning the present invention. 本発明に係る実施形態の、データパターンが3種のときにおける圧縮処理の過程において、下限Xiと上限Xi、PA ,PB ,MXの値の変化を示す図。Embodiments of the present invention, shows in the course of the compression process in the case data pattern of three, a lower limit X i and upper X i, PA, PB, a change in the MX value. データパターンが3種のときにおけるバイナリで圧縮コードを求めるために、下限X0と上限X0をMXで割る割算をビット値同士で行う演算手法を示す図。For data patterns determine the compression code in binary in the case of three, it shows a calculation method for performing a division of dividing the lower limit X 0 and upper X 0 in MX a bit value to each other. 本発明に係る実施形態において、データパターンが3種のときに、得られる圧縮コードのファイル内容の一例を示す図。The figure which shows an example of the file content of the compression code obtained when there are three data patterns in embodiment which concerns on this invention. 本発明に係る実施形態の伸長処理の動作を示すフローチャート。The flowchart which shows the operation of decompression processing of the execution form which relates to this invention. 本発明に係る実施形態の、データパターンが3種のときにおける初期パラメータの演算精度幅を拡大する処理を示す図。FIG. 7 is a diagram showing processing of expanding the operation accuracy width of initial parameters when there are three types of data patterns according to the embodiment of the present invention. 本発明に係る実施形態の、データパターンが3種のときにおける伸長処理の過程において、演算値Xi、PA ,PB ,演算幅倍率の値の変化を示す図。Embodiments of the present invention, shows in the course of the decompression process in time data pattern of three, arithmetic value X i, PA, PB, a change in the value of the operation width ratio. 本発明に係る実施形態4において用いる5種のデータパターンの文字列を示す図。The figure which shows the character string of five types of data patterns used in Embodiment 4 which concerns on this invention. 本発明に係る実施形態4において用いる5種のデータパターンの文字列を合計128個用いて第1のランダムに並べ変えた第1のファイルαの先頭10行を示す図。FIG. 18 is a diagram showing the first 10 lines of the first file α randomly rearranged using a total of 128 character strings of five types of data patterns used in the fourth embodiment of the present invention. 本発明に係る実施形態4において、図23の第1のファイルαと、これと同様にして別のランダムな並べ方で生成した第2のファイルβ、γを含めた3種のファイルα、β、γの圧縮結果を示す図。In the fourth embodiment according to the present invention, three types of files α, β, and 3 including the first file α of FIG. 23 and the second files β and γ generated by another random arrangement in the same manner as this. The figure which shows the compression result of (gamma). 本発明に係る実施形態4において、第1のファイルαを圧縮した工程における各パラメータ等の変遷を示す図。FIG. 18 is a view showing transition of each parameter and the like in the process of compressing the first file α in the fourth embodiment according to the present invention. 本発明に係る実施形態4において、第1のファイルαを圧縮した結果、得られた圧縮コードのファイル内容の一例を示す図。The figure which shows an example of the file content of the compression code | cord obtained as a result of compressing 1st file (alpha) in Embodiment 4 which concerns on this invention. 本発明に係る実施形態4において、伸長処理における拡大処理によって生成される各種のパラメータを示す図。In Embodiment 4 which concerns on this invention, the figure which shows the various parameters produced | generated by the expansion process in an expansion process. 本発明に係る実施形態4において、第1のファイルαを伸長した工程における演算値と伸長コードの変遷を示す図。The figure which shows the transition of the operation value in the process which expand | extended the 1st file (alpha) in Embodiment 4 which concerns on this invention, and an expansion code. 本発明に係る実施形態5において、2値の所定データの圧縮処理を行った場合の演算値XiとPAの値の遷移を示す図。In the fifth embodiment of the present invention, it shows a transition of a value of the operation value X i and PA in the case of performing a compression process of a predetermined binary data. 本発明に係る実施形態5において、2値の所定データの圧縮処理を行った場合に得られた圧縮コードのファイル内容の一例を示す図であり、図30(a)は10進数による表記の図であり、図30(b)は2進数による表記の図。FIG. 30 is a diagram showing an example of the file contents of a compressed code obtained when compression processing of binary predetermined data is performed in Embodiment 5 according to the present invention, and FIG. 30 (a) is a diagram in decimal notation. FIG. 30 (b) is a diagram of binary notation. 本発明に係る実施形態5において、図29の場合に用いた傾きpと異なる値の傾きを用いて、2値の所定データの圧縮処理を行った場合の演算値XiとPAの値の遷移を示す図。In the fifth embodiment of the present invention, by using the inclinations of p different values used in the case of FIG. 29, the transition of the value of the calculated value X i and PA in the case of performing compression processing of a given binary data Figure showing. 本発明に係る実施形態5において、2値の所定データの圧縮処理を行った場合に得られた圧縮コードのファイル内容の一例を示す図であり、図32(a)は10進数による表記の図であり、図32(b)は2進数による表記の図。FIG. 32 is a diagram showing an example of the file contents of the compression code obtained when the binary predetermined data is compressed in the fifth embodiment according to the present invention, and FIG. 32 (a) is a diagram in decimal notation FIG. 32 (b) is a diagram of binary notation. 本発明に係る実施形態5において、図31の場合に用いた傾きpを用いて、2値の所定データの圧縮処理結果を伸長する処理を行った場合の演算値XiとPAの値の遷移を示す図。In the fifth embodiment of the present invention, by using the slope p used in the case of FIG. 31, the transition of the value of the calculated value X i and PA in the case of performing processing for decompressing the compressed processing result of the predetermined binary data Figure showing. 本発明に係る実施形態6によって、所与のデータ列を圧縮処理した工程における各パラメータ等の変遷を示す図。FIG. 16 is a diagram showing transitions of parameters and the like in the process of compressing a given data sequence according to the sixth embodiment of the present invention. 本発明に係る実施形態6によって、所与のデータ列を圧縮処理した結果に得られる圧縮データファイルに含まれるデータ内容を示す図。FIG. 14 is a view showing data contents included in a compressed data file obtained as a result of compression processing of a given data string according to a sixth embodiment of the present invention. 本発明に係る実施形態6によって、所与のデータ列を圧縮処理した結果に対する伸長処理の過程において、変遷する演算値Xi値を示す図。FIG. 14 is a diagram showing calculated value X i values which change in the process of expansion processing for the result of compression processing of a given data string according to the sixth embodiment of the present invention.

以下、添付図面を参照して本発明に係る圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラムの実施形態を説明する。各図において同一の構成要素には同一の符号を付して重複する説明を省略する。図1に、本発明に係る圧縮処理装置100と伸長処理装置200と実施形態の構成図を示す。圧縮処理装置100には、圧縮処理手段110と圧縮コード生成手段120が備えられている。伸長処理装置200には、伸長処理手段210と伸長コード生成手段220が備えられている。   Hereinafter, embodiments of a compression processing device, a decompression processing device, a compression processing program, and a decompression processing program according to the present invention will be described with reference to the attached drawings. In the drawings, the same components are denoted by the same reference numerals and redundant description will be omitted. FIG. 1 shows a configuration diagram of an embodiment of the compression processing apparatus 100 and the decompression processing apparatus 200 according to the present invention. The compression processing apparatus 100 includes compression processing means 110 and compression code generation means 120. The extension processing apparatus 200 is provided with extension processing means 210 and extension code generation means 220.

圧縮処理装置100と伸長処理装置200はそれぞれ別のコンピュータによって構成することができ、また、一台のコンピュータによって構成するようにしても良い。300は、伸長コードの格納部を示し、圧縮処理装置100や伸長処理装置200の内部にあっても良いし、外部の記憶装置や他のコンピュータにあっても良い。更に、400は、圧縮コードの格納部を示し、圧縮処理装置100や伸長処理装置200の内部にあっても良いし、外部の記憶装置や他のコンピュータにあっても良い。   The compression processing apparatus 100 and the decompression processing apparatus 200 can be configured by separate computers, respectively, or may be configured by a single computer. Reference numeral 300 denotes a storage unit of the decompression code, which may be in the compression processing apparatus 100 or the decompression processing apparatus 200, or in an external storage device or another computer. Furthermore, reference numeral 400 denotes a storage unit for compressed code, which may be inside the compression processing apparatus 100 or the decompression processing apparatus 200, or may be in an external storage device or another computer.

伸長コードは、圧縮処理装置100によって圧縮され得るディジタルデータであって、画像データや文字データ等のようなデータでも良く、一度圧縮されて伸長されたデータでなくとも良い。また、圧縮コードは圧縮処理装置100によって圧縮されたディジタルデータを指す。   The decompression code is digital data that can be compressed by the compression processing apparatus 100, and may be data such as image data or character data, and may not be data that has been compressed once and decompressed. Also, the compression code indicates digital data compressed by the compression processing apparatus 100.

圧縮処理手段110は、変形ベルヌーイ写像を遡る式を用いて、伸長コードの1単位データ毎に圧縮値の上限値と下限値とを算出し上記圧縮値の範囲を得る演算を反復して行うものである。ここに、圧縮値は圧縮コードに対応する初期値とこれを演算して得られるもので、以下では" Xi "として表記される値である。圧縮コード生成手段120は、上記圧縮処理手段110により最終的に求められた圧縮値の範囲から圧縮コードを生成するものである。伸長コードの1単位データとは、伸長コードが1と0の数値により構成されている場合には、この1と0を指す。また、伸長コードがabcd・・・のようにアルファベットから構成されているときには、a、b、c、d、・・・の1文字を指す。更に、後に説明するが、伸長コードが"Hello World!!\ "のような文字列(一般的には、データ列)を1つのコードとして構成されているときは、この"Hello World!!\ "のような文字列(一般的には、データ列)を指す。 The compression processing means 110 repeatedly performs an operation of calculating the upper limit value and the lower limit value of the compression value for each unit data of the decompression code using an expression which goes back to the modified Bernoulli map, and obtaining the range of the compression value. It is. Here, the compression value is an initial value corresponding to the compression code and one obtained by calculating this, and is a value represented as “X i ” below. The compression code generation unit 120 generates a compression code from the range of compression values finally obtained by the compression processing unit 110. One unit data of the decompression code refers to the 1 and 0 when the decompression code is configured by the numerical values of 1 and 0. Also, when the expansion code is composed of alphabets such as abcd..., It indicates one character of a, b, c, d,. Furthermore, as described later, when the expanded code is configured as a single code (generally, a data string) such as "Hello World !! \", this "Hello World !! \" Refers to a string such as "(generally, a data string).

伸長処理手段210は、圧縮コードに対し変形ベルヌーイ写像の式を用いた演算を施して、伸長コードの1単位データに対応する値を得る計算である1単位データ取得計算及び、この得られた値を前記変形ベルヌーイ写像の式を用いた演算に用いて次の1単位データを得る1単位データ取得計算を、所定回となるまで繰り返す反復計算を行うものである。伸長コード生成手段220は、上記伸長処理手段210の1単位データ取得計算毎に得られる値を、上記変形ベルヌーイ写像の式の係数に基づき伸長コードの1単位データに変換するものである。   The 1-unit data acquisition calculation, which is a calculation to obtain the value corresponding to 1 unit data of the decompression code, by the decompression processing means 210 performing an operation using a modified Bernoulli mapping equation to the compression code, and the obtained value Is used for the operation using the modified Bernoulli mapping equation, and one unit data acquisition calculation for obtaining the next unit data is repeated until the predetermined number of times is reached. The decompression code generation means 220 converts the value obtained for each 1-unit data acquisition calculation of the decompression processing means 210 into 1 unit data of the decompression code based on the coefficients of the modified Bernoulli mapping equation.

<変形ベルヌーイ写像について>
まず、本実施形態において用いる変形ベルヌーイ写像について説明する。
変形ベルヌーイ写像は以下の式(1)で定義される。
<On the Modified Bernoulli Map>
First, a modified Bernoulli map used in the present embodiment will be described.
The modified Bernoulli map is defined by the following equation (1).

Figure 2019047450
Figure 2019047450

上記式(1)は、p=0.5のとき、一般的に知られる一様な分布を持つベルヌーイ写像の式である。この式(1)は、データ伸長処理に用いられる。この変形ベルヌーイ写像のマップを示すと、図2のようであり、式(1)によるiを横軸に、xi+1 を縦軸とした時系列のデータ生成の例は図3に示すようになる。なお、図3の時系列のデータは"p = 0.5" とした場合の例である。 The above equation (1) is an equation of a Bernoulli map having a generally known uniform distribution when p = 0.5. This equation (1) is used for data decompression processing. The map of this modified Bernoulli map is as shown in FIG. 2, and an example of time-series data generation with the horizontal axis representing i by equation (1) and the vertical axis xi + 1 is shown in FIG. become. The time-series data in FIG. 3 is an example in the case where “p = 0.5”.

図3に示すように、xi < p のときに、ビット"0"を生成し、p ≦ xi のときに、ビット"1"を生成する規則により、連続してバイナリコードとして例えば4ビット分を取得することができる。上記ベルヌーイ写像の演算より取得されたビット列の値を基に、逆に写像を辿ることで初期値x0の区間を求めることが可能である。例として、"p = 0.5" とした場合にベルヌーイ写像から生成されたビット列を4ビット分とったものが " 0 1 1 0 "であったとする。図4の一番右の列に示すように上から順にビット値が生成され、そのときに選択されたベルヌーイ写像式を"○"で表し、選択されなかったベルヌーイ写像式を"×"で表した。即ち、"○"側の式が実行されて処理が遷移する。 As shown in FIG. 3, according to the rule that bit "0" is generated when x i <p and bit "1" is generated when p i x i , for example, 4 bits are continuously generated as a binary code. You can get a minute. It is possible to obtain an interval of the initial value x 0 by tracing the mapping in reverse based on the value of the bit string obtained by the above-mentioned Bernoulli mapping operation. As an example, when "p = 0.5", it is assumed that "0 1 1 0" is a 4-bit equivalent of a bit string generated from Bernoulli mapping. As shown in the rightmost column of FIG. 4, bit values are generated sequentially from the top, and the Bernoulli mapping equation selected at that time is represented by "o", and the Bernoulli mapping equation not selected is represented by "x" did. That is, the expression on the “○” side is executed and the processing transitions.

ベルヌーイ写像の最後の解 " x4 " から考えると、写像xiの値域は必ず" 0 ≦ x4 ≦ 1 "の区間であり、この区間のいずれかに " x4 "は含まれている。" x4 "を生成した式は、ビット値が"0"であることから、"○"側の式" x4 = 2 x3 "が実行されていることが判る。この式を用いて、" x3 "の値の範囲を計算すると、
" 0 ≦ x4 ≦ 1 " から " 0 ≦ 2 x3 ≦ 1 " → " 0 ≦ x3 ≦ 0.5 "
となり、この区間から必ず" x3 "は計算されたことが判る。
Considering the final solution "x 4 " of the Bernoulli map, the range of the map x i is always an interval of "0 x x 4 1 1", and "x 4 " is included in any of these intervals. From the fact that the expression that generated "x 4 " has the bit value "0", it can be understood that the expression "x 4 = 2 x 3 " on the "o" side is being executed. When using this formula to calculate the range of values of "x 3 ",
"0 x x 4 1 1" to "0 2 2 x 3 1 1" → "0 x x 3 0.5 0.5"
Thus, it can be understood from this interval that "x 3 " is always calculated.

次に" x3 "を考えると、次に生成されたビット値が"1"であるとの情報から、"○"側の式" x3 = 2 x2 - 1 "が選択されたことが判る。これを" 0 ≦ x3 ≦ 0.5 "に代入することにより、" 0 ≦ 2 x2 - 1 ≦ 0.5 "→ " 1 ≦ 2 x2 ≦ 1.5 "
→ " 0.5 ≦ x2 ≦ 0.75 "となり、" x2 "の区間が絞られる。
Then given the "x 3", the information to be next generated bit value is "1", "○" side formula "x 3 = 2 x 2 - 1" that has been selected I understand. By substituting this into "0 ≦ x 3 ≦ 0.5" , "0 ≦ 2 x 2 - 1 ≦ 0.5" → "1 ≦ 2 x 2 ≦ 1.5"
→ "0.5 x x 2 0.75 0.75" and the section of "x 2 " is narrowed.

同様の処理により、次に生成されたバイナリコードは、ビット値"1"のため、" x1 "の区間は、" 0.5 ≦ x2 ≦ 0.75 " → " 0.5 ≦ 2 x1 - 1 ≦ 0.75 "
→ " 1.5 ≦ 2 x1 ≦1.75 " → " 0.75 ≦ x1 ≦ 0.875 "となる。
The binary code generated next by the same process has the bit value "1", so the section "x 1 " is "0.5 x x 2 0.75 0.75 "→" 0.5 ≦ 2 x 1 - 1 ≦ 0.75 "
→ "1.5 2 2 x 1 1.7 1.75 "→" 0.75 x x 1 0.8 0.875 "

最後に、初期値" x0 "の区間について考察すると、次に生成されたバイナリコードは、祖のビット値が"0"であることにより、" 0.75 ≦ x1 ≦ 0.875 "
→ " 0.75 ≦ 2 x0 ≦ 0.875 " → " 0.375 ≦ x0 ≦ 0.4375 "となり、初期値" x0 "は0.375から0.4375の区間内のいずれかから始まっていたことが判る。この区間内に初期値" x0 "が存在したから、 p = 0.5 としてベルヌーイ写像の式(1)を実行し、上記の図3を用いて説明した「xi < p のときに、ビット"0"を生成し、p ≦ xi のときに、ビット"1"を生成する」という規則によってビット列を生成すると、必ず、" 0 1 1 0 "が出力される。
Finally, considering the interval of the initial value "x 0 ", the binary code generated next is "0.75 x x 1 0.8 0.875" because the bit value of the parent is "0".
→ "0.75 ≦ 2 x 0 ≦ 0.875" → "0.375 ≦ x 0 ≦ 0.4375" , and the initial value "x 0" It can be seen that had begun from either the interval of 0.4375 0.375. Since there is an initial value "x 0 " in this section, the Bernoulli mapping equation (1) is executed as p = 0.5, and the bit is used when "x i <p" described using FIG. 3 above. If a bit string is generated according to the rule that "0" is generated and p.ltoreq.x i , the bit "1" is generated, "0 1 1 0" is always output.

ここで、 p = 0.5 とした場合のベルヌーイ写像の初期値x0 の区間を16等分したものを図5に示す。図5に示した各初期値x0の区間内から xi < 0.5 のとき、ビット"0"を生成し、0.5 ≦ xi の時ビット"1"を生成させた場合に図6に示す16通りのビット列になり、上記ビット列" 0 1 1 0 "で示した例は図6の<7>になる。ここで、初期値x0 の区間の境界については、上限の値を含まず、図6<7>のように"0.375 ≦x0 < 0.4375 "となる。つまり、半開区間[0.375,0.4375)となる。 Here, a section obtained by equally dividing the section of the initial value x 0 of the Bernoulli map in the case of p = 0.5 is shown in FIG. When x i <0.5 from the section of each initial value x 0 shown in FIG. 5, the bit "0" is generated, and when 0.5 x x i , the bit "1" is generated 16 shown in FIG. The example shown by the above bit string "0 1 1 0" is as shown in <7> of FIG. 6. Here, the boundary of the section of the initial value x 0 does not include the value of the upper limit, and “0.375 ≦ x 0 <0.4375” as shown in FIG. 6 <7>. That is, it becomes a half open interval [0.375, 0.4375).

上記のように、1次元写像から生成されたビット情報を遡り、初期値x0の区間を求める方法については、特願2016−038794と特願2016−038795によって本願の発明者らが紹介した。 As described above, the inventors of the present application introduced the method of tracing back the bit information generated from the one-dimensional mapping and obtaining the section of the initial value x 0 by Japanese Patent Application No. 2016-038794 and Japanese Patent Application No. 2016-03879.

ベルヌーイ写像の上記例では、 p = 0.5 とした場合の初期値x0を絞り込む計算方法を示した。ベルヌーイ写像においては、傾き"p"は0.5以外の変数" 0.0 < p < 1.0 "としても同様に絞り込みの計算を行うことができることは言うまでもない。 In the above example of Bernoulli mapping, a calculation method for narrowing the initial value x 0 in the case of p = 0.5 was shown. It goes without saying that, in the Bernoulli map, the narrowing calculation can be similarly performed even if the inclination "p" is a variable other than 0.5, "0.0 <p <1.0".

上記のように、式(1)の写像を遡る場合の処理を、変数(パラメータ)を傾き pとして数式化する。即ち、式(1)を変形して"xi=・・・"の式求めると、式(1)によって生成されるビット列を[b0,b1,…,bi,…,bn-1] として、以下の式(2)で表現できる。 As described above, the process in the case of going back the mapping of equation (1) is mathematically formulated with a variable (parameter) as a slope p. That is, when the equation (1) is transformed to obtain "x i = ...", the bit string generated by the equation (1) can be [b 0 , b 1 , ..., b i , ..., b n- 1 ] can be expressed by the following equation (2).

Figure 2019047450
Figure 2019047450

ここで、ビット数は " n " となり、" xn "の下限と上限は"0 ≦ xn ≦ 1 " から始められるため、最初(i = n - 1である場合)においては、" xn " の右辺は" xn = 1 "とし、左辺は" xn = 0 "として別々に計算を行ってゆき、最終的に" x0 "の下限と上限の区間として算出できる。 Here, the number of bits "n" becomes, "x n" lower and for the upper limit is initiated from "0 ≦ x n ≦ 1" of the first - in the (i = n when it is 1), "x n The right side of "is calculated as" x n = 1 "and the left side is calculated separately as" x n = 0 ", and finally it can be calculated as the interval between the lower and upper limits of" x 0 ".

図6の16通りにビット列を4ビット分与え、" xn = 1 "(上限)と" xn = 0 "(下限)として別々に計算し、傾き p を "0 < p < 1" の区間で振り、各々の傾き p に対して初期値x0 の下限と上限をプロットすると、図7のようになる。図7は、横軸を傾きp、縦軸を初期値x0 としたものであり、それぞれの傾き p(横軸) に対して各々の初期値x0 の下限と上限の区間(縦軸)を読み取ることが可能なグラフとなっている。 Given the bit string of 4 bits in 16 ways as shown in Fig. 6, calculate separately as "x n = 1" (upper limit) and "x n = 0" (lower limit), and the slope p is an interval of "0 <p <1" The lower limit and the upper limit of the initial value x 0 are plotted for each slope p, as shown in FIG. Figure 7 is for p inclination on the horizontal axis, the vertical axis and the initial value x 0, each slope p lower limit of the initial value x 0 for each relative (horizontal axis) and the upper limit of the interval (vertical axis) It is a graph that can be read.

図7においては、それぞれ線分で囲まれた領域を<1><2><3>・・・と示している。この線分は、図6の<1><2><3>・・・に対応するビット列についての各々の傾きパラメータp (0 < p < 1)に対応する初期値x0 の組み合わせの境界線と同一の意味を有している。パラメータpと初期値x0の組み合わせによって、この<1><2><3>・・・領域内のいずれかを選択することになる。伸長処理に用いる式(1)により得られたxiについて、xi < p のときビット"0"を生成し、p ≦ xi のときビット"1"を生成させる処理を行うことにより、必ず図6の<1><2><3>・・・に対応するビット列が得られることを意味している。 In FIG. 7, regions surrounded by line segments are indicated as <1><2><3>. This line segment is a boundary line of combinations of initial values x 0 corresponding to respective inclination parameters p (0 <p <1) for bit strings corresponding to <1><2><3> ... in FIG. Have the same meaning as Depending on the combination of the parameter p and the initial value x 0 , any one of the <1><2><3>... Regions is selected. For x i obtained by the equation (1) used for the expansion processing, by always performing processing of generating a bit “0” when x i <p and a bit “1” when p ≦ x i This means that a bit string corresponding to <1><2><3> ... in Fig. 6 is obtained.

図6で示した p = 0.5 の場合において、初期値x0 の区間は、図7の p = 0.5 における初期値x0の区間に相当する。ここで、図7の p = 0.25 と p = 0.75とのときの初期値x0における区間に着目する。図7のp = 0.25 と p = 0.75上に、上下の矢印を表記してある。これは、図7の<1><2><3>・・・のビット列を確認すると判るように、 p = 0.25のときには "0"の数が1個("1"の数は3個)、p = 0.75のときは "0"の数が3個("1"の数は1個)となっている。つまり、p = 0.25とp = 0.75のときは"0"と"1"の数に偏りがあるポイントの例である。この例示ポイントは、図9にも示すように、以下で説明する算術符号のアルゴリズムで圧縮を行った場合の区間と同等になっている。 In the case of p = 0.5 shown in FIG. 6, the interval of the initial value x 0 corresponds to the interval of the initial value x 0 at p = 0.5 in Fig. Here, attention is focused on the section at the initial value x 0 when p = 0.25 and p = 0.75 in FIG. 7. Up and down arrows are shown on p = 0.25 and p = 0.75 in FIG. This can be understood by checking the bit string of <1><2><3>... In FIG. 7. When p = 0.25, the number of "0" is 1 (the number of "1" is 3) When p = 0.75, the number of "0" s is 3 (the number of 1s is 1). That is, this is an example of a point where the numbers of “0” and “1” are biased when p = 0.25 and p = 0.75. As shown in FIG. 9, this example point is equivalent to the section when the compression is performed by the algorithm of the arithmetic code described below.

ここで、図8に、情報量として6ビットにより構成される伸長コードの全パターン64通りについて、式(2)における傾き p を "0< p <1" の区間で振って下限x0 と上限x0 の区間を絞り込んでプロットしたものを示す。各6ビットのパターン応じた領域は64領域に分かれており、この領域内における傾きpと初期値x0の組み合わせから式(1)の演算を行い、演算結果のxi がxi < pのとき"0"、p ≦ xiのとき"1"を出力させて連続してビット列を取得することで各領域に応じた伸長コードとしてのビットパターンを再現することができる。 Here, in FIG. 8, for all patterns 64 of the decompression code composed of 6 bits as the amount of information, the slope p in equation (2) is shaken in the section of “0 <p <1” to lower limit x 0 and upper limit The section of x 0 is narrowed down and plotted. The area corresponding to each 6-bit pattern is divided into 64 areas, and the operation of equation (1) is performed from the combination of the slope p and the initial value x 0 in this area, and the operation result x i is x i <p when "0", it is possible to reproduce the bit pattern of the extended code corresponding to each area by acquiring a bit string in succession to output the "1" when the p ≦ x i.

<算術符号のアルゴリズム>
以下においては、変形ベルヌーイ写像の式或いは変形ベルヌーイ写像を遡る式を、用いた本発明実施形態のアルゴリズムが算術符号のアルゴリズムにより優れていることを明らかにするために、算術符号のアルゴリズムを説明する。算術符号はデータパターンの偏り具合(出現確率の偏り)が大きいものに対して最も効率よく圧縮が行えるアルゴリズムとして知られている。算術符号の圧縮過程を図10(a)に示す。図10(a)の例は、ビット列が"0 0 1 0"("0"が3個)の場合であり、この場合の圧縮過程を図示しながら説明する。この場合、算術符号のアルゴリズムを適用すると全ビットの数が4個であり、4個中、ビット値"0"の頻度は3のため、区間[0.0,1.0)において、ビット"0"の区間は3/4の[0.0,0.75)の半開区間、ビット"1"の区間は1/4の[0.75,1.0)の半開区間に分けられる。
<Algorithm code algorithm>
In the following, the algorithm of the arithmetic code will be described in order to clarify that the algorithm of the embodiment of the present invention using the equation of the modified Bernoulli map or the equation that traces the modified Bernoulli map is superior to the algorithm of the arithmetic code. . Arithmetic code is known as an algorithm that can most efficiently compress data patterns with a large degree of deviation (occurrence probability deviation). The compression process of the arithmetic code is shown in FIG. 10 (a). The example of FIG. 10A is the case where the bit string is “0 0 1 0” (3 pieces of “0”), and the compression process in this case will be described with reference to FIG. In this case, when the algorithm of the arithmetic code is applied, the number of all bits is 4, and the frequency of the bit value "0" among the 4 bits is 3, so the section of bit "0" in the section [0.0, 1.0) Is divided into three-quarter [0.0, 0.75) half-opened sections, and a section of bit "1" is divided into 1/4 [0.75, 1.0) half-opened sections.

圧縮処理がスタートとなると、伸長コード中の最初のビット値は"0"であるため、区間を[0.0,0.75)に更新する。伸長コード中の次のビット値は"0"であるため、区間幅の0.75を3/4にした[0.0,0.5625)に更新する。伸長コード中の更に次のビット値は"1"であるため、0.5625を3/4にした0.421875が下限となり、区間を"1"側へ0.421875だけ振った [0.421875,0.5625)に更新する。伸長コード中の最終のビット値は"0"であるため、区間[0.421875,0.5625)を3/4に分けて、ビット"0"側へ寄った区間[0.421875,0.52734375)に最終的に更新する。   When the compression process starts, the interval is updated to [0.0, 0.75) because the first bit value in the decompression code is “0”. Since the next bit value in the decompression code is "0", the interval width is updated to 3/4 [0.0, 0.5625). Since the next bit value in the decompression code is "1", the lower limit of 0.462575, which is 0.5625 equal to 3/4, is the lower limit, and the section is updated by 0.421875 toward the "1" side [0.421875, 0.5625). Since the final bit value in the decompression code is "0", the section [0.421875, 0.5625) is divided into 3/4 and finally updated to the section [0.421875, 0.52734375) shifted to the bit "0" side. .

上記において得られた区間内において、2進数の小数で最も少ないビット数で表されるものを探索する。すると10進数の0.5が相当し、2進数で表すと(0.1000…)2になるため小数点以下のビット"1"が圧縮コードとなり、情報量として1ビット(1/4)に圧縮される。以上が算術符号の圧縮の原理である。 Within the section obtained above, a binary decimal number represented by the smallest number of bits is searched. Then, a decimal number of 0.5 corresponds, and when it is expressed as a binary number (0.1000...) 2 , the bit “1” after the decimal point becomes a compression code, and the information amount is compressed to 1 bit (1⁄4). The above is the principle of compression of arithmetic code.

伸長処理では、伸長コードのビット値の頻度数("0"が3個、"1"が1個)は事前に情報として知っている(保持している)必要がある。以下、圧縮コード"1"から伸長コード(元のビット列)である"0 0 1 0"に戻す処理を行う。圧縮コードは"1"であり、2進数では(0.1000…)2であるから10進数では0.5となる。保持している伸長コードのビット値の頻度から区間を分割して"0"の頻度の区間[0.0,0.75)と1の頻度の区間[0.75,1.0)から圧縮コード0.5は"0"の頻度の区間[0.0,0.75)に含まれることが検出される。このため、最初に伸長コードとしてビットデータとして"0"が出力される。圧縮処理と同様に最初のビット値が"0"のため、区間を[0.0,0.75)に更新する。 In the decompression processing, it is necessary to previously know (hold) the frequency number of bit values of the decompression code (three “0” s and one “1”) as information. Subsequently, processing is performed to restore the compression code “1” from “0 0 1 0” which is the decompression code (original bit string). The compression code is "1", which is (0.1000 ...) 2 in binary, so it is 0.5 in decimal. Divide the section from the frequency of the bit value of the decompression code which is held, and from the section [0.0, 0.75) of the frequency of "0" and the section [0.75, 1.0) of the frequency of 1 ", the compression code 0.5 is the frequency of" 0 " It is detected that it is included in the interval [0.0, 0.75) of. For this reason, "0" is initially output as bit data as a decompression code. The interval is updated to [0.0, 0.75) because the first bit value is “0” as in the compression process.

次に、区間[0.0,0.75)は、保持しているビット頻度から区間[0.0,0.5625)と[0.5625,0.75)に分割する。ここで、圧縮コード0.5は区間[0.0,0.5625)に含まれるため、2つ目の伸長コードとしてビットデータとして"0"を出力する。3回目も圧縮処理同様に、区間[0.0,0.5625)を保持しているビット頻度から区間[0.0,0.421875)と[0.421875,0.5625)に分割する。ここで、圧縮コード0.5は区間[0.421875,0.5625)に含まれるため、3つ目の伸長コードとしてビットデータ"1"を出力する。   Next, the interval [0.0, 0.75) is divided into intervals [0.0, 0.5625) and [0.5625, 0.75) from the bit frequency held. Here, since the compression code 0.5 is included in the section [0.0, 0.5625), “0” is output as bit data as the second expanded code. Similarly to the third compression processing, the section [0.0, 0.421875) and [0.421875, 0.5625) are divided from the bit frequency holding the section [0.0, 0.5625). Here, since the compression code 0.5 is included in the section [0.421875, 0.5625), the bit data “1” is output as the third expansion code.

最後の4回目は、上記の区間[0.421875,0.5625)を保持してあるビット頻度から区間[0.421875,0.52734375)と[0.52734375,0.5625)に分割する。ここで、圧縮コード0.5は区間[0.421875,0.52734375)に含まれるため、最後の4つ目の伸長コードとしてビットデータとして"0"を出力し、圧縮前のビット列"0 0 1 0"が得られたことで伸長処理が完了する。   The final fourth time is divided into the intervals [0.421875, 0.52734375) and [0.52734375, 0.5625) from the bit frequency that holds the above interval [0.421875, 0.5625). Here, since the compression code 0.5 is included in the section [0.421875, 0.52734375), “0” is output as bit data as the final fourth expansion code, and the bit string “0 0 1 0” before compression is obtained. The decompression process is completed.

算術符号による圧縮ではデータの頻度の偏りが大きいほど、最後の上限と下限の区間を広く確保できるため圧縮率が大きくなるといった特徴を持っている。図9に算術符号のアルゴリズムを適用したビット列4ビット分で16通り伸長コードに対して圧縮処理を行ったときの、それぞれの下限と上限の区間を算術符号の欄に示す。   Arithmetic code compression has a feature that the compression ratio becomes larger because the section of the upper limit and the lower limit can be widely secured as the bias of the data frequency is larger. FIG. 9 shows the sections of the lower limit and the upper limit in the column of arithmetic code when compression processing is performed on 16 expanded codes with 4 bits of bit string to which the algorithm of arithmetic code is applied.

<実施形態1 変形ベルヌーイ写像を遡る圧縮アルゴリズム>
図9と図10に示すように、本実施形態に係る変形ベルヌーイ写像を遡る圧縮処理では、圧縮を行う対象のビット列に対して算術符号と同じ区間において絞り込みを行うことができる。図10(b)に、変形ベルヌーイ写像を遡る式(2)を実行することで得られる処理手順を示す。算術符号の例と同じビット列"0 0 1 0"("0"が3個)の場合の圧縮過程を説明する。変形ベルヌーイ写像を遡ることによる圧縮では、算術符号の例とはビット列を逆順である"0 1 0 0"にして順番に処理を行う。つまり、変形ベルヌーイ写像を遡る式を用いる場合には、圧縮処理手段110は、伸長コードの最後尾の1単位データから最前の1単位データへ向かって1単位データ毎に圧縮値の範囲を得る演算を行う。本実施形態では、前述した算術符号と同様に、"0"が3個であり、式(2)のパラメータpが p = 0.75(=3/4)である場合について図10(b)で示す計算過程を以下において説明する。
<Embodiment 1 Compression algorithm for tracing back the modified Bernoulli map>
As shown in FIG. 9 and FIG. 10, in the compression processing that traces back the modified Bernoulli map according to the present embodiment, narrowing can be performed on the bit string to be compressed in the same section as the arithmetic code. FIG. 10 (b) shows a processing procedure obtained by executing equation (2) which traces back the modified Bernoulli map. The compression process in the case of the same bit string "0 0 1 0" (3 "0" s) as the example of the arithmetic code will be described. In compression by tracing back the modified Bernoulli map, processing is performed in order by setting the bit sequence to "0 1 0 0" which is the reverse order of the example of the arithmetic code. That is, in the case of using an expression to trace back the modified Bernoulli map, the compression processing means 110 is an operation for obtaining the range of the compression value for each unit data from the last 1 unit data of the decompression code to the first 1 unit data. I do. In this embodiment, as in the case of the arithmetic code described above, FIG. 10B shows the case where “0” is 3 and the parameter p in the equation (2) is p = 0.75 (= 3⁄4). The calculation process is described below.

ベルヌーイ写像の最後の解 " x4 "について考えると、写像xiの値域が閉区間[0,1]であるため、" 0 ≦ x4 ≦ 1 "の区間のいずれかに必ず含まれている。式(1)において" x4 "を生成した式は、伸長コードの最後尾の1単位データがビット"0"であることから、" x4 = x3 / 0.75 "が実行されたことが推定され、" x3 "の値を求める計算をすると、" 0 ≦ x4 ≦ 1 " から " 0 ≦ x3 / 0.75 ≦ 1 " → " 0 ≦ x3 ≦ 0.75 " となり、この区間から必ず" x3 "が計算されていることが判る。 Considering the final solution "x 4 " of Bernoulli mapping, the range of the mapping x i is a closed interval [0, 1], so it must be included in any of the intervals of "0 x x 4 1 1" . The equation that generated "x 4 " in equation (1) is estimated that "x 4 = x 3 / 0.75" has been executed because the last 1 unit data of the decompression code is bit "0" is, when the calculation for obtaining the value of "x 3", "0 ≦ x 4 ≦ 1" from "0 ≦ x 3 / 0.75 ≦ 1" → "0 ≦ x 3 ≦ 0.75" , and the always from the section "x It can be seen that 3 "has been calculated.

次に" x3 "について考えると、伸長コードの1単位データがビット"1"であるという情報から、 " x3 = (x2 - 0.75) / (1 - 0.75) "が選択されたことが判る。そこで、上記の式を" 0 ≦ x3 ≦ 0.75 "に代入することで、
" 0 ≦ (x2 - 0.75) / 0.25 ≦ 0.75 "→ " 0 ≦ x2 - 0.75 ≦ 0.1875 "
→ " 0.75 ≦ x2 ≦ 0.9375 " が得られる。このようにして、" x2 "の区間を絞ること ができる。
Next Considering "x 3", the information of one unit data decompression code is bit "1", "x 3 = (x 2 - 0.75) / (1 - 0.75)" that has been selected I understand. Therefore, by substituting the above equation into "0 x x 3 0.75 0.75",
“0 ≦ (x 2 −0.75) /0.25≦0.75” → “0 ≦ x 2 −0.75 ≦ 0.1875”
→ "0.75 x x 2 0.9 0.9375" is obtained. In this way, we can narrow the section of "x 2 ".

次の伸長コードの1単位データがビット" 0"であるから、" x1 "の区間は、
" 0.75 ≦ x2 ≦ 0.9375 " → " 0.75 ≦ x1 / 0.75 ≦ 0.9375 "
→ " 0.5625 ≦ x1 ≦ 0.703125 "となる。
Since 1 unit data of the next decompression code is bit "0", the section of "x 1 " is
"0.75 x x 2 0.9 0.9375" to "0.75 x x 1 / 0.75 0.9 0.9375"
→ “0.5625 ≦ x 1 ≦ 0.703125”.

伸長コードの最後の1単位データがビット"0"であるから、
" 0.5625 ≦ x1 ≦ 0.703125 " → " 0.5625 ≦ x0 / 0.75 ≦ 0.703125 "
→ " 0.421875 ≦ x0 ≦ 0.52734375 "となる。
Since the last 1 unit data of the decompression code is bit "0",
“0.5625 ≦ x 1 ≦ 0.703125” → “0.5625 ≦ x 0 /0.75≦0.703125”
→ “0.421875 ≦ x 0 ≦ 0.52734375”.

上記により、圧縮コードに対応する初期値x0 は0.421875から0.52734375の区間内(前述したように正しくは下限を含む半開区間[0.421875,0.52734375)とする)のいずれかの値であることが判る。このようにして得られる区間内の初期値x0 (圧縮コード)から"p = 0.75" としてベルヌーイ写像式(1)を用いた伸長処理を実行し、上記規則にてビット列を生成すると必ず" 0 0 1 0 "となる。 From the above, it can be seen that the initial value x 0 corresponding to the compression code is any value within the interval of 0.421875 to 0.52734375 (as described above, it is assumed to be the half open interval [0.421875, 0.52734375 including the lower limit correctly)]. If the expansion process using Bernoulli mapping equation (1) is executed from the initial value x 0 (compression code) in the section obtained in this way as "p = 0.75", and a bit string is generated according to the above rule, "0 It becomes 0 1 0 ".

求めた区間は図9(図9の圧縮対象のビット列について変形ベルヌーイ写像を遡る場合は算術符号と逆順に処理するため一番右のビットから1ビットずつ左へと処理する)と、図10に示すように、前述の算術符号の例と同じ区間になっていることが判る。本実施形態でも、圧縮コードは、この区間内で一番少ないビット列で表すことができる小数点ビット値として求められる。この一番少ないビット列で表せられる小数点ビット値は、(0.1)2となり10進数では0.5となる。このように、圧縮コード生成手段120は、最終的に求められた圧縮値の範囲において最も少ないビット列で表すことが可能な2進数の小数を圧縮コードとする。 When the section obtained is as shown in FIG. 9 (when the modified Bernoulli mapping is traced back with respect to the bit string to be compressed in FIG. 9, it is processed from the rightmost bit to the left one bit at a time). As shown, it can be seen that the interval is the same as the example of the arithmetic code described above. Also in the present embodiment, the compression code is obtained as a decimal point bit value that can be represented by the smallest bit string in this section. The decimal point bit value represented by the smallest bit string is (0.1) 2 and is 0.5 in decimal. As described above, the compression code generation unit 120 sets the binary decimal fraction that can be represented by the smallest bit string in the range of the finally obtained compression value as the compression code.

<実施形態1 変形ベルヌーイ写像による伸長アルゴリズム>
上記において用いた伸長コードにおいて、"0"の頻度は3/4のため、変形ベルヌーイ写像の式(1)において、傾きp = 0.75、初期値 x0 = 0.5 に設定して演算を行い(伸長処理手段210)、演算結果が0.75未満のときにビット"0"を出力し、0.75以上のときにビット"1"を出力する規則で反復演算する(伸長コード生成手段220)伸長処理が行われる。このような伸長処理を4回行う過程では、以下の通りに、ビット列"0 0 1 0"からなる伸長コードが得られる。
写像xi 出力ビット
x0 = 0.500000 0
x1 = 0.666667 0
x2 = 0.888889 1
x3 = 0.555556 0
上記では、小数点以下6桁目までを表示してある。
First Embodiment A decompression algorithm based on a modified Bernoulli map
In the expansion code used above, since the frequency of "0" is 3/4, calculation is performed by setting the slope p = 0.75 and the initial value x 0 = 0.5 in equation (1) of the modified Bernoulli map (expansion The processing means 210) outputs the bit "0" when the operation result is less than 0.75, and outputs the bit "1" when it is 0.75 or more. . In the process of performing such expansion processing four times, an expanded code consisting of the bit string "0 0 1 0" is obtained as follows.
Mapping x i output bit
x 0 = 0.500000 0
x 1 = 0.666667 0
x 2 = 0.888889 1
x 3 = 0.555556 0
In the above, up to the sixth decimal place is displayed.

<データパターンが3種類の場合の算術符号による圧縮アルゴリズム>
上記の実施形態では、伸長コードの1単位データにおいては、ビット値が"0"か"1"の2種類(符号長1)の場合を示したが、算術符号と同様に3種類以上のデータパターンでも圧縮を行うことができる。例として"a", "b", "c"の3種類のデータパターンを用意し、データ列"abaacb"(合計6個)に対しての圧縮処理を説明する。図11(a)に算術符号を用いて圧縮を行った場合の圧縮過程を示し、図11(b)に本実施形態に係るベルヌーイ写像を遡る式を用いて圧縮を行った場合の圧縮過程を示す。
<Compression algorithm by arithmetic code in case of three types of data patterns>
In the above embodiment, in the 1 unit data of the decompression code, the case where the bit value is two types (code length 1) of “0” or “1” is shown, but three or more types of data are similar to the arithmetic code. Even patterns can be compressed. As an example, three types of data patterns of "a", "b" and "c" are prepared, and compression processing for data string "abaacb" (total of 6 pieces) will be described. FIG. 11 (a) shows a compression process when compression is performed using an arithmetic code, and FIG. 11 (b) shows a compression process when compression is performed using an expression that traces the Bernoulli map according to the present embodiment. Show.

まず、算術符号を用いて圧縮を行った場合の圧縮過程から説明を行う。ここでは、上限と下限の値は小数点以下第6位まで記載する。伸長コードのデータパターンの頻度として、"a"は3個、"b"は2個、"c"は1個であるという情報を保持している。これに基づき、累積頻度はpa=3/6=0.5、pb=5/6=0.833333に設定される。また、図11(a)に示すように、0から1までの半開区間[0.1)は、"a"の区間として[0,0.5)と、"b"の区間として[0.5, 0.833333)と、 "c"の区間として[0.833333,1)とに分割される。   First, the compression process when compression is performed using an arithmetic code will be described. Here, the upper limit and the lower limit are described to the sixth decimal place. As the frequency of the data pattern of the decompression code, it holds information that "a" is 3 pieces, "b" is 2 pieces, and "c" is 1 piece. Based on this, the cumulative frequency is set to pa = 3/6 = 0.5, pb = 5/6 = 0.833333. Further, as shown in FIG. 11A, the half open interval [0.1) from 0 to 1 is [0, 0.5) as the interval of “a” and [0.5, 0.833333) as the interval of “b”, It is divided into [0.833333, 1) as a section of "c".

算術符号では、伸長コードのデータ列の最初の1単位データから順番に圧縮処理を行う。最初の1単位データが"a"であるため、区間[0.1)を[0,0.5)に更新し、[0,0.5)において頻度に応じた再分割を行う。即ち、"a"の区間は[0,0.5 x 0.5)= [0,0.25) 、"b"の区間は[0.5 x 0.5, 0.5 x 0.833333) = [0.25,0.416667)、"c"の区間は[0.5 x 0.833333, 0.5 x 1)= [0.416667,0.5)に分割される。   In the arithmetic code, the compression processing is performed sequentially from the first one unit data of the data string of the decompression code. Since the first unit data is "a", the section [0.1) is updated to [0, 0.5), and re-division according to the frequency is performed in [0, 0.5). That is, the section of "a" is [0, 0.5 x 0.5) = [0, 0.25), the section of "b" is [0.5 x 0.5, 0.5 x 0.833333) = [0.25, 0.416667), the section of "c" It is divided into [0.5 x 0.833333, 0.5 x 1) = [0.416667, 0.5).

伸長データ中の2つ目の1単位データは、"b"であり、区間[0,0.5)を[0.25,0.416667)に更新し、頻度に応じた再分割を行う。"a"の区間は[0.25,(0.41667-0.25)x0.5 + 0.25)=[0.25,0.333333)、"b"の区間は[0.333333, (0.41667-0.25)x0.833333 + 0.25) =[0.333333,0.388889)、 "c"の区間は[0.388889, 0.416667)に分割される。   The second 1st unit data in the decompressed data is "b", the section [0, 0.5) is updated to [0.25, 0.416667), and redivision according to the frequency is performed. The section of "a" is [0.25, (0.41667-0.25) x 0.5 + 0.25) = [0.25, 0.333333), and the section of "b" is [0.333333, (0.41667-0.25) x 0.833333 + 0.25) = [0.333333 , 0.388889), the section "c" is divided into [0.388889, 0.416667).

図11(a)に示すように、上記と同様な処理を残りのデータパターン"a", "a", "c", "b"についても行って、再分割を繰り返し、上限と下限の区間を狭めてゆく。最終的に半開区間[0.288194444444..., 0.290509259259...)が得られる。これを小数点以下のビット列(小数点以下12bitまでを表示)で表すと、下限(0.010010011100)2 〜 上限(0.010010100101)2になる。この区間内で一番短いビットで表せられる値は、(0.0100101)2となり10進数で表すと0.28906250となる。得られる圧縮コードは、" 0100101"になるため圧縮後のビット量は7ビット分になる。 As shown in FIG. 11A, the same process as described above is performed on the remaining data patterns "a", "a", "c", and "b", and the redivision is repeated, and the interval between the upper limit and the lower limit Narrow down. Finally, a half open interval [0.288194444444 ..., 0.290509259259 ...] is obtained. The lower limit (0.010010011100) 2 to the upper limit (0.010010100101) 2 can be obtained by expressing this as a bit string following the decimal point (up to 12 bits after the decimal point). The value represented by the shortest bit in this section is (0.0100101) 2 and is 0.28906250 in decimal. Since the compression code to be obtained is "0100101", the amount of compressed bits is 7 bits.

算術符号による伸長処理では、予め辞書領域に"a"が3つ、"b"が2つ、"c"が1つ合計6個あるという情報が保持されている。この情報が、圧縮後ファイルにおける圧縮コード以外のオーバヘッド部になる。上記辞書領域の情報により、累積頻度が" 3/6, (3+2)/6, (3+2+1)/6 "として得られ、最初は半開区間[0,0.5),[0.5,0.833333),[0.833333,1)に分割される。   In the expansion process by the arithmetic code, information is stored in advance that there are six "a", two "b" and one "c" in the dictionary area. This information is an overhead portion other than the compressed code in the compressed file. The cumulative frequency is obtained as "3/6, (3 + 2) / 6, (3 + 2 + 1) / 6" according to the information of the above dictionary area, and initially the half open interval [0, 0.5), [0.5, [0.5, 0.833333) and [0.833333, 1).

圧縮コードである(0.01001)2 から求められる10進数の"0.28906250"は、区間[0,0.5)に含まれるため、最初に1単位データとして"a"を出力する。次に、区間[0,0.5)を頻度に応じて再分割する。この結果、"a"の区間は[0,0.5 x 0.5)= [0,0.25) 、"b"の区間は[0.5 x 0.5, 0.5 x 0.833333) = [0.25,0.416667)、"c"の区間は[0.5 x 0.833333, 0.5 x 1)= [0.416667,0.5)に分割される。 Since the decimal number "0.28906250" obtained from the compression code (0.01001) 2 is included in the interval [0, 0.5), "a" is first output as one unit data. Next, the interval [0, 0.5) is subdivided according to the frequency. As a result, an interval of "a" is [0, 0.5 x 0.5) = [0, 0.25), an interval of "b" is [0.5 x 0.5, 0.5 x 0.833333) = [0.25, 0.416667), an interval of "c" Is divided into [0.5 x 0.833333, 0.5 x 1) = [0.416667, 0.5).

圧縮コードに対応する圧縮値である0.28906250は、"b"の区間に含まれるため、2番目に1単位データとして"b"を出力する。以降、圧縮処理と同様に区間を分割して、いずれの区間に圧縮値が含まれるかを検出して、伸長コードの1単位データを出力する。この処理が繰り返されて、残りのデータパターン"a", "a", "c", "b"が得られ、伸長処理が終了する。   Since 0.28906250 which is a compression value corresponding to the compression code is included in the section of “b”, “b” is output secondly as 1 unit data. Thereafter, the section is divided in the same manner as in the compression processing, it is detected in which section the compressed value is included, and 1 unit data of the decompression code is output. This process is repeated to obtain the remaining data patterns "a", "a", "c" and "b", and the decompression process is completed.

<実施形態2 データパターンが3種類の場合の変形ベルヌーイ写像を遡る圧縮アルゴリズム>
図11(b)を参照して、データパターン3種類の場合の変形ベルヌーイ写像を遡る圧縮アルゴリズムについて説明する。算術符号の例と同じくデータ列"aabcba"の出現頻度から設定された累積頻度paとpbを基に、変形ベルヌーイ写像のマップ図を描いたものが図12である。累積頻度paは"0.5"であり、累積頻度pbは"0.833333..."である。変形ベルヌーイ写像の式(3)は、以下の3つの式から構成される。
Second Embodiment A compression algorithm for tracing back the modified Bernoulli map in the case of three types of data patterns
A compression algorithm for tracing back the modified Bernoulli map in the case of three types of data patterns will be described with reference to FIG. It is FIG. 12 which drew the map figure of deformation | transformation Bernoulli mapping based on the accumulation frequency pa and pb set from the appearance frequency of data string "aabcba" similarly to the example of an arithmetic code. The cumulative frequency pa is "0.5", and the cumulative frequency pb is "0.833333 ...". Equation (3) of the modified Bernoulli map is composed of the following three equations.

Figure 2019047450
Figure 2019047450

累積頻度paが"0.5"であり累積頻度pbが"0.833333..."であるから、データパターン"a"が生成される場合は式(3)における一番上の式 xi / pa が選択され、"b"が生成される場合は式(3)における上から二番目の式 (xi - pa)/(pb - pa)、"c"が生成された場合は式(3)における一番下の式 (xi - pb)/(1 - pb)、が選択されることが判る。 Since the cumulative frequency pa is "0.5" and the cumulative frequency pb is "0.833333 ...", the topmost expression x i / pa in equation (3) is selected when the data pattern "a" is generated. And the second from the top in equation (3) if "b" is generated (x i -pa) / (pb-pa), and if "c" is generated, one in equation (3) It can be seen that the last equation (x i -pb) / (1 -pb) is selected.

図11(b)に示す変形ベルヌーイ写像を遡る圧縮アルゴリズムを説明する伸長コードの最後尾の1単位データから順番に圧縮処理を進めるために、データ順は(上記算術符号の例との逆)"bcaaba"となる。累積頻度はpa = 0.5(=3/6)、pb = 0.833333(=5/6)とする。ここでは、小数点以下6桁までの表記である。   In order to advance the compression process sequentially from the last 1 unit data of the decompression code to explain the compression algorithm for tracing back the modified Bernoulli map shown in FIG. It becomes "bcaaba". The cumulative frequency is pa = 0.5 (= 3/6) and pb = 0.833333 (= 5/6). Here, it is a notation to six decimal places.

圧縮処理対象の最初の1単位データは、データパターン" b "であるから、式(3)の上から二番目の式が選択されたことが判り、" 0 ≦ x4 ≦ 1 " から
" 0 ≦ (x3 - 0.5)/(0.833333 - 0.5) ≦ 1 " → " 0 ≦ x3 - 0.5 ≦ 0.333333 "
→ " 0.5 ≦ x3 ≦ 0.833333 "となる。
Since the first unit data to be compressed is the data pattern "b", it can be understood that the second expression from the top of the expression (3) is selected, and "0 ≦ x 4 1 1"
“0 ≦ (x 3 −0.5) / (0.833333 −0.5) ≦ 1” → “0 ≦ x 3 −0.5 ≦ 0.333333”
→ “0.5 ≦ x 3 ≦ 0.833333”.

圧縮処理対象の第2番目の1単位データは、データパターン"c"であるから、式(3)の上から三番目を選択されたことが判り、" 0.5 ≦ x3 ≦ 0.833333 "
→ " 0.5 ≦ (x3 - 0.833333)/(1 - 0.833333) ≦ 0.833333 "
→ " 0.0833333 ≦ x2 - 0.833333 ≦ 0.138889 "
→ " 0.916667 ≦ x2 ≦ 0.972222 "が得られる。
Since the second 1 unit data to be compressed is the data pattern "c", it is understood that the third from the top of equation (3) is selected, "0.5 x x 3 0.8 0.833333"
→ “0.5 ≦ (x 3 − 0.833333) / (1 − 0.833333) ≦ 0.833333”
→ "0.0833333 ≦ x 2 - 0.833333 ≦ 0.138889"
→ “0.916667 ≦ x 2 ≦ 0.972222” is obtained.

以上と同様の処理を、図11(b)に示すように残りのデータパターン"a", "a", "b", "a"に対して同様に繰り返すことで、最終的に算術符号の例で示した区間と同じ半開区間[0.288194444444..., 0.290509259259...)が得られる。これを小数点以下のビット列で表す(小数点以下12bitまでを表示)と下限(0.010010011100)2 〜 上限(0.010010100101)2となるため、この区間において一番短いビットで表せられる値を検索して、その値が(0.0100101)2として求められる。この値(0.0100101)2を10進数で表すと0.28906250となる。このように、得られた圧縮コードは" 0100101"になるため圧縮後のビット量は7ビット分になる。 By repeating the same process as above for the remaining data patterns "a", "a", "b" and "a" as shown in FIG. The same half open section [0.288194444444 ..., 0.290509259 ... ...] as the section shown in the example is obtained. Since this is expressed by a bit string following the decimal point (displaying up to 12 bits after the decimal point) and the lower limit (0.010010011100) 2 to the upper limit (0.010010100101) 2 , the value represented by the shortest bit in this section is retrieved and its value Is obtained as (0.0100101) 2 . This value (0.0100101) 2 is 0.28906250 when it is expressed in decimal. Thus, since the obtained compression code is "0100101", the amount of bits after compression is 7 bits.

以上のような圧縮処理を式(3)の変形ベルヌーイ写像を遡る処理として考え、傾き"pa"と"pb" を変数(パラメータ)として数式化すると、データパターンが"a", "b", "c"の3種類である場合のベルヌーイ写像を遡る式は以下の式(4)になる。   Considering the above compression process as a process to trace back the modified Bernoulli map of equation (3), and formulating the slopes "pa" and "pb" as variables (parameters), the data pattern is "a", "b", The equation going back to the Bernoulli map in the case of three types of "c" is the following equation (4).

Figure 2019047450
Figure 2019047450

式(4)は3つの式から構成され、データパターンとして式(4)の右側括弧に示した "Wi" として、"a" or "b" or "c"が出現した場合に応じてその左に記載の式を選択して圧縮処理を行う。ここで、始めに、下限をxn = 0、上限をxn = 1 に設定して、下限と上限の区間を絞り込む演算を行う。式(4)の傾きpaと傾きpbには、累積頻度としてpa = 3/6 = 0.5、pb = 5/6 =0.833333…を設定する。このように圧縮処理手段110による圧縮処理は、式(4)の演算となるから、算術符号のように圧縮演算の過程において下限と上限の区間を再分割しながら下限と上限の区間を絞り込むといった演算を必要としないものである。 Formula (4) is composed of three formulas, and when "a" or "b" or "c" appears as "W i " shown in the right parenthesis of formula (4) as a data pattern The compression process is performed by selecting the equation described on the left. Here, first, the lower limit is set to x n = 0, the upper limit is set to x n = 1, and the operation of narrowing down the lower limit and the upper limit is performed. The cumulative frequency pa = 3/6 = 0.5, pb = 5/6 = 0.833333 ... is set for the slope pa and the slope pb of the equation (4). As described above, since the compression processing by the compression processing means 110 is the operation of equation (4), the sections of the lower limit and the upper limit are narrowed down while the sections of the lower limit and the upper limit are repartitioned in the process of compression operation. It does not require any operation.

上記例で示したデータの順番"bcaaba"にて式(4)による反復計算を行うと図11(b)の圧縮過程に示すように、下限のxiと上限のxiが遷移される。最終的な下限と上限によって示す区間としては、半開区間[0.288194444444…, 0.290509259259…)が得られる。 When the iterative calculation according to equation (4) is performed in the order "bcaaba" of the data shown in the above example, as shown in the compression process of FIG. 11B, the lower limit x i and the upper limit x i transition. As a section indicated by the final lower limit and the upper limit, a half open section [0.288194444444..., 0.290509259.

図11(a)と図11(b)から判るように、算術符号と本発明の実施形態による手法とを比べると圧縮過程の途中で絞り込まれる下限と上限の区間は異なるが、最終的に絞り込まれる下限x0と上限x0の値は同一のものとなっている。 As can be seen from FIG. 11 (a) and FIG. 11 (b), comparing the arithmetic code and the method according to the embodiment of the present invention, the lower limit and upper limit sections narrowed down in the middle of the compression process are different. The values of the lower limit x 0 and the upper limit x 0 are the same.

次に、変形ベルヌーイ写像による伸長処理を説明する。伸長処理は式(3)により行われる。累積頻度としてpa = 3/6 = 0.5、pb = 5/6 = 0.833333…を設定する。また、初期値x0 については圧縮コードが(0.01001)2であるから、10進数で表した初期値x0 = 0.28906250を設定する。 Next, decompression processing by the modified Bernoulli mapping will be described. The extension process is performed by equation (3). The cumulative frequency is set as pa = 3/6 = 0.5, pb = 5/6 = 0.833333. Further, for the initial value x 0 , since the compression code is (0.01001) 2 , the initial value x 0 = 0.28906250 represented by a decimal number is set.

本実施形態の伸長処理では、式(3)による演算を行う(伸長処理手段210)。演算結果の値 xi が半開区間[0,0.5) に入っている場合には1単位データのデータパターン"a"を出力し、演算結果の値 xi が[0.5,0.833333…)に入っている場合には1単位データのデータパターン"b"を出力し、演算結果の値 xi が[0.833333…,1) に入っている場合にはデータパターン"c"を出力する(伸長コード生成手段220)。このような処理6回分の反復写像を行うことで連続して出力する。本実施形態によれば図13に示したようにxiが変遷され、対応するデータパターンを出力し伸長後のデータ列"abaacb"(合計6個)が得られる。 In the decompression process of the present embodiment, an operation according to equation (3) is performed (decompression processing means 210). When the value x i of the operation result is in the half open interval [0, 0.5), the data pattern “a” of 1 unit data is output, and the value x i of the operation result is in [0.5, 0.833333 ...) If it is, output the data pattern "b" of 1 unit data, and if the value x i of the operation result is [0.833333 ..., 1), output the data pattern "c" (decompression code generation means 220). This process is continuously output by performing iterative mapping for six times. According to this embodiment, as shown in FIG. 13, x i is changed, and the corresponding data pattern is output to obtain the data string “abaacb” (6 in total) after expansion.

本実施形態と算術符号とを比較すると、算術符号ではデータパターンに応じて区間を1単位データの処理毎に再分割する必要があるが、本発明の実施形態では頻度に応じた区間を1単位データの処理毎に再分割することはない。しかも、圧縮処理では下限 xn = 0 と上限 xn = 1 を初期設定して式(4)からデータパターンに応じた式を選択して一意的に実行すれば良いため、分割する計算が不要であり高速化できるといった効果がある。 When this embodiment and arithmetic code are compared, in the arithmetic code, it is necessary to re-divide the section for each processing of one unit data according to the data pattern, but in the embodiment of the present invention There is no need to repartition each data processing. Moreover, in the compression processing, it is sufficient to initialize lower limit x n = 0 and upper limit x n = 1 and select an equation according to the data pattern from equation (4) and execute it uniquely, so that calculation for division is unnecessary. There is an effect that the speed can be increased.

以上の例では式(4)による下限と上限を並行して計算することを示した。しかしながら、式(4)からは、最終的に得られる下限と上限の差分は、式(4)の傾き成分"pa", "pb-pa", "1-pc"(データパターン毎の頻度)の使用回数による累乗を乗算したものとして得られ、これが"0"と"1.0"の間に対する割合となることが、読み取れる。   In the above example, it is shown to calculate the lower limit and the upper limit according to the equation (4) in parallel. However, from the equation (4), the difference between the lower limit and the upper limit finally obtained is the slope component "pa", "pb-pa", "1-pc" (frequency for each data pattern) of the equation (4) It can be read that it is obtained by multiplying the power by the number of times of use, and this is a ratio to between "0" and "1.0".

上記の例ではpa が3回、pb-pa が2回、1-pb が1回用いられている。このため、
pa3 x (pb-pa)2 x (1-pb) = (3/6)3 x (2/6)2 x (1/6) = 0.002314814815
となり、この値は、上記の下限x0 = 0.288194444444と上限x0 = 0.290509259259の差分になっていることが判る。
In the above example, pa is used three times, pb-pa is used twice, and 1-pb is used once. For this reason,
pa 3 x (pb-pa) 2 x (1-pb) = (3/6) 3 x (2/6) 2 x (1/6) = 0.002314814815
It can be seen that this value is a difference between the above lower limit x 0 = 0.288194444444 and the upper limit x 0 = 0.290509259259.

このことから圧縮過程では下限と上限の双方を計算することなく、下限のみを計算して行き、最後に上記の差分を下限に足し算することで上限が得られるといったアルゴリズムを採用することが考えられる。この手法を採用すると、絶えず下限と上限を並行して算出する手間を省き高速な処理が可能である。このため、計算過程では下限(または上限)のみを一意に導出すればよくなり、算術符号と比べても下限と上限の区間を再分割し更新するといった手間が小さくなるといったメリットがある。このように、圧縮処理手段110は、上限値を求める演算と下限値を求める演算を、別個に行う構成を採用しても良い。   From this, it is possible to adopt an algorithm in which only the lower limit is calculated without calculating both the lower limit and the upper limit in the compression process, and finally the upper limit can be obtained by adding the above difference to the lower limit. . When this method is adopted, it is possible to perform high-speed processing without the trouble of constantly calculating the lower limit and the upper limit in parallel. Therefore, in the calculation process, only the lower limit (or the upper limit) needs to be uniquely derived, and there is an advantage that the time and effort of redividing and updating the section of the lower limit and the upper limit is smaller compared to the arithmetic code. As described above, the compression processing unit 110 may adopt a configuration in which the calculation for obtaining the upper limit value and the calculation for obtaining the lower limit value are performed separately.

即ち、圧縮コード生成手段120は、上限値と下限値との差分値と、上限値または下限値のみを求め、上限値のみを求めた場合には最終的に求めた上限値から上記差分値を引いて最終的な下限値を求め、下限値のみを求めた場合には最終的に求めた下限値に上記差分値を加えて最終的な上限値を求める。   That is, the compression code generation unit 120 obtains only the difference between the upper limit value and the lower limit value and the upper limit value or the lower limit value, and when only the upper limit value is obtained, the difference value is calculated from the finally obtained upper limit value. The final lower limit is determined by subtraction, and when only the lower limit is determined, the difference value is added to the finally determined lower limit to obtain the final upper limit.

図7はデータパターンが2種類("1" or "0")であり、情報量が4ビットの場合であり、傾きpを "0 < p < 1" に振った傾きpに対する初期値x0の下限と上限の区間を式(2)により導出した2次元のグラフになっている。これに対し、データパターンが3種類で、ここでは上記例の1単位データが6単位からなるデータ列"abaacb"の場合において、初期値x0 の集合を図示してみる。ここで、式(4)おいて、傾きpaと傾きpbを 0.0 < pa < pb < 1.0(常にpa < pb)に振った場合においては、初期値x0の区間を導出して初期値x0 の集合を表示すると、図14(a)に示す如くなる。図14(a)は、X軸が傾きpaであり、Y軸が傾きpbであり、Z軸がx0であるようにして、3次元で表現したものである。この図14(a)を、Z軸の上から見ると三角形の薄く平坦で湾曲したZ軸方向に僅かに初期値x0 の区間分の厚みがある3次元の集合となっている。 FIG. 7 shows two types of data patterns ("1" or "0"), and the information amount is 4 bits, and the initial value x 0 to the slope p where the slope p is changed to "0 <p <1". The section of the lower limit and the upper limit of is a two-dimensional graph derived by equation (2). In contrast, in the data pattern is three, wherein in the case of the data string "abaacb" which one unit data in the above example consists of 6 units, try illustrated a set of initial values x 0. Here, the formula (4) Oite, when swung to 0.0 inclination pa and tilt pb <pa <pb <1.0 (always pa <pb), the initial value x 0 to derive the interval of the initial value x 0 When a set of is displayed, it becomes as shown in FIG. In FIG. 14A, the X axis is represented by a slope pa, the Y axis is represented by a slope pb, and the Z axis is represented by x 0 in a three-dimensional manner. When FIG. 14A is viewed from above the Z axis, it is a three-dimensional assembly having a thickness corresponding to a section of an initial value x 0 slightly in the direction of the thin, thin, curved Z axis of a triangle.

図14(a)においては、点の集合として示している。上記の例において圧縮処理を行った(pa,pb,x0)座標は( 0.5, 0.833333…, [0.288194444444, 0.290509259259) )である。x0 は式(4)より求められた半開区間[)となる薄い厚みの部分である。これ以外の集合座標の(pa,pb,x0)の組み合わせが各pa, pbに応じたx0の区間内にあれば、対応するパラメータを式(3)のpa,pb,x0に設定して、反復演算を行うことにより伸長コードのデータ列"abaacb"が生成できることを意味する。 In FIG. 14A, it is shown as a set of points. The coordinates (pa, pb, x 0 ) subjected to the compression processing in the above example are (0.5, 0.833333..., [0.288194444444, 0.290509259259)]. x 0 is a portion of thin thickness to be a half open section [) obtained from equation (4). If the combination of (pa, pb, x 0 ) of other set coordinates is in the section of x 0 according to each pa, pb, the corresponding parameter is set to pa, pb, x 0 in equation (3) It means that the data string "abaacb" of the decompression code can be generated by performing the iterative operation.

また、図14(b)に図14(a)とは別の集合の例を示す。図14(b)例は、データ列"caabac"の場合であり、図14(a)の例と同様に式(4)による初期値x0の区間を導出したものを示している。データの累積頻度からpa = 3/6 = 0.5、pb = 4/6 = 0.666666…になり、このパラメータによる初期値の座標(pa,pb,x0)は、(0.5, 0.666666…, [0.712962962963, 0.715277777778))となる。上記図14(a)でも説明したが、これ以外の集合座標の(pa,pb,x0)の組み合わせが各pa, pbに応じた図14(b)のx0の区間内にあれば、パラメータpa,pbとx0を式(3)に設定しデータ列を生成(伸長処理)した場合、データ列" caabac"が得られるものである。 Further, FIG. 14 (b) shows an example of another set different from FIG. 14 (a). The example of FIG. 14 (b) is the case of the data string "caabac", and shows the section of the initial value x 0 derived by the equation (4) as in the example of FIG. 14 (a). From the cumulative frequency of the data, pa = 3/6 = 0.5, pb = 4/6 = 0.666666 ... and the coordinates (pa, pb, x 0 ) of the initial value according to this parameter are (0.5, 0.666666 ..., [0.712962962963, 0.71527777778)). As described above with reference to FIG. 14 (a), if combinations of (pa, pb, x 0 ) of other set coordinates are in the section of x 0 in FIG. 14 (b) according to pa and pb, When the parameters pa, pb and x 0 are set in the formula (3) to generate a data string (expansion processing), a data string “caabac” is obtained.

以上では、データパターンが3種類までの場合の傾きパラメータに応じた初期値x0 の集合を視覚的に図7や図14に示した。データパターンが4種類以上の場合では直行系のデカルト座標では(軸が含まれてしまうため3次元までの表示となり)初期値x0 の集合を図で表すことができなくなる。しかし、1単位データであるデータパターンがN種類とした場合にも、傾きパラメータ群と初期値x0 はN次元の集合の座標として表すことができることは言うまでもない。 In the above, a set of initial values x 0 according to inclination parameters in the case of up to three data patterns is visually shown in FIG. 7 and FIG. In the case of four or more types of data patterns, Cartesian coordinates of orthogonal system (displaying up to three dimensions because axes are included) make it impossible to graphically represent the set of initial values x 0 . However, it is needless to say that even when there are N types of data patterns which are 1 unit data, the inclination parameter group and the initial value x 0 can be represented as the coordinates of an N-dimensional set.

1単位データであるデータパターンがN種類の場合の変形ベルヌーイ写像の式は、N個の式の集合となることが式(1)と式(3)により明らかであろう。N個の式は、式(3)のように、N段に記載することができ、第1の1単位データ、第2の1単位データ、第3の1単位データ、・・・、第Nの1単位データの頻度を、K1、K2、K3、・・・、KNとする。これにより、上記N個の式においては、第1の1単位データに対応する式は、
(xi/K1)と記載することができ、
第2の1単位データに対応する式は、
(xi−K1)/(K2−K1)と記載することができ、
第3の1単位データに対応する式は、
(xi−K2)/(K3−K2)と記載することができ、
・・・・
第Nの1単位データに対応する式は、
(xi−K(N−1))/(1−K(N−1))と記載することができる。このように、変形ベルヌーイ写像を遡る式は、伸長コードを構成する1単位データの種類に対応して分かれている。
It will be clear from Equation (1) and Equation (3) that the modified Bernoulli mapping equations for N types of data patterns as one unit data are a set of N equations. N equations can be described in N stages as in equation (3), and the first one unit data, the second one unit data, the third one unit data,. Let K1, K2, K3, ..., KN be the frequency of one unit data of Thus, in the above N equations, the equation corresponding to the first one unit data is
Can be written as (x i / K1),
The equation corresponding to the second unit data is
(X i -K1) / (K2 -K1) and can be described,
The equation corresponding to the third unit data is
It can be written as ( xi- K2) / (K3-K2),
...
The equation corresponding to the Nth unit data is
(X i -K (N-1 )) / can be described as (1-K (N-1 )). As described above, the expression for tracing back the modified Bernoulli map is divided in correspondence to the type of one unit data constituting the decompression code.

上記の変形ベルヌーイ写像の式は、伸長処理に用いられる。上記変形ベルヌーイ写像の式において、xiついて解いてxi+1の関数として表すと、変形ベルヌーイ写像を遡る式となる。この、変形ベルヌーイ写像を遡る式においても、伸長コードを構成する1単位データの種類に対応して分かれている。 The above modified Bernoulli mapping equation is used for the decompression process. In the above formula deformation Bernoulli mapping, expressed as a function of x i + 1 is solved with x i, the formula dating back deformation Bernoulli mapping. Also in the equation which traces back the modified Bernoulli map, it is divided corresponding to the type of one unit data constituting the decompression code.

<実施形態3 整数演算化アルゴリズム>
演算精度について考察すると、ベルヌーイ写像を遡る式による圧縮処理とベルヌーイ写像の式による伸長処理は、算術符号と同様な問題を有している。即ち、一般的なパーソナルコンピュータによるディジタル演算では、演算精度が固定値のため、丸め誤差が生じ、有効桁を超えた場合に誤差が生じ正しく演算ができなくなる。このため整数演算化(正規化演算)することで、ビット値による圧縮・伸長処理の演算が行える構成を採用したものが本実施形態である。
Embodiment 3 Integer Arithmetic Algorithm
Considering arithmetic precision, the compression processing by the expression that goes back the Bernoulli mapping and the expansion processing by the expression of the Bernoulli mapping have the same problems as the arithmetic code. That is, in a digital operation by a general personal computer, since the operation accuracy is a fixed value, a rounding error occurs, and when the effective digit is exceeded, an error occurs and the operation can not be performed correctly. For this reason, this embodiment adopts a configuration in which compression / expansion processing can be performed using bit values by performing integer operation (normalization operation).

本実施形態は、1単位データのデータパターンが3種類である場合には、式(3)を用いた伸長処理と式(4)を用いた圧縮処理が行われることに鑑み、式(3)を整数演算化したものが式(5)であり、式(4)を整数演算化したものが式(6)である。即ち、本実施形態では、式(5)を用いた伸長処理と式(6)を用いた圧縮処理を実行する。   In the present embodiment, in the case where there are three types of data patterns of one unit data, the equation (3) is used in view of performing the extension process using the equation (3) and the compression process using the equation (4). Equation (5) is obtained by integer operation of the equation (4), and equation (6) is obtained by integer operation of the equation (4). That is, in the present embodiment, the extension process using equation (5) and the compression process using equation (6) are executed.

Figure 2019047450
Figure 2019047450

Figure 2019047450
Figure 2019047450

本実施形態では、1単位データが"a", "b", "c"の3種類からなるデータ列"abaabac"を用意し圧縮処理を行う。図15に圧縮処理のフローチャートを示し、これに従って圧縮処理の動作説明を行う。圧縮処理では3種類のデータパターンを処理する式(6)を用いる。このフローチャートに対応するプログラムをコンピュータが実行して圧縮処理装置が実現される。最初に圧縮対象とするデータ列である伸長コード(圧縮前コード)を読み込み(S11)、データパターンの頻度から各パラメータを設定するため、圧縮対象とするデータ列からデータパターンの頻度をカウントする(S12)。   In this embodiment, compression processing is performed by preparing a data string "abaabac" in which one unit data is composed of three types "a", "b", and "c". FIG. 15 shows a flowchart of the compression process, and the operation of the compression process will be described accordingly. In compression processing, equation (6) for processing three types of data patterns is used. A computer executes a program corresponding to this flowchart to realize a compression processing device. First, the expansion code (pre-compression code), which is a data string to be compressed, is read (S11), and the frequency of the data pattern is counted from the data string to be compressed to set each parameter from the frequency of the data pattern S12).

次に、初期パラメータのセットを行う(S13)。このステップS13では、読み込んだデータ列"abaabac"の総数は7個であるため、"n = 7"(逆写像回数)となるので、式(6)のMに、 “M = 7"に設定する。データ列"abaabac"の内、データパターン"a"は4個であるため、"A = 4"、またPAには最初はAと同じく "PA = 4"を累積頻度として設定する。更に、データパターン"b"は2個であるため、データパターン"a"の個数に加えることで累積頻度は 4 + 2 = 6となり、"B = 6"となる。また、PBには最初はBと同じく "PB = 6"を累積頻度として設定する。以上で式(6)の初期パラメータ設定の処理(ステップS13)が終了する。   Next, initial parameters are set (S13). In this step S13, since the total number of the read data string "abaabac" is seven, "n = 7" (the number of times of inverse mapping) is set, so M in equation (6) is set to "M = 7" Do. In the data string "abaabac", since there are four data patterns "a", "A = 4" is set as PA and "PA = 4" as PA is the same as A at first. Furthermore, since there are two data patterns "b", the cumulative frequency becomes 4 + 2 = 6 by adding to the number of data patterns "a" and "B = 6". At the same time as B, "PB = 6" is set as the cumulative frequency in PB. Above, the process (step S13) of the initial parameter setting of Formula (6) is complete | finished.

次に、ベルヌーイ写像を遡る式(6)では、伸長コードであるデータ列"abaabac"の最後尾の1単位データから順に処理を行うため、データパターン"c"を最初に読み出して式(6)による実施を行って行く(S14)。最初に処理するデータパターンは、"c"であるため、式(6)の一番下の式が選択され。次に区間の絞り込みの計算を行うために、初めのXn (=X7)について下限nにはX7 = 0、上限には最大の演算幅となるMの値であるX7 = 7を設定する。本実施形態の例では図16に示すように、最初の区間は、[0,PA),[PA,PB),[PB,M) = [0,4),[4,6),[6,7)となっている。 Next, in the equation (6) which goes back the Bernoulli map, the data pattern "c" is read out first and the equation (6) is processed in order to process sequentially from the last 1 unit data of the data string "abaabac" which is the extension code. We will carry out the implementation according to (S14). Since the data pattern to be processed first is "c", the equation at the bottom of equation (6) is selected. Next, in order to calculate the narrowing of the interval, for the first X n (= X 7 ), the lower limit n is X 7 = 0, and the upper limit is the value of M which is the maximum operation width X 7 = 7 Set In the example of this embodiment, as shown in FIG. 16, the first interval is [0, PA), [PA, PB), [PB, M) = [0, 4), [4, 6), [6 , 7).

ここで式(6)の一番下の式に着目し、傾き係数となる"(M-B)/M"については、常に固定値"(M-B)/M"="1/7"であり、一連の処理が終わるまで変わらない勾配係数であるため保持することが好適である。式(6)の他の式における傾き係数も、同様に常に"A/M"="4/7"、 "(B-A)/M"="2/7"となるため、保持することが好適である。   Here, paying attention to the lowermost equation of equation (6), the gradient coefficient "(MB) / M" is always a fixed value "(MB) / M" = "1/7", and a series It is preferable to keep the gradient coefficient which does not change until the end of the processing of. Similarly, the gradient coefficients in the other equations of equation (6) are also always “A / M” = “4/7”, “(BA) / M” = “2/7”, so it is preferable to hold It is.

次に、Xi+1と傾き係数の掛け算"((M-B)/M) Xi+1 " を実行後は、Mで割り切れない解になる場合があるため、計算する前に予め演算精度幅を拡大しておくことで必ず割り切れるように演算を行う(S15)。即ち、演算を整数演算化して行う場合には、圧縮値及び圧縮値の範囲を、伸長コードを構成する1単位データの数(M)倍する。 Next, after performing multiplication of X i +1 and the slope coefficient “(MB) / M) X i +1 ”, there may be a solution that can not be divided by M. The operation is performed so as to be divisible by always expanding (S15). That is, when the operation is performed by integer operation, the range of the compression value and the compression value is multiplied by the number (M) of one unit data constituting the decompression code.

このため、区間(圧縮値の範囲)とXiをM倍に拡大し、区間は[0,PA),[PA,PB),[PB,MX) = [0,28),[28,42),[42,49)に更新(ここでMXは、拡大計算によって更新される演算精度幅の上限とする)し、XiもM倍することで必ず解が割り切れるように更新を行う。このように、式(6)を計算する前に、この拡大処理を経た後演算を行う。このため、データパターンを判定する閾値PAとPBについては、初期値はAとBと同じ値であるが、演算の都度拡大更新される変数となっている。 Therefore, the interval (range of the compression value) and X i are expanded by M times, and the interval is [0, PA), [PA, PB), [PB, MX) = [0, 28), [28, 42 , [42, 49) (here, MX is the upper limit of the calculation accuracy range updated by the enlargement calculation), and X i is also updated so that the solution is always divisible by multiplying by M. Thus, before the equation (6) is calculated, the calculation is performed after the enlargement process. Therefore, although the initial values of the thresholds PA and PB for determining the data pattern are the same as A and B, they are variables that are expanded and updated each time the operation is performed.

データパターン"c"の処理では、PA ,PB ,Xi をM=7倍後に、変形式ベルヌーイ写像を遡る式(6)を用いた整数演算処理を行う(S16)。ここでは、データパターン"c"の処理であるから式(6)の"((M-B)/M)Xi+1 + PB"を実行する。前述の通り、伸長コードであるデータ列"abaabac"のデータ個数は n = 7のため下限はX7 = 0、上限はX7 = 49を代入する。この結果、下限としては"X6 = (1/7)0 + 42 = 42 "が得られ、上限としては "X6 = (1/7)49 + 42 = 49 "が得られる。 In the process of the data pattern "c", after PA = P.sub.B, X.sub.i is multiplied by M = 7, an integer operation process is performed using the equation (6) which traces back the modified Bernoulli map (S16). Here, since it is processing of the data pattern "c", "((MB) / M) Xi + 1 + PB" of the equation (6) is executed. As described above, since the number of data of the data string "abaabac" which is the extension code is n = 7, the lower limit is substituted for X 7 = 0, and the upper limit is substituted for X 7 = 49. As a result, the lower limit is "X 6 = (1/7) 0 + 42 = 42", and the upper limit is "X 6 = (1/7) 49 + 42 = 49".

次にステップS17において、NOへ分岐し、伸長コードの次の1単位データに対する処理であるステップS14へ戻って更にステップS15とステップS16の処理を続ける。次に処理するデータパターンは"a"であるため、式(6)の"(A/M)Xi+1 "が選択される。計算の前に拡大計算として、M=7倍を行い、区間を[0,PA),[PA,PB),[PB,MX) = [0,196),[196,246),[246,343)に更新し、先に求めた下限及び上限は同じく7倍に更新して、X6 = 294 、X6 = 343とした後、"(A/M)X6 "を計算し、下限は"X6 = (4/7)294 = 168 "となり、上限は"X6 = (4/7)343 = 196 "が得られる。 Next, in step S17, the process branches to NO, returns to step S14 which is a process for the next unit data of the expansion code, and continues the processes of step S15 and step S16. Since the data pattern to be processed next is “a”, “(A / M) X i + 1 ” in equation (6) is selected. Before the calculation, M = 7 is performed as an enlargement calculation, and the interval is updated to [0, PA), [PA, PB), [PB, MX) = [0, 196), [196, 246), [246, 343], The lower limit and the upper limit obtained above are also updated by 7 times to obtain X 6 = 294 and X 6 = 343, and then "(A / M) X 6 " is calculated, the lower limit is "X 6 = (4 / 7) 294 = 168 ", and the upper limit is" X 6 = (4/7) 343 = 196 ".

次にステップS17において、NOへ分岐し、伸長コードの次の第3番目の1単位データに対する処理であるステップS14へ戻って更にステップS15とステップS16の処理を続ける。3回目に処理するデータパターンは "b"のため、式(6)中の"((B-A)/M)Xi+1 + PA"が選択される。計算の前に拡大計算であるM=7倍を行い、区間を[0,PA),[PA,PB),[PB,MX) = [0,1372),[1372,2058),[2058,2401)に更新する。この結果、先に求めた下限及び上限はそれぞれ、X6 = 1176、X6 = 1372へ7倍とする更新を行った後、" ((B-A)/M)X6 + PA "を計算する。これにより、下限は"X6 = (2/7)1176 + 1372 = 1708 "とされ、上限は"X6 = (2/7)1372 + 1372 = 1764 "が得られる。以降残りのデータパターン "aaba" についても同様にステップS14からステップS16の処理を行う。この処理によって下限Xi、上限Xi、PA、PB、MXが図16に示されるように遷移されて一連の処理が行われる。 Next, in step S17, the process branches to NO, and the process returns to step S14, which is a process for the third unit data next to the decompression code, and continues the processes of steps S15 and S16. Since the data pattern to be processed for the third time is "b", "((BA) / M) X i + 1 + PA" in equation (6) is selected. Before the calculation, the enlargement calculation M = 7 is performed, and the intervals are [0, PA), [PA, PB), [PB, MX) = [0, 1372), [1372, 2058), [2058, Update to 2401). As a result, the lower limit and the upper limit obtained above are updated to 7 times to X 6 = 1176 and X 6 = 1372 respectively, and then "((BA) / M) X 6 + PA" is calculated. As a result, the lower limit is "X 6 = (2/7) 1176 + 1372 = 1708", and the upper limit is "X 6 = (2/7) 1372 + 1372 = 1764". The processes from step S14 to step S16 are similarly performed for the remaining data pattern "aaba". By this process, the lower limit X i , the upper limit X i , PA, PB, and MX are transitioned as shown in FIG. 16 and a series of processes are performed.

最終的にステップS17においてYESへ分岐し、ステップS18へ進む。図16に示す通り、最終的に下限X0 = 2101008、上限X0 = 2108176が得られる。この場合、下限と上限の実数が0.0〜1.0の範囲におけるどの区間になるかについては、求めた下限X0と上限X0 に対して、拡大してきた演算精度幅MX = 5764801(=78)による割算を行うことで求めることができる。ここで求められた下限X0と上限X0、演算精度幅MXを2進数のビット値で表すと、次のようである。 Finally, the process branches to YES in step S17, and proceeds to step S18. As shown in FIG. 16, the lower limit X 0 = 2101008 and the upper limit X 0 = 2108176 are finally obtained. In this case, with regard to which section in the range of 0.0 to 1.0, the lower limit and the upper limit real number are expanded with respect to the calculated lower limit X 0 and the upper limit X 0 , the operation accuracy width MX = 5764801 (= 7 8 ) It can be determined by performing division by. Here determined lower limit X 0 and upper X 0, to represent the operation precision width MX in binary bit values are as follows.

下限X0 → "1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0"
上限X0 → "1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0"
演算精度幅MX→ "1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1"
Lower limit X 0 → "1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0"
Upper limit X 0 → "1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 0 0"
Operation precision range MX → "1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 1"

上記の下限X0と上限X0、演算精度幅MXを用いて、"X0 / MX" の計算を行って10進数の小数点以下6桁まで求めると
下限X0 = 0.364455
上限X0 = 0.365698
となり、これを2進数ビット値として小数点以下22桁まで示すと以下の通りである。
Using the above lower limit X 0 , upper limit X 0 and arithmetic precision width MX, calculate "X 0 / MX" and find up to 6 decimal places of decimal number Lower limit X 0 = 0.364455
Upper limit X 0 = 0.365698
It is as follows when this is shown to 22 decimal places as a binary bit value.

下限X0 = "0. 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1"
上限X0 = "0. 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0"
Lower limit X 0 = "0. 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1"
Upper limit X 0 = "0. 0 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0"

上記のように求められた下限X0と上限X0の間で、圧縮コードとなる最小のビット量で表せられる値は、"0. 0 1 0 1 1 1 0 1 1" である。圧縮コードとして小数点以下の9ビットを取得する。この値を10進数で表すと、"0.365234375"となる。 Between the lower limit X 0 and upper X 0 obtained as described above, the value is expressed by the minimum bit amount to be compressed code is "0. 0 1 0 1 1 1 0 1 1". Get 9 bits after the decimal point as compressed code. This value is "0.365234375" in decimal.

本実施形態に係るアルゴリズム上において、バイナリで圧縮コードを求めるための"X0 / MX" のビット演算手法を図17に示す。 On the algorithm according to the present embodiment, FIG. 17 shows a bit operation method of “X 0 / MX” for obtaining a compressed code in binary.

図17の演算手法では、下限X0と上限X0をMXで割る割算をビット値同士で行う。計算開始直後では下限と上限のビット値は上位桁から同じビット値が出力されて行く。この2つの出力について、同じ桁でビット値を比較して行き、異なる値を検出し、上限X0に演算の余りがあればそこで計算を打ち切る。上記の異なる値の前の桁までの数値を圧縮コードとするというアルゴリズムである。この割算を行う装置は、ビット同士の大小比較器と引き算器から構成することができる。 In the calculation method of FIG. 17, division is performed between bit values by dividing the lower limit X 0 and the upper limit X 0 by MX. Immediately after the start of calculation, the same bit value is output from the upper digit of the lower and upper bit values. This two outputs, the same digits continue to compare bit values to detect different values, aborted where calculations if any remainder operation to limit X 0. The algorithm is to use the numbers up to the digit before the above different values as the compression code. The device that performs this division can be configured from a bit-to-bit magnitude comparator and a subtractor.

ただし、上限X0が割り切れる場合には、区間の上限は含まないため下限の演算を続けて行くことになる。例えば、上限が割り切れた場合には、上限側の"0. 0 1 0 1 1 1 0 1 1"以降は0が永久に続くことがわかるため、下限側の割算の実行を続け、"0. 0 1 0 1 1 1 0 1 0 1 1 1 1 0"の下線部のように"1"が続いても、"0"が生じたところで計算を打ち切り、圧縮コードを"0. 0 1 0 1 1 1 0 1 0 1 1 1 1 1"とすることで下限と上限との間に入る値を必ず得るようにする工夫が必要である。 However, when the upper limit X 0 is divisible, the lower limit calculation is continued because the upper limit of the section is not included. For example, when the upper limit is divided, it is known that “0. 0 1 0 1 1 1 1 0 1 1” on the upper limit side will be permanently followed by 0, so execution of division on the lower limit side is continued, “0 . 0 1 0 1 1 0 1 0 1 1 1 1 0 "Even if" 1 "continues like" underline ", the calculation is aborted when" 0 "occurs and the compression code is" 0. 0 1 0 By setting 1 1 1 0 1 0 1 1 1 1 1 ", it is necessary to have a device to ensure that a value falling between the lower limit and the upper limit is obtained.

前述の小数演算により圧縮処理を行う実施形態に関する説明において、下限のみの計算を実行し、最後に、各傾き係数の使用回数による累乗を掛算して区間[0,1)の割合を求め、これを差分として上記下限に足し算することで上限の値を算出することが可能である旨を述べた。上記に鑑み、整数演算化した式(6)の例では、各傾き係数の使用回数による累乗の乗算である、"(4/7)4 (2/7)2 (1/7) "から差分を得ることができる。初期設定したM=7に対して7を掛け算した回数は、反復演算の回数と同じ7回である。従って、分母になっている最終的なMXは、MX = 7 x 77 (=78=5764801)となり、分子については初期設定の最大演算精度幅が M = 7であったことを考慮し計算すると、7 x 44 x 22 x 1 = 7168となり、これを下限X0 = 2101008に足し算すると"2108176"になり、上限X0 = 2108176を得ることができる。 In the description of the embodiment in which the compression process is performed by the above-described fractional operation, only the lower limit is calculated, and finally, the power of the respective inclination coefficients is multiplied by the power to obtain the ratio of the interval [0, 1) It has been stated that it is possible to calculate the value of the upper limit by adding the above lower limit as a difference. In view of the above, in the example of equation (6) in which integer arithmetic is performed, the difference from "(4/7) 4 (2/7) 2 (1/7)" which is multiplication of the power by the number of times of use of each slope coefficient You can get The number of times of initial setting M = 7 multiplied by 7 is seven, which is the same as the number of iterations. Therefore, the final MX which is the denominator is MX = 7 x 7 7 (= 7 8 = 5764801), and for the numerator, it is calculated taking into consideration that the maximum calculation accuracy width of the initial setting is M = 7. Then, 7 x 4 4 x 2 2 x 1 = 7168 , and the which when addition to the lower limit X 0 = 2,101,008 to "2108176", it is possible to obtain an upper limit X 0 = 2108176.

圧縮した圧縮コードのファイル内容の一例を図18に示す。最初の行には、求めた圧縮コード"0 1 0 1 1 1 0 1 1"がセットされるのであるが、ここでは、圧縮コードを伸長処理のため初期値X0として、整数値の10進数である187により表わしてある。ファイルの2行目からは辞書領域(オーバーヘッド)となり、各データパターンの個数の後、アンダースコア後にデータパターンを記述してある。ここで圧縮コードはバイナリにすると情報量は9ビット、各個数は上から4、2、1となるためこれをバイナリ(4は(11)2、2は(1)2、1は(0)2 を割り当てる)にすると情報量として2ビット、1ビット、1ビットのため合計4ビットとなり、"a", "b", "c"はアスキーコードとした場合それぞれ8ビットのため合計8x3=24ビット、これらから伸長に最低限必要な情報量は9+4+24=37ビットとなる。 An example of the file content of the compressed code is shown in FIG. In the first line, the obtained compression code "0 1 0 1 1 1 0 1 1" is set. Here, the compression code is set to an initial value X 0 for decompression processing, and the decimal number of integer value And is represented by 187. The second line of the file is a dictionary area (overhead), and the data pattern is described after the number of data patterns and the underscore. Here, if the compression code is binary, the amount of information is 9 bits, and the numbers become 4, 2 , 1 from the top, so these are binary (4 is (11) 2 , 2 is (1) 2 , 1 is (0) If 2 is allocated, 2 bits, 1 bit, and 1 bit make up 4 bits in total, and "a", "b", and "c" are 8 bits each when made into ASCII code. From these bits, the minimum amount of information necessary for decompression is 9 + 4 + 24 = 37 bits.

このため圧縮前の情報量は、元のデータがアスキーコードとすると、一文字あたり8ビットのため8x7=56ビットとなり、これに対し、圧縮後の情報量が37ビット(圧縮率約66%)となる。   Therefore, assuming that the original data is ASCII code, the amount of information before compression is 8x7 = 56 bits because 8 bits per character, whereas the amount of information after compression is 37 bits (about a compression ratio of about 66%). Become.

次に、本発明の実施形態に係る伸長処理装置を説明する。伸長演算は、整数演算化した変形ベルヌーイ写像の式(5)を用いて行う。図19に、伸長処理のフローチャートを示す。このフローチャートに対応するプログラムをコンピュータが実行して伸長処理装置が実現される。   Next, a decompression processing apparatus according to an embodiment of the present invention will be described. The expansion operation is performed using equation (5) of a modified Bernoulli map which has been integer-operated. FIG. 19 shows a flowchart of the decompression process. A computer executes a program corresponding to this flowchart to realize the decompression processing apparatus.

図19のフローチャートに示す処理がスタートとなり、最初に圧縮コードのファイルを読み出し(S21)、辞書領域の各データパターンとその個数を読み出す等のステップS22の処理が行われる。このステップS22では、式(5)のAにデータパターン"a"の累積頻度A = 4を、Bにデータパターン"a"と"b"の頻度(4と2)を足した累積頻度B = 6を設定し、データパターン"c"は頻度1のため、"a", "b", "c" (4と2と1)の累積頻度に上限M = 7が設定される。   The process shown in the flowchart of FIG. 19 starts, and the file of the compression code is read first (S21), and the process of step S22 is performed such as reading each data pattern of the dictionary area and the number thereof. In this step S22, the cumulative frequency B = the sum of the frequency A = 4 of the data pattern "a" and the frequency (4 and 2) of the data pattern "a" and "b" to B in A in equation (5) Since the data pattern "c" has a frequency of 1, the upper limit M = 7 is set for the cumulative frequency of "a", "b", "c" (4 and 2 and 1).

また、ステップS22において、写像の回数もn=7に設定される。ただし、実際の写像回数は最初に写像演算を行う前に閾値から伸長処理のデータを出力するため、この場合6回分の写像を行えば7個分の伸長データが出力できることから伸長の演算回数は "n - 1" で終了できる。   In step S22, the number of times of mapping is also set to n = 7. However, the actual number of times of mapping is that the data of expansion processing is output from the threshold before the mapping operation is performed first. In this case, if six times of mapping are performed, seven expansion data can be output. You can exit with "n-1".

ステップS22においては次の処理も行われる。初期値X0に対応する圧縮コード"0 1 0 1 1 1 0 1 1"を読み込む。圧縮コードを小数で表すと"(0.010111011)2"となり、実数の最大区間幅"1.0"(10進数)に対応するビットコードは"(1.000000000)2"(2進数)になるが、圧縮コード"0 1 0 1 1 1 0 1 1"を整数とした場合10進数では187になり、この実数の最大区間幅"1.0"に対応するビットコード"(1000000000)2"は10進数の整数では512となる。 The following processing is also performed in step S22. Read the compression code "0 1 0 1 1 1 0 1 1" corresponding to the initial value X 0 . When the compression code is expressed as a fraction, it becomes "(0.010111011) 2 ", and the bit code corresponding to the maximum interval width "1.0" (decimal number) of the real number becomes "(1.00000000) 2 " (binary number), but the compression code " 0 1 0 1 1 1 0 1 1 is an integer of 187 in decimal, and the bit code "(1000000000) 2 " corresponding to the maximum interval width "1.0" of this real number is 512 in decimal integer Become.

次に、変形ベルヌーイ写像の式を構成する初期パラメータをセットする(S23、S24)。具体的には、図20に示すように、式(5)のPAとPBの設定等がなされる。更に、圧縮コードX0 と、累積頻度による分割される区間"0,A,B,M"との割合が合うように拡大を行う(S24)。累積頻度の区間の大きさ1を512倍することでPA = 512 x 4 = 2048, PB = 512 x 6 = 3072に設定し、初期値X0 は187 x 7 = 1309とする。式(6)の傾き係数"M/A"と"M/(B-A)"は演算精度の拡大に関わらず勾配係数は変化しないため、そのままの値" M/A = 7/4", "M/(B-A) = 7/2"を設定する。 Next, initial parameters constituting an equation of the modified Bernoulli map are set (S23, S24). Specifically, as shown in FIG. 20, setting of PA and PB in equation (5) is performed. Further, the expansion is performed so that the ratio of the compression code X 0 and the divided sections “0, A, B, M” according to the cumulative frequency match (S 24). The size 1 of the cumulative frequency interval is multiplied by 512 to set PA = 512 × 4 = 2048, PB = 512 × 6 = 3072, and the initial value X 0 is 187 × 7 = 1309. The slope coefficients "M / A" and "M / (BA)" in equation (6) do not change regardless of the expansion of the calculation accuracy, so the values are unchanged "M / A = 7/4", "M Set / (BA) = 7/2 ".

式(5)の反復写像を実行する(S25〜S27)、ここでは、圧縮処理で行った処理と同様に拡大を行いながら反復演算を実行する。閾値によりXiがXi < PAに該当する場合には、1単位データ"a"を出力し、PA ≦ Xi < PBでは1単位データ"b"を出力し 、PB ≦ Xiでは1単位データ"c"を出力する(S25)。 The iterative mapping of Equation (5) is executed (S25 to S27), and here, the iterative operation is executed while performing the same expansion as the processing performed in the compression processing. If the X i corresponds to X i <PA by threshold 1 outputs unit data "a", PA ≦ X i < outputs one unit data "b" in PB, PB ≦ X i in one unit The data "c" is output (S25).

計算過程を図21に示す。即ち、最初ステップS25において、初期値X0 = 157 x 7 = 1309はX0 < PA(=2048)であるため、1単位データ"a"を出力し、ステップS27では式(5)の(M/A) X0を実行する。このステップS27を実行する前にステップS26にて "A" の割り算による演算結果に余りが出ないよう、図21のようにPAとPB、X0 について演算幅をA(=4)倍に拡大(PA=8192,PB=12288,X0=5236)した後に(M/A) X0を実行する。これによって、図21に示すようにX1 = 9163となり、ステップS28を介し再びステップS25に戻ってPA ≦ X1 < PB となるため1単位データ"b"を出力する。 The calculation process is shown in FIG. That is, in the first step S25, since the initial value X 0 = 157 x 7 = 1309 is X 0 <PA (= 2048), 1 unit data "a" is output, and in step S27 / a) to run the X 0. Before executing this step S27, the operation width is expanded by A (= 4) times for PA, PB, and X 0 as shown in FIG. 21 so that there is no remainder in the operation result by the division of “A” in step S26. After (PA = 8192, PB = 12288, X 0 = 5236), (M / A) X 0 is executed. As a result, as shown in FIG. 21, X 1 = 9163, and the process returns to step S25 again via step S28, and PA ≦ X 1 <PB, so that 1 unit data “b” is output.

以降は、ステップS28においてNOへ分岐するとステップS25〜S27が繰り返される。即ち、上記と同様に図21に示すように分母のA,B-A,M-Bに応じて割り算の余りが出ないようPA, PB, Xiを拡大しながら式(5)の反復演算を実行し、Xiと閾値PAとPBの大小に対応する1単位データであるデータパターンを出力し、合計 "n - 1" 回の写像演算を行えば圧縮前のデータである伸長コードを復元させることができる。 After that, when the process branches to NO in step S28, steps S25 to S27 are repeated. That is, performs iterative calculation of formula (5) with enlargement A in the denominator as shown in FIG. 21 as above, BA, to ensure that there is less of a division in accordance with the MB PA, PB, and X i, outputs data pattern is one unit data corresponding to the magnitude of the X i and the threshold PA and PB, the total "n - 1" times of mapping operation to be performed can be restored decompression code is the data before compression if .

<実施形態4 圧縮率の検証>
本発明の実施形態に係る圧縮処理装置と伸長処理装置は、前述で整数演算化した式(5)と式(6)を用いて図15と図19で示した圧縮と伸長の処理フローチャートに示すような処理を行うものである。本実施形態による圧縮率の効果を確かめるため、少し大きなデータ量のファイルを3つ用意し、本アルゴリズムが得意とする同じデータパターンの偏りが多いデータ列を用意して検証を行った。
Fourth Embodiment Verification of Compression Rate
The compression processing apparatus and the decompression processing apparatus according to the embodiment of the present invention are shown in the processing flowcharts of compression and decompression shown in FIG. 15 and FIG. 19 using the equations (5) and (6) which are integer arithmetic operations described above. It is the one that performs such processing. In order to confirm the effect of the compression rate according to the present embodiment, three files of slightly larger data size were prepared, and data strings with the same bias of the same data pattern, which this algorithm is good at, were prepared and verified.

ここでは、図22に示すように5種類のデータパターンを用意した。図22の<1>により示すデータパターンを64個、<2>により示すデータパターンを32個、<3>により示すデータパターンを16個、<4>により示すデータパターンを8個、<5>により示すデータパターンを8個用意した。上記<1>〜<5>の合計128個を第1のランダムに並べ変えた第1のファイルαと、上記<1>〜<5>の合計128個を第2のランダムに並べ変えた第2のファイルβと、上記<1>〜<5>の合計128個を第3のランダムに並べ変えた第3のファイルγとを用意した。第1のファイルαと第2のファイルβと第3のファイルγとは、それぞれが合計128行分の上記<1>〜<5>のデータパターンを有する。図23は、第1のファイルαの内容における最初の10行分を示したものである。   Here, five types of data patterns were prepared as shown in FIG. The data pattern shown by <1> in FIG. 22 is 64 pieces, the data pattern shown by <2> is 32 pieces, the data pattern shown by <3> is 16 pieces, the data pattern shown by <4> is eight pieces, <5> Eight data patterns indicated by were prepared. The first file α in which the total 128 pieces of <1> to <5> are rearranged at a first random number, and the second file in which the total 128 pieces of <1> to <5> are rearranged in a second random manner Two files β and a third file γ in which a total of 128 of the above <1> to <5> are randomly arranged in a third are prepared. The first file α, the second file β, and the third file γ each have the data patterns of the above <1> to <5> for a total of 128 lines. FIG. 23 shows the first 10 lines of the contents of the first file α.

データ容量については、1文字はアスキーコード1byte(8bit)であるため、最後の改行コード"\"を1byte分として含めて各データパターンのバイト容量は、
"Hello World!!\" → 14byte
"This is Test.\" → 14byte
"Belnui Mapping\" → 15byte
"Compression\" → 12byte
"as an example.\" → 15byte
である。従って、ファイルの容量は、14 x 64 + 14 x 32 + 15 x 16 + (12+15) x 8 = 1800 byte となる。
As for the data capacity, since one character is ASCII code 1 byte (8 bits), the byte capacity of each data pattern is calculated by including the last line feed code "\" as 1 byte,
"Hello World !! \" → 14 bytes
"This is Test. \" → 14 bytes
"Belnui Mapping \" → 15 bytes
"Compression \" → 12 bytes
"as an example. \" → 15 bytes
It is. Therefore, the capacity of the file is 14 x 64 + 14 x 32 + 15 x 16 + (12 + 15) x 8 = 1800 bytes.

上記のように作成されたファイルに対しては、図15に示したフローチャートに基づく圧縮処理を行った。データパターンの種類は5つであるため、圧縮時に用いた式は整数演算化した変形ベルヌーイ写像を遡る5つの式からなる以下に示す式(8)を用い、伸長時には5つの式からなる以下に示す変形ベルヌーイ写像の式(7)を用いた。   The compression process based on the flowchart shown in FIG. 15 was performed on the file created as described above. Since there are five types of data patterns, the equation used for compression uses the following equation (8) consisting of five equations that trace back the modified Bernoulli map that has been integer-operated, The equation (7) of the modified Bernoulli map shown is used.

Figure 2019047450
Figure 2019047450

Figure 2019047450
Figure 2019047450

圧縮した結果を図24に示す。図24では各データパターンの並びを
Hello World!!\ → a
This is Test.\ → b
Belnui Mapping\ → c
Compression\ → d
as an example.\ → e
と置き換えて、128個分のデータの並びが3種類(α、β、γ)となっている。
The result of compression is shown in FIG. Figure 24 shows the sequence of each data pattern.
Hello World !! \ → a
This is Test. \ → b
Belnui Mapping \ → c
Compression \ → d
as an example. \ → e
In the above, the arrangement of 128 pieces of data is three types (α, β, γ).

図24の第1のファイルαをピックアップし、式(8)を用いた圧縮処理を説明する。式(8)の初期パラメータについては、頻度の合計M=128、各データパターンの累積頻度A=64, B=96, C=112, D=120を設定する。また、拡大計算を行うパラメータの初期値も同様に累積頻度PA=64, PB=96, PC=112, PD=120に設定できるが、ここで区間の比を考えると (0:64:96:112:120:128)の比は(0:8:12:14:15:16)と同等の比であるため、初期パラメータはA=PA=8、B=PB=12、C=PC=14、D=PD=15、M=16として式(8)に設定を行う。   The first file α in FIG. 24 is picked up, and the compression processing using equation (8) will be described. For the initial parameters of equation (8), the sum of frequencies M = 128, the cumulative frequencies A = 64, B = 96, C = 112 and D = 120 of the respective data patterns are set. Also, the initial value of the parameter to be subjected to the expansion calculation can be similarly set to cumulative frequency PA = 64, PB = 96, PC = 112, PD = 120, but considering the ratio of the segments here (0:64:96: Since the ratio of 112: 120: 128) is equivalent to (0: 8: 12: 14: 15: 16), the initial parameters are A = PA = 8, B = PB = 12, C = PC = 14. , D = PD = 15 and M = 16 are set in the equation (8).

また、式(8)の傾き係数に着目すると、A/M=8/16, (B-A)/M=4/16, (C-B)/M=2/16, (D-B)/M=1/16, (M-D)/M=1/16 となるため、約分すると、A/M=1/2, (B-A)/M=1/4, (C-B)/M=1/8, (D-B)/M=1/16, (M-D)/M=1/16 となるので、この約分結果を設定し、演算精度幅を節約した。本発明に係る圧縮処理装置の実施形態では、変形ベルヌーイ写像を遡る式の係数を、約分する。これにより演算の高速化を図っている。   Also, focusing on the slope coefficient of Equation (8), A / M = 8/16, (BA) / M = 4/16, (CB) / M = 2/16, (DB) / M = 1/16 , (MD) / M = 1/16, so if reduced, A / M = 1/2, (BA) / M = 1/4, (CB) / M = 1/8, (DB) / As M = 1/16 and (MD) / M = 1/16, the result of this reduction is set to save the range of calculation accuracy. In the embodiment of the compression processing apparatus according to the present invention, the coefficients of the equation that trace back the modified Bernoulli map are reduced. This is intended to speed up the operation.

このため、図25の最右列の欄に数値を記載して示すように、係数による割り算の余りが出ないようにするための拡大演算について、Aのときは2、Bのときは4、Cのときは8、Dのときは16、Eのときは16の倍数を指定して拡大する。前述していることではあるが、この拡大処理を行った後に式(8)の演算を実行する。   Therefore, as shown in the column of the rightmost column in FIG. 25 and indicated by numerical values, 2 for A, 4 for B, and so on, for the enlargement operation for preventing the remainder from being divided by the coefficient. Specify 8 for C, 16 for D, and multiples of 16 for E. As described above, after the enlargement process is performed, the operation of equation (8) is performed.

Xn(=X128)の最初の下限値として、 X128 = 0 を設定して図15のフローチャートを用いて演算を行う。最初のi=128からi=125までの4回分と、最後のi=2,i=1,i=0の3回分の演算結果を図25に示す。 Calculation is performed using the flowchart of FIG. 15 by setting X 128 = 0 as the first lower limit value of X n (= X 128 ). The calculation results of the first four calculations from i = 128 to i = 125 and the last three calculations of i = 2, i = 1, i = 0 are shown in FIG.

式(8)を反復演算し、得られた下限値となる初期値X0は、
下限X0 = 23733347491256793664341091291605177003932093283721057794934496021699944736
の74桁の整数値となる。これを2進数で表すと初期値X0は、以下の合計244[bit]のビット列になる。
1101011011101011111011001000111011111101011111010111101101100111010011000100110000010010010001011010100010100010000111010001001110110001011011111100011110110101100001001100011110001011001010001111100001000011101000100000001110001110000100100000
The initial value X 0, which is the lower limit obtained by iteratively operating equation (8), is
Lower limit X 0 = 2373334749125679634134109129150177003232093283721057794946021699944736
The 74-digit integer value of When this is represented by a binary number, the initial value X 0 becomes a bit string of the following 244 bits in total.
1101011011101011111011001001110111111101101101101101001110100111010010101101101001010100101011011011011111010011110101000100101100011011010011110001000100110001000100010001000100010001000100010001001001000100

他方、上限値となる初期値X0は、前述のように各傾き係数の使用回数による累乗を掛け算した" (1/2)64 (1/4)32 (1/8)16 (1/16)8 (1/16)8 "の値を差分として、上記下限値X0に足し算して得られる。ここでは、最初の最大演算精度幅が M = 16であること考慮し、傾き係数の分子を演算回数分掛け算すると
16 x 164 x 132 x 116 x 18 x 18 = 16となる。
これを先ほどの下限値に足し算すると10進数は、
上限X0 = 2373334749125679366434109129160517700393209328372105779493449602169994475 2
が得られる。
On the other hand, the initial value X 0, which is the upper limit value, is obtained by multiplying the power by the number of times of use of each slope coefficient as described above. (1/2) 64 (1/4) 32 (1/8) 16 (1/16 The lower limit value X 0 is obtained by adding the value of 8 (1/16) 8 "as a difference. Here, taking into consideration that the first maximum calculation accuracy range is M = 16, and multiplying the numerator of the slope coefficient by the number of calculations
16 x 1 64 x 1 32 x 1 16 x 1 8 x 1 8 = 16.
If this is added to the lower limit mentioned earlier, the decimal number is
Upper limit X 0 = 2373334749125679366341091291501770032320932837210577949449602169994475 2
Is obtained.

前記上限X0を2進数で表すと下限ビットに(10000)2 を足した合計244[bit]のビット列
1101011011101011111011001000111011111101011111010111101101100111010011000100110000010010010001011010100010100010000111010001001110110001011011111100011110110101100001001100011110001011001010001111100001000011101000100000001110001110000100110000
が得られる。
When the upper limit X 0 is represented by a binary number, a total of 244 [bit] bit strings obtained by adding (10000) 2 to the lower limit bit
1101011011101011111011001001110111111101101101101101001110100111010010101101101001010100101011011011011111010011101101000100011100110100101001111000100010011000100010001001100010001000100010001000100010001000100010001010
Is obtained.

最終的(i=0)に得られる最大演算精度幅をMXは、各傾き係数の分母の値の使用回数による累乗を掛け算して導出する。
ここでも、最初の最大演算精度幅が M = 16であることを考慮して、
MX = 16 x 264 x 432 x 816 x 168 x 168 = 24 x 264 x 264 x 248 x 232 x 232
= 24+64+64+48+32+32 = 2244
となる。
The maximum operation accuracy width finally obtained (i = 0) is derived by multiplying the power of the value of the denominator of each slope coefficient by the number of times of use.
Again, given that the first maximum precision range is M = 16,
MX = 16 x 2 64 x 4 32 x 8 16 x 16 8 x 16 8 = 2 4 x 2 64 x 2 64 x 2 48 x 2 32 x 2 32
= 2 4 + 64 + 64 + 48 + 32 + 32 = 2 244
It becomes.

下限X0と上限X0の区間について実数"0.0 〜 1.0"の区間への対応を考えると、前述したように下限X0と上限X0を最大区間で割り算することで得られる。最大演算精度幅は 2244 の2の乗数のため、上記の下限X0と上限X0の2進数ビット値を244ビット分右シフトした値になる。そして、上記ビット列の情報量は、244[bit]のため上記のビット列の頭に"0."をつけた値となる。 Given the response to intervals of the real "0.0-1.0" lower limit X 0 and upper X 0 of the section, it is obtained by dividing the lower limit X 0 and upper X 0 up to the interval as mentioned above. The maximum operation accuracy width is a value obtained by shifting the binary bit value of the lower limit X 0 and the upper limit X 0 to the right by 244 bits because the power of 2 244 is a power of 2. Then, the information amount of the bit string is a value obtained by adding “0.” to the head of the above bit string because it is 244 [bit].

圧縮コードは、下限X0と上限X0の中から一番短いビットを選ぶことになる。ここに、下限側は区間に含んでもよいため、下限X0の値をそのまま圧縮コードに割り当てることができる。ここで下限X0の下位5ビット分が全て"0"であるため、下位5ビットを取り除いた以下の数値となる。
11010110111010111110110010001110111111010111110101111011011001110100110001001100000100100100010110101000101000100001110100010011101100010110111111000111101101011000010011000111100010110010100011111000010000111010001000000011100011100001001
The compression code selects the shortest bit from the lower limit X 0 and the upper limit X 0 . Here, since the lower limit side may be included in the section, the value of the lower limit X 0 can be assigned to the compression code as it is. Here, since 5 bits lower limit X 0 are all "0", the following values obtained by removing the lower 5 bits.
11010110111010111110110010011101111111011011011011010011101001110100101011011010010101001010110110110111110100111101010001001011001101001010011000100010001000100010001000100010001000100110001010

上記の合計239[bit]分の数値が、図24の第1のファイルαの行方向欄における圧縮コードの列に示す圧縮コードである。このビットを10進数整数値で表すと、図24の第1のファイルαの横方向欄における「圧縮後初期値X0(10進数)」の列に示すように、初期値
X0 = 741667109101774802010659102862661781372877915116283056091703000678123273
となる。
The above-described numerical value of 239 [bit] in total is the compression code indicated in the column of the compression code in the row direction column of the first file α in FIG. When this bit is represented by a decimal integer value, as shown in the column of “initial value after compression X 0 (decimal number)” in the horizontal direction column of the first file α in FIG.
X 0 = 741667109101774802010659102862661781372877915116283056091703000678123273
It becomes.

圧縮後の圧縮データファイルに含まれるデータ内容の一例を図26に示す。図18に示したファィル内容と同じく、最初の行には初期値X0に相当する圧縮コード(図26では10進数)が記述され、2行目からは辞書領域(オーバーヘッド)となっており、各データパターンに関する情報が記述されている。本実施形態では、データパターンの種類が5種類であるから5行に亘って記述されている。各行には、そのデータパターンの存在個数に続いて、アンダースコア後にデータパターンの文字列が記述されている。図24に示すように、圧縮コードはバイナリにすると情報量は239ビットである。 An example of data contents included in the compressed data file after compression is shown in FIG. As in the file contents shown in FIG. 18, in the first line, a compressed code (decimal number in FIG. 26) corresponding to the initial value X 0 is described, and from the second line, it is a dictionary area (overhead) Information on each data pattern is described. In the present embodiment, the number of types of data patterns is five, so five rows are described. In each line, the character pattern of the data pattern is described after the underscore, following the number of the data patterns. As shown in FIG. 24, when the compression code is binary, the amount of information is 239 bits.

辞書領域(オーバーヘッド)分の容量は、各存在個数情報が上から64、32、16、8、8と表記されるため、これをバイナリにすると、64は(111111)2、32は(11111)2、16は(1111)2 、8は(111)2となる。これらの情報量としては、6ビット、5ビット、4ビット、3ビット、3ビットの合計21ビットとなる。各データパターンの情報量は、前述した各データパターンのバイト数を足すと、70バイト、ビット数では560ビットになり、合計21 + 560 = 581ビットとなる。これに圧縮コード239ビットを足し合わせることで伸長に最低限必要な情報量は581+239=820ビットとなる。バイト数で表すと切り上げて103バイトとなる。このため圧縮前の情報量は元のデータは1800バイトであり、圧縮後の情報量が103バイトであるから圧縮率は約5.7%である。 The capacity of the dictionary area (overhead) is expressed as 64, 32, 16, 8, 8 from the top of each existing quantity information, so if this is binary, 64 is (111111) 2 , 32 is (11111) 2 and 16 are (1111) 2 and 8 is (111) 2 . These information amounts are 21 bits in total of 6 bits, 5 bits, 4 bits, 3 bits and 3 bits. The amount of information of each data pattern is 70 bytes, and the number of bits is 560 bits when the number of bytes of each data pattern described above is added, and the total is 21 + 560 = 581 bits. By adding the compression code 239 bits to this, the minimum amount of information necessary for decompression becomes 581 + 239 = 820 bits. It is rounded up to 103 bytes in terms of the number of bytes. Therefore, the amount of information before compression is 1800 bytes for the original data, and the amount of information after compression is 103 bytes, so the compression ratio is about 5.7%.

図24の最も右側の列に参考として、オペレーティングシステムLinux(登録商標)でコマンドユーザインターフェース(CUI)として提供されている圧縮ツール " gzip "(Lempel-Zivとハフマン符号からなるアルゴリズム)と"bzip2"により同じファイルを圧縮した結果を示す。本実施形態に係る変形ベルヌーイ写像による圧縮については、辞書領域や圧縮コードの格納方法などプロトコルを決めることで実際は伸長に必要なデータを最小限で見積もったものより大きくなるが、圧縮後のデータ量は" gzip "の約半分になっている。   The compression tool "gzip" (algorithm consisting of Lempel-Ziv and Huffman code) and "bzip2" provided as a command user interface (CUI) in the operating system Linux (registered trademark) for reference in the rightmost column of FIG. Indicates the result of compressing the same file. The compression by the modified Bernoulli mapping according to the present embodiment is actually larger than the minimum estimated data necessary for decompression by determining the protocol such as the dictionary area and the storage method of the compressed code, but the amount of data after compression Is about half of "gzip".

次に、図19に示したフローチャートによる手順によって、式(7)を用いて伸長処理を行うと、次のようになる。初期パラメータ設定は、図26に示されている圧縮のイメージの辞書領域のデータを用いて、累積頻度A=64, B=96, C=112, D=120, M=128として設定することができる。また、傾き係数パラメータ M/A, M/(B-A), M/(C-B), M/(D-C), M/(M-D) は、128/64, 128/32, 128/16, 128/8, 128/8、であるが、約分することで、
( M/A, M/(B-A), M/(C-B), M/(D-C), M/(M-D) ) = ( 2, 4, 8, 16, 16 )
が得られる。
Next, when the extension processing is performed using the equation (7) according to the procedure of the flowchart shown in FIG. The initial parameter settings can be set as cumulative frequency A = 64, B = 96, C = 112, D = 120, M = 128 using data of the dictionary area of the compressed image shown in FIG. it can. The slope coefficient parameters M / A, M / (BA), M / (CB), M / (DC) and M / (MD) are 128/64, 128/32, 128/16, 128/8, 128/8, but by dividing it,
(M / A, M / (BA), M / (CB), M / (DC), M / (MD)) = (2, 4, 8, 16, 16)
Is obtained.

圧縮コードは、初期値X0に設定される。閾値となるPA, PB, PC,PDについては、初期値X0の情報から、最大演算精度幅 (1.0000…)2 を239ビット左シフトしてMXとして求めると
MX = 883423532389192164791648750371459257913741948437809479060803100646309888
が得られる。
Compressed code is set to an initial value X 0. If PA, PB, PC, and PD, which are threshold values, are calculated by shifting the maximum calculation accuracy width (1.0000 ...) 2 to the left by 239 bits from the information of the initial value X 0 , it is determined as MX.
MX = 88324235238919216479164750147257179137194843780949060803100646309888
Is obtained.

図27に示すように、初期値X0は16倍、累積頻度の区間の比率からPA=8, PB=12, PC=14, PD=15が与えられ、それぞれMX倍に拡大処理を行うことで初期値X0と累積頻度区間の比率が得られる。これらの値は、以下のようである。
PA = 7067388259113537318333190002971674063309935587502475832486424805170479104
PB = 10601082388670305977499785004457511094964903381253713748729637207755718656
PC = 12367929453448690307083082505200429610792387278129332706851243409048338432
PD = 13251352985837882471874731255571888868706129226567142185912046509694648320
As shown in FIG. 27, the initial value X 0 is given by 16 times, and the ratio of the cumulative frequency section is given by PA = 8, PB = 12, PC = 14, PD = 15, and enlargement processing is performed by MX times respectively. The ratio between the initial value X 0 and the cumulative frequency interval can be obtained. These values are as follows.
PA = 70673882591135373183331900020001671674063309935587502475832486424805047104
PB = 10601082388670305977 799785 00445511049649033812537137429637207576565
PC = 123679294534690030308250250200429610792387278129332706851243409048338432
PD = 1325135298583888247187 1251 551888868706129226571142185120465094648320

以上の初期パラメータを式(7)に設定し、変形ベルヌーイ写像の反復演算を行う。第1のファイルαでの伸長処理の過程について、最初3回分と最後3回分を図28に抜粋して示す。図28ではXi < PAの場合には "a"を出力し、PA ≦ Xi < PBでは"b"を出力し 、PB ≦ Xi < PCでは"c"を出力し 、PC ≦ Xi < PDでは"d"を出力し 、PD ≦ Xi では"e" を出力する。127 (n-1) 回の反復処理を行うことでデータが伸長(復号)されて伸長コードが出力される。図28を参照すると、第1のファイルαの最初の3つのデータ列(cbc)と最後の3つのデータ列(bab)に図24の結果が一致していることが確認できる。なお、本実施形態では、データパターンが2文字以上のものを用いたが、データパターンの検索アルゴリズムとして文字列を巡回させるブロックソートを用いることが考えられる。 The above initial parameters are set in equation (7), and iterative operations of the modified Bernoulli map are performed. The first three batches and the last three batches of the first file α are extracted and shown in FIG. In FIG. 28, "a" is output when X i <PA, "b" is output when PA X X i <PB, and "c" is output when PB X X i <PC, and PC X X i <outputs PD in "d", and outputs the "e" in PD ≦ X i. Data is expanded (decoded) by performing 127 (n−1) times of iterative processing, and an expanded code is output. Referring to FIG. 28, it can be confirmed that the first three data strings (cbc) of the first file α and the last three data strings (bab) match the result of FIG. In the present embodiment, although the data pattern uses two or more characters, it is conceivable to use block sorting in which a character string is circulated as a data pattern search algorithm.

<実施形態5 頻度が等しくランダムなデータの圧縮>
実施形態3では、データパターンの頻度(度数)を変形ベルヌーイ写像の傾きパラメータとして設定を行っている。これは算術符号もデータパターンの頻度として設定する点で同じである。従来の一般的な可逆圧縮アルゴリズムでは、頻度が等しくランダムなデータ列に圧縮を行っても効果が得られなく、辞書領域分を含めるとデータ容量が元のデータ容量より大きくなってしまうといった問題がある。
Fifth Embodiment Compression of Random Data with Equal Frequency>
In the third embodiment, the frequency (frequency) of the data pattern is set as the slope parameter of the modified Bernoulli map. This is the same in that the arithmetic code is also set as the frequency of the data pattern. In the conventional general lossless compression algorithm, no effect is obtained even if compression is performed on a random data string with equal frequency, and the data capacity becomes larger than the original data capacity if the dictionary area is included. is there.

この問題に対して考察する。図7、図8に鑑みると、頻度となる傾き"p"を変更した場合でも各領域に対応する傾きpと初期値x0を選択すれば同じビット列が得られることが明らかになった。これまでは、傾き"p"は頻度(出現確率)により決定する手法が採用されていた。これに対し、より少ないビット列の情報によって伸長コードを得ることができるような、該当領域内の傾きpと初期値x0を探索することができるならば、圧縮率を大きくすることが可能である。 We will consider this problem. In view of FIGS. 7 and 8, it is clear that the same bit string can be obtained by selecting the slope p and the initial value x 0 corresponding to each area even when the slope "p" that is the frequency is changed. So far, the method of determining the slope "p" by the frequency (appearance probability) has been adopted. On the other hand, if it is possible to search for the slope p and the initial value x 0 in the corresponding area such that the decompression code can be obtained by using less bit string information, the compression ratio can be increased. .

例えば、符号"0"と"1"の頻度が等しく、ランダムな32ビット分のデータ列
"11000001101011010101101100100011"(16進数で表すと" C1AD5B23")を用意する。データ パターンが2種類("1"か"0")の場合、式(1)と式(2)の整数化演算式として、以下に示す式( 9)式(10)を用いることにする。圧縮時は式(10)を用い、伸長時は式(9)を用いる。
For example, a random 32-bit data string with equal frequency of code "0" and "1"
Prepare “110000011010101010101101000101” (in hexadecimal, “C1AD5B23”). When the data pattern is of two types ("1" or "0"), the following equation (9) and equation (10) are used as the integerization operation equation of equations (1) and (2). At the time of compression, equation (10) is used, and at the time of extension, equation (9) is used.

Figure 2019047450
Figure 2019047450

Figure 2019047450
Figure 2019047450

図15で示したアルゴリズムにて、上記の2値のデータの圧縮処理を行う。AとBの頻度はともに16となり、合わせると32ビット分のデータになる。ここで、式(10)の傾きはA/M = 16/32 = 1/2、(M-A)/M = 16/32 = 1/2(実数ではp=0.5)になり、始めにPA=1、下限X32=0を設定して式(10)により圧縮処理を行うと図29に示すように演算値XiとPAの値が遷移し、下限X0
下限X0 = 6498727494が得られる。これを2進数ビット列で表すと、
110000011010110101011011001000110
になる。
The above binary data is compressed by the algorithm shown in FIG. The frequencies of both A and B are 16, and the total data is 32 bits. Here, the slope of equation (10) is A / M = 16/32 = 1/2, (MA) / M = 16/32 = 1/2 (p = 0.5 for real numbers), and PA = 1 at the beginning When compression processing is performed according to equation (10) by setting the lower limit X 32 = 0, the values of the calculated values X i and PA transition as shown in FIG. 29, and the lower limit X 0 gives the lower limit X 0 = 6498727494. . If this is expressed as a binary bit string,
1100000110101101010110101001000110
become.

上限X0について、開始時には最大演算幅 M = 2 であることを考慮して、傾きの分子の掛け算より差分は、2 x (1)32 = 2となる。そこで、この差分を下限X0に足すと、
上限X0 = 6498727496が得られ2進数ビット列は、
110000011010110101011011001001000
が得られる。
Regarding the upper limit X 0 , the difference is 2 x (1) 32 = 2 by multiplication of the numerator of the slope in consideration of the fact that the maximum operation width M = 2 at the start. Therefore, if this difference is added to the lower limit X 0 ,
The upper limit X 0 = 6498727496 is obtained and the binary bit string is
110000011010110101011011001001000
Is obtained.

この区間に上限X0は含まれないため、この区間内における最小数ビットとしては下限X0が選択され、下位1ビットが0であるため、この下位1ビット"0"を取り除くことで圧縮コードは32ビット分の以下の値となる。
11000001101011010101101100100011
これを、10進数で表すと"3249363747"となる。
Since the upper limit X 0 is not included in this section, the lower limit X 0 is selected as the minimum number of bits in this section, and the lower 1 bit is 0. Therefore, the compression code is obtained by removing the lower 1 bit "0". Is less than or equal to 32 bits.
1100000110101101010110101000011
This is expressed as "3249363747" in decimal notation.

この例では、圧縮コードが圧縮前のデータ列と同じになったが、図5と図6と図7を参照すると判るように、図7の"p = 0.5"における縦軸の初期値x0の区間幅は、それぞれのデータ列で均等に分割されている。また、図5では"p = 0.5"であり、横軸の初期値x0の区間幅が均等に分けられおり、それぞれの区間内からベルヌーイ写像を行ったときの生成されるコードが図6に示されている。データ列として初期値x0を与え、圧縮処理で求められる図7における"p = 0.5"の縦軸の初期値x0の区間幅は、図5における横軸の区間幅と等しくなっている。つまり"p = 0.5"にて圧縮前のデータ列として初期値x0が与えられると、圧縮処理で求めた初期値x0が同じになる場合があるためである。 In this example, the compression code is the same as the data string before compression, but as can be seen with reference to FIGS. 5, 6 and 7, the initial value x 0 of the vertical axis at “p = 0.5” in FIG. The interval width of is evenly divided by each data string. Also, in FIG. 5, "p = 0.5", and the section width of the initial value x 0 on the horizontal axis is equally divided, and the code generated when Bernoulli mapping is performed from each section is shown in FIG. It is shown. Giving an initial value x 0 as a data string, the section width of the initial value x 0 of the vertical axis of the "p = 0.5" in FIG. 7 obtained in the compression process is equal to the section width of the horizontal axis in FIG. That is, when "p = 0.5" initial value x 0 as a data string before compression at given, the initial value x 0 obtained in the compression process there may be a case that the same.

この圧縮後の圧縮データファイルに含まれるデータ内容が図30に示すようになる。図30(a)は10進数の表記であり、図30(b)は2進数による表記である。ここで圧縮コードは、バイナリにすると情報量は32ビットであり、"0"と"1"の各個数は、上から16、16となる。このため、これをバイナリ(16は(1111)2 を割り当てる)にすると情報量として合計8ビット、データパターン情報となる"0"と"1"は1ビット+1ビットのため合計2ビットとなる。これらから伸長に最低限必要な情報量は、32+8+2=42ビットとなる。この情報を辞書領域に保持させることが必要で、元(圧縮前)の32ビットの情報量より10ビット分だけ情報量が大きくなり、圧縮の効果が得られないものとなる。 The contents of data contained in the compressed data file after compression are as shown in FIG. FIG. 30 (a) is a decimal notation, and FIG. 30 (b) is a binary notation. Here, when the compression code is binary, the amount of information is 32 bits, and the numbers of “0” and “1” are 16, 16 from the top. Therefore, if this is binary (16 assigns (1111) 2 ), the total amount of information is 8 bits, and “0” and “1” as data pattern information become 2 bits in total because 1 bit + 1 bit. From these, the minimum amount of information necessary for decompression is 32 + 8 + 2 = 42 bits. This information needs to be held in the dictionary area, and the amount of information becomes larger by 10 bits than the original (pre-compression) 32-bit amount of information, and the effect of compression can not be obtained.

以上の処理例は、図7、図8において傾きをp=0.5とし、初期値x0の半開区間を求めたものである。ここで、傾きを"p = 0.4375"(2進数では(0.0111)2 )に変更して、同じ32ビット分のパターン"11000001101011010101101100100011"について、式(10)による圧縮処理を実行してみる。 In the above processing example, the slope is set to p = 0.5 in FIGS. 7 and 8, and the half open interval of the initial value x 0 is obtained. Here, the inclination is changed to “p = 0.4375” (in binary, (0.0111) 2 ), and the compression process according to equation (10) is executed for the pattern “11000001101011010101101100100011” for the same 32 bits.

上記の傾きpは、整数ビットでは(0111)2となり、10進数では、"7"となるため、式(10)の傾きは A/M=7/16(=傾きp)であり、(M-A)/M=9/16と設定して、下限X32=0から始めて、図19のフローチャートにて圧縮を実行した結果の遷移状態を図31に示す。
求められた下限X0は、
下限X0 = 3743106035727648088261746893080105275376となり、
上限X0は、下限X0に差分16 x 716 x 916 = 985300660482914638629239767056を足した以下の値となる。
上限X0 = 3743106036712948748744661531709345042432
The above slope p is (0111) 2 for integer bits and "7" for decimal numbers, so the slope of equation (10) is A / M = 7/16 (= slope p), (MA The transition state of the result of execution of the compression in the flowchart of FIG. 19 starting from the lower limit X 32 = 0, with the setting of / M = 9/16, is shown in FIG.
The lower limit X 0 determined is
The lower limit X 0 = 3743 10 60 357 276 480 88 26 1 46 89 308 0105 275 376
The upper limit X 0 becomes the following value to the lower limit X 0 plus differential 16 x 7 16 x 9 16 = 985300660482914638629239767056.
Upper limit X 0 = 374310603671294874874466153170934504232

下限X0と上限X0をビットで表すとX0の区間は、
下限X0 =
101011111111111111111111111111111010111010101110001100001001111010001000101100010101010010110000101111100100110100110100111111110000
上限X0=
101100000000000000000000000000000111010110101001000010100100100000001110010001101000010011110011110100011001010010110001000000000000
となり、小数点32桁までの10進数の実数にすると、
0.68749999992604027276854594674660…≦X0≦ 0.68750000010701139974145235100877…
となる。この半開区間内の最小限で表せられるビット値の初期値X0は、(1011)2の4ビット( 0.0〜1.0間の実数は2進数で(0.1011)2となり10進数では0.6875)となる。
When the lower limit X 0 and the upper limit X 0 are represented by bits, the section of X 0 is
Lower limit X 0 =
1010111111111111111111111111111101101101011100010001001110100011000101010101010010110000111100111100110011111110,000
Upper limit X 0 =
10 10000 10 000 000 000 000 000 000 000 0 0 01 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TO THE
And a decimal real number up to 32 decimal places,
0.68749999992604027276854594674660 ... X X 0 0.6 0.6875000001070113994145235100877 ...
It becomes. The initial value X 0 of the minimum bit value represented in this half open interval is 4 bits of (1011) 2 (a real number between 0.0 and 1.0 is (0.1011 2 ) in binary and 0.6875 in decimal).

先に傾きp = 0.5として求めた圧縮コードにおいて、初期値X0は情報量32ビットであった。これに対し、傾きをp = 0.4375に変更して圧縮処理を行った場合では、圧縮コードにおいて、初期値X0の情報量4ビット分となり比較して28ビット分削減されている。 In the compression code previously obtained as the slope p = 0.5, the initial value X 0 is 32 bits of information. In contrast, in the case of performing compression processing by changing the slope in p = 0.4375, the compressed code is made with the information of 4 bits of the initial value X 0 reduction compared to 28 bits.

ただし、傾きp=0.5は情報量1ビットであったが、傾きp=0.4375は4ビットであり、3ビット分増加している。図32に、圧縮後の圧縮データファイルに含まれるデータ内容を示す。図32(a)は10進数の表記であり、図32(b)は、2進数ビット値に展開して表現したものである。図32の1行目は初期値X0に相当する圧縮コードであり、2行目は圧縮前の元データへ伸長するために必要な写像の回数、3行目は傾きパラメータA/M("A=7")とデータパターン("0")、4行目は傾きパラメータ("(M-A)/MのM-A=9") とデータパターン("1")を示している。 However, although the slope p = 0.5 is 1 bit of information amount, the slope p = 0.4375 is 4 bits and is increased by 3 bits. FIG. 32 shows data contents included in the compressed data file after compression. FIG. 32 (a) is a decimal notation, and FIG. 32 (b) is a binary bit value which is expressed. The first line in FIG. 32 is a compressed code corresponding to the initial value X 0 , the second line is the number of times of mapping required to decompress the original data before compression, and the third line is the slope parameter A / M (" A = 7 ") and the data pattern (" 0 "), and the fourth line indicates the slope parameter (" (MA) / M of MA = 9 ") and the data pattern (" 1 ").

情報量については、圧縮コードである初期値X0は4ビット、伸長に必要な写像の回数の情報量は5ビット、傾きA/Mが4ビット、データパターン"0"は1ビット分、傾き(M-A)/Mが4ビット、データパターン"1"は1ビット分となり、これらから伸長に最低限必要な情報量は、4+5+4+1+4+1=19ビットになるため、圧縮前の32ビットと比べると13ビット分少なくなり(圧縮率59.375%)、"p = 0.5"のとき(42ビット)と比べても圧縮の効果が得られている。 Regarding the amount of information, the compression code initial value X 0 is 4 bits, the amount of information on the number of mapping times required for expansion is 5 bits, the slope A / M is 4 bits, the data pattern "0" is 1 bit, the slope (MA) / M is 4 bits, data pattern "1" is 1 bit, and the minimum necessary information amount for expansion is 4 + 5 + 4 + 1 + 4 + 1 = 19 bits, 13 bits compared to 32 bits before compression The compression effect is obtained even when the compression ratio is 59.375%, compared to when “p = 0.5” (42 bits).

また、この例の可逆圧縮のプロトコルが、データパターンはビット2値(符号長1)のみと定めている場合には、伸長に必要な情報は初期値X0 = (1011)2、傾きA=(0111)2、伸長後のデータ容量(写像回数)n=32=(11111)2 が判れば良いため、最小限必要なデータ量は、4+4+5=13ビット分あれば32ビット分の容量を復元することができ、圧縮率は40.625%となる。 In addition, when the lossless compression protocol of this example determines that the data pattern is only binary bits (code length 1), the information necessary for expansion has an initial value X 0 = (1011) 2 and a slope A = (0111) 2, since the data capacity after elongation (map number) n = 32 = (11111) 2 may be known, the minimum required amount of data, restores the 32-bit capacity, if 4 + 4 + 5 = 13 bits The compression rate is 40.625%.

ここでパーソナルコンピュータのツールとして使えるような具体例として、データパターンはビット2値(符号長1)のみ扱うと定めて、圧縮ファイルを1つのファイルとしてまとめるプロトコルを考える。例えば、圧縮ファイルの最初の2バイト分を圧縮前ファイルの容量情報として1〜65536ビット(1〜8192バイト)までの圧縮前ファイル容量が可能な対象とする。従って、65537ビット以上の圧縮前ファイルはプログラムでエラー処理する。圧縮ファイルの次の2バイトは傾き"p"を出現確率に割り当てる。具体的には、圧縮前のファイル容量中のデータパターン"0"をカウントした個数を出現確率として、傾き"p"とする情報を入れる。カウント値は必ず65536以下になる。また、本実施形態5のように、傾き"p"を変更することで初期値X0とする圧縮コードの情報量を少なくできる効果を得る構成を採用する場合には、傾き"p"を16ビットパターンまで変更(試行)できるものとして2バイト分を使用することも考えられる。傾き"p"はどのような値でも初期値X0を導出できる。 Here, as a specific example that can be used as a tool of a personal computer, a data pattern is defined to handle only binary bits (code length 1), and a protocol is considered in which compressed files are combined into one file. For example, the first two bytes of the compressed file are used as the uncompression file capacity of 1 to 65,536 bits (1 to 8192 bytes) as capacity information of the file before compression. Therefore, an uncompressed file of 65,537 bits or more is error-processed by the program. The next two bytes of the compressed file assign a slope "p" to the probability of occurrence. Specifically, the information having a slope "p" is entered, with the number of data patterns "0" counted in the file capacity before compression being counted as the appearance probability. The count value always falls below 65,536. Further, as in the fifth embodiment, in the case of adopting a configuration in which the information amount of the compression code to be the initial value X 0 can be reduced by changing the inclination "p", the inclination "p" is 16 It is also conceivable to use two bytes as one that can be changed (or attempted) to a bit pattern. The slope "p" can derive an initial value X 0 with any value.

圧縮ファイルの5バイト目以降には、圧縮コードとなる初期値X0をセットする。このため、最初の4バイト分が辞書領域になる。伸長処理では最初2バイトからベルヌーイ写像の反復の回数(圧縮前ファイル容量)の情報を得て、次の2バイトで傾き"p"(式(9)ではA)の情報を得て、5バイト目以降から初期値X0を取得し、これらを初期設定して変形ベルヌーイ写像を行い圧縮前のデータ戻すといったプロトコルを考えることができる。 In the fifth and subsequent bytes of the compressed file, an initial value X 0 which is a compressed code is set. Therefore, the first four bytes become the dictionary area. In the decompression process, information on the number of iterations of Bernoulli mapping (file size before compression) is obtained from the first 2 bytes, and information on the slope "p" (A in equation (9)) is obtained in the next 2 bytes, and 5 bytes It is possible to think of a protocol in which initial values X 0 are acquired from the eye and thereafter, these are initialized, and a modified Bernoulli mapping is performed to return data before compression.

このように構成したデータ列の例によって、情報を符号化圧縮する場合の圧縮の限界を示す情報源符号化定理を確認する。情報エントロピーH(ビット)は次の定義式である式(11)により与えられる。   The source coding theorem which shows the limit of compression in encoding and compressing information is confirmed by the example of the data string configured in this way. The information entropy H (bit) is given by the following definition equation (11).

Figure 2019047450
Figure 2019047450

また、"pi"は符号の出現確率、"M"がデータパターンの事象(種類)の数である。
例に示した32ビット分のデータ列 "11000001101011010101101100100011"では符号は"0"と"1"の2種類(符号長1)であり、"M = 2"となり、データパターンの出現確率は"0"が" 16/32=1/2"、 "1"が" "16/32=1/2"となるため、情報エントロピーHは以下の式(12)のようになる。
Also, “p i ” is the appearance probability of the code, and “M” is the number of events (types) of the data pattern.
In the 32-bit data string "110000011010110101011011010001" shown in the example, the code is two types of "0" and "1" (code length 1), "M = 2", and the appearance probability of the data pattern is "0". Since “16/32 = 1/2” and “1” become “16/32 = 1/2”, the information entropy H is as shown in the following equation (12).

Figure 2019047450
Figure 2019047450

このデータ列で符号は"0"と"1"の2種類(符号長1)と考えた場合、平均符号長を1ビット以下にすることができなく、情報量は32ビットのためこのデータ列を表すには "32 x 1 = 32ビット" 以上が必要になることを示している。平均符号長については平均符号長をLとすると
平均符号長L= ( 符号の長さ x 出現確率 )の和
で求められ、例示したデータ列では符号は"0"と"1"と考えると、符号の長さはそれぞれ"1"、出現確率は、"1/2(=16/32)"のため
L = (1 x 1/2) + (1 x 1/2) = 1
となり、平均符号長Lは1ビットとなっている。
In this data string, if the code is considered to be two types of “0” and “1” (code length 1), the average code length can not be made 1 bit or less, and the amount of information is 32 bits. It indicates that "32 x 1 = 32 bits" or more is required to represent. For the average code length, assuming that the average code length is L, it is obtained by the sum of the average code length L = (code length x appearance probability), and in the exemplified data sequence, the codes are "0" and "1". Because the length of the code is “1” and the occurrence probability is “1/2 (= 16/32)”
L = (1 x 1/2) + (1 x 1/2) = 1
The average code length L is 1 bit.

情報源符号化定理では、平均符号長Lは情報エントロピーHよりも小さくできないとされ、不等式 "H ≦ L" が成り立ち符号化データ圧縮の限界を示している。例示したデータ列を2ビット区切りのブロック(符号長2)として解して、データ列をコンマで区切ると、"11, 00, 00, 01, 10, 10, 11, 01, 01, 01, 10, 11, 00, 10, 00, 11"となる。
それぞれの符号を数えると"00"は4つ、"01" は4つ、"10"は4つ、"11"は4つとなっているため、情報エントロピーHは符号の出現確率piがそれぞれ"1/4"、事象(種類)Mは4つのため、次の式(13)として求められる。
According to the information source coding theorem, the average code length L can not be made smaller than the information entropy H, and the inequality “H ≦ L” holds and indicates the limit of coded data compression. If the illustrated data string is interpreted as a 2-bit block (code length 2) and the data string is separated by commas, “11, 00, 00, 01, 10, 11, 11, 01, 01, 01, 10 , 11, 00, 10, 00, 11 ".
Since each code has four "00s", four "01s", four "10s" and four "11s", the information entropy H has an appearance probability pi of each code p Since “1⁄4” and the event (type) M are four, they are obtained as the following equation (13).

Figure 2019047450
Figure 2019047450

上記式(13)に示す通り、情報エントロピーHは2ビットとなる。ここで、データ列は2ビットずつ16個分あるため、このデータ列を表すには "16 x 2 = 32ビット" 以上が必要になることを示している。また、平均符号長Lについて符号は、"00"、 "01"、 "10"、 "11"であるから、符号の長さはそれぞれ"2"、出現確率はそれぞれ" 1/4 (=4/16) "のため、 L = (2 x 1/4) + (2 x 1/4) + (2 x 1/4) + (2 x 1/4) = 2
となり平均符号長Lは2ビットとなる。データ列を4ビットのブロックに区切った場合も同様に、16進数で表すと" C1AD5B23"となり、各符号は、1回ずつの出現確率のため情報エントロピーは、H=4、平均符号長L=4となり"H ≦ L"の関係となる。
As shown in the above equation (13), the information entropy H is 2 bits. Here, since there are 16 data strings of 2 bits each, it is shown that "16 x 2 = 32 bits" or more is required to represent this data string. In addition, since the codes for the average code length L are "00", "01", "10", and "11", the length of the code is "2" and the probability of occurrence is "1/4 (= 4 16) for "L = (2 x 1/4) + (2 x 1/4) + (2 x 1/4) + (2 x 1/4) = 2
And the average code length L is 2 bits. Similarly, when the data string is divided into 4 bit blocks, it can be expressed as “C1AD5B23” in hexadecimal notation, and each code has H = 1 and average code length L = H = 4 because the appearance probability of each code is once. It becomes 4 and becomes a relation of "H <= L".

以上から本実施形態に係る変形ベルヌーイ写像による手法は、符号長1としたときに32ビットの情報量を13ビットに圧縮できることが判る。このような結果によると、平均符号長は"13/32 = 0.40625ビット" となるため、本実施形態に係る手法は、符号化圧縮(ハフマン符号、Lemple-Ziv)と異なる算術式であり圧縮率をより大きくできる利点を有している。   From the above, it is understood that the method by the modified Bernoulli mapping according to the present embodiment can compress the information amount of 32 bits to 13 bits when the code length is 1. According to these results, since the average code length is "13/32 = 0.40625 bits", the method according to the present embodiment is an arithmetic expression different from the coding compression (Huffman code, Lemple-Ziv) and the compression rate Has the advantage of making the

伸長処理では、辞書領域から必要なパラメータを式(9)に読み込む。初期値 X0 = 11 = (1011)2、傾きM/Aは2進数小数点(0.0111)2になるため、Mは(1.0000)2を4ビット左シフトして得られる整数値 M = 16のためM/A = 16/7になる。傾きはM/(M-A) = 16/9になる。これら初期パラメータをセットして、伸長(復号)後のデータ量となる写像回数32を読み込む。実際には、前述したように伸長時の写像回数は"n-1"回で復元できるため、31回である。以上の準備が整うと、図19のフローチャートに示す処理手順にて式(9)による伸長(復号)処理を行うことで圧縮前のデータ列である伸長コードが出力される。この伸長処理の過程を図33に示す。 In the decompression process, necessary parameters are read from the dictionary area into equation (9). Since the initial value X 0 = 11 = (1011) 2 and the slope M / A is a binary decimal point (0.0111) 2 , M is an integer value M = 16 obtained by left-shifting (1.0000) 2 by 4 bits. M / A = 16/7. The slope is M / (MA) = 16/9. These initial parameters are set, and the number of mappings 32 which is the amount of data after expansion (decoding) is read. In practice, as described above, the number of times of mapping at the time of expansion can be restored by “n−1” times, so it is 31 times. When the above preparation is completed, the expansion (decoding) process according to the equation (9) is performed according to the processing procedure shown in the flowchart of FIG. The process of this extension process is shown in FIG.

以上、頻度が等しくランダムなデータに対しても、傾きpを変更することで圧縮の効果が得られることを示した。これについては、特開2010−237735号公報には、変形テント写像は乱数生成に有効であることが紹介されている。これに対し、本実施形態は、変形ベルヌーイ写像を逆にたどる(遡る)圧縮アルゴリズムを用いて乱数生成シードを求め、そのシードから元のデータ列を出力できる構造とした点が特徴となっている。本実施形態に係る可逆圧縮手法は、圧縮コードとして情報量が少なくなる適切なシードを設定すれば、情報エントロピーの高いデータについても圧縮効果が得られることを狙いとする。   As described above, it has been shown that the effect of compression can be obtained by changing the slope p even for data of equal frequency and randomness. About this, it is introduced by Unexamined-Japanese-Patent No. 2010-237735 that a deformation | transformation tent map is effective in random number generation. On the other hand, the present embodiment is characterized in that a random number generation seed is obtained using a compression algorithm that reverses (backs up) the modified Bernoulli map, and the original data string can be output from the seed. . The lossless compression method according to the present embodiment aims at obtaining a compression effect even for data with high information entropy by setting an appropriate seed that reduces the amount of information as a compression code.

上述した本実施形態の説明から、データパターンが3種類でデータパターンの頻度が等しくランダムで圧縮効果が得られないデータ列の場合でも、図14に3次元の初期値集合を示したように初期値x0のビット数がより小さくなるような傾きpaと傾きpbの組み合わせを3次元の集合の中から求めることで、圧縮効果があるデータを得ることが推測される。
従って、データパターンがN種類からなる頻度が等しくランダム性が高いデータ列の場合にも、前述したようにN次元の集合からより情報量が少なくなる傾きパラメータ群と初期値x0の組み合わせを選択することによって、情報エントロピーが高いデータでも圧縮を高くできる効果が得られることが期待できる。
From the description of the present embodiment described above, even in the case of a data string in which the data pattern is three types, the frequency of the data pattern is equal, and the compression effect is not obtained randomly, as shown in FIG. by obtaining the combination of inclination pa and tilt pb such as the number of bits the value x 0 becomes smaller from three-dimensional set, it is estimated to obtain data that compression effect.
Therefore, even in the case of a data string having an equal frequency of N types of data patterns and high randomness, as described above, a combination of an inclination parameter group and an initial value x 0 for which the amount of information is smaller is selected By doing this, it can be expected that the effect of being able to increase the compression can be obtained even for data with high information entropy.

頻度として設定していた傾き"p"を変更する場合には、変更した傾き"p"によって、圧縮効果が上がるかどうか調べていく工程が発生するため、手間がかかる。しかしながら、圧縮処理では圧縮率を高めることのできる効果的な傾きパラメータを探索できることにより 、圧縮後のデータ量をより小さくできることがメリットとなる。   When changing the inclination "p" which has been set as the frequency, a process of checking whether the compression effect is increased occurs due to the changed inclination "p", which takes time and effort. However, in the compression processing, since it is possible to search for an effective inclination parameter that can increase the compression rate, it is advantageous that the data amount after compression can be made smaller.

探索方法としては、傾きpをビット数が少ないものから二分探索法で圧縮効果があるかを調べていく手法が考えられる。例えば、p=0.5より、p=0.75と0.25の場合のx0の下限と上限を計算し、次はp=0.875,p=0.625,p=0.375,p=0.125の場合のx0の区間を調べ、圧縮効果がある場合はその値を採用するといったアルゴリズムが考えられる。 As a search method, it is conceivable to check whether there is a compression effect by a binary search method from a gradient p having a small number of bits. For example, from p = 0.5, to calculate the lower and upper x 0 in the case of p = 0.75 and 0.25, the next p = 0.875, p = 0.625, p = 0.375, the interval x 0 in the case of p = 0.125 An algorithm can be considered such as examining and adopting the value if there is a compression effect.

本実施形態に係る圧縮処理装置は、図1に示すように、圧縮コード生成手段120により生成された圧縮コードの伸長コードに対する圧縮率を求める圧縮率算出手段130を備え、上記圧縮率算出手段130により算出された圧縮率が所定値よりも大きい場合に、変形ベルヌーイ写像を遡る式の係数を変更して圧縮コードを求める処理を行う。ここでは、二分探索法により新たな係数を求めて係数を変更し、圧縮コードを求める処理を行う。   The compression processing apparatus according to the present embodiment, as shown in FIG. 1, includes a compression ratio calculation unit 130 for calculating a compression ratio for the decompression code of the compression code generated by the compression code generation unit 120, and the compression ratio calculation unit 130. When the compression ratio calculated by the above is larger than a predetermined value, the coefficient of the equation which traces back the modified Bernoulli map is changed to obtain the compression code. Here, new coefficients are obtained by the binary search method, the coefficients are changed, and processing for obtaining the compression code is performed.

伸長処理においては、算術符号では区間を再分割するといった圧縮と同じ過程を繰り返す必要があるが、本実施形態の手法では変形ベルヌーイ写像を一意的に演算しながらデータ列を出力して行くため、圧縮処理と比較して計算量を小さく伸長処理が行えるという効果が期待できる。このため、圧縮は高性能なサーバで処理を行い、通信トラフィックを削減してネットワーク上に分配することにより、比較的処理能力が低い携帯端末で伸長(復号)する形態に好適となる。   In the decompression process, it is necessary to repeat the same process as compression, such as repartitioning an interval in arithmetic code, but in the method of the present embodiment, a data sequence is output while computing a modified Bernoulli map uniquely. Compared with the compression processing, the effect that the expansion processing can be performed with a small amount of calculation can be expected. For this reason, compression is processed by a high-performance server, and communication traffic is reduced and distributed over the network, which is suitable for a mode in which decompression (decoding) is performed by a portable terminal with relatively low processing capability.

<実施形態6 変形ベルヌーイ写像を遡る圧縮の場合の高速化アルゴリズム>
コンピュータで扱う数値はディジタル(離散)値になるため、圧縮処理における各パラメータ遷移を示した図16に明らかなように、演算を積み重ねることで桁数が増えていき演算の時間とコストが増大してしまう。実施形態4で示したデータ列"a b a a b a c"について、最後尾の "c"の次にもう一つ"c"をパディングすることで演算の省力化・高速化を図る実施形態を示す。
<Sixth Embodiment Acceleration Algorithm in the Case of Compression Going Back on Modified Bernoulli Map>
Since numerical values handled by the computer are digital (discrete) values, as is clear from FIG. 16 showing each parameter transition in the compression process, stacking the operations increases the number of digits and the operation time and cost increase. It will In the data string “abaabac” shown in the fourth embodiment, another embodiment “c” after the last “c” is added to “c” to save power and speed up the operation.

式(6)を用いて、データ列"abaabacc"に対し圧縮処理を行う。データ列"abaabacc" の総数は8個になるため"n = 8"となり、式(6)のMは “M = 8"に設定される。ここで、データパターンの頻度は、"a"が4個であるため"A = 4"、またPAには最初はAと同じく "PA = 4"を累積頻度として設定する。データパターン"b"は2個であるためデータパターン"a"の個数4を加えた累積頻度は 4 + 2 = 6となり、"B = 6"、またPBには最初はBと同じく "PB = 6"を累積頻度として設定する。   The compression process is performed on the data string "abaabacc" using equation (6). Since the total number of data string "abaabacc" is eight, "n = 8" is set, and M in equation (6) is set to "M = 8". Here, the frequency of the data pattern is set to "A = 4" because "a" is four, and "PA = 4" is set as the cumulative frequency for PA at the same time as A. Since the number of data patterns "b" is two, the cumulative frequency of the number of data patterns "a" plus 4 is 4 + 2 = 6, "B = 6", and PB is the same as B at the beginning "PB = Set 6 "as the cumulative frequency.

更に、傾きA/M = 4/8 = 1/2と約分し、傾き(B-A)/M = 2/8 = 1/4、傾き(M-B)/M = 2/8 = 1/4 と約分して設定する。以上のように式(6)の初期パラメータ設定を行うが、累積頻度の比率 PA:PB;M = 4:6:8 であり、同比率はPA:PB:M = 2:3:4 に設定できるため、初期パラメータをPA=2,PB=3に設定できる。このため約分すれば最初に設定する下限をX8 = 0、上限をX8 = 4に設定できる。 Furthermore, the slope A / M = 4/8 = 1/2, and the slope (BA) / M = 2/8 = 1/4, the slope (MB) / M = 2/8 = 1/4 Divide and set. As described above, the initial parameter setting of equation (6) is performed, but the ratio of cumulative frequency PA: PB; M = 4: 6: 8 is set to PA: PB: M = 2: 3: 4. Since it is possible, initial parameters can be set to PA = 2 and PB = 3. For this reason, the lower limit to be set first can be set to X 8 = 0 and the upper limit to X 8 = 4 if reduced.

始めに、下限X8 = 0を代入して式(6)の圧縮処理演算によるパラメータXi, PA, PBの各遷移を図34に示す。ここで、Xi, PA, PBの拡大処理について、データパターン"a"の場合は傾きA/Mから割り算Mによる余りが出ないようにするため、倍率は2倍に演算精度幅を拡大すればよく、データパターン"b"とデータパターン"c"はそれぞれの傾き1/4のため共に4倍に演算精度幅を拡大すればよい。図34の一番右の列はこの式(6)の演算を行う前からの拡大倍率を示している。 First, FIG. 34 shows transitions of the parameters X i , PA, and PB according to the compression processing operation of the equation (6) by substituting the lower limit X 8 = 0. Here, in the case of the data pattern “a”, the enlargement process of the calculation accuracy width is doubled so that there is no remainder due to the division M from the inclination A / M in the enlargement process of X i , PA, PB. The data pattern "b" and the data pattern "c" may be expanded by 4 times with respect to their respective inclinations 1/4. The rightmost column in FIG. 34 shows the magnification from before the calculation of this equation (6).

図16ではデータ列数が素数の7(=M)であったため、演算精度の拡大処理は演算の都度7倍にしなくてはならなかった。これに対し、図34の例では"c"を1つパディングして傾きが約分できるようになったことで分母が小さい値になり、写像回数は1回分増えたが、演算過程のパラメータを比較すると演算精度の拡大幅が少なくなったことが確認され、演算コストの省力化が実現できる。   In FIG. 16, since the number of data sequences is 7 (= M) of prime number, the enlargement process of the calculation accuracy has to be 7 times each time of the calculation. On the other hand, in the example of FIG. 34, the denominator becomes a small value because the slope can be reduced by padding “c” by one, and the number of times of mapping increases by one. By comparison, it is confirmed that the expansion width of the calculation accuracy is reduced, and the labor saving of the calculation cost can be realized.

最終的に得られた下限は、X0 = 4412となり、そのときの最大演算精度幅が
16384(=214)であることを考慮して、最大演算精度幅と桁を合わせたビット値は、下限
X0 = (01000100111100)2となる。
The lower limit finally obtained is X 0 = 4412, and the maximum calculation accuracy width at that time is
In consideration of 16384 (= 2 14 ), the bit value obtained by combining the maximum operation precision width and the digit is the lower limit.
The X 0 = (01000100111100) 2.

最終的に得られる下限X0と上限X0の区間の差分は(1/4)4 x (1/2)2 x (1/2)2であることを考えると、開始時の最大演算精度幅がM=4であったことを考慮して、分母側は、
4 x 24 x 42 x 42 = 16384となり、分子側は、4 x 14 x 12 x 12 = 4となる。このた め下限X0に4を足すことで 上限X0 = 4416 が得られ、上限X0のビット値は、
上限X0 = (01000101000000)2
となる。
Difference of the finally obtained lower X 0 and the upper limit X 0 interval Given that the (1/4) 4 x (1/2) 2 x (1/2) 2, the maximum arithmetic precision at the start In consideration of the fact that the width was M = 4, the denominator side
4 x 2 4 x 4 2 x 4 2 = 16384, and the molecule side is 4 x 1 4 x 1 2 x 1 2 = 4. Therefore, by adding 4 to the lower limit X 0 , the upper limit X 0 = 4416 is obtained, and the bit value of the upper limit X 0 is
Upper limit X 0 = (01000101000000) 2
It becomes.

次に、下限X0と上限X0の半開区間[4412,4416)から、最小のビット量で表せられる圧縮コードを求める。"0.0 〜 1.0"間のどの区間に相当するかを考えると、図17では、得られた下限X0と上限X0のビット値をその演算精度幅のビット値で割ることで区間を導出して圧縮コードを得ることを示した。本実施形態のように、"c"を1つパディングした場合では、分母側はデータ量となる"M = 8"と2の乗数倍であるため、演算精度幅を拡大していき最終的には2の乗数倍の "16384(=214)"が得られた。このためビット値による演算は、上記の下限X0と上限X0のビットを" 214 "で割るため、14ビット分右シフトすればよい。 Then, from the half-open interval [4412,4416) of the lower limit X 0 and upper X 0, we obtain the compressed code is expressed by the minimum bit amount. Considering which section between “0.0 and 1.0” corresponds, in FIG. 17 the section is derived by dividing the obtained bit value of lower limit X 0 and upper limit X 0 by the bit value of the operation accuracy width It shows that the compressed code is obtained. As in the present embodiment, in the case of padding “c” by one, the denominator side is the data amount “M = 8” which is the multiplier of 2, so the operation accuracy width is expanded and finally Of "16384 (= 2 14 )" which is a multiplier of 2 was obtained. For this reason, the calculation based on the bit value may be shifted to the right by 14 bits in order to divide the above lower limit X 0 and upper limit X 0 bits by “2 14 ”.

上記の下限X0と上限X0は情報量14ビットであるため、小数点以下では
下限X0 = (0.01000100111100)2〜上限X0 = (0.01000101000000)2の間となる。
Since the lower limit X 0 and upper X 0 The above is the information amount 14 bits, is between the lower limit X 0 = (0.01000100111100) 2 ~ limit X 0 = (0.01000101000000) 2 in decimal.

圧縮コードを求めると、前述したように上限X0は半開区間で含まれないため、下限X0 のビット列を上位桁から"010001001111"まで見て行くと、その次のビットは"0"になっている。そこで、このビット "0"を"1"に変更することで半開区間内に含まれる値になり、圧縮コードは “0100010011111” になる。このように、圧縮コードは合計13ビットとなり、10進数として "2207"が得られる。 Since the upper limit X 0 is not included in the half open interval when the compression code is obtained as described above, when looking at the bit string of the lower limit X 0 from the upper digit to "010001001111", the next bit becomes "0" ing. Therefore, by changing this bit "0" to "1", it becomes a value included in the half open interval, and the compression code becomes "0100010011111". Thus, the compression code has a total of 13 bits, and "2207" is obtained as a decimal number.

圧縮後の圧縮データファイルに含まれるデータ内容を図35に示す。伸長処理にて元に戻したいデータ列は"abaabac"の7つ分となるが、冗長なデータとして"c"を1つ追加(パディング)して行っているため、図18と比較して明らかなように、伸長後のデータ量に相当する写像を行う回数(7=(110)2とする)が辞書領域の2行目に追加される。図35に示すように、伸長に最低限必要なデータ量は圧縮コードの13ビット、データ量(写像回数7)の3ビットである。データパターン"a"の個数が2ビット、データパターン"b"と"c"は個数が各1ビットで計4ビット、データパターン"a", "b", "c"をアスキーコード1文字当たり8ビットとすると、3x8=24ビットとなり、圧縮後の情報量が合計で、13+3+4+24=44ビット(圧縮率約79%)となる。 The data contents included in the compressed data file after compression are shown in FIG. The data string to be restored by extension processing is 7 lines of "abaabac", but since it is performed by adding (capping) one "c" as redundant data, it is clear compared with Fig. 18 As described above, the number of times of mapping (corresponding to 7 = (110) 2 ) corresponding to the amount of data after expansion is added to the second line of the dictionary area. As shown in FIG. 35, the minimum amount of data necessary for decompression is 13 bits of the compression code and 3 bits of the amount of data (the number of times of mapping 7). The number of data pattern "a" is 2 bits, the number of data patterns "b" and "c" is 1 bit each and 4 bits in total. Data patterns "a", "b" and "c" are per ASCII code Assuming 8 bits, 3 × 8 = 24 bits, and the total amount of information after compression is 13 + 3 + 4 + 24 = 44 bits (compression rate is about 79%).

図18では伸長に最低限必要な情報量は、9+4+24=37ビットであったが、圧縮コードが9ビットであった。これに対し本実施形態では、1文字パディングした圧縮コードは13ビットとなり4ビット分が増え、何回の写像で伸長処理を打ち切るかを示すデータ量に関する情報が必要となるため3ビット分が追加されており、比較すると合計7ビット分が増加する結果となった。   In FIG. 18, the minimum amount of information necessary for decompression is 9 + 4 + 24 = 37 bits, but the compression code is 9 bits. On the other hand, in the present embodiment, the compression code with 1-character padding is 13 bits and increases by 4 bits, and information about the data amount indicating the number of times of mapping to end decompression processing is necessary, so 3 bits are added As a result, a total of 7 bits increased as a result of comparison.

しかしながら、"c"を1つパディングした効果として演算の度に更新される演算精度幅は2の乗数倍になったため、最終的な区間を求めるビット同士の割り算のコストはその乗数分を右シフトすれば良くなる。結果的には、最終的に得られる演算精度幅のビット量がデータパターン頻度数と写像回数から判るため右シフト演算も不要になり、下限X0に分子側の整数値差分をそのまま加えることによって上限X0が求められ、圧縮コードも得られた下限X0と上限X0の値そのものから求められるようになるため、計算が省力化でき高速な演算が期待できる。 However, since the operation precision width that is updated each time the operation is padded with "c" by 1 and the operation precision width becomes a multiplier of 2, the cost of division between bits to obtain the final section shifts the multiplier by the right It will be better. In the end, the finally obtained amount of bits right shift operation for understood from the number of maps and data pattern frequency number of arithmetic precision width becomes unnecessary, by directly adding the integer value difference of numerator to limit X 0 Since the upper limit X 0 can be obtained and the compression code can also be obtained from the values of the obtained lower limit X 0 and the upper limit X 0 itself, the calculation can be simplified and high-speed calculation can be expected.

このように、本実施形態に係る圧縮処理装置では、伸長コードを構成する1単位データの数が2の倍数となり、且つ変形ベルヌーイ写像を遡る式の係数を、約分可能となるように、伸長コードに所定の1単位データをパディングする手段を有し、圧縮コードを求める処理を行うものである。   As described above, in the compression processing apparatus according to the present embodiment, the number of one unit data constituting the decompression code becomes a multiple of 2, and decompression is performed so that the coefficients of the equation that trace back the modified Bernoulli map can be reduced. A code is provided with means for padding predetermined one unit data, and processing for obtaining a compressed code is performed.

また、本実施形態が式(5)を用いて実行する伸長処理の過程を図36に示す。図35の圧縮データファイルに含まれる情報から各データパターンの頻度等の情報を読み出し、Mは各頻度の足し算 M = 4 + 2 + 2 = 8 になり累積頻度A=4, B=6となる。このため、式(5)の傾きは、M/A = 8/4 = 2, M/(B-A) = 8/2 = 4, M/(M-B) = 8/2 = 4
と全て割り切れる勾配値になる。かくして、伸長処理の過程で演算精度幅を増やす必要がなくなる。
Further, FIG. 36 shows the process of the extension process performed by the present embodiment using the equation (5). Information such as the frequency of each data pattern is read out from the information contained in the compressed data file of FIG. 35, M is the addition of each frequency M = 4 + 2 + 2 = 8 and the cumulative frequency A = 4 and B = 6 . Therefore, the slope of equation (5) is M / A = 8/4 = 2, M / (BA) = 8/2 = 4, M / (MB) = 8/2 = 4
And the gradient value which is divisible from all. Thus, there is no need to increase the operation accuracy range in the process of expansion processing.

また、初期値X0については圧縮コード“0100010011111”より、初期値X0 = 2207 が設定される。この演算精度幅は、213 = 8192 が設定される。閾値となるPA,PBについてはデータパターンの頻度から、"A:B:M = 2:3:4"となり、最大演算幅をMX=8192とすると、"PA : PB : MX = 4096 : 6144: 8192" と同等の比となるため、PA=4096,PB=6144を設定して、初期値X0はそのまま“2207"を割り当てることができる。 Further, for the initial value X 0 , the initial value X 0 = 2207 is set by the compression code “0100010011111”. The calculation accuracy width is set to 2 13 = 8192. Assuming that the frequency of the data pattern for PA and PB as the threshold is "A: B: M = 2: 3: 4" and the maximum operation width is MX = 8192, "PA: PB: MX = 4096: 6144: Since the ratio is equal to 8192 ′ ′, PA can be set to 4096 and PB = 6144, and the initial value X 0 can be assigned “2207” as it is.

以上のようにパラメータを式(5)に初期設定し、図36に示すようにXiが演算により得られる毎に、 Xi < PAのとき1単位データであるデータパターン"a"を出力し、PA ≦ Xi < PBのとき1単位データであるデータパターン"b" を出力し、 PB ≦ Xi のとき1単位データであるデータパターン"c" を出力し、図35の2行目の情報より7回分の出力を行い、データ列 "abaabac" を復元した時点で伸長処理を終了する。 As described above, the parameters are initialized to equation (5), and as shown in FIG. 36, whenever X i is obtained by calculation, data pattern “a” which is one unit data is output when X i <PA. When PA X X i <PB, data pattern "b" which is 1 unit data is output, and when PB X X i , data pattern "c" which is 1 unit data is output. The data is output seven times based on the information, and the decompression process ends when the data string "abaabac" is restored.

図21に示した例は、式(5)傾きの分子側がデータ量にも相当するM=7であり、例えば M/A = 7/4 の場合では割り切れない値になるものであった。そこで、演算の前に"A"の値を掛け算して演算精度を拡大することで余りが出ないように対策したため、図21の倍率の列に示す倍数で演算精度幅が増加している。   In the example shown in FIG. 21, the numerator side of the slope of the equation (5) is M = 7, which also corresponds to the data amount, and for example, it becomes an indivisible value in the case of M / A = 7/4. Therefore, the value of "A" is multiplied before the operation to expand the operation accuracy so that there is no remainder, so the operation accuracy width is increased by the multiple shown in the column of magnifications in FIG.

これに対し"c"を1つパディングした本実施形態では、その効果として、M=8となったため式(5)を参照して判るように、傾きの値が全て割り切れることになり、図36の演算の遷移に示すように最初に設定された演算精度幅が最後まで変更されることなく伸長の演算が実施される。このため伸長処理でも写像の度に演算精度幅の変更による演算コストが増大することなく、より高速に演算が行えるといったメリットがある。   On the other hand, in the present embodiment where one "c" is padded, as the effect is M = 8, as can be seen by referring to the equation (5), all the inclination values are divisible, as shown in FIG. The expansion operation is performed without changing the operation accuracy width initially set as shown in the transition of the operation of the above. Therefore, even in the extension processing, there is an advantage that the calculation can be performed at higher speed without increasing the calculation cost due to the change of the calculation accuracy width at each mapping.

本実施形態に係る可逆圧縮アルゴリズムは、以上の性質から圧縮対象とするデータ列については、素数などの割り切れないデータではなく、2の倍数の16,32,64,128,…,2n(ビット or バイト)単位の固定長で処理を行うことができる。このため、圧縮コード(初期値X0)の導出を、演算精度分の右シフト演算で行うことが可能になる。また、下限X0を導出してから上限X0を求める半開区間の導出は、データパターンの頻度と計算(写像)回数から求められる整数値の足し算を行い、その区間内での最小のビット量(圧縮コード)を求めれば良いことになる。これによって、右シフト演算(ビット小数点)自体が不要となる。従って、圧縮処理の対象とするデータ量としては、2の乗数倍の固定長を扱うプロトコルが望ましい。 In the lossless compression algorithm according to the present embodiment, the data string to be compressed due to the above property is not indivisible data such as a prime number, but is a multiple of 2, 16, 32, 64, 128, ..., 2 n (bits or bytes) ) Can be processed with a fixed length of unit. Therefore, it is possible to derive the compression code (initial value X 0 ) by the right shift operation for the operation accuracy. Also, derivation of half-open interval of obtaining the maximum X 0 from derives the lower limit X 0 performs addition integer value determined from the frequency and the calculation (mapping) the number of data patterns, the minimum amount of bits in the section It will be good if it asks for (compression code). As a result, the right shift operation (bit decimal point) itself becomes unnecessary. Therefore, as a data amount to be subjected to compression processing, a protocol that handles a fixed length of a multiplier of 2 is desirable.

また、データパターンの種類が多い場合に実施形態4の5つのデータパターンの場合で示したように、データ量がデータパターンの各頻度で割り切れるデータ列を用意した。このため、圧縮処理では約分により演算精度の桁がそれほど増えることなく、伸長処理では演算桁数を増やすことなく最初から固定の演算精度幅にて処理を行うことができた。   Further, as shown in the case of the five data patterns of the fourth embodiment when there are many types of data patterns, a data string is prepared in which the amount of data is divisible by each frequency of the data patterns. Therefore, in the compression processing, the digit of the calculation accuracy does not increase so much due to the reduction, and in the extension processing, the processing can be performed with a fixed calculation accuracy width from the beginning without increasing the number of calculation digits.

以上のことから、データ列の量(伸長コードを構成する1単位データの数)が2の倍数であり、かつデータパターンの頻度(変形ベルヌーイ写像を遡る式の係数)がうまく約分できるような頻度数になるように、データパターンをパディングして調整する本実施形態の構成によって、演算コストを抑えて圧縮処理と伸長処理の演算を高速化することが期待できる。   From the above, the amount of data string (the number of 1 unit data constituting the decompression code) is a multiple of 2, and the frequency of the data pattern (coefficient of the equation that traces the modified Bernoulli map) can be reduced well With the configuration of the present embodiment in which the data pattern is padded and adjusted so as to become the frequency number, it is expected that the calculation cost can be suppressed and the calculation speed of the compression processing and the expansion processing can be increased.

以上から、本実施形態である変形ベルヌーイ写像による可逆圧縮は、圧縮対象におけるデータ列の量が2の倍数なるようなデータ、例えば、固定長の通信パケット単位のデータや、ファイルを分割した分割後のデータなど、を通信や保存する用途に好適であることが判る。   From the above, the lossless compression based on the modified Bernoulli mapping according to the present embodiment is data in which the amount of the data string in the compression target is a multiple of 2, for example, data of communication packet unit of fixed length or a divided file. It is understood that the present invention is suitable for applications such as communication and storage of data such as

100 圧縮処理装置
110 圧縮処理手段
120 圧縮コード生成手段
130 圧縮率算出手段
200 伸長処理装置
210 伸長処理手段
220 伸長コード生成手段
100 compression processing unit 110 compression processing unit 120 compression code generation unit 130 compression ratio calculation unit 200 decompression processing unit 210 decompression processing unit 220 decompression code generation unit

Claims (28)

変形ベルヌーイ写像を遡る式を用いて、伸長コードの1単位データ毎に圧縮値の上限値と下限値とを算出し前記圧縮値の範囲を得る演算を反復して行う圧縮処理手段と、
前記圧縮処理手段により最終的に求められた圧縮値の範囲から圧縮コードを生成する圧縮コード生成手段と
を具備することを特徴とする本発明に係る圧縮処理装置。
Compression processing means for repeatedly performing an operation of calculating the upper limit value and the lower limit value of the compression value for each unit data of the expansion code using an expression for tracing back the modified Bernoulli map, and obtaining the range of the compression value;
And a compression code generation unit configured to generate a compression code from the range of compression values finally obtained by the compression processing unit.
圧縮処理手段は、伸長コードの最後尾の1単位データから最前の1単位データへ向かって1単位データ毎に圧縮値の範囲を得る演算を行うことを特徴とする請求項1に記載の圧縮処理装置。   The compression process according to claim 1, wherein the compression processing means performs an operation to obtain a range of compression values for each unit data from the last 1 unit data of the decompression code to the last 1 unit data. apparatus. 圧縮処理手段は、上限値を求める演算と下限値を求める演算を、別個に行うことを特徴とする請求項1または2に記載の圧縮処理装置。   The compression processing device according to claim 1 or 2, wherein the compression processing means separately performs an operation for obtaining an upper limit value and an operation for obtaining a lower limit value. 圧縮コード生成手段は、最終的に求められた圧縮値の範囲において最も少ないビット列で表すことが可能な2進数の小数を圧縮コードとすることを特徴とする請求項1乃至3のいずれか1項に記載の圧縮処理装置。   4. The compression code generation means according to any one of claims 1 to 3, wherein the compression code is a binary decimal that can be represented by the smallest bit string in the range of compression values finally obtained. The compression processing device according to. 変形ベルヌーイ写像を遡る式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする請求項1乃至4のいずれか1項に記載の圧縮処理装置。   The compression processing apparatus according to any one of claims 1 to 4, wherein the expression for tracing back the modified Bernoulli map is divided corresponding to the type of one unit data constituting the decompression code. 圧縮コード生成手段は、上限値と下限値との差分値と、上限値または下限値のみを求め、上限値のみを求めた場合には最終的に求めた上限値から上記差分値を引いて最終的な下限値を求め、下限値のみを求めた場合には最終的に求めた下限値に上記差分値を加えて最終的な上限値を求めることを特徴とする請求項1乃至5のいずれか1項に記載の圧縮処理装置。   The compression code generation means obtains only the difference between the upper limit value and the lower limit value and the upper limit value or the lower limit value, and when only the upper limit value is obtained, subtracts the above difference value from the finally obtained upper limit value 6. The final upper limit value is determined by adding the above difference value to the finally obtained lower limit value when the basic lower limit value is obtained and only the lower limit value is obtained. The compression processing device according to item 1. 演算を整数演算化して行い、圧縮値及び圧縮値の範囲を、伸長コードを構成する1単位データの数(M)倍することを特徴とする請求項1乃至6のいずれか1項に記載の圧縮処理装置。   7. The method according to any one of claims 1 to 6, wherein the operation is performed by integer operation, and the range of the compression value and the compression value is multiplied by the number (M) of one unit data constituting the decompression code. Compression processing device. 変形ベルヌーイ写像を遡る式
の係数を、約分することを特徴とする請求項7に記載の圧縮処理装置。
8. A compression processing apparatus according to claim 7, wherein a coefficient of an equation which goes back to the modified Bernoulli map is reduced.
圧縮コード生成手段により生成された圧縮コードの伸長コードに対する圧縮率を求める圧縮率算出手段と、
前記圧縮率算出手段により算出された圧縮率が所定値よりも大きい場合に、変形ベルヌーイ写像を遡る式の係数を変更して圧縮コードを求める処理を行うことを特徴とする請求項7または8に記載の圧縮処理装置。
Compression rate calculation means for obtaining a compression rate for the decompression code of the compression code generated by the compression code generation means;
9. The method according to claim 7, wherein, when the compression ratio calculated by the compression ratio calculation means is larger than a predetermined value, processing is performed to obtain a compression code by changing a coefficient of an equation going back to the modified Bernoulli map. The compression processing device as described.
二分探索法により新たな係数を求めて係数を変更し、圧縮コードを求める処理を行うことを特徴とする請求項9に記載の圧縮処理装置。   10. The compression processing apparatus according to claim 9, wherein a new coefficient is obtained by binary search, the coefficient is changed, and a compression code is obtained. 伸長コードを構成する1単位データの数が2の倍数となり、且つ変形ベルヌーイ写像を遡る式の係数を、約分可能となるように、伸長コードに所定の1単位データをパディングし、圧縮コードを求める処理を行うことを特徴とする請求項7乃至10のいずれか1項に記載の圧縮処理装置。   The compression code is padded with padding data of a predetermined unit data so that the number of one unit data constituting the expansion code becomes a multiple of 2 and the coefficients of the equation going back to the modified Bernoulli map can be reduced. The compression processing device according to any one of claims 7 to 10, which performs a process of obtaining. 圧縮コードに対し変形ベルヌーイ写像の式を用いた演算を施して、伸長コードの1単位データに対応する値を得る計算である1単位データ取得計算及び、この得られた値を前記変形ベルヌーイ写像の式を用いた演算に用いて次の1単位データを得る1単位データ取得計算を、所定回となるまで繰り返す反復計算を行う伸長処理手段と、
前記伸長処理手段の1単位データ取得計算毎に得られる値を、前記変形ベルヌーイ写像の式の係数に基づき伸長コードの1単位データに変換する伸長コード生成手段と
を具備することを特徴とする伸長処理装置。
One unit data acquisition calculation which is a calculation to obtain a value corresponding to one unit data of the decompression code by performing an operation using a modified Bernoulli mapping equation to the compressed code, and the obtained value for the modified Bernoulli map An extension processing unit that performs an iterative calculation that repeats one unit data acquisition calculation for obtaining the next unit data using an expression using the equation until a predetermined number of times is obtained;
Decompression code generation means for converting a value obtained for each calculation of 1 unit data acquisition of the expansion processing means into 1 unit data of an expansion code based on the coefficients of the equation of the modified Bernoulli map Processing unit.
変形ベルヌーイ写像の式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする請求項12に記載の伸長処理装置。   The decompression processing apparatus according to claim 12, wherein the equation of the modified Bernoulli map is divided corresponding to the type of one unit data constituting the decompression code. 演算を整数演算化して行い、圧縮値及び圧縮値の範囲を、伸長コードを構成する1単位データの数(M)倍することを特徴とする請求項12または13に記載の伸長処理装置。   The decompression processing apparatus according to claim 12 or 13, wherein the computation is performed by integer computation, and the range of the compression value and the compression value is multiplied by the number (M) of one unit data constituting the decompression code. コンピュータを、
変形ベルヌーイ写像を遡る式を用いて、伸長コードの1単位データ毎に圧縮値の上限値と下限値とを算出し前記圧縮値の範囲を得る演算を反復して行う圧縮処理手段、
前記圧縮処理手段により最終的に求められた圧縮値の範囲から圧縮コードを生成する圧縮コード生成手段
として機能させることを特徴とする圧縮処理用プログラム。
Computer,
A compression processing means for repeatedly performing an operation of calculating the upper limit value and the lower limit value of the compression value for each unit data of the decompression code using an expression which goes back to the modified Bernoulli map, and obtaining the range of the compression value.
A program for compression processing, characterized in that it functions as compression code generation means for generating a compression code from the range of compression values finally obtained by the compression processing means.
コンピュータを更に、伸長コードの最後尾の1単位データから最前の1単位データへ向かって1単位データ毎に圧縮値の範囲を得る演算を行う圧縮処理手段として機能させることを特徴とする請求項15に記載の圧縮処理用プログラム。   The computer is further caused to function as compression processing means for performing an operation of obtaining a range of compression values for each unit data from the last 1 unit data of the decompression code to the last 1 unit data. The program for compression processing described in. コンピュータを更に、上限値を求める演算と下限値を求める演算を、別個に行う圧縮処理手段として機能させることを特徴とする請求項15または16に記載の圧縮処理用プログラム。   The program for compression processing according to claim 15 or 16, further causing the computer to function as compression processing means for separately performing an operation for obtaining an upper limit value and an operation for obtaining a lower limit value. コンピュータを更に、最終的に求められた圧縮値の範囲において最も少ないビット列で表すことが可能な2進数の小数を圧縮コードとする圧縮コード生成手段として機能させることを特徴とする請求項15乃至17のいずれか1項に記載の圧縮処理用プログラム。   18. The computer-readable storage medium according to claim 15, wherein the computer further functions as compression code generation means that uses as a compression code a binary decimal that can be represented by the smallest bit string in the finally determined compression value range. The compression processing program according to any one of the above. 変形ベルヌーイ写像を遡る式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする請求項15乃至18のいずれか1項に記載の圧縮処理用プログラム。   The compression processing program according to any one of claims 15 to 18, wherein the expression for tracing back the modified Bernoulli map is divided in correspondence with the type of one unit data constituting the decompression code. コンピュータを更に、上限値と下限値との差分値と、上限値または下限値のみを求め、上限値のみを求めた場合には最終的に求めた上限値から上記差分値を引いて最終的な下限値を求め、下限値のみを求めた場合には最終的に求めた下限値に上記差分値を加えて最終的な上限値を求める圧縮コード生成手段として機能させることを特徴とする請求項15乃至19のいずれか1項に記載の圧縮処理用プログラム。   Further, the computer obtains only the difference between the upper limit and the lower limit and only the upper limit or the lower limit, and when only the upper limit is obtained, the difference is finally subtracted from the upper limit obtained finally to obtain the final The lower limit value is determined, and when only the lower limit value is determined, the difference value is added to the finally determined lower limit value to function as compressed code generation means for determining the final upper limit value. 20. A program for compression processing according to any one of 19 to 19. 演算を整数演算化して行い、圧縮値及び圧縮値の範囲を、伸長コードを構成する1単位データの数(M)倍することを特徴とする請求項15乃至20のいずれか1項に記載の圧縮処理用プログラム。   21. The method according to any one of claims 15 to 20, wherein the operation is performed by integer operation, and the range of the compression value and the compression value is multiplied by the number (M) of 1 unit data constituting the decompression code. Program for compression processing. 変形ベルヌーイ写像を遡る式の係数を、約分することを特徴とする請求項21に記載の圧縮処理用プログラム。   22. The program for compression processing according to claim 21, wherein a coefficient of an equation which goes back to a modified Bernoulli map is reduced. コンピュータを更に、
圧縮コード生成手段により生成された圧縮コードの伸長コードに対する圧縮率を求める圧縮率算出手段として機能させ、
前記圧縮率算出手段により算出された圧縮率が所定値よりも大きい場合に、変形ベルヌーイ写像を遡る式の係数を変更して圧縮コードを求める処理を行うことを特徴とする請求項21または22に記載の圧縮処理用プログラム。
Furthermore, the computer
It functions as compression ratio calculation means for obtaining a compression rate for the decompression code of the compression code generated by the compression code generation means,
The method according to claim 21 or 22, characterized in that when the compression ratio calculated by the compression ratio calculation means is larger than a predetermined value, processing is performed to obtain a compression code by changing the coefficient of an equation going back to the modified Bernoulli map. The program for compression processing described.
二分探索法により新たな係数を求めて係数を変更し、圧縮コードを求める処理を行うことを特徴とする請求項23に記載の圧縮処理用プログラム。   The program for compression processing according to claim 23, characterized in that processing for obtaining a new coefficient by binary search method, changing the coefficient, and obtaining a compression code is performed. 伸長コードを構成する1単位データの数が2の倍数となり、且つ変形ベルヌーイ写像を遡る式の係数を、約分可能となるように、伸長コードに所定の1単位データをパディングし、圧縮コードを求める処理を行うことを特徴とする請求項21乃至24のいずれか1項に記載の圧縮処理用プログラム。   The compression code is padded with padding data of a predetermined unit data so that the number of one unit data constituting the expansion code becomes a multiple of 2 and the coefficients of the equation going back to the modified Bernoulli map can be reduced. The compression processing program according to any one of claims 21 to 24, characterized by performing a process of obtaining. コンピュータを、
圧縮コードに対し変形ベルヌーイ写像の式を用いた演算を施して、伸長コードの1単位データに対応する値を得る計算である1単位データ取得計算及び、この得られた値を前記変形ベルヌーイ写像の式を用いた演算に用いて次の1単位データを得る1単位データ取得計算を、所定回となるまで繰り返す反復計算を行う伸長処理手段、
前記伸長処理手段の1単位データ取得計算毎に得られる値を、前記変形ベルヌーイ写像の式の係数に基づき伸長コードの1単位データに変換する伸長コード生成手段
として機能させることを特徴とする伸長処理用プログラム。
Computer,
One unit data acquisition calculation which is a calculation to obtain a value corresponding to one unit data of the decompression code by performing an operation using a modified Bernoulli mapping equation to the compressed code, and the obtained value for the modified Bernoulli map An extension processing unit that performs an iterative calculation that repeats one unit data acquisition calculation for obtaining the next unit data using an expression using a predetermined number of times,
The expansion processing is characterized in that it functions as expansion code generation means for converting a value obtained for each calculation of 1 unit data acquisition of the expansion processing means into 1 unit data of expansion code based on the coefficients of the equation of the modified Bernoulli map. Program.
変形ベルヌーイ写像の式は、伸長コードを構成する1単位データの種類に対応して分かれていることを特徴とする請求項26に記載の伸長処理用プログラム。   27. The program for decompression processing according to claim 26, wherein the equation of the modified Bernoulli map is divided corresponding to the type of one unit data constituting the decompression code. 演算を整数演算化して行い、圧縮値及び圧縮値の範囲を、伸長コードを構成する1単位データの数(M)倍することを特徴とする請求項26または27に記載の伸長処理用プログラム。   The program for decompression processing according to claim 26 or 27, wherein the operation is performed by integer arithmetic and the range of the compression value and the compression value is multiplied by the number (M) of 1 unit data constituting the decompression code.
JP2017171728A 2017-09-07 2017-09-07 Compression processing device, decompression processing device, compression processing program, decompression processing program Active JP6833643B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017171728A JP6833643B2 (en) 2017-09-07 2017-09-07 Compression processing device, decompression processing device, compression processing program, decompression processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017171728A JP6833643B2 (en) 2017-09-07 2017-09-07 Compression processing device, decompression processing device, compression processing program, decompression processing program

Publications (2)

Publication Number Publication Date
JP2019047450A true JP2019047450A (en) 2019-03-22
JP6833643B2 JP6833643B2 (en) 2021-02-24

Family

ID=65816657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017171728A Active JP6833643B2 (en) 2017-09-07 2017-09-07 Compression processing device, decompression processing device, compression processing program, decompression processing program

Country Status (1)

Country Link
JP (1) JP6833643B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020184183A1 (en) 2019-03-14 2020-09-17 三菱ケミカル株式会社 Bisphenol composition and polycarbonate resin
CN115078892A (en) * 2022-08-19 2022-09-20 深圳天川电气技术有限公司 State remote monitoring system for single-machine large-transmission frequency converter

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020184183A1 (en) 2019-03-14 2020-09-17 三菱ケミカル株式会社 Bisphenol composition and polycarbonate resin
WO2020184182A1 (en) 2019-03-14 2020-09-17 三菱ケミカル株式会社 Bisphenol composition and polycarbonate resin
CN115078892A (en) * 2022-08-19 2022-09-20 深圳天川电气技术有限公司 State remote monitoring system for single-machine large-transmission frequency converter
CN115078892B (en) * 2022-08-19 2022-11-01 深圳天川电气技术有限公司 State remote monitoring system for single-machine large-transmission frequency converter

Also Published As

Publication number Publication date
JP6833643B2 (en) 2021-02-24

Similar Documents

Publication Publication Date Title
Goyal et al. Deepzip: Lossless data compression using recurrent neural networks
KR100894002B1 (en) Device and data method for selective compression and decompression and data format for compressed data
Gupta et al. Modern lossless compression techniques: Review, comparison and analysis
KR101049699B1 (en) Data Compression Method
CN110021369B (en) Gene sequencing data compression and decompression method, system and computer readable medium
JPH07221653A (en) Encoding device of high-speed decoding arithmetic
CN112506880B (en) Data processing method and related equipment
CN112506879A (en) Data processing method and related equipment
JP5656593B2 (en) Apparatus and method for decoding encoded data
CN113630125A (en) Data compression method, data encoding method, data decompression method, data encoding device, data decompression device, electronic equipment and storage medium
JP2019047450A (en) Compression processing device, decompression processing device, compression processing program, and decompression processing program
Valmeekam et al. Llmzip: Lossless text compression using large language models
JPH05241777A (en) Data compression system
CN110021368B (en) Comparison type gene sequencing data compression method, system and computer readable medium
Belodedov et al. Development of an algorithm for optimal encoding of WAV files using genetic algorithms
CN106452451B (en) Data processing method and device
CN109698703B (en) Gene sequencing data decompression method, system and computer readable medium
CN109698704B (en) Comparative gene sequencing data decompression method, system and computer readable medium
WO2017026952A1 (en) A data compression and decompression method
JPH05241775A (en) Data compression system
Barbay From time to space: Fast algorithms that yield small and fast data structures
KR100207428B1 (en) Variable length coding apparatus and method adaptive to changes of the hoffman codes
Rahman et al. Text compression based on an alternative approach of run-length coding using Burrows-Wheeler transform and arithmetic coding
JPH06202844A (en) Data compression/restoration processing device
Chen et al. Lossless Geometry Compression for Steady-State and Time-Varying Irregular Grids.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200827

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: 20210202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210203

R150 Certificate of patent or registration of utility model

Ref document number: 6833643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250