JP2732188B2 - 最適符号表現を用いた多段データ圧縮装置 - Google Patents
最適符号表現を用いた多段データ圧縮装置Info
- Publication number
- JP2732188B2 JP2732188B2 JP7862193A JP7862193A JP2732188B2 JP 2732188 B2 JP2732188 B2 JP 2732188B2 JP 7862193 A JP7862193 A JP 7862193A JP 7862193 A JP7862193 A JP 7862193A JP 2732188 B2 JP2732188 B2 JP 2732188B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- data
- encoding
- character
- output
- 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
【0001】
【産業上の利用分野】本発明は、データ圧縮に広く使用
されているLZW (Lempei-Zip-Welch)符号化の圧縮率を
高めて符号化することができるデータ圧縮装置に関する
ものである。
されているLZW (Lempei-Zip-Welch)符号化の圧縮率を
高めて符号化することができるデータ圧縮装置に関する
ものである。
【0002】
【従来の技術】LZW 符号(文献1:Terry A. Welch "A
Technique for High-Performance Data Compression"
, Computer, 17, 6, pp8-19, 1984 )は、情報源によ
らないユニバーサル符号で実行速度も速いことから、デ
ータ圧縮に広く使用されている。UNIXオペレーティング
システムでは、可変長符号を採用したLZW 符号がファイ
ル圧縮コマンドcompressとして利用可能である。compre
ssでは出力する符号をC(0≦C≦J)、割り当てた最
大の符号をJ=2m +L(0<L<2m )としたとき、
常にCをm+1ビットで符号化し、8個の符号をまとめ
てブロック化している。また、LZW 符号では、文字符号
の種類が少ないときには全文字符号に予め番号を付与し
ておくのではなく、初めて出てくる文字符号に符号を付
与した方がよいことが知られている(文献1参照)。
Technique for High-Performance Data Compression"
, Computer, 17, 6, pp8-19, 1984 )は、情報源によ
らないユニバーサル符号で実行速度も速いことから、デ
ータ圧縮に広く使用されている。UNIXオペレーティング
システムでは、可変長符号を採用したLZW 符号がファイ
ル圧縮コマンドcompressとして利用可能である。compre
ssでは出力する符号をC(0≦C≦J)、割り当てた最
大の符号をJ=2m +L(0<L<2m )としたとき、
常にCをm+1ビットで符号化し、8個の符号をまとめ
てブロック化している。また、LZW 符号では、文字符号
の種類が少ないときには全文字符号に予め番号を付与し
ておくのではなく、初めて出てくる文字符号に符号を付
与した方がよいことが知られている(文献1参照)。
【0003】LZW 符号化の符号割り当ての場合に、出力
符号Cの領域によって出力ビット長を変化させることに
より、LZW 符号の圧縮率を高めることができる。Cの出
現確率を一様とすると、符号長は式(1)で与えられる
ビット分、平均的に短縮される。従って、0 ≦L≦2m
区間の平均は2 m が十分大きいときに、式(2)で示す
ように、 loge 4 −1=0.386 で近似される。即ち、符
号長m+1が12ビットであれば、0.386 /12=3.22%
の改善が行なわれる。この圧縮方式を対数圧縮と呼ぶ。
符号Cの領域によって出力ビット長を変化させることに
より、LZW 符号の圧縮率を高めることができる。Cの出
現確率を一様とすると、符号長は式(1)で与えられる
ビット分、平均的に短縮される。従って、0 ≦L≦2m
区間の平均は2 m が十分大きいときに、式(2)で示す
ように、 loge 4 −1=0.386 で近似される。即ち、符
号長m+1が12ビットであれば、0.386 /12=3.22%
の改善が行なわれる。この圧縮方式を対数圧縮と呼ぶ。
【0004】
【数1】
【0005】
【数2】
【0006】このLZW 符号化の符号割り当ての場合に出
力する符号Cが0≦C<2m +Lならmビットで、2m
≦C≦Jならm+1ビットで符号化する方法が提案され
ている。(横尾 英俊“ユニヴァーサル情報符号化のた
めの修正Zip-Lempei符号”,信学論(A),J68−A,
7,pp664-671, 昭60−07、参照)。
力する符号Cが0≦C<2m +Lならmビットで、2m
≦C≦Jならm+1ビットで符号化する方法が提案され
ている。(横尾 英俊“ユニヴァーサル情報符号化のた
めの修正Zip-Lempei符号”,信学論(A),J68−A,
7,pp664-671, 昭60−07、参照)。
【0007】
【発明が解決しようとする課題】UNIXの電子メイルシス
テムでは、バイナリファイルを送る場合に一旦ASCII の
印刷可能文字に変換する必要があり、UNIXではuuencode
を変換プログラムとして利用している。このuuencodeは
データを6ビット毎に切り、32を足し込んでASCII コ
ードに変換している。テキストファイルでも、大きなフ
ァイルを送るときには、ファイル圧縮の結果得られたバ
イナリ形式のファイルをASCII 形式のファイルに変換す
ることが多い。しかし、和文テキストは、2バイトを基
本としたデータ構造になっているため、1バイト単位で
符号化するLZW 符号化の場合には圧縮効率が低い。ま
た、0等が多数連続するバイナリのデータに対しても圧
縮率が低い欠点がある。
テムでは、バイナリファイルを送る場合に一旦ASCII の
印刷可能文字に変換する必要があり、UNIXではuuencode
を変換プログラムとして利用している。このuuencodeは
データを6ビット毎に切り、32を足し込んでASCII コ
ードに変換している。テキストファイルでも、大きなフ
ァイルを送るときには、ファイル圧縮の結果得られたバ
イナリ形式のファイルをASCII 形式のファイルに変換す
ることが多い。しかし、和文テキストは、2バイトを基
本としたデータ構造になっているため、1バイト単位で
符号化するLZW 符号化の場合には圧縮効率が低い。ま
た、0等が多数連続するバイナリのデータに対しても圧
縮率が低い欠点がある。
【0008】本発明は、このような従来技術の問題点に
鑑みてなされたもので、日本語を対象とする任意の出力
文字符号に対して従来の符号化圧縮よりも圧縮率を高め
ることのできる最適符号表現を用いた多段データ圧縮装
置を提供することを目的とする。
鑑みてなされたもので、日本語を対象とする任意の出力
文字符号に対して従来の符号化圧縮よりも圧縮率を高め
ることのできる最適符号表現を用いた多段データ圧縮装
置を提供することを目的とする。
【0009】
【課題を解決するための手段】この目的を達成するため
に、本発明による最適符号表現を用いた多段データ圧縮
装置は、データの圧縮のために、漢字データの同一区コ
ードの連続や、同一のバイトの連続や、数値表現の如き
特殊パターンを符号化して情報源依存の圧縮をする特殊
パターン符号化装置と、該情報源依存の圧縮を行なった
後出力を情報源によらないLZW 符号等のユニバーサル符
号のデータに最短符号表現を用いて符号化する汎用符号
化装置と、出力符号が限定されている場合に最短符号割
り当ての逆変換を用いて該出力符号の限定に適合する圧
縮データとして出力する符号変換装置とを備えた構成を
有している。
に、本発明による最適符号表現を用いた多段データ圧縮
装置は、データの圧縮のために、漢字データの同一区コ
ードの連続や、同一のバイトの連続や、数値表現の如き
特殊パターンを符号化して情報源依存の圧縮をする特殊
パターン符号化装置と、該情報源依存の圧縮を行なった
後出力を情報源によらないLZW 符号等のユニバーサル符
号のデータに最短符号表現を用いて符号化する汎用符号
化装置と、出力符号が限定されている場合に最短符号割
り当ての逆変換を用いて該出力符号の限定に適合する圧
縮データとして出力する符号変換装置とを備えた構成を
有している。
【0010】
【作用】本発明による主要なる作用効果は次の通りであ
る。 同一のバイトがL個連続したとき、LZW 符号では2
Lの平方根に相当する個数の符号が出力される。そこ
で、LZW 符号化において、日本語を対象とした圧縮と、
連続する同一バイトの圧縮を行う機能を付加すると有効
である。このために、LZW 符号化を行う前に、特殊パタ
ーン符号化装置によって、同一区コードの漢字の連続に
関して区コードを省略したり、同一バイトの連続に関し
て連続するバイトを省略する等の特殊パターン符号化を
行うことにより、日本語データやバイナリデータに対し
て圧縮率を高めることができる。 出力文字符号がASCII の印刷可能文字等に制限され
ている場合に、使用可能な出力文字符号を全て用いるこ
とにより、より効率の良い符号変換を行うことが可能で
ある。出力コードとして、n個(2 k <n<2 k+1 )し
か使用できない場合、2 k+1 −n個にkビット長のデー
タを、2n−2 k+1 個にk+1ビット長 のデータを割り
当てる最長符号表現を用いて出力することで、常にkビ
ットで切り出す場合よりも効率的な変換が行われる。
(符号変換装置4) 前記の横尾の手法を改良し、剰余系で座標移動する
ことにより、符号化したデータサイズもしくは出現する
文字符号によって動的に最短符号領域(mビットで符号
化する領域)を設定できるようにする。これにより圧縮
率はさらに改善される。 また、LZW 符号化ではサイズの小さいデータ、又は
新しい文字コードが出現する毎に文字符号を割り当てる
ことにより、サイズの小さいデータに対しても圧縮率を
高めることが可能になる。
る。 同一のバイトがL個連続したとき、LZW 符号では2
Lの平方根に相当する個数の符号が出力される。そこ
で、LZW 符号化において、日本語を対象とした圧縮と、
連続する同一バイトの圧縮を行う機能を付加すると有効
である。このために、LZW 符号化を行う前に、特殊パタ
ーン符号化装置によって、同一区コードの漢字の連続に
関して区コードを省略したり、同一バイトの連続に関し
て連続するバイトを省略する等の特殊パターン符号化を
行うことにより、日本語データやバイナリデータに対し
て圧縮率を高めることができる。 出力文字符号がASCII の印刷可能文字等に制限され
ている場合に、使用可能な出力文字符号を全て用いるこ
とにより、より効率の良い符号変換を行うことが可能で
ある。出力コードとして、n個(2 k <n<2 k+1 )し
か使用できない場合、2 k+1 −n個にkビット長のデー
タを、2n−2 k+1 個にk+1ビット長 のデータを割り
当てる最長符号表現を用いて出力することで、常にkビ
ットで切り出す場合よりも効率的な変換が行われる。
(符号変換装置4) 前記の横尾の手法を改良し、剰余系で座標移動する
ことにより、符号化したデータサイズもしくは出現する
文字符号によって動的に最短符号領域(mビットで符号
化する領域)を設定できるようにする。これにより圧縮
率はさらに改善される。 また、LZW 符号化ではサイズの小さいデータ、又は
新しい文字コードが出現する毎に文字符号を割り当てる
ことにより、サイズの小さいデータに対しても圧縮率を
高めることが可能になる。
【0011】
【実施例】以下、本発明の一実施例に於ける最適符号表
現を用いた多段データ圧縮装置を図1〜図14を用いて
説明する。
現を用いた多段データ圧縮装置を図1〜図14を用いて
説明する。
【0012】図1は符号割り当て装置のブロック構成図
である。ここで、1は符号化の対象となる原データであ
る。2は特殊パターン符号化装置である。3は装置2に
よって符号化されたファイルに対して、LZW 符号化を行
なう汎用符号化装置である。4は装置3によって符号化
圧縮されたバイナリ形式のデータを限定された任意の文
字セットのみを使用したデータに変換する符号変換装置
である。5は装置2,3,4によって圧縮,変換された
圧縮データである。
である。ここで、1は符号化の対象となる原データであ
る。2は特殊パターン符号化装置である。3は装置2に
よって符号化されたファイルに対して、LZW 符号化を行
なう汎用符号化装置である。4は装置3によって符号化
圧縮されたバイナリ形式のデータを限定された任意の文
字セットのみを使用したデータに変換する符号変換装置
である。5は装置2,3,4によって圧縮,変換された
圧縮データである。
【0013】特殊パターン符号化装置2は、汎用符号化
を行なう前に同一区コードの漢字の連続に関して区コー
ドを省略したり、同一バイトの連続に関して連続するバ
イトを省略する等の特殊パターン符号化を行なうことに
より、LZW 符号が不得意な系列に対する圧縮手段を備え
る。汎用符号化装置3は、新しく出現した文字符号に対
し、ASCII データに関しては7ビットで符号化し、最上
位ビットが1であるデータが現われたとき、モード切り
換え符号を出力し、その後に8ビットで符号化すること
により、サイズの小さいデータの圧縮率を高める。これ
を、出現符号割り当てと呼ぶ。LZW 符号化の出力する符
号をC、割り当てた最大の符号をJ=2m +L(0<L
<2m )としたとき、mビットを見ただけで2m −L個
の符号が一意的に決定できることを利用し、mビットと
m+1ビットを選択し、符号の値に応じて符号化する。
これを最短符号割り当てと呼ぶ。この際、符号の出現率
の高い範囲にmビットで符号化する領域を設定すること
により、圧縮率を高める手段を備える。これを、動的符
号割り当てと呼ぶ。符号変換装置4は、汎用符号化装置
で符号化されたデータを、最短符号割り当ての逆変換を
用いて制限された出力符号にデータを変換する。これを
最長符号割り当てと呼ぶ。出力符号としてASCII の印刷
可能文字のみを使用する場合、32〜126の95個の
印刷可能文字が存在する。この符号変換装置4は、印刷
可能文字のうち128−95=33個を6ビット長、2
×95−128=62個を7ビット長の入力符号データ
の出力符号として割り当てることにより、平均ビット長
は、(33×6+62×7)÷95=6.65より、6.65となり、
常に6ビット長の出力符号で出力するuuencodeと比較し
て、10%以上の改善を行なう手段を備える。
を行なう前に同一区コードの漢字の連続に関して区コー
ドを省略したり、同一バイトの連続に関して連続するバ
イトを省略する等の特殊パターン符号化を行なうことに
より、LZW 符号が不得意な系列に対する圧縮手段を備え
る。汎用符号化装置3は、新しく出現した文字符号に対
し、ASCII データに関しては7ビットで符号化し、最上
位ビットが1であるデータが現われたとき、モード切り
換え符号を出力し、その後に8ビットで符号化すること
により、サイズの小さいデータの圧縮率を高める。これ
を、出現符号割り当てと呼ぶ。LZW 符号化の出力する符
号をC、割り当てた最大の符号をJ=2m +L(0<L
<2m )としたとき、mビットを見ただけで2m −L個
の符号が一意的に決定できることを利用し、mビットと
m+1ビットを選択し、符号の値に応じて符号化する。
これを最短符号割り当てと呼ぶ。この際、符号の出現率
の高い範囲にmビットで符号化する領域を設定すること
により、圧縮率を高める手段を備える。これを、動的符
号割り当てと呼ぶ。符号変換装置4は、汎用符号化装置
で符号化されたデータを、最短符号割り当ての逆変換を
用いて制限された出力符号にデータを変換する。これを
最長符号割り当てと呼ぶ。出力符号としてASCII の印刷
可能文字のみを使用する場合、32〜126の95個の
印刷可能文字が存在する。この符号変換装置4は、印刷
可能文字のうち128−95=33個を6ビット長、2
×95−128=62個を7ビット長の入力符号データ
の出力符号として割り当てることにより、平均ビット長
は、(33×6+62×7)÷95=6.65より、6.65となり、
常に6ビット長の出力符号で出力するuuencodeと比較し
て、10%以上の改善を行なう手段を備える。
【0014】以上のように構成された本実施例の制御手
順について説明する。(特殊パターン符号化装置2における符号化) まず、原データから特殊パターンを摘出して特殊パター
ンの文字列の符号化を行なう。図2にこの場合の符号割
り当て例を示す。ここでは漢字以外の文字符号の長さを
8ビット、漢字の文字符号の長さを16ビットとする。
負の符号を文字型制御符号及び非文字型制御符号として
使用する。非文字型制御符号は、ASCII文字から漢字等
へのモード切り換え符号や、ファイル名の指定、ファイ
ルの終わりを表す符号等の、あまり使われない符号であ
り、符号化を行なわずに符号をそのまま出力する。文字
符号と文字型制御符号はLZW 符号化において符号化の対
象とする。符号化の時点で、句読点や括弧、中黒、長音
記号等の平仮名や片仮名の中によく現われる文字は、3
〜5区の空いている符号にも割り当て、これらの文字の
前後の文字が3〜5区の場合に、連続した文字列が同一
の区に属するようにする。また、割り当てた区点コード
を持つ外字や漢字と判断できない系列が現われた場合に
は処理を中断する。
順について説明する。(特殊パターン符号化装置2における符号化) まず、原データから特殊パターンを摘出して特殊パター
ンの文字列の符号化を行なう。図2にこの場合の符号割
り当て例を示す。ここでは漢字以外の文字符号の長さを
8ビット、漢字の文字符号の長さを16ビットとする。
負の符号を文字型制御符号及び非文字型制御符号として
使用する。非文字型制御符号は、ASCII文字から漢字等
へのモード切り換え符号や、ファイル名の指定、ファイ
ルの終わりを表す符号等の、あまり使われない符号であ
り、符号化を行なわずに符号をそのまま出力する。文字
符号と文字型制御符号はLZW 符号化において符号化の対
象とする。符号化の時点で、句読点や括弧、中黒、長音
記号等の平仮名や片仮名の中によく現われる文字は、3
〜5区の空いている符号にも割り当て、これらの文字の
前後の文字が3〜5区の場合に、連続した文字列が同一
の区に属するようにする。また、割り当てた区点コード
を持つ外字や漢字と判断できない系列が現われた場合に
は処理を中断する。
【0015】図3に特殊パターン符号化の例を示す。な
お、説明のために、この図3を含む以下の図および関連
する説明において、xxを数値としたとき16進をxxH 、
2進をxxB で表すことにする。図3において、' 「'
、' −' 、' ¬' の漢字コードについて、区コードa8H
が連続している。漢字コードの場合は、同一の区コー
ドの漢字の繰り返しに関して、点コードの最上位ビット
を0とすることで、同一区コードが連続することを示
し、同一区コードの最後の点コードは、最上位ビットを
1とすることによって示す。ここでは、区コードa8H の
漢字が連続している。区コード'a8'の漢字の点コード
は、最上位ビットを0とすると、23H 、21H となる。最
後の点コードは、最上位ビットを1とすると、a4Hとな
る。
お、説明のために、この図3を含む以下の図および関連
する説明において、xxを数値としたとき16進をxxH 、
2進をxxB で表すことにする。図3において、' 「'
、' −' 、' ¬' の漢字コードについて、区コードa8H
が連続している。漢字コードの場合は、同一の区コー
ドの漢字の繰り返しに関して、点コードの最上位ビット
を0とすることで、同一区コードが連続することを示
し、同一区コードの最後の点コードは、最上位ビットを
1とすることによって示す。ここでは、区コードa8H の
漢字が連続している。区コード'a8'の漢字の点コード
は、最上位ビットを0とすると、23H 、21H となる。最
後の点コードは、最上位ビットを1とすると、a4Hとな
る。
【0016】文字符号の繰り返し回数が2回以下の場合
には、その文字符号は変換をしない。3回以上の文字符
号の繰り返しに対し、文字の種類を増やさないために、
文字型制御符号と、それまでに出現した文字符号を用い
て繰り返し回数を符号化する。3回と4回の繰り返しに
ついては、それぞれの繰り返し回数を表す文字型制御符
号(図6参照)を使用する。5回以上の繰り返しに対し
ては、回数を出現した文字符号のみを使用して表現する
ために出現文字符号表を作る。例えば、21H の繰り返し
が検出された時点で出現文字符号表は図4のようにな
り、出現文字符号数Rは6になる。ここで第1欄はその
文字符号に対応付けた数値とする。Xが繰り返し回数
(5≦X<5+R)であるとき、多回繰り返しを表す文
字型制御符号と出現文字符号表の数値X−5の符号の組
で繰り返し回数を符号化する。この場合、数値0の符号
が繰り返し回数5回に対応する。以下、同様に繰り返し
回数を対応付ける。X=R+5であるとき、多回繰り返
し制御符号3個で繰り返し回数を表す。X>R+5であ
るとき、Ci を出現文字符号表の符号として、「多回繰
り返し」「多回繰り返し」C1 C2 …Cn 「多回繰り返
し」で表す。
には、その文字符号は変換をしない。3回以上の文字符
号の繰り返しに対し、文字の種類を増やさないために、
文字型制御符号と、それまでに出現した文字符号を用い
て繰り返し回数を符号化する。3回と4回の繰り返しに
ついては、それぞれの繰り返し回数を表す文字型制御符
号(図6参照)を使用する。5回以上の繰り返しに対し
ては、回数を出現した文字符号のみを使用して表現する
ために出現文字符号表を作る。例えば、21H の繰り返し
が検出された時点で出現文字符号表は図4のようにな
り、出現文字符号数Rは6になる。ここで第1欄はその
文字符号に対応付けた数値とする。Xが繰り返し回数
(5≦X<5+R)であるとき、多回繰り返しを表す文
字型制御符号と出現文字符号表の数値X−5の符号の組
で繰り返し回数を符号化する。この場合、数値0の符号
が繰り返し回数5回に対応する。以下、同様に繰り返し
回数を対応付ける。X=R+5であるとき、多回繰り返
し制御符号3個で繰り返し回数を表す。X>R+5であ
るとき、Ci を出現文字符号表の符号として、「多回繰
り返し」「多回繰り返し」C1 C2 …Cn 「多回繰り返
し」で表す。
【0017】文字符号から出現文字の数値を得る関数を
loc(C i )とすると、C 1 …C n を用いてX−(R
+5)を表す。C 1 …C n によって表すことのできる数
値は、数式(3)の通りである。数式(3)において
loc(C i )とすると、C 1 …C n を用いてX−(R
+5)を表す。C 1 …C n によって表すことのできる数
値は、数式(3)の通りである。数式(3)において
【外1】 符号化にi桁必要となる数値のオフセット(プラスする
数)を表す。これは図5のように2桁の2値表現、即
ち、n=2,R=2の場合、0桁で表されるのは数値0
のオフセット0、1桁で表されるのは数値0、1のオフ
セット1、すなわち、1,2となり、2桁で表されるの
は00B(0),01B(1),10B(2),11B
(3)のオフセット3、すなわち、3,4,5,6とな
ることを意味する。
数)を表す。これは図5のように2桁の2値表現、即
ち、n=2,R=2の場合、0桁で表されるのは数値0
のオフセット0、1桁で表されるのは数値0、1のオフ
セット1、すなわち、1,2となり、2桁で表されるの
は00B(0),01B(1),10B(2),11B
(3)のオフセット3、すなわち、3,4,5,6とな
ることを意味する。
【0018】
【数3】
【0019】非文字型制御符号としては、非漢字デー
タ、バイナリモード、EOD(End of Data)、0000B 用非文
字型制御符号、0001用非文字型制御符号、…、1111B 用
非文字型制御符号をここでは用意する。図6に制御符号
を示す。
タ、バイナリモード、EOD(End of Data)、0000B 用非文
字型制御符号、0001用非文字型制御符号、…、1111B 用
非文字型制御符号をここでは用意する。図6に制御符号
を示す。
【0020】(汎用符号化装置3における符号化) 次に、LZW 符号化を用いた汎用符号化を行なう。特殊パ
ターン符号化装置2で符号化されたデータを汎用符号化
装置3で符号化して出力するときは、ASCII データに関
しては7ビットで符号化し、最上位ビットが"1" である
データが現れたとき、モード切り換え符号を出力し、そ
の後に8ビットで符号化する。さらに文字コード下位E
(=0〜7)ビットを非文字型制御符号とし、残りの7
−Eまたは8−Eビットを制御符号の後続情報として符
号化し、各文字コードに符号を付与する。E=4で ' '
を送る場合、図7に示すように、' ' を表す符号は0010
0000B で、下位4ビット0000B を対応する非文字型制御
符号とし、後続情報をASCII モードであれば010B、8ビ
ットモードであれば0010B を文字符号としてLZW 符号化
する。
ターン符号化装置2で符号化されたデータを汎用符号化
装置3で符号化して出力するときは、ASCII データに関
しては7ビットで符号化し、最上位ビットが"1" である
データが現れたとき、モード切り換え符号を出力し、そ
の後に8ビットで符号化する。さらに文字コード下位E
(=0〜7)ビットを非文字型制御符号とし、残りの7
−Eまたは8−Eビットを制御符号の後続情報として符
号化し、各文字コードに符号を付与する。E=4で ' '
を送る場合、図7に示すように、' ' を表す符号は0010
0000B で、下位4ビット0000B を対応する非文字型制御
符号とし、後続情報をASCII モードであれば010B、8ビ
ットモードであれば0010B を文字符号としてLZW 符号化
する。
【0021】LZW 符号化において、制御符号のLZW 符号
を予め定める。制御符号のLZW 符号化は図6に示した通
りである。図3の出力符号に関する汎用符号化を図8に
示す。
を予め定める。制御符号のLZW 符号化は図6に示した通
りである。図3の出力符号に関する汎用符号化を図8に
示す。
【0022】LZW 符号では、KωKωKとして知られる
特別な系列のために、復号側はJ+1が入力の最大符号
となる。従って、この割り当てをLZW 符号に適用する場
合、上限をJ+1にする必要がある。但し、初期状態の
直後は特別な系列にならないので、上限はJでよい。こ
こで、剰余系で座標移動することにより、mビットで符
号化する領域を任意に設定できる。最適な領域は、デー
タの種別と符号化したサイズによって異なるため、デー
タの種別と符号化したサイズによってmビットで符号化
する領域を設定する。具体的にどの領域が最適であるか
は、実際に符号化した結果により求める。2 m をHとす
ると、0<L<H、J=H+Lが成り立つ。d=L+1
だけ座標移動したい場合のアルゴリズムをC言語を用い
て次の(手順1)に示す。
特別な系列のために、復号側はJ+1が入力の最大符号
となる。従って、この割り当てをLZW 符号に適用する場
合、上限をJ+1にする必要がある。但し、初期状態の
直後は特別な系列にならないので、上限はJでよい。こ
こで、剰余系で座標移動することにより、mビットで符
号化する領域を任意に設定できる。最適な領域は、デー
タの種別と符号化したサイズによって異なるため、デー
タの種別と符号化したサイズによってmビットで符号化
する領域を設定する。具体的にどの領域が最適であるか
は、実際に符号化した結果により求める。2 m をHとす
ると、0<L<H、J=H+Lが成り立つ。d=L+1
だけ座標移動したい場合のアルゴリズムをC言語を用い
て次の(手順1)に示す。
【0023】(手順1)H:2 m C:出力する符号(0≦C<2 m+1 ) d:座標移動 d=L+1 J:割り当てた最大の符号 J=H+L(0<L<H) C=C+d; if(C>J) C=C−(J+1); 復号の場合は、d=J−(L+1)を初めに実行する
【0024】図8の出力符号を(手順1)によって座標
移動し、(手順2)のアルゴリズムによって出力した結
果を図9に示す。
移動し、(手順2)のアルゴリズムによって出力した結
果を図9に示す。
【0025】(手順2) H:2m value をsizeビットで出力する関数を bit Put (value , size)とする if((L<C)&&(C<H)) bit Put (C,m) else bit Put (C,m+1);
【0026】復号の場合は、(手順3)のアルゴリズム
によって符号を切り出す。
によって符号を切り出す。
【0027】(手順3) sizeビットを切り出す関数を bit Get (size)とする C= bit Get (m); if(C≦L) C=( bit Get (1)≪m)|C;
【0028】(符号変換装置4における符号化) 符号変換装置4は、汎用符号化装置3で出力されたバイ
ナリ形式のデータを変換テーブルを使用して制限された
文字符号セットにして出力する。
ナリ形式のデータを変換テーブルを使用して制限された
文字符号セットにして出力する。
【0029】符号変換装置4に於ける符号化、復号の結
果を図10に示す。汎用符号化装置3から入力された符
号と使用ビット長を図11の変換テーブルから検索す
る。このテーブルでは、使用ビット長6の場合は常に入
力符号の下位6ビット、使用ビット長7の場合は常に入
力符号の下位7ビットで出力符号が定まり、且つ使用ビ
ット長7に対応する入力符号の下位6ビットが使用ビッ
ト長6に対応する入力符号の下位6ビットとは異なり、
且つ出力符号を総て使用するように作られている。例え
ば入力符号xy101101B (xとyは0または1)の出力符
号は’M’、使用ビット長は下位6ビットである。即
ち、下位6ビットが101101B である出力符号は’M’の
みであるため、入力符号の下位6ビットを右シフトで捨
て、残りxyが8ビット以上であれば、繰り返し検索を行
なう。次に入力符号Cを受け取ったときには、残りのビ
ット上位に挿入し(Cxy)、合計のビット長が8ビット
以上であれば検索を行なう。復号の場合は、入力された
符号を図11の変換テーブルから検索し、その符号値と
符号ビット長を求める。入力文字符号’M’の符号値は
4dH 、符号ビット長は6ビットであるため、6ビットで
切り出す。ここでは、8ビットの入力コードを7ビット
もしくは6ビットで符号化する。例えば入力コード’1
4’に対し、7ビットで符号化した結果は’a’であ
る。残りの1ビットに次の入力コードを付け加えて、同
様に符号化を続ける。復号の場合は、入力符号’a’は
7ビットの符号値’14’になる。
果を図10に示す。汎用符号化装置3から入力された符
号と使用ビット長を図11の変換テーブルから検索す
る。このテーブルでは、使用ビット長6の場合は常に入
力符号の下位6ビット、使用ビット長7の場合は常に入
力符号の下位7ビットで出力符号が定まり、且つ使用ビ
ット長7に対応する入力符号の下位6ビットが使用ビッ
ト長6に対応する入力符号の下位6ビットとは異なり、
且つ出力符号を総て使用するように作られている。例え
ば入力符号xy101101B (xとyは0または1)の出力符
号は’M’、使用ビット長は下位6ビットである。即
ち、下位6ビットが101101B である出力符号は’M’の
みであるため、入力符号の下位6ビットを右シフトで捨
て、残りxyが8ビット以上であれば、繰り返し検索を行
なう。次に入力符号Cを受け取ったときには、残りのビ
ット上位に挿入し(Cxy)、合計のビット長が8ビット
以上であれば検索を行なう。復号の場合は、入力された
符号を図11の変換テーブルから検索し、その符号値と
符号ビット長を求める。入力文字符号’M’の符号値は
4dH 、符号ビット長は6ビットであるため、6ビットで
切り出す。ここでは、8ビットの入力コードを7ビット
もしくは6ビットで符号化する。例えば入力コード’1
4’に対し、7ビットで符号化した結果は’a’であ
る。残りの1ビットに次の入力コードを付け加えて、同
様に符号化を続ける。復号の場合は、入力符号’a’は
7ビットの符号値’14’になる。
【0030】
【発明の効果】compressに対する本発明による改善率の
例を図12,図13,図14に示す。ここでは出力に全
ての文字コードセットを使用して、compressと比較評価
を行なった。英文テキストデータとしてSparc Station
2 上のSunOS Release 4.1.2 の/usr/man/man1/* 、和文
テキストデータとして/usr/man/japanese/man1/*、バイ
ナリデータとして/bin/*を採用し、compressにより圧縮
ができたファイルに対する改善率を示す。(イ)は短い
符号を割り当てる範囲が0≦C<2m −L、(ロ)はL
≦C<2m 、(ハ)は2L≦C≦Jのときの値である。
テキストデータではEを4、バイナリデータではEを6
にしているが、通常E=4〜6で最適な圧縮率が得ら
れ、入力に現われる文字種が多いほど大きい値が良い。
ここで、符号表の飽和時には、最近使用された符号を最
大の符号の半分だけ残す方式を採用した。
例を図12,図13,図14に示す。ここでは出力に全
ての文字コードセットを使用して、compressと比較評価
を行なった。英文テキストデータとしてSparc Station
2 上のSunOS Release 4.1.2 の/usr/man/man1/* 、和文
テキストデータとして/usr/man/japanese/man1/*、バイ
ナリデータとして/bin/*を採用し、compressにより圧縮
ができたファイルに対する改善率を示す。(イ)は短い
符号を割り当てる範囲が0≦C<2m −L、(ロ)はL
≦C<2m 、(ハ)は2L≦C≦Jのときの値である。
テキストデータではEを4、バイナリデータではEを6
にしているが、通常E=4〜6で最適な圧縮率が得ら
れ、入力に現われる文字種が多いほど大きい値が良い。
ここで、符号表の飽和時には、最近使用された符号を最
大の符号の半分だけ残す方式を採用した。
【0031】動的符号割り当ての圧縮効果は、compress
の出力ファイルの大きさからLZW の符号数を計算し、式
(4)を厳密に計算することによって求めた結果を対数
圧縮効果とし、(イ)と(ロ)と(ハ)の平均から対数
圧縮効果を引いたものをその他の効果として示す。図中
の−は、該当する値がないことを表し、*は符号表飽和
時の処理の違いのために比較ができないことを表す。
の出力ファイルの大きさからLZW の符号数を計算し、式
(4)を厳密に計算することによって求めた結果を対数
圧縮効果とし、(イ)と(ロ)と(ハ)の平均から対数
圧縮効果を引いたものをその他の効果として示す。図中
の−は、該当する値がないことを表し、*は符号表飽和
時の処理の違いのために比較ができないことを表す。
【0032】
【数4】
【0033】符号の出現確率が一様でないため、テキス
トデータでは30Kバイト以下のサイズのとき(イ)の
範囲が、それ以上のサイズでは(ハ)の範囲が高い改善
率を上げている。バイナリデータでは1Kバイト以下の
サイズのとき(ハ)の範囲が、それ以上のサイズでは
(イ)の範囲が高い改善率を上げている。
トデータでは30Kバイト以下のサイズのとき(イ)の
範囲が、それ以上のサイズでは(ハ)の範囲が高い改善
率を上げている。バイナリデータでは1Kバイト以下の
サイズのとき(ハ)の範囲が、それ以上のサイズでは
(イ)の範囲が高い改善率を上げている。
【0034】2バイト符号の多い和文テキストには、多
種類の文字が出現するため、大きなファイルでは出現割
り当て効果は殆どないため、和文テキストに於けるその
他の効果は、連続する同一区コードの漢字の圧縮による
ものであり、約4〜7%圧縮率が強化されていることが
分かる。本和文テキストには多くのroffコマンドがASCI
I 文字で挿入されているため、純然たる和文テキストの
場合には更に圧縮率が向上するものと思われる。長い文
字列の連続は殆どない英文テキストに於けるその他の効
果は出現割り当てによるものであり、0.2 〜35%圧縮率
を強化することができる。殆どの文字が出現するバイナ
リデータでは、出現符号割り当て方式を用いると圧縮率
が悪化する。ファイルサイズが、1Kバイト以下のバイ
ナリデータは、ほとんどASCII で書かれたシェルスクリ
プトである。1Kバイト以上のバイナリデータにおける
その他の効果は連続する同一バイトの圧縮によるもので
あり、ファイル数の多い範囲で0.2 〜15%圧縮率を強化
することができる。
種類の文字が出現するため、大きなファイルでは出現割
り当て効果は殆どないため、和文テキストに於けるその
他の効果は、連続する同一区コードの漢字の圧縮による
ものであり、約4〜7%圧縮率が強化されていることが
分かる。本和文テキストには多くのroffコマンドがASCI
I 文字で挿入されているため、純然たる和文テキストの
場合には更に圧縮率が向上するものと思われる。長い文
字列の連続は殆どない英文テキストに於けるその他の効
果は出現割り当てによるものであり、0.2 〜35%圧縮率
を強化することができる。殆どの文字が出現するバイナ
リデータでは、出現符号割り当て方式を用いると圧縮率
が悪化する。ファイルサイズが、1Kバイト以下のバイ
ナリデータは、ほとんどASCII で書かれたシェルスクリ
プトである。1Kバイト以上のバイナリデータにおける
その他の効果は連続する同一バイトの圧縮によるもので
あり、ファイル数の多い範囲で0.2 〜15%圧縮率を強化
することができる。
【0035】出力符号をASCII の印刷可能文字に制限す
る場合には、uuencodeより10%以上効率の良い符号割り
当てを行なうことができるため、本装置全体の圧縮効率
をcompressとuuencodeを組み合わせた圧縮率と比較する
と、15〜50%程度圧縮率が改善される。
る場合には、uuencodeより10%以上効率の良い符号割り
当てを行なうことができるため、本装置全体の圧縮効率
をcompressとuuencodeを組み合わせた圧縮率と比較する
と、15〜50%程度圧縮率が改善される。
【0036】以上のように、本発明によれば、日本語を
対象とする任意の出力文字符号に対して従来の符号化圧
縮よりも圧縮率を高めることができ、飽和時の処理以外
は、処理が単純であるため、殆ど実行速度を低下させず
に実現可能である。よって、日本語データの広い処理分
野に適用して効果大である。
対象とする任意の出力文字符号に対して従来の符号化圧
縮よりも圧縮率を高めることができ、飽和時の処理以外
は、処理が単純であるため、殆ど実行速度を低下させず
に実現可能である。よって、日本語データの広い処理分
野に適用して効果大である。
【図1】本発明の実施例を示すブロック構成図である。
【図2】本発明に用いられる制御コードの割り当てを示
す図である。
す図である。
【図3】本発明における特殊パターン符号化の例を示す
図である。
図である。
【図4】本発明における出現文字符号表を示す図であ
る。
る。
【図5】本発明における2桁の2値表現を示す図であ
る。
る。
【図6】本発明における制御符号のLZW 符号を示す図で
ある。
ある。
【図7】本発明における符号割り当ての例を示す図であ
る。
る。
【図8】本発明における汎用LZW 符号化の例を示す図で
ある。
ある。
【図9】本発明における座標移動の例を示す図である。
【図10】本発明における符号変換装置における符号化
の例を示す図である。
の例を示す図である。
【図11】本発明における符号変換装置における変換テ
ーブルの例を示す図である。
ーブルの例を示す図である。
【図12】本発明によるcompressに対する改善率を示す
図である。
図である。
【図13】本発明によるcompressに対する改善率を示す
図である。
図である。
【図14】本発明によるcompressに対する改善率を示す
図である。
図である。
1 原データ 2 特殊パターン符号割り当て装置 3 汎用符号割り当て装置 4 符号変換装置 5 圧縮データ
Claims (3)
- 【請求項1】 データの圧縮のために、漢字データの同
一区コードの連続や、同一のバイトの連続や、数値表現
の如き特殊パターンを符号化して情報源依存の圧縮をす
る特殊パターン符号化装置と、 該情報源依存の圧縮を行なった後出力を情報源によらな
いLZW 符号等のユニバーサル符号のデータに最短符号表
現を用いて符号化する汎用符号化装置と、 出力符号が限定されている場合において、出力コードと
してn個(2 k <n<2 k+1 )しか使用できないとき、
2 k+1 −n個にkビット長のデータを割り当て2n−2
k+1 個にk+1ビット長のデータを割り当てる最長符号
表現を用いて該出力符号の限定に適合する圧縮データと
して出力する符号変換装置とを備えた最適符号表現を用
いた多段データ圧縮装置。 - 【請求項2】 前記特殊パターン符号化装置は、漢字デ
ータの同一区コードの連続のうち2番目以降の区コード
を省略し、点コードのみにすることにより圧縮する機能
を有することを特徴とする請求項1に記載の最適符号表
現を用いた多段データ圧縮装置。 - 【請求項3】 前記汎用符号化装置は、符号化したデー
タサイズもしくは出現する文字符号によって動的に最短
符号領域を変化させるLZW 符号を用いることを特徴とす
る請求項1に記載の最適符号表現を用いた多段データ圧
縮装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7862193A JP2732188B2 (ja) | 1993-03-15 | 1993-03-15 | 最適符号表現を用いた多段データ圧縮装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7862193A JP2732188B2 (ja) | 1993-03-15 | 1993-03-15 | 最適符号表現を用いた多段データ圧縮装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06266531A JPH06266531A (ja) | 1994-09-22 |
JP2732188B2 true JP2732188B2 (ja) | 1998-03-25 |
Family
ID=13666965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7862193A Expired - Fee Related JP2732188B2 (ja) | 1993-03-15 | 1993-03-15 | 最適符号表現を用いた多段データ圧縮装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2732188B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3421700B2 (ja) | 1998-01-22 | 2003-06-30 | 富士通株式会社 | データ圧縮装置及び復元装置並びにその方法 |
US20020118885A1 (en) | 2001-02-27 | 2002-08-29 | Bernard Smeets | Font compression and retrieval |
-
1993
- 1993-03-15 JP JP7862193A patent/JP2732188B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06266531A (ja) | 1994-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5374916A (en) | Automatic electronic data type identification process | |
US5001478A (en) | Method of encoding compressed data | |
US5467087A (en) | High speed lossless data compression system | |
US5325091A (en) | Text-compression technique using frequency-ordered array of word-number mappers | |
US5229768A (en) | Adaptive data compression system | |
JP3258552B2 (ja) | データ圧縮装置及びデータ復元装置 | |
US5010345A (en) | Data compression method | |
JP3397431B2 (ja) | データ圧縮方法および装置ならびにデータ復元方法および装置 | |
JP3240495B2 (ja) | データの可逆符号化方法および装置、並びに、伸長装置 | |
EP0582907A2 (en) | Data compression apparatus and method using matching string searching and Huffman encoding | |
EP0435802B1 (en) | Method of decompressing compressed data | |
US5010344A (en) | Method of decoding compressed data | |
JP2732188B2 (ja) | 最適符号表現を用いた多段データ圧縮装置 | |
JP3007245B2 (ja) | 日本語用データ圧縮装置 | |
KR0144633B1 (ko) | Lzw를 이용한 완성형 한글의 데이타 압축방법 | |
Ong et al. | A data compression scheme for Chinese text files using Huffman coding and a two-level dictionary | |
JPH0629861A (ja) | データ圧縮方法 | |
Bar-Ness et al. | String dictionary structure for Markov arithmetic encoding | |
Ong et al. | Compression of Chinese text files using a multiple four-bit coding scheme | |
JPH08149016A (ja) | 文字列の符号化方法 | |
Istle et al. | Online compression of ASCII files | |
JP2536432B2 (ja) | デ―タ圧縮装置 | |
JP3603099B2 (ja) | データの可逆符号化方法および装置 | |
Ong et al. | Compressing Chinese text files using an adaptive Huffman coding scheme and a static dictionary of character pairs | |
JPH06178124A (ja) | 画像データ圧縮伸長装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |