(57)【要約】【課題】  あるプロセッサに、負荷監視及び負荷バランスを修正するタスクを追加すると、複数のプロセッサで構成される画像処理装置のシステム全体としての処理能力を低下させてしまう。【解決手段】  プロセッサＤは、処理対象のデータを供給する前段キューが処理データを含まない場合に、プロセッサＤの動作モードを、プロセッサＤ以外のプロセッサＡに割り当てられた処理の一部を代替して実行する補助モードに切替え、プロセッサＡに割り当てられている処理の一部の処理要求を、そのプロセッサＡに対して行う。こうしてプロセッサＡに割り当てられている処理の一部を、プロセッサＤに実行させるための情報が通知されると、プロセッサＤは、その通知された情報に従って、プロセッサＡに割り当てられている処理の一部を代替して実行する。【選択図】  図６
2008276407.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１プロセッサ及び第２プロセッサを含む複数のプロセッサを有し、画像データに対して複数種別の画像処理を実行する画像処理装置であって、
前記第１プロセッサは、
前記第１プロセッサに処理対象のデータを供給する第１データ格納部、及び前記第１プロセッサの処理済データを格納する第２データ格納部の格納状態を検知して前記第１プロセッサが待ち状態か否かを判定する判定手段と、
前記判定手段による判定結果に従って、前記第１プロセッサの動作モードを、前記第１プロセッサに割り当てられた種別の画像処理を行う通常モードと、前記第１プロセッサとは異なる他のプロセッサに割り当てられた種別の画像処理の一部を代替して実行する補助モードとの間で切り替える動作モード切替手段と、
前記動作モード切替手段により前記第１プロセッサの動作モードが前記第２プロセッサを補助する補助モードに切り替えられると、前記第２プロセッサに割り当てられている種別の画像処理の一部を実行する旨の処理要求を前記第２プロセッサに対して行う処理要求手段とを有し、
前記第２プロセッサは、
前記処理要求手段による前記第１プロセッサからの処理要求に対して、前記第２プロセッサに割り当てられている種別の画像処理の一部を前記第１プロセッサに実行させるための情報を前記第１プロセッサに通知する通知手段を有し、
前記第１プロセッサは、前記通知手段により通知された前記情報に従って、前記第２プロセッサに割り当てられている種別の画像処理の一部を代替して実行することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の格納状態がフル状態かエンプティ状態であるかに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替手段は、前記第２データ格納部の格納状態がフル状態であるか、又は、前記第１データ格納部がエンプティ状態である場合に、前記第１プロセッサを前記通常モードから前記補助モードに切り替えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記判定手段は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部に格納されたデータのデータ量が予め定められた閾値を超えているか否かに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替手段は、前記第２データ格納部に格納されたデータのデータ量が閾値を越えているか、又は、前記第１データ格納部に格納されたデータのデータ量が閾値を越えていない場合に、前記第１プロセッサを前記通常モードから前記補助モードに切り替えることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記第１プロセッサは、前記第２プロセッサに割り当てられている種別の画像処理の一部を代替実行した後に、前記判定手段によって再び前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の格納状態を検知して前記第１プロセッサが待ち状態か否かを判定し、
前記判定手段の判定結果に従って、前記第１プロセッサが前記第２プロセッサに割り当てられている種別の画像処理の一部の代替実行した後に、前記第１プロセッサに割り当てられた種別の画像処理を実行することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記判定手段は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の格納状態がフル状態かエンプティ状態であるかに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替手段は、前記第２データ格納部の格納状態がフル状態でなく、かつ、前記第１データ格納部の格納状態がエンプティ状態でない場合に、前記第１プロセッサが前記通常モードから前記補助モードに復帰することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記判定手段は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部に格納されたデータのデータ量が予め定められた閾値を超えているか否かに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替手段は、前記第２データ格納部に格納されたデータのデータ量が閾値を越えていなくて、かつ、前記第１データ格納部に格納されたデータのデータ量が閾値を越えている場合に前記第１プロセッサが前記補助モードから前記通常モードに復帰することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
少なくとも第１プロセッサ及び第２プロセッサを含む複数のプロセッサを有し、画像データに対して複数種別の画像処理を実行する画像処理装置の画像処理方法であって、
前記第１プロセッサに処理対象のデータを供給する第１データ格納部、及び前記第１プロセッサの処理済データを格納する第２データ格納部の格納状態を検知して前記第１プロセッサが待ち状態か否かを判定する判定工程と、
前記判定工程による判定結果に従って、前記第１プロセッサの動作モードを、前記第１プロセッサに割り当てられた種別の画像処理を行う通常モードと、第２プロセッサに割り当てられた種別の画像処理の一部を代替して実行する補助モードとの間で切り替える動作モード切替工程と、
前記動作モード切替工程により前記第１プロセッサが前記第２プロセッサを補助する補助モードに切り替えられると、前記第２プロセッサに割り当てられている種別の画像処理の一部を実行する旨の処理要求を前記第２プロセッサに対して行う処理要求工程と、
前記処理要求工程による前記第１プロセッサからの処理要求に対して、前記第２プロセッサに割り当てられている種別の画像処理の一部を前記第１プロセッサに実行させるための情報を、前記第２プロセッサから前記第１プロセッサに通知する通知工程とを有し、
前記第１プロセッサは、前記通知工程で通知された前記情報に従って、前記第２プロセッサに割り当てられている種別の画像処理の一部を代替して実行することを特徴とする画像処理方法。
【請求項８】
前記判定工程は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の格納状態がフル状態かエンプティ状態であるかに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替工程は、前記第２データ格納部の格納状態がフル状態であるか、又は、前記第１データ格納部がエンプティ状態である場合に、前記第１プロセッサを前記通常モードから前記補助モードに切り替えることを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記判定工程は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部に格納されたデータのデータ量が予め定められた閾値を超えているか否かに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替工程は、前記第２データ格納部に格納されたデータのデータ量が閾値を越えているか、又は、前記第１データ格納部に格納されたデータのデータ量が閾値を越えていない場合に、前記第１プロセッサを前記通常モードから前記補助モードに切り替えることを特徴とする請求項７に記載の画像処理方法。
【請求項１０】
前記第１プロセッサは、前記第２プロセッサに割り当てられている種別の画像処理の一部を代替実行した後に、前記判定工程によって再び前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の状態を検知して前記第１プロセッサが待ち状態か否かを判定し、
前記判定工程の判定結果に従って、前記第１プロセッサが前記第２プロセッサに割り当てられている種別の画像処理の一部の代替実行した後に、前記第１プロセッサに割り当てられた種別の画像処理を実行することを特徴とする請求項７乃至９のいずれか１項に記載の画像処理方法。
【請求項１１】
前記判定工程は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部の格納状態がフル状態かエンプティ状態であるかに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替工程は、前記第２データ格納部の格納状態がフル状態でなく、かつ、前記第１データ格納部の格納状態がエンプティ状態でない場合に、前記第１プロセッサが前記通常モードから前記補助モードに復帰することを特徴とする請求項１０に記載の画像処理方法。
【請求項１２】
前記判定工程は、前記第１プロセッサの前記第１データ格納部及び前記第２データ格納部に格納されたデータのデータ量が予め定められた閾値を超えているか否かに基づいて前記第１プロセッサが待ち状態か否かを判定し、
前記動作モード切替工程は、前記第２データ格納部に格納されたデータのデータ量が閾値を越えていなくて、かつ、前記第１データ格納部に格納されたデータのデータ量が閾値を越えている場合に前記第１プロセッサが前記補助モードから前記通常モードに復帰することを特徴とする請求項１０に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサを使用し、供給されるデータに対して複数種別の画像処理を施す画像処理装置及びその方法に関するものである。
【背景技術】
【０００２】
ＰＤＬで記述されたＰＤＬデータを入力し、そのＰＤＬデータに基づいてラスタ画像を生成するプリンタ等の画像処理装置が知られている。このような画像処理装置では、入力したＰＤＬデータを解析し、その後レンダリング処理を行うという２つの手順を実施している。このレンダリング処理の代表的なアルゴリズムには、ペインタアルゴリズム、スキャンラインアルゴリズム等があり、従来の画像処理装置では、これらアルゴリズムを実装したハードウェアもしくはソフトウェアにより画像処理を行っていた。近年では、画像処理装置のレンダリング処理を、複数のプロセッサを搭載したソフトウェアデバイスで実現する案が提案されている。
【０００３】
ＰＤＬデータをレンダリング処理してラスタ画像を生成する場合、ＰＤＬデータで記述されているオブジェクトのエッジ検出やオブジェクトの重なりの判定や彩色等の処理が必要となる。従って、この装置では、ＰＤＬ画像のエッジをトラッキングするエッジ検出ＰＤＬコマンド処理部、エッジ検出ＰＤＬコマンド処理部から出力されたオブジェクト間の重なりを判定し、可視オブジェクトを決定するレベル判定ＰＤＬコマンド処理部を有している。更に、レベル判定処理部からの起動信号を受信して色生成を開始する色生成ＰＤＬコマンド処理部、イメージデータを処理するイメージデータＰＤＬコマンド処理部、更には色合成ＰＤＬコマンド処理部によってＰＤＬ言語処理を実現している。
【０００４】
ここで、ＰＤＬ言語処理を複数のプロセッサで実行する場合には、ＰＤＬデータの内容によって、エッジ検出ＰＤＬコマンド処理を行うプロセッサの処理負荷が重くなり、一方で色合成ＰＤＬコマンド処理を行うプロセッサの処理負荷が軽くなることがある。このように、各処理を担当しているプロセッサの処理負荷の偏りが生じることがある。
【０００５】
前述した各処理を行うプロセッサでの処理負荷の偏りは、ＰＤＬ言語処理に限るものではなく、複数のプロセッサを用いて印刷データをラスタ画像に変換するまでの一連の画像処理について一般的に当てはまる。このように複数のプロセッサの間で画像処理の負荷分散の仕組みを備える画像処理装置が提案されている。
【０００６】
例えば、特許文献１によれば、複数のプロセッサを直列に結合し、所定のプロセッサで幾何演算処理を実行するパイプライン構造の図形処理装置が記載されている。それによれば、複数のプロセッサの負荷状況を判定し、負荷状況が高負荷であると判定した場合は、通常は幾何演算処理を行わないプロセッサが、所定のプロセッサで実行される幾何演算処理の一部を代替実行することが記載されている。
【０００７】
また特許文献２には、複数のプロセッサで複数種別の画像処理を順番に実行する画像処理装置において、各プロセッサは、汎用命令演算部に加えて固有の専用演算命令部を備えている。そして、通常の処理時には、専用命令と汎用命令で記述された第１のプログラムを実行し、負荷バランスによって決められた補助処理時には、汎用命令で記述された第２のプログラムを実行することが記載されている。
【特許文献１】特開２０００−３５３１５２号公報
【特許文献２】特開２００６−１３３８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながらこれら特許文献１，２では、複数のプロセッサの内、あるプロセッサが、全てのプロセッサの負荷を周期的に監視して見積り、負荷バランスを修正するタスクを実行しなければならない。その上、システム全体の性能を向上させるためにプロセッサの総数を増やすと、負荷分散のためのタスクの処理負荷も増大してしまう。つまり、この負荷監視及び負荷バランスを修正するタスクを追加すると、複数のプロセッサで構成される画像処理装置のシステム全体としての処理能力を低下させてしまうという問題があった。
【０００９】
本発明の目的は、上記従来技術の問題点を解決することにある。
【００１０】
本発明の特徴は、複数のプロセッサの負荷状況に応じて、負荷の軽くなっているプロセッサが負荷の重くなっているプロセッサの補助処理を実行可能にする画像処理装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
少なくとも第１プロセッサ及び第２プロセッサを含む複数のプロセッサを有し、画像データに対して複数種別の画像処理を実行する画像処理装置であって、
前記第１プロセッサは、
前記第１プロセッサに処理対象のデータを供給する第１データ格納部、及び前記第１プロセッサの処理済データを格納する第２データ格納部の格納状態を検知して前記第１プロセッサが待ち状態か否かを判定する判定手段と、
前記判定手段による判定結果に従って、前記第１プロセッサの動作モードを、前記第１プロセッサに割り当てられた種別の画像処理を行う通常モードと、前記第１プロセッサとは異なる他のプロセッサに割り当てられた種別の画像処理の一部を代替して実行する補助モードとの間で切り替える動作モード切替手段と、
前記動作モード切替手段により前記第１プロセッサの動作モードが前記第２プロセッサを補助する補助モードに切り替えられると、前記第２プロセッサに割り当てられている種別の画像処理の一部を実行する旨の処理要求を前記第２プロセッサに対して行う処理要求手段とを有し、
前記第２プロセッサは、
前記処理要求手段による前記第１プロセッサからの処理要求に対して、前記第２プロセッサに割り当てられている種別の画像処理の一部を前記第１プロセッサに実行させるための情報を前記第１プロセッサに通知する通知手段を有し、
前記第１プロセッサは、前記通知手段により通知された前記情報に従って、前記第２プロセッサに割り当てられている処理の一部を代替して実行することを特徴とする。
【００１２】
上記目的を達成するために本発明の一態様に係る画像処理方法は以下のような工程を備える。即ち、
少なくとも第１プロセッサ及び第２プロセッサを含む複数のプロセッサを有し、画像データに対して複数種別の画像処理を実行する画像処理装置の画像処理方法であって、
前記第１プロセッサに処理対象のデータを供給する第１データ格納部、及び前記第１プロセッサの処理済データを格納する第２データ格納部の格納状態を検知して前記第１プロセッサが待ち状態か否かを判定する判定工程と、
前記判定工程による判定結果に従って、前記第１プロセッサの動作モードを、前記第１プロセッサに割り当てられた種別の画像処理を行う通常モードと、第２プロセッサに割り当てられた種別の画像処理の一部を代替して実行する補助モードとの間で切り替える動作モード切替工程と、
前記動作モード切替工程により前記第１プロセッサが前記第２プロセッサを補助する補助モードに切り替えられると、前記第２プロセッサに割り当てられている種別の画像処理の一部を実行する旨の処理要求を前記第２プロセッサに対して行う処理要求工程と、
前記処理要求工程による前記第１プロセッサからの処理要求に対して、前記第２プロセッサに割り当てられている種別の画像処理の一部を前記第１プロセッサに実行させるための情報を、前記第２プロセッサから前記第１プロセッサに通知する通知工程とを有し、
前記第１プロセッサは、前記通知工程で通知された前記情報に従って、前記第２プロセッサに割り当てられている種別の画像処理の一部を代替して実行することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数のプロセッサの負荷状況に応じて、負荷の軽くなっているプロセッサが、負荷の重くなっているプロセッサの補助処理を実行可能にする画像処理装置及びその方法を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１５】
［ＲＩＰサブシステム構成］
図１は、本実施の形態に係る多機能処理装置であるＭＦＰ１００の構成を説明するブロック図である。
【００１６】
制御部２０００は、画像情報やデバイス情報の入出力を制御するコントローラである。制御部２０００は、画像入力デバイスであるカラースキャナ２０１５や画像出力デバイスであるカラープリンタ２０１７と接続するとともに、一方で、ＬＡＮ２００８や公衆回線（ＷＡＮ）２０５１と接続する。ＣＰＵ２００１は、このシステム全体を制御するコントローラである。ＲＡＭ２００２は、ＣＰＵ２００１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムを格納している。ＨＤＤ２００４はハードディスクドライブで、システムソフトウェアや画像データ等を格納する。操作部Ｉ／Ｆ２００５は、操作部（ＵＩ）２００６とのインタフェース部で、操作部２００６に表示する画像データを操作部２００６に対して出力する。また操作部２００６で入力された情報をＣＰＵ２００１に伝える役割をする。ネットワークＩ／Ｆ２００７は、ＬＡＮ２００８と接続して情報の入出力を行う。モデム２０５０は公衆回線２０５１と接続し、画像情報の入出力を行う。２値画像回転部２０５２、及び２値画像圧縮・伸張部２０５３は、モデム２０５０を介して２値画像を送信する前に画像の方向を変換したり、所定の解像度或は相手機器の能力に合わせた解像度に変換したりする。この場合の圧縮、伸張は、ＪＢＩＧ，ＭＭＲ，ＭＲ，ＭＨをサポートしている。ＤＭＡＣ２００９はＤＭＡコントローラであり、ＣＰＵ２００１を介することなくＲＡＭ２００２に格納されている画像データを読み取り画像バスＩ／Ｆ２０１１に対して転送する。もしくはＣＰＵ２００１を介することなく画像バスから画像データを入力してＲＡＭ２００２に書き込む。以上のデバイスがシステムバス２０２７に接続される。イメージバスＩ／Ｆ２０１１はイメージバス２０１０を介して高速な画像の入出力を制御するためのインタフェースである。
【００１７】
圧縮器２０１２は、イメージバス２０１０に画像データを送出する前に３２画素×３２画素の単位でＪＰＥＧ圧縮するための圧縮器である。伸張器２０１３は、イメージバス２０１０を介して送られた画像データを伸張するための伸張器である。ラスタイメージプロセッサ（ＲＩＰ）２０１８は、ネットワーク２００８を介してホストコンピュータからのＰＤＬデータを受け取り、システムバス２０２７を介して、ＣＰＵ２００１がＲＡＭ２００２に格納する。この際、ＣＰＵ２００１はＰＤＬデータを中間コードに変換し、再度システムバス２０２７を介してＲＩＰ２０１８に入力してラスタ画像（多値）に展開する。スキャナ画像処理部２０１４は、スキャナ２０１５からのカラー画像データ、白黒画像データに対して、各種画像処理（例えば、補正、加工、編集）を行って出力する（多値）。同様にプリンタ画像処理部２０１６は、プリンタ２０１７に対して各種画像処理（例えば、補正、加工、編集）を行う。プリント時は伸張器２０１３で２値から多値への変換を行うので、２値、及び多値での出力が可能である。
【００１８】
画像変換部２０３０は、ＲＡＭ２００２上にある画像データを画像変換し、再度、ＲＡＭ２００２に書き戻すときに使われる各種画像変換機能を有する。回転器２０１９は、３２画素×３２画素単位の画像データを指定された角度で回転でき、２値、及び多値の入出力に対応している。変倍器２０２０は、画像データの解像度を変換（例えば６００ｄｐｉから２００ｄｐｉ）したり、変倍したりする機能（例えば２５％から４００％まで）を有する。変倍する前には、３２×３２画素の画像データを３２ライン単位の画像データに並び替える。色空間変換器２０２１は、多値で入力された画像データをマトリクス演算やＬＵＴにより、例えばＹＵＶ画像をＬａｂ画像に変換してＲＡＭ２００２に格納する。また、この色空間変換器２０２１は、３×８のマトリクス演算及び、１次元ＬＵＴを備え、公知の下地とばしや裏写り防止を行うことができる。こうして変換された画像データは多値で出力される。２値多値変換器２０２２は、２値画像データを多値８ビット（２５６階調）に変換する。逆に多値２値変換器２０２６は、例えばＲＡＭ２００２の８ビット（２５６階調）の画像データを誤差拡散処理などの手法により２階調の画像データに変換してＲＡＭ２００２に格納する。合成器２０２３は、ＲＡＭ２００２の２枚の多値画像を合成して１枚の多値画像にする機能を有する。例えば、ＲＡＭ２００２の会社ロゴの画像データと原稿画像データとを合成して、原稿画像に会社ロゴをつけることができる。間引き部２０２４は、多値画像データの画素を間引くことにより解像度変換を行うもので、１／２，１／４，１／８の多値画像データを出力できる。この間引き部２０２４と変倍器２０２０と合わせて使うことで、より広範囲な拡大、縮小を行うことができる。移動部２０２５は、入力された２値画像、多値画像に余白部分をつけたり、余白部分を削除したりして出力することができる。回転器２０１９、変倍器２０２０、色空間変換器２０２１、２値多値変換器２０２２、合成器２０２３、間引き部２０２４、移動部２０２５、多値２値変換器２０２６はそれぞれ連結して動作することが可能である。例えば、ＲＡＭ２００の多値画像データを回転、解像度変換する場合は、ＲＡＭ２００２を介さずに、これら処理を連結して行うことができる。
【００１９】
図２は、本実施の形態に係る画像処理装置においてＰＤＬデータの処理を行う主要部の構成を示すブロック図である。
【００２０】
ラスタイメージプロセッサ（ＲＩＰ）２０１８は、複数のＲＩＰプロセッサＡ〜Ｄ（１０１〜１０４）で構成されている。システムワークメモリＲＡＭ２００２には、ＰＤＬデータを基に変換されたディスプレイリストが記憶されている。
【００２１】
以下、ＲＩＰ２０１８の内部構成について説明する。
【００２２】
ＲＩＰプロセッサ（ＰＤＬコマンド処理部）１０１〜１０４のそれぞれは、エッジ処理部、レベル処理部、色生成処理部、色合成処理部として機能しており、各処理部の機能が各ＲＩＰプロセッサＡ〜Ｄで実現される。ＦＩＦＯ１０５〜１０７のそれぞれは、各ＲＩＰプロセッサＡ〜Ｄが互いに入出力するエッジ情報、レベル情報、ピクセル情報などの中間データを受け渡すためのバッファである。ローカルメモリ（ＳＲＡＭ）１０８〜１１０のそれぞれは、各ＲＩＰプロセッサＡ〜Ｄの内、予め定められた単一或は複数のプロセッサが読み書き可能な共有メモリとして機能しているバッファである。ＤＭＡＣ１１１はＤＭＡコントローラであり、各ＲＩＰプロセッサＡ〜Ｄを介さずに、ＲＡＭ２００２とＲＩＰ２０１８内にあるＳＲＡＭ１０８〜１１０との間でデータの受け渡しを実行する。
【００２３】
以下、各ＲＩＰプロセッサＡ〜Ｄが有する内部機能について説明する。
【００２４】
１０１ａ〜１０４ａのそれぞれは、各ＲＩＰプロセッサＡ〜Ｄのそれぞれに設けられた待機状態判定部であり、各ＲＩＰプロセッサＡ〜Ｄの前段及び後段に位置するデータ入出力のためのキュー内のデータ量を参照する。そして、そのデータ量或はメモリの空き量等に基づいて、プロセッサ１０１〜１０４が待機状態であるか否かを判定する。ここでは各キューにおけるデータの格納状態がフル状態か、エンプティ状態かにより判断しても良い。尚、ここで言う前段キュー（第１データ格納部）及び後段キュー（第２データ格納部）とは、ＦＩＦＯ１０５〜１０７、ＳＲＡＭ１０８〜１１０、或は、ＲＡＭ２００２の各メモリ領域のいずれについても該当するものである。ここで前段キューは、処理対象のデータを保持してプロセッサに供給し、後段キューはプロセッサから出力される処理済データを保持する。１０１ｂ〜１０４ｂのそれぞれは、各ＲＩＰプロセッサＡ〜Ｄのそれぞれに設けられた動作モード切替部である。ここでは例えば、判定部１０４ａの判定結果に従って、プロセッサＤの動作モードを、通常モードと補助モードとの間で切り替える。ここで、通常モードとは、プロセッサＤに割り当てられた種別の画像処理（色合成処理）を行うモードであり、補助モードとは、プロセッサＤ以外（例えばプロセッサＡ）に割り当てられた種別の画像処理（例えば、エッジ処理）を行うモードである。即ち、第１プロセッサ（例えば、プロセッサＤ）と第２プロセッサ（例えば、プロセッサＡ）という複数のプロセッサを有する画像処理装置において、第１プロセッサは下記のような動作をする。まず、第１プロセッサは通常モードとして第１プロセッサに割り当てられた種別の画像処理（例えば、エッジ処理）を実行する。その一方で、第１プロセッサ（例えば、プロセッサＤ）は、補助モードとして第２プロセッサに割り当てられた種別の画像処理（例えば、エッジ処理）を実行する。１０１ｃ〜１０４ｃのそれぞれは、各ＲＩＰプロセッサＡ〜Ｄのそれぞれに設けられた処理要求部であり、例えばプロセッサＤからプロセッサＡに対して、プロセッサＡに割り当てられた処理の一部を開始するのに必要な処理開始アドレス等の情報を要求する。１０１ｄ〜１０４ｄのそれぞれは、各ＲＩＰプロセッサＡ〜Ｄのそれぞれに設けられた処理解放部であり、例えばプロセッサＡからプロセッサＤに対して、プロセッサＡに割り当てられた処理の一部を開始するのに必要な処理開始アドレス等の情報を通知する。尚、これら内部機能の詳細な動作については、図７及び図８のフローチャートを用いて後述する。
【００２５】
［ＲＩＰプロセッサ負荷状況（従来例）］
図３及び図４は、複数のプロセッサで構成された従来の画像処理システムにおいて、画像データに対する画像処理を実行した場合における、各プロセッサの負荷状況を概念的に表す説明図である。
【００２６】
図３は、ＪＰＥＧ形式の写真等のイメージがページ内の広範囲に貼り付けられている画像データ１を用いた場合の説明図である。画像データ１では、ページ内の広範囲に貼り付けられている１つのイメージが１つのオブジェクトとして存在している。このため、ページ内に存在するオブジェクトのエッジ数は少ないが、ページ内に存在するオブジェクトの重ね合わせを含む画素数は多い。従って、画像データ１に対する画像処理を実行した場合には、エッジ処理部（ＲＩＰプロセッサＡ）の処理負荷が軽く、色合成処理部（ＲＩＰプロセッサＤ）の処理負荷が重くなる。
【００２７】
図４は、表計算データシート等の縦横の罫線が多く引かれている画像データ２を用いた場合の説明図である。画像データ２の例では、縦横の罫線に対して走査ライン毎にエッジトラッキングを行うことになる。このため、複数の縦の罫線に区切られて複数の黒色スパンと白色スパンが交互に生成されるラインと、単一の横の罫線が引かれて単一の黒色スパンが生成されるラインが繰り返される。つまり、ページ内に存在するオブジェクトのエッジ数が多く、ページ内に存在するオブジェクトの重ね合わせを含む画素数は少ない。従って、画像データ２に対する画像処理を実行した場合には、エッジ処理部（ＲＩＰプロセッサＡ）の処理負荷が重くなり、色合成処理部（ＲＩＰプロセッサＤ）の処理負荷が軽くなる。
【００２８】
以下、図４で示した画像データ２に対する処理を想定して、本実施の形態に係るプロセッサの詳細な処理動作について説明する。
【００２９】
［ＲＩＰ処理例（エッジ処理）］
図５は、オブジェクトの輪郭情報からビットマップ展開するためのエッジの座標点を生成するまでの処理の流れを示す説明図である。
【００３０】
図５の例において、多角形の輪郭は四つのエッジＥａ，Ｅｂ，Ｅｃ，Ｅｄから構成されている。これらのエッジＥａ，Ｅｂ，Ｅｃ，Ｅｄは、それらの絶対値の小さい方の頂点（以下エッジの始点）のｙ座標値によりソートされ、ｙバケットリストに連結されて記憶されている。例えば、エッジＥａ，Ｅｂの始点（ｘ1，ｙ1）と交差する走査ラインでは、ｙ1の座標値に対応するｙバケットリストに、エッジＥａの情報を表すセルとエッジＥｂの情報を表すセルとが記憶されている。ｙバケットリストの各セルは、走査ラインと各エッジの交点を発生させるための情報、即ち、エッジの始点のｘ座標値と、エッジの傾きを表す走査ライン当たりのｘの変化量Δｘと、エッジと走査ラインとの交差数Δｙと、次のセルへのポインタとを含んでいる。ｙバケットリスト及び各セルを含む全体をディスプレイリストと呼ぶ。次に、このディスプレイリストから各走査ライン毎に同時に処理しなければならない情報に変換される。これをアクティブエッジリストと呼ぶ。そして、このアクティブエッジリストからエッジの座標点が出力されることになる。
【００３１】
一般的にディスプレイリストからエッジの座標点を生成する処理は走査ライン変換と呼ばれる。走査ライン変換によって生成されたエッジの座標点を座標値によりソートし、ソートされた座標点間を所定の色データで順次塗りつぶし処理を施したものがビットマップデータである。走査ライン変換は、１走査ラインずつ、上部から下部までのエッジの座標点を発生する。即ち、現在の走査ラインと交わる全エッジをリスト化して、図５に示すアクティブエッジリストを作成しながらエッジの座標点を出力する。現在の走査ラインの処理後、アクティブエッジリストの各レコードは次走査のために更新（ｘ＝ｘ＋Δｘ，Δｙ＝Δｙ−１）される。Δｙ＝０になったバケットは、リストから削除される。
【００３２】
［ＲＩＰプロセッサ動作例］
図６は、各ＲＩＰプロセッサＡ〜Ｄを同時に動作させた場合の動作例を示すシーケンス図である。ここでは図４で示した画像データ２に対する処理を想定して、色合成処理部の機能を担うＲＩＰプロセッサＤが、エッジ処理部の機能を担うＲＩＰプロセッサＡの処理の一部を補助する補助モードに移行し、その後、通常モードに復帰する場合を示している。
【００３３】
以下、図７及び図８のフローチャートに従い、図６の動作例を説明する。
【００３４】
［ＲＩＰプロセッサＤの動作フロー］
まず、図７の通常モードのフローチャートに従って、ＲＩＰプロセッサＤが実行する通常モードの動作を説明する。
【００３５】
先ずステップＳ１で、ＲＩＰプロセッサＤは、ＲＩＰプロセッサＤの前段キューに相当するＦＩＦＯ１０７及びＲＩＰプロセッサＤの後段キューに相当するＳＲＡＭ１１０のデータを参照する。次にステップＳ２に進み、前段キューＦＩＦＯ１０７が、色合成処理前の画素データを予め定めた閾値（例えば、２ライン分の処理に必要な画素データ）を越えるデータ量だけ保持しているかをみる。また同時に、後段キューＳＲＡＭ１１０が色合成処理後の画素データを、予め定めた閾値（例えば、２ライン分の画素データ）を超えるだけ格納できる空き容量があるか判断する。この条件を満足していればステップＳ３に進むが、そうでないときはステップＳ８に進む。
【００３６】
ステップＳ３では、ＲＩＰプロセッサＤは、ＲＩＰプロセッサＤ以外のＲＩＰプロセッサＡ〜Ｃから処理開始アドレスを要求されていないかどうかを判断し、要求が無い場合はステップＳ５に進むが、要求があればステップＳ４に進む。ステップＳ４では、その要求されている処理開始アドレスを受取ってステップＳ５に進む。ステップＳ５では、ＲＩＰプロセッサＤは、通常モードの処理である色合成処理を繰り返す。この色合成処理の最小単位処理は１画素である。こうして最小単位の画像処理が終了するとステップＳ７に進み、その処理済のデータをＳＲＡＭ１１０に記憶してステップＳ１に戻る。
【００３７】
またステップＳ２で、前段キューＦＩＦＯ１０７がデータ量を保持していないとき、或はＳＲＡＭ１１０に空き領域がない場合はステップＳ８に進み、ＲＩＰプロセッサＤの動作モードを、通常モードから補助モードに切り替える。
【００３８】
次に、図８の補助モードのフローチャートに従って、ＲＩＰプロセッサＤが実行する補助モードでの動作を説明する。
【００３９】
先ずステップＳ１１で、ＲＩＰプロセッサＤは、ＲＩＰプロセッサＡに対して、エッジ処理の一部を開始するための処理開始アドレスを要求する。次にステップＳ１２に進み、ＲＩＰプロセッサＤは、ＲＩＰプロセッサＡに割り当てられているエッジ処理の一部（例えば、ＲＩＰプロセッサＡが処理中であるラインの次ラインのエッジ処理）を代替する補助モード処理を実行する。そしてステップＳ１３で、その最小単位のデータの処理が終了するとステップＳ１４に進み、ＲＩＰプロセッサＡ及びＲＩＰプロセッサＤが共通して読み書き可能なＳＲＡＭ１０９に、その結果を書き込んで補助モード処理ループを終了する。そしてステップＳ１５に進み、ＲＩＰプロセッサＤの動作モードを、補助モードから通常モードに切り替える。
【００４０】
次に、ＲＩＰプロセッサＡによる処理を説明する。
【００４１】
［ＲＩＰプロセッサＡの動作フロー］
図７の通常モードのフローチャートに従って、上述のＲＩＰプロセッサＤの処理に関連して動作しているＲＩＰプロセッサＡによる通常モードでの動作を説明する。
【００４２】
先ずステップＳ１で、ＲＩＰプロセッサＡは、ＲＩＰプロセッサＡの前段キューに相当するローカルメモリＳＲＡＭ１０８及びＲＩＰプロセッサＡの後段キューに相当するＦＩＦＯ１０５のデータを参照する。次にステップＳ２に進み、ＳＲＡＭ１０８がエッジ処理前のディスプレイリスト情報を予め定めた閾値（例えば、２ライン分の処理に必要なディスプレイリスト情報）を越えるデータ量だけ保持しているかを判定する。また同時にＳＲＡＭ１１０がエッジ処理後のエッジ情報を格納できるだけの、予め定めた閾値（例えば、２ライン分の処理に必要なエッジリスト情報）を超える空き容量があるかを判断する。これら条件を満たしていればステップＳ３に進むが、そうでないときはステップＳ８に進む。
【００４３】
ステップＳ３では、ＲＩＰプロセッサＡは、ＲＩＰプロセッサＡ以外のＲＩＰプロセッサＢ〜Ｄから処理開始アドレスを要求されていないかどうかを判定する。ここでＲＩＰプロセッサＤからの要求がなければステップＳ５に進むが、要求があるときはステップＳ４に進む。ステップＳ４では、ＲＩＰプロセッサＡは、エッジ処理の入力データであるＳＲＡＭ１０８のディスプレイリスト情報の内、次の１ラインデータの先頭アドレスを処理開始アドレスとしてＲＩＰプロセッサＤに通知する。またこのとき、補助処理後の出力先メモリの先頭アドレスもＲＩＰプロセッサＤに通知する。そしてステップＳ５に進み、ＲＩＰプロセッサＡは、通常モードの処理であるエッジ処理を繰り返す。ここで、このエッジ処理（エッジトラッキング及びエッジソート）の最小単位処理は１座標（１エッジ）である。ステップＳ６では、ステップＳ１及びステップＳ２で確保できているデータ量に収まる範囲内の処理（例えば、１ライン分のエッジ処理）を実行するとステップＳ７に進み、後段キューＦＩＦＯ１０５に、その結果を出力して通常モードでの処理を終了する。その後、ステップＳ１に戻る。
【００４４】
［ＲＩＰプロセッサ負荷状況］
図９は、本実施の形態に係る、複数のプロセッサで構成された画像処理システムにおいて、画像データに対する画像処理を実行する際の各プロセッサの負荷状況を概念的に表す図である。ここではＲＩＰプロセッサＤに対してＲＩＰプロセッサＡが補助モード動作した場合を示している。図３と図９を比較すると明らかなように、ボトルネックとなっていたＲＩＰプロセッサＤに割り当てられている種別の画像処理（色合成処理）の一部を、処理待ち状態になっていたＲＩＰプロセッサＡが代替して実行する。このことにより、システム全体としての処理能力が向上する。
【００４５】
図１０は、本実施の形態に係る、複数のプロセッサで構成された画像処理システムにおいて、画像データに対する画像処理を実行する際の各プロセッサの負荷状況を概念的に表す図である。ここでも図６の場合と同様に、ＲＩＰプロセッサＡに対してＲＩＰプロセッサＤが補助モード動作した場合を示している。
【００４６】
前述の図４と、この図１０とを比較すると明らかなように、ボトルネックとなっていたＲＩＰプロセッサＡの処理の一部を、処理待ち状態になっていたＲＩＰプロセッサＤが代替して実行することにより、システム全体としての処理能力が向上されている。
【００４７】
［プロセッサ負荷分散のための処理］
尚、上述の実施の形態では、ＲＩＰプロセッサＤの補助モード時の補助対象をＲＩＰプロセッサＡ、ＲＩＰプロセッサＡの補助モード時の補助対象をＲＩＰプロセッサＤというように規定していた。これは図３及び図４で示したように、データの特性上、パイプライン処理を実行する複数のプロセッサの内、ボトルネックとなるプロセッサ処理がおおよそ判別可能であるためである。即ち、パイプライン処理を実行する複数のプロセッサの前半部に位置するＲＩＰプロセッサＡと、パイプライン処理を実行する複数のプロセッサの後半部に位置するＲＩＰプロセッサＤが、それぞれ処理待ち状態になった場合に互いに補助し合うようにしている。
【００４８】
このような動作モードを用意することにより、複数のプロセッサ全体の負荷状況を周期的に監視し、負荷バランスが悪いと判断した場合に負荷分散を実行できるため、好適な負荷分散を実行できる。
【００４９】
以下に、本実施の形態に係る負荷分散方式が従来例に対して優位である点について説明する。
【００５０】
図１１及び図１２は、従来のシステムと本実施の形態に係るシステムにおけるシステム処理負荷（負荷監視）を説明する概念図である。
【００５１】
従来例では、図１１（Ａ）（Ｂ）に示すように、例えばプロセッサＡが、プロセッサＡに割り当てられている画像処理タスクに加えて、全プロセッサＡ〜Ｃの負荷状況を周期的に監視するための負荷監視タスクを実行しなければならない。そして、負荷監視の結果、図１１（Ｃ）に示すように、プロセッサＢとプロセッサＣの負荷バランスが悪いと判断すると、プロセッサＢ、プロセッサＣが担当している画像処理の待ち合わせを行う。そして、あるタイミングで、プロセッサＡが、プロセッサＢ及びプロセッサＣに対する画像処理の再割り当てを実行する。
【００５２】
一方、本実施の形態では、図１２（Ａ）（Ｂ）に示すように、負荷バランスが悪くならない限り、プロセッサＡを含む全てのプロセッサＡ〜Ｃはそれぞれに割り当てられた画像処理を実行する。かつ、各プロセッサが自らの待ち状態を検知している。そして図１２（ｃ）に示すように、例えば待ち状態になったプロセッサＣがその処理待ち時間を利用して、プロセッサＢへの処理要求及び処理の一部を代替して実行する。
【００５３】
図１３及び図１４は、従来のシステム及び本実施の形態に係るシステムにおける、システム処理負荷（負荷見積り）を示す概念図である。
【００５４】
従来例では、図１３（Ａ）（Ｂ）に示すように、例えばプロセッサＡが、プロセッサＡに割り当てられている画像処理タスクに加えて、全プロセッサＡ〜Ｃの負荷状況を周期的に見積もるための負荷見積りタスクを実行している。そして、負荷見積りの結果、例えば図１３（Ｃ）にように、プロセッサＢとプロセッサＣの負荷バランスが悪いと判断すると、プロセッサＢ、プロセッサＣが担当している画像処理の待ち合わせを行う。そして、あるタイミングで、プロセッサＡが、プロセッサＢ及びプロセッサＣについて画像処理の再割り当てを実行する。
【００５５】
しかし、エッジ処理、レベル処理、色合成処理のようなＰＤＬコマンド処理はいずれも、ＰＤＬデータのデータ量に対する画像処理負荷が必ずしも比例関係にならない。また、ページ単位やバンド単位で処理負荷が大きく変化するため、負荷見積りの精度が悪くなりやすい。よって、あまり精度の高くない負荷見積りに従って負荷分散が実行されてしまい、不必要な負荷分散を繰り返してしまう虞がある。また、負荷見積りの精度を上げようとすると、それだけ負荷見積りのための負荷が増大してしまうという問題も発生する。
【００５６】
一方本実施の形態では、図１４（Ａ）（Ｂ）に示すように、負荷バランスが極端に悪くならない限り、プロセッサＡを含む全てのプロセッサＡ〜Ｃはそれぞれに割り当てられた画像処理を実行できる。また各プロセッサが自らの待ち状態であるか否かを隣接するキューを参照することで検知できる。例えば、図１４（Ｃ）に示すように、待ち状態になったプロセッサＣが、その処理待ち時間を利用して、プロセッサＢへの処理要求及び処理の一部を代替実行できる。
【００５７】
最後に付け加えると、通常設計されるシステムは、前提として、平均的なデータに対して負荷バランスが一様になるように負荷バランスを考慮して各プロセッサに画像処理を割り当てることが多い。
【００５８】
従って、本実施の形態によれば、従来例に比べて負荷分散のための余分な処理負荷を抱えることなく、かつ、万が一負荷バランスが悪くなったとしても、好適な負荷分散を実行してシステム全体としての処理能力低下を防ぐことができる効果がある。
【図面の簡単な説明】
【００５９】
【図１】本実施の形態に係る多機能処理装置であるＭＦＰの構成を説明するブロック図である。
【図２】本実施の形態に係る画像処理装置においてＰＤＬデータの処理を行う主要部の構成を示すブロック図である。
【図３】、
【図４】複数のプロセッサで構成された従来の画像処理システムにおいて、画像データに対する画像処理を実行した場合における、各プロセッサの負荷状況を概念的に表す説明図である。
【図５】オブジェクトの輪郭情報からビットマップ展開するためのエッジの座標点を生成するまでの処理の流れを示す説明図である。
【図６】各ＲＩＰプロセッサＡ〜Ｄを同時に動作させた場合の動作例を示すシーケンス図である。
【図７】本実施の形態に係るＲＩＰプロセッサが通常の動作モードで動作する場合の処理を説明するフローチャートである。
【図８】本実施の形態に係るＲＩＰプロセッサが補助モードで動作する場合の処理を説明するフローチャートである。
【図９】本実施の形態に係る、複数のプロセッサで構成された画像処理システムにおいて、画像データに対する画像処理を実行する際の各プロセッサの負荷状況を概念的に表す図である。
【図１０】本実施の形態に係る、複数のプロセッサで構成された画像処理システムにおいて、画像データに対する画像処理を実行する際の各プロセッサの負荷状況を概念的に表す図である。
【図１１】従来のシステムにおけるシステム処理負荷（負荷監視）を説明する概念図である。
【図１２】本実施の形態に係るシステムにおけるシステム処理負荷（負荷監視）を説明する概念図である。
【図１３】従来のシステムにおける、システム処理負荷（負荷見積り）を示す概念図である。
【図１４】本実施の形態に係るシステムにおける、システム処理負荷（負荷見積り）を示す概念図である。
【図１】
2008276407.tif 000003
【図２】
2008276407.tif 000004
【図３】
2008276407.tif 000005
【図４】
2008276407.tif 000006
【図５】
2008276407.tif 000007
【図６】
2008276407.tif 000008
【図７】
2008276407.tif 000009
【図８】
2008276407.tif 000010
【図９】
2008276407.tif 000011
【図１０】
2008276407.tif 000012
【図１１】
2008276407.tif 000013
【図１２】
2008276407.tif 000014
【図１３】
2008276407.tif 000015
【図１４】
2008276407.tif 000016