JP5825347B2 - Compression device - Google Patents

Compression device Download PDF

Info

Publication number
JP5825347B2
JP5825347B2 JP2013517825A JP2013517825A JP5825347B2 JP 5825347 B2 JP5825347 B2 JP 5825347B2 JP 2013517825 A JP2013517825 A JP 2013517825A JP 2013517825 A JP2013517825 A JP 2013517825A JP 5825347 B2 JP5825347 B2 JP 5825347B2
Authority
JP
Japan
Prior art keywords
input
data
compression
unit
writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013517825A
Other languages
Japanese (ja)
Other versions
JPWO2012164813A1 (en
Inventor
澄夫 森岡
澄夫 森岡
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013517825A priority Critical patent/JP5825347B2/en
Publication of JPWO2012164813A1 publication Critical patent/JPWO2012164813A1/en
Application granted granted Critical
Publication of JP5825347B2 publication Critical patent/JP5825347B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、圧縮、特に可逆圧縮技術に関する。   The present invention relates to compression, and particularly to a lossless compression technique.

データの可逆圧縮技術は、ロスレス圧縮とも呼ばれ、データ系列を完全に復元可能な状態で圧縮することで、データ量を削減する技術である。データ可逆圧縮技術は、伸張(復元)後にデータが元通りになる必要のあるデータ系列を圧縮する目的で、頻繁に使用されている(例えば特許文献1−2)。   Data lossless compression technology is also referred to as lossless compression, and is a technology for reducing the amount of data by compressing a data sequence in a fully recoverable state. The data lossless compression technique is frequently used for the purpose of compressing a data series that needs to be restored after decompression (restoration) (for example, Patent Document 1-2).

データ可逆圧縮技術のアルゴリズムは、例えば、非特許文献1−4に開示されている。非特許文献1乃至4に開示されたように、可逆圧縮では、ハフマン符号化やランレングス符号化、算術符号、LZ符号及びその変形など、データ系列中の繰り返しパターンを探索するアルゴリズムが主流である。また、非特許文献5には、LZにおけるハードウェア装置向けの高速実装手法が開示されている。   The algorithm of the data lossless compression technique is disclosed in, for example, Non-Patent Documents 1-4. As disclosed in Non-Patent Documents 1 to 4, in lossless compression, algorithms that search for repetitive patterns in a data series, such as Huffman coding, run-length coding, arithmetic code, LZ code, and variations thereof, are mainstream. . Non-Patent Document 5 discloses a high-speed mounting method for hardware devices in LZ.

また、計算機内の主記憶に格納されたデータについては、当該計算機の装置電源を一時オフにした時に、主記憶から補助記憶である不揮発記憶へデータを退避する処理であるハイバネーションを行うものが知られている。特許文献3−5には、ハイバネーションの際に可逆圧縮や非可逆圧縮を適用することによって、退避及び復帰にかかる時間を短縮する技術が開示されている。また、プログラム等については可逆圧縮、画像等については非可逆圧縮を適用可能である。   In addition, data stored in the main memory of a computer is known to perform hibernation, which is a process of saving data from the main memory to a non-volatile memory that is an auxiliary memory when the apparatus power supply of the computer is temporarily turned off. It has been. Patent Documents 3-5 disclose a technique for reducing the time required for saving and restoring by applying reversible compression or irreversible compression during hibernation. Further, lossless compression can be applied to programs and the like, and irreversible compression can be applied to images and the like.

また、特許文献3−5に記載された技術は、スワッピングにも適用可能である。スワッピングとは、計算機の動作中において、使用頻度の低いプロセスを一時的に主記憶から補助記憶装置へ退避して、主記憶の領域を開放する処理である。   Moreover, the technique described in patent documents 3-5 is applicable also to swapping. Swapping is a process of temporarily saving a low-use process from the main memory to the auxiliary storage device and releasing the main memory area during the operation of the computer.

国際公開第2000/021199号International Publication No. 2000/021199 特開平10−173541号公報Japanese Patent Laid-Open No. 10-173541 特開2004−038545号公報Japanese Patent Laid-Open No. 2004-038545 特開2004−038546号公報Japanese Patent Laid-Open No. 2004-038546 国際公開第2000/054133号International Publication No. 2000/054133

Jacob Ziv and Abraham Lempel; "A Universal Algorithm for Sequential Data Compression", IEEE Transactions on Information Theory, 23(3), pp. 337-343, May 1977.Jacob Ziv and Abraham Lempel; "A Universal Algorithm for Sequential Data Compression", IEEE Transactions on Information Theory, 23 (3), pp. 337-343, May 1977. Rissanen, Jorma (May 1976). "Generalized Kraft Inequality and Arithmetic Coding". IBM Journal of Research and Development 20 (3): 198-203.Rissanen, Jorma (May 1976). "Generalized Kraft Inequality and Arithmetic Coding". IBM Journal of Research and Development 20 (3): 198-203. Huffman's original article: D.A. Huffman, "A Method for the Construction of Minimum-Redundancy Codes", Proceedings of the I.R.E., September 1952, pp 1098-1101.Huffman's original article: D.A.Huffman, "A Method for the Construction of Minimum-Redundancy Codes", Proceedings of the I.R.E., September 1952, pp 1098-1101. Vitter, Jeffrey Scott, "Design and Analysis of Dynamic Huffman Coding", IEEE Foundations of Computer Science, 26th Annual Symposium on Digital Object Identifier: pp. 293-302, 1985.Vitter, Jeffrey Scott, "Design and Analysis of Dynamic Huffman Coding", IEEE Foundations of Computer Science, 26th Annual Symposium on Digital Object Identifier: pp. 293-302, 1985. 森岡澄夫, 佐藤証: "100Mbyte/s高速データ圧縮エンジン", 第9回FPGA/PLD Design Conference, Jan 2002.Sumio Morioka, Prof. Sato: "100Mbyte / s high-speed data compression engine", 9th FPGA / PLD Design Conference, Jan 2002.

しかしながら、上述した可逆圧縮手法では、データの可逆圧縮を行う際の処理速度を落とすことなく、圧縮率を維持することが困難という問題点がある。その理由は、可逆圧縮手法は、圧縮に関わる処理速度と、圧縮率との間でトレードオフの関係があるためである。特に、計算機の主記憶に格納されたデータの可逆圧縮の際に、このような問題点が顕著となる。そこで、以下に具体的に述べる。   However, the above-described lossless compression method has a problem that it is difficult to maintain the compression ratio without reducing the processing speed when performing lossless compression of data. This is because the lossless compression technique has a trade-off relationship between the processing speed related to compression and the compression rate. In particular, such a problem becomes conspicuous when the data stored in the main memory of the computer is subjected to lossless compression. Therefore, it will be specifically described below.

上述したハイバネーションやスワッピングなどを高速化するためには、計算機の主記憶に格納されたデータを圧縮することが有効である。特に、近年、主記憶の容量が著しく増大している。そのため、主記憶である揮発性記憶領域から補助記憶である不揮発性記憶領域への退避及び復帰処理には、以前に比べて長時間を要するようになった。そのため、主記憶に格納するデータを圧縮する必要性が高まっている。   In order to speed up the above-described hibernation and swapping, it is effective to compress the data stored in the main memory of the computer. In particular, in recent years, the capacity of main memory has increased significantly. For this reason, the save and restore processing from the volatile storage area that is the main memory to the nonvolatile storage area that is the auxiliary memory has become longer than before. Therefore, there is an increasing need to compress data stored in the main memory.

計算機主記憶の内容を圧縮する場合、例えば非特許文献1−5に開示された汎用的な可逆圧縮手法を用いるか、又は、例えば特許文献3−4に開示されたようにデータ内容に応じて複数の圧縮手法を切り替えることが考えられる。ところで、計算機の主記憶に格納されたデータの内容は画像等に特定されていない。そこで、特許文献3−4に開示された技術を適用すると、対象データについて都度、圧縮の可否を判定する必要があり、判定処理の負荷が高い。そのため、データ内容に応じて複数の圧縮手法を切り替えるという手法は、処理が複雑であるため、長い処理時間を要する。また、当該手法は、データ内容の判別が困難であるため、一般的な利用には適さない。   When compressing the contents of the computer main memory, for example, the general-purpose lossless compression method disclosed in Non-Patent Document 1-5 is used, or according to the data contents as disclosed in Patent Document 3-4, for example. It is conceivable to switch between a plurality of compression methods. By the way, the contents of the data stored in the main memory of the computer are not specified in the image or the like. Therefore, when the technique disclosed in Patent Literature 3-4 is applied, it is necessary to determine whether or not the target data can be compressed, and the load of the determination process is high. For this reason, the method of switching a plurality of compression methods according to the data contents is complicated in processing and requires a long processing time. In addition, this method is not suitable for general use because it is difficult to determine data contents.

そのため、主記憶に格納されたデータを圧縮するには、汎用的な可逆圧縮手法を利用することが望ましい。しかし、単一の汎用的な可逆圧縮手法である算術符号など計算量の多いアルゴリズムでは、圧縮及び伸張に長時間かかってしまうため、ハイバネーションやスワッピングなどを高速化することができない。   Therefore, it is desirable to use a general-purpose lossless compression method to compress data stored in the main memory. However, an algorithm with a large amount of calculation such as an arithmetic code, which is a single general-purpose lossless compression method, takes a long time for compression and decompression, so that hibernation and swapping cannot be accelerated.

一方、汎用的な可逆圧縮手法のうちLZについては、例えば非特許文献5に開示されたように、ハードウェア装置向けの高速実装手法が知られている。そのため、主記憶に格納されたデータを圧縮するために、LZを用いることは適切と考えられる。   On the other hand, as for LZ among general-purpose lossless compression methods, as disclosed in Non-Patent Document 5, for example, a high-speed mounting method for hardware devices is known. For this reason, it is considered appropriate to use LZ in order to compress data stored in the main memory.

LZ圧縮ではパターン・マッチングが行われる。具体的には、あるデータ列に着目して、それが以前に出現したことがあるかをチェックし、既に出現したことがあるのならば、そのデータ列を示す何らかの符号に置き換えることにより圧縮を行う。当然ながら、データ列を置き換える符号は、データ列より短い。   In LZ compression, pattern matching is performed. Specifically, paying attention to a certain data string, check whether it has appeared before, and if it has already appeared, compress it by replacing it with some code indicating that data string. Do. Of course, the code for replacing the data string is shorter than the data string.

ここで、置換えの対象となるデータ列は、辞書に登録されるようになっている。このようなデータ列は、あらかじめデータに存在するものと決まっているならば、先に辞書を作成しておくことも可能であるが、画像データのように、どのようなデータ列が存在するのか予測できないような場合は、圧縮を行いながら、同時に辞書を作成していく必要がある。この場合、ある時点での圧縮装置の内部状態(辞書の内容など)は、過去の先頭からの入力系列を反映している。   Here, the data string to be replaced is registered in the dictionary. It is possible to create a dictionary in advance if such data strings are already present in the data, but what kind of data strings exist like image data If it cannot be predicted, it is necessary to create a dictionary simultaneously with compression. In this case, the internal state (such as the contents of the dictionary) of the compression apparatus at a certain point reflects the past input sequence from the beginning.

また、LZに限らず可逆圧縮は、実際に圧縮してみるまでは圧縮後データのサイズが分からないという性質を持つ。このため、圧縮後のデータを記憶する領域が元の主記憶上のどのアドレスに対応するかは、主記憶上にどのようなデータが存在していたかによって変動すると共に、圧縮前に予測することができない。   Moreover, not only LZ but lossless compression has the property that the size of the data after compression is not known until it is actually compressed. For this reason, the address in which the area for storing the compressed data corresponds to which address in the original main memory varies depending on what data exists in the main memory, and is predicted before the compression. I can't.

また、可逆圧縮の符号語はビット単位で可変長である。圧縮後のデータは符号語が順に並んだものであるが、そこにおいて符号語は、バイト境界やワード境界をまたぐ形となりうる。   A lossless compression codeword has a variable length in bits. The compressed data is a sequence of codewords, where the codewords can cross byte boundaries or word boundaries.

ここで、ハイバネーションやスワッピングなどにおいて不揮発記憶に圧縮後のデータを書き込む際、書込みエラーが生じた場合を考える。不揮発記憶への書込みは一定サイズのブロック単位で物理ブロック・アドレスを指定して行われるが、あるブロックの書込みに失敗した場合、異なる物理ブロック・アドレスへの書直しが必要となる。なお、「ブロック」とは、記憶装置の物理的な記録単位を意味し、セクタとも呼ばれる。   Here, let us consider a case where a write error occurs when writing the compressed data to the nonvolatile memory during hibernation or swapping. Writing to the non-volatile memory is performed by designating a physical block address in units of blocks of a certain size, but when writing of a certain block fails, rewriting to a different physical block address is required. A “block” means a physical recording unit of a storage device and is also called a sector.

このような書直しに対応するために、例えば、ブロックに書き込む圧縮データ(以下ブロック・データともいう)全体を、書込みの成功が判明するまで主記憶または別途に設けられたバッファなどに一時的に保存しておくことが考えられる。こうすることにより、書込みの失敗が判明したならば、一時的に保存しておいたデータで再書込みをすればよい。   In order to cope with such rewriting, for example, the entire compressed data (hereinafter also referred to as block data) to be written to the block is temporarily stored in the main memory or a buffer provided separately until the writing succeeds. It is possible to save it. In this way, if writing failure is found, rewriting may be performed with temporarily stored data.

しかし、この手法では、主記憶上にブロック・データを保存する領域を確保するか、別途にバッファを設ける必要がある。システムによっては、主記憶上でそのための領域を確保できない場合もある。   However, in this method, it is necessary to secure an area for storing block data on the main memory or to provide a separate buffer. Depending on the system, there may be a case where an area for this purpose cannot be secured on the main memory.

その一方、ブロック・データを一時的保存しない場合には、書込み失敗と判明した時点でブロック・データが消失してしまう。この場合、ブロック・データを再度作り直す必要があり、そのために、圧縮装置の内部状態を当該ブロックの圧縮開始前の状態に戻す処理(ロールバック)が必要である。   On the other hand, if the block data is not temporarily stored, the block data is lost when it is determined that the writing has failed. In this case, it is necessary to recreate the block data, and therefore, a process (rollback) for returning the internal state of the compression device to the state before the compression of the block is required.

ところで、前述したように、可逆圧縮アルゴリズムでは、入力系列のうち先頭から現在に至る部分によって内部状態が決定するという特性がある。そのため、単純に入力系列の途中から再圧縮をしても、同じ符号語を生成することができない。   By the way, as described above, the lossless compression algorithm has a characteristic that the internal state is determined by the portion of the input sequence from the beginning to the present. For this reason, the same codeword cannot be generated even if recompression is performed from the middle of the input sequence.

また、符号語長は可変であり、そのサイズを圧縮前に予測することはできない。そのため、入力系列を一定量ごとに区切って圧縮しても、その一定量を圧縮して得た符号語系列が1つのブロックに収まりきらなかったり、逆にブロック長に対して短すぎたりなどの状況になりうる。   Also, the codeword length is variable and its size cannot be predicted before compression. Therefore, even if the input sequence is divided and compressed every fixed amount, the code word sequence obtained by compressing the fixed amount does not fit in one block, or conversely it is too short for the block length. It can be a situation.

さらに、圧縮して得た符号語系列をブロックのサイズごとに区切ろうとしても、符号語系列がブロック間にまたがってしまう可能性があるので、できない。仮に、ブロックの先頭と符号系列の境界が一致していたとしても、ブロック・データの先頭にある符号語が入力となる主記憶のどのアドレスと対応しているかは明らかではない。   Furthermore, it is not possible to delimit a codeword sequence obtained by compression for each block size because the codeword sequence may straddle between blocks. Even if the boundary between the head of the block and the code sequence coincides, it is not clear to which address in the main memory the code word at the head of the block data corresponds.

上述したようなことから、可逆圧縮では、圧縮データの書込単位となるブロック単位で圧縮データの再生成が困難であり、入力の最初から圧縮をやり直せざるを得ない場合が多々ある。   As described above, in lossless compression, it is difficult to regenerate compressed data in units of blocks, which are compressed data writing units, and there are many cases in which compression must be performed again from the beginning of input.

本発明は、上記事情を鑑みてなされたものであり、書込単位で圧縮後のデータの再生成が可能な可逆圧縮技術を提供する。   The present invention has been made in view of the above circumstances, and provides a lossless compression technique capable of regenerating data after compression in writing units.

本発明の1つの態様は、圧縮装置である。この圧縮装置は、圧縮実行部と、入力部と、先頭アドレス保持部と、書込部と、制御部を備える。   One aspect of the present invention is a compression device. The compression apparatus includes a compression execution unit, an input unit, a head address holding unit, a writing unit, and a control unit.

圧縮実行部は、入力されたデータに対して可逆圧縮を行って圧縮データを出力する。   The compression execution unit performs lossless compression on the input data and outputs compressed data.

入力部は、第1の記憶装置からデータを読み出して、前記圧縮実行部への入力の開始と停止を繰り返す。   The input unit reads data from the first storage device, and repeats the start and stop of input to the compression execution unit.

先頭アドレス保持部は、前記入力部による各回の入力毎に、今回に入力するデータの先頭が前記第1の記憶装置におけるアドレスを記憶する。   The head address holding unit stores the address of the first storage device at the head of the data input this time for each input by the input unit.

書込部は、前記入力部による各回の入力毎に、今回に入力したデータに対して前記圧縮実行部が出力した前記圧縮データを第2の記憶装置に書き込むと共に、今回の書込みの成功または失敗を示す完了信号を出力する。また、書込みに際しては、書き込むデータのサイズが前記第2の記憶装置の書込単位になるように前記圧縮データに所定のデータをパディングする。   The writing unit writes the compressed data output by the compression execution unit for the data input this time to the second storage device for each input by the input unit, and the success or failure of the current writing A completion signal indicating is output. In writing, the compressed data is padded with predetermined data so that the size of the data to be written becomes the writing unit of the second storage device.

制御部は、前記入力が入力を停止する度に前記圧縮実行部の内部状態をリセットし、または、前記入力部が入力を開始する度に前記圧縮実行部の内部状態を退避する。   The control unit resets the internal state of the compression execution unit every time the input stops input, or saves the internal state of the compression execution unit every time the input unit starts input.

また、前記入力部は、今回の入力により既に前記圧縮実行部に入力したデータの圧縮後のなり得る最大サイズが前記第2の記憶装置の前記書込単位に到達する前に入力を停止し、記書込部が前記完了信号を出力したときに入力を再開するものであり、再開に際しては、前記先頭アドレス保持部に保持された前回の入力に対応する前記アドレスと、前記完了信号とに応じて、前記圧縮実行部に入力するデータを決定する。   In addition, the input unit stops input before the maximum size that can be obtained after compression of the data already input to the compression execution unit by the current input reaches the writing unit of the second storage device, When the writing unit outputs the completion signal, the input is resumed. Upon restarting, the writing unit responds to the address corresponding to the previous input held in the head address holding unit and the completion signal. The data to be input to the compression execution unit is determined.

なお、上記態様の装置をシステムや方法に置き換えて表現したもの、コンピュータを該装置として実行せしめるプログラムなども、本発明の態様としては有効である。   Note that a representation in which the apparatus according to the above aspect is replaced with a system or method, a program that causes a computer to execute as the apparatus, and the like are also effective as an aspect of the present invention.

本発明にかかる技術によれば、圧縮データの書込先の記憶装置の書込単位で圧縮データの再生成が可能である。   According to the technology of the present invention, it is possible to regenerate compressed data in units of writing in a storage device to which compressed data is written.

本発明の第1の実施の形態にかかる可逆圧縮装置を示す図である。It is a figure which shows the reversible compression apparatus concerning the 1st Embodiment of this invention. 本発明の第2の実施の形態にかかる可逆圧縮装置を示す図である。It is a figure which shows the reversible compression apparatus concerning the 2nd Embodiment of this invention. 本発明の第3の実施の形態にかかる可逆圧縮装置を示す図である。It is a figure which shows the reversible compression apparatus concerning the 3rd Embodiment of this invention. 本発明の第4の実施の形態にかかる可逆圧縮装置を示す図である。It is a figure which shows the reversible compression apparatus concerning the 4th Embodiment of this invention.

以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。   Embodiments of the present invention will be described below with reference to the drawings. For clarity of explanation, the following description and drawings are omitted and simplified as appropriate. Each element described in the drawings as a functional block for performing various processes can be configured by a CPU, a memory, and other circuits in terms of hardware, and a program loaded in the memory in terms of software. Etc. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one. Note that, in each drawing, the same element is denoted by the same reference numeral, and redundant description is omitted as necessary.

また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   Further, the above-described program can be stored using various types of non-transitory computer readable media and supplied to a computer. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROM (Read Only Memory) CD-R, CD -R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)). The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

<第1の実施の形態>
図1は、本発明の実施の形態にかかる可逆圧縮装置100を示す。該可逆圧縮装置100は、例えば計算機に設けられ、ハイバネーションやスワッピングなどのために第1の記憶装置例えば主記憶(図示せず)上の情報系列を圧縮して第2の記憶装置例えば補助記憶(図示せず)に書き込むものであり、入力部110、圧縮実行部120、書込部130、サイズ計測部140、制御部150を備える。
<First Embodiment>
FIG. 1 shows a lossless compression apparatus 100 according to an embodiment of the present invention. The lossless compression apparatus 100 is provided in a computer, for example, and compresses an information sequence on a first storage device such as a main memory (not shown) for hibernation, swapping, etc., and a second storage device such as an auxiliary storage ( (Not shown), and includes an input unit 110, a compression execution unit 120, a writing unit 130, a size measuring unit 140, and a control unit 150.

入力部110は、サイズ計測部140からの後述する制御信号CTRと、書込部130からの後述する完了信号RSUにより制御され、圧縮対象のデータである情報系列D1を主記憶から読み出して、圧縮実行部120へのデータ入力の開始と停止を繰り返すことにより圧縮実行部120にデータを供給する。具体的には、入力部110は、制御信号CTRを受信すると圧縮実行部120へのデータ入力を停止し、完了信号RSUを受信すると圧縮実行部120へのデータ入力を再開する。   The input unit 110 is controlled by a control signal CTR (to be described later) from the size measuring unit 140 and a completion signal RSU (to be described later) from the writing unit 130, and reads out the information series D1 that is data to be compressed from the main memory and compresses it. Data is supplied to the compression execution unit 120 by repeating the start and stop of data input to the execution unit 120. Specifically, the input unit 110 stops data input to the compression execution unit 120 when receiving the control signal CTR, and resumes data input to the compression execution unit 120 when receiving the completion signal RSU.

また、入力部110は、先頭アドレス保持部112を備える。先頭アドレス保持部112は、例えばレジスタであり、入力部110が圧縮実行部120へのデータ入力を開始する度に、今回に入力するデータの先頭バイトの主記憶におけるアドレスを一時的に保存する。   In addition, the input unit 110 includes a head address holding unit 112. The start address holding unit 112 is, for example, a register, and temporarily stores the address in the main memory of the first byte of data input this time each time the input unit 110 starts to input data to the compression execution unit 120.

また、入力部110は、圧縮実行部120へのデータ入力の再開に際して、先頭アドレス保持部112に保持された前回の入力に対応するアドレスと、完了信号RSUとに応じて、圧縮実行部120に今回入力するデータを決定する。これについては、後に詳細を説明する。   Further, when resuming data input to the compression execution unit 120, the input unit 110 sends to the compression execution unit 120 according to the address corresponding to the previous input held in the head address holding unit 112 and the completion signal RSU. Determine the data to be entered this time. Details will be described later.

圧縮実行部120は、可逆圧縮を行うものであり、辞書バッファ122とマッチング結果保持部124を有する。圧縮実行部120は、入力部110から入力されるデータ(入力データD2という)を辞書バッファ122に投入してマッチングを行うと共に、マッチング結果保持部124に保持されたマッチング結果を更新しつつ符号語を生成することにより圧縮を行う。辞書バッファ122とマッチング結果保持部124は、可逆圧縮を行うこの種の圧縮装置に通常備えられるものであり、ここで詳細な説明を省略する。また、圧縮実行部120は、制御部150により内部状態(辞書バッファ122とマッチング結果保持部124の保存内容)の初期化(リセット)が可能である点を除き、圧縮のアルゴリズムなどは、非特許文献5に記載されたものなど、従来知られているこの種の可逆圧縮装置のものと同様である。以下、圧縮実行部120が入力データD2に対して圧縮を行って書込部130に出力するデータを「出力データD3」という。   The compression execution unit 120 performs lossless compression, and includes a dictionary buffer 122 and a matching result holding unit 124. The compression execution unit 120 inputs the data (input data D2) input from the input unit 110 into the dictionary buffer 122 to perform matching, and updates the matching result held in the matching result holding unit 124 while encoding the codeword To generate a compression. The dictionary buffer 122 and the matching result holding unit 124 are normally provided in this type of compression device that performs lossless compression, and detailed description thereof is omitted here. The compression execution unit 120 is not patented for the compression algorithm or the like except that the control unit 150 can initialize (reset) the internal state (contents stored in the dictionary buffer 122 and the matching result holding unit 124). This is the same as that of a conventionally known lossless compression apparatus such as that described in Document 5. Hereinafter, data that the compression executing unit 120 compresses the input data D2 and outputs to the writing unit 130 is referred to as “output data D3”.

分かりやすいように、入力部110が入力の開始から停止までを1回の入力という。また、入力部110の1回の入力により入力された全ての入力データD2に対して圧縮実行部120が行った圧縮を圧縮実行部120の1回の圧縮という。   For easy understanding, the input unit 110 from the start to the stop of input is referred to as one input. Further, the compression performed by the compression execution unit 120 on all input data D2 input by a single input of the input unit 110 is referred to as a single compression of the compression execution unit 120.

書込部130は、圧縮実行部120の各回の圧縮毎に、今回の圧縮により得た圧縮データ(出力データD3)を補助記憶に書き込むと共に、今回の書込みの成功または失敗を示す完了信号RSUを入力部110に出力する。また、書込部130は、書込みに際しては、書き込むデータのサイズが一定のサイズになるように出力データD3に所定のデータ(パディングデータ)を追加する。この一定のサイズは、補助記憶への書込単位となるブロックまたはセクタのサイズであり、以下「書込単位S1」という。なお、書込部130が出力データD3にパディングデータを付加して補助記憶に書き込むデータをブロック・データD4という。   The writing unit 130 writes the compressed data (output data D3) obtained by the current compression to the auxiliary memory for each compression of the compression execution unit 120, and also sends a completion signal RSU indicating the success or failure of the current writing. Output to the input unit 110. Further, when writing, the writing unit 130 adds predetermined data (padding data) to the output data D3 so that the size of the data to be written becomes a constant size. This fixed size is the size of a block or sector that is a unit of writing to the auxiliary storage, and is hereinafter referred to as “writing unit S1”. The data that the writing unit 130 adds padding data to the output data D3 and writes to the auxiliary memory is referred to as block data D4.

サイズ計測部140は、例えばカウンタであり、圧縮実行部120からの出力データD3のサイズ(例えばバイト数)をカウントし、カウント値が閾値S2以上になる度に、制御信号CTRを出力する。この制御信号CTRは、入力部110制御部150に出力される。また、サイズ計測部140は、制御信号CTRの出力後、次回のカウントのためにカウント値をクリアする。すなわち、サイズ計測部140は、入力部110による各回の入力毎に、今回の入力の開始から圧縮実行部120が出力した出力データD3のサイズを計測するものであり、計測したサイズが閾値S2になったときまたは閾値S2を超えたときに制御信号CTRを出力すると共に、カウント値をクリアする。   The size measurement unit 140 is, for example, a counter, counts the size (for example, the number of bytes) of the output data D3 from the compression execution unit 120, and outputs the control signal CTR every time the count value becomes equal to or greater than the threshold value S2. The control signal CTR is output to the input unit 110 control unit 150. Further, the size measuring unit 140 clears the count value for the next count after the output of the control signal CTR. That is, the size measurement unit 140 measures the size of the output data D3 output from the compression execution unit 120 from the start of the current input for each input by the input unit 110, and the measured size is set to the threshold value S2. The control signal CTR is output when the threshold value S2 is exceeded or the threshold value S2 is exceeded, and the count value is cleared.

制御部150は、サイズ計測部140から制御信号CTRを受信すると圧縮実行部120の内部状態をリセットする。すなわち、本実施の形態の可逆圧縮装置100において、制御部150は、サイズ計測部140のカウント値が閾値S2以上になる度、すなわち入力部110が入力を停止する度に圧縮実行部120の内部状態をリセットするリセット部として機能する。   When receiving the control signal CTR from the size measuring unit 140, the control unit 150 resets the internal state of the compression executing unit 120. That is, in the lossless compression apparatus 100 according to the present embodiment, the control unit 150 includes the internal portion of the compression execution unit 120 every time the count value of the size measurement unit 140 becomes equal to or greater than the threshold value S2, that is, every time the input unit 110 stops input. It functions as a reset unit that resets the state.

閾値S2は、サイズ計測部140により計測した出力データD3のサイズが該閾値S2以上に到達したときに入力部110からの入力を停止した場合に、今回に入力されたデータに対して圧縮実行部120が書込部130に出力した全てのデータのサイズが書込単位S1以下になるように定められている。   The threshold value S2 is a compression execution unit for the data input this time when the input from the input unit 110 is stopped when the size of the output data D3 measured by the size measurement unit 140 reaches the threshold value S2 or more. The size of all the data 120 output to the writing unit 130 is determined to be equal to or less than the writing unit S1.

例えば、閾値S2は、下記の式(1)に従って定められる。
閾値S2
=書込単位S1
−符号語最大ビット長×(入力済でありまだ圧縮データとして出力されていないデータの語数)−終了語ビット長 (1)
For example, the threshold value S2 is determined according to the following equation (1).
Threshold S2
= Writing unit S1
-Maximum codeword bit length x (number of data words that have been input but not yet output as compressed data)-End word bit length (1)

式(1)において、「符号語最大ビット長」は、圧縮実行部120が圧縮する際にデータ列を置き換える符号語のうちの最長の符号語のビット長である。「入力済でありまだ圧縮データとして出力されていないデータの語数」は、入力部110が今回のデータ入力において既に圧縮実行部120に出力したデータD2のうちの、まだ圧縮実行部120による処理中であり圧縮データとして出力されていないデータの語数である。「語」は、入力部110による入力時の単位であり、例えば「1バイト」である。また、「終了語ビット長」は、圧縮実行部120の今回の圧縮により得られた出力データD3の終了を示す語(終了語)のビット長である。本実施の形態の可逆圧縮装置100において、圧縮実行部120は、回毎の入力により入力されたデータの圧縮を完了するたびに、出力データD3の末尾に終了語を付加する。   In Expression (1), “codeword maximum bit length” is the bit length of the longest codeword of the codewords that replace the data string when the compression execution unit 120 compresses. “The number of words of data that have been input but not yet output as compressed data” is the data D2 that the input unit 110 has already output to the compression execution unit 120 in the current data input, and is still being processed by the compression execution unit 120 This is the number of data words that are not output as compressed data. The “word” is a unit at the time of input by the input unit 110, and is “1 byte”, for example. The “end word bit length” is a bit length of a word (end word) indicating the end of the output data D3 obtained by the current compression of the compression execution unit 120. In the lossless compression apparatus 100 according to the present embodiment, the compression execution unit 120 adds an end word to the end of the output data D3 every time compression of data input by each input is completed.

こうすることにより、圧縮実行部120の今回の圧縮により得られた出力データD3のサイズが書込単位S1になる前に、入力部110と圧縮実行部120の動作が停止する。そのため、圧縮実行部120の一回の圧縮により得られた出力データD3の総サイズが書込単位S1以下になる。   By doing so, the operations of the input unit 110 and the compression execution unit 120 are stopped before the size of the output data D3 obtained by the current compression of the compression execution unit 120 reaches the writing unit S1. Therefore, the total size of the output data D3 obtained by one compression of the compression execution unit 120 is equal to or less than the writing unit S1.

書込部130は、毎回の書込み時に、書込単位S1になるように出力データD3にパディングデータを付加するため、ブロック・データD4のサイズが常に書込単位S1と同一である。   Since the writing unit 130 adds padding data to the output data D3 so that the writing unit S1 becomes the writing unit S1 at every writing, the size of the block data D4 is always the same as the writing unit S1.

具体例を用いて説明する。例えば、書込単位S1は「1000バイト」であり、今回の入力により、既に1000バイトのデータD2が圧縮実行部120に出力されている。該1000バイトのデータD2のうちの9990バイト分は既に圧縮され、圧縮データ(出力データD3)として書込部130に出力されているとする。このとき、該1000バイトのうちの10バイトの「10」は、上記式(1)における「入力済でありまだ圧縮データとして出力されていないデータの語数」となる。   This will be described using a specific example. For example, the writing unit S1 is “1000 bytes”, and 1000 bytes of data D2 has already been output to the compression execution unit 120 by this input. It is assumed that 9990 bytes of the 1000-byte data D2 are already compressed and output to the writing unit 130 as compressed data (output data D3). At this time, “10” of 10 bytes out of the 1000 bytes is “the number of data words that have been input but not yet outputted as compressed data” in the above formula (1).

上記9990バイト分の圧縮後のサイズが995バイトであるとする。書込単位S1まで5バイトの余裕が残っている。ゆえに、最後の10バイト分が「5バイト−終了語ビット長」まで圧縮できるなら、圧縮実行部120が今回の圧縮により得られた出力データS3のサイズを書込単位S1以下に抑えることができる。なお、出力データS2のサイズが書込単位S1に未満であるときには、書込部120のパディングにより、ブロック・データD4のサイズは、書込単位S1になる。   Assume that the size of 9990 bytes after compression is 995 bytes. A 5-byte margin remains until the writing unit S1. Therefore, if the last 10 bytes can be compressed to “5 bytes-end word bit length”, the compression execution unit 120 can suppress the size of the output data S3 obtained by the current compression to the writing unit S1 or less. . When the size of the output data S2 is less than the writing unit S1, the size of the block data D4 becomes the writing unit S1 due to the padding of the writing unit 120.

入力部110は、完了信号RSUを受信すると、書込みが成功したか失敗したかに応じて異なる動作をする。具体的には、完了信号RSUが書込みの成功を示す場合に、入力部110は、先頭アドレス保持部112に保持されたアドレスを更新したうえで次に圧縮実行部120へ供給するデータの読出しと出力を開始する。これにより、圧縮実行部120は、次のブロックのデータの圧縮を開始する。   When receiving the completion signal RSU, the input unit 110 performs different operations depending on whether the writing is successful or unsuccessful. Specifically, when the completion signal RSU indicates successful writing, the input unit 110 updates the address held in the head address holding unit 112 and then reads the data to be supplied to the compression execution unit 120 next. Start output. As a result, the compression execution unit 120 starts to compress the data of the next block.

一方、完了信号RSUが書込みの失敗を示す場合には、入力部110は、先頭アドレス保持部112に保持されたアドレスから主記憶の読出しを行い、読み出したデータを圧縮実行部120に出力する。これにより、圧縮実行部120は、書込みが失敗したブロック・データの再生成を行う。   On the other hand, when the completion signal RSU indicates a write failure, the input unit 110 reads the main memory from the address held in the head address holding unit 112 and outputs the read data to the compression execution unit 120. As a result, the compression executing unit 120 regenerates the block data for which writing has failed.

このように、本実施の形態の可逆圧縮装置100によれば、圧縮実行部120からの出力データD3のサイズが閾値S2以上になる度に、入力部110によるデータ入力と圧縮実行部120による圧縮が停止されると共に、圧縮実行部120の内部状態がリセットされ、書込部130により一定のサイズ(書込単位S1)のブロック・データD4が補助記憶に書き込まれる。すなわち、1回の圧縮により得られた全ての圧縮データを1つのブロックに書込むことができる。また、先頭アドレス保持部112が今回圧縮実行部120に入力したデータの先頭ビットの主記憶におけるアドレスを保持しているため、ブロック・データD4の書込みが成功した場合には次のブロック・データD4を生成することができると共に、書込みが失敗した場合には、失敗したブロック・データD4の再生成が可能であり、情報系列D1を最初からやり直す必要がない。さらに、ブロック・データD4を一時的に保存するメモリを必要としない利点もある。   Thus, according to the lossless compression apparatus 100 of the present embodiment, every time the size of the output data D3 from the compression execution unit 120 exceeds the threshold S2, the data input by the input unit 110 and the compression by the compression execution unit 120 are performed. Is stopped, the internal state of the compression execution unit 120 is reset, and the writing unit 130 writes block data D4 of a certain size (writing unit S1) to the auxiliary storage. That is, all compressed data obtained by one compression can be written in one block. Since the head address holding unit 112 holds the address in the main memory of the first bit of the data input to the compression execution unit 120 this time, when the block data D4 has been successfully written, the next block data D4 If the writing fails, the failed block data D4 can be regenerated, and there is no need to redo the information series D1 from the beginning. Further, there is an advantage that a memory for temporarily storing the block data D4 is not required.

<第2の実施の形態>
図2は、本発明の第2の実施の形態にかかる可逆圧縮装置200を示す。可逆圧縮装置200は、入力部110の代わりに入力部210を備えたこと以外、入力部110と同様の構成を有する。入力部210も、入力キュー214を備える点を除き、入力部110と同様である。
<Second Embodiment>
FIG. 2 shows a lossless compression apparatus 200 according to the second embodiment of the present invention. The lossless compression apparatus 200 has the same configuration as the input unit 110 except that the input unit 210 is provided instead of the input unit 110. The input unit 210 is the same as the input unit 110 except that an input queue 214 is provided.

可逆圧縮装置200は、可逆圧縮装置100と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。   The lossless compression apparatus 200 can obtain the same effect as the lossless compression apparatus 100, and by providing the input queue 214, the information series D1 read from the main memory can be accumulated to some extent, so that data transfer is performed at high speed. At the same time, the control of the start and stop of input is simplified.

<第3の実施の形態>
図3は、本発明の第3の実施の形態にかかる可逆圧縮装置300を示す。可逆圧縮装置300は、バッファ320を備える点と、制御部350が可逆圧縮装置100における制御部150と異なる点とを除き、可逆圧縮装置100と同様である。ここで、制御部350とバッファ320についてのみ説明する。
<Third Embodiment>
FIG. 3 shows a lossless compression apparatus 300 according to the third embodiment of the present invention. The lossless compression apparatus 300 is the same as the lossless compression apparatus 100 except that the lossless compression apparatus 300 includes a buffer 320 and the control unit 350 is different from the control unit 150 in the lossless compression apparatus 100. Here, only the control unit 350 and the buffer 320 will be described.

制御部350は、圧縮実行部120による毎回の圧縮の開始時に、圧縮実行部120の内部状態すなわち辞書バッファ122とマッチング結果保持部124の内容をバッファ320にコピーする。   The control unit 350 copies the internal state of the compression execution unit 120, that is, the contents of the dictionary buffer 122 and the matching result holding unit 124 to the buffer 320 at the start of each compression by the compression execution unit 120.

バッファ320は、辞書バッファ122の内容のコピーを格納する辞書退避バッファ322と、マッチング結果保持部124の内容のコピーを格納するマッチング結果退避バッファ324を有する。制御部350は、圧縮実行部120による毎回の圧縮の開示時に、辞書バッファ122の内容を辞書退避バッファ322に上書きコピーし、マッチング結果保持部124の内容をマッチング結果退避バッファ324に上書きコピーする。   The buffer 320 includes a dictionary saving buffer 322 that stores a copy of the contents of the dictionary buffer 122 and a matching result saving buffer 324 that stores a copy of the contents of the matching result holding unit 124. The control unit 350 overwrites and copies the contents of the dictionary buffer 122 to the dictionary saving buffer 322 and overwrites the contents of the matching result holding unit 124 to the matching result saving buffer 324 when the compression execution unit 120 discloses each compression.

また、本実施の形態の可逆圧縮装置300において、書込部130からの完了信号RSUは、制御部350にも出力される。制御部350は、完了信号RSUに応じて、書込部130による書込みが失敗した場合には、辞書退避バッファ322とマッチング結果退避バッファ324の内容を辞書バッファ122とマッチング結果保持部124に夫々上書きコピーすることにより復帰させる。この場合、第1の実施の形態の可逆圧縮装置100の説明時に述べたように、入力部110が先頭アドレス保持部112により保持されたアドレスからデータの読出しと圧縮実行部120への入力を行うので、書込みが失敗したブロック・データD4の再生成が行われる。   Further, in the lossless compression apparatus 300 of the present embodiment, the completion signal RSU from the writing unit 130 is also output to the control unit 350. When the writing by the writing unit 130 fails in response to the completion signal RSU, the control unit 350 overwrites the contents of the dictionary saving buffer 322 and the matching result saving buffer 324 to the dictionary buffer 122 and the matching result holding unit 124, respectively. Restore by copying. In this case, as described in the description of the lossless compression apparatus 100 according to the first embodiment, the input unit 110 reads data from the address held by the head address holding unit 112 and inputs the data to the compression execution unit 120. Therefore, the block data D4 for which writing has failed is regenerated.

一方、完了信号RSUが書込部130による書込みが成功したことを示す場合に、制御部350は、バッファ320の内容を辞書バッファ122とマッチング結果保持部124への復帰処理をしない。前述したように、この場合、入力部110は、先頭アドレス保持部112に保持されたアドレスを更新した上で次に圧縮実行部120に入力すべきデータの読出しと入力を行うので、書込みが成功したブロック・データD4の次の圧縮データの再生成が行われる。   On the other hand, when the completion signal RSU indicates that the writing by the writing unit 130 is successful, the control unit 350 does not return the contents of the buffer 320 to the dictionary buffer 122 and the matching result holding unit 124. As described above, in this case, the input unit 110 updates the address held in the head address holding unit 112 and then reads and inputs data to be input to the compression execution unit 120 next. The compressed data next to the block data D4 is regenerated.

このように、本実施の形態の可逆圧縮装置300は、各回の圧縮の開始時に圧縮実行部120の内部状態をバッファ320に退避しておき、今回の圧縮により得られた圧縮データの書込みが失敗した場合にバッファ320に退避しておいた内容を圧縮実行部120に復帰させる。そのため、第1の実施の形態の可逆圧縮装置100と同様にブロック・データD4の書込みが失敗したときに該ブロック・データD4の再生成ができると共に、可逆圧縮装置100より圧縮の効率が向上する。   As described above, the lossless compression apparatus 300 according to the present embodiment saves the internal state of the compression execution unit 120 in the buffer 320 at the start of each compression, and writing of compressed data obtained by the current compression fails. In this case, the contents saved in the buffer 320 are returned to the compression execution unit 120. Therefore, the block data D4 can be regenerated when the writing of the block data D4 fails as in the lossless compression apparatus 100 of the first embodiment, and the compression efficiency is improved compared to the lossless compression apparatus 100. .

<第4の実施の形態>
図4は、本発明の第4の実施の形態にかかる可逆圧縮装置400を示す。可逆圧縮装置400は、可逆圧縮装置300において、入力部110の代わりに可逆圧縮装置200における圧縮実行部120を設けたものである。すなわち、可逆圧縮装置400は、入力部210に入力キュー214が備えられた点を除き、可逆圧縮装置300と同様である。
<Fourth embodiment>
FIG. 4 shows a lossless compression apparatus 400 according to the fourth embodiment of the present invention. The lossless compression apparatus 400 is the same as the lossless compression apparatus 300 except that the compression execution unit 120 in the lossless compression apparatus 200 is provided instead of the input unit 110. That is, the lossless compression apparatus 400 is the same as the lossless compression apparatus 300 except that the input unit 210 includes the input queue 214.

そのため、可逆圧縮装置400は、可逆圧縮装置300と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。   Therefore, the reversible compression apparatus 400 can obtain the same effect as the reversible compression apparatus 300, and by providing the input queue 214, the information series D1 read from the main memory can be accumulated to some extent, so that data transfer As a result, the input start and stop control becomes simple.

以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。   The present invention has been described above based on the embodiment. The embodiment is an exemplification, and various changes, increases / decreases, and combinations may be added to the above-described embodiment without departing from the gist of the present invention. It will be understood by those skilled in the art that modifications to which these changes, increases / decreases, and combinations are also within the scope of the present invention.

例えば、可逆圧縮装置100と可逆圧縮装置200において、制御部150が圧縮実行部120の外部に設けられているが、制御部150を圧縮実行部120内部に設けるようにしてもよい。   For example, in the lossless compression apparatus 100 and the lossless compression apparatus 200, the control unit 150 is provided outside the compression execution unit 120, but the control unit 150 may be provided inside the compression execution unit 120.

また、各実施の形態の可逆圧縮装置において、先頭アドレス保持部112が入力部110または入力部210の内部に設けられているが、先頭アドレス保持部112を入力部の外部に設けるようにしても、勿論よい。   In the lossless compression apparatus of each embodiment, the head address holding unit 112 is provided inside the input unit 110 or the input unit 210. However, the head address holding unit 112 may be provided outside the input unit. Of course.

また、上述した各実施の形態の圧縮装置において、サイズ計測部140を設け、該サイズ計測部により計測したサイズが式(1)により定められた閾値S2以上になったときに入力部110による入力を停止するようにしている。サイズ計測部140を設けずに、入力部110が、今回の入力により既に圧縮実行部120に入力したデータの圧縮後のなり得る最大サイズが書込単位S1に到達する前に今回の入力を停止するようにしてもよい。なお、「入力したデータの圧縮後のなり得る最大サイズ」は、例えば、既に入力したデータの語数と、符号語最大ビット長との積とすることができる。   In the compression apparatus of each embodiment described above, the size measuring unit 140 is provided, and when the size measured by the size measuring unit is equal to or larger than the threshold value S2 defined by the equation (1), the input by the input unit 110 is performed. Like to stop. Without providing the size measurement unit 140, the input unit 110 stops the current input before the maximum possible size after compression of the data already input to the compression execution unit 120 by the current input reaches the writing unit S1. You may make it do. The “maximum possible size after compression of input data” can be, for example, the product of the number of words of already input data and the maximum bit length of the code word.

この出願は、2011年5月30日に出願された日本出願特願2011−120037を基礎とする優先権を主張し、その開示の全てをここに取り込む。   This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2011-120037 for which it applied on May 30, 2011, and takes in those the indications of all here.

100 可逆圧縮装置 110 入力部
112 先頭アドレス保持部 120 圧縮実行部
122 辞書バッファ 124 マッチング結果保持部
130 書込部 140 サイズ計測部
150 制御部 200 可逆圧縮装置
210 入力部 214 入力キュー
300 可逆圧縮装置 320 バッファ
322 辞書退避バッファ 324 マッチング結果退避バッファ
350 制御部 400 可逆圧縮装置
CTR 制御信号 RSU 完了信号
DESCRIPTION OF SYMBOLS 100 Reversible compression apparatus 110 Input part 112 First address holding part 120 Compression execution part 122 Dictionary buffer 124 Matching result holding part 130 Writing part 140 Size measurement part 150 Control part 200 Lossless compression apparatus 210 Input part 214 Input queue 300 Lossless compression apparatus 320 Buffer 322 Dictionary saving buffer 324 Matching result saving buffer 350 Control unit 400 Lossless compression device CTR Control signal RSU completion signal

Claims (3)

入力されたデータに対して可逆圧縮を行って圧縮データを出力する圧縮実行手段と、
第1の記憶装置からデータを読み出して、前記圧縮実行手段への入力の開始と停止を繰り返す入力手段と、
前記入力手段による各回の入力毎に、今回に入力するデータの先頭が前記第1の記憶装置におけるアドレスを記憶する先頭アドレス保持手段と、
前記入力手段による各回の入力毎に、今回に入力したデータに対して前記圧縮実行手段が出力した前記圧縮データを第2の記憶装置に書き込むと共に、今回の書込みの成功または失敗を示す完了信号を出力する書込手段であって、書込みに際しては、書き込むデータのサイズが前記第2の記憶装置の書込単位になるように前記圧縮データに所定のデータをパディングする前記書込手段と、
前記入力手段が入力を停止する度に前記圧縮実行手段の内部状態をリセットし、または、前記入力手段が入力を開始する度に前記圧縮実行手段の内部状態を退避する制御手段とを備え、
前記入力手段は、今回の入力により既に前記圧縮実行手段に入力したデータの圧縮後のなり得る最大サイズが前記第2の記憶装置の前記書込単位に到達する前に入力を停止し、記書込手段が前記完了信号を出力したときに入力を再開するものであり、再開に際しては、前記先頭アドレス保持手段に保持された前回の入力に対応する前記アドレスと、前記完了信号とに応じて、前記圧縮実行手段に入力するデータを決定することを特徴とする圧縮装置。
Compression execution means for performing lossless compression on input data and outputting compressed data;
Input means for reading data from the first storage device and repeating start and stop of input to the compression execution means;
For each input by the input means, a head address holding means for storing the address in the first storage device at the head of the data input this time;
For each input by the input means, the compressed data output by the compression execution means for the data input this time is written to the second storage device, and a completion signal indicating the success or failure of the current write is provided. Writing means for outputting, in writing, the writing means for padding predetermined data into the compressed data so that the size of the data to be written is a writing unit of the second storage device;
A control unit that resets the internal state of the compression execution unit every time the input unit stops input, or saves the internal state of the compression execution unit every time the input unit starts input;
The input means stops the input before the maximum possible size after compression of the data already input to the compression executing means by the current input reaches the writing unit of the second storage device, The input means restarts the input when the completion signal is output, and upon restart, according to the address corresponding to the previous input held in the head address holding means and the completion signal, A compression apparatus for determining data to be input to the compression execution means.
前記入力手段による各回の入力毎に、前記入力の開始から前記圧縮実行手段が出力した前記圧縮データのサイズを計測するサイズ計測手段をさらに備え、
前記圧縮実行手段は、各回に入力されたデータを圧縮して得た圧縮データの末尾に終了語を付加し、
前記入力手段は、前記サイズ計測手段により計測されたサイズが閾値に到達したときに入力を停止し、
前記閾値は、式(1)に従って定められていることを特徴とする請求項1に記載の圧縮装置。
閾値
=書込単位
−符号語最大ビット長×(入力済でありまだ圧縮データとして出力されていないデータの語数)−終了語ビット長 (1)
A size measuring unit that measures the size of the compressed data output by the compression execution unit from the start of the input for each input by the input unit;
The compression execution means adds an end word to the end of the compressed data obtained by compressing the data input each time,
The input means stops input when the size measured by the size measuring means reaches a threshold,
The compression apparatus according to claim 1, wherein the threshold value is determined according to Equation (1).
Threshold = Writing unit −Maximum bit length of code word × (Number of data words that have been input but not yet output as compressed data) −End word bit length (1)
前記入力手段は、前記第1の記憶装置から読み出したデータを一時的に格納する入力キューを備えることを特徴とする請求項1または2に記載の圧縮装置。   The compression apparatus according to claim 1, wherein the input unit includes an input queue that temporarily stores data read from the first storage device.
JP2013517825A 2011-05-30 2012-04-18 Compression device Active JP5825347B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013517825A JP5825347B2 (en) 2011-05-30 2012-04-18 Compression device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011120037 2011-05-30
JP2011120037 2011-05-30
PCT/JP2012/002660 WO2012164813A1 (en) 2011-05-30 2012-04-18 Compression device
JP2013517825A JP5825347B2 (en) 2011-05-30 2012-04-18 Compression device

Publications (2)

Publication Number Publication Date
JPWO2012164813A1 JPWO2012164813A1 (en) 2014-07-31
JP5825347B2 true JP5825347B2 (en) 2015-12-02

Family

ID=47258691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013517825A Active JP5825347B2 (en) 2011-05-30 2012-04-18 Compression device

Country Status (2)

Country Link
JP (1) JP5825347B2 (en)
WO (1) WO2012164813A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6613568B2 (en) * 2015-01-19 2019-12-04 富士通株式会社 Processing program, processing apparatus, and processing method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242631A (en) * 1998-02-26 1999-09-07 Toshiba Corp Computer system and data preserving/restoring method for the same
JP2000276363A (en) * 1999-03-26 2000-10-06 Nec Corp Method and device for swapping processing in storage hierarchy system
JP2003174650A (en) * 2001-09-27 2003-06-20 Canon Inc Image coding apparatus, variable-length coding apparatus, control apparatus, and method thereof
WO2010055937A1 (en) * 2008-11-17 2010-05-20 日本電気株式会社 Computer system, data storage method, and program
JP5533083B2 (en) * 2010-03-16 2014-06-25 株式会社リコー Data processing apparatus and data processing method

Also Published As

Publication number Publication date
WO2012164813A1 (en) 2012-12-06
JPWO2012164813A1 (en) 2014-07-31

Similar Documents

Publication Publication Date Title
KR102319657B1 (en) Managing operations on stored data units
KR101074010B1 (en) Block unit data compression and decompression method and apparatus thereof
CN103119563B (en) Decoding in solid-state memory device
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
US9214954B2 (en) Increasing speed of data compression
US10224959B2 (en) Techniques for data compression verification
KR102275431B1 (en) Managing operations on stored data units
KR20030022896A (en) Dual mode data compression for operating code
US9882582B2 (en) Non-transitory computer-readable recording medium, encoding method, encoding device, decoding method, and decoding device
CN112615628A (en) Hardware friendly data compression
US9362948B2 (en) System, method, and computer program product for saving and restoring a compression/decompression state
US20180267746A1 (en) Readout control device, storage controller, and computer program product
US10230392B2 (en) Techniques for parallel data decompression
KR20150126667A (en) Managing operations on stored data units
JP5825347B2 (en) Compression device
JP7282066B2 (en) Data compression device and data compression method
JP5492103B2 (en) Backup apparatus, backup method, data compression method, backup program, and data compression program
CN116136741A (en) Storage system and data processing method in storage system
US9496895B2 (en) Compression method and decompression method
US11461008B2 (en) Memory system for improving compression performance of a dictionary coder circuit
JP2010079535A (en) Data access device
US11397546B2 (en) Memory system
US10707897B1 (en) Command processor with multiple string copy engines for a decompression system
KR102085690B1 (en) Flash storage device with error correction function and operating method thereof
KR101418540B1 (en) Decompression method and apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150928

R150 Certificate of patent or registration of utility model

Ref document number: 5825347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150