JP3258552B2 - データ圧縮装置及びデータ復元装置 - Google Patents

データ圧縮装置及びデータ復元装置

Info

Publication number
JP3258552B2
JP3258552B2 JP02224596A JP2224596A JP3258552B2 JP 3258552 B2 JP3258552 B2 JP 3258552B2 JP 02224596 A JP02224596 A JP 02224596A JP 2224596 A JP2224596 A JP 2224596A JP 3258552 B2 JP3258552 B2 JP 3258552B2
Authority
JP
Japan
Prior art keywords
code
character string
character
block
reference list
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
Application number
JP02224596A
Other languages
English (en)
Other versions
JPH09214353A (ja
Inventor
泰彦 中野
君孝 村下
佳之 岡田
茂 吉田
雅永 徳世
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 JP02224596A priority Critical patent/JP3258552B2/ja
Priority to US08/684,045 priority patent/US5717393A/en
Publication of JPH09214353A publication Critical patent/JPH09214353A/ja
Application granted granted Critical
Publication of JP3258552B2 publication Critical patent/JP3258552B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、文字などのコード
列で構成される情報を伝送又は蓄積する符号化して圧縮
するデータ圧縮装置及び復元装置に関し、特に、ブロッ
クソート法を利用したデータ圧縮装置及び復元装置に関
する。
【0002】
【従来の技術】文字などのコード列で構成される情報を
伝送又は蓄積する場合、データの容量が大きいとき、通
信回線や記憶装置の容量を有効に利用するため、データ
列を圧縮して伝送や蓄積し、再度、そのデータを使用す
るときに元のデータ列に復元する方法が良く用いられ
る。このようなデータ列の圧縮と復元は、文字コードに
限らず一般のデータにも適用できるが、以下の説明で
は、情報理論等で使われている呼称を踏襲し、データの
1ワードを文字と呼ぶことにする。
【0003】従来、文字コードを能率よく圧縮する方法
としてZiv-Lempel符号(以下「ZL符号」と呼ぶ)が知
られている(例えば、宗像清治著、「Ziv-Lempelデータ
圧縮法」、情報処理、pp.2〜6,Vol.26,No.1,1985)。ま
た他の圧縮方法としては、算術符号化法が知られている
(例えば「Text Compression」、Prentice Hall, T.C.B
ell, J.G.Clearry and I.H.Witten )。
【0004】この2つの方法ともよく研究されており、
さまざまなバリエーションがある。ZL符号は、アルゴ
リズムが比較的簡単であるので高速であり、パソコンな
どでの実現がたやすく行える。既にパソコンなどで市販
されている圧縮ソフトのほとんどが、この方式を用いて
いる。しかし、圧縮率は必ずしも十分とはいえない。一
方、算術符号化は、文字の出現確率を精密に計算して符
号化を行う方法であり、圧縮率は理論値に近いものが得
られる。しかし、計算量が多くなるので、パソコンなど
では使用不能なほど遅いものとなってしまう欠点があ
る。このことからスピードを重視する場合はZL符号を
使用し、圧縮性能を重視する場合は算術符号化法を使用
するといった傾向にある。
【0005】このような背景のもとに、処理速度と圧縮
率の両立を狙った全く新しい圧縮方法として、1994
年にブロック・ソーティング・アルゴリズム(Block so
rting Algorithm )が発表された(「A Block-sorting
Lossless Data CompressionAlgorithm 」、DECSRCLa
b.、M.Burrows and D.J.Wheeler, May 10, 1994))。ブ
ロック・ソーティング・アルゴリズムは、文字列が文字
の接続関係につながりをもつことに着目して文字コード
の圧縮を行うもので、処理の手順は、図27のように、
ブロックソート変換部110、先頭移動変換部(以下
「MTF(Moveto Front)変換部」という)112、符
号表116を備えたエントロピー符号化部114の3つ
の部分に分かれている。
【0006】ブロックソートの処理の概念は、図28の
ようになる。図28は、文字列「aabrac」を入力
した場合の処理を例にとっている。まずブロックソート
変換部110は文字列のデータストリ−ムを例えば6文
字のブロックに分割し、文字列「aabrac」として
入力する。第1ステージとしてのブロックソート変換部
110は、ブロック内で文字列を循環させ、更に辞書順
序にソートする。MTF変換部112は、ソート順の最
終文字列Lを入力し、この文字列Lに先頭移動処理とし
て知られたMTF(Move to Front )を第2ステージと
してかけて中間コード「213103」に変換する。
【0007】最後に、エントロピー符号化部114は、
符号化表116を用いてMTF後の中間データ「213
103」を、例えば可変長符号化等のエントロピー符号
化を行う。さらに詳細に説明すると次のようになる。
(ブロックソート)図27のブロックソート変換部11
0は、入力された文字列Sを、S=「aabrac」と
したとき、図29(A)のように、入力文字列Sを左回
りに巡回させた文字列の集まりで成る2次元文字列を生
成する。次に図29(B)のように、2次元文字列の各
文字列を辞書式順序に並べかえて整理するソートを行
う。
【0008】ソート後の2次元文字列において、入力文
字列S=「aabrac」は、0〜5番目の一番最初の
0番の行位置にくる。これをI=0で表わす。そして図
28(B)のソート済みの2次元文字列の中の最終文字
の文字列L、即ちブロックソート文字列L=「cara
ab」と、その中での位置I=0の組を (I,L)=(0,”caraab”) 中間コードとしてMTF変換部112に渡し、最後にエ
ントロピー符号化部114でエントロピー符号化する。
【0009】復元の際は、中間コード(I,L)=
(0,”caraab”)が、MTF逆変換部から渡さ
れ、中間コードから元の文字列Sに復元する必要があ
る。中間コード(I,L)のブロックソート文字列Lか
らの元の文字列Sの復元は次のようになる。MTF逆変
換を経てブロックソート文字列L=“caraab”が
得られたとすると、これを最終文字列とする2次元文字
列の配置が図30(A)のように得られる。ここで
「*」は未定文字を示す。このソート済みの2次元文字
列における先頭文字列Pは、最終文字列Lを辞書順序で
ソートしたものに一致することから、P=“aaabc
r”が判明する。判明した先頭文字列Pを2次元文字列
に配置すると図30(B)のようになる。
【0010】図30(B)のように、最終文字列Lと先
頭文字列Pが判ったところで、「*」の部分を復元す
る。ここで図30のように、先頭文字列Pをもつ復元さ
れた2次元文字列Mと、2次元文字列を右に1回巡回さ
せた2次元文字列M1について考えてみる。2次元文字
列Mは辞書順序にソートされているので、これを右に1
回巡回させた2次元文字列M1においても、2番目の文
字以降は辞書順序にソートされたままとなっている。
【0011】つまり、2次元文字列M1の中で、1番目
の文字が同じ文字列の順番は、元の2次元文字列Mの中
でも保存されている。具体的にいうと、2次元文字列M
1の中で、1番目の文字が同じ「a」となる2番目、4
番目及び5番目という文字列の順番は、辞書順序にソー
トされた元の2次元文字列Mの中でも、1番目、2番目
及び3番目として保存されている。
【0012】その結果、2次元文字列Mの先頭文字列
と、2次元文字列Mを右に1回巡回させた2次元文字列
M1の先頭文字列との間には、図31の矢印の対応関係
が成立している。この対応関係は、図30(B)の矢印
のように、復元しようとしている2次元文字列における
先頭文字列Pと最終文字列Lとの対応関係を与える。図
30(B)において、復元すべき文字列Sは、2次元文
字列の0行目の文字”a****c”であることはI=
0からわかる。次に、最終文字「c」の前に位置する5
番目の文字は、復元文字S=”a****c”を巡回さ
せた文字列をソートした文字列の先頭文字である。この
ため図30(B)の対応関係から、1番目の文字列を巡
回してソートすると、図32(A)のように、1番目の
文字列の最終文字「c」は矢印104で示す5行目の文
字列の先頭文字「c」に位置する。そして5行目の文字
列の先頭文字「c」に対し矢印106で示す最終文字
「a」が、1行目の文字列の最終文字「c」の前に位置
しているはずである。したがって、文字列S=”a**
*ac”が判明する。
【0013】次に図32(B)のように、5番目の復元
文字「a」の前の文字は、同様に矢印108,110の
関係から文字「r」となり、復元文字列S=”a**r
ac”が判明する。次に図32(C)のように、4番目
の復元文字「r」の前の文字は、同様に矢印112,1
14の関係から文字「b」となり、復元文字列S=”a
*brac”が判明する。最後に図32(D)のよう
に、2番目の復元文字「b」の前の文字は、同様に矢印
116,118の関係から文字「a」となり、復元文字
列S=”aabrac”が判明し、全てが復元できる。
【0014】(MTF変換)図33は図27のMTF変
換部112の処理を示している。MTF変換部112
は、ブロックソートから渡されたブロックソート文字列
(I,L)について、文字列位置Iは無変換とし、最終
文字列LにのみMTFをかける。ここで、最終文字列L
をL=”caraab”として説明する。最終文字列L
にMTFをかけるとき、参照用リスト120として用意
する。ここで参照リストをYとする。参照リストYの初
期値としては、Y=”abcr”を使用する。
【0015】MTF変換部112は、入力リスト122
として渡された最終文字列Lの最初の文字「c」を入力
すると、リストYを参照し、文字「c」は、リスト先頭
から2番目の位置にあるので、コード「2」を出力す
る。コード変換が済んだら、リストY上で変換に使用し
た文字「c」の位置を先頭に移動し、Y=”cabr”
に更新する。
【0016】以下、残りの文字「a」、「r」、
「a」、「a」、「b」を順番に入力し、リストY上の
先頭からの位置を示すコードに変換した後にリストを更
新する処理を繰り返す。その結果、MTF変換によって
中間コードとしてのMTF符号符号列“213103”
が得られる。図34は、図33でMTF変換された符号
列(213103)を元の文字列L=“caraab”
に戻すMTF逆変換を説明する。MTF逆変換も同様に
参照リスト126としてY=“abcr”を使用し、ま
ずMTF逆変換部130は、入力MTF符号128とし
て渡された符号列“213103”の最初の符号「2」
を入力すると、リストYを参照し、リスト先頭から2番
目の位置にある文字「c」を復元する。文字復元が済ん
だら、リストY上で変換に使用した文字「c」の位置を
先頭に移動し、Y=”cabr”に更新する。
【0017】以下、同様に残りの符号「1」、「3」、
「1」、「0」、「3」を順番に入力し、リストY上の
先頭からの符号で示す位置の文字を復元した後にリスト
を更新する処理を繰り返す。その結果、MTF逆変換
よって最終文字列L=“caraab”が復元できる。 (エントロピー符号化) 図27のエントロピー符号化部114は、MTFで変換
された符号列をエントロピー符号化する。具体的な方法
としては、簡単な静的ハフマン符号化が考えられる。M
TF変換後の符号列は、0近辺に片寄ったものとなるの
で、0近辺を短い符号で表す可変長符号化を行えばよ
い。データ列の性質にあわせ効率をあげるためには、動
的なハフマンなどもよいが、処理速度が犠牲になる。
【0018】
【発明が解決しようとする課題】このようなブロックソ
ート法は、文字列を循環させソートすることによって文
脈(文字のつながり)を捉えることができ、文字列の高
次のつながりを利用して符号化できるので、高い圧縮率
を得ることができる。またブロックソート法で最終的に
符号化するのは、ソートされた最終文字の1次元の符号
化になり、局所的には、文脈の似た部分が集まり、MT
Fをかけることによって0付近に片寄り、高い圧縮率が
得られる。しかし、ソートされた最終文字列を大局的に
見ると、不連続部分が多数見られ、十分に文脈の性質を
取り込んだものとはなっていない。
【0019】例えば図34はブロックソートされた最終
文字列L1〜L12を示しており、局所的にはグループ
A,B,Cの各々のように文脈の似た部分が集まり、高
い圧縮率が得られる。しかし、大局的には、グループ
A,B,Cの各境界で不連続部分が生じており、これに
MTFをかけた場合、MTF符号が不連続部分で0付近
からの外れが大きくなり、符号に大きなビット数を要
し、圧縮率が悪化する原因となっている。
【0020】このような不連続部分を相殺するために
は、局所的な部分を大きくとる必要があり、そのためブ
ロックサイズを数メガバイト近くもとらなければなら
ず、ブロックサイズが大きくなり過ぎて処理効率が低下
する問題があった。本発明は、このような問題点に鑑み
てなされたもので、ブロックサイズを大きくすることな
く、ブロックソートされた文字列の不連続部分での符号
化効率の低下を最小限に抑えて圧縮率を向上するように
したデータ圧縮装置および復元装置を提供することを目
的とする。
【0021】
【課題を解決するための手段】図1は本発明の原理説明
図である。まず本発明は、ブロックソートされた文字列
の不連続部分での符号化の効率の低下を最小限に抑える
ために、エントロピー符号化で使用する符号表として、
当り安い符号表と当りにくい符号表というように複数の
符号表を準備し、不連続部分の検出で符号表を切り替え
てエントロピー符号化を行うことを特徴とする。
【0022】即ち、図1(A)のように、本発明は、ブ
ロックソート変換部10、MTF変換部(先頭移動変換
部)12及びエントロピー符号化部14で構成され、エ
ントロピー符号化部14に複数の符号表16を設けたこ
とを特徴とする。ブロックソート変換部10は、文字列
の入力データを所定サイズのブロックに分割した各ブロ
ック毎に、ブロック内の文字列を文字の個数分だけ循環
させ新たな2次元文字列を作成して辞書順序にソートし
た後に、この2次元文字列の最終文字をソート順に取り
出してブロックソート文字列Lとして出力する。
【0023】MTF変換部12は、ブロックソート文字
列Lの構成文字を全て含む参照リストを有し、ブロック
ソート文字列Lの先頭文字から順番に、参照リスト上の
登録位置を示す符号に変換すると共に、変換済みの文字
をリスト先頭に移動して次の文字の変換を行い、ブロッ
クソート文字列を参照リスト上の登録位置を示す中間符
号列に変換して出力する。
【0024】エントロピー符号化部14は、入力する文
字列の変化に対応する複数の符号表16を備え、文字列
の変化に応じて対応する符号表を用いて、MTF変換部
12から入力した中間符号列をエントロピー符号化す
る。エントロピー符号化部14における符号表の切替タ
イミングは、前回と今回のブロックソート文字列の先頭
文字が変化して不連続点を検出した時点の第1切替タイ
ミングと、不連続点の検出後に同一先頭文字のブロック
処理数が所定値に達した時点の第2切替タイミングとす
る。
【0025】エントロピー符号化部14は、符号表とし
て、出やすい文字と出にくい文字の符号割り当てビット
数が大きく異なる第1符号表(以下「グッドモード符号
表」という)と、出やすい文字と出にくい文字の符号割
り当てビット数があまり変わらない第2符号表(以下
「バッドモード符号表」という)とを有する。そして、
不連続点を検出した第1切替タイミングで、グッドモー
ド符号表からバッドモード符号表に切り替える。また不
連続点の検出からの処理ブロック数が所定値に達した第
2切替タイミングで、バッドモード符号表からグッドモ
ード符号表に切り替える。
【0026】エントロピー符号化部14は、ブロックソ
ート文字列の先頭文字が同一となるn個のブロックを対
象に、不連続点の検出でバッドモード符号表に切り替え
てからグッドモード符号表に切り替えるまでのブロック
数を変させながらエントロピー符号化を行ってブロッ
ク毎の全符号量を計算し、最小符号量となる切替ブロッ
ク数を第2切替タイミングを決める処理ブロック数の最
適値に決定する。
【0027】この場合、エントロピー符号化部14は、
切替ブロック数の最適値を決定する処理を、入力文字列
の変換を行いながら決定し、後続するブロックの符号表
の切替えに使用してもよい。またエントロピー符号化部
14は、切替ブロック数の最適値を決定する処理を、典
型的なデータを対象に入力文字列の変換を行いながら予
め決定し、全てのブロックの符号表の切替えに使用す
る。
【0028】更に、エントロピー符号化部14は、ブロ
ックソート文字列の先頭からの複数文字分の組合せに応
じてグッドモード符号表を複数設け、不連続点の検出後
にバッドモード符号表からグッドモード符号表に切り替
えた場合、ブロックソート文字列の先頭から複数文字の
組合せに応じたグッドモード符号表を選択する。このよ
うなデータ圧縮装置による変換符号列からの復元処理
は、図1(A)の逆の操作となる。即ち、本発明のデー
タ復元装置は、入力する文字列の変化に対応する符号表
を複数備え、エントロピー符号化された符号列を入力し
て中間符号列を復号するエントロピー復号部、参照リス
トを使用して前記ブロックソート文字列を復元するMT
F逆変換部、MTF逆変換部で変換されたブロックソー
ト文字列から元の文字列を復元するブロックソート逆変
換部とで構成される。符号表に関してはデータ圧縮装置
と同じである。
【0029】また本発明の別の形態にあっては、例えば
MTF変換部に参照リストを複数設け、MTF変換で使
用する参照リストを文脈毎に使い分けることで、MTF
変換における文脈の取り込みを正確にし、ブロックサイ
ズを短くしたことで不連続点が発生しても変換効率を最
小限に抑える。即ち、図1(B)のように、ブロックソ
ート変換部10、中間符号変換部として機能するMTF
変換部12及びエントロピー符号化部14を設け、この
内、MTF変換部12に対し、ブロックソート文字列の
構成文字を全て含む複数の参照リストを格納した参照リ
スト格納部26を設けている。尚、エントロピー符号化
部14の符号表16は1つである。
【0030】MTF変換部12は、参照リスト格納部2
6の中から、参照リストを1つ選択し、MTF変換によ
りブロックソート文字列を参照リスト上の登録位置を示
す中間符号列に変換し、エントロピー符号化部14に渡
す。エントロピー符号化部14は、入力する文字列の変
化に対応する符号表16を備え、MTF変換部12から
使用した参照リストの識別情報と中間符号列を入力して
エントロピー符号化する。
【0031】MTF変換部12は、ブロックソート文字
列Lの先頭文字又は先頭からの複数の文字によって参照
リスト格納部26の対応する参照リストを選択する。参
照リスト上の登録位置を示す符号に変換済みの文字をリ
スト先頭位置に移動して次の文字の変換を行うMTF変
換部12の代わりに、参照リスト上の登録位置を示す符
号に変換済みの文字を参照リスト上の1つ前の位置に移
動して次の文字の変換を行う入替え変換部( Transpos
e) を設けてもよい。
【0032】MTF変換部12は、最初のブロックの変
換で選択されて更新された参照リストを、後続するブロ
ックにつき連続して使用する。即ち、ブロック毎に参照
リストを初期化せず、前のブロックのMTF変換で逐次
更新された参照リストを、不連続点が発生するまで、継
続的に使用する。データ復元装置の場合には、エントロ
ピー復号化部、MTF逆変換部及びブロックソート逆変
換部で構成し、MTF逆変換部に、図1(B)のMTF
変換部12と同様に参照リスト格納部26を設け、復元
された参照リストの識別情報から使用する参照リストを
選択して、MTF逆変換を行う。これ以外の点はデータ
圧縮装置と同じである。
【0033】
【発明の実施の形態】図2は本発明のデータ圧縮装置の
実施形態のブロック図であり、エントロピー符号化に複
数の符号表を使用したことを特徴とする。図2におい
て、データ圧縮装置はブロックソート変換部10、MT
F変換部(先頭移動変換部)12及びエントロピー符号
化部14で構成される。エントロピー符号化部14に
は、この実施形態にあっては、バッドモード符号表(第
2符号表)16−1とグッドモード符号表(第1符号
表)16−2の2つを設けている。
【0034】ブロックソート変換部10は、文字列の入
力データを所定サイズのブロック、例えば64キロバイ
トのブロックに分割した各ブロックごとにブロックソー
ト変換の処理を行う。即ち、ブロック内の文字列を文字
の個数分だけ循環させた2次元文字列を作成し、続いて
辞書順序にソートした後、ソート済みの2次元文字列の
最終文字をソート順に取り出してブロックソート文字列
Lとし、このブロックソート文字列Lのソート済み2次
元文字列における行位置を示す番号Iとの組(I,L)
を次段のMTF変換部12に出力する。
【0035】MTF変換部12は、入力データとして扱
う文字列を構成する全文字例えば256種の文字を全て
含む参照リストを有し、ブロックソート変換部10より
出力されたブロックソート文字列Lの先頭文字から順番
に、参照リスト上の登録位置を示す符号(番号)に変換
する。この参照リスト上の登録位置を示す符号への変換
が済むと、変換済みのリスト上の文字を先頭に移動して
次の文字変換を行う。MTF変換部12より出力される
参照リスト上の登録位置を示す符号は、中間符号列とし
てエントロピー符号化部14に与えられる。エントロピ
ー符号化部14は符号表を使用し、MTF変換部12よ
り渡された中間符号列についてエントロピー符号化を行
う。このエントロピー符号化としては、例えば静的ハフ
マン符号化を行う。
【0036】本発明のエントロピー符号化部14にあっ
ては、この実施形態にあってはバッドモード符号表16
−1とグッドモード符号表16−2の2つをもってお
り、ブロックソート変換部10より出力されるソート済
みの文字列Lの不連続部分を検出すると、自動的にバッ
ドモード符号表16−1を選択したエントロピー符号化
を行う。
【0037】そして不連続部分を検出してバッドモード
符号表16−1を使用したエントロピー符号化を行った
後、所定ブロック数の符号化を行うと、グッドモード符
号表16−2に切り替えてエントロピー符号化を行う。
図3は、ブロックソート変換部10からブロックごとの
処理で出力されるブロックソート文字列Lの一例であ
り、この場合、先頭文字と最終文字が同じ類似した文字
列が3つのグループA,B,Cに分かれて生成されてい
る。このようなグループA,B,Cの局所的な類似文字
列に対し、各グループの境界部分が不連続部分となる。
【0038】図4(A)は、適当な英文テキストをブロ
ックソートした後にMTFした場合の巡回文字列、MT
F出力及び参照リストであり、図4(B)に参照リスト
初期値abcd・・・xyzと、それぞれの位置を示す
番号00〜25を示す。図4(A)において、グループ
Aは、「he」で始まる文字列でソートされている。次の
グループBは、「rt」で始まる文字列でソートされてい
る。このようなブロックソートされた巡回文字列をMT
Fした後の出力は、グループAの最後の循環文字列が出
力0となり、次のグループBの先頭の循環文字列の出力
が19となっている。このことから参照リストを用いた
MTF後の出力が、急に大きな値を持つところが不連続
面となる。尚、図4(A)は、アルファベット26文字
に限定しているが、実際には、8ビットの入力文字を扱
うことから、出力は0〜255の範囲の値をとる。
【0039】この不連続部分では予測が外れ易く、MT
F変換部12における割当符号として効率のよい符号、
即ちビット数の少ない0付近に片寄った符号割当てがで
きなくなるため、符号割当ての効率が低下している。そ
こで本発明にあっては、グループA,グループB,グル
ープCの先頭の文字列については、不連続部分にあるこ
とから、それぞれバッドモード符号表16−1を選択し
てエントロピー符号化を行う。
【0040】バッドモード符号表16−1からグッドモ
ード符号表16−2への切り替えは、例えば不連続部分
の検出時点からの処理ブロック数をカウントして切り替
える。図3の実施形態にあっては、不連続部分を検出し
て先頭の文字列のエントロピー符号化をバッドモード符
号表16−1の選択で行ったならば、次のブロックの文
字列についてはグッドモード符号表16−2の選択に切
り替える。
【0041】即ち、不連続部分を検出してバッドモード
符号表16−1によるエントロピー符号化を1ブロック
分行ったら、次のブロックからはグッドモード符号表1
6−2によるエントロピー符号化に切り替える。この不
連続部分でバッドモード符号表16−1に切り替えてか
らグッドモード符号表16−2に切り替えるまでの処理
ブロック数の閾値THは、必要に応じて適宜に定めるこ
とができる。
【0042】一方、グッドモード符号表16−2からバ
ッドモード符号表16−1への切り替えは、グッドモー
ド符号表16−2の最大符号長の終端部分に設けている
バッドモード移行フラグをエントロピー符号化の際に割
り当てたときに自動的に移行する。ここでバッドモード
符号表16−1とグッドモード符号表16−2の詳細を
説明する。まずグッドモード符号表16−2は、エント
ロピー符号化を行う際の出やすい文字と出にくい文字の
符号割当ビット数が大きく異なるように符号割当てを行
っており、例えば図4の構造を有する。
【0043】図5は、レベル0からレベル16までの1
7段階の階層構造をもっており、黒点が接点であり、接
点に対し左側がビット0、右側がビット1となり、接点
で分かれた枝の先の葉となる○印の中に図示の番号で示
す符号が割り当てられている。ここでレベル0側に位置
する出やすい文字の符号割当てにおける最小ビットは1
ビットとなっている。尚、接点に対するビット0,1の
割り付けは、逆であってもよい。
【0044】これに対しレベル16側の出にくい文字に
対する符号割当ては10進で最大255であることか
ら、最大16ビットとなっている。更にレベル16の最
終符号「255」と同じ接点をもつ別の枝にはバッドモ
ード移行フラグ15がセットされている。このため、図
5のグッドモード符号表を使用したエントロピー符号化
を行っているときに、図3に示したような各グループの
境界となる不連続部分での符号化が行われると、MTF
変換により得られた中間コードは、グッドモード符号上
でバッドモード移行フラグ15の割当てを受けて自動的
にバッドモード符号表16−1に移行する。
【0045】バッドモード符号表16−1は、図6に示
すように、エントロピー符号化において出やすい文字と
出にくい文字の符号割当てのビット数があまり変わらな
い符号割当てを行っている。例えば図6のバッドモード
符号表にあっては、レベル0〜9の階層構造について、
符号割当てをレベル7の最小7ビットからレベル9の最
大9ビットについて符号割当てを行っている。
【0046】このため図6のグッドモード符号表にあっ
ては、図5のグッドモード符号表のように予測が外れた
場合に符号のビット長が極端に大きくなることはない
が、逆に予測が当たってもそれほど符号ビット長が短く
なることもない。この結果、不連続部分におけるエント
ロピー符号化の符号量の極端な増加を抑えることが可能
となる。図7は、図2の実施形態におけるエントロピー
符号化部14における符号化処理のフローチャートであ
る。図6において、まずステップS1で、データストリ
ームとなる文字列の入力データの処理が全て終了したか
否かの文字の終了の有無をチェックしている。文字終了
でなければステップS2に進み、MTF変換部12から
出力される中間符号列の1文字を入力する。
【0047】次にステップS3で、処理ブロック数Nを
インクリメントしている。処理ブロック数Nは、初期状
態はN=0にクリアされており、1ブロック分処理する
ごとにカウントアップされる。続いてステップS4に進
み、ブロックソートされた最終文字列Lが図3のような
局所的に類似する各グループから別のグループに移る不
連続部分か否かチェックする。
【0048】この不連続部分か否かの判別は、最初のブ
ロックについては不連続部分と認識してステップS5に
進む。処理の途中のブロックについては、グッドモード
符号表16−2を使用したエントロピー符号化の場合、
不連続部分では図4のグッドモード符号表のように自動
的にバッドモード移行フラグ15の割当てが行われるこ
とで、ステップS5側に移行する。
【0049】もちろん、不連続部分の検出としてはブロ
ックソート変換部10より出力されるブロックソート文
字列の先頭文字と最終文字をブロックごとに判別し、例
えば図3のように異なった文字に変化したときに不連続
部分と判断して、ステップS5側のバッドモードに移行
するようにしてもよい。ステップS4で不連続部分と判
別されてステップS5に移行すると、まず処理ブロック
数NをN=1にセットし、ステップS6で1ブロック分
の文字列即ちMTF変換された符号列について、バッド
モード符号表16−1を使用したエントロピー符号化い
わゆるバッドモード符号化を行う。
【0050】続いてステップS1に戻り、ステップS2
で次のブロックの文字列を入力し、ステップS3で処理
ブロック数Nを1つカウントアップする。続いてステッ
プS4で不連続部分か否かチェックし、不連続部分でな
ければステップS7で、不連続部分を検出してからの処
理ブロック数が予め定めた閾値THより小さいか否かチ
ェックする。
【0051】このフローチャートにあっては、閾値TH
を例えばTH=1にセットしている。このため、不連続
部分を認識してバッドモード符号化を行った次のブロッ
クで処理ブロック数NはN=2となっているため、処理
ブロック数Nは閾値THより大きいことからステップS
8に進み、グッドモード符号表16−2に切り替えたエ
ントロピー符号化いわゆるグッドモード符号化を行う。
【0052】このような処理をステップS1で文字終了
となるまで繰り返す。その結果、図3のような入力文字
列に対するブロックソート文字列については、グループ
A,B,Cのような局所的に同じ種類が挟まっている部
分についてはグッドモード符号表を使用したエントロピ
ー符号化を行う。これに対しグループA,B,Cの境界
となる不連続部分の最初の1ブロック分の文字列につい
ては、バッドモード符号表16−1を使用したバッドモ
ード符号化を行う。このためグッドモード符号表16−
2を使用した符号化ではMTF変換された中間符号列に
対する符号割当てのビット長が極端に大きくなったもの
が、バッドモード符号表16−1の使用で抑えられ、不
連続部分での予測外れがあっても、効率のよい符号割当
てができる。
【0053】そして不連続部分を過ぎて予測が合ってい
る同じ種類が集まった所謂連続部分については、再びグ
ッドモード符号表16−2に戻すことで、MTF変換に
よる0側に片寄った符号割当てに適した短いビット長の
効率のよい符号割当てが実現できる。図8は、図7のエ
ントロピー符号化でバッドモード符号化からグッドモー
ド符号化に切り替えるための閾値THを決定するための
フローチャートである。
【0054】図7のエントロピー符号化にあっては、バ
ッドモード符号化からグッドモード符号化に切り替える
閾値THをTH=1と固定的に決めているが、このバッ
ドモードからグッドモードへの切り替えは、処理対象と
なるデータの性質により変動することから、エントロピ
ー符号化による符号量が最小となるような最適な切り替
えのための処理ブロック数の閾値THを決定する。
【0055】図8の閾値THを決定する処理の基本的な
アルゴリズムは、例えば図3のようなブロックソート文
字列を例にとると、例えばグループAにおけるブロック
ソート文字列をL1,L2,・・・Lnとすると、この
n個のブロックソート文字列についてバッドモード符号
表16−1からグッドモード符号表16−2に切り替え
るための処理ブロック数iをi=1,2,3,・・・n
と切り替えて、それぞれエントロピー符号化を行い、そ
れぞれにおける全符号量を求める。そして、最小符号量
となるブロック数iを閾値THとする。この閾値THの
決定は別のグループB,Cについても同様にして行い、
グループごとの閾値THを決めておく。
【0056】図8のフローチャートについて、閾値TH
の決定処理を説明すると次のようになる。まずステップ
S1で、切替ブロック数iをi=0とし、ステップS2
〜S9において、閾値THの決定のために使用するデー
タを対象に、図7に示したと同じグッドモードとバッド
モードを切り替えたエントロピー符号化を行う。この場
合、ステップS8における閾値TH(i)はバッドモー
ドからグッドモードへの切替ブロック数i=0,1,
2,3,・・・に対応して、TH(i)=1,・・・n
と変化する。
【0057】最初の処理にあっては、i=0に対応して
TH(0)=0であることから、必ずステップS7のバ
ッドモード符号化を行う。1回目のエントロピー符号化
が済むと、ステップS2からステップS10に進み、i
=0におけるトータル符号量P[i]を計算する。続い
てステップS11で、切替ブロック数iが最大値を超え
たか否かチェックし、超えていなければステップS12
で1つカウントアップし、再びステップS2〜S9のバ
ッドモード符号化とグッドモード符号化による最初と同
じデータを対象にエントロピー符号化を行う。
【0058】このときi=1であることから、ステップ
S8の閾値TH(i)=2となっており、先頭から2つ
のブロックについてはステップS7バッドモード符号化
が行われ、3ブロック目からはステップS9のグッドモ
ード符号化が行われる。そして符号化が済むと、ステッ
プS10でi=1におけるトータル符号量P[i]を計
算する。
【0059】以上の処理をステップS11で切替ブロッ
ク数iが最大値例えばnを超えるまで繰り返し、i=0
〜nの各々についてのトータル符号量P[0]〜P
[n]が求まった段階でステップS13に進み、最小符
号量を与える切替ブロック数iを閾値THとする。図8
の閾値THの決定処理は、実際に入力データの変換を行
いながら、例えば図3のような最初のグループAの変換
処理において最適値THを決定した後、それ以降の処理
に、決定した閾値THを適用すればよい。また、予め準
備された典型的なデータを対象に図8の処理を行って最
適な閾値THを求め、これを実際のデータ処理に使用す
るようにしてもよい。
【0060】図9は図2のエントロピー符号化部14に
よる複数の符号表の選択の他の実施形態であり、この実
施形態にあっては、グッドモード符号表を複数設けたこ
とを特徴とする。例えば図9のように、ブロックソート
文字列が類似するグループA,B,Cの不連続部分につ
いては図3の実施形態の場合と同様、例えば不連続部分
に入ってから1ブロック目をバッドモード符号表16−
1で符号化し、次の2ブロック目からはグッドモード符
号表による符号化を行う。
【0061】この2ブロック目からのグッドモード符号
化について、図8の場合にはブロックソート文字列の先
頭2文字に対応して2種類の第1グッドモード符号表1
6−2と第2グッドモード符号表16−3を設けてい
る。この第1グッドモード符号表16−2と第2グッド
モード符号表16−3は、例えばグループAを例にとる
と、グッドモード符号化に切り替えた第2ブロック目以
降の各文字列の先頭2文字について、先頭1文字は同じ
「a」であることから、グッドモード符号化への切り替
えを維持し、次の2文字目「b」については第1グッド
モード符号表16−2を選択した符号化を行い、また2
文字目「c」については第2グッドモード符号表16−
3を使用した符号化を行う。
【0062】次のグループB,Cについても、グッドモ
ードに移行した場合には各ブロックのブロックソート文
字列の2文字目により、第1グッドモード符号表16−
2と第2グッドモード符号表16−3を選択した符号表
の使い分けを行っている。図9の実施形態はグッドモー
ド符号化に移行した際の先頭2文字による複数種類のグ
ッドモード符号表の使い分けを例にとっているが、同様
に先頭からの3文字,4文字というように複数文字が異
なった場合についてグッドモード符号表を準備し、使い
分けを行うようにしてもよい。
【0063】図10は、図2のデータ圧縮装置で変換さ
れた符号列を入力して元の文字列を復元する本発明のデ
ータ復元装置のブロック図である。このデータ復元装置
は、エントロピー復号化部18,MTF逆変換部22及
びブロックソート逆変換部24で構成される。エントロ
ピー復号化部18は図2のエントロピー符号化部14と
同様、バッドモード符号表16−1とグッドモード符号
表16−2を備え、エントロピー符号化された符号列を
入力してMTF符号列となる中間符号列を復号する。M
TF逆変換部22は、エントロピー復号化部18で復号
された中間符号列としてのMTF符号列を入力し、ブロ
ックソート文字列Lとそのソート位置番号Iの組でなる
(I,L)を復号する。ブロックソート逆変換部24は
MTF逆変換部22からの出力(I,L)を入力し、元
の入力文字列Sを復元する。
【0064】エントロピー復号化部18に使用するバッ
ドモード符号表16−1は例えば図6の内容をもち、ま
たグッドモード符号表16−2は例えば図5の内容をも
ち、両者の切り替えは閾値THにより行われる。この切
り替えのためのブロック数の閾値THは固定的に例えば
TH=1としてもよいし、図8の処理で決定された最適
な閾値THをデータ復元装置側にセッティングして切り
替えるようにしてもよい。
【0065】図11は、図10のデータ復元装置におけ
るエントロピー復号化部18の復元処理のフローチャー
トである。まずステップS1で処理対象とする符号の終
了の有無をチェックしており、ステップS2で1ブロッ
ク分の符号列を入力し、ステップS3で符号列の処理ブ
ロック数Nを1つインクリメントする。続いてステップ
S4で不連続部分か否かチェックし、もし不連続部分で
あれば、ステップS5でN=1として、ステップS6の
バッドモード符号表を用いたバッドモード復号化を行
う。バッドモード復号化は、最初のブロックの符号列の
復号化及び、復号化の途中における不連続部分を検出し
た場合の最初のブロックの復号化については、必ず行わ
れる。
【0066】バッドモード復号化を行って次のブロック
の処理に進み、ステップS4で不連続部分でなかった場
合には、ステップS7で処理ブロック数Nが閾値TH以
下か否かチェックする。閾値TH以下であれば、ステッ
プS6のバッドモード復号化を行う。閾値THを超えた
場合にはステップS8に進み、グッドモード符号表に切
り替えたグッドモード復号化を行う。以下同様に、不連
続部分が発生するごとにバッドモード復号化に切り替
え、所定ブロック数を処理すると再びグッドモード復号
化に戻った処理を繰り返す。
【0067】図12は、本発明のデータ圧縮装置の他の
実施形態のブロック図であり、この実施形態にあって
は、MTF変換に使用する参照リストを複数準備し、局
所的な領域、即ち図3に示した各グループA,B,Cご
とに分けて参照リストを使用するようにしたことを特徴
とする。図12において、この実施形態のデータ圧縮装
置は、ブロックソート変換部10、MTF変換部12及
びエントロピー符号化部14で構成される。ブロックソ
ート変換部10は図2の実施例と同じであり、文字列の
入力データを例えば64キロバイトのブロックに分割し
た各ブロックごとに、ブロック内の文字列をその個数分
だけ左に巡回させて2次元文字列を作成し、これを辞書
順序にソートした後に、最終文字をソート順に取り出し
たブロックソート文字列Lに変換する。
【0068】同時に、ソートされた2次元文字列の中の
現文字列の行位置を示す番号Iを出力する。即ちブロッ
クソート変換部10はブロックソート文字列(I,L)
を出力する。MTF変換部12は、処理対象とする構成
文字を全て含む参照リストを使用し、ブロックソート変
換部10からのブロックソート文字列の先頭文字から順
番に、参照リスト上の登録位置を示す符号に変換する。
この変換と同時に、変換に使用した文字をリスト先頭に
移動して次の文字変換のための参照リストの更新を行
う。
【0069】図12の実施形態にあっては、MTF変換
部12で使用する参照リストをブロックソート変換部1
0から得られるブロックソート文字列が類似する局所領
域ごとに複数もっており、この複数の参照リストは参照
リスト格納部26に格納されている。例えば、データ圧
縮装置で処理する文字種を256種とすると、参照リス
ト格納部26には256種の各文字に対応した256個
の参照リストが予め格納されている。
【0070】ここで文字の種類をi=0〜255とする
と、参照リストYはY(0)〜Y(255)の256種
類が準備されている。例えば説明を簡単にするため文字
種がアルファベット26文字であったとすると、文字a
〜zのそれぞれごとに参照リストY(a)〜Y(z)が
準備されている。文字aの参照リストY(a)はアルフ
ァベット26文字を辞書順序でソートしたもので、先頭
位置に文字aが位置する Y(a)=a,b,c,d,・・・・x,y,z となっている。次の文字Bの参照リストY(B)は、 Y(b)=b,a,c,d,・・・・x,y,z となっている。以下同様にして各文字ごとに参照リスト
が準備され、最後の文字Zについては Y(z)=z,a,b,c,・・・・x,y となる。
【0071】図13は、図12のMTF変換部12及び
参照リスト格納部26の機能ブロック図である。まず参
照リスト格納部26は、256種の各文字に対応した参
照リストY(0)〜Y(255)を格納しており、各リ
ストを選択するためのエントリは、レジスタ28に入力
リストLとして格納されたMTF変換を行おうとするブ
ロックソート文字列Lの先頭文字を使用する。
【0072】したがって、レジスタ28に変換対象とな
る入力リストLがセットされると、その先頭文字の文字
コードiにより参照リスト格納部26のエントリが指定
され、対応する参照リストY(i)をレジスタ30に読
み出す。MTF符号変換部32はレジスタ30の参照リ
ストY(i)を使用し、レジスタ28の入力リストLの
先頭文字から順番にMTF符号変換部32で参照リスト
Y(i)上の位置を示す符号(先頭からの距離)に変換
し、レジスタ34に変換した文字列符号語を中間符号と
して出力する。
【0073】再び図12を参照するに、MTF変換部1
2で変換されたブロックソート文字列のMTF符号列は
エントロピー符号化部14に与えられ、可変長符号に変
換される。エントロピー符号化部14には符号表16が
設けられており、MTF符号列の各符号単位に変換表1
6を参照して符号語に変換する。このエントロピー符号
化部14としては、動的ハフマン等を用いたスプレイス
符号化を行うことが望ましい。もちろん、静的ハフマン
による符号化であってもよい。
【0074】図14は、図12のMTF変換部12によ
る変換処理のフローチャートである。図14において、
まずステップS1で、MTF変換部12で使用する参照
リスト格納部26の全ての参照リストの初期化を行う。
この初期化は、以前のデータストリームの処理で使用し
た参照リストが更新されて最初と異なっている場合があ
ることから、これを予め設定した初期状態に戻す処理で
ある。
【0075】図12の実施形態にあっては、ステップS
1の参照リストの初期化処理は一連のデータストリーム
の処理を開始する最初の段階でのみ行い、ブロック分割
後の各ブロック処理の途中では初期化は行っていない。
これに対し図27に示した従来のデータ圧縮装置のMT
F変換部112にあっては、1つのブロックの変換処理
が終了するごとに参照リストを元に戻す初期化処理を行
っている。
【0076】続いてステップS2で、全ブロックの処理
の終了の有無をチェックした後、ステップS3で、最初
のブロックについてブロックソート変換部10で変換さ
れたブロックソート文字列を入力する。次にステップS
4でデータがあれば、ステップS5でブロックソート文
字列分のデータを入力し、ステップS6で、先頭文字
により参照リストY(i)を選択する。
【0077】続いてステップS7で、選択した参照リス
トY(i)を使用してブロックソート文字列の先頭文字
から順番にリスト上の登録位置の符号に変換するMTF
変換処理を行う。もちろん参照リストY(i)は、各文
字をリスト上の登録位置に変換するごとに、変換に使用
した文字をリストの先頭に移動するリストの更新を行っ
ている。
【0078】ステップS7で、ブロックソート文字列の
MTF符号列への変換が済むと、ステップS8で、その
時点の参照リストY(i)を参照リスト格納部26に書
き込んでリストの更新を行う。続いてステップS4に戻
ってデータの有無をチェックし、データがなければ再び
ステップS2を経由してステップS3に戻り、次のブロ
ックソート文字列を入力し、ステップS4〜S8の処理
により、入力したブロックソート文字列の先頭文字によ
る参照リストの選択によるMTF変換を行い、これを全
ブロックが終了するまで繰り返す。
【0079】このようなブロックソート文字列の先頭文
字により参照リストを選択し、更に1つのブロックの変
換が済んだら参照リスト格納部26に書き戻して更新
し、次に同じ先頭文字が得られた場合には、更新済みの
同じ参照リストを使用することで前のブロックによるM
TFの更新参照リストを後続する同じ先頭文字をもつブ
ロックのMTF変換に反映させることができる。
【0080】例えば図3のような局所的なグループA,
B,Cのブロックソート文字列が得られている場合に
は、例えばグループAの第1番目のブロックソート文字
列の先頭文字Aによる参照リストの選択で、この文字列
のMTF変換が行われ、その間に更新された参照リスト
は再び参照リスト格納部26に反映される。したがっ
て、2番目の同じ先頭文字aで参照リストを選択した際
には前のブロックで更新済みの参照リストを使用するこ
ととなり、MTF変換の際の文字の先頭移動により参照
リストの中の構成文字は先頭付近に殆ど片寄っており、
2回目以降における参照リストの登録位置の変換符号を
ビット数の少ない0付近に大きく片寄らせることができ
る。
【0081】またグループAからグループBに文脈が大
きく変化した不連続部分については、不連続部分の先頭
のブロックソート文字列の先頭文字bによって、先頭文
字bをリスト先頭にもつ対応する選択リストが選択され
るため、不連続部分の先頭ブロックの先頭文字のMTF
符号は全て0とすることができ、ブロック先頭文字の符
号化効率を大幅に引き上げることができる。
【0082】図15は、図12のMTF変換部12より
出力される符号コードのフォーマットの説明図である。
図12のMTF変換部12にあっては、ブロックソート
文字列の先頭文字により参照リスト格納部26から対応
する参照リストを選択してMTF変換を行っているが、
どの参照リストを使用したかは復号側では判断すること
ができない。
【0083】そこで図16のように、MTF変換部12
からの符号フォーマットとして原文字列Sのソート行番
号Iを示すソート位置フィールド36、MTF変換で使
用した参照リストの選択情報Pを格納するリスト情報フ
ィールド38、更に循環最終文字列MTF符号列Lを格
納する符号フィールド40で構成する。リスト情報フィ
ールド38のビット長は、256文字種に対応して使用
する参照リストの数を256とすると、8ビットのフィ
ールドを準備すればよい。
【0084】図16はMTF変換部11より出力される
符号フォーマットの他の実施形態であり、この実施形態
にあっては、データ圧縮装置側で出現した文字の出現頻
度、即ち256分の文字の出現頻度の情報を格納する頻
度情報フィールド42を新たに設けている。頻度情報フ
ィールド42には、下側に拡大して示すように、256
文字文の出現頻度情報F0,F1,・・・F255の格
納領域が設けられている。
【0085】各出現頻度情報F0〜F255のビットサ
イズは、1回に処理するブロック長で決まる。例えばブ
ロック長を256バイトとすると、ブロックソート文字
列で同じ文字が並んだ場合の最大頻度が256になるこ
とから8ビット表現となり、これが256文字分あるこ
とから、 256文字×8ビット=256文字×1バイト=256
バイト となる。
【0086】またブロック長を64キロバイトとする
と、ブロックソート文字列が全て同じ文字で並んだとき
の最大頻度が65536となることから16ビット表現
となり、これが256文字分あることから、 256文字×16ビット=256文字×2バイト=51
2バイト の頻度情報フィールド42を必要とする。
【0087】図16のフォーマットに従って符号側に伝
送された頻度情報フィールド42の256文字分の出現
数の情報F0〜F255は、データ復元装置における参
照リストの作成に使用される。即ち出現頻度が0であれ
ば、その出現数0の文字に対応する参照リストは使用し
ていないことから、データ復元装置で出現数0の文字の
参照リストを準備する必要はない。
【0088】したがって、出現頻度情報の内の0でない
有効な頻度をもつ文字についてのみ参照リストを準備す
ればよい。これによってデータ復元装置で準備する参照
リストを必要なものに絞ることができ、データ復元装置
で使用する参照リスト格納部のサイズを低減することが
できる。図17は、MTF変換部12の出力フォーマッ
トの他の実施形態であり、この実施形態にあっては、頻
度情報フィールド42を有効無効識別情報フィールド4
2−1と有効頻度情報フィールド42−2に分けたこと
を特徴とする。有効無効識別情報フィールド42−1に
は256文字のそれぞれを1ビット対応とした256ビ
ットのビットマップが格納されており、文字が出現すれ
ばビット1、文字が出現しなければビット0となる。
【0089】次の頻度情報フィールド42−2には、有
効無効識別情報フィールド42−1の中のビット1即ち
文字が出現している文字についてのみの出現数F1〜F
255を格納している。例えば図17(B)のように、
有効無効識別フィールド42−1のビットマップが「1
01・・・・101]であったならば、ビット1と有効
であることを示している文字の出現数F0,F2,・・
・F253,F255のみが有効頻度情報フィールド4
2−2に格納される。これによって有効頻度情報フィー
ルド42−2の全体的なビット長を大幅に低減すること
が可能となる。
【0090】図18は、図12のMTF変換部12にお
ける参照リスト選択の他の実施形態の機能ブロック図で
ある。図13の参照リスト選択にあっては、MTF変換
を行おうとするブロックソート文字列の先頭文字コード
の全ビット、具体的には8ビット情報から参照リスト格
納テーブル45の中の参照リストを選択するようにして
いるが、図18の実施形態にあっては、先頭文字コード
の例えば先頭4ビットから参照リスト格納部45の参照
リストを選択するようにしたことを特徴とする。
【0091】例えば1文字が8ビットで表現されていた
とすると、レジスタ44に格納された8ビットの先頭文
字コードの内の上位4ビットb7〜b4により、参照リ
スト格納部45のエントリを指定している。このため参
照リスト格納部45のエントリは上位4ビットで16種
類の先頭文字を表現できることから、256÷16=1
6により、16エントリをもち、したがって参照リスト
は16個準備される。即ち、16文字を1グループとし
て参照リストY(0〜15)、Y(16〜31)・・・
Y(239〜255)の16個の参照リストが準備され
る。
【0092】図18は先頭文字コードの上位4ビットを
例にとっているが、逆に下位4ビットで参照リストを準
備してもよい。また任意の複数ビットで対応する参照リ
ストも準備してもよいことは勿論である。図19は、図
18の先頭文字コードの上位4ビットで256文字の参
照リストを16分割した場合のMTF符号列の出力フォ
ーマットである。図19(A)は、図18の16分割さ
れた参照リストを選択してMTF変換を行った場合の使
用参照リストの識別情報Bを送るリスト情報フィールド
38、及び16文字グループ分の出現数G0〜G18を
送る頻度情報フィールド42を設けたものである。
【0093】この場合の使用リスト情報Pを格納するリ
スト情報フィールド38は、16種類表現できればよい
ことから4ビットとなる。また頻度情報フィールド42
については、16文字単位の出現数G0〜G5の各々に
つき8ビット×16文字=16バイトとなり、これが1
6分割されていることから、16バイト×16=256
バイトあればよい。
【0094】図19(B)は、頻度情報フィールド42
を有効無効識別フィールド42−1と16文字グループ
分の出現数の有効頻度情報フィールド42−2に分けた
ものであり、有効無効識別情報の中のビット1に対応す
るグループの出現数のみを格納し、これによって識別情
報フィールド42のビット長を短くすることができる。
【0095】図20は、図12のデータ圧縮装置で変換
された符号列から元の文字列を復元するためのデータ復
元装置のブロック図である。このデータ復元装置は、エ
ントロピー復号化部48、MTF逆変換部52及びブロ
ックソート逆変換部24で構成される。エントロピー復
号化部48は符号表50を使用し、例えば動的ハフマン
等のスプライス符号化に対応した復号化処理を行う。
【0096】MTF逆変換部52は参照リスト格納部5
4を備えており、参照リスト格納部54にはデータ復元
装置で復元する全文字種に対応した参照リスト、例えば
256文字種の場合には256個の参照リストが予め格
納されている。MTF逆変換部52は、図12のデータ
圧縮装置からの受信符号列に、例えば図15のフォーマ
ットに示したように圧縮側で使用した参照リストの選択
情報Pが含まれている。
【0097】そこで、参照リストの選択情報Pに基づい
て参照リスト格納部54の中から参照リストを選択し、
MTF逆変換を行う。また図16,図17のように圧縮
側からのフォーマットの中に出現文字の頻度情報が含ま
れていた場合には、頻度が0でない1以上の有効頻度を
もつ文字についてのみ参照リストを準備して、参照リス
ト格納部54に格納すればよい。
【0098】ブロックソート逆変換部24は、MTF逆
変換部52で変換されたソート済み最終文字列を入力
し、元のブロック分割された文字列を復元し、これを出
力データとしている。この図20のデータ復元装置にお
けるMTF逆変換部52における参照リストの選択以外
の点は、図34のMTF逆変換と同じになる。図21は
本発明のデータ圧縮装置の他の実施形態であり、図2の
バッドモード符号表16−1とグッドモード符号表16
−2を用いたエントロピー符号化部14に、図12の複
数の参照リストを選択してMTF変換を行うMTF変換
部12及び参照リスト格納部26を組み合わせたことを
特徴とする。これによってMTF変換における文脈の不
連続部分での符号効率と、同じく不連続部分におけるエ
ントロピー符号化における符号効率の低下を改善でき
る。
【0099】図22の実施形態は、図20のデータ圧縮
装置の出力符号を復元するデータ復元装置の実施形態で
ある。図22のデータ復元装置にあっては、図10のバ
ッドモード符号表16−1とグッドモード符号表16−
2を備えたエントロピー復号化部18に、図20の参照
リスト格納部54の中から対応する参照リストを選択し
てMTF逆変換を行うMTF逆変換部52を組み合わせ
たことを特徴とする。
【0100】図23は図12のMTF変換部12の代わ
りにトランスポーズ変換部56を設けた実施形態であ
る。図12のMTF変換部12は、ブロックソート文字
列の各文字を参照リストの先頭からの位置の符号に変換
した後に、変換により使用したリスト上の文字を先頭に
移動する。これに対し図23のトランスホース変換部5
6は、ブロックソート文字列の各文字を参照リストの先
頭からの位置の符号に変換した後に、変換に使用したリ
スト上の文字を1文字前に移動するトランスポーズ変換
を行っている。
【0101】即ち、ブロックサート文字列の先頭文字に
よって参照リスト格納部26の中の対応する参照リスト
を選択するようにしたことで、データによっては文脈の
変化に急激に反応するMTF変換よりも、順次反応する
トランスポーズ変換の方がよい場合があり、このような
性質をもつ文脈についてはトランスポーズ変換部56に
よる変換処理を行う。
【0102】トランスポーズ変換部56に対しては、M
TF変換の場合と同様、参照リスト格納部26が設けら
れる。参照リスト格納部26には、例えば変換対象とす
る256文字種の各文字ごとに対応して256種類の参
照リストが予め登録されている。もちろん図18のよう
に、先頭文字コードの上位4ビットあるいは適宜のビッ
トによる分割数のリスト格納であってもよい。
【0103】図24は、図23のトランスポーズ変換部
56による変換機能のブロック図である。図24にあっ
ては、説明を簡単にするため、図33の場合と同様、ブ
ロックソート変換により入力リストL=“caraa
b”がレジスタ62に渡されている。また入力リストL
の先頭文字「c」に対応して参照リストY(c)=“c
abr”が準備されている。
【0104】トランスポーズ変換部56は入力リストL
の先頭文字「c」を取り込み、参照リスト上の先頭から
の位置「0」を出力コードとする。続いて変換に使用し
たリスト上の文字「c」を1つ前に移動するが、この場
合は先頭にあることからリストの変更はない。2番目の
文字「a」については、参照リスト上の1番目にあるこ
とから、出力コード「1」に変換する。そして変換に使
用したリスト上の文字「a」を1つ前に移し、次の参照
リストをacbrとする。以下同様な処理を繰り返すこ
とにより、トランスポーズ符号はレジスタ64上に符号
列=“013003”としてセットされ、次段のエント
ロピー符号化部14に引き渡される。
【0105】図25は、図23のトランスポーズ変換を
行うデータ圧縮装置に対応したデータ復元装置であり、
符号表50を備えたエントロピー復号化部48、参照リ
スト格納部54を備えたトランスポーズ逆変換部66及
びブロックソート逆変換部24で構成される。エントロ
ピー復号化部48は、図20のMTF逆変換の場合のも
のと同じである。トランスポーズ逆変換部66は、圧縮
側から送られてくる参照リストの識別情報に基づいて参
照リスト格納部54の中の対応する参照リストを選択し
て、トランスポーズ符号列をブロックソート文字列に逆
変換する。
【0106】図26は図25のトランスポーズ逆変換部
66の機能ブロックであり、図24で変換された符号列
“013003”がレジスタ72に入力符号としてセッ
トされる。この場合、圧縮側からの参照リスト識別情報
に従った参照リストの選択で、参照リストY=“cab
r”がレジスタ70にセットされている。トランスポー
ズ逆変換部66はレジスタ72の先頭符号を入力し、
そのときの参照リスト上の0番目即ち先頭の文字「c」
を復元する。
【0107】復号が済むと、復元に使用した文字をリス
トの先頭位置にするが、この場合は先頭位置にあるので
リストの変更は行わない。次に符号「1]を入力し、参
照リスト上の1番目の文字「a]を復元する。以下同様
に、符号の復元とリストの入れ替えを繰り返し、最終的
にレジスタ74に復元リストとして復元リスト=“ca
raab”を生成することができる。
【0108】尚、本発明のデータ圧縮装置及びデータ復
元装置は、ソフトウェアによる圧縮復元のアルゴリズム
として実現してもよいし、ハードウェアとして実現して
もよい。また文字コードのみのとき、適宜のデータ例え
ばビデオデータ等の圧縮復元に使用してもよいことは勿
論である。
【0109】
【発明の効果】以上説明してきたように本発明によれ
ば、ブロックソート法により、関係のある文脈部分を符
号化する際の不連続部分についてエントロピー符号化に
使用する符号表を類似する文脈の性質に合わせて使い分
けることで、不連続部分での符号効率の低下を最小限に
抑えることができ、ブロックソート法における圧縮効率
を高めることができる。
【0110】また文脈の変化による不連続部分はブロッ
クサイズを大きくすることで回避しているが、本発明に
よれば、不連続部分での圧縮効率が改善できるため、少
ないブロックサイズであっても十分なブロックソートに
よる圧縮効率を得ることができる。また本発明のデータ
圧縮及び復元装置にあっては、ブロックソート法におけ
る中間段階でのMTF変換について、局所的な類似部分
の文脈の性質に応じた参照リストを選択して使用するこ
とで、文脈が変わる不連続部分についても、変わった文
脈に対応した参照リストが選択されて不連続部分での符
号化効率の低下が抑えられ、ブロックサイズを大きくす
ることなく不連続部分によるMTF変換の際の符号化効
率の低下を抑制し、全体としてのデータ圧縮効率を高め
ることができる。
【0111】またMTF変換に代えて文脈の性質に応じ
た参照リストを使用することでトランスポーズ変換とす
ることもでき、文脈の性質によってはトランスポーズ変
換によってMTF変換より高いデータ圧縮効率を実現す
ることができる。
【図面の簡単な説明】
【図1】本発明の原理説明図
【図2】複数の符号表を用いてエントロピー符号化する
本発明のデータ圧縮装置のブロック図
【図3】図2で使用する符号表の種別選択と切替ブロッ
ク数の決め方の説明図
【図4】英文テキストを例にとったブロックソートによ
る巡回文字列、MTF出力及び参照リストの説明図
【図5】図3のグッドモード符号表の説明図
【図6】図3のバッドモード符号表の説明図
【図7】図2のエントロピー符号化処理のフローチャー
【図8】図7でバッドモードからグッドモードに切り替
えるブロック数を決定する処理のフローチャート
【図9】先頭からの2文字で2種のグッドモード符号表
を選択する説明図
【図10】図2で得られた符号列から元の文字列を復元
する本発明のデータ復元装置のブロック図
【図11】図2のエントロピー復号化処理のフローチャ
ート
【図12】複数の参照リストから使用リストを選択して
MTF変換を行う本発明のデータ圧縮装置のブロック図
【図13】図12の先頭文字による参照リストの選択機
能のブロック図
【図14】図12のMTF変換のフローチャート
【図15】図12のMTF変換符号のフォーマット説明
【図16】参照リストの使用頻度を伝送するMTF変換
符号のフォーマット説明図
【図17】参照リストの使用頻度に加えて使用の有無を
伝送するMTF変換符号のフォーマット説明図
【図18】先頭文字コードの上位4ビットによる参照リ
ストの選択機能のブロック図
【図19】図18について参照リストの使用頻度情報を
付加したフォーマット説明図
【図20】図12のデータ圧縮装置の符号列から文字列
を復号するデータ復元装置のブロック図
【図21】図2と図12を組み合わせたデータ圧縮装置
のブロック図
【図22】図9と図20を組み合わせたデータ復元装置
のブロック図
【図23】図12のMTF変換をトランスポーズ変換に
置き換えたデータ圧縮装置のブロック図
【図24】図23のトランスポーズ変換部の機能のブロ
ック図
【図25】図23のデータ圧縮装置の符号列から文字列
を復元するデータ復元装置のブロック図
【図26】図25のトランスポーズ逆変換部の機能ブロ
ック図
【図27】ブロックソート法を採用した従来のデータ圧
縮装置のブロック図
【図28】ブロックソート法の処理機能の説明図
【図29】ブロックソートにおける循環文字列の生成と
辞書順序ソートの説明図
【図30】ソート最終文字列からの入力文字列の復元す
る原理の説明図
【図31】ソートされた2次元文字列とこれを右に一回
巡回した2次元文字列との対応関係の説明図
【図32】図31の原理に従った各文字毎の復元処理の
説明図
【図33】図27のMTF変換の機能ブロック図
【図34】MTF逆変換の機能ブロック図
【図35】ブロックソートされた最終文字列の不連続部
分の説明図
【符号の説明】
10:ブロックソート変換部 12:MTF変換部(先頭移動変換部) 14:エントロピー符号化部 16,16−11〜16−13:符号表 16−1:バッドモード符号表(第2符号表) 16−2,16−3:グッドモード符号表(第1符号
表) 18,48:エントロピー復号化部 22:MTF逆変換部 24,52:ブロックソート逆変換部 26,45,54:参照リスト格納部 28,30,34,44,46:レジスタ 32:MTF符号変換部 36:ソート位置フィールド 38:リスト情報フィールド 40:符号フィールド 42:頻度情報フィールド 42−1:有効無効識別フィールド 42−2:有効頻度情報フィールド 56:トランスポーズ変換部 66:トランスポーズ逆変換部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 吉田 茂 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 徳世 雅永 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (56)参考文献 M.Burrows and D. J.Wheeler,A Block− sorting Lossless D ata Compression Al gorithm,SRC Resear ch Report,米国,Digit al Systems Researc h Center,124 (58)調査した分野(Int.Cl.7,DB名) H03M 7/40

Claims (24)

    (57)【特許請求の範囲】
  1. 【請求項1】文字列の入力データを所定サイズのブロッ
    クに分割した各ブロック毎に、ブロック内の文字列を文
    字の個数分だけ循環させ新たな2次元文字列を作成して
    辞書順序にソートした後に、該2次元文字列の最終文字
    をソート順に取り出してブロックソート文字列として出
    力するブロックソート変換部と、 前記ブロックソート文字列の構成文字を全て含む参照リ
    ストを有し、前記ブロックソート文字列の先頭文字から
    順番に、前記参照リスト上の登録位置を示す符号に変換
    すると共に、変換済みの文字をリスト先頭に移動して次
    の文字の変換を行い、前記ブロックソート文字列を前記
    参照リスト上の登録位置を示す中間符号列に変換して出
    力する先頭移動変換部と、 入力する文字列の変化に対応する符号表を複数備え、文
    字列の変化に応じて対応する符号表を用いて、前記先頭
    移動変換部から入力した中間符号列をエントロピー符号
    化するエントロピー符号化部と、を設けたことを特徴と
    するデータ圧縮装置。
  2. 【請求項2】請求項1記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記複数の符号表の切替
    タイミングを、前回と今回のブロックソート文字列の先
    頭文字が変化して不連続点を検出した時点の第1切替タ
    イミングと、前記不連続点の検出後に同一先頭文字のブ
    ロックの処理数が所定値に達した時点の第2切替タイミ
    ングとすることを特徴とするデータ圧縮装置。
  3. 【請求項3】請求項2記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記複数の符号表とし
    て、 出やすい文字と出にくい文字の符号割り当てビット数が
    大きく異なる第1符号表と、 出やすい文字と出にくい文字の符号割り当てビット数が
    あまり変わらない第2符号表と、を有し、 前記不連続点を検出した前記第1切替タイミングで前記
    第1符号表から第2符号表に切り替え、不連続点の検出
    からの処理ブロック数が所定値に達した前記第2切替タ
    イミングで前記第2符号表から第1符号表に切り替える
    ことを特徴とするデータ圧縮装置。
  4. 【請求項4】請求項3記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記ブロックソート文字
    列の先頭文字が同一となるn個のブロックを対象に、不
    連続点の検出で第2符号表に切り替えてから第1符号表
    に切り替えるまでの切替ブロック数を変させながらエ
    ントロピー符号化を行って全て符号量を計算し、最小符
    号量となる前記切替ブロック数を前記第2切替タイミン
    グを決める処理ブロック数の最適値に決定することを特
    徴とするデータ圧縮装置。
  5. 【請求項5】請求項4記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記切替ブロックの最適
    値を、入力文字列の変換を行いながら決定し、後続する
    ブロックの符号表の切替えに使用することを特徴とする
    データ圧縮装置。
  6. 【請求項6】請求項4記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記切替ブロックの最適
    値を、典型的なデータを対象に入力文字列の変換を行い
    ながら予め決定し、全てのブロックの符号表の切替えに
    使用することを特徴とするデータ圧縮装置。
  7. 【請求項7】請求項3記載のデータ圧縮装置に於いて、
    前記エントロピー符号化部は、前記ブロックソート文字
    列の先頭からの複数文字分の組合せに応じて前記第1符
    号表を複数設け、前記不連続点の検出後に第2符号表か
    ら第1符号表に切り替えた場合、ブロックソート文字列
    の先頭から複数文字の組合せに応じた第1符号表を選択
    することを特徴とするデータ圧縮装置。
  8. 【請求項8】文字列の入力データを所定サイズのブロッ
    クに分割した各ブロック毎に、ブロック内の文字列を文
    字の個数分だけ循環させ新たな2次元文字列を作成して
    辞書順序にソートした後に、該2次元文字列の最終文字
    をソート順に取り出してブロックソート文字列とし、 前記ブロックソート文字列の構成文字を全て含む参照リ
    ストを有し、前記ブロックソート文字列の先頭文字から
    順番に、前記参照リスト上の登録位置を示す符号に変換
    すると共に、変換済みの文字をリスト先頭に移動して次
    の文字の変換を行い、前記ブロックソート文字列を前記
    参照リスト上の登録位置を示す中間符号列に変換して出
    力し、 入力する文字列の変化に対応する符号表を複数備え、前
    記先頭移動変換部から中間符号列を入力してエントロピ
    ー符号化し、該エントロピー符号化された符号列から元
    の文字列を復号するデータ復元装置に於いて、 入力する文字列の変化に対応する符号表を複数備え、エ
    ントロピー符号化された前記符号列を入力して前記中間
    符号列を復号するエントロピー復号化部と、 前記参照リストを使用して前記ブロックソート文字列を
    復元する先頭移動逆変換部と、 前記先頭移動逆変換部で変換されたブロックソート文字
    列から元の文字列を復元するブロックソート逆変換部
    と、を備えたことを特徴とするデータ復元装置。
  9. 【請求項9】請求項8記載のデータ復元装置に於いて、
    前記エントロピー復号化部は、符号表の切替タイミング
    を、前回と今回のブロックソート文字列の先頭文字が変
    化したことで不連続点を検出した時点の第1切替タイミ
    ングと、前記不連続点の検出後に同一先頭文字のブロッ
    クを処理数が所定値に達した時点の第2切替タイミング
    とすることを特徴とするデータ復元装置。
  10. 【請求項10】請求項9記載のデータ復元装置に於い
    て、前記エントロピー復号化部は、前記複数の符号表と
    して、 出やすい文字と出にくい文字の符号割り当てビット数が
    大きく異なる第1符号表と、 出やすい文字と出にくい文字の符号割り当てビット数が
    あまり変わらない第2符号表と、を有し、 前記不連続点を検出した前記第1切替タイミングで前記
    第1符号表から第2符号表に切り替え、不連続点の検出
    からの処理ブロック数が所定値に達した前記第2切替タ
    イミングで前記第2符号表から第1符号表に切り替える
    ことを特徴とするデータ復元装置。
  11. 【請求項11】請求項10記載のデータ復元装置に於い
    て、前記エントロピー復号化部は、前記ブロックソート
    文字列の先頭文字が同一となるn個のブロックを対象
    に、不連続点の検出で第2符号表に切り替えてから第1
    符号表に切り替えるまでの切替ブロック数を変換させな
    がらエントロピー符号化を行って全て符号量を計算し、
    最小符号量となる前記切替ブロック数を前記第2切替タ
    イミングを決める処理ブロック数の最適値に決定するこ
    とを特徴とするデータ復元装置。
  12. 【請求項12】請求項11記載のデータ復元装置に於い
    て、前記エントロピー復号化部は、前記切替ブロックの
    最適値を、入力文字列の変換を行いながら決定し、後続
    するブロックの符号表の切替えに使用することを特徴と
    するデータ復元装置。
  13. 【請求項13】請求項11記載のデータ復元装置に於い
    て、前記エントロピー復号化部は、前記切替ブロックの
    最適値を、典型的なデータを対象に入力文字列の変換を
    行いながら予め決定し、全てのブロックの符号表の切替
    えに使用することを特徴とするデータ復元装置。
  14. 【請求項14】請求項10記載のデータ復元装置に於い
    て、前記エントロピー復号化部は、前記ブロックソート
    文字列の先頭からの複数文字分の組合せに応じて前記第
    1符号表を複数設け、前記不連続点の検出後に第2符号
    表から第1符号表に切り替えた場合、ブロックソート文
    字列の先頭から複数文字の組合せに応じた第1符号表を
    選択することを特徴とするデータ復元装置。
  15. 【請求項15】文字列の入力データを所定サイズのブロ
    ックに分割した各ブロック毎に、ブロック内の文字列を
    文字の個数分だけ循環させ新たな2次元文字列を作成し
    て辞書順序にソートした後に、該2次元文字列の最終文
    字をソート順に取り出してブロックソート文字列として
    出力するブロックソート変換部と、 前記ブロックソート文字列の構成文字を全て含む複数の
    参照リストを格納した参照リスト格納部と、 前記複数の参照リストの1つを選択し、前記ブロックソ
    ート文字列の先頭文字から順番に、前記参照リスト上の
    登録位置を示す符号に変換すると共に、変換済みの文字
    をリスト前方に移動して次の文字の変換を行い、前記ブ
    ロックソート文字列を前記参照リスト上の登録位置を示
    す中間符号列に変換して出力する中間符号変換部と、 入力する文字列の変化に対応する符号表を備え、前記中
    間符号変換部から使用した参照リストの識別情報と中間
    符号列を入力してエントロピー符号化するエントロピー
    符号化部と、を設けたことを特徴とするデータ圧縮装
    置。
  16. 【請求項16】請求項15記載のデータ圧縮装置に於い
    て、前記中間符号変換部は、前記ブロックソート文字列
    の先頭からの1又は複数の文字によって前記参照リスト
    格納部の対応する参照リストを選択することを特徴とす
    るデータ圧縮装置。
  17. 【請求項17】請求項15記載のデータ圧縮装置に於い
    て、前記中間符号変換部は、前記参照リスト上の登録位
    置を示す符号に変換済みの文字を、リスト先頭位置に移
    動して次の文字の変換を行うことを特徴とするデータ圧
    縮装置。
  18. 【請求項18】請求項15記載のデータ圧縮装置に於い
    て、前記中間符号変換部は、前記参照リスト上の登録位
    置を示す符号に変換済みの文字を、リスト上の1つ前の
    位置に移動して次の文字の変換を行うことを特徴とする
    データ圧縮装置。
  19. 【請求項19】請求項15記載のデータ圧縮装置に於い
    て、前記中間符号変換部は、最初のブロックの変換で選
    択されて更新された参照リストを、後続するブロックに
    つき連続して使用することを特徴とするデータ圧縮装
    置。
  20. 【請求項20】文字列の入力データを所定サイズのブロ
    ックに分割した各ブロック毎に、ブロック内の文字列を
    文字の個数分だけ循環させ新たな2次元文字列を作成し
    て辞書順序にソートした後に、該2次元文字列の最終文
    字をソート順に取り出してブロックソート文字列として
    出力し、 前記ブロックソート文字列の構成文字を全て含む複数の
    参照リストを有し、その中の1つを選択し、前記ブロッ
    クソート文字列の先頭文字から順番に、前記参照リスト
    上の登録位置を示す符号に変換すると共に、変換済みの
    文字をリスト前方に移動して次の文字の変換を行い、前
    記ブロックソート文字列を前記参照リスト上の登録位置
    を示す中間符号列に変換し、 入力する文字列の変化に対応する符号表を備え、前記中
    間符号列とその変換に使用した参照リスとの識別情報を
    入力してエントロピー符号化し、該エントロピー符号化
    された符号列から元の文字列を復元するデータ復元装置
    に於いて、 入力する文字列の変化に対応する符号表を備え、エント
    ロピー符号化された前記符号列を入力して前記中間符号
    列及び参照リストの識別情報を復号するエントロピー復
    号部と、 前記ブロックソート文字列の構成文字を全て含む複数の
    参照リストを格納した参照リスト格納部と、 前記参照リスト格納部からの前記識別情報で指定される
    参照リストを選択して前記ブロックソート文字列を復元
    する先頭移動逆変換部と、 前記先頭移動逆変換部で変換されたブロックソート文字
    列から元の文字列を復元するブロックソート逆変換部
    と、 を備えたことを特徴とするデータ復元装置。
  21. 【請求項21】請求項20記載のデータ復元装置に於い
    て、前記中間符号逆変換部は、前記ブロックソート文字
    列の先頭からの1又は複数の文字によって前記参照リス
    ト格納部の対応する参照リストを選択することを特徴と
    するデータ復元装置。
  22. 【請求項22】請求項20記載のデータ復元装置に於い
    て、前記中間符号逆変換部は、前記参照リスト上の登録
    位置を示す符号に変換済みの文字を、リスト先頭位置に
    移動して次の文字の変換を行うことを特徴とするデータ
    復元装置。
  23. 【請求項23】請求項20記載のデータ復元装置に於い
    て、前記中間符号逆変換部は、前記参照リスト上の登録
    位置を示す符号に変換済みの文字を、リスト上の1つ前
    の位置に移動して次の文字の変換を行うことを特徴とす
    るデータ復元装置。
  24. 【請求項24】請求項20記載のデータ復元装置に於い
    て、前記中間符号逆変換部は、最初のブロックの変換で
    選択されて更新された参照リストを、後続するブロック
    につき連続して使用することを特徴とするデータ復元装
    置。
JP02224596A 1996-02-08 1996-02-08 データ圧縮装置及びデータ復元装置 Expired - Fee Related JP3258552B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02224596A JP3258552B2 (ja) 1996-02-08 1996-02-08 データ圧縮装置及びデータ復元装置
US08/684,045 US5717393A (en) 1996-02-08 1996-07-19 Apparatus for data compression and data decompression

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02224596A JP3258552B2 (ja) 1996-02-08 1996-02-08 データ圧縮装置及びデータ復元装置

Publications (2)

Publication Number Publication Date
JPH09214353A JPH09214353A (ja) 1997-08-15
JP3258552B2 true JP3258552B2 (ja) 2002-02-18

Family

ID=12077419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02224596A Expired - Fee Related JP3258552B2 (ja) 1996-02-08 1996-02-08 データ圧縮装置及びデータ復元装置

Country Status (2)

Country Link
US (1) US5717393A (ja)
JP (1) JP3258552B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075470A (en) * 1998-02-26 2000-06-13 Research In Motion Limited Block-wise adaptive statistical data compressor
US6195024B1 (en) 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6624761B2 (en) * 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
JP2000201080A (ja) * 1999-01-07 2000-07-18 Fujitsu Ltd 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
US6604158B1 (en) * 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) * 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
IT1308456B1 (it) * 1999-04-26 2001-12-17 Olivetti Lexikon Spa Dispositivo per comprimere/decomprimere stringhe di bit
US20030191876A1 (en) * 2000-02-03 2003-10-09 Fallon James J. Data storewidth accelerator
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US6751624B2 (en) 2000-04-04 2004-06-15 Globalscape, Inc. Method and system for conducting a full text search on a client system by a server system
DE10037004B4 (de) * 2000-07-29 2004-01-15 Sms Demag Ag Walzgerüst für bandkantenorientiertes Verschieben der Zwischenwalzen in einem 6-Walzen-Gerüst
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) * 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US7386046B2 (en) * 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
JP2003022192A (ja) * 2001-07-09 2003-01-24 Hitachi Ltd ブロックソート圧縮アルゴリズムを用いた圧縮プログラミング方法、該圧縮プログラミング方法を用いたプロセッサシステム及び情報配信サービス方法
US20040101205A1 (en) * 2002-11-27 2004-05-27 General Electric Company Position coding system and method
WO2007063612A1 (ja) * 2005-11-30 2007-06-07 Sharp Kabushiki Kaisha 動画像符号化装置、動画像復号装置
US7975263B2 (en) * 2006-01-10 2011-07-05 Intel Corporation Method and apparatus for generating run time profiles for program compilation
US7439887B2 (en) * 2007-02-13 2008-10-21 Seiko Epson Corporation Method and apparatus for GIF decompression using fixed-size codeword table
CN102142845A (zh) * 2010-01-28 2011-08-03 北京四维图新科技股份有限公司 电子地图中地名字符串的压缩编码方法及装置
JP6065914B2 (ja) * 2012-09-21 2017-01-25 富士通株式会社 制御プログラム、制御方法および制御装置
US8902086B1 (en) * 2013-09-11 2014-12-02 Allegiance Software, Inc. Data encoding for analysis acceleration
US10666985B1 (en) * 2018-11-18 2020-05-26 Sony Corporation Sub-block based entropy coding for image coding
CN109639285B (zh) * 2018-12-05 2023-06-13 北京安华金和科技有限公司 一种基于有限块排序压缩提高bzip2压缩算法速度的方法
US11227520B1 (en) * 2020-08-20 2022-01-18 Microsoft Technology Licensing, Llc Derivative-based encoding for scanning mirror timing
CN116610265B (zh) * 2023-07-14 2023-09-29 济南玖通志恒信息技术有限公司 一种商务信息咨询系统的数据存储方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796003A (en) * 1984-06-28 1989-01-03 American Telephone And Telegraph Company Data compaction
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US5379036A (en) * 1992-04-01 1995-01-03 Storer; James A. Method and apparatus for data compression
US5239298A (en) * 1992-04-17 1993-08-24 Bell Communications Research, Inc. Data compression
US5384568A (en) * 1993-12-02 1995-01-24 Bell Communications Research, Inc. Data compression
KR100209877B1 (ko) * 1994-11-26 1999-07-15 윤종용 복수개의 허프만부호테이블을 이용한 가변장부호화장치 및 복호화장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
M.Burrows and D.J.Wheeler,A Block−sorting Lossless Data Compression Algorithm,SRC Research Report,米国,Digital Systems Research Center,124

Also Published As

Publication number Publication date
JPH09214353A (ja) 1997-08-15
US5717393A (en) 1998-02-10

Similar Documents

Publication Publication Date Title
JP3258552B2 (ja) データ圧縮装置及びデータ復元装置
JP3541930B2 (ja) 符号化装置及び復号化装置
JP3278297B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5867114A (en) Method and apparatus for performing data compression
US20050030208A1 (en) Method and apparatus for adaptive data compression
JP3397431B2 (ja) データ圧縮方法および装置ならびにデータ復元方法および装置
GB2277179A (en) Data compression using small dictionaries with application to network packets
US5594435A (en) Permutation-based data compression
EP0638214A1 (en) Method for data compression having an improved encoding algorithm which utilizes a token stacking technique
JPS6356726B2 (ja)
JP3231105B2 (ja) データ符号化方式及びデータ復元方式
Lin A hardware architecture for the LZW compression and decompression algorithms based on parallel dictionaries
JP2536422B2 (ja) デ―タ圧縮装置及びデ―タ復元装置
Tsai et al. An improved LZW algorithm for large data size and low bitwidth per code
JP3130324B2 (ja) データ圧縮方式
Kwong et al. A statistical Lempel-Ziv compression algorithm for personal digital assistant (PDA)
GB2360915A (en) Run length compression encoding of selected bits of data words
JPH06161705A (ja) データ符号化方式及びデータ復元方式
EP0494038A2 (en) Run-length encoding in extensible character sets
JPH05152971A (ja) データ圧縮・復元方法
JP3038233B2 (ja) データ圧縮及び復元装置
US20080001790A1 (en) Method and system for enhancing data compression
JP2999561B2 (ja) データ圧縮及び復元装置
Nakano et al. Highly efficient universal coding with classifying to subdictionaries for text compression
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: 20011106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071207

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081207

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091207

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees