JP3143029B2 - データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 - Google Patents

データ圧縮方法及びその装置並びにデータ伸長方法及びその装置

Info

Publication number
JP3143029B2
JP3143029B2 JP27432994A JP27432994A JP3143029B2 JP 3143029 B2 JP3143029 B2 JP 3143029B2 JP 27432994 A JP27432994 A JP 27432994A JP 27432994 A JP27432994 A JP 27432994A JP 3143029 B2 JP3143029 B2 JP 3143029B2
Authority
JP
Japan
Prior art keywords
data
dictionary
bits
string
data string
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
JP27432994A
Other languages
English (en)
Other versions
JPH08116270A (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.)
Rohm Co Ltd
Original Assignee
Rohm 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 Rohm Co Ltd filed Critical Rohm Co Ltd
Priority to JP27432994A priority Critical patent/JP3143029B2/ja
Publication of JPH08116270A publication Critical patent/JPH08116270A/ja
Application granted granted Critical
Publication of JP3143029B2 publication Critical patent/JP3143029B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、各種記憶装置における
格納データの圧縮や読出データの伸長、あるいはデジタ
ル通信機器等における転送データの圧縮や伸長に使用さ
れるデータ圧縮方法及びその装置並びにデータ伸長方法
及びその装置に関するものである。
【0002】
【従来の技術】この種の圧縮のための符号化に使用され
る符号として、「データ圧縮アルゴリズムとその実現」
(インターフェース,CQ出版社,Aug.199
2.,105〜117ページ)や特開平3−68219
号公報に示されているような適応型符号と呼ばれるもの
がある。この適応型符号は、文字列(入力データ列)を
読み込みながらその統計的性質を抽出して符号化を行う
ため、文字列を読み終わると同時に符号化が終了すると
いう特徴を有する。この適用型符号の一種であるユニバ
ーサル符号の代表的なものに、Lempel−Zip符
号(その符号化の概念をつかみやすいことからスライド
辞書法とも呼ばれる)がある。
【0003】このスライド辞書法では、与えられた文字
列の中から現在の符号化を行っている文字の近傍の何文
字かを保存するバッファを用意し、このバッファを辞書
として利用して、符号化を行う方法である。符号化が進
むにつれ、このバッファに保存されている文字列は、与
えられた文字列中をスライドしていくことから、スライ
ド辞書法と呼ばれるようになった。
【0004】符号化における辞書の参照は、現時点で符
号化の対象となっている位置から始まる文字列に一致す
るバッファ中の文字列で最も長い最長一致系列を探すこ
とを基本としている。そして、そのような文字列が見つ
かれば、一致不一致を示す1ビットの一致フラグを
「1」にして、見つかった文字列のバッファ中の位置と
その長さを適当な桁数の2進数で表したものを符号語と
する。また、そのような文字列がバッファ中になければ
一致フラグを“0”にして、符号化の対象となっている
1文字をそのまま(例えば、ASCIIコードで)出力
したものを符号語とする。
【0005】ここで、上記スライド辞書法において、辞
書内の一致データ列の長さを表わすデータ(長さ指示
子)は、各長さに一対一で対応する固定的な構造になっ
ており、従って、そのビット数も固定であるか、もしく
は、長さがある一定以上になると拡張フォーマットを用
いてビット数を増やすのみであった。
【0006】
【発明が解決しようとする課題】ところが、このような
従来の技術においては、圧縮する前のデータが予め分か
っているような場合、残りデータ数がある数以下,すな
わち長さ指示子で表わせる上限の1/2以下になると、
長さ指示子のデータサイズが冗長となる。例えば、長さ
指示子を8ビットとすると、単純に考えて、8ビットで
表わせる上限は“11111111”の255であるの
で、残りデータ数がその1/2以下,すなわち127に
なると“01111111”となって、上位1ビットが
冗長となり、さらに、その1/2以下,すなわち63に
なると“00111111”となって、上位2ビットが
冗長となり、以下、残りデータ数が1/2になる毎に上
位ビットが1ビットずつ冗長になり、そのビットが無駄
になっていた。これは、この圧縮方法(スライド辞書法)
が小さいサイズのデータ列に対して圧縮率が良くない原
因にもなっていた。
【0007】そこで、本発明はこのような問題点を解決
するためになされたものであり、入力データ列の後部
で、長さ指示子で表わされる上限の1/2以下の長さ分
のデータに対する圧縮データの冗長な部分を取り除き、
より圧縮効率の高いデータ圧縮方法及びその装置並びに
データ伸長方法及びその装置を提供することを目的とす
るものである。
【0008】
【課題を解決するための手段】請求項1に記載の発明
は、入力データ列のうち、各時点で符号化の対象となる
データの近傍のデータ列を所定数量まで記憶手段に格納
し、格納されたデータ列を符号化のために参照する辞書
として用い、各時点で符号化の対象となっている位置か
ら始まるデータ列に一致する上記辞書内のデータ列で、
上記所定数量の範囲内の既定の上限以下で最も長い一致
データ列を検索し、当該一致データ列が見つかれば、一
致を示すフラグと、見つかったデータ列の辞書内の位置
を示すポインタと、その長さを示す長さ指示子とから符
号語を構成するとともに、上記一致データ列が見つから
なければ、不一致を示すフラグと、符号化の対象となっ
ているデータそのものとから符号語を構成することによ
り、データの圧縮を行うデータ圧縮方法において、入力
データ列の残りデータ数を計数し、残りデータ数が上記
上限以下となった場合には、その残りデータ数を2進数
で表現可能な最小のビット数に上記長さ指示子のビット
数を設定し、設定した長さ指示子のビット数にて符号化
を行うようにしたものである。
【0009】同様に、請求項2に記載の発明は、入力デ
ータ列のうち、各時点で符号化の対象となるデータの近
傍のデータ列を所定数量まで記憶手段に格納し、格納さ
れたデータ列を符号化のために参照する辞書として用
い、各時点で符号化の対象となっている位置から始まる
データ列に一致する上記辞書内のデータ列で、上記所定
数量の範囲内の既定の上限以下で最も長い一致データ列
を検索し、当該一致データ列が見つかれば、一致を示す
フラグと、見つかったデータ列の辞書内の位置を示すポ
インタと、その長さを示す長さ指示子とから符号語を構
成するとともに、上記一致データ列が見つからなけれ
ば、不一致を示すフラグと、符号化の対象となっている
データそのものとから符号語を構成することにより、デ
ータの圧縮を行うデータ圧縮装置において、入力データ
列の残りデータ数を計数する計数手段と、この計数手段
で計数された残りデータ数に基づき、その残りデータ数
が上記上限以下となったときに当該データ数を2進数で
表現可能な最小のビット数に上記長さ指示子のビット数
を設定する設定手段と、この設定手段で設定された長さ
指示子のビット数にて符号化を行う符号化手段とを備え
たものである。
【0010】また、請求項3に記載の発明は、上記請求
項2のデータ圧縮装置において、不揮発性半導体記憶手
段に書き込まれるプログラムやデータを圧縮するもので
ある。
【0011】一方、請求項4に記載の発明は、上記請求
項1記載のデータ圧縮方法または請求項2記載のデータ
圧縮装置によって圧縮された圧縮データを入力し、符号
語に含まれるフラグが不一致を示すときは、当該符号語
に含まれる他のデータを取り出して復号化するととも
に、当該データを復号化のために参照する所定数量の辞
書に入力し、また、符号語に含まれるフラグが一致を示
すときは、当該符号語に含まれるポインタと長さ指示子
とを用いて上記辞書内から対応するデータを取り出して
復号化するとともに、当該データを上記辞書に入力する
ことにより、圧縮データの伸長を行うデータ伸長方法で
あって、伸長データの残りデータ数を計数し、残りデー
タ数が上記所定数量の範囲内の既定の上限以下となった
場合には、その残りデータ数を2進数で表現可能な最小
のビット数から上記長さ指示子のビット数を判別し、判
別した長さ指示子のビット数を用いて復号化を行うよう
にしたものである。
【0012】同様に、請求項5に記載の発明は、請求項
1記載のデータ圧縮方法または請求項2記載のデータ圧
縮装置によって圧縮された圧縮データを入力し、符号語
に含まれるフラグが不一致を示すときは、当該符号語に
含まれる他のデータを取り出して復号化するとともに、
当該データを復号化のために参照する所定数量の辞書に
入力し、また、符号語に含まれるフラグが一致を示すと
きは、当該符号語に含まれるポインタと長さ指示子とを
用いて上記辞書内から対応するデータを取り出して復号
化するとともに、当該データを上記辞書に入力すること
により、圧縮データの伸長を行うデータ伸長装置であっ
て、伸長データの残りデータ数を計数する計数手段と、
この計数手段で計数された残りデータ数に基づき、その
残りデータ数が上記所定数量の範囲内の既定の上限以下
となったときに当該データ数を2進数で表現可能な最小
のビット数から上記長さ指示子のビット数を判別する判
別手段と、この判別手段で判別された長さ指示子のビッ
ト数を用いて復号化を行う復号化手段とを備えたもので
ある。
【0013】また、請求項6に記載の発明は、上記請求
項5のデータ伸長装置において、プログラムやデータの
圧縮データが記憶された不揮発性半導体記憶手段から読
み出される圧縮データを伸長するものである。
【0014】
【作用】請求項1記載のデータ圧縮方法によれば、圧縮
データのうち、最長一致データ列の長さを示す長さ指示
子のサイズ(ビット数)を、入力データ列の残りデータ
数が既定の上限以下となったときに2進数で表現可能な
最小のビット数に設定したので、入力データ列の後部
で、長さ指示子で表わされる上限の1/2以下の長さ分
のデータに対する圧縮データの冗長な部分を取り除き、
圧縮効率を向上することができる。
【0015】また、請求項2記載のデータ圧縮装置によ
れば、上記請求項1と同様の作用を有するとともに、圧
縮を高速に行うことができる。
【0016】また、請求項3記載のデータ圧縮装置によ
れば、不揮発性半導体記憶手段に書き込まれるプログラ
ムやデータを圧縮するので、高価な記憶素子を効率的に
使用することができる。
【0017】一方、請求項4記載のデータ伸長方法によ
れば、伸長データの残りデータ数が既定の上限以下とな
ったとき、圧縮データにおける長さ指示子のビット数
を、残りデータ数を2進数で表現可能な最小のビット数
と判別し、復号化を行うようにしたので、上記により圧
縮されたデータを伸長することができる。
【0018】また、請求項5記載のデータ伸長装置によ
れば、上記請求項4と同様の作用を有するとともに、伸
長を高速に行うことができる。
【0019】また、請求項6記載のデータ伸長装置によ
れば、不揮発性半導体記憶手段から読み出されるプログ
ラムやデータの圧縮データを、高速に伸長することがで
きる。
【0020】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。図1は、本発明の一実施例に係るデータ圧縮装
置を示すブロック図である。図において、1は入力デー
タ列を一時保持する入力データバッファである。この入
力データバッファ1は、本実施例では、データバス幅8
ビット,アドレス8ビットで、計256バイトのシフト
レジスタで構成されており、アドレスFFh(hは16
進表記を意味し、この場合255番地,すなわち最上位
番地)にデータを入力することにより、各番地のデータ
はアドレスの若い方に向かってシフトされる。また、後
述する最長一致データ列検索装置3からの検索終了信号
(トリガ)を受けると、一致データ列有/無フラグが
“1”の時は、一致データ列長の示すバイト数だけ新た
なデータを入力し、バッファ内のデータはそのバイト数
分だけ順次シフトされる。また、一致データ列有/無フ
ラグが“0”の場合は、新たなデータを1バイト入力
し、バッファ内のデータは1バイトシフトされる。
【0021】2は前述したスライド辞書法に基づくスラ
イド辞書が格納される辞書バッファであり、本実施例で
は、この辞書バッファ2もデータバス幅8ビット,アド
レス8ビットで、計256バイトのシフトレジスタで構
成されている。入力データは、辞書バッファ2に空きが
ある時,すなわち辞書サイズ(dic_size)<2
56の時は、この辞書サイズ(dic_size)をア
ドレスとしてラッチされる(D(dic_size)=
入力データ)。一方、辞書バッファ2が満杯の時,すな
わち辞書サイズ(dic_size)=256の時は、
まず辞書データをアドレス00hに向かってシフト(D
(n)=D(n+1),n=1,2,・・・,254)
してからアドレスFFhにラッチされる。後述する最長
一致データ列検索時は、最長一致データ列検索装置3の
制御によるアドレスの示すデータを出力し、辞書データ
の検索が行なわれる。
【0022】最長一致データ列検索装置3は、上記入力
データバッファ1のアドレス00hを先頭とするデータ
列と最も長く一致する2バイト以上のデータ列を、上記
256バイトの辞書バッファ2のうち、後述する辞書サ
イズカウンタ4の出力する辞書サイズ(dic_siz
e)の示す領域の中から検索するものである。この検索
の結果、一致データ列が見つかった場合は、一致データ
列有/無フラグを“1”にして、一致データ列の先頭デ
ータの辞書上の位置(アドレス)を示す一致データ列ポ
インタ(crspd_point)、及び一致データ列
の長さ(バイト数)を示す長さ指示子である一致データ
列長(crspd_len)を後述する符号化装置7に
出力するとともに、一致データ列を辞書バッファ2に出
力する。見つからなかった場合は、一致データ列有/無
フラグを“0”にして、生データ1バイトを符号化装置
7及び辞書バッファ2に出力する。
【0023】また、本実施例では、この最長一致データ
列検索装置3から辞書バッファ2にデータ列を出力する
際、1バイト出力する毎に辞書サイズカウンタ4にイン
クリメント信号を出力するとともに、残りデータ数カウ
ンタ5にデクリメント信号を出力する。出力を終える
と、最長一致データ列検索装置3は符号化装置7に対し
て検索終了信号(トリガー)を出力し、一回の最長一致
データ列検索処理を終える。また、符号化装置7からの
符号化終了信号(トリガー)を受けると、再び上述した
最長一致検索処理を開始する。
【0024】辞書サイズカウンタ4は、カウント最大値
が256に設定されたアップカウンタで構成され、圧縮
開始時に図示しないシステムリセット信号によりリセッ
トされる。そして、上述した最大一致データ列検索装置
3からのインクリメント信号によりカウントアップし、
最大値(256)に達すると、以降その値を保持する。
この辞書サイズカウンタ4の出力(辞書サイズdic_
size)は、上記最長一致データ列検索装置3に出力
される。
【0025】残りデータ数カウンタ5は、本願発明にお
いて備えられた計数手段に相当するもので、本圧縮装置
の利用分野で想定される最大のデータ数が設定可能なビ
ット数のダウンカウンタで構成され、圧縮開始前に入力
データ列のデータ数がセットされる。以降、最長一致デ
ータ列検索装置3からのデクリメント信号を受ける毎に
カウントダウンし、残りデータ数を長さ指示子データサ
イズジェネレータ6に出力する。
【0026】長さ指示子データサイズジェネレータ6
は、本願発明において備えられた設定手段に相当するも
ので、ゲート回路からなるエンコーダで構成され、上記
残りデータ数カウンタ5からの出力値(残りデータ数r
em_size)を元にして対応する長さ指示子データ
サイズ(len_size)を生成し、符号化装置7に
出力する。この長さ指示子データサイズジェネレータ6
の入力(残りデータ数rem_size)と出力(長さ
指示子データサイズ)の対応表を図2に示す。なお、残
りデータ数が257以上の時も最大一致データ列長の上
限は256なので、長さ指示子の最大値は255とな
る。また、残りデータ数が1の時は、2バイト以上の一
致データ列はある得ないので、一致データ列有/無フラ
グは常に0となり、従って、長さ指示子データサイズも
0となる。
【0027】符号化装置7は、本願発明における符号化
手段に相当するもので、従来からある符号化装置に後述
する本願特有の機能が付加されたものである。この符号
化装置7は、前記最長一致データ列検索装置3からの検
索終了信号をトリガにして符号化処理を開始し、符号化
された圧縮データビットストリームを出力データ同期ク
ロックとともに出力する。すなわち、まず、一致データ
列有/無フラグ1ビットを出力する。次に、このフラグ
が“0”のときは、生データを8ビット(1バイト)を
LSB(最下位ビット)から順次出力する。また、フラ
グが“1”のときは、先ず一致データ列長(crspd
_len)2〜256から1を引いた8ビット(1〜2
55)のうちLSBから長さ指示子データサイズジェネ
レータ6の出力する長さ指示子データサイズが表わすビ
ット数分だけ順次出力する。次に、一致データ列ポイン
タ(crspd_point)8ビットをLSBから順
次出力する。これらの圧縮データビットストリームの出
力が終わると、符号化終了信号を最長一致データ列検索
装置3に出力する。
【0028】次に、このように構成されたデータ圧縮装
置の動作について説明する。圧縮の対象となる入力デー
タ列は、256バイトの入力データバッファ1に一旦蓄
えられる。ここでは、例えば“abcabd・・・ab
c”となる256バイトの入力データ列を例に取って以
下の説明を行う。なお、圧縮開始時には辞書サイズカウ
ンタ4がシステムリセット信号によりリセットされて0
となり、また、残りデータ数カウンタ5に入力データ数
として256がセットされている。
【0029】最長一致データ列検索装置3は、図3にフ
ローチャートで示すアルゴリズムに従って最長一致デー
タ列検索処理を実行する。すなわち、先ずステップ10
1で、9ビット(0〜256)の一致データ列長(cr
spd_len)を0に初期化し、辞書バッファ2のア
ドレスを示す8ビット(0〜255)の辞書ポインタ
(dic_point)を0に初期化,すなわち辞書の
先頭に初期化する。また、ステップ102で一時的(テ
ンポラリ)な一致データ列長(comp_len)を0
に初期化し、入力データバッファ1のアドレスを示す8
ビット(0〜255)の入力データバッファポインタ
(str_point)を0に初期化,すなわち入力デ
ータ列の先頭に初期化する。
【0030】次に、ステップ103で、上記入力データ
バッファポインタ(str_point)に対応する入
力データ(S),すなわち“a”と辞書ポインタ(di
c_point)に対応する辞書データ(D)とが一致
するか否かを判別する。今、辞書バッファ2には未だデ
ータが入力されていないので、不一致となってステップ
104に進み、辞書ポインタ(dic_point)を
インクリメントし、ステップ105で、辞書ポインタ
(dic_point)が辞書サイズカウンタ4の出力
する辞書サイズ(dic_size)以上となったか否
かを判別する。辞書サイズカウンタ4は圧縮開始時にシ
ステムリセット信号によりリセットされて0となってい
るので、このステップ105の判別は(Y)となってス
テップ113に進む。
【0031】ステップ113では、一致データ列長(c
rspd_len)が2以上か否かが判別される。すな
わち、一致データ列長が1バイト以下では圧縮する意味
がないので、ステップ115に進んで一致データ列有/
無フラグ(crspd_flag)を0とし、一致デー
タ列長が2バイト以上であれば有効な一致データ列を検
出したとして、ステップ114に進んで該フラグを1と
する。今、一致データ列長(crspd_len)はス
テップ101で初期化されたままで0であるので、ステ
ップ113からステップ115に進んで一致データ列有
/無フラグ(crspd_flag)を0とする。ま
た、この時、入力データ列の先頭データである生データ
1バイト“a”を符号化装置7と辞書バッファ2に出力
するとともに、辞書サイズカウンタ4にインクリメント
信号を出力し、残りデータ数カウンタ5にデクリメント
信号を出力する。そして、ステップ116に進んで検索
終了信号を符号化装置7と入力データバッファ1に出力
し、一回目の検索処理を終了する。
【0032】符号化装置7は、上述した最長一致データ
列検索装置3からの検索終了信号をトリガーにして図4
にフローチャートで示す符号化処理を開始する。すなわ
ち、ステップ201で最長一致データ列検索装置3から
の一致データ列有/無フラグ1ビットを圧縮データビッ
トストリームとして出力する。次に、ステップ202で
上記一致データ列有/無フラグが1か否かを判別する。
今、該フラグは0であるので、ステップ203に進ん
で、最長一致データ列検索装置3からの生データ8ビッ
ト(1バイト“a”)をLSB(最下位ビット)から順
次出力する。そして、ステップ206に進み、符号化終
了信号を最長一致データ列検索装置3に出力し、一回目
の符号化処理を終了する。
【0033】上記符号化装置7からの符号化終了信号を
トリガーにして最長一致データ列検索装置3が起動さ
れ、図3のフローチャートで示す処理が実行される。こ
こで、2回目,3回目の最長一致データ列検索処理にお
いても、入力データ列の先頭データはそれぞれ“b”,
“c”となるので、入力データ列の先頭データと一致す
るデータを辞書の中から検索するステップ103〜10
5の処理において一致データ列は見つからず、上記と同
様な検索処理及び符号化処理となる。そして、辞書バッ
ファ2には、入力データ列の先頭からの3バイト“ab
c”が格納され、辞書サイズカウンタ4から出力される
辞書サイズ(dic_size)は3を示し、残りデー
タ数カウンタ5の出力する残りデータ数(rem_si
ze)は253となり、長さ指示子データサイズジェネ
レータ6の出力する長さ指示子データサイズ(len_
size)は8のままである(図2参照)。
【0034】さて、次の4回目の検索処理において、入
力データ列の先頭データは“a”となる。図3のフロー
チャートのステップ103において、入力データバッフ
ァポインタ(str_point)に対応する入力デー
タ(S),すなわち“a”と辞書ポインタ(dic_p
oint)に対応する辞書データ(D),すなわち
“a”とが一致する。従って、ステップ106に進ん
で、入力データバッファポインタ(str_poin
t),辞書ポインタ(dic_point)及びテンポ
ラリ一致データ列長(comp_len)がそれぞれイ
ンクリメントされ、それぞれ1となる。次に、ステップ
107では、辞書ポインタ(dic_point)が辞
書サイズ(dic_size)以上になったか否かが判
定され、辞書ポインタは1で辞書サイズは3であるの
で、ステップ108に進む。このステップ108では、
入力データバッファポインタ(str_point)に
対応する入力データ(S)と辞書ポインタ(dic_p
oint)に対応する辞書データ(D)との一致が判別
され、それぞれ“b”となって一致するので、ステップ
106に戻って上述したインクリメントが行われ、入力
データバッファポインタ(str_point),辞書
ポインタ(dic_point),テンポラリ一致デー
タ列長(comp_len)はそれぞれ2となる。
【0035】次のステップ107では辞書ポインタが2
で辞書サイズの3以上とならないので、ステップ108
に進む。ここで、入力データバッファポインタ(str
_point)に対応する入力データ(S)は“d”で
辞書ポインタ(dic_point)に対応する辞書デ
ータ(D)は“c”であり、一致しないのでステップ1
09に進み、テンポラリ一致データ列長(comp_l
en)が一致データ列長(crspd_len)より大
きいか否かが判別される。テンポラリ一致データ列長
(comp_len)は2で、一致データ列長(crs
pd_len)はステップ101で初期化されたままで
0であるので、ステップ110に進む。ステップ110
では、一致データ列長(crspd_len)にテンポ
ラリ一致データ列長(comp_len)の値2が代入
され、8ビット(0〜255)の一致データ列ポインタ
(crspd_point)には辞書ポインタ(dic
_point)から一致データ列長(crspd_le
n)を引いた値0が代入され、また辞書ポインタ(di
c_point)が一致データ列長(crspd_le
n)から1を引いた値分(ここでは1)だけデクリメント
されて1となり、ステップ102に戻る。なお、上記ス
テップ107で辞書ポインタが辞書サイズ以上になる
と、ステップ111,112において上記ステップ10
9,110と同様の一致データ列長の更新処理が行われ
る。また、ステップ109の判別の時点で既に一致デー
タ列長(crspd_len)に値が代入されており、
この値がテンポラリ一致データ列長(comp_le
n)の値以上の場合は、上記ステップ110の処理は行
わずに、ステップ102に戻る。
【0036】さて、ステップ102では、テンポラリ一
致データ列長(comp_len)が0に初期化される
とともに、入力データバッファポインタ(str_po
int)が入力データ列の先頭に初期化される。この時
点で、入力データ列の先頭データは“a”で、辞書ポイ
ンタ(dic_point)の値1に対応するデータは
“b”であって、それ以降にも一致するデータはないの
で、ステップ103〜105のループを1回廻って、ス
テップ104で辞書ポインタの値が3となると、ステッ
プ105で辞書サイズの値3と等しくなるので、ステッ
プ113に進む。ステップ113では、一致データ列長
(crspd_len)の値が2であるので、2以上の
条件が満たされ、ステップ114に進んで一致データ列
有/無フラグを“1”とする。また、この時、一致デー
タ列の先頭データの辞書上の位置(アドレス)を示す一
致データ列ポインタ(crspd_point)の値0
及び一致データ列の長さ(バイト数)を示す一致データ
列長(crspd_len)の値2を符号化装置7に出
力し、一致データ列“ab”を辞書に出力するととも
に、1バイト出力する毎に辞書サイズカウンタ4にイン
クリメント信号を出力し、残りデータ数カウンタ5にデ
クリメント信号を出力する。そして、ステップ116に
進んで検索終了信号を符号化装置7と入力データバッフ
ァ1に出力し、今回の検索処理を終了する。
【0037】符号化装置7は、同様に、この検索終了信
号をトリガーにして図4にフローチャートで示す符号化
処理を開始する。ステップ201で最長一致データ列検
索装置3からの一致データ列有/無フラグ1ビットを圧
縮データビットストリームとして出力する。次に、ステ
ップ202で上記一致データ列有/無フラグが1か否か
を判別する。今、該フラグは1であるので、ステップ2
04に進んで、9ビットの一致データ列長(2〜25
6)から1を引いて下位8ビット(1〜255)をLS
Bから長さ指示子データサイズのビット数分順次出力す
る。今、長さ指示子データサイズは8であるので、8ビ
ット全て出力する。次に、ステップ205に進んで、一
致データ列ポインタ(crspd_point)8ビッ
トをLSBから順次出力する。そして、ステップ206
に進み、符号化終了信号を最長一致データ列検索装置3
に出力し、今回の符号化処理を終了する。このとき符号
化装置7から出力される圧縮データビットストリーム
は、一致データ列有/無フラグ1ビットと一致データ列
長8ビットと一致データ列ポインタ8ビットの計17ビ
ットとなる。この場合、余り圧縮の意味がないが、例え
ば、入力データ列が“abcabc・・・”となる3バ
イト一致の場合では、24ビットが17ビットに圧縮さ
れることになる。
【0038】以上のような処理が繰り返されて、入力デ
ータ列の残りデータ数が128バイト以下になると、残
りデータ数カウンタ5から出力される残りデータ数(r
em_size)も128以下となり、長さ指示子デー
タサイズジェネレータ6から出力される長さ指示子デー
タサイズ(lem_size)は7以下となる(図2参
照)。従って、一致データ列が見つかった場合の圧縮デ
ータビットストリームは、一致データ列有/無フラグ1
ビットと一致データ列長1〜7ビットと一致データ列ポ
インタ8ビットの計10〜16ビットとなる。具体的に
は、上記入力データ列の後尾の“abc”が辞書バッフ
ァ2の先頭からの“abc”と一致すると、残りデータ
数が3となって長さ指示子データサイズは2となるので
(図2参照)、一致データ列有/無フラグ1ビットと一
致データ列長2ビットと一致データ列ポインタ8ビット
の計11ビットとなる。すなわち、3バイト(24ビッ
ト)が11ビットに圧縮されたことになり、従来技術で
は、この場合でも17ビットのままであるので、本実施
例の圧縮処理の方が圧縮率が格段に良いことがわかる。
【0039】以上のような最長一致データ列検索処理及
び符号化処理が繰り返し行われて、符号化装置7から出
力される圧縮データビットストリームのフォーマット
は、図5の示すようになる。すなわち、図5において、
Fnはそれに続くデータDnに対する圧縮フラグ(一致
データ列有/無フラグ)1ビットで、“0”のときは非
圧縮データ、“1”のときは圧縮データを表している。
また、データDnは上記フラグFnに対するデータで、
フラグFnが“0”の時は生データ1バイト(LSBか
ら8ビット)、“1”のときは圧縮データが8〜16ビ
ットの範囲となる。このフラグFn=1の時の圧縮デー
タDnは、1〜8ビット可変長の一致データ列長(cr
spd_len)がLSBから順に並べられ、その後に
8ビットの一致データ列ポインタ(crspd_poi
nt)がLSBから順に並べられる。この8ビットの一
致データ列ポインタ(crspd_point)は一致
データ列の辞書内の先頭アドレスを示しており、1〜8
ビットの一致データ列長(crspd_len)は、1
〜255で2〜256の長さを表し、図2に示したよう
に残りデータ数に対応している。すなわち、残りデータ
数が128バイト以下になると、一致データ列長(cr
spd_len)の対応する下位ビットのみが必要とな
り、それ以外の上位ビットは冗長ビットなって不要とな
り、長さ指示子データサイズは1〜7ビットとなる。従
って、その分だけ従来技術に比べて圧縮率が向上する。
【0040】従って、このデータ圧縮装置(方法)を予
めデータ数が分かっている通信装置や記憶装置に適用す
ることにより、従来技術に比して転送データ量や記憶デ
ータ量が少なくなるので、転送速度の向上や記憶容量の
削減を図ることができる。特に、本願発明の対象とする
スライド辞書法が不得意とする小さいサイズ(辞書サイ
ズと比して)のデータ列を圧縮する際に効果的である。
また、記憶容量の削減に関しては、ROM等の不揮発性
半導体記憶素子を用いる例えばゲームカセット等におい
て、高価な記憶素子を効率的に使用することができる。
また、このゲームカセットにおいては、小さいサイズの
プログラムやデータが多数格納されるので、更に効果的
である。
【0041】なお、上記実施例では、圧縮の高速化を図
るためデータ圧縮装置を実現したが、高速性が余り要求
されない分野、例えばゲームカセット用ROMへのプロ
グラムやデータの書き込み等においては、上述した処理
をソフトウエアで実現し、コンピュータにより実行する
ようにしても良い。
【0042】図6は、本発明の一実施例に係るデータ伸
長装置を示すブロック図であり、上述したデータ圧縮装
置により圧縮されて転送又は記憶された圧縮データビッ
トストリームを伸長するものである。
【0043】11は、本発明における復号化手段に相当
するデマルチプレクサであり、従来からあるデマルチプ
レクサに後述する本願特有の機能が付加されたものであ
る。このデマルチプレクサ11は、図5に示した圧縮デ
ータビットストリームを入力とし、入力データの先頭ビ
ットにあるフラグFnで圧縮か非圧縮かを判断し、必要
なビット数のデータ(Dn)を入力する。すなわち、非
圧縮(Fn=0)であれば、続く8ビットを蓄えてバイ
トデータとして伸長データ列に出力するとともに、辞書
バッファ12に書き込む。なお、伸長データ列の出力は
出力データ同期用クロックとともに行われ、辞書バッフ
ァ12への書き込みはライトクロックとシフトクロック
により行われる。この辞書バッファ12への書込みは、
辞書バッファ12に空きがあれば(dic_size<
256)、ライトアドレスは辞書サイズdic_siz
eとなり、書き込んだ後、辞書サイズカウンタ13にイ
ンクリメント信号を出力し、残りデータ数カウンタ14
にデクリメント信号を出力する。また、辞書バッファ1
2が満杯であれば(dic_size=256)、まず
辞書データをアドレス00hに向かってシフト(D
(n)=D(n+1),n=0,1,・・・,254)
してから、アドレスFFhに書き込む。一方、圧縮(F
n=1)の時は、これに続くデータDnのビット数を、
長さ指示子データサイズジェネレータ15の出力する長
さ指示子データサイズを参照して“長さ指示子データサ
イズ(len_size)+8”と決める。そして、先
ず長さ指示子データサイズ(len_size)のビッ
ト数分入力し、8ビットに足りない上位(8−len_
size)ビットに“0”を補充し、8ビットの一致デ
ータ列長(crspd_len)を構成する。さらに続
く8ビットを入力し、1バイトの一致データ列ポインタ
(crspd_point)を構成する。このようにし
て得られた一致データ列長(crspd_len)と一
致データ列ポインタ(crspd_point)を元に
して、辞書バッファ12内の一致データ列を参照する。
まず、一致データ列ポインタ(csrpd_poin
t)の示すアドレスの辞書データD(csrpd_po
int)を読み出す。このデータを伸長データとして出
力し、一致データ列長(crspd_len)をデクリ
メントする。また、伸長されたデータD(csrpd_
point)を辞書バッファ12に書き込む。上記同
様、辞書バッファ12に空きがあれば(dic_siz
e<256)、ライトアドレスは辞書サイズdic_s
izeとなる(D(dic_size)=D(crsp
d_point)。そして、辞書サイズカウンタ13に
インクリメント信号を出力するとともに、残りデータ数
カウンタ14にデクリメント信号を出力し、一致データ
列ポインタ(crspd_point)をインクリメン
トする。一方、辞書バッファ12が満杯であれば(di
c_size=256)、まず辞書データをアドレス0
0hに向かってシフト(D(n)=D(n+1),n=
0,1,・・・,254)してから、アドレスFFhに
書き込む(D(255)=D(crspd_poin
t))。そして、残りデータ数カウンタ14にデクリメ
ント信号を出力し、一致データ列ポインタ(crspd
_point)のインクリメントは行わない。一致デー
タ列長(crspd_len)のデクリメント処理にお
いてボローがでたら1回の復号化処理を終了し、入力デ
ータの次のフラグのチェックを行う。すなわち、一致デ
ータ列長(crspd_len)は、(実際の一致デー
タ列長)−1の値を表しているので、00hになるまで
ではなく、ボローが出てFFhになるまでが実際の一致
データ列長の処理となる。
【0044】辞書バッファ12は、前記データ圧縮装置
の辞書バッファ2と同様なもので、データバス8ビッ
ト,アドレス8ビットで、計256バイトのシフトレジ
スタで構成されている。デマルチプレクサ11からの入
力データは、上述したように、辞書バッファ12に空き
がある時,すなわち辞書サイズ(dic_size)<
256の時は、この辞書サイズ(dic_size)を
アドレスとしてラッチされる(D(dic_size)
=入力データ)。一方、辞書バッファ12が満杯の時,
すなわち辞書サイズ(dic_size)=256の時
は、まず辞書データをアドレス00hに向かってシフト
(D(n)=D(n+1),n=1,2,・・・,25
4)してからアドレスFFhにラッチされる。また、デ
マルチプレクサ11の制御により、指定されたアドレス
(crspd_point)のデータが読み出され、デ
マルチプレクサ11に出力する。
【0045】辞書サイズカウンタ13は、カウント最大
値が256に設定されたアップカウンタで構成され、伸
長開始時に図示しないシステムリセット信号によりリセ
ットされる。そして、上述したデマルチプレクサ11か
らのインクリメント信号によりカウントアップし、最大
値(256)に達すると、以降その値を保持する。この
辞書サイズカウンタ13からの辞書サイズ(dic_s
ize)は、デマルチプレクサ11に出力される。
【0046】残りデータ数カウンタ14は、本願発明に
おいて備えられた計数手段に相当するもので、本伸長装
置の利用分野で想定される最大のデータ数が設定可能な
ビット数のダウンカウンタで構成され、伸長開始前に入
力データ列のデータ数がセットされ、以降、デマルチプ
レクサ11からのデクリメント信号によりカウントダウ
ンし、残りデータ数(rem_size)を長さ指示子
データサイズジェネレータ15に出力する。
【0047】長さ指示子データサイズジェネレータ15
は、本願発明において備えられた判別手段に相当するも
ので、ゲート回路からなるエンコーダで構成され、上記
残りデータ数カウンタ14からの出力値(残りデータ
数)を元にして対応する長さ指示子データサイズ(le
n_size),すなわち一致データ列長のビット数を
生成し、デマルチプレクサ11に出力する。この長さ指
示子データサイズジェネレータ15の入力(残りデータ
数)と出力(長さ指示子データサイズ)の対応関係は図
2に示した通りである。
【0048】次に、このように構成されたデータ伸長装
置の動作について説明する。ここでは、前記データ圧縮
装置の動作説明で用いた具体例による圧縮データビット
ストリームを伸長するものとして説明する。この圧縮デ
ータビットストリームは、図5のFn,Dnで示すと、
F0=0,D0=“a”,F1=0,D1=“b”,F
2=0,D2=“c”,F3=1,D3=000000
0100000000,F4=0,D4=“d”,・・
・,Fmax=1,Dmax=1000000000と
なる。なお、伸長開始時には、辞書サイズカウンタ13
がシステムリセット信号によりリセットされて0とな
り、また、残りデータ数カウンタ14に入力データ数と
して256がセットされている。
【0049】本データ伸長装置が起動され、上述した圧
縮データビットストリームがデマルチプレクサ11に入
力されると、デマルチプレクサ11は図7にフローチャ
ートで示す処理を開始する。すなわち、ステップ301
で入力データ列の先頭ビット(フラグF0)が1か否か
を判別する。今、入力データの先頭ビットF0=0であ
るので、ステップ302に進み、次の8ビット(D0=
“a”)を入力し、バイトデータとして伸長データ列に
出力する。次に、ステップ303で辞書バッファ12に
空きが有るか否かを辞書サイズ(dic_size)よ
り判別し、空きが有れば(dic_size<25
6)、ステップ304に進んで、辞書サイズカウンタ1
3の示す辞書サイズ(dic_size)をアドレスと
して辞書バッファ12に上記バイトデータを書き込む。
今、辞書サイズ(dic_size)は0であるので、
辞書バッファ12のアドレス00hにデータD0=
“a”が書き込まれる。この後、ステップ305で辞書
サイズカウンタ13にインクリメント信号を出力してカ
ウントアップし、ステップ307で残りデータ数カウン
タ14にデクリメント信号を出力してカウントダウン
し、ステップ301にもどる。なお、辞書バッファ12
に空きがなければ(dic_size=256)、ステ
ップ306に進み、辞書データをアドレス00hに向か
ってシフトしてからアドレスFFhに書き込む。
【0050】次の入力データのフラグF1=0,データ
D1=“b”,その次のフラグF2=0,データD2=
“c”であるので、ステップ301〜305,307を
2回繰り返し、伸長データ列には“a”の次に“b”,
“c”が出力される。また、今、辞書バッファ12に
は、アドレス00hから“a”,“b”,“c”が順に
格納され、辞書サイズカウンタ13から出力される辞書
サイズ(dic_size)は3となり、残りデータ数
カウンタ14から出力される残りデータ数(rem_s
ize)は253となり、長さ指示子データサイズジェ
ネレータ15から出力される長さ指示子データサイズ
(len_size)は8のままとなる(図2参照)。
【0051】さて、次の入力データの先頭ビットである
フラグF3=1となるので、ステップ301からステッ
プ308に進み、長さ指示子データサイズのビット数
分,すなわち8ビット(00000001)を入力し、
そのまま8ビットの一致データ列長を構成する。次のス
テップ309では、8ビット(00000000)を入
力し、1バイトの一致データ列ポインタを構成する。次
に、ステップ310に進み、辞書バッファ12から上記
一致データ列ポインタ00hのデータ“a”を読み出し
て、伸長データとして出力する。そして、ステップ31
1で一致データ列長(00000001)をデクリメン
トする。また、ステップ312で残りデータ数カウンタ
14にデクリメント信号を出力する。次に、ステップ3
13で、辞書バッファ12に空きが有るか否かを辞書サ
イズ(dic_size)より判別し、空きが有れば
(dic_size<256)、ステップ314に進ん
で、辞書サイズカウンタ13の示す辞書サイズ(dic
_size)をアドレスとして辞書バッファ12に伸長
データを書き込む。今、辞書サイズ(dic_siz
e)は3であるので、辞書バッファ12のアドレス03
hに伸長データ“a”が書き込まれる。この後、ステッ
プ315で、辞書サイズカウンタ13にインクリメント
信号を出力してカウントアップし、ステップ316で一
致データ列ポインタ(00h)をインクリメントして、
ステップ318に進む。なお、辞書バッファ12に空き
がなければ(dic_size=256)、ステップ3
17に進み、辞書データをアドレス00hに向かってシ
フトしてからアドレスFFhに書き込み、一致データ列
ポインタをインクリメントすることなく、ステップ31
8に進む。
【0052】ステップ318では、一致データ列長がボ
ローが出たか否かが判別される。一致データ列長は00
hでまだボローは出ていないので、ステップ310に戻
る。そして、上記と同様に、辞書バッファ12から一致
データ列ポインタ01hのデータ“b”を読み出して、
伸長データとして出力するとともに(ステップ31
0)、一致データ列長00hをデクリメントし(ステッ
プ311)、また、残りデータ数カウンタ14にデクリ
メント信号を出力(ステップ312)する等して、上記
データ“b”を辞書バッファ12に書き込む(ステップ
314)。そして、辞書サイズカウンタ13にインクリ
メント信号を出力し(ステップ315)、一致データ列
ポインタをインクリメントし(ステップ316)、ステ
ップ318に進む。ここで、一致データ列長は上記ステ
ップ310におけるデクリメントによりボローが出でF
Fhとなっているので、最初のステップ301に戻る。
そして、入力データ列の次の先頭ビット(フラグF4)
は0であるので、ステップ302に進み、上記と同様な
処理が繰り返される。
【0053】このような処理を繰り返して、入力データ
の先頭ビットFmax=1となると、ステップ301か
らステップ308に進むが、このステップ308におい
て、長さ指示子データサイズのビット数分入力する。こ
こで、残りデータ数(rem_size)は3となり、
長さ指示子データサイズジェネレータ15からの長さ指
示子データサイズ(len_size)は2となるの
で、次の2ビット,すなわち“10”を入力し、8ビッ
トに足りない上位ビットに“0”を補充して、8ビット
の一致データ列長(00000010)を構成する。次
のステップ309では、8ビット(00000000)
を入力し、1バイトの一致データ列ポインタを構成す
る。次に、ステップ310に進み、辞書バッファ12か
ら上記一致データ列ポインタ00hのデータ“a”を読
み出して、伸長データとして出力する。そして、ステッ
プ311で一致データ列長(00000010)をデク
リメントする。また、ステップ312で残りデータ数カ
ウンタ14にデクリメント信号を出力する。次に、ステ
ップ313で辞書バッファ12に空きが有るか否かを辞
書サイズ(dic_size)より判別し、空きが有れ
ば(dic_size<256)、ステップ314に進
んで、辞書サイズカウンタ13の示す辞書サイズ(di
c_size)をアドレスとして辞書バッファ12に伸
長データを書き込む。今、辞書サイズ(dic_siz
e)は253であるので、辞書バッファ12のアドレス
FDhに伸長データ“a”が書き込まれる。この後、ス
テップ315で辞書サイズカウンタ13にインクリメン
ト信号を出力してカウントアップし、ステップ316で
一致データ列ポインタ(00h)をインクリメントし
て、ステップ318に進む。今、一致データ列長は01
hであるので、上記ステップ310〜316を2回繰り
返し、一致データ列長がFFh(ボロー)となると、全
ての入力データの復号化処理が終了し、伸長データ列と
して“abcabd・・・abc”が得られ、前述した
データ圧縮装置で圧縮する前の入力データ列が復元でき
たことになる。
【0054】なお、上記実施例では、伸長処理の高速化
を図るためデータ伸長装置を実現したが、高速性が余り
要求されない分野においては、上述した処理をソフトウ
エアで実現し、コンピュータにより実行するようにして
も良い。
【0055】また、予めデータ数が分かっており、RO
MやバッテリーバックアップされたRAM等の高価な不
揮発性半導体記憶手段に、小さいサイズのプログラムや
データが多数格納され、高速な読み出しが要求されるゲ
ームカセット等においては、上述したデータ伸長装置を
組み込むことにより、上記各条件が満たされるので、特
に効果的である。
【0056】また、上記各実施例においては、データ圧
縮装置及びデータ伸長装置の辞書バッファ2、12にシ
フトレジスタを用いた場合について示したが、これらの
辞書バッファに通常のメモリを用い、書き込みアドレス
を順次サイクリックに更新することにより、辞書内容を
上書きにより順次更新し、これによりスライド辞書を実
現するようにしても良い。
【0057】
【発明の効果】請求項1記載の発明によれば、スライド
辞書法を用いてデータの圧縮を行うデータ圧縮方法にお
いて、入力データ列の残りデータ数を計数し、残りデー
タ数が辞書容量の範囲内の既定の上限以下となった場合
には、その残りデータ数を2進数で表現可能な最小のビ
ット数に長さ指示子のビット数を設定し、設定した長さ
指示子のビット数にて符号化を行うようにしたので、入
力データ列の後部で、長さ指示子で表わされる上限の1
/2以下の長さ分のデータに対する圧縮データの冗長な
部分を取り除くことができ、圧縮率を従来よりも高くす
ることができる効果がある。従って、この発明を予めデ
ータ数の分かっている通信装置や記憶装置に適用するこ
とにより、従来技術に比して転送データ量や記憶データ
量が少なくなるので、転送速度の向上や記憶容量の削減
を図ることができる。特に、本願発明の対象とするスラ
イド辞書法が不得意とする小さいサイズ(辞書サイズと
比して)のデータ列を圧縮する際に効果的である。
【0058】また、請求項2記載の発明によれば、スラ
イド辞書法を用いてデータの圧縮を行うデータ圧縮装置
において、入力データ列の残りデータ数を計数する計数
手段と、この計数手段で計数された残りデータ数に基づ
き、その残りデータ数が辞書容量の範囲内の既定の上限
以下となったときに当該データ数を2進数で表現可能な
最小のビット数に長さ指示子のビット数を設定する設定
手段と、この設定手段で設定された長さ指示子のビット
数にて符号化を行う符号化手段とを備えたので、上記請
求項1と同様な効果が得られるとともに、圧縮を高速で
行うことができる効果がある。
【0059】また、請求項3記載の発明によれば、不揮
発性半導体記憶手段に書き込まれるプログラムやデータ
を圧縮するので、高価な記憶素子を効率的に使用するこ
とができる効果がある。
【0060】一方、請求項4記載の発明によれば、上記
請求項1記載のデータ圧縮方法または請求項2記載のデ
ータ圧縮装置によって圧縮された圧縮データを伸長する
データ伸長方法であって、伸長データの残りデータ数を
計数し、残りデータ数が辞書容量の範囲内の既定の上限
以下となった場合には、その残りデータ数を2進数で表
現可能な最小のビット数から長さ指示子のビット数を判
別し、判別した長さ指示子のビット数を用いて復号化を
行うようにしたので、上記により圧縮されたデータを伸
長することができる効果がある。
【0061】また、請求項5記載の発明によれば、上記
請求項1記載のデータ圧縮方法または請求項2記載のデ
ータ圧縮装置によって圧縮された圧縮データを伸長する
データ伸長装置であって、伸長データの残りデータ数を
計数する計数手段と、この計数手段で計数された残りデ
ータ数に基づき、その残りデータ数が辞書容量の範囲内
の既定の上限以下となったときに当該データ数を2進数
で表現可能な最小のビット数から長さ指示子のビット数
を判別する判別手段と、この判別手段で判別された長さ
指示子のビット数を用いて復号化を行う復号化手段とを
備えたので、上記請求項4と同様の効果を有するととも
に、伸長を高速に行うことができる効果がある。
【0062】また、請求項6記載の発明によれば、不揮
発性半導体記憶手段から読み出されるプログラムやデー
タの圧縮データを高速に伸長できる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例に係るデータ圧縮装置を示す
ブロック図。
【図2】上記実施例における残りデータ数と長さ指示子
データサイズとの対応表を示す図。
【図3】上記実施例のおける最長一致データ列検索装置
の動作を示すフローチャート。
【図4】上記実施例における符号化装置の動作を示すフ
ローチャート。
【図5】上記実施例における圧縮データビットストリー
ムの説明図。
【図6】本発明の一実施例に係るデータ伸長装置を示す
ブロック図。
【図7】上記実施例のおけるデマルチプレクサの動作を
示すフローチャート。
【符号の説明】
2,12 辞書バッファ 3 最長一致データ列検索装置 4,13 辞書サイズカウンタ 5,14 残りデータ数カウンタ 6,15 長さ指示子データサイズジェネレータ 7 符号化装置 11 デマルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−314430(JP,A) 特開 平2−233025(JP,A) 特開 平3−68219(JP,A) 特開 平3−204232(JP,A) 特開 平3−204233(JP,A) 特開 平3−78322(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力データ列のうち、各時点で符号化の
    対象となるデータの近傍のデータ列を所定数量まで記憶
    手段に格納し、格納されたデータ列を符号化のために参
    照する辞書として用い、各時点で符号化の対象となって
    いる位置から始まるデータ列に一致する上記辞書内のデ
    ータ列で、上記所定数量の範囲内の既定の上限以下で最
    も長い一致データ列を検索し、当該一致データ列が見つ
    かれば、一致を示すフラグと、見つかったデータ列の辞
    書内の位置を示すポインタと、その長さを示す長さ指示
    子とから符号語を構成するとともに、上記一致データ列
    が見つからなければ、不一致を示すフラグと、符号化の
    対象となっているデータそのものとから符号語を構成す
    ることにより、データの圧縮を行うデータ圧縮方法にお
    いて、 入力データ列の残りデータ数を計数し、残りデータ数が
    上記上限以下となった場合には、その残りデータ数を2
    進数で表現可能な最小のビット数に上記長さ指示子のビ
    ット数を設定し、設定した長さ指示子のビット数にて符
    号化を行うことを特徴とするデータ圧縮方法。
  2. 【請求項2】 入力データ列のうち、各時点で符号化の
    対象となるデータの近傍のデータ列を所定数量まで記憶
    手段に格納し、格納されたデータ列を符号化のために参
    照する辞書として用い、各時点で符号化の対象となって
    いる位置から始まるデータ列に一致する上記辞書内のデ
    ータ列で、上記所定数量の範囲内の既定の上限以下で最
    も長い一致データ列を検索し、当該一致データ列が見つ
    かれば、一致を示すフラグと、見つかったデータ列の辞
    書内の位置を示すポインタと、その長さを示す長さ指示
    子とから符号語を構成するとともに、上記一致データ列
    が見つからなければ、不一致を示すフラグと、符号化の
    対象となっているデータそのものとから符号語を構成す
    ることにより、データの圧縮を行うデータ圧縮装置にお
    いて、 入力データ列の残りデータ数を計数する計数手段と、こ
    の計数手段で計数された残りデータ数に基づき、その残
    りデータ数が上記上限以下となったときに当該データ数
    を2進数で表現可能な最小のビット数に上記長さ指示子
    のビット数を設定する設定手段と、この設定手段で設定
    された長さ指示子のビット数にて符号化を行う符号化手
    段とを備えたことを特徴とするデータ圧縮装置。
  3. 【請求項3】 不揮発性半導体記憶手段に書き込まれる
    プログラムやデータを圧縮することを特徴とする請求項
    2記載のデータ圧縮装置。
  4. 【請求項4】 請求項1記載のデータ圧縮方法または請
    求項2記載のデータ圧縮装置によって圧縮された圧縮デ
    ータを入力し、符号語に含まれるフラグが不一致を示す
    ときは、当該符号語に含まれる他のデータを取り出して
    復号化するとともに、当該データを復号化のために参照
    する所定数量の辞書に入力し、また、符号語に含まれる
    フラグが一致を示すときは、当該符号語に含まれるポイ
    ンタと長さ指示子とを用いて上記辞書内から対応するデ
    ータを取り出して復号化するとともに、当該データを上
    記辞書に入力することにより、圧縮データの伸長を行う
    データ伸長方法であって、 伸長データの残りデータ数を計数し、残りデータ数が上
    記所定数量の範囲内の既定の上限以下となった場合に
    は、その残りデータ数を2進数で表現可能な最小のビッ
    ト数から上記長さ指示子のビット数を判別し、判別した
    長さ指示子のビット数を用いて復号化を行うことを特徴
    とするデータ伸長方法。
  5. 【請求項5】 請求項1記載のデータ圧縮方法または請
    求項2記載のデータ圧縮装置によって圧縮された圧縮デ
    ータを入力し、符号語に含まれるフラグが不一致を示す
    ときは、当該符号語に含まれる他のデータを取り出して
    復号化するとともに、当該データを復号化のために参照
    する所定数量の辞書に入力し、また、符号語に含まれる
    フラグが一致を示すときは、当該符号語に含まれるポイ
    ンタと長さ指示子とを用いて上記辞書内から対応するデ
    ータを取り出して復号化するとともに、当該データを上
    記辞書に入力することにより、圧縮データの伸長を行う
    データ伸長装置であって、 伸長データの残りデータ数を計数する計数手段と、この
    計数手段で計数された残りデータ数に基づき、その残り
    データ数が上記所定数量の範囲内の既定の上限以下とな
    ったときに当該データ数を2進数で表現可能な最小のビ
    ット数から上記長さ指示子のビット数を判別する判別手
    段と、この判別手段で判別された長さ指示子のビット数
    を用いて復号化を行う復号化手段とを備えたことを特徴
    とするデータ伸長装置。
  6. 【請求項6】 プログラムやデータの圧縮データが記憶
    された不揮発性半導体記憶手段から読み出される圧縮デ
    ータを伸長することを特徴とする請求項5記載のデータ
    伸長装置。
JP27432994A 1994-10-14 1994-10-14 データ圧縮方法及びその装置並びにデータ伸長方法及びその装置 Expired - Fee Related JP3143029B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27432994A JP3143029B2 (ja) 1994-10-14 1994-10-14 データ圧縮方法及びその装置並びにデータ伸長方法及びその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27432994A JP3143029B2 (ja) 1994-10-14 1994-10-14 データ圧縮方法及びその装置並びにデータ伸長方法及びその装置

Publications (2)

Publication Number Publication Date
JPH08116270A JPH08116270A (ja) 1996-05-07
JP3143029B2 true JP3143029B2 (ja) 2001-03-07

Family

ID=17540145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27432994A Expired - Fee Related JP3143029B2 (ja) 1994-10-14 1994-10-14 データ圧縮方法及びその装置並びにデータ伸長方法及びその装置

Country Status (1)

Country Link
JP (1) JP3143029B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117119120B (zh) * 2023-10-25 2023-12-22 上海伯镭智能科技有限公司 基于多台无人驾驶矿车的协同控制方法

Also Published As

Publication number Publication date
JPH08116270A (ja) 1996-05-07

Similar Documents

Publication Publication Date Title
US5608396A (en) Efficient Ziv-Lempel LZI data compression system using variable code fields
JP3273119B2 (ja) データ圧縮・伸長装置
US5955976A (en) Data compression for use with a communications channel
CA2260883C (en) Data compression and decompression system with immediate dictionary updating interleaved with string search
US5254990A (en) Method and apparatus for compression and decompression of data
US5874908A (en) Method and apparatus for encoding Lempel-Ziv 1 variants
US5703581A (en) Method and apparatus for data compression and decompression
US7071848B1 (en) Hardware-friendly general purpose data compression/decompression algorithm
US5877711A (en) Method and apparatus for performing adaptive data compression
JP3240495B2 (ja) データの可逆符号化方法および装置、並びに、伸長装置
CN101095284B (zh) 用于有选择地压缩和解压缩数据的设备与方法
JP2000315954A (ja) 入力データストリームの圧縮方法とその装置
JPH03204233A (ja) データ圧縮方法
JP3241788B2 (ja) データ圧縮方式
US5010344A (en) Method of decoding compressed data
JP3143029B2 (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置
JP3143030B2 (ja) データ圧縮方法及びその装置並びにデータ伸長方法及びその装置
JP3242795B2 (ja) データ処理装置及びデータ処理方法
KR950013228B1 (ko) 데이타 압축과 복원방법 및 그 장치
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JP3910932B2 (ja) データシーケンスを圧縮するシステム、方法、およびコンピュータ読み取り可能媒体
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
CN100512437C (zh) 一种解压缩方法、系统和系统制作方法
CN101192304B (zh) 用于嵌入式系统的图像压缩及解压缩装置与方法
JPH06291677A (ja) データ圧縮装置及びデータ復元装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees