(57)【要約】【課題】文字データとドットマップイメージデータの混在するデータを、所与のサイズ以下の圧縮ドットマップデータに変換する。【解決手段】文字データをドットマップデータに変換して可逆的に圧縮した後、ドットマップイメージデータを必要に応じて縮小する。ドットマップデータを所与のサイズに圧縮するために、可逆圧縮、非可逆圧縮、縮小及び圧縮を試みる。オブジェクトデータのページを圧縮ドットマップデータに変換するために、オブジェクトを分類し、優先順位を設定し、しかる後ラスタライズし、それらの優先順位に従って圧縮する。圧縮率は予想され、監視され、予想誤差に従って圧縮パラメータが修正される。【選択図】図１
2006120145.tif 000002
【特許請求の範囲】
【請求項１】
計算機から周辺機器への伝送のため、１ページの文書を形成するオブジェクトの群を記述するデータを、所与のサイズに圧縮する方法において、
型に応じて上記オブジェクトを分類するステップと、
上記オブジェクトをその型及びサイズに従って優先順位を与えるステップと、
上記優先順位に応じて、上記オブジェクトの各々に対し、圧縮パラメータを選択するステップと、
上記オブジェクトの群を記述するデータをドットマップデータに変換するステップと、
上記圧縮パラメータにより制御される方法により、上記ドットマップデータを圧縮して、圧縮データを生成するステップと、
上記圧縮パラメータから上記圧縮データの予想サイズを計算するステップと、
上記圧縮データの実際のサイズを、上記予想サイズと比較し、予想誤差を求めるステップと、
上記予想誤差に応じて上記圧縮パラメータを調整するステップと、上記圧縮データを出力バッファに記憶させるステップと
を有するデータ圧縮方法。
【請求項２】
上記出力バッファに記憶された圧縮データの合計サイズを上記所与のサイズと比較するステップと、
上記合計サイズが上記所与のサイズを上回ったとき、上記出力バッファに記憶された圧縮データの少なくとも一部を消去するステップと、
上記消去された圧縮データの元となったドットマップデータを、より強力な圧縮パラメータを用いて、再び圧縮するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項３】
上記優先順位に応じて、上記オブジェクトに対し縮小率を選択するステップと、
上記縮小率に応じて上記ドットマップデータを縮小するステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項４】
上記ドットマップデータの合計サイズを計算するステップと、
上記合計サイズが上記所与のサイズ以下であるとき、上記圧縮するステップを行なうことなく、上記ドットマップデータを、上記出力バッファに直接記憶させるステップと
をさらに有することを特徴とする請求項１に記載の方法。
【請求項５】
計算機から周辺機器への伝送のために、１ページの文書を形成するオブジェクトの群を記述するデータを所与のサイズに圧縮する装置において、
上記オブジェクトに関するヘッダ情報を読み、上記オブジェクトを型に従って分類するオブジェクト分類手段と、
上記オブジェクト分類手段に結合され、上記オブジェクトに、その型及びサイズに応じて優先順位を与える優先順位設定手段と、
上記優先順位設定手段に結合され、上記優先順位に応じて上記オブジェクトの各々に対する圧縮パラメータを選択する圧縮パラメータ計算手段と、
上記オブジェクト分類手段に結合され、上記オブジェクトを記述するデータをドットマップデータに変換するラスタライズ手段と、
上記優先順位設定手段に結合され、上記ドットマップデータを、上記優先順位設定手段により選択された圧縮パラメータに従って、異なる圧縮率を持つ異なる圧縮方法により圧縮して、圧縮データを生成するデータ圧縮手段と、
上記データ圧縮手段と結合され、上記圧縮パラメータから上記圧縮データの予想サイズを計算し、上記圧縮データの実際のサイズを上記予想サイズと比較し、比較結果を上記圧縮パラメータ計算手段に知らせ、上記圧縮パラメータ計算手段に上記圧縮パラメータを調整させるバッファスペース計算手段と、
上記データ圧縮手段に結合され、上記圧縮データを上記周辺機器に伝送する準備として上記圧縮データを記憶する出力バッファと
を備えたデータ圧縮装置。
【請求項６】
上記データ圧縮手段による圧縮に先立ち、上記ラスタライズ手段により出力されたドットマップデータを記憶するドットマップデータバッファをさらに備えたことを特徴とする請求項５に記載の装置。
【請求項７】
上記オブジェクト分類手段に結合され、上記ラスタライズ手段によるラスタライズに先立ち、上記オブジェクトを記述するデータを記憶するオブジェクトデータバッファをさらに備え、
上記ラスタライズ手段はまた、指定された縮小率に従って、上記ドットマップデータを縮小し、
上記圧縮パラメータ計算手段は、上記優先順位及び上記バッファスペース計算手段により報告された比較の結果に応じて、上記縮小率を指定することを特徴とする
請求項５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字及びイメージの双方を含む文書を、圧縮された、ドットマップデータに変換する方法及び装置に関する。そのような変換は、例えばコンピュータから、受信バッファスペースが小さい周辺機器へデータを伝送するのに先立って行なわれる。
【背景技術】
【０００２】
最近のページ記述言語やＨＴＭＬ（ハイパーテキストマークアップ言語）は、コンピュータで発生された文書に文字だけでなく、フォント名及び文字の大きさ等の属性を記述する情報を含むことを可能にする。文書はさらにグラフィクス図面コマンド又は組込みドットマップイメージにより発生された図面を含むことが可能である。
【０００３】
そのような文書は、ページ記述言語又はＨＴＭＬを解釈し得るプリンタによりきれいに印刷される。そのようなプリンタは、高性能のプロセッサ、大きなメモリスペース、及びフォントデータのための大容量の記憶部を持つ必要がある。低価格のプリンタは、これらのいずれをも有しない。従って、上記解釈を計算機内で行ない、データをそのままで印刷できるような形にして伝送しなければならない。このことは、基本的に、データを印刷すべきページのドットマップ（ページ上の各ドットの値を指定する１又は２以上のビットを含む）として送らなければならないことを意味する。
【０００４】
所謂ページプリンタは１ページ全体のデータを受信してからそのページの印刷を始める。しかし、１ページ全体のドットマップはかなり大きい。例えば、プリンタが３００ＤＰＩの解像度を有する場合、各ドットが１ビットしか必要としないとしても、Ａ４判１ページ当り約１Ｍバイトのメモリスペースが必要である。６００ＤＰＩではこの４倍必要である。低価格のプリンタはそのように多量のデータを記憶することができない。従って、それらにはデータを圧縮して送り、印刷処理中にデータを伸張する必要がある。
【０００５】
圧縮方法は、無損失即ち可逆のものと損失のあるもの即ち非可逆のものとに分けられる。前者は、元のデータとまったく同じデータを復元することができる。後者は、元のデータに近似するデータが復元されるに過ぎないものである。可逆方法には、ランレングス方法、辞書を用いた方法、算術符号化に基づく方法がある。ランレングス方法は、同じドットのランの長さを符号化するものである。辞書を用いた方法は繰返し起こるドットパターンの辞書を作成するものである。非可逆方法は一般的に、数学的変換、例えば広く使われている離散的コサイン変換（ＤＣＴ）に基づくものである。非可逆方法は、損失の程度及び圧縮率がパラメータ設定により制御されるのを可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、これらの方法のいずれにおいても、圧縮率はデータの性質に大きく依存し、予見することが難しい。ドットマップ自然イメージよりもドットマップ文字の方が圧縮率が大きい。しかし、文字フォントの種類によって圧縮率が異なる。イメージデータでは圧縮率は広範囲に変化する。斯くして、プリンタにドットデータを送るに際しどの圧縮方法を用いるべきかを決めるのは容易ではない。ページが文字とグラフィクスの双方を含む場合には特に困難である。不適切な方法を選択すると、印刷出力の品質が悪過ぎたり、プリンタのバッファがオーバーフローしたりする。過去においては、これが、高品質の文書を低価格のプリンタで印刷する場合の主たる障害であった。
【０００７】
この問題はページプリンタに限定されず、ドットデータを、限られたバッファスペースのプリンタや他の周辺機器に送る場合につきまとう。
【０００８】
バッファスペースが限られているからではなく、データ伝送を速くするために、ドットデータを圧縮する必要がある場合にも同じ問題が発生する。
【０００９】
従って、本発明の目的は、文字の品質を低下させることなく、文字及びイメージの双方を表わすドットデータを所与のデータサイズ内に圧縮することにある。
【００１０】
本発明の他の目的は、文字の品質を低下させることなく、文字及びイメージの双方を表わすドットデータを高速で伝送することにある。
【００１１】
本発明の他の目的は、ページ記述言語を用いて発生された文書を、低価格のプリンタにより許容できる品質で印刷することを可能にすることにある。
【００１２】
本発明のさらに他の目的は、許容できない品質でページが印刷されるのを防ぐことにある。
【課題を解決するための手段】
【００１３】
本発明は、文字データとドットマップイメージデータの混在するデータを、所与のサイズ以下の圧縮されたドットマップデータに変換する。文字データは、ドットマップイメージデータから分離され、ドットマップ文字データに変換され、可逆圧縮方法により圧縮され、結果として得られる圧縮文字データのサイズが計算される。このサイズは、所与のサイズから減算され、利用可能な残余サイズが求められ、ドットマップイメージデータをこの残余のサイズに圧縮するための縮小率が計算される。もし、この縮小率が１より大きいときは、ドットマップデータは計算された縮小率に従って縮小される。この結果、ドットマップイメージデータの解像度は低くなる。
【００１４】
本発明はまた、任意のドットマップデータを所与のサイズに圧縮する。ドットマップデータは、最初に可逆圧縮方法で圧縮される。もし、結果として得られる圧縮データが所与のサイズよりも大きければ、結果として得られた圧縮データは破棄され、ドットマップデータは、データの解像度を変えない非可逆圧縮方法により圧縮される。もし、結果として得られる圧縮データがなおも所与のサイズより大きければ、結果として得られる圧縮データは再び破棄され、ドットマップデータは縮小されて、解像度が低減される。
【００１５】
本発明はさらにまた、オブジェクトの群を記述するデータを、所与のサイズ以下のドットマップデータに変換する。オブジェクトは型に応じて分類され、型及びサイズに応じて分類される。圧縮パラメータはそれらの優先順位に基づいてオブジェクト与えられ、各オブジェクトに対して圧縮率が予想される。ドットマップデータの形ではないオブジェクトは、ドットマップデータに変換され、各オブジェクトのドットマップデータは与えられた圧縮パラメータに従って圧縮される。圧縮が進むにつれ、結果が監視され、実際の及び予想の圧縮率が大幅に異なるのであれば、圧縮パラメータが調整される。
【発明の効果】
【００１６】
以上のように、本発明によれば、文字の品質を低下させることなく、文字及びイメージの双方を表わすドットデータを所与のデータサイズ内に圧縮することができる。
また、文字の品質を低下させることなく、文字及びイメージの双方を表わすドットデータを高速で伝送することができる。
さらにまた、ページ記述言語を用いて発生された文書を、低価格のプリンタにより許容できる品質で印刷することが可能となる。
さらにまた、許容できない品質でページが印刷されるのを防ぐことができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付の図面を参照して、本発明の実施の形態を説明する。
本発明は、計算機から周辺機器に送るためのデータを作成する。計算機は例えばパソコン、ワークステーション、等の計算機である。周辺機器は、以下の実施の形態ではプリンタであるが、本発明は他の周辺機器にも適用できる。
【００１８】
本発明は、専用のハードウエア又は専用のソフトウエアを備えた計算機により実施できる。専用のハードウエアの一例はインターフェイスカード上に搭載されたＡＳＩＣ  （特定用途向け集積回路）である。専用のソフトウエアの一例はデバイスドライバーに組込まれたソフトウエアモジュールの群である。他の専用のハードウエア又はソフトウエアを用いることもできる。
【００１９】
図１は、本発明をソフトウエアで実施できる環境の一例を示す。計算機はキーボード２、中央処理装置（ＣＰＵ）４及びメモリ６を有する。メモリ６はランダムアクセス半導体メモリ、リードオンリー半導体メモリ、回転ディスクメモリ装置のような、種々の型のメモリ装置の集合である。計算機のうち、本発明に直接関係のある部分は鎖線７で囲んである。
【００２０】
計算機はプリンタ８に結合されている。プリンタ８は内部にＣＰＵ１０、受信バッファ１２及び印字部１４を有する。印字部１４はページ上にドットを形成することにより印刷を行なうものであれば如何なるものでも良い。そのような装置としては、インクジェット印字ヘッド、ドットマトリクス印字ヘッド、レーザー又はＬＥＤを用いた電子写真装置が周知である。
【００２１】
計算機のメモリ６は、それぞれ文書データ、圧縮文字データ、縮小ドットマップイメージデータ、アプリケーションプログラム及びシステムプログラムを記憶する領域１５、１６、１７、１８及び１９を有する。ＣＰＵ４は領域１８に記憶されたアプリケーションプログラムを実行して、ユーザがキーボード２により種々の文書ファイルを作成して文書データ記憶領域１５に記憶させるのを可能にする。これらの文書ファイルは文字及びドットマップイメージデータ並びに、ヘッダ情報、組込み制御コード、ページ記述言語又はＨＴＭＬのシンタックスに合致するコマンド等の「見えない」情報を含む。
【００２２】
文書が印刷されるとき、文書の作成に用いられたアプリケーションプログラム又はシステムプログラム領域１９のシステムプログラムの一つが文書及びその見えない情報を処理する。この処理の一部として、ＣＰＵ４は本発明のアプリケーション又はシステムソフトウエアを実行する。本発明の第１及び第２の実施の形態によれば、このソフトウエアは文字データをドットマップ文字データに変換し、しかる後そのドットマップ文字データを圧縮（圧縮処理）し、ドットマップイメージデータを縮小（解像度縮小変換）する。圧縮された文字データはメモリ領域１６に記憶され、縮小されたイメージデータはメモリ領域１７に記憶される。
【００２３】
次に、領域１６及び１７に記憶されたデータはプリンタ８に伝送され、受信バッファ１２に記憶される。データを印刷するには、プリンタのＣＰＵ１０が文字データを伸張し、イメージデータを拡大し、結果として得られるドットマップデータを、１ラスターラインずつ印字部１４に送る。
【００２４】
本発明の第３〜第５の実施の形態は、ソフトウエアで実施される場合、同様の環境で動作する。但し、メモリ領域１６及び１７の代わりに、以下に説明するように、他の領域が異なる目的で用いられる。本発明がハードウエアで実施される場合、圧縮及び縮小処理、又はこれらの処理及び文字データをドットマップデータ形態へ変換する処理はＣＰＵ４ではなく、以下に説明する図面に示される別個の回路により実施される。
【００２５】
図２は、第１の実施の形態を示す。プリンタ８及び文書データメモリ１５は図１に示すごとくである。文書データはプリンタ８に、データ変換システム２０を介して供給される。このデータ変換システム２０は、文字・イメージ分離手段２１、ラスタライズ手段２２、可逆データ圧縮手段２４、制御手段２６、及び縮小手段２８を有する。データ変換システム２０は計算機内に、インターフェイスカード、システムプログラム、又はアプリケーションプログラムの一部として設けられている。プリンタ８内の受信バッファはページバッファ３０であり、１ページに印刷すべきデータの全体を記憶可能である。ページバッファ３０のサイズＭｐはデータ変換システム２０に知られている。
【００２６】
次に第１の実施の形態の動作を、図２、図３及び図４を参照して説明する。
【００２７】
文書データメモリ１５内の文書ファイルが印刷されるとき、文書データはプリンタ８に１ページずつ送られる。各ページの伝送は、プリンタ８からページバッファ３０が空であり次のページのデータを受信し得る状態であることを示す信号が供給されたときに開始される。
【００２８】
ページを記述する文書データは最初に、直接またはアプリケーションプログラム又はシステムプログラムで処理した後文字・イメージ分離手段２１を通される。この実施の形態では、文字・イメージ分離手段２１は、文字ヘッダ情報を伴う文字コードの形の文字データと、イメージヘッダ情報を伴うドットマップの形のイメージデータとを受信する。文字ヘッダ情報は、フォント名、文字の大きさ、文字配置情報のような文字属性を指定する。イメージヘッダ情報は、イメージ中の、イメージの高さ及び幅、即ち、ドットラインの数及び各ドットラインの幅、及びページ中のイメージの位置を指定する。
【００２９】
図３を参照し、ステップＳ１において、ヘッダ情報を読むことにより、文字・イメージ分離手段２１は文字データとイメージデータとを分離し、文字データをラスタライズ手段２２に送る。ラスタライズ手段２２は文字データをラスタライズする。即ち、ラスタライズ手段２２は、図示しないメモリ領域からの文字のドットマップを読むことにより、文字の文字コードをドットマップ文字データに変換する。ドットマップ文字データは可逆データ圧縮手段２４に送られる。
【００３０】
ステップＳ２において、例えば、ランレングス符号化方法により、ドットマップ文字データを圧縮する。図４は基本的なランレングス符号化の概念を示す。図４のドットラインは４つの白ドットのランで始まり、次に３つの黒のドットのランが続き、しかる後、５つの黒のドット、１つの白のドット、３つの黒のドットで終る。このドットラインは符号化されて数４，３，．．．５，１，３となる。この種の圧縮を用いれば、元のドットデータを完全に復元することができる。
【００３１】
多くのランレングス符号化方法が広く知られている。一つの好ましい方法は、Ｇ４ファクシミリ伝送に用いられるＭＭＲ（モディファイドモディファイドリード）方法である。この方法では、可変長コードを用いてランの長さを符号化する。ＭＭＲ方法は２次元的であり、各ドットラインと次のドットラインとの差を符号化することにより、垂直のランをも符号化する。
【００３２】
図３のステップＳ３において、可逆データ圧縮手段２４により生成された圧縮された文字データはプリンタ８に伝送され、ページバッファ３０に記憶される。さらに、可逆データ圧縮手段２４は、このように伝送される圧縮された文字データのサイズＭｔを制御手段２６に知らせる。制御手段２６は、このサイズＭｔを、ページバッファ３０の既知のサイズＭｐから差引き、残余のサイズ即ち残メモリ容量Ｍｒを求め（ステップＳ４）、この残メモリ容量ＭｒをドットマップイメージデータのサイズＭｉと比較する（ステップＳ５）。なお、残メモリ容量Ｍｒを計算する際、ＣＰＵ２６は、Ｍｔを差引くだけでなく、イメージヘッダ情報に対する余地を残すための付加的量を差引く。
【００３３】
ドットマップイメージデータのサイズＭｉは、文字・イメージ分離手段２１から制御手段２６に供給されるイメージヘッダ情報から得られる。Ｗがドットマプイメージの幅、Ｈがその高さを示し、各ドット値が１ビットで表わされるのであれば、Ｍｉ（バイト数）は下記の式で表わされる。
【００３４】
Ｍｉ＝（Ｈ×Ｗ）／８
ＭｉがＭｒ以下であれば、縮小手段２８は、ドットマップイメージデータを変更せずに、文字・イメージ分離手段２１で得られたイメージヘッダ情報とともに、かつイメージヘッダに、縮小率が１であることを示す符号を付加して、プリンタ８に送る。ドットマップイメージデータ及びイメージヘッダ情報はページバッファ３０内の残余のスペースに記憶される。
【００３５】
ＭｉがＭｒよりも大きい場合には、制御手段２６は、イメージデータのサイズをＭｒ以下に減らすための縮小率を計算する。縮小率は、下記の不等式を満たす最小の整数Ｓである。
【００３６】
Ｓ≧（Ｍｉ／Ｍｒ）１／２
ステップＳ７において、縮小手段２８は、データの解像度を垂直方向及び水平方向に１／Ｓに低下させることにより、ドットマップイメージデータを縮小する。縮小の簡単な方法は、「間引き」である。この場合、縮小手段２８はＳ番目毎のドットラインの、Ｓ番目毎のドットのみを読み、他のドット及びドットラインを破棄する。縮小の他の方法はＳ×Ｓドットのブロックのドット値の合計を求め、この値をＳ２で割り、結果として得られる値を（四捨五入等により）最も近い整数に丸めて、１ドットとして出力する。これらの方法のいずれか、或いは他の縮小方法を用い得る。
【００３７】
ステップＳ７の後、縮小手段２８は、縮小されたイメージデータを、イメージヘッダ情報とともに、かつＳの値を指定した情報を加えて、プリンタ８に送る（ステップＳ６）。イメージデータの伝送が終ると、ページの終わりを示す信号がプリンタ８に送られる。
【００３８】
するとプリンタ８は、ヘッダ情報を読み、文字およびイメージをページ上のどこに配置するかを決め、圧縮された文字データを伸張してドットマップ文字データと全く同じコピーを復元し、縮小率Ｓが１より大きい場合には拡大し、元の解像度を復元する。単純な拡大方法は各ドットを、同じドット値を有するＳ×Ｓのドットのブロックに拡大する。ブロックが目立ちにくい出力を得るために、拡大の他の方法、例えば線形補間を用いることもできる。データ伸張および拡大処理は１水平ドットラインずつ行なうことができる。
【００３９】
ドットマップイメージデータのランレングス符号化は極めて効率的である。ページバッファ３０がある程度の容量を持てば、圧縮された文字データとイメージヘッダを組合せたサイズがバッファのサイズＭｐを超える可能性を充分小さく（殆どゼロに）することができる。また、ページバッファ３０に少しでもスペースがあれば、上記の不等式により、イメージデータを残余のスペースに圧縮するための縮小率が求められる。従って、第１の実施の形態は、ほぼ確実に、バッファーのオーバフローを回避することができる。
【００４０】
可逆圧縮が用いられているので、印刷された文字には品質の劣化がない。イメージデータに関しては、縮小率が１よりも大きい場合には、印刷されたイメージデータの劣化が目に付くかも知れない。しかし、縮小率がそれほど大きくなければ、そのようなイメージの劣化は許容し得るものである。元々ドットマップイメージは、完全に鮮明であることを期待されていないからである。
【００４１】
図５は、第２の実施の形態を示す。図２と同じ符号は同一又は等価な部材を示す。これらには、文字・イメージ分離手段２１、ラスタライズ手段２２、可逆圧縮手段２４、縮小手段２８、並びに文書データメモリ１５及びプリンタ８が含まれる。
【００４２】
第２の実施の形態のデータ変換システム３２は、圧縮された文字データを記憶する文字バッファ３４と、ドットマップイメージデータを記憶するイメージバッファ３６を有する点で第１の実施の形態と異なる。第２の実施の形態の制御手段３８は文字バッファ３４、イメージバッファ３６及びプリンタ８、並びに可逆データ圧縮手段２４及び縮小手段２８と結合されている。
【００４３】
第２の実施の形態のデータ変換システムが結合されているプリンタ８は、第１の実施の形態のプリンタとは異なり、ページバッファの代りにバンドバッファ４０を有する。バンドバッファ４０は１ページ未満の記憶容量しか持たない。プリンタ８としては、ページプリンタ又は他の種類のプリンタを用い得る。バンドバッファ４０のサイズＭｂは制御手段３８には知られている。
【００４４】
次に、第２の実施の形態の動作を説明する。文字・イメージ分離手段２１、ラスタライズ手段２２、可逆データ圧縮手段２４及び縮小手段２８は第１の実施の形態と同様に動作する。従って、以下主として制御手段３８について説明する。
【００４５】
第２の実施の形態はプリンタ８にデータを、各々Ｎドットラインから成る帯状部分毎に送る。ここでＮは固定された正の整数である。固定した数のドットラインを同時に印刷するプリンタにおいては、Ｎはそのドットラインの数である。例えばインクジェットプリンタにおいては、Ｎはインクジェット印字ヘッドのノズルの数である。ドットマトリクスインパクトプリンタにおいては、Ｎは例えばインパクト印字ヘッドのドット印字ワイヤの数である。
【００４６】
バンドバッファ４０から印字部に可変数のドットラインを伝送することができるページプリンタの場合、Ｎを、バンドバッファ４０のサイズＭｂを圧縮されていない１ドットライン中のデータの量で割ったものと等しくするのが便利である。Ｍｂがバイト数で表わされ、Ｄが１ライン当りのドット数であり、各ドットが１ビットで表わされるのであれば、Ｎは次式で与えられる。
【００４７】
Ｎ＝（Ｍｂ×８）／Ｄ
図６のフローチャートを参照し、ステップＳ１０において、制御手段３８は、プリンタ８から、バンドバッファ４０が空であることを示す信号が供給されるのを待つ。制御手段３８が待っている間、文字・イメージ分離手段２１は、少なくともＮドットライン分の所定量のデータを、文字及びイメージデータに分離し、ドットマップイメージデータ及びイメージヘッダ情報をイメージバッファ３６内に格納する。ラスタライズ手段２２は文字データをラスタライズしてドットマップ文字データを生成する。可逆データ圧縮手段２４はそのドットマップ文字データを圧縮して文字バッファ３４内に格納する。可逆データ圧縮手段２４は制御手段３８に各ドットラインの圧縮後のデータサイズを知らせる。
【００４８】
プリンタからバッファが空であることを示す信号が供給されると、制御手段３８はステップＳ１１において、残余のバッファスペースを示す変数（残メモリ容量）ＭｒをＭｂに等しくする初期化を行なう。
【００４９】
ステップＳ１２において、可逆データ圧縮手段２４から供給されたサイズ情報から、制御手段３８は次のＮラインの圧縮された文字データ及び必要な文字ヘッダ及びイメージヘッダ情報のサイズＭｔを計算する。ステップＳ１３において、このサイズＭｔは残メモリ容量Ｍｒと比較される。ＭｔがＭｒ以下のときは、制御手段３８はステップＳ１４〜Ｓ１８に進む。
【００５０】
ステップＳ１４において、制御手段３８は次のＮラインの圧縮文字データ及びそれらの文字ヘッダ情報（もし存在するなら）を文字バッファ３４からプリンタ８内のバンドバッファ４０に伝送させる。ステップＳ１５において、制御手段３８は伝送された文字データ及びヘッダのサイズＭｔ（未だ伝送されていないイメージヘッダのサイズを含む）を、残メモリ容量Ｍｒから差引く。そして、結果として得られる差を新たなＭｒの値とする。
【００５１】
ステップＳ１６において、制御手段３８は、イメージバッファ３６内のヘッダ情報により示される、次のＮラインのドットマップイメージデータを計算し、このサイズＭｉをＭｒの新たな値と比較し、第１の実施の形態で与えられた式により縮小率Ｓを計算する。縮小手段２８は、計算された縮小率Ｓで、これらのＮラインのドットマップイメージデータを縮小する。Ｓが１であるときは、縮小処理は単にＳ＝１を示す符号をイメージヘッダ情報中に挿入するに過ぎない。
【００５２】
ステップＳ１７において、これらのＮラインの縮小されたイメージデータ及びそれらのヘッダ情報はプリンタ８に伝送される。ステップＳ１８において、制御手段３８は残メモリ容量Ｍｒから、ステップ１７において伝送されたドットマップイメージデータのサイズＭｉを差引き、結果として得られた差を新たなＭｒとする。
【００５３】
ステップＳ１９において、印刷すべき文書内のデータがすべてプリンタ８に送られたのであれば印刷処理は終了する。もしそうでなければ、制御手段３８はステップＳ１２に戻り、ステップＳ１８で得られたＭｒの新たな値を用いて、同じ処理を繰返す。制御手段３８は、ステップＳ１９でデータの終了が検出されるか、またはステップＳ１３で答えが“ＮＯ”となるまで、ステップＳ１２からＳ１９までの処理を繰返し実行する。文字バッファ３４及びイメージバッファ３６内部のデータが少なくなると、ラスタライズ手段２２及び可逆データ圧縮手段２４はより多くのデータをラスタライズ及び圧縮し、文字・イメージ分離手段２１はイメージバッファ３６内により多くのドットマップイメージデータを書込む。
【００５４】
ステップＳ１３で、答えが“ＮＯ”である（即ち、バンドバッファ４０に、次のＮラインの圧縮データを格納するのに十分なスペースがない）ときは、ステップＳ２０において制御手段３８は、１バンドのデータの、バンドバッファ４０への伝送が終ったことを、プリンタ８に伝える。プリンタ８は、バンドバッファ４０内のデータの伸張、拡大、及び印刷を開始し、次のデータを受信する用意ができたら、そのことを制御手段３８に知らせる。
【００５５】
第２の実施の形態は、第１の実施の形態と同じ印刷結果が得られる。但し、同じイメージの異なる部分に異なる縮小率が用いられる可能性がある。その結果イメージが帯状に見えることは、それ自体望ましくはないが、バッファオーバフローによるエラー状態においてプリンタホールトが生じるのを避けることができると言う効果がある。
【００５６】
第２の実施の形態の利点は、受信バッファスペースの小さいページプリンタ又は他のプリンタにより、文字品質を落とすことなくドットマップページを印刷できることである。
【００５７】
第３の実施の形態として、図７はデータ圧縮装置４２を示す。この装置は、任意のドットマップデータを所与のサイズに圧縮するものである。
【００５８】
ドットマップデータはドットマップデータバッファ４４に記憶され、制御手段５４により制御される可逆圧縮手段４８、非可逆データ圧縮手段５０及び縮小手段５２に供給可能である。可逆データ圧縮手段４８、非可逆データ圧縮手段５０又は縮小手段５２により圧縮又は縮小されたデータは出力バッファ５６に格納され、同じく制御手段５４により制御されて、該出力バッファ５６から、プリンタ８内の受信バッファ１２に伝送される。出力バッファ５６に格納された縮小データは、可逆データ圧縮手段４８や非可逆データ圧縮手段５０により読むことも可能である。
【００５９】
次に、図８及び図９を参照して、第３の実施の形態の自動及び半自動モードの動作を説明する。両モードとも、受信バッファ１２内の利用可能なスペースのサイズを、例えばプリンタ８からの信号により、制御手段５４が知っていることを前提としている。半自動モードの動作においては、制御手段５４はユーザからキーボード２によりコマンドが与えられる。
【００６０】
図８は、自動モードを示す。ステップＳ２２において、可逆データ圧縮手段４８は、ドットマップデータを、例えばＭＭＲ方法により圧縮し、結果として得られるデータを出力バッファ５６に格納し、圧縮データのサイズを制御手段５４に知らせる。ステップＳ２３において、制御手段５４は、このサイズを、受信バッファ１２内の利用可能なスペースの量（これは既知）と比較する。もし、可逆圧縮されたデータのサイズが受信バッファスペースの量よりも多ければ、圧縮されたデータは出力バッファ５６から消去され、制御手段５４はステップＳ２４に進む。
【００６１】
ステップＳ２４において、同じドットマップデータが再びドットマップデータバッファ４４から読み出され非可逆データ圧縮手段５０により圧縮される。非可逆データ圧縮手段５０は視覚的に無損失と見做せる圧縮方法（伸張されたデータは元のデータと同一ではないが、差異が容易には知覚されない）を用いたものであるのが望ましい。ＪＰＥＧにより設定された標準に記載されているＤＣＴはそのような圧縮方法の周知の一例である。他の公知の方法においては、圧縮率を向上させるために元のデータに若干の修正を施した後、算術符号化が行なわれる。非可逆データ圧縮手段５０は結果として得られた圧縮されたデータを出力バッファ５６に格納し、圧縮データのサイズを制御手段５４に知らせる。
【００６２】
ステップＳ２５において、制御手段５４は、非可逆データ圧縮手段５０により圧縮されたデータのサイズを受信バッファのスペースと比較する。データサイズが、利用可能な受信バッファスペースよりも尚も大きければ、制御手段５４は出力バッファ５６内の圧縮データを再び消去する。
【００６３】
ステップＳ２６において、ドットマップデータが再びドットマップデータバッファ４４から読み出され、制御手段５４により指定された縮小率を用いて縮小手段５２により再度縮小される。縮小されたデータは出力バッファ５６内に格納され、制御手段５４により指定される２つのデータ圧縮手段４８及び５０の一方により圧縮される。ステップＳ２７において、制御手段５４は、結果として得られた圧縮データのサイズを、受信バッファスペースのサイズと比較する。
【００６４】
圧縮データサイズが受信バッファスペースよりも尚も大きければ、制御手段５４は、出力バッファ５６内の圧縮データを消去し、ステップＳ２６に戻り、より高い縮小率を用い及び／又はより強力な圧縮を用いて、縮小及び圧縮処理を繰返させる。より強力な圧縮は、例えば可逆データ圧縮手段４８の代りに非可逆データ圧縮手段５０を用いることにより、あるいは非可逆データ圧縮手段５０により非可逆圧縮を指定することにより行なわれる。例えば、ＤＣＴの場合、周波数の高い成分をより多く破棄することにより、或いは情報をより粗く量子化することで、圧縮率を高くすることができる。ステップＳ２６及びＳ２７は、圧縮データが受信バッファ１２内の利用可能なスペースに収まるようになるまで繰返される。
【００６５】
ステップＳ２３、Ｓ２５、又はＳ２７において、圧縮データサイズがバッファスペースのサイズ以下になったことが判定されると、圧縮データは出力バッファ５６からプリンタ８内の受信バッファ１２に伝送され（Ｓ２８）、圧縮処理が終る。
【００６６】
図９は第３の実施の形態の半自動モードの動作を示す。
【００６７】
ステップＳ３０及びＳ３１は図８のステップＳ２２及びＳ２３と同じである。即ち、可逆圧縮が行なわれ、圧縮データが所与のバッファスペースに収まる場合には、データはプリンタ８に送られる。
【００６８】
可逆圧縮が不十分であれば、ステップＳ３２において、制御手段５４がそのことをユーザに知らせ、命令を求める。これに応じてユーザはキーボード２によりステップＳ３３、Ｓ３４及びＳ３５の一つを選択する。ステップＳ３３は図８のステップＳ２４と等価な非可逆圧縮ステップである。ステップＳ３４は図８のステップＳ２６と等価な縮小及び圧縮ステップである。ステップＳ３５は、現ページを飛ばす（スキップする）ことを内容とする。
【００６９】
ステップＳ３３又はＳ３４が要求され、指定された圧縮が実行されると、結果として得られた圧縮データのサイズが受信バッファサイズと比較される（ステップＳ３６）。圧縮データが所与のバッファスペースに収まる場合には、データはプリンタ８に送られる。そうでなければ、制御手段５４はステップＳ３２に戻り、再びユーザに問い合わせる。ユーザが再度同じ形の圧縮を選んだら、より強力な圧縮パラメータを用いて圧縮処理が行なわれる。
【００７０】
ステップＳ３５が要求された場合、制御手段５４は、プリンタ８に、現ページをキャンセルし、その受信バッファ１２をクリアすることを命じる信号を送る。その結果このページは印刷されない。ステップＳ３８において、次のページのデータがドットマップデータバッファ４４から読まれ、ステップＳ３０に戻る。
【００７１】
半自動モードの動作は、非可逆圧縮処理或いは縮小によりドットマップデータの歪が許容し得ない程度となるページの印刷を回避し得ると言う利点がある。
【００７２】
第１及び第２の実施の形態と同様、第３の実施の形態も、適切な縮小率を用いることにより、ドットマップデータを任意のサイズに圧縮できる。従って、第３の実施の形態のデータ圧縮装置４２を第１及び第２の実施の形態の縮小手段２８に置き換えることができる。このように置き換えをすれば、縮小を行なうことなく、可逆又は非可逆データ圧縮によりイメージデータを十分に圧縮できる場合に、イメージ品質の不必要な低下を回避することができる。縮小が必要な場合にも、縮小されたデータに圧縮処理を行なうことで、縮小率をより小さくすることができ、これにより、イメージの品質を向上させることができる。
【００７３】
第３の実施の形態は、１ページ全体のドットマップデータを、即ちイメージデータのみならず、文字データをも圧縮するために独立して用いることもできる。
【００７４】
第３の実施の形態の変形例として、可逆圧縮のみでは不十分のときに、ドットマップデータバッファ４４からデータを再度読む代りに、可逆的に圧縮したデータを伸張して元のデータを復元することとしても良い。この場合、伸張が終ると、可逆的に圧縮されたデータは、破棄される。
【００７５】
他の変形例として、圧縮が終るのを待って圧縮データのサイズをバッファサイズと比較する代りに、圧縮データのサイズを１ラインの圧縮が終る毎に比較し、圧縮データの量が受信バッファサイズを超えたら直ちに圧縮処理を中断することとしても良い。そうすれば、次の圧縮処理への移行を速めることができる。
【００７６】
図１０は第４の実施の形態を示す。接続されたプリンタ８はページバッファ３０を備えるページプリンタである。文書データメモリ１５に記憶された文書データは、文字及びドットマップイメージとに限定されず、種々の形態のオブジェクトを含む。例えば、グラフィクス図面コマンドで記述された線グラフィクスオブジェクトである。
【００７７】
第４の実施の形態のデータ変換システム５８は第１及び第２の実施の形態と同様、ラスタライズ手段２２を有し、また第３の実施の形態と同様、ドットマップデータバッファ４４を有し、さらに、オブジェクト分類手段６０、優先順位設定手段６２、及び圧縮手段６４を有する。圧縮ユニット６４は、圧縮パラメータ計算手段６６、バッファスペース計算手段６８、及びデータ圧縮手段７０を有する。データ圧縮手段７０は、異なる圧縮率の異なる圧縮方法を実施することができるものである。上記異なる圧縮率の異なる圧縮方法には、少なくとも一つの可逆的圧縮方法と、パラメータで制御可能な圧縮率を有する非可逆的圧縮方法とを含むのが望ましい。これらの手段は、図示のように接続されている。データ圧縮手段７０により生成された圧縮データは、出力バッファ７２に格納され、プリンタ８に送られる。
【００７８】
図１１は、幾つかのオブジェクトを有するページの一例を示す。このオブジェクトには、表題オブジェクト７４、２つの文字のブロック７６及び７８、ページ番号オブジェクト８０、さらに他の文字のブロック８２、及びドットマップイメージオブジェクト８４が含まれる。文書メモリ１５には、各オブジェクトはその位置を示すヘッダと、フォント名、文字の大きさ、イメージ高さ及び幅などの属性を有する。
【００７９】
次に、図１２及び図１３のフローチャートを参照して、第４の実施の形態の動作を説明する。
【００８０】
図１２を参照し、ステップＳ４１において、オブジェクト分類手段６０は１ページ上のすべてのオブジェクトのヘッダを読み、オブジェクトをその型によって分類する。分類結果は、ラスタライズ手段２２及び優先順位設定手段６２に送られる。
【００８１】
ステップＳ４２において、ラスタライズ手段２２はこれらのオブジェクトのうち、まだドットマップデータの形になっていないものをラスタライズする。文字データは第１の実施の形態において説明したようにラスタライズされる。ライングラフィクスは、グラフィクス図面コマンドを実行することによりラスタライズする。必要ならば、ラスタライズ手段２２は、１ドット当たりのビットの数が、プリンタの能力に合うようにドットマップイメージデータを変換する。例えば、プリンタ８が白及び黒のドットしか印刷できず（１ドットあたり１ビット）、一方ドットマップイメージデータが１ビット当たり２ビット以上で、グレイスケールを有する場合、ラスタライズ手段２２はそのドットデータを、周知のディザ、誤差拡散処理等により、白黒データに変換する。ラスタライズされたオブジェクトは、各オブジェクトの高さ及び幅、並びにそのページ上での位置を示すヘッダ情報とともに、ドットマップデータバッファ４４に格納される。
【００８２】
ステップＳ４３において、優先順位設定手段６２は、各オブジェクトに、オブジェクト分類手段６により判定された型、並びにドットマップデータのヘッダ情報により示されるサイズに応じて優先順位を与える。優先順位設定の規則は、印刷されている文書の種類によって異なるものとしても良い。例えば、主として文字文書である文書の場合、文字オブジェクトが最も高い優先順位を与えられ、図１１におけるオブジェクト８４のようなドットマップイメージオブジェクトは最も低い優先順位を与えられる。同じ型のオブジェクト間では、より大きなオブジェクトがより高い優先順位を与えられ、より小さなオブジェクトがより低い優先順位を与えられることとしても良い。基本的に走査された写真の集合である文書の場合、ドットマップイメージデータに最も高い優先順位を与えることとしても良い。型及び大きさが同じオブジェクト間の優先順位は任意に定め、各オブジェクトがそれぞれ異なる優先順位を持つようにする。優先順位情報及びオブジェクトサイズ情報は圧縮手段６４に供給される。
【００８３】
ステップＳ４４において、圧縮パラメータ計算手段６６は、各オブジェクトの圧縮パタラメータを、圧縮を全くしないことを示す値に初期化する。ステップＳ４５において、圧縮パラメータ計算手段６６はすべての圧縮されていないオブジェクトのドットマップデータ及びヘッダ情報のサイズの合計を計算する。ステップＳ４５において、圧縮パラメータ計算手段６６は、このサイズの合計を、既知のプリンタページバッファ３０のサイズと比較する。圧縮されていないオブジェクトのサイズの合計がバッファサイズを超えないときは、ステップＳ４７において、圧縮されていないオブジェクトが、出力バッファ７２に直接格納される。必要に応じてプリンタコマンドが、オブジェクトデータに付加され（ステップＳ４８）、圧縮されていないオブジェクトデータがプリンタページバッファ３０に伝送される（ステップＳ４９）。
【００８４】
圧縮されていないオブジェクトのサイズがプリンタバッファサイズを上回る場合、処理はステップＳ４６から、図１３のステップＳ５０に分岐する。ステップＳ５０において、圧縮パラメータ計算手段６６は、圧縮パラメータを改め、各オブジェクトを圧縮後のサイズを予想する。各オブジェクトの圧縮パラメータは、オブジェクトの優先順位に基づいて決定される。
【００８５】
ステップにおける手順の一例として、最初に可逆的圧縮が、低い優先順位のオブジェクトから順に、各オブジェクトに対し指定される。オブジェクトの予想サイズの合計がプリンタバッファサイズ以下となったら、そこで終了する。全てのオブジェクトの可逆的圧縮後のサイズの合計の予想結果がバッファサイズよりも大きい場合には、圧縮パラメータを可逆的圧縮から非可逆的圧縮に変更し、再び低い優先順位のオブジェクトから順に処理をする。低い優先順位のオブジェクトに、高い優先順位のオブジェクトよりもより大きい圧縮率を適用するように非可逆的圧縮パラメータを設定するのが望ましい。圧縮パラメータの調整は、圧縮オブジェクトのサイズの予想サイズがプリンタバッファサイズ以下となるまで続けられる。
【００８６】
次のステップＳ５１〜Ｓ５５は１ページ上の各ドットラインに対し、ページの上部から順に繰返されるループを形成している。
【００８７】
ステップＳ５１において、圧縮パラメータ計算手段６６は、１ページ上の１ドットラインの圧縮されたサイズを、そのライン上のオブジェクトの予想圧縮率に基づいて、予想し、その予想サイズをバッファスペース計算手段６８に知らせる。
【００８８】
ステップＳ５３において、データ圧縮手段７０は、指定された圧縮パラメータを用いてそのドットラインを圧縮する。データ圧縮手段７０は、結果として得られる圧縮データを出力バッファ７２に格納し、圧縮されたラインのサイズをバッファスペース計算手段６８に知らせる。
【００８９】
再び図１１を参照し、圧縮パラメータ計算手段６６がオブジェクト７６に対して可逆圧縮を指定し、オブジェクト８４に対し非可逆圧縮を指定すると、例えばドットライン８５は２つの部分に分けて圧縮される。即ち、オブジェクト７６に関する可逆的に圧縮されたドッタデータを含む部分と、オブジェクト８４に関する非可逆的圧縮されたデータを含む部分である。符号化方法、オブジェクト７６及び８４の幅、並びにこれらのオブジェクトの位置を示す情報も必要に応じて符号化される。非可逆的符号化方法がＮ×Ｎブロック（Ｎは１より大きい整数）のドットデータに基づくものであるときは、Ｎドットライン毎に一度非可逆圧縮されたデータが現われる。
【００９０】
バッファスペース計算手段６８は、圧縮パラメータ計算手段６６から報告される、圧縮ドットラインの予想サイズの累積合計と、データ圧縮手段７０から報告される、実際のサイズの累積合計とを保持する。可逆ラインが出力バッファ７２に格納された後、ステップＳ５３において、バッファスペース計算手段６８はそれまでに出力バッファ７２に格納された圧縮データの合計量が、プリンタページバッファ３０のサイズを超えたかどうかのチェックをする。もし超えていなければ、処理はステップＳ５４に進む。
【００９１】
もし、出力バッファに格納されたばかりのラインがページの最後のラインであれば、処理はステップＳ５４から図１２のステップＳ４８に戻り、プリンタコマンドを付加し、出力バッファ７２からの圧縮データをプリンタ８に伝送する。
【００９２】
もし圧縮され格納されたばかりのラインがページの最後のラインでなければ、ステップＳ５５において、バッファスペース計算手段に保持されている、実際の及び予想累積データサイズ合計が比較され、累積予想誤差が求められ、予想誤差が所定の正及び負の限界値と比較される。予想誤差が負の限界値を超えるとき、即ち実際の合計データサイズが予想合計データサイズよりもある量以上大きいときは、処理はステップＳ５０に戻り、そのページの残りのラインの圧縮率を大きくするように圧縮パラメータが再調整される。予想誤差が正の限界値を超えるとき、即ち予想合計データサイズが実際の合計データサイズよりもある量以上大きいときも、処理はステップＳ５０に戻り、そのページの残りのラインの圧縮率を小さくしてイメージ品質を上げるように圧縮パラメータが再調整される。予想誤差が負及び正の限界値の範囲内であるときは、処理はステップＳ５１に戻り、圧縮パラメータの再調整を行なうことなく、次のドットラインの処理を行なう。
【００９３】
ステップＳ５３においてそれまでに出力バッファ７２に格納されたデータの累積合計サイズが、利用可能なページバッファスペースを超えたと判定されたときは、ステップＳ５６において、そのデータの少なくとも一部が出力バッファ７２から消去され、処理はステップＳ５０に進む。ここで、圧縮率を大きくするように圧縮パラメータが改められ、消去されたラインのうちの最初のもから、ステップＳ５１〜Ｓ５５の圧縮ループが繰返される。消去されるラインの数は、ページ内の残りのラインの数に依存する。必要ならば、出力バッファ７２のそれまでに処理されたラインがすべて消去され、圧縮がページの上部から再開される。
【００９４】
第４の実施の形態は、種々の型のオブジェクトを、過度に圧縮することなく、しかも充分小さなサイズに圧縮することができる利点があり、さらに最も重要なオブジェクトに対し、品質の低下が最小になるように圧縮を行ない得る利点がある。圧縮データのサイズを予想し、実際の圧縮後のサイズを監視し、必要に応じて圧縮パラメータを調整することにより、第４の実施の形態は、通常、同じデータを繰返し圧縮することなく、最初の試みで圧縮に成功する。これも更なる利点である。
【００９５】
第４の実施の形態の変形例として、実際の圧縮データサイズが予想サイズよりも上記ある量以上大きくなったときにのみ、バッファスペース計算手段６８が圧縮パラメータ計算手段６６に通知をすることとし、予想サイズが実際のサイズを上回ったときは通知をしないこととし、これにより圧縮パラメータの変更を少なくしても良い。
【００９６】
図１４は第５の実施の形態を示す。図１４において、図１０と同じ符号は等価な部材を示す。これらには、文書データメモリ１５、プリンタ８及びそのページバッファ３０、オブジェクト分類手段６０、優先順位設定手段６２、バッファスペース計算手段６８、データ圧縮手段７０、及び出力バッファ７２が含まれる。
【００９７】
第４の実施の形態のドットマップデータバッファの代りに、第５の実施の形態のデータ変換システム８６は、オブジェクトデータバッファ８８を有する。このオブジェクトデータバッファ８８は、オブジェクト分類手段６０に制御されて、文書データメモリ１５から供給される元のオブジェクトデータを格納する。縮小及び圧縮パラメータ計算手段９０は第４の実施の形態の圧縮パラメータ計算手段と類似であるが、圧縮パラメータのみならず縮小パラメータをも計算する。ラスタライズ手段９２は、第４の実施の形態で説明されたラスタライズ機能と、縮小機能とを有する。
【００９８】
次に、図１５及び図１６のフローチャートを参照して第５の実施の形態の動作を説明する。第５の実施の形態は、１ページずつ処理をする。しかし、第４の実施の形態とは異なり、１ドットラインずつではなく、１オブジェクトずつ圧縮する。
【００９９】
図１５のステップＳ６０及びＳ６１は図１２Ｒ＞２のステップＳ４１及びＳ４３と同じである。即ち、オブジェクト分類手段６０はページ上の各オブジェクトについてのヘッダ情報を読み、優先順位設定手段６２は各オブジェクトにそれぞれ異なる優先順位を与える。
【０１００】
ステップＳ６２において、縮小及び圧縮パラメータ計算手段９０は、圧縮及び縮小パラメータを、縮小及び圧縮をしない値に初期化する。ステップＳ６３において、縮小及び圧縮パラメータ計算手段９０は、各オブジェクトのラスタライズ後のサイズを計算する。データ圧縮が行なわれないので、この計算は正確に行ない得る。ステップＳ６４において、オブジェクトの計算されたサイズの合計がプリンタページバッファ３０のサイズと比較される。合計サイズがバッファサイズ以下のときは、オブジェクトは縮小されることなく。ラスタライズ手段９２でラスタライズされ（ステップＳ６５）、プリンタコマンドが付加され（ステップＳ６６）、オブジェクトデータはプリンタに出力される（ステップＳ６７）。
【０１０１】
ステップＳ６３で計算された合計サイズがプリンタバッファサイズを上回るときは、処理はステップＳ６４から図１６のステップＳ６８に分岐する。ステップＳ６８は、図１３のステップＳ５０と類似である。但し、圧縮パラメータを改めるばかりでなく、必要に応じて縮小及び圧縮パラメータ計算手段９０は、１よりも大きい縮小率を指定することができる。縮小率を指定するに当り、縮小及び圧縮パラメータ計算手段９０は、優先順位の規則を守り、優先順位のより高いオブジェクトの縮小率が優先順位のより低いオブジェクトの縮小率よりも大きくならないようにする。縮小及び圧縮パラメータ計算手段９０はまた、ラスタライズ、縮小及び圧縮の後の各オブジェクトのサイズを予想する。
【０１０２】
ステップＳ６９〜Ｓ７３は、最も優先順位の高いオブジェクトから最も優先順位の低いオブジェクトへの順で、１つのオブジェクトごとに行なわれるループを形成する。
【０１０３】
ステップＳ６９において、ラスタライズ手段９２は１つのオブジェクトをラスタライズし、縮小する。この際、縮小及び圧縮パラメータ計算手段９０により指定される縮小率を用いる。縮小率が１であるときは、縮小は行なわれない。結果として得られるドットマップデータはデータ圧縮手段７０に出力される。
【０１０４】
ステップＳ７０において、データ圧縮手段７０は、指定された圧縮パラメータによりオブジェクトのドットマップデータを圧縮し、オブジェクトの圧縮後のサイズをバッファスペース計算手段６８に知らせる。圧縮されたオブジェクトデータは、オブジェクトヘッダ情報とともに、出力バッファ７２に格納される。圧縮方法及び縮小率を示す符号がヘッダ情報に付加される。
【０１０５】
ステップＳ７１において、バッファスペース計算手段６８は、それまでに出力バッファ７２に格納された圧縮オブジェクトデータの累積合計サイズを、プリンタページバッファ３０のサイズと比較する。圧縮データサイズがバッファサイズ以下であれば、ステップＳ７２において圧縮されたばかりのオブジェクトがそのページの最後のオブジェクトであるかどうかの判定が行なわれる。もしそうであれば、処理は図１５のステップＳ６６に戻り、プリンタコマンドを付加し、データをプリンタ８に送る。
【０１０６】
現オブジェクトが最後のオブジェクトでなければ、ステップＳ７３において、バッファスペース計算手段６８は、それまでに出力バッファ７２に格納された圧縮オブジェクトデータの実際の及び予想の累積合計サイズを比較し、予想誤差を求め、予想誤差を正及び負の限界値と比較する。この点は第４の実施の形態と同様である。予想誤差が限界値の範囲内であれば、処理は、ステップＳ６９に戻り、次のオブジェクトのラスタライズ及び圧縮が行なわれる。そうでなければ、処理はステップＳ６８に戻り、残りのオブジェクトについて用いられる圧縮パラメータ及び／又は縮小率を変更する。
【０１０７】
出力バッファ７２に格納されているデータの累積サイズがプリンタバッファサイズを上回ると、処理はステップＳ７１からステップＳ７４に分岐し、ラスタライズされ圧縮されたばかりのオブジェクトが出力バッファ７２から消去される。必要ならばそれ以前の１又は２以上のオブジェクトをも消去することとしても良い。次に、処理はステップＳ６８に戻り、消去されたオブジェクト及び残りのオブジェクトの圧縮及び／又は縮小パラメータが改められ、その後これらのオブジェクトは再度ラスタライズ及び圧縮される。
【０１０８】
第５の実施の形態は、第４の実施の形態と同じ利点を有するが、さらに、以下の２つの利点を有する。一つは、各オブジェクトが均一のパラメータのセット（組）を用いてラスタライズ及び圧縮されることであり、もう一つは、ドットマップイメージデータのサイズを小さくするために縮小を用い得ることである。ドットマップイメージデータのサイズの大幅な減少が必要なときには、縮小は、結果を正確に予想できる利点、及び圧縮率の高い非可逆圧縮方法を用いた場合に生じることのある歪を避け得る利点を有する。
【０１０９】
第５の実施の形態の変形例として、圧縮データのサイズを各オブジェクトの圧縮の中間段階で（例えば、Ｎドットライン（Ｎは正の整数）毎に）バッファのオーバフローが生じないかどうかについて調べることとしても良い。
【０１１０】
第４及び第５の実施の形態は各オブジェクトについて圧縮パラメータを設定するものとして説明したが、各オブジェクト内の各ドットラインを調べ、そのドットラインの特性に適した圧縮方法を選択することとしても良い。
【０１１１】
上記の各実施の形態における縮小は、２次元的に行なわれるものとして説明した。しかし、１次元的縮小を用いることもできる。例えば、イメージ内のドットラインを１ラインおきに消去することにより、ドットマップイメージデータの量を半分に減らすこととしても良い。
【０１１２】
当業者にはさらに他の変形が可能であることが理解できよう。
【０１１３】
以下に本発明の特徴を要約する。
【０１１４】
（１）  文字データ及びドットマップイメージデータの混在するデータを、所与のサイズ以下のドットマップデータに変換する方法において、文字データとドットマップイメージデータとを分離するステップと、文字データをラスタライズしてドットマップ文字データを生成するステップと、上記ドットマップ文字データを可逆的に圧縮して圧縮文字データを生成するステップと、上記所与のサイズから上記圧縮文字データのサイズを減算して残余のサイズを求めるステップと、上記ドットマップイメージデータのサイズを上記残余のサイズと比較して縮小率を定めるステップと、上記縮小率に従って上記ドットマップイメージデータを縮小し、縮小イメージデータを生成するステップとを有するデータ圧縮方法。
【０１１５】
（２）  上記ドットマップイメージデータのサイズが上記残余のサイズ以下であるときは、上記縮小率を１とし、上記ドットマップイメージデータのサイズが上記残余のサイズを上回るときは、上記縮小率を１よりも大きい整数とすることを特徴とする上記（１）に記載の方法。
【０１１６】
（３）  上記方法を、文字データ及びドットマップイメージデータの相連続する帯状領域に対して行ない、さらに、上記残余のサイズから、上記縮小イメージデータのサイズを差引くことにより、上記所与のサイズを更新するステップを有することを特徴とする上記（１）に記載の方法。
【０１１７】
（４）  上記ドットマップイメージデータを可逆的圧縮方法により圧縮して第１の圧縮イメージデータを生成するステップと、上記第１の圧縮イメージデータが上記残余のサイズを上回るときは、上記ドットマップイメージデータを非可逆的圧縮方法により圧縮して第２の圧縮イメージデータを生成するステップとをさらに有し、上記第２の圧縮イメージデータのサイズが上記残余のサイズを上回るときに限って、上記縮小率を求めるステップ及び上記ドットマップイメージデータを縮小するステップを実施することを特徴とする上記（１）に記載の方法。
【０１１８】
（５）  文字データとドットマップイメージデータの混在するデータを所与のサイズ以下のドットマップデータに変換する装置において、上記文字データと上記ドットマップイメージデータとを分離する文字・イメージ分離手段（２１）と、上記文字・イメージ分離手段（２１）に結合され、上記文字データをラスタライズしてドットマップ文字データを生成するラスタライズ手段（２２）と、上記ラスタライズ手段（２２）に結合され、上記ドットマップ文字データを圧縮して、圧縮文字データを生成する可逆データ圧縮手段（２４）と、上記可逆データ圧縮手段（２４）に結合され、上記所与のサイズから上記圧縮文字データのサイズを差引くことにより残余サイズを求め、上記ドットマップイメージデータのサイズを上記残余サイズと比較して縮小率を定める制御手段（２６）と、上記文字・イメージ分離手段（２１）に結合され、上記縮小率に従って上記ドットマップイメージデータを縮小して縮小イメージデータを生成する縮小手段（２８）とを備えた装置。
【０１１９】
（６）  上記ドットマップイメージデータのサイズが上記残余サイズ以下のときは上記縮小率を１とし、上記ドットマップイメージデータのサイズが上記残余サイズを上回るときは上記縮小率を１よりも大きい整数とすることを特徴とする上記（５）に記載の装置。
【０１２０】
（７）  上記可逆データ圧縮手段（２４）に結合され、上記圧縮文字データを記憶する文字バッファ（３４）と、上記文字・イメージ分離手段（２１）に結合され、上記縮小手段（２８）による縮小に先立ち上記ドットマップイメージデータを記憶するイメージバッファ（３６）とをさらに備えることを特徴とする上記（５）に記載の装置。
【０１２１】
（８）  上記制御手段（２６）は、上記残余サイズから上記縮小イメージデータのサイズを差引き、結果として得られる差を新たな所与のサイズとして用いてさらに文字データ及びドットマップイメージデータを圧縮することを特徴とする上記（７）に記載の装置。
【０１２２】
（９）  圧縮されたドットマップデータを所与のサイズに圧縮する方法において、上記ドットマップデータを可逆圧縮方法により圧縮して第１の圧縮データを生成するステップと、上記第１の圧縮データのサイズが上記所与のサイズを上回るとき、上記ドットマップデータを非可逆圧縮方法により圧縮して第２の圧縮データを生成するステップと、上記第２の圧縮データのサイズが上記所与のサイズを上回るとき、上記ドットマップデータを縮小して縮小データを生成するステップとを有するデータ圧縮方法。
【０１２３】
（１０）  上記縮小データを非可逆圧縮方法により圧縮するステップをさらに有することを特徴とする上記（９）に記載の方法。
【０１２４】
（１１）  上記データが、プリンタに伝送すべき１ページのデータを構成することを特徴とする上記（９）に記載の方法。
【０１２５】
（１２）  上記第１の圧縮データのサイズが上記所与のサイズを上回るときにユーザに知らせるステップをさらに有し、上記ユーザから第１のコマンドが入力されたときに非可逆圧縮方法により上記ドットマップデータを圧縮するステップに進み、上記ユーザから第２のコマンドが入力されたときに上記非可逆圧縮方法により上記ドットマップデータを圧縮するステップを省略して、上記ドットマップデータを縮小するステップに直接進み、上記ユーザから第３のコマンドが入力されたときに上記ページのデータを飛ばすステップをさらに有することを特徴とする上記（１１）に記載の方法。
【０１２６】
（１３）  計算機から周辺機器へ伝送するために、ドットマップデータを所与のサイズに圧縮する装置において、上記計算機内に配置され、上記ドットマップデータを異なる圧縮率で圧縮して圧縮データを生成する複数の圧縮手段（４８、５０、５２）と、上記複数の圧縮手段に結合され、上記複数の圧縮手段から出力された上記圧縮データを記憶する出力バッファ（５６）と、上記複数の圧縮手段に結合され、上記の複数の圧縮手段のうちの、上記ドットマップデータを上記所与のサイズに圧縮し得るものであって、かつその中で最も圧縮率の低いものを選択し、該選択された圧縮手段により生成された圧縮データを上記周辺機器に伝送させる制御手段（５４）とを備えたデータ圧縮装置。
【０１２７】
（１４）  上記複数の圧縮手段は少なくとも、可逆圧縮手段（４８）と、非可逆圧縮手段（５０）と、縮小手段（５２）とを含むことを特徴とする上記（１３）に記載の装置。
【０１２８】
（１５）  上記制御手段（５４）は、上記複数の圧縮手段が上記ドットマップデータを上記所与のサイズに圧縮できなかったときに、そのことをユーザに知らせることを特徴とする上記（１３）に記載の装置。
【０１２９】
（１６）  上記制御手段（５４）は、上記ユーザからのコマンドに応じて、上記複数の圧縮手段のうちの、異なる圧縮手段を選択することを特徴とする上記（１５）に記載の装置。
【０１３０】
（１７）  計算機から周辺機器への伝送のため、１ページの文書を形成するオブジェクトの群を記述するデータを、所与のサイズに圧縮する方法において、型に応じて上記オブジェクトを分類するステップと、上記オブジェクトをその型及びサイズに従って優先順位を与えるステップと、上記優先順位に応じて、上記オブジェクトの各々に対し、圧縮パラメータを選択するステップと、上記オブジェクトの群を記述するデータをドットマップデータに変換するステップと、上記圧縮パラメータにより制御される方法により、上記ドットマップデータを圧縮して、圧縮データを生成するステップと、上記圧縮パラメータから上記圧縮データの予想サイズを計算するステップと、上記圧縮データの実際のサイズを、上記予想サイズと比較し、予想誤差を求めるステップと、上記予想誤差に応じて上記圧縮パラメータを調整するステップと、上記圧縮データを出力バッファに記憶させるステップとを有するデータ圧縮方法。
【０１３１】
（１８）  上記出力バッファに記憶された圧縮データの合計サイズを上記所与のサイズと比較するステップと、上記合計サイズが上記所与のサイズを上回ったとき、上記出力バッファに記憶された圧縮データの少なくとも一部を消去するステップと、上記消去された圧縮データの元となったドットマップデータを、より強力な圧縮パラメータを用いて、再び圧縮するステップとをさらに有することを特徴とする上記（１７）に記載の方法。
【０１３２】
（１９）  上記優先順位に応じて、上記オブジェクトに対し縮小率を選択するステップと、上記縮小率に応じて上記ドットマップデータを縮小するステップとをさらに有することを特徴とする上記（１７）に記載の方法。
【０１３３】
（２０）  上記ドットマップデータの合計サイズを計算するステップと、上記合計サイズが上記所与のサイズ以下であるとき、上記圧縮するステップを行なうことなく、上記ドットマップデータを、上記出力バッファに直接記憶させるステップとをさらに有することを特徴とする上記（１７）に記載の方法。
【０１３４】
（２１）  計算機から周辺機器への伝送のために、１ページの文書を形成するオブジェクトの群を記述するデータを所与のサイズに圧縮する装置において、上記オブジェクトに関するヘッダ情報を読み、上記オブジェクトを型に従って分類するオブジェクト分類手段（６０）と、上記オブジェクト分類手段（６０）に結合され、上記オブジェクトに、その型及びサイズに応じて優先順位を与える優先順位設定手段（６２）と、上記優先順位設定手段（６２）に結合され、上記優先順位に応じて上記オブジェクトの各々に対する圧縮パラメータを選択する圧縮パラメータ計算手段（６６、９０）と、上記オブジェクト分類手段（６０）に結合され、上記オブジェクトを記述するデータをドットマップデータに変換するラスタライズ手段（２２、９２）と、上記優先順位設定手段（６２）に結合され、上記ドットマップデータを、上記優先順位設定手段（６２）により選択された圧縮パラメータに従って、異なる圧縮率を持つ異なる圧縮方法により圧縮して、圧縮データを生成するデータ圧縮手段（７０）と、上記データ圧縮手段（７０）と結合され、上記圧縮パラメータから上記圧縮データの予想サイズを計算し、上記圧縮データの実際のサイズを上記予想サイズと比較し、比較結果を上記圧縮パラメータ計算手段（６６、９０）に知らせ、上記圧縮パラメータ計算手段（６６、９０）に上記圧縮パラメータを調整させるバッファスペース計算手段（６８）と、上記データ圧縮手段（７０）に結合され、上記圧縮データを上記周辺機器に伝送する準備として上記圧縮データを記憶する出力バッファ（７２）とを備えたデータ圧縮装置。
【０１３５】
（２２）  上記データ圧縮手段（７０）による圧縮に先立ち、上記ラスタライズ手段（２２）により出力されたドットマップデータを記憶するドットマップデータバッファ（４４）をさらに備えたことを特徴とする上記（２１）に記載の装置。
【０１３６】
（２３）  上記オブジェクト分類手段（６０）に結合され、上記ラスタライズ手段（９２）によるラスタライズに先立ち、上記オブジェクトを記述するデータを記憶するオブジェクトデータバッファ（８８）をさらに備え、上記ラスタライズ手段（９２）はまた、指定された縮小率に従って、上記ドットマップデータを縮小し、上記圧縮パラメータ計算手段（９０）は、上記優先順位及び上記バッファスペース計算手段（６８）により報告された比較の結果に応じて、上記縮小率を指定することを特徴とする上記（２１）に記載の装置。
【図面の簡単な説明】
【０１３７】
【図１】本発明に関する計算機及びプリンタに関連する部材を示すブロック図である。
【図２】本発明の装置の第１の実施の形態の機能ブロック図である。
【図３】第１の実施の形態の動作を示すフローチャートである。
【図４】ドットデータのランレングス符号化を示す図である。
【図５】本発明の装置の第２の実施の形態の機能ブロック図である。
【図６】第２の実施の形態の動作を示すフローチャートである。
【図７】本発明の第３の実施の形態の機能ブロック図である。
【図８】第３の実施の形態の動作の一つのモードを示すフローチャートである。
【図９】第３の実施の形態の動作の他のモードを示すフローチャートである。
【図１０】本発明の第４の実施の形態の機能ブロック図である。
【図１１】文字及びイメージのオブジェクトを有するページを示す図である。
【図１２】第４の実施の形態の動作を示すフローチャートである。
【図１３】第４の実施の形態の動作を示すフローチャートである。
【図１４】本発明の装置の第５の実施の形態の機能ブロック図である。
【図１５】第５の実施の形態の動作を示すフローチャートである。
【図１６】第５の実施の形態の動作を示すフローチャートである。
【符号の説明】
【０１３８】
２１：文字・イメージ分離手段  ２２：ラスタライズ手段  ２４：可逆データ圧縮手段  ２６：制御手段  ２８：縮小手段  ３４：文字バッファ  ３６：イメージバッファ  ４８：可逆圧縮手段  ５０：非可逆圧縮手段  ５２：縮小手段  ５４：制御手段  ５６：出力バッファ  ６０：オブジェクト分類手段  ６２：優先順位設定手段  ６８：バッファスペース計算手段  ７０：データ圧縮手段  ８８：オブジェクトバッファ  ９０：圧縮パラメータ計算手段  ９２：ラスタライズ手段。
【図１】
2006120145.tif 000003
【図２】
2006120145.tif 000004
【図３】
2006120145.tif 000005
【図４】
2006120145.tif 000006
【図５】
2006120145.tif 000007
【図６】
2006120145.tif 000008
【図７】
2006120145.tif 000009
【図８】
2006120145.tif 000010
【図９】
2006120145.tif 000011
【図１０】
2006120145.tif 000012
【図１１】
2006120145.tif 000013
【図１２】
2006120145.tif 000014
【図１３】
2006120145.tif 000015
【図１４】
2006120145.tif 000016
【図１５】
2006120145.tif 000017
【図１６】
2006120145.tif 000018