JP2004038527A - Printer driver, printing control method, computer-readable storage medium, and program - Google Patents

Printer driver, printing control method, computer-readable storage medium, and program Download PDF

Info

Publication number
JP2004038527A
JP2004038527A JP2002194230A JP2002194230A JP2004038527A JP 2004038527 A JP2004038527 A JP 2004038527A JP 2002194230 A JP2002194230 A JP 2002194230A JP 2002194230 A JP2002194230 A JP 2002194230A JP 2004038527 A JP2004038527 A JP 2004038527A
Authority
JP
Japan
Prior art keywords
intermediate data
management table
time
rendering
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002194230A
Other languages
Japanese (ja)
Inventor
Katsuichi Sugano
菅野 勝一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002194230A priority Critical patent/JP2004038527A/en
Publication of JP2004038527A publication Critical patent/JP2004038527A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To significantly shorten the printing processing time to the end of printing of a bit map image developed by enhancing the efficiency of intermediate data forming processing without imposing a load on a controller for performing drawing processing. <P>SOLUTION: The forming state of a plurality of intermediate data formed by an intermediate data forming function 414 is managed by a management table 405, and the rendering state for developing them to bit map images by a bit map forming function 415 is also managed by the management table 405 on the basis of the managed intermediate data. A control is performed on the basis of the state change of the management table 405 so that objects capable of starting bit map image development for which the formation of intermediate data is completed are successively developed to bit map images. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラムに関するものである。
【0002】
【従来の技術】
従来、情報処理装置はインストールされる印刷制御プログラム、いわゆるプリンタドライバを介して、アプリケーションからの印刷指示に従い、描画コマンドを印刷装置が解析可能な印刷データに変換して送信可能に構成されている。
【0003】
この場合において、アプリケーションの出力に応じてオペレーティングシステム(以下、OS)がGraphics Device Inteface(GDI)と呼ばれる命令をプリンタドライバに対して出力し、プリンタドライバはそれに応じて処理を行い、処理が完了した時点でその通知をOSに行い、次の命令を待つように動作していた。
【0004】
プリンタドライバがこのような動作を行っている場合には、プリンタドライバ内で同時に処理できるGDI命令は1個である。
【0005】
【発明が解決しようとする課題】
しかし、一度に1つのGDI命令しか扱わない処理形態では、通常CPUの能力には余裕があり、その能力を十分に使い切っているとはいえない状況であった。
【0006】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、オペレーティングシステムからの描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能とし、該作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する際に、該作成される複数の中間データの作成状況を第1の管理テーブルで管理するとともに、該管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理し、該第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから順次ビットマップイメージに展開させるように制御することにより、描画処理を行うコントローラの負担を強いることなく、中間データ作成処理の効率化を図り、展開されるビットマップイメージを印刷し終えるまでの印刷処理時間を大幅に短縮できるプリンタドライバおよび印刷制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラムを提供することである。
【0007】
【課題を解決するための手段】
本発明に係る第1の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成手段(図6に示す中間データ作成機能414に相当)と、前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段(図6に示すページビットマップ410に相当)と、前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第1の管理テーブル(図6に示す管理テーブル405に相当)と、前記第1の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第2の管理テーブル(図6に示す管理テーブル405に相当)と、前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第1の制御手段(図6に示すレンダリング処理409に相当)とを有することを特徴とする。
【0008】
本発明に係る第2の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成手段(図6に示す中間データ作成機能414に相当)と、前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段(図6に示すページビットマップ410に相当)と、前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第1の管理テーブル(図6に示す管理テーブル405に相当)と、前記第1の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第2の管理テーブル(図6に示す管理テーブル405に相当)と、前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第2の制御手段(図6に示すレンダリング処理409に相当)とを有することを特徴とする。
【0009】
本発明に係る第3の発明は、前記描画情報は、オペレーティングシステムから発行されるGDI命令群で構成されることを特徴とする。
【0010】
本発明に係る第4の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成ステップ(図5に示す中間データ作成629に相当)と、前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップ(図5に示すレンダリング631に相当)と、前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第1の管理テーブルで管理する第1の管理ステップ(図7参照)と、前記第1の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理する第2の管理ステップ(図7参照)と、前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第1の制御ステップ(図5に示す処理615〜処理618)とを有することを特徴とする。
【0011】
本発明に係る第5の発明は、アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成ステップ(図8に示す中間データ作成823に相当)と、前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップ(図8に示すレンダリング824に相当)と、前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第1の管理テーブルで管理する第1の管理ステップ(図9参照)と、前記第1の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理する第2の管理ステップ(図9参照)と、前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第2の制御ステップ(図8に示す処理815〜818に相当)とを有することを特徴とする。
【0012】
本発明に係る第6の発明は、前記描画情報は、オペレーティングシステムから発行されるGDI命令群で構成されることを特徴とする。
【0013】
本発明に係る第7の発明は、第4〜第6の発明のいずれかに記載の印刷制御方法を実現するプログラムを記憶したコンピュータが読み取り可能な記憶媒体であることを特徴とする。
【0014】
本発明に係る第8の発明は、第4〜第6の発明のいずれかに記載の印刷制御方法を実現するプログラムであることを特徴とする。
【0015】
【発明の実施の形態】
図1は、本発明に係る情報処理装置と通信可能な印刷装置の構成を説明する概略断面図であり、例えばレーザビームプリンタの例に対応する。なお、プリンタエンジンは、インクジェットプリント方式や、他のプリント方式であっても本発明を適用可能である。
【0016】
さらに、本発明は、プリンタ制御システムに限らず、ディスプレイ制御システムにも適用可能なものである。
【0017】
図1において、1500はLBP本体(以下、プリンタという)で、インタフェースを介して外部に接続されているホストコンピュータから供給される印刷情報(文字コード等)やフォーム情報を入力して記憶すると共に、印刷情報やフォーム情報に従って対応する文字パターンやフォームパターン等を作成し、記憶媒体である記録紙等に像を形成する。
【0018】
1501は操作パネルで、プリンタに関する操作のためのスイッチおよびLED等の表示器が配されている。1512はプリンタ制御ユニットで、プリンタ1500の制御およびコンピュータから供給される文字情報やグラフィックスやイメージを解析処理する。
【0019】
プリンタ制御ユニット1512は、文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ1502に出力する。レーザドライバ1502は半導体レーザ1503を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ1503から発射されるレーザ光1504をオン・オフ切り替えする。
【0020】
そして、レーザ光1504は回転多面体鏡(ポリゴンミラー)1505で左右方向に振られて静電ドラム1506上を走査露光する。これにより、静電ドラム1506上には文字パターンの静電潜像が形成されることになる。この静電潜像は、静電ドラム1506周囲に配設されたユニット1507により現像された後、記録紙に転写される。
【0021】
この記録紙にはカットシートを用い、カットシート記録紙は、プリンタ1500に装備されている紙ガイド1508に収納され、給紙ローラ1509および搬送ローラ1510と搬送ローラ1511とにより、装置内に取り込まれて、静電ドラム1506に供給される。
【0022】
また、プリンタ1500には、図示しないカードスロットを少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるカード(いわゆるエミュレーションカード)を接続できるように構成されている。
【0023】
〔第1実施形態〕
図2は、本発明の第1実施形態を示す情報処理装置を適用可能な印刷システムの構成を説明するブロック図であり、図1と同一のものには同一の符号を付してある。
【0024】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN等のネットワークを介して処理が行われるシステムであっても本発明を適用できる。
【0025】
図2において、3000はホストコンピュータで、ROM3のプリンタ用ROMに記憶された文章処理プログラム等に基づいて、図形(グラフィックス),イメージ,文字,表(表計算等を含む)等が混在した文章処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。
【0026】
また、このROM3のプログラム用ROMには、CPU1の制御プログラム等を記憶し、ROM3のフォント用ROMには、上記文章処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMは上記文章処理を行う際に使用する各種データを記憶する。
【0027】
2はRAMで、CPU1の主メモリ,ワークエリアとして機能する。5はキーボードコントローラ(KBC)で、キーボード(KB)9や図示しないポインティングデバイスからのキー入力を制御する。6はCRTコントローラ(CRTC)で、CRTディスプレイ(CRT)10の表示を制御する。
【0028】
7はディスクコントローラ(DKC)で、ブートプログラム,種々のアプリケーション,フォントデータ,ユーザファイル,編集ファイル等を記憶するハードディスク(HD),フレキシブルディスク(FD)等の外部メモリ11とのアクセスを制御する。
【0029】
8はプリンタコントローラ(PRTC)で、所定の双方向インタフェース(インタフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0030】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。
【0031】
また、CPU1は、CRT10上の図示しないマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【0032】
プリンタ1500において、12はプリンタCPU(CPU)で、ROM13のプログラム用ROMに記憶された制御プログラム等或いは外部メモリ14に記憶された制御プログラムに基づいてシステムバス15に接続される各種のデバイスとのアクセスを統括的に制御し、印刷部インタフェース16を介して接続される印刷部(プリンタエンジン)17に出力情報として画像信号を出力する。
【0033】
また、このROM13のプログラム用ROMには、CPU12の制御プログラムを記憶している。
【0034】
ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【0035】
CPU12は入力部18を介してホストコンピュータ3000との通知が可能となっており、プリンタ1500内の情報等をホストコンピュータ3000に通知可能に構成されている。
【0036】
19はRAMで、CPU12の主メモリ,ワークメモリとして機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。
【0037】
また、前述したハードディスク(HD),ICカード等の外部メモリ14は、ディスクコントローラ(DKC)20によりアクセス制御される。
【0038】
外部メモリ14は、オプションとして接続され、フォントデータ,エミュレーションプログラム,フォームデータ等を記憶する。
【0039】
さらに、外部メモリ14は、1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納できるように構成されていてもよい。さらに、図示しないNVRAMを備え、操作パネル1501からのプリンタモード設定情報を記憶するようにしても良い。
【0040】
このように構成されたプリンタ制御システムにおいて、本発明は、ホストコンピュータ3000の外部メモリ11に常駐し、システムが立ち上がった際に、OSの管理下で、プリンタドライバの一部として組み込まれてRAM2上のシステムエリアに常駐し、印刷処理と同時に起動されて実行されるものとする。
【0041】
図3は、図2に示したホストコンピュータ3000上のプリンタドライバの機能を説明する図である。
【0042】
図3において、アプリケーション301は、図2に示したRAM2上に展開され実行されている図示しないアプリケーションプログラムであり、このアプリケーション301で何らかの適当なデータを作成して印刷指示が行われる。
【0043】
通常の印刷データは、ドキュメントの始まり、ページの始まり、線や文字を表すデータ群、ページの終わり、ドキュメントの終わりといったデータで構成され、順次アプリケーションプログラムから図示しないオペレーティングシステム(OS)に対して出力される。
【0044】
GDI出力302は、アプリケーション301が行った出力をOSがGDIと呼ばれる描画命令形式でRAM2上に展開され実行されている図示しないプリンタドライバに対して印刷指示を行うことを示している。
【0045】
また、更に、プリンタドライバ310において、中間データ作成処理304による中間データの作成が完了した通知を受けると、その情報をアプリケーション301に通知し、アプリケーション301が次の印刷動作に移れるようにすることも示している。
【0046】
そして、プリンタドライバ310におけるページ終了303は、GDIがページの終わりというデータを送ってきたかどうかの判断を行うことを示している。ここで、ページの終わりというデータの場合には、レンダリング処理306に制御を移し、ページの終わりというデータでない場合には、中間データ作成処理304に制御を移す。
【0047】
そして、中間データ作成処理304はGDI形式の出力データをレンダリング処理が行い易い形式の中間データ形式に変換することを示している。ここで、変換された中間データ形式の情報は、中間データ305としてRAM2上に格納され、格納が完了すると、その中間データ作成処理が完了したことをGDI出力302に通知する。
【0048】
そして、GDI出力302は、アプリケーション301に中間データ作成処理が完了したことを通知する。
【0049】
また、プリンタドライバ310におけるレンダリング処理306では、中間データ作成処理304が作成した中間データ305を使って、用紙1ページに印刷する内容そのものを示すページビットマップ307を作成することを示している。
【0050】
ページビットマップ307は、プリンタ311内にある受信バッファ308に送られて処理されて、最終的な印刷結果である印刷結果309が出力される。
【0051】
図4は、図3に示したプリンタドライバ310によるページ処理状態を説明する図である。以下、図3に示したGDI出力302,中間データ305,ページビットマップ307の一例について説明する。
【0052】
図4において、501,502はGDI出力であり、GDI出力501,502は、図示の如く、GDIがプリンタドライバ310に対して行う出力はOSにとって扱いやすい形式になっているが、その情報量は多く、そのままでは、単純にビットマップに展開できない形式となっている。なお、GDI出力501は、OSがGDIをプリンタドライバに対して出力する指示を示す。
【0053】
GDI502を例とすれば、5つの内容が1つのGDI命令で表現されている。
【0054】
GDI502は、GDI命令におけるLINE命令であり、座標(0,10)−(100,10)の間に線を引く、そして、次のGDI命令は、座標(100,10)−(100,100)の間に線を引く、そして、次のGDI命令は、座標(50,0)−(2000,2000)の領域内に収まる部分にだけ線を引く、そして、次のGDI命令は、その線が50%濃度のグレー色とし、次のGDI命令は、その幅が1dotとすることを示している。
【0055】
503,504は中間データであり、中間データ503は、そのまますぐにビットマップに展開できる形式の中間データに対応し、中間データ504は、GDIの出力を解釈し、1つずつ順番に処理して行くと、ページビットマップに展開できる形式に変換される中間データに対応する。
【0056】
例えば中間データ504は、3つの内容に変換されていることを示している。すなわち、最初に、50%濃度のグレー色ブラシを登録し、登録されているブラシを使って座標(50,10)−(100,10)の間に1dot幅の線を引く、登録されているブラシを使って座標(100,10)−(100,100)の間に1dot幅の線を引く。
【0057】
また、505〜507はページビットマップを示し、ページビットマップ505は、そのままビットマップイメージで表現されているページビットマップである。
【0058】
一方、ページビットマップ506,507は、A5用紙(14.8cm21.0cm)を600DPIの解像度のページビットマップ(3496dot×4960dot)として表現したものである。
【0059】
なお、cmをdotに変換する式は下記の通りである。1Inch=2.54cm、1Inch=600dotであるから、
14.8cm/2.54cm*600DPI=3496.062992dot21.0cm/2.54cm*600DPI=4960.6929921dot
ゆえに、14.8cm×21.0cmのA5用紙は、3496dot×4960dotのページビットマップとして表すことができる。
【0060】
特に、図4に示したページビットマップ506は、GDI出力502を、(50,0)−(2000,2000)の領域内に収まるようにしないでページビットマップを作成した例を示している。なお、(50,0)−(2000,2000)の四角は、領域を示す枠であり、ページビットマップのデータではない。
【0061】
ページビットマップ507は、GDI出力504を、(50,0)−(2000,2000)の領域は、中間データ作成処理の段階で考慮され、中間データ504に反映されるので、中間データをそのまま順番に解釈して処理することで、ページビットマップ507を作成することができる。なお、(50,0)−(2000,2000)の四角は、領域を示す枠であり、ページビットマップのデータではない。
【0062】
図5は、本発明に係る情報処理装置におけるページ処理状態を説明する図であり、従来のページ処理状態との差違を明確にするため、左側に従来のページ処理状態を示す。なお、t0〜t9は従来の時間経過を示し、t10〜t21は本発明の時間経過を示す。
【0063】
本例では、1ページの印刷データが線2本(図中の線L1,L2)、ビットマップ1つ(図中のビットマップB1)、テキスト1つ(図中のテキストT1)で構成されるものとしている。
【0064】
図5に示す処理601において、すなわち、時間t0〜t1の間で、1本目の線L1の中間データ作成処理を示している。そして、処理602において、時間t1〜t2の間で、2本目の中間データ作成処理を示している。
【0065】
処理603において、時間t2〜t3の間で、ビットマップB1の中間データ作成処理を示している。
【0066】
処理604において、時間t3〜t4の間で、テキストT1のデータ作成処理を示している。
【0067】
以上線L1,L2およびビットマップB1、テキストT1の中間データ作成処理を順番に処理する時間(t0〜t4)が中間データ作成処理に要する時間621となる。そして、ここまでの処理が完了すると、アプリケーション301は、印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。このような理由により、時間t4のタイミングをアプリケーション開放622と呼ぶ。
【0068】
つまり、印刷開始指示620を行ってから、アプリケーション開放622までの時間は、プリンタ製品を評価する上での指標の1つであり、より短い方がアプリケーション301を操作する上で、印刷のためにアプリケーションの操作を止めて待っている時間が短くて済むこととなり、好ましいと評価される。
【0069】
そして、処理605は、1本目の線L1のレンダリング処理を示し、時間t4〜t5で線L1のレンダリング処理が実行されることを示している。また、処理606は、2本目の線L2のレンダリング処理を示し、時間t5〜t6で線L2のレンダリング処理が実行されることを示している。
【0070】
そして、処理607は、ビットマップB1のレンダリング処理を示し、時間t6〜t7でビットマップB1のレンダリング処理が実行されることを示している。処理608は、テキストT1のレンダリング処理を示し、時間t7〜t8でテキストT1のレンダリング処理が実行されることを示している。
【0071】
以上、線L1,L2およびビットマップB1,テキストT1のレンダリング処理を順番に処理する時間t4〜t8がレンダリング623に要する時間となる。
【0072】
そして、ここまでの処理が完了すると、プリンタドライバ310は処理を完了したこととなり、後はページビットマップ307をプリンタ311に送り印刷するだけとなる。
【0073】
処理609は、時間t8〜t9でページビットマップ307をプリンタ311に送り印刷を行う印刷処理を示している。印刷625に要する時間の最後(t9)の時点が、プリンタから用紙の出力が完了するタイミングである。
【0074】
なお、印刷開始指示620を行ってから印刷終了626までの時間もプリンタ製品を評価する上での指標の1つであり、より短い方が印刷指示を行ってから、実際に印刷物を手にするまでの時間が短いことになり、良いとされている。
【0075】
以上が従来のプログラムドライバによるプリント処理手順であるが、図5に示すように、従来によるプリント処理においては、中間データ作成処理621、レンダリング623、印刷625までの全ての処理が順番に行われて行く。
【0076】
しかし、例えば中間データ作成処理601の間にも実際のCPUの処理能力には余裕があり、同時に並行して他の処理を行うことが可能となっている。
【0077】
このように、従来は、CPUの能力を十分に活用して、処理時間を短くするようなアプローチが十分になされていない場合がある。
【0078】
図6は、本発明に係る情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【0079】
アプリケーション401は、図3に示したアプリケーションと同様に、RAM2上に展開されて実行される図示しないアプリケーションプログラムを示しており、このアプリケーション401で何らかの適当なデータを作成し、印刷の指示を行うことを示している。
【0080】
通常の印刷データは、ドキュメントの始まり、ページの始まり、線や文字を表すデータ群、ページの終わり、ドキュメントの終わりといったデータで構成され、順次アプリケーションプログラムから図示しないOSに対して出力される。
【0081】
GDI出力402は、アプリケーション401が行った出力をOSがGDIと呼ばれる命令形式でRAM2上に展開され実行されている図示しないプリンタドライバに対して印刷指示を行うことを示している。
【0082】
また、さらに、中間データ作成処理(1)406、中間データ作成処理(n)407や、管理テーブル初期化が終了したという通知を受けた後、その情報をアプリケーション401に通知して、アプリケーション401が次の処理動作に移れるようにすることも示している。
【0083】
ページ403は、GDIがページの始まり、線や文字を表すデータ、またはページの終わりというデータを送ってきたかどうかの判断を行うことを示している。
【0084】
ページの始まりというデータの場合には、管理テーブル初期化404に制御を移す。また、線や文字を表す場合には、中間データ作成機能414を起動して、中間データ作成処理(1)406や中間データ作成処理(n)407を動的に作成しそれを実行する。そして、ページの終わりというデータの場合には、レンダリング処理409に制御を移す。
【0085】
管理テーブル初期化404は、図7に示すスレッド管理テーブルと、レンダリング管理テーブルという2種類のテーブルをRAM2上に作成し、内容をクリアしてそれぞれのテーブルへの書き込みに備えることを示している。管理テーブル405は、図7に示すようにスレッド管理テーブルとレンダリング管理テーブルとから構成され、該各テーブルの初期化が完了すると、その旨をGDI出力402に通知する。
【0086】
また、更に、管理テーブル405を参照して動作するレンダリング処理409を作成して起動する。
【0087】
中間データ作成機能414は、GDI出力402が線や文字を表すデータを出力してきた場合に起動され、中間データ作成処理(1)406や中間データ作成処理(n)407を動的に作成してそれを実行する。そして、処理の作成完了と同時に、その処理の終了を待たずに、GDI出力402に実際には処理が完了していないにも関わらず処理が完了したという通知を行う。
【0088】
本発明に係る情報処理装置のプリンタドライバにおける中間データ作成処理は、複数同時に幾つでも並行して動作することができるように構成されている。従って、幾つかの中間データ作成処理が同時に並行して動作するかは、印刷するデータ次第で変化するものであり特定できない。そのため、図6に示す例では、複数同時に並行して動作しているであろう中間データ作成処理を中間データ作成処理(1)406と中間データ作成処理(n)407という形式で表現している。
【0089】
中間データ作成処理(1)406と中間データ作成処理(n)407は、作成されると、自分自身の状況を管理テーブル405に書き込む。
【0090】
また、中間データ作成処理(1)406と中間データ作成処理(n)407が作成した中間データはRAM2上に存在する中間データ408に格納される。中間データ408は、複数ある中間データ作成処理から共通に書き込みが行われる。
【0091】
レンダリング処理409は、管理テーブル初期化404により作成されて動作している。そして、中間データ作成処理(1)406や中間データ作成処理(n)407が管理テーブル405を更新して行き、ページビットマップ410を作成しても良い状態になった時点で自発的に処理を開始して、その時点で処理することが可能な分ページビットマップ410の作成を行う。レンダリング処理409も中間データ作成処理(1)406や中間データ作成処理(n)407と同時に並行して動作可能である。
【0092】
ページ判定403で、ページの終わりがきた場合にも、レンダリング処理409に制御が移るが、この時点では、同時並行で動作しているはずの中間データ作成処理(1)406や中間データ作成処理(n)407の終了を待つだけとなっている。
【0093】
そして、全ての中間データ作成処理(1)406や中間データ作成処理(n)407が完了し、管理テーブル405が更新されると、レンダリング処理409はその状況を検出して自発的に処理を開始して、残りのページビットマップ410の作成を行う。
【0094】
ページビットマップ410は、プリンタ417内にある受信バッファ411に送られて処理されて、最終的な印刷結果である印刷結果412が出力される。
【0095】
本発明における情報処理装置内のプログラムドライバ内における処理は、図5に示すように処理される。この例では、1ページの印刷データが線2本(図中の線L1,L2)、ビットマップB1、テキストT1で構成されるものとして時間の流れを説明する。
【0096】
図5において、線L1は、1本目の線の中間データ作成処理を示している。図5に示した例は、時間が上方から下方に向かって進み、中間データ作成処理610は、時間t10〜t14の間で処理される。611は中間データ作成処理自身を作成するのに要する時間を示しており、時間t10〜t11で、GDI出力402に対して中間データ作成処理が完了したという通知が可能なことを示している。
【0097】
実際に、中間データ作成処理610が完了するのは、時間t14なので、時間t11〜t14の差分時間分早く、GDI出力402に対して中間データ作成処理が完了したという通知が行えることになる。このことは、その分早くアプリケーション401が次のデータ出力を行えるようなる。したがって、2本目の線の中間データ作成処理612は、時間t11から行うことが可能となる。
【0098】
図7に示すスレッド管理テーブル701は、時間t10の時点、つまり、1本目の線L1に対する中間データ作成処理610の開始時点での管理テーブル405におけるスレッド管理テーブルの状況を示している。
【0099】
スレッド管理テーブルは、複数並行に実行される中間データ作成処理を管理する目的で利用され、レンダリング処理409はこれを監視して動作する。
【0100】
スレッド管理テーブルには、命令ID、命令、スレッド、状態という4つの項目がある。
【0101】
命令IDはGDI出力402から出力されるGDI命令の一連の順番を示すIDであり、レンダリング処理409がGDI出力402から出力される順番に行われるように、この値を使って制御する。なお、命令はGDI命令の種類を示す。スレッドはスレッド番号と呼ばれるOSが自動的に割り振る番号を示す。状態は、その中間データ作成処理が現在どのような状態にあるかを表す。図7に示す例では、「1」が中間データ作成中を示し、「2」が中間データ作成完了を表す。この時間t10の時点のスレッド管理テーブルは、スレッド管理テーブル701で示される、命令L1が1件処理中となっている。
【0102】
レンダリング管理テーブル702は、時間t10の時点での管理テーブル405におけるレンダリング管理テーブルの状況を示している。
【0103】
レンダリング管理テーブルは、複数並行に実行される中間データ作成処理と、並行に実行されるレンダリング処理409を管理する目的で使用される。
【0104】
レンダリング管理テーブルには、レンダリング可能ID、レンダリング中ID、レンダリング済みIDという3つの項目がある。
【0105】
レンダリング可能IDは、スレッド管理テーブルに登録されているデータのうち、レンダリング処理を開始することが可能な命令IDを示している。時間t10のタイミングでは、中間データ作成処理が1つも完了していないので、何もできないことを示す「0」」となっている。
【0106】
レンダリング中IDは、スレッド管理テーブルに登録されているデータのうち、現在レンダリング処理を行っている最中の命令IDを示している。時間t10のタイミングでは、中間データ作成処理が1つも完了していないことを示す「0」となっている。
【0107】
レンダリング済みIDはスレッド管理テーブルに登録されているデータのうち、レンダリング処理が完了した命令IDを示している。時間t10のタイミングでは、中間データ作成処理が1つも完了していないので、何もしていないことを示す「0」となっている。
【0108】
また、図5に示す処理612は、2本目の線L2の中間データ作成処理を示しており、中間データ作成処理は、時間t11〜t15の間で処理される。
【0109】
この線L2も時間t11〜t12の間で中間データ作成処理612自身を作成するので、時間t12の時点でGDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0110】
スレッド管理テーブル703は、時間t11の時点、つまり、2本目の線L2の中間データ作成処理612の開始時点での管理テーブル405におけるスレッド管理テーブルの状況を示している。
【0111】
また、レンダリング管理テーブル704は、時間t11の時点での管理テーブル405におけるレンダリング管理テーブルの状況を示している。この時間t11の時点では、中間データ作成処理が1つも完了していないので、レンダリング可能ID、レンダリング中ID、レンダリング済みIDのそれぞれが「0」となっている。
【0112】
図5に示す処理613は、時間t12と時間t17との間で、ビットマップB1の中間データ作成処理を示している。なお、ビットマップB1も時間t12と時間t17との間で、ビットマップB1の中間データ作成処理自身を作成するので、時間t13でGDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0113】
また、図7に示すスレッド管理テーブル705は、時間t12の時点、つまり、ビットマップB1の中間データ作成処理の開始時点での管理テーブル405におけるスレッド管理テーブルの状況を示している。この時間t12の時点では、線L1,L2,ビットマップB1の3件が共に並行処理中となる。
【0114】
また、図7に示すレンダリング管理テーブル706は、時間t12の時点での管理テーブル405におけるレンダリング管理テーブルの状況を示している。この時間t12の時点では、中間データ作成処理が1つも完了していないので、レンダリング可能ID,レンダリング中ID,レンダリング済みIDのそれぞれが「0」となっている。
【0115】
そして、図5に示す処理614は、時間t13と時間t16との間で、テキストT1の中間データ作成処理を示している。なお、テキストT1も時間t13と時間t16との間で、テキストT1の中間データ作成処理自身を作成するので、時間t14でGDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0116】
図7に示すスレッド管理テーブル707は、時間t13の時点、つまり、テキストT1の中間データ作成処理の開始時点での管理テーブル405におけるスレッド管理テーブルの状況を示している。この時間t13の時点では、線L1,L2,ビットマップB1,テキストT1の4件が共に並行処理中となる。
【0117】
また、図7に示すレンダリング管理テーブル708は、時間t13の時点での管理テーブル405におけるレンダリング管理テーブルの状況を示している。この時間t13の時点では、中間データ作成処理が1つも完了していないので、レンダリング可能ID,レンダリング中ID,レンダリング済みIDのそれぞれが「0」となっている。
【0118】
以上、L1、L2、B1、T1の中間データ作成処理のうちで、最も早い時間(時間t10)から、最も遅い時間(t17)が中間データ作成処理629に要する時間となる。ただし、それぞれの中間データ作成処理はそれ自身が作成された時点で処理が完了したという通知をGDI出力402に対して行うので、アプリケーション401にとっては時間t14の時点で印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。
【0119】
従って、本発明におけるプリンタドライバによるアプリケーション開放628は、時間t14のタイミングで発生する。
【0120】
これを従来のアプリケーション開放タイミングと対比すると、アプリケーション開放622と本発明のアプリケーション開放タイミングであるアプリケーション開放628との差は、改善時間Aとなり、この改善時間Aが短縮されることとなる。
【0121】
また、図5において、処理615は、1本目の線L1のレンダリング処理を示している。レンダリング処理409は、管理テーブル405の状態を監視し、最初にレンダリング処理に着手できる状態となる。そして、中間データ作成処理610が終了する時間t14のタイミングでレンダリング処理615を開始する。このレンダリング処理615は、時間t14〜t16の間で処理される。
【0122】
スレッド管理テーブル709は、時間t14の時点、つまり1本目の線L1の中間データ作成処理の終了時点の管理テーブル405におけるスレッド管理テーブルの状況を示している。この時間t14の時点では、線L1のレンダリングが完了で、線L2,ビットマップB1,テキストT1の3件が中間データ作成処理中となっている。
【0123】
レンダリング管理テーブル710は、時間t14での管理テーブル405におけるレンダリング管理テーブルの状況を示している。この時間t14の時点で1本目の線L1の中間データ作成処理610が完了しており、それに関するレンダリング処理409が開始される。そのため、レンダリング可能ID=「1」、レンダリング中ID=「1」、レンダリング済みID=「0」となり、ID1の命令に対するレンダリング処理409が実行中であることを示している。
【0124】
図7に示すスレッド管理テーブル711は時間t15の時点、つまり2本目の線L2の中間データ作成処理612の終了時点での管理テーブル405におけるスレッド管理テーブルの状況を示している。この時間t15の時点では、線L1,L2の命令が完了し、ビットマップB1,テキストT1の2件が中間データ作成処理中となっている。
【0125】
図7に示したレンダリング管理テーブル712は時間t15の時点での管理テーブル405におけるレンダリング管理テーブルの状況を示している。この時間t15の時点では、1本目の線L1の中間データ作成処理610および2本目の線L2の中間データ作成処理612が完了している。1本目の線L1に関するレンダリングテーブルは、レンダリング可能ID=「2」、レンダリング中ID=「1」、レンダリング済みID=「0」となり、ID1の命令に対するレンダリング処理409が実行中であることを示し、ID2の命令に対するレンダリング処理409が実行待ちであることを示している。
【0126】
図5に示す処理616は、線L1のレンダリング処理と同様に、2本目の線L2のレンダリング処理を示している。2本目の線L2の中間データ作成処理612は、時間t15のタイミングで終了するが、並行に動作しているレンダリング処理409は、時間t15の時点では、線L1のレンダリング処理615を行っている最中であるため、線L1のレンダリング処理が終了する時間t16まで待って2本目の線L2のレンダリング処理616が時間t16から時間t18の間で処理される。
【0127】
この際、図7に示すように、スレッド管理テーブル713は、時間t16の時点、つまり、テキストT1の中間データ作成処理614の終了時点で、かつ、1本目の線L1のレンダリング処理615の終了時点における管理テーブル405におけるスレッド管理テーブルの状況を示している。
【0128】
この時間t16の時点では、命令は、線L2とテキストT1が完了し、ビットマップB1の1件が中間データ作成中となっている。
【0129】
また、時間t16の時点での管理テーブル405におけるレンダリング管理テーブル714の状況は、時間t16の時点では、1本目の線L1の中間データ作成処理610と、2本目の線L2の中間データ作成処理612及びテキストT1の中間データ作成処理614が完了している。
【0130】
1本目の線L1に関するレンダリング処理409が時間t14から開始され、時間t16のタイミングで終了している。したがって、線L1に関しては、中間データ作成処理及びレンダリング処理共に完了したことになり、この時点で管理の必要がなくなるため、線L1に関する情報は、スレッド管理テーブル713から削除している。
【0131】
この時間t16の時点では、2本目の線L2に関するレンダリング処理409が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ID=2、レンダリング中ID=2、レンダリング済みID=1となり、命令ID2に対するレンダリング処理409が実行中であることを示している。
【0132】
なお、ここで、レンダリング可能IDが「4」とならないのは、スレッド管理テーブル713上でビットマップB1に関する中間データ作成処理613の状態が処理中を示す「1」となっているためである。
【0133】
このように、中間データ作成処理を並列で処理すると、処理するデータによっては、後から処理を開始したものの方が先に処理を終えてしまうことが起こり得るが、本実施形態においては、管理テーブル405におけるスレッド管理テーブルを使って中間データ作成処理を管理することで、レンダリング処理がアプリケーションの出力した順番で処理できるよう制御することが可能となっている。
【0134】
また、図7に示す時間t17の時点のスレッド管理テーブル715は、ビットマップB1の中間データ作成処理613の終了時点における管理テーブル405のスレッド管理テーブルの状況を示している。なお、時間t17の時点では、線L2とビットマップB1とテキストT1に対する命令の全てが処理を完了している。
【0135】
そして、図7に示す時間t17の管理テーブル405におけるレンダリング管理テーブル716は、1本目の線L1の中間データ作成処理610、2本目の線L2の中間データ作成処理612、テキストT1の中間データ作成処理が完了していることを示している。
【0136】
この時間t17の時点では、2本目の線L2に関するレンダリング処理409がまだ処理中の段階なのでレンダリング管理テーブルは、レンダリング可能ID=4、レンダリング中ID=2、レンダリング済みID=1となり、命令ID2に対するレンダリング処理が実行中で、かつ、命令ID3,ID4の命令に対するレンダリング処理409が実行待ちであることを示している。
【0137】
なお、時間t16〜時間t17に移った時点で、レンダリング可能IDが「2」から「4」に移ったのは、スレッド管理テーブル715上で全ての命令に対する状態が「2」となり、全ての中間データ作成処理を順番に処理できる状態になったためである。
【0138】
図5に示すレンダリング処理617は、ビットマップB1のレンダリング処理を示している。時間t18の時点では、ビットマップの中間データ作成処理613もテキストの中間データ作成処理も終了しており、どちらの処理も可能であるが、レンダリング処理はアプリケーション401が出力した順番に行わないと、アプリケーション401が意図した結果にならないため、先に出力されているビットマップに関するレンダリング処理を行う。このレンダリング処理(ビットマップB1に対する)は、時間t18から時間t19の間で処理される。
【0139】
また、図7に示す時間t18の時点における管理テーブル405におけるスレッド管理テーブル717は、2本目の線L2のレンダリング処理616が終了し、ビットマップB1のレンダリング処理617が開始された時点の状態を示している。なお、時間t18の時点では、ビットマップB1とテキストT1に対する命令の全てが完了となっている。
【0140】
また、時間t18の時点における管理テーブル405におけるレンダリング管理テーブル718は、1本目の線L1の中間データ作成処理610、2本目の線L2の中間データ作成処理612、ビットマップB1の中間データ作成処理613、テキストT1の中間データ作成処理614が完了していることを示している。
【0141】
この時間t18の時点では、2本目の線L2に関するレンダリング処理409が終了し、ビットマップB1に関するレンダリング処理409が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ID=4、レンダリング中ID3、レンダリング済みID=2となり、命令ID3に対するレンダリング処理が実行中で、かつ、命令ID4の命令に対するレンダリング処理409が実行待ちであることを示している。
【0142】
なお、時間t18の時点では、2本目の線L2に関するレンダリング処理409が終了し、線L2に関しては中間データ作成処理及びレンダリング処理共に完了したことになり、この時点で管理の必要がなくなっている。そのため、線L2に関する情報は、スレッド管理テーブル717から削除している。
【0143】
さらに、図5に示すレンダリング処理618はテキストT1に対するレンダリング処理を示しており、時間t19の時点で処理可能なのは、中間データ作成処理614で作成したテキストについてのみなので、それに関する処理を行う。このレンダリング処理(テキストT1に対する)は、時間t19〜t20の間で処理される。
【0144】
また、時間t19の時点における管理テーブル405におけるレンダリング管理テーブル719は、ビットマップB1のレンダリング処理617、テキストT1の中間データ作成処理618が開始されたことを示している。なお、時間t19の時点では、テキストT1に対する命令が完了している。
【0145】
さらに、時間t19の時点における管理テーブル405におけるレンダリング管理テーブル720は、1本目の線L1の中間データ作成処理610、2本目の線L2の中間データ作成処理612、ビットマップB1の中間データ作成処理613、テキストT1の中間データ作成処理614が完了していることを示している。
【0146】
この時間t19の時点では、2本目の線L2に関するレンダリング処理409が終了し、ビットマップB1に関するレンダリング処理409が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ID=4、レンダリング中ID=「4」、レンダリング済みID=3となり、命令ID3に対するレンダリング処理が実行中で、かつ、命令ID4の命令に対するレンダリング処理409が実行中であることを示している。
【0147】
なお、時間t19の時点では、ビットマップB1に関するレンダリング処理409が終了し、このビットマップB1に関しては中間データ作成処理およびレンダリング処理共に完了したことになり、この時点で管理の必要がなくなっている。そのため、ビットマップB1に関する情報は、スレッド管理テーブル719から削除している。
【0148】
以上、線L1,L2,ビットマップB1,テキストT1のレンダリング処理を順番に処理する時間(時間t14〜t20)がレンダリング処理631に要する時間となる。そして、ここまでの処理が完了すると、プリンタドライバ416は処理を完了したこととなり、後は、ページビットマップ410をプリンタ417に送り印刷するだけの状態となる。
【0149】
図5に示す印刷処理619は、時間t20〜t21の間において、ページビットマップ410をプリンタ417に送って印刷処理を行うことを示している。
【0150】
さらに、時間t20の時点における管理テーブル405におけるレンダリング管理テーブル721は、テキストT1にレンダリング処理618が終了した状態を示している。なお、時間t19の時点では、未処理の中間データ作成処理が存在しないため、テーブルは空きとなっている。
【0151】
時間t20の時点における管理テーブル405におけるレンダリング管理テーブル722は、1本目の線L1の中間データ作成処理610、2本目の線L2の中間データ作成処理612、ビットマップB1の中間データ作成処理613、テキストT1の中間データ作成処理614が完了していることを示している。
【0152】
この時間t20の時点では、テキストT1に関するレンダリング処理409が終了した段階なので、レンダリング管理テーブルは、レンダリング可能ID=4、レンダリング中ID=「4」、レンダリング済みID=「4」となり、全ての命令に対するレンダリング処理409が完了していることを示している。
【0153】
図5に示す最後の時間t21の時点では、印刷処理633に従いプリンタからの用紙出力が完了するタイミングを示している。
【0154】
そして、従来と本実施形態による印刷処理時間の向上度合いを比較すると、印刷終了626と印刷終了634との差である改善時間635が発生する。この差分によりトータルの印刷所用時間が従来に比べて短縮できる時間である。
【0155】
〔第2実施形態〕
図8は、本発明の第2実施形態を示す情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図であり、図5と同一(第1実施形態と同一)のものには同一の符号を付してある。
【0156】
図9は、本発明の第2実施形態を示す情報処理装置におけるプリンタドライバが管理する管理テーブルの一例を説明する図であり、管理テーブルの構造は、図7に示した第1実施形態と同様である。
【0157】
以下、第1実施形態と同様のオブジェクト、例えば線L1,L2,ビットマップB1,テキストT1が1ページの印刷データを構成している場合を例としてデータ処理を説明する。
【0158】
なお、第1実施形態と第2実施形態との相違は、第1実施形態では、動的に幾つでも作成していた中間データ作成処理406,407が第2実施形態では、レンダリング処理409の作成と同時に一定数作成しておき、その中間データ作成処理を起動するといった処理に変更されている点である。
【0159】
特に、図8に示す例では、2つの中間データ作成処理が用意されている。なお、本実施形態では、あらじかめ作成しておく中間データ作成処理の数を2つに限定するものではなく、プログラムの規模やCPUのデータ処理能力(負荷状況変化),メモリ容量等のその他の条件により、2以外の数で作成してもよい。
【0160】
また、外部メモリ11上に作成する数を設定しておいて、それを参照して中間データ作成処理の数を決定するように構成してもよい。また、RAM2の空き状況やCPU1の負荷状況に応じて動的にその数を設定し、レンダリング処理409の作成と同時にその数だけ作成する構成としてもよい。
【0161】
図8において、中間データ作成処理810は、1本目の線L1の中間データ作成処理に対応し、時間t80〜t82の間で処理される。タイミング811は、中間データ作成処理810に必要な情報が渡され、GDI出力402に対して中間データ作成処理が完了したという通知ができるタイミングを示している。
【0162】
そして、実際に中間データ作成処理810が完了するのは、時間t82のタイミングなので、時間t81とt82の差の分だけ早くGDI出力402に対して中間データ作成処理が完了したという通知が行えることとなる。
【0163】
このことは、その分だけアプリケーション401が次のデータ出力を行えることとなる。したがって、2本目の線L2の中間データ作成処理812は、時間t81から行うことが可能となる。
【0164】
さらに、第1実施形態における時間t10から時間t11と、第2実施形態における時間t80と時間t81とを比較すると、第2実施形態における時間t80から時間t81の時間の方が短時間であることが示されている。
【0165】
つまり、第1実施形態では、中間データ作成処理が開始されるまでに、まず、中間データ作成処理自身を動的に作成しており、その作成時間として時間t10から時間t11が必要とされている。
【0166】
一方、第2実施形態では、中間データ作成処理は、レンダリング処理409の作成と同時にあらかじめ2つ作成してあり、2つの中間データ作成処理に必要なデータを引き渡すため、時間t80から時間t81の時間が必要とされている。
【0167】
一般的に、新しい処理をOS上で作成するのに比べて、作成済みの処理にデータを引き渡すだけの方がその処理時間はずっと短いもので済むこととなり、ここが第2実施形態の構成により発生する効果である。
【0168】
図9に示す時間t80の時点における管理テーブル405におけるスレッド管理テーブル901は、1本目の線L1のレンダリング処理810の開始時点の状態を示している。
【0169】
なお、スレッド管理テーブルは、複数並行に実行される中間データ作成処理を管理する目的で利用され、レンダリング処理409はこれを監視して動作する。スレッド管理テーブルには、命令ID,命令,スレッド,状態という4つの項目がある。命令IDは、GDI出力402から出力されるGDI命令の一連の順番を示すIDであり、レンダリング処理409がGDI出力402から出力される順番で行われるように、この値を使って制御する。
【0170】
命令は、GDI命令の種類を示す。スレッドはスレッド番号と呼ばれるOSが自動的に割り振る番号を示す。状態は、その中間データ作成処理が現在どのような状態にあるのかを表し、図9に示す例では、「1」が中間データ作成中を示し、「2」が中間データ作成処理完了を表す。この時間t80の時点におけるスレッド管理テーブル901では、線L1に対する命令で中間データ作成処理中となっている状態を示している。
【0171】
ここで、レンダリング管理テーブルの構成と機能について説明する。
【0172】
レンダリング管理テーブルは、複数並行に実行される中間データ作成処理と並行するレンダリング処理409を管理する目的で利用されており、レンダリング管理テーブルには、レンダリング可能ID、レンダリング中ID、レンダリング済みIDという3つの項目がある。
【0173】
このうち、レンダリング可能IDは、スレッド管理テーブルに登録されているデータのうち、レンダリング処理を開始することが可能な命令IDを示しており、時間t80のタイミングでは、中間データ作成処理が1つも完了していないので何もできないことを示す「0」となっている。
【0174】
レンダリング中IDはスレッド管理テーブルに登録されているデータのうち、現在レンダリング処理を行っている最中の命令IDを示している。時間t80のタイミングでは、中間データ作成処理が1つも完了していないので、何もしていないことを示す「0」となっている。
【0175】
また、レンダリング済みIDはスレッド管理テーブルに登録されているデータのうち、レンダリング処理が完了した命令IDを示している。時間t80のタイミングで、中間データ作成処理が1つも完了していないので何もしていないことを示す「0」となっている。
【0176】
図8に示す処理812は、時間t81〜時間t83において、2本目の線L2の中間データ作成処理を示している。そして、時間t80と時間t81の間の時間と同じ分だけ時間t81から通過した時点でGDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0177】
そして、図9に示すスレッド管理テーブル903は、時間t81の時点、つまり、2本目の線L2の中間データ作成処理812の開示時点での管理テーブル405における状況を示していて、時間t81の時点では、線L1,L2の2件が共に中間データ作成処理中となっている。
【0178】
また、図9に示すレンダリング管理テーブル904は、時間t81におけるレンダリング状況を示しており、この時間t81の時点では、中間データ作成処理が1つも完了していないので、レンダリング可能ID、レンダリング中ID、レンダリング済みIDのそれぞれが「0」となっている。
【0179】
図8に示す処理813は、時間t82〜時間t87において、ビットマップB1の中間データ作成処理を示している。1つ前の処理812の2本目の線L2の中間データ作成処理が時間t80と時間t81の間の時間と同じ分だけ、時間t81から経過した時点で終了したという通知をGDI出力402に対して出しているが、処理812の2本目の線L2の中間データ作成処理に入った時点で2つ用意されている中間データ作成処理はどちらも処理中の状態になってしまっている。そのため、この処理813で、ビットマップB1の中間データ作成処理は、処理中である2つ用意された中間データ作成処理のどちらかが終了するまで待たされることとなり、処理810で1本目の線L1の中間データ作成処理が終了する時間t82の時点で、それと入れ替わりで処理が開始される。
【0180】
そして、処理813において、時間t83の時点でGDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0181】
図9に示す時間t82の時点における管理テーブル405におけるスレッド管理テーブル905は、処理813(ビットマップB1に対する)の開始で、かつ、処理815(線L1)のレンダリング処理開始時点での状況を示しており、時間t82の時点では、線L2とビットマップB1の2件が共に中間データ作成処理中となっている。
【0182】
時間t82の時点における管理テーブル405におけるレンダリング管理テーブル906は、1本目の線L1の中間データ作成処理810の作成処理が完了して、該線L1に対するレンダリング処理が開始されているので、レンダリング管理テーブルは、レンダリング可能ID=「1」、レンダリング中ID=「1」、レンダリング済みID=「0」となっている。
【0183】
第1実施形態では、レンダリング処理409が完了した時点でスレッド管理テーブルから該当する命令IDの情報を削除しているが、第2実施形態では、レンダリング処理409に入った時点でスレッド管理テーブルから該当する命令IDの情報を削除する。従って、時間t82の時点で線L1に関する情報は、スレッド管理テーブル905から削除してある。
【0184】
図8に示す処理814は、時間t83〜時間t86におけるテキストT1の中間データ作成処理を示している。なお、テキストT1も時間t84の時点で、GDI出力402に対して中間データ作成処理が完了したという通知を行う。
【0185】
図9に示す時間t83の時点における管理テーブル405におけるスレッド管理テーブル907は、テキストT1の中間データ作成処理814の開始時点での状況を示している。この時間t83の時点では、線L2に対する命令が完了して、レンダリング待ちとなっており、ビットマップB1とテキストT1の2件が共に中間データ作成処理中となっている。
【0186】
時間t83の時点における管理テーブル405におけるレンダリング管理テーブル908は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理811が完了して、該線L1に対するレンダリング処理の途中なので、レンダリング管理テーブルは、レンダリング可能ID=「2」、レンダリング中ID=「1」、レンダリング済みID=「0」となっている。
【0187】
図9に示す時間t84の時点における管理テーブル405におけるスレッド管理テーブル909は、テキストT1の中間データ作成処理814が完了したという通知をGDI出力402に対して行う状況を示している。この時間t84の時点では、線L2に対する命令が完了して、レンダリング待ちとなっており、ビットマップB1とテキストT1の2件が共に中間データ作成処理中となっている。
【0188】
時間t84の時点における管理テーブル405におけるレンダリング管理テーブル910は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理811が完了して、該線L1に対するレンダリング処理の途中なので、レンダリング管理テーブルは、レンダリング可能ID=「2」、レンダリング中ID=「1」、レンダリング済みID=「0」となっている。
【0189】
以上、線L1,L2,ビットマップB1,テキストT1の中間データ作成処理のうちで、最も早い時間(時間t80)、最も遅い時間(時間t87)との差が中間データ作成に要する時間823となる。ただし、それぞれの中間データ作成処理はそれ自身に必要なデータが引き渡された時点で処理が完了したという通知をGDI出力402に対して行うので、アプリケーション401にとっては時間t84の時点で印刷に関する処理を全て終えたことになり、印刷処理以外の他の操作に移れることになる。
【0190】
そして、第1実施形態でのアプリケーション開放628と本実施形態におけるアプリケーション開放822との差が改善時間821となり、この差の分が第1実施形態に比べて、第2実施形態により更に短縮することができるアプリケーション開放時間となる。
【0191】
図8に示す処理815は、時間t82〜時間t85における1本目の線L1のレンダリング処理を示している。図6に示したレンダリング処理409は、管理テーブル405の状態を監視し、中間データ作成処理810が終了する時間t82のタイミングでレンダリング処理815を開始する。
【0192】
図8に示す処理816は、時間t85〜時間t87における1本目の線L2のレンダリング処理を示している。2本目の線L2の中間データ作成処理812は、時間t83のタイミングで終了するが、並行に動作しているレンダリング処理409は、時間t83の時点では、まだ、1本目の線L1のレンダリング処理815を行っている最中であるため、線L1のレンダリング処理が終了する時間t85まで待って、2本目の線L2のレンダリング処理816が開始される。
【0193】
図9に示す時間t85の時点における管理テーブル405におけるスレッド管理テーブル911は、1本目の線L1のレンダリング処理815の終了時点での状況を示しており、時間t85の時点では、ビットマップB1およびテキストT1の中間データ作成処理中となっている。
【0194】
時間t85の時点における管理テーブル405におけるレンダリング管理テーブル912は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理812が完了して、該線L1に対するレンダリング処理が時間t82から開始され終了しており、2本目の線L2に関するレンダリング処理409が開始されている。従って、時間t85の時点でのレンダリング管理テーブルは、レンダリング可能ID=「2」、レンダリング中ID=「2」、レンダリング済みID=「1」となり、命令ID2に対するレンダリング処理409が実行中であることを示している。
【0195】
図9に示す時間t86の時点における管理テーブル405におけるスレッド管理テーブル913は、テキストT1のレンダリング処理814の終了時点での状況を示しており、時間t86の時点では、ビットマップB1の1件が処理中であり、テキストT1の中間データ作成処理を完了して、レンダリング処理409の待ち状態となっている。
【0196】
時間t86の時点における管理テーブル405におけるレンダリング管理テーブル914は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理812およびテキストT1の中間データ作成処理814が完了して、該線L1に対するレンダリング処理が時間t82から開始され終了しており、2本目の線L2に関するレンダリング処理409が開始されている。従って、時間t86の時点でのレンダリング管理テーブルは、レンダリング可能ID=「2」、レンダリング中ID=「2」、レンダリング済みID=「1」となり、命令ID2に対するレンダリング処理409が実行中であることを示している。
【0197】
図8に示す処理817は、時間t87〜時間t88におけるビットマップB1のレンダリング処理を示している。時間t87の時点では、ビットマップB1の中間データ作成処理813もテキストT1の中間データ作成処理814も終了しており、どちらの処理も可能であるが、レンダリング処理はアプリケーション401が出力した順番に行わないと、アプリケーション401が意図した結果とならないため、先に出力されているビットマップに関するレンダリング処理を行う。
【0198】
図9に示す時間t87の時点における管理テーブル405におけるスレッド管理テーブル915は、2本目の線L2のレンダリング処理817が終了し、ビットマップB1のレンダリング処理が開始された状況を示している。時間t87の時点では、テキストT1の1件が完了となり、レンダリング処理409の待ち状態となっている。
【0199】
時間t87の時点における管理テーブル405におけるレンダリング管理テーブル916は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理812およびテキストT1の中間データ作成処理814が完了して、該線L2に対するレンダリング処理が完了し、ビットマップB1に関するレンダリング処理409が開始されている。従って、時間t87の時点でのレンダリング管理テーブルは、レンダリング可能ID=「4」、レンダリング中ID=「3」、レンダリング済みID=「2」となり、命令ID3に対するレンダリング処理409が実行中であり、かつ命令ID4に対するレンダリング処理409の実行待ちであることを示している。
【0200】
なお、時間t87の時点では、ビットマップB1に関するレンダリング処理409が開始されているので、スレッド管理テーブル915から削除されている。
【0201】
図8に示す処理818は、時間t88の時点で処理可能なのは、中間データ作成処理814で作成したテキストのみなので、時間t88〜時間t89におけるテキストT1のレンダリング処理を示している。
【0202】
図9に示す時間t88の時点における管理テーブル405におけるスレッド管理テーブル917は、ビットマップB1のレンダリング処理817が終了し、テキストT1のレンダリング処理818が開始された状況を示している。時間t88の時点ではレンダリング処理409の待ちの命令はないので、スレッド管理テーブル917は空きの状態となっている。
【0203】
時間t88の時点における管理テーブル405におけるレンダリング管理テーブル918は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理812およびビットマップB1の中間データ作成処理813およびテキストT1の中間データ作成処理814が完了している。従って、時間t88の時点では、ビットマップB1に関するレンダリング処理409が終了し、テキストT1に関するレンダリング処理409が開始された段階なので、レンダリング管理テーブルは、レンダリング可能ID=「4」、レンダリング中ID=「4」、レンダリング済みID=「3」となり、命令ID4に対するレンダリング処理409が実行中であることを示している。
【0204】
なお、時間t88の時点では、テキストT1に関するレンダリング処理409が開始されているので、スレッド管理テーブル915から削除されている。
【0205】
以上、線L1,L2およびビットマップB1さらにはテキストT1のレンダリング処理を順番に処理する時間(時間t82〜t89)がレンダリング824に要する時間となる。
【0206】
そして、ここまでの処理が完了すると、プリンタドライバ416は処理を完了したこととなり、ページビットマップ410をプリンタ417に送り印刷するだけとなる。
【0207】
図8に示す処理819は、ページビットマップ410をプリンタ417に送り、印刷を行う印刷処理を示している。印刷処理819は、時間t89〜t90の間で処理される。
【0208】
図9に示す時間t89の時点における管理テーブル405におけるスレッド管理テーブル917は、テキストT1のレンダリング処理817が終了した状況を示している。時間t89の時点では、レンダリング処理409の待ちの命令は無くなっているので、スレッド管理テーブル919は空きの状態となっている。
【0209】
時間t89の時点における管理テーブル405におけるレンダリング管理テーブル920は、1本目の線L1の中間データ作成処理810の作成処理と2本目の線L2の中間データ作成処理812およびビットマップB1の中間データ作成処理814およびテキストT1の中間データ作成処理814が完了している。
【0210】
従って、時間t89の時点では、テキストT1に関するレンダリング処理409が終了した段階なので、レンダリング管理テーブルは、レンダリング可能ID=「4」、レンダリング中ID=「4」、レンダリング済みID=「4」となり、全ての命令に対するレンダリング処理409が完了したことを示している。
【0211】
なお、時間t89の時点では、時間t88の時点と同様にスレッド管理テーブル919は空きの状態となっている。
【0212】
図8に示す処理819に要する時間の最後の時間t90の時点は、プリンタから用紙の出力が完了するタイミングを示している。
【0213】
そして、第1実施形態による処理での印刷終了634と、第2実施形態による処理での印刷終了827との差分が、改善時間828となり、この差分が、第1実施形態に比べて、第2実施形態による構成に基づく、トータル印刷所要時間の短縮時間に相当するものである。
【0214】
このように第2実施形態によれば、プリンタドライバ内で同時に動作する処理の数に上限ができるので、CPUの能力を適度に他の処理に振り分けながら、バランスよく拡張してより高速な印刷処理が可能となる。
【0215】
以下、図10に示すメモリマップを参照して本発明に係る情報処理装置で読み出し可能なデータ処理プログラムの構成について説明する。
【0216】
図10は、本発明に係る情報処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【0217】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【0218】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【0219】
本実施形態における図5,図8に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【0220】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0221】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0222】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROM,EEPROM等を用いることができる。
【0223】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0224】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0225】
【発明の効果】
以上説明したように、本発明に係る第1〜第8の発明によれば、オペレーティングシステムからの描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能とし、該作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する際に、該作成される複数の中間データの作成状況を第1の管理テーブルで管理するとともに、該管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理し、該1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから順次ビットマップイメージに展開させるように制御するので、描画処理を行うコントローラの負担を強いることなく、中間データ作成処理の効率化を図り、展開されるビットマップイメージを印刷し終えるまでの印刷処理時間を大幅に短縮できるという効果を奏する。
【図面の簡単な説明】
【図1】本発明に係る情報処理装置と通信可能な印刷装置の構成を説明する概略断面図である。
【図2】本発明の第1実施形態を示す情報処理装置を適用可能な印刷システムの構成を説明するブロック図である。
【図3】図2に示したホストコンピュータ上のプリンタドライバの機能を説明する図である。
【図4】図3に示したプリンタドライバによるページ処理状態を説明する図である。
【図5】本発明の第1実施形態を示す情報処理装置におけるページ処理状態を説明する図である。
【図6】本発明に係る情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【図7】本発明の第1実施形態を示す情報処理装置におけるプリンタドライバが管理するテーブルの一例を示す図である。
【図8】本発明の第2実施形態を示す情報処理装置におけるプリンタドライバによるデータ処理状態を説明する図である。
【図9】本発明の第2実施形態を示す情報処理装置におけるプリンタドライバが管理する管理テーブルの一例を説明する図である。
【図10】本発明に係る情報処理装置で読み出し可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
1 CPU
2 RAM
3 ROM
8 PRTC
11 外部メモリ
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a printer driver, a print control method, a computer-readable storage medium, and a program for analyzing drawing information output from an application to generate information interpretable by a printing device and transferring the information to the printing device. is there.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, an information processing apparatus is configured to be able to convert a drawing command into print data that can be analyzed by a printing apparatus and transmit the print command in accordance with a print instruction from an application via a print control program to be installed, a so-called printer driver.
[0003]
In this case, the operating system (hereinafter referred to as OS) outputs an instruction called Graphics Device Interface (GDI) to the printer driver in response to the output of the application, and the printer driver performs processing in accordance with the instruction and the processing is completed. At that time, the OS was notified of the notification and waited for the next instruction.
[0004]
When the printer driver is performing such an operation, only one GDI instruction can be processed simultaneously in the printer driver.
[0005]
[Problems to be solved by the invention]
However, in a processing mode in which only one GDI instruction is handled at a time, the capacity of the CPU usually has a margin, and it cannot be said that the capacity is fully used up.
[0006]
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object of the present invention is to analyze an object in drawing information from an operating system and to provide a plurality of intermediate data for developing a bitmap image. When each intermediate data to be created is developed into a bitmap image that can be printed by a printing unit, the creation status of the plurality of created intermediate data is managed in a first management table, Based on the intermediate data to be managed, a rendering state developed into a bitmap image by the developing means is managed in a second management table, and based on a state change of the first and second management tables, the intermediate data is After the creation of the image is completed, control is performed so that the bitmap image This makes it possible to improve the efficiency of the intermediate data creation processing without imposing a burden on the controller that performs the drawing processing, and to significantly reduce the printing processing time until printing of the expanded bitmap image is completed. A method and a computer readable storage medium and program are provided.
[0007]
[Means for Solving the Problems]
A first invention according to the present invention is a printer driver that analyzes drawing information output from an application, generates information that can be interpreted by a printing device, and transfers the information to a printing device. Intermediate data creation means (corresponding to the intermediate data creation function 414 shown in FIG. 6) capable of analyzing and creating a plurality of intermediate data for developing into a bitmap image, and each intermediate data created by the intermediate data creation means (A page bitmap 410 shown in FIG. 6) that develops the intermediate data into a bitmap image that can be printed by the printing unit, and manages the creation status of a plurality of intermediate data created in parallel by the intermediate data creation unit A first management table (corresponding to the management table 405 shown in FIG. 6) for storing the intermediate data managed by the first management table. A second management table (corresponding to the management table 405 shown in FIG. 6) for managing a rendering state developed into a bitmap image by the development means, and a state change of the first and second management tables. A first control unit (corresponding to the rendering process 409 shown in FIG. 6) for sequentially developing a bitmap image from the object from which the creation of the intermediate data is completed and the bitmap image development can be started based on the intermediate data. It is characterized by having.
[0008]
A second invention according to the present invention is a printer driver that analyzes drawing information output from an application to generate information that can be interpreted by a printing apparatus and transfers the information to a printing apparatus. Intermediate data creating means (corresponding to the intermediate data creating function 414 shown in FIG. 6) capable of simultaneously creating a plurality of intermediate data for analyzing and developing into a bitmap image, and each intermediate created by the intermediate data creating means A developing unit (corresponding to the page bitmap 410 shown in FIG. 6) for developing the data into a bitmap image printable by the printing unit, and a creation status of a plurality of intermediate data created in parallel by the intermediate data creation unit are shown. A first management table to be managed (corresponding to the management table 405 shown in FIG. 6), and a first management table managed by the first management table. A second management table (corresponding to the management table 405 shown in FIG. 6) for managing a rendering state to be expanded into a bitmap image by the expansion unit based on data; and a state change of the first and second management tables. A second control unit (corresponding to the rendering process 409 shown in FIG. 6) for sequentially developing the bitmap image from the object for which the creation of the intermediate data is completed based on the It is characterized by having.
[0009]
A third invention according to the present invention is characterized in that the drawing information is constituted by a group of GDI instructions issued from an operating system.
[0010]
A fourth invention according to the present invention is a print control method in a printer driver for analyzing drawing information output from an application to generate information interpretable by a printing apparatus and transferring the generated information to the printing apparatus, An intermediate data creation step (corresponding to the intermediate data creation 629 shown in FIG. 5) capable of creating a plurality of intermediate data for analyzing the object in the image and developing the intermediate data into a bitmap image, and the intermediate data creation step A development step (corresponding to the rendering 631 shown in FIG. 5) of developing each intermediate data into a bitmap image that can be printed by the printing unit, and a creation status of a plurality of intermediate data created in parallel by the intermediate data creation step are described. A first management step (refer to FIG. 7) managed by a first management table; A second management step (see FIG. 7) for managing a rendering state developed into a bitmap image by the development step in a second management table based on the managed intermediate data, and the first and second managements; A first control step (steps 615 to 615 shown in FIG. 5) in which, based on a change in the state of the table, the intermediate data has been completely created and bitmap image development can be started. Processing 618).
[0011]
A fifth invention according to the present invention is a print control method in a printer driver for analyzing drawing information output from an application to generate information that can be interpreted by a printing device and transferring the information to a printing device. An intermediate data creation step (corresponding to the intermediate data creation 823 shown in FIG. 8) capable of simultaneously creating a plurality of intermediate data for analyzing the objects in the image and developing the intermediate data into a bitmap image, and the intermediate data creation step A developing step (corresponding to the rendering 824 shown in FIG. 8) of developing each piece of intermediate data into a bitmap image that can be printed by the printing unit, and the creation status of a plurality of intermediate data created in parallel by the intermediate data creating step A first management step (see FIG. 9) of managing the first management table in the first management table; A second management table (see FIG. 9) that manages a rendering state developed into a bitmap image by the development step based on the intermediate data managed by the first management table and the second management table; A second control step (step 815 shown in FIG. 8) in which, based on the change in the state of the management table, the intermediate data has been completely created and bitmap image development can be started in order from the object that can be developed. To 818).
[0012]
A sixth invention according to the present invention is characterized in that the drawing information is constituted by a group of GDI instructions issued from an operating system.
[0013]
A seventh invention according to the present invention is a computer-readable storage medium storing a program for realizing the print control method according to any one of the fourth to sixth inventions.
[0014]
An eighth invention according to the present invention is a program for realizing the print control method according to any one of the fourth to sixth inventions.
[0015]
BEST MODE FOR CARRYING OUT THE INVENTION
FIG. 1 is a schematic cross-sectional view illustrating a configuration of a printing apparatus capable of communicating with an information processing apparatus according to the present invention, and corresponds to, for example, an example of a laser beam printer. It should be noted that the present invention is applicable to a printer engine using an inkjet printing method or another printing method.
[0016]
Further, the present invention is applicable not only to a printer control system but also to a display control system.
[0017]
In FIG. 1, reference numeral 1500 denotes an LBP body (hereinafter, referred to as a printer), which inputs and stores print information (character codes and the like) and form information supplied from a host computer externally connected via an interface; A corresponding character pattern, form pattern, or the like is created according to print information or form information, and an image is formed on a recording medium, such as recording paper.
[0018]
Reference numeral 1501 denotes an operation panel on which switches for operations related to the printer and indicators such as LEDs are arranged. Reference numeral 1512 denotes a printer control unit which controls the printer 1500 and analyzes character information, graphics, and images supplied from a computer.
[0019]
The printer control unit 1512 converts the character information into a video signal of a corresponding character pattern and outputs the video signal to the laser driver 1502. The laser driver 1502 is a circuit for driving the semiconductor laser 1503, and switches on / off a laser beam 1504 emitted from the semiconductor laser 1503 according to an input video signal.
[0020]
The laser beam 1504 is swung in the left and right direction by a rotating polygon mirror (polygon mirror) 1505 to scan and expose the electrostatic drum 1506. As a result, an electrostatic latent image of a character pattern is formed on the electrostatic drum 1506. This electrostatic latent image is developed by a unit 1507 disposed around the electrostatic drum 1506, and then transferred to a recording sheet.
[0021]
A cut sheet is used as the recording paper. The cut sheet recording paper is stored in a paper guide 1508 provided in the printer 1500, and is taken into the apparatus by a paper feed roller 1509, a conveyance roller 1510, and a conveyance roller 1511. And supplied to the electrostatic drum 1506.
[0022]
The printer 1500 is provided with at least one or more card slots (not shown) so that an optional font card and a card of a different language (so-called emulation card) can be connected in addition to the built-in fonts.
[0023]
[First Embodiment]
FIG. 2 is a block diagram illustrating the configuration of a printing system to which the information processing apparatus according to the first embodiment of the present invention can be applied, and the same components as those in FIG. 1 are denoted by the same reference numerals.
[0024]
If the functions of the present invention are executed, the present invention is applicable to a single device, a system including a plurality of devices, and a system in which processing is performed via a network such as a LAN. The invention is applicable.
[0025]
In FIG. 2, reference numeral 3000 denotes a host computer, which is a sentence in which graphics (graphics), images, characters, tables (including spreadsheets, etc.) are mixed based on a sentence processing program and the like stored in a printer ROM of the ROM 3. The system includes a CPU 1 that executes processing, and the CPU 1 controls all devices connected to the system bus 4.
[0026]
The program ROM of the ROM 3 stores a control program of the CPU 1 and the like, the font ROM of the ROM 3 stores font data and the like used in the text processing, and the data ROM of the ROM 3 stores the above-described ROM. Various data used when performing text processing are stored.
[0027]
Reference numeral 2 denotes a RAM, which functions as a main memory and a work area of the CPU 1. A keyboard controller (KBC) 5 controls a key input from a keyboard (KB) 9 or a pointing device (not shown). Reference numeral 6 denotes a CRT controller (CRTC), which controls display on a CRT display (CRT) 10.
[0028]
Reference numeral 7 denotes a disk controller (DKC) for controlling access to an external memory 11 such as a hard disk (HD) for storing a boot program, various applications, font data, user files, edit files, and the like, and a flexible disk (FD).
[0029]
Reference numeral 8 denotes a printer controller (PRTC) which is connected to the printer 1500 via a predetermined bidirectional interface (interface) 21 and executes communication control processing with the printer 1500.
[0030]
The CPU 1 executes, for example, a process of developing (rasterizing) the outline font on the display information RAM set on the RAM 2 to enable WYSIWYG on the CRT 10.
[0031]
Further, the CPU 1 opens various registered windows based on a command instructed by a mouse cursor or the like (not shown) on the CRT 10 and executes various data processing.
[0032]
In the printer 1500, a printer CPU (CPU) 12 communicates with various devices connected to a system bus 15 based on a control program or the like stored in a program ROM of a ROM 13 or a control program stored in an external memory 14. It controls access in a centralized manner and outputs an image signal as output information to a printing unit (printer engine) 17 connected via a printing unit interface 16.
[0033]
The program ROM of the ROM 13 stores a control program of the CPU 12.
[0034]
The font ROM of the ROM 13 stores font data and the like used when generating the output information, and the data ROM of the ROM 13 stores the data on the host computer when the printer does not have the external memory 14 such as a hard disk. The information used is stored.
[0035]
The CPU 12 can notify the host computer 3000 via the input unit 18 and can notify the host computer 3000 of information in the printer 1500 and the like.
[0036]
Reference numeral 19 denotes a RAM, which functions as a main memory and a work memory of the CPU 12, and is configured so that the memory capacity can be expanded by an optional RAM connected to an expansion port (not shown). The RAM 19 is used for an output information development area, an environment data storage area, an NVRAM, and the like.
[0037]
In addition, access to the external memory 14 such as the hard disk (HD) and the IC card is controlled by a disk controller (DKC) 20.
[0038]
The external memory 14 is connected as an option and stores font data, emulation programs, form data, and the like.
[0039]
Further, the external memory 14 is not limited to one, and may include at least one or more, and may be configured to store an optional font card and a program for interpreting a printer control language having a different language system in addition to the built-in fonts. . Further, an NVRAM (not shown) may be provided to store the printer mode setting information from the operation panel 1501.
[0040]
In the printer control system configured as described above, the present invention resides in the external memory 11 of the host computer 3000, and is incorporated as a part of a printer driver under the control of the OS when the system is started up. And is started and executed simultaneously with the printing process.
[0041]
FIG. 3 is a diagram for explaining the function of the printer driver on the host computer 3000 shown in FIG.
[0042]
3, an application 301 is an application program (not shown) developed and executed on the RAM 2 shown in FIG. 2. The application 301 creates some appropriate data and issues a print instruction.
[0043]
Normal print data is composed of data such as the beginning of a document, the beginning of a page, a group of data representing lines and characters, the end of a page, and the end of a document, which are sequentially output from an application program to an operating system (OS) (not shown). Is done.
[0044]
The GDI output 302 indicates that the OS issues a print instruction to a printer driver (not shown) that is developed and executed on the RAM 2 in the rendering command format called GDI based on the output performed by the application 301.
[0045]
Further, when the printer driver 310 receives a notification that the creation of the intermediate data by the intermediate data creation processing 304 is completed, the printer driver 310 notifies the application 301 of the information, so that the application 301 can proceed to the next printing operation. Is shown.
[0046]
The page end 303 in the printer driver 310 indicates that the GDI determines whether or not the GDI has sent data indicating the end of the page. Here, in the case of the data indicating the end of the page, the control is transferred to the rendering processing 306, and in the case of the data not being the end of the page, the control is transferred to the intermediate data creation processing 304.
[0047]
The intermediate data creation process 304 converts the output data in the GDI format into an intermediate data format in a format that can be easily rendered. Here, the converted information in the intermediate data format is stored in the RAM 2 as the intermediate data 305, and when the storage is completed, the GDI output 302 is notified that the intermediate data creation processing is completed.
[0048]
Then, the GDI output 302 notifies the application 301 that the intermediate data creation processing has been completed.
[0049]
The rendering process 306 in the printer driver 310 indicates that a page bitmap 307 indicating the content itself to be printed on one page of paper is created using the intermediate data 305 created by the intermediate data creation process 304.
[0050]
The page bitmap 307 is sent to a reception buffer 308 in the printer 311 and processed, and a print result 309 as a final print result is output.
[0051]
FIG. 4 is a view for explaining a page processing state by the printer driver 310 shown in FIG. Hereinafter, an example of the GDI output 302, the intermediate data 305, and the page bitmap 307 shown in FIG. 3 will be described.
[0052]
In FIG. 4, reference numerals 501 and 502 denote GDI outputs. As shown, the GDI outputs 501 and 502 are output to the printer driver 310 in a format that can be easily handled by the OS. Many are in a format that cannot be simply expanded into a bitmap as it is. The GDI output 501 indicates an instruction for the OS to output GDI to the printer driver.
[0053]
Taking GDI 502 as an example, five contents are expressed by one GDI instruction.
[0054]
The GDI 502 is a LINE instruction in the GDI instruction and draws a line between coordinates (0, 10) and (100, 10), and the next GDI instruction is coordinates (100, 10)-(100, 100). , And the next GDI instruction draws only the portion that falls within the area of coordinates (50,0)-(2000,2000), and the next GDI instruction draws the line The color is gray with 50% density, and the next GDI instruction indicates that the width is 1 dot.
[0055]
Reference numerals 503 and 504 denote intermediate data. The intermediate data 503 corresponds to intermediate data in a format that can be immediately developed into a bitmap, and the intermediate data 504 interprets the output of the GDI and processes the data one by one in order. As it goes, it corresponds to intermediate data that is converted to a format that can be expanded into a page bitmap.
[0056]
For example, the intermediate data 504 indicates that it has been converted into three contents. That is, first, a gray color brush having a 50% density is registered, and a line of 1 dot width is drawn between coordinates (50, 10)-(100, 10) using the registered brush. Draw a line of 1 dot width between the coordinates (100, 10)-(100, 100) using a brush.
[0057]
Reference numerals 505 to 507 denote page bitmaps, and the page bitmap 505 is a page bitmap directly represented by a bitmap image.
[0058]
On the other hand, the page bitmaps 506 and 507 represent A5 paper (14.8 cm 21.0 cm) as a page bitmap (3496 dots × 4960 dots) having a resolution of 600 DPI.
[0059]
The equation for converting cm to dot is as follows. Since 1 Inch = 2.54 cm and 1 Inch = 600 dots,
14.8 cm / 2.54 cm * 600 DPI = 3496.062992 dots 21.0 cm / 2.54 cm * 600 DPI = 496.6929921 dots
Therefore, an A5 sheet of 14.8 cm × 21.0 cm can be represented as a page bitmap of 3496 dots × 4960 dots.
[0060]
In particular, the page bitmap 506 shown in FIG. 4 shows an example in which the GDI output 502 is created so as not to be within the area of (50, 0)-(2000, 2000). Note that a square of (50, 0)-(2000, 2000) is a frame indicating an area and is not page bitmap data.
[0061]
In the page bitmap 507, the GDI output 504 is determined. The region of (50, 0)-(2000, 2000) is considered at the stage of the intermediate data creation processing and is reflected in the intermediate data 504. The page bitmap 507 can be created by interpreting and processing. Note that a square of (50, 0)-(2000, 2000) is a frame indicating an area and is not page bitmap data.
[0062]
FIG. 5 is a diagram for explaining a page processing state in the information processing apparatus according to the present invention. In order to clarify a difference from the conventional page processing state, the conventional page processing state is shown on the left side. It should be noted that t0 to t9 indicate the conventional elapse of time, and t10 to t21 indicate the elapse of the present invention.
[0063]
In this example, one page of print data is composed of two lines (lines L1 and L2 in the figure), one bitmap (bitmap B1 in the figure), and one text (text T1 in the figure). It is assumed.
[0064]
The process 601 shown in FIG. 5, that is, the process of creating intermediate data of the first line L1 between times t0 and t1 is shown. Then, in the process 602, the second intermediate data creation process is shown between times t1 and t2.
[0065]
In the process 603, the intermediate data creation process of the bitmap B1 is shown between time t2 and t3.
[0066]
In the process 604, the data creation process of the text T1 is shown between time t3 and t4.
[0067]
The time (t0 to t4) for sequentially processing the intermediate data creation processing of the lines L1 and L2, the bitmap B1, and the text T1 is the time 621 required for the intermediate data creation processing. When the processes up to this point are completed, the application 301 has completed all the processes related to printing, and can shift to other operations other than the printing process. For this reason, the timing at time t4 is referred to as application release 622.
[0068]
That is, the time from when the print start instruction 620 is issued to when the application is released 622 is one of the indices for evaluating the printer product, and a shorter time is required for operating the application 301 and for printing. The waiting time after stopping the operation of the application can be shortened, which is evaluated as preferable.
[0069]
A process 605 indicates a rendering process of the first line L1, and indicates that the rendering process of the line L1 is executed from time t4 to t5. The processing 606 indicates the rendering processing of the second line L2, and indicates that the rendering processing of the line L2 is executed at times t5 to t6.
[0070]
A process 607 indicates a rendering process of the bitmap B1, and indicates that the rendering process of the bitmap B1 is executed from time t6 to t7. The process 608 indicates the rendering process of the text T1, and indicates that the rendering process of the text T1 is executed from time t7 to t8.
[0071]
As described above, the times t4 to t8 in which the rendering processes of the lines L1 and L2, the bitmap B1, and the text T1 are sequentially performed are the times required for the rendering 623.
[0072]
Then, when the processing up to this point is completed, the printer driver 310 has completed the processing, and only the page bitmap 307 is sent to the printer 311 and printed.
[0073]
Process 609 indicates a printing process in which the page bitmap 307 is sent to the printer 311 for printing at time t8 to t9. The end of the time required for printing 625 (t9) is the timing when the output of the sheet from the printer is completed.
[0074]
The time from when the print start instruction 620 is issued to when the print end 626 is performed is also one of the indices for evaluating the printer product. The shorter the time, the longer the print instruction is issued and the user actually obtains the printed matter. The time until it is short is good.
[0075]
The above is the print processing procedure by the conventional program driver. As shown in FIG. 5, in the conventional print processing, all the processing up to the intermediate data creation processing 621, the rendering 623, and the printing 625 are performed in order. go.
[0076]
However, for example, during the intermediate data creation processing 601, there is a margin in the actual processing capacity of the CPU, and other processing can be performed in parallel at the same time.
[0077]
As described above, in the related art, there is a case where an approach for shortening the processing time by making full use of the capacity of the CPU is not sufficiently performed.
[0078]
FIG. 6 is a diagram illustrating a data processing state by the printer driver in the information processing apparatus according to the present invention.
[0079]
An application 401 is an application program (not shown) that is developed and executed on the RAM 2 in the same manner as the application shown in FIG. 3. The application 401 creates some appropriate data and instructs printing. Is shown.
[0080]
The normal print data is composed of data such as the beginning of a document, the beginning of a page, a group of data representing lines and characters, the end of a page, and the end of a document, and is sequentially output from an application program to an OS (not shown).
[0081]
A GDI output 402 indicates that the OS issues a print instruction to a printer driver (not shown) that is developed and executed on the RAM 2 in the form of an instruction output by the application 401 on the RAM 2 in an instruction format called GDI.
[0082]
Further, after receiving the notification that the intermediate data creation processing (1) 406, the intermediate data creation processing (n) 407, and the management table initialization have been completed, the application 401 notifies the application 401 of the information. It also shows that the processing can move to the next processing operation.
[0083]
A page 403 indicates that the GDI determines whether data indicating the beginning of a page, a line or a character, or data indicating the end of a page has been sent.
[0084]
If the data is the beginning of a page, the control is transferred to the management table initialization 404. In the case of representing a line or a character, the intermediate data creation function 414 is activated to dynamically create and execute the intermediate data creation processing (1) 406 and the intermediate data creation processing (n) 407. Then, in the case of the data indicating the end of the page, the control is transferred to the rendering processing 409.
[0085]
The management table initialization 404 indicates that two types of tables, a thread management table and a rendering management table, shown in FIG. 7 are created on the RAM 2 and the contents are cleared to prepare for writing to each table. The management table 405 is composed of a thread management table and a rendering management table as shown in FIG. 7, and when the initialization of each table is completed, the GDI output 402 is notified of the completion.
[0086]
Further, a rendering process 409 that operates with reference to the management table 405 is created and activated.
[0087]
The intermediate data creation function 414 is activated when the GDI output 402 outputs data representing a line or a character, and dynamically creates an intermediate data creation process (1) 406 and an intermediate data creation process (n) 407. Do it. At the same time as the completion of the process, the GDI output 402 notifies the GDI output 402 that the process is completed even though the process is not actually completed.
[0088]
The intermediate data creation processing in the printer driver of the information processing apparatus according to the present invention is configured such that a plurality of intermediate data creation operations can be performed simultaneously in parallel. Therefore, it is not possible to specify whether some intermediate data creation processes operate in parallel at the same time, depending on the data to be printed. Therefore, in the example shown in FIG. 6, a plurality of intermediate data creation processes that may be operating simultaneously in parallel are represented in the form of an intermediate data creation process (1) 406 and an intermediate data creation process (n) 407. .
[0089]
When created, the intermediate data creation processing (1) 406 and the intermediate data creation processing (n) 407 write their own status in the management table 405.
[0090]
The intermediate data created by the intermediate data creation processing (1) 406 and the intermediate data creation processing (n) 407 are stored in the intermediate data 408 existing on the RAM 2. The intermediate data 408 is written in common from a plurality of intermediate data creation processes.
[0091]
The rendering process 409 is created and operated by the management table initialization 404. Then, when the intermediate data creation processing (1) 406 and the intermediate data creation processing (n) 407 update the management table 405 and become ready to create the page bitmap 410, the processing is spontaneously performed. Upon starting, a minute page bitmap 410 that can be processed at that time is created. The rendering process 409 can also operate in parallel with the intermediate data creation process (1) 406 and the intermediate data creation process (n) 407.
[0092]
Even when the end of the page is determined in the page determination 403, the control is transferred to the rendering processing 409. At this point, the intermediate data creation processing (1) 406 and the intermediate data creation processing ( n) Only wait for the end of 407.
[0093]
When all the intermediate data creation processing (1) 406 and the intermediate data creation processing (n) 407 are completed and the management table 405 is updated, the rendering processing 409 detects the situation and starts processing spontaneously. Then, the remaining page bitmap 410 is created.
[0094]
The page bitmap 410 is sent to a reception buffer 411 in the printer 417 and processed, and a print result 412 as a final print result is output.
[0095]
The processing in the program driver in the information processing apparatus according to the present invention is performed as shown in FIG. In this example, the flow of time will be described assuming that one page of print data includes two lines (lines L1 and L2 in the figure), a bitmap B1, and a text T1.
[0096]
In FIG. 5, a line L1 indicates the intermediate data creation processing of the first line. In the example illustrated in FIG. 5, the time advances from the top to the bottom, and the intermediate data creation processing 610 is performed between times t10 and t14. Reference numeral 611 denotes the time required to create the intermediate data creation processing itself, and indicates that it is possible to notify the GDI output 402 that the intermediate data creation processing has been completed at times t10 to t11.
[0097]
Actually, the intermediate data creation processing 610 is completed at time t14, so that the GDI output 402 can be notified that the intermediate data creation processing has been completed earlier by the difference time from time t11 to t14. This allows the application 401 to output the next data earlier. Therefore, the intermediate data creation processing 612 for the second line can be performed from time t11.
[0098]
The thread management table 701 shown in FIG. 7 shows the state of the thread management table in the management table 405 at the time t10, that is, at the start of the intermediate data creation processing 610 for the first line L1.
[0099]
The thread management table is used for managing a plurality of intermediate data creation processes executed in parallel, and the rendering process 409 operates by monitoring this.
[0100]
The thread management table has four items: an instruction ID, an instruction, a thread, and a state.
[0101]
The command ID is an ID indicating a series of orders of GDI commands output from the GDI output 402, and is controlled using this value so that the rendering processing 409 is performed in the order output from the GDI output 402. The instruction indicates the type of the GDI instruction. The thread indicates a number called a thread number, which is automatically assigned by the OS. The state indicates what state the intermediate data creation process is currently in. In the example shown in FIG. 7, “1” indicates that intermediate data is being created, and “2” indicates that intermediate data has been created. In the thread management table at the time t10, one instruction L1 indicated by the thread management table 701 is being processed.
[0102]
The rendering management table 702 indicates the status of the rendering management table in the management table 405 at the time t10.
[0103]
The rendering management table is used for managing a plurality of intermediate data creation processes executed in parallel and a rendering process 409 executed in parallel.
[0104]
The rendering management table has three items: a renderable ID, a rendering ID, and a rendered ID.
[0105]
The renderable ID indicates an instruction ID that can start a rendering process among data registered in the thread management table. At the timing of time t10, since no intermediate data creation process has been completed, the value is "0" indicating that nothing can be performed.
[0106]
The rendering-in-progress ID indicates the instruction ID of the data currently registered in the thread management table and currently undergoing the rendering process. At the timing of time t10, it is "0" indicating that no intermediate data creation processing has been completed.
[0107]
The rendered ID indicates an instruction ID for which rendering processing has been completed, among data registered in the thread management table. At the timing of the time t10, since no intermediate data creation processing has been completed, the value is "0" indicating that nothing is performed.
[0108]
A process 612 illustrated in FIG. 5 indicates an intermediate data creation process of the second line L2, and the intermediate data creation process is performed between times t11 and t15.
[0109]
Since the line L2 also creates the intermediate data creation processing 612 itself between times t11 and t12, the GDI output 402 is notified at the time t12 that the intermediate data creation processing has been completed.
[0110]
The thread management table 703 indicates the status of the thread management table in the management table 405 at the time t11, that is, at the start of the intermediate data creation processing 612 of the second line L2.
[0111]
The rendering management table 704 shows the status of the rendering management table in the management table 405 at the time t11. At time t11, since no intermediate data creation processing has been completed, each of the renderable ID, the rendering ID, and the rendered ID is “0”.
[0112]
A process 613 illustrated in FIG. 5 indicates a process of creating intermediate data of the bitmap B1 between time t12 and time t17. Since the bitmap B1 also creates the intermediate data creation processing itself of the bitmap B1 between time t12 and time t17, the GDI output 402 is notified at time t13 that the intermediate data creation processing has been completed. .
[0113]
Further, the thread management table 705 shown in FIG. 7 shows the state of the thread management table in the management table 405 at the time t12, that is, at the start of the intermediate data creation processing of the bitmap B1. At the time t12, all three lines L1, L2 and bitmap B1 are being processed in parallel.
[0114]
Further, the rendering management table 706 shown in FIG. 7 shows the status of the rendering management table in the management table 405 at the time t12. At time t12, since no intermediate data creation processing has been completed, each of the renderable ID, the rendering ID, and the rendered ID is “0”.
[0115]
A process 614 illustrated in FIG. 5 indicates an intermediate data creation process of the text T1 between the time t13 and the time t16. Since the text T1 also creates the intermediate data creation processing itself of the text T1 between the time t13 and the time t16, the GDI output 402 is notified that the intermediate data creation processing is completed at the time t14.
[0116]
The thread management table 707 shown in FIG. 7 shows the state of the thread management table in the management table 405 at the time t13, that is, at the start of the intermediate data creation processing of the text T1. At the time t13, all four lines L1, L2, bitmap B1, and text T1 are being processed in parallel.
[0117]
Further, a rendering management table 708 illustrated in FIG. 7 illustrates a state of the rendering management table in the management table 405 at the time t13. At time t13, since no intermediate data creation processing has been completed, each of the renderable ID, the rendering ID, and the rendered ID is “0”.
[0118]
As described above, in the intermediate data creation processing of L1, L2, B1, and T1, the time required for the intermediate data creation processing 629 is from the earliest time (time t10) to the latest time (t17). However, since each intermediate data creation process notifies the GDI output 402 that the process has been completed when the intermediate data creation process itself has been created, the application 401 has completed all the processes related to printing at the time t14. , And the operation can be shifted to another operation other than the printing process.
[0119]
Therefore, application release 628 by the printer driver according to the present invention occurs at the timing of time t14.
[0120]
When this is compared with the conventional application release timing, the difference between the application release 622 and the application release 628 which is the application release timing of the present invention is the improvement time A, and the improvement time A is reduced.
[0121]
In FIG. 5, a process 615 indicates a rendering process of the first line L1. The rendering process 409 monitors the state of the management table 405, and enters a state in which the rendering process can be started first. Then, the rendering process 615 is started at the time t14 when the intermediate data creation process 610 ends. This rendering processing 615 is performed between times t14 and t16.
[0122]
The thread management table 709 indicates the status of the thread management table in the management table 405 at the time t14, that is, at the end of the intermediate data creation processing of the first line L1. At the time t14, rendering of the line L1 has been completed, and three lines L2, bitmap B1, and text T1 are in the process of creating intermediate data.
[0123]
The rendering management table 710 indicates the status of the rendering management table in the management table 405 at time t14. At the time t14, the intermediate data creation processing 610 of the first line L1 has been completed, and the rendering processing 409 relating to the processing has been started. Therefore, the renderable ID = “1”, the rendering ID = “1”, and the rendered ID = “0”, indicating that the rendering process 409 for the instruction of ID1 is being executed.
[0124]
The thread management table 711 shown in FIG. 7 shows the status of the thread management table in the management table 405 at time t15, that is, at the end of the intermediate data creation processing 612 of the second line L2. At the time t15, the instructions of the lines L1 and L2 have been completed, and the two items of the bitmap B1 and the text T1 are in the process of creating intermediate data.
[0125]
The rendering management table 712 shown in FIG. 7 shows the status of the rendering management table in the management table 405 at the time t15. At the time t15, the intermediate data creation processing 610 for the first line L1 and the intermediate data creation processing 612 for the second line L2 have been completed. The rendering table for the first line L1 has a renderable ID = “2”, a rendering ID = “1”, and a rendered ID = “0”, indicating that the rendering process 409 for the instruction of ID1 is being executed. , ID2 are waiting to be executed.
[0126]
A process 616 illustrated in FIG. 5 indicates a rendering process of the second line L2, similarly to the rendering process of the line L1. The intermediate data creation processing 612 of the second line L2 ends at the timing of time t15. However, the rendering processing 409 operating in parallel is performing the rendering processing 615 of the line L1 at the time t15. Since the rendering process is in progress, the rendering process 616 of the second line L2 is processed from time t16 to time t18 until the rendering process of the line L1 ends at time t16.
[0127]
At this time, as shown in FIG. 7, the thread management table 713 stores the time point of time t16, that is, the end point of the intermediate data creation processing 614 of the text T1, and the end point of the rendering processing 615 of the first line L1. 3 shows the status of the thread management table in the management table 405.
[0128]
At the time t16, the command is that the line L2 and the text T1 have been completed, and one bitmap B1 is in the process of creating intermediate data.
[0129]
The state of the rendering management table 714 in the management table 405 at the time t16 is that the intermediate data creation processing 610 of the first line L1 and the intermediate data creation processing 612 of the second line L2 at the time t16. And the intermediate data creation processing 614 of the text T1 has been completed.
[0130]
The rendering process 409 for the first line L1 starts at time t14 and ends at time t16. Therefore, regarding the line L1, both the intermediate data creation processing and the rendering processing have been completed, and at this point, there is no need for management. Therefore, the information regarding the line L1 is deleted from the thread management table 713.
[0131]
At the time t16, since the rendering process 409 for the second line L2 has started, the rendering management table indicates that the renderable ID = 2, the rendering ID = 2, the rendered ID = 1, and the instruction ID2 This indicates that the rendering process 409 is being executed.
[0132]
Here, the reason why the renderable ID is not “4” is because the state of the intermediate data creation processing 613 for the bitmap B1 on the thread management table 713 is “1” indicating that the processing is in progress.
[0133]
As described above, if the intermediate data creation processing is performed in parallel, depending on the data to be processed, the processing that has been started later may be completed earlier, but in the present embodiment, the management table By managing the intermediate data creation processing using the thread management table in 405, it is possible to control the rendering processing to be performed in the order output by the application.
[0134]
Further, the thread management table 715 at the time t17 shown in FIG. 7 shows the status of the thread management table of the management table 405 at the end of the intermediate data creation processing 613 of the bitmap B1. At time t17, all the instructions for the line L2, bitmap B1, and text T1 have been processed.
[0135]
The rendering management table 716 in the management table 405 at the time t17 shown in FIG. 7 includes an intermediate data creation process 610 for the first line L1, an intermediate data creation process 612 for the second line L2, and an intermediate data creation process for the text T1. Has been completed.
[0136]
At the time t17, since the rendering process 409 for the second line L2 is still being processed, the rendering management table indicates that the renderable ID = 4, the rendering ID = 2, the rendered ID = 1, and This indicates that the rendering process is being executed, and that the rendering process 409 for the instruction with the instruction ID3 or ID4 is waiting to be executed.
[0137]
The reason why the renderable ID has changed from “2” to “4” at the time from time t16 to time t17 is that the state for all instructions on the thread management table 715 is “2” and all intermediate This is because the data creation processing can be processed in order.
[0138]
A rendering process 617 illustrated in FIG. 5 illustrates a rendering process of the bitmap B1. At time t18, both the bitmap intermediate data creation processing 613 and the text intermediate data creation processing have been completed, and either processing is possible. However, if the rendering processing is not performed in the order output by the application 401, Since the intended result is not obtained by the application 401, the rendering process is performed on the bitmap output earlier. This rendering processing (for the bitmap B1) is performed between time t18 and time t19.
[0139]
Further, the thread management table 717 in the management table 405 at the time t18 shown in FIG. 7 shows a state at the time when the rendering processing 616 for the second line L2 is completed and the rendering processing 617 for the bitmap B1 is started. ing. At time t18, all the instructions for the bitmap B1 and the text T1 have been completed.
[0140]
The rendering management table 718 in the management table 405 at the time t18 includes intermediate data creation processing 610 for the first line L1, intermediate data creation processing 612 for the second line L2, and intermediate data creation processing 613 for the bitmap B1. , The intermediate data creation processing 614 of the text T1 has been completed.
[0141]
At the time t18, the rendering process 409 for the second line L2 has been completed and the rendering process 409 for the bitmap B1 has been started. Completed ID = 2, indicating that the rendering process for the instruction ID3 is being executed and the rendering process 409 for the instruction with the instruction ID4 is waiting to be executed.
[0142]
At the time t18, the rendering process 409 for the second line L2 has been completed, and the intermediate data creation process and the rendering process for the line L2 have been completed. At this point, there is no need for management. Therefore, the information on the line L2 is deleted from the thread management table 717.
[0143]
Further, the rendering process 618 shown in FIG. 5 shows a rendering process for the text T1. Since only the text created in the intermediate data creation process 614 can be processed at the time t19, a process related thereto is performed. This rendering process (for the text T1) is performed between times t19 and t20.
[0144]
The rendering management table 719 in the management table 405 at the time t19 indicates that the rendering processing 617 of the bitmap B1 and the intermediate data creation processing 618 of the text T1 have been started. At time t19, the instruction for the text T1 has been completed.
[0145]
Further, the rendering management table 720 in the management table 405 at the time t19 includes an intermediate data creation process 610 for the first line L1, an intermediate data creation process 612 for the second line L2, and an intermediate data creation process 613 for the bitmap B1. , The intermediate data creation processing 614 of the text T1 has been completed.
[0146]
At the time t19, the rendering process 409 for the second line L2 has been completed and the rendering process 409 for the bitmap B1 has started, so the rendering management table indicates that the renderable ID = 4 and the rendering ID = “ 4 ", rendered ID = 3, indicating that rendering processing for the instruction ID3 is being executed and rendering processing 409 for the instruction with the instruction ID4 is being executed.
[0147]
At the time t19, the rendering process 409 for the bitmap B1 has been completed, and the intermediate data creation process and the rendering process for the bitmap B1 have been completed. At this point, there is no need for management. Therefore, information on the bitmap B1 is deleted from the thread management table 719.
[0148]
As described above, the time (time t14 to t20) for sequentially processing the rendering processing of the lines L1, L2, the bitmap B1, and the text T1 is the time required for the rendering processing 631. When the processing up to this point is completed, the printer driver 416 has completed the processing. Thereafter, the page bitmap 410 is sent to the printer 417 and only printed.
[0149]
A print process 619 illustrated in FIG. 5 indicates that the page bitmap 410 is sent to the printer 417 to perform a print process between times t20 and t21.
[0150]
Further, the rendering management table 721 in the management table 405 at the time t20 shows a state in which the rendering process 618 has been completed for the text T1. At time t19, the table is empty because there is no unprocessed intermediate data creation process.
[0151]
The rendering management table 722 in the management table 405 at the time t20 includes an intermediate data creation process 610 for the first line L1, an intermediate data creation process 612 for the second line L2, an intermediate data creation process 613 for the bitmap B1, and a text. This indicates that the intermediate data creation processing 614 of T1 has been completed.
[0152]
At the time t20, the rendering process 409 for the text T1 has been completed, so the rendering management table has the renderable ID = 4, the rendering ID = “4”, the rendered ID = “4”, and all the commands Has been completed.
[0153]
At the last time t21 shown in FIG. 5, the timing at which the paper output from the printer is completed according to the print processing 633 is shown.
[0154]
Then, comparing the improvement degree of the print processing time according to the present embodiment and the print processing time according to the present embodiment, an improvement time 635 which is a difference between the print end 626 and the print end 634 occurs. This difference is the time for which the total printing time can be reduced as compared with the related art.
[0155]
[Second embodiment]
FIG. 8 is a diagram for explaining a data processing state by a printer driver in an information processing apparatus according to the second embodiment of the present invention. The same reference numerals as in FIG. 5 (the same as in the first embodiment) denote the same parts. It is attached.
[0156]
FIG. 9 is a view for explaining an example of a management table managed by a printer driver in the information processing apparatus according to the second embodiment of the present invention. The structure of the management table is the same as that of the first embodiment shown in FIG. It is.
[0157]
Hereinafter, data processing will be described by taking as an example a case where objects similar to those in the first embodiment, for example, lines L1, L2, bitmap B1, and text T1 constitute one page of print data.
[0158]
The difference between the first embodiment and the second embodiment is that the intermediate data creation processes 406 and 407 which are dynamically created in the first embodiment are different from the rendering process 409 which is created in the second embodiment. At the same time, the process is changed to a process in which a certain number is created and the intermediate data creation process is started.
[0159]
In particular, in the example shown in FIG. 8, two intermediate data creation processes are prepared. In the present embodiment, the number of intermediate data creation processes to be created in advance is not limited to two, and other information such as the scale of a program, data processing capability of a CPU (change in load condition), memory capacity, and the like. Depending on the condition, a number other than 2 may be created.
[0160]
Alternatively, the number to be created on the external memory 11 may be set, and the number of intermediate data creation processes may be determined with reference to the number. Alternatively, the number may be dynamically set in accordance with the availability of the RAM 2 or the load of the CPU 1, and the number may be created at the same time when the rendering process 409 is created.
[0161]
In FIG. 8, an intermediate data creation process 810 corresponds to the intermediate data creation process for the first line L1, and is performed between times t80 and t82. A timing 811 indicates a timing at which necessary information is passed to the intermediate data creation processing 810, and a notification that the intermediate data creation processing has been completed can be given to the GDI output 402.
[0162]
Since the intermediate data creation processing 810 is actually completed at the time t82, it is possible to notify the GDI output 402 that the intermediate data creation processing has been completed earlier by the difference between the times t81 and t82. Become.
[0163]
This means that the application 401 can output the next data accordingly. Therefore, the intermediate data creation processing 812 for the second line L2 can be performed from time t81.
[0164]
Furthermore, comparing time t10 to time t11 in the first embodiment and time t80 and time t81 in the second embodiment, the time from time t80 to time t81 in the second embodiment is shorter. It is shown.
[0165]
That is, in the first embodiment, the intermediate data creation processing itself is first dynamically created before the intermediate data creation processing is started, and the time from time t10 to time t11 is required as the creation time. .
[0166]
On the other hand, in the second embodiment, two intermediate data creation processes are created in advance simultaneously with the creation of the rendering process 409, and data necessary for the two intermediate data creation processes is delivered. Is needed.
[0167]
Generally, as compared with the case where a new process is created on the OS, the time required for transferring data to the created process is much shorter than that of the process that has already been created. The effect that occurs.
[0168]
The thread management table 901 in the management table 405 at the time t80 shown in FIG. 9 shows the state at the start of the rendering processing 810 for the first line L1.
[0169]
Note that the thread management table is used for managing a plurality of parallelly executed intermediate data creation processes, and the rendering process 409 operates by monitoring this. The thread management table has four items: an instruction ID, an instruction, a thread, and a state. The instruction ID is an ID indicating a series of orders of GDI instructions output from the GDI output 402, and is controlled using this value so that the rendering processing 409 is performed in the order output from the GDI output 402.
[0170]
The instruction indicates the type of the GDI instruction. The thread indicates a number called a thread number, which is automatically assigned by the OS. The state indicates what state the intermediate data creation process is currently in. In the example shown in FIG. 9, “1” indicates that intermediate data creation is in progress, and “2” indicates completion of the intermediate data creation process. The thread management table 901 at the time t80 indicates a state in which intermediate data creation processing is being performed by an instruction for the line L1.
[0171]
Here, the configuration and function of the rendering management table will be described.
[0172]
The rendering management table is used for the purpose of managing the rendering process 409 that is performed in parallel with the intermediate data creation process that is performed in parallel, and the rendering management table includes a rendering-possible ID, a rendering ID, and a rendered ID. There are two items.
[0173]
Among these, the renderable ID indicates an instruction ID that can start the rendering process among the data registered in the thread management table, and at the time t80, no intermediate data creation process is completed. Since it has not been done, it is "0" indicating that nothing can be done.
[0174]
The rendering-in-progress ID indicates an instruction ID of the data currently registered in the thread management table, which is currently performing the rendering process. At the timing of time t80, since no intermediate data creation process has been completed, the value is "0" indicating that nothing is being performed.
[0175]
The rendered ID indicates an instruction ID for which rendering processing has been completed among data registered in the thread management table. At the timing of time t80, since no intermediate data creation process has been completed, the value is "0" indicating that nothing is being performed.
[0176]
A process 812 illustrated in FIG. 8 illustrates the intermediate data creation process of the second line L2 at time t81 to time t83. Then, at the time when the time has passed from time t81 by the same amount as the time between time t80 and time t81, the GDI output 402 is notified that the intermediate data creation processing has been completed.
[0177]
The thread management table 903 shown in FIG. 9 shows the situation in the management table 405 at the time t81, that is, at the time of disclosure of the intermediate data creation processing 812 of the second line L2, and at the time t81 , Lines L1 and L2 are both in the process of creating intermediate data.
[0178]
Further, the rendering management table 904 shown in FIG. 9 shows the rendering status at time t81. At this time t81, no intermediate data creation processing has been completed. Each of the rendered IDs is “0”.
[0179]
A process 813 illustrated in FIG. 8 indicates a process of creating intermediate data of the bitmap B1 from time t82 to time t87. A notification to the GDI output 402 that the intermediate data creation processing of the second line L2 of the immediately preceding processing 812 has been completed at the time when the time t81 has elapsed by the same amount as the time between the time t80 and the time t81. However, at the time when the process 812 enters the intermediate data creation process of the second line L2, both of the two intermediate data creation processes are being processed. Therefore, in this process 813, the intermediate data creation process of the bitmap B1 is waited until one of the two prepared intermediate data creation processes being completed is completed, and in the process 810, the first line L1 At the time t82 when the intermediate data creation processing ends, the processing is started in place of the time t82.
[0180]
Then, in a process 813, at the time t83, the GDI output 402 is notified that the intermediate data creation process has been completed.
[0181]
The thread management table 905 in the management table 405 at the time t82 shown in FIG. 9 indicates the situation at the start of the processing 813 (for the bitmap B1) and at the time of starting the rendering processing of the processing 815 (line L1). At the time t82, both the line L2 and the bitmap B1 are in the process of creating intermediate data.
[0182]
The rendering management table 906 in the management table 405 at the time t82 indicates that the rendering processing for the line L1 has been started since the creation processing of the intermediate data creation processing 810 for the first line L1 has been completed. Renderable ID = “1”, Rendering ID = “1”, Rendered ID = “0”.
[0183]
In the first embodiment, when the rendering process 409 is completed, the information of the corresponding instruction ID is deleted from the thread management table. In the second embodiment, when the rendering process 409 is entered, the corresponding instruction ID is deleted from the thread management table. The instruction ID information to be deleted is deleted. Therefore, the information about the line L1 has been deleted from the thread management table 905 at the time t82.
[0184]
A process 814 illustrated in FIG. 8 illustrates an intermediate data creation process of the text T1 from time t83 to time t86. Note that the text T1 also notifies the GDI output 402 that the intermediate data creation processing has been completed at the time t84.
[0185]
The thread management table 907 in the management table 405 at the time t83 shown in FIG. 9 shows the situation at the start of the intermediate data creation processing 814 of the text T1. At the time t83, the command for the line L2 has been completed, rendering is awaiting, and both the bitmap B1 and the text T1 are in the process of creating intermediate data.
[0186]
The rendering management table 908 in the management table 405 at the time t83 indicates that the intermediate data creation processing 810 for the first line L1 and the intermediate data creation processing 811 for the second line L2 have been completed. Since the rendering process is in progress, the rendering management table has the renderable ID = “2”, the rendering ID = “1”, and the rendered ID = “0”.
[0187]
The thread management table 909 in the management table 405 at the time t84 shown in FIG. 9 shows a situation in which the GDI output 402 is notified that the intermediate data creation processing 814 of the text T1 has been completed. At the time t84, the command for the line L2 has been completed, rendering is awaiting, and both the bitmap B1 and the text T1 are in the process of creating intermediate data.
[0188]
The rendering management table 910 in the management table 405 at the time t84 is such that the creation processing of the intermediate data creation processing 810 of the first line L1 and the intermediate data creation processing 811 of the second line L2 are completed, and Since the rendering process is in progress, the rendering management table has the renderable ID = “2”, the rendering ID = “1”, and the rendered ID = “0”.
[0189]
As described above, the difference between the earliest time (time t80) and the latest time (time t87) in the intermediate data generation processing of the lines L1, L2, the bitmap B1, and the text T1 is the time 823 required for the intermediate data generation. . However, since each intermediate data creation process notifies the GDI output 402 that the process is completed when the data necessary for itself is delivered, the application 401 performs the process related to printing at the time t84. Now that all the operations have been completed, the user can proceed to operations other than the printing process.
[0190]
The difference between the application release 628 in the first embodiment and the application release 822 in the present embodiment is the improvement time 821, and the difference is further reduced by the second embodiment as compared with the first embodiment. It is the application release time that can be done.
[0191]
A process 815 illustrated in FIG. 8 illustrates a rendering process of the first line L1 from time t82 to time t85. The rendering process 409 shown in FIG. 6 monitors the state of the management table 405, and starts the rendering process 815 at the time t82 when the intermediate data creation process 810 ends.
[0192]
A process 816 illustrated in FIG. 8 illustrates a rendering process of the first line L2 at the time t85 to the time t87. The intermediate data creation processing 812 for the second line L2 ends at the timing of time t83, but the rendering processing 409 operating in parallel still renders the rendering processing 815 for the first line L1 at the time t83. Is performed, the rendering process 816 for the second line L2 is started after waiting until time t85 when the rendering process for the line L1 ends.
[0193]
The thread management table 911 in the management table 405 at the time t85 shown in FIG. 9 shows the situation at the end of the rendering processing 815 of the first line L1, and at the time t85, the bitmap B1 and the text The intermediate data creation process of T1 is in progress.
[0194]
The rendering management table 912 in the management table 405 at the time t85 indicates that the creation processing of the intermediate data creation processing 810 for the first line L1 and the creation processing 812 of the intermediate data for the second line L2 are completed, and The rendering processing is started and ended at time t82, and the rendering processing 409 for the second line L2 is started. Therefore, in the rendering management table at the time t85, the renderable ID = “2”, the rendering ID = “2”, the rendered ID = “1”, and the rendering process 409 for the instruction ID2 is being executed. Is shown.
[0195]
The thread management table 913 in the management table 405 at the time t86 shown in FIG. 9 shows the situation at the end of the rendering processing 814 of the text T1, and at the time t86, one bitmap B1 is processed. The intermediate data creation processing for the text T1 is completed, and the rendering processing 409 is awaited.
[0196]
The rendering management table 914 in the management table 405 at the time t86 includes the creation processing of the intermediate data creation processing 810 of the first line L1, the creation processing 812 of the intermediate data of the second line L2, and the creation processing 814 of the intermediate data of the text T1. Are completed, the rendering processing for the line L1 is started and ended at time t82, and the rendering processing 409 for the second line L2 is started. Therefore, in the rendering management table at the time t86, the renderable ID = “2”, the rendering ID = “2”, the rendered ID = “1”, and the rendering process 409 for the instruction ID2 is being executed. Is shown.
[0197]
A process 817 illustrated in FIG. 8 illustrates a rendering process of the bitmap B1 from time t87 to time t88. At time t87, both the intermediate data creation processing 813 for the bitmap B1 and the intermediate data creation processing 814 for the text T1 have been completed, and either processing is possible. However, the rendering processing is performed in the order output by the application 401. If not, the intended result is not obtained by the application 401, so that the rendering process for the previously output bitmap is performed.
[0198]
The thread management table 915 in the management table 405 at the time t87 shown in FIG. 9 shows a state where the rendering processing 817 for the second line L2 has been completed and the rendering processing for the bitmap B1 has started. At time t87, one case of the text T1 has been completed, and the rendering process 409 is waiting.
[0199]
The rendering management table 916 in the management table 405 at the time t87 includes the creation processing of the intermediate data creation processing 810 of the first line L1, the creation processing 812 of the intermediate data of the second line L2, and the creation processing 814 of the intermediate data of the text T1. Are completed, rendering processing for the line L2 is completed, and rendering processing 409 for the bitmap B1 has been started. Therefore, in the rendering management table at the time t87, the renderable ID = “4”, the rendering ID = “3”, the rendered ID = “2”, and the rendering process 409 for the instruction ID3 is being executed. Further, it indicates that the rendering process 409 for the instruction ID 4 is waiting to be executed.
[0200]
At the time t87, the rendering process 409 for the bitmap B1 has been started, and is therefore deleted from the thread management table 915.
[0201]
The processing 818 shown in FIG. 8 shows the rendering processing of the text T1 from time t88 to time t89 because only the text created in the intermediate data creation processing 814 can be processed at the time t88.
[0202]
The thread management table 917 in the management table 405 at the time t88 shown in FIG. 9 shows a state in which the rendering process 817 for the bitmap B1 has been completed and the rendering process 818 for the text T1 has started. At the time t88, there is no instruction waiting for the rendering process 409, so the thread management table 917 is empty.
[0203]
The rendering management table 918 in the management table 405 at the time t88 includes the creation processing of the intermediate data creation processing 810 of the first line L1, the creation processing 812 of the intermediate data of the second line L2, and the creation processing of the intermediate data of the bitmap B1. 813 and the intermediate data creation processing 814 of the text T1 have been completed. Therefore, at the time t88, the rendering process 409 for the bitmap B1 has ended and the rendering process 409 for the text T1 has started, so the rendering management table shows that the renderable ID = “4” and the rendering ID = “ 4 ”, rendered ID =“ 3 ”, indicating that the rendering process 409 for the instruction ID 4 is being executed.
[0204]
At the time t88, the rendering process 409 for the text T1 has been started, and is thus deleted from the thread management table 915.
[0205]
As described above, the time (time t82 to t89) for sequentially rendering the lines L1 and L2, the bitmap B1, and the text T1 is the time required for rendering 824.
[0206]
When the processing up to this point is completed, the printer driver 416 has completed the processing, and only sends the page bitmap 410 to the printer 417 and prints it.
[0207]
A process 819 illustrated in FIG. 8 indicates a print process of sending the page bitmap 410 to the printer 417 and performing printing. The print process 819 is performed between times t89 and t90.
[0208]
The thread management table 917 in the management table 405 at the time t89 shown in FIG. 9 shows a state where the rendering process 817 of the text T1 has been completed. At the time t89, there is no instruction waiting for the rendering process 409, so the thread management table 919 is empty.
[0209]
The rendering management table 920 in the management table 405 at the time t89 includes the creation processing of the intermediate data creation processing 810 of the first line L1, the creation processing 812 of the intermediate data of the second line L2, and the creation processing of the intermediate data of the bitmap B1. 814 and the intermediate data creation processing 814 of the text T1 have been completed.
[0210]
Therefore, at the time t89, the rendering process 409 for the text T1 has ended, and the rendering management table indicates that the renderable ID = “4”, the rendering ID = “4”, and the rendered ID = “4”. This indicates that the rendering processing 409 for all instructions has been completed.
[0211]
At the time t89, the thread management table 919 is empty, as in the time t88.
[0212]
The time point t90 at the end of the time required for the process 819 shown in FIG. 8 indicates the timing when the output of the sheet from the printer is completed.
[0213]
The difference between the print end 634 in the process according to the first embodiment and the print end 827 in the process according to the second embodiment is an improvement time 828, and this difference is the second time compared to the first embodiment. This corresponds to a reduction in the total printing time required based on the configuration according to the embodiment.
[0214]
As described above, according to the second embodiment, the upper limit can be set to the number of processes that operate simultaneously in the printer driver. Becomes possible.
[0215]
Hereinafter, the configuration of a data processing program readable by the information processing apparatus according to the present invention will be described with reference to a memory map shown in FIG.
[0216]
FIG. 10 is a diagram illustrating a memory map of a storage medium that stores various data processing programs that can be read by the information processing device according to the present invention.
[0219]
Although not shown, information for managing a group of programs stored in the storage medium, for example, version information, a creator, and the like are also stored, and information dependent on the OS or the like on the program reading side, for example, a program is identified and displayed. Icons and the like may also be stored.
[0218]
Further, data dependent on various programs is also managed in the directory. In addition, a program for installing various programs on a computer or a program for decompressing a program to be installed when the program to be installed is compressed may be stored.
[0219]
The functions shown in FIGS. 5 and 8 in the present embodiment may be executed by a host computer by a program installed from the outside. In this case, the present invention is applied even when a group of information including a program is supplied to the output device from a storage medium such as a CD-ROM, a flash memory, or an FD, or from an external storage medium via a network. Things.
[0220]
As described above, the storage medium storing the program codes of the software for realizing the functions of the above-described embodiments is supplied to the system or the apparatus, and the computer (or CPU or MPU) of the system or the apparatus stores the storage medium in the storage medium. It goes without saying that the object of the present invention is also achieved by reading and executing the program code thus obtained.
[0221]
In this case, the program code itself read from the storage medium implements the novel function of the present invention, and the storage medium storing the program code constitutes the present invention.
[0222]
As a storage medium for supplying the program code, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, CD-R, magnetic tape, nonvolatile memory card, ROM, EEPROM, or the like may be used. it can.
[0223]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing.
[0224]
Further, after the program code read from the storage medium is written into a memory provided on a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that a CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0225]
【The invention's effect】
As described above, according to the first to eighth aspects of the present invention, it is possible to analyze an object in drawing information from an operating system and create a plurality of intermediate data for developing a bitmap image. When developing each of the created intermediate data into a bitmap image that can be printed by a printing unit, the first management table manages the creation status of the created plurality of intermediate data, and the managed Based on the intermediate data, a rendering state to be developed into a bitmap image by the developing means is managed in a second management table. Control is performed so as to sequentially develop the bitmap image from the objects that can start developing the bitmap image. Without forcing the controller burden of performing, improve efficiency of the intermediate data generation process, an effect that can greatly reduce the printing time until you print the bitmap image to be developed.
[Brief description of the drawings]
FIG. 1 is a schematic cross-sectional view illustrating a configuration of a printing apparatus capable of communicating with an information processing apparatus according to the present invention.
FIG. 2 is a block diagram illustrating a configuration of a printing system to which the information processing apparatus according to the first embodiment of the present invention can be applied.
FIG. 3 is a diagram illustrating functions of a printer driver on a host computer shown in FIG. 2;
FIG. 4 is a diagram illustrating a page processing state by the printer driver shown in FIG. 3;
FIG. 5 is a diagram illustrating a page processing state in the information processing apparatus according to the first embodiment of the present invention.
FIG. 6 is a diagram illustrating a data processing state by a printer driver in the information processing apparatus according to the present invention.
FIG. 7 is a diagram illustrating an example of a table managed by a printer driver in the information processing apparatus according to the first embodiment of the present invention.
FIG. 8 is a diagram illustrating a data processing state by a printer driver in the information processing apparatus according to the second embodiment of the present invention.
FIG. 9 is a diagram illustrating an example of a management table managed by a printer driver in the information processing apparatus according to the second embodiment of the present invention.
FIG. 10 is a diagram illustrating a memory map of a storage medium that stores various data processing programs that can be read by the information processing apparatus according to the present invention.
[Explanation of symbols]
1 CPU
2 RAM
3 ROM
8 PRTC
11 External memory

Claims (8)

アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成手段と、
前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段と、
前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第1の管理テーブルと、
前記第1の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第2の管理テーブルと、
前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第1の制御手段と、
を有することを特徴とするプリンタドライバ。
A printer driver that analyzes drawing information output from an application to generate information that can be interpreted by a printing apparatus and transfers the information to the printing apparatus. The printer driver analyzes an object in the drawing information and develops it into a bitmap image. Intermediate data creation means capable of creating a plurality of intermediate data for
Expanding means for expanding each intermediate data created by the intermediate data creating means into a bitmap image printable by a printing unit;
A first management table for managing the creation status of a plurality of intermediate data created in parallel by the intermediate data creation means;
A second management table that manages a rendering state to be expanded into a bitmap image by the expansion unit based on the intermediate data managed by the first management table;
First control means for, based on a change in the state of the first and second management tables, sequentially developing the intermediate data into a bitmap image from the object capable of starting bitmap image development by means of the development means; When,
A printer driver comprising:
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバであって、前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成手段と、
前記中間データ作成手段により作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開手段と、
前記中間データ作成手段により並行して作成される複数の中間データの作成状況を管理する第1の管理テーブルと、
前記第1の管理テーブルにより管理される中間データに基づいて、前記展開手段によりビットマップイメージに展開するレンダリング状況を管理する第2の管理テーブルと、
前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開手段により順次ビットマップイメージに展開させる第2の制御手段と、
を有することを特徴とするプリンタドライバ。
A printer driver that analyzes drawing information output from an application to generate information that can be interpreted by a printing device and transfers the information to the printing device, and analyzes an object in the drawing information to develop a bitmap image. Intermediate data creation means capable of simultaneously creating a plurality of intermediate data for
Expanding means for expanding each intermediate data created by the intermediate data creating means into a bitmap image printable by a printing unit;
A first management table for managing the creation status of a plurality of intermediate data created in parallel by the intermediate data creation means;
A second management table that manages a rendering state to be expanded into a bitmap image by the expansion unit based on the intermediate data managed by the first management table;
A second control unit that, based on a change in the state of the first and second management tables, sequentially develops the bitmap image from an object for which the creation of the intermediate data is completed and a bitmap image can be developed into the bitmap image by the development unit; When,
A printer driver comprising:
前記描画情報は、オペレーティングシステムから発行されるGDI命令群で構成されることを特徴とする請求項1または2記載のプリンタドライバ。3. The printer driver according to claim 1, wherein the drawing information includes a group of GDI instructions issued from an operating system. アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、
前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成ステップと、
前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップと、
前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第1の管理テーブルで管理する第1の管理ステップと、
前記第1の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理する第2の管理ステップと、
前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第1の制御ステップと、
を有することを特徴とする印刷制御方法。
A print control method in a printer driver that analyzes drawing information output from an application to generate information interpretable by the printing device and transfers the information to the printing device,
Analyzing the object in the drawing information, an intermediate data creating step capable of creating a plurality of intermediate data for developing into a bitmap image,
A developing step of developing each intermediate data created by the intermediate data creating step into a bitmap image that can be printed by a printing unit;
A first management step of managing a creation status of a plurality of intermediate data created in parallel by the intermediate data creation step in a first management table;
A second management step of managing, in a second management table, a rendering situation developed into a bitmap image by the development step based on the intermediate data managed by the first management table;
A first control step of, based on a change in the state of the first and second management tables, sequentially developing the intermediate data into a bitmap image from the object at which bitmap image development can be started and the development step being performed; When,
A print control method comprising:
アプリケーションから出力される描画情報を解析して印刷装置が解釈可能な情報を生成して印刷装置に転送するプリンタドライバにおける印刷制御方法であって、
前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを同時に複数作成可能な中間データ作成ステップと、
前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップと、
前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第1の管理テーブルで管理する第1の管理ステップと、
前記第1の管理テーブルにより管理される中間データに基づいて、前記展開ステップによりビットマップイメージに展開するレンダリング状況を第2の管理テーブルで管理する第2の管理ステップと、
前記第1,第2の管理テーブルの状態変化に基づいて、前記中間データの作成が完了してビットマップイメージ展開開始可能なオブジェクトから前記展開ステップにより順次ビットマップイメージに展開させる第2の制御ステップと、
を有することを特徴とする印刷制御方法。
A print control method in a printer driver that analyzes drawing information output from an application to generate information interpretable by the printing device and transfers the information to the printing device,
Analyzing the object in the drawing information, an intermediate data creating step capable of simultaneously creating a plurality of intermediate data for developing into a bitmap image,
A developing step of developing each intermediate data created by the intermediate data creating step into a bitmap image that can be printed by a printing unit;
A first management step of managing a creation status of a plurality of intermediate data created in parallel by the intermediate data creation step in a first management table;
A second management step of managing, in a second management table, a rendering situation developed into a bitmap image by the development step based on the intermediate data managed by the first management table;
A second control step of sequentially developing the bitmap image from an object for which the creation of the intermediate data is completed and a bitmap image can be started based on the state change of the first and second management tables into the bitmap image by the developing step When,
A print control method comprising:
前記描画情報は、オペレーティングシステムから発行されるGDI命令群で構成されることを特徴とする請求項3または4記載の印刷制御方法。The print control method according to claim 3, wherein the drawing information includes a group of GDI instructions issued from an operating system. 請求項4〜6のいずれかに記載の印刷制御方法を実現するプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。A computer-readable storage medium storing a program for realizing the print control method according to claim 4. 請求項4〜6のいずれかに記載の印刷制御方法を実現することを特徴とするプログラム。A program for realizing the print control method according to any one of claims 4 to 6.
JP2002194230A 2002-07-03 2002-07-03 Printer driver, printing control method, computer-readable storage medium, and program Pending JP2004038527A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002194230A JP2004038527A (en) 2002-07-03 2002-07-03 Printer driver, printing control method, computer-readable storage medium, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002194230A JP2004038527A (en) 2002-07-03 2002-07-03 Printer driver, printing control method, computer-readable storage medium, and program

Publications (1)

Publication Number Publication Date
JP2004038527A true JP2004038527A (en) 2004-02-05

Family

ID=31702972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002194230A Pending JP2004038527A (en) 2002-07-03 2002-07-03 Printer driver, printing control method, computer-readable storage medium, and program

Country Status (1)

Country Link
JP (1) JP2004038527A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010092472A (en) * 2008-09-30 2010-04-22 Konica Minolta Systems Lab Inc System and method for optimized printer throughput in multi-core environment
JP2013022889A (en) * 2011-07-25 2013-02-04 Canon Inc Image forming apparatus, control method for image forming apparatus, and program
US8782371B2 (en) 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US10209931B2 (en) 2017-07-06 2019-02-19 Kabushiki Kaisha Toshiba Image processing apparatus and image forming apparatus

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782371B2 (en) 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
JP2010092472A (en) * 2008-09-30 2010-04-22 Konica Minolta Systems Lab Inc System and method for optimized printer throughput in multi-core environment
US8861014B2 (en) 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
JP2013022889A (en) * 2011-07-25 2013-02-04 Canon Inc Image forming apparatus, control method for image forming apparatus, and program
US10209931B2 (en) 2017-07-06 2019-02-19 Kabushiki Kaisha Toshiba Image processing apparatus and image forming apparatus

Similar Documents

Publication Publication Date Title
US7884952B2 (en) Print control apparatus, print control method, and program for implementing the method
JP3747130B2 (en) Information processing apparatus, message display method, interface apparatus, and storage medium storing computer-readable program
US20070070403A1 (en) Information processing apparatus, information processing method, and program
US20030002063A1 (en) Printing control apparatus and printing control method capable of accurately printing embedded font
JPH09251361A (en) Information processor, information processing method, printing system and memory
JP3733284B2 (en) Information processing apparatus, printing system, and command generation method
JP2004038527A (en) Printer driver, printing control method, computer-readable storage medium, and program
JP2004192390A (en) Data processor
JP2006171861A (en) Information processor, printing method, recording medium and program
JP2005018494A (en) Data processor, method for creating print data, storage medium for storing computer readable program, and program
EP2284689B1 (en) PDL data processing device
JP4100912B2 (en) Information processing apparatus, control method therefor, program, and storage medium
JP2001312383A (en) Printer, high speed printing method and storage medium
JP3870042B2 (en) Print control apparatus and print control method
JP2008015563A (en) Printing control device, printing control method, program and recording medium
JP3962559B2 (en) Print control apparatus and print control method
EP2293180B1 (en) PDL data processing device and PDL data creating device
JP3209858B2 (en) Print control device and print control method
JPH10187390A (en) Information processor, data processing method for information processor and recording medium storing program that can be read by computer
JPH09212318A (en) Printing controller and method for processing data in printing controller
JP3347520B2 (en) Information processing apparatus, printer system, and print job processing method
JP2001347708A (en) Apparatus and method for outputting image and storage medium
JP2000155663A (en) Printing controller, data processing method for the printing controller and storage medium stored with computer readable program
JP2000298565A (en) Method and device for controlling printing and storage medium storing program for executing the printing controlling method
JPH10187375A (en) Printing controller and method for processing data of printing controller and storage medium for storing program readable by computer