(57)【要約】【課題】  複数のオブジェクトそれぞれの総当たりの比較によって、オブジェクトの重なり関係を判定するのに処理時間がかかっていた。【解決手段】  プリントデータを低解像度で処理することで、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを判定するための情報を生成し、オブジェクトが他のオブジェクトによって完全に隠されるかどうかをその生成された情報に基づいて判定し、その判定結果に基づいてオブジェクトに対する印刷解像度の描画処理を行う。【選択図】  図６
2015196296.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを含むプリントデータを受信する受信手段と、
前記プリントデータを印刷解像度よりも低い解像度で処理することで、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを判定するための情報を生成する生成手段と、
前記複数のオブジェクトのそれぞれについて、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを前記生成された情報に基づいて判定する判定手段と、
前記判定によって他のオブジェクトによって完全に隠されると判定されたオブジェクトに対して印刷解像度の描画処理を行わず、前記判定によって他のオブジェクトによって完全に隠されると判定されなかったオブジェクトに対して印刷解像度の描画処理を行う描画手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記プリントデータを前記低い解像度で処理するとは、前記プリントデータを前記低い解像度の中間データに変換することであることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
オブジェクトは、オブジェクトの下位からの重なり順を昇順で示す値をレベル値として有し、
前記生成手段は、前記変換された前記低い解像度の中間データに含まれる、前記複数のオブジェクトのレベル値に基づいて、前記情報を生成することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記生成手段は、前記変換された前記低い解像度の中間データを複数のブロックに分割し、ブロック毎に、ブロック全体を覆うオブジェクトのレベル値を当該ブロックのヒント値として前記情報に含めることで前記情報を生成することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記判定手段は、オブジェクトのレベル値が、前記ヒント値未満である場合に、当該オブジェクトが他のオブジェクトによって完全に隠されると判定することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記判定手段は、オブジェクトが、該オブジェクトに対応するブロックの大きさよりも小さいかどうかを判定し、
前記対応するブロックの大きさよりも小さいと判定されたオブジェクトについて、前記レベル値に基づいた前記判定を行うことを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記描画手段は、前記判定によって他のオブジェクトによって完全に隠されると判定されたオブジェクトに対して印刷解像度の中間データへの変換を行わないことで、前記描画処理を行わないように制御することを特徴とする請求項１乃至６の何れか１項に記載の画像形成装置。
【請求項８】
複数のオブジェクトを含むプリントデータを受信する受信工程と、
前記プリントデータを印刷解像度よりも低い解像度で処理することで、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを判定するための情報を生成する生成工程と、
前記複数のオブジェクトのそれぞれについて、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを前記生成された情報に基づいて判定する判定工程と、
前記判定によって他のオブジェクトによって完全に隠されると判定されたオブジェクトに対して印刷解像度の描画処理を行わず、前記判定によって他のオブジェクトによって完全に隠されると判定されなかったオブジェクトに対して印刷解像度の描画処理を行う描画工程と、
を有することを特徴とする画像形成方法。
【請求項９】
前記プリントデータを前記低い解像度で処理するとは、前記プリントデータを前記低い解像度の中間データに変換することであることを特徴とする請求項８に記載の画像形成方法。
【請求項１０】
オブジェクトは、オブジェクトの下位からの重なり順を昇順で示す値をレベル値として有し、
前記生成工程は、前記変換された前記低い解像度の中間データに含まれる、前記複数のオブジェクトのレベル値に基づいて、前記情報を生成することを特徴とする請求項９に記載の画像形成方法。
【請求項１１】
前記生成工程は、前記変換された前記低い解像度の中間データを複数のブロックに分割し、ブロック毎に、ブロック全体を覆うオブジェクトのレベル値を当該ブロックのヒント値として前記情報に含めることで前記情報を生成することを特徴とする請求項１０に記載の画像形成方法。
【請求項１２】
前記判定工程は、オブジェクトのレベル値が、前記ヒント値未満である場合に、当該オブジェクトが他のオブジェクトによって完全に隠されると判定することを特徴とする請求項１１に記載の画像形成方法。
【請求項１３】
前記判定工程は、オブジェクトが、該オブジェクトに対応するブロックの大きさよりも小さいかどうかを判定し、
前記対応するブロックの大きさよりも小さいと判定されたオブジェクトについて、前記レベル値に基づいた前記判定を行うことを特徴とする請求項１２に記載の画像形成方法。
【請求項１４】
前記描画工程は、前記判定によって他のオブジェクトによって完全に隠されると判定されたオブジェクトに対して印刷解像度の中間データへの変換を行わないことで、前記描画処理を行わないように制御することを特徴とする請求項８乃至１３の何れか１項に記載の画像形成方法。
【請求項１５】
請求項１乃至７の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成処理の高速化技術に関する。
【背景技術】
【０００２】
ＲＩＰ処理では、ＰＤＬデータから生成する中間データの内容に従って画像形成を行っている。
【０００３】
そのため、紙面に現れないオブジェクトであってもＰＤＬデータに含まれていれば、そのオブジェクトに対してＲＩＰ処理を行ってしまう。そのためＲＩＰ処理に対して不要な処理負荷が掛かかりＲＩＰ処理に時間が掛っていた。これに対して特許文献１は、中間データに含まれるオブジェクト同士の位置を比較し、上位のオブジェクトに隠れて紙面に現れなくなるオブジェクトをＲＩＰ処理前に予め削除する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３３４３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示された手法は、中間データに含まれるオブジェクト同士を総当たりで比較しないとオブジェクトが削除できない。そのためＰＤＬデータに大量のオブジェクトが含まれていた場合、オブジェクトが削除可能か否かの判定に掛る時間が大幅に増加してしまうため、オブジェクトの判定処理自体が画像形成に掛る時間を遅くしてしまうことがある。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、複数のオブジェクトを含むプリントデータを受信する受信手段と、前記プリントデータを印刷解像度よりも低い解像度で処理することで、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを判定するための情報を生成する生成手段と、前記複数のオブジェクトのそれぞれについて、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを前記生成された情報に基づいて判定する判定手段と、前記判定によって他のオブジェクトによって完全に隠されると判定されたオブジェクトに対して印刷解像度の描画処理を行わず、前記判定によって他のオブジェクトによって完全に隠されると判定されなかったオブジェクトに対して印刷解像度の描画処理を行う描画手段と、を有することを特徴とする画像形成装置が提供される。
【発明の効果】
【０００７】
本発明の一側面によれば、オブジェクトのＲＩＰ処理を行うか否かの判定を高速に行う。
【図面の簡単な説明】
【０００８】
【図１】実施形態の一例である画像形成装置の構成図
【図２】実施形態の一例である画像形成装置におけるジョブのデータフローを示す図
【図３】実施形態の一例である画像形成装置におけるヒントデータを説明する図
【図４】実施形態の一例である画像形成装置におけるヒント中間データを説明する図
【図５】ＰＤＬデータに含まれるオブジェクトのデータ形式を示した図
【図６】ヒントデータ生成処理についてのフローチャート
【図７】ＰＤＬ解釈及び中間データ生成の流れを示すフローチャート
【図８】オブジェクト削除判定処理の流れを示すフローチャート
【発明を実施するための形態】
【０００９】
本発明の実施形態の一例の画像形成装置について説明する。
【００１０】
図１（ａ）は、本実施形態の画像形成装置の構成例を示すブロック図である。この画像形成装置は、ユーザーパネル１０１、プリントコントローラ１００、プリントエンジン１０４を有する。なお、この画像形成装置は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）でもＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）でも良い。
【００１１】
ユーザーパネル１０１は、例えばタッチスクリーンであり、ユーザーからの指示を受け付け、その指示をプリントコントローラ１００へ送信する。ユーザーからの指示は例えば、印刷対象のページのプレビューを行う指示である。またユーザーパネル１０１は、プリントコントローラ１００の生成したプレビュー用のビットマップ形式の画像データを、プリントコントローラ１００から受信し、プレビュー用の画像を表示する。
【００１２】
プリントエンジン１０４は、プリントコントローラ１００から受信したビットマップ形式の画像データに基づいて、紙やＯＨＰシートなどの記録媒体に画像を印刷する。なおプリントエンジン１０４は、電子写真方式のプリントエンジンであっても、インクジェット方式のプリントエンジンであってもよい。
【００１３】
プリントコントローラ１００は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０２と接続する。プリントコントローラ１００は、ＬＡＮを経由して外部装置からＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データ（プリントデータ）を受信する。ＰＤＬデータには複数のオブジェクトが含まれる。
【００１４】
プリントコントローラ１００の内部構成について説明する。
【００１５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１４に格納されたプログラムを、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１に展開し、実行する。この実行により、プリントコントローラ１００は、図１（ｂ）で説明される各ソフトウェアモジュールとして機能する。
【００１６】
ユーザーパネルＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１１２は、プリントコントローラ１００とユーザーパネル１０１とをつなぐインターフェースである。プリントコントローラ１００とユーザーパネル１０１間のデータの送受信は、ユーザーパネルＩ／Ｆ１１２を経由して行われる。
【００１７】
ネットワークＩ／Ｆ１１３は、プリントコントローラ１００とＬＡＮ１０２とをつなぐインターフェースである。外部装置から送信されたＰＤＬデータは、ＬＡＮ１０２及びネットワークＩ／Ｆ１１３を経由してプリントコントローラ１００に送信される。
【００１８】
記憶装置１１５は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。記憶装置１１５には、外部装置から送信されたＰＤＬデータが格納される。また記憶装置１１５には、外部装置から送信されたＰＤＬデータから生成されたヒントデータ（後述）が格納される。
【００１９】
システムバス１１９は、ＣＰＵ１１０、ＲＡＭ１１１、ユーザーパネルＩ／Ｆ１１２、ネットワークＩ／Ｆ１１３、ＲＯＭ１１４、記憶装置１１５、イメージバスＩ／Ｆ１１６を相互に接続させる伝送路である。
【００２０】
イメージバスＩ／Ｆ１１６である。イメージバスＩ／Ｆ１１６は、システムバス１１９と画像バス１２０を接続するインターフェースである。
【００２１】
ＲＩＰ処理Ｈ／Ｗ（ＨａｒｄＷａｒｅ）１１７は、ＰＤＬデータから生成される中間データに基づいて、ビットマップ形式の画像データを生成する。中間データからビットマップ形式の画像データを生成する処理を描画処理あるいはＲＩＰ処理と呼ぶ（以下ではＲＩＰ処理と呼ぶことにする）。なおＲＩＰ処理Ｈ／Ｗ１１７は、ＣＰＵ１１０とは別のＲＩＰ専用の汎用ＣＰＵを指し、ＲＩＰ処理のソフトウェアモジュールを用いてＲＩＰ処理を実行するものとする。またＲＩＰ処理Ｈ／Ｗを搭載していないプリントコントローラの場合は、ＣＰＵ１１０がＲＩＰ処理Ｈ／Ｗに相当する処理を実行することで、ビットマップ形式の画像データを生成する。
【００２２】
エンジンＩ／Ｆ１１８は、プリントコントローラ１００とプリントエンジン１０４をつなぐインターフェースである。プリントコントローラ１００で生成されたビットマップ形式の画像データは、エンジンＩ／Ｆ１１８を経由してプリントエンジン１０４に送信される。
【００２３】
画像バス１２０は、イメージバスＩ／Ｆ１１６、ＲＩＰ処理Ｈ／Ｗ１１７、エンジンＩ／Ｆ１１８を相互に接続させる伝送路である。画像バス１２０は、ビットマップ形式の画像データや、中間データなどデータサイズが大きいデータを高速に伝送することを可能としている。
【００２４】
図１（ｂ）は、ＣＰＵ１１０がプログラムを実行することによりプリントコントローラ１００が実現するソフトウェアモジュールのブロック図（ソフトウェアブロック）である。
【００２５】
ＣＰＵ１１０はプログラムを実行することで、パネル制御処理部１３０、プリントジョブ制御処理部１３１、ＰＤＬ解釈処理部１３２、ＲＩＰ処理部１３３、ヒントデータ生成処理部１３４、ＰＤＬ軽量化処理部１３５として機能する。なお各処理部は、プログラムを実行しているＣＰＵ１１０が、図１（ａ）に示される各部を統合的に制御することで実現される。例えばＲＩＰ処理部１３３は、ＣＰＵ１１０がＲＩＰ処理Ｈ／Ｗ１１７を制御することで、ＣＰＵ１１０とＲＩＰ処理Ｈ／Ｗ１１７とが協調的に動作することで実現されている。また、他の処理部１３０、１３１、１３２、１３４、１３５は、各処理部で行われる処理の実行プログラムをＣＰＵ１１０が実行することで、ＣＰＵ１１０によって実現される。
【００２６】
図２（ａ）は、図１（ｂ）のソフトウェアモジュールによって実行されるプレビュー処理のデータフローを示している。
【００２７】
パネル制御処理部１３０は、ユーザーパネル１０１を介してプレビューの指示を受信する。そしてパネル制御部１３０は、記憶装置１１５に格納されたＰＤＬデータのプレビューするためのジョブ（プレビュージョブ）の開始をジョブ制御処理部１３１に通知する。
【００２８】
ジョブ制御処理部１３１は、ジョブの実行開始の通知を受けると記憶装置１１５に格納されたＰＤＬデータをＲＡＭ１１１に展開する。
【００２９】
ジョブ制御処理部１３１は、ＰＤＬデータのＲＡＭ１１１への展開が完了後、ＰＤＬデータ解釈処理部１３２にＰＤＬデータの解釈処理の開始を通知する。
【００３０】
ＰＤＬデータ解釈処理部１３２は、解釈処理開始の通知を受けると、ＲＡＭ１１１に展開されたＰＤＬデータの内容を解釈し、プレビュー用の中間データ（低解像度中間データ）への変換を行う。プレビュー用の中間データとは、ユーザーパネル１０１の表示解像度の中間データである。ユーザーパネル１０１の表示解像度は、プリントエンジン１０４の印刷解像度よりも低い解像度である。ＰＤＬ解釈処理部１３２は、ＰＤＬデータから低解像度中間データへの変換を完了させると、ジョブ制御処理部１３１にＰＤＬ解釈処理完了を通知する。
【００３１】
ジョブ制御処理部１３１は、ＰＤＬ解釈処理完了の通知をＰＤＬ解釈処理部１３２から受けると、ＲＩＰ処理Ｈ／Ｗ１１８にＲＩＰ処理開始を通知する。
【００３２】
ＲＩＰ処理部１３３は、ＲＩＰ処理開始の通知を受けると、低解像度中間データからユーザーパネル１０１の表示解像度のビットマップ形式の画像データ（低解像度画像データ）、および、ヒント中間データを生成する。すなわち表示解像度のＲＩＰ処理が実行される。ＲＩＰ処理部１３３は、低解像度画像データ及びヒント中間データの生成を完了させると、ＲＩＰ処理完了をジョブ制御処理部１３１に通知する。
【００３３】
ジョブ制御処理部１３１は、ＲＩＰ処理完了の通知を受けるとヒントデータ生成処理部１３４にヒントデータ生成処理の開始通知を送信する。
【００３４】
ヒントデータ生成処理部１３４は、ヒントデータ生成処理の開始通知を受信すると、ヒント中間データからヒントデータを生成する。ヒントデータ生成処理部１３４は、ヒントデータの生成を完了させると、ヒントデータ生成完了をジョブ制御処理部１３１に通知する。
【００３５】
ジョブ制御処理部１３１は、ヒントデータ生成完了の通知を受けると、ヒントデータをＰＤＬデータに紐づけて記憶装置１１５に格納し、パネル制御処理部１３０にプレビュージョブ完了の通知を行う。
【００３６】
パネル制御処理部１３０は、プレビュージョブ完了の通知を受けると、低解像度画像データを、ユーザーパネル１０１に送信する。するとユーザーパネル１０１は、低解像度画像データに基づいてプレビュー用の画像を表示する。
【００３７】
図２（ｂ）は、図１（ｂ）のソフトウェアモジュールによって実行されるプリント処理のデータフローの一例を示している。
【００３８】
パネル制御処理部１３０は、ユーザーパネル１０１を介してプリントの指示を受信する。そしてパネル制御処理部１３０は、記憶装置１１５に格納されたＰＤＬデータのプリントジョブ開始をジョブ制御処理部１３１に通知する。
【００３９】
ジョブ制御処理部１３１は、ジョブの実行開始の通知を受けると、記憶装置１１５に格納されたＰＤＬデータと、ＰＤＬデータに紐づけられたヒントデータとを、ＲＡＭ１１１に展開する。
【００４０】
ジョブ制御処理部１３１は、ＰＤＬデータのＲＡＭ１１１への展開が完了後、ＰＤＬ軽量化処理部１３５に、軽量化中間データの生成処理開始を通知する。ＰＤＬ軽量化処理部１３５は、ＰＤＬ軽量化処理開始の通知を受けると、ヒントデータを用いてＰＤＬデータのうち不要なオブジェクトの削除を行った軽量化中間データを生成する。ＰＤＬ軽量化処理部１３５は、軽量化中間データ生成処理が完了すると、軽量化中間データ生成完了をジョブ制御処理部１３１に通知する。ジョブ制御処理部１３１は、軽量化中間データ生成完了の通知を受けると、
ジョブ制御処理部１３１は、軽量化中間データ生成完了の通知を受けると、ＲＩＰ処理部１３３にＲＩＰ処理開始を通知する。ＲＩＰ処理部１３３は、ＲＩＰ処理開始の通知を受けると、軽量化中間データからプリンタエンジン１０４の印刷解像度のビットマップ形式の画像データを生成する。すなわち印刷解像度のＲＩＰ処理が行われる。ＲＩＰ処理部１３３は、画像データの生成を完了させると、ＲＩＰ処理完了をジョブ制御処理部１３１に通知する。
【００４１】
ジョブ制御処理部１３１は、ＲＩＰ処理完了の通知を受けると、生成された画像データをエンジンＩ／Ｆ１１９を経由してプリントエンジン１０４に送信する。すると、プリントエンジン１０４は、画像データに基づいて画像を記録媒体に印刷する。
【００４２】
図３（ａ）は、本実施形態でのヒントデータの構成を示した図である。本実施形態でのヒントデータは、複数の整数値（ヒント値）で構成される。それぞれのヒント値は、ＲＩＰ処理における画像データの処理単位であるｎ×ｎピクセルで構成される各ブロックに一対一に対応している。そのため画像データの幅をＮｎ（＝Ｎ×ｎ）、高さをＭｎ（＝Ｍ×ｎ）としたとき、ヒントデータは、２次元配列として扱うとＭ×Ｎの配列Ｈｉｎｔ［Ｍ］［Ｎ］となる。そして画像データ上の任意の点（ｘ、ｙ）に対応するヒント値の値は、Ｈｉｎｔ［ｆｌｏｏｒ（ｘ／ｎ）］［ｆｌｏｏｒ（ｙ／ｎ）］となる。ここでｆｌｏｏｒ（ｉ）は、実数値ｉの小数点以下を切り捨てる演算を意味する。
【００４３】
図３（ｂ）は、本実施形態でのヒントデータに含まれる各ヒント値の意味を説明する図である。
【００４４】
ここでオブジェクトのレベル値とは、オブジェクトの最背面に位置するページオブジェクトのレベル値をゼロ（０）とした、オブジェクトの下位からの重なり順を昇順で示す値である。レベル値は、オブジェクト毎に一意に割り振られる値であり、レベル値が大きいほどよりページの前面に位置することを意味する値である。同じレベル値を持つ複数のオブジェクトは存在しない。
【００４５】
ヒントデータは、図３（ｂ）の例１のようにあるブロック全体を覆うオブジェクトが一意に定まる場合、そのオブジェクトのレベル値を、そのブロックのヒント値として保持する。
【００４６】
またヒントデータは、図３（ｂ）の例２のようにブロック全体を覆うオブジェクトが一意に定まらない場合、“ヒントデータ無し”を意味する値（例えば−１など）を、そのブロックのヒント値として保持する。
【００４７】
さらにヒントデータは、図３（ｂ）の例３のようにブロックに存在するオブジェクトがページオブジェクトのみの場合、そのブロックのヒント値としてゼロ（０）を保持する。
【００４８】
図４（ａ）〜（ｄ）は、ヒント中間データについて説明する図である。
【００４９】
図４（ａ）は、ヒント中間データのデータ形式（Ｉｎｓｔ）を示した図である。ヒント中間データは、１データあたり区間長、最前面レベル値、最前面合成方法の３種類のパラメータを保持している。区間長は、オブジェクト同士の重なり関係が同じ状態である、１ブロック内の１スキャンライン中の区間の幅を示している。また最前面レベル値は、そのオブジェクトの同士の重なり関係が同じ状態で区間における最前面に位置するオブジェクトのレベル値を示している。そして最前面合成方法は、そのオブジェクトの同士の重なり関係が同じ状態で区間における最前面オブジェクトのピクセルへの合成方法を示している。
【００５０】
図４（ｂ）は、あるブロックサイズ（例えば８×８）の場合における、レベル値０、１、２をそれぞれ持つ３種類のオブジェクトの配置の例を示している。
【００５１】
図４（ｃ）は、図４（ｂ）の場合におけるヒント中間データの例を示している。図４（ｂ）に示したブロック場合、オブジェクト同士の重なり関係がスキャンライン毎の累計で２４パターンできるため、ブロックのヒント中間データがＩｎｓｔ１〜Ｉｎｓｔ２４の２４個生成される。
【００５２】
図４（ｄ）は、図４（ｃ）に示した２４個のヒント中間データのうち、一部について内容を具体的に示している。ヒントデータ生成処理部１３４は、ヒント中間データの最初のデータ（Ｉｎｓｔ１）に対して、最前面レベル値を取得するとともに最前面合成方法が背面のオブジェクトの情報を必要としてない合成方法か否かを判定する。そして、その合成方法が背面を必要しないと判断できた場合、１ブロック全体について最前面レベル値が同じか否かを判定し、１ブロック全体の最前面レベル値が同じと判定できた場合、ブロックのヒントデータにその最前面レベル値を書き込むことを行う。なお背面を必要としない合成方法は、ＲＯＰ（Ｒａｓｔｅｒ  Ｏｐｅｒａｔｉｏｎ）におけるＣＯＰＹＰＥＮ及びαブレンドにおけるα値が２５５の場合である。このヒントデータの生成処理については、図６を用いて後述する。
【００５３】
図５は、ＰＤＬデータに含まれるオブジェクトの例を示している。ＰＤＬデータに含まれるオブジェクトは、オブジェクト情報として表現されている。オブジェクト情報には、そのオブジェクトのレベル値と、そのオブジェクトを囲う矩形（オブジェクトのバウンディングボックス）の座標値と、そのオブジェクトの種別（図形、文字、イメージ）と、その種別に依存する固有の情報とが含まれる。ＰＤＬ軽量化処理部１３５は、ＰＤＬデータに含まれるオブジェクトのバウンディングボックスの座標値に基づいて、そのオブジェクトが配置されるブロックのヒント値をヒントデータから特定する。そしてＰＤＬ軽量化処理部１３５は、そのオブジェクトのレベル値と、そのヒント値を比較することで、そのオブジェクトの中間データを生成するか否かを判定する。この判定処理については、図７、８を用いて後述する。
【００５４】
図６は、ヒントデータ生成処理部１３４が行うヒントデータの生成処理についてのフローチャートである。
【００５５】
Ｓ６０１でヒントデータ生成処理部１３４は、処理対象ブロックの開始Ｘ座標とＹ座標を保持するＢｌｏｃｋＸとＢｌｏｃｋＹのそれぞれをページの左上の座標（０、０）で初期化する。
【００５６】
Ｓ６０２でヒントデータ生成処理部１３４は、処理対象ブロックのヒント中間データ（Ｉｎｓｔ）の１つを読み込む。すなわち、ヒント中間データは複数のブロックに分割される。
【００５７】
Ｓ６０３でヒントデータ生成処理部１３４は、Ｓ６０２で読み込んだヒント中間データの区間長をＳｐａｎＣｎｔに保持する。
【００５８】
Ｓ６０４でヒントデータ生成処理部１３４は、Ｓ６０２で読み込んだヒント中間データの最前面レベル値をＬｖＮｕｍに保持する。
【００５９】
Ｓ６０５でヒントデータ生成処理部１３４は、Ｓ６０２で読み込んだヒント中間データの最前面合成方法が、最前面に位置するオブジェクトとその背面に位置するオブジェクトとの合成（背面との合成）を示すか否かを判断する。最前面合成方法が、背面との合成を示すと判断された場合、ヒントデータ生成処理部１３４はＳ６０６へ処理を進める。一方で「否」と判断した場合、ヒントデータ生成処理部１３４はＳ６０７へと処理を進める。
【００６０】
Ｓ６０６でヒントデータ生成処理部１３４は、ＬｖＮｕｍに“ヒント無し（−１）”を保持させる。Ｓ６０７でヒントデータ生成処理部１３４は、ＬｖＮｕｍに格納されている値が“ヒント無し”か否かを判定する。
【００６１】
Ｓ６０７でヒント無しと判定された場合、ヒントデータ生成処理部１３４は、Ｓ６１３へ処理を進める。一方で否と判定された場合、ヒントデータ生成処理部１３４はＳ６０８へ処理を進める。
【００６２】
Ｓ６０８でヒントデータ生成処理部１３４は、ＳｐａｎＣｎｔの値が処理対象ブロックの面積であるｎ×ｎ（ブロック幅×ブロック高さ）に等しいか否かを判定する。Ｓ６０８で等しいと判定された場合、ヒントデータ生成処理部１３４は、Ｓ６１３へ処理を進める。一方で否と判断された場合、ヒントデータ生成処理部１３４はＳ６０９へ処理を進める。
【００６３】
Ｓ６０９でヒントデータ生成処理部１３４は、処理対象ブロックのヒント中間データ（Ｉｎｓｔ）の１つを読み込む。ヒント中間データは複数のブロックに分割される。
【００６４】
Ｓ６１０でヒントデータ生成処理部１３４は、Ｓ６０９で読み込んだヒント中間データの最前面レベル値がＬｖＮｕｍと等しくないと判断した場合、ヒントデータ生成処理部１３４はＳ６１１へ処理を進める。一方で等しいと判断した場合、ヒントデータ生成処理部１３４はＳ６１２へ処理を進める。
【００６５】
Ｓ６１１でヒントデータ生成処理部１３４は、ＬｖＮｕｍに“ヒント無し”を保持させる。
【００６６】
Ｓ６１２でヒントデータ生成処理部１３４は、Ｓ６０９で読み込んだヒント中間データの区間長をＳｐａｎＣｎｔへの加算を行う。
【００６７】
Ｓ６１３でヒントデータ生成処理部１３４は、ヒント値が書き込まれるヒントデータの要素の位置Ｙ、Ｘを計算する。具体的には、Ｙ＝ｆｌｏｏｒ（ＢｌｏｃｋＹ／ｎ）、Ｘ＝ｆｌｏｏｒ（ＢｌｏｃｋＸ／ｎ）が計算される。
【００６８】
Ｓ６１４でヒントデータ生成処理部１３４は、Ｍ×Ｎの２次元配列で構成されるヒントデータＨｉｎｔ［Ｍ］［Ｎ］のうちの、Ｓ６１３で計算された位置の要素Ｈｉｎｔ［Ｙ］［Ｘ］（ただしＭ＞Ｙ、Ｎ＞Ｘ）にＬｖＮｕｍの値をヒント値として書き込む。
【００６９】
Ｓ６１５でヒントデータ生成処理部１３４は、ＢｌｏｃｋＸにブロック幅ｎを加算する。この処理によって、処理対象のブロックを次のブロックへと移しながらブロック毎に、ヒント値を設定することができる。
【００７０】
Ｓ６１６でヒントデータ生成処理部１３４は、ＢｌｏｃｋＸがページ幅以上か、否かを判定する。Ｓ６１６で「以上」と判断された場合、ヒントデータ生成処理部１３４はＳ６１７へ処理を進める。一方で「未満」と判定され場合、ヒントデータ生成処理部１３４はＳ６１９へ処理を進める。
【００７１】
Ｓ６１７でヒントデータ生成処理部１３４は、ＢｌｏｃｋＸをゼロ（０）で初期化する。
【００７２】
Ｓ６１８でヒントデータ生成処理部１３４は、ＢｌｏｃｋＹにブロック高さｎを加算する。この処理によって、処理対象のブロックを次のブロックへと移しながらブロック毎に、ヒント値を設定することができる。
【００７３】
Ｓ６１９でヒントデータ生成処理部１３４は、ＢｌｏｃｋＹがページ高さ以上か否かを判定する。Ｓ６１９で「以上」と判断された場合、ヒントデータ生成処理部１３４はＳ６２０へ処理を進める。一方で「未満」と判断された場合、ヒントデータ生成処理部１３４はＳ６０２へ処理を進める。
【００７４】
Ｓ６２０でヒントデータ生成処理部１３４は、各要素にヒント値が格納されたヒントデータを記憶装置１１５に格納する。
【００７５】
図７は、ＰＤＬ軽量化処理部１３５の処理を示すフローチャートである。
【００７６】
Ｓ７０１でＰＤＬ軽量化処理部１３５は、記憶装置１１５に格納されているＰＤＬデータに含まれる未処理のオブジェクト情報を１つ読み込む。もしＰＤＬデータに含まれる全てのオブジェクト情報が処理済みであれば、ＰＤＬ軽量化処理部１３５は、オブジェクト情報を読み込めないとみなし、処理完了フラグを立てる。
【００７７】
Ｓ７０２でＰＤＬ軽量化処理部１３５は、Ｓ７０１でオブジェクト情報を読み込めたかを判定する。Ｓ７０１で処理完了フラグが立てられた場合、オブジェクト情報が読み込めなかったと判定されて、処理は終了する。Ｓ７０１で処理完了フラグが立てられていない場合、オブジェクト情報が読み込めたと判定されて、処理はＳ７０３へ進む。
【００７８】
Ｓ７０３でＰＤＬ軽量化処理部１３５は、判定処理を行う。この判定処理では、Ｓ７０１で読み込まれたオブジェクト情報によって表されるオブジェクトが他のオブジェクトによって完全に隠されるかどうかが判定される。隠される場合にＦｌａｇ（後述）がＴＲＵＥになり、そうでない場合にＦｌａｇがＦＡＬＳＥになる。この判定処理の詳細については図８を用いて後述する。
【００７９】
Ｓ７０４でＰＤＬ軽量化処理部１３５は、オブジェクトが削除可能か否かを示すフラグであるＦｌａｇに格納された値がＴＲＵＥかＦＡＬＳＥかを判定する。ＴＲＵＥの場合、ＰＤＬ軽量化処理部１３５は、Ｓ７０１で読み込まれたオブジェクト情報を中間データへ変換せずに、Ｓ７０１へ処理を進める。一方でＦＡＬＳＥの場合、ＰＤＬ軽量化処理部１３５は、Ｓ７０５へ処理を進める。
【００８０】
Ｓ７０５でＰＤＬ軽量化処理部１３５は、Ｓ７０１で読み込んだオブジェクト情報に基づいてプリントエンジン１０４の印刷解像度の中間データへ変換する。
【００８１】
以上の処理によって、他のオブジェクトによって完全に隠されるオブジェクトについては、オブジェクト情報から中間データへの変換はなされない。そしてそのため、そのオブジェクトは、後段のＲＩＰ処理部１３３によるＲＩＰ処理の対象から外れる。このように、そのようなオブジェクトの中間データの生成およびＲＩＰ処理が省略され、処理全体が高速化する。
【００８２】
図８は、図７の判定処理（Ｓ７０３）の処理を示すフローチャートである。
【００８３】
Ｓ８０１でＰＤＬ軽量化処理部１３５は、オブジェクトのバウンディングボックスの開始Ｘ座標値ＳｔａｒｔＸが示すヒントデータの列と終了Ｘ座標値ＥｎｄＸが示すヒントデータの列とが等しいか否かを判定する。開始Ｘ座標値ＳｔａｒｔＸに関するヒントデータの列は、プリントエンジン１０４の印刷解像度とユーザーパネル１０１の表示解像度との画像解像度比Ｒ、および、プレビュー時におけるＲＩＰ処理のブロックの幅ｎの値を用いて計算される。すなわち、ヒントデータの列は、ｆｌｏｏｒ（ＳｔａｒｔＸ／（Ｒ×ｎ））である。同様に、終了Ｘ座標値ＥｎｄＸに関するヒントデータの列は、ｆｌｏｏｒ（ＥｎｄＸ／（Ｒ×ｎ））である。
【００８４】
すなわちここでは、Ｓ７０１で読み込まれたオブジェクト情報によって表されるオブジェクトが所定の幅（ブロック幅ｎ）よりも小さく、且つ、複数ブロックにまたがっていないかが判定される。
【００８５】
Ｓ８０１で等しいと判断した場合ＰＤＬ軽量化処理部１３５は、Ｓ８０２へ処理を進める。一方で否と判断した場合、Ｓ８０５へ処理を進める。
【００８６】
Ｓ８０２でＰＤＬ軽量化処理部１３５は、ＰＤＬ軽量化処理部１３５は、オブジェクトのバウンディングボックスの開始Ｙ座標値ＳｔａｒｔＹが示すヒントデータの行と、終了Ｙ座標値ＥｎｄＹが示すヒントデータの行とが等しいか否かを判定する。このときＳ８０１と同様にして、ヒントデータの行のそれぞれは、Ｆｌｏｏｒ（ＳｔａｒｔＹ／（Ｒ×ｎ））及びＦｌｏｏｒ（ＥｎｄＹ／（Ｒ×ｎ））である。
【００８７】
すなわちここでは、Ｓ７０１で読み込まれたオブジェクト情報によって表されるオブジェクトが所定の高さ（ブロック高さｎ）よりも小さく、且つ、複数ブロックにまたがっていないかが判定される。
【００８８】
Ｓ８０２で等しいと判断した場合ＰＤＬ軽量化処理部１３５は、Ｓ８０３へ処理を進める。一方で否と判断した場合、Ｓ８０５へ処理を進める。
【００８９】
Ｓ８０３でＰＤＬ軽量化処理部１３５は、オブジェクトの持つレベル値がその領域のヒント値未満となるか、否かの判定を行う。オブジェクトのもつレベル値がヒント値未満と判定された場合、ＰＤＬ軽量化処理部１３５はＳ８０４へ処理を進める。一方、オブジェクトのもつレベル値がヒント値以上と判定された場合、ＰＤＬ軽量化処理部１３５はＳ８０５へ処理を進める。
【００９０】
Ｓ８０３での判定対象となるオブジェクトは、Ｓ８０１およびＳ８０２での判定で共に「Ｙｅｓ」となったオブジェクトである。すなわち、１ブロック内に収まる小さなオブジェクトである。そしてＳ８０３での判定処理は、そのような小さなオブジェクトが他のオブジェクトによって完全に隠れるか否かを判定する処理である。完全に隠れると判定された場合にＳ８０４に進むと言い換えられ、そうでないと判定されば場合にＳ８０５に進むと言い換えられる。
【００９１】
Ｓ８０４でＰＤＬ軽量化処理部１３５は、オブジェクトが削除可能か否かを示すＦｌａｇにＴＲＵＥを格納する。
【００９２】
Ｓ８０５でＰＤＬ軽量化処理部１３５は、ＦｌａｇにＦＡＬＳＥを格納する。
【００９３】
以上説明したように本実施形態では、ＰＤＬデータを低解像度で処理する（低解像度の中間データを生成する）ことで、オブジェクトが他のオブジェクトによって完全に隠されるかどうかを判定するための情報（ヒントデータ）を生成する。そのため、ＰＤＬデータに含まれる複数のオブジェクトの重なり関係を、オブジェクト同士の総当たりで判定することなく検出することができる。なお、ＰＤＬデータを低解像度で処理するので、処理時間は、オブジェクト同士の総当たりで判定する処理よりもかからない。
【００９４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2015196296.tif 000003
【図２】
2015196296.tif 000004
【図３】
2015196296.tif 000005
【図４】
2015196296.tif 000006
【図５】
2015196296.tif 000007
【図６】
2015196296.tif 000008
【図７】
2015196296.tif 000009
【図８】
2015196296.tif 000010