(57)【要約】【課題】パイプライン処理を行いつつ、キャッシュメモリを効率良く使用できるようにする。【解決手段】画像データから抽出されてキャッシュメモリに書き込まれるデータのデータ量Ｎを、画像データからデータが抽出される毎に順次増加させ、抽出されたデータをパイプライン処理機能により画像処理する。この際、キャッシュメモリにデータ量Ｎの画像データが書き込まれてからパイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を、増加したデータ量Ｎ毎に計時する。そして、計時された処理時間を解析し、データ量Ｎの増加に応じて処理時間の変化量が増大した場合、データ量Ｎの増加を停止させ、画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が増大する前のデータ量に固定する。【選択図】図１
2007279829.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う画像処理装置であって、
画像データを記憶する記憶手段と、
前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次増加させる可変手段と、
前記記憶手段に記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込手段と、
前記書込手段によりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変手段により増加させられたデータ量Ｎ毎に計時する計時手段と、
前記計時手段により計時された処理時間を解析し、前記データ量Ｎの増加に応じて前記処理時間の変化量が増大した場合、前記可変手段によるデータ量Ｎの増加を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が増大する前のデータ量に固定するデータ量固定手段と
を備えることを特徴とする画像処理装置。
【請求項２】
キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う画像処理装置であって、
画像データを記憶する記憶手段と、
前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次減少させる可変手段と、
前記記憶手段に記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込手段と、
前記書込手段によりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変手段により増加させられたデータ量Ｎ毎に計時する計時手段と、
前記計時手段により計時された処理時間を解析し、前記データ量Ｎの減少に応じて前記処理時間の変化量が減少した場合、前記可変手段によるデータ量Ｎの減少を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が減少したときのデータ量に固定するデータ量固定手段と
を備えることを特徴とする画像処理装置。
【請求項３】
コンピュータ装置を、
キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う装置として機能させるプログラムであって、
コンピュータ装置に、
画像データを記憶する記憶ステップと、
前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次増加させる可変ステップと、
前記記憶ステップにより記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込ステップと、
前記書込ステップによりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変ステップにより増加させられたデータ量Ｎ毎に計時する計時ステップと、
前記計時ステップにより計時された処理時間を解析し、前記データ量Ｎの増加に応じて前記処理時間の変化量が増大した場合、前記可変ステップによるデータ量Ｎの増加を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が増大する前のデータ量に固定するデータ量固定ステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプライン方式で画像処理を行う技術に関する。
【背景技術】
【０００２】
入力された画像データに各種画像処理を施して出力する画像処理装置が種々提案されており、その一例としては、特許文献１に開示されたパイプライン方式の画像処理装置がある。特許文献１には、画像の拡大や縮小、解像度変換や色変換などの基本的な処理を実行するモジュールを各処理毎に備え、これらモジュールを適宜組み合わせてパイプラインを形成し、そのパイプラインを形成するモジュールを順次機能させることによって、多様な画像処理を柔軟に実現する画像処理装置が開示されている。
【特許文献１】特開平７−１０５０２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
さて、上記パイプライン方式の画像処理装置では、モジュールの処理結果を、次の処理を行うモジュールへ引き渡す必要があり、このようなデータの引渡しは、例えば、以下のようにして行われる。まず、各モジュールの起動に先立って、画像処理を行うプロセッサのキャッシュメモリ内に各モジュールが使用するデータを格納するための領域が割り当てられる。そして、前段のモジュールは、処理結果であるデータを自身に割り当てられている領域に書き込むとともに、後段のモジュールに割り当てられている領域に引き渡すようになっている。
【０００４】
ここで、キャッシュメモリのサイズは小さいため、処理するデータのサイズがキャッシュメモリに割り当てられた領域サイズより大であるとキャッシュのヒットミスが生じ、キャッシュメモリを使用しているにも拘わらず処理の高速化が実現されないこととなる。
【０００５】
本発明は、上述した背景の下になされたものであり、パイプライン処理を行いつつ、キャッシュメモリを効率良く使用できる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために本発明は、キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う画像処理装置であって、画像データを記憶する記憶手段と、前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次増加させる可変手段と、前記記憶手段に記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込手段と、前記書込手段によりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変手段により増加させられたデータ量Ｎ毎に計時する計時手段と、前記計時手段により計時された処理時間を解析し、前記データ量Ｎの増加に応じて前記処理時間の変化量が増大した場合、前記可変手段によるデータ量Ｎの増加を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が増大する前のデータ量に固定するデータ量固定手段とを備えることを特徴とする画像処理装置を提供する。
【０００７】
また、本発明は、キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う画像処理装置であって、画像データを記憶する記憶手段と、前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次減少させる可変手段と、前記記憶手段に記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込手段と、前記書込手段によりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変手段により増加させられたデータ量Ｎ毎に計時する計時手段と、前記計時手段により計時された処理時間を解析し、前記データ量Ｎの減少に応じて前記処理時間の変化量が減少した場合、前記可変手段によるデータ量Ｎの減少を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が減少したときのデータ量に固定するデータ量固定手段とを備えることを特徴とする画像処理装置を提供する。
【０００８】
また、本発明は、コンピュータ装置を、キャッシュメモリに書き込まれた画像データを加工する複数のモジュールを組み合わせて構成されたパイプラインにより画像処理を行う装置として機能させるプログラムであって、コンピュータ装置に、画像データを記憶する記憶ステップと、前記画像データから抽出されて前記キャッシュメモリに書き込まれるデータのデータ量Ｎを、前記画像データからデータが抽出される毎に所定のデータ量から順次増加させる可変ステップと、前記記憶ステップにより記憶された画像データから前記データ量Ｎの画像データを抽出し、抽出したデータ量Ｎの画像データをキャッシュメモリに書き込む書込ステップと、前記書込ステップによりキャッシュメモリにデータ量Ｎの画像データが書き込まれてから前記パイプラインによる該データ量Ｎの画像データの加工が終了するまでの処理時間を前記可変ステップにより増加させられたデータ量Ｎ毎に計時する計時ステップと、前記計時ステップにより計時された処理時間を解析し、前記データ量Ｎの増加に応じて前記処理時間の変化量が増大した場合、前記可変ステップによるデータ量Ｎの増加を停止させ、前記画像データから抽出してキャッシュメモリに書き込むデータ量を変化量が増大する前のデータ量に固定するデータ量固定ステップとを実行させるプログラムを提供する。
【発明の効果】
【０００９】
本発明によれば、パイプライン処理を行いつつ、キャッシュメモリを効率良く使用することができる。
【発明を実施するための最良の形態】
【００１０】
［実施形態の構成］
図１は、本発明の実施形態に係る画像形成装置１の要部の構成を示したブロック図である。図１に示したように、画像形成装置１の各部は、バス１０１に接続されており、このバス１０１を介して各部間でデータの授受を行う。
【００１１】
画像入力部１０８は、文書を光学的に読み取るスキャナ機構や、文書をスキャナ機構に搬送するＡＤＦ（Auto Document Feeder）を具備している。ＡＤＦにセットされた文書は、スキャナ機構が具備するプラテンガラス上に一枚づつ搬送される。スキャナ機構は、ＡＤＦによってプラテンガラス上に搬送された文書に光を照射する。そして文書で反射した光をＣＣＤ（Charge Coupled Device）により読み取り、読み取った文書を表す画像データを生成する。この画像データは記憶部１０５に記憶される。
【００１２】
入力部１０６は、テンキーや矢印キー等、画像形成装置１を操作するための各種キーを備えている。ユーザがこれらのキーを操作することにより、画像形成装置１に対する各種指示の入力や画像形成装置１の各種設定が行われる。表示部１０７は、例えば、液晶ディスプレイ等の表示デバイスを有しており、ＣＰＵ１０２の制御の下、画像形成装置１を操作するためのメニュー画面や各種メッセージ等を表示する。
【００１３】
通信部１１０は、ＬＡＮ（Local Area Network：図示略）に接続されており、同じくＬＡＮに接続されているパーソナルコンピュータ等のコンピュータ装置（図示略）と通信を行う通信インターフェースとして機能する。通信部１１０は、ＬＡＮを介して送られた画像データや、画像データが表す画像を形成する際の書式を表す書式データを受信する。この受信されたデータは記憶部１０５に記憶される。
【００１４】
画像形成部１０９は、電子写真方式によって記録シートにトナー像を形成する画像形成エンジン（図示略）を具備している。この画像形成エンジンは中間転写方式を採用しており、Ｙ（Yellow），Ｍ（Magenta），Ｃ（Cyan），Ｋ（黒）の各色のトナー像を形成する画像形成ユニットを備えている。各画像形成ユニットは、記憶部１０５に記憶された画像データに従って感光体上に静電潜像を形成した後、感光体上にトナーを付着させてＹＭＣＫの各色のトナー像を形成する。そして、このトナー像を中間転写ベルトに転写した後、中間転写ベルトに転写されたトナー像を用紙トレイから搬送される記録シートに転写する。そして、記録シートに転写されたトナー像に熱と圧力を加えて定着させた後、トナー像が形成された記録シートを画像形成装置１外へ排出する。
【００１５】
記憶部１０５はハードディスク装置を具備しており、画像入力部１０８で生成された画像データや通信部１１０で受信した画像データ等の各種データを記憶する。ＲＯＭ１０３は、ＣＰＵ１０２により実行されるプログラムを記憶している。具体的には、ＲＯＭ１０３は、オペレーティングシステム（Operating System：以下「ＯＳ」と略称する）の機能をＣＰＵ１０２に実現させるためのＯＳプログラムと、パイプライン方式の画像処理を行うパイプライン処理機能を実現させるためのパイプラインプログラムと、パイプライン処理機能を構成する画像処理モジュールをＣＰＵ１０２に実現させる複数のモジュールプログラムＡ〜Ｃを記憶している。例えば、モジュールプログラムＡは、画像の輪郭を際だたせる処理（以下、「シャープネスフィルタリング処理」）を処理対象の画像データに施す処理モジュールＡを実現させるためのプログラムであり、モジュールプログラムＢは、画像の画線部と非画線部の濃度差を調整する処理（以下、「コントラスト調整処理」）を処理対象の画像データに施す処理モジュールＢを実現させるためのプログラムである。また、モジュールプログラムＣは、画像の色調を調整する処理（以下、「色調整処理」）を処理対象の画像データに施す処理モジュールＣを実現させるためのプログラムである。
【００１６】
ＣＰＵ１０２は、キャッシュメモリ１０２ａを備えており、ＲＯＭ１０３に記憶されているＯＳプログラムを読み出し、ＲＡＭ１０４を作業エリアにしてＯＳプログラムを実行し、画像形成装置１の各部を制御する。また、ＣＰＵ１０２は、ＲＯＭ１０３からパイプラインプログラムと、モジュールプログラムＡ〜Ｃを読み出して実行する。ＣＰＵ１０２がパイプラインプログラムを実行すると、モジュールプログラムＡ〜ＣがＲＯＭ１０３から読み出されてＣＰＵ１０２により実行される。ここで、モジュールプログラムＡ〜Ｃが実行される際には、ＣＰＵ１０２が備えるキャッシュメモリ１０２ａにおいて、図２に示したように、処理モジュールＡにより使用されるキャッシュ領域であって容量がＳバイトのキャッシュ領域Ａ、処理モジュールＢにより使用されるキャッシュ領域であって容量がＳバイトのキャッシュ領域Ｂ、および処理モジュールＣにより使用されるキャッシュ領域であって容量がＳバイトのキャッシュ領域Ｃが確保される。
【００１７】
そして、モジュールプログラムＡ〜Ｃが実行されると、図３に示したように処理モジュールＡ〜Ｃが実現し、パイプライン方式の画像処理を行うパイプライン処理機能が実現する。パイプライン処理機能が実現すると、記憶部１０５に記憶されている画像データがキャッシュ領域Ａに格納される。処理モジュールＡは、キャッシュ領域Ａに格納された画像データに画像処理を施し、この画像処理を施した画像データをキャッシュ領域Ｂに引き渡す。次に処理モジュールＢは、キャッシュ領域Ｂに格納された画像データに画像処理を施し、この画像処理を施した画像データをキャッシュ領域Ｃに引き渡す。そして、処理モジュールＣは、キャッシュ領域Ｃに格納された画像データに画像処理を施し、この画像処理を施した処理画像データを記憶部１０５に記憶する。
【００１８】
［実施形態の動作］
次に、本実施形態の動作について図面を参照して説明する。
【００１９】
（初期化動作）
まず、画像形成装置１の電源が投入されると、ＣＰＵ１０２は、ＲＯＭ１０３に記憶されているＯＳプログラムを読み出して実行する。これにより、画像形成装置１の各部を制御する機能が実現する。ＣＰＵ１０２は、ＯＳプログラムを実行した後、パイプラインプログラムを読み出して実行する。
【００２０】
パイプラインプログラムが実行されると、モジュールプログラムＡ〜ＣがＲＯＭ１０３から読み出されてＣＰＵ１０２により実行される。ここで、モジュールプログラムＡ〜Ｃが実行される際には、ＣＰＵ１０２が備えるキャッシュメモリ１０２ａにおいて、図２に示したように、処理モジュールＡにより使用されるキャッシュ領域Ａ、処理モジュールＢにより使用されるキャッシュ領域Ｂ、および処理モジュールＣにより使用されるキャッシュ領域Ｃが確保される。そして、モジュールプログラムＡ〜Ｃが実行されると、図３に示したように処理モジュールＡ〜Ｃが実現し、パイプライン方式の画像処理を行うパイプライン処理機能が実現する。
【００２１】
（画像処理動作）
次にパイプライン処理機能により画像処理が行われるときの動作について説明する。まず、ＬＡＮを介して送信された画像データが通信部１１０にて受信されると、この画像データは記憶部１０５に記憶される。画像データが記憶部１０５に記憶されると、キャッシュ領域Ａに格納するために記憶部１０５から抽出するデータの量を表す変数Ｎが初期化されて変数Ｎの値が「１」になる（図４：ステップＳＡ１）。
【００２２】
変数Ｎの値が初期化されると、パイプライン処理機能による画像処理が開始されてから画像処理が終了するまでの画像処理時間のカウントが開始され（ステップＳＡ２）、この後、パイプライン処理機能による画像処理が行われる（ステップＳＡ３）。
【００２３】
具体的には、記憶部１０５に記憶された画像データから変数Ｎが表す量のデータ（ここではＮが１であるため１バイト分）が抽出され、抽出されたデータがキャッシュ領域Ａに格納される（図５（ａ））。処理モジュールＡは、キャッシュ領域Ａに１バイト分のデータが格納されると、格納されたデータを読み込んで画像処理を施し（図５（ｂ））、この画像処理を施したデータをキャッシュ領域Ｂに引き渡す（図５（ｃ））。次に処理モジュールＢは、キャッシュ領域Ｂに引き渡された１バイト分のデータを読み込んで画像処理を施す（図５（ｄ））。ここで処理モジュールＢは、キャッシュメモリに格納されたデータを読み込むので処理が高速に行われる。処理モジュールＢは、画像処理を終了すると、この画像処理を施したデータをキャッシュ領域Ｃに引き渡す（図５（ｅ））。そして、処理モジュールＣは、キャッシュ領域Ｃに引き渡された１バイト分のデータに画像処理を施す。ここでも、処理モジュールＣは、キャッシュメモリに格納されたデータを読み込むので処理が高速に行われる。処理モジュールＣは、画像処理を終了すると、この画像処理を施した処理画像データを記憶部１０５に記憶する（図５（ｆ））。
【００２４】
ここで、処理モジュールＣによる画像処理が終了すると、画像処理時間のカウントが停止され（ステップＳＡ４）、変数Ｎとカウントされた画像処理時間Ｔ１とが対応付けされて記憶部１０５に記憶される（ステップＳＡ５）。そして、この後に記憶部１０５が参照され、記憶部１０５に画像処理時間が２以上記憶されているか否かが判断される（ステップＳＡ６）。この時点では、画像処理時間Ｔは一つしか記憶されていないので（ステップＳＡ６；ＮＯ）、この後、記憶部１０５に記憶されている画像データについて画像処理が終了したか否かが判断される（ステップＳＡ７）。ここでは、まだ１バイト分のデータしか処理されていないので、終了していないと判断される。ここで画像処理が終了していないと判断されると、変数Ｎに「１」が加算されて（ステップＳＡ８）変数Ｎが「２」となる。そして処理の流れがステップＳＡ２に戻される。
【００２５】
処理の流れがステップＳＡ２に戻されると、画像処理時間Ｔが一旦初期化された後、再び画像処理時間Ｔのカウントが開始され（ステップＳＡ２）、この後、パイプライン処理機能による画像処理が行われる（ステップＳＡ３）。
【００２６】
具体的には、記憶部１０５に記憶された画像データにおいて、画像処理が施されていないデータの中から変数Ｎが表す量のデータ（ここではＮが２であるため２バイト分）が抽出され、抽出されたデータがキャッシュ領域Ａに格納される（図６（ａ））。処理モジュールＡは、キャッシュ領域Ａに２バイト分のデータが格納されると、格納された２バイト分のデータを読み込んで画像処理を施し（図６（ｂ））、この画像処理を施したデータをキャッシュ領域Ｂに引き渡す（図６（ｃ））。ここで処理モジュールＢは、キャッシュメモリに格納されたデータを読み込む（図６（ｄ））ので処理が高速に行われる。処理モジュールＢは、画像処理を終了すると、この画像処理を施したデータをキャッシュ領域Ｃに引き渡す（図６（ｅ））。そして、処理モジュールＣは、キャッシュ領域Ｃに格納された２バイト分のデータに画像処理を施す。ここでも、処理モジュールＣは、キャッシュメモリに格納されたデータを読み込むので処理が高速に行われる。処理モジュールＣは、画像処理を終了すると、この画像処理を施した処理画像データを記憶部１０５に記憶する（図６（ｆ））。
【００２７】
処理モジュールＣによる画像処理が終了すると、画像処理時間Ｔのカウントが停止され（ステップＳＡ４）、変数Ｎとカウントした画像処理時間Ｔ２とが対応付けされて記憶部１０５に記憶される（ステップＳＡ５）。ここでカウントされた画像処理時間Ｔ２は、記憶部１０５から抽出したデータ量が１バイトのとき（変数Ｎが１のとき）の画像処理時間Ｔ１と比較すると、処理するデータの量が２バイトに増えているので、図７に示したように、その分だけ処理時間が増加している。
【００２８】
次に、画像形成装置１においては記憶部１０５が参照され、記憶部１０５に画像処理時間Ｔが２以上記憶されているので（ステップＳＡ６；ＹＥＳ）、記憶部１０５から抽出したデータ量が１バイトのときにカウントした画像処理時間Ｔ１と、データ量が２バイトのときにカウントした画像処理時間Ｔ２との時間差（Ｔ２−Ｔ１）、即ち、キャッシュ領域にデータを格納する際に記憶部１０５から抽出するデータの量を増やしたことに伴って増加した画像処理時間の増加量の算出が行われる。そして、この算出された時間差が変数Ｎに対応付けられて記憶部１０５に記憶される（ステップＳＡ９）。
【００２９】
次に、画像形成装置１においては記憶部１０５が参照され、記憶部１０５に時間差が２以上記憶されているか否かが判断される（ステップＳＡ１０）。この時点では、時間差は一つしか記憶されていないので、ステップＳＡ１０でＮＯと判断される。
【００３０】
ステップＳＡ１０でＮＯと判断されると、この後、記憶部１０５に記憶されている画像データについて画像処理が終了したか否かが判断される（ステップＳＡ７）。ここでは、まだ３バイト分のデータしか処理されていないので、終了していないと判断され、変数Ｎに「１」が加算されて変数Ｎが「３」となる（ステップＳＡ８）。そして、処理の流れがステップＳＡ２に戻される。
【００３１】
処理の流れがステップＳＡ２に戻されると、画像処理時間Ｔが一旦初期化された後、再び画像処理時間Ｔのカウントが開始され（ステップＳＡ２）、この後、パイプライン処理機能による画像処理が行われ（ステップＳＡ３）、画像処理が終了すると、画像処理時間Ｔのカウントが停止される（ステップＳＡ４）。そして、変数Ｎとカウントした画像処理時間Ｔ３とが対応付けされて記憶部１０５に記憶された後（ステップＳＡ５）、カウントした画像処理時間Ｔ３と、画像処理時間Ｔ２との時間差の算出が行われる。そして、この算出された時間差（Ｔ３−Ｔ２）が記憶部１０５に記憶される（ステップＳＡ９）。
【００３２】
ここで、記憶部１０５された時間差の数が２以上になると（ステップＳＡ１０；ＹＥＳ）、算出した時間差と、変数Ｎが「Ｎ−１」であった時に算出した時間差との比較（換言すると、記憶部１０５から抽出したデータ量がＮ−２バイトからＮ−１バイトへ増加したときの画像処理時間の増加量と、データ量がＮ−１バイトからＮバイトへ増加したときの画像処理時間の増加量との比較）が行われる。ここでは、変数Ｎの値が「３」であるため、記憶部１０５から抽出されたデータ量が３バイトのときに掛かった画像処理時間Ｔ３とデータ量が２バイトのときに掛かった画像処理時間Ｔ２の時間差Ｄ２（Ｔ３−Ｔ２）と、データ量が２バイトのときに掛かった画像処理時間Ｔ２とデータ量が１バイトのときに掛かった画像処理時間Ｔ１の時間差Ｄ１（Ｔ２−Ｔ１）との比較が行われる（ステップＳＡ１１）。
【００３３】
ここで、算出した時間差Ｄ２が時間差Ｄ１以下である場合（ステップＳＡ１１；ＹＥＳ）（換言すると、キャッシュ領域に格納されるデータ量が「２バイト」から「３バイト」へ増加したときの画像処理時間の増加量が、キャッシュ領域に格納されるデータ量が「１バイト」から「２バイト」へ増加したときの画像処理時間の増加量より少ないか等しい場合）、ステップＳＡ７およびステップＳＡ８の処理が行われた後、処理の流れがステップＳＡ２に移行する。
【００３４】
この後、上述したステップＳＡ２〜ステップＳＡ１１、ステップＳＡ７〜ステップＳＡ８の処理が繰り返され、順次増加した変数Ｎの値が「Ｓ＋１」、即ち、キャッシュ領域の容量Ｓの値より大きくなると、画像処理時間Ｔが一旦初期化された後、再び画像処理時間Ｔのカウントが開始され（ステップＳＡ２）、この後、パイプライン処理機能による画像処理が行われる（ステップＳＡ３）。
この場合、記憶部１０５からＳ＋１バイトのデータが抽出されるが、抽出した量のデータは一度にはキャッシュ領域に格納できないため、まず、読み出したＳ＋１バイトのデータのうち、キャッシュ領域Ａに格納できる分のデータ（Ｓバイト）がキャッシュ領域Ａに格納される（図８（ａ））。
【００３５】
処理モジュールＡは、キャッシュ領域ＡにＳバイト分のデータが格納されると、格納されたデータを読み込んで画像処理を施し（図８（ｂ））、この画像処理を施したデータをキャッシュ領域Ｂに引き渡す（図８（ｃ））。次に処理モジュールＢは、キャッシュ領域Ｂに格納されたＳバイト分のデータを読み込んで画像処理を施す（図８（ｄ））。処理モジュールＢは、画像処理を終了すると、この画像処理を施したデータをキャッシュ領域Ｃに引き渡す（図８（ｅ））。そして、処理モジュールＣは、キャッシュ領域Ｃに格納されたＳバイト分のデータに画像処理を施す。処理モジュールＣは、画像処理を終了すると、この画像処理を施した処理画像データを記憶部１０５に記憶する（図８（ｆ））。
【００３６】
次に画像形成装置１においては、抽出したＳ＋１バイトのデータのうち、まだ画像処理が行われていない残りの１バイトのデータをキャッシュ領域Ａに格納する。データがキャッシュ領域Ａに格納されると、変数Ｎが「１」のときと同様に各処理モジュールにより画像処理が行われ、この画像処理が施された処理データが記憶部１０５に記憶される。これにより、読み出されたＮバイト（Ｓ＋１バイト）のデータの画像処理が終了する。
【００３７】
ここで、処理モジュールＣによる画像処理が終了すると、画像処理時間Ｔのカウントが停止され（ステップＳＡ４）、変数Ｎとカウントした画像処理時間Ｔｎとが対応付けされて図９に示したように記憶部１０５に記憶される（ステップＳＡ５）。このようにキャッシュ領域の容量Ｓより大きなサイズのデータを記憶部１０５から抽出してキャッシュ領域に格納しようとすると、読み出されたデータは一度にキャッシュ領域に格納することができず、キャッシュ領域に格納できなかった分のデータを後で処理することになるため、画像処理時間Ｔは、この後で処理した分だけ増えることとなる。
【００３８】
次に、画像形成装置１においては記憶部１０５が参照され、記憶部１０５に画像処理時間Ｔが２以上記憶されているので（ステップＳＡ６；ＹＥＳ）、記憶部１０５から抽出したデータ量がＳバイトのときにカウントした画像処理時間Ｔｎ−１と、データ量がＳ＋１バイトのときにカウントした画像処理時間Ｔｎとの時間差Ｄｎ、即ち、キャッシュ領域にデータを格納する際に記憶部１０５から抽出するデータの量を増やしたことに伴って増加した画像処理時間の増加量の算出が行われる。そして、この算出された時間差が変数Ｎに対応付けられて記憶部１０５に記憶される（ステップＳＡ９）。
【００３９】
次に画像形成装置１においては、時間差が２以上記憶されているので（ステップＳＡ１０；ＹＥＳ）、この算出した時間差Ｄと、変数Ｎが「Ｎ−１」であった時に算出した時間差Ｄｎ−１との比較（換言すると、キャッシュ領域に格納するために記憶部１０５から抽出されたデータ量がＳ−１バイトからＳバイトへ増加したときの画像処理時間の増加量と、データ量がＳバイトからＳ＋１バイトへ増加したときの画像処理時間の増加量との比較）が行われる（ステップＳＡ１１）。
【００４０】
抽出したデータ量がＳバイトのときには、抽出したデータを一度にキャッシュ領域に格納できるため、抽出されたデータ量がＳ−１バイトからＳバイトへ増加したときの画像処理時間の増加量は、それまの画像処理時間の増加量と比較して大きく変化することがない。一方、抽出したデータ量がＳ＋１バイトのときには、上述したようにパイプラインによる画像処理が２回行われ、抽出したデータ量がＳバイトの場合と比較して処理時間が大幅に増加しているため、算出した処理時間の増加量は、それまでの増加量と比較して大幅に大となる（図７）。
【００４１】
ここで、この算出した時間差Ｄと、変数Ｎが「Ｎ−１」であった時に算出した時間差Ｄｎ−１より大になったと判断されると（ステップＳＡ１１；ＮＯ）、これ以降、記憶部１０５から読み出されるデータ量は、変数Ｎが表す値Ｎから１を引いた「Ｎ−１」バイト（即ちＳバイト）に固定される。そして、ステップＳＡ３と同様にパイプライン機能による画像処理（ステップＳＡ１２）が実行され、記憶部１０５に記憶されている画像データについて画像処理が終了すると（ステップＳＡ１４；ＹＥＳ）、記憶部１０５に記憶された処理画像データに従って記録シートに画像が形成されて出力される。
【００４２】
以上説明したように、本実施形態によれば、処理モジュールに対応して確保されたキャッシュ領域の容量に対応して、記憶部１０５からキャッシュメモリへ格納するデータの量を制御するので、キャッシュミスが発生する回数が少なくなり、効率良く画像処理を行うことができる。
【００４３】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
【００４４】
上述した実施形態においては、３つのモジュールプログラムがＲＯＭ１０３に記憶されており、この３つのモジュールプログラムにより実現する画像処理モジュールで画像処理のパイプラインが構成されている場合について説明したが、ＲＯＭ１０３に記憶されるモジュールプログラムの数は３つに限定される２または４以上であってもよい。また、画像処理のパイプラインを構成する画像処理のモジュールの数は、２または４以上であってもよい。
【００４５】
上述した各処理モジュールにおいては、次の処理モジュールが使用するキャッシュ領域に引き渡すデータ量が各々同じとなっているが、画像処理の内容によっては処理後のデータの量が異なり、次のモジュールに引き渡すデータの量が処理モジュール毎に異なる場合もある。
【００４６】
上述した実施形態においては、変数Ｎの値を順次増加させていっているが、予め定めた値から順次減少させていき、処理時間の減少量が大きく変化したところで、変数Ｎの値を固定するようにしてもよい。
【００４７】
上述した実施形態においては、パイプライン処理機能と、処理モジュールＡ〜Ｃは画像形成装置１において実現されているが、パイプライン処理機能と、処理モジュールＡ〜Ｃをパーソナルコンピュータ装置やサーバ装置等のコンピュータ装置上で実現し、画像処理をこれらのコンピュータ装置で行い、画像処理の結果を画像形成装置１に出力するようにしてもよい。
【００４８】
上述した実施形態においては、ＯＳプログラム、パイプラインプログラム、およびモジュールプログラムＡ〜ＣはＲＯＭに記憶されているが、これらのプログラムは記憶部１０５に記憶させるようにしてもよい。また、これらのプログラムをＣＤ−ＲＯＭやＤＶＤ等の記録媒体に記録し、ＣＰＵ１０２は、この記録媒体から各種プログラムを読み出して実行するようにしてもよいし、これらのプログラムを記録媒体から読み出して記憶部１０５にインストールするようにしてもよい。また、これらのプログラムを通信ネットワークを介してサーバ装置からダウンロードしてインストールするようにしてもよい。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施形態に係る画像形成装置のハードウェア構成を示したブロック図である。
【図２】キャッシュメモリに確保されるキャッシュ領域Ａ〜Ｃを例示した図である。
【図３】モジュールプログラムを実行することにより実現する処理モジュールの構成を例示したブロック図である。
【図４】画像形成装置１における処理の流れを示したフローチャートである。
【図５】実施形態の動作を説明するための図である。
【図６】実施形態の動作を説明するための図である。
【図７】キャッシュメモリに格納するデータの量を増加させていったときの処理時間の変化を表すグラフである。
【図８】実施形態の動作を説明するための図である。
【図９】記憶部に記憶された変数Ｎ、画像処理時間、時間差を例示した図である。
【符号の説明】
【００５０】
１・・・画像形成装置、１０１・・・バス、１０２・・・ＣＰＵ、１０２ａ・・・キャッシュメモリ、１０３・・・ＲＯＭ、１０４・・・ＲＡＭ、１０５・・・記憶部、１０６・・・入力部、１０７・・・表示部、１０８・・・画像入力部、１０９・・・画像形成部、１１０・・・通信部
【図１】
2007279829.tif 000003
【図２】
2007279829.tif 000004
【図３】
2007279829.tif 000005
【図４】
2007279829.tif 000006
【図５】
2007279829.tif 000007
【図６】
2007279829.tif 000008
【図７】
2007279829.tif 000009
【図８】
2007279829.tif 000010
【図９】
2007279829.tif 000011