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

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

Info

Publication number
JPH06291677A
JPH06291677A JP7654293A JP7654293A JPH06291677A JP H06291677 A JPH06291677 A JP H06291677A JP 7654293 A JP7654293 A JP 7654293A JP 7654293 A JP7654293 A JP 7654293A JP H06291677 A JPH06291677 A JP H06291677A
Authority
JP
Japan
Prior art keywords
dictionary
character string
code
data
longest matching
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
JP7654293A
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 JP7654293A priority Critical patent/JPH06291677A/ja
Publication of JPH06291677A publication Critical patent/JPH06291677A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】本発明は、ユニバーサル符号によるデータ圧縮
装置と、そのデータ復元装置に関し、特に、動的辞書型
に従うユニバーサル符号化構成を採るときにあって、高
いデータ圧縮を実現できるようにすることを目的とす
る。 【構成】検索された辞書登録の最長一致文字列か、その
最長一致文字列の辞書番号の内の短い方を符号として設
定していくことを基本構成にして、この両者の識別のた
めに用意する識別フラグによりデータ圧縮効果が実現で
きないときには、辞書番号のみの符号を用いたり、文字
列のみをそのまま符号として用いる構成を採ったり、識
別フラグの集合を可変長符号化する構成を採ったり、最
長一致文字列を可変長符号化する構成を採る。

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】図20に、LZW符号による符号化処理の
処理フロー、図21に、LZW符号による復元化処理の
処理フローを図示する。LZW符号によるデータ符号化
処理を実行する場合には、図20の処理フローに示すよ
うに、先ず最初に、ステップ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】図22に従って、この処理フローによる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】以下同様の処理を繰り返していくことで、
図22に示すような符号化が実行されていくことにな
る。図23に、このときの辞書登録構成を図示する。一
方、LZW符号によるデータ復元化処理を実行する場合
には、図21の処理フローに示すように、先ず最初に、
ステップ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】図24に従って、この処理フローによる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】以下同様の処理を繰り返していくことで、
図24に示すような符号化が実行されていくことになる
が、入力データの第6番目の符号8が読み出されるとき
には、符号8はこの復元時には辞書に登録されていな
い。これから、ステップ9の処理に従って例外処理が実
行されて、前回処理した符号5に前回復元した文字列b
aの先頭文字bを加えた文字列5bが求められ、これを
復元していくことで符号8の指す文字列babが求めら
れて出力されるとともに、前回処理した符号5に今回復
元した文字列の先頭文字bを加えた文字列5bが参照番
号8とともに辞書に登録されることになるのである。
【0026】この構成を採るときにあって、従来の動的
辞書型ジブーレンペル符号やLZW符号では、辞書番号
をそのまま用いていくという構成を採っている。
【0027】
【発明が解決しようとする課題】しかしながら、このよ
うな従来技術に従っていると、辞書番号を符号とするよ
りも生文字をそのまま符号とする方がデータ圧縮を実現
できるにもかかわらず、必ず辞書番号を符号とするとい
う不都合が発生する。すなわち、従来技術に従っている
と、辞書に登録される文字列数が多くなることで辞書番
号を表すのに長いビット長が必要になり、辞書番号を表
すよりも少ないビット長で表現可能な最長一致文字列が
検索されるときでも、長いビット長の辞書番号を用いて
いくという不都合が生ずるのである。
【0028】このような不都合を解決するために、本出
願人は、先に出願の特願平3-275293 号(発明の名称:
データ圧縮符号化及び復号化方式)で、生文字の方がデ
ータ圧縮を実現できる場合には、辞書番号ではなくて生
文字をそのまま符号として用いていくという発明を開示
した。
【0029】この発明では、初期登録の単一文字を8ビ
ットで想定するLZW符号で説明するならば、図20に
示した処理フローのステップ4とステップ7との間と、
ステップ6とステップ8との間とに、図25に示す処理
を挿入し、図21に示した処理フローのステップ3の一
部として、図26に示す処理を挿入することで、生文字
の方がデータ圧縮を実現できる場合には、辞書番号では
なくて生文字をそのまま符号として用いていくという構
成を開示したのである。
【0030】すなわち、符号化する場合には、図25に
示すように、参照番号ωが8ビットの最大値“256”
よりも小さいか否かを判断して、“256”よりも小さ
いと判断するとき、従って、「参照番号=生文字」と判
断するときには、先頭に識別フラグの“1”を付加する
ことで9ビットに設定して、この設定した9ビットで表
した参照番号(=生文字)をそのまま出力し、一方、
“256”よりも大きいと判断するときには、参照番号
を表現可能とするlog2Nビットに識別フラグの“0”を
付加したビット長を設定して、この設定したビット長で
表した参照番号を出力していくよう処理する。図27
に、このときの出力形態を図示する。
【0031】そして、復元する場合には、図26に示す
ように、読み込んだ符号の識別フラグが“1”であるの
か“0”であるのかを判断して、“1”と判断するとき
には、符号が生文字であることから、符号語の切り出し
長を9ビットに設定して、この設定した9ビットでもっ
て生文字を切り出し、一方、“0”と判断するときに
は、符号が参照番号であることから、符号の切り出し長
を(log2N+1)ビットに設定して、この設定した(lo
g2N+1)ビットでもって辞書番号を切り出していくよ
う処理する。
【0032】このようにして、先に出願の発明は、生文
字の方がデータ圧縮を実現できる場合には、辞書番号で
はなくて生文字をそのまま符号として用いていくという
構成を採ることで、データ圧縮の改善を図るものであ
る。そして、この先の出願では、更に、辞書の登録個数
が増加すると8ビットの単一文字の出現の可能性が少な
くなることから、辞書登録個数が規定数以上となるとき
には常に辞書番号を出力していく構成を採るという発明
についても開示した。
【0033】しかるに、この先の出願の発明を用いる
と、識別フラグを付加することで冗長性が増すことにな
るが、この先の出願では、この冗長性を削減するための
積極的な構成を開示していない。これから、データ圧縮
の改善に余地が残されていることになる。
【0034】本発明はかかる事情に鑑みてなされたもの
であって、この先の出願の発明を一歩進めることで、動
的辞書型に従うユニバーサル符号化構成を採るときにあ
って、更に高いデータ圧縮を実現できる新たなデータ圧
縮装置と、そのデータ復元装置の提供を目的とする。
【0035】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。図1(イ)に本発明のデータ圧縮装置の原
理構成、図1(ロ)にそのデータ復元装置の原理構成を
図示する。
【0036】また、図2(イ)に本発明の他のデータ圧
縮装置の原理構成、図2(ロ)にそのデータ復元装置の
原理構成を図示する。また、図3(イ)に本発明の他の
データ圧縮装置の原理構成、図3(ロ)にそのデータ復
元装置の原理構成を図示する。
【0037】図1(イ)に原理構成を図示するデータ圧
縮装置1は、入力データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書10aと、規定量
の入力データを格納するバッファ手段11aと、バッフ
ァ手段11aに格納される入力データから辞書登録の最
長一致文字列を切り出してそれが持つ辞書番号を検索す
る検索手段12aと、検索手段12aの検索する最長一
致文字列対応に、最長一致文字列長か辞書番号のいずれ
が短いのかを判断する判断手段13aと、判断手段13
aの判断結果を参照しつつ、有利となる符号化形態モー
ドを判定する判定手段14aと、判定手段14aの指示
する符号化形態モードに従って、バッファ手段11aに
格納される入力データを符号化して出力する出力手段1
5aと、検索手段12aの検索する最長一致文字列とそ
れに続く1文字からなる文字列を辞書10aに登録する
登録手段16aとを備える。
【0038】図1(ロ)に原理構成を図示するデータ復
元装置2は、復元データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書30aと、制御符
号を参照することで符号化形態モードを検出する検出手
段31aと、検出手段31aの検出結果に応じて符号を
復元する復元手段32aと、復元手段32aの復元する
文字列とそれに続く1文字とからなる文字列を辞書30
aに登録する登録手段33aとを備える。
【0039】図2(イ)に原理構成を図示するデータ圧
縮装置1は、入力データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書10bと、入力デ
ータから辞書登録の最長一致文字列を切り出してそれが
持つ辞書番号を検索する検索手段12bと、検索手段1
2bの検索する最長一致文字列対応に、最長一致文字列
長か辞書番号のいずれが短いのかを判断する判断手段1
3bと、判断手段13bの判断結果を参照しつつ、有利
となる符号化形態モードを判定する判定手段14bと、
判定手段14bの指示する符号化形態モードに従って、
入力データを符号化して出力する出力手段15bと、検
索手段12bの検索する最長一致文字列とそれに続く1
文字からなる文字列を辞書10bに登録する登録手段1
6bとを備える。
【0040】図2(ロ)に原理構成を図示するデータ復
元装置2は、復元データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書30bと、制御符
号を参照することで符号化形態モードを検出する検出手
段31bと、検出手段31bの検出結果に応じて符号を
復元する復元手段32bと、復元手段32bの復元する
文字列とそれに続く1文字とからなる文字列を辞書30
bに登録する登録手段33bとを備える。
【0041】図3(イ)に原理構成を図示するデータ圧
縮装置1は、入力データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書10cと、入力デ
ータから辞書登録の最長一致文字列を切り出してそれが
持つ辞書番号を検索する検索手段12cと、符号や各種
情報を外部に出力する出力手段15cと、検索手段12
cの検索する最長一致文字列とそれに続く1文字からな
る文字列を辞書10cに登録する登録手段16cと、最
長一致文字列か辞書番号のいずれか一方を符号として設
定する設定手段17cと、設定手段17cの設定する複
数の符号に識別フラグを割り付ける割付手段18cと、
割付手段18cの割り付ける識別フラグを可変長符号化
する符号手段19cと、符号手段19cの可変長符号化
処理に用いられる符号化データを管理する符号化テーブ
ル20cと、符号化テーブル20cの符号化データを更
新する更新手段21cと、設定手段17cにより符号と
して設定される最長一致文字列を可変長符号化する符号
手段22cと、符号手段22cの可変長符号化処理に用
いられる符号化データを管理する符号化テーブル23c
と、符号化テーブル23cの符号化データを更新する更
新手段24cとを備える。
【0042】図3(ロ)に原理構成を図示するデータ復
元装置2は、復元データから分解される互いに異なる文
字列を辞書番号とともに格納する辞書30cと、符号が
最長一致文字列を表示するのか、辞書番号を表示するの
かを検出する検出手段31cと、検出手段31cの検出
結果に応じて符号を復元する復元手段32cと、復元手
段32cの復元する文字列とそれに続く1文字とからな
る文字列を辞書30cに登録する登録手段33cと、検
出手段31cや復元手段32cの実行する可変長符号化
逆変換処理に用いられる復号化データを管理する復号化
テーブル34cと、復号化テーブル34cの復号化デー
タを更新する更新手段35cとを備える。
【0043】
【作用】図1(イ)のデータ圧縮装置1では、判断手段
13aが最長一致文字列長か辞書番号長のいずれが短い
のかを判断していくときにあって、判定手段14aは、
例えば、最長一致文字列長の方が短いと判断される判断
回数が規定値以下であるときには、辞書番号のみを使用
する単一モードの符号化形態を有利と判定し、一方、最
長一致文字列長の方が短いと判断される判断回数が規定
値以上のときには、最長一致文字列と辞書番号の内の短
い方を使用する混在モードの符号化形態を有利と判定し
たり、バッファ手段11aの入力データを辞書番号のみ
で符号化するときのビット数と、最長一致文字列と辞書
番号の内の短い方で符号化するときのビット数とを求め
て、前者のビット数が後者のビット数よりも小さいと判
定するときには、辞書番号のみを使用する単一モードの
符号化形態を有利と判定し、一方、前者のビット数が後
者のビット数よりも大きいと判定するときに、最長一致
文字列と辞書番号の内の短い方を使用する混在モードの
符号化形態を有利と判定する。
【0044】この判定結果を受けて、出力手段15a
は、バッファ手段11aの格納する入力データに対して
の符号として、判定手段14aが単一モードの符号化形
態を有利と判定するときには、その旨の制御符号を付加
しつつ辞書番号のみを出力し、一方、判定手段14aが
混在モードの符号化形態を有利と判定するときには、そ
の旨の制御符号を付加しつつ最長一致文字列と辞書番号
の内の短い方を識別フラグとともに出力する。
【0045】このように、図1(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
するときには識別フラグを付加しなければならないとい
う点を考慮して、バッファ手段11aに格納される入力
データが、この識別フラグによる符号長の増加があって
もデータ圧縮を実現できるというデータ状態にあるとき
には、最長一致文字列と辞書番号の内の短い方を使用す
る混在モードに従って符号を生成し、一方、実現できな
いというデータ状態にあるときには、辞書番号のみを使
用する本来の単一モードに従って符号を生成する構成を
採るのである。これにより、高いデータ圧縮を実現でき
ることになる。
【0046】図1(ロ)のデータ復元装置2では、検出
手段31aは、制御符号を参照することで、その制御符
号に対応付けられる符号の符号化形態が辞書番号のみを
使用する単一モードの符号化形態を表示するものなの
か、最長一致文字列と辞書番号の内の短い方を使用する
混在モードの符号化形態を表示するものなのかを検出す
る。
【0047】この検出結果を受けて、復元手段32a
は、検出手段31aにより単一モードの符号化形態を表
示するものと検出されるときには、符号の表示する辞書
番号の指す辞書中の文字列を検索して出力し、一方、検
出手段31aにより混在モードの符号化形態を表示する
ものと検出されるときには、付加される識別フラグによ
り最長一致文字列と判断される符号については、そのま
ま出力するとともに、付加される識別フラグにより辞書
番号と判断される符号については、その辞書番号の指す
辞書中の文字列を検索して出力していくことでデータを
復元する。
【0048】このように、図1(ロ)のデータ復元装置
2は、図1(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0049】図2(イ)のデータ圧縮装置1では、判断
手段13bが最長一致文字列長か辞書番号長のいずれが
短いのかを判断していくときにあって、判定手段14b
は、例えば、辞書番号の方が短いと判断されることが規
定回数連続する場合には、辞書番号のみを使用する辞書
番号単一モードの符号化形態を有利と判定し、一方、最
長一致文字列の方が短いと判断されることが規定回数連
続する場合には、文字列のみを使用する文字列単一モー
ドの符号化形態を有利と判定し、一方、これらの連続状
態が発生しない場合には、最長一致文字列と辞書番号の
内の短い方を使用する混在モードの符号化形態を有利と
判定する。この判定結果を受けて、出力手段15bは、
入力データに対しての符号として、判定手段14bが辞
書番号単一モードの符号化形態を有利と判定するときに
は、その旨の制御符号を付加しつつ規定期間の間は辞書
番号のみを出力し、一方、判定手段14bが文字列単一
モードの符号化形態を有利と判定するときには、その旨
の制御符号を付加しつつ規定期間の間は文字列のみを出
力し、一方、判定手段14bが混在モードの符号化形態
を有利と判定するときには、最長一致文字列と辞書番号
の内の短い方を識別フラグとともに出力する。ここで、
判定手段14bが固定的な規定回数の連続性をもって符
号化形態を判定していく構成を採る場合には、データ復
元装置2の側でも辞書番号単一モード/文字列単一モー
ドに入ることを自動認識することが可能であることか
ら、この制御符号の付加を省略することができる。
【0050】このように、図2(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
するときには識別フラグを付加しなければならないとい
う点を考慮して、入力データの符号として辞書番号が連
続して選択されるようなときには、それから以降の規定
期間の間は、辞書番号単一モードの符号化形態に従って
識別フラグを付加せずに辞書番号のみの符号を生成し、
一方、入力データの符号として最長一致文字列が連続し
て選択されるようなときには、それから以降の規定期間
の間は、文字列単一モードの符号化形態に従って識別フ
ラグを付加せずに文字列のみの符号を生成し、一方、入
力データの符号して辞書番号と最長一致文字列の双方が
連続して選択されないようなときには、混在モードの符
号化形態に従って識別フラグを付加しつつ最長一致文字
列か辞書番号の符号を生成する構成を採るものである。
これにより、高いデータ圧縮を実現できることになる。
【0051】図2(ロ)のデータ復元装置2では、検出
手段31bは、符号を参照することで、その符号に対応
付けられる符号の符号形態が辞書番号のみを使用する辞
書番号単一モードの符号化形態を表示するものなのか、
文字列のみを使用する文字列単一モードの符号化形態を
表示するものなのか、最長一致文字列と辞書番号の内の
短い方を使用する混在モードの符号化形態を表示するも
のなのか検出する。
【0052】この検出結果を受けて、復元手段32b
は、検出手段31bにより辞書番号単一モードの符号化
形態を表示するものと検出されるときには、符号の表示
する辞書番号の指す辞書中の文字列を検索して出力し、
一方、検出手段31bにより文字列単一モードの符号化
形態を表示するものと検出されるときには、符号の表示
する文字列をそのまま出力し、一方、検出手段31bに
より混在モードの符号化形態を表示するものと検出され
るときには、付加される識別フラグにより最長一致文字
列と判断される符号については、そのまま出力するとと
もに、付加される識別フラグにより辞書番号と判断され
る符号については、その辞書番号の指す辞書中の文字列
を検索して出力する。
【0053】このように、図2(ロ)のデータ復元装置
2は、図2(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0054】図3(イ)のデータ圧縮装置1では、設定
手段17cが最長一致文字列長か辞書番号長のいずれが
短いのかを判断して、文字列長の方が短いと判断すると
きには最長一致文字列を符号として設定し、辞書番号長
の方が短いと判断するときには辞書番号を符号として設
定していくときにあって、割付手段18cは、設定手段
17cの設定する複数の符号に対応付けて、符号が最長
一致文字列か辞書番号のいずれに属するのかを表示する
識別フラグ群を割り付け、符号手段19cは、符号化テ
ーブル20cの符号化データを参照しつつ、この割り付
けられた識別フラグ群を出現頻度の高いもの程短い符号
長となるようにと可変長符号化する。そして、出力手段
15cは、符号手段19cの生成する可変長符号を設定
手段17cの設定する複数の符号の先頭に対応付けて出
力していく。
【0055】このとき、符号手段22cは、符号化テー
ブル23cの符号化データを参照しつつ、設定手段17
cの設定する最長一致文字列を出現頻度の高いもの程短
い符号長となるようにと可変長符号化することがあり、
また、更新手段21cは、復元側と同期をとりつつ、あ
るいは非同期でもって識別フラグ群の出現確率を測定す
ることで、符号化テーブル20cの符号化データを動的
に書き換えていくことがあり、また、更新手段24c
は、復元側と同期をとりつつ、あるいは非同期でもって
最長一致文字列の出現確率を測定することで、符号化テ
ーブル23cの符号化データを動的に書き換えていくこ
とがあり、また、出力手段15cは、復元側と非同期で
もって符号化テーブル20c,23cの符号化データが
動的に書き換えられるときにあって、復元側のために、
符号化テーブル20c,23cの更新情報を出力するこ
とがある。
【0056】あるいは、図3(イ)のデータ圧縮装置1
では、設定手段17cが最長一致文字列長か辞書番号長
のいずれが短いのかを判断して、識別フラグを割り付け
つつ、文字列長の方が短いと判断するときには最長一致
文字列を符号として設定し、辞書番号長の方が短いと判
断するときには辞書番号を符号として設定していくとき
にあって、符号手段22cは、符号化テーブル23cの
符号化データを参照しつつ、設定手段17cの設定する
最長一致文字列を出現頻度の高いもの程短い符号長とな
るようにと可変長符号化する。そして、出力手段15c
は、符号手段22cの生成する可変長符号を設定手段1
7cの設定する最長一致文字列の代わりに出力してい
く。
【0057】このとき、更新手段24cは、復元側と同
期をとりつつ、あるいは非同期でもって最長一致文字列
の出現確率を測定することで、符号化テーブル23cの
符号化データを動的に書き換えていくことがあり、ま
た、出力手段15cは、復元側と非同期でもって符号化
テーブル23cの符号化データが動的に書き換えられる
ときにあって、復元側のために、符号化テーブル23c
の更新情報を出力することがある。
【0058】このようにして、図3(イ)のデータ圧縮
装置1では、最長一致文字列と辞書番号の内の短い方で
符号化するときにあって、この2種類の識別のために用
意する識別フラグのデータ圧縮を実現する構成を採った
り、最長一致文字列と辞書番号の内の短い方で符号化す
るときにあって、この最長一致文字列のデータ圧縮を実
現する構成を採るのである。
【0059】図3(ロ)のデータ復元装置2では、検出
手段31cは、可変長符号化されている符号を復号する
ことで識別フラグ群を得ていくことで、対応付けられる
符号が最長一致文字列を表示するのか、辞書番号を表示
するのかを検出し、この検出結果を受けて、復元手段3
2cは、検出手段31cにより最長一致文字列を表示す
るものと検出される符号については、その最長一致文字
列をそのまま出力し、一方、検出手段31cにより辞書
番号を表示するものと検出される符号については、その
辞書番号の指す辞書中の文字列を検索して出力する。
【0060】このとき、復元手段32cは、符号の最長
一致文字列が可変長符号化されているときには、逆変換
を実行することで最長一致文字列を復元していくことが
あり、また、更新手段35cは、圧縮側と同期をとりつ
つ、識別フラグ群や最長一致文字列の出現確率を測定す
ることで、検出手段31cや復元手段32cの用いる復
号化テーブル34cの復号化データを動的に書き換えて
いったり、圧縮側からの更新情報に従って復元化テーブ
ル34cの復号化データを動的に書き換えていくことが
ある。
【0061】あるいは、図3(ロ)のデータ復元装置2
では、識別フラグを参照することで、対応付けられる符
号が可変長符号化されている最長一致文字列を表示する
のか、辞書番号を表示するのかを検出し、この検出結果
を受けて、復元手段32cは、検出手段31cにより可
変長符号化されている最長一致文字列を表示するものと
検出される符号については、この可変長符号化の逆変換
を実行することで最長一致文字列を復元して出力し、一
方、検出手段31cにより辞書番号を表示するものと検
出される符号については、その辞書番号の指す辞書中の
文字列を検索して出力する。
【0062】このとき、更新手段35cは、圧縮側と同
期をとりつつ、最長一致文字列の出現確率を測定するこ
とで、復元手段32cの用いる復号化テーブル34cの
復号化データを動的に書き換えていったり、圧縮側から
の更新情報に従って復号化テーブル34cの復号化デー
タを動的に書き換えていくことがある。
【0063】このように、図3(ロ)のデータ復元装置
2は、図3(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0064】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図4に、図1(イ)のデータ圧縮装置1の実行する
データ圧縮処理フローの一実施例、図5に、図1(ロ)
のデータ復元装置2の実行するデータ復元処理フローの
一実施例を図示する。
【0065】次に、これらの処理フローに従って、この
データ圧縮装置1の実行するデータ圧縮処理と、このデ
ータ復元装置2の実行するデータ復元処理について詳細
に説明する。
【0066】図1(イ)のデータ圧縮装置1は、図4の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから圧縮対象の入力データを受け取って中
間バッファに格納すると、次に、ステップ2で、辞書1
0aを検索することで、中間バッファの格納データから
辞書登録の最長一致文字列を切り出して、その最長一致
文字列の持つ辞書番号を特定する。
【0067】続いて、ステップ3で、ステップ2の符号
化処理で得られた最長一致文字列/辞書番号の関係を用
いて、最長一致文字列長の方が辞書番号長よりも短くな
るケース数を計数する。すなわち、生文字の方が有利と
なるデータ数を計数するのである。続いて、ステップ4
で、ステップ3の検出したケース数が規定値以下の場合
には、辞書番号のみを使用する単一モードの符号化形態
を選択し、ステップ3の検出したケース数が規定値以上
の場合には、最長一致文字列と辞書番号の内の短い方を
使用する混在モードの符号化形態を選択することで、中
間バッファの格納データの符号化形態を選択する。
【0068】続いて、ステップ5で、ステップ4で選択
したモード種別を表示するモード符号を出力し、続くス
テップ6で、これに続けて、ステップ4で選択した符号
化形態に従って符号語を出力してから、ステップ1に戻
っていく。すなわち、このステップ6では、図6に示す
ように、ステップ4で選択したモードが単一モードであ
るときには、識別フラグを付けずに辞書番号のみを出力
し、一方、ステップ4で選択したモードが混在モードで
あるときには、識別フラグを付けつつ最長一致文字列と
辞書番号の内の短い方を出力するのである。
【0069】この図4の処理フローでは、ステップ4
で、最長一致文字列の方が辞書番号よりも有利とする発
生頻度を使ってモードを選択する構成を開示したが、単
一モードで符号化するビット数と、混在モードで符号化
するビット数とを求めて、前者のビット数が後者のビッ
ト数よりも小さいと判定するときには、単一モードを選
択し、前者のビット数が後者のビット数よりも大きいと
判定するときに、混在モードを選択する方法を採ること
も可能である。
【0070】このように、図1(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
する構成を採るときにあって、両者を区別するための識
別フラグによりデータ圧縮効果を実現できない場合に
は、単一モードに従って識別フラグを付けずに辞書番号
のみを出力していく構成を採るものである。
【0071】図1(ロ)のデータ復元装置2は、図5の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから復元対象の入力データ(符号語)を受
け取って中間バッファに格納すると、次にステップ2
で、受け取ったモード符号をデコードすることで、符号
化形態が単一モードに設定されているのか、混在モード
に設定されているのかを検出する。
【0072】続いて、ステップ3で、ステップ2で検出
されたモードに従って、モード符号に続く中間バッファ
の格納符号を復号化する。すなわち、ステップ2で単一
モードであると検出されるときには、符号の表示する辞
書番号の指す文字列を辞書20aから読み出し、一方、
ステップ2で混在モードであると検出されるときには、
識別フラグにより最長一致文字列と判断される符号につ
いては、そのままとするとともに、識別フラグにより辞
書番号と判断される符号については、その辞書番号の指
す文字列を辞書20aから読み出すのである。続いて、
ステップ4で、ステップ3で復号化したデータを出力し
てステップ1に戻っていく。
【0073】このように、図1(ロ)のデータ復元装置
2は、図1(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0074】図7に、図2(イ)のデータ圧縮装置1の
実行するデータ圧縮処理フローの一実施例、図8に、図
2(ロ)のデータ復元装置2の実行するデータ復元処理
フローの一実施例を図示する。
【0075】次に、これらの処理フローに従って、この
データ圧縮装置1の実行するデータ圧縮処理と、このデ
ータ復元装置2の実行するデータ復元処理について詳細
に説明する。
【0076】図2(イ)のデータ圧縮装置1は、図7の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから圧縮対象の入力データを受け取ると、
次に、ステップ2で、辞書10bを検索することで、入
力データから辞書登録の最長一致文字列を切り出して、
その最長一致文字列の持つ辞書番号を特定してから、最
長一致文字列長の方が短くなる場合には最長一致文字列
を符号として設定し、辞書番号の方が短くなる場合には
辞書番号を符号として設定する。
【0077】続いて、ステップ3で、ステップ2で符号
として設定される最長一致文字列が連続しているか否か
を判断して、連続している場合には、最長一致文字列の
連続値を管理する変数の管理値Nを1つカウントアップ
し、連続が途切れた場合には、この管理値Nをクリアす
るとともに、ステップ2で符号として設定される辞書番
号が連続しているか否かを判断して、連続している場合
には、辞書番号の連続値を管理する変数の管理値Nを1
つカウントアップし、連続が途切れた場合には、この管
理値Nをクリアする。
【0078】続いて、ステップ4で、最長一致文字列の
連続値を管理する変数の管理値Nが規定の閾値よりも大
きくなったか否かを判断するとともに、辞書番号の連続
値を管理する変数の管理値Nが規定の閾値よりも大きく
なったか否かを判断する。このステップ4で両者とも閾
値よりも小さいと判断するときには、ステップ5に進ん
で、最長一致文字列と辞書番号の内の短い方を使用する
混在モードに従ってステップ2で設定された符号を2モ
ード符号で出力してから、ステップ1に戻っていく。す
なわち、識別フラグを付けつつ最長一致文字列と辞書番
号の内の短い方を出力するのである。
【0079】一方、ステップ4で、どちらかの管理値N
が閾値よりも大きいと判断するときには、ステップ6に
進んで、どちらの管理値Nが閾値よりも大きくなったか
を判断(この判断の終了後にその管理値Nをクリアす
る)して、辞書番号の管理値Nであると判断するときに
は、ステップ7に進んで、規定量の入力データを読み込
み、続くステップ8で、辞書10bを検索することで、
この読み込んだ入力データから辞書登録の最長一致文字
列を切り出して、その最長一致文字列の持つ辞書番号を
特定する。そして、続くステップ9で、辞書番号単一モ
ードである旨のモード符号を出力してから、ステップ2
で設定された辞書番号と、この特定した辞書番号とを識
別フラグを付けずに連続的に出力し、続くステップ10
で、単一モードの終了を表示する単一モード終了符号を
出力してから、ステップ1に戻っていく。
【0080】一方、ステップ6で、閾値よりも大きくな
ったのが最長一致文字列の管理値Nであると判断すると
きには、ステップ11に進んで、規定量の入力データを
読み込み、続くステップ12で、文字列単一モードであ
る旨のモード符号を出力してから、ステップ2で設定さ
れた最長一致文字列と、この読み込んだ文字列とをその
まま連続的に出力し、続くステップ13で、単一モード
の終了を表示する単一モード終了符号を出力してから、
ステップ1に戻っていく。
【0081】このように、図2(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
する構成を採るときにあって、どちらかが連続する場合
には、図9に示すように、連続する方の形式に従って符
号化するとともに、両者を区別するための識別フラグを
削除していくという構成を採るものである。
【0082】図2(ロ)のデータ復元装置2は、図8の
処理フローに示すように、先ず最初に、ステップ1で、
入力ファイルから復元対象の入力データ(符号語)を受
け取ると、次にステップ2で、受け取ったモード符号を
デコードすることで、符号化形態が辞書番号単一モード
に設定されているのか、文字列単一モードに設定されて
いるのか、混在モードに設定されているのかを検出す
る。
【0083】続いて、ステップ3で、ステップ2で検出
されたモードに従って、モード符号に続く符号を復号化
してから、ステップ1に戻っていく。すなわち、ステッ
プ2で辞書単一モードであると検出されるときには、符
号の表示する辞書番号の指す文字列を辞書20bから読
み出して出力し、一方、ステップ2で文字列単一モード
であると検出されるときには、符号をそのまま出力し、
一方、混在モードであると検出されるときには、識別フ
ラグにより最長一致文字列と判断される符号について
は、その符号をそのまま出力するとともに、識別フラグ
により辞書番号と判断される符号については、その辞書
番号の指す文字列を辞書20bから読み出して出力する
のである。
【0084】このように、図2(ロ)のデータ復元装置
2は、図2(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0085】図10、図12及び図14に、図3(イ)
のデータ圧縮装置1の実行するデータ圧縮処理フローの
一実施例、図11、図13及び図15に、図3(ロ)の
データ復元装置2の実行するデータ復元処理フローの一
実施例を図示する。
【0086】次に、これらの処理フローに従って、この
データ圧縮装置1の実行するデータ圧縮処理と、このデ
ータ復元装置2の実行するデータ復元処理について詳細
に説明する。
【0087】図3(イ)のデータ圧縮装置1は、図10
の処理フローに示すように、先ず最初に、ステップ1
で、入力ファイルから圧縮対象の入力データを受け取る
と、次に、ステップ2で、符号化を実行することで辞書
番号で符号化するのか、最長一致文字列で符号化するの
かを決定して、この決定により生成される符号を複数個
数生成する。すなわち、辞書10cを検索することで、
入力データから辞書登録の最長一致文字列を切り出し
て、その最長一致文字列の持つ辞書番号を特定してか
ら、最長一致文字列長の方が短くなる場合には最長一致
文字列を符号として設定し、辞書番号の方が短くなる場
合には辞書番号を符号として設定することを複数個数に
対して実行するのである。
【0088】続いて、ステップ3で、ステップ2で生成
した符号に関しての識別フラグ群を抽出する。すなわ
ち、図16に示すように、例えば4個の符号を生成する
ときに、最長一致文字列に対して“1”の識別フラグを
割り付け、辞書番号に対して“0”の識別フラグを割り
付けるときには、この4個の符号の持つ識別フラグ群を
抽出するのである。
【0089】続いて、ステップ4で、ステップ3で抽出
した識別フラグ群をハフマン符号化する。例えば、図1
7に示すように、最長一致文字列(生データ)が無い識
別フラグ群の事象の発生確率が“0.3”で、最長一致
文字列が1個となる識別フラグ群の事象の発生確率が
“0.4”で、最長一致文字列が2個となる識別フラグ群
の事象の発生確率が“0.18 ”で、最長一致文字列が
3個となる識別フラグ群の事象の発生確率が“0.1”
で、最長一致文字列が4個となる識別フラグ群の事象
の発生確率が“0.02 ”であるとともに、各事象の持つ
事象単位の辞書内での発生確率が同一であると仮定する
場合には、図18に示すようなハフマン木に従って、図
19に示すように、“0000”という識別フラグ群を
持つ事象単位aに対しては、“100”というハフマン
符号を割り付けていくことでハフマン符号化するのであ
る。
【0090】続いて、ステップ5で、ステップ2で生成
した符号に先立って、ステップ4で生成したハフマン符
号の識別フラグ群を出力し、続いて、この後にステップ
2で生成した複数の符号を出力してから、ステップ1に
戻っていく。
【0091】このように、図3(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
する構成を採るときにあって、両者を区別するために用
意する識別フラグのデータ圧縮を図る構成を採るのであ
る。
【0092】図3(ロ)のデータ復元装置2は、図11
の処理フローに示すように、先ず最初に、ステップ1
で、入力ファイルから復元対象の入力データ(符号語)
を受け取ると、次にステップ2で、受け取ったハフマン
符号の識別フラグ群をデコードすることで、この識別フ
ラグ群の後に続く複数の符号の各々が最長一致文字列を
表示しているのか、辞書番号を表示しているのかを検出
する。
【0093】続いて、ステップ3で、ステップ2で検出
結果に従って、ハフマン符号の識別フラグ群に続く複数
の符号をデコードする。すなわち、ステップ2で辞書番
号と検出される符号については、その辞書番号の指す文
字列を辞書20cから読み出し、一方、ステップ2で最
長一致文字列と検出される符号については、そのままと
するのである。続いて、ステップ4で、ステップ3で復
号化したデータを出力してから、ステップ1に戻ってい
く。
【0094】このように、図3(ロ)のデータ復元装置
2は、図3(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0095】次に、図3(イ)のデータ圧縮装置1の実
行する図12の処理フローの符号化処理について説明す
る。図3(イ)のデータ圧縮装置1は、図12の処理フ
ローに示すように、先ず最初に、ステップ1で、入力フ
ァイルから圧縮対象の入力データを受け取ると、次に、
ステップ2で、辞書登録の最長一致文字列の出現確率分
布を測定して、それを更新する。続いて、ステップ3
で、ステップ2で更新された確率分布に従ってハフマン
木を作成し、続くステップ4で、この新たなハフマン木
がそれまでに使用していたハフマン木と異なるものであ
るのか否かを判断する。
【0096】このステップ4で従来のものと違わないこ
とを判断するときには、ステップ5に進んで、辞書10
cを検索することで、入力データから辞書登録の最長一
致文字列を切り出して、その最長一致文字列の持つ辞書
番号を特定してから、最長一致文字列長の方が短くなる
場合には最長一致文字列をハフマンテーブルに従って可
変長符号化し、辞書番号の方が短くなる場合には辞書番
号を符号として符号化する。
【0097】一方、ステップ4で従来のものと違うこと
を判断するときは、ステップ6に進んで、確率分布変更
の特殊コードを出力してから、続くステップ7で、新た
なハフマンテーブルの生成に必要となるステップ2で測
定された確率分布情報を出力する。そして、ステップ5
に進んで、辞書10cを検索することで、入力データか
ら辞書登録の最長一致文字列を切り出して、その最長一
致文字列の持つ辞書番号を特定してから、最長一致文字
列長の方が短くなる場合には最長一致文字列を新たなハ
フマンテーブルに従って可変長符号化し、辞書番号の方
が短くなる場合には辞書番号を符号として符号化する。
【0098】このように、図3(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
する構成を採るときにあって、この最長一致文字列のデ
ータ圧縮を図る構成を採るのである。
【0099】この図3(イ)のデータ圧縮装置1の符号
化処理を受けて、図3(ロ)のデータ復元装置2は、図
13の処理フローに示すように、先ず最初に、ステップ
1で、入力ファイルから復元対象の入力データ(符号
語)を受け取ると、次にステップ2で、受け取った符号
が特殊コードであるか否かを判断して、特殊コードでな
いと判断するときには、ステップ3に進んで、符号の復
号処理を実行する。すなわち、識別フラグにより最長一
致文字列と判断される符号については、ハフマンテーブ
ルに従って可変長符号化の逆変換を実行することで最長
一致文字列を復号して出力するとともに、識別フラグに
より辞書番号と判断される符号については、その辞書番
号の指す文字列を辞書20cから読み出して出力するの
である。
【0100】一方、ステップ2で受け取った符号が特殊
コードであると判断するときには、ステップ4に進ん
で、特殊コードに続く確率分布情報をデコードすること
で新たなハフマンテーブルを作成してから、ステップ1
に戻っていく。
【0101】このように、図3(ロ)のデータ復元装置
2は、図3(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。
【0102】次に、図3(イ)のデータ圧縮装置1の実
行する図14の処理フローの符号化処理について説明す
る。図3(イ)のデータ圧縮装置1は、図14の処理フ
ローに示すように、先ず最初に、ステップ1で、入力フ
ァイルから圧縮対象の入力データを受け取ると、次に、
ステップ2で、入力データ数Nをカウントし、続くステ
ップ3で、このカウント値Nが規定の閾値よりも大きく
なったか否かを判断する。
【0103】このステップ3で入力データ数が規定の閾
値よりも小さいと判断するときには、ステップ4に進ん
で、辞書10cを検索することで、入力データから辞書
登録の最長一致文字列を切り出して、その最長一致文字
列の持つ辞書番号を特定してから、最長一致文字列長の
方が短くなる場合には最長一致文字列をハフマンテーブ
ルに従って可変長符号化し、辞書番号の方が短くなる場
合には辞書番号を符号として符号化する。
【0104】一方、ステップ3で入力データ数が規定の
閾値よりも大きいと判断するときには、ステップ5に進
んで、入力データ数をクリアするとともに、前回のハフ
マンテーブルの更新時から測定した辞書登録の最長一致
文字列の出現確率分布に従ってハフマンテーブルを更新
してから、ステップ4に進んで上述の符号化処理を実行
する。
【0105】このように、図3(イ)のデータ圧縮装置
1は、最長一致文字列と辞書番号の内の短い方で符号化
する構成を採るときにあって、この最長一致文字列のデ
ータ圧縮を図る構成を採るのである。ここで、図12の
処理フローの符号化処理と異なる点は、データ復元装置
2側にハフマンテーブルの更新に必要となる確率分布情
報を出力しない点である。
【0106】この図3(イ)のデータ圧縮装置1の符号
化処理を受けて、図3(ロ)のデータ復元装置2は、図
15の処理フローに示すように、先ず最初に、ステップ
1で、入力ファイルから復元対象の入力データ(符号
語)を受け取ると、次にステップ2で、入力データ数N
をカウントし、続くステップ3で、このカウント値Nが
規定の閾値よりも大きくなったか否かを判断する。
【0107】このステップ3で入力データ数が規定の閾
値よりも小さいと判断するときには、ステップ4に進ん
で、符号の復号処理を実行する。すなわち、識別フラグ
により最長一致文字列と判断される符号については、ハ
フマンテーブルに従って可変長符号化の逆変換を実行す
ることで最長一致文字列を復号して出力するとともに、
識別フラグにより辞書番号と判断される符号について
は、その辞書番号の指す文字列を辞書20cから読み出
して出力するのである。
【0108】一方、ステップ3で入力データ数が規定の
閾値よりも大きいと判断するときには、ステップ5に進
んで、入力データ数をクリアするとともに、前回のハフ
マンテーブルの更新時から測定した辞書登録の最長一致
文字列の出現確率分布に従ってハフマンテーブルを更新
してから、ステップ4に進んで上述の復号処理を実行す
る。
【0109】このように、図3(ロ)のデータ復元装置
2は、図3(イ)のデータ圧縮装置1の逆変換処理を実
行することで、このデータ圧縮装置1の生成する符号語
を復元していくのである。ここで、図13の処理フロー
の復元化処理と異なる点は、データ復元装置2は、デー
タ圧縮装置1からハフマンテーブルの更新に必要となる
確率分布情報を受け取るのではなくて、自らがデータ圧
縮装置1と同期をとりつつハフマンテーブルの更新に必
要となる確率分布情報を得る点である。
【0110】
【発明の効果】以上説明したように、本発明によれば、
動的辞書型に従うユニバーサル符号化構成に従い、最長
一致文字列と辞書番号の内の短い方で符号化する構成を
採るときにあって、従来技術よりも高いデータ圧縮を実
現できるようになる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の原理構成図である。
【図3】本発明の原理構成図である。
【図4】本発明のデータ圧縮装置の実行する処理フロー
の一実施例である。
【図5】本発明のデータ復元装置の実行する処理フロー
の一実施例である。
【図6】本発明の符号化処理の説明図である。
【図7】本発明のデータ圧縮装置の実行する処理フロー
の一実施例である。
【図8】本発明のデータ復元装置の実行する処理フロー
の一実施例である。
【図9】本発明の符号化処理の説明図である。
【図10】本発明のデータ圧縮装置の実行する処理フロ
ーの一実施例である。
【図11】本発明のデータ復元装置の実行する処理フロ
ーの一実施例である。
【図12】本発明のデータ圧縮装置の実行する処理フロ
ーの一実施例である。
【図13】本発明のデータ復元装置の実行する処理フロ
ーの一実施例である。
【図14】本発明のデータ圧縮装置の実行する処理フロ
ーの一実施例である。
【図15】本発明のデータ復元装置の実行する処理フロ
ーの一実施例である。
【図16】本発明の符号化処理の説明図である。
【図17】本発明の符号化処理の説明図である。
【図18】本発明の符号化処理の説明図である。
【図19】本発明の符号化処理の説明図である。
【図20】LZW符号によるデータ符号化処理の説明図
である。
【図21】LZW符号によるデータ復元化処理の説明図
である。
【図22】LZW符号によるデータ符号化処理の説明図
である。
【図23】LZW符号における辞書登録構成の説明図で
ある。
【図24】LZW符号によるデータ復元化処理の説明図
である。
【図25】先に出願したLZW符号の符号化処理の説明
図である。
【図26】先に出願したLZW符号の復号化処理の説明
図である。
【図27】先に出願したLZW符号の符号化処理の説明
図である。
【符号の説明】
1 データ圧縮装置 2 データ復元装置 10a 辞書 11a バッファ手段 12a 検索手段 13a 判断手段 14a 判定手段 15a 出力手段 16a 登録手段 30a 辞書 31a 検出手段 32a 復元手段 33a 登録手段

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 入力されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理して
    いく構成を採って、入力中のデータを辞書登録の最長一
    致文字列の辞書番号を用いて符号化する構成を採るデー
    タ圧縮装置において、 規定量の入力データを格納するバッファ手段(11a) と、 上記バッファ手段(11a) の格納する入力データから検索
    された最長一致文字列対応に、該最長一致文字列の文字
    列長か該最長一致文字列の辞書番号長のいずれが短いの
    かを判断する判断手段(13a) と、 上記判断手段(13a) の判断結果を参照しつつ、上記バッ
    ファ手段(11a) の格納する入力データに対しての符号化
    形態として、辞書番号のみを使用する単一モードの符号
    化形態が有利なのか、最長一致文字列と辞書番号の内の
    短い方を使用する混在モードの符号化形態が有利なのか
    を判定する判定手段(14a) と、 上記バッファ手段(11a) の格納する入力データに対して
    の符号として、上記判定手段(14a) が単一モードの符号
    化形態を有利と判定するときには、その旨の制御符号を
    付加しつつ辞書番号のみを出力し、一方、上記判定手段
    (14a) が混在モードの符号化形態を有利と判定するとき
    には、その旨の制御符号を付加しつつ最長一致文字列と
    辞書番号の内の短い方を識別フラグとともに出力する出
    力手段(15a) とを備えることを、 特徴とするデータ圧縮装置。
  2. 【請求項2】 請求項1記載のデータ圧縮装置におい
    て、 判定手段(14a) は、最長一致文字列長の方が短いと判断
    される判断回数が規定値以下であるときには、単一モー
    ドの符号化形態を有利と判定し、一方、最長一致文字列
    長の方が短いと判断される判断回数が規定値以上のとき
    には、混在モードの符号化形態を有利と判定するよう処
    理することを、 特徴とするデータ圧縮装置。
  3. 【請求項3】 請求項1記載のデータ圧縮装置におい
    て、 判定手段(14a) は、バッファ手段(11a) の入力データを
    辞書番号のみで符号化するときのビット数と、最長一致
    文字列と辞書番号の内の短い方で符号化するときのビッ
    ト数とを求めて、前者のビット数が後者のビット数より
    も小さいと判定するときには、単一モードの符号化形態
    を有利と判定し、一方、前者のビット数が後者のビット
    数よりも大きいと判定するときに、混在モードの符号化
    形態を有利と判定するよう処理することを、特徴とする
    データ圧縮装置。
  4. 【請求項4】 復元されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号の指定する辞書番号から該辞書中の対応する文
    字列を特定していく構成を採って、入力中の符号をこの
    特定する文字列に置き換えていくことで復元化する構成
    を採るデータ復元装置において、 符号を参照することで、対応付けられる符号の符号化形
    態が辞書番号のみを使用する単一モードの符号化形態を
    表示するものなのか、最長一致文字列と辞書番号の内の
    短い方を使用する混在モードの符号化形態を表示するも
    のなのかを検出する検出手段(31a) と、 上記検出手段(31a) により単一モードの符号化形態を表
    示するものと検出されるときには、符号の表示する辞書
    番号の指す辞書中の文字列を検索して出力し、一方、上
    記検出手段(31a) により混在モードの符号化形態を表示
    するものと検出されるときには、付加される識別フラグ
    により最長一致文字列と判断される符号については、そ
    のまま出力するとともに、付加される識別フラグにより
    辞書番号と判断される符号については、該辞書番号の指
    す辞書中の文字列を検索して出力する復元手段(32a) と
    を備えることを、 特徴とするデータ復元装置。
  5. 【請求項5】 入力されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理して
    いく構成を採って、入力中のデータを辞書登録の最長一
    致文字列の辞書番号を用いて符号化する構成を採るデー
    タ圧縮装置において、 検索された最長一致文字列の文字列長か該最長一致文字
    列の辞書番号長のいずれが短いのかを判断する判断手段
    (13b) と、 上記判断手段(13b) の判断結果の時系列データを参照す
    ることで、入力データに対しての符号化形態として、辞
    書番号のみを使用する辞書番号単一モードの符号化形態
    が有利なのか、文字列のみを使用する文字列単一モード
    の符号化形態が有利なのか、最長一致文字列と辞書番号
    の内の短い方を使用する混在モードの符号化形態が有利
    なのかを判定する判定手段(14b) と、 入力データに対しての符号化形態として、上記判定手段
    (14b) が辞書番号単一モードの符号化形態を有利と判定
    するときには、その旨の制御符号を付加しつつ規定の期
    間の間は辞書番号のみを出力し、一方、上記判定手段(1
    4b) が文字列単一モードの符号化形態を有利と判定する
    ときには、その旨の制御符号を付加しつつ規定の期間の
    間は文字列のみを出力し、一方、上記判定手段(14b) が
    混在モードの符号化形態を有利と判定するときには、最
    長一致文字列と辞書番号の内の短い方を識別フラグとと
    もに出力する出力手段(15b) とを備えることを、 特徴とするデータ圧縮装置。
  6. 【請求項6】 請求項5記載のデータ圧縮装置におい
    て、 判定手段(14b) は、辞書番号の方が短いと判断されるこ
    とが規定回数連続する場合には、辞書番号単一モードの
    符号化形態を有利と判定し、一方、最長一致文字列の方
    が短いと判断されることが規定回数連続する場合には、
    文字列単一モードの符号化形態を有利と判定し、一方、
    これらの連続状態が発生しない場合には、混在モードの
    符号化形態を有利と判定するよう処理することを、 特徴とするデータ圧縮装置。
  7. 【請求項7】 請求項6記載のデータ圧縮装置におい
    て、 出力手段(15b) は、制御符号の付加を省略するよう処理
    することを、 特徴とするデータ圧縮装置。
  8. 【請求項8】 復元されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号の指定する辞書番号から該辞書中の対応する文
    字列を特定していく構成を採って、入力中の符号をこの
    特定する文字列に置き換えていくことで復元化する構成
    を採るデータ復元装置において、 符号を参照することで、対応付けられる符号の符号化形
    態が辞書番号のみを使用する辞書番号単一モードの符号
    化形態を表示するものなのか、文字列のみを使用する文
    字列単一モードの符号化形態を表示するものなのか、最
    長一致文字列と辞書番号の内の短い方を使用する混在モ
    ードの符号化形態を表示するものなのかを検出する検出
    手段(31b) と、 上記検出手段(31b) により辞書番号単一モードの符号化
    形態を表示するものと検出されるときには、符号の表示
    する辞書番号の指す辞書中の文字列を検索して出力し、
    一方、上記検出手段(31b) により文字列単一モードの符
    号化形態を表示するものと検出されるときには、符号の
    表示する文字列をそのまま出力し、一方、上記検出手段
    (31b) により混在モードの符号化形態を表示するものと
    検出されるときには、付加される識別フラグにより最長
    一致文字列と判断される符号については、そのまま出力
    するとともに、付加される識別フラグにより辞書番号と
    判断される符号については、該辞書番号の指す辞書中の
    文字列を検索して出力する復元手段(32b) とを備えるこ
    とを、 特徴とするデータ復元装置。
  9. 【請求項9】 入力されたデータを互いに異なる文字列
    に分解し、該文字列を辞書番号とともに辞書に管理して
    いく構成を採って、入力中のデータを辞書登録の最長一
    致文字列の辞書番号を用いて符号化する構成を採るデー
    タ圧縮装置において、 検索された最長一致文字列の文字列長か該最長一致文字
    列の辞書番号長のいずれが短いのかを判断して、文字列
    長の方が短いと判断するときには最長一致文字列を符号
    として設定し、辞書番号長の方が短いと判断するときに
    は辞書番号を符号として設定する設定手段(17c) と、 上記設定手段(17c) の設定する複数の符号に対応付け
    て、該符号が最長一致文字列か辞書番号のいずれに属す
    るのかを表示する識別フラグ群を割り付ける割付手段(1
    8c) と、 上記割付手段(18c) の割り付ける識別フラグ群を出現頻
    度の高いもの程短い符号長となるようにと可変長符号化
    する符号手段(19c) とを備えることを、 特徴とするデータ圧縮装置。
  10. 【請求項10】 請求項9記載のデータ圧縮装置におい
    て、 設定手段(17c) の設定する最長一致文字列を出現頻度の
    高いもの程短い符号長となるようにと可変長符号化する
    符号手段(22c) を備えることを、 特徴とするデータ圧縮装置。
  11. 【請求項11】 入力されたデータを互いに異なる文字
    列に分解し、該文字列を辞書番号とともに辞書に管理し
    ていく構成を採って、入力中のデータを辞書登録の最長
    一致文字列の辞書番号を用いて符号化する構成を採るデ
    ータ圧縮装置において、 検索された最長一致文字列の文字列長か該最長一致文字
    列の辞書番号長のいずれが短いのかを判断して、識別フ
    ラグを割り付けつつ、文字列長の方が短いと判断すると
    きには最長一致文字列を符号として設定し、辞書番号長
    の方が短いと判断するときには辞書番号を符号として設
    定する設定手段(17c) と、 上記設定手段(17c) の設定する最長一致文字列を出現頻
    度の高いもの程短い符号長となるようにと可変長符号化
    する符号手段(22c) とを備えることを、 特徴とするデータ圧縮装置。
  12. 【請求項12】 請求項9、10又は11記載のデータ
    圧縮装置において、 可変長符号化対象のデータの出現確率を測定すること
    で、可変長符号化に用いる符号化テーブルを動的に書き
    換えていく更新手段(21c,24c) を備えることを、 特徴とするデータ圧縮装置。
  13. 【請求項13】 請求項12記載のデータ圧縮装置にお
    いて、 符号化テーブルの更新に必要となる更新情報を出力する
    出力手段(15c) を備えることを、 特徴とするデータ圧縮装置。
  14. 【請求項14】 復元されたデータを互いに異なる文字
    列に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号の指定する辞書番号から該辞書中の対応する文
    字列を特定していく構成を採って、入力中の符号をこの
    特定する文字列に置き換えていくことで復元化する構成
    を採るデータ復元装置において、 可変長符号化されている符号を復号することで、対応付
    けられる符号が最長一致文字列を表示するのか、辞書番
    号を表示するのかを検出する検出手段(31c) と、 上記検出手段(31c) により最長一致文字列を表示するも
    のと検出される符号については、該最長一致文字列をそ
    のまま出力し、一方、上記検出手段(31c) により辞書番
    号を表示するものと検出される符号については、該辞書
    番号の指す辞書中の文字列を検索して出力する復元手段
    (32c) とを備えることを、 特徴とするデータ復元装置。
  15. 【請求項15】 請求項14記載のデータ復元装置にお
    いて、 復元手段(32c) は、符号の表示する最長一致文字列が可
    変長符号化されているときには、逆変換を実行すること
    で最長一致文字列を復元していくよう処理することを、 特徴とするデータ復元装置。
  16. 【請求項16】 復元されたデータを互いに異なる文字
    列に分解し、該文字列を辞書番号とともに辞書に管理し
    て、符号の指定する辞書番号から該辞書中の対応する文
    字列を特定していく構成を採って、入力中の符号をこの
    特定する文字列に置き換えていくことで復元化する構成
    を採るデータ復元装置において、 符号を参照することで、対応付けられる符号が可変長符
    号化されている最長一致文字列を表示するのか、辞書番
    号を表示するのかを検出する検出手段(31c) と、 上記検出手段(31c) により可変長符号化されている最長
    一致文字列を表示するものと検出される符号について
    は、該可変長符号化の逆変換を実行することで最長一致
    文字列を復元して出力し、一方、上記検出手段(31c) に
    より辞書番号を表示するものと検出される符号について
    は、該辞書番号の指す辞書中の文字列を検索して出力す
    る復元手段(32c) とを備えることを、 特徴とするデータ復元装置。
  17. 【請求項17】 請求項14、15又は16記載のデー
    タ復元装置において、 可変長符号化逆変換対象のデータの出現確率を測定する
    ことで、可変長符号化逆変換に用いる復号化テーブルを
    動的に書き換えていく更新手段(35c) を備えることを、 特徴とするデータ復元装置。
  18. 【請求項18】 請求項14、15又は16記載のデー
    タ復元装置において、 可変長符号化逆変換に用いる復号化テーブルの更新に必
    要となる更新情報を受け取って、該更新情報に従って該
    復号化テーブルを書き換えていく更新手段(35c) を備え
    ることを、 特徴とするデータ復元装置。
JP7654293A 1993-04-02 1993-04-02 データ圧縮装置及びデータ復元装置 Withdrawn JPH06291677A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7654293A JPH06291677A (ja) 1993-04-02 1993-04-02 データ圧縮装置及びデータ復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7654293A JPH06291677A (ja) 1993-04-02 1993-04-02 データ圧縮装置及びデータ復元装置

Publications (1)

Publication Number Publication Date
JPH06291677A true JPH06291677A (ja) 1994-10-18

Family

ID=13608161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7654293A Withdrawn JPH06291677A (ja) 1993-04-02 1993-04-02 データ圧縮装置及びデータ復元装置

Country Status (1)

Country Link
JP (1) JPH06291677A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012008162A1 (ja) * 2010-07-15 2012-01-19 パナソニック株式会社 画像復号化方法、画像符号化方法、画像復号化装置、画像符号化装置、プログラムおよび集積回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012008162A1 (ja) * 2010-07-15 2012-01-19 パナソニック株式会社 画像復号化方法、画像符号化方法、画像復号化装置、画像符号化装置、プログラムおよび集積回路

Similar Documents

Publication Publication Date Title
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
US6597812B1 (en) System and method for lossless data compression and decompression
US8456332B2 (en) Systems and methods for compression of logical data objects for storage
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
JP3397431B2 (ja) データ圧縮方法および装置ならびにデータ復元方法および装置
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
JP2003524983A (ja) 複数コーダを用いる最適化ロスレス圧縮のための方法及び装置
US5394143A (en) Run-length compression of index keys
US6748520B1 (en) System and method for compressing and decompressing a binary code image
US20060193378A1 (en) Processing digital data prior to compression
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
JPH06291677A (ja) データ圧縮装置及びデータ復元装置
JP2940948B2 (ja) データ圧縮方式
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
EP0871295B1 (en) Method and apparatus for compression and decompression of data
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JP3241787B2 (ja) データ圧縮方式
KR100481204B1 (ko) 데이터 문자의 입력 스트림을 코드의 출력 스트림으로 압축시키기 위한 데이터 압축 방법 및 장치
JP3130324B2 (ja) データ圧縮方式
JPH06274311A (ja) データ圧縮装置及びデータ復元装置
JPH06168097A (ja) データ符号化方式及びデータ復元方式
JPH06202844A (ja) データ圧縮復元処理装置
JPH05341955A (ja) データ圧縮および復元方式
JP3384844B2 (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: 20000704