(57)【要約】【課題】  印刷装置におけるメモリの効率的な使用方法を達成する。【解決手段】  ラスタライズでハーフトーン画像を生成した場合に描画不正を発生するラスタオペレーションが存在するか判断し、描画不正が発生するオブジェクトを含むページ内の領域はコントーン画像でラスタライズし、描画不正が発生しないオブジェクトのみ含むページ内の領域はものはハーフトーン画像で印刷イメージをラスタライズする。【選択図】  図１
2006168051.tif 000002
【特許請求の範囲】
【請求項１】
中間デ−タからイメ−ジデ−タを生成して印刷部で印刷させる印刷装置において、コントーン画像のラスタライズおよびハーフトーン画像のラスタライズの両方のラスタライズ方法を備え、入力データ全てのオブジェクトに対してあらかじめ走査する手段を備え、ラスタライズでハーフトーン画像を生成した場合に描画不正を発生するラスタオペレーションが存在するか判断する手段を備え、ハーフトーン画像でラスタライズした場合に描画不正が発生するオブジェクトの入力データでの位置を記憶する手段を備え、上記判断情報に基づき、ページ内の描画不正が発生するオブジェクトを含む領域はコントーン画像でラスタライズし、描画不正が発生しないものはハーフトーン画像で印刷イメージを生成すると共に、メモリオーバーフロー時の処理に必要なバッファ容量は上記判断に基づきコントーン画像を処理するのに必要なバッファ容量を残す場合とハーフトーン画像を処理するのに必要なバッファ容量を残す場合を切り分ける手段を備え、入力データの位置によってコントーンすべきオブジェクトが既にラスタライズ済みである場合のそのページ内の該オブジェクトが含まれる領域に関してはコントーン画像をハーフトーン画像に変換する手段を備え、以後メモリオーバーフロー回避のために確保するバッファ領域もハーフトーン画像分の容量とすることを備えることを特徴とする印刷装置。
【請求項２】
コントーン画像、ハーフトーン画像でのラスタライズ以外に２値でのラスタライズが可能な印刷装置において、２値のオブジェクトのみで構成されるバンドは２値イメージ画像で生成する手段を備え、最終的にハーフトーン画像やコントーン画像で生成すべきバンドに関しても、メモリオーバーフローが発生した時点までに生成されている中間データが２値のオブジェクトのみで構成されている場合は２値で印刷イメージを生成する手段を備えることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中間データからイメージデータを生成して印刷部で印刷させる印刷装置及びメモリ制御方法及び印刷制御方法及び記憶媒体に関するものである。
【背景技術】
【０００２】
近年、データ処理システムとして、ホストコンピュータ、あるいはスキャナやデジタルカメラといった画像入力装置と双方向インターフェース（例えばＩＥＥＥ１２８４．４、ＩＥＥＥ１３９４、ＵＳＢ、ＩＰＸ等のプロトコルで接続されるネットワーク）を介して接続される印刷装置とから構成され、ホストから入力される出力情報を印刷装置側で解析して、プリンタエンジン、例えばレーザビームプリンタの出力データとしてビットマップデータを展開し、この展開データに基づいて変調されたレーザビームを感光ドラムに走査露光して画像記録を行うものが知られている。
【０００３】
また、印刷装置がエミュレーション機能を備える場合には、複数の印刷装置制御言語系を処理可能に構成されており、使用者が実行するアプリケーションにしたがってエミュレーションモードとネイティブモードを切り替えながらプリント処理を実行できるように構成されており、印刷装置には印刷装置の制御言語を切り換える為のスイッチや切り換え指示を行うカードスロットがあらかじめ設けられている。ホストから送られてきた出力情報は通常、印刷装置内において印刷装置に適した中間データに変換される。
【０００４】
入力データ（例えば、ページ記述言語）の受信順序によりそのデータのページ内での印刷イメージ作成位置を決定することができないタイプの印刷装置では、１ページ分の入力データを受信し終わってから可視画像を作成（ラスタライズ）して印刷出力してきた。ラスタライズにおいてはコントーン(Continuous-tone)画像で生成する印刷装置と、ハーフトーン(Halftone)画像で生成する印刷装置が存在する。
【０００５】
それらのタイプの印刷装置には、実際に印刷する印刷イメージを直接受信して処理すると受信するデータが非常に大きくなってしまうために、"文字データ"や"円"などのオブジェクト毎の入力データを受信して処理するものが多くある。
それらの印刷装置のうち受信した入力データを印刷イメージ形成前の形（中間データ）で内部メモリ（ＲＡＭ）の中間バッファに保管し、１ページ分保管し終わった後まとめてラスタライズして印刷イメージ形成するタイプの印刷装置もあったが、それらは１ページ分の中間データがその印刷装置の持つ中間バッファの記憶容量を越えるサイズの場合（メモリオーバーフローの場合）、その中間データを処理できない。
【０００６】
従来技術においては、印刷装置内ではメモリオーバーフローした時点まで作成された中間データをラスタライズおよびラスタライズした印刷イメージの圧縮処理を行う。その圧縮処理された印刷イメージ(圧縮イメージ)のみを保存し、中間データを削除することにより中間バッファに空き領域を生成し、その領域に残りの中間データを作成する。ここで作成された中間データはラスタライズの際に、事前にラスタライズされ圧縮処理された印刷イメージ上にラスタライズされる。またメモリオーバーフローが複数回発生する場合には処理が複数回繰り替えされることになる。
【０００７】
上記処理を行う場合、中間データを中間バッファの記憶容量の限界まで作成してしまうと、ラスタライズするワーク領域や圧縮イメージを保存する領域を確保できない。そのため、上記メモリオーバーフローであるとする判断のタイミングは、中間データが中間バッファの総記憶容量からワーク領域や圧縮イメージの保存する領域の記憶容量を差し引いたサイズだけ生成された時点でなくてはならない。
【０００８】
印刷イメージをコントーン画像で生成する印刷装置においては、高解像度または高階調度になると、上記ワーク領域および圧縮イメージの領域が大きくなり生成できる中間データが少なくなる。その為、圧縮イメージを作成する回数が増大し速度低下してしまう。速度低下を解決するためには中間バッファの容量を大きくすることが考えられるが、容量を増やすことによって印刷装置のコストが高いものとなってしまうという問題点がある。印刷イメージをハーフトーン画像で生成する印刷装置においては、コントーン画像に比べてイメージデータのデータ容量が小さく、速度低下や記憶装置の容量を小さくすることが可能だがオブジェクト毎に指定される論理演算(ＡＮＤ、ＯＲ等)や透過率(αブレンド)を用いたラスターオペレーションを用いたラスタライズを行うと不正なラスタライズ結果に至る場合がある。
【０００９】
その為に、ラスタライズでハーフトーン画像を生成した場合に描画不正を発生するラスタオペレーションが存在するか判断し。上記判断情報に基づき、描画不正が発生するオブジェクトを含むページ内の領域はコントーン画像でラスタライズし、描画不正が発生しないオブジェクトのみ含むページ内の領域はものはハーフトーン画像で印刷イメージをラスタライズする。メモリオーバーフロー回避時に必要な圧縮イメージの保存する領域の記憶容量は、コントーンで作成すべき部分のみコントーンで作成され、ハーフトーンで作成すべき部分はハーフトーンで作成されるため最小限の容量で抑えられる。これにより中間データを作成するバッファ容量を最大限確保することが可能になるため、メモリオーバーフロー処理回数が減るため印刷処理速度の低下を防ぐことが可能になる。
【００１０】
又、別の従来例としては、特許文献１及び特許文献２をあげることが出来る。
【特許文献１】特開2002-049475号公報
【特許文献２】特開2004-034588号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記従来例において、ラスタライズでハーフトーン画像を生成した場合に描画不正を発生するラスターオペレーションが存在する部分のメモリを単純に確保してしまうと無駄なバッファ容量を確保してしまうという問題点があった。ハーフトーン作成すると描画不正が発生するラスターオペレーションが指定されており、コントーンでラスタライズすべきオブジェクトが全てラスタライズ済みであった場合、その部分に関しては以後ハーフトーンでラスタライズしてよいオブジェクトしか存在していないため、コントーン画像をハーフトーン処理しハーフトーン画像にしてしまっても良いが従来技術においては、その部分についてはもコントーン画像のまま保存しておくため、バッファ容量を無駄に確保してしまうという問題点があった。また、メモリオーバフローが発生したメモリオーバーフローが発生した時点までに作成されているコントーンでラスタライズすべきオブジェクトが中間データ化されてない場合(メモリオーバーフロー回避後に生成される)は、その部分に関してはハーフトーン画像で生成してよい場合もあるが、そのような処理がなされないためメモリを無駄に確保してしまっていた。
【課題を解決するための手段】
【００１２】
本発明に係る印刷制御装置は、中間デ−タからイメ−ジデ−タを生成して印刷部で印刷させる印刷制御装置であって、コントーン画像のラスタライズおよびハーフトーン画像のラスタライズの両方のラスタライズ方法を備える。入力データ全てのオブジェクトに対してあらかじめ走査する手段を備え、ラスタライズでハーフトーン画像を生成した場合に描画不正を発生するラスタオペレーションが存在するか判断する手段を備える。ハーフトーン画像でラスタライズした場合に描画不正が発生するオブジェクトの入力データでの位置を記憶する手段を備える。上記判断情報に基づき、ページ内の描画不正が発生するオブジェクトを含む領域はコントーン画像でラスタライズし、描画不正が発生しないものはハーフトーン画像で印刷イメージを生成する。メモリオーバーフロー時の処理に必要なバッファ容量は上記判断に基づきコントーン画像を処理するのに必要なバッファ容量を残す場合とハーフトーン画像を処理するのに必要なバッファ容量を残す場合を切り分ける手段を備える。上記処理において、入力データの位置によってコントーンすべきオブジェクトが既にラスタライズ済みである場合のそのページ内の該オブジェクトが含まれる領域に関してはコントーン画像をハーフトーン画像に変換する手段を備え、以後メモリオーバーフロー回避のために確保するバッファ領域もハーフトーン画像分の容量とすることを備える。
【００１３】
さらに２値のオブジェクトのみで構成されるバンドは２値イメージ画像で生成する手段を備え、最終的にハーフトーン画像やコントーン画像で生成すべきバンドに関しても、メモリオーバーフローが発生した時点までに生成されている中間データが２値のオブジェクトのみで構成されている場合は２値で印刷イメージを生成する手段を備える。
【００１４】
本出願に記載の構成を備える出力保証が可能にする印刷装置においては、メモリオーバーフロー時の回避処理に必要なバッファ容量を最適な容量のみ確保することが可能になるため、中間データを作成するバッファ容量を最大限確保することが可能になる。よってメモリオーバーフロー処理回数が減るため印刷処理速度の低下を防ぐことが可能になる。また、本構成をもつことにより、ある程度少ない中間バッファ容量で印刷速度を保つことが可能になるため、印刷装置にもつべきRAM容量全体を減らすことが可能になる。そのため低コストな印刷装置の作成が可能になる。
【発明の効果】
【００１５】
メモリオーバーフロー回避処理のバッファ容量をデータごとに最適な容量だけ確保することにより、無駄にバッファが確保されることがなくなり印刷速度が向上する。
【発明を実施するための最良の形態】
【００１６】
本実施例を適用するに好適なレーザビームプリンタの構成について説明する。なお、本実施例を適用するプリンタは、レーザビームプリンタおよびインクジェットプリンタに限られるものでなく、他のプリント方式のプリンタでもよいことは言うまでもない。
【００１７】
図１は本発明を適用可能な第１の出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１８】
図において、１００はＬＢＰ本体であり、外部に接続されているホストコンピュータから供給される印刷情報（文字コード等）やフォーム情報あるいはマクロ命令等を入力して記憶するとともに、それらの情報にしたがって対応する文字パターンやフォームパターン等を作成し、記録媒体である記録紙等に像を形成する。１１２は操作の為のスイッチおよびＬＥＤ表示器等が配されている操作パネル、１０１はＬＢＰ本体１００全体の制御およびホストコンピュータから供給される文字情報等を解析するプリンタ制御ユニットである。このプリンタの制御ユニット１０１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１０２出力する。レーザドライバ１０２は半導体レーザ１０３を駆動する為の回路であり、入力されたビデオ信号に応じて半導体レーザ１０３から発射されるレーザ光１０４をオン・オフ切り換えする。レーザ光１０４は回転多面鏡１０５で左右方向に振らされて静電ドラム１０６上を走査露光する。これにより、静電ドラム１０６上には文字パターンの静電潜像が形成されることになる。この潜像は、静電ドラム１０６周囲に配設された現像ユニット１０７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ１００に装着した用紙カセット１０８に収納され、給紙ローラ１１１により装置内に取り込まれ、静電ドラム１０６に供給される。また、ＬＢＰ本体１００には、図示しないカードスロットを少なくとも１個以上備え、内臓フォントに加えてオプションフォントカード、言語系の異なる制御カード（エミュレーションカード）を接続できるように構成されている。
【００１９】
図２は本発明の実施例を示すプリンタ制御システムの構成を説明するブロック図である。ここでは、レーザビームプリンタ（図１）を例に説明する。図において、２００はホストコンピュータで、ＲＯＭ２０４のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在して文書を実行するＣＰＵ２０２を備え、システムデバイス２０５に接続される各デバイスをＣＰＵ２０２が総括的に制御する。また、本発明における図６〜図９で示される各種変換処理はフレキシブルディスクやＣＤ−ＲＯＭあるいはＤＶＤ−ＲＯＭといったメディアで供給され同様に実行される。
【００２０】
また、このＲＯＭ２０４のプログラム用のＲＯＭには、ＣＰＵ２０２の制御プログラム等を記憶し、ＲＯＭ２０４のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ２０４のデータ用ＲＯＭは上記文書処理等を行う際に使用する各種データを記憶する。２０３はＲＡＭでＣＰＵ２０２の主メモリ、ワークエリア等として機能する。２０６はキーボードコントローラ（ＫＢＣ）で、キーボード２１０や不図示のポインティングデバイスからのキー入力を制御する。２０７はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）２１１の表示を制御する。２０８はメモリコントローラ（ＭＣ）で、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル用を記憶するハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ２１２とのアクセスを制御する。２０９、２２６はデバイス間のＩ/Ｏを制御する処理部で、具体例としてＩＥＥＥ１３９４の様なインターフェースが挙げられるが、双方向通信が可能なインターフェースであれば、その種類は問わない。また、プリンタ２２０において、２２２はプリンタＣＰＵで、ＲＯＭ２２４のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ２３１に記憶された制御プログラム等に基づいてシステムバス２２５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インターフェース２２７を介して接続される印刷部（プリンタエンジン）２２８に出力情報としての画像信号を出力する。また、このＲＯＭ２２４のプログラムＲＯＭには、図６に示されるフローチャートで示されるようなＣＰＵ２２２の制御プログラム等を記憶する。ＲＯＭ２２４のデータ用ＲＯＭにはハードディスク等の外部メモリ２０３１が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ２２２は入力部２２６を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ２００に通知可能に構成されている。２２３はＣＰＵ２２２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張できるように設計されている。ＲＡＭ２２３は、印刷データの格納、出力情報展開、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２３１は、メモリコントローラ（ＭＣ）２２８によりアクセスを制御される。２３０は前述した操作パネルで操作の為のスイッチおよびＬＥＤ表示機機等が配されている。
【００２１】
また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内臓フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル２３０からのプリンタモード設定情報を記憶するようにしてもよい。
【実施例１】
【００２２】
本出願におけるコントーン画像でラスタライズすべきバンドをハーフトーン画像で保存してよい例について図３を用いて説明する。本実施例では３０１から３０４のようにページが複数の矩形（バンド）にくぎられ、印刷イメージの画像はその単位で行われるものとする。５０３のバンド３には３０５から３０７の３つのオブジェクトが含まれている。この内コントーン画像でラスタライズすべきオブジェクトは３０６のみだとする。３０５、３０６、３０７のオブジェクトのラスタライズの間でそれぞれメモリオーバーフローが発生したとすると、保存すべき印刷イメージは３０８から３１１のように変換する。３０５と３０７の中間でメモリオーバーフローが発生した場合、コントーン画像でラスタライズすべき３０６がまだ描画されていないので印刷イメージは３０８に示されるようにコントーン画像で生成される。３０６と３０７のオブジェクト生成の間にメモリオーバーフローが発生した場合、３０６はコントーン画像でラスタライズすべきオブジェクトなので３０９に示すようにコントーン画像上でラスタライズを一時行う。ここで、このバンドにラスタライズすべきオブジェクトでコントーン画像でラスタライズを行うべき画像が無くなるので、３１０で示すようにコントーン画像で生成された印刷イメージをハーフトーン処理しハーフトーン画像にして保存してしまう。次に生成される３０７はハーフトーン画像でラスタライズしてよいので、ハーフトーン処理された３１０上にラスタライズすることが可能である。そこで３１１の結果を得ることができる。
【００２３】
図４は図３で説明したコントーン画像でラスタライズすべきオブジェクトがあるバンドに関してもハーフトーンで保存する処理を行ったときの印刷装置内の中間バッファの様子を示している。図３と同じように３バンド目にコントーンでラスタライズすべきオブジェクトがある場合について説明する。まず４０１はコントーン画像でラスタライズすべきかハーフトーンでラスタライズすべきかを全く判断しなかったときで、このときは取り合えずコントーン画像でラスタライズすることを想定しておかなければならないので全てのバンドをコントーン画像で保存する容量を確保しておく。この場合中間データの生成に使用できる中間バッファ容量は著しく小さくなり、メモリオーバーフローが発生する回数が増え印刷速度が低下してしまう。次はコントーン画像でラスタライズすべきかハーフトーン画像でラスタライズすべきか判断した例である。４０１に比べて中間データ作成に利用できるバッファ容量が増えるためメモリオーバーフローの回数が減り印刷速度の低下をなくすことが出来る。さらに図３で説明した３０９から３１０のコントーン画像からハーフトーン画像に変換した場合の様子が４０２から４０３に相当する。４０３は４０２に比べてさらに中間データ生成に利用可能なバッファ容量が増えるため、さらなる印刷速度の向上が見込める。
【００２４】
本実施例では入力データを作成するホストコンピュータにおいて全入力データの走査を行いハーフトーン画像でラスタライズした場合に問題となるラスタオペレーションがあるか判断する。その判断結果を入力データのヘッダ情報として付加して印刷装置に送信する。図５はそのホストコンピュータ上での様子を図示したものである。５００はホストコンピュータから印刷装置に送信する入力データ全体を示している。入力データ全体は５０１の印刷レイアウトやコピー部数、本出願の特徴である５０３の論理演算範囲情報が記載されたヘッダ部および、５０２は実際のラスタライズされるオブジェクト情報を含む画像生成データ部を含む。１つの入力データには５０１のヘッダおよび５０２の画像生成情報を複数ページ分含むことが可能である。この論理演算範囲情報とはコントーン画像で生成するべきページ内における画像の範囲および入力データにおける位置が記載される。３０４は描画演算範囲情報の開始を示すタグで、３０５は論理演算描画範囲の個数を示している。３０５は実際の描画演算範囲であり、本実施例においてはページ内の画像位置に関してはY方向の位置のみを記載する。X方向についても記載してよいことは言うまでも無い。入力内のデータ位置に関しては、コントーン画像で生成するべきオブジェクトデータの開始のバイト位置および終了のバイト位置で記載する
図６は図５で説明した論理演算描画範囲を入力データに付加する処理の詳細な流れを示すフローチャートである。
【００２５】
６０１において印刷が開始されたことを判断する。６０２において印刷要求された全てのページを処理するように判断する。６０３において画像生成データの生成を行う。６０４の判断において生成された画像生成データに含まれるオブジェクトに対して６０５において行われるハーフトーン画像でラスタライズした時に画像不正が発生する論理演算描画が指定されているか判断するを実行する。６０５においてハーフトーン画像でラスタライズした場合に描画不正が発生する論理演算描画が指定されている場合は、６０６において、その論理演算描画範囲情報として、その上端のY座標と下端のY座標を保存しておく。また６０７において直前までに生成された入力データの総バイト数から、その総バイトすうにオブジェクト自身のバイト数を加算したバイト数までを入力データにおける位置とする。ページに含まれる全てのオブジェクトに関して判断が終了したら、６０８においてページ内の範囲位置をソートし、重なっている部分は結合する。この重なりの結合によって、１つの範囲情報の中には複数のオブジェクトが含まれることになるので、入力データ内の位置に関しても６０９と６１０において結合する。６１０でページ内の範囲位置で結合された全て情報について６０９の処理が行われるように判断する。６０９では入力データ位置のソートを行い。その結合されたページ内の範囲位置のなかに含まれるオブジェクトの内、もっとも最初に出てくるオブジェクトの開始バイト数から、もっとも最後のオブジェクトの終了バイト位置までを入力データ位置とする。ページ内の範囲位置および入力データ位置をソートおよび結合することによって最適化された論理演算描画範囲データは６１１において入力データのヘッダに記載される。６１１の処理まで終了すると、１ページのデータとして完成するので６１２において印刷装置に送信される。以降続きのページに関しても同様な処理を繰り返す。
【００２６】
図７および図９のフローチャートを用いて、ホストコンピュータから送られてきた論理描画範囲情報によりメモリオーバーフロー回避に必要でかつ最適なバッファ容量を求め、中間データを作成するために多くのバッファを割り当てて印刷を行う処理について詳細な流れを説明する。
【００２７】
印刷装置は電源投入された後は７０１の判断により受信待ち状態になっている。入力データが受信された場合、８１２の判断により７０２から８１１のページごとの印刷処理が全てのページについて行われるように判断されている。７０２において該ページに論理演算描画範囲情報が無い場合全てのバンドをハーフトーン画像でラスタライズして良いことになる。よって、メモリオーバーフロー回避処理に必要なバッファ容量は７１０から７１２の処理で示されるように、１バンドに必要なハーフトーン画像のバッファ容量をバンド数分用意したときの容量である(もしくは１ページ分のハーフトーン画像のバッファ容量と判断しても同じ)。この状況は中間データ用に最も多くのメモリ容量を確保出来る状態の１つであり、印刷速度も速い。論理演算描画範囲情報がある場合は、その論理演算描画範囲がどのバンドに該当しているかを判断する必要がある。７０３から７０９の処理がその処理に該当する。７０３において全ての論理演算描画範囲、ページ内の範囲位置およびデータ内の位置を取得する。７０４でページ高さ、バンド高さ、バンド数を取得する。７０５においてメモリオーバーフロー回避に必要なバッファ容量を０に初期化する。７０６、７０７において全てのバンドの上端および下端のY座標が論理演算描画範囲情報のページ内の範囲位置に含まれるかを判断する。含まれることはすなわち、そのバンド内のコントーン画像でラスタライズすべきオブジェクトが含まれていることになるため、７０９においてメモリオーバーフロー回避処理に必要なバッファ容量に1バンド分のコントーン画像のバッファ容量を加算する。上端および下端のY座標が論理演算描画範囲に含まれない場合、コントーン画像でラスタライズすべきオブジェクトがバンド内に存在しないことを示しており、よって該バンドはハーフトーン画像でラスタライズして良い。７０８においてメモリオーバーフロー回避するためのバッファ容量に１バンド分のハーフトーン画像の容量を追加する。上記まで説明したメモリオーバーフロー回避のためのバッファ容量算出処理により、コントーン画像でラスタライズされるべきバンドにたいしては、コントーン画像のバッファ容量が確保され、ハーフトーン画像でラスタライズすべきバンドに関してはコントーン画像のバッファ容量が確保される。よってメモリオーバーフロー回避のために無駄なバッファを確保する必要がなく、かつ確実に印刷を行えるバッファが用意できたこととなる。また、１バンド分のハーフトーン画像およびコントーン画像のバッファ容量とは基本として非圧縮状態の容量を用いるが、圧縮機を用いて圧縮して保存する方法を持つものが既知として存在する。それらのシステムにおいては７０８、７０９、７１２において加算されるバッファ容量は、それぞれの圧縮方式に従って任意の係数によって割り算された値が用いられる。例えば平均の圧縮率が10％の圧縮率が保証もしくは実測として測定されているものは、非圧縮のバンドの1/10のバッファ容量を用いる。なお圧縮して格納する場合、ラスタライズと圧縮処理の間でメモリへの書き出しが必要な処理システムの場合、１バンド分のワークバッファが必要なので、その場合は別途そのバッファ分を確保する必要がある。
【００２８】
これまでの処理でメモリオーバーフロー回避処理に必要なバッファ容量が算出されたので、７１３において総バッファ容量から上記容量を減算することにより中間データに使用できる最大バッファ容量を得ることが出来る。以後、この容量を限界バッファ容量と記述する。
【００２９】
８０１で処理済み入力データサイズを０、使用中間バッファ容量を０に初期化(未使用状態)する。８０２以降で中間データの作成を行う。８０２において画像生成データに含まれる全てのオブジェクトの中間データを作成するように判断する。８０３において１つのオブジェクトを中間データにして保存するためのバッファ容量を算出する。算出されらバッファ容量が、中間データを保存するために利用できる残りのバッファ容量との大小を比較する。残りのバッファ容量は限界バッファ容量から使用バッファ容量を減算することにより算出できる。
【００３０】
容量が越える場合は８０５で２値で作成出来るバンドがあるか判断する。２値で生成出来る条件は以下の通り、
（１）既に生成された印刷イメージがある場合、それは２値イメージである（無い場合は関係なし）
（２）すでに生成された中間データは２値のオブジェクトのみ
（３）生成しようとしているオブジェクトは２値のオブジェクト
以上の３点が合致した場合のみ２値で生成できる。
【００３１】
また、これ以降は２値で生成できると判断したバンドに描画が発生する２値でレンダリングできないオブジェクトは生成してはいけないので、生成しようとした時点でメモリオーバーフロー回避処理を行う。
【００３２】
８０４または８０５の判断で、該オブジェクトを中間データにするために十分なバッファ容量が残っている場合は、８０８において処理済み入力データサイズに、オブジェクトの入力データサイズを加算する。８０９においてそのバッファ容量の確保を行い。使用容量にそのバッファ容量を加算する。８１０において実際に中間コードの生成を行い以降のオブジェクト生成を継続する。中間バッファ容量が不足していた場合には８０６においてメモリオーバーフロー回避処理を実行する。メモリオーバーフロー回避の詳細は図８を用いて後述する。メモリオーバーフロー回避処理が終了すると、予め７１３によって確保されたメモリオーバーフロー回避処理用のバッファに既に作成された中間データは画像イメージとして格納されるため、該中間データは必要なくなる。よって８０７で、中間データの削除を行い使用容量を０に戻す。ここで中間コードを作成するための中間バッファば確保出来るようになるので、８０８、８０９、８１０の処理を同様に行う。
【００３３】
全てのオブジェクトを中間コードにし終えたら、８１１において中間コードとして中間バッファに存在しているデータのラスタライズ処理を行う。ここで、メモリオーバーフロー処理によって生成された画像データが存在している場合、８１１で行われるラスタライズは、その画像データ上に上書きされることになる。８１１までの処理において１ページ分のラスタライズが全て終了し、１ページ分の印刷イメージが生成し終わるので、８１２において紙上への出力を行う。また近年、リプリントおよびセキュアプリントを目的に、直ちに紙上への印刷を行わないで、HDDなどの記憶装置に印刷イメージを格納するものが存在するが、本発明がその処理システムに適応しても良いことは言うまでも無い。
【００３４】
図９はメモリオーバーフロー回避処理の詳細な流れを示すフローチャートである。
【００３５】
９０１で全てのバンドを処理するように判断する。以降の処理は全てバンドごとに行われる。９０２で既に２値以外（コントーン、ハーフトーン）で印刷イメージが生成されているか判断する。２値で生成されている、もしくはまだ生成されていない場合は９０３において、今回処理するべき中間データが全て２値のオブジェクトで構成されているか判断する。全て２値で構成されている場合は２値の印刷イメージを生成することが可能なので９０４で既に生成された２値の印刷イメージがある場合は伸長処理を行い、９０５でその印刷イメージ上に今回処理すべき中間データを２値でラスタライズする。ラスタライズが終了したら９０６で圧縮処理を行う。９０２もしくは９０３において２値の印刷イメージで作成することが不可能と判断された場合、９０７で既に生成された印刷イメージがある場合は、それぞれ生成された形式（２値、コントーン、ハーフトーン）で伸長処理を行う。９０８では７０７での判断と同じようにバンドの上端および下端が論理演算描画範囲に含まれているかで、ハーフトーン画像でラスタライズすべきかコントーン画像でラスタライズすべきか判断すると共に後述する９１４の判断によって既にコントーン画像でラスタライズすべきオブジェクトのラスタライズが全て終了し、以降ハーフトーン画像で生成してよいバンドであると認識されたかを判断基準とする。ハーフトーン画像で良いものは、９０９において９０７で伸長された印刷イメージがあり、かつ２値の場合は９１０でラスタライズするハーフトーン画像の１つのピクセルが持つビット数まで各ピクセルの拡大処理を行う。９１０のいてハーフトーン画像でラスタライズを行い、９１１で圧縮を行う。コントーン画像でラスタライズすべきバンドは９１２において９０７で伸長された印刷イメージがあり、かつ２値の場合は９１０でラスタライズするコントーン画像の１つのピクセルが持つビット数まで各ピクセルの拡大処理を行う。９１３においてコントーン画像でラスタライズを行う。９１４において、該バンドにコントーンで描画すべきオブジェクトが存在するかを、７０３で取得した入力データ位置情報と、８０７で積算している処理済の入力データのバイト数により判断する。処理済の入力データのバイト数ば、７０３で取得した入力データ位置の終了位置を越えていれば、以降該バンドはハーフトーン画像でラスタライズしてよいことになる。よって９１１にてハーフトーン処理を行うと共に、中間データを作成可能な限界容量にコントーン画像とハーフトーン画像との容量の差分を追加する。以降該バンドに関しては９０８においてハーフトーン画像でラスタライズしてよい画像として判断される。これにより９１４で以降にコントーンで処理すべきオブジェクトがある場合は９１２においてコントーン画像で圧縮され、無い場合は９１１においてハーフトーン処理しハーフトーン画像に変換され、９１２においてハーフトーン画像を圧縮する。以上の９０２から９１２の処理で生成された印刷イメージは９０７においてメモリオーバーフロー回避用に確保しておいて中間バッファに格納される。
【図面の簡単な説明】
【００３６】
【図１】本実施例における印刷装置の断面図である。
【図２】本実施例における印刷装置のブロック構成図である。
【図３】本実施例における印字例。
【図４】本実例における印刷装置ないの中間バッファメモリの様子。
【図５】本実施例における入力データフォーマット。
【図６】本実施例におけるホストコンピュータ上の入力データ生成処理フロー。
【図７】本実施例における印刷装置の入力データ処理フロー前半。
【図８】本実施例における印刷装置の入力デーら処理フロー後半。
【図９】本実施例におけるメモリオーバーフロー回避処理フロー。
【図１】
2006168051.tif 000003
【図２】
2006168051.tif 000004
【図３】
2006168051.tif 000005
【図４】
2006168051.tif 000006
【図５】
2006168051.tif 000007
【図６】
2006168051.tif 000008
【図７】
2006168051.tif 000009
【図８】
2006168051.tif 000010
【図９】
2006168051.tif 000011