JP3754975B2 - 情報処理装置及び情報処理方法 - Google Patents

情報処理装置及び情報処理方法 Download PDF

Info

Publication number
JP3754975B2
JP3754975B2 JP2003388478A JP2003388478A JP3754975B2 JP 3754975 B2 JP3754975 B2 JP 3754975B2 JP 2003388478 A JP2003388478 A JP 2003388478A JP 2003388478 A JP2003388478 A JP 2003388478A JP 3754975 B2 JP3754975 B2 JP 3754975B2
Authority
JP
Japan
Prior art keywords
complexity
area
drawing command
image
clip
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.)
Expired - Fee Related
Application number
JP2003388478A
Other languages
English (en)
Other versions
JP2005149325A (ja
Inventor
淳一 宮田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003388478A priority Critical patent/JP3754975B2/ja
Priority to US10/977,287 priority patent/US7259770B2/en
Publication of JP2005149325A publication Critical patent/JP2005149325A/ja
Application granted granted Critical
Publication of JP3754975B2 publication Critical patent/JP3754975B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、たとえば複雑なデータを主力する際でも処理量を増大させずに処理効率を高い水準で維持し続けることが可能な情報処理装置及び情報処理方法に関するものである。
従来の印刷システムにおける印刷制御方法および処理の流れについて説明する。パーソナルコンピュータ等の汎用情報処理装置(以下、ホストコンピュータ)とプリンタは、米国セントロニクス社仕様のパラレルインターフェース、RS−232C等のシリアルインターフェース、或いは、ネットワークインターフェース、更には、USB(Universal Serial Bus)インターフェース等で接続するのが一般的である。
ホスト・コンピュータ側では、ワードプロセッサや表計算のようなアプリケーションソフトウェア(以下、単にアプリケーションという。)がウインドウズ(米国マイクロソフト社の登録商標)のようないわゆる基本ソフト(OS:オペレーティングシステム)の上で動作している。アプリケーションにおいて印刷を行う場合は、そのプログラム内から、基本ソフトが提供するいくつかのサブシステムのうち、グラフィック・サブ・システムの機能を用いて行う。グラフィック・サブ・システムは、例えばウインドウズ(登録商標)では、GDI(Graphic Device Interface)と呼ばれておりディスプレイやプリンタに対する画像情報の処理を司っている。GDIは、ディスプレイやプリンタといった各デバイス毎の依存性を吸収するためにデバイスドライバと呼ばれるモジュールを動的にリンクし、それぞれのデバイスに対する出力処理を行う。プリンタに対するこのモジュールはプリンタ・ドライバと呼ばれる。プリンタ・ドライバでは、その能力や機能などに応じてあらかじめデバイスドライバに実装することが決められているDDI(Device Driver Interface)と呼ばれる関数群を用意する必要がある。アプリケーションのAPI(Application Programing Interface)コールをGDIがデバイスドライバ用にデータ変換を行い、このDDI関数群が適宜GDIからコールされ所定の印刷処理が実行されるような仕組みになっている。GDIでは、このようにプリンタ・ドライバを介してアプリケーションからの印刷要求をシーケンシャルに処理している。
プリンタ・ドライバはその使用用途によりプリンタ出力系とファイル出力系に大別できる。プリンタ出力系とは、印刷装置側にPDL(Printer Description Language)と呼ばれる制御コマンドを処理可能なコントローラを搭載するもの向けで、システムからDDI関数を介して渡される描画命令をPDLのコマンドに変換し、プリンタ機器に印刷を行う。
一方、ファイル出力系では、印刷装置側にデータを送ることが直接的な目的ではなく、DDI関数から受け取った描画命令を予め定義された中間フォーマット形式に変換し、ホストコンピュータのディスクシステム上に中間ファイルとして蓄積するものである。この代表的な中間フォーマットにはPDF(Portable Document Format)やSVG(Scalable Vector Graphics)等が存在する。中間ファイルはホストコンピュータ上のファイルシステム上に保存され、中間フォーマットを解釈可能な特定のアプリケーションプログラムによりホストコンピュータ上で表示され、ユーザの指示により再びグラフィック・サブ・システムを介して印刷装置に印刷を行うことが可能である。
前述したDDI関数は主に「文字系」「グラフィックス系」「イメージ系」の3種類の論理描画要求に大別される。ここではマイクロソフト社のウインドウズ(登録商標)システムの、イメージ系描画関数について説明を行うが、他の「文字系」、「グラフィックス系」の論理描画要求に対しても同様のことが言える。通常、論理描画要求に対して、アプリケーションにより決定された描画属性に基づいて、有効描画領域を定義するクリッピング領域内に画像が描画される。
ここで、イメージ系描画要求に関して、図1Aを用いて、目的画像100を描画するために、画像データとクリップ領域とが組み合わされた場合の描画命令を説明する。図1Aは、画像データ101とクリップ領域102とを組みあわせた描画命令のデータ例(描画命令のパラメータの一部をイメージで示した例)である。図では描画命令自体は省略した。画像データ101は斜線で記述された一枚の矩形画像を示している。また、クリップ領域102は、アプリケーションにより設定された有効な画素範囲を示すクリップ領域である。この場合の描画命令は、画像データ101とクリップ領域102とを組み合わせ、画像データ101をクリップ領域102でクリップして得られる画像を生成する旨の描画命令となる。
従来、アプリケーションが画像データをクリップするクリップ領域を指定し、グラフィック・サブ・システムを用いて印刷する場合、プリンタ・ドライバは、渡された画像データ及び指定されたクリップ領域を、DDI関数を介して渡される描画命令に従って生成し、出力を行う。つまり、通常、プリンタ・ドライバが生成する出力は、画像103を出力する描画命令及びクリップ領域104を定義するクリップ指定命令である。
現在、グラフィック・サブシステムの高機能化により、アプリケーションでは高階調、高解像度の複雑な描画表現が可能になっている。複雑な描画データの中には、プリンタ・ドライバが扱う600dpi印刷装置の座標空間では、クリップ領域が1万点を超える座標点から構成されるようなデータも少なくはない。近年、パーソナルコンピュータ本体、プリンタの性能/パフォーマンスアップが大幅に進んでいるが、複雑な描画命令をプリンタドライバが出力することはその後のプリンタ機器やアプリケーション等の処理系を圧迫し、パフォーマンスの重大な劣化を引き起こす場合がある。
特開2003-029938号公報
前述のようにDDIから渡された論理描画要求に対して、元画像101及びクリップ領域102を、画像データ103、クリップ領域104のように各々出力することは、複雑な座標点で定義されたクリップ領域をもつ画像を出力する場合、座標点が増大し、プリンタ・ドライバ出力データサイズの肥大化を引き起こす。このことは、プリンタ・ドライバ出力データの処理系システム(すなわち、プリンタにおけるコマンド解析部や描画処理実行部などや、コンピュータにおける出力データ表示におけるグラフィックエンジンなど)を圧迫し、印刷システム全体で重大なパフォーマンス劣化を引き起こす可能性がある。
本発明は上記従来例に鑑みてなされたもので、以下の構成を備える。
論理描画命令に基づいて所定形式のデータを生成する情報処理装置であって、
前記論理描画命令およびそのパラメータに基づいて、当該論理描画命令の複雑度を決定する複雑度決定手段と、
前記複雑度に応じて、描画領域を定義する描画命令とクリップ領域を定義するクリップ領域出力命令とを含む第1の出力データと、前記クリップ領域により前記描画領域をクリップした画像領域を構成する矩形領域を描画する描画命令を含む第2の出力データと、前記描画領域を、前記クリップ領域以外の領域に対応するマスクデータでマスクする描画命令を含む第3の出力データのいずれかの出力データを生成するデータ生成手段とを備える。
さらに好ましくは、前記複雑度決定手段は、前記論理描画命令の種類に応じた定数、または、前記論理描画命令のパラメータとして含まれる画像のクリップ領域の輪郭点の数に応じて複雑度を決定する。
さらに好ましくは、前記データ生成手段は、前記複雑度が、第1の閾値未満であれば前記第1の出力データを、第1の閾値以上第2の閾値未満であれば前記第2の出力データを、第2の閾値以上であれば前記第3の出力データを生成する。
あるいは、論理描画命令に基づいて所定形式のデータを生成する情報処理装置であって、
前記論理描画命令の種類ごとの定数または当該論理描画命令のパラメータに含まれる画像のクリップ領域の輪郭点の数を、当該論理描画命令の複雑度として決定する複雑度決定手段と、
前記複雑度が第1の閾値未満であれば、前記描画命令に含まれる描画領域を定義する描画命令と前記クリップ領域を定義するクリップ領域出力命令とを含む第1の出力データを生成し、前記複雑度が前記第1の閾値以上第2の閾値未満であれば、前記クリップ領域により前記描画領域をクリップした画像領域を分割した矩形領域それぞれを描画する描画命令を含む第2の出力データを生成し、前記複雑度が前記第2の閾値以上であれば、前記クリップ領域以外の領域をマスクするためのマスクデータを生成して、該マスクデータと前記画像領域との論理積として得られる画像を描画する描画命令を含む第3の出力データを生成するデータ生成手段とを備える。
本発明によれば、上位プログラムから受けた論理描画命令に基づいて、当該命令の種類および論理描画領域の少なくともいずれかから複雑度を求め、その複雑度から最適な出力データを得ることができる最適な処理手法を決定し、画像出力システム全体としての処理能力を向上させることができる。ここで最適な出力データとは、同一の画像を形成するために、当該出力データに対する処理量が最小となるようなデータである。
<発明の概要>
上記課題解決のための本発明のプリンタ・ドライバの構成の概要を先ず説明する。本発明に係るプリンタドライバは、DDIより渡された元画像及びクリップ領域に対して、クリップ領域を最適化する2つの手法を提供する。第1は、DDIにより指定されたクリップ領域による元画像の切り抜き作業をプリンタ・ドライバ内で行うことで、クリップ領域が存在しない出力画像を生成し、出力を簡素化する手法である。この例を図1Bの画像105、106、107に示している。プリンタ・ドライバにより画像103をクリップ領域104で予め切り抜くことで得られた3つの画像105、106、107がプリンタ・ドライバから出力される。この方式においては、クリップ領域の複雑度が小さい単純な画像に関してはクリップ領域が出力されないため、最適化される。
この第1の方法では、元画像に細かいクリップ領域が膨大に存在した場合、出力される画像数が多くなり、結果として描画すべき画像オブジェクト数が増大し、パフォーマンスの劣化を招く場合も考えられる。
そこで、本発明においてはクリップ領域を最適化する第2の方法も提供する。この方法を図1Cに示す。クリップ領域104を、クリップ領域とそのほかの領域とを識別するためのビットマスク画像109に変換し、元画像103とをマスク画像109によりマスクする命令、たとえば論理積命令をプリンタ・ドライバは生成する。マスクデータ109は、元画像103と同サイズのビットマップ画像のうち、クリップ領域104で定義された有効画素領域(マスク処理により残される領域)以外の部分をマスク領域(図の黒部分)として定義したものである。そして、プリンタドライバは、元画像103のうちマスクデータ109の有効画素領域を残すようにマスク処理する命令を出力することで所望の出力結果を得ることが可能になる。具体的には、有効画素領域を1、マスク領域を0とするマスクデータを作成し、元画像103とマスクデータ109との論理積を計算する命令を出力する。
[第1実施形態]
以下、図面に従って本発明に係る第1の方法についての実施形態を詳細に説明する。図2は本発明の実施形態を示すシステムにおける典型的なブロック図である。図2において、ホストコンピュータ100(パーソナルコンピュータ等)がプリンタ機器107にネットワーク21を介して接続されている。
<本実施形態の文書処理システムのハードウェア構成例>
図7は本実施形態の文書処理システムの構成を説明するブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても本発明を適用できる。
図7において、ホストコンピュータ100は、CPU201やRAM202、ROM203等を備える。CPU201は、ROM203のプログラム用ROMあるいは外部メモリ211に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行する。またCPU201は、システムバス204に接続される各デバイスを総括的に制御する。また、ROM203のプログラム用ROM領域あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM203のフォント用ROM領域あるいは外部メモリ211には上記文書処理の際に使用するフォントデータ等を記憶し、ROM203のデータ用ROM領域あるいは外部メモリ211には上記文書処理等を行う際に使用する各種データを記憶する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。
キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ(CRT)210の表示を制御する。ディスクコントローラ(DKC)207は、ハードディスク(HD)やフロッピー(登録商標)ディスク(FD)等の外部メモリ211とのアクセスを制御する。外部メモリ111には、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等が記憶される。プリンタコントローラ(PRTC)208は、双方向性インタフェイス(インタフェイス)21を介してプリンタ107に接続されて、プリンタ107との通信制御処理を実行する。
なお、CPU201は、例えばRAM202上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT210上でのWYSIWYGを可能としている。また、CPU201は、CRT210上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、プリンタドライバにより提供される印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
プリンタ107は、CPU312により制御される。プリンタCPU312は、ROM313のプログラム用ROM領域に記憶された制御プログラム等あるいは外部メモリ314に記憶された制御プログラム等に基づいてシステムバス315に接続される印刷部(プリンタエンジン)317に出力情報としての画像信号を出力する。また、このROM313のプログラムROM領域には、CPU312の制御プログラム等を記憶する。ROM313のフォント用ROM領域には上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM313のデータ用ROM領域には、ハードディスク等の外部メモリ314がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。
CPU312は入力部318を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ100に通知できる。RAM319は、CPU312の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM319は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ314は、メモリコントローラ(MC)320によりアクセスを制御される。外部メモリ314は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、318は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
また、外部メモリ314は1個に限らず、複数個備えられ、内蔵フォントに加えてオプションカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作部321からのプリンタモード設定情報を記憶するようにしてもよい。
<本実施形態のシステムのソフトウエア構成>
図3は、図2に示すホスト・コンピュータ(パーソナルコンピュータ等)、プリンタ機器のブロック図である。この構成は、図7の構成において所定のプログラムをコンピュータとプリンタのそれぞれで実行することで実現される。ホストコンピュータ100上では、アプリケーションの動作を行うのは勿論、要求されたプリントデータ及び制御コードから成る印刷情報を印刷装置107に出力する。すなわち、オペレーティングシステムやプリンタドライバがホストコンピュータ100において動作する。
ホスト・コンピュータ100は、マウス、キーボード等の入力デバイス、ディスプレイ・モニタを合わせた一つのコンピュータ・システムとして構成されている。ここでは、ホスト・コンピュータ201は、ウインドウズ2000(登録商標),ウインドウズMe(登録商標)などのオペレーティングシステム(OS)によって動作している。用いることのできるOSはこれらに限られるものではないが、本実施形態ではウインドウズにおけるグラフィックエンジンの命令を用いて具体例を説明する。多くのオペレーティングシステムでは入出力は仮想化されており、具体的なコマンドこそ異なるものの、技術思想の上では、本実施形態を他のオペレーティングシステムに適用することで、本発明を実施することができる。
ホスト・コンピュータ201側について、本実施形態に関する機能的な部分にのみ注目し、基本OS上での機能を大きく分類すると、アプリケーションソフトウェア301、グラフィック・サブ・システム302、印刷装置との通信処理を行うI/F305に大別される。アプリケーションソフトウェア301は、例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを指すものであるが、印刷機能を有するアプリケーションであればその種別は問わない。
グラフィック・サブ・システム302は、基本OSの機能の一部であるGDI303とそのGDIから動的にリンクされるデバイスドライバであるところのプリンタ・ドライバ304によって構成されている。プリンタドライバ304が出力した描画結果は、特定フォーマットの印刷コマンドとしてGDI303に再度返されると、I/F305を通って印刷装置107から印刷物として、または中間ファイルとしてディスクシステム(図7の外部メモリ211)上に送出される。OSによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本実施形態にかかるプリンタドライバが実現できるモジュールであれば、それらの名称や枠組みは本発明の実施にとって問題ではない。なお、一般的に、これらの各機能モジュールを含むホスト・コンピュータ100は、中央演算処理装置(CPU)、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、ハードディスクドライブ(HDD)、各種入出力制御部(I/O)などのハードウェアのもとで、基本ソフト(オペレーティングシステム)と呼ばれるソフトウェアがその制御を司り、その基本ソフトの元で、それぞれの応用ソフト(アプリケーションプログラム)、サブ・システム・プロセスが機能モジュールとして動作するようになっている。
次に、印刷装置107に関する説明をする。フォーマッタ制御部306は、通常はPDLコントローラなどとも呼ばれている部分であり、ホスト・コンピュータ100との接続手段であるところのインタフェース(I/F)部307と、受信データ等を一時的に保持管理するための受信バッファ308、送信データ等を一時的に保持管理するための送信バッファ313、印刷データの解析を司るコマンド解析部312、印刷制御処理実行部314、描画処理実行部310、ページメモリ311、プリンタエンジン316等より構成されている。インタフェース(I/F)部307は、ホスト・コンピュータ100との印刷データの送受信を行う通信手段であり、通信プロトコルとしてIEEE−1284に準拠した通信を可能とするものである。但し、この通信手段に限定するものでなく、ネットワークを介してさまざまなプロトコルによる接続であってもよいし、IEEE−1394に準じた通信手段であってもよく、その接続形態は問われない。
このインタフェース部307を通して受信した印刷データは、そのデータを一時的に保持する記憶手段である受信バッファ308に逐次蓄積され、必要に応じてコマンド解析部312または描画処理実行部310によって読み出され処理される。コマンド解析部312は、各PDLコマンド体系や印刷ジョブ制御言語に準じた制御プログラムにより構成されており、文字印字、図形、イメージなどの描画に関する印刷データの解析結果は、描画処理実行部310に指示を与えて処理し、給紙選択やリセット命令などの描画以外のコマンドは、印刷制御処理実行部314に指示を出し処理する。描画処理実行部310では、文字やイメージの各描画オブジェクトをページメモリ311に逐次展開して行くレンダラである。なお、一般的に、フォーマッタ制御部306は、中央演算処理装置(CPU)、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)などを用いたコンピュータ・システムによって構成されている。また、各部の処理は、マルチタスクモニタ(リアルタイムOS)のもとでタイムシェアリングに処理される構成てあっても良いし、各機能ごとに専用のコントローラ・ハードウェアを用意して独立して処理される構成であってもかまわない。
オペレーション・パネル317は、印刷装置の各種状態を設定・表示するためのものである。出力制御部315は、ページメモリ311の内容をビデオ信号に変換処理し、プリンタ・エンジン部316へ画像転送を行う。プリンタ・エンジン部316は受け取ったビデオ信号を記録紙に永久可視画像形成するための印刷機構部である。
本実施形態における特徴は、上記プリンタ・ドライバ内で、上位層(アプリケーション、OS)からの論理描画要求に対して最適な処理を自動で切替えるものである。
<プリンタドライバによる論理描画処理>
本実施形態の処理フローの概要を図4に示す。図4はホストコンピュータ100で実行されるプリンタドライバ304により実行される手順の一部である。
図4において、プリンタ・ドライバ304は、アプリケーション301からの印刷時、GDI303を介して入力されるDDI論理描画要求に対して、まずクリップ領域の複雑度δを計算する(S401)。複雑度δは、クリッピングパス点数、クリップ領域の大きさ、DDIの種類等の特定の外部条件によって決定されるが、本実施形態では、クリッピングパス点数およびDDI種別(DDI種定数)に応じて決定される。
そして、決定された複雑度δの値に応じて、プリンタドライバは予め定義された処理1、処理2、処理Nを切り替え(S402)、出力処理を行う。
なお、本実施形態では複雑度から処理を決定するための閾値定数として、閾値δ1,δ2を定義し、複雑度δの値とこれらの閾値δ1、δ2とを比較することで、描画出力処理1、出力処理2、出力処理3を切り替えるものとする。この場合のフローを図5に示している。すなわち、複雑度δが閾値δ1未満であれば処理1を(S502→S503)、複雑度δが閾値δ1以上かつ閾値δ2未満であれば処理2を(S504→S505)、複雑度δが閾値δ2以上であれば処理3(S506)を実行する。ここで、閾値及び対応する描画処理数は任意の数であっても問題はない。
次にプリンタドライバ内の処理を切り替える複雑度判定処理(S501)について詳しく説明する。本実施形態では、プリンタドライバ以後の複雑度を予測し、最適化を行う。かかる目的を実現するため、以下のようにして印刷時に複雑度を決定する。
・複雑度δ=A×(クリッピングパス点数)+B×(DDI種定数)。
ここで、A,Bは複雑度を決定するためのパラメータ定数である。後述の例のように、たとえばAとして1を、Bとして0を用いることができる。この場合、複雑度δはクリッピングパス点数によって示される。パラメータA,Bはプリンタ・ドライバが内部的に保持していても外部ファイルやユーザインターフェイス等の外部情報から決定されても構わないが、複雑度の算出時には決定されることが必要である。本実施形態では、プリンタドライバ内に、本ドライバが使われる環境に応じた定数A,Bを保持し、実際の印刷時に複雑度を決定する。定数A,Bの値は、クリッピングパス点数とDDI種定数とに対する重みであり、プリンタドライバの出力データを処理する際の処理負荷に対する影響が大きいパラメータについてより大きな重みを付ける。
クリッピングパス点数は、DDI論理描画に定義されたクリッピング領域を定義する座標点数を示している。図1Aの例では、クリッピング領域102は、たとえばその輪郭ベクトルにより定義される。したがって、輪郭ベクトルを定義する座標点数が、クリッピング領域を定義する座標点数となる。したがって、クリッピング領域102においては、座標点数は12である。
DDI種定数は、画像やグラフィック等の論理描画要求の種類によって決まる定数である。複雑度が高い命令ほど大きな値が与えられる。例えば、GDIの描画命令には画像描画命令とパターン描画命令とがある。
画像描画命令は「ImageBlt(Dst, Src, Clip)」のようにオペレータ及び3つのオペランドにより表されるものとする。ここで、第1オペランドDstは、出力先を示す領域である。たとえば出力先が(0,0)を原点とする100×100のサイズの画像データであれば、第1オペランドDstには、(0,0), (100,0), (100,100), (0,100)の座標点が入る(これで囲まれる矩形が描画領域になる)。第2オペランドSrcは元画像を示すビット列で、たとえば元画像が、図8に示す、(0,0)を原点とする100×100のサイズの画像データであれば、第2オペランドSrcには、座標点(0,0),(100,0),(100,100), (0,100)で囲まれる斜線部の画像データのビット列が入る。第3オペランドClipには、クリップ領域の輪郭ベクトルが入る。たとえば、図8のクリップ領域(図1Aのクリップ領域100と同じ形状)の輪郭ベクトル(25,10), (75,10), (75,30), (65,30), (65,60), (55,60), (55,80), (45,80), (45,60), (35,60), (35,30), (25,30)を示す点が入る(この順番に囲った閉空間でクリップする:図の階段状の閉空間)。
一方パターン描画命令は、「PatBlt(Dst, Pat, Clip)」により表されるものとする。ここで、第1オペランドDstは、ImageBlt同様に出力先を示す領域で、(0,0), (100,0), (100,100), (0,100)の座標点が入る。第2オペランドSrcはパターンを示すビット列が入る。ImageBltのSrcは元画像全体のビット列であるが、パターン描画命令では、繰返しの単位となるパターンのビット列である点で両者は相違する。この命令を受けて画像を生成する処理系は、Patで示されるパターンのビット列をDstに示す領域へとタイリングして展開する。第3オペランドClipにはImageBlt同様のクリップ領域の輪郭ベクトルの点列が入る。この命令はプリンタドライバにより、たとえば「0 0 m 100 100 Pat DO」と中間データに出力される。この意味は、座標(0,0)に着目点を移動し、そこを原点として100×100画素の領域にPatで示されるパターンをフィルする、というものである。このパターン描画命令を処理する描画処理システム(たとえばプリンタ)は、パターンを展開しなければならないため、画像描画命令に比べてパターン描画命令の処理の方がより複雑になることが予想される。そのため、ImageBltよりもDDI種定数を大きくしておく。例えば、「ImageBlt」(画像描画命令)に対するDDI種定数を10、「PatBlt」(パターン描画命令)に対するDDI種定数を20とする。このようにDDI関数の種類ごとに、それに対応してプリンタドライバによって出力データが生成されて出力される。DDI種定数は、この出力データを処理して画像を形成する処理の手数に応じて、手数がより多くなることが予想されるものについて、より大きな値が設定される。この値は予め静的に決定しておくのが処理の簡単化の観点からは望ましいが、オペレータに指定させておくなど、変更可能とすることもできる。
次に本実施形態で定義する出力処理1、出力処理2、出力処理3の説明を行う。出力処理1は図5のステップS503に相当する。ステップS503では、入力された元画像及び指定されたクリッピング領域をDDI要求の通りに各々生成し、プリンタ・ドライバ出力を行う。つまり、従来のプリンタ・ドライバが生成する手法と同等であって、出力は図1Aの画像103を出力する描画命令及びクリップ領域104を定義するクリップ指定命令を発行する。
図8および図9乃至図11を参照して出力データの具体例を示す。
図8は、図1Aに示す描画命令のデータについて具体的な数値を与えた例である。図8は描画命令のデータは、Windows(登録商標)からのコマンドとしては、前述の画像描画命令ImageBltを用いて「ImageBlt(Dst, Src, Clip)」と記述される。前述の通り、Dstは出力先を示す領域で、(0,0), (100,0), (100,100), (0,100)の座標点が入り、これらの座標で囲まれる矩形が描画領域になる。Srcは元画像を示すビット列で、(0,0),(100,0),(100,100), (0,100)で囲まれる斜線部分801の画像のビット列が入る。Clipはクリップ領域を示す座標点列で、(25,10), (75,10), (75,30), (65,30), (65,60), (55,60), (55,80), (45,80), (45,60), (35,60), (35,30), (25,30)を示す点が入る。この順番に囲った閉空間でクリップする。
ステップS503では、この描画命令から、図9に示す出力データが生成される。すなわち、元画像901とクリップ領域902とにより構成されるデータが出力される。図9をプリンタドライバの出力データで表現すると以下のようになる。
「25 10 m 75 10 l 75 30 l 65 30 l 65 60 l 55 60 l 55 80 l 45 80 l 45 60 l 35 60 l 25 30 l 25 10 l W 0 0 m 100 100 Img DO」。
ここで「25 10 m」は、着目点を座標(25,10)に移動することを示している。すなわち「x y m」は、着目点を座標(x, y)に移動(move)するという意味である。「75 10 l」は、現在の着目点の座標からその点(この例では(75,10))までのパスを描画することを示している。すなわち、「x y l」は、現在の着目点から座標(x, y)にラインを描画(line to)することを示す。同様にこのパスの描画が続き、「W」 は、現在の着目点の座標と最初の着目点の座標とで閉空間を構成してクリップする命令である。ここまでが「ImageBlt(Dst, Src, Clip)」のClipに相当する。その次の「0 0 m」で着目点を座標(0,0)に移動し、「100 100」の指定で画像サイズが100×100であることを示す。これがDstに相当する。そして「Img」に上記Srcで示す、クリップ対象の画像データであるビット列が入る。DOオペレータで全体画像を描画する。このように、出力処理1により生成される出力データは、入力されるDDI命令の形式をそのまま反映している。
このように、出力処理1によれば、プリンタドライバによる処理自体は簡単であるが、出力されるデータ量は、クリップ領域の点列の数に応じて増大する。さらに、プリンタドライバにより出力される上記プリンタドライバ出力データを処理して画像を形成する場合には、元画像データをクリップする処理が必要であり、クリップ領域の輪郭点の数が増加するほどその処理は複雑化する。
出力処理2は図5のステップS505に相当する。ステップS505では、DDIにより指定されたクリップ領域で元画像の切り抜き作業をプリンタ・ドライバ内で行うことでクリップ領域が存在しない出力画像を生成することで出力を簡素化する。切り抜き作業とは、クリップ対象の画像データ(元画像)を、クリップ領域を構成する矩形の単位(図1Aの例では、クリップ領域104は、矩形104a,矩形104b,矩形104cを単位として構成されている。)ごとに分割する作業である。画像領域103をクリップ領域104で切り抜くことで、3つの画像105、106、107がプリンタ・ドライバから出力される。
図11は、図8の描画命令のデータを、クリップで前もって画像を切り取り生成した出力データの例である。すなわち、生成される命令は3つであり、(45, 60),(55,60),(55,80), (45,80)で囲まれるクリップで切り取られた画像1101(Img1)と、(35,30),(65,30),(65,60), (35,60)で囲まれるクリップで切り取られた画像1102(Img2)と、(25, 10),(75,10),(75,30), (25,30)で囲まれるクリップで切り取られた画像1103(Img3)とになる。プリンタドライバからの出力データは、第1の命令が「45 60 m 10 20 Img1 DO」、第2の命令が「35 30 m 30 30 Img2 DO」、第3の命令が「35 10 m 50 20 Img3 DO」となる。なお各コマンドの説明は図9の説明と同じである。すなわち、第1の命令について説明すると、最初の「45 60 m」で着目点を座標(45,60)に移動し、「10 20」の指定で画像サイズが10×20であることを示す。そして「Img1」に上記座標点で囲まれた画像1101のビット列が入る。DOオペレータで第1の命令による矩形の画像を描画する。第2,第3についても同様である。
このように、出力処理2によれば、プリンタドライバによる処理自体は出力処理1に次いで簡単であるが、出力されるデータ量は、クリップされる矩形画像の数に応じて増大する。そのため、プリンタドライバにより出力される上記出力データを処理して画像を形成する場合には、画像ひとつひとつを形成する処理が必要であり、クリップ領域の輪郭点の数が増加するほどその処理は複雑化する。しかしながらその処理は、指定された画像を形成するだけであり、クリップ領域におけるクリップという処理はないために、出力処理1ほど複雑ではない。
出力処理3は図5のステップS506に相当する。ステップS506では、クリップ領域104をこの有効領域を考慮したビットマスク画像109に変換し、元画像との論理積命令をプリンタ・ドライバは生成する。マスク画像109はクリップ領域104を元画像103のサイズまで解像度変換し、その有効画素領域を図の黒部分で定義したものである。元画像103はこのマスク画像109の黒部分を1とし、ビットに関する論理積をとる命令を出力することで所望の出力結果を得ることが可能になる。
図10は、図8の描画命令のデータを、元画像データとマスクデータとの組み合わせとして生成した出力データの例である。クリップで囲まれた閉空間をマスクデータ(図10のマスク1002)にし、それをMask1で表現すると、出力処理3により生成される出力データの例は、「0 0 m Mask1 100 100 Img DO」となる。ここで、Mask1はクリップ領域を黒にしたマスク画像1002であり、Imgは元画像1001である。この命令は、座標(0,0)をまず着目点とし、指定画像サイズを100×100としてMaskとImgとの論理積を計算することを示す。
このように、出力処理3によれば、出力されるデータ量は、2つの画像データを含むものの、画像データのサイズが一定であれば、クリップされる領域の形状とは無関係に一定である。また、出力データを元に画像を形成する処理も、ビットマップの論理積を求める処理であるので、簡単化できる。ただし、プリンタドライバにおいては、ビットマップをクリップ領域のデータから形成する処理が必要であり、出力処理1,2に比較して複雑な処理となる。
なお、オペレーティングシステムからの描画命令を、出力処理1乃至3により出力命令に変換する手順は、たとえば出力処理1であれば、単に命令を置換し、パラメータを入れ替えればよいし、出力処理2であれば、クリップ領域を、最終的に生成される画像の主走査および副走査方法をそれぞれの辺の方向とする矩形の集合に分解し(クリップ領域を輪郭点の位置で主走査方向にスライスした矩形に分解すればよい。)、それら矩形の位置及びサイズの画像を元画像から切り出して描画命令のパラメータとすればよい。また、出力処理3であれば、上述の様に、マスク画像を生成すればよい。
<本実施形態における処理の具体例>
次に図5のフローチャートを用いて本実施形態の処理をさらに詳細に説明する。ここで、プリンタドライバは上記の定数としてA=1、B=0、δ1=15、δ2=18を、メモリの所定の領域に保持する。すなわち、本例では複雑度の尺度をクリッピングパス点数そのものとし、その複雑度すなわちクリッピングパス点数の閾値としてδ1=15、δ2=18を設定している。
まず、図1の画像描画を行う場合について説明する。ステップS501において、上位処理(アプリケーション、OS)から渡された論理描画要求に対して、クリッピング処理等の画像処理を行った場合の複雑度δを計算する。このとき、クリッピングパス点数は図1のクリップ領域104の頂点数であり、12点であるので、複雑度δ=1×12=12と計算される。次いで、ステップS502において、複雑度δがδ1より大きいかどうかであるかを判断する。この場合、δ<δ1であると判断され、ステップS503へと進む。ステップS503では、イメージに対してそのままクリップパスを出力し、プリンタ・ドライバ出力を生成する。このときに生成する出力には、イメージ描画命令とクリップパス命令が含まれ、図1の符号103、104に示すような出力結果となる。
次にクリップ領域を図6の符号601とした画像描画を行う場合について説明する。図6のクリップ領域601が画像データ103に組み合わされ、上位処理(アプリケーション、OS)から渡されたものとする。このとき、クリッピングパス点数はクリッピング領域の頂点数であり、クリップ領域601については16点である。したがってこのときの複雑度δ=1×16=16と計算される(S501)。このためδ<δ1は満たさないのでS504へ進み、δ1≦δ<δ2であるので(S504)、ステップS505にて進み、プリンタドライバ内部でクリップによる画像の切り取り処理2が行われる。ステップ505で最外郭クリップ領域でイメージデータを切り出し、出力する処理を行う。このときに生成するプリンタ・ドライバ出力には、符号602で示したような4つの画像出力命令が含まれる。
最後にクリップ領域を図6の符号603とした画像描画を行う場合について説明する。クリップ領域603が画像データ103に組み合わされ、上位処理(アプリケーション、OS)から渡されたものとする。このとき、クリッピングパス点数はクリッピング領域の頂点数であり、20点であるので、複雑度δ=1×20=20と計算される(S501)。δ<δ1は満たさないのでS504へ進み、また、δ1≦δ<δ2も満たさないので、S506へ進む。そこで、プリンタ・ドライバ内部でクリップ領域を画像に変換し、画像によるマスククリップ処理3が行われる。ステップS506でクリップに相当するマスクイメージを生成し、画像データ+マスク画像が出力される。このときに生成するプリンタ・ドライバ出力には、符号604で示したようなイメージ描画命令とマスク画像の統合命令が含まれる。
以上説明したように、本実施形態によれば、プリンタ・ドライバが上位層(アプリケーション、OS)からの論理描画要求に対して処理を行う場合、一律に、そのクリッピング命令を出力するのではなく、適応的に、最適な描画命令を含むプリンタ・ドライバ出力を行うことで、最適な印刷システムを実現することが可能となる。ここで最適な描画命令を含む出力とは、その出力(命令及びパラメータを含む。)に対する画像生成処理の負荷が最も軽いような出力データをいう。あるいは、出力データのサイズを最小にするようなデータをいう場合もある。
例えば、ある処理速度を持つホストコンピュータAとプリンタ機器Bがあって、このホストコンピュータ上で動作するプリンタ・ドライバ出力に対してプリンタ機器Bが印刷を行うものとする。このときプリンタ機器の特性において、クリッピング領域のパス点数がある閾値以上になるとパフォーマンスが劣化することがわかっているものとする。このときには予めプリンタ・ドライバにてクリッピング領域を制御する定数Aをプリンタ機器を最適化する定数(前記閾値)にあわせておくことで、最適な印刷スループットを得ることが可能になる。また別のプリンタ機器Cがあって、このプリンタ機器がクリッピング処理と比較して画像の論理演算処理が高速であることがわかっているとすると、δ2を制御することで画像の論理演算出力結果を得るようにプリンタドライバ出力を導くことが可能となる。
[第2実施形態]
本実施形態について、第1実施形態との相違点について説明する。本実施形態のシステムの構成は、図2,3,7に示したとおりである。本実施形態では複雑度パラメータを以下のように決定する。
・複雑度δ=A×(クリッピングパス点数)+B×(DDI定数)。
ここで、第1の実施形態と異なりプリンタドライバは上記の定数としてA=0、B=1、δ1=10、δ2=18を保持するものとする。すなわち、複雑度はDDI定数そのもので与えられる。DDI定数はDDIの種別毎につけられた定数である。例えば、DDIにおいてパターン画像を出力する"PatWrite"という関数(第1実施形態で説明したPatBltに相当する。)と、カラー画像を出力する"ImageWrite"という関数(第1実施形態で説明したImageBltに相当する。)が存在していたとする。この場合"PatWrite"のDDI定数及び"ImageWrite"のDDI種定数が各々プリンタドライバ内で定義される。例として、"PatWrite"のDDI種定数=15、"ImageWrite"のDDI種定数=0と定義する。これは図5のステップS501において、上位処理(アプリケーション、OS)から渡された論理描画要求に対して、それが"PatWrite"DDI命令であった場合にのみ複雑度が値をもつことを意味している。例えば、図1の画像101が"PatWrite"DDI命令によりプリンタドライバに与えられたときに複雑度δ=1×15=15と計算される。
次いで、ステップS502において、複雑度δがδ1より大きいかどうかであるかを判断する。δ1≦δ<δ2であるので、S504へ進み、S504は必ず真と判定される。結局、"PatWrite"DDIは、すべての場合、プリンタドライバ内部でクリップによる出力処理2、すなわち画像の切り取り処理がS505にて行われる。ステップS505では、最外郭クリップ領域でイメージデータを切り出し、ドライバ出力処理を行う。また、DDI命令が"ImageWrite"の場合は常にδ=0となるので出力処理1に流れることになる。
このように、本実施形態では、DDI命令の種類によって複雑度を決定し、決定した複雑度に応じて処理を決定する。その結果、DDIの種別ごとに最適出力処理を変更することが可能になる。上記例では、"PatWrite"という命令によりデータ入力された場合には、パターン充填処理をプリンタドライバで行って画像データ描画命令の組み合わせをデータとして出力する。これによって、出力データからの画像形成処理時にパターンの充填をおこなうという処理を行わずに済み、負荷が軽減される。
以上説明したように、本実施形態によれば、プリンタ・ドライバが上位層(アプリケーション、OS)からの論理描画要求に対して印刷処理を行う場合、一律に、そのクリッピング命令を出力するのではなく、DDIの種類毎に複雑度の重み付けを行い、クリッピング処理を最適化することが可能になる。DDIの種類に適応的なプリンタ・ドライバ出力を行うことで、最適な印刷システムを実現することが可能となる。
例えば、ある処理速度を持つホストコンピュータAとプリンタ機器Bがあって、このホストコンピュータ上で動作するプリンタ・ドライバが出力をプリンタ機器Bが印刷を行うものとする。このときプリンタ機器の特性において、パターン画像の処理がパフォーマンスが劣化することがわかっているものとする。このときには予めプリンタ・ドライバにてパターン画像とクリッピング領域を出力しないように制御することで最適な印刷スループットを得ることが可能になる。また別のプリンタ機器Cがあって、このプリンタ機器がクリッピング処理と比較して画像の論理演算処理が高速であることがわかっているとすると、DDI定数を制御することで画像の論理演算出力をえるように導くことが可能となる。
本発明の実施形態における出力処理1により出力される論理描画命令の例である。 本発明の実施形態における出力処理2により出力される論理描画命令の例である。 本発明の実施形態における出力処理3により出力される論理描画命令の例である。 本発明におけるシステム構成の例である。 本発明におけるシステム構成のブロック図である。 本発明における概要フローチャートである。 本実施例におけるフローチャートである。 本実施例における論理描画命令の例である。 本発明の実施形態におけるシステムのハードウエアブロック図である。 本発明の実施形態におけるオペレーティングシステムから入力される論理描画命令の例である。 本発明の実施形態における出力処理1により出力される論理描画命令の例である。 本発明の実施形態における出力処理3により出力される論理描画命令の例である。 本発明の実施形態における出力処理2により出力される論理描画命令の例である。

Claims (11)

  1. 論理描画命令に基づいて所定形式のデータを生成する情報処理装置であって、
    前記論理描画命令およびそのパラメータに基づいて、当該論理描画命令の複雑度を決定する複雑度決定手段と、
    前記複雑度に応じて、描画領域を定義する描画命令とクリップ領域を定義するクリップ領域出力命令とを含む第1の出力データと、前記クリップ領域により前記描画領域をクリップした画像領域を構成する矩形領域を描画する描画命令を含む第2の出力データと、前記描画領域を、前記クリップ領域以外の領域に対応するマスクデータでマスクする描画命令を含む第3の出力データのいずれかの出力データを生成するデータ生成手段と
    を備えることを特徴とする情報処理装置。
  2. 前記複雑度決定手段は、前記論理描画命令の種類に応じた定数、または、前記論理描画命令のパラメータとして含まれる画像のクリップ領域の輪郭点の数に応じて複雑度を決定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記データ生成手段は、前記複雑度が、第1の閾値未満であれば前記第1の出力データを、第1の閾値以上第2の閾値未満であれば前記第2の出力データを、第2の閾値以上であれば前記第3の出力データを生成することを特徴とする請求項1または2に記載の情報処理装置。
  4. 論理描画命令に基づいて所定形式のデータを生成する情報処理装置であって、
    前記論理描画命令の種類ごとの定数または当該論理描画命令のパラメータに含まれる画像のクリップ領域の輪郭点の数を、当該論理描画命令の複雑度として決定する複雑度決定手段と、
    前記複雑度が第1の閾値未満であれば、前記描画命令に含まれる描画領域を定義する描画命令と前記クリップ領域を定義するクリップ領域出力命令とを含む第1の出力データを生成し、前記複雑度が前記第1の閾値以上第2の閾値未満であれば、前記クリップ領域により前記描画領域をクリップした画像領域を分割した矩形領域それぞれを描画する描画命令を含む第2の出力データを生成し、前記複雑度が前記第2の閾値以上であれば、前記クリップ領域以外の領域をマスクするためのマスクデータを生成して、該マスクデータと前記画像領域との論理積として得られる画像を描画する描画命令を含む第3の出力データを生成するデータ生成手段と
    を備えることを特徴とする情報処理装置。
  5. 請求項1乃至4のいずれかに記載の情報処理装置と、前記データ生成手段により生成された出力データに基づいて画像を形成する画像形成手段とを備えることを特徴とする画像出力システム。
  6. 論理描画命令に基づいて所定形式のデータを生成する情報処理方法であって、
    前記論理描画命令およびそのパラメータに基づいて、当該論理描画命令の複雑度を決定する複雑度決定工程と、
    前記複雑度に応じて、描画領域を定義する描画命令とクリップ領域を定義するクリップ領域出力命令とを含む第1の出力データと、前記クリップ領域により前記描画領域をクリップした画像領域を構成する矩形領域を描画する描画命令を含む第2の出力データと、前記描画領域を、前記クリップ領域以外の領域に対応するマスクデータでマスクする描画命令を含む第3の出力データのいずれかの出力データを生成するデータ生成工程と
    を備えることを特徴とする情報処理方法。
  7. 前記複雑度決定工程は、前記論理描画命令の種類に応じた定数、または、前記論理描画命令のパラメータとして含まれる画像のクリップ領域の輪郭点の数に応じて複雑度を決定することを特徴とする請求項6に記載の情報処理方法。
  8. 前記データ生成工程は、前記複雑度が、第1の閾値未満であれば前記第1の出力データを、第1の閾値以上第2の閾値未満であれば前記第2の出力データを、第2の閾値以上であれば前記第3の出力データを生成することを特徴とする請求項6または7に記載の情報処理方法。
  9. 論理描画命令に基づいて所定形式のデータを生成する情報処理方法であって、
    前記論理描画命令の種類ごとの定数または当該論理描画命令のパラメータに含まれる画像のクリップ領域の輪郭点の数を、当該論理描画命令の複雑度として決定する複雑度決定工程と、
    前記複雑度が第1の閾値未満であれば、前記描画命令に含まれる描画領域を定義する描画命令と前記クリップ領域を定義するクリップ領域出力命令とを含む第1の出力データを生成する第1のデータ生成工程と、
    前記複雑度が前記第1の閾値以上第2の閾値未満であれば、前記クリップ領域により前記描画領域をクリップした画像領域を分割した矩形領域それぞれを描画する描画命令を含む第2の出力データを生成する第2のデータ生成工程と、
    前記複雑度が前記第2の閾値以上であれば、前記クリップ領域以外の領域をマスクするためのマスクデータを生成して、該マスクデータと前記画像領域との論理積として得られる画像を描画する描画命令を含む第3の出力データを生成する第3のデータ生成工程と
    を備えることを特徴とする情報処理方法。
  10. コンピュータにより、論理描画命令に基づいて所定形式のデータを生成させるためのプログラムであって、
    前記論理描画命令およびそのパラメータに基づいて、当該論理描画命令の複雑度を決定する複雑度決定手段と、
    前記複雑度に応じて、描画領域を定義する描画命令とクリップ領域を定義するクリップ領域出力命令とを含む第1の出力データと、前記クリップ領域により前記描画領域をクリップした画像領域を構成する矩形領域を描画する描画命令を含む第2の出力データと、前記描画領域を、前記クリップ領域以外の領域に対応するマスクデータでマスクする描画命令を含む第3の出力データのいずれかの出力データを生成するデータ生成手段と
    をコンピュータにより実現させることを特徴とするプログラム。
  11. コンピュータにより、論理描画命令に基づいて所定形式のデータを生成させるためのプログラムであって、
    前記論理描画命令の種類ごとの定数または当該論理描画命令のパラメータに含まれる画像のクリップ領域の輪郭点の数を、当該論理描画命令の複雑度として決定する複雑度決定手段と、
    前記複雑度が第1の閾値未満であれば、前記描画命令に含まれる描画領域を定義する描画命令と前記クリップ領域を定義するクリップ領域出力命令とを含む第1の出力データを生成し、前記複雑度が前記第1の閾値以上第2の閾値未満であれば、前記クリップ領域により前記描画領域をクリップした画像領域を分割した矩形領域それぞれを描画する描画命令を含む第2の出力データを生成し、前記複雑度が前記第2の閾値以上であれば、前記クリップ領域以外の領域をマスクするためのマスクデータを生成して、該マスクデータと前記画像領域との論理積として得られる画像を描画する描画命令を含む第3の出力データを生成するデータ生成手段と
    をコンピュータにより実現させることを特徴とするプログラム。
JP2003388478A 2003-11-18 2003-11-18 情報処理装置及び情報処理方法 Expired - Fee Related JP3754975B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003388478A JP3754975B2 (ja) 2003-11-18 2003-11-18 情報処理装置及び情報処理方法
US10/977,287 US7259770B2 (en) 2003-11-18 2004-10-28 Method and apparatus for processing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003388478A JP3754975B2 (ja) 2003-11-18 2003-11-18 情報処理装置及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2005149325A JP2005149325A (ja) 2005-06-09
JP3754975B2 true JP3754975B2 (ja) 2006-03-15

Family

ID=34674801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003388478A Expired - Fee Related JP3754975B2 (ja) 2003-11-18 2003-11-18 情報処理装置及び情報処理方法

Country Status (2)

Country Link
US (1) US7259770B2 (ja)
JP (1) JP3754975B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6369840B1 (en) * 1999-03-10 2002-04-09 America Online, Inc. Multi-layered online calendaring and purchasing
KR101224256B1 (ko) * 2005-10-14 2013-01-18 한양대학교 산학협력단 레이저 기반의 이동 단말을 위한 다중채널의 장면구성 제어방법 및 장치
JP4329750B2 (ja) * 2005-11-14 2009-09-09 ブラザー工業株式会社 印刷制御プログラム
JP5936363B2 (ja) * 2012-01-17 2016-06-22 キヤノン株式会社 画像処理装置及び画像処理方法
US11341383B2 (en) * 2019-08-18 2022-05-24 Kyocera Document Solutions Inc. Methods and apparatus to detect effective tiling area and fill tiles efficiently

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515481A (en) * 1992-07-08 1996-05-07 Canon Kabushiki Kaisha Method and apparatus for printing according to a graphic language
JP3483348B2 (ja) 1995-05-31 2004-01-06 キヤノン株式会社 印刷システムおよび印刷システムの記録所要時間呈示方法
JPH08230245A (ja) 1995-03-01 1996-09-10 Canon Inc 印刷制御装置及び方法
US5642474A (en) * 1995-03-06 1997-06-24 Hewlett-Packard Company Arbitrary masking technique for filling in shapes for display
JP3612909B2 (ja) 1996-12-24 2005-01-26 富士ゼロックス株式会社 画像処理装置
JP2003029938A (ja) 2001-07-12 2003-01-31 Canon Inc 情報処理装置及びその制御方法及び印刷システム、並びに、コンピュータプログラム及び記憶媒体

Also Published As

Publication number Publication date
US20050134887A1 (en) 2005-06-23
JP2005149325A (ja) 2005-06-09
US7259770B2 (en) 2007-08-21

Similar Documents

Publication Publication Date Title
US6493099B2 (en) Print control apparatus and method
JP4651112B2 (ja) 情報処理装置及びその制御方法とプログラム
US7253914B2 (en) Print data processing apparatus, print control method, and print control program
US8724153B2 (en) Information processing apparatus, method of information processing, and storage mediurn for performing scaling processing on image data
JP2007249855A (ja) 情報処理装置およびその方法
JP2002041261A (ja) 情報処理装置及び情報処理方法及びコンピュータ読み取り可能なプログラムを格納した記憶媒体
US6975416B2 (en) Print control apparatus and method
EP2544127B1 (en) Parallel rip processing for sheet images that include graphics defined by a job ticket
JP3754975B2 (ja) 情報処理装置及び情報処理方法
US8049905B2 (en) Computer readable recording medium bearing a printer driver program and print data processing apparatus
JP2006159738A (ja) 印刷制御装置およびそのデータ処理方法並びに記憶媒体。
US6720970B2 (en) Image drawing apparatus, image drawing method and memory medium
JP2939059B2 (ja) 情報処理装置並びに電子機器および情報処理方法
JP2007152898A (ja) 印刷処理装置
JP2019093559A (ja) 画像形成装置及びその制御方法、並びにプログラム
JP2010012737A (ja) 印刷制御装置、印刷処理システム、描画処理方法およびプログラム
JP3483350B2 (ja) 出力装置、出力方法および出力システム、並びに印刷データ生成装置および印刷データ生成方法
JP4467715B2 (ja) 画像出力制御装置及び方法
JPH11188930A (ja) 印刷システムおよび印刷システムのデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JPH117364A (ja) 情報処理装置、情報処理方法、記憶媒体、及び、印刷システム
JP2005049949A (ja) 印刷制御装置およびその制御方法
JP2005165741A (ja) 情報処理装置、印刷システム、情報処理装置の処理データ生成方法、及び制御プログラム
JP2019197327A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2022030549A (ja) 情報処理置、情報処理方法、画像形成装置、及びプログラム
JP3495876B2 (ja) 文字出力装置および文字出力方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051219

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3754975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081222

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121222

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131222

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees