WO2012164813A1 - 圧縮装置 - Google Patents

圧縮装置 Download PDF

Info

Publication number
WO2012164813A1
WO2012164813A1 PCT/JP2012/002660 JP2012002660W WO2012164813A1 WO 2012164813 A1 WO2012164813 A1 WO 2012164813A1 JP 2012002660 W JP2012002660 W JP 2012002660W WO 2012164813 A1 WO2012164813 A1 WO 2012164813A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
data
compression
unit
writing
Prior art date
Application number
PCT/JP2012/002660
Other languages
English (en)
French (fr)
Inventor
澄夫 森岡
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2013517825A priority Critical patent/JP5825347B2/ja
Publication of WO2012164813A1 publication Critical patent/WO2012164813A1/ja

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

Abstract

 入力部(110)は、主記憶からデータを読み出して、可逆圧縮を行う圧縮実行部(120)への入力の開始と停止を繰り返す。先頭アドレス保持部(112)は、入力部(110)が今回に入力するデータの先頭が主記憶におけるアドレスを記憶する。書込部(130)は、圧縮実行部(120)が毎回に出力した圧縮データを補助記憶に書き込む際に、サイズが補助の書込単位になるように圧縮データに所定のデータをパディングする。制御部(150)は、入力部(110)が入力を停止する度に圧縮実行部(120)の内部状態をリセットする。入力部(110)は、今回の入力により既に圧縮実行部に入力したデータの圧縮後のなり得る最大サイズが補助記憶の書込単位に到達する前に入力を停止する。このようにして、圧縮データの書込先の記憶装置の書込単位で圧縮データの再生成を可能にする。

Description

圧縮装置
 本発明は、圧縮、特に可逆圧縮技術に関する。
 データの可逆圧縮技術は、ロスレス圧縮とも呼ばれ、データ系列を完全に復元可能な状態で圧縮することで、データ量を削減する技術である。データ可逆圧縮技術は、伸張(復元)後にデータが元通りになる必要のあるデータ系列を圧縮する目的で、頻繁に使用されている(例えば特許文献1-2)。
 データ可逆圧縮技術のアルゴリズムは、例えば、非特許文献1-4に開示されている。非特許文献1乃至4に開示されたように、可逆圧縮では、ハフマン符号化やランレングス符号化、算術符号、LZ符号及びその変形など、データ系列中の繰り返しパターンを探索するアルゴリズムが主流である。また、非特許文献5には、LZにおけるハードウェア装置向けの高速実装手法が開示されている。
 また、計算機内の主記憶に格納されたデータについては、当該計算機の装置電源を一時オフにした時に、主記憶から補助記憶である不揮発記憶へデータを退避する処理であるハイバネーションを行うものが知られている。特許文献3-5には、ハイバネーションの際に可逆圧縮や非可逆圧縮を適用することによって、退避及び復帰にかかる時間を短縮する技術が開示されている。また、プログラム等については可逆圧縮、画像等については非可逆圧縮を適用可能である。
 また、特許文献3-5に記載された技術は、スワッピングにも適用可能である。スワッピングとは、計算機の動作中において、使用頻度の低いプロセスを一時的に主記憶から補助記憶装置へ退避して、主記憶の領域を開放する処理である。
国際公開第2000/021199号 特開平10-173541号公報 特開2004-038545号公報 特開2004-038546号公報 国際公開第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. 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. 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.
 しかしながら、上述した可逆圧縮手法では、データの可逆圧縮を行う際の処理速度を落とすことなく、圧縮率を維持することが困難という問題点がある。その理由は、可逆圧縮手法は、圧縮に関わる処理速度と、圧縮率との間でトレードオフの関係があるためである。特に、計算機の主記憶に格納されたデータの可逆圧縮の際に、このような問題点が顕著となる。そこで、以下に具体的に述べる。
 上述したハイバネーションやスワッピングなどを高速化するためには、計算機の主記憶に格納されたデータを圧縮することが有効である。特に、近年、主記憶の容量が著しく増大している。そのため、主記憶である揮発性記憶領域から補助記憶である不揮発性記憶領域への退避及び復帰処理には、以前に比べて長時間を要するようになった。そのため、主記憶に格納するデータを圧縮する必要性が高まっている。
 計算機主記憶の内容を圧縮する場合、例えば非特許文献1-5に開示された汎用的な可逆圧縮手法を用いるか、又は、例えば特許文献3-4に開示されたようにデータ内容に応じて複数の圧縮手法を切り替えることが考えられる。ところで、計算機の主記憶に格納されたデータの内容は画像等に特定されていない。そこで、特許文献3-4に開示された技術を適用すると、対象データについて都度、圧縮の可否を判定する必要があり、判定処理の負荷が高い。そのため、データ内容に応じて複数の圧縮手法を切り替えるという手法は、処理が複雑であるため、長い処理時間を要する。また、当該手法は、データ内容の判別が困難であるため、一般的な利用には適さない。
 そのため、主記憶に格納されたデータを圧縮するには、汎用的な可逆圧縮手法を利用することが望ましい。しかし、単一の汎用的な可逆圧縮手法である算術符号など計算量の多いアルゴリズムでは、圧縮及び伸張に長時間かかってしまうため、ハイバネーションやスワッピングなどを高速化することができない。
 一方、汎用的な可逆圧縮手法のうちLZについては、例えば非特許文献5に開示されたように、ハードウェア装置向けの高速実装手法が知られている。そのため、主記憶に格納されたデータを圧縮するために、LZを用いることは適切と考えられる。
 LZ圧縮ではパターン・マッチングが行われる。具体的には、あるデータ列に着目して、それが以前に出現したことがあるかをチェックし、既に出現したことがあるのならば、そのデータ列を示す何らかの符号に置き換えることにより圧縮を行う。当然ながら、データ列を置き換える符号は、データ列より短い。
 ここで、置換えの対象となるデータ列は、辞書に登録されるようになっている。このようなデータ列は、あらかじめデータに存在するものと決まっているならば、先に辞書を作成しておくことも可能であるが、画像データのように、どのようなデータ列が存在するのか予測できないような場合は、圧縮を行いながら、同時に辞書を作成していく必要がある。この場合、ある時点での圧縮装置の内部状態(辞書の内容など)は、過去の先頭からの入力系列を反映している。
 また、LZに限らず可逆圧縮は、実際に圧縮してみるまでは圧縮後データのサイズが分からないという性質を持つ。このため、圧縮後のデータを記憶する領域が元の主記憶上のどのアドレスに対応するかは、主記憶上にどのようなデータが存在していたかによって変動すると共に、圧縮前に予測することができない。
 また、可逆圧縮の符号語はビット単位で可変長である。圧縮後のデータは符号語が順に並んだものであるが、そこにおいて符号語は、バイト境界やワード境界をまたぐ形となりうる。
 ここで、ハイバネーションやスワッピングなどにおいて不揮発記憶に圧縮後のデータを書き込む際、書込みエラーが生じた場合を考える。不揮発記憶への書込みは一定サイズのブロック単位で物理ブロック・アドレスを指定して行われるが、あるブロックの書込みに失敗した場合、異なる物理ブロック・アドレスへの書直しが必要となる。なお、「ブロック」とは、記憶装置の物理的な記録単位を意味し、セクタとも呼ばれる。
 このような書直しに対応するために、例えば、ブロックに書き込む圧縮データ(以下ブロック・データともいう)全体を、書込みの成功が判明するまで主記憶または別途に設けられたバッファなどに一時的に保存しておくことが考えられる。こうすることにより、書込みの失敗が判明したならば、一時的に保存しておいたデータで再書込みをすればよい。
 しかし、この手法では、主記憶上にブロック・データを保存する領域を確保するか、別途にバッファを設ける必要がある。システムによっては、主記憶上でそのための領域を確保できない場合もある。
 その一方、ブロック・データを一時的保存しない場合には、書込み失敗と判明した時点でブロック・データが消失してしまう。この場合、ブロック・データを再度作り直す必要があり、そのために、圧縮装置の内部状態を当該ブロックの圧縮開始前の状態に戻す処理(ロールバック)が必要である。
 ところで、前述したように、可逆圧縮アルゴリズムでは、入力系列のうち先頭から現在に至る部分によって内部状態が決定するという特性がある。そのため、単純に入力系列の途中から再圧縮をしても、同じ符号語を生成することができない。
 また、符号語長は可変であり、そのサイズを圧縮前に予測することはできない。そのため、入力系列を一定量ごとに区切って圧縮しても、その一定量を圧縮して得た符号語系列が1つのブロックに収まりきらなかったり、逆にブロック長に対して短すぎたりなどの状況になりうる。
 さらに、圧縮して得た符号語系列をブロックのサイズごとに区切ろうとしても、符号語系列がブロック間にまたがってしまう可能性があるので、できない。仮に、ブロックの先頭と符号系列の境界が一致していたとしても、ブロック・データの先頭にある符号語が入力となる主記憶のどのアドレスと対応しているかは明らかではない。
 上述したようなことから、可逆圧縮では、圧縮データの書込単位となるブロック単位で圧縮データの再生成が困難であり、入力の最初から圧縮をやり直せざるを得ない場合が多々ある。
 本発明は、上記事情を鑑みてなされたものであり、書込単位で圧縮後のデータの再生成が可能な可逆圧縮技術を提供する。
 本発明の1つの態様は、圧縮装置である。この圧縮装置は、圧縮実行部と、入力部と、先頭アドレス保持部と、書込部と、制御部を備える。
 圧縮実行部は、入力されたデータに対して可逆圧縮を行って圧縮データを出力する。
 入力部は、第1の記憶装置からデータを読み出して、前記圧縮実行部への入力の開始と停止を繰り返す。
 先頭アドレス保持部は、前記入力部による各回の入力毎に、今回に入力するデータの先頭が前記第1の記憶装置におけるアドレスを記憶する。
 書込部は、前記入力部による各回の入力毎に、今回に入力したデータに対して前記圧縮実行部が出力した前記圧縮データを第2の記憶装置に書き込むと共に、今回の書込みの成功または失敗を示す完了信号を出力する。また、書込みに際しては、書き込むデータのサイズが前記第2の記憶装置の書込単位になるように前記圧縮データに所定のデータをパディングする。
 制御部は、前記入力が入力を停止する度に前記圧縮実行部の内部状態をリセットし、または、前記入力部が入力を開始する度に前記圧縮実行部の内部状態を退避する。
 また、前記入力部は、今回の入力により既に前記圧縮実行部に入力したデータの圧縮後のなり得る最大サイズが前記第2の記憶装置の前記書込単位に到達する前に入力を停止し、記書込部が前記完了信号を出力したときに入力を再開するものであり、再開に際しては、前記先頭アドレス保持部に保持された前回の入力に対応する前記アドレスと、前記完了信号とに応じて、前記圧縮実行部に入力するデータを決定する。
 なお、上記態様の装置をシステムや方法に置き換えて表現したもの、コンピュータを該装置として実行せしめるプログラムなども、本発明の態様としては有効である。
 本発明にかかる技術によれば、圧縮データの書込先の記憶装置の書込単位で圧縮データの再生成が可能である。
本発明の第1の実施の形態にかかる可逆圧縮装置を示す図である。 本発明の第2の実施の形態にかかる可逆圧縮装置を示す図である。 本発明の第3の実施の形態にかかる可逆圧縮装置を示す図である。 本発明の第4の実施の形態にかかる可逆圧縮装置を示す図である。
 以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
 また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<第1の実施の形態>
 図1は、本発明の実施の形態にかかる可逆圧縮装置100を示す。該可逆圧縮装置100は、例えば計算機に設けられ、ハイバネーションやスワッピングなどのために第1の記憶装置例えば主記憶(図示せず)上の情報系列を圧縮して第2の記憶装置例えば補助記憶(図示せず)に書き込むものであり、入力部110、圧縮実行部120、書込部130、サイズ計測部140、制御部150を備える。
 入力部110は、サイズ計測部140からの後述する制御信号CTRと、書込部130からの後述する完了信号RSUにより制御され、圧縮対象のデータである情報系列D1を主記憶から読み出して、圧縮実行部120へのデータ入力の開始と停止を繰り返すことにより圧縮実行部120にデータを供給する。具体的には、入力部110は、制御信号CTRを受信すると圧縮実行部120へのデータ入力を停止し、完了信号RSUを受信すると圧縮実行部120へのデータ入力を再開する。
 また、入力部110は、先頭アドレス保持部112を備える。先頭アドレス保持部112は、例えばレジスタであり、入力部110が圧縮実行部120へのデータ入力を開始する度に、今回に入力するデータの先頭バイトの主記憶におけるアドレスを一時的に保存する。
 また、入力部110は、圧縮実行部120へのデータ入力の再開に際して、先頭アドレス保持部112に保持された前回の入力に対応するアドレスと、完了信号RSUとに応じて、圧縮実行部120に今回入力するデータを決定する。これについては、後に詳細を説明する。
 圧縮実行部120は、可逆圧縮を行うものであり、辞書バッファ122とマッチング結果保持部124を有する。圧縮実行部120は、入力部110から入力されるデータ(入力データD2という)を辞書バッファ122に投入してマッチングを行うと共に、マッチング結果保持部124に保持されたマッチング結果を更新しつつ符号語を生成することにより圧縮を行う。辞書バッファ122とマッチング結果保持部124は、可逆圧縮を行うこの種の圧縮装置に通常備えられるものであり、ここで詳細な説明を省略する。また、圧縮実行部120は、制御部150により内部状態(辞書バッファ122とマッチング結果保持部124の保存内容)の初期化(リセット)が可能である点を除き、圧縮のアルゴリズムなどは、非特許文献5に記載されたものなど、従来知られているこの種の可逆圧縮装置のものと同様である。以下、圧縮実行部120が入力データD2に対して圧縮を行って書込部130に出力するデータを「出力データD3」という。
 分かりやすいように、入力部110が入力の開始から停止までを1回の入力という。また、入力部110の1回の入力により入力された全ての入力データD2に対して圧縮実行部120が行った圧縮を圧縮実行部120の1回の圧縮という。
 書込部130は、圧縮実行部120の各回の圧縮毎に、今回の圧縮により得た圧縮データ(出力データD3)を補助記憶に書き込むと共に、今回の書込みの成功または失敗を示す完了信号RSUを入力部110に出力する。また、書込部130は、書込みに際しては、書き込むデータのサイズが一定のサイズになるように出力データD3に所定のデータ(パディングデータ)を追加する。この一定のサイズは、補助記憶への書込単位となるブロックまたはセクタのサイズであり、以下「書込単位S1」という。なお、書込部130が出力データD3にパディングデータを付加して補助記憶に書き込むデータをブロック・データD4という。
 サイズ計測部140は、例えばカウンタであり、圧縮実行部120からの出力データD3のサイズ(例えばバイト数)をカウントし、カウント値が閾値S2以上になる度に、制御信号CTRを出力する。この制御信号CTRは、入力部110制御部150に出力される。また、サイズ計測部140は、制御信号CTRの出力後、次回のカウントのためにカウント値をクリアする。すなわち、サイズ計測部140は、入力部110による各回の入力毎に、今回の入力の開始から圧縮実行部120が出力した出力データD3のサイズを計測するものであり、計測したサイズが閾値S2になったときまたは閾値S2を超えたときに制御信号CTRを出力すると共に、カウント値をクリアする。
 制御部150は、サイズ計測部140から制御信号CTRを受信すると圧縮実行部120の内部状態をリセットする。すなわち、本実施の形態の可逆圧縮装置100において、制御部150は、サイズ計測部140のカウント値が閾値S2以上になる度、すなわち入力部110が入力を停止する度に圧縮実行部120の内部状態をリセットするリセット部として機能する。
 閾値S2は、サイズ計測部140により計測した出力データD3のサイズが該閾値S2以上に到達したときに入力部110からの入力を停止した場合に、今回に入力されたデータに対して圧縮実行部120が書込部130に出力した全てのデータのサイズが書込単位S1以下になるように定められている。
 例えば、閾値S2は、下記の式(1)に従って定められる。
 閾値S2
 =書込単位S1
  -符号語最大ビット長×(入力済でありまだ圧縮データとして出力されていないデータの語数)-終了語ビット長   (1)
 式(1)において、「符号語最大ビット長」は、圧縮実行部120が圧縮する際にデータ列を置き換える符号語のうちの最長の符号語のビット長である。「入力済でありまだ圧縮データとして出力されていないデータの語数」は、入力部110が今回のデータ入力において既に圧縮実行部120に出力したデータD2のうちの、まだ圧縮実行部120による処理中であり圧縮データとして出力されていないデータの語数である。「語」は、入力部110による入力時の単位であり、例えば「1バイト」である。また、「終了語ビット長」は、圧縮実行部120の今回の圧縮により得られた出力データD3の終了を示す語(終了語)のビット長である。本実施の形態の可逆圧縮装置100において、圧縮実行部120は、回毎の入力により入力されたデータの圧縮を完了するたびに、出力データD3の末尾に終了語を付加する。
 こうすることにより、圧縮実行部120の今回の圧縮により得られた出力データD3のサイズが書込単位S1になる前に、入力部110と圧縮実行部120の動作が停止する。そのため、圧縮実行部120の一回の圧縮により得られた出力データD3の総サイズが書込単位S1以下になる。
 書込部130は、毎回の書込み時に、書込単位S1になるように出力データD3にパディングデータを付加するため、ブロック・データD4のサイズが常に書込単位S1と同一である。
 具体例を用いて説明する。例えば、書込単位S1は「1000バイト」であり、今回の入力により、既に1000バイトのデータD2が圧縮実行部120に出力されている。該1000バイトのデータD2のうちの9990バイト分は既に圧縮され、圧縮データ(出力データD3)として書込部130に出力されているとする。このとき、該1000バイトのうちの10バイトの「10」は、上記式(1)における「入力済でありまだ圧縮データとして出力されていないデータの語数」となる。
 上記9990バイト分の圧縮後のサイズが995バイトであるとする。書込単位S1まで5バイトの余裕が残っている。ゆえに、最後の10バイト分が「5バイト-終了語ビット長」まで圧縮できるなら、圧縮実行部120が今回の圧縮により得られた出力データS3のサイズを書込単位S1以下に抑えることができる。なお、出力データS2のサイズが書込単位S1に未満であるときには、書込部120のパディングにより、ブロック・データD4のサイズは、書込単位S1になる。
 入力部110は、完了信号RSUを受信すると、書込みが成功したか失敗したかに応じて異なる動作をする。具体的には、完了信号RSUが書込みの成功を示す場合に、入力部110は、先頭アドレス保持部112に保持されたアドレスを更新したうえで次に圧縮実行部120へ供給するデータの読出しと出力を開始する。これにより、圧縮実行部120は、次のブロックのデータの圧縮を開始する。
 一方、完了信号RSUが書込みの失敗を示す場合には、入力部110は、先頭アドレス保持部112に保持されたアドレスから主記憶の読出しを行い、読み出したデータを圧縮実行部120に出力する。これにより、圧縮実行部120は、書込みが失敗したブロック・データの再生成を行う。
 このように、本実施の形態の可逆圧縮装置100によれば、圧縮実行部120からの出力データD3のサイズが閾値S2以上になる度に、入力部110によるデータ入力と圧縮実行部120による圧縮が停止されると共に、圧縮実行部120の内部状態がリセットされ、書込部130により一定のサイズ(書込単位S1)のブロック・データD4が補助記憶に書き込まれる。すなわち、1回の圧縮により得られた全ての圧縮データを1つのブロックに書込むことができる。また、先頭アドレス保持部112が今回圧縮実行部120に入力したデータの先頭ビットの主記憶におけるアドレスを保持しているため、ブロック・データD4の書込みが成功した場合には次のブロック・データD4を生成することができると共に、書込みが失敗した場合には、失敗したブロック・データD4の再生成が可能であり、情報系列D1を最初からやり直す必要がない。さらに、ブロック・データD4を一時的に保存するメモリを必要としない利点もある。
<第2の実施の形態>
 図2は、本発明の第2の実施の形態にかかる可逆圧縮装置200を示す。可逆圧縮装置200は、入力部110の代わりに入力部210を備えたこと以外、入力部110と同様の構成を有する。入力部210も、入力キュー214を備える点を除き、入力部110と同様である。
 可逆圧縮装置200は、可逆圧縮装置100と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。
<第3の実施の形態>
 図3は、本発明の第3の実施の形態にかかる可逆圧縮装置300を示す。可逆圧縮装置300は、バッファ320を備える点と、制御部350が可逆圧縮装置100における制御部150と異なる点とを除き、可逆圧縮装置100と同様である。ここで、制御部350とバッファ320についてのみ説明する。
 制御部350は、圧縮実行部120による毎回の圧縮の開始時に、圧縮実行部120の内部状態すなわち辞書バッファ122とマッチング結果保持部124の内容をバッファ320にコピーする。
 バッファ320は、辞書バッファ122の内容のコピーを格納する辞書退避バッファ322と、マッチング結果保持部124の内容のコピーを格納するマッチング結果退避バッファ324を有する。制御部350は、圧縮実行部120による毎回の圧縮の開示時に、辞書バッファ122の内容を辞書退避バッファ322に上書きコピーし、マッチング結果保持部124の内容をマッチング結果退避バッファ324に上書きコピーする。
 また、本実施の形態の可逆圧縮装置300において、書込部130からの完了信号RSUは、制御部350にも出力される。制御部350は、完了信号RSUに応じて、書込部130による書込みが失敗した場合には、辞書退避バッファ322とマッチング結果退避バッファ324の内容を辞書バッファ122とマッチング結果保持部124に夫々上書きコピーすることにより復帰させる。この場合、第1の実施の形態の可逆圧縮装置100の説明時に述べたように、入力部110が先頭アドレス保持部112により保持されたアドレスからデータの読出しと圧縮実行部120への入力を行うので、書込みが失敗したブロック・データD4の再生成が行われる。
 一方、完了信号RSUが書込部130による書込みが成功したことを示す場合に、制御部350は、バッファ320の内容を辞書バッファ122とマッチング結果保持部124への復帰処理をしない。前述したように、この場合、入力部110は、先頭アドレス保持部112に保持されたアドレスを更新した上で次に圧縮実行部120に入力すべきデータの読出しと入力を行うので、書込みが成功したブロック・データD4の次の圧縮データの再生成が行われる。
 このように、本実施の形態の可逆圧縮装置300は、各回の圧縮の開始時に圧縮実行部120の内部状態をバッファ320に退避しておき、今回の圧縮により得られた圧縮データの書込みが失敗した場合にバッファ320に退避しておいた内容を圧縮実行部120に復帰させる。そのため、第1の実施の形態の可逆圧縮装置100と同様にブロック・データD4の書込みが失敗したときに該ブロック・データD4の再生成ができると共に、可逆圧縮装置100より圧縮の効率が向上する。
<第4の実施の形態>
 図4は、本発明の第4の実施の形態にかかる可逆圧縮装置400を示す。可逆圧縮装置400は、可逆圧縮装置300において、入力部110の代わりに可逆圧縮装置200における圧縮実行部120を設けたものである。すなわち、可逆圧縮装置400は、入力部210に入力キュー214が備えられた点を除き、可逆圧縮装置300と同様である。
 そのため、可逆圧縮装置400は、可逆圧縮装置300と同様の効果を得ることができると共に、入力キュー214を備えることにより、主記憶から読み出した情報系列D1をある程度蓄積することができるため、データ転送が高速になるとともに、入力の開始と停止の制御が簡便になる。
 以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
 例えば、可逆圧縮装置100と可逆圧縮装置200において、制御部150が圧縮実行部120の外部に設けられているが、制御部150を圧縮実行部120内部に設けるようにしてもよい。
 また、各実施の形態の可逆圧縮装置において、先頭アドレス保持部112が入力部110または入力部210の内部に設けられているが、先頭アドレス保持部112を入力部の外部に設けるようにしても、勿論よい。
 また、上述した各実施の形態の圧縮装置において、サイズ計測部140を設け、該サイズ計測部により計測したサイズが式(1)により定められた閾値S2以上になったときに入力部110による入力を停止するようにしている。サイズ計測部140を設けずに、入力部110が、今回の入力により既に圧縮実行部120に入力したデータの圧縮後のなり得る最大サイズが書込単位S1に到達する前に今回の入力を停止するようにしてもよい。なお、「入力したデータの圧縮後のなり得る最大サイズ」は、例えば、既に入力したデータの語数と、符号語最大ビット長との積とすることができる。
 この出願は、2011年5月30日に出願された日本出願特願2011-120037を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100 可逆圧縮装置 110 入力部
 112 先頭アドレス保持部 120 圧縮実行部
 122 辞書バッファ 124 マッチング結果保持部
 130 書込部 140 サイズ計測部
 150 制御部 200 可逆圧縮装置
 210 入力部 214 入力キュー
 300 可逆圧縮装置 320 バッファ
 322 辞書退避バッファ 324 マッチング結果退避バッファ
 350 制御部 400 可逆圧縮装置
 CTR 制御信号 RSU 完了信号

Claims (3)

  1.  入力されたデータに対して可逆圧縮を行って圧縮データを出力する圧縮実行手段と、
     第1の記憶装置からデータを読み出して、前記圧縮実行手段への入力の開始と停止を繰り返す入力手段と、
     前記入力手段による各回の入力毎に、今回に入力するデータの先頭が前記第1の記憶装置におけるアドレスを記憶する先頭アドレス保持手段と、
     前記入力手段による各回の入力毎に、今回に入力したデータに対して前記圧縮実行手段が出力した前記圧縮データを第2の記憶装置に書き込むと共に、今回の書込みの成功または失敗を示す完了信号を出力する書込手段であって、書込みに際しては、書き込むデータのサイズが前記第2の記憶装置の書込単位になるように前記圧縮データに所定のデータをパディングする前記書込手段と、
     前記入力手段が入力を停止する度に前記圧縮実行手段の内部状態をリセットし、または、前記入力手段が入力を開始する度に前記圧縮実行手段の内部状態を退避する制御手段とを備え、
     前記入力手段は、今回の入力により既に前記圧縮実行手段に入力したデータの圧縮後のなり得る最大サイズが前記第2の記憶装置の前記書込単位に到達する前に入力を停止し、記書込手段が前記完了信号を出力したときに入力を再開するものであり、再開に際しては、前記先頭アドレス保持手段に保持された前回の入力に対応する前記アドレスと、前記完了信号とに応じて、前記圧縮実行手段に入力するデータを決定することを特徴とする圧縮装置。
  2.  前記入力手段による各回の入力毎に、前記入力の開始から前記圧縮実行手段が出力した前記圧縮データのサイズを計測するサイズ計測手段をさらに備え、
     前記圧縮実行手段は、各回に入力されたデータを圧縮して得た圧縮データの末尾に終了語を付加し、
     前記入力手段は、前記サイズ計測手段により計測されたサイズが閾値に到達したときに入力を停止し、
     前記閾値は、式(1)に従って定められていることを特徴とする請求項1に記載の圧縮装置。
     閾値
     =書込単位
      -符号語最大ビット長×(入力済でありまだ圧縮データとして出力されていないデータの語数)-終了語ビット長   (1)
  3.  前記入力手段は、前記第1の記憶装置から読み出したデータを一時的に格納する入力キューを備えることを特徴とする請求項1または2に記載の圧縮装置。
PCT/JP2012/002660 2011-05-30 2012-04-18 圧縮装置 WO2012164813A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013517825A JP5825347B2 (ja) 2011-05-30 2012-04-18 圧縮装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-120037 2011-05-30
JP2011120037 2011-05-30

Publications (1)

Publication Number Publication Date
WO2012164813A1 true WO2012164813A1 (ja) 2012-12-06

Family

ID=47258691

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/002660 WO2012164813A1 (ja) 2011-05-30 2012-04-18 圧縮装置

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134752A (ja) * 2015-01-19 2016-07-25 富士通株式会社 処理プログラム、処理装置および処理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242631A (ja) * 1998-02-26 1999-09-07 Toshiba Corp コンピュータシステムおよび同システムにおけるデータ保存/復元方法
JP2000276363A (ja) * 1999-03-26 2000-10-06 Nec Corp 記憶階層システムにおけるスワッピング処理方法ならびに装置
JP2003174650A (ja) * 2001-09-27 2003-06-20 Canon Inc 画像符号化装置、可変長符号化装置、制御装置およびそれらの方法
WO2010055937A1 (ja) * 2008-11-17 2010-05-20 日本電気株式会社 計算機システム、データ保存方法およびプログラム
JP2011193406A (ja) * 2010-03-16 2011-09-29 Ricoh Co Ltd データ処理装置およびデータ処理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242631A (ja) * 1998-02-26 1999-09-07 Toshiba Corp コンピュータシステムおよび同システムにおけるデータ保存/復元方法
JP2000276363A (ja) * 1999-03-26 2000-10-06 Nec Corp 記憶階層システムにおけるスワッピング処理方法ならびに装置
JP2003174650A (ja) * 2001-09-27 2003-06-20 Canon Inc 画像符号化装置、可変長符号化装置、制御装置およびそれらの方法
WO2010055937A1 (ja) * 2008-11-17 2010-05-20 日本電気株式会社 計算機システム、データ保存方法およびプログラム
JP2011193406A (ja) * 2010-03-16 2011-09-29 Ricoh Co Ltd データ処理装置およびデータ処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016134752A (ja) * 2015-01-19 2016-07-25 富士通株式会社 処理プログラム、処理装置および処理方法

Also Published As

Publication number Publication date
JP5825347B2 (ja) 2015-12-02
JPWO2012164813A1 (ja) 2014-07-31

Similar Documents

Publication Publication Date Title
KR101074010B1 (ko) 블록 단위 데이터 압축 및 복원 방법 및 그 장치
US8407378B2 (en) High-speed inline data compression inline with an eight byte data path
CN103119563B (zh) 在固态存储器设备中的解码
KR102319657B1 (ko) 저장된 데이터 유닛들의 동작 관리
US9214954B2 (en) Increasing speed of data compression
US10224959B2 (en) Techniques for data compression verification
KR102275431B1 (ko) 저장된 데이터 유닛들의 동작 관리
US9362948B2 (en) System, method, and computer program product for saving and restoring a compression/decompression state
JP2021527376A (ja) データ圧縮
CN112615628A (zh) 硬件友好地数据压缩
US10230392B2 (en) Techniques for parallel data decompression
WO2014147671A1 (ja) 圧縮装置、圧縮方法、伸張装置、伸張方法および情報処理システム
US9553604B2 (en) Information processing system, information compression device, information decompression device, information processing method, and program
US20190004738A1 (en) Methods for accelerating compression and apparatuses using the same
CN104811209A (zh) 一种抗最长匹配检测的压缩文件数据嵌入方法及装置
JP5825347B2 (ja) 圧縮装置
JP7475319B2 (ja) ストレージシステム及びストレージシステムにおけるデータ処理方法
JP5483405B2 (ja) ログファイル管理システム、ログファイル管理方法及びプログラム
JP5492103B2 (ja) バックアップ装置、バックアップ方法、データ圧縮方法、バックアッププログラムおよびデータ圧縮プログラム
US9496895B2 (en) Compression method and decompression method
JP7282066B2 (ja) データ圧縮装置及びデータ圧縮方法
US11397546B2 (en) Memory system
JP2010079535A (ja) データアクセス装置
US11461008B2 (en) Memory system for improving compression performance of a dictionary coder circuit
JPH08116269A (ja) データ処理装置及びデータ処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12793830

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013517825

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12793830

Country of ref document: EP

Kind code of ref document: A1