(57)【特許請求の範囲】
【請求項１】
印刷装置に印刷出力を実行させるための印刷制御情報を生成する印刷制御プログラムであって、
前記印刷出力するべき画像を取得して記憶媒体に記憶させるステップと、
記憶された前記画像を構成する各画素の色を前記画素の並び順に従って判定するステップと、
前記各画素の色の判定結果に基づいて異なる色をカウントするステップと、
前記異なる色を表現するための情報をインデックス値と関連付けて記憶媒体に記憶させるステップと、
判定された色に関連付けられた前記インデックス値を前記画素の並び順に従って記憶媒体に記憶させるステップと、
前記異なる色のカウント数が予め定められた前記インデックス値の数の上限値を越えた場合に、前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力すると共に、前記異なる色のカウント数をリセットするステップと、
前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定し、前記画素の並び順に従って記憶されたインデックス値を用いて、前記決定したビット数で前記印刷制御情報を生成して出力するステップとを情報処理装置に実行させることを特徴とする印刷制御プログラム。
【請求項２】
前記決定したビット数で前記印刷制御情報を生成して出力するステップにおいては、全ての主走査ライン毎に、前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定することを特徴とする請求項１に記載の印刷制御プログラム。
【請求項３】
前記決定したビット数で前記印刷制御情報を生成して出力するステップにおいては、前記印刷装置における画像処理の単位となるライン数毎に、前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定することを特徴とする請求項１に記載の印刷制御プログラム。
【請求項４】
前記決定したビット数で前記印刷制御情報を生成して出力した後、主走査ラインの終端を示す識別情報を出力するステップを情報処理装置に実行させることを特徴とする請求項１乃至３いずれか１項に記載の印刷制御プログラム。
【請求項５】
前記決定したビット数で前記印刷制御情報を生成して出力するステップにおいて、前記画素の並び順における主走査ラインの終端側において連続する無地の範囲を抽出し、抽出した無地の範囲の前記インデックス値を削除することを特徴とする請求項４に記載の印刷制御プログラム。
【請求項６】
印刷装置に印刷出力を実行させるための印刷制御情報を生成する印刷制御機能を実現する情報処理装置であって、
前記印刷出力するべき画像を取得する画像取得部と、
前記取得した画像を構成する各画素の色を前記画素の並び順に従って判定する画素色判定部と、
前記各画素の色の判定結果に基づいて異なる色をカウントする色カウント部と、
前記異なる色を表現するための情報をインデックス値と関連付けて記憶媒体に記憶させるインデックス処理部と、  前記判定された色に関連付けられた前記インデックス値を前記画素の並び順に従って記憶媒体に記憶させる画像変換処理部と、
前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力する印刷制御情報処理部とを含み、
前記印刷制御情報処理部は、
前記異なる色のカウント数が予め定められた前記インデックス値の数の上限値を越えた場合に、前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力すると共に、前記異なる色のカウント数をリセットし、
前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定し、前記画素の並び順に従って記憶されたインデックス値を用いて、前記決定したビット数で前記印刷制御情報を生成して出力することを特徴とする情報処理装置。
【請求項７】
請求項１乃至５いずれか１項に記載の印刷制御プログラムと印刷装置とを含むことを特徴とする印刷システム。
【請求項８】
請求項１乃至５いずれか１項に記載の印刷制御プログラムが記憶された記憶部を含むことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御プログラム、情報処理装置、印刷システム及び印刷装置に関し、特に、印刷制御プログラムによって生成される印刷データの容量の制御に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置のうち、電子化された書類の出力に用いられる印刷装置においては、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置において生成された印刷ジョブに基づいて印刷出力を実行するプリンタが一般的に利用されている。そして、プリンタに入力する印刷ジョブを生成するための機能を実現するソフトウェア・プログラムとして、夫々のプリンタの機能に対応したプリンタドライバを情報処理装置にインストールすることが一般的である。
【０００４】
そして、プリンタドライバにおいては、減色処理、圧縮処理、インデックス化、間引き処理等、カラーイメージデータのサイズを小さくしてカラーイメージデータを含む印刷ジョブのプリンタへの転送効率を向上させるための処理を行うことにより、印刷のスループットを向上することが行われている。
【０００５】
上述した各処理のうち、減色処理、間引き処理については、元のイメージデータの色の再現性を損なうため、印刷出力される画像の画質の向上の観点においては採用するべきではない。インデックス化は、出力するべき画像において用いられている色数に依存し、サイズが小さくなるとは限らない。また、圧縮処理は、ある程度のデータ容量の削減が期待されるため、上記インデックス化と組み合わせて用いられている。
【０００６】
ここで、インデックス化の例について説明する。例えば、ＲＧＢ（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ）３色が夫々８ｂｉｔで表現され、１ｐｉｘｅｌが２４ｂｉｔ、即ち３ｂｙｔeで表現される画像において、７０１５ｐｉｘｅｌ×４９６０ｐｉｘｅｌのＡ４サイズの画像を出力対象の画像とする。
【０００７】
上記画像をそのままの状態で印刷ジョブに含めることとすると、３ｂｙｔｅ×７０１５ｐｉｘｅｌ×４９６０ｐｉｘｅｌで、約１０４ＭＢ（メガバイト）の容量となる。他方、容量が７５６ｂｙｔｅである２５６色（１ｂｙｔｅ）のインデックステーブルによってインデックス化する場合、１ｂｙｔｅ×７０１５ｐｉｘｅｌ×４９６０ｐｉｘｅｌ＋７５６ｂｙｔｅで、約３５ＭＢ（メガバイト）の容量となり、約３分の１のサイズに削減することができる。
【０００８】
このようなインデックス化の処理においては、出力画像にフルカラーの部分とモノクロの部分とが含まれている場合、モノクロの部分についてもＣＭＹＫ形式で処理されてしまい、非効率な処理及び情報転送が実行されてしまう。そのような課題を解決するため、出力画像を複数の領域に区切り、夫々の領域毎にフルカラーであるかモノクロであるかを判断して画像処理を行う方法が提案されている（例えば、特許文献１）。特許文献１に開示された技術は、画像の圧縮に関するものであり、インデックス化を前提とする本件とはその趣旨が異なる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
インデックス化処理においては、イメージブロック単位で色数をカウントし、色数に適した形式に合わせて変換を行う。例えば、色数が２５６色以内に収まる場合は８ｂｉｔインデックスデータとして処理をするが、２５７色以上を使用している場合は、２５７色であっても、元の２４ｂｉｔ形式のまま送信される事となり、データ量の削減効果が得られない。
【００１０】
本発明は、上記実情を考慮してなされたものであり、プリンタドライバによる印刷ジョブの生成処理における画像のインデックス化処理を効率化することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様は、印刷装置に印刷出力を実行させるための印刷制御情報を生成するための印刷制御プログラムであって、前記印刷出力するべき画像を取得して記憶媒体に記憶させるステップと、記憶された前記画像を構成する各画素の色を前記画素の並び順に従って判定するステップと、前記各画素の色の判定結果に基づいて異なる色をカウントするステップと、前記異なる色を表現するための情報をインデックス値と関連付けて記憶媒体に記憶させるステップと、判定された色に関連付けられた前記インデックス値を前記画素の並び順に従って記憶媒体に記憶させるステップと、前記異なる色のカウント数が予め定められた前記インデックス値の数の上限値を越えた場合に、前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力すると共に、前記異なる色のカウント数をリセットするステップと、前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定し、前記画素の並び順に従って記憶されたインデックス値を用いて、前記決定したビット数で前記印刷制御情報を生成して出力するステップとを情報処理装置に実行させることを特徴とする。
【００１２】
また、本発明の他の態様は、印刷装置に印刷出力を実行させるための印刷制御情報を生成するための印刷制御機能を実現する情報処理装置であって、前記印刷出力するべき画像を取得する画像取得部と、前記取得した画像を構成する各画素の色を前記画素の並び順に従って判定する画素色判定部と、前記各画素の色の判定結果に基づいて異なる色をカウントする色カウント部と、前記異なる色を表現するための情報をインデックス値と関連付けて記憶媒体に記憶させるインデックス処理部と、前記判定された色に関連付けられた前記インデックス値を前記画素の並び順に従って記憶媒体に記憶させる画像変換処理部と、前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力する印刷制御情報処理部とを含み、前記印刷制御情報処理部は、前記異なる色のカウント数が予め定められた前記インデックス値の数の上限値を越えた場合に、前記画素の並び順に従って記憶されたインデックス値を用いて前記印刷制御情報を生成して出力すると共に、前記異なる色のカウント数をリセットし、前記画素の並び順における主走査ラインの終端の画素の色を判定して前記インデックス値を記憶媒体に記憶させた場合に、前記異なる色のカウント数に応じて前記インデックス値のビット数を決定し、前記画素の並び順に従って記憶されたインデックス値を用いて、前記決定したビット数で前記印刷制御情報を生成して出力することを特徴とする。
【００１３】
また、本発明の更に他の態様は、印刷システムであって上記印刷制御プログラムと印刷装置とを含むことを特徴とする。
【００１４】
また、本発明の更に他の態様は、印刷装置であって、上記印刷制御プログラムが記憶された記憶部を含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、プリンタドライバによる印刷ジョブの生成処理における画像のインデックス化処理を効率化することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る印刷システムの機能構成を示すブロック図である。
【図２】本発明の実施形態に係るプリンタドライバのグラフィック部の機能構成を示す図である。
【図３】２４ｂｉｔ画像データの例を示す図である。
【図４】インデックス化された画像データの例を示す図である。
【図５】本発明の実施形態に係るグラフィック部の動作を示すフローチャートである。
【図６】本発明の実施形態に係るグラフィック部によって生成されるＰＤＬデータの例を示す図である。
【図７】本発明の実施形態に係るグラフィック部によるＰＤＬデータの送信態様を示すフローチャートである。
【図８】本発明の実施形態に係るプリンタにおけるバンドの例を示す図である。
【図９】本発明の実施形態に係るＰＤＬデータの出力動作を示すフローチャートである。
【図１０】本発明の実施形態に係るＰＣのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタドライバがインストールされた情報処理装置であるＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）と、プリンタドライバによって生成される印刷ジョブに従って印刷出力を実行する印刷装置であるプリンタとを含む印刷システムを例として説明する。尚、印刷装置はプリンタでなくとも良く、ＰＣにインストールされたプリンタドライバによって生成される印刷ジョブに基づいて画像形成出力を実行する装置であれば良い。
【００１８】
図１は、本実施形態に係る印刷システムの機能構成を示すブロック図である。図１に示すように、本実施形態に係る印刷システムはＰＣ１及びプリンタ８を含み、ＰＣ１とプリンタ８とは、ネットワーク９を介して接続されている。ＰＣ１においては、インストールされたアプリケーション２がＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）上で動作することにより、文書作成や画像編集等の機能を提供し、ユーザの操作に応じて、印刷出力するべき画像の元となる情報を提供する。
【００１９】
アプリケーション２は、ユーザの操作に応じてプリンタドライバ１０のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部１０ａを起動し、ＵＩ部１０ａのＧＵＩ（Ｇｒａｐｈｉｃａｌ  ＵＩ）を介して設定される印刷出力の設定情報をＤＥＶＭＯＤＥ構造体と呼ばれる情報形式で取得する。
【００２０】
そして、アプリケーション２若しくはアプリケーション２によって起動されたＵＩ部１０ａに対してユーザの操作により印刷実行命令が入力されると、アプリケーション２は、ＧＤＩ（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）３を起動し、ＵＩ部１０ａを介して設定されたＤＥＶＭＯＤＥ構造体及び出力するべき画像の情報を受け渡す。
【００２１】
ＧＤＩ３は、一般的に基本ソフトであるＯＳに組み込まれた描画エンジンである。ＧＤＩ３は、ＤＤＩ（Ｄｅｖｉｃｅ  Ｄｒｉｖｅｒ  Ｉｎｔｅｒｆａｃｅ）を介してプリンタドライバ１０のグラフィック部１０ｂを起動し、処理を受け渡す。
【００２２】
プリンタドライバ１０のグラフィック部１０ｂは、ＧＤＩ３によってＯＳの内部命令として出力された画像データを、印刷出力を実行させる対象のプリンタ８が処理可能なデータ形式であるＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式のデータに変換する。ＰＤＬ形式のデータは、プリンタ８に印刷を実行させるための印刷制御情報である。グラフィック部１０ｂは、ＰＤＬ形式に変換したデータを順次スプーラー４に受け渡す。
【００２３】
スプーラー４は、グラフィック部１０ｂによって生成されたＰＤＬ形式のデータを、スプールファイル５として記憶媒体に一次的に記憶させる。これにより、プリンタドライバ１０においてグラフィック部１０ｂがＰＤＬデータを生成した後、プリンタ８がＰＤＬデータを受け付けることが出来ない状態であったとしても、プリンタドライバ１０は生成したＰＤＬデータをスプーラー４に渡して次の処理にすぐに移ることができるため、処理を効率化することができる。
【００２４】
スプールファイル５として記憶媒体に記憶されたＰＤＬデータは、プリンタプロセッサ６によって再度スプーラー４に受け渡され、ポートモニタ７により、ネットワーク９を介してプリンタ８に送信される。
【００２５】
次に、本実施形態に係るプリンタドライバ１０のグラフィック部１０ｂの機能構成について、図２を参照して説明する。図２に示すように、グラフィック部１０ｂは、グラフィック処理部１００、色数判定処理部１０１、画像変換処理部１０２、ＰＤＬ生成処理部１０３、インデックステーブル１０４及び画像バッファ１０５を含む。
【００２６】
グラフィック制御部１００は、画像データの処理全体を制御する。色数判定処理部１０１は、画像データの色数をカウントして判定すると共に、カウントした色をインデックステーブルに追加する。画像変換処理部１０２は、２４ｂｉｔデータである画像データから４ｂｉｔまたは８ｂｉｔのインデックスデータへの変換処理を行い、画像バッファ１０５に変換後のデータを記憶させる。ＰＤＬ生成処理部１０３は、画像バッファに記憶された変換後のデータまたは元の２４ｂｉｔデータに基づき、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）形式のデータを生成する。
【００２７】
図３は、一般的な２４ｂｉｔ形式の画像データの内容を模式的に示す図である。図３に示すように、一般的な２４ｂｉｔ形式の画像データにおいては、“Ｒ：０”、“Ｇ：１２８”、“Ｂ：１２８”・・・のように、ＲＧＢ各色の諧調が２５６階調（８ｂｉｔ）によって表現された画素が縦横に配置されており、ＲＧＢ各色の２５６階調のデータによって１画素分の色が決定される。この場合、同一の色であっても、夫々別のデータによって表現されるため、必ず１画素につき２４ｂｉｔが必要になる。
【００２８】
これに対して、図４は、２５６色でインデックス化された画像データの内容及びインデックステーブルの内容を模式的に示す図である。図４上段に示すように、インデックス化された画像データにおいては、“０”、“３”、“１００”・・・のように、インデックス値によって１画素の色が記述されている。
【００２９】
ここで、図４に示すインデックス値のビットサイズは、インデックス化の色数によって異なる。インデックス化の色数は例えば１６色、２５６色があり、１６色であれば４ｂｉｔ、２５６色であれば８ｂｉｔである。そして、図４下段に示すように、ＲＧＢ夫々の色の組み合わせが、各インデックス値に対応して設定されている。これにより、インデックス化された画像データにおいては、８ｂｉｔによって１画素を表現することができる。
【００３０】
尚、インデックス化された画像データを用いる場合、図４上段に示すようなインデックス値が縦横に配列された画像データに加えて、図４下段に示すようなインデックステーブルも含めてプリンタ８に送信する必要がある。図４下段に示すように、インデックステーブルにおいては、ＲＧＢ夫々の諧調の値、即ち、画像を構成する画素の色を表現するための情報が、インデックス値と関連付けられている。２５６色のインデックステーブルの容量は例えば７５６ｂｙｔｅである。
【００３１】
このような構成において、本実施形態に係る要旨は、上述したような１６色または２５６色のようなインデックステーブルの色数上限と、インデックス化に際してカウントされる色数との関係に応じてインデックス化の処理を行うことにある。以下、本実施形態に係るグラフィック部１０ｂの動作について説明する。
【００３２】
図５は、本実施形態に係るグラフィック部１０ｂの動作を示すフローチャートである。図５に示すように、グラフィック制御部１００は、グラフィック部１０ｂに入力された画像情報を取得すると（Ｓ５０１）、先頭画素から順番にカレントピクセルを設定する。即ち、グラフィック制御部１００が、画像取得部として機能する。そして、色数判定処理部１０１は、カレントピクセルの色を確認する（Ｓ５０２）。即ち、色数判定処理部１０１が、Ｓ５０２において、画素色判定部として機能する。
【００３３】
確認したカレントピクセルの色が未だインデックステーブルに登録されていない未登録色、即ち、既にインデックステーブルに登録されている色とは異なる色であれば（Ｓ５０３／ＹＥＳ）、色数判定処理部１０１は、色数カウンタをインクリメントする（Ｓ５０４）。即ち、色数判定処理部１０１が、異なる色をカウントする色カウント部として機能する。
【００３４】
インクリメントされた後の色数カウンタのカウント値が２５６色以下であれば（Ｓ５０５／ＹＥＳ）、色数判定処理部１０１は、カレントピクセルの色を登録してインデックステーブルを更新する（Ｓ５０６）。即ち、色数判定処理部１０１が、異なる色として認識された色を表現するための情報とそのインデックス値とを関連付けて記憶させるインデックス処理部として機能する。また、画像変換処理部１０２は、カレントピクセルのインデックス値を画像バッファに追加する（Ｓ５０７）。
【００３５】
他方、インクリメントされた後の色数カウンタのカウント値が２５６色を超えた場合（Ｓ５０５／ＮＯ）、グラフィック制御部１００が、色数判定処理部１０１からの通知に基づき、それまでに画像バッファ１０５に格納された８ｂｉｔのインデックスデータをＰＤＬ生成処理部１０３から取得すると共に、インデックステーブル１０４の情報を取得し、スプーラー４に送信する（Ｓ５０８）。即ち、ＰＤＬ生成処理部１０３及びグラフィック制御部１００が画像変換処理部として機能する。そして、色数判定処理部１０１に、インデックステーブルをクリアすると共に色数カウンタをリセットさせる（Ｓ５０９）。その後、カレントピクセルの色についてＳ５０６以降の処理が実行される。
【００３６】
また、カレントピクセルの色が既にインデックステーブルに登録されている色であった場合（Ｓ５０３／ＮＯ）、画像変換処理部１０２は、カレントピクセルのインデックス値を画像バッファに追加する（Ｓ５０７）。Ｓ５０７の処理が完了すると、グラフィック制御部１００は、カレントピクセルがライン終端であるか否か判断し（Ｓ５１０）、カレントピクセルがライン終端でなければ（Ｓ５１０／ＮＯ）、グラフィック制御部１００は、カレントピクセルを次のピクセルに移動して（Ｓ５１３）、Ｓ５０２からの処理を繰り返す。
【００３７】
カレントピクセルがライン終端であった場合（Ｓ５１０／ＹＥＳ）、グラフィック制御部１００が、色数カウンタのカウント値に応じたｂｉｔ数のインデックスデータをＰＤＬ生成処理部１０３から取得すると共に、インデックステーブル１０４の情報を取得し、スプーラー４に送信する（Ｓ５１１）。ここでも、ＰＤＬ生成処理部１０３及びグラフィック制御部１００が画像変換処理部として機能する。
【００３８】
Ｓ５１１において、グラフィック制御部１００は、色数カウンタのカウント値が“２”以下であれば１ｂｉｔ、“４”以下であれば２ｂｉｔ、“８”以下であれば３ｂｉｔ、“１６”以下であれば４ｂｉｔ、“３２”以下であれば５ｂｉｔ、“６４”以下であれば６ｂｉｔ、“１２８”以下であれば７ｂｉｔのインデックスデータを取得する。
【００３９】
尚、色数カウンタのカウント値に応じたｂｉｔ数でのインデックスデータの取得に際しては、画像バッファにおいて８ｂｉｔでインデックスデータを格納しておき、ＰＤＬ生成処理部１０３が、グラフィック制御部１００からの色数カウンタのカウント値の指定に応じて、必要なビットのみを取得するようにすれば容易に実現可能である。例えば、指定された色数カウンタのカウント値が“１０”であれば、生成するべきインデックスデータは４ｂｉｔである。そのため、ＰＤＬ生成処理部１０３は、８ｂｉｔで格納されているインデックス値の先頭の４ｂｉｔを無視し、後ろの４ｂｉｔのみを取得する。
【００４０】
Ｓ５１１の処理が完了すると、グラフィック制御部１００は、画像の終端まで処理が完了したか否かを確認する（Ｓ５１２）。確認の結果、終端まで処理が完了していなければ（Ｓ５１２／ＮＯ）、グラフィック制御部１００は、カレントピクセルを移動して（Ｓ５１３）、Ｓ５０２からの処理を繰り返す。他方、画像終端まで処理が完了していれば（Ｓ５１２／ＹＥＳ）、処理を終了する。
【００４１】
図６は、このような処理により送信されるＰＤＬデータの形式をライン毎に模式的に示す図である。図６の場合、１ライン目はラインの途中で色数が２５６色に達し、Ｓ５０８、Ｓ５０９の処理を経てラインの途中までのデータが８ｂｉｔのデータとして生成されている。そして、ラインの残りの部分の色数は１０色であるため、１６色以下の４ｂｉｔのデータとして生成されている。
【００４２】
また、２ライン目は、１ラインに含まれる色が２００色であり、２５６色以下であるため、１ライン分のデータを８ｂｉｔのデータとして生成されている。また、３ライン目は、１ライン目と同様にラインの途中で色数が２５６色に達しており、ラインの残りの部分の色数は４色であるため、４色以下の２ｂｉｔのデータとして生成されている。
【００４３】
図７は、図６に示すようなデータがＰＤＬデータとして送信される際に、ＰＣ１からプリンタ８に送信されるデータの例を順番に示す図である。図７においては、上から下の順にデータが送信される。図７に示すように、１ライン目のＰＤＬデータとして、２５６色分のインデックスデータ及び８ｂｉｔのピクセルデータが送信された後、１０色分のインデックスデータ及び４ｂｉｔのピクセルデータが送信され、その後にライン終端を示す識別情報であるライン終端識別子が送信される。
【００４４】
また、２ライン目のＰＤＬデータとして、２００色分のインデックスデータ及び８ｂｉｔのピクセルデータが送信された後、ライン終端識別子が送信される。また、３ライン目のＰＤＬデータとして、２５６色分のインデックスデータ及び８ｂｉｔのピクセルデータが送信された後、４色分のインデックスデータ及び２ｂｉｔのピクセルデータが送信され、その後にライン終端を示すライン終端識別子が送信される。
【００４５】
このように、本実施形態に係るグラフィック制御部１００は、ラインの先頭から順にインデックス化されたピクセルデータを送信すると共にインデックステーブルを送信し、更に各ラインの境目を示すためのライン終端識別子を送信する。これにより、プリンタ８においては、データを受信した順にインデックステーブルを参照して各ピクセルの色を認識可能であると共に、ライン終端識別子に基づいてラインの終端を認識することができる。
【００４６】
一般的なプリンタにおいては、画像形成出力を実行するための画像データを生成する際に、１ページ分の画像を複数のライン毎のまとまりに区切った“バンド”と呼ばれる単位で画像処理を行う。図８は“バンド”の概念を模式的に示す図である。
【００４７】
このようなバンド毎の処理において、１つのバンドを構成するライン数はプリンタの機種や画像形成出力時の設定によって変化する。そのため、１つのインデックステーブルに対応するピクセルデータが２つのラインにまたがっており、その２つのラインがバンドの境目によって別々のバンドに分割される場合、１つのインデックステーブルを別々のバンド処理において参照することとなる。
【００４８】
近年の情報処理装置においては、演算装置のマルチコア化が進んでおり、夫々のバンド処理を別々のコアに分散して処理することは当然に考えられるが、上述したように１つのインデックステーブルを別々のバンド処理において参照する場合、このような分散処理における弊害となる。また、シングルスレッドの場合においても、画像処理が完了したバンドのインデックステーブルを次のバンドの画像処理においても参照する必要があり、メモリ領域を圧迫するという弊害もある。
【００４９】
本実施形態に係るグラフィック部１０ｂによれば、異なるラインにおいては必ず異なるインデックステーブルが生成され、同一のインデックステーブルに対応するピクセルデータが２つのラインにまたがることがないため、上述したような弊害を回避することが可能である。
【００５０】
また、“ライン終端識別子”によって各ラインの終端を示すことが可能であるため、例えば各ラインの後端側が白色の場合、その部分についてはピクセルデータの送信を省略することができる。そのような処理を含むＳ５１１の処理について、図９に示す。
【００５１】
図９に示すように、グラフィック制御部１００は、Ｓ５１１の処理を開始すると、インデックステーブル１０４の情報を取得する（Ｓ９０１）。また、グラフィック制御部１００は、色数判定処理部１０１の色数カウンタのカウント値に基づき、ＰＤＬ生成御部１０３からインデックス値のピクセルデータを取得する（Ｓ９０２）。Ｓ９０２において、グラフィック部１００は、色数カウンタのカウント値に基づいてピクセルデータのインデックス値のｂｉｔ数を決定し、上述したように、決定したｂｉｔ数分のデータを取得する。
【００５２】
インデックス値のピクセルデータを取得すると、グラフィック制御部１００は、Ｓ９０１において取得したインデックステーブルに基づいて白色を示すインデックス値を取得し、そのインデックス値に基づいてＳ９０２において取得したピクセルデータのライン後端側において連続する無地、即ち白色の範囲を認識する（Ｓ９０３）。白色を示すインデックス値とは、例えば、図４に示すようなインデックスデータにおいて、Ｒ、Ｇ、Ｂの値が夫々“２５５”であるインデックス値である。
【００５３】
Ｓ９０３により後端側の白色の範囲を認識すると、グラフィック制御部１００は認識した部分をピクセルデータから削除し（Ｓ９０４）、残ったピクセルデータをスプーラー４に出力し（Ｓ９０５）、続いてライン終端識別子を出力して（Ｓ９０６）、処理を終了する。尚、１ラインが全て白色であった場合、Ｓ９０４において全てのピクセルデータが削除されるため、そのラインについてはライン終端識別子のみが送信されることとなる。
【００５４】
このような処理により、ＰＣ１からプリンタ８に送信されるＰＤＬデータのデータ量を更に削減することが可能となり、よりネットワーク負荷を軽減することが可能となる。
【００５５】
以上、説明したように、本実施形態に係る印刷システムにおいては、インデックステーブルにおける色数制限に従ってラインの途中でインデックステーブルを切り替えることにより、全てのピクセルデータをインデックス化すると共に、ライン終端においては、インデックステーブルに登録されている色数に応じてピクセルデータのビット数を選択する。これにより、プリンタドライバによる印刷ジョブの生成処理における画像のインデックス化を効率化することができる。
【００５６】
尚、上記実施形態においては、主走査ライン毎にライン終端識別子を出力する場合を例として説明した。しかしながらこれは一例であり、例えば、上述したようなプリンタ８におけるバンド処理において、１つのバンドに含まれるライン数が予め判明していれば、そのライン数毎に図５のＳ５１０の判断を行っても良い。これによっても、上記と同様の効果を得ることが可能であると共に、インデックス化を更に効率化することが可能である。
【００５７】
尚、図５に示すような機能は、上述したように図２に示すグラフィック部１０ｂによって実現されるが、図２に示すようなグラフィック部１０ｂの機能構成は、ソフトウェアとハードウェアとの組み合わせによって実現される。以下、本実施形態に係るＰＣ１のハードウェア構成について図１０を参照して説明する。
【００５８】
図１０に示すように、本実施形態に係るＰＣ１は、一般的な情報処理端末と同様の構成を有する。即ち、本実施形態に係るＰＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３４及びＩ／Ｆ３５がバス３３を介して接続されている。また、Ｉ／Ｆ３５にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）３６及び操作部３７が接続されている。
【００５９】
ＣＰＵ３０は演算手段であり、ＰＣ１全体の動作を制御する。ＲＡＭ３１は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ３０が情報を処理する際の作業領域として用いられる。ＲＯＭ３２は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
【００６０】
ＨＤＤ３４は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納されている。Ｉ／Ｆ３５は、バス３４と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ３６は、ユーザがＰＣ１の状態を確認するための視覚的ユーザインタフェースである。操作部３７は、キーボードやマウス等、ユーザがＰＣ１に情報を入力するためのユーザインタフェースである。
【００６１】
このようなハードウェア構成において、ＲＯＭ３２やＨＤＤ３４若しくは図示しない光学ディスク等の記録媒体に格納されたプログラムがＲＡＭ３１に読み出され、それらのプログラムに従ってＣＰＵ３０が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、図１、図２に示すような、本実施形態に係るＰＣ１の機能を実現する機能ブロックが構成される。
【００６２】
図２に示すようなグラフィック部１０ｂの機能構成を実現するプリンタドライバ１０は、例えば光記憶媒体等に格納されたソフトウェア・プログラムが、ＰＣ１のＨＤＤ３４にインストールされることによって構成される。しかしながら、図２に示すようなプリンタドライバ１０をインストールするための方法は、記憶媒体に格納されたソフトウェア・プログラムをＰＣ１に読み出すことに限らず、例えば、ネットワークを介してＰＣ１にソフトウェア・プログラムをダウンロードすることによって実現することも可能である。
【００６３】
そのような場合において、プリンタドライバ１０をインストールするためのインストーラ・プログラムをプリンタ８に設けられた記憶媒体に記憶しておき、プリンタ８からＰＣ１にインストーラ・プログラムをダウンロードすることによっても、ＰＣ１にプリンタドライバ１０を構成することができる。即ち、本実施形態に係るプリンタドライバ１０の流通形態として、プリンタドライバ１０を記憶させた記憶媒体を含むプリンタ１０としての流通形態が考えられる。
【符号の説明】
【００６４】
１  ＰＣ
２  アプリケーション
３  ＧＤＩ
４  スプーラー
５  スプールファイル
６  プリンタプロセッサ
７  ポートモニタ
８  プリンタ
９  ネットワーク
１０  プリンタドライバ
１０ａ  ＵＩ部
１０ｂ  グラフィック部
３０  ＣＰＵ
３１  ＲＡＭ
３２  ＲＯＭ
３３  バス
３４  ＨＤＤ
３５  Ｉ／Ｆ
３６  ＬＣＤ
３７  操作部
１００  グラフィック制御部１００
１０１  色数判定処理部
１０２  画像変換処理部
１０３  ＰＤＬ生成処理部
１０４  インデックステーブル
１０５  画像バッファ
【先行技術文献】
【特許文献】
【００６５】
【特許文献１】特開２０１０−１５２５９７号公報
【図１】
0005978706.tif 000002
【図２】
0005978706.tif 000003
【図３】
0005978706.tif 000004
【図４】
0005978706.tif 000005
【図５】
0005978706.tif 000006
【図６】
0005978706.tif 000007
【図７】
0005978706.tif 000008
【図８】
0005978706.tif 000009
【図９】
0005978706.tif 000010
【図１０】
0005978706.tif 000011