JP6226604B2 - ディスプレイリストを生成する装置、方法、プログラム - Google Patents

ディスプレイリストを生成する装置、方法、プログラム Download PDF

Info

Publication number
JP6226604B2
JP6226604B2 JP2013151655A JP2013151655A JP6226604B2 JP 6226604 B2 JP6226604 B2 JP 6226604B2 JP 2013151655 A JP2013151655 A JP 2013151655A JP 2013151655 A JP2013151655 A JP 2013151655A JP 6226604 B2 JP6226604 B2 JP 6226604B2
Authority
JP
Japan
Prior art keywords
interpretation
interpretation result
storage
data
stored
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.)
Active
Application number
JP2013151655A
Other languages
English (en)
Other versions
JP2015020384A (ja
JP2015020384A5 (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 JP2013151655A priority Critical patent/JP6226604B2/ja
Priority to US14/335,536 priority patent/US9171240B2/en
Publication of JP2015020384A publication Critical patent/JP2015020384A/ja
Priority to US14/864,575 priority patent/US10394509B2/en
Publication of JP2015020384A5 publication Critical patent/JP2015020384A5/ja
Application granted granted Critical
Publication of JP6226604B2 publication Critical patent/JP6226604B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters
    • G06F3/1298Printer language recognition, e.g. programme control language, page description language
    • 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
    • G06F3/1217Improving printing performance achieving reduced idle time at the output device or increased asset utilization
    • 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/1224Client or server resources management
    • G06F3/1227Printer definition files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • G06K15/1811Receiving print data characterized by its formatting, e.g. particular page description languages including high level document description only
    • G06K15/1813Page description language recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/40Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
    • G06K15/4005Sharing resources or data with other data processing systems; Preparing such data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage

Description

本発明は、ディスプレイリストを生成する技術に関する。
特許文献1は、PDLデータからディスプレイリスト(DL)と呼ばれる描画処理部が処理可能な中間データを生成する装置を開示する。この特許文献1に開示される装置において、PDL解釈部がPDLデータを解釈し、その解釈結果からDL生成部がDLを生成する。そして描画処理部がその生成されたDLに基づいて描画を行うことでビットマップ画像を生成する。
特開2012−86450号公報
ここで図9に示されるように、PDLデータの解釈結果をDL生成部に渡すために用いられる解釈結果記憶部の記憶容量が極めて小さい場合を考えてみる。例えば解釈結果記憶部の記憶容量が、PDLデータに含まれるPDLコマンドの1コマンド分の解釈結果しか記憶できないような場合を考える。
この場合、DL生成部が解釈結果記憶部にアクセスしてその1コマンド分の解釈結果からDLを生成している最中に、その解釈結果の内容が変更されないことが要求される。そこで、DL生成部が解釈結果記憶部にアクセスしている最中は、PDL解釈部が解釈結果記憶部にアクセスしない。その結果、DL生成部が解釈結果記憶部にアクセスしている最中は、PDL解釈部はこの解釈結果記憶部にアクセスしないことになり、PDL解釈部は次のPDLコマンドの解釈結果をこの解釈結果記憶部に上書き記憶できない。つまりPDL解釈部による処理とDL生成部による処理とが同期して実行されるため、DL生成部の処理の遅延がそのまま、PDL解釈部の処理の遅延になってしまう。
本発明の装置は、PDLデータを解釈し、その解釈結果を第1の記憶手段に記憶する解釈手段と、前記第1の記憶手段に記憶されている解釈結果を、複数のPDLデータの解釈結果を記憶可能な第2の記憶手段に記憶する記憶制御手段と、PDLデータの解釈結果を、前記第1の記憶手段または前記第2の記憶手段から取得し、当該取得された解釈結果に基づいてディスプレイリストを生成する生成手段と、を有し、前記記憶制御手段は、前記第1の記憶手段に記憶されている解釈結果のデータサイズに応じて、当該解釈結果を前記第2の記憶手段に記憶するか否かを制御し、前記生成手段は、前記記憶制御手段による前記制御の結果、閾値未満のデータサイズを持つ解釈結果を前記第2の記憶手段から取得し、前記閾値を越えるデータサイズを持つ解釈結果を前記第1の記憶手段から取得する。
本発明は、解釈結果の複製を記憶する第2の記憶手段を設けることで、解釈手段による処理と生成手段による処理とを独立して実行できる。その結果、生成手段の処理が遅延しても解釈手段の処理が遅延してしまうことを防ぐ。
プリンタコントローラのハードウェアブロック図。 PDLコマンド、解釈結果、DLを説明するための図。 第一実施例のPDLデータの解釈処理を説明するためのフローチャート。 DLの生成処理を説明するためのフローチャート。 解釈結果の複製処理を説明するための図。 第二実施例のPDLデータの解釈処理を説明するためのフローチャート。 解釈結果の複製処理の実行有無の判定処理を説明するためのフローチャート。 第二実施例のプリンタコントローラの動作を説明するための図。 PDLデータからDLを生成する処理を説明するための図。
以下、本発明を実施するための形態について図面を用いて説明する。
<第一実施例>
<第一実施例のプリンタコントローラの構成>
図1は、本実施例の印刷装置におけるプリンタコントローラのハードウェア構成の一例である。このプリンタコントローラにおいて、解釈結果記憶部130は、バッファ143に接続し、PDL解釈部120によって記憶されたPDLデータの解釈結果をバッファ143に複製する構成をとる。この構成によって、DL生成部150がバッファ143に記憶されている解釈結果の複製からDLを生成している最中でも、PDL解釈部120はPDLデータの解釈結果を解釈結果記憶部130に記憶することができる。以下この動作について詳細に説明する。
印刷装置は、SFP(Single Function Printer)であっても、MFP(Multi Function Peripheral)であっても良い。まずこのプリンタコントローラの処理の概要について説明する。なお本実施例のプリンタコントローラは、以下で明らかになるようにディスプレイリストを生成するディスプレイリスト生成装置としても機能する。
図1に示される各ブロックは、各部のハードウェアを示し、各ブロックをつなぐ線は各部を接続する信号線を表している。この信号線を介して各部は他の部と情報の送受信を行う。
PDL解釈部120は、複数の種類のPDL(例えばPCL(登録商標)やPostScript(登録商標))のフォーマットのPDLデータを不図示のネットワークI/Fを介して外部の装置から受信する。そしてPDL解釈部120は、図3に示されるフローチャートの処理を実行する。つまりPDL解釈部120は、複数の種類のPDLフォーマットのPDLデータを解釈可能である。
解釈結果記憶部130は内部に、PDL解釈部120によるPDLデータに含まれるコマンド(PDLコマンド)の解釈結果を記憶する記憶領域を有する揮発性のメモリを有する。解釈結果記憶部130は、この解釈結果をバッファ143に複製する。なお本実施例の解釈結果記憶部130の記憶容量は、PDLコマンドの1コマンド分の解釈結果の量の最大値(固定サイズ)である。この解釈結果解釈部130は、PDLコマンドの1コマンド分の解釈結果を記憶し、2コマンド分以上の解釈結果を記憶しない。
バッファ143は内部に、解釈結果記憶部130に記憶されている解釈結果の複製を記憶する記憶領域を有する揮発性のメモリを有する。本実施例のバッファ143は、リングバッファである。このバッファ143の記憶容量は、解釈結果記憶部130よりも大きい固定サイズである。
DL生成部150は、図4に示されるフローチャートの処理を実行する。
描画処理部170は、PDL解釈部120からの描画処理の開始が指示され、且つ、DL生成部150から1ページ分のディスプレイリスト(DL)の生成の完了が通知されると、DL生成部150から1ページ分のDLを受信する。そして描画処理部170は、そのDLからビットマップ画像を生成する。DLからビットマップ画像を生成する処理をレンダリング処理と呼ぶ。
レンダリング処理によって生成されたビットマップ画像は、本実施例の印刷装置が備える不図示のプリンタエンジンに送信され、そのプリンタエンジンによって紙などのシート状の記録媒体に印刷される。そして、印刷された記録媒体は印刷物として印刷装置の機外に排出される。なお、このプリンタエンジンは、電子写真方式やインクジェット方式などどのような方式のプリンタエンジンでもよい。
<PDLコマンド、解釈結果、DL>
PDLデータは、一般に複数のPDLコマンドを含む。このPDLコマンドは、印刷ジョブの終了を指定するコマンド、ページの区切りを指定するコマンド、オブジェクトの描画を指定するコマンド(描画コマンド)の何れかとなっている。
図2は、PDLコマンドが描画コマンドである場合の、そのPDLコマンド(描画コマンド)の解釈結果、および、その解釈結果から生成されるDLを概念的に示したものであり、特にベジエ曲線の描画コマンドを例示したものである。この図2の例を用いて、PDLコマンド、解釈結果、DLの違いについて説明する。
図2(a)において破線で示されたベジエ曲線を描画するためのPDLコマンド(描画コマンド)は、ベジエ曲線の制御点の4点(P0、P1、P2、P3)、ベジエ曲線の線幅(w)、ベジエ曲線の線の色を指定するコマンドである。この描画コマンドは、同じ描画結果を得るとしても、PDLの種類(例えばPCL(登録商標)やPostScript(登録商標))によって描画コマンドのフォーマットが異なる。
PDL解釈部120は、この描画コマンドを解釈することで、破線で示されたベジエ曲線を複数の線分で近似する。これら複数の線分のそれぞれは、線分の両端点の座標で定義される。例えば線分Q0−Q1は、座標(x0、y0)の点Q0と、座標(x1、y1)の点Q1とを結ぶ、線幅wの線分である(図2(b))。
またこれら複数の線分を表すデータ(解釈結果)は、解釈結果記憶部130に記憶され、接続する線分は互いにポインタでリンクされたリンク構造を有している。例えば、解釈結果記憶部130に記憶されている線分Q0−Q1を表すデータは、線分Q1−Q2を表すデータが記憶されている解釈結果記憶部130上のメモリアドレスを指し示すポインタを有している。また各線分を表すデータはその線分の線幅を表す情報、線分の色(ベジエ曲線の色)を持っている。この解釈結果は、同じ描画結果を得る場合、PDLの種類に依存にしない一意のフォーマットのデータである。
DL生成部150は、線幅を持つ複数の線分を表すデータである解釈結果から、DLを生成する。ここでの例においてDLは、色が関連付けられた線幅を持たない論理的な線分のオブジェクトである。本例においてより具体的な説明をすると、線の色で塗り潰される線幅を持つ解釈結果の1つの線分は、局所的には線の色で塗り潰される四角形である。DLでは、その四角形の輪郭線である4つの辺をそれぞれ1つのオブジェクトとして扱う。例えば図2(c)に示されるDLにおいては、解釈結果において線幅wを持つ線分Q0−Q1の左側の辺である線分R0−R1が、線の色が関連付けられた線幅を持たない1つのオブジェクトとして扱われる。なお、DLにおけるこの1つのオブジェクトは、線分の開始点、その線分のy方向の高さ(長さ)、その線分の傾き、その線分に関連付けられている色で定義される。例えば線分R0−R1であれば、線分の開始点R1と、y方向の高さL0と、その線分の傾きs0、その線分の色(ベジエ曲線の色)を表す情報がDLに含まれる。
このようにDLは、1つの描画コマンド(例えばベジエ曲線の描画コマンド)で指定されるオブジェクト(例えばベジエ曲線)を、描画処理部170において処理可能な単位である単純な1つ以上のオブジェクトで表現したフォーマットの中間データである。
描画処理部170は、このDLに含まれるオブジェクト(例えば線分)を描画することで、描画コマンドで指定される1つのオブジェクト(例えばベジエ曲線)のビットマップ画像を生成する。このビットマップ画像は、例えば図2(c)のDLで表されている輪郭線の間をベジエ曲線の色で塗りつぶした画像である。
以上説明したように、PDLコマンドから解釈結果が生成され、その解釈結果からDLが生成され、さらにそのDLからビットマップ画像が生成される。PDLコマンドから生成される解釈結果は、PDLデータの種類(例えば、PCL(登録商標)やPostScript(登録商標)など)によらない共通化されたフォーマットのデータである。データのフォーマットが共通化されているためDL生成部150は、異なる種類のPDLコマンドであっても、容易にDLを生成することができる。なおこのような共通化されたフォーマットのデータをPDLコマンドから生成するために、PDL解釈部120は、PDLデータの種類に応じた複数の回路を備える。
<第一実施例のプリンタコントローラの動作>
続いて、図3、4のフローチャートを用いて、本実施例のプリンタコントローラの動作について説明する。
<PDLデータの解釈>
図3は、PDL解釈部120および解釈結果記憶部130によるPDLデータの解釈処理のフローチャートである。
PDL解釈部120は、外部からネットワークI/Fを介して、複数のPDLコマンドを含むPDLデータを受信する(S201)。
PDL解釈部120は、S201で受信されたPDLデータに含まれる1コマンド分のPDLコマンドの解釈を行う(S202)。すなわちPDL解釈部120はPDLデータをPDLコマンド単位で解釈する。
PDL解釈部120は、S202で解釈されたPDLコマンドが印刷ジョブの終了を指定するコマンドであるかを判定する(S203)。PDLコマンドがジョブの終了を指定するコマンドであれば、処理は終了する。
PDLコマンドがジョブの終了を指定するコマンドでなければ、PDL解釈部120は、S202で解釈されたPDLコマンドがページの区切り(終了)を指定するコマンドであるか判定する(S204)。
PDLコマンドがページの区切りを指定するコマンドであれば、PDL解釈部120は、1ページ分のPDLコマンドを解釈したこと(ページ終了通知)を、図1のPDL解釈部120とDL生成部150とを接続する信号線を介してDL生成部150に通知する。また、PDL解釈部120は、DL生成部150がDLの生成処理を完了してから描画処理部170が描画処理を開始するように、図1のPDL解釈部120と描画処理部170とを接続する信号線を介して描画処理部170に指示する(S205)。すると描画処理部170は、生成された1ページ分のDLからビットマップ画像を生成する。そして処理はS202へ戻り、PDLデータの次のPDLコマンドの解釈を始める。
PDLコマンドがページの区切りを指定するコマンドでなく描画コマンドである場合、PDL解釈部120は、描画コマンドの解釈結果を解釈結果記憶部130に記憶する(S206)。このとき、PDL解釈部120は、描画コマンドの解釈結果を、解釈結果記憶部130中のメモリ空間の特定のメモリアドレスから、古い解釈結果を順次上書きしながら、解釈結果記憶部130に記憶させる。
続いてPDL解釈部120は、次のPDLデータの解釈を中断(停止)する(S207)。
そしてPDL解釈部120は、解釈結果記憶部130に、解釈結果記憶部130が記憶している解釈結果を複製させて、その複製をバッファ143に記憶させる(S210)。解釈結果記憶部130によるこの複製処理については図5を用いて後述する。この複製が完了すると、解釈結果記憶部130は、解釈結果の複製が完了したことを、図1の解釈結果記憶部130とDL生成部150とを接続する信号線を介してDL生成部150に通知する。また解釈結果記憶部130は、PDLデータの解釈を再開するように、図1の解釈結果記憶部130とPDL解釈部120とを接続する信号線を介してPDL解釈部120に通知する。
PDL解釈部120は、解釈結果記憶部130からのPDLデータの解釈の再開通知を受信すると、PDLデータの解釈を再開する(S211)。そして処理はS202へ戻り、次のPDLコマンドの解釈を始める。
なお、上記の処理フローと並行してDL生成部150は、バッファ143に記憶されている解釈結果の複製を用いてDLの生成を非同期に行う。
<解釈結果の複製>
描画コマンドの解釈結果の複製処理は、解釈結果にアドレス参照ポインタが含まれている場合、図5に示されるように、ポインタによって参照されるメモリアドレスを変更する処理を含む。このメモリアドレスの変更処理は時間を要する処理である。これについて説明する。
解釈結果記憶部130に記憶されている解釈結果のデータ構造が、そのデータ内でアドレスを参照するためのポインタを含むリンク構造である場合がある。例えば、図2に説明されるベジエ曲線のように、解釈結果が、複数の線分を表すデータであって、各線分を表すデータに他の線分を表すデータのメモリアドレスを指し示すポインタが含まれているとする。これを2つの線分を表すデータ1とデータ2とに着目してみると、例えば図5に示されるように、データ2を参照するために、データ1は、データ2の解釈結果記憶部130のメモリ空間におけるデータ2のメモリアドレスA1を指し示すポインタPを有している。
解釈結果がこのようなデータ構造を持つ場合、解釈結果の複製処理においては次のような処理が行われる。データ1の値およびデータ2の値をバッファ143のメモリ空間に複製し、データ1の有するポインタの指し示すメモリアドレスをバッファ143のメモリ空間におけるデータ2のメモリアドレスA2に変更する。この処理は、リンク構造の長さが長ければ長いほど、複製処理の負荷が大きく、この複製処理に時間がかかる。このように、複製処理に時間がかかるデータ構造は、例えば曲線の描画コマンドなどに多い。なお曲線の描画コマンドの解釈結果は複数の単純な線分となるので、各線分から各DLを生成する処理の負荷は小さく、DLの生成処理には時間がかからない。
次に非同期のDLの生成処理について説明する。
<DLの生成>
図4は、DL生成部150によるDLの生成処理のフローチャートである。
DL生成部150は、S205におけるPDL解釈部120からの通知あるいはS210における解釈結果記憶部130からの通知を受信すると、DL生成部150が処理していない解釈結果がバッファ143に記憶されているかを判定する(S301)。
未処理の解釈結果が記憶されている場合、DL生成部150は、バッファ143に記憶されている未処理の解釈結果から、バッファ143に記憶された順に従ってDLを1つずつ生成する(S302)。DL生成部150は、生成した順にDLを1つずつ、不図示のDL記憶部に記憶する。このときDL生成部150は、1つの未処理の解釈結果からDLを生成し終えてから、次の未処理の解釈結果を受信する。
DL生成部150は、1つの解釈結果からDLを生成し終えると、その解釈結果をバッファ143から削除する(S303)。
これらS301〜S303の処理は、バッファ143から未処理の解釈結果がなくなるまで繰り返される。なおDL生成部150は、バッファ143に未処理の解釈結果が記憶されていないと、PDL解釈部120からS205の通知(ページ終了通知)を受信したかを判定する(S304)。ページ終了通知を受信しなかった場合、本実施例ではDL生成部150はS205の解釈結果の複製の完了通知を受信したことになり、処理は終了する。ページ終了通知を受信した場合、DL生成部150は、1ページ分のDLの生成が完了したことを描画処理部170に通知し、不図示のDL記憶部に記憶されている1ページ分のDLを順次描画処理部170に送信する(S305)。
上述したように、第一実施例のプリンタコントローラは、PDL解釈部120によってPDLデータに含まれるPDLコマンドを1コマンドずつ解釈し、その解釈結果を解釈結果記憶部130に1コマンド分ずつ記憶する。そして1コマンドの解釈結果が解釈結果記憶部130に記憶されると、その解釈結果はバッファ143に複製されて記憶される。そして、PDL解釈部120は次のPDLコマンドを解釈し、それと並列して、DL生成部150はバッファ143に記憶された解釈結果の複製からDLを生成する。すなわち、PDL解釈部120によるPDLデータの解釈処理とDL生成部150によるDLの生成処理とが独立して非同期に実行される。
このように本実施例のプリンタコントローラは、解釈結果をバッファに複製する構成を有することにより、DLの生成処理の遅延によって、PDLデータの解釈処理を遅延させることなく、効率的にPDLデータの解釈処理を実行する。
<第二実施例>
第一実施例のプリンタコントローラにおいて、PDLコマンドの解釈結果はバッファ143に複製されていた。本実施例のプリンタコントローラは、PDLコマンドの解釈結果をバッファ143に複製するか否かを判定し、その判定に基づいて解釈結果を複製する。この理由について次に説明する。
PDLコマンド、特に描画コマンドの解釈結果の複製処理は、解釈結果にアドレス参照ポインタが含まれている場合、ポインタによって参照されるメモリアドレスを変更する処理を含む。このメモリアドレスの変更処理は、図5を用いて上述したように、時間を要する処理である。このようなデータの構造は、複製処理に時間がかかりすぎて全体の処理効率が低下する場合がある。そこで、このようなデータ構造であれば複製処理を行わないようにする。
一方、これらの描画コマンドに対して、フォントの描画コマンドなどは、解釈結果はフォントのグリフ(形状)を指定するインデックス番号であり、ポインタの変更を必要としないので、その解釈結果の複製処理の負荷は小さい。しかし、解釈結果からDLを生成する際に、グリフの輪郭(オブジェクトの輪郭)を抽出する処理が行われるため、解釈結果からのDLの生成処理の負荷は大きい。
以上説明したような事情があるため、本実施例のプリンタコントローラは、この処理の負荷の大きさに応じて、解釈結果の複製処理を行うか行わないかを切り替える。
<第二実施例のプリンタコントローラの構成>
本実施例のプリンタコントローラは、第一実施例のプリンタコントローラとは、PDL解釈部120がPDLデータの解釈結果の複製を行うか否かを判定する点、および、その判定に従って解釈結果を複製する点で異なる。
本実施例のPDL解釈部120は、図6に示されるフローチャートの処理を実行する。
他の部に関しては、特に説明がなければ、第一実施例と同様である。
<第二実施例のプリンタコントローラの動作>
図6のフローチャートを用いて、本実施例のプリンタコントローラの動作、特にPDL解釈部120について説明する。
<PDLデータの解釈>
図6は、PDL解釈部120および解釈結果記憶部130によるPDLデータの解釈処理のフローチャートである。
S601〜S607の処理は、S201〜S207の処理と同様である。
そして解釈結果記憶部130は、解釈結果記憶部130が記憶している解釈結果をバッファ143に複製させるか否かを判定する(S608)。判定方法については、図7を用いて後述する。
S608において解釈結果を複製させないと判定した場合、解釈結果記憶部130は、DL生成部150に図4に示されるフローチャートの処理を実行させる。また解釈結果記憶部130は、DL生成部150に、解釈結果記憶部130が記憶している解釈結果からDLを生成させる(S609)。具体的には、解釈結果記憶部130は以下の処理を実行する。
解釈結果記憶部130は、バッファ143に記憶された解釈結果の全てがDL生成部150によって処理されたかを、バッファ143に解釈結果が残っているか否かで判定する。つまりバッファ143に解釈結果が残っていない場合に、解釈結果記憶部130は、バッファ143に記憶された解釈結果の全てがDL生成部150によって処理されたと判定する。解釈結果記憶部130は、バッファ143に未処理の解釈結果がなくなったかを所定の時間間隔で判定する。そして解釈結果記憶部130は、バッファ143に記憶された解釈結果の全てが処理されたと判定した場合に、DL生成部150に、解釈結果記憶部130が記憶している解釈結果からDLを生成させる。このDLの生成指示は、図1の解釈結果記憶部130とDL生成部150とを接続する信号線を介して、解釈結果記憶部130によってDL生成部150に通知される。するとDL生成部150は、解釈結果記憶部130に記憶されている解釈結果からDLを生成し、生成が完了すると解釈結果記憶部130にDLの生成が完了したことを通知する。そして解釈結果記憶部130は、DL生成部150からのDLの生成完了の通知を受信したことに応じて、PDL解釈部120にPDLデータの解釈を再開するように通知する。
そして処理はS611に進む。なお本実施例の解釈結果記憶部130は、DL生成部150によって解釈結果に直接アクセスされるため、PDL解釈部120とDL生成部150に共用される記憶部と言える。
S608において解釈結果を複製すると判定した場合、PDL解釈部120は、解釈結果記憶部130に、解釈結果記憶部130が記憶している解釈結果を複製させて、その複製をバッファ143に記憶させる(S610)。複製処理については図5を用いて上述したとおりである。解釈結果記憶部130によるこの複製処理については図5を用いて後述する。この複製が完了すると、解釈結果記憶部130は、解釈結果の複製が完了したことを、図1の解釈結果記憶部130とDL生成部150とを接続する信号線を介してDL生成部150に通知する。また解釈結果記憶部130は、PDLデータの解釈を再開するように、図1の解釈結果記憶部130とPDL解釈部120とを接続する信号線を介してPDL解釈部120に通知する。そして処理はS611に進む。
PDL解釈部120は、解釈結果記憶部130からのPDLデータの解釈の再開通知を受信すると、PDLデータの解釈を再開する(S611)。そして処理はS202へ戻り、次のPDLコマンドの解釈を始める。
<PDL解釈結果をバッファ143に複製するか否かの判定>
解釈結果記憶部130の実行するS608の判定処理について、図7のフローチャートおよび図8を用いて説明する。
まず図8を用いて、本判定処理の目的について説明する。
図8(a)は、未処理の解釈結果がバッファ143に残っていない場合において、解釈結果記憶部130に記憶されている解釈結果の複製を行うか否かを説明する図である。
図8(a)に示されるTcとは、解釈結果記憶部130に記憶されている解釈結果から直接DL生成部150がDLを生成する処理の、処理負荷である。一方Tdとは、解釈結果記憶部130に記憶されている解釈結果をバッファ143に複製する処理の、処理負荷である。なお処理負荷が大きいと処理時間もより多くかかる。図8(a)に示されるように、未処理の解釈結果がバッファ143に残っていない場合、解釈結果記憶部130に記憶されている解釈結果の処理としては2択である。1つは、解釈結果記憶部130に記憶されている解釈結果をバッファ143に解釈結果を複製する処理(複製処理)である。もう1つは、解釈結果記憶部130に記憶されている解釈結果をバッファ143に複製せずに、その解釈結果から直接DLを生成する処理(DL生成処理)である。PDL解釈部120は早く次のPDLコマンドの解釈処理を行いたいので、複製処理かDL生成処理かのいずれか早く処理が完了する方の処理を選択すればよい。したがって、図8(a)の場合、TcとTdとを比較して処理負荷が小さい方の処理が実行される。
一方図8(b)は、未処理の解釈結果がバッファ143に残っている場合において、解釈結果記憶部130に記憶されている解釈結果の複製を行うか否かを説明する図である。
図8(b)に示されるTdとは、図8(a)を用いて説明したものと同様である。一方Trとは、図7を用いて後述するように、バッファ143に記憶されている全ての未処理の解釈結果からDLを生成する処理の、処理負荷である。なお処理負荷が大きいと処理時間もより多くかかる。図8(b)に示されるように、未処理の解釈結果がバッファ143に残っている場合、解釈結果記憶部130に記憶されている解釈結果の処理としては2択である。1つは、解釈結果記憶部130に記憶されている解釈結果をバッファ143に複製する処理(複製処理)である。もう1つは、バッファ143に記憶されている未処理の解釈結果からのDLの生成を待ってから、解釈結果記憶部130に記憶されている解釈結果をバッファ143に複製せずにその解釈結果から直接DLを生成する処理(DL生成処理)である。バッファ143に未処理の解釈結果が残っているということは、DLの生成処理が遅れているということなので、DLの生成処理の遅延を早く解消したい。そのために、複製処理かDL生成処理かのいずれか早く処理が完了する方の処理を選択する。したがって、図8(b)の場合、TrとTdとを比較して処理負荷が小さい方の処理が実行される。
図7のフローチャートを用いて、この処理負荷に基づく判定処理について説明する。
解釈結果記憶部130は、解釈結果記憶部130に記憶している解釈結果に基づいて、解釈結果を複製するための負荷(処理コスト)を予測する(S401)。例えば、解釈結果記憶部130に記憶された解釈結果のデータサイズや、描画コマンドの種類や解釈結果によって描画される描画オブジェクトの種類毎に定められた負荷係数(値)によって負荷を数値的に計算する。なおこの負荷が大きければ解釈結果をバッファ143に複製するために要する時間も大きくなる傾向があるので、間接的に処理時間を予測しているとも言い換えることができる。
一般的には解釈結果のデータサイズが大きいほど複製処理の負荷は大きくなるが、その他の要因によっても複製処理の負荷は大きくなる。具体的には図2を用いて説明した、ベジエ曲線を指定する描画コマンドなどは、多くの場合、曲率が小さい曲線を描くため、リンク構造を持つ。そのためベジエ曲線を指定する描画コマンドの負荷係数は、リンク構造を持たない解釈結果が生成される直線の描画コマンドの負荷係数より大きく設定される。また逆に、フォントの描画コマンドのグリフを指定するインデックス番号の複製のような単純な解釈結果の複製となる描画コマンドの負荷係数は、比較的小さく設定される。
続いて解釈結果記憶部130は、DL生成部150が処理していない、バッファ143に記憶されている解析結果の個数を調べる(S402)。
未処理の解析結果がない場合(S402の個数が0の場合)、解釈結果記憶部130は、DL生成部150が解釈結果記憶部130に記憶されている解釈結果を処理してDLを生成するための負荷を予測する(S403)。すなわち、解釈結果記憶部130は、この解釈結果を複製せずにこの解釈結果からDLを生成する場合の処理コストを求める。例えば、バッファ143に記憶される解釈結果のデータサイズ、或いは解釈結果によって描画される描画オブジェクトの種類毎に定められたS401と異なる負荷係数(値)によって負荷を数値的に計算する。具体的には曲率の小さい曲線の描画コマンドや、破線やシェーディングの描画コマンドは、DLの生成には比較的時間がかからないのでそのような描画コマンドの負荷は、そうでない描画コマンドよりも小さくなるように設定される。一方で、フォントの描画コマンドのような解釈結果からDLを生成する際に比較的時間がかかるような描画コマンドの負荷は、そうでない描画コマンドよりも大きくなるように設定される。
続いて解釈結果記憶部130は、S401とS403で予測した負荷を比較する(S404)。この比較によって、解釈結果記憶部130は、2種類の処理の遅延のうち何れが大きいかを判定する。この場合の一方の遅延は、S401の複製負荷による遅延、すなわち、解釈結果のバッファ143への複製が開始してから完了するまでの間、PDLデータの解釈が中断されることによって生じる遅延である。他方の遅延は、S403の処理負荷による遅延、すなわち、DL生成部150が解釈結果記憶部130にアクセスしてDLを生成している間、PDLデータの解釈が中断されることによって生じる遅延である。つまり、解釈結果を複製する場合と、しない場合とで、どちらの方がPDLデータの解釈の再開に時間がかかるかを判定している。
S401で予測した負荷がS403で予測した負荷より大きい場合(解釈結果を複製する負荷が大きい場合)、解釈結果記憶部130は解釈結果を複製しないと判定する(S405)。
S401で予測した負荷がS403で予測した負荷以下の場合(解釈結果を複製する負荷が小さい場合)、解釈結果記憶部130は解釈結果を複製すると判定する(S407)。
一方、S402にて、未処理の解析結果が残っている場合、解釈結果記憶部130は、DL生成部150が未処理の解釈結果を全て処理するための負荷を予測する(S406)。すなわち、解釈結果記憶部130は、既にバッファ143に複製された未処理の解釈結果からDL生成する場合の処理コストを求める。例えば未処理の解釈結果毎に,S403と同じ方法で処理負荷を予測した値の和を計算する。更に、解釈結果記憶部130は、DL生成部150がバッファ143に記憶されている解釈結果の複製を受信してからS406で処理負荷を計算するまでで、DL生成部150が処理を完了した分の処理負荷を上記で計算した値から減じる。その後解釈結果記憶部130は、S404にてS401とS406で予測した負荷を比較して、複製するか否かを判定する。
この比較によって、解釈結果記憶部130は、2種類の処理の遅延のうち何れが大きいかを判定する。この場合の一方の遅延は、S401の複製負荷による遅延、すなわち、解釈結果をバッファ143に複製した後に、バッファ143に記憶されたその解釈結果からDLの生成を完了するまでの遅延である。他方の遅延は、S406の処理負荷による遅延、すなわち、DL生成部150がバッファ143にアクセスして未処理の解釈結果からDLを生成した後に、解釈結果記憶部130に記憶されている解釈結果からDLの生成を完了するまでの遅延である。つまり、解釈結果を複製する場合と、しない場合とで、どちらの方が、その解釈結果からのDL生成の完了に時間がかかるかを判定している。
<負荷を予測するための計算式>
例えばS401で計算する負荷Tdの計算式は次のようになる。
Td = Kd・S + Cd(obj)
ここで、Kdは解釈結果記憶部130のハードウェア処理能力に依存する係数である。この係数はハードウェアの処理能力が高いほど小さい。また、Sは複製する解釈結果のデータサイズである。また、Cd(obj)は描画オブジェクトの種類を示すobj毎に定義される、解釈結果記憶部130のハードウェア処理能力に依存する定数値である。この定数値はハードウェアの処理能力が高いほど小さい。
また、例えばS403で計算する負荷Tcの計算式は次のようになる。
Tc = Kc(obj)・S + Cc(obj)
ここで、Kc(obj)は描画オブジェクトの種類を示すobj毎に定義される、DL生成部150のハードウェア処理能力に依存する係数である。この係数はハードウェアの処理能力が高いほど小さい。また、Sは処理する解釈結果のデータサイズである。また、Cc(obj)は描画オブジェクトの種類を示すobj毎に定義される、DL生成部150のハードウェア処理能力に依存する定数値である。この係数はハードウェアの処理能力が高いほど小さい。ここでKcを描画オブジェクト毎に定義する理由について説明する。例えば描画オブジェクトがイメージデータである場合、Sは別種の描画オブジェクトに比べて大きくなりやすい。しかしながら、DL生成部150がイメージデータを処理するのにかかる負荷(時間)は、別種の描画オブジェクトに比べて比較的小さい。このため描画オブジェクト毎に処理する描画オブジェクトのデータサイズに乗ずる係数を定義したほうが、より精度よくTcの値を予測できる。
また、例えばS406で計算する負荷Trの計算式は次のようになる。
Tr = ΣTc − Tf
ここでΣTcは、バッファ143に複製されている未処理の解釈結果の上述した負荷Tcの合計である。TfはDL生成部150が処理中の解釈結果を処理し始めてから、S406を実行するまでの時間である。
すなわち、解釈結果記憶部130は、解釈結果記憶部130が記憶したデータ(解釈結果)の、バッファ143への複製の有無を決定するために用いられる情報に基づいて、そのデータをバッファ143に複製するか否かを判定している。ここではその情報は、ここでは各処理にかかる負荷の算出値である。
以上で説明したように、解釈結果記憶部130は、解釈結果記憶部130に記憶している解釈結果から、解釈結果記憶部130による複製処理の負荷とDL生成部150によるDL生成処理の負荷とを予測する。このため、描画するオブジェクトの種類に応じた負荷を精度よく予測できる。また、バッファ143に未処理の解釈結果が残っていない際に、続くPDLデータの解釈を早く開始できるように解釈結果を複製するか否かを判定することができる。
なお本実施例において、負荷Td、Tc,Trを描画されるオブジェクトの種類に関係なく一つの式で定義したが、例えば描画オブジェクトの種類毎に予測する式を定義してもよい。
予測されるTdは、解釈結果記憶部130に記憶されている解釈結果をバッファ143に複製するまでにかかる時間に相当する。言い換えるとバッファ143に未処理の解釈結果が残っていない場合に予測されるこのTdは、複製処理を行うことによる、次のPDLデータのPDLコマンドの解釈を再開するまでの遅延時間に相当する。
バッファ143に未処理の解釈結果が残っていない場合に予測されるTcは、解釈結果記憶部130に記憶されている解釈結果から直接にDLを生成完了するまでにかかる時間に相当する。言い換えるとこのTcは、直接にDL生成処理を行うことによる、次のPDLデータのPDLコマンドの解釈を再開するまでの遅延時間に相当する。
バッファ143に未処理の解釈結果が残っていない場合には、この2種類の遅延時間に相当するTdとTcとが比較され、より遅延の少ない方の処理が選択される。このため、バッファ143に未処理の解釈結果が残っていない場合のPDL解釈部120によるPDLデータの解釈処理の再開を早めることができる。
一方で、バッファ143に未処理の解釈結果が残っている場合に予測されるTdは、複製処理を行うことによって、バッファ143に複製された解釈結果からDLの生成が開始されるまでに少なくともかかる、最短の遅延時間に相当する。
またバッファ143に未処理の解釈結果が残っている場合に予測されるTrは、バッファ143に残っている未処理の解釈結果からのDLの生成が完了するまでにかかる時間に相当する。言い換えると、解釈結果記憶部130に記憶されている解釈結果から直接にDLの生成が開始されるまでにかかる遅延時間に相当する。
バッファ143に未処理の解釈結果が残っている場合には、この2種類の遅延時間に相当するTdとTrとが比較され、より遅延の少ない方の処理が選択される。このため、バッファ143に未処理の解釈結果が残っている場合のDL生成部150によるDLの生成処理の開始を早めることができる。なおDLの生成の開始が早ければDLの生成の完了も早くなるため、結果としてDLの生成の完了を早めることができる。
なお上述した本実施例においては、各処理負荷Td、Tc、Trを算出し、算出された処理負荷を比較することで、解釈結果の複製処理を行うかを制御していた。しかし他の方法を取っても良い。
例えば、解釈結果の複製処理にかかる処理コスト(負荷Td)のみに基づいて判定しても良い。この場合、PDL解釈部120は、Tdが所定の閾値を超えた場合に複製処理を行わずにDL生成するように制御し、Tdが所定の閾値未満の場合に複製処理を行ってDL生成するように制御する。
また例えば、解釈結果のDL生成処理にかかる処理コスト(負荷Tc)のみに基づいて判定しても良い。この場合、PDL解釈部120は、Tcが所定の閾値を超えた場合に、複製処理を行ってDL生成するように制御し、Tcが所定の閾値未満の場合に、複製処理を行わずにDL生成するように制御する。
また例えば、バッファ143に記憶されている未処理の解釈結果のDL生成処理にかかる処理コスト(負荷Tr)のみに基づいて判定しても良い。この場合、PDL解釈部120は、Trが所定の閾値を超えた場合に、複製処理を行ってDL生成するように制御し、Trが所定の閾値未満の場合に、複製処理を行わずにDL生成するように制御する。
また例えば、本実施例のように各処理の処理コスト(負荷Td、Tc、Tr)を算出することなく、次のようにして、解釈結果を複製するかを判定しても良い。PDL解釈部120は、解釈結果記憶部130に記憶された解釈結果のデータサイズが所定の閾値を超えた場合に複製処理を行わずにDL生成するように制御し、解釈結果のデータサイズが所定の閾値以下の場合に複製処理を行ってDL生成するように制御する。この場合、所定の閾値が解釈結果の複製の有無を決定するために用いられる情報である。
あるいは、描画コマンドの種類や解釈結果によって描画される描画オブジェクトの種類に基づいて判定しても良い。この場合、描画コマンドの種類や描画オブジェクトの種類のうち、特定の種類の描画コマンドや描画オブジェクトを記載したテーブルを用いる。PDL解釈部120は、描画コマンドがこのテーブルに合致する(描画コマンドが特定の種類である)場合に、複製処理を行わずにDL生成するように制御し、解釈結果がこのテーブルに合致しないする場合に、複製処理を行わずにDL生成するようにする。この場合、このテーブルが解釈結果の複製の有無を決定するために用いられる情報である。例えばテーブルにはシェーディングの描画コマンドが含まれており、描画コマンドがフォントの描画コマンドであれば解釈結果の複製処理を行い、描画コマンドがシェーディングの描画コマンドであれば解釈結果の複製処理を行わない。
<その他の実施例>
以上の実施例におけるプリンタコントローラでは、解釈結果記憶部130とバッファ143とは別々のハードウェアであったが、同一のハードウェア上に構成されていても良い。この場合、該ハードウェアの有するRAM等の1つのメモリを、解釈結果記憶部130の有する固定サイズの記憶領域のメモリ、および、バッファ143の有する固定サイズの記憶領域のメモリとして機能させるようにすればよい。これがその他の実施例のうちの一例である。
また、他の例についても説明する。以上の実施例におけるプリンタコントローラは、PDLデータの解釈処理、解釈結果の複製処理、解釈結果からのDLの生成処理を独立した専用のハードウェアにて行った。しかし、以上の実施例におけるPDL解釈部120、解釈結果記憶部130、バッファ143、DL生成部150と同様の処理を、CPU等の汎用的な演算ユニットに実行させることができる。
例えばROM、RAM、そして2つのCPUを有するプリンタコントローラにおいて、PDL解釈部120、解釈結果記憶部130、バッファ143の処理を一方のCPU(CPU1)に行わせる。そしてCPU1がそれらの処理を行っている最中に、DL生成部150の処理を他方のCPU(CPU2)に行わせるようにすればよい。処理の際には、CPU1は、ROMから上述したPDL解釈部120、解釈結果記憶部130、バッファ143の処理を実行するためのプログラムを読み出して実行する。またCPU2は、ROMから上述したDL生成部150の処理を実行するためのプログラムを読み出して実行する。この場合に、RAMが上述した解釈結果記憶部130およびバッファ143のそれぞれの記憶領域として機能する。この解釈結果記憶部130として機能する記憶領域とバッファ143として機能する記憶領域とは、重複しない。
またこの処理を、PDLコマンドの単位のスレッドで行うようにすれば、CPU1がPDLコマンドの解釈処理を実行している間にCPU2が別の解釈結果からのDLの生成処理を実行できるようにプリンタコントローラを構成することができる。そしてスレッドで処理を行うことで、逆に、CPU2がPDLコマンドの解釈処理を実行し、その間に、CPU1が別の解釈処理からのDLの生成処理を実行できるようにも、プリンタコントローラを構成することができる。
すなわち、本発明は、以下の処理を実行することによっても実現される。その処理は、上述した実施例の機能を実現させるソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (25)

  1. PDLデータを解釈し、その解釈結果を第1の記憶手段に記憶する解釈手段と、
    前記第1の記憶手段に記憶されている解釈結果を、複数のPDLデータの解釈結果を記憶可能な第2の記憶手段に記憶する記憶制御手段と、
    PDLデータの解釈結果を、前記第1の記憶手段または前記第2の記憶手段から取得し、当該取得された解釈結果に基づいてディスプレイリストを生成する生成手段と、
    を有し、
    前記記憶制御手段は、前記第1の記憶手段に記憶されている解釈結果のデータサイズに応じて、当該解釈結果を前記第2の記憶手段に記憶するか否かを制御し、
    前記生成手段は、前記記憶制御手段による前記制御の結果、閾値未満のデータサイズを持つ釈結果を前記第2の記憶手段から取得し、前記閾値を越えるデータサイズを持つ釈結果を前記第1の記憶手段から取得する装置。
  2. 前記記憶制御手段は、前記第1の記憶手段に記憶されている前記解釈結果のデータサイズに応じて、前記閾値未満のデータサイズを持つ当該記憶されている前記解釈結果を前記第2の記憶手段に記憶し、前記閾値を越えるデータサイズを持つ当該記憶されている前記解釈結果を前記第2の記憶手段に記憶しないような前記制御を行う請求項1に記載の装置。
  3. 前記記憶制御手段は、前記第1の記憶手段に記憶されている前記解釈結果に含まれているデータが、前記解釈結果に含まれている他のデータが記憶されている前記第1の記憶手段におけるメモリアドレスを指し示すポインタである場合、前記第2の記憶手段への記憶の際に、当該ポインタが指し示すメモリアドレスを、前記他のデータが記憶される前記第2の記憶手段におけるメモリアドレスに変更する請求項2に記載の装置。
  4. 前記解釈手段は、前記記憶制御手段による解釈結果の記憶処理の間、PDLデータの解釈および解釈結果の前記第1の記憶手段への記憶を中断する請求項2または3に記載の装置。
  5. 前記解釈手段によるPDLデータの解釈と、前記生成手段によるディスプレイリストの生成とは、並行に実行される請求項1乃至4の何れか1項に記載の装置。
  6. 前記解釈手段は、第1のスレッドであり、
    前記生成手段は、前記第1のスレッドと異なる第2のスレッドであり、
    前記生成手段によるディスプレイリストの生成が実行されている間に、前記解釈手段によるPDLデータの解釈が実行される請求項1乃至5の何れか1項に記載の装置。
  7. 前記解釈手段は、PDLデータをPDLコマンド単位で解釈し、その解釈結果を前記第1の記憶手段における特定のメモリアドレスからPDLコマンド単位で、より古い解釈結果に上書きすることで、その解釈結果を前記第1の記憶手段に記憶する請求項1乃至6の何れか1項に記載の装置。
  8. 前記生成手段によって生成されたディスプレイリストからビットマップ画像を描画する描画手段をさらに有し、
    前記解釈手段は、複数の種類のPDLのPDLデータを解釈可能であり、
    前記解釈結果は、PDLの種類に依存しないフォーマットのデータであり、
    前記ディスプレイリストは、前記描画手段において処理可能なフォーマットのデータである請求項1乃至7の何れか1項に記載の装置。
  9. 記生成手段は、
    前記記憶制御手段が前記第1の記憶手段に記憶されている解釈結果を前記第2の記憶手段に記憶しない場合に、前記第1の記憶手段に記憶されている当該解釈結果からディスプレイリストを生成し、
    前記記憶制御手段が前記第1の記憶手段に記憶されている解釈結果を前記第2の記憶手段に記憶する場合に、前記第2の記憶手段に記憶された当該解釈結果からディスプレイリストを生成する請求項1に記載の装置。
  10. 前記解釈手段は、前記記憶制御手段が解釈結果を前記第2の記憶手段に記憶しない場合、前記生成手段が、前記第1の記憶手段に記憶されている当該解釈結果からのディスプレイリストの生成を完了するまで、PDLデータの解釈および解釈結果の前記第1の記憶手段への記憶を中断する請求項9に記載の装置。
  11. 前記記憶制御手段は、前記第1の記憶手段に記憶されている釈結果のデータサイズが前記閾値を超える場合に、前記第1の記憶手段に記憶されている当該解釈結果を前記第2の記憶手段に記憶せず、前記第1の記憶手段に記憶されている解釈結果のデータサイズが前記閾値未満である場合に、前記第1の記憶手段に記憶されている当該解釈結果を前記第2の記憶手段に記憶する請求項10に記載の装置。
  12. 前記第1の記憶手段および前記第2の記憶手段は、同一の記憶手段における異なる記憶領域である請求項1乃至11の何れか1項に記載の装置。
  13. 前記PDLデータに含まれるPDLコマンドは、曲線を指定する描画コマンドであり、前記描画コマンドの解釈結果は、前記曲線を近似した複数の線分のデータであって、互いに接続する線分は互いにリンクしており、
    前記描画コマンドの解釈結果から得られるディスプレイリストは、前記複数の線分の輪郭線を表す複数のオブジェクトのデータである請求項1乃至12の何れか1項に記載の装置。
  14. PDLデータを解釈し、描画部によって処理可能な中間データを生成する装置であって、
    PDLデータを解釈し、当該解釈結果を第1の記憶領域に記憶する解釈手段と、
    前記第1の記憶領域に記憶されている解釈結果を、複数のPDLデータの解釈結果を記憶可能な第2の記憶領域に記憶する記憶制御手段と、
    前記解釈手段によるPDLデータの解釈に並行して、前記第2の記憶領域に記憶されている解釈結果から中間データを生成可能な生成手段と、
    を有し、
    前記記憶制御手段は、前記第1の記憶領域に記憶されている解釈結果を前記第2の記憶領域に記憶するか否かを、当該解釈結果のデータサイズに応じて制御し、
    前記生成手段は、前記記憶制御手段による制御の結果、特定のデータサイズを超える解釈結果については、前記第1の記憶領域に記憶されている解釈結果から中間データを生成する装置。
  15. 前記記憶制御手段は、前記特定のデータサイズを超える、前記第1の記憶領域に記憶されている解釈結果については、前記第1の記憶領域から前記第2の記憶領域へ記憶しない請求項14に記載の装置。
  16. 前記記憶制御手段は、前記特定のデータサイズ未満の、前記第1の記憶領域に記憶されている解釈結果については、前記第1の記憶領域から前記第2の記憶領域へ記憶する請求項14または15に記載の装置。
  17. 前記第1および第2の記憶領域は、異なる記憶装置である請求項14乃至16の何れか1項に記載の装置。
  18. 前記第1および第2の記憶領域は、同じメモリ上の異なる記憶領域である請求項14乃至16の何れか1項に記載の装置。
  19. 前記記憶制御手段は、前記第1の記憶領域に記憶されている解釈結果を前記第2の記憶領域に記憶しない場合に、前記生成手段に所定の情報を通知し、
    前記生成手段は、前記通知された所定の情報に基づいて、前記第1の記憶領域に記憶されている解釈結果から中間データを生成する請求項14乃至18の何れか1項に記載の装置。
  20. 前記生成手段は、前記第2の記憶領域に記憶されている全ての解釈結果から中間データを生成してから、前記第1の記憶領域に記憶されている、特定のデータサイズを超える解釈結果から中間データを生成する請求項14乃至19の何れか1項に記載の装置。
  21. 前記解析手段は、前記生成手段が、前記第1の記憶領域に記憶されている、特定のデータサイズを超える解釈結果から中間データを生成してから、当該解釈結果に対応するPDLデータに続くPDLデータの解釈を行う請求項20に記載の装置。
  22. PDLデータの解釈結果とは、PDLデータを解釈した結果得られるデータである請求項14乃至21の何れか1項に記載の装置。
  23. 前記生成された中間データに基づいてビットマップデータを生成する前記描画部と、
    前記生成されたビットマップデータに基づく画像を印刷する印刷部と、
    を有する請求項14乃至22の何れか1項に記載の装置。
  24. PDLデータを解釈し、その解釈結果を第1の記憶手段に記憶する解釈工程と、
    前記第1の記憶手段に記憶されている解釈結果を、複数のPDLデータの解釈結果を記憶可能な第2の記憶手段に記憶する記憶制御工程と、
    PDLデータの解釈結果を、前記第1の記憶手段または前記第2の記憶手段から取得し、当該取得された解釈結果に基づいてディスプレイリストを生成する生成工程と、
    を有し、
    前記記憶制御工程は、前記第1の記憶手段に記憶されている解釈結果のデータサイズに応じて、当該解釈結果を前記第2の記憶手段に記憶するか否かを制御し、
    前記生成工程は、前記記憶制御工程による前記制御の結果、閾値未満のデータサイズを持つ解釈結果を前記第2の記憶手段から取得し、前記閾値を越えるデータサイズを持つ解釈結果を前記第1の記憶手段から取得する方法。
  25. PDLデータを解釈し、描画部によって処理可能な中間データを生成する方法であって、
    PDLデータを解釈し、当該解釈結果を第1の記憶領域に記憶する解釈工程と、
    前記第1の記憶領域に記憶されている解釈結果を、複数のPDLデータの解釈結果を記憶可能な第2の記憶領域に記憶する記憶制御工程と、
    前記解釈工程によるPDLデータの解釈に並行して、前記第2の記憶領域に記憶されている解釈結果から中間データを生成可能な生成工程と、
    を有し、
    前記記憶制御工程は、前記第1の記憶領域に記憶されている解釈結果を前記第2の記憶領域に記憶するか否かを、当該解釈結果のデータサイズに応じて制御し、
    前記生成工程は、前記記憶制御工程による前記制御の結果、特定のデータサイズを超える解釈結果については、前記第1の記憶領域に記憶されている解釈結果から中間データを生成する方法。
JP2013151655A 2013-07-22 2013-07-22 ディスプレイリストを生成する装置、方法、プログラム Active JP6226604B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013151655A JP6226604B2 (ja) 2013-07-22 2013-07-22 ディスプレイリストを生成する装置、方法、プログラム
US14/335,536 US9171240B2 (en) 2013-07-22 2014-07-18 Generating a display list for processing by a rendering unit
US14/864,575 US10394509B2 (en) 2013-07-22 2015-09-24 Display list generation apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013151655A JP6226604B2 (ja) 2013-07-22 2013-07-22 ディスプレイリストを生成する装置、方法、プログラム

Publications (3)

Publication Number Publication Date
JP2015020384A JP2015020384A (ja) 2015-02-02
JP2015020384A5 JP2015020384A5 (ja) 2016-09-08
JP6226604B2 true JP6226604B2 (ja) 2017-11-08

Family

ID=52343364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013151655A Active JP6226604B2 (ja) 2013-07-22 2013-07-22 ディスプレイリストを生成する装置、方法、プログラム

Country Status (2)

Country Link
US (2) US9171240B2 (ja)
JP (1) JP6226604B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USD842918S1 (en) 2016-08-23 2019-03-12 Fujifilm Corporation Lens for camera

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07144444A (ja) * 1993-11-25 1995-06-06 Canon Inc 通信制御装置
US6483604B1 (en) * 1999-02-26 2002-11-19 Nex Press Solutions Disk-based image storage system and method with prioritized loading and retrieval operations
JP2004013770A (ja) * 2002-06-11 2004-01-15 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
JP2004034583A (ja) * 2002-07-05 2004-02-05 Canon Inc 印刷装置
US20040246502A1 (en) * 2003-06-09 2004-12-09 Jacobsen Dana A. Rendering sub-sections
US20070282928A1 (en) * 2006-06-06 2007-12-06 Guofang Jiao Processor core stack extension
JP2010105388A (ja) * 2008-09-30 2010-05-13 Brother Ind Ltd 画像形成装置
JP5341489B2 (ja) * 2008-11-26 2013-11-13 キヤノン株式会社 画像形成装置、方法、及び、プログラム
US8966181B2 (en) * 2008-12-11 2015-02-24 Seagate Technology Llc Memory hierarchy with non-volatile filter and victim caches
JP2010176218A (ja) * 2009-01-27 2010-08-12 Seiko Epson Corp 印刷システム、印刷装置、印刷方法
JP2011187000A (ja) * 2010-03-11 2011-09-22 Fuji Xerox Co Ltd 画像形成装置、画像形成システム及び制御プログラム
JP2012060401A (ja) * 2010-09-08 2012-03-22 Ricoh Co Ltd 画像形成装置及び描画制御方法
JP5915039B2 (ja) * 2010-09-15 2016-05-11 株式会社リコー 印刷装置および印刷装置の制御方法
JP5739639B2 (ja) 2010-10-19 2015-06-24 キヤノン株式会社 画像形成装置、画像形成方法、およびプログラム
JP2012234454A (ja) * 2011-05-09 2012-11-29 Canon Inc 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム
JP2013012935A (ja) * 2011-06-29 2013-01-17 Ricoh Co Ltd 画像処理装置、画像処理方法、プログラム及び記録媒体
JP5738821B2 (ja) * 2012-10-31 2015-06-24 京セラドキュメントソリューションズ株式会社 画像形成装置

Also Published As

Publication number Publication date
US20150022841A1 (en) 2015-01-22
US9171240B2 (en) 2015-10-27
US10394509B2 (en) 2019-08-27
US20160011837A1 (en) 2016-01-14
JP2015020384A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
RU2437155C2 (ru) Устройство для обработки изображений, способ обработки изображений и носитель, хранящий программу для осуществления способа
JP6385406B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP3563793B2 (ja) データ処理方法及びその装置
US8861011B2 (en) Print image processing system and non-transitory computer readable medium
US10534986B2 (en) Printing apparatus having interpreters interpreting print data, printing method, and storage medium
JP5099594B2 (ja) 画像処理装置、画像処理システムおよび画像処理プログラム
JP6226604B2 (ja) ディスプレイリストを生成する装置、方法、プログラム
US10885409B2 (en) Print data processing apparatus
JP6067039B2 (ja) 印刷に要する時間の予測値を求める画像処理装置、画像処理方法およびそのプログラム
EP2546783B1 (en) Recovery from an out-of-storage condition at a raster data spool.
JP5244770B2 (ja) 画像形成装置
US10089561B2 (en) Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width
US9639792B2 (en) Resolution of out of memory conditions for shared memory in a print controller
JP2007152898A (ja) 印刷処理装置
US20020101603A1 (en) Method and apparatus for embodying documents
JP6580944B2 (ja) 画像形成装置
US8914591B2 (en) Information processing apparatus, method for controlling same
JP7384031B2 (ja) 印刷装置、制御方法、及び制御プログラム
US8755079B2 (en) Image forming apparatus discriminating whether image data of an object to be subjected to transformation processing is stored in a storage unit
JP5409559B2 (ja) 画像形成装置および画像形成プログラム
US20180150729A1 (en) Dynamic storage of raster data at a rip spool for multiple copy print jobs
JP2020144604A (ja) 画像形成システム、情報処理装置、及び情報処理方法
JP2017087736A (ja) 印刷に要する時間の予測値を求める画像処理装置、画像処理方法およびそのプログラム
JP2017034597A (ja) 画像処理装置、画像処理方法およびプログラム
JP2008181306A (ja) データ処理装置および方法ならびにプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170825

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: 20170912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171010

R151 Written notification of patent or utility model registration

Ref document number: 6226604

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151