(57)【要約】      （修正有）【課題】従来よりも短いタイマーでエラーを検出することができる画像形成装置を提供する。【解決手段】読み取り部から読み込んだ画像データを符号化して保存するまでの処理を行う場合、画像フロー制御部２０１は、各モジュール１０７１、１０７２、１０７３に設定と動作開始とを指示する。各モジュールは、動作開始を指示されると、それぞれがタイマー部２０２にエラーまでのタイマーをセットする。処理が完了すると各モジュールは、画像フロー制御部２０１に処理終了を通知する。画像フロー制御部２０１は、全てのモジュールから終了通知が来たら全処理が終了したとして、画像処理を終了する。処理終了を通知する前にタイマー部２０２からタイマーアップの通知が来ると、各モジュールは、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを通知する。【選択図】図３
2019209597.tif 000002
【特許請求の範囲】
【請求項１】
画像処理を実行するハードウェアモジュールを有し、
前記ハードウェアモジュールは、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを通知する画像処理装置。
【請求項２】
前記ハードウェアモジュールは、停止状態でないと判定した場合、再びタイマーをセットする請求項１記載の画像処理装置。
【請求項３】
前記ハードウェアモジュールは、前記画像処理が進んでいる場合は、停止状態でないと判定し、前記画像処理が進んでいない場合は、停止状態でないと判定する請求項１又は２記載の画像処理装置。
【請求項４】
前記ハードウェアモジュールは、前記タイマーをセットしてから前記タイマーアップするまでの間に画像処理に関するデータ量が変化している場合は、前記画像処理が進んでいるとし、前記タイマーをセットしてから前記タイマーアップするまでの間に画像処理に関するデータ量が変化していない場合は、前記画像処理が進んでいないとする請求項３記載の画像処理装置。
【請求項５】
前記ハードウェアモジュールは、前記タイマーをセットしてから前記タイマーアップするまでの間にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）のアドレスが変化している場合は、前記画像処理が進んでいるとし、前記タイマーをセットしてから前記タイマーアップするまでの間に前記ＤＭＡのアドレスが変化していない場合は、前記画像処理が進んでいないとする請求項３記載の画像処理装置。
【請求項６】
各々異なる画像処理を実行する複数のハードウェアモジュールと、
制御手段と、
を有し、
前記複数のハードウェアモジュールのそれぞれは、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを前記制御手段に通知する画像処理装置。
【請求項７】
前記制御手段は、前記複数のハードウェアモジュールのうち、一のハードウェアモジュールからバッファ要求を受信すると、前記複数のハードウェアモジュールに対してタイマーキャンセル通知を送信し、前記一のハードウェアモジュールに対してバッファ通知を送信すると、前記複数のハードウェアモジュールに対してタイマーセット通知を送信する請求項６記載の画像処理装置。
【請求項８】
前記制御手段は、前記複数のハードウェアモジュールのうち、一のハードウェアモジュールからタイマーキャンセル通知を受信すると、前記複数のハードウェアモジュールに対してタイマーキャンセル通知を送信し、前記一のハードウェアモジュールからタイマー再設定通知を受信すると、前記複数のハードウェアモジュールに対してタイマーセット通知を送信する請求項６記載の画像処理装置。
【請求項９】
画像処理を実行するハードウェアモジュールを有する画像処理装置における情報処理方法であって、
前記ハードウェアモジュールが、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを通知する情報処理方法。
【請求項１０】
各々異なる画像処理を実行する複数のハードウェアモジュールと、制御手段と、を有する画像処理装置における情報処理方法であって、
前記複数のハードウェアモジュールのそれぞれが、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを前記制御手段に通知する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
複合機は、機能を実現するために様々な画像処理を行う。例えば、コピー動作を行う場合、複合機は、スキャナから原稿画像を読み取ってデジタル画像データに変換して保存する。そして、複合機は、保存した画像データを、印刷できるように再度、画像処理を行い、プリンタから出力する。
このような画像処理を行う際に、複合機は、画像処理部に含まれる、様々な能力を持つハードウェアモジュールを使用して画像処理を行う。前述のコピー機能での画像処理の場合は、複合機は、スキャナからの画像データをデジタルデータに変換するハードウェアモジュールをまず使用する。その後に、複合機は、デジタル画像データの色調整等を行うハードウェアモジュールを使用して調整し、最後に調整後の画像データを符号化して圧縮するハードウェアモジュールを使用して圧縮して保存する。
ここで使用しているハードウェアモジュールはＣＰＵとは別に動作できる素子である。ＣＰＵからハードウェアモジュールに動作を指示して、処理を終了するとハードウェアモジュールから終了応答をＣＰＵに出すことで、ＣＰＵは処理の終了を検知できる。
しかし、このハードウェアモジュールが故障等の原因で動作が止まってしまった場合、前述の終了応答を出すことができずに動作停止状態になってしまう。この場合、ＣＰＵはハードウェアモジュールからの応答が無いので、ずっと待ち続けることになり、複合機の動作状態としては処理中のまま止まってしまうことになる。このような動作状況になると、ユーザは複合機が動作停止状態になってしまったと感じてしまう。
このような動作停止状態をＣＰＵが検知するために、ハードウェアモジュールを動作させる際にタイマーをセットし、一定時間過ぎても動作が終了しない場合はエラーとして処理を停止させている。これによりユーザは複合機が動作停止状態になったと認識せず、エラー終了したと認識できるようになる。
このようなハードウェアモジュールの故障検知の仕組みとして、２つのタイマーを使用して所定時間内に信号が返ってこないと故障と検知するような仕組みが提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２１２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなタイマーを用いてのハードウェアモジュールの停止状態の検出をするためには、正常動作時に誤検出しないくらいの長い時間のタイマーをセットしなければならない。タイマーがアップした際にはエラー終了として処理するため、正常動作では起こりえないほどの長い時間、応答が無い場合にだけエラーとしなければならない。
そのため、このようなタイマーには通常１０分以上の長めのタイマーが使用される。しかし、この結果、１０分以上、複合機１００が処理中のままになってしまうことになる。したがって、ユーザはエラー処理が行われるより先に、動作停止状態と判断してしまう可能性がある。
【課題を解決するための手段】
【０００５】
本発明は、画像処理を実行するハードウェアモジュールを有し、ハードウェアモジュールは、タイマーをセットしてからタイマーアップするまでに画像処理が進んでいるかに基づき停止状態かを判定し、停止状態であると判定した場合、エラーを通知する。
【発明の効果】
【０００６】
本発明によれば、従来よりも短いタイマーでエラーを検出することができる。
【図面の簡単な説明】
【０００７】
【図１】複合機のハードウェア構成の一例を示す図である。
【図２】従来の機能構成等を示した図である。
【図３】本実施形態の機能構成等を示した図である。
【図４】停止状態になっているかどうかを判定する方法の一例を示す図である。
【図５】複合機の情報処理の一例を示すシーケンス図（その１）である。
【図６】複合機の情報処理の一例を示すシーケンス図（その２）である。
【図７】複合機の情報処理の一例を示すシーケンス図（その３）である。
【図８】ハードウェアモジュールの情報処理の一例を示すフローチャートである。
【図９】画像フロー制御部の情報処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
以下、画像処理装置として、複合機とした場合の例を挙げる。図１は、複合機１００のハードウェア構成の一例を示す図である。
ＣＰＵ１０１は、装置全体を制御する。ｅＭＭＣ１０２は、フラッシュメモリで構成されており、ＣＰＵ１０１のプログラムを格納する。ＤＲＡＭ１０３は、プログラム制御変数等を格納したり、処理する画像データ等を一時的に保存したりする揮発性メモリである。操作部１０４は、機器内の情報を表示するユーザとのインターフェイス部である。読み取り部１０５は、画像データを読み取り、バイナリデータに変換する装置である。複合機１００は、読み取り部１０５を用いて画像送信機能の原稿読み取りを行う。記録部１０６は、画像データを記録紙に出力する装置である。画像処理部１０７は、画像送信機能で扱う画像データの符号化復号化処理を行う。画像処理部１０７は、ＳｃａｎＩ／Ｆ１０７１、色変換部１０７２、符号化部１０７３のハードウェアモジュールを含む。ＳｃａｎＩ／Ｆ１０７１は、読み取り部１０５から読み込まれた画像データをデジタルデータに変換する。色変換部１０７２は、デジタルデータの色処理を行う。符号化部１０７３は、デジタルデータを符号化する。通信部１０８は、機器と外部通信網とのインターフェイス部である。それぞれの制御部はデータバス１１０を介して繋がっている。
ＣＰＵ１０１がｅＭＭＣ１０２に記憶されたプログラムに基づき処理を実行することによって後述する図３の画像フロー制御部２０１、タイマー部２０２の機能が実現される。また、ＣＰＵ１０１がｅＭＭＣ１０２に記憶されたプログラムに基づき処理を実行することによって後述する図５、図６、図７のシーケンス図の画像フロー制御部２０１、タイマー部２０２の処理が実現される。またＣＰＵ１０１がｅＭＭＣ１０２に記憶されたプログラムに基づき処理を実行することによって後述する図９のフローチャートの処理が実現される。
このような複合機１００において、読み取り部１０５から原稿を読み取り画像データに変換して色処理し、符号化して保存する様子を例に説明する。
【００１０】
図２は、ハードウェアモジュールを使用して画像処理を行う仕組みの従来の機能構成等を示した図である。
画像処理は複数のハードウェアモジュールを使用して処理が実現される。図２の例では、読み取り部１０５から読み込んだ画像データを符号化して保存するまでの処理を示している。この場合、ＳｃａｎＩ／Ｆ１０７１、色変換部１０７２、符号化部１０７３の３つのハードウェアモジュールが使用されて動作が実現される。これらのモジュールをまとめて動作させるために、画像フロー制御部２０１がまとめて管理を行う。画像フロー制御部２０１は、タイマー部２０２と通信しており、エラーまでのタイマーをセットする。
読み取り部１０５から読み込んだ画像データを符号化して保存するまでの処理を行う場合、画像フロー制御部２０１は、各ハードウェアモジュールに設定と動作開始とを指示する。また同時に画像フロー制御部２０１は、タイマー部２０２にエラーまでのタイマーをセットする。各ハードウェアモジュールが処理を完了するとそれぞれが画像フロー制御部２０１に処理終了を通知する。画像フロー制御部２０１は、全てのハードウェアモジュールから終了通知が来たら全処理が終了したとして、画像処理を終了する。全てのハードウェアモジュールから終了処理が来る前に、タイマー部２０２からタイマーアップの通知が来ると、画像フロー制御部２０１は、ハードウェアモジュールが停止状態になっているとみなし、画像処理をエラー終了させる。
図２の例では処理終了前にタイマーアップすると必ずエラー終了してしまうことになる。そのため、タイマーにセットするタイマー値は長い時間を設定することになる。正常動作なのだけれども処理時間が長い処理を間違って誤検知しないように、十分に長いタイマー値が必要となる。そのため、このようなタイマーには１０分以上の長めのタイマーが使用される。しかし、この結果、１０分以上複合機が処理中のままになってしまうことになる。したがって、ユーザはエラー処理が行われるより先に、動作停止状態と判断してしまう可能性がある。
【００１１】
図３は、ハードウェアモジュールを使用して画像処理を行う仕組みの本実施形態の機能構成等を示した図である。
読み取り部１０５から読み込んだ画像データを符号化して保存するまでの処理を例に説明を行う。
ＳｃａｎＩ／Ｆ１０７１、色変換部１０７２、符号化部１０７３の３つのハードウェアモジュールを使用して画像処理を実現することは図２と同様である。また、これらのモジュールをまとめて動作させるために、画像フロー制御部２０１を使用することも図２と同様である。図３と図２とで異なるのは、図３ではタイマー部２０２と各ハードウェアモジュールとが通信をしており、各ハードウェアモジュールがエラーまでのタイマーをタイマー部２０２にセットする点である。
読み取り部１０５から読み込んだ画像データを符号化して保存するまでの処理を行う場合、画像フロー制御部２０１は、各ハードウェアモジュールに設定と動作開始とを指示する。各ハードウェアモジュールは、動作開始を指示されると、それぞれがタイマー部２０２にエラーまでのタイマーをセットする。処理が完了すると各ハードウェアモジュールは、それぞれが画像フロー制御部２０１に処理終了を通知する。画像フロー制御部２０１は、全てのハードウェアモジュールから終了通知が来たら全処理が終了したとして、画像処理を終了する。処理終了を通知する前にタイマー部２０２からタイマーアップの通知が来ると、各ハードウェアモジュールは、自分が停止状態になっているかどうかを後述の方法で判定する。ここで自分自身が停止状態になっていると判定すると、各ハードウェアモジュールは、画像フロー制御部２０１にエラーを通知しはその処理をエラー終了させる。自分自身が停止状態になっていないと判定した場合は、各ハードウェアモジュールは、再度、タイマー部２０２にタイマーをセットし、画像処理を継続する。
このようにタイマーアップ時に各ハードウェアモジュールが、自分自身が停止状態になっているかどうかを判定することで、従来に比べて短いタイマーをセットすることが可能となる。
【００１２】
図４は、図３で述べた各ハードウェアモジュールのタイマーアップ時に自分自身が停止状態になっているかどうかを判定する方法の一例を示す図である。
図４では色変換部１０７２を例に挙げているが、どのハードウェアモジュールも同様の処理を行う。
まず、処理開始時４０１に色変換部１０７２は、色変換部１０７２のレジスタ情報に含まれる「処理データ量」を０に設定しておく。次に１回目のタイマーアップ発生時４０２に色変換部１０７２は、レジスタ情報の「処理データ量」を取得する。ここで、色変換部１０７２は、１回目のタイマーアップの間に１８７００ｂｙｔｅのデータを処理したと読み取れたとする。この場合、前回の処理データ量の位置から処理したデータ量が増えているので、色変換部１０７２は、処理は進んでいると判定し、処理を継続する。そして、色変換部１０７２は、再度、タイマー部２０２にタイマーをセットし、処理を継続する。そして、２回目のタイマーアップ発生時４０３に色変換部１０７２は、先ほどと同じように「処理データ量」を取得する。ここで、２回目のタイマーアップ発生時４０３には処理データ量が１８７００ｂｙｔｅのままであったとする。この場合、処理データ量が変化していないため、色変換部１０７２は、１回目と２回目とのタイマーアップ時の間には処理が進んでいないと判断し、停止状態に陥ったと判定して、エラー終了する。
このようにタイマーアップ時に各ハードウェアモジュールの進み具合を判定できる情報を用いて、進んでいれば処理継続、止まっていればエラー終了とする。色変換部１０７２の例としては処理データ量のレジスタ情報を使用したが、このようなレジスタ情報を持っていないハードウェアモジュールであれば、他の情報を代用してもよい。例えば、ハードウェアモジュールは、入力又は出力のＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）の読み取り／書き込み位置が変化しているか否かに基づき、前回と進んでいるかどうかを判定してもよい。例えば、ハードウェアモジュールは、タイマーをセットしてからタイマーアップするまでの間にＤＭＡのアドレスが変化している場合は、ハードウェアモジュールの画像処理が進んでいるとする。一方、ハードウェアモジュールは、タイマーをセットしてからタイマーアップするまでの間にＤＭＡのアドレスが変化していない場合は、画像処理が進んでいないとする。
【００１３】
次に全体としてどのような処理フローで処理動作中におけるハードウェアモジュールの停止状態を判定しているかを説明する。
図５は、複合機１００の情報処理の一例を示すシーケンス図（その１）である。
図５の例では、画像フロー制御部２０１は、ハードウェアモジュール１（ＨＷモジュール１）とハードウェアモジュール２（ＨＷモジュール２）とを使用して画像処理を行うケースを説明している。
まず、画像フロー制御部２０１は、ハードウェアモジュール１及びハードウェアモジュール２それぞれに対して初期設定依頼を通知する（ＳＱ５０１、ＳＱ５０３）。初期設定通知を受けたハードウェアモジュール１及びハードウェアモジュール２は、それぞれ、自身の初期設定を行い、初期設定完了通知を画像フロー制御部２０１に通知する（ＳＱ５０２、ＳＱ５０４）。全てのハードウェアモジュールから初期設定完了通知を受けると、画像フロー制御部２０１は、全てのハードウェアモジュールに処理開始依頼を通知する（ＳＱ５０５、ＳＱ５０６）。それぞれのハードウェアモジュールは、処理開始依頼を受けると、処理を開始し、タイマーセットを行うため、タイマー部２０２にタイマーセット通知を送る（ＳＱ５０７、ＳＱ５０８）。そして各ハードウェアモジュールは、処理を実行する。実行中にタイマーアップが発生すると、タイマー部２０２は、各ハードウェアモジュールにタイマーアップ通知を行う（ＳＱ５０９、ＳＱ５１０）。各ハードウェアモジュールは、タイマーアップ通知を受け取ると、図４で示したような停止状態に陥っているかどうかの判定を行う。判定の結果、処理が進行していて正常に動作している場合は、各ハードウェアモジュールは、タイマー部２０２に再度、タイマーセット通知を送り（ＳＱ５１１、ＳＱ５１２）、タイマーを再セットする。そして処理が正常に完了すると、各ハードウェアモジュールはそれぞれ画像フロー制御部２０１に処理完了通知を送り（ＳＱ５１３、ＳＱ５１４）、処理を完了する。
【００１４】
図６は、複合機１００の情報処理の一例を示すシーケンス図（その２）である。
図６の例でも、画像フロー制御部２０１は、ハードウェアモジュール１（ＨＷモジュール１）とハードウェアモジュール２（ＨＷモジュール２）とを使用して画像処理を行うケースを説明している。
まず、画像フロー制御部２０１は、ハードウェアモジュール１及びハードウェアモジュール２それぞれに対して初期設定依頼を通知する（ＳＱ６０１、ＳＱ６０３）。初期設定通知を受けたハードウェアモジュール１及びハードウェアモジュール２は、それぞれ、自身の初期設定を行い、初期設定完了通知を画像フロー制御部２０１に通知する（ＳＱ６０２、ＳＱ６０４）。全てのハードウェアモジュールから初期設定完了通知を受けると、画像フロー制御部２０１は、全てのハードウェアモジュールに処理開始依頼を通知する（ＳＱ６０５、ＳＱ６０６）。それぞれのハードウェアモジュールは、処理開始依頼を受けると、処理を開始し、タイマーセットを行うため、タイマー部２０２にタイマーセット通知を送る（ＳＱ６０７、ＳＱ６０８）。そして各ハードウェアモジュールは、処理を実行する。
【００１５】
ハードウェアモジュール１は、処理に必要なデータが無くなってしまった場合には、画像フロー制御部２０１を通して更に上位にバッファ要求をするため、バッファ要求通知を送る（ＳＱ６０９）。画像フロー制御部２０１は、バッファ要求通知を受けると、次のバッファがいつもらえるか分からなく、その間、処理が止まってしまう。したがって、画像フロー制御部２０１は、各ハードウェアモジュールのタイマーを止めるため、各ハードウェアモジュールにタイマーキャンセル通知を送る（ＳＱ６１０、ＳＱ６１１）。タイマーキャンセル通知を受けた、各ハードウェアモジュールはそれぞれタイマー部２０２にタイマーキャンセル通知を送り（ＳＱ６１２、ＳＱ６１３）、タイマーを一旦止める。これにより、処理が止まってしまうが停止状態であると誤検知しないようになる。
そして、上位から続きのバッファをもらうと、画像フロー制御部２０１は、バッファ要求通知を送ってきたハードウェアモジュール１にバッファ通知を送り（ＳＱ６１４）、もらったバッファを通知する。また画像フロー制御部２０１は、各ハードウェアモジュールにタイマーセット通知を送り（ＳＱ６１５、ＳＱ６１６）、タイマーの再開を指示する。タイマーセット通知を受け取った各ハードウェアモジュールはそれぞれタイマー部２０２にタイマーセット通知を送り（ＳＱ６１７、ＳＱ６１８）、各自タイマーを再セットする。
そして処理が正常に完了すると、各ハードウェアモジュールはそれぞれ画像フロー制御部２０１に処理完了通知を送り（ＳＱ６１９、ＳＱ６２０）、処理を完了する。
【００１６】
図７は、複合機１００の情報処理の一例を示すシーケンス図（その３）である。
図７の例でも、画像フロー制御部２０１は、ハードウェアモジュール１（ＨＷモジュール１）とハードウェアモジュール２（ＨＷモジュール２）とを使用して画像処理を行うケースを説明している。
まず、画像フロー制御部２０１は、ハードウェアモジュール１及びハードウェアモジュール２それぞれに対して初期設定依頼を通知する（ＳＱ７０１、ＳＱ７０３）。初期設定通知を受けたハードウェアモジュール１及びハードウェアモジュール２は。それぞれ、自身の初期設定を行い、初期設定完了通知を画像フロー制御部２０１に通知する（ＳＱ７０２、ＳＱ７０４）。全てのハードウェアモジュールから初期設定完了通知を受けると、画像フロー制御部２０１は、全てのハードウェアモジュールに処理開始依頼を通知する（ＳＱ７０５、ＳＱ７０６）。それぞれのハードウェアモジュールは、処理開始依頼を受けると、処理を開始し、タイマーセットを行うため、タイマー部２０２にタイマーセット通知を送る（ＳＱ７０７、ＳＱ７０８）。そして各ハードウェアモジュールは、処理を実行する。
【００１７】
ハードウェアモジュール１は、ハードウェアモジュール１の状態を鑑みて、正常処理の範疇ではあるが、一時的に処理が止まってしまうと判定されたとする。この場合には、ハードウェアモジュール１は、画像フロー制御部２０１にタイマーのキャンセルを依頼するため、タイマーキャンセル通知を送る（ＳＱ７０９）。画像フロー制御部２０１は、タイマーキャンセル通知を受けると、各ハードウェアモジュールそれぞれにタイマーキャンセル通知を送る（ＳＱ７１０、ＳＱ７１１）。タイマーキャンセル通知を受けた、各ハードウェアモジュールはそれぞれタイマー部２０２にタイマーキャンセル通知を送り（ＳＱ７１２、ＳＱ７１３）、タイマーを一旦止める。これにより、処理が止まってしまうが停止状態であると誤検知しないようになる。
そして、ハードウェアモジュール１は、処理停止状態を解除できたと判断できたら、画像フロー制御部２０１にタイマー再設定通知を送る（ＳＱ７１４）。タイマー再設定通知を受けた画像フロー制御部２０１は、各ハードウェアモジュールそれぞれにタイマーセット通知を送り（ＳＱ７１５、ＳＱ７１６）、タイマーの再開を指示する。タイマーセット通知を受け取った各ハードウェアモジュールはそれぞれタイマー部２０２にタイマーセット通知を送り（ＳＱ７１７、ＳＱ７１８）、各自タイマーを再セットする。
そして処理が正常に完了すると、各ハードウェアモジュールはそれぞれ画像フロー制御部２０１に処理完了通知を送り（ＳＱ７１９、ＳＱ７２０）、処理を完了する。
このように従来よりも短いタイマー設定で、各ハードウェアモジュールの定時状態を判定することで、従来よりも短い期間でのハードウェアモジュールの停止状態を検出できるようになる。更に、バッファ要求時の一旦停止時や、ハードウェアモジュールの都合での一旦停止時をタイマー測定機関から除去することで、タイマーアップの誤検知を防ぐことができるようになる。
【００１８】
図８は、ハードウェアモジュールの情報処理の一例を示すフローチャートである。
処理を開始すると、Ｓ８０１において、ハードウェアモジュールは、タイマーのセットを行う。ハードウェアモジュールは、タイマー部２０２に通知を行うことでタイマーのセットを実行する。
Ｓ８０２において、ハードウェアモジュールは、自分自身の状態を確認し、正常動作だが処理が止まってしまうような動作状態かどうかの確認を行う。ハードウェアモジュールは、このような状態の場合は、動作が進まなくなるので、一旦タイマーをキャンセルすべきである。このように、ハードウェアモジュールは、タイマーをキャンセルすべきかどうかの判定を行う。ハードウェアモジュールは、タイマーをキャンセルすると判定した場合、Ｓ８０３に進み、タイマーをキャンセルしないと判定した場合、Ｓ８０８に進む。
Ｓ８０３において、ハードウェアモジュールは、タイマーキャンセルの指示を画像フロー制御部２０１に通知する。
Ｓ８０４において、ハードウェアモジュールは、画像フロー制御部２０１からタイマーキャンセルの指示を受け取るとタイマーキャンセルを行う。
Ｓ８０５において、ハードウェアモジュールは、正常動作だが処理が止まってしまうような動作状態が解除されたかどうかを判定する。ハードウェアモジュールは、正常動作だが処理が止まってしまうような動作状態が解除されたと判定した場合、Ｓ８０６に進み、正常動作だが処理が止まってしまうような動作状態が解除されていないと判定した場合、Ｓ８０５の処理を繰り返す。
Ｓ８０６において、ハードウェアモジュールは、画像フロー制御部２０１にタイマー再設定の通知を送る。
Ｓ８０７において、ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信したか否かを判定する。ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信したと判定した場合、Ｓ８０１に進み、タイマーを再セットして処理を継続する。一方、ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信していないと判定した場合、Ｓ８０７の処理を繰り返す。
【００１９】
Ｓ８０８において、ハードウェアモジュールは、画像フロー制御部２０１からタイマーキャンセル指示を受信したか否かを判定する。ハードウェアモジュールは、画像フロー制御部２０１からタイマーキャンセル指示を受信したと判定した場合、Ｓ８０９に進み、タイマーキャンセル指示を受信していないと判定した場合、Ｓ８１０に進む。
Ｓ８０９において、ハードウェアモジュールは、画像フロー制御部２０１からのタイマーキャンセル指示に基づき、タイマーキャンセルを行う。
そして、Ｓ８０７において、ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信したか否かを判定する。ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信したと判定した場合、Ｓ８０１に進み、タイマーを再セットして処理を継続する。一方、ハードウェアモジュールは、画像フロー制御部２０１からのタイマー再設定通知を受信していないと判定した場合、Ｓ８０７の処理を繰り返す。
Ｓ８１０において、ハードウェアモジュールは、ハードウェアモジュールの処理が終了したかどうかの判定を行う。ハードウェアモジュールは、処理が終了したと判定した場合、Ｓ８１１に進み、処理が終了していないと判定した場合、Ｓ８１２に進む。
Ｓ８１１において、ハードウェアモジュールは、画像フロー制御部２０１に正常終了を通知して、処理終了となる。
Ｓ８１２において、ハードウェアモジュールは、タイマーアップしたかどうかを判定する。ハードウェアモジュールは、タイマーアップしたと判定した場合は、Ｓ８１３に進み、タイマーアップしていないと判定した場合は、Ｓ８０２の処理に戻る。
Ｓ８１３において、ハードウェアモジュールは、図４で説明した方法を用いてハードウェアモジュールが停止状態に陥っていないか（だんまり状態か）どうかを判定する。ハードウェアモジュールは、ハードウェアモジュールが停止状態に陥っていると判定した場合、Ｓ８１４に進み、停止状態に陥っていないと判定した場合、Ｓ８０１に進み、タイマーを再セットして処理を継続する。
Ｓ８１４において、ハードウェアモジュールは、画像フロー制御部２０１にエラー終了を通知し、処理を終了する。
【００２０】
図９は、画像フロー制御部２０１の情報処理の一例を示すフローチャートである。
処理を開始すると、Ｓ９０１において、画像フロー制御部２０１は、使用する全てのハードウェアモジュールに処理のスタートを指示する。
Ｓ９０２において、画像フロー制御部２０１は、何れかのハードウェアモジュールからタイマーキャンセル指示が来ていないかどうかを判定する。画像フロー制御部２０１は、何れかのハードウェアモジュールからタイマーキャンセル指示が来ていると判定すると、Ｓ９０４に進み、何れかのハードウェアモジュールからもタイマーキャンセル指示が来ていないと判定すると、Ｓ９０３に進む。
Ｓ９０４において、画像フロー制御部２０１は、全てのハードウェアモジュールにタイマーキャンセルを指示する。
そして、Ｓ９０５において、画像フロー制御部２０１は、タイマーキャンセル指示を送ってきたハードウェアモジュールからタイマー再設定指示が来るのを待つ。画像フロー制御部２０１は、タイマーキャンセル指示を送ってきたハードウェアモジュールからタイマー再設定指示を受信したと判定した場合、Ｓ９０６に進む。一方、画像フロー制御部２０１は、タイマーキャンセル指示を送ってきたハードウェアモジュールからタイマー再設定指示を受信していないと判定しない場合、Ｓ９０５の処理を繰り返す。
Ｓ９０６において、画像フロー制御部２０１は、再度、全てのハードウェアモジュールにタイマーの設定を指示する。そして、画像フロー制御部２０１は、処理を継続する。
【００２１】
Ｓ９０３において、画像フロー制御部２０１は、ハードウェアモジュールからバッファ獲得指示が来ていないかを判定する。画像フロー制御部２０１は、ハードウェアモジュールからバッファ獲得指示が来ていると判定すると、Ｓ９０４に進み、ハードウェアモジュールからバッファ獲得指示が来ていないと判定すると、Ｓ９０７に進む。
ハードウェアモジュールからバッファ獲得指示が来た場合、Ｓ９０４において、画像フロー制御部２０１は、上位のバッファを要求しつつ、全てのハードウェアモジュールにタイマーキャンセルを指示する。
そして、Ｓ９０５において、画像フロー制御部２０１は、バッファが獲得できるのを待つ。画像フロー制御部２０１は、バッファが獲得できたと判定すると、Ｓ９０６に進み、バッファが獲得できなかったと判定すると、Ｓ９０５の処理を繰り返す。
Ｓ９０６において、画像フロー制御部２０１は、再度、全てのハードウェアモジュールにタイマーの設定を指示する。そして、画像フロー制御部２０１は、処理を継続する。
【００２２】
Ｓ９０７において、画像フロー制御部２０１は、全てのハードウェアモジュールから処理終了通知が来たかどうかを判定する。画像フロー制御部２０１は、全てのハードウェアモジュールから処理終了通知が来たと判定した場合、Ｓ９０８に進み、画像フロー制御部２０１は、全てのハードウェアモジュールから処理終了通知が来ていないと判定した場合、Ｓ９０２に戻る。Ｓ９０２に戻り、画像フロー制御部２０１は、動作状態を判定し続け、処理が終了するまで動作し続ける。
Ｓ９０８において、画像フロー制御部２０１は、全てのハードウェアモジュールが正常終了したかどうかを判定する。画像フロー制御部２０１は、全てのハードウェアモジュールが正常終了したと判定した場合、Ｓ９１０に進み、全てのハードウェアモジュールが正常終了してはいないと判定した場合、Ｓ９０９に進む。
Ｓ９０９において、画像フロー制御部２０１は、エラー終了する。そして、処理終了となる。
Ｓ９１０において、画像フロー制御部２０１は、正常終了する。そして、処理終了となる。
【００２３】
このように、各ハードウェアモジュールが、従来に比べて短時間のタイマーをセットし、タイマーアップしたときに動作を進めているかどうかを判定することで、従来よりも短いタイマーでエラーを検出することができる。
また、バッファ獲得待ちや、ハードウェアモジュールの状態によってタイマーを動作させると不都合がある場合は画像フロー制御部２０１からタイマーをキャンセル／再設定することができるようにすることで更に精度の高いタイマー設定を行うことができる。
【００２４】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００２５】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した複合機１００では、１つのＣＰＵ１０１が１つのメモリ（ＤＲＡＭ１０３）を用いて図９に示すフローチャートの各処理を実行するものとして説明したが、他の様態であってもよい。例えば複数のＣＰＵ、ＤＲＡＭ、ＲＯＭ、及びストレージを協働させてフローチャートに示す各処理を実行することもできる。また、ＣＰＵに替えてＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いることとしてもよい。
【符号の説明】
【００２６】
１００  複合機
１０１  ＣＰＵ
１０７  画像処理部
【図１】
2019209597.tif 000003
【図２】
2019209597.tif 000004
【図３】
2019209597.tif 000005
【図４】
2019209597.tif 000006
【図５】
2019209597.tif 000007
【図６】
2019209597.tif 000008
【図７】
2019209597.tif 000009
【図８】
2019209597.tif 000010
【図９】
2019209597.tif 000011