JP2012194947A - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP2012194947A
JP2012194947A JP2011060343A JP2011060343A JP2012194947A JP 2012194947 A JP2012194947 A JP 2012194947A JP 2011060343 A JP2011060343 A JP 2011060343A JP 2011060343 A JP2011060343 A JP 2011060343A JP 2012194947 A JP2012194947 A JP 2012194947A
Authority
JP
Japan
Prior art keywords
core
function
usage
image processing
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011060343A
Other languages
English (en)
Inventor
Masamichi Aoki
真路 青木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2011060343A priority Critical patent/JP2012194947A/ja
Publication of JP2012194947A publication Critical patent/JP2012194947A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Image Processing (AREA)

Abstract

【課題】複数のコアをもつデバイスをアクセラレータとして用いる画像処理装置において、全体的な処理効率の向上を図る。
【解決手段】複数のコアを内部に持つデバイスであって、それぞれのコアを、1機能で専用させる専用モードで動作させるか、複数の機能で共用させる共用モードで動作させるかを、コンフィグレーションにより設定可能なデバイスをアクセラレータとして用いる画像処理装置において、機能の利用履歴とプロファイル結果に基づいて、各コアの現在の設定モードでの、最適な機能のコアの割り振りを決めるコア割り当て決定手段と、各コアの設定モードを変えることを前提にして、最適な各コアの設定モード及び機能のコアの割り振りを決めるコア割り当て決定手段とを段階的に切り替える。
【選択図】図1

Description

本発明は、画像処理用のアクセラレータを備えた画像処理装置及びその画像処理方法に関する。
一般に画像処理装置では、スキャナから読み取ったデータ及び外部からの入力データは、CPUやASIC等で画像処理がされる。ここで、ASICは製造期間やコストがかかることから、変更可能性のある機能に関しては、CPUで処理される場合が多い。しかし、要求される画像処理の複雑化に伴い、CPUだけでは速度面で性能未達となることが増えてきている。
そこで、画像処理用のアクセラレータを取り付けて処理速度の向上を計ることが行われるようになってきた。アクセラレータの一種類として、リコンフィグラブルなデバイスがある。リコンフィグラブルなデバイスでは、コンフィグレーションを切り替えることで、適した画像処理を行えるようになる。
リコンフィグラブルなデバイスとして、FPGA(Field Programmable Gate Arrey)が挙げられる。FPGAをアクセラレータとして用いた場合、あらかじめ所定のコンフィグレーション情報と、プログラムを用意しておき、それらを任意のタイミングで設定することで、適した画像処理を行うことが可能となる。
一般的なCPUも、命令とデータを同時に入力して処理しているため、リコンフィグラブルなデバイスとみなすことも可能である。任意のタイミングでプログラムをロードして、適した画像処理を行うことが可能となる。しかしながら、単一のコア(プロセッサコア)では、アクセラレートするには処理能力が不十分であることから、近年は、多数のコアを内部に持つ、いわゆるメニーコアのデバイスも検討されている。
メニーコアのデバイスをアクセラレータとして用いた場合も同様に、あらかじめ所定のコンフィグレーション情報(各種メモリ割り当て容量やコア割り当てなど)を用意しておき、任意のタイミングでリブートすることで、適した画像処理を行うことが可能となる。
しかし、今までのアクセラレータを用いた画像処理装置では、アクセラレータで実現する機能と、CPUで実現する機能を固定的に決めていた。そのため、要求に偏りがあった場合、CPU、アクセラレータのいずれかの処理効率性が低いこととなっていた。また、アクセラレータの使用にあたっては、使用状況に応じて動作中にコンフィグレーションを切り替えることも行われているが(例えば、特許文献1)、コンフィグレーション切り替えには処理時間がかかることから、大幅な変更は容易にできない。大幅な変更をしようとすると、要求が切り替わったときに、処理効率が極端に落ちるという問題があった。
本発明の課題は、複数のコアをもつデバイスをアクセラレータとして用いる画像処理装置において、コンフィグレーション切り替えを出来る限り少なくして、全体的処理効率を高めることにある。
本発明は、複数のコアを内部に持つデバイスであって、それぞれのコアを、1機能(タスク)で専用させる専用モードで動作させるか、複数の機能で共用させる共用モードで動作させるかを、コンフィグレーションにより設定可能なデバイスをアクセラレータとして用いる画像処理装置において、機能の利用履歴とプロファイル結果に基づいて、各コアの現在の設定モード(専用モードか共用モード)内で、最適な機能のコアの割り振りを決めるコア割り当て決定手段1と、各コアの設定モードを変えることを前提に、最適な各コアの設定モード及び機能のコアの割り振りを決めるコア割り当て決定手段2とを段階的に切り替えることを主要な特徴とする。
本発明では、複数のコアをもつデバイスをアクセラレータとして用いる画像処理装置において、機能のコア使用配分の変更、コンフィグレーションの変更と段階的に切り替えるようにしたので、全体的な処理効率を高めることができる。
本発明の概要を説明する図である。 本発明の一実施形態に係る画像処理装置の構成例を示す図である。 アクセラレータを説明する図である。 アクセラレータで機能を実施している時の処理フロー図である。 コントローラのCPUで機能を実施しているときの処理フロー図である。 コンフィグレーション切り替えにかかるコントローラの処理フロー図である。 コンフィグレーション切り替えにかかるアクセラレータの処理フロー図である。 利用履歴の一例を示す図である。 プロファイル情報の一例を示す図である。 機能Aの各関数の割合を示す図である。 コンフィグレーション設定またはコア使用配分の変更を説明する図である。 本発明の具体的処理例を示す図である。 機能A,Bの具体例を示す図である。 アクセラレータで機能を実施している時の別の処理フロー図である。
以下、本発明の実施の形態について図面を用いて説明する。
はじめに、図1を用いて本発明の概要を説明する。便宜上、図1では、アクセラレータに4つのコアをもつデバイスを使用するとする。それぞれのコアについて、コンフィグレーションで専用あるいは共用の属性を設定する。専用と設定されたコア(専用コア)は、1タスク(機能)で専用される専用モードで動作し、高速動作が可能である。この専用コアには、専用しても高速に動作させたいタスクを動作させる。一方、共用と設定されたコア(共用コア)は、複数タスクで共用される共用モードで動作し、専用コアに比べると低速である。この共用コアには、比較的高速動作を必要としない、時分割で動作させてもよいタスクを動作させる。
図1において、(a)は初期状態を示し、アクセラレータは、コア1,2が専用、コア3,4が共用となっている。この初期状態において、CPUではAとCが動作し、アクセラレータでは、コア1,2でBが動作し、コア3,4でDが動作しているとする。いま、Aの処理時間が想定よりも多くなったとする。この場合、(b)に示すように、コア1〜4の設定は初期状態のままとして、単にコアの使用配分を変更して、共用コア3,4でDとAを動作させる。そして、Aの要求が減ったならば、再び、(a)の初期状態に戻す。すなわち、この段階ではコンフィグレーションの切り替えを行わない。
一方、Aの処理要求が更に多くなったならば、ここで初めてコンフィグレーション切り替えを行って、(c)に示すように、コア3を専用コアとする。そして、このコア3にAを専用して動作させる。その後、Aの処理要求が減ってきたなら、例えば、(b)の状態に戻す。
コンフィグレーション切り替えは処理コストがかかる。メニーコアを持つデバイスでは、いずれかのコアで動作をしていると、リブートできないため、コンフィグレーションの切り替えは、コアの処理の終了の待ち時間も考慮する必要があるため、単純なコア使用配分の変更に比べて処理コストが増加する。本発明では、コンフィグレーションを必要とせずに処理コストがかからないコア使用配分変更の状態を導入して、コア使用配分の変更、コンフィグレーション切り替えと段階的に行うので、無駄な切り替えを避ける効果を期待できる。
図2は、本発明の実施形態に係るデジタル式のカラー画像処理装置の構成例を示す。図において、コントローラ10、アクセラレータ20、操作部30、圧縮処理部60、伸長処理部70など汎用バス100に接続されている。スキャナ40はスキャナ補正部50を介して圧縮処理部60に接続され、プリンタ90はプリンタ補正部80を介して伸長処理部70に接続されている。コントローラ10にはHDD(ハードディスク)110やNIC(ネットワーク・インタフェース・コントローラ)120が接続され、該NIC120はネットワークを通して外部パソコン端末(PC端末)130などが接続される。
コントローラ10は、種々の処理を実行するCPU15を内蔵している。ほかにコントローラ10は、CPU15の処理に必要なソフトウエアを格納するROM、処理途中のデータ等を格納するRAMなどを内蔵しているが、図2では省略してある。アクセラレータ20には、複数のコア(プロセッサコア)を持つデバイスが用いられる。
本画像処理装置が複写機として動作する場合、スキャナ40は原稿から画像データを読み取り、当該画像データ(アナログ信号)をデジタルデータに変換して出力する。スキャナ補正部50は、スキャナ40で読み取った画像データ(デジタルデータ)について、画像領域を文字・線画や写真などに分類したり、原稿画像のRGBデータをフィルタ処理などの画像処理を施す。圧縮処理部60は、スキャナ補正後のRGB各8bit画像データとエッジ文字領域信号(1bit)、色領域信号(1bit)を圧縮処理する。圧縮後の画像データは、汎用バス100を通って、コントローラ10に送られる。コントローラ10は、送られたデータをHDD110に蓄積する。蓄積データには、書誌情報として画像サイズや読み取った原稿の種類も記録する。
なお、ここでは画像データに対し圧縮を施すとしたが、汎用バスの帯域が十分に広く、蓄積するHDD110の容量が大きければ、非圧縮の状態でデータを扱っても良い。
次にコントローラ10は、HDD110の画像データを、汎用バス100を介して伸張処理部70に送出する。伸張処理部70は、圧縮処理されていた画像データを元のRGB各8bitデータとエッジ文字領域信号(1bit)、色領域信号(1bit)に伸張し、プリンタ補正部80に送出する。プリンタ補正部80では、RGB画像データを色補正処理にてYMCBkデータに変換して、エッジ文字領域信号であり色領域信号でない部分は、黒文字としてBkの単色データに置き換える。さらにプリンタ補正部80では、γ補正処理、中間調処理などが行われ、プロッタの明暗特性の補正処理や階調数変換処理を行う。ここでの階調数変換処理では、誤差拡散やディザ処理を用いて各色8bitから2bitへと画像データの変換を行う。プロッタ90はレーザービーム書き込みプロセスを用いた転写紙印字ユニットで、2bitの画像データを感光体に潜像として描画し、トナーによる作像/転写処理後、転写紙にコピー画像を形成する。
本画像処理装置が、ネットワークを介してPCに画像データを配信する配信スキャナとして動作する場合は、コントローラ10内のCPU15あるいはアクセラレータ20がHDD110に蓄積された画像データに対して色変換処理、階調処理、フォーマット処理などを行う。この場合、コントローラ10の制御下で、HDD110に蓄積された画像データをRAM上に展開してCPU15で処理、または、画像データをアクセラレータ20に転送し、アクセラレータ20で処理することが行われる。CPU15で処理するか、アクセラレータ20で処理するかは、機能によって固定的に決めても良いし、CPU15でもアクセラレータ20でも動作するようなアルゴリズムの場合は、装置の利用状況によって切り替えるようにしてもよい。階調処理では、配信スキャナ動作時のモードに従った階調変換処理を行う。フォーマット処理では、JPEGやTIFFやPDF形式への汎用画像フォーマット変換などを行う。CPU15やアクセラレータ20で処理された画像データは、コントローラ10により、NIC120を介して外部PC端末に配信される。
また、本画像処理装置がネットワークを介して、PC端末130からプリントアウトするプリンタとして動作する場合、コントローラ10の制御下で、NIC120で受信したデータから、画像及びプリント指示するコマンドを解析し、画像データとして、印刷できる状態にビットマップ展開して、展開したデータを圧縮する。圧縮された画像データは、随時、大容量の記憶装置であるHDD110に書き込まれる。該画像データを蓄積する時に、書誌情報もHDD110に書き込むようにする。
次に、コントローラ10は、HDD110の画像データを、汎用バス100を介して伸張処理部70に送出する。伸張処理部70は、圧縮処理されていた画像データを元の8bitデータに伸張し、プリンタ補正部80に送出する。プリンタ補正部80では、RGB入力ならば、色補正処理にてYMCBkデータに変換をする。次にYMCBkそれぞれ独立にγ補正処理、中間調処理などが行われ、プロッタ90の明暗特性の補正処理や階調数変換処理を行う。ここでの階調数変換処理では、誤差拡散やディザ処理を用いて8bitから2bitへと画像データの変換を行う。プロッタ90はレーザービーム書き込みプロセスを用いた転写紙印字ユニットで、2bitの画像データを感光体に潜像として描画し、トナーによる作像/転写処理後、転写紙にコピー画像を形成する。
このようなデジタル画像処理装置においては、一般に原稿をスキャナにより読み取り、画像データをデジタルデータに変換するとともに、原稿の画像領域(像域)を、異なる特徴を有する領域に分類(像域分離)する。注目画素がそのいずれの領域に属するものか、判定された結果に従い、画像データに対して種々の画像処理を施す。これにより、出力画像の画像品質が大きく向上させられる。
操作部30からは、動作に関わるモードの設定やスタートの指示を行う。設定を行い、スタートの指示をすることで、上記説明した所望の動作が開始される。この操作部30で選択できるモード体系は、画質モード、濃度ノッチ、階調数、配信ファイルフォーマット等いくつか存在する。基本的には、画質やファイルフォーマットなど、ユーザが視認できる出力品質、出力形態を切り替えるために使われる。
本画像処理装置は、ジョブが実行されたときに、そのジョブの情報を利用履歴として蓄積する。蓄積されるジョブの情報には、そのジョブの機能、原稿枚数、前述した動作に関わるモード(画質モード、濃度ノッチ等)、が含まれているものとする。また、ジョブの機能を実行している最中に、何枚目の原稿を処理しているといった進行状況を管理する情報も、同時に管理されているものとする。
ここで、ジョブとは装置が管理する実行の単位であり、例えばユーザが複数の原稿を図示しないADFにおき、モードを設定して実行したとすると、それが1つのジョブとして装置に管理されることとなる。
また、本画像処理装置は、アクセラレータあるいはCPUで、ある機能を処理する場合、処理した結果のプロファイルを蓄積する。ここでプロファイルとは、機能を構成する小機能が、どのコアでどれだけ時間がかかったか等の、どのようにコアを利用して処理がされたかを示す情報を意味している。
実施形態では、コントローラ10及びアクセラレータ20それぞれが、利用履歴、プロファイル情報を管理しているとする。アクセラレータ20は、利用履歴及びプロファイル情報を入力として、機能の最適なコア使用配分を決める。そして、決まったコア使用配分に基づいて、その機能の小機能のコア使用配分を決める。また、コントローラ10は、利用履歴及びプロファイル情報を入力として、最適なコンフィグレーション設定を決める。アクセラレータ20は、決まったコンフィグーション設定に基づいてコアのコンフィグレーションを行う。以下、実施形態について詳しく説明する。
図3は、アクセラレータ20について説明する図である。アクセラレータ20は、メニーコアなデバイスである。本実施形態では、6個のコア(プロセッサコア)1〜6を持つとする。各コアの動作はマルチタスクに対応したOSで管理され、OSによってタスクがコアに割り振られ、各コア上でタスク動作する。
一つのコアで複数のタスクを動作させる場合、マルチタスクOSでは、ラウンドロビンなどの方法で各タスクに1つのコアの専用を割り当てる。つまり、時分割で複数のタスクが動作することとなる。
メニーコアのデバイスを使用した場合においては、タスクをコアに割り振ることができる。しかし、タスク数がコア数を上回る場合は、各コアで、複数のタスクを動作させる必要があるので、シングルコア時と同様に時分割で処理させることとなる。
コアで動作させるタスクを切り替える場合、処理コストがかかる。複数のタスクが生成されない場合においても、一定の間隔でそれをチェックするための割り込みが入るため、処理コストはいずれにせよかかる。
そのため、コンフィグレーションによって、各コアに対してタスク専用モード、またはタスク共用モードを選択可能な環境になっている。図3では、コア1〜3がタスク専用モードを示し、コア4〜6がタスク共用モードを示している。
先に述べたように、タスク専用モードとは、他のタスクと時分割で動作させずに、タスクに専用させるモードである。前記割り込みの発生を抑えることで、処理コストが削減され、タスク共用モードに比べて高速な動作が可能となる。タスク共用モードとは、他のタスクと時分割で動作させることが可能な設定である。一つのタスクのみが動作しないとした場合であっても、前記割り込みが入るため、専用モードに比べると低速である。
タスクは、機能を実現するソフト上の単位である。ある機能のタスクを動作させるための、コアの使用配分(=専用コア数、共用コア数)は、任意に設計者が決めることができる。2つの機能(機能1、機能2)が存在する装置に3コアのデバイスを搭載した場合、機能1に専用コア、共用コアを1コアずつ割り当て、機能2に専用コアを割り当てるといったことが一つの例である。もし2つの機能を同時に処理する必要がないと分かっている場合は、両機能に3コアを割り当て、機能の要求が発生するたびに、コアの使用方法を変えることも可能である。
機能は複数の小機能から構成されている。ある機能1を構成する小機能1、小機能2が並列動作可能である場合には、小機能1、小機能2にそれぞれコアを割り当てることで、1つのコアで逐次的に処理するよりも高速に動作することが可能となる。
小機能1、小機能2の処理時間の割合が、動作に関わるモードによって、いちじるしく変わる場合には、モードによってコアの使用配分を変えることも可能である。例えば、画質モードが文字のとき、小機能1の割合が大きく、それ以外の画質モードのときには、小機能2の割合が大きい場合には、文字モードの時には小機能1を専用コアに割り当て、小機能2を共用コアに割り当てるとよい。逆に、文字モード以外の時には小機能1を専用コア、小機能2を共用コアに割り当てると良い。
なお、小機能とはソフトの言葉で表すと、関数、メソッド、コンポーネントなどに該当する。これらをスレッド化もしくは別プロセスすることでタスクを生成して動作させる。これらの言葉は、プログラム言語や粒度によって使い分けられるが、本実施形態ではこれらの違いは意識不要なので、小機能という言葉で説明していく。
各コアを専用コアとして動作させるか、共用コアとして動作させるかはコンフィグレーションを変えない限りは変えられないが、機能実現のための、コアの使用配分は容易に変えることが可能である。
したがって、同時に複数の機能を動かす場合には、バランスを考慮して、専用コア、共用コアの配分を考える必要がある。装置として、ベストパフォーマンスが期待できるように、あらかじめ専用コア数、共用コア数を決めておき、電源起動時に決められた設定にしたがって、コンフィグレーションを行うことで、意図した動作をさせることになる。
図4乃至図7に、アクセラレータ20及びコントローラ10のCPU15での実施例1の処理フローを示す。
図4は、アクセラレータ20で機能(タスク)を実施している時の処理フローについて説明する図である。
S001:処理実行
ここでは、現在のコア割り振りに基づいて、受け付けた機能の処理を実施する。実行の際には、実行時のプロファイル情報を蓄積しながら実行する。プロファイルとは、機能を構成する小機能の処理時間の割合やキャッシュミスの割合や回数、どのコアで動いたか等の、どのように実行がなされたかの情報を意味する。プロファイル情報によって、利用状況を確認することができる。プロファイル情報としては、様々なものが考えられるが、実施例では、後述するように、小機能の処理時間の割合を蓄積するとする。
S002:使用頻度更新
利用頻度測定手段として、利用頻度を算出するためのステップである。あらかじめ決めておいた所定の期間において、どの機能がどれだけ使用されたかを集計するための、集計用のカウンタをカウントアップする。後述の基準1として、この実施例では原稿の枚数を用いる。すなわち、所定の枚数に達するまで、原稿を一枚処理するたびに、その機能の使用頻度をカウントするカウンタを一つインクリメントする。
図8に、集計した後の例を示す。これは、過去10回分の利用履歴を蓄積するものとしたときに、機能ごとに利用枚数を記憶することを示している。
S003:プロファイル更新
コア利用状況測定手段として、コアの利用状況を確認するためのステップである。ここでは、所定の期間の処理結果のプロファイル情報に、S001で処理した際のプロファイルを反映させる。利用状況とは、各コアがどの機能でどのように使用されているかを意味する。
プロファイル情報は、例えば、FIFOで管理する。プロファイル更新とは、一番古いプロファイルを削除し、一番新しいS001のプロファイル結果を新たに管理対象とすることを意味する。
図9に、FIFOで管理するプロファイル情報の例を示す。機能Aは、A1〜A4の小機能から構成されているものとし、機能BはB1〜B3の小機能から構成されているものとしている。また、図8の利用履歴に合わせ、過去10回までのプロファイル情報を蓄積するものとし、プロファイル情報としては、小機能の処理時間の割合を蓄積するとしている。なお、後述の基準2として、小機能の処理時間の割合を利用するものとする。
S004:コアの利用状況判定
コアが、想定した利用をされているかを確認するステップである。本実施例では、S003で更新したプロファイル情報としての各小機能の処理時間の割合を、現在のコンフィグレーション設定・コア使用配分で想定している小機能の割合と比較する。現在のコンフィグレーション設定・コア使用配分は、ベストパフォーマンスが出るように設定されたものであるので、想定している小機能の割合は存在するはずのものである。この情報は別途蓄積されているものとする。
具体的には、「比較結果=S003で更新したプロファイル情報としての各小機能の処理時間の割合−現在のコンフィグレーション設定・コア使用配分で想定している小機能の割合」を、閾値2と比較して、その結果によって次のように分岐する。
(ABS(比較結果)>閾値2)の場合
想定していたよりも使用されている、もしくは想定していたよりも使用されていないため、コンフィグレーションの切り替え又はコアの使用配分を切り替えたほうがよいとして、この結果を記憶し、S005に移行する。
(ABS(比較結果)<=閾値2)の場合
想定どおりの使用のされ方であるため、現状のコンフィグレーション、コアの使用配分でよいとし、この結果を記憶し、S005に移行する。
図10を用いて具体的に説明する。現在のコンフィグレーション設定が、表中のA行に記載されている割合を想定していたものだとする。そして、S003で更新したプロファイル結果の全平均が、表中のC行に示したプロファイル結果であったとする。この場合、A1に関しては、比較結果=15%、A2に関しては、−5%、A3に関しては、−5%、A4に関しては−5%というように、小機能ごとに比較結果が求まる。したがって、例えば、閾値2が20%のときは、いずれの小機能の比較結果も、20%より小さいため、想定とおりの使用のされ方とする。また、閾値2が10%のときは、A1に関して、10%より大きいため、想定していたより偏りがあることが分かる。なお、閾値2との比較結果は、後のステップで使用するため記憶しておく。
この閾値2は、あらかじめ方針に準じて設定しておけばよい。また、小機能によって数値を変えてもかまわないし、想定している割合の大きさによって、数値を変動させてもかまわない。
S005:頻度判定
機能の頻度判定を行うステップである。目的は2つある。想定しているコンフィグレーション設定・コア使用配分で想定している小機能の割合と、差が大きい場合の理由を判断するためというのが1つ目、2つ目は、さらに最適な設定がないかを判断するためである。
1つめの目的に関して、詳細に説明する。S004の結果で想定したコアの利用状況と異なることが分かった場合、例えばA1の小機能が想定よりも時間がかかっていると分かった場合には、A1の小機能を実現するコア数を増やす、またはA1が共有コアで動作している場合は、専用コアで動作させるようにした方がよいことは分かるが、A1以外の小機能も踏まえた上で、コアの使い方を再考する必要がある。
再考のための一つの情報として、機能の利用頻度を用いる。S002で更新した利用頻度と、閾値1を比較する。この閾値1は、機能ごとに別の値を持っているものとし、あらかじめ想定していた機能ごとの頻度に応じて設定されているものとする。すなわち、コンフィグレーション設定、コアの使用配分変更の際に更新される値であることを意味する。
閾値1よりも大きければ、FLAG=1、小さければFLAG=0を設定し、FLAGの値を後のステップで使用するために記憶する。FLAG=1の場合には、差が大きい理由が、機能の利用頻度が想定していたものと違うためである可能性が高いことを意味する。
2つ目の目的については、次のステップにて詳細に記載する。
S006:切替か
S004,S005の判定結果を利用して、コンフィグレーション設定またはコア使用配分を変えたほうがよいかを判断するステップである。
図11に、S004、S005の結果に応じでどのように判断するかを示す。S004の結果で、想定する利用状況と大きな違いがないのに、S005の結果からは、機能の利用頻度が想定よりも多い場合が、先の2つ目の目的に対応するケースである。図11にて、最適化をした方が良いケースか否かをこのステップで判断し、現状維持の方が好ましい場合は、処理を終了させる。
S007:コアの使用モード切替か
コンフィグレーションを切り替えるかを判断するステップである。前ステップで、コンフィグレーション設定またはコア使用配分の切替はした方がよいという判断がなされている。
本発明は、最適なコンフィグレーション設定に、段階的に切り替えることを特徴としている。コンフィグレーションの切り替えは、処理コストを必要とするため、予測失敗のリスクが大きいともいえる。そのため、過去の利用履歴、プロファイルから、最適な設定に変えたほうがいいという傾向が出た場合にすぐにコンフィグレーション切り替えをせずに、コア使用配分を変える対応をする。
そのため、このステップでは、最初に図10の最適化をした方が良いケースにあてはまった場合は、コア使用配分を変更するため、S008に移行する。コア使用配分をすでに変更していた場合は、コンフィグレーションを切り替えるために、S009に移行する。
どちらのステップに進むかを、状態変数で管理するものとし、S008、S009のどちらに進むかは状態によって識別すればよい。S008に移動した場合は各種閾値と比較するためのカウンタをクリアする。
S008:使用コア配分変更
機能の小機能の使用コア配分を決定するステップである。この変更にはコストはかからない。具体的には、プロファイル結果から各コアの処理負荷が均等になるように設定する。
使用コア配分は、プロファイル情報から決める。図12を用いて説明する。
図12では、機能Aと機能Bのみが存在するものとしている。機能A、機能Bの発生頻度をかんがみてデフォルトのコンフィグレーション設定、コアの使用配分が決まっている。この各設定例を図11(a)に示す。機能A、機能Bが同時に実施する必要がないというのであれば、すべて専用コアとしてもかまわないのであるが、同時に実行が必要とし、機能Aの小機能A1に2つ、機能Bの小機能B1に1つずつ専用コアを割り当てている。機能A、機能Bのそれ以外の小機能については共用コアを共用するものとしている。
先のS005で、機能AのA1に想定以上の負荷がかかっていることが分かり、使用コア配分またはコンフィグレーションを切り替えた方が良いとわかっているものとする。また、S006で、使用コア配分を切り替えると決まっているものとする。この場合に、現在の使用頻度に最適になるようにコアを割り振る。A1を、コアにどのように割り振るかは、機能Bも含めたプロファイル情報で決める。各コアの利用状況、小機能の利用状況を鑑みて決めればよい。その結果、図12(b)に示すように、A3の小機能とA1の小機能、B1の小機能が一つのコアを共有して動作することとなる。
図12(c)については後述するが、コンフィグレーションを(c)に切り替えた方が、スループットはあがると考えられる場合にも、(b)という段階を経ることとなる。使用コア配分には処理コストはかからないため、コンフィグレーションを切り替えるほどパフォーマンスはあがらないが、変更前よりは向上できる。
S009:コンフィグレーション切り替え通知
最適なコンフィグレーション切り替えの判断をコントローラ10に仰ぐステップである。S007でコンフィグレーション切り替えが要となった場合、コントローラ10にコンフィグレーションの切り替えを通知する。この時、プロファイル情報、頻度情報もコントローラ側で参照できるように一緒に通知する。
その後、コントローラ10からコンフィグレーション設定指示を受け取ってコンフィグレーション切り替えを行い、コアの使用モードを切り替える。これについては後述する。
図5は、コントローラ10のCPU15で機能(タスク)を実施している時の処理フローについて説明する図である。
図5において、S001からS006は、図4と同様である。すなわち、コントローラ10上のCPU15でも、CPU15での機能の利用状況や頻度を確認するため、図4と同様の処理フローが進行する。ただし、CPU15はシングルコアを想定しているため、CPU自体のコンフィグレーション切り替えという概念がない。そのため、S006の後のフローが図4と異なる。
S010:コンフィグレーション設定指示
ここでは、CPU15で想定以上に動作している機能をアクセラレータ側でどうさせるためのコンフィグレーションを決定して、アクセラレータ20にコンフィグレーション切り替えを指示する。この場合、アクセラレータ20に対して、該アクセラレータ20で管理しているアクセラレータ上のプロファイル、使用頻度を問い合わせてから(不図)、最適なコンフィグレーションを決定する。
図6は、アクセラレータ20からコンフィグレーション切り替え通知が来たときにコントローラ10で動作する処理フローについて説明する図である。
機能入れ替え判断(S021)では、アクセラレータ20から通知されたプロファイル情報、頻度情報に加えて、CPU15上のプロファイル、使用頻度をふまえて最適なコンフィグレーション設定を判断する。コンフィグレーション設定指示(S022)では、この判断結果に基づいて、アクセラレータ20にコンフィグレーション設定を指示する。
図7は、コントローラ10からコンフィグレーション設定指示が来たときにアクセラレータ20で動作する処理フローについて説明する図である。アクセラレータ20は、コントローラ10からの指示に基づいてコンフィグレーション切り替えを実施する(S031)。
図12を用いて説明する。なお、説明の簡単化のためCPU15上のプロファイル、使用頻度は考えないことにする。
先のS005で、機能AのA1に想定以上の負荷がかかっていることが分かり、使用コア配分またはコンフィグレーションを切り替えた方が良いとわかっているものとする。また、先のS006では、コンフィグレーションを切り替えると決まっているものとする。この場合、図12の(c)が現状に最適なコンフィグレーション設定を示すことになる。
図13に、機能A、機能Bの具体例を示す。(a)は機能Aの具体例で、これはテキスト付きPDFのOCR機能の処理を示したものである。また、(b)は機能Bの具体例で、これは画像のJPEG化の処理を示したものである。
次に、図14にアクセラレータ20で機能を実施している時の実施例2の処理フローを示す。これは、先の図4の処理フローにステップS001_1,S001_2を追加したもので、これ以外は図4の同じである。したがって、S001_1,S001_2のみ説明する。
S001_1:ページ数確認
現在のジョブがマルチページかどうか、そして未処理のページ数を確認する。マルチページの場合は、すべてのページが同じ設定であることと、似たような特徴の原稿から構成されている可能性が高いことから、現在の利用状況と同じ傾向が続くと考えられる。
そのため、閾値1,2を小さくすることで、コンフィグレーション設定、コア使用配分を変えやすくする。具体的には、マルチページであり、残りの未処理ページ数が所定閾値5以上であった場合には、閾値1,2を小さくする操作を行う。所定閾値5はあらかじめ決めておくものとする。
S001_2:実行待ちジョブ確認
現在実行中のジョブ以外に、実行待ちのジョブがあるかを確認する。その実行待ちのジョブのモードを確認して、現在実行中の処理と同じモード設定かを確認し、その頻度によって閾値1,2を変える。待機待ちのジョブが現在のモード設定と同じものが多い場合は、そのモードに最適なコンフィグレーションにするとパフォーマンスが期待できる。ここで頻度は、現在の同じモードが50%以上あればなどと、所定の閾値と比較することで判断すればよい。
以上、本発明の実施形態について説明したが、本発明は、説明した実施形態に限られるものではない。実施形態では、毎回プロファイルを蓄積し、分析を行ったが、プロファイルの蓄積や分析の時間を短縮するために、頻度を落としても構わない。また、実施形態では、コンフィグレーション設定はコントローラ側が決定するとしたが、アクセラレータ側が独自に決定してコンフィグレーション切り替えを実施することも可能である。
10 コントローラ
15 CPU
20 アクセラレータ
30 操作部
40 スキャナ
50 スキャナ補正部
60 圧縮処理部
70 伸長処理部
80 プリンタ補正部
90 プロッタ
特開2008−18560号公報
1つめの目的に関して、詳細に説明する。S004の結果で想定したコアの利用状況と異なることが分かった場合、例えばA1の小機能が想定よりも時間がかかっていると分かった場合には、A1の小機能を実現するコア数を増やす、またはA1が共用コアで動作している場合は、専用コアで動作させるようにした方がよいことは分かるが、A1以外の小機能も踏まえた上で、コアの使い方を再考する必要がある。
先のS005で、機能AのA1に想定以上の負荷がかかっていることが分かり、使用コア配分またはコンフィグレーションを切り替えた方が良いとわかっているものとする。また、S006で、使用コア配分を切り替えると決まっているものとする。この場合に、現在の使用頻度に最適になるようにコアを割り振る。A1を、コアにどのように割り振るかは、機能Bも含めたプロファイル情報で決める。各コアの利用状況、小機能の利用状況を鑑みて決めればよい。その結果、図12(b)に示すように、A3の小機能とA1の小機能、B1の小機能が一つのコアを共用して動作することとなる。
S010:コンフィグレーション設定指示
ここでは、CPU15で想定以上に動作している機能をアクセラレータ側で動作させるためのコンフィグレーションを決定して、アクセラレータ20にコンフィグレーション切り替えを指示する。この場合、アクセラレータ20に対して、該アクセラレータ20で管理しているアクセラレータ上のプロファイル、使用頻度を問い合わせてから(不図)、最適なコンフィグレーションを決定する。

Claims (12)

  1. 複数のコアを内部に持つデバイスであって、それぞれのコアを、1機能で専用させる専用モードで動作させるか、複数の機能で共用させる共有モードで動作させるかを、コンフィグレーションにより設定可能なデバイスを備えた画像処理装置において、
    機能の利用頻度を測定する利用頻度測定手段と、
    コアの利用状況を測定するコア利用状況測定手段と、
    前記利用頻度測定手段の測定結果を閾値1と比較した結果と、コア利用状況測定手段の測定結果を閾値2と比較した結果とにより、各コアの現在の設定モードでの、最適な機能のコアの割り振りを決めるコア割り当て決定手段1と、
    前記利用頻度測定手段の測定結果を閾値1と比較した結果と、コア利用状況測定手段の測定結果を閾値2と比較した結果とにより、各コアの設定モードを変えることを前提にして、最適な各コアの設定モード及び機能のコアの割り振りを決めるコア割り当て決定手段2と、
    を有し、
    前記コア割り当て決定手段1で決定したコア割り振り、前記コア割り当て決定手段2で決定したコアの設定モード及びコア割り振りに、段階的に切り替えることを特徴とする画像処理装置。
  2. 前記利用頻度測定手段は、機能の利用履歴を利用して、機能の利用頻度を基準1により測定し、
    前記コア利用状況測定手段は、機能のプロファイル結果を利用して、コアの利用状況を基準2により測定する、
    ことを特徴とする請求項1に記載の画像処理装置。
  3. 前記コア割り当て決定手段1で利用する前記利用頻度測定手段と前記コア利用状況測定手段の前記基準1、2のいずれか一方もしくは両方は、
    前記コア割り当て決定手段2で利用する前記利用頻度測定手段と前記コア利用状況測定手段の前記基準1、2のいずれか一方もしくは両方と異なることを特徴とする請求項2に記載の画像処理装置。
  4. 受付済みで未実施のジョブのモードと、実施済みのジョブのモードとの一致度を算出する一致度算出手段をさらに備え、
    前記一致度算出手段の結果により、前記閾値2を変えることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
  5. 処理中の画像がマルチページの1ページであるかを判断するマルチページ判断手段と、マルチページのうちの未処理のページ数を求める残りページ算出手段とをさらに備え、
    前記マルチページ判断手段と前記残りページ算出手段とにより、前記閾値2を変えることを特徴とする請求項1乃至3のいずれか1項に記載の画像処理装置。
  6. 前記基準1はページ数であり、前記基準2は機能を構成する小機能の処理時間であることを特徴とする請求項2乃至5のいずれか1項に記載の画像処理装置。
  7. 複数のコアを内部に持つデバイスであって、それぞれのコアを、1機能で専用させる専用モードで動作させるか、複数の機能で共用させる共有モードで動作させるかを、コンフィグレーションにより設定可能なデバイスを備えた画像処理装置の画像処理方法において、
    機能の利用頻度を測定する利用頻度測定工程と、
    コアの利用状況を測定するコア利用状況測定工程と、
    前記利用頻度測定工程の測定結果を閾値1と比較した結果と、コア利用状況測定工程の測定結果を閾値2と比較した結果とにより、各コアの現在の設定モードでの、最適な機能のコアの割り振りを決めるコア割り当て決定工程1と、
    前記利用頻度測定工程の測定結果を閾値1と比較した結果と、コア利用状況測定工程の測定結果を閾値2と比較した結果とにより、各コアの設定モードを変えることを前提にして、最適な各コアの設定モード及び機能のコアの割り振りを決めるコア割り当て決定工程2と、
    を有し、
    前記コア割り当て決定工程1で決定したコア割り振り、前記コア割り当て決定工程2で決定したコアの設定モード及びコア割り振りに、段階的に切り替えることを特徴とする画像処理方法。
  8. 前記利用頻度測定工程は、機能の利用履歴を利用して、機能の利用頻度を基準1により測定し、
    前記コア利用状況測定工程は、機能はプロファイル結果を利用して、コアの利用状況を基準2により測定する、
    ことを特徴とする請求項7に記載の画像処理方法。
  9. 前記コア割り当て決定工程1で利用する利用頻度測定工程と前記コア利用状況測定工程の前記基準1、2のいずれか一方もしくは両方は、
    前記コア割り当て決定工程2で利用する前記利用頻度測定工程と前記コア利用状況測定工程の前記基準1、2のいずれか一方もしくは両方と異なることを特徴とする請求項8に記載の画像処理方法。
  10. 受付済みで未実施のジョブのモードと、実施済みのジョブのモードとの一致度を算出する一致度算出工程をさらに備え、
    前記一致度算出工程の結果により、前記閾値2を変えることを特徴とする請求項7乃至9のいずれか1項に記載の画像処理方法。
  11. 処理中の画像がマルチページの1ページであるかを判断するマルチページ判断工程と、マルチページのうちの未処理のページ数を求める残りページ算出工程とをさらに備え、
    前記マルチページ判断工程と前記残りページ算出工程とにより、前記閾値2を変えることを特徴とする請求項7乃至9のいずれか1項に記載の画像処理方法。
  12. 前記基準1はページ数であり、前記基準2は機能を構成する小機能の処理時間であることを特徴とする請求項8乃至11のいずれか1項に記載の画像処理方法。
JP2011060343A 2011-03-18 2011-03-18 画像処理装置及び画像処理方法 Withdrawn JP2012194947A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011060343A JP2012194947A (ja) 2011-03-18 2011-03-18 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011060343A JP2012194947A (ja) 2011-03-18 2011-03-18 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
JP2012194947A true JP2012194947A (ja) 2012-10-11

Family

ID=47086739

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011060343A Withdrawn JP2012194947A (ja) 2011-03-18 2011-03-18 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP2012194947A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049941A (zh) * 2013-03-15 2014-09-17 英特尔公司 跟踪指令的控制流程
JP2016035644A (ja) * 2014-08-01 2016-03-17 京セラドキュメントソリューションズ株式会社 電子機器及び情報処理プログラム
JP2017107489A (ja) * 2015-12-11 2017-06-15 富士通株式会社 処理装置及び処理装置の制御方法
JP2018062157A (ja) * 2016-10-14 2018-04-19 富士ゼロックス株式会社 画像形成装置、情報処理装置およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104049941A (zh) * 2013-03-15 2014-09-17 英特尔公司 跟踪指令的控制流程
US9880842B2 (en) 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
JP2016035644A (ja) * 2014-08-01 2016-03-17 京セラドキュメントソリューションズ株式会社 電子機器及び情報処理プログラム
JP2017107489A (ja) * 2015-12-11 2017-06-15 富士通株式会社 処理装置及び処理装置の制御方法
JP2018062157A (ja) * 2016-10-14 2018-04-19 富士ゼロックス株式会社 画像形成装置、情報処理装置およびプログラム

Similar Documents

Publication Publication Date Title
US8505011B2 (en) Method of optimizing job distribution process by analysis of transmission time and processing time
US8842325B2 (en) Image processing apparatus, control method thereof, and storage medium
US10122883B2 (en) Image processing apparatus including circuit configuration and method of controlling the same
US20120137087A1 (en) Storage area management apparatus for managing storage areas provided from upper apparatuses, and control method and storage medium therefor
JP4208769B2 (ja) 情報処理装置、並びに、その制御方法および情報処理方法
JP2003101741A (ja) 画像処理装置、及びその制御方法、並びに制御装置
JP2012194947A (ja) 画像処理装置及び画像処理方法
US20100228931A1 (en) Management apparatus, system, control method, and recording medium
US10037591B2 (en) Information processing apparatus and method of controlling the same
US9118790B2 (en) Information processing apparatus, system, method, and storage medium
JP2008172402A (ja) カラー画像処理制御装置
US10652430B2 (en) Image processing apparatus, image processing method, and storage medium to convert image data
US8726003B2 (en) Reconfigurable operation apparatus, data compression apparatus, reconfigurable operation method and computer-readable medium
US10620887B2 (en) Image forming apparatus and information processing apparatus configured to print a specified page of a plurality of documents, control method thereof, and non-transitory computer-readable storage medium
US20150268913A1 (en) Image processing system, image processing device, and processing control device
JP2019014135A (ja) 画像処理装置、画像処理方法及びプログラム
US20050044549A1 (en) Data processing apparatus
JP2016076867A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US20100309517A1 (en) Image Forming Apparatus and Method
JP2011053944A (ja) 画像形成装置、画像形成方法及び制御プログラム
US20160050332A1 (en) Image processing apparatus for controlling dynamic reconfigurable apparatus, information processing method for image processing apparatus, and storage medium for storing program to achieve information processing method
JP2020110926A (ja) 画像形成装置、画像形成装置の制御方法、画像形成システム、及びプログラム
JP7490392B2 (ja) 画像形成装置、情報処理システム、画像形成装置の制御方法、及びプログラム
JP2016177481A (ja) 画像処理装置、画像形成装置、及びプログラム
JP2015198405A (ja) 画像処理装置及びその制御方法、並びにプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20130801

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130826

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130826

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140603