JP2004303077A - 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 - Google Patents
情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 Download PDFInfo
- Publication number
- JP2004303077A JP2004303077A JP2003097189A JP2003097189A JP2004303077A JP 2004303077 A JP2004303077 A JP 2004303077A JP 2003097189 A JP2003097189 A JP 2003097189A JP 2003097189 A JP2003097189 A JP 2003097189A JP 2004303077 A JP2004303077 A JP 2004303077A
- Authority
- JP
- Japan
- Prior art keywords
- drawing command
- description language
- page description
- received
- entry
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1208—Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/121—Facilitating exception or error detection and recovery, e.g. fault, media or consumables depleted
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
- G06F3/1212—Improving printing performance achieving reduced delay between job submission and print start
- G06F3/1213—Improving printing performance achieving reduced delay between job submission and print start at an intermediate node or at the final node
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1245—Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】アプリケーションによる複雑なラスターオペレーション演算を出力サイズ、描画品質の両面で最適化し、それをサポートしないページ記述言語解釈系においても正常に描画することを可能とする。
【解決手段】情報処理装置であって、アプリケーションから受付けた描画命令が論理描画命令であるか否かを判定し、論理描画命令を受付けた判定された場合に、受付けた描画命令を保持すると共に参照テーブルのエントリと比較して一致するエントリの有無をさらに判定して、一致するエントリがあれば、対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成することを特徴とする。
【選択図】図3
【解決手段】情報処理装置であって、アプリケーションから受付けた描画命令が論理描画命令であるか否かを判定し、論理描画命令を受付けた判定された場合に、受付けた描画命令を保持すると共に参照テーブルのエントリと比較して一致するエントリの有無をさらに判定して、一致するエントリがあれば、対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成することを特徴とする。
【選択図】図3
Description
【0001】
【発明の属する技術分野】
本発明は情報処理装置上でのページ記述言語の生成に関し、特にパーソナルコンピュータ等の情報処理装置とプリンタ機器からなるシステムにおける、画像演算最適化法に関するものである。
【0002】
【従来の技術】
一般的に、情報処理装置で動作するオペレーティングシステム(OS)上の印刷システムにおいて、アプリケーションプログラムからの印刷データは論理描画命令として、印刷プログラムへと送信される。印刷プログラムは論理描画命令を解釈し、ページ記述言語を生成する。
【0003】
この際、アプリケーションは画像論理演算(ラスターオペレーション:以下ROP演算)を駆使して複雑な図形表現を行うことが可能である。しかし、ページ記述言語によってはこの複雑なROP演算をサポートできないものが存在し(通常、サポートしていない場合はすべて上書きとなる)、また、サポートしていたとしても逐次演算要素を出力することは冗長な描画命令を発行することになり、パフォーマンスの観点から問題となっている。
【0004】
【発明が解決しようとする課題】
このように、論理描画命令をサポートしないページ記述言語においては論理描画命令を実行した場合と同等の出力を得ることができなかった。また、画像論理演算に対応するページ記述言語であっても、冗長な描画命令の発行によるパフォーマンスの低下が避けられないものとなっている。
【0005】
そこで、本発明は、論理描画命令をサポートしないページ記述言語においても論理描画命令を実行した場合と同等の出力を得ることを可能とするとともに、冗長な描画命令を排して、出力を得るために必要な描画命令の数を低減することを目的とする。
【0006】
【課題を解決するための手段】
上記課題を解決するための本発明は、アプリケーションからの描画命令に基づいてページ記述言語を生成するページ記述言語生成方法であって、前記描画命令を受付ける描画命令受付け工程と、前記受付けた描画命令が論理描画命令であるか否かを判定する判定工程と、前記判定工程において前記受付けた描画命令が論理描画命令と判定された場合に、前記受付けた描画命令を保持する保持工程と、前記保持された描画命令を、前記描画命令の置換条件を登録する参照テーブルのエントリと比較する比較工程と、前記比較工程において一致するエントリがあると判定された場合に、前記一致するエントリに対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成する工程とを備える。
【0007】
【発明の実施の形態】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【0008】
図1は本発明の実施形態を示す印刷システムの構成を説明する概念図である。101は本発明にかかるページ記述言語を生成する印刷プログラムを含むページ記述言語生成部であり、102は印刷プログラムが生成したページ記述言語を解釈する解釈部である。解釈部はページ記述言語を解釈し、印刷を実現したり、あるいはページ記述言語の表示を行う単位である。
【0009】
図1の印刷システムを代表する構成としては図2に示すようなプリンタ印刷系がある。図2において、情報処理装置201がプリンタ機器202にネットワーク203を介して接続されている。情報処理装置上の印刷プログラムがページ記述言語生成部であり、ページ記述言語を解釈し、物理用紙に出力するプリンタ機器がページ記述言語解釈部となる。
【0010】
本実施形態においては図2に示すシステム構成に関して説明を行うが、102に示すページ記述言語解釈部がページ記述言語表示アプリケーションとして101と同じ情報処理装置上にある場合、また別の情報処理装置上にある場合においても、本発明を適用できることはいうまでもない。
【0011】
図3は図2を示すブロック図であり、3000は情報処理装置で、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理アプリケーション等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムデバイス4に接続される各デバイスをCPU1が総括的に制御する。
【0012】
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。
【0013】
5はキーボードコントローラ(KBC)で、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。6はVideoコントローラ(CRTC)で、CRTディスプレイ(CRT)や液晶ディスプレイ等の表示装置10の表示を制御する。
【0014】
7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、本発明にかかる印刷プログラム等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。
【0015】
8はプリンタコントローラ(PRTC)で、所定の双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0016】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、本発明にかかる印刷プログラムに対する印刷処理方法の設定を行える。
【0017】
プリンタ機器1500において、12はプリンタCPUで、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶されたページ記述言語を解釈する制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。
【0018】
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【0019】
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知可能に構成されている。19はCPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0020】
なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0021】
また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、本発明にかかるページ記述言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0022】
図4は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されている情報処理装置における典型的な印刷処理部の構成図である。アプリケーション401、グラフィックエンジン402、ページ記述言語生成部としての印刷プログラム403、およびシステムスプーラ404等のモジュールで構成され、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムである。
【0023】
また、アプリケーション401および印刷プログラム403は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション401はRAM2にロードされて実行されるが、このアプリケーション401からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力を行う。
【0024】
グラフィックエンジン402は印刷プログラム403と同様に外部メモリ11からRAM2にロードされ、アプリケーション401が描画する論理描画(例えば、Win32API)を印刷プログラム403が受け取る論理描画命令(DDI)に変換する。印刷プログラム403により生成されたページ記述言語はOSによってRAM2にロードされたシステムスプーラ404を経てインターフェース21経由でプリンタ1500へ出力される仕組みとなっている。
【0025】
図5a乃至図5cは本実施形態におけるアプリケーションからの印刷要求の一例を示している。ここでは縦3ピクセル×横3ピクセルの矩形で説明しているが、サイズやピクセルの深さ及び、画像やパスやテキスト等の描画属性を問わない。なお、各ピクセル中の表現は黒(”0”を意味する)、白(”1”を意味する)で示している。
【0026】
図5aにおいて、501はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、描画命令3、描画命令4、最後に印刷終了命令を行うことを示している。なお、描画命令1においては502の画像を出力するという命令、描画命令2においては先に出力した画像と画像503の排他的論理和演算(XOR)を行い、出力するという命令、描画命令3は先に出力した画像と画像504の論理積演算(AND)を行い出力するという命令、描画命令4は先に出力した画像と505の画像の排他的論理和(XOR)を行い出力するという命令である。506、507、508は各描画命令により出力されるべき画像である。
【0027】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は509のようになる。510は本実施形態に対応して置き換え描画命令となるところの画像である。
【0028】
図5bにおいては、511はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、描画命令3、最後に印刷終了命令を行うことを示している。なお、描画命令1においては512の画像を出力するという命令、描画命令2においては先に出力した画像515と画像513の論理積演算(AND)を行い、出力するという命令、描画命令3は先に出力した画像516と画像514の論理和演算(OR1)を行い出力するという命令である。
【0029】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は517のようになる。518は本実施形態に対応して置き換え描画命令となるところの画像である。
【0030】
図5cにおいては、521はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、最後に印刷終了命令を行うことを示している。なお、描画命令1においては522の画像を出力するという命令、描画命令2においては先に出力した画像524と画像523の論理和演算(OR2)を行い、出力するという命令である。
【0031】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は525のようになる。526は本実施形態に対応して置き換え描画命令となるところの画像である。
【0032】
このように、本実施形態に対応する本発明は、アプリケーションによる複雑なラスターオペレーション演算を出力サイズ、描画品質の両面で最適化し、それをサポートしないページ記述言語解釈系においても正常に描画することを可能とする。
【0033】
図6は本発明にかかる印刷プログラム403が静的に保持するROPリファレンステーブルである。ROPリファレンステーブルは複数のエントリをもち描画命令の置換条件を登録する。ここで601は各エントリを識別するアドレス領域、602はROP構造体が入る領域でこのROP構造体は任意の個数並ぶことが可能である。602におけるROP構造体の並び順は、印刷プログラム403において受付ける描画命令の受付け順序に対応するものである。また、条件式603は各ROP構造体の列が出力命令604で置き換えられるための条件を記述する領域である。
【0034】
図7はROPリファレンステーブルに記述されるROP構造体の構造を示している。701はROPの種類を記述する領域、702はテキストやグラフィック、イメージ等の描画種を格納する領域、703は描画を行っているアプリケーション名を格納する領域、704は描画のバウンディングサイズを格納する領域である。また、これらのエントリには705で示すような数々の属性を格納することが可能であるが、本実施形態においては省略する。
【0035】
図8は実際のROPの描画要求を格納するROPシーケンステーブルである。各要素は実際に描画が行われた順番のROP構造体(図7)が格納される。
【0036】
本実施形態において、アプリケーションは図5aから図5cに示すような論理描画命令を印刷プログラムに対して行うものとする。
【0037】
本発明における一般的な処理の流れを図9を参照して説明する。図9は、印刷プログラム403において実現されるページ記述言語生成処理の一例を記載したフローチャートである。
【0038】
まず始めにアプリケーション401からの印刷要求を受け付ける(S901)。ここでは、アプリケーション401からの印刷要求受付と記載しているが、印刷プログラム403側から見れば、グラフィックエンジン402からの論理描画命令をうけつけることとなる。なお、アプリケーション401からの印刷要求は、以後印刷ジョブ終了要求を受け取るまで処理は繰り返し実行される。
【0039】
印刷プログラム403では印刷要求が印刷ジョブ開始要求かどうかの判定を行い(S902)、ジョブ開始要求であった場合にはRAM2の空きメモリ上にROPシーケンステーブル(S903)、ROPリファレンステーブルを構築し(S904)、S901に戻る。S901における印刷要求が印刷ジョブ開始要求でなかった場合には、続いて、ROP関連要求かどうかの判別を行う(S905)。
【0040】
通常、ROP関連要求はアプリケーション401から行われ、ROP関連要求かどうかの判別は、印刷プログラム403において行われる。S905にてROP関連描画要求と判定された場合にはS906へ進み、ROPシーケンステーブルに追記する形でROP構造体を格納する。
【0041】
次にS907にてリファレンステーブルの参照を行う。ROPシーケンステーブルのROP構造体のエントリ列とROPリファレンステーブルのエントリ列を比較し、一致するエントリが存在し(S908)、且つ条件式603を満たせば(S911)、エントリに含まれる描画命令を604の置き換え描画命令で置き換えて出力する(S912)。この出力は、例えば、PDFファイル中のPDFコマンドとして出力することができる。
【0042】
もし、S908で一致するエントリがない場合には、S909において今後シーケンステーブルの内容がリファレンステーブルに一致する可能性があるか否かを判定し、一致可能性があると判定された場合にはS901に戻ってアプリケーション401からの次の描画要求を受け付ける。一致可能性の判定については後述する。
【0043】
一方、S909において今後エントリが一致する可能性がないと判定された場合はシーケンステーブルの内容を順番に、例えば、PDFファイル中のPDFコマンドとして出力し(S910)、シーケンステーブルをクリアして(S913)、S901へと戻る。
【0044】
S905にて、描画要求はROP関連要求でなければS914にて印刷終了命令かどうかを判断する。印刷終了命令でなければ描画命令を例えば、PDFファイル中のPDFコマンドとして出力し(S915)、S901へ戻る。S914においてアプリケーションからの印刷終了命令であったとき印刷処理を終了する。
【0045】
次に図9のフローチャートと対応して、アプリケーション401からの描画要求が図5の時の処理について詳細に説明する。アプリケーション401からの印刷要求において(S901)、アプリケーション401からの印刷要求は、以後、印刷終了命令を受け取るまで処理は繰り返し実行される。最初は印刷開始命令であるため、(S902)、RAMの空きメモリ上にROPシーケンステーブルを構築(S903)、及びROPリファレンステーブルを構築し(S904)、S901に戻る。
【0046】
図10はジョブ開始時に静的に印刷プログラムが構築するROPリファレンステーブルである。ここでは3通りのエントリを示しているが、これらはあくまで一例であって、ROPリファレンステーブルに登録されるエントリはこれらに限られるものではない。1001はテーブルのアドレスを示す値、1002は各エントリである。なお、個別のエントリは図11で示すように属性値を含んでいるものとするが、他の属性値を含んでいてもかまわない。
【0047】
また1003は条件式で、すべてのROP構造体の属性が一致したときに描画命令の置き換えを行うことを示している。また、1004は置き換えられる描画命令を示しており、アドレス0の場合、XOR2の画像要素がAND1の黒部分によりマスク処理(黒の部分の背景を透かせる)する描画命令を示している。より具体的には、図5aにおける画像510を描画する命令である。
【0048】
同様にして、アドレス1については、OR1のビット列をAND2の黒部分でマスク処理する描画命令を示している。より具体的には図5bの画像518を描画する命令である。さらに、アドレス2においては、OR2の白部分を描画する命令を示している。より具体的には、図5cの画像526を描画する命令である。
【0049】
S901に描画要求1を受け、印刷プログラム403はROP実現要求かの判別を行う。描画要求1は「COPY」であるのではROP描画関連要求ではないと判定され、(S905)、S915でそのまま出力される。
【0050】
次にS901にて描画命令2を受ける。S905にて本描画命令はROP関連要求と判断され、S906にて、ROPシーケンステーブルへの登録を行う。このときのROPシーケンステーブルの内容は図12(a)に示してある。次にS907にてROPリファレンステーブルの参照を行う。リファレンステーブルの中にはROPシーケンステーブルと一致するものはないためS909へ進む。
【0051】
S909では、一致の可能性を判定するが、ここでROPシーケンステーブルはROPリファレンステーブルのサブセットとなっており、将来の一致可能性があるため、一致可能性があると判定して(S909でYES)S901へと戻って次の描画要求を受ける。即ち一致可能性は、ROPリファレンステーブルにおける描画命令としてのROP構造体の種別及び描画命令としてのROP構造体を受付けた順序において、ROPシーケンステーブルに登録された描画命令と一致する部分があるか否かにおいて判定されるものである。
【0052】
S901では更に描画要求3を受付け、S905にてROP関連要求と判断されるとS906において、ROPシーケンステーブルへの登録が行われる。このときのROPシーケンステーブルの内容は図12(b)に示してある。
【0053】
次にS907にてROPリファレンステーブルの参照を行う。リファレンステーブルの中にはROPシーケンステーブルと一致するものはないためS909へ進む。ここでROPシーケンステーブルはROPリファレンステーブルのサブセットであるため、将来の一致可能性があり、S901へともどり、次の描画要求を受ける。次にS901にて描画命令4を受け取り、S905にてROP関連要求と判断される。
【0054】
906にて、ROPシーケンステーブルへの登録を行う。このときのROPシーケンステーブルの内容は図12(c)に示してある。次にS907にてROPリファレンステーブルの参照を行う。ここでROPシーケンステーブルとROPリファレンステーブルのアドレス0のエントリが完全に一致するため(S908)、且つ、ROP構造体のすべてが同じであり、条件式も満足するため(S911)、S912へ進み、描画命令2から描画命令4までを置き換える描画命令を出力する。このとき出力する描画命令はXOR2の画像505をAND1の画像504の黒の部分でマスクした画像の描画命令であり、より具体的には510に示す画像の描画命令である。描画命令1にて先に出力されている画像506に、画像510を上書きすれば図5の画像509と一致することが分かる。
【0055】
置き換え描画命令を出力した後は、S913にてROPシーケンステーブルをクリアし、S901にて更なる描画要求を受ける。描画命令ではなく印刷終了要求を受付けた場合には(S914においてYES)、印刷処理を終了する。
【0056】
以上のように、本実施形態に対応する発明によれば、仕様上論理演算ができないページ記述言語(例えば、PDFやPS等)であっても、上書きのみを実行することにより論理演算と同等の出力結果を得ることが可能となる。
【0057】
即ち、本実施形態に対応する本発明では図5aに示すような描画命令について、最初の描画命令1をそのまま”上書き”で例えば、PDFファイル中のPDFコマンドとして出力し、論理描画命令2、3、4は出力せずにキャッシュしておき、論理描画命令4まで受付けた時点で、複数の論理描画命令を単一の描画命令で置き換えて出力することにより、上書きのみに対応し論理描画ができない言語仕様でも同様な描画ができる。
【0058】
【第2の実施形態】
上記第1の実施形態では、ROP構造体属性について”画像”に特化して説明したが、ROPが適用可能な描画対象は画像に限られることなく、例えばパスやテキストにも適用可能である。これは、ビットのON/OFFを制御するのはデバイスの座標でも同じことだからである。
【0059】
例えば、上記実施形態の図5aにおいてROP描画がパス点を描画するグラフィックのシーケンスになる場合を考える。この場合、図5aのAND1の画像504に対応するパス描画の黒部分で、XOR2に対応するパス描画をマスクしたパス描画の命令により、描画命令2から描画命令4までを置換することにより、第1の実施形態と同様にしてパスであっても本発明を提供することができる。
【0060】
[その他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0061】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0062】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0063】
【発明の効果】
以上に説明したように、本発明に拠れば、論理描画命令をサポートしないページ記述言語においても論理描画命令を実行した場合と同等の出力を得ることを可能とするとともに、出力を得るために必要な描画命令の数を低減することできる。
【図面の簡単な説明】
【図1】本発明の実施形態に対応するにおけるシステム構成の一例を示す概念図である。
【図2】図1のシステムの一般的な例を示す図である。
【図3】本発明の実施形態に対応するシステムの詳細な構成の一例を示すブロック図である。
【図4】本発明の実施形態に対応する情報処理装置上の一般的な印刷処理部の一例を示す図である。
【図5a】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図5b】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図5c】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図6】本発明の実施形態に対応するROPリファレンステーブルの構成例を示す図である。
【図7】本発明の実施形態に対応するROP構造体の構成例を示す図である。
【図8】本発明の実施形態に対応するROPシーケンステーブルの構成例を示す図である。
【図9】本発明の実施形態に対応する処理の一例のフローチャートである。
【図10】本発明の実施形態におけるROPリファレンステーブルの一例である。
【図11】本発明の実施形態におけるROP構造体の一例である。
【図12】本発明の実施形態におけるROPシーケンステーブルの一例である。
【発明の属する技術分野】
本発明は情報処理装置上でのページ記述言語の生成に関し、特にパーソナルコンピュータ等の情報処理装置とプリンタ機器からなるシステムにおける、画像演算最適化法に関するものである。
【0002】
【従来の技術】
一般的に、情報処理装置で動作するオペレーティングシステム(OS)上の印刷システムにおいて、アプリケーションプログラムからの印刷データは論理描画命令として、印刷プログラムへと送信される。印刷プログラムは論理描画命令を解釈し、ページ記述言語を生成する。
【0003】
この際、アプリケーションは画像論理演算(ラスターオペレーション:以下ROP演算)を駆使して複雑な図形表現を行うことが可能である。しかし、ページ記述言語によってはこの複雑なROP演算をサポートできないものが存在し(通常、サポートしていない場合はすべて上書きとなる)、また、サポートしていたとしても逐次演算要素を出力することは冗長な描画命令を発行することになり、パフォーマンスの観点から問題となっている。
【0004】
【発明が解決しようとする課題】
このように、論理描画命令をサポートしないページ記述言語においては論理描画命令を実行した場合と同等の出力を得ることができなかった。また、画像論理演算に対応するページ記述言語であっても、冗長な描画命令の発行によるパフォーマンスの低下が避けられないものとなっている。
【0005】
そこで、本発明は、論理描画命令をサポートしないページ記述言語においても論理描画命令を実行した場合と同等の出力を得ることを可能とするとともに、冗長な描画命令を排して、出力を得るために必要な描画命令の数を低減することを目的とする。
【0006】
【課題を解決するための手段】
上記課題を解決するための本発明は、アプリケーションからの描画命令に基づいてページ記述言語を生成するページ記述言語生成方法であって、前記描画命令を受付ける描画命令受付け工程と、前記受付けた描画命令が論理描画命令であるか否かを判定する判定工程と、前記判定工程において前記受付けた描画命令が論理描画命令と判定された場合に、前記受付けた描画命令を保持する保持工程と、前記保持された描画命令を、前記描画命令の置換条件を登録する参照テーブルのエントリと比較する比較工程と、前記比較工程において一致するエントリがあると判定された場合に、前記一致するエントリに対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成する工程とを備える。
【0007】
【発明の実施の形態】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【0008】
図1は本発明の実施形態を示す印刷システムの構成を説明する概念図である。101は本発明にかかるページ記述言語を生成する印刷プログラムを含むページ記述言語生成部であり、102は印刷プログラムが生成したページ記述言語を解釈する解釈部である。解釈部はページ記述言語を解釈し、印刷を実現したり、あるいはページ記述言語の表示を行う単位である。
【0009】
図1の印刷システムを代表する構成としては図2に示すようなプリンタ印刷系がある。図2において、情報処理装置201がプリンタ機器202にネットワーク203を介して接続されている。情報処理装置上の印刷プログラムがページ記述言語生成部であり、ページ記述言語を解釈し、物理用紙に出力するプリンタ機器がページ記述言語解釈部となる。
【0010】
本実施形態においては図2に示すシステム構成に関して説明を行うが、102に示すページ記述言語解釈部がページ記述言語表示アプリケーションとして101と同じ情報処理装置上にある場合、また別の情報処理装置上にある場合においても、本発明を適用できることはいうまでもない。
【0011】
図3は図2を示すブロック図であり、3000は情報処理装置で、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理アプリケーション等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムデバイス4に接続される各デバイスをCPU1が総括的に制御する。
【0012】
また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。2はRAMで、CPU1の主メモリ、ワークエリア等として機能する。
【0013】
5はキーボードコントローラ(KBC)で、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。6はVideoコントローラ(CRTC)で、CRTディスプレイ(CRT)や液晶ディスプレイ等の表示装置10の表示を制御する。
【0014】
7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、本発明にかかる印刷プログラム等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。
【0015】
8はプリンタコントローラ(PRTC)で、所定の双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。
【0016】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、本発明にかかる印刷プログラムに対する印刷処理方法の設定を行える。
【0017】
プリンタ機器1500において、12はプリンタCPUで、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶されたページ記述言語を解釈する制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。
【0018】
また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ROM13のデータ用ROMにはハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【0019】
CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知可能に構成されている。19はCPU12の主メモリ、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。
【0020】
なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0021】
また、前述した外部メモリは1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、本発明にかかるページ記述言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【0022】
図4は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されている情報処理装置における典型的な印刷処理部の構成図である。アプリケーション401、グラフィックエンジン402、ページ記述言語生成部としての印刷プログラム403、およびシステムスプーラ404等のモジュールで構成され、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムである。
【0023】
また、アプリケーション401および印刷プログラム403は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション401はRAM2にロードされて実行されるが、このアプリケーション401からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力を行う。
【0024】
グラフィックエンジン402は印刷プログラム403と同様に外部メモリ11からRAM2にロードされ、アプリケーション401が描画する論理描画(例えば、Win32API)を印刷プログラム403が受け取る論理描画命令(DDI)に変換する。印刷プログラム403により生成されたページ記述言語はOSによってRAM2にロードされたシステムスプーラ404を経てインターフェース21経由でプリンタ1500へ出力される仕組みとなっている。
【0025】
図5a乃至図5cは本実施形態におけるアプリケーションからの印刷要求の一例を示している。ここでは縦3ピクセル×横3ピクセルの矩形で説明しているが、サイズやピクセルの深さ及び、画像やパスやテキスト等の描画属性を問わない。なお、各ピクセル中の表現は黒(”0”を意味する)、白(”1”を意味する)で示している。
【0026】
図5aにおいて、501はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、描画命令3、描画命令4、最後に印刷終了命令を行うことを示している。なお、描画命令1においては502の画像を出力するという命令、描画命令2においては先に出力した画像と画像503の排他的論理和演算(XOR)を行い、出力するという命令、描画命令3は先に出力した画像と画像504の論理積演算(AND)を行い出力するという命令、描画命令4は先に出力した画像と505の画像の排他的論理和(XOR)を行い出力するという命令である。506、507、508は各描画命令により出力されるべき画像である。
【0027】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は509のようになる。510は本実施形態に対応して置き換え描画命令となるところの画像である。
【0028】
図5bにおいては、511はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、描画命令3、最後に印刷終了命令を行うことを示している。なお、描画命令1においては512の画像を出力するという命令、描画命令2においては先に出力した画像515と画像513の論理積演算(AND)を行い、出力するという命令、描画命令3は先に出力した画像516と画像514の論理和演算(OR1)を行い出力するという命令である。
【0029】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は517のようになる。518は本実施形態に対応して置き換え描画命令となるところの画像である。
【0030】
図5cにおいては、521はアプリケーションからの描画要求の列を示しており、始めにアプリケーション印刷開始命令を行う。その後、描画命令1、描画命令2、最後に印刷終了命令を行うことを示している。なお、描画命令1においては522の画像を出力するという命令、描画命令2においては先に出力した画像524と画像523の論理和演算(OR2)を行い、出力するという命令である。
【0031】
したがって一連の描画要求に対して、アプリケーションにより求められる出力は525のようになる。526は本実施形態に対応して置き換え描画命令となるところの画像である。
【0032】
このように、本実施形態に対応する本発明は、アプリケーションによる複雑なラスターオペレーション演算を出力サイズ、描画品質の両面で最適化し、それをサポートしないページ記述言語解釈系においても正常に描画することを可能とする。
【0033】
図6は本発明にかかる印刷プログラム403が静的に保持するROPリファレンステーブルである。ROPリファレンステーブルは複数のエントリをもち描画命令の置換条件を登録する。ここで601は各エントリを識別するアドレス領域、602はROP構造体が入る領域でこのROP構造体は任意の個数並ぶことが可能である。602におけるROP構造体の並び順は、印刷プログラム403において受付ける描画命令の受付け順序に対応するものである。また、条件式603は各ROP構造体の列が出力命令604で置き換えられるための条件を記述する領域である。
【0034】
図7はROPリファレンステーブルに記述されるROP構造体の構造を示している。701はROPの種類を記述する領域、702はテキストやグラフィック、イメージ等の描画種を格納する領域、703は描画を行っているアプリケーション名を格納する領域、704は描画のバウンディングサイズを格納する領域である。また、これらのエントリには705で示すような数々の属性を格納することが可能であるが、本実施形態においては省略する。
【0035】
図8は実際のROPの描画要求を格納するROPシーケンステーブルである。各要素は実際に描画が行われた順番のROP構造体(図7)が格納される。
【0036】
本実施形態において、アプリケーションは図5aから図5cに示すような論理描画命令を印刷プログラムに対して行うものとする。
【0037】
本発明における一般的な処理の流れを図9を参照して説明する。図9は、印刷プログラム403において実現されるページ記述言語生成処理の一例を記載したフローチャートである。
【0038】
まず始めにアプリケーション401からの印刷要求を受け付ける(S901)。ここでは、アプリケーション401からの印刷要求受付と記載しているが、印刷プログラム403側から見れば、グラフィックエンジン402からの論理描画命令をうけつけることとなる。なお、アプリケーション401からの印刷要求は、以後印刷ジョブ終了要求を受け取るまで処理は繰り返し実行される。
【0039】
印刷プログラム403では印刷要求が印刷ジョブ開始要求かどうかの判定を行い(S902)、ジョブ開始要求であった場合にはRAM2の空きメモリ上にROPシーケンステーブル(S903)、ROPリファレンステーブルを構築し(S904)、S901に戻る。S901における印刷要求が印刷ジョブ開始要求でなかった場合には、続いて、ROP関連要求かどうかの判別を行う(S905)。
【0040】
通常、ROP関連要求はアプリケーション401から行われ、ROP関連要求かどうかの判別は、印刷プログラム403において行われる。S905にてROP関連描画要求と判定された場合にはS906へ進み、ROPシーケンステーブルに追記する形でROP構造体を格納する。
【0041】
次にS907にてリファレンステーブルの参照を行う。ROPシーケンステーブルのROP構造体のエントリ列とROPリファレンステーブルのエントリ列を比較し、一致するエントリが存在し(S908)、且つ条件式603を満たせば(S911)、エントリに含まれる描画命令を604の置き換え描画命令で置き換えて出力する(S912)。この出力は、例えば、PDFファイル中のPDFコマンドとして出力することができる。
【0042】
もし、S908で一致するエントリがない場合には、S909において今後シーケンステーブルの内容がリファレンステーブルに一致する可能性があるか否かを判定し、一致可能性があると判定された場合にはS901に戻ってアプリケーション401からの次の描画要求を受け付ける。一致可能性の判定については後述する。
【0043】
一方、S909において今後エントリが一致する可能性がないと判定された場合はシーケンステーブルの内容を順番に、例えば、PDFファイル中のPDFコマンドとして出力し(S910)、シーケンステーブルをクリアして(S913)、S901へと戻る。
【0044】
S905にて、描画要求はROP関連要求でなければS914にて印刷終了命令かどうかを判断する。印刷終了命令でなければ描画命令を例えば、PDFファイル中のPDFコマンドとして出力し(S915)、S901へ戻る。S914においてアプリケーションからの印刷終了命令であったとき印刷処理を終了する。
【0045】
次に図9のフローチャートと対応して、アプリケーション401からの描画要求が図5の時の処理について詳細に説明する。アプリケーション401からの印刷要求において(S901)、アプリケーション401からの印刷要求は、以後、印刷終了命令を受け取るまで処理は繰り返し実行される。最初は印刷開始命令であるため、(S902)、RAMの空きメモリ上にROPシーケンステーブルを構築(S903)、及びROPリファレンステーブルを構築し(S904)、S901に戻る。
【0046】
図10はジョブ開始時に静的に印刷プログラムが構築するROPリファレンステーブルである。ここでは3通りのエントリを示しているが、これらはあくまで一例であって、ROPリファレンステーブルに登録されるエントリはこれらに限られるものではない。1001はテーブルのアドレスを示す値、1002は各エントリである。なお、個別のエントリは図11で示すように属性値を含んでいるものとするが、他の属性値を含んでいてもかまわない。
【0047】
また1003は条件式で、すべてのROP構造体の属性が一致したときに描画命令の置き換えを行うことを示している。また、1004は置き換えられる描画命令を示しており、アドレス0の場合、XOR2の画像要素がAND1の黒部分によりマスク処理(黒の部分の背景を透かせる)する描画命令を示している。より具体的には、図5aにおける画像510を描画する命令である。
【0048】
同様にして、アドレス1については、OR1のビット列をAND2の黒部分でマスク処理する描画命令を示している。より具体的には図5bの画像518を描画する命令である。さらに、アドレス2においては、OR2の白部分を描画する命令を示している。より具体的には、図5cの画像526を描画する命令である。
【0049】
S901に描画要求1を受け、印刷プログラム403はROP実現要求かの判別を行う。描画要求1は「COPY」であるのではROP描画関連要求ではないと判定され、(S905)、S915でそのまま出力される。
【0050】
次にS901にて描画命令2を受ける。S905にて本描画命令はROP関連要求と判断され、S906にて、ROPシーケンステーブルへの登録を行う。このときのROPシーケンステーブルの内容は図12(a)に示してある。次にS907にてROPリファレンステーブルの参照を行う。リファレンステーブルの中にはROPシーケンステーブルと一致するものはないためS909へ進む。
【0051】
S909では、一致の可能性を判定するが、ここでROPシーケンステーブルはROPリファレンステーブルのサブセットとなっており、将来の一致可能性があるため、一致可能性があると判定して(S909でYES)S901へと戻って次の描画要求を受ける。即ち一致可能性は、ROPリファレンステーブルにおける描画命令としてのROP構造体の種別及び描画命令としてのROP構造体を受付けた順序において、ROPシーケンステーブルに登録された描画命令と一致する部分があるか否かにおいて判定されるものである。
【0052】
S901では更に描画要求3を受付け、S905にてROP関連要求と判断されるとS906において、ROPシーケンステーブルへの登録が行われる。このときのROPシーケンステーブルの内容は図12(b)に示してある。
【0053】
次にS907にてROPリファレンステーブルの参照を行う。リファレンステーブルの中にはROPシーケンステーブルと一致するものはないためS909へ進む。ここでROPシーケンステーブルはROPリファレンステーブルのサブセットであるため、将来の一致可能性があり、S901へともどり、次の描画要求を受ける。次にS901にて描画命令4を受け取り、S905にてROP関連要求と判断される。
【0054】
906にて、ROPシーケンステーブルへの登録を行う。このときのROPシーケンステーブルの内容は図12(c)に示してある。次にS907にてROPリファレンステーブルの参照を行う。ここでROPシーケンステーブルとROPリファレンステーブルのアドレス0のエントリが完全に一致するため(S908)、且つ、ROP構造体のすべてが同じであり、条件式も満足するため(S911)、S912へ進み、描画命令2から描画命令4までを置き換える描画命令を出力する。このとき出力する描画命令はXOR2の画像505をAND1の画像504の黒の部分でマスクした画像の描画命令であり、より具体的には510に示す画像の描画命令である。描画命令1にて先に出力されている画像506に、画像510を上書きすれば図5の画像509と一致することが分かる。
【0055】
置き換え描画命令を出力した後は、S913にてROPシーケンステーブルをクリアし、S901にて更なる描画要求を受ける。描画命令ではなく印刷終了要求を受付けた場合には(S914においてYES)、印刷処理を終了する。
【0056】
以上のように、本実施形態に対応する発明によれば、仕様上論理演算ができないページ記述言語(例えば、PDFやPS等)であっても、上書きのみを実行することにより論理演算と同等の出力結果を得ることが可能となる。
【0057】
即ち、本実施形態に対応する本発明では図5aに示すような描画命令について、最初の描画命令1をそのまま”上書き”で例えば、PDFファイル中のPDFコマンドとして出力し、論理描画命令2、3、4は出力せずにキャッシュしておき、論理描画命令4まで受付けた時点で、複数の論理描画命令を単一の描画命令で置き換えて出力することにより、上書きのみに対応し論理描画ができない言語仕様でも同様な描画ができる。
【0058】
【第2の実施形態】
上記第1の実施形態では、ROP構造体属性について”画像”に特化して説明したが、ROPが適用可能な描画対象は画像に限られることなく、例えばパスやテキストにも適用可能である。これは、ビットのON/OFFを制御するのはデバイスの座標でも同じことだからである。
【0059】
例えば、上記実施形態の図5aにおいてROP描画がパス点を描画するグラフィックのシーケンスになる場合を考える。この場合、図5aのAND1の画像504に対応するパス描画の黒部分で、XOR2に対応するパス描画をマスクしたパス描画の命令により、描画命令2から描画命令4までを置換することにより、第1の実施形態と同様にしてパスであっても本発明を提供することができる。
【0060】
[その他の実施形態]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0061】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0062】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0063】
【発明の効果】
以上に説明したように、本発明に拠れば、論理描画命令をサポートしないページ記述言語においても論理描画命令を実行した場合と同等の出力を得ることを可能とするとともに、出力を得るために必要な描画命令の数を低減することできる。
【図面の簡単な説明】
【図1】本発明の実施形態に対応するにおけるシステム構成の一例を示す概念図である。
【図2】図1のシステムの一般的な例を示す図である。
【図3】本発明の実施形態に対応するシステムの詳細な構成の一例を示すブロック図である。
【図4】本発明の実施形態に対応する情報処理装置上の一般的な印刷処理部の一例を示す図である。
【図5a】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図5b】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図5c】本発明の実施形態に対応するアプリケーション401からの描画命令の一例である。
【図6】本発明の実施形態に対応するROPリファレンステーブルの構成例を示す図である。
【図7】本発明の実施形態に対応するROP構造体の構成例を示す図である。
【図8】本発明の実施形態に対応するROPシーケンステーブルの構成例を示す図である。
【図9】本発明の実施形態に対応する処理の一例のフローチャートである。
【図10】本発明の実施形態におけるROPリファレンステーブルの一例である。
【図11】本発明の実施形態におけるROP構造体の一例である。
【図12】本発明の実施形態におけるROPシーケンステーブルの一例である。
Claims (16)
- アプリケーションからの描画命令に基づいてページ記述言語を生成するページ記述言語生成方法であって、
前記描画命令を受付ける描画命令受付け工程と、
前記受付けた描画命令が論理描画命令であるか否かを判定する判定工程と、
前記判定工程において前記受付けた描画命令が論理描画命令と判定された場合に、前記受付けた描画命令を保持する保持工程と、
前記保持された描画命令を、前記描画命令の置換条件を登録する参照テーブルのエントリと比較する比較工程と、
前記比較工程において一致するエントリがあると判定された場合に、前記一致するエントリに対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成する工程と
を備えることを特徴とするページ記述言語生成方法。 - 前記比較工程において一致するエントリが無いと判定された場合に、前記保持工程において保持された描画命令を、前記描画命令受付け工程において受付けたシーケンスに従って出力し、ページ記述言語を生成する工程をさらに備えることを特徴とする請求項1に記載のページ記述言語生成方法。
- 前記比較工程は、前記参照テーブルのエントリとの一致の可能性を判定する一致可能性判定工程を備え、
前記一致可能性判定工程において前記一致の可能性があると判定された場合には、前記受付けた描画命令をの保持を継続し、前記描画命令受付け工程において新たな描画命令を受付けることを特徴とする請求項1又は請求項2に記載のページ記述言語生成方法。 - 前記参照テーブルのエントリには、描画命令の種別、描画命令を受付けた順序、及び描画命令についての条件が前記置換条件として含まれることを特徴とする請求項1乃至請求項3のいずれか1項に記載のページ記述言語生成方法。
- 前記比較工程では、前記参照テーブルにおける前記描画命令の種別、前記描画命令の受付けた順序、及び描画命令についての条件が、前記保持された描画命令について一致するか否かにおいて、エントリとの一致を判定することを特徴とする請求項4に記載のページ記述言語生成方法。
- 前記一致可能性判定工程では、前記参照テーブルにおける前記描画命令の種別及び前記描画命令の受付けた順序において、前記保持された描画命令と一致する部分があるか否かにおいて、前記一致の可能性を判定することを特徴とする請求項4又は請求項5に記載のページ記述言語生成方法。
- 前記判定工程において前記受付けた描画命令が論理描画命令ではない判定された場合には、前記受付けた描画命令を置換することなく出力し、ページ言語を生成することを特徴とする請求項1乃至請求項6のいずれか1項に記載のページ記述言語生成方法。
- 請求項1乃至請求項7のいずれか1項に記載のページ記述言語生成方法をコンピュータに実行させるためのページ記述言語生成プログラム。
- 請求項8に記載のページ記述言語生成プログラムを格納するコンピュータで読取り可能な記憶媒体。
- アプリケーションからの描画命令に基づいてページ記述言語を生成するページ記述言語生成部を備える情報処理装置であって、前記ページ記述言語生成部は、
前記描画命令を受付ける描画命令受付け手段と、
前記受付けた描画命令が論理描画命令であるか否かを判定する判定手段と、
前記判定手段において前記受付けた描画命令が論理描画命令と判定された場合に、前記受付けた描画命令を保持する保持手段と、
前記保持された描画命令を、前記描画命令の置換条件を登録する参照テーブルのエントリと比較する比較手段と、
前記比較手段において一致するエントリがあると判定された場合に、前記一致するエントリに対応する描画命令と置換される置換描画命令を出力して、ページ記述言語を生成する手段と
を備えることを特徴とする情報処理装置。 - 前記ページ記述言語生成部において、
前記比較手段において一致するエントリが無いと判定された場合に、前記保持手段において保持された描画命令を、前記描画命令受付け手段において受付けたシーケンスに従い出力し、ページ記述言語を生成する手段をさらに備えることを特徴とする請求項10に記載の情報処理装置。 - 前記ページ記述言語生成部において、
前記比較手段は、前記参照テーブルのエントリとの一致の可能性を判定する一致可能性判定手段を備え、
前記一致可能性判定手段において前記一致の可能性があると判定された場合には、前記受付けた描画命令をの保持を継続し、前記描画命令受付け手段において新たな描画命令を受付けることを特徴とする請求項10又は請求項11に記載の情報処理装置。 - 前記ページ記述言語生成部において、
前記参照テーブルのエントリには、描画命令の種別、描画命令を受付けた順序、及び描画命令についての条件が前記置換条件として含まれることを特徴とする請求項10乃至請求項2のいずれか1項に記載の情報処理装置。 - 前記ページ記述言語生成部において、
前記比較手段では、前記参照テーブルにおける前記描画命令の種別、前記描画命令の受付けた順序、及び描画命令についての条件が、前記保持された描画命令について一致するか否かにおいて、エントリとの一致を判定することを特徴とする請求項13に記載の情報処理装置。 - 前記ページ記述言語生成部において、
前記一致可能性判定手段では、前記参照テーブルにおける前記描画命令の種別及び前記描画命令の受付けた順序において、前記保持された描画命令と一致する部分があるか否かにおいて、前記一致の可能性を判定することを特徴とする請求項13又は請求項14に記載の情報処理装置。 - 前記ページ記述言語生成部において、
前記判定手段において前記受付けた描画命令が論理描画命令ではない判定された場合には、前記受付けた描画命令を置換することなく出力し、ページ言語を生成することを特徴とする請求項10乃至請求項15のいずれか1項に記載の情報処理装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003097189A JP2004303077A (ja) | 2003-03-31 | 2003-03-31 | 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 |
| US10/813,406 US7375833B2 (en) | 2003-03-31 | 2004-03-29 | Information processing device, page description language generating method, program, and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003097189A JP2004303077A (ja) | 2003-03-31 | 2003-03-31 | 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004303077A true JP2004303077A (ja) | 2004-10-28 |
Family
ID=32985512
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003097189A Withdrawn JP2004303077A (ja) | 2003-03-31 | 2003-03-31 | 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7375833B2 (ja) |
| JP (1) | JP2004303077A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007076337A (ja) * | 2005-09-16 | 2007-03-29 | Ricoh Co Ltd | 画像処理装置、画像処理方法、および画像処理用プログラム |
| JP2015005204A (ja) * | 2013-06-21 | 2015-01-08 | キヤノン株式会社 | 情報処理装置、その装置の制御方法、プログラム |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7788414B2 (en) * | 2007-01-16 | 2010-08-31 | Lantiq Deutschland Gmbh | Memory controller and method of controlling a memory |
| JP5728946B2 (ja) * | 2011-01-05 | 2015-06-03 | セイコーエプソン株式会社 | 制御装置、制御装置の制御方法、及び、プログラム |
| US9452350B1 (en) | 2012-11-14 | 2016-09-27 | Kabam, Inc. | Substitution of game commands with different replacement commands at client devices using substitution reference sets |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE4226052C2 (de) * | 1991-08-06 | 1996-12-05 | Hitachi Ltd | Drucksteuerungsverfahren und -gerät, die eine Vielzahl von Prozessoren verwenden |
| US6891632B2 (en) * | 1998-07-17 | 2005-05-10 | Peerless Systems, Inc. | Method and apparatus for selecting print strategy for optimal performance |
-
2003
- 2003-03-31 JP JP2003097189A patent/JP2004303077A/ja not_active Withdrawn
-
2004
- 2004-03-29 US US10/813,406 patent/US7375833B2/en active Active
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007076337A (ja) * | 2005-09-16 | 2007-03-29 | Ricoh Co Ltd | 画像処理装置、画像処理方法、および画像処理用プログラム |
| US8159684B2 (en) | 2005-09-16 | 2012-04-17 | Ricoh Company, Limited | Image processing apparatus, image processing method, and computer program product each to process a plurality of printer languages |
| JP2015005204A (ja) * | 2013-06-21 | 2015-01-08 | キヤノン株式会社 | 情報処理装置、その装置の制御方法、プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US7375833B2 (en) | 2008-05-20 |
| US20040190010A1 (en) | 2004-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6919967B1 (en) | Printing performance enhancements for variable data publishing | |
| US7064849B1 (en) | Data processing apparatus adaptable to plural environments and data processing method | |
| US7884952B2 (en) | Print control apparatus, print control method, and program for implementing the method | |
| JP2004050722A (ja) | 印刷装置 | |
| JP2009140295A (ja) | 描画装置、印刷装置、描画方法、及びプログラム | |
| JP2000083161A (ja) | 画像処理装置及びその方法、及び画像処理システム | |
| KR101383564B1 (ko) | 화상형성장치 및 화상형성방법 | |
| JP4164488B2 (ja) | 情報漏洩抑止方法及びそれを実現する情報処理装置とドライバプログラム | |
| JP2004303077A (ja) | 情報処理装置及びページ記述言語生成方法、プログラム及び記憶媒体 | |
| JP2004126940A (ja) | 情報処理装置、情報処理方法、情報処理システム、プログラム、及び記憶媒体 | |
| JP2001260498A (ja) | 印刷装置及びその制御方法 | |
| JP4100912B2 (ja) | 情報処理装置及びその制御方法、プログラム並びに記憶媒体 | |
| JP2010125810A (ja) | 情報処理装置、データ処理方法、プログラム及び記憶媒体 | |
| JP2006178622A (ja) | 文書変換方法、文書変換装置、及びプログラム | |
| JP3483348B2 (ja) | 印刷システムおよび印刷システムの記録所要時間呈示方法 | |
| JP4478310B2 (ja) | 情報処理装置およびデータ処理方法および記憶媒体 | |
| JP2009289121A (ja) | 情報処理装置、出力装置、出力処理方法、及びプログラム | |
| JP7480612B2 (ja) | 画像処理装置、画像形成装置およびプログラム | |
| JP2004193876A (ja) | 画像処理方法 | |
| JP3387796B2 (ja) | 印刷制御装置および印刷制御装置のデータ処理方法 | |
| JP2008269260A (ja) | データ処理装置、データ処理方法及びそのプログラム | |
| JP2003015849A (ja) | 印刷制御装置及び印刷制御方法 | |
| JP2000298565A (ja) | 印刷制御方法及び装置と前記印刷制御方法を実行するプログラムを記憶した記憶媒体 | |
| JPH09146521A (ja) | 出力制御装置及び方法 | |
| US8817318B2 (en) | Printer |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060606 |