(57)【要約】【課題】  正確なオブジェクトの種類の判定を行う画像処理装置及びその方法を提供することを目的とする。【解決手段】  描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする。【選択図】  図１
2005222345.tif 000002
【特許請求の範囲】
【請求項１】
描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする画像処理方法。
【請求項２】
イメージ描画を指示するコマンドを入力し、該入力コマンドによって指示される描画すべきオブジェクトの種類によらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別し、識別されたオブジェクトの種類に応じて描画を行うことを特徴とする画像処理方法。
【請求項３】
前記描画処理には色処理が含まれることを特徴とする請求項１又は請求項２に記載された画像処理方法。
【請求項４】
描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理装置であって、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別する識別手段を有することを特徴とする画像処理装置。
【請求項５】
イメージ描画を指示するコマンドを入力する入力手段と、入力コマンドによって指示される描画すべきオブジェクトの種類をよらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする画像処理装置。
【請求項６】
前記描画処理には色処理が含まれることを特徴とする請求項４又は請求項５に記載された画像処理方法。
【請求項７】
描画すべきオブジェクトの種類を識別する際、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とするプログラム。
【請求項８】
画像処理のプログラムであって、前記プログラムは少なくとも、描画オブジェクトの種類を指示するコマンドを入力するステップのコードと、イメージ描画を指示するコマンドを入力するステップのコードと、入力コマンドによって指示される描画すべきオブジェクトの種類を識別するステップのコードと、識別されたオブジェクトの種類に応じて描画を行うステップのコードとを有することを特徴とするプログラム。
【請求項９】
請求項７又は請求項８に記載されたプログラムを記録したことを特徴とする媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその方法に関し、例えば、描画すべきオブジェクトの種類に応じた描画処理を行う画像処理装置およびその方法に関する。
【背景技術】
【０００２】
最近のワークステーション（ＷＳ）やパーソナルコンピュータ（ＰＣ）、並びに、レーザビームプリンタ（ＬＢＰ）およびインクジェットプリンタ（ＩＪＰ）などに代表されるカラープリンタの普及により、アプリケーションソフトウェアによって作成および／または編集された各種のカラー文書が印刷出力されるようになった。
【０００３】
ただし、ユーザが望むカラー印刷出力が容易に得られるようにするには、以下に示す問題を解決しなければならない。
【０００４】
（１）ユーザがカラー文書を作成・編集するＣＲＴなどのモニタと、プリンタとは色再現範囲（ｇａｍｕｔ）が異なる。一般にモニタの色再現範囲はプリンタの色再現範囲よりも広く、プリンタは、モニタにより表現される色のすべてを再現することはできない。このため、色空間の圧縮処理（色空間マッチング）が必要になり、色空間圧縮として幾つかの手法が提案されている。しかし、どの手法が適当であるかをユーザが判断することは難しい。
【０００５】
（２）上記（１）に関連するが、モニタの色はＲＧＢの加色混法で表現され、プリンタの色はＣＭＹＫの減色混法であるから、モニタで確認された複数色の混合色と、プリンタによって得られる混合色とは異なる可能性がある。
【０００６】
（３）最近のプリンタは高解像度、例えば１２００ｄｐｉや６００ｄｐｉであり、７２ｄｐｉ程度のモニタによるプレビューに比べて、遥かに高精細な印刷を必要とし、用途に応じた適切なハーフトーニング（二値化、多値化、量子化など）を選択する必要がある。
【０００７】
（４）ＬＢＰに代表される電子写真方式のプリンタは、系時変化やエンジンの個体差により微妙に色味が異なる場合がある。色味の差異を制御する方法が幾つか提案されているが、ある種類のオブジェクト（データ）には有効であるが、別種のオブジェクト（データ）には副作用が出る場合などがある。
【０００８】
また、カラー文書には、特徴が異なる各種オブジェクト、例えばテキスト、グラフィックス、イメージなどが含まれている。例えば、テキストには１バイトで示されるアルファニューメリック文字や、２バイトの漢字などがあり、イメージは二次元に配列された画素をもち、各画素毎に異なるカラー情報をもつ。そして、イメージは、効率化のために圧縮されている場合もある。また、グラフィックスは、ライン、並びに、多角形の輪郭および内部領域で表現される。
【０００９】
印刷出力において良好な色再現を実現するには、各オブジェクトの特徴に応じて、上記の問題を解決する処理が必要になる。具体的な解決策として、描画コマンドの形式に応じて、そのコマンドにより示されるオブジェクトの種類を判別する技術がある（特許文献１）。
【００１０】
その技術によれば、アプリケーションソフトウェアが発行するテキストコマンドに基づくオブジェクトはすべてテキストオブジェクトとして描画される。
【特許文献１】特開平７−２３６０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の手法ではプリンタドライバに渡される描画コマンドのみを手がかりに各種オブジェクトの種類を判別するため、正確なオブジェクトの識別が出来ないことがあった。以下、テキスト描画における具体例を示す。
【００１２】
図１は、Ｍｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（Ｒ）シリーズが稼動している印刷システムにおけるアプリケーションからプリンタドライバに到るテキスト描画の処理フローを例示している。図１の様にアプリケーションがＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ。以後ＧＤＩと称する）に対しテキスト描画を行い、それを受けてＧＤＩがプリンタドライバへテキスト描画を指示すれば、プリンタドライバは正しくテキストオブジェクトと判別出来る。
【００１３】
一方、図２は、アプリケーションがテキストを描画を行う際、文字形状をビットマップとして抽出してイメージ描画を行うため、ＧＤＩはそれを受けてプリンタドライバへイメージ描画を行う。このような場合、プリンタドライバは本来テキストオブジェクトと判別すべきものを誤ってイメージオブジェクトと判別してしまう。
【００１４】
本発明は、上述の問題を個々にまたはまとめて解決するためのものであり、正確なオブジェクトの種類の判定を行う画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１６】
本発明にかかる画像処理方法は、描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理方法であって、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする。
【００１７】
また、イメージ描画を指示するコマンドを入力し、該入力コマンドによって指示される描画すべきオブジェクトの種類によらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別し、識別されたオブジェクトの種類に応じて描画を行うことを特徴とする。
【００１８】
本発明にかかる画像処理装置は、描画すべきオブジェクトの種類を識別し、識別したオブジェクトの種類に応じて描画を行う画像処理装置であって、イメージ描画を指示するコマンドによらず、外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別する識別手段を有することを特徴とする。
【００１９】
また、イメージ描画を指示するコマンドを入力する入力手段と、入力コマンドによって指示される描画すべきオブジェクトを識別されたオブジェクトの種類に応じて描画を行う描画手段とを有し、前記識別手段は、入力コマンドによって指示される描画すべきオブジェクトの種類によらず外部のプログラムより指定されたオブジェクトの種類によって描画オブジェクトを識別することを特徴とする。
【発明の効果】
【００２０】
以上説明したように本発明によれば、正確なイメージ描画オブジェクトの種類の判定を行う画像処理が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下添付図面を参照して、本発明にかかる第一実施形態を詳細に説明する。
【００２２】
なお、以下では、本発明をカラープリンタに適用する例を説明するが、モノクロプリンタに対しても同様に適用可能であることはいうまでもない。
【００２３】
＜第１実施形態＞
［構成］
図３は第１実施形態のホストコンピュータシステムの構成例を示すブロック図である。
【００２４】
図３において、ホストコンピュータ５０２は、プリントデータおよび制御コードからなる印刷情報を印刷装置１００に出力する。ホストコンピュータ５０２は、入力デバイスであるキーボード２１００、ポインティングデバイスであるマウス２１１０、および、表示デバイスであるディスプレイモニタ２２００などを組み合わせたホストコンピュータシステムとして構成され、例えばＭｉｃｒｏｓｏｆｔ社のＷｉｎｄｏｗｓ（Ｒ）シリーズなどの基本オペレーティングシステム（ＯＳ）が稼動している。
【００２５】
ホストコンピュータ５０２について、本実施形態に関する機能的な部分にのみ注目し、基本ＯＳ上での機能を大きく分類すると、アプリケーションソフトウェア２０１０、画像情報処理手段であるグラフィックサブシステム２０２０、スプールサブシステム２０３０、および、ユーザインタフェイス処理部（ＵＩ）２０４０に分類される。
【００２６】
グラフィックサブシステム２０２０は、基本ＯＳの機能の一部であるグラフィックスデバイスインタフェイス（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ：  ＧＤＩ）２０２１、および、ＧＤＩ２０２１から動的にリンクされるデバイスドライバであるプリンタドライバ２０２２によって構成される。
【００２７】
プリンタドライバ２０２２は、アプリケーションソフトウェア２０１０からＧＤＩ描画命令（関数）としてコールされる命令をページ記述言語（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ：  ＰＤＬ）に変換するのが大きな役割である。また、プリンタドライバ２０２２は、ユーザに指定されたモード、および、ＧＤＩ描画命令の種類に応じて、カラーマネージメントシステム（Ｃｏｌｏｒ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ：ＣＭＳ）モジュール２０２３、および、色調整モジュール２０２４に色処理を依頼する。
【００２８】
スプールサブシステム２０３０は、グラフィックサブシステム２０２０の後段に位置するプリンタデバイスに特有のサブシステムで、データ格納手段であるスプールファイル２０３１（実態はハードディスクなど）、および、スプールファイル２０３１に蓄えられたＰＤＬコードを読み出して印刷装置１００における処理の進行状況を監視するプロセスモニタ２０３４などから構成される。
【００２９】
ＵＩ２０４０は、基本ＯＳより提供される関数を利用しながら、印刷品位の制御パラメータを決定すべく、各種メニューボタンなどをディスプレイモニタ２２００に表示し、キーボード２１００やマウス２１１０を介したユーザアクションを解析する。
【００３０】
上述した構成（モジュール）の名称や機能的な枠組みは、基本ＯＳによって若干異なる場合があるが、各技術的手段が実現可能なモジュールであればよく、それらの名称や枠組みの差異は本実施形態の実施に影響を与えることはない。例えば、スプーラやスプールファイル２０３１は、他のＯＳにおいてはプリントキューと呼ばれるモジュールに処理を組み込むことによって実現可能である。
【００３１】
なお、一般に、これらの機能モジュールを含むホストコンピュータ５０２とは、図示しないＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスクドライブ（ＨＤＤ）および各種入出力制御部（Ｉ／Ｏ）などから構成されるハードウェア上で、基本ＯＳなどのソフトウェアがそれらハードウェアの制御を司り、基本ＯＳの基でアプリケーションソフトウェア２０１０のプロセスやサブシステムのプロセスが機能モジュールとして動作するものである。
【００３２】
［プリンタドライバの処理］
以下、プリンタドライバ２０２２が実行する処理を図４に示すフローチャートに従い説明する。
【００３３】
ユーザが、ホストコンピュータ５０２上で稼動する、あるアプリケーションソフトウェア２０１０から印刷の開始を指示すると、ＵＩ２０４０により印刷の制御パラメータを設定するための印刷ダイアログがディスプレイモニタ２２００に表示される（Ｓ４０００）。そして、印刷ダイアログ上でユーザにより、出力プリンタ、記録紙サイズ、印刷部数および印刷品質などの各種設定が行われ、印刷が指示される（Ｓ４０１０）。
【００３４】
印刷が指示されると、アプリケーションソフトウェア２０１０によって作成・編集された画像を示す描画データが、印刷ジョブとしてＧＤＩ２０２１を介してプリンタドライバ２０２２に渡され、プリンタドライバ２０２２は該印刷ジョブの初期化を行う（Ｓ４０２０）。
【００３５】
プリンタドライバ２０２２は次に該印刷ジョブのページ毎の初期化を行い（Ｓ４０３０）、続いて描画を行う（Ｓ４０４０）が、この描画の詳細については後述する。
【００３６】
ページ単位の描画後は改ページ等の後処理を行い（Ｓ４０５０）、ステップＳ４０６０でまだ印刷すべきページが残っていればステップＳ４０３０へ戻って次ページの処理を行うが、ページの終端であればステップＳ４０７０に進んで印刷ジョブの後処理を行った後、印刷処理を終了する。
【００３７】
以下、ステップＳ４０４０に示した描画処理について、図５を参照して説明する。図５は、アプリケーション２０１０とＧＤＩ２０２１とプリンタドライバ２０２２間における描画コマンド（テキストコマンド、イメージコマンド、グラフィックスコマンド）のインターフェースを示す図である。
【００３８】
ここでアプリケーション２０１０は、説明を簡易化するために以後もアプリケーションと称するが、実際にはＧＤＩに描画を要求できるモジュールならばアプリケーション以外でもかまわない。プリンタドライバとして提供されるモジュールの一部であっても一向にかまわない。
【００３９】
アプリケーション２０１０が、ＧＤＩ２０２１に対しイメージ描画を行うと、ＧＤＩ２０２１はプリンタドライバのイメージコマンド５０１０をコールする。例えば、アプリケーション２０１０がＧＤＩ関数のＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅをコールすると、ＧＤＩはプリンタドライバ２０２２に実装されたＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅ関数を呼び出す。なお、ＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅ関数以外にもＳｔｒｅｔｃｈＤＩＢｉｔｓ関数などがあるが、イメージを取り扱う点で同じく、イメージコマンド５０１０と呼称する。
【００４０】
ＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅ関数の呼び出しは、例えば、次のようになる。ここでは主なパラメータだけを紹介する。
【００４１】
ＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅ（ｐ１、ｐ２、ｐ３、ｐ４、ｐ５、ｐ６、ｐ７）。
【００４２】
パラメータｐ１：  描画の始点。
【００４３】
パラメータｐ２：  スキャンラインの初期値。
【００４４】
パラメータｐ３：  スキャンライン数。
【００４５】
パラメータｐ４：  クリッピング矩形。
【００４６】
パラメータｐ５：  描画モード。
【００４７】
パラメータｐ６：  ＤＩＢバッファ。
【００４８】
パラメータｐ７：  ＤＩＢ情報。
【００４９】
イメージコマンドと同様に、テキストコマンド５０２０は、プリンタドライバ２０２２に実装されたテキスト処理関数（ＥｘｔＴｅｘｔＯｕｔ関数等）のＧＤＩ２０２１による呼び出しを意味し、グラフィックスコマンド５０３０は、プリンタドライバ２０２２に実装されたグラフィックス処理関数（Ｏｕｔｐｕｔ関数等）のＧＤＩ２０２１による呼び出しを意味する。
【００５０】
プリンタドライバ２０２２は、これら各コマンドに対応する各描画オブジェクトの種類に応じて、カラー調整やカラーマッチング処理を行う。そして、カラーマッチング処理が行われた色情報をＰＤＬコマンドに変換することによって、描画処理が行われる。
【００５１】
以下、図５のイメージコマンド処理部５０１０を図６、図７を使って説明する。
【００５２】
図６は、ＳｅｔＤＩＢｉｔｓＴｏＤｅｖｉｃｅ関数におけるｐ５パラメータを説明したものである。オリジナルのＢＩＴＭＡＰＩＮＦＯＨＥＡＤＥＲ構造体の下部にメンバ（ｏｂｊＴｙｐｅ）を追加することでオブジェクトの識別を可能にする。アプリケーション２０１０はこのｏｂｊＴｙｐｅに下記のような値を設定することで、描画オブジェクトの種類を明示的に指定することになる。
【００５３】
＃ｄｅｆｉｎｅ  ＩＭＡＧＥ＿ＯＢＪ          １
＃ｄｅｆｉｎｅ  ＴＥＸＴ＿ＯＢＪ            ２
＃ｄｅｆｉｎｅ  ＧＲＡＰＨＩＣ＿ＯＢＪ      ３
次に、図５のイメージコマンド処理部５０１０を図７に示すフローチャートに従い説明する。
【００５４】
まず、ＢＩＴＭＡＰＩＮＦＯ構造体が拡張されｏｂｊＴｙｐｅメンバ変数が追加されているかどうか判定する（Ｓ７０１０）。ＯｂｊＴｙｐｅメンバ変数の拡張が無い場合、イメージオブジェクトと判別し、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ７０３０）。ＯｂｊＴｙｐｅメンバ変数の拡張が有る場合、ｏｂｊＴｙｐｅメンバ変数がＩＭＡＧＥ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ７０２０）。等しい場合、イメージオブジェクトと判別し、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ７０３０）。ｏｂｊＴｙｐｅメンバ変数がＩＭＡＧＥ＿ＯＢＪ以外のときは、ＴＥＸＴ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ７０４０）。等しい場合、テキストオブジェクトと判別し、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ７０５０）。ｏｂｊＴｙｐｅメンバ変数がＴＥＸＴ＿ＯＢＪ以外のときは、ＧＲＡＰＨＩＣ  ＿ＯＢＪと等しい値であるかどうか評価する（Ｓ７０６０）。等しい場合、グラフィックオブジェクトとみなし、ＣＭＳモジュール２０２３や色調整モジュール２０２４に色処理を依頼する（Ｓ７０７０）。以上の色処理を終えた後、テキストの描画処理を行う（Ｓ７０８０）。
【００５５】
（他の実施形態）
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００５６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００５８】
【図１】印刷処理におけるＧＤＩからプリンタドライバまでの描画処理例１。
【図２】印刷処理におけるＧＤＩからプリンタドライバまでの描画処理例２。
【図３】本実施形態におけるホストシステム構成図。
【図４】プリンタドライバによる印刷処理フロー図。
【図５】アプリケーションとＧＤＩとプリンタドライバの構成図。
【図６】本実施形態における拡張ＢＩＭＡＰＩＮＦＯ構造体。
【図７】本発明の第一実施形態を示すイメージ・コマンドの処理フロー図。
【図１】
2005222345.tif 000003
【図２】
2005222345.tif 000004
【図３】
2005222345.tif 000005
【図４】
2005222345.tif 000006
【図５】
2005222345.tif 000007
【図６】
2005222345.tif 000008
【図７】
2005222345.tif 000009