JPH10150366A - データ圧縮装置、方法及びシステム - Google Patents

データ圧縮装置、方法及びシステム

Info

Publication number
JPH10150366A
JPH10150366A JP8306605A JP30660596A JPH10150366A JP H10150366 A JPH10150366 A JP H10150366A JP 8306605 A JP8306605 A JP 8306605A JP 30660596 A JP30660596 A JP 30660596A JP H10150366 A JPH10150366 A JP H10150366A
Authority
JP
Japan
Prior art keywords
word
code
dictionary
position information
data
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.)
Granted
Application number
JP8306605A
Other languages
English (en)
Other versions
JP3368157B2 (ja
Inventor
Takeshi Onodera
健 小野寺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP30660596A priority Critical patent/JP3368157B2/ja
Priority to US08/969,065 priority patent/US5907638A/en
Publication of JPH10150366A publication Critical patent/JPH10150366A/ja
Application granted granted Critical
Publication of JP3368157B2 publication Critical patent/JP3368157B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable 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

Landscapes

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

Abstract

(57)【要約】 【課題】 データの圧縮を行うとき、今までは辞書の上
から順に該当するデータを探していたため、圧縮処理に
時間を要した。そのため圧縮伸長処理を複数回行うとき
には、処理時間が膨大にかかるため、解決案を見つける
必要があった。 【解決手段】 入力データを特定のバイト数を持つ単語
の集合として扱い、単語を登録しておく辞書108と等
しい或は大きい単語検索テーブル109を有し単語検索
テーブルに単語の辞書登録位置を格納しておくことによ
り、辞書108のデータを上から順に見ていく必要がな
くなり圧縮伸長処理が迅速に行えるようになる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、入力データを圧縮
するデータ圧縮装置、方法及びシステムに関するもので
ある。
【0002】
【従来の技術】従来、この種の圧縮装置ではデータを特
定のバイト数を持つ単語の集合として扱い、単語の頻度
分布の偏りを利用して頻度の高い単語にはビット長の短
い符号を、頻度の低い単語にはビット長の長い符号を割
り付けることにより、データの圧縮を行っていた。この
ような圧縮法としてハフマン符号化が有名である。
【0003】しかしながら、このような圧縮法では最初
にデータの頻度分布を作成しなければならないため、デ
ータを1パスで処理することができないという問題点が
あった。
【0004】そこで、データを1パスで処理する方法と
してBentley-Sleator-Tarjan-Wei(BSTW)アルゴリズムと
呼ばれるユニバーサル符号法が開発された。本符号化法
では、データ中の単語の辞書を符号化と復号化で共有
し、辞書に載っている単語がデータ中に出現したら、そ
の単語を辞書の先頭(あるいは前方)に移動させる先頭
移動という処理で辞書を更新する。したがって、先頭移
動を続けていくにつれて、出現頻度の高い単語が辞書の
先頭の方に集まってくる。符号出力として辞書に登録さ
れている位置情報を出力するため、出現頻度の高い単語
は先頭に近い位置情報として出力される。ここで位置情
報を先頭に近い位置情報には短い符号長、先頭から遠い
位置情報には長い符号長を有する可変長符号を割り付け
ると、出現頻度の高い単語には短い符号長、出現頻度の
低い単語には長い符号長が割り付けられるため、全体的
に符号長の圧縮が実現される。
【0005】可変長符号としては前述のハフマン符号を
はじめ、エリアス符号などがあげられる。
【0006】
【発明が解決しようとする課題】しかしながら、上記従
来例では、出現した単語を辞書内で入れ替えるために単
語を辞書内で検索する必要があった。辞書内での単語の
配置は、その出現状況に依存しソーティングされていな
いため、検索は一語一語比較しなければならず、先頭か
ら検索した場合、出現頻度の低い単語を検索するには辞
書のほとんどの単語と比較する必要があり、符号化処理
に膨大な処理時間を要するという問題点があった。
【0007】また、印刷装置において複数の描画オブジ
ェクトを含む画像データを出力する場合には、画像デー
タを複数回圧縮と伸長を繰り返す処理を行う必要がある
場合が考えられ、符号化処理に膨大な時間を要すると、
圧縮伸長にかかる時間×複数回の時間分だけ出力時間が
余計にかかってしまうという問題点があった。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、入力データを特定のバイト数を持つ単語の集合とし
て扱い、辞書を持って単語を検索し、単語が見つからな
ければ辞書に単語を登録し、単語が見つかれば単語の登
録位置を前方に更新し、辞書における単語の位置情報を
可変長コード化して出力するデータ圧縮装置において、
該辞書と等しいかあるいは大きいサイズを有する単語検
索テーブルを有し、入力される単語を該単語検索テーブ
ルによって該辞書から検索し、辞書の内容が更新される
たびに該単語検索テーブルを更新することを特徴とす
る。
【0009】(作用)本発明のデータ圧縮装置では、出
現した単語を辞書内で入れ替えるために単語を辞書内で
検索する必要がなくなり、辞書内での単語の配置は、そ
の出現状況に依存しソーティングされていないため、符
号化処理に膨大な処理時間を要しない。
【0010】
【発明の実施の形態】
(実施例1)図1は、本実施例に適用される圧縮装置の
詳細な構成を示すブロック図である。図1において10
1は圧縮装置本体であり、102は圧縮装置本体101
の全体制御を行うCPUである。103は入力バッファ
であり、不図示のデータ源から供給される圧縮元データ
を一時的に格納する。104は出力バッファであり、本
圧縮装置によって圧縮されたデータを一時的に格納し、
不図示のデータ出力先に出力する。105はプログラム
ROMであり、CPU102が後述する一連の制御手順
を実行するためのプログラムおよび後述の圧縮処理に使
用するエリアス符号テーブル106が格納されている。
107はRAMであり、CPU102がプログラムを実
行する時に使用するワーク領域および、後述の圧縮処理
に使用する辞書テーブル108、インデックステーブル
109、および現在の辞書の登録数110が格納されて
いる。
【0011】図2は、エリアス符号テーブル106に格
納されるエリアス符号の例である。符号Iは、整数xを
表わすのに、xを2進数で表わしたときの桁数(ビット
数)から1を減じただけ0を続けた後に、xの2進数表
示を続けたものである。すなわち、0の数によるxの桁
数表示の後にxの2進数表示(これは必ず1から始ま
る)を続けたものである。他方、符号IIは最初の桁数
表示の代わりに符号Iを利用したものである。すなわ
ち、xを2進数で表わしたときの桁数(ビット数)を符
号Iで表現した後にxの2進数表示の先頭の1を除いた
ものを続けている。なお、桁数表示に符号IIを利用す
ることで、さらにビット数を減らすこともできるが、こ
れによって生じるメリットはわずかであるため、実際の
符号化では符号IIまでがよく用いられる。本実施例で
は符号Iを使用するものとする。
【0012】上記構成において、CPU102が実行す
るプログラムROM105に格納されている圧縮のため
の制御手順プログラムの手順を図2〜11を用いて説明
する。
【0013】圧縮制御プログラムがCPU102により
起動されると、入力バッファ103、出力バッファ10
4、辞書テーブル108、インデックステーブル10
9、および辞書登録数110がクリアされる。ここで辞
書テーブル108の最大格納サイズはN(N>3)とす
る。次に、不図示のデータ源からデータが供給され入力
バッファ102にデータが入力される。ここで、入力さ
れたデータを「abaacded」とする。
【0014】まず、図3に示すように、入力バッファ1
03に一時的に格納されたデータをCPU102が先頭
から1バイトずつ読み出し、まずaを読み出す。このa
のアスキーコードである16進数表示の61に対応する
10進数表示の97という値からインデックステーブル1
09の97番目を参照する。インデックステーブル109
の内容は全てNULLに初期化されているため、97番目
の値もNULLが獲得される。NULLは辞書未登録という意味
なので、現在の辞書登録数を格納するレジスタ110に
格納された辞書登録数(初期値は0)に1を加算した値
(0+1=1)と登録すべき語a(97)を並べたものを中
間符号語とする。実際の符号語は、整数1のエリアス符
号Iによる表示"1"にa(97)のASCIIコード"01100001"を
並べた"101100001"となる。実際の符号語が出力バッフ
ァ104に一時的に格納され、図示省略した出力先に出
力される。
【0015】次に、図4に示すように、CPU102に
より、いままでの辞書の最後尾の位置(すなわち、辞書
登録数110=0)がインデックステーブル109の97
番目に書き込まれる。ただし、全く未登録の場合は1が
書き込まれる。次に、辞書108における上述の位置
(1)にインデックステーブルにおける参照位置(9
7)が書き込まれる。最後に、CPU102により辞書
登録数110がインクリメントされる。
【0016】1文字出力されると、図5に示すように、
CPU102により入力バッファ102が更新され、次
の1バイトbが読み出される。このbのアスキーコード
の10進数表示である98という値からインデックステー
ブル109の98番目を参照すると、この内容も初期化さ
れたままのNULLが獲得される。NULLは辞書未登録という
意味なので、現在の辞書登録数110(1)に1を加算
した値(1+1=2)と登録すべき語b(98)を並べたも
のを中間符号語とする。実際の符号語は、整数2のエリ
アス符号Iによる表示"010"にb(98)のASCIIコード"0110
0010"を並べた"01001100010"となり、これが出力バッフ
ァ104に一時的に格納され、不図示の出力先に出力さ
れる。
【0017】次に、図6に示すように、辞書の最後尾の
位置、すなわち図5における辞書登録数110(1)が
インデックステーブル109の98番目に書き込まれ、辞
書108における上述の位置(1)の値(97)が辞書
の1つ後の位置(2)に退避され、辞書108における
上述の位置(1)には、インデックステーブルにおける
参照位置(98)が書き込まれる。そして、位置(2)
に退避された値(97)に対応するインデックステーブ
ル109の97番目の値が辞書の退避位置(2)に更新さ
れる。最後に、CPU102により辞書登録数110が
インクリメントされる。このように新しく登録された単
語はCPU102により、辞書の最後から2番目に登録
される。
【0018】また1文字出力されると、図7に示すよう
に、CPU102により入力バッファ102が更新さ
れ、次の1バイトaが読み出される。このaのアスキー
コードの10進数表示である97という値からCPU102
がインデックステーブル109の97番目を参照すると、
2という辞書登録番号が獲得される。そこで、この整数
2がそのまま中間符号語とされ、実際の符号語は、整数
2のエリアス符号Iによる表示"010"となり、これがC
PU102により出力バッファ104に一時的に格納さ
れ、不図示の出力先に出力される。
【0019】次に、図8に示すようにインデックステー
ブル109に格納された辞書位置2に格納された97とい
う値が辞書の1つ前の値(ここでは98)と交換され、1
つ前の辞書に格納されていた98という値に相当するイン
デックステーブル109の98番目に格納された辞書位置
が更新される。なお、辞書に新たに登録される語はない
ので、辞書登録数110は更新されない。このようにす
でに登録されている単語が入力されると、その単語が格
納されている辞書位置を1つ前の値と交換し、それに対
応するインデックステーブルの値も変更する。
【0020】また1文字出力されると、図9に示すよう
に、CPU102により入力バッファ102が更新さ
れ、次の1バイトaが読み出される。このaのアスキー
コードの10進数表示である97という値からCPU102
がインデックステーブル109の97番目を参照すると、
1という辞書登録番号が獲得される。そこで、この整数1
がそのまま中間符号語とされ、実際の符号語は、整数2
のエリアス符号Iによる表示"1"となり、これがCPU
102により出力バッファ104に一時的に格納され、
不図示の出力先に出力される。この場合、この辞書登録
番号は辞書の先頭位置なので、辞書の更新は行われず、
また、辞書に新たに登録される語はないので、辞書登録
数110も更新されない。
【0021】また1文字出力されると、図10に示すよ
うに、CPU102により入力バッファ102が更新さ
れ、次の1バイトcが読み出される。このcのアスキー
コードの10進数表示である99という値からCPU102
がインデックステーブル109の99番目を参照すると、
この内容は初期化されたままのNULLが獲得される。NULL
は辞書未登録という意味なので、現在の辞書登録数11
0(2)に1を加算した値(2+1=3)と登録すべき
語c(99)を並べたものを中間符号語とする。実際の符号
語は、整数3のエリアス符号Iによる表示"011"にc(99)
のASCIIコード"01100011"を並べた"01101100011"とな
り、これがCPU102により出力バッファ104に一
時的に格納され、不図示の出力先に出力される。
【0022】次に、図11に示すように、辞書の最後尾
の位置(すなわち、辞書登録数110=2)がCPU1
02によりインデックステーブル109の99番目に書き
込まれ、辞書108における上述の位置(2)の値(9
8)が辞書の1つ後の位置(3)に退避され、辞書108
における上述の位置(2)には、インデックステーブル
における参照位置(99)が書き込まれる。そして、1つ
後の位置(3)に退避された値(98)に対応するインデ
ックステーブル109の98番目の値が辞書の退避位置
(3)に更新される。最後に、CPU102により辞書
登録数110がインクリメントされる。
【0023】以上のような、操作が繰り返されることに
より、入力データ源から供給されるデータがCPU10
2により逐次符号化され、データ出力先に出力される。
【0024】なお、辞書テーブル108の最大登録数N
が256の場合は、1バイトの全ての語が登録可能なた
め、上記処理のままで処理可能であるが、Nが256よ
り小さい場合は処理途中で辞書が一杯になってしまうこ
とがある。この場合、それ以降新規登録する際には辞書
の最後尾に登録されている語は辞書から削除され、その
語に相当するインデックステーブルの内容はNULLに初期
化される。従って、一旦辞書から削除された語が再び読
み出された場合は、当然未登録として扱われることとな
る。
【0025】上記のデータ圧縮の流れを図16のフロー
チャートを用いて簡単に説明し直す。
【0026】データ圧縮プログラムが開始されると、S
101でCPU102が入力バッファ103からデータ
を1バイト読み出す。
【0027】S102では、入力された1バイトのデー
タが文字コードであればそのアスキーコード、イメージ
データ(ビットマップ)であればその1バイトのデータ
を2進数表示としてとらえたときの数値に対応するイン
デックステーブル109を参照する。
【0028】S103では、S102で参照した値がN
ULLであるかを見る。もしNULLであるならS10
4に進み、もしNULLではなく辞書108のレジスタ
番号を獲得したのならS107に進む。
【0029】S104では、図3〜11での前述した説
明のように、1バイトのデータの数値を辞書108の最
後尾から1つ前の位置に登録し、S105に進む。
【0030】S105では、図3〜11での前述した説
明のように、インデックステーブルの値を辞書に対応す
るように更新する。
【0031】S106では、図3〜11での前述した説
明のように、今のデータを辞書に登録する前の辞書の登
録数+1に1バイトのデータの数値をならべてものを符
号語として出力し、S108に進む。
【0032】一方S107では、図3〜11での前述し
た説明のようにインデックステーブルの参照した箇所に
ある値を獲得し、それを符号語として出力し、S108
に進む。
【0033】S108では、つぎにデータがあるかを判
断し、もしデータが存在すればS101に戻り、もしデ
ータが存在しなければこの圧縮プログラムを終了する。
【0034】また、この符号語に圧縮されたデータを伸
長するときは圧縮と同じように行う。ただし、伸長の場
合はインデックステーブルは必要ない。伸長プログラム
を簡単に説明する。
【0035】伸長する前にまず辞書をクリアする。つぎ
に圧縮されたデータが格納されている符号語メモリから
データを読み出す。データの読み出しかたは、エイリア
ス符号Iの値をまず読み出す。前述したデータ“abaacd
e”を圧縮したのであれば、最初は“1”が読み出され
る。辞書はクリアされているので辞書の“1”には何も
格納されていないので、データを1バイト分読み出す。
この1バイト分のデータが実際のデータである。辞書に
この値を登録し、この値を出力する。
【0036】つぎにエイリアス符号Iの値を読み出す
と、“010”が読み出され、対応する辞書の箇所を見
る。NULLとなっているのでさらに1バイト分データ
を読み出し、その1バイトデータを出力する。この値を
辞書の最後尾から1つ前に登録し、その位置にある値を
1つ下げる。
【0037】つぎにエイリアス符号Iの値を読み出す
と、“010”が読み出され、対応する辞書の箇所を見
る。そこにデータが存在しているので、その値の1バイ
トデータを出力し、辞書の位置を1つ前の値と入れ替え
る。
【0038】このように符号語データから辞書を作成し
ていくことによりデータを伸長する。
【0039】(実施例2)本実施例では、データ圧縮処
理をレーザビームプリンタ(以下、LBPと略す)に適
用した例を示す。
【0040】図12にLBPの内部構造を示す断面図を
示す。このLBPは図示省略したデータ源から文字パタ
ーンの登録や定型書式(フォームデータ)などの登録が
行える。同図において、1000はLBP本体であり、
外部に接続されているホストコンピュータ(図示省略)
から供給される文字情報(文字コード)やフォーム情報
あるいはマクロ命令などを入力して記憶するとともに、
それらの情報に従って対応する文字パターンやフォーム
パターンなどを作成し、記録媒体である記録紙上に像を
形成する。1012は操作のためのスイッチおよびLE
D表示器などが配されている操作パネル、1001はL
BP1000全体の制御およびホストコンピュータから
供給される文字情報などを解析するプリンタ制御ユニッ
トである。この制御ユニット1001は、主に文字情報
を対応する文字パターンのビデオ信号に変換してレーザ
ドライバ1002に出力する。レーザドライバ1002
は半導体レーザ1003を駆動するための回路であり、
入力されたビデオ信号に応じて半導体レーザ1003か
ら発射されるレーザ光1004をオンオフ切り替えす
る。レーザ1004は回転多面鏡1005で左右方向に
振られ静電ドラム1006上を走査する。これにより、
静電ドラム1006上には文字パターンの静電潜像が形
成される。この潜像は、静電ドラム1006周囲の現像
ユニット1007により現像された後、記録紙に転送さ
れる。この記録紙にはカットシートを用い、カットシー
ト記録紙はLBP1000に装着した用紙カセット10
08に収納され、給紙ローラ1009および搬送ローラ
1010と1011とにより装置内に取り込まれて、静
電ドラム1006に供給される。
【0041】このようなレーザビームプリンタ1000
の制御ユニット1001の画像データ生成の部分の機能
をあらわしたブロック図を図13に示す。一般にメモリ
を削減するために生成された画像データを符号化して圧
縮し格納しておくことが行われる。
【0042】インターフェース200は、図示省略した
ホストコンピュータから供給される文字情報などのいわ
ゆるPDLデータ受け取る部分である。201はインタ
ーフェース200から入力される制御コマンドのうち、
画像を描画するのに必要なコマンド(オブジェクトコー
ド)を格納しておくオブジェクトメモリである。202
はオブジェクトコードを解釈し、画像データとして描画
する描画器である。203は描画器202で生成された
画像データを展開する上書きメモリであり、新たに生成
された画像データは既存の画像データに上書きすること
で画像データを作っていく。上書きメモリ203は画像
全体を短冊状に分割したときの1つの短冊のメモリ容量
をもち、この短冊を以後バンドと呼ぶ。204はセレク
タであり、上書きメモリ203への入出力を制御した
り、復号された画像データの出力先を制御してレーザド
ライバ1002に出力する。205は符号器であり、実
施例1における圧縮装置に相当する。206は符号メモ
リであり、画像データの符号を格納しておく。207は
セレクタであり、符号メモリ206への入出力を制御す
る。208は符号器205で生成された符号化データを
実施例1で説明したように復号(伸長)する復号器であ
る。
【0043】このような圧縮装置を用いて圧縮動作が行
われる。本実施例における処理は以下のようなときに行
われる。
【0044】図14は通常の画像出力の流れをあらわす
ブロック図であり、前述した部分は同じ符号を用いてい
る。
【0045】インタフェース200は、図示省略したホ
ストコンピュータから供給される画像データ300(P
DL)を受け取る。CPU102は、入力された画像デ
ータ300の中で、画像を描画するのに必要なコマンド
(オブジェクトコード)をオブジェクトメモリ201に
格納する。描画器202は、オブジェクトメモリ201
に格納されているオブジェクトコードを読み出し、バン
ドラスタメモリ301に展開(レンダラ)する。バンド
ラスタメモリ301は2バンド分のメモリを有してお
り、始めは2バンド分(第1バンドと第2バンド)のオ
ブジェクトコードを描画器202で読み出し、展開され
たオブジェクトを書込む。またバンドラスタメモリ30
1は上書きメモリ203と同じメモリでもよい。始めの
2バンド分に存在するオブジェクトコードをラスタメモ
リ301に書き込み終えたら、第1バンドをシッパ30
2がエンジン303に出力する。シッパ302は、第1
バンドをエンジン303に出力し終えたら、つぎに第2
バンドをエンジン303に出力する。シッパ302がエ
ンジン303に第2バンドの出力を始めたら、描画器2
02は、オブジェクトメモリ201から第3バンドに描
画すべきオブジェクトコードを読み出し、バンドラスタ
メモリ301の第1バンドが存在していた領域に、オブ
ジェクトコードを書込む。このように通常処理では、交
互にバンドに画像データ(オブジェクト)を書込み、出
力することにより、画像データ300を展開(レンダ
ラ)し、エンジン303に出力する。
【0046】しかし、複雑で範囲の広い画像データが入
力された場合等は、オブジェクトメモリ201にすべて
のオブジェクトコードが格納できなくなる場合がある。
この場合は、バンドを圧縮することにより解決する。こ
の処理を、図15の圧縮処理の流れをあらわすブロック
図と制御ユニット1001の画像データ生成の部分のブ
ロック図である図13を用いて説明する。なお、前述し
た部分は同じ符号を用いている。
【0047】動作の開始に先立ち、CPU102によ
り、オブジェクトメモリ201、上書きメモリ203、
符号メモリ206、バンドラスタメモリ301はクリア
され、符号器205および復号器208もリセットされ
ている。また、セレクタ204は入力先に復号器20
8、出力先に上書きメモリ203を、セレクタ207は
入力先に符号メモリ206、出力先に復号器208を選
択する。
【0048】インターフェース200を介して、図示省
略したホストコンピュータから画像データ300(PD
L)が入力されると、CPU102は、画像データ30
0の中のオブジェクトコードだけを選択してオブジェク
トメモリ201に格納する。ここでは、オブジェクトメ
モリ201に格納できる限りのオブジェクトコードを格
納する。オブジェクトメモリ201にオブジェクトコー
ドが格納されると、書き込まれた順に描画器202がこ
れを読み出し、書込むべきバンドを決定する。オブジェ
クトメモリ201にオブジェクトコードが格納される
と、書込まれた順に描画器202がこれを読み出し、書
込むべきバンドを決定する。描画器202は符号メモリ
206から必要とされたバンドの符号データを読み出し
セレクタ207を介して復号器208に入力する。復号
器208は入力された符号データを復号し、得られた画
像データをセレクタ204を介して上書きメモリ203
に書き込む。ここで、最初は符号メモリはクリアされて
いるので復号化されず、上書きメモリ203はクリアさ
れる。描画器202はオブジェクトメモリ201から読
み出したオブジェクトコードを解釈し、ラスタデータに
展開し、上書きメモリ203のラスタデータに上書きす
る。続いて、オブジェクトメモリ201から次のオブジ
ェクトコードを読み込み、もし、同じバンドに書込むべ
きオブジェクトであれば、そのままオブジェクトコード
を解釈し、ラスタデータに展開し、上書きメモリ203
のラスタデータに上書きする。もし、異なるバンドに存
在すべきオブジェクトであれば上書きメモリ203の内
容をセレクタ204を介して符号器205に入力する。
符号器205に入力されたラスタデータは実施例1の処
理に従って符号化され、得られた符号データはセレクタ
207を介して符号メモリ206の空き領域に書き込ま
れ、元のバンドの符号データを削除する。つづいて、描
画器202が次のオブジェクトコードを読み出し、書込
むべきバンドを決定する。以下は同じ処理を繰り返す。
【0049】オブジェクトメモリ201の全てのオブジ
ェクトコードの処理が終了すると、オブジェクトメモリ
201のオブジェクトコードをクリアし、オブジェクト
メモリ201に格納できなかった残りのオブジェクトコ
ードを格納する。オブジェクトメモリ201にオブジェ
クトコードが格納されると、書込まれた順に描画器20
2がこれを読み出し、書込むべきバンドを決定する。以
下は同じ処理を繰り返す。
【0050】オブジェクトメモリ201の全てのオブジ
ェクトコードの処理が終了すると、オブジェクトコード
としてオブジェクトメモリ201に格納されていない画
像データ300がないか確認する。もし、全ての画像デ
ータ300がオブジェクトメモリに格納されていなけれ
ば、全ての画像データをオブジェクトコードとしてオブ
ジェクトメモリ201に格納し、展開して符号メモリ2
06に格納できるまで上記の処理を繰り返す。もし、全
ての画像データ300が、オブジェクトコードとしてオ
ブジェクトメモリ201に格納されていたら、CPU1
02が、セレクタ207の入力先を符号メモリ206、
出力先を復号器208とし、セレクタ204の入力先を
復号器208、出力先をシッパ302と設定する。CP
U102は、符号メモリ206から画像の先頭のバンド
から順に符号化データを読み出して、セレクタ207を
介して復号器208に送り、復号器208で符号化デー
タを復号し、得られた画像データをセレクタ204から
シッパ302介してレーザドライバ1002のエンジン
303に出力する。レーザドライバ1002は画像デー
タに従い、半導体レーザ1003の発光を制御し、画像
を形成する。
【0051】(その他の実施例)実施例1において、未
登録を示す中間符号値として現在辞書に登録されている
登録数+1の値を使用したが、そのかわりに辞書の最大
登録数+1を使用しても構わない。この場合、未登録を
示す符号語が固定なので、復号時の処理系が単純になる
という利点があるが、未登録を示す実際の符号語の符号
長は相対的に長くなり圧縮率がやや低下する。
【0052】また、第1実施例において、出現した語の
辞書内での並べかえは1つ前の語との入れ替えであった
が、出現した語をいきなり辞書の先頭に移動する方法で
も構わない。しかしながらこの場合、出現した語より前
方に登録されている語を順次移動する必要があり、か
つ、移動した語全てについてインデックステーブルを更
新する必要があるため、処理速度が著しく劣化する場合
がある。ただし、データによっては圧縮率の向上が期待
される。
【0053】さらに、実施例1において、インデックス
テーブルのサイズは語の最大数(語が1バイトなので2
56)としたが、ハッシュ関数等を用いることにより、
辞書の最大登録サイズ以上であれば、その数を減らすこ
とも可能である。特に語が2バイト以上の場合、語の最
大数にするとインデックステーブルが膨大になるので、
このようなテーブルサイズの削減は有効である。語の単
位はデータの特性によって決定すべきであり、欧文のよ
うな1バイト系のデータであれば1バイトが、和文のよ
うな2バイト系のデータであれば2バイトが望ましい。
しかしながら、バイト数を上げすぎると辞書やインデッ
クステーブルが膨大になり、その割に語の一致率が低下
する。
【0054】さらに、実施例1において、可変長符号と
してエリアス符号を用いたが、可変長符号であればハフ
マン符号等、他の符号であっても構わない。また、一旦
全部の処理を行って中間符号語における辞書番号の頻度
分布をとり、その頻度に基づいてハフマン符号化すると
圧縮率は向上するが、本発明における圧縮法の最大の長
所である1パスで高速に処理できるという点が消されて
しまう。例えば、エリアス符号等の固定された可変長符
号で圧縮しながら、辞書番号の頻度分布をとり、圧縮率
に不足が生じた場合のみ、圧縮されたデータを伸張しな
がら、上記頻度分布に基づいた適応的なハフマン符号で
再圧縮するというような方法も考えられる。
【0055】実施例2において、プリンタとしてレーザ
ビームプリンタを用いたが、これに限定されるものでは
なく、バブルジェットプリンタやインクジェットプリン
タ等に応用しても構わない。また、前述した実施形態の
機能は外部装置であるホストコンピュータで行うことも
可能である。つまり、本発明の目的は、前述した実施形
態の機能を実現するソフトウェアのプログラムコードを
記憶した記憶媒体を、システム或は装置に提供し、その
システム或は装置のコンピュータ(またはCPUやMP
U)が記憶媒体に格納されたプログラムコードを読み出
し実行することによっても達成される。
【0056】この場合、記憶媒体から読み出されたプロ
グラムコード自体が本発明の新規な機能を実現すること
になり、そのプログラムコードを記憶した記憶媒体は本
発明を達成することになる。
【0057】プログラムコードを記憶した記憶媒体は、
図17のような構成になっている。始めに、ディレクト
リ情報を持っており、中に実施例1で説明したデータ圧
縮プログラムとデータ伸長プログラム、さらに符号テー
ブルも有している。
【0058】プログラムコードを提供するための記憶媒
体としては、例えば、フロッピーディスク、ハードディ
スク、光ディスク、光磁気ディスク、CD−ROM、磁
気テープ、不揮発性のメモリカード、ROM等を用いる
ことができる。
【0059】また、コンピュータが読み出したプログラ
ムコードを実行することにより、前述した実施形態の機
能が実現されるだけではなく、そのプログラムコードの
指示に基づき、コンピュータ上で稼動しているOS(オ
ペレーティングシステム)等が実際の処理の一部または
全部を行い、その処理によって前述した実施形態の機能
が実現される場合も含まれる。
【0060】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張ボー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書込まれた後、そのプログラムコードの指示
に基づき、その機能拡張ボードや機能拡張ユニットに備
わるCPUなどが実際の処理の一部または全部を行い、
その処理によって前述した実施形態の機能が実現される
場合も含まれる。
【0061】
【発明の効果】以上説明したように、本発明によれば、
入力データを特定のバイト数を持つ単語の集合として扱
い、辞書を持って単語を検索し、単語が見つからなけれ
ば辞書に単語を登録し、単語が見つかれば単語の登録位
置を前方に更新し、辞書における単語の位置情報を可変
長コード化して出力するデータ圧縮装置において、該辞
書と等しいかあるいは大きいサイズを有する単語検索テ
ーブルを有し、入力される単語を該単語検索テーブルに
よって該辞書から検索し、辞書の内容が更新されるたび
に該単語検索テーブルを更新することにより、1パスで
高速なデータ圧縮処理を実現できる。
【0062】またこの実現により、画像データの圧縮と
伸長を複数回繰り返さなければならない出力処理も、圧
縮伸長にかかる時間が短縮されるため、膨大な処理時間
をかからずに出力させることが可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係る構成を説明する図で
ある。
【図2】エリアス符号テーブル106に格納されている
エリアス符号の1例を表わす図である。
【図3】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図4】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図5】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図6】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図7】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図8】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図9】本発明の第1実施例の圧縮制御の手順を説明す
る図である。
【図10】本発明の第1実施例の圧縮制御の手順を説明
する図である。
【図11】本発明の第1実施例の圧縮制御の手順を説明
する図である。
【図12】本発明の第2実施例のレーザプリンタの構成
を表わす図である。
【図13】制御ユニット1001の構成を表わす図であ
る。
【図14】本発明の第2実施例での画像の通常出力の流
れを説明する図である。
【図15】本発明の第2実施例での画像の圧縮処理の流
れを説明する図である。
【図16】本発明の第1実施例の圧縮制御の処理の流れ
を説明するフローチャートである。
【図17】本発明の制御プログラムが格納されている記
憶媒体の構成をあらわす図である。
【符号の説明】 101 圧縮装置本体 102 CPU 103 入力バッファ 104 出力バッファ 105 プログラムROM 106 エリアス符号テーブル 107 RAM 108 辞書テーブル 109 インデックステーブル 110 辞書登録数 1000 LBP本体 1001 プリンタ制御ユニット 1002 レーザドライバ 1003 半導体レーザ 1004 レーザ光 1005 回転多面鏡 1006 静電ドラム 1007 現像ユニット 1008 用紙カセット 1009 給紙ローラ 1010,1011 搬送ローラ 1012 操作パネル 200 インターフェース 201 オブジェクトメモリ 202 描画器 203 上書きメモリ 204,207 セレクタ 205 符号器 206 符号メモリ 208 復号器 300 画像データ(制御コマンド:PDL) 301 バンドラスタメモリ 302 シッパ 304 エンジン

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 単語を登録しておく辞書手段と、前記辞
    書手段に格納されている単語の位置情報が格納されてい
    る単語検索テーブル手段と、入力された単語を、辞書に
    おける単語の位置情報を可変長コード化する符号化手段
    と、前記符号化手段により可変長コード化された符号を
    もとの単語にもどす伸長手段と、を有するデータ圧縮装
    置であり、入力データを特定のバイト数を持つ単語の集
    合として扱い、前記単語検索テーブル手段により単語を
    検索し、単語が見つからなければ前記辞書手段に単語を
    登録し、単語が見つかれば単語の登録位置を前方に更新
    し、前記辞書手段の内容が更新される度に前記単語検索
    テーブルを更新することを特徴とするデータ圧縮装置。
  2. 【請求項2】 前記入力データは、画像を描画するのに
    必要なコマンドであるオブジェクトコードを含む画像デ
    ータであることを特徴とする請求項1記載のデータ圧縮
    装置。
  3. 【請求項3】 更に、オブジェクトコードを格納してお
    くオブジェクト記憶手段と、前記符号化手段により可変
    長コード化された入力データを格納しておく符号記憶手
    段とを有し、すべての前記オブジェクトコードをオブジ
    ェクト記憶手段に格納できない場合に、前記符号化手段
    を用いて入力データを可変長コード化することを特徴と
    する請求項2記載のデータ圧縮装置。
  4. 【請求項4】 前記入力データは、イメージデータであ
    ることを特徴とする請求項1記載のデータ圧縮装置。
  5. 【請求項5】 前記単語検索テーブル手段に単語が見つ
    からなければ、該単語の位置情報である可変長コードと
    該単語のコードを合わせて出力し、前記単語検索テーブ
    ルに単語か見つかれば、該単語の位置情報である可変長
    コードを出力することを特徴とする請求項1記載のデー
    タ圧縮装置。
  6. 【請求項6】 単語を辞書に登録しておく登録工程と、
    前記登録工程で辞書に格納された単語の位置情報を単語
    検索テーブルに格納させておく位置情報記憶工程と、入
    力された単語を、前記登録工程で辞書に登録した単語の
    位置情報を可変長コード化する符号化工程と、前記符号
    化工程により可変長コード化された符号をもとの単語に
    もどす伸長工程と、を含むデータ圧縮方法であり、入力
    データを特定のバイト数を持つ単語の集合として扱い、
    前記位置情報記憶工程で単語の位置情報を記憶している
    単語検索テーブルから単語を検索し、単語が見つからな
    ければ前記登録工程で辞書に単語を登録し、単語が見つ
    かれば単語検索テーブルの単語の登録位置を前方に更新
    し、前記登録工程で辞書に登録した内容が更新される度
    に前記位置情報記憶工程で単語検索テーブルの単語の位
    置情報を更新することを特徴とするデータ圧縮方法。
  7. 【請求項7】 前記入力データは、画像を描画するのに
    必要なコマンドであるオブジェクトコードを含む画像デ
    ータであることを特徴とする請求項6記載のデータ圧縮
    方法。
  8. 【請求項8】 更に、オブジェクトコードをオブジェク
    ト記憶手段に格納しておくオブジェクト記憶工程と、前
    記符号化手段により可変長コード化された入力データを
    符号化記憶手段に格納しておく符号記憶工程とを有し、
    すべての前記オブジェクトコードを前記オブジェクト記
    憶工程で前記オブジェクト記憶手段に格納できない場合
    に、前記符号化工程で入力データを可変長コード化する
    ことを特徴とする請求項7記載のデータ圧縮装置。
  9. 【請求項9】 前記入力データは、イメージデータであ
    ることを特徴とする請求項6記載のデータ圧縮方法。
  10. 【請求項10】 前記位置情報記憶工程で単語検索テー
    ブルに単語が見つからなければ、該単語の位置情報であ
    る可変長コードと該単語のコードを合わせて出力し、前
    記単語検索テーブルに単語か見つかれば、該単語の位置
    情報である可変長コードを出力することを特徴とする請
    求項6記載のデータ圧縮装置。
  11. 【請求項11】 単語を辞書に登録しておく登録工程
    と、前記登録工程で辞書に格納された単語の位置情報を
    単語検索テーブルに格納させておく位置情報記憶工程
    と、入力された単語を、前記登録工程で辞書に登録した
    単語の位置情報を可変長コード化する符号化工程と、前
    記符号化工程により可変長コード化された符号をもとの
    単語にもどす伸長工程と、を含むデータ圧縮方法であ
    り、入力データを特定のバイト数を持つ単語の集合とし
    て扱い、前記位置情報記憶工程で単語の位置情報を記憶
    している単語検索テーブルから単語を検索し、単語が見
    つからなければ前記登録工程で辞書に単語を登録し、単
    語が見つかれば単語検索テーブルの単語の登録位置を前
    方に更新し、前記登録工程で辞書に登録した内容が更新
    される度に前記位置情報記憶工程で単語検索テーブルの
    単語の位置情報を更新することを特徴とするコンピュー
    タで読み取り可能な記憶媒体に格納されているプログラ
    ム製品。
  12. 【請求項12】 前記入力データは、画像を描画するの
    に必要なコマンドであるオブジェクトコードを含む画像
    データであることを特徴とする請求項11記載のプログ
    ラム製品。
  13. 【請求項13】 更に、オブジェクトコードをオブジェ
    クト記憶手段に格納しておくオブジェクト記憶工程と、
    前記符号化手段により可変長コード化された入力データ
    を符号化記憶手段に格納しておく符号記憶工程とを有
    し、すべての前記オブジェクトコードを前記オブジェク
    ト記憶工程で前記オブジェクト記憶手段に格納できない
    場合に、前記符号化工程で入力データを可変長コード化
    することを特徴とする請求項12記載のプログラム製
    品。
  14. 【請求項14】 前記入力データは、イメージデータで
    あることを特徴とする請求項11記載のプログラム製
    品。
  15. 【請求項15】 前記位置情報記憶工程で単語検索テー
    ブルに単語が見つからなければ、該単語の位置情報であ
    る可変長コードと該単語のコードを合わせて出力し、前
    記単語検索テーブルに単語か見つかれば、該単語の位置
    情報である可変長コードを出力することを特徴とする請
    求項11記載のプログラム製品。
  16. 【請求項16】 ホストコンピュータがプリンタに印字
    データを送信し、プリンタがホストコンピュータから受
    信した印字データの印刷を行う印刷システムであって、
    単語を登録しておく辞書手段と、前記辞書手段に格納さ
    れている単語の位置情報が格納されている単語検索テー
    ブル手段と、入力された単語を、辞書における単語の位
    置情報を可変長コード化する符号化手段と、前記符号化
    手段により可変長コード化された符号をもとの単語にも
    どす伸長手段と、を有し、印字データを特定のバイト数
    を持つ単語の集合として扱い、前記単語検索テーブル手
    段により単語を検索し、単語が見つからなければ前記辞
    書手段に単語を登録し、単語が見つかれば単語の登録位
    置を前方に更新し、前記辞書手段の内容が更新される度
    に前記単語検索テーブルを更新することを特徴とする印
    刷システム。
  17. 【請求項17】 前記辞書手段と、前記単語検索テーブ
    ル手段と、前記符号化手段と、前記伸長手段とをプリン
    タ側に有することを特徴とする請求項16記載の印刷シ
    ステム。
  18. 【請求項18】 前記印字データは、画像を描画するの
    に必要なコマンドであるオブジェクトコードを含む画像
    データであることを特徴とする請求項16記載の印刷シ
    ステム。
  19. 【請求項19】 更に、オブジェクトコードを格納して
    おくオブジェクト記憶手段と、前記符号化手段により可
    変長コード化された印字データを格納しておく符号記憶
    手段とを有し、すべての前記オブジェクトコードをオブ
    ジェクト記憶手段に格納できない場合に、前記符号化手
    段を用いて印字データを可変長コード化することを特徴
    とする請求項18記載の印刷システム。
  20. 【請求項20】 前記印字データは、イメージデータで
    あることを特徴とする請求項16記載の印刷システム。
  21. 【請求項21】 前記単語検索テーブル手段に単語が見
    つからなければ、該単語の位置情報である可変長コード
    と該単語のコードを合わせて出力し、前記単語検索テー
    ブルに単語か見つかれば、該単語の位置情報である可変
    長コードを出力することを特徴とする請求項16記載の
    印刷システム。
JP30660596A 1996-11-18 1996-11-18 データ圧縮装置、方法及びシステム Expired - Fee Related JP3368157B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30660596A JP3368157B2 (ja) 1996-11-18 1996-11-18 データ圧縮装置、方法及びシステム
US08/969,065 US5907638A (en) 1996-11-18 1997-11-12 Data compression apparatus, method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30660596A JP3368157B2 (ja) 1996-11-18 1996-11-18 データ圧縮装置、方法及びシステム

Publications (2)

Publication Number Publication Date
JPH10150366A true JPH10150366A (ja) 1998-06-02
JP3368157B2 JP3368157B2 (ja) 2003-01-20

Family

ID=17959094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30660596A Expired - Fee Related JP3368157B2 (ja) 1996-11-18 1996-11-18 データ圧縮装置、方法及びシステム

Country Status (2)

Country Link
US (1) US5907638A (ja)
JP (1) JP3368157B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011193451A (ja) * 2010-02-17 2011-09-29 Computer Associates Think Inc 圧縮された整数データを記憶・転送するためのシステム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3342388B2 (ja) * 1998-02-23 2002-11-05 三洋電機株式会社 ディジタルカメラ
JP2001136535A (ja) * 1999-08-25 2001-05-18 Fuji Xerox Co Ltd 画像符号化装置および量子化特性決定装置
US7155062B1 (en) 1999-11-17 2006-12-26 Genicom Corp. System and method for performing pattern matching image compression
US20020138654A1 (en) * 2001-03-21 2002-09-26 Zhigang Liu Apparatus, and associated method, for facilitating deletion of dictionary content pursuant to communication of signaling protocol messages
FI114071B (fi) * 2003-01-13 2004-07-30 Nokia Corp Kuvien käsitteleminen rajoitetulla bittimäärällä
DE102016200032A1 (de) * 2015-01-06 2016-07-07 Ignis Innovation Inc. System und Verfahren zum Extrahieren von Korrelationskurven für eine organische Leuchtvorrichtung
JP6613669B2 (ja) * 2015-07-14 2019-12-04 富士通株式会社 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法
CN108052285B (zh) * 2017-12-12 2018-12-11 清华大学 一种自适应编码长度的时序数据存储的方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796003A (en) * 1984-06-28 1989-01-03 American Telephone And Telegraph Company Data compaction
US5239298A (en) * 1992-04-17 1993-08-24 Bell Communications Research, Inc. Data compression
US5450562A (en) * 1992-10-19 1995-09-12 Hewlett-Packard Company Cache-based data compression/decompression

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011193451A (ja) * 2010-02-17 2011-09-29 Computer Associates Think Inc 圧縮された整数データを記憶・転送するためのシステム

Also Published As

Publication number Publication date
JP3368157B2 (ja) 2003-01-20
US5907638A (en) 1999-05-25

Similar Documents

Publication Publication Date Title
EP0813167B1 (en) Method and apparatus for font compression and decompression
US5229768A (en) Adaptive data compression system
KR100252444B1 (ko) 정보 처리 장치
US5646617A (en) Data compressing method, data restoring method, and information processing apparatus
KR20000068018A (ko) 스트링 검색이 포함되어 있는 즉각적인 사전 갱신을 갖춘 데이터
JPH0869370A (ja) データ圧縮方法およびシステム
JPH0876969A (ja) 圧縮済みデータを不連続メモリに記憶するデータ圧伸方法
US5886655A (en) Arithmetic coding context model that accelerates adaptation for small amounts of data
JP3368157B2 (ja) データ圧縮装置、方法及びシステム
US5392036A (en) Efficient optimal data recopression method and apparatus
US5522028A (en) Output apparatus
KR100381518B1 (ko) 데이타압축해제방법,데이타압축방법및데이타기억에이용되는메모리의양을감소시키는방법
JP3297445B2 (ja) 出力方法及び装置
JP3327650B2 (ja) 記録装置
JP3372822B2 (ja) データ圧縮装置、方法及びシステム及び記憶媒体
JP3449338B2 (ja) データ圧縮方法、データ復元方法及び情報処理装置
JPH0916149A (ja) 文字処理装置、文字処理方法、及び、メモリ
JP3132293B2 (ja) データ圧縮方法、データ復元方法及び情報処理装置
JP3266419B2 (ja) データ圧縮・伸長方式
KR19980081236A (ko) 데이터 압축/복원 방법 및 압축 장치
JP3242795B2 (ja) データ処理装置及びデータ処理方法
KR940003830B1 (ko) Hp에뮬레이션 모드시 한글 프린트 방법
JPH1188189A (ja) データ圧縮処理方法及びその装置及びコンピュータ可読メモリ
JPH09270919A (ja) ページプリンタにおけるデータ圧縮方法
EP0660587B1 (en) Reversible video compression method

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: 20021022

LAPS Cancellation because of no payment of annual fees