JP3240495B2 - データの可逆符号化方法および装置、並びに、伸長装置 - Google Patents

データの可逆符号化方法および装置、並びに、伸長装置

Info

Publication number
JP3240495B2
JP3240495B2 JP24693294A JP24693294A JP3240495B2 JP 3240495 B2 JP3240495 B2 JP 3240495B2 JP 24693294 A JP24693294 A JP 24693294A JP 24693294 A JP24693294 A JP 24693294A JP 3240495 B2 JP3240495 B2 JP 3240495B2
Authority
JP
Japan
Prior art keywords
data
byte
encoded data
encoding
encoded
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 - Lifetime
Application number
JP24693294A
Other languages
English (en)
Other versions
JPH0888568A (ja
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 JP24693294A priority Critical patent/JP3240495B2/ja
Priority to US08/527,904 priority patent/US5640158A/en
Publication of JPH0888568A publication Critical patent/JPH0888568A/ja
Application granted granted Critical
Publication of JP3240495B2 publication Critical patent/JP3240495B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、入力データを可逆符
号化する技術に関する。
【0002】
【従来の技術】近年では、コンピュータにおいて処理さ
れるデータ量の急激な増大に対応するためにデータ圧縮
技術が広く用いられるようになってきている。データ圧
縮技術には、圧縮前のデータが元通りに復元される可逆
符号化と、元通りに復元されない非可逆符号化とがあ
る。非可逆符号化は、主として画像データの圧縮に用い
られている。一方、可逆符号化は、プログラムデータ、
テキストデータ、辞書データなどの種々のデータの圧縮
に用いられている。
【0003】可逆符号化方法の一種として、いわゆるL
Z(レンペル−ジフ)方式の符号化が知られている。こ
の符号化方法は、圧縮対象となるデータ列がそれ以前に
出現したデータ列と一致するか否かを調べ、一致するデ
ータ列が存在する場合には、データ列の一致長と、互い
の距離(オフセット)とを用いて符号化する方法であ
る。ここで、「データ列」とは、所定の単位(例えば1
バイト)のデータが連続したものを意味する。そして、
一致するデータ列が以前に存在しない場合には、無圧縮
(「ベタ」とも呼ばれる)のデータそのものを符号化デ
ータ列に付加する。
【0004】図15は、従来のLZ方式の符号化データ
列のフォーマットを示す説明図である。符号化データ列
全体の中には、無圧縮タイプのバイトデータと、LZタ
イプの圧縮データ(一致長と距離の符号語データを含
む)の2種類の符号化データが混在しているので、これ
らを識別するための接頭語が符号化データの1単位ごと
に付加されている。ここで、「符号化データの1単位」
とは、1つの無圧縮バイトデータや1つのLZ圧縮デー
タを意味する。
【0005】図16は、従来の符号化方法の状態遷移図
である。従来は、無圧縮タイプのバイトデータとLZタ
イプの圧縮データとが任意の順番で配列される。このた
め、圧縮時に符号化データの1単位毎に接頭語を付加し
ておき、伸長時に各符号化データの種類を判別できるよ
うにしていた。
【0006】
【発明が解決しようとする課題】従来のLZ方式の符号
化では、符号化データの1単位毎に接頭語を付加してい
たので、無圧縮タイプのデータが多い場合には必ずしも
十分な圧縮率が得られない場合があった。
【0007】この発明は、従来技術における上述の課題
を解決するためになされたものであり、無圧縮タイプの
データが多い場合にも比較的高い圧縮率が得られるデー
タの可逆符号化の技術を提供することを目的とする。
【0008】
【課題を解決するための手段および作用】上述の課題を
解決するため、請求項1に記載した可逆符号化方法で
は、(A)入力データの所定長以上の第1のバイト列
が、所定の符号化モードで符号化するための符号化条件
を満足するか否かを判定する工程と、(B)前記判定条
件が成立する場合には、前記第1のバイト列を前記所定
の符号化モードで符号化することによって第1の符号化
データを生成し、前記第1の符号化データを符号化デー
タ列に付加する工程と、(C)前記符号化条件が成立し
ない場合には、前記第1のバイト列の少なくとも先頭バ
イトを無圧縮のバイトデータとして含む第2の符号化デ
ータを生成し、前記第2の符号化データを前記符号化デ
ータ列に付加する工程と、を備え、前記工程(C)は、
前記無圧縮のバイトデータの個数を示す第1の符号語
と、前記第1の符号語で示される個数だけ連続する前記
無圧縮のバイトデータと、を含むように前記第2の符号
化データを生成する工程、を備えることを特徴とする。
【0009】第2の符号化データは、無圧縮のバイトデ
ータの個数を示す第1の符号語と、第1の符号語で示さ
れる個数だけ連続する無圧縮のバイトデータと、を含む
ように構成されるので、無圧縮タイプのデータが多い場
合にも比較的高い圧縮率が得られる。
【0010】また、請求項2に記載した可逆符号化方法
では、前記工程(B)は、前記第1のバイト列と一致す
る最長の第2のバイト列を前記入力データ内で探索する
工程と、前記第1と第2のバイト列相互の距離を示す第
2の符号語と、前記第1のバイト列の長さを示す第3の
符号語と、を含む単位符号化データを作成する工程と、
を備える。
【0011】このような単位符号化データを用いれば、
第1のバイト列を少ないデータ量で符号化できる。
【0012】請求項3に記載した可逆符号化方法では、
前記工程(B)は、さらに、前記単位符号化データの個
数を示す第4の符号語と、前記第4の符号語で示される
個数だけ連続する前記単位符号化データと、を含むよう
に前記第1の符号化データを生成する工程、を備える。
【0013】こうすれば、単位符号化データが連続する
場合に、圧縮率を高めることができる。
【0014】請求項4に記載した可逆符号化方法では、
さらに、前記第1の符号化データと前記第2の符号化デ
ータを交互に配列することによって前記符号データ列
を生成する工程、を備える。
【0015】こうすれば、符号化データの種別を示す接
頭語や接尾語を用いずに各符号化データを区別すること
ができるので、圧縮率をさらに高めることができる。
発明によるデータの可逆符号化生成装置は、入力データ
の所定長以上の第1のバイト列が、所定の符号化モード
で符号化するための符号化条件を満足するか否かを判定
する判定部と、前記判定条件が成立する場合には、前記
第1のバイト列を前記所定の符号化モードで符号化する
ことによって第1の符号化データを生成し、前記第1の
符号化データを符号化データ列に付加する第1の符号化
部と、前記符号化条件が成立しない場合には、前記第1
のバイト列の少なくとも先頭バイトを無圧縮のバイトデ
ータとして含む第2の符号化データを生成し、前記第2
の符号化データを前記符号化データ列に付加する第2の
符号化部と、を備え、前記第2の符号化部は、前記無圧
縮のバイトデータの個数を示す第1の符号語と、前記第
1の符号語で示される個数だけ連続する前記無圧縮のバ
イトデータと、を含むように前記第2の符号化データを
生成する。この装置によっても、上記方法と同様に、無
圧縮タイプのデータが多い場合にも比較的高い圧縮率が
得られる。本発明による符号化データ列の伸長装置は、
上述したいずれかの方法で生成された符号化データ列を
伸長する伸長装置である。上述した符号化データ列は可
逆符号化されたものなので、伸長すれば元の入力データ
を忠実に再現することができる。
【0016】
【実施例】
A.装置の構成:図1は、この発明の一実施例を適用す
る情報処理装置のハードウェア構成を示すブロック図で
ある。この情報処理装置は、パーソナルコンピュータシ
ステムとして構成されたものであり、図示するように、
CPU101を中心にバスにより相互に接続された次の
各部を備えている。
【0017】ROM104:モニタプログラム等を記憶
する読み出し専用メモリ RAM105:主記憶を構成する読み出し・書き込み可
能なメモリ PIC112:各種の割込に優先順位を付けて制御する
割込コントローラ マウスインタフェース115:2ボタンマウス114と
のデータ等のやり取りを司るインタフェース キーボードインタフェース118:キーボード117か
らのキー入力を司るインタフェース FDC121:フレキシブルディスクドライブ(FD
D)120を制御するフレキシブルディスクコントロー
ラ HDC125:ハードディスクドライブ(HDD)12
4を制御するハードディスクコントローラ CRTC129:必要なデータ等を表示するCRT12
8への信号出力を制御するCRTコントローラ プリンタインタフェース131:プリンタ130へのデ
ータの出力を制御するインタフェース。
【0018】図2は、可逆符号化によるデータの圧縮と
伸長とを行なう圧縮伸長用デバイスドライバ200の構
成を示す機能ブロック図である。この圧縮伸長用デバイ
スドライバ200は、RAM105に格納されたプログ
ラムをCPU101が実行することによって実現されて
いる。
【0019】圧縮伸長用デバイスドライバ200は、圧
縮対象となる1クラスタ分のデータを記憶するクラスタ
バッファ202と、可逆符号化によるデータの圧縮を行
なう圧縮部204と、圧縮データ(符号化データ列)を
記憶する圧縮データバッファ206と、圧縮データをハ
ードディスク123に書き込む書込制御部208とを備
えている。なお、1クラスタは所定のデータサイズであ
り、例えば8Kバイトである。
【0020】圧縮部204は、符号化タイプを判定する
符号化タイプ判定部210と、LZ(Lempel-Ziv)方式
の符号化を行なうLZ符号化部212と、無圧縮タイプ
の符号化を行なう無圧縮符号化部216とを備えてい
る。以下ではまず、LZ符号化部212によって行なわ
れるLZタイプの符号化について説明する。なお、この
実施例においては、「符号化タイプ」と「符号化モー
ド」は同じ意味である。また、「圧縮データ」と「符号
化データ」も同じ意味で使用している。
【0021】B.LZタイプの符号化方法:図3は、L
Zタイプの符号化方法を示す説明図である。この実施例
で使用するLZタイプの符号化はレンペル−ジフ(Lemp
el-Ziv)方式の符号化であり、特にスライド辞書法と呼
ばれる符号化方法を使用している。図3(A)に示す例
では、被圧縮データがバイト列「71h 3Ah 3Bh
…」を含んでいる。なお、この明細書において、付加記
号「 h」は16進数表記であることを示している。
【0022】LZタイプの符号化では、2バイト以上の
連続したバイト列と同じバイト列が以前に出現している
か否かを調べ、以前に同じバイト列があれば、一致する
最長のバイト列を調べる。そして、現在のバイト列から
以前のバイト列までの距離(オフセット)と、一致した
最長のバイト列のバイト数(一致長)とによって、現在
のバイト列を符号化する。例えば図3(A)の例では、
実線の下線を付した2バイトのバイト列「3Ah 3Bh
」が、破線の下線を付した2バイトのバイト列と同じ
である。そこで、実線の下線を付した2バイトのバイト
列「3Ah 3Bh」の圧縮データ(符号化データ)は、
一致したバイト列同士の距離を表わす符号語OFFSE
T(3)と、一致長を表わす符号語LENGTH(2)
と、の2つの符号語の組み合わせによって表わされる。
なお、OFFSET(3)の括弧内の数値は距離(バイ
ト数)を示しており、LENGTH(2)の括弧内の数
値は一致長(バイト数)を示している。なお、圧縮デー
タのフォーマットについては後述する。
【0023】図3(B)の例では、オフセットが3バイ
トで一致長が3バイトなので、符号語OFFSET
(3)と、符号語LENGTH(3)の組み合わせによ
って実線の下線を付した3バイトのバイト列が符号化さ
れる。
【0024】図3(C)の例では、第2バイト以降の5
バイトが同一である。この場合には、実線の下線を付し
た第3バイト以降の4バイトが、第2バイト以降の4バ
イトと一致することになる。従って、オフセットは1バ
イト、一致長は4バイトとなる。
【0025】以上のように、LZタイプの符号化方法で
は、一致するバイト列が以前に存在している場合に、一
致する最長のバイト列を符号化することによってデータ
を圧縮するので、同一のバイト列が繰り返し出現するよ
うなデータを圧縮する場合に適している。
【0026】C.符号化データ列のフォーマット:図4
は、第1の実施例における符号化データ列のフォーマッ
トを示す説明図である。第1の実施例では、無圧縮デー
タストリングスNCSとLZ圧縮データストリングスL
ZSとが交互に付加されており、最後にエンドマーカE
NDが付加されている。無圧縮データストリングスNC
Sは無圧縮のバイトデータを含む符号化データであり、
LZ圧縮データストリングスLZSはLZタイプの符号
化データである。入力データの最初のバイトデータはL
Zタイプの符号化ができないので、符号化データ列の最
初は無圧縮データストリングスである。なお、図面にお
ける記号<>は、圧縮データの区切りを示す便宜上の符
号であり、実際の圧縮データには存在しないものであ
る。
【0027】図5は、無圧縮データストリングスのデー
タフォーマットを示す説明図である。無圧縮データスト
リングスは、無圧縮バイトデータの個数Nを示すワイル
符号語WNと、N個の無圧縮バイトデータRAWとで構
成されている。無圧縮バイトデータRAWは、8ビット
のバイトデータそのままである。ワイル符号語WNは、
図5の下部のテーブルに示すように、個数の範囲に応じ
てビット数が異なる可変長符号語である。このテーブル
における「x」は、0または1の値を取り得るビットを
示している。
【0028】図5に示すように、無圧縮バイトデータの
個数Nを表わす符号語WNと、N個の無圧縮バイトデー
タRAWとによって無圧縮データストリングスNCSを
構成するようにすれば、各無圧縮バイトデータRAWに
接頭語を付加する必要がないので、無圧縮のバイトデー
タが連続する場合にも全体の圧縮率を比較的高く保つこ
とが可能である。
【0029】図6は、LZ圧縮データストリングスのデ
ータフォーマットを示す説明図である。LZ圧縮データ
ストリングスは、LZ圧縮データの個数Nを示すワイル
符号語WNと、N個のLZ圧縮データLZとで構成され
ている。ワイル符号語WNは、図5に示す無圧縮データ
ストリングス用のワイル符号語と同じである。LZ圧縮
データLZは、一致バイト列同士の距離を示す符号語O
FFSETと、一致長を示すワイル符号語LENGTH
とで構成されている。これらの具体例は、図3において
説明した。距離を示す符号語OFFSETは、11ビッ
トで0〜2047バイトの距離を表わしている。一致長
を示すワイル符号語LENGTHは、可変長のワイル符
号である。
【0030】なお、LZ圧縮データLZは、本発明にお
ける「単位符号化データ」に相当する。
【0031】図6に示すように、LZ圧縮データの個数
Nを表わす符号語WNと、N個のLZ圧縮データLZと
によってLZ圧縮データストリングスLZSを構成する
ようにすれば、各LZタイプの圧縮データLZの前に接
頭語を付加する必要がないので、LZタイプの圧縮デー
タが連続する場合に圧縮率を高めることが可能である。
【0032】図5と図6に示したように、この実施例に
おける無圧縮データストリングスNCSやLZ圧縮スト
リングスLZSには、データストリングスの種別(タイ
プ)を示す接頭語や接尾語が含まれていない。これは、
図4に示すように、無圧縮データストリングスNCSと
LZ圧縮データストリングスLZSが交互に配列されて
いるので、データストリングスの種別を示す接頭語や接
尾語がなくても互いに区別できるからである。なお、各
データストリングスに接頭語や接尾語を付加するように
してもよいが、接頭語や接尾語を付加しないフォーマッ
トを採用すれば、より圧縮率を高めることができる。
【0033】図7は、エンドマーカのデータフォーマッ
トを示す説明図である。エンドマーカは、符号化データ
列の最後が無圧縮データストリングスNCSの場合は図
7(A)に示すフォーマットを取り、符号化データ列の
最後がLZ圧縮データストリングスLZSの場合には図
7(B)に示すフォーマットを取る。図7(A)のフォ
ーマットでは、個数Nが1であることを示すワイル符号
WN(図5参照)の後に、距離が0であることを示す符
号語OFFSETが付加されたものである。なお、エン
ドマーカに使用される符号語OFFSETの値(全部
0)はエンドマーカ以外には使用されないような特別な
値であればよく、他の値でもよい。図7(B)のフォー
マットでは、LZ圧縮データがN+1個連続することを
示すワイル符号語WNと、N個のLZ圧縮データLZ
と、距離が0であることを示す符号語OFFSETとが
付加されている。N個のLZ圧縮データLZは、通常の
LZ圧縮データストリングスにおけるものと同じ構成の
データである。なお、エンドマーカとしては、一意に復
号可能な符号語を使用すればよく、他の形式のエンドマ
ーカを使用することも可能である。
【0034】D.符号化処理の手順:図8は、第1の実
施例における状態遷移図である。図8に示すように、第
1の実施例では、無圧縮タイプの符号化とLZタイプの
符号化が交互に行なわれる。図9は、バッファ202
(図2)に記憶された1組の入力データに関する符号化
処理の手順を示すフローチャートである。また、図10
および図11は、この実施例における符号化処理の工程
を示す説明図である。図10(A)の例では、簡単のた
めに入力データが10バイトで構成されている。なお、
記号<>で囲まれた値は、2進数の符号語を示してい
る。
【0035】入力データの最初の2バイト「71h 3A
h 」に関してはLZタイプによる符号化ができないの
で、ステップS1においてこれらの2バイトが無圧縮タ
イプで符号化される。2バイトの無圧縮データストリン
グは、図10(B)に示すように、個数Nが2であるこ
とを示すワイル符号語WN(2)と、最初の2バイトの
バイトデータとで構成される。
【0036】ステップS2においては、未処理の入力デ
ータがバッファ202内に存在するか否かが判断され
る。未処理の入力データが存在すれば、ステップS3に
おいて、入力データの次の2バイトをLZタイプで符号
化できるか否かを判定する。LZタイプの符号化条件
は、次の通りである。 符号化条件C1:判定対象の2バイトと同一のバイト列
が以前に存在する。この符号化条件C1が成立する場合
には、少なくともその2バイトを含むバイト列がLZタ
イプで符号化される。
【0037】図10(A)の入力データの第3、第4バ
イト「3Bh 3Ch 」は符号化条件C1を満足しないの
で、ステップS3からステップS1に移行し、第3バイ
トのバイトデータ「3Bh 」が無圧縮データストリング
スに付加され、無圧縮バイトデータの個数を示すワイル
符号語WNが更新される。同様に、第4、第5バイト
「3Ch 3Ah 」も符号化条件C1を満足しないので、
第4バイト「3Ch 」のバイトデータも無圧縮データス
トリングスに付加される。この結果、図10(C)に示
すように、最初の4バイトに対する符号化データ列は、
個数Nが4であることを示すワイル符号語WN(4)
と、4つの無圧縮バイトデータとで構成される無圧縮デ
ータストリングスとなる。
【0038】図10(D)に示すように、第5〜6バイ
ト「3Ah 3Bh 」は第2〜3バイトと一致する。そこ
で、ステップS3からステップS4に移行して、第5バ
イト以降バイト列がLZタイプで符号化される。なお、
第5バイト以降のバイト列の最大の一致長は2なので、
第5〜6バイトの2バイト分がLZタイプの圧縮データ
に変換されて、符号化データ列に付加される。第5〜6
バイトのLZ圧縮データストリングスは、図10(D)
に示すように、個数Nが1であることを示すワイル符号
語WN(1)と、距離が3であることを示す符号語OF
FSET(3)と、一致長が2バイトであることを示す
符号語LENGTH(2)とで構成される。
【0039】ステップS5では、ステップS2と同様
に、未処理の入力データがバッファ202内に存在する
か否かが判断され、未処理の入力データが存在すれば、
ステップS6において、入力データの次の2バイト(第
7〜8バイト「3Ah 3Bh 」)をLZタイプで符号化
できるか否かを判定する。図11(A)に示すように、
第7バイト以降のバイト列と一致する最長のバイト列は
第2〜4バイトである。従って、ステップS4において
第7〜9バイトがLZタイプで符号化されて、そのLZ
圧縮データが第5〜6バイトのLZ圧縮データストリン
グス(図10(D))に付加され、ワイル符号語WNが
更新される。この結果、第5〜9バイトの符号化データ
列は、図11(A)に示すように、個数Nが2であるこ
とを示すワイル符号語WN(2)と、第5〜6バイトの
LZ圧縮データと、第7〜9バイトのLZ圧縮データと
で構成されるLZ圧縮データストリングスとなる。
【0040】第10バイト「70h 」はLZタイプで符
号化できないので、ステップS6からステップS1に戻
り、無圧縮タイプの符号化が実行される。この結果、図
11(B)に示す無圧縮データストリングが符号化デー
タ列に付加される。
【0041】こうして、LZタイプの符号化と、無圧縮
タイプの符号化が交互に行なわれ、バッファ202内の
入力データ列がすべて符号化されると、図7に示すエン
ドマーカが符号化データ列の最後に付加される。図11
の例では、符号化データ列の最後が無圧縮データストリ
ングスなので、図7(A)のエンドマーカが使用され
る。
【0042】LZ符号化部212と無圧縮符号化部21
6とで生成された符号化データは、圧縮データバッファ
206に記憶されている符号化データ列に順次追加され
ていく。そして、エンドマーカが付加されると、圧縮デ
ータバッファ206に記憶されている1組の符号化デー
タ列が書込み制御部208によってハードディスク12
3に書き込まれるとともに、次の入力データ列がバッフ
ァ202に読込まれて図9に示す符号化処理が再度実行
される。
【0043】なお、図9のステップS2,S3,S5,
S6は、符号化タイプ判定部210(図2)によって実
行され、ステップS1は無圧縮符号化部216によっ
て、ステップS4はLZ符号化部212によってそれぞ
れ実行される。
【0044】上述した第1の実施例では、無圧縮データ
ストリングスとLZ圧縮データストリングスのそれぞれ
において、単位符号化データ(無圧縮バイトデータとL
Z圧縮データ)の個数を示す符号語WNに続いて、N個
の単位符号化データを付加するようにしている。この結
果、個々の単位符号化データにその種別を示す接頭語や
接尾語を付加する必要がないので、圧縮率を高めること
ができる。さらに、無圧縮データストリングスとLZ圧
縮データストリングスを交互に配列するようにしたの
で、各データストリングスにもその種別を示す接頭語や
接尾語を付加する必要がなく、圧縮率をさらに高めるこ
とができる。
【0045】E.第2の実施例:図12は、第2実施例
における符号化データ列のフォーマットを示す説明図で
ある。第2の実施例における符号化データ列は、無圧縮
データストリングスNCSと、LZ圧縮データLZf
と、エンドマーカENDとで構成されている。無圧縮デ
ータストリングスNCSは、第1の実施例と同じフォー
マットを有している。LZ圧縮データLZfは、後述す
るように、第1の実施例とは異なるフォーマットを有し
ている。
【0046】図13は、第2の実施例の状態遷移図であ
る。第2の実施例では、無圧縮タイプの符号化の次には
LZタイプの符号化が行なわれるが、LZタイプの符号
化の次には無圧縮タイプかLZタイプのいずれかの符号
化が行なわれる。従って、前述した図12の例に示すよ
うに、無圧縮データストリングスNCSの後には必ずL
Z圧縮データLZfが付加されるが、LZ圧縮データL
Zfの後には無圧縮データストリングスNCSとLZ圧
縮データLZfのいずれか一方が付加される。
【0047】図14は、第2の実施例におけるLZ圧縮
データLZfのフォーマットを示す説明図である。この
LZ圧縮データLZfは、一致データ列同士の距離を示
す符号語OFFSETと、一致長を示す符号語LENG
THの後に、次の単位符号化データのタイプを示す接尾
語FLAGが付加されている。接尾語FLAGの値が0
の場合には次の単位符号化データは無圧縮データストリ
ングスであり、1の場合には次の単位符号化データはL
Z圧縮データLZfである。なお、無圧縮データストリ
ングスの次には必ずLZ圧縮データLZfが付加される
ので、無圧縮データストリングスには接尾語を付加する
必要はない。
【0048】第2の実施例においても、第1の実施例と
同じ無圧縮データストリングスNCSを用いているの
で、符号化データ列の中に複数の無圧縮バイトデータが
続く場合にも、全体の圧縮率を高く保つことが可能であ
る。また、単位符号化データのタイプを示す接尾語は、
LZ圧縮データLZfにのみ必要であり、無圧縮データ
ストリングスNCSには付加する必要がないので、この
点からも圧縮率を従来よりも高くすることが可能であ
る。
【0049】なお、この発明は上記実施例に限られるも
のではなく、その要旨を逸脱しない範囲において種々の
態様において実施することが可能であり、例えば次のよ
うな変形も可能である。
【0050】(1)ワイル符号語WNのテーブルは、図
5に示すもの以外のものを使用することが可能である。
また、個数を示す符号語として、ワイル符号以外のもの
を使用することも可能である。
【0051】(2)符号化のタイプとしては、無圧縮タ
イプとLZタイプに他のタイプの符号化を追加すること
もできる。この場合には、必要に応じて各単位符号化デ
ータの種別を示す接頭語や接尾語が用いられる。しか
し、上述したフォーマットの無圧縮データストリングス
NCSを使用すれば、圧縮率を比較的高く保つことが可
能である。
【0052】(3)上記実施例では、一致データ列同士
の距離を示す符号語OFFSETを11ビットの固定長
としたが、距離の大きさに応じた可変長の符号語を用い
ることも可能である。
【0053】(4)上記実施例では、LZタイプの符号
化が行なわれる最短のデータ長を2バイトとしていた
が、最短のバイト長は2バイト以上の任意の長さに設定
することが可能である。
【0054】
【発明の効果】以上説明したように、請求項1または請
求項5に記載した発明によれば、第2の符号化データ
が、無圧縮のバイトデータの個数を示す第1の符号語
と、第1の符号語で示される個数だけ連続する無圧縮の
バイトデータと、を含むように構成されるので、無圧縮
タイプのデータが多い場合にも比較的高い圧縮率が得ら
れる。
【0055】請求項2または請求項6に記載した発明に
よれば、第1のバイト列を少ないデータ量で符号化でき
る。
【0056】請求項3または請求項7に記載した発明に
よれば、単位符号化データが連続する場合に圧縮率を高
めることができる。
【0057】請求項4または請求項8に記載した発明に
よれば、符号化データの種別を示す接頭語や接尾語を用
いずに各符号化データを区別することができるので、圧
縮率をさらに高めることができる。請求項9に記載した
発明によれば、上記方法によって生成された符号化デー
タ列から、元の入力データを忠実に再現することができ
る。
【図面の簡単な説明】
【図1】この発明の一実施例を適用する情報処理装置の
ハードウェア構成を示すブロック図。
【図2】可逆符号化によるデータの圧縮と伸長とを行な
う圧縮伸長用デバイスドライバ200の構成を示す機能
ブロック図。
【図3】LZタイプの符号化方法を示す説明図。
【図4】符号化データ列のフォーマットを示す説明図。
【図5】無圧縮データストリングスのフォーマットを示
す説明図。
【図6】LZ圧縮データストリングスのフォーマットを
示す説明図。
【図7】エンドマーカのデータフォーマットを示す説明
図。
【図8】第1実施例の状態遷移図。
【図9】符号化処理の手順を示すフローチャート。
【図10】第1実施例における符号化工程の一例を示す
説明図。
【図11】第1実施例における符号化工程の一例を示す
説明図。
【図12】第2実施例の符号化データ列のフォーマット
を示す説明図。
【図13】第2実施例の状態遷移図。
【図14】第2実施例のLZ圧縮データのフォーマット
を示す説明図。
【図15】従来のLZ方式の符号化データ列のフォーマ
ットを示す説明図。
【図16】従来の符号化方法の状態遷移図。
【符号の説明】
101…CPU 104…ROM 105…RAM 112…PIC 115…マウスインタフェース 117…キーボード 118…キーボードインタフェース 121…FDC 123…ハードディスク 125…HDC 128…CRT 129…CRTC 130…プリンタ 131…プリンタインタフェース 200…圧縮伸長用デバイスドライバ 202…クラスタバッファ 204…圧縮部 206…圧縮データバッファ 208…書込制御部 210…符号化タイプ判定部 212…LZ符号化部 216…無圧縮符号化部 END…エンドマーカ FLAG…次の単位圧縮データのタイプを示す接尾語 LENGTH…一致長を示す符号語 NCS…無圧縮データストリングス OFFSET…一致データ列同士の距離を示す符号語 RAW…無圧縮バイトデータ WN…個数Nを示す符号語
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平2−34038(JP,A) 特開 平5−241776(JP,A) 特開 平7−271552(JP,A) 特開 昭58−102314(JP,A) 特開 平2−108119(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/46 H03M 7/30

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力データを可逆符号化して符号化デー
    タ列を生成する方法であって、 (A)入力データの所定長以上の第1のバイト列が、所
    定の符号化モードで符号化するための符号化条件を満足
    するか否かを判定する工程と、 (B)前記判定条件が成立する場合には、前記第1のバ
    イト列を前記所定の符号化モードで符号化することによ
    って第1の符号化データを生成し、前記第1の符号化デ
    ータを符号化データ列に付加する工程と、 (C)前記符号化条件が成立しない場合には、前記第1
    のバイト列の少なくとも先頭バイトを無圧縮のバイトデ
    ータとして含む第2の符号化データを生成し、前記第2
    の符号化データを前記符号化データ列に付加する工程
    と、を備え、 前記工程(C)は、 前記無圧縮のバイトデータの個数を示す第1の符号語
    と、前記第1の符号語で示される個数だけ連続する前記
    無圧縮のバイトデータと、を含むように前記第2の符号
    化データを生成する工程、を備えることを特徴とするデ
    ータの可逆符号化方法。
  2. 【請求項2】 請求項1記載のデータの可逆符号化方法
    であって、 前記工程(B)は、 前記第1のバイト列と一致する最長の第2のバイト列を
    前記入力データ内で探索する工程と、 前記第1と第2のバイト列相互の距離を示す第2の符号
    語と、前記第1のバイト列の長さを示す第3の符号語
    と、を含む単位符号化データを作成する工程と、を備え
    るデータの可逆符号化方法。
  3. 【請求項3】 請求項2記載のデータの可逆符号化方法
    であって、 前記工程(B)は、さらに、 前記単位符号化データの個数を示す第4の符号語と、前
    記第4の符号語で示される個数だけ連続する前記単位符
    号化データと、を含むように前記第1の符号化データを
    生成する工程、を備えるデータの可逆符号化方法。
  4. 【請求項4】 請求項3記載のデータの可逆符号化方法
    であって、さらに、前記第1の符号化データと前記第2
    の符号化データを交互に配列することによって前記符号
    データ列を生成する工程、を備えるデータの可逆符号
    化方法。
  5. 【請求項5】 入力データを可逆符号化して符号化デー
    タ列を生成する装置であって、 入力データの所定長以上の第1のバイト列が、所定の符
    号化モードで符号化するための符号化条件を満足するか
    否かを判定する判定部と、 前記判定条件が成立する場合には、前記第1のバイト列
    を前記所定の符号化モードで符号化することによって第
    1の符号化データを生成し、前記第1の符号化データを
    符号化データ列に付加する第1の符号化部と、 前記符号化条件が成立しない場合には、前記第1のバイ
    ト列の少なくとも先頭バイトを無圧縮のバイトデータと
    して含む第2の符号化データを生成し、前記第2の符号
    化データを前記符号化データ列に付加する第2の符号化
    部と、を備え、 前記第2の符号化部は、 前記無圧縮のバイトデータの個数を示す第1の符号語
    と、前記第1の符号語で示される個数だけ連続する前記
    無圧縮のバイトデータと、を含むように前記第2の符号
    化データを生成する、データの可逆符号化装置。
  6. 【請求項6】 請求項5記載のデータの可逆符号化装置
    であって、 前記第1の符号化部は、 前記第1のバイト列と一致する最長の第2のバイト列を
    前記入力データ内で探索する探索部と、 前記第1と第2のバイト列相互の距離を示す第2の符号
    語と、前記第1のバイト列の長さを示す第3の符号語
    と、を含む単位符号化データを作成する単位符号化デー
    タ作成部と、を備えるデータの可逆符号化装置。
  7. 【請求項7】 請求項6記載のデータの可逆符号化装置
    であって、 前記第1の符号化部は、 前記単位符号化データの個数を示す第4の符号語と、前
    記第4の符号語で示される個数だけ連続する前記単位符
    号化データと、を含むように前記第1の符号化データを
    生成する、データの可逆符号化装置。
  8. 【請求項8】 請求項7記載のデータの可逆符号化装置
    であって、さらに、 前記第1の符号化データと前記第2
    の符号化データを交互に配列することによって前記符号
    化データ列を生成する符号化データ配列部、を備えるデ
    ータの可逆符号化装置。
  9. 【請求項9】 請求項1ないし4のいずれかに記載の方
    法で生成された符号化データ列を伸長する符号化データ
    列の伸長装置。
JP24693294A 1994-09-14 1994-09-14 データの可逆符号化方法および装置、並びに、伸長装置 Expired - Lifetime JP3240495B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP24693294A JP3240495B2 (ja) 1994-09-14 1994-09-14 データの可逆符号化方法および装置、並びに、伸長装置
US08/527,904 US5640158A (en) 1994-09-14 1995-09-14 Reversible method of encoding data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24693294A JP3240495B2 (ja) 1994-09-14 1994-09-14 データの可逆符号化方法および装置、並びに、伸長装置

Publications (2)

Publication Number Publication Date
JPH0888568A JPH0888568A (ja) 1996-04-02
JP3240495B2 true JP3240495B2 (ja) 2001-12-17

Family

ID=17155900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24693294A Expired - Lifetime JP3240495B2 (ja) 1994-09-14 1994-09-14 データの可逆符号化方法および装置、並びに、伸長装置

Country Status (2)

Country Link
US (1) US5640158A (ja)
JP (1) JP3240495B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406538B2 (en) 2010-05-14 2013-03-26 Ricoh Company, Limited Image processing apparatus and image processing method

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5877711A (en) * 1997-09-19 1999-03-02 International Business Machines Corporation Method and apparatus for performing adaptive data compression
US5874908A (en) * 1997-09-19 1999-02-23 International Business Machines Corporation Method and apparatus for encoding Lempel-Ziv 1 variants
JP3541930B2 (ja) * 1998-08-13 2004-07-14 富士通株式会社 符号化装置及び復号化装置
US6275588B1 (en) 1998-11-12 2001-08-14 I-Data International A/S Apparatus and method for performing and controlling encryption/decryption for data to be transmitted on local area network
WO2000030262A2 (en) * 1998-11-12 2000-05-25 I-Data International A/S Apparatus and method for performing and controlling encryption/decryption for data to be transmitted on local area network
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6360300B1 (en) 1999-08-31 2002-03-19 International Business Machines Corporation System and method for storing compressed and uncompressed data on a hard disk drive
US6449689B1 (en) 1999-08-31 2002-09-10 International Business Machines Corporation System and method for efficiently storing compressed data on a hard disk drive
US20030191876A1 (en) * 2000-02-03 2003-10-09 Fallon James J. Data storewidth accelerator
US7181608B2 (en) * 2000-02-03 2007-02-20 Realtime Data Llc Systems and methods for accelerated loading of operating systems and application programs
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
EP1354411A1 (en) * 2001-01-11 2003-10-22 Koninklijke Philips Electronics N.V. Data compression method with identifier of regressive string reference
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
GB0213687D0 (en) * 2002-06-14 2002-07-24 Ibm Multi-byte lempel-ziv 1 (LZ1) decompression
KR100532275B1 (ko) * 2002-12-11 2005-11-29 삼성전자주식회사 이미지 압축방법
US7538696B2 (en) * 2007-08-31 2009-05-26 Rmi Corporation System and method for Huffman decoding within a compression engine
US7538695B2 (en) * 2007-06-29 2009-05-26 Rmi Corporation System and method for deflate processing within a compression engine
US9998142B1 (en) * 2017-09-28 2018-06-12 Intel Corporation Techniques for invariant-reference compression
US10840943B1 (en) * 2019-10-15 2020-11-17 EMC IP Holding Company LLC System and method of data compression between backup server and storage

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2505980B2 (ja) * 1993-04-16 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 静的辞書作成方法及びコンピュ―タ実行システム
US5572206A (en) * 1994-07-06 1996-11-05 Microsoft Corporation Data compression method and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406538B2 (en) 2010-05-14 2013-03-26 Ricoh Company, Limited Image processing apparatus and image processing method

Also Published As

Publication number Publication date
JPH0888568A (ja) 1996-04-02
US5640158A (en) 1997-06-17

Similar Documents

Publication Publication Date Title
JP3240495B2 (ja) データの可逆符号化方法および装置、並びに、伸長装置
US5229768A (en) Adaptive data compression system
US6218970B1 (en) Literal handling in LZ compression employing MRU/LRU encoding
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
JP3141002B2 (ja) 符号化方法及びデータ圧縮器
US5877711A (en) Method and apparatus for performing adaptive data compression
JP2000124810A (ja) 符号化装置及び復号化装置
US4866440A (en) Method for compressing and restoring data series and apparatus for realizing same
JPH07107303A (ja) ハフマン符号の復号化方法
JPH0764765A (ja) データ圧縮装置及びデータ復元装置
JP2940948B2 (ja) データ圧縮方式
JP3603099B2 (ja) データの可逆符号化方法および装置
JP3199292B2 (ja) ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
JP2999561B2 (ja) データ圧縮及び復元装置
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JP3442105B2 (ja) データ圧縮および復元方式
JP3202488B2 (ja) データ符号化及び復号化方式
JP3236747B2 (ja) データ伸長方式
JP3143029B2 (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
JPH06178124A (ja) 画像データ圧縮伸長装置
JP2825960B2 (ja) データ圧縮方法及び復元方法
JP2002135128A (ja) データ圧縮方法、データ圧縮・伸長方法、データ圧縮装置及びデータ圧縮・伸長装置
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JP2769057B2 (ja) デ−タ圧縮装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 12

EXPY Cancellation because of completion of term