JPH0644038A - データ圧縮方法、データ復元方法、データ圧縮/復元方法 - Google Patents

データ圧縮方法、データ復元方法、データ圧縮/復元方法

Info

Publication number
JPH0644038A
JPH0644038A JP19535192A JP19535192A JPH0644038A JP H0644038 A JPH0644038 A JP H0644038A JP 19535192 A JP19535192 A JP 19535192A JP 19535192 A JP19535192 A JP 19535192A JP H0644038 A JPH0644038 A JP H0644038A
Authority
JP
Japan
Prior art keywords
data
bit
predetermined
probability
bits
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.)
Withdrawn
Application number
JP19535192A
Other languages
English (en)
Inventor
Yasuhiko Nakano
泰彦 中野
Yoshiyuki Okada
佳之 岡田
Shigeru Yoshida
茂 吉田
Hirotaka Chiba
広隆 千葉
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 JP19535192A priority Critical patent/JPH0644038A/ja
Publication of JPH0644038A publication Critical patent/JPH0644038A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 圧縮対象データの持つ冗長度を取り除き、効
率良く圧縮できるようにする。 【構成】 前処理部10の確率計算部12により、前回
までに入力された単位データに基づき、単位データ内で
の所定の1又は複数の各ビット別に、該ビットの論理値
が他の所定の1又は複数のビットの論理値の組み合わせ
を条件として生起する確率を求めておき、ビット置換部
14により、今回入力された単位データの所定の1又は
複数の各ビットを、該ビットの条件付論理生起確率が大
のとき「0」、小のとき「1」となるように置換したの
ち符号化部16へ出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ圧縮方法、データ
復元方法、データ圧縮/復元方法に係わり、特にユニバ
ーサル符号などデータを所定ビット長単位で扱う場合で
も、単位データ内での冗長性の取り込みを可能としたデ
ータ圧縮方法、データ復元方法、データ圧縮/復元方法
に関する。
【0002】近年、OA(オフィスオートメーション)
の発展に伴い、ファクシミリ通信、光ディスクファイル
システムなどで、文字コード情報や画像情報が大量に扱
われるようになってきており、伝送や蓄積を効率的に行
うためにデータの圧縮が必須となっている。文字コード
の効率的な圧縮方式には、Ziv-Lempel符号に代表される
ユニバーサル符号が有り、画像情報の効率的な圧縮方式
には、MH方式(Modified HuffmanCoding)、MMR(M
odified Modified READ)方式、予測符号化方式が有
る。ユニバーサル符号は、情報源の統計的な性質を予め
仮定しないため、種々のタイプ(文字コード、オブジェ
クトコードなど)のデータに適用可能であるが、文字コ
ード情報と画像情報は統計的性質が大きく異なるため、
ユニバーサル符号化方式をそのまま画像情報に適用して
も1/2程度の圧縮率しか得られず、MH方式、MMR
方式等の画像情報用の圧縮方式に較べて、非常に低いも
のとなっている。このため、従来は、文字コード情報と
画像情報を異なる方式で圧縮していたが、1つのシステ
ムで両者を扱う場合、ハード上の負担が大きくなってい
た。本発明はこのような状況に鑑み、圧縮対象データの
持つ冗長度を取り除き、効率良く圧縮できるようにする
ものである。
【0003】
【従来の技術】近年、OAで扱う文書や画像の情報量が
急速に増加してきており、ファクシミリ通信、光ディス
クファイルシステムなどで、伝送や蓄積を効率的に行う
ため、データ中の冗長な部分を除くデータ圧縮が不可欠
となっている。文字情報を対象とした効率の良い圧縮方
式として、ジブ−レンペル(Ziv-Lempel)符号に代表さ
れるユニバーサル符号が有る(宗像「Ziv-Lempelのデー
タ圧縮法」、情報処理、Vol.26,No.1,1985年参照)。こ
のZiv-Lempel符号では、ユニバーサル型と、増分分
解型(Incremental parsing)の2つのアルゴリズムが提
案されており、ユニバーサル型アルゴリズムを用いた実
用的な方法として、LZSS符号(T.C. Bell,"Better
OMP/L Text Compression",IEEE Trans. on Commun., Vo
l. COM-34, No.12, Dec.1986)があり、又、増分分解型
アルゴリズムを用いた実用的な方法として、LZW(Le
mpel-Ziv-Welch) 符号がある(T.A. Welch,"A Technique
for High-Performance Data Compression", Computer,
June 1984) 。
【0004】LZSS符号 LZSS符号化においては、既に出現して符号化済の入
力データを記憶部(Pバッファ)に記憶すると共に、符
号化済データの任意の位置から始まる部分列データより
入力データと最大長に一致する部分データ列を探し、該
一致部分データ列の先頭文字の記憶部(Pバッファ)に
おけるアドレスと一致長とを示す情報により、入力デー
タ列を符号化する。このLZSS符号化においては、演
算量は多いが、高圧縮率が得られる。
【0005】図11はかかるLZSS符号化の説明図で
あり、1はQバッファ、2はPバッファである。入力文
字コードが1バイトで表現されるものとして、Qバッフ
ァ1は例えば4ビットのインデックス情報(アドレス)
を持ち、これから符号化する16(=24 )個の文字列
を格納するもの、Pバッファ2は例えば12ビットのイ
ンデックス情報(アドレス)を持ち、最新に符号化され
た4096(=212)個の文字列を格納するものであ
る。
【0006】図示しないユニバーサル符号化部は、Qバ
ッファ1の先頭からの文字列とPバッファ2の任意の位
置から始まる文字列とを照合して最大長一致部分文字列
3を求め、「該部分文字列のPバッファにおける一致開
始位置p1 」と「部分文字列の一致長q1 」とを用いて
Qバッファの部分文字列3´を符号化して記憶する。し
かる後、ユニバーサル符号化部はQバッファ1内の符号
化した文字列3´をPバッファ2に移すと共に該文字列
数分の最も古い符号化済み文字列をPバッファ2から捨
て、かつ符号化した文字列3´の文字数分の新たな文字
列をQバッファ1内に入力し、以降、前述の符号化処理
を継続する。尚、最大一致長が1の場合には、符号化せ
ず、Qバッファ1の先頭文字データ(生データという)
をそのまま記憶する。これは、符号化データとして2バ
イト必要であるが、生データは1バイトで済むからであ
る。
【0007】そして、8個の符号化データ又は生データ
が記憶されれば、図11(b)に示すように、符号化デ
ータと生データの識別を表示するための8個のフラグビ
ットより成る識別データを先頭に附加し(”0”は符号
データ、”1”は生データ)、この一組のデータを順次
出力する。
【0008】LZW符号 一方、LZW符号化においては、書換可能な辞書を設
け、入力文字列を相異なる文字列に分け、この文字列を
出現した順に番号を付けて辞書に登録すると共に、現在
入力している文字列を辞書に登録してある最長一致文字
列の辞書番号だけで表して符号化する。このLZW符号
化によれば、圧縮率はLZSS符号化より劣るが、シン
プルで、計算も容易で、高速処理ができることから記憶
装置のファイル圧縮、データ伝送などで使われるように
なっている。
【0009】図12はLZW符号化の説明図、図13は
辞書構成の説明図、図14はLZW符号化処理の流れ図
である。なお、説明を簡単にするために、a,b,c3
文字からなる文字列を対象にするものとする。予め、全
文字につき一文字からなる文字列(a,b,c)に登録
番号を付して辞書に初期登録すると共に、辞書アドレス
Nを文字種数M+1とする(図12のステップ10
1)。
【0010】かかる状態で、最初の文字Kを入力し、該
文字の登録番号を参照番号ωとし、これを語頭文字列
(prefix string)とする(ステップ102)。次いで、
入力データの次の文字Kを読み込み(ステップ10
3)、ステップ102で求めた語頭文字列ωにステップ
103で読み込んだ文字Kを加えた文字列(ωK)が現
在の辞書にあるか否かを検索する(ステップ104)。
【0011】文字列(ωK)が辞書に存在すれば、文字
列(ωK)をωに置き換え(ステップ105)、しかる
後、入力データが終了したか判断し(ステップ10
6)、データが終了していなければステップ103に戻
り以降の処理を繰り返し、文字列(ωK)が辞書から探
せなくなるまで最大一致長文字列の検索を続ける。一
方、ステップ106において、入力データが終了してい
れば、参照番号ωを符号語code(ω)として出力して
(ステップ107)、符号化処理を終了する。
【0012】最長一致文字列の検索が続行して、ステッ
プ104において、文字列(ωK)が辞書に存在しなく
なれば、参照番号ωを符号語code(ω) として出力し、
又、文字列(ωK)に新たな登録番号Nを附加して辞書
に登録し、更に、ステップ103で読み込んだ文字Kの
登録番号を参照番号ωに書き換えると共に、辞書アドレ
スNをインクリメントする(ステップ108)。次い
で、ステップ106により入力データが終了したか判断
し、判断結果に応じて以降の処理を繰り返す。
【0013】図12及び図13を参照してLZW符号化
を具体的に説明すると、以下のようになる。即ち、図1
2の入力データを左から右に向けて1文字ずつ読み込
む。最初の文字aを読み込んだ時、辞書にはaの他に一
致する文字列はないから、aの登録番号「1」(参照番
号ω=1)を符号語(code(ω))として出力する。そ
して、拡張した文字列abに登録番号4を付けて辞書に
登録する。実際の登録は文字列「1b」の形となる。続
いて、2番目の文字bが入力文字列の先頭になる。辞書
にはbの他に一致する文字列がないので、bの登録番号
(参照番号)2を符号語として出力し、拡張した文字列
baを実際には2aの形で登録番号5を付けて辞書に登
録する。
【0014】以上により、3番目の文字aが入力文字列
の先頭になる。辞書には先頭文字aが存在するから、該
文字の登録番号1に次の文字bを付した文字列「1b」
が存在するか調べる。文字列「1b」が存在するから、
該文字列の登録番号4に次の文字cを付した文字列「4
c」が存在するか調べる。文字列「4c」は存在しない
から、最長一致文字列「1b」の登録番号「4」を符号
語として出力し、拡張した文字列「4c」に登録番号6
を付して辞書登録し、以降同様に符号化と辞書登録を繰
り返して全入力文字のLZW符号化処理を実行する。
【0015】因みに、図15はLZW復号化処理の流れ
図であり、復号化処理では、符号化の逆の操作が行われ
る。即ち、復号化に際しては、符号化と同様に、全文字
につき一文字からなる文字列(a,b,c)に登録番号
を付して辞書に初期登録すると共に、辞書アドレスNを
文字種数M+1とする(図15のステップ201)。つ
いで、最初の符号CODEを読み込み、該符号CODEをOLDcod
e とする。又、最初の符号は既に辞書に登録された一文
字の登録番号のいずれかに該当することから、入力符号
CODE(=登録番号)が示す文字Kを出力する。又、出力
した文字Kは後の例外処理のためにcharとして設定する
(以上、ステップ202)。
【0016】しかる後、次の符号CODEを読み込んでNEWc
ode としてセットすると共に(ステップ203)、符号
CODE(=登録番号)が辞書に定義(登録)されているか
否かをチェックする(ステップ204)。通常、入力し
た符号CODE(=登録番号)は前回までの処理で辞書に登
録されているから、ステップ204において「NO」と
なるから、次に、符号CODE(=登録番号)が指示する辞
書の登録文字列が(ωK)か判断する。即ち、符号CODE
が指示する辞書の登録文字列が( ωK)のように、参照
番号ωと文字Kの結合文字列であるか判断する(ステッ
プ205)。
【0017】参照番号ωと文字Kの結合文字列であれ
ば、文字Kを一時的にスタックし、参照番号ωの符号語
code(ω)(実際にはcode(ω)=ω)を新たなCODEと
し、かつ、文字数Cを1だけカウントアップし(ステッ
プ206)、ステップ205に戻る。以降、ステップ2
05、206の処理をCODEが示す登録文字列が一文字に
至まで再帰的に繰り返す。
【0018】ステップ205において、CODEが示す文字
列が一文字の場合には、即ち、符号CODEが指示する辞書
の登録文字列が(K)の場合には、Kを出力し、しかる
後、スタックしたC個の文字列をLIFO(Last In Fa
st Out)形式でポップアップして出力する。又、前回の
復号化において使用した符号OLDcode に、今回復号した
文字列の先頭文字Kを附加した文字列(OLDcode ,K)
を登録番号Nを付して辞書に登録し、Nをインクリメン
トする(N+1→N)。更に、復号文字列の先頭文字K
をcharとし、かつ、NEWcode をOLDcode とする(以上、
ステップ207)。
【0019】以降、符号入力が終了したか判断し(ステ
ップ208)、終了していなければステップ203に戻
り次の符号を読み込んで復号処理を繰り返す。ところ
で、符号化処理においては、ある文字列の符号化と、該
文字列に次の先頭文字を附加した文字列の辞書登録とを
同時に行うため、次の符号化処理において直前に符号化
した文字列の符号語を使用できる。しかし、復号化処理
においては、直前に復号した文字列に、今回復号した文
字列の先頭文字列を附加した文字列を辞書登録するた
め、辞書登録が符号化処理に較べて1回遅れる。このた
め、符号化処理において、直前に符号化した文字列の符
号語を使用すると、復号化処理において、該符号語が登
録(定義)されていない場合を生じる。この場合がステ
ップ204においてCODEが定義されていない状態にな
り、「YES」となる。
【0020】例えば、図16に示すように符号化に際し
て、文字列「a・・・z」に対してOLDcode を出力する
と共に、文字列「a・・・za」をNEWcode として辞書
登録し、次の文字列「a・・・za」をNEWcode で出力
し、文字列「a・・・zab」を辞書登録する。さて、
復号側で符号語NEWcode を読み込んだ時、該符号語は復
号側で辞書登録されていないので、復号ができない。し
かし、NEWcode とOLDcode を比較すると、以下の関係 NEWcode の文字列=OLDcode の文字列+OLDcode の文字
列の先頭文字(char)がある。このため、ステップ20
4で「NO」となれば、セットされているcharをスタッ
クすると共に、OLDcode をCODEとみなし、かつ、OLDcod
e にcharを附加した文字列をNEWcode とし(ステップ2
09)、以降、CODEを用いてステップ205以降の処理
を行う。
【0021】図17を参照して復号化処理を具体的に説
明すると以下のようになる。最初の入力符号は「1」で
あり、一文字a,b,cについては既に登録番号1,
2,3として辞書登録されているから(図13と同
様)、辞書の参照により符号「1」に一致する登録番号
の文字列aに置き換えて出力する。次に、符号「2」に
ついても同様にして文字bに置き換えて出力する。この
時、前回処理した符号と今回復号した最初の一文字bと
を組み合わせた「1b」に新たな登録番号4を附加して
辞書に登録する。
【0022】3番目の符号「4」は辞書の検索により、
「1b」から「ab」と置き換えて文字列「ab」を出
力する。同時に、前回処理した符号「2」と今回復号し
た1番目の文字aとを組み合わせた文字列「2a(=b
a)」に新たな登録番号を附加して辞書に登録する。以
下、同様に、復号処理を繰り返す。尚、図15のステッ
プ209の例外処理は、第6番目の入力符号「8」の復
号で生じる。符号「8」は復号時に辞書に定義されてお
らず、復号できない。この場合には、前回処理した符号
「5」に前回復号した文字列「ba」の最初の一文字b
を加えた文字列「5b」を求め、更に「2ab」、「b
ab」と置き換えられて出力される。そして、前回の符
号語「5」に今回復号した文字列の文字bを加えた文字
列「5b」に登録番号「8」を附加して辞書登録する。
【0023】このように、Ziv-Lempel符号は、現在の文
字コードの系列を、符号化済みの過去の系列に対する複
製として符号化するものであり、文字コードからなる文
書情報を1/2〜数分の1程度に圧縮することができ
る。Ziv-Lempel符号に代表されるユニバーサル符号は、
情報保存型のデータ圧縮方式であり、データ圧縮時に情
報源の統計的な性質を予め仮定しないため、「万能」の
名が示す通り、種々のタイプ(文字コード、オブジェク
トコードなど)のデータに適用することができる。
【0024】一方、画像情報を対象とした効率の良い圧
縮方式として、モディファイドハフマン符号方式(M
H方式;Modified Huffman Coding)、モディファイド
モディファイドリード方式(MMR;Modified Modifie
d READ(Relative AddressDesignate Coding))方式、
予測符号化方式が有る。MH方式 MH方式は、2値画像に対する1次元圧縮方式として国
際標準(ファクシミリ通信G3規格)となっている。こ
のMH方式は、白または黒の画素が連続する長さ(Run
Length)をハフマン符号で可変長符号化してデータ圧縮
するものであり、ハフマン符号は、符号語数を減らすた
め、64ビット以下の長さを表すターミネイティング符
号と64の倍数を表すメイクアップ符号とで構成され
る。通常の文書画像であれば、MH方式により、数分の
1に圧縮できる。
【0025】MMR方式 MMR方式は2値画像に対する2次元圧縮方式として国
際標準(ファクシミリ通信G4規格)となっている。こ
のMMR方式は、主走査方向に見ていって白から黒、又
は黒から白に変化する画素を変化画素とし、隣接する走
査線間で変化画素の表す白黒パターンの境界のずれ(変
化画素相対アドレス)が小さいという変化画素の接続関
係に着目してデータ圧縮するものである。MMR方式に
より、通常の文書画像であれば、数分の1から10数分
の1に圧縮できる。
【0026】予測符号化方式 TV会議システム、ハイビジョン放送等で実用化されて
いる。規則正しい模様の画像や平坦な画像は、1枚の画
像が有する空間的冗長度が大きく、隣接する画素間の相
関が強い。このような画像の場合、すでに符号化された
画素の値から次に符号化すべき画素の値を予測し、予測
できなかった成分だけ抽出して符号化することで、大幅
に圧縮できる。また、動きの小さい動画像においては、
相続くフレームの画像が互いに類似していて、時間的冗
長度が大きい。このような場合、前フレームとの差分を
符号化することで、圧縮可能となる。
【0027】
【発明が解決しようとする課題】ところで、MH方式、
MMR方式、予測符号化方式のいずれも画像情報用の圧
縮方式なので、文字コード情報には適用できない。シス
テムが文字コード情報と画像情報のいずれも扱うような
場合、文字コード用の圧縮方式と画像用の圧縮方式を別
個に用意するのが有利であるが、ハード的な負担が大と
なってしまう。一方、前述したユニバーサル符号は、そ
の汎用性から画像情報にも適用でき、文字コードと画像
情報のいずれもユニバーサル符号で圧縮することができ
る。但し、画像情報は文字コード情報と較べて統計的性
質が大きく異なっており、Ziv-lempel符号を適用した場
合、1/2程度の圧縮ができるだけで、MMR方式、予
測符号化方式などに較べると、圧縮率が非常に低いとい
う問題があった。これは、ユニバーサル符号はデータを
バイト単位で処理するため、バイト単位の文字コードに
適合しているものの、画像情報ではバイト単位で見たと
き、種々のパターンが均等に出現して、1バイト中のビ
ット単位の冗長性を捕らえることができないからであ
り、換言すれば、MMR方式が画像の2次元的相関を利
用してデータ圧縮するのに対し、ユニバーサル符号は時
系列で出現する文字コードを1次元的相関を利用して圧
縮するという相違が有るからである。
【0028】以上から本発明の目的は、圧縮対象データ
の持つ冗長度を取り除き、効率良く圧縮できるようにし
たデータ圧縮方法、データ復元方法、データ圧縮/復元
方法を提供することである。
【0029】
【課題を解決するための手段】図1は本発明の原理説明
図である。10は所定ビット長単位で入力される原デー
タに対し、所定の前処理を行う前処理部であり、12は
前回までに入力された単位データに基づき、単位データ
内での所定の1又は複数の各ビット別に、該ビットの論
理値が他の所定の1又は複数のビットの論理値の組み合
わせを条件として生起する確率を求める確率計算部、1
4は確率計算部の計算結果を参照して、今回の入力単位
データの所定の1又は複数の各ビットを、該ビットの条
件付論理生起確率が大のとき「0」(又は「1」)、小
のとき「1」(又は「0」)となるように置換するビッ
ト置換部である。16は前処理部から出力されたデータ
を所定ビット長単位で、ユニバーサル符号化して圧縮す
る符号化部である。
【0030】
【作用】前処理部10の確率計算部12により、前回ま
でに入力された単位データに基づき、単位データ内での
所定の1又は複数の各ビット別に、該ビットの論理値が
他の所定の1又は複数のビットの論理値の組み合わせを
条件として生起する確率を求めておき、ビット置換部1
4により、今回入力された単位データの所定の1又は複
数の各ビットを、該ビットの条件付論理生起確率が大の
とき「0」(又は「1」)、小のとき「1」(又は
「0」)となるように置換したのち符号化部12へ出力
する。符号化部12は、前処理の済んだデータを所定ビ
ット長単位でユニバーサル符号化して出力する。
【0031】これにより、入力データの内、所定のビッ
トが「0」と「1」のいずれの論理値であっても、条件
付論理生起確率が大のビットを「0」(又は「1」)に
置き換えて、所定ビット長として見たとき「0」(又は
「1」)の多いパターンに偏らせることができ、ビット
単位の冗長度を減らし、その後、所定ビット長単位でな
される符号化で高い圧縮率を実現することが可能とな
る。
【0032】圧縮符号化データを所定の方式で復号化
し、nビット長単位の復元データとする復元方法におい
て、復号化後、前回までに完全に復元された単位データ
に基づき、単位データ内での所定の1又は複数のビット
について、各ビット別に、該ビットの論理値が他の所定
の1又は複数のビットの論理値の組み合わせを条件とし
て生起する確率を求めておくとともに、今回復号化され
た単位データの所定の1又は複数の各ビットを、逐次、
該ビットの両論理値に係る条件付論理生起確率の大小
と、当該ビットの論理値との組み合わせに従い所定論理
値に逆置換する後処理を行って、完全に復元した単位デ
ータを得る。これにより、圧縮時に符号化の前段で、ビ
ット単位の冗長度を削減するように前処理されていて
も、復元側では、確実に前処理される前の原データを復
元することが可能となる。
【0033】nビット長単位で入力されるデータを、所
定の方式で圧縮し符号化するとともに、圧縮符号化デー
タを所定の方式で復号化し、nビット長単位の復元デー
タとするデータ圧縮/復元方法において、圧縮時、符号
化前に、前回までに入力された単位データに基づき、単
位データ内での所定の1又は複数のビットについて、各
ビット別に、該ビットの論理値が他の所定の1又は複数
のビットの論理値の組み合わせを条件として生起する確
率を求めておくとともに、今回入力された単位データの
所定の1又は複数の各ビットを、該ビットの条件付論理
生起確率が大か小かに従い、互いに異なる所定論理値に
置換する前処理を行うようにし、復元時、復号化後、前
回までに完全に復元された単位データに基づき、単位デ
ータ内での所定の1又は複数のビットについて、各ビッ
ト別に、該ビットの論理値が他の所定の1又は複数のビ
ットの論理値の組み合わせを条件として生起する確率を
求めておくとともに、今回復号化された単位データの所
定の1又は複数の各ビットを、逐次、該ビットの両論理
値に係る条件付論理生起確率の大小と、当該ビットの論
理値との組み合わせに従い所定論理値に逆置換する後処
理を行って、完全に復元した単位データを得る。これに
より、圧縮時は、符号化の前段で、ビット単位の冗長度
を削減するように前処理することで、高い圧縮率を実現
可能となり、又、復元側では、確実に前処理される前の
原データを完全に復元することが可能となる。
【0034】
【実施例】図2は本発明の実施例構成図であり、図1と
同一部分には同一符号を付している。10は圧縮側にお
いて符号化の前段で、1バイト単位で入力される原デー
タに対し、前処理を行う前処理部、12は前回までに入
力された全単位データに基づき、単位データ内での最上
位桁を除く各ビット(2SB〜LSB)別に、該ビット
の論理値が他の所定の1又は複数のビットの論理値の組
み合わせを条件として生起する確率を求める確率計算部
であり、具体的には、1バイト単位でデータが入力され
る毎に、単位データ内での最上位桁以外の各ビットに関
し、最上位桁から該ビットの1桁上までの論理値の組み
合わせを条件とする条件付論理生起確率を累積的に求め
る。また、確率計算部12は、単位データの最上位桁
(MSB)については、単純に論理生起確率を累積的に
求める。14は確率計算部の計算結果を参照して、今回
入力した単位データ内の最上位桁を除く各ビットを、該
ビットに係る条件付論理生起確率が大のとき「0」、小
のとき「1」となるように置換するビット置換部であ
る。なお、最上位桁については、該ビットの論理値に係
る論理生起確率が大のとき「0」、小のとき「1」とな
るように置換する。16は前処理から出力されたデータ
をバイト単位で、ユニバーサル符号化する符号化部であ
る。
【0035】確率計算部12は図3に示す2分木テーブ
ルを書き換え自在に記憶するメモリ12Aを有してお
り、1バイトデータが入力される毎に、逐次、該データ
のMSBの累積的な論理生起確率を計算するとともに、
2SB乃至LSBの累積的な条件付論理生起確率を計算
し、メモリ12Aに更新記憶する。図3において、2分
木の1段目乃至8段目は、入力1バイトデータのMSB
乃至LSBに対応している。A(1) はMSBが「1」と
なる論理生起確率、A(2) はMSBが「0」となる論理
生起確率を表している。MSBが「1」となった累積頻
度をa(1) 、「0」となった累積頻度をa(2) とする
と、 A(1) =a(1) /(a(1)+a(2) ) A(2) =a(2) /(a(1)+a(2) ) として求められる。
【0036】B(1) はMSBが「1」であったときに、
2SBが「1」となる条件付論理生起確率、B(2) はM
SBが「1」であったときに、2SBが「0」となる条
件付論理生起確率、B(3) はMSBが「0」であったと
きに、2SBが「1」となる条件付論理生起確率、B
(4) はMSBが「0」であったときに、2SBが「0」
となる条件付論理生起確率を表している。MSBが
「1」かつ2SBが「1」となった累積頻度をb(1) 、
MSBが「1」かつ2SBが「0」となった累積頻度を
b(2) 、MSBが「0」かつ2SBが「1」となった累
積頻度をb(3) 、MSBが「0」かつ2SBが「0」と
なった累積頻度をb(4) とすると、 B(1) =b(1) /a(1) B(2) =b(2) /a(1) B(3) =b(3) /a(2) B(4) =b(4) /a(2) として求められる。
【0037】C(1) はMSBが「1」、2SBが「1」
であったときに、3SBが「1」となる条件付論理生起
確率、C(2) はMSBが「1」、2SBが「1」であっ
たときに、3SBが「0」となる条件付論理生起確率、
C(3) はMSBが「1」、2SBが「0」であったとき
に、3SBが「1」となる条件付論理生起確率、C(4)
はMSBが「1」、2SBが「0」であったときに、3
SBが「0」となる条件付論理生起確率、C(5) はMS
Bが「0」、2SBが「1」であったときに、3SBが
「1」となる条件付論理生起確率、C(6) はMSBが
「0」、2SBが「1」であったときに、3SBが
「0」となる条件付論理生起確率、C(7) はMSBが
「0」、2SBが「0」であったときに、3SBが
「1」となる条件付論理生起確率、C(8) はMSBが
「0」、2SBが「0」であったときに、3SBが
「0」となる条件付論理生起確率を表している。
【0038】MSBが「1」かつ2SBが「1」かつ3
SBが「1」となった累積頻度をc(1) 、MSBが
「1」かつ2SBが「1」かつ3SBが「0」となった
累積頻度をc(2) 、MSBが「1」かつ2SBが「0」
かつ3SBが「1」となった累積頻度をc(3) 、MSB
が「1」かつ2SBが「0」かつ3SBが「0」となっ
た累積頻度をc(4) 、MSBが「0」かつ2SBが
「1」かつ3SBが「1」となった累積頻度をc(5) 、
MSBが「0」かつ2SBが「1」かつ3SBが「0」
となった累積頻度をc(6) 、MSBが「0」かつ2SB
が「0」かつ3SBが「1」となった累積頻度をc(7)
、MSBが「0」かつ2SBが「0」かつ3SBが
「0」となった累積頻度をc(8) とすると、 C(1) =c(1) /b(1) C(2) =c(2) /b(1) C(3) =c(3) /b(2) C(4) =c(4) /b(2) C(5) =c(5) /b(3) C(6) =c(6) /b(3) C(7) =c(7) /b(4) C(8) =c(8) /b(4) として求められる。
【0039】以下、同様にして、D(1) 乃至D(16)が4
SBの種々の条件付論理生起確率、E(1) 乃至E(32)が
5SBの種々の条件付論理生起確率、F(1) 乃至F(64)
が6SBの種々の条件付論理生起確率、G(1) 乃至G(1
28) が7SBの種々の条件付論理生起確率、H(1) 乃至
H(256) がLSBの種々の条件付論理生起確率を表して
おり、所定の2つの累積頻度の割り算として求められ
る。なお、確率を求める割り算の分母と分子の累積頻度
がともに0のときは、確率=零とされる。1バイトデー
タが入力される毎に、確率計算部12は2分木テーブル
の各論理生起確率と条件付論理生起確率を計算し直し、
メモリ12Aに記憶された2分木テーブルを更新する。
【0040】ビット置換部14は、1バイトデータが入
力されると、その時点で確率計算部12のメモリ12A
に記憶されている2分木テーブルを参照して、ビット置
換を行う。具体的には、最上位桁を除く各ビット別に、
該ビットの実際の論理値に係る条件付論理生起確率の方
が、該ビットの反転論理値に係る条件付論理生起確率よ
り大きいとき、当該ビットを「0」に置換し、小さいと
き「1」に置換する。当該ビットの実際の論理値に係る
条件付論理生起確率と、当該ビットの反転論理値に係る
条件付論理生起確率が等しいときは、当該ビットが
「1」である方の条件付論理生起確率が大きいとして扱
う。また、最上位桁については、該ビットの論理値に係
る論理生起確率の方が、該ビットの反転論理値に係る論
理生起確率より大きいとき、当該ビットを「0」に置換
し、小さいとき「1」に置換する。当該ビットの実際の
論理値に係る論理生起確率と、当該ビットの反転論理値
に係る論理生起確率が等しいときは、当該ビットが
「1」である方の論理生起確率が大きいとして扱う。例
えば、前回までに入力された全ての単位データ(DT1
〜DTi-1 )に基づき求めた2分木テーブルが図4
(a)の如くであり、今回の1バイト分の原入力データ
DTi が図4(b)に示す如く、「01101101」
であったならば、DTi ´=「10010000」に置
換される。
【0041】図2に戻って、20は復元側において、ユ
ニバーサル符号化データをユニバーサル復号化する復号
化部、22は復号化の後段で、復号化された1バイト単
位のデータに対し、所定の後処理を行い完全な復元デー
タに戻して出力する後処理部である。24は前回までに
完全に復元された全ての単位データに基づき、単位デー
タ内での最上位桁を除く各ビット(2SB〜LSB)別
に、該ビットの論理値が他の所定の1又は複数のビット
の論理値の組み合わせを条件として生起する確率を求め
る確率計算部であり、具体的には、1バイト単位の復元
データが入力される毎に、単位データ内での最上位桁以
外の各ビットに関し、最上位桁から該ビットの1桁上ま
での論理値を条件とする条件付論理生起確率を累積的に
求める。また、確率計算部24は復元データの最上位桁
(MSB)については、単純に論理生起確率を累積的に
求める。
【0042】26は確率計算部の計算結果を参照して、
復号化部で復号された単位データ内の各ビットを、逐
次、MSB側から、ビットの両論理値に係る論理生起確
率又は条件付論理生起確率の大小と、当該ビットの論理
値との組み合わせに従い所定論理値に逆置換し、圧縮側
の原データと同じ完全な復元データを出力するビット逆
置換部である。ビット逆置換部26から出力された完全
な復元データは、確率計算部24に入力される。
【0043】確率計算部24は図3と同じ2分木テーブ
ルを書き換え自在に記憶するメモリ24Aを有してお
り、圧縮側の確率計算部12と全く同様にして、完全に
復元された1バイトデータが入力される毎に、逐次、該
データのMSBの累積的な論理生起確率を計算するとと
もに、2SB乃至LSBの累積的な条件付論理生起確率
を計算し、メモリ24Aに更新記憶させる。
【0044】ビット逆置換部26は、復号化部20から
復号化された1バイトデータが入力されると、その時点
で確率計算部24のメモリ24Aに記憶されている2分
木テーブルを参照して、ビットの逆置換を行う。具体的
には、まず、MSBについて、該ビットの論理値が
「1」であるときの論理生起確率の方が、「0」である
ときの論理生起確率より大きいとき(等しい場合を含
む)、当該ビットの実際の論理値が「0」のときは
「1」,「1」のときは「0」となるように逆置換し、
当該ビットの論理値が「1」であるときの論理生起確率
の方が、「0」であるときの論理生起確率より小さいと
き、当該ビットの実際の論理値が「0」のときは
「0」,「1」のときは「1」となるように逆置換す
る。次に、2SBについて、先に逆置換したMSBの論
理値を条件として、2SBの論理値が「1」であるとき
の条件付論理生起確率の方が、「0」であるときの条件
付論理生起確率より大きいとき(等しい場合を含む)、
当該ビットの実際の論理値が「0」のときは「1」,
「1」のときは「0」となるように逆置換し、当該ビッ
トの論理値が「1」であるときの条件付論理生起確率の
方が、「0」であるときの条件付論理生起確率より小さ
いとき、当該ビットの実際の論理値が「0」のときは
「0」,「1」のときは「1」となるように逆置換す
る。
【0045】次に3SBについて、先に逆置換したMS
Bと2SBの論理値を条件として、3SBの論理値が
「1」であるときの条件付論理生起確率の方が、「0」
であるときの条件付論理生起確率より大きいとき(等し
い場合を含む)、当該ビットの実際の論理値が「0」の
ときは「1」,「1」のときは「0」となるように逆置
換し、当該ビットの論理値が「1」であるときの条件付
論理生起確率の方が、「0」であるときの条件付論理生
起確率より小さいとき、当該ビットの実際の論理値が
「0」のときは「0」,「1」のときは「1」となるよ
うに逆置換する。4SB以降についても同様に、逐次、
自身より上位桁の逆置換後の論理値の組み合わせを条件
として、当該ビットの論理値が「1」であるときの条件
付論理生起確率の方が、「0」であるときの条件付論理
生起確率より大きいとき(等しい場合を含む)、当該ビ
ットの実際の論理値が「0」のときは「1」,「1」の
ときは「0」となるように逆置換し、当該ビットの論理
値が「1」であるときの条件付論理生起確率の方が、
「0」であるときの条件付論理生起確率より小さいと
き、当該ビットの実際の論理値が「0」のときは
「0」,「1」のときは「1」となるように逆置換す
る。
【0046】例えば、前回までに完全に復元された全て
の単位データ(DR1 〜DRi-1 )に基づき求めた2分
木テーブルが図5(a)の如くであり、今回の1バイト
分の復号化データDRi ´が図5(b)に示す如く、
「10010000」であったならば、最終的に「01
101101」に逆置換される。
【0047】図6は上記した実施例の圧縮処理を示す流
れ図、図7は圧縮時のビット置換動作の説明図、図8は
復元処理を示す流れ図、図9と図10は復元時のビット
逆置換動作の説明図であり、以下、これらの図に従って
説明する。圧縮処理 データの圧縮を開始するとき、最初に確率計算部12は
メモリ12Aに記憶された2分木テーブルの各論理生起
確率及び条件付論理生起確率を全て零に初期設定する
(図6のステップ101)。原データがバイト単位で入
力される毎に、前処理部10はビット単位での冗長度を
取り除く前処理を行って、符号化部16へ出力する。
【0048】この前処理では、単位データを1つ入力す
ると(ステップ102)、まず、ビット置換部14が確
率計算部12のメモリ12Aに記憶された2分木テーブ
ルを参照して、今回入力した単位データの各ビット別
に、MSBは該MSBの実際の論理値に対応する論理生
起確率が、該MSBの反転論理値に対応する論理生起確
率より大きいとき「0」,小さいとき「1」に置換し
(2つの確率が等しいときはMSBが「1」となってい
る方の確率が大きいとして扱う)、2SB乃至LSB
は、各ビットの実際の論理値に係る条件付論理値に対応
する条件付論理生起確率が、該ビットの反転論理値に係
る条件付論理生起確率より大きいとき「0」,小さいと
き「1」に置換し(2つの確率が等しいときは当該ビッ
トが「1」となっている方の確率が大きいとして扱
う)、置換後の1バイトの単位データを符号化部16へ
出力する(ステップ103)。予め、2分木テーブルの
初期化により、MSB乃至LSBのいずれも、「1」と
なっている方の確率が大きいとされるので、最初の入力
データが、DT1 =(11110101)であるとする
と、ビット置換後のデータは、DT1 ´=(00001
010)となる。
【0049】次に、確率計算部12は、今回の入力デー
タを用いて、2分木テーブルにおける1段目の論理生起
確率と2乃至8段目の条件付論理生起確率を計算し直
し、メモリ12Aに書き換え記憶させる(ステップ10
4)。具体的には、DT1 の場合、MSBが「1」なの
で、a(1) =1,a(2) =0となり、 A(1) =a(1) /(a(1) +a(2) ) =1/1 A(2) =a(1) /(a(1) +a(2) ) =0/1 A(1) +A(2) =1 となる。また、MSB=「1」の下で2SB=「1」と
なっているので、b(1) =1,b(2) =0となり、 B(1) =b(1) /a(1) =1/1 B(2) =b(2) /a(1) =0/1 B(1) +B(2) =1 となる(但し、B(3) ,B(4) は零のまま)。
【0050】更に、MSB=「1」,2SB=「1」の
下で3SB=「1」となっているので、c(1) =1,c
(2) =0となり、 C(1) =c(1) /b(1) =1/1 C(2) =c(1) /b(1) =0/1 C(1) +C(2) =1 となる(但し、C(3) 乃至C(8) は零のまま)。また、
MSB=「1」,2SB=「1」,3SB=「1」の下
で4SB=「1」となっているので、d(1) =1,d
(2) =0となり、 D(1) =d(1) /c(1) =1/1 D(2) =d(2) /c(1) =0/1 D(1) +D(2) =1 となる(但し、D(3) 乃至D(16)は零のまま)。
【0051】同様にして、5SB=「0」より、e(1)
=0,e(2) =1となり、E(1) =0/1,E(2) =1
/1となる(但し、E(3) 乃至E(32)は零のまま) 。ま
た、6SB=「1」より、f(3) =1,f(4) =0とな
り、F(3) =1/1,F(4)=0/1となる(但し、F
(1) ,F(2) ,F(5) 乃至F(64)は零のまま) 。また、
7SB=「0」より、g(5) =0,g(6) =1となり、
G(5) =0/1,G(6) =1/1となる(但し、G(1)
乃至G(4) ,G(7) 乃至G(128) は零のまま)。また、
LSB=「1」より、h(11)=1,h(12)=0となり、
H(11)=1/1,H(12)=0/1となる(但し、H(1)
乃至H(10),H(13)乃至H(256) は零のまま) 。このよ
うにして、確率計算を終えたならば、メモリ12Aの2
分木テーブルを今回の計算結果で書き換えて更新する。
【0052】一方、符号化部16はビット置換された単
位データTD1 ´を入力すると、ユニバーサル符号化し
て圧縮し、符号化データを出力する(ステップ10
5)。次に、前処理部10が2番目の単位データを入力
すると(ステップ106でNO、102)、まず、ビッ
ト置換部12が確率計算部12のメモリ12Aに記憶さ
れた2分木テーブル(前回までの入力データに基づき、
最新のテーブルとされている)を参照して、今回入力し
た単位データの各ビット別に、所定のビット置換を行
い、置換後の1バイトの単位データを符号化部16へ出
力する(ステップ103)。2番目の入力データがDT
2 =(11110010)であるとすると、MSBの論
理生起確率,2SB乃至4SB,6SB乃至LSBにつ
いての条件付論理生起確率は「1」の方が大、5SBの
条件付論理生起確率は「0」の方が大となっているの
で、ビット置換後のデータDT2 ´=(0000010
1)となる(図7参照)。
【0053】次に、確率計算部12は、今回の入力デー
タを用いて、2分木テーブルにおける1段目の論理生起
確率と2乃至8段目の条件付論理生起確率を計算し直
し、メモリ12Aに書き換え記憶させる(ステップ10
4)。具体的には、DT2 のMSBが「1」なので、a
(1) =2,a(2) =0となり、 A(1) =a(1) /(a(1) +a(2) ) =2/2 A(2) =a(1) /(a(1) +a(2) ) =0/2 A(1) +A(2) =1 となる。また、MSB=「1」の下で2SB=「1」と
なっているので、b(1) =2,b(2) =0となり、 B(1) =b(1) /a(1) =2/2 B(2) =b(2) /a(1) =0/2 B(1) +B(2) =1 となる(但し、B(3) ,B(4) は零のまま)。
【0054】更に、MSB=「1」,2SB=「1」の
下で3SB=「1」となっているので、c(1) =2,c
(2) =0となり、 C(1) =c(1) /b(1) =2/2 C(2) =c(2) /b(1) =0/2 C(1) +C(2) =1 となる(但し、C(3) 乃至C(8) は零のまま)。また、
MSB=「1」,2SB=「1」,3SB=「1」の下
で4SB=「1」となっているので、d(1) =2,d
(2) =0となり、 D(1) =d(1) /c(1) =2/2 D(2) =d(2) /c(1) =0/2 D(1) +D(2) =1 となる(但し、D(3) 乃至D(16)は零のまま)。
【0055】同様にして、5SB=「0」より、e(1)
=0,e(2) =2となり、E(1) =0/2,E(2) =2
/2となる(但し、E(3) 乃至E(32)は零のまま) 。ま
た、6SB=「0」より、f(3) =1,f(4) =1とな
り、F(3) =1/2,F(4)=1/2となる(但し、F
(1) ,F(2) ,F(5) 乃至F(64)は零のまま) 。また、
7SB=「1」より、g(7) =1,g(8) =0となり、
G(7) =0/1,G(8) =1/1となる(但し、G(5)
=0/1、G(6) =1/1、G(1) 乃至G(4),G(9)
乃至G(128) は零のまま) 。また、LSB=「0」よ
り、h(13)=0,h(14)=1となり、H(13)=0/1,
H(14)=1/1となる(但し、H(11)=1/1、H(12)
=0/1、H(1) 乃至H(10),H(15)乃至H(256) は零
のまま) 。このようにして、確率計算を終えたならば、
メモリ12Aの2分木テーブルを今回の計算結果で書き
換えて更新する。
【0056】ビット置換部14でビット置換された1バ
イトデータDT2 ´は符号化部16でユニバーサル符号
化されて出力される(ステップ105)。以下、同様に
して、逐次入力される単位データに対し、ビット置換部
14でのビット置換、確率計算部12での2分木テーブ
ルの更新、符号化部16での符号化を繰り返していく。
或る程度、処理が進み、前回までに入力された全ての単
位データ(DT1 〜DTi-1 )に基づき求めた2分木テ
ーブルが図4(a)の如くなった状態で、新たな今回の
1バイト分の原入力データDTi が図4(b)に示す如
く、「01101101」であったならば、ビット置換
後のデータDTi ´は「10010000」となり、
「0」の多いパターンに変わることが判る。
【0057】単位データのMSBに「0」又は「1」の
出現頻度に偏りがあったり、2SB以下の各ビットにつ
き、上位桁側のビットとの間に相関、即ち冗長度が存在
しているとき、論理生起確率や条件付論理生起確率に偏
りが生じることになる。このとき、論理生起確率や条件
付論理生起確率が大となったビットが「0」に置き換え
られて、1バイト長として見たとき「0」の多いパター
ンに偏るので、ビット単位の冗長度が減り、その後、1
バイト単位でなされる符号化で高い圧縮率を実現するこ
とが可能となる。尚、以上の説明では条件付論理生起確
率が大となったビットが説明ではすべて「0」に置き換
えているが、これを「1」に置き換えてもよい。即ち、
条件付論理生起確率が大→「0」、条件付論理生起確率
が小→「1」にする場合と、条件付論理生起確率が大→
「1」、条件付論理生起確率が小→「0」の2つの組が
考えられ、どちらか一方に決定する。単位データの入力
が終了したならば、圧縮処理を終える(ステップ106
でYES)。
【0058】復元処理 データの復元を開始するとき、最初に確率計算部24は
メモリ24Aに記憶された2分木テーブルの各論理生起
確率及び条件付論理生起確率を全て零に初期設定する
(図8のステップ201)。ユニバーサル符号化データ
が入力される毎に、復号化部20はユニバーサル復号化
を行い復号化データを後処理部へ出力する(ステップ2
02、203)。例えば、最初の復号化データDR1 ´
は(00001010)、2番目の復号化データDR2
´は(00000101)となる。復号化データが1バ
イト単位で入力される毎に、後処理部22は、圧縮時で
の前処理と逆の後処理を行って、圧縮側の原データと同
じ完全な復元データを復元して出力する。
【0059】この後処理では、復号化データが1つ入力
されると、まず、ビット逆置換部26が確率計算部24
のメモリ24Aに記憶された2分木テーブルを参照し
て、今回入力した単位データの各ビットの内、MSBに
ついて、該ビットの論理値が「1」であるときの論理生
起確率の方が「0」であるときの論理生起確率より大き
いとき(等しい場合を含む)、当該ビットの実際の論理
値が「0」のときは「1」,「1」のときは「0」とな
るように逆置換し、当該ビットの論理値が「1」である
ときの論理生起確率の方が「0」であるときの論理生起
確率より小さいとき、当該ビットの実際の論理値が
「0」のときは「0」,「1」のときは「1」となるよ
うに逆置換する。
【0060】2SB乃至LSBについては、逐次、当該
ビットより上位桁側の各逆置換後の論理値の組み合わせ
を条件としながら、該ビットの論理値が「1」であると
きの条件付論理生起確率の方が、「0」であるときの条
件付論理生起確率より大きいとき(等しい場合を含
む)、当該ビットの実際の論理値が「0」のときは
「1」,「1」のときは「0」となるように逆置換し、
当該ビットの論理値が「1」であるときの条件付論理生
起確率の方が、「0」であるときの条件付論理生起確率
より小さいとき、当該ビットの実際の論理値が「0」の
ときは「0」,「1」のときは「1」となるように逆置
換する。LSBまで逆置換を終えたあとの1バイトの単
位データを完全な復元データとして外部へ出力するとと
もに確率計算部24に入力する(ステップ204)。予
め、2分木テーブルの初期化により、2分木テーブルは
全て、「1」となっている方の確率が大きいとされる。
この場合、最初の復号化データDR1 ´=(00001
010)に対するビットの逆置換は、図9に示す如く進
められて、逆置換後のデータは、DR1 =(11110
101)となり、圧縮側でのDT1 と同一のデータが復
元される。
【0061】次に、確率計算部24は、今回の完全な復
元データDR1 を用いて、2分木テーブルにおける1段
目の論理生起確率と2乃至8段目の条件付論理生起確率
を計算し直し、メモリ24Aに書き換え記憶させる(ス
テップ205)。この際、それまでの2分木テーブルの
内容とデータDR1 が、圧縮側において、最初のデータ
DT1 を用いて確率計算し2分木テーブルの更新を行っ
たときと全く同じになっているので、2分木テーブルの
1段目はA(1) =1/1,A(2)=0/1、2段目はB
(1) =1/1,B(2) =0/1(但し、B(3) ,B(4)
は零のまま)、C(1) =1/1,C(2) =0/1(但
し、C(3) 乃至C(8) は零のまま)、D(1) =1/1,
D(2) =0/1(但し、D(3) 乃至D(16)は零のま
ま)、E(1) =0/1,E(2) =1/1(但し、E(3)
乃至E(32)は零のまま) 、F(3) =1/1,F(4) =0
/1(但し、F(1) ,F(2) ,F(5) 乃至F(64)は零の
まま) 、G(5) =0/1,G(6) =1/1(但し、G
(1) 乃至G(4) ,G(7) 乃至G(128) は零のまま) 、H
(11)=1/1,H(12)=0/1(但し、H(1)乃至H(1
0),H(13)乃至H(256) は零のまま) となる。このよう
にして、確率計算を終えたならば、メモリ12Aの2分
木テーブルを今回の計算結果で書き換えて更新する。こ
の更新された2分木テーブルは、圧縮時に、最初の入力
データDT1 に基づき、更新されたものと完全に一致す
る。
【0062】次に、後処理部22が2番目の復号化デー
タを入力すると(ステップ203)、まず、ビット逆置
換部26が確率計算部24のメモリ24Aに記憶された
2分木テーブル(前回までの完全な復元データに基づ
き、最新のテーブルとされている)を参照して、今回入
力した復号化データの各ビット別に、逐次、所定のビッ
ト逆置換を行い、逆置換後の1バイトの完全な復元デー
タを外部へ出力するとともに、確率計算部24に入力す
る(ステップ204)。2番目の復号化データDR2 ´
=(01001011)については、ビットの逆置換は
図10の如く進行し、逆置換後の完全な復元データDR
2 は(00000101)となり、圧縮時のDT2 と同
一となる。
【0063】次に、確率計算部24は、今回の復号化デ
ータを用いて、2分木テーブルにおける1段目の論理生
起確率と2乃至8段目の条件付論理生起確率を計算し直
し、メモリ24Aに書き換え記憶させる(ステップ20
5)。この場合も、それまでの2分木テーブルの内容と
データDR2 が、圧縮側において、最初のデータDT2
を用いて確率計算し2分木テーブルの更新を行ったとき
と全く同じになっているので、2分木テーブルの1段目
はA(1) =2/2,A(2) =0/2、2段目はB(1) =
2/2,B(2) =0/2(但し、B(3) ,B(4) は零の
まま)、3段目はC(1) =2/2,C(2) =0/2(但
し、C(3) 乃至C(8) は零のまま)、4段目はD(1) =
2/2,D(2) =0/2(但し、D(3)乃至D(16)は零
のまま)、5段目はE(1) =0/2,E(2) =2/2
(但し、E(3) 乃至E(32)は零のまま) 、6段目はF
(3) =1/2,F(4) =1/2(但し、F(1) ,F(2)
,F(5) 乃至F(64)は零のまま) 、7段目はG(7) =
0/1,G(8) =1/1(但し、G(5) =0/1、G
(6) =1/1、G(1) 乃至G(4) ,G(9) 乃至G(128)
は零のまま) 、8段目はH(13)=0/1,H(14)=1/
1となる(但し、H(11)=1/1、H(12)=0/1、H
(1) 乃至H(10),H(15)乃至H(256) は零のまま) 。こ
のようにして、確率計算を終えたならば、メモリ24A
の2分木テーブルを今回の計算結果で書き換えて更新す
る。この更新された2分木テーブルは、圧縮時に、2番
目の入力データDT2 に基づき、更新されたものと完全
に一致する。
【0064】以下、同様にして、逐次入力される復号化
データに対し、ビット逆置換部26でのビット逆置換、
ビット逆置換後の復元データに基づく確率計算部24で
の2分木テーブルの更新を繰り返していく。或る程度、
処理が進み、前回までに復元された全ての単位データ
(DR1 〜DRi-1 )に基づき求めた2分木テーブルが
図5(a)の如くなった状態で、新たな今回の1バイト
分の復号化データDRi ´が図5(b)に示す如く、
「00000101」であったならば、ビット逆置換後
のデータDRi は「11110010」となり、圧縮時
における入力データDTi が再現される。新たなユニバ
ーサル符号化データが入力されなくなったら、復元処理
を終了する。これにより、圧縮時に符号化の前段で、ビ
ット単位の冗長度を削減するように前処理されていて
も、復元側では、確実に前処理される前の原データを復
元することが可能となる。
【0065】この実施例によれば、圧縮対象の1バイト
データの各ビットが「0」と「1」のいずれの論理値で
あっても、論理生起確率又は条件付論理生起確率が大の
ビットを「0」に置き換えて、1バイト単位で見たとき
「0」の多いパターンに偏らせることで、ビット単位の
冗長度を減らすことができ、その後、所定ビット長単位
でなされる符号化で、ベクトル符号化に並ぶ高い圧縮率
を実現することが可能となる。また、圧縮時に符号化の
前段で、ビット単位の冗長度を削減するように前処理さ
れていても、復元側では、確実に前処理される前の原デ
ータを復元することが可能となる。
【0066】なお、上記した実施例では、圧縮時にビッ
ト置換する際、論理生起確率や条件付論理生起確率が大
きいとき「0」に置換し、小さいとき「1」に置換する
ようにしたが、反対に、確率が大きいとき「1」に置換
し、小さいとき「0」に置換するようにしてもよく、こ
の場合、復元時のビット逆置換では、ビットの論理値が
「0」であるときの論理生起確率又は条件付論理生起確
率の方が、「1」であるときの論理生起確率又は条件付
論理生起確率より大きいとき(等しい場合を含む)、当
該ビットの実際の論理値が「1」のときは「1」,
「0」のときは「0」となるように逆置換し、当該ビッ
トの論理値が「0」であるときの条件付論理生起確率の
方が、「1」であるときの条件付論理生起確率より小さ
いとき、当該ビットの実際の論理値が「1」のときは
「0」,「0」のときは「1」となるように逆置換すれ
ばよい。また、1バイトの単位データに対し、最上位桁
側から枝分かれさせて2分木テーブルを構成するように
したが、最下位桁側から枝分かれさせて2分木テーブル
を構成してもよい。更に、圧縮対象は、1バイトデータ
なくても、2バイトデータ等、2ビット以上の任意のビ
ット長であってよい。また、単位データの端のビット
(MSBやLSB等)は、ビット置換の対象としないよ
うにしてもよい。
【0067】また、上記した実施例では確率の計算及び
大小判断を、例えば、MSBについては、「1」の出現
頻度a(1) 、「0」の出現頻度a(2) を用いて、a(1)
とa(2) のいずれも0の場合を除き、 A(1) =a(1) /(a(1) +a(2) ) A(2) =a(2) /(a(1) +a(2) ) の如く分数計算で実際の確率を求め、A(1) ≧0.5 のと
きA(1) の確率大、A(1) <0.5 とし、A(2) >0.5 の
ときA(2) の確率大、A(2) ≦0.5 のとき確率小と判断
して行ったのと同じであるが、出現頻度a(1) とa(2)
自体を便宜上の確率とし、a(1) ≧a(2) のとき「1」
の確率大、a(1) <a(2) のとき「1」の確率小、a
(2) >a(1) のとき「0」の確率大、a(2) ≦a(1) の
とき「0」の確率小と判断するようにしてもよい。2S
B以降についても同様である。また、圧縮方式としてユ
ニバーサル符号を例に挙げたが、他の方式であってもよ
い。以上、本発明を実施例、変形例により説明したが、
本発明は請求の範囲に記載した本発明の主旨に従い種々
の変形が可能であり、本発明はこれらを排除するもので
はない。
【0068】
【発明の効果】以上、本発明によれば、符号化前に、前
回までに入力された単位データに基づき、単位データ内
での所定の1又は複数のビットについて、各ビット別
に、該ビットの論理値が他の所定の1又は複数のビット
の論理値の組み合わせを条件として生起する確率を求め
ておくとともに、今回入力された単位データの所定の1
又は複数の各ビットを、該ビットの条件付論理生起確率
が大か小かに従い、互いに異なる所定論理値に置換する
前処理を行うように構成したから、入力データの内、所
定のビットが「0」と「1」のいずれの論理値であって
も、条件付論理生起確率が大のビットを「0」(又は
「1」)に置き換えて、所定ビット長として見たとき
「0」(又は「1」)の多いパターンに偏らせること
で、ビット単位の冗長度を減らすことができ、その後、
所定ビット長単位でなされる符号化で高い圧縮率を実現
することが可能となる。
【0069】また、圧縮符号化データを所定の方式で復
号化し、nビット長単位の復元データとする復元方法に
おいて、復号化後、前回までに完全に復元された単位デ
ータに基づき、単位データ内での所定の1又は複数のビ
ットについて、各ビット別に、該ビットの論理値が他の
所定の1又は複数のビットの論理値の組み合わせを条件
として生起する確率を求めておくとともに、今回復号化
された単位データの所定の1又は複数の各ビットを、逐
次、該ビットの両論理値に係る条件付論理生起確率の大
小と、当該ビットの論理値との組み合わせに従い所定論
理値に逆置換する後処理を行って、完全に復元した単位
データを得るように構成したから、圧縮時に符号化の前
段で、ビット単位の冗長度を削減するように前処理され
ていても、復元側では、確実に前処理される前の原デー
タを復元することが可能となる。
【0070】また、nビット長単位で入力されるデータ
を、所定の方式で圧縮し符号化するとともに、圧縮符号
化データを所定の方式で復号化し、nビット長単位の復
元データとするデータ圧縮/復元方法において、圧縮
時、符号化前に、前回までに入力された単位データに基
づき、単位データ内での所定の1又は複数のビットにつ
いて、各ビット別に、該ビットの論理値が他の所定の1
又は複数のビットの論理値の組み合わせを条件として生
起する確率を求めておくとともに、今回入力された単位
データの所定の1又は複数の各ビットを、該ビットの条
件付論理生起確率が大か小かに従い、互いに異なる所定
論理値に置換する前処理を行うようにし、復元時、復号
化後、前回までに完全に復元された単位データに基づ
き、単位データ内での所定の1又は複数のビットについ
て、各ビット別に、該ビットの論理値が他の所定の1又
は複数のビットの論理値の組み合わせを条件として生起
する確率を求めておくとともに、今回復号化された単位
データの所定の1又は複数の各ビットを、逐次、該ビッ
トの両論理値に係る条件付論理生起確率の大小と、当該
ビットの論理値との組み合わせに従い所定論理値に置換
する後処理を行って、完全に復元した単位データを得る
ように構成したから、圧縮時は、符号化の前段で、ビッ
ト単位の冗長度を削減するように前処理することで、高
い圧縮率を実現可能となり、又、復元側では、確実に前
処理される前の原データを完全に復元することが可能と
なる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施例構成図である。
【図3】2分木テーブルの説明図である。
【図4】ビット置換方法を示す説明図である。
【図5】ビット逆置換方法を示す説明図である。
【図6】圧縮処理を示す流れ図である。
【図7】ビット置換動作の説明図である。
【図8】復元処理を示す流れ図である。
【図9】ビット逆置換動作の説明図である。
【図10】ビット逆置換動作の説明図である。
【図11】LZSS符号化方式の説明図である。
【図12】LZW符号化方式の説明図である。
【図13】辞書構成の説明図である。
【図14】LZW符号化処理を示す流れ図である。
【図15】LZW復号化処理を示す流れ図である。
【図16】LZW復号化の例外時における説明図であ
る。
【図17】LZW復号化の説明図である。
【符号の説明】
10 前処理部 12、24 確率計算部 14 ビット置換部 16 符号化部 20 復号化部 22 後処理部 26 ビット逆置換部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 千葉 広隆 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 nビット長単位で入力されるデータを、
    所定の方式で圧縮し符号化するデータ圧縮方法におい
    て、 符号化前に、前回までに入力された単位データ(DT1
    〜DTi-1 )に基づき、単位データ内での所定の1又は
    複数のビットについて、各ビット別に、該ビットの論理
    値が他の所定の1又は複数のビットの論理値の組み合わ
    せを条件として生起する確率(B(1) 〜H(256) )を求
    めておくとともに、 今回入力された単位データ(DTi )の所定の1又は複
    数の各ビットを、該ビットの条件付論理生起確率が大か
    小かに従い、互いに異なる所定論理値に置換する前処理
    を行うようにしたこと、 を特徴とするデータ圧縮方法。
  2. 【請求項2】 圧縮符号化データを所定の方式で復号化
    し、nビット長単位の復元データとする復元方法におい
    て、 復号化後、前回までに完全に復元された単位データ(D
    1 〜DRi-1 )に基づき、単位データ内での所定の1
    又は複数のビットについて、各ビット別に、該ビットの
    論理値が他の所定の1又は複数のビットの論理値の組み
    合わせを条件として生起する確率(B(1) 〜H(256) )
    を求めておくとともに、 今回復号化された単位データ(DRi ´)の所定の1又
    は複数の各ビットを、逐次、該ビットの両論理値に係る
    条件付論理生起確率の大小と、当該ビットの論理値との
    組み合わせに従い所定論理値に逆置換する後処理を行っ
    て、完全に復元した単位データ(DRi )を得るように
    したこと、 を特徴とするデータ復元方法。
  3. 【請求項3】 nビット長単位で入力されるデータを、
    所定の方式で圧縮し符号化するとともに、圧縮符号化デ
    ータを所定の方式で復号化し、nビット長単位の復元デ
    ータとするデータ圧縮/復元方法において、 圧縮時、符号化前に、前回までに入力された単位データ
    (DT1 〜DTi-1 )に基づき、単位データ内での所定
    の1又は複数のビットについて、各ビット別に、該ビッ
    トの論理値が他の所定の1又は複数のビットの論理値の
    組み合わせを条件として生起する確率(B(1) 〜H(25
    6) )を求めておくとともに、 今回入力された単位データ(DTi )の所定の1又は複
    数の各ビットを、該ビットの条件付論理生起確率が大か
    小かに従い、互いに異なる所定論理値に置換する前処理
    を行うようにし、 復元時、復号化後、前回までに完全に復元された単位デ
    ータ(DR1 〜DRi- 1 )に基づき、単位データ内での
    所定の1又は複数のビットについて、各ビット別に、該
    ビットの論理値が他の所定の1又は複数のビットの論理
    値の組み合わせを条件として生起する確率(B(1) 〜H
    (256) )を求めておくとともに、 今回復号化された単位データ(DRi ´)の所定の1又
    は複数の各ビットを、逐次、該ビットの両論理値に係る
    条件付論理生起確率の大小と、当該ビットの論理値との
    組み合わせに従い所定論理値に逆置換する後処理を行っ
    て、完全に復元した単位データ(DRi )を得るように
    したこと、 を特徴とするデータ圧縮/復元方法。
JP19535192A 1992-07-22 1992-07-22 データ圧縮方法、データ復元方法、データ圧縮/復元方法 Withdrawn JPH0644038A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19535192A JPH0644038A (ja) 1992-07-22 1992-07-22 データ圧縮方法、データ復元方法、データ圧縮/復元方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19535192A JPH0644038A (ja) 1992-07-22 1992-07-22 データ圧縮方法、データ復元方法、データ圧縮/復元方法

Publications (1)

Publication Number Publication Date
JPH0644038A true JPH0644038A (ja) 1994-02-18

Family

ID=16339731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19535192A Withdrawn JPH0644038A (ja) 1992-07-22 1992-07-22 データ圧縮方法、データ復元方法、データ圧縮/復元方法

Country Status (1)

Country Link
JP (1) JPH0644038A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052937A1 (fr) * 1999-03-04 2000-09-08 Sega Enterprises, Ltd. Procede de codage et de decodage d'informations relatives a des images
US6636000B2 (en) 2000-10-06 2003-10-21 Fujitsu Hitachi Plasma Display Limited Plasma display device with flexible circuit boards and connectors
US7491897B2 (en) 2002-09-30 2009-02-17 Fujitsu Ten Limited Electronic equipment provided with wiring board into which press-fit terminals are press-fitted
DE112009004576T5 (de) 2009-03-23 2012-09-06 Mitsubishi Electric Corporation Struktur zum Verbinden eines Verbinders und Scheinwerferlichtquellenleuchteinrichtung verwendend die Struktur

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052937A1 (fr) * 1999-03-04 2000-09-08 Sega Enterprises, Ltd. Procede de codage et de decodage d'informations relatives a des images
US6754395B1 (en) 1999-03-04 2004-06-22 Kabushiki Kaisha Sega Enterprises Image information encoding method and decoding method
US6636000B2 (en) 2000-10-06 2003-10-21 Fujitsu Hitachi Plasma Display Limited Plasma display device with flexible circuit boards and connectors
US7491897B2 (en) 2002-09-30 2009-02-17 Fujitsu Ten Limited Electronic equipment provided with wiring board into which press-fit terminals are press-fitted
DE112009004576T5 (de) 2009-03-23 2012-09-06 Mitsubishi Electric Corporation Struktur zum Verbinden eines Verbinders und Scheinwerferlichtquellenleuchteinrichtung verwendend die Struktur

Similar Documents

Publication Publication Date Title
US7365658B2 (en) Method and apparatus for lossless run-length data encoding
JP4905562B2 (ja) データ圧縮装置、及びデータ復元装置
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
JP3397431B2 (ja) データ圧縮方法および装置ならびにデータ復元方法および装置
JP2000124810A (ja) 符号化装置及び復号化装置
CN114520659A (zh) 结合rANS和LZ4编码的数据无损压缩、解码方法
JPH05241777A (ja) データ圧縮方式
Rathore et al. A brief study of data compression algorithms
Mathpal et al. A research paper on lossless data compression techniques
JPH0644038A (ja) データ圧縮方法、データ復元方法、データ圧縮/復元方法
JP4000266B2 (ja) データ符号化装置、データ符号化方法、及びそのプログラム
CN116471337A (zh) 一种基于bwt和lzw的报文压缩与解压缩方法及设备
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
Anto et al. A Compression System for Unicode Files Using an Enhanced Lzw Method.
US20080001790A1 (en) Method and system for enhancing data compression
JPH05134847A (ja) データ圧縮方法
JP3181996B2 (ja) 画像データ圧縮/復元方法
JP3105598B2 (ja) ユニバーサル符号を用いたデータ圧縮方式
JP3241787B2 (ja) データ圧縮方式
JP4093193B2 (ja) データ圧縮方法及びプログラムならびにデータ復元方法及び装置
Xu et al. SSE lossless compression method for the text of the insignificance of the lines order
JPH0884260A (ja) 2次元画像データの圧縮方式および伸長方式
JPH11317673A (ja) ランレングス符号化方法及び復号化方法
JPH05152971A (ja) データ圧縮・復元方法
JP3100206B2 (ja) データ圧縮方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005