JPH04265020A - データ圧縮方式 - Google Patents
データ圧縮方式Info
- Publication number
- JPH04265020A JPH04265020A JP2586891A JP2586891A JPH04265020A JP H04265020 A JPH04265020 A JP H04265020A JP 2586891 A JP2586891 A JP 2586891A JP 2586891 A JP2586891 A JP 2586891A JP H04265020 A JPH04265020 A JP H04265020A
- Authority
- JP
- Japan
- Prior art keywords
- character
- dictionary
- data
- string
- substring
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 28
- 238000013144 data compression Methods 0.000 claims description 12
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は,文字コード,画像デー
タ等の複数種類のデータが混在する文字列を符号化して
圧縮するデータ圧縮方式に関する。文字コード,画像デ
ータ等の複数種類のデータがコンピュータで扱われるよ
うになるのにともない,取り扱われるデータ量も増大し
ている。そのような大量のデータにおいては,記憶容量
を減らしたり,遠隔地への伝送を可能とするため,デー
タ中の冗長な部分を省いて,圧縮して記憶したりデータ
転送を行うようにすることが望まれる。従来,文字コー
ド,画像データについて,それぞれ単独のデータについ
ては効率良くデータ圧縮する方法はあったが,文字コー
ドと画像データなど異なる種類のデータが混在するデー
タについて,効率良く圧縮する方法はなかった。本発明
は,複数の異なる種類のデータが混在するデータについ
て,高圧縮率の得られるデータ圧縮方式を提供すること
を目的とする。
タ等の複数種類のデータが混在する文字列を符号化して
圧縮するデータ圧縮方式に関する。文字コード,画像デ
ータ等の複数種類のデータがコンピュータで扱われるよ
うになるのにともない,取り扱われるデータ量も増大し
ている。そのような大量のデータにおいては,記憶容量
を減らしたり,遠隔地への伝送を可能とするため,デー
タ中の冗長な部分を省いて,圧縮して記憶したりデータ
転送を行うようにすることが望まれる。従来,文字コー
ド,画像データについて,それぞれ単独のデータについ
ては効率良くデータ圧縮する方法はあったが,文字コー
ドと画像データなど異なる種類のデータが混在するデー
タについて,効率良く圧縮する方法はなかった。本発明
は,複数の異なる種類のデータが混在するデータについ
て,高圧縮率の得られるデータ圧縮方式を提供すること
を目的とする。
【0002】
【従来の技術】様々な種類のデータ(文字コード,画像
データ等)のデータに適用できるデータ圧縮方式として
,ユニバーサル符号による方式がある。ユニバーサル符
号においては,文書データにおける文字コードのみなら
ず画像データ等にも適用できる。そして,以下の説明に
おいては,データの1ワード単位を文字と呼び,データ
が任意ワードでつながったものを文字列と呼ぶ。
データ等)のデータに適用できるデータ圧縮方式として
,ユニバーサル符号による方式がある。ユニバーサル符
号においては,文書データにおける文字コードのみなら
ず画像データ等にも適用できる。そして,以下の説明に
おいては,データの1ワード単位を文字と呼び,データ
が任意ワードでつながったものを文字列と呼ぶ。
【0003】ユニバーサル符号の一つであるジブ−レン
ペル(Ziv −Lempel)符号には,■符号化デ
ータを,過去のデータ系列のうち任意の位置から一致す
る最大長の系列に区切り,過去の系列の複製として符号
化するユニバーサル型,■符号化データのうち新たに出
現する文字列のうちの文字部分列を辞書に順次登録し,
符号化対象の文字部分列を,過去に出現した辞書に登録
された文字部分列のうちの最大長のものに基づいて符号
化する増分分解型およびその改良方式であるLZW符号
方式がある。
ペル(Ziv −Lempel)符号には,■符号化デ
ータを,過去のデータ系列のうち任意の位置から一致す
る最大長の系列に区切り,過去の系列の複製として符号
化するユニバーサル型,■符号化データのうち新たに出
現する文字列のうちの文字部分列を辞書に順次登録し,
符号化対象の文字部分列を,過去に出現した辞書に登録
された文字部分列のうちの最大長のものに基づいて符号
化する増分分解型およびその改良方式であるLZW符号
方式がある。
【0004】図5は,LZW符号によるデータ圧縮方式
を示す。図において,41はデータファイルであって,
文字コード等よりなるデータを格納するものを,42は
データ格納部であって,データファイルから取り出され
た文字列を格納するもの,43は文字部分列を登録する
辞書D,44は辞書検索部,45は出力符号格納部であ
って,辞書検索部44が検索した最大一致文字部分列の
符号を格納するもの,46は登録文字部分列格納部であ
って,最大一致文字部分列に続く次の一文字もしくは複
数の文字を付加した文字部分列を格納するもの,47は
圧縮率判定部であって,圧縮率を判定するもの,48は
辞書登録部であって,文字列を辞書に登録する処理をす
るものである。
を示す。図において,41はデータファイルであって,
文字コード等よりなるデータを格納するものを,42は
データ格納部であって,データファイルから取り出され
た文字列を格納するもの,43は文字部分列を登録する
辞書D,44は辞書検索部,45は出力符号格納部であ
って,辞書検索部44が検索した最大一致文字部分列の
符号を格納するもの,46は登録文字部分列格納部であ
って,最大一致文字部分列に続く次の一文字もしくは複
数の文字を付加した文字部分列を格納するもの,47は
圧縮率判定部であって,圧縮率を判定するもの,48は
辞書登録部であって,文字列を辞書に登録する処理をす
るものである。
【0005】図示の構成の動作を図6に基づいて説明す
る。図6は,LZW符号によるデータ圧縮方式のフロー
である。図における符号に従って説明する。必要に応じ
て図1を参照する。S1 辞書D43に単一文字を割
り付け,初期値とする。iは登録した文字の番号(符号
)であり,D(i)は番号iの登録文字列を表す。Aは
登録したアルファベットの大きさ(数)を示す。初期設
定される文字数は実際には,256文字を対象とするこ
とができるが(A=256),図1における辞書D(4
3)ではa,b,cの三文字のみよりなる場合を示す。 カーソルを文字列の先頭文字に合わせ(カーソル=1)
,先頭文字をデータ格納部42に格納する。辞書D43
における最大登録番号(識別番号)nをn=Aとする。
る。図6は,LZW符号によるデータ圧縮方式のフロー
である。図における符号に従って説明する。必要に応じ
て図1を参照する。S1 辞書D43に単一文字を割
り付け,初期値とする。iは登録した文字の番号(符号
)であり,D(i)は番号iの登録文字列を表す。Aは
登録したアルファベットの大きさ(数)を示す。初期設
定される文字数は実際には,256文字を対象とするこ
とができるが(A=256),図1における辞書D(4
3)ではa,b,cの三文字のみよりなる場合を示す。 カーソルを文字列の先頭文字に合わせ(カーソル=1)
,先頭文字をデータ格納部42に格納する。辞書D43
における最大登録番号(識別番号)nをn=Aとする。
【0006】S2 辞書検索部44は,カーソルの位
置からの文字部分列と一致する辞書中の最長の文字部分
列Sを検索する。S3 最大一致文字部分列の番号を
出力符号格納部45に格納し,〔log2n 〕ビット
( 〔x〕は,x以上の最小の整数)で,Sに関する番
号を出力する。辞書登録数nを1インクリメント(n=
n+1)とする。
置からの文字部分列と一致する辞書中の最長の文字部分
列Sを検索する。S3 最大一致文字部分列の番号を
出力符号格納部45に格納し,〔log2n 〕ビット
( 〔x〕は,x以上の最小の整数)で,Sに関する番
号を出力する。辞書登録数nを1インクリメント(n=
n+1)とする。
【0007】S4 辞書登録部48は,Sに続く次の
文字Cにより作られる部分文字列SCを登録文字部分列
格納部46に格納し,文字部分列SCを識別番号(n+
1)で辞書に登録する。カーソルを文字列Sの次の文字
(C)に合わせる。S5 予め定めた整数m(圧縮率
の良否をチェックするデータ間隔)に対して,mの倍数
の文字数分データを符号化したか調べる。もし,mの倍
数分でなければ,S2に戻る。
文字Cにより作られる部分文字列SCを登録文字部分列
格納部46に格納し,文字部分列SCを識別番号(n+
1)で辞書に登録する。カーソルを文字列Sの次の文字
(C)に合わせる。S5 予め定めた整数m(圧縮率
の良否をチェックするデータ間隔)に対して,mの倍数
の文字数分データを符号化したか調べる。もし,mの倍
数分でなければ,S2に戻る。
【0008】S6 もし,mの倍数分符号化していば
,圧縮率判定部47は,mバイト間で以前より圧縮率が
悪化したか調べる。もし,圧縮率が悪化していなければ
,S2に戻る。もし,圧縮率が悪化していれば,S1に
戻り,辞書を初期化して,登録をしなおす。
,圧縮率判定部47は,mバイト間で以前より圧縮率が
悪化したか調べる。もし,圧縮率が悪化していなければ
,S2に戻る。もし,圧縮率が悪化していれば,S1に
戻り,辞書を初期化して,登録をしなおす。
【0009】図7は,LZW符号の例を示す。図におい
て60は文字列,61は出力符号,62は辞書である。 図は,文字列がa,b,cの三文字のみよりなる場合で
ある。文字列の各文字の上の括弧付の番号は説明の便宜
上付けた番号である。
て60は文字列,61は出力符号,62は辞書である。 図は,文字列がa,b,cの三文字のみよりなる場合で
ある。文字列の各文字の上の括弧付の番号は説明の便宜
上付けた番号である。
【0010】■ 文字列の先頭文字a(番号(1)
)にカーソルを合わせる。辞書を参照し,aは登録済で
あることを確認すると,次の一文字bを読む。文字部分
列abは未登録であるから,a(1) を符号1で出力
し,abを識別番号4で登録する。■ カーソルを次
の文字b(番号(2) )に合わせる。辞書を参照し,
bは登録済であることを確認すると,次の1文字a(3
)を読む。文字部分列baは未登録であるから,b(2
) を符号2で出力し,文字部分列baを識別番号5で
登録する。■ 次の文字a(3) にカーソルを合わ
せる。aは辞書に登録済であるから,次の文字b(4)
を読む。文字部分列abは登録済であるから,さらに
次の文字a(5) を読む。文字部分列abaは未登録
であるから,文字部分列abを符号4で出力し,文字部
分列abaを識別番号6で辞書に登録する。
)にカーソルを合わせる。辞書を参照し,aは登録済で
あることを確認すると,次の一文字bを読む。文字部分
列abは未登録であるから,a(1) を符号1で出力
し,abを識別番号4で登録する。■ カーソルを次
の文字b(番号(2) )に合わせる。辞書を参照し,
bは登録済であることを確認すると,次の1文字a(3
)を読む。文字部分列baは未登録であるから,b(2
) を符号2で出力し,文字部分列baを識別番号5で
登録する。■ 次の文字a(3) にカーソルを合わ
せる。aは辞書に登録済であるから,次の文字b(4)
を読む。文字部分列abは登録済であるから,さらに
次の文字a(5) を読む。文字部分列abaは未登録
であるから,文字部分列abを符号4で出力し,文字部
分列abaを識別番号6で辞書に登録する。
【0011】■ 次に文字a(5) にカーソルを合
わせる。aは登録済であるから次の文字a(6) を読
む。文字部分列aaは未登録であるから,aを符号1で
出力し,文字部分列aaを識別番号7で登録する。以後
同様に,カーソルで指定した文字以降の文字列の文字部
分列より辞書に登録されている文字部分列より一致する
最長の文字部分列を見つけ出し,その文字部分列を辞書
における識別番号により符号化し,最大一致文字部分列
と次の一文字よりなる文字部分列を辞書に新たに登録し
てゆく。 そして,出力符号61として,「1241537・・・
」を出力する。
わせる。aは登録済であるから次の文字a(6) を読
む。文字部分列aaは未登録であるから,aを符号1で
出力し,文字部分列aaを識別番号7で登録する。以後
同様に,カーソルで指定した文字以降の文字列の文字部
分列より辞書に登録されている文字部分列より一致する
最長の文字部分列を見つけ出し,その文字部分列を辞書
における識別番号により符号化し,最大一致文字部分列
と次の一文字よりなる文字部分列を辞書に新たに登録し
てゆく。 そして,出力符号61として,「1241537・・・
」を出力する。
【0012】
【発明が解決しようとする課題】文書データと画像デー
タのように性質の異なるデータが混在する場合に,LZ
W符号でデータ圧縮を行うと,文字の種類もしくは並び
方の傾向の異なるそれぞれのデータ毎の文字部分列が同
一辞書に登録されるため,圧縮率が低下するものであっ
た。
タのように性質の異なるデータが混在する場合に,LZ
W符号でデータ圧縮を行うと,文字の種類もしくは並び
方の傾向の異なるそれぞれのデータ毎の文字部分列が同
一辞書に登録されるため,圧縮率が低下するものであっ
た。
【0013】
【課題を解決しようとするための手段】本発明は,文書
データと画像データのように,予め出現するデータの種
類が分かる場合には,辞書をデータの種類の数だけ分割
するようにした。そして,それぞれのデータにおいて高
頻度で出現すると予想される文字部分列を,それぞれの
辞書に初期値として,登録しておくようにした。そして
,文字列を符号化する場合には,各分割した辞書を調べ
,最長一致文字部分列が最大となる辞書の符号を用いて
符号化するようにした。
データと画像データのように,予め出現するデータの種
類が分かる場合には,辞書をデータの種類の数だけ分割
するようにした。そして,それぞれのデータにおいて高
頻度で出現すると予想される文字部分列を,それぞれの
辞書に初期値として,登録しておくようにした。そして
,文字列を符号化する場合には,各分割した辞書を調べ
,最長一致文字部分列が最大となる辞書の符号を用いて
符号化するようにした。
【0014】図1に本発明の基本構成を示す。図におい
て,1はデータファイルであって,文書データ等の文字
コードおよび,画像データ等を格納するもの,2はデー
タ格納部であって,文字列のデータを格納するもの,3
は辞書検索部であって,文字部分列について辞書を検索
し,最大一致文字部分列を求めるもの,4は辞書Aであ
って,例えば,文字コードの文字部分列を登録したもの
,5は辞書Bであって,例えば,画像データについての
文字部分列を登録したものである。6は出力符号格納部
であって,最大一致文字部分列の符号(辞書における識
別番号等)を格納するもの,7は登録文字部分列格納部
であって,辞書検索部3が検索した最大一致文字部分列
と次の一文字もしくは続く文字部分列を格納するもの,
8は辞書登録部であって,登録文字部分列格納部7に格
納された文字部分列を辞書に格納する処理を行うもので
ある。なお,図において,圧縮率判定部は省略されてい
る。
て,1はデータファイルであって,文書データ等の文字
コードおよび,画像データ等を格納するもの,2はデー
タ格納部であって,文字列のデータを格納するもの,3
は辞書検索部であって,文字部分列について辞書を検索
し,最大一致文字部分列を求めるもの,4は辞書Aであ
って,例えば,文字コードの文字部分列を登録したもの
,5は辞書Bであって,例えば,画像データについての
文字部分列を登録したものである。6は出力符号格納部
であって,最大一致文字部分列の符号(辞書における識
別番号等)を格納するもの,7は登録文字部分列格納部
であって,辞書検索部3が検索した最大一致文字部分列
と次の一文字もしくは続く文字部分列を格納するもの,
8は辞書登録部であって,登録文字部分列格納部7に格
納された文字部分列を辞書に格納する処理を行うもので
ある。なお,図において,圧縮率判定部は省略されてい
る。
【0015】
【作用】図の構成の動作を説明する。データファイル1
より文字コードと画像データが混在する文字列がデータ
格納部2に格納される。辞書検索部3は,データ格納部
2の文字列の先頭文字から順次辞書A(4),辞書B(
5)を検索し,最大一致文字部分列を求める。出力符号
格納部6は最大一致文字部分列の辞書における識別番号
に基づいて符号を作成し,出力する。登録文字部分列格
納部7は最大一致文字部分列に,それに続く次の一文字
もしくは複数の文字を付け加えた文字部分列を格納する
。辞書登録部8は登録文字部分列格納部7に格納された
文字部分列を,最大一致文字部分列を検出した辞書A(
4)もしくは辞書B(5)に登録する。なお,最長一致
文字部分列が複数の辞書にある場合には,前回選ばれた
辞書の符号を用いる。また,本発明の方式で作成された
圧縮データを復号する方法については説明されていない
が,入力データに基づいて,符号化と逆の順序で,辞書
を復元の参照を繰り返して文字列を復元すればよい。 なお,本発明は,LZW符号方式だけでなく増分分解型
等の他のユニバーサル符号化方式にも適用できるもので
ある。
より文字コードと画像データが混在する文字列がデータ
格納部2に格納される。辞書検索部3は,データ格納部
2の文字列の先頭文字から順次辞書A(4),辞書B(
5)を検索し,最大一致文字部分列を求める。出力符号
格納部6は最大一致文字部分列の辞書における識別番号
に基づいて符号を作成し,出力する。登録文字部分列格
納部7は最大一致文字部分列に,それに続く次の一文字
もしくは複数の文字を付け加えた文字部分列を格納する
。辞書登録部8は登録文字部分列格納部7に格納された
文字部分列を,最大一致文字部分列を検出した辞書A(
4)もしくは辞書B(5)に登録する。なお,最長一致
文字部分列が複数の辞書にある場合には,前回選ばれた
辞書の符号を用いる。また,本発明の方式で作成された
圧縮データを復号する方法については説明されていない
が,入力データに基づいて,符号化と逆の順序で,辞書
を復元の参照を繰り返して文字列を復元すればよい。 なお,本発明は,LZW符号方式だけでなく増分分解型
等の他のユニバーサル符号化方式にも適用できるもので
ある。
【0016】
【実施例】本発明の実施例のフロー(1)および(2)
を図2,図3に示す。図2は,LZW符号により本発明
を実施する場合のフローであって,最適辞書が今まで用
いていた辞書から変更になった時点で,識別番号の符号
化に先立ち,変更になった辞書の番号を符号化する方法
を示す。本実施例においては,識別番号0を辞書変更の
識別フラグに割り当てる。図示の符号に従ってフローを
説明する。
を図2,図3に示す。図2は,LZW符号により本発明
を実施する場合のフローであって,最適辞書が今まで用
いていた辞書から変更になった時点で,識別番号の符号
化に先立ち,変更になった辞書の番号を符号化する方法
を示す。本実施例においては,識別番号0を辞書変更の
識別フラグに割り当てる。図示の符号に従ってフローを
説明する。
【0017】S1 文書データ(文字コード),画像
データ(1,0のビットの並びに基づいて作成したラン
レングス符号等の数値データ)等のデータの種類毎に辞
書の初期値とするための一文字データおよび出現頻度が
高いと予測される文字部分列を求める。 S2 データの種類毎に辞書Djを作成する(jはデ
ータの種類)。カーソルを文字列の先頭文字に合わせる
(カーソル=1)。j番目の最大登録番号nj(j=1
〜K)を設定する(nj=Aj)。但し,Ajはデータ
の種類jに登録された初期値の個数を表す。直前で用い
た辞書の番号ppのデフォルトの値を設定する(pp=
0)。 S3 カーソルの位置からの文字部分列を読み取り,
各辞書Djにおける最長の文字部分列Sj(j=1〜K
)を求める。 S4 各辞書毎に求めた最長文字部分列Sjの中から
,最長の文字部分列Spを求める。 S5 辞書番号pは直前の辞書番号ppと一致すれば
S7に移る。 S6 〔log 2 npp〕ビットで辞書切替えフ
ラグである識別番号0を表し,また,〔log 2 K
〕ビットで辞書番号pを表して,一緒に出力する。
データ(1,0のビットの並びに基づいて作成したラン
レングス符号等の数値データ)等のデータの種類毎に辞
書の初期値とするための一文字データおよび出現頻度が
高いと予測される文字部分列を求める。 S2 データの種類毎に辞書Djを作成する(jはデ
ータの種類)。カーソルを文字列の先頭文字に合わせる
(カーソル=1)。j番目の最大登録番号nj(j=1
〜K)を設定する(nj=Aj)。但し,Ajはデータ
の種類jに登録された初期値の個数を表す。直前で用い
た辞書の番号ppのデフォルトの値を設定する(pp=
0)。 S3 カーソルの位置からの文字部分列を読み取り,
各辞書Djにおける最長の文字部分列Sj(j=1〜K
)を求める。 S4 各辞書毎に求めた最長文字部分列Sjの中から
,最長の文字部分列Spを求める。 S5 辞書番号pは直前の辞書番号ppと一致すれば
S7に移る。 S6 〔log 2 npp〕ビットで辞書切替えフ
ラグである識別番号0を表し,また,〔log 2 K
〕ビットで辞書番号pを表して,一緒に出力する。
【0018】S7 最長の文字列Spの番号を〔 l
og2np 〕ビットを用いて出力する。ここで〔 l
og2np 〕は log2np 線上の最小の整数を
表す。P番目の辞書における最大登録番号np を1イ
ンクリメントする(np =np +1)。 S8 カーソルを,求めた最長文字部分列Spの次の
文字Cに合わせる。文字部分列SpCをP番目の辞書に
,番号np で登録する。直前の辞書番号ppを今回の
辞書番号pで置き換える(pp=p)。カーソルを,文
字列において求めた最長文字部分列Spの次の文字(C
)に合わせる。 S3 以降の処理を繰り返す。この例では「辞書切替
えフラグ+辞書番号」で辞書を選択するようにしたが,
複数の辞書の数だけ各辞書で同じ識別番号を予約語とし
てとっておき,その識別番号を用いて辞書を指定しても
良い。
og2np 〕ビットを用いて出力する。ここで〔 l
og2np 〕は log2np 線上の最小の整数を
表す。P番目の辞書における最大登録番号np を1イ
ンクリメントする(np =np +1)。 S8 カーソルを,求めた最長文字部分列Spの次の
文字Cに合わせる。文字部分列SpCをP番目の辞書に
,番号np で登録する。直前の辞書番号ppを今回の
辞書番号pで置き換える(pp=p)。カーソルを,文
字列において求めた最長文字部分列Spの次の文字(C
)に合わせる。 S3 以降の処理を繰り返す。この例では「辞書切替
えフラグ+辞書番号」で辞書を選択するようにしたが,
複数の辞書の数だけ各辞書で同じ識別番号を予約語とし
てとっておき,その識別番号を用いて辞書を指定しても
良い。
【0019】図3は,辞書の選択符号を用いないやり方
であり,前回の最適だった辞書を用いて,一致が最大長
の文字部分列を符号化する方法を示す。辞書変更による
選択のタイミングを一回遅らせるので,選択符号がなく
ても,復号側で選択された辞書が分かる。S1〜S4は
図2と同様である。S5 辞書Dppの最長の文字部
分列Sppの識別番号を〔 log2npp〕ビットを
用いて出力する。ここで,〔 log2npp〕は l
og2npp以上の最小の整数を表わす。pp番目の辞
書における最大登録番号np を1つインクリメントす
る(npp=npp+1)。S6 カーソルを,求め
た最長文字部分列Sp の次の文字Cに合わせる。文字
部分列SppCをpp番目の辞書に番号nppで登録す
る。直前の辞書番号ppを今回の辞書番号pで置き換え
る(pp=p)。カーソルを,文字列における最長文字
部分列Sp の次の文字(C)に合わせる。以上のよう
にして,文書データ(文字コード)と画像データ等の種
類の異なるデータが混在する文字列を符号する。 そして,文書データと画像データの二種類の辞書を作成
した場合を例にとると,文書データの文字列部分は,文
書データの文字部分列を登録した辞書が参照されて符号
化されることが多く,画像データの文字部分列について
は,画像データの辞書が参照されて符号化されることが
多くなるので,効率的なデータ圧縮がなされる。
であり,前回の最適だった辞書を用いて,一致が最大長
の文字部分列を符号化する方法を示す。辞書変更による
選択のタイミングを一回遅らせるので,選択符号がなく
ても,復号側で選択された辞書が分かる。S1〜S4は
図2と同様である。S5 辞書Dppの最長の文字部
分列Sppの識別番号を〔 log2npp〕ビットを
用いて出力する。ここで,〔 log2npp〕は l
og2npp以上の最小の整数を表わす。pp番目の辞
書における最大登録番号np を1つインクリメントす
る(npp=npp+1)。S6 カーソルを,求め
た最長文字部分列Sp の次の文字Cに合わせる。文字
部分列SppCをpp番目の辞書に番号nppで登録す
る。直前の辞書番号ppを今回の辞書番号pで置き換え
る(pp=p)。カーソルを,文字列における最長文字
部分列Sp の次の文字(C)に合わせる。以上のよう
にして,文書データ(文字コード)と画像データ等の種
類の異なるデータが混在する文字列を符号する。 そして,文書データと画像データの二種類の辞書を作成
した場合を例にとると,文書データの文字列部分は,文
書データの文字部分列を登録した辞書が参照されて符号
化されることが多く,画像データの文字部分列について
は,画像データの辞書が参照されて符号化されることが
多くなるので,効率的なデータ圧縮がなされる。
【0020】本発明においては,データ圧縮の対象とす
るデータもしくは同種類の他のデータをサンプルデータ
として,出現する文字部分列の出現頻度を測定し,高頻
度で出現する文字部分列を辞書の初期値として登録する
。
るデータもしくは同種類の他のデータをサンプルデータ
として,出現する文字部分列の出現頻度を測定し,高頻
度で出現する文字部分列を辞書の初期値として登録する
。
【0021】図4は,本発明における辞書の初期値作成
方法を示す。図において,30は出現頻度測定部,32
はサンプルデータ,33はサンプルデータの符号化手段
であって,サンプルデータについて符号化し,頻度を測
定するもの,34は文字部分列の頻度格納部,35は初
期値設定部である。36は初期値設定された辞書,37
は符号化手段であって,実際のデータを符号化するもの
,38は復号化手段である。
方法を示す。図において,30は出現頻度測定部,32
はサンプルデータ,33はサンプルデータの符号化手段
であって,サンプルデータについて符号化し,頻度を測
定するもの,34は文字部分列の頻度格納部,35は初
期値設定部である。36は初期値設定された辞書,37
は符号化手段であって,実際のデータを符号化するもの
,38は復号化手段である。
【0022】サンプルデータ32に基づいて,符号化手
段33は,実際に符号化する方法と同様の方法(例えば
,LZW符号)で符号化する。そして,求めた文字部分
列の出現頻度を算出し,頻度格納部34に格納する。 初期値設定部35は,頻度格納部34に格納された文字
部分列のうち,出現頻度の高いもの(予め定めた,出現
頻度の閾値Tより大きいもの)を選択する。
段33は,実際に符号化する方法と同様の方法(例えば
,LZW符号)で符号化する。そして,求めた文字部分
列の出現頻度を算出し,頻度格納部34に格納する。 初期値設定部35は,頻度格納部34に格納された文字
部分列のうち,出現頻度の高いもの(予め定めた,出現
頻度の閾値Tより大きいもの)を選択する。
【0023】その結果,例えば,図のおいては一文字a
,b,cおよび出現頻度の高い文字部分列baを,辞書
36に初期値として登録する。符号化手段37は実際の
データについて,辞書36の初期値に基づいて,符号化
を始め,新たに出現する文字列を順次登録する。復号側
では,復号化手段38により辞書を復元しながら,送ら
れてきた符号を復元する。
,b,cおよび出現頻度の高い文字部分列baを,辞書
36に初期値として登録する。符号化手段37は実際の
データについて,辞書36の初期値に基づいて,符号化
を始め,新たに出現する文字列を順次登録する。復号側
では,復号化手段38により辞書を復元しながら,送ら
れてきた符号を復元する。
【0024】
【発明の効果】本発明によれば,分割した辞書には,各
種データにおける出やすい文字部分列が予め登録されて
いるので,複数種類のデータが混在するデータを符号化
する場合にも,データの種類に対応した辞書が選択され
る。そして,それぞれの辞書には,対象とするデータに
おける文字部分列が学習されて登録されるので,高圧縮
率の符号化を行うことができる。
種データにおける出やすい文字部分列が予め登録されて
いるので,複数種類のデータが混在するデータを符号化
する場合にも,データの種類に対応した辞書が選択され
る。そして,それぞれの辞書には,対象とするデータに
おける文字部分列が学習されて登録されるので,高圧縮
率の符号化を行うことができる。
【図1】本発明の基本構成を示す図である。
【図2】本発明の実施例フロー(1)を示す図である。
【図3】本発明の実施例のフロー(2)を示す図である
。
。
【図4】本発明における辞書の初期値作成方法を示す図
である。
である。
【図5】LZW符号によるデータ圧縮方式を示す図であ
る。
る。
【図6】LZW符号によるデータ圧縮方式のフローを示
す図である。
す図である。
【図7】LZW符号の例を示す図である。
1 データファイル
2 データ格納部
3 辞書検索部
4 辞書A
5 辞書B
6 出力符号格納部
7 登録文字部分列格納部
8 辞書登録部
Claims (4)
- 【請求項1】 複数種類のデータが混在するデータよ
りなる文字列を圧縮して符号化する方式において,文字
列における出現頻度の高い文字部分列を初期値として識
別番号を対応付けて登録した辞書(4,5)をデータの
種類毎に備え,符号化の対象とする文字列の文字部分列
を辞書に登録された部分列と比較し,辞書において一致
する最大長の文字部分列を求め,対応する辞書の識別番
号に基づいて符号化することを特徴とするデータ圧縮方
式。 - 【請求項2】 請求項1において,求めた最大長の文
字部分列に続く一文字もしくは複数文字を,求めた最大
長の文字部分列に付加した文字部分列を求めた最大長の
文字部分列のある辞書に登録することを特徴とするデー
タ圧縮方式 - 【請求項3】 請求項1および請求項2において,一
致する最大長の文字部分列をもつ辞書の番号を,識別番
号の符号化に先立ち符号化し,対応する辞書を選択する
ことを特徴とするデータ圧縮方式。 - 【請求項4】 請求項1および請求項2において,符
号化の対象とする文字部分列を辞書に登録された文字部
分列との前回の比較で,一致する最大長の文字部分列の
あった辞書における一致する最大長の文字部分列の識別
番号によって符号化することを特徴とするデータ圧縮方
式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2586891A JP3130324B2 (ja) | 1991-02-20 | 1991-02-20 | データ圧縮方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2586891A JP3130324B2 (ja) | 1991-02-20 | 1991-02-20 | データ圧縮方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04265020A true JPH04265020A (ja) | 1992-09-21 |
JP3130324B2 JP3130324B2 (ja) | 2001-01-31 |
Family
ID=12177774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2586891A Expired - Fee Related JP3130324B2 (ja) | 1991-02-20 | 1991-02-20 | データ圧縮方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3130324B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277585B2 (en) | 2001-05-25 | 2007-10-02 | Ricoh Company, Ltd. | Image encoding method, image encoding apparatus and storage medium |
JP2014116940A (ja) * | 2012-12-11 | 2014-06-26 | Gurulogic Microsystems Oy | エンコーダ,デコーダおよびその方法 |
CN105629155A (zh) * | 2015-12-28 | 2016-06-01 | 中国科学院声学研究所 | 一种测试数据的字典编码方法 |
US10255315B2 (en) | 2012-12-11 | 2019-04-09 | Gurulogic Microsystems Oy | Encoder, decoder and method |
-
1991
- 1991-02-20 JP JP2586891A patent/JP3130324B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7277585B2 (en) | 2001-05-25 | 2007-10-02 | Ricoh Company, Ltd. | Image encoding method, image encoding apparatus and storage medium |
JP2014116940A (ja) * | 2012-12-11 | 2014-06-26 | Gurulogic Microsystems Oy | エンコーダ,デコーダおよびその方法 |
TWI549485B (zh) * | 2012-12-11 | 2016-09-11 | 古如羅技微系統公司 | 編碼器、解碼器以及編碼方法、解碼方法 |
US10255315B2 (en) | 2012-12-11 | 2019-04-09 | Gurulogic Microsystems Oy | Encoder, decoder and method |
CN103873863B (zh) * | 2012-12-11 | 2019-05-10 | 古如罗技微系统公司 | 编码器、解码器以及编码方法、解码方法 |
CN105629155A (zh) * | 2015-12-28 | 2016-06-01 | 中国科学院声学研究所 | 一种测试数据的字典编码方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3130324B2 (ja) | 2001-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5936560A (en) | Data compression method and apparatus performing high-speed comparison between data stored in a dictionary window and data to be compressed | |
US7403136B2 (en) | Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search | |
US6959300B1 (en) | Data compression method and apparatus | |
US5151697A (en) | Data structure management tagging system | |
US5870036A (en) | Adaptive multiple dictionary data compression | |
US5371499A (en) | Data compression using hashing | |
US5049881A (en) | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique | |
JP3273119B2 (ja) | データ圧縮・伸長装置 | |
JP3241788B2 (ja) | データ圧縮方式 | |
US6388585B1 (en) | Method for data compression and decompression using decompression instructions | |
JPH04265020A (ja) | データ圧縮方式 | |
JPH0764765A (ja) | データ圧縮装置及びデータ復元装置 | |
JP3241787B2 (ja) | データ圧縮方式 | |
JPH0628149A (ja) | 複数種類データのデータ圧縮方法 | |
Stauffer et al. | Dictionary Compression on the PRAM | |
JPH0378322A (ja) | データ圧縮方式 | |
JPH05241775A (ja) | データ圧縮方式 | |
JPS6268325A (ja) | 文章圧縮・伸展方式 | |
JP2823917B2 (ja) | データ圧縮方式 | |
Bhattacharjee et al. | An efficient encoding algorithm for image compression hardware based on cellular automata | |
JPH05152971A (ja) | データ圧縮・復元方法 | |
JPH06202844A (ja) | データ圧縮復元処理装置 | |
JPH03209923A (ja) | データ圧縮方式 | |
JPH1155125A (ja) | 文字データの圧縮・復元方法 | |
JP3100206B2 (ja) | データ圧縮方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20001031 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081117 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091117 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |