(57)【要約】【課題】ページ記述言語を持つプリンタに対し、プリンタコマンドを送る際に、ビットマップ展開した方が転送するデータ量が減らせるようなプリンタコマンドに対し、ビットマップ展開して置換し、プリンタに転送することにより高速にメモリ効率がよい印刷処理を行うことが出来るようにする。【解決手段】プリンタコマンドに対し、ビットマップ展開した方がデータ量を減らせるか判断する手段と、複数のプリンタコマンドをまとめてビットマップ展開する手段と、ビットマップ展開する際にビットマップとマスクパターンを作成する手段と、そのビットマップをマスクパターンを用いて新たなプリンタコマンドを作成する手段と、該当するプリンタコマンドのみを新たなプリンタコマンドに置換し、プリンタに転送する手段により構成される。【選択図】　　　　図１
2004030386.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム（以下、ＯＳ）からプリンタ装置を制御するためのソフトウエア（以下、ドライバ）に描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＰＤＬ）の描画コマンド（以下ＰＤＬ描画コマンド）に変換する手段と、そのＰＤＬ描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのＰＤＬ描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のＰＤＬ描画コマンドに変換する手段を有することを特徴とする画像処理方法。
【請求項２】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドであることを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数であることを特徴とする請求項１記載の画像処理方法。
【請求項４】
前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立することを特徴とする請求項１記載の画像処理方法。
【請求項５】
前記、ＯＳから渡される描画命令に対し、ＰＤＬ描画コマンドに変換する手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令としても成立することを特徴とする請求項１記載の画像処理方法。
【請求項６】
コンピュータに接続されたプリンタ装置で、そのコンピュータを司るＯＳからプリンタ装置を制御するためのドライバに描画命令が送られてきたとき、その複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段と、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたＰＤＬ描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなＰＤＬ描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するＰＤＬ描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のＰＤＬ描画コマンドに変換する手段を有することを特徴とする画像処理方法。
【請求項７】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドであることを特徴とする請求項６記載の画像処理方法。
【請求項８】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数であることを特徴とする請求項６記載の画像処理方法。
【請求項９】
前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立することを特徴とする請求項６記載の画像処理方法。
【請求項１０】
前記、ＯＳから渡される複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令とし、メモリバッファにスプールしても成立することを特徴とする請求項６記載の画像処理方法。
【請求項１１】
コンピュータに接続されたプリンタ装置で、そのコンピュータを司るＯＳからプリンタ装置を制御するためのドライバに描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＰＤＬ）の描画コマンド（以下ＰＤＬ描画コマンド）に変換する手段と、そのＰＤＬ描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのＰＤＬ描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のＰＤＬ描画コマンドに変換する手段を有することを特徴とする画像処理装置。
【請求項１２】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドであることを特徴とする請求項１１記載の画像処理装置。
【請求項１３】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数であることを特徴とする請求項１１記載の画像処理装置。
【請求項１４】
前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立することを特徴とする請求項１１記載の画像処理装置。
【請求項１５】
前記、ＯＳから渡される描画命令に対し、ＰＤＬ描画コマンドに変換する手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令としても成立することを特徴とする請求項１１記載の画像処理装置。
【請求項１６】
コンピュータに接続されたプリンタ装置で、そのコンピュータを司るＯＳからプリンタ装置を制御するためのドライバに描画命令が送られてきたとき、その複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段と、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたＰＤＬ描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなＰＤＬ描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するＰＤＬ描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のＰＤＬ描画コマンドに変換する手段を有することを特徴とする画像処理装置。
【請求項１７】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドであることを特徴とする請求項１６記載の画像処理装置。
【請求項１８】
前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数であることを特徴とする請求項１６記載の画像処理装置。
【請求項１９】
前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立することを特徴とする請求項１６記載の画像処理装置。
【請求項２０】
前記、ＯＳから渡される複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令とし、メモリバッファにスプールしても成立することを特徴とする請求項１６記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理方法および画像処理装置に関し、パーソナルコンピュータなどの情報処理システムにおけるプリンタの印刷処理方法に関するものである。
【０００２】
【従来の技術】
従来、高機能プリンタに対するプリンタドライバの印刷処理は、ＯＳから描画命令が渡されるとそれに対応するプリンタ記述言語（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＰＤＬ）の描画コマンドに置き換えてプリンタにデータの転送を行っている（以下：ＰＤＬモード）。これはＰＤＬを持たずに入力はビットマップのみ（ダムプリンタ方式、ビデオプリンタ方式）という低機能プリンタと比較すると、コンピュータ上でビットマップに展開してからプリンタにデータを転送するよりも通常データ量が少なくなり、高速に処理が行えるという特徴を持つ。
【０００３】
しかしながら近年のパーソナルコンピュータの高速化、アプリケーションの高機能化などにより、豊かな表現がなされたプレゼンテーション資料などが作成される機会が増え、ＰＤＬモードではデータ量が莫大になり、高機能プリンタでありながら低機能プリンタと比較して、却って遅くなるといった例が増えてきている。
【０００４】
遅くなる具体的な例としては、ＯＳから渡される描画命令で指定されるオブジェクトの大きさが極小で、数が膨大だった場合等である。この場合、ＰＤＬ描画コマンドに展開するよりも、ビットマップに展開した方がデータ量が小さくなる。
【０００５】
これに対し、プリンタドライバではページ全体をビットマップに展開してプリンタに転送するモード（以下、ラスターモード）を用意したり、といった対応が取られている。
【０００６】
【発明が解決しようとする課題】
しかしながら、前記ラスターモードを用意し、ユーザにプリンタドライバで設定してもらうという対応では、ユーザからはＰＤＬ描画コマンドによるデータ量が莫大になるかどうかは認識出来ず、結果的に低速なＰＤＬモードで印刷処理してしまうことが常である。また仮に、プリンタドライバ内部でページ毎にどちらのモードで処理した方が高速なのかを予測して、自動的にモードを切り替えたとしても、ラスターモードが選択された場合、ＰＤＬ描画コマンドで転送した方が高速な描画命令に対してさえもビットマップ展開することになり、最適、最速な処理が行われているとは言えない。
【０００７】
これに対し本発明においては、ＰＤＬモードでありながら、局所的にデータ量が莫大になってしまう個所のみをビットマップに展開しビットマップコマンドを、それ以外をＰＤＬ描画コマンドとしてプリンタに転送することにより、全てのデータにおいて最適、かつ高速に処理を行うことが出来る印刷制御装置と画像処理方法、ならびに印刷システムに係る画像処理方法および画像処理装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明の画像処理方法および画像処理装置は、以下（１）〜（２０）の構成を備える。
【０００９】
（１）コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム（以下、ＯＳ）からプリンタ装置を制御するためのソフトウエア（以下、ドライバ）に描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＰＤＬ）の描画コマンド（以下ＰＤＬ描画コマンド）に変換する手段と、そのＰＤＬ描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのＰＤＬ描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のＰＤＬ描画コマンドに変換する手段を有する画像処理方法。
【００１０】
（２）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記（１）記載の画像処理方法。
【００１１】
（３）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数である上記（１）記載の画像処理方法。
【００１２】
（４）前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立する上記（１）記載の画像処理方法。
【００１３】
（５）前記、ＯＳから渡される描画命令に対し、ＰＤＬ描画コマンドに変換する手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令としても成立する上記（１）記載の画像処理方法。
【００１４】
（６）コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム（以下、ＯＳ）からプリンタ装置を制御するためのソフトウエア（以下、ドライバ）に描画命令が送られてきたとき、その複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段と、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたＰＤＬ描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなＰＤＬ描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するＰＤＬ描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のＰＤＬ描画コマンドに変換する手段を有する画像処理方法。
【００１５】
（７）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記（６）記載の画像処理方法。
【００１６】
（８）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数である上記（６）記載の画像処理方法。
【００１７】
（９）前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立する上記（６）記載の画像処理方法。
【００１８】
（１０）前記、ＯＳから渡される複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令とし、メモリバッファにスプールしても成立する上記（６）記載の画像処理方法。
【００１９】
（１１）コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム（以下、ＯＳ）からプリンタ装置を制御するためのソフトウエア（以下、ドライバ）に描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：以下ＰＤＬ）の描画コマンド（以下ＰＤＬ描画コマンド）に変換する手段と、そのＰＤＬ描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのＰＤＬ描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のＰＤＬ描画コマンドに変換する手段を有する画像処理装置。
【００２０】
（１２）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記（１１）記載の画像処理装置。
【００２１】
（１３）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数上記（１１）記載の画像処理装置。
【００２２】
（１４）前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立する上記（１１）記載の画像処理装置。
【００２３】
（１５）前記、ＯＳから渡される描画命令に対し、ＰＤＬ描画コマンドに変換する手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令としても成立する上記（１１）記載の画像処理装置。
【００２４】
（１６）コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム（以下、ＯＳ）からプリンタ装置を制御するためのソフトウエア（以下、ドライバ）に描画命令が送られてきたとき、その複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段と、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたＰＤＬ描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなＰＤＬ描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するＰＤＬ描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらＰＤＬ描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のＰＤＬ描画コマンドに変換する手段を有する画像処理装置。
【００２５】
（１７）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記（１６）記載の画像処理装置。
【００２６】
（１８）前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをＯＲ処理で描画するというコマンドの複数である上記（１６）記載の画像処理装置。
【００２７】
（１９）前記、ビットマップコマンドとは、ＰＤＬ描画コマンドのビットマップ処理に関するものでも成立する上記（１６）記載の画像処理装置。
【００２８】
（２０）前記、ＯＳから渡される複数の描画命令に対し、それぞれＰＤＬ描画コマンドに変換する手段、それらのＰＤＬ描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもＰＤＬ描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにＯＳから渡される描画命令とし、メモリバッファにスプールしても成立する上記（１６）記載の画像処理装置。
【００２９】
この発明による作用として、高機能プリンタに対し如何なるデータを印刷する際においても、ＯＳから渡されてくる描画命令に対し、速度的に最適な印刷処理がおこなえ、結果として高速に印刷することが出来るようになる。
【００３０】
【発明の実施の形態】
以下図面を参照して本発明に係る一実施例を詳細に説明する。
【００３１】
〔実施例〕
図１、図２、図３は本発明である画像処理印刷方法が適用される情報処理システムの構成の一例を示すブロック図である。
【００３２】
図１において、１は中央処理装置で、上記プログラムおよび関連データが記憶されているＦＤ，ＣＤ−ＲＯＭ，ＩＣメモリカード等の記憶媒体をシステムに接続された媒体読取装置６から読み込み、補助記憶装置３から主記憶装置２にロードされたシステムプログラム、アプリケーションプログラムによって、入力装置４から入力される情報を処理して、出力装置５やプリンタ７に出力する。なお、本実施例では、出力装置５はディスプレイなどの表示装置とし、本来出力装置に含まれるプリンタ７と区別する。また、入力装置４はキーボード、ポインティングデバイス等で構成されているものとする。さらに補助記憶装置３は、ハードディスク、光磁気ディスクで構成されるものであってもいいし、これらの組み合わせで構成されるものであってもよい。また、それぞれの装置がネットワークを介して接続されていようとも、この発明を制約するものではない。
【００３３】
図２は媒体読取装置記憶装置に格納されていた画像処理方法制御プログラムと関連するデータが中央処理演算装置に読み込まれ、入力装置から印刷命令が入力されて、プリンタへデータを送り印刷するまでの概念図をあらわす。アプリケーション、ドライバともＯＳの制御下で機能する。
【００３４】
図３は、図２の概念図のプリンタドライバ部分の処理を詳しく記したものである。ＯＳから描画命令が渡されると、描画命令を該当するＰＤＬ描画コマンドに変換する。その後変換されたＰＤＬ描画コマンドをメモリバッファに格納する。そのようにして次々とＯＳからの描画命令をＰＤＬ描画コマンドに変換し、メモリバッファに格納していく。途中、メモリバッファが一杯になった場合は、そのメモリバッファのＰＤＬ描画コマンドの群をプリンタへ転送し、メモリバッファをクリアし、再度ＯＳからの描画命令に対する処理を行う。ＯＳからの描画命令に対する処理がすべて完了すると、メモリバッファ内のＰＤＬ描画コマンド群をプリンタへ転送し、プリンタドライバの印刷処理が完了する。
【００３５】
図４から図７までは、図１、図２、図３で示された情報処理システム上で本実施例の説明をしたものである。
【００３６】
図４はＰＤＬ描画コマンド展開とビットマップ展開したデータに関して、ＰＤＬ描画コマンドの方が大きくなる例を示したものである。
【００３７】
アプリケーションにおいて作成したグラデーションを描画する際、ＯＳからプリンタドライバに渡される描画命令は、高さ１の矩形描画命令を複数回に展開される場合がある。具体的には仮に高さが８ピクセルであった場合、８個の色指定の異なった矩形描画命令に展開されてドライバに渡される。
【００３８】
これをＰＤＬ描画コマンドに変換する場合、ＰＤＬ描画コマンドを構成する各要素を４ＢＹＴＥとすると、１９２バイト。ビットマップコマンドに変換する場合、そのビットマップを二値化されたものとすると、５５バイトで済み、この例の場合、ビットマップ展開した方が、プリンタへ転送する転送量が少なくてすむことを意味する。
【００３９】
このグラデーション描画のように、描画命令により指定されるオブジェクトのＸ軸幅やＹ軸幅が小さく、そして多くの描画命令によりある図形を描き出すような場合に、ビットマップ展開した方がデータ量を抑えられるという状況が発生する。
【００４０】
図５は、図４で示したような、ビットマップ展開した方がデータ量が少なくなるようなＰＤＬ描画コマンド群に対し、どのようにビットマップ展開するかを示したものである。
【００４１】
ＯＳから渡された描画命令をＰＤＬ描画コマンドに展開した際、図４で示した状況（ビットマップ展開した方が、データ量が減らせる）であった場合、該当するＰＤＬ描画コマンドの示すオブジェクトの外接矩形の大きさのメモリ領域に、ビットマップ展開、および１ビットで示されるマスクパターンに展開を行う。
【００４２】
マスクパターンを作成する理由は、ビットマップは矩形で表され、そのうちのどの部分をプリンタで処理する必要があるかを示すためである。
【００４３】
ここで、ビットマップとは、デバイスに依存したビットマップ（ＤｅｖｉｃｅＤｅｐｅｎｄｅｎｔ　Ｂｉｔｍａｐ）でもいいし、デバイスに非依存のビットマップ（Ｄｅｖｉｃｅ　Ｉｎｄｅｐｅｎｄｅｎｔ　Ｂｉｔｍａｐ）でもいい。ビットマップコマンドがサポートしているフォーマットや、図形に使用される色数などを考慮して効率のいいものを指定することが出来る。
【００４４】
図６は、ビットマップ展開したビットマップ、マスクパターンをいかにビットマップコマンドとしてプリンタに転送するかを示したものである。
【００４５】
ここでは転送方法をわかりやすくするため、ＰＤＬ描画コマンドでプリンタに転送した方がよい描画命令が下地となり、上にビットマップ展開してからプリンタに転送した方がよい描画命令が重なった場合として説明する。
【００４６】
まず、ＰＤＬ描画コマンドで転送した方がデータ量が小さくなる描画命令に関しては、ＰＤＬ描画コマンドを用いてプリンタに転送する。その後、ビットマップ展開した方がデータ量が小さくなる描画命令に関してはビットマップコマンドにてマスクパターンとビットマップをプリンタに転送する。
【００４７】
ここでビットマップコマンドが、ビットマップの内、マスクパターンのマスクされた個所のみ描画するという機能を持つ場合は、一度のビットマップコマンドで処理が可能である。この場合は図示していない。
【００４８】
ここで図示しているのは、ビットマップコマンドが前記機能を持たない場合である。この場合は二つのビットマップコマンドが必要である。
【００４９】
一つ目はマスクパターンを使用して該当個所を切り抜くようなビットマップコマンドである。仮にマスクパターンのある個所が１、ない個所が０である場合、論理演算処理としてはＯＲを指定すればこのオペレートが可能である。（プリンタ内部において、１が白とした場合）
二つ目は、ビットマップを使用して、切り抜かれた該当個所にビットマップの該当個所を貼り付けるようなビットマップコマンドである。仮にビットマップの該当個所以外を１（白）とした場合、論理演算処理としてはＡＮＤを指定すればこのオペレートが可能である（プリンタ内部において、１が白とした場合）。
【００５０】
このようなビットマップコマンドを使用してビットマップ転送を行えば、下地の有無に関わらず、ビットマップ展開前のＰＤＬ描画コマンドがどのような形なのかにも関わらず、正確な描画処理を行うことが出来る。
【００５１】
なお、ビットマップコマンドは、ＰＤＬ描画コマンドでビットマップを処理するものがあるのであれば、そのＰＤＬ描画コマンドを使用することも可能である。
【００５２】
図７は、複数のビットマップ展開した方がいいＰＤＬ描画コマンドが存在した場合を示したものである。
【００５３】
図７に示すように、両者のＰＤＬ描画コマンドを結合させる方法と、それぞれ分割して処理する方法がありうる。いずれを選択しても、出力結果は同じになるため、ビットマップ展開後のデータ量に依存して選択すればよい。
【００５４】
画像処理方法は図８に示される画像処理方法のフローチャートに基づいてプログラム化されたものである。以下、図８のフローチャートを参照しながら本発明に係る画像印刷処理方法について説明する。
【００５５】
まず、図１の入力装置４から印刷を実行するように命令が入力されると、補助記憶装置３から主記憶装置２上に読み込まれたＯＳ、ドライバやアプリケーション（図２）のうち、ＯＳがそのメッセージを受け取る。ＯＳは現在アクティブであるアプリケーションに印刷実行メッセージを送る。
【００５６】
アプリケーションは、そのメッセージをＯＳが認識できるコマンドに変換して印刷するデータやコマンドのメッセージを送る。ＯＳはドライバの認識できるコマンドに変換して、メッセージを送る。
【００５７】
ドライバに初期化用のメッセージが送られてきたら、ＰＤＬ描画コマンドを格納するメモリバッファをアロケートして、内容をクリアしておく（８−１）。
【００５８】
ドライバはＯＳから送られてくる描画命令をＰＤＬ描画コマンドに変換する（８−２）。次にそのＰＤＬ描画コマンドをメモリバッファに格納する（８−３）。これを繰り返し、全描画命令に対して行う（８−５）。
【００５９】
全ての描画命令のＰＤＬ描画コマンドへの変換が終わる、あるいはメモリバッファが一杯になる（８−５）と、メモリバッファ内のＰＤＬ描画コマンドを解析する（８−６）、（８−９）。
【００６０】
ここで、ビットマップ展開すると小さくなるＰＤＬ描画コマンド（図４）が存在しなかった場合はそのままメモリバッファ内のＰＤＬ描画コマンドをプリンタへ転送する（８−８）、（８−１１）のだが、存在した場合は、本発明の主要な要素であるビットマップ展開処理を行う（▲２▼）。
【００６１】
ビットマップ展開処理においては、ビットマップ展開すると小さくなる（対象となる）ＰＤＬ描画コマンドの外接矩形を求める（８−１３）。８−１４において他にも対象となるＰＤＬ描画コマンドが存在する場合は、それまでに求めた外接矩形に対応したＰＤＬ描画コマンド群に追加し、あらたに外接矩形を更新するか、新規にそのＰＤＬ描画コマンドに対する外接矩形を作成するかを判断する（８−１５）、（図７）。
【００６２】
これを対象となる全ＰＤＬ描画コマンドに対して行う。
【００６３】
その後、ここまでで求まった外接矩形に応じたビットマップ展開領域（８−１６）、マスクパターン展開領域（８−１７）を確保し、その外接矩形に該当するＰＤＬ描画コマンドをビットマップ展開（８−１８）、マスクパターン展開（８−１９）を行う（図５）。また、８−２０で他に求めた外接矩形が存在すれば、同じくそれに該当するＰＤＬ描画コマンドに対するビットマップ展開、マスクパターン展開を行う。
【００６４】
８−２１では、出来上がったビットマップ、マスクパターンを用いて、新規にビットマップコマンドを作成する（図６）。そのビットマップコマンドをメモリバッファ内の該当するＰＤＬ描画コマンドに置き換える（８−２２）。
【００６５】
これを他に外接矩形が存在すれば、それらに対しても処理を行う（８−２３）。
【００６６】
すべての対象となるＰＤＬ描画コマンドに対する処理が終わると、ビットマップ展開処理（▲２▼）が終了し、確保したビットマップ、マスクパターン領域を開放する（８−２４）。
【００６７】
後はメモリバッファの内容をプリンタに転送することにより、プリンタドライバでの処理が終了する。
【００６８】
今回は主にビットマップ展開の対象となる描画命令として、数多くの細かいグラフィクスを用いて説明してきたが、例えばＰＤＬ描画コマンドでは正常に処理できない描画命令や転送データ量が大きくなってしまう高解像度イメージデータ等に対しても効果がある。
【００６９】
【発明の効果】
ＰＤＬをプリンタコマンドとして持つ高機能プリンタに対し、従来高速に処理が出来るようなデータに関してはそのままの速度で、ＰＤＬでは印刷処理に時間がかかってしまうといわれていたデータに関しても高速に処理を行えるようになる。
【図面の簡単な説明】
【図１】本実施例の画像処理印刷方法が適用される情報処理システムの構成の一例を示すブロック図
【図２】画像処理方法制御プログラムと関連するデータが、媒体読取装置記憶装置に格納されていたデータが中央処理演算装置に読み込まれ、入力装置から印刷命令が入力されて、プリンタへデータを送り印刷するまでの概念図
【図３】図２のドライバ部分を処理内容を中心に詳しく記した図
【図４】ＰＤＬ描画コマンドをビットマップに展開した方がデータ量が小さくなるような描画命令の例を示した図
【図５】ビットマップに展開する場合、どのように行うかを示した図
【図６】図５で展開したビットマップとマスクパターンを用いて、どのようにビットマップコマンドを作成するかを示した図
【図７】図４で示したような描画命令が複数存在した場合、どのように扱えばいいかを示した図
【図８】本発明に係る画像処理装置の画像処理方法の一実施例をあらわすフローチャート
【符号の説明】
１　中央処理装置
２　主記憶装置
３　補助記憶装置
４　入力装置
５　出力装置
６　媒体読取装置
７　プリンタ
８　ＲＯＭ
【図１】
2004030386.tif 000003
【図２】
2004030386.tif 000004
【図３】
2004030386.tif 000005
【図４】
2004030386.tif 000006
【図５】
2004030386.tif 000007
【図６】
2004030386.tif 000008
【図７】
2004030386.tif 000009
【図８】
2004030386.tif 000010