(57)【要約】【課題】如何なる論理演算を含む入力画像データに対しても、付加情報を基に正しい画像変換が行え、また処理速度を高めることを実現可能にする。【解決手段】画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査手段１１と、この論理演算シーケンス検査手段１１にて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成手段１２とを備えて、画像処理装置を構成する。【選択図】図１
2006341376.tif 000002
【特許請求の範囲】
【請求項１】
画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査手段と、
前記論理演算シーケンス検査手段にて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記論理演算シーケンス検査手段および前記クリップ命令生成手段での処理後の入力画像データを構成する各命令および当該入力画像データに付加されている付加情報を解釈する命令解釈手段と、
前記命令解釈手段での解釈の結果に従いつつ前記入力画像データにおける描画命令に応じて展開画像の画像メモリ内への書き込みを行う画像展開手段と、
前記命令解釈手段での解釈の結果に従いつつ前記クリップ命令生成手段での変換後のクリップ命令に応じてクリップ画像のクリップメモリ内への書き込みを行うクリップ展開手段と、
前記命令解釈手段での解釈の結果に従いつつ前記入力画像データに付加されている付加情報の付加情報メモリ内への書き込みを行う付加情報生成手段とを備えるとともに、
前記画像展開手段および前記付加情報生成手段は、前記クリップメモリ内への書き込み結果に基づき、当該書き込み結果に対応する画素について、前記画像メモリ内への書き込みおよび前記付加情報メモリ内への書き込みを行うか否かを切り換え得るものである
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記クリップ命令生成手段は、前記クリップ処理のための描画命令をクリップ命令に変換するとともに、当該クリップ命令に付随して、クリップメモリ内のクリアを指示するクリップクリア命令を生成するものである
ことを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記クリップメモリ内への書き込み内容の二値化または反転の少なくとも一方を行う二値化／反転手段を備える
ことを特徴とする請求項２または３記載の画像処理装置。
【請求項５】
前記論理演算のシーケンスを構成する描画命令のうち、前記論理演算シーケンス検査手段にて特定されたクリップ処理のための描画命令以外の描画命令を、論理演算が含まれない描画命令に変換する論理演算置換手段
を備えることを特徴とする請求項１、２、３または４記載の画像処理装置。
【請求項６】
前記画像展開手段および前記付加情報生成手段は、前記クリップメモリ内へ書き込みが行われた場合にのみ、前記クリップメモリにアクセスする手段を備える
ことを特徴とする請求項１、２、３、４または５記載の画像処理装置。
【請求項７】
コンピュータを、
画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査手段と、
前記論理演算シーケンス検査手段にて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成手段
として機能させることを特徴とする画像処理プログラム。
【請求項８】
画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査ステップと、
前記論理演算シーケンス検査ステップにて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成ステップと
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を描画するための描画命令群からなる入力画像データについて、これを印刷出力するために必要となる処理を行う画像処理装置、画像処理プログラムおよび画像処理装置方法に関するものである。
【背景技術】
【０００２】
画像を描画するための描画命令群からなる入力画像データとしては、例えば、PostScript（登録商標）レベル２のようなページ記述言語によるものが知られている。このような入力画像データを印刷出力する場合には、各描画命令（あるいは一度中間コードに変換したもの）を順次解釈し、その結果得られる画像をページメモリあるいはバンドバッファメモリの指定位置に書き込むことで、ビットマップ形式の画像データ、すなわち印刷出力可能な形式の画像データを得ることが一般的である。また、入力画像データに対して、描画オブジェクトの種類等の属性情報を含む描画オブジェクトタグのような付加情報が付加されている場合にも、各画素に対応して付加情報の保持領域に書き込み（上書き）を行えばよい。
【０００３】
ところが、例えばWindows（登録商標）のＧＤＩでサポートしている論理演算であるＲＯＰ（Raster OPeration）では、ページメモリあるいはバンドバッファメモリに既に書き込まれている画像との論理演算を行う必要がある。この論理演算は、処理負荷の増大化を招き得るものである。したがって、論理演算を行うことは、入力画像データに対する処理の高速化実現という観点からは好ましくない。
【０００４】
このことから、従来、画像処理装置の中には、ＲＯＰ処理を含む場合であっても処理の高速化を実現可能にすべく、入力画像データ中における論理演算（複数の場合を含む）に対し論理演算を行わない命令に変換可能かどうかの判定を行い、変換可能な場合には論理演算を行わない命令（複数の場合を含む）に変換したり（例えば、特許文献１参照）、さらにはその論理演算を行わない命令の最適化を行ったりするものがある（例えば、特許文献２参照）。また、入力画像データ中における論理シーケンスが、登録された論理シーケンスと一致する場合には、より多くの論理演算シーケンスを対象として論理演算を使用しない命令に変換するものも提案されている（例えば、特許文献３参照）。
【０００５】
一方、入力画像データに付加情報が付加されている場合には、その付加情報について、すでに書き込まれている付加情報に対して画像の場合と同様な論理演算を行うことは意味がない。
ただし、画像を重ね合わせるＲＯＰ処理は、ディスプレイ装置上での表示を対象として考え出されたものであり、論理演算の対象となるデータがＲＧＢ色空間で表現されることを前提としている。それに対して、印刷装置はＹＭＣＫ色空間で表現されるデータを処理するものが一般的である。したがって、印刷出力する画像について、正しいＲＯＰ処理を行うためには、ＲＧＢ色空間で演算を行い、印刷出力の前にＲＧＢ色空間からＹＭＣＫ色空間への変換を行う必要がある。
この場合において、付加情報は、画像の描画内容（グラフィックス、フォント、イメージ等の属性）を特定する情報であることから、描画内容を付加情報の中に持たせることにより、印刷装置の特性に合わせた色変換が可能となる。つまり、出力画像の高画質化を可能にする上では、付加情報が非常に重要な役割を担うのである。そのため、付加情報に対して論理演算を行うことは意味がなくても、付加情報とこれに対応する描画画像とは、その相関を確保しておく必要がある。
このことから、画像処理装置については、ＲＯＰ処理を含む場合に、論理演算の際に画像データの種別を考慮しつつ、必要に応じて付加情報を修正する機能を有することが提案されている（例えば、特許文献４参照）。
【０００６】
【特許文献１】特許第３００８９４３号公報
【特許文献２】特開２００４−０２１８８６号公報
【特許文献３】特開２００３−２７１９４８号公報
【特許文献４】特開２００２−２６９５５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、以下に述べる理由により、如何なる論理演算を含む入力画像データに対しても、付加情報を基に正しい画像変換が行え、また処理速度を高めることができるとは限らない。
【０００８】
例えば、上記の特許文献１〜３に開示されたものでは、入力画像データに含まれ得る全ての論理演算を変換対象としていない。つまり、付加情報に関しては、全く考慮されていない。そのため、付加情報が付加された入力画像データがＲＯＰ処理を含む場合には、付加情報の書き込みを正しく行うための何らかの規則が必要となり、規則がなければ正しい付加情報が得られなくなるおそれがある。
この点、何らかの規則として、特許文献４に開示された付加情報の修正機能を適用することも考えられるが、その特許文献４に開示された技術を適用すると、付加情報の修正機能によるパフォーマンス低下を招く可能性がある。すなわち、論理演算シーケンスにおけるパフォーマンス低下が生じるおそれがある。
【０００９】
そこで、本発明は、如何なる論理演算を含む入力画像データに対しても、付加情報を基に正しい画像変換が行え、また処理速度を高めることのできる画像処理装置、画像処理プログラムおよび画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記目的を達成するために案出された画像処理装置で、画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査手段と、前記論理演算シーケンス検査手段にて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成手段とを備えることを特徴とするものである。
【００１１】
また、本発明は、上記目的を達成するために案出された画像処理プログラムで、コンピュータを、画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査手段と、前記論理演算シーケンス検査手段にて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成手段として機能させることを特徴とするものである。
【００１２】
また、本発明は、上記目的を達成するために案出された画像処理方法で、画像を描画するための描画命令群からなる入力画像データについての解析を行って、当該入力画像データに含まれる画素重ね合わせのための論理演算のシーケンス単位で、当該シーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定する論理演算シーケンス検査ステップと、前記論理演算シーケンス検査ステップにて特定されたクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するクリップ命令生成ステップとを含むことを特徴とする。
【００１３】
上記構成の画像処理装置および画像処理プログラム並びに上記手順の画像処理方法によれば、論理演算のシーケンス単位で、クリップ処理を行うための描画命令を特定し、そのクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するようになっている。したがって、クリップ命令への変換後、そのクリップ命令を含む入力画像データを順次解釈して、そのクリップ命令を含む論理演算シーケンスについての処理を行う際に、クリップ命令と他の描画命令とを分離して取り扱うことで、当該処理を論理演算を含まない処理とすることが容易に実現可能となる。具体的には、例えば、他の描画命令を処理する際に、対応する画素についてのクリップ命令を参照し、その内容に応じて当該他の描画命令による描画内容の書き込みや、入力画像データに付加された付加情報の書き込みを行ったり、あるいは行わないという処理が実現可能になる。しかも、クリップ命令と他の描画命令とを分離して取り扱うことで、画像の展開処理時において論理演算を含まないようにすれば、入力画像データに付加情報が付加されている場合であっても、展開処理による描画内容と付加情報とが常に一致することになり、その付加情報を基に行われる後段処理（例えば、色変換／スクリーンの選択）が正しく行われるために出力画像の画質が向上し、また展開処理が簡略化されるため処理速度の向上も期待できる。
【発明の効果】
【００１４】
以上のように、本発明に係る画像処理方法、画像処理プログラムおよび画像処理装置では、クリップ命令と他の描画命令とを分離して取り扱い得るようにすることで、入力画像データに付加情報が付加されている場合であっても、展開処理による描画内容と付加情報とが常に一致することになり、その結果、出力画像の画質が向上や展開処理の処理速度向上等の効果を奏することになる。つまり、本発明に係る画像処理方法、画像処理プログラムおよび画像処理装置によれば、如何なる論理演算を含む入力画像データに対しても、論理演算を全く含まない命令群に変換可能であり、付加情報を基に正しい画像変換が行え、また処理速度を高めることができるのである。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づき、本発明に係る画像処理装置、画像処理プログラムおよび画像処理方法について説明する。
【００１６】
図１は、本発明に係る画像処理装置の基本的な機能構成例を示すブロック図である。図例のように、ここで説明する画像処理装置は、論理演算シーケンス検査部＆クリップ命令判定部１１と、クリップ命令生成部１２と、論理演算置換部１３と、命令解釈部１４と、画像展開部１５と、画像メモリ１６と、クリップ展開部１７と、クリップメモリ１８と、付加情報生成部１９と、付加情報メモリ２０と、色変換部２１と、出力制御部２２と、を備えている。そして、論理演算シーケンス検査部＆クリップ命令判定部１１には、入力画像データが入力されるようになっており、また画像メモリ１６からは、出力画像データが出力されるようになっている。
入力画像データは、画像を描画するための描画命令群からなるもので、演算の記述が可能なもの、すなわち論理演算（ＲＯＰ）の指示が可能なものである。また、入力画像データには、その入力画像データに対応する付加情報の列が付加されているものとする。付加情報としては、描画オブジェクトの種類等の属性情報を含む描画オブジェクトタグが、その一例として挙げられる。また、出力画像データは、印刷出力可能な形式の画像データであり、ビットマップ形式の画像データが、その一例として挙げられる。
【００１７】
論理演算シーケンス検査部＆クリップ命令判定部１１は、入力画像データについての解析を行って、その入力画像データの論理演算内容のシーケンスを検査するものである。そして、その検査結果から、論理演算のシーケンス単位で、そのシーケンスを構成する描画命令のうちの描画要素のクリップ処理を行うための描画命令を特定するようになっている。
クリップ処理とは、描画要素の部分的描画を行うための処理で、具体的には描画要素の部分的描画を行うために、ある図形を任意の形に切り取って、その切り取った描画要素をクリップ領域と呼ばれるクリップメモリ１８内の所定領域に書き込む処理をいう。
クリップ処理のための描画命令の特定は、例えば、クリップ処理に該当する演算シーケンスのパターンを予め登録しておき、入力画像データのシーケンス中に、登録しておいたパターンと同一のシーケンスがあるか否かを判断することで、行うことができる。
【００１８】
クリップ命令生成部１２は、論理演算シーケンス検査部＆クリップ命令判定部１１にて特定されたクリップ処理のための描画命令を、当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するものである。
また、クリップ命令生成部１２では、クリップ処理のための描画命令をクリップ命令に変換するだけでなく、そのクリップ命令に付随して、クリップメモリ内のクリア（消去）を指示するクリップクリア命令を生成するようにもなっている。
【００１９】
論理演算置換部１３は、論理演算のシーケンスを構成する描画命令のうち、論理演算シーケンス検査部＆クリップ命令判定部１１にて特定されたクリップ処理のための描画命令以外の描画命令を、論理演算が含まれない描画命令に変換するものである。この変換は、公知技術を利用して行えばよいため（例えば、上記特許文献１，２，３参照）、ここではその説明を省略する。
【００２０】
命令解釈部１４は、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３での処理後の入力画像データ、さらに詳しくはその入力画像データを構成する各命令（描画命令およびクリップ命令）並びに当該入力画像データに付加されている付加情報について、その解釈を行うものである。
【００２１】
画像展開部１５は、命令解釈部１４での描画命令の解釈の結果に従いつつ、画像メモリ１６上への展開処理を行うものである。すなわち、画像展開部１５は、命令解釈部１４で解釈された描画命令に応じて展開画像の画像メモリ１６内への書き込みを行う。このとき、画像展開部１５は、入力画像データの色空間から中間の色空間への色空間変換処理を行ってもよい。例えばＲＧＢ色空間のデータとして入力画像データが与えられるとき、そのままＲＧＢ色空間のデータとして画像メモリ１６に展開処理してもよいし、例えばＹＭＣＫ色空間に変換して画像メモリ１６に格納してもよい。
なお、画像展開部１５では、画像メモリ１６上への展開処理に際し、詳細を後述するように、クリップメモリ１８内への書き込み結果に基づき、当該書き込み結果に対応する画素について、画像メモリ１６への書き込みを行うか否かを切り換え得るようになっているものとする。
【００２２】
画像メモリ１６は、画像展開部１５で展開された展開画像についての画像データを保持するものである。
【００２３】
クリップ展開部１７は、命令解釈部１４でのクリップ命令の解釈の結果に従いつつ、クリップメモリ１８上へのクリップ処理を行うものである。すなわち、クリップ展開部１７は、命令解釈部１４で解釈されたクリップ命令に応じてクリップ画像のクリップメモリ１８内への書き込みを行う。このとき、クリップ展開部１７では、必要に応じて、詳細を後述するように、クリップメモリ１８内への書き込み内容の二値化または反転の少なくとも一方を行ってもよい。
【００２４】
クリップメモリ１８は、クリップ展開部１７で展開されたクリップ画像についての画像データを保持するものである。
【００２５】
付加情報生成部１９は、命令解釈部１４での解釈の結果に従いつつ、付加情報の付加情報メモリ２０内への書き込みを行うものである。この付加情報生成部１９も、画像展開部１５と同様に、クリップメモリ１８内への書き込み結果に基づき、当該書き込み結果に対応する画素について、付加情報メモリ２０への書き込みを行うか否かを切り換え得るようになっているものとする。
【００２６】
付加情報メモリ２０は、付加情報生成部１９に書き込まれる付加情報、すなわち画像メモリ１６に格納されている画像データに対応する付加情報を保持するものである。
【００２７】
色変換部２１は、画像メモリ１６に格納されている画像データを、出力する際の色空間の画像データに変換するものである。このとき、色変換部２１では、付加情報メモリ２０に格納されている付加情報を参照し、付加情報で示される画像の種別等の属性に基づき、最適な色変換処理を行うようになっている。もちろん、色変換以外の各種の画像処理を行うこともできる。
【００２８】
出力制御部２２は、画像メモリ１６に格納されている画像データについての出力制御を行うものである。
【００２９】
次に、以上のような構成の画像処理装置の具体的な実施形態について説明する。
【００３０】
図２は、本発明に係る画像処理装置の具体的な機能構成の一例を示すブロック図である。図例は、出力画像データの出力を行う画像出力装置３に付随して、画像処理装置２が設けられている場合の構成例を示している。画像出力装置３としては、画像データの記録用紙上への印刷出力を行うプリンタ装置が挙げられるが、画像データの表示出力を行うディスプレイ装置であっても構わない。
【００３１】
このような画像出力装置３に付随して設けられている画像処理装置２では、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３が、入力画像データから中間コード画像データを生成する中間コード画像データ生成部７のインタプリタの一部として、当該画像処理装置２に含まれている。また、その中間コード画像データ生成部７に付随して、中間コード画像データについての解釈を行う中間コード画像データ解釈部８をも備えている。さらに、画像処理装置２では、画像展開部１５、画像メモリ１６、クリップ展開部１７、クリップメモリ１８、付加情報生成部１９、付加情報メモリ２０、色変換部２１および出力制御部２２を備えている。なお、図１で説明した場合と同様の構成要素については、同一の符号を付している。
【００３２】
このような画像処理装置２に対しては、これと接続するホスト側装置１から入力画像データが送られてくる。ホスト側装置１では、そのホスト側装置１上で動作するアプリケーションプログラム４を使用してドキュメントを作成し得るようになっている。そして、そのドキュメントの出力にあたり、アプリケーションプログラム４は、描画情報を出力する。描画情報の形態としては、例えばWindows（登録商標）のＧＤＩが広く知られている。かかる描画情報の形態では、出力側の装置の差異を吸収し得るフォーマットとなっており、クリップ描画を論理演算の組み合わせのみにより実現し、クリップを行うための特別な仕組みを必用としないような考慮がなされている。
【００３３】
また、ホスト側装置１では、アプリケーションプログラム４が描画情報を出力すると、これをプリンタドライバ５が入力画像データに変換して出力するようになっている。ただし、近年の画像出力装置３の高解像度化に伴い、プリンタドライバ５は、画像出力装置３への直接の出力は行わずに、画像処理装置２に対して入力画像データを出力する。したがって、入力画像データは、画像処理装置２が処理可能なフォーマットのものであればよい。具体的には、ページ記述言語（ＰＤＬ）によるフォーマットのものが挙げられる。
【００３４】
このような入力画像データについての処理を行うために、画像処理装置２では、中間コード画像データ生成部７および中間コード画像データ解釈部８を備えているのである。すなわち、中間コード画像データ生成部７および中間コード画像データ解釈部８によって、ＰＤＬ等による入力画像データを、一旦、中間コード画像データに変換し、それに対し解釈および展開を行っている。ただし、画像処理装置２は、例えば画像メモリ１６の大きさがページサイズである場合には、中間コード画像データへの変換を行わずに、本発明を適用することが可能であることは言うまでもない。
【００３５】
図３は、本発明に係る画像処理装置の具体的な機能構成の他の例を示すブロック図である。図例は、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３が、プリンタドライバ５の機能の一部として、ホスト側装置１に含まれている場合の構成例を示している。なお、画像展開部１５、画像メモリ１６、クリップ展開部１７、クリップメモリ１８、付加情報生成部１９、付加情報メモリ２０、色変換部２１および出力制御部２２については、画像処理装置２側に設けられている。また、画像処理装置２は、中間コード画像データ生成部７および中間コード画像データ解釈部８を備えている。なお、図１または図２で説明した場合と同様の構成要素については、同一の符号を付している。
【００３６】
このようなプリンタドライバ５および画像処理装置２においては、アプリケーションプログラム４から出力される描画情報に対して、プリンタドライバ５のＰＤＬ生成部６がＰＤＬデータへの変換を行うとともに、そのＰＤＬデータを画像処理装置２の中間コード画像データ生成部７および中間コード画像データ解釈部８が中間コード画像データに変換して、その解釈および展開を行うようになっている。ただし、例えば画像メモリ１６の大きさがページサイズである場合には、中間コード画像データへの変換を行わずに、本発明を適用しても構わない。
【００３７】
なお、上述した図１、２または３に示した構成例における各構成要素は、コンピュータとしての機能（例えば画像処理装置２またはホスト側装置１が画像データを処理するため備えているＣＰＵ、ＡＳＩＣ、メモリ等による機能）に所定プログラムを処理させることで実現することが考えられる。ただし、その場合に、所定プログラムは、必ずしも画像処理装置２またはホスト側装置１に予めインストールされている必要はなく、画像処理装置２またはホスト側装置１に対してコンピュータ読み取り可能な記憶媒体に格納されて提供されるものであっても、または有線若しくは無線による通信手段を介して配信されるものであってもよい。つまり、上述した構成例は、コンピュータを画像処理装置として機能させる画像処理プログラムによっても実現可能である。
【００３８】
次に、以上のような構成例における処理動作例、すなわち本発明に係る画像処理方法の具体的な実施形態について説明する。図４、５は、論理演算を含む入力画像データに対する処理動作例を示すフローチャートである。
【００３９】
例えば、図３を用いて説明した構成例での処理動作を例に挙げると、アプリケーションプログラム４が入力画像データとしての描画情報を出力すると、論理演算シーケンス検査部＆クリップ命令判定部１１は、その入力画像データを順次解釈して、論理演算シーケンスの特定を行う（ステップ１０１〜１０２、以下ステップを「Ｓ」と略す）。この特定は、例えば、入力画像データのシーケンス中に、登録しておいたパターンと同一のシーケンスがあるか否かを判断して行えばよい。
【００４０】
そして、論理演算シーケンスに無関係な入力画像データについては、ＰＤＬ生成部６がＰＤＬデータへの変換を行う（Ｓ１０３）。この変換後のＰＤＬデータは、論理演算処理やクリップ処理等を必要としない描画命令に相当するものである。
【００４１】
一方、論理演算シーケンスと特定された入力画像データ群については、ＰＤＬ生成部６がＰＤＬデータへの変換を行う前に、さらに論理演算シーケンス検査部＆クリップ命令判定部１１が、論理演算のシーケンス単位で、描画要素のクリップ処理を行うための描画命令の特定を行う（Ｓ１０４）。この特定も、例えば、予め登録しておいたシーケンスのパターンとの比較において行えばよい。
【００４２】
そして、論理演算シーケンスと特定された入力画像データ群のうち、クリップ処理のための描画命令として特定されたものについては、クリップ命令生成部１２がクリップ命令への置き換えを行う（Ｓ１０５〜１１４）。この置き換えは、例えば、当該描画命令のヘッダ部分（識別情報）を、クリップ命令に固有のもの（システム内で一意に設定されたもの）に変換することで行えばよい。このとき、クリップ命令生成部１２は、クリップ命令についての反転が必要であれば、反転したクリップ命令を生成し、そうでなければ反転していないクリップ命令を生成する（Ｓ１０７〜１０９）。
【００４３】
また、論理演算シーケンスと特定された入力画像データ群のうち、クリップ処理のための描画命令として特定されたもの以外のもの（＝パターン命令）については、論理演算置換部１３が、論理演算が含まれない命令（＝描画命令）に置き換える（Ｓ１１２〜１１３）。
【００４４】
このような命令の置き換えが一つの論理演算シーケンスについて終了すると、その後、クリップ命令生成部１２は、先の置き換えにより発行したクリップ命令を無効にして、そのクリップ命令によるクリップメモリ１８内の書き込み内容のクリアを指示するクリップクリア命令を生成して、新たに発行する（Ｓ１１５〜１１９）。つまり、クリップクリア命令は、一つの論理演算シーケンスの終わりを明確にするためのもので、これにより一つの論理演算シーケンスを含む入力画像データ群の置換作業が完了することになる。そして、処理対象となる入力画像データについて、論理演算を含まない命令への置換作業が完了すると、その置換後の命令群について、ＰＤＬ生成部６がＰＤＬデータへの変換を行う。
【００４５】
以上のような一連の処理動作のうち、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作は、図３に示した構成例の場合のみならず、図１または図２に示した構成例の場合にも全く同様に行われる。つまり、図１または図２に示した構成例の場合には、例えばアプリケーションプログラム４が出力した描画情報をプリンタドライバ５が単にＰＤＬデータに変換するので、論理演算シーケンス検査部＆クリップ命令判定部１１で受け取る入力画像データが論理演算を含むことになり得るが、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作が全く同様に行われるため、その処理を経た後においては、その処理後のデータ、例えば図２の構成例の場合であれば中間コード画像データが、論理演算を全く含まないものとなる。
【００４６】
ここで、上述した一連の処理動作における命令置換作業について、具体例を挙げてさらに詳しく説明する。図６〜９は、論理演算が含まれる入力画像データの置き換えの具体例を示す説明図である。
【００４７】
入力画像データに含まれる論理演算シーケンスとしては、大きく分けると、以下の３パターンがある。
【００４８】
その一つは、例えば図６（ａ）に示すような「Ａ」「Ｂ」「Ｃ」という白黒文字／模様を背景透過にして描画するために、図６（ｂ）に示すような各文字画像についてのクリップのみの論理演算シーケンスによるものである。このような論理演算シーケンスについては、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作を経ることで、その論理演算シーケンスを構成する各命令が、図６（ｃ）に示すように、「ＡＢＣ」という文字についてのクリップ命令と、その「ＡＢＣ」という文字を描画するための描画命令と、当該クリップ命令に付随するクリップクリア命令とに置き換えられることになる。
【００４９】
また、他の一つは、例えば図７（ａ）に示すような「Ａ」という色文字や色模様を背景透過にして描画するために、図７（ｂ）に示すような文字画像についてクリップ→パターンという構成の論理演算シーケンスによるものである。このような論理演算シーケンスについては、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作を経ることで、その論理演算シーケンスを構成する各命令が、図７（ｃ）に示すように、「Ａ」という文字についてのクリップ命令と、その「Ａ」という文字を描画するための描画命令と、当該クリップ命令に付随するクリップクリア命令とに置き換えられることになる。
【００５０】
また、さらに他の一つは、例えば図８（ａ）に示すような任意形状のパターンを任意形状でクリップして描画するために（図例では、複数の円形図形でクリップする場合を例示）、図８（ｂ）に示すようなパターン→クリップ→パターンという構成の論理演算シーケンスによるものである。このような論理演算シーケンスについては、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作を経ることで、その論理演算シーケンスを構成する各命令が、図８（ｃ）に示すように、任意形状についてのクリップ命令と、その任意形状を描画するための描画命令と、当該クリップ命令に付随するクリップクリア命令とに置き換えられることになる。
【００５１】
なお、図７に示したクリップ→パターンという構成の論理演算シーケンスについては、例えば図９（ａ）に示すような反転処理を含む場合もあり得る。ただし、反転処理を含む場合であっても、図９（ｂ）に示すようなクリップ→パターンという構成の論理演算シーケンスであることには変わりないため、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３による処理動作を経た後は、その論理演算シーケンスを構成する各命令が、図９（ｃ）に示すように、「Ａ」という文字についてのクリップ命令（ただし反転）と、その「Ａ」という文字を描画するための描画命令と、当該クリップ命令に付随するクリップクリア命令とに置き換えられることになる。このようなクリップ命令の反転は、図６または図８に示した場合についても同様に生じ得る。
【００５２】
このように、入力画像データに含まれる論理演算シーケンスは、上述した３パターンのいずれかに該当する。したがって、そのパターンの種類と置き換え後の命令の構成との対応関係が、論理演算シーケンス検査部＆クリップ命令判定部１１等がアクセスするメモリ内に予め設定されて登録されていれば、その論理演算シーケンス検査部＆クリップ命令判定部１１等は、処理対象となる論理演算シーケンスの部分について、論理演算を含まない命令群に置き換えることができるのである。また、このような手法により置き換えを行えば、上述した３パターン以外の論理演算シーケンスに対応する必要が生じた場合であっても、その論理演算シーケンスに関する情報をメモリ内に追加登録することによって、容易に対応することが可能となる。
【００５３】
次に、以上のような置換作業によって置き換えられた論理演算を含まない命令群について、これを画像出力装置３で出力するために行う処理動作について説明する。図１０は、論理演算を含まない命令群に対する処理動作例を示すフローチャートである。
【００５４】
例えば、図２または３を用いて説明した構成例において、入力画像データに対して論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３が上述した一連の処理動作による命令置換作業を行うと、その置換作業によって置き換えられた論理演算を含まない命令群については、中間コード画像データ生成部７が中間コード画像データへの変換を行う。中間コード画像データとは、入力画像データおよび出力画像データのいずれとも異なる中間的なデータ形式の画像データのことをいうが、そのデータ形式は特に限定されるものではない。そして、中間コード画像データ生成部７が中間コード画像データへの変換を行うと、続いて、その中間コード画像データに対する解釈および展開を、中間コード画像データ解釈部８が行う。
【００５５】
具体的には、例えばバンド単位に生成された中間コード画像データは、そのバンド単位で中間コード画像データ解釈部８により順次解釈し（Ｓ２０１〜２０２）、先ず、その中間コード画像データを構成する命令群がクリップ命令であるか否かを判断する（Ｓ２０３）。この判断は、例えば命令毎のヘッダ部分（識別情報）がクリップ命令に固有のものであるかを判定することで行えばよい。
【００５６】
判断結果がクリップ命令の場合には、そのクリップ命令についての解釈を中間コード画像データ解釈部８が行うとともに、その中間コード画像データ解釈部８での解釈結果に従いつつ、クリップ展開部１７がクリップメモリ１８上へのクリップ処理を行う。その際に、クリップ展開部１７は、クリップメモリ１８へ書き込むデータの二値化を行い、また反転処理を含む場合であれば、その二値化したデータ値の反転を行う（Ｓ２０４〜２０６）。なお、二値化は、データ量削減を目的に行うもので（例えば、８Ｂｉｔ／画素→１ｂｉｔ／画素）、その詳細は公知技術を利用して実現すればよいが、必ずしも必須ではない。また、反転についても、反転処理に対応する必要がない場合であれば、必ずしも必須の機能ではない。
【００５７】
中間コード画像データ解釈部８での判断結果がクリップ命令ではなく、またそのクリップ命令に対するクリップクリア命令でもなく（Ｓ２０７）、単なる描画命令であった場合には、その描画命令についての解釈を中間コード画像データ解釈部８が行うとともに、その中間コード画像データ解釈部８での解釈結果に従いつつ、画像展開部１５が展開画像の画像メモリ１６内への書き込み、すなわちいわゆるレンダリング処理を行う。その際に、画像展開部１５は、クリップメモリ１８内の書き込みデータを参照する。そして、対応する画素について、クリップメモリ１８内の書き込みデータの値が「１」であれば（Ｓ２０８）、すなわちクリップ処理に係る画素でレンダリング処理によって描画すべきものであれば、その画素についての画像メモリ１６内へのデータ書き込みを行う（Ｓ２０９）。一方、クリップメモリ１８内の書き込みデータの値が「０」であれば、すなわちクリップ処理に係る画素ではなくレンダリング処理による描画が不要なものであれば、その画素についての画像メモリ１６内へのデータ書き込みは行わない。
【００５８】
また、画像展開部１５が画像メモリ１６内へのデータ書き込みを行った画素については、その画素に対応する付加情報の付加情報メモリ２０への書き込みを付加情報生成部１９が行う（Ｓ２１０）。すなわち、付加情報生成部１９は、必要に応じてクリップメモリ１８内の書き込みデータを参照しつつ、クリップメモリ１８内の書き込みデータの値が「１」であれば、対応する画素についての付加情報の付加情報メモリ２０への書き込みを行い、クリップメモリ１８内の書き込みデータの値が「０」であれば、その画素についての付加情報の付加情報メモリ２０への書き込みは行わない。
【００５９】
なお、ここでは、画像メモリ１６内へのデータ書き込みおよび付加情報メモリ２０内への付加情報の書き込みに際し、その書き込みを、クリップメモリ１８内の二値化データが「１」であれば行い、「０」であれば行わない場合を例に挙げたが、これは単なる一具体例に過ぎず、例えば「１」と「０」が逆であるといった具合に、これに限定されないことは勿論である。
【００６０】
そして、このような画像メモリ１６内および付加情報メモリ２０内へのデータ書き込み処理を、クリップクリア命令を処理するまで、中間コード画像データを構成する命令毎に繰り返して行う。
中間コード画像データ解釈部８での判断結果がクリップクリア命令であった場合には、そのクリップクリア命令についての中間コード画像データ解釈部８での解釈結果に従いつつ、クリップ展開部１７がクリップメモリ１８内の書き込みデータのクリア（消去）を行う（Ｓ２１１）。例えば、クリップメモリ１８内の書き込みデータの値が「１」であれば書き込みを行い、クリップメモリ１８内の書き込みデータの値が「０」であれば書き込みは行わない場合には、「１」でクリアし、その逆の場合には、「０」でクリアする。
【００６１】
ここで、図１０に示したフローチャートでは、レンダリング処理での全ての画素に対しクリップメモリ１８にアクセスすることになり、画像展開部１５がハードウェアで処理される場合には、クリップメモリ１８の読み出し、その解釈、および画像メモリ１６への書き込みを高速に処理可能ではあるが、ソフトウェアで構成される場合には、上記３つの処理がシーケンシャルに実行されるため、単純に画像メモリ１６へ書き込みを行うレンダリング処理と比較してかなり処理速度が低下する。
【００６２】
図１１は、この問題を解決する手段を含んだ論理演算を含まない命令群に対する処理動作例を示すフローチャートである。
基本的な処理シーケンスは図１０に示した場合と同じであり、ここでは、その差分のみ説明を行う。
【００６３】
中間コード画像データ解釈部８により解釈された中間コード画像データがクリップ命令の場合、画像展開部１５にクリップメモリがイネーブルであるということを示す情報を持たせ（Ｓ２１２）、あるいは中間コード画像データ解釈部８により解釈された中間コード画像データがクリップクリア命令の場合、画像展開部１５が保持するクリップメモリがイネーブルであるという情報をクリアする（Ｓ２１４）。
これにより、中間コード画像データ解釈部８により解釈された中間コード画像データがクリップ命令ではなく、またそのクリップ命令に対するクリップクリア命令でもなく（Ｓ２０７）、単なる描画命令であった場合には、画像展開部１５は自身が保持するクリップメモリの情報にもとづき（Ｓ２１３）、クリップメモリがディセーブルの場合には、画素毎にクリップメモリ１８の読み出し、およびその解釈を行わずに、単純に画像メモリ１６へ書き込みを行うことが可能となる（Ｓ２１５〜２１６）。すなわち、クリップメモリ１８内へ書き込みが行われた場合にのみ、クリップメモリ１８にアクセスするのである。
【００６４】
なお、ここでは、中間コード画像データ解釈部８が中間コード画像データに対して処理を行う場合を例に挙げて説明したが、論理演算シーケンス検査部＆クリップ命令判定部１１、クリップ命令生成部１２および論理演算置換部１３での処理を経た後のものであれば、他のデータ（例えばＰＤＦデータ）であっても同様の処理を行うことができる。すなわち、図２または３に示した構成例のみならず、図１に示した構成例においても、全く同様の処理動作が行われる。
【００６５】
以上のような一連の処理動作を、中間コード画像データを構成する各命令の全てについて終了するまで行うことで、画像メモリ１６には、パージ単位またはバンド単位でビットマップ形式の画像データ、すなわち印刷出力可能な形式の画像データが書き込まれることになる。また、付加情報メモリ２０には、画像メモリ１６内の画像データに付随することになる付加情報が書き込まれることになる。
この画像メモリ１６内の画像データについては、必要に応じて色変換部２１で色変換処理が行われた後に、画像出力装置３で出力される。
【００６６】
以上のように、本実施形態で説明した画像処理装置、その画像処理装置としての機能を実現する画像処理プログラム、および、その画像処理装置または画像処理プログラムによって実行される画像処理方法によれば、入力画像データに対して、その論理演算のシーケンス単位で、クリップ処理を行うための描画命令を特定し、そのクリップ処理のための描画命令を当該描画命令以外の他の描画命令と別に取り扱い得るクリップ命令に変換するようになっている。したがって、クリップ命令への変換後、そのクリップ命令を含む入力画像データを順次解釈して、そのクリップ命令を含む論理演算シーケンスについての処理を行う際に、クリップ命令と他の描画命令とを分離して取り扱うことで、当該処理を論理演算を含まない処理とすること、すなわち展開処理時においては論理演算が全く含まれないようにすることが容易に実現可能となる。つまり、展開処理が簡略化されるため、その処理速度の向上が期待できる。
【００６７】
しかも、クリップ命令と他の描画命令とを分離して取り扱うことで、画像の展開処理時において論理演算を含まないようにすれば、入力画像データに付加情報が付加されている場合であっても、展開処理による描画内容と付加情報とが常に一致することになり、その付加情報を基に行われる後段処理（例えば、色変換／スクリーンの選択）が正しく行われることになる。つまり、色変換等を常に正しく行えるようにすることで、出力画像の画質向上が期待できる。
【００６８】
このように、本実施形態における画像処理方法、画像処理プログラムおよび画像処理装置では、クリップ命令と他の描画命令とを分離して取り扱い得るようにすることで、入力画像データに付加情報が付加されている場合であっても、展開処理による描画内容と付加情報とが常に一致することになり、その結果、出力画像の画質が向上や展開処理の処理速度向上等の効果を奏することになる。つまり、如何なる論理演算を含む入力画像データに対しても、論理演算を全く含まない命令群に変換可能であり、付加情報を基に正しい画像変換が行え、また処理速度を高めることができるのである。
【００６９】
なお、本実施形態では、本発明の好適な実施具体例を説明したが、本発明はその内容に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態で説明した中間コード画像データ解釈部８以降の処理については、ハードウエア化された手段によって行えば、クリップ命令の二値化と反転、および、画像展開部１５による画素ごとのクリップメモリ１８の参照が、それぞれ高速化することが可能となるので、ソフトウエアによる処理の場合よりも、より一層高速な展開処理が望める。
【図面の簡単な説明】
【００７０】
【図１】本発明に係る画像処理装置の基本的な機能構成例を示すブロック図である。
【図２】本発明に係る画像処理装置の具体的な機能構成の一例を示すブロック図である。
【図３】本発明に係る画像処理装置の具体的な機能構成の他の例を示すブロック図である。
【図４】本発明に係る画像処理装置において、論理演算を含む入力画像データに対する処理動作例を示すフローチャート（その１）である。
【図５】本発明に係る画像処理装置において、論理演算を含む入力画像データに対する処理動作例を示すフローチャート（その２）である。
【図６】本発明に係る画像処理装置において、論理演算が含まれる入力画像データの置き換えの具体例を示す説明図（その１）である。
【図７】本発明に係る画像処理装置において、論理演算が含まれる入力画像データの置き換えの具体例を示す説明図（その２）である。
【図８】本発明に係る画像処理装置において、論理演算が含まれる入力画像データの置き換えの具体例を示す説明図（その３）である。
【図９】本発明に係る画像処理装置において、論理演算が含まれる入力画像データの置き換えの具体例を示す説明図（その４）である。
【図１０】本発明に係る画像処理装置において、論理演算を含まない命令群に対する処理動作例を示すフローチャート（その１）である。
【図１１】本発明に係る画像処理装置において、論理演算を含まない命令群に対する処理動作例を示すフローチャート（その２）である。
【符号の説明】
【００７１】
１…ホスト側装置、２…画像処理装置、３…画像出力装置、４…アプリケーションプログラム、５…プリンタドライバ、６…ＰＤＬ生成部、７…中間コード画像データ生成部、８…中間コード画像データ解釈部、１１…論理演算シーケンス検査部＆クリップ命令判定部、１２…クリップ命令生成部、１３…論理演算置換部、１４…命令解釈部、１５…画像展開部、１６…画像メモリ、１７…クリップ展開部、１８…クリップメモリ、１９…付加情報生成部、２０…付加情報メモリ、２１…色変換部、２２…出力制御部
【図１】
2006341376.tif 000003
【図２】
2006341376.tif 000004
【図３】
2006341376.tif 000005
【図４】
2006341376.tif 000006
【図５】
2006341376.tif 000007
【図６】
2006341376.tif 000008
【図７】
2006341376.tif 000009
【図９】
2006341376.tif 000010
【図１０】
2006341376.tif 000011
【図１１】
2006341376.tif 000012
【図８】
2006341376.tif 000013