(57)【特許請求の範囲】
【請求項１】
デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置であって、
入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、
入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、
ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段とを備え、
前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記色変換手段は、
入力された第１のオブジェクト画像データがマスクと判定され、その次に入力された第２のオブジェクト画像データがマスクではないと判定された場合、
前記第２のオブジェクト画像データにおける黒の画素に対応する位置における、前記第１のオブジェクト画像データの画素の色と、前記第１のオブジェクト画像データに対応するラスタオペレーションコードと前記第２のオブジェクト画像データに対応するラスタオペレーションコードとの組み合わせと、に応じて、前記第２のオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記第１のオブジェクト画像データに対応するラスタオペレーションコードが、ラスタオペレーションの色表現形式における各色成分ごとに、前記第１のオブジェクト画像データにおいて当該色成分が「有」を示す値である画素は背景の画素の値を演算結果とし、前記第１のオブジェクト画像データにおいて当該色成分が「無」を示す値である画素は「無」を示す値を演算結果とすることを示すものであり、
前記第２のオブジェクト画像データに対応するラスタオペレーションコードが、ラスタオペレーションの色表現形式における各色成分ごとに、前記第２のオブジェクト画像データにおいて当該色成分が「有」を示す値である画素は「有」を示す値を演算結果とし、前記第２のオブジェクト画像データにおいて当該色成分が「無」を示す値である画素は背景の画素の値を演算結果とすることを示すものである場合、
前記色変換手段は、
前記第２のオブジェクト画像データにおける黒の画素の値を、当該画素に対応する位置における前記第１のオブジェクト画像データの画素の色が白である場合は、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、
前記第２のオブジェクト画像データにおける黒の画素の値を、当該画素に対応する位置における前記第１のオブジェクト画像データの画素の色が黒である場合は、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることを特徴とする画像処理装置。
【請求項４】
デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置であって、
入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、
入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、
ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段とを備え、
前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることを特徴とする画像処理装置。
【請求項５】
請求項１または４に記載の画像処理装置であって、
前記マスク判定手段は、入力された描画用オブジェクトのオブジェクト画像データがマスクである可能性があるかどうかを判定し、マスクである可能性があると判定した場合であって、次に入力された描画用オブジェクトが所定の条件を満たす場合に、先に入力された描画用オブジェクトのオブジェクト画像データがマスクであると判定することを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記マスク判定手段は、前記入力された描画用オブジェクトのオブジェクト画像データの全画素が白または黒であり、ラスタオペレーションコードが所定のコードである場合に、前記入力された描画用オブジェクトのオブジェクト画像データがマスクである可能性があると判定することを特徴とする画像処理装置。
【請求項７】
請求項５または６に記載の画像処理装置であって、
前記所定の条件は、次に入力された描画用オブジェクトのオブジェクト画像データの描画領域が、先に入力された描画用オブジェクトのオブジェクト画像データの描画領域と同一であり、
次に入力された描画用オブジェクトのラスタオペレーションコードと、先に入力された描画用オブジェクトのラスタオペレーションコードとが所定の組み合わせであることを特徴とする画像処理装置。
【請求項８】
請求項１〜７のいずれか１項に記載の画像処理装置であって、
ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを各色成分について二値化する二値化手段をさらに備え、
前記演算手段は、二値化されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なうことを特徴とする画像処理装置。
【請求項９】
デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置としてコンピュータを機能させる画像処理プログラムであって、
入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、
入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、
ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段としてコンピュータを機能させ、
前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることを特徴とする画像処理プログラム。
【請求項１０】
デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置としてコンピュータを機能させる画像処理プログラムであって、
入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、
入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、
ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段としてコンピュータを機能させ、
前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関するものであり、特に、ラスタオペレーションの前処理に関する。
【背景技術】
【０００２】
例えば、特許文献１に記載されているように、画像処理装置において、既に描画されている画素の値（デスティネーション）と、これから描画しようとする画素の値（ソース）とを演算して、その演算結果を画素に反映させるラスタオペレーション（ＲＯＰ）が知られている。ラスタオペレーションでは、描画対象のオブジェクト同士の重なりを、論理演算等を用いることにより容易に表現することができる。
【０００３】
描画対象となるオブジェクトの中には、部分的に透過領域を有しているものがある。このような透過領域を有するオブジェクトを他のオブジェクトに重ねる場合、透過領域を有するオブジェクトをソースとして単純に論理演算を行なうと、透過部分が不透明の白と扱われて、透過部分によって下のオブジェクトが消されてしまうことになる。
【０００４】
これを避けて透過部分から下のオブジェクトが透けて見えるようにするために、透過部分に対応したマスクと、実画像データとを用いて２段階でラスタオペレーションを行なう手法が用いられている。この手法では、透過部分以外を黒で塗りつぶしたマスクとデスティネーションとのＡＮＤ演算を行ない、その演算結果と透過部分を黒で塗りつぶした実画像データとのＯＲ演算を行なうことで透過部分から下のオブジェクトが透けて見える画像を得ることができる。
【特許文献１】特開２００６−１３５９３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ラスタオペレーションを行なうプリンタドライバ、プリンタコントローラ等は、ＲＧＢ形式で表現されたオブジェクトの画像データと演算を指定するＲＯＰコードとをオペレーティングシステムあるいはアプリケーション等から入力し、画像データをＣＭＹＫ形式に変換してＲＯＰコードに従った演算を行なう。
【０００６】
ところでＣＭＹＫ形式で印刷を行なう場合、一般に、各画素は２値化されたＣＭＹＫ形式で表現されるが、黒の画素の表現としては、Ｃ＝Ｍ＝Ｙ＝１、Ｋ＝０とする、いわゆるリアルブラックを用いる場合と、Ｃ＝Ｍ＝Ｙ＝Ｋ＝０とする、いわゆるコンポジットブラックを用いる場合とがある。一般に、リアルブラックを用いた方が黒の再現性がよくなり、また、色ずれのおそれもないため、オブジェクトの黒部分はリアルブラックで表現することが望ましいケースが多い。なお、ここでは、ドットを打つ場合を「０」、ドットを打たない場合を「１」としている。
【０００７】
ところが、マスクの黒部分は、Ｃ、Ｍ、Ｙ、Ｋそれぞれに対して、デスティネーションとの論理演算を行なうため、ＣＭＹＫとも０とする必要がある。したがって、オブジェクトの黒部分を一律にリアルブラックで表現すると、マスクとしての機能を果たさないことになる。
【０００８】
そこで、本発明は、透過領域を有する描画オブジェクトを対象としたラスタオペレーションの際に、マスクの機能を損なわず、色の再現性を良好にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明の第１の態様である画像処理装置は、デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置であって、入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段とを備え、前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることを特徴とする。
【００１０】
ここで、前記色変換手段は、入力された第１のオブジェクト画像データがマスクと判定され、その次に入力された第２のオブジェクト画像データがマスクではないと判定された場合、前記第２のオブジェクト画像データにおける黒の画素に対応する位置における、前記第１のオブジェクト画像データの画素の色と、前記第１のオブジェクト画像データに対応するラスタオペレーションコードと前記第２のオブジェクト画像データに対応するラスタオペレーションコードとの組み合わせと、に応じて、前記第２のオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることができる。
また、前記第１のオブジェクト画像データに対応するラスタオペレーションコードが、ラスタオペレーションの色表現形式における各色成分ごとに、前記第１のオブジェクト画像データにおいて当該色成分が「有」を示す値である画素は背景の画素の値を演算結果とし、前記第１のオブジェクト画像データにおいて当該色成分が「無」を示す値である画素は「無」を示す値を演算結果とすることを示すものであり、前記第２のオブジェクト画像データに対応するラスタオペレーションコードが、ラスタオペレーションの色表現形式における各色成分ごとに、前記第２のオブジェクト画像データにおいて当該色成分が「有」を示す値である画素は「有」を示す値を演算結果とし、前記第２のオブジェクト画像データにおいて当該色成分が「無」を示す値である画素は背景の画素の値を演算結果とすることを示すものである場合、前記色変換手段は、前記第２のオブジェクト画像データにおける黒の画素の値を、当該画素に対応する位置における前記第１のオブジェクト画像データの画素の色が白である場合は、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、前記第２のオブジェクト画像データにおける黒の画素の値を、当該画素に対応する位置における前記第１のオブジェクト画像データの画素の色が黒である場合は、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることができる。
【００１１】
上記課題を解決するため、本発明の第２の態様である画像処理装置は、デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置であって、入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段とを備え、前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることを特徴とする。
【００１２】
いずれの態様においても、具体的には、前記マスク判定手段は、入力された描画用オブジェクトのオブジェクト画像データがマスクである可能性があるかどうかを判定し、マスクである可能性があると判定した場合であって、次に入力された描画用オブジェクトが所定の条件を満たす場合に、先に入力された描画用オブジェクトのオブジェクト画像データがマスクであると判定することができる。
【００１３】
この場合、前記マスク判定手段は、前記入力された描画用オブジェクトのオブジェクト画像データの全画素が白または黒であり、ラスタオペレーションコードが所定のコードである場合に、前記入力された描画用オブジェクトのオブジェクト画像データがマスクである可能性があると判定することができる。
【００１４】
また、前記所定の条件は、次に入力された描画用オブジェクトのオブジェクト画像データの描画領域が、先に入力された描画用オブジェクトのオブジェクト画像データの描画領域と同一であり、次に入力された描画用オブジェクトのラスタオペレーションコードと、先に入力された描画用オブジェクトのラスタオペレーションコードとが所定の組み合わせであることとすることができる。
【００１５】
さらに、ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを各色成分について二値化する二値化手段をさらに備え、前記演算手段は、二値化されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なうようにしてもよい。これにより、メモリ容量を削減し、また、処理速度を向上させることができる。
【００１６】
上記課題を解決するため、本発明の第３の態様である画像処理プログラムは、デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒成分を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置としてコンピュータを機能させる画像処理プログラムであって、入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段としてコンピュータを機能させ、前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値、あるいは、黒成分のみで黒を表現する値とすることを特徴とする。
【００１７】
上記課題を解決するため、本発明の第４の態様である画像処理プログラムは、デスティネーションに対するソースとして、オブジェクト画像データとラスタオペレーションコードとを含む描画用オブジェクトを入力し、黒を含む複数の色成分による色表現形式でラスタオペレーションを行なう画像処理装置としてコンピュータを機能させる画像処理プログラムであって、入力されたオブジェクト画像データがマスクであるかどうかを判定するマスク判定手段と、入力されたオブジェクト画像データをラスタオペレーションの色表現形式に変換する色変換手段と、ラスタオペレーションの色表現形式に変換されたオブジェクト画像データを用いて、対応するラスタオペレーションコードに従った演算を行なう演算手段としてコンピュータを機能させ、前記色変換手段は、マスクと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における前記複数の色成分で黒を表現する値とし、マスクではないと判定されたオブジェクト画像データにおける黒の画素を、ラスタオペレーションの色表現形式における黒成分のみで黒を表現する値とすることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、透過領域を有する描画オブジェクトを対象としたラスタオペレーションの際に、マスクの機能を損なわず、色の再現性を良好にすることができる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施の形態について図面を参照して説明する。図１は、本実施形態に係る画像処理装置１０の構成を示すブロック図である。画像処理装置１０は、ページを構成する描画用オブジェクト群を順次入力し、２値化されたページデータを出力する。画像処理装置１０は、例えば、プリンタドライバ、プリンタコントローラ等として機能することができる。
【００２０】
描画用オブジェクトは、オペレーティングシステム、アプリケーション等から出力されるデータであり、ＲＧＢ形式で表現されたオブジェクト画像データと、ラスタオペレーションにおける演算を指定するＲＯＰコードとを含んでいる。２値化ページデータはページを構成する各画素をＣＭＹＫそれぞれ１ビットで表現したデータである。
【００２１】
画像処理装置１０は、ＣＰＵ等の処理装置１００とメモリ２００とを備え、バス３００で接続されている。処理装置１００は、入力された描画用オブジェクトがマスクであるかどうかを判定するマスク判定部１１０、ＲＧＢ形式の画像データを、ルックアップテーブル等を用いてＣＭＹＫ形式の画像データに変換する色変換部１２０、パターンディザや誤差拡散によりＣＭＹＫの二値化を行なう二値化処理部１３０、ラスタオペレーションを行なうＲＯＰ演算部１４０を備えている。各機能部は、プログラムの実行によるソフトウェア的に実現してもよいし、ワイヤードロジック等によるハードウェア的に実現してもよい。
【００２２】
メモリ２００には、ラスタオペレーションにおける描画済の画像データを格納するデスティネーション領域２１０、入力された描画用オブジェクトに含まれるオブジェクト画像データを格納するソース領域２２０、マスク判定部１１０によりマスクの可能性があると判定されたオブジェクト画像データを一時的に格納するマスク用バッファ領域２３０、描画用オブジェクトに含まれるＲＯＰコードを格納するＲＯＰコード領域２４０、その他の作業に用いるための作業用領域２５０が形成される。
【００２３】
本実施例では、図２に示すように、ＲＧＢ各８ビットで表わされたオブジェクト画像データを色変換部１２０がＣＭＹＫ各８ビットの画像データに変換し、二値化処理部１３０がＣＭＹＫ各１ビットの画像データに変換するものとする。そして、ＲＯＰ演算部１４０は、二値化された後にラスタオペレーション演算を行なう。このように２値化処理を行なった後にラスタオペレーション演算を行なうことで、多値のままラスタオペレーション演算を行なうのに比べ、メモリ２００の使用容量を減らすとともに処理速度を早めることができる。ただし、本発明は多値の状態でラスタオペレーション演算を行なう場合にも適用することができる。
【００２４】
また、本発明は、ＣＭＹＫ形式のラスタオペレーション演算に限られず、例えば、赤と黒のような２色で印刷を行なう場合、その他の色表現形式にも適用することができる。特に黒のように表現法が複数存在する色を含む場合に効果的に適用することができる。この場合もあらかじめ各色について二値化を行なった後にラスタオペレーション演算を行なうことでメモリ２００の使用容量を減らすとともに処理速度を早めることができる。
【００２５】
ここで、ＲＯＰ演算部１４０が行なうラスタオペレーションにおける、透過領域を有するオブジェクトの取り扱いの一般的な手法について説明する。ここでは、図４（ａ）に示す背景画像２０の上に、図４（ｂ）に示す星形が描かれ周囲に透過領域を有する矩形のオブジェクト３０を重ね合わせて、図４（ｃ）に示すような星形の周辺の透過領域から背景画像２０が透けて見える重畳画像４０を作成する場合を例に説明する。
【００２６】
ラスタオペレーションに用いる論理演算としてＡＮＤとＯＲとがある。黒を「０」、白を「１」で表わす場合、デスティネーションＤとソースＳとのＡＮＤ演算の結果と、ＯＲ演算の結果とは表１に示すとおりとなる。この演算結果から、ＡＮＤ演算を行なうとソースが黒い画素は黒くなり、ソースが白い画素はデスティネーションの値が保持されることがわかる。また、ＯＲ演算を行なうとソースが白い画素は白くなり、ソースが黒い画素はデスティネーションの値が保持されることがわかる。
【表１】
0005039620.tif 000002
単純に背景画像２０と透過領域を有するオブジェクト３０とを各画素についてＯＲ演算を行なうと、図４（ｄ）に示すように、オブジェクト３０の透過領域が透過せずに背景画像２０が消された重畳画像４０ｘが得られてしまう。また、背景画像２０と透過領域を有するオブジェクト３０とを各画素についてＡＮＤ演算を行なうと、図４（ｅ）に示すように、背景画像２０によってオブジェクト３０が塗りつぶされた重畳画像４０ｙが得られてしまう。
【００２７】
そこで、透過領域を有する画像データ３０については、図４（ｆ）に示すような透過部分以外を黒で塗りつぶしたオブジェクト３０に対応したマスク３０ｍと、図４（ｇ）に示すような透過部分を黒で塗りつぶしたオブジェクト３０に対応した実画像データ３０ａとを用いて以下のような演算を行なう。なお、マスク３０ｍおよび実画像データ３０ａは、オペレーティングシステムあるいはアプリケーションが必要に応じて作成する。また、本説明では簡単のため、画素を黒「０」白「１」の２値としているが、ＣＭＹＫ形式で処理を行なう場合は、各色でラスタオペレーションを行なうため、マスクにおける塗りつぶしの黒はＣ＝Ｙ＝Ｍ＝Ｋ＝０とする必要がある。ＣＭＹＫ各１ビットではなく、８ビット等の多値の状態でラスタオペレーションを行なう場合には各ビットを０にする。
【００２８】
まず、図５（ａ）に示すように、背景画像２０をソースＳとして、Ｄ＝Ｓの演算を行なう。これにより、背景画像２０がデスティネーションとなる。次いで、図５（ｂ）に示すように、マスク３０ｍをソースＳとして、Ｄ  ＡＮＤ  Ｓの演算を行なう。ＡＮＤ演算を行なうとソースが黒い画素は黒くなり、ソースが白い画素はデスティネーションの値が保持されることから、背景画像２０にマスク３０ｍの黒い部分が重ねられた重畳画像４０ａがデスティネーションとなる。そして、図５（ｃ）に示すように、実画像データ３０ａをソースＳとして、Ｄ  ＯＲ  Ｓの演算を行なう。ＯＲ演算を行なうとソースが白い画素は白くなり、ソースが黒い画素はデスティネーションの値が保持されることから、星形の周辺の透過領域から背景画像２０が透けて見える重畳画像４０を得ることができる。ただし、演算およびオブジェクトの組み合わせはこれに限られず、他の組み合わせによっても重畳画像４０を得ることができる。
【００２９】
次に、本実施形態における画像処理装置１０の処理について図３のフローチャートを参照して説明する。本処理はページを構成する描画用オブジェクトを順次読込んで、２値化ページデータとして出力する処理である。各描画用オブジェクトはオブジェクト画像データとＲＯＰコードとを含んでいるが、そのオブジェクト画像データがマスクであるかマスク以外の実画像であるかを示す情報は含まれていないものとする。なお、マスクではないオブジェクト画像データは通常データと称するものとする。
【００３０】
画像処理装置１０は、オペレーティングシステムあるいは他のアプリケーション等から描画用オブジェクトを読み込む（Ｓ１０１）。画像処理装置１０は、描画用オブジェクトを受信すると、オブジェクト画像データをソース領域２２０に格納し、ＲＯＰコードをＲＯＰコード領域２４０に格納する。
【００３１】
ここで、マスク用バッファ領域２３０にデータが格納されているかどうかを判断する（Ｓ１０２）。マスク用バッファ領域２３０は、マスク判定部１１０によりマスクの可能性があると判定されたオブジェクト画像データを一時的に格納する領域であり、マスク用バッファ領域２３０にデータが格納されている状態は、直前に読み込んだ描画用オブジェクトに含まれるオブジェクト画像データがマスクである可能性があると判断された場合を示すことになる。
【００３２】
この結果、マスク用バッファ領域２３０にデータが格納されていない場合（Ｓ１０２：Ｎｏ）には、読み込んだ描画用オブジェクトのオブジェクト画像データがマスクである可能性があるかどうかを判定する（Ｓ１０３）。一般に、描画用オブジェクトにはオブジェクト画像データがマスクであるかどうかの情報は含まれていない。このため、オブジェクト画像データがマスクである可能性があるかどうかの判定は以下のように行なう。
【００３３】
すなわち、次の条件１と条件２とを両方満たす場合に読み込んだ描画用オブジェクトがマスクである可能性があると判定する。ここでは、マスクである可能性の有無を判断し、確定はしない。
条件１）オブジェクト画像データの全画素が白か黒である。なお、オブジェクト画像データがＲＧＢ各８ビットで表わされている場合、白はＲ＝Ｇ＝Ｂ＝２５５であり、黒はＲ＝Ｇ＝Ｂ＝０である。
条件２）ＲＯＰコードが、Ｄ  ＡＮＤ  Ｓ、Ｄ  ＡＮＤ／  Ｓ、  Ｄ  ＯＲ  ／Ｓ、Ｄ  ＯＲ  Ｓのいずれかである。なお、「／」はＮｏｔを示す。
【００３４】
この結果、マスクである可能性があると判断した場合（Ｓ１０３：Ｙｅｓ）は、描画用オブジェクトをマスク用バッファ領域２３０に格納する。すなわち、この段階ではマスクであるという確定はできないため描画は行なわず、一時的にマスク用バッファ領域２３０に格納する。
【００３５】
一方、マスクである可能性がないと判断した場合（Ｓ１０３：Ｎｏ）は、描画用オブジェクトを通常データとして描画する（Ｓ１０５）。具体的には、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、黒の画素はＣ＝Ｍ＝Ｙ＝１、Ｋ＝０のリアルブラックに変換する。これにより描画される画像の黒の再現性を高めることができる。そして、２値化を行なった上で、ＲＯＰコードにしたがったラスタオペレーションを行なう。
【００３６】
いずれの場合も、１ページ分の処理を終了したかどうかを判断し（Ｓ１１２）、終了した場合（Ｓ１１２：Ｙｅｓ）は、デスティネーション領域２１０に格納されている画像データに基づく２値化ページデータを出力し（Ｓ１１３）、本処理を終了する。１ページ分の処理を終了していない場合（Ｓ１１２：Ｎｏ）は、次の描画用オブジェクトを読み込んで（Ｓ１０１）、上記の処理を繰り返す。
【００３７】
処理（Ｓ１０２）において、マスク用バッファ領域２３０にデータが格納されているかどうかを判断した結果、マスク用バッファ領域２３０にデータが格納されていた場合（Ｓ１０２：Ｙｅｓ）には、読み込んだ描画用オブジェクトが、マスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データであるかどうかを判断する（Ｓ１０６）。ここで、実画像データは、上述のように透過領域を有する描画用オブジェクトを描くためのマスクとセットになった描画用オブジェクトである。また、後述するようにマスク用バッファ領域２３０はこの判断に基づく処理の後にクリアされるため、マスク用バッファ領域２３０に格納されている描画用オブジェクトは、１つ前に読み込んだ描画用オブジェクトである。
【００３８】
一般に、描画用オブジェクトにはオブジェクト画像データが実画像データであるかどうかの情報は含まれていないため、オブジェクト画像データがマスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データであるかどうかの判定は以下のように行なう。
【００３９】
すなわち、次の条件３を満たし、かつ、条件４〜条件７のいずれかを満たす場合に読み込んだオブジェクト画像データがマスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データであると判断する。
条件３）マスク用バッファ領域２３０に格納されている描画用オブジェクトのオブジェクト画像と読み込んだ描画用オブジェクトのオブジェクト画像のページにおける描画範囲が同一である。例えば、両者の描画開始位置と描画サイズとが同じであれば描画範囲が同一であると判断することができる。
条件４）マスク用バッファ領域２３０に格納されている描画用オブジェクトのＲＯＰコードが「Ｄ  ＡＮＤ  Ｓ」であり、かつ、読み込んだ描画用オブジェクトのＲＯＰコードが「Ｄ  ＯＲ  Ｓ」である。
条件５）マスク用バッファ領域２３０に格納されている描画用オブジェクトのＲＯＰコードが「Ｄ  ＯＲ  ／Ｓ」であり、かつ、読み込んだ描画用オブジェクトのＲＯＰコードが「Ｄ  ＡＮＤ  Ｓ」である。
条件６）マスク用バッファ領域２３０に格納されている描画用オブジェクトのＲＯＰコードが「Ｄ  ＡＮＤ  ／Ｓ」であり、かつ、読み込んだ描画用オブジェクトのＲＯＰコードが「Ｄ  ＯＲ  Ｓ」である。
条件７）マスク用バッファ領域２３０に格納されている描画用オブジェクトのＲＯＰコードが「Ｄ  ＯＲ  Ｓ」であり、かつ、読み込んだ描画用オブジェクトのＲＯＰコードが「Ｄ  ＡＮＤ  Ｓ」である。
【００４０】
この結果、読み込んだオブジェクト画像データがマスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データであると判断した場合（Ｓ１０６：Ｙｅｓ）は、マスク用バッファ領域２３０に格納されている描画用オブジェクトはその実画像データとセットのマスクであると判定できる。したがって、マスク用バッファ領域２３０に格納されている描画用オブジェクトをマスクとして描画する。（Ｓ１０７）。
【００４１】
具体的には、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、黒の画素はＣ＝Ｍ＝Ｙ＝Ｋ＝０のコンポジットブラックに変換する。これによりラスタオペレーションでマスクとして機能することができるようになる。そして、２値化を行なった上で、ＲＯＰコードにしたがったラスタオペレーションを行なう。
【００４２】
そして、読み込んだオブジェクト画像データは通常データとして描画する（Ｓ１０８）。この描画処理は、条件４〜７のうち、該当した条件に応じて変化させる。
【００４３】
条件４に該当する場合は、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、読み込んだオブジェクト画像データの各画素の位置に対応するマスク（例えば、図５の符号３０ｍ）の値に応じて以下のような処理を行なう。なお、マスクの値はマスク用バッファ領域２３０に格納されている描画用オブジェクトを参照することで得られる。
【００４４】
すなわち、対応する位置のマスク（例えば、図５の符号３０ｍ）の値が背景（白）を示す値、つまり、Ｃ＝Ｙ＝Ｍ＝Ｋ＝１の画素については、オブジェクト画像データの黒の画素をＣ＝Ｍ＝Ｙ＝Ｋ＝０のコンポジットブラックに変換する。これによりラスタオペレーションにより透過させることができるようになる。そして、２値化を行なった上で、ＲＯＰコード（Ｄ  ＯＲ  Ｓ）にしたがったラスタオペレーションを行なう（Ｓ１０８ａ）。
【００４５】
図５を例に、さらに説明すると、図５（ｂ）の符号３０ｍは、全体がマスク情報であり、白い部分が透過する部分を示している。図５（ｃ）の符号３０ａは、実画像データであるが、周辺の黒い部分は透過させる必要がある部分である。上記の条件４（読み込んだ描画用オブジェクトのＲＯＰコードが「Ｄ  ＯＲ  Ｓ」）が満たされているとすると、Ｄの４０ａと実画像データ３０ａの透過部分（星の外部の黒領域）とのＯＲ演算により、図５（ｃ）の符号４０に示すような結果が得られるため（マスクの白部分は透過する）、３０ａの透過させる星印の周囲部分は黒にしている。すなわち、マスクの機能をＣ、Ｍ、Ｙ、Ｋで有効にするため、オブジェクト画像データの黒の画素をＣ、Ｍ、Ｋ、Ｙを０にする。ＯＲ演算の場合、Ｓの値が０（黒）であればＤの値が保持されるので、透過部分は４０ａのＤの値が正しく保持される。
【００４６】
一方、対応する位置のマスク（例えば、図５の符号３０ｍ）の値が塗りつぶし（黒）を示す値、つまり、Ｃ＝Ｙ＝Ｍ＝Ｋ＝０の画素については、オブジェクト画像データ（例えば、図５の符号３０ａの星形の内側）の黒の画素をＣ＝Ｍ＝Ｙ＝１、Ｋ＝０のリアルブラックに変換する。これにより描画される画像の黒の再現性を高めることができる。そして、２値化を行なった上で、ＲＯＰコード（Ｄ  ＯＲ  Ｓ）にしたがったラスタオペレーションを行なう。
【００４７】
図５を例に、さらに説明すると、図５（ｂ）のマスク３０ｍの星印の黒部分が、最後に実データで上書きされる部分である。ＯＲ演算の場合、Ｄが黒（０）であればＳの値に書き変わる。ここの部分では黒はリアルブラックで表すことが望ましいので、Ｃ＝Ｍ＝Ｙ＝１、Ｋ＝０として処理する。先に述べたように、上書きしたい領域は、０になっているので、リアルブラックの値をＯＲ演算して正しい結果が得られる。
【００４８】
条件６に該当する場合は、条件４に該当する場合と同じ処理とすることができる（Ｓ１０８ａ）。ただし、この場合は、マスクデータは図６に示すように、条件４で用いた図４（ｆ）のマスク３０ｍの白黒を反転させたマスク３１ｍが用いられる。
【００４９】
条件５に該当する場合は、まず、実データとして、図４（ｇ）に示した実画像データ３０ａに代えて、図７に示した実画像データ３２ａが用いられる。すなわち、透過部分が白で表わされた実画像データである。マスクは、図４（ｆ）に示したマスク３０ｍを用いることができる。
【００５０】
このため、処理（Ｓ１０７）においては、図８（ａ）に示すように、背景画像２０をデスティネーションＳ、マスク３０ｍをソースＳとして、条件５のマスクに対する演算「Ｄ  ＯＲ  ／Ｓ」を行なうと画像４２ａが得られる。
【００５１】
そして、処理（Ｓ１０８）においては、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、オブジェクト画像データの黒の画素をＣ＝Ｍ＝Ｙ＝１、Ｋ＝０のリアルブラックに変換する（Ｓ１０８ｂ）。これにより描画される画像の黒の再現性を高めることができる。そして、２値化を行なった上で、ＲＯＰコード（Ｄ  ＡＮＤ  Ｓ）にしたがったラスタオペレーションを行なう。すなわち、対応する位置のマスクの値に応じて黒の変換方法を切り替える必要はなく、一律にリアルブラックに変換することができる。これにより、図８（ｂ）に示すように星形の周辺の透過領域から背景画像２０が透けて見える重畳画像４０を得ることができる。
【００５２】
条件７に該当する場合は、条件５に該当する場合と同じ処理とすることができる（Ｓ１０８ｂ）。ただし、この場合は、マスクデータは図６に示すように、条件５で用いた図４（ｆ）のマスク３０ｍの白黒を反転させたマスク３１ｍが用いられる。
【００５３】
これに対して、処理（Ｓ１０６）で、読み込んだ描画用オブジェクトが、マスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データであるかどうかを判断した結果、読み込んだオブジェクト画像データがマスク用バッファ領域２３０に格納されている描画用オブジェクトの実画像データでないと判断した場合（Ｓ１０６：Ｎｏ）は、マスク用バッファ領域２３０に格納されている描画用オブジェクトはマスクではなかったと判定できる。したがって、マスク用バッファ領域２３０に格納されている描画用オブジェクトを通常データとして描画する。（Ｓ１０９）。
【００５４】
具体的には、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、黒の画素はＣ＝Ｍ＝Ｙ＝１、Ｋ＝０のリアルブラックに変換する。これにより描画される画像の黒の再現性を高めることができる。そして、２値化を行なった上で、ＲＯＰコードにしたがったラスタオペレーションを行なう。
【００５５】
そして、読み込んだオブジェクト画像データは通常データとして描画する（Ｓ１１０）。具体的には、ＲＧＢ形式のオブジェクト画像データをＣＭＹＫ形式に変換する。この際、黒の画素はＣ＝Ｍ＝Ｙ＝１、Ｋ＝０のリアルブラックに変換する。これにより描画される画像の黒の再現性を高めることができる。
【００５６】
いずれの場合も２値化を行なった上で、ＲＯＰコードにしたがったラスタオペレーションを行なう。その後、マスク用バッファ領域２３０をクリアする（Ｓ１１１）。
【００５７】
次いで、１ページ分の処理を終了したかどうかを判断し（Ｓ１１２）、終了した場合は、デスティネーション領域２１０に格納されている画像データに基づく２値化ページデータを出力し（Ｓ１１３）、本処理を終了する。１ページ分の処理を終了していない場合は、次の描画用オブジェクトを読込んで（Ｓ１０１）、上記の処理を繰り返す。
【図面の簡単な説明】
【００５８】
【図１】画像処理装置１０の構成を示すブロック図である。
【図２】色変換処理と二値化処理の例を示す図である。
【図３】画像処理装置１０の処理を示すフローチャートである。
【図４】ラスタオペレーションにおける、透過領域を有するオブジェクトの取り扱いの一般的な手法について説明する図である。
【図５】ラスタオペレーションにおける、透過領域を有するオブジェクトの取り扱いの一般的な手法について説明する図である。
【図６】マスクの別パターンを示す図である。
【図７】実データの別パターンを示す図である。
【図８】ラスタオペレーションにおける、透過領域を有するオブジェクトの取り扱いについて説明する図である。
【符号の説明】
【００５９】
１０…画像処理装置、１００…処理装置、１１０…マスク判定部、１２０…色変換部、１３０…二値化処理部、１４０…ＲＯＰ演算部、２００…メモリ、２１０…デスティネーション領域、２２０…ソース領域、２３０…マスク用バッファ領域、２４０…ＲＯＰコード領域、２５０…作業用領域、３００…バス
【図１】
0005039620.tif 000003
【図２】
0005039620.tif 000004
【図３】
0005039620.tif 000005
【図４】
0005039620.tif 000006
【図５】
0005039620.tif 000007
【図６】
0005039620.tif 000008
【図７】
0005039620.tif 000009
【図８】
0005039620.tif 000010