JP5825347B2 - Compression device - Google Patents
Compression device Download PDFInfo
- 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
Links
- 238000007906 compression Methods 0.000 title claims description 178
- 230000006835 compression Effects 0.000 title claims description 178
- 238000000034 method Methods 0.000 description 26
- 230000002441 reversible effect Effects 0.000 description 8
- 230000006266 hibernation Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed 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.
しかしながら、上述した可逆圧縮手法では、データの可逆圧縮を行う際の処理速度を落とすことなく、圧縮率を維持することが困難という問題点がある。その理由は、可逆圧縮手法は、圧縮に関わる処理速度と、圧縮率との間でトレードオフの関係があるためである。特に、計算機の主記憶に格納されたデータの可逆圧縮の際に、このような問題点が顕著となる。そこで、以下に具体的に述べる。 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.
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、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
入力部110は、サイズ計測部140からの後述する制御信号CTRと、書込部130からの後述する完了信号RSUにより制御され、圧縮対象のデータである情報系列D1を主記憶から読み出して、圧縮実行部120へのデータ入力の開始と停止を繰り返すことにより圧縮実行部120にデータを供給する。具体的には、入力部110は、制御信号CTRを受信すると圧縮実行部120へのデータ入力を停止し、完了信号RSUを受信すると圧縮実行部120へのデータ入力を再開する。
The
また、入力部110は、先頭アドレス保持部112を備える。先頭アドレス保持部112は、例えばレジスタであり、入力部110が圧縮実行部120へのデータ入力を開始する度に、今回に入力するデータの先頭バイトの主記憶におけるアドレスを一時的に保存する。
In addition, the
また、入力部110は、圧縮実行部120へのデータ入力の再開に際して、先頭アドレス保持部112に保持された前回の入力に対応するアドレスと、完了信号RSUとに応じて、圧縮実行部120に今回入力するデータを決定する。これについては、後に詳細を説明する。
Further, when resuming data input to the
圧縮実行部120は、可逆圧縮を行うものであり、辞書バッファ122とマッチング結果保持部124を有する。圧縮実行部120は、入力部110から入力されるデータ(入力データD2という)を辞書バッファ122に投入してマッチングを行うと共に、マッチング結果保持部124に保持されたマッチング結果を更新しつつ符号語を生成することにより圧縮を行う。辞書バッファ122とマッチング結果保持部124は、可逆圧縮を行うこの種の圧縮装置に通常備えられるものであり、ここで詳細な説明を省略する。また、圧縮実行部120は、制御部150により内部状態(辞書バッファ122とマッチング結果保持部124の保存内容)の初期化(リセット)が可能である点を除き、圧縮のアルゴリズムなどは、非特許文献5に記載されたものなど、従来知られているこの種の可逆圧縮装置のものと同様である。以下、圧縮実行部120が入力データD2に対して圧縮を行って書込部130に出力するデータを「出力データD3」という。
The
分かりやすいように、入力部110が入力の開始から停止までを1回の入力という。また、入力部110の1回の入力により入力された全ての入力データD2に対して圧縮実行部120が行った圧縮を圧縮実行部120の1回の圧縮という。
For easy understanding, the
書込部130は、圧縮実行部120の各回の圧縮毎に、今回の圧縮により得た圧縮データ(出力データD3)を補助記憶に書き込むと共に、今回の書込みの成功または失敗を示す完了信号RSUを入力部110に出力する。また、書込部130は、書込みに際しては、書き込むデータのサイズが一定のサイズになるように出力データD3に所定のデータ(パディングデータ)を追加する。この一定のサイズは、補助記憶への書込単位となるブロックまたはセクタのサイズであり、以下「書込単位S1」という。なお、書込部130が出力データD3にパディングデータを付加して補助記憶に書き込むデータをブロック・データD4という。
The
サイズ計測部140は、例えばカウンタであり、圧縮実行部120からの出力データD3のサイズ(例えばバイト数)をカウントし、カウント値が閾値S2以上になる度に、制御信号CTRを出力する。この制御信号CTRは、入力部110制御部150に出力される。また、サイズ計測部140は、制御信号CTRの出力後、次回のカウントのためにカウント値をクリアする。すなわち、サイズ計測部140は、入力部110による各回の入力毎に、今回の入力の開始から圧縮実行部120が出力した出力データD3のサイズを計測するものであり、計測したサイズが閾値S2になったときまたは閾値S2を超えたときに制御信号CTRを出力すると共に、カウント値をクリアする。
The
制御部150は、サイズ計測部140から制御信号CTRを受信すると圧縮実行部120の内部状態をリセットする。すなわち、本実施の形態の可逆圧縮装置100において、制御部150は、サイズ計測部140のカウント値が閾値S2以上になる度、すなわち入力部110が入力を停止する度に圧縮実行部120の内部状態をリセットするリセット部として機能する。
When receiving the control signal CTR from the
閾値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
例えば、閾値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
こうすることにより、圧縮実行部120の今回の圧縮により得られた出力データD3のサイズが書込単位S1になる前に、入力部110と圧縮実行部120の動作が停止する。そのため、圧縮実行部120の一回の圧縮により得られた出力データD3の総サイズが書込単位S1以下になる。
By doing so, the operations of the
書込部130は、毎回の書込み時に、書込単位S1になるように出力データD3にパディングデータを付加するため、ブロック・データD4のサイズが常に書込単位S1と同一である。
Since the
具体例を用いて説明する。例えば、書込単位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
上記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
入力部110は、完了信号RSUを受信すると、書込みが成功したか失敗したかに応じて異なる動作をする。具体的には、完了信号RSUが書込みの成功を示す場合に、入力部110は、先頭アドレス保持部112に保持されたアドレスを更新したうえで次に圧縮実行部120へ供給するデータの読出しと出力を開始する。これにより、圧縮実行部120は、次のブロックのデータの圧縮を開始する。
When receiving the completion signal RSU, the
一方、完了信号RSUが書込みの失敗を示す場合には、入力部110は、先頭アドレス保持部112に保持されたアドレスから主記憶の読出しを行い、読み出したデータを圧縮実行部120に出力する。これにより、圧縮実行部120は、書込みが失敗したブロック・データの再生成を行う。
On the other hand, when the completion signal RSU indicates a write failure, the
このように、本実施の形態の可逆圧縮装置100によれば、圧縮実行部120からの出力データD3のサイズが閾値S2以上になる度に、入力部110によるデータ入力と圧縮実行部120による圧縮が停止されると共に、圧縮実行部120の内部状態がリセットされ、書込部130により一定のサイズ(書込単位S1)のブロック・データD4が補助記憶に書き込まれる。すなわち、1回の圧縮により得られた全ての圧縮データを1つのブロックに書込むことができる。また、先頭アドレス保持部112が今回圧縮実行部120に入力したデータの先頭ビットの主記憶におけるアドレスを保持しているため、ブロック・データD4の書込みが成功した場合には次のブロック・データD4を生成することができると共に、書込みが失敗した場合には、失敗したブロック・データD4の再生成が可能であり、情報系列D1を最初からやり直す必要がない。さらに、ブロック・データD4を一時的に保存するメモリを必要としない利点もある。
Thus, according to the
<第2の実施の形態>
図2は、本発明の第2の実施の形態にかかる可逆圧縮装置200を示す。可逆圧縮装置200は、入力部110の代わりに入力部210を備えたこと以外、入力部110と同様の構成を有する。入力部210も、入力キュー214を備える点を除き、入力部110と同様である。<Second Embodiment>
FIG. 2 shows a
可逆圧縮装置200は、可逆圧縮装置100と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。
The
<第3の実施の形態>
図3は、本発明の第3の実施の形態にかかる可逆圧縮装置300を示す。可逆圧縮装置300は、バッファ320を備える点と、制御部350が可逆圧縮装置100における制御部150と異なる点とを除き、可逆圧縮装置100と同様である。ここで、制御部350とバッファ320についてのみ説明する。<Third Embodiment>
FIG. 3 shows a
制御部350は、圧縮実行部120による毎回の圧縮の開始時に、圧縮実行部120の内部状態すなわち辞書バッファ122とマッチング結果保持部124の内容をバッファ320にコピーする。
The
バッファ320は、辞書バッファ122の内容のコピーを格納する辞書退避バッファ322と、マッチング結果保持部124の内容のコピーを格納するマッチング結果退避バッファ324を有する。制御部350は、圧縮実行部120による毎回の圧縮の開示時に、辞書バッファ122の内容を辞書退避バッファ322に上書きコピーし、マッチング結果保持部124の内容をマッチング結果退避バッファ324に上書きコピーする。
The
また、本実施の形態の可逆圧縮装置300において、書込部130からの完了信号RSUは、制御部350にも出力される。制御部350は、完了信号RSUに応じて、書込部130による書込みが失敗した場合には、辞書退避バッファ322とマッチング結果退避バッファ324の内容を辞書バッファ122とマッチング結果保持部124に夫々上書きコピーすることにより復帰させる。この場合、第1の実施の形態の可逆圧縮装置100の説明時に述べたように、入力部110が先頭アドレス保持部112により保持されたアドレスからデータの読出しと圧縮実行部120への入力を行うので、書込みが失敗したブロック・データD4の再生成が行われる。
Further, in the
一方、完了信号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
このように、本実施の形態の可逆圧縮装置300は、各回の圧縮の開始時に圧縮実行部120の内部状態をバッファ320に退避しておき、今回の圧縮により得られた圧縮データの書込みが失敗した場合にバッファ320に退避しておいた内容を圧縮実行部120に復帰させる。そのため、第1の実施の形態の可逆圧縮装置100と同様にブロック・データD4の書込みが失敗したときに該ブロック・データD4の再生成ができると共に、可逆圧縮装置100より圧縮の効率が向上する。
As described above, the
<第4の実施の形態>
図4は、本発明の第4の実施の形態にかかる可逆圧縮装置400を示す。可逆圧縮装置400は、可逆圧縮装置300において、入力部110の代わりに可逆圧縮装置200における圧縮実行部120を設けたものである。すなわち、可逆圧縮装置400は、入力部210に入力キュー214が備えられた点を除き、可逆圧縮装置300と同様である。<Fourth embodiment>
FIG. 4 shows a
そのため、可逆圧縮装置400は、可逆圧縮装置300と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。
Therefore, the
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。 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
また、各実施の形態の可逆圧縮装置において、先頭アドレス保持部112が入力部110または入力部210の内部に設けられているが、先頭アドレス保持部112を入力部の外部に設けるようにしても、勿論よい。
In the lossless compression apparatus of each embodiment, the head
また、上述した各実施の形態の圧縮装置において、サイズ計測部140を設け、該サイズ計測部により計測したサイズが式(1)により定められた閾値S2以上になったときに入力部110による入力を停止するようにしている。サイズ計測部140を設けずに、入力部110が、今回の入力により既に圧縮実行部120に入力したデータの圧縮後のなり得る最大サイズが書込単位S1に到達する前に今回の入力を停止するようにしてもよい。なお、「入力したデータの圧縮後のなり得る最大サイズ」は、例えば、既に入力したデータの語数と、符号語最大ビット長との積とすることができる。
In the compression apparatus of each embodiment described above, the
この出願は、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
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)
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)
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)
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 |
-
2012
- 2012-04-18 WO PCT/JP2012/002660 patent/WO2012164813A1/en active Application Filing
- 2012-04-18 JP JP2013517825A patent/JP5825347B2/en active Active
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 |