JP2022094793A - 画像形成装置、画像形成方法及びプログラム - Google Patents
画像形成装置、画像形成方法及びプログラム Download PDFInfo
- Publication number
- JP2022094793A JP2022094793A JP2020207880A JP2020207880A JP2022094793A JP 2022094793 A JP2022094793 A JP 2022094793A JP 2020207880 A JP2020207880 A JP 2020207880A JP 2020207880 A JP2020207880 A JP 2020207880A JP 2022094793 A JP2022094793 A JP 2022094793A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- time
- processes
- image forming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 76
- 230000015572 biosynthetic process Effects 0.000 title abstract description 6
- 238000009877 rendering Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007717 exclusion Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000011435 rock Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Record Information Processing For Printing (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】 本発明は、印刷データから画像データを形成する画像形成装置において、冗長なタイムアウト時間やデッドロックを回避するために、適切なタイムアウト時間を設定することを目的とする。【解決手段】 印刷データから画像データを形成する画像形成装置であって、前記画像データの形成を行うための複数の処理を並列に行う並列処理手段と、前記複数の処理の処理内容と前記並列処理手段の実行環境との少なくともいずれか一方を取得する取得手段と、前記処理内容と前記実行環境との少なくともいずれか一方に基づき、前記複数の処理それぞれのタイムアウト時間を設定する設定手段と、を有することを特徴とする。【選択図】 図8
Description
本発明は、印刷データから画像データを形成する画像形成装置、画像形成方法及びプログラムに関する。
一般的にPDL描画処理は、PDL解析処理と描画処理に分割できる。PDL解析処理は、PDLデータを解析し、より抽象度の低い描画コマンドに変換する。描画処理は描画コマンドを受け取り、デバイス座標への変換処理及び色合成処理を行い、ラスタ画像を作成する。ラスタ画像はプリンタデバイスで紙に出力されたり、モニタデバイスで表示されたりする。
近年、実行環境の高機能化に伴い、PDL描画処理の高速化要求も高まってきており、PDL描画処理を同時並列で処理することで高速化している(特許文献1)。さらに描画処理についても、中間データをタイル単位に分割して、各タイルを並列にラスタ画像を生成することで高速化を実現している(特許文献2)。
並列処理では、処理間が非同期で実行されるため、処理の高速化が可能になる。一方で、処理間で共有するリソースの排他や処理間の同期など制御が複雑になり、排他や同期の衝突で制御ができないデッドロックといった回避不可能な問題が発生してしまう(特許文献3)。デッドロックなどの問題が発生したときに強制的に排他や同期を解除するためにタイムアウトと呼ばれる仕組みが備わっている。一般的にタイムアウトは、排他や同期が単純で品質が確保された場合など設定されないか、もしくは正常処理に影響がない範囲で冗長な値が設定される。また一意に処理時間が決まる場合は、処理時間を予測してタイムアウトの発生を抑制している(特許文献4)。
しかしながら、PDL描画処理のように、PDL解析処理と描画処理および描画処理内で各処理が並列で実行されるような場合、より排他や同期が複雑になってしまう。また、システムの予期せぬエラーやユーザーよるキャンセルのタイミングなどすべてのユースケースに対して、デッドロックを回避することが必要である。ただし、実行環境や処理環境によってはデッドロックが発生してしまい、万一デッドロックが発生したときにPDL描画処理から制御が戻らないことがあった。また、入力PDLの内容によらず、PDL描画処理に対する上位の印刷処理に対して冗長なタイムアウト時間を設定している場合は、ユーザーに処理が戻るまでに時間がかかることがあった(図14(A))。
本発明は、上記課題を鑑みてなされたものであり、印刷データから画像データを形成する画像形成装置において、冗長なタイムアウト時間やデッドロックを回避するために、適切なタイムアウト時間を設定することを目的とする。
本発明は、印刷データから画像データを形成する画像形成装置であって、前記画像データの形成を行うための複数の処理を並列に行う並列処理手段と、前記複数の処理の処理内容と前記並列処理手段の実行環境との少なくともいずれか一方を取得する取得手段と、前記処理内容と前記実行環境との少なくともいずれか一方に基づき、前記複数の処理それぞれのタイムアウト時間を設定する設定手段と、を有することを特徴とする。
本発明によれば、印刷データから画像データを形成する画像形成装置において、冗長なタイムアウト時間やデッドロックを回避するために、適切なタイムアウト時間を設定するが出来る。
以下、各実施形態について図面に基づいて説明する。
(実施形態1)
図1は、画像形成処理装置のハードウェア構成の一例を示す図である。図1にて、CPU101は、ROM103又はHDD114またはSSD115からRAM102にロードされたOSや一般アプリケーション等のプログラムを実行し、後述するソフトウェアの機能及びフローチャートの処理を実現する。RAM102は、CPU101の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC107)は、キーボード112や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC108)は、CRTディスプレイ113の表示を制御する。ディスクコントローラ(DKC109)は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル等をメモリするハードディスクドライブ(HDD114)やソリッドステートドライブ(SSD115)等とのアクセスを制御する。PRTC110は接続されたプリンタとの間の信号の交換を制御する。NC111は、ネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。なお、本実施形態では以下に示す画像形成処理装置の機能は、ソフトウェアにより実現されるものと説明するが、各機能を専用のハードウェアで画像形成処理装置に実装するようにしても良い。なお、本実施形態のCPU101は、マルチコアのCPUであるものとする。画像形成処理装置が複数のCPUを有していても良い。
図1は、画像形成処理装置のハードウェア構成の一例を示す図である。図1にて、CPU101は、ROM103又はHDD114またはSSD115からRAM102にロードされたOSや一般アプリケーション等のプログラムを実行し、後述するソフトウェアの機能及びフローチャートの処理を実現する。RAM102は、CPU101の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC107)は、キーボード112や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC108)は、CRTディスプレイ113の表示を制御する。ディスクコントローラ(DKC109)は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル等をメモリするハードディスクドライブ(HDD114)やソリッドステートドライブ(SSD115)等とのアクセスを制御する。PRTC110は接続されたプリンタとの間の信号の交換を制御する。NC111は、ネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。なお、本実施形態では以下に示す画像形成処理装置の機能は、ソフトウェアにより実現されるものと説明するが、各機能を専用のハードウェアで画像形成処理装置に実装するようにしても良い。なお、本実施形態のCPU101は、マルチコアのCPUであるものとする。画像形成処理装置が複数のCPUを有していても良い。
図2は、実施形態1の印刷システムにおけるブロック図を示している。印刷データ生成部201は、印刷対象データ202から印刷データ203を生成する。画像形成処理装置100は、印刷データ203を出力データ211に変換するために、入力部204と、PDL解析部205と、ラスタ画像生成部206と、出力部207と、複数の処理から構成されている。PDL解析部205と、ラスタ画像生成部206は、並列で動作可能に構成されている。ラスタ画像生成部206は、中間データ生成部208と、タイルデータ生成部209と、レンダリング部210と、から成り、それぞれは並列で動作することができる。図2に示すコンピュータと画像形成処理装置の機能ブロック図はこのように配置される必要はなく、いずれかをコンピュータで行ってもよいし、いずれかをプリンタで行ってもよいし、自由に変更可能である。これらは通常は、画像形成処理装置内のRAM102に格納されている。
図3は、実施形態1の入力部204から出力部207に至る機能ブロック図を示している。本図を用いて印刷データ203から出力データ211の生成までを説明する。
入力部204は、印刷データ生成部201が生成した印刷データ203を受け取る。印刷データ203は、印刷内容が記述されたPDLデータ300と出力する用紙サイズ、出力するページ数などから構成されている。PDL解析部205にPDLデータ300を渡して、出力データ211の生成の完了を待ち、タイムアウトスレッドを起動する。
PDL解析部205は、入力部204が受け取った印刷データ203に含まれるPDLデータ300を解析し、描画命令を抽出して、描画コマンドを生成する。必要に応じて画像やフォントなどのリソース301をHDD114やSSD115に格納する。
中間データ生成部208は、PDL解析部205で生成した描画コマンドや必要に応じてリソース301をHDD114やSSD115から読み出して、ページもしくはページを縦方向に分割したバンド単位でエッジ情報からなる中間データ302を生成する。
中間データ生成スレッド305は、中間データ生成部208をスレッドで起動した場合のタスク構成を図示しており、1ページ分の描画コマンドを受け取るとスレッドとして起動され、描画コマンドから中間データ302を生成する。中間データ生成スレッド305は、ページ単位で並列動作可能に構成されている。ページもしくはページを縦方向に分割したバンド単位の中間データ302が生成できたら、タイルデータ生成部209もしくはタイルデータ生成スレッド306にタイルデータ303が生成可能であることを通知する。作成した中間データ302に対するタイルデータ303の生成が完了するまでスレッド間の同期を行って待ち、タイルデータ303の生成が完了したら、中間データ生成の完了をPDL解析部205に通知して終了する。
タイルデータ生成部209は、中間データ生成部208で生成したエッジ情報からなる中間データ302から並列でレンダリング処理を実行可能なタイル単位に分割したエッジ情報と、合成情報と、塗り情報とからなるタイルデータ303を生成する。
タイルデータ生成スレッド306は、タイルデータ生成部209を別スレッドで起動した場合のタスク構成を図示している。そしてタイルデータ生成部209は、中間データ生成スレッド305からタイルデータ生成開始の通知を受けたら、タイルデータ生成スレッド306をスレッドとして起動される。タイルデータ生成スレッド306はページもしくはバンド単位で生成した中間データ302分に対して並列動作可能に構成されている。並列で動作可能なサイズに分割したタイルデータ303を順次作成していく。中間データ302に対するタイルデータ303の作成が完了したら、レンダリング部210にレンダリング開始を通知する。タイルデータ303の生成が完了するまでスレッド間の同期を行ってレンダリングが終わるまで待ち、中間データ生成部208に完了を通知して終了する。
レンダリング部210は、タイルデータ生成部209で生成したタイルデータ303からタイル単位でラスタ画像データを生成する。レンダリングスレッド307は、レンダリング部210を別スレッドで起動した場合のタスク構成を図示しており、タイル単位で生成したタイルデータ303を各タイル単位で並列動作させてラスタ画像データを生成していく。
出力部207は、タイル単位で生成されたラスタ画像データから出力データ211を生成する。
図4は、印刷データ203を入力部204で処理した結果、生成される印刷ジョブ情報の一例である。印刷データ203を含む印刷ジョブ情報は、それぞれ一行で表現されている。印刷ジョブ識別子401は印刷ジョブを識別するための印刷ジョブ識別子である。PDLサイズ402は、入力されたPDLサイズである。用紙サイズ403は印刷用紙サイズである。ページ数404はページ数である。タイムアウト時間405はタイムアウトさせるまでの時間であり、後述図8のフローチャートで決定する。状態406は処理の状態であり、印刷ジョブの状態を示しており、処理待ち、処理中、処理完了、などの状態を識別できる情報が格納されている。ここでタイムアウトとは、ユーザーに通知してユーザーに処理を打ち切ることを促すことを含み、プログラム内で処理を打ち切ることに限定するものではない。
図5は、PDL解析部205でPDLを解析して得られた情報と生成される印刷ページ情報の一例である。ページ番号501は処理するページ番号であり、出力の物理ページ番号を示す。描画コマンド数502は出力する物理ページ内で生成した描画コマンド数である。リソースサイズ503は出力する物理ページ内の描画コマンド数に対して含まれていた画像やフォントデータなどのHDD114やSSD115に格納したリソース301の合計値である。タイムアウト時間504は中間データ生成処理の完了がタイムアウトするまでの時間であり、後述図9のフローチャートで決定する。状態505は処理の状態であり、PDL解析処理の状態を示しており、処理待ち、処理中、処理済み、などの状態を識別できる情報が格納されている。
図6(a)は、中間データ生成部208で描画コマンドから中間データ302を生成して得られた情報と生成される中間データ情報の一例である。中間データID601は、中間データ302を識別する中間データに割り振った一意のIDである。エッジ数602は処理した処理した中間データ302のエッジ数をカウントしたものである。中間データサイズ603は処理して生成した中間データ302のサイズである。タイムアウト時間604はタイル生成処理の完了がタイムアウトするまでの時間であり、後述図10のフローチャートで決定する。状態605は中間データ生成処理の状態であり、処理待ち、生成中、処理中、処理済み、などの状態を識別できる情報が格納されている。
図7は、タイルデータ生成部209で中間データ302からタイルデータ303を生成して得られた情報と生成されるタイルデータ情報の一例である。タイルID701はタイルデータ303を識別するタイルに割り振った一意のIDである。状態702はタイルデータ生成処理の状態であり、処理待ち、処理中、処理済み、などの状態を識別できる情報が格納されている。タイル分割数703は中間データ302から分割したタイル分割数である。並列処理数704はレンダリングスレッド307の並列処理数である。タイムアウト時間705はレンダリング処理の完了がタイムアウトするまでの時間であり、後述図12のフローチャートで決定する。
図8は、本実施形態における入力部204における処理のフローチャート図である。ステップS800(以降、「ステップS800」を「S800」と略記し、他のステップも同様に略記する)、で、印刷データ203を受け取り、図4の印刷ジョブ情報400を作成する。S801で、印刷データ203から印刷ジョブ情報およびPDLデータ300を取り出して、図4の印刷ジョブ情報400の印刷ジョブ識別子401、PDLサイズ402、用紙サイズ403、ページ数404に取得した情報を埋める。S802でタイムアウト時間を算出して、印刷ジョブ情報400のタイムアウト時間405に算出結果を格納する。ここでタイムアウトは印刷データ203から出力データ211への変換が一定時間以内に終わらなかった場合に、画像形成処理装置内でデッドロックやライブロックが発生している可能性が高い。そのため画像形成処理を強制的に止めることでOSやユーザーに対してリソースを解放することを意味している。S803では、S802で算出した値でタイムアウトするための後述図9のタイムアウトスレッドを起動する。S804でPDL解析部205に対して、PDLデータ300を渡して受け取った印刷データ203から出力データ211への変換処理を実施し、状態406を処理中に変更する。変換処理が終了したら、状態406を処理済みに、タイムアウト時間405を-1に変更する。S805で次の印刷ジョブがあるかどうか確認して次の印刷ジョブがあれば、S800に戻って処理を印刷ジョブがなくなるまで繰り返す。ジョブがなければ入力部204の処理を終了する。入力部204のタイムアウト時間405は、出力部207までの処理時間を考慮する必要がある。そのため、本実施例では、処理量に影響するPDLサイズ402、用紙サイズ403、ページ数404を使用する。PDLサイズ402が大きいと、PDL描画内容が複雑であったり、処理負荷が高い画像が埋め込まれていたりするため、処理時間に影響すると考えられる。用紙サイズ403は、出力するラスタ画像のサイズになり、処理時間に影響すると考えられる。ページ数404は、1ページあたりの処理負荷が小さくても、ページ数で処理時間に影響すると考えられる。そのため、入力部204のタイムアウト時間405はこれらの情報を使用するものとする。ただし、これに限定したものではなく解像度などを含める構成でも構わない。また、タイムアウト時間405の算出については、実行環境情報として、実行環境のCPU101のスペック(コア数、クロック数)を考慮してもよい。
図9は、印刷データ203から出力データ211への変換が一定時間以内に終わらなかった場合に、処理を中止するためのタイムアウトスレッドのフローチャート図である。S900でスレッドを初期化する。S901で一定時間スリープする。S902で経過時間を算出する。起動時刻と現時刻の差で算出するがとくに算出方法は限定するものではない。S903でタイムアウト時間405と経過時間を比較して、経過時間がタイムアウト時間405より大きい場合は、S904で出力データ211への変換処理のキャンセル処理を実行する。S906でタイムアウトスレッドの終了処理を実施してスレッドを終了する。S903でタイムアウト時間405と経過時間を比較して、経過時間がタイムアウト時間405以下の場合は、S905で該当印刷ジョブの状態406が処理完了の場合は、S906に進み、処理中の場合は、S901に戻る。
図10は、PDL解析部205におけるフローチャート図である。S1000で受け取ったPDLデータ300を解析して、描画命令から描画コマンドを生成し、図5の印刷ページ情報500を作成し、状態505を処理中に変更する。描画コマンドを生成しているときにカウントした描画コマンド数とHDD114やSSD115に格納したリソース301のサイズをそれぞれ描画コマンド数502とリソースサイズ503に格納する。S1001で中間データ生成部208に対して処理開始を通知する。一般的に、PDL解析部205の処理量とラスタ画像生成部206の処理量を比較するとPDL解析部205の処理量の方が小さくなり、並列で動作させるとPDLデータ300の解析が先行してしまう。その結果、すぐに必要とならないページの描画コマンドやリソースがメモリを圧迫してしまう。それを回避するため、解析して描画コマンドを生成するページを限定するように構成する。S1002では、状態505の処理中の数をカウントすることで先行するページ処理の上限に達しているか否かを判断し、達している場合は、S1003で描画コマンド数とリソースサイズからタイムアウト時間を算出して、タイムアウト時間504に格納する。S1004でタイムアウト時間504を設定し、中間データ生成部208が終了するのを待つ。S1005で中間データ302の生成完了にタイムアウト時間504以上要した場合、待ちが強制的に解除される。その場合は、エラーとして待ちが解除されるので、S1011でエラー処理を実施して、処理を終了する。タイムアウト時間504以内に中間データ302の生成が終了した場合、S1007で該当ページの状態505を処理済みに変更し、他のページに状態505の処理待ちがあるかどうか確認することで次のページがあるかどうか判断する。
またS1002で上限に達していない場合は、S1007で該当ページの状態505を処理済みに変更し、他のページに状態505の処理待ちがあるかどうか確認することで次のページがあるかどうか判断する。次のページがある場合は、S1000に戻り、ない場合は、S1008で描画コマンド数とリソースサイズからタイムアウト時間を算出して、タイムアウト時間504に格納する。S1009でタイムアウト時間504を設定し、中間データ生成部208が終了するのを待つ。S1010でタイムアウト時間504を-1に変更し、タイムアウト時間504以内に中間データ302の生成が終了した場合、処理を終了する。中間データ302の生成完了にタイムアウト時間504以上要した場合、待ちが強制的に解除される。その場合は、エラーとして待ちが解除されるので、S1011でエラー処理を実施して、処理を終了する。PDL解析部205のタイムアウト時間504は、レンダリング部210までの処理時間を考慮する必要がある。そのため、本実施例では、処理量に影響すると考える描画コマンド数502、リソースサイズ503を使用する。描画コマンド数502が多いと、生成する中間データが多くなり処理時間に影響すると考えられる。リソースサイズ503が大きいと、処理負荷が高い画像が埋め込まれていたりするため、処理時間に影響すると考えられる。そのため、PDL解析部205のタイムアウト時間504には、これらの情報を使用するものとする。ただし、これに限定したものではなく出力サイズなどを含める構成でも構わない。また、タイムアウト時間504の算出については、実行環境情報として、実行環境のCPU101のスペック(コア数、クロック数)を考慮してもよい。
図11は、中間データ生成部208で起動された中間データ生成スレッド処理のフローチャート図である。S1100で初期化を実施して、図6の中間データ情報600を作成する。S1101で描画コマンドおよびHDD114やSSD115に格納されたリソース301から中間データ302を生成する。状態605を生成中に変更して中間データ302を生成するときにカウントしたエッジ数および中間データ302のサイズをそれぞれエッジ数602と中間データサイズ603に格納する。S1102でタイルデータ生成部209に対して、中間データ302の生成が完了し、タイルデータ303の生成の開始を通知する。S1103でエッジ数602と中間データサイズ603からタイムアウト時間604を算出して、タイムアウト時間604に格納する。S1104で状態605を処理中に更新し、タイムアウト時間604を設定して、タイルデータ生成部209が終了するのを待つ。S1105でタイムアウト時間604以内にタイルデータ303の生成が完了しなかった場合は、待ちが強制的に解除され、S1106でエラー処理を実施する。S1107で該当中間データIDに対する状態605を処理済みに、タイムアウト時間604を-1に変更して、状態605に処理待ちがあるか否かを判断する。状態605に処理待ちがある場合は、次のページの描画コマンドがあるため、S1101から繰り返す。状態605に処理待ちがない場合は、S1108で中間データ302の生成が終了したことをPDL解析部205に通知する。S1109でスレッドの終了処理を実施する。中間データ生成部208のタイムアウト時間604は、レンダリング部210までの処理時間を考慮する必要がある。そのため、本実施例では、処理量に影響すると考えるエッジ数602、中間データサイズ603を使用する。エッジ数602が多いと、生成する中間データが多くなり処理時間に影響すると考えられる。中間データサイズ603が大きいと、処理負荷が高い画像が埋め込まれていたりするため、処理時間に影響すると考えられる。そのため、中間データ生成部208のタイムアウト時間604には、これらの情報を使用するものとする。ただし、これに限定したものではなく出力サイズなどを含める構成でも構わない。また、タイムアウト時間604の算出については、実行環境情報として、実行環境のCPU101のスペック(コア数、クロック数)を考慮してもよい。
図12は、タイルデータ生成部209で起動されたタイルデータ生成スレッド処理のフローチャート図である。S1200で初期化を実施して、図7のタイルデータ情報700を生成して、レンダリング部210で並列動作させるために分割するタイル分割数703と並列処理数704を格納する。S1201で状態702を処理中に変更して、中間データ302およびHDD114やSSD115に格納されたリソース301からタイルデータ303を生成する。S1202でレンダリング部210に対して、レンダリングが開始可能になったことを通知し、状態702を処理済みに変更する。S1203で状態702に処理待ちがあるかどうかで次の処理すべき中間データがあるかどうか確認して、あればS1201から処理を繰り返す。なければS1204でレンダリング部210の終了を待つために、タイル分割数703と並列処理数704などからタイムアウト時間を算出して、タイムアウト時間705に格納する。S1205でタイムアウト時間705を設定し、レンダリング部210の終了を待つ。S1206でタイムアウト時間705以内にレンダリング処理が完了しなかった場合は、待ちが強制的に解除され、S1207でエラー処理を実施し、S1208に進む。S1206でタイムアウト時間705以内にレンダリング処理が完了した場合は、S1208でタイルデータ303の生成の完了を中間データ生成部208に通知して、S1209でスレッドの終了処理を実施する。タイルデータ生成部209のタイムアウト時間705は、レンダリング部210の処理時間を考慮する必要がある。
そのため、本実施例では、処理量に影響すると考えるタイル分割数703、並列処理数704を使用する。タイル分割数703が多いと、処理するタイルデータ303が多くなり処理時間に影響すると考えられる。並列処理数704は、同時に処理できるタイルデータ303が処理時間に影響すると考えられる。そのため、タイルデータ生成部209のタイムアウト時間705には、これらの情報を使用するものとする。ただし、これに限定したものではなく出力サイズなどを含める構成でも構わない。また、タイムアウト時間705の算出については、実行環境情報として、実行環境のCPU101のスペック(コア数、クロック数)を考慮してもよい。
図13は、レンダリング部210で起動されたレンダリングスレッド処理のフローチャート図である。S1300で初期化を実施する。S1301でタイルデータ303からラスタ画像をレンダリングする。S1302で次のタイルデータ303があればS1301に戻り、タイルデータ303がなくなるまでレンダリング処理を繰り返す。S1303でレンダリング処理が完了したことをタイルデータ生成部209に通知して、S1304でレンダリングスレッドの終了処理を実施する。
以上、説明したように、各処理内容の粒度により、タイムアウト時間を算出、設定することで、冗長なタイムアウトに対してタイムアウトまでの時間を短縮することが可能となる。
(実施形態2)
上述した実施形態以外の他の実施例について以下で説明する。本実施形態では上述した実施形態1と同様の構成であるが、図6(a)で説明した中間データ情報に相違がある。以下の図6(b)を用いて簡単に説明する。特殊描画有無606は、透過など処理が複雑な特殊描画が含まれるかどうかの有無である。透過など処理が複雑な描画の場合は、ラスタ画像生成の処理時間に影響する。そのため、特殊描画有無606を加味した上で、タイムアウトする時間を算出することができる。具体的には、図11のS1101で描画コマンドから中間データ302をした際に、生成した中間データ302に透過処理などの特殊描画があったかどうかを特殊描画有無606に格納する。そして、S1102でタイルデータ生成部209に対して、中間データ302の生成が完了し、タイルデータ303の生成の開始を通知する。S1103でエッジ数602と中間データサイズ603と特殊描画有無606からタイムアウト時間604を算出して、タイムアウト時間604に格納する。
上述した実施形態以外の他の実施例について以下で説明する。本実施形態では上述した実施形態1と同様の構成であるが、図6(a)で説明した中間データ情報に相違がある。以下の図6(b)を用いて簡単に説明する。特殊描画有無606は、透過など処理が複雑な特殊描画が含まれるかどうかの有無である。透過など処理が複雑な描画の場合は、ラスタ画像生成の処理時間に影響する。そのため、特殊描画有無606を加味した上で、タイムアウトする時間を算出することができる。具体的には、図11のS1101で描画コマンドから中間データ302をした際に、生成した中間データ302に透過処理などの特殊描画があったかどうかを特殊描画有無606に格納する。そして、S1102でタイルデータ生成部209に対して、中間データ302の生成が完了し、タイルデータ303の生成の開始を通知する。S1103でエッジ数602と中間データサイズ603と特殊描画有無606からタイムアウト時間604を算出して、タイムアウト時間604に格納する。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
Claims (8)
- 印刷データから画像データを形成する画像形成装置であって、
前記画像データの形成を行うための複数の処理を並列に行う並列処理手段と、
前記複数の処理の処理内容と前記並列処理手段の実行環境との少なくともいずれか一方を取得する取得手段と、
前記処理内容と前記実行環境との少なくともいずれか一方に基づき、前記複数の処理それぞれのタイムアウト時間を設定する設定手段と、を有することを特徴とする画像形成装置。 - 前記複数の処理には、
前記印刷データに含まれるPDLを解析して、描画コマンドを生成する解析処理と、
前記描画コマンドからラスタ画像データを生成する複数の生成処理と、が含まれることを特徴とする請求項1に記載の画像形成装置。 - 前記複数の生成処理には、
前記描画コマンドから中間データを生成する中間データ生成処理と、
前記中間データからタイルデータを生成するタイルデータ生成処理と、
前記タイルデータをレンダリングするレンダリング処理と、が含まれることを特徴とする請求項2に記載の画像形成装置。 - 前記実行環境には、前記画像形成装置におけるCPUのクロック数およびコア数と、が含まれ、
前記処理内容には、前記描画コマンドのコマンド数およびリソースサイズと、
前記中間データのサイズと、
前記タイルデータのタイルの分割数と、が含まれることを特徴とする請求項3に記載の画像形成装置。 - 前記設定された前記タイムアウト時間が経過した場合、前記複数の処理の内、前記設定された前記タイムアウト時間の処理を終了するか、ユーザーに通知を行う制御手段をさらに有することを特徴とする請求項1乃至請求項4のいずれか1項に記載の画像形成装置。
- 前記設定手段は、前記処理内容に透過を含む描画が含まれているか否かに基づき、前記タイムアウト時間を異ならせることを特徴とする請求項1乃至請求項5のいずれか1項に記載の画像形成装置。
- 印刷データから画像データを形成する画像形成方法であって、
並列処理手段が、前記画像データの形成を行うための複数の処理を並列に行う並列処理工程と、
取得手段が、前記複数の処理の処理内容と前記並列処理手段の実行環境との少なくともいずれか一方を取得する取得工程と、
設定手段が、前記処理内容と前記実行環境との少なくともいずれか一方に基づき、前記複数の処理それぞれのタイムアウト時間を設定する設定工程と、を有することを特徴とする画像形成方法。 - コンピュータを、
印刷データから画像データを形成する画像形成装置であって、
前記画像データの形成を行うための複数の処理を並列に行う並列処理手段と、
前記複数の処理の処理内容と前記並列処理手段の実行環境との少なくともいずれか一方を取得する取得手段と、
前記処理内容と前記実行環境との少なくともいずれか一方に基づき、前記複数の処理それぞれのタイムアウト時間を設定する設定手段と、を有することを特徴とする画像形成装置として機能させるためのコンピュータのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020207880A JP2022094793A (ja) | 2020-12-15 | 2020-12-15 | 画像形成装置、画像形成方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020207880A JP2022094793A (ja) | 2020-12-15 | 2020-12-15 | 画像形成装置、画像形成方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022094793A true JP2022094793A (ja) | 2022-06-27 |
Family
ID=82162458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020207880A Pending JP2022094793A (ja) | 2020-12-15 | 2020-12-15 | 画像形成装置、画像形成方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2022094793A (ja) |
-
2020
- 2020-12-15 JP JP2020207880A patent/JP2022094793A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5663941B2 (ja) | 印刷文書変換装置およびプログラム | |
US8625133B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
US9678697B2 (en) | Systems and methods of displaying a printer driver user interface | |
JP4482525B2 (ja) | 画像形成装置 | |
JP4371128B2 (ja) | 画像形成装置、画像形成方法及びプログラム | |
US9542127B2 (en) | Image processing method and image processing apparatus | |
JP5675445B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム | |
US20110235080A1 (en) | Image processing apparatus and image forming apparatus | |
US8614822B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
JP4303732B2 (ja) | 画像形成装置 | |
JP2022094793A (ja) | 画像形成装置、画像形成方法及びプログラム | |
US11637944B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium for generating intermediate data based on print data | |
US9870184B2 (en) | Information processing apparatus combining multiple filters, recording medium, and control method | |
JP2010146055A (ja) | 画像処理装置、方法及びプログラム | |
JP2007152898A (ja) | 印刷処理装置 | |
US11205242B2 (en) | Memory error recovery for complex page RIP | |
US8756491B2 (en) | PDL data processing device | |
JP6376876B2 (ja) | 情報処理装置、プログラム及び制御方法 | |
JP5150214B2 (ja) | 画像形成装置 | |
JP2012008838A (ja) | 印刷文書変換装置およびプログラム | |
JP7186541B2 (ja) | 画像処理装置、その制御方法、及びプログラム | |
JP4438754B2 (ja) | 画像形成装置 | |
JP6818563B2 (ja) | 情報処理システム、情報処理方法、およびプログラム | |
JP4438755B2 (ja) | 画像形成装置 | |
JP2013052568A (ja) | 画像形成装置、制御方法及び制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231208 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20231213 |