(57)【特許請求の範囲】
【請求項１】
画像処理装置であって、
それぞれ独立して処理を行うことができる複数のプロセッサと、
画像データを記憶する画像記憶部と、を有し、
前記複数のプロセッサは、それぞれ独立して前記画像記憶部から前記画像データを読み出し、
前記複数のプロセッサのうち、前記画像データの読み出しに成功した一つのプロセッサが前記画像データを出力することを特徴とする画像処理装置。
【請求項２】
前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが異常終了したときには、そのときの前記時間差を記録しておく記憶部を有し、
その後の前記画像データの読み出しは、前記記憶部に記録された異常終了した前記時間差以外の前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出すことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが正常終了したときには、そのときの前記時間差を記録しておく記憶部を有し、
その後の前記画像データの読み出しは、前記記憶部に記録された正常終了した前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出すことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
一定期間正常終了が続いた場合には、その後の前記画像データの読み出しは、前記複数のプロセッサによる前記画像データの読み出しを中止して、１つの前記プロセッサにより前記画像データを読み出すことを特徴とする請求項１〜３のいずれか一つに記載の画像処理装置。
【請求項５】
前記１つの前記プロセッサによる前記画像データの読み出しにより、異常終了が発生した場合は、前記複数のプロセッサによる前記画像データの読み出しにすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
一定期間正常終了が続いた場合には前記画像データの読み出しに使用する前記プロセッサの数を減らし、異常終了が発生した場合は前記画像データの読み出しに使用する前記プロセッサの数を増やすことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
それぞれ独立して処理を行うことができる複数のプロセッサと、画像データを記憶する画像記憶部と、を有する画像処理装置を用いた画像処理方法であって、
前記複数のプロセッサに、それぞれ独立して前記画像記憶部から前記画像データを読み出させて、
前記画像データの読み出しに成功したいずれか一つのプロセッサにより前記画像データを出力させることを特徴とする画像処理方法。
【請求項８】
前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが異常終了したときには、そのときの前記時間差を記録しておき、
その後の前記画像データの読み出しは、前記記録された異常終了した前記時間差以外の前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出させることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが正常終了したときには、そのときの前記時間差を記録しておき、
その後の前記画像データの読み出しは、前記記録された正常終了した前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出させることを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
一定期間正常終了が続いた場合には、その後の前記画像データの読み出しは、前記複数のプロセッサによる前記画像データの読み出しを中止し、１つの前記プロセッサにより前記画像データを読み出させることを特徴とする請求項７〜９のいずれか一つに記載の画像処理方法。
【請求項１１】
前記１つの前記プロセッサによる前記画像データの読み出しにより、異常終了が発生した場合は、前記複数のプロセッサにより前記画像データを読み出させることを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
一定期間正常終了が続いた場合には前記画像データの読み出しに使用する前記プロセッサの数を減らし、異常終了が発生した場合は前記画像データの読み出しに使用する前記プロセッサの数を増やすことを特徴とする請求項７に記載の画像処理方法。
【請求項１３】
それぞれ独立して処理を行うことができる複数のプロセッサと、画像データを記憶する画像記憶部と、を有する画像処理装置の制御プログラムであって、
前記複数のプロセッサに、それぞれ独立して前記画像記憶部から前記画像データの読み出しを行わせる段階と、
前記画像データの読み出しに成功したいずれか一つのプロセッサにより前記画像データを出力させる段階と、を有することを特徴とする画像処理装置の制御プログラム。
【請求項１４】
それぞれ独立して処理を行うことができる複数のプロセッサ、および画像データを記憶する画像記憶部を有するプリンターサーバーと、
前記プリンターサーバーから送信された前記画像データを印刷する画像形成装置と、を有する画像処理システムであって、
前記複数のプロセッサは、それぞれ独立して前記画像記憶部から前記画像データを読み出し、
前記複数のプロセッサのうち、前記画像データの読み出しに成功したいずれか一つのプロセッサが前記画像データを前記画像形成装置へ出力することを特徴とする画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理装置の制御プログラム、および画像形成システムに関する。
【背景技術】
【０００２】
近年、複数のプロセッサを用いた画像形成装置がある。このような複数のプロセッサを用いた画像形成装置においては、通常の状態においては複数のプロセッサを用いて、複数のジョブや複数のプログラムを同時に処理している。
【０００３】
従来、このような複数のプロセッサを有する装置において、故障発生時に、一つのプロセッサが不良箇所の特定を行い、特定した不良部分がたとえばメモリー（記憶装置）の場合、メモリーなどの不良箇所を他のプロセッサから切り離し、以後、機能に制限はあるものの、不良箇所を使用しないことで、できるだけ正常な動作が行えるようにした技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−８６６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、故障発生時には、メモリーを切り離してしまうため、実行中のジョブがあると、そのジョブは途中で止まってしまって、そのジョブの出力を得られないという問題があった。
【０００６】
そこで、本発明の目的は、複数のプロセッサを有する画像処理装置において、一部の動作に異常が生じても、可能な限りジョブを継続することができるようにした画像処理装置を提供することである。また本発明の他の目的は、複数のプロセッサを有する画像処理装置において、一部の動作に異常が生じても、可能な限りジョブを継続することができるようにした画像処理方法を提供することである。また本発明の他の目的は、複数のプロセッサを有する画像処理装置において、一部の動作に異常が生じても、可能な限りジョブを継続することができるようにした画像処理装置の制御プログラムを提供することである。さらに本発明の他の目的は、複数のプロセッサを有する画像処理システムにおいて、一部の動作に異常が生じても、可能な限りジョブを継続することができるようにした画像処理システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の上記目的は、下記の手段によって達成される。
【０００８】
（１）画像処理装置であって、
それぞれ独立して処理を行うことができる複数のプロセッサと、
画像データを記憶する画像記憶部と、を有し、
前記複数のプロセッサは、それぞれ独立して前記画像記憶部から前記画像データを読み出し、
前記複数のプロセッサのうち、前記画像データの読み出しに成功した一つのプロセッサが前記画像データを出力することを特徴とする画像処理装置。
【０００９】
（２）前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが異常終了したときには、そのときの前記時間差を記録しておく記憶部を有し、
その後の前記画像データの読み出しは、前記記憶部に記録された異常終了した前記時間差以外の前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出すことを特徴とする上記（１）に記載の画像処理装置。
【００１０】
（３）前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが正常終了したときには、そのときの前記時間差を記録しておく記憶部を有し、
その後の前記画像データの読み出しは、前記記憶部に記録された正常終了した前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出すことを特徴とする上記（１）に記載の画像処理装置。
【００１１】
（４）一定期間正常終了が続いた場合には、その後の前記画像データの読み出しは、前記複数のプロセッサによる前記画像データの読み出しを中止して、１つの前記プロセッサにより前記画像データを読み出すことを特徴とする上記（１）〜（３）のいずれか一つに記載の画像処理装置。
【００１２】
（５）前記１つの前記プロセッサによる前記画像データの読み出しにより、異常終了が発生した場合は、前記複数のプロセッサによる前記画像データの読み出しにすることを特徴とする上記（４）に記載の画像処理装置。
【００１３】
（６）一定期間正常終了が続いた場合には前記画像データの読み出しに使用する前記プロセッサの数を減らし、異常終了が発生した場合は前記画像データの読み出しに使用する前記プロセッサの数を増やすことを特徴とする上記（１）に記載の画像処理装置。
【００１４】
（７）それぞれ独立して処理を行うことができる複数のプロセッサと、画像データを記憶する画像記憶部と、を有する画像処理装置を用いた画像処理方法であって、
前記複数のプロセッサに、それぞれ独立して前記画像記憶部から前記画像データを読み出させて、
前記画像データの読み出しに成功したいずれか一つのプロセッサにより前記画像データを出力させることを特徴とする画像処理方法。
【００１５】
（８）前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが異常終了したときには、そのときの前記時間差を記録しておき、
その後の前記画像データの読み出しは、前記記録された異常終了した前記時間差以外の前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出させることを特徴とする上記（７）に記載の画像処理方法。
【００１６】
（９）前記複数のプロセッサによる前記画像データの読み出しは、前記複数のプロセッサ間で時間差があり、
前記複数のプロセッサによる前記画像データの読み出しが正常終了したときには、そのときの前記時間差を記録しておき、
その後の前記画像データの読み出しは、前記記録された正常終了した前記時間差をつけて前記複数のプロセッサにより前記画像データを読み出させることを特徴とする上記（７）に記載の画像処理方法。
【００１７】
（１０）一定期間正常終了が続いた場合には、その後の前記画像データの読み出しは、前記複数のプロセッサによる前記画像データの読み出しを中止し、１つの前記プロセッサにより前記画像データを読み出させることを特徴とする上記（７）〜（９）のいずれか一つに記載の画像処理方法。
【００１８】
（１１）前記１つの前記プロセッサによる前記画像データの読み出しにより、異常終了が発生した場合は、前記複数のプロセッサにより前記画像データを読み出させることを特徴とする上記（１０）に記載の画像処理方法。
【００１９】
（１２）一定期間正常終了が続いた場合には前記画像データの読み出しに使用する前記プロセッサの数を減らし、異常終了が発生した場合は前記画像データの読み出しに使用する前記プロセッサの数を増やすことを特徴とする上記（７）に記載の画像処理方法。
【００２０】
（１３）それぞれ独立して処理を行うことができる複数のプロセッサと、画像データを記憶する画像記憶部と、を有する画像処理装置の制御プログラムであって、
前記複数のプロセッサに、それぞれ独立して前記画像記憶部から前記画像データの読み出しを行わせる段階と、
前記画像データの読み出しに成功したいずれか一つのプロセッサにより前記画像データを出力させる段階と、を有することを特徴とする画像処理装置の制御プログラム。
【００２１】
（１４）それぞれ独立して処理を行うことができる複数のプロセッサ、および画像データを記憶する画像記憶部を有するプリンターサーバーと、
前記プリンターサーバーから送信された前記画像データを印刷する画像形成装置と、を有する画像処理システムであって、
前記複数のプロセッサは、それぞれ独立して前記画像記憶部から前記画像データを読み出し、
前記複数のプロセッサのうち、前記画像データの読み出しに成功したいずれか一つのプロセッサが前記画像データを前記画像形成装置へ出力することを特徴とする画像処理システム。
【発明の効果】
【００２２】
本発明によれば、複数のプロセッサが同じ画像データを読み出して、読み出しに成功したプロセッサにより画像データを出力することとした。これにより一部に異常が発生したとしても正常に読み出せた画像データを出力することで、可能な限りジョブを継続することができるようになる。したがって、ジョブの途中停止によるダウンタイムをなくすことができ、利便性が向上する。
【図面の簡単な説明】
【００２３】
【図１】実施形態における画像処理装置の構成を説明するためのブロック図である。
【図２】従来の処理手順を示すフローチャートである。
【図３】本実施形態１の処理手順を示すフローチャートである。
【図４】従来の処理手順においてエラーが発生した場合の動作状態を概念的に示した説明図である。
【図５】実施形態１の処理手順においてエラーが発生した場合の動作状態を概念的に示した説明図である。
【図６】実施形態２の処理手順を示すフローチャートである。
【図７】実施形態３の処理手順を示すフローチャートである。
【図８】実施形態４の処理手順を示すフローチャートである。
【図９】実施形態５における画像処理装置の構成を示すブロック図である。
【図１０】実施形態５の処理手順を示すフローチャートである。
【図１１】実施形態５の変形例の処理手順を示すフローチャートである。
【図１２】実施形態６における画像処理システムを示すブロック図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施形態を説明する。なお、図面において同一の機能を有する要素には同一の符号を付し、重複する説明を省略する。また、図面はあくまでも本発明の実施形態を説明するためのものであるので、各部材の寸法や比率は説明の都合上誇張または簡略化しており、実際の寸法や比率とは異なる。
【００２５】
［実施形態１］
本発明を適用した実施形態の画像処理装置として、プリンター、コピー、スキャナー、ファクシミリなどの機能を備えたＭＦＰ（ｍｕｌｔｉｆｕｎｃｔｉｏｎ  ｐｅｒｉｐｈｅｒａｌ、多機能周辺装置）を例に説明する。ＭＦＰは複合機などと称されることもある。
【００２６】
図１は、実施形態における画像処理装置の構成を説明するためのブロック図である。
【００２７】
画像処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１を備えている。ＣＰＵ１０１は、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２を備えたマルチコアプロセッサ構成である。このためＣＰＵ１０１内の第１ＣＰＵコア１５１と第２ＣＰＵコア１５２は、それぞれが独立して様々な処理を実行することができる。そして本実施形態１の動作も、ＣＰＵ１０１が後述する処理手順のプログラムを実行することで行われる。
【００２８】
ＣＰＵ１０１はバス１２０を介して、表示部１０２、操作部１０３、画像処理部１０４、通信制御部１０５、電源制御部１０６、モデム１０７とＮＣＵ（Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０８、読取部１０９、プリントエンジン１１０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１２、不揮発性メモリー１１３、ネットワーク通信部１１４、外部端末通信部１１５、およびユーザー認証処理部１１６と接続されている。
【００２９】
表示部１０２は、たとえば液晶ディスプレイ、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどのディスプレイパネルを備える。ディスプレイパネルには操作画面、設定画面、編集画面などの各種画面が表示される。
【００３０】
操作部１０３は、たとえばコピー、スキャナー、ファクシミリの各機能を選択するためのボタンやキー、数値を入力するためのテンキー、スタートキー、ストップキーなどを備える。また表示部１０２と操作部１０３は、それらが一つになったタッチパネルであってもよい。
【００３１】
画像処理部１０４は、画像データの補正、回転、拡大、縮小などの画像処理を行う。また、外部装置から受信した画像データのラスタライズも行う。またファクシミリの画像データに対しては、画像データの圧縮（符号化）、伸張（復号化）などの処理を行う。ここで外部装置は、たとえばパソコンや携帯情報端末などである（携帯情報端末はたとえば携帯電話、スマートフォン、タブレットなどである）。
【００３２】
通信制御部１０５は、ファクシミリ通信に係るプロトコル制御などを行う。このため通信制御部１０５は、モデム１０７を介してのデータの送受信の制御を行っている。
【００３３】
電源制御部１０６は、各部への電力供給を制御している。また、画像処理装置１００が省エネルギーに対応するためのスリープ機能を有している場合は、画像処理装置各部へ電力を供給する通常モードと、各部への電力供給を制限した待機モード（省電力モード）との切り替えを制御している。待機モードにおいては、たとえばユーザー操作の開始（操作部１０３からの入力）を検出する部分や、着呼（モデム１０７への着信）を検出する部分、また外部装置からのジョブの入力を検出する部分など以外への電力供給を停止する。
【００３４】
画像処理装置１００は、通常、電源が投入されると、通常モードとなる。一方、一定時間無操作および無着信であれば、消費電力を抑えるため待機モードとなる。このような制御を電源制御部１０６が行っている。
【００３５】
モデム１０７は、ディジタル信号をアナログ信号で伝送するための変調やその復調を行う。ＮＣＵは、公衆電話回線と接続されて発呼や着呼に関する制御や検出を行う。ＮＣＵ２７はモデム１０７によって制御される。
【００３６】
読取部１０９は、原稿画像を光学的に読み取って画像データを取得する、いわゆるスキャナーである。
【００３７】
プリントエンジン１１０は、画像データに基づく画像を、周知の電子写真プロセスによって記録紙上に形成する、いわゆる印刷を行う。プリントエンジン１１０は、インクジェット方式であってもよい。
【００３８】
ＲＯＭ１１１は、この画像処理装置１００における基本動作を担うための各種プログラムや固定データが格納されている。ＣＰＵ１０１はこれらのプログラムに従って各種の処理を実行する。
【００３９】
ＲＡＭ１１２は、ＣＰＵ１０１がプログラムを実行する際にワークエリアとなり、また画像データを一時的に記憶する。このためＲＡＭ１１２は、コピー時に読取部１０９で読み取った画像データ、外部装置から受信したジョブの画像データ、ファクシミリ受信した画像データなどを一時記憶する際に使用される。
【００４０】
不揮発性メモリー１１３は、読取部１０９で読み取られた原稿の画像データ、外部装置から受信したジョブの画像データや、ファクシミリ受信した画像データなどを記憶する。また、ＣＰＵ１０１が実行するアプリケーションプログラム（ＲＯＭ１１１に記憶されているプログラム以外のプログラム）も記憶している。不揮発性メモリー１１３は、ＨＤＤ（Ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）、フラッシュメモリーを利用したＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭｕｌｔｉＭｅｄｉａＣａｒｄ）などが用いられる。このようなＨＤＤや、ＳＳＤ、ｅＭＭＣなどにおいては、時間の経過による劣化が起こることが知られている。
【００４１】
なお、不揮発性メモリー１１３は、ＲＯＭの代わりに、画像処理装置１００における基本動作を担うための各種プログラムや固定データを格納しておくこともある。特にＳＳＤ、ｅＭＭＣなどはＲＯＭの機能を兼ねるようにすることがあり、このような場合にはＲＯＭが省略されることもある）。
【００４２】
画像データがＲＡＭ１１２へ一時記憶されるか、不揮発性メモリー１１３へ記憶されるかは、その画像データの出力が即時実行可能か否か、また画像データの容量の大きさによって決定される。たとえば、コピー動作において、読取部１０９で読み取った画像をそのまま印刷可能な状態であれば、読み取った１ページ分の画像データは、読み取りの都度ＲＡＭ１１２へ一時記憶されて、そのまま印刷出力される。ファクシミリ送信時も、即時送信可能であれば読み取った画像データはＲＡＭ１１２での一時記憶となる。ファクシミリ受信時も、受信した画像データを即時印刷可能であれば受信した画像データはＲＡＭ１１２での一時記憶となる。一方、パソコンなどから印刷するジョブの画像データの場合、複数ページ分の画像データを受信することになる。このためＲＡＭ１１２ではすべて記憶することができなくなるので、不揮発性メモリー１１３への記憶となる。また、ジョブの実行開始時において、他のジョブが出力動作中であるような場合、たとえばファクシミリ送信時において別のジョブを送信中の場合は読み取った画像データは不揮発性メモリー１１３へ記憶することになる。同様にファクシミリ受信時において別のジョブを印刷中の場合は受信した画像データは不揮発性メモリー１１３へ記憶することになる。また、コピー動作の場合も先行するジョブが印刷中の場合は、不揮発性メモリー１１３への記憶となる。さらに、即時印刷可能な場合でも、画像データの容量が大きくてＲＡＭ１１２での記憶が容量オーバーとなるような場合も、不揮発性メモリー１１３への記憶となる。そのほか、ここで例示した以外でも、必要に応じて不揮発性メモリー１１３への記憶となる。どこへ画像データを記憶するかは、その時の状態をＣＰＵ１０１が判断して決定されることになる。
【００４３】
このように画像データを記憶するＲＡＭ１１２および不揮発性メモリー１１３はいずれも画像記憶部である。
【００４４】
なお、ここで出力とは、通信制御部１０５とモデム１０７およびＮＣＵを介したファクシミリ出力、プリントエンジン１１０による印刷出力のことである。
【００４５】
ネットワーク通信部１１４は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークを通じて外部装置（たとえばパソコンやサーバーなど）と画像データを送受信する。また、無線通信機能（たとえば無線ＬＡＮ（ＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ））、近距離無線通信（たとえばＢｌｕｅｔｏｏｔｈ（登録商標））など）を備え、外部装置として無線通信を利用した携帯情報端末と画像データの送受信が行えるようにしておいてもよい。
【００４６】
外部端末通信部１１５は、人体を通信路（人体通信という）としてユーザー認証端末装置（不図示）とデータ通信を行う。人体通信は、たとえば電界方式が用いられる。
【００４７】
ユーザー認証処理部１１６は、ユーザー認証端末装置から外部端末通信部１１５が受信した認証データと、この画像処理装置１００に記憶されている照合用の認証データとを比較するなどによりユーザーの識別（特定）および認証を行う（認証処理）。
【００４８】
外部端末通信部１１５およびユーザー認証処理部１１６によるユーザーの認証は人体通信を利用したものに限らず、たとえは近距離無線通信やＷｉＦｉなどの無線通信を利用したものであってもよい。また、テンキーなどからの認証番号の入力などであってもよい。なお、ユーザー認証機能が不用な場合には、外部端末通信部１１５およびユーザー認証処理部１１６はなくてもよい。
【００４９】
本実施形態１における画像処理装置１００の動作について説明する。
【００５０】
まず、本実施形態１の動作の理解を容易にするために、従来の動作と処理手順を説明する。
【００５１】
図２は、従来の処理手順を示すフローチャートである。
【００５２】
従来は、装置構成として２つのＣＰＵ１０１が存在しているが、それぞれのＣＰＵ１０１が別々処理を行っている。したがって従来の処理手順を本実施形態の画像処理装置１００にあてはめると、ジョブの入力待ちの状態でジョブを受け付けると、複数のＣＰＵコアのうち、一つのジョブの処理を実行するＣＰＵコアが１つ選択される（Ｓ１００１）。通常、ジョブの実行指令が来た段階で他のジョブを実行していないＣＰＵコアが選択される（複数のＣＰＵコアがジョブを実行していない場合はあらかじめ決められたＣＰＵコアが優先的に選択される）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【００５３】
Ｓ１００１で選択された第１ＣＰＵコア１５１は、画像データを受信する（Ｓ１００２）。画像データの受信は、外部装置のうちパソコンや情報処理端末などからジョブの場合、ネットワーク通信部１１４を介して受信する。ファクシミリの場合はモデム１０７、通信制御部１０５を介して受信する。また画像読み取りの場合は読取部１０９によって読み取られた画像データとなる。
【００５４】
続いて、第１ＣＰＵコア１５１は、画像データを記憶する（Ｓ１００３）。このときＳ１００２で受信した画像データの記憶先は、既に説明したとおり、ＲＡＭ１１２または不揮発性メモリー１１３である。
【００５５】
続いて、第１ＣＰＵコア１５１は、画像データを読み出す（Ｓ１００４）。画像データの読み出しは出力可能となった時点で行われる。ＲＡＭ１１２に記憶されている画像データはＲＡＭ１１２から、不揮発性メモリー１１３に記憶された画像データは不揮発性メモリー１１３から読み出す。
【００５６】
続いて、第１ＣＰＵコア１５１は、読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４においてその画像データに対して指定された画像処理を実行させる（Ｓ１００５）。
【００５７】
続いて、第１ＣＰＵコア１５１は、画像処理が終了した画像データを、その画像データのジョブの指定に応じて画像処理部１０４から出力させる（Ｓ１００５）。たとえば、ジョブがファクシミリ送信の場合は通信制御部１０５へ画像データを出力してファクシミリ送信させる。ジョブが、ファクシミリ受信、コピー、印刷の場合はプリントエンジン１１０に画像データを出力して印刷させる。
【００５８】
以上のような画像処理装置１００の動作において、時に、画像データの読み出し（Ｓ１００４のステップ）に、エラーが生じる場合がある。従来は、既に説明したようにエラーが発生すると、その時点で処理中のジョブは中止してしまうことになっていた。このため処理中のジョブは破棄されてしまうので、再度エントリーしなければならない。たとえばコピーおよびファクシミリ送信時は画像の再読み取り、外部装置からのジョブでは再送信してもらうなどの必要が生じることもある。
【００５９】
エラーの原因は様々である。たとえば、ＲＡＭ１１２および不揮発性メモリー１１３などの経時劣化、外乱（電波や電気雑音など）などが考えられる。このような読み出しエラーは、部品そのものの根本的な不良の場合は部品交換などが必要となるが、一時的な不良（異常発生）の場合も多い。たとえば、たとえばＲＡＭ１１２および不揮発性メモリー１１３（ＨＤＤ、ＳＳＤ）などの経時劣化の場合、一瞬にしてすべてが不良になるものではなく、一時的に書き込みや読み出しが行えなくなるような状態があって、その後完全に不良になるという経過をたどることが多い。また外乱によるエラーの場合、その外乱がなくなれば正常に動作するようになる。このような様々な不良原因によってエラーが発生した場合、もう一度読み出しを行うと良好に読み出せることもある。
【００６０】
そこで、本実施形態ではこのようなエラー原因にかんがみ、２つのＣＰＵコアを使って同じジョブを処理させることで、ジョブをそのまま継続できる可能性を高くしたのである。
【００６１】
図３は、本実施形態１の処理手順を示すフローチャートである。
【００６２】
まずジョブの入力待ちの状態でジョブを受け付けると、複数のＣＰＵコアのうち、ＣＰＵコアが１つ選択される（Ｓ１０１）。通常、ジョブの実行指令が来た段階で他のジョブを実行していないＣＰＵコアが選択される（複数のＣＰＵコアがジョブを実行していない場合はあらかじめ決められたＣＰＵコアが優先的に選択される）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【００６３】
Ｓ１０１で選択された第１ＣＰＵコア１５１は、画像データを受信する（Ｓ１０２）。画像データの受信は、外部装置のうちパソコンや情報処理端末などからジョブの場合、ネットワーク通信部１１４を介して受信する。ファクシミリの場合はモデム１０７、通信制御部１０５を介して受信する。また画像読み取りの場合は画像読取部によって読み取られた画像データとなる。
【００６４】
続いて、第１ＣＰＵコア１５１は、画像データを記憶する（Ｓ１０３）。このときＳ１０２で受信した画像データが外部装置のうちパソコンや情報処理端末などからジョブの場合、不揮発性メモリー１１３への記憶となる。コピーおよびファクシミリの画像データの場合、すぐに出力可能な状態であればＲＡＭ１１２への一時記憶となる。一方、出力待ちがあれば、不揮発性メモリー１１３への記憶となる。なお、このような画像データの記憶先について既に説明したとおりである。
【００６５】
続いて、第１ＣＰＵコア１５１は、画像データを読み出す（Ｓ１０４）。画像データの読み出しは出力可能となった時点で行われる。コピーや外部装置からの印刷の場合はプリントエンジンが印刷可能となったとき、ファクシミリ送信の場合は送信可能となった時点で読み出しが行われる。画像データの読み出しは、ＲＡＭ１１２に記憶されている画像データはＲＡＭ１１２から、不揮発性メモリー１１３に記憶された画像データは不揮発性メモリー１１３から読み出す。
【００６６】
続いて、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して画像データの読み出しを実行するように指令する（Ｓ１０５）。この指令を受けた第２ＣＰＵコア１５２は、第１ＣＰＵコア１５１とは独立した処理として画像データを読み出す。ここで第２ＣＰＵコア１５２が読み出す画像データは第１ＣＰＵコア１５１で読み出したものと同じである。
【００６７】
続いて、第１ＣＰＵコア１５１は、第１ＣＰＵコア１５１で画像データの読み出しに成功したか否かを判断する（Ｓ１０６）。読み出しに成功していれば（Ｓ１０６：ＹＥＳ）、第１ＣＰＵコア１５１は、読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４においてその画像データに対して指定された画像処理を実行させる（Ｓ１０７）。
【００６８】
続いて、第１ＣＰＵコア１５１は、画像処理が終了した画像データを、その画像データの出力先に応じて画像処理部１０４から出力させる（Ｓ１０８）。画像データの出力動作は従来同様であり、たとえば、ファクシミリ送信の場合は通信制御部１０５へ画像データを転送してファクシミリ送信として出力させ、ファクシミリ受信、コピー、印刷の場合はプリントエンジン１１０に画像データを転送して印刷出力させる。その後第１ＣＰＵコア１５１は処理を終了する。なお第２ＣＰＵコア１５２で読み出された画像データは使用しないので、終了時に破棄される。
【００６９】
Ｓ１０６において、第１ＣＰＵコア１５１による画像データの読み出しに成功していなければ（Ｓ１０６：ＮＯ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２で画像データの読み出しに成功したか否かを判断する（Ｓ１１０）。読み出しに成功していれば（Ｓ１１１：ＹＥＳ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して、読み出した画像データを画像処理部１０４へ転送するように指令し、画像処理部１０４においてその画像データに対して指定された画像処理を実行させる（Ｓ１０７）。以降は、画像データの出力先に応じて画像処理部１０４から出力させる（Ｓ１０８）。その後第１ＣＰＵコア１５１は処理を終了する。
【００７０】
一方、Ｓ１１０において、第２ＣＰＵコア１５２でも画像データの読み出しに成功していなければ（Ｓ１１０：ＮＯ）、この処理手順においては第１ＣＰＵコア１５１でも第２ＣＰＵコア１５２でも画像データの読み出し異常が発生したことになるので、異常終了を警告（Ｓ１１１）して、処理を終了する。異常終了の警告は、たとえば表示部１０２への表示とともに、ファクシミリ受信の即時出力時（データ受信中の場合）には、不良があったことを送信先へ通知する。また、外部装置であるパソコンや携帯情報端末からのジョブを受け付けていた場合には出力不良があったことをそれら外部装置へ通知する。
【００７１】
なお、以上の説明では、第１ＣＰＵコア１５１がこの処理手順全体を実行するように説明したが、これは第２ＣＰＵコア１５２が実行するようにしてもよい。また、Ｓ１０１で選択されたＣＰＵコアが、その時点でこの処理手順全体を実行するようにしてもよい。すなわちＳ１０１で選択されたＣＰＵコアが第２ＣＰＵコア１５２の場合は、第２ＣＰＵコア１５２が上記処理手順おける第１ＣＰＵコア１５１として働くことになる。
【００７２】
本実施形態の作用を説明する。図４は従来の処理手順においてエラーが発生した場合の動作状態を概念的に示した説明図である。図５は本実施形態の処理手順においてエラーが発生した場合の動作状態を概念的に示した説明図である。
【００７３】
まず、図４を参照して従来の動作を説明する。図４に示すように、従来の動作では、１ジョブ目は画像データの読み出しが正常に行われる。そうすると出力も正常に行われる。ところが２ジョブ目で画像データの読み出しに失敗すると、その時点でそのジョブの処理は停止してしまう。そうすると出力も行われないことになる。
【００７４】
次に、図５を参照して本実施形態の動作を説明する。図５に示すように、１ジョブ目について、第１ＣＰＵコア１５１による画像データの読み出しが行われ、続いて第２ＣＰＵコア１５２による画像データの読み出しが行われる。ここで第１ＣＰＵコア１５１による画像データの読み出しと、第２ＣＰＵコア１５２による画像データの読み出しに時間差がある。この読み出しの時間差（以下単に「時間差」という）は、正確には第１ＣＰＵコア１５１による画像データの読み出し開始から第２ＣＰＵコア１５２による画像データの読み出し開始までの時間である。
【００７５】
この時間差は、ＣＰＵ１０１と、ＲＡＭ１１２および不揮発性メモリー１１３との間のバス１２０が１つであるので、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２が同じ画像データの読み出しを行うと、いずれか一方のＣＰＵコアが読み出し中はもう一方のＣＰＵコアが読み出しを行うことができないために生じている。しかもこの時間差は、画像データの長さや、第２ＣＰＵコア１５２の処理状態により異なる。たとえば第１ＣＰＵコア１５１が画像データを読み出し中は、第２ＣＰＵコア１５２は画像データを読み出せない。このため第１ＣＰＵコア１５１が読み出しを開始したのち、第２ＣＰＵコア１５２が読み出しを開始できるようになる時間は画像データの大きさによって異なる。また第２ＣＰＵコア１５２が他の処理を実行中であれば、その処理が終了するまで読み出しはできないので、その場合も第２ＣＰＵコア１５２が読み出し可能になるまでが時間差となる。
【００７６】
図５に戻り説明する。１ジョブ目は両方とも画像データの読み出しが正常に行われている。そうすると、第１ＣＰＵコア１５１によって読み出された画像データが出力される。このとき第２ＣＰＵコア１５２で読み出された画像データは不要なので破棄することになる。
【００７７】
続いて２ジョブ目の読み出しが行われると、第１ＣＰＵコア１５１による読み出しにエラーが発生する。その後わずかな時間差で行われた第２ＣＰＵコア１５２による読み出しによって画像データが正常に読み出されている。そこで第２ＣＰＵコア１５２の画像データが用いられて正常に出力される。このとき出力がわずかに遅れるが、その時間差は、２つのＣＰＵコアにより画像データを読み出す際にかかる時間差と同程度である。このためほとんどの人が気付かないか気にならない程度である。このように本実施形態１では、画像データの読み出しエラーが発生したとしても、従来のようにその時処理されていたジョブが中止されてしまうことなく、ジョブを継続して出力することが可能となるのである。
【００７８】
以上のように本実施形態１では、わずかな時間差をあけて処理を行っている２つのＣＰＵコア１５１および１５２によって画像データの読み出しを行っている。これにより、いずれか一方のＣＰＵコアが、ＲＡＭ１１２や不揮発性メモリー１１３（画像記憶部）からの画像データの読み出しに成功すれば、その画像データを使用して出力することができる。このため一部に異常が発生したとしてもその時処理しているジョブを中止することなく継続することができる。
【００７９】
［実施形態２］
実施形態２は、画像データの読み出しに成功したか否かの統計データを取り、その統計データに基づいて異常終了していない時間差により画像データの読み出しを行うようにしたものである。
【００８０】
本実施形態２においては、画像処理装置１００の機能構成は、実施形態１と同じであるので説明は省略する。ここでは実施形態２の動作を行うための手順を説明する。
【００８１】
図６は実施形態２の処理手順を示すフローチャートである。
【００８２】
本実施形態２においても、まずは実施形態１と同様に、ジョブを受け付けると、複数のＣＰＵコアのうち、ＣＰＵコアが１つ選択される（Ｓ２０１）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【００８３】
選択された第１ＣＰＵコア１５１は、画像データを受信し（Ｓ２０２）、画像データを記憶する（Ｓ２０３）。続いて、第１ＣＰＵコア１５１は、画像データを読み出す（Ｓ２０４）。
【００８４】
その後、本実施形態２では、第１ＣＰＵコア１５１は、統計データ（後述）を参照し、統計データの中から異常終了している時間差以外の時間差となるように第２ＣＰＵコア１５２により画像データの読み出しを行わせる（Ｓ２０５）。ここでの時間差は既に説明したとおり第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差である。ここでも読み出す画像データは第１ＣＰＵコア１５１で読み出したものと同じである。
【００８５】
続いて、第１ＣＰＵコア１５１は、実施形態１同様に、第１ＣＰＵコア１５１が読み出しに成功していれば（Ｓ２０６：ＹＥＳ）、第１ＣＰＵコア１５１が読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４において画像処理を実行させ（Ｓ２０７）、出力させる（Ｓ２０８）。
【００８６】
続いて本実施形態２では、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差と正常終了したか、異常終了したかをひも付けして統計データを取る（Ｓ２１２）。統計データを取る処理については後述する。その後第１ＣＰＵコア１５１は、処理を終了させる。第２ＣＰＵコア１５２で読み出された画像データは使用しないので、終了時に破棄される。
【００８７】
一方、第１ＣＰＵコア１５１による画像データの読み出しに成功していなければ（Ｓ２０６：ＮＯ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２で画像データの読み出しに成功したか否かを判断する（Ｓ２１０）。読み出しに成功していれば（Ｓ２１０：ＹＥＳ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して、読み出した画像データを画像処理部１０４へ転送するように指令し、画像処理部１０４においてその画像データに対して指定された画像処理を実行させる（Ｓ２０７）。以降は、画像データの出力先に応じて画像処理部１０４から出力させる（Ｓ２０８）。
【００８８】
その後本実施形態２では、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差と正常終了したか、異常終了したかをひも付けして統計データを取る（Ｓ２１２）。その後第１ＣＰＵコア１５１は処理を終了する。
【００８９】
Ｓ２１０において、第２ＣＰＵコア１５２でも画像データの読み出しに成功していなければ（Ｓ２１０：ＮＯ）、この処理手順においては第１ＣＰＵコア１５１でも第２ＣＰＵコア１５２でも画像データの読み出し異常が発生したことになるので、異常終了を警告する（Ｓ２１１）。
【００９０】
その後本実施形態２では、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差と正常終了したか、異常終了したかをひも付けして統計データを取る（Ｓ２１２）。
【００９１】
Ｓ２１２の統計データを取る処理について説明する。
【００９２】
統計データを取る処理においては、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差と正常終了したこと、または異常終了したことをひも付けして記憶してゆくことで統計データとしている。統計データの記憶には不揮発性メモリー１１３（記憶部となる）を使用する。
【００９３】
ここで正常終了とは、第１ＣＰＵコア１５１と第２ＣＰＵコア１５２のいずれかから画像データの出力処理が行われた場合である。一方、異常終了は画像データの出力が行われなかった場合である。本実施形態２では、Ｓ２０８のステップが完了していれば正常終了である。一方、Ｓ２１０のステップがＮＯとなると異常終了である。他の実施形態についても同様である。
【００９４】
第１ＣＰＵコア１５１と第２ＣＰＵコア１５２の読み出しの時間差は、既に説明したとおり、画像データごとに異なる。そこで、Ｓ２１２において、時間差と正常終了か異常終了かをひも付けして統計データを取ることで、異常終了の発生頻度が高い時間差を知ることができる。そして、をＳ２０５では、この統計データに基づいて第１ＣＰＵコア１５１からの制御によって、異常終了する可能性の高い時間差を外して第２ＣＰＵコア１５２に対して画像データの読み出しを指示する。これにより、異常終了する可能性の高い時間差を外し、読み出し成功の可能性を高くすることができる。
【００９５】
画像データの読み出しは、第１ＣＰＵコア１５１が読み出しを終えるまで第２ＣＰＵコア１５２での読み出しを行えない。このため時間差をつける制御においては、画像データによっては時間差を短くすることができない。そのような場合には、異常終了となった時間差より長い時間差をつけて画像データの読み出しを行えばよい。もちろん今回処理しているジョブの画像データによっては時間差より短くすることができれば、統計データ中の異常終了の時間差より短い時間差となるようにしてもよい。
【００９６】
なお、統計データは、はじめのうちは処理したジョブの数が少ないので、異常終了した時間差が１つでもあればその時間差を外して第２ＣＰＵコア１５２により読み出しを行う。そしてある程度統計データの数がたまってきたなら、たとえば３σの範囲内などとして異常終了する時間差の範囲を外すようにしてもよい。
【００９７】
このような読み出しの時間差によって異常終了する頻度に差がある理由は定かではない。しかし、経験的に、時間差が短い場合に異常終了し易かったり、逆に時間差が長くなると異常終了しやすかったりする。このため異常終了しやすい時間差を外すことで正常に読み出せる可能性が高くなる。また、周期的な外乱がある場合には、その周期（すなわち時間差）を外すことで正常に読み出せる可能性が高くなる。
【００９８】
以上のように、本実施形態２では、異常終了の発生頻度が高い時間差を外して２回の読み出しを行うようにした。これにより正常に出力できる可能性を高くすることができる。
【００９９】
なお、本実施形態２では、統計データを取るために正常終了と異常終了の両方を時間差をともに記録したが、異常終了のときのみ、時間差をともに記録することでも実施可能である。なぜなら、本実施形態２では異常終了した時間差以外の時間差で画像データの読み出しを行っているため、正常終了時の時間差は利用しなくてもよいからである。
【０１００】
また、本実施形態２においても、第１ＣＰＵコア１５１がこの処理手順全体を実行するように説明したが、実施形態１同様に、第２ＣＰＵコア１５２が実行するようにしてもよい。また、Ｓ２０１で選択されたＣＰＵコアが、その時点でこの処理手順全体を実行するようにしてもよい。
【０１０１】
［実施形態３］
実施形態３は、画像データの読み出しに成功したか否かの統計データを取り、その統計データに基づいて正常終了した時間差により画像データの読み出しを行うようにしたものである。
【０１０２】
本実施形態３においては、画像処理装置１００の機能構成は、実施形態１と同じであるので説明は省略する。ここでは実施形態３の動作を行うための手順を説明する。
【０１０３】
図７は実施形態３の処理手順を示すフローチャートである。
【０１０４】
本実施形態３においても、まずは実施形態１と同様に、ジョブを受け付けると、複数のＣＰＵコアのうち、ＣＰＵコアが１つ選択される（Ｓ３０１）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【０１０５】
選択された第１ＣＰＵコア１５１は、画像データを受信し（Ｓ３０２）、画像データを記憶する（Ｓ３０３）。続いて、第１ＣＰＵコア１５１は、画像データを読み出す（Ｓ３０４）。
【０１０６】
その後、本実施形態３では、第１ＣＰＵコア１５１は、統計データ（実施形態２と同様の統計データである）を参照し、その統計データの中から正常終了している時間差があるか否かを判断する（Ｓ３０５）。正常終了している時間差があれば（Ｓ３０５：ＹＥＳ）、その時間差となるように第２ＣＰＵコア１５２により画像データの読み出しを行わせる（Ｓ３０６）。ここでも読み出す画像データは第１ＣＰＵコア１５１で読み出したものと同じである。
【０１０７】
一方、統計データの中に正常終了している時間差がなければ（Ｓ３０５：ＮＯ）、異常終了している時間差以外の時間差で第２ＣＰＵコア１５２により画像データの読み出しを行わせる（Ｓ３０７）。ここで統計データの中に、異常終了している時間差もない場合は、すなわちどのような時間差であっても、異常終了している時間差以外ということになるので、第２ＣＰＵコア１５２により読み出し可能な時間で画像データの読み出しを行えばよい。
【０１０８】
続いて、第１ＣＰＵコア１５１は、実施形態１同様に、第１ＣＰＵコア１５１が読み出しに成功していれば（Ｓ３０８：ＹＥＳ）、第１ＣＰＵコア１５１が読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４において画像処理を実行させ（Ｓ３０９）、出力させる（Ｓ３１０）。
【０１０９】
続いて本実施形態３では、実施形態２同様に、第１ＣＰＵコア１５１は、時間差と正常終了または異常終了したことをひも付けして記憶して統計データを取る（Ｓ３１３）。その後第１ＣＰＵコア１５１は、処理を終了させる。
【０１１０】
一方、第１ＣＰＵコア１５１による画像データの読み出しに成功していなければ（Ｓ３０８：ＮＯ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２で画像データの読み出しに成功したか否かを判断する（Ｓ３１１）。読み出しに成功していれば（Ｓ３１１：ＹＥＳ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して、読み出した画像データを画像処理部１０４へ転送するように指令し、画像処理部１０４においてその画像データに対して指定された画像処理を実行させ（Ｓ３０９）、画像データの出力先に応じて画像処理部１０４から出力させる（Ｓ３１０）。そして本実施形態２同様に、時間差と正常終了または異常終了したことをひも付けして記憶して統計データを取る（Ｓ３１３）。その後第１ＣＰＵコア１５１は処理を終了する。
【０１１１】
Ｓ３１１において、第２ＣＰＵコア１５２でも画像データの読み出しに成功していなければ（Ｓ３１１：ＮＯ）、この処理手順においては第１ＣＰＵコア１５１でも第２ＣＰＵコア１５２でも画像データの読み出し異常が発生したことになるので、異常終了を警告する（Ｓ３１２）。
【０１１２】
その後本実施形態３では、実施形態２同様に、時間差と正常終了または異常終了をひも付けして記憶し、統計データを取る（Ｓ３１３）。
【０１１３】
以上のように、本実施形態３では、正常終了した時間差となるようにして２回の読み出しを行うようにした。実施形態２において説明したとおり画像データの読み出しにおいては、異常終了する頻度が高い時間差がある。これは逆にいうと正常終了する頻度が高い時間差が存在するということである。そこで、本実施形態３では、その正常終了する時間差を直接的に用いて、画像データの読み出しを行うこととした。これにより正常に出力できる可能性を高くすることができる。
【０１１４】
また本実施形態３においても、第１ＣＰＵコア１５１がこの処理手順全体を実行するように説明したが、実施形態１同様に、第２ＣＰＵコア１５２が実行するようにしてもよい。また、Ｓ３０１で選択されたＣＰＵコアが、その時点でこの処理手順全体を実行するようにしてもよい。
【０１１５】
［実施形態４］
実施形態４は、異常終了した時刻を記録して統計データを取り、一定期間異常終了がない場合には、１つのＣＰＵコアで処理を行うようにしたものである。
【０１１６】
本実施形態４においては、画像処理装置１００の機能構成は、実施形態１と同じであるので説明は省略する。ここでは実施形態４の動作を行うための手順を説明する。
【０１１７】
図８は実施形態４の処理手順を示すフローチャートである。
【０１１８】
本実施形態４においても、まずは実施形態１と同様に、ジョブを受け付けると、複数のＣＰＵコアのうち、ＣＰＵコアが１つ選択される（Ｓ４０１）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【０１１９】
選択された第１ＣＰＵコア１５１は、画像データを受信し（Ｓ４０２）、画像データを記憶する（Ｓ４０３）。
【０１２０】
その後、本実施形態４では、第１ＣＰＵコア１５１は、異常終了時刻の統計データを参照して、異常終了が一定期間発生していないか否かを判断する（Ｓ４０４）。異常終了時刻の統計データとこのＳ４０４の詳細については後述する。ここで、一定期間異常終了していないなら（Ｓ４０４：ＹＥＳ）、第１ＣＰＵコア１５１は、画像データを読み出す（Ｓ４２０）。その後、第１ＣＰＵコア１５１は、そのまま第１ＣＰＵコア１５１が読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４において画像処理を実行させ（Ｓ４０８）、出力させる（Ｓ４０９）。
【０１２１】
続いて本実施形態４では、異常終了した場合の時刻を記憶して統計データを取る処理を行い（Ｓ４１２）、処理を終了させる。
【０１２２】
一方、異常終了が一定期間内に発生している場合（Ｓ４０４：ＮＯ）は、実施形態１同様に第１ＣＰＵコア１５１が画像データを読み出し（Ｓ４０５）、続いて、第２ＣＰＵコア１５２により画像データの読み出しを行わせる（Ｓ４０６）。ここでも読み出す画像データは第１ＣＰＵコア１５１で読み出したものと同じである。
【０１２３】
このＳ４０４のステップについて説明する。たとえば前々回の処理まで一定期間異常終了がなく１つのＣＰＵコアによって画像データの読み出しをしていたとしても、前回の処理が異常終了した場合、このＳ４０４のステップによって異常終了が一定期間内に発生したものと判断される。このため、その後の処理手順は、２つのＣＰＵコアによる読み出しに戻ることになる。
【０１２４】
続いて、第１ＣＰＵコア１５１は、実施形態１同様に、第１ＣＰＵコア１５１が読み出しに成功していれば（Ｓ４０７：ＹＥＳ）、第１ＣＰＵコア１５１が読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４において画像処理を実行させ（Ｓ４０８）、出力させる（Ｓ４０９）。その後本実施形態４では、異常終了した場合の時刻を記憶して統計データを取る処理を行い（Ｓ４１２）、処理を終了させる。
【０１２５】
一方、第１ＣＰＵコア１５１による画像データの読み出しに成功していなければ（Ｓ４０７：ＮＯ）、実施形態１同様に第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２で画像データの読み出しに成功したか否かを判断する（Ｓ４１０）。読み出しに成功していれば（Ｓ４１０：ＹＥＳ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して、読み出した画像データを画像処理部１０４へ転送して画像処理を実行させ（Ｓ４０８）、出力させる（Ｓ４０９）。その後本実施形態４では、異常終了した場合の時刻を記憶して統計データを取る処理を行い（Ｓ４１２）、処理を終了させる。
【０１２６】
Ｓ４１０において、第２ＣＰＵコア１５２でも画像データの読み出しに成功していなければ（Ｓ４１０：ＮＯ）、この処理手順においては第１ＣＰＵコア１５１でも第２ＣＰＵコア１５２でも画像データの読み出し異常が発生したことになるので、異常終了を警告する（Ｓ４１１）。その後本実施形態４では、異常終了した場合の時刻を記憶して統計データを取る処理を行い（Ｓ４１２）、処理を終了させる。
【０１２７】
ここでＳ４１２の異常終了時刻の統計データを取る処理について説明する。
【０１２８】
異常終了時刻の統計データを取るために、本実施形態４では、異常終了が発生した時刻を記憶する。統計データの記憶には不揮発性メモリーを使用する。そして、Ｓ４０４において、一番最後に異常終了として記録されている時刻と現在時刻（Ｓ４０４のステップに入った時刻）の差を算出し、この時刻差が、あらかじめ決めた一定期間以上であれば、Ｓ４０４において一定期間異常終了していないものと判断する（すなわちＳ４０４：ＹＥＳとなる）。
【０１２９】
以上のように、本実施形態４では、一定期間異常終了が発生していない場合は、１つのＣＰＵコアによって画像の読み出しやその後の処理を実行することとした。一定期間異常終了が発生していないということは、今後も異常発生の可能性が低いということである。そのような場合には一つのＣＰＵコアだけでその時のジョブを処理する方が、もう一つのＣＰＵコアでは別な作業をすることができ、ＣＰＵ資源の効率的な運用を図ることができる。しかも、一定期間異常終了があるか否かを判断しているので、異常が多く発生している場合には、実施形態１同様に、異常発生時においてもジョブを停止することなく処理することができる。
【０１３０】
ここで本実施形態４の一定期間は、装置の使用頻度や、画像記憶部として使用する不揮発性メモリーのグレードや耐久性などにもよるが、たとえば、２、３日程度である。これは不揮発性メモリーとしてＨＤＤやＳＳＤを使用した場合、徐々に劣化して読み出し異常が起き始めると異常発生頻度が高くなるので、複数ＣＰＵコアで読み出しを行う方がよい。しかし経験的に２、３日も異常が発生しなければそれは一時的な外乱による場合がほとんどである。そこでこのような期間を一定期間とすることが好ましい。この一定期間は任意に決定することができるようにしておいてもよい。
【０１３１】
なお、本実施形態４においても、第１ＣＰＵコア１５１がこの処理手順全体を実行するように説明したが、実施形態１同様に、第２ＣＰＵコア１５２が実行するようにしてもよい。また、Ｓ４０１で選択されたＣＰＵコアが、その時点でこの処理手順全体を実行するようにしてもよい。
【０１３２】
［実施形態５］
実施形態５は、画像データの読み出しが正常となったＣＰＵコアの数、異常となったＣＰＵコアの数、および異常終了した時刻を記録して統計データを取り、その結果に応じて、画像データの読み出しを行うＣＰＵコアの数を変えるようにしたものである。
【０１３３】
図９は本実施形態５における画像処理装置の構成を示すブロック図である。ＣＰＵ１０１を除く構成は実施形態１と同じである。したがって、ＣＰＵ１０１以外の説明は省略する。
【０１３４】
本実施形態５においてＣＰＵ１０１は、ｎ個のＣＰＵコアを有する。第１〜第ｎＣＰＵコア１５１〜１５ｎはそれぞれ独立して処理を行うことができる。
【０１３５】
図１０は実施形態５の処理手順を示すフローチャートである。
【０１３６】
本実施形態５においても、まずは実施形態１と同様に、ジョブを受け付けると、複数のＣＰＵコアのうち、ＣＰＵコアが１つ選択される（Ｓ５０１）。ここでは、第１ＣＰＵコア１５１が選択されたものとして説明を続ける。
【０１３７】
選択された第１ＣＰＵコア１５１は、画像データを受信し（Ｓ５０２）、画像データを記憶する（Ｓ５０３）。
【０１３８】
その後、本実施形態５では、第１ＣＰＵコア１５１は、第２統計データ（後述）を参照して、画像データの読み出しを行うＣＰＵコア数ｍを決定する（Ｓ５０４）。ここで決定されるＣＰＵコア数ｍは搭載されているＣＰＵコア数ｎ以下である。
【０１３９】
続いて、第１ＣＰＵコア１５１は、自身が画像データを読み出し（Ｓ５０６）、その後第１ＣＰＵコア１５１は、Ｓ５０４で決定された読み出しに使用するＣＰＵコア数ｍに応じて第２ＣＰＵコア１５２から第ｍＣＰＵコアまで順に、画像データを読み出させる（Ｓ５０５）。ここでも第１ＣＰＵコア１５１から第ｍＣＰＵコアは、それぞれが独立して画像データの読み出し処理を実行する。読み出す画像データは第１ＣＰＵコア１５１から第ｍＣＰＵコアまで同じである。
【０１４０】
続いて、第１ＣＰＵコア１５１は、第１ＣＰＵコア１５１が読み出しに成功していれば（Ｓ５０６：ＹＥＳ）、第１ＣＰＵコア１５１が読み出した画像データを画像処理部１０４へ転送して、画像処理部１０４において画像処理を実行させ（Ｓ５０７）、出力させる（Ｓ５０８）。その後本実施形態５では、読み出しが正常なＣＰＵコア数および異常なＣＰＵコア数を記録するとともに、異常終了した場合の時刻を記憶して第１統計データを取る（Ｓ５０９）。
【０１４１】
その後、第１統計データを基に正常終了が一定期間続いたら読み出しを行うＣＰＵコア数ｍを減らし、異常終了が発生したら読み出しを行うＣＰＵコア数ｍを増やすようにするための第２統計データを取る（Ｓ５１０）。第１ＣＰＵコア１５１は、その後処理を終了させる。
【０１４２】
一方、第１ＣＰＵコア１５１による画像データの読み出しに成功していなければ（Ｓ５０６：ＮＯ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２で画像データの読み出しに成功したか否かを判断する（Ｓ５２１）。読み出しに成功していれば（Ｓ５２１：ＹＥＳ）、第１ＣＰＵコア１５１は、第２ＣＰＵコア１５２に対して、読み出した画像データを画像処理部１０４へ転送して画像処理を実行させ（Ｓ５０７）、画像データを出力させ（Ｓ５０８）、第１統計データを取り（Ｓ５０９）、第２統計データを取る（Ｓ５１０）。第１ＣＰＵコア１５１は、その後処理を終了させる。
【０１４３】
さらに、第２ＣＰＵコア１５２でも画像データの読み出しに成功していなければ（Ｓ５２１：ＮＯ）、以降、画像読み出しを行っている第ｍＣＰＵコア数まで読み出しに成功しているか否かを判断（Ｓ５２ｍ）してゆくことになる。Ｓ５２ｍの判断の結果、読み出しに成功していれば（Ｓ５２ｍ：ＹＥＳ）、第１ＣＰＵコア１５１は、画像データの読み出しに成功したＣＰＵコアに対して、読み出した画像データを画像処理部１０４へ転送して画像処理を実行させ（Ｓ５０７）、画像データを出力させ（Ｓ５０８）、第１統計データを取り（Ｓ５０９）、第２統計データを取る（Ｓ５１０）。その後処理を終了させる。
【０１４４】
Ｓ２５ｍにおいて、第ｍＣＰＵコア１５ｍでも画像データの読み出しに成功していなければ（Ｓ５２ｍ：ＮＯ）、使用することに決めたＣＰＵコア数ｍでは、すべて画像データの読み出しに異常が発生したことになる。このため異常終了を警告する（Ｓ５３０）。その後第１統計データ（Ｓ５０９）、および第２統計データを取って（Ｓ５１０）、処理を終了させる。
【０１４５】
第１統計データについて説明する。第１統計データは、読み出しに成功したＣＰＵコア数と失敗したコア数を記録しさらに、最終的に異常終了した時刻を記録して統計データを取る処理である。この第１統計データは不揮発性メモリーに記憶する。具体的には、画像データの読み出しを行ったＣＰＵコア数がｍ＝５であるとき、たとえば第３ＣＰＵコアで読み出しに成功したのであれば、第１ＣＰＵコア、第２ＣＰＵコアは読み出しに失敗したということである。この場合、読み出し異常のコア数２個が記録される。また正常のコア数は第３ＣＰＵコアで読み出しに成功したのであれば、その段階で、画像データの出力まで行ってしまうため、読み出し正常なＣＰＵコアは１個と記録されることになる。既に説明したとおり、複数のＣＰＵコアによる読み出しではＣＰＵコア間で読み出しに時間差が生じる。このため成功したＣＰＵコアがあれば、それを判断した時点で読み出しに成功したＣＰＵコアで読み出した画像データを使用する方が、出力されるまでの時間を早くすることができる。しかしこれに限らず、正常、異常を出力動作とは別に記録して統計データを取るようにしてもよい。
【０１４６】
次に第２統計データについて説明する。第２統計データは、第１統計データを基に正常終了が一定期間続いたらコア数ｍを減らし、異常終了が発生したらコア数ｍを増やすようにするための統計データを取る処理である。この第２統計データも不揮発性メモリーに記憶する。
【０１４７】
第１統計データは異常終了した時刻を記憶している。このため記録されている最後の異常終了から現在時刻（Ｓ５１０のステップに入った時刻）までの時間が一定期間以上であれば、読み出しに使用するＣＰＵコア数を減らし、異常終了が発生したならＣＰＵコア数を増やすようにする。このときのＣＰＵコア数の増減を記録して統計データとするのである。具体的には、画像データの読み出しを行ったＣＰＵコア数がｍ＝５であるとき、たとえば第３ＣＰＵコアで読み出しに成功した時間が一定期間以上となれば、３つのＣＰＵコアがあれば正常出力を継続させることができる可能性が高いということである。そこで使用するＣＰＵコア数を減らしてｍ＝３を第２統計データとして記録するのである。逆に、ｍ＝３で読み出しを行っていたところ、異常終了が記録されると、使用するＣＰＵコアの数を増やし、ｍ＝４を第２統計データとして記録するのである。なお、異常終了した場合に増加させるＣＰＵコアの数は、１つではなく、一気に最大ＣＰＵコア数ｎまで増やしてもよい。これにより、その後の処理において異常終了する可能性をいっそう少なくすることができる。
【０１４８】
第１統計データも第２統計データもはじめのうちはデータ数が少ないため、あらかじめ決められた時間およびＣＰＵコア数とするが、画像処理装置が使用されてくるにつれて、データ数が増えてくる。そのようになれば、第１統計データを用いた第２統計データにおり、正常終了のより可能性の高いＣＰＵコア数が得られてくるようになる。
【０１４９】
ここで本実施形態５の一定期間は、装置の使用頻度や、画像記憶部として使用する不揮発性メモリーのグレードや耐久性などにもよるが、たとえば、１日程度である。すなわち、実施形態４よりも短くてよい。これは異常終了時には、使用するＣＰＵコアの数を増加させることができるため、期間を短くして、臨機応変対応できるためである。もちろん本実施形態５でも一定期間は任意に決定することができるようにしておいてもよい。
【０１５０】
以上のように、本実施形態５では、一定期間異常終了が発生していない場合は、読み出しに使用するＣＰＵコア数を減らし、逆に異常終了が発生したならＣＰＵコア数を増やすこととした。これによりＣＰＵ資源の効率的な運用を図ることができるとともに、異常終了の次の処理からは異常終了しにくくすることができる。
【０１５１】
なお、本実施形態５においても、第１ＣＰＵコア１５１がこの処理手順全体を実行するように説明したが、実施形態１同様に、第２ＣＰＵコア１５２が実行するようにしてもよい。また、Ｓ５０１で選択されたＣＰＵコアが、その時点でこの処理手順全体を実行するようにしてもよい。
【０１５２】
［実施形態５の変形例］
上述した実施形態５は、Ｓ５２ｍのステップで異常があれば、警告を行った後、第１および第２統計データを取ってそのまま処理を終了している。このとき読み出しに使用するＣＰＵコア数ｍが搭載しているＣＰＵコア数ｎより少ない場合がある。本変形例はこのような場合に即座に使用するＣＰＵコア数を増やしてもう一度読み出しを行うこととしたものである。
【０１５３】
画像処理装置１００の構成は実施形態５と同じであるので説明は省略する。
【０１５４】
図１１は、実施形態５の変形例の処理手順を示すフローチャートである。この処理手順においても、実施形態５におけるＳ５０１から５２ｍまでのステップは同じ処理であるので、ここでは、実施形態５と異なる処理のみ説明する。
【０１５５】
実施形態５の変形例では、第ｍＣＰＵコア１５ｍでも画像データの読み出しに成功していなければ（Ｓ５２ｍ：ＮＯ）、続いて第１ＣＰＵコア１５１は、この時点で使用しているＣＰＵコア数ｍと装置に搭載しているＣＰＵコア数ｎを比較して（Ｓ５３１）、ｍがｎ未満であれば（ｍ＜ｎを満たす。Ｓ５３１：ＹＥＳ）、一気に使用するＣＰＵコア数ｍをｎとする（Ｓ５３３）。そして、Ｓ５０４へ処理を戻し、以降の処理を継続するのである。一方、Ｓ５３１でｍ＝ｎであれば（Ｓ５３１：ＮＯ）、既に最大ＣＰＵコア数での読み出しを行っても異常が発生したということになるので、異常終了の警告を行って（Ｓ５３２）、第１および第２統計データを取り（Ｓ５０９、Ｓ５１０）、処理を終了する。
【０１５６】
以上のように、本実施形態５の変形例では、ＣＳ５３３からＳ５０４へ処理を戻した段階で使用するＣＰＵコア数ｍは、装置に搭載されている最大のＣＰＵコア数ｎとなる。したがって、この段階では、使用可能な最大のＣＰＵコアの数で、再度画像データの読み出しを行うことができる。これにより読み出しに使用するＣＰＵコアの数が少ない段階で異常終了させてしまうことなく、できるだけ処理を継続し、最終的に出力できる可能性をより高くすることができる。
【０１５７】
なお、この変形例においても、第１および第２統計データを取る処理が行われるので、Ｓ５３３で使用するＣＰＵコア数ｍを搭載しているＣＰＵコア数ｎと同じにしたのち、正常な状態が継続すれば、使用するコア数ｍは少なくなってゆく。
【０１５８】
［実施形態６］
実施形態６は、プリンターサーバーが複数の画像形成装置を管理し画像形成を行わせている画像処理システムである。
【０１５９】
図１２は実施形態６における画像処理システムを示すブロック図である。
【０１６０】
本実施形態６における画像処理システム２００は、図１２に示すように、ネットワーク２０５に接続されたプリンターサーバー２１１と、複数のＭＦＰ２１１〜２１４と、を含む。またネットワーク２０５には、複数のパソコンなど（ＰＣ（ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ））２３１、２３２などが接続されている。ＰＣはたとえば有線接続である。また、たとえばネットワーク２０５にはアクセスポイント２３４が接続されていて、このアクセスポイント２３４を介した無線接続により携帯情報端末２３３が接続されている。
【０１６１】
そして、プリンターサーバー２０１は、複数のＣＰＵ２０２および２０３を搭載したマルチＣＰＵ構成である。またプリンターサーバー２０１は、画像データを記憶するための不揮発性メモリー２０４を備える。不揮発性メモリー２０４は画像記憶部であり、たとえばＨＤＤやＳＳＤなどである。なお、プリンターサーバー２０１はそのほか一般的なプリンターサーバーが備えている機能（たとえば、ネットワーク接続機能や、ラスタライズ、拡大縮小、圧縮、伸張などの画像処理機能など）を有するが、それらは周知のものであるので説明は省略する。
【０１６２】
ＭＦＰ２１１〜２１４は画像形成機能を有し、ここではプリンターサーバー２０１から送信されてきた画像データを印刷する画像形成装置となる。
【０１６３】
このような画像処理システムにおいては、プリンターサーバー２０１がジョブの処理を実行する。このためプリンターサーバー２０１は、外部装置（ここではＰＣ２３１および２３２、携帯情報端末２３３）から受信したジョブおよびそれに含まれている画像データをプリンターサーバー２０１内の不揮発性メモリー２０４に記憶する。またプリンターサーバー２０１は、ＭＦＰ２１１〜２１４の画像読み取り機能によって読み取られた画像データを受信して不揮発性メモリー２０４に記憶することもある。
【０１６４】
そしてプリンターサーバー２０１はジョブによる指定または空いているＭＦＰ２１１〜２１４を選択して、画像データを出力させる。
【０１６５】
このようなプリンターサーバー２０１に、既に説明した実施形態１〜５、および実施形態５の変形例の処理手順を実行させることで、各実施形態で説明した動作を行うことができる。
【０１６６】
このように本実施形態６によれば、ネットワークに接続されて複数のＭＦＰ２１１〜２１４を制御し、画像形成させるプリンターサーバー２０１においても、画像データの読み出しに異常があった場合でも、できる限り処理を継続して出力することが可能になる。
【０１６７】
なお、本実施形態６においてはプリンターサーバー２０１が４台のＭＦＰ２１１〜２１４にネットワークを介して接続している形態と例示したが、プリンターサーバー２０１が制御するＭＦＰの台数は、何台でもよい。また、ＭＦＰに限らず、単純なプリンター（画像読み取り機能のない画像形成装置）が接続されている形態でもよい。
【０１６８】
以上実施形態を説明したが、本発明はこれら実施形態に限定されるものではない。特に、各実施形態において説明した手順を様々に組み合わせて実行することもできる。
【０１６９】
また、実施形態１〜５、および実施形態５の変形例における画像処理装置の構成としてＣＰＵコアが複数あるものとし、実施形態６のプリンターサーバーにはＣＰＵが複数あるものとして例示した。しかし本発明はこのような構成に限らず、複数の処理を独立して処理することが可能な複数のプロセッサを備えた構成であればどのようなものであってもよい。たとえば、マルチコアＣＰＵを複数搭載した構成でもよい。この場合、複数のＣＰＵ内のＣＰＵコアがそれぞれ独立して処理を実行する。またＣＰＵが１つと１つまたは複数のＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を搭載したで構成あってもよい。この場合、ＧＰＵがＣＰＵとは独立した処理を行うプロセッサとなり、各実施形態で説明した処理手順全体はＣＰＵが実行し、その中で第２ＣＰＵコア（実施形態５においては第ｎＣＰＵコアまで）が行う画像データの読み出しと成功した場合の画像処理部への出力をＧＰＵに実行させるようにしてもよい。
【０１７０】
また、実施形態１〜４における画像処理装置の構成としてＣＰＵコアが２つ搭載されている例を示しているが、これらの実施形態においてもさらに多くのＣＰＵコアを搭載していてもよい。その場合、実施形態１〜４では、すべてのＣＰＵコアで画像データを読み出すようにしてもよいし、搭載されている複数のＣＰＵコアのうち、少なくとも２つを使用するようにしてもよい。
【０１７１】
また、実施形態では、画像処理専用の画像処理部を有することとしたが、専用の画像処理部を持たず、ＣＰＵが画像処理を行うような構成であってもよい。その場合、画像データの読み出しに成功したＣＰＵコアが引き続き、画像処理を行って出力先へ画像データを出力する。
【０１７２】
そのほか、本発明は、特許請求の範囲に記載された内容によって規定されるものであり、様々な変形形態が可能である。
【符号の説明】
【０１７３】
１００  画像処理装置、
１０１  ＣＰＵ、
１０２  表示部、
１０３  操作部、
１０４  画像処理部、
１０５  通信制御部、
１０６  電源制御部、
１０７  モデム、
１０９  読取部、
１１０  プリントエンジン、
１１１  ＲＯＭ、
１１２  ＲＡＭ、
１１３  不揮発性メモリー、
１１４  ネットワーク通信部、
１１５  外部端末通信部、
１１６  ユーザー認証処理部、
１２０  バス、
１５１  第１ＣＰＵコア、
１５２  第２ＣＰＵコア、
１５ｎ  第ｎＣＰＵコア、
２００  画像処理システム、
２０１  プリンターサーバー、
２０２  プリンターサーバーの第１ＣＰＵ、
２０３  プリンターサーバーの第２ＣＰＵ、
２０４  プリンターサーバーの不揮発性メモリー。
【図１】
0006515579.tif 000002
【図２】
0006515579.tif 000003
【図３】
0006515579.tif 000004
【図４】
0006515579.tif 000005
【図５】
0006515579.tif 000006
【図６】
0006515579.tif 000007
【図７】
0006515579.tif 000008
【図８】
0006515579.tif 000009
【図９】
0006515579.tif 000010
【図１０】
0006515579.tif 000011
【図１１】
0006515579.tif 000012
【図１２】
0006515579.tif 000013