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 PDFInfo
- 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
Links
Images
Abstract
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
[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
[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
[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
[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,
[0018]
[0019]
The
[0020]
The
[0021]
A cut sheet is used as the recording paper. The cut sheet recording paper is stored in a
[0022]
The
[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
[0026]
The program ROM of the
[0027]
[0028]
[0029]
[0030]
The
[0031]
Further, the
[0032]
In the
[0033]
The program ROM of the
[0034]
The font ROM of the
[0035]
The
[0036]
[0037]
In addition, access to the
[0038]
The
[0039]
Further, the
[0040]
In the printer control system configured as described above, the present invention resides in the
[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
[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
[0045]
Further, when the printer driver 310 receives a notification that the creation of the intermediate data by the intermediate
[0046]
The
[0047]
The intermediate
[0048]
Then, the
[0049]
The
[0050]
The
[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
[0052]
In FIG. 4,
[0053]
Taking
[0054]
The
[0055]
[0056]
For example, the
[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
[0061]
In the
[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
[0065]
In the
[0066]
In the
[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
[0068]
That is, the time from when the
[0069]
A
[0070]
A
[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
[0072]
Then, when the processing up to this point is completed, the printer driver 310 has completed the processing, and only the
[0073]
[0074]
The time from when the
[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
[0076]
However, for example, during the intermediate
[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
[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
[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
[0083]
A
[0084]
If the data is the beginning of a page, the control is transferred to the
[0085]
The
[0086]
Further, a
[0087]
The intermediate data creation function 414 is activated when the
[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
[0091]
The
[0092]
Even when the end of the page is determined in the
[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
[0094]
The
[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
[0097]
Actually, the intermediate
[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
[0099]
The thread management table is used for managing a plurality of intermediate data creation processes executed in parallel, and the
[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
[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
[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
[0109]
Since the line L2 also creates the intermediate
[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
[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
[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
[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
[0119]
Therefore,
[0120]
When this is compared with the conventional application release timing, the difference between the
[0121]
In FIG. 5, a
[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
[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
[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
[0126]
A
[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
[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
[0130]
The
[0131]
At the time t16, since the
[0132]
Here, the reason why the renderable ID is not “4” is because the state of the intermediate
[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
[0135]
The rendering management table 716 in the management table 405 at the time t17 shown in FIG. 7 includes an intermediate
[0136]
At the time t17, since the
[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
[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
[0140]
The rendering management table 718 in the management table 405 at the time t18 includes intermediate
[0141]
At the time t18, the
[0142]
At the time t18, the
[0143]
Further, the
[0144]
The rendering management table 719 in the management table 405 at the time t19 indicates that the
[0145]
Further, the rendering management table 720 in the management table 405 at the time t19 includes an intermediate
[0146]
At the time t19, the
[0147]
At the time t19, the
[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
[0149]
A
[0150]
Further, the rendering management table 721 in the management table 405 at the time t20 shows a state in which the
[0151]
The rendering management table 722 in the management table 405 at the time t20 includes an intermediate
[0152]
At the time t20, the
[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
[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
[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
[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
[0161]
In FIG. 8, an intermediate
[0162]
Since the intermediate
[0163]
This means that the
[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
[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
[0169]
Note that the thread management table is used for managing a plurality of parallelly executed intermediate data creation processes, and the
[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
[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
[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
[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
[0180]
Then, in a
[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
[0183]
In the first embodiment, when the
[0184]
A
[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
[0186]
The rendering management table 908 in the management table 405 at the time t83 indicates that the intermediate
[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
[0188]
The rendering management table 910 in the management table 405 at the time t84 is such that the creation processing of the intermediate
[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
[0190]
The difference between the
[0191]
A process 815 illustrated in FIG. 8 illustrates a rendering process of the first line L1 from time t82 to time t85. The
[0192]
A
[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
[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
[0196]
The rendering management table 914 in the management table 405 at the time t86 includes the creation processing of the intermediate
[0197]
A
[0198]
The thread management table 915 in the management table 405 at the time t87 shown in FIG. 9 shows a state where the
[0199]
The rendering management table 916 in the management table 405 at the time t87 includes the creation processing of the intermediate
[0200]
At the time t87, the
[0201]
The
[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
[0203]
The rendering management table 918 in the management table 405 at the time t88 includes the creation processing of the intermediate
[0204]
At the time t88, the
[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
[0206]
When the processing up to this point is completed, the printer driver 416 has completed the processing, and only sends the
[0207]
A
[0208]
The thread management table 917 in the management table 405 at the time t89 shown in FIG. 9 shows a state where the
[0209]
The rendering management table 920 in the management table 405 at the time t89 includes the creation processing of the intermediate
[0210]
Therefore, at the time t89, the
[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
[0213]
The difference between the
[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:
前記描画情報中のオブジェクトを解析して、ビットマップイメージに展開させるための中間データを複数作成可能な中間データ作成ステップと、
前記中間データ作成ステップにより作成される各中間データを印刷部が印刷可能なビットマップイメージに展開する展開ステップと、
前記中間データ作成ステップにより並行して作成される複数の中間データの作成状況を第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:
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)
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 |
-
2002
- 2002-07-03 JP JP2002194230A patent/JP2004038527A/en active Pending
Cited By (7)
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 |