JP3522331B2 - データ圧縮方法 - Google Patents
データ圧縮方法Info
- Publication number
- JP3522331B2 JP3522331B2 JP10783794A JP10783794A JP3522331B2 JP 3522331 B2 JP3522331 B2 JP 3522331B2 JP 10783794 A JP10783794 A JP 10783794A JP 10783794 A JP10783794 A JP 10783794A JP 3522331 B2 JP3522331 B2 JP 3522331B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- procedure
- compression
- string
- dictionary
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion 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
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
特にゲーム機のキャラクタジェネレータ等に好適な辞書
方式・LossLess型のデータ圧縮方法に関する。
記憶装置の容量を低減化し、またデータ伝送効率を向上
させるために各種のデータ圧縮方法が開発されている
が、それらを符号化/復号化における可逆性の観点から
はLossy型とLossLess型に大別することができる。ここ
に、Lossy型のデータ圧縮方法は不可逆符号化方式であ
り、カラー静止画の圧縮方式であるJPEG(Joint Pho
tographic Coding Experts Group)や、動画対応の圧縮
方式であるMPEG(Moving Picture Image Coding Exp
erts Group)や、テレビ会議/電話用符号化方式のH.2
61等の国際標準方式があるが、情報量の損失を伴うも
のの、約1/50〜1/1000という高い圧縮率を実現できる。
符号化方式であり、一般的には圧縮率が約1/2程度でLos
sy型のような高い圧縮率を実現できないが、元データの
損失を伴わないで符号化/復号化が可能になるという大
きな利点を有しており、ランレングス(Run Length)符号
化、ハフマン(Huffman)符号化、算術符号化、LZ(Lemp
el-Ziv)方式等がある。 (1) ランレングス符号化方式は最も単純な圧縮方式で
あり、ランレングスの値によって出現確率が異なること
を利用し、確率の高いランレングスに短い符号を割り当
てることによりデータ圧縮を図る。この方式は、CD-
I(Compact Disc-Interactive)やマルチメディアOSの
Video for Windows等で使用されている。 (2) ハフマン符号化方式は主に画像処理分野で用いら
れている圧縮方式であり、G3ファクシミリのMH(Mod
ified Huffman)符号等がその方式を応用している。尚、
前記のJPEGやMPEGやH.261もハフマン符号
化方式を用いるが、前処理段階でDCT(Discrete Cosi
ne Transfer)を使用しているためにLossy型となる。 (3) 算術符号化方式はファクシミリの次世代符号化方
式であるJBIG(JointBi-level Image Coding Expert
s Group)に使用されており、ハフマン符号化方式では扱
えない冗長なデータストリームをストリングの生起確率
に基づいて一括圧縮し、情報エントロピの点で最適なデ
ータ圧縮を実現する。
返しを検出してデータ圧縮を行う方式であり、パーソナ
ルコンピュータのデータ圧縮ツールや、バックアップ用
のカートリッジ・テープ装置等の製品に適用されてい
る。そして、このLZ方式はLZ77[参考文献;Ziv,J.
and Lempel,A., “A Universal Algorithm for Sequent
ial Data Compression," IEE Transaction on Informat
ion Theory, vol.IT-23, no.3, pp.337-343., Sep.197
7]及びLZ78[参考文献;Ziv,J.and Lempel,A., “Co
mpression of Individual Sequences via Variable Rat
e Coding," IEE Transaction on Information Theory,
vol.IT-24, no.5, pp,530-536., Sep.1978]の2系統に
大別されるが、前者の対応特許としては米国特許第5,00
3,307号及び第5,016,009号等があり、後者の対応特許と
しては米国特許第4,558,302号及び第4,814,746号等があ
る。LZ77とLZ78は現在処理対象となっているストリ
ングと過去に処理したストリングを比較して一致する最
長のストリングを求める点で共通するが、LZ77では過
去に処理したストリングをバッファに格納しておき、符
号化処理の進行に伴いそのバッファを恰も入力データス
トリーム上をスライドさせるような手段を用い、LZ78
では過去に処理したストリングに専用のコードを割り当
てて辞書形式で登録する手段を用いている。その結果、
機能面でLZ77とLZ78を比較した場合に、圧縮率の点
ではLZ77が優り、データ処理速度の点ではLZ78が優
るという特徴がある。
分野においても高度な映像表現が求められるようにな
り、既に業務用ゲーム機では3次元CG(Computer Grap
hics)を駆使した映像表現が行われているが、最近では
家庭用テレビ・ゲーム機やマルチメディアシステムでも
そのような映像表現が可能なデータ処理システムの開発
が進行している。そして、映像表現が複雑になると、そ
れだけデータ量が大きくなり、高い圧縮率で且つ高速で
の符号化/復号化が可能なLossLess型のデータ圧縮方法
が求められる。
トロール・パッドのボタンを押してから1/60〜1/30秒(カ
ラー・テレビ信号の1〜2フィールドの表示時間に相当)
後には表示画面上で反応が発生しなければゲーム自体の
面白さが失われるため、圧縮率の高さと共に高速での符
号化/復号化と画面展開が不可欠とされる。その意味
で、前記のLZ方式(特にLZ78)や、同方式とハフマン
符号化方式を組合せたLHA方式は、ゲーム機における
データ圧縮方法として好適なデータ圧縮方法であるとい
える。
れる個々のストリングが可変長であり、またその圧縮/
伸長アルゴリズムも複雑であることから、データ処理手
順が多くなると共に、ハードウェアの構成も複雑化す
る。また、ゲーム機のキャラクタジェネレータでは比較
的小さなデータブロックを取り扱うが、従来のデータ圧
縮方法では64バイト程度のデータブロックに対して
は、圧縮が不可能か、又は十分な圧縮率が得られない。
で取り扱うデータブロックは、その性質上、同一ストリ
ングの生起確率が高く、且つキャラクタの変化態様に対
応した各データブロックで同一ストリングの個数が大き
く変化しないという傾向がある。そこで、本発明は、高
速での圧縮/伸長が可能であり、データブロックの大き
さを問わずに高い圧縮率が実現できるLossLess型のデー
タ圧縮方法を提供することを目的として創作された。
尚、本発明は、前記の理由からゲーム機のキャラクタジ
ェネレータに最適であるが、コンピュータや通信機器で
取り扱う一般のデータに対しても有効なデータ圧縮方法
を与える。
ル入力信号のデータストリームを第1記憶手段に記憶さ
せ、そのデータストリーム中に出現したストリングを第
2記憶手段の辞書に登録しながら前記データストリーム
を圧縮するデータ圧縮方法において、第1記憶手段に記
憶せしめられた元データストリームの総データ容量をS
*Nビット;[但し、Sは2以上の整数、Nは3以上の整
数]、第2記憶手段の辞書の最大登録件数をD;[但し、
Dは2のS乗]として、後記の第3手順から第5手順ま
での繰返し実行回数R;[但し、RはD以下の整数]を指
定する第1手順と、第1記憶手段の元データストリーム
をSビット長の元ストリング毎に分割し、各々の元スト
リングを1ビットの非圧縮識別ビットが付加された(S
+1)ビット長の作業用ストリングに変換して作業用デ
ータストリームを作成する第2手順と、作業用データス
トリームにおける連続する2個の作業用ストリングの組
合せ[以下、「組合せストリング」という]の内で、その出
現頻度の大きいものからD/R番目以内のものであっ
て、且つ出現頻度が3以上の組合せストリングを検出す
る第3手順と、前記第3手順で検出した各組合せストリ
ングに対応させて、各辞書番号と圧縮識別ビットからな
る(S+1)ビット長の圧縮用辞書データを第2記憶手段
に登録する第4手順と、 作業用データストリームにお
ける組合せストリングの内で、第2記憶手段に登録され
ている組合せストリングと同一のものを、第2記憶手段
でその組合せストリングに対応せしめられている各圧縮
用辞書データへ書換える第5手順とからなり、前記第5
手順で書換えられたデータストリームを前記第3手順に
おける作業用データストリームとして、前記第3手順か
ら前記第5手順までをR回繰返し、その時点で第1記憶
手段が記憶しているデータストリームと第2記憶手段に
登録されている全ての組合せストリングと圧縮用辞書デ
ータを圧縮データとすることを特徴としたデータ圧縮方
法に係る。
て、R=1とした場合に、第2手順では元ストリングに
非圧縮識別ビットを付加せずに元ストリングをそのまま
作業用ストリングとした作業用データストリームを作成
し、第4手順では圧縮用辞書データを辞書番号のみのS
ビット長とすることとしたデータ圧縮方法に係る。
から第5手順の繰返し実行回数Rを指定するが、この指
定回数は第2記憶手段に作成される辞書の最大登録件数
D以下の範囲で、所望のデータ圧縮率が得られる回数と
して指定される。第2手順は、前置処理手順であり、第
1記憶手段に格納されている元データストリームの各元
ストリング(Sビット)に非圧縮識別ビット(1ビット)を
付加して(S+1)ビット長の作業用ストリングで構成さ
れた作業用データストリームを作成し、後の第5手順で
書換えられない作業用ストリングが非圧縮状態にあるこ
とを識別できるようにする。
手順から第5手順で実行される。辞書作成は作業用デー
タストリーム中で連続した2個の作業用ストリングの組
合せ[2*(S+1)ビット]を単位として行われる。先
ず、第3手順で出現頻度が3以上の組合せストリングが
検出され、第4手順で前記の組合せストリングに対応さ
せて圧縮用辞書データを第2記憶手段の辞書へ登録す
る。ここに、圧縮用辞書データは各辞書番号と圧縮識別
ビットからなる(S+1)ビット長とされ、作業用ストリ
ングと同一のビット長である。
圧縮を行い、作業用データストリームの組合せストリン
グの内で、辞書の組合せストリングと同一のものを辞書
でその組合せストリングに対応した各圧縮用辞書データ
に書換える。その結果、個々の書換え対象となった作業
用データストリームの組合せストリングについてみる
と、2*(S+1)ビットが(S+1)ビットへ変換される
ことになるが、辞書側の各組合せストリングは作業用デ
ータストリーム中での出現頻度が3以上のものであるた
め、辞書側の1件の登録について3*(S+1)ビット分
以上のデータが削減されることになる。一方、前記の作
業用データストリーム側のデータ圧縮に対して、辞書側
では1件の登録によって3*(S+1)ビット分だけデー
タ量が増加する。従って、そのデータの増減を相殺する
と、作業用データストリーム中で辞書の各組合せストリ
ングの出現頻度が3の場合には同一のデータ量になる
が、4以上であればデータ圧縮がなされる。
第1手順で指定されたR回だけ繰返して実行されるが、
その度に第5手順で書換えられたデータストリームは第
3手順における作業用データストリームとして取り扱わ
れる。従って、2回目以降の辞書作成・圧縮手順では、
作業用データストリーム中に非圧縮状態の作業用ストリ
ングと圧縮用辞書データが混在しており、第3手順及び
第4手順ではその作業用データストリームを対象として
出現頻度が3以上の組合せストリングを新たな圧縮用辞
書データと対応させて辞書に登録し、第5手順で作業用
データストリーム中のその組合せストリングが新たな圧
縮用辞書データに書換えられることになる。その結果、
第3手順から第5手順の繰返しが進行することによって
高い圧縮率が得られてゆく。尚、前記のように、出現頻
度が3の組合せストリングについては、その時点での圧
縮処理段階で実効性を有していないことになるが、それ
以降の辞書作成・圧縮手順の繰返し段階で圧縮に寄与す
る。
順から第5手順の繰返しによって得られたデータストリ
ームと辞書登録されたデータがあれば、辞書を用いなが
ら前記とは逆のアルゴリズムで元データストリームを再
生することができる。即ち、各作業用ストリングの圧縮
/非圧縮識別ビットを検出しながら、圧縮識別ビットで
あればその作業用ストリングを辞書で対応付けられた組
合せストリングに書換え、非圧縮識別ビットであればそ
のままにして次の作業用ストリングを検出する処理を繰
返し、最終的に得られた作業用データストリームから非
圧縮ビットを除去して元データストリームを得る。
組合せストリングが「出現頻度の大きいものからD/R
番目以内のもの」という制限を課して、組合せストリン
グの検出個数の上限を設けている。これは、初期の第3
手順から第5手順の繰返し段階においては、第3手順で
検出される組合せストリングの個数が辞書の最大登録件
数を超えてしまうような場合が生じるためであり、前記
の制限によって指定した繰返し回数Rが確保できるよう
にしている。
発明において、第3手順から第5手順を繰返さない場合
(R=1の場合)の特殊な処理に関する。その場合には、
辞書において圧縮対象となる連続した2個の元ストリン
グと辞書番号が対応付けられていれば伸長処理が可能で
ある。
過程で、第2手順では元ストリングに非圧縮識別ビット
を付加せずに元ストリングをそのままSビット長の作業
用ストリングとし作業用データストリームを作成し、ま
た第4手順でも圧縮用辞書データを辞書番号のみのSビ
ット長で構成する。元データストリームの内容等によっ
ては圧縮率よりも圧縮/伸長処理の高速性を要求される
ことがあり、この発明はそのような場合に用いられる。
面を用いて詳細に説明する。図1はデータ圧縮を実行す
るためのシステム回路図であり、1はデータストリーム
を格納するためのRAM、2は辞書登録データを格納す
るためのRAM、3はデータ圧縮プログラムを格納した
ROM、4はCPUを示し、CPU4が受信した元データ
ストリームをROM3のプログラムに基づいてRAM1,2
を使用しながらソフトウェア的にデータ圧縮を行う。
尚、同図では独立したメモリとしてRAM1,2を用いて
いるが、単一のRAMのメモリ領域を区分してデータス
トリームと辞書登録データを格納させるようにしてもよ
い。
ート、及び図5から図13に示されるの実際のデータス
トリームと辞書登録データの内容を参照しながら、本実
施例のデータ圧縮方法を説明する。先ず、ホスト側から
圧縮手順の繰返し回数;Rが指定されると、CPU4はそ
の回数データをセーブし、元データストリームを受信す
るとそれをRAM1に格納する(図2;P1,P2)。そして、
受信した元データストリームがN個の元ストリング[S
ビット長]で構成されているとした場合に、CPU4はR
AM1に格納した元データストリームをSビット単位に
分割し、各元ストリングをその先頭に非圧縮識別ビット
“0"を付加した各作業用ストリングに変換し、N個の
作業用ストリング[(S+1)ビット長]で構成された作業
用データストリームを作成する(図2;P3)。
に示す。図5の作業用データストリームは、512個の
7ビット長の元ストリングで構成された元データストリ
ームから作成されたものであり、512個の8ビット長
の作業用ストリングをそれぞれ16進数で示してある。
そして、各作業用ストリングは16進数で00〜3dの
範囲内で表現されており、全ての作業用ストリングのM
SBが非圧縮識別ビットとして“0"に設定されてい
る。尚、この実例では、元データストリームの全ての元
ストリングが2進数で“000000"から“1111
01"までの6ビット長で表現が可能なデータ内容であ
ったために作業用データストリームの各作業用ストリン
グが00〜3dの範囲内で表現され、各作業用ストリン
グにおける第2ビット目も“0"になっているが、元ス
トリングが7ビット長で表現されるデータであっても支
障がないことは当然である。
る作業用データストリームから連続した2個の作業用ス
トリング(組合せストリング)を先頭アドレスから順次読
出し、その読出しの度にその組合せストリングが過去に
読出した組合せストリングか否かをRAM2の登録内容
を確認して判別し、もし新規な組合せストリングであれ
ば、出現頻度データ「1」とその組合せストリングをRA
M2へ登録し、既に読出して登録されている組合せスト
リングであれば、RAM2のその組合せストリングに対
応した出現頻度データを+1インクリメントする(図3;
P4〜P10)。従って、RAM1の作業用データストリーム
全体について前記の手順が実行されると、作業用データ
ストリームの組合せストリングの全ての種類と各組合せ
ストリングの出現頻度データが対応登録される。
合せストリングの内で、[出現頻度データの大きいも
のからD/R番目以内(但し、Dは2のS乗)のものであ
ること]、及び[出現頻度データが3以上であるこ
と]という2つの条件を満たす組合せストリングのみを
残し、それらの組合せストリングに圧縮識別ビット
“1"と辞書番号とからなる各圧縮用辞書データを確定
登録させる(図3;P11)。前記の条件は、Dが辞書の最
大登録件数を、Rが後述の圧縮手順の指定繰返し回数を
示していることから、各回の圧縮手順における登録件数
の上限を平均値;D/Rとして設定している。これは、
作業用データストリームの内容にもよるが、初期の圧縮
手順では条件を満たす組合せストリングが膨大な数に
なる場合が多く、前記の指定繰返し回数を確保できなく
なることを防止するためである。尚、前記の条件の必
要性に関しては、後述の圧縮手順において説明する。
に関して、前記の辞書作成手順で得られる辞書登録デー
タは図6に示すような内容となる。同図において、16
進数で80〜9aで示されるデータが圧縮用辞書データ
であり、各圧縮用辞書データに対応付けられているデー
タが前記の条件及びを満たした組合せストリングに
相当し、27件分の登録件数が得られている。そして、
前記の圧縮用辞書データは16進数で80から始まるも
のであることから、そのMSBは全て“1"で与えら
れ、同ビットが圧縮識別ビットを表現すると共に、それ
以降の7ビットで128個(=D;辞書の最大登録件数)
の辞書番号が表現される。尚、この実例では指定繰返し
回数が4回(R=4)とされ、D/R=32であることか
ら、条件が定める上限を超えていなかった。
用いて作業用データストリームの圧縮手順へ移行する。
この圧縮手順では、先ずRAM1に格納されている作業
用データストリームの組合せストリングを先頭アドレス
側から読出し、その読出した組合せストリングとRAM
2に登録されている各組合せストリングを比較する(図
4;P12,P13)。そして、RAM2に同一の組合せストリン
グがあれば、RAM1の読出した組合せストリングをR
AM2でその組合せストリングに対応して登録されてい
る圧縮用辞書データに書換える(図4;P14,P15)。即ち、
この段階で、2*(S+1)ビット長の組合せストリング
が(S+1)ビット長の圧縮用辞書データに置換されるこ
とになる。また、CPU4は前記の書換えが実行された
場合には、書換え対象となった組合せストリングより後
の作業用データストリームを、その先頭データが圧縮用
辞書データの次のアドレスに位置するように移動させる
(図4;P16)。即ち、(S+1)ビット分だけデータ圧縮が
なされたために、そのビット分だけデータを移動させて
RAM1内での作業用ストリームの連続性を確保する。
の組合せストリングが存在しなかった場合には(図4;P1
3,P14)、読出したRAM1の組合せストリングはそのま
まにして、次の組合せストリングを比較対象とする。従
って、RAM1の組合せストリングが圧縮用辞書データ
に書換えられた場合には、読出しアドレスを(S+1)だけ
進めて次の組合せストリングを読出し(P17)、組合せス
トリングの書換えがなかった場合には、読出しアドレス
を2*(S+1)だけ進めて次の組合せストリングを読出
す(P18)。
以上の圧縮手順(図4;P13〜P18)は、RAM1の作業用デ
ータストリーム全体について実行され(図4;P19)、第1
回目の辞書作成・圧縮手順が完了する。ところで、前記
の圧縮手順で圧縮用辞書データへの書換え対象となった
組合せストリングは前記の条件を満たしていることか
ら、作業用データストリーム全体で少なくとも3個存在
しており、作業用データストリームに関してみれば、1
件の辞書登録データを用いて3*(S+1)ビット以上の
データ圧縮がなされる。一方、1件の辞書登録データ
は、(S+1)ビットの圧縮用辞書データと2*(S+1)
ビットの組合せストリングからなり、3*(S+1)ビッ
トのデータ容量となる。従って、辞書登録データと作業
用データストリームの総データ容量についてみれば、出
現頻度;Fが3の組合せストリングに関しては第1回目
の辞書作成・圧縮手順でデータ圧縮に寄与していない
が、出現頻度;Fが4以上のものについては(F−3)*
(S+1)ビット分だけデータ圧縮を実現していることに
なる。尚、出現頻度;Fが3の組合せストリングについ
ても、2*(S+1)ビット長の組合せストリングを(S
+1)ビット長の圧縮用辞書データに書換える役割を果
たしており、第2回目以降の辞書作成・圧縮手順でデー
タ圧縮の効率化に寄与する。
対して図6の各辞書登録データを用いた第1回目の辞書
作成・圧縮手順(図3,図4;P12〜P19)を実行すると、図
7に示すような作業用データストリームが得られる。こ
の第1回目の辞書作成・圧縮手順では、元データストリ
ームの総容量が448バイトであり、図6の辞書登録デ
ータと図7の作業用ストリームの総容量が408バイト
(=81バイト+327バイト)であることから、圧縮率
で約91.1%のデータ圧縮がなされたことになる。
用データストリームを新たな圧縮対象として、図3及び
図4に示された辞書作成・圧縮手順(P4〜P19)を指定繰返
し回数;Rだけ繰返す(図4;P20→図3;P4)。尚、繰返さ
れる辞書作成・圧縮手順において、圧縮対象となる作業
用データストリームは前回の圧縮手順で得られているも
のであり、当然にその作業用データストリームには非圧
縮のままの作業用ストリングと圧縮用辞書データが混在
している。
・圧縮手順で得られた作業用データストリーム(図7)を
対象として作成された辞書登録データは図8に示される
ような内容となる。同図から明らかなように、圧縮用辞
書データとして9b〜9fが各組合せストリングに対応
して追加登録されており、それらの追加登録された辞書
登録データを用いて圧縮された作業用データストリーム
は図9に示される。そして、この第2回目の辞書作成・
圧縮手順では、図8の辞書登録データと図9の作業用デ
ータストリームの総容量が362バイト(=96バイト
+266バイト)であることから、圧縮率で約80.8%
になっている。更に、同様にして、第3回目の辞書作成
・圧縮手順では、図10の辞書登録データと図11の作
業用データストリームが得られ、それらの総容量が35
3バイトであることから、圧縮率で約78.8%とな
り、第4回の辞書作成・圧縮手順では、図12の辞書登
録データと図13の作業用データストリームが得られ、
それらの総容量が352バイトであることから、圧縮率
で約78.6%となる。
あるR回の辞書作成・圧縮手順が完了すると、CPU4は
RAM2の全ての辞書登録データとRAM1の圧縮された
作業用データストリームを読出してホスト側へ転送する
(図4;P21)。一方、転送された圧縮データは次のような
手順で伸長再生される。先ず、圧縮された作業用データ
ストリームの先頭から(S+1)ビット単位で作業用スト
リングを検出し、そのMSBが“1"であれば圧縮用辞
書データに置換されているストリングであるため、辞書
登録データを用いてその圧縮用辞書データに対応した組
合せストリングへ書換え、逆にMSBが“0"であれば
元ストリングであるため、そのままにして次の作業用ス
トリングの検出へ移行する。そして、その手順を作業用
データストリーム全体について実行して第1回目の伸長
された作業用データストリームを得るが、同様の手順を
R回繰返し、最終的に圧縮前の作業用データストリーム
を再生する。但し、最終的に得られた作業用データスト
リームの各作業用ストリングにはMSBに非圧縮識別ビ
ット“0"が付加されているため、各作業用ストリング
のMSBを除去して元データストリームを得る。尚、こ
の実施例では、RAM2に圧縮識別ビット“1"と辞書番
号とからなる圧縮用辞書データを登録させているが、実
際のシステム上でのハードウェアやソフトウェアの都合
により、圧縮/非圧縮識別ビットのストリームを別のメ
モリ領域に格納させておいてもよい。
数;Rに基づいて、その回数だけ辞書作成・圧縮手順を繰
返しているが、R=1の場合、即ち辞書作成・圧縮手順
を1回だけ行う方が都合の良い場合がある。例えば、元
データストリームの内容によっては、1回の圧縮手順の
みで比較的高い圧縮率が得られ、伸長再生側で高速性が
要求される場合がある。
た場合には、図2の作業用データストリームの作成手順
では各元ストリングに対する非圧縮識別ビット“0"の
付加を実行せず、それに応じて図3の辞書作成手順では
圧縮用辞書データを辞書番号のみのSビット長で登録
し、図4の圧縮手順でも作業用ストリングをSビット長
として取扱うようにする。そして、この場合には、最終
的に得られる辞書登録データと圧縮されたデータストリ
ームの総容量を低減化することができ、また1回の圧縮
手順だけであるため、圧縮識別ビットが付加されていな
くても、伸長再生側ではRAM2に登録されている組合
せストリング自体から圧縮/非圧縮の識別が可能であ
る。従って、データ転送時間と伸長再生時間が大幅に短
縮され、映像データ等の場合には高速での画面展開が可
能になる。尚、圧縮手順が1回だけであるために高い圧
縮率を期待することができないが、既存のランレングス
法等のアルゴリズムを組合せることでその不利を解消さ
せることもできる。
を有していることにより、次のような効果を奏する。請
求項1の発明は、辞書方式によるLossLess型のデータ圧
縮方法において、圧縮/非圧縮識別ビットを付加しなが
ら、データストリーム中で連続的又は離散的に存在する
固定長の組合せストリングをその半分のビット長の固定
長ストリングで書換えてデータ圧縮を行う方法を採用し
ている。従って、その圧縮/伸長アルゴリズムの簡易性
によって高速な圧縮/伸長処理が可能になる。また、ソ
フトウェア処理だけでデータ圧縮を実行するため、通常
のRAMとCPU等からなる簡単なシステム構成で実現
できる。特に、作業用ストリングを1バイトとし、作業
用データストリームや辞書登録データの処理単位である
組合ストリングを2バイトとすると、従来のデータ圧縮
方法では不可能であった64バイト程度の小さなデータ
ブロックも効率的に圧縮でき、ゲーム機のキャラクタジ
ェネレータに最適なデータ圧縮方法を提供する。請求項
2の発明は、高い圧縮率は期待できないが、データスト
リームの内容に応じてデータ転送時間と圧縮/伸長に要
する時間を短縮でき、ゲーム機等で高速な画面展開が必
要とされる場合に適応的に利用できるデータ圧縮方法を
提供する。
ーチャートである。
タストリームの実例を示す図である。
データを示す図である。
トリームを示す図である。
データを示す図である。
トリームを示す図である。
録データを示す図である。
ストリームを示す図である。
録データを示す図である。
ストリームを示す図である。
登録データ格納用)、3…ROM、4…CPU。
Claims (2)
- 【請求項1】 ディジタル入力信号のデータストリーム
を第1記憶手段に記憶させ、そのデータストリーム中に
出現したストリングを第2記憶手段の辞書に登録しなが
ら前記データストリームを圧縮するデータ圧縮方法にお
いて、第1記憶手段に記憶せしめられた元データストリ
ームの総データ容量をS*Nビット;[但し、Sは2以上
の整数、Nは3以上の整数]、第2記憶手段の辞書の最
大登録件数をD;[但し、Dは2のS乗]として、後記の
第3手順から第5手順までの繰返し実行回数R;[但し、
RはD以下の整数]を指定する第1手順と、第1記憶手
段の元データストリームをSビット長の元ストリング毎
に分割し、各々の元ストリングを1ビットの非圧縮識別
ビットが付加された(S+1)ビット長の作業用ストリン
グに変換して作業用データストリームを作成する第2手
順と、作業用データストリームにおける連続する2個の
作業用ストリングの組合せ[以下、「組合せストリング」
という]の内で、その出現頻度の大きいものからD/R
番目以内のものであって、且つ出現頻度が3以上の組合
せストリングを検出する第3手順と、前記第3手順で検
出した各組合せストリングに対応させて、各辞書番号と
圧縮識別ビットからなる(S+1)ビット長の圧縮用辞書
データを第2記憶手段に登録する第4手順と、 作業用
データストリームにおける組合せストリングの内で、第
2記憶手段に登録されている組合せストリングと同一の
ものを、第2記憶手段でその組合せストリングに対応せ
しめられている各圧縮用辞書データへ書換える第5手順
とからなり、前記第5手順で書換えられたデータストリ
ームを前記第3手順における作業用データストリームと
して、前記第3手順から前記第5手順までをR回繰返
し、その時点で第1記憶手段が記憶しているデータスト
リームと第2記憶手段に登録されている全ての組合せス
トリングと圧縮用辞書データを圧縮データとすることを
特徴としたデータ圧縮方法。 - 【請求項2】 請求項1のデータ圧縮方法において、R
=1とした場合に、第2手順では元ストリングに非圧縮
識別ビットを付加せずに元ストリングをそのまま作業用
ストリングとした作業用データストリームを作成し、第
4手順では圧縮用辞書データを辞書番号のみのSビット
長とすることとしたデータ圧縮方法。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10783794A JP3522331B2 (ja) | 1994-04-22 | 1994-04-22 | データ圧縮方法 |
| US08/426,620 US5604495A (en) | 1994-04-22 | 1995-04-21 | Data compression method and system |
| DE69517852T DE69517852T2 (de) | 1994-04-22 | 1995-04-21 | Datenkompressionsverfahren und System |
| EP95106020A EP0678986B1 (en) | 1994-04-22 | 1995-04-21 | Data compression method and system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10783794A JP3522331B2 (ja) | 1994-04-22 | 1994-04-22 | データ圧縮方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07295785A JPH07295785A (ja) | 1995-11-10 |
| JP3522331B2 true JP3522331B2 (ja) | 2004-04-26 |
Family
ID=14469308
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10783794A Expired - Lifetime JP3522331B2 (ja) | 1994-04-22 | 1994-04-22 | データ圧縮方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5604495A (ja) |
| EP (1) | EP0678986B1 (ja) |
| JP (1) | JP3522331B2 (ja) |
| DE (1) | DE69517852T2 (ja) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000201080A (ja) * | 1999-01-07 | 2000-07-18 | Fujitsu Ltd | 付加コ―ドを用いたデ―タ圧縮/復元装置および方法 |
| US7113939B2 (en) | 1999-09-21 | 2006-09-26 | International Business Machines Corporation | Architecture to enable search gateways as part of federated search |
| US6370541B1 (en) | 1999-09-21 | 2002-04-09 | International Business Machines Corporation | Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores |
| US6466933B1 (en) | 1999-09-21 | 2002-10-15 | International Business Machines Corporation | Delayed delivery of query results or other data from a federated server to a federated client until such information is needed |
| US6792416B2 (en) | 1999-09-21 | 2004-09-14 | International Business Machines Corporation | Managing results of federated searches across heterogeneous datastores with a federated result set cursor object |
| US7197491B1 (en) | 1999-09-21 | 2007-03-27 | International Business Machines Corporation | Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores |
| US7162713B2 (en) * | 2000-03-14 | 2007-01-09 | Arc International | Difference engine method and apparatus |
| US6552672B1 (en) * | 2002-03-18 | 2003-04-22 | Hewlett-Packard Company | Method, system and program storage device for providing a backup of data of a memory to at least one storage medium |
| US7307552B2 (en) * | 2005-11-16 | 2007-12-11 | Cisco Technology, Inc. | Method and apparatus for efficient hardware based deflate |
| US7283072B1 (en) * | 2006-03-30 | 2007-10-16 | International Business Machines Corporation | Methods of creating a dictionary for data compression |
| US20080001790A1 (en) * | 2006-06-30 | 2008-01-03 | Kyle Kirby | Method and system for enhancing data compression |
| WO2008078390A1 (ja) * | 2006-12-26 | 2008-07-03 | Fujitsu Limited | データ圧縮装置およびデータ復元装置 |
| NL2001597C2 (nl) * | 2008-05-21 | 2009-11-24 | Ipo Paulus Willem Marinus Boom | Werkwijze en inrichting voor coderen en decoderen van data in unieke getalswaarden. |
| US9020262B2 (en) | 2012-07-31 | 2015-04-28 | Hewlett-Packard Development Company, L.P. | Symbol compression using conditional entropy estimation |
| JP2017513252A (ja) * | 2014-01-29 | 2017-05-25 | リリカン アナリティクス インコーポレイテッドRelican Analytics,Inc. | 最適化されたデータ凝縮器及び方法 |
| JP6256883B2 (ja) * | 2015-03-25 | 2018-01-10 | 国立大学法人 筑波大学 | データ圧縮・解凍システム、データ圧縮方法及びデータ解凍方法、並びにデータ圧縮器及びデータ解凍器 |
| US11122095B2 (en) * | 2019-09-23 | 2021-09-14 | Netapp, Inc. | Methods for dictionary-based compression and devices thereof |
| CN115002465A (zh) * | 2022-05-30 | 2022-09-02 | 深圳市吉迩科技有限公司 | 基于嵌入式系统图片的无损压缩算法、装置、计算机设备及存储介质 |
| CN115981557A (zh) * | 2022-12-22 | 2023-04-18 | 上海创景信息科技有限公司 | 源码动态测试中基于环检测的数据流采集方法及系统 |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4021782A (en) * | 1974-01-07 | 1977-05-03 | Hoerning John S | Data compaction system and apparatus |
| US4814746A (en) * | 1983-06-01 | 1989-03-21 | International Business Machines Corporation | Data compression method |
| US4558302A (en) * | 1983-06-20 | 1985-12-10 | Sperry Corporation | High speed data compression and decompression apparatus and method |
| US4612532A (en) * | 1984-06-19 | 1986-09-16 | Telebyte Corportion | Data compression apparatus and method |
| US4876541A (en) | 1987-10-15 | 1989-10-24 | Data Compression Corporation | Stem for dynamically compressing and decompressing electronic data |
| US4847619A (en) * | 1987-10-19 | 1989-07-11 | Hewlett-Packard Company | Performance-based reset of data compression dictionary |
| US4870415A (en) * | 1987-10-19 | 1989-09-26 | Hewlett-Packard Company | Data compression system with expansion protection |
| GB8815978D0 (en) * | 1988-07-05 | 1988-08-10 | British Telecomm | Method & apparatus for encoding decoding & transmitting data in compressed form |
| GB8828796D0 (en) * | 1988-12-09 | 1989-01-18 | British Telecomm | Data compression |
| US5003307A (en) * | 1989-01-13 | 1991-03-26 | Stac, Inc. | Data compression apparatus with shift register search means |
| US5016009A (en) | 1989-01-13 | 1991-05-14 | Stac, Inc. | Data compression apparatus and method |
| US5254990A (en) * | 1990-02-26 | 1993-10-19 | Fujitsu Limited | Method and apparatus for compression and decompression of data |
| US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
| EP0471518B1 (en) * | 1990-08-13 | 1996-12-18 | Fujitsu Limited | Data compression method and apparatus |
| US5142282A (en) * | 1990-11-07 | 1992-08-25 | Hewlett-Packard Company | Data compression dictionary access minimization |
| US5140321A (en) * | 1991-09-04 | 1992-08-18 | Prime Computer, Inc. | Data compression/decompression method and apparatus |
| US5243341A (en) * | 1992-06-01 | 1993-09-07 | Hewlett Packard Company | Lempel-Ziv compression scheme with enhanced adapation |
| US5373290A (en) * | 1991-09-25 | 1994-12-13 | Hewlett-Packard Corporation | Apparatus and method for managing multiple dictionaries in content addressable memory based data compression |
| US5175543A (en) * | 1991-09-25 | 1992-12-29 | Hewlett-Packard Company | Dictionary reset performance enhancement for data compression applications |
-
1994
- 1994-04-22 JP JP10783794A patent/JP3522331B2/ja not_active Expired - Lifetime
-
1995
- 1995-04-21 DE DE69517852T patent/DE69517852T2/de not_active Expired - Fee Related
- 1995-04-21 EP EP95106020A patent/EP0678986B1/en not_active Expired - Lifetime
- 1995-04-21 US US08/426,620 patent/US5604495A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| DE69517852T2 (de) | 2001-01-11 |
| JPH07295785A (ja) | 1995-11-10 |
| EP0678986B1 (en) | 2000-07-12 |
| DE69517852D1 (de) | 2000-08-17 |
| EP0678986A1 (en) | 1995-10-25 |
| US5604495A (en) | 1997-02-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3522331B2 (ja) | データ圧縮方法 | |
| US5604498A (en) | Huffman decoder | |
| US6285796B1 (en) | Pseudo-fixed length image compression scheme | |
| JP3025301B2 (ja) | データ予備圧縮装置及びデータ予備圧縮システム及びデータ圧縮比改善方法 | |
| US6633242B2 (en) | Entropy coding using adaptable prefix codes | |
| US6008745A (en) | Variable length decoding using lookup tables | |
| JP3141002B2 (ja) | 符号化方法及びデータ圧縮器 | |
| JP3007235B2 (ja) | 可変長符号の伸長装置および圧縮伸長装置 | |
| CN101099174B (zh) | 图像编码方法、编码器、解码方法、解码器以及计算机程序产品 | |
| US20020106019A1 (en) | Method and apparatus for implementing motion detection in video compression | |
| US5673042A (en) | Method of and an apparatus for compressing/decompressing data | |
| CN102088604A (zh) | 一种影片缩略图的压缩方法及压缩装置 | |
| EP0903866B1 (en) | Method and apparatus for data compression | |
| US20060067408A1 (en) | General purpose compression for video images (RHN) | |
| WO1998041026A1 (en) | Encoding method, encoder and recording medium, and decoding method, decoder and recording medium | |
| JPH1065549A (ja) | 可変長符号化データ値の長さを決定する装置、可変長符号化データ値のデータストリームを復号化する装置および可変長符号化データ値の長さを決定する方法 | |
| JP3462867B2 (ja) | 画像圧縮方法および装置、画像圧縮プログラムならびに画像処理装置 | |
| US6370193B1 (en) | MPEG data compression and decompression using adjacent data value differencing | |
| WO2001057804A2 (en) | Method and apparatus for compression and decompression of digital images | |
| JP2016208356A (ja) | 画像圧縮装置、画像圧縮方法、画像伸長装置および画像伸長方法 | |
| JP2940948B2 (ja) | データ圧縮方式 | |
| JP2004517527A (ja) | グラフィック画像符号化 | |
| JP2002290744A (ja) | 画像圧縮方式 | |
| JP4649764B2 (ja) | 画像データ伸長方法および画像データ伸長装置 | |
| JP2001217722A (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: 20040130 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040204 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080220 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100220 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100220 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 8 |
|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 8 |
|
| RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 10 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |