(57)【要約】【課題】  画像処理プロセスの一部を実行するハードウェアのメモリ量を最小化しつつ、画像処理プロセスがアプリケーションに与える影響を少なくする。【解決手段】  プロセッサ２２からＣＰＵ２１への割込より、ＣＰＵからプロセッサ２２へのポーリングのほうが、ＣＰＵ２１にかかる負荷がはるかに低いことに着目し、プロセッサ２２による処理時間が算出可能な画像処理はポーリング処理によって制御を行い、それ以外は割込によって制御を行う。これにより、ＣＰＵ２１にかかる負荷を軽減することが可能になる。【選択図】  図６
2006268092.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた処理単位毎に画像処理を行うとともに、所定のタイミングで割込信号を出力する画像処理手段と、
処理対象となる画像データをどのように処理するかを示す処理種別情報を、前記処理単位毎に受け付ける処理種別情報受付手段と、
前記画像処理手段を制御するためのポーリング処理手順および割込み処理手順が予め設定され、いずれかの処理手順を選択して実行する制御手段と、
前記画像処理手段の画像処理時間が特定可能であるか否かを、前記処理種別情報に基づいて判定する判定手段と、
前記判定手段により前記画像処理時間が特定可能であると判定された場合には前記制御手段に対して前記ポーリング処理手順を選択させ、前記判定手段により前記処理時間が特定不能であると判定された場合には前記制御手段に対して前記割込処理手順を選択させる切換手段と
を具備することを特徴とする画像処理装置。
【請求項２】
前記画像データは、ラスタ画像データである
ことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記判定手段は、前記処理種別情報が予め定められた所定の画像処理を示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記処理種別情報は、前記画像処理がフィルタ処理であるか否かを示す情報であり、
前記判定手段は、前記画像処理種別情報が前記フィルタ処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項５】
前記処理種別情報は、前記画像処理がカラーコンバージョン処理であるか否かを示す情報であり、
前記判定手段は、前記画像処理種別情報が前記カラーコンバージョン処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項６】
前記処理種別情報は、前記画像処理がサブサンプリング処理であるか否かを示す情報であり、
前記判定手段は、前記画像処理種別情報が前記サブサンプリング処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項７】
前記処理種別情報は、前記画像処理がネガポジ反転処理であるか否かを示す情報であり、
前記判定手段は、前記画像処理種別情報が前記ネガポジ反転処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項８】
前記処理種別情報は、前記画像処理が２値化処理であるか否かを示す情報であり、
前記判定手段は、前記画像処理種別情報が前記２値化処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定する
ことを特徴とする請求項１記載の画像処理装置。
【請求項９】
前記判定手段によって前記処理時間が特定可能であると判定された画像処理の前記処理時間を特定する処理時間特定手段と、
前記処理時間特定手段によって特定された前記処理時間に基づいて、ポーリング間隔を特定するポーリング間隔特定手段と
を具備し、
前記ポーリング処理手順は、前記ポーリング間隔特定手段によって特定された前記ポーリング間隔に基づいてポーリング処理を行う手順である
ことを特徴とする請求項１記載の画像処理装置。
【請求項１０】
前記画像処理の作業領域として使用されるバッファ領域を備え、
前記処理時間特定手段は、前記処理種別情報と、単位画素あたりのデータ量と、前記バッファ領域のサイズと、前記画像処理に要する単位画素あたりのクロックサイクル数と、前記画像処理手段のシステムクロック周波数とを用いて前記処理時間を算出することによって前記処理時間を特定する
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記処理時間特定手段は、前記画像処理がフィルタ処理である場合に、その処理時間Ｔを、単位画素の前記フィルタ処理に要するクロックサイクル数Ｃｆと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（１）式で算出することを特徴とする請求項９記載の画像処理装置。
（数１）
Ｔ＝Ｃｆ／Ｆ
【請求項１２】
前記処理時間特定手段は、前記画像処理がカラーコンバージョン処理である場合に、その処理時間Ｔを、単位画素の前記カラーコンバージョン処理に要するクロックサイクル数Ｃｃと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（２）式で算出することを特徴とする請求項９記載の画像処理装置。
（数２）
Ｔ＝Ｃｃ／Ｆ
【請求項１３】
前記処理時間特定手段は、前記画像処理がサブサンプリング処理である場合に、その処理時間Ｔを、単位画素の前記サブサンプリング処理に要するクロックサイクル数Ｃｓと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（３）式で算出することを特徴とする請求項９記載の画像処理装置。
（数３）
Ｔ＝Ｃｓ／Ｆ
【請求項１４】
前記処理時間特定手段は、前記画像処理がネガポジ反転処理である場合に、その処理時間Ｔを、単位画素の前記ネガポジ反転処理に要するクロックサイクル数Ｃｎと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（４）式で算出することを特徴とする請求項９記載の画像処理装置。
（数４）
Ｔ＝Ｃｎ／Ｆ
【請求項１５】
前記処理時間特定手段は、前記画像処理が２値化処理である場合に、その処理時間Ｔを、単位画素の前記２値化処理に要するクロックサイクル数Ｃｂと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（５）式で算出することを特徴とする請求項９記載の画像処理装置。
（数５）
Ｔ＝Ｃｂ／Ｆ
【請求項１６】
前記画像処理の作業領域として使用されるバッファ領域と、
単位画素あたりのデータ量Ｎと、前記バッファ領域のサイズＢと、前記バッファ領域に対する係数Ｋと、前記画像処理に要する単位画素あたりのクロックサイクル数Ｃｘと、前記画像処理手段のシステムクロック周波数Ｆとを用いて、ポーリング間隔Ｉを次の（６）式で算出するポーリング間隔算出手段と、
を具備し、
前記ポーリング処理手順は、前記ポーリング間隔特定手段によって特定された前記ポーリング間隔に基づいてポーリング処理を行う手順である
ことを特徴とする請求項１記載の画像処理装置。
（数６）
Ｉ＝Ｃｘ×Ｆ×（Ｋ×Ｂ）／Ｎ
【請求項１７】
前記係数Ｋが１／２である
ことを特徴とする請求項１６記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータを処理するための技術に関する。
【背景技術】
【０００２】
コンピュータ・ネットワークのブロードバンド化やコンピュータのハードディスク容量の増大に伴い、数ＭＢｙｔｅを超えるデータ量の大きい画像データを、コンピュータ間でやりとりしたり、コンピュータで画像処理を行ったりすることが増えてきている。例えば、フルカラーのスキャナやプリンタ等の画像形成装置は、データ量の大きい画像データを、パーソナルコンピュータ等と送信／受信したり、送信する／受信した画像データの画像処理を行ったりしている。また、パーソナルコンピュータ等では、データ量の大きい静止画像やビデオ画像等の画像データの画像処理を行い、画像を表示したりしている。
【０００３】
画像形成装置やパーソナルコンピュータ等の、画像処理を行うコンピュータ（以下、画像処理装置という）が扱う画像データのデータ量が膨大である場合は、データ量が大きいほどその処理時間が長くなってしまうという問題が発生する。
【０００４】
画像処理の処理速度を高速化することを目的として、従来の画像処理装置では、画像処理プロセスの優先順位を他のプロセスよりも高く設定することによって、他のアプリケーションの影響で画像処理プロセスが遅れることが無いようにする方法が用いられている。
また、別の観点から、画像処理装置に、ＣＰＵ（Central Processing Unit）とは別にＤＳＰ（Digital Signal Processor）等の画像処理用のプロセッサを設け、このプロセッサで上述した画像処理プロセスの一部を実施することによって、画像処理の高速化が図られている。
【０００５】
複数のプロセッサを用いたマルチプロセッサによる画像処理装置の処理能力を最大限に利用することを目的として、例えば特許文献１に記載の技術が公開されている。特許文献１に記載の技術は、画像処理の実際の操作開始に先立って処理負荷を見積もることによって、現在待ち行列にある処理要求も含めて個々のプロセッサの負荷を正しく評価することが可能となっている。これにより、各プロセッサへの処理の分散を適切な負荷配分の元に行うことができ、個々のプロセッサへの負荷配分を均等化することが可能となる。
【特許文献１】特開平０６−２７４６０８号公報
【０００６】
ところで、ラスタ画像等の画像データについて画像処理を行う場合、画像データを構成する各画素について、所定の処理を繰り返し行うことによって画像データ全体が処理される形式のものがある。例えば、ネガポジ反転処理の場合、画像データを構成する各画素について、Ｒ（赤）、Ｇ（緑）、Ｂ（青）の各成分を、所定値（例えば２５５）との差値に入れ替える処理を行う。画像データを構成する各画素についてこの処理を行うことによって、ネガポジ反転処理が行われる。
【０００７】
上述したネガポジ反転処理のような、画素毎に同じ処理を繰り返して行う画像処理を、データ量が膨大である画像データについて行う場合、画像データを一定の単位量ごとに分割し、単位量の画像データを単位時間で処理することによって、画像処理装置が画像処理プロセスを実施する方法が用いられている。例えば、スキャナやプリンタ等の画像処理装置が画像処理を行う場合は、画像出力装置の動作に追随するために、用紙の搬送時間を単位時間として、搬送時間ごとに１ページ分の画像データ処理を行う。この処理速度については、ｐｐｍ（page per minute）という単位が一般に用いられる。例えば６０ｐｐｍの場合は１秒間に１ページのスキャン処理や印刷処理を行う速度を示す。また、ビデオ画像についても、単位時間で単位量のフレーム（画像）の画像処理を行って表示を行っている。一般的には、1秒間に２０から３０フレームを表示することによってビデオ画像を表示している。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したような画像処理用のプロセッサを用いて単位時間ごとの画像処理を行う場合、ＣＰＵは、単位量のデータを画像処理用プロセッサに渡し、画像処理用プロセッサはその単位量のデータを画像処理する。画像処理用プロセッサが単位処理を連続して行うことによって、一連の画像処理が行われる。この場合、ＣＰＵは、割込によって画像処理用プロセッサを制御するのが一般的である。具体的には、画像処理用プロセッサは、画像の単位処理が終了すると、ＣＰＵに割込信号を送信する。ＣＰＵは、画像処理用プロセッサからこの割込信号を受信すると、次に処理を行う単位量のデータを、バッファメモリを介して画像処理用プロセッサに渡す。画像処理用プロセッサは、渡された単位量データについて画像処理を行う。これを繰り返すことによって、画像処理プロセスが実行される。
【０００９】
ＣＰＵへの割込処理はオーバーヘッド（処理をする際に間接的に必要となる処理、またそのために要する時間）が大きいため、割込処理が頻繁に発生すると、ＣＰＵに対して負担がかかり、他のアプリケーションの実行が極端に遅くなるという問題が発生する。また、それにより、ＣＰＵからプロセッサへの処理要求が遅れ、プロセッサのアイドル時間が増加し画像処理全体の処理時間が遅くなるという問題も発生する。バッファメモリ量を大きくすれば、画像処理用プロセッサが単位時間に処理できるデータの量は大きくなるため、その分ＣＰＵへの割込回数を減少させることができ、処理速度を向上させることができる。しかし、バッファメモリ量は大きいほどそのコストが高くなってしまうという問題がある。
【００１０】
特許文献１に記載の技術は、複数のプロセッサを用いた画像処理装置において個々のプロセッサに分担させる処理の負荷の最適化を図るものであるが、プロセッサへの処理負荷そのものを軽減させることはできない。また、バッファメモリ量についても考慮されておらず、バッファメモリ量が小さい場合は、上述したように、割込処理が頻繁に発生して他のアプリケーションの実行が遅くなるという問題が発生する。
【００１１】
本発明は、上述した従来の問題に鑑み、画像処理プロセスの一部を実行するハードウェアのバッファメモリ量を最小化しつつ、画像処理プロセスがＣＰＵに与える負荷を軽減し、画像処理プロセスがアプリケーションに与える影響を少なくすることができるソフトウェアプロセスのスケジューリング技術を提供することにある。
【課題を解決するための手段】
【００１２】
上述した問題を解決するために、本発明は、予め定められた処理単位毎に画像処理を行うとともに、所定のタイミングで割込信号を出力する画像処理手段と、処理対象となる画像データをどのように処理するかを示す処理種別情報を、前記処理単位毎に受け付ける処理種別情報受付手段と、前記画像処理手段を制御するためのポーリング処理手順および割込み処理手順が予め設定され、いずれかの処理手順を選択して実行する制御手段と、前記画像処理手段の画像処理時間が特定可能であるか否かを、前記処理種別情報に基づいて判定する判定手段と、前記判定手段により前記画像処理時間が特定可能であると判定された場合には前記制御手段に対して前記ポーリング処理手順を選択させ、前記判定手段により前記処理時間が特定不能であると判定された場合には前記制御手段に対して前記割込処理手順を選択させる切換手段とを具備することを特徴とする画像処理装置を提供する。
【００１３】
本発明の好ましい態様においては、前記画像データは、ラスタ画像データであることを特徴とする。
また、本発明の別の好ましい態様においては、前記判定手段は、前記処理種別情報が予め定められた所定の画像処理を示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
【００１４】
また、本発明の更に別の好ましい態様においては、前記処理種別情報は、前記画像処理がフィルタ処理であるか否かを示す情報であり、前記判定手段は、前記画像処理種別情報が前記フィルタ処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
また、本発明の更に別の好ましい態様においては、前記処理種別情報は、前記画像処理がカラーコンバージョン処理であるか否かを示す情報であり、前記判定手段は、前記画像処理種別情報が前記カラーコンバージョン処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
また、本発明の更に別の好ましい態様においては、前記処理種別情報は、前記画像処理がサブサンプリング処理であるか否かを示す情報であり、前記判定手段は、前記画像処理種別情報が前記サブサンプリング処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
また、本発明の更に別の好ましい態様においては、前記処理種別情報は、前記画像処理がネガポジ反転処理であるか否かを示す情報であり、前記判定手段は、前記画像処理種別情報が前記ネガポジ反転処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
また、本発明の更に別の好ましい態様においては、前記処理種別情報は、前記画像処理が２値化処理であるか否かを示す情報であり、前記判定手段は、前記画像処理種別情報が前記２値化処理であることを示す情報である場合に、前記画像処理時間が特定可能であると判定することを特徴とする。
【００１５】
また、本発明の更に別の好ましい態様においては、前記判定手段によって前記処理時間が特定可能であると判定された画像処理の前記処理時間を特定する処理時間特定手段と、前記処理時間特定手段によって特定された前記処理時間に基づいて、ポーリング間隔を特定するポーリング間隔特定手段とを具備し、前記ポーリング処理手順は、前記ポーリング間隔特定手段によって特定された前記ポーリング間隔に基づいてポーリング処理を行う手順であることを特徴とする。
また、本発明の更に好ましい態様においては、前記画像処理の作業領域として使用されるバッファ領域を備え、前記処理時間特定手段は、前記処理種別情報と、単位画素あたりのデータ量と、前記バッファ領域のサイズと、前記画像処理に要する単位画素あたりのクロックサイクル数と、前記画像処理手段のシステムクロック周波数とを用いて前記処理時間を算出することによって前記処理時間を特定することを特徴とする。
【００１６】
また、本発明の更に別の好ましい態様においては、前記処理時間特定手段は、前記画像処理がフィルタ処理である場合に、その処理時間Ｔを、単位画素の前記フィルタ処理に要するクロックサイクル数Ｃｆと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（１）式で算出することを特徴とする。
（数１）
Ｔ＝Ｃｆ／Ｆ
【００１７】
また、本発明の更に別の好ましい態様においては、前記処理時間特定手段は、前記画像処理がカラーコンバージョン処理である場合に、その処理時間Ｔを、単位画素の前記カラーコンバージョン処理に要するクロックサイクル数Ｃｃと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（２）式で算出することを特徴とする。
（数２）
Ｔ＝Ｃｃ／Ｆ
【００１８】
また、本発明の更に別の好ましい態様においては、前記処理時間特定手段は、前記画像処理がサブサンプリング処理である場合に、その処理時間Ｔを、単位画素の前記サブサンプリング処理に要するクロックサイクル数Ｃｓと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（３）式で算出することを特徴とする。
（数３）
Ｔ＝Ｃｓ／Ｆ
【００１９】
また、本発明の更に別の好ましい態様においては、前記処理時間特定手段は、前記画像処理がネガポジ反転処理である場合に、その処理時間Ｔを、単位画素の前記ネガポジ反転処理に要するクロックサイクル数Ｃｎと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（４）式で算出することを特徴とする。
（数４）
Ｔ＝Ｃｎ／Ｆ
【００２０】
また、本発明の更に別の好ましい態様においては、前記処理時間特定手段は、前記画像処理が２値化処理である場合に、その処理時間Ｔを、単位画素の前記２値化処理に要するクロックサイクル数Ｃｂと、前記画像処理手段のシステムクロック周波数Ｆとを用いて次の（５）式で算出することを特徴とする。
（数５）
Ｔ＝Ｃｂ／Ｆ
【００２１】
また、本発明の別の好ましい態様においては、前記画像処理の作業領域として使用されるバッファ領域と、単位画素あたりのデータ量Ｎと、前記バッファ領域のサイズＢと、前記バッファ領域に対する係数Ｋと、前記画像処理に要する単位画素あたりのクロックサイクル数Ｃｘと、前記画像処理手段のシステムクロック周波数Ｆとを用いて、ポーリング間隔Ｉを次の（６）式で算出するポーリング間隔算出手段とを具備し、前記ポーリング処理手順は、前記ポーリング間隔特定手段によって特定された前記ポーリング間隔に基づいてポーリング処理を行う手順であることを特徴とする。
（数６）
Ｉ＝Ｃｘ×Ｆ×（Ｋ×Ｂ）／Ｎ
【００２２】
また、本発明の更に好ましい態様においては、前記係数Ｋが１／２であることを特徴とする。
【発明を実施するための最良の形態】
【００２３】
本発明の実施の一形態を図面に基づいて以下に説明する。
（１）構成
（１−１）画像形成装置１の全体構成
まず、本実施形態である画像形成装置の全体構成について説明する。
図１は、画像形成装置１のハードウェア構成の一例を示す図である。画像形成装置１は、プリンタやスキャナ、或いはこれらの複数の機能を兼ね備えた複合機等である。図において、１０は、ＣＰＵ等で構成された制御部であり、以下に説明する各構成要素を制御する。１１は、ＣＣＤ（Charge Coupled Device）等により構成される光学系デバイスを備えた画像読取部である。画像読取部１１は、ＣＣＤ等によって読み取った原稿の画像を、Ｒ、Ｇ、Ｂの各色成分に分解してラスタ画像データを生成する。
【００２４】
１２は、画像読取部１１によって生成されたラスタ画像データに基づいて画像処理を行う画像処理部（画像処理装置）である。画像処理部１２は、画像データに基づいて画像処理を行い、各種の画像処理を行ったり、画像形成に必要なＹ（イエロー）、Ｍ（マゼンタ）、Ｃ（シアン）、Ｋ（ブラック）の各色成分に変換したＹＭＣＫデータを生成したりする。
【００２５】
１３は、画像処理部１２が生成したＹＭＣＫデータに基づいて画像形成処理を行う画像出力部である。画像出力部１３は、ＹＭＣＫデータをパルスデータに変換し、そのパルスデータに基づいて感光体ドラム上に像光を照射して表面に静電電位の差による潜像を形成し、その潜像を用紙に転写する。１４は、ユーザが各種の操作を行うためのユーザインタフェースである。このユーザインタフェース１４は、タッチパネルとして機能する液晶ディスプレイを備えており、ユーザはこの液晶ディスプレイに触れることで各種操作を行うことができる。
【００２６】
（１−２）画像処理部１２の構成
次に、画像処理部１２の構成について説明する。
図２は、画像処理部１２の全体構成の一例を示す図である。図において、２０は、画像処理チップであり、ＣＰＵ２１と、プロセッサ２２と、ローカルＲＡＭ２３と、画像入力Ｉ／Ｆ２４と、画像出力Ｉ／Ｆ２５とを含んでいる。
【００２７】
ＣＰＵ２１は、制御部１０からの指示を受けて、画像処理部１２全体の動作を制御するものである。プロセッサ２２は、ＣＰＵ２１からの指示を受けて各種の画像処理を実行するものである。プロセッサ２２には、それ自身のローカルメモリとしてローカルＲＡＭ２３が接続されている。画像入力Ｉ／Ｆ２４は、ＣＰＵ２１からの指示により、画像読取部１１からのＲＧＢ画像データをＲＡＭ２７内に格納する。画像出力Ｉ／Ｆ２５は、ＣＰＵ２１からの指示により、ＲＡＭ２７内に格納されているＣＭＹＫ画像データを読み出して出力する。
【００２８】
ＲＯＭ２６には、バッファ量Ｂと、システムクロック周波数Ｆと、クロックサイクル数テーブルＴＢＬ２６１とが記憶されている。これらは、ＣＰＵ２１がポーリング間隔を算出する際に参照される情報である。バッファ量Ｂは、ＣＰＵ２１がプロセッサ２２に画像処理を指示する際に使用されるＲＡＭ２７内のバッファ領域２７１のバイト数を示す数値（単位：Byte）である。システムクロック周波数Ｆは、プロセッサ２２のシステムクロック周波数（単位：Hz）を示す数値である。
【００２９】
クロックサイクル数テーブルＴＢＬ２６１には、処理時間が算出可能な処理について、１画素の処理に要するクロックサイクル数を示す数値（単位：cycle/pixel）が記憶されている。クロックサイクル数テーブルＴＢＬ２６１を構成する１つのレコードは、図３に示すように、処理種別情報と、クロックサイクル数とのフィールドを有している。処理種別情報のフィールドには、処理時間が算出可能な画像処理の処理種別情報が記憶される。クロックサイクル数のフィールドには、その処理種別情報について、１画素の処理に要するクロックサイクル数を示す数値が記憶される。
【００３０】
上述の「処理時間が算出可能な画像処理」とは、入力される画像データの画素値（Ｒ、Ｇ、Ｂを定める２５６階調の３つの値）を所定のアルゴリズムで処理する画像処理であって、処理対象となる画像データに依存しない画像処理である。例えば、フィルタ処理、カラーコンバージョン処理、ネガポジ反転処理、サブサンプリング処理や、２値化処理等の画像処理である。具体的には、フィルタ処理の場合は、画像データを構成する各画素について、ｎ×ｍの大きさのフィルタをかけあわせる処理を行う。フィルタの特性に則して処理対象画像が変換される。カラーコンバージョン処理の場合は、画像データを構成する各画素について、色変換法則に則して処理を行う。例えば、ＲＧＢからＹＭＣＫ、ＲＧＢからＹＣｂＣｒに変換する。ネガポジ反転処理の場合は、画像データを構成する各画素について、画素値を所定値（例えば２５５）との差値に入れ替える処理を行う。画像データを構成する各画素についてこの処理を行うことによって、ネガポジ反転処理が実効されることになる。また、サブサンプリング（間引き）処理の場合は、境界線の周囲の画素を、一定の法則で間引いて何点か抽出し、それらの色の中間色を境界線の周囲に配置するという処理を行う。抽出する画素数が入力画素数であり、境界線の周囲に配置する画素数が出力画素数であり、出力画素数が入力画素数の定数倍になる。また、抽出した画素の画素値から、所定のアルゴリズムに基づいて、それらの色の中間色となる画素値を算出するという処理を行う。２値化処理の場合は、画像データを構成する各画素について、画素値を所定の閾値（例えば１２８）と比較しその大小によって濃淡のない２値画像（１bit）に変換する。
【００３１】
ＲＡＭ２７内には、バッファ領域２７１が設けられている。画像処理部１２は、制御部１０からの指示により、サブサンプリング処理や、ネガポジ反転処理といった各種の画像処理プロセスを実行する。プロセッサ２２は、各単位処理で、ＣＰＵ２１が指示するＲＡＭ２７のバッファ領域２７１上の処理対象データを取り出し、同じくＣＰＵ２１が指示するバッファ領域２７１上の処理結果格納領域に処理結果データを格納する。このように各単位処理についてのデータの受け渡しは、画像読取部１１からのデータ入力及び画像処理部１２へのデータ出力も含めてバッファ領域２７１を介して行われ、データは処理が終了するまでバッファ領域２７１上に滞留する。
【００３２】
（２）動作
次に、本実施形態である画像形成装置１の動作について説明する。
画像形成装置１のユーザが、ユーザインタフェース１４を用いて画像処理を行う旨の命令を入力すると、画像形成装置１の制御部１０は、画像処理部１２に対して画像処理を指示する。画像処理部１２のＣＰＵ２１は、制御部１０からの指示を受けてその指示内容に基づいた画像処理プロセスを実行する。
【００３３】
図４は、画像処理部１２のＣＰＵ２１が行う処理を示すフローチャートである。この図を参照しながら、画像処理部１２の動作について説明する。
画像処理部１２のＣＰＵ２１は、制御部１０から画像処理を指示する旨の命令を受信すると（ステップＳ１；ＹＥＳ）、指示された画像処理について、割込み制御とポーリング制御とのどちらを行うかを選択するためのポーリング判定処理を行う（ステップＳ２）。
【００３４】
図５は、ポーリング判定処理の詳細を示すフローチャートである。この図を参照しながら、ポーリング判定処理について説明する。まず、ＣＰＵ２１は、制御部１０から指示された画像処理の処理種別情報を判定することによって、割込制御とポーリング制御のどちらを行うかを判定する（Ｓ１０１）。この判定は、ＲＯＭ２６に記憶されているクロックサイクル数テーブルＴＢＬ２６１に、その処理種別情報を有するレコードが記憶されているか否かによって判定する。記憶されている場合は（ステップＳ１０１；ＹＥＳ）、処理時間が算出可能であるためにポーリング制御を行うと判定し、記憶されていない場合は（ステップＳ１０１；ＮＯ）、処理時間が算出不可能であるために割込制御を行うと判定する。処理時間を算出可能であると判断された場合は、ポーリングフラグを「ＯＮ」に設定し（ステップＳ１０２）、それ以外の場合はポーリングフラグを「ＯＦＦ」に設定する（Ｓ１０３）。
【００３５】
図４の説明に戻る。ＣＰＵ２１は、図４のステップＳ２のポーリング判定処理設定されたポーリングフラグを判定することによって、ポーリング制御を行うか否かを判定する（ステップＳ３）。ポーリングフラグが「ＯＮ」に設定されている場合は（ステップＳ３；ＹＥＳ）、ポーリング制御を行うと判定され、ポーリング間隔を算出する処理を行う（ステップＳ４）。ポーリングフラグが「ＯＦＦ」に設定されている場合は（ステップＳ３；ＮＯ）、ポーリング制御を行わず割込制御を行うと判断され、ステップＳ４のポーリング間隔算出処理を行わず、ステップＳ５の割込／ポーリング切換処理に進む。
【００３６】
図４のステップＳ４で行うポーリング間隔算出処理について説明する。まず、ＣＰＵ２１は、ＲＯＭ２６から、バッファ量Ｂとシステムクロック周波数Ｆとを読み出す。また、クロックサイクル数テーブルＴＢＬ２６１から、指示された画像処理の処理種別情報を有するレコードを検索し、検索された処理種別情報に対応するクロックサイクル数Ｃｘを読み出す。また、入力された画像データの画素のデータ量Ｎ（単位：bit/pixel）を参照し、これらを用いて、ポーリング間隔を（６）式によって算出する。
【００３７】
このようにしてポーリング間隔が算出されると、ＣＰＵ２１は、割込／ポーリング切換処理を行う（ステップＳ５）。
図６は、割込／ポーリング切換処理を示すフローチャートである。この図を参照しながら、割込／ポーリング切換処理について説明する。まず、ＣＰＵ２１は、ポーリングフラグが「ＯＮ」であるか否かを判定する（ステップＳ２０１）。「ポーリングフラグ」が「ＯＦＦ」に設定されている場合は（ステップＳ２０１；ＮＯ）、割込制御を行うため、割込信号の受信を許可する（ステップＳ２０２）。ＣＰＵ２１はプロセッサ２２から割込信号を受信することによってプロセッサ２２の単位処理の終了を知り、この割込信号を受信すると、次の画像データをバッファ領域２７１に格納し、プロセッサ２２に単位処理を指示する。これを単位処理毎に繰り返すことによって画像処理プロセスが実行される。
【００３８】
図６のステップＳ２０１において、「ポーリングフラグ」が「ＯＮ」に設定されている場合は（ステップＳ２０１；ＹＥＳ）、ステップＳ２０３以降の処理に進み、ポーリング制御を行う。まず、割込信号の受信を禁止する（ステップＳ２０３）。この場合、プロセッサ２２からの割込が発生しても、ＣＰＵ２１はこれを無視する。そして、図４のステップＳ４で算出したポーリング間隔でタイマを発行する（ステップＳ２０４）。そして、設定したタイマがタイムアウトするまで待機し、タイマがタイムアウトすると（ステップＳ２０５；ＹＥＳ）、次の画像データをバッファ領域２７１に格納し、ポーリング処理によってプロセッサ２２に単位処理を指示する。（ステップＳ２０６）。これを単位処理毎に繰り返すことによって画像処理プロセスが実行される。
【００３９】
割込処理とポーリング処理とのそれぞれ１回の処理について比較すると、ポーリング処理のほうがＣＰＵ２１にかかる負荷が小さい。処理時間が算出可能な処理については割込処理ではなくポーリング処理によってプロセッサ２２の制御を行うことにより、ＣＰＵ２１の割込処理を減少させることが可能となり、これにより、ＣＰＵ２１に与える負荷を軽減し、画像処理がアプリケーションに与える影響を軽減することが可能となる。つまり、画像処理プロセスの一部を実行するハードウェアのメモリ量を最小化しつつ、画像処理プロセスがＣＰＵ２１に与える負荷を軽減させることができる。これにより、画像処理プロセス以外に他のアプリケーションが平行して動作しているような場合であっても、画像処理プロセスが他のアプリケーションに与える影響を最小限に抑えることが可能となる。
【００４０】
また、ポーリング間隔は、（６）式に示したように、プロセッサ２２が単位処理を行うのに要する処理時間が設定されるため、算出されたポーリング間隔でＣＰＵ２１がポーリング処理を行うことによって、プロセッサ２２が単位処理を終了する適切なタイミングでポーリング処理を行うことができる。
【００４１】
＜変形例＞
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。以下にその一例を示す。
（１）
上述した実施形態では、画像処理装置として、プリンタやスキャナ等の画像形成装置を用いたが、画像処理装置はこれに限定されるものではなく、パーソナルコンピュータなどであってもよく、画像処理を行う装置であればどのようなものであってもよい。
【００４２】
（２）
また、上述した実施形態では、処理時間が算出可能な画像処理として、ラスタ画像データの画像処理を例に挙げたが、処理時間が算出可能な画像処理を、ラスタ画像データの画像処理に限定するものではなく、処理時間が算出可能であれば、他のどのようなデジタルデータであってもよい。
また、処理時間が算出可能な画像処理を、処理対象となる画像データに依存しない画像処理としたが、処理時間が算出可能な画像処理をこれに限定するものではなく、処理時間が算出可能であればどのような画像処理であってもよい。
【００４３】
また、上述した実施形態では、処理時間が算出可能な処理として、フィルタ処理、カラーコンバージョン処理、ネガポジ反転処理、サブサンプリング処理、２値化処理を例に挙げたが、処理時間が算出可能な処理をこれに限定するものではなく、処理時間が算出可能であればどのような処理であってもよい。例えば、ヒストグラム生成処理等がある。
【００４４】
（３）
なお、上述した実施形態では、画像処理を行うプロセッサとして、１つのプロセッサ２２を用いたが、画像処理を行うプロセッサの数を１つに限定するものではなく、複数のプロセッサが用いられていてもよい。
また、上述した実施形態では、画像処理を行う装置をプロセッサとしたが、画像処理を行う装置は、例えばＤＳＰ等の汎用プロセッサを用いてもよく、これ以外でもＡＳＩＣ（Application Specific Integrated Circuit）等の特定用途のために設計されたＬＳＩ（Large Scale Integration）等を用いてもよい。
【００４５】
（４）
また、上述した実施形態では、ポーリング間隔を（６）式を用いて算出したが、ポーリング間隔の算出方法はこれに限定するものではなく、ポーリング間隔を好適に算出できる方法であればどのような方法であってもよい。例えば、フィルタ処理、カラーコンバージョン処理、ネガポジ反転処理、サブサンプリング処理または２値化処理の場合は、（１）式、（２）式、（３）式、（４）式、または（５）式を用いて、１画素の処理に要する処理時間を算出し、算出された処理時間に基づいて、ポーリング間隔を設定するようにしてもよい。
また、（６）式を用いてポーリング間隔を算出する場合は、バッファ量Ｂの係数Ｋは、１／２に設定することが好ましいが、係数Ｋの値はこれに限定されるものではなく、ポーリング間隔を好適に算出できる値であればどのような値であってもよい。
【００４６】
また、上述した実施形態では、画像処理部１２が画像処理を行う度に、ポーリング間隔を算出するようにしたが、各々の画像処理についてポーリング間隔を予め算出してＲＯＭ上のテーブルに格納しておき、画像処理を行う際にそのテーブルからポーリング間隔を参照するようにしてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態に係る画像形成装置１の全体構成を示す図である。
【図２】同実施形態の画像処理部１２の全体構成を示す図である。
【図３】同実施形態のクロックサイクル数テーブルＴＢＬ２６１のデータ構成図である。
【図４】同実施形態の処理を示すフローチャートである。
【図５】同実施形態のポーリング判定処理を示すフローチャートである。
【図６】同実施形態の割込／ポーリング切換処理を示すフローチャートである。
【符号の説明】
【００４８】
１…画像形成装置、１０…制御部、１１…画像読取部、１２…画像処理部、１３…画像出力部、１４…ユーザインタフェース、２０…画像処理チップ、２１…ＣＰＵ、２２…プロセッサ、２３…ローカルＲＡＭ、２４…画像入力Ｉ／Ｆ、２５…画像出力Ｉ／Ｆ、２６…ＲＯＭ、２７…ＲＡＭ、２７１…バッファ領域。
【図１】
2006268092.tif 000003
【図２】
2006268092.tif 000004
【図３】
2006268092.tif 000005
【図４】
2006268092.tif 000006
【図５】
2006268092.tif 000007
【図６】
2006268092.tif 000008