(57)【特許請求の範囲】
【請求項１】
クリップ領域と描画データとの重なり部分を抽出し、該重なり部分の描画データを描画する画像処理装置において、
前記クリップ領域を格納する格納手段と、
前記格納手段に格納されている第１のクリップ領域に第１のデータを書き込む第１のデータ書込手段と、
第２のクリップ領域以降のクリップ領域の外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きする第２のデータ書込手段と、
前記第２のデータ書込手段による前記格納手段へのデータ書き込み結果に基づいて、描画データに対してクリップ処理を施すクリップ処理手段と
を具備することを特徴とする画像処理装置。
【請求項２】
前記格納手段に格納されているクリップ領域と前記第２のクリップ領域以降のクリップ領域の各々とを重ね合わせた場合における外接矩形領域を算出する演算手段を具備し、
前記第２のデータ書込手段は、前記演算手段によって算出された外接矩形領域内であって、第２のクリップ領域以降のクリップ領域の外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きすることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記格納手段に格納されているクリップ領域の外接矩形領域を格納する外接矩形領域格納手段を具備し、
前記演算手段は、前記外接矩形領域格納手段に格納されている外接矩形領域と、現在注目しているクリップ領域の外接矩形領域との論理和をとることにより、双方を重ね合わせた場合における外接矩形領域を取得することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記クリップ領域が複数供給された場合、該複数のクリップ領域が互いに重なり合う多重クリップであるか否かを判定する判定手段を具備することを特徴とする請求項１ないし３いずれかに記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、文字や図形の塗り潰し処理に伴うクリッピングを行う画像処理装置に関する。
【０００２】
【従来の技術】
従来より、ＰｏｓｔｓｃｒｉｐｔのようなＰＤＬを受信し、該ＰＤＬを解釈して、文字やグラフィック、イメージを描画する画像処理装置では、予め設定された描画領域とは別にマスキング処理を行うために、ユーザが任意の領域をクリップ領域として設定することが可能となっている。ここで、図９は、従来の画像処理装置によるマスキング処理を説明するための概念図である。
【０００３】
上記画像処理装置では、図６に示すように、元の描画データ（文字やグラフィック、イメージ）１と、ユーザによって指定されたクリップ領域２に関するクリップデータ（大きさ、形状、位置等）と基づいて、描画データ１とクリップ領域２との重なり領域３を算出し、どの部分を描画し、どの部分をマスキングするかを、自動的に判定して所定部分のみを描画するようになっている。したがって、ユーザは、クリップ領域２の内／外判定について計算したり、指定したりする必要がないというメリットがある。しかしながら、上記描画データ１とクリップ領域２との重なり領域３を算出するには複雑な演算を行う必要があり、処理の高速化を妨げていた。なお、上記重なり領域３が最終的に描画される部分である。
【０００４】
そこで、上記問題を解決するために、例えば特開平８−６３６０９号公報では、図７に示す構成の画像処理装置が開示されている。図において、コマンド処理手段１０は、入力されるＰＤＬデータを解釈し、文字やグラフィック、イメージ等のデータを輪郭図形のベクタデータとして描画手段１１に供給し、クリップ領域のデータをクリップ領域描画手段１５に供給する。描画手段１１は、コマンドをコマンドＦＩＦＯ１２に供給し、上記ベクタデータから座標データを算出することにより、ビットマップデータを生成し、該ビットマップデータをデータＦＩＦＯ１３に供給する。コマンドＦＩＦＯ１２およびデータＦＩＦＯ１３は、いわゆるバッファであり、コマンドＦＩＦＯ１２は、順次、コマンドを画像合成制御手段１４に供給し、データＦＩＦＯ１３は、順次、ビットマップデータを画像合成制御手段１４に供給する。
【０００５】
また、クリップ領域描画手段１５は、上記クリップ領域のデータに従って、クリップ領域からビットマップデータを生成し、クリップ・バッファ制御手段１６に供給する。クリップ・バッファ制御手段１６は、上記描画されたクリップ領域のビットマップデータをクリップ・バッファ１７に書き込む。
【０００６】
画像合成制御手段１４は、上記コマンドに従って、描画データのビットマップデータと、クリップ・バッファ１７に格納されているクリップのビットマップデータとの論理積をとり、マスキングをかけるか否かを選択し、描画すべき部分におけるビットマップデータのみをフレーム・バッファ制御手段１８に供給する。フレーム・バッファ制御手段１８は、上記描画すべきビットマップデータをフレーム・バッファ１９に書き込む。該フレーム・バッファ１９に書き込まれた最終的なビットマップデータは、画像データを出力するための出力装置２０に供給される。
【０００７】
ここで、図８および図９は、従来の画像処理装置の動作を説明するためのフローチャートである。まず、クリップコマンドを受信した場合の動作について図８を参照して説明する。上記画像処理装置は、ＰｏｓｔｓｃｒｉｐｔなどのＰＤＬデータを受信した際、ステップＳａ１で、コマンド処理手段１０により、クリップコマンドを受信すると、ステップＳａ２で、受信したクリップコマンドをクリップ領域描画手段１５に供給し、クリップ領域を指定する。次に、ステップＳａ３で、クリップ領域描画手段１５により、クリップ領域に外接する矩形領域の座標値（Ｘｍｉｎ、Ｙｍｉｎ）、（Ｘｍａｘ、Ｙｍａｘ）を算出した後、ステップＳａ４で、上記クリップ領域が長方形か否かを判断する。そして、クリップ領域が長方形でなければ、ステップＳａ５に進み、クリップ・バッファ１７を参照中であるか否かを判断する。
【０００８】
ここで、クリップ・バッファ１７を参照していなければ、ステップＳａ６に進み、クリップ領域に対応するクリップ・バッファ１７の位置に「１」を書き込むことにより、クリップ領域を描画し、当該処理を終了する。一方、クリップ領域が長方形でなければ、ステップＳａ７に進み、クリップ・バッファ１７を使用するか否かを示す参照フラグをオフとし、クリップ・バッファ１７を使用しないように設定し、当該処理を終了する。
【０００９】
次に、描画コマンドを受信した場合の動作について図９を参照して説明する。画像処理装置は、ＰｏｓｔｓｃｒｉｐｔなどのＰＤＬデータを受信した際、ステップＳｂ１で、コマンド処理手段１０により、描画コマンドを受信すると、ステップＳｂ２で、描画領域に外接する矩形領域の座標値（Ｘ’ｍｉｎ、Ｙ’ｍｉｎ）、（Ｘ’ｍａｘ、Ｙ’ｍａｘ）を算出した後、ステップＳｂ３で、先にクリップ・バッファ１７に描画したクリップ領域と上記描画データの矩形領域とが重なるか否かを判断する。重なっていなければマスキングする必要がないので、何もせずに当該処理を終了する。
【００１０】
一方、クリップ領域と上記描画データの矩形領域とが重なった場合には、ステップＳｂ４に進み、描画処理の実行コマンドを発行し、ステップＳｂ５で、クリップ・バッファ参照フラグがオンであるか否かを判断する。そして、クリップ・バッファ参照フラグがオンである場合には、ステップＳｂ６で、クリップ・バッファ参照モードで処理を実行する。すなわち、画像合成制御手段１４によって、ビットマップデータに変換された描画データと、該描画データの描画座標に対応する座標のクリップ・バッファ１７のデータとの論理積（ＡＮＤ）をとった後、フレーム・バッファ１９に書き込む。
【００１１】
一方、クリップ・バッファ参照フラグがオフである場合には、ステップＳｂ７で、クリップ・バッファ非参照モードで処理を実行する。すなわち、この場合、クリップ領域が長方形でないので、クリップ・バッファ１７を参照することなく、描画データをフレーム・バッファ１９に書き込む。
【００１２】
このように、上述した従来の画像処理装置では、クリップのビットマップデータをクリップ・バッファ１９に書き込む一方、文字やグラフィックスなどの描画データを描画手段１１によりビットマップデータに変換した後、画像合成制御手段１４によって、ビットマップデータに変換された描画データと、該描画データの描画座標に対応する座標のクリップ・バッファ１７のデータとの論理積（ＡＮＤ）をとった後、フレーム・バッファ１９に書き込む。この結果、クリップ・バッファ１７に描画されているクリップ領域のマスキングを、複雑な演算を必要とせずに高速に行うことができる。
【００１３】
【発明が解決しようとする課題】
ところで、ユーザが複数のクリップ領域２ａ，２ｂを明示的に初期化せずに設定した場合、Ｐｏｓｔｓｃｒｉｐｔでは、図１０に示すように、クリップ領域２ａ，２ｂとが重なる重なり領域が新たなクリップ領域２ｃとなる（以下、この状況を「多重クリップ」という）。しかしながら、上述した従来の画像処理装置では、多重クリップによる新たなクリップ領域２ｃを設定するには、クリップ・バッファ１７に描画した最初のクリップデータを消去して、クリップ領域２ａ，２ｂ同士の重なりを算出し、再び、その新たなクリップ領域２ｃをクリップ・バッファ１７に書き込む必要があり、結局、複雑な演算が必要となり、処理の高速化を妨げるという問題があった。
【００１４】
この発明は上述した事情に鑑みてなされたもので、互いに重なり合う複数のクリップ領域が設定された場合であっても、多重クリップによる描画処理を高速で実行することができる画像処理装置を提供することを目的としている。
【００１５】
【課題を解決するための手段】
上述した問題点を解決するために、請求項１の発明では、クリップ領域と描画データとの重なり部分を抽出し、該重なり部分の描画データを描画する画像処理装置において、前記クリップ領域を格納する格納手段と、前記格納手段に格納されている第１のクリップ領域に第１のデータを書き込む第１のデータ書込手段と、第２のクリップ領域以降のクリップ領域の外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きする第２のデータ書込手段と、前記第２のデータ書込手段による前記格納手段へのデータ書き込み結果に基づいて、描画データに対してクリップ処理を施すクリップ処理手段とを具備することを特徴とする。
【００１６】
また、請求項２記載の発明では、請求項１記載の画像処理装置において、前記格納手段に格納されているクリップ領域と前記第２のクリップ領域以降のクリップ領域の各々とを重ね合わせた場合における外接矩形領域を算出する演算手段を具備し、前記第２のデータ書込手段は、前記演算手段によって算出された外接矩形領域内であって、第２のクリップ領域以降のクリップ領域の外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きすることを特徴とする。
【００１７】
この発明によれば、格納手段に格納されている第１のクリップ領域に対しては、第１のデータ書込手段により第１のデータを書き込み、第２のクリップ領域以降のクリップ領域に対しては、第２のデータ書込手段により、その外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きし、クリップ処理手段により、前記第２のデータ書込手段による前記格納手段へのデータ書き込み結果に基づいて、描画データに対してクリップ処理を施すようにしたので、互いに重なり合う複数のクリップ領域が設定された場合であっても、互いに重なり合った場合の最終的なクリップ領域を取得することが可能になるとともに、多重クリップによる描画処理を高速で実行することが可能となる。
【００１８】
【発明の実施の形態】
次に図面を参照してこの発明の実施形態について説明する。
Ａ．実施形態の構成
Ａ−１．画像処理装置の構成
図１は、本発明の一実施形態による画像処理装置の構成を示すブロック図である。なお、図７に対応する部分には同一の符号を付けて説明を省略する。図において、多重クリップ判定手段２５は、重なり合ったクリップ領域が複数設定されているか否かを判定する。外接矩形領域データ格納手段２６は、クリップ領域描画手段１５により描画されたクリップ領域の輪郭に外接する矩形領域の座標データ（クリップパスという）を格納する。次に、クリップバッファ・アクセスデータ制御手段２７は、多重クリップ判定手段２５の判定結果が多重クリップであると判定された場合、複数のクリップ領域が重なった部分を新たなクリップ領域として生成する。すなわち、クリップバッファ・アクセスデータ制御手段２７は、外接矩形領域データ格納手段２６に格納されている複数のクリップパス（設定された複数のクリップ領域の輪郭に外接する矩形領域の輪郭）のうち、該当する２つのクリップパスの外接矩形領域座標データのＸ／Ｙ軸の最小値／最大値に従って、重なり部分（論理和）の矩形領域（新たなクリップ領域）を設定し、その矩形領域の内部で、かつ対応するクリップパスの外側の領域をデータ「０」とするようにアクセスすべく、クリップ領域描画手段１５を制御する。
【００１９】
Ｂ．実施形態の動作
次に、本実施形態による画像処理装置の動作について説明する。ここで、図２は、画像処理装置の動作を説明するためのフローチャートである。画像処理装置は、ＰｏｓｔｓｃｒｉｐｔなどのＰＤＬデータを受信した際、ステップＳｃ１で、コマンド処理手段１０により、クリップコマンドを受信すると、ステップＳｃ２で、多重クリップ判定手段２５により、多重クリップであるか否か、言い換えると、２度目以降のクリップコマンドであるか否かを判断する。
【００２０】
そして、多重クリップでない場合、すなわち、１番目のクリップコマンドである場合には、ステップＳｃ３に進み、受信したクリップコマンドをクリップ領域描画手段１５に供給し、クリップ領域Ｃ１を指定する（図１の▲１▼）。ここで、上記１番目のクリップ領域Ｃ１が図３（ａ）に示すような位置および形状であるとする。次に、ステップＳｃ４で、クリップ領域描画手段１５により、図３（ｂ）に示すように、クリップ領域Ｃ１に外接する矩形領域Ｓ１の座標値（Ｘｍｉｎ、Ｙｍｉｎ）、（Ｘｍａｘ、Ｙｍａｘ）を算出する。該矩形領域Ｓ１の座標値は、外接矩形領域データ格納手段２６に格納される（図１の▲２▼）。その後、ステップＳｃ５で、上記クリップ領域Ｃ１を囲む矩形領域Ｓ１が長方形か否かを判断する。そして、クリップ領域Ｃ１を囲む矩形領域Ｃ１が長方形でなければ、ステップＳｃ６に進み、クリップ・バッファ１７を参照中であるか否かを判断する。
【００２１】
ここで、クリップ・バッファ１７を参照していなければ、ステップＳｃ７に進み、クリップ領域Ｃ１に対応するクリップ・バッファ１７の位置に「１」データを書き込むことにより、すなわち、クリップ領域Ｃ１の内部に「１」データを書き込み、クリップ領域Ｃ１を描画し、当該処理を終了する。一方、クリップ領域Ｃ１を囲む矩形領域Ｓ１が長方形でなければ、ステップＳｃ８に進み、クリップ・バッファ１７を使用するか否かを示す参照フラグをオフとし、クリップ・バッファ１７を使用しないように設定し、当該処理を終了する。
【００２２】
一方、受信したクリップコマンドが多重クリップである場合、すなわち２度目以降のクリップコマンドである場合には、ステップＳｃ９に進み、クリップ領域描画手段１５により、外接矩形領域データ格納手段から前のクリップ領域Ｃ１の矩形領域Ｓ１の座標値を読み出す（図１の▲２▼）。なお、ここで、ページ設定の初期化や明示的なクリップ・バッファ１７のクリア指示があった場合には、クリップ・バッファ１７の内容を消去する。次に、ステップＳｃ１０で、図４（ａ）に示すように、前のクリップ領域Ｃ１と今回のクリップ領域Ｃ２とを囲む矩形領域Ｓ２の座標値（Ｘｍｉｎ、Ｙｍｉｎ’）、（Ｘｍａｘ’、Ｙｍａｘ）を算出する。実際には、今回のクリップ領域Ｃ２のベクトルデータから該クリップ領域Ｃ２に外接する矩形領域を求め、該矩形領域と上記矩形領域Ｓ１との論理和をとり、新たな矩形領域Ｓ２を算出する。該矩形領域Ｓ２の座標値は、外接矩形領域データ格納手段２６に供給され、データが更新される（図１の▲２▼）。そして、多重クリップ判定手段２５は、クリップバッファ・アクセスデータ制御部２７に多重クリップであることを知らせる（図１の▲３▼）。
【００２３】
多重クリップ判定手段２５から多重クリップであるという報告を受けたクリップバッファ・アクセスデータ制御部２７は、ステップＳｃ５で、上記矩形領域Ｓ２の内部で、かつ今回のクリップ領域Ｃ２の外側を、図４（ｂ）に示すように、「０」データで、クリップ・バッファに描画することにより、クリップ領域Ｃ１において重なっていない部分を消去し、重なっている領域を残す。この結果、図５に示すように、前のクリップ領域Ｃ１と今回のクリップ領域Ｃ２との重なり部分のみが「１」となって残る。そして、該重なり部分が新たなクリップ領域ＣＮＥＷとなり、該クリップ領域ＣＮＥＷを囲む矩形領域が外接矩形領域データ格納手段２６に格納される。
【００２４】
また、引き続いてコマンド処理手段１０がクリップコマンドを受信した場合は、上述した処理を繰り返し実行する。このとき、前のクリップ領域としては、上記新たなクリップ領域ＣＮＥＷを用いるようにする。この結果、クリップコマンドを受信する度にクリップ領域が更新される。
【００２５】
そして、描画コマンドを受信した場合には、前述した従来の画像処理装置と同様に、図９に示すフローチャートの処理を実行する。すなわち、画像合成制御手段１４によって、ビットマップデータに変換された描画データと、クリップ・バッファ１７に描画されたクリップデータとの論理積（ＡＮＤ）をとった後、フレーム・バッファ１９に書き込む。このように、複数のクリップ領域が設定された場合であっても、簡単な処理（演算）で、最終的なクリップ領域を生成することができるので、マスキング処理を高速で実行することができる。
【００２６】
なお、上述した実施形態では、出力装置を印刷装置として説明したが、これに限らず、ワークステーションやパソコン等のディスプレイに、例えばＤＴＰのように高品位なフォントや複雑な図形およびそのクリッピングを高速に表示する場合に適用しても有効である。
【００２７】
【発明の効果】
以上、説明したように、この発明によれば、請求項１記載の発明によれば、格納手段に格納されている第１のクリップ領域に対しては、第１のデータ書込手段により第１のデータを書き込み、第２のクリップ領域以降のクリップ領域に対しては、第２のデータ書込手段により、その外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きし、クリップ処理手段により、前記第２のデータ書込手段による前記格納手段へのデータ書き込み結果に基づいて、描画データに対してクリップ処理を施すようにしたので、互いに重なり合う複数のクリップ領域が設定された場合であっても、互いに重なり合った場合の最終的なクリップ領域を取得することができるとともに、多重クリップによる描画処理を高速で実行することができるという利点が得られる。
【００２８】
また、請求項２記載の発明によれば、請求項１記載の画像処理装置において、前記格納手段に格納されているクリップ領域と前記第２のクリップ領域以降のクリップ領域の各々とを重ね合わせた場合における外接矩形領域を演算手段によって算出し、前記第２のデータ書込手段によって、前記演算手段によって算出された外接矩形領域内であって、第２のクリップ領域以降のクリップ領域の外側に対して、前記格納手段に前記第１のデータとは異なる第２のデータを上書きするようにしたので、互いに重なり合う複数のクリップ領域が設定された場合であっても、互いに重なり合った場合の最終的なクリップ領域を取得することができるとともに、多重クリップによる描画処理を高速で実行することができるという利点が得られる。
【図面の簡単な説明】
【図１】本発明の実施形態による画像処理装置の構成を示すブロック図である。
【図２】本実施形態による画像処理装置の動作を説明するためのフローチャートである。
【図３】本実施形態による画像処理装置の動作を説明するための概念図である。
【図４】本実施形態による画像処理装置の動作を説明するための概念図である。
【図５】本実施形態による画像処理装置の動作を説明するための概念図である。
【図６】単一のクリップ領域を指定した場合におけるマスキング処理の動作を説明するための概念図である。
【図７】従来の画像処理装置の構成を示すブロック図である。
【図８】従来の画像処理装置の動作を説明するためのフローチャートである。
【図９】従来の画像処理装置の動作を説明するためのフローチャートである。
【図１０】複数のクリップ領域を指定した場合におけるマスキング処理を説明するための概念図である。
【符号の説明】
１１  描画手段
１４  画像合成制御手段（クリップ処理手段）
１５  クリップ領域描画手段（第１のデータ書込手段、演算手段）
１７  クリップ・バッファ（格納手段）
１９  フレーム・バッファ
２５  多重クリップ判定手段（判定手段）
２６  外接矩形領域データ格納手段（外接矩形領域格納手段）
２７  クリップバッファ・アクセスデータ制御部（第２のデータ書込手段）
【図１】
0003612909.tif 000002
【図２】
0003612909.tif 000003
【図３】
0003612909.tif 000004
【図４】
0003612909.tif 000005
【図５】
0003612909.tif 000006
【図６】
0003612909.tif 000007
【図７】
0003612909.tif 000008
【図８】
0003612909.tif 000009
【図９】
0003612909.tif 000010
【図１０】
0003612909.tif 000011