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

データ圧縮及び復元装置

Info

Publication number
JP3038233B2
JP3038233B2 JP2245176A JP24517690A JP3038233B2 JP 3038233 B2 JP3038233 B2 JP 3038233B2 JP 2245176 A JP2245176 A JP 2245176A JP 24517690 A JP24517690 A JP 24517690A JP 3038233 B2 JP3038233 B2 JP 3038233B2
Authority
JP
Japan
Prior art keywords
data
dictionary
code
character
input data
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
JP2245176A
Other languages
English (en)
Other versions
JPH04123619A (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.)
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 JP2245176A priority Critical patent/JP3038233B2/ja
Publication of JPH04123619A publication Critical patent/JPH04123619A/ja
Application granted granted Critical
Publication of JP3038233B2 publication Critical patent/JP3038233B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】 【概要】
ユバーサル符号化の一種である増分分解型の改良とし
てLZW符号化によるデ−タ圧縮装置の辞書検索方式に関
し、 外部ハッシュ法の連結リスト構造をもつ辞書メモリの
高速検索を可能にして辞書検索時間を短縮することを目
的とし、 データ圧縮時に入力データの使用頻度を計測し、使用
頻度が高いほど連結リストの先頭に配置されるように、
入力データを使用頻度が高いほど小さい値となるように
変換する。また復号時には圧縮時に作成した変換規則の
逆規則を使用して復号されたデータを元の入力データに
変換する。
【産業上の利用分野】
本発明は、ユバーサル符号化の一種である増分分解型
の改良としてのLZW符号化によるデ−タ圧縮装置の辞書
検索方式に関する。 近年、文字コ−ド、ベクトル情報、画像など様々な種
類のデ−タがコンピュ−タで扱われるようになってお
り、扱われるデ−タ量も急速に増加してきている。大量
のデ−タを扱うときは、デ−タの中の冗長な部分を省い
てデ−タ量を圧縮することで、記憶容量を減らしたり、
速く伝送したりできるようになる。 このような様々なデ−タを1つの方式でデ−タ圧縮で
きる方法としてユニバ−サル符号化が提案されている。 ここで、本発明の分野は、文字コ−ドの圧縮に限ら
ず、様々なデ−タに適用できるが、以下では、情報理論
で用いられている呼称を踏襲し、デ−タの1ワード単位
を文字と呼び、デ−タが複数ワードツながったものを文
字列と呼ぶことにする。 ユニバ−サル符号の代表的な方法として、ジブーレン
ペル(Ziv−Lempel)符号がある(詳しくは、例えば、
宗像「Ziv−Lempelのデータ圧縮法」、情報処理、Vol.2
6,No.1,1985年を参照のこと)。 ジブ−レンペル符号では、 ユニバ−サル型 増分分解型(Incremental parsing) の2つのアルゴリズムが提案されている。 更に、ユニバーサル型アルゴリズムの改良として、LZ
SS符号がある(T.C.Bell,“Better OPM/L Text Compres
sion",IEEE Trans.on Commun.,Vol.COM−34,No.12,DEC.
1986参照)。 また、増分分解型アルゴリズムの改良としては、LZW
(Lempel−Ziv−Welch)符号がある(T.A.Welch,“A Te
chnique for High−Performance Data Compression",Co
mputer,June 1984参照)。 これらの符号の内、高速処理ができることと、アルゴ
リズムの簡単さからLZW符号が記憶装置のファイル圧縮
などで使われるようになっている。
【従来の技術】
従来のLZW符号による符号化処理フローを第4図に示
し、復号化処理フローを第5図に示す。 まずLZW符号化処理は、書き替え可能な辞書を持ち、
入力文字列の中を相異なる文字列(文字列)に分け、こ
の文字列を出現した順に参照番号を付けて辞書に登録す
ると共に、現在入力している文字列を、辞書に登録して
ある最長一致文字列の参照番号で表して符号化するもの
である。 第6図にLZW符号化の説明図を示すと共に第7図にLZW
復号化の説明図を示し、更に第8図に復号化時に作成さ
れる辞書構成例を示す。 尚、第6,7,8図では説明を簡単にするため、abcの3文
字の組合せからなるデ−タを圧縮、復元する場合の例を
取り上げている。 第4図のLZW符号化処理では、まずステップS1(以下
「ステップ」は省略)で予め辞書に全文字につき一文字
からなる文字列を初期値として登録してから符号化を始
める。 S1の符号化は入力した最初の文字Kにより辞書を検索
して参照番号ωを求め、これを語頭文字列とする。 次にS2で入力データの次の文字Kを読込み、S3で文字
入力が終了したか否かチェックした後、S4に進んでS1で
求めた語頭文字列ωにS2で読込んだ文字Kを加えた拡張
文字列(ωK)が辞書にあるか否かを探す。 S4で文字列(ωK)が辞書になければ、S6に進んでS1
で求めた文字Kの参照番号ωを符号語code(ω)として
出力し、また文字列(ωK)に新たな参照番号を付加し
て辞書に登録し、更にS2の入力文字Kを参照番号ωに置
き換えると共に辞書アドレスnをインクリメントしてS2
に戻って次の文字Kを読み込む。 一方、S4で文字列(ωK)が辞書にあればS5で文字列
(ωK)を参照番号ωに置き換え、再びS2に戻ってS4で
文字列(ωK)が辞書から探せなくなるまで最大一致長
の検索を続ける。 第5,6図を参照してLZW符号化を具体的に説明すると次
のようになる。 まず第5図の入力データinputは左から右へと読む。
最初の文字aを入力した時、辞書には文字aの他に一致
する文字列がないので、OUTPUT CODE 1(参照番号ω)
を符号語して出力する。そして文字aを語頭文字列ωと
する。 次に2番目の文字bを入力したとすると、この入力文
字を語頭文字列ωに加えた拡張文字列ωK=abは辞書に
ないことから、文字bのOUTPUT CODE 2を符号語として
出力する。そして、拡張文字列ωK=abに参照番号4を
付けて辞書に登録する。実際の辞書登録は第6図の右側
に示すように文字列1bとして登録される。そして文字b
が語頭文字列ωとなる。 続いて3番目の文字aを入力したとすると、文字bに
語頭文字列ωを加えた拡張文字列ωK=ba=2aは辞書に
ないことから、文字bのOUTPUT CODE 2を符号語として
出力した後、拡張文字列ωK=baを2aで表わし、参照番
号5を付けて辞書に登録する。そして文字aが新たな語
頭文字列aとなる。 4番目の入力文字bについては拡張文字列ωK=abは
1bの符号語4として既に辞書に登録されているので、文
字列ωKを新たな語頭文字列ωとし、5番目の文字cを
入力して拡張文字列ωK=4c=abcを作る。この拡張文
字列ωK=abcは辞書に登録されていないことから、文
字列ab=1bのOUTPUT CODE 4を符号語として出力し、拡
張文字列ωK=abcを辞書に4cの形で符号語6として登
録する。以下同様に、この処理を続ける。 第5図の復号化処理は第4図の符号化の逆の操作を行
う。 第5図のLZW復号化では、符号化時と同様に予め辞書
に全文字につき一文字からなる文字列を初期値として登
録してから復号化を始める。 まずS1で最初の符号(参照番号)を読込み、現在のCO
DEをOLDcodeとし、最初の符号は既に辞書に登録された
一文字の参照番号いずれかに該当することから、入力符
号CODEに一致する文字code(K)を探し出し、文字Kを
出力する。 尚、出力した文字Kは後の例外処理のためFINcharに
セットしておく。 次にS2に進んで次の符号を読込んでCODEにINcodeとし
てセットする。S3で新たな符号があるか否か、即ち符号
入力の終了の有無をチェックしてS4に進み、S3で入力さ
れた符号CODEが辞書に定義(登録)されているか否かチ
ェックする。通常、入力した符号語は前回までの処理で
辞書に登録されているため、S5に進んで符号CODEに対応
する文字列code(ωK)を辞書から読出し、S6で文字K
を一時的にスタックし、参照番号CODE(ω)を新な符号
CODEとして再度S5に戻り、このS5,S6の手順を再帰的に
参照番号ωが一文字Kに至るまで繰り返し、最後にS7に
進んでS6でスタックした文字をLIFO(Last In Fast Ou
t)形式でポップアップして出力する。同時にS7におい
て、前回使った符号ωと今回復元した文字列の最初の1
文字Kを組(ωK)と表した文字列に、新たな参照番号
を付加して辞書に登録する。 第8図を参照してLZW復号化処理を具体的に説明する
と次のようになる。 まず第8図で最初の入力符号語(INPUT CODE)は1で
あり、一文字a,b,cについては既に参照番号1,2,3として
第7図に示すように辞書に登録されているため、辞書の
参照により符号語1に一致する参照番号の文字列aに置
き換えて出力する。 次の符号語2についても同様にして文字bに置き換え
て出力する。このとき前回処理した符号語1と今回復号
した文字列の1番目の文字bとを組合わせた文字列ωK
=1bに新たな参照番号4を付加して辞書に登録する。 3番目の符号語4は辞書の検索により求めた文字列1b
から文字列abと置き換えて文字列abを出力する。同時に
前回処理した符号語2と今回復号した文字列の1番目の
文字aとの組合せた文字列ωK=2a(=ba)に新たな参
照番号5を付加して辞書に登録する。 以下同様に、この処理を繰り返す。 第8図のLZW復号化では次の例外処理がある。 この例外処理は、第6番目の入力符号語8の復号で生
ずる。符号語8は復号時に辞書に定義されておらず、復
号できない。この場合には、前回処理した符号語5に前
回復号した文字列baの最初の一文字bを加えた文字列5b
を求め、更に 5b=2ab=bab と置き換えて出力する例外処理を行う。そして、文字列
の出力後に前回の符号語5に今回復号した文字列の1番
目の文字bを加えた文字列5bに参照番号8を付加して辞
書に登録する。 この例外処理は、第5図の復号化処理フローのS4,S8
の処理を通じて行われ、最終的にS7で文字列の出力と新
たな文字列に参照番号を付加した辞書への登録がS7で行
われる。 尚、第5,8図のLZW復号化は、復号側で符号を解説しな
がら辞書をリアルタイムで作り出す場合を説明したが、
符号化の際に作られた辞書をそのまま復号化側にコピー
として使用することで符号化しても良い。この場合に復
号化側での例外処理は不要になる。 このように第4図の処理フロー図に示す手順でLZW符
号化を行うと、1つの文字列を辞書検索するたびに、最
悪、辞書全体をサ−チしなければならず、辞書検索に時
間がかかる問題があった。 そこで従来の辞書検索方式にあっては、外部ハッシュ
法(open hashing又はchaining)を用いて処理速度を上
げている。 まず一般的なハッシュ法による辞書検索にあっては、
複数の文字列からなる集合Sを考えたとき、集合Sの文
字列xの格納位置を、文字列xそのものから格納位置を
示すアドレスを直接計算できる仕組みになっており、高
速の辞書検索ができる。 文字列の記憶場所、即ちハッシュ表に0からm−1ま
でのアドレスが付されているとすると、ハッシュ法で
は、関数 h:S→〔0,1,・・・,m−1〕 を一つ定めて、集合Sの文字列xのアドレスをh(x)
として求める。この関数h(x)をハッシュ関数、値h
(x)を文字列xのハッシュアドレスという。 ハッシュ法は、通常、集合Sの大きさがアドレス数m
に比べてはるかに大きい場合に用いられる。 しかしながら、ハッシュ関数hをどのように選んだと
しても、集合Sの相異なる文字列x1,x2に対して h(x1)=h(x2) ハッシュアドレスが一致してしまう場合が起こり得る。
これを衝突と呼び、衝突に対する対策の一つとして外部
ハッシュ法が用いられる。 外部ハッシュ法は第9図に示すように、牽引(ディレ
クトリ)で示されるハッシュアドレスi毎に連結リスト
を用意し、衝突を起こしたハッシュアドレスh(x)=
iの文字列xは、連結リストの先頭から順番に格納す
る。同じハッシュアドレスh(x)ををもつそれぞれの
連結リストはバケット(bucket)と呼ばれる。 辞書検索に外部ハッシュ法のリスト構造を利用したLZ
W符号化の処理フロー図を第10図に示す。また第11図は
外部ハッシュ法に従った辞書メモリの構成を示したもの
で、第12図に示す符号化済み文字列のツリー構造を例に
とってLZW符号化の検索手順と登録手順を具体的に示し
ている。 まず第11図において、辞書メモリは、ファーストメモ
リ(First Memory)100、ネクストメモリ(Next Memor
y)200及びネクストメモリ200の拡張領域となる拡張メ
モリ(Extention Memory)300で構成される。ここでフ
ァーストメモリ100が第9図に示した外部ハッシュ法の
索引(ディレクトリ)に対応し、ネクストメモリ200が
第9図の連結リストの「next」に対応し、更に拡張メモ
リ300が第9図の「name」に対応する。 また第12図のツリー構造は文字K10,K21,K22,・・・,K
41が既に登録され、破線で示すK42は新たに登録される
場合を示している。このツリー構造における階層は、第
10図の処理において、iカウンタで示され、同じ階層に
おける文字の数はjカウンタで表される。 従って、各文字の登録アドレスはωijとして表わされ
る。 いま第12図の登録済みのツリー構造に含まれる文字列 「K10,K22,K32,K42」 が入力した時の第10図の処理フローに従った辞書検索に
よるLZW符号化及び登録を説明すると次のようになる。 第10図において、まずS1で次の初期化処理を行う。 第1番目の文字を含むように辞書を初期化する。 例えばアルファベット26文字であれば、文字コードを
そのままハッシュアドレスとして第14図のファーストメ
モリに登録する。第15図の場合、ツリートップにある文
字K10がアドレスω10に登録された状態を意味する。 辞書への現在文字登録数nを前記で登録した文字数
にセットする。アルファベット26文字の場合には、n=
26となる。 入力した最初の文字Kを語頭文字列iとする。第12図
の場合、最初の入力文字はK10であることから語頭文字
列i=1とする。尚、以下の処理フロー巾では語頭文字
列iをiカウンタとして説明する。 辞書検索用配列を0に初期化する。即ち、ファース
ト、ネクスト及び拡張のメモリの検索用配列はfirst
[1,Nmax],next[1,Nmax]、EXT[1,Nmax]で表わされ
るので、これを0に初期化する。 S1の初期化処理が済んだならば、S2に進んで次の文字
「K22」を読込む。次にS3で未処理の文字があるか否か
チェックする。全ての処理が終ればS16に進んで符号語c
ode(ω)を出力して処理を終了する。このとき未処理
文字があるのでS5〜S9に示す辞書検索ステップに進む。 辞書検索ステップは、まずS5でアドレスωijにそのと
きの語頭文字列i=1の値をセットし、且つjカウンタ
をj=0にセットする。これによりファーストメモリの
アドレスωij=ω10が生成される。 次にS6でファーストメモリ100のアドレスω10の内容
を読むとアドレスωij=ω21が得られるので、iカウン
タをi=2にセットする。 続いてS7に進み、i=0か否かチェックし、このとき
i=2であることからS8に進み、S6のファーストメモリ
100から得られたアドレスω21の拡張メモリ300を参照し
て文字「K21」を読出し、S2で得ている入力文字「K22
との一致を判別する。この場合、両者は不一致であるこ
とからS9に進み、このときのiカウンタの値i=2をj
カウンタにセットしてj=2とし、またネクストメモリ
200のアドレスω21に格納されているアドレスωij=ω
22のiをiカウンタにi=2としてセットする。このた
め新たなアドレスωij=ω22が作り出される。 続いてS7に戻り、i=0をチェックし、このときi=
2であることから再びS8に進んでアドレスω22の拡張メ
モリ300の登録文字「K22」を読出して入力文字「K22
との一致を判別する。このとき両者は一致することから
S2に戻り、次の文字「K32」を読込む。以下同様にしてS
5〜S9の処理の繰り返しにより、第11図の実線の矢印で
示す順番に辞書検索が行なわれ、既に登録済みの文字
「K41」までの検索処理が行われる。 登録文字「K41」の検索が終了してS8で最後の入力文
字「K42」で不一致が判別された場合には、S9でi=2
にセットすると共に、アドレスω41のネクストメモリ20
0の内容が0であることから、i=0にセットする。こ
のためS7に戻った時にi=0が判別され、辞書検索ステ
ップを抜け出してS10に進み、それまでの文字列「K10,K
22,K32」を示すアドレスω32を符号語code(ω)として
出力し、S11〜14の辞書登録ステップに進む。 辞書登録ステップにあっては、まずS11で現在登録文
字列nをn=i、即ちn=4にセットし、更にnを1つ
インクリメントする。そして文字「K42」を拡張メモリ3
00のアドレスωij=ω42に登録する。 次にS12でj=0か否かをチェックし、このときj=
2であることからS14に進み、ネクストメモリ200のアド
レスω41に文字「K42」を登録したアドレスω42を書込
む。一方、S12でj=0であれば、即ち、ファーストメ
モリ100ヘの登録に移行した状態であれば、第11図のフ
ァーストメモリ100のアドレスω112232に示すよ
うに、拡張メモリ300の文字登録アドレスを格納する。 この文字登録ステップにおける文字「K42」の登録に
より、第11図のネクストメモリ200及び拡張メモリ300
は、下部に破線で仕切って示すアドレスω4142の登
録状態となり、第12図に示すツリー構造に新たな文字
「K42」のアドレスω42が追加されたことになる。尚、
第11図では、アドレスω41については説明の都合上、検
索と登録で重複して示している。 S11〜S14の辞書登録ステップが終了すると、S15で登
録した文字「K42」を新たな語頭文字列i、即ち、iカ
ウンタの値にセットし、再びS2に戻って文字「K42」を
ツリートップとして、その後に続く文字列の辞書検索に
移行する。
【発明が解決しようとする課題】
このように従来のLZW符号化にあっては、ソフトウェ
アにより第4図に示した処理フローを実行して符号化す
る場合、辞書検索処理に多くの時間を要することから、
外部ハッシュ法を利用して第10図の処理フローにより辞
書検索の高速化を図っている。 しかしながら、外部ハッシュ法を利用した辞書検索に
あっては、連結リストの検索により候補文字の読出、候
補文字と入力文字との照合、一致不一致の判定がシ−ケ
ルシャルに行なわれるために、辞書検索時間が全体時間
の約80%を占め、高速化が難しいという欠点があった。 この欠点を解消するため辞書検索にパイプライン制御
を取り入れて高速化を図ることも提案されているが、辞
書メモリの転送速度に対し実時間の処理速度を得ること
は困難であった。 本発明は、このような従来の問題点に鑑みてなされた
もので、外部ハッシュ法の連結リスト構造を備えた辞書
メモリのより一層の高速検索を図って辞書検索時間を短
縮できるデータ圧縮及び復元装置を提供することを目的
とする。
【課題を解決するための手段】
第1図は本発明の原理説明図である。 まず本発明は、符号化済みデ−タ相異なる部分列に分
けて各部分列毎に異なる参照番号を付加して辞書に登録
しておき、入力データを該辞書中の部分列の内、最大長
一致する部分列の参照番号で指定して符号化するデ−タ
圧縮装置、例えばLZW符号化を行なうデ−タ圧縮装置を
対象とする。 このようなデータ圧縮装置として本発明にあっては、 候補データの登録場所とは別に、入力データのコード
値の小さい順番に前記候補データの連結アドレスを示す
辞書検索リストを備え、該辞書検索リストに従って入力
データに一致する候補データを順次検索し、最後に一致
した候補データの連結アドレスで示される参照番号を一
連の入力データ列の符号データとして出力する該符号化
手段10と; 入力データの出現頻度を計測する計測手段12と; 計測手段12の計測結果に基づき、出現頻度が高いほど
値が小さく出現頻度が低いほど値が大きいコードに入力
データを変換するコード変換手段14と; を設け、コード変換手段14により出現頻度に従ってコー
ド変換された入力データを符号化手段10により符号化す
ることを特徴とする。 ここで計測手段12は、入力コードと1又は複数コード
前からの入力コードとの組合せ関係から出現頻度を計測
するようにしても良い。 また符号化手段12は、外部ハッシュ法のリスト構造に
従ったファーストメモリ及び拡張メモリを有するネクス
トメモリを備えた辞書メモリ20と、入力データに基づい
たアドレス発生により辞書メモリ20の拡張メモリに格納
された入力データに一致する候補データを検索する辞書
検索手段22とを備える。 また符号化済み文字データを相異なる部分列に分けて
各部分列毎に異なる参照符号を付加して辞書に登録して
おき、入力デ−タを該辞書中の部分列の内、最大長一致
する部分列の参照番号で指定して圧縮符号化された符号
データから元の入力データを復元するデータ復元装置と
して本発明は、符号データを復号する復号手段16と;入
力データを圧縮符号化する際に計測された出現頻度に基
づき、出現頻度が高いほど値が小さく出現頻度が低いほ
ど値が大きいコードに入力データを変換する変換規則の
逆変換規則に従って復号手段16の復元データを元の入力
データに逆変換する逆変換手段18とを備えたことを特徴
とする。
【作用】
このような構成を備えた本発明のデータ圧縮及び復元
装置によれば、入力文字のコード値の小さい順番に候補
データの連結アドレスを配列する外部ハッシュ法に従っ
た辞書検索リスト(連結リスト)をもつ辞書メモリを対
象とし、入力文字の出現頻度(使用頻度)を計測し、出
現頻度の高い文字ほど大きい値となるようにコード値を
変換し、この変換コードに基づいて連結リストを作成し
たため、出現頻度の高い文字ほど連結リストの先頭に配
列され、出現頻度の低い文字ほど連結リストの後方に配
置されることになる。従って、使用頻度の高い文字ほど
連結リストの検索に要する時間を短くでき、最小の検索
回数で入力文字に一致する候補文字の検索ができる。
【実施例】
第2図のデータ圧縮装置及びデータ復元装置としての
機能を備えた本発明の一実施例を示した実施例構成図で
ある。 第2図において、符号化の処理対象となる原データ
(文字列)はDMA(Direct Memory Access)制御回路24
を介して入力される。制御手段としてのMPU30は符号化
手段10及び復号手段16としての機能をプログラム制御に
より実現する。MPU30による符号化処理および復号処理
のため辞書メモリ20及び辞書検索回路22が設けられる。 MPU30の符号化手段10は、入力した原データから1文
字ずつ切り出して辞書検索回路22にセットした後に、辞
書検索回路22を起動する。 辞書検索回路22は、それまでの文字列の参照番号、即
ち符号化が済んだ符号コードωに新たに読込んだ1文字
Kを加えた文字列ωKの候補文字を読込み、入力文字K
と候補文字との一致検査(照合)を行ない、一致すれば
次の候補文字の有無の検出を行なう。 この辞書検索回路22により入力文字と候補文字の照
合、候補文字の有無の検出および辞書メモリ20に対する
次の候補文字の読出しはパイプライン制御により並行し
て行うことが望ましい。 LZW符号の符号化では、辞書メモリ20中の最大長一致
する文字列を求める。従って、入力文字を付加して文字
列を逐次一文字ずつ伸ばしていき、候補文字がなくなっ
たところで最大一致長の文字列であることが分かる。こ
のとき、最大一致長文字列まではアドレスωを使用した
参照番号で表わされており、その参照番号ωを入出力ポ
ート26から外部に圧縮された符号コードcode(ω)とし
て出力する。 辞書メモリ20は、第11図に示したように、外部ハッシ
ュ法に従ったファーストメモリ100、ネクストメモリ200
及び拡張メモリ300でなるメモリ構造をもち、文字コー
ドの値の小さい順番にファーストメモリ100とネクスト
メモリ200を使用した辞書検索リストとしての連結リス
トを持っており、この連結リストに対し別途設けた拡張
メモリ300に連結リストに対応する文字候補Kijを格納し
ている。 さらに本発明にあっては、新たに計測回路12、変換回
路14および逆変換回路18を設けている。 計測回路14は、DMA制御回路24を介して入力する1回
に処理する1群の文字列を対象として出現頻度を計測す
る。 例えば第3図(a)に示すように、1文字が8ビット
で表わされたデシマルコード値0〜255で示す256種類の
一群の入力データの出現頻度を計測回路14で計測する。
計測回路14の計測結果は変換回路14に送られ第3図
(b)に示す変換テーブルが作成される。 第3図(b)の変換テーブルは、同図(a)に示した
0〜255のデシマル値をもつ256種類の入力データのデシ
マルコード値をアドレスとして対応する出現頻度、即ち
出現頻度の順番を示す数値が格納されている。 例えば第3図(a)のデシマルコード値1の入力デー
タの出現頻度が10番目に高かったとすると、同図(b)
の変換テーブルの入力データのデシマルコード値1のア
ドレスには、出現頻度高さを示す値「10」が格納され
る。このためデシマルコード値1をもつ入力データは変
換テーブルにより出現頻度に基づいたコード値「10」に
変換される。 このような第3図に示す出現頻度の高い順に小さいコ
ード値へ変換する変換テーブルを備えた変換回路14によ
り、第3図(a)の入力データは同図(c)に示すデー
タに変換されて辞書検索回路22に与えられ、第10図に示
した処理フローに従ってLZW符号化のための辞書検索お
よび辞書登録が行われる。 そして辞書メモリ20の候補文字を検索するための外部
ハッシュ法に従った連結リストは、出現頻度の高い入力
データほど先頭に配置され、入力文字に一致する候補文
字を検索するまでの回数を最小限に抑えることができ
る。 一方、MPU30に設けた復号信号16による復元処理は、
従来の符号コードを元の文字列に戻す復元処理を行った
後に、第3図(b)に示した符号化時の変換テーブルと
は逆の変換を行う逆変換テーブルを使用して逆変換回路
18で変換することで、元の入力データを示すコード値に
戻すことができる。即ち、逆変換テーブルは、第3図
(b)の変換テーブルの登録内容となる「158,10,・・
・245」をアドレスとしてデシマルコード値「0,1,・・
・,255」を格納しており、復号されたコードをアドレス
として逆変換テーブルの内容を読出せばよい。 尚、上記の実施例にあっては、符号化時に入力したデ
ータについて計測回路12で出現頻度を計測して変換回路
14および逆変換回路18の変換テーブルを作成している
が、変換対象となる入力データの種別が決っている場合
には、予め同じ種類のデータを対象として出現頻度の計
測結果に基づいて各変換テーブルを作成しておき、既に
作成済みの変換テーブルおよび逆変換テーブルを使用し
て符号化処理および復号処理を行うようにしても良い。 また上記の実施例では、1つの入力文字の出現頻度を
計測しているが、他の実施例として、1つの前の入力文
字との組合せ関係、即ち2次元のデータについての出現
頻度の順番を計測しても良いし、更に、2つ以上前の文
字コードの組合せ関係から出現頻度の順番を計測するよ
うにしても良い。
【発明の効果】
以上説明したように本発明によれば、LZW符号化に入
力するデータの出現頻度を計測して頻度の高い順番から
値の小さいコードを割り付けるコード変換を行うこと
で、ソートされた連結リストの先頭には常に出現頻度の
高いデータを候補として登録することができ、出現頻度
の高いデータの検索を最小回数で行うことができ、符号
化をより一層高速化することができる。
【図面の簡単な説明】
第1図は本発明の原理説明図; 第2図は本発明の実施例構成図; 第3図は本発明によるコード変換説明図; 第4図は従来のLZW符号化処理フロー図; 第5図は従来のLZW復号化処理フロー図; 第6図はLZW符号化説明図; 第7図は辞書構成例の説明図; 第8図はLZW符号化説明図; 第9図は外部ハッシュ法のリスト構造説明図; 第10図は外部ハッシュ法を利用した従来のLZW符号化処
理フロー図; 第11図は第10図のLZW符号の検索手順と登録手順の説明
図; 第12図は第11図の辞書登録内容を示したツリー構成図で
ある。 図中、 10:符号化手順 12:計数手順(計数回路) 14:変換手段(変換回路) 16:復号手段 18:逆変換手段(逆変換回路) 20:辞書メモリ 22:辞書検索回路 24:DMA制御回路 26:入出力回路 30:MPU 100:ファーストメモリ 200:ネクストメモリ 300:拡張メモリ
フロントページの続き (72)発明者 中野 泰彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭59−231683(JP,A) 特開 昭60−116228(JP,A) 特開 昭61−13340(JP,A) 特開 昭64−7230(JP,A) 特開 昭58−155589(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/42

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】符号化済み文字データを相異なる部分列に
    分けて各部分列毎に異なる参照番号を付加して辞書に登
    録しておき、入力デ−タを該辞書中の部分列の内、最大
    長一致する部分列の参照番号で指定して圧縮符号化する
    デ−タ圧縮装置に於いて、 候補データの登録場所とは別に、入力データのコード値
    の小さい順番に前記候補データの連結アドレスを示す辞
    書検索リストを備え、該辞書検索リストに従って入力デ
    ータに一致する候補データを順次検索し、最後に一致し
    た候補データの連結アドレスで示される参照番号を一連
    の入力データ列の符号データとして出力する該符号化手
    段(10)と; 前記入力データの出現頻度を計測する計測手段(12)
    と; 該計測手段(12)の計測結果に基づき、出現頻度が高い
    ほど値が小さく出現頻度が低いほど値が大きいコードに
    入力データを変換するコード変換手段(14)と; を設け、前記コード変換手段(14)により出現頻度に従
    ってコード変換された入力データを前記符号化手段(1
    0)により符号化することを特徴とするデータ符号化装
    置。
  2. 【請求項2】請求項1記載のデータ圧縮装置に於いて、 前記計測手段(12)は、入力コードと1又は複数コード
    前からの入力コードとの組合せ関係から出現頻度を計測
    することを特徴とするデータ圧縮装置。
  3. 【請求項3】請求項1記載のデータ圧縮装置に於いて、 前記符号化手段(12)は、外部ハッシュ法のリスト構造
    に従ったファーストメモリ及び拡張メモリを有するネク
    ストメモリを備えた辞書メモリ(20)と; 前記入力データに基づいたアドレス発生により前記辞書
    メモリ(20)の拡張メモリに格納された入力データに一
    致する候補データを検索する辞書検索手段(22)と; を備えたことを特徴とするデータ圧縮装置の辞書検索方
    式。
  4. 【請求項4】符号化済み文字データを相異なる部分列に
    分けて各部分列毎に異なる参照番号を付加して辞書に登
    録しておき、入力データを該辞書中の部分列の内、最大
    長一致する部分列の参照番号で指定して圧縮符号化され
    た符号データから元の入力データを復元するデータ復元
    装置に於いて、 符号データを復号する復号手段(16)と; 入力データを圧縮符号化する際に計測された出現頻度に
    基づき、出現頻度が高いほど値が小さく出現頻度が低い
    ほど値が大きいコードに入力データを変換する変換規則
    の逆変換規則に従って前記復号手段(16)の復元データ
    を元の入力データに逆変換する逆変換手段(18)と; を備えたことを特徴とするデータ復元装置。
JP2245176A 1990-09-14 1990-09-14 データ圧縮及び復元装置 Expired - Lifetime JP3038233B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2245176A JP3038233B2 (ja) 1990-09-14 1990-09-14 データ圧縮及び復元装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2245176A JP3038233B2 (ja) 1990-09-14 1990-09-14 データ圧縮及び復元装置

Publications (2)

Publication Number Publication Date
JPH04123619A JPH04123619A (ja) 1992-04-23
JP3038233B2 true JP3038233B2 (ja) 2000-05-08

Family

ID=17129742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2245176A Expired - Lifetime JP3038233B2 (ja) 1990-09-14 1990-09-14 データ圧縮及び復元装置

Country Status (1)

Country Link
JP (1) JP3038233B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160684A (ja) * 1993-12-03 1995-06-23 Matsushita Electric Ind Co Ltd 文書圧縮装置および文書圧縮方法
US5635932A (en) * 1994-10-17 1997-06-03 Fujitsu Limited Lempel-ziv compression with expulsion of dictionary buffer matches
JP6536243B2 (ja) 2015-07-16 2019-07-03 富士通株式会社 符号化プログラム、符号化装置、符号化方法、照合プログラム、照合装置および照合方法

Also Published As

Publication number Publication date
JPH04123619A (ja) 1992-04-23

Similar Documents

Publication Publication Date Title
JP3241788B2 (ja) データ圧縮方式
JP3038233B2 (ja) データ圧縮及び復元装置
JP3038223B2 (ja) データ圧縮方式
JP3038234B2 (ja) データ圧縮装置の辞書検索方式
JP3241787B2 (ja) データ圧縮方式
JP2952067B2 (ja) データ圧縮方式
JPH0628149A (ja) 複数種類データのデータ圧縮方法
JPH05152971A (ja) データ圧縮・復元方法
JPH06161705A (ja) データ符号化方式及びデータ復元方式
JP3088740B2 (ja) データ圧縮及び復元方式
JP2774350B2 (ja) データ圧縮方法および圧縮データのデータ復元方法
JP3053656B2 (ja) データ圧縮における辞書登録方式
JP2825960B2 (ja) データ圧縮方法及び復元方法
JP2999561B2 (ja) データ圧縮及び復元装置
JP3132774B2 (ja) データ圧縮・復元装置
JP2952068B2 (ja) データ圧縮及び復元方式
JP3115066B2 (ja) 辞書検索方法
JP3105330B2 (ja) 画像データの圧縮復元方式
JP3012679B2 (ja) データ圧縮方法
JP3058711B2 (ja) データ圧縮及び復元方法
JP3100206B2 (ja) データ圧縮方法
JP3083329B2 (ja) データ圧縮復元方式
JPH05252049A (ja) データ圧縮処理方式及びデータ復元処理方式
JP3103172B2 (ja) 辞書検索方法
JP3051501B2 (ja) データ圧縮方法