(57)【要約】【課題】  印刷時に於ける最適なバンドサイズは、環境や印刷対象など様々な要因に左右されるため、自動的に最適なバンドサイズを決定することは困難であった。【解決手段】  バンドサイズ選択手段４０１を持ち、選択されたバンドサイズで印刷処理を行なうことで、ユーザの意図により自由にバンドサイズを設定可能なシステム構成とする。【選択図】  図１
2007264750.tif 000002
【特許請求の範囲】
【請求項１】
予め定めたオペレーティングシステムを稼動可能で、且つ、予め定められた通信媒体を介して印刷装置と通信可能なデータ処理システムであって、
予め定めた描画命令で記述された印刷データを入力する入力手段と、
入力された印刷データを印刷装置が要求する形式に変換する変換手段と、
描画領域を複数の矩形領域に分割したバンド単位で前記変換処理を行なう場合に、バンドサイズの決定方法を複数の候補から選択する選択手段と、
前記選択手段による選択に基づきバンドサイズを決定する決定手段を有し、
前記決定手段により決定されたバンドサイズで、前記変換処理を実行することを特徴とするデータ処理システム。
【請求項２】
前記決定手段は、
定められたメモリ量によりバンドサイズを決定するメモリ優先決定手段と、
描画領域の定められた分割数をもとにバンドサイズを決定する分割数優先決定手段と、
出力画像の幅及びビット数をもとにバンドサイズを決定する幅優先決定手段とを有し、
前記選択手段により選択された候補に基づき、前記決定手段の何れかによってバンドサイズを決定することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記選択手段における選択候補は３つ以上であることを特徴とする請求項１又は、請求項２に記載のデータ処理システム。
【請求項４】
予め定めたオペレーティングシステムを稼動可能で、且つ、予め定められた通信媒体を介して印刷装置と通信可能なデータ処理システムのデータ処理方法であって、
予め定めた描画命令で記述された印刷データを入力する入力工程と、
入力された印刷データを印刷装置が要求する形式に変換する変換工程と、
描画領域を複数の矩形領域に分割したバンド単位で前記変換処理を行なう場合に、バンドサイズの決定方法を複数の候補から選択する選択工程と、
前記選択工程による選択に基づきバンドサイズを決定する決定工程を有し、
前記決定工程により決定されたバンドサイズで、前記変換処理を実行することを特徴とするデータ処理方法。
【請求項５】
前記決定工程は、
定められたメモリ量によりバンドサイズを決定するメモリ優先決定工程と、
描画領域の定められた分割数をもとにバンドサイズを決定する分割数優先決定工程と、
出力画像の幅及びビット数をもとにバンドサイズを決定する幅優先決定工程とを有し、
前記選択工程により選択された候補に基づき、前記決定工程の何れかによってバンドサイズを決定することを特徴とする請求項４に記載のデータ処理方法。
【請求項６】
前記選択工程における選択候補は３つ以上であることを特徴とする請求項４又は、請求項５に記載のデータ処理方法。
【請求項７】
前記請求項４乃至請求項６の何れかに記載のデータ処理方法をコンピュータにより実現するためのプログラム。
【請求項８】
前記請求項７記載のプログラムを記憶したコンピュータで読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの変換処理に於ける、処理単位可変の技術に関する。
【背景技術】
【０００２】
例えばワードプロセッサ、パーソナルコンピュータ、ファクシミリ等に於ける情報出力装置として、所望される文字や画像等の情報を用紙やフィルム等シート状の記録媒体に印刷するプリンタが広く使用されている。通常、プリンタで印刷を行なうためには、プリンタに接続されたホスト上で、プリンタドライバによって印刷データの生成が行なれ、生成された印刷データをプリンタに送信する。
【０００３】
この印刷データ生成時には、一般的に、印刷領域を用紙の搬送方向に垂直な方向に分割することによって得られる矩形領域（以下、バンド）単位で処理を行うことで、少ないメモリで印刷データを生成する。このとき、バンドサイズが小さければ小さいほど、同じ処理を繰り返す回数が増えるため、通常処理時間は長くなる。特にアプリケーションから送信されてくる描画命令が非常に複雑である場合、プリンタドライバは、通常バンドの回数分その複雑な描画命令を解析しなくてはならないため、バンド単位で大きな遅延が発生する。
【０００４】
そのような理由から、印刷データを解析し、その複雑さに応じて自動で大き目のバンドサイズを確保する、バンドサイズ自動決定手段などが知られている。
【０００５】
又、別の従来例としては、特許文献１及び特許文献２をあげることが出来る。
【特許文献１】特開２００１−４７６７３号公報
【特許文献２】特開２００３−５４０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記の通り、印刷を高速に行なう上で最適なバンドサイズは、いくつかの要因を判定することにより、ある程度決定することが可能である。しかし最適なバンドサイズを左右する要因は極めて複雑であり、全ての環境、全ての印刷条件で最適なバンドサイズを決定することは困難である。
【０００７】
具体的に、最適なバンドサイズを左右する要素としては、プリンタの印刷能力、プリンタの保有するバッファサイズ、ホストの処理能力、ホストのメモリ容量、印刷データのサイズ、印刷データ中の描画命令の数などが挙げられる。さらに詳細には、ホストのCPUの並列処理能力なども、バンドサイズを大きくすべきかどうかの判断に影響する。
【０００８】
また、印刷データが複雑であったからといって、確保可能なできるだけ大きいメモリを確保した場合、ユーザが他のアプリケーションを動作させたことにより物理メモリを消費し、その後の印刷処理において物理メモリを確保することができず、仮想メモリへのアクセスが頻発するといったケースも考えられる。この場合、複雑なデータに合わせてバンドサイズを大きくし、処理の無駄を省いたといっても、結果的に処理時間は非常に大きくなる。
【０００９】
上記のような理由により、バンドサイズを自動で設定する場合にも、安全性を重視し、極端なバンドサイズを確保することは、通常考えられない。結果的に、例えばメモリ容量の大きいホストで複雑な印刷データを印刷する事が多いような環境においては、余ったホストのメモリを充分に使うことなく、毎回印字に時間が掛かる、という事になってしまう。
【００１０】
本発明は上記の問題を鑑みてなされたものであり、バンドサイズ決定方法を複数持ち、それらの決定方法をユーザが使用環境、及び使用目的に応じて選択可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、
本発明のデータ処理システムは、
予め定めたオペレーティングシステムを稼動可能で、且つ、予め定められた通信媒体を介して印刷装置と通信可能なデータ処理システムであって、
予め定めた描画命令で記述された印刷データを入力する入力手段と、
入力された印刷データを印刷装置が要求する形式に変換する変換手段と、
描画領域を複数の矩形領域に分割したバンド単位で前記変換処理を行なう場合に、バンドサイズの決定方法を複数の候補から選択する選択手段と、
前記選択手段による選択に基づきバンドサイズを決定する決定手段を有し、
前記決定手段により決定されたバンドサイズで、前記変換処理を実行することを特徴とする。
【００１２】
本発明のデータ処理方法は、
予め定めたオペレーティングシステムを稼動可能で、且つ、予め定められた通信媒体を介して印刷装置と通信可能なデータ処理システムのデータ処理方法であって、
所定の描画命令で記述された印刷データを入力する入力工程と、
入力された印刷データを印刷装置が要求する形式に変換する変換工程と、
描画領域を複数の矩形領域に分割したバンド単位で前記変換処理を行なう場合に、バンドサイズの決定方法を複数の候補から選択する選択工程と、
前記選択工程による選択に基づきバンドサイズを決定する決定工程を有し、
前記決定工程により決定されたバンドサイズで、前記変換処理を実行することを特徴とする。
【００１３】
本発明のプログラムは、
上記本発明のデータ処理方法をコンピュータにより実現することを特徴とする。
【００１４】
本発明のコンピュータ可読の記憶媒体は、
上記本発明のプログラムを記憶したコンピュータで読取り可能な記憶媒体であることを特徴とする。
【発明の効果】
【００１５】
本願発明によれば、印刷環境に最適なバンドサイズをユーザの意図により決定できる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例１】
【００１７】
以下、本発明の好適な実施形態について添付図面を参照して詳細に説明する。
【００１８】
＜コンピュータのハードウェア構成例＞
図１は、コンピュータのハードウェア構成例を説明するブロック図である。
【００１９】
図１において、１００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）１０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳや、本実施の形態のネットワークプリンタ制御プログラム等を実行し、ＲＡＭ１０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００２０】
１０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。１０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ１００の主メモリ、ワークエリア等として機能する。
【００２１】
１０３は記憶媒体読み込み手段としてのフレキシブルディスクドライブであり、記憶媒体としてのフレキシブルディスク１０４に記憶されたプログラム等を本コンピュータにロードすることができる。１０４は記憶媒体であるフレキシブルディスク（ＦＤ）であり、コンピュータが読み取り可能にプログラムが格納された記憶媒体である。なお、記憶媒体はフレキシブルディスクに限らず、ＣＤ−ＲＯＭ、ＣＤＲ、ＣＤＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００２２】
１０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、ネットワークプリンタ制御プログラム、関連プログラム等を格納している。
【００２３】
１０６は指示入力手段であるキーボードであり、ユーザがクライアントコンピュータに対して、また、オペレータや管理者がプリントサーバに対して、デバイスの制御コマンドの命令等を入力指示するものである。１０７は表示手段であるディスプレイであり、キーボード１０６から入力したコマンドや、プリンタの状態等を表示したりするものである。
【００２４】
１０８はシステムバスであり、コンピュータ内のデータの流れを司るものである。１０９は入出力手段であるインタフェースであり、該インタフェース１０９を介してコンピュータは外部装置とのデータのやり取りを行う。
【００２５】
＜印刷システムの構成例＞
図２は、本発明の実施の形態に係る印刷システムの概略構成を示す図である。尚、この図１で示される実施の形態として、例えば一般的に普及しているパーソナルコンピュータ（本発明の情報処理装置に相当する）にオペレーティングシステム（以下、ＯＳと呼ぶ）と印刷処理機能を有する任意のアプリケーション２０１をインストールし、更に、このコンピュータにプリンタ２０８を接続した形態が考えられる。
【００２６】
アプリケーション２０１は、GDI２０２を介して、プリンタ２０８に対する印刷条件を設定することができる。ここで、ユーザインタフェースドライバ２０３は各印刷条件において設定可能な選択肢の一覧をGDI２０２を介してアプリケーション２０１に通知する他、各種印刷設定を設定可能なインターフェースを持つ。
【００２７】
アプリケーション２０１が印刷要求した描画データ（文書データ、画像データ等の印刷データ）は、ＯＳの描画モジュールであるグラフィックデバイス・インターフェース（Ｇｒａｐｈｉｃｓ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ：以下、「ＧＤＩ」）２０２経由でプリンタグラフィックドライバ２０６に渡される。これによりプリンタグラフィックドライバ２０６により印刷ジョブが生成され、この生成された印刷ジョブはプリンタ２０８へ印刷要求として出力される。ＧＤＩ２０２は、通常、一旦、そのデータをＥＭＦ（Ｅｎｈａｎｃｅｄ  Ｍｅｔａ  Ｆｉｌｅ）データとしてスプールファイル２０４にスプール（ＯＳのスプール処理）し、そのスプールが終了すると、プリントプロセッサ２０５に印刷要求を発行する。これによりプリントプロセッサ２０５は、スプールファイル２０４から印刷出力情報と描画データをページ単位で読み込み、１ページずつＧＤＩ２０２を介してプリンタグラフィックドライバ２０６に出力して印刷するように要求する。尚、このプリントプロセッサ２０５は、ＯＳのモジュールとして用意されているが、プリンタのメーカ等がカスタマイズしたプリントプロセッサ２０５をプリンタグラフィックドライバ２０６とともに供給し、それらをハードディスクにインストールすることも許容されている。こうしてプリントプロセッサ２０５から印刷が要求されたプリンタグラフィックドライバ２０６は、GDI２０２が持つ描画機能であるＧＤＩレンダリングエンジンを用いて、その描画データをプリンタの印刷解像度に合わせてラスタイメージデータにレンダリングする。このラスタイメージデータは色を多段階の値として保持する多値データであり、これを元に色処理を行い、プリンタ２０８の保持するインク毎の色成分に分解したハーフトーンデータが生成される。これらのラスタイメージデータ、及びハーフトーンデータを、ページ全体分一度に処理をしようとすると、一般的に非常に大きなメモリが必要になる。よって、プリンタグラフィックドライバ２０６は、GDI２０２に対して、バンド単位での処理を要求することができ、その場合、そのバンドのサイズを指定することが可能である。あるバンドに対して処理が終わった後に、プリンタグラフィックドライバ２０６がバンドサイズの変更をGDI２０２に対して要求することも可能である。また、プリンタグラフィックスドライバ２０６は、バンド処理を行なうバンドモードではなく、ページ単位で処理を行なうアンバンディングモードをGDI２０２に対して要求し、全ての描画データを独自で保存し、その後バンド単位で出力を行なうような形態も許容されている。
【００２８】
その後、プリンタコマンドの付加などを行い、印刷ジョブとして生成し、プリンタ２０８に送信する。実際には、プリンタグラフィックドライバ２０６から出力されたデータは、ランゲージモニタ２０７に送信依頼という形で出力される。ランゲージモニタ２０７は印刷ジョブを特定サイズのパケットに区切り、プリンタ２０８へ逐一出力する。
【００２９】
プリンタ２０８が多値データを受け取ることができるような多値プリンタである場合、ラスタイメージデータを直接プリンタ２０８に送信したり、何らかの圧縮を施した上でプリンタ２０８に送信することなども許容される。
【００３０】
＜バンド処理の詳細＞
図３は、印刷データの生成をバンド単位で行なう場合のOS（GDI２０２）とグラフィックスドライバ２０６の処理の概略を示す図である。
【００３１】
OSはアプリケーション２０１から所定の描画命令を受信すると、グラフィックドライバ２０６に対し印刷開始命令を発行する。グラフィックドライバ２０６は命令を受け取ると、印刷開始処理を行ない、バンドメモリを確保する。以後OSは描画命令を解析し、ページの先頭から各バンドの領域に属する描画命令のみをプリンタドライバ２０６に送信する。グラフィックドライバ２０６は受け取った描画命令をラスタライズし、ラスタイメージデータをバンド単位で生成する。ここで、ラスタライズ処理はGDI２０２に実行させることも可能である。生成したラスタイメージデータを変換し、ハーフトーンデータを生成し、プリンタ２０８に送信する。送信が終わるとOSに処理を返し、OSは次のバンドに属する描画命令をグラフィックドライバ２０６に送信する。以上を繰り返し、1ページ分全てのバンドの処理が終了すると、OSは印刷終了命令を発行する。グラフィックドライバ２０６は印刷終了命令を受信すると、印刷終了処理を行ない、確保したバンドメモリを解放する。ここで、グラフィックドライバ２０６は、ラスタイメージデータ、ハーフトーンデータの生成、及びプリンタ２０８への送信処理を並列に行なうことも許容される。
【００３２】
このようにバンド単位の処理を行なった場合、図３に示したように、バンドに少しでも属する描画命令は全て描画しなくてはならず、複数のバンドに対して同じ描画命令を描画する手間が掛かる。また、全ての描画命令はページに対して座標順に並べられているわけではないため、OSはバンド毎に属する描画命令を探さなくてはならない。このように、1ページ全てを一度に処理する場合と比べ、遅延も発生するが、低メモリで処理可能である上、処理の負荷を分散できるため、適切なバンドサイズで処理を行ないさえすれば、速度的な観点からも効果的に機能する処理方法である。
【００３３】
図４は、ユーザインタフェースドライバ２０３における、バンドサイズ選択のためのダイアログ４０１を示す図である。ダイアログ４０１では、コンボボックス４０２により、バンドサイズの決定手段を選択する事が可能である。一例として、まず推奨を選択した場合は、出力画像の幅及びビット数に従って確保するメモリを一意に決定する。この場合、縦横比が同じ用紙サイズでは、原則的に1ページを同じバンド数で処理を行なうことが可能であり、また非常に長い用紙に対しても、大きなメモリを確保すること無く処理が可能である。コンボボックス４０２で中を選択した場合は、前記推奨を選択した場合の決定手段を同じ手法で、確保するメモリ量を大きくすることで、どの用紙サイズに対しても全体的にバンド数を減らすことが可能である。コンボボックス４０２で大を選んだ場合、用紙の幅に関わらず、確保可能なメモリの最大値を定め、そのメモリで確保可能な最大バンドを確保する。これにより、出来る限り１つのバンドで処理を行ない、大きい用紙サイズに対しては、メモリの確保可能量の上限を定めることとなり、数バンドでの処理が行なわれる。その他、バンドの数を固定で定め、全ての用紙に対してそのバンドの数で処理を行なうために必要なバンドサイズ分メモリを確保するなどの決定手段も許容される。
【００３４】
ボタン４０３はコンボボックス４０２により選択された結果を保存し、ダイアログ３０１を閉じるOKボタンで、ボタン４０４は結果を破棄し、ダイアログ４０１を閉じるキャンセルボタンである。
【００３５】
このように、本システムにおいては、バンドサイズの選択手段により、単純にバンド処理に用いるメモリ量を定めることが可能なだけではなく、通常の環境において適切なバンドサイズを定める自動モードと、固定で確保するメモリ量を指定するような固定モードを切り替えることが可能である。ここで、バンドサイズの選択手段に用意される選択候補は２つ以上の複数の候補であれば良い。
【００３６】
図５は、アプリケーション２０１から１ページ分の印刷が開始された後のグラフィックドライバ２０６の処理の流れを示す図である。まず、ダイアログ４０１により選択されたバンドサイズ決定手段、及び現在の印刷設定に基づき、1ページ分のバンドの数Nを決定する（S５０１）。実際には、バンドの数を元に決定するモードで無ければ、まずバンドに用いるメモリ量を決定し、その後そのメモリで確保することが可能な最小バンド数を決定する。バンドサイズ決定の手法については前述の通りである。
【００３７】
次に、1ページ分をN個のバンドで処理する場合に必用なメモリサイズを算出する（S５０２）。これは、現在の処理の出力描画領域の幅、高さ、ビット数により計算される。
【００３８】
S５０２により求められた量のメモリの確保を試み（S５０３）、確保できなかった場合はNを１増やし、バンドサイズを小さくして再度メモリ確保を試みる。確保可能であった場合、バンドメモリを確保する（S５０５）。
【００３９】
バンドメモリの決定を含むドライバの初期化動作が終わると、GDI２０２は現在処理中のバンドに属する描画命令をグラフィックドライバ２０６に送信してくるので、それらの描画命令をレンダリングし、ラスタイメージデータを生成する（S５０６）。生成されたラスタイメージデータを、プリンタ２０８が受信可能なハーフトーンデータに変換し、プリンタ２０８に出力する（S５０７）。1ページ分全てのデータを出力するまで、S５０６からS５０７の処理を繰り返す。全てのバンドを処理し終わったら（S５０６）、S５０５で確保したバンドメモリを解放する（S５０９）。
【００４０】
（その他の実施の形態）
本発明の目的は前述したように、実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステムあるいは装置に提供し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００４１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれている。
【００４２】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含む。
【図面の簡単な説明】
【００４３】
【図１】コンピュータの代表的なハードウェア構成例を示す図である。
【図２】クライアント装置におけるソフトウェアモジュール構成例を示す図である。
【図３】バンド処理を行なう場合の、OSとプリンタドライバによる処理の流れを示す図である。
【図４】バンドサイズ選択手段の一例を示す図である。
【図５】１ページの印刷データのバンド処理のフローチャートを示す図である。
【図１】
2007264750.tif 000003
【図２】
2007264750.tif 000004
【図３】
2007264750.tif 000005
【図４】
2007264750.tif 000006
【図５】
2007264750.tif 000007