(57)【要約】【課題】  くり抜き描画にかかる処理時間を短縮することを目的とする。【解決手段】  本発明によれば、描画ビットマップと属性毎のマスクビットマップとを用いたくり抜き描画命令に対して、各属性の外接矩形領域を特定し、前記描画ビットマップと前記属性毎のマスクビットマップとから、前記各属性の外接矩形領域に対応する属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを切り出し、前記くり抜き描画命令で用いられる描画ビットマップと属性毎のマスクビットマップを、当該切り出した属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを用いて置換する。【選択図】  図７
2018147259.tif 000002
【特許請求の範囲】
【請求項１】
描画ビットマップと属性毎のマスクビットマップとを用いたくり抜き描画命令に対して、各属性の外接矩形領域を特定する特定手段と、
前記描画ビットマップと前記属性毎のマスクビットマップとから、前記各属性の外接矩形領域に対応する属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを切り出し、前記くり抜き描画命令で用いられる前記描画ビットマップと前記属性毎のマスクビットマップを、当該切り出した属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを用いて置換する切り出し手段と、
を有することを特徴とする情報処理装置。
【請求項２】
単一属性で構成される部分描画ビットマップを用いるくり抜き描画命令について、当該単一属性で構成される部分描画ビットマップを描画する画像描画命令に変換する第１変換手段、
を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１変換手段は、さらに、当該変換した画像描画命令が、その他のくり抜き描画命令よりも前に処理されるように順序変更することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１変換手段で画像描画命令に変換されなかった属性のくり抜き描画命令について、そのくり抜き描画命令で用いられる部分描画ビットマップが前記第１変換手段で画像描画命令に変換された属性を含まなければ、当該部分描画ビットマップを描画する画像描画命令に変換して、その他のくり抜き描画命令よりも前に処理されるように順序変更する第２変換手段、を更に有することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
複数の描画命令の中からビットマップ化対象と判断された描画命令を含むビットマップ化対象の矩形領域に基づいて、当該ビットマップ化対象の矩形領域に含まれる描画命令に基づいて、前記描画ビットマップと前記属性毎のマスクビットマップとを用いた前記くり抜き描画命令に変換するくり抜き描画命令変換手段、を更に有し、
前記特定手段は、前記くり抜き描画命令変換手段で変換されたくり抜き描画命令に対して、各属性の外接矩形領域を特定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記くり抜き描画命令は、ＸＯＲ描画命令とＡＮＤ描画命令とＸＯＲ描画命令とを組み合わせた描画命令であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記くり抜き描画命令は、画像描画命令とＭａｓｋ描画命令とを組み合わせた描画命令であることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
コンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラムを記憶した、コンピュータ読み取り可能な記憶媒体。
【請求項１０】
情報処理装置の特定手段が、描画ビットマップと属性毎のマスクビットマップとを用いたくり抜き描画命令に対して、各属性の外接矩形領域を特定する特定ステップと、
前記情報処理装置の切り出し手段が、前記描画ビットマップと前記属性毎のマスクビットマップとから、前記各属性の外接矩形領域に対応する属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを切り出し、前記くり抜き描画命令で用いられる前記描画ビットマップと前記属性毎のマスクビットマップを、当該切り出した属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを用いて置換する切り出しステップと、
を含むことを特徴とする情報処理方法。
【請求項１１】
前記情報処理装置の第１変換手段が、単一属性で構成される部分描画ビットマップを用いるくり抜き描画命令について、当該単一属性で構成される部分描画ビットマップを描画する画像描画命令に変換する第１変換ステップ、
を更に含むことを特徴とする請求項１０に記載の情報処理方法。
【請求項１２】
前記第１変換ステップでは、さらに、当該変換した画像描画命令が、その他のくり抜き描画命令よりも前に処理されるように順序変更することを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
前記情報処理装置の第２変換手段が、前記第１変換ステップで画像描画命令に変換されなかった属性のくり抜き描画命令について、そのくり抜き描画命令で用いられる部分描画ビットマップが前記第１変換ステップで画像描画命令に変換された属性を含まなければ、当該部分描画ビットマップを描画する画像描画命令に変換して、その他のくり抜き描画命令よりも前に処理されるように順序変更する第２変換ステップ、
を更に有することを特徴とする請求項１２に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、くり抜き描画命令の処理に関するものである。
【背景技術】
【０００２】
ページ記述言語として、現在、数多くのＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）が存在するが、どのＰＤＬでも一般に使われる描画として「くり抜き描画」がある。この「くり抜き描画」は、複雑な色の図形や文字などを描画する際などに用いられることが多い。例えば、複雑な色で構成されるグラデーション画像を、図形や文字の形でくり抜いて描画する際に用いられる。
【０００３】
また、くり抜き描画は様々な描画命令で実現できる。例えば、高級言語であるＭａｓｋ描画命令を用いて実現する方法や、また、低級言語の論理演算描画命令を組み合わせて実現する方法などがある。低級言語の論理演算描画命令を組み合わせて実現する方法としては、ＸＯＲ描画命令とＡＮＤ描画命令とＸＯＲ描画命令とを順に適用して実現する方法（以下、ＸＡＸ法と呼ぶ）などがある。Ｍａｓｋ描画命令をサポートしていない装置でも処理できるように、上述したような低級言語である論理演算描画命令を組み合わせてくり抜き描画を実現する方法もよく使用される。具体例を図１に示す。
【０００４】
図１（Ａ）は、Ｍａｓｋ描画命令を用いて実現する場合の例であり、くり抜き対象画像（例えばグラデーション画像）を画像描画命令で描画し、更に、くり抜きたい画素の位置を示すマスクビットマップ画像を用いてＭａｓｋ描画命令を実行することで、くり抜き描画結果が得られる。
【０００５】
図１（Ｂ）は、ＸＡＸ法で実現している例であり、描画結果は図１（Ａ）と同等になる。ＸＡＸ法では、描画が行われるメモリ領域に対して、くり抜き対象画像（例えばグラデーション画像）を用いてＸＯＲ描画命令を実行し、次に、くり抜きたい画素の位置を示すマスクビットマップ画像を用いてＡＮＤ描画命令を実行し、更に、くり抜き対象画像（例えばグラデーション画像）を用いてＸＯＲ描画命令を実行することで、くり抜き描画が得られる。なお、ＸＯＲ描画命令及びＡＮＤ描画命令は、それまでに描画済みの描画に対して行われる演算処理である。結果的に、図１（Ｂ）のマスクビットマップの１の部分（図では黒の部分）は、くり抜き対象画像（例えばグラデーション画像）の中のくり抜きたい画素を示し、０の部分（図では白の部分）はこのくり抜き描画を行うまでに描画済みの画素値が維持される画素を示している。
【０００６】
また、デジタル複写機やプリンタ等の画像形成装置では、印刷出力を行う際に、入力情報内のイメージ部分やグラフィック部分などに対して、イメージ・テキスト・グラフィックなどの属性毎に適した画像処理を行うことにより、印刷画質の向上を行っている。例えば、属性毎の画像処理は、以下のような手順で行われる。まず、プリンタドライバは、アプリケーションから入力された描画命令の種類に基づき、各描画命令の「描画属性」情報を判別する。具体的には、描画命令が画像描画であればイメージ属性、描画命令が文字描画であればテキスト属性、描画命令が単色のグラフィック描画であればグラフィック属性、描画命令が線描画であればライン属性、として判別する。そして、該プリンタドライバは、描画命令をＰＤＬ描画コマンドに変換し、当該描画コマンドに当該判別された描画属性の情報を付与して画像形成装置に送信して印刷を実行させる。なお、１つの描画コマンドに対して付与できる描画属性の情報は１つである。また、画像形成装置で処理できない描画コマンドなどに関しては、プリンタドライバでその描画コマンドを含む矩形領域の描画を行ってビットマップを生成（部分イメージ化）してから画像形成装置に送信する。このとき、相異なる描画属性を持つ複数の描画命令の描画を行って１つのビットマップを生成し、当該ビットマップを１つの描画コマンドとして送信するように構成すると、当該ビットマップ内において、本来は相異なる描画属性を持つ複数の描画が含まれることになり、それぞれに適した画像処理を行うことができない。その場合には、描画内容を表す描画ビットマップ（合成して生成されたビットマップ）と、当該描画ビットマップの各画素における属性を表す属性ビットマップとを生成する。そして、それらをＰＤＬ描画コマンドに変換して画像形成装置に出力して印刷を実行することで、複数の属性が存在する描画ビットマップに対しても、画素単位で描画属性毎に適した画像処理を切り替えて実行可能である。特許文献１では、複数の描画属性が存在する描画ビットマップに対して描画属性毎に適した画像処理を施すために、前述したくり抜き描画を応用した技術を開示している。この方法を用いれば、部分イメージ化（プリンタドライバで描画コマンドの一部が描画ビットマップ化）されたとしても、元の属性に適した画像処理（色処理）をかけることができる。特許文献１で開示されている技術の具体例を図２と図３を用いて説明する。図２は、文書２０１内に、グラフィック描画２０２、テキスト描画２０３、イメージ描画２０４などが含まれている。この文書２０１のうち、グラフィック描画２０２が画像形成装置で処理できないグラデーション描画命令であったとすると、そのグラフィック描画を囲む矩形領域が部分イメージ化対象（ビットマップ化対象）となる。図２の２０５は、ビットマップ化対象の矩形領域の拡大図であり、この部分に含まれる描画命令に基づいて描画ビットマップ（描画Ｂｉｔｍａｐ）が生成される。またこのとき、描画ビットマップ２０５に対応する各画素の属性を表す属性ビットマップ（属性Ｂｉｔｍａｐ）も生成される。図３は、ＸＡＸ法を用いて、図２の描画ビットマップ２０５を属性毎にくり抜く際の処理の概要を示す。まず、属性ビットマップに基づいて、属性毎のマスクビットマップ（グラフィックのマスクビットマップ３０２、イメージのマスクビットマップ３１２、テキストのマスクビットマップ３２２）を作成する。また、描画ビットマップ２０５は、図３の３０１、３０３、３１１、３１３、３２１、３２３として使用される。すなわち、図３の（Ｇ）は、描画ビットマップからグラフィック属性の描画結果３０４をくり抜く処理であり、（Ｉ）はイメージ属性の描画結果３１４をくり抜く処理であり、（Ｔ）はテキスト属性の描画結果３２４をくり抜く処理を示している。例えば、グラフィック属性の描画結果３０４をくり抜く場合、描画が行われるメモリ領域に対して、描画ビットマップ３０１を用いてＸＯＲ描画命令を実行し、次に、グラフィックのマスクビットマップ３０２を用いてＡＮＤ描画命令を実行し、描画ビットマップ３０３を用いてＸＯＲ描画命令を実行することで、３０４のようにグラフィック部分をくり抜くことができる。そして、図３の（Ｇ）のくり抜き描画命令で構成される描画コマンドの描画属性をグラフィック属性、図３の（Ｉ）に対応する描画コマンドの描画属性をイメージ属性、図３の（Ｔ）に対応する描画コマンドの描画属性をテキスト属性とすることで、各属性に適した画像処理を行えるようになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−００５２０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＸＡＸ法のように低級言語の論理演算描画命令でくり抜き処理を行う場合、低級言語のみをサポートしているデバイスでもくり抜き処理を行えるという利点がある一方、出力ＰＤＬサイズが大きくなりやすく、また、くり抜き描画処理にかかる時間も増大しやすい。例えば、図３では、描画ビットマップ２０５を用いたＸＯＲ描画命令が合計６回、マスクビットマップ３０２，３１２，３２２を用いたＡＮＤ描画命令が合計３回発行されている。ＰＤＬサイズが大きくなると、特にクラウドプリントなどのインターネットを利用した印刷システムにおいて、通信時間に対する影響が大きくなる。すなわち、ＰＤＬサイズが大きければ大きいほど、通信時間が多くかかり、結果として、印刷にかかる時間も増大する。
【０００９】
特に、ＸＡＸ法のように複数のビットマップが合成される処理（ＸＯＲやＡＮＤなどのＣｏｍｐｏｓｉｔｅ処理）では、そのビットマップ領域（すなわち、部分イメージ化対象の領域）が広ければ広いほど、処理時間が多くかかってしまう。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の情報処理装置は、描画ビットマップと属性毎のマスクビットマップとを用いたくり抜き描画命令に対して、各属性の外接矩形領域を特定する特定手段と、前記描画ビットマップと前記属性毎のマスクビットマップとから、前記各属性の外接矩形領域に対応する属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを切り出し、前記くり抜き描画命令で用いられる前記描画ビットマップと前記属性毎のマスクビットマップを、当該切り出した属性毎の部分描画ビットマップと属性毎の部分マスクビットマップとを用いて置換する切り出し手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、くり抜き描画を最適化することにより、処理時間を短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】マスク描画命令によるくり抜き描画の例と、ＸＡＸ法によるくり抜き描画の例
【図２】部分イメージ化される文書の例
【図３】描画ビットマップ２０５に対して、ＸＡＸ法によるくり抜き描画を適用した例
【図４】印刷システムの構成例
【図５】情報処理装置のソフトウェア構成例
【図６】プリンタドライバを用いて実現される処理内容を示すフローチャート
【図７】くり抜き描画最適化処理の詳細を示すフローチャート
【図８】外接矩形抽出処理の詳細を示すフローチャート
【図９】マスクビットマップから部分マスクビットマップを切り出す例
【図１０】図３の例に対して、図８の外接矩形抽出処理を適用した結果の例
【図１１】イメージ描画命令変換処理の詳細を示すフローチャート
【図１２】単一属性のくり抜き描画命令を、画像描画命令に置換する例
【図１３】図１０の例に対して、図１１のイメージ描画命令変換処理を適用した結果の例
【図１４】実施例２のイメージ描画命令変換処理の詳細を示すフローチャート
【図１５】図１３の例に対して、更にＳ１４０５の処理を適用した結果の例
【発明を実施するための形態】
【００１３】
（実施例１）
本実施例では、図３で説明したようなＸＡＸ法によって描画属性毎のくり抜き描画を行う処理を用いて説明する。特に、プリンタドライバにおいて、くり抜き描画の描画命令に変換する際に、描画命令のサイズが小さくなるように、最適化処理を実行する場合について説明する。なお、以下の説明において、単に「属性」と記述した場合には「描画属性」と同義であるとする。
【００１４】
図４は、本実施例の印刷システムの構成例を示すものであり、印刷装置６とプリントサーバ７と情報処理装置（クライアントコンピュータ）８はネットワークを介して接続されているものとする。情報処理装置８は、中央処理装置（ＣＰＵ）１と、主記憶装置（ＲＡＭ）２と、補助記憶装置３と、入力装置４と、表示装置５で構成される。中央処理装置（ＣＰＵ）１は、コンピュータ読み取り可能な記憶媒体（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード等）やネットワーク等を介して、プログラムおよび関連データを読み込んで、補助記憶装置３にインストールする。中央処理装置（ＣＰＵ）１は、該プログラムを実行する際は、補助記憶装置３から主記憶装置（ＲＡＭ）２に該プログラムをロードして実行することにより、後述するフローチャートで説明する各処理手段として機能する。入力装置４はキーボード、ポインティングデバイス等で構成されているものとする。また、補助記憶装置３は、ハードディスク（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）等で構成される。また、情報処理装置８から送信される印刷コマンドは、プリントサーバ７を介して印刷装置６に送信されるように構成してもよいし、また、印刷装置６に直接送信されるように構成しても構わない。以下の説明では、プリントサーバを介して印刷コマンドを送信する場合の説明は割愛するが、そのような構成を排除するものではない。
【００１５】
図５は、情報処理装置８のＯＳにおいて、印刷装置を制御するためのプリンタドライバ１１のプログラムを実行した場合に、中央処理装置１を後述する各処理部として機能させるためのソフトウェア構成を示す概念図である。
【００１６】
ユーザインタフェース部１２は、印刷に用いる各種印刷設定の入力や印刷開始指示の入力をユーザーから受け付けるためのユーザインタフェースを提供する。
【００１７】
レイアウト処理部１３は、文書作成アプリケーション等から指定される印刷の描画命令を受け、Ｎ−ｕｐ（Ｎｉｎ１ともいう）などのレイアウトに関する指定がされていれば、そのレイアウトに応じた変換を行う。
【００１８】
印刷データ制御部１４は、レイアウト処理部１３で変換された描画命令を受けとり、印刷装置において処理できるデータを作成する。この印刷データ制御部１４は、くり抜き描画最適化処理部２１および印刷データ生成部１５を含み、本発明におけるホスト装置側の重要な処理を実現する。くり抜き描画最適化処理部２１は、くり抜き描画を検知し最適な描画命令に変換する処理を行う。印刷データ生成部１５は、くり抜き描画最適化処理部２１から送られてくる描画命令に基づき、印刷装置で処理可能な描画コマンドを生成する。
【００１９】
印刷コマンド制御部１６は、印刷データ生成部１５により生成された描画コマンドに対し、印刷装置で使用する補助的な情報（印刷ジョブの名称、片面／両面印刷、メディアサイズなどの情報）を付加することにより、印刷コマンドを生成する。データ送受信部１７は、ＯＳの機能であり、印刷装置６に印刷コマンドを送信したり、印刷装置から各種データを送信したりする。
【００２０】
図６は、情報処理装置８がプリンタドライバ１１のプログラムを実行することにより、情報処理装置が行う処理を示すフローチャートである。ユーザーが文書作成アプリケーション等において印刷を指示すると、該アプリケーションから出力される描画命令が、プリンタドライバ１１へ渡ってくる。そこでこのフローチャートがスタートする。
【００２１】
ステップＳ６０１において、レイアウト処理部１３は、アプリケーションから入力された描画命令を解析し、必要に応じてレイアウト変換を行った後、印刷データ制御部１４に描画命令を渡す。
【００２２】
ステップＳ６０２において、印刷データ制御部１４のくり抜き描画最適化処理部２１は、図７を用いて後述するくり抜き描画最適化処理を行う。
【００２３】
ステップＳ６０３において、印刷データ制御部１４の印刷データ生成部１５は、くり抜き描画最適化処理部２１で最適化処理を行った後の描画命令に基づいて、印刷装置が受け取ることができる描画コマンドに変換する。描画コマンドとは具体的にはＰＳ（Ａｄｏｂｅ社製）やＰＣＬ（ＨＰ社製）などのＰＤＬ描画コマンドを指す。
【００２４】
ステップＳ６０４において、印刷コマンド制御部１６は、印刷データ生成部１５により生成された描画コマンドに対し、印刷装置で使用する補助的な情報（印刷ジョブの名称、片面／両面印刷、メディアサイズなどの情報）を付加して、印刷コマンドを生成する。
【００２５】
ステップＳ６０５において、印刷コマンド制御部１６は、データ送受信部１７を介して、印刷装置６へ印刷コマンドを送信する。その後、印刷装置６では、受け取った印刷コマンドに基づいて、レンダリング処理やハーフトーン化処理を行った後、紙に印字して印刷処理が完了する。
【００２６】
図７は、ステップＳ６０２において、くり抜き描画最適化処理部２１により実行されるくり抜き描画最適化処理の詳細を示すフローチャートである。
【００２７】
Ｓ７００において、くり抜き描画最適化処理部２１は、レイアウト処理部から受け取った描画命令の中に画像形成装置で処理できない描画命令（例えばグラデーション描画命令）があった場合、ビットマップ化対象とする。そして、図２および図３を用いて上述したような技術（特許文献１参照）を用いて、くり抜き描画命令に変換するくり抜き描画命令変換処理を実行する。すなわち、図３のように、ビットマップ化対象領域の描画ビットマップ２０５（３０１，３０３，３１１，３１３，３２１，３２３）と、その領域内に含まれる各画素の属性に基づいて作成される属性毎のマスクビットマップ（３０２，３１２，３２２）とを用いて、ＸＡＸ法により記述されたくり抜き描画命令に変換される。
【００２８】
なお、以下の説明では、図３で示したようなＸＡＸ法で記述されたくり抜き描画命令に変換された場合を例にして説明するが、くり抜き描画命令の記述法はＸＡＸ法に限るものではない。例えば、後述するステップＳ７０２およびＳ７０３の処理は、図１（Ａ）のような、描画ビットマップを描画する画像描画命令と属性毎のマスクビットマップを用いたＭａｓｋ描画命令とを組み合わせたくり抜き描画に対しても適用可能である。また、本実施例では、Ｓ７００でくり抜き描画命令に変換する例について示すが、これに限るものではない。例えば、文書作成アプリケーションから出力される描画命令が、既にくり抜き描画命令として記述されている場合もありうる。また、文書作成アプリケーションから出力される描画命令が、ＯＳの変換モジュールにより所定のフォーマットに変換され、当該変換後の描画命令がプリンタドライバに入力される構成の場合、該変換モジュールによって既にくり抜き描画命令に変換されている場合もありうる。例えば、ＯＳの変換モジュールとしては、ＭＸＤＣ（Ｍｉｃｒｏｓｏｆｔ  ＸＰＳ  Ｄｏｃｕｍｅｎｔ  Ｃｏｎｖｅｒｔｅｒ）などがあり、このような変換モジュールが文書作成アプリケーションから出力される描画命令をくり抜き描画命令に既に変換している場合もありうる。したがって、レイアウト処理部から受け取った描画命令が、既にくり抜き描画命令で記述されているような場合は、Ｓ７００の処理はスキップしても構わない。
【００２９】
Ｓ７０１において、くり抜き描画最適化処理部２１は、くり抜き描画に関する描画命令を検知し、そのくり抜き描画に関する描画命令を検知するたびに、以下のＳ７０２およびＳ７０３の処理を行う。すなわち、くり抜き描画に関する描画命令として、図３で示したようなＸＡＸ法などで記述されたものがあれば、そのくり抜き描画に関して、以下のＳ７０２〜Ｓ７０３の処理を行うことになる。ここでは、くり抜き描画に関する描画命令に、図３で説明したような描画ビットマップ（３０１，３０３，３１１，３１３，３２１，３２３）と、属性ビットマップに基づき生成された属性毎のマスクビットマップ（３０２，３１２，３２２）とが含まれている。
【００３０】
ステップＳ７０２において、くり抜き描画最適化処理部２１は、図８を用いて後述するように、当該くり抜き描画から、属性ごとの外接矩形の抽出処理を行う。
【００３１】
ステップＳ７０３において、くり抜き描画最適化処理部２１は、図１１を用いて後述するように、Ｓ７０２で抽出された属性ごとの外接矩形に基づいて、イメージ描画命令変換処理を行う。
【００３２】
図８は、Ｓ７０２においてくり抜き描画最適化処理部２１により実行される外接矩形抽出処理の詳細を示すフローチャートである。
【００３３】
ステップＳ８０１において、くり抜き描画最適化処理部２１は、属性ごとのマスクビットマップ（または属性ビットマップ）に基づいて、当該くり抜き描画に含まれる属性を判定し、属性ごとに処理対象として、以下のＳ８０２とＳ８０３の処理を繰り返し実行する。
【００３４】
ステップＳ８０２において、くり抜き描画最適化処理部２１は、現在処理対象としている属性のマスクビットマップに基づいて、その属性の外接矩形領域を特定する。例えば、図９の９０１は、ある属性のマスクビットマップを表している。図９のマスクビットマップ９０１は、図３の３０２、３１２、３２２などで示したように、マスクビットマップの１の部分（図９では黒の部分）が、くり抜き対象画像中のくり抜きたい画素を示している。マスクビットマップ９０１において、くり抜きたい画素の部分を囲む最小の外接矩形を求める。図９のマスクビットマップ９０１では、マスクビットマップの１の部分を囲む外接矩形９０２が、Ｓ８０２において求める領域となる。なお、本実施例では、処理対象の属性のマスクビットマップに基づいて外接矩形を求めるようにしているが、これに限るものではなく、当該描画ビットマップの各画素の属性を示す属性ビットマップがあれば、これに基づいて判定するようにしてもよい。
【００３５】
ステップＳ８０３において、くり抜き描画最適化処理部２１は、描画ビットマップと当該処理対象の属性のマスクビットマップのそれぞれから、Ｓ８０２で求めた外接矩形領域に対応する部分（部分描画ビットマップと部分マスクビットマップ）を切り出す。例えば、図９のマスクビットマップ９０１から外接矩形９０２に対応する部分を切り出すと、部分マスクビットマップ９１１が得られる。その後、当該処理対象の属性に関するくり抜き描画命令における描画ビットマップとマスクビットマップを、当該切り出した部分描画ビットマップと部分マスクビットマップで置換する。
【００３６】
図１０は、図３で示したくり抜き描画の例に対して、図８の外接矩形抽出処理を適用した後のくり抜き描画を示す。図３の３０１〜３２４は、それぞれ図１０の１００１〜１０２４に対応している。図３の例において、グラフィック属性については、Ｓ８０２で求められる外接矩形が処理対象のマスクビットマップのサイズと同じなので、図１０のグラフィック属性のくり抜き描画１００１〜１００３は、図３のくり抜き描画３０１〜３０３と同じである。一方、図３の例において、イメージ属性およびテキスト属性については、Ｓ８０２で求められるそれぞれの外接矩形は処理対象のマスクビットマップのサイズより小さい。したがって、外接矩形抽出処理を適用した後のイメージ属性のくり抜き描画で用いられる部分描画ビットマップ１０１１，１０１３および部分マスクビットマップ１０１２は、外接矩形抽出処理適用前の描画ビットマップ３１１，３１３およびマスクビットマップ３１２より、サイズが小さくなっている。また、外接矩形抽出処理適用後のテキスト属性のくり抜き描画で用いられる部分描画ビットマップ１０２１，１０２３および部分マスクビットマップ１０２２も、外接矩形抽出処理適用前の描画ビットマップ３２１，３２３およびマスクビットマップ３２２より、サイズが小さくなっている。なお、外接矩形領域のサイズがマスクビットマップ（もしくは描画ビットマップ）のサイズと一致する属性（図１０ではグラフィック属性）については、ステップＳ８０３の処理をスキップするように構成しても構わない。
【００３７】
以上述べたように、図８の外接矩形抽出処理により、図３のような、くり抜き描画で用いられる描画ビットマップおよび属性毎のマスクビットマップを、図１０のような部分描画ビットマップおよび部分マスクビットマップに置換するので、データサイズを小さくすることができる。
【００３８】
図１１は、Ｓ７０３においてくり抜き描画最適化処理部２１により実行されるイメージ描画命令変換処理の詳細を示すフローチャートである。図１１で処理対象となる描画命令は、Ｓ７０２で外接矩形抽出処理が行われ、図１０のようなくり抜き描画に置換された描画命令である。
【００３９】
ステップＳ１１０１において、くり抜き描画最適化処理部２１は、属性ごとのマスクビットマップ（または属性ビットマップ）に基づいて、当該くり抜き描画に含まれる属性を判定し、属性ごとに処理対象として、以下のＳ１１０２〜Ｓ１１０３の処理を繰り返し実行する。
【００４０】
ステップＳ１１０２において、くり抜き描画最適化処理部２１は、当該処理対象の属性のくり抜き描画で用いられる部分描画ビットマップが、単一属性のみで構成されているか判定する。単一属性のみで構成される場合は、ステップＳ１１０３に進み、複数の属性が含まれていると判断した場合はステップＳ１１０３の処理をスキップする。
【００４１】
単一属性かどうかの判定手法としては、以下の手法が考えられる。例えば、図１０の部分マスクビットマップを参照し、当該処理対象の属性の部分マスクビットマップの全ての値が１（図では黒）である場合に、当該処理対象の属性のくり抜き描画の部分描画ビットマップは、単一の属性のみで構成されると判定できる。また、別の手法として、当該処理対象の属性の部分マスクビットマップの領域座標に基づいて、属性ビットマップにおける対応する位置の領域を特定し、当該特定した属性ビットマップ内の領域に含まれる属性の数をカウントし、単一の属性のみで構成されるか否かを判定するようにしてもよい。
【００４２】
ステップＳ１１０３において、くり抜き描画最適化処理部２１は、その属性のくり抜き描画について、ＸＡＸ法のくり抜き描画命令を、その属性の部分描画ビットマップを描画する１つの画像描画命令に変換する。さらに、当該変換後の画像描画命令が、他の属性のくり抜き描画よりも前に実行されるように描画命令の順序を変更する。例えば、図１０の例では、単一の属性で構成される部分マスクビットマップは、イメージ属性のマスクビットマップ１０１２のみであるので、イメージ属性のくり抜き描画（図１０の（Ｉ））に対して、ステップＳ１１０３の処理が行われる。図１２の（１）で示される１２１１〜１２１４は、図１０の（Ｉ）の１０１１〜１０１４を改めて示したものである。図１２（１）のくり抜き描画１２１１〜１２１３に対して、ステップＳ１１０３の処理を実行すると、図１２の（２）のように、部分描画ビットマップ１２２１を描画する画像描画命令に変換される。なお、図１２の（１）と（２）を比較すれば分かるように、部分描画ビットマップ１２２１を描画した結果１２２４と、くり抜き描画１２１１〜１２１３で描画した結果１２１４は同等となっている。そして、さらにこの画像描画命令を他のくり抜き描画よりも前に実行されるように順序を変更すると、図１０のくり抜き描画命令群は、イメージ属性の画像描画命令が先頭となり、図１３のようになる。図１３では、イメージ属性の画像描画命令１３１１が最初に実行され、その後、ステップＳ１１０３の処理が行われなかったグラフィック属性のくり抜き描画１３０１〜１３０３、テキスト属性のくり抜き描画１３２１〜１３２３が実行されるように順序変更される。
【００４３】
図１１のイメージ描画命令変換処理により、図１０のようなくり抜き描画で用いられる部分描画ビットマップおよび部分マスクビットマップのうち、部分描画ビットマップが単一属性で構成されるくり抜き描画命令については、図１３のように部分描画ビットマップを描画する画像描画命令に置換されるので、更に、データサイズを削減でき、且つ、描画命令の数も減らすことができる。
【００４４】
以上述べたように、プリンタドライバのくり抜き描画最適化処理部２１が、くり抜き描画に対して図８の外接矩形抽出処理を行うことで、処理に時間のかかるくり抜き描画領域を小さくし、さらに、図１１のイメージ描画命令変換処理により、くり抜き描画の代わりに比較的処理に時間のかからない画像描画命令に置き換えるので、処理時間を短縮することができる。
【００４５】
（実施例２）
図１１のくり抜き描画最適化処理部２１により実行されるイメージ描画命令変換処理の別実施例を、図１４のフローチャートを用いて説明する。それ以外の処理については、実施例１と同様である。
【００４６】
図１４のステップＳ１１０１〜Ｓ１１０３の処理は、図１１のステップＳ１１０１〜Ｓ１１０３の処理と同様である。したがって、Ｓ１１０３の処理が終わった時点では、前述したように、図１０のくり抜き描画のうち、単一属性で構成されるくり抜き描画命令が画像描画命令に変換され、図１３のような描画命令群となっている。
【００４７】
ステップＳ１４０４において、くり抜き描画最適化処理部２１は、Ｓ１１０１〜Ｓ１１０３の処理後に残っているくり抜き描画命令で用いられる部分描画ビットマップについて、Ｓ１１０３で画像描画命令に変換された属性の描画を含まないものがあるか判定する。含まないものがあると判定した場合はステップＳ１４０５に進み、残っている全てのくり抜き描画命令が、Ｓ１１０３で画像描画命令に変換された属性の描画の少なくとも一部を含むと判定した場合は、そのまま処理を終了する。
【００４８】
すなわち、図１３の例では、ステップＳ１４０４において、グラフィック属性のくり抜き描画命令と、テキスト属性のくり抜き描画命令とを判定対象とする。グラフィック属性のくり抜き描画命令で用いられる部分描画ビットマップ１３０１については、その左下の部分にＳ１１０３で画像描画命令に変換されたイメージ属性の描画を含んでいる。一方、テキスト属性のくり抜き描画命令で用いられる部分描画ビットマップ１３２１については、その右下の部分にグラフィック属性の描画の一部を含んでいるが、Ｓ１１０３で画像描画命令に変換されたイメージ属性の描画は全く含んでいない。したがって、テキスト属性のくり抜き描画命令が、Ｓ１１０３で画像描画命令に変換されたイメージ属性の描画は含んでいないので、ステップＳ１４０５に進む。
【００４９】
ステップＳ１４０５において、くり抜き描画最適化処理部２１は、画像描画命令に変換済みの属性の描画を含まないくり抜き描画命令について、部分描画ビットマップを描画する画像描画命令に変換し、他のくり抜き描画命令よりも前に処理されるように順序変更する。図１３の例では、テキスト属性のくり抜き描画命令について、部分描画ビットマップを描画する画像描画命令に変換する。そして、当該変換されたテキスト属性の画像描画命令が、グラフィック属性のくり抜き描画よりも前に処理されるように順序変更する。その結果、図１３の描画命令群は、図１５のような描画命令群になる。
【００５０】
図１５では、まず最初にイメージ属性の部分描画ビットマップ１５１１が画像描画命令により描画され、次に、テキスト属性の部分描画ビットマップ１５２１が画像描画命令により描画されるように変換されている。その後、グラフィック属性のくり抜き描画がＸＡＸ法で実行されるようになっている。テキスト属性の部分描画ビットマップ１５２１の右下の部分にはグラフィック属性の描画の一部が含まれているので、その描画結果１５２４の右下の部分にもグラフィック属性の描画が含まれている。しかしながら、その後に実行されるグラフィック属性のくり抜き描画により、その部分は上書きされるので、結果的に、グラフィック属性として画像処理が行われることになる。
【００５１】
図１４のイメージ描画命令変換処理によれば、画像描画命令に置換されるくり抜き描画命令が増えるので、更に、データサイズを削減でき、且つ、描画命令の数も減らすことができる。
【００５２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2018147259.tif 000003
【図２】
2018147259.tif 000004
【図３】
2018147259.tif 000005
【図４】
2018147259.tif 000006
【図５】
2018147259.tif 000007
【図６】
2018147259.tif 000008
【図７】
2018147259.tif 000009
【図８】
2018147259.tif 000010
【図９】
2018147259.tif 000011
【図１０】
2018147259.tif 000012
【図１１】
2018147259.tif 000013
【図１２】
2018147259.tif 000014
【図１３】
2018147259.tif 000015
【図１４】
2018147259.tif 000016
【図１５】
2018147259.tif 000017