(57)【要約】      （修正有）【課題】試し印刷を行った後の正式印刷での画像処理時間を短縮させる。【解決手段】入力データの属性情報が試し印刷指示か正式印刷指示のいずれかを判定する判定手段と、前記入力データを一以上のブロックに展開し、そのブロック毎に第１の展開データおよびその第１の展開データに基づいて第２の展開データを生成する画像生成手段と、前記入力データおよび前記第１の展開データを記憶する記憶手段と、正式印刷指示データを、試し印刷指示データと比較する比較手段とを設け、前記判定手段が試し印刷指示と判定したとき、前記記憶手段が前記入力データに関連付けて該第１の展開データを記憶し、前記判定手段が正式印刷指示と判定したとき、前記比較手段が入力された入力データを前記記憶手段に記憶された入力データと比較して一致することを検知した場合、前記記憶手段に記憶された第１の展開データを出力する。【選択図】図１
2010120193.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置から入力された入力データに基づいて画像を形成する画像形成装置において、
入力データの属性情報が試し画像形成指示か正式画像形成指示かのいずれであるかを判定する判定手段と、
前記入力データを一以上のブロックに展開し、そのブロック毎に第１の展開データおよびその第１の展開データに基づいて第２の展開データを生成する画像生成手段と、
前記入力データおよび前記第１の展開データを記憶する記憶手段と、
画像処理装置から入力され、属性情報が正式画像形成指示の入力データを、前記記憶手段に記憶され、属性情報が試し画像形成指示の入力データと、比較する比較手段とを設け、
前記判定手段が試し画像形成指示と判定したとき、前記画像生成手段が第１の展開データおよび第２の展開データを生成して該第２の展開データを出力するとともに前記記憶手段が前記入力データに関連付けて該第１の展開データを記憶し、
前記判定手段が正式画像形成指示と判定したとき、前記比較手段が入力された入力データを前記記憶手段に記憶された入力データと比較して一致することを検知した場合、前記記憶手段に記憶された第１の展開データを出力することを特徴とする画像形成装置。
【請求項２】
請求項１の画像形成装置において、
前記判定手段が正式画像形成指示と判定したとき、前記比較手段が入力された入力データを前記記憶手段に記憶された入力データと比較して一致しないことを検知した場合、一致しないブロックの第１の展開データを生成し、その第１の展開データを出力することを特徴とする画像形成装置。
【請求項３】
請求項１または請求項２の画像形成装置において、
前記判定手段が正式画像形成指示と判定したとき、前記記憶手段に記憶された入力データが存在しない場合、前記画像生成手段が、入力された入力データから第１の展開データを生成し、その第１の展開データを出力することを特徴とする画像形成装置。
【請求項４】
請求項１、請求項２または請求項３の画像形成装置において、
前記記憶手段は、記憶した第１の展開データが有効／無効および削除可否を示す情報を有し、
前記判定手段が試し画像形成指示と判定したとき、前記記憶手段が前記入力データおよび前記ブロックに関連付けて前記第１の展開データを記憶するとともに有効を示す情報を記憶し、
前記判定手段が正式画像形成指示と判定したとき、前記記憶手段に記憶された入力データが存在する場合、前記記憶手段が削除可能を示す情報を記憶することを特徴とする画像形成装置。
【請求項５】
請求項４の画像形成装置において、
時刻を計時する計時手段を備え、
前記記憶手段は、前記入力データおよび前記ブロックに関連付けて第１の展開データを記憶した時刻を記憶することを特徴とする画像形成装置。
【請求項６】
請求項１から請求項５のいずれか１項の画像形成装置において、
前記第１の展開データを、ラスタデータとし、
前記第２の展開データを、前記第１の展開データから出力する画素を減少させたデータとしたことを特徴とする画像形成装置。
【請求項７】
請求項６の画像形成装置において、
前記第２の展開データを、前記第１の展開データの、有効画素を間引いたデータ、画像を縮小したデータ、塗りつぶしを無効化したデータ、塗りつぶしを簡素化したデータ、カラー画像をモノクロ画像へ変換したデータ、および解像度を低下させたデータのいずれか又はこれらの組み合わせとしたことを特徴とする画像形成装置。
【請求項８】
請求項１から請求項７のいずれか１項の画像形成装置において、
前記ブロックは、文字、線分、矩形、画像および領域のいずれか又はこれらの組み合わせに分割されていることを特徴とする画像形成装置。
【請求項９】
請求項１から請求項８のいずれか１項の画像形成装置において、
前記記憶手段に記憶された入力データおよび第１の展開データを記憶する補助記憶手段と、
画像処理装置から入力され、属性情報が正式画像形成指示の入力データを、前記補助記憶手段に記憶され、属性情報が試し画像形成指示の入力データと比較する補助比較手段とを設け、
前記判定手段が試し画像形成指示と判定し、かつ前記比較手段が入力された入力データと前記記憶手段に記憶された入力データを比較して一致しないことを検知した場合、前記記憶手段に記憶された入力データおよび第１の展開データを前記補助記憶手段に記憶し、
前記判定手段が正式画像形成指示と判定し、かつ前記補助比較手段が入力された入力データを前記補助記憶手段に記憶された入力データと比較して一致することを検知した場合、前記補助記憶手段に記憶された第１の展開データを出力することを特徴とする画像形成装置。
【請求項１０】
請求項９の画像形成装置において、
前記補助比較手段は、前記比較手段で一致しない場合に比較することを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置から入力された入力データに基づいて画像を形成する画像形成装置に関する。
【背景技術】
【０００２】
従来のプリンタなどの画像形成装置においては、実際にどのような正式な画像が印刷されるかを確認するため、正式に印刷される画像を容易に推察でき、正式な画像を印刷する場合よりもインクやトナー等の媒体の消費を少ない試しモードで印刷を行うようにしているものがある（例えば、特許文献１参照）。
【特許文献１】特開平７−３２３６４４号公報（段落「００１７」〜段落「００１８」、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来の技術においては、試しモードでの印刷（以下、「試し印刷」という。）を行った後に正式な印刷（以下、「正式印刷」という。）を行う場合、試し印刷での画像形成と正式印刷での画像形成とでは異なる手順で画像を形成するため、試し印刷で生成した画像を正式印刷で利用することができず、元の画像に殆ど差異がないにも拘らず、正式印刷時に処理時間の長い画像処理を行う必要があるという問題がある。
【０００４】
本発明は、このような問題を解決することを課題とし、試し印刷を行った後の正式印刷での画像処理時間を短縮させることを目的とする。
【課題を解決するための手段】
【０００５】
そのため、本発明は、画像処理装置から入力された入力データに基づいて画像を形成する画像形成装置において、入力データの属性情報が試し画像形成指示か正式画像形成指示かのいずれであるかを判定する判定手段と、前記入力データを一以上のブロックに展開し、そのブロック毎に第１の展開データおよびその第１の展開データに基づいて第２の展開データを生成する画像生成手段と、前記入力データおよび前記第１の展開データを記憶する記憶手段と、画像処理装置から入力され、属性情報が正式画像形成指示の入力データを、前記記憶手段に記憶され、属性情報が試し画像形成指示の入力データと、比較する比較手段とを設け、前記判定手段が試し画像形成指示と判定したとき、前記画像生成手段が第１の展開データおよび第２の展開データを生成して該第２の展開データを出力するとともに前記記憶手段が前記入力データに関連付けて該第１の展開データを記憶し、前記判定手段が正式画像形成指示と判定したとき、前記比較手段が入力された入力データを前記記憶手段に記憶された入力データと比較して一致することを検知した場合、前記記憶手段に記憶された第１の展開データを出力することを特徴とする。
【発明の効果】
【０００６】
このようにした本発明は、試し印刷を行った後の正式印刷での画像処理時間を短縮させることができるという効果が得られる。
【発明を実施するための最良の形態】
【０００７】
以下、図面を参照して本発明による画像形成装置の実施例を説明する。
【実施例１】
【０００８】
図２は第１の実施例における画像形成装置の接続形態を示す説明図である。
図２において、１００は画像形成装置としてのプリンタであり、また２００は画像処理装置としてのホストコンピュータであり、プリンタ１００とホストコンピュータ２００とはインターフェイスケーブル３００で通信可能に接続されている。
このプリンタ１００は、ホストコンピュータ２００から入力された入力データ（受信した印刷データ）にしたがって画像を形成し、その画像を記録用紙に印刷する。
【０００９】
図１は第１の実施例における画像形成装置の構成を示すブロック図である。
図１において、画像形成装置としてのプリンタ１００は、ホストインターフェイス１、印刷機構部２、受信バッファ３、ブロック抽出部４、キャッシュバッファ５、データ比較部６、ＰＤＬ変換部７、ドラフト変換部８、ラスタ選択部９、印刷モード判定部１０、ラスタバッファ１１、時計１５、およびドラフト選択部１６を含み構成されている。
【００１０】
ホストインターフェイス１は、インターフェイスケーブル３００を介してホストコンピュータ２００との間の通信の制御を行うものである。
印刷機構部２は、記録用紙を搬送する機構やその記録用紙に文字、図形等を印刷する機構を制御するものである。
受信バッファ３は、ホストインターフェイス１がホストコンピュータ２００から受信した印刷データを保存するメモリ等の記憶手段である。
【００１１】
ブロック抽出部４は、受信バッファ３に保存された印刷データから文字、矩形や線などの構成ブロック単位でページ記述言語データとしてのＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データを抽出するものである。
キャッシュバッファ５は、ＰＤＬデータおよびそのＰＤＬデータから変換されたラスタデータを関連付けて保存するメモリ等の記憶手段である。このキャッシュバッファ５は、ＰＤＬデータおよびラスタデータを関連付ける管理情報が保存されるキャッシュタグ１２、ＰＤＬデータが保存されるＰＤＬキャッシュ１３、およびラスタデータが保存されるラスタキャッシュ１４で構成されている。
【００１２】
データ比較部６は、ブロック抽出部４が抽出したＰＤＬデータとキャッシュバッファ５のＰＤＬキャッシュ１３に保存されたＰＤＬデータとを比較する比較手段である。
ＰＤＬ変換部７は、ＰＤＬデータからラスタデータ（第１の展開データ）へ変換する画像生成手段であり、またドラフト変換部８は、そのラスタデータを試し印刷向けの印刷イメージデータ（第２の展開データ）へ変換する画像生成手段である。
【００１３】
ラスタ選択部９は、キャッシュバッファ５のラスタキャッシュ１４に保存されたラスタデータおよびＰＤＬ変換部７で変換されたラスタデータのふたつのラスタデータを択一選択する選択手段である。
印刷モード判定部１０は、ホストコンピュータ２００から受信した印刷データに含まれる属性情報としての印刷指示が試し印刷（試し画像形成指示）か正式印刷（正式画像形成指示）かのいずれであるかを判定する判定手段である。
【００１４】
ドラフト選択部１６は、印刷モード判定部１０の判定に応じてドラフト変換部８で変換したラスタデータまたはドラフト変換部８で変換する前のラスタデータのいずれか一つを選択する選択手段である。
ラスタバッファ１１は、印刷単位の印刷イメージデータを生成する前に初期化され、構成ブロック単位の印刷イメージデータを合成して保存する記憶手段である。
【００１５】
時計１５は、時刻を計時する計時手段である。
このように構成されたプリンタ１００は、図示しないメモリや磁気ディスク等の記憶手段に格納されたプログラム（ソフトウェア）に基づいて図示しない中央処理装置（ＣＰＵ）等の制御手段により制御される。
次に、プリンタ１００の動作の概略を以下に説明する。
【００１６】
プリンタ１００のホストインターフェイス１は、ホストインターフェイスケーブル３００を介してホストコンピュータ２００から受信した印刷データ４０１を出力し、受信バッファ３へ逐次保存する。
ブロック抽出部４は、受信バッファ３から印刷データを受信入力データ４０２として読出し、文字、矩形や線などの構成ブロック単位に分解し、分解した構成ブロックのブロック識別子４０３をキャッシュタグ１２へ入力し、構成ブロックのＰＤＬデータをカレントＰＤＬデータ４０４としてＰＤＬキャッシュ１３へ入力し、またデータ比較部６、およびＰＤＬ変換部７へ入力する。
【００１７】
キャッシュバッファ５は、キャッシュタグ１２にブロック識別子４０３と一致する情報が登録されている場合に有効となるヒット４０５をデータ比較部６へ入力する。
また、キャッシュバッファ５は、キャッシュタグ１２にブロック識別子４０３と一致する情報が登録されていれば、ＰＤＬキャッシュ１３から対応したＰＤＬデータを保存ＰＤＬデータ４０６としてデータ比較部６へ入力するとともにラスタキャッシュ１４から対応したラスタデータを保存ラスタデータ４０７としてラスタ選択部９へ入力する。
【００１８】
データ比較部６は、入力されたヒット４０５が有効を示し、かつカレントＰＤＬデータ４０４と保存ＰＤＬデータ４０６とを比較し、一致する場合に一致を示し、それ以外は不一致を示す一致結果４０８をキャッシュバッファ５、ＰＤＬ変換部７、およびラスタ選択部９へ入力する。
ＰＤＬ変換部７は、一致結果４０８が不一致を示す場合にカレントＰＤＬデータ４０４に基づいてカレントラスタデータ４０９へ変換し、そのカレントラスタデータ４０９をラスタキャッシュ１４およびラスタ選択部９へ入力する。
【００１９】
ラスタ選択部９は、一致結果４０８が一致を示す場合に保存ラスタデータ４０７を選択し、一致結果４０８が不一致を示す場合にカレントラスタデータ４０９を選択し、選択したデータをラスタデータ４１０としてドラフト変換部８およびドラフト選択部１６へ入力する。
印刷モード判定部１０は、受信バッファ３の受信入力データ４０２を読出し、ホストコンピュータ２００からの印刷指示が試し印刷または正式印刷のいずれかを判定し、試し印刷である場合は試し印刷モード４１１を有効にする。
【００２０】
ドラフト変換部８は、入力されたラスタデータ４１０から試し印刷向けに変換したドラフトラスタデータ４１５を生成し、ドラフト選択部１６へ入力する。
ドラフト選択部１６は、入力された試し印刷モード４１１が有効の場合に入力されたドラフトラスタデータ４１５を印刷イメージデータ４１２として出力し、試し印刷モード４１１が無効の場合に入力されたラスタデータ４１０を印刷イメージデータ４１２として出力し、ラスタバッファ１１のデータへ合成する。
【００２１】
印刷機構部２は、ラスタバッファ１１の印刷イメージデータ４１３を読出し、その印刷イメージデータ４１３にしたがった印刷を行う。
なお、時計１５は、時刻４１４をキャッシュタグ１２へ入力する。
このようにしてプリンタ１００は、ホストコンピュータ２００から受信した印刷指示にしたがって試し印刷または正式印刷を行う。
【００２２】
次に、キャッシュバッファ５の構成を図３の第１の実施例におけるキャッシュバッファの構成を示す説明図に基づいて説明する。
図３において、キャッシュバッファ５は、上述したようにキャッシュタグ１２、ＰＤＬキャッシュ１３、およびラスタキャッシュ１４で構成されている。
キャッシュタグ１２は、ブロック識別子Ｆ１、ＰＤＬキャッシュポインタＦ２、ラスタキャッシュポインタＦ３、有効フラグＦ４、削除可能フラグＦ５、および更新情報Ｆ６をひとつのエントリＥｘとした複数のエントリ（Ｅ１、Ｅ２、・・・、Ｅｎ）からなる。
【００２３】
キャッシュタグ１２の中でブロック識別子Ｆ１と入力されたブロック識別子４０３が一致するエントリが存在するとヒット４０５が有効となる。
ＰＤＬキャッシュポインタＦ２は、エントリＥｘに対応するＰＤＬキャッシュ１３のＰＤＬデータの先頭位置を示し、ラスタキャッシュポインタＦ３は、エントリＥｘに対応するラスタキャッシュ１４のラスタデータの先頭位置を示している。
【００２４】
有効フラグＦ４は、エントリＥｘが有効な値であるか否かを示し、削除可能フラグＦ５は、エントリＥｘが削除候補であるか否かを示し、また更新情報Ｆ６は、エントリＥｘが更新された時刻４１４を示している。
上述した構成の作用を図４〜図６の第１の実施例における画像形成処理を示すフローチャートの図中Ｓで表すステップにしたがって説明する。
【００２５】
なお、以下に説明する各実施例における各部位の動作は、図示しないメモリや磁気ディスク等の記憶手段に格納されたプログラム（ソフトウェア）に基づいて図示しない中央処理装置等の制御手段により制御される。
まず、プリンタ１００がホストコンピュータ２００から１回目の試し印刷が指示された場合の動作を説明する。
【００２６】
Ｓ００１：プリンタ１００は、ホストコンピュータ２００から印刷データを受信する。
Ｓ００２：印刷データを受信するとプリンタ１００は、ラスタバッファ１１のデータを初期化する。
Ｓ００３：ホストインターフェイス１は、ホストインターフェイスケーブル３００を介してホストコンピュータ２００から印刷データを受信し、受信バッファ３へ印刷データ４０１として保存する。
【００２７】
Ｓ００４：ホストインターフェイス１は、ホストコンピュータ２００からすべての印刷データの受信が終了するまで印刷データの受信を継続（Ｓ００３）し、受信バッファ３へ逐次保存する。すべての印刷データの受信が終了すると処理をＳ００５へ移行する。
Ｓ００５：すべての印刷データを受信すると印刷モード判定部１０は受信バッファ３から印刷データを受信入力データ４０２として読出し、その受信入力データ４０２に含まれるホストコンピュータ２００からの印刷指示を抽出する。
【００２８】
Ｓ００６：印刷モード判定部１０は、印刷指示が試し印刷または正式印刷のいずれかを判定する。試し印刷と判定されると処理をＳ００７へ移行し、正式印刷と判定されると処理をＳ００８へ移行する。本説明では、１回目の試し印刷であるので処理をＳ００７へ移行する。
Ｓ００７：印刷モード判定部１０は、試し印刷モード４１１を有効にする。
【００２９】
Ｓ００９：ブロック抽出部４は、受信バッファ３の受信入力データ４０２から構成ブロック単位でひとつのＰＤＬデータを抽出する。本実施例では、構成ブロックは文字、矩形や線などの単位を示すが等間隔に分割された領域単位でも良く、また文章や画像単位でも良く、その構成ブロックの単位は限定されるものではない。
Ｓ０１０：ブロック抽出部４は、抽出した構成ブロックを特定するブロック識別子４０３をキャッシュバッファ５のキャッシュタグ１２へ出力する。このブロック識別子４０３は、異なる構成ブロックで重複しない数値または文字列とする。
【００３０】
本実施例では、例えば図７に示すように、文字「Ａ」は１バイトフォントを示す「Ｆ」、ＡＳＣＩＩ文字コードの「００４１」を結合して「Ｆ００４１」をブロック識別子４０３とし、線分は線分を示す「Ｌ」、角度を示す「３０」、線長を示す「９０」を結合して「Ｌ３０９０」をブロック識別子４０３とし、矩形は矩形を示す「Ｂ」、幅を示す「５０」、高さを示す「２５」を結合して「Ｂ５０２５」をブロック識別子４０３とする。
【００３１】
このように本実施例では、ブロック識別子４０３は、図形種類と識別コードを組み合わせた文字列で示すものとするが、この表現方法に限定されるものではない。
Ｓ０１１：ブロック抽出部４は、抽出した構成ブロックのＰＤＬデータであるカレントＰＤＬデータ４０４をキャッシュバッファ５のＰＤＬキャッシュ１３、データ比較部６、およびＰＤＬ変換部７へ出力する。
【００３２】
Ｓ０１２：キャッシュバッファ５のキャッシュタグ１２は、有効フラグＦ４が有効、かつブロック識別子Ｆ１がブロック識別子４０３と一致するエントリＥｘが存在すればヒット４０５を有効にし、存在しなければ有効とはしない。
Ｓ０１３：１回目の試し印刷では、キャッシュバッファ５のキャッシュタグ１２に一致するエントリＥｘが存在しないのでヒット４０５は有効とはならず、処理をＳ０１４（図５）へ移行する。
【００３３】
Ｓ０１４：ヒット４０５が有効とならなかったデータ比較部６は、保存ＰＤＬデータ４０６およびカレントＰＤＬデータ４０４に関わらず一致判定４０８を不一致とする。
Ｓ０１５：ＰＤＬ変換部７は、カレントＰＤＬデータ４０４からカレントラスタデータ４０９を生成し、キャッシュバッファ５のラスタキャッシュ１４およびラスタ選択部９へ出力する。
【００３４】
Ｓ０１６：ラスタ選択部９は、一致判定４０８が不一致であるため、ラスタデータ４１０としてカレントラスタデータ４０９を出力する。
Ｓ０１７：試し印刷モード４１１が有効か否かが判定され、本説明では有効と判定されるため処理をＳ０１８へ移行する。
Ｓ０１８：キャッシュタグ１２は、有効フラグＦ４が無効であるエントリＥｘの存否を確認する。有効フラグＦ４が無効であるエントリＥｘが存在しない場合、処理をＳ０１９へ移行し、存在する場合、処理をＳ０２４へ移行する。
【００３５】
Ｓ０１９：キャッシュタグ１２に有効フラグＦ４が無効であるエントリＥｘが存在しない場合、次にキャッシュタグ１２に削除可能フラグＦ５が有効であるエントリＥｘの存否を確認する。
Ｓ０２０：削除可能フラグＦ５が有効であるエントリＥｘが存在する場合、そのエントリＥｘの有効フラグＦ４を無効とする。
【００３６】
Ｓ０２１：一方、削除可能フラグＦ５が有効であるエントリＥｘが存在しない場合、キャッシュタグ１２の中で更新情報Ｆ６が最も古いエントリＥｘの有効フラグＦ４を無効とする。
Ｓ０２２：削除可能フラグＦ５または更新情報Ｆ６から特定のエントリＥｘの有効フラグＦ４を無効とするとそのエントリＥｘのＰＤＬキャッシュポインタＦ２が示すＰＤＬデータを破棄する。
【００３７】
Ｓ０２３：また、そのエントリＥｘのラスタキャッシュポインタＦ３が示すラスタデータを破棄する。
Ｓ０２４：特定のエントリＥｘの有効フラグＦ４を無効とし、そのエントリＥｘに関連付けられたＰＤＬデータおよびラスタデータが破棄されるか（Ｓ０２２、Ｓ０２３）、またはキャッシュタグ１２に有効フラグＦ４が無効であるエントリＥｘの存在を確認する（Ｓ０１８）とキャッシュタグ１２の有効フラグＦ４が無効であるエントリＥｘのブロック識別子Ｆ１へブロック識別子４０３を格納し、有効フラグＦ４を有効とし、削除可能フラグＦ５を無効とし、更新情報Ｆ６に時刻４１４を格納して更新する。
【００３８】
Ｓ０２５：ＰＤＬキャッシュ１３にカレントＰＤＬデータ４０４を保存し、その先頭位置をエントリＥｘのＰＤＬキャッシュポインタＦ２へ格納する。
Ｓ０２６：また、ラスタキャッシュ１４にカレントラスタデータ４０９を保存し、その先頭位置をエントリＥｘのラスタキャッシュポインタＦ３へ格納し、Ｓ０２７（図６）へ移行する。
【００３９】
Ｓ０２７：ドラフト変換部８は、ラスタデータ４１０を出力する画素を減少させたドラフト印刷向けのドラフトラスタデータ４１５へ変換する。ドラフト変換部８でのドラフト印刷向けのドラフトラスタデータ４１５へ変換は、例えば有効画素（ドット）の間引き、画像縮小、塗りつぶしの無効化や簡素化、カラーからモノクロ画像への変換や低解像度化などが挙げられる。
【００４０】
Ｓ０２８：ドラフト選択部１６は、試し印刷モード４１１が有効であるため、ドラフトラスタデータ４１５を選択して印刷イメージデータ４１２として出力する。
Ｓ０２９：出力された印刷イメージデータ４１２は、ラスタバッファ１１上のラスタデータと合成される。
Ｓ０３０：以上により、ひとつの単位ブロックに対する処理が完了し、すべての単位ブロックが抽出されたことを確認する。抽出されていない単位ブロックが存在すればブロック抽出部４によるブロックの抽出（Ｓ００９）から繰り返される。
【００４１】
Ｓ０３１：すべての単位ブロックの抽出が完了すると印刷機構部２はラスタバッファ１１から印刷イメージデータ４１３を読出し、印刷を行い、プリンタ１００はホストコンピュータ２００から１回目の試し印刷が指示された場合の動作を終了する。
次に、プリンタ１００がホストコンピュータ２００から一部修正された２回目の試し印刷が指示された場合の動作を説明する。
【００４２】
図８（ａ）は１回目の試し印刷のデータを示し、図８（ｂ）は２回目の試し印刷のデータを示している。図８に示すように２回目の試し印刷のデータは、１回目の試し印刷のデータと線分の太さのみが異なるものとして説明する。
まず、２回目の試し印刷で１回目の試し印刷と同じ文字や矩形を抽出した場合の動作を説明する。
【００４３】
Ｓ００１〜Ｓ０１２：上述した１回目の試し印刷の動作と同様のため、その説明を省略する。
Ｓ０１３：２回目の試し印刷では、キャッシュバッファ５のキャッシュタグ１２はブロック識別子４０３と一致するエントリＥｘが存在するため、ヒット４０５は有効となり、処理をＳ０３３へ移行する。
【００４４】
Ｓ０３３：キャッシュバッファ５は、一致したエントリＥｘのＰＤＬキャッシュポインタＦ２で示されるＰＤＬデータを保存ＰＤＬデータ４０６としてデータ比較部６へ出力する。
Ｓ０３４：また、キャッシュバッファ５は、一致したエントリＥｘのラスタキャッシュポインタＦ３で示されるラスタデータを保存ラスタデータ４０７としてラスタ選択部９へ出力する。
【００４５】
Ｓ０３５：データ比較部６は、カレントＰＤＬデータ４０４と保存ＰＤＬデータ４０６とを比較し、一致結果４０８を出力する。そして、処理をＳ０３６（図６の）へ移行する。
Ｓ０３６：文字や矩形はＰＤＬデータも同一であるので一致結果４０８は一致となり、処理をＳ０３７へ移行する。
【００４６】
Ｓ０３７：一致結果４０８が一致の場合、ラスタ選択部９はラスタデータ４１０として保存ラスタデータ４０７を出力する。
Ｓ０３８：キャッシュバッファ５は、試し印刷モード４１１が有効か否かを確認する。本説明の場合、有効であるので処理をＳ０３９へ移行する。
Ｓ０３９：キャッシュタグ１２は、ブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘの更新情報Ｆ６に時刻４１４を格納する。
【００４７】
以降の動作は、１回目の試し印刷におけるＳ０２７〜Ｓ０３１の動作と同様なのでその説明を省略する。
次に、２回目の試し印刷で１回目の試し印刷と太さのみ異なる線分を抽出した場合の動作を説明する。
本実施例では、図７に示すように線分は、角度と線長でブロック識別子が定義されることから太さが異なってもブロック識別子は同一となる。
【００４８】
Ｓ００１〜Ｓ０１３、Ｓ０３３〜Ｓ０３５：上述した動作と同様なのでその説明を省略する。
Ｓ０３６：データ比較部６の比較により、カレントＰＤＬデータ４０４と保存ＰＤＬデータ４０６は線分の太さが異なることから一致せず、一致結果４０８は不一致となり、処理をＳ０４０へ移行する。
【００４９】
Ｓ０４０：一致結果４０８が不一致の場合、ＰＤＬ変換部７はカレントＰＤＬデータ４０４からカレントラスタデータ４０９を生成し、キャッシュバッファ５のラスタキャッシュ１４およびラスタ選択部９へ出力する。
Ｓ０４１：ラスタ選択部９がラスタデータ４１０としてカレントラスタデータ４０９を出力する。
【００５０】
Ｓ０４２：キャッシュバッファ５は試し印刷モード４１１が有効であるか否かを確認し、本説明では有効なので処理をＳ０４３へ移行する。
Ｓ０４３：キャッシュバッファ５は、キャッシュタグ１２でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘのＰＤＬキャッシュポインタＦ２で指定されるＰＤＬデータをカレントＰＤＬデータ４０４に置換する。
【００５１】
Ｓ０４４：また、キャッシュバッファ５は、キャッシュタグ１２でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘのラスタキャッシュポインタＦ３で指定されるラスタデータをカレントラスタデータ４０９に置換する。
Ｓ０４５：さらに、キャッシュバッファ５は、キャッシュタグ１２の更新情報Ｆ６に時刻４１４を格納する。
【００５２】
以降の動作は、１回目の試し印刷におけるＳ０２７〜Ｓ０３１の動作と同様なのでその説明を省略する。
次に、プリンタ１００がホストコンピュータ２００から２回目の試し印刷に対して一部追加された正式印刷が指示された場合の動作を説明する。
図９（ａ）は２回目の試し印刷のデータを示し、図９（ｂ）は正式印刷のデータを示している。図９に示すように正式印刷のデータは、２回目の試し印刷のデータに新たな文字「Ｚ」のみが追加されたものとして説明する。
【００５３】
まず、正式印刷で２回目の試し印刷と同じ文字、矩形や線を抽出した場合の動作を説明する。
Ｓ００１〜Ｓ００５：上述した２回目の試し印刷の動作と同様のため、その説明を省略する。
Ｓ００６：印刷モード判定部１０は、印刷指示が試し印刷または正式印刷のいずれかを判定する。正式印刷と判定されると処理をＳ００８へ移行する。本説明では、正式印刷であるので処理をＳ００８へ移行する。
【００５４】
Ｓ００８：印刷モード判定部１０は、試し印刷モード４１１を無効にする。
Ｓ００９〜Ｓ０１３、Ｓ０３３〜Ｓ０３７：２回目の試し印刷の動作と同様なのでその説明を省略する。
Ｓ０３８：キャッシュバッファ５は、試し印刷モード４１１が有効か否かを確認する。本説明の場合、無効であるので処理をＳ０４６へ移行する。
【００５５】
Ｓ０４６：キャッシュバッファ５は、キャッシュタグ１２でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘの削除可能フラグＦ５を有効にする。
Ｓ０４７：ドラフト選択部１６は、試し印刷モード４１１が無効であるため、ラスタデータ４１０を印刷イメージデータ４１２として出力する。
以降の動作は、２回目の試し印刷におけるＳ０２９〜Ｓ０３１の動作と同様なのでその説明を省略する。
【００５６】
次に、正式印刷で新たに追加された文字「Ｚ」が抽出された場合の動作を説明する。
Ｓ００１〜Ｓ０１６：１回目の試し印刷における動作と同様なのでその説明を省略する。
Ｓ０１７：試し印刷モード４１１が有効か否かが判定され、本説明では無効と判定されるため、キャッシュバッファ５へのデータの追加を行うことなく処理をＳ０４７へ移行する。
【００５７】
Ｓ０４７：ドラフト選択部１６は、試し印刷モード４１１が無効であるため、ラスタデータ４１０を印刷イメージデータ４１２として出力する。
以降の動作は、２回目の試し印刷におけるＳ０２９〜Ｓ０３１の動作と同様なのでその説明を省略する。
このようにプリンタ１００は、試し印刷において正式印刷と同じラスタデータをキャッシュバッファ５へすべて保存しておき、試し印刷では、そのラスタデータを試し印刷向けのラスタデータへ変換するようにしたことにより、試し印刷後の正式印刷では、キャッシュバッファ５に保存しておいたラスタデータを用いて印刷を行うため、高速に印刷することができるようになる。
【００５８】
また、キャッシュヒットの頻度が低下したラスタデータをキャッシュバッファ５から削除するようにしたことにより、キャッシュヒット率を向上させることができるようになる。
なお、本実施例では、正式印刷の場合、キャッシュバッファ５へのデータの追加を行わないようにするが、有効フラグＦ４が無効のエントリＥｘが存在するとき、削除可能フラグＦ５を有効にして追加するようにしてもよい。
【００５９】
また、本実施例では、Ｓ０１３のＰＤＬデータの比較において、ブロック識別子の比較を行うようにしたが、この構成に替え、ブロック抽出部４が構成ブロック単位でＰＤＬデータのハッシュ値を生成するようにし、このハッシュ値を比較対象とするようにしてもよい。この場合、ハッシュ値の生成については、例えば生成アルゴリズムＭＤ５を利用して行うことができる。
【００６０】
以上説明したように、第１の実施例では、試し印刷において正式印刷と同じラスタデータをキャッシュバッファへすべて保存しておき、試し印刷では、そのラスタデータを試し印刷向けのラスタデータへ変換するようにしたことにより、試し印刷後の正式印刷では、キャッシュバッファに保存しておいたラスタデータを用いて印刷を行うため、高速に印刷することができるという効果が得られる。
【００６１】
また、キャッシュヒットの頻度が低下したラスタデータをキャッシュバッファから削除するようにしたことにより、キャッシュヒット率を向上させることができるという効果が得られる。
【実施例２】
【００６２】
第２の実施例の構成は、第１の実施例の構成における画像形成装置としてのプリンタの構成が異なるものである。そのプリンタ１０１の構成を説明する。
図１０は第２の実施例における画像形成装置の構成を示すブロック図である。
図１０において、画像形成装置としてのプリンタ１０１は、ホストインターフェイス１、印刷機構部２、受信バッファ３、ブロック抽出部４、ドラフト変換部８、印刷モード判定部１０、ラスタバッファ１１、時計１５、ドラフト選択部１６、一次キャッシュバッファ１７、二次キャッシュバッファ２１、一次データ比較部２５、二次データ比較部２６、ＰＤＬ変換部２７、キャッシュ選択部２８、およびラスタ選択部２９を含み構成されている。
【００６３】
なお、ホストインターフェイス１、印刷機構部２、受信バッファ３、ブロック抽出部４、ドラフト変換部８、印刷モード判定部１０、ラスタバッファ１１、時計１５、ドラフト選択部１６は、上述した第１の実施例と同様なので同一の符号を付してその説明を省略する。
一次キャッシュバッファ１７は、ＰＤＬデータおよびそのＰＤＬデータから変換されたラスタデータを関連付けて保存するメモリ等の記憶手段であり、二次キャッシュバッファ２１は、ＰＤＬデータおよびそのＰＤＬデータから変換されたラスタデータを関連付けて保存するメモリ等の補助記憶手段である。
【００６４】
この一次キャッシュバッファ１７は、ＰＤＬデータおよびラスタデータを関連付ける管理情報が保存される一次キャッシュタグ１８、ＰＤＬデータが保存される一次ＰＤＬキャッシュ１９、およびラスタデータが保存される一次ラスタキャッシュ２０で構成されている。
また、二次キャッシュバッファ２１も同様に、ＰＤＬデータおよびラスタデータを関連付ける管理情報が保存される二次キャッシュタグ２２、ＰＤＬデータが保存される二次ＰＤＬキャッシュ２３、およびラスタデータ（第３の展開データ）が保存される二次ラスタキャッシュ２４で構成されている。
【００６５】
一次データ比較部２５は、ふたつのＰＤＬデータを比較する比較手段であり、二次データ比較部２６は、ふたつのＰＤＬデータを比較する補助比較手段である。
ＰＤＬ変換部２７は、ＰＤＬデータからラスタデータへ変換する画像生成手段である。
キャッシュ選択部２８およびラスタ選択部２９は、ふたつのラスタデータを択一選択する選択手段である。
【００６６】
このように構成されたプリンタ１０１は、図示しないメモリや磁気ディスク等の記憶手段に格納されたプログラム（ソフトウェア）に基づいて図示しない中央処理装置（ＣＰＵ）等の制御手段により制御される。
次に、プリンタ１０１の動作の概略を以下に説明する。
プリンタ１０１のホストインターフェイス１は、ホストインターフェイスケーブル３００を介してホストコンピュータ２００から受信した印刷データ４０１を出力し、受信バッファ３へ逐次保存する。
【００６７】
ブロック抽出部４は、受信バッファ３から印刷データを受信入力データ４０２として読出し、文字、矩形や線などの構成ブロック単位に分解し、分解した構成ブロックのブロック識別子４０３を一次キャッシュタグ１８および二次キャッシュタグ２２へ入力し、構成ブロックのＰＤＬデータをカレントＰＤＬデータ４０４として一次ＰＤＬキャッシュ１９へ入力し、また一次データ比較部２５、およびＰＤＬ変換部２７へ入力する。
【００６８】
一次キャッシュバッファ１７は、一次キャッシュタグ１８にブロック識別子４０３と一致する情報が登録されている場合に有効となる一次ヒット４１６を一次データ比較部２５へ入力する。
また、二次キャッシュバッファ２１は、二次キャッシュタグ２２にブロック識別子４０３と一致する情報が登録されている場合に有効となる二次ヒット４１９を二次データ比較部２６へ入力する。
【００６９】
一次キャッシュバッファ１７は、一次キャッシュタグ１８にブロック識別子４０３と一致する情報が登録されていれば、一次ＰＤＬキャッシュ１９から対応したＰＤＬデータを一次保存ＰＤＬデータ４１７として一次データ比較部２５および二次キャッシュバッファ２１の二次ＰＤＬキャッシュ２３へ入力するとともに一次ラスタキャッシュ２０から対応したラスタデータを一次保存ラスタデータ４１８としてキャッシュ選択部２８および二次キャッシュバッファ２１の二次ラスタキャッシュ２４へ入力する。
【００７０】
二次キャッシュバッファ２１は、二次キャッシュタグ２２にブロック識別子４０３と一致する情報が登録されていれば、二次ＰＤＬキャッシュ２３から対応したＰＤＬデータを二次保存ＰＤＬデータ４２０として二次データ比較部２６へ入力するとともに二次ラスタキャッシュ２４から対応したラスタデータを二次保存ラスタデータ４２１としてキャッシュ選択部２８へ入力する。
【００７１】
一次キャッシュバッファ１７は、一次キャッシュタグ１８のエントリを削除する場合に二次キャッシュバッファ２１の同じブロック識別子４０３を持つエントリの削除を指示する削除情報４２４を二次キャッシュバッファ２１へ入力する。
一次データ比較部２５は、入力された一次ヒット４１６が有効を示し、かつカレントＰＤＬデータ４０４と一次保存ＰＤＬデータ４１７とを比較して一致する場合、一致を示し、それ以外は不一致を示す一次一致結果４２２を一次キャッシュバッファ１７、ＰＤＬ変換部２７、キャッシュ選択部２８、およびラスタ選択部２９へ入力する。
【００７２】
二次データ比較部２６は、入力された二次ヒット４１９が有効を示し、かつカレントＰＤＬデータ４０４と二次保存ＰＤＬデータ４２０とを比較して一致する場合、一致を示し、それ以外は不一致を示す二次一致結果４２３をＰＤＬ変換部２７およびラスタ選択部２９へ入力する。
ＰＤＬ変換部２７は、一次一致結果４２２が不一致を示す場合にカレントＰＤＬデータ４０４に基づいてカレントラスタデータ４２５へ変換し、そのカレントラスタデータ４２５を一次ラスタキャッシュ２０およびラスタ選択部２９へ入力する。
【００７３】
キャッシュ選択部２８は、一次一致結果４２２が一致を示す場合に一次保存ラスタデータ４１８を選択し、一次一致結果４２２が不一致を示す場合に二次保存ラスタデータ４２１を選択し、選択したデータを保存ラスタデータ４２６としてラスタ変換部２９へ入力する。
ラスタ選択部２９は、一次一致結果４２２および二次一致結果４２３のいずれかが一致を示す場合に保存ラスタデータ４２６を選択し、一次一致結果４２２および二次一致結果４２３がともに不一致を示す場合にカレントラスタデータ４２５を選択し、選択したデータをラスタデータ４１０としてドラフト変換部８およびドラフト選択部１６へ入力する。
【００７４】
印刷モード判定部１０は、受信バッファ３の受信入力データ４０２を読出し、ホストコンピュータ２００からの印刷指示が試し印刷または正式印刷のいずれかを判定し、試し印刷である場合は試し印刷モード４１１を有効にする。
ドラフト変換部８は、入力されたラスタデータ４１０から試し印刷向けに変換したドラフトラスタデータ４１５を生成し、ドラフト選択部１６へ入力する。
【００７５】
ドラフト選択部１６は、入力された試し印刷モード４１１が有効の場合に入力されたドラフトラスタデータ４１５を印刷イメージデータ４１２として出力し、試し印刷モード４１１が無効の場合に入力されたラスタデータ４１０を印刷イメージデータ４１２として出力し、ラスタバッファ１１のデータへ合成する。
印刷機構部２は、ラスタバッファ１１の印刷イメージデータ４１３を読出し、その印刷イメージデータ４１３にしたがった印刷を行う。
【００７６】
なお、時計１５は、時刻４１４を一次キャッシュタグ１８へ入力する。
このようにしてプリンタ１０１は、ホストコンピュータ２００から受信した印刷指示にしたがって試し印刷または正式印刷を行う。
次に、一次キャッシュバッファ１７および二次キャッシュバッファ２１の構成を説明する。なお、一次キャッシュバッファ１７の構成は、第１の実施例のキャッシュバッファ５と同様なのでその説明を省略する。
【００７７】
図１１は第２の実施例における二次キャッシュバッファの構成を示す説明図である。
図１１において、二次キャッシュバッファ２１は、上述したように二次キャッシュタグ２２、二次ＰＤＬキャッシュ２３、および二次ラスタキャッシュ２４で構成されている。
二次キャッシュタグ２２は、ブロック識別子Ｆ７、ＰＤＬキャッシュポインタＦ８、ラスタキャッシュポインタＦ９、および有効フラグＦ１０をひとつのエントリＥｘとした複数のエントリ（Ｅ１、Ｅ２、・・・、Ｅｎ）からなる。
【００７８】
二次キャッシュタグ２２の中でブロック識別子Ｆ７と入力されたブロック識別子４０３が一致するエントリが存在すると二次ヒット４１９が有効となる。
一次キャッシュタグ１８のエントリと二次キャッシュタグ２２のエントリの関係は、一次キャッシュタグ１８と二次キャッシュタグ２２の双方にブロック識別子４０３と同じものが存在しないか、一次キャッシュタグ１８のみにブロック識別子４０３と同じものが存在するか、それとも一次キャッシュタグ１８と二次キャッシュタグ２２の双方にブロック識別子４０３と同じものが存在するかの３通りとする。
【００７９】
したがって、一次キャッシュバッファ１７により出力された一次ヒット４１６が無効である場合、二次ヒット４１９も必然的に無効となる。
ＰＤＬキャッシュポインタＦ８は、エントリＥｘに対応する二次ＰＤＬキャッシュ２３のＰＤＬデータの先頭位置を示し、ラスタキャッシュポインタＦ９は、エントリＥｘに対応する二次ラスタキャッシュ２４のラスタデータの先頭位置を示している。
【００８０】
有効フラグＦ１０は、エントリＥｘが有効な値であるか否かを示している。
上述した構成の作用を図１２〜図１５の第２の実施例における画像形成処理を示すフローチャートの図中Ｓで表すステップにしたがって説明する。
まず、プリンタ１０１がホストコンピュータ２００から１回目の試し印刷が指示された場合の動作を説明する。
【００８１】
Ｓ１０１〜Ｓ１０９：第１の実施例の図４におけるＳ００１〜Ｓ００９と同様なのでその説明を省略する。
Ｓ１１０：ブロック抽出部４は、抽出した構成ブロックを特定するブロック識別子４０３を一次キャッシュバッファ１７の一次キャッシュタグ１８へ出力する。なお、ブロック識別子４０３は、第１の実施例と同様なのでその説明を省略する。
【００８２】
Ｓ１１１：ブロック抽出部４は、抽出した構成ブロックのＰＤＬデータであるカレントＰＤＬデータ４０４を一次キャッシュバッファ１７の一次ＰＤＬキャッシュ１９、一次データ比較部２５、二次データ比較部２６、およびＰＤＬ変換部２７へ出力する。
Ｓ１１２：一次キャッシュバッファ１７の一次キャッシュタグ１８は、有効フラグＦ４が有効、かつブロック識別子Ｆ１がブロック識別子４０３と一致するエントリＥｘが存在すれば一次ヒット４１６を有効にし、存在しなければ有効とはしない。
【００８３】
Ｓ１１３：１回目の試し印刷では、一次キャッシュバッファ１７の一次キャッシュタグ１８に一致するエントリＥｘが存在しないので一次ヒット４１６は有効とはならず、処理をＳ１１４（図１３）へ移行する。
Ｓ１１４：一次ヒット４１６が有効とならなかった一次データ比較部２５は、一次保存ＰＤＬデータ４１７およびカレントＰＤＬデータ４０４に関わらず一次一致結果４２２を不一致とする。
【００８４】
また、一次ヒット４１６が無効である場合、二次ヒット４１９も無効となり、二次データ比較部２６はニ次一致結果４２３を不一致とする。
Ｓ１１５：ＰＤＬ変換部２７は、一次一致結果４２２およびニ次一致結果４２３の双方が不一致であるので、カレントＰＤＬデータ４０４からカレントラスタデータ４２５を生成し、一次キャッシュバッファ１７の一次ラスタキャッシュ２０およびラスタ選択部２９へ出力する。
【００８５】
Ｓ１１６：ラスタ選択部２９は、一次一致結果４２２およびニ次一致結果４２３の双方が不一致であるため、ラスタデータ４１０としてカレントラスタデータ４２５を出力する。
Ｓ１１７：試し印刷モード４１１が有効か否かが判定され、本説明では有効と判定されるため処理をＳ１１８へ移行する。
【００８６】
Ｓ１１８：一次キャッシュタグ１８は、有効フラグＦ４が無効であるエントリＥｘの存否を確認する。有効フラグＦ４が無効であるエントリＥｘが存在しない場合、処理をＳ１１９へ移行し、存在する場合、処理をＳ１２９へ移行する。
Ｓ１１９：一次キャッシュタグ１８に有効フラグＦ４が無効であるエントリＥｘが存在しない場合、次に一次キャッシュタグ１８に削除可能フラグＦ５が有効であるエントリＥｘの存否を確認する。
【００８７】
Ｓ１２０：削除可能フラグＦ５が有効であるエントリＥｘが存在する場合、そのエントリＥｘの有効フラグＦ４を無効とする。
Ｓ１２１：一方、削除可能フラグＦ５が有効であるエントリＥｘが存在しない場合、一次キャッシュタグ１８の中で更新情報Ｆ６が最も古いエントリＥｘの有効フラグＦ４を無効とする。
【００８８】
Ｓ１２２：削除可能フラグＦ５または更新情報Ｆ６から特定のエントリＥｘの有効フラグＦ４を無効とするとそのエントリＥｘのＰＤＬキャッシュポインタＦ２が示すＰＤＬデータを破棄する。
Ｓ１２３：また、そのエントリＥｘのラスタキャッシュポインタＦ３が示すラスタデータを破棄する。
【００８９】
Ｓ１２４：一次キャッシュタグ１８は、有効フラグＦ４を無効としたエントリＥｘの削除情報４２４を二次キャッシュタグ２２へ出力する。
Ｓ１２５：二次キャッシュタグ２２は、削除情報４２４に一致するエントリＥｘの存否を確認する。一致するエントリＥｘが存在しない場合、処理をＳ１２９へ移行し、存在する場合、処理をＳ１２６へ移行する。
【００９０】
Ｓ１２６：削除情報４２４に一致するエントリＥｘが存在する場合、二次キャッシュタグ２２は、一致したエントリＥｘの有効フラグＦ１０を無効へ変更する。
Ｓ１２７：有効フラグＦ１０を無効とするとそのエントリＥｘのＰＤＬキャッシュポインタＦ８が示すＰＤＬデータを破棄する。
Ｓ１２８：また、そのエントリＥｘのラスタキャッシュポインタＦ９が示すラスタデータを破棄する。
【００９１】
Ｓ１２９：一次キャッシュタグ１８の特定のエントリＥｘの有効フラグＦ４を無効とし、そのエントリＥｘに関連付けられたＰＤＬデータおよびラスタデータが破棄されるか（Ｓ１２７、Ｓ１２８）、または一次キャッシュタグ１８に有効フラグＦ４が無効であるエントリＥｘの存在を確認した際（Ｓ１１８）に有効フラグＦ４が無効であるエントリＥｘが存在した場合は、一次キャッシュタグ１８の有効フラグＦ４が無効であるエントリＥｘのブロック識別子Ｆ１へブロック識別子４０３を格納し、有効フラグＦ４を有効とし、削除可能フラグＦ５を無効とし、更新情報Ｆ６に時刻４１４を格納する。
【００９２】
Ｓ１３０：一次ＰＤＬキャッシュ１９にカレントＰＤＬデータ４０４を保存し、その先頭位置をエントリＥｘのＰＤＬキャッシュポインタＦ２へ格納する。
Ｓ１３１：また、一次ラスタキャッシュ２０にカレントラスタデータ４２５を保存し、その先頭位置をエントリＥｘのラスタキャッシュポインタＦ３へ格納し、Ｓ１３２（図１５）へ移行する。
【００９３】
Ｓ１３２〜Ｓ１３６：第１の実施例の図６におけるＳ０２７〜Ｓ０３１と同様なのでその説明を省略する。
以上により、プリンタ１０１は、ホストコンピュータ２００から１回目の試し印刷が指示された場合の動作を終了する。
次に、プリンタ１０１がホストコンピュータ２００から一部修正された２回目の試し印刷が指示された場合の動作を説明する。
【００９４】
第１の実施例の図８と同様に、２回目の試し印刷のデータは、１回目の試し印刷のデータと線分の太さのみが異なるものとして説明する。
まず、２回目の試し印刷で１回目の試し印刷と変化のない文字や矩形等を抽出した場合の動作を説明する。
Ｓ１０１〜Ｓ１１２：上述した１回目の試し印刷の動作と同様のため、その説明を省略する。
【００９５】
Ｓ１１３：２回目の試し印刷では、一次キャッシュバッファ１７の一次キャッシュタグ１８はブロック識別子４０３と一致するエントリＥｘが存在するため、一次ヒット４１６は有効となり、処理をＳ１３８へ移行する。
Ｓ１３８：一次キャッシュバッファ１７は、一致したエントリＥｘのＰＤＬキャッシュポインタＦ２で示されるＰＤＬデータを一次保存ＰＤＬデータ４１７として一次データ比較部２５および二次ＰＤＬキャッシュ２３へ出力する。
【００９６】
Ｓ１３９：また、一次キャッシュバッファ１７は、一致したエントリＥｘのラスタキャッシュポインタＦ３で示されるラスタデータを一次保存ラスタデータ４１８としてキャッシュ選択部２８および二次ラスタキャッシュ２４へ出力する。
Ｓ１４０：一次データ比較部２５は、カレントＰＤＬデータ４０４と一次保存ＰＤＬデータ４１７とを比較し、一次一致結果４２２を出力する。そして、処理を図１４のＳ１４１へ移行する。
【００９７】
Ｓ１４１：文字や矩形はＰＤＬデータも同一であるので一次一致結果４２２は一致となり、処理をＳ１４２へ移行する。
Ｓ１４２：一次一致結果４２２が一致の場合、キャッシュ選択部２８が一次保存ラスタデータ４１８を保存ラスタデータ４２６として出力する。
Ｓ１４３：ラスタ選択部２９は、ラスタデータ４１０として保存ラスタデータ４２６を出力する。
【００９８】
Ｓ１４４：一次キャッシュバッファ１７は、試し印刷モード４１１が有効か否かを確認する。本説明の場合、有効であるので処理をＳ１４５へ移行する。
Ｓ１４５：一次キャッシュタグ１８は、ブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘの更新情報Ｆ６に時刻４１４を格納する。
以降の動作は、１回目の試し印刷におけるＳ０２７〜Ｓ０３１の動作と同様なのでその説明を省略する。
【００９９】
次に、２回目の試し印刷で１回目の試し印刷と太さのみ異なる線分を抽出した場合の動作を説明する。
第１の実施例と同様に、図７に示すように線分は、角度と線長でブロック識別子が定義されることから太さが異なってもブロック識別子は同一となる。
Ｓ１０１〜Ｓ１１３、Ｓ１３８〜Ｓ１４０：上述した動作と同様なのでその説明を省略する。
【０１００】
Ｓ１４１：一次データ比較部２５の比較により、カレントＰＤＬデータ４０４と一次保存ＰＤＬデータ４１７は線分の太さが異なることから一致せず、一次一致結果４２２は不一致となり、処理をＳ１４６へ移行する。
Ｓ１４６：一次一致結果４２２が不一致の場合、二次キャッシュバッファ２１は有効フラグＦ１０が有効、かつブロック識別子４０３と一致するブロック識別子Ｆ７を有するエントリＥｘが存在すれば二次ヒット４１９を有効にする。
【０１０１】
Ｓ１４７：１回目の試し印刷により、ブロック識別子４０３と一致するエントリＥｘは一次キャッシュバッファ１７だけに存在するため、二次ヒット４１９は無効になり、処理をＳ１５３へ移行する。
Ｓ１５３：ＰＤＬ変換部２７は、一次一致結果４２２および二次一致結果４２３の双方が不一致であるので、カレントＰＤＬデータ４０４からカレントラスタデータ４２５を生成し、一次キャッシュバッファ１７の一次ラスタキャッシュ２０およびラスタ選択部２９へ出力する。
【０１０２】
Ｓ１５４：ラスタ選択部２９は、一次一致結果４２２および二次一致結果４２３の双方が不一致であるので、ラスタデータ４１０としてカレントラスタデータ４２５を出力する。
Ｓ１５５：二次キャッシュバッファ２１は試し印刷モード４１１が有効であるか否かを確認し、本説明では有効なので処理を図１５のＳ１５６へ移行する。
【０１０３】
Ｓ１５６：二次キャッシュバッファ２１は、二次キャッシュタグ２２の有効フラグＦ１０が無効のエントリＥｘのブロック識別子Ｆ７へブロック識別子４０３を格納し、有効フラグＦ１０を有効とする。
Ｓ１５７：二次ＰＤＬキャッシュ２３へ一次保存ＰＤＬデータ４１７を保存し、その先頭位置をエントリＥｘのＰＤＬキャッシュポインタＦ８へ格納する。
【０１０４】
Ｓ１５８：二次ラスタキャッシュ２４へ一次保存ラスタデータ４１８を保存し、その先頭位置をエントリＥｘのラスタキャッシュポインタＦ９へ格納する。
Ｓ１５９：一次キャッシュバッファ１７は、一次キャッシュタグ１８でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘのＰＤＬキャッシュポインタＦ２で指定されるＰＤＬデータをカレントＰＤＬデータ４０４に置換する。
【０１０５】
Ｓ１６０：また、一次キャッシュバッファ１７は、一次キャッシュタグ１８でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘのラスタキャッシュポインタＦ３で指定されるラスタデータをカレントラスタデータ４０９に置換する。
Ｓ１６１：さらに、一次キャッシュバッファ１７は、一次キャッシュタグ１８の更新情報Ｆ６に時刻４１４を格納する。
【０１０６】
以降の動作は、１回目の試し印刷におけるＳ１３２〜Ｓ１３６の動作と同様なのでその説明を省略する。
次に、プリンタ１０１がホストコンピュータ２００から２回目の試し印刷に対して一部追加され、さらに一部が１回目の試し印刷の状態へと戻された正式印刷が指示された場合の動作を説明する。
【０１０７】
図１６（ａ）は１回目の試し印刷のデータを示し、図１６（ｂ）は２回目の試し印刷のデータを示し、図１６（ｃ）は正式印刷のデータを示している。図１６に示すように正式印刷のデータは、２回目の試し印刷のデータに新たな文字「Ｚ」が追加され、線分の太さが１回目の試し印刷と同じになっているものとして説明する。
Ｓ１０１〜Ｓ１０９：第１の実施例の図４における正式印刷の動作のＳ００１〜Ｓ００９と同様のため、その説明を省略する。
【０１０８】
Ｓ１１０〜Ｓ１１３、Ｓ１３８〜１４３：上述した２回目の試し印刷の動作と同様のため、その説明を省略する。
Ｓ１４４：一次キャッシュバッファ１７は、試し印刷モード４１１が有効か否かを確認する。本説明の場合、無効であるので処理をＳ１６２へ移行する。
Ｓ１６２：一次キャッシュバッファ１７は、一次キャッシュタグ１８でブロック識別子４０３とブロック識別子Ｆ１が一致したエントリＥｘの削除可能フラグＦ５を有効にし、図１５のＳ１６３へ移行する。
【０１０９】
Ｓ１６３：ドラフト選択部１６は、試し印刷モード４１１が無効であるため、ラスタデータ４１０を印刷イメージデータ４１２として出力する。
以降の動作は、２回目の試し印刷におけるＳ１３４〜Ｓ１３６の動作と同様なのでその説明を省略する。
次に、正式印刷で新たに追加された文字「Ｚ」が抽出された場合の動作を説明する。
【０１１０】
Ｓ１０１〜Ｓ１１６：１回目の試し印刷における動作と同様なのでその説明を省略する。
Ｓ１１７：試し印刷モード４１１が有効か否かが判定され、本説明では無効と判定されるため、一次キャッシュバッファ１７へのデータの追加を行うことなく処理を図１５のＳ１６３へ移行する。
【０１１１】
Ｓ１６３：ドラフト選択部１６は、試し印刷モード４１１が無効であるため、ラスタデータ４１０を印刷イメージデータ４１２として出力する。
なお、本実施例では、正式印刷の場合、一次キャッシュバッファ１７へのデータの追加を行わないようにするが、有効フラグＦ４が無効のエントリＥｘが存在するとき、削除可能フラグＦ５を有効にして追加するようにしてもよい。
【０１１２】
次に、正式印刷で１回目の試し印刷と同一の線分が抽出された場合の動作を説明する。
Ｓ１０１〜Ｓ１１３、Ｓ１３８〜Ｓ１４１：上述した２回目の試し印刷で変化のない文字や矩形等を抽出した場合の動作と同様のため、その説明を省略する。
Ｓ１４６：一次データ比較部２５の比較により、カレントＰＤＬデータ４０４と一次保存ＰＤＬデータ４１７は線分の太さが異なることから一致せず、一次一致結果４２２は不一致となる。
【０１１３】
二次キャッシュバッファ２１は、有効フラグＦ１０が有効、かつブロック識別子４０３と一致するブロック識別子Ｆ７を有するエントリＥｘが存在すれば二次ヒット４１９を有効にする。
Ｓ１４７：２回目の試し印刷により、１回目の試し印刷の線分に関するＰＤＬデータとラスタデータは二次キャッシュバッファ２１に保存されているため、二次ヒット４１９は有効になり、処理をＳ１４８へ移行する。
【０１１４】
Ｓ１４８：二次キャッシュバッファ２１は、ブロック識別子４０３と一致したブロック識別子Ｆ７を有するエントリＥｘのＰＤＬキャッシュポインタＦ８で示されるＰＤＬデータを二次保存ＰＤＬデータ４２０として出力する。
Ｓ１４９：また、二次キャッシュバッファ２１は、一致したエントリＥｘのラスタキャッシュポインタＦ９で示されるラスタデータを二次保存ラスタデータ４２１として出力する。
【０１１５】
Ｓ１５０：二次データ比較部２６は、カレントＰＤＬデータ４０４と二次保存ＰＤＬデータ４２０とを比較し、二次一致結果４２３を出力する。ここでは１回目の試し印刷の線分と正式印刷の線分は同一であるので二次一致結果４２３は一致となる。
Ｓ１５１：二次一致結果４２３は一致となり、処理をＳ１５２へ移行する。
Ｓ１５２：キャッシュ選択部２８は、一次一致結果４２２が不一致であるので保存ラスタデータ４２６として二次保存ラスタデータ４２１を出力し、処理をＳ１４３へ移行する。
【０１１６】
Ｓ１４３：ラスタ選択部２９は、ラスタデータ４１０として保存ラスタデータ４２６を出力する。
以降の動作は、上述したＳ１４４、Ｓ１６２、Ｓ１６３、Ｓ１３４〜Ｓ１３６と同様なのでその説明を省略する。
このようにプリンタ１０１は、複数回の試し印刷においてＰＤＬデータが異なる場合に二次キャッシュバッファへ過去のＰＤＬデータおよびそのＰＤＬデータに基づくラスタデータを保存するようにしたことにより、印刷データの構成ブロックが一時的に変更された後、さらに元に戻された場合であっても、試し印刷後の正式印刷では二次キャッシュバッファに保存されたラスタデータを用いて印刷を行うため、高速に印刷することができるようになる。
【０１１７】
また、ブロック識別子あたりの保存数を複数にしたことにより、ブロック識別子が同一で近似の構成ブロックがあった場合に片方の構成ブロックに保存により、他方の構成ブロックの保存が失われる問題を解決することができる。
なお、本実施例では、一次キャッシュバッファ１７に対して二次キャッシュバッファ２１を追加したものとして説明したが、二次キャッシュバッファ２１に対して三次キャッシュバッファを設け、図１４におけるＳ１４６からＳ１５１までの処理を入れ子の処理とすることにより多次キャッシュによるＰＤＬデータおよびラスタデータの保存が可能となる。
【０１１８】
また、本実施例では、Ｓ１１３のＰＤＬデータの比較において、ブロック識別子の比較を行うようにしたが、この構成に替え、ブロック抽出部４が構成ブロック単位でＰＤＬデータのハッシュ値を生成するようにし、このハッシュ値を比較対象とするようにしてもよいのは第１の実施例と同様である。
以上説明したように、第２の実施例では、第１の実施例の効果に加え、複数回の試し印刷においてＰＤＬデータが異なる場合に二次キャッシュバッファへ過去のＰＤＬデータおよびそのＰＤＬデータに基づくラスタデータを保存するようにしたことにより、印刷データの構成ブロックが一時的に変更された後、さらに元に戻された場合であっても、試し印刷後の正式印刷では二次キャッシュバッファに保存されたラスタデータを用いて印刷を行うため、高速に印刷することができるという効果が得られる。
【０１１９】
また、ブロック識別子あたりの保存数を複数にしたことにより、ブロック識別子が同一で近似の構成ブロックがあった場合に片方の構成ブロックの保存により、他方の構成ブロックの保存が失われる問題を解決することができるという効果が得られる。
なお、第１の実施例および第２の実施例において、本発明を画像形成装置としてのプリンタに適用するものとして説明したが、それに限られるものでなく画像複写装置や画像記録装置に適用することも可能である。
【図面の簡単な説明】
【０１２０】
【図１】第１の実施例における画像形成装置の構成を示すブロック図
【図２】第１の実施例における画像形成装置の接続形態を示す説明図
【図３】第１の実施例におけるキャッシュバッファの構成を示す説明図
【図４】第１の実施例における画像形成処理を示すフローチャート（１／３）
【図５】第１の実施例における画像形成処理を示すフローチャート（２／３）
【図６】第１の実施例における画像形成処理を示すフローチャート（３／３）
【図７】第１の実施例におけるブロック識別子の説明図
【図８】第１の実施例における１回目および２回目の試し印刷結果の説明図
【図９】第１の実施例における２回目の試し印刷結果と正式印刷結果の説明図
【図１０】第２の実施例における画像形成装置の構成を示すブロック図
【図１１】第２の実施例における二次キャッシュバッファの構成を示す説明図
【図１２】第２の実施例における画像形成処理を示すフローチャート（１／４）
【図１３】第２の実施例における画像形成処理を示すフローチャート（２／４）
【図１４】第２の実施例における画像形成処理を示すフローチャート（３／４）
【図１５】第２の実施例における画像形成処理を示すフローチャート（４／４）
【図１６】第２の実施例における１回目、２回目の試し印刷結果および正式印刷結果の説明図
【符号の説明】
【０１２１】
１    ホストインターフェイス
２    印刷機構部
３    受信バッファ
４    ブロック抽出部
５    キャッシュバッファ
６    データ比較部
７、２７  ＰＤＬ変換部
８    ドラフト変換部
９、２９  ラスタ選択部
１０  印刷モード判定部
１１  ラスタバッファ
１２  キャッシュタグ
１３  ＰＤＬキャッシュ
１４  ラスタキャッシュ
１６  ドラフト選択部
１７  一次キャッシュバッファ
１８  一次キャッシュタグ
１９  一次ＰＤＬキャッシュ
２０  一次ラスタキャッシュ
２１  二次キャッシュバッファ
２２  二次キャッシュタグ
２３  二次ＰＤＬキャッシュ
２４  二次ラスタキャッシュ
２５  一次データ比較部
２６  二次データ比較部
２８  キャッシュ選択部
１００、１０１  プリンタ
２００  ホストコンピュータ
３００  インターフェイスケーブル
【図１】
2010120193.tif 000003
【図２】
2010120193.tif 000004
【図３】
2010120193.tif 000005
【図４】
2010120193.tif 000006
【図５】
2010120193.tif 000007
【図６】
2010120193.tif 000008
【図７】
2010120193.tif 000009
【図８】
2010120193.tif 000010
【図９】
2010120193.tif 000011
【図１０】
2010120193.tif 000012
【図１１】
2010120193.tif 000013
【図１２】
2010120193.tif 000014
【図１３】
2010120193.tif 000015
【図１４】
2010120193.tif 000016
【図１５】
2010120193.tif 000017
【図１６】
2010120193.tif 000018