JP3083550B2 - データ圧縮及び復元方法 - Google Patents
データ圧縮及び復元方法Info
- Publication number
- JP3083550B2 JP3083550B2 JP31520690A JP31520690A JP3083550B2 JP 3083550 B2 JP3083550 B2 JP 3083550B2 JP 31520690 A JP31520690 A JP 31520690A JP 31520690 A JP31520690 A JP 31520690A JP 3083550 B2 JP3083550 B2 JP 3083550B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- dictionary
- code
- registered
- character
- 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 - Fee Related
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の詳細な説明】 〔目次〕 概要 産業上の利用分野 従来の技術(第13図乃至第18図) 発明が解決しようとする課題 課題を解決するための手段(第1図) 作用 実施例 (a)第1の実施例の説明(第2図乃至第5図) (b)第2の実施例の説明(第6図乃至第8図) (c)第3の実施例の説明(第9図乃至第11図) (d)第4の実施例の説明(第12図) (e)他の実施例の説明 発明の効果 〔概要〕 ユニバーサル符号化によりデータ圧縮するデータ圧縮
及び復元方法に関し, 無関係なデータ系列間のデータを登録することを防
ぎ,圧縮率を向上することを目的とし, 符号化済データを相異なる部分列に分けて,該部分列
を辞書に登録しておき,入力データで辞書に登録された
部分列を検索し,該入力データを該辞書に登録された部
分列の内,最大長一致するものの参照番号で指定して符
号化し,該辞書に登録するデータ圧縮方法において,該
入力データから該入力データの区切りを検出し,該区切
りを境にして,該区切り以降の入力データを新たな該辞
書登録の対象とする。
及び復元方法に関し, 無関係なデータ系列間のデータを登録することを防
ぎ,圧縮率を向上することを目的とし, 符号化済データを相異なる部分列に分けて,該部分列
を辞書に登録しておき,入力データで辞書に登録された
部分列を検索し,該入力データを該辞書に登録された部
分列の内,最大長一致するものの参照番号で指定して符
号化し,該辞書に登録するデータ圧縮方法において,該
入力データから該入力データの区切りを検出し,該区切
りを境にして,該区切り以降の入力データを新たな該辞
書登録の対象とする。
本発明は,ユニバーサル符号化によりデータ圧縮する
データ圧縮及び復元方法に関する。
データ圧縮及び復元方法に関する。
近年,文字コード,ベクトル情報,画像等様々な種類
のデータがコンピュータで扱われるようになっており,
扱われるデータ量も急速に増加してきている。大量のデ
ータを扱うときは,データの中の冗長な部分を省いてデ
ータ量を圧縮することで,記憶容量を減らしたり,速く
伝送したりできるようになる。
のデータがコンピュータで扱われるようになっており,
扱われるデータ量も急速に増加してきている。大量のデ
ータを扱うときは,データの中の冗長な部分を省いてデ
ータ量を圧縮することで,記憶容量を減らしたり,速く
伝送したりできるようになる。
様々なデータを1つの方式でデータ圧縮できる方法と
してユニバーサル符号化が提案されている。ここで,本
発明の分野は,文字コードの圧縮に限らず,様々なデー
タに適用できるが,以下では,情報理論で用いられてい
る呼称を踏襲し,データの1word単位を文字と呼び,デ
ータが任意wordつながったものを文字列と呼ぶことにす
る。
してユニバーサル符号化が提案されている。ここで,本
発明の分野は,文字コードの圧縮に限らず,様々なデー
タに適用できるが,以下では,情報理論で用いられてい
る呼称を踏襲し,データの1word単位を文字と呼び,デ
ータが任意wordつながったものを文字列と呼ぶことにす
る。
ユニバーサル符号の代表的な方法として,Ziv−Lempel
(ジブ−レンペル)符号がある(詳しくは,例えば,宗
像「Ziv−Lempelのデータ圧縮法」,情報処理,Vol.26,N
o.1,1985年を参照のこと)。
(ジブ−レンペル)符号がある(詳しくは,例えば,宗
像「Ziv−Lempelのデータ圧縮法」,情報処理,Vol.26,N
o.1,1985年を参照のこと)。
Ziv−Lempel符号ではユニバーサル型と,増分分
解型(Incremental parsing)の2つのアルゴリズムが
提案されている。さらに,ユニバーサル型アルゴリズム
の改良として,LZSS符号がある(T.C.Bell,“Better OPM
/1.Text Compression",IEEE Trans.on Commun.,Vol.COM
−34,No.12,Dec.1986参照)。また,増分分解型アルゴ
リズムの改良としては,LZW(Lempel−Ziv−Welch)符号
がある(T.A.Welch,“A Technique for High−Performa
nce Data Compression",Computer,June 1984参照)。
解型(Incremental parsing)の2つのアルゴリズムが
提案されている。さらに,ユニバーサル型アルゴリズム
の改良として,LZSS符号がある(T.C.Bell,“Better OPM
/1.Text Compression",IEEE Trans.on Commun.,Vol.COM
−34,No.12,Dec.1986参照)。また,増分分解型アルゴ
リズムの改良としては,LZW(Lempel−Ziv−Welch)符号
がある(T.A.Welch,“A Technique for High−Performa
nce Data Compression",Computer,June 1984参照)。
このようなユニバーサル符号化を用いたデータ圧縮方
法では,圧縮率の向上が求められる。
法では,圧縮率の向上が求められる。
第13図は従来技術の説明図である。
元来,ユニバーサル符号は,情報保存型のデータ圧縮
方法であり,データ圧縮時に情報源の統計的な性質を予
め仮定しないため,種々のタイプ(文字コード,オプジ
ェクトコードなど)のデータに適用することができる。
方法であり,データ圧縮時に情報源の統計的な性質を予
め仮定しないため,種々のタイプ(文字コード,オプジ
ェクトコードなど)のデータに適用することができる。
文書画像では,文字の文字線の直線性や曲がり具合に
は類似性がある。また,網点画像は,画像全体が網点分
散するため膨大な数の変化点が出現するが,網点周期
性,網点形状の同一性から輪郭線の接続関係は類似して
いる。この類似性のもつ冗長性をユニバーサル符号化に
より削減し,有効な圧縮ができる。
は類似性がある。また,網点画像は,画像全体が網点分
散するため膨大な数の変化点が出現するが,網点周期
性,網点形状の同一性から輪郭線の接続関係は類似して
いる。この類似性のもつ冗長性をユニバーサル符号化に
より削減し,有効な圧縮ができる。
このように,画像データに対しユニバーサル符号化が
有効なため,第13図に示すように,画像データをMMR方
式等により二次元的な情報(中間データ)に変換する前
処理を行い,次にLZW符号を用いてユニバーサル符号化
を行う本処理を行って,画像に対するユニバーサル符号
化の圧縮効率をより一層高める方法を既に提案した。
有効なため,第13図に示すように,画像データをMMR方
式等により二次元的な情報(中間データ)に変換する前
処理を行い,次にLZW符号を用いてユニバーサル符号化
を行う本処理を行って,画像に対するユニバーサル符号
化の圧縮効率をより一層高める方法を既に提案した。
この既提案の方法は,入力した画像を変化画素の相対
アドレスデータに変換し,その変換データから走査線方
向の変換画素の連続性等の統計的性質をユニバーサル符
号化の手法により学習しながら符号の最良化を図り,種
々の性質の画像において効率の良い圧縮を行うようにす
るものである。
アドレスデータに変換し,その変換データから走査線方
向の変換画素の連続性等の統計的性質をユニバーサル符
号化の手法により学習しながら符号の最良化を図り,種
々の性質の画像において効率の良い圧縮を行うようにす
るものである。
即ち,MMR方式(標準方式を変形)を変化画素のモード
の検出を前処理として用い,それにユニバーサル符号化
(Ziv−Lempel符号)を適用し,変化画素の連続性や輪
郭線の直線性,曲がり具合の大域的性質をユニバーサル
符号のインデックスで表すようにする。
の検出を前処理として用い,それにユニバーサル符号化
(Ziv−Lempel符号)を適用し,変化画素の連続性や輪
郭線の直線性,曲がり具合の大域的性質をユニバーサル
符号のインデックスで表すようにする。
このユニバーサル符号化をLZW符号を例に説明する。
第14図はLZW符号化処理フロー図,第15図はLZW復号化
処理フロー図である。
処理フロー図である。
LZW符号化は,書き替え可能な辞書をもち,入力文字
コード,データ中を相異なる文字列に分け,この文字例
を出現した順に番号を付けて辞書に登録するとともに,
現在入力している文字列を辞書に登録いてある最長一致
文字列の番号(インデックス)で表して,符号化するも
のである。
コード,データ中を相異なる文字列に分け,この文字例
を出現した順に番号を付けて辞書に登録するとともに,
現在入力している文字列を辞書に登録いてある最長一致
文字列の番号(インデックス)で表して,符号化するも
のである。
第14図のフロー図により符号化処理を説明する。
先ずステップS1(以下「ステップ」を省略)で予め全
文字につき一文字からなる文字列を初期値として登録し
てから符号化を始める。S1の符号化は,入力した最初の
文字Kにより辞書を検索して参照番号ωを求め,これを
語頭文字列(prefix string)とする。
文字につき一文字からなる文字列を初期値として登録し
てから符号化を始める。S1の符号化は,入力した最初の
文字Kにより辞書を検索して参照番号ωを求め,これを
語頭文字列(prefix string)とする。
次にS2で入力データの次の文字を読み込み,S3で文字
入力が終了したか否かをチェックした後,S4に進んでS1
で求めた語頭文字列ω又はS5のωにS2で読み込んだ文字
Kを加えた(ωK)が辞書にあるか否か探す。
入力が終了したか否かをチェックした後,S4に進んでS1
で求めた語頭文字列ω又はS5のωにS2で読み込んだ文字
Kを加えた(ωK)が辞書にあるか否か探す。
S4で文字列(ωK)が辞書になければ,S6に進んでS1
で求めた文字Kの参照番号ωを符号語code(ω)として
出力し,また文字列(ωK)に新たな参照番号を付加し
て辞書に登録し,さらにS2の入力文字Kを参照番号ωに
置き換えるとともに,辞書アドレスnをインクリメント
してS2に戻って次の文字Kを読み込む。
で求めた文字Kの参照番号ωを符号語code(ω)として
出力し,また文字列(ωK)に新たな参照番号を付加し
て辞書に登録し,さらにS2の入力文字Kを参照番号ωに
置き換えるとともに,辞書アドレスnをインクリメント
してS2に戻って次の文字Kを読み込む。
一方,S4で文字列(ωK)が辞書にあれば,S5で文字列
(ωK)を参照番号ωに置き換え,再びS2に戻って文字
列(ωK)が辞書から探せなくなるまで最大一致長の探
索を続ける。
(ωK)を参照番号ωに置き換え,再びS2に戻って文字
列(ωK)が辞書から探せなくなるまで最大一致長の探
索を続ける。
第15図の復号化処理は第14図の符号化の逆の操作を行
う。
う。
第15図の復号化では,符号化と同様に予め辞書に全文
字につき一文字から成る文字列を初期値として登録して
から復号を始める。
字につき一文字から成る文字列を初期値として登録して
から復号を始める。
先ずS1で最初の符号(参照番号)を読み込み,現在の
CODEをOLDcodeとし,最初の符号は既に辞書に登録され
た一文字の参照番号いずれかに該当することから,入力
符号CODEに一致する文字code(K)を探し出し,文字K
を出力する。なお,出力した文字(K)は後述するS8の
例外処理のためFINcharにセットしておく。
CODEをOLDcodeとし,最初の符号は既に辞書に登録され
た一文字の参照番号いずれかに該当することから,入力
符号CODEに一致する文字code(K)を探し出し,文字K
を出力する。なお,出力した文字(K)は後述するS8の
例外処理のためFINcharにセットしておく。
次にS2に進んで次の符号を読み込んでCODEにINcodeと
してセットする。
してセットする。
S3で新たな符号があるか否か,すなわち符号入力の終
了の有無をチェックしてS4に進み,S3で入力された符号C
ODEが辞書に定義(登録)されているか否かチェックす
る。
了の有無をチェックしてS4に進み,S3で入力された符号C
ODEが辞書に定義(登録)されているか否かチェックす
る。
通常,入力した符号語は前回までの処理で辞書に登録
されているため,S5に進んで符号CODEに対応する文字列c
ode(ωK)を辞書から読み出し,S6で文字列Kを一時的
にスタックし,参照番号code(ω)を新たなCODEとして
再度S5に戻り,このS5,S6の手順を再帰的に参照番号ω
が一文字に至るまで繰り返し,最後にS7に進んでS6でス
タックした文字をLIFO(Last In Fast Out)形式でポッ
プアップして出力する。同時にS7において,前回使った
符号ωと今回復元した文字列の最初の一文字Kを組
(ω,K)と表した文字列に,新たな参照番号を付加して
辞書に登録する。
されているため,S5に進んで符号CODEに対応する文字列c
ode(ωK)を辞書から読み出し,S6で文字列Kを一時的
にスタックし,参照番号code(ω)を新たなCODEとして
再度S5に戻り,このS5,S6の手順を再帰的に参照番号ω
が一文字に至るまで繰り返し,最後にS7に進んでS6でス
タックした文字をLIFO(Last In Fast Out)形式でポッ
プアップして出力する。同時にS7において,前回使った
符号ωと今回復元した文字列の最初の一文字Kを組
(ω,K)と表した文字列に,新たな参照番号を付加して
辞書に登録する。
このような画像のユニバーサル符号化のメリットを高
めるための,画像データの前処理方法について既提案の
ものを例に第16図,第17図により説明する。
めるための,画像データの前処理方法について既提案の
ものを例に第16図,第17図により説明する。
第16図は既提案の画像データの二次元符号化説明図,
第17図はその符号化例説明図である。
第17図はその符号化例説明図である。
第16図(B)に示すように,モード情報として,各々
1バイトの水平モードH,垂直モードV,バスモードPを割
り当てる。
1バイトの水平モードH,垂直モードV,バスモードPを割
り当てる。
次に,水平モードランレングス情報としては,白/黒
ランレングスを長さに応じ1バイト又は2バイト用い,
垂直モードズレレングス情報としては,変化点ズレレン
グスを長さに応じ,1バイト又は2バイト用いる。
ランレングスを長さに応じ1バイト又は2バイト用い,
垂直モードズレレングス情報としては,変化点ズレレン
グスを長さに応じ,1バイト又は2バイト用いる。
符号化は,MMR方式と同様に,第1ライン目の水平ラン
レングスで符号化し,第2ライン目以降は変化点におけ
る前のラインとの垂直ズレレングス及びパスモードで符
号化する。
レングスで符号化し,第2ライン目以降は変化点におけ
る前のラインとの垂直ズレレングス及びパスモードで符
号化する。
例えば,第16図(A)の画像に対しては,第17図のよ
うな二次元符号化データが得られる。
うな二次元符号化データが得られる。
即ち,第1ライン目では,水平モードHと白のランレ
ングスRL1,水平モードH2と黒のランレングスRL2に,第
2ライン目では,変化点(白→黒)の第1ライン目の変
化点からの垂直ズレレングスV1−ZL21と,変化点(黒→
白)の垂直ズレレングスV2−ZL22に,第3ライン目で
は,変化点の垂直ズレレングスV2−ZL31,V2−ZL32と,
水平モードH3と白のランレングスRL3,水平モードH4と黒
のランレングスRL4に符号化される。
ングスRL1,水平モードH2と黒のランレングスRL2に,第
2ライン目では,変化点(白→黒)の第1ライン目の変
化点からの垂直ズレレングスV1−ZL21と,変化点(黒→
白)の垂直ズレレングスV2−ZL22に,第3ライン目で
は,変化点の垂直ズレレングスV2−ZL31,V2−ZL32と,
水平モードH3と白のランレングスRL3,水平モードH4と黒
のランレングスRL4に符号化される。
このような画像の二次元符号化を行い,ユニバーサル
符号化を行った例を第18図に示す。
符号化を行った例を第18図に示す。
同図中,入力シンボルが,二次元符号化結果であり,
出力符号がそのユニバーサル符号化結果である。
出力符号がそのユニバーサル符号化結果である。
例えば,入力シンボル“10000000"はインデックス「1
28」で符号化され,辞書へは(既登録データ+次のデー
タ)が登録される。
28」で符号化され,辞書へは(既登録データ+次のデー
タ)が登録される。
ところで,ユニバーサル符号化は,データ系列に関係
なく,最大長一致既登録データに次の1シンボルを加え
たものを辞書に登録する。
なく,最大長一致既登録データに次の1シンボルを加え
たものを辞書に登録する。
このため,第18図の登録番号258,260,264,266,268,27
2,274,277等のように全く無関係なデータ系列の組合せ
も登録することになる。
2,274,277等のように全く無関係なデータ系列の組合せ
も登録することになる。
これによって,従来技術では,無関係なデータ系列間
のデータも組合せて,登録するため,出現頻度の極めて
少ないものを数多く登録してしまい,学習効果の遅れや
インデックス(登録番号)の増加による圧縮率の低下を
招くという問題があった。
のデータも組合せて,登録するため,出現頻度の極めて
少ないものを数多く登録してしまい,学習効果の遅れや
インデックス(登録番号)の増加による圧縮率の低下を
招くという問題があった。
従って,本発明は,無関係なデータ系列間のデータを
登録することを防ぎ,圧縮率を向上することのできるデ
ータ圧縮及び復元方法を提供することを目的とする。
登録することを防ぎ,圧縮率を向上することのできるデ
ータ圧縮及び復元方法を提供することを目的とする。
第1図は本発明の原理図である。
本発明は,第1図に示すように,符号化済データを相
異なる部分列に分けて,該部分列を辞書に登録してお
き,入力データで辞書に登録された部分列を検索し,該
入力データを該辞書に登録された部分列の内,最大長一
致するものの参照番号で指定して符号化し,該辞書に登
録するデータ圧縮方法において,該入力データから該入
力データの区切りを検出し,該区切りを境にして,該区
切り以降の入力データを新たな該辞書の登録の対象とす
るものである。
異なる部分列に分けて,該部分列を辞書に登録してお
き,入力データで辞書に登録された部分列を検索し,該
入力データを該辞書に登録された部分列の内,最大長一
致するものの参照番号で指定して符号化し,該辞書に登
録するデータ圧縮方法において,該入力データから該入
力データの区切りを検出し,該区切りを境にして,該区
切り以降の入力データを新たな該辞書の登録の対象とす
るものである。
又,本発明は,請求項(1)の符号化データを辞書に
登録された部分列の参照番号と比較し,該符号化データ
を一致する参照番号の部分列に復元するデータ復元方法
において,復元された部分列からデータの区切りを検出
し,該区切りを境に,新部分列を該辞書に登録するもの
である。
登録された部分列の参照番号と比較し,該符号化データ
を一致する参照番号の部分列に復元するデータ復元方法
において,復元された部分列からデータの区切りを検出
し,該区切りを境に,新部分列を該辞書に登録するもの
である。
本発明では,データ系列の区切りを検出し,区切りを
境にして,区切り以降の入力データを新データ系列とし
て登録の対象とするので,データ系列の異なる組合せデ
ータを登録することを防止し,出現頻度の低い無駄と思
われる登録をなくし,有用な登録を早くできるようにし
て学習効果を促進し,また無駄な登録をなくし,インデ
ックス(のビット数)の増加を抑え,圧縮率を向上させ
る。
境にして,区切り以降の入力データを新データ系列とし
て登録の対象とするので,データ系列の異なる組合せデ
ータを登録することを防止し,出現頻度の低い無駄と思
われる登録をなくし,有用な登録を早くできるようにし
て学習効果を促進し,また無駄な登録をなくし,インデ
ックス(のビット数)の増加を抑え,圧縮率を向上させ
る。
(a) 第1の実施例の説明 第2図は,本発明の第1の実施例処理フロー図であ
る。
る。
画像データを,第16図,第17図で説明したように,
二次元的な情報に変換して前処理する。
二次元的な情報に変換して前処理する。
次に,変換されたデータの切れ目(区切り)を認識
(検出)し,辞書への登録選択しながら,前述のユニバ
ーサル符号化を行い本処理する。
(検出)し,辞書への登録選択しながら,前述のユニバ
ーサル符号化を行い本処理する。
この本処理は次のようにして行う。
入力文次(データ)系列と同じ文字(データ)系列
を辞書内において検索する(辞書検索ステップ)。
を辞書内において検索する(辞書検索ステップ)。
次に辞書内で検索一致した文字(データ)系列のイ
ンデックスを符号化する(インデックス符号化ステッ
プ)。
ンデックスを符号化する(インデックス符号化ステッ
プ)。
文字(データ)列の切れ目を認識し,辞書に登録す
る(辞書登録ステップ)。
る(辞書登録ステップ)。
第3図は本発明の第1の実施例符号化処理フロー図で
あり,第4図はその動作説明図,第5図はその復号化処
理フロー図である。
あり,第4図はその動作説明図,第5図はその復号化処
理フロー図である。
尚,符号化,復号化とも,図示しないプロセッサがメ
モリに辞書を作成して実行するものとする。
モリに辞書を作成して実行するものとする。
符号化処理について,第3図を用いて説明する。
尚,第14図で示したステップと同一のものは,同一の
記号で示してある。
記号で示してある。
S1) 辞書の初期化として,第1番目の256文字(ワー
ド)を登録し,辞書の先頭アドレスNを256とする。
ド)を登録し,辞書の先頭アドレスNを256とする。
次に,最初の文字Kを入力し,辞書中のそのアドレス
をω1に代入する。
をω1に代入する。
S2) 次の文字Kを入力し,S4に進む。
S4) 文字列ω1と文字Kとの組合せが辞書にあるかど
うかを調べる。
うかを調べる。
S5) 辞書にω1 Kが存在するならば,ω1 Kの登録アド
レスに代入する。
レスに代入する。
S3) 次にデータが終了かを調べ,データ終了ならS7
へ,データ終了でないならS2へ戻る。
へ,データ終了でないならS2へ戻る。
これによって辞書内にある最長一致文字列を検索す
る。
る。
S7) データ終了なら,アドレスω1を符号として出力
し,終了する。
し,終了する。
S8) ステップS4で,辞書にω1 Kが存在しないなら
ば,ω1とKとの間がデータの切れ目かを判定する。
ば,ω1とKとの間がデータの切れ目かを判定する。
例えば,Kが水平モードコード(10000000),パスモー
ドコード(00000001)であることやデータ構成上Kがズ
レレングスコードであることによって,データの切れ目
と判定する。
ドコード(00000001)であることやデータ構成上Kがズ
レレングスコードであることによって,データの切れ目
と判定する。
S6) 従来通り,データの切れ目でなければ,アドレス
ω1を符号として出力し,ω1 Kを辞書のアドレスNに
登録し,先頭アドレスNを(N+1)にインクリメント
し,Kの辞書アドレスをω1に代入し,ステップS3へ進
む。
ω1を符号として出力し,ω1 Kを辞書のアドレスNに
登録し,先頭アドレスNを(N+1)にインクリメント
し,Kの辞書アドレスをω1に代入し,ステップS3へ進
む。
S9) 一方,データの切れ目であれば,アドレスω1を
符号として出力し,辞書の登録はせずに,Kの辞書アドレ
スをω1に代入し,ステップS3へ進む。
符号として出力し,辞書の登録はせずに,Kの辞書アドレ
スをω1に代入し,ステップS3へ進む。
このように,ステップS8,S9を設け,データの切れ目
なら,辞書登録を打ち切り,Kをω1として切れ目以降の
データを新規の辞書登録の対象とする。
なら,辞書登録を打ち切り,Kをω1として切れ目以降の
データを新規の辞書登録の対象とする。
第4図の例で圧縮(符号化)処理について具体的に説
明する。
明する。
ここで,入力シンボルを前述の第18図と同一のもので
説明し,矢印が区切り位置である。
説明し,矢印が区切り位置である。
先づ,第1ライン目は水平モードと白黒ランレングス
との組み合わせであるから,水平モード(10000000)と
2バイトの白ランレングス(RL W128)で区切りとな
る。
との組み合わせであるから,水平モード(10000000)と
2バイトの白ランレングス(RL W128)で区切りとな
る。
ここで,白黒ランレングスは,第16図(B)のよう
に,先頭“0"の1バイトコード又は先頭“1"の2バイト
コードが割当てられるので,ここではランレングスの先
頭が“1"のため2バイトコードと認識できる。
に,先頭“0"の1バイトコード又は先頭“1"の2バイト
コードが割当てられるので,ここではランレングスの先
頭が“1"のため2バイトコードと認識できる。
次の水平モードと2バイトの黒ランレングスも1つの
データ系列としてまとめられ,区切りとなる。
データ系列としてまとめられ,区切りとなる。
従って,第1ライン目では,水平モードが出力符号
「128」とし,白ランレングスの第1バイト目が出力符
号「128」として出力され,これらをまとめて登録番号
「256」として辞書登録される。
「128」とし,白ランレングスの第1バイト目が出力符
号「128」として出力され,これらをまとめて登録番号
「256」として辞書登録される。
次に,白ランレングスの第2バイト目が出力符号
「1」として出力され,前の登録辞書内容(10000000)
との組合せが,辞書に登録番号「257」として登録され
る。
「1」として出力され,前の登録辞書内容(10000000)
との組合せが,辞書に登録番号「257」として登録され
る。
次に,2番目の水平モードに対しては,前に区切りがあ
るため,白ランレングスと続けて組合わせて,登録され
ず,2番目の水平モード以降を新規登録,検索の対象とす
る。
るため,白ランレングスと続けて組合わせて,登録され
ず,2番目の水平モード以降を新規登録,検索の対象とす
る。
即ち,水平モードと黒ランレングスの第1バイト目の
内容が先づ検索の対象とされ,これは辞書に登録番号
「256」として存在するので,出力符号「256」として出
力される。そして,黒ランレングスの第2バイト目の内
容は出力符号「72」として出力され,前の辞書内容「25
6」出力符号「72」が登録番号「258」として辞書登録さ
れる。
内容が先づ検索の対象とされ,これは辞書に登録番号
「256」として存在するので,出力符号「256」として出
力される。そして,黒ランレングスの第2バイト目の内
容は出力符号「72」として出力され,前の辞書内容「25
6」出力符号「72」が登録番号「258」として辞書登録さ
れる。
同様に,第2ライン目以降は,基本的にはズレレング
スのため,ズレレングスの境を見付けて,切れ目を検出
する。
スのため,ズレレングスの境を見付けて,切れ目を検出
する。
ズレレングスは,第16図(B)のように,先頭2ビッ
トが“00",“01",“10",“11"の1バイト,2バイトコー
ドであり,水平モード(10000000),垂直モード(0000
0000),パスモード(00000001)は割当てられないた
め,これらと区別できる。
トが“00",“01",“10",“11"の1バイト,2バイトコー
ドであり,水平モード(10000000),垂直モード(0000
0000),パスモード(00000001)は割当てられないた
め,これらと区別できる。
従って,同様にして,ズレレングスの切れ目を第4図
のように検出でき,切れ目を境に新規に,辞書検索,登
録を行う。
のように検出でき,切れ目を境に新規に,辞書検索,登
録を行う。
以下,第3ライン目以降も同様に行う。
このようにして,入力シンボルの符号形式から区切り
を検出する。
を検出する。
従って,この例では,各区切り毎に辞書検索登録が行
われ,無関係なデータ系列の組み合わせを登録しなくて
済み,学習効果が向上し,インデックス(登録番号)の
ビット数の増加も最小限で抑えられる。
われ,無関係なデータ系列の組み合わせを登録しなくて
済み,学習効果が向上し,インデックス(登録番号)の
ビット数の増加も最小限で抑えられる。
次に,復元処理について,第5図を用いて説明する。
尚,第15図で示したステップと同一のものは,同一の
記号で示してある。
記号で示してある。
S1) 符号化と同様に予め辞書に第1番目の256文字を
登録し,辞書の先頭アドレスnを「256」としてから復
号を始める。
登録し,辞書の先頭アドレスnを「256」としてから復
号を始める。
先づ,最初の符号(参照番号)を読み込み,現在のCO
DEをOLDcodeとし,最初の符号は既に辞書に登録された
一文字の参照番号いずれかに該当することから,入力符
号CODEに一致する文字code(K)を探し出し,文字Kを
出力する。なお,出力した文字(K)は後の例外処理の
ためFINcharにセットしておく。
DEをOLDcodeとし,最初の符号は既に辞書に登録された
一文字の参照番号いずれかに該当することから,入力符
号CODEに一致する文字code(K)を探し出し,文字Kを
出力する。なお,出力した文字(K)は後の例外処理の
ためFINcharにセットしておく。
S2) 次にS2に進んで次の符号を読み込んでCODEにINco
deとしてセットする。
deとしてセットする。
S4) 次にS4に進み,S2で入力された符号CODEが辞書に
定義(登録)されているか否かチェックする。
定義(登録)されているか否かチェックする。
S5) 通常,入力した符号語は前回までの処理で辞書に
登録されているため,S5に進んで符号CODEに対応する文
字列code(ωK)を辞書から読み出す。
登録されているため,S5に進んで符号CODEに対応する文
字列code(ωK)を辞書から読み出す。
S6) S6で文字列Kを一時的にスタックし,参照番号co
de(ω)を新たなCODEとして再度S5に戻し,このS5,S6
の手順を再帰的に参照番号ωが一文字にいたるまで繰り
返す。
de(ω)を新たなCODEとして再度S5に戻し,このS5,S6
の手順を再帰的に参照番号ωが一文字にいたるまで繰り
返す。
S9) 最後にS9に進んで,文字Kを出力し,KをFINchar
にセットした後,S6でスタックした文字をLIFO(Last In
Fast Out)形式でポップアップして出力する。
にセットした後,S6でスタックした文字をLIFO(Last In
Fast Out)形式でポップアップして出力する。
S10) 次に,復元された文字を前述の符号化のステッ
プS8と同様に,構文解析し,データの切れ目があるかを
チェックする。データの切れ目の場合は,ステップS12
へ,データの切れ目でない場合は,ステップS11へ進
む。
プS8と同様に,構文解析し,データの切れ目があるかを
チェックする。データの切れ目の場合は,ステップS12
へ,データの切れ目でない場合は,ステップS11へ進
む。
S11) データの切れ目でないなら,前回使った符号OLD
codeと今回復元した文字列の最初の一文字Kを組(OLDc
ode,K)と表わした文字列を,新たな参照番号で辞書に
登録し,参照番号(アドレス)nをn+1にインクリメ
ントとし,INcodeをOLDcodeにセットして,ステップS3に
進む。
codeと今回復元した文字列の最初の一文字Kを組(OLDc
ode,K)と表わした文字列を,新たな参照番号で辞書に
登録し,参照番号(アドレス)nをn+1にインクリメ
ントとし,INcodeをOLDcodeにセットして,ステップS3に
進む。
S12) データの切れ目なら,辞書登録は行わず,INcode
をOLDcodeにセットし,ステップS3へ進む。
をOLDcodeにセットし,ステップS3へ進む。
S3) データが終了かをチェックし,終了でなければ,S
2へ戻り,終了なら復号化を終了する。
2へ戻り,終了なら復号化を終了する。
S8) なお,S4において登録されていない符号(符号化
において直前の参照番号を参照する場合に起きる)場
合,S8にて,FINcharを出力し,OLDcodeをCODEに,code(OL
Dcode,FINchar)をINcodeに戻した後にS5へ進むように
する。
において直前の参照番号を参照する場合に起きる)場
合,S8にて,FINcharを出力し,OLDcodeをCODEに,code(OL
Dcode,FINchar)をINcodeに戻した後にS5へ進むように
する。
即ち,第15図の従来例に対し,ステップS10,S11,S12
が加わり,データの切れ目でなければ,従来通り,新規
辞書登録を行い,データの切れ目なら新規辞書登録を行
なわず,データの切れ目で登録内容を区切っている。
が加わり,データの切れ目でなければ,従来通り,新規
辞書登録を行い,データの切れ目なら新規辞書登録を行
なわず,データの切れ目で登録内容を区切っている。
(b) 第2の実施例の説明 第6図は本発明の第2の実施例符号化処理フロー図,
第7図はその動作説明図,第8図はその復号化処理フロ
ー図である。
第7図はその動作説明図,第8図はその復号化処理フロ
ー図である。
尚,第3図乃至第5図で説明したステップと同一のも
のは,同一の記号で示してあり,説明は省略する。
のは,同一の記号で示してあり,説明は省略する。
この例は,第1の実施例が,区切り間において,辞書
登録を前の出力符号に今回の文字(データ)を組合わせ
たもので行うのに対し,辞書登録を区切りの先頭文字
(データ)から今回の文字まで連続させたものを行うも
のであり,この連続登録により圧縮率が高くなる。
登録を前の出力符号に今回の文字(データ)を組合わせ
たもので行うのに対し,辞書登録を区切りの先頭文字
(データ)から今回の文字まで連続させたものを行うも
のであり,この連続登録により圧縮率が高くなる。
符号化処理について,第6図を用いて説明する。
S1) 第3図のステップS1と基本的に同一である。
但し,最初の文字Kを入力し,それを,登録する時に
利用する文字列ω1と符号化する時に利用する文字列ω
2に代入する。
利用する文字列ω1と符号化する時に利用する文字列ω
2に代入する。
尚,ここでは,ω1=ω2となる。
S2,S4,S8) 第3図のステップS2,S4,S8と同一である。
S6) S9でデータの切れ目でない場合は,データの区切
り目ではないので,符号文字列ω2に対応する符号code
(ω2)を出力すると共にω1Kの組合せを辞書に登録,
登録アドレスをインクリメントした後,ω1Kが登録され
ているアドレスを新たなω1(これによって連続登録が
可能),Kを新たなω2として,S3へ進む。
り目ではないので,符号文字列ω2に対応する符号code
(ω2)を出力すると共にω1Kの組合せを辞書に登録,
登録アドレスをインクリメントした後,ω1Kが登録され
ているアドレスを新たなω1(これによって連続登録が
可能),Kを新たなω2として,S3へ進む。
S7) データの切れ目である場合は,符号code(ω2)
を出力するとともに,Kを新たなω1,ω2とし,ステップ
S3へ進む。
を出力するとともに,Kを新たなω1,ω2とし,ステップ
S3へ進む。
これによってデータの切れ目で検索,登録を区切る。
S5) S4でω1Kが辞書にある場合は,ω1 Kが登録され
ているアドレスを新たなω1に,ω2Kが登録されている
アドレスを新たなω2に代入し,S3へ進む。
ているアドレスを新たなω1に,ω2Kが登録されている
アドレスを新たなω2に代入し,S3へ進む。
S3,S7)第3図のS3,S7と同一である。
第7図の例で符号化処理について具体的に説明する。
ここで,第4図の例と異なるのは,データの区切り間
で検索,登録を行うのは,同一であるが,登録内容が全
て区切りの先頭から出発している点であり,例えば,登
録番号「257」では,先頭の水平モードからランレング
スの2バイト目までを登録する。
で検索,登録を行うのは,同一であるが,登録内容が全
て区切りの先頭から出発している点であり,例えば,登
録番号「257」では,先頭の水平モードからランレング
スの2バイト目までを登録する。
これは,ステップS6で,ω1 Kをω1としているため
である。
である。
次に,復号化処理を第8図を用いて説明する。
S1,S2,S4,S5,S6,S8,S9,S10) 第5図のステップS1,S2,
S4,S5,S6,S8,S9,S10と同一である。
S4,S5,S6,S8,S9,S10と同一である。
S11) S11では,前回使った符号OLDcodeと今回復元し
た文字列の最初の一文字Kを組(OLDcode,K)と表した
文字列を,新たな参照番号で辞書に登録し,参照番号n
をn+1にインクリメントし,code(OLDcode,K)をOLDc
odeとしてS3に進む。
た文字列の最初の一文字Kを組(OLDcode,K)と表した
文字列を,新たな参照番号で辞書に登録し,参照番号n
をn+1にインクリメントし,code(OLDcode,K)をOLDc
odeとしてS3に進む。
OLDcodeを(OLDcode,K)に更新するので,復元におい
て,連続登録ができる。
て,連続登録ができる。
S12,S3) 第5図のステップS12,S3と同一である。
(c) 第3の実施例の説明 第9図は本発明の第3の実施例符号化処理フロー図,
第10図はその動作説明図,第11図はその復号化処理フロ
ー図である。
第10図はその動作説明図,第11図はその復号化処理フロ
ー図である。
尚,第6図,第8図で説明したステップと同一のもの
は,同一の記号で示してあり,説明は省略する。
は,同一の記号で示してあり,説明は省略する。
この例は,データの切れ目を先頭にするのに変りはな
いが,第2の実施例に加えて,連続登録を切れ目以降ま
で延長するようにし,連続登録の長さがよく長くし,圧
縮率をより向上するものである。
いが,第2の実施例に加えて,連続登録を切れ目以降ま
で延長するようにし,連続登録の長さがよく長くし,圧
縮率をより向上するものである。
符号化処理について,第9図を用いて説明する。
S1,S2,S3,S4,S5,S6,S8) 第6図のステップS1,S2,S3,S
4,S5,S6,S8と同一である。
4,S5,S6,S8と同一である。
S7) S8でデータの切れ目が検出された場合は,符号co
de(ω2)を出力すると,ω1 Kを辞書に登録する。
de(ω2)を出力すると,ω1 Kを辞書に登録する。
即ち,区切りがあっても,連続登録が行われる。
そして,アドレスNをN+1にインクリメントし,Kを
ω1,ω2に代入して,ステップS3へ進む。
ω1,ω2に代入して,ステップS3へ進む。
Kをω1とするので,延長は区切りから1文字目まで
である。
である。
第10図の例で符号化処理について具体的に説明する。
ここで,第7図の例と異なるのは,区切りがあっても
連続登録は打ち切られない点である。
連続登録は打ち切られない点である。
例えば,登録番号「258」では,区切りがあっても,
連続登録は打ち切られず,区切りの第1バイト目である
第2番目の水平モードまで延長される。
連続登録は打ち切られず,区切りの第1バイト目である
第2番目の水平モードまで延長される。
これと同時にこの水平モードを先頭にして,登録番号
「259」のように連続登録が行なわれる。
「259」のように連続登録が行なわれる。
これらは,ステップS6,S7でω1 Kを辞書登録している
ためである。
ためである。
次に復号化処理について第11図を用いて説明する。
S1,S2,S3,S4,S5,S6,S8,S9,S10,S11) 第8図のS1,S2,S
3,S4,S5,S6,S8,S9,S10,S11と同一である。
3,S4,S5,S6,S8,S9,S10,S11と同一である。
S12) S10でデータの切れ目を検出すると,S11と同様
に,前回使った符号OLDcodeと今回復元した文字列の最
初の一文字Kを組(OLDcode,K)と表した文字列を,新
たな参照番号で辞書に登録し,参照番号nをn+1にイ
ンクリメントし,INcodeをOLDcodeとしてS3へ進む。
に,前回使った符号OLDcodeと今回復元した文字列の最
初の一文字Kを組(OLDcode,K)と表した文字列を,新
たな参照番号で辞書に登録し,参照番号nをn+1にイ
ンクリメントし,INcodeをOLDcodeとしてS3へ進む。
これによって,区切りがあっても,連続登録が可能と
なるとともに,INcodeをOLDcodeとしているので,区切り
以降1文字目で連続登録が打ち切られる。
なるとともに,INcodeをOLDcodeとしているので,区切り
以降1文字目で連続登録が打ち切られる。
(d) 第4の実施例の説明 第12図は本発明の第4図の実施例処理フロー図であ
る。
る。
この実施例では,第2図の実施例に比し,画像データ
を二次元情報に変換する際に区切り位置に区切り(切れ
目)符号を挿入するものであり,本処理において,区切
り符号を検出し,第1乃至第3の実施例で説明した符号
化,符号化を行うものである。
を二次元情報に変換する際に区切り位置に区切り(切れ
目)符号を挿入するものであり,本処理において,区切
り符号を検出し,第1乃至第3の実施例で説明した符号
化,符号化を行うものである。
このようにすると,区切りの検出に構文解析しなくて
よいので,符号化,復号化時間が短縮できるという利点
がある。
よいので,符号化,復号化時間が短縮できるという利点
がある。
(e) 他の実施例の説明 上述の実施例の他に,本発明は次のような変形が可能
である。
である。
画像データを対象としたが,他のデータであっても
よい。
よい。
画像データを二次元情報に変換して符号化している
が,原データを符号化してもよい。
が,原データを符号化してもよい。
以上本発明を実施例により説明したが,本発明は本発
明の主旨に従い種々の変形が可能であり,本発明からこ
れらを排除するものではない。
明の主旨に従い種々の変形が可能であり,本発明からこ
れらを排除するものではない。
以上説明した様に,本発明によれば,次の効果を奏す
る。
る。
データ系列の区切りを検出し,区切りを境にして,
区切り以降の入力データを新データ系列として登録の対
象とするので,データ系列の異なる組合せデータの辞書
への登録を防ぎ,出現頻度の低い無駄と思われる登録を
なくし,有用な登録を早くできるようにして学習効果を
促進する。
区切り以降の入力データを新データ系列として登録の対
象とするので,データ系列の異なる組合せデータの辞書
への登録を防ぎ,出現頻度の低い無駄と思われる登録を
なくし,有用な登録を早くできるようにして学習効果を
促進する。
無駄な登録をなくし,インデックスのビット数の増
加を抑え,圧縮率を向上できる。
加を抑え,圧縮率を向上できる。
第1図は本発明の原理図, 第2図は本発明の第1の実施例処理フロー図, 第3図は本発明の第1の実施例符号化処理フロー図, 第4図は本発明の第1の実施例動作説明図, 第5図は本発明の第1の実施例復号化処理フロー図, 第6図は本発明の第2の実施例符号化処理フロー図, 第7図は本発明の第2の実施例動作説明図, 第8図は本発明の第2の実施例復号化処理フロー図, 第9図は本発明の第3の実施例符号化処理フロー図, 第10図は本発明の第3の実施例動作説明図, 第11図は本発明の第3の実施例復号化処理フロー図, 第12図は本発明の第4の実施例処理フロー図, 第13図乃至第18図は従来技術の説明図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中野 泰彦 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 特開 昭60−116228(JP,A) 特開 昭61−242122(JP,A) (58)調査した分野(Int.Cl.7,DB名) H03M 7/40
Claims (2)
- 【請求項1】符号化済データを相異なる部分列に分け
て,該部分列を辞書に登録しておき, 入力データで辞書に登録された部分列を検索し,該入力
データを該辞書に登録された部分列の内,最大長一致す
るものの参照番号で指定して符号化し,該辞書に登録す
るデータ圧縮方法において, 該入力データから該入力データの区切りを検出し, 該区切りを境にして,該区切り以降の入力データを新た
な該辞書登録の対象とすることを 特徴とするデータ圧縮方法。 - 【請求項2】請求項(1)の符号化データを辞書に登録
された部分列の参照番号と比較し, 該符号化データを一致する参照番号の部分列に復元する
データ復元方法において, 復元された部分列からデータの区切りを検出し,該区切
りを境に,新部分列を該辞書に登録することを 特徴とするデータ復元方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31520690A JP3083550B2 (ja) | 1990-11-20 | 1990-11-20 | データ圧縮及び復元方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP31520690A JP3083550B2 (ja) | 1990-11-20 | 1990-11-20 | データ圧縮及び復元方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04185117A JPH04185117A (ja) | 1992-07-02 |
JP3083550B2 true JP3083550B2 (ja) | 2000-09-04 |
Family
ID=18062682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP31520690A Expired - Fee Related JP3083550B2 (ja) | 1990-11-20 | 1990-11-20 | データ圧縮及び復元方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3083550B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3278297B2 (ja) * | 1994-07-20 | 2002-04-30 | 富士通株式会社 | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 |
ATE397346T1 (de) * | 2000-07-25 | 2008-06-15 | Juniper Networks Inc | Netzwerkarchitektur und verfahren zur transparenten online-querschnittskodierung und zum transport von netzwerkkommunikationsdaten |
-
1990
- 1990-11-20 JP JP31520690A patent/JP3083550B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04185117A (ja) | 1992-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3541930B2 (ja) | 符号化装置及び復号化装置 | |
US6650261B2 (en) | Sliding window compression method utilizing defined match locations | |
JP3634711B2 (ja) | 入力データストリームの圧縮方法とその装置 | |
US20070150497A1 (en) | Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search | |
JP3258552B2 (ja) | データ圧縮装置及びデータ復元装置 | |
US5392036A (en) | Efficient optimal data recopression method and apparatus | |
JP3231105B2 (ja) | データ符号化方式及びデータ復元方式 | |
JP3342788B2 (ja) | 圧縮データの伸張方法 | |
JP3083550B2 (ja) | データ圧縮及び復元方法 | |
JP3038223B2 (ja) | データ圧縮方式 | |
JP3034016B2 (ja) | データ圧縮及び復元方法 | |
JP3350118B2 (ja) | データ符号化方式及びデータ復元方式 | |
JP3241787B2 (ja) | データ圧縮方式 | |
JP3105598B2 (ja) | ユニバーサル符号を用いたデータ圧縮方式 | |
JP3038233B2 (ja) | データ圧縮及び復元装置 | |
JPH05152971A (ja) | データ圧縮・復元方法 | |
JPH0723238A (ja) | 画像データ圧縮及び復元装置 | |
JP3100206B2 (ja) | データ圧縮方法 | |
JPH06161705A (ja) | データ符号化方式及びデータ復元方式 | |
JP3115066B2 (ja) | 辞書検索方法 | |
JP3088740B2 (ja) | データ圧縮及び復元方式 | |
JP2952067B2 (ja) | データ圧縮方式 | |
JPH0644038A (ja) | データ圧縮方法、データ復元方法、データ圧縮/復元方法 | |
JPH05134846A (ja) | 画像データ圧縮方法 | |
JP2999587B2 (ja) | データ圧縮及び復元方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |