(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-08
(45)【発行日】2022-11-16
(54)【発明の名称】画像形成装置およびプログラム
(51)【国際特許分類】
B41J 5/30 20060101AFI20221109BHJP
H04N 1/00 20060101ALI20221109BHJP
G06F 3/12 20060101ALI20221109BHJP
G06F 9/38 20060101ALI20221109BHJP
G06F 9/50 20060101ALI20221109BHJP
【FI】
B41J5/30 Z
H04N1/00 912
G06F3/12 311
G06F3/12 340
G06F9/38 370C
G06F9/50 150E
(21)【出願番号】P 2018126396
(22)【出願日】2018-07-02
【審査請求日】2021-06-18
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】100117673
【氏名又は名称】中島 了
(72)【発明者】
【氏名】前川 武士
(72)【発明者】
【氏名】浅井 佑樹
【審査官】佐藤 孝幸
(56)【参考文献】
【文献】特開2016-063407(JP,A)
【文献】特開2014-186478(JP,A)
【文献】特開2002-120412(JP,A)
【文献】特開2006-311487(JP,A)
【文献】特開2012-081626(JP,A)
【文献】特開2010-102569(JP,A)
【文献】特開2015-231141(JP,A)
【文献】特開2003-271368(JP,A)
【文献】特開2014-082551(JP,A)
【文献】特開2007-028148(JP,A)
【文献】特開2017-228192(JP,A)
【文献】特開2014-078078(JP,A)
【文献】特開2012-091422(JP,A)
【文献】特開2011-046034(JP,A)
【文献】特開2010-226283(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 5/30
H04N 1/00
G06F 3/12
G06F 9/38
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
画像形成装置であって、
複数のコアを有するCPUを用いて前記画像形成装置の動作を制御する制御手段と、
前記複数のコアのうちの第1コアを用いて制御されるべき第1種類のジョブを受け付ける第1受付手段と、
前記複数のコアのうちの第2コアを用いて制御されるべき第2種類のジョブを受け付ける第2受付手段と、
を備え、
前記制御手段は、前記第1種類のジョブと前記第2種類のジョブとのうちの一方のジョブの実行中に他方のジョブが受け付けられた際に、
仮に前記第2コアのみで前記第2種類のジョブを
実行すると前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間との重複期間であって前記他方のジョブの受付後に発生する重複期間におい
て前記第2コアでの処理負荷率が所定値に到達することが前記第2種類のジョブの内容に基づいて予測される場合、前記第2種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記第2種類のジョブとを並列的に実行することを特徴とする画像形成装置。
【請求項2】
請求項1に記載の画像形成装置において、
前記制御手段は、前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間とが重複するものの
仮に前記第2コアのみで前記第2種類のジョブ
を実行しても前記第2コアでの処理負荷率が前記所定値に到達しないことが
予測される場合、前記第2種類のジョブを前記第2コアで実行させつつ前記第1種類のジョブと前記第2種類のジョブとを並列的に実行することを特徴とする画像形成装置。
【請求項3】
請求項1または請求項2に記載の画像形成装置において、
前記制御手段は、前記第2種類のジョブを複数の区分ジョブに区分し、前記第1種類のジョブの実行期間と前記複数の区分ジョブのうちの一の区分ジョブの実行期間とが重複し且つ
仮に前記第2コアのみで前記一の区分ジョブ
を実行すると前記第2コアでの処理負荷率が前記所定値に到達することが
予測される場合、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行することを特徴とする画像形成装置。
【請求項4】
請求項3に記載の画像形成装置において、
前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複するものの
仮に前記第2コアのみで前記一の区分ジョブ
を実行しても前記第2コアでの処理負荷率が前記所定値に到達しないことが
予測される場合、前記一の区分ジョブを前記第2コアで実行させつつ前記第1種類のジョブと前記一の区分ジョブとを並列的に実行することを特徴とする画像形成装置。
【請求項5】
請求項3に記載の画像形成装置において、
前記第2種類のジョブは、印刷出力物の複数のページに関するラスタライズデータを生成するラスタライズデータ生成ジョブであり、
前記制御手段は、前記第2種類のジョブをページ単位で前記複数の区分ジョブに区分することを特徴とする画像形成装置。
【請求項6】
請求項5に記載の画像形成装置において、
前記制御手段は、前記一の区分ジョブを所定ライン数単位で前記複数の分割ジョブに分割することを特徴とする画像形成装置。
【請求項7】
請求項5に記載の画像形成装置において、
前記制御手段は、前記一の区分ジョブを基本色成分単位で前記複数の分割ジョブに分割することを特徴とする画像形成装置。
【請求項8】
請求項3に記載の画像形成装置において、
前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであり、
前記制御手段は、前記第2種類のジョブを所定ライン数単位で前記複数の区分ジョブに区分することを特徴とする画像形成装置。
【請求項9】
請求項8に記載の画像形成装置において、
前記制御手段は、前記一の区分ジョブを前記所定ライン数単位よりも細かい単位で前記複数の分割ジョブに分割することを特徴とする画像形成装置。
【請求項10】
請求項8に記載の画像形成装置において、
前記制御手段は、前記一の区分ジョブを基本色成分単位で前記複数の分割ジョブに分割することを特徴とする画像形成装置。
【請求項11】
請求項1から請求項10のいずれかに記載の画像形成装置において、
前記制御手段は、前記第2種類のジョブの対象画像に基づいて、前記第2種類のジョブの実行により前記第2コアでの処理負荷率が前記所定値に到達するか否か、を
予測することを特徴とする画像形成装置。
【請求項12】
請求項11に記載の画像形成装置において、
前記制御手段は、前記対象画像の解像度と前記対象画像に関するレイヤーの数と前記対象画像に関する特定種類のオブジェクト数とのうちのいずれか1つ以上に基づいて、前記第2種類のジョブの実行により前記第2コアでの処理負荷率が前記所定値に到達するか否か、を
予測することを特徴とする画像形成装置。
【請求項13】
請求項3に記載の画像形成装置において、
前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複し且つ
仮に前記第2コアのみで前記一の区分ジョブ
を実行すると前記第2コアでの処理負荷率が前記所定値に到達することが
予測される場合において、
所定条件が成立するときには、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行し、
前記所定条件が成立しないときには、前記一の区分ジョブの実行期間と前記第1種類のジョブの実行期間とが重複しないように前記一の区分ジョブの実行タイミングを変更することを特徴とする画像形成装置。
【請求項14】
請求項13に記載の画像形成装置において、
前記所定条件は、前記一の区分ジョブに関する前記複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能であることを含むことを特徴とする画像形成装置。
【請求項15】
請求項14に記載の画像形成装置において、
前記複数の分割ジョブは、前記一の区分ジョブに関する画像を領域分割した複数の分割領域をそれぞれ処理対象とするジョブであり、
前記所定条件は、前記複数の分割ジョブのうちの各分割ジョブに関する画像処理が、前記複数の分割ジョブのうちの他の分割ジョブの分割領域の画像データを用いる特定の画像処理を有しないことを含むことを特徴とする画像形成装置。
【請求項16】
請求項15に記載の画像形成装置において、
前記特定の画像処理は、誤差拡散処理と画像フィルタ処理とグラデーション処理とのいずれかを含むことを特徴とする画像形成装置。
【請求項17】
請求項14に記載の画像形成装置において、
前記複数の分割ジョブは、前記一の区分ジョブに関する画像を基本色成分ごとに分割した複数の色成分画像をそれぞれ処理対象とするジョブであり、
前記所定条件は、前記複数の分割ジョブのうちの各分割ジョブに関する画像処理が、前記複数の分割ジョブのうちの他の分割ジョブの色成分画像の画像データを用いる特定の画像処理を有しないことを含むことを特徴とする画像形成装置。
【請求項18】
請求項17に記載の画像形成装置において、
前記特定の画像処理は、色変換処理を含むことを特徴とする画像形成装置。
【請求項19】
請求項3に記載の画像形成装置において、
前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複し且つ
仮に前記第2コアのみで前記一の区分ジョブ
を実行すると前記第2コアでの処理負荷率が前記所定値に到達することが
予測される場合において、
所定条件が成立するときには、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行し、
前記所定条件が成立しないときには、前記第1種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第1種類のジョブの所要時間を低減しつつ、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複しないように前記一の区分ジョブの実行タイミングを変更することを特徴とする画像形成装置。
【請求項20】
請求項1から請求項19のいずれかに記載の画像形成装置において、
前記第1種類のジョブは、スキャンジョブとコピージョブとの少なくとも1つを含むことを特徴とする画像形成装置。
【請求項21】
請求項20に記載の画像形成装置において、
前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであることを特徴とする画像形成装置。
【請求項22】
請求項1から請求項21のいずれかに記載の画像形成装置において、
前記第1種類のジョブは、その即時実行要求の必要性が前記第2種類のジョブよりも高いジョブであることを特徴とする画像形成装置。
【請求項23】
画像形成装置に内蔵されたコンピュータであって、複数のコアを有するCPUを備えるコンピュータに、
a)前記複数のコアのうちの第1コアを用いて制御されるべき第1種類のジョブを受け付けるステップと、
b)前記複数のコアのうちの第2コアを用いて制御されるべき第2種類のジョブを受け付けるステップと、
c)前記第1種類のジョブと前記第2種類のジョブとのうちの一方のジョブの実行中に他方のジョブが受け付けられた際に、
仮に前記第2コアのみで前記第2種類のジョブを
実行すると前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間との重複期間であって前記他方のジョブの受付後に発生する重複期間におい
て前記第2コアでの処理負荷率が所定値に到達することが前記第2種類のジョブの内容に基づいて予測される場合、前記第2種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記第2種類のジョブとを並列的に実行するステップと、
を実行させるためのプログラム。
【請求項24】
請求項23に記載のプログラムにおいて、
前記第1種類のジョブは、スキャンジョブとコピージョブとの少なくとも1つを含むことを特徴とするプログラム。
【請求項25】
請求項24に記載のプログラムにおいて、
前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであることを特徴とするプログラム。
【請求項26】
請求項23から請求項25のいずれかに記載のプログラムにおいて、
前記第1種類のジョブは、その即時実行要求の必要性が前記第2種類のジョブよりも高いジョブであることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、MFP(マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral))などの画像形成装置およびそれに関連する技術に関する。
【背景技術】
【0002】
処理の高速化および消費電力の低減等を図るため、MFPなどの画像形成装置を制御するCPUとして、マルチコアプロセッサを用いることが提案されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、たとえば4つのコア(「コア1」~「コア4」)を有するCPUを用いて画像形成装置を制御するにあたり、複数のコアのそれぞれに対して各ジョブをその種類に応じて割り当てることが考えられる。
【0005】
たとえば、「コア1」には、「リアルタイムジョブ」(所定程度よりも高いリアルタイム性が要求されるジョブ)(たとえば、コピージョブおよびスキャンジョブ等)が割り当てられる。また、「コア2」には、「ラスタライズデータ生成ジョブ(RIP処理あるいはラスタライズジョブとも称する)」(たとえば、PCプリントにて送信されてきたデータに基づくRIP処理等)が割り当てられる。さらに、「コア3」には、各種のアプリケーションプログラムの実行ジョブ(アプリケーション実行ジョブ)が割り当てられ、「コア4」には、パネル操作に関するジョブ(パネル操作管理ジョブ)が割り当てられる。
【0006】
この場合、ラスタライズジョブ(RIP処理)の中には非常に高い処理負荷を有するものが存在し、ラスタライズジョブの内容に依っては「コア2」での処理負荷率が非常に高い値に到達する可能性が存在する。「コア2」での処理負荷率が100%に到達すると、コア間通信等が阻害され、他のコアでの動作が出来なくなる。たとえば、ラスタライズジョブ実行により「コア2」での処理負荷率が100%に到達すると、「コア1」でリアルタイムジョブを正常に実行することができなくなる。
【0007】
ここにおいて、リアルタイムジョブ(コピージョブおよびスキャンジョブ等)は、ユーザ操作に応じて直ちに実行されることが好ましく、高いリアルタイム性が要求されるジョブである。当該リアルタイムジョブの正常な実行が阻害されることは回避すべきである。
【0008】
このような事態の回避策としては、ラスタライズジョブとリアルタイムジョブとの重複実行を完全に排除することが一案である。具体的には、ラスタライズジョブが既に実行されている期間においてはリアルタイムジョブの実行が常に禁止され、ラスタライズジョブの実行完了を待って当該リアルタイムジョブの実行が開始されればよい。逆に、リアルタイムジョブが既に実行されている期間においては、ラスタライズジョブの実行が常に禁止され、リアルタイムジョブの実行完了を待ってラスタライズジョブの実行が開始されればよい。
【0009】
しかしながら、このような動作は、リアルタイムジョブあるいはラスタライズジョブの実行完了時点の遅延を招くなど、画像形成装置の効率を低下させる。
【0010】
そこで、この発明は、画像形成装置においてより効率的な動作を実現することが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【0011】
上記課題を解決すべく、請求項1の発明は、画像形成装置であって、複数のコアを有するCPUを用いて前記画像形成装置の動作を制御する制御手段と、前記複数のコアのうちの第1コアを用いて制御されるべき第1種類のジョブを受け付ける第1受付手段と、前記複数のコアのうちの第2コアを用いて制御されるべき第2種類のジョブを受け付ける第2受付手段と、を備え、前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであり、前記第1種類のジョブは、その即時実行要求の必要性が前記第2種類のジョブよりも高いジョブであり、前記制御手段は、前記第1種類のジョブと前記第2種類のジョブとのうちの一方のジョブの実行中に他方のジョブが受け付けられた際に、仮に前記第2コアのみで前記第2種類のジョブを実行すると前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間との重複期間であって前記他方のジョブの受付後に発生する重複期間において前記第2コアでの処理負荷率が所定値に到達することが前記第2種類のジョブの内容に基づいて予測される場合、前記第2種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記第2種類のジョブとを並列的に実行することを特徴とする。
【0012】
請求項2の発明は、請求項1の発明に係る画像形成装置において、前記制御手段は、前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間とが重複するものの仮に前記第2コアのみで前記第2種類のジョブを実行しても前記第2コアでの処理負荷率が前記所定値に到達しないことが予測される場合、前記第2種類のジョブを前記第2コアで実行させつつ前記第1種類のジョブと前記第2種類のジョブとを並列的に実行することを特徴とする。
【0013】
請求項3の発明は、請求項1または請求項2の発明に係る画像形成装置において、前記制御手段は、前記第2種類のジョブを複数の区分ジョブに区分し、前記第1種類のジョブの実行期間と前記複数の区分ジョブのうちの一の区分ジョブの実行期間とが重複し且つ仮に前記第2コアのみで前記一の区分ジョブを実行すると前記第2コアでの処理負荷率が前記所定値に到達することが予測される場合、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行することを特徴とする。
【0014】
請求項4の発明は、請求項3の発明に係る画像形成装置において、前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複するものの仮に前記第2コアのみで前記一の区分ジョブを実行しても前記第2コアでの処理負荷率が前記所定値に到達しないことが予測される場合、前記一の区分ジョブを前記第2コアで実行させつつ前記第1種類のジョブと前記一の区分ジョブとを並列的に実行することを特徴とする。
【0015】
請求項5の発明は、請求項3の発明に係る画像形成装置において、前記第2種類のジョブは、印刷出力物の複数のページに関するラスタライズデータを生成するラスタライズデータ生成ジョブであり、前記制御手段は、前記第2種類のジョブをページ単位で前記複数の区分ジョブに区分することを特徴とする。
【0016】
請求項6の発明は、請求項5の発明に係る画像形成装置において、前記制御手段は、前記一の区分ジョブを所定ライン数単位で前記複数の分割ジョブに分割することを特徴とする。
【0017】
請求項7の発明は、請求項5の発明に係る画像形成装置において、前記制御手段は、前記一の区分ジョブを基本色成分単位で前記複数の分割ジョブに分割することを特徴とする。
【0018】
請求項8の発明は、請求項3の発明に係る画像形成装置において、前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであり、前記制御手段は、前記第2種類のジョブを所定ライン数単位で前記複数の区分ジョブに区分することを特徴とする。
【0019】
請求項9の発明は、請求項8の発明に係る画像形成装置において、前記制御手段は、前記一の区分ジョブを前記所定ライン数単位よりも細かい単位で前記複数の分割ジョブに分割することを特徴とする。
【0020】
請求項10の発明は、請求項8の発明に係る画像形成装置において、前記制御手段は、前記一の区分ジョブを基本色成分単位で前記複数の分割ジョブに分割することを特徴とする。
【0021】
請求項11の発明は、請求項1から請求項10のいずれかの発明に係る画像形成装置において、前記制御手段は、前記第2種類のジョブの対象画像に基づいて、前記第2種類のジョブの実行により前記第2コアでの処理負荷率が前記所定値に到達するか否か、を予測することを特徴とする。
【0022】
請求項12の発明は、請求項11の発明に係る画像形成装置において、前記制御手段は、前記対象画像の解像度と前記対象画像に関するレイヤーの数と前記対象画像に関する特定種類のオブジェクト数とのうちのいずれか1つ以上に基づいて、前記第2種類のジョブの実行により前記第2コアでの処理負荷率が前記所定値に到達するか否か、を予測することを特徴とする。
【0023】
請求項13の発明は、請求項3の発明に係る画像形成装置において、前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複し且つ仮に前記第2コアのみで前記一の区分ジョブを実行すると前記第2コアでの処理負荷率が前記所定値に到達することが予測される場合において、所定条件が成立するときには、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行し、前記所定条件が成立しないときには、前記一の区分ジョブの実行期間と前記第1種類のジョブの実行期間とが重複しないように前記一の区分ジョブの実行タイミングを変更することを特徴とする。
【0024】
請求項14の発明は、請求項13の発明に係る画像形成装置において、前記所定条件は、前記一の区分ジョブに関する前記複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能であることを含むことを特徴とする。
【0025】
請求項15の発明は、請求項14の発明に係る画像形成装置において、前記複数の分割ジョブは、前記一の区分ジョブに関する画像を領域分割した複数の分割領域をそれぞれ処理対象とするジョブであり、前記所定条件は、前記複数の分割ジョブのうちの各分割ジョブに関する画像処理が、前記複数の分割ジョブのうちの他の分割ジョブの分割領域の画像データを用いる特定の画像処理を有しないことを含むことを特徴とする。
【0026】
請求項16の発明は、請求項15の発明に係る画像形成装置において、前記特定の画像処理は、誤差拡散処理と画像フィルタ処理とグラデーション処理とのいずれかを含むことを特徴とする。
【0027】
請求項17の発明は、請求項14の発明に係る画像形成装置において、前記複数の分割ジョブは、前記一の区分ジョブに関する画像を基本色成分ごとに分割した複数の色成分画像をそれぞれ処理対象とするジョブであり、前記所定条件は、前記複数の分割ジョブのうちの各分割ジョブに関する画像処理が、前記複数の分割ジョブのうちの他の分割ジョブの色成分画像の画像データを用いる特定の画像処理を有しないことを含むことを特徴とする。
【0028】
請求項18の発明は、請求項17の発明に係る画像形成装置において、前記特定の画像処理は、色変換処理を含むことを特徴とする。
【0029】
請求項19の発明は、請求項3の発明に係る画像形成装置において、前記制御手段は、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複し且つ仮に前記第2コアのみで前記一の区分ジョブを実行すると前記第2コアでの処理負荷率が前記所定値に到達することが予測される場合において、所定条件が成立するときには、前記一の区分ジョブを複数の分割ジョブに分割し、前記複数のコアのうち2以上のコアで前記複数の分割ジョブを分担して実行し前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記一の区分ジョブとを並列的に実行し、前記所定条件が成立しないときには、前記第1種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第1種類のジョブの所要時間を低減しつつ、前記第1種類のジョブの実行期間と前記一の区分ジョブの実行期間とが重複しないように前記一の区分ジョブの実行タイミングを変更することを特徴とする。
【0030】
請求項20の発明は、請求項1から請求項19のいずれかの発明に係る画像形成装置において、前記第1種類のジョブは、スキャンジョブとコピージョブとの少なくとも1つを含むことを特徴とする。
請求項21の発明は、請求項20の発明に係る画像形成装置において、前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであることを特徴とする。
請求項22の発明は、請求項1から請求項21のいずれかの発明に係る画像形成装置において、前記第1種類のジョブは、その即時実行要求の必要性が前記第2種類のジョブよりも高いジョブであることを特徴とする。
【0031】
請求項23の発明は、画像形成装置に内蔵されたコンピュータであって、複数のコアを有するCPUを備えるコンピュータに、a)前記複数のコアのうちの第1コアを用いて制御されるべき第1種類のジョブを受け付けるステップと、b)前記複数のコアのうちの第2コアを用いて制御されるべき第2種類のジョブを受け付けるステップと、c)前記第1種類のジョブと前記第2種類のジョブとのうちの一方のジョブの実行中に他方のジョブが受け付けられた際に、仮に前記第2コアのみで前記第2種類のジョブを実行すると前記第1種類のジョブの実行期間と前記第2種類のジョブの実行期間との重複期間であって前記他方のジョブの受付後に発生する重複期間において前記第2コアでの処理負荷率が所定値に到達することが前記第2種類のジョブの内容に基づいて予測される場合、前記第2種類のジョブを前記複数のコアのうち2以上のコアで分担して実行して前記第2コアでの処理負荷率を前記所定値よりも低く抑え、前記第1種類のジョブと前記第2種類のジョブとを並列的に実行するステップと、を実行させるためのプログラムであることを特徴とする。
請求項24の発明は、請求項23の発明に係るプログラムにおいて、前記第1種類のジョブは、スキャンジョブとコピージョブとの少なくとも1つを含むことを特徴とする。
請求項25の発明は、請求項24の発明に係るプログラムにおいて、前記第2種類のジョブは、印刷出力物に関するラスタライズデータを生成するラスタライズデータ生成ジョブであることを特徴とする。
請求項26の発明は、請求項23から請求項25のいずれかの発明に係るプログラムにおいて、前記第1種類のジョブは、その即時実行要求の必要性が前記第2種類のジョブよりも高いジョブであることを特徴とする。
【発明の効果】
【0032】
請求項1から請求項26に記載の発明によれば、画像形成装置において、より効率的な動作を実現することが可能である。
【図面の簡単な説明】
【0033】
【
図3】各ジョブを主に実行するコア(対応コア)を示す図である。
【
図4】第1実施形態に係る動作を示すフローチャートである。
【
図5】第1実施形態に係る動作を示すフローチャートである。
【
図6】第1実施形態に係る一の動作例を示す図である。
【
図7】ページ内におけるバンド単位の分割領域を示す図である。
【
図9】グラデーションオブジェクトを示す図である。
【
図15】コピージョブ中にラスタライズジョブもが受け付けられた場合における動作例を示す図である。
【
図17】第2実施形態に係る動作の一部を示すフローチャートである。
【
図18】第2実施形態に係る動作例を示す図である。
【
図19】第2実施形態に係る他の動作例を示す図である。
【発明を実施するための形態】
【0034】
以下、本発明の実施形態を図面に基づいて説明する。
【0035】
<1.第1実施形態>
<1-1.システム構成>
図1は、印刷システム1の構成を示す概略図である。
図1に示すように、当該印刷システム1は、マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral)(MFPとも略称する)10とコンピュータ50とを備える。
【0036】
MFP10とコンピュータ50とは、ネットワーク108を介して接続されており、各装置10,50の相互間でデータの送受信が可能である。なお、ネットワーク108は、LAN(Local Area Network)およびインターネットなどの各種のネットワークを含む。
【0037】
MFP10は、コンピュータ50からの印刷ジョブデータ(プリントジョブデータ)に基づく印刷ジョブ(プリントジョブ)を実行するプリンタ(印刷装置)として機能する。すなわち、MFP10は、パーソナルコンピュータからの印刷指示に基づく印刷出力ジョブ(PCプリントジョブとも称する)を実行することが可能である。具体的には、コンピュータ50(印刷制御装置)は、ユーザからの印刷指示に基づいて印刷指令をMFP10に送信する。MFP10は、コンピュータ50から送信されてきた印刷指令(印刷データを含む)に基づき、RIP処理を実行してラスタライズデータを生成し、当該ラスタライズデータに基づく印刷出力処理を実行する。これによって、MFP10による印刷出力処理が実行される。
【0038】
また、MFP10は、タッチパネル25(
図1)等を用いたユーザからの指示に基づき、スキャンジョブおよびコピージョブ等を実行することも可能である。
【0039】
<1-2.MFP10の構成>
図2は、MFP10の機能ブロックを示す図である。
【0040】
MFP10は、スキャン機能、コピー機能、ファクシミリ機能およびボックス格納機能などを備える装置(複合機とも称する)である。具体的には、MFP10は、
図2の機能ブロック図に示すように、画像読取部2、印刷出力部3、通信部4、格納部5、操作部6およびコントローラ9(制御部)等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。なお、MFP10は、画像形成装置あるいは画像処理装置などとも称される。
【0041】
画像読取部(スキャン部とも称される)2は、MFP10の所定の位置に載置された原稿を光学的に読み取って、当該原稿の画像データ(原稿画像あるいはスキャン画像とも称される)を生成する処理部である。
【0042】
印刷出力部3は、印刷対象画像に関する画像データに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【0043】
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、通信ネットワーク108を介したネットワーク通信が可能である。このネットワーク通信では、TCP/IP(Transmission Control Protocol / Internet Protocol)およびFTP(File Transfer Protocol)等の各種のプロトコルが利用され、当該ネットワーク通信を利用することによって、MFP10は、所望の相手先(コンピュータ50等)との間で各種のデータ(印刷ジョブデータ等)を授受することが可能である。
【0044】
格納部5は、ハードディスクドライブ(HDD)等の格納装置で構成される。
【0045】
操作部6は、MFP10に対する操作入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。このMFP10においては、略板状の操作パネル部6c(
図1参照)が設けられており、当該操作パネル部6cは、その正面側にタッチパネル(操作パネル)25(
図1参照)を有している。タッチパネル25は、液晶表示パネルに圧電センサ等が埋め込まれて構成され、各種情報を表示するとともに操作者からの操作入力を受け付けることが可能である。
【0046】
コントローラ(制御部)9は、MFP10に内蔵され、MFP10を統括的に制御する制御装置である。コントローラ9は、CPUおよび各種の半導体メモリ(RAMおよびROM等)とを備えるコンピュータシステムとして構成される。コントローラ9は、CPUにおいて、ROM(例えば、EEPROM(登録商標))内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理部を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されてMFP10にインストールされるようにしてもよい。あるいは、当該プログラムは、ネットワーク等を経由してダウンロードされてMFP10にインストールされるようにしてもよい。
【0047】
具体的には、
図2に示すように、コントローラ9は、当該プログラムの実行により、通信制御部11と入力制御部12と表示制御部13と動作制御部14と割当処理部15とを含む各種の処理部を実現する。
【0048】
通信制御部11は、他の装置(コンピュータ50等)との間の通信動作を制御する処理部である。
【0049】
入力制御部12は、操作入力部6aに対する操作入力動作を制御する制御部である。
【0050】
表示制御部13は、表示部6bにおける表示動作を制御する処理部である。
【0051】
動作制御部14は、スキャンジョブ、プリントジョブおよびPCプリントジョブ等に関する動作を制御する処理部である。
【0052】
割当処理部15は、各ジョブの実行に際して、複数のコアR1~R4に対して実行すべき処理を割り当てる処理(割当処理)を実行する処理部である。
【0053】
<1-3.マルチコアCPU>
コントローラ9は、マルチコアCPU(複数のコアを有するCPU)を備えている。なお、マルチコアCPUによる負荷分散によれば、1つのCPU内において複数のコアに共通するキャッシュメモリを用いて処理が実行されるので、マルチCPU(複数のCPU)による負荷分散に比べて(オーバーヘッドが少なく)処理の高速化を図ることが可能である。
【0054】
この実施形態においては、
図3に示すように、原則として、複数のジョブが、複数のコア(ここでは4つのコアR1~R4)のうちの対応コア(ジョブ種類に応じたコア)で処理される。換言すれば、各ジョブは、原則として、(用いるべきコアとして)予め割り当てられたコアで実行される。
図3は、各ジョブを主に実行するコア(対応コア)を示す図である。
【0055】
具体的には、コピージョブおよびスキャンジョブなどの、リアルタイムジョブ(所定程度よりも高いリアルタイム性が要求されるジョブ)は、原則としてコアR1で実行される。当該リアルタイムジョブは、複数のコアのうちのコアR1を用いて制御されるべき種類のジョブである。端的に言えば、リアルタイムジョブは、コアR1に予め割り当てられたジョブである。当該リアルタイムジョブは、ラスタライズジョブ(次述)よりもその即時実行要求の必要性が高いジョブである、とも表現される。なお、リアルタイムジョブJ1のみがコアR1で実行される際には、コアR1での処理負荷率は所定値TH1(たとえば95%)には到達しない。
【0056】
また、PCプリントジョブの一部としてMFP10にて実行されるラスタライズデータ生成ジョブ(単にラスタライズジョブとも称する)は、原則としてコアR2で実行される。当該ラスタライズジョブは、複数のコアのうちのコアR2を用いて制御されるべき種類のジョブである。端的に言えば、ラスタライズジョブは、コアR2に予め割り当てられたジョブである。
【0057】
さらに、各種の追加アプリケーションプログラムを実行するジョブ(アプリケーション実行ジョブ)は、コアR3で実行され、パネル操作に関するジョブ(パネル操作管理ジョブ)は、コアR4で実行される。また、複数のコアに対して実行すべき処理を割り当てる処理(割当処理)は、コアR4で実行される。なお、当該割当処理は、他のコアR1~R3のいずれかで実行されてもよい。
【0058】
また、ラスタライズジョブは、その内容に依ってはコアR2での処理負荷率が所定値TH1(たとえば95%)に到達する可能性を有している。一のコアでの処理負荷率が所定値TH1に到達すると、コア間通信が阻害されること等を考慮し、この実施形態では、ラスタライズデータ生成ジョブ(ラスタライズジョブ)は、状況に応じて、コアR2のみならず別のコア(たとえば、コアR3等)をも用いて実行される。具体的には、或るラスタライズジョブJ2に関するコアR2での処理負荷率が所定値TH1(たとえば95%)に到達する旨が判定される場合、当該ラスタライズジョブは、コアR2のみならず他のコア(複数のコアのうち、所定値TH2以下の処理負荷率を有するコアR3等)をも利用して実行される。値TH2は、値TH1よりも小さな値であり、たとえば20%である。このような負荷分散により、コアR2の処理負荷率は、所定値TH1よりも低い値に抑えられる。
【0059】
<1-4.概略動作>
ここでは、まず、コンピュータ50からのPCプリントデータに基づくRIP処理(ラスタライズデータ生成ジョブJ2)が時刻T0から開始されているものとする。その後、時刻T1において、リアルタイムジョブJ1(ここでは、スキャンタスクとプリントタスクとで構成されるコピージョブ)が受け付けられた状況を想定する。以下では、このような状況において、リアルタイムジョブJ1(第1種類のジョブ)とラスタライズジョブJ2(第2種類のジョブ)とがどのようにして実行されるか等について主に説明する。
【0060】
図20は、比較例に係る動作を示す図である。当該比較例に係る動作では、ラスタライズジョブJ2が既に実行されている期間中においてはリアルタイムジョブJ1の実行が常に禁止される。それ故、リアルタイムジョブJ1が時刻T1に受け付けられた場合であっても、ラスタライズジョブJ2の実行完了を待って当該リアルタイムジョブJ1の実行が時刻T5に開始される。このように、当該2種類のジョブのうちの一方のジョブJ2の実行期間中に他方のジョブJ1が受け付けられた場合(直ちにリアルタイムジョブJ1の実行を開始すると2種類のジョブJ1,J2の実行期間が互いに重複する、と推定される場合)には、先行する一方のジョブJ2の実行が完了した後に、他方のジョブJ1の実行が開始される。この結果、当該他方のジョブ(リアルタイムジョブ)J1の開始および終了が大きく遅延する。
【0061】
これに対して、
図6は、第1実施形態に係る一の動作例を示す図である。コントローラ9の動作制御部14および割当処理部15は、(受け付けられたジョブJ1,J2を仮に直ちに実行する場合、)リアルタイムジョブJ1の実行期間とラスタライズジョブJ2の実行期間とが重複し且つラスタライズジョブJ2の実行によりコアR2での処理負荷率が所定値TH1(たとえば95%(100%であってもよい)))に到達するか否かを、ラスタライズジョブJ2の内容等に基づいて推定する。そして、その旨が推定される場合、ラスタライズジョブJ2が複数のコアのうち(コアR1を除く)2以上のコア(たとえば、コアR2とコアR3とを含むコア群)で分担して実行されてコアR2での処理負荷率が値TH1よりも低く抑えられるとともに、リアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行される。
【0062】
具体的には、ラスタライズジョブJ2が複数の区分ジョブK1~K4(「RIP_1」~「RIP_4」)に区分される。たとえば、ラスタライズジョブJ2が、印刷出力物の複数のページに関するラスタライズデータを生成するものである場合、ラスタライズジョブJ2はページ単位で複数の区分ジョブに区分される。より具体的には、1番目のページに関するラスタライズデータを生成する区分ジョブK1(「RIP_1」)と2番目のページに関するラスタライズデータを生成する区分ジョブK2(「RIP_2」)と3番目のページに関するラスタライズデータを生成する区分ジョブK3(「RIP_3」)と4番目のページに関するラスタライズデータを生成する区分ジョブK4(「RIP_4」)とに区分される。
【0063】
そして、仮に両ジョブが即時に実行される場合においてリアルタイムジョブJ1の実行期間と各区分ジョブ(K1~K4)の実行期間とが重複するか否かが判定される。また、仮に各ジョブが上記対応コアで原則通りに実行される場合、ラスタライズジョブJ2に関する複数の区分ジョブK1~K4のうちのいずれかの区分ジョブの実行によりコアR2での処理負荷率が所定値TH1に到達するか否かも判定される。これらの条件(後に詳述)をいずれも充足する区分ジョブが存在する場合、当該区分ジョブ(たとえば、K1,K4)が複数の分割ジョブに分割される。
【0064】
具体的には、区分ジョブK1(「RIP_1」)がさらに複数の分割ジョブ(たとえば2つの分割ジョブK11,K12(「RIP_1_1」、「RIP_1_2」))に分割され、区分ジョブK4(「RIP_4」)もさらに複数の分割ジョブ(たとえば2つの分割ジョブK41,K42(「RIP_4_1」、「RIP_4_2」))に分割される。そして、区分ジョブK1に関する複数の分割ジョブが複数のコアのうち2以上のコア(たとえば、2つのコアR2,R3)で分担して実行されてコアR2での処理負荷率が値TH1よりも低く抑えられ、リアルタイムジョブJ1と一の区分ジョブK1とが並列的に実行される。同様に、区分ジョブK4に関する複数の分割ジョブが複数のコアのうち2以上のコア(たとえば、2つのコアR2,R3)で分担して実行されてコアR2での処理負荷率が値TH1よりも低く抑えられ、リアルタイムジョブJ1と一の区分ジョブK4とが並列的に実行される。
【0065】
このような動作によれば、ラスタライズジョブJ2が複数のコアのうち2以上のコアで分担して実行されてコアR2での処理負荷率が値TH1よりも低く抑えられるので、コア間通信の阻害に起因して他のコアでの動作が出来なくなる事態の発生を回避することが可能である。その上で、リアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行される。したがって、リアルタイムジョブJ1は、ラスタライズジョブJ2の実行完了を待つことを要しないので、リアルタイムジョブJ1の実行を早期に(たとえば時刻T1に)開始し且つ早期に完了することが可能である。
【0066】
なお、後述するように、逆に、リアルタイムジョブJ1が実行されている間にラスタライズジョブJ2が受け付けられた状況(
図21および
図15参照)においても、本発明の思想を適用することが可能である。
【0067】
<1-5.詳細動作>
図4および
図5は、第1実施形態に係る動作(MFP10の動作)を示すフローチャートである。
【0068】
ステップS11において新規ジョブが受け付けられると、ステップS12に進む。ステップS12では、現在実行中のジョブ(新規ジョブよりも前に受け付けられたジョブ)が存在するか否かが判定される。
【0069】
新規ジョブ以外のジョブが受け付けられていない場合には、通常のジョブ実行動作が実行される(ステップS18)。
【0070】
新規ジョブ以外のジョブが既に受け付けられていた場合には、ステップS13に進む。ステップS13では、新規ジョブと現在実行中のジョブ(実行中ジョブとも称する)とのうち、一方がリアルタイムジョブJ1であり且つ他方がラスタライズジョブJ2であるか否かが判定される。
【0071】
一方がリアルタイムジョブJ1であり且つ他方がラスタライズジョブJ2である場合には、ステップS14に進む。それ以外の場合には、ステップS18に進む。
【0072】
ステップS14では、実行中ジョブの残存処理の所要時間が推定され、ステップS15では、新規ジョブの所要時間が推定される。リアルタイムジョブJ1の所要時間は、当該リアルタイムジョブJ1の内容(画像の解像度等の各種パラメータ)に基づいて算出され、ラスタライズジョブJ2の所要時間は、ラスタライズジョブJ2の内容(画像の解像度等の各種パラメータ)に基づいて算出される。
【0073】
また、ステップS16では、ラスタライズジョブJ2の実行時のコアR2の処理負荷率(詳細には、原則通りにラスタライズジョブJ2がコアR2のみを用いて実行される場合における、コアR2の処理負荷率)が推定される。当該処理負荷率は、ラスタライズジョブJ2の対象画像に関するレイヤーの数、および当該対象画像に関する特定種類のオブジェクトの数などに基づいて算出(推定)されればよい。たとえば、多層レイヤーで構成される画像の透過処理の処理負荷は比較的大きいことを考慮して、一定数以上のレイヤーを有する画像(透過画像)が存在する場合には、コアR2の処理負荷率は100%である旨が算出される。また、対象画像の解像度(出力解像度等)が所定程度以上である場合に、コアR2の処理負荷率が100%である旨が算出されてもよい。このように、ラスタライズジョブJ2の対象画像(詳細には、その画像データおよび/または画像パラメータ)に基づいて、ラスタライズジョブJ2の実行によるコアR2での処理負荷率(換言すれば、コアR2におけるラスタライズジョブJ2の処理負荷率)が推定される。
【0074】
ステップS17においては、リアルタイムジョブJ1の実行期間とラスタライズジョブJ2の実行期間とが重複するか否かが、ステップS14,S15の推定結果に基づいて判定される。また、ラスタライズジョブJ2の実行によりコアR2での処理負荷率が所定値TH1(たとえば95%)に到達するか否かが、ステップS16での推移結果に基づいて判定される。
【0075】
より詳細には、ステップS16においては、複数の区分ジョブのそれぞれについてコアR2での処理負荷率が算出される。すなわち、コアR2での処理負荷率が区分ジョブ単位で算出される。そして、コアR2での処理負荷率が所定値TH1に到達するか否かが、各区分ジョブ単位で判定される。そして、これらの判定結果に基づいて、ラスタライズジョブJ2(詳細には各区分ジョブ)とリアルタイムジョブJ1との重複処理中にコアR2の負荷率が所定値TH1に到達するか否かが判定される。
【0076】
ラスタライズジョブJ2とリアルタイムジョブJ1との重複処理中にコアR2の負荷率が所定値TH1に到達しない(より詳細には、いずれの区分ジョブKiに関してもコアR2の負荷率が所定値TH1に到達しない)と判定される場合には、ステップS19に進む。ステップS19では、実行中ジョブに加えて新規ジョブの実行も直ちに開始される。この結果、リアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行される。
図14は、このような動作例を示す図である。
図14においては、区分ジョブK1の処理負荷率は70%であり、区分ジョブK2の処理負荷率は50%であり、区分ジョブK3の処理負荷率は30%であり、区分ジョブK4の処理負荷率は60%であり、何れの区分ジョブの処理負荷率も所定値TH1(95%)を下回っている。
図14においては、リアルタイムジョブJ1が時刻T1にて直ちに開始されるとともに、リアルタイムジョブJ1中に区分ジョブK1,K2,K3,K4(コアR2の処理負荷率が所定値TH1に到達しない区分ジョブ)がリアルタイムジョブJ1に対して並列的に実行されている。
【0077】
このように、リアルタイムジョブJ1の実行期間とラスタライズジョブJ2の実行期間とが重複するもののラスタライズジョブJ2の実行によってはコアR2での処理負荷率が所定値TH1に到達しないことが推定される場合、リアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行される。より詳細には、リアルタイムジョブJ1の実行期間と各区分ジョブK1~K4の実行期間とが重複するものの各区分ジョブの実行によってもコアR2での処理負荷率が所定値TH1に到達しないことが推定される場合、各区分ジョブK1~K4がコアR2(およびコアR3)で実行されつつリアルタイムジョブJ1がコアR1で実行される。すなわち、リアルタイムジョブJ1と各区分ジョブK1~K4とが並列的に実行される。したがって、処理の効率化を図ることが可能である。
【0078】
リアルタイムジョブJ1(各区分ジョブ)とラスタライズジョブJ2との重複処理中にコアR2の負荷率が所定値TH1に到達すると判定される場合(より詳細には、いずれかの区分ジョブKiに関してコアR2の負荷率が所定値TH1に到達する場合)には、ステップS21(
図5)に進む。
【0079】
ステップS21では、ラスタライズジョブJ2を複数の分割ジョブに分割することが適切か否か(より詳細には、コアR2の負荷率を所定値TH1に到達させる各区分ジョブをそれぞれ複数の分割ジョブに分割することが適切か否か)が、所定条件の成立の有無に基づいて判断される。
【0080】
当該複数の分割ジョブは、或る区分ジョブ(たとえば、ラスタライズジョブJ2のうち第1ページに関する区分ジョブK1)に関する画像を領域分割した複数の分割領域(たとえば、当該第1ページを「バンド」単位で分割した後の領域)を処理対象とするジョブである。
図7に示されるように、1バンドは、所定数(たとえば256本)の画素ラインで構成される分割領域である。たとえば、4096本の画素ラインで構成される1ページは、16個の分割領域(細長領域)に分割される。ただし、ここでは、説明の簡単化のため、各ページの区分ジョブが2個の分割領域に分割されるものとする。たとえば、区分ジョブK1(「RIP_1」)が2つの分割ジョブK11,K12(「RIP_1_1」、「RIP_1_2」))に分割される。なお、後述するように、各区分ジョブは、ページ内の左半領域に関するジョブと右半領域に関するジョブとで構成される複数の分割ジョブに分割されてもよい。
【0081】
また、当該所定条件は、判定対象の区分ジョブに関する複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能である旨を含む。具体的には、複数の分割ジョブのうちの各分割ジョブに関する画像処理が当該複数の分割ジョブのうちの他の分割ジョブの分割領域の画像データを用いる特定の画像処理でない(誤差拡散処理、画像フィルタ処理、およびグラデーション処理等のいずれでもない)旨を含む条件である。
【0082】
たとえば、一の区分ジョブ(たとえば或るページの画像に関するラスタライズジョブ)がバンド単位で複数の分割ジョブに分割されようとする場合には、当該所定条件として、「複数の分割ジョブのうちの各分割ジョブに関する画像処理が当該複数の分割ジョブのうちの他の分割ジョブの分割領域の画像データを用いる特定の画像処理でない(画像フィルタ処理、誤差拡散処理、およびグラデーション処理等のいずれでもない)旨の条件」、が用いられればよい。
【0083】
ここにおいて、
図8に示されるように、各分割ジョブに対応する各分割領域内の或る注目画素の画素値を或る画像フィルタを利用して求める際には、当該注目画素の周辺画素の画素値が用いられる。或る分割領域内の注目画素に関する周辺画素には、当該或る分割領域とは異なる分割領域(当該或る分割領域の隣接領域等)の画素が含まれることがあり、その場合、当該或る分割領域に関する画像処理は、他の分割領域の画素(他の分割領域の画像データ)を用いることを要する。したがって、当該或る分割領域に関する画像処理は、他の分割領域の画像データから独立して行うことが困難である。そこで、この実施形態では、このような場合には、一の区分ジョブを複数の分割ジョブに分割しない旨が決定される。
【0084】
なお、誤差拡散処理およびグラデーション処理等の他の画像処理についても同様である。たとえば、
図9に示されるように、グラデーションオブジェクト(所定方向において色の明るさ(濃さ)あるいは色相等が徐々に変化するオブジェクト)が複数の分割領域(複数の「バンド」領域等)に跨がって存在する場合も同様である。
【0085】
また、ステップS21では、処理負荷の分散先候補のコアR3,R4(複数のコアR1~R4のうちコアR1,R2以外のコア)のいずれかの処理負荷率が所定値TH2以下であることをも条件として、ラスタライズジョブJ2を複数の分割ジョブに分割することが適切であると判定される。
【0086】
ステップS21において、ラスタライズジョブJ2(詳細には、コアR2の負荷率を所定値TH1に到達させる各区分ジョブ)を複数の分割ジョブに分割することが適切であると判定される場合には、ステップS22に進む。
【0087】
ステップS22では、コアR2の負荷率を所定値TH1に到達させる各区分ジョブ(たとえば、K1,K4)をそれぞれ複数の分割ジョブに分割することを決定(設定)する処理、および当該分割ジョブを2以上のコアに割り当てる処理(設定処理)等が実行される。
【0088】
たとえば、
図6にも示されるように、区分ジョブK1(「RIP_1」)が2つの分割ジョブK11,K12(「RIP_1_1」,「RIP_1_2」)に分割され、区分ジョブK4(「RIP_4」)が2つの分割ジョブK41,K42(「RIP_4_1」,「RIP_4_2」)に分割される。
【0089】
そして、分割ジョブK11がコアR2に割り当てられ、分割ジョブK12がコアR3に割り当てられる。この結果、分割ジョブK11に関するコアR2での処理負荷率は50%になり、分割ジョブK12に関するコアR3での処理負荷率は50%になる。これによれば、区分ジョブK1に関するコアR2での処理負荷率は、50%にまで低減し(値TH1に到達せず)、区分ジョブK1に関するコアR3での処理負荷率は、値TH1に到達しない。換言すれば、区分ジョブK1を2以上のコアで分担して実行することによって、区分ジョブK1に関する各コアでの処理負荷率を値TH1に到達させないように調整することが可能である。
【0090】
同様に、区分ジョブK4を2以上のコアで分担して実行することによって、区分ジョブK4に関する各コアでの処理負荷率を値TH1に到達させないように調整することが可能である。具体的には、分割ジョブK41がコアR2に割り当てられ、分割ジョブK42がコアR3に割り当てられる。この結果、分割ジョブK41に関するコアR2での処理負荷率は50%になり、分割ジョブK42に関するコアR3での処理負荷率は50%になる。
【0091】
ステップS22では、このような分担処理の内容が決定されるとともに、当該分担処理の予約処理(各分割ジョブを2以上のコアに割り当てる設定処理等)が実行される。
【0092】
そして、ステップS27においては、ステップS22で設定された新たな割り当ての下で、リアルタイムジョブJ1とラスタライズジョブJ2とが実行される。具体的には、リアルタイムジョブJ1の実行が直ちに開始されるとともに、ラスタライズジョブJ2は、複数のコアR1~R4のうち2以上のコア(たとえば、2つのコアR2,R3)で分担して実行される。これによれば、コアR2での処理負荷率が所定値TH1よりも低く抑えられた状態でリアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行され得る。なお、
図6では、時刻T0から既に開始されていた区分ジョブK1の処理結果は時刻T1で破棄され、区分ジョブK1に関する2つの分割ジョブK11,K12が時刻T1から新たに開始されている。ただし、これに限定されず、たとえば、時刻T0から既に開始されていた区分ジョブK1の処理結果を引き継いで、2つの分割ジョブK11,K12が実行されてもよい。
【0093】
また、ステップS21において、ラスタライズジョブJ2(詳細には、コアR2の負荷率を所定値TH1に到達させる各区分ジョブ)を複数の分割ジョブに分割することが適切でないと判定される場合には、ステップS33に進む。
【0094】
ステップS33では、リアルタイムジョブJ1が優先して実行され、ラスタライズジョブJ2の各区分ジョブの実行順序および実行タイミングが調整される。
図10は、このような調整例を示す図である。
【0095】
図10においては、区分ジョブK1,K4の分割が適切でないと(ステップS21にて)判定され、区分ジョブK1の実行が完了した後の時刻T3に、リアルタイムジョブJ1の実行が開始されている。区分ジョブK2,K3に関するコアR2の処理負荷率は所定値TH1に到達しないと予測されるので、ラスタライズジョブJ2の区分ジョブK2,K3はリアルタイムジョブJ1に対して並列的に実行される。一方、区分ジョブK4に関するコアR2の処理負荷率は所定値TH1に到達すると予測されるので、区分ジョブK4の実行開始はリアルタイムジョブJ1の実行完了まで待機される。区分ジョブK4は、リアルタイムジョブJ1の実行完了直後に開始される。
【0096】
なお、
図10では、区分ジョブK1の実行完了後(時刻T3)にリアルタイムジョブJ1の実行が開始されているが、これに限定されない。たとえば、
図11(他の調整例を示す図)に示されるように、ラスタライズジョブJ2(区分ジョブK1)の実行が中断等され、リアルタイムジョブJ1が時刻T1にて直ちに開始されるようにしてもよい。そして、リアルタイムジョブJ1中に区分ジョブK2,K3(コアR2での処理負荷率が所定値TH1に到達しない区分ジョブ)がリアルタイムジョブJ1に対して並列的に実行され、リアルタイムジョブJ1完了後に区分ジョブK1,K4(コアR2での処理負荷率が所定値TH1に到達する区分ジョブ)が実行されてもよい。これによれば、
図10の動作に比べて、リアルタイムジョブJ1を比較的早期に開始および完了させることが可能である。
【0097】
以上のように、リアルタイムジョブJ1の実行期間とラスタライズジョブJ2の実行期間とが重複し且つラスタライズジョブJ2の実行によりコアR2での処理負荷率が所定値TH1に到達することが推定される場合(ステップS17でYESの場合)には、ステップS21以降に進む。そして、ステップS21,S22,S27において、ラスタライズジョブJ2(詳細には、区分ジョブK1,K4)を2以上のコア(R2,R3等)で分担して実行することによってコアR2での処理負荷率が所定値TH1よりも低い値(たとえば50%)に抑えられ、リアルタイムジョブJ1とラスタライズジョブJ2とが並列的に実行される(
図6も参照)。したがって、コアR2での処理負荷率が所定値TH1に到達することを適切に回避しつつ、リアルタイムジョブJ1の実行完了の遅延および/またはラスタライズジョブJ2の実行完了の遅延を回避することが可能であり、画像形成装置においてより効率的な動作を実現することが可能である。
【0098】
また、複数の区分ジョブK1~K4のうち、コアR2の処理負荷率が所定値TH1に到達しない区分ジョブK2,K3は、リアルタイムジョブJ1に対して並列的に実行される。したがって、コアR2での処理負荷率が所定値TH1に到達することを適切に回避しつつ、当該区分ジョブK2,K3を含むラスタライズジョブJ2を比較的早期に完了させることが可能である。
【0099】
なお、上記実施形態では、ステップS21において、ラスタライズジョブJ2のうちコアR2の負荷率を所定値TH1に到達させる区分ジョブの全てに関してそれぞれ複数の分割ジョブに分割することが適切か否かが、一斉に判定され、その判定結果に応じた処理が行われているが、これに限定されない。たとえば、ラスタライズジョブJ2のうちコアR2の負荷率を所定値TH1に到達させる区分ジョブのうち、複数の分割ジョブに分割することが適切であると判定された区分ジョブに関しては、当該区分ジョブを分割して2以上のコアに割り当てる一方で、複数の分割ジョブに分割することが適切でないと判定された区分ジョブに関しては、当該区分ジョブの実行期間とリアルタイムジョブJ1の実行期間とが重複しないように当該区分ジョブの実行タイミングが変更されてもよい。
【0100】
図12は、このような改変例を示す図である。この改変例においては、区分ジョブK1,K4(コアR2の負荷率を所定値TH1に到達させる各区分ジョブ)のうち、区分ジョブK4の分割が適切でなく且つ区分ジョブK1の分割は適切であると(ステップS21にて)判定されている。そして、リアルタイムジョブJ1の実行が時刻T1にて直ちに開始されるとともに、区分ジョブK1(K11,K12),K2,K3が順次に実行される。当該各区分ジョブK1(K11,K12),K2,K3は、リアルタイムジョブJ1に対して並列的に実行される。また、区分ジョブK4の実行期間とリアルタイムジョブJ1の実行期間とが重複しないように、リアルタイムジョブJ1の完了後に区分ジョブK4の実行が開始される。
【0101】
また、
図12とは逆に、区分ジョブK1,K4(コアR2の負荷率を所定値TH1に到達させる各区分ジョブ)のうち、区分ジョブK1の分割は適切でなく且つ区分ジョブK4の分割は適切であると(ステップS21にて)判定される場合には、
図13のような動作が行われてもよい。
図13では、区分ジョブK1の実行期間とリアルタイムジョブJ1の実行期間とが重複しないように、区分ジョブK1の完了後の時刻T3にリアルタイムジョブJ1の実行が開始されるとともに、区分ジョブK2,K3,K4(K41,K42)がリアルタイムジョブJ1に対して並列的に実行されている。
【0102】
また、上記実施形態では、ラスタライズジョブJ2が実行されている途中でリアルタイムジョブJ1が受け付けられた状況での動作例(
図6、
図10~
図14)が主に例示されているが、これに限定されない。逆に、リアルタイムジョブJ1が実行されている途中でラスタライズジョブJ2が受け付けられた状況での動作に関しても、上記と同様の思想を適用することが可能である。
【0103】
図21は、
図20とは別の比較例に係る動作を示す図である。時刻T0からリアルタイムジョブJ1が開始されており、当該リアルタイムジョブJ1の実行途中の時刻T1でラスタライズジョブJ2が受け付けられた状況における動作が示されている。
図21に示す比較例においては、リアルタイムジョブJ1とラスタライズジョブJ2との並列処理が回避されるべく、ラスタライズジョブJ2は、実行中のリアルタイムジョブJ1の完了後に開始される。それ故、ラスタライズジョブJ2の実行開始が遅延し、ラスタライズジョブJ2の実行完了が遅延する。
【0104】
これに対して、
図15は、同様の状況に対して本願発明を適用した場合における動作例を示す図である。
図15においては、区分ジョブK1,K4が、コアR2の負荷率を所定値TH1に到達させる区分ジョブであると判定される(ステップS17)。そして、区分ジョブK1が分割ジョブK11,K12に分割され、区分ジョブK4が分割ジョブK41,K42に分割される(ステップS21,S22)。この結果、各分割ジョブK11,K12,K41,K42の各コアでの処理負荷率は、所定値TH1に到達しない。これにより、コア間通信の阻害事象の発生を回避することが可能である。そして、区分ジョブK1,K2,K3,K4が、リアルタイムジョブJ1に対して並列的に実行される。したがって、ラスタライズジョブJ2の実行完了の遅延(および/またはリアルタイムジョブJ1の実行完了の遅延)を回避することが可能であり、画像形成装置においてより効率的な動作を実現することが可能である。
【0105】
また、当該リアルタイムジョブJ1の実行途中の時刻T1でラスタライズジョブJ2が受け付けられた場合(
図21および
図15参照)において、上記第1実施形態およびその改変例と同様の動作が実行されるようにしてもよい。たとえば、
図16に示すように、コアR2の負荷率を所定値TH1に到達させる複数の区分ジョブK1,K4のうち、複数の分割ジョブに分割することが適切であると判定された区分ジョブK1に関しては、当該区分ジョブK1を複数の分割ジョブK11,K12に分割して、当該複数の分割ジョブK11,K12を2以上のコアに割り当てるようにしてもよい。一方、複数の分割ジョブに分割することが適切でないと判定された区分ジョブK4に関しては、当該区分ジョブK4の実行期間とリアルタイムジョブJ1の実行期間とが重複しないように当該区分ジョブK4の実行タイミングが変更されてもよい。
【0106】
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
【0107】
第2実施形態においては、ラスタライズジョブJ2の分割処理が適切でないと判定される場合(
図5のステップS21参照)において、リアルタイムジョブJ1がコアR1のみならず別のコア(たとえば、コアR4等)をも用いて実行される(換言すれば、リアルタイムジョブJ1が複数の分割ジョブに分割されて複数のコアで分担されて実行される)態様について説明する。
【0108】
第2実施形態においても、第1実施形態と同様の動作が実行される(
図4等参照)。ただし、
図5の動作に代えて、
図17の動作が実行される。
【0109】
図17においては、(所定条件が成立せず)ラスタライズジョブJ2の分割が適切でない旨がステップS21で判定されると、ステップS31に進む。
【0110】
ステップS31では、今度はリアルタイムジョブJ1の分割の適否が判定される。そして、リアルタイムジョブJ1を分割することが適切である旨が判定されるとステップSS32に進み、適切でない旨が判定されるとステップS33に進む。なお、リアルタイムジョブJ1の分割の適否は、分割の許否について予め設定された設定内容(「分割許可」/「分割不許可」)等に基づいて決定されればよい。
【0111】
ステップS32では、リアルタイムジョブJ1が分割されて処理されるべき旨が決定されるとともに、分割処理に関する設定処理が実行される。具体的には、リアルタイムジョブJ1(たとえば、リアルタイムジョブJ1のうちのスキャンタスクを複数の分割ジョブ(分割タスクとも称する)に分割することを決定(設定)する処理、および当該分割ジョブを複数のコアR1~R4のうち2以上のコア(コアR2を除く)に割り当てる処理等が実行される。
【0112】
分割処理後のリアルタイムジョブJ1(詳細には、そのスキャンタスク)においては、まず、光学的読取処理にて光学的に読み取られたカラー画素値(R(レッド)成分、G(グリーン)成分、B(ブルー)成分)が、別の表色系表現(C(シアン)成分、M(マゼンタ)成分、Y(イエロー)成分、K(ブラック)成分)に変換されて画像メモリに一時的に格納される。換言すれば、入力デバイスのRGB画像のRGB表色系が、出力デバイスのCMYK画像のCMYK表色系に変換されて、画像メモリに格納される。その後、当該スキャンタスクにおける画像処理が、C成分およびM成分に関する第1画像処理とY成分およびK成分に関する第2画像処理とに分離され、第1画像処理がコアR1で実行され、第2画像処理がコアR4で実行される。このような分担処理がなされるべき旨がステップS32で設定される。なお、ステップS27においては、画像メモリへの一時格納処理とその後の基本色成分ごとの画像処理とが、たとえば所定本数単位の画素ラインごとに繰り返し実行される。
【0113】
そして、ステップS32の次のステップS33に進む。リアルタイムジョブJ1が分割されたとしても、ラスタライズジョブJ2の処理負荷率が所定値TH1に到達することに起因して、コア間通信の阻害事象の発生が生じ得る。そのため、第2実施形態においても、リアルタイムジョブJ1とラスタライズジョブJ2(詳細には、ラスタライズジョブJ2の複数の区分ジョブのうち、コアR2の負荷率を所定値TH1に到達させる区分ジョブ)との並列的処理は実行されない。ステップS33では、ラスタライズジョブJ2の各区分ジョブの実行順序および実行タイミング等が調整される。なお、ステップS31からステップS32を経由せずにステップS33に進んだ場合にも、リアルタイムジョブJ1とラスタライズジョブJ2との並列的処理は実行されないように、ラスタライズジョブJ2の各区分ジョブの実行順序および実行タイミング等が調整される。
【0114】
ステップS33にて、ラスタライズジョブJ2の各区分ジョブの実行順序および実行タイミング等が調整された後、ステップS27に進む。
【0115】
ステップS27では、リアルタイムジョブJ1とラスタライズジョブJ2とが上述のようなタイミングで実行される。
【0116】
図18は、第2実施形態に係る動作例を示す図である。
図18においては、
図10と同様の動作が示されている。ただし、
図18においては、リアルタイムジョブJ1のうちのスキャンタスクが2つの分割ジョブ(分割タスク)に分割され、コアR1とコアR4とで分担されて実行されている。また、その後、リアルタイムジョブJ1の実行期間とラスタライズジョブJ2の区分ジョブK1,K4の実行期間とが互いに重複しないように各区分ジョブK1,K4の実行タイミングが変更される。たとえば、リアルタイムジョブJ1の実行完了直後に、区分ジョブK4が実行される。
【0117】
このように、リアルタイムジョブJ1を複数のコアR1~R4のうち2以上のコア(たとえば、コアR1とコアR4)で分担して実行することによって、リアルタイムジョブJ1の所要時間(実行期間)が短縮されるので、リアルタイムジョブJ1を比較的早期に完了させることが可能である。したがって、リアルタイムジョブJ1の後に実行される区分ジョブK4(ひいてはラスタライズジョブJ2)を比較的早期に完了させることも可能である。
【0118】
また、複数の区分ジョブK1~K4のうち、コアR2の処理負荷率が所定値TH1に到達しない区分ジョブK2,K3は、リアルタイムジョブJ1に対して並列的に実行されるので、当該区分ジョブK2,K3を含むラスタライズジョブJ2を比較的早期に完了させることが可能である。
【0119】
図19は、第2実施形態に係る他の動作例を示す図である。
図19においては、
図12と同様の動作が示されている。ただし、
図19においては、リアルタイムジョブJ1のうちのスキャンタスクが2つの分割ジョブ(分割タスク)に分割され、当該2つの分割ジョブがコアR1とコアR4とで分担されて実行されている。
【0120】
<3.変形例等>
以上、この発明の実施の形態について説明したが、この発明は、上記説明した内容に限定されるものではない。
【0121】
たとえば、上記各実施形態等においては、複数のページに関するラスタライズジョブJ2がページ単位で複数の区分ジョブに区分されているが、これに限定されない。たとえば、1あるいは複数のページのラスタライズジョブJ2が、バンド単位(所定ライン数単位)(たとえば256本の画素ライン単位)で、複数の区分ジョブに区分されてもよい。あるいは、1ページのラスタライズジョブJ2が、左半領域に関するジョブと右半領域に関するジョブとの2つの区分ジョブに区分されてもよい。あるいは、1ページのラスタライズジョブJ2が、上半領域に関するジョブと下半領域に関するジョブとの2つの区分ジョブとの2つの区分ジョブに区分されてもよい。あるいは、1ページのラスタライズジョブJ2が「基本色成分」(最終出力画像のうちの基本色成分(具体的には、Y(イエロー),M(マゼンタ),C(シアン),K(ブラック)の各成分))単位で複数の区分ジョブに区分されてもよい。具体的には、ラスタライズジョブJ2が、C成分に関するジョブとM成分に関するジョブとY成分に関するジョブとK成分に関するジョブとの4つの区分ジョブに区分されてもよい。
【0122】
また、上記各実施形態等においては、区分ジョブ(K1等)が「バンド」単位(所定ライン数単位)で複数の分割ジョブに分割されているが、これに限定されない。
【0123】
たとえば、区分ジョブの区分単位領域よりも小さな単位領域で分割されることによって、区分ジョブが複数の分割ジョブに分割されてもよい。より詳細には、ラスタライズジョブJ2を所定ライン数単位(たとえば「256本」単位)で区分した区分ジョブが、当該所定ライン数単位よりも細かい単位(たとえば「128本」単位)で複数の分割ジョブに分割されてもよい。あるいは、ラスタライズジョブJ2が右半領域に関する区分ジョブと左半領域に関する区分ジョブとに区分された後、少なくとも一方の区分ジョブが、上半領域に関する分割領域と下半領域に関する分割領域との2つの分割ジョブに分割されてもよい。あるいは、ページ単位で区分された各区分ジョブが、各ページ内の左半領域に関するジョブと右半領域に関するジョブとの2つの分割ジョブ(あるいは、各ページ内の上半領域に関するジョブと下半領域に関するジョブとの2つの分割ジョブ等)にさらに分割されてもよい。あるいは、バンド単位で区分された各区分ジョブが、各バンド内の左半領域に関するジョブと右半領域に関するジョブとの2つの分割ジョブ(あるいは、各バンド内の上半領域に関するジョブと下半領域に関するジョブとの2つの分割ジョブ等)にさらに分割されてもよい。
【0124】
あるいは、ページ単位で区分された各区分ジョブ(あるいは、バンド単位で区分された各区分ジョブ等)が、「基本色成分」(Y,M,C,Kの各成分)単位で複数の分割ジョブに分割されてもよい。具体的には、区分ジョブK1が、C成分に関する分割ジョブとM成分に関する分割ジョブとY成分に関する分割ジョブとK成分に関する分割ジョブとの4つの分割ジョブに分割されてもよい。
【0125】
あるいは、「基本色成分」単位で区分された各区分ジョブが、所定の領域単位(たとえば、ページ単位、バンド単位等)で複数の分割ジョブに分割されてもよい。
【0126】
そして、当該複数の分割ジョブが複数のコアのうち2以上のコアで分担されて実行されればよい。
【0127】
また、ステップS21における判定条件は、分割手法に応じて適宜に定められればよい。
【0128】
たとえば、区分ジョブに対応する区分領域よりも細かい領域を基準にして、当該区分ジョブを複数の分割ジョブに分割しようとする場合には、次のような判定条件が用いられればよい。具体的には、複数の分割ジョブのうちの各分割ジョブに関する画像処理が、当該複数の分割ジョブのうちの他の分割ジョブ(自分割ジョブ以外の分割ジョブ)の分割領域の画像データを用いる特定の画像処理(誤差拡散処理、画像フィルタ処理、およびグラデーション処理等)を有しないこと等が、ステップS21における分割適否判定における条件として用いられればよい。当該条件は、判定対象の区分ジョブに関する複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能である旨を判定するための条件である、とも表現される。
【0129】
あるいは、区分ジョブを「基本色成分」単位で複数の分割ジョブに分割しようとする場合(換言すれば、複数の色成分画像(区分ジョブに関する画像を基本色成分ごとに分割した色成分画像)をそれぞれ処理対象とする複数の分割ジョブへと、当該区分ジョブを分割しようとする場合)には、ステップS21における分割適否判定における条件として、次のような条件が用いられればよい。具体的には、複数の分割ジョブのうちの各分割ジョブに関する画像処理が、当該複数の分割ジョブのうちの他の分割ジョブの色成分画像の画像データを用いる特定の画像処理(RGB表色系とLab表色系との間の色変換処理、およびCMYK表色系とLab表色系との間の色変換処理等)を有しない旨の条件等が用いられればよい。
【0130】
また、上記各実施形態等においては、ステップS21において、判定対象の区分ジョブに関する複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能であるか否かが考慮されて、当該複数の分割ジョブへの分割の適否が判定されているが、これに限定されない。たとえば、判定対象の区分ジョブに関する複数の分割ジョブのそれぞれが他の分割ジョブの画像データを利用せずに独立して実行可能であるか否かが考慮されずに、当該分割の適否が判定されてもよい。より詳細には、処理負荷の分散先候補のコアの処理負荷率が所定値TH2以下であることのみを条件として、当該分割の適否が判定されてもよい。その場合、各分割ジョブが他の分割ジョブの画像データをも利用しつつ実行されればよい。
【0131】
また、上記各実施形態等における各ジョブの各コアR1~R4への割り当ては、上記態様に限定されない。たとえば、ラスタライズジョブJ2が主にコアR4に割り当てられ、パネル操作管理ジョブが主にコアR2に割り当てられてもよい。
【0132】
また、上記各実施形態等では、第2種類のジョブとしてラスタライズジョブJ2が例示されているが、これに限定されない。たとえば、第2種類のジョブは、各種の画像処理アプリケーションに関するジョブ等であってもよい。
【符号の説明】
【0133】
1 印刷システム
10 MFP
50 コンピュータ
J1 リアルタイムジョブ
J2 ラスタライズジョブ
K1,K2,K3,K4 区分ジョブ
K11,K12,K41,K42 分割ジョブ
R1~R4 (CPUの)コア