(57)【要約】【課題】画像データを分割して得られるバンド領域に対して空間フィルタ処理を施す際に要する画像データの転送量とメモリ容量とを低減させる。【解決手段】制御部６１０は、バンド領域を分割することにより得られる複数のブロック領域から第１のブロック領域を取得する。中間データバッファ６２０は、複数のブロック領域のうちの第２のブロック領域、及び、第２のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果から、第１のブロック領域に対する空間フィルタ処理の際に使用される中間データを生成して保持する。空間フィルタ演算部６４０は、中間データバッファ６２０において保持される中間データを、第１のブロック領域、及び、第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果に付加して空間フィルタ処理を実行する。【選択図】図６
2014078114.tif 000002
【特許請求の範囲】
【請求項１】
画像データを分割することにより得られる各バンド領域に対して空間フィルタ処理を施す画像処理装置であって、
前記バンド領域を分割することにより得られる複数のブロック領域から第１のブロック領域を取得する取得手段と、
前記複数のブロック領域のうちの第２のブロック領域、及び、前記第２のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果から、前記第１のブロック領域に対する空間フィルタ処理の際に使用される中間データを生成して保持する中間データ保持手段と、
前記中間データ保持手段において保持される中間データを、前記第１のブロック領域、及び、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果に付加して空間フィルタ処理を実行する処理手段とを有することを特徴とする画像処理装置。
【請求項２】
前記第１のブロック領域に対して適用される空間フィルタ処理の回数に等しい数の前記中間データ保持手段を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記処理手段は、前記第１のブロック領域に対する空間フィルタ処理の回数に応じて、前記各中間データ保持手段に保持される中間データから、空間フィルタ処理の対象とする中間データを選択することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１のブロック領域に対して実行される空間フィルタ処理の回数をｒｎ回とし、前記空間フィルタ処理の長さをｆｗ画素とした場合、前記第２のブロック領域の長さを（ｆｗ−１）× ｒｎで算出する算出手段を更に有し、
前記処理手段は、前記算出手段により算出された前記第２のブロック領域の長さに基づいて、前記第２のブロック領域を取得することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記第１のブロック領域に対して実行される空間フィルタ処理の回数をｒｎ回とし、前記空間フィルタ処理の長さをｆｗ画素とし、前記第１のブロック領域の長さをｆｈ画素とし、前記バンド領域の高さをｂｈ画素とした場合、前記第１のブロック領域の長さｅｗを、
【数６】
2014078114.tif 000008
なる式で算出する算出手段を更に有し、
前記処理手段は、前記算出手段により算出された前記第１のブロック領域の長さに基づいて、前記第１のブロック領域を取得することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項６】
前記中間データ保持手段は、前記第１のブロック領域に対して適用される空間フィルタ処理の回数に対応する前記中間データを保持する容量を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記処理手段は、前記第１のブロック領域に対する空間フィルタ処理の回数に応じて、前記中間データ保持手段に保持される各中間データから、空間フィルタ処理の対象とする中間データを選択することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第１のブロック領域に対して実行される空間フィルタ処理の回数をｒｎ回とし、前記空間フィルタ処理の長さをｆｗ画素とし、前記第１のブロック領域の長さをｆｈ画素とし、前記バンド領域の高さをｏｂｈ画素とし、画素値を表すのに必要なビット数をｋ ｂｉｔとした場合、前記データ保持手段の容量を、
【数７】
2014078114.tif 000009
なる式で算出する算出手段を更に有することを特徴とする請求項６又は７に記載の画像処理装置。
【請求項９】
前記第１のブロック領域の長さを、一回のバースト転送で送受信することが可能な画素数の整数倍で算出する算出手段を更に有し、
前記処理手段は、前記算出手段により算出された前記第１のブロック領域の長さに基づいて、前記第１のブロック領域を取得することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項１０】
前記第１のブロック領域、及び、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果を保持するブロック領域保持手段を更に有することを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
前記ブロック領域保持手段は、複数の記憶領域を備え、前記第１のブロック領域に対して空間フィルタ処理が実行される度に、前記複数の記憶領域の記録先を交互に切り替えて空間フィルタ処理結果を保持していくことを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記処理手段は、前記第１のブロック領域に対する空間フィルタ処理の回数に応じて前記複数の記憶領域を交互に切り替えて、前記第１のブロック領域、又は、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果を読み出し、空間フィルタ処理を実行することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記第２のブロック領域は、前記第１のブロック領域に隣接するブロック領域であることを特徴とする請求項１乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
画像データを分割することにより得られる各バンド領域に対して空間フィルタ処理を施す画像処理装置によって実行される画像処理方法であって、
前記バンド領域を分割することにより得られる複数のブロック領域から第１のブロック領域を取得する取得ステップと、
前記複数のブロック領域のうちの第２のブロック領域、及び、前記第２のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果から、前記第１のブロック領域に対する空間フィルタ処理の際に使用される中間データを生成して、中間データ保持手段に保持する中間データ保持ステップと、
前記中間データ保持手段において保持される中間データを、前記第１のブロック領域、及び、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果に付加して空間フィルタ処理を実行する処理ステップとを有することを特徴とする画像処理方法。
【請求項１５】
画像データを分割することにより得られる各バンド領域に対して空間フィルタ処理を施す画像処理装置によって実行される画像処理方法をコンピュータに実行させるためのプログラムであって、
前記バンド領域を分割することにより得られる複数のブロック領域から第１のブロック領域を取得する取得ステップと、
前記複数のブロック領域のうちの第２のブロック領域、及び、前記第２のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果から、前記第１のブロック領域に対する空間フィルタ処理の際に使用される中間データを生成して、中間データ保持手段に保持する中間データ保持ステップと、
前記中間データ保持手段において保持される中間データを、前記第１のブロック領域、及び、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果に付加して空間フィルタ処理を実行する処理ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ分割することにより得られる各バンド領域に対して空間フィルタ処理を実行する技術に関するものである。
【背景技術】
【０００２】
従来から、画像形成を行って画像データを出力するに際し、空間フィルタ処理等の局所（近傍）画像処理が行われている。この局所画像処理は、処理対象の領域に含まれる画素を用いて何らかの演算を行う画像処理であり、例えば、エッジ強調処理やぼかし処理といった空間フィルタ処理が挙げられる。
【０００３】
このような局所画像処理は、画像データを副走査方向に短冊状に分割して得られるバンド領域にも適用することができる。バンド領域に対して画像処理を適用する場合、バンド領域の高さを任意に設定することができるため、画像データの解像度に関わらず少ないメモリ容量で画像処理を行うことが可能となる。
【０００４】
一方で、バンド領域に対して空間フィルタ処理を適用すると処理後のバンド領域は、入力に用いたバンド領域より小さくなる。
【０００５】
そのため、バンド領域に対して空間フィルタ処理を適用する際には、バンド領域の上端及び下端に隣接する画素をオーバーラップ領域としてバンド領域に付加したデータに対して空間フィルタ処理を適用する（特許文献１）。これにより、各バンド領域の処理結果を１枚の画像として結合させた時、結合部に連続性を持たせる事が出来る。
【０００６】
ここで、バンド領域に対して出力画像データが小さくなるような画像処理を複数回適用する場合、オーバーラップ領域をより広く設定する必要がある。しかしながら、メモリから画像処理部に対して画像データを転送するような構成においては、オーバーラップ領域が増加する分、画像データの転送にかかる時間が増加してしまう。
【０００７】
このような課題に対し、特許文献２ではオーバーラップ領域を保持しておくメモリを画像処理部内に搭載しておき、画像処理を実行する際に必要なオーバーラップ領域を画像処理部内のメモリから取得することでオーバーラップ領域の転送に要する時間を低減している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特願２００９−２４０６３６号公報
【特許文献２】特願２００９−１１３６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２に開示される技術では、画像処理部で処理対象となる画像データとこれに付加されるオーバーラップ領域とを保持しておくメモリが局所画像処理毎に必要となり、メモリ容量の増大につながっていた。
【００１０】
そこで、本発明の目的は、画像データを分割して得られるバンド領域に対して空間フィルタ処理を施す際に要する画像データの転送量とメモリ容量とを低減させることにある。
【課題を解決するための手段】
【００１１】
本発明の画像処理装置は、画像データを分割することにより得られる各バンド領域に対して空間フィルタ処理を施す画像処理装置であって、前記バンド領域を分割することにより得られる複数のブロック領域から第１のブロック領域を取得する取得手段と、前記複数のブロック領域のうちの第２のブロック領域、及び、前記第２のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果から、前記第１のブロック領域に対する空間フィルタ処理の際に使用される中間データを生成して保持する中間データ保持手段と、前記中間データ保持手段において保持される中間データを、前記第１のブロック領域、及び、前記第１のブロック領域に対する空間フィルタ処理により生成された空間フィルタ処理結果に付加して空間フィルタ処理を実行する処理手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像データを分割して得られるバンド領域に対して空間フィルタ処理を施す際に要する画像データの転送量とメモリ容量とを低減させることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る画像処理装置の構成を示す図である。
【図２】画像処理部の主要な回路構成である画像処理コントローラの構成を示す図である。
【図３】画像データを分割してバンド領域を生成する処理を説明するための図である。
【図４】バンド領域を長さ方向に分割してバンド領域を生成する処理を説明するための図である。
【図５】長さ方向に単純に分割して得られるブロック領域に空間フィルタ処理を実行した場合の出力画像データを説明するための図である。
【図６】第１の実施形態における空間フィルタ回路の詳細な構成を示す図である。
【図７】初期化工程領域に対する初期化工程について説明するための図である。
【図８】初期化工程の流れを示すフローチャートである。
【図９】初期化工程における中間データバッファ及びブロックデータバッファの状態を説明するための図である。
【図１０】処理工程領域に対する処理工程について説明するための図である。
【図１１】処理工程の流れを示すフローチャートである。
【図１２】処理工程における中間データバッファ及びブロックデータバッファの状態を説明するための図である。
【図１３】空間フィルタ処理の流れを示すフローチャートである。
【図１４】空間フィルタ処理領域の設定方法について３×３画素の空間フィルタ処理を行う場合を例に挙げて説明するための図である。
【図１５】空間フィルタ処理結果を保持する処理を説明するための図である。
【図１６】中間データバッファに格納されている中間データを更新する処理を説明するための図である。
【図１７】空間フィルタ処理の対象となる領域の長さがｆｗ画素より大きい場合、又は、高さがｆｈ画素より大きい場合の空間フィルタ処理の例を示す図である。
【図１８】第２の実施形態における空間フィルタ回路の詳細な構成を示す図である。
【図１９】中間データバッファ及びブロックデータバッファ内の記録領域を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を適用した実施形態を、添付図面を参照しながら説明する。
【００１５】
先ず、本発明の第１の実施形態について説明する。図１は、第１の実施形態に係る画像処理装置１００の構成を示す図である。図１に示すように、第１の実施形態に係る画像処理装置１００は、ＣＰＵ回路部１１０、画像読み取り部１２０、画像処理部１３０及びプリンタ部１４０を備える。
【００１６】
画像読み取り部１２０は、レンズ１２２、ＣＣＤセンサ１２４及びアナログ信号処理部１２６を備える。ＣＣＤセンサ１２４は、レンズ１２２を介して原稿１５０の光学像が結像され、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）及びＢ（Ｂｌｕｅ）のアナログ電気信号に変換する。
【００１７】
ＣＣＤセンサ１２４から出力された上記アナログ電気信号である画像情報は、アナログ信号処理部１２６に入力され、Ｒ、Ｇ及びＢの色毎に補正処理等が行われた後にアナログ／デジタル変換（Ａ／Ｄ変換）される。これにより、デジタル化されたフルカラー信号（以下、画像データと称す）が生成される。画像読み取り部１２０により生成された画像データは、画像処理部１３０に入力される。画像処理部１３０は、入力した画像データに対し、後述する入力補正処理、空間フィルタ処理、色空間変換、濃度補正処理及び中間調処理を施した後、プリンタ部１４０に出力する。プリンタ部１４０は、例えば、インクジェットヘッドやサーマルヘッド等を使用したラスタプロッタ等の印刷出力部（図示せず）を備えており、入力された画像データに基づいて紙上に画像を記録する。
【００１８】
ＣＰＵ回路部１１０は、演算制御用のＣＰＵ１１２、固定データやプログラムを格納するＲＯＭ１１４、データの一時保存やプログラムのロードに使用されるＲＡＭ１１６、及び、外部記憶装置１１８を備える。ＣＰＵ回路部１１０は、画像読み取り部１２０、画像処理部１３０及びプリンタ部１４０を制御し、画像処理装置１００のシーケンスを統括的に制御する。外部記憶装置１１８は、画像処理装置１００の処理を制御するためのパラメータやプログラムを記憶するディスク等の記憶媒体であり、ＲＡＭ１１６に一時保存されるデータやプログラム等は、外部記憶装置１１８からロードされる構成としてもよい。
【００１９】
図２は、図１に示す画像処理部１３０の主要な回路構成である画像処理コントローラ２００の構成を示す図である。図２に示すように、画像処理コントローラ２００は、入力インタフェース２１０、入力補正回路２２０、空間フィルタ回路２３０、色空間変換回路２４０、濃度補正回路２５０、中間調処理回路２６０及び出力インタフェース２７０を備える。
【００２０】
入力インタフェース２１０は、バス２０５を介してアナログ信号処理部１２６から画像データを入力する。入力補正回路２２０は、入力インタフェース２１０から画像データ２１５を入力する。なお、画像データ２１５は、輝度信号Ｒ、Ｇ、Ｂで構成されるデータである。入力補正回路２２０は、原稿１５０を読み取るセンサの特性のばらつきや原稿照明用ランプの配光特性を補正するための処理を、画像データ２１５に対して行う。
【００２１】
空間フィルタ回路２３０は、入力補正回路２２０から画像データ（輝度信号Ｒ、Ｇ、Ｂ）２２５を入力する。そして、空間フィルタ回路２３０は、入力した画像データ２２５に対して、平滑化やエッジ強調といった局所画像処理を複数回行う。
【００２２】
色空間変換回路２４０は、空間フィルタ回路２３０から画像データ（輝度信号Ｒ、Ｇ、Ｂ）２３５を入力する。そして、色空間変換回路２４０は、画像データ（輝度信号Ｒ、Ｇ、Ｂ）２３５を、濃度信号Ｃ（Cyan）、Ｍ（Magenta）、Ｙ（Yellow）、Ｋ（Black）で構成される画像データに変換する。
【００２３】
濃度補正回路２５０は、色空間変換回路２４０から画像データ（濃度信号Ｃ、Ｍ、Ｙ、Ｋ）２４５を入力する。そして、濃度補正回路２５０は、画像データ（濃度信号Ｃ、Ｍ、Ｙ、Ｋ）２４５に対して濃度補正を行う。即ち、濃度補正回路２５０は、後段の中間調処理回路２６０で２値化されたときに濃度変化が起きないように、中間調処理の特性を考慮して予め濃度補正を行うものである。
【００２４】
中間調処理回路２６０は、濃度補正回路２５０から画像データ（濃度信号Ｃ、Ｍ、Ｙ、Ｋ）２５５を入力する。そして、中間調処理回路２６０は、画像データ（濃度信号Ｃ、Ｍ、Ｙ、Ｋ）２５５に対してスクリーン処理を行い、２値の中間調表現に変換する。これにより、２値の画像データ（印字信号Ｃ、Ｍ、Ｙ、Ｋ）２６５が出力インタフェース２７０及びバス２７５を経由してプリンタ部１４０に出力される。
【００２５】
本実施形態では、１枚の画像データを複数のバンド（帯状）領域に分割し、各バンド領域を逐次的にバンドメモリに割り当てる。以下、この処理について説明する。
【００２６】
家庭用プリンタのような低コストの機器では、システムのメインメモリ（図１のＲＡＭ１１６に相当）の容量が小さく、１枚の画像データ全体をメインメモリに記憶できない場合が多い。そのため、図３（ａ）〜（ｄ）に示すように、１枚の画像データ３００全体を帯状（短冊状）に分割して、逐次的にその領域のみメインメモリに展開して各種の画像処理を行うことが一般的である。
【００２７】
以下では、この分割された細長い領域をバンド領域と称し、バンド領域が展開される記憶領域をバンドメモリと称し、バンド領域に分割する処理をバンド分割と称す。バンドメモリは、メインメモリ内に確保されると決まっているわけではなく、システム上のどの記憶領域に確保してもよいが、本実施形態では、説明を簡潔にするためにバンドメモリをメインメモリであるＲＡＭ１１６内に確保する場合を例に挙げて説明する。
【００２８】
本実施形態では、分割される前の画像データの座標系として、主走査方向及び副走査方向を定義し、分割された後のバンド領域の座標系として、長さ方向及び高さ方向を定義し、バンド領域を長さ×高さで表現する。バンド領域の長さは、必ず画像データの主走査方向の長さ及び副走査方向の高さの何れかの値となり、バンド領域の高さは任意の値となる。
【００２９】
先ず、画像処理部１３０は、図３（ａ）に示す第１のバンド領域３０１を、ＲＡＭ１１６上のバンドメモリに展開させて画像処理を行う。次に、画像処理部１３０は、図３（ｂ）に示す第２のバンド領域３０２を、第１のバンド領域３０１が展開されたバンドメモリに上書き展開して画像処理を行う。次に、画像処理部１３０は、図３（ｃ）に示す第３のバンド領域３０３を、第２のバンド領域３０２が展開されたバンドメモリに上書き展開して画像処理を行う。最後に、画像処理部１３０は、図３（ｄ）に示す第４のバンド領域３０４を、第３のバンド領域３０３が展開されたバンドメモリに上書き展開して画像処理を行う。
【００３０】
図３（ａ）〜（ｄ）に示すように、バンド領域３０１〜３０４の長さは同じであるが、高さは同じである必要性はない。また、ＲＡＭ１１６上におけるバンドメモリは、最も大きいバンド領域（図３の場合、第１〜第３のバンド領域３０１〜３０３）に応じて決定される。
【００３１】
上述したように、ＲＡＭ１１６内のバンドメモリは１つの記憶領域に限定されるわけではない。例えば２つのバンドメモリＡ、ＢをＲＡＭ１１６内に確保してもよい。このようにした場合、先ず、画像処理部１３０は、第１のバンドメモリＡに第１のバンド領域３０１を展開して第１の画像処理を行う。次に、画像処理部１３０は、第１のバンド領域３０１を第１のバンドメモリＡから第２のバンドメモリＢに移し、第１のバンドメモリＡに第２のバンド領域３０２を展開させる。次に、画像処理部１３０は、第１のバンド領域３０１に対して第２の画像処理を行いながら、並列に第２のバンド領域３０２に対して第１の画像処理を行う。このように、バンド領域単位に画像データを分割して画像処理を行うことにより、パイプライン的な画像処理が可能となる。
【００３２】
バンド領域に対する画像処理は、ＲＡＭ１１６から画像処理部１３０に対してバンド領域が投入され、バンド領域に含まれる画素データに対して各種画像処理が実行されることで完了する。しかし、ＲＡＭ１１６から画像処理部１３０へのデータ転送には、少なくとも数サイクル必要となる。そのため、画素データの送信毎に数サイクル必要となると、バンド領域全体を処理するのにかかる時間が大幅に増加してしまう。そこで、画像処理部１３０にバンド領域の一部を記憶させておき、画像処理部１３０は、記憶しているバンド領域に対して各種画像処理を実行していく。これにより、データ転送にかかるレイテンシを低減する。本実施形態では、図４に示すように、第１のバンド領域４１０を長さ方向にＭ個に分割して得られる各ブロック領域４１１〜４１Ｍを画像処理部１３０に記憶させながら、各種画像処理を実行していく。
【００３３】
次に、画像処理部１３０に記憶されたブロック領域に対する画像処理について説明する。画像処理部１３０は、記憶されたブロック領域に対して、入力補正回路２２０、空間フィルタ回路２３０、色空間変換回路２４０、濃度補正回路２５０及び中間調処理回路２６０における各処理を実行して、一連の画像処理を終える。このうち、入力補正回路２２０、色空間変換回路２４０、濃度補正回路２５０及び中間調処理回路２６０では、入力画像データと出力画像データとの画素数は同じである。一方、空間フィルタ回路２３０では、ブロック領域に対して空間フィルタ処理を複数回適用するため、入力画像データに対して出力画像データの長さ及び高さが小さくなる。従って、空間フィルタ回路２３０には、出力結果が得られるよう十分な画素数を持つブロック領域を入力として与える必要がある。
【００３４】
ここで、バンド領域を分割する際、図４に示すように、長さ方向に単純に分割して得られたブロック領域４１０〜４１Ｍに空間フィルタ処理を実行すると、出力画像データが入力したブロック領域より小さくなる。このため、図５に示すように、各ブロック領域の処理結果５１１〜５１Ｍが連続的に並ばず、バンド領域全体に対する出力結果が正しく得られない。そこで、特許文献１に開示されるように、処理対象のブロック領域に隣接するブロック領域の一部をオーバーラップ領域として付加して空間フィルタ処理を実行することにより、出力画像データを連続的に並べることを可能にする手法がある。しかし、オーバーラップ領域を付加すると、ＲＡＭ１１６と画像処理部１３０との間で、処理対象のブロック領域に加えてオーバーラップ領域も転送することになり、画像データの通信にかかる時間が増加する。さらに、画像処理部１３０にオーバーラップ領域を保持するためのメモリ容量を追加する必要があり、回路規模も増大する。特に、空間フィルタ回路２３０において各ブロック領域に対して実行される空間フィルタ処理回数が増えると、オーバーラップ領域が増えるため、この問題が顕著に表れてくる。以下、これらの課題を解決する、本実施形態における空間フィルタ回路２３０の構成について詳細に説明する。
【００３５】
空間フィルタ回路２３０は、各ブロック領域に対して空間フィルタ処理を複数回適用する。以下では、説明を簡略化するため、３×３画素の空間フィルタ処理を３回行う場合について説明するが、本発明に適用可能な処理回数及び処理内容を限定するものではない。
【００３６】
図６は、空間フィルタ回路２３０の詳細な構成を示す図である。図６に示すように、空間フィルタ回路２３０は、制御部６１０、中間データバッファ６２０、ブロックデータバッファ６３０及び空間フィルタ演算部６４０を備える。以下、図６を参照しながら、空間フィルタ回路２３０の動作について説明する。
【００３７】
制御部６１０は、処理対象のブロック領域を入力すると、これをブロックデータバッファ６３０に格納する。ブロックデータバッファ６３０におけるブロック領域の格納が完了すると、空間フィルタ演算部６４０は、ブロックデータバッファ６３０からブロック領域を入力し、ブロック領域に対して空間フィルタ処理を行う。空間フィルタ演算部６４０の処理結果（以下、空間フィルタ処理結果と称す）は、ブロックデータバッファ６３０に格納される。同時に、空間フィルタ演算部６４０は、次のブロック領域を処理する際に必要となる中間データを中間データバッファ６２０に格納する。このようにして１段目の処理が完了する。
【００３８】
続けて、２段目の処理では、空間フィルタ演算部６４０は、ブロックデータバッファ６３０に格納されている１段目の空間フィルタ処理結果を入力し、１段目の空間フィルタ処理結果に対して空間フィルタ処理を行う。そして、空間フィルタ演算部６４０は、２段目の空間フィルタ処理結果をブロックデータバッファ６３０に格納するとともに、次のブロック領域を処理する際に必要となる中間データを中間データバッファ６２０に格納する。この処理が繰り返されることにより、２段目の処理、３段目の処理が完了する。
【００３９】
図４においてｎ＝１以降のブロック領域４１１〜４１Ｍを処理する際は、空間フィルタ演算部６４０への入力として、ブロックデータバッファ６３０に格納されている画像データに加え、中間データバッファ６２０に格納されている中間データも選択される。また、ブロックデータバッファ６３０は、空間フィルタ演算部６４０に入力される画像データや空間フィルタ処理結果を保持するＢＢａ６３１及びＢＢｂ６３２を備えている。どちらのデータをＢＢａ６３１又はＢＢｂ６３２で保持するかは、処理段数に応じて切り替えられる。
【００４０】
また、中間データバッファ６２０は、処理する回数分の中間データを保持できるよう、１段目の処理時に得られる中間データを保持するＴＭａ６２１、２段目の処理時に得られる中間データを保持するＴＭｂ６２２、及び、３段目の処理時に得られる中間データを保持するＴＭｃ６２３を備える。各中間データは、空間フィルタ処理を実行した回数に応じて選択される。以上の動作は、制御部６１０によって包括的に制御される。
【００４１】
空間フィルタ演算部６４０によるバンド領域に対する空間フィルタ処理では、図４のｎ＝０のブロック領域４１０に初期化工程が適用され、ｎ＝１〜Ｍのブロック領域４１１〜４１Ｍに処理工程が順に適用される。以下では、ｎ＝０のブロック領域４１０を初期化工程領域と称し、ｎ＝１〜Ｍのブロック領域４１１〜４１Ｍを処理工程領域と称す。以下、初期化工程、処理工程及びバンド分割について詳細に説明する。
【００４２】
初期化工程では、空間フィルタ演算部６４０において、初期化工程領域４１０に対して空間フィルタ処理を複数回適用するとともに、処理工程で必要となる中間データを中間データバッファ６２０に格納する処理が行われる。
【００４３】
以下、図７を参照しながら、初期化工程領域４１０に対する初期化工程について説明する。図７（ａ）の矩形７０１は、初期化工程領域を示している。空間フィルタ演算部６４０は、初期化工程領域７０１に対して空間フィルタ処理を行うことにより、図７（ｂ）の１段目の空間フィルタ処理結果７０２を得る。同時に、空間フィルタの長さをｆｗ画素とした場合、初期化工程領域７０１の右から（ｆｗ−１）画素中に含まれる領域７０１ａが中間データａとして中間データバッファ６２０内のＴＭａ６２１に保持される。以上が１段目の処理である。
【００４４】
次に、空間フィルタ演算部６４０は、１段目の空間フィルタ処理結果７０２に対して空間フィルタ処理を行うことにより、図７（ｃ）の２段目の空間フィルタ処理結果７０３を得る。同時に、１段目の空間フィルタ処理結果７０２の右から（ｆｗ−１）画素中に含まれる領域７０２ａが中間データｂとして中間データバッファ６２０内のＴＭｂ６２２に格納される。以上が２段目の処理である。最後に、２段目の空間フィルタ処理結果７０３が中間データｃとして中間データバッファ６２０内のＴＭｃ６２３に格納される。以上が３段目の処理である。
【００４５】
次に、図８のフローチャートを参照しながら、初期化工程について説明する。ステップＳ８０１において、空間フィルタ演算部６４０は、処理段数を示す変数ｒｎに１をセットする。ステップＳ８０２において、空間フィルタ演算部６４０は、初期化工程に必要となる初期化工程領域をＲＡＭ１１６から取得する。
【００４６】
ステップＳ８０３において、空間フィルタ演算部６４０は、変数ｒｎが所定の値に達したか否か、即ち、処理段数が所定の処理段数に達したか否かを判定する。変数ｒｎが所定の値に達した場合、初期化工程は終了する。一方、変数ｒｎが所定の値に達していない場合、処理はステップＳ８０４に移行する。
【００４７】
ステップＳ８０４において、空間フィルタ演算部６４０は、使用する中間データバッファ６２０及びブロックデータバッファ６３０の記憶領域を選択する。即ち、変数ｒｎが１である場合、空間フィルタ演算部６４０は、図９の状態１に示すように、初期化工程領域７０１を格納する記憶領域としてＢＢａ６３１を選択し、初期化工程領域７０１をＢＢａ６３１に格納する。また、空間フィルタ演算部６４０は、図７の中間データａ７０１ａを格納する記憶領域としてＴＭａ６２１を選択し、また、空間フィルタ演算部６４０は、初期化工程領域７０１に対する空間フィルタ処理結果を格納する記憶領域としてＢＢｂ６３２を選択する。
【００４８】
変数ｒｎが２である場合、空間フィルタ演算部６４０は、中間データｂ７０２ａを格納する記憶領域としてＴＭｂ６２２を選択し、１段目の空間フィルタ処理結果７０２を格納する領域としてＢＢｂ６３２を選択する。また、空間フィルタ演算部６４０は、２段目の空間フィルタ処理結果７０３を格納する記憶領域としてＢＢａ６３１を選択する。
【００４９】
このようにブロックデータバッファ６３０に関しては、処理段数が１増える毎に、入力用の機能と出力用の機能とが切り替えられる。中間データバッファ６２０に関しては、処理段数が１増える毎に、処理段数に対応する中間データバッファ６２０が選択される。
【００５０】
ステップＳ８０５において、空間フィルタ演算部６４０は、ブロックデータバッファ６３０に格納されているデータに対して、ｒｎ段目の処理を行う。即ち、１段目の処理において、空間フィルタ演算部６４０は、ＢＢａ６３１に格納されている初期化工程領域７０１に対して空間フィルタ処理を行うことにより、１段目の空間フィルタ処理結果７０２を得る。そして、空間フィルタ演算部６４０は、図９の状態２に示すように、ステップＳ８０４で選択したＢＢｂ６３２に１段目の空間フィルタ処理結果７０２を格納するとともに、同じくステップＳ８０４で選択したＴＭａ６３１に中間データａ７０１ａを格納する。
【００５１】
２段目の処理において、空間フィルタ演算部６４０は、ＢＢｂ６３２に格納されている１段目の空間フィルタ処理結果７０２に対して空間フィルタ処理を行うことにより、２段目の空間フィルタ処理結果７０３を得る。そして、空間フィルタ演算部６４０は、図９の状態３に示すように、ステップＳ８０４で選択したＢＢａ６３１に２段目の空間フィルタ処理結果７０３を格納する。このとき、既にＢＢａ６３１には初期化工程領域７０１が格納されているが、空間フィルタ演算部６４０は、これを破棄して、２段目の空間フィルタ処理結果７０３を上書する。また、 空間フィルタ演算部６４０は、同じくステップＳ８０４で選択したＴＭｂ６２２に対して図７の中間データｂ７０２ａを格納する。
【００５２】
３段目以降の処理も同様である。初期化工程では、初期化工程領域７０１に対して繰り返し空間フィルタ処理が行われるため、ｒｎ段目の空間フィルタ処理結果（例えば、２段目の空間フィルタ処理結果７０３）の画像データの大きさは、初期化工程領域７０１に比べて小さくなっている。例えば、３段目の処理において、２段目の空間フィルタ処理結果７０３が空間フィルタ処理を行うのに必要な画像データの大きさを有していない場合がある。このとき、空間フィルタ演算部６４０は、２段目の空間フィルタ処理結果７０３に対して空間フィルタ処理を行わず、図９の状態４に示すように、２段目の空間フィルタ処理結果７０３を中間データｃ７０３ａとしてステップＳ８０４で選択したＴＭｃ６３３に格納する。その後、ステップＳ８０６において、空間フィルタ演算部６４０は、変数ｒｎに１を加算し、処理はステップＳ８０３に移行する。
【００５３】
以上が初期化工程の手順となる。初期化工程では、この手順に従うことにより、中間データバッファ内のＴＭａ６２１〜ＴＭｃ６２３に処理工程で必要となる中間データが格納される。
【００５４】
次に、処理工程について説明する。処理工程では、中間データバッファ６２０に格納されている中間データの更新を行いつつ、処理工程領域と中間データとを組み合わせた画像データに対して空間フィルタ処理を複数回適用することにより、空間フィルタ処理結果を出力する。
【００５５】
ｎ個目の処理工程領域に対する処理工程において、空間フィルタ演算部６４０は、ｎ個目の処理工程領域とｎ−１個目の処理工程領域の処理で更新された中間データとを組み合わせた画像データに対して、空間フィルタ処理を複数回適用する。同時に、空間フィルタ演算部６４０は、中間データを、ｎ＋１個目の処理工程領域の処理工程で必要となる中間データに更新する。ｎ個目の処理工程領域は、第１のブロック領域の例であり、ｎ−１個目の処理工程領域（初期化処理工程領域）は、第２のブロック領域の例である。
【００５６】
以下、図１０を参照しながら、処理工程領域４１１〜４１Ｍに対する処理工程について説明する。図１０は、処理工程の一例を説明するための図である。図１０（ａ）の矩形１００１は、ｎ個目の処理工程領域を示しており、１００１ｂは、ＴＭａ６２１に格納されているｎ−１個目の処理工程で得られた中間データを示している。
【００５７】
先ず、空間フィルタ演算部６４０は、１段目の処理を行う。即ち、空間フィルタ演算部６４０は、中間データ１００１ｂを処理工程領域１００１に隣接するよう組み合わせた画像データに対して空間フィルタ処理を行うことにより、図１０（ｂ）の１段目の空間フィルタ処理結果１００２を得る。同時に、空間フィルタ演算部６４０は、空間フィルタの長さをｆｗ画素とした場合、処理工程領域１００１の右から（ｆｗ−１）画素中に含まれる領域１００１ａを中間データａとして中間データバッファ６２０内のＴＭａ６２１に格納する。
【００５８】
次に、空間フィルタ演算部６４０は２段目の処理を行う。即ち、空間フィルタ演算部６４０は、１段目の処理と同様に、１段目の空間フィルタ処理結果１００２と中間データｂ１００２ｂとを組み合わせた画像データに対して空間フィルタ処理を行うことにより、図１０（ｃ）に示す２段目の処理結果１００３を得る。同時に、空間フィルタ演算部６４０は、１段目の処理結果１００２の右から（ｆｗ−１）画素中に含まれる領域１００２ａを中間データｂとして中間データバッファ６２０内のＴＭｂ６２２に格納する。
【００５９】
次に、空間フィルタ演算部６４０は３段目の処理を行う。即ち、空間フィルタ演算部６４０は、１段目及び２段目の処理と同様に、２段目の空間フィルタ処理結果１００３と中間データｃ１００３ｂとを組み合わせた画像データに対して空間フィルタ処理を行うことにより、図１０（ｄ）に示す３段目の処理結果１００４を得る。同時に、空間フィルタ演算部６４０は、２段目の処理結果１００３の右から（ｆｗ−１）画素中に含まれる領域１００３ａを中間データｃとして中間データバッファ６２０内のＴＭｃ６２３に格納する。
【００６０】
最後に、３段目の処理結果１００４がｎ個目の処理工程領域に対して空間フィルタ処理を複数回適用した結果となり、空間フィルタ演算部６４０からＲＡＭ１１６等に出力される。
【００６１】
次に、図１１のフローチャートを参照しながら、処理工程について説明する。ステップＳ１１０１において、空間フィルタ演算部６４０は、処理段数を示す変数ｒｎに１をセットする。ステップＳ１１０２において、空間フィルタ演算部６４０は、処理工程領域を取得する。
【００６２】
ステップＳ１１０３において、空間フィルタ演算部６４０は、変数ｒｎが所定の値に達したか否か、即ち、処理段数が所定の処理段数に達したか否かを判定する。変数ｒｎが所定の値に達した場合、処理はステップＳ１１０７に移行する。一方、変数ｒｎが所定の値に達していない場合、処理はステップＳ１１０４に移行する。
【００６３】
ステップＳ１１０７において、制御部６１０は、ブロックデータバッファ６３０に保持された空間フィルタ処理結果を出力する。ステップＳ１１０４において、空間フィルタ演算部６４０は、利用する中間データバッファ６２０及びブロックデータバッファ６３０の記録領域を選択する。即ち、１段目の処理において、空間フィルタ演算部６４０は、処理工程領域を格納する記憶領域としてＢＢａ６３１を選択し、図１２の状態１に示すように、処理工程領域をＢＢａ６３１に格納する。また、空間フィルタ演算部６４０は、１段目の処理後に中間データを格納する領域としてＴＭａ６２１を選択し、１段目の空間フィルタ処理結果を格納する領域としてＢＢｂ６３２を選択する。２段目の処理において、空間フィルタ演算部６４０は、２段目の処理後に中間データを格納する領域としてＴＭｂ６２２を選択し、２段目の空間フィルタ処理結果を格納する領域としてＢＢａ６３１を選択する。
【００６４】
その後、処理はステップＳ１１０５に移行する。ステップＳ１１０５において、空間フィルタ演算部６４０は、中間データバッファ６２０に格納されている中間データと、ブロックデータバッファ６３０に格納されている処理工程領域とを組み合わせた画像データに対してｒｎ段目の処理を行う。即ち、１段目の処理において、空間フィルタ演算部６４０は、ＢＢａ６３１に格納されている処理工程領域１００１と中間データ１００１ｂとを組み合わせた画像データに対して空間フィルタ処理を行うことにより、１段目の空間フィルタ処理結果１００２を得る。そして、空間フィルタ演算部６４０は、図１２の状態２に示すように、１段目の空間フィルタ処理結果１００２をステップＳ１１０４にて選択したＢＢｂ６３２に格納し、同時に選択したＴＭａ６２１に中間データａを上書きする。
【００６５】
２段目の処理において、空間フィルタ演算部６４０は、ＢＢｂ６３２に格納されている１段目の空間フィルタ処理結果１００２と、ＴＭａ６２１に格納されている中間データａとを組み合わせた画像データに対して２段目の空間フィルタ処理を行う。これにより、２段目の空間フィルタ処理結果１００３が得られる。そして、空間フィルタ演算部６４０は、図１２の状態３に示すように、２段目の空間フィルタ処理結果１００３を、出力用バッファとして選択しているＢＢａ６３１に格納する。このとき、ＢＢａ６３１には処理工程領域１００１が格納されているが、空間フィルタ演算部６４０は、これを破棄して、２段目の空間フィルタ処理結果１００３を上書きする。また同時に、空間フィルタ演算部６４０は、ステップＳ１１０３で選択したＴＭｂ６２２に中間データｂを上書きする。
【００６６】
３段目の処理において、空間フィルタ演算部６４０は、ＢＢａ６３１に格納されている２段目の空間フィルタ処理結果１００３と、ＴＭｂ６２２に格納されている中間データｂとを組み合わせた画像データに対して、３段目の空間フィルタ処理を行う。これにより、３段目の空間フィルタ処理結果１００４が得られる。そして、空間フィルタ演算部６４０は、図１２の状態４に示すように、３段目の空間フィルタ処理結果１００４を、出力用バッファとして選択しているＢＢｂ６３２に格納する。このとき、ＢＢｂ６３２には１段目の空間フィルタ処理結果１００２が格納されているが、空間フィルタ演算部６４０は、これを破棄して、３段目の空間フィルタ処理結果１００４を上書きする。また同時に、空間フィルタ演算部６４０は、ステップＳ１１０３で選択したＴＭｃ６２３に中間データｃを上書きする。
【００６７】
ステップＳ１１０６において、空間フィルタ演算部６４０は、変数ｒｎに１を加算する。そして、処理はステップＳ１１０３に移行する。以上が処理工程の手順となる。
【００６８】
以上の処理により、１段目の処理では入力をＢＢａ６３１とし、出力をＢＢｂ６３２とし、２段目の処理では入力をＢＢｂ６３２とし、出力をＢＢａ６３１とするように、段数が１増える毎にＢＢａ６３１、ＢＢｂ６３２の入出力の役割を切り替える。これにより、２つのＢＢのみで処理工程領域に対して空間フィルタ処理を複数回適用することが可能となる。
【００６９】
また、処理段数に応じた各中間データを中間データバッファ６２０で格納し、処理段数に応じて使用する中間データを選択することにより、処理工程領域にオーバーラップ領域を付加しなくても、空間フィルタ処理を複数回適用することを可能にしている。
【００７０】
従って、本実施形態によれば、少ないメモリ容量で、画像処理部１３０とＲＡＭ１１６との間の画素データの送受信を抑えることができる。
【００７１】
処理工程において、空間フィルタ演算部６４０は、複数段の空間フィルタ処理を行っている。次に、図１３を参照しながら、図１１におけるステップＳ１１０５のｒｎ段目の空間フィルタ処理について詳細に説明する。ここでは、図１０に示す処理工程領域１００１と中間データａ１００１ｂとを組み合わせた画像データに対して空間フィルタ処理を行うことにより、１段目の空間フィルタ処理結果１００２を得る場合を例に挙げて説明する。
【００７２】
ステップＳ１３０１において、空間フィルタ演算部６４０は、注目画素位置ｙが処理工程領域の高さｂｈを超えているか否かを判定する。注目画素位置ｙが処理工程領域の高さｂｈを超えている場合、処理は終了する。一方、注目画素位置ｙが処理工程領域の高さｂｈを超えていない場合、処理はステップＳ１３０２に移行する。
【００７３】
ステップＳ１３０２において、空間フィルタ演算部６４０は、注目画素位置ｘが処理工程領域の空間フィルタ処理可能な長さ（ｅｗ−（ｆｗ−１））を超えているか否かを判定する。注目画素位置ｘが処理工程領域の空間フィルタ処理可能な長さを超えている場合、処理はステップＳ１３０６に移行する。一方、注目画素位置ｘが処理工程領域の空間フィルタ処理可能な長さを超えていない場合、処理はステップＳ１３０３に移行する。
【００７４】
ステップＳ１３０３において、空間フィルタ演算部６４０は、注目画素位置から空間フィルタ処理領域を設定する。ここで、図１４を参照しながら、この空間フィルタ処理領域の設定方法について３×３画素の空間フィルタ処理を行う場合を例に挙げて説明する。図１４では、中間データバッファ６２０に保持されている中間データ（ここでは、１００１ｂ）と、ブロックデータバッファ６３０に保持されている処理工程領域（ここでは、１００１）とを示している。（０，０）の領域から空間フィルタ処理が開始される。
【００７５】
先ず、空間フィルタ演算部６４０は、中間データの長さ方向に２画素、高さ方向に３画素の斜線領域（ｌ）を選択する。そして、空間フィルタ演算部６４０は、処理工程領域の長さ方向に１画素、高さ方向に３画素の斜線領域（ｍ）を選択する。空間フィルタ演算部６４０は、斜線領域（ｌ）及び斜線領域（ｍ）を長さ方向に順に並べて組み合わせることにより、３×３画素の空間フィルタ領域（ｎ）（０，０）が生成される。
【００７６】
ステップＳ１３０４において、制御部６１０は、空間フィルタ領域（ｎ）（０，０）を空間フィルタ演算部６４０に出力して、各画素値の平均値を求める空間フィルタ処理を実行させる。ステップＳ１３０５において、空間フィルタ演算部６４０は、空間フィルタ処理結果を出力用ブロックとして選択されているブロックデータバッファ（６３１、６３２のうちの出力用と選択されている方）に出力する。ここで、注目画素位置が（０，０）である場合、図１５に示すように、（０，０）の位置に空間フィルタ処理結果が保持される。ステップＳ１３０５において、空間フィルタ演算部６４０は、処理領域を長さ方向ｘに１画素移動し、次の処理領域を処理していく。
【００７７】
ステップ１３０６において、空間フィルタ演算部６４０は、中間データバッファ６２０に格納されている中間データを更新する。図１６はその例を示す図である。図１６に示すように、空間フィルタ演算部６４０は、注目画素位置が長さ方向に３画素まで行った時、中間データの更新を行う。即ち、空間フィルタ演算部６４０は、処理工程領域の０行目の右から２画素中に含まれる領域を更新データとし、中間データバッファ上の高さ方向が０の更新領域に保持されているデータを破棄して、更新データを上書きする。
【００７８】
ステップＳ１３０７において、空間フィルタ演算部６４０は、長さ方向ｘを０にリセットし、高さ方向ｙに１加算して、処理を続ける。以上が図１１のステップＳ１１０５に示す空間フィルタ処理の手順である。
【００７９】
次に、初期化工程領域と処理工程領域の長さ決定方法について説明する。バンド領域に対して空間フィルタ処理をｒｎ回行う場合、空間フィルタ演算部６４０は、初期化工程時にｎ＝０の初期化工程領域に対してｆｗ × ｆｈの平滑化処理である空間フィルタ処理を（ｒｎ−１）回実行し、中間データを保持する処理を行う。
【００８０】
ここで行われる空間フィルタ処理とは、長さがｆｗ画素、高さがｆｈ画素の画像領域に含まれる画素値の平均を求める処理であり、空間フィルタ処理結果は１画素の値となる。図１７は、空間フィルタ処理の対象となる領域の長さがｆｗ画素より大きい場合、又は、高さがｆｈ画素より大きい場合の空間フィルタ処理の例を示す図である。ここでは、ｆｗ＝３、ｆｈ＝３、処理対象領域が長さ及び高さともに６画素である例を示している。
【００８１】
図１７に示すように、空間フィルタ演算部６４０は、注目画素位置（０，０）の空間フィルタ処理領域から空間フィルタ処理を行う。次に、空間フィルタ演算部６４０は、空間フィルタ処理領域を長さ方向に１画素ずらして、注目画素位置（１，０）の空間フィルタ処理領域に対して空間フィルタ処理を行う。このように、空間フィルタ演算部６４０は、空間フィルタ処理領域を長さ方向に１画素ずつずらしながら０行目の処理を進めていく。空間フィルタ演算部６４０は、０行目の空間フィルタ処理が終わると、空間フィルタ処理領域を縦方向に１画素ずらし、注目画素位置（０，１）の空間フィルタ処理領域から空間フィルタ処理を行う。ここでも０行目の処理と同様に、空間フィルタ処理領域を長さ方向に１画素ずつずらしながら空間フィルタ処理が行われる。これを繰り返すことにより、画像領域全体に対する空間フィルタ処理が完了する。以上のような空間フィルタ処理により得られる空間フィルタ処理結果は、空間フィルタ処理の対象となる画像領域に対して長さが（ｆｗ−１）画素、高さが（ｆｈ−１）画素小さくなる。
【００８２】
ここで、初期化工程領域に空間フィルタ処理を行った場合、図７に示すように、出力される空間フィルタ処理結果７０２は、初期化工程領域７０１から長さが（ｆｗ−１）画素、高さが（ｆｈ−１）画素小さくなる。２段目の空間フィルタ処理結果７０３も同様に、１段目の空間フィルタ処理結果７０２より小さくなる。このため、（ｒｎ−１）回の空間フィルタ処理を実行する際、２段目の空間フィルタ処理結果７０３の斜線領域７０３ａを出力できる初期化工程領域７０１の長さを設定しなければならない。本実施形態では、初期化工程領域７０１の長さｉｎｉｔｗを（ｆｗ−１）× ｒｎとすることにより、初期化工程に必要最低限の領域を設定することができる。ここで、ブロックデータバッファの容量を、初期化工程領域と１段目の空間フィルタ処理結果とを保持できるだけの容量に設定することにより、ブロックデータバッファの規模を最小限に設定することができる。
【００８３】
また、図１０に示すように、処理工程において、空間フィルタ演算部６４０は、初期化工程や処理工程で保持した中間データａ，ｂ，ｃ（例えば、１００１ａ〜１００３ａ）と処理工程領域（１００１〜１００３）とを組み合わせた画像データに対して空間フィルタ処理を行う。ここで、初期化工程で保持されるデータの最大容量は、初期化工程領域７０１と１段目の空間フィルタ処理結果７０２とが保持されるときであり、処理工程で保持されるデータの最大容量は、処理工程領域１００１と１段目の空間フィルタ処理結果１００２とが保持されるときとなる。この処理工程時に保持されるデータの最大容量が初期化工程時に保持されるデータの最大容量に収まるように設定することにより、初期化工程領域又は処理工程領域を保持するブロックデータバッファの容量を小規模にしつつ、バンド領域全体を処理することが可能となる。
【００８４】
ここで、初期化工程に必要なデータの最大容量は、バンド領域の高さをｂｈとすると、次の式で表される画素数となる。
【００８５】
【数１】
2014078114.tif 000003
【００８６】
また、処理工程に必要なデータの最大容量は、処理工程領域の長さをｅｗとすると、次の式で表される画素数となる。
【００８７】
【数２】
2014078114.tif 000004
【００８８】
空間フィルタ演算部６４０は、処理工程に必要なデータ容量が初期化工程に必要なデータの最小容量に収まるようｅｗを決定する。例えば、空間フィルタ演算部６４０は、処理工程領域の長さｅｗ画素を以下の式３で求め、小数点を切り捨てた値に決定する。
【００８９】
【数３】
2014078114.tif 000005
【００９０】
空間フィルタ演算部６４０は、以上の手順から初期化工程領域の長さを求め、ブロックデータバッファの容量を決定し、処理工程領域の長さを算出することにより、空間フィルタ演算部６４０に搭載するブロックデータバッファの容量を小規模にしつつ、バンド領域に対して空間フィルタ処理を行うことが可能となる。
【００９１】
次に、本発明の第２の実施形態について説明する。上述した第１の実施形態では、空間フィルタ回路２３０のブロックデータバッファ６３０に２つの記憶領域（ＢＢ）を配置し、中間データバッファ６２０に３つの記憶領域（ＴＭ）を配置した。これに対し、第２の実施形態では、図１８に示すように、空間フィルタ回路２３０´にデータ保持部１８２０が一つしかない場合においてもデータ保持部１８２０を効率的に利用し、空間フィルタ処理の複数回適用を可能にする方法について説明する。
【００９２】
先ず、データ保持部１８２０上に確保するデータ容量の結果方法について述べ、続けてその利用方法について説明する。
【００９３】
データ保持部１８２０上に確保するデータ容量の決定方法を、空間フィルタ回路２３０´で実行する空間フィルタ回数がｒｎ回、バンド領域の高さがｏｂｈ画素、空間フィルタサイズが高さｆｈ画素、長さｆｗ画素であり、画素値を表すのに必要なビット数がｋ ｂｉｔである場合について説明する。空間フィルタ回路２３０´は、中間データバッファに確保する容量を次の式４で算出する。
【００９４】
【数４】
2014078114.tif 000006
【００９５】
また、空間フィルタ回路２３０´は、ブロックデータバッファに確保する容量を次の式５で算出する。
【００９６】
【数５】
2014078114.tif 000007
【００９７】
空間フィルタ回路２３０´は、求めた中間データバッファ及びブロックデータバッファに必要な容量をデータ保持部１８２０上に確保し、確保したデータ保持部１８２０上の領域から、図１９に示すように、ＴＭａ、ＴＭｂ、ＴＭｃ、・・・、ＢＢａ、ＢＢｂとして扱う記憶領域を決定する。図１９では、各領域が隣接するアドレスに配置されるように示しているが、必ずしも各記憶領域が隣接している必要はない。
【００９８】
次に、空間フィルタ回路２３０´は、図１８に示す構成において、空間フィルタ処理を実行する際、１段目の処理時には、入力するブロック領域の保存場所をデータ保持部１８２０上のＢＢａとして割り当てられた記憶領域に保存する。空間フィルタ回路２３０´は、そのブロック領域を空間フィルタ演算部６４０に入力して空間フィルタ処理を行う。そして、空間フィルタ回路２３０´は、空間フィルタ処理結果をデータ保持部１８２０上のＢＢｂとして割り当てられた記憶領域に保存し、同時に、中間データaをデータ保持部１８２０上のＴＭａとして割り当てられた記憶領域に保存する。以上のように、第２の実施形態においては、空間フィルタ回路２３０´に１つのメモリに中間データバッファ、ブロックデータバッファとして利用するのに必要な容量を確保し、確保した記憶領域をＴＭａ、ＴＭｂ、ＴＭｃ、・・・、ＢＢａ、ＢＢｂとして扱う。以上の操作を制御部１８１０で包括的に行う。
【００９９】
これによって、空間フィルタ回路に１つのデータ保持部１８２０しかない場合においても、メモリ容量の増加を抑えつつ、空間フィルタ処理の複数回適用を実現できる。また、データ保持部１８２０にマルチポートメモリを利用して、ＴＭａ及びＢＢａのデータを読出し、平滑化処理で処理した結果をＢＢｂに書き出す等の処理を並列に動作させてもよい。
【０１００】
次に、本発明の第３の実施形態について説明する。ブロック領域の大きさをメモリと画像処理部間の転送で決められたバースト長から決めることもできる。例えば、一回のバースト転送で送受信できる画素数が８個だった場合には、ブロック領域の長さを８画素や１６画素とする。このように、ブロック領域の長さを一回のバースト転送で送受信できる画素数の整数倍に設定する。これにより、ブロック領域の高さに関わらず、ブロック領域に含まれる画素数を一回のバースト転送で送受信できる画素数で割り切れる。従って、ブロック領域の転送が容易になり、効率のよい画素データの転送が可能になる。
【０１０１】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１０２】
２３０、２３０´：空間フィルタ回路、６１０、１８１０：制御部、６２０：中間データバッファ、６３０：ブロックデータバッファ、６４０、１８４０：空間フィルタ演算部、１８２０：データ保持部
【図１】
2014078114.tif 000010
【図２】
2014078114.tif 000011
【図３】
2014078114.tif 000012
【図４】
2014078114.tif 000013
【図５】
2014078114.tif 000014
【図６】
2014078114.tif 000015
【図７】
2014078114.tif 000016
【図８】
2014078114.tif 000017
【図９】
2014078114.tif 000018
【図１０】
2014078114.tif 000019
【図１１】
2014078114.tif 000020
【図１２】
2014078114.tif 000021
【図１３】
2014078114.tif 000022
【図１４】
2014078114.tif 000023
【図１５】
2014078114.tif 000024
【図１６】
2014078114.tif 000025
【図１７】
2014078114.tif 000026
【図１８】
2014078114.tif 000027
【図１９】
2014078114.tif 000028