JP2019194816A - 画像処理装置、画像処理方法およびコンピュータプログラム - Google Patents
画像処理装置、画像処理方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2019194816A JP2019194816A JP2018088895A JP2018088895A JP2019194816A JP 2019194816 A JP2019194816 A JP 2019194816A JP 2018088895 A JP2018088895 A JP 2018088895A JP 2018088895 A JP2018088895 A JP 2018088895A JP 2019194816 A JP2019194816 A JP 2019194816A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- intermediate data
- processing
- image processing
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
【課題】 画像処理装置における画像の形成に関する処理速度の向上と処理効率とを両立させることを目的とする。【解決手段】 受信した印刷のページから中間データを生成した後、該中間データから画像データを形成する画像処理装置であって、前記印刷のページの処理負荷を計算する計算手段と、前記計算手段の計算の結果に基づき、前記中間データの生成の動作モードとして、第一のモードと、前記第一のモードよりも低速かつ低い消費電力で前記中間データを生成する第二のモードとのいずれかを設定する制御手段と、を有することを特徴とする。【選択図】 図8
Description
本発明は、画像データを形成する画像処理装置、画像処理方法およびコンピュータプログラムに関するものである。
特許文献1、特許文献2には、図形を描画するために図形が持つ座標情報等から図形の輪郭情報(エッジ情報とも呼ぶ)を抽出し、該輪郭情報に基づいて画像を形成するレンダリング手法は一般に広く利用されている。輪郭情報は直線で表現されるが該直線を表現するための手法も提案されている。
また、これら印刷装置において消費電力を押さえるための技術はいくつか提案されている。例えば、特許文献3では、複数のCPUを搭載するPDLデータを処理可能なプリンタ装置において、求められる処理能力に応じて使用するCPUを切り替える制御を行う手法等が提案されている。また特定のノードへジョブを集中的に割り振った場合に特に最近の高速なCPUに対して処理を集中させると、該ノード内、または、一部のデバイスの温度が設計上の閾値を超えてしまう。そこで、特許文献4、特許文献5、特許文献6、特許文献7には、パフォーマンスを一時的にダウンさせる等の工夫を行い、一定期間は発熱を抑える等の工夫を行い、機器の正常動作を保証する技術が開示されている。
従来から、図形毎に処理の単位(スレッド)を割り当てることを特徴とする画像形成処理方法が提案されている。図形のデータが入力された後、各図形のエッジ抽出の処理、及び各抽出処理後のデータをマージする処理(データ合成)それぞれについて複数のスレッドを割り当てることが可能である。スレッドの処理はそれを実行するユニット(CPUコア)にマップされ各コアが時間独立に処理を実行することで並列動作を可能とする。しかしながら並列に動作するCPU等は消費電力も大きく、また連続で並列動作した場合にはCPUデバイス等から発生する熱等が問題になるケースが出てきている。
情報処理装置の冷却装置に関して開示されている技術を俯瞰すると、特許文献4等に代表されるように、熱の発生状況に応じて冷却機構の工夫、または処理するノードの切り替え等が行われている。しかしながら、このような提案ではCPU処理装置の制御範囲が大まかに区切られているだけであり、例えば、ノード単位やCPUユニットという単位であるために、ジョブの状況の変化に応じた制御が困難であった。そのため、装置の発熱量や消費電力等を効果的に削減することが難しかった。また、特許文献5に開示されている手法に関しては科学計算等の大規模なジョブを扱うケースでは意味があるかもしれないが、昨今のクラウドデータセンターのように実質的にCPUのロードタスクが広く分散するような利用の形態等は想定がなされていない。
PDLデータの印刷処理(画像形成処理)が主たる対象となるようなケースでは、昨今の技術開発により並列処理を瞬時に実施するケースはよりクリティカルな性能が求められる。しかしながら、先の先行技術文献に提案されている手法等では、十分に効率的でかつ高パフォーマンスを実現する手法は実現出来ないという課題があった。
上記の課題を鑑みて、本発明は、画像処理装置における画像の形成に関する処理速度の向上と処理効率とを両立させることを目的とする。
上記の課題に鑑みて、本発明は、印刷装置における印刷速度の向上と処理効率の優れた印刷技術の提供を目的とする。
上記の目的を達成するために、本発明は、受信した印刷のページから中間データを生成した後、該中間データから画像データを形成する画像処理装置であって、前記印刷のページの処理負荷を計算する計算手段と、前記計算手段の計算の結果に基づき、前記中間データの生成の動作モードとして、第一のモードと、前記第一のモードよりも低速かつ低い消費電力で前記中間データを生成する第二のモードとのいずれかを設定する制御手段と、を有することを特徴とする。
本発明によれば、画像処理装置における画像の形成に関する処理速度の向上と処理効率とを両立させることが出来る。
(実施形態1)
図1は、画像処理装置100のハードウェア構成の一例を示す図である。
図1は、画像処理装置100のハードウェア構成の一例を示す図である。
図1において、CPU101は、ROM103又はハードディスク111からRAM102にロードされたOSや一般アプリケーション等のプログラムを実行し、後述するソフトウェアの機能及びフローチャートの処理を実現する。
RAM102は、CPU101の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)105は、キーボード109や不図示のポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ106は、ディスプレイ110の表示を制御する。ディスクコントローラ(DKC)107は、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル等を記憶するハードディスク(HD)111やフレキシブルディスク(FD)等の外部メモリとのアクセスを制御する。
PRTC108は、接続された、媒体上に画像を形成して出力するプリンタエンジン部112との間の信号の交換を制御する。NC113は、ネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。なお、本実施形態では、以下に示す画像処理装置100の機能は、ソフトウェアにより実現されるものと説明するが、各機能を専用のハードウェアで画像処理装置100に実装するようにしても良い。なお、本実施形態のCPU101は、マルチコアのCPUであるものとする。
図2は、各オブジェクトに対してエッジ抽出処理を各々独立に適用した場合の図である。ページ201上のオブジェクトごとにエッジ抽出処理を実施する様子を示している。オブジェクトごとにエッジ抽出処理のスレッド211〜スレッド213で抽出されたエッジ情報は再度ページ上の座標にマップされ合成処理がなされる。それぞれの処理は各々依存性がないために独立に実行することが出来る。つまり、オブジェクトのデータが入力された後、各オブジェクトのエッジ抽出の処理、及び各抽出処理後のデータをマージする処理(データ合成)それぞれについてスレッドを割り当てることが可能である。
スレッドの処理はそれを実行するユニット(CPUコア)にマップされ各コアが時間独立に処理を実行することで、並列で動作することが出来る。なおマージ処理はエッジ抽出が完了したオブジェクトに対して適用される。たとえば1のスレッド(すなわちコア)をマージ処理に割り当て、他をエッジ抽出に割り当てる。コアの数には制限があるため、ひとつのオブジェクトのエッジ抽出処理を完了したなら、当該コアは次のオブジェクトを対象としてエッジ抽出処理を行う。エッジ抽出を終えたオブジェクトはマージ処理の対象となる。抽出されたエッジは、マージによりページ内に再配置される。スレッドをコアに割り当てる処理は、例えばマージ処理を行うコアが行ってもよい。
マージされたエッジ抽出済みデータからは、ラスタライズ処理により、ラスタラインごとにエッジ間に画素が充填されたビットマップの画像データが生成される。
図3は、本実施形態の基本構成を示したレンダリングシステム(RIPシステム)の概説図である。レンダリングシステムは中間データ生成処理部301とスプール302、画像形成処理部303とを含む。図にあるようにPDLデータは描画インターフェースを経由して、PDLインタープリタ300からRIPシステム(すなわちレンダラ)301に受け渡される。RIPシステム301では「データ受け取り」の処理ブロック311が図形、文字、画像等のPDLオブジェクトを受け取り、不図示の内部スプーラに適時データを蓄えた後に後段の処理ユニットにデータを流すよう構成されている。
PDLオブジェクトが図形等であった場合は、該図形オブジェクトのデータはエッジ抽出処理(スレッド)211〜213に受け渡される。一方、PDLオブジェクトがイメージであった場合は画像処理(スレッド)312にデータを受け渡す。
なお、前述したベクタライズ処理も必要に応じて行われるが、ここではその説明を省略する。これらのスレッドはこのスレッドに割り当てられたひとつのプロセッサコアにより実行される。オブジェクトが1ページに複数存在する場合は、それぞれのオブジェクトに対して独立したスレッドでエッジ抽出処理が割り当てられる。ただし、並列処理されるオブジェクトの数はプロセッサコアの数が上限となる。各オブジェクトのエッジ抽出処理を後段の独立したスレッド211〜213で実行させる。
各スレッドはそれぞれに割り当てた処理ユニット(プロセッサコア)により実行されるので、データ受け取り処理ブロック311は、各処理ユニットで実行されるエッジ抽出処理にスケジュールされたオブジェクトのデータを流すよう構成されている。なお一つのコアで時分割的に複数のスレッドを実行することも可能であるが、本例では少なくともエッジ抽出処理に関しては、各処理はそれぞれのコアで実行されるものとする。ただし、エッジ抽出処理とその他の処理、たとえばPDLデータの分析等を一つのコアで時分割的に実行することはあり得る。それぞれのエッジ抽出処理で抽出されたエッジデータは適宜後段のデータ合成処理(スレッド)313に渡される。そして、ページ上に合成(重ね合わせの処理)がなされると同時にタイル状のデータにフォーマットされた上でスプーラ302にRIP中間データとして書きだすよう構成されている。該タイル上にフォーマットされたRIP中間データは更に後段の画像形成処理303で処理され、タイル処理(スレッド)331〜333により各タイルにおいてピクセルの展開処理が行われる。それぞれのタイルの処理は時間独立で実行がなされる。タイルはつなぎ合わされて例えばバンドとなり、ラスタ信号としてエンジン部112に提供される。図4は、図3(基本システム概説図)の処理の中で、「エッジ抽出処理」と抽出されたエッジのデータをマージする処理「データ合成」におけるデータの流れを説明した概説図である。図4にあるように図形1、2のデータは実体としては図形の種類を表す図形種情報とそれを構成する座標データの群で構成されている。これらデータは「エッジ抽出処理」によりエッジデータ(図形等の外郭線)が抽出される。図形1と図形2にはそれぞれ独立した別々のスレッドで処理がなされるために同時に2つの図形のエッジデータが抽出される。
これらの処理の過程において不図示である色情報抽出処理により図形の輪郭の中の塗り情報が同時に抽出されるよう構成されている。スレッド3ではスレッド1およびスレッド2により抽出されたエッジデータおよび色情報から「データ合成」処理を行う。
例えば、図形2が赤の単色(不透明)で塗られており図形1が青の単色(不透明)で塗られていて、図形1が図形2の上に描画されている場合、重なりの部分は上層の色である青が塗られることになる。この状態では色情報は2つ(すなわち、青と赤)が保存される。
一方でスレッド3が処理の対象とする領域においては図形1と図形2の該領域におけるエッジデータの合成(例えば重なった結果で不要になったエッジは消去される)が行われる。本提案の処理方式では、重なりの状況によって、該領域に関して保持すべき色情報の数が増えることもある。例えば図形1が赤の単色(不透明)で塗られており、図形2が青の単色(透過)で塗られている場合で、かつ図形2が図形1の上に重なっている場合は透過合成の計算により該重なっている領域の色が計算される。例えば、青と赤を合成すると紫となるため、スレッド3の処理においては赤、青、紫の色情報が保持される。
図5は、上述したようにシステム情報を得るためにOS側がハードウェア情報を、その内部に格納している状況を説明した概説図である。図中ブロックP1101はシステムのOSが表示するシステムインフォメーション情報であり、現在のCPUの負荷状況や、利用されているメモリ量等を表示するものである。OSは起動時にハードウェア情報(該ハードウェア情報は設定されているBIOSの情報を反映したものとなっている)を取得しているので自身がどのようなCPU上で動作しているかを把握している。それらはOSの中のシステム情報として保存されている状態である。よってOSに対して、CPUの「コア数」を問い合わせれば、該システムで利用可能なコア数の情報が確実に得られるように構成されている。
図6は、1ページの処理に8コアを割り当てる場合の処理時間の違いを説明したグラフである。従来の考え方では、どの領域のどのデータに対して何コアを割り当てても、処理するユニット(コア)の数に変わりはないので、結果的には速度に差異は出ないという見解が一般的であった。しかしながら、本願発明人の検討によれば、図にあるようにページを上下に分割しそれぞれに4コアを割り当てた場合の方が、1ページ全体に8コアを割り当てるよりも高速に処理が完了するということを見出した。CPUはデータを処理する際に、主メモリのデータにアクセスするがそれらは直接読み込まれるのではなく、バスやキャッシュを経由してデータが流れるようになっている。
実際のCPUの構成は先の図5のCPUの構成図のように8コアという構成であっても、必要なデータのアクセス経路が等距離にない、という状況が発生する。このことに考慮してコア割り当てのパターンを最適化しないとマルチコアCPUを用いたシステムにおけるプログラムの処理速度を最大化することは出来ない。図6にあるように、グラフィックス画像を多く含むヘビーページを、1ページ全体に対して8コアのCPUで処理した場合、1050msかかっている。しかし、下図にあるように2つの領域に分割してそれぞれに4コアを割り当てた場合は900msで処理が完了しており、約14.3%の高速化が達成出来る。
以上のように、8つのプロセッサコアを持つマルチコアCPUを用いたレンダリングシステム(すなわち画像処理装置)によりレンダリングの処理負荷が高いヘビーページをレンダリングする場合には、ページを二つの領域に分割する。そして、それぞれの領域について、4つずつのコアでエッジ抽出をはじめとする処理を実行する。これによりコアの稼働率を向上させ、より短時間でレンダリング処理を完了することができる。
なお、本実施形態では、ヘビーページか否かに応じてエッジ抽出処理に割り当てるコアの数を変えているが、無条件に、ヘビーページに対するのと同様に、複数のプロセッサコアをエッジ抽出処理に割り当ててもよい。すなわち、図8のヘビーページ検出部802および1コア処理用モジュールを持たず、コアの数に応じて、スレッドにコアを割り当てる。
また、コアの数が8を超える場合にも、同様にしてページを2つの領域に分割し、コアを2つのグループに分けて、それぞれの領域に含まれたオブジェクトのエッジ抽出処理をはじめとするレンダリング処理をおこなってよい。さらに、たとえば1つの領域を処理するコアの数を所定数、例えば4とするようにコアをグループ分けし、そのグループに対応付けてページを分割し、分割した各領域を1つのコアグループでレンダリング処理してもよい。
図7は、実施形態1におけるシステム構成に関する概説図である。ここではシステム情報を得るためにOS側がハードウェア情報を、その内部に格納しているものを利用する。このシステムは、4コアのプロセッサを4つ搭載したマルチCPU構成を有している。したがって、コアの数は合計で16となる。しかしながら、図7で示されるように、実際の物理コアの数と、オペレーティングシステムが認識する論理コアの数とが異なっているシステムが存在する。
システム側はCPUコア数を32と認識しているが実際のボードには4コアのCPUが4つ搭載されているだけなので、実際の物理コアは16となっている。これは、1つのコアの計算資源は1つのコアの分だけしか用意されていないが、デコーダ等を複数用意し、レジスタやパイプラインの空き時間を利用してあたかも2つのコア(これが論理コアである)があるかのようにふるまう技術による。演算回路は1コアに1セットしか容易されていないため、2つの論理コアにより2つのスレッドを完全に並列実行できるわけではない。
この状況で、32コアというオペレーティングシステムにより提供された情報を参照して、実施形態1と同様の手法でコアの割り当ての最適化を行っても処理速度が向上しないという自体が発生する。そこで本実施形態ではOS側から提供されるシステム情報をそのまま利用するのではなくて、不図示のUIによりユーザーがCPUの構成情報を与えるよう構成している。
本システムでは16コアの物理コアが利用出来る状態であるので、ページを並列処理で高速化する場合には、1ページを16コアで処理する、1ページを2分割して各領域を8コアで処理する等の割り当てが可能である。但し、同時に利用するコア数が多い為に発熱量は高くなることが想定される。これに対して、ページ処理を高速化するための並列コアの割り当ては全てのコア(16コア)を割り当てるのではなく、その一部を割り当てることも可能である。例えば、1ページを2分割して各領域に2コアで処理(発熱量は比較的低い)するという選択も考えられる。
図8は、実施形態1におけるプリントシステムの概略ブロック図である。印刷ジョブが投入されるとサーバー(主にはクラウド上のサーバー)上で中間データが生成され、これが後段の画像形成処理ブロックに渡され画像(ピクセル)を生成する。該形成された画像はエンジンに転送され印刷出力を行うよう構成されている。
ユーザーはUI等により、32の論理コアを提供しているシステムにおいて16の物理コアを指定し、かつヘビーページの場合に2つのモードを用意し、それぞれの設定を行うよう構成されている。ヘビーページの場合の第一のモードは、1ページを2分割し、それぞれの領域に8コアを割り振る。また第二のモードは1ページを2分割し、それぞれの領域に2コアを割り振るように設定を行っている。
第一のモードは処理時間を優先させたい場合に利用する設定であり、CPUから発生する熱は増えるが高速に処理が出来るモードである。これに対し、第二のモードは第一のモードより低速であるが発熱量も抑えられる動作モードである。
図8にあるようにプリントシステムに印刷ジョブが入力されると、まずページが検査ブロックで検査される。ここでページがヘビーページであるか否かを判定される。ページがヘビーページでない場合(便宜上シンプルページとも呼ぶ)は、中間データ生成処理部は動作モードAで動作し、ページがヘビーページの場合は、更に、スプーラの監視情報を参照し、スプール状況に余裕があるか否かを判断する。
ここでスプール状況(後述の図9で説明)に余裕がない場合は、中間データ生成処理部は動作モードB1(図8で説明の第一のモード)を選択する。一方で、スプール状況に余裕がある場合は、中間データ生成処理部は動作モードB2(同第二のモード)を選択するよう構成されている。コアの割り当ては、モードAにおける処理は1ページ全体を1コアで処理するように構成されている。
一方、モードB1の処理ではページを2つの領域に分割し、それぞれに8つのコアを割り振り、モードB2の処理ではページを2つの領域に分割し、それぞれに2つのコアを割り振るよう構成している。
図9は、先の図8中のスプーラにおけるスプール数の変化を示す図であり、横軸は時間軸、縦軸はスプール数を示している。
時刻t1では、スプール数は50ページであり、スプール可能な最大数(スプール最大数)150ページに対してまだスプール可能な状態である。時刻t1において、中間データ生成処理部は次のモードで動作する。このt1の時刻でシンプルページを処理する場合は、モードAで処理を行う。しかし、ヘビーページを検出した場合はモードAだと時間がかかり過ぎてしまう。時刻t1の段階ではスプール数が50ページでありスプール数は少ない。ヘビーページが大量に入力されると中間データ生成処理部から生成される単位時間あたりのページ数が減少し、その結果、スプールが空になってしまう可能性がある。そこで高速なモードで処理を行うように切り替えを行う。ここではモードB1でスプールデータの生成処理を行う。モードB1では8コア+8コアの合計16のコアを短時間の中で同時実行する。このモードB1はマルチコアのCPUを利用するためにクラウドでHPC(高性能)インスタンスを利用するように割り当てる。利用するインスタンスについては、後述の図10で詳説する。
時刻t3では、スプール数は150ページであり、スプール最大数150に達した状態である。これ以降、中間データ生成処理部は、動作モードを高速モードから発熱を抑えたモードA(いわゆる省エネモードと同義)に切り替えてスプールデータの生成処理を行う。このモードAを実行する環境としてはHPC(高性能)インスタンスよりも処理速度が遅く、より消費電力を抑えたインスタンスを選択するように構成する。モードAはスプール数が、予め定められた下限数(本実施例では100ページを想定)を下回るまで、中間データ生成処理部は、モードAでスプールデータの生成処理を行う。
時刻t3からt4のタイミングでインスタンスを切り替えなかった場合、HPC(高性能)インスタンスを使い続けることになる。その結果、対象のノードの発熱によりCPU装置のクロック数が上がらない状況になる(または最悪の場合は逆にクロック数を下げて処理が行われる場合もある)。パフォーマンスアップが期待出来ない状況だと、時刻t4では、スプール数は90となり、中間データ生成処理部はスプールデータの生成処理をモードAで続行することが出来なくなる。しかし、本実施形態1の例では、上述したように時刻t3のタイミングで、動作モードをBからAへ切り替えているために発熱量が抑えられる。その結果、スプール数で100ページを維持することが出来る(時刻t5、t6ともにモードAで処理が続行される)。図10は、本実施形態で想定しているデータセンターの空調設備を含めた構成概念図である。印刷ジョブはWANを経由してデータセンター(いわゆるクラウド)に送信され、そこで中間データ生成処理がなされる。該生成された中間データは再度WANを経由して印刷拠点に転送された後、画像形成処理が行われる。該画像形成処理により生成された画像はプリンタエンジンに渡され印刷出力するように構成されている。
データセンター内のサーバーは、パフォーマンスが求められる処理系にはHPC系のサーバー群(HPCインスタンス)が用意されており、図10中ではそれらはHPCゾーンに区分されている。一方で処理パフォーマンスが問題にならない処理系では、いわゆるマイクロサーバーで構成されるスモールサーバー群(マイクロインスタンスとも呼ばれる)が用意されている。マイクロインスタンスは、クロック数は高くないが省電力で効率良く動作する。近年の集積技術の向上からCPUパッケージそのものを含め高集積度な(CPUパッケージのサイズ、および本体サイズがコンパクトな)構成となっている。これらは図10にあるように複数のMSゾーンに配置されている。
本実施形態では、図8の説明にあるモードAのジョブは、基本的にマイクロインスタンス(MSゾーン)で処理がなされ、モードBのジョブはHPCゾーンで実行されるよう構成されている。モードAのジョブをマイクロインスタンス(MSゾーン)に転送する場合は複数のマイクロインスタンスのゾーンが存在する。一般的にはHPCゾーンからのネットワーク的な距離が近い箇所のMSゾーンを選択するのが最良であると考えられるが本発明の実施形ではネットワーク的に近くないMSゾーンのインスタンスもデータを転送する候補とすることを特徴とする。
以下、図11のフローチャートを用いて上記処理を説明する。
図11(a)のフローチャートにあるようにステップS101では処理対象のPDLページを受信し不図示のブロックにより受信したページが処理の軽いページなのか、処理が重いページ(処理時間のかかるページ)を判断する。次に、ステップS102において現在の中間データを保持しているスプーラのスプール数を把握する(図8中の監視機能はこれが該当)。ステップS103においては該ステップS101,ステップS102の結果に基づいて利用するインスタンスを決定し、HPCインスタンスを利用する場合はステップS104へ、MSインスタンスを利用する場合はステップS200へ分岐するようになっている。分岐の条件としては、
(1)処理ページが軽いページの場合はMSインスタンスを選択する
(2)処理ページが重いページであり、かつスプーラ数が少ない場合はHPCインスタンスを選択する(スプーラ数が多い場合は処理ページが重くてもMSインスタンスが選択される)
となっている。ステップS200以降ではステップS201でスプール数の状況を確認し、スプール数に余力がある場合は、ステップS202に進み、複数のMSゾーンをデプロイする候補として選択出来るようにする。一方でステップS201の判定でスプール数に余裕がない場合は、ステップS203へ進み、MSゾーンでもネットワーク的に最も近い距離にあるMSゾーンを選択するよう構成する。ここでネットワーク距離とは、ジョブを制御しているRIP制御部から目的のインスタンスの存在するノードまでのネットワーク距離を指す。例えば、要求確認信号に対する応答(レスポンスタイム)となる(ルーターを経由するホップ数を代わりの指標としても良い)。対象となるMSインスタンスを選択した後に、該インスタンスにてステップS204にある中間データ生成処理を実行しステップS200の処理を終了する。ステップS104ではHPCインスタンスにおける中間データ生成処理を実行した後にステップS111にて該生成された中間データを適宜転送するように構成されている。
(1)処理ページが軽いページの場合はMSインスタンスを選択する
(2)処理ページが重いページであり、かつスプーラ数が少ない場合はHPCインスタンスを選択する(スプーラ数が多い場合は処理ページが重くてもMSインスタンスが選択される)
となっている。ステップS200以降ではステップS201でスプール数の状況を確認し、スプール数に余力がある場合は、ステップS202に進み、複数のMSゾーンをデプロイする候補として選択出来るようにする。一方でステップS201の判定でスプール数に余裕がない場合は、ステップS203へ進み、MSゾーンでもネットワーク的に最も近い距離にあるMSゾーンを選択するよう構成する。ここでネットワーク距離とは、ジョブを制御しているRIP制御部から目的のインスタンスの存在するノードまでのネットワーク距離を指す。例えば、要求確認信号に対する応答(レスポンスタイム)となる(ルーターを経由するホップ数を代わりの指標としても良い)。対象となるMSインスタンスを選択した後に、該インスタンスにてステップS204にある中間データ生成処理を実行しステップS200の処理を終了する。ステップS104ではHPCインスタンスにおける中間データ生成処理を実行した後にステップS111にて該生成された中間データを適宜転送するように構成されている。
(実施形態2)
図12は、実施形態2におけるプリントシステムの概略ブロック図である。ユーザーはUI等により、64の論理コアを提供しているシステムにおいて32の物理コアを指定し、かつヘビーページの場合に2つのモードを用意し、それぞれの設定を行うよう構成されている。ヘビーページの場合の第一のモード(モードB1)は、1ページを4分割し、それぞれの領域に8コアを割り振る。また第二のモード(モードB2)は1ページを2分割し、それぞれの領域に2コアを割り振るように設定を行っている。第一のモードは処理時間を優先させたい場合に利用する設定であり、CPUから発生する熱は増えるが高速に処理が出来るモードである。該モードB2はHPCインスタンスを用いて処理する。これに対し、第二のモードは第一のモードより高速ではないが発熱量は第一のモードと比較して抑えられる動作モードである。該モードB2はMSインスタンスを用いて処理する。
図12は、実施形態2におけるプリントシステムの概略ブロック図である。ユーザーはUI等により、64の論理コアを提供しているシステムにおいて32の物理コアを指定し、かつヘビーページの場合に2つのモードを用意し、それぞれの設定を行うよう構成されている。ヘビーページの場合の第一のモード(モードB1)は、1ページを4分割し、それぞれの領域に8コアを割り振る。また第二のモード(モードB2)は1ページを2分割し、それぞれの領域に2コアを割り振るように設定を行っている。第一のモードは処理時間を優先させたい場合に利用する設定であり、CPUから発生する熱は増えるが高速に処理が出来るモードである。該モードB2はHPCインスタンスを用いて処理する。これに対し、第二のモードは第一のモードより高速ではないが発熱量は第一のモードと比較して抑えられる動作モードである。該モードB2はMSインスタンスを用いて処理する。
シンプルページを処理する場合に、モードAで(1ページを分割しないで、かつ、1コアで)処理を行うのは実施形態1と同様である(第二のモードと同様にMSインスタンスを用いて処理を行う)。
実施形態1との対比では印刷ジョブがRIPに投入される前にジョブスプーラに一旦スプールされる点が異なる。該スプーラに投入されたジョブはページ単位でヘビーページであるか否かを、図の先読み検査ブロックにより検査される。この検査の情報は図中の制御マネージャーに適宜、通知されるよう構成されている。
図13は、先の図11中のスプーラにおけるスプール数の変化を示す図であり、横軸は時間軸、縦軸はスプール数を示している。
時刻t1では、スプール数は50ページであり、スプール可能な最大数(スプール最大数)150ページに対してまだスプール可能な状態である。時刻t1において、中間データ生成処理部は次のモードで動作する。このt1の時刻でシンプルページを処理する場合は、モードAで処理を行う。しかし、ヘビーページを検出した場合はモードAだと時間がかかり過ぎてしまう。時刻t1の段階ではスプール数が50ページでありスプール数は少ない。ヘビーページが大量に入力されると中間データ生成処理部から生成される単位時間あたりのページ数が減少し、その結果、スプールが空になってしまう可能性がある。そこで高速なモードで処理を行うように切り替えを行う。ここではモードB1でスプールデータの生成処理を行う。
但し、先読み処理ブロックにて、t1以降の入力データにおいてヘビーページが連続で投入されることがないことがわかっている(予め設定した閾値で判定)場合は、モードB2で(切り替えて)処理を行うよう構成されている。
モードB1では8コアx4の合計32のコアを短時間の中で同時実行するため、CPU装置はかなりの熱を発生させてしまう。該当するページに関しては上述した先読み検査ブロックで検出されている。
時刻t3では、スプール数は150ページであり、スプール最大数150に達した状態である。これ以降、中間データ生成処理部は、動作モードを高速モードから発熱を抑えたモードA(いわゆる省エネモードに該当する)に切り替えてスプールデータの生成処理を行う。スプール数が、予め定められた下限数(本実施例では100ページを想定)を下回るまで、中間データ生成処理部は、モードAでスプールデータの生成処理を行う。
適切なタイミングでモードB2からB1に切り替えを実施しなかった場合、発熱によりCPU装置のクロック数を上げられない状況になる(または最悪の場合は逆にクロック数を下げて処理が行われる場合もある)。パフォーマンスアップが期待出来ない状況だと、時刻t4では、スプール数は想定以上に落ち込むことが考えられる。しかし、「先読み検査」処理によりHPCゾーンを使わない状態を出来る限り長く保持するよう構成しているため、本当に必要な時に最大能力を発揮(クロックアップした状態で処理可能)出来る状態となる。図の例では時刻t4において、スプール数の急激な落ち込みを防ぐことが出来るために、その結果スプール数で120ページを維持することが出来る(時刻t5、t6ともにモードAで処理が続行される)。
(他の実施形態)
先の実施形2においては中間データ生成処理間にPDLページの複雑さを予想してから動作の切り替えを行っている。ページが重いと判断された場合、該ページはヘビーページとしてマルチコアCPUによる並列実行の対象となり、かつ、それらは基本的にHPCインスタンスが選択され処理が実行される。但し、例外として、ヘビーページであったとしても、スプーラに余力がある場合は、MSインスタンスに切り替えて動作するよう構成されている。このような構成のシステムを、実際の稼働状況をみてみると、該ヘビーページが(数十〜数百ページ)連続で実行される場合はパフォーマンス(処理時間)が想定した場合よりも遅くなることがしばしば観察される。そのような変化が起きている場合は、実施形態2の動作において、MSインスタンスへの割り振りの動作を抑制する必要が出てくる。
先の実施形2においては中間データ生成処理間にPDLページの複雑さを予想してから動作の切り替えを行っている。ページが重いと判断された場合、該ページはヘビーページとしてマルチコアCPUによる並列実行の対象となり、かつ、それらは基本的にHPCインスタンスが選択され処理が実行される。但し、例外として、ヘビーページであったとしても、スプーラに余力がある場合は、MSインスタンスに切り替えて動作するよう構成されている。このような構成のシステムを、実際の稼働状況をみてみると、該ヘビーページが(数十〜数百ページ)連続で実行される場合はパフォーマンス(処理時間)が想定した場合よりも遅くなることがしばしば観察される。そのような変化が起きている場合は、実施形態2の動作において、MSインスタンスへの割り振りの動作を抑制する必要が出てくる。
図14はMSインスタンスへの割り振りの動作を抑制するために、RIP制御部の動作パラメータを変更する動作を説明した概略フローチャートである。
該フローチャートにあるようにステップS301では処理対象のPDLページを受信し不図示のブロックにより受信したページが処理の軽いページなのか、処理が重いページ(処理時間のかかるページ)を判断する。次に、ステップS302において現在の中間データを保持しているスプーラのスプール数を把握する(図8中の監視機能はこれが該当)。ステップS303においては前記ステップS301,ステップ3102の結果に基づいて利用するインスタンスを決定し、HPCインスタンスを利用する場合はステップS304へ、MSインスタンスを利用する場合はステップS200へ分岐するようになっている。
分岐の条件としては、
(1)処理ページが軽いページの場合はMSインスタンスを選択する
(2)処理ページが重いページであり、かつスプーラ数が少ない場合はHPCインスタンスを選択する(スプーラ数が多い場合は処理ページが重くてもMSインスタンスが選択される。該当スプーラ数を判断するための閾値はRIP制御部の動作パラメータを切り替えることで実現する)
となっている。ステップS200以降の動作は先の実施形態2と同様であるので詳細の説明は割愛する。
(1)処理ページが軽いページの場合はMSインスタンスを選択する
(2)処理ページが重いページであり、かつスプーラ数が少ない場合はHPCインスタンスを選択する(スプーラ数が多い場合は処理ページが重くてもMSインスタンスが選択される。該当スプーラ数を判断するための閾値はRIP制御部の動作パラメータを切り替えることで実現する)
となっている。ステップS200以降の動作は先の実施形態2と同様であるので詳細の説明は割愛する。
ステップS304では中間データ生成処理に要する時間を事前に予測しておく。次のステップS305にて中間データ生成処理を実行した後に、ステップS306において実際に処理に要した時間を記録する。ステップS307では、ステップS304とステップS306で取得した予測と実測値の比較を行う。ステップS308ではステップS307の結果に基づいて、RIP制御部の動作パラメータの切り替えが必要か否かを判断するように構成されている。ステップS309では前記ステップS308の判断からRIP制御部の動作パラメータの切り替え処理を行う。
この切り替えは、例えば、スプール数に余力がない場合(定常値は80ページ以下を余力がないとする)で、「先読み検査」処理により、後続の20ページにヘビーページが含まれていない場合には、MSインスタンスに割り振ると規定していたとする。その場合、パラメータを切り替える処理により、スプール数(余力の有無を判定する)閾値を80から90ページに変更し、また、後続ページにヘビーページが連続していないことを確認する数字を20から30へ変更するという動作になる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (9)
- 受信した印刷のページから中間データを生成した後、該中間データから画像データを形成する画像処理装置であって、
前記印刷のページの処理負荷を計算する計算手段と、
前記計算手段の計算の結果に基づき、前記中間データの生成の動作モードとして、第一のモードと、前記第一のモードよりも低速かつ低い消費電力で前記中間データを生成する第二のモードとのいずれかを設定する制御手段と、を有することを特徴とする画像処理装置。 - 前記画像処理装置は、複数のサーバーから構成され、
前記制御手段で第一のモードが設定された場合は、前記複数のサーバーの内、処理速度の速いサーバーで前記中間データの生成を行い、前記制御手段で第二のモードが設定された場合は、前記複数のサーバーの内、低い消費電力で動作するサーバーで前記中間データの生成を行うことを特徴とする請求項1に記載の画像処理装置。 - 前記中間データを保持するスプーラを更に有し、
前記制御手段は、
前記スプーラに保持されたデータに応じて、前記第一のモードと前記第二のモードとのいずれかを設定することを特徴とする請求項1または請求項2に記載の画像処理装置。 - 前記画像処理手段は、複数のプロセッサコアを有し、前記制御手段は、前記中間データの生成の動作モードに応じて、前記中間データの生成を行うプロセッサを変更することを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
- 前記制御手段は、前記印刷のページを複数の領域に分け、それぞれの領域を前記複数のプロセッサそれぞれが行うように制御することを特徴とする請求項1乃至4のいずれか1項に記載の画像処理装置。
- 前記低い消費電力で動作するサーバーは、マイクロインスタンスであることを特徴とする請求項2に記載の画像処理装置。
- 前記画像データをプリンタエンジンに出力する出力手段を更に有することを特徴とする請求項1乃至6のいずれか1項に記載の画像処理装置。
- 受信した印刷のページから中間データを生成した後、該中間データから画像データを形成する画像処理方法であって、
計算手段が、前記印刷のページの処理負荷を計算する計算工程と、
制御手段が、前記計算工程の計算の結果に基づき、前記中間データの生成の動作モードとして、第一のモードと、前記第一のモードよりも低速かつ低い消費電力で前記中間データを生成する第二のモードとのいずれかを設定する制御工程と、を有することを特徴とする画像処理方法。 - コンピュータを、
受信した印刷のページから中間データを生成した後、該中間データから画像データを形成する画像処理装置であって、
前記印刷のページの処理負荷を計算する計算手段と、
前記計算手段の計算の結果に基づき、前記中間データの生成の動作モードとして、第一のモードと、前記第一のモードよりも低速かつ低い消費電力で前記中間データを生成する第二のモードとのいずれかを設定する制御手段と、を有することを特徴とする画像処理装置として動作させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018088895A JP2019194816A (ja) | 2018-05-02 | 2018-05-02 | 画像処理装置、画像処理方法およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018088895A JP2019194816A (ja) | 2018-05-02 | 2018-05-02 | 画像処理装置、画像処理方法およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019194816A true JP2019194816A (ja) | 2019-11-07 |
Family
ID=68469031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018088895A Pending JP2019194816A (ja) | 2018-05-02 | 2018-05-02 | 画像処理装置、画像処理方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019194816A (ja) |
-
2018
- 2018-05-02 JP JP2018088895A patent/JP2019194816A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8446605B2 (en) | Division of rendering block in image forming apparatus | |
JP4708869B2 (ja) | 情報処理装置およびその制御方法 | |
US9218554B2 (en) | Image processing apparatus, image processing method, and storage medium | |
US20120133964A1 (en) | Print document processing system, cache apparatus, computer readable medium storing program, and print document processing method | |
US8625133B2 (en) | Print data processing apparatus, print data processing method, and storage medium | |
US9542127B2 (en) | Image processing method and image processing apparatus | |
JP2012059093A (ja) | 印刷制御装置、印刷システムおよびプログラム | |
JPH09218861A (ja) | スケジューラ | |
KR100657331B1 (ko) | 멀티 프로세서를 채용한 화상형성장치 및 이를 이용한화상형성방법 | |
JP5268427B2 (ja) | 画像形成装置及び画像形成システム | |
US7889386B2 (en) | Image processing apparatus and method for processing vector image data units of blocks | |
JP2007087137A (ja) | 印刷制御装置、画像形成方法および記憶媒体 | |
JP2019194816A (ja) | 画像処理装置、画像処理方法およびコンピュータプログラム | |
JP2019191896A (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
JP6835271B2 (ja) | プリントジョブのためのページ複雑性解析 | |
JP5968497B2 (ja) | 制御方法、システム及びプログラム | |
JP2007152898A (ja) | 印刷処理装置 | |
JP6370202B2 (ja) | 画像処理装置及び画像処理方法 | |
JP2012008838A (ja) | 印刷文書変換装置およびプログラム | |
US11205242B2 (en) | Memory error recovery for complex page RIP | |
JP2005149325A (ja) | 情報処理装置及び情報処理方法 | |
US8824010B2 (en) | Image formation processing apparatus and image processing method | |
JP2010012737A (ja) | 印刷制御装置、印刷処理システム、描画処理方法およびプログラム | |
JP2006092125A (ja) | 画像処理装置、画像処理方法、プログラムおよび記憶媒体 | |
JP2016155280A (ja) | 制御装置、制御方法およびプログラム |