(57)【特許請求の範囲】
【請求項１】
描画命令で記述された文書画像をビットイメージに展開すると共に、前記描画命令毎に前記文書画像の画像種を判別し、該判別された画像種に対して所定のコードを割り当て、画像種を表すコードをビットイメージに展開し、前記画像種に応じた最適な処理を前記文書画像に施して出力するカラー画像出力方法であって、前記描画命令が複数の画像種間で演算を行う命令であるとき、該演算命令を実行する領域に対して新たなコードを割り当ててビットイメージに展開することを特徴とするカラー画像出力方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カラー画像出力処理に関し、特にＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）インタープリタにおけるラスター処理を行うカラー画像出力方法に関し、カラープリンタ等のコントローラ装置あるいはコンピュータに搭載されるプリンタ・ドライバー・ソフトウェアなどに適用される技術である。
【０００２】
【従来の技術】
一般に、コンピュータにより作成した文書をプリンタに出力する場合には以下の手順で処理する。即ち、
（１）文書データを複数の描画コマンド群へ変換する。
（２）プリンタ・ドライバーと言われるソフトウェアやプリンタ・コントローラ装置で描画コマンドを解析してラスタイメージを作成する（一般に、上記の処理をラスターオペレーションという）。
（３）ラスターイメージに対し、色変換処理や擬似中間調処理などを施してプリンタ出力信号を生成する。
（４）印刷を実行する。
【０００３】
ところで、好ましいカラー画像を出力するためには、自然画像、文字、グラフィックなど、画像の種類によって異なる色処理や中間調処理が必要になる。従って、種々の画像種を含むカラー・イメージ情報を出力するためには、画像種ごとに適した画像処理を施せるようなアーキテクチャーが必要となる。
【０００４】
このようなカラー・イメージ情報を出力する従来技術としては、
（Ａ）ビットマップメモリを画像種ごとに用意して、それぞれ個別にラスターイメージを作成する方法と、
（Ｂ）ラスタイメージの生成後、ラスターイメージをスキャンして画素毎に属性の判定を行う方法（例えば、特開平９−２８４５４８号公報を参照）などがある。
【０００５】
【発明が解決しようとする課題】
上記した（Ａ）の方法では、画像種ごとにラスターイメージを格納するためのメモリを用意するため、区別する画像種が多くなると大量のメモリを浪費してしまうという問題がある。また、ラスタオペレーションを行うＰＤＬインタプリタも大幅に変更しなければならず、ラスターオペレーション処理方式の変更が困難になってしまう。
【０００６】
また（Ｂ）の方法では、ラスターイメージを用いて像域分離を行っているので、誤判定が生じ易いという問題がある。前掲した公報も３×３の画素単位で像城分離処理しているので、誤判定が生じる可能性がある。
【０００７】
本発明の目的は、既存のＰＤＬインタープリタを改造することなく、省メモリでかつ精度よく画像種を識別してラスター処理するカラー画像出力方法を提供することにある。
【０００８】
【課題を解決するための手段】
前記目的を達成するために、請求項１記載の発明では、描画命令で記述された文書画像をビットイメージに展開すると共に、前記描画命令毎に前記文書画像の画像種を判別し、該判別された画像種に対して所定のコードを割り当て、画像種を表すコードをビットイメージに展開し、前記画像種に応じた最適な処理を前記文書画像に施して出力するカラー画像出力方法であって、前記描画命令が複数の画像種間で演算を行う命令であるとき、該演算命令を実行する領域に対して新たなコードを割り当ててビットイメージに展開することを特徴としている。
【０００９】
【発明の実施の形態】
以下、本発明の一実施例を図面を用いて具体的に説明する。
（実施例１）
図２は、種々の図形が含まれるカラー・イメージの一例である。このイメージは、１つの文書中に自然画像（ビットマップ）、フォント（文字）、線画、単色の塗りつぶしパターン（棒グラフ）などを含んでいる。以下、このイメージを印刷する場合を例にして本発明の実施例を説明する。
【００１０】
図１は、本発明の実施例１の構成を示し、プリンタ・コントローラ内でラスタオペレーションを行う場合のシステム構成例である。通常、オペレーティング・システム２は描画のための専用モジュール３を具備していて、この描画モジュール３がディスプレイやプリンタに対する描画処理を管理している。
【００１１】
例えば、オペレータが何らかのアプリケーション１を使って画面で編集した図２に示すような文書イメージをプリンタに印刷する場合、アプリケーション１は印刷ジョブを始めるという命令を描画モジュール３に送信する。描画モジュール３は印刷開始のメッセージを受け取ると、アプリケーション１で作成された文書画像データをプリンタ・ドライバー４が解釈可能なコマンドに変換して、プリンタ・ドライバー４にコマンドを送信する。
【００１２】
プリンタ・ドライバー４はオペレーティング・システム２から受け取ったコマンドをプリンタ・コントローラ５が解釈可能な描画コマンドに変換してローカル接続あるいはネットワーク接続されたプリンタ・コントローラ５にコマンドを送信する。プリンタ・コントローラ５は、後述するラスターオペレーション及び画像変換手段によりプリンタ１２に送信可能なデータに変換して印刷動作を開始する。印刷が終了すると、アプリケーション１は印刷終了の命令を描画モジュール３に送信し、オペレータが再び編集可能な状態になる。
【００１３】
次に、本発明の特徴であるラスターオペレーション処理について説明する。図４は、本発明のラスターオペレーションの処理フローチャートである。
【００１４】
前述したプリンタ・ドライバー４から送られる描画コマンドは、画像種に対応した多数の描画命令で構成される。通常、この描画命令には描画対象の画像種（例えばビットマップ、文字、ライン、パターンなど）、形状、位置情報、色データ等の情報が含まれる。一例を挙げると文字の描画コマンドとして
ＤｒａｗＴｅｘｔ（“ホームコンピューテイング．．．”，ｒｅｃｔ，ｃｏｌｏｒ）
というコマンド形態になる。ここで、“ホームコンピューテイング．．．”は、描画するテキスト文書の内容、ｒｅｃｔは描画するビットマップ上の領域、ｃｏｌｏｒは描画色を表している。ビットマップ等、他の画像種に対してもそれぞれに適したコマンド群が送られる。
【００１５】
上記の描画コマンドに対するラスタオペレーションは２系統で処理が行われる。一つは、一般的なラスタオペレーションであり、描画コマンドに従って忠実にラスタ展開装置７で展開処理（ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理）を施し（ステップ１０１）、生成されたラスターイメージをビットマップメモリ８（Ａ）に格納する（ステップ１０２）。
【００１６】
もう一つは、画像種を識別するためのラスター展開が行われる。即ち、描画コマンドの色データを、コマンド変換装置６で画像種識別コードに変換した後、先のラスターオペレーションと同じラスタ展開装置７で展開処理を施し、生成されたイメージをビットマップメモリ９（Ｂ）に格納する。この方法では、第１のラスタ展開と第２のラスタ展開が同期して処理されるため、ビットマップメモリＢを参照することにより、画素毎に誤判定のない画像種の識別ができる。
【００１７】
以下、図４を参照して、本発明の処理動作を説明する。ここでは説明の都合上、画像種ごとの識別コードを以下のように割り当てて説明する。すなわち、
背景＝０
文字＝１
線＝２
矩形＝３
ビットマップ＝４
その他＝５
まず、何も描画が行われない領域を識別できるようにするために、ラスタオペレーションの開始時にビットマップメモリ８（Ｂ）の内容を背景の識別コード０で初期化しておく。
【００１８】
その後、描画コマンドごとに識別コードを割り当ててラスター展開を実行する。図４に示すように、まずコマンド変換装置６は描画コマンドが文字に対するものか否かを判定し（ステップ１０３）、文字ならば描画コマンドの色データを文字の識別コードである１に変更し（ステップ１１０）、ラスタ展開装置７はラスタ展開を実行し（ステップ１０８）、画像種コードをビットマップメモリ９（Ｂ）に格納する（ステップ１０９）。
【００１９】
文字でないと判定されたとき、次に、線画の描画コマンドであるか否かを判定し（ステップ１０４）、線画ならば色データを線の識別コードである２に変更し（ステップ１１１）、ラスタ展開し（ステップ１０８）、ビットマップメモリ９（Ｂ）に格納する（ステップ１０９）。以下同様にして矩形の描画コマンドを処理し（ステップ１０５、１１２）、ビットマップの描画コマンドを処理し（ステップ１０６、１１３）、上記した何れのコマンドにも該当しない場合にはデフォルトの識別コード５を割り当てる（ステップ１０７）。
【００２０】
上記した処理によって、ビットマップメモリＢの内容がどのように変化するかについて図５を用いながら説明する。図５では、
（１）ビットマップを描画
（２）文字を描画
（３）ビットマップを描画
という、３つの描画コマンドを実行したものである。
【００２１】
最初の段階（図５（ａ））では、ビットマップメモリＢには、背景コードを表す０が割り当てられている。次にビットマップの描画が行われると、ビットマップの描画領域がすべて識別コード４に書き換えられる（図５（ｂ））。次に、文字描画のコマンドを受け取った場合には、色データを１に変更してラスタ展開を行うため、文字の部分だけが１の値を持つ色で描画されるため、図５（ｃ）のようになる。次のビットマップ描画コマンドを受け取ると前記したと同様の処理が行われ、図５（ｄ）のようにビットマップメモリＢの内容が更新される。
【００２２】
以上説明したように、本実施例では描画対象がそれぞれ複雑に重なり合っていても画像種の識別コードをビットマップメモリ上に正確に生成することができる。また、ビットマップメモリＢは、必ずしもビットマップメモリＡと同じ記憶容量を持つ必要がない。例えば上記の例では、画像種の識別コードは６種類であるので画素あたり３ビットのメモリを用意すればよい。
【００２３】
上記した処理を図２の文書データに対して施すと、最終的にビットマップメモリＢには図３に示すような画像種の識別コードから構成された画像が生成されることになる。
【００２４】
上記した実施例では、６種類の割り当てパターンを用いたが、この例に限らず、文字とそれ以外というパターンでもよいし、他のパターンでもよい。但し、少なくとも文字とビットマップでは明らかに好ましい画像変換処理が異なるため、この２つの画像種については異なった識別コードを割り当てることが望ましい。
【００２５】
上記した処理によって画像種の識別コードを保持したビットマップが生成されると、これに従って画像種を判別しながらビットマップメモリＡに対する画像変換処理を行ってプリンタへの出力信号を生成する。ビットマップメモリＡに格納されているイメージは、通常ディスプレイと同じく各画素２４ビット（あるいは８ビット）程度の色深度を持ったＲＧＢ信号になっている。プリンタは一般に他の色信号（通常ＣＭＹＫデータ）で印刷されるため、ＲＧＢ→ＣＭＹＫ変換などの色変換処理が必要になる。また、インクジェットプリンタなど通常のカラープリンタでは、階調がディスプレイよりも少ないものが多く、その場合には擬似中間調処理が必要になる。本実施例の画像変換処理としては、上記した色変換処理や擬似中間調処理に限定されるものではなく、他の処理を追加してもよい。
【００２６】
最適化処理の例として、ＲＧＢ→ＣＭＹＫ色変換の場合について説明する。一般に、ＲＧＢ→ＣＭＹＫ色変換の際は、黒文字は黒インクのみで出力し、自然画などの連続階調画像の黒部分は、ＣＭＹＫの４色で印刷するように色変換する方が画質面から見て望ましい。そこで、色変換処理装置１０で色変換を行う場合には、画素単位でビットマップメモリＡとＢを読み出して、ビットマップのコードを持つ画素に対しては４色への色変換を行い、文字のコードを持つ画素に対しては、黒単色で出力するように色変換する。また、二値化処理装置１１における中間調処理についても、文字の場合にはディザ処理、ビットマップ領域には誤差拡散処理を施し、これにより画像種ごとに最適化処理が可能になる。
【００２７】
また、本発明によれば描画が行われていない背景部分については背景用の識別コードとして０が割り当てられている。従って、背景領域のみに特別の処理を行うことが可能になる。例えば、背景領域に対してはプリンタ側では通常印字を行わないため、背景コードが設定されている画素に対しては、色変換処理や中間調処理などを行わず、直接Ｃ、Ｍ、Ｙ、Ｋ＝０としてデータをプリンタに送信すれば、高速な印字動作が可能になる。
【００２８】
さらに、より複雑な例として、複数の描画対象同士で演算処理などが行われる場合がある。例えば、下位のレイヤーにビットマップが描画され、その上に透明度を設定した文字を描画するような場合がある。このような場合には、文字に対して透明度が設定されていることから、画面上では文字と背景のビットマップイメージが淡く混ざって表示されていることになる。このような場合には、文字ともビットマップとも異なる新たな画像種の設定が必要になる。そこで、レイヤー間での演算命令を受けた場合には、演算領域を表す新たな識別コードを設定する。このようなコードを設定することにより、色変換処理などの最適化を簡単に行うことができる。
【００２９】
（実施例２）
上記した実施例１は、プリンタ・コントローラ内でラスタ・オペレーションを行う場合の実施例である。ところで、安価なインクジェットプリンタ等ではプリンタ・コントローラ内ではラスターオペレーションは行わずにプリンタドライバーでラスターオペレーションを施し、ビットマップイメージに展開してからプリンタにデータを送信している。図６は、この場合の構成例を示す。
【００３０】
実施例１では、ラスターオペレーションなどの処理をコントローラ内の装置で行っていたが、図６に示す実施例２では、コマンド変換、ラスタ展開などの各処理をプリンタ・ドライバーのソフトウェア（コマンド変換モジュールなどの各モジュール）で処理している点が異なるだけで、基本的な処理内容は実施例１と同じである。
【００３１】
なお、本発明は上記した実施例に限定されず、上記したプリンタ・ドライバーのソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録させてもよい。本発明のラスターオペレーションを実行させるときは、上記した記録媒体に記録されたプログラムを読み出し、これをＯＳの一部として組み込むことによって本発明の処理機能が実現される。
【００３２】
【発明の効果】
以上、説明したように、本発明によれば、描画命令で記述される文書画像をビットイメージに展開すると共に、画像種の識別コードをビットイメージに展開しているので、ＰＤＬインタープリタを改造することなく、少ないメモリでかつ高精度に画像種を識別することができ、従って画像種に応じた最適な画像処理を施すことが可能となる。
【図面の簡単な説明】
【図１】  本発明の実施例１の構成を示す。
【図２】  複数の画像種で構成される文書画像の例を示す。
【図３】  文書画像に対する画像種判定結果の例を示す。
【図４】  本発明のラスターオペレーションの処理フローチャートである。
【図５】  画像種の識別コードがメモリに書き込まれる過程を示す。
【図６】  本発明の実施例２の構成を示す。
【符号の説明】
１  アプリケーション
２  オペレーティングシステム
３  描画モジュール
４  プリンタ・ドライバ
５  プリンタ・コントローラ
６  コマンド変換装置
７  ラスタ展開装置
８、９  ビットマップ・メモリ
１０  色変換処理装置
１１  二値化処理装置
１２  印刷装置
【図１】
0003636891.tif 000002
【図２】
0003636891.tif 000003
【図３】
0003636891.tif 000004
【図４】
0003636891.tif 000005
【図５】
0003636891.tif 000006
【図６】
0003636891.tif 000007