(57)【要約】【課題】ページ記述言語（ＰＤＬ）に従って描画処理を行う際に、当該描画処理における時間の短縮を実現できるようにする。【解決手段】入力されたＰＤＬデータに従って画像データを形成する画像形成部１２０と、ＰＤＬデータと画像データとを関連付けて格納する格納部１３１と、画像形成時に、描画対象となるＰＤＬデータと格納部１３１に格納されているＰＤＬデータとを比較する判定部１３２と、判定部１３２による判定結果に基づいて、出力する画像データを、画像形成部１２０において形成される画像データ及び格納部１３１に格納されている画像データの中から選択するセレクタ１５０とを具備する。【選択図】図１
2008018577.tif 000002
【特許請求の範囲】
【請求項１】
入力されたページ記述言語に係るデータに従って描画処理を行い、画像データを形成する画像形成手段と、
前記ページ記述言語に係るデータと前記画像データとを関連付けて格納する格納手段と、
画像形成時に、描画対象となるページ記述言語に係るデータと前記格納手段に格納されているページ記述言語に係るデータとを比較する比較手段と、
前記比較手段による比較結果に基づいて、前記画像形成手段において形成される画像データ及び前記格納手段に格納されている画像データの中から選択する選択手段と、
前記比較手段による比較結果に基づいて、当該描画対象となるページ記述言語に係るデータと当該データに基づき前記画像形成手段で形成された画像データとを関連付けて、前記格納手段に格納する制御を行う制御手段と
を有することを特徴とする画像形成装置。
【請求項２】
前記ページ記述言語に係るデータを、当該データにおける描画領域を複数の領域に分割した各分割領域毎のページ記述言語に係るデータに変換する変換手段と更に有し、
前記格納手段には、前記変換手段で変換された前記各分割領域のページ記述言語に係るデータと当該データに基づき前記画像形成手段で形成された画像データとが関連付けられて格納されていることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記分割領域は、１ページを２方向で区切った領域であることを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記分割領域は、１ページを単一方向で区切った領域を含むことを特徴とする請求項２に記載の画像形成装置。
【請求項５】
前記比較手段は、前記ページ記述言語に係るデータの部分比較を行う第１の比較部と、前記ページ記述言語に係るデータの全体比較を行う第２の比較部とを含み、
前記第１の比較部は、前記描画対象となるページ記述言語に係るデータにおける部分データと、前記格納手段に格納されているページ記述言語に係るデータにおける部分データとを比較し、
前記第２の比較部は、前記第１の比較部による比較結果、前記部分データが一致していると判定された場合に、前記描画対象となるページ記述言語に係るデータと前記格納手段に格納されているページ記述言語に係るデータとの全体比較を行うことを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
入力されたページ記述言語に係るデータに従って描画処理を行い、画像データを形成する画像形成ステップと、
前記ページ記述言語に係るデータと前記画像データとを関連付けて格納手段に格納する格納ステップと、
画像形成時に、描画対象となるページ記述言語に係るデータと前記格納手段に格納されているページ記述言語に係るデータとを比較する比較ステップと、
前記比較ステップによる比較結果に基づいて、出力する画像データを、前記画像形成ステップにおいて形成される画像データ及び前記格納手段に格納されている画像データの中から選択する選択ステップと、
前記比較ステップによる比較結果に基づいて、当該描画対象となるページ記述言語に係るデータと当該データに基づき前記画像形成ステップで形成された画像データとを関連付けて、前記格納手段に格納する制御を行う制御ステップと
を有することを特徴とする画像形成方法。
【請求項７】
請求項６に記載の画像形成方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたページ記述言語に係るデータに従って描画処理を行い、画像データを形成する画像形成装置、画像形成方法、及び、当該画像形成方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来の画像形成装置において、PostScriptやＰＤＦ等のページ記述言語（以下、「ＰＤＬ」と称する）で記述された印刷データが入力されると、その印刷データが解釈されて各ページの画像データが生成される。
【０００３】
ここで、入力されるＰＤＬは、複数種類のオブジェクト（描画オブジェクト）の集合として構成することができ、そのオブジェクトとしては、図形、テキスト、その他の画像がある。また、出力される画像データは、１ページのラスタ画像、又は圧縮形式の画像等である。
【０００４】
画像形成装置から出力された画像は、必要に応じてページ合成や回転等の画像処理が行われた後、プリンタエンジンに送出されて印刷可能となる。画像形成装置による印刷データの解釈では、その内容の複雑さにもよるが、一般に多くの演算が必要である。
【０００５】
印刷処理の高速化を図るためには、画像生成までの時間をできる限り削減する必要がある。また、画像生成にかかる時間を削減するためには、必要な画像生成過程を並列化する方法が考えられる。そして、画像生成の並列化の単位として、複数ページの画像データを並列に処理する方法や、画像形成装置が出力したラスタ画像をタイル分割して処理する方法がある。
【０００６】
しかしながら、これらの方法だけでは、処理負荷の重い画像形成処理が高速化されない。このため、画像形成処理の高速化手法として画像形成処理の各過程を並列化する方法が考えられている。
【０００７】
例えば、下記の特許文献１には、線又は短冊状に描画対象を分割し、分割した領域に対して並列処理を行う描画処理装置が開示されている。また、下記の特許文献２には、描画対象となる２次元領域を複数のタイルに分割する画像処理装置が開示されている。
【０００８】
【特許文献１】特開平９−１６７２４２号公報
【特許文献２】特開平４−１７０６８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術では、均等なタイル単位の描画情報に分割して並列処理をすることでページ単位の描画時間は短縮されるが、１タイル領域の描画時間は短縮されていない。また、画像形成処理時に、タイル領域内のデータは考慮されていないため、異なるタイル領域で同じ描画データを生成する場合も重複して同じ描画処理が行われ、描画時間がかかっていた。
【００１０】
本発明は前述の問題点に鑑みてなされたものであり、ページ記述言語（ＰＤＬ）に従って描画処理を行う際に、当該描画処理における時間の短縮を実現する画像形成装置、画像形成方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述した課題を解決するために、本発明は、入力されたページ記述言語に係るデータに従って描画処理を行い、画像データを形成する画像形成手段と、前記ページ記述言語に係るデータと前記画像データとを関連付けて格納する格納手段と、画像形成時に、描画対象となるページ記述言語に係るデータと前記格納手段に格納されているページ記述言語に係るデータとを比較する比較手段と、前記比較手段による比較結果に基づいて、前記画像形成手段において形成される画像データ及び前記格納手段に格納されている画像データの中から選択する選択手段と、前記比較手段による比較結果に基づいて、当該描画対象となるページ記述言語に係るデータと当該データに基づき前記画像形成手段で形成された画像データとを関連付けて、前記格納手段に格納する制御を行う制御手段とを有する画像形成装置等を提供する。
【発明の効果】
【００１２】
本発明によれば、ページ記述言語（ＰＤＬ）に従って描画処理を行う際に、描画対象となるページ記述言語に係るデータと、過去に描画処理されて格納手段に格納されているページ記述言語に係るデータとを比較して、当該比較結果に基づいて、処理時間の大きい描画処理に替えて格納手段に格納されている画像データを出力することにより、重複する描画処理を省略することができ、描画処理時間の短縮を実現することができる。
【００１３】
また、比較手段において、各データの全体比較を行う前に、ビット比較などのハードウェアで高速に比較が行える部分比較を行うことにより、部分比較において一致しないと判定されたデータについては、負荷の重い全体比較を行う必要が無くなるため、描画処理時間を更に短縮することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照しながら本発明の実施形態について説明する。
【００１５】
図１は、本発明の実施形態に係る画像形成装置の概略構成図である。
画像形成装置１０１は、例えば、PostScriptやＰＤＦ等のＰＤＬで記述された印刷データ（ＰＤＬデータ）を入力し、当該ＰＤＬデータに基づいて画像データを形成する。画像形成装置１０１は、バス１０４に接続されており、バス１０４を介してＰＤＬデータの入力と、ＰＤＬデータに基づいて形成された画像データの出力を行う。
【００１６】
バス１０４には、当該画像形成装置１０１に加え、ＵＳＢに代表される通信インターフェース（Ｉ／Ｆ）１００、ＰＤＬデータや画像データを格納するメモリ１０２、及び、システム全体の制御やＰＤＬデータ、画像データの処理などを行う制御装置１０３が接続されている。なお、通信Ｉ／Ｆ１００は、ＵＳＢに限らず、例えば、ＬＡＮ（ローカルエリアネットワーク）インターフェースや無線インターフェースであってもよい。
【００１７】
画像形成装置１０１は、タイル分割部１１０と、画像形成部１２０と、ＰＤＬキャッシュ部１３０と、ＰＤＬ部分比較部１４０と、セレクタ１５０と、バスアクセス調停部１６０を有して構成されている。
【００１８】
タイル分割部１１０は、入力されたＰＤＬデータにおける描画命令を、格子状の領域（以下、この格子状の領域を「タイル」と称する）毎に分割する。画像形成部１２０は、タイル分割部１１０でタイル毎に分割されたＰＤＬデータに則して画像データを形成する。
【００１９】
ＰＤＬキャッシュ部１３０は、過去に画像形成部１２０に入力されたＰＤＬデータと当該画像形成部１２０で形成された画像データとをキャッシュするものであり、ＰＤＬキャッシュデータ格納部１３１とＰＤＬ一致判定部１３２とを有して構成されている。
【００２０】
ＰＤＬキャッシュデータ格納部１３１には、過去に画像形成部１２０で処理を行ったＰＤＬデータと当該画像形成部１２０で形成された画像データとが関連付けられて格納されている。ＰＤＬ一致判定部１３２は、画像形成部１２０に現在入力されたＰＤＬデータについて、ＰＤＬキャッシュデータ格納部１３１に格納されているＰＤＬデータと完全に一致するものがあるか否かを判定する。本実施形態のＰＤＬ一致判定部１３２では、ＰＤＬデータにおける座標データ、コマンドなどの完全一致を判定するため、ＰＤＬデータの完全一致をソフトウェア処理で判定する。
【００２１】
ＰＤＬ部分比較部１４０は、ＰＤＬ一致判定部１３２によるＰＤＬデータの完全一致を判定する前に、当該ＰＤＬデータが部分的に一致しているか否かを判定するものである。このＰＤＬ部分比較部１４０は、ＰＤＬ部分データ格納部１４１と、比較器１４２と、エンコーダ１４３を有して構成されている。
【００２２】
ＰＤＬ部分データ格納部１４１は、過去に画像形成部１２０で処理されたＰＤＬデータに係る部分データ（ＰＤＬ部分データ）を格納する。比較器１４２は、画像形成部１２０に現在入力されたＰＤＬデータに係るＰＤＬ部分データと、ＰＤＬ部分データ格納部１４１に格納されているＰＤＬ部分データとを比較し、一致するものがあるか否かを判定する。エンコーダ１４３は、比較器１４２における判定結果の情報をエンコードしてＰＤＬ一致判定部１３２に出力する。
【００２３】
ここで、ＰＤＬ部分データとしては、例えば、PostScriptなどの座標データが挙げられる。本実施形態では、ＰＤＬ部分データとして、PostScriptの座標データを適用した場合について説明を行う。また、本実施形態におけるＰＤＬ部分比較部１４０は、ＰＤＬ部分データの一致の判定を高速に行うため、ＰＤＬ部分データである座標データをビット比較するハードウェアで構成される。
【００２４】
セレクタ１５０は、ＰＤＬ一致判定部１３２の判定結果に基づいて、当該画像形成装置１０１から出力する画像データについて、画像形成部１２０で形成された画像データとするか、ＰＤＬキャッシュデータ格納部１３１の画像データとするかを選択する。バスアクセス調停部１６０は、バス１０４のアクセスにおける調停を行う。
【００２５】
図２は、本発明の実施形態に係る画像形成装置で読み込まれるＰＤＬデータの一例を示す図である。図２には、ＰＤＬデータ２０１の一例として、PostScirpt言語で記述されたＰＤＬデータを示している。図３は、図２に示すＰＤＬデータによって描画される画像データを示す図である。
【００２６】
図２に示されたＰＤＬデータ２０１において２０２〜２０５は、ＰＤＬデータにおける描画命令群であり、それぞれ図３に示す線分の描画オブジェクト３１０〜３１３を描画する。
【００２７】
描画命令２０２に含まれる「１６  ７２  moveto」は、始点座標を決定するコマンドである。コマンド「１６  ７２  moveto」では、始点座標が（１６，７２）に設定される。また、次のコマンド「１２８  ７２  lineto」は、始点（１６，７２）から終点（１２８，７２）までの線分に係るオブジェクトを描画する。
【００２８】
描画命令２０２と同様に、描画命令２０３は、始点（１６，６８）から終点（１２８，６８）までの線分に係るオブジェクトを描画する。
【００２９】
描画命令２０４は、描画命令２０２及び２０３と同様に、線分のオブジェクトを描画するが、コマンド「６４  １６  rline」は、始点から相対座標で線分のオブジェクト３１２を描画する。この描画命令２０４では、始点（０，３２）から相対座標で（６４，１６）の線分オブジェクトを描画する。この場合、終点座標は、（０＋６４、３２＋１６）、即ち（６４，４８）となる線分オブジェクトを描画する。
【００３０】
描画命令２０４と同様に、描画命令２０５は、始点（０，３２）から終点（６４、４０）の線分オブジェクトを描画する。
【００３１】
次いで、画像形成装置１０１における画像形成方法について説明する。
図４は、本発明の実施形態に係る画像形成装置による画像形成方法の手順を示したフローチャートである。
【００３２】
まず、図４のステップ４０１において、画像形成装置１０１は、通信Ｉ／Ｆ１００を介して入力されたＰＤＬデータの読み込みを行う。具体的に、通信Ｉ／Ｆ１００から転送されたＰＤＬデータはメモリ１０２に格納され、画像形成装置１０１は、メモリ１０２に格納されたＰＤＬデータの描画命令の読み込みを行う。
【００３３】
続いて、ステップ４０２において、タイル分割部１１０は、ステップ４０１で読み込まれたＰＤＬデータにおける描画命令を各タイル領域毎に分割する。本実施形態では、描画命令における描画領域を、Ｘ軸方向３２ピクセル、Ｙ軸方向３２ピクセルの矩形状のタイルに分割する。なお、タイルは、矩形以外の形状であってもよい。
【００３４】
以下に、ステップＳ４０２における具体的な処理について説明する。
３２×３２ピクセルのタイルに分割すると、図３に示すように、描画領域３００は、矩形状のタイル３０１〜３０６、・・・に分割される。また、それぞれのタイルは、Ｘ軸方向及びＹ軸方向のタイル番号からなる［ｘ，ｙ］で示される。具体的に、タイル３０１は［０，２］、タイル３０２は［１，２］、タイル３０３は［２，２］、タイル３０４は［３，２］、タイル３０５は［０，１］、タイル３０６は［１，１］、・・・で示される。図２に示した描画領域３００全体を描画するＰＤＬデータから、タイル領域を描画するＰＤＬデータへの変換は、簡単な座標計算により行うことができる。
【００３５】
図５は、図２に示すＰＤＬデータを、各タイル毎に分割した際のＰＤＬデータを示す図である。分割されたＰＤＬデータ５０１〜５０６は、それぞれタイル３０１〜３０６を描画するデータである。
【００３６】
まず、ステップＳ４０２では、各タイル内に存在する描画オブジェクトの判定を行う。具体的に、各描画オブジェクトにおいて各タイルにおける境界との交差判定を行い、交差していれば、当該描画オブジェクトが当該タイル内に存在すると判定する。タイル領域内に存在している描画オブジェクトを描画するＰＤＬデータは、当該タイルを描画するコマンド群に変換される必要がある。具体的に、タイル３０１を描画するＰＤＬデータを生成する手順を以下に示す。
【００３７】
まず、タイル３０１の領域内に描画オブジェクトが存在するか否か判定する。
線分の描画オブジェクト３１０は、描画命令２０２のコマンド群から、以下の式（１）及び（２）で表すことができる。
【００３８】
Ｙ＝７２                    ・・・（１）
１６≦Ｘ＜１２８            ・・・（２）
【００３９】
また、タイル３０１における境界である４つの線分は、以下の式（３）及び（４）、式（５）及び（６）、式（７）及び（８）、並びに、式（９）及び（１０）で表すことができる。
【００４０】
０≦Ｘ＜３２                ・・・（３）
Ｙ＝６４                    ・・・（４）
０≦Ｘ＜３２                ・・・（５）
Ｙ＝９６                    ・・・（６）
Ｘ＝０                      ・・・（７）
６４≦Ｙ＜９６              ・・・（８）
Ｘ＝３２                    ・・・（９）
６４≦Ｙ＜９６              ・・・（１０）
【００４１】
これらの式から線分の描画オブジェクト３１０とタイル３０１の境界である４つの線分との交点を計算すると、式（１）及び（２）と式（９）及び（１０）から、交点（３２，７２）が算出される。そして、タイル３０１の境界との交点が存在することから、線分の描画オブジェクト３１０は、タイル３０１内に存在することが分かる。
【００４２】
次に、描画領域３００内に存在する描画オブジェクトのＰＤＬデータを、タイル領域のＰＤＬデータへ変換を行う。
【００４３】
まず、図２に示すＰＤＬデータ２０１において、描画命令２０２のうち、線分の描画オブジェクトの始点（１６，７２）を表している「１６  ７２  moveto」の変換を行う。タイル領域内に頂点がある場合には、以下の式で変換を行う。
【００４４】
Ｘ＝頂点のＸ座標−タイル番号×３２      ・・・（１１）
Ｙ＝頂点のＹ座標−タイル番号×３２      ・・・（１２）
【００４５】
始点（１６，７２）は、タイル３０１に存在するので、以上の式で頂点の変換が行える。具体的な演算結果を以下に示す。
【００４６】
Ｘ＝１６−０×３２＝１６                ・・・（１３）
Ｙ＝７２−２×３２＝８                  ・・・（１４）
【００４７】
上記の演算から頂点が算出でき、タイル３０１におけるコマンド「１６  ８  moveto」が得られる。
【００４８】
次に、描画命令２０２のうち、「１２８  ７２  lineto」の変換を行う。この「１２８  ７２  lineto」は、設定された始点から終点（１２８，７２）まで直線を引くコマンドである。
【００４９】
この終点（１２８，７２）は、タイル３０１内に存在しないため、交点計算で求めたタイル３０１内の座標へ変換する。具体的に、式（１）及び（２）と式（９）及び（１０）から算出した交点（３２，７２）を、式（１１）及び（１２）を用いて変換する。以下に、その演算結果を示す。
【００５０】
Ｘ＝３２−０×３２＝３２                  ・・・（１５）
Ｙ＝７２−２×３２＝８                    ・・・（１６）
【００５１】
上記の演算からタイル３０１内の終点が算出でき、タイル３０１におけるコマンド「３２  ８  lineto」が得られる。
【００５２】
線分の描画オブジェクト３１１を描画する描画命令２０３においても、同様にして変換を行うと、以下のＰＤＬデータが得られる。
【００５３】
「１６  ４  moveto」
「３２  ４  lineto」
【００５４】
続いて、線分の描画オブジェクト３１２の描画命令２０４についても同様に変換行う。描画命令２０４は、前述の描画命令２０３と同じく線分オブジェクトを描画するコマンドであるが、「rline」は、始点から相対座標で線分オブジェクトを描画する。描画命令２０４の「６４  １６  rline」は、始点（０，３２）から相対座標で（６４，１６）の線分の描画オブジェクトを描画する。この際、線分の描画オブジェクトは、以下に示す式で表される。
【００５５】
Ｙ＝（１６／６４）×Ｘ
０≦Ｘ≦６４
【００５６】
上述の式から、タイル３０１の境界である４つの線分の交点を計算すると、交点が存在しないことがわかる。交点がないので、タイル３０１には、線分の描画オブジェクト３１１が存在しないことが分かる。よって、描画オブジェクト３１２の制御命令２０４は、タイル３０１を描画する命令には反映されない。
【００５７】
同様に、描画オブジェクト３１３も交点計算から、タイル３０１内に存在しないことが分かる。
【００５８】
以上に示した処理により、タイル３０１におけるＰＤＬデータ５０１が生成される。同様にして各タイル３０２〜３０６に対して、ＰＤＬデータ２０１の分割処理を行い、各タイルを描画するＰＤＬデータ５０２〜５０６を得る。
【００５９】
ここで、描画処理の手順を示した図４のフローチャートの説明に戻る。
ステップＳ４０２において、ＰＤＬデータ２０１における描画命令を各タイル毎に分割してＰＤＬデータ５０１〜５０６の生成が行われると、ステップ４０３に進む。
【００６０】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、分割されたＰＤＬデータ５０１〜５０６の中から、１つのＰＤＬデータを選択する。ここで、各ＰＤＬデータは、タイル毎に分割されているので、互いに依存関係を持つことはない。そのため、各タイルにおけるＰＤＬデータは、任意の順序で描画処理を行うことができる。本実施形態では、タイル３０１、３０２、３０３、・・・の順で、即ち、ＰＤＬデータ５０１、５０２、５０３、・・・の順で描画処理を行う。よって、本実施形態では、まず、ステップ４０３において、タイル３０１のＰＤＬデータ５０１が選択されて、ステップ４０４に進む。
【００６１】
ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。本実施形態では、このＰＤＬ部分データの一致の判定を、ＰＤＬデータにおける座標データの２つのオペランドが一致することを判定する。例えば、ＰＤＬデータ５０１の描画命令「１６  ８  moveto」については、（１６，８）の座標データの比較が行われる。
【００６２】
図６は、ＰＤＬ部分データ格納部１４１に保存されているＰＤＬ部分データ（座標データ）の各状態における遷移を示す図である。本実施形態では、ＰＤＬ部分データ格納部１４１には、６００、６０１及び６０２からなる３つのエントリーが設けられており、保存できるＰＤＬ部分データは３つとなっている。なお、このエントリーの数は、３つに限らず、それ以上であっても、それ以下であってもよい。全てのエントリーが使用されている場合（図６に示す例では、図６（ｄ）の状態４の場合）には、ＰＤＬ部分データのリプレースが行われる。
【００６３】
本例では、描画対象であるタイル３０１を描画処理する以前に、描画処理されたタイルがないため、ＰＤＬ部分データ格納部１４１には、現在、ＰＤＬ部分データである座標データは保存されていない（図６（ａ）に示す状態１）。よって、ステップＳ４０４において、ＰＤＬ部分データ格納部１４１の座標データと、入力されたＰＤＬデータにおける座標データとが一致しないため、ステップ４０５に進むことになる。
【００６４】
ステップ４０５において、画像形成部１２０は、タイル毎に分割されたＰＤＬデータ５０１に従って描画処理を行い、タイル３０１の画像データを生成する。
【００６５】
続いて、ステップ４０６において、ＰＤＬ部分データ格納部１４１及びＰＤＬキャッシュデータ格納部１３１に保存されているデータの更新が行われる。この更新処理と共に、セレクタ１５０を介してタイル３０１の画像データが画像形成装置１０１から出力される。
【００６６】
具体的に、ＰＤＬ部分データ格納部１４１には、図６（ｂ）に示す状態２のように、ステップ４０５で描画処理されたタイル３０１のＰＤＬデータ５０１における座標データ（ＰＤＬ部分データ）６１１がエントリー０（６００）保存される。より具体的には、ＰＤＬ部分データ６１１として、（１６，８）、（３２，８）、（１６，４）及び（３２，４）の座標データが保存され、ＰＤＬ部分データ格納部１４１は、状態２に遷移する。
【００６７】
図７は、ＰＤＬキャッシュデータ格納部１３１に保存されているＰＤＬデータ及び画像データの各状態における遷移を示す図である。本実施形態では、ＰＤＬキャッシュデータ格納部１３１には、７００、７０１及び７０２からなる３つのエントリーが設けられており、保存できるＰＤＬデータ及び画像データの組は３つとなっている。なお、このエントリーの数は、３つに限らず、それ以上であっても、それ以下であってもよい。全てのエントリーが使用されている場合（図７に示す例では、図７（ｄ）の状態４の場合）には、保存するデータのリプレースが行われる。
【００６８】
ステップＳ４０６の処理により、ＰＤＬキャッシュデータ格納部１３１には、図７（ｂ）に示す状態２のように、タイル３０１におけるＰＤＬ５０１と、描画処理された画像データ７２１とが関連付けられてエントリー０（７００）に保存される。
【００６９】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定する。本例の場合、未だタイル３０２以降の描画処理が終了していないので、ステップ４０３に戻る。
【００７０】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、次いで、タイル３０２のＰＤＬデータ５０２を選択する。
【００７１】
続いて、ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。この際、ＰＤＬ部分データ格納部１４１には、前回、描画処理されたＰＤＬ部分データ６１１が保存されている。ＰＤＬ部分データ格納部１４１に保存されている部分データ６１１は、（１６，８）、（３２，８）、（１６，４）及び（３２，４）の座標データである。これに対して、描画対象のＰＤＬデータ５０２におけるＰＤＬ部分データは、（０，８）、（３２，８）、（０，４）及び（３２，４）の座標データであるため、ステップＳ４０４では不一致と判定され、ステップＳ４０５に進む。
【００７２】
続いて、ステップＳ４０５において、画像形成部１２０は、ＰＤＬデータ５０２に従って描画処理を行い、タイル３０２の画像データを生成する。
【００７３】
続いて、ステップ４０６において、ＰＤＬ部分データ格納部１４１及びＰＤＬキャッシュデータ格納部１３１に保存されているデータの更新が行われる。この更新処理と共に、セレクタ１５０を介してタイル３０２の画像データが画像形成装置１０１から出力される。
【００７４】
具体的に、ＰＤＬ部分データ格納部１４１には、図６（ｃ）に示す状態３のように、ステップ４０５で描画処理されたタイル３０２のＰＤＬデータ５０２における座標データ（ＰＤＬ部分データ）６１２がエントリー１（６０１）に保存される。より具体的には、ＰＤＬ部分データ６１２として、（０，８）、（３２，８）、（０，４）及び（３２，４）の座標データが保存され、ＰＤＬ部分データ格納部１４１は、状態３に遷移する。
【００７５】
一方、ＰＤＬキャッシュデータ格納部１３１には、図７（ｃ）に示す状態３のように、タイル３０２におけるＰＤＬ５０２と、描画処理された画像データ７２２とが関連付けられてエントリー１（７０１）に保存される。
【００７６】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定する。本例の場合、未だタイル３０３以降の描画処理が終了していないので、ステップ４０３に戻る。
【００７７】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、次いで、タイル３０３のＰＤＬデータ５０３を選択する。
【００７８】
続いて、ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。この際、ＰＤＬ部分データ格納部１４１には、前回、描画処理されたＰＤＬ部分データ６１１及び６１２が保存されている。描画対象のＰＤＬデータ５０３におけるＰＤＬ部分データは、（０，８）、（３２，８）、（０，４）及び（３２，４）の座標データであり、これはＰＤＬ部分データ格納部１４１に保存されているＰＤＬ部分データ６１２と一致する。よって、ステップＳ４０４では一致すると判定され、ステップＳ４０７に進む。
【００７９】
続いて、ステップＳ４０７において、ＰＤＬ一致判定部１３２は、ＰＤＬキャッシュデータ格納部１３１に、描画対象のＰＤＬデータ５０３と一致するＰＤＬデータが存在するか否かを判定する。具体的に、当該ＰＤＬデータ５０３と、ＰＤＬキャッシュデータ格納部１３１に保存されているＰＤＬデータ５０１及び５０２との一致を判定する。この際、ＰＤＬデータ５０２とＰＤＬデータ５０３とは全て一致するので、ステップ４０８に進む。
【００８０】
ステップＳ４０８において、セレクタ１５０は、タイル３０３の画像データとして、ＰＤＬキャッシュデータ格納部１３１に保存される画像データ７２２を選択し、画像形成装置１０１から出力する。この際、等しいＰＤＬデータからは等しい画像データが得られるので、画像形成部１２０によるＰＤＬデータ５０３の描画処理は行われない。
【００８１】
このように、過去に描画処理が行われたタイルの画像データを保存しておき、同じＰＤＬデータの描画命令における描画処理を省略することで、描画処理実行時間の短縮を図ることが可能となる。
【００８２】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定する。本例の場合、未だタイル３０４以降の描画処理が終了していないので、ステップ４０３に戻る。
【００８３】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、次いで、タイル３０４のＰＤＬデータ５０４を選択する。
【００８４】
続いて、ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。この際、ＰＤＬ部分データ格納部１４１には、描画処理されたＰＤＬ部分データ６１１及び６１２が保存されている。描画対象のＰＤＬデータ５０４におけるＰＤＬ部分データは、（０，８）、（３２，８）、（０，４）及び（３２，４）の座標データであり、これはＰＤＬ部分データ格納部１４１に保存されているＰＤＬ部分データ６１２と一致する。よって、ステップＳ４０４では一致すると判定され、ステップＳ４０７に進む。
【００８５】
続いて、ステップＳ４０７において、ＰＤＬ一致判定部１３２は、ＰＤＬキャッシュデータ格納部１３１に、描画対象のＰＤＬデータ５０４と一致するＰＤＬデータが存在するか否かを判定する。具体的に、当該ＰＤＬデータ５０４と、ＰＤＬキャッシュデータ格納部１３１に保存されているＰＤＬデータ５０１及び５０２との一致を判定する。この際、ＰＤＬデータ５０２とＰＤＬデータ５０４とは全て一致するので、ステップ４０８に進む。
【００８６】
ステップＳ４０８において、セレクタ１５０は、タイル３０４の画像データとして、ＰＤＬキャッシュデータ格納部１３１に保存される画像データ７２２を選択し、画像形成装置１０１から出力する。この際、等しいＰＤＬデータからは等しい画像データが得られるので、画像形成部１２０によるＰＤＬデータ５０４の描画処理は行われない。
【００８７】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定する。本例の場合、未だタイル３０５以降の描画処理が終了していないので、ステップ４０３に戻る。
【００８８】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、次いで、タイル３０５のＰＤＬデータ５０５を選択する。
【００８９】
続いて、ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。この際、ＰＤＬ部分データ格納部１４１には、描画処理されたＰＤＬ部分データ６１１及び６１２が保存されている。描画対象のＰＤＬデータ５０５におけるＰＤＬ部分データは、（０，０）、（３２，８）、（０，０）及び（３２，４）の座標データであり、これはＰＤＬ部分データ６１１及び６１２と一致しない。よって、ステップＳ４０４では一致しないと判定され、ステップＳ４０５に進む。
【００９０】
ステップ４０５において、画像形成部１２０は、タイル毎に分割されたＰＤＬデータ５０５に従って描画処理を行い、タイル３０５の画像データを生成する。
【００９１】
続いて、ステップ４０６において、ＰＤＬ部分データ格納部１４１及びＰＤＬキャッシュデータ格納部１３１に保存されているデータの更新が行われる。この更新処理と共に、セレクタ１５０を介してタイル３０５の画像データが画像形成装置１０１から出力される。
【００９２】
具体的に、ＰＤＬ部分データ格納部１４１には、図６（ｄ）に示す状態４のように、ステップ４０５で描画処理されたタイル３０５のＰＤＬデータ５０５における座標データ（ＰＤＬ部分データ）６１３がエントリー２（６０２）に保存される。より具体的には、ＰＤＬ部分データ６１３として、（０，０）、（３２，８）、（０，０）及び（３２，４）の座標データが保存され、ＰＤＬ部分データ格納部１４１は、状態４に遷移する。
【００９３】
一方、ＰＤＬキャッシュデータ格納部１３１には、図７（ｄ）に示す状態４のように、タイル３０５におけるＰＤＬ５０５と、描画処理された画像データ７２５とが関連付けられてエントリー２（７０２）に保存される。
【００９４】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定する。本例の場合、未だタイル３０６以降の描画処理が終了していないので、ステップ４０３に戻る。
【００９５】
ステップＳ４０３において、ＰＤＬ部分比較部１４０は、次いで、タイル３０６のＰＤＬデータ５０６を選択する。
【００９６】
続いて、ステップ４０４において、ＰＤＬ部分比較部１４０は、過去に描画処理を行ったＰＤＬデータと描画対象のＰＤＬデータとの部分データ（ＰＤＬ部分データ）が一致するか否かを判定する。この際、ＰＤＬ部分データ格納部１４１には、描画処理されたＰＤＬ部分データ６１１、６１２及び６１３が保存されている。描画対象のＰＤＬデータ５０６におけるＰＤＬ部分データは、（０，８）、（３２，８）、（０，４）及び（３２，４）の座標データであり、これはＰＤＬ部分データ格納部１４１に保存されているＰＤＬ部分データ６１２と一致する。よって、ステップＳ４０４では一致すると判定され、ステップＳ４０７に進む。
【００９７】
続いて、ステップＳ４０７において、ＰＤＬ一致判定部１３２は、ＰＤＬキャッシュデータ格納部１３１に、描画対象のＰＤＬデータ５０６と一致するＰＤＬデータが存在するか否かを判定する。具体的に、当該ＰＤＬデータ５０６と、ＰＤＬキャッシュデータ格納部１３１に保存されているＰＤＬデータ５０１、５０２及び５０５との一致を判定する。この際、ＰＤＬデータ５０２とＰＤＬデータ５０６について比較すると、描画対象のＰＤＬデータ５０２が「３２  ８  rlineto」であるのに対し、保存されているＰＤＬデータ５０６は「３２  ８  lineto」となっており、全ては一致していない。ＰＤＬ部分データである座標データのみが一致しても、ＰＤＬデータの全てが一致しないと、等価な画像データは得られないので、入力されたＰＤＬデータに従って画像データを生成する必要がある。そこで、処理はステップＳ４０５に進む。
【００９８】
ステップ４０５において、画像形成部１２０は、タイル毎に分割されたＰＤＬデータ５０６に従って描画処理を行い、タイル３０６の画像データを生成する。
【００９９】
続いて、ステップ４０６において、ＰＤＬ部分データ格納部１４１及びＰＤＬキャッシュデータ格納部１３１に保存されているデータの更新が行われる。この更新処理と共に、セレクタ１５０を介してタイル３０６の画像データが画像形成装置１０１から出力される。
【０１００】
この更新処理を行う際、本実施形態では、ＰＤＬ部分データ格納部１４１及びＰＤＬキャッシュデータ格納部１３１のエントリーは３つであり、全てのエントリーにデータが格納されているので、リプレースする必要がある。この場合、本実施形態では、最も古いデータ、具体的には、エントリー０に記憶されているデータをリプレースの対象とする。リプレースするアルゴリズムは、例えば、キャッシュで使用されるＬＲＵ（Least Recently Used）アルゴリズムなどを適用できる。
【０１０１】
本実施形態では、ＰＤＬ部分データ格納部１４１に格納されている部分データ６１１とＰＤＬキャッシュデータ格納部１３１に格納されているＰＤＬ５０１及び画像データ７２１がリプレースの対象となり、それぞれ図６（ｅ）及び図７（ｅ）の状態５に遷移する。
【０１０２】
具体的に、ＰＤＬ部分データ格納部１４１には、図６（ｅ）に示す状態５のように、ステップ４０５で描画処理されたタイル３０６のＰＤＬデータ５０６における座標データ（ＰＤＬ部分データ）６１４がエントリー０（６００）に保存される。
【０１０３】
一方、ＰＤＬキャッシュデータ格納部１３１には、図７（ｅ）に示す状態５のように、タイル３０６におけるＰＤＬ５０６と、描画処理された画像データ７２６とが関連付けられてエントリー０（７００）保存される。
【０１０４】
続いて、ステップ４０９において、未描画のタイルが存在するか否かを判定し、全てのタイルの描画処理が終了するまで、ステップＳ４０３〜ステップＳ４０９の処理を実行する。そして、ステップＳ４０９において、全てのタイルの描画処理が終了すると、当該フローチャートの処理を終了する。
【０１０５】
本実施形態によれば、ページ記述言語（ＰＤＬ）に従って描画処理を行う際に、重複する描画処理を省略することができ、描画処理時間の短縮を実現することができる。
【０１０６】
なお、本実施形態では、図３に示すように、各タイルを、１ページを２方向（Ｘ方向及びＹ方向）で区切った領域としているが、本発明においては、１ページを単一方向で区切った領域を含む。例えば、この１ページを単一方向で区切った領域としては、Ｘ方向又はＹ方向で区切った領域が挙げられる。
【０１０７】
前述した本実施形態に係る画像形成装置を構成する図１の各手段、並びに画像形成装置による画像形成方法を示した図４の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【０１０８】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
【０１０９】
また、コンピュータが供給されたプログラムを実行することにより本実施形態に係る画像形成装置の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して本実施形態に係る画像形成装置の機能が実現される場合や、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて本実施形態に係る画像形成装置の機能が実現される場合も、かかるプログラムは本発明に含まれる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施形態に係る画像形成装置の概略構成図である。
【図２】本発明の実施形態に係る画像形成装置で読み込まれるＰＤＬデータの一例を示す図である。
【図３】図２に示すＰＤＬデータによって描画される画像データを示す図である。
【図４】本発明の実施形態に係る画像形成装置による画像形成方法の手順を示したフローチャートである。
【図５】図２に示すＰＤＬデータを、各タイル毎に分割した際のＰＤＬデータを示す図である。
【図６】ＰＤＬ部分データ格納部に保存されているＰＤＬ部分データ（座標データ）の各状態における遷移を示す図である。
【図７】ＰＤＬキャッシュデータ格納部に保存されているＰＤＬデータ及び画像データの各状態における遷移を示す図である。
【符号の説明】
【０１１１】
１００  通信インターフェース（Ｉ／Ｆ）
１０１  画像形成装置
１０２  メモリ
１０３  制御装置
１０４  バス
１１０  タイル分割部
１２０  画像形成部
１３０  ＰＤＬキャッシュ部
１３１  ＰＤＬキャッシュデータ格納部
１３２  ＰＤＬ一致判定部
１４０  ＰＤＬ部分比較部
１４１  ＰＤＬ部分データ格納部１４１
１４２  比較器
１４３  エンコーダ
１５０  セレクタ
１６０  バスアクセス調停部
２０１  ＰＤＬデータ
２０２〜２０５  描画命令群
３００  描画領域
３０１〜３０６  タイル
３１０〜３１３  描画オブジェクト
５０１〜５０６  各タイル毎に分割されたＰＤＬデータ
６００〜６０２、７００〜７０２  エントリー
６１１〜６１４  座標データ（ＰＤＬ部分データ）
７２１〜７２６  画像データ
【図１】
2008018577.tif 000003
【図２】
2008018577.tif 000004
【図３】
2008018577.tif 000005
【図４】
2008018577.tif 000006
【図５】
2008018577.tif 000007
【図６】
2008018577.tif 000008
【図７】
2008018577.tif 000009