(57)【要約】【課題】描画処理を行うコントローラの負担を強いることなく、中間データ作成処理の効率化を図り、展開されるビットマップイメージを印刷し終えるまでの印刷処理時間を大幅に短縮することである。【解決手段】中間データ作成機能４１４により作成される複数の中間データの作成状況を管理テーブル４０５で管理するとともに、該管理される中間データに基づいて、ビットマップ作成機能４１５によりビットマップイメージに展開するレンダリング状況を管理テーブル４０５で管理し、管理テーブル４０５の状態変化に基づいて、中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから順次ビットマップイメージに展開させるように制御する構成を特徴とする。【選択図】　　　図６
2004038527.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成手段と、
前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段と、
前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第１の管理テーブルと、
前記第１の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第２の管理テーブルと、
前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第１の制御手段と、
を有することを特徴とするプリンタドライバ。
【請求項２】
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成手段と、
前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段と、
前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第１の管理テーブルと、
前記第１の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第２の管理テーブルと、
前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第２の制御手段と、
を有することを特徴とするプリンタドライバ。
【請求項３】
前記描画情報は、オペレーティングシステムから発行されるＧＤＩ命令群で構成されることを特徴とする請求項１または２記載のプリンタドライバ。
【請求項４】
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、
前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成ステップと、
前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップと、
前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第１の管理テーブルで管理する第１の管理ステップと、
前記第１の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理する第２の管理ステップと、
前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第１の制御ステップと、
を有することを特徴とする印刷制御方法。
【請求項５】
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、
前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成ステップと、
前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップと、
前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第１の管理テーブルで管理する第１の管理ステップと、
前記第１の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理する第２の管理ステップと、
前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第２の制御ステップと、
を有することを特徴とする印刷制御方法。
【請求項６】
前記描画情報は、オペレーティングシステムから発行されるＧＤＩ命令群で構成されることを特徴とする請求項３または４記載の印刷制御方法。
【請求項７】
請求項４〜６のいずれかに記載の印刷制御方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項８】
請求項４〜６のいずれかに記載の印刷制御方法を実現することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【０００２】
【従来の技術】
従来、情報処理装置はインストールされる印刷制御プログラム、いわゆるプリンタドライバを介して、アプリケーションからの印刷指示に従い、描画コマンドを印刷装置が解析可能な印刷データに変換して送信可能に構成されている。
【０００３】
この場合において、アプリケーションの出力に応じてオペレーティングシステム（以下、ＯＳ）がＧｒａｐｈｉｃｓ　Ｄｅｖｉｃｅ　Ｉｎｔｅｆａｃｅ（ＧＤＩ）と呼ばれる命令をプリンタドライバに対して出力し、プリンタドライバはそれに応じて処理を行い、処理が完了した時点でその通知をＯＳに行い、次の命令を待つように動作していた。
【０００４】
プリンタドライバがこのような動作を行っている場合には、プリンタドライバ内で同時に処理できるＧＤＩ命令は１個である。
【０００５】
【発明が解決しようとする課題】
しかし、一度に１つのＧＤＩ命令しか扱わない処理形態では、通常ＣＰＵの能力には余裕があり、その能力を十分に使い切っているとはいえない状況であった。
【０００６】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、オペレーティングシステムからの描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能とし、該作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する際に、該作成される複数の中間データの作成状況を第１の管理テーブルで管理するとともに、該管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理し、該第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから順次ビットマップイメージに展開させるように制御することにより、描画処理を行うコントローラの負担を強いることなく、中間データ作成処理の効率化を図り、展開されるビットマップイメージを印刷し終えるまでの印刷処理時間を大幅に短縮できるプリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することである。
【０００７】
【課題を解決するための手段】
本発明に係る第１の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成手段（図６に示す中間データ作成機能４１４に相当）と、前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段（図６に示すページビットマップ４１０に相当）と、前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第１の管理テーブル（図６に示す管理テーブル４０５に相当）と、前記第１の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第２の管理テーブル（図６に示す管理テーブル４０５に相当）と、前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第１の制御手段（図６に示すレンダリング処理４０９に相当）とを有することを特徴とする。
【０００８】
本発明に係る第２の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成手段（図６に示す中間データ作成機能４１４に相当）と、前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段（図６に示すページビットマップ４１０に相当）と、前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第１の管理テーブル（図６に示す管理テーブル４０５に相当）と、前記第１の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第２の管理テーブル（図６に示す管理テーブル４０５に相当）と、前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第２の制御手段（図６に示すレンダリング処理４０９に相当）とを有することを特徴とする。
【０００９】
本発明に係る第３の発明は、前記描画情報は、オペレーティングシステムから発行されるＧＤＩ命令群で構成されることを特徴とする。
【００１０】
本発明に係る第４の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成ステップ（図５に示す中間データ作成６２９に相当）と、前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップ（図５に示すレンダリング６３１に相当）と、前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第１の管理テーブルで管理する第１の管理ステップ（図７参照）と、前記第１の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理する第２の管理ステップ（図７参照）と、前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第１の制御ステップ（図５に示す処理６１５〜処理６１８）とを有することを特徴とする。
【００１１】
本発明に係る第５の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成ステップ（図８に示す中間データ作成８２３に相当）と、前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップ（図８に示すレンダリング８２４に相当）と、前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第１の管理テーブルで管理する第１の管理ステップ（図９参照）と、前記第１の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理する第２の管理ステップ（図９参照）と、前記第１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第２の制御ステップ（図８に示す処理８１５〜８１８に相当）とを有することを特徴とする。
【００１２】
本発明に係る第６の発明は、前記描画情報は、オペレーティングシステムから発行されるＧＤＩ命令群で構成されることを特徴とする。
【００１３】
本発明に係る第７の発明は、第４〜第６の発明のいずれかに記載の印刷制御方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【００１４】
本発明に係る第８の発明は、第４〜第６の発明のいずれかに記載の印刷制御方法を実現するプログラムであることを特徴とする。
【００１５】
【発明の実施の形態】
図１は、本発明に係る情報処理装置と通信可能な印刷装置の構成を説明する概略断面図であり、例えばレーザビームプリンタの例に対応する。なお、プリンタエンジンは、インクジェットプリント方式や、他のプリント方式であっても本発明を適用可能である。
【００１６】
さらに、本発明は、プリンタ制御システムに限らず、ディスプレイ制御システムにも適用可能なものである。
【００１７】
図１において、１５００はＬＢＰ本体（以下、プリンタという）で、インタフェースを介して外部に接続されているホストコンピュータから供給される印刷情報（文字コード等）やフォーム情報を入力して記憶すると共に、印刷情報やフォーム情報に従って対応する文字パターンやフォームパターン等を作成し、記憶媒体である記録紙等に像を形成する。
【００１８】
１５０１は操作パネルで、プリンタに関する操作のためのスイッチおよびＬＥＤ等の表示器が配されている。１５１２はプリンタ制御ユニットで、プリンタ１５００の制御およびコンピュータから供給される文字情報やグラフィックスやイメージを解析処理する。
【００１９】
プリンタ制御ユニット１５１２は、文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１５０２に出力する。レーザドライバ１５０２は半導体レーザ１５０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１５０３から発射されるレーザ光１５０４をオン・オフ切り替えする。
【００２０】
そして、レーザ光１５０４は回転多面体鏡（ポリゴンミラー）１５０５で左右方向に振られて静電ドラム１５０６上を走査露光する。これにより、静電ドラム１５０６上には文字パターンの静電潜像が形成されることになる。この静電潜像は、静電ドラム１５０６周囲に配設されたユニット１５０７により現像された後、記録紙に転写される。
【００２１】
この記録紙にはカットシートを用い、カットシート記録紙は、プリンタ１５００に装備されている紙ガイド１５０８に収納され、給紙ローラ１５０９および搬送ローラ１５１０と搬送ローラ１５１１とにより、装置内に取り込まれて、静電ドラム１５０６に供給される。
【００２２】
また、プリンタ１５００には、図示しないカードスロットを少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるカード（いわゆるエミュレーションカード）を接続できるように構成されている。
【００２３】
〔第１実施形態〕
図２は、本発明の第１実施形態を示す情報処理装置を適用可能な印刷システムの構成を説明するブロック図であり、図１と同一のものには同一の符号を付してある。
【００２４】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できる。
【００２５】
図２において、３０００はホストコンピュータで、ＲＯＭ３のプリンタ用ＲＯＭに記憶された文章処理プログラム等に基づいて、図形（グラフィックス），イメージ，文字，表（表計算等を含む）等が混在した文章処理を実行するＣＰＵ１を備え、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。
【００２６】
また、このＲＯＭ３のプログラム用ＲＯＭには、ＣＰＵ１の制御プログラム等を記憶し、ＲＯＭ３のフォント用ＲＯＭには、上記文章処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭは上記文章処理を行う際に使用する各種データを記憶する。
【００２７】
２はＲＡＭで、ＣＰＵ１の主メモリ，ワークエリアとして機能する。５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）９や図示しないポインティングデバイスからのキー入力を制御する。６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１０の表示を制御する。
【００２８】
７はディスクコントローラ（ＤＫＣ）で、ブートプログラム，種々のアプリケーション，フォントデータ，ユーザファイル，編集ファイル等を記憶するハードディスク（ＨＤ），フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。
【００２９】
８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向インタフェース（インタフェース）２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。
【００３０】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能としている。
【００３１】
また、ＣＰＵ１は、ＣＲＴ１０上の図示しないマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００３２】
プリンタ１５００において、１２はプリンタＣＰＵ（ＣＰＵ）で、ＲＯＭ１３のプログラム用ＲＯＭに記憶された制御プログラム等或いは外部メモリ１４に記憶された制御プログラムに基づいてシステムバス１５に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部インタフェース１６を介して接続される印刷部（プリンタエンジン）１７に出力情報として画像信号を出力する。
【００３３】
また、このＲＯＭ１３のプログラム用ＲＯＭには、ＣＰＵ１２の制御プログラムを記憶している。
【００３４】
ＲＯＭ１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【００３５】
ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通知が可能となっており、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００３６】
１９はＲＡＭで、ＣＰＵ１２の主メモリ，ワークメモリとして機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００３７】
また、前述したハードディスク（ＨＤ），ＩＣカード等の外部メモリ１４は、ディスクコントローラ（ＤＫＣ）２０によりアクセス制御される。
【００３８】
外部メモリ１４は、オプションとして接続され、フォントデータ，エミュレーションプログラム，フォームデータ等を記憶する。
【００３９】
さらに、外部メモリ１４は、１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを備え、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしても良い。
【００４０】
このように構成されたプリンタ制御システムにおいて、本発明は、ホストコンピュータ３０００の外部メモリ１１に常駐し、システムが立ち上がった際に、ＯＳの管理下で、プリンタドライバの一部として組み込まれてＲＡＭ２上のシステムエリアに常駐し、印刷処理と同時に起動されて実行されるものとする。
【００４１】
図３は、図２に示したホストコンピュータ３０００上のプリンタドライバの機能を説明する図である。
【００４２】
図３において、アプリケーション３０１は、図２に示したＲＡＭ２上に展開され実行されている図示しないアプリケーションプログラムであり、このアプリケーション３０１で何らかの適当なデータを作成して印刷指示が行われる。
【００４３】
通常の印刷データは、ドキュメントの始まり、ページの始まり、線や文字を表すデータ群、ページの終わり、ドキュメントの終わりといったデータで構成され、順次アプリケーションプログラムから図示しないオペレーティングシステム（ＯＳ）に対して出力される。
【００４４】
ＧＤＩ出力３０２は、アプリケーション３０１が行った出力をＯＳがＧＤＩと呼ばれる描画命令形式でＲＡＭ２上に展開され実行されている図示しないプリンタドライバに対して印刷指示を行うことを示している。
【００４５】
また、更に、プリンタドライバ３１０において、中間データ作成処理３０４による中間データの作成が完了した通知を受けると、その情報をアプリケーション３０１に通知し、アプリケーション３０１が次の印刷動作に移れるようにすることも示している。
【００４６】
そして、プリンタドライバ３１０におけるページ終了３０３は、ＧＤＩがページの終わりというデータを送ってきたかどうかの判断を行うことを示している。ここで、ページの終わりというデータの場合には、レンダリング処理３０６に制御を移し、ページの終わりというデータでない場合には、中間データ作成処理３０４に制御を移す。
【００４７】
そして、中間データ作成処理３０４はＧＤＩ形式の出力データをレンダリング処理が行い易い形式の中間データ形式に変換することを示している。ここで、変換された中間データ形式の情報は、中間データ３０５としてＲＡＭ２上に格納され、格納が完了すると、その中間データ作成処理が完了したことをＧＤＩ出力３０２に通知する。
【００４８】
そして、ＧＤＩ出力３０２は、アプリケーション３０１に中間データ作成処理が完了したことを通知する。
【００４９】
また、プリンタドライバ３１０におけるレンダリング処理３０６では、中間データ作成処理３０４が作成した中間データ３０５を使って、用紙１ページに印刷する内容そのものを示すページビットマップ３０７を作成することを示している。
【００５０】
ページビットマップ３０７は、プリンタ３１１内にある受信バッファ３０８に送られて処理されて、最終的な印刷結果である印刷結果３０９が出力される。
【００５１】
図４は、図３に示したプリンタドライバ３１０によるページ処理状態を説明する図である。以下、図３に示したＧＤＩ出力３０２，中間データ３０５，ページビットマップ３０７の一例について説明する。
【００５２】
図４において、５０１，５０２はＧＤＩ出力であり、ＧＤＩ出力５０１，５０２は、図示の如く、ＧＤＩがプリンタドライバ３１０に対して行う出力はＯＳにとって扱いやすい形式になっているが、その情報量は多く、そのままでは、単純にビットマップに展開できない形式となっている。なお、ＧＤＩ出力５０１は、ＯＳがＧＤＩをプリンタドライバに対して出力する指示を示す。
【００５３】
ＧＤＩ５０２を例とすれば、５つの内容が１つのＧＤＩ命令で表現されている。
【００５４】
ＧＤＩ５０２は、ＧＤＩ命令におけるＬＩＮＥ命令であり、座標（０，１０）−（１００，１０）の間に線を引く、そして、次のＧＤＩ命令は、座標（１００，１０）−（１００，１００）の間に線を引く、そして、次のＧＤＩ命令は、座標（５０，０）−（２０００，２０００）の領域内に収まる部分にだけ線を引く、そして、次のＧＤＩ命令は、その線が５０％濃度のグレー色とし、次のＧＤＩ命令は、その幅が１ｄｏｔとすることを示している。
【００５５】
５０３，５０４は中間データであり、中間データ５０３は、そのまますぐにビットマップに展開できる形式の中間データに対応し、中間データ５０４は、ＧＤＩの出力を解釈し、１つずつ順番に処理して行くと、ページビットマップに展開できる形式に変換される中間データに対応する。
【００５６】
例えば中間データ５０４は、３つの内容に変換されていることを示している。すなわち、最初に、５０％濃度のグレー色ブラシを登録し、登録されているブラシを使って座標（５０，１０）−（１００，１０）の間に１ｄｏｔ幅の線を引く、登録されているブラシを使って座標（１００，１０）−（１００，１００）の間に１ｄｏｔ幅の線を引く。
【００５７】
また、５０５〜５０７はページビットマップを示し、ページビットマップ５０５は、そのままビットマップイメージで表現されているページビットマップである。
【００５８】
一方、ページビットマップ５０６，５０７は、Ａ５用紙（１４．８ｃｍ２１．０ｃｍ）を６００ＤＰＩの解像度のページビットマップ（３４９６ｄｏｔ×４９６０ｄｏｔ）として表現したものである。
【００５９】
なお、ｃｍをｄｏｔに変換する式は下記の通りである。１Ｉｎｃｈ＝２．５４ｃｍ、１Ｉｎｃｈ＝６００ｄｏｔであるから、
１４．８ｃｍ／２．５４ｃｍ＊６００ＤＰＩ＝３４９６．０６２９９２ｄｏｔ２１．０ｃｍ／２．５４ｃｍ＊６００ＤＰＩ＝４９６０．６９２９９２１ｄｏｔ
ゆえに、１４．８ｃｍ×２１．０ｃｍのＡ５用紙は、３４９６ｄｏｔ×４９６０ｄｏｔのページビットマップとして表すことができる。
【００６０】
特に、図４に示したページビットマップ５０６は、ＧＤＩ出力５０２を、（５０，０）−（２０００，２０００）の領域内に収まるようにしないでページビットマップを作成した例を示している。なお、（５０，０）−（２０００，２０００）の四角は、領域を示す枠であり、ページビットマップのデータではない。
【００６１】
ページビットマップ５０７は、ＧＤＩ出力５０４を、（５０，０）−（２０００，２０００）の領域は、中間データ作成処理の段階で考慮され、中間データ５０４に反映されるので、中間データをそのまま順番に解釈して処理することで、ページビットマップ５０７を作成することができる。なお、（５０，０）−（２０００，２０００）の四角は、領域を示す枠であり、ページビットマップのデータではない。
【００６２】
図５は、本発明に係る情報処理装置におけるページ処理状態を説明する図であり、従来のページ処理状態との差違を明確にするため、左側に従来のページ処理状態を示す。なお、ｔ０〜ｔ９は従来の時間経過を示し、ｔ１０〜ｔ２１は本発明の時間経過を示す。
【００６３】
本例では、１ページの印刷データが線２本（図中の線Ｌ１，Ｌ２）、ビットマップ１つ（図中のビットマップＢ１）、テキスト１つ（図中のテキストＴ１）で構成されるものとしている。
【００６４】
図５に示す処理６０１において、すなわち、時間ｔ０〜ｔ１の間で、１本目の線Ｌ１の中間データ作成処理を示している。そして、処理６０２において、時間ｔ１〜ｔ２の間で、２本目の中間データ作成処理を示している。
【００６５】
処理６０３において、時間ｔ２〜ｔ３の間で、ビットマップＢ１の中間データ作成処理を示している。
【００６６】
処理６０４において、時間ｔ３〜ｔ４の間で、テキストＴ１のデータ作成処理を示している。
【００６７】
以上線Ｌ１，Ｌ２およびビットマップＢ１、テキストＴ１の中間データ作成処理を順番に処理する時間（ｔ０〜ｔ４）が中間データ作成処理に要する時間６２１となる。そして、ここまでの処理が完了すると、アプリケーション３０１は、印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。このような理由により、時間ｔ４のタイミングをアプリケーション開放６２２と呼ぶ。
【００６８】
つまり、印刷開始指示６２０を行ってから、アプリケーション開放６２２までの時間は、プリンタ製品を評価する上での指標の１つであり、より短い方がアプリケーション３０１を操作する上で、印刷のためにアプリケーションの操作を止めて待っている時間が短くて済むこととなり、好ましいと評価される。
【００６９】
そして、処理６０５は、１本目の線Ｌ１のレンダリング処理を示し、時間ｔ４〜ｔ５で線Ｌ１のレンダリング処理が実行されることを示している。また、処理６０６は、２本目の線Ｌ２のレンダリング処理を示し、時間ｔ５〜ｔ６で線Ｌ２のレンダリング処理が実行されることを示している。
【００７０】
そして、処理６０７は、ビットマップＢ１のレンダリング処理を示し、時間ｔ６〜ｔ７でビットマップＢ１のレンダリング処理が実行されることを示している。処理６０８は、テキストＴ１のレンダリング処理を示し、時間ｔ７〜ｔ８でテキストＴ１のレンダリング処理が実行されることを示している。
【００７１】
以上、線Ｌ１，Ｌ２およびビットマップＢ１，テキストＴ１のレンダリング処理を順番に処理する時間ｔ４〜ｔ８がレンダリング６２３に要する時間となる。
【００７２】
そして、ここまでの処理が完了すると、プリンタドライバ３１０は処理を完了したこととなり、後はページビットマップ３０７をプリンタ３１１に送り印刷するだけとなる。
【００７３】
処理６０９は、時間ｔ８〜ｔ９でページビットマップ３０７をプリンタ３１１に送り印刷を行う印刷処理を示している。印刷６２５に要する時間の最後（ｔ９）の時点が、プリンタから用紙の出力が完了するタイミングである。
【００７４】
なお、印刷開始指示６２０を行ってから印刷終了６２６までの時間もプリンタ製品を評価する上での指標の１つであり、より短い方が印刷指示を行ってから、実際に印刷物を手にするまでの時間が短いことになり、良いとされている。
【００７５】
以上が従来のプログラムドライバによるプリント処理手順であるが、図５に示すように、従来によるプリント処理においては、中間データ作成処理６２１、レンダリング６２３、印刷６２５までの全ての処理が順番に行われて行く。
【００７６】
しかし、例えば中間データ作成処理６０１の間にも実際のＣＰＵの処理能力には余裕があり、同時に並行して他の処理を行うことが可能となっている。
【００７７】
このように、従来は、ＣＰＵの能力を十分に活用して、処理時間を短くするようなアプローチが十分になされていない場合がある。
【００７８】
図６は、本発明に係る情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【００７９】
アプリケーション４０１は、図３に示したアプリケーションと同様に、ＲＡＭ２上に展開されて実行される図示しないアプリケーションプログラムを示しており、このアプリケーション４０１で何らかの適当なデータを作成し、印刷の指示を行うことを示している。
【００８０】
通常の印刷データは、ドキュメントの始まり、ページの始まり、線や文字を表すデータ群、ページの終わり、ドキュメントの終わりといったデータで構成され、順次アプリケーションプログラムから図示しないＯＳに対して出力される。
【００８１】
ＧＤＩ出力４０２は、アプリケーション４０１が行った出力をＯＳがＧＤＩと呼ばれる命令形式でＲＡＭ２上に展開され実行されている図示しないプリンタドライバに対して印刷指示を行うことを示している。
【００８２】
また、さらに、中間データ作成処理（１）４０６、中間データ作成処理（ｎ）４０７や、管理テーブル初期化が終了したという通知を受けた後、その情報をアプリケーション４０１に通知して、アプリケーション４０１が次の処理動作に移れるようにすることも示している。
【００８３】
ページ４０３は、ＧＤＩがページの始まり、線や文字を表すデータ、またはページの終わりというデータを送ってきたかどうかの判断を行うことを示している。
【００８４】
ページの始まりというデータの場合には、管理テーブル初期化４０４に制御を移す。また、線や文字を表す場合には、中間データ作成機能４１４を起動して、中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７を動的に作成しそれを実行する。そして、ページの終わりというデータの場合には、レンダリング処理４０９に制御を移す。
【００８５】
管理テーブル初期化４０４は、図７に示すスレッド管理テーブルと、レンダリング管理テーブルという２種類のテーブルをＲＡＭ２上に作成し、内容をクリアしてそれぞれのテーブルへの書き込みに備えることを示している。管理テーブル４０５は、図７に示すようにスレッド管理テーブルとレンダリング管理テーブルとから構成され、該各テーブルの初期化が完了すると、その旨をＧＤＩ出力４０２に通知する。
【００８６】
また、更に、管理テーブル４０５を参照して動作するレンダリング処理４０９を作成して起動する。
【００８７】
中間データ作成機能４１４は、ＧＤＩ出力４０２が線や文字を表すデータを出力してきた場合に起動され、中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７を動的に作成してそれを実行する。そして、処理の作成完了と同時に、その処理の終了を待たずに、ＧＤＩ出力４０２に実際には処理が完了していないにも関わらず処理が完了したという通知を行う。
【００８８】
本発明に係る情報処理装置のプリンタドライバにおける中間データ作成処理は、複数同時に幾つでも並行して動作することができるように構成されている。従って、幾つかの中間データ作成処理が同時に並行して動作するかは、印刷するデータ次第で変化するものであり特定できない。そのため、図６に示す例では、複数同時に並行して動作しているであろう中間データ作成処理を中間データ作成処理（１）４０６と中間データ作成処理（ｎ）４０７という形式で表現している。
【００８９】
中間データ作成処理（１）４０６と中間データ作成処理（ｎ）４０７は、作成されると、自分自身の状況を管理テーブル４０５に書き込む。
【００９０】
また、中間データ作成処理（１）４０６と中間データ作成処理（ｎ）４０７が作成した中間データはＲＡＭ２上に存在する中間データ４０８に格納される。中間データ４０８は、複数ある中間データ作成処理から共通に書き込みが行われる。
【００９１】
レンダリング処理４０９は、管理テーブル初期化４０４により作成されて動作している。そして、中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７が管理テーブル４０５を更新して行き、ページビットマップ４１０を作成しても良い状態になった時点で自発的に処理を開始して、その時点で処理することが可能な分ページビットマップ４１０の作成を行う。レンダリング処理４０９も中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７と同時に並行して動作可能である。
【００９２】
ページ判定４０３で、ページの終わりがきた場合にも、レンダリング処理４０９に制御が移るが、この時点では、同時並行で動作しているはずの中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７の終了を待つだけとなっている。
【００９３】
そして、全ての中間データ作成処理（１）４０６や中間データ作成処理（ｎ）４０７が完了し、管理テーブル４０５が更新されると、レンダリング処理４０９はその状況を検出して自発的に処理を開始して、残りのページビットマップ４１０の作成を行う。
【００９４】
ページビットマップ４１０は、プリンタ４１７内にある受信バッファ４１１に送られて処理されて、最終的な印刷結果である印刷結果４１２が出力される。
【００９５】
本発明における情報処理装置内のプログラムドライバ内における処理は、図５に示すように処理される。この例では、１ページの印刷データが線２本（図中の線Ｌ１，Ｌ２）、ビットマップＢ１、テキストＴ１で構成されるものとして時間の流れを説明する。
【００９６】
図５において、線Ｌ１は、１本目の線の中間データ作成処理を示している。図５に示した例は、時間が上方から下方に向かって進み、中間データ作成処理６１０は、時間ｔ１０〜ｔ１４の間で処理される。６１１は中間データ作成処理自身を作成するのに要する時間を示しており、時間ｔ１０〜ｔ１１で、ＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知が可能なことを示している。
【００９７】
実際に、中間データ作成処理６１０が完了するのは、時間ｔ１４なので、時間ｔ１１〜ｔ１４の差分時間分早く、ＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知が行えることになる。このことは、その分早くアプリケーション４０１が次のデータ出力を行えるようなる。したがって、２本目の線の中間データ作成処理６１２は、時間ｔ１１から行うことが可能となる。
【００９８】
図７に示すスレッド管理テーブル７０１は、時間ｔ１０の時点、つまり、１本目の線Ｌ１に対する中間データ作成処理６１０の開始時点での管理テーブル４０５におけるスレッド管理テーブルの状況を示している。
【００９９】
スレッド管理テーブルは、複数並行に実行される中間データ作成処理を管理する目的で利用され、レンダリング処理４０９はこれを監視して動作する。
【０１００】
スレッド管理テーブルには、命令ＩＤ、命令、スレッド、状態という４つの項目がある。
【０１０１】
命令ＩＤはＧＤＩ出力４０２から出力されるＧＤＩ命令の一連の順番を示すＩＤであり、レンダリング処理４０９がＧＤＩ出力４０２から出力される順番に行われるように、この値を使って制御する。なお、命令はＧＤＩ命令の種類を示す。スレッドはスレッド番号と呼ばれるＯＳが自動的に割り振る番号を示す。状態は、その中間データ作成処理が現在どのような状態にあるかを表す。図７に示す例では、「１」が中間データ作成中を示し、「２」が中間データ作成完了を表す。この時間ｔ１０の時点のスレッド管理テーブルは、スレッド管理テーブル７０１で示される、命令Ｌ１が１件処理中となっている。
【０１０２】
レンダリング管理テーブル７０２は、時間ｔ１０の時点での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。
【０１０３】
レンダリング管理テーブルは、複数並行に実行される中間データ作成処理と、並行に実行されるレンダリング処理４０９を管理する目的で使用される。
【０１０４】
レンダリング管理テーブルには、レンダリング可能ＩＤ、レンダリング中ＩＤ、レンダリング済みＩＤという３つの項目がある。
【０１０５】
レンダリング可能ＩＤは、スレッド管理テーブルに登録されているデータのうち、レンダリング処理を開始することが可能な命令ＩＤを示している。時間ｔ１０のタイミングでは、中間データ作成処理が１つも完了していないので、何もできないことを示す「０」」となっている。
【０１０６】
レンダリング中ＩＤは、スレッド管理テーブルに登録されているデータのうち、現在レンダリング処理を行っている最中の命令ＩＤを示している。時間ｔ１０のタイミングでは、中間データ作成処理が１つも完了していないことを示す「０」となっている。
【０１０７】
レンダリング済みＩＤはスレッド管理テーブルに登録されているデータのうち、レンダリング処理が完了した命令ＩＤを示している。時間ｔ１０のタイミングでは、中間データ作成処理が１つも完了していないので、何もしていないことを示す「０」となっている。
【０１０８】
また、図５に示す処理６１２は、２本目の線Ｌ２の中間データ作成処理を示しており、中間データ作成処理は、時間ｔ１１〜ｔ１５の間で処理される。
【０１０９】
この線Ｌ２も時間ｔ１１〜ｔ１２の間で中間データ作成処理６１２自身を作成するので、時間ｔ１２の時点でＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１１０】
スレッド管理テーブル７０３は、時間ｔ１１の時点、つまり、２本目の線Ｌ２の中間データ作成処理６１２の開始時点での管理テーブル４０５におけるスレッド管理テーブルの状況を示している。
【０１１１】
また、レンダリング管理テーブル７０４は、時間ｔ１１の時点での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。この時間ｔ１１の時点では、中間データ作成処理が１つも完了していないので、レンダリング可能ＩＤ、レンダリング中ＩＤ、レンダリング済みＩＤのそれぞれが「０」となっている。
【０１１２】
図５に示す処理６１３は、時間ｔ１２と時間ｔ１７との間で、ビットマップＢ１の中間データ作成処理を示している。なお、ビットマップＢ１も時間ｔ１２と時間ｔ１７との間で、ビットマップＢ１の中間データ作成処理自身を作成するので、時間ｔ１３でＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１１３】
また、図７に示すスレッド管理テーブル７０５は、時間ｔ１２の時点、つまり、ビットマップＢ１の中間データ作成処理の開始時点での管理テーブル４０５におけるスレッド管理テーブルの状況を示している。この時間ｔ１２の時点では、線Ｌ１，Ｌ２，ビットマップＢ１の３件が共に並行処理中となる。
【０１１４】
また、図７に示すレンダリング管理テーブル７０６は、時間ｔ１２の時点での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。この時間ｔ１２の時点では、中間データ作成処理が１つも完了していないので、レンダリング可能ＩＤ，レンダリング中ＩＤ，レンダリング済みＩＤのそれぞれが「０」となっている。
【０１１５】
そして、図５に示す処理６１４は、時間ｔ１３と時間ｔ１６との間で、テキストＴ１の中間データ作成処理を示している。なお、テキストＴ１も時間ｔ１３と時間ｔ１６との間で、テキストＴ１の中間データ作成処理自身を作成するので、時間ｔ１４でＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１１６】
図７に示すスレッド管理テーブル７０７は、時間ｔ１３の時点、つまり、テキストＴ１の中間データ作成処理の開始時点での管理テーブル４０５におけるスレッド管理テーブルの状況を示している。この時間ｔ１３の時点では、線Ｌ１，Ｌ２，ビットマップＢ１，テキストＴ１の４件が共に並行処理中となる。
【０１１７】
また、図７に示すレンダリング管理テーブル７０８は、時間ｔ１３の時点での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。この時間ｔ１３の時点では、中間データ作成処理が１つも完了していないので、レンダリング可能ＩＤ，レンダリング中ＩＤ，レンダリング済みＩＤのそれぞれが「０」となっている。
【０１１８】
以上、Ｌ１、Ｌ２、Ｂ１、Ｔ１の中間データ作成処理のうちで、最も早い時間（時間ｔ１０）から、最も遅い時間（ｔ１７）が中間データ作成処理６２９に要する時間となる。ただし、それぞれの中間データ作成処理はそれ自身が作成された時点で処理が完了したという通知をＧＤＩ出力４０２に対して行うので、アプリケーション４０１にとっては時間ｔ１４の時点で印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。
【０１１９】
従って、本発明におけるプリンタドライバによるアプリケーション開放６２８は、時間ｔ１４のタイミングで発生する。
【０１２０】
これを従来のアプリケーション開放タイミングと対比すると、アプリケーション開放６２２と本発明のアプリケーション開放タイミングであるアプリケーション開放６２８との差は、改善時間Ａとなり、この改善時間Ａが短縮されることとなる。
【０１２１】
また、図５において、処理６１５は、１本目の線Ｌ１のレンダリング処理を示している。レンダリング処理４０９は、管理テーブル４０５の状態を監視し、最初にレンダリング処理に着手できる状態となる。そして、中間データ作成処理６１０が終了する時間ｔ１４のタイミングでレンダリング処理６１５を開始する。このレンダリング処理６１５は、時間ｔ１４〜ｔ１６の間で処理される。
【０１２２】
スレッド管理テーブル７０９は、時間ｔ１４の時点、つまり１本目の線Ｌ１の中間データ作成処理の終了時点の管理テーブル４０５におけるスレッド管理テーブルの状況を示している。この時間ｔ１４の時点では、線Ｌ１のレンダリングが完了で、線Ｌ２，ビットマップＢ１，テキストＴ１の３件が中間データ作成処理中となっている。
【０１２３】
レンダリング管理テーブル７１０は、時間ｔ１４での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。この時間ｔ１４の時点で１本目の線Ｌ１の中間データ作成処理６１０が完了しており、それに関するレンダリング処理４０９が開始される。そのため、レンダリング可能ＩＤ＝「１」、レンダリング中ＩＤ＝「１」、レンダリング済みＩＤ＝「０」となり、ＩＤ１の命令に対するレンダリング処理４０９が実行中であることを示している。
【０１２４】
図７に示すスレッド管理テーブル７１１は時間ｔ１５の時点、つまり２本目の線Ｌ２の中間データ作成処理６１２の終了時点での管理テーブル４０５におけるスレッド管理テーブルの状況を示している。この時間ｔ１５の時点では、線Ｌ１，Ｌ２の命令が完了し、ビットマップＢ１，テキストＴ１の２件が中間データ作成処理中となっている。
【０１２５】
図７に示したレンダリング管理テーブル７１２は時間ｔ１５の時点での管理テーブル４０５におけるレンダリング管理テーブルの状況を示している。この時間ｔ１５の時点では、１本目の線Ｌ１の中間データ作成処理６１０および２本目の線Ｌ２の中間データ作成処理６１２が完了している。１本目の線Ｌ１に関するレンダリングテーブルは、レンダリング可能ＩＤ＝「２」、レンダリング中ＩＤ＝「１」、レンダリング済みＩＤ＝「０」となり、ＩＤ１の命令に対するレンダリング処理４０９が実行中であることを示し、ＩＤ２の命令に対するレンダリング処理４０９が実行待ちであることを示している。
【０１２６】
図５に示す処理６１６は、線Ｌ１のレンダリング処理と同様に、２本目の線Ｌ２のレンダリング処理を示している。２本目の線Ｌ２の中間データ作成処理６１２は、時間ｔ１５のタイミングで終了するが、並行に動作しているレンダリング処理４０９は、時間ｔ１５の時点では、線Ｌ１のレンダリング処理６１５を行っている最中であるため、線Ｌ１のレンダリング処理が終了する時間ｔ１６まで待って２本目の線Ｌ２のレンダリング処理６１６が時間ｔ１６から時間ｔ１８の間で処理される。
【０１２７】
この際、図７に示すように、スレッド管理テーブル７１３は、時間ｔ１６の時点、つまり、テキストＴ１の中間データ作成処理６１４の終了時点で、かつ、１本目の線Ｌ１のレンダリング処理６１５の終了時点における管理テーブル４０５におけるスレッド管理テーブルの状況を示している。
【０１２８】
この時間ｔ１６の時点では、命令は、線Ｌ２とテキストＴ１が完了し、ビットマップＢ１の１件が中間データ作成中となっている。
【０１２９】
また、時間ｔ１６の時点での管理テーブル４０５におけるレンダリング管理テーブル７１４の状況は、時間ｔ１６の時点では、１本目の線Ｌ１の中間データ作成処理６１０と、２本目の線Ｌ２の中間データ作成処理６１２及びテキストＴ１の中間データ作成処理６１４が完了している。
【０１３０】
１本目の線Ｌ１に関するレンダリング処理４０９が時間ｔ１４から開始され、時間ｔ１６のタイミングで終了している。したがって、線Ｌ１に関しては、中間データ作成処理及びレンダリング処理共に完了したことになり、この時点で管理の必要がなくなるため、線Ｌ１に関する情報は、スレッド管理テーブル７１３から削除している。
【０１３１】
この時間ｔ１６の時点では、２本目の線Ｌ２に関するレンダリング処理４０９が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝２、レンダリング中ＩＤ＝２、レンダリング済みＩＤ＝１となり、命令ＩＤ２に対するレンダリング処理４０９が実行中であることを示している。
【０１３２】
なお、ここで、レンダリング可能ＩＤが「４」とならないのは、スレッド管理テーブル７１３上でビットマップＢ１に関する中間データ作成処理６１３の状態が処理中を示す「１」となっているためである。
【０１３３】
このように、中間データ作成処理を並列で処理すると、処理するデータによっては、後から処理を開始したものの方が先に処理を終えてしまうことが起こり得るが、本実施形態においては、管理テーブル４０５におけるスレッド管理テーブルを使って中間データ作成処理を管理することで、レンダリング処理がアプリケーションの出力した順番で処理できるよう制御することが可能となっている。
【０１３４】
また、図７に示す時間ｔ１７の時点のスレッド管理テーブル７１５は、ビットマップＢ１の中間データ作成処理６１３の終了時点における管理テーブル４０５のスレッド管理テーブルの状況を示している。なお、時間ｔ１７の時点では、線Ｌ２とビットマップＢ１とテキストＴ１に対する命令の全てが処理を完了している。
【０１３５】
そして、図７に示す時間ｔ１７の管理テーブル４０５におけるレンダリング管理テーブル７１６は、１本目の線Ｌ１の中間データ作成処理６１０、２本目の線Ｌ２の中間データ作成処理６１２、テキストＴ１の中間データ作成処理が完了していることを示している。
【０１３６】
この時間ｔ１７の時点では、２本目の線Ｌ２に関するレンダリング処理４０９がまだ処理中の段階なのでレンダリング管理テーブルは、レンダリング可能ＩＤ＝４、レンダリング中ＩＤ＝２、レンダリング済みＩＤ＝１となり、命令ＩＤ２に対するレンダリング処理が実行中で、かつ、命令ＩＤ３，ＩＤ４の命令に対するレンダリング処理４０９が実行待ちであることを示している。
【０１３７】
なお、時間ｔ１６〜時間ｔ１７に移った時点で、レンダリング可能ＩＤが「２」から「４」に移ったのは、スレッド管理テーブル７１５上で全ての命令に対する状態が「２」となり、全ての中間データ作成処理を順番に処理できる状態になったためである。
【０１３８】
図５に示すレンダリング処理６１７は、ビットマップＢ１のレンダリング処理を示している。時間ｔ１８の時点では、ビットマップの中間データ作成処理６１３もテキストの中間データ作成処理も終了しており、どちらの処理も可能であるが、レンダリング処理はアプリケーション４０１が出力した順番に行わないと、アプリケーション４０１が意図した結果にならないため、先に出力されているビットマップに関するレンダリング処理を行う。このレンダリング処理（ビットマップＢ１に対する）は、時間ｔ１８から時間ｔ１９の間で処理される。
【０１３９】
また、図７に示す時間ｔ１８の時点における管理テーブル４０５におけるスレッド管理テーブル７１７は、２本目の線Ｌ２のレンダリング処理６１６が終了し、ビットマップＢ１のレンダリング処理６１７が開始された時点の状態を示している。なお、時間ｔ１８の時点では、ビットマップＢ１とテキストＴ１に対する命令の全てが完了となっている。
【０１４０】
また、時間ｔ１８の時点における管理テーブル４０５におけるレンダリング管理テーブル７１８は、１本目の線Ｌ１の中間データ作成処理６１０、２本目の線Ｌ２の中間データ作成処理６１２、ビットマップＢ１の中間データ作成処理６１３、テキストＴ１の中間データ作成処理６１４が完了していることを示している。
【０１４１】
この時間ｔ１８の時点では、２本目の線Ｌ２に関するレンダリング処理４０９が終了し、ビットマップＢ１に関するレンダリング処理４０９が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝４、レンダリング中ＩＤ３、レンダリング済みＩＤ＝２となり、命令ＩＤ３に対するレンダリング処理が実行中で、かつ、命令ＩＤ４の命令に対するレンダリング処理４０９が実行待ちであることを示している。
【０１４２】
なお、時間ｔ１８の時点では、２本目の線Ｌ２に関するレンダリング処理４０９が終了し、線Ｌ２に関しては中間データ作成処理及びレンダリング処理共に完了したことになり、この時点で管理の必要がなくなっている。そのため、線Ｌ２に関する情報は、スレッド管理テーブル７１７から削除している。
【０１４３】
さらに、図５に示すレンダリング処理６１８はテキストＴ１に対するレンダリング処理を示しており、時間ｔ１９の時点で処理可能なのは、中間データ作成処理６１４で作成したテキストについてのみなので、それに関する処理を行う。このレンダリング処理（テキストＴ１に対する）は、時間ｔ１９〜ｔ２０の間で処理される。
【０１４４】
また、時間ｔ１９の時点における管理テーブル４０５におけるレンダリング管理テーブル７１９は、ビットマップＢ１のレンダリング処理６１７、テキストＴ１の中間データ作成処理６１８が開始されたことを示している。なお、時間ｔ１９の時点では、テキストＴ１に対する命令が完了している。
【０１４５】
さらに、時間ｔ１９の時点における管理テーブル４０５におけるレンダリング管理テーブル７２０は、１本目の線Ｌ１の中間データ作成処理６１０、２本目の線Ｌ２の中間データ作成処理６１２、ビットマップＢ１の中間データ作成処理６１３、テキストＴ１の中間データ作成処理６１４が完了していることを示している。
【０１４６】
この時間ｔ１９の時点では、２本目の線Ｌ２に関するレンダリング処理４０９が終了し、ビットマップＢ１に関するレンダリング処理４０９が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝４、レンダリング中ＩＤ＝「４」、レンダリング済みＩＤ＝３となり、命令ＩＤ３に対するレンダリング処理が実行中で、かつ、命令ＩＤ４の命令に対するレンダリング処理４０９が実行中であることを示している。
【０１４７】
なお、時間ｔ１９の時点では、ビットマップＢ１に関するレンダリング処理４０９が終了し、このビットマップＢ１に関しては中間データ作成処理およびレンダリング処理共に完了したことになり、この時点で管理の必要がなくなっている。そのため、ビットマップＢ１に関する情報は、スレッド管理テーブル７１９から削除している。
【０１４８】
以上、線Ｌ１，Ｌ２，ビットマップＢ１，テキストＴ１のレンダリング処理を順番に処理する時間（時間ｔ１４〜ｔ２０）がレンダリング処理６３１に要する時間となる。そして、ここまでの処理が完了すると、プリンタドライバ４１６は処理を完了したこととなり、後は、ページビットマップ４１０をプリンタ４１７に送り印刷するだけの状態となる。
【０１４９】
図５に示す印刷処理６１９は、時間ｔ２０〜ｔ２１の間において、ページビットマップ４１０をプリンタ４１７に送って印刷処理を行うことを示している。
【０１５０】
さらに、時間ｔ２０の時点における管理テーブル４０５におけるレンダリング管理テーブル７２１は、テキストＴ１にレンダリング処理６１８が終了した状態を示している。なお、時間ｔ１９の時点では、未処理の中間データ作成処理が存在しないため、テーブルは空きとなっている。
【０１５１】
時間ｔ２０の時点における管理テーブル４０５におけるレンダリング管理テーブル７２２は、１本目の線Ｌ１の中間データ作成処理６１０、２本目の線Ｌ２の中間データ作成処理６１２、ビットマップＢ１の中間データ作成処理６１３、テキストＴ１の中間データ作成処理６１４が完了していることを示している。
【０１５２】
この時間ｔ２０の時点では、テキストＴ１に関するレンダリング処理４０９が終了した段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝４、レンダリング中ＩＤ＝「４」、レンダリング済みＩＤ＝「４」となり、全ての命令に対するレンダリング処理４０９が完了していることを示している。
【０１５３】
図５に示す最後の時間ｔ２１の時点では、印刷処理６３３に従いプリンタからの用紙出力が完了するタイミングを示している。
【０１５４】
そして、従来と本実施形態による印刷処理時間の向上度合いを比較すると、印刷終了６２６と印刷終了６３４との差である改善時間６３５が発生する。この差分によりトータルの印刷所用時間が従来に比べて短縮できる時間である。
【０１５５】
〔第２実施形態〕
図８は、本発明の第２実施形態を示す情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図であり、図５と同一（第１実施形態と同一）のものには同一の符号を付してある。
【０１５６】
図９は、本発明の第２実施形態を示す情報処理装置におけるプリンタドライバが管理する管理テーブルの一例を説明する図であり、管理テーブルの構造は、図７に示した第１実施形態と同様である。
【０１５７】
以下、第１実施形態と同様のオブジェクト、例えば線Ｌ１，Ｌ２，ビットマップＢ１，テキストＴ１が１ページの印刷データを構成している場合を例としてデータ処理を説明する。
【０１５８】
なお、第１実施形態と第２実施形態との相違は、第１実施形態では、動的に幾つでも作成していた中間データ作成処理４０６，４０７が第２実施形態では、レンダリング処理４０９の作成と同時に一定数作成しておき、その中間データ作成処理を起動するといった処理に変更されている点である。
【０１５９】
特に、図８に示す例では、２つの中間データ作成処理が用意されている。なお、本実施形態では、あらじかめ作成しておく中間データ作成処理の数を２つに限定するものではなく、プログラムの規模やＣＰＵのデータ処理能力（負荷状況変化），メモリ容量等のその他の条件により、２以外の数で作成してもよい。
【０１６０】
また、外部メモリ１１上に作成する数を設定しておいて、それを参照して中間データ作成処理の数を決定するように構成してもよい。また、ＲＡＭ２の空き状況やＣＰＵ１の負荷状況に応じて動的にその数を設定し、レンダリング処理４０９の作成と同時にその数だけ作成する構成としてもよい。
【０１６１】
図８において、中間データ作成処理８１０は、１本目の線Ｌ１の中間データ作成処理に対応し、時間ｔ８０〜ｔ８２の間で処理される。タイミング８１１は、中間データ作成処理８１０に必要な情報が渡され、ＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知ができるタイミングを示している。
【０１６２】
そして、実際に中間データ作成処理８１０が完了するのは、時間ｔ８２のタイミングなので、時間ｔ８１とｔ８２の差の分だけ早くＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知が行えることとなる。
【０１６３】
このことは、その分だけアプリケーション４０１が次のデータ出力を行えることとなる。したがって、２本目の線Ｌ２の中間データ作成処理８１２は、時間ｔ８１から行うことが可能となる。
【０１６４】
さらに、第１実施形態における時間ｔ１０から時間ｔ１１と、第２実施形態における時間ｔ８０と時間ｔ８１とを比較すると、第２実施形態における時間ｔ８０から時間ｔ８１の時間の方が短時間であることが示されている。
【０１６５】
つまり、第１実施形態では、中間データ作成処理が開始されるまでに、まず、中間データ作成処理自身を動的に作成しており、その作成時間として時間ｔ１０から時間ｔ１１が必要とされている。
【０１６６】
一方、第２実施形態では、中間データ作成処理は、レンダリング処理４０９の作成と同時にあらかじめ２つ作成してあり、２つの中間データ作成処理に必要なデータを引き渡すため、時間ｔ８０から時間ｔ８１の時間が必要とされている。
【０１６７】
一般的に、新しい処理をＯＳ上で作成するのに比べて、作成済みの処理にデータを引き渡すだけの方がその処理時間はずっと短いもので済むこととなり、ここが第２実施形態の構成により発生する効果である。
【０１６８】
図９に示す時間ｔ８０の時点における管理テーブル４０５におけるスレッド管理テーブル９０１は、１本目の線Ｌ１のレンダリング処理８１０の開始時点の状態を示している。
【０１６９】
なお、スレッド管理テーブルは、複数並行に実行される中間データ作成処理を管理する目的で利用され、レンダリング処理４０９はこれを監視して動作する。スレッド管理テーブルには、命令ＩＤ，命令，スレッド，状態という４つの項目がある。命令ＩＤは、ＧＤＩ出力４０２から出力されるＧＤＩ命令の一連の順番を示すＩＤであり、レンダリング処理４０９がＧＤＩ出力４０２から出力される順番で行われるように、この値を使って制御する。
【０１７０】
命令は、ＧＤＩ命令の種類を示す。スレッドはスレッド番号と呼ばれるＯＳが自動的に割り振る番号を示す。状態は、その中間データ作成処理が現在どのような状態にあるのかを表し、図９に示す例では、「１」が中間データ作成中を示し、「２」が中間データ作成処理完了を表す。この時間ｔ８０の時点におけるスレッド管理テーブル９０１では、線Ｌ１に対する命令で中間データ作成処理中となっている状態を示している。
【０１７１】
ここで、レンダリング管理テーブルの構成と機能について説明する。
【０１７２】
レンダリング管理テーブルは、複数並行に実行される中間データ作成処理と並行するレンダリング処理４０９を管理する目的で利用されており、レンダリング管理テーブルには、レンダリング可能ＩＤ、レンダリング中ＩＤ、レンダリング済みＩＤという３つの項目がある。
【０１７３】
このうち、レンダリング可能ＩＤは、スレッド管理テーブルに登録されているデータのうち、レンダリング処理を開始することが可能な命令ＩＤを示しており、時間ｔ８０のタイミングでは、中間データ作成処理が１つも完了していないので何もできないことを示す「０」となっている。
【０１７４】
レンダリング中ＩＤはスレッド管理テーブルに登録されているデータのうち、現在レンダリング処理を行っている最中の命令ＩＤを示している。時間ｔ８０のタイミングでは、中間データ作成処理が１つも完了していないので、何もしていないことを示す「０」となっている。
【０１７５】
また、レンダリング済みＩＤはスレッド管理テーブルに登録されているデータのうち、レンダリング処理が完了した命令ＩＤを示している。時間ｔ８０のタイミングで、中間データ作成処理が１つも完了していないので何もしていないことを示す「０」となっている。
【０１７６】
図８に示す処理８１２は、時間ｔ８１〜時間ｔ８３において、２本目の線Ｌ２の中間データ作成処理を示している。そして、時間ｔ８０と時間ｔ８１の間の時間と同じ分だけ時間ｔ８１から通過した時点でＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１７７】
そして、図９に示すスレッド管理テーブル９０３は、時間ｔ８１の時点、つまり、２本目の線Ｌ２の中間データ作成処理８１２の開示時点での管理テーブル４０５における状況を示していて、時間ｔ８１の時点では、線Ｌ１，Ｌ２の２件が共に中間データ作成処理中となっている。
【０１７８】
また、図９に示すレンダリング管理テーブル９０４は、時間ｔ８１におけるレンダリング状況を示しており、この時間ｔ８１の時点では、中間データ作成処理が１つも完了していないので、レンダリング可能ＩＤ、レンダリング中ＩＤ、レンダリング済みＩＤのそれぞれが「０」となっている。
【０１７９】
図８に示す処理８１３は、時間ｔ８２〜時間ｔ８７において、ビットマップＢ１の中間データ作成処理を示している。１つ前の処理８１２の２本目の線Ｌ２の中間データ作成処理が時間ｔ８０と時間ｔ８１の間の時間と同じ分だけ、時間ｔ８１から経過した時点で終了したという通知をＧＤＩ出力４０２に対して出しているが、処理８１２の２本目の線Ｌ２の中間データ作成処理に入った時点で２つ用意されている中間データ作成処理はどちらも処理中の状態になってしまっている。そのため、この処理８１３で、ビットマップＢ１の中間データ作成処理は、処理中である２つ用意された中間データ作成処理のどちらかが終了するまで待たされることとなり、処理８１０で１本目の線Ｌ１の中間データ作成処理が終了する時間ｔ８２の時点で、それと入れ替わりで処理が開始される。
【０１８０】
そして、処理８１３において、時間ｔ８３の時点でＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１８１】
図９に示す時間ｔ８２の時点における管理テーブル４０５におけるスレッド管理テーブル９０５は、処理８１３（ビットマップＢ１に対する）の開始で、かつ、処理８１５（線Ｌ１）のレンダリング処理開始時点での状況を示しており、時間ｔ８２の時点では、線Ｌ２とビットマップＢ１の２件が共に中間データ作成処理中となっている。
【０１８２】
時間ｔ８２の時点における管理テーブル４０５におけるレンダリング管理テーブル９０６は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理が完了して、該線Ｌ１に対するレンダリング処理が開始されているので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝「１」、レンダリング中ＩＤ＝「１」、レンダリング済みＩＤ＝「０」となっている。
【０１８３】
第１実施形態では、レンダリング処理４０９が完了した時点でスレッド管理テーブルから該当する命令ＩＤの情報を削除しているが、第２実施形態では、レンダリング処理４０９に入った時点でスレッド管理テーブルから該当する命令ＩＤの情報を削除する。従って、時間ｔ８２の時点で線Ｌ１に関する情報は、スレッド管理テーブル９０５から削除してある。
【０１８４】
図８に示す処理８１４は、時間ｔ８３〜時間ｔ８６におけるテキストＴ１の中間データ作成処理を示している。なお、テキストＴ１も時間ｔ８４の時点で、ＧＤＩ出力４０２に対して中間データ作成処理が完了したという通知を行う。
【０１８５】
図９に示す時間ｔ８３の時点における管理テーブル４０５におけるスレッド管理テーブル９０７は、テキストＴ１の中間データ作成処理８１４の開始時点での状況を示している。この時間ｔ８３の時点では、線Ｌ２に対する命令が完了して、レンダリング待ちとなっており、ビットマップＢ１とテキストＴ１の２件が共に中間データ作成処理中となっている。
【０１８６】
時間ｔ８３の時点における管理テーブル４０５におけるレンダリング管理テーブル９０８は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１１が完了して、該線Ｌ１に対するレンダリング処理の途中なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝「２」、レンダリング中ＩＤ＝「１」、レンダリング済みＩＤ＝「０」となっている。
【０１８７】
図９に示す時間ｔ８４の時点における管理テーブル４０５におけるスレッド管理テーブル９０９は、テキストＴ１の中間データ作成処理８１４が完了したという通知をＧＤＩ出力４０２に対して行う状況を示している。この時間ｔ８４の時点では、線Ｌ２に対する命令が完了して、レンダリング待ちとなっており、ビットマップＢ１とテキストＴ１の２件が共に中間データ作成処理中となっている。
【０１８８】
時間ｔ８４の時点における管理テーブル４０５におけるレンダリング管理テーブル９１０は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１１が完了して、該線Ｌ１に対するレンダリング処理の途中なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝「２」、レンダリング中ＩＤ＝「１」、レンダリング済みＩＤ＝「０」となっている。
【０１８９】
以上、線Ｌ１，Ｌ２，ビットマップＢ１，テキストＴ１の中間データ作成処理のうちで、最も早い時間（時間ｔ８０）、最も遅い時間（時間ｔ８７）との差が中間データ作成に要する時間８２３となる。ただし、それぞれの中間データ作成処理はそれ自身に必要なデータが引き渡された時点で処理が完了したという通知をＧＤＩ出力４０２に対して行うので、アプリケーション４０１にとっては時間ｔ８４の時点で印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。
【０１９０】
そして、第１実施形態でのアプリケーション開放６２８と本実施形態におけるアプリケーション開放８２２との差が改善時間８２１となり、この差の分が第１実施形態に比べて、第２実施形態により更に短縮することができるアプリケーション開放時間となる。
【０１９１】
図８に示す処理８１５は、時間ｔ８２〜時間ｔ８５における１本目の線Ｌ１のレンダリング処理を示している。図６に示したレンダリング処理４０９は、管理テーブル４０５の状態を監視し、中間データ作成処理８１０が終了する時間ｔ８２のタイミングでレンダリング処理８１５を開始する。
【０１９２】
図８に示す処理８１６は、時間ｔ８５〜時間ｔ８７における１本目の線Ｌ２のレンダリング処理を示している。２本目の線Ｌ２の中間データ作成処理８１２は、時間ｔ８３のタイミングで終了するが、並行に動作しているレンダリング処理４０９は、時間ｔ８３の時点では、まだ、１本目の線Ｌ１のレンダリング処理８１５を行っている最中であるため、線Ｌ１のレンダリング処理が終了する時間ｔ８５まで待って、２本目の線Ｌ２のレンダリング処理８１６が開始される。
【０１９３】
図９に示す時間ｔ８５の時点における管理テーブル４０５におけるスレッド管理テーブル９１１は、１本目の線Ｌ１のレンダリング処理８１５の終了時点での状況を示しており、時間ｔ８５の時点では、ビットマップＢ１およびテキストＴ１の中間データ作成処理中となっている。
【０１９４】
時間ｔ８５の時点における管理テーブル４０５におけるレンダリング管理テーブル９１２は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１２が完了して、該線Ｌ１に対するレンダリング処理が時間ｔ８２から開始され終了しており、２本目の線Ｌ２に関するレンダリング処理４０９が開始されている。従って、時間ｔ８５の時点でのレンダリング管理テーブルは、レンダリング可能ＩＤ＝「２」、レンダリング中ＩＤ＝「２」、レンダリング済みＩＤ＝「１」となり、命令ＩＤ２に対するレンダリング処理４０９が実行中であることを示している。
【０１９５】
図９に示す時間ｔ８６の時点における管理テーブル４０５におけるスレッド管理テーブル９１３は、テキストＴ１のレンダリング処理８１４の終了時点での状況を示しており、時間ｔ８６の時点では、ビットマップＢ１の１件が処理中であり、テキストＴ１の中間データ作成処理を完了して、レンダリング処理４０９の待ち状態となっている。
【０１９６】
時間ｔ８６の時点における管理テーブル４０５におけるレンダリング管理テーブル９１４は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１２およびテキストＴ１の中間データ作成処理８１４が完了して、該線Ｌ１に対するレンダリング処理が時間ｔ８２から開始され終了しており、２本目の線Ｌ２に関するレンダリング処理４０９が開始されている。従って、時間ｔ８６の時点でのレンダリング管理テーブルは、レンダリング可能ＩＤ＝「２」、レンダリング中ＩＤ＝「２」、レンダリング済みＩＤ＝「１」となり、命令ＩＤ２に対するレンダリング処理４０９が実行中であることを示している。
【０１９７】
図８に示す処理８１７は、時間ｔ８７〜時間ｔ８８におけるビットマップＢ１のレンダリング処理を示している。時間ｔ８７の時点では、ビットマップＢ１の中間データ作成処理８１３もテキストＴ１の中間データ作成処理８１４も終了しており、どちらの処理も可能であるが、レンダリング処理はアプリケーション４０１が出力した順番に行わないと、アプリケーション４０１が意図した結果とならないため、先に出力されているビットマップに関するレンダリング処理を行う。
【０１９８】
図９に示す時間ｔ８７の時点における管理テーブル４０５におけるスレッド管理テーブル９１５は、２本目の線Ｌ２のレンダリング処理８１７が終了し、ビットマップＢ１のレンダリング処理が開始された状況を示している。時間ｔ８７の時点では、テキストＴ１の１件が完了となり、レンダリング処理４０９の待ち状態となっている。
【０１９９】
時間ｔ８７の時点における管理テーブル４０５におけるレンダリング管理テーブル９１６は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１２およびテキストＴ１の中間データ作成処理８１４が完了して、該線Ｌ２に対するレンダリング処理が完了し、ビットマップＢ１に関するレンダリング処理４０９が開始されている。従って、時間ｔ８７の時点でのレンダリング管理テーブルは、レンダリング可能ＩＤ＝「４」、レンダリング中ＩＤ＝「３」、レンダリング済みＩＤ＝「２」となり、命令ＩＤ３に対するレンダリング処理４０９が実行中であり、かつ命令ＩＤ４に対するレンダリング処理４０９の実行待ちであることを示している。
【０２００】
なお、時間ｔ８７の時点では、ビットマップＢ１に関するレンダリング処理４０９が開始されているので、スレッド管理テーブル９１５から削除されている。
【０２０１】
図８に示す処理８１８は、時間ｔ８８の時点で処理可能なのは、中間データ作成処理８１４で作成したテキストのみなので、時間ｔ８８〜時間ｔ８９におけるテキストＴ１のレンダリング処理を示している。
【０２０２】
図９に示す時間ｔ８８の時点における管理テーブル４０５におけるスレッド管理テーブル９１７は、ビットマップＢ１のレンダリング処理８１７が終了し、テキストＴ１のレンダリング処理８１８が開始された状況を示している。時間ｔ８８の時点ではレンダリング処理４０９の待ちの命令はないので、スレッド管理テーブル９１７は空きの状態となっている。
【０２０３】
時間ｔ８８の時点における管理テーブル４０５におけるレンダリング管理テーブル９１８は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１２およびビットマップＢ１の中間データ作成処理８１３およびテキストＴ１の中間データ作成処理８１４が完了している。従って、時間ｔ８８の時点では、ビットマップＢ１に関するレンダリング処理４０９が終了し、テキストＴ１に関するレンダリング処理４０９が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝「４」、レンダリング中ＩＤ＝「４」、レンダリング済みＩＤ＝「３」となり、命令ＩＤ４に対するレンダリング処理４０９が実行中であることを示している。
【０２０４】
なお、時間ｔ８８の時点では、テキストＴ１に関するレンダリング処理４０９が開始されているので、スレッド管理テーブル９１５から削除されている。
【０２０５】
以上、線Ｌ１，Ｌ２およびビットマップＢ１さらにはテキストＴ１のレンダリング処理を順番に処理する時間（時間ｔ８２〜ｔ８９）がレンダリング８２４に要する時間となる。
【０２０６】
そして、ここまでの処理が完了すると、プリンタドライバ４１６は処理を完了したこととなり、ページビットマップ４１０をプリンタ４１７に送り印刷するだけとなる。
【０２０７】
図８に示す処理８１９は、ページビットマップ４１０をプリンタ４１７に送り、印刷を行う印刷処理を示している。印刷処理８１９は、時間ｔ８９〜ｔ９０の間で処理される。
【０２０８】
図９に示す時間ｔ８９の時点における管理テーブル４０５におけるスレッド管理テーブル９１７は、テキストＴ１のレンダリング処理８１７が終了した状況を示している。時間ｔ８９の時点では、レンダリング処理４０９の待ちの命令は無くなっているので、スレッド管理テーブル９１９は空きの状態となっている。
【０２０９】
時間ｔ８９の時点における管理テーブル４０５におけるレンダリング管理テーブル９２０は、１本目の線Ｌ１の中間データ作成処理８１０の作成処理と２本目の線Ｌ２の中間データ作成処理８１２およびビットマップＢ１の中間データ作成処理８１４およびテキストＴ１の中間データ作成処理８１４が完了している。
【０２１０】
従って、時間ｔ８９の時点では、テキストＴ１に関するレンダリング処理４０９が終了した段階なので、レンダリング管理テーブルは、レンダリング可能ＩＤ＝「４」、レンダリング中ＩＤ＝「４」、レンダリング済みＩＤ＝「４」となり、全ての命令に対するレンダリング処理４０９が完了したことを示している。
【０２１１】
なお、時間ｔ８９の時点では、時間ｔ８８の時点と同様にスレッド管理テーブル９１９は空きの状態となっている。
【０２１２】
図８に示す処理８１９に要する時間の最後の時間ｔ９０の時点は、プリンタから用紙の出力が完了するタイミングを示している。
【０２１３】
そして、第１実施形態による処理での印刷終了６３４と、第２実施形態による処理での印刷終了８２７との差分が、改善時間８２８となり、この差分が、第１実施形態に比べて、第２実施形態による構成に基づく、トータル印刷所要時間の短縮時間に相当するものである。
【０２１４】
このように第２実施形態によれば、プリンタドライバ内で同時に動作する処理の数に上限ができるので、ＣＰＵの能力を適度に他の処理に振り分けながら、バランスよく拡張してより高速な印刷処理が可能となる。
【０２１５】
以下、図１０に示すメモリマップを参照して本発明に係る情報処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【０２１６】
図１０は、本発明に係る情報処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０２１７】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２１８】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２１９】
本実施形態における図５，図８に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２２０】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２２１】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２２２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ等を用いることができる。
【０２２３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２２５】
【発明の効果】
以上説明したように、本発明に係る第１〜第８の発明によれば、オペレーティングシステムからの描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能とし、該作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する際に、該作成される複数の中間データの作成状況を第１の管理テーブルで管理するとともに、該管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を第２の管理テーブルで管理し、該１，第２の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから順次ビットマップイメージに展開させるように制御するので、描画処理を行うコントローラの負担を強いることなく、中間データ作成処理の効率化を図り、展開されるビットマップイメージを印刷し終えるまでの印刷処理時間を大幅に短縮できるという効果を奏する。
【図面の簡単な説明】
【図１】本発明に係る情報処理装置と通信可能な印刷装置の構成を説明する概略断面図である。
【図２】本発明の第１実施形態を示す情報処理装置を適用可能な印刷システムの構成を説明するブロック図である。
【図３】図２に示したホストコンピュータ上のプリンタドライバの機能を説明する図である。
【図４】図３に示したプリンタドライバによるページ処理状態を説明する図である。
【図５】本発明の第１実施形態を示す情報処理装置におけるページ処理状態を説明する図である。
【図６】本発明に係る情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【図７】本発明の第１実施形態を示す情報処理装置におけるプリンタドライバが管理するテーブルの一例を示す図である。
【図８】本発明の第２実施形態を示す情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【図９】本発明の第２実施形態を示す情報処理装置におけるプリンタドライバが管理する管理テーブルの一例を説明する図である。
【図１０】本発明に係る情報処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
１　ＣＰＵ
２　ＲＡＭ
３　ＲＯＭ
８　ＰＲＴＣ
１１　外部メモリ
【図１】
2004038527.tif 000003
【図２】
2004038527.tif 000004
【図３】
2004038527.tif 000005
【図４】
2004038527.tif 000006
【図５】
2004038527.tif 000007
【図６】
2004038527.tif 000008
【図７】
2004038527.tif 000009
【図８】
2004038527.tif 000010
【図９】
2004038527.tif 000011
【図１０】
2004038527.tif 000012