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