(57)【要約】【課題】一頁を複数に分割したバンド単位に入力される描画命令を解析し、解析内容に基づき、バンドのライン単位にイメージ領域の数と位置情報を検出し、バンド幅とイメージ領域の数に基づき、画像処理方法を切り替えながら、入力描画命令に基づき描画された画像に対し、最適な画像処理を施す。【解決手段】バンド単位に入力される描画命令よりイメージ描画命令を解析する解析手段と、イメージ描画命令に基づく描画領域の数と位置情報を検出する検出手段と、検出情報に基づき、バンドのライン単位に、イメージ領域の数と始点と終点を検出する検出手段と、バンド幅とイメージ領域数より画像処理方法を選択する選択手段と、前記選択手段で選択される画像処理装置で構成される。【選択図】　　　　図１
2004030164.tif 000002
【特許請求の範囲】
【請求項１】
各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す４点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのＹ座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す２点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理装置。
【請求項２】
各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す４点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのＹ座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す２点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理装置およびその方法に関し、たとえば１頁を複数に分割したバンド単位に入力される描画命令を処理する画像処理装置およびその方法に関するものである。
【０００２】
【従来の技術】
一般に、プリンタを接続するホストコンピュータには、プリンタを制御するための印刷制御装置を構成するプリンタドライバが搭載されている。
【０００３】
ホストコンピュータに搭載されたアプリケーションソフトは、作成した文字、図形などのグラフィックス画像や、自然画などのイメージ画像を含む画像データを作成し、この画像データを印刷出力するときには、アプリケーションからこの印刷出力対象となる画像データをＯＳ（オペレーティングシステム）を介して描画命令としてプリンタドライバに供給する。
【０００４】
プリンタドライバでは、供給された画像データに基づく描画命令を解析し、メモリ上に、ＲＧＢ多階調イメージデータを作成し、それをプリンタインクの各色を表すＣＭＹＫ多値情報に変換し、次にインクを打つか打たないかを表すＣＭＹＫ二値のデータに変換する処理をおこなった後、プリンタが解析できる出力データを生成してプリンタに転送する。
【０００５】
プリンタにより画像データに基づく出力画像を良好に出力する場合、出力画像を構成する複数の描画命令の各々に対し、描画命令の種類に応じた色処理（輝度／濃度変換処理、マスキング処理、ガンマ処理、減色処理）、量子化処理等を行うことが必要とされている。
【０００６】
画像データを構成する描画命令群は、プリンタドライバに対してたとえば写真画像部分はイメージ描画命令、テキスト部分はテキスト描画命令、図表等のグラフィックス部分はグラフィックス描画命令というように構成要素毎に描画命令が発行され、プリンタドライバは描画命令の種類ごとに適した色処理や量子化処理等を行い、プリンタの出力可能な画像に変換することができる。
【０００７】
画像処理に用いられている一般的な色処理手法としては、グラフィックス描画命令には「鮮やかさ優先の色処理」、テキスト描画命令は「測色的一致」、写真部描画命令は「色み優先の色処理」が行われている。これら描画命令毎に色処理を切り替えることにより、全ての描画命令に対し良好な出力を得る事ができる。
【０００８】
また、画像処理に用いられている一般的な量子化手法としては、ディザマトリクス法、誤差拡散手法などの手法がある。ディザマトリクス法は、高速でかつ均一に量子化することが可能な手法であり、この手法は、テキスト、図形等の描画命令により描画されたデータの量子化に適している。これに対し、誤差拡散手法は、ディザマトリクス法よりも処理時間を要するが、微妙な階調表現をすることができる手法であり、この手法は自然画などのイメージデータに分類される描画命令で描画されたデータの量子化に適している。
【０００９】
１頁を複数に分割したバンド単位に画像処理を行う、バンディング方式を用いたプリンタドライバにおいて、バンド内に存在する描画命令を解析し、バンド内の１スキャンラインに対し、イメージ描画領域とそれ以外の描画領域（グラフィックス描画領域）を識別し、それぞれの領域に適した画像処理（色処理、量子化処理）を行うことで、良好な出力画像を得ることができる。
【００１０】
このような考えかたの画像処理方法としては、特開平１０−０５１６３６号公報において記載の技術がある。
【００１１】
【発明が解決しようとする課題】
該当スキャンライン上のイメージ描画領域とグラフィックス描画領域に対し最適な画像処理施す場合、２倍の画像処理用メモリを用意し、スキャンライン全体に対してイメージ描画領域用とグラフィックス描画領域用の画像処理をそれぞれ行い、最後に各描画領域位置情報を基に出力画像を合成する方法（特開平１０−０５１６３６号公報の技術はこれに相当する。）と、スキャンラインの始点から終点まで順番に、イメージ描画領域部分用の画像処理とグラフィックス描画領域用の画像処理を交互に行う方法とが一般的である。
【００１２】
しかし、前者の方法だと倍のメモリ使用となる分の効率悪化と、イメージ領域が少なかった場合には無駄な画像処理時間の増加が問題となる。また、後者の方法ではメモリの使用量は節約できるが、スキャンライン上に多数のイメージ領域が存在した場合、小さな領域に対する画像処理方法の切り替えのオーバーヘッドにより処理時間の増加が問題となっていた。
【００１３】
本発明は、これらの問題点に鑑みてなされたものであり、ページ記述言語をもたないプリンタ用の、バンディング方式を用いたプリンタドライバにおいて、バンド内に存在する描画命令のうち、イメージ描画命令のみを識別し、該当描画命令のイメージ描画領域の矩形情報を保存しておき、バンド内の１スキャンラインに対し色処理および量子化処理時に、保存しておいた領域情報を参照し、該当スキャンライン上に存在するイメージ描画領域の始点と終点を位置情報として作成し、該当スキャンライン上の領域情報が重なる場合には１つの領域情報、該当スキャンラインをイメージ描画領域かそれ以外かに切り分けた位置情報を基に、色処理、量子化処理を切り分けて行う画像処理装置において、バンド幅と１スキャンライン上のイメージ描画領域の個数から画像処理の方法を選択する手段をもつことを特徴とし、バンド内の１スキャンラインに対し、始点からイメージ描画領域かグラフィックス描画領域かで順次、印刷情報処理を切り替えながら行う方法と、１スキャンライン全体をイメージ描画領域用と、グラフィック描画領域用の画像処理を行った後、領域位置情報を基に合成する方法を併用し、切り替えて使用することで、より効率的に画像処理を行うことを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本願発明は、各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段によって識別された描画領域とバンド内のあるスキャンラインのＹ座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段と、該当スキャンラインの幅と該当スキャンライン上の位置情報より画像処理方法を選択する選択手段を備え、前記生成手段で生成された位置情報に基づき、前記入力画像データに対して自動的に最適な画像処理を行うことを特徴とする。
【００１５】
以上、本発明を整理して要約すれば以下の構成に集約できる。
【００１６】
（１）各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す４点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのＹ座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す２点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理装置。
【００１７】
（２）各ページの様々な描画命令によって示される画像データを複数のバンドに分割して入力する入力手段と、前記バンド毎に入力される各描画命令を解析し特定の描画命令だけを判別する判別手段と、前記判別手段によって判別された描画命令に基づき描画領域を識別する識別手段と、前記識別手段で識別された矩形領域の数と識別されたすべての矩形領域の位置情報を示す４点の座標データを保存する領域情報保存手段と、前記領域情報保存手段によって保存された描画領域とバンド内のあるスキャンラインのＹ座標に基づき、該当スキャンライン上の効率的な画像処理を施すための位置情報を生成する生成手段を備え、前記生成手段で生成されたスキャンライン上の位置情報の数と、生成されたスキャンライン上のすべての位置情報を示す２点の座標データを保存する位置情報保存手段と、前記位置情報保存手段で保存された位置情報の数とバンド幅から画像処理方法を選択する選択手段を持つことを特徴とする画像処理方法。
【００１８】
【発明の実施の形態】
（第一実施形態）
以下、図面を参照して本発明に係る発明の実施の形態の一例を詳細に説明する。
【００１９】
本実施形態におけるシステムの概略の一例を図１に示す。
【００２０】
ホストコンピュータ１００には、例えばインクジェットプリンタなどのプリンタ１０５とモニタ１０４やキーボード１０６が接続されている。ホストコンピュータ１００は、ワープロ、表計算、インターネットブラウザ等のアプリケーションソフトウエア１０１とそのアプリケーションソフトによってＯＳ１０２に発行される出力画像を示す各種描画命令群（イメージ描画命令、テキスト描画命令、グラフィックス描画命令）を処理して印刷データを作成するプリンタドライバ１０３をソフトウエアとして持つ。
【００２１】
ホストコンピュータ１００は、これらソフトウエアが動作可能な各種ハードウエアとして中央演算処理装置ＣＰＵ１０８、ハードディスクＨＤ１０７、ランダムアクセスメモリＲＡＭ１０９、リードオンリーメモリＲＯＭ１１０等と、前記ＣＰＵ、ＨＤ、ＲＡＭ、ＲＯＭを接続するデータバス１１１を備える。
【００２２】
図１で示される実施形態として、例えば一般的に普及しているＩＢＭ　ＡＴコンパチのパーソナルコンピュータにＭｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（Ｒ）９５をＯＳ１０２として使用し、任意の印刷可能なアプリケーションをインストールし、モニタ１０４とプリンタ１０５とキーボード１０６を接続した形態が一実施形態として考えられる。
【００２３】
以下図２に本実施例が示すバンディング方式のプリンタドライバとＯＳの処理フローについて説明する。
【００２４】
ホストコンピュータ１００上のアプリケーションソフト１０１は、文字などのテキストに分類されるテキストデータや、図形などのグラフィックスに分類されるグラフィックスデータや、自然画などに分類されるイメージ画像データなど出力画像データとして作成する。
【００２５】
作成された出力画像データを印刷出力するときには、アプリケーションソフト１０１からＯＳ１０２に印刷出力要求を行い、テキストデータ部分は、テキスト描画命令、グラフィックスデータ部分はグラフィックス描画命令、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をＯＳ１０２に発行する。
【００２６】
ＯＳ１０２はアプリケーション１０１の出力要求を受け、出力プリンタ１０５に対応するプリンタドライバ１０３に印刷要求を発行する。
【００２７】
プリンタドライバ１０３ではＯＳ１０２から印刷要求が送られてくると、バンド用の作業領域を確保し、確保した領域の座標データ（バンドサイズのデータ）をＯＳ１０２に送る。ＯＳ１０２は渡されたバンドサイズ内に存在する描画命令群をプリンタドライバ１０３に発行する。バンド用の作業領域を確保するのは、本実施形態で示したようなページ記述言語を持たないラスター系のプリンタ１０５では、ホストコンピュータ１００上のプリンタドライバ１０３がイメージ展開処理を行うのだが、ホストコンピュータ１００には、通常一ページ分すべての描画命令を展開するだけの十分な記憶装置が搭載されていないので、横に細長く分割したバンドと呼ばれる単位ごとにイメージをメモリ上に作成するためである。
【００２８】
プリンタドライバ１０３は、ＯＳ１０２からの描画命令群を順次ＲＧＢ２４ビットの形式でバンドメモリにラスタライズし、全ての描画命令をラスタライズした後にバンドメモリの内容をＣＭＹＫデータに変換を行い、最後にプリンタ１０５が印刷可能なデータ形式に変換し、プリンタ１０５に転送する。
【００２９】
ＯＳ１０２は、アプリケーション１０１で作成されたページ内に存在するすべての描画命令群の発行を、バンド毎に繰り返し、印刷を実行し、完了させる。
【００３０】
以下図３に本実施例が示すプリンタドライバ１０３による印刷データ処理の流れについて説明する。
【００３１】
バンディング方式のプリンタドライバなので全体的な流れとしては、前述した図２の説明のように、プリンタドライバ１０３はバンドメモリを確保したのち、すべての印刷制御処理はバンド毎に行い、すべての処理が終わった後に、バンドメモリを開放する処理となっている。
【００３２】
バンド毎のプリンタドライバ１０３の印刷制御処理としては、大きく分けると３つのＳＴＥＰに分けることができる。以下、その３ＳＴＥＰについて詳しく説明する。
【００３３】
ＳＴＥＰ１では、ＯＳ１０２からバンド領域内に描画すべき描画命令を１つづつ受け取り、プリンタドライバ１０３はこの描画命令実行時に、後述する描画命令解析処理（図５）も行いながらイメージ領域情報テーブル（図６）を作成し、プリンタ１０５の解像度に応じ、予め確保しておいたＲＧＢ２４ビットバンドメモリに順次ラスタライズを行い、ＲＧＢ画像データを生成する。
【００３４】
図５に示した描画命令解析処理とは、ＯＳ１０２から渡された描画命令を解析することによって、バンド内に存在しているイメージ領域の数情報（ＩｍａｇｅＣｏｕｎｔ）と、バンド内に存在しているイメージ領域の矩形情報を示すイメージ領域情報テーブル（ＡｒｅａＩｎｆｏＴＢＬ）を出力するものである。
【００３５】
以下、処理フローを順に説明すると、ＩｍａｇｅＣｏｕｎｔを初期化した後、まず渡された描画命令の種類を判別する。該当描画命令がイメージ描画命令であった場合には、次に描画命令で示されるオブジェクトが写真画像部分であるかを識別する。一般的に写真画像等のイメージデータは２４ビットＲＧＢのオブジェクト画像や８ビットパレットのオブジェクト画像である事が多く、それより小さなビット深さのイメージ画像は写真画像でない場合が多い。このため、イメージ描画命令の関数のヘッダを参照し、イメージのビット深さが２４ビット以上あるいは８ビットパレットであった場合のみ、ＲＡＭ１０９に、図５に示すようにイメージ領域情報テーブルに１つエントリを作成し、イメージ描画命令に含まれていた描画位置情報（矩形の左上座標，Ｌｅｆｔ，Ｔｏｐと右下座標Ｒｉｇｈｔ，Ｂｏｔｔｏｍ）を格納し、ＩｍａｇｅＣｏｕｎｔを一つインクリメントする。この描画命令解析処理は、バンド領域内で実行される全ての描画命令に対して実行される処理であり、バンド内にまだ描画命令が存在する場合には、再び描画命令解析の部分にもどる。すべての描画命令に対して解析処理を終えた後、イメージ領域情報テーブルが作成されていた場合には、左端（Ｌｅｆｔ）、上端（Ｔｏｐ）、右端（Ｒｉｇｈｔ）、下端（Ｂｏｔｔｏｍ）の順に小さい値からテーブル内を並べ変え、処理を終了する。
【００３６】
ＳＴＥＰ２では、作成されたＲＧＢ画像データのバンドメモリに対して、バンド内の１スキャンライン毎に、ＳＴＥＰ１で生成したイメージ領域情報テーブルに基づき、後述するイメージ領域生成処理（図８）を実行し、イメージ位置情報情報テーブル（図７）を獲得する。
【００３７】
図８に示したイメージ領域生成処理とは、バンドメモリ内の１スキャンラインのＹ座標方向の位置情報を基に、該当スキャンライン上に存在するイメージ領域の数情報（ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ）と、各イメージ領域の該当スキャンライン上のＸ座標方向の始点と終点を示すイメージ位置情報テーブル（図７）を生成するものである。
【００３８】
以下、処理フローを順に説明する。ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅを初期化した後、バンド内にいくつイメージ領域が存在しているかを示すＩｍａｇｅＣｏｕｎｔを参照する。バンド内にイメージ領域が存在しない時は処理を終了する。存在する時は、イメージ領域情報テーブルからイメージ領域情報を１つ取り出し、スキャンラインのＹ座標と、イメージ領域情報の上端（Ｔｏｐ）と下端（Ｂｏｔｔｏｍ）から、該当スキャンライン上にイメージ領域が存在するかどうかを判定する。存在した場合には、イメージ領域情報の左端（Ｌｅｆｔ）と右端（Ｒｉｇｈｔ）を取り出す。イメージ位置情報テーブルがまだ存在していない場合には、ＲＡＭ１０９に、図６に示すイメージ位置情報テーブルのエントリを１つ作成し、始点にＬｅｆｔと終点にＲｉｇｈｔを保存し、ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅを１つインクリメントする。
【００３９】
既にイメージ位置情報テーブルが作成されていた場合には、最後に保存したイメージ位置情報の始点（ＰｒｅＬｅｆｔ）と終点（ＰｒｅＲｉｇｈｔ）と、現在のイメージ位置情報のＬｅｆｔとＲｉｇｈｔをそれぞれ比較し、イメージが重ならない場合（ＰｒｅＲｉｇｈｔ＜Ｌｅｆｔの時）には、イメージ位置情報テーブルのエントリを１つ追加し、始点にＬｅｆｔと終点にＲｉｇｈｔを保存し、ＩｍａｇｅＣｏｕｔＰｅｒＬｉｎｅを１つインクリメントする。
【００４０】
イメージが重なった場合には終点、ＰｒｅＲｉｇｈｔとＲｉｇｈｔを比較し、ＰｒｅＲｉｇｈｔ＜Ｒｉｇｈｔの場合のみ、ＰｒｅＲｉｇｈｔをＲｉｇｈｔに更新する。イメージが重なった時は、１つのイメージ領域とみなすことからＩｍａｇｅＣｏｕｔＰｅｒＬｉｎｅはインクリメントしない。また、始点、ＰｒｅＬｅｆｔとＬｅｆｔに関しては、既に描画命令解析手段で常にＰｒｅＬｅｆｔ＜＝Ｌｅｆｔになるように並べ変えてあることより比較しない。また、当処理の結果、生成されたイメージ位置情報テーブル内のイメージ位置情報は自動的にスキャンラインの先端位置（左端）から順に並べられている。
【００４１】
バンド内に存在するすべてのイメージ領域情報に対して前述した処理を繰り返した後、処理を終了する。
【００４２】
ＳＴＥＰ３では、ＳＴＥＰ２で生成されたイメージ位置情報テーブルを基に、バンド内の１スキャンライン毎に、該当スキャンラインの先端から終端まで、イメージ領域部分とイメージ領域でない部分に対して、それぞれの特性に応じた、色処理（輝度／濃度変換処理、マスキング処理、ガンマ処理、減色処理）、２値化処理を施した後、印字コマンドに変換しプリンタに出力を行う。
【００４３】
以下に詳述する。
【００４４】
ＳＴＥＰ３では、まず、スキャンラインの先端位置情報を変数ＳｔａｒｔＰｏｓに、後端位置情報をＥｎｄＰｏｓにセットし、ＳＴＥＰ２でセットされたスキャンライン内のイメージ領域個数（ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ）を参照する。
【００４５】
スキャンライン内に１つもイメージ領域が存在しない場合（最初からＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ＝０の時）には、ＳｔａｒｔＰｏｓからＥｎｄＰｏｓまで、つまりスキャンライン全体に対して、グラフィックスデータとみなし、鮮やかさ優先の色処理を行いＲＧＢ２４ｂｉｔ画像データをＣＭＹＫ３２ｂｉｔ画像データに変換した後、ＣＭＹＫ３２ｂｉｔ画像データに対して、ディザマトリクス法により２値化処理を施してＣＭＹＫ４ｂｉｔ２値画像データに変換し、印字コマンドに変換したあとプリンタ１０５に送信する。
【００４６】
スキャンライン内にイメージ領域がＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ個存在した場合には、画像処理選択手段において、スキャンラインの幅を存在するスキャンライン上に存在するイメージ領域ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ個で割り、おおよその１イメージ領域のピクセル数（ＩｍｇａｇｅＰｉｘｅｌ）を算出する。そのピクセル数と、あらかじめ調査し決定しておいた閾値Ｘとを比較する。
【００４７】
この閾値Ｘは、スキャンライン幅のデータに対し、イメージ領域用、およびグラフィックス領域用それぞれの画像処理を施す時間と、ＩｍａｇｅＰｉｘｅｌ幅のデータに対しスキャンライン幅割るＩｍａｇｅＰｉｘｅｌ幅の回数分、イメージ領域用およびグラフィックス領域用画像処理をそれぞれ行った場合の合計時間とを計測した場合に、後者の処理時間のほうが小さくなる限界の幅とし、ＩｍａｇｅＰｉｘｅｌが、閾値Ｘよりも小さくなる場合には、前者の画像処理を施した場合のほうが、メモリの使用量は増大するが画像処理の高速化を行うことができる。
【００４８】
この前述した閾値ＸとＩｍａｇｅＰｉｘｅｌを比較した結果、閾値Ｘのほうが小さかった場合には、以下の画像処理を行う。
【００４９】
ＳＴＥＰ２で生成されたイメージ位置情報テーブル（ＩｍａｇｅＡｒｅａＴＢＬ［ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ］）から、先頭のイメージ位置情報を参照し、先頭イメージ領域の始点（Ｘ１）と終点（Ｘ２）を獲得する。そして、ＳｔａｒｔＰｏｓからＸ１までは、グラフィックスデータ用の鮮やかさ優先の色処理を行い、ＲＧＢ２４ｂｉｔ画像データをＣＭＹＫ３２ｂｉｔ画像データに変換した後、ＣＭＹＫ３２ｂｉｔ画像データに対してディザマトリクス法により２値化処理を施し、ＣＭＹＫ４ｂｉｔ２値画像データに変換する。次に、Ｘ１からＸ２まではイメージデータ用の色見優先の色処理を行い、ＲＧＢ２４ｂｉｔ画像データをＣＭＹＫ３２ｂｉｔ画像データに変換した後、ＣＭＹＫ３２ｂｉｔ画像データに対して、誤差拡散法により２値化処理を施してＣＭＹＫ４ｂｉｔ２値画像データに変換する。
【００５０】
その後、ＳｔａｒｔＰｏｓにＸ２の値をセットしなおし、ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅを１つ減らし、ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅがゼロになるまで、つまりスキャンライン上のイメージ領域情報テーブルをすべて参照するまで、本処理を繰り返す。
【００５１】
すべて参照し終わった後、ＳｔａｒｔＰｏｓにはスキャンライン上の最後イメージ領域の終点がセットされているので、このＳｔａｒｔＰｏｓからスキャンラインの後端、ＥｎｄＰｏｓまでをグラフィックスデータとみなし、鮮やかさ優先の色処理を行い、ＲＧＢ２４ｂｉｔ画像データをＣＭＹＫ３２ｂｉｔ画像データに変換した後、ＣＭＹＫ３２ｂｉｔ画像データに対して、ディザマトリクス法により２値化処理を施してＣＭＹＫ４ｂｉｔ２値画像データに変換する。
【００５２】
前述した閾値ＸとＩｍａｇｅＰｉｘｅｌを比較した結果、閾値Ｘのほうが大きかった場合には、以下の画像処理を行う。
【００５３】
ＳｃａｎＬｉｎｅ幅分の２値化後の作業用メモリ（ＳｃａｎＬｉｎｅＢｕｆｆｅｒ）をもうひとつ作成するために、作業用メモリ（ＳｃａｎＬｉｎｅＢｕｆｆｅｒ２）を確保する。確保できなかった場合には、前述した画像処理を実行する。
【００５４】
確保できた場合には、ＳｔａｒｔＰｏｓからＥｎｄＰｏｓまで、つまりスキャンライン幅全体に対して、グラフィックス領域用の画像処理である鮮やかさ優先の色処理およびディザマトリクス法により２値化処理を行いＳｃａｎＬｉｎｅＢｕｆｆｅｒに格納する。続けて同じようにＳｔａｒｔＰｏｓからＥｎｄＰｏｓまでイメージ領域用の画像処理である色見優先の色処理および誤差拡散法により２値化処理を行い、処理結果をＳｃａｎＬｉｎｅＢｕｆｆｅｒ２に格納する。この後ＳＴＥＰ２で生成されたイメージ位置情報テーブル（ＩｍａｇｅＡｒｅａＴＢＬ［ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ］）から、先頭のイメージ位置情報を参照し、ＳｃａｎＬｉｎｅＢｕｆｆｅｒ２上の先頭イメージ領域の始点（Ｘ１）と終点（Ｘ２）をＳｃａｎＬｉｎｅＢｕｆｆｅｒにコピーする。このコピー作業をＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ回繰り返すことで、スキャンライン上に存在するすべてのイメージ領域データをＳｃａｎＬｉｎｅＢｕｆｆｅｒ２からＳｃａｎＬｉｎｅＢｕｆｆｅｒにコピーする。
【００５５】
前述してきた画像処理を施した結果、１スキャンラインすべてに対して、イメージ領域部分とイメージ領域でない部分に対して、それぞれの特性に応じた、色処理および２値化処理が終わったことになり、１スキャンライン分のＣＭＹＫ４ｂｉｔ２値画像データを印字コマンドに変換した後、プリンタに送信する。
【００５６】
前述したＳＴＥＰ２およびＳＴＥＰ３の処理を、１バンド内すべてのスキャンラインに対して行った後、プリンタドライバのバンド毎の印刷情報処理が終わったこととなる。
【００５７】
ＳＴＥＰ１，ＳＴＥＰ２，ＳＴＥＰ３の処理の流れを簡単に示す１例を図９に示した。
【００５８】
図９の例１で、バンドＮには３つのイメージビットマップ領域が存在する。ＳＴＥＰ１で描画命令解析処理を行った結果、バンド内に存在するイメージ領域の個数（ＩｍａｇｅＣｏｕｎｔ）は、ＩｍａｇｅＣｏｕｎｔ＝３として登録され、イメージ領域情報テーブル（ＡｒｅａＩｎｆｏＴＢＬ）には、ＡｒｅａＩｎｆｏＴＢＬ［０］＝｛Ｌｅｆｔ１，Ｔｏｐ１，Ｒｉｇｈｔ１，Ｂｏｔｔｏｍ１｝、ＡｒｅａＩｎｆｏＴＢＬ［１］＝｛Ｌｅｆｔ２，Ｔｏｐ２，Ｒｉｇｈｔ２，Ｂｏｔｔｏｍ２｝、ＡｒｅａＩｎｆｏＴＢＬ［２］＝｛Ｌｅｆｔ３，Ｔｏｐ３，Ｒｉｇｈｔ３，Ｂｏｔｔｏｍ３｝として登録される。次にバンド内のＹ　Ｌｉｎｅに値するスキャンラインに対してＳＴＥＰ２を実行すると、スキャンライン上に存在するイメージ領域の個数（ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ）は、ＩｍａｇｅＣｏｕｎｔＰｅｒＬｉｎｅ＝２として登録され、イメージ位置情報テーブル（ＩｍａｇｅＡｒｅａＴＢＬ）には、ＩｍａｇｅＡｒｅａＴＢＬ［０］＝｛Ｌｅｆｔ１，Ｒｉｇｈｔ２｝、ＩｍａｇｅＡｒｅａＴＢＬ［１］＝｛Ｌｅｆｔ３，Ｒｉｇｈｔ３｝として登録される。そしてＳＴＥＰ３で、画像処理方法選択手段により、スキャンライン幅をイメージ領域の個数で割った結果、あらかじめ求めていた閾値より値が大きいので、スキャンラインの始点から順次、イメージ位置情報テーブルを参照しながら画像処理を実行した場合の処理の流れの説明図である。また、図９の例２は、８つのイメージビットマップ領域が存在し、前述と同様にＳＴＥＰ１からＳＴＥＰ２を経てイメージ位置情報テーブルを作成する。そしてＳＴＥＰ３で画像処理方法選択手段の結果、スキャンライン全体に対して、イメージ用画像処理とグラフィックス用画像処理を施し、最後に両処理後のデータを合成した場合の処理の流れの説明図である。
【００５９】
前述してきたように本実施形態では、バンド内の描画命令を描画命令解析処理（図５）で解析した結果得られたバンド内に存在するイメージ領域情報をもとに、イメージ領域生成処理（図８）でスキャンライン上に存在する無駄なイメージ領域をまとめたイメージ位置情報を生成し、スキャンライン幅と前記イメージ位置情報により、スキャンライン毎の効率的な画像処理（図４）を行うことができた。
【００６０】
（変形例）
前述してきた実施形態では、ＣＭＹＫ多値データをＣＭＹＫ２値データに変換する処理を行っているが、階調数を減らすＮ値化処理すべてで同じである。
【００６１】
前述してきた実施形態の機能を実現する為に各種のデバイスを動作させる様に、該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【００６２】
またこの場合、前記ソフトウエアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【００６３】
かかるプログラムコードを格納する記憶媒体としては例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることが出来る。
【００６４】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００６５】
また供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【００６６】
【発明の効果】
以上説明したように、本発明によれば、バンド毎に入力される様々な描画命令で構成される画像データの印刷時に、バンド内の１スキャンライン上のイメージ描画領域の数および位置情報を生成し、生成した位置情報を基に画像処理を自動的に切り替える際には、スキャンラインの幅とイメージ描画領域の数から最適な画像処理方法を選択することによって、印刷を高速かつ効率的に行うことができる。
【図面の簡単な説明】
【図１】システムの構成の一例を示すブロック図
【図２】バンディング方式のプリンタドライバの処理の流れを示す図
【図３】実施例一のプリンタドライバの印刷データ処理のフローチャート
【図４】領域情報とバンド幅に基づく画像処理を示す図
【図５】描画命令解析処理のフローチャート
【図６】イメージ領域情報テーブル（バンド毎）の構成例を示す図
【図７】イメージ位置情報テーブル（スキャンライン毎）の構成例を示す図
【図８】イメージ領域生成処理のフローチャート
【図９】実施例一のバンドＮのＹ　Ｌｉｎｅに対しての印刷情報処理結果例を示す図
【符号の説明】
１００　ホストコンピュータ
１０１　アプリケーションソフトウエア
１０２　オペレーティングシステム（ＯＳ）
１０３　プリンタドライバ
１０４　モニタ
１０５　プリンタ
１０６　キーボード
１０７　ＨＤ
１０８　ＣＰＵ
１０９　ＲＡＭ
１１０　ＲＯＭ
１１１　データバス
【図１】
2004030164.tif 000003
【図２】
2004030164.tif 000004
【図３】
2004030164.tif 000005
【図４】
2004030164.tif 000006
【図５】
2004030164.tif 000007
【図６】
2004030164.tif 000008
【図７】
2004030164.tif 000009
【図８】
2004030164.tif 000010
【図９】
2004030164.tif 000011