JP2003502930A - ランレングス符号化/復号化が組み込まれているlzwデータ圧縮装置と方法 - Google Patents

ランレングス符号化/復号化が組み込まれているlzwデータ圧縮装置と方法

Info

Publication number
JP2003502930A
JP2003502930A JP2001504594A JP2001504594A JP2003502930A JP 2003502930 A JP2003502930 A JP 2003502930A JP 2001504594 A JP2001504594 A JP 2001504594A JP 2001504594 A JP2001504594 A JP 2001504594A JP 2003502930 A JP2003502930 A JP 2003502930A
Authority
JP
Japan
Prior art keywords
code
run
data
count
lzw
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.)
Pending
Application number
JP2001504594A
Other languages
English (en)
Other versions
JP2003502930A5 (ja
Inventor
シー.クーパー アルバート
Original Assignee
ユニシス コーポレーション
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 ユニシス コーポレーション filed Critical ユニシス コーポレーション
Publication of JP2003502930A publication Critical patent/JP2003502930A/ja
Publication of JP2003502930A5 publication Critical patent/JP2003502930A5/ja
Pending 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
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • 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
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

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)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

(57)【要約】 ランレングス符号化/復号化が組み込まれているLZWデータ圧縮/伸張装置と方法が開示されている。LZWデータ圧縮器では、文字ランが入力文字ストリームの中に出現したことが判断され、ランカウントが圧縮器コードカウンタ内の既存コードに加算されて、ランカウントを表す圧縮器コード出力を生成する。LZWデータ伸張器は、伸張器コードカウンタ内の既存コードを、受け取られた圧縮コードから減算して、ランカウントを回復する。別の特徴によれば、大きな長さのランは、選択された事前決定定数をランカウントから減算することによって、ランカウントをシステム最大コード以下に減少することで処理される。この減少ランカウントは、選択された事前決定定数を表す予約コードが前に置かれて、圧縮器によって出力される。受け取られた予約コードとその後に置かれた減少カウントに応答して、伸張器は、受け取られた予約コードに対応する選択された事前決定定数を、受け取られた減少カウントに加算して、オリジナルランカウントを回復する。

Description

【発明の詳細な説明】
【0001】関連出願との相互参照 米国特許出願第09/264,269号(Cooper)、1999年3月8
日出願、発明の名称「ランレングス符号化が組み込まれているデータ圧縮方法と
装置(Data Compression Method and Appar
atus with Embedded Run−Length Encodi
ng)」。
【0002】 米国特許出願第09/300,810号(Cooper)、1999年4月2
7日出願、発明の名称「数学的ラン処理を使用したランレングス符号化が組み込
まれているデータ圧縮方法と装置(Data Compression Met
hod and Apparatus with Embedded Run−
Length Encoding Using Mathematical R
un Processing)」。
【0003】 上記特許出願第09/264,269号および第09/300,810号は、
引用により本明細書の一部になっている。
【0004】発明の背景 1. 発明の分野 本発明はLZWデータ圧縮と伸張システムに関し、具体的には、ランレングス
符号化(エンコード)と復号化(デコード)がLZW圧縮と伸張処理内に組み込
まれているLZWデータ圧縮と伸張システムに関する。
【0005】
【0006】 2. 従来技術の説明 Abraham Lempel教授とJacob Ziv教授は、今日ではそ
の使用が普及しているLZデータ圧縮と伸張システムの理論的基礎を築いた。両
教授の独創的な論文の2つは、IEEE Transactions on I
nformation Theory, IT−23−3, May 1977
, pp. 337−343とIEEE Transactions on I
nformation Theory, IT−24−5, Septembe
r 1978, pp. 530−536に掲載されている。LZWとして知ら
れ、V.42 bisモデム圧縮と伸張に関する標準として採用されているデー
タ圧縮と伸張システムは、幅広く使用されており、米国特許第4,558,30
2号(Welch)、1985年12月10日特許交付に記載されている。LZ
Wは、GIFとTIFF画像(イメージ)通信プロトコルで使用されている圧縮
と伸張標準として採用されている。
【0007】 ランレングス符号化(run−length encoding RLE)
と名付けられた別タイプのデータ圧縮と伸張は、文字およびランの長さを示す圧
縮コードを得ることによって反復的文字ランを圧縮している。従って、RLEは
、同一文字の長いストリングを符号化するのに効果的になっている。例えば、R
LEは、データファイルの先頭に入れておくことができる長いブランクのシーケ
ンスを圧縮するのに効果的になっている。また、RLEは、ランド・スカイ(l
and−sky)画像のスカイ部分におけるように、画像が同じ値をもつ連続ピ
クセルの長いランを含んでいるような画像圧縮にも効果的になっている。
【0008】 従来技術では、ランレングス符号化は、以下に示す米国特許に例示されている
ようにLZシステムと結合されている。すなわち、特許第4,929,946号
(O’Brien他)1990年5月29日特許交付、特許第4,971,40
7号(Hoffman)1990年11月20日特許交付、特許第4,988,
998号(O’Brien)1991年1月29日特許交付、特許第5,247
,638号(O’Brien他)1993年9月21日特許交付、特許第5,3
89,922号(Seroussi他)1995年2月14日特許交付、および
特許第5,861,827号(Welch他)1999年1月19日特許交付。
【0009】 いくつかの従来システムでは、ランレングス符号化は、データをランレングス
符号器(エンコーダ)に入力し、次にランレングス符号化データをLZベースの
システムに入力することによってLZシステムと結合されている。このようなア
ーキテクチャでは、ランレングス符号器は圧縮器(compressor)のフ
ロントエンド(前端側)で利用され、ランレングス復号器(デコーダ)は伸張器
(decompressor)の出力側で利用されている。このようなシステム
には、機器、費用、制御オーバヘッドおよび処理時間が増加するという欠点があ
る。そのようなシステムは、特許第4,971,407号と特許第4,988,
998号に例示されている。
【0010】 特許第5,389,922号のLZWベースのシステムでは、圧縮器からのあ
る種の出力コードは、反復的入力データ文字のランが出現したとき除去されてい
る。紛失したコードは、伸張器の入力側に特殊なラン強化エンジン(run e
nhancement engine)を利用することによって再生成されてい
る。
【0011】 特許第5,861,827号のシステムの圧縮器では、部分的ストリングWと
文字Cが見つかったとき、新しいストリングは、CをストリングPW上の延長文
字(extension character)としてストアされている。ここ
で、Pは、最後に伝送された出力圧縮コードの中で伝達されたストリングである
。この圧縮アルゴリズムによると、文字のランは、その長さに関係なく、2つの
圧縮コードで符号化されている。このシステムの伸張器は、圧縮器との同期を保
つために特殊なコードプロセス(正式に認められていない)を使用している。
【0012】 特許第4,929,946号のシステムでは、ランは、あらかじめ決めた予約
参照値(reserved reference values)セットの中の
1つに続けて、そのランの反復カウントを送信することによって示されている。
予約参照値は、予約参照値の後に続く反復カウントの中のビット数が減少される
ように定義されている。検出されるすべてのランの圧縮ストリーム内に予約参照
値を使用する要件は、圧縮を減少するのに役立っている。さらに、このシステム
は、見かけ上は、比較的小さな長さのランを処理することに制限されている。特
許第5,247,638号に記載されている内容は、特許第4,929,946
号の記載内容と類似している。
【0013】 データ文字ランの符号化を行う別のデータ圧縮システムは、前記特許出願第0
9/264,269号に開示されている。この特許出願の圧縮器では、ランは、
連続的に数字が大きくなって行くセグメントがランに存在するかどうかを判断す
るために、入力を連続的に先読み(ルックアヘッド)することによって処理され
ている。
【0014】 データ文字ランの符号化を行う、さらに別のデータ圧縮システムは、前記特許
出願第09/300,810号に開示されている。この特許出願の圧縮器では、
ランは、ランに存在する連続的に数字が大きくなって行くセグメントに対応する
それぞれの出力コードを、ランの長さから数学的に判断することによって処理さ
れている。
【0015】 本発明の目的は、ランレングス符号化と復号化をLZWデータ圧縮/伸張シス
テムに組み込むことであり、そこでは、ランの存在を伸張器に知らせるために特
殊な予約コードを送信しないで済むようにしている。本発明の別の目的は、長さ
が非常に大きいランの処理を可能にすることである。
【0016】発明の概要 本発明によれば、入力データ文字のランがいつ出現したかを判断することによ
って、およびラン文字カウントを圧縮器コードカウンタからの既存コード値と結
合して、ランカウントを表す圧縮器出力を生成することによって、周知のLZW
データ圧縮/伸張システムの機能が強化される。伸張器は、伸張器コードカウン
タ内の既存コード値を使用して、圧縮器出力からランカウントを回復する。本発
明の別の特徴では、非常に大きな長さのランは、選択された事前決定プロセスに
よってランカウントを減少し、選択された事前決定プロセスを表す予約コード(
reserved code)を前に置いて、減少ランカウントを出力すること
によって処理されている。予約コードを受け取ると、それに応答して、伸張器は
、受け取った予約コードに対応する事前決定プロセスを適用し、受け取った減少
ランカウントを事前決定プロセスに従って増加することによってオリジナルラン
カウントを回復する。
【0017】好適実施形態の説明 図1を参照して説明すると、図1には、入力端11から入力された入力データ
文字のストリームを圧縮し、対応する圧縮コードのストリームを出力端12から
出力するデータ圧縮器10が示されている。圧縮器10はワーキングレジスタ(
working registers)を具備し、これらのレジスタは、カレン
ト文字レジスタ(Current Character register)1
3、カレントマッチレジスタ(Current Match register
)14、コードサイズレジスタ(Code Size register)15
、ルックアヘッドバッファ(Look−Ahead Buffer)16、カウ
ントレジスタ(Count register)17、最大コードレジスタ(M
axcode register)20、文字一時レジスタ(Characte
r Temp register)21、および予約コードレジスタ(Rese
rved Code register)22と名付けられている。圧縮器10
は、さらに、以下で説明するように、本発明に従ってラン文字と非ラン文字を処
理するために使用されるコード値を順次に生成するためのコードカウンタ(Co
de Counter)23を含んでいる。
【0018】 圧縮器10は、さらに、以下で詳しく説明するように、カレント文字レジスタ
13内の文字とルックアヘッドバッファ16内の文字との比較を行って、ランが
始まろうとしているかどうかを判断するためのルックアヘッド比較ロジック(l
ook−ahead comparison logic)24を含んでいる。
圧縮器10は、さらに、本発明に従ってラン処理を実行するとき使用されるカウ
ント減少テーブル(Count Reduction Table)25を含ん
でいる。カウント減少テーブル25には、以下で説明するように、リミット25
が設けられている。カウント減少テーブル25とリミット26の詳細は、図2を
参照して以下に説明されている。
【0019】 圧縮器10は、さらに、本発明に従って以下で説明するように、レジスタ17
内のカウント値を、コード減少テーブル25に従って減少するためのカウント減
少ロジック(count reduction logic)27を含んでいる
。さらに、圧縮器10には、以下で説明するように、図3と図4のオペレーショ
ンフローチャートに従って圧縮器10のオペレーションを制御するためのコント
ロール30が含まれている。
【0020】 また、以下で説明するように、圧縮器10と協働して文字ストリングをストア
しておくためのディクショナリ(Dictionary)35も含まれている。
データは、制御バス37の制御下に置かれている双方向データバス36を介して
、圧縮器10とディクショナリ35の間でやりとりされる。
【0021】 さらに、入力端11から受け取られた入力データ文字ストリームを置いておく
ための入力文字バッファ(Input Character Buffer)4
0が含まれている。個々の入力データ文字は、以下に説明するオペレーションに
従って、入力文字バッファ40からバス41を経由して、カレント文字レジスタ
13、カレントマッチレジスタ14およびルックアヘッドバッファ16に入力さ
れる。圧縮器10は、入力文字バッファ40から制御バス42を経由して、入力
データ文字を取得することを制御している。
【0022】 要約して説明すると、圧縮器10のオペレーションは以下の通りである。入力
データ文字は入力文字バッファ40からフェッチされ、それに対して従来のLZ
Wデータ圧縮が行われて、出力端12から圧縮コードストリームが得られる。周
知のように、コードカウンタ23は、ディクショナリ35にストアされている延
長ストリング(extended string)にコード値を割り当てるため
に累進的にインクリメントされる。本明細書では、圧縮器10は、この分野では
当然に理解されるように、可変長コードであるものとして説明されている。コー
ドカウンタ23内のカウントが、最大コードレジスタ20にストアされている最
大カウントまで達すると、レジスタ15内のコードサイズがインクリメントされ
る。LZW圧縮アルゴリズムは、前記特許第4,558,302号に詳しく説明
されている。
【0023】 ルックアヘッドバッファ16とルックアヘッド比較ロジック24を使用して、
連続する入力文字が調べられ、n(例えば、n=3)個のルックアヘッド文字が
カレント文字レジスタ13内の文字と同一であれば、LZWプロセスはランレン
グス符号化に移って文字ランを処理する。ラン内の文字の数は、カレント文字レ
ジスタ13、カウントレジスタ17および文字一時(Temp)レジスタ21を
使用してカウントされる。カウントレジスタ17内のランカウントが、最大コー
ドレジスタ20内の最大コードとコードカウンタ23内の現存コードとの差より
小であるか等しければ、カウントレジスタ17内のランカウントとコードカウン
タ23内の現存コードの和が出力される。さもなければ、ランカウントがシステ
ム最大コードより小であれば、第1予約コードが出力され、その後に続いて、シ
ステム最大コードサイズを使用したランカウントが出力される。ランカウントが
システム最大コードより大か等しければ、カウントは、減少カウントがシステム
最大コード以下になるように、選択された事前決定プロセスによって減少される
。選択された事前決定プロセスに対応する別の予約コードが出力され、その後に
続いて、減少カウントが出力される。
【0024】 ここで説明している実施形態は、説明の便宜上、ASCIIに準拠して実装さ
れたものとして示されている。ASCII環境では、8ビットの文字サイズが使
用され、256文字のアルファベットをサポートしている。可変長コードによる
実装では、コードサイズは9ビットから始まり、コード512、1024、20
48などでは、それぞれ10、11、12ビットといったように順次に増加して
行くことが可能になっている。このようなシステムでは、最大コードサイズは1
2ビットが使用され、最大システムコードは4096になっているのが代表的で
ある。
【0025】 このようなASCII準拠の実装では、予約コードのセットは、最大文字値よ
りも大きくなっていると好都合であり、以下で説明するように、予約コード25
7から始まるようにすると好都合である。以下に説明する実施形態では、第1予
約コードは、予約コード261で終わるように利用されている。従って、ASC
II準拠の実装では、マルチ文字ストリングを表すためのコードカウンタ23か
らの第1利用可能コードは、コード262から始まっている。以上から理解され
るように、周知のように、例えば、12ビットの固定長コード出力に基づく実施
形態を予想することも可能である。
【0026】 図2を参照して説明すると、図2には、図1のカウント減少テーブル25とリ
ミット26の詳細が示されている。カウント減少テーブル25は、複数の選択可
能な事前決定プロセスを定義し、ランカウント値がシステム最大コードより小の
値に、あらかじめ決めた方法で減少されるようにしている。また、カウント減少
テーブル25は、それぞれのプロセスに対応する予約コードも定義している。テ
ーブル25の行50−53の各々は、プロセスの1つを定義している。具体例を
示すと、システム最大コードは212、つまり、4096になっている。例えば、
プロセス50は、212より大か等しいが、2x212より小であるカウント値に対
して選択されている。プロセス50では、テーブルの減少カウント欄に示すよう
に、この範囲にあるランカウントは212だけ減少されている。プロセス50の予
約コードは258である。説明の便宜上、各カウント範囲の上限値は、テーブル
のそのように名付けた欄に10進値で示されている。使用されるパラメータにつ
いては、テーブルから理解されるように、システムによって処理される最大ラン
カウントは、20480文字以下のランに制限されている。さらに、テーブルか
ら理解されるように、このリミットは、テーブルに別の行を追加することだけで
大きくなっていく。
【0027】 カウント減少テーブル25は、ASCII環境で使用されるように設定されて
おり、そこでは、文字は8ビットで表され、文字値は0−255の範囲になって
いる。予約コードは257−261として選択されている。従って、マルチ文字
ストリングを表すための第1利用可能コードは262である。具体例を示すと、
システム最大コードサイズは12ビットであるので、得られるシステム最大コー
ドは4096である。システム最大コード以下のランカウントは、以下で説明す
るように、257の予約コード値で表される形で処理することができる。テーブ
ルの第1行は、そのような関係を示している。
【0028】 引き続き図1を参照して説明すると、従来のLZW処理では、カレント文字レ
ジスタ13、カレントマッチレジスタ14、コードサイズレジスタ15、コード
カウンタ23、およびディクショナリ35が利用されている。本発明によるラン
処理でも、コードカウンタ23が利用されているが、それと共に、ルックアヘッ
ドバッファ16、カウントレジスタ17、最大コードレジスタ22、文字一時(
Temp)レジスタ17、予約コードレジスタ22、ルックアヘッド比較ロジッ
ク24、カウント減少テーブル25、リミット26、およびカウント減少ロジッ
ク27が利用されている。図3と図4のコントロールフローチャートは、圧縮器
10によって実行されるオペレーションの詳細を示している。コントロール30
は、ステートマシンのように、これらのオペレーションの実行を制御する該当回
路を内蔵しているものと考えられている。
【0029】 引き続き図1を参照しながら、図3を参照して説明すると、ブロック60で、
コードカウンタ23は、図2のカウント減少テーブル25の予約コードセットに
示されている予約コードの後に置かれた第1利用可能コードに初期化される。従
って、図示の実施形態では、コードカウンタ23は、262にセットされる。ブ
ロック61では、コードサイズレジスタ15は、開始コードサイズ、例えば、A
SCII準拠の実施形態では、9ビットに初期化される。さらに、最大コードレ
ジスタ20は、コードサイズの対応する最大コードにセットされる。このことか
ら理解されるように、9ビットの最大コードは511である。ブロック60に示
す予約コードとブロック61に示す最大コードは、以下に説明するように、本発
明によるラン処理で利用される。
【0030】 ブロック62では、第1入力文字がフェッチされてカレントマッチレジスタ1
4に入れられ、ブロック63では、次に続く文字がフェッチされてカレント文字
レジスタ13に入れられる。カレントマッチレジスタ14内の値は、カレント文
字レジスタ13内の次の文字と一緒になって、この分野では周知のように、2文
字ストリングを構成している(例えば、特許第4,558,302号を参照)。
【0031】 処理はブロック64から継続され、そこでは、ディクショナリ35がサーチさ
れ、カレント文字で連結されたカレントマッチを構成するストリングがディクシ
ョナリ35にあるかどうかが判断される。ディクショナリサーチプロシージャは
、ブロック64の機能を実行するものとしてこの分野では周知である(例えば、
特許第4,558,302号と特許第5,861,827号を参照)。
【0032】 ブロック64で、ストリングがディクショナリ35内に見つかると、ブロック
64からのYESブランチがとられて、ブロック65に移る。ブロック65では
、カレントマッチレジスタ14の内容は、ストリングが見つかったことを示す標
識を含むように更新される。この分野では周知のように、ストリングはコードが
関連付けられており、一般的に、現在マッチしているストリングのストリングコ
ードはカレントマッチレジスタ14の中にセットされる。ブロック65の機能が
具体的にどのように実装されているかの詳細は周知である(例えば、特許第4,
558,302号と特許第5,861,827号を参照)。現在マッチしている
ストリングでカレントマッチレジスタ14を更新した後、コントロールはブロッ
ク63に戻り、次の入力データ文字がフェッチされて、カレント文字レジスタ1
3に入れられる。このようにして、ブロック63−65で形成されたループは、
入力データ文字ストリームをディクショナリ35にストアされたストリングと比
較し、それとの最長マッチが見つけられる。
【0033】 ブロック64では、現在マッチしているストリングをブロック63でフェッチ
された次の文字と連結した結果として、ディクショナリ35に存在しない延長ス
トリングが得られたときは、ブロック64からのNOブランチがとられて、ブロ
ック66に移ることになる。ブロック66では、ディクショナリ35に見つから
なかったこの延長ストリングはディクショナリに入力され、コードカウンタ23
の現存コードが、このストアされた延長ストリングに割り当てられる。ブロック
66の機能が具体的にどのように実装されているかの詳細は周知である(例えば
、特許第4,558,302号を参照)。
【0034】 処理はブロック67へ進み、そこでは、コードカウンタ23内のコードがテス
トされ、コードサイズの増加が必要であるかどうかが判断される。必要であれば
、処理はブロック68へ進み、そこでは、コードサイズレジスタ15が1だけイ
ンクリメントされる。コードサイズの増加が必要である場合、最大コードレジス
タ20内の値も、新コードサイズに従って増加される。最大コードの値は、新コ
ードサイズのビット数によってサポートされる最大コードまで増加される。例え
ば、10ビットの最大サイズは、最大コードが(210 1)= 1023にな
っている。最大コードレジスタ20内の値は、以下に図4を参照して説明するよ
うに、本発明のラン処理で利用される。ブロック67でコードサイズの増加が必
要でなければ、このブロック68はバイパスされ、処理はブロック69から継続
される。ブロック69では、コードカウンタ23が1だけインクリメントされる
【0035】 処理はブロック70から継続され、そこでは、カレントマッチのコードが、圧
縮器の出力端12から得られた圧縮コードストリームの一部として出力される。
カレントマッチのコードは、カレントマッチレジスタ14から得られる。カレン
トマッチがマルチ文字ストリングであるときは、そのストリングのコードはカレ
ントマッチレジスタ14に置かれており、ブロック64に関して上述したように
、ディクショナリ35に見つかった最長マッチになっている。以上から理解され
るように、ブロック70で出力されるカレントマッチは、シングル文字となるこ
ともできる。このケースでは、出力コードは文字の値である。ブロック70の機
能がどのように実装されているかの詳細は、この分野では周知である(例えば、
特許第4,558,302号と特許第5,861,827号を参照)。
【0036】 処理はブロック74から継続され、そこでは、レジスタ13内のカレント文字
が、カレント文字の後に続く次のn個のルックアヘッド文字と突き合わせテスト
され、これらが同一であるかどうかが判断される。このプロセスは、ルックアヘ
ッドバッファ16の中にフェッチされた該当文字を利用して、ロジック24によ
って実行される。例えば、nは、便宜上、3に等しくセットすることができる。
【0037】 ブロック74では、カレント文字は、カレント文字の後に続く次のn個のルッ
クアヘッド文字と比較され、同一文字のランが始まろうとしているかどうかが判
断される。カレント文字が次のn個のルックアヘッド文字と同一であれば、ブロ
ック74のYESブランチがとられ、ラン処理ブロック75に移ることになる。
ラン処理ブロック75の詳細は、図4に示されている。
【0038】 n個のルックアヘッド文字の1つがカレント文字にマッチ(合致)していなけ
れば、ブロック74のNOブランチがとられ、従来のLZWデータ圧縮処理が続
行される。
【0039】 従って、処理はブロック76から続行され、そこでは、カレントマッチレジス
タ14は、カレント文字レジスタ13内の文字にセットされる。その後、ブロッ
ク77で、現在のカレント文字の後に続く次の入力データ文字がフェッチされ、
カレント文字レジスタ13に入れられる。以上から理解されるように、ブロック
76では、カレントマッチレジスタ14は、前の処理でミスマッチとなった入力
データ文字にセットされる。ブロック76と77の機能がどのように実装されて
いるかの詳細は、この分野では周知である(例えば、特許第4,558,302
号と特許第5,861,827号を参照)。その後、コントロールはブロック6
4に戻り、現在、カレントマッチレジスタ14に置かれているカレントマッチコ
ードと、現在、カレント文字レジスタ13に置かれているカレント文字とを使用
して、新しいLZWデータ圧縮サイクルが開始される。
【0040】 以上から理解されるように、ブロック74と75、ブロック61と68で最大
コード示している個所、およびブロック60で予約コードを示している個所を除
き、図3の残り部分は、標準LZWデータ圧縮処理が行われることを示している
。従って、LZWデータ圧縮のどの公知実装を利用しても、本発明のLZWデー
タ圧縮側面を実現することが可能である。
【0041】 引き続き図1乃至図3を参照しながら、図4を参照して説明すると、図4には
、図3のブロック75でのラン処理の詳細が示されている。ラン処理はブロック
80から開始され、そこでは、カレント文字レジスタ13内の文字が圧縮器10
の出力端12から得られている。ブロック81では、カウントレジスタ17内の
カウントは0にセットされる。処理はブロック82から続けられ、そこでは、レ
ジスタ13内のカレント文字が文字一時(Temp)レジスタ21に格納される
。その後、ブロック83で、カレント文字の後に続く次の文字がフェッチされ、
カレント文字レジスタ13に入れられる。
【0042】 ブロック84では、カレント文字レジスタ13内のフェッチされた文字は、文
字一時(Temp)レジスタ21内の先行文字と比較され、相互が等しいかどう
かが判断される。カレント文字が文字一時(Temp)レジスタ内の文字と等し
ければ、文字ランは継続するので、ブロック84からのYESブランチがとられ
る。しかるに、カレント文字が文字一時(Temp)レジスタ内の文字と等しく
なければ、文字ランは、カレント文字レジスタ13に置かれているミスマッチ文
字で終わっている。ブロック84で、文字ランの終わりが示されたときは、そこ
からNOブランチがとられる。
【0043】 ブロック84からのYESブランチはブロック85に入り、そこでは、カウン
トレジスタ17内のカウントがテストされ、カウントが1だけインクリメントさ
れたとき、カウント減少プロセスで設定されたリミット26以下のままになって
いるかどうかが判断される。リミット26は図2を参照して上述した通りであり
、そこで説明した実装でのリミットは、20480文字に等しくなっている。以
上から理解されるように、このリミットは実装に固有のものであり、図2を参照
して上述したように、別の行をカウント減少テーブル25に追加することだけで
大幅に大きくすることが可能である。
【0044】 Count+1がブロック85でリミット以下であれば、処理はブロック86
から続けられ、そこでは、カウントレジスタ17内のカウントが1だけインクリ
メントされる。従って、カウントレジスタ17内のランカウントは、ブロック8
3でフェッチされたばかりのラン文字で、ブロック84で文字一時(Temp)
レジスタ21内の文字にマッチ(合致)するラン文字をカウントするようにイン
クリメントされる。その後、処理はループに入ってブロック82に戻り、ランの
文字のカウントが続けられる。
【0045】 ブロック81−86では、ランの文字をカウントするためのロジックが実行さ
れる。他のロジック構成を利用してこの機能を実行するようにしても、同じ効果
が得られる。
【0046】 ランがブロック84で終了していたか、あるいは次のカウントがブロック85
でリミットよりも大きくなる場合には、それぞれのNOブランチはブロック90
に進むことになる。ブロック90では、テストが行われ、カウントレジスタ17
内のカウントがコードカウンタ23内のコードを差し引いた最大コードより小で
あるか等しいかどうかが判断される。ブロック90のテストは、ブロック81−
86で設定されたラン文字のカウントを受け入れるだけの十分なカウントが、カ
レントコードサイズでコードカウンタ23に残っているかどうかを判断するため
に行われる。そうであれば、どの特殊な予約コードを使用しなくても、ラン文字
のカウントを伸張器に送って、ラン情報が受信されようとしていることを伸張器
に知らせることができる。
【0047】 従って、ブロック90からのYESブランチがとられてブロック91に移り、
そこでは、カウントレジスタ17内のカウントがコードカウンタ23からのコー
ドに加算され、その結果の値はカウントレジスタ17内にセットされる。その後
、処理はブロック92に移り、そこでは、カウンタレジスタ17内のカウントが
圧縮器10の出力端12から得られる。
【0048】 その後、処理は図3のブロック76に戻り、LZW処理ループに再び入る。
【0049】 ブロック90で、カウントがコードカウンタ内のコードを差し引いた最大コー
ドより大であれば、ブロック90からのNOブランチがとられ、ブロック93に
移る。ブロック93は、ラン文字のカウントが大きすぎて、ブロック91と92
の処理では受け入れられないとき使用される処理への入口である。ブロック93
の後に続く処理は、図2を参照して上述したように、カウント減少テーブル25
に示されているプロシージャを使用する。ブロック93から入った処理では、圧
縮器10は、テーブル25に示されている予約コードの1つを出力することによ
って、ランが出現したことを通知する。
【0050】 従って、ブロック93では、カウントがテストされ、それがシステム最大コー
ドより小であるかどうかが判断される。そうであれば、処理はブロック94へ移
り、そこでは、予約コードレジスタ22は第1予約コード値にセットされる。図
2のテーブル25の1行目に示すように、図示の実施形態の第1予約コードは2
57になっている。
【0051】 ブロック95では、現在予約コードレジスタ22に入っている第1予約コード
値は、圧縮器10の出力端12に現れる。その後、ブロック96で、カウントレ
ジスタ17からのカウントは圧縮器10の出力端12に現れる。圧縮器10は、
システム最大コードサイズを使用してこのカウン値を出力する。上述したように
、最大コードサイズは、開示されている実施形態では、12ビットになっている
。他のビットとコードサイズを利用して本発明を実施しても、同じ効果が得られ
る。ブロック96からの処理は図3のブロック76に戻り、LZW処理ループに
再び入る。
【0052】 ブロック93で、カウントがシステム最大コードより小でないときは、処理は
、その後にブロック98が続くブロック97に入る。ブロック97と98では、
事前決定プロセスは、図2を参照して上述したように、カウントレジスタ17内
のカウントの値に従ってプロセス50−53から選択される。従って、ブロック
97では、図2に示すように、カウントレジスタ17内のカウントは、選択され
た事前決定プロセスによって減少され、減少カウントがシステム最大コードより
小になるようにされる。この減少カウントは、その後、カウンタレジスタ17内
にセットされる。例えば、減少前のカウントが3×212より大か等しく、4×2 12 より小であれば、プロセス52が選択され、そこでは、カウントレジスタ17
内のカウントは3×212だけ減少される。
【0053】 ブロック98では、予約コードレジスタ22は、選択された事前決定プロセス
に対応する予約コード値にセットされる。従って、事前決定プロセス52が選択
されたときは、予約コードレジスタ22は260にセットされる。
【0054】 その後、処理はブロック95と96から続けられ、そこでは、予約コードレジ
スタ22からの予約コードとカウントレジスタ17からのカウントは、ブロック
97と98で処理されたランが出現したことを通知し、そのランカウントを伝え
るために出力される。その後、処理は図3のブロック76に戻り、LZWデータ
処理ループに再び入る。
【0055】 ブロック93−98の処理から理解されるように、非常に大きなランを本発明
のシステムで受け入れることが可能である。図示の具体的実施形態では、事前決
定プロセス53を利用して20479文字ランを受け入れることが可能になって
いる。
【0056】 引き続き図1を参照しながら、図5を参照して説明すると、図5には、入力端
111から入力された圧縮コードのストリームを伸張し、回復されたデータ文字
のストリームを出力端112から出力するデータ伸張器110が示されている。
図から理解されるように、圧縮器10(図1)の出力端12からの圧縮コードス
トリームは、伸張器110の入力端111に入力されると、圧縮器10の入力端
11に入力されたオリジナル入力データ文字ストリームが回復されて、伸張器1
10の出力端112から出力されることになる。
【0057】 伸張器110はワーキングレジスタを具備している。これらのレジスタは、カ
レントコードレジスタ113、先行コードレジスタ(Previous Cod
e register)114、コードサイズレジスタ115、およびカウント
レジスタ117と名付けられている。伸張器110は、さらに、以下で説明する
ように、到来圧縮コードを処理するために使用されるコード値を順次に生成する
ためのコードカウンタ123を含んでいる。以下の説明から理解されるように、
コードカウンタ123は、図1の圧縮器10のコードカウンタ23とロックステ
ップ(lock−step)関係を保っている。
【0058】 また、伸張器110は、データ文字ランを表している到来圧縮コードを処理す
るときに利用されるカウント増加テーブル(Count Increase T
able)125も含んでいる。カウント増加テーブル125の詳細は、図6を
参照して以下に説明されている。また、カウント増加テーブル125と一緒に利
用されて、到来減少カウント値を該当ランカウント値に復元するためのカウント
増加ロジック127も含まれている。カウント増加ロジック127とカウント増
加テーブル125は、図1の圧縮器10のカウント減少ロジック27とカウント
減少テーブル25によって行われるカウント減少とは逆の働きをする。
【0059】 伸張器110には、さらに、以下で説明するように、図7と図8のオペレーシ
ョンフローチャートに従って伸張器110のオペレーションを制御するコントロ
ール130が含まれている。
【0060】 ディクショナリ135は、受け取られた圧縮コード入力に対応するデータ文字
ストリングをストアするために含まれている。伸張器110のオペレーションで
は、ディクショナリ135の内容は、図1の圧縮器10のディクショナリ35の
内容と同一に維持されている。ディクショナリ135は、双方向データバス13
6と制御バス137を介して伸張器110に結合されている。
【0061】 伸張器110には、入力端111から受け取られた入力圧縮コードを置いてお
くための入力コードバッファ140が含まれている。個々の入力コードは、以下
に説明するオペレーションに従って、入力コードバッファ140からバス141
を経由して、カレントコードレジスタ113に入力される。伸張器110は、入
力コードバッファ140から制御バス142を経由して入力コードを取得するこ
とを制御している。
【0062】 要約して説明すると、伸張器110のオペレーションは次の通りである。カレ
ントコードレジスタ113にフェッチされたコードが調べられ、それがコードカ
ウンタ123の現存コードより大であるかどうかが判断される。そうであれば、
入力コードは、コードカウンタ123内の現存コードを、受け取られた入力コー
ドから減算することによって回復されたランカウントを表している。入力カレン
トコードが予約コードと等しければ、次の後続コードがフェッチされ、これはラ
ンカウントである。受け取られたランカウント値は、特定の予約コードの値に従
って処理される。入力データが文字ランを表しているどちらの場合も、文字は先
行コードレジスタ114から取得され、ランカウントは、以下で詳しく説明する
ように取得される。
【0063】 入力カレントコードがコードカウンタ123の現存コードより小か等しければ
、標準LZWデータ圧縮が実行されて、入力カレントコードに対応するデータ文
字ストリングが回復される。延長ストリングは、LZWデータ圧縮の分野では周
知のように、ディクショナリ135にストアされる。
【0064】 引き続き図5を参照しながら、図6を参照して説明すると、図6には、カウン
ト増加テーブル125の詳細が示されている。行150−153に示すように、
ランカウントは、図示のように、受け取られたそれぞれの予約コードに従って図
示の値を受け取られたコードに加算することによって、伸張器110で受け取ら
れた入力コードから回復される。具体的には、テーブル125の行150−15
3は、予約コード258−261を受け取ると、それぞれに応答してカウントが
、それぞれ212、2×212、3×212、または4×212だけ増加されることを示
している。予約コード257に応答して、受け取られたカウントは、以下で詳し
く説明するように、増加されることなく直接に使用される。テーブル125の1
行目は、この関係を示している。
【0065】 図7と図8のコントロールフローチャートは、伸張器110によって実行され
るオペレーションの詳細を示している。コントロール130は、ステートマシン
のように、オペレーションの実行を制御する該当回路を内蔵しているものと考え
られている。
【0066】 引き続き図5と図6を参照しながら、図7を参照して説明すると、ブロック1
60では、コードカウンタ123は、図3のブロック60に関連して上述したの
と同じように初期化される。ブロック161では、コードサイズレジスタ115
は、図3のブロック61に関連して上述したように、開始コードサイズに初期化
される。
【0067】 ブロック162では、第1または次の入力圧縮コードがフェッチされ、カレン
トコードレジスタ113に入れられる。コントロールがブロック161からブロ
ック162に移ったときは、フェッチされるコードは第1コードになる。コント
ロールがラン処理からの図示リターン経路を通ってブロック162に入ったとき
は、フェッチされるコードは、第1コードではなく、次のコードになる。
【0068】 ブロック163では、伸張器110は、カレントコードレジスタ113にフェ
ッチされた圧縮コードに対応するデータ文字のストリングを、その出力端112
から出力する。ディクショナリ135を使用してデータ文字ストリングを入力圧
縮コードから回復することは、LZWデータ圧縮の分野では周知である。ブロッ
ク163の機能が実装されている、多数の具体例は周知である(例えば、特許第
4,558,302号を参照)。
【0069】 以上から理解されるように、カレントコードレジスタ113にフェッチされた
コードは、シングル文字ストリングを表している場合もあれば、マルチ文字スト
リングを表している場合もある。周知のように、このようなストリングは、コー
ドの値によって相互に区別されている。一般的に、マルチ文字ストリングは、ブ
ロック160に関連して上述した第1利用可能コードより大か等しいコードによ
って表されている。シングル文字ストリングを表すコードは、シングル文字に等
しい、つまり、シングル文字を表す値になっているので、第1利用可能コードよ
りも値が小さくなっている。
【0070】 ブロック164では、カレントコードレジスタ113内のコードが先行コード
レジスタ114に転送される。ブロック165では、次の入力圧縮コードがカレ
ントコードレジスタ113にフェッチされる。
【0071】 ブロック166では、カレントコードレジスタ113内のコードがテストされ
、それが予約コードに等しいかどうかが判断される。図示の実施形態では、予約
コードは、図6のカウント増加テーブル125に示すように257−261にな
っている。カレントコードが予約コードに等しくなければ、ブロック166から
のNOブランチがとられ、ブロック167に移る。ブロック167では、カレン
トコードレジスタ113内のコードがテストされ、それがコードカウンタ123
内の現存コードより大であるかどうかが判断される。カレントコードがコードカ
ウンタより大でなければ、ブロック167からのNOブランチがとられ、ブロッ
ク169に移る。
【0072】 しかるに、カレントコードが予約コードに等しければ、ブロック166からの
YESブランチがとられ、ラン処理ブロック168に移る。同様に、カレントコ
ードがコードカウンタより大であれば、ブロック167からのYESブランチが
とられ、ラン処理ブロック168に移る。伸張ラン処理の詳細は、以下に図8を
参照して説明されている。ランのコード(1つまたは複数の)が処理され、その
ランが回復されると、コントロールはブロック162に戻る。
【0073】 ブロック169では、カレントコードレジスタ113内のコードがテストされ
、それがコードカウンタ123の現存コードより小であるか等しいかどうかが判
断される。(「より小」のテストだけが使用されるのは、ブロック166と16
7の先行テストのためである)。カレントコードがコードカウンタより小であれ
ば、ブロック169からのYESブランチがとられ、ブロック180−185の
シーケンスに移る。カレントコードがコードカウンタに等しければ、ブロック1
69からのNOブランチがとられ、ブロック190と191のシーケンスに移る
。以上から理解されるように、ブロック180−185は、周知の通常LZWデ
ータ伸張処理を表し、ブロック190と191は、周知の例外ケースLZWデー
タ伸張処理を表している(例えば、特許第4,558,302号を参照)。
【0074】 ブロック180では、カレントコードレジスタ113内のコードに対応するデ
ータ文字ストリングが、その出力端112から伸張器110によって出力される
【0075】 ブロック181では、先行コードレジスタ114内のコードに対応していて、
カレントコードレジスタ123内のコードに対応するストリングの第1文字によ
って延長されたストリングを構成する延長ストリングをストアすることにより、
ディクショナリ135が更新される。このストアされた延長ストリングには、コ
ードカウンタ123の現存コードのストリングコード値が割り当てられる。
【0076】 従来のLZW実装では、先行コードレジスタ114内のコードは、コードカウ
ンタ123によって割り当てられたコードが示しているロケーションに、延長文
字と一緒にディクショナリ135にストアされている。
【0077】 ブロック182−184では、コードカウンタ123は1だけ進められ、コー
ドサイズのインクリメントは必要であれば行われる。コードサイズの増加が必要
でなければ、ブロック182のテストの結果、コードサイズインクリメントブロ
ック183はバイパスされることになる。コードサイズレジスタ115はこのプ
ロセスで利用される。コードカウンタ123を次のコードへインクリメントする
ことは、ブロック184で行われる。
【0078】 ブロック185では、カレントコードレジスタ113内のコードは、先行コー
ドレジスタ114に転送される。従来のLZWデータ伸張では、ブロック185
で先行コードレジスタ114内にセットされた先行コードは、その後に続くLZ
Wデータ伸張サイクルにおいて、ブロック181のディクショナリ更新機能で利
用されている。本発明のラン処理では、この先行コードは、図8を参照して以下
で説明するように、ラン文字を定義するために利用されている。ブロック185
からのコントロールはブロック165に戻される。
【0079】 LZW例外ケース処理が必要である場合は、ブロック169からのNOブラン
チがとられ、ブロック190に移り、そこでは、先行コードレジスタ114内の
コードに対応するストリングがそのストリングの第1文字によって延長され、伸
張器110の出力端112から得られる。ブロック191では、ブロック190
のこの延長ストリングは、コードカウンタ123内のコードの割り当てコードと
一緒にディクショナリ135にストアされる。その後、コントロールは前述した
ようにブロック182に進む。
【0080】 図7のブロック160−165、169、180−185および190−19
1は、従来のLZWデータ伸張器によって実行される処理を構成している。これ
らの機能を実行するための実装は、多数のものが知られている(例えば、特許第
4,558,302号を参照)。
【0081】 ブロック166−168は、従来のLZW伸張器に組み込まれた本発明による
伸張ラン処理を構成している。
【0082】 図7から理解されるように、ブロック180−185と190−191の従来
のLZW処理では、処理がブロック165に戻されて、次のコードをカレントコ
ードレジスタ113にフェッチしている。これとは異なり、ブロック168のラ
ン処理では、処理はブロック162に戻されている。このようにすると、ランが
処理された後、ブロック164で先行コードレジスタ114が再初期化されるの
で、伸張器110は、圧縮器10からの出力と同期を保ったままになるという効
果がある。
【0083】 引き続き図5−7を参照しながら、図8を参照して説明すると、図8には、図
7のラン処理ブロック168の詳細が示されている。図7のブロック166と1
67に関連して上述したように、カレントコードレジスタ113内のコードが予
約コードに等しくないが、コードカウンタ123内の現存コードより大であれば
、コントロールは図7のブロック167から図8のブロック200へ移ることに
なる。ブロック200では、コードカウンタ123内の現存コードは、カレント
コードレジスタ113内のコードから減算され、その結果はカウントレジスタ1
17内にセットされる。ブロック201では、伸張器110は、カウントレジス
タ117内の数に等しい回数だけ、先行コードレジスタ114内に置かれている
文字を、その出力端112から反復的に出力する。このようにして、伸張器11
0は、圧縮器10によって圧縮されたデータ文字ランを回復する。その後、コン
トロールは図7のブロック162に戻される。
【0084】 カレントコードレジスタ113内の入力コードが、図6のカウント増加テーブ
ルに示された予約コードと等しければ、コントロールは図7のブロック166か
ら図8のブロック202へ移される。ブロック202では、次の入力コードは、
システム最大サイズを使用してカウントレジスタ117にフェッチされる。ブロ
ック203では、テストが行われ、カレントコードが第1予約コード値に等しい
かどうかが判断される。ここで説明している実施形態では、第1予約コードは、
図6に示すように、257になっている。ブロック203で、カレントコードが
第1予約コードに等しければ、コントロールはブロック201に移り、関連デー
タ文字ランが前述したように回復される。
【0085】 しかるに、ブロック203で、カレントコードが第1予約コードに等しくなけ
れば、コントロールはブロック204に移り、そこでは、カウントレジスタ11
7内のコードは、カレントコードレジスタ113内の別の予約コード値に対応す
る、選択された事前決定プロセスによって増加される。前述したように、カウン
ト増加テーブル125は、図6にその詳細を示すように、それぞれが予約コード
258−261に対応する特定の事前決定プロセス150−153を示している
。受け取られる予約コードに応じて、カウントは図示のように増加される。その
後、処理は、前述したようにブロック201から続けられて、関連データ文字ラ
ンが回復される。
【0086】 前述したことから理解されるように、図示の実施形態では、20479文字の
ランを受け入れることが可能である。図6のカウント増加テーブル125に別の
行を追加するだけで、もっと長いランを伸張器110で受け入れることも可能で
ある。当然のことであるが、前述したように、図2のカウント減少テーブル25
には対応する別の行が追加されることになる。
【0087】 以上から理解されるように、図8のブロック200、203および204の機
能は、図5のカウントレジスタ117、コードカウンタ123およびカウント増
加テーブル125を使用して図5のカウント増加ロジック127によって実行さ
れる。
【0088】 上述したラン処理のいずれにおいても、以上の説明から理解されるように、ラ
ン文字は図4の圧縮器ブロック80で送信され、伸張器側では、図7のブロック
185の処理結果として、先行コードレジスタ114に都合よく置かれている。
【0089】 引き続き図2、4、6、7および8を参照して説明すると、これらの図から理
解されるように、圧縮器(図2と図4)によって適用されるラン処理がどのよう
なものであっても、そのラン処理は伸張器のラン処理(図6と図8)によって逆
にされ、その結果、オリジナルラン入力データが回復される。
【0090】 図4のブロック90−92の圧縮器処理は、図7と図8のブロック167、2
00および201によって逆にされる。本発明のこの側面では、ランのカウント
は、ブロック91と92の処理によって送信される。ランカウントと圧縮器コー
ドカウンタの現存コードの和は、ブロック92で出力され、伸張器処理のブロッ
ク200では、伸張器コードカウンタの現存コードは受け取られたコードから減
算されて、ランカウントが回復される。伸張器は、受け取られたコードが伸張器
コードカウンタの現存コードより大であることを、ブロック167で検出するこ
とにより、この文字ラン状態を認識する。本発明のこの処理を使用すると、ラン
の存在を知らせるために、予約コードを圧縮器から伸張器に送信しないで済むこ
とになる。
【0091】 図4のブロック93−96の圧縮器処理は、図7と図8の伸張器ブロック16
6と201−203によって逆にされる。このケースでは、第1予約コード値は
、この特定処理を伸張器に知らせるために利用される。上述した実施形態では、
予約コード値は257が使用されている。この処理では、ランカウントは、この
第1予約コードに続いて圧縮器によって送信される。伸張器は、この第1予約コ
ードを受け取ると、受け取ったランカウントを利用して文字ランを回復する。
【0092】 図4のブロック93、97、98、95および96の圧縮器ラン処理は、ブロ
ック166と201−204の伸張器処理によって逆にされる。ブロック97と
98の圧縮器処理では、ランカウントは、カウントがシステム最大コードより小
になるように、選択された事前決定プロセスによって減少され、選択された事前
決定プロセスに対応する予約コードが利用される。伸張器処理は予約コードを認
識し、選択された事前決定プロセスの逆プロセスを利用することによって、受け
取られたカウントをオリジナルランカウント値まで増加して、オリジナル文字ラ
ンを回復する。図2の圧縮器事前決定プロセス50−53は、それぞれ図6の伸
張器事前決定プロセス150−153に対応している。以上から明らかであるよ
うに、図6の伸張器事前決定プロセスは、図2の圧縮器事前決定プロセスを逆に
したものである。
【0093】 本発明の上述した実施形態では、コード長が可変であるものとして説明されて
いる。上述した実施形態は、容易に理解できる若干の修正を加えることで、固定
コード長の環境で利用することも可能である。例えば、固定コード長の実施形態
では、12ビットの固定コードサイズを利用することができる。このような構成
では、最大システムコードは4096になる。
【0094】 固定コード長の実施形態では、図1と図5のコードサイズレジスタ15と11
5は利用されることがない。同様に、図3のブロック61、67および68のコ
ードサイズ初期化、テストとインクメンテーションは、図7の対応するブロック
161、182および183と共に、不要になる。このような実施形態では、最
大コードは固定することになり、固定最大システムコード、例えば、4096と
等しくなる。この場合、図3、4、7および8のロジックは、システム最大コー
ドとシステム最大コードサイズが上述したように固定値になることを除けば、同
じままになる。
【0095】 引き続き図1−4を参照しながら、図9を参照して説明すると、図9には、図
3と図4のフローチャートに従う圧縮器10のオペレーション例が示されている
。図の上部には、入力データ文字ストリームが示されており、そこでは、順次文
字は文字順序番号で示されている。このようにしたのは、この例のステップを通
る文字の進行にたどって行くのを容易にするためである。当然に理解されるよう
に、順序番号は文字を識別するために示されたもので、実際のデータ文字ストリ
ームの中には現れない。
【0096】 この例は、大部分が説明しなくても分かるようになっており、実行されるアク
ションは左側の欄に示され、これらのアクションに関係する図3と図4のブロッ
クは右側の欄に示されている。なお、文字 ”a” のランは47文字の長さに
なっており、文字 “c” のランは15000文字の長さになっている。
【0097】 アクション1−8では、標準LZWデータ圧縮が、文字 “a(5)” まで
入力データ文字に対して行われる。いくつかのデータ圧縮サイクルが行われ、各
サイクルでは、右側の欄に示すように、ブロック74を通りぬけて文字ランのテ
ストが行われる。ブロック74は処理の中で図3に示す位置に置かれているので
、ディクショナリ35に存在するすべてのストリングは、ブロック74でラン処
理を呼び出す前に、図3のブロック64でマッチングされる。従って、LZW処
理は、ラン処理に優先して行われる。
【0098】 アクション8では、図3のブロック74は、カレント文字 “a(5)” が
、図の上部の入力データ文字ストリームに示すように、次のn個のルックアヘッ
ド文字と同一であることを認識する。その後、コントロールはブロック75に移
り、ラン処理が行われる。以上から理解されるように、図示の文字 “a” の
ランは “a(4)” から始まっているとしても、文字 “a(4)” は、
アクション6でLZW処理の中に吸収されている。
【0099】 アクション9では、文字 “a(5)” は、図4のブロック80に従って出
力され、ランカウントが文字 “a(6)” から開始される。図4のブロック
82−86で構成されたループは文字をカウントし、アクション12で、ミスマ
ッチ文字 “c(1)” がフェッチされ、図示のように45でカウントが中止
される。アクション12では、図4のブロック90は、図1のカウントレジスタ
17内のカウント45が最大コードとコードカウンタ23内のコード266との
差より小であるかどうかを判断する。
【0100】 アクション13では、図4のブロック91と92はコードカウンタ値266を
カウント値45と加算して、カウント311が得られ、出力される。その後、コ
ントロールは図3のブロック76に戻ってLZW処理が再開され、そこでは、次
の文字 “c(2)” がフェッチされ、ディクショナリが図示のように更新さ
れる。
【0101】 アクション14−18では、データ文字 “c” の15000文字ランが処
理される。アクション18では、図4のブロック90と93は、処理を図4のブ
ロック97と98に指示している。アクション19では、カウント14998は
、図2のプロセス52を利用することによってカウント2710に減少されてい
る。対応する予約コード260は、図示のように図1の予約コードレジスタ22
内にセットされる。このコードは、アクション19に示すように図4のブロック
95で出力され、その後に続いて減少カウント2710がアクション20で出力
される。図4のブロック96は、カウントの出力を示している。
【0102】 アクション20−22では、処理は図3のブロック76でLZWデータ圧縮に
戻る。
【0103】 図3と図4のブロックに関連する図9のアクションの、これ以上詳しい説明は
容易に理解されるので、簡略化のためにその説明は省略することにする。
【0104】 引き続き図5、6、7および8を参照しながら、図10を参照して説明すると
、図10には、図7と図8のフローチャートに従う伸張器110のオペレーショ
ン例が示されている。図10のフォーマットは全体的に図9のフォーマットに類
似しているので、図9に関連して上述した説明は図10に適用できる。図10の
上部にある入力圧縮コードストリームは、図9に示す圧縮器の出力である。図か
ら明らかであるように、図10の出力は、図9の上部に示す回復データ文字スト
リームである。
【0105】 アクション1−5では、従来のLZW伸張が行われ、文字 “a(5)” ま
でのオリジナルデータ文字ストリームが回復される。なお、LZW例外ケース処
理はアクション4で行われ、そこでは、受け取られたカレントコードは伸張器コ
ードカウンタに等しくなっている(図7のブロック169のNOブランチ)。
【0106】 アクション6では、文字 “a” のランは、コード311を受け取ると、そ
れに応答して処理される。このケースでは、受け取られた圧縮コードは、伸張器
コードカウンタ内の値266より大になっている。図7のブロック167は処理
を図8のブロック200と201に指示し、ラン文字の回復が行われる。アクシ
ョン7と8では、コントロールは図7のブロック162でLZW処理に戻り、文
字 “c” のランの先頭が検出される。
【0107】 アクション9と10では、文字 “c” のランが処理される。アクション9
では、予約コード260が受け取られたことが、図7のブロック166で検出さ
れ、図8のブロック201−204のラン処理が呼び出される。アクション9で
は、カウント2710が受け取られ、アクション10でランカウント14998
に変換される。この変換は、図6のプロセス152を使用して図8のブロック2
04で行われる。
【0108】 アクション11−13では、従来のLZW伸張により、入力圧縮コードストリ
ームの残り部分が復号化(デコード)される。図7と図8のブロックに関連する
図10のアクションのこれ以上詳しい説明は容易に理解されるので、簡略化のた
めにその説明は省略されている。
【0109】 図3から理解されるように、ブロック74のラン検出とブロック75のラン処
理は、図3のLZW圧縮サイクルの途中個所に置かれ、LZWサイクルのその個
所では、最長マッチが出力され、ディクショナリが延長ストリングで更新され、
ミスマッチを引き起こした文字がフェッチされ、カレント文字レジスタ内に置か
れている。このようにすると、ディクショナリにすでにストアされているストリ
ングが完全に圧縮されるという利点が得られる。ミスマッチ文字がランの先頭に
ある場合は、その文字は図4のブロック80で出力されるので、圧縮器ディクシ
ョナリにストアされているものと同じ延長ストリングを伸張器ディクショナリに
ストアすることが可能になる。図4のラン処理が終了したときは、ランに続くミ
スマッチ文字はカレント文字レジスタにあるので、図3のブロック76で利用し
て、その個所からLZW処理を続けることができる。従って、図3のブロック7
6では、LZWプロセスで利用されたカレントマッチレジスタには、ブロック6
0−70のLZW処理からか、あるいはラン処理ブロック75からのミスマッチ
文字が受け入れられる。
【0110】 以上から理解されるように、図2と図6の事前決定プロセスは減算と加算を利
用して、それぞれカウントを減少し、増加している。本発明によれば、他のプロ
シージャを利用して、長いランを処理することが可能である。例えば、減算と加
算よりももっと大きな数を減少し、増加する能力をもつ、他の数学的プロシージ
ャを利用することが可能である。乗算法、除算法、累乗法およびハッシング法を
採用すると、この能力が得られる。
【0111】 当然に理解されるように、圧縮器10と伸張器110で利用されているプロト
コルは、相互に対して互換性を有している必要がある。圧縮器と伸張器は、コー
ドサイズのように、同じアルファベットサイズと初期条件にわたって動作する必
要がある。上述した圧縮器と伸張器の実施形態は、ディクショナリが初期化され
ていなくても、シングル文字ストリングのすべてで初期化されていても、ディク
ショナリと共に容易に利用することができる。上述したように、シングル文字は
、それぞれの値によって圧縮コードと区別することができる。シングル文字は、
文字自体の値によって表すことも、他の周知のコーディング方式で表すこともで
きる。圧縮器で使用されるシングル文字プロトコルは、伸張器でも利用されるよ
うになっている必要がある。
【0112】 以上から理解されるように、圧縮器への入力は、任意の対応する文字ビットサ
イズをもつ、任意のサイズのアルファベットにわたることができる。例えば、デ
ータ文字は、8ビット文字の256文字ASCIIアルファベットのように、あ
るアルファベットにわたって、ASCII文字などのテキストにすることができ
る。入力データは、1ビットサイズの文字をもつ2文字バイナリアルファベット
1と0にわたってバイナリ文字にすることもできる。このことから理解されるよ
うに、テキストデータは、基礎となるバイナリデータの2文字アルファベットに
わたって圧縮することも可能である。
【0113】 以上の説明から理解されるように、本発明の上述した実施形態は、ハードウェ
ア、ファームウェア、ソフトウェア、またはこれらの組み合わせで実現すること
が可能である。ディスクリート回路コンポーネントは、上述した種々の機能を実
行するように容易に実現することができる。ソフトウェアによる実施形態では、
該当モジュールは、上述したフローチャートから容易に生成されるコーディング
でプログラミングされたものが利用できる。
【0114】 以上、本発明の好適実施形態について説明してきたが、当然に理解されるよう
に、そこで使用されているワードは限定的ワードではなく、記述的ワードであり
、広い側面での本発明の真の範囲と精神から逸脱しない限り、特許請求の範囲内
で種々の変更を行うことが可能である。
【図面の簡単な説明】
【図1】 本発明に従ってデータを圧縮するデータ圧縮器を示す概略ブロック図である。
【図2】 図1のカウント減少テーブルの詳細を示すチャートである。
【図3】 本発明に従ってデータ圧縮を行うために図1の圧縮器によって実行されるオペ
レーションを示すコントロールフローチャートである。
【図4】 本発明の特徴に従ってデータ圧縮を行うために図3のフローチャートに利用さ
れているラン処理ロジックを示すコントロールフローチャートである。
【図5】 図1の圧縮器によって圧縮されたデータを回復するために本発明に従って具現
化されているデータ伸張器を示す概略ブロック図である。
【図6】 図5のカウント増加テーブルの詳細を示すチャートである。
【図7】 本発明に従ってデータ伸張を行うために図5の伸張器によって実行されるオペ
レーションを示すコントロールフローチャートである。
【図8】 本発明の特徴に従ってデータ伸張を行うために図7のフローチャートに利用さ
れているラン処理ロジックを示すコントロールフローチャートである。
【図9】 図3と図4のコントロールフローチャートに従う図1の圧縮器のオペレーショ
ンを例示するチャートである。
【図10】 図7と図8のコントロールフローチャートに従う図5の伸張器のオペレーショ
ンを例示するチャートである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AL,AM,AT,AU, AZ,BA,BB,BG,BR,BY,CA,CH,C N,CR,CU,CZ,DE,DK,DM,EE,ES ,FI,GB,GD,GE,GH,GM,HR,HU, ID,IL,IN,IS,JP,KE,KG,KP,K R,KZ,LC,LK,LR,LS,LT,LU,LV ,MA,MD,MG,MK,MN,MW,MX,NO, NZ,PL,PT,RO,RU,SD,SE,SG,S I,SK,SL,TJ,TM,TR,TT,TZ,UA ,UG,UZ,VN,YU,ZA,ZW

Claims (52)

    【特許請求の範囲】
  1. 【請求項1】 データ文字の入力ストリームを圧縮コードの出力ストリーム
    に圧縮するためのデータ圧縮方法であって、LZWデータ圧縮プロセスを含み、
    該LZWデータ圧縮プロセスは、データ文字のストリングをストアし、当該スト
    アされたストリングにそれぞれのコードをコードカウンタから割り当て、各々の
    該ストアされたストリングごとに前記コードカウンタをインクリメントするデー
    タ圧縮方法において、 データ文字のランが前記入力ストリームの中にいつ出現しているかを、該入力
    ストリームのあらかじめ決めた数の隣接データ文字が互に同一になっているかを
    検出することによって、検出し、 当該検出されたランの中のデータ文字をカウントして、ランカウントを取得し
    、 該コードカウンタ内の既存コードを前記ランカウントと結合することによって
    修正コードを取得し、 前記入力ストリームを前記ストアされたストリングと比較し、該ストアされた
    ストリングとの最長マッチ(合致)を判断し、それに割り当てられた前記コード
    を取得し、ランが前記入力ストリームの中に出現していないとき前記入力ストリ
    ームを、前記LZWデータ圧縮プロセスを使用して圧縮することによって、LZ
    W圧縮コードを取得し、 前記修正コードと前記LZW圧縮コードを出力して、前記出力ストリームを取
    得する ことを特徴とする方法。
  2. 【請求項2】 請求項1に記載の方法において、前記修正コードを取得する
    ステップでは、前記修正コードがLZWデータ伸張プロセスによって受け取られ
    たとき、受け取られた修正コードを、前記LZWデータ伸張プロセスで使用され
    たコードカウンタ内の既存コードと結合することによって、前記ランカウントが
    回復されることを特徴とする方法。
  3. 【請求項3】 請求項1に記載の方法において、前記出力するステップでは
    、さらに、 前記検出されたランのデータ文字を、前記修正コードに先行して出力する ことを特徴とする方法。
  4. 【請求項4】 請求項1に記載の方法において、 前記データ文字のランがいつ出現しているかを検出するステップ、前記検出さ
    れたランの中のデータ文字をカウントするステップ、前記修正コードを取得する
    ステップおよび前記修正コードを出力するステップは、ラン処理を実行するステ
    ップを含み、 前記LZWデータ圧縮プロセスの前記ストアするステップは、延長ストリング
    をストアするステップを含み、各々の延長ストリングは、前記データストリーム
    内の次の後続データ文字によって延長された最長マッチを含み、 前記方法では、さらに、 最長マッチを判断し、それに対応する延長ストリングをストアし、前記最長マ
    ッチに割り当てられたコードをス得した後で、前記LZWデータ圧縮プロセスを
    使用するステップの期間に前記ラン処理を実行する ことを特徴とする方法。
  5. 【請求項5】 請求項2に記載の方法において、前記修正コードを取得する
    ステップでは、前記LZWデータ圧縮プロセスの前記コードカウンタ内の前記既
    存コードに前記ランカウントを加算することによって、前記修正コードを取得す
    ることを特徴とする方法。
  6. 【請求項6】 請求項5に記載の方法において、前記ランカウントは、前記
    LZWデータ伸張プロセスの前記コードカウンタ内の前記既存コードを、前記受
    け取られた修正コードから減算することによって回復されることを特徴とする方
    法。
  7. 【請求項7】 請求項4に記載の方法において、前記LZWデータ圧縮プロ
    セスは、前記入力ストリーム内の前記次の後続データ文字をフェッチすると、そ
    の結果として、前記ストアされたストリングとミスマッチが起こるようにして前
    記最長マッチを判断し、 前記フェッチされた入力データ文字はミスマッチ文字であり、 前記実行するステップでは、さらに、前記ミスマッチ文字から始まって前記ラ
    ン処理を実行し、 前記検出するステップでは、前記ランがいつ出現しているかを、あらかじめ決
    めた数の前記隣接データ文字が前記ミスマッチ文字といつ同一になっているかを
    検出することによって、検出する ことを特徴とする方法。
  8. 【請求項8】 請求項7に記載の方法において、前記出力するステップでは
    、さらに、前記検出されたランのデータ文字を、前記修正コードに先行して出力
    し、 検出されたランの前記データ文字は前記ミスマッチ文字を含む ことを特徴とする方法。
  9. 【請求項9】 データ文字の入力ストリームを圧縮コードの出力ストリーム
    に圧縮するためのデータ圧縮方法であって、LZWデータ圧縮プロセスを含み、
    該LZWデータ圧縮プロセスは、データ文字のストリングをストアし、当該スト
    アされたストリングにそれぞれのコードをコードカウンタから割り当て、各々の
    該ストアされたストリングごとに前記コードカウンタをインクリメントすること
    を含むデータ圧縮方法において、 データ文字のランが前記入力ストリームの中にいつ出現しているかを、該入力
    ストリームのあらかじめ決めた数の隣接データ文字が互にいつ同一になっている
    かを検出することによって、検出し、 当該検出されたランの中のデータ文字をカウントして、ランカウントを取得し
    、 選択された事前決定プロセスを使用して、前記ランカウントをあらかじめ決め
    た数以下に減少することによって減少カウントを取得し、 前記選択された事前決定プロセスに対応する予約コードを取得し、 前記入力ストリームを前記ストアされたストリングと比較し、前記ストアされ
    たストリングとの最長マッチ(合致)を判断し、それに割り当てられた前記コー
    ドを取得して、ランが前記入力ストリームの中に出現していないとき前記入力ス
    トリームを、前記LZWデータ圧縮プロセスを使用して圧縮することによって、
    LZW圧縮コードを取得し、 前記予約コード、前記減少カウントおよび前記LZW圧縮コードを出力して、
    前記出力ストリームを取得する ことを特徴とする方法。
  10. 【請求項10】 請求項9に記載の方法において、前記減少カウントを取得
    するステップおよび前記予約コードを取得するステップは、前記予約コードと前
    記減少コードとがLZWデータ伸張プロセスによって受け取られたとき、前記選
    択された事前決定プロセスとは逆のプロセスを使用して、受け取られた減少カウ
    ントを増加することにより前記ランカウントが回復されるように前記予約コード
    と前記減少カウントを取得することを特徴とする方法。
  11. 【請求項11】 請求項9に記載の方法において、前記出力するステップで
    は、 検出されたランのデータ文字を、前記予約コードに先行して出力する ことを特徴とする方法。
  12. 【請求項12】 請求項9に記載の方法において、データ文字のランがいつ
    出現しているかを検出するステップ、前記検出されたランの中のデータ文字をカ
    ウントするステップ、前記減少カウントを取得するステップ、予約コードを取得
    ステップおよび前記予約コードと前記減少コードを出力するステップは、ラン処
    理を実行するステップを含み、 前記LZWデータ圧縮プロセスの前記ストアするステップは、延長ストリング
    をストアするステップを含み、各々の延長ストリングは、前記入力ストリーム内
    の次の後続データ文字によって延長された最長マッチを含み、 前記方法では、さらに、 最長マッチを判断し、それに対応する延長ストリングをストアし、前記最長マ
    ッチに割り当てられたコードを取得した後、前記LZWデータ圧縮プロセスを使
    用するステップの期間に前記ラン処理を実行する ことを特徴とする方法。
  13. 【請求項13】 請求項10に記載の方法において、前記選択された事前決
    定プロセスでは、事前決定の定数を前記ランカウントから減少して、該ランカウ
    ントを前記あらかじめ決めた数以下に減少し、 前記予約コードは前記事前決定の定数に対応している ことを特徴とする方法。
  14. 【請求項14】 請求項13に記載の方法において、前記ランカウントは、
    受け取られた予約コードに対応する事前決定の定数を前記受け取られた減少カウ
    ントに加算することによって回復されることを特徴とする方法。
  15. 【請求項15】 請求項12に記載の方法において、前記LZWデータ圧縮
    プロセスは、前記入力ストリーム内の前記次の後続データ文字をフェッチすると
    、その結果として、前記ストアされたストリングとミスマッチが起こるようにし
    て前記最長マッチを判断し、 前記フェッチされた入力データ文字はミスマッチ文字であり、 前記実行するステップは、さらに、前記ミスマッチ文字から始まって前記ラン
    処理を実行し、 前記検出するステップは、前記ランがいつ出現しているかを、あらかじめ決め
    た数の前記隣接データ文字が前記ミスマッチ文字といつ同一になっているかを検
    出することによって検出する ことを特徴とする方法。
  16. 【請求項16】 請求項15に記載の方法において、前記出力するステップ
    は、さらに、前記検出されたランのデータ文字を、前記修正コードに先行して出
    力し、 前記検出されたランのデータ文字は前記ミスマッチ文字を含んでいることを特
    徴とする方法。
  17. 【請求項17】 圧縮コードの入力ストリームを伸張して、その入力ストリ
    ームに対応するデータ文字の出力ストリームを回復するためのデータ伸張方法で
    あって、LZWデータ伸張プロセスを含み、該LZWデータ伸張プロセスは、デ
    ータ文字のストリングをストアし、当該ストアされたストリングにそれぞれのコ
    ードをコードカウンタから割り当て、各々のストアされたストリングごとに前記
    コードカウンタをインクリメントするデータ伸張方法において、 受け取られた入力圧縮コードを、前記コードカウンタ内の既存コードと比較し
    て、前記受け取られた入力圧縮コードがランカウントを表しているかどうかを判
    断し、 該受け取られた入力圧縮コードを前記コードカウンタ内の前記既存コードと結
    合することによって前記ランカウントを回復し、 前記受け取られた入力圧縮コードに先行して受け取られた圧縮コードによって
    表されているデータ文字を反復的に取得し、前記データ文字は、前記回復された
    ランカウントに対応する回数だけ反復的に取得することによって、回復されたラ
    ンを取得し、 受け取られた圧縮コードがランカウントを表していないとき、前記受け取られ
    た圧縮コードに対応する前記ストアされたストリングを、前記LZWデータ伸張
    プロセスを使用して取得することによって、LZW回復ストリングを取得し、 回復されたランと前記LZW回復ストリングを出力して、前記出力ストリーム
    を取得する ことを特徴とする方法。
  18. 【請求項18】 請求項17に記載の方法において、前記比較するステップ
    では、 前記受け取られた入力圧縮コードを前記コードカウンタ内の既存コードと比較
    して、前記受け取られた入力圧縮コードが前記コードカウンタ内の前記既存コー
    ドより大であるかどうかを判断することによって、該受け取られた入力圧縮コー
    ドがランカウントを表していることを判断する ことを特徴とする方法。
  19. 【請求項19】 請求項17に記載の方法において、前記回復するステップ
    では、 前記コードカウンタ内の前記既存コードを、前記受け取られた入力圧縮コード
    から減算することによって前記ランカウントを回復することにより、該回復され
    たランカウントを取得する ことを特徴とする方法。
  20. 【請求項20】 請求項17に記載の方法において、前記LZWデータ伸張
    プロセスの前記ストアするステップでは、延長ストリングをストアし、 前記ストアするステップは、前記先行して受け取られた圧縮コードによって表
    されている前記データ文字によって延長された延長ストリングをストアする ことを特徴とする方法。
  21. 【請求項21】 請求項17に記載の方法において、 前記受け取られた入力圧縮コードを比較するステップ、前記ランカウントを回
    復するステップ、前記データ文字を反復的に取得するステップ、前記回復された
    ランを出力するステップは、ラン処理を実行するステップを含み、 前記LZWデータ伸張プロセスは、第1圧縮コードがそこからフェッチされる
    初期処理ポイントを含み、 前記該方法では、さらに、 前記ラン処理を実行した後、前記初期処理ポイントに戻る ことを特徴とする方法。
  22. 【請求項22】 圧縮コードの入力ストリームを伸張して、その入力ストリ
    ームに対応するデータ文字の出力ストリームを回復するためのデータ伸張方法で
    あって、LZWデータ伸張プロセスを含み、該LZWデータ伸張プロセスは、デ
    ータ文字のストリングをストアし、当該ストアされたストリングにそれぞれのコ
    ードをコードカウンタから割り当て、各々の前記ストアされたストリングごとに
    前記コードカウンタをインクリメントするデータ伸張方法において、 受け取られた入力圧縮コードが予約コードに等しいかどうかを判断し、そこで
    は前記予約コードは、前記受け取られた予約コードに対応する選択された事前決
    定プロセスによって減少されたランカウントが続くことを表しており、 前記減少されたランカウントをフェッチし、 前記受け取られた予約コードに対応する前記選択された事前決定プロセスとは
    逆のプロセスを使用することによって、前記フェッチされた減少ランカウントを
    増加することによって前記ランカウントを回復し、 前記受け取られた予約コードに先行して受け取られた圧縮コードによって表さ
    れているデータ文字を反復的に取得し、前記データ文字は、前記回復されたラン
    カウントに対する回数だけ反復的に取得することによって、回復されたランを取
    得し、 受け取られた圧縮コードがランカウントを表していないとき、前記受け取られ
    た圧縮コードに対応する前記ストアされたストリングを、前記LZWデータ伸張
    プロセスを使用して得ることによって、LZW回復ストリングを取得し、 回復されたランと前記LZW回復ストリングを出力して、前記出力ストリーム
    を取得する ことを特徴とする方法。
  23. 【請求項23】 請求項22に記載の方法において、前記選択された事前決
    定プロセスでは、前記受け取られた予約コードに対応する事前決定の定数を、前
    記ランカウントから減算することによって、前記減少ランカウントを取得するこ
    とを特徴とする方法。
  24. 【請求項24】 請求項23に記載の方法において、前記回復するステップ
    では、 前記受け取られた予約コードに対応する前記事前決定の定数を、前記フェッチ
    された減少ランカウントに加算することによって前記ランカウントを回復する ことを特徴とする方法。
  25. 【請求項25】 請求項22に記載の方法において、前記LZWデータ伸張
    プロセスの前記ストアするステップは、延長ストリングをストアするステップを
    含み、 前記ストアするステップは、前記先行して受け取られた圧縮コードによって表
    されているデータ文字によって延長された延長ストリングをストアするステップ
    を含む ことを特徴とする方法。
  26. 【請求項26】 請求項22に記載の方法において、 前記受け取られた入力圧縮コードが予約コードと等しいかどうかを判断するス
    テップ、前記減少ランカウントをフェッチするステップ、前記ランカウントを回
    復するステップ、前記データ文字を反復的に取得するステップおよび前記回復さ
    れたランを出力するステップは、ラン処理を実行するこステップを含み、 前記LZWデータ伸張プロセスは、第1圧縮コードがそこからフェッチされる
    初期処理ポイントを含み、 前記方法では、さらに、 前記ラン処理を実行した後、前記初期処理ポイントに戻る ことを特徴とする方法。
  27. 【請求項27】 データ文字の入力ストリームを圧縮コードの出力ストリー
    ムに圧縮するためのデータ圧縮装置であって、LZWデータ圧縮器を含み、前記
    LZWデータ圧縮器は、データ文字のストリングをストアする手段と、前記スト
    アされたストリングにそれぞれのコードを割り当てるコードカウンタと、各々の
    該ストアされたストリングごとに前記コードカウンタをインクリメントする手段
    とを含むデータ圧縮装置おいて、 データ文字のランが前記入力ストリームの中にいつ出現しているかを、前記入
    力ストリームのあらかじめ決めた数の隣接データ文字が互にいつ同一であるかを
    検出することによって、検出する手段と、 前記検出されたランの中のデータ文字をカウントして、ランカウントを取得す
    る手段と、 前記コードカウンタ内の既存コードを前記ランカウントと結合することによっ
    て修正コードを取得する手段とを含み、 前記LZWデータ圧縮器は、前記入力ストリームを前記ストアされたストリン
    グと比較して、そのストリングとの最長マッチ(合致)を判断し、そのストリン
    グに割り当てられたコードを得ることによって、ランが前記入力ストリームの中
    に出現していないとき前記入力ストリームを圧縮することにより、LZW圧縮コ
    ードを得るように動作し、 前記装置は、さらに、 前記修正コードと前記LZW圧縮コードを出力して、前記出力ストリームを取
    得する手段を含む ことを特徴とする装置。
  28. 【請求項28】 請求項27に記載の装置において、前記修正コードを取得
    する手段は、前記修正コードがLZWデータ伸張器によって受け取られたとき、
    当該受け取られた修正コードを、前記LZWデータ伸張器におけるコードカウン
    タ内の既存コードと結合することによって前記ランカウントが回復されるように
    前記修正コードを得る手段を含むことを特徴とする装置。
  29. 【請求項29】 請求項27に記載の装置において、前記出力する手段は、
    さらに、 前記検出されたランのデータ文字を、前記修正コードに先行して出力する手段
    を含むことを特徴とする装置。
  30. 【請求項30】 請求項27に記載の装置において、 前記データ文字のランがいつ出現しているかを検出する手段、前記検出された
    ランの中の文字をカウントする手段、前記修正コードを取得する手段および前記
    修正コードを出力する手段は、ラン処理を実行する手段を含み、 前記LZWデータ圧縮器に含まれる前記ストアする手段は、延長ストリングを
    ストアする手段を含み、各々の延長ストリングは、前記入力ストリーム内の次の
    後続データ文字によって延長された最長マッチを含み、 前記実行する手段は、前記LZWデータ圧縮器が最長マッチを判断し、それに
    対応する延長ストリングをストアし、前記最長マッチに割り当てられたコードを
    取得した後、前記ラン処理を実行するように動作する ことを特徴とする装置。
  31. 【請求項31】 請求項28に記載の装置において、前記修正コードを取得
    する手段は、 前記ランカウントを、前記LZWデータ圧縮器の前記コードカウンタ内の前記
    既存コードに加算することによって前記修正コードを取得する手段を含む ことを特徴とする装置。
  32. 【請求項32】 請求項31に記載の装置において、前記ランカウントは、
    前記LZWデータ伸張器の前記コードカウンタ内の前記既存コードを、前記受け
    取られた修正コードから減算することによって回復されることを特徴とする装置
  33. 【請求項33】 請求項30に記載の装置において、前記LZWデータ圧縮
    器は、前記入力ストリーム内の前記次の後続文字をフェッチすると、その結果と
    して、前記ストアされたストリングとミスマッチになるようにすることによって
    前記最長マッチを判断するように動作し、前記フェッチされた入力データ文字は
    ミスマッチ文字であり、 前記実行する手段は、さらに、前記ミスマッチ文字から始まって前記ラン処理
    を実行する手段を含み、 前記検出する手段は、さらに、前記ランがいつ出現しているかを、前記あらか
    じめ決めた数の前記隣接データ文字が前記ミスマッチ文字といつ同一になってい
    るかを検出することによって、検出する手段を含む ことを特徴とする装置。
  34. 【請求項34】 請求項33に記載の装置において、前記出力する手段は、
    さらに、前記検出されたランのデータ文字を、前記修正コードに先行して出力す
    る手段を含み、 前記検出されたランの前記データ文字は前記ミスマッチ文字を含む ことを特徴とする装置。
  35. 【請求項35】 データ文字の入力ストリームを圧縮コードの出力ストリー
    ムに圧縮するためのデータ圧縮装置であって、LZWデータ圧縮器を含み、前記
    LZWデータ圧縮器は、データ文字のストリングをストアする手段と、前記スト
    アされたストリングにそれぞれのコードを割り当てるコードカウンタと、各々の
    該ストアされたストリングごとに前記コードカウンタをインクリメントする手段
    とをむデータ圧縮装置において、 データ文字のランが前記入力ストリームの中にいつ出現しているかを、該入力
    ストリームのあらかじめ決めた数の隣接データ文字が互にいつ同一になっている
    かを検出することによって、検出する手段と、 前記検出されたランの中のデータ文字をカウントして、ランカウントを取得す
    る手段と、 選択された事前決定プロセスを使用して、前記ランカウントをあらかじめ決め
    た数以下に減少することによって減少カウントを取得する手段と、 前記選択された事前決定プロセスに対応する予約コードを取得する手段と を含み、 前記LZWデータ圧縮器は、前記入力ストリームを前記ストアされたストリン
    グと比較して、そのストリングとの最長マッチ(合致)を判断し、そのストリン
    グに割り当てられたコードを取得することによって、ランが前記入力ストリーム
    の中に出現していないとき前記入力ストリームを圧縮することにより、LZW圧
    縮コードを得るように動作し、 前記装置は、さらに、 前記予約コード、前記減少カウントおよび前記LZW圧縮コードを出力して、
    前記出力ストリームを取得する手段を含む ことを特徴とする装置。
  36. 【請求項36】 請求項35に記載の装置において、前記減少カウントを取
    得する手段および前記予約コードを取得する手段は、前記予約コードと前記減少
    カウントがLZWデータ伸張器によって受け取られたとき、前記選択された事前
    決定プロセスの逆のプロセスを使用することによって前記受け取られた減少カウ
    ントを増加することによって前記ランカウントが回復されるように、該予約コー
    ドと該減少カウントを取得する手段を含むことを特徴とする装置。
  37. 【請求項37】 請求項35に記載の装置において、前記出力する手段は、
    前記検出されたランのデータ文字を前記予約コードに先行して出力する手段を含
    むことを特徴とする装置。
  38. 【請求項38】 請求項35に記載の装置において、前記データ文字のラン
    がいつ出現するかを検出する手段、前記検出されたランの中のデータ文字をカウ
    ントする手段、前記減少カウントを取得する手段、前記予約コードを取得する手
    段および前記予約コードと前記減少カウントを出力する前記手段は、ラン処理を
    実行する手段を含み、 前記LZWデータ圧縮器に含まれる前記ストアする手段は、延長ストリングを
    ストアする手段を含み、各ストリングは前記入力ストリームの中の次の後続デー
    タ文字によって延長された最長マッチを含み、 前記実行する手段は、該LZWデータ圧縮器が最長マッチを判断し、それに対
    応する延長ストリングをストアし、前記最長マッチに割り当てられたコードを取
    得した後、前記ラン処理を実行するように動作する ことを特徴とする装置。
  39. 【請求項39】 請求項36に記載の装置において、前記選択された事前決
    定プロセスでは、事前決定の定数を前記ランカウントから減算して、該ランカウ
    ントを前記あらかじめ決めた数以下に減少し、 前記予約コードは前記事前決定の定数に対応している ことを特徴とする装置。
  40. 【請求項40】 請求項39に記載の装置において、前記ランカウントは、
    前記受け取られた予約コードに対応する前記事前決定の定数を、前記受け取られ
    た減少カウントに加算することによって、回復されることを特徴とする装置。
  41. 【請求項41】 請求項38に記載の装置において、前記LZWデータ圧縮
    器は、前記入力ストリーム内の前記次の後続文字をフェッチすると、その結果と
    して、前記ストアされたストリングとミスマッチになるようにすることによって
    前記最長マッチを判断するように動作し、 前記フェッチされた入力データ文字はミスマッチ文字であり、 前記実行する手段は、さらに、前記ミスマッチ文字から始まって前記ラン処理
    を実行する手段を含み、 前記検出する手段は、さらに、前記ランがいつ出現しているかを、前記あらか
    じめ決めた数の前記隣接データ文字が前記ミスマッチ文字といつ同一になってい
    るかを検出することによって、検出する手段を含む ことを特徴とする装置。
  42. 【請求項42】 請求項41に記載の装置において、前記出力する手段は、
    さらに、前記検出されたランのデータ文字を、前記修正コードに先行して出力す
    る手段を含み、 前記検出されたランのデータ文字は前記ミスマッチ文字を含む ことを特徴とする装置。
  43. 【請求項43】 圧縮コードの入力ストリームを伸張して、その入力ストリ
    ームに対応するデータ文字の出力ストリームを回復するためのデータ伸張装置で
    あって、LZWデータ圧縮器を含み、前記LZWデータ伸張器は、データ文字の
    ストリングをストアする手段、当該ストアされたストリングにそれぞれのコード
    を割り当てるコードカウンタ、および各々のストアされたストリングごとに前記
    コードカウンタをインクリメントする手段を含むデータ伸張装置において、 受け取られた入力圧縮コードを、該コードカウンタ内の既存コードと比較して
    、前記受け取られた入力圧縮コードがランカウントを表しているかどうかを判断
    する手段と、 前記受け取られた入力圧縮コードを前記コードカウンタ内の既存コードと結合
    することによって前記ランカウントを回復する手段と、 前記受け取られた入力圧縮コードに先行して受け取られた圧縮コードによって
    表されているデータ文字を反復的に取得する手段であって、そこでは前記データ
    文字は、前記回復されたランカウントに対応する回数だけ反復的に取得すること
    によって、回復されたランを取得する手段と を含み、 前記LZWデータ伸張器は、受け取られた圧縮コードがランカウントを表して
    いないとき、前記受け取られた圧縮コードに対応する前記ストアされたストリン
    グを取得することにより、LZW回復ストリングを得るように動作し、 前記装置は、さらに、 回復されたランと前記LZW回復ストリングを出力して、前記出力ストリーム
    を取得する手段を含む ことを特徴とする装置。
  44. 【請求項44】 請求項43に記載の装置において、前記比較する手段は、 前記受け取られた入力圧縮コードを前記コードカウンタ内の既存コードと比較
    して、前記受け取られた入力圧縮コードが前記コードカウンタ内の既存コードよ
    り大であるかどうかを判断することによって、前記受け取られた入力圧縮コード
    がランカウントを表していることを判断する手段を含むことを特徴とする装置。
  45. 【請求項45】 請求項43に記載の装置において、前記回復する手段は、 前記コードカウンタ内の前記既存コードを、前記受け取られた入力圧縮コード
    から減算することによって前記ランカウントを回復することによって、回復され
    たランカウントを取得する手段を含むことを特徴とする装置。
  46. 【請求項46】 請求項43に記載の装置において、前記LZWデータ伸張
    器に含まれる前記ストアする手段は、延長ストリングをストアする手段を含み、 前記ストアする手段は、前記先行して受け取られた圧縮コードによって表され
    ているデータ文字によって延長された延長ストリングをストアする手段を含む ことを特徴とする装置。
  47. 【請求項47】 請求項43に記載の装置において、 受け取られた入力圧縮コードを比較する手段、前記ランカウントを回復する手
    段、前記データ文字を反復的に取得する手段および前記回復されたランを出力す
    る手段は、ラン処理を実行する手段を含み、 前記LZWデータ伸張器は、第1圧縮コードがそこからフェッチされる初期
    処理ポイントを含むように動作し、 前記装置は、さらに、 前記ラン処理を実行した後、前記初期処理ポイントに戻る手段を含む ことを特徴とする装置。
  48. 【請求項48】 圧縮コードの入力ストリームを伸張して、その入力ストリ
    ームに対応するデータ文字の出力ストリームを回復するためのデータ伸張装置で
    あって、LZWデータ伸張器を含み、該LZWデータ伸張器は、データ文字のス
    トリングをストアする手段、前記ストアされたストリングにそれぞれのコードを
    割り当てるコードカウンタ、および各々のストアされたストリングごとに前記コ
    ードカウンタをインクリメントする手段を含むデータ伸張装置において、 受け取られた入力圧縮コードが予約コードに等しいかどうかを判断する手段で
    あって、そこで前記予約コードは、該受け取られた予約コードに対応する選択さ
    れた事前決定プロセスによって減少されたランカウントが続くことを表している
    手段と、 前記減少されたランカウントをフェッチする手段と、 受け取られた予約コードに対応する前記選択された事前決定プロセスとは逆の
    プロセスを使用することによって、前記フェッチされた減少ランカウントを増加
    することによって前記ランカウントを回復する手段と、 前記受け取られた予約コードに先行して受け取られた圧縮コードによって表さ
    れているデータ文字を反復的に取得する手段であって、前記データ文字は、前記
    回復されたランカウントに対応する回数だけ得られるようにして、回復されたラ
    ンを取得する手段と を含み、 前記LZWデータ伸張器は、受け取られた圧縮コードがランカウントを表して
    いないとき、前記受け取られた圧縮コードに対応する前記ストアされたストリン
    グを、LZW回復ストリングを取得するように動作し 前記装置は、さらに、 前記回復されたランと前記LZW回復ストリングを出力して、前記出力ストリ
    ームを取得する手段を含む ことを特徴とする装置。
  49. 【請求項49】 請求項48に記載の装置において、前記選択された事前決
    定プロセスは、前記受け取られた予約コードに対応する事前決定の定数を、前記
    ランカウントから減算することによって、前記減少ランカウントを取得すること
    を特徴とする装置。
  50. 【請求項50】 請求項49に記載の装置において、前記回復する手段は、
    前記受け取られた予約コードに対応する事前決定の定数を、前記フェッチされた
    減少ランカウントに加算することによって前記ランカウントを回復する手段を含
    むことを特徴とする装置。
  51. 【請求項51】 請求項48に記載の装置において、前記LZWデータ伸張
    器に含まれる前記ストアする手段は、延長ストリングをストアする手段を含み、 前記ストアする手段は、前記先行して受け取られた圧縮コードによって表され
    ているデータ文字によって延長された延長ストリングをストアする手段を含む ことを特徴とする装置。
  52. 【請求項52】 請求項48に記載の装置において、 前記受け取られた入力圧縮コードが予約コードと等しいかどうかを判断する手
    段、前記減少ランカウントをフェッチする手段、前記ランカウントを回復する手
    段、データ文字を反復的に取得する手段および前記回復されたランを出力する前
    記手段は、ラン処理を実行する手段を含み、 前記LZWデータ伸張器は、第1圧縮コードがそこからフェッチされる初期処
    理ポイントを含むように動作し、 前記装置は、さらに、 前記ラン処理を実行した後、前記初期処理ポイントに戻る手段を 含むことを特徴とする装置。
JP2001504594A 1999-06-19 2000-06-15 ランレングス符号化/復号化が組み込まれているlzwデータ圧縮装置と方法 Pending JP2003502930A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/336,219 1999-06-19
US09/336,219 US6169499B1 (en) 1999-06-19 1999-06-19 LZW data compression/decompression apparatus and method with embedded run-length encoding/decoding
PCT/US2000/016509 WO2000079687A1 (en) 1999-06-19 2000-06-15 Lzw data compression/decompression apparatus and method with embedded run-length encoding/decoding

Publications (2)

Publication Number Publication Date
JP2003502930A true JP2003502930A (ja) 2003-01-21
JP2003502930A5 JP2003502930A5 (ja) 2007-08-09

Family

ID=23315088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001504594A Pending JP2003502930A (ja) 1999-06-19 2000-06-15 ランレングス符号化/復号化が組み込まれているlzwデータ圧縮装置と方法

Country Status (7)

Country Link
US (1) US6169499B1 (ja)
EP (1) EP1195010B1 (ja)
JP (1) JP2003502930A (ja)
AU (1) AU5874900A (ja)
CA (1) CA2374389C (ja)
DE (1) DE60009502T2 (ja)
WO (1) WO2000079687A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507920A (ja) * 1999-08-12 2003-02-25 ユニシス コーポレーション ルックアヘッド数学的ラン処理を使用するlzwデータ圧縮装置および方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
GB0001707D0 (en) * 2000-01-25 2000-03-15 Btg Int Ltd Data compression having more effective compression
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US6307488B1 (en) * 2000-05-04 2001-10-23 Unisys Corporation LZW data compression and decompression apparatus and method using grouped data characters to reduce dictionary accesses
US6968012B1 (en) 2000-10-02 2005-11-22 Firepad, Inc. Methods for encoding digital video for decoding on low performance devices
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US9143546B2 (en) 2000-10-03 2015-09-22 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
US6426711B1 (en) * 2001-05-14 2002-07-30 Unisys Corporation Character table implemented data compression method and apparatus
US20030088537A1 (en) * 2001-08-08 2003-05-08 Nec Eluminant Technologies, Inc. High speed data compression and decompression apparatus and method
US6466144B1 (en) * 2001-11-30 2002-10-15 Unisys Corporation Data decompressor for use with a data compressor implemented with limited length character tables and compact string codes
KR100532275B1 (ko) * 2002-12-11 2005-11-29 삼성전자주식회사 이미지 압축방법
US6756923B1 (en) * 2003-05-30 2004-06-29 Unisys Corporation Data compressor utilizing switched input coincidence elements arranged in virtual levels
CN106549672B (zh) * 2016-10-31 2019-07-12 合肥移顺信息技术有限公司 一种加速度传感器的三轴数据压缩方法
CN109857463B (zh) * 2019-01-30 2020-12-01 上海兆芯集成电路有限公司 加速压缩方法以及加速压缩装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
US4929946A (en) 1989-02-09 1990-05-29 Storage Technology Corporation Adaptive data compression apparatus including run length encoding for a tape drive system
US4971407A (en) 1989-08-09 1990-11-20 Unisys Corp. Two stage run and string data compressor providing doubly compressed output
US4988998A (en) 1989-09-05 1991-01-29 Storage Technology Corporation Data compression system for successively applying at least two data compression methods to an input data stream
US5247638A (en) 1990-06-18 1993-09-21 Storage Technology Corporation Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
US5389922A (en) 1993-04-13 1995-02-14 Hewlett-Packard Company Compression using small dictionaries with applications to network packets
GB2301252A (en) * 1995-05-23 1996-11-27 Ibm Run length data compression
US5861827A (en) 1996-07-24 1999-01-19 Unisys Corporation Data compression and decompression system with immediate dictionary updating interleaved with string search

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003507920A (ja) * 1999-08-12 2003-02-25 ユニシス コーポレーション ルックアヘッド数学的ラン処理を使用するlzwデータ圧縮装置および方法

Also Published As

Publication number Publication date
EP1195010B1 (en) 2004-03-31
US6169499B1 (en) 2001-01-02
WO2000079687A1 (en) 2000-12-28
CA2374389A1 (en) 2000-12-28
DE60009502T2 (de) 2005-04-14
EP1195010A1 (en) 2002-04-10
CA2374389C (en) 2005-09-20
DE60009502D1 (de) 2004-05-06
AU5874900A (en) 2001-01-09

Similar Documents

Publication Publication Date Title
JP2003502930A (ja) ランレングス符号化/復号化が組み込まれているlzwデータ圧縮装置と方法
KR100332709B1 (ko) 스트링 검색이 포함되어 있는 즉각적인 사전 갱신을 갖춘 데이터
KR900001821B1 (ko) 2진 데이타 압축, 신장 처리 장치
US6188333B1 (en) LZW data compression apparatus and method using look-ahead mathematical run processing
JP3631144B2 (ja) 数学的ラン処理を使用した埋込み型ランレングス符号化を用いたデータ圧縮方法および装置
US6268811B1 (en) Data compression method and apparatus with embedded run-length encoding
JPH0884260A (ja) 2次元画像データの圧縮方式および伸長方式
US6674374B1 (en) Data compressor utilizing switched input coincidence elements
JPH07336696A (ja) 2次元画像データの圧縮方式および伸長方式
JPH05341955A (ja) データ圧縮および復元方式
US6756923B1 (en) Data compressor utilizing switched input coincidence elements arranged in virtual levels
US6653949B1 (en) Data compression apparatus and method utilizing tandem coupled matrices
JP3134461B2 (ja) 変化点検出回路
US6812866B1 (en) Data decompressor utilizing sequentially coupled logic elements
JPH06291677A (ja) データ圧縮装置及びデータ復元装置
JPH07264075A (ja) データ圧縮装置
JPH0846793A (ja) 2次元画像データの圧縮方式および伸長方式
JPH08223429A (ja) 画像データ圧縮方法および画像端末装置
JPH08130651A (ja) 2次元画像データの圧縮方式および伸長方式
JPS6248874A (ja) イメ−ジ圧縮装置
JPH0686081A (ja) 圧縮データ伸長装置
JPS59152781A (ja) 画像復元方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070615

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100219