(57)【特許請求の範囲】
【請求項１】
ページプリンタにおいて印刷すべき文書データをラスタライズし、そのラスタライズされたデータに対して可変長可逆圧縮処理を施して、その圧縮処理された圧縮コードをメモリに格納し、該メモリに格納された圧縮コードを読み出して伸長処理をし、その伸長処理したデータをプリンタエンジンへ送出するデータ圧縮・伸長方法であって、
前記ラスタライズされたデータを、所定数のドットで構成されるブロックと、所定数の該ブロックで構成されるユニットとをそれぞれ基本単位として分割し、
前記ラスタライズされたデータに対する可変長可逆圧縮処理を前記ブロック単位で施すとともに、
前記ユニットを構成するデータが全て白であるかどうかを該ユニット毎にチェックし、該ユニットを構成するデータが全て白でない場合には、該ユニットを構成するブロック毎に該ブロックを構成するデータが全て白であるかどうかをチェックし、
前記ユニット毎のチェック結果が全て白であったユニットを構成する全ブロックおよび前記ブロック毎のチェック結果が全て白であった各ブロックに対しては、前記メモリに格納された圧縮コードの読み出し及び伸長処理を行わず、直接前記所定数のドットの全白データをプリンタエンジンへ送出することを特徴とするデータ圧縮・伸長方法。
【請求項２】
ページプリンタにおいて印刷すべき文書データをラスタライズし、そのラスタライズされたデータに対して可変長可逆圧縮処理を施して、その圧縮処理された圧縮コードをメモリに格納し、該メモリに格納された圧縮コードを読み出して伸長処理をし、その伸長処理されたデータをプリンタエンジンへ送出するデータ圧縮・伸長方法であって、
主走査方向にｔドットで構成されるブロックと、主走査方向あるいは副走査方向にｕブロックで構成されるユニットの２つの基本単位を用い、前記印刷すべきデータを１ページ分ずつラスタライズするために前記メモリとして必要なページバッファを前記ユニット単位に分割し、
その分割した各ユニットのデータが全て白であるかどうかをチェックし、その結果を前記メモリ内のｍビットのホワイトマップテーブル（ＷＭＴ）に保存し、
１ユニットのデータが全て白でない場合には、該ユニットを構成するブロック毎にそのデータが全て白であるかどうかをチェックして、その結果を前記ホワイトマップテーブル（ＷＭＴ）に前記ユニット単位でその各ブロックのステータス情報として保存すると共に、上記ホワイトマップテーブル（ＷＭＴ）にアドレスを格納して、前記メモリのそのアドレスで指定される領域に圧縮データテーブル（ＣＤＴ）を用意して、各ブロック毎にそのデータに対して可変長可逆圧縮処理を施し、その圧縮コードを該圧縮データテーブル（ＣＤＴ）に圧縮データレコード（ＣＤＲ）として格納し、
前記ブロック毎の圧縮処理が不可能な場合には、前記メモリの前記圧縮データテーブル（ＣＤＴ）で指定されるアドレス領域にｔビットの非圧縮データテーブル（ＵＤＴ）を用意して、そこに該ブロックのデータをそのまま格納することにより、１ページ分のデータを格納した後、
前記圧縮データテーブル（ＣＤＴ）に格納された各ユニットのブロック毎の圧縮コードを読み出して伸長処理をし、その伸長処理したデータをプリンタエンジンへ転送する際に、前記ユニット単位で前記ホワイトマップテーブル（ＷＭＴ）の各ブロックのステータス情報を読み込んで、該ステータス情報が全て白であることを示すブロックに対しては、前記メモリに格納された圧縮コードの読み出し及び伸長処理を行なわず、直接ｔドットの全白データをプリンタエンジンへ送出することを特徴とするデータ圧縮・伸長処理方法。
【請求項３】
印刷すべきデータをラスタライズし、そのラスタライズされたデータに対して可変長可逆圧縮処理を施して、その圧縮処理された圧縮コードをメモリに格納し、該メモリに格納された圧縮コードを読み出して伸長処理をし、その伸長処理したデータをプリンタエンジンへ送出するページプリンタであって、
前記ラスタライズされたデータを、所定数のドットで構成されるブロックと、所定数の該ブロックで構成されるユニットとをそれぞれ基本単位として分割する手段と、
前記ラスタライズされたデータに対する可変長可逆圧縮処理を前記ブロック単位で施す手段と、
前記ユニットを構成するデータが全て白であるかどうかを該ユニット毎にチェックし、該ユニットを構成するデータが全て白でない場合には、該ユニットを構成するブロック毎に該ブロックを構成するデータが全て白であるかどうかをチェックする手段と、
前記ユニット毎のチェック結果が全て白であったユニットを構成する全ブロックおよび前記ブロック毎のチェック結果が全て白であった各ブロックに対しては、前記メモリに格納された圧縮コードの読み出し及び伸長処理を行わず、直接前記所定数のドットの全白データをプリンタエンジンへ送出する手段と
を設けたことを特徴とするページプリンタ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、白黒およびカラーのレーザプリンタ、ＬＥＤプリンタ等のページプリンタ（デジタル複写機のプリンタ部も含む）におけるデータ圧縮・伸長処理方法、およびそれを実施するページプリンタに関する。
【０００２】
【従来の技術】
近年、レーザプリンタ等のページプリンタの解像度は益々高くなり、最近では６００ＤＰＩが主流になっている。今後は８００ＤＰＩや１２００ＤＰＩのプリンタが出現するであろうし、マルチ・リゾリューション・プリンタ、すなわちエミュレーションに応じてエンジンの解像度が変化するプリンタも増えてくるであろう。
【０００３】
しかし、ページプリンタ内の１ページ分のビットマップデータを展開するフレームバッファのメモリ容量は、Ａ４，６００ＤＰＩで約４ＭＢ、Ａ３，６００ＤＰＩでは約８ＭＢになる。このようなフレームバッファのメモリ容量の増加は、製品価格に大きな影響を与える。一方、ページプリンタの価格は逆に低価格へと推移しているため、高解像度化に伴う価格上昇をなんらかの手段で抑えなければならない。
【０００４】
そのための２値画像データの可逆圧縮技術には、ファクシミリ等で用いられるＭＨ（ハフマン符号化方式：一次元圧縮法によるＧ３ファクシミリの標準符号化方式），ＭＲ（二次元圧縮法によるＧ３ファクシミリではオプションの符号化方式），ＭＭＲ（ＭＲ符号化方式の変形で、Ｇ４ファクシミリの標準符号化方式）や、コンピュータで扱うテキストファイルやバイナリファイルに用いられる、例えばＬＺ方式の圧縮等がある。また、最近では国際標準である算術符号化を用いたＪＢＩＧ方式もある。
【０００５】
【発明が解決しようとする課題】
しかしながら、これらの２値画像データ圧縮技術は、画像あるいはファイルの先頭から順番に逐次符号化処理を行なうので、所望の任意ブロックだけをリアルタイムに復元することはできない。
【０００６】
ページプリンタでは、印刷すべき文書情報がコンピュータのＣＲＴ上で実際に作成された順番にくるため、ある大きさのブロック単位で圧縮処理を施さなければならない。従って、上記圧縮技術をそのまま使用することはできない。
また、２値画像データの固定長可逆圧縮技術は世の中に存在しない。従って、対象とする画像データによっては、所望の容量に圧縮できない場合がある。
【０００７】
そこで、本発明者等は先に、ページプリンタにおいて印刷すべき文書データを所定の解像度にラスタライズし、そのラスタライズされたデータに対して所定の大きさのブロック単位で可変長可逆圧縮処理を施し、その各圧縮コードを圧縮メモリに格納すると共に、主走査方向又は副走査方向に連続する複数のブロックによって構成されるユニットが全て白データの場合には特定コードを圧縮メモリに格納し、該圧縮メモリへの１ページ分あるいはそれを複数に分割したデータの圧縮コードの格納が完了した後、その圧縮コードを伸長してプリンタエンジンにビデオ信号を出力する画像データの圧縮・伸長方法を発明した。
【０００８】
さらに、その圧縮コードを伸長する際、上記ユニット単位で上記特定コードの有無を判別し、該特定コードがあると判別したときには、そのユニットの圧縮コードに対して読み出し及び伸長を行なわず、直接全白データをプリンタエンジンへ転送するようにした画像データの圧縮・伸長方法も発明した。
【０００９】
このようにすれば、ページプリンタにおいて、ラスタライズされた印刷用データを格納するフレームバッファのメモリ容量を大幅に削減でき、高解像度のページプリンタを安価に提供できるようになる。
しかも、１ユニット内が全て白データであるときには、そのユニットのデータを読み出さないので、１ユニット内の各ブロック分のメモリアクセスを削減できるため、圧縮コードの伸長処理を効率良く行なえる。
【００１０】
しかしながら、表計算アプリケーションによる印字等のように罫線の多い画像の場合には、殆ど白となる部分が多く存在するにもかかわらず、極く一部に黒データが存在するために、１ユニット内の各ブロックの圧縮コードを全て読み出して伸長処理をすることになるため、メモリバスのアクセスが多く、処理効率を充分高めることができないという問題があった。
この発明はこのような問題を解決して、ラスタライズ後に圧縮されてメモリに格納された印刷用データを伸長（解凍ともいう）して、プリンタエンジンにビデオ信号を出力する処理を、より効率よく行なえるようにすることを目的とする。
【００１１】
【課題を解決するための手段】
この発明は、上述したようなプリンタにおけるデータ圧縮・伸長処理方法において上記の目的を達成するため、ラスタライズされたデータを、所定数のドットで構成されるブロックと、所定数のそのブロックで構成されるユニットとをそれぞれ基本単位として分割し、上記ラスタライズされたデータに対する可変長可逆圧縮処理をそのブロック単位で施してメモリに格納する。
さらに、上記ユニットを構成するデータが全て白であるかどうかを該ユニット毎にチェックし、該ユニットを構成するデータが全て白でない場合には、該ユニットを構成するブロック毎に該ブロックを構成するデータが全て白であるかどうかをチェックする。
【００１２】
そして、上記ユニット毎のチェック結果が、全て白であったユニットを構成する全ブロックおよび前記ブロック毎のチェック結果が全て白であった各ブロックに対しては、上記メモリに格納された圧縮コードの読み出し及び伸長処理を行わず、直接上記所定数のドットの全白データをプリンタエンジンへ送出することを特徴とする。
【００１３】
また、ページプリンタにおいて、印刷すべきデータをラスタライズし、そのラスタライズされたデータに対して可変長可逆圧縮処理を施して、その圧縮処理された圧縮コードをメモリに格納し、該メモリに格納された圧縮コードを読み出して伸長処理をし、その伸長処理されたデータをプリンタエンジンへ送出するデータ圧縮・伸長方法であって、次のようにすることを特徴とするデータ圧縮・伸長方法も提供する。
主走査方向にｔドットで構成されるブロックと、主走査方向あるいは副走査方向にｕブロックで構成されるユニットの２つの基本単位を用い、上記印刷すべきデータを１ページ分ずつラスタライズするために上記メモリとして必要なページバッファを前記ユニット単位に分割する。
その分割した各ユニットのデータが全て白であるかどうかをチェックし、その結果を上記メモリ内のｍビットのホワイトマップテーブル（ＷＭＴ）に保存する。
【００１４】
そして、１ユニットのデータが全て白でない場合には、該ユニットを構成するブロック毎にそのデータが全て白であるかどうかをチェックして、その結果を上記ホワイトマップテーブル（ＷＭＴ）に上記ユニット単位でその各ブロックのステータス情報として保存すると共に、上記ホワイトマップテーブル（ＷＭＴ）にアドレスを格納して、上記メモリのそのアドレスで指定される領域に圧縮データテーブル（ＣＤＴ）を用意して、各ブロック毎にそのデータに対して可変長可逆圧縮処理を施し、その圧縮コードを該圧縮データテーブル（ＣＤＴ）に圧縮データレコード（ＣＤＲ）として格納する。
【００１５】
上記ブロック毎の圧縮処理が不可能な場合には、上記メモリの圧縮データテーブル（ＣＤＴ）で指定されるアドレス領域にｔビットの非圧縮データテーブル（ＵＤＴ）を用意して、そこに該ブロックのデータをそのまま格納する。
このようにして、１ページ分のデータを格納した後、上記圧縮データテーブル（ＣＤＴ）に格納された各ユニットのブロック毎の圧縮コードを読み出して伸長処理をし、その伸長処理したデータをプリンタエンジンへ転送する際に、上記ユニット単位でホワイトマップテーブル（ＷＭＴ）の各ブロックのステータス情報を読み込んで、該ステータス情報が全て白であることを示すブロックに対しては、上記メモリに格納された圧縮コードの読み出し及び伸長処理を行なわず、直接ｔドットの全白データをプリンタエンジンへ送出する。
【００１６】
このようにすることにより、各ユニット毎にデータが全て白のブロックについては、メモリに格納された圧縮コードの読み出し及び伸長処理、さらにその伸長したデータのビデオバッファへの転送を行なわないので、メモリバスのアクセス回数を削減でき、圧縮データの伸長（解凍）処理を効率よく行なうことができる。
この発明はさらに、印刷すべきデータをラスタライズし、そのラスタライズされたデータに対して可変長可逆圧縮処理を施して、その圧縮処理された圧縮コードをメモリに格納し、該メモリに格納された圧縮コードを読み出して伸長処理をし、その伸長処理したデータをプリンタエンジンへ送出するデータ圧縮・伸長装置であって、次の各手段を設けたことを特徴とするデータ圧縮・伸長装置も提供する。
すなわち、上記ラスタライズされたデータを、所定数のドットで構成されるブロックと、所定数の該ブロックで構成されるユニットとをそれぞれ基本単位として分割する手段と、上記ラスタライズされたデータに対する可変長可逆圧縮処理を上記ブロック単位で施す手段と、上記ユニットを構成するデータが全て白であるかどうかを該ユニット毎にチェックし、該ユニットを構成するデータが全て白でない場合には、該ユニットを構成するブロック毎に該ブロックを構成するデータが全て白であるかどうかをチェックする手段と、上記ユニット毎のチェック結果が全て白であったユニットを構成する全ブロックおよび上記ブロック毎のチェック結果が全て白であった各ブロックに対しては、上記メモリに格納された圧縮コードの読み出し及び伸長処理を行わず、直接上記所定数のドットの全白データをプリンタエンジンへ送出する手段とを設ける。
【００１７】
【発明の実施の形態】
以下、この発明の実施の形態を図面に基づいて具体的に説明する。
図２はこの発明によるページプリンタを用いた画像形成システムの構成例を示す図であり、１００はパーソナルコンピュータ、２００がページプリンタである。通常、ユーザはパーソナルコンピュータ１００のＣＲＴ画面とキーボードとＤＴＰ（デスクトップ・パブリッシング）アプリケーションを使って文書を作成し、プリンタドライバ１０１を通してページプリンタ２００に転送して印刷を行なう。
【００１８】
プリンタドライバ１０１は、通常印刷すべき文書内容をページプリンタ２００がサポートするプリンタ言語、例えばヒューレット・パッカード（ＨＰ）社のＰＣＬやＡｄｏｂｅ社のポストスクリプト言語等にコンバートする。前者に接続されたプリンタを一般にＰＣＬエミュレーション・プリンタ、後者に接続されたプリンタをポストスクリプト・プリンタと呼ぶ。また、パーソナルコンピュータ１００側で全てラスタライズされたビットイメージを印刷するだけのダムプリンタと呼ばれるプリンタもある。
【００１９】
ページプリンタ２００としては、レーザプリンタやインクジェットプリンタ、あるいはサーマルプリンタ等があるが、高速印刷という点でレーザプリンタが勝る。最近はカラーのレーザプリンタも市場に出始めており、それを使用することも可能である。また、解像度は年々高まる一方で、現在は６００ＤＰＩが標準となっている。
以下の実施例では、ページプリンタ２００を６００ＤＰＩの白黒ポストスクリプト・レーザプリンタ（以下単に「ページプリンタ」と称する）として説明するが、この発明はそれに限定されるものではない。
【００２０】
図３はそのページプリンタの外観図であり、図４はその内部機構の概略を示す縦断面図である。
このページプリンタ２００は、給紙トレイ２を着脱可能に備え、上部に第１排紙スタッカ３を設け、後部に第２排紙スタッカ４を設けている。２個の排紙スタッカ３，４への排紙は切換爪５によって切換え可能である。通常は、排紙スタッカとして第１排紙スタッカ３が選択されるが、封筒や葉書などのカールし易い紙を使用する場合など、特別な場合に第２排紙スタッカ４が選択される。
【００２１】
さらに、内部にはプリンタエンジンの作像部を構成する感光体ドラム１０，帯電部１１，光書込部１２，現像部１３，転写部１４，定着部１５と、給紙ローラ１６及びレジストローラ対１７等による給紙部と、搬送ローラとペーパガイド板等からなる排紙用搬送部１８と、このページプリンタ全体を制御するプリンタコントローラを構成するコントローラ基板１９及びプリンタエンジンのシーケンスコントローラを構成するエンジンドライバ基板２０等が設けられている。
【００２２】
そして、プリンタエンジンのシーケンスコントローラによりプリントシーケンスが開始されると、給紙ローラ１６によって給紙トレイ２から給紙を始め、その用紙の先端をレジストローラ対１７に突き当てた状態で一時停止させる。
一方、感光体ドラム１０は図４の矢印Ａ方向へ回転し、帯電部１１で帯電された表面に、光書込部１２によってプリンタコントローラからの画像データに応じて変調されたレーザビームを、ドラム軸方向に主走査しながら照射して露光し、感光体ドラム１０の表面に静電潜像を形成する。
【００２３】
それを現像部１３でトナーによって現像し、レジストローラ対１７によって所定のタイミングで給送される用紙に転写部１４において転写し、定着部１５で加熱定着したプリント紙を第２排紙スタッカ４へ送出するか、排紙用搬送部１８を通して上部の第１排紙スタッカ３へ搬送する。
【００２４】
図５はコントローラ基板１９の内部ブロック図である。
このコントローラ基板１９は、ＣＰＵ２０１，ＮＶＲＡＭ２０３，プログラムＲＯＭ２０４，フォントＲＯＭ２０５，ＲＡＭ２０６，及び４個のインタフェース（以下「Ｉ／Ｆ」と略称する）２０７，２０９，２１１，２１３と、これらを接続するバスライン２１５によって構成されている。
【００２５】
ＣＰＵ２０１は、プログラムＲＯＭ２０４に格納されたプログラム、操作パネル２１０からのモード指示、ホスト装置であるパーソナルコンピュータ（パソコン）１００からのコマンド等によって、このコントローラ全体を制御する。また、挿着されたＩＣカード２０２から、フォントデータやプログラム等を取り込むこともできる。この発明によるデータ圧縮・伸長処理もこのＣＰＵ２０１による制御のもとでなされる。
ＮＶＲＡＭ２０３は、操作パネル２１０からのモード指示の内容などを記憶しておく不揮発性メモリである。
【００２６】
プログラムＲＯＭ２０４は、このコントローラの制御プログラムを格納している読出し専用メモリである。
フォントＲＯＭ２０５は、文字フォントのパターンデータなどを記憶する。
ＲＡＭ２０６は、ＣＰＵ２０１のワークメモリ，入力データのインプットバッファ，プリントデータのページメモリ（フレームバッファ），ビデオバッファ，ダウンロードフォント用のメモリ等に使用するランダムアクセス・メモリである。
【００２７】
エンジンＩ／Ｆ２０７は、実際に印刷を行なうプリンタエンジン２０８と接続されて、コマンド及びステータスや印字データの通信を行なうインタフェースである。
パネルＩ／Ｆ２０９は、操作パネル２１０と接続されて、コマンド及びステータスの通信を行なうインタフェースであり、操作パネル２１０は、使用者に現在のプリンタの状態を表示して知らせたり、使用者がモード指示を行なったりするパネル装置である。
【００２８】
ホストＩ／Ｆ２１１は、ホスト装置であるパーソナルコンピュータ１００と通信を行なうインタフェースであり、通常はセントロニクスＩ／ＦやＲＳ２３２Ｃを使用する。
ディスクＩ／Ｆ２１３は、ディスク装置２１４と通信を行なうためのディスクインタフェースである。ディスク装置２１４は、フォントデータやプログラム、あるいは印字データなどの種々のデータを記憶しておくための外部記憶装置であり、フロッピディスク装置やハードディスク装置などである。
【００２９】
次に、このページプリンタ２００によるページ印刷の動作について説明する。図１は、図５に示したコントローラ基板１９及び６００ＤＰＩのプリンタエンジン２０８による、ページ印刷の処理に係わる部分の機能構成を示すブロック図である。そのＰＳインタープリタ２１と圧縮部２２及び伸長部２５は、図５のＣＰＵ２０１等による機能、圧縮メモリ２３と非圧縮メモリ２４はＲＡＭ２０６のメモリ領域、ビデオ出力部２７はエンジンＩ／Ｆ２０７の機能をそれぞれ示している。
【００３０】
図６は、この発明によるデータ圧縮・伸長方法により１ページ分の印刷を行なう際の動作フロー図である。そこで、この図６のフローに沿って、図１を参照しながらページ印刷の動作を説明する。
図２に示したパーソナルコンピュータ１００内のプリンタドライバ１０１が、印刷すべき文書データをページ毎にポストスクリプト（以下、ＰＳと記す）ファイルに変換してページプリンタ２００へ送る。
【００３１】
ページプリンタ２００がそのＰＳファイルを受信すると、図１に示したＰＳインタープリタ２１が、それをプリンタエンジン２０８の性能による印刷の解像度と同じ６００ＤＰＩの解像度であるで、ある大きさのブロック単位でラスタライズし、そのラスタライズしたデータに対して、圧縮部２２がそのブロック単位で可変長可逆圧縮処理を試みる。このブロック単位については追って詳述する。
【００３２】
そして圧縮できれば、その結果の圧縮コードを圧縮メモリ２３へストアする。この圧縮メモリ２３は、３００ＤＰＩで１ページ分に相当する容量を持つページメモリで、図５に示したＲＡＭ２０６のメモリ領域を使用する。
圧縮できなかったら、ラスタライズされた６００ＤＰＩのデータを非圧縮メモリ２４へストアする。実際には、この非圧縮メモリ２４は圧縮メモリ２３を兼用することができるので、ＲＡＭ２０６のメモリ容量を増加させる必要はない。
なお、この圧縮メモリ２３と非圧縮メモリ２４を含むページメモリは、その１ページ分の領域をＮ個に分割した各領域に、上記圧縮コード及び非圧縮のデータを順次格納していくようにしてもよい。
【００３３】
１ページ分の処理が終了したら、圧縮画像の伸長及びビデオ信号出力を行なう。すなわち、圧縮メモリ２３へストアした圧縮コードをページの左上から順番に伸長部２５で伸長（解凍処理ともいう）し、６００ＤＰＩの画像データに復元して、ビデオ出力部２７内のビデオバッファ（フレームメモリ）にビットマップ展開する。非圧縮メモリ２４にストアした６００ＤＰＩの非圧縮画像データは、そのままビデオバッフアの後述する圧縮データテーブル（ＣＤＴ）によって指定されたアドレスに展開する。
【００３４】
そして、このビデオバッファに展開された画像データを、ビデオ出力部２７がシリアルなビデオ信号として、プリンタエンジン２０８へ送出して印刷させる。
このときのビデオ出力部２７内のビデオバッファは、図５のＲＡＭ２０６あるいは別のメモリに確保した１ページ分のフレームメモリ領域を使用する。その具体例は後述する。
あるいは１ページ分のフレームメモリの１／Ｎの大きさのメモリ領域を使用し、１ページ分の画像データの展開およびそれによるビデオ信号の出力をＮ回に分けて行なうこともできる。
【００３５】
次に、図１及び図６によって説明したブロック単位の可変長可逆圧縮処理の詳細について図７乃至図１４を参照して説明する。
ＰＳファイルをラスタライズするデータのブロック単位を、図７に示すようにｔドット（ｄｏｔ）  のブロックワードＢＷとする。そして、図７の（ａ）又は（ｂ）に示すように、このｔドット（ｄｏｔ）  のブロックワードＢＷが主走査方向（ａ）あるいは副走査方向（ｂ）にｕ個分連続して１ユニット（ｕｎｉｔ）を構成している。
すなわち、１ユニット（ｕｎｉｔ）＝ｕ＊ＢＷである。
【００３６】
そして、図５に示したＣＰＵ２０１は、図１のＰＳインタープリタ２１としての機能によってＰＳファイルをラスタライズ（描画）した際、その１ユニットのデータが全て白ドットか否かを調べ、全て白の場合には圧縮部２２を使用せずに直接圧縮メモリ２３のホワイトマップテーブルＷＭＴをＮＵＬＬ（0xffffffff）にする。黒ドットが１つでもあると、そのユニットを構成する各ブロックワードＢＷ毎に、圧縮部２２に圧縮処理を行なわせる。
【００３７】
図８はそのブロックワードＢＷ及びユニットの具体例を示し、ＰＳファイルをラスタライズしたデータに対して、６４ドット（ｄｏｔ）  の白ドット及び／又は黒ドットからなるブロックワードＢＷの８（ｌｉｎｅ）分を１ユニットとする。すなわち、１ユニット（ｕｎｉｔ）＝８＊ＢＷ＝８＊６４（ｄｏｔ）とする。
【００３８】
さらに、各ユニットに対して図９に示すように、３２ｂｉｔ  のホワイトマップテーブル（Ｗｈｉｔｅ  Ｍａｐ  Ｔａｂｌｅ：ＷＭＴ）を用意する。そして、１ユニットのデータが全て白ドットなら、ＷＭＴをＮＵＬＬ（０ｘｆｆｆｆｆｆｆｆ）とし、もし、黒ドットが１つ以上存在するなら、図１０に示す３２ｂｉｔの圧縮データテーブル（Ｃｏｍｐｒｅｓｓｉｏｎ  Ｄａｔａ  Ｔａｂｌｅ：ＣＤＴ）の実アドレス（ＣＤＴアドレス）を格納する。
【００３９】
なお、ＣＤＴアドレスが示すレコードの長さは、図１１に示すように
８＊ＣＤＴ＝８＊３２ビット（ｂｉｔ）＝３２バイト（ｂｙｔｅ）  とする。ＣＤＴは１つのブロックワードＢＷに対応し、後述の圧縮方式を試みて、もし圧縮可能であったら、図１０に示す圧縮データテーブルＣＤＴのｂｉｔ２９〜ｂｉｔ０に、その圧縮コードを格納する。また、もし圧縮不可能であったら、ｂｉｔ３１＝１とし、ｂｉｔ３０〜ｂｉｔ０に非圧縮時のデータ格納メモリアドレス（Ｕｕｃｏｍｐｒｅｓｓｉｏｎ  Ｄａｔａ  Ｔａｂｌｅ
Ａｄｄｒｅｓｓ：ＵＤＴアドレス）を格納する（図１２）。
【００４０】
ここで使用する圧縮方式は、次に示す２ステップからなる。まず始めに、対象となるブロックワードＢＷが全部白ドットか、全部黒ドットかを調べる。もし、そうであったらＣＤＴアドレスをそれぞれ、０ｘ００００００００  又は  ０ｘ７ｆｆｆｆｆｆｆとする。
もし、そうでない場合には、先頭ドットが白ドットか黒ドットか（図１０に示したＣＤＴの  ｂｉｔ３０にて“０”か“１”で指定）に応じて、白ドットあるいは黒ドットのランレングスを図１３に示すハフマン・コードで符号化する、いわゆるランレングス圧縮符号化方式で圧縮する。
【００４１】
例えば、図１４の（ａ）に示す６４ドットのブロックワードＢＷは、同図（ｂ）に示す３２ビットの圧縮コードに変換される。なお、最後の白ドット（ランレングス＝１０）は、圧縮コードに含まれないが、最後の黒ドット（ランレングス＝１９）の後ろが全て白ドットであることから復元が可能である。また、ＣＤＴの余った領域には、１を書き込むようにする。
【００４２】
さらに、この発明によれば、１ユニットのデータが全て白でない場合には、該ユニットを構成するブロック毎にそのデータが全白であるかどうかをチェックして、その結果をホワイトマップテーブル（ＷＭＴ）に各ブロックのステータス情報として保存する。
【００４３】
そのため、圧縮メモリ２３内のホワイトマップテーブル（ＷＭＴ）において、各ユニット毎に用意されるユニットレコードに、図１５に示すようにＣＤＲステータスとしてｕビット（この例では上位 ８bit）を確保し、それをユニット内の各ＢＷが全て白かどうかを示すステータス情報のフラグを格納するために使用し、圧縮データテーブル内のこのユニットの圧縮コード格納領域を示すＣＤＲアドレスポインタ用には、残りの２４ビットを使用する。
【００４４】
圧縮データテーブルＣＤＴと非圧縮データテーブルＵＤＴは６４ビット（８バイト）単位以上の大きさなので、ＣＤＴ＆ＵＤＴ領域へのアドレスポインタは、下位３ビットが必ず“０”となる。そこでホワイトマップテーブルＷＭＴのユニットレコード内のＣＤＲアドレスポインタは下位３ビットを省いた情報にできる。つまり、アドレスポインタ情報として２７ビット使用できれば問題はない。
【００４５】
この図１５に示すユニットレコード内のＣＤＲステータスは、ホワイトマップテーブルＷＭＴの初期化時は全て“１”である。そして、その８ビットの各ビットをそのユニットを構成する各ＢＷにそれぞれ対応させ、前述のように対象となるＢＷのデータが全部白ドットか全部黒ドットかを調べたとき、全部白ドットであればそのＢＷに対応するビットをクリアして“０”にする。
【００４６】
各ユニットに対する再書き込みにおいて、圧縮動作前の上記判断で、新規に全白と判断されたブロックワードＢＷがある場合は、ＣＤＲステータス内の対応するビットをクリアして“０”にする。
上記動作において、ＣＤＲステータス内のフラグが全て“０”となった場合は、ユニットレコードのビット内容を全て“０”にして、ＣＤＲに使用していたメモリを解放する。
【００４７】
次に、図６における「圧縮画像の伸長・ビデオ信号出力」の処理について、図１６乃至図１８によって説明する。
図１６は、図１における圧縮メモリ２３，非圧縮メモリ２４及びビデオバッファのメモリ領域を有するＲＡＭ２０６と、伸長部２５及びビデオ出力部２７と、プリンタエンジン２０８との関係を模式的に示すブロック図であり、ビデオ出力部２７とプリンタエンジン２０８との間に、図１では図示を省略したＦＩＦＯメモリ２８を設けている。２９は、伸長（解凍）部２５及びビデオ出力部２７からＲＡＭ２０６をアクセスするためのメモリバスである。
【００４８】
図１７は、その伸長部２５による（実際には図５のＣＰＵ２０１によって制御される）圧縮画像の伸長処理を示すフローチャートである。
このフローチャートに従って、図１６に示す伸長（解凍）部２５による処理を説明する。
【００４９】
伸長部２５はまず、ＲＡＭ２０６による第１の記憶部（ＷＭＴやＣＤＲ，ＵＣＤＲが格納されてるエリア）中のホワイトマップテーブルＷＭＴの前述したユニットレコードを読み出す。このデータが全て“０”の場合は、そのユニット（例：６４ドット×８ライン）が全て白ドットであることを示している。
この実施形態では、伸長部２５内に第３の記憶部としてＮＵＬＬ（ヌル）テーブルを設け、その該当する領域にＣＤＲステータス情報をコピーして格納する。
このＮＵＬＬテーブルは、１個のＷＭＴのユニットレコードに対して８ビットの情報、すなわち８スキャンライン（ＢＷ）分の情報を持つ。
【００５０】
ＷＭＴのユニットレコードの読み出しを１スキャンライン分行なうと、ラインカウント値をｕ（この例ではブロックワード数の８）にし、ＮＵＬＬテーブルの該当するビットが“０”か否かをチェックする。
そして、“０”であればそのＢＷに対しては、第１の記憶部からの圧縮データの読み出し及び伸長処理は行なわない。該当するビットが“１”のときは、第１の記憶部からの圧縮データの読み出し及び伸長処理を行なってその復元したデータを第２の記憶部であるビデオバッファＶＢに転送する。
【００５１】
１スキャンライン（ＢＷ）の処理を終了すると、ラインカウント値を−１して、ラインカウント値が０になるまで（この例では８スキャンライン）、順次各スキャンライン（ＢＷ）に対して上述の処理を行なう。
図１８に、ＷＭＴ内のユニットレコードとＣＤＲの各ＢＷの状態とＮＵＬＬテーブルとの関連を示す。
【００５２】
（Ａ）はＣＤＲの例である。何らかの黒ドットデータが存在するＢＷを網かけで示している。図示の例では第２，４，５，７番目のＢＷに何らかの黒ドットデータが存在し、第１，３，６，８番目のＢＷは全白である。
（Ｂ）は（Ａ）のＣＤＲに対応するユニットレコードの内容を示したものであり、各ＢＷにおいて全白のＢＷに対応するＣＤＲステータス内のビットが“０”になっている。１ｓｔＢＷ〜８ｔｈＢＷがそれぞれＣＤＲステータス内のｂｉｔ３１〜ｂｉｔ２４に対応している。
【００５３】
（Ｃ）はＮＵＬＬテーブルの例であり、スキャンライン方向のＸｎドットの
ｂｉｔ７〜ｂｉｔ０が（Ｂ）のユニットレコード内のＣＤＲステータスのｂｉｔ３１〜ｂｉｔ２４に対応している。
したがって、ＮＵＬＬテーブル３０においてこのビットが“０”になっているＢＷに対しては、第１の記憶部からの圧縮データの読み出しも伸長処理も行なわないので、メモリバス２９のアクセス回数を削減でき、処理効率を高めることができる。
【００５４】
伸長（解凍）処理済みのデータは、第２の記憶部であるビデオバッファＢＶに一旦格納されるが、そのデータ転送を行なわないし、ビデオバッファＢＶからビデオ出力部２７へのデータ転送も行なわないので、メモリバス２９のアクセス回数を一層削減できる。
【００５５】
図１６において、第２の記憶部であるビデオバッファＶＢに格納されたデータは、ビデオ出力部２７のビデオキュー３１及びＦＩＦＯ２８を介してプリンタエンジン２０８に送出される。但し、伸長部２５のＮＵＬＬテーブルのフラグが“０”になっているＢＷに対するデータは、ビデオバッファＶＢからの読み出しは行なわず、ビデオ出力部２７のビデオキュー３１から直接ｔドット（この例でき６４ドット）の全白データをプリンタエンジン２０８へ送出する。
【００５６】
【発明の効果】
以上説明してきたように、この発明によれば、ページプリンタのメモリ容量を削減して、高解像度化と低価格化とを可能にすると共に、圧縮データの伸長（解凍）及びビデオ信号送出の際に、メモリバスのアクセス回数を大幅に削減して処理効率を高め、パフォーマンスの向上を計ることができる。
【図面の簡単な説明】
【図１】図２乃至図４に示したページプリンタ２００におけるＰＳファイルの文書データを印刷するための処理に係わる部分の機能構成を示すブロック図である。
【図２】この発明を適用したページプリンタを用いた画像形成システムの構成例を示す図である。
【図３】図２におけるページプリンタの一例を示す外観図である。
【図４】同じくその内部機構の概略を示す縦断面図である。
【図５】図４におけるコントローラ基板１９の構成を示すブロック図である。
【図６】図１に示した各部により１ページ分の印刷を行なう際の動作フロー図である。
【図７】ＰＳフアイルをラスタライズしたデータの１ユニット（ｕｎｉｔ）の構成を示す図である。
【図８】同じくそのブロックワードＢＷのドット数及び１ユニットのライン数の具体例を示す図である。
【図９】各ユニットに対するホワイトマップテーブル（ＷＭＴ）のサイズを示す図である。
【図１０】図９のＷＭＴに格納する圧縮データテーブル（ＣＤＴ）の構成を示す図である。
【図１１】図１０に示したＣＤＴの実アドレス（ＣＤＴアドレス）のレコードの長さを示す図である。
【図１２】非圧縮時のデータ格納メモリアドレス（ＵＤＴアドレス）をＢＷに格納する場合の説明図である。
【図１３】白ドットあるいは黒ドットのランレングスを記述するハフマン・コードの説明図である。
【図１４】圧縮コードの変換例を示す図である。
【図１５】ホワイトマップテーブル（ＷＭＴ）内のユニットレコードのビット構成を示す図である。
【図１６】この発明による図６における圧縮画像の伸長およびビデオ信号出力の処理に係わる部分の説明に供するブロック図である。
【図１７】図１６に示す伸長部２５による圧縮画像の伸長処理を示すフロー図である。
【図１８】ＷＭＴ内のユニットレコードとＣＤＲの各ＢＷの状態とＮＵＬＬテーブルとの関連を示す図である。
【符号の説明】
１０：感光体ドラム    １１：帯電部
１２：光書込部        １３：現像部
１４：転写部          １５：定着部
１９：コントローラ基板
２０：エンジンドライバ基板
２１：ポストスクリプト（ＰＳ）インタープリタ
２２：圧縮部          ２３：圧縮メモリ
２４：非圧縮メモリ    ２５：伸長部
２７：ビデオ出力部    ２８：ＦＩＦＯメモリ
２９：メモリバス      ３０：ＮＵＬＬテーブル
３１：ビデオキュー
１００：パーソナルコンピュータ
１０１：プリンタドライバ
２００：ページプリンタ      ２０１：ＣＰＵ
２０６：ＲＡＭ        ２０８：プリンタエンジン
ＶＢ：ビデオバッファ
【図１】
0003611921.tif 000002
【図２】
0003611921.tif 000003
【図３】
0003611921.tif 000004
【図４】
0003611921.tif 000005
【図５】
0003611921.tif 000006
【図６】
0003611921.tif 000007
【図７】
0003611921.tif 000008
【図８】
0003611921.tif 000009
【図９】
0003611921.tif 000010
【図１０】
0003611921.tif 000011
【図１１】
0003611921.tif 000012
【図１２】
0003611921.tif 000013
【図１３】
0003611921.tif 000014
【図１４】
0003611921.tif 000015
【図１５】
0003611921.tif 000016
【図１６】
0003611921.tif 000017
【図１７】
0003611921.tif 000018
【図１８】
0003611921.tif 000019