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
Application number
JP10783794A
Other languages
English (en)
Other versions
JPH07295785A (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 株式会社セタ
Priority to JP10783794A priority Critical patent/JP3522331B2/ja
Priority to US08/426,620 priority patent/US5604495A/en
Priority to EP95106020A priority patent/EP0678986B1/en
Priority to DE69517852T priority patent/DE69517852T2/de
Publication of JPH07295785A publication Critical patent/JPH07295785A/ja
Application granted granted Critical
Publication of JP3522331B2 publication Critical patent/JP3522331B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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

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】
【産業上の利用分野】本発明はデータ圧縮方法に係り、
特にゲーム機のキャラクタジェネレータ等に好適な辞書
方式・LossLess型のデータ圧縮方法に関する。
【0002】
【従来の技術】従来から、データ処理システムにおける
記憶装置の容量を低減化し、またデータ伝送効率を向上
させるために各種のデータ圧縮方法が開発されている
が、それらを符号化/復号化における可逆性の観点から
は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という高い圧縮率を実現できる。
【0003】一方、LossLess型のデータ圧縮方法は可逆
符号化方式であり、一般的には圧縮率が約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)に使用されており、ハフマン符号化方式では扱
えない冗長なデータストリームをストリングの生起確率
に基づいて一括圧縮し、情報エントロピの点で最適なデ
ータ圧縮を実現する。
【0004】(4) LZ方式は、一般にストリングの繰
返しを検出してデータ圧縮を行う方式であり、パーソナ
ルコンピュータのデータ圧縮ツールや、バックアップ用
のカートリッジ・テープ装置等の製品に適用されてい
る。そして、この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が優
るという特徴がある。
【0005】
【発明が解決しようとする課題】ところで、ゲーム機の
分野においても高度な映像表現が求められるようにな
り、既に業務用ゲーム機では3次元CG(Computer Grap
hics)を駆使した映像表現が行われているが、最近では
家庭用テレビ・ゲーム機やマルチメディアシステムでも
そのような映像表現が可能なデータ処理システムの開発
が進行している。そして、映像表現が複雑になると、そ
れだけデータ量が大きくなり、高い圧縮率で且つ高速で
の符号化/復号化が可能なLossLess型のデータ圧縮方法
が求められる。
【0006】特に、ゲーム機の場合には、ユーザがコン
トロール・パッドのボタンを押してから1/60〜1/30秒(カ
ラー・テレビ信号の1〜2フィールドの表示時間に相当)
後には表示画面上で反応が発生しなければゲーム自体の
面白さが失われるため、圧縮率の高さと共に高速での符
号化/復号化と画面展開が不可欠とされる。その意味
で、前記のLZ方式(特にLZ78)や、同方式とハフマン
符号化方式を組合せたLHA方式は、ゲーム機における
データ圧縮方法として好適なデータ圧縮方法であるとい
える。
【0007】しかしながら、LZ方式では圧縮対象とさ
れる個々のストリングが可変長であり、またその圧縮/
伸長アルゴリズムも複雑であることから、データ処理手
順が多くなると共に、ハードウェアの構成も複雑化す
る。また、ゲーム機のキャラクタジェネレータでは比較
的小さなデータブロックを取り扱うが、従来のデータ圧
縮方法では64バイト程度のデータブロックに対して
は、圧縮が不可能か、又は十分な圧縮率が得られない。
【0008】一方、ゲーム機のキャラクタジェネレータ
で取り扱うデータブロックは、その性質上、同一ストリ
ングの生起確率が高く、且つキャラクタの変化態様に対
応した各データブロックで同一ストリングの個数が大き
く変化しないという傾向がある。そこで、本発明は、高
速での圧縮/伸長が可能であり、データブロックの大き
さを問わずに高い圧縮率が実現できるLossLess型のデー
タ圧縮方法を提供することを目的として創作された。
尚、本発明は、前記の理由からゲーム機のキャラクタジ
ェネレータに最適であるが、コンピュータや通信機器で
取り扱う一般のデータに対しても有効なデータ圧縮方法
を与える。
【0009】
【課題を解決するための手段】第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記憶手段に
登録されている全ての組合せストリングと圧縮用辞書デ
ータを圧縮データとすることを特徴としたデータ圧縮方
法に係る。
【0010】また、第2の発明は、第1の発明におい
て、R=1とした場合に、第2手順では元ストリングに
非圧縮識別ビットを付加せずに元ストリングをそのまま
作業用ストリングとした作業用データストリームを作成
し、第4手順では圧縮用辞書データを辞書番号のみのS
ビット長とすることとしたデータ圧縮方法に係る。
【0011】
【作用】第1の発明について;第1手順では、第3手順
から第5手順の繰返し実行回数Rを指定するが、この指
定回数は第2記憶手段に作成される辞書の最大登録件数
D以下の範囲で、所望のデータ圧縮率が得られる回数と
して指定される。第2手順は、前置処理手順であり、第
1記憶手段に格納されている元データストリームの各元
ストリング(Sビット)に非圧縮識別ビット(1ビット)を
付加して(S+1)ビット長の作業用ストリングで構成さ
れた作業用データストリームを作成し、後の第5手順で
書換えられない作業用ストリングが非圧縮状態にあるこ
とを識別できるようにする。
【0012】そして、辞書作成とデータ圧縮処理は第3
手順から第5手順で実行される。辞書作成は作業用デー
タストリーム中で連続した2個の作業用ストリングの組
合せ[2*(S+1)ビット]を単位として行われる。先
ず、第3手順で出現頻度が3以上の組合せストリングが
検出され、第4手順で前記の組合せストリングに対応さ
せて圧縮用辞書データを第2記憶手段の辞書へ登録す
る。ここに、圧縮用辞書データは各辞書番号と圧縮識別
ビットからなる(S+1)ビット長とされ、作業用ストリ
ングと同一のビット長である。
【0013】そして、第5手順では前記の辞書を用いた
圧縮を行い、作業用データストリームの組合せストリン
グの内で、辞書の組合せストリングと同一のものを辞書
でその組合せストリングに対応した各圧縮用辞書データ
に書換える。その結果、個々の書換え対象となった作業
用データストリームの組合せストリングについてみる
と、2*(S+1)ビットが(S+1)ビットへ変換される
ことになるが、辞書側の各組合せストリングは作業用デ
ータストリーム中での出現頻度が3以上のものであるた
め、辞書側の1件の登録について3*(S+1)ビット分
以上のデータが削減されることになる。一方、前記の作
業用データストリーム側のデータ圧縮に対して、辞書側
では1件の登録によって3*(S+1)ビット分だけデー
タ量が増加する。従って、そのデータの増減を相殺する
と、作業用データストリーム中で辞書の各組合せストリ
ングの出現頻度が3の場合には同一のデータ量になる
が、4以上であればデータ圧縮がなされる。
【0014】そして、前記の第3手順から第5手順は、
第1手順で指定されたR回だけ繰返して実行されるが、
その度に第5手順で書換えられたデータストリームは第
3手順における作業用データストリームとして取り扱わ
れる。従って、2回目以降の辞書作成・圧縮手順では、
作業用データストリーム中に非圧縮状態の作業用ストリ
ングと圧縮用辞書データが混在しており、第3手順及び
第4手順ではその作業用データストリームを対象として
出現頻度が3以上の組合せストリングを新たな圧縮用辞
書データと対応させて辞書に登録し、第5手順で作業用
データストリーム中のその組合せストリングが新たな圧
縮用辞書データに書換えられることになる。その結果、
第3手順から第5手順の繰返しが進行することによって
高い圧縮率が得られてゆく。尚、前記のように、出現頻
度が3の組合せストリングについては、その時点での圧
縮処理段階で実効性を有していないことになるが、それ
以降の辞書作成・圧縮手順の繰返し段階で圧縮に寄与す
る。
【0015】一方、圧縮データの伸長過程では、第3手
順から第5手順の繰返しによって得られたデータストリ
ームと辞書登録されたデータがあれば、辞書を用いなが
ら前記とは逆のアルゴリズムで元データストリームを再
生することができる。即ち、各作業用ストリングの圧縮
/非圧縮識別ビットを検出しながら、圧縮識別ビットで
あればその作業用ストリングを辞書で対応付けられた組
合せストリングに書換え、非圧縮識別ビットであればそ
のままにして次の作業用ストリングを検出する処理を繰
返し、最終的に得られた作業用データストリームから非
圧縮ビットを除去して元データストリームを得る。
【0016】ところで、第3手順においては、検出する
組合せストリングが「出現頻度の大きいものからD/R
番目以内のもの」という制限を課して、組合せストリン
グの検出個数の上限を設けている。これは、初期の第3
手順から第5手順の繰返し段階においては、第3手順で
検出される組合せストリングの個数が辞書の最大登録件
数を超えてしまうような場合が生じるためであり、前記
の制限によって指定した繰返し回数Rが確保できるよう
にしている。
【0017】第2の発明について;この発明は、第1の
発明において、第3手順から第5手順を繰返さない場合
(R=1の場合)の特殊な処理に関する。その場合には、
辞書において圧縮対象となる連続した2個の元ストリン
グと辞書番号が対応付けられていれば伸長処理が可能で
ある。
【0018】そこで、1回の辞書作成・圧縮手順の実効
過程で、第2手順では元ストリングに非圧縮識別ビット
を付加せずに元ストリングをそのままSビット長の作業
用ストリングとし作業用データストリームを作成し、ま
た第4手順でも圧縮用辞書データを辞書番号のみのSビ
ット長で構成する。元データストリームの内容等によっ
ては圧縮率よりも圧縮/伸長処理の高速性を要求される
ことがあり、この発明はそのような場合に用いられる。
【0019】
【実施例】以下、本発明のデータ圧縮方法の実施例を図
面を用いて詳細に説明する。図1はデータ圧縮を実行す
るためのシステム回路図であり、1はデータストリーム
を格納するためのRAM、2は辞書登録データを格納す
るためのRAM、3はデータ圧縮プログラムを格納した
ROM、4はCPUを示し、CPU4が受信した元データ
ストリームをROM3のプログラムに基づいてRAM1,2
を使用しながらソフトウェア的にデータ圧縮を行う。
尚、同図では独立したメモリとしてRAM1,2を用いて
いるが、単一のRAMのメモリ領域を区分してデータス
トリームと辞書登録データを格納させるようにしてもよ
い。
【0020】次に、図2から図4に示されるフローチャ
ート、及び図5から図13に示されるの実際のデータス
トリームと辞書登録データの内容を参照しながら、本実
施例のデータ圧縮方法を説明する。先ず、ホスト側から
圧縮手順の繰返し回数;Rが指定されると、CPU4はそ
の回数データをセーブし、元データストリームを受信す
るとそれをRAM1に格納する(図2;P1,P2)。そして、
受信した元データストリームがN個の元ストリング[S
ビット長]で構成されているとした場合に、CPU4はR
AM1に格納した元データストリームをSビット単位に
分割し、各元ストリングをその先頭に非圧縮識別ビット
“0"を付加した各作業用ストリングに変換し、N個の
作業用ストリング[(S+1)ビット長]で構成された作業
用データストリームを作成する(図2;P3)。
【0021】この作業用データストリームの実例を図5
に示す。図5の作業用データストリームは、512個の
7ビット長の元ストリングで構成された元データストリ
ームから作成されたものであり、512個の8ビット長
の作業用ストリングをそれぞれ16進数で示してある。
そして、各作業用ストリングは16進数で00〜3dの
範囲内で表現されており、全ての作業用ストリングのM
SBが非圧縮識別ビットとして“0"に設定されてい
る。尚、この実例では、元データストリームの全ての元
ストリングが2進数で“000000"から“1111
01"までの6ビット長で表現が可能なデータ内容であ
ったために作業用データストリームの各作業用ストリン
グが00〜3dの範囲内で表現され、各作業用ストリン
グにおける第2ビット目も“0"になっているが、元ス
トリングが7ビット長で表現されるデータであっても支
障がないことは当然である。
【0022】次に、CPU4は、RAM1に格納されてい
る作業用データストリームから連続した2個の作業用ス
トリング(組合せストリング)を先頭アドレスから順次読
出し、その読出しの度にその組合せストリングが過去に
読出した組合せストリングか否かをRAM2の登録内容
を確認して判別し、もし新規な組合せストリングであれ
ば、出現頻度データ「1」とその組合せストリングをRA
M2へ登録し、既に読出して登録されている組合せスト
リングであれば、RAM2のその組合せストリングに対
応した出現頻度データを+1インクリメントする(図3;
P4〜P10)。従って、RAM1の作業用データストリーム
全体について前記の手順が実行されると、作業用データ
ストリームの組合せストリングの全ての種類と各組合せ
ストリングの出現頻度データが対応登録される。
【0023】ここで、CPU4はRAM2に登録された組
合せストリングの内で、[出現頻度データの大きいも
のからD/R番目以内(但し、Dは2のS乗)のものであ
ること]、及び[出現頻度データが3以上であるこ
と]という2つの条件を満たす組合せストリングのみを
残し、それらの組合せストリングに圧縮識別ビット
“1"と辞書番号とからなる各圧縮用辞書データを確定
登録させる(図3;P11)。前記の条件は、Dが辞書の最
大登録件数を、Rが後述の圧縮手順の指定繰返し回数を
示していることから、各回の圧縮手順における登録件数
の上限を平均値;D/Rとして設定している。これは、
作業用データストリームの内容にもよるが、初期の圧縮
手順では条件を満たす組合せストリングが膨大な数に
なる場合が多く、前記の指定繰返し回数を確保できなく
なることを防止するためである。尚、前記の条件の必
要性に関しては、後述の圧縮手順において説明する。
【0024】ところで、図5の作業用データストリーム
に関して、前記の辞書作成手順で得られる辞書登録デー
タは図6に示すような内容となる。同図において、16
進数で80〜9aで示されるデータが圧縮用辞書データ
であり、各圧縮用辞書データに対応付けられているデー
タが前記の条件及びを満たした組合せストリングに
相当し、27件分の登録件数が得られている。そして、
前記の圧縮用辞書データは16進数で80から始まるも
のであることから、そのMSBは全て“1"で与えら
れ、同ビットが圧縮識別ビットを表現すると共に、それ
以降の7ビットで128個(=D;辞書の最大登録件数)
の辞書番号が表現される。尚、この実例では指定繰返し
回数が4回(R=4)とされ、D/R=32であることか
ら、条件が定める上限を超えていなかった。
【0025】次に、CPU4は前記の辞書登録データを
用いて作業用データストリームの圧縮手順へ移行する。
この圧縮手順では、先ずRAM1に格納されている作業
用データストリームの組合せストリングを先頭アドレス
側から読出し、その読出した組合せストリングとRAM
2に登録されている各組合せストリングを比較する(図
4;P12,P13)。そして、RAM2に同一の組合せストリン
グがあれば、RAM1の読出した組合せストリングをR
AM2でその組合せストリングに対応して登録されてい
る圧縮用辞書データに書換える(図4;P14,P15)。即ち、
この段階で、2*(S+1)ビット長の組合せストリング
が(S+1)ビット長の圧縮用辞書データに置換されるこ
とになる。また、CPU4は前記の書換えが実行された
場合には、書換え対象となった組合せストリングより後
の作業用データストリームを、その先頭データが圧縮用
辞書データの次のアドレスに位置するように移動させる
(図4;P16)。即ち、(S+1)ビット分だけデータ圧縮が
なされたために、そのビット分だけデータを移動させて
RAM1内での作業用ストリームの連続性を確保する。
【0026】一方、前記の比較段階で、RAM2に同一
の組合せストリングが存在しなかった場合には(図4;P1
3,P14)、読出したRAM1の組合せストリングはそのま
まにして、次の組合せストリングを比較対象とする。従
って、RAM1の組合せストリングが圧縮用辞書データ
に書換えられた場合には、読出しアドレスを(S+1)だけ
進めて次の組合せストリングを読出し(P17)、組合せス
トリングの書換えがなかった場合には、読出しアドレス
を2*(S+1)だけ進めて次の組合せストリングを読出
す(P18)。
【0027】そして、個々の組合せストリングに関する
以上の圧縮手順(図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回目以降の辞書作成・圧縮手順でデー
タ圧縮の効率化に寄与する。
【0028】ここで、図5の作業用データストリームに
対して図6の各辞書登録データを用いた第1回目の辞書
作成・圧縮手順(図3,図4;P12〜P19)を実行すると、図
7に示すような作業用データストリームが得られる。こ
の第1回目の辞書作成・圧縮手順では、元データストリ
ームの総容量が448バイトであり、図6の辞書登録デ
ータと図7の作業用ストリームの総容量が408バイト
(=81バイト+327バイト)であることから、圧縮率
で約91.1%のデータ圧縮がなされたことになる。
【0029】以降、第1回目の圧縮手順で得られた作業
用データストリームを新たな圧縮対象として、図3及び
図4に示された辞書作成・圧縮手順(P4〜P19)を指定繰返
し回数;Rだけ繰返す(図4;P20→図3;P4)。尚、繰返さ
れる辞書作成・圧縮手順において、圧縮対象となる作業
用データストリームは前回の圧縮手順で得られているも
のであり、当然にその作業用データストリームには非圧
縮のままの作業用ストリングと圧縮用辞書データが混在
している。
【0030】前記の実例で見ると、第1回目の辞書作成
・圧縮手順で得られた作業用データストリーム(図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%となる。
【0031】そして、このようにして指定繰返し回数で
あるR回の辞書作成・圧縮手順が完了すると、CPU4は
RAM2の全ての辞書登録データとRAM1の圧縮された
作業用データストリームを読出してホスト側へ転送する
(図4;P21)。一方、転送された圧縮データは次のような
手順で伸長再生される。先ず、圧縮された作業用データ
ストリームの先頭から(S+1)ビット単位で作業用スト
リングを検出し、そのMSBが“1"であれば圧縮用辞
書データに置換されているストリングであるため、辞書
登録データを用いてその圧縮用辞書データに対応した組
合せストリングへ書換え、逆にMSBが“0"であれば
元ストリングであるため、そのままにして次の作業用ス
トリングの検出へ移行する。そして、その手順を作業用
データストリーム全体について実行して第1回目の伸長
された作業用データストリームを得るが、同様の手順を
R回繰返し、最終的に圧縮前の作業用データストリーム
を再生する。但し、最終的に得られた作業用データスト
リームの各作業用ストリングにはMSBに非圧縮識別ビ
ット“0"が付加されているため、各作業用ストリング
のMSBを除去して元データストリームを得る。尚、こ
の実施例では、RAM2に圧縮識別ビット“1"と辞書番
号とからなる圧縮用辞書データを登録させているが、実
際のシステム上でのハードウェアやソフトウェアの都合
により、圧縮/非圧縮識別ビットのストリームを別のメ
モリ領域に格納させておいてもよい。
【0032】ところで、以上の実施例では指定繰返し回
数;Rに基づいて、その回数だけ辞書作成・圧縮手順を繰
返しているが、R=1の場合、即ち辞書作成・圧縮手順
を1回だけ行う方が都合の良い場合がある。例えば、元
データストリームの内容によっては、1回の圧縮手順の
みで比較的高い圧縮率が得られ、伸長再生側で高速性が
要求される場合がある。
【0033】そこで、CPU4が指定回数;「1」を確認し
た場合には、図2の作業用データストリームの作成手順
では各元ストリングに対する非圧縮識別ビット“0"の
付加を実行せず、それに応じて図3の辞書作成手順では
圧縮用辞書データを辞書番号のみのSビット長で登録
し、図4の圧縮手順でも作業用ストリングをSビット長
として取扱うようにする。そして、この場合には、最終
的に得られる辞書登録データと圧縮されたデータストリ
ームの総容量を低減化することができ、また1回の圧縮
手順だけであるため、圧縮識別ビットが付加されていな
くても、伸長再生側ではRAM2に登録されている組合
せストリング自体から圧縮/非圧縮の識別が可能であ
る。従って、データ転送時間と伸長再生時間が大幅に短
縮され、映像データ等の場合には高速での画面展開が可
能になる。尚、圧縮手順が1回だけであるために高い圧
縮率を期待することができないが、既存のランレングス
法等のアルゴリズムを組合せることでその不利を解消さ
せることもできる。
【0034】
【発明の効果】本発明のデータ圧縮方法は、以上の構成
を有していることにより、次のような効果を奏する。請
求項1の発明は、辞書方式によるLossLess型のデータ圧
縮方法において、圧縮/非圧縮識別ビットを付加しなが
ら、データストリーム中で連続的又は離散的に存在する
固定長の組合せストリングをその半分のビット長の固定
長ストリングで書換えてデータ圧縮を行う方法を採用し
ている。従って、その圧縮/伸長アルゴリズムの簡易性
によって高速な圧縮/伸長処理が可能になる。また、ソ
フトウェア処理だけでデータ圧縮を実行するため、通常
のRAMとCPU等からなる簡単なシステム構成で実現
できる。特に、作業用ストリングを1バイトとし、作業
用データストリームや辞書登録データの処理単位である
組合ストリングを2バイトとすると、従来のデータ圧縮
方法では不可能であった64バイト程度の小さなデータ
ブロックも効率的に圧縮でき、ゲーム機のキャラクタジ
ェネレータに最適なデータ圧縮方法を提供する。請求項
2の発明は、高い圧縮率は期待できないが、データスト
リームの内容に応じてデータ転送時間と圧縮/伸長に要
する時間を短縮でき、ゲーム機等で高速な画面展開が必
要とされる場合に適応的に利用できるデータ圧縮方法を
提供する。
【図面の簡単な説明】
【図1】データ圧縮装置のシステム回路図である。
【図2】作業用データストリームの作成手順に係るフロ
ーチャートである。
【図3】辞書作成手順に係るフローチャートである。
【図4】圧縮手順に係るフローチャートである。
【図5】元データストリームから作成された作業用デー
タストリームの実例を示す図である。
【図6】第1回目の辞書作成手順で作成された辞書登録
データを示す図である。
【図7】第1回目の圧縮手順で得られた作業用データス
トリームを示す図である。
【図8】第2回目の辞書作成手順で作成された辞書登録
データを示す図である。
【図9】第2回目の圧縮手順で得られた作業用データス
トリームを示す図である。
【図10】第3回目の辞書作成手順で作成された辞書登
録データを示す図である。
【図11】第3回目の圧縮手順で得られた作業用データ
ストリームを示す図である。
【図12】第4回目の辞書作成手順で作成された辞書登
録データを示す図である。
【図13】第4回目の圧縮手順で得られた作業用データ
ストリームを示す図である。
【符号の説明】
1…RAM(データストリーム格納用)、2…RAM(辞書
登録データ格納用)、3…ROM、4…CPU。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項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. 【請求項2】 請求項1のデータ圧縮方法において、R
    =1とした場合に、第2手順では元ストリングに非圧縮
    識別ビットを付加せずに元ストリングをそのまま作業用
    ストリングとした作業用データストリームを作成し、第
    4手順では圧縮用辞書データを辞書番号のみのSビット
    長とすることとしたデータ圧縮方法。
JP10783794A 1994-04-22 1994-04-22 データ圧縮方法 Expired - Lifetime JP3522331B2 (ja)

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
EP95106020A EP0678986B1 (en) 1994-04-22 1995-04-21 Data compression method and system
DE69517852T DE69517852T2 (de) 1994-04-22 1995-04-21 Datenkompressionsverfahren und 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 (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000201080A (ja) * 1999-01-07 2000-07-18 Fujitsu Ltd 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
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
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
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
US7113939B2 (en) 1999-09-21 2006-09-26 International Business Machines Corporation Architecture to enable search gateways as part of federated search
WO2001069391A2 (en) * 2000-03-14 2001-09-20 Arc Cores, Inc. 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
GB2456996B (en) * 2006-12-26 2011-09-21 Fujitsu Ltd Data compression apparatus and data decompression apparatus
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
US10437825B2 (en) * 2014-01-29 2019-10-08 Relican Analytics, Inc. Optimized data condenser and method
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 深圳市吉迩科技有限公司 基于嵌入式***图片的无损压缩算法、装置、计算机设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US4870415A (en) * 1987-10-19 1989-09-26 Hewlett-Packard Company Data compression system with expansion protection
US4847619A (en) * 1987-10-19 1989-07-11 Hewlett-Packard Company Performance-based reset of data compression dictionary
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
DE69123660T2 (de) * 1990-08-13 1997-04-17 Fujitsu Ltd., Kawasaki, Kanagawa Datenkompressionsmethode und Gerät
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

Also Published As

Publication number Publication date
EP0678986A1 (en) 1995-10-25
US5604495A (en) 1997-02-18
DE69517852T2 (de) 2001-01-11
JPH07295785A (ja) 1995-11-10
DE69517852D1 (de) 2000-08-17
EP0678986B1 (en) 2000-07-12

Similar Documents

Publication Publication Date Title
JP3522331B2 (ja) データ圧縮方法
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) 可変長符号の伸長装置および圧縮伸長装置
US20060067408A1 (en) General purpose compression for video images (RHN)
US5673042A (en) Method of and an apparatus for compressing/decompressing data
JPH0258814B2 (ja)
EP0903866B1 (en) Method and apparatus for data compression
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) データ圧縮方式
JPH10341345A (ja) 画像データ処理システム
JP2002290744A (ja) 画像圧縮方式
JP3152772B2 (ja) 画像データ復元装置
JPH05341955A (ja) データ圧縮および復元方式
JP4649764B2 (ja) 画像データ伸長方法および画像データ伸長装置
WO2005074146A1 (en) Data encoding using multi-dimensional redundancies
JPS6276931A (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