(57)【特許請求の範囲】
【請求項１】
１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御手段と、
前記バンドバッファの何れかから１バンド分の画像データを読み出し、各々異なる画像処理を実行する複数の画像処理モジュールを含むパイプラインへその画像データを出力する読み出し制御手段と、を備え、
前記読み出し制御手段は、
前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれている場合には、該複数のウィンドウ処理モジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して前記パイプラインへ供給する
ことを特徴とするバッファ制御モジュール。
【請求項２】
複数のバンドバッファと、
各々異なる画像処理を実行する複数の画像処理モジュールを含むとともに、前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれているパイプラインと、
１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御と前記バンドバッファの何れかから１バンド分の画像データを読み出し前記パイプラインへその画像データを出力する読み出し制御とを行うバッファ制御モジュールと、を備え、
前記バッファ制御モジュールは、
前記パイプラインへ画像データを供給する際に、前記ウィンドウ処理を行う前記複数のモジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して供給する
ことを特徴とする画像処理装置。
【請求項３】
コンピュータ装置を、
１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御手段と、
前記バンドバッファの何れかから１バンド分の画像データを読み出し、各々異なる画像処理を実行する複数の画像処理モジュールを含むパイプラインへその画像データを出力する読み出し制御手段として機能させ、
前記読み出し制御手段は、
前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれている場合には、該複数のウィンドウ処理モジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して前記パイプラインへ供給する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理対象の画像データを複数のバンドに分割して画像処理を施す技術に関する。
【背景技術】
【０００２】
複写機やプリンタ装置などの画像処理装置のなかには、１ページ分の画像データを一括して読み込んで処理するページ処理方式のものと、１ページ分の画像データを副走査方向に複数ラインずつのブロック（以下、バンドと呼ぶ）に分割しそのバンド単位で読み込みで処理するバンド処理方式（例えば、特許文献１参照）のものとがあり、画像処理の対象である画像データを蓄積するために実装するべきメモリ量が少なくて済むといった利点から後者の方が主流になってきている。
【特許文献１】特開平１１−１１２８７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、複写機やプリンタ装置などの画像処理装置は、処理対象の画像に対して色変換処理や拡大／縮小処理、回転処理などの処理毎にその処理を実行する専用のモジュールを有し、これらモジュールを予め定められた順番で作動させることによって画像処理を実現するように構成されていることが一般的である。なお、以下では、上記各モジュールの組み合わせを「パイプライン」とも呼ぶ。
【０００４】
上記パイプラインのなかに、フィルタ処理のように例えば３×３画素からなるウィンドウの中心に位置する画素に施す処理内容をその周辺に位置する８個の画素の画素値に応じて決定するウィンドウベースの処理を実行するモジュールが含まれていると、その処理実行後に有効画素数が減少（以下、有効画素の縮退と呼ぶ）してしまう場合がある。ページ処理方式の画像処理装置においては、図９（ａ）に示すように、ページの最外郭のみで上記有効画素の縮退（図９（ａ）では縮退する画素をハッチングで示している。図９（ｂ）でも同様）が発生するのであるが、バンド処理方式の画像処理装置においては、図９（ｂ）に示すように各バンドの最外郭で有効画素の縮退が発生してしまう。つまり、バンド処理方式の画像処理装置では、ウィンドウベースの処理による有効画素の縮退がページ処理方式の画像処理装置よりも顕著であり、この点は、バンド処理方式の画像処理装置の大きな問題点となっている。
【０００５】
一般に、パイプラインによる画像処理の前後で、有効画素の数は一致していることが必要であるため、上記有効画素の縮退に対処するための方策が従来より種々提案されており、その一例としては、一括オーバラップ付与方式と分割オーバラップ付与方式の２つの方法が挙げられる。
【０００６】
一括オーバラップ付与方式とは、パイプラインの先頭で全画像処理に必要なオーバラップ画素（有効画素の縮退を考量して付加する画素）を一括して付与する方法である。例えば、上記パイプラインが、ウィンドウサイズが７×７であるフィルタ処理を行うモジュールとウィンドウサイズが３×３であるフィルタ処理を行うモジュールで構成されている場合には、そのパイプラインによる画像処理で処理対象の画像データ（１ページ分または１バンド分の画像データ）の最外郭の４画素分の有効画素の縮退が発生してしまう。このため、一括オーバラップ付与方式では、その画像データの外側に４画素分のオーバラップを付与し、図１０（ａ）に示すように７×７のフィルタ処理を行い、その後、図１０（ｂ）に示すように３×３のフィルタ処理を行う。なお、図１０（ａ）および図１０（ｂ）では、本来の処理対象である画像データがハッチングで示されている（図１１についても同様）。
【０００７】
一方、分割オーバラップ方式とは、各フィルタ処理の直前にその処理で縮退する有効画素数に応じたオーバラップ画素を付与する方式である。具体的には、上記パイプラインが、ウィンドウサイズが７×７であるフィルタ処理を行うモジュールとウィンドウサイズが３×３であるフィルタ処理を行うモジュールで構成されている場合には、７×７のフィルタ処理の直前に図１１（ａ）に示すように３画素分のオーバラップが付与され、３×３のフィルタ処理の直前に図１１（ｂ）に示すように１画素分のオーバラップが付与される。
【０００８】
図１１（ａ）および（ｂ）においては、一括オーバラップ付与方式で付与されるオーバラップとの差分が点線で示されている。この図１１（ａ）および（ｂ）を参照すれば明らかなように、分割オーバラップ付与方式は、一括オーバラップ付与方式に比較してオーバラップの数が少なくて済むといった特徴がある。パイプラインへ投入される画素数が増加することは、画像処理の生産性（例えば、単位時間当たりに画像処理可能な紙文書の枚数）の低下を招く一因となってしまうため、この観点からは、分割オーバラップ付与方式の方が優れていると言える。しかしながら、分割オーバラップ付与方式では、各フィルタ処理モジュールの前段でそのフィルタ処理モジュールのウィンドウサイズに応じたオーバラップの付与を行う必要があるため、処理対象の画像データをバンドバッファから読み出す際のアドレス制御が繁雑になってしまうといった問題点がある。
本発明は、上記課題に鑑みて為されたものであり、簡便にオーバラップ画像の付与を行うことができ、かつ、バンド単位で画像処理を行う場合にも生産性の低下を招くことのないオーバラップ画素付与技術を提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の第１の態様に係るバッファ制御モジュールは、１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御手段と、前記バンドバッファの何れかから１バンド分の画像データを読み出し、各々異なる画像処理を実行する複数の画像処理モジュールを含むパイプラインへその画像データを出力する読み出し制御手段と、を備え、前記読み出し制御手段は、前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれている場合には、該複数のウィンドウ処理モジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して前記パイプラインへ供給することを特徴としている。
【００１０】
また、上記課題を解決するために、本発明の第２の態様に係る画像処理装置は、複数のバンドバッファと、各々異なる画像処理を実行する複数の画像処理モジュールを含むとともに、前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれているパイプラインと、１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御と、前記バンドバッファの何れかから１バンド分の画像データを読み出し前記パイプラインへその画像データを出力する読み出し制御手段とを行うバッファ制御モジュールと、を備え、前記バッファ制御モジュールは、前記パイプラインへ画像データを供給する際に、前記ウィンドウ処理を行う前記複数のモジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して供給することを特徴としている。
【００１１】
また、上記課題を解決するために、本発明の第３の態様に係るプログラムは、コンピュータ装置を、１ページ分の画像データを複数のバンドに分割しバンド毎に異なるバンドバッファへ書き込む書き込み制御手段と、前記バンドバッファの何れかから１バンド分の画像データを読み出し、各々異なる画像処理を実行する複数の画像処理モジュールを含むパイプラインへその画像データを出力する読み出し制御手段として機能させ、前記読み出し制御手段は、前記複数の画像処理モジュールにウィンドウ処理を行うモジュールが複数含まれている場合には、該複数のウィンドウ処理モジュールのうちで最大のウィンドウサイズを有するモジュールにて縮退する有効画素数に応じた数のオーバラップを付与して前記パイプラインへ供給することを特徴としている。
【発明の効果】
【００１２】
本発明によれば、簡便にオーバラップ画像の付与を行うことができ、かつ、バンド単位で画像処理を行う場合にも生産性の低下を招くことがない、といった効果を奏する。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を電子写真方式の複写機へ適用した場合の実施例について図面を参照しつつ説明する。
（Ａ：構成）
図１は、本発明の１実施形態に係る画像処理装置１０の構成例を示すブロック図である。
図１に示すように、画像処理装置１０は、入力部１１０、ＡＳＩＣ１２０、出力部１３０およびＳＤＲＡＭで構成された記憶部１４０を有している。
入力部１１０は、処理対象の画像を光学的に読み取ってその画像に対応する画像信号を出力するＣＣＤセンサや、その出力信号をサンプルフォールドしてアナログ／ディジタル変換を施し画像データを生成する信号処理回路（何れも図示省略）などを含んでいる。この入力部１１０は、上記のようにして生成した画像データをＡＳＩＣ１２０へ引き渡す。
【００１４】
ＡＳＩＣ１２０は、入力部１１０から引き渡された画像データに対して、記憶部１４０をワークエリアとして用いて色変換処理や拡大／縮小、回転処理などの各種画像処理を施し、その処理結果を出力部１３０へ引き渡すものである。このＡＳＩＣ１２０は、図１に示すように、バッファ制御部１２１０ａ、１２１０ｂおよび１２１０ｃと、画像処理部１２２０ａおよび１２２０ｂを含んでいる。なお、以下では、上記３つのバッファ制御部を互いに区別する必要がない場合には、「バッファ制御部１２１０」と表記する。同様に、上記２つの画像処理部についても、互いに区別する必要がない場合には、「画像処理部１２２０」と表記する。
【００１５】
画像処理部１２２０は、その前段に位置するバッファ制御部１２１０から引き渡された画像データに対して所定のウィンドウサイズのフィルタ処理を施し、その後段に位置するバッファ制御部１２１０へ引き渡すものである。本実施形態では、画像処理部１２２０ｂは、３×３のウィンドウサイズのフィルタ処理を行う画像処理モジュールであり、図２に示すような構成を有している。一方、画像処理部１２２０ａは、７×７のウィンドウサイズのフィルタ処理を行う画像処理モジュールである。
【００１６】
図１に示すように、ＡＳＩＣ１２０の内部では、各々異なるフィルタ処理を実行する画像処理部１２２０ａと１２２０ｂとがバッファ制御部１２１０ｂを介して直列に配列されており、入力部１１０から引き渡された画像データはバッファ制御部１２１０ａを介して画像処理部１２２０ａに供給され、画像処理部１２２０ｂから出力される画像データは、バッファ制御部１２１０ｃを介して出力部１３０へ供給されるようになっている。つまり、ＡＳＩＣ１２０の内部においては、画像処理部１２２０ａおよび１２２０ｂにより２段階のパイプラインが形成されている。このように、図１に示す画像処理装置１０は、処理対象である画像データに対してパイプライン方式の画像処理を実行する画像処理装置である。
【００１７】
バッファ制御部１２１０は、その前段から引き渡される画像データを複数のバンドに分割して記憶部１４０へ書き込む一方、このようにして書き込んだ画像データをバンド単位で読み出してその後段に位置するモジュールへ引き渡すものである。例えば、バッファ制御部１２１０ａは、入力部１１０から引き渡される１ページ分の画像データを、図３（ａ）に示すように３つのバンドに分割して記憶部１４０へ書き込む一方、これら３つのバンドの画像データを各バンド単位で読み出して画像処理部１２２０ａに引き渡す。バッファ制御部１２１０ｂは、画像処理部１２２０ａから上記バンド単位で引き渡される画像データを記憶部１４０へ書き込む一方、このようにして書き込んだ画像データをバンド単位で読み出し画像処理部１２２０ｂへ引き渡す。そして、バッファ制御部１２１０ｃは、画像処理部１２２０ｂから上記バンド単位で引き渡される画像データを記憶部１４０へ書き込む一方、このようにして書き込んだ画像データをバンド単位で読み出し出力部１３０へ引き渡す。このバッファ制御部１２１０は、ＣＰＵやＲＯＭ、ＲＡＭなどにより構成
さており、ＲＯＭには記憶部１４０への画像データの書き込み制御およびその画像データの読み出し制御をＣＰＵに実行させるための制御プログラムが予め記憶されている。一方、上記ＲＡＭは、その制御プログラムの実行過程で使用されるReadカウンタやWriteカウンタ、Readリセットフラグなどの各種変数が格納される。なお、これら変数については、後に詳細に説明する。
【００１８】
加えて、バッファ制御部１２１０は、ウィンドウ処理にて有効画素の縮退が発生することに対処するために、そのウィンドウ処理の処理対象である１バンド分の画像データにオーバラップ画素およびリプリケーション画素を付与する機能も備えている。ただし、バッファ制御部１２１０が実行するオーバラップ付与処理が、従来のオーバラップ付与処理（前述した一括オーバラップ付与処理や分割オーバラップ付与処理）と異なっている点は、常に一定量のオーバラップ画素を付与する点である。なお、この一定量のオーバラップ画素の数を示すデータは上記ＲＯＭに予め記憶されている。
【００１９】
より詳細に説明すると、バッファ制御部１２１０は、パイプラインを形成する複数の画像処理部のうち、最も有効画素の縮退が大きい画像処理モジュール（すなわち、最も大きなウィンドウサイズでウィンドウ処理を行う画像処理モジュール）にて縮退する画素数に応じた数分のオーバラップ画素を付与する。本実施形態においては、画像処理部１２２０ａにおけるウィンドウ処理のウィンドウサイズは７×７（すなわち、最外郭の３画素分が縮退する）であり、画像処理部１２２０ｂにおけるウィンドウ処理のウィンドウサイズは３×３（すなわち、最外郭の１画素分が縮退する）であるから、バッファ制御部１２１０は、３画素分のオーバラップ画素を付与する。具体的には、バッファ制御部１２１０は、図３（ｂ）に示す第２バンドエリアに格納されている画像データを読み出す際には、図３（ｂ）に示すように、第１バンドエリアの底から３ライン分の画像データを上部オーバラップとして読み出すとともに、第３バンドエリアの上端から３ライン分の画像データを下部オーバラップとして読み出す。なお、図では、リプリケーション画素の読み出し態様については図示を省略したが、上記上部オーバラップ、第２バンドエリアおよび下部オーバラップの主走査方向の両端の３画素を重複して読み出すようにすれば良い。
【００２０】
ここで、図４を参照すれば明らかなように、本実施形態に係るバッファ制御部１２１０により付与されるオーバラップ画素の数は、７×７および３×３のフィルタ処理を直列に行うパイプラインに対して一括オーバラップ付与方式で付与されるオーバラップ画素の数に比較してその最外郭の１画素分少ない。このため、本実施形態に係るバッファ制御部１２１０によれば、従来の一括オーバラップ付与方式に比較して生産性の低下が少なくなる。また、本実施形態に係るバッファ制御部１２１０によれば、常に一定量のオーバラップ画素を付与するため、従来の分割オーバラップ付与方式に比較して、簡単なアドレス制御でオーバラップ画素を付与することが可能になる。
【００２１】
そして、出力部１３０は、ＡＳＩＣ１２０から引き渡される画像データ（すなわち、ＡＳＩＣ１２０内の各画像処理部によりパイプライン方式の画像処理が施された画像データ）に応じた画像を、印刷用紙などの記録材上に電子写真方式で形成して出力するものである。なお、本実施形態では、出力部１３０が電子写真方式で画像形成を行う場合について説明するが、例えばインクジェット方式などの他の方式で画像形成を行うとしても良いことは勿論である。
以上が、画像処理装置１０の構成である。
【００２２】
（Ｂ：動作）
以下、バッファ制御部１２１０が行う動作について図面を参照しつつ説明する。
（Ｂ−１：オーバラップ付与処理）
図５は、バッファ制御部１２１０が自身のＲＯＭに記憶されている制御プログラムにしたがって実行するオーバラップ付与処理の流れを示すフローチャートである。
図５に示すように、バッファ制御部１２１０は、まず、読み取り対象であるバンドバッファに対する上部オーバラップの書き込みが完了しているか否かを判定し（ステップＳＡ１００）、その判定結果が“Ｎｏ”である間は、ステップＳＡ１００の処理を繰り返し実行する。なお、バンドバッファへの画像データの書き込み制御については、後に詳細に説明する。
【００２３】
ステップＳＡ１００の判定結果が“Ｙｅｓ”である場合には、バッファ制御部１２１０は、読み取り対象であるバンドバッファに対する下部オーバラップの書き込みが完了しているか否かを判定し（ステップＳＡ１１０）、その判定結果が“Ｎｏ”である間は、ステップＳＡ１１０の処理を繰り返し実行する。
【００２４】
ステップＳＡ１１０の判定結果が“Ｙｅｓ”である場合には、バッファ制御部１２１０は、図３（ｂ）に示す様に、読み出し対象エリアを設定し、その読み出し対象エリアに蓄積されている画像データを１画素分づつ読み出す（ステップＳＡ１２０）。ここで、読み出し対象エリアを設定するとは、その読み出し対象エリアから画像データを読み出す際の読み出し位置を規定する変数であるReadカウンタの取り得る値の範囲の下限に、その読み出し対象エリアの先頭アドレス（すなわち、上部オーバラップの先頭アドレス）をセットし、その上限に上記読み出し対象エリアの末尾のアドレス（すなわち、下部オーバラップの末尾のアドレス）をセットすることにより為される。
このように読み出し対象エリアを設定しその読み出し対象エリアから画像データを読み出すことによって、図４に示されるように、画像処理部１２２０へ引き渡される画像データには、図４に示すように常に一定量のオーバラップが付与されることになる。
【００２５】
（Ｂ−２：画像データ書き込み処理）
図６は、バッファ制御部１２１０が、自身のＲＯＭに記憶されている制御プログラムにしたがって、前段に位置するモジュールから引き渡される画像データを記憶部１４０へ書き込む際に行う書き込み制御処理の流れを示すフローチャートである。
図６に示すように、バッファ制御部１２１０は、まず、Readカウンタの値を初期化し（ステップＳＢ１００）、次いで、Writeカウンタの値を初期化する（ステップＳＢ１１０）。ここで、Readカウンタは、前述した読み出し対象エリア（図３（ｂ）参照）から画像データを読み出す際の読み出し位置（アドレス）を示す変数であり、Writeカウンタは、画像データの書き出し先であるバンドエリアにてその書き出し位置（アドレス）を示す変数である。そして、Readカウンタを初期化するとは、そのReadカウンタに上記読み出し対象エリアの先頭アドレスをセットすることであり、Writeカウンタを初期化するとは、そのWriteカウンタに上記書き出し先であるバンドエリアの先頭アドレスをセットすることである。
【００２６】
次いで、バッファ制御部１２１０は、画像データの供給元（例えば、バッファ制御部１２１０に関しては入力部１１０）から、書き込み要求信号を受取ったか否かを判定し（ステップＳＢ１２０）、その判定結果が“Ｙｅｓ”である場合には、ステップＳＢ１３０以降の処理を実行する。逆に、ステップＳＢ１２０の判定結果が“Ｎｏ”である場合には、バッファ制御部１２１０は、その判定結果が“Ｙｅｓ”になるまでステップＳＢ１２０の処理を繰り返し実行する。
【００２７】
ステップＳＢ１２０の判定結果が“Ｙｅｓ”である場合に後続して実行されるステップＳＢ１３０においては、バッファ制御部１２１０は、書き込み先であるバンドエリアに空きがあるか否かを判定する。具体的には、バッファ制御部１２１０は、Writeカウンタの値が上記バンドエリアの末尾を示すアドレス値以下である場合には、空きがあると判定し、逆に、上記アドレス値を超えている場合には、空きはないと判定する。
【００２８】
ステップＳＢ１３０の判定結果が“Ｙｅｓ”である場合（すなわち、書き込み先であるバンドエリアに空きがあると判定した場合）には、バッファ制御部１２１０は、Writeカウンタで示されるエリアに、入力部１１０から引き渡された１画素分の画像データを書き込み（ステップＳＢ１４０）、さらに、Writeカウンタの値を１画素分だけ歩進（ステップＳＢ１５０）して、ステップＳＢ１２０以降の処理を繰り返し実行する。
【００２９】
逆に、ステップＳＢ１３０の判定結果が“Ｎｏ”である場合（すなわち、書き込み先であるバンドエリアに空きはないと判定した場合）には、バッファ制御部１２１０は、そのバンドエリアへ格納されている画像データの読み出しが完了しているか否かを判定する（ステップＳＢ１６０）。具体的には、バッファ制御部１２１０は、Readリセットフラグの値が“ＯＮ”（すなわち、１）である場合には、上記バンドバッファに格納されている画像データの読み出しが完了したと判定し、逆に、Readリセットフラグの値が“ＯＦＦ”（すなわち、０）である場合には、その読み出しが完了していないと判定する。
【００３０】
そして、バッファ制御部１２１０は、ステップＳＢ１６０の判定結果が“Ｙｅｓ”である場合（すなわち、読み出しが完了していると判定した場合）には、前述したステップＳＢ１１０以降の処理を繰り返し実行し、逆に、ステップＳＢ１６０の判定結果が“Ｎｏ”である場合には、オーバフロー処理を実行する（ステップＳＢ１７０）。ここで、オーバフロー処理とは、バッファ制御部１２１０に対する画像データの供給元（例えば、バッファ制御部１２１０ａに関しては入力部１１０）へ所定のオーバフロー信号を送信する処理である。このオーバフロー信号を受信すると、上記供給元は、バッファ制御部１２１０への画像データの供給を停止する。なお、上記ステップＳＢ１６０の判定結果が“Ｎｏ”である場合に上述したオーバフロー処理を実行する理由は、そのような状況下で画像データの書き込みを継続してしまうと、後段モジュールにより画像処理が為されていない画像データが上書きされてしまう虞があり、所望の画像処理結果を得られなくなる虞があるからである。
【００３１】
以上が、バッファ制御部１２１０が実行する書き込み制御処理である。以上に説明したように、バッファ制御部１２１０が実行する書き込み制御処理の流れは、基本的に従来のバッファ制御モジュールが行う書き込み制御処理の流れと同一であるが、Readカウンタの初期化処理にて本発明に特徴的な読み出し対象エリアの先頭アドレスをそのReadカウンタの初期値として設定する点が、従来のバッファ制御モジュールが行う書き込み制御処理と異なっている。
【００３２】
（Ｂ−３：画像データ読み出し処理）
次いで、上記書き込み制御処理にて記憶部１４０へ書き込んだ画像データを読み出す際に、バッファ制御部１２１０が制御プログラムにしたがって行う読み出し制御処理について図７を参照しつつ説明する。
図７は、バッファ制御部１２１０が行う読み出し制御処理の流れを示すフローチャートである。
図７に示すように、バッファ制御部１２１０は、画像データの供給先（例えば、バッファ制御部１２１０ａに関しては画像処理部１２２０ａ）から読み出し要求信号を受信したか否かを判定し（ステップＳＣ１００）、その判定結果が“Ｙｅｓ”になるまで、ステップＳＣ１００の処理を繰り返し実行する。逆に、ステップＳＣ１００の判定結果が“Ｙｅｓ”である場合には、バッファ制御部１２１０ａは、図３（ｂ）に示すように設定した読み出し対象エリアから全ての画像データの読み出しを完了したか否かを判定する（ステップＳＣ１１０）。具体的には、バッファ制御部１２１０は、前述したReadカウンタの値が上記読み出し対象エリアの末尾のアドレス値以下である場合には、読み出しを完了していないと判定し、逆に、そのアドレス値を超えている場合には、読み出しを完了したと判定する。
【００３３】
ステップＳＣ１１０の判定結果が“Ｙｅｓ”である場合（すなわち、読み出しを完了したと判定した場合）には、バッファ制御部１２１０は、Readカウンタの値を初期化するとともにReadリセットフラグに１をセットして（ステップＳＣ１２０）、ステップＳＣ１００以降の処理を繰り返し実行する。例えば、読み出し対象エリアが第２バンドエリアとその上部および下部オーバラップとで構成されていた場合には、新たに、第３バンドエリアとその上部および下部オーバラップとを読み出し対象エリアとして設定し、その読み出し対象エリアの先頭アドレスでReadカウンタの値を初期化する。
一方、ステップＳＣ１１０の判定結果が“Ｎｏ”である場合（すなわち、読み出しを完了していないと判定した場合）には、バッファ制御部１２１０は、Readカウンタの値がWriteカウンタの値未満であるか否かを判定する（ステップＳＣ１３０）。
【００３４】
ステップＳＣ１３０の判定結果が“Ｎｏ”である場合には、バッファ制御部１２１０は、アンダフロー処理を実行し（ステップＳＣ１４０）、ステップＳＣ１００以降の処理を繰り返し実行する。ここで、アンダフロー処理とは、画像データの供給先（例えば、バッファ制御部１２１０ａに関しては、画像処理部１２２０ａ）へ所定のアンダフロー信号を送信する処理である。このアンダフロー信号を受信すると、上記供給先は、画像処理の実行を停止する。なお、上記ステップＳＣ１３０の判定結果が“Ｎｏ”である場合に上述したアンダフロー処理を実行する理由は、上記供給先へ供給するべき画像データの読み出し対象エリアへの書き込みが完了しておらず、そのような状況下で画像データの読み出し継続してしまうと、後段モジュールにて所望の画像処理結果を得られなくなる虞があるからである。
【００３５】
一方、ステップＳＣ１３０の判定結果が“Ｙｅｓ”である場合には、バッファ制御部１２１０は、読み出し対象であるバンドバッファ内のReadカウンタで示されるエリアから１画素分の画像データを読み出して上記供給先へ引き渡し（ステップＳＣ１５０）、さらに、Readカウンタの値を１画素分だけ歩進（ステップＳＣ１６０）して、ステップＳＣ１００以降の処理を繰り返し実行する。
【００３６】
以上が、バッファ制御部１２１０が実行する読み出し制御処理である。以上に説明したように、バッファ制御部１２１０が実行する読み出し制御処理の流れは、基本的に従来のバッファ制御モジュールが行う読み出し制御処理の流れと同一であるが、Readカウンタの初期化処理にて本発明に特徴的な読み出し対象エリアの先頭アドレスをそのReadカウンタの初期値として設定する点、および、そのReadカウンタの取り得る値の上限として、前述した読み出し対象エリアの末尾のアドレス値を設定する点が、従来のバッファ制御モジュールが行う読み出し制御処理と異なっている。
【００３７】
（Ｃ：変形）
以上、本発明の１実施形態について説明したが、係る実施形態に以下に述べるような変形を加えても良いことは勿論である。
（１）上述した実施形態では、複写機に本発明を適用する場合について説明したが、本発明の適用対象は、複写機に限定されるものではなく、プリンタ装置やスキャナ装置であっても勿論良い。例えば、プリンタ装置に本発明を適用する場合には、図１に示す構成において、入力部１１０を他のコンピュータ装置から送信された画像データを受信するための通信インタフェース（例えば、Network Interface Card）で構成するようにすれば良い。同様に、スキャナ装置に本発明を適用する場合には、出力部１３０を上記通信インタフェースで構成すれば良い。
【００３８】
（２）上述した実施形態では、２つの画像処理部によりパイプラインが形成されている場合について説明したが、３つ以上の画像処理部によってパイプラインが形成されているとしても勿論良い。また、上述した実施形態では、ウィンドウ処理を行う画像処理部のみでパイプラインが形成されている場合について説明したが、ウィンドウ処理を行う複数の画像処理モジュールと、ウィンドウ処理以外の画像処理を行う少なくとも１つの画像処理部とでパイプラインが形成されているとしても勿論良い。
【００３９】
（３）上述した実施形態では、本発明に特徴的なバッファ書き込み制御およびバッファ読み出し制御をバッファ制御部１２１０に実行させるための制御プログラムを予めそのバッファ制御部１２１０のＲＯＭに書き込んでおく場合について説明したが、コンピュータ装置読取り可能な記録媒体に上記プログラムを書き込んで配布し、その記録媒体を用いてバッファ制御部の不揮発性メモリへインストールするようにしても勿論良い。
また、上述した実施形態では、本発明に特徴的なバッファ書き込み処理およびバッファ読み出し処理をソフトウェアモジュールで実現する場合について説明したが、ハードウェアモジュールで実現するようにしても勿論良い。具体的には、図８（ａ）に示す構成を有するバッファ書き込み制御回路と図８（ｂ）に示す構成を有するバッファ読み出し制御回路とを組み合わせてバッファ制御部を構成するようにしても勿論良い。
【図面の簡単な説明】
【００４０】
【図１】本発明の１実施形態に係る画像処理装置１０の構成例を示すブロック図である。
【図２】画像処理部１２２０ｂの構成例を示す図である。
【図３】記憶部１４０の利用態様を説明するための図である。
【図４】本発明に係るオーバラップ付与方式を説明するための図である。
【図５】バッファ制御部１２１０が制御プログラムにしたがって行うオーバラップ付与処理の流れを示すフローチャートである。
【図６】バッファ制御部１２１０が実行する書き込み制御処理の流れを示すフローチャートである。
【図７】バッファ制御部１２１０が実行する読み出し制御処理の流れを示すフローチャートである。
【図８】本発明に係るバッファ書き込み制御およびバッファ読み出し制御をハードウェアモジュールで実現する場合に、そのハードウェアモジュールの構成例を示す図である。
【図９】ウィンドウ処理における有効画素の縮退を説明するための図である。
【図１０】一括オーバラップ付与の一例を示す図である。
【図１１】分割オーバラップ付与の一例を示す図である。
【符号の説明】
【００４１】
１０…画像処理装置、１１０…入力部、１２０…ＡＳＩＣ、１２１０，１２１０ａ，１２１０ｂ、１２１０ｃ…バッファ制御モジュール、１２２０，１２２０ａ，１２２０ｂ…画像処理部、１３０…出力部、１４０…記憶部。
【図１】
0004760541.tif 000002
【図２】
0004760541.tif 000003
【図３】
0004760541.tif 000004
【図４】
0004760541.tif 000005
【図５】
0004760541.tif 000006
【図６】
0004760541.tif 000007
【図７】
0004760541.tif 000008
【図８】
0004760541.tif 000009
【図９】
0004760541.tif 000010
【図１０】
0004760541.tif 000011
【図１１】
0004760541.tif 000012