JP2005286371A - データ圧縮方法及びプログラムならびにデータ復元方法及び装置 - Google Patents

データ圧縮方法及びプログラムならびにデータ復元方法及び装置 Download PDF

Info

Publication number
JP2005286371A
JP2005286371A JP2004092980A JP2004092980A JP2005286371A JP 2005286371 A JP2005286371 A JP 2005286371A JP 2004092980 A JP2004092980 A JP 2004092980A JP 2004092980 A JP2004092980 A JP 2004092980A JP 2005286371 A JP2005286371 A JP 2005286371A
Authority
JP
Japan
Prior art keywords
matching
length
value
match
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004092980A
Other languages
English (en)
Other versions
JP4093200B2 (ja
Inventor
Kuniaki Ueki
國明 植木
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004092980A priority Critical patent/JP4093200B2/ja
Publication of JP2005286371A publication Critical patent/JP2005286371A/ja
Application granted granted Critical
Publication of JP4093200B2 publication Critical patent/JP4093200B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】LZ77符合に基づくデータ圧縮方法であって、圧縮率を改善でき、また、データ圧縮及び復元の処理に時間のかからないデータ圧縮方法等を提供する。
【解決手段】符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮するデータ圧縮方法において、前記符号化によって生成される符号が、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号と、から構成される。
【選択図】 図7

Description

本発明は、符号化済みの記号列との一致に基づいて符号化することにより、データを圧縮する方法等に関し、特に、データ圧縮率を向上させることができ、データ圧縮及び復元の処理に時間のかからないデータ圧縮方法等に関する。
近年、情報処理技術の発達やインターネット等のネットワークの普及により、膨大なデータが処理されると共に通信されるようになってきている。例えば、ホストコンピュータからネットワークを介してプリンタに印刷を実行させるということが一般によく行われ、また、プリンタの処理速度も随時向上してきているが、ホストコンピュータからプリンタに送信する印刷データの容量が大きい場合にはその通信に時間がかかってしまい、プリンタの処理速度を十分に生かすことができないという事態も発生する。従って、データを如何に圧縮して送信し、受信後、如何に復元するかというデータの圧縮及び復元技術が必要となってくる。
かかるデータの圧縮及び復元技術としては、従来から、その目的や対象データにより幾つかのものが提案されている。その一つとして、LZ77(Ziv and Lempel(1977))符号を用いた方法がある。かかる手法では、現在符号化を行なっている記号(データ)の前後の記号列をバッファに保存し、このバッファを辞書として参照して、符号化しようとしている記号列と一致する、最長の記号列を当該辞書内で探索する。そして、探索された記号列の長さと位置の情報により対象の記号列を符号化する。
このLZ77方式にも様々なバリエーションが開発されており、例えば、下記非特許文献1に記載されたLZSS符号を用いた方法は現在頻繁に用いられている。かかる方法は、前記一致する最長記号列の長さが所定の値より小さい場合には、元の記号をそのまま符号とし、即ち、上述の一致記号列の長さと位置による符号化は行なわず、一致する最長記号列の長さが所定の値より大きい場合には、上述の一致記号列の長さと位置による符号化を行なう。そして、両者を区別するためのフラグを符号の先頭に付加する。
また、このようなLZ77方式のデータ圧縮方法について、圧縮率の向上などの目的により幾つかの提案がなされている(例えば、下記特許文献1及び2)。
特開平5−11973号公報 特開平7−261977号公報 植松友彦著、「文書データ圧縮アルゴリズム入門」、第2版、CQ出版、1995年6月、p.145−148
しかしながら、上述したLZSS符号では、前記一致する最長記号列の位置(以下、一致位置と呼ぶ)と長さ(以下、一致長さと呼ぶ)を固定長さの符号(ビット列)で表現しているので、データの圧縮率があまりよくないという課題があった。
また、上記特許文献1には、辞書内の一致する記号列に出現番号なるものを付けて、この出現番号を上記一致位置として出力することにより、データ圧縮率の向上を図ろうとする方法が記載されているが、かかる方法では、圧縮されたデータの復号の際にも、一致する記号列の出現位置を検索によって求める必要があり、復元の処理に時間がかかってしまうという問題があった。
また、上記特許文献2には、上記一致位置と一致長さを、スプレイ木により動的に変化する符号で表現し、圧縮率の向上を図る技術が示されているが、符号を動的に変更するため、圧縮、復元共に処理が複雑であり、それらの処理に時間がかかるという課題があった。
そこで、本発明の目的は、LZ77符合に基づくデータ圧縮方法であって、圧縮率を改善でき、また、データ圧縮及び復元の処理に時間のかからないデータ圧縮方法等を提供することである。
上記の目的を達成するために、本発明の一つの側面は、符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮するデータ圧縮方法であって、前記符号化によって生成される符号が、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号と、から構成されることを特徴とする。従って、本発明によれば、前回の符号化時の値と同一である一致位置及び又は一致長さの情報が付加されないので、データ圧縮率をより高めることができる。
更に、上記の発明において、その好ましい態様は、前記第二符号が、可変長の符号であり、前記第一符号が、前記第二符号の長さに関する情報を含むことを特徴とする。これにより、更にデータ圧縮率を高めることが可能となる。
更に、上記の発明において、好ましい態様は、前記第二符号が、前記一致位置及び又は前記一致長さを表す値を2進法で表現した場合の最上位の1を除いたものであることを特徴とする。これにより、更に一層、データ圧縮率をより高めることができる。
上記の目的を達成するために、本発明の別の側面は、符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮するデータ圧縮方法であって、前記最長一致系列の長さが、所定の値よりも小さい場合には、当該所定の値よりも小さい旨と元の記号を表す、所定長さの第一識別情報により前記符号化を行い、前記最長一致系列の長さが、前記所定の値以上の場合には、当該所定の値以上である旨と、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報と、前記前回の符号化時の値と同一でない前記一致位置及び又は一致長さを表す一致位置情報及び又は一致長さ情報の長さとを表す、前記第一識別情報と同じ長さの第二識別情報と、前記前回の符号化時の値と同一でない前記一致位置及び又は一致長さを表す一致位置情報及び又は一致長さ情報と、により前記符号化を行なうことである。
更に、上記の発明において、その好ましい態様は、前記一致位置情報及び又は一致長さ情報が、前記一致位置及び又は前記一致長さを表す値を2進法で表現した場合の最上位の1を除いたものであることを特徴とする。
更に、上記の発明において、好ましい態様は、前記一致位置及び又は一致長さの値が前回の符号化時の値と同一である場合には、前記第二識別情報に含まれる前記一致位置情報及び又は一致長さ情報の長さを0とすることを特徴とする。
また、上記の発明において、好ましい態様は、前記第一識別情報及び又は第二識別情報
がハフマン符号化されることを特徴とする。
上記の目的を達成するために、本発明の別の側面は、符号化済みの記号列の中に存在す
る、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮する処理をコンピュータに実行させるデータ圧縮プログラムであって、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの判断を行うステップと、前記判断の結果に基づき、前記前回の符号化時の値と同一であるか否かの情報を含む符号を出力するステップと、前記出力の後に、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一でない場合には、当該一致位置及び又は一致長さの値を表す符号を出力するステップとを前記コンピュータに実行させることである。
上記の目的を達成するために、本発明の更に別の側面は、符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化されたデータを復元するデータ復元方法であって、前記復元対象のデータが、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号とから構成される場合に、前記第一符号に基づいて、前記一致位置及び又は前記一致長さの値が前回の復号時の値と同一であるか否かを判断し、前記前回の復号時の値と同一であると判断された一致位置及び又は一致長さの値を、前回の復号時の値から取得し、前記前回の復号時の値と同一でないと判断された一致位置及び又は一致長さの値を、前記第二符号から取得し、前記取得された一致位置と一致長さの値に基づいて、復号済みの記号列を用いて復号を行なうことである。
上記の目的を達成するために、本発明の別の側面は、符号化済みの記号列の中に存在す
る、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化されたデータを復元するデータ復元装置が、前記復元済みの記号列を格納する記号列格納手段と、前記復元時に得られる前記一致位置及び前記一致長さの値であって最新の値を格納する前回値格納手段と、前記復元対象のデータが、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号とから構成される場合に、前記第一符号に基づいて、前記一致位置及び又は前記一致長さの値が前記前回の符号化時の値と同一であるか否かを判断し、前記前回の符号化時の値と同一であると判断された一致位置及び又は一致長さの値を、前記前回値格納手段に格納された値から取得し、前記前回の符号化時の値と同一でないと判断された一致位置及び又は一致長さの値を、前記第二符号から取得し、前記取得された一致位置と一致長さの値に基づいて、前記記号列格納手段に格納された記号列を用いて復号を行なう、復号手段とを備えることである。
本発明の更なる目的及び、特徴は、以下に説明する発明の実施の形態から明らかになる。
以下、図面を参照して本発明の実施の形態例を説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。なお、図において、同一又は類似のものには同一の参照番号又は参照記号を付して説明する。
図1は、本発明を適用したデータ圧縮装置の実施の形態例に係る構成図である。また、図2は、本発明を適用したデータ復元装置の実施の形態例に係る構成図である。図1及び図2に示すデータ圧縮装置1及びデータ復元装置2が、本発明に係るデータ圧縮方法及び復元方法を用いた装置である。本データ圧縮装置1のデータ圧縮方法は、LZ77符号の考え方を基本としているが、符号化に用いる前記一致位置と一致長さの値について、前回の処理時の値を記憶しておき、それらの値と同じ場合には、その旨を符号に含めることにより符号から一致位置と一致長さの情報を除き、符号の長さを極力短くしてデータの圧縮率を改善しようとするものである。また、本データ復元装置2のデータ復元方法は、上記圧縮時と同様に、一致位置と一致長さの値について前回の処理時の値を記憶しておき、圧縮時に付加された、それら前回の値と同一であるか否かの情報を利用して、一致位置と一致長さの情報を容易に取得し、それらの情報から元の記号列に復号するものであり、処理に時間のかからない復元処理を実現するものである。
図1に示すように、データ圧縮装置1は、入力バッファ11、符号化部12、辞書バッファ13、及び前回値バッファ14から構成され、入力されるデータを符号化してデータ容量を圧縮する装置である。ここで、入力される符号化前のデータのことを記号(列)と呼ぶこととし、本実施の形態例においては、各記号、例えば、図1の入力バッファ11内の“A”、“B”など、は8ビットのデータであるものとする。また、処理後の符号は、2進法による“0”又は“1”のビット列で表現される。
入力バッファ11は、符号化対象の記号列を順次受け入れて格納するデータバッファであり、符号化が終了した記号列を順次辞書バッファ13に引き渡す。また、入力バッファ11の長さ(図1のL2)、即ち、格納可能な記号の数は、本実施の形態例では257であるものとする。この長さL2は、前記一致長さ(例えば、図1のl)の最大値を意味するものである。
辞書バッファ13は、符号化済みの記号列を上記入力バッファ11から順次受け入れて格納するデータバッファであり、LZ77方式において所謂辞書と呼ばれているものである。ここに格納された記号列は、入力バッファ11内の符号化処理対象の記号列と比較され、この中から入力バッファ11内の記号列と一致する最大長の記号列(以下、最長一致系列と呼ぶ)が探索される。辞書バッファ13では、符号化部12における符号化が終了する度に、符号化が済んだ記号列を受け入れて、先頭にある(図1の左側に位置する)その分の記号列が不要の記号として吐き出される。また、辞書バッファ13の長さ(図1のL1)、即ち、格納可能な記号の数は、本実施の形態例では16383(16K)であるものとする。この長さL1は、前記一致位置を表す距離(例えば、図1のd)の最大値を意味するものである。図1に示す例では、最長一致系列が“ABCD”であり、その長さである一致長さがlであり、その一致位置がpであるということになる。
次に、符号化部12は、当該データ圧縮装置1における記号列の入力、符号化、及び符号の出力に係る全般の制御を行なう部分であるが、主に、辞書バッファ13を参照しながら、入力バッファ11内の記号列を符号化する処理を実行する。かかる符号化部12が行なう符号化処理に特徴があり、その具体的な内容については後述する。なお、符号化部12は、処理の手順を示したプログラムとそのプログラムに従って処理を実行するCPU等で構成してもよいし、ハードウェア回路で構成してもよい。
また、前回値バッファ14は、前回の、前記符号化部12における一致位置と一致長さを用いた符号化処理時の、一致位置と一致長さの値を保持する部分であり、一致位置と一致長さを用いた符号化処理が行われる度に保持する値が更新される。かかる前回値バッファ14に保持された値が符号化部12における符号化処理に用いられることが、本データ圧縮装置1の特徴の一つである。
図2に示すように、データ復元装置2もデータ圧縮装置1と同様の構成をしており、入力バッファ21、復号部22(復号手段)、辞書バッファ23(記号列格納手段)、及び前回値バッファ24(前回値格納手段)を備えている。本データ復元装置2は、前記データ圧縮装置1で圧縮されたデータ(符号)を元の記号列のデータに復元する装置である。入力バッファ21は、処理対象の符号を順次受け入れて格納するデータバッファである。
辞書バッファ23は、復号済みの記号列を復号部22から順次受け入れて格納するデータバッファである。ここに格納された記号列は、復号部22による復号処理時に参照され、復号処理に利用される。辞書バッファ23では、復号部22における処理が終了する度に、復号された記号列を受け入れて、先頭にある(図2の右側に位置する)その分の記号列が不要の記号として吐き出される。また、辞書バッファ23の長さ(サイズ)は、データ圧縮装置1の辞書バッファ13の長さL1と同じである。
また、辞書バッファ23内の状態は、その時に復号部22において処理対象となっている符号が、データ圧縮装置1において符号化された時の辞書バッファ13の状態と一緒の状態となっている。図1に示す例で“ABCD”という記号列が、一致位置p(又はd)と一致長さlに基づいて符号化された場合に、当該符号がデータ復元装置2によって復号処理される際には、辞書バッファ23内の状態は図2に示すような状態になっている。即ち、辞書バッファ23の左端から距離dの位置pより“ABCD”の順番に(図2では逆方向に表現されている)記号列が納められる。従って、復号部22は、符号から取得される一致位置p(又はd)と一致長さlの情報に基づいて“ABCD”と復号することができる。
復号部22は、当該データ復元装置2における符号の入力、復号、及び記号の出力に係る全般の制御を行なう部分であるが、主に、辞書バッファ23を参照しながら、入力バッファ21内の符号を復号する処理を実行する。かかる復号部22が行なう復号処理の具体的な内容については後述する。なお、復号部22は、処理の手順を示したプログラムとそのプログラムに従って処理を実行するCPU等で構成してもよいし、ハードウェア回路で構成してもよい。
また、前回値バッファ24は、一致位置と一致長さを用いて符号化された符号の、前記復号部22における前回の処理時において取得された一致位置と一致長さの値を保持する部分であり、かかる処理が行われる度に保持する値が更新される。かかる前回値バッファ24に保持された値が復号部22における復号処理に用いられることが、本データ復元装置2の特徴の一つである。
図3は、データ圧縮装置1の符号化部12が行なう処理の内容を例示したフローチャートである。以下、図3に基づいて、本データ圧縮装置1で行なわれる圧縮処理の具体的な内容について説明する。まず、符号化部12は、前記前回値バッファ14に保持されている一致位置及び一致長さの値(図1の例では、dとlの値)を初期化する(ステップS1)。具体的には、双方の値を0としてもよいし、それぞれ、符号化時において頻繁に現れる値としてもよい。次に、処理対象の記号列が順番に入力バッファ11に読み込まれる(ステップS2)。その後、符号化部12は、入力バッファ11に格納された先頭位置(図1では、左端位置)からの記号列について、辞書バッファ13内に格納された記号列との一致を探索する(ステップS3)。即ち、前述した最長一致系列を検索する。
そして、検索された最長一致系列の長さ(一致長さ)が予め定められた値以上であるか否かがチェックされる(ステップS4)。例えば、かかる所定数は“3”とされる。その結果、一致長さが2以下であれば(ステップS4のNo)、符号化部12は、入力バッファ11の先頭位置にある記号を、最長一致系列の一致位置と一致長さで表現せずに、当該記号をそのまま2進法で表現する手法で符号化する。そして、その符号を出力する(ステップS5)。具体的には、本実施の形態例では、記号は8ビットのデータであるので、元の記号のままの8ビットのデータを9ビットで表現し、それを当該記号の符号とする。
図4は、本データ圧縮装置1によって生成される符号等を説明するための図である。図4の(a)が、本データ圧縮装置1によって生成される符号を模式的に示したものであり、上段に示される図([不一致]と記載)が、上記ステップS5で出力される符号である。言い換えれば、入力バッファ11の先頭位置から所定数の記号列について、辞書バッファ13内に一致するものが無かった場合の符号を示している。前述のように、かかる符号は、元々8ビットのデータを9ビットで表現したものであるので、必ず最上位のビットは“0”となる。後述するが、前記ステップS4で一致長さが所定数以上である場合には、この最上位のビットが必ず“1”となるので、当該最上位のビットは、所定数の記号列について“不一致”であったことを示すことになる。また、それ以降に続く8ビットのデータは、元の記号そのものである。
従って、当該符号は、その最上位のビットにより上記“不一致”であること、即ち、その後のビット列で記号そのものを表していることを識別させている。言い換えれば、0〜511の値を取れる表現で、0〜255の値を表現することにより、元の記号をそのまま表現したものであることを識別させている。なお、この“不一致”であることと元の記号を含んだ、“不一致”の場合の符号全体を、ここでは“不一致”の場合の識別情報(第一識別情報)と称することとする。
図3に戻って、前記ステップS4において、一致長さが所定数以上である場合には(ステップS4のYes)、符号化部12は、検索された最長一致系列の一致位置及び一致長さを表すために必要なビット数(ビット列の長さ)を求める(ステップS6)。本実施の形態例では、前述した辞書バッファ13のサイズから、一致位置は、1〜16383の値を取るので、一致位置を表すのに必要なビット数は、1〜14の値となる。また、前述した入力バッファ11のサイズ及びステップS4における条件から、一致長さは、3〜257の値を取るので、一致長さを表すのに必要なビット数は、1〜8の値となる。
次に、符号化部12は、今回探索された最長一致系列の一致位置の値が、前回値バッファ14に保持されている一致位置の値と同一であるか否かをチェックする(ステップS7)。そして、同一であった場合には(ステップS7のYes)、前記求めた一致位置を表すのに必要なビット数を0とする(ステップS8)。一方、同一でなかった場合、即ち、相異していた場合には(ステップS7のNo)、前記求めた一致位置を表すのに必要なビット数を変更しない。
更に、次に、符号化部12は、今回探索された最長一致系列の一致長さの値が、前回値バッファ14に保持されている一致長さの値と同一であるか否かをチェックする(ステップS9)。そして、同一であった場合には(ステップS9のYes)、前記求めた一致長さを表すのに必要なビット数を0とする(ステップS10)。一方、同一でなかった場合、即ち、相異していた場合には(ステップS9のNo)、前記求めた一致長さを表すのに必要なビット数を変更しない。
このように一致位置と一致長さのビット数が決定すると、符号化部12は、これら一致位置及び一致長さのビット数と、入力バッファ11の先頭位置から所定数の記号列について辞書バッファ13内に“一致”するものがあった旨を示す符号を生成して出力する(ステップS11)。かかる符号を、ここでは“一致”の場合の識別情報(第一符号、第二識別情報)と称することとする。具体的には、一例として、下記(1)式のような値を識別情報として生成する。
識別情報(“一致”の場合)=256+BL×(最大BP+1)+BP (1)
但し、 BL:一致長さを表すのに必要なビット数
BP:一致位置を表すのに必要なビット数
最大BP:一致位置を表すのに必要な最大のビット数
なお、本実施の形態例では、上述の通り、最大BPは14の値となり、BP及びBLは上記値を取るので、(1)式により、上記識別情報(“一致”の場合)は256〜390の値となる。従って、当該識別情報(“一致”の場合)も2進法の符号として9ビットで表現される。図4の(a)の下段に示される4つの符号([一致]と記載)が、上記所定数の記号列の“一致”があった場合に生成され出力される符号を示しているが、その左側部分の9ビットが当該識別情報に相当する。
上述のように、当該識別情報は256以上の値を取るので、そのことによって上記“一致”があったことを識別させ、また、当該識別情報の値から256を引いた値によって一致位置及び一致長さを表すのに必要なビット数を示している。言い換えれば、9ビットで表現される当該符号の最上位のビットは常に“1”の値となり、そのことで上記“一致”があったことを示し、下位の8ビットで一致位置及び一致長さを表すのに必要なビット数を示している。更に、一致位置、一致長さを表すのに必要なビット数が0である場合には、それぞれ、それらの値が前回値バッファ14に保持されている値と同一であること、即ち、前回、所定数以上の記号が一致した時の一致位置、一致長さの値と同一であることを示している。
このように、本実施の形態例による符号では、上記“一致”の場合にも“不一致”の場合にも、識別情報が共に9ビットで表現され、その値が256以上であるか否かにより、言い換えれば、最上位のビットにより、一致位置と一致長さに基づく符号化がなされているか否かが識別できる。また、その識別の後、下位8ビットにより、“不一致”の場合には、元の記号そのものを知ることができ、“一致”の場合には、識別情報の後に続く一致位置と一致長さを表す符号の長さ、あるいは、一致位置、一致長さの値が前回の値と同一であったことを知ることができる。
かかる識別情報の出力が終了すると、符号化部12は、一致位置を表すのに必要なビット数が0であるか否かをチェックし(ステップS12)、0でない場合には(ステップS12のNo)、前記検索された最長一致系列の一致位置を表す一致位置情報(第二符号)を符号として出力する(ステップS13)。具体的には、一致位置を表す値を2進法表現した際の最上位の“1”のビットを除いた下位のビット列を一致位置情報として出力する。これは、最上位のビットが“1”であることが自明であり、極力データ量を少なくしようとする目的によるものである。例えば、一致位置の値が9である場合には、2進法では“1001”となるが、“001”を一致位置情報として出力する。
また、前述した、一致位置と一致長さを固定長のビット列で表現するLZSS符号の場合と比較して表現すれば、一致位置を最大長の14ビットで表現し、そのビット列のMSB(Most Significant Bit)側から連続して存在している“0”のビットとその次の“1”のビットを取り除いたものを一致位置情報とする。
一方、一致位置を表すのに必要なビット数が0である場合には(ステップS12のYes)、上記一致位置情報は出力しない。
次に、符号化部12は、一致長さを表すのに必要なビット数が0であるか否かをチェックし(ステップS14)、0でない場合には(ステップS14のNo)、前記検索された最長一致系列の一致長さを表す一致長さ情報(第二符号)を符号として出力する(ステップS15)。この一致長さ情報も前記一致位置情報と同様に、一致長さを表す値を2進法表現した際の最上位の“1”のビットを除いた下位のビット列を一致長さ情報として出力する。一方、一致長さを表すのに必要なビット数が0である場合には(ステップS14のYes)、上記一致長さ情報は出力しない。
図4の(a)の下段に例示した[一致]の符号において、右側に示される“一致位置情報”及び“一致長さ情報”が前記ステップS13及びS15において出力される各情報に相当する。そして、それらの中の(相異、相異)で示す符号は、一致位置の値も一致長さの値も前回値バッファ14の値と同一でなかった場合に出力される符号を示している。以下、同様に、(相異、同一)、(同一、相異)、及び(同一、同一)で示す符号は、それぞれ、一致長さの値のみが前回値バッファ14の値と同一であった場合、一致位置の値のみが前回値バッファ14の値と同一であった場合、及び一致位置の値も一致長さの値も前回値バッファ14の値と同一であった場合に出力される符号を示している。このように、前回の値と同じ情報については出力がなされず、更なるデータの圧縮が図られることになる。
このように、一致長さ情報の出力が終了すると、符号化部12は、前回値バッファ14に保持される一致位置及び一致長さの値を、それぞれ、今回の処理で探索された前記最長一致系列の一致位置及び一致長さの値に更新する(ステップS16)。
以上説明したように、“不一致”の場合あるいは“一致”の場合における符号の生成及び出力の処理が終了すると、入力バッファ11及び辞書バッファ13に格納されている記号列がスライドされる(ステップS17)。具体的には、上記処理により符号が生成され出力された記号(列)が、入力バッファ11の先頭部分から辞書バッファ13の後尾部分に移動する。そして、その移動分の新たな記号(列)が入力バッファ11に入力され、また、その移動分の記号(列)が辞書バッファ13から吐き出される。なお、前記“不一致”の場合には、1記号のみが符号化されるので、上記移動する記号は一つであり、前記“一致”の場合には、3以上の記号が符号化されるので、上記移動する記号は3以上となる。
その後、今回行おうとしている圧縮処理が終了したか否かが判断され(ステップS18)、終了していない場合には(ステップS18のNo)、前述したステップS3からの処理が繰り返される。そして、圧縮処理が終了したと判断された場合には(ステップS18のYes)、一連のデータ圧縮処理を終了する。
図5は、データ復元装置2の復号部22が行なう処理の内容を例示したフローチャートである。以下、図5に基づいて、本データ復元装置2で行なわれる復元処理の具体的な内容について説明する。まず、復号部22は、前記前回値バッファ24に保持されている一致位置及び一致長さの値を初期化する(ステップS21)。具体的には、復号対象のデータが符号化された際の前回値バッファ14の初期化時における値と同じ値とされる。その後、処理対象の符号が順番に入力バッファ21に読み込まれる(ステップS22)。次に、復号部22は、符号の先頭の9ビット、即ち、識別情報を入力バッファ21より読み込んでその情報を解釈する(ステップS23)。
そして、現在処理対象の符号が、符号化時に前述した“不一致”の場合であったのか“一致”の場合であったのかを判断する(ステップS24)。かかる判断は、前述の通り、識別情報の最上位のビットによって行うことができ、最上位のビットが“0”であれば、“不一致”の場合であったと判断し、最上位のビットが“1”であれば、“一致”の場合であったと判断する。言い換えれば、読み込んだ識別情報の値が0〜255であれば、その値が元の記号そのものを表していると判断し、識別情報の値が256以上であれば、この識別情報でこの後に続く一致位置と一致長さの情報のビット数を知ることができると判断する。
かかる判断で、“不一致”の場合であったと判断された場合には(ステップS24のNo)、上記読み込んだ識別情報が元の記号そのものを表しているので、元の記号を復元して出力する(ステップS25)。より具体的には、9ビットの識別情報を8ビットとして出力する。
一方、“一致”の場合であったと判断された場合には(ステップS24のYes)、読み込んだ識別情報から、前記一致位置を表すのに必要なビット数と一致長さを表すのに必要なビット数を求める(ステップS26)。具体的には、識別情報が前述した(1)式によって生成されているので、読み込んだ識別情報の値から256を引き、その後の値を前記最大BPよりも1大きい値(14+1)で割り、その時の余りを一致位置を表すのに必要なビット数とし、また、その時の商を一致長さを表すのに必要なビット数とする。
次に、復号部22は、前記求めた一致位置を表すのに必要なビット数が0であるか否かをチェックし(ステップS27)、0でなければ(ステップS27のNo)、前記読み込んだ識別情報に続く、上記求めた一致位置を表すのに必要なビット数から1を引いた数の符号(ビット)を、入力バッファ21から読み込む(ステップS28)。その後、復号部22は、当該読み込んだ一致位置情報から一致位置の値を求める(ステップS29)。具体的には、読み込んだ一致位置情報のビット列の最上位に“1”のビットを付加した値を、一致位置の値とする。換言すれば、2の(前記一致位置を表すのに必要なビット数−1)乗に一致位置情報の値を加えたものを一致位置の値とする。
一方、前記求めた一致位置を表すのに必要なビット数が0であれば(ステップS27のYes)、一致位置の値を前回値バッファ24に保持されている一致位置の値とする(ステップS30)。
引き続き、復号部22は、前記求めた一致長さを表すのに必要なビット数が0であるか否かをチェックし(ステップS31)、0でなければ(ステップS31のNo)、前記読み込んだ識別情報に続く、上記求めた一致長さを表すのに必要なビット数から1を引いた数の符号(ビット)を、入力バッファ21から読み込む(ステップS32)。その後、復号部22は、当該読み込んだ一致長さ情報から一致長さの値を求める(ステップS33)。具体的には、読み込んだ一致長さ情報のビット列の最上位に“1”のビットを付加した値に、2を加えた値を、一致長さの値とする。換言すれば、2の(前記一致長さを表すのに必要なビット数−1)乗に一致長さ情報の値と2を加えたものを一致長さの値とする。ここで2を加えるのは、前述のように、一致長さの値が3〜257の値を取り、符号化時にそれを8ビットで表現するために、一致長さの値から2を引いた値(1〜255)を符号化していることによるものである。
一方、前記求めた一致長さを表すのに必要なビット数が0であれば(ステップS31のYes)、一致長さの値を前回値バッファ24に保持されている一致長さの値とする(ステップS34)。
次に、復号部22は、上記求めた一致位置と一致長さの値から元の記号列を復元して復元した記号列を出力する(ステップS35)。具体的には、辞書バッファ23に格納されている記号列の上記求めた値の一致位置から上記求めた値の一致長さ分の記号列を読み出し、その読み出した記号列を元の記号列として出力する。
その後、復号部22は、前回値バッファ24に保持される一致位置及び一致長さの値を、それぞれ、今回の処理で求められた一致位置及び一致長さの値に更新する(ステップS36)。
以上説明したように、“不一致”の場合あるいは“一致”の場合における復号処理が終了すると、入力バッファ21及び辞書バッファ23に格納されている符号及び記号列がスライドされる(ステップS37)。具体的には、上記処理により復元された符号が入力バッファ21から削除され、その分の新たな符号が入力バッファ21に入力される。また、上記処理により復元された記号列が辞書バッファ23の後尾部分に追加され、先頭部分のその分の記号列が不要な記号として辞書バッファ23から吐き出される。
その後、今回行おうとしている復元処理が終了したか否かが判断され(ステップS38)、終了していない場合には(ステップS38のNo)、前述したステップS23からの処理が繰り返される。そして、復元処理が終了したと判断された場合には(ステップS38のYes)、一連のデータ復元処理を終了する。
図6は、本データ圧縮装置1及びデータ復元装置2が行う処理の具体例を示した図である。図に示す例は、データ圧縮時に前記所定数以上の記号の“一致”があった場合であり、その時の一致位置が300で、一致長さが21であった場合である。更に、この例は、一致長さの値が前回の処理時の一致長さの値と同一であった場合である。図6の(a)は、前記一致位置(300)及び一致長さ(21)を、最大限のビット数の長さで模式的に示した図である。図6の(b)は、当該一致位置(300)を最大限のビット数で2進法表記したものである。
かかる状態に対して前述した符号化部12による符号化が行われると図6の(c)に示すような符号が生成されて出力される。図に示す符号の左部分が前述した識別情報(“一致”の場合)であり、前記(1)式に従って図に示すような計算がなされて、識別情報の値は265となる。即ち、一致長さの値が前回値バッファ14に保持される値と同一であるので、一致長さを表すのに必要なビット数が0となり、その値に15(最大BP+1)を掛け、その値に、一致位置の値である300を2進法表現するのに必要なビット数9と、256が加えられて265という識別情報が得られる。
また、図6の(c)に示す符号の右側部分の8ビットが一致位置情報であり、300を2進法表現したビット列の最上位の“1”が除かれたものとなっている。従って、図6の(b)に示した14ビットの表現から、MSB側の全ての“0”と上記最上位の“1”が除かれた8ビットが符号として出力されることになる。また、上述のように、一致長さの値が前回値バッファ14に保持される値と同一であるので、一致長さ情報は、出力されない。
このような符号が、データ復元装置2で受け取られ復号部22で復号されると、前記識別情報が解釈されて、一致位置と一致長さを表すのに必要なビット数がそれぞれ9と0であると判断される。そして、前述した処理内容に従って、図6の(d)に示されるように、まず、識別情報の後の(9−1)ビットが読み出されて、その最上位に“1”のビットが付加される。これにより、一致位置の値が300であると判断される。また、一致長さを表すのに必要なビット数が0であるので、前回値バッファ24の値が一致長さの値と判断される。この場合、前回値バッファ24には、一致長さの値として21が保持されているので、一致長さの値も正しく取得される。これにより、復号部22は、辞書バッファ23から所定の記号列を取り出して出力し、当該符号に対する復号処理を終了する。
以上説明したように、本実施の形態例によるデータ圧縮方法及び復元方法では、辞書(バッファ13)内に所定長以上の最長一致系列が存在しない場合には、その旨と元の記号を含む一定長の識別情報を符号として出力し、一方、辞書内に所定長以上の最長一致系列が存在する場合には、その旨と、一致位置を表すのに必要なビット数及び一致長さを表すのに必要なビット数を含む上記識別情報と同じ長さの識別情報をまず出力し、その後に、必要に応じて、一致位置情報と一致長さ情報を出力する。そして、上記一致位置、一致長さを表すのに必要なビット数が0である場合には、それらの値が前回の値と同一であることを意味し、かかる場合には、同一である一致位置、一致長さの情報は出力されない。また、前記出力される一致位置情報及び一致長さ情報は、一致位置及び一致長さを示す値を2進法表示した際の最上位のビットを除いたビット列で表現される。
従って、一致位置と一致長さに基づく符号化をした際に、それらを表す情報を常に最大の固定長(本実施の形態例では、14と8)のビット列で表現する必要がなく、上記識別情報が付加されても、符号全体として平均的に符号の長さを短くでき、従来よりもデータ圧縮率を向上させることができる。更に、本実施の形態例による圧縮方法では、一致位置、一致長さの値が前回の処理時と同一の場合には、それらを表す情報の出力が行なわれず、同一であることを示す情報を付加することにより符号が長くなることもないので、このことにより、更に圧縮率を向上させることができる。
図4の(b)は、一致位置と一致長さの最大値が本実施の形態例と同じ場合に、LZSS符号を用いた時の符号例を模式的に示している。上段の辞書内に所定長以上の最長一致系列が存在しない場合(「不一致」)には、その旨を示す“0”と元の記号8ビットが出力される。また、下段の辞書内に所定長以上の最長一致系列が存在する場合(「一致」)には、その旨を示す“1”と固定長の一致位置情報及(14ビット)及び一致長さ情報(8ビット)が出力される。図4の(a)に示した本実施の形態例の場合と比較して[不一致]の場合には、データ長さは同じであるが、[一致]の場合には、本実施の形態例の場合の方が平均してデータ長さが短くなるという評価が得られている。
また、当該符号を復元する場合には、まず、同じ長さの識別情報を解釈して、一致位置と一致長さに基づく符号化がなされているかが判断され、当該符号化がなされている場合にも、識別情報から一致位置情報と一致長さ情報を容易に読み取ることができる。また、当該識別情報により一致位置、一致長さの値が前回処理時の値と同一であるか否かを知ることができ、前回処理時の値が保持されているので、前回処理時と同一の場合にも、容易に一致位置、一致長さの値を得ることができる。従って、復号処理時に入力バッファから一致位置または一致長さの符号を読み出す処理を必要とせず、処理に時間を要することはない。
なお、前記(1)式における乗数、即ち、一致長さ情報のビット数に掛ける乗数、を15としたが、この乗数を16にしてもよい。これにより、符号化時の乗算及び復号時の除算はビットシフトで済むことになり、さらに、圧縮及び復元の処理を高速化することができる。また、この場合にも識別情報のビット数は増やす必要がなく、データ量が増えることもない。
また、本実施の形態例における固定長の識別情報をハフマン符号化してもよい。これにより、更にデータ圧縮率を高めることができる。
次に、本発明に係る別の実施の形態例について説明する。本実施の形態例に係るデータ圧縮装置及びデータ復元装置の構成は、図1及び図2に示した前記実施の形態例の場合と同様である。本実施の形態例では、圧縮時に、一致位置情報と一致長さ情報をそれぞれ固定長の符号(ビット列)で表現するが、一致位置、一致長さの値が前回処理時の値と同一であるか否かを表す符号(第一符号)を先頭に付加し、同一である一致位置、一致長さの情報については出力しない、という方法で符号化を行なう。言い換えれば、符号を、一致位置、一致長さの値が前回処理時の値と同一であるか否かを表す符号と、必要な固定長の一致位置情報及び一致長さ情報(第二符号)で構成する。
図7は、本実施の形態例により出力される圧縮処理後の符号を例示した図である。図の(a)、(b)、(c)、及び(d)は、それぞれ、一致位置の値も一致長さの値も前回値と同一でなかった場合、一致長さの値のみが前回値と同一であった場合、一致位置の値のみが前回値と同一であった場合、及び一致位置の値も一致長さの値も前回値と同一であった場合に出力される符号を示している。各符号において、先頭の2ビットが、前述した、一致位置、一致長さの値が前回処理時の値と同一であるか否かを表す符号であり、(a)〜(d)の4種類の場合を区別している。
このように符号化されたデータの復号時には、本実施の形態例に係るデータ復元装置が、符号の最初の2ビットから、一致位置、一致長さの値が前回処理時の値と同一であるか否かを判断し、同一である値については、保持しておいた前回値を用いて当該値を取得し、同一でない値については、上記2ビットの後に続く固定長の符号から値を取得する。
このように、本実施の形態例では、一致位置、一致長さの値が前回値と同一である場合には、それらの情報が出力されず、また、その旨を示すために付加される符号もそれほど長くないので、最長一致系列の一致位置及び一致長さを用いたデータ圧縮方法において、データの圧縮率を高くすることが可能である。また、かかる方法で圧縮された符号の復元も、上述の通り容易であり、処理に時間がかからない。
次に、前述した2つの実施の形態例に係るデータ圧縮方法及び復元方法の適用例について説明する。図8は、当該データ圧縮方法及び復元方法を用いた印刷システムの概略構成図である。図8に示すように、本印刷システムは、ホストコンピュータ3とプリンタ4から構成される。ホストコンピュータ3のアプリケーション31から印刷要求が出され、それを受けるプリンタドライバ32が印刷データを生成して、プリンタ4へ送信する。プリンタ4では、その印刷データをコントローラ41が受信し、所定の処理を施した後にデータをエンジン42に送る。エンジン42は、そのデータに基づいて、印刷媒体への印刷を実行する。
当該印刷システムは、所謂ホストベースのシステムであり、ホストコンピュータ3側でハーフトーン処理(スクリーン処理)までを行ってしまう。従って、プリンタドライバ32には、図8に示すように、画像データを生成する画像生成部33、色の変換処理を行う色変換部34、ハーフトーン処理を行うハーフトーン処理部35、及びハーフトーン処理後の印刷データを圧縮する圧縮部36が備えられている。なお、これらの部分は、それぞれの処理内容が示されたドライバプログラムとそれに従って処理を実行するCPU(制御装置)等によって構成され得る。
一方、プリンタ4のコントローラ41には、ホストコンピュータ3から圧縮処理された印刷データが送信されるので、それを復元処理する解凍部43が備えられる。
このように構成される本印刷システムの上記圧縮部36と解凍部43に、それぞれ、前述した2つの実施の形態例のいずれかに係るデータ圧縮装置1とデータ復元装置2が用いられている。従って、圧縮部36では2値化後のドットイメージを表す印刷データが、前述した手法で符号化される。そして、その符号化された印刷データがプリンタ4に送信され、解凍部43において述した手法で復号される。
本印刷システムでは、このように前述した実施の形態例に係るデータ圧縮方法及び復元方法が用いられるので、印刷データの圧縮率を高めることができ、ホストコンピュータ3からプリンタ4への送信時間を短縮できる。従って、高速化するホストコンピュータ3、プリンタ4での処理にデータ送信を追随させることができ、印刷システムとしてのスループットを向上させることができる。特に、本適用例のようにハーフトーン処理後の印刷データは、同じパターンのデータが繰り返し現れる傾向にあることから、圧縮率を向上させるために本データ圧縮方法が適しているといえる。なお、ハーフトーン処理後のデータについて、最長一致系列が同じであった場合に一致位置の値が小さい方を選択するようにして本圧縮方法を使用した場合に、一致位置情報は平均7〜8ビットで、一致長さ情報は平均2〜3ビットで表せるという評価が得られており、一致位置、一致長さの値が前回値と同一でない場合でも符号全体では平均19ビット程度であるといえる。従って、LZSS方式による23ビットの符号と比較してデータを短くすることができる(図4参照)。
また、プリンタ4の制御装置(CPU)は、パーソナルコンピュータなどで構成されるホストコンピュータ3と比べて、それほど高速のものを採用しなくてもすむようにしたいという要望があるが、前述した圧縮方法及び復元方法を用いれば、前述の通り、プリンタ4で行われる復元処理が容易となり、当該要望にもかなっている。また、ハーフトーン処理後の印刷データの場合には、前記識別情報のハフマン符号化に適しており、これによって更に圧縮率を向上させることができる。
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
本発明を適用したデータ圧縮装置の実施の形態例に係る構成図である。 本発明を適用したデータ復元装置の実施の形態例に係る構成図である。 符号化部12が行なう処理の内容を例示したフローチャートである。 本データ圧縮装置1によって生成される符号等を説明するための図である。 復号部22が行なう処理の内容を例示したフローチャートである。 データ圧縮装置1及びデータ復元装置2が行う処理の具体例を示した図である。 本実施の形態例により出力される圧縮処理後の符号を例示した図である。 当該データ圧縮方法及び復元方法を用いた印刷システムの概略構成図である。
符号の説明
1 データ圧縮装置、 2 データ復元装置、 3 ホストコンピュータ、 4 プリンタ、 11 入力バッファ、 12 符号化部、 13 辞書バッファ、 14 前回値バッファ、 21 入力バッファ、 22 復号部(復号手段)、 23 辞書バッファ(記号列格納手段)、 24 前回値バッファ(前回値格納手段)、 31 アプリケーション、 32 プリンタドライバ、 33 画像生成部、 34 色変換部、 35 ハーフトーン処理部、 36 圧縮部、 41 コントローラ、 42 エンジン、 43 解凍部

Claims (10)

  1. 符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮するデータ圧縮方法であって、
    前記符号化によって生成される符号が、
    前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、
    前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号と、から構成される
    ことを特徴とするデータ圧縮方法。
  2. 請求項1において、
    前記第二符号が、可変長の符号であり、
    前記第一符号が、前記第二符号の長さに関する情報を含む
    ことを特徴とするデータ圧縮方法。
  3. 請求項2において、
    前記第二符号が、前記一致位置及び又は前記一致長さを表す値を2進法で表現した場合の最上位の1を除いたものである
    ことを特徴とするデータ圧縮方法。
  4. 符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮するデータ圧縮方法であって、
    前記最長一致系列の長さが、所定の値よりも小さい場合には、当該所定の値よりも小さい旨と元の記号を表す、所定長さの第一識別情報により前記符号化を行い、
    前記最長一致系列の長さが、前記所定の値以上の場合には、
    当該所定の値以上である旨と、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報と、前記前回の符号化時の値と同一でない前記一致位置及び又は一致長さを表す一致位置情報及び又は一致長さ情報の長さとを表す、前記第一識別情報と同じ長さの第二識別情報と、
    前記前回の符号化時の値と同一でない前記一致位置及び又は一致長さを表す一致位置情報及び又は一致長さ情報と、により前記符号化を行なう
    ことを特徴とするデータ圧縮方法。
  5. 請求項4において、
    前記一致位置情報及び又は一致長さ情報が、前記一致位置及び又は前記一致長さを表す値を2進法で表現した場合の最上位の1を除いたものである
    ことを特徴とするデータ圧縮方法。
  6. 請求項4あるいは5のいずれかにおいて、
    前記一致位置及び又は一致長さの値が前回の符号化時の値と同一である場合には、前記第二識別情報に含まれる前記一致位置情報及び又は一致長さ情報の長さを0とする
    ことを特徴とするデータ圧縮方法。
  7. 請求項4乃至請求項6のいずれかにおいて、
    前記第一識別情報及び又は第二識別情報がハフマン符号化される
    ことを特徴とするデータ圧縮方法。
  8. 符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化を行いデータを圧縮する処理をコンピュータに実行させるデータ圧縮プログラムであって、
    前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの判断を行うステップと、
    前記判断の結果に基づき、前記前回の符号化時の値と同一であるか否かの情報を含む符号を出力するステップと、
    前記出力の後に、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一でない場合には、当該一致位置及び又は一致長さの値を表す符号を出力するステップとを前記コンピュータに実行させる
    ことを特徴とするデータ圧縮プログラム。
  9. 符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化されたデータを復元するデータ復元方法であって、
    前記復元対象のデータが、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号とから構成される場合に、
    前記第一符号に基づいて、前記一致位置及び又は前記一致長さの値が前回の復号時の値と同一であるか否かを判断し、
    前記前回の復号時の値と同一であると判断された一致位置及び又は一致長さの値を、前回の復号時の値から取得し、
    前記前回の復号時の値と同一でないと判断された一致位置及び又は一致長さの値を、前記第二符号から取得し、
    前記取得された一致位置と一致長さの値に基づいて、復号済みの記号列を用いて復号を行なう
    ことを特徴とするデータ復元方法。
  10. 符号化済みの記号列の中に存在する、符号化対象の記号列に最大長一致する最長一致系列を検索し、当該最長一致系列の存在位置である一致位置と当該最長一致系列の長さである一致長さとに基づいて符号化されたデータを復元するデータ復元装置であって、
    前記復元済みの記号列を格納する記号列格納手段と、
    前記復元時に得られる前記一致位置及び前記一致長さの値であって最新の値を格納する前回値格納手段と、
    前記復元対象のデータが、前記一致位置及び又は前記一致長さの値が前回の符号化時の値と同一であるか否かの情報を含む第一符号と、前記前回の符号化時の値と同一でない前記一致位置及び又は前記一致長さの値を表す第二符号とから構成される場合に、
    前記第一符号に基づいて、前記一致位置及び又は前記一致長さの値が前記前回の符号化時の値と同一であるか否かを判断し、前記前回の符号化時の値と同一であると判断された一致位置及び又は一致長さの値を、前記前回値格納手段に格納された値から取得し、前記前回の符号化時の値と同一でないと判断された一致位置及び又は一致長さの値を、前記第二符号から取得し、前記取得された一致位置と一致長さの値に基づいて、前記記号列格納手段に格納された記号列を用いて復号を行なう、復号手段とを備える
    ことを特徴とするデータ復元装置。
JP2004092980A 2004-03-26 2004-03-26 データ圧縮方法及びプログラムならびにデータ復元方法及び装置 Expired - Fee Related JP4093200B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004092980A JP4093200B2 (ja) 2004-03-26 2004-03-26 データ圧縮方法及びプログラムならびにデータ復元方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004092980A JP4093200B2 (ja) 2004-03-26 2004-03-26 データ圧縮方法及びプログラムならびにデータ復元方法及び装置

Publications (2)

Publication Number Publication Date
JP2005286371A true JP2005286371A (ja) 2005-10-13
JP4093200B2 JP4093200B2 (ja) 2008-06-04

Family

ID=35184337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004092980A Expired - Fee Related JP4093200B2 (ja) 2004-03-26 2004-03-26 データ圧縮方法及びプログラムならびにデータ復元方法及び装置

Country Status (1)

Country Link
JP (1) JP4093200B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114535A (ja) * 2009-11-26 2011-06-09 Ricoh Co Ltd データ処理装置およびデータ処理方法
JP2011258130A (ja) * 2010-06-11 2011-12-22 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
JP2014017629A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 復元プログラム、圧縮プログラム、復元装置、圧縮装置、復元方法、および圧縮方法
US10090857B2 (en) 2010-04-26 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for compressing genetic data
EP3444952A1 (en) 2017-08-14 2019-02-20 Fujitsu Limited Data compression apparatus, data decompression apparatus, data compression program, data decompression program, data compression method, and data decompression method
JP2019054532A (ja) * 2014-06-09 2019-04-04 マイクロン テクノロジー,インク. Vlsiでの効率的なハフマン符号化を行う装置および方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011114535A (ja) * 2009-11-26 2011-06-09 Ricoh Co Ltd データ処理装置およびデータ処理方法
US10090857B2 (en) 2010-04-26 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for compressing genetic data
JP2011258130A (ja) * 2010-06-11 2011-12-22 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
JP2014017629A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 復元プログラム、圧縮プログラム、復元装置、圧縮装置、復元方法、および圧縮方法
JP2019054532A (ja) * 2014-06-09 2019-04-04 マイクロン テクノロジー,インク. Vlsiでの効率的なハフマン符号化を行う装置および方法
EP3444952A1 (en) 2017-08-14 2019-02-20 Fujitsu Limited Data compression apparatus, data decompression apparatus, data compression program, data decompression program, data compression method, and data decompression method

Also Published As

Publication number Publication date
JP4093200B2 (ja) 2008-06-04

Similar Documents

Publication Publication Date Title
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
CN108880556B (zh) 基于lz77的无损数据压缩方法、误码修复方法及编码器和解码器
CN108768403B (zh) 基于lzw的无损数据压缩、解压方法及lzw编码器、解码器
US7113112B2 (en) PPM-based data compression
JP5251799B2 (ja) データ処理装置およびデータ処理方法
WO2011007956A4 (ko) 데이터의 압축방법
JP2000315954A (ja) 入力データストリームの圧縮方法とその装置
JPH1065551A (ja) データ圧縮方法
JPH08316843A (ja) 符号化装置
US7548175B2 (en) Encoding apparatus, decoding apparatus, encoding method, computer readable medium storing program thereof, and computer data signal
JP4760727B2 (ja) データ圧縮装置とその復号装置、それらの方法、及びプログラム
EP1941617A1 (en) Method and system for compressing data
US8934727B2 (en) Image processing apparatus, image processing method, and image forming apparatus
US8406538B2 (en) Image processing apparatus and image processing method
JP2000269822A (ja) データ圧縮装置、及びデータ復元装置
JP4093200B2 (ja) データ圧縮方法及びプログラムならびにデータ復元方法及び装置
CN110021368B (zh) 比对型基因测序数据压缩方法、系统及计算机可读介质
JP4093193B2 (ja) データ圧縮方法及びプログラムならびにデータ復元方法及び装置
KR100636370B1 (ko) 결정 비트를 이용한 부호화 장치 및 그 방법과 그에 따른복호화 장치 및 그 방법
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
US8970405B2 (en) Method and apparatus for entropy decoding
JP2010074444A (ja) 画像圧縮装置、画像圧縮方法、画像復号装置、画像復号方法、及び、コンピュータプログラム
JP4497029B2 (ja) データ符号化装置,およびデータ符号化方法
JP4343863B2 (ja) 画像符号化装置及び画像復号装置、並びに、それらの制御方法
JPH0738447A (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060309

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080225

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

Free format text: PAYMENT UNTIL: 20110314

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120314

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120314

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130314

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20140314

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees