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

データ圧縮装置及びデータ復元装置

Info

Publication number
JPH06274311A
JPH06274311A JP6002793A JP6002793A JPH06274311A JP H06274311 A JPH06274311 A JP H06274311A JP 6002793 A JP6002793 A JP 6002793A JP 6002793 A JP6002793 A JP 6002793A JP H06274311 A JPH06274311 A JP H06274311A
Authority
JP
Japan
Prior art keywords
dictionary
data
registered
character string
linked list
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.)
Withdrawn
Application number
JP6002793A
Other languages
English (en)
Inventor
Yasuhiko Nakano
泰彦 中野
Yoshiyuki Okada
佳之 岡田
Shigeru Yoshida
茂 吉田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6002793A priority Critical patent/JPH06274311A/ja
Publication of JPH06274311A publication Critical patent/JPH06274311A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】本発明は、データ圧縮装置とそのデータ復元装
置に関し、動的辞書型に従うユニバーサル符号化構成を
採るときにあって、高いデータ圧縮を実現できるように
することを目的とする。 【構成】登録された辞書番号を使用順に並べて管理する
連結リスト11aと、符号化対象の辞書番号が検索され
るときに、この辞書番号を管理する連結リスト11a上
の登録位置番号を特定する特定手段14aと、特定手段
14aの特定する登録位置番号を新しく使用された辞書
番号に対応付けられるもの程短い符号長となるようにと
可変長符号化する符号手段16aとを備えるようにデー
タ圧縮装置を構成し、そして、この逆変換を実行するよ
うにデータ復元装置を構成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ユニバーサル符号によ
るデータ圧縮装置と、そのデータ復元装置に関し、特
に、動的辞書型に従うユニバーサル符号化構成を採ると
きにあって、高いデータ圧縮を実現できるデータ圧縮装
置と、そのデータ復元装置に関するものである。
【0002】近年、文字コードやベクトル情報や画像
等、様々な種類のデータがコンピュータで扱われるよう
になっており、扱われるデータ量も急激に増加しつつあ
る。このような大量のデータを扱うときには、記憶容量
の削減を図り、高速伝送を実現するためにも、データ中
の冗長な部分を省いてデータ量を圧縮していく必要があ
る。
【0003】データ圧縮の方法としては種々のものが提
案されているが、様々な種類のデータを1つの方式でデ
ータ圧縮できる方法として、ユニバーサル符号が提案さ
れている。このユニバーサル符号の代表的な方法として
ジブーレンペル(Ziv-Lempel)符号があり、このジブー
レンペル符号では、大きく分けてスライド辞書型(ユニ
バーサル型とも称せられている)と、動的辞書型(増分
分解型とも称せられている)という2つのアルゴリズム
が提案されている。そして、この動的辞書型のアルゴリ
ズムの改良として、LZW(Lempel-Ziv-Welch)符号が
提案されている。このようなユニバーサル符号を実用的
なものとしていくためには、更に改良を図って、高いデ
ータ圧縮を実現できるようにしていく必要がある。
【0004】なお、本発明は、文字コードの圧縮に限ら
れずに、様々なデータの圧縮に適用できるものである
が、以下では、情報理論で用いられている呼称を踏襲し
て、データの1ワードを文字と呼び、データが任意ワー
ドつながったものを文字列と呼ぶことにする。
【0005】
【従来の技術】本発明は、動的辞書型ジブーレンペル符
号と、その改良型であるLZW符号の改良に関するもの
である。これから、ここでは、動的辞書型ジブーレンペ
ル符号化処理と、その改良型であるLZW符号化処理の
従来技術について説明する。
【0006】動的辞書型ジブーレンペル符号は、入力さ
れたデータを互いに異なる文字列に分解し、この文字列
を辞書番号とともに辞書に管理していく構成を採って、
入力中のデータを、辞書登録の最長一致文字列の辞書番
号とその最長一致文字列に続く1文字とを対とする成分
系列に置き換えていくことで、長い文字列を短い辞書番
号で表すことでもって符号化を実行する構成を採るもの
である。なお、以下において、辞書番号を参照番号と称
することがある。
【0007】具体例で説明するならば、入力データの系
列を、 X=aabababaa・・・・・・・・ とすると、 X=a・ab・aba・b・aa・・・・ と増分分解することで、 X=X0 1 2 3 4 5 ・・・・・ 但し、X0 =λ(空列),X1 =X0 a,X2 =X
1 b,X3 =X2 a,X4 =X0 b,X5 =X1 a,・
・・ という成分系列に置き換えていって、各成分系列X
i を、辞書番号を表すi番号と次の1文字との組で符号
化していくのである。
【0008】一方、LZW符号は、動的辞書型ジブーレ
ンペル符号の改良を図って、入力データに出現する可能
性のある1文字構成の文字を予め辞書に登録する構成を
採ることで、辞書番号のみで入力データを符号化できる
ようにするものである。
【0009】図10に、LZW符号による符号化処理の
処理フロー、図11に、LZW符号による復元化処理の
処理フローを図示する。LZW符号によるデータ符号化
処理を実行する場合には、図10の処理フローに示すよ
うに、先ず最初に、ステップ1で、符号化対象となる文
字列に出現する可能性のある全ての単一文字を辞書に登
録し、参照番号の最大値Nにその単一文字種類数を設定
する。次に、ステップ2で、符号化対象の入力データの
最初の文字Kを入力して、その文字Kの参照番号を語頭
文字列ωとして設定する。続いて、ステップ3で、符号
化対象の入力データから次の文字Kを読み込み、続くス
テップ4で、参照番号を表す語頭文字列ωとこの読み込
んだ文字Kとの組み合わせの文字列ωKが、辞書に登録
されているか否かを判断する。
【0010】このステップ4で、文字列ωKが辞書に登
録されていると判断するときには、ステップ5に進ん
で、この文字列ωKの参照番号を新たな語頭文字列ωと
して設定し、続くステップ6で、符号化対象の入力デー
タの全文字についての処理が終了したか否かを判断し
て、終了していないことを判断するときには、ステップ
3に戻っていくことで最長一致文字列を検索し、終了し
たことを判断するときには、ステップ8に進んで、語頭
文字列ωの参照番号を出力して処理を終了する。
【0011】一方、ステップ4で、文字列ωKが辞書に
登録されていないと判断するときには、語頭文字列ωの
示す文字列が最長一致文字列であることに対応して、ス
テップ7に進んで、語頭文字列ωの参照番号を出力する
とともに、この文字列ωKを参照番号を付加して辞書に
登録する。そして、それまでの語頭文字列ωに続く1文
字Kの参照番号を新たな語頭文字列ωとして設定すると
ともに、参照番号の最大値を1つインクリメントしてか
らステップ6に進んでいくことで、次の最長一致文字列
の検索に入っていく。
【0012】図12に従って、この処理フローによるL
ZW符号生成について具体的に説明すると、ステップ1
の処理に従って、文字aが参照番号1、文字bが参照番
号2、文字cが参照番号3とともに辞書に登録される。
次に、ステップ2の処理に従って、入力データの先頭文
字aが読み出されて、その参照番号1が語頭文字列ωと
して設定される。
【0013】続いて、ステップ3の処理に従って、入力
データの第2番目の文字bが読み出され、ステップ4の
処理に従って、文字列1b(=ab)が辞書に登録され
ていないことが判断されて、ステップ7の処理に従っ
て、語頭文字列ωの参照番号1が出力されるとともに、
文字列1bが参照番号4とともに辞書に登録され、更
に、この文字bの参照番号2が新たな語頭文字列ωとし
て設定される。
【0014】続いて、ステップ3の処理に従って、入力
データの第3番目の文字aが読み出され、ステップ4の
処理に従って、文字列2a(=ba)が辞書に登録され
ていないことが判断されて、ステップ7の処理に従っ
て、語頭文字列ωの参照番号2が出力されるとともに、
文字列2aが参照番号5とともに辞書に登録され、更
に、この文字aの参照番号1が新たな語頭文字列ωとし
て設定される。
【0015】続いて、ステップ3の処理に従って、入力
データの第4番目の文字bが読み出され、ステップ4の
処理に従って、文字列1bが辞書に登録されていること
が判断されて、ステップ5の処理に従って、この文字列
1bの参照番号4が新たな語頭文字列ωとして設定され
る。
【0016】続いて、ステップ3の処理に従って、入力
データの第5番目の文字cが読み出され、ステップ4の
処理に従って、文字列4c(=abc)が辞書に登録さ
れていないことが判断されて、ステップ7の処理に従っ
て、語頭文字列ωの参照番号4が出力されるとともに、
文字列4cが参照番号6とともに辞書に登録され、更
に、この文字cの参照番号3が新たな語頭文字列ωとし
て設定される。
【0017】以下同様の処理を繰り返していくことで、
図12に示すような符号化が実行されていくことにな
る。図13に、このときの辞書登録構成を図示する。一
方、LZW符号によるデータ復元化処理を実行する場合
には、図11の処理フローに示すように、先ず最初に、
ステップ1で、復元される文字列に出現する可能性のあ
る全ての単一文字を辞書に登録し、参照番号の最大値N
にその単一文字種類数を設定する。次に、ステップ2
で、復元対象となる入力データ(参照番号列である)の
最初の符号(CODE)を読み込み、OLDcode として設定す
るとともに、辞書を検索して、このCODEの指す文字Kを
探し出して出力する。ここで、出力した文字Kは、後の
例外処理のためにcharにセットしていく。
【0018】続いて、ステップ3で、復元対象となる入
力データから次の符号(CODE)を読み込み、NEWcode と
して設定する。続いて、ステップ4で、ステップ3で読
み込んだCODEが辞書に登録されているか否かをチェック
する。このステップ4で、CODEが辞書に登録されている
ことを判断すると、ステップ5に進んで、このCODEの指
す文字列ωKを辞書から読み出し、続くステップ6で、
この文字列ωKの文字Kをスタックに格納するととも
に、この文字列ωKの参照番号ωを新たなCODEとして設
定してステップ5の処理に戻っていく。
【0019】このステップ5及びステップ6の処理を再
帰的に実行していくことで、CODEが1文字を指す状態に
達することを判断すると、ステップ7に進んで、ステッ
プ6でスタックした文字列をLILO(Last In Fast O
ut)形式でポップアップして出力するとともに、OLDcod
e に設定される前回使用した参照番号ωと、今回復元し
た文字列の先頭の1文字との組み合わせからなる文字列
ωKを参照番号を付加して辞書に登録する。そして、復
元文字列の先頭の1文字を後の例外処理のためにcharに
セットし、NEWcode のCODEをOLDcode として設定すると
ともに、参照番号の最大値を1つインクリメントする。
【0020】ステップ7の処理を終了すると、ステップ
8に進んで、復元対象となる入力データの全符号につい
ての処理が終了したか否かを判断して、終了していない
ことを判断するときには、ステップ3に戻っていくこと
で次の符号の復元処理を実行し、終了したことを判断す
るときには処理を終了する。
【0021】そして、ステップ4で、ステップ3で読み
込んだCODEが辞書に登録されていないことを判断すると
きには、ステップ9に進んで、以下の例外処理を実行す
る。ここで、このような状態は、符号化において直前の
参照番号を参照する場合に起こることになる。これか
ら、ステップ9では、charを出力し、OLDcode をCODEと
して設定するとともに、OLDcode とcharとの組み合わせ
をNEWcode として設定して、ステップ5に進んでいく処
理を実行することになる。
【0022】図14に従って、この処理フローによるL
ZW符号の復号化処理について具体的に説明すると、ス
テップ1の処理に従って、文字aが参照番号1、文字b
が参照番号2、文字cが参照番号3とともに辞書に登録
される。次に、ステップ2の処理に従って、入力データ
の先頭符号1が読み出されて、その符号1の指す文字a
が出力される。
【0023】続いて、ステップ3の処理に従って、入力
データの第2番目の符号2が読み出され、ステップ5な
いしステップ7の処理に従って、その符号2の指す文字
bが出力されるとともに、前回処理した符号1と今回復
元した文字列の先頭の1文字bとの組み合わせの文字列
1bが参照番号4とともに辞書に登録される。
【0024】続いて、ステップ3の処理に従って、入力
符号列の第3番目の符号4が読み出され、ステップ5な
いしステップ7の処理に従って、その符号4の指す文字
列abが出力されるとともに、前回処理した符号2と今
回復元した文字列の先頭の1文字aとの組み合わせの文
字列2aが参照番号5とともに辞書に登録される。
【0025】以下同様の処理を繰り返していくことで、
図14に示すような符号化が実行されていくことになる
が、入力データの第6番目の符号8が読み出されるとき
には、符号8はこの復元時には辞書に登録されていな
い。これから、ステップ9の処理に従って例外処理が実
行されて、前回処理した符号5に前回復元した文字列b
aの先頭文字bを加えた文字列5bが求められ、これを
復元していくことで符号8の指す文字列babが求めら
れて出力されるとともに、前回処理した符号5に今回復
元した文字列の先頭文字bを加えた文字列5bが参照番
号8とともに辞書に登録されることになるのである。
【0026】この構成を採るときにあって、従来の動的
辞書型ジブーレンペル符号やLZW符号では、出現順に
割り付けた辞書番号をそのまま変更することなく用い
て、同一の符号語長を割り当てていくという構成を採っ
ている。
【0027】
【発明が解決しようとする課題】図15に示すような辞
書の木に登録された各節点の文字列について、内部節点
の文字列も葉の文字列を同じ確率で出現するならば、従
来のように、各辞書番号に対して同一の符号語長を割り
当てていくという方法を採っていても何ら問題はない。
【0028】しかるに、実際には、辞書に登録されるだ
けで使われない葉の文字列もある。また、符号化が進ん
だときに、多くの子供を持つ内部節点の文字列は出にく
くなり、図15中に示すように、全く最長一致文字列と
ならない内部節点の文字列も出てくる。このように、各
文字列の出現頻度は異なっているものである。これか
ら、従来のように、各辞書番号に対して同一の符号語長
を割り当てていたのでは、高いデータ圧縮を実現できな
いという問題点があった。
【0029】本発明はかかる事情に鑑みてなされたもの
であって、動的辞書型に従うユニバーサル符号化構成を
採るときにあって、高いデータ圧縮を実現できる新たな
データ圧縮装置と、そのデータ復元装置の提供を目的と
する。
【0030】
【課題を解決するための手段】図1(イ)に本発明のデ
ータ圧縮装置の原理構成、図1(ロ)にそのデータ復元
装置の原理構成を図示する。
【0031】また、図2(イ)に本発明の他のデータ圧
縮装置の原理構成、図2(ロ)にそのデータ復元装置の
原理構成を図示する。図1(イ)に原理構成を図示する
データ圧縮装置1は、入力データから分解される互いに
異なる文字列を辞書番号とともに格納する辞書10a
と、辞書10aに登録された辞書番号を使用順に並べて
管理する連結リスト11aと、入力データから辞書登録
の最長一致文字列を切り出してそれが持つ辞書番号を検
索する検索手段12aと、検索手段12aの検索する辞
書番号とそれに続く1文字からなる文字列を辞書10a
に登録する登録手段13aと、辞書番号が与えられると
きに連結リスト11a上の登録位置番号を特定する特定
手段14aと、連結リスト11aの辞書番号が使用順に
なるようにと並び変える変更手段15aと、特定手段1
4aの特定する登録位置番号を用いて入力データを符号
化する符号手段16aとを備える。
【0032】図1(ロ)に原理構成を図示するデータ復
元装置2は、復元データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書20aと、辞書2
0aに登録された辞書番号を使用順に並べて管理する連
結リスト21aと、符号語を復号することで連結リスト
21a上の登録位置番号を得る復号手段22aと、復号
手段22aの復号する登録位置番号を用いてデータを復
元する復元手段23aと、連結リスト21aの辞書番号
が使用順になるようにと並び変える変更手段24aと、
復元手段23aの復元する文字列とそれに続く1文字と
からなる文字列を辞書20aに登録する登録手段25a
とを備える。
【0033】図2(イ)に原理構成を図示するデータ圧
縮装置1は、入力データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書10bと、使用さ
れたことのある辞書番号を使用順に並べて管理する連結
リスト11bと、入力データから辞書登録の最長一致文
字列を切り出してそれが持つ辞書番号を検索する検索手
段12bと、検索手段12bの検索する辞書番号とそれ
に続く1文字からなる文字列を辞書10bに登録する登
録手段13bと、辞書番号が与えられるときに連結リス
ト11b上の登録位置番号を特定する特定手段14b
と、連結リスト11bに辞書番号を登録する登録手段1
5bと、連結リスト11bの辞書番号が使用順になるよ
うにと並び変える変更手段16bと、特定手段11bの
特定する登録位置番号を可変長符号化する符号手段17
bと、入力データの符号語を生成して出力する符号手段
18bとを備える。
【0034】図2(ロ)に原理構成を図示するデータ復
元装置2は、復元データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書20bと、使用さ
れたことのある辞書番号を使用順に並べて管理する連結
リスト21bと、符号語に付加される識別符号を参照す
ることで、符号語が辞書番号を表示するものなのか、連
結リスト21b上の登録位置番号を表示するものなのか
を検出する検出手段22bと、検出手段22bにより符
号語が連結リスト21b上の登録位置番号を表示するも
のと検出されるときに、符号語を復号することでその登
録位置番号を得る復号手段23bと、データを復元する
復元手段24bと、連結リスト21bに辞書番号を登録
する登録手段25bと、連結リスト21bの辞書番号が
使用順になるようにと並び変える変更手段26bと、復
元手段24bの復元する文字列とそれに続く1文字とか
らなる文字列を辞書20bに登録する登録手段27bと
を備える。
【0035】
【作用】図1(イ)のデータ圧縮装置1では、登録手段
13aは、文字列/辞書番号を辞書10aに登録すると
きに、その辞書番号を連結リスト11aの例えば最後段
に連結し、一方、変更手段15aは、検索手段12aに
より検索された辞書番号の符号化処理が終了する度毎
に、その辞書番号を連結リスト11aの最前段に連結し
直していくことで、連結リスト11aが辞書10aに登
録された辞書番号を使用順に並べて管理することになる
ように動作する。
【0036】このようにして、連結リスト11aが辞書
10aに登録された辞書番号を使用順に並べて管理する
ときにあって、特定手段14aは、検索手段12aの検
索した辞書番号を管理する連結リスト11a上の登録位
置番号を特定し、符号手段16aは、この特定された登
録位置番号を新しく使用された辞書番号に対応付けられ
るもの程短い符号長となるようにと可変長符号化するこ
とで符号語を生成して出力する。
【0037】このように、図1(イ)のデータ圧縮装置
1は、動的辞書型ジブーレンペル符号やLZW符号等に
従って、入力されたデータを互いに異なる文字列に分解
し、この文字列を辞書番号とともに辞書10aに管理し
ていく構成を採って、入力中のデータを辞書10aに登
録される最長一致文字列の辞書番号を用いて符号化する
構成を採るときにあって、最近使用された使用頻度の高
い辞書番号に対してより短い符号長を割り付けていくこ
とから、使用頻度に応じたデータ圧縮が実現できてデー
タ圧縮の効率を高められるようになる。
【0038】図1(ロ)のデータ復元装置2では、登録
手段25aは、文字列/辞書番号を辞書20aに登録す
るときに、連結リスト21aの例えば最後段にその辞書
番号を連結し、一方、変更手段24aは、復元手段23
aにより辞書番号の復元処理が終了する度毎に、その辞
書番号を連結リスト21aの最前段に連結し直していく
ことで、連結リスト21aが辞書20aに登録された辞
書番号を使用順に並べて管理することになるように動作
する。
【0039】このようにして、連結リスト21aが辞書
20aに登録された辞書番号を使用順に並べて管理する
ときにあって、復号手段22aは、符号語を復号するこ
とで連結リスト21a上の登録位置番号を得て、復元手
段23aは、この得られた登録位置番号に管理される連
結リスト21aの辞書番号を特定して、この特定した辞
書番号の指す文字列を辞書20aから読み出していくこ
とでデータを復元して出力する。
【0040】このように、図1(ロ)のデータ復元装置
2は、図1(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0041】図2(イ)のデータ圧縮装置1では、登録
手段15bは、検索手段12bにより検索されたそれま
でに使用されたことのない辞書番号の符号化処理が終了
するときに、その辞書番号を連結リスト11bの最前段
に連結し、一方、変更手段16bは、検索手段12bに
より検索されたそれまでに使用されたことのある辞書番
号の符号化処理が終了する度毎に、その辞書番号を連結
リスト11bの最前段に連結し直していくことで、連結
リスト11bが使用されたことのある辞書番号を使用順
に並べて管理することになるように動作する。
【0042】このようにして、連結リスト11bが符号
化処理に使用されたことのある辞書番号を使用順に並べ
て管理するときにあって、特定手段14bは、検索手段
12bの検索した辞書番号が連結リスト11bに登録さ
れているか否かを判断して、登録されていると判断する
ときには、その辞書番号を管理する連結リスト11b上
の登録位置番号を特定し、符号手段17bは、この特定
された登録位置番号を新しく使用された辞書番号に対応
付けられるもの程短い符号長となるようにと可変長符号
化することで符号語を生成する。
【0043】そして、出力手段18bは、特定手段14
bにより登録されていないと判断されるときには、符号
化対象の辞書番号をその旨の識別符号を付加しつつその
まま出力するとともに、特定手段14bにより登録され
ていると判断されるときには、符号手段17bの生成す
る符号語をその旨の識別符号を付加しつつ出力する。す
なわち、出力手段18bは、何度も使用される可能性の
ある一度使用されたことのある辞書番号については、連
結リスト11b上の登録位置番号の可変長符号を出力
し、それまでに使用されたことのない辞書番号について
は、その辞書番号をそのまま出力していくよう処理する
のである。
【0044】このように、図2(イ)のデータ圧縮装置
1は、動的辞書型ジブーレンペル符号やLZW符号等に
従って、入力されたデータを互いに異なる文字列に分解
し、この文字列を辞書番号とともに辞書10bに管理し
ていく構成を採って、入力中のデータを辞書10bに登
録される最長一致文字列の辞書番号を用いて符号化する
構成を採るときにあって、一度使用されたことのある辞
書番号を特定して、これらの辞書番号に対して最近使用
された使用頻度の高いもの程短い符号長を割り付けてい
くことから、使用頻度に応じたデータ圧縮が実現できて
データ圧縮の効率を高められるようになる。
【0045】図2(ロ)のデータ復元装置2では、登録
手段25bは、復元手段24bによりそれまでに使用さ
れたことのない辞書番号の復元化処理が終了するとき
に、その辞書番号を連結リスト21bの最前段に連結
し、一方、変更手段26bは、復元手段24bによりそ
れまでに使用されたことのある辞書番号の復元化処理が
終了する度毎に、その辞書番号を連結リスト21bの最
前段に連結し直していくことで、連結リスト21bが使
用されたことのある辞書番号を使用順に並べて管理する
ことになるように動作する。
【0046】このようにして、連結リスト21bが復元
化処理に使用されたことのある辞書番号を使用順に並べ
て管理するときにあって、検出手段22bは、符号語に
付加される識別符号を参照することで、符号語が辞書番
号を表示するものなのか、連結リスト21b上の登録位
置番号を表示するものなのかを検出し、復号手段23b
は、符号語が連結リスト21b上の登録位置番号を表示
するものと検出されるときに、符号語を復号することで
その登録位置番号を復号する。
【0047】そして、復元手段24bは、検出手段22
bにより辞書番号を表示するものと検出されるときに
は、その辞書番号の指す文字列を辞書20bから読み出
して出力するとともに、検出手段22bにより連結リス
ト21b上の登録位置番号を表示するものと検出される
ときには、復号手段23bの復号する登録位置番号に管
理される連結リスト21bの辞書番号を特定して、この
特定した辞書番号の指す文字列を辞書20bから読み出
すことでデータを復元して出力する。
【0048】このように、図2(ロ)のデータ復元装置
2は、図2(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0049】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図1及び図2で説明したように、本発明では、動的
辞書型に従うユニバーサル符号化構成を採るときにあっ
て、辞書番号をそのまま符号化するのではなくて、使用
頻度の高いもの程短い符号長の符号を割り付ける構成を
採ることで、データ圧縮の改善を図るものである。
【0050】この辞書番号変換を実現するために、図1
(イ)のデータ圧縮装置1では、辞書登録された辞書番
号を使用順に並べて管理する連結リスト11a(例え
ば、使用頻度の高いもの程小さな登録位置番号が割り当
てられる)を用意し、検索した最長一致文字列の辞書番
号をこの連結リスト11aの登録位置番号に変換して、
その登録位置番号を可変長符号化することで、使用頻度
の高いもの程短い符号長の符号を割り付ける構成を採る
ものである。
【0051】一方、この辞書番号変換を実現するため
に、図2(イ)のデータ圧縮装置1では、符号化処理に
使用されたことのある辞書番号を使用順に並べて管理す
る連結リスト11b(例えば、使用頻度の高いもの程小
さな登録位置番号が割り当てられる)を用意し、検索し
た最長一致文字列の辞書番号をこの連結リスト11aの
登録位置番号に変換して、その登録位置番号を可変長符
号化することで、使用頻度の高いもの程短い符号長の符
号を割り付ける構成を採るものである。
【0052】すなわち、図1(イ)のデータ圧縮装置1
では、図3に示すように、符号化処理の使用の有無に関
係なく、辞書10aに新たな辞書番号を登録する時点
で、この辞書登録と同期させて、辞書登録する辞書番号
を連結リスト11aの例えば最後段に連結していくとと
もに、最長一致文字列の辞書番号を検索してその符号化
処理が終了する度毎に、その符号化処理に使用した辞書
番号を連結リスト11aの最前段に連結し直していく構
成を採ることで、辞書登録された辞書番号を使用順に並
べて管理する連結リスト11aを用意する構成を採っ
て、検索した最長一致文字列の辞書番号をこの連結リス
ト11aの登録位置番号に変換して、その登録位置番号
を可変長符号化することで、使用頻度の高いもの程短い
符号長の符号を割り付ける構成を採るものである。
【0053】ここで、LZW符号を用いる場合には、入
力データに出現する可能性のある1文字構成の文字を予
め辞書10aに登録する構成を採ることから、この初期
登録する文字の辞書番号を連結リスト11aに初期登録
しておくことになる。
【0054】一方、図2(イ)のデータ圧縮装置1で
は、図4に示すように、辞書登録とは同期させずに、そ
れまでに使用したことのない最長一致文字列の辞書番号
を検索してその符号化処理が終了する時点で、その新規
使用の辞書番号を連結リスト11bの最前段に連結する
とともに、それまでに使用したことのある最長一致文字
列の辞書番号を検索してその符号化処理が終了する度毎
に、その既使用の辞書番号を連結リスト11bの最前段
に連結し直していく構成を採ることで、符号化処理に使
用されたことのある辞書番号を使用順に並べて管理する
連結リスト11bを用意する構成を採って、検索した最
長一致文字列の辞書番号をこの連結リスト11bの登録
位置番号に変換して、その登録位置番号を可変長符号化
することで、使用頻度の高いもの程短い符号長の符号を
割り付ける構成を採るものである。
【0055】ここで、この図2(イ)のデータ圧縮装置
1では、符号語が辞書番号を表示するものであるのか、
連結リスト11b上の登録位置番号を表示するものであ
るのか識別できるようにするために、図5に示すよう
に、符号語の先頭ビットに、どちらであるのかを表示す
る識別フラグを付けることになる。
【0056】図6に、図1(イ)のデータ圧縮装置1の
実行するデータ圧縮処理フローの一実施例、図7に、図
1(ロ)のデータ復元装置2の実行するデータ復元処理
フローの一実施例、図8に、図2(イ)のデータ圧縮装
置1の実行するデータ圧縮処理フローの一実施例、図9
に、図2(ロ)のデータ復元装置2の実行するデータ復
元処理フローの一実施例を図示する。
【0057】次に、これらの処理フローに従って、本発
明のデータ圧縮/データ復元処理について詳細に説明す
る。図1(イ)のデータ圧縮装置1は、図6の処理フロ
ーに示すように、先ず最初に、ステップ1で、入力ファ
イルから圧縮対象の入力データを受け取ると、次に、ス
テップ2で、辞書10aを検索することで、入力データ
から辞書登録の最長一致文字列を切り出して、その最長
一致文字列の持つ辞書番号を特定する。
【0058】続いて、ステップ3で、連結リスト11a
を検索することで、ステップ2で特定した辞書番号の連
結リスト11a上の登録位置番号を特定して、この登録
位置番号を新しく使用された辞書番号に対応付けられる
もの程短い符号長となるようにと可変長符号化して出力
する。
【0059】続いて、ステップ4で、符号化処理に用い
た辞書番号を連結リスト11aの先頭に移動すること
で、連結リスト11aが辞書10aに登録された辞書番
号を使用順に並べて管理するように処理してからステッ
プ1に戻っていく。
【0060】このように、図1(イ)のデータ圧縮装置
1は、動的辞書型ジブーレンペル符号やLZW符号等に
従って、入力されたデータを互いに異なる文字列に分解
し、この文字列を辞書番号とともに辞書10aに管理し
ていく構成を採って、入力中のデータを辞書10aに登
録される最長一致文字列の辞書番号を用いて符号化する
構成を採るときにあって、最近使用された使用頻度の高
い辞書番号に対してより短い符号長を割り付けていくよ
う処理するのである。
【0061】図1(ロ)のデータ復元装置2は、図7の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから復元対象の入力データ(符号語)を受
け取ると、次に、ステップ2で、この符号語を復号する
ことで連結リスト21a上の登録位置番号をデコードす
る。
【0062】続いて、ステップ3で、ステップ2でデコ
ードした登録位置番号に管理される連結リスト21aの
辞書番号を特定して、この辞書番号の指す文字列を辞書
20aから読み出していくことでデータを復元する。
【0063】続いて、ステップ4で、復元処理に用いた
辞書番号を連結リスト21aの先頭に移動することで、
連結リスト21aが辞書20aに登録された辞書番号を
使用順に並べて管理するように処理してからステップ1
に戻っていく。
【0064】このように、図1(ロ)のデータ復元装置
2は、図1(イ)のデータ圧縮装置1の符号化処理の逆
変換処理を実行することで、図1(イ)のデータ圧縮装
置1の生成する符号語を復元していくのである。
【0065】図2(イ)のデータ圧縮装置1は、図8の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから圧縮対象の入力データを受け取ると、
次に、ステップ2で、辞書10bを検索することで、入
力データから辞書登録の最長一致文字列を切り出して、
その最長一致文字列の持つ辞書番号を特定する。
【0066】続いて、ステップ3で、連結リスト11b
を検索することで、ステップ2で特定した辞書番号が連
結リスト11bに登録されているか否かを判断して、登
録されていないと判断するときには、ステップ4に進ん
で、図5で説明した識別フラグに“0”をセットする。
そして、続くステップ5で、ステップ2で特定した辞書
番号をそのまま出力し、続くステップ6で、その辞書番
号を連結リスト11bの先頭に登録することで、連結リ
スト11bが使用されたことのある辞書番号を使用順に
並べて管理するように処理してからステップ1に戻って
いく。
【0067】一方、ステップ3で、ステップ2で特定し
た辞書番号が連結リスト11bに登録されていると判断
するときには、ステップ7に進んで、上述の識別フラグ
に“1”をセットする。そして、続くステップ8で、ス
テップ2で特定した辞書番号の連結リスト11b上の登
録位置番号を特定して、この特定した登録位置番号を新
しく使用された辞書番号に対応付けられるもの程短い符
号長となるようにと可変長符号化して出力し、続くステ
ップ9で、その辞書番号を連結リスト11bの先頭に移
動することで、連結リスト11bが使用されたことのあ
る辞書番号を使用順に並べて管理するように処理してか
らステップ1に戻っていく。
【0068】このように、図2(イ)のデータ圧縮装置
1は、動的辞書型ジブーレンペル符号やLZW符号等に
従って、入力されたデータを互いに異なる文字列に分解
し、この文字列を辞書番号とともに辞書10bに管理し
ていく構成を採って、入力中のデータを辞書10bに登
録される最長一致文字列の辞書番号を用いて符号化する
構成を採るときにあって、一度使用されたことのある辞
書番号を特定して、これらの辞書番号に対して最近使用
された使用頻度の高いもの程短い符号長を割り付けてい
くよう処理するのである。
【0069】図2(ロ)のデータ復元装置2は、図9の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから復元対象の入力データ(符号語)を受
け取ると、次に、ステップ2で、この符号語に付加され
る上述の識別フラグに“0”がセットされているか否か
を判断する。
【0070】このステップ2の判断で識別フラグに
“0”がセットされていると判断するときには、ステッ
プ3に進んで、符号語である辞書番号の指す文字列を辞
書20bから読み出していくことでデータを復元する。
そして、続くステップ4で、この辞書番号を連結リスト
21bの先頭に登録することで、連結リスト21bが使
用されたことのある辞書番号を使用順に並べて管理する
ように処理してからステップ1に戻っていく。
【0071】一方、ステップ2の判断で識別フラグに
“1”がセットされていると判断するときには、ステッ
プ5に進んで、符号語を復号することで連結リスト20
b上の登録位置番号をデコードし、続くステップ6で、
この登録位置番号に管理される連結リスト20bの辞書
番号を特定して、この辞書番号の指す文字列を辞書20
bから読み出していくことでデータを復元する。そし
て、続くステップ7で、この辞書番号を連結リスト21
bの先頭に移動することで、連結リスト21bが使用さ
れたことのある辞書番号を使用順に並べて管理するよう
に処理してからステップ1に戻っていく。
【0072】このように、図2(ロ)のデータ復元装置
2は、図2(イ)のデータ圧縮装置1の符号化処理の逆
変換処理を実行することで、図2(イ)のデータ圧縮装
置1の生成する符号語を復元していくのである。
【0073】
【発明の効果】以上説明したように、本発明のデータ圧
縮装置によれば、動的辞書型ジブーレンペル符号やLZ
W符号等に従って、入力されたデータを互いに異なる文
字列に分解し、この文字列を辞書番号とともに辞書に管
理していく構成を採って、入力中のデータを辞書に登録
される最長一致文字列の辞書番号を用いて符号化する構
成を採るときにあって、使用頻度に応じたデータ圧縮を
実現できるようになることから、データ圧縮の効率を高
められるようになる。
【0074】そして、本発明のデータ復元装置を用いる
ことで、この本発明のデータ圧縮装置の生成する符号語
を復元することができるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の原理構成図である。
【図3】本発明の符号化処理の説明図である。
【図4】本発明の符号化処理の説明図である。
【図5】識別フラグの説明図である。
【図6】本発明のデータ圧縮装置の実行する処理フロー
の一実施例である。
【図7】本発明のデータ復元装置の実行する処理フロー
の一実施例である。
【図8】本発明のデータ圧縮装置の実行する処理フロー
の一実施例である。
【図9】本発明のデータ復元装置の実行する処理フロー
の一実施例である。
【図10】LZW符号によるデータ符号化処理の説明図
である。
【図11】LZW符号によるデータ復元化処理の説明図
である。
【図12】LZW符号によるデータ符号化処理の説明図
である。
【図13】LZW符号における辞書登録構成の説明図で
ある。
【図14】LZW符号によるデータ復元化処理の説明図
である。
【図15】辞書の木の説明図である。
【符号の説明】
1 データ圧縮装置 2 データ復元装置 10a 辞書 11a 連結リスト 12a 検索手段 13a 登録手段 14a 特定手段 15a 変更手段 16a 符号手段 20a 辞書 21a 連結リスト 22a 復号手段 23a 復元手段 24a 変更手段 25a 登録手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 入力されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理して
    いく構成を採って、入力中のデータを辞書登録の最長一
    致文字列の辞書番号を用いて符号化する構成を採るデー
    タ圧縮装置において、 辞書登録された辞書番号を使用順に並べて管理する連結
    リスト(11a) と、 符号化対象となる最長一致文字列の辞書番号が検索され
    るときに、該辞書番号を管理する上記連結リスト(11a)
    上の登録位置番号を特定する特定手段(14a) と、 上記特定手段(14a) の特定する登録位置番号を、新しく
    使用された辞書番号に対応付けられるもの程短い符号長
    となるようにと可変長符号化して出力する符号手段(16
    a) とを備えることを、 特徴とするデータ圧縮装置。
  2. 【請求項2】 復元されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号語の指定する辞書番号から該辞書中の対応する
    文字列を特定していく構成を採って、入力中の符号語を
    この特定する文字列に置き換えていくことで復元化する
    構成を採るデータ復元装置において、 辞書登録された辞書番号を使用順に並べて管理する連結
    リスト(21a) と、 符号語を復号することで上記連結リスト(21a) 上の登録
    位置番号を得る復号手段(22a) と、 上記復号手段(22a) により復号される登録位置番号の指
    す上記連結リスト(21a) の辞書番号を特定して、この特
    定した辞書番号の指す辞書中の文字列を検索して出力す
    る復元手段(23a) とを備えることを、 特徴とするデータ復元装置。
  3. 【請求項3】 入力されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理して
    いく構成を採って、入力中のデータを辞書登録の最長一
    致文字列の辞書番号を用いて符号化する構成を採るデー
    タ圧縮装置において、 使用されたことのある辞書番号を使用順に並べて管理す
    る連結リスト(11b) と、 符号化対象となる最長一致文字列の辞書番号が検索され
    るときに、該辞書番号が上記連結リスト(11b) に登録さ
    れているか否かを判断するとともに、登録されていると
    判断するときには、該辞書番号を管理する上記連結リス
    ト(11b) 上の登録位置番号を特定する特定手段(14b)
    と、 上記特定手段(14b) の特定する登録位置番号を、新しく
    使用された辞書番号に対応付けられるもの程短い符号長
    となるようにと可変長符号化して出力する符号手段(17
    b) と、 上記特定手段(14b) により登録されていないと判断され
    るときには、符号化対象の辞書番号をその旨の識別符号
    を付加しつつ出力するとともに、上記特定手段(14b) に
    より登録されていると判断されるときには、上記符号手
    段(17b) の生成する符号をその旨の識別符号を付加しつ
    つ出力する出力手段(18b) とを備えることを、 特徴とするデータ圧縮装置。
  4. 【請求項4】 復元されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号語の指定する辞書番号から該辞書中の対応する
    文字列を特定していく構成を採って、入力中の符号語を
    この特定する文字列に置き換えていくことで復元化する
    構成を採るデータ復元装置において、 使用されたことのある辞書番号を使用順に並べて管理す
    る連結リスト(21b) と、 符号語に付加される識別符号を参照することで、該符号
    語が辞書番号を表示するものなのか、上記連結リスト(2
    1b) 上の登録位置番号を表示するものなのかを検出する
    検出手段(22b) と、 上記検出手段(22b) により登録位置番号を表示するもの
    と検出されるときに、符号語を復号することで該登録位
    置番号を復号する復号手段(23b) と、 上記検出手段(22b) により辞書番号を表示するものと検
    出されるときには、該辞書番号の指す辞書中の文字列を
    検索して出力するとともに、上記検出手段(22b) により
    登録位置番号を表示するものと検出されるときには、上
    記復号手段(23b) の復号する登録位置番号の指す上記連
    結リスト(21b) の辞書番号を特定して、この特定した辞
    書番号の指す辞書中の文字列を検索して出力する復元手
    段(24b)とを備えることを、 特徴とするデータ復元装置。
JP6002793A 1993-03-19 1993-03-19 データ圧縮装置及びデータ復元装置 Withdrawn JPH06274311A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6002793A JPH06274311A (ja) 1993-03-19 1993-03-19 データ圧縮装置及びデータ復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6002793A JPH06274311A (ja) 1993-03-19 1993-03-19 データ圧縮装置及びデータ復元装置

Publications (1)

Publication Number Publication Date
JPH06274311A true JPH06274311A (ja) 1994-09-30

Family

ID=13130184

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6002793A Withdrawn JPH06274311A (ja) 1993-03-19 1993-03-19 データ圧縮装置及びデータ復元装置

Country Status (1)

Country Link
JP (1) JPH06274311A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333341A (ja) * 2002-04-25 2003-11-21 Microsoft Corp インククラスタの明示的な表現を用いた2レベルイメージの圧縮
JP2006270324A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd 符号化装置、データ処理装置、復号化装置、符号化方法、復号化方法、及びプログラム
JP2012054835A (ja) * 2010-09-02 2012-03-15 Fujitsu Ltd 圧縮装置、圧縮方法、圧縮プログラムおよび復元装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003333341A (ja) * 2002-04-25 2003-11-21 Microsoft Corp インククラスタの明示的な表現を用いた2レベルイメージの圧縮
JP2006270324A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd 符号化装置、データ処理装置、復号化装置、符号化方法、復号化方法、及びプログラム
JP2012054835A (ja) * 2010-09-02 2012-03-15 Fujitsu Ltd 圧縮装置、圧縮方法、圧縮プログラムおよび復元装置

Similar Documents

Publication Publication Date Title
WO2019153700A1 (zh) 编解码方法、装置及编解码设备
KR100527891B1 (ko) 허프만 디코딩을 수행하는 방법
JP2001357048A (ja) ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法
JP3241788B2 (ja) データ圧縮方式
JPS59231683A (ja) データ圧縮方法
JPH06168096A (ja) データ符号化方式及びデータ復元方式
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JPH10261969A (ja) データ圧縮方法および装置
JP3241787B2 (ja) データ圧縮方式
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JP3242795B2 (ja) データ処理装置及びデータ処理方法
JP3130324B2 (ja) データ圧縮方式
JPH05152971A (ja) データ圧縮・復元方法
JP2774350B2 (ja) データ圧縮方法および圧縮データのデータ復元方法
US6819272B2 (en) System, method and computer readable medium for compressing a data sequence for partial decompressing
JPH09232967A (ja) データ圧縮装置及び復元装置
JP3088740B2 (ja) データ圧縮及び復元方式
JP3384844B2 (ja) データ圧縮方法および装置並びにデータ復元方法および装置
Klein et al. Parallel Lempel Ziv Coding
JP3236747B2 (ja) データ伸長方式
JPH06291677A (ja) データ圧縮装置及びデータ復元装置
JPH02190080A (ja) 画像符号化装置
JPH04167821A (ja) データ符号化及び復号化方法
JP3100206B2 (ja) データ圧縮方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20000530