JP4905562B2 - データ圧縮装置、及びデータ復元装置 - Google Patents

データ圧縮装置、及びデータ復元装置 Download PDF

Info

Publication number
JP4905562B2
JP4905562B2 JP2010010949A JP2010010949A JP4905562B2 JP 4905562 B2 JP4905562 B2 JP 4905562B2 JP 2010010949 A JP2010010949 A JP 2010010949A JP 2010010949 A JP2010010949 A JP 2010010949A JP 4905562 B2 JP4905562 B2 JP 4905562B2
Authority
JP
Japan
Prior art keywords
data
compression
specific
appearance frequency
frequency
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.)
Expired - Fee Related
Application number
JP2010010949A
Other languages
English (en)
Other versions
JP2010136417A (ja
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2010010949A priority Critical patent/JP4905562B2/ja
Publication of JP2010136417A publication Critical patent/JP2010136417A/ja
Application granted granted Critical
Publication of JP4905562B2 publication Critical patent/JP4905562B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は文字データや画像データ等の各種のデータの圧縮装置、及び、復元装置に関する。
今日のコンピュータの急速な進歩に伴い、文字情報や、ベクトル情報、画像情報など、様々な情報がコンピュータで扱われ、扱われるデータ量も急速に増加している。このような現状において、伝送時間の短縮や記憶装置の記憶容量を効率的に利用するため、データに含まれる冗長な部分を省いてデータ量を圧縮するデータ圧縮方法、及びその復元方法が提案されている。
また、データを圧縮する際に使用される符号化方法として、文字情報、ベクトル情報、画像情報などの様々なデータに適用可能なユニバーサル符号化の手法が採用されている。さらに、ユニバーサル符号化には、文字列の類似性を利用する辞書型符号化方式と、文字の出現頻度を利用する確率統計型符号化方式がある。
辞書型符号化方式の代表的な例としてLempel−Ziv符号化があり、この符号化では、更にスライド辞書型(ユニバーサル型)と、動的辞書型(増分分解型)の2つのアルゴリズムが提案されている。スライド辞書型アルゴリズムの改良として、LZSS符号化や1/4インチ・カートリッジ磁気テープの標準圧縮方式であるQICー122符号化等が知られている。一方、動的辞書型アルゴリズムの改良としては、LZW(Lempel-Ziv-Welch)符号化等が知られている。
また、確率統計型圧縮方式は、統計的な各文字の出現頻度(出現確率)に従い、出現確率の高い文字に対して短い符号長を割り振ることによって圧縮効果を図る方式である。この確率統計型符号化方式の代表的なものとして、例えば算術符号化方式や、ハフマン符号化方式が知られている。ハフマン符号化方式では、各文字に対する符号として、その文字の出現頻度に逆比例した符号長を有する符号(ハフマン符号)が使用される。
一方、上記辞書型符号化方式と確率統計型圧縮方式を併せ持つ複合型のデータ圧縮方法もあり、例えば前述のLZSS法で圧縮したデータをハフマン法で圧縮するLZH法等の方法である。LZSS法が文字列を単位として圧縮する方法であり、ハフマン法は1文字単位の圧縮であるため、互いに補完し合うことが期待できる方法である。
ここで、従来のスライド辞書型アルゴリズム(LZ1)を説明する。このアルゴリズムは、演算量は多いが、高圧縮率が得られる方法である。すなわち、符号化データを過去のデータ系列の任意の位置から一致する最長の系列に区切り(部分列)、過去の文字列の複製として符号化する。図27はこの原理を説明する図である。
同図に示すPバッファには符号化済みの入力データが格納されており、Qバッファには符号化前のデータが入力する。この状態で、Qバッファに入力した文字列は、順次Pバッファに格納された文字列と照合され、Pバッファの中に一致する最長の文字列を求め、Pバッファの中に対応する最長文字列が存在すると、符号化処理を行う。例えば、同図に示すように、Pバッファに一致する文字列が存在する場合、[Pバッファの中の最長一致系列(部分文字列)の開始位置p1]、[Qバッファ内の一致する最大の長さq1]として、圧縮データを生成する。尚、この符号化処理により、例えば文字コードの文書情報は1/2程度に圧縮可能である。また、上記スライド辞書型アルゴリズムを用いた発明として、特許文献1がある。
次に、確率統計型符号化について説明する。確率統計型符号化方法は、図28に示すように入力バッファ、統計モデル部、頻度テーブル、及びエントロピー符号化部で構成され、統計モデル部は最初に全文字列を走査して各文字の出現頻度を算出し、エントロピー符号化部は統計モデル部で求められた出現確率に基づき作成した符号を各文字に割り当てる。
統計モデル部において求める出現頻度は、予め各文字の生起確率が求まる静的符号化方式と、最初に全文字列を走査して各文字の生起確率を得る準適応型符号化方式、及び各文字が出現する毎に頻度を取り生起確率を再計算する適応型符号化方式に分類される。尚、上記確率統計型符号化方式を使用した発明として特許文献2が開示されている。
特許第3241788号公報 特許第3276860号公報
しかしながら、上記圧縮方法では以下の問題がある。
先ず、辞書型符号化方式では、前述のように符号化済みの文字列の中から符号化対象の文字列に最大長に一致する文字部分列を検索し、その文字部分列を複製として符号化を実行する方式であり、高いデータ圧縮率が実現できる。この様なアルゴリズムを実装するには、データの圧縮率をより高めていく構成を採用する必要があると共に、符号化されたデータを利用し易い形式とする必要がある。
例えば、前述の例でデータ圧縮率を高めるためには、Pバッファの格納文字数や、Qバッファの格納文字数も増加する必要がある。しかし、PバッファやQバッファの格納文字数を増加すると、符号化データが8ビットの倍数でなくなる。この場合、データを転送する際にビット詰め等の面倒な処理が必要となり、極めて処理効率の悪いデータ圧縮方法となる。
また、ハードウエアで実現する場合、より大きなウィンドウサイズとなり、圧縮及び復元回路が単一の集積回路上に配置される場合問題となる。すなわち、回路が膨大になり、必要なハードウエアのコストが非常に高くなる。また、ウィンドウサイズを大きくすると、比較演算量が膨大になり、性能劣化を引き起す。
一方、確率統計型符号化方式では、1文字を符号化すると、整数ビットからなる符号が生成される。これに対し、算術符号化では一文字に対して端数ビットを割り当てることができる。算術符号化では、0以上、1未満の区間が、符号化すべきデータを構成する各文字の出現頻度に応じて順次狭められる。そして、全ての文字に対する処理が終了したとき、狭められた区間内の1点を表す数値が符号として出力される。
したがって、確率統計型符号化では、統計モデル部とエントロピー符号化部の2パスで符号化するため、処理速度が低速となる。また、可変長符号化のため、ソフトウエア的には、ビット操作を行う必要があり、この処理に時間を要する。
そこで、本発明は確率統計型符号化のデータ圧縮装置によって、より高速で且つ圧縮効率の高い、データ圧縮、及び復元装置、を提供するものである。
上記課題は本発明によれば、出現頻度に応じて可変長符号化する確率統計型符号化のデータ圧縮装置において、特定データと該特定データの出現頻度を記憶する頻度テーブルと、前記特定データを含む入力データを保持する入力データバッファと、符号化処理部と、出力処理部と、を有し、前記符号化処理部は、前記入力データバッファから順次データを読み出し、前記頻度テーブルを検索し、前記読み出したデータが出現頻度の高い順に上位23個の特定データであるか比較し、特定データである場合は圧縮データと、特定データではない場合は非圧縮データと判定し、圧縮データ又は非圧縮データの識別を1ビットのデータとして第1のテーブルに記憶するとともに、前記頻度テーブルを検索し、前記読み出したデータが出現頻度の最も高い特定データである時、第2のテーブルに出現頻度の最も高い特定データであることを示す1ビットのデータを記憶し、出現頻度の次に高い2個の特定データに含まれる時、第2乃至第3のテーブルに前記2個の特定データに含まれることを示す1ビット毎のデータを記憶し、第5のテーブルに前記2個の特定データの中の順序を示すデータを記憶し、出現頻度が次に高い4個の特定データである時、第2乃至第4のテーブルに出現頻度が次に高い4個の特定データに含まれることを示す1ビット毎のデータを記憶し、第6のテーブルに前記4個の特定データの中の順序を示すデータを記憶し、出現頻度が次に高い16個の特定データに含まれる時、第2乃至第4のテーブルに出現頻度が次に高い16個の特定データに含まれることを示す1ビット毎のデータを記憶し、第7のテーブルに前記16個の特定データの中の順序を示すデータを記憶し、前記判定が非圧縮データの場合は、前記読み出したデータを非圧縮データとして第8のテーブルに記憶し、前記出力処理部は、前記出現頻度の高い23個の特定データを少なくとも含むヘッダ部と、前記第1乃至第8のテーブルに記憶されたデータとを符号化データ列として出力するデータ圧縮装置を提供することによって達成できる。
また、上記課題は本発明によれば、本発明に係るデータ圧縮装置により出現頻度に応じて可変長符号化された確率統計型符号化データの復元装置において、出現頻度の高い順に上位23個の特定データを少なくとも含む前記ヘッダ部と前記第1乃至第8のテーブルとを含む記憶部と、符号化データ復元部と、を有し、該符号化データ復元部は、前記第1のテーブルから1ビット毎にデータを順次読み出し、非圧縮データであることを示すデータである時、前記第8のテーブルに記憶された非圧縮データを読み出して復号データとし、前記第1のテーブルから読み出した前記データが圧縮データであることを示すデータである時、前記第2のテーブルに記憶されたデータを読み出し、最も出現頻度の高い特定データであることを示すデータである時、前記ヘッダ部の最も出現頻度の高い特定データを復号データとし、前記第2のテーブルから読み出した前記データが最も出現頻度の高い特定データではない場合、前記第3のテーブルに記憶されたデータを読み出し、出現頻度が次に高い2個の特定データの中の1つの特定データである時、前記第5のテーブルから前記2個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記2個の特定データの中の前記順序のデータが示す特定データを復号データとし、前記第3のテーブルから読み出した前記データが前記出現頻度の次に高い2個の特定データではない場合、前記第4のテーブルに記憶されたデータを読み出し、出現頻度の次に高い4個の特定データの中の1つの特定データである時、前記第6のテーブルから前記4個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記4個の特定データの中の前記順序のデータが示す特定データを復号データとし、前記第4のテーブルから読み出した前記データが出現頻度の次に高い4個の特定データではない時、前記第7のテーブルから出現頻度の次に高い16個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記16個の特定データの中の前記順序のデータが示す特定データを復号データとすることを特徴とする本発明に係るデータ圧縮装置により符号化された符号化データを復元するデータ復元装置を提供することによって達成できる。
本発明によれば、確率統計型符号化のデータ圧縮装置によって、より高速で且つ圧縮効率の高い、データ圧縮、及び復元装置を提供することができる。
また、確率統計型符号化のデータ圧縮装置により圧縮されたデータの復元を高速且つ高効率に行うことができる。
実施形態1のデータ圧縮装置のシステム構成図である。 (a)は、入力データの構成を説明する図であり、(b)は、圧縮データの具体的な構成を示す図であり、(c)及び(d)は、フラグデータの構成を説明する図であり、(e)は、非圧縮データの構成を説明する図であり、(f)は、圧縮データの構成を説明する図である。 実施形態2の構成を説明する図である。 実施形態3の圧縮処理を説明する図である。 識別データの例を示す図である。 実施形態4の圧縮処理を説明する図である。 識別データの例を示す図である。 実施形態5の圧縮処理を説明する図である。 準備処理部の構成を説明する図である。 準備処理部が行う処理を説明するフローチャートである。 圧縮フォーマットの例を示す図である。 エントロピー符号化処理部が行う処理を説明するフローチャートである。 実施形態6の圧縮処理を説明する図である 判定パターンの例を示す図である。 圧縮効率判定部が計算結果から判定して出力する圧縮フォーマットの出力形式を示す図である。 圧縮フォーマットの構成を示す図である。 エントロピー符号化処理部が行う処理を示すフローチャートである。 実施形態8を説明する図である。 (a)は、圧縮データの構成を説明する図であり、(c)及び(d)は、フラグデータの構成を説明する図であり、(e)は、非圧縮データの構成を説明する図であり、(f)は、圧縮データの構成を説明する図であり、(g)は、連長圧縮の識別情報を説明する図である。 実施形態9を説明する図である。 実施形態10を説明する図である。 実施形態11のデータ復元装置を説明する図である。 実施形態12のデータ復元装置を説明する図である。 実施形態13のデータ復元装置を説明するフローチャートである。 実施形態14のデータ復元処理を説明する図である。 実施形態15のデータ復元処理を説明する図である。 従来例のデータ圧縮処理を説明する図である。 従来例のデータ圧縮処理を説明する図である。
以下、本発明の実施の形態を図面を参照しながら説明する。
(実施形態1)
図1は、本実施形態のデータ圧縮装置のシステム構成図である。
同図において、圧縮手段1は適応型の辞書型符号化方法(Lempel-Ziv法)を用いた第1の圧縮手段であり、圧縮手段2は準適応型(semi-adaptive)確率統計型符号化方法を用いた第2の圧縮手段である。入力データ列は、圧縮手段1に入力し、圧縮手段1によって符号化処理を行う。圧縮手段1によって符号化されたデータは中間データバッファ(RAM)13に供給され、更に後述する圧縮手段2によって圧縮処理が行われる。
圧縮手段1に入力するデータ列は、例えば文字データ、ベクトルデータ、画像データ等のデータであり、圧縮手段1は入力データを符号化済データの部分列のうち、最長一致するものを検索して符号化する、適応型の辞書型符号化方法であって、その識別フラグを除く符号データを1バイトデータとして出力し、また識別フラグ(1ビット)は8個まとめて1バイトデータとして出力することにより、全てバイト単位の出力とする。
図2は上記構成を具体的に説明する図である。先ず、同図(a)に示すように、入力データバッファ3はPバッファ4とQバッファ5で構成され、Pバッファ4は履歴バッファであり、32バイトで構成されている。また、Qバッファ5には入力文字列が供給され、9バイトで構成されている。また、同図に示す太枠Aはスライディング・ウィンドウであり、同図に示す矢印c方向にスライド可能に構成されている。
入力文字列は、前述のように文字データ、ベクトルデータ、画像データ等のデータであり、具体的にはスライディング・ウィンドウAを矢印c方向にスライドすることによって、Qバッファ5への入力データの取り込みを行う。
図2(b)は、圧縮データの具体的な構成を示す図である。最初の1バイトはフラグデータであり、フラグデータの後に8個の圧縮データ(及び非圧縮データ)が記録されている。フラグデータは同図(c)に示すように、1バイト8ビットのデータであり、データ“0”が非圧縮データを示し、データ“1”が圧縮データを示す。また、同図(c)に示す#1〜#8は、フラグデータに続く圧縮データ(及び非圧縮データ)に付された#1〜#8に対応する。
例えば、最初のフラグデータ(#1)がフラグ“1”である場合、8個の圧縮データ及び非圧縮データの最初の(#1)のデータは、1バイト(8ビット)の圧縮データである。同図(f)に示すデータ構成は、上記圧縮データの例を示し、上位5ビットが一致開始位置のデータを記録し、下位3ビットが一致文字列の長さデータを記録する。したがって、Pバッファ4は5ビットで表せる容量を有するバッファであり、また9バイトの文字列のデータの一致検索を行うことができる。
一方、最初のフラグデータ(#1)がフラグ“0”である場合、8個の圧縮データ(及び非圧縮データ)の最初の(#1)のデータは、1バイト(8ビット)の非圧縮データである。同図(e)に示すデータ構成は、この非圧縮データの例を示し、原データのまま記述される。
尚、#2以降の圧縮データ(及び非圧縮データ)についても同様であり、フラグデータに記録されたフラグの状態に対応した圧縮データ、又は非圧縮データが記録されている。尚、上記8個の圧縮データ(及び非圧縮データ)に続くフラグデータは、同図(d)に示すように、次の#9〜#16の圧縮データ(及び非圧縮データ)の情報が記録されている。
本例では、スライド辞書のPバッファ(履歴バッファ)とQバッファを小さくし、その文字列参照の符号化データ(その識別フラグを除く)を1バイトデータとして全てバイト単位の出力としている。
したがって、本例によれば、第1の圧縮手段のスライド辞書を小さくしたことにより、圧縮効果はやや低下するが、処理の高速化を図ることができる。また、ハード構成においても、履歴アレイやシフトレジスタの「スライド辞書のPバッファ」と、比較器等が非常に少なくすることができ、回路規模を小さくすることもできる。
また、第2の圧縮手段を備えたことにより、圧縮効率が低下した分、第2の圧縮処理によりカバーでき、高圧縮、高効率の圧縮装置を実現できる。
また、第1の圧縮手段を全てバイトデータで取り扱うことにより、第1、第2の圧縮手段共に、全てバイト単位で扱うことができ、ビット操作を極力少なくでき、高速化を図ることができる。
(実施形態2)
次に、本発明の実施形態2について説明する。
図3は、本実施形態の圧縮装置を説明するシステム構成図である。同図も前述の図1と同様、圧縮手段11は適応型の辞書型符号化方法(Lempel-Ziv法)を用いた第1の圧縮手段であり、圧縮手段12は準適応型(semi-adaptive)確率統計型符号化方法を用いた第2の圧縮手段である。但し、本例の圧縮手段11は圧縮手段12で使用する出現頻度の計数処理も同時に行う構成である。以下、具体的に説明する。
本例においても、前述の実施形態例と同様、入力データは圧縮手段1に入力し、符号化処理が行われる。圧縮手段1に入力するデータ列は、例えば文字データ等であり、圧縮手段1は入力データを辞書内の符号化済データの部分列のうち、最長一致するものを検索して符号化する。この符号化されたデータは、RAMで構成される中間データバッファ13に供給され、所定量の符号化データが入力すると、圧縮手段12に出力する。
一方、圧縮手段11は圧縮手段12で行う圧縮処理に必要な出現頻度の計数処理を行い、計数結果を頻度テーブル14に出力する。すなわち、圧縮手段12で使用する頻度テーブルを生成し、圧縮手段12が行う確率統計型符号化方法を用いた圧縮処理を効率よく行えるように構成する。
このように、本例によれば第1の圧縮手段である圧縮手段11により符号データを生成する際、出現頻度の計数も同時に行うことにより、第2の圧縮手段である圧縮手段12は頻度テーブルのデータを使用して圧縮処理を行うことができ、圧縮処理の高速化を図ることができる。
(実施形態3)
次に、本発明の実施形態3について説明する。
図4は、本実施形態の圧縮処理を説明する図である。同図において、入力バッファ20には前述の文字データ等の入力データ列が供給され、この入力データは入力バッファ20から更に第1の圧縮手段である圧縮手段21に供給される。圧縮手段21は前述と同様、適応型の辞書型符号化方法を用いた圧縮手段であり、出現頻度の計数処理も行う。
圧縮手段21では、入力データの符号化を行い、中間データバッファ23に出力すると共に、上記のように第1のデータ圧縮手段の出力データのサイズの計数、及び符号化データを生成する際の出現頻度の計数も同時に行う。
頻度テーブル24は、上記出現頻度を記録するテーブルであり、上記圧縮手段21から出力される計数データをカウンタアップし、例えば文字コード毎に出現頻度のデータを記録する。サイズ算出・判定手段25は、第2の圧縮手段である圧縮手段22が圧縮処理を行った場合の圧縮データサイズ(圧縮率)を計算し、第1の圧縮後のサイズよりも出力データ量が増加するか判定する。
そして、出力データ量が増加すると判定する場合には、識別データとしてマジックナンバー1を出力する。一方、出力データ量が増加しないと判定する場合には、識別データとしてマジックナンバー2を出力する。
また、サイズ算出・判定手段25は、出力データ量が増加すると判定する場合、第2の圧縮処理を行うことなく、元データ出力手段26に対して中間データバッファ23に記録された第1の圧縮結果を出力データバッファ27に出力するよう指示する。一方、出力データ量が増加しないと判定する場合、第2の圧縮手段である圧縮手段22に対し、中間データバッファ23に記録された第1の圧縮結果のデータ列を入力し、第2の圧縮処理を行うよう指示する。
図5は上記識別データの例を示す図であり、マジックナンバーを2つ用意し、同図(a)に示すマジックナンバー1は第1の圧縮方法で圧縮処理し、第2の圧縮方法での処理を行わなかった場合の識別データを示す。一方、図(b)に示すマジックナンバー2は第1の圧縮方法で圧縮処理し、更に第2の圧縮方法で圧縮処理を実施したことを示す。尚、上記識別データについては、2つのマジックナンバーに代えて、本圧縮方法で圧縮したことを示すマジックナンバーと、第2の圧縮を行ったか/行わなかったかを示すフラグで構成してもよい。
上記処理により、出力データバッファ27には、識別データに対応する出力が供給され、出力データバッファ27から圧縮処理されたデータが出力される。
以上のように、本例によれば第1の圧縮処理を行った後、第2の圧縮処理を行った場合の圧縮データサイズ(圧縮率)を計算し、第1の圧縮処理後の出力データサイズよりデータ量が増加する場合第2の圧縮を行うことなく、第1の圧縮処理の結果よりサイズが増大する圧縮処理を行うことを回避できる。また、無駄な第2の圧縮処理を行わずに済み、効率のよい圧縮処理が可能となる。
(実施形態4)
次に、本発明の実施形態4について説明する。
図6は、本実施形態の圧縮処理を説明する図である。本例は前述の実施形態3に対して、更にもう1つ出現頻度テーブルを設け、より効率のよい圧縮処理を可能とする構成である。以下、具体的に説明する。尚、前述の図4と同じ構成部分には同じ番号を使用して説明する。
前述と同様、入力データバッファ20には文字データ等の入力データ列が供給され、更に入力データバッファ20に供給された入力データは、第1の圧縮手段である圧縮手段21に供給される。圧縮手段21は適応型の辞書型符号化方法を用いた圧縮手段であり、入力データの圧縮処理を行い、中間データバッファ23に符号化データを出力する。また、前述と同様、入力データ列及び第1圧縮後の符号化データ列の各サイズの計数と各データ列のデータの出現頻度の計数も同時に行う。
本例において、頻度テーブルは24a、24bの2つの頻度テーブルを有し、頻度テーブル24a、24bは前述と同様、例えば文字コード毎に出現頻度のデータを記録する。また、サイズ算出・判定手段25は、第2の圧縮手段である圧縮手段22が圧縮処理を行った場合の圧縮データサイズ(圧縮率)を計算し、第1の圧縮後のサイズよりも出力データ量が増加するか判定する。
サイズ算出・判定手段25は、以下(1)〜(4)のサイズを知り、以下の処理を行う。すなわち、(1)入力(原)データ列のサイズ、(2)第1の圧縮手段の出力サイズ、(3)入力(原)データ列を第2の圧縮手段のみで圧縮した場合の出力サイズ、(4)第1の圧縮手段の出力データ列を第2の圧縮手段で更に圧縮した場合の出力サイズ。
先ず、上記(1)が最小となる場合、入力データをそのまま出力する。すなわち、サイズ算出・判定手段25は、識別データとしてマジックナンバー1を出力し、元データ出力手段26に対して、入力データバッファ20に入力したデータ列を出力するように指示する。したがって、第1の圧縮処理、及び第2の圧縮処理を行うことなく、入力バッファ20に供給された入力データを元データ出力手段26に出力し、更に元データ出力手段26から出力データバッファ27介して出力を行う。
次に、上記(2)が最小となる場合、第1の圧縮処理を行い、第2の圧縮処理を行うことなく、データ列の出力を行う。すなわち、この場合、サイズ算出・判定手段25は、識別データとしてマジックナンバー2を出力し、元データ出力手段26に対し、中間データバッファ23に記録されたデータ列の出力を行うように指示する。したがって、この場合、中間データバッファ23に格納された符号化データは元データ出力手段26、出力データバッファ27を介して出力される。
次に、上記(3)が最小となる場合、入力データを第2の圧縮処理のみを行い出力する。すなわち、この場合、サイズ算出・判定手段25は識別データとしてマジックナンバー3を出力し、第2の圧縮手段22に対し、入力データバッファ20からデータ列の入力を行わせ、第2の圧縮処理を施すよう指示する。したがって、この指示に基づき、第2の圧縮手段22は、入力データバッファ20のデータ列を入力し、第2の圧縮処理を施し、出力データバッファ27にデータ出力を行う。
次に、上記(4)が最小となる場合、入力データに対して第1、第2の圧縮処理を行い出力する。すなわち、この場合、サイズ算出・判定手段25は識別データとしてマジックナンバー4を出力し、第2の圧縮手段22に対し、圧縮処理を指示する。したがって、この指示に基づき、圧縮手段22は、中間データバッファ23に記録された符号化データに対して、更に圧縮処理を施し、出力データバッファ27を介して圧縮データの出力を行う。
尚、識別データの各マジックナンバーの意味は図7(a)に示す通りであり、マジックナンバーを4つ用意し、マジックナンバー1は本圧縮方法で圧縮したことと第1、第2の圧縮共に未実施を示し、マジックナンバー2は本圧縮方法で圧縮したことと第1の圧縮は実施、第2の圧縮は未実施を示し、マジックナンバー3は本圧縮方法で圧縮したことと第1の圧縮は未実施、第2の圧縮は実施したことを示し、マジックナンバー4は本圧縮方法で圧縮したことと第2の圧縮共に実施した意味を持つ。
また、識別データについては、同図(b)に示すように、4つのマジックナンバーの代わりに、本圧縮方法で圧縮したことを示すマジックナンバーと、第1の圧縮を行ったか/行わなかったかを示すフラグ、及び第2の圧縮を行ったか/行わなかったかを示すフラグで構成される構成としてもよい。
以上のように、本例によれば、第1及び第2の圧縮の2つの手段を組み合わせ、最も圧縮効率のよい圧縮結果を提供でき、かつ最悪の場合でも入力データサイズより増大することを防止できる。
(実施形態5)
次に、本発明の実施形態5について説明する。
図8は、本実施形態の圧縮処理を説明する図である。本例は前述の実施形態1乃至4と異なり、準適応型の確率統計型符号化による圧縮処理を説明するものであり、本例の圧縮手段31は統計モデル処理手段32とエントロピー符号化手段34とで構成される。以下、具体的に説明する。
先ず、入力データバッファ30には、前述の文字データ等の入力データが供給され、例えば前述の第1の圧縮手段によって圧縮処理された圧縮データが供給される。入力データバッファ30に供給された入力データは、統計モデル処理手段32に供給される。統計モデル処理手段32は、各バイトデータの出現頻度を計数する。この出現頻度の計数結果は頻度テーブル33に供給され、頻度テーブル33に出現頻度の計数結果を記憶する。
エントロピー符号化手段34は、準備処理部35、エントロピー符号化処理部36、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)、及び符号データ出力処理手段37で構成されている。
準備処理部35は圧縮データサイズの計算を行い、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)の割当て処理、及び後述するBEST1〜23のコード等をヘッダ部に出力する処理を行う。また、エントロピー符号化処理部36は、上記準備処理部35によって作成されたBEST1〜23のコード情報に基づいて圧縮フォーマットを生成する。
先ず、準備処理部35の処理について説明する。尚、図9は準備処理部35の構成及び処理概要を説明する図であり、同図のaは、前述の頻度テーブル33である。頻度テーブル33は文字コード(バイトデータ(00〜FF))に対応するカウンタ値(頻度)が格納されており、準備処理部35は、このカウンタ値(頻度)をもとに、Best23より頻度の多いコードと、該コードの頻度(カウンタ)を格納する記憶エリアbを作成する。
図10は、準備処理部35が行う処理を説明するフローチャートである。先ず、圧縮フォーマットのヘッダ部及び記憶エリアbの各メモリエリアの初期化を行い、総頻度数を0クリアする(ステップ(以下、STで示す)1)。次に、頻度テーブル33の先頭より順次頻度を取り出し、頻度の高い順に上位23位までのデータを抽出する。そして、頻度テーブル33を全て処理したか、即ちデータ0x00〜0xFFの頻度を全て処理したか判断し(ST2)、処理を終了していなければ(ST2がNO)、頻度テーブル33から次のデータの頻度を取り出す(ST3)。
次に、取り出した頻度データを総頻度数に累計する(ST4)。そして、Best23のコードの頻度が0であるか判断する(ST5)。ここで、Best23のコードの頻度が0でない場合(ST5がNO)、Best23のコードの頻度と比較し(ST6)、Best23の頻度より少ない場合、頻繁に出現する文字コードではないものと判断し、判断(ST2)に戻る。一方、Best23の頻度より多い場合、処理(ST7)に移行する。
また、Best23のコードと頻度が一致する場合、Best23のコードより大きいか判断する(ST8)。すなわち、同じ出現頻度であっても、文字コードのコード番号が若いコードを採用するため、Best23のコード番号よりが大きい場合、判断(ST2)に戻る。一方、Best23のコード番号より小さい(若い)場合、処理(ST7)に移行する。
処理(ST7)では、取り出したデータの頻度とコードをBest1〜23の頻度とコードのテーブルに頻度の多い順に挿入する。この処理によって、図9aの記憶エリアに格納されたデータは、頻度順に並べ替えられ、同図のbに示すBest1〜23の頻度カウンタ及びコードに格納される。
次に、頻度テーブルのデータが全て読み出され、エンドになると(ST2がYES)、更にBest8〜22のコードを昇順に並べ替える(ST9)。さらに、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)のサイズ計算を行う(ST10)。
例えば、各テーブルのサイズは以下の計算に基づいて計算される。すなわち、
F1テーブルサイズ=(入力データ数+7)/8バイト
F2テーブルサイズ=(Best1〜23の頻度の和+7)/8バイト
F3テーブルサイズ=(Best2〜23の頻度の和+7)/8バイト
F4テーブルサイズ=(Best4〜23の頻度の和+7)/8バイト
F5テーブルサイズ=(Best2〜3の頻度の和+7)/8バイト
F6テーブルサイズ=(Best4〜7の頻度の和+3)/4バイト
F7テーブルサイズ=(Best8〜23の頻度の和+1)/2バイト
F8テーブルサイズ=入力データ数−Best1〜23の頻度の和
次に、上記計算結果から出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)を圧縮フォーマットに割り当てる(ST11)。また、Best1〜23のコード情報を含むデータを圧縮フォーマットのヘッダ部に出力する(ST12、ST13)。
図11は、圧縮フォーマットの例である。この圧縮フォーマットは、ヘッダ部とF1〜F8テーブルで構成され、ヘッダ部は圧縮総容量、F1〜F7テーブルのビット数、生データのバイト数、及びBest1〜23のコードテーブルで構成される。
エントロピー符号化処理部36は、上記準備処理部35から供給されるデータをもとに、以下の図12に示すフローチャートに従って上記圧縮フォーマットに具体的数値を設定する。
先ず、入力バッファ30に供給される入力データを1バイト読み出し(ステップ(以下、STPで示す)1)、データエンドであるか判断する(STP2)。ここで、入力データが存在すれば(STP2がNO)、読み出したデータの出現頻度を頻度テーブルより取り出し(STP3)、読み出したデータとBest11〜Best23のコードと以下の比較を行う。
次に、読み出した1バイトデータがBest1コードであるか判断する(STP4)。ここで、読み出した1バイトデータがBest1コードである場合(STP4がYES)、Best1コードの処理を行う(STP5)。すなわち、出力データバッファ1(F1テーブル)のビットをオンし、出力データバッファ2(F2テーブル)のビットをオフする。
また、読み出した1バイトデータがBest1コードではない場合(STP4がNO)、Best2のコードと一致するか判断する(STP6)。ここで、Best2のコードと一致する時、Best2のコード処理を行い、出力データバッファ5(F5テーブル)のビットをオフする(STP7)。また、出力データバッファ1(F1テーブル)のビットをオンし、出力データバッファ2(F2テーブル)のビットをオンし、更に出力データバッファ3(F3テーブル)のビットをオフする(STP8)。
以下、同図に示すフローチャートに従って、順位Best3、Best4、Best5、Best6、Best7のコードとの一致を判断し、同じコードであれば対応する処理(STP9〜STP19)を実行する。
次に、Best23のコードの頻度と読み出したコードの頻度を比較し(STP20)、Best23の頻度より少ない場合、頻繁に出現する文字コードではないものと判断し、非圧縮データ処理を行う(STP21)。すなわち、出力データバッファ1(F1テーブル)のビットをオフし、出力データバッファ8(F8テーブル)に読み出したコードデータをセットする。
一方、Best23のコードの頻度より多い場合、Best8〜22のコードテーブルを2分検索し、一致したコードのテーブルNo.を出力データバッファ7(F7テーブル)にセットする(STP22)。
また、Best23のコードの頻度と一致する場合、Best23のコードとコードの比較を行い(STP23)、一致すればBest23のコード番号を出力データバッファ7(F7テーブル)にセットする(STP24)。
次に、Best8〜23のコード処理を行う(STP25)。すなわち、出力データバッファ1(F1テーブル)のビットをオンし、出力データバッファ2(F2テーブル)のビットをオンし、出力データバッファ3(F3テーブル)のビットをオンし、出力データバッファ4(F4テーブル)のビットをオンする。
以上の処理を入力データがエンドになるまで繰り返し、最後に符号データの出力処理手段37は、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)を順次出力する。
以上のように処理することによって、出力形式をBest1コードが2bit、Best2〜3コードが4bit、Best4〜7コードが6bit、Best8〜23コードが8bit、非圧縮データ9bitの可変長符号化とし、かつ出力データ領域を出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)の8つの領域に分離し、可変長符号でありながら、符号化および復号化のためのメモリアクセスが1bit単位と2bit単位と4bit単位のビットアクセスと、1バイトデータのバイトアクセスで可能となり、非常に高速な圧縮処理を行うことができる。
(実施形態6)
次に、本発明の実施形態6について説明する。
図13は、本実施形態の圧縮処理を説明する図である。尚、本例は上記実施形態5において確率統計型符号化による圧縮処理を説明したが、本例では各出力形式ごとの圧縮サイズを計算で求め、圧縮効率の最も優れた場合を判定する圧縮効率判定部を備えた点が特徴である。以下、具体的に説明する。
図13は本例を説明する図であり、前述の図8と同じ構成部分には同じ番号を付して説明する。先ず、入力データバッファ30には、前述の文字データ等の入力データが供給され、更に入力データバッファ30に供給された入力データは、統計モデル処理手段32に供給される。統計モデル処理手段32は、各バイトデータの出現頻度を計数する。この出現頻度の計数結果は頻度テーブル33に供給され、頻度テーブル33に出現頻度の計数結果を記憶する。
エントロピー符号化手段34は、準備処理部35、エントロピー符号化処理部36、圧縮効率判定部39、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)、及び符号データ出力処理手段37で構成されている。
準備処理部35は圧縮データサイズの計算を行い、出力データバッファ1(F1テーブル)〜出力データバッファ8(F8テーブル)の割当て処理、例えばBest1〜23のコード等をヘッダ部に出力する処理を行う。また、エントロピー符号化処理部36は、上記準備処理部35によって作成されたBest1〜23のコード等の情報に基づいて入力データを各データ毎に後述する処理を行う。
圧縮効率判定部39は頻度テーブル33から供給されるデータに基づいて各圧縮形式毎の圧縮データサイズを計算し、最小のサイズとなる出力形式を判別する。尚、準備処理部35が行う準備処理は、前述の図11に示すフローチャートに従って実行される。また、圧縮効率判定部39はエントロピー符号化処理部36が行う処理と同様の処理を行い、各圧縮形式毎の圧縮データサイズを計算し、最小のサイズとなる出力形式を判別する。
図14は判定パターンの例を示す図であり、
(1)Best1コードとそれ以外のコードの場合、Best1コードは1bitで、他は9bitで符号化され、
(2)Best1コードと次のBest2個(出現頻度が次に多い2個のコードであり、つまりBest2〜3のコード)とそれ以外のコードの場合、Best1コードは2bitで、Best2個(Best2〜3)は3bitで、他は9bitで符号化され、
(3)Best1コードと次のBest4個(出現頻度が次に多い4個のコードであり、つまりBest2〜5のコード)とそれ以外のコードの場合、Best1コードは2bitで、Best4個(Best2〜5)は4bitで、他は9bitで符号化され、
(4)Best1と次のBest16個(出現頻度が次に多い16個のコードであり、つまりBest2〜17のコード)とそれ以外のコードの場合、Best1は2bitで、Best16個(Best2〜17)は6bitで、他は9bitで符号化され、
(5)Best1と次のBest2個(Best2〜3)とその次のBest4個(Best4〜7)とそれ以外のコードの場合、Best1は2bitで、Best2個(Best2〜3)は4bitで、Best4個(Best4〜7)は5bitで、他は9bitで符号化される。
(6)Best1と次のBest2個(Best2〜3)その次のBest16個(Best4〜19)とそれ以外のコードの場合、Best1は2bitで、Best2個(Best2〜3)は4bitで、Best16個(Best4〜19)は7bitで、他は9bitで符号化され、
(7)Best1と次のBest4個(Best2〜5)その次のBest16個(Best6〜21)とそれ以外のコードの場合、Best1は2bitで、Best4個(Best2〜5)は5bitで、Best16個(Best6〜21)は7bitで、他は9bitで符号化され、
(8)Best1と次のBest2個(Best2〜3)その次のBest4個(Best4〜7)更にその次のBest16個(Best8〜23)とそれ以外のコードの場合、Best1は2bitで、Best2個(Best2〜3)は4bitで、Best4個(Best4〜7)は6bitで、Best16個(Best8〜23)は8bitで、他は9bitで符号化される。
尚、具体的なビット内容は、それぞれ同図に示すデータ及びコードであり、例えば、(1)Best1コードとそれ以外の場合、Best1コードと一致するバイトデータは出力データバッファ1(F1テーブル)の1bitの記憶エリアにBest1コードを示すフラグとして記憶し、1bitで符号化する。Best1コード以外の他のデータは、出力データバッファ1(F1テーブル)の1bitの記憶エリアに非圧縮データを示すフラグとして記憶し、かつ出力データバッファ8(F8テーブル)の生データの記憶エリアにそのデータ(8bit)を記憶し、合計9bitで符号化する。以下、(2)Best1と次のBest2とそれ以外のコードの場合等についても同図に示す通りである。
図15は圧縮効率判定部39が計算結果から判定して出力する圧縮フォーマットの出力形式を示す。上記計算結果から、例えば「(1)Best1コードとそれ以外のコードの場合」の出力形式が判定され、選択された場合には最もサイズの小さい圧縮フォーマットを使用することができる。例えば、同じ色の画像情報等の場合であり、極めて入力データの特性に合わせた圧縮フォーマットの選択を行うことができる。
したがって、本例によれば入力データに対応した圧縮効率の最も優れた出力形式を選択して圧縮処理を行うことができ、圧縮処理時間や圧縮データの転送時間を短縮することができ、極めて効率のよい出力圧縮処理を行うことができる。
(実施形態7)
次に、本発明の実施形態7について説明する。尚、本例は上記圧縮効率判定部39によって判定された出力形式4(つまり、(4)Best1と次のBest16個(Best2〜17)とそれ以外の場合)を使用したものである。準備処理部35によってBest1〜Best17までの頻度データを作成した場合の例であり、圧縮フォーマットは図16に示す構成である。したがって、前述の実施形態6における出力データバッファ(Fテーブル)に対して、本例においてテーブル番号は一致しない。
図17は、本例におけるエントロピー符号化処理部36が行う処理を示すフローチャートである。先ず、入力データバッファ30に供給される入力データを1バイト読み出し(ステップ(以下、Wで示す)1)、データエンドであるか判断する(W2)。この最初の処理では、入力データは充分存在し(W2がYES)、読み出したデータの出現頻度の情報を取り出す(W3)。すなわち、本例の出力データバッファ1(F1テーブル)を検索し、読み出した1バイトデータがBest1コードであるか判断する(W4)。
ここで、読み出した1バイトデータがBest1コードである場合(W4がYES)、Best1コード処理を行う(W5)。すなわち、本例の出力データバッファ1(F1テーブル)のビットをオンし、出力データバッファ2(F2テーブル)のビットをオフする。
また、読み出した1バイトデータがBest1コードではない場合(W4がNO)、Best17のコードと比較処理を行う(W6)。ここで、Best17のコードの頻度より少ない場合、非圧縮データ処理を行い、本例の出力データバッファ1(F1テーブル)のビットをオフし、出力データバッファ4(F4テーブル)に読み出したデータをセットする(W7)。一方、Best17のコードの頻度より多い場合、Best12〜16のコードテーブルを2分検索し、一致したコードのテーブルナンバーを出力データバッファ3(F3テーブル)にセットする(W8)。
また、Best17のコードの頻度と一致する場合、Best17のコードとコードの比較を行い(W9)、一致すればBest17のコードの値を出力データバッファ3(F3テーブル)にセットする(W10)。そして、Best12〜17のコード処理を行う。すなわち、出力データバッファ1(F1テーブル)にビットオンし、出力データバッファ2(F2テーブル)のビットをオンする。
以上のように、本例によれば入力データに対応した圧縮効率の最も優れた出力形式を選択して圧縮処理を行うことができ、圧縮処理時間や圧縮データの転送時間を短縮することができる。尚、本例は文字コードの出現頻度をBest1〜17までの例で説明したが、出現頻度は前述の実施形態6に示すようにBest1〜23までとしてもよく、更に他の数の例で説明してもよい。
(実施形態8)
次に、本発明の実施形態8について説明する。
図18は、本実施形態を説明する図であり、前述の最長一致の文字列の探索の前に、直前の文字と同一の文字の連続であるか否かを判断し、同一の文字の連続である場合、連長文字圧縮の処理を実行する。例えば、同図(a)は、連続する文字“a”が8個連続する場合であり、この場合、フラグ+長さの圧縮データを使用する。また、フラグは最長一致の文字列参照と兼用し、図19(g)に示すように、文字列参照の符号コードの「一致開始位置」の部分に連長圧縮の識別情報を入れる。尚、18図(b)は、前述の図2(a)と同じであり、説明を省略する。また、図19(b)〜(f)の構成は、前述の図2(b)〜(f)の構成と同じであり、説明を省略する。
例えば、画像データに白の部分が多い場合、この部分は同じ値の連続である。したがって、このような入力データに対し、本例の連長文字圧縮を付加することにより、圧縮効率を向上することができる。
(実施形態9)
次に、本発明の実施形態9について説明する。
図20は、本実施形態を説明する図である。本例は膨大な入力データの対応として、入力データ列を分割制御する原データ分割・入力手段40を備え、入力ファイル41に記憶された入力データを原データ分割・入力手段40によって分割して入力データバッファ43に出力する構成である。
このように構成することにより、膨大な入力データに対してもデータを分割して入力データバッファ43に供給することによって容易に対応することができるものである。
尚、同図に示す他の構成は、前述の図6の構成と同じであり、説明を省略する。そして、出力データバッファ27に格納された圧縮データは、圧縮結果データ出力手段44によって、出力ファイルに順次出力される。
(実施形態10)
次に、本発明の実施形態10について説明する。
上記実施形態1〜9は入力データの圧縮処理について説明したが、以下の実施形態は、前述の圧縮処理によって圧縮されたデータの復元処理について説明する。以下、具体的に説明する。
図21において、第1の復元手段51は準適応型(semi-adaptive)確率統計型符号化データの復号処理を行い、第2の復元手段52は適応型の辞書型符号化データ(Lempel-Ziv法)の復号処理を行う。すなわち、前述の実施形態1乃至9で行われた圧縮データの復元処理を行う構成である。
したがって、前述の実施形態1乃至9で行われた圧縮データは、入力データ列として第1の復元手段51に入力し、前述の第2の圧縮手段の確率統計型符号化方法で圧縮されたデータ列を復号する。また、第2の復元手段52は前述の第1の圧縮手段の適応型の辞書型符号化方法(Lempel-Ziv法)で圧縮されたデータ列を復号する。
このように構成することにより、可逆的に(無損失)復号化が行われ、圧縮処理に対応する複合処理を行うことができる。
(実施形態11)
次に、本発明の実施形態11について説明する。
本実施形態もデータの復元処理について説明するものである。以下、具体的に説明する。
図22は本例のデータ復元装置を説明する図である。同図において、第1の復元手段51は、前述と同様準適応型(semi-adaptive)確率統計型符号化データの復号処理を行い、第2の復元手段52は適応型の辞書型符号化データ(Lempel-Ziv法)の復号処理を行う。また、同図において、入力切換手段53は前述の実施形態3の処理によって符号化された(圧縮処理された)データ列を入力し、識別データ判定手段54、又は第1の復号手段51、又は第2の復号手段52のいずれかにデータを受け渡す入力データの切り換え手段である。尚、入力切換手段53は初期状態において、識別データ判定手段54に入力データを受け渡す設定が行われている。
ここで、本例で使用する識別データは前述の実施形態3で説明したマジックナンバーであり、識別データ判定手段54は、受け取った入力データを前述の識別データとして判別する。すなわち、前述のマジックナンバー1又は2と比較し、以下の判定を行う。
例えば、マジックナンバー1であれば、入力切換手段53を切り換えて、切換手段55を介して第2の復号手段52に入力データを供給する。また、この時第2の復号手段52に対して復号処理の開始を指示する。
また、マジックナンバー2ならば、入力切換手段53を切り換え、入力データを第1の復号手段51に供給し、更に切換手段55を切り換え、第1の復号手段51の出力データが第2の復号手段52に供給されるように制御する。そして、第1の復号手段51に対して復号処理の開始を指示する。また、第2の復号手段52に対しても復号処理の開始を指示する。
したがって、本例によれば圧縮時に設定されたマジックナンバーに基づいて復号処理を行うことができ、圧縮方式に対応する復号方式を使用して効率よく圧縮データの復号処理を行うことができる。
(実施形態12)
次に、本発明の実施形態12について説明する。
本実施形態もデータの復元処理について説明するものである。以下、具体的に説明する。
図23は本例のデータ復元装置を説明する図である。同図において、第1の復元手段51は、前述と同様準適応型(semi-adaptive)確率統計型符号化データの復号処理を行い、第2の復元手段52は適応型の辞書型符号化データ(Lempel-Ziv法)の復号処理を行う。また、同図において、入力切換手段53、識別データ判定手段54は前述の同じ構成であるが、識別データ判定手段54は後述する4種類のマジックナンバーの識別を行う。すなわち、本例は前述の実施形態4の圧縮装置による圧縮データを復元する構成であり、識別データは前述の4種類のマジックナンバー1〜4の判断を行う。
また、本例においては2つの切換手段55a、55bが使用され、更に出力切換手段58も設けられている。
上記構成において、先ず識別データ判定手段54に入力する識別データがマジックナンバー1である場合、識別データ判定手段54は、判定した識別データを除いて、そのまま受け渡されたデータ列をデータエンドまで出力する。
また、マジックナンバー2であれば、識別データ判定手段54は入力データを第2の復号手段52に供給するよう、入力切換手段53に指示し、入力切換手段53と切換手段55aを切換える。また、第2の復号手段52からのデータ列を出力切換手段58に出力するよう指示する。したがって、この処理により、入力データは第2の復号手段52によって復号処理が行われ、出力切換手段58を介して復号データが出力される。
また、マジックナンバー3である場合、識別データ判定手段54は、入力切換手段53を切り換え、第1の復号手段51に入力データを供給するよう指示する。また、切換手段55bと出力切換手段58を切り換え、第1の復号手段51に対して復号開始の指示を行う。したがって、このように制御することにより、第1の復号手段51は復号処理を開始し、切換手段55b、出力切換手段58を介して復号データが出力される。
さらに、マジックナンバー4であれば、識別データ判定手段54は、第1の復号手段51によって復号したデータ列を、更に第2の復号手段52で復号するように入力切換手段53、切換手段55a、55b、及び出力切換手段58を切り換える。そして、第1の復号手段51と第2の復号手段52に対して復号開始の指示を行う。したがって、この指示に基づき、第1の復号手段51及び第2の復号手段52は復号処理を開始し、両復号手段51及び52によって復号処理された復号データは出力切換手段58を介して出力される。
尚、マジックナンバー1〜4ではない場合、識別データ判定手段53は、判定した識別データも含めて、そのまま入力データ列を出力する。但し、この場合、エラー応答する構成としてもよい。
以上のように処理することによって、圧縮時に設定されたマジックナンバー1〜4に基づいて復号処理を行うことができ、圧縮方式に対応する適切な復号方式を選択して効率よい復号処理を行うことができる。
(実施形態13)
次に、本発明の実施形態13について説明する。
本実施形態もデータの復元処理について説明するものである。尚、本例は前述の実施形態5乃至7による確率統計型符号化方法で圧縮されたデータ列を復元するものである。以下、具体的に説明する。
図24は本例の復号アルゴリズムを示すフローチャートである。符号化データ列は、前述の圧縮フォーマットに含まれるF1〜F8テーブル、フラグとデータを8つのエリア(又は4つのエリア)に分けて出力する。
先ず、F1〜F8テーブルからデータを取り出す準備を行う(ステップ(以下、Vで示す)1)。次に、F1テーブルのデータエンドを判断し(V2)、データが存在すればF1テーブルから1ビットのデータを取り出し(V3)、非圧縮データであるか、又は圧縮データであるか判断する(V4)。
ここで、非圧縮データであれば、F8テーブルから1バイトのデータを取り出し、出力する(V5)。一方、圧縮データである場合には(V4がYES)、F2テーブルから1ビットのデータを取り出し、出現頻度が最も多いデータであるか判断する(V7)。そして、出現頻度が最も多いデータである場合、Best1のコードを参照し、Best1コードを出力する(V8)。
また、Best1コードではない場合、F3テーブルをビット単位に参照し、出現頻度がその次に多いBest2〜3のコードであるか判断する(V10)。ここで、出現頻度が次に多いBest2〜3のコードである場合(V10がYES)、F5テーブルをビット単位に参照し、Best2のコードか、又はBest3のコードか判断する(V12)。そして、Best2のコードであれば、コード表を参照しBest2のコードを出力し(V12がYES、V13)、Best3のコードであればコード表を参照し、Best3のコードを出力する(V12がNO、V14)。
一方、F3テーブルの判断において、出現頻度がBest2〜3のコードではない場合、F4テーブルをビット単位に参照し、出現頻度がその次に多いBest4〜7のコードの判断を行う(V15、V16)。そして、Best4〜7のコードである場合、F6テーブルを2ビット単位にアクセスし、その2ビットが示すBest4〜7のコード表の該当データを出力する(V16がYES、V17)。一方、Best4〜7のコードではない場合、F7テーブルを4ビット単位にアクセスし、その4ビットが示すBest8〜23のコード表の該当データを出力する(V16がNO、V18)。
以上のようにデータの復元処理を行うことによって、確率統計型符号化方法によって圧縮されたデータ列を復元することができ、圧縮処理に対応したデータの復元処理を行うことができる。
(実施形態14)
次に、本発明の実施形態14について説明する。
本実施形態もデータの復元処理について説明するものである。尚、本例は前述の実施形態9に対応するものである。
図25は本実施形態を説明する図である。本例は膨大な入力データを分割して圧縮処理した圧縮データを復元する処理を説明するものである。同図において、原データ分割・入力手段60は、入力ファイル61に記憶された入力データを分割して入力データバッファ63に出力する。このように構成することにより、圧縮データは分割され入力データバッファ63に供給され、以後識別データを識別データ判定手段65によって識別し、第1の復号手段66、第2の復号手段67、又は元データ出力手段68を選択して圧縮データの復号処理を行うことができる。
また、本例の復号処理によって復号されたデータは、出力データバッファ69を介して出力され、この出力処理の際、復号データは復号結果データ出力手段70によって、出力されるファイル71に順次出力されて記憶される。
以上のようにデータの復元処理を行うことによって、膨大な大きさのデータについても、圧縮時と同じ長さに分割された状態で復元出力を得ることができる。
(実施形態15)
次に、本発明の実施形態15について説明する。
本実施形態は前述の実施形態10の復号処理の変形例であり、図26に本例の構成を示す。同図において、第1の復元手段71は準適応型(semi-adaptive)確率統計型符号化データの復号処理を行い、第2の復元手段72は適応型の辞書型符号化データ(Lempel-Ziv法)の復号処理を行う。さらに、本例においては、FIFO(first-in first-out)メモリ73が実装され、第1の復元手段71によって1バイトの圧縮データを復号すると、FIFOメモリ73に1バイトの復号データが入力し、この1バイトのデータはFIFOメモリ73から第2の復元手段72に出力され、復号処理される。
したがって、本例によれば、第1の復元処理と第2の復元処理を並行動作させることができ、データの復元(復号化)の高速化が図れる。
1、2・・・圧縮手段
3・・・入力データバッファ
4・・・Pバッファ
5・・・Qバッファ
11、12・・・圧縮手段
13・・・中間データバッファ
14・・・頻度テーブル
20・・・入力バッファ
21、22・・・圧縮手段
23・・・中間データバッファ
24、24a、24b・・・頻度テーブル
25・・・サイズ算出・判定手段
26・・・元データ出力手段
27・・・出力データバッファ
30・・・入力バッファ
31・・・圧縮手段
32・・・統計モデル処理手段
33・・・頻度テーブル
34・・・エントロピー符号化手段
35・・・準備処理部
36・・・エントロピー符号化処理部
37・・・出力処理手段
39・・・圧縮効率判定部
40・・・原データ分割・入力手段
41・・・入力ファイル
43・・・入力データバッファ
44・・・圧縮結果データ出力手段
51、52・・・復元手段
53・・・入力切換手段
54・・・識別データ判定手段
55、55a、55b・・・切換手段
56・・・切換手段、
58・・・出力切換手段
60・・・原データ分割・入力手段
63・・・入力データバッファ
65・・・識別データ判定手段
66、67・・・復号手段
68・・・元データ出力手段
69・・・出力データバッファ
70・・・復号結果データ出力手段
71、72・・・復元手段
73・・・FIFOメモリ
74・・・出力ファイル

Claims (2)

  1. 出現頻度に応じて可変長符号化する確率統計型符号化のデータ圧縮装置において、
    特定データと該特定データの出現頻度を記憶する頻度テーブルと、
    前記特定データを含む入力データを保持する入力データバッファと、
    符号化処理部と、
    出力処理部と、を有し、
    前記符号化処理部は、
    前記入力データバッファから順次データを読み出し、前記頻度テーブルを検索し、前記読み出したデータが出現頻度の高い順に上位23個の特定データであるか比較し、特定データである場合は圧縮データと、特定データではない場合は非圧縮データと判定し、圧縮データ又は非圧縮データの識別を1ビットのデータとして第1のテーブルに記憶するとともに、
    前記頻度テーブルを検索し、前記読み出したデータが出現頻度の最も高い特定データである時、第2のテーブルに出現頻度の最も高い特定データであることを示す1ビットのデータを記憶し、
    出現頻度の次に高い2個の特定データに含まれる時、第2乃至第3のテーブルに前記2個の特定データに含まれることを示す1ビット毎のデータを記憶し、第5のテーブルに前記2個の特定データの中の順序を示すデータを記憶し、
    出現頻度が次に高い4個の特定データである時、第2乃至第4のテーブルに出現頻度が次に高い4個の特定データに含まれることを示す1ビット毎のデータを記憶し、第6のテーブルに前記4個の特定データの中の順序を示すデータを記憶し、
    出現頻度が次に高い16個の特定データに含まれる時、第2乃至第4のテーブルに出現頻度が次に高い16個の特定データに含まれることを示す1ビット毎のデータを記憶し、
    第7のテーブルに前記16個の特定データの中の順序を示すデータを記憶し、
    前記判定が非圧縮データの場合は、前記読み出したデータを非圧縮データとして第8のテーブルに記憶し、
    前記出力処理部は、
    前記出現頻度の高い23個の特定データを少なくとも含むヘッダ部と、前記第1乃至第8のテーブルに記憶されたデータとを符号化データ列として出力する、
    ことを特徴とするデータ圧縮装置。
  2. 請求項1記載のデータ圧縮装置により出現頻度に応じて可変長符号化された確率統計型符号化データの復元装置において、
    現頻度高い順に上位23個の特定データ少なくとも含む前記ヘッダ部と前記第1乃至第8のテーブルとを含む記憶部と、
    符号化データ復元部と、を有し、
    該符号化データ復元部は、
    前記第1のテーブルから1ビット毎にデータを順次読み出し、非圧縮データであることを示すデータである時、前記第8のテーブルに記憶された非圧縮データを読み出して復号データとし、
    前記第1のテーブルから読み出した前記データが圧縮データであることを示すデータである時、前記第2のテーブルに記憶されたデータを読み出し、最も出現頻度の高い特定データであることを示すデータである時、前記ヘッダ部の最も出現頻度の高い特定データを復号データとし、
    前記第2のテーブルから読み出した前記データが最も出現頻度の高い特定データではない場合、前記第3のテーブルに記憶されたデータを読み出し、出現頻度が次に高い2個の特定データの中の1つの特定データである時、前記第5のテーブルから前記2個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記2個の特定データの中の前記順序のデータが示す特定データを復号データとし、
    前記第3のテーブルから読み出した前記データが前記出現頻度の次に高い2個の特定データではない場合、前記第4のテーブル記憶されたデータを読み出し、出現頻度の次に高い4個の特定データの中の1つの特定データである時、前記第6のテーブルから前記4個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記4個の特定データの中の前記順序のデータが示す特定データを復号データとし、
    前記第4のテーブルから読み出した前記データが出現頻度の次に高い4個の特定データではない時、前記第7のテーブルから出現頻度の次に高い16個の特定データの中の順序を示すデータを読み出し、前記ヘッダ部の前記16個の特定データの中の前記順序のデータが示す特定データを復号データとすることを特徴とする請求項1記載のデータ圧縮装置により符号化された符号化データを復元するデータ復元装置。
JP2010010949A 2004-12-28 2010-01-21 データ圧縮装置、及びデータ復元装置 Expired - Fee Related JP4905562B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010010949A JP4905562B2 (ja) 2004-12-28 2010-01-21 データ圧縮装置、及びデータ復元装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004379814 2004-12-28
JP2004379814 2004-12-28
JP2010010949A JP4905562B2 (ja) 2004-12-28 2010-01-21 データ圧縮装置、及びデータ復元装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005039807A Division JP4479530B2 (ja) 2004-12-28 2005-02-16 データ圧縮装置、及びデータ復元装置

Publications (2)

Publication Number Publication Date
JP2010136417A JP2010136417A (ja) 2010-06-17
JP4905562B2 true JP4905562B2 (ja) 2012-03-28

Family

ID=38992628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010010949A Expired - Fee Related JP4905562B2 (ja) 2004-12-28 2010-01-21 データ圧縮装置、及びデータ復元装置

Country Status (2)

Country Link
JP (1) JP4905562B2 (ja)
CN (1) CN101095284B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547010B (zh) * 2008-03-24 2011-07-06 华为技术有限公司 编码解码系统、方法及装置
JP5149939B2 (ja) 2010-06-15 2013-02-20 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法
CN102457283B (zh) * 2010-10-28 2015-10-14 阿里巴巴集团控股有限公司 一种数据压缩、解压缩方法及设备
WO2014055229A1 (en) 2012-10-01 2014-04-10 Eveready Battery Company, Inc Fuel unit, gas generator and system
EP2720376A1 (en) 2012-10-09 2014-04-16 Alcatel Lucent Secure and lossless data compression
TWI490855B (zh) * 2013-04-02 2015-07-01 Mstar Semiconductor Inc 解壓縮電路與相關的解壓縮方法
US9589496B2 (en) 2013-08-27 2017-03-07 Samsung Display Co., Ltd. Temporal dithering technique used in accumulative data compression
CN108305593B (zh) * 2013-09-05 2020-11-13 联咏科技股份有限公司 用于液晶显示器的数据压缩系统及其省电方法
US9219499B2 (en) * 2014-05-16 2015-12-22 Robert Bosch Gmbh Run time compression method for a vehicle communication bus
JP6363581B2 (ja) * 2015-05-11 2018-07-25 ヴィア アライアンス セミコンダクター カンパニー リミテッド 入力ブロックのスキャンと同時にソート済みシンボル・リストを維持するハードウェア・データ圧縮器
US10027346B2 (en) 2015-05-11 2018-07-17 Via Alliance Semiconductor Co., Ltd. Hardware data compressor that maintains sorted symbol list concurrently with input block scanning
KR102337966B1 (ko) * 2017-05-19 2021-12-13 삼성전자주식회사 데이터를 압축하는 전자 장치 및 그 동작 방법
CN107065687B (zh) * 2017-05-26 2019-07-26 西安工程大学 基于lzhuf的嵌入式针织系统控制数据压缩方法
CN107911570B (zh) * 2017-11-27 2019-11-29 公安部交通管理科学研究所 一种对图片特征进行压缩及解压的方法
CN108427704B (zh) * 2018-01-05 2022-08-09 平安科技(深圳)有限公司 压缩工具调用方法、装置及存储介质
JP6775558B2 (ja) * 2018-09-18 2020-10-28 キヤノン株式会社 画像伸長装置及びその制御方法及びプログラム
US10476518B1 (en) * 2018-12-06 2019-11-12 Nyquist Semiconductor Limited Hardware friendly data compression
CN110518917B (zh) * 2019-07-17 2023-01-03 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于Huffman编码的LZW数据压缩方法及系统
CN111464187B (zh) * 2020-04-17 2023-04-28 北京百瑞互联技术有限公司 一种主机控制接口命令事件编码方法、存储介质及计算机设备
CN112100455B (zh) * 2020-08-18 2022-09-20 北京理工大学 基于字符串并行搜索的lzw字典搜索方法
TWI758897B (zh) * 2020-10-08 2022-03-21 大陸商星宸科技股份有限公司 卷積計算裝置及方法
CN115310409B (zh) * 2022-06-29 2024-07-12 杭州似然数据有限公司 一种数据编码的方法、系统、电子装置和存储介质
CN116886104B (zh) * 2023-09-08 2023-11-21 西安小草植物科技有限责任公司 一种基于人工智能的智慧医疗数据分析方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4626824A (en) * 1985-06-11 1986-12-02 International Business Machines Corporation Apparatus and algorithm for compressing and decompressing data
JPH0661870A (ja) * 1992-08-12 1994-03-04 Mitsubishi Electric Corp 可変長符号復号器
JPH07212243A (ja) * 1994-01-13 1995-08-11 Fuji Photo Film Co Ltd 可変長符号の符号化方法およびその装置
US5861827A (en) * 1996-07-24 1999-01-19 Unisys Corporation Data compression and decompression system with immediate dictionary updating interleaved with string search
US5964842A (en) * 1997-01-31 1999-10-12 Network Computing Devices, Inc. Method and apparatus for scaling data compression based on system capacity
JP3161697B2 (ja) * 1997-04-18 2001-04-25 富士ゼロックス株式会社 符号化装置、復号装置および符号化復号装置ならびにそれらの方法
JP2001044849A (ja) * 1999-07-27 2001-02-16 Canon Inc 復号化装置及び方法

Also Published As

Publication number Publication date
CN101095284A (zh) 2007-12-26
CN101095284B (zh) 2012-04-18
JP2010136417A (ja) 2010-06-17

Similar Documents

Publication Publication Date Title
JP4905562B2 (ja) データ圧縮装置、及びデータ復元装置
JP4479530B2 (ja) データ圧縮装置、及びデータ復元装置
CA2321233C (en) Block-wise adaptive statistical data compressor
US5818877A (en) Method for reducing storage requirements for grouped data values
US6650261B2 (en) Sliding window compression method utilizing defined match locations
US7894532B2 (en) Variable-length encoding apparatus and method
US5001478A (en) Method of encoding compressed data
US5673042A (en) Method of and an apparatus for compressing/decompressing data
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
US7375660B1 (en) Huffman decoding method
JP2006093958A (ja) プログレッシブjpeg復号化システム
Moussalli et al. A high throughput no-stall golomb-rice hardware decoder
WO2001010036A1 (en) Memory efficient variable-length encoding/decoding system
EP0438954B1 (en) Method of decoding compressed data
EP0435802B1 (en) Method of decompressing compressed data
Shah et al. The improvised GZIP, a technique for real time lossless data compression
Haque et al. Study on data compression technique
JP3266419B2 (ja) データ圧縮・伸長方式
CN1656688B (zh) 在压缩之前处理数字数据
US20080001790A1 (en) Method and system for enhancing data compression
EP0494038A2 (en) Run-length encoding in extensible character sets
JPH07298062A (ja) データ圧縮・復号方式
KR100686354B1 (ko) 가변 트리를 이용한 허프만 복호화 방법 및 장치
JPH0644038A (ja) データ圧縮方法、データ復元方法、データ圧縮/復元方法
Mesut et al. ISSDC: Digram coding based lossless data compression algorithm

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110427

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4905562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees