JPH03270416A - データ圧縮および復元方式 - Google Patents
データ圧縮および復元方式Info
- Publication number
- JPH03270416A JPH03270416A JP7037890A JP7037890A JPH03270416A JP H03270416 A JPH03270416 A JP H03270416A JP 7037890 A JP7037890 A JP 7037890A JP 7037890 A JP7037890 A JP 7037890A JP H03270416 A JPH03270416 A JP H03270416A
- Authority
- JP
- Japan
- Prior art keywords
- character
- dictionary
- code
- registered
- input
- 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.)
- Pending
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
LZ−符号において、並列処理により復号化を可能とし
たデータ圧縮方式および並列処理により復号化する方式
に関し、 復号処理を高速化することを目的とし、入力文字列につ
いて異なる文字部分列ごとに順次符号化して、現われる
順にアドレス指定して辞書に登録し、登録されている辞
書アドレスより常に一定数小さい辞書参照アドレスを設
定し、現在の符号化対象文字部分列を上記辞書参照アド
レスまでの範囲での辞書を参照し、辞書参照アドレスの
範囲で登録済の過去の文字部分列のうち一致する最大長
の文字部分列を求め、その複製として現在の符号化対象
文字部分列を符号化し、復号側において並列処理を可能
とする構成を持つ。
たデータ圧縮方式および並列処理により復号化する方式
に関し、 復号処理を高速化することを目的とし、入力文字列につ
いて異なる文字部分列ごとに順次符号化して、現われる
順にアドレス指定して辞書に登録し、登録されている辞
書アドレスより常に一定数小さい辞書参照アドレスを設
定し、現在の符号化対象文字部分列を上記辞書参照アド
レスまでの範囲での辞書を参照し、辞書参照アドレスの
範囲で登録済の過去の文字部分列のうち一致する最大長
の文字部分列を求め、その複製として現在の符号化対象
文字部分列を符号化し、復号側において並列処理を可能
とする構成を持つ。
データ通信においては、データを圧縮することで、通信
速度を向上させることができる。
速度を向上させることができる。
特に、画像データの通信においては、データ量が多いた
め、データ圧縮、復号処理の高速化が望まれる。
め、データ圧縮、復号処理の高速化が望まれる。
本発明は、並列処理により高速度で復号化可能なデータ
圧縮および復号方式に関する。
圧縮および復号方式に関する。
データを圧縮する方法として、人力文字列を順次異なる
文字部分列ごとに順次符号化して記憶し、符号化済の過
去の最長の文字部分列の複製として現在の文字部分列を
符号化するデータ圧縮方式がある。
文字部分列ごとに順次符号化して記憶し、符号化済の過
去の最長の文字部分列の複製として現在の文字部分列を
符号化するデータ圧縮方式がある。
このような符号化方式には、増分分解型のZiv−Le
mpel符号による方式とそれを改良したLZ−符号に
よる方式があるが、本発明は、LZ−符号による方式に
関するものである。
mpel符号による方式とそれを改良したLZ−符号に
よる方式があるが、本発明は、LZ−符号による方式に
関するものである。
LZπ符号符号の符号化側においては、辞書に登録され
たデータを全て検索して、次に符号化データを決定し、
復号化側では、符号データを、これまで復元したデータ
をもとにして復号化し、復号データを得ている。即ち、
復号化側では、1つ前の符号が復号されていることが復
号化の前提条件となるため、復号処理は1符号ごとにす
るシーケンシャルな動作となり、通常の方法では、複数
の符号を同時に並列に復号化することは不可能である。
たデータを全て検索して、次に符号化データを決定し、
復号化側では、符号データを、これまで復元したデータ
をもとにして復号化し、復号データを得ている。即ち、
復号化側では、1つ前の符号が復号されていることが復
号化の前提条件となるため、復号処理は1符号ごとにす
るシーケンシャルな動作となり、通常の方法では、複数
の符号を同時に並列に復号化することは不可能である。
本発明は、LZW符号における符号化方式を改良し、復
号処理を並列実行できるようにした。
号処理を並列実行できるようにした。
LZW符号によるデータ圧縮は、文字列を異なる文字部
分列に分は辞書に登録されている過去に出現した文字列
のうちから最長−成文字列を探し、その番号により符号
化する。同時に、一致した最長文字列より一文字延ばし
た文字列をあらたに新たに出現した文字列として辞書に
登録するものである。
分列に分は辞書に登録されている過去に出現した文字列
のうちから最長−成文字列を探し、その番号により符号
化する。同時に、一致した最長文字列より一文字延ばし
た文字列をあらたに新たに出現した文字列として辞書に
登録するものである。
第8〜10図により従来のLZW符号化方弐を説明する
。
。
第8図(a)、 (b)、 (C)は、簡単のため、a
、bcの3文字よりなる場合についてデータを符号化し
て圧縮する場合および復号する場合を示している。
、bcの3文字よりなる場合についてデータを符号化し
て圧縮する場合および復号する場合を示している。
LZW符号では、予め辞書に全文字につき一文字からな
る文字列を初期値として登録してから符号化を始める。
る文字列を初期値として登録してから符号化を始める。
そして、文字列から、辞書に登録しである最長−数文字
部分列を捜し、その登録コードωをコードとして出力す
る。
部分列を捜し、その登録コードωをコードとして出力す
る。
一方、辞書には、その最長−成文字列に、不一致となっ
た次の一文字(拡張文字K)を足した文字列を継ぎ足し
た文字列を(ω、K)の組で表して辞書に登録する。
た次の一文字(拡張文字K)を足した文字列を継ぎ足し
た文字列を(ω、K)の組で表して辞書に登録する。
復号は符号化の逆の操作を行う。即ち、入力したコード
ωに対応する文字列の表現の組(ωK)を求める。次に
、同様に、ω°に対応する文字列の表現の組を求め、そ
のつと求めた拡張文字Kをスタンつておく。
ωに対応する文字列の表現の組(ωK)を求める。次に
、同様に、ω°に対応する文字列の表現の組を求め、そ
のつと求めた拡張文字Kをスタンつておく。
この手順を繰り返して、番号ωが一文字に一致するまで
繰り返し最後にスタックした文字を出力し、各文字列を
復元する。
繰り返し最後にスタックした文字を出力し、各文字列を
復元する。
そして、辞書には、罰回使ったコードωと今回復号した
文字列の第1文字にの&11(ω、K)を登録し、復元
辞書を更新する。
文字列の第1文字にの&11(ω、K)を登録し、復元
辞書を更新する。
第8図(a)、(b)により、従来のLZW符号化方法
をa、b、cの三文字のみよりなる場合について、具体
的に説明する。
をa、b、cの三文字のみよりなる場合について、具体
的に説明する。
予め、初期化において、登録辞書には一文字a、b、c
をそれぞれコード1,2.3として登録しておく。
をそれぞれコード1,2.3として登録しておく。
(1) 図(a)に示す入力文字列において、先ず、
先頭の文字aを人力する。aは辞書にあるので、aのコ
ードが1なので、ω−1として、次の文字b (K=b
)を入力する。その文字部分列ab(ω=1.に=b)
は辞書に登録されていないので、登録コード1を出力し
、ab(lb)を登録コード4で辞書に登録する。
先頭の文字aを人力する。aは辞書にあるので、aのコ
ードが1なので、ω−1として、次の文字b (K=b
)を入力する。その文字部分列ab(ω=1.に=b)
は辞書に登録されていないので、登録コード1を出力し
、ab(lb)を登録コード4で辞書に登録する。
(2) 次に、いま入力したbを文字列の先頭文字とし
て(ω=2とする)、次の文字a (K=a)を人力す
る。
て(ω=2とする)、次の文字a (K=a)を人力す
る。
そこで、作成された文字部分列ba(ω=2゜K=a
)は、辞書に未登録であるので、登録コード2を出力し
、ba (2a)を登録コード5として、に登録する。
)は、辞書に未登録であるので、登録コード2を出力し
、ba (2a)を登録コード5として、に登録する。
(3) さらに、(2)で入力したaを文字列の先頭と
して(ω=1)次の文字b (K=b)を入力する。
して(ω=1)次の文字b (K=b)を入力する。
文字列abは、既に登録コード4で登録されているので
、ωを現在の文字部分列abの登録コード4として続く
文字Cを人力する(ω=4.に=C)。
、ωを現在の文字部分列abの登録コード4として続く
文字Cを人力する(ω=4.に=C)。
文字列abcは未登録であるので、一致した最長文字部
分列abを登録コード4で出力し、文字列abc(4c
)を登録コード6で、辞書に登録する。
分列abを登録コード4で出力し、文字列abc(4c
)を登録コード6で、辞書に登録する。
(4) そこで、今人力した文字Cを文字列の先頭文字
として(ω=3)、続く文字すを入力する(K=b)。
として(ω=3)、続く文字すを入力する(K=b)。
文字列cb(3b)は辞書に未登録であるので、文字C
を登録コード3(初期化において登録済)で出力し、文
字列cb(3b)を登録コード7として辞書に登録する
。
を登録コード3(初期化において登録済)で出力し、文
字列cb(3b)を登録コード7として辞書に登録する
。
以下同様の手順により、続く文字列について、登録済の
文字部分列から一致する最大長の文字部分列の登録コー
ドにより出力し、未登録の文字部分列は新たに登録コー
ドを定めて辞書に登録し、辞書を更新してゆく。
文字部分列から一致する最大長の文字部分列の登録コー
ドにより出力し、未登録の文字部分列は新たに登録コー
ドを定めて辞書に登録し、辞書を更新してゆく。
図(b)は図(a)の入力文字列について、LZW符号
により作成した参照辞書を示す。
により作成した参照辞書を示す。
人力されたコードを復号する場合には、例えば、符号8
が入力されると、図示の変換テーブルにより、8=5b
を読み取り、次に5=2a、であるので、8=2abと
し、さらに2=bから文字列babを復号する。
が入力されると、図示の変換テーブルにより、8=5b
を読み取り、次に5=2a、であるので、8=2abと
し、さらに2=bから文字列babを復号する。
図(C)に、LZW符号の復号方式を示す。
図(C)は図(a)における文字列の出力コードを復号
する場合を示す。
する場合を示す。
復号は、符号化の手順の逆の操作を行う。
あらかしめ、初期化において、登録辞書には一文字a、
b、cをそれぞれコードl、 2.3として登録して
おく。
b、cをそれぞれコードl、 2.3として登録して
おく。
図示の入力コードを復号する場合により、従来のLZW
符号の復号手順を説明する。
符号の復号手順を説明する。
(1) 先ず、最初の人力コード1が人力されると、辞
書を参照して文字aを出力する。
書を参照して文字aを出力する。
ここで、入力コードlは直前コードレジスタ(Oldc
ode )に残しておく。
ode )に残しておく。
(2) 次に入力コード2によりbを出力する。
このとき、(1)の処理における入力コード1と、今復
元した文字列のbの組の符号1bを辞書に登録コード4
として登録する。
元した文字列のbの組の符号1bを辞書に登録コード4
として登録する。
そして、入力コード2は、01dcodeに保存してお
く。
く。
(3) 次に人力コード符号4により辞書を参照してl
bを読み取り、さらにlbから文字列abを復元する。
bを読み取り、さらにlbから文字列abを復元する。
そして、(2)で復元した文字列の第1文字aと01d
codeの2とにより変換コード2aを辞書に登録コー
ド5で登録する。
codeの2とにより変換コード2aを辞書に登録コー
ド5で登録する。
入力コード4は01dcodeに移して保存する。
(4) 次の入力コード3を入力する。
3はCとして辞書に登録済であるから文字Cを復元し、
01dcodeのコード4といま復号した文字Cにより
変換コード4Cを辞書に登録コード6で登録する。
01dcodeのコード4といま復号した文字Cにより
変換コード4Cを辞書に登録コード6で登録する。
そして、入力コード3を01dcodeに移して保存す
る。
る。
(5) 次の入力コード5を読み取る。
入力コード5は既に変換コード2aとして登録されてい
るので、2aより、文字部分列baを復号する。
るので、2aより、文字部分列baを復号する。
そして、今復号した文字部分列の第1文字すと01dc
odeに保存されているコード3により3bを辞書に登
録コード7で登録する。 入力コード5は01dcod
eに移して保存する。
odeに保存されているコード3により3bを辞書に登
録コード7で登録する。 入力コード5は01dcod
eに移して保存する。
同様の順を繰り返して、人力コードを順次復号し、辞書
を更新してゆく。
を更新してゆく。
第9図に、従来のLZW符号化方式の符号化のフローを
示す。
示す。
上記の文字列ababcについて符号化する場合を例と
してフローを説明する。
してフローを説明する。
■ 初期化である。即ち、−文字a、b、cを辞書に登
録する(a=1.b=2、C−3)。
録する(a=1.b=2、C−3)。
同時に、辞書の先頭アドレスnを設定する。
図のフローは、256文字ある場合についてのものであ
るので、先頭アドレスとしてn=256を設定しである
が、今の場合は、a、b、c三文字のみの場合を考えて
いるので、n=4を初期値として考える。
るので、先頭アドレスとしてn=256を設定しである
が、今の場合は、a、b、c三文字のみの場合を考えて
いるので、n=4を初期値として考える。
(1) ■ 文字列の第1文字K (K=a)を語頭文
字列のωとする。
字列のωとする。
(2) ■ 次の文字すを読む。
■ 入力文字列の最後の文字の処理を終わっている場合
には、次の文字にはないので、終了処理に進む。
には、次の文字にはないので、終了処理に進む。
今は、入力文字列があるので、■に進む。
■ 今ω=a、に=bであり、ωに=a bの文字部分
列は辞書にないので、■に進む。
列は辞書にないので、■に進む。
■ 辞書の書き込み可能領域の最大アドレスNMAXよ
り現時点の辞書アドレスnが小さいか判断する。今の場
合、辞書アドレスnはNMAXより小さいので■に進む
。
り現時点の辞書アドレスnが小さいか判断する。今の場
合、辞書アドレスnはNMAXより小さいので■に進む
。
■ ω=aの登録コード(コード(ω))として1を出
力する。辞書にωに=abを登録コード4で登録する。
力する。辞書にωに=abを登録コード4で登録する。
■ 入力文字にの登録コードをωに移し、同時に辞書の
アドレスnを1つ進める。
アドレスnを1つ進める。
(3) 再び、■に戻り、次の文字aを入力する。
今、ω−2であるので■でωに=2aを辞書と照合する
。未登録であり、n<NMAXであるので、■でbの登
録コード2(コード(ω))を出力する。そしてωに=
2aを辞書に登録コード5(n−5)で登録する。さら
にωにいま入力した文字aのコード1を移す。そして再
び■に戻る。
。未登録であり、n<NMAXであるので、■でbの登
録コード2(コード(ω))を出力する。そしてωに=
2aを辞書に登録コード5(n−5)で登録する。さら
にωにいま入力した文字aのコード1を移す。そして再
び■に戻る。
(4) 次の文字すを入力する。
この場合は、■における判断で、ωに=1bは登録済で
あるので、■に進み、ω=4とする。そこで、■に戻る
。
あるので、■に進み、ω=4とする。そこで、■に戻る
。
(5) 次の文字CをKとして人力し、以降の処理を行
う。
う。
■は、最終文字が、入力済の場合で、最終文字は■の処
理でωに入力されている状態であるから、そのコード(
コード(ω))を出力して符号の作成処理を終了する。
理でωに入力されている状態であるから、そのコード(
コード(ω))を出力して符号の作成処理を終了する。
第10図は、従来のLZW符号化方式の復号化のフロー
を示す。
を示す。
第8図において例として説明した文字列の出力符号を用
いてフローを説明する。
いてフローを説明する。
復号化には、入力コードメモリ(CODE) 、人力コ
ードを格納する入力メモリ(INcode) 、直前コ
ードを格納するメモリ(Oldcode ) 、復号文
字の第1文字を格納するメモリ(FINcha r )
順次復元される復号文字を1時格納するメモリ(スタッ
ク)を用いる。
ードを格納する入力メモリ(INcode) 、直前コ
ードを格納するメモリ(Oldcode ) 、復号文
字の第1文字を格納するメモリ(FINcha r )
順次復元される復号文字を1時格納するメモリ(スタッ
ク)を用いる。
(1)■ 初期化により、−文字についての符号は予め
、作成しておく。
、作成しておく。
最初のコードを読み込む(今の場合、■)。
01dcodeに読み込んだコードを入れる。
入力コード1と辞書の登録コードを参照して、文字にと
してaを出力する。
してaを出力する。
aをFINcha rに移して一時保存する。
(2) ■ 次のコード(CODE)を読み、INc。
deに入れる。
■ 最後の符号まで読み取ってコードがない場合には処
理を終了する。
理を終了する。
いまの場合は次のコード2があるので、■に進む。
■ Kをスタックに移す。第8図(b)における登録コ
ード8のように、8が5bで5が2aであるようなコー
ドの場合は、ωにの文字Kを順次スタツクに入力し、ω
を順次変換していってωKが一文字になるまで処理を繰
り返す。
ード8のように、8が5bで5が2aであるようなコー
ドの場合は、ωにの文字Kを順次スタツクに入力し、ω
を順次変換していってωKが一文字になるまで処理を繰
り返す。
今の例の場合にとしてコード2に対応するbをスタック
に格納する。
に格納する。
■ スタックに格納された文字すを出力する。
■ 復号文字の第1文字、いまの場合は文字すをFIN
charに格納する。
charに格納する。
そして、(Oldcode 、 K)の組を辞書に登録
する。
する。
今の場合、01dcodeには初期化において読み込ん
だ文字列の第1文字aのコード1が格納されている。ま
たに=bであるのでlbを登録コード4で格納する(新
しく登録する文字部分列の辞書アドレス(=登録コード
)nは4から始まるものとする)。
だ文字列の第1文字aのコード1が格納されている。ま
たに=bであるのでlbを登録コード4で格納する(新
しく登録する文字部分列の辞書アドレス(=登録コード
)nは4から始まるものとする)。
nを1インクリメントする。
さらに、01dcodeにINcodeのデータを移す
、いまの場合、INcodeのデータは2であるから、
01dcodeを2とする。
、いまの場合、INcodeのデータは2であるから、
01dcodeを2とする。
(3) そこで、■に戻り、次の符号を読む。
次の符号は4である。そこで、■で辞書を参照すると符
号4は1bであるから、■でωに=1bから、スタック
に順次すとaを格納し、■で文字abを出力する。さら
に、復号文字列の第1文字aをFINcharに格納す
る。そして、いま01dcodeは2と復号文字の第1
文字をに=aにより、(2゜a)の組合せにより、符号
2aを辞書に登録コード5 (n=5)で登録する。モ
してnを1インクリメントする。
号4は1bであるから、■でωに=1bから、スタック
に順次すとaを格納し、■で文字abを出力する。さら
に、復号文字列の第1文字aをFINcharに格納す
る。そして、いま01dcodeは2と復号文字の第1
文字をに=aにより、(2゜a)の組合せにより、符号
2aを辞書に登録コード5 (n=5)で登録する。モ
してnを1インクリメントする。
さらに、01dcodeに人力符号を移し、いまの場合
01dcodeを4とする。そして、■以降の処理を繰
り返す。
01dcodeを4とする。そして、■以降の処理を繰
り返す。
上記のように、入力コードを復号し、復号した文字列の
コードを記憶しておいて、次の入力コードにより、次の
文字列を復号した時点において、記憶しであるコードに
対応する文字部分列より1文字延ばした、未登録の文字
部分列を辞書に登録し、辞書を復元する。
コードを記憶しておいて、次の入力コードにより、次の
文字列を復号した時点において、記憶しであるコードに
対応する文字部分列より1文字延ばした、未登録の文字
部分列を辞書に登録し、辞書を復元する。
図のフローにおいて、■は、例外的な処理の場合である
。
。
上記のように、LZW号符号による圧縮処理では、符号
化においては、注目文字部分列の符号化を終了した時点
で、−文字のばした文字部分列を辞書に登録できるが、
復号化において、注目文字列を1文字延ばすときは、次
の文字部分列の先頭文字と合わせて辞書に登録するため
、次の文字列の復号が終了した時点でないと登録を行う
ことができない。
化においては、注目文字部分列の符号化を終了した時点
で、−文字のばした文字部分列を辞書に登録できるが、
復号化において、注目文字列を1文字延ばすときは、次
の文字部分列の先頭文字と合わせて辞書に登録するため
、次の文字列の復号が終了した時点でないと登録を行う
ことができない。
そのため、入力された符号を復元するために必要な登録
コードが、辞書に登録されていないような場合を生じる
ことがある。このような場合には、入力符号を復号でき
ないわけであるが、■はその場合の復号処理を行うため
のものである。
コードが、辞書に登録されていないような場合を生じる
ことがある。このような場合には、入力符号を復号でき
ないわけであるが、■はその場合の復号処理を行うため
のものである。
例えば、第8図(C)の入力コードにおいて、入力コー
ド10が入力された場合を考える。
ド10が入力された場合を考える。
この時、01dcodeは1であり、FINcharは
aである。
aである。
この時点では、辞書への登録は登録コード9までてあり
、10は登録されていない。
、10は登録されていない。
そのため、入力コード10を復元することができない。
そこで、■により、FINcharのaおよび、01d
codeの1により、1aをINcodeに入力する。
codeの1により、1aをINcodeに入力する。
その後は、■以降の通常の場合と同様の処理により、a
aを出力し、laを辞書に符号10で登録する。
aを出力し、laを辞書に符号10で登録する。
従来のLZW符号は学習を重ねることにより圧縮率が向
上する。学習した結果のデータを辞書としてメモリに蓄
え、符号化、復号化の処理はこれら辞書に蓄えられたデ
ータへのアクセスを中心に処理が行われる。しかも、従
来のLZ−符号においては、前述のように、復号処理は
、1つ前の符号が復号されていることが前提になってい
るため、復号処理はl符号ごとに復号するシーケンシャ
ルな動作方式をとらざるを得す、並列処理により復号化
することは不可能であった。
上する。学習した結果のデータを辞書としてメモリに蓄
え、符号化、復号化の処理はこれら辞書に蓄えられたデ
ータへのアクセスを中心に処理が行われる。しかも、従
来のLZ−符号においては、前述のように、復号処理は
、1つ前の符号が復号されていることが前提になってい
るため、復号処理はl符号ごとに復号するシーケンシャ
ルな動作方式をとらざるを得す、並列処理により復号化
することは不可能であった。
そのため、従来のLZ−符号は、辞書に蓄えられたデー
タ量が増大するにつれ、符号化、復号化の処理には非常
に多くの時間を必要とするものであった。
タ量が増大するにつれ、符号化、復号化の処理には非常
に多くの時間を必要とするものであった。
本発明は、LZ−符号において、復号処理を、複数の圧
縮符号について同時に復号する並列実行を可能にするデ
ータ圧縮方式を得ることを目的とする。
縮符号について同時に復号する並列実行を可能にするデ
ータ圧縮方式を得ることを目的とする。
本発明は、LZ−符号において、符号化側で符号化検索
のために参照する辞書の大きさを、全文字部分列の登録
されている辞書の大きさより小さくするようにした。
のために参照する辞書の大きさを、全文字部分列の登録
されている辞書の大きさより小さくするようにした。
即ち、現時点における辞書の最大アドレスをnとすると
、現文字部分列を符号化するために参照しする辞書はn
より小さいアドレスnsまでの部分とする。
、現文字部分列を符号化するために参照しする辞書はn
より小さいアドレスnsまでの部分とする。
この2つのアドレスの差、dx=n−nsがあるため、
復号化側では、復号処理において、現在登録されている
辞書のdx前までの辞書のデータにより復号することが
できる。
復号化側では、復号処理において、現在登録されている
辞書のdx前までの辞書のデータにより復号することが
できる。
そのため、復号側では、アドレスの差分dx個の符号に
ついては、並列に復号することが可能になる。
ついては、並列に復号することが可能になる。
そのため、復号処理を高速化することができる。
本発明のデータ圧縮処理の基本構成を第1図により説明
する。
する。
図において、1は入力文字列、2は人力文字列を1文字
づつ読み取る文字読み出し部、3は文字読み取り部2に
より読み取られた文字により構成される文字部分列、4
は辞書を参照して文字部分列と照合をする辞書照合部で
、一致した場合には、文字読み出し部2が次の一文字を
読み出して、新たな文字部分列を作成するようにし、一
致しなかった場合には、不一致となった文字部分列を辞
書書き込み処理部に出力し、同時に一致した最大文字列
を符号化処理部に出力するもの、5は辞書照合部の不一
致となった文字部分列のうちの最後の1文字を除いた最
大−成文字列、6は最大−成文字列を符号化する符号化
処理部、7は辞書照合部で不一致となった最大−数文字
部分列に次の1文字を加えた登録文字列もの、8は登録
文字列の書き込み処理部、9は異なる文字部分列を出現
した順にアドレスを指定して登録した辞書、10はあら
かじめ1文字等の文字を登録しておく初期登録辞書、1
1は辞書への書き込みの終了処理、14は文字部分列を
照合する時点における辞書アドレスnを判定する辞書ア
ドレス判定部、15は辞書アドレスnを表わすデータ、
16は辞書アドレスnと照合処理において参照する辞書
のアドレスである辞書参照アドレスnsとの差dx設定
部、17は差分dxのデータ、18は辞書参照アドレス
ns設定部、19は辞書参照アドレスnsのデータであ
る。
づつ読み取る文字読み出し部、3は文字読み取り部2に
より読み取られた文字により構成される文字部分列、4
は辞書を参照して文字部分列と照合をする辞書照合部で
、一致した場合には、文字読み出し部2が次の一文字を
読み出して、新たな文字部分列を作成するようにし、一
致しなかった場合には、不一致となった文字部分列を辞
書書き込み処理部に出力し、同時に一致した最大文字列
を符号化処理部に出力するもの、5は辞書照合部の不一
致となった文字部分列のうちの最後の1文字を除いた最
大−成文字列、6は最大−成文字列を符号化する符号化
処理部、7は辞書照合部で不一致となった最大−数文字
部分列に次の1文字を加えた登録文字列もの、8は登録
文字列の書き込み処理部、9は異なる文字部分列を出現
した順にアドレスを指定して登録した辞書、10はあら
かじめ1文字等の文字を登録しておく初期登録辞書、1
1は辞書への書き込みの終了処理、14は文字部分列を
照合する時点における辞書アドレスnを判定する辞書ア
ドレス判定部、15は辞書アドレスnを表わすデータ、
16は辞書アドレスnと照合処理において参照する辞書
のアドレスである辞書参照アドレスnsとの差dx設定
部、17は差分dxのデータ、18は辞書参照アドレス
ns設定部、19は辞書参照アドレスnsのデータであ
る。
第1図の基本構成の作用を、具体的な文字列を例として
説明する。
説明する。
文字がa、b、cの三文字のみよりなり、人力文字列a
babcbab・・・の場合について考える。
babcbab・・・の場合について考える。
辞書には、あらかじめ、三文字a、b、cはそれぞれ登
録番号(辞書アドレスn)1.2.3で登録しておく。
録番号(辞書アドレスn)1.2.3で登録しておく。
辞書アドレスnと辞書参照アドレスnsの差dx=3と
する。
する。
dx=3に対応して、始めの3つの符号が出力されるま
では、従来のLZ−符号方式により符号化する。
では、従来のLZ−符号方式により符号化する。
(1) 即ち、文字読み出し部2は第1文字aを読み取
り、辞書照合部lは辞書を参照して、致を判定する。そ
こで、文字読み取り部2は次の第2文字すを読み取る。
り、辞書照合部lは辞書を参照して、致を判定する。そ
こで、文字読み取り部2は次の第2文字すを読み取る。
辞書照合部4は文字部分列すを辞書を参照し、不一致を
判定する。
判定する。
そこで辞書書き込み処理部は文字部分列abを登録番号
4で登録する。
4で登録する。
同時に、符号化処理部6は第文字aを符号lで出力する
。
。
(2) 同様に、文字読み出し部2は次に、第3番目の
文字aを読み取り、文字部分列baを辞書照合部は照合
する。
文字aを読み取り、文字部分列baを辞書照合部は照合
する。
その結果、その文字部分列は不一致となるので、baを
辞書に登録番号5で登録し、第2番目の文字すを符号2
で出力する。
辞書に登録番号5で登録し、第2番目の文字すを符号2
で出力する。
(3) 次に、第4番目のbを読み取り、文字部分列b
aを作成する。この文字部分列は、照合処理により一致
となるので、次の第5番目の文字Cを読み取り、文字部
分列abcを作成する。文字部分列abcは不一致とな
るので、辞書に登録番号6て登録する。同時に最大−数
文字部分列abを登録番号4で符号化して出力する。
aを作成する。この文字部分列は、照合処理により一致
となるので、次の第5番目の文字Cを読み取り、文字部
分列abcを作成する。文字部分列abcは不一致とな
るので、辞書に登録番号6て登録する。同時に最大−数
文字部分列abを登録番号4で符号化して出力する。
以上は、従来のLZ−符号符号による符号化方式である
。これ以降、本発明の符号化方式により符号化してゆく
。
。これ以降、本発明の符号化方式により符号化してゆく
。
(4)次に、第6番目の文字すを読み取る。現時点でn
=6であるので、辞書参照アドレスn5=3となり、現
在の文字部分列cbの照合は、辞書のアドレス3までと
する。
=6であるので、辞書参照アドレスn5=3となり、現
在の文字部分列cbの照合は、辞書のアドレス3までと
する。
文字部分列cbは辞書参照アドレス3までに登録されて
いないので、照合不一致となり文字部分列cbの登録処
理をする。
いないので、照合不一致となり文字部分列cbの登録処
理をする。
文字部分列cbを登録番号7で登録し、同時に最大−数
文字部分列であるCを登録番号3により符号化して出力
する。
文字部分列であるCを登録番号3により符号化して出力
する。
nおよびnsをそれぞれ1インクリメントする。
(5) 次に、第7番目の文字aを読み取る。
現時点において、n5w4であるから、文字部分列の参
照は参照辞書アドレス4までである。
照は参照辞書アドレス4までである。
現文字部分列baは参照辞書アドレスまでの範囲にない
ので、照合結果は不一致となる。
ので、照合結果は不一致となる。
本発明のデータ圧縮方式では、このような辞書参照アド
レスの範囲では登録されていないが、辞書アドレスns
+1からn−1の範囲に既に登録されている文字部分列
が現れることがある。このような場合該当する文字部分
列を二重登録しても、登録処理をしないようにしても、
復号例の処理方式に対応させておけば、いずれでもよい
。
レスの範囲では登録されていないが、辞書アドレスns
+1からn−1の範囲に既に登録されている文字部分列
が現れることがある。このような場合該当する文字部分
列を二重登録しても、登録処理をしないようにしても、
復号例の処理方式に対応させておけば、いずれでもよい
。
ここでは二重登録を可能とする。文字列baについて登
録するとともに、最大−数文字部分列すを登録コード2
で符号化して出力する。
録するとともに、最大−数文字部分列すを登録コード2
で符号化して出力する。
以下同様に続く入力文字列を照合時の辞書のアドレスn
よりdxだけ常に小さい辞書参照アドレスnsにより照
合して、最大−数文字列部分を符号化し、新しく現れる
文字部分列の登録処理を進めてゆく。
よりdxだけ常に小さい辞書参照アドレスnsにより照
合して、最大−数文字列部分を符号化し、新しく現れる
文字部分列の登録処理を進めてゆく。
次に、本発明によるLZ−符号の復号化方式を説明する
。
。
第2図は本発明の圧縮データの復号処理の基本構成を示
す。
す。
図において、21は、入力符号、22は入力符号読み取
り部、23.24.25はそれぞれの符号番号(1)、
(2)、(3)として並列処理するために入力符号、2
6.27.28は入力符号を並列処理するための復号部
、29は復号文字列、30は初期登録辞書で、1文字等
の文字をあらかじめ登録しておくもの、31は辞書、3
3は辞書書き込み処理部、34は書き込みの終了処理、
35.36.37は入力符号を辞書と参照する照合処理
、40は新しく出現する文字部分列を作成するため、復
号されている現文字列より一つ前に復号された直前文字
部分列、41は新しい文字部分列を作成するための現文
字部分列、42は直前文字部分列と現文字部分列の第1
文字により登録文字部分列を作成する登録文字部分列作
成部である。
り部、23.24.25はそれぞれの符号番号(1)、
(2)、(3)として並列処理するために入力符号、2
6.27.28は入力符号を並列処理するための復号部
、29は復号文字列、30は初期登録辞書で、1文字等
の文字をあらかじめ登録しておくもの、31は辞書、3
3は辞書書き込み処理部、34は書き込みの終了処理、
35.36.37は入力符号を辞書と参照する照合処理
、40は新しく出現する文字部分列を作成するため、復
号されている現文字列より一つ前に復号された直前文字
部分列、41は新しい文字部分列を作成するための現文
字部分列、42は直前文字部分列と現文字部分列の第1
文字により登録文字部分列を作成する登録文字部分列作
成部である。
第2図の基本構成の作用は、次の通りである。
入力符号が124324・・・であり、復元文字はa、
b、cの3文字のみよりなり、a、b、Cについては、
あらかじめ、それぞれ登録番号l、2.3で辞書に登録
しておく。
b、cの3文字のみよりなり、a、b、Cについては、
あらかじめ、それぞれ登録番号l、2.3で辞書に登録
しておく。
dx=3として、3つの入力符号について、並列に復号
処理する場合を考える。
処理する場合を考える。
dχ=3に対応して、最初の3つの符号については、従
来どうりのLZ−符号の復号方式により復号化する。
来どうりのLZ−符号の復号方式により復号化する。
(1) 第1番目の符号Iは、初期登録辞書30を参照
しして、復号部により文字aを復号する。
しして、復号部により文字aを復号する。
そして、直前文字部分列として残す。
(2) 次に、第2番目の符号2を入力し、初期登録辞
書30を参照して、同様に文字すを復号し、同時に、(
1)で復号した直前文字aとにより、登録文字部分列作
成部42は文字部分列abを作威し、辞書書き込み処理
部33は登録番号4(辞書アドレス4)で登録する。
そして、復号した文字すを直前文字部分列として残す。
書30を参照して、同様に文字すを復号し、同時に、(
1)で復号した直前文字aとにより、登録文字部分列作
成部42は文字部分列abを作威し、辞書書き込み処理
部33は登録番号4(辞書アドレス4)で登録する。
そして、復号した文字すを直前文字部分列として残す。
(3) 同様に、第3番目の符号4を読み取り、辞書を
参照して文字部分列abを復号する。同時に直前文字す
とにより、(2)で復号した文字部分列すとにより文字
部分列ba登録番号5で辞書に登録する。そして、復号
した文字部分列abを直前文字部分列として残す。
参照して文字部分列abを復号する。同時に直前文字す
とにより、(2)で復号した文字部分列すとにより文字
部分列ba登録番号5で辞書に登録する。そして、復号
した文字部分列abを直前文字部分列として残す。
ここまでは、従来のLZ−符号の復号化方式である。以
降は、本発明の並列処理により復号処理を進めて行く。
降は、本発明の並列処理により復号処理を進めて行く。
(4) 続く3つの符号3.2.4を読み取り、それぞ
れ、入力順に符号番号(1)、(2)、(3)として、
現時点で復元されている辞書(辞書アドレス4)を参照
して各符号を復号する。
れ、入力順に符号番号(1)、(2)、(3)として、
現時点で復元されている辞書(辞書アドレス4)を参照
して各符号を復号する。
即ち、入力符号(1)は、3であるので復号部26によ
り、辞書31を参照して文字Cを復号する。
り、辞書31を参照して文字Cを復号する。
入力符号(2)は、2であるので、復号部27により辞
書31を参照して文字すを復号する。
書31を参照して文字すを復号する。
入力符号(3)は、4であるので復号部28により辞書
31を参照して、文字部分列abを復号する。
31を参照して、文字部分列abを復号する。
0そして、辞書の復元は、符号番号のに順に従って、復
号文字部分列より、従来と同し方法で復号してゆく。
号文字部分列より、従来と同し方法で復号してゆく。
即ち、入力符号(1)の復号文字Cを現文字列とし、直
前文字部分列abとにより、文字部分列abcを登録番
号6で登録する。そして、Cを直前文字として残し、次
の復号文字すとにより文字部分列cbを辞書に登録番号
7で登録する。そして、復号文字すを直前文字として残
す。
前文字部分列abとにより、文字部分列abcを登録番
号6で登録する。そして、Cを直前文字として残し、次
の復号文字すとにより文字部分列cbを辞書に登録番号
7で登録する。そして、復号文字すを直前文字として残
す。
同様に、次の復号文字のabを現文字列として、その先
頭文字aと1つ前の文字すとにより、登録文字部分列作
成部42は登録文字部分列を作成する。この文字部分列
は登録済であるが、二重登録を許す方式の場合には辞書
に登録し、二重登録をしない方式の場合には登録しない
。ここでは、復号化に合わせてbaを登録コード8で登
録する。
頭文字aと1つ前の文字すとにより、登録文字部分列作
成部42は登録文字部分列を作成する。この文字部分列
は登録済であるが、二重登録を許す方式の場合には辞書
に登録し、二重登録をしない方式の場合には登録しない
。ここでは、復号化に合わせてbaを登録コード8で登
録する。
並列処理により復号された各文字列は、入力番号の順に
直列文字列に並べ換えて、文字列ababcbab・・
・を復号する。
直列文字列に並べ換えて、文字列ababcbab・・
・を復号する。
以下同様の手順で、入力符号を3つづつ取り出して並列
復元処理を進め、全入力符号を復号する。
復元処理を進め、全入力符号を復号する。
なお、上記の例では、3つづつの入力符号を並列処理す
る場合について説明したが、dxを任意にとることによ
り並列処理する装置数を可変にとることが可能である。
る場合について説明したが、dxを任意にとることによ
り並列処理する装置数を可変にとることが可能である。
本発明のデータ圧縮方式および復元方式の実施例を第3
図〜第7図により説明する。
図〜第7図により説明する。
第3図は、符号化処理の装置構成実施例を示す。
図において、50は入力文字Kを格納する入力文字格納
レジスタ、51は文字部分列ωを格納する文字部分列格
納レジスタ、52は辞書アドレスnを格納する辞書アド
レスレジスタ、53は辞書参照アドレスnsを格納する
辞書参照アドレスレジスタ、54はアドレス差分dxを
格納するアドレス差分レジスタ、55はメモリよりなる
プログラム処理における作業領域、56は辞書を格納す
る辞書メモリ、57は文字部分列の登録処理等を行う辞
書作成手段、58は文字部分列の符号を作成する符号作
成手段、59は符号出力手段、60は入力文字を読み取
る入力文字読み取り手段である。
レジスタ、51は文字部分列ωを格納する文字部分列格
納レジスタ、52は辞書アドレスnを格納する辞書アド
レスレジスタ、53は辞書参照アドレスnsを格納する
辞書参照アドレスレジスタ、54はアドレス差分dxを
格納するアドレス差分レジスタ、55はメモリよりなる
プログラム処理における作業領域、56は辞書を格納す
る辞書メモリ、57は文字部分列の登録処理等を行う辞
書作成手段、58は文字部分列の符号を作成する符号作
成手段、59は符号出力手段、60は入力文字を読み取
る入力文字読み取り手段である。
第4図に第3図の装置構成のフローの実施例を示す。
図示の番号に従って説明する。
■ 1文字等の文字をあらかしめ辞書に登録する等の初
期化をする。
期化をする。
辞書アドレスnに辞書の現登録文字列数を書き込む。
入力文字列の第1番目の文字を文字部分列格納レジスタ
ωに格納する。
ωに格納する。
■ 予め定めたdx個のコードを出力するまでは、従来
のLZW符号の符号化方式に従って符号化する。
のLZW符号の符号化方式に従って符号化する。
■ 辞書参照アドレスnsをn−dxとする。
■ 入力文字列から次の文字人力Kを読み取る。
■ 入力文字があれば■に進む。
■、■ 読み取った文字部分列ωKが辞書の辞書参照ア
ドレスnsまでの範囲に見出せなくなるまで■〜■の処
理を繰り返し、文字部分列ωKが辞書に存在しないこと
をit認すると■に進む。
ドレスnsまでの範囲に見出せなくなるまで■〜■の処
理を繰り返し、文字部分列ωKが辞書に存在しないこと
をit認すると■に進む。
■ NMAXは、辞書定義領域の最大アドレスであり、
nがNMAXを超えた場合には文字部分列の登録処理を
行わない。辞書アドレスnがNMAX以下であれは■に
進む。
nがNMAXを超えた場合には文字部分列の登録処理を
行わない。辞書アドレスnがNMAX以下であれは■に
進む。
■ 最大−数文字部分列であるωのコードを出力し、ω
Kを辞書アドレスnに登録する。そして、辞書アドレス
をn+1、辞書参照アドレスを1s+lとする。
Kを辞書アドレスnに登録する。そして、辞書アドレス
をn+1、辞書参照アドレスを1s+lとする。
最後に読み取ったKを文字部分列格納レジスタωに格納
して■以下かの処理を繰り返す。
して■以下かの処理を繰り返す。
[相] 入力文字列を全て読み取って読み取るべき入力
文字がなくなると、それまで読み取ってあっり最大−数
文字部分列ωをコードで出力して処理を終了する。
文字がなくなると、それまで読み取ってあっり最大−数
文字部分列ωをコードで出力して処理を終了する。
なお、上記のフローは、文字部分列の二重登録を許す場
合のフローであるが、二重登録をしない場合には、登録
処理はしないで、最大−数文字部分列ωをコードで出力
し、Kを文字部分列格納レジスタωに格納する。そして
、辞書アドレスnと参照辞書アドレスnsの1インクリ
メントをしないで■にもとり、符号化処理を繰り返し進
めて行く。
合のフローであるが、二重登録をしない場合には、登録
処理はしないで、最大−数文字部分列ωをコードで出力
し、Kを文字部分列格納レジスタωに格納する。そして
、辞書アドレスnと参照辞書アドレスnsの1インクリ
メントをしないで■にもとり、符号化処理を繰り返し進
めて行く。
第5図に本発明の復号化の装置構成の実施例を示す。
図の装置は、共有メモリ方式のマルチマイクロプロセッ
サにより構成されている。
サにより構成されている。
図において、70は共有データメモリで、メインCPU
と復号用のCPUの引数の受渡し、辞書の領域として使
用さるもの、71は共有メモリへのアクセスに対してメ
インCPUと並列処理での復号化する複数の復号用復号
用CPUのバスの切り替えを行うバス制御スイッチ、7
2は全体の処理を制御するメインCPU、73−1〜7
3−mは並列処理により復号処理を実行する復号用CP
Uで、dxの数だけ用意されるもの、74はメインCP
Uのコントロールプログラム等を格納し、メインプログ
ラムの実行作業領域であるローカルメモリ、74−1〜
74−mは復号プログラムを格納し並列処理による入力
符号を復号作業の作業領域であるローカルメモリで、作
業用の変数の格納や復号用のスタックとして使用さるも
の、75゜75−1〜75−mは、例えば、入力コード
を順次変換コードを介して出力文字に変換する際(入力
コード8→5 b−+2 a b−+b a b 第
8図(c)参照・)に入力された文字列順に復号文字を
出力する処理するFIFOバッファ、76は各FIFO
バッファ75−1〜75−mの並列復号文字を直列文字
列に変換するマルチプレクセ、77はFIFOバッファ
75とマルチプレクセ〕76からの並列文字列をそれぞ
れの復号用のCPUに渡さされた符号番号に従って符号
番号順に直列文字列に変換するマルチプレクセである。
と復号用のCPUの引数の受渡し、辞書の領域として使
用さるもの、71は共有メモリへのアクセスに対してメ
インCPUと並列処理での復号化する複数の復号用復号
用CPUのバスの切り替えを行うバス制御スイッチ、7
2は全体の処理を制御するメインCPU、73−1〜7
3−mは並列処理により復号処理を実行する復号用CP
Uで、dxの数だけ用意されるもの、74はメインCP
Uのコントロールプログラム等を格納し、メインプログ
ラムの実行作業領域であるローカルメモリ、74−1〜
74−mは復号プログラムを格納し並列処理による入力
符号を復号作業の作業領域であるローカルメモリで、作
業用の変数の格納や復号用のスタックとして使用さるも
の、75゜75−1〜75−mは、例えば、入力コード
を順次変換コードを介して出力文字に変換する際(入力
コード8→5 b−+2 a b−+b a b 第
8図(c)参照・)に入力された文字列順に復号文字を
出力する処理するFIFOバッファ、76は各FIFO
バッファ75−1〜75−mの並列復号文字を直列文字
列に変換するマルチプレクセ、77はFIFOバッファ
75とマルチプレクセ〕76からの並列文字列をそれぞ
れの復号用のCPUに渡さされた符号番号に従って符号
番号順に直列文字列に変換するマルチプレクセである。
図の構成において、それぞれの復号用のCPUは終了を
割り込みによりメインCPU72に知らせる。
割り込みによりメインCPU72に知らせる。
第6図および第7図により、第5図の装置構成のフロー
の実施例を説明する。
の実施例を説明する。
第6図は、メインCPUにおけるフローである。
図の番号に従ってフローを説明する。
■ 従来のLZW符号化方法により、dx個のコードを
復号する。
復号する。
■ 辞書参照アドレスnsをn−dxとして、辞書参照
アドレスを設定する。
アドレスを設定する。
■ 新たな符号を読み取る。読み取る符号がなければ、
処理を終了し、符号があれば、■に進む。
処理を終了し、符号があれば、■に進む。
■ dx個の符号を、人力符号と並列処理符号について
、入力順につけた符号番号を引数として並列復号処理を
する。
、入力順につけた符号番号を引数として並列復号処理を
する。
■ 全ての復号の終了を確認することにより、並列復号
の同期をとり、辞書に復号文字部分列を登録する。
の同期をとり、辞書に復号文字部分列を登録する。
■ 二重登録を許す場合にはdx個辞書に登録されるの
で、辞書アドレスnおよび参照辞書アドレスnsをdx
だけインイクリメントする。
で、辞書アドレスnおよび参照辞書アドレスnsをdx
だけインイクリメントする。
以上の処理を新たな符号の読み取りがなくなるまで繰り
返す。
返す。
なお、図のフローは文字部分列の二重登録を許す場合の
フローであるが、二重登録を許さない場合のフローは■
におけるnとnsのインクリメントを登録されて更新さ
れた数だけとなる。
フローであるが、二重登録を許さない場合のフローは■
におけるnとnsのインクリメントを登録されて更新さ
れた数だけとなる。
第7図に、第6図におけるフローの番号■における処理
のフローを示す。
のフローを示す。
この部分は、並列復号処理における各CPUにおける復
号処理のフローである。
号処理のフローである。
図において、■〜■は、人力符号に、並列処理において
入力順を示す符号番号を付して処理を進める点を除いて
、第10図におけるフローと処理が同じであるのでこの
部分の説明は省略する。
入力順を示す符号番号を付して処理を進める点を除いて
、第10図におけるフローと処理が同じであるのでこの
部分の説明は省略する。
■は、直前文字列ωと読み取り文字K(新たな文字部分
列ωK)と符号番号を決定し、復号化の終了を、メイン
CPUに知らせる。
列ωK)と符号番号を決定し、復号化の終了を、メイン
CPUに知らせる。
本発明によれば、シーケンシャルに符号化されたLZW
符号による圧縮データであっても、復号化側で並列処理
が可能となるため、復号処理を高速化できる。
符号による圧縮データであっても、復号化側で並列処理
が可能となるため、復号処理を高速化できる。
第1図は、本発明のデータ圧縮方式の基本構成を示す図
である。 第2図は、本発明の圧縮データの復号方式の基本構成を
示す図である。 第3図は、本発明の符号化処理の装置構成実施例を示す
図である。 第4図は、本発明の符号化のフローの実施例を示す図で
ある。 第5図は、本発明の符号化の装置構成の実施例を示す図
である。 第6図は、復号処理フローの実施例を示す図である。 第7図は、並列復号処理フローの実施例を示す図である
。 第8図は、従来のLZW符号の符号化と復号化の方式を
示す図である。 第9図は、従来のLZW符号化方式のフローを示す図で
ある。 第10図は、従来のLZW復号化方式のフローを示す図
である。 第1図において 1 : 入力文字列、 2 : 文字読みだし部、 3 ; 文字部分列、 4 : 辞書照合部、 5 : 最大−数文字部分列、 6 : 符号化処理部、 7 : 登録文字部分列、 8 : 書き込み処理部、 9 : 辞書、 lO: 初期登録辞書、 11: 書き込み終了処理、 14: 辞書アドレス判定部、 15: 辞書アドレスデータ、・ 16: dx設定部、 17: dxデーク、 】8: 辞書参照アドレス設定部、 I9: 辞書参照アドレスデータ、
である。 第2図は、本発明の圧縮データの復号方式の基本構成を
示す図である。 第3図は、本発明の符号化処理の装置構成実施例を示す
図である。 第4図は、本発明の符号化のフローの実施例を示す図で
ある。 第5図は、本発明の符号化の装置構成の実施例を示す図
である。 第6図は、復号処理フローの実施例を示す図である。 第7図は、並列復号処理フローの実施例を示す図である
。 第8図は、従来のLZW符号の符号化と復号化の方式を
示す図である。 第9図は、従来のLZW符号化方式のフローを示す図で
ある。 第10図は、従来のLZW復号化方式のフローを示す図
である。 第1図において 1 : 入力文字列、 2 : 文字読みだし部、 3 ; 文字部分列、 4 : 辞書照合部、 5 : 最大−数文字部分列、 6 : 符号化処理部、 7 : 登録文字部分列、 8 : 書き込み処理部、 9 : 辞書、 lO: 初期登録辞書、 11: 書き込み終了処理、 14: 辞書アドレス判定部、 15: 辞書アドレスデータ、・ 16: dx設定部、 17: dxデーク、 】8: 辞書参照アドレス設定部、 I9: 辞書参照アドレスデータ、
Claims (1)
- 【特許請求の範囲】 1)入力文字列について異なる文字部分列ごとに順次符
号化して、現われる順にアドレス指定して辞書に登録し
、 登録されている辞書アドレスより常に一定数小さい辞書
参照アドレスを設定し、 現在の符号化対象文字部分列を上記辞書参照アドレスま
での範囲での辞書を参照し、 当該辞書参照アドレスの範囲で登録済の過去の文字部分
列のうち一致する最大長の文字部分列を求め、その複製
として現在の符号化対象文字部分列を符号化し、復号側
において並列処理を可能とすることを特徴とするデータ
圧縮方式。 2)請求項1に記載のデータ圧縮方式により、作成され
た入力符号を、並列処理サイクルごとに並列処理する入
力符号を取り出し、 各並列入力符号を辞書を参照して復号し、復号文字によ
り辞書を更新し、 並列復号文字を、対応する入力符号の入力順に直列復号
文字に変換して出力することを特徴とする並列処理によ
る圧縮データ復元方式。 3)並列に復号する処理を共有メモリ方式のマルチマイ
クロプロセッサにより行うことを特徴とする請求項2に
記載の圧縮データ復元方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7037890A JPH03270416A (ja) | 1990-03-20 | 1990-03-20 | データ圧縮および復元方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7037890A JPH03270416A (ja) | 1990-03-20 | 1990-03-20 | データ圧縮および復元方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03270416A true JPH03270416A (ja) | 1991-12-02 |
Family
ID=13429720
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7037890A Pending JPH03270416A (ja) | 1990-03-20 | 1990-03-20 | データ圧縮および復元方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03270416A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015145647A1 (ja) * | 2014-03-27 | 2015-10-01 | 株式会社日立製作所 | ストレージ装置とデータ処理方法及びストレージシステム |
-
1990
- 1990-03-20 JP JP7037890A patent/JPH03270416A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015145647A1 (ja) * | 2014-03-27 | 2015-10-01 | 株式会社日立製作所 | ストレージ装置とデータ処理方法及びストレージシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3225638B2 (ja) | データを圧縮するための装置及び方法並びにデータ処理システム | |
| US4524427A (en) | Method for making comparisons between reference logical entities and logical entities proceeding from a file | |
| JPH03270416A (ja) | データ圧縮および復元方式 | |
| JP3038223B2 (ja) | データ圧縮方式 | |
| JP3130324B2 (ja) | データ圧縮方式 | |
| JPH07135471A (ja) | データ圧縮装置およびデータ伸張装置 | |
| JPH04123619A (ja) | データ圧縮及び復元装置 | |
| JP3038234B2 (ja) | データ圧縮装置の辞書検索方式 | |
| JPH03270417A (ja) | データ圧縮方法および圧縮データのデータ復元方法 | |
| JP3088740B2 (ja) | データ圧縮及び復元方式 | |
| JPH09232967A (ja) | データ圧縮装置及び復元装置 | |
| JPH05241776A (ja) | データ圧縮方式 | |
| JP2772125B2 (ja) | 辞書検索方式 | |
| De Agostino | A parallel decoding algorithm for LZ2 data compression | |
| JPH04167821A (ja) | データ符号化及び復号化方法 | |
| JP2772124B2 (ja) | 辞書検索方式 | |
| JP3236747B2 (ja) | データ伸長方式 | |
| JP3115066B2 (ja) | 辞書検索方法 | |
| JP3103172B2 (ja) | 辞書検索方法 | |
| JP2535655B2 (ja) | 辞書検索方式 | |
| JP3058711B2 (ja) | データ圧縮及び復元方法 | |
| JP2825960B2 (ja) | データ圧縮方法及び復元方法 | |
| JP3186530B2 (ja) | コンピュータデータの圧縮・伸長方法 | |
| JPH0264770A (ja) | 辞書を用いたデータ圧縮復元方式 | |
| JPH06274311A (ja) | データ圧縮装置及びデータ復元装置 |