(57)【要約】【課題】有限なフィルタ範囲を持つ空間フィルタを用いて、任意サイズを持つフィルタ範囲のフィルタリングを完全に実現すること。【解決手段】所定のフィルタ係数群を割り当てられた任意サイズのフィルタ範囲が用意される。このフィルタ範囲は、空間フィルタ１７の有するフィルタ範囲以下のサブフィルタ範囲に分割される。サブフィルタ範囲の各々に割り当てられたフィルタ係数群を空間フィルタ１７に順番に設定するたびに、空間フィルタ１７は画像データをフィルタリングして中間データを出力する。中間データを、任意サイズのフィルタ範囲の着目画素とサブフィルタ範囲の着目画素との間の差を補正するように加算することで、任意サイズのフィルタ範囲のフィルタリング結果を算出することが可能になる。【選択図】　　　　図２
2004145615.tif 000002
【特許請求の範囲】
【請求項１】
画像データをフィルタリングする画像処理装置であって、
所定範囲内の画像データをサンプリングし、サンプリングした前記画像データと可変のフィルタ係数とを用いて畳み込み演算を実行する空間フィルタと、
所定のフィルタ係数群を割り当てられたフィルタ範囲を前記所定範囲以下のサブフィルタ範囲に分割するとともに、前記サブフィルタ範囲の各々に割り当てられたフィルタ係数群を前記空間フィルタに順番に設定するたびに同一の前記画像データをフレーム単位或いはサブフレーム単位で前記空間フィルタに入力させて、前記サブフィルタ範囲の分割数と同じ数の前記フレーム単位或いは前記サブフレーム単位の中間データを出力させる制御部と、
前記分割数と同じ数の前記中間データを画素単位で加算する加算手段と、
各前記中間データ間における、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように前記中間データを前記加算手段に入力させる補正手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記補正手段は、
前記中間データを格納するメモリと、
前記制御部の制御により、前記メモリに格納された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように読出して前記加算手段に転送するデータ転送部と、
を備えて構成される画像処理装置。
【請求項３】
請求項１記載の画像処理装置であって、
前記補正手段は、
前記中間データを格納するメモリと、
前記制御部の制御により、前記空間フィルタから出力された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正して書込むように前記メモリに転送するとともに、当該メモリから、複数のフレーム或いはサブフレームの前記中間データを読み出して前記加算手段に転送するデータ転送部と、
を備えて構成される画像処理装置。
【請求項４】
請求項２または請求項３に記載の画像処理装置であって、
前記データ転送部は、複数個のＤＭＡ（ダイレクト・メモリ・アクセス）チャンネルを有するＤＭＡコントローラを備えており、
前記ＤＭＡコントローラは、前記メモリから前記空間フィルタへの第１のデータ転送と、前記空間フィルタから前記メモリへの第２のデータ転送とにそれぞれ異なる前記ＤＭＡチャンネルを割り当てるとともに、前記第１のデータ転送と前記第２のデータ転送とを前記ＤＭＡコントローラに並列に実行する、
画像処理装置。
【請求項５】
請求項２〜請求項４の何れか１項に記載の画像処理装置であって、
前記データ転送部は、複数個のＤＭＡ（ダイレクト・メモリ・アクセス）チャンネルを有するＤＭＡコントローラから構成されており、
前記ＤＭＡコントローラは、前記メモリから前記加算手段への第１のデータ転送と、前記加算手段から前記メモリへの第２のデータ転送とにそれぞれ異なる前記ＤＭＡチャンネルを割り当てるとともに、前記第１のデータ転送と前記第２のデータ転送とを並列に実行する、
画像処理装置。
【請求項６】
請求項１〜請求項５の何れか１項に記載の画像処理装置であって、前記制御部は、当該サブフィルタ範囲の一部にゼロ値のフィルタ係数を割り当てる、画像処理装置。
【請求項７】
画像データをフィルタリングする画像処理方法であって、
（ａ）所定範囲の画像データをサンプリングし、サンプリングした前記画像データと可変のフィルタ係数とを用いて畳み込み演算を実行する工程、
を備えるとともに、
（ｂ）所定のフィルタ係数群を割り当てられたフィルタ範囲を前記所定範囲以下のサブフィルタ範囲に分割し、前記サブフィルタ範囲の各々に割り当てられたフィルタ係数群を、前記工程（ａ）における前記可変のフィルタ係数群として順番に設定する工程と、
（ｃ）前記工程（ｂ）で前記各フィルタ係数群を設定するたびに、同一の前記画像データに対してフレーム単位或いはサブフレーム単位で前記工程（ａ）を実行して、前記サブフィルタ範囲の分割数と同じ数の中間データを生成する工程と、
（ｄ）各前記中間データ間における、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように、前記分割数と同じ数の前記中間データを画素単位で加算する工程と、
を備えることを特徴とする画像処理方法。
【請求項８】
請求項７記載の画像処理方法であって、
（ｅ）前記工程（ｃ）で生成された前記中間データをメモリに格納する工程、を更に備えており、
前記工程（ｄ）は、
（ｄ−１）前記工程（ｅ）で格納された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように前記メモリから読出す工程と、
（ｄ−２）前記工程（ｄ−１）で読み出された複数のフレーム或いはサブフレームの前記中間データを画素単位で加算する工程と、
から構成される、画像処理方法。
【請求項９】
請求項７記載の画像処理方法であって、
（ｅ）前記工程（ｃ）で生成された前記中間データをメモリに転送し格納する工程、
を更に備えており、
前記工程（ｄ）は、
（ｄ−１）前記工程（ｃ）で生成された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正して書き込むように前記メモリに転送する工程と、
（ｄ−２）前記メモリから、複数のフレーム或いはサブフレームの前記中間データを読み出して画素単位で加算する工程と、
から構成される、画像処理方法。
【請求項１０】
請求項７〜請求項９の何れか１項に記載の画像処理方法であって、
前記工程（ｂ）は、当該サブフィルタ範囲の一部にゼロ値のフィルタ係数を割り当てる工程を備える、画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像データにフィルタリングを施す画像処理装置および画像処理方法に関する。
【０００２】
【従来の技術】
従来から、画像データの高周波成分の強調などのために空間フィルタが使用されている。一般に、空間フィルタは、３×３画素や７×７画素程度の範囲（以下、フィルタ範囲と呼ぶ。）の画像データをサンプリングし、サンプリングした各データにフィルタ係数を重み付けし、重み付けされた全データを加算するという畳み込み演算を実行するものである。フィルタ係数を状況に応じてプログラマブルに（可変に）設定できるプログラマブル空間フィルタも広く普及している。かかる空間フィルタに関する技術は、例えば特許文献１，２において紹介されている。
【０００３】
【特許文献１】
特開平０６−３１９０４４号公報
【特許文献２】
特開平０６−２９２０１４号公報
【０００４】
【発明が解決しようとする課題】
デジタルカメラなどの画像処理装置では、高速処理のためハードウェア構成のプログラマブル空間フィルタが搭載されていることが多い。この種の空間フィルタのフィルタ範囲は５×５画素や７×７画素などに固定されるため、フィルタ範囲を拡張したい場合は、プログラマブル空間フィルタの再帰的利用が行われていた。具体的には、空間フィルタの出力結果を、再度、同じ空間フィルタに入力させてフィルタリングするというループ処理が行われていた。これにより、例えば、５×５画素のフィルタ範囲を持つ空間フィルタを用いて２回のループ処理を実行した場合は、フィルタ範囲を９×９画素に拡張することが可能になる。
【０００５】
しかしながら、このようなループ処理ではフィルタ範囲を完全に拡張することが難しい。具体的には、５×５画素のフィルタ範囲を持つ空間フィルタを用いた２回のループ処理は、すべての場合において９×９画素のフィルタ範囲を持つ空間フィルタを用いた１回の処理で実現可能であるが、これとは逆に、９×９画素のフィルタ範囲を持つ空間フィルタで可能なフィルタリングは、すべての場合において前記２回のループ処理で実現可能とは限らず、実現不可能な場合がある。
【０００６】
以上の状況に鑑みて本発明が解決しようとするところは、有限なフィルタ範囲を持つ空間フィルタを用いて、当該有限なフィルタ範囲を超えるサイズのフィルタ範囲のフィルタリングを完全に実行し得る画像処理装置および画像処理方法を提供する点にある。
【０００７】
【課題を解決するための手段】
上記課題を解決するため、第１の発明は、画像データをフィルタリングする画像処理装置であって、所定範囲内の画像データをサンプリングし、サンプリングした前記画像データと可変のフィルタ係数とを用いて畳み込み演算を実行する空間フィルタと、所定のフィルタ係数群を割り当てられたフィルタ範囲を前記所定範囲以下のサブフィルタ範囲に分割するとともに、前記サブフィルタ範囲の各々に割り当てられたフィルタ係数群を前記空間フィルタに順番に設定するたびに同一の前記画像データをフレーム単位或いはサブフレーム単位で前記空間フィルタに入力させて、前記サブフィルタ範囲の分割数と同じ数の前記フレーム単位或いは前記サブフレーム単位の中間データを出力させる制御部と、前記分割数と同じ数の前記中間データを画素単位で加算する加算手段と、各前記中間データ間における、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように前記中間データを前記加算手段に入力させる補正手段と、を備えることを特徴としている。
【０００８】
第２の発明は、第１の発明の画像処理装置であって、前記補正手段は、前記中間データを格納するメモリと、前記制御部の制御により、前記メモリに格納された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように読出して前記加算手段に転送するデータ転送部と、を備えて構成される。
【０００９】
第３の発明は、第１の発明の画像処理装置であって、前記補正手段は、前記中間データを格納するメモリと、前記制御部の制御により、前記空間フィルタから出力された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正して書込むように前記メモリに転送するとともに、当該メモリから、複数のフレーム或いはサブフレームの前記中間データを読み出して前記加算手段に転送するデータ転送部と、を備えて構成される。
【００１０】
第４の発明は、第２または第３の発明の画像処理装置であって、前記データ転送部は、複数個のＤＭＡ（ダイレクト・メモリ・アクセス）チャンネルを有するＤＭＡコントローラを備えており、前記ＤＭＡコントローラは、前記メモリから前記空間フィルタへの第１のデータ転送と、前記空間フィルタから前記メモリへの第２のデータ転送とにそれぞれ異なる前記ＤＭＡチャンネルを割り当てるとともに、前記第１のデータ転送と前記第２のデータ転送とを前記ＤＭＡコントローラに並列に実行するものである。
【００１１】
第５の発明は、第２〜第４の何れか１つの発明の画像処理装置であって、前記データ転送部は、複数個のＤＭＡ（ダイレクト・メモリ・アクセス）チャンネルを有するＤＭＡコントローラから構成されており、前記ＤＭＡコントローラは、前記メモリから前記加算手段への第１のデータ転送と、前記加算手段から前記メモリへの第２のデータ転送とにそれぞれ異なる前記ＤＭＡチャンネルを割り当てるとともに、前記第１のデータ転送と前記第２のデータ転送とを並列に実行するものである。
【００１２】
第６の発明は、第１〜第５の何れか１つの発明の画像処理装置であって、前記制御部は当該サブフィルタ範囲の一部にゼロ値のフィルタ係数を割り当てるものである。
【００１３】
次に、第７の発明は、画像データをフィルタリングする画像処理方法であって、（ａ）所定範囲の画像データをサンプリングし、サンプリングした前記画像データと可変のフィルタ係数とを用いて畳み込み演算を実行する工程、を備えるとともに、（ｂ）所定のフィルタ係数群を割り当てられたフィルタ範囲を前記所定範囲以下のサブフィルタ範囲に分割し、前記サブフィルタ範囲の各々に割り当てられたフィルタ係数群を、前記工程（ａ）における前記可変のフィルタ係数群として順番に設定する工程と、（ｃ）前記工程（ｂ）で前記各フィルタ係数群を設定するたびに、同一の前記画像データに対してフレーム単位或いはサブフレーム単位で前記工程（ａ）を実行して、前記サブフィルタ範囲の分割数と同じ数の中間データを生成する工程と、（ｄ）各前記中間データ間における、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように、前記分割数と同じ数の前記中間データを画素単位で加算する工程と、を備えることを特徴としている。
【００１４】
第８の発明は、第７の発明の画像処理方法であって、（ｅ）前記工程（ｃ）で生成された前記中間データをメモリに格納する工程、を更に備えており、前記工程（ｄ）は、（ｄ−１）前記工程（ｅ）で格納された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正するように前記メモリから読出す工程と、（ｄ−２）前記工程（ｄ−１）で読み出された複数のフレーム或いはサブフレームの前記中間データを画素単位で加算する工程と、から構成されている。
【００１５】
第９の発明は、第７の発明の画像処理方法であって、（ｅ）前記工程（ｃ）で生成された前記中間データをメモリに転送し格納する工程、を更に備えており、前記工程（ｄ）は、（ｄ−１）前記工程（ｃ）で生成された前記中間データを、前記フィルタ範囲の着目画素と前記サブフィルタ範囲の着目画素との間の差を補正して書き込むように前記メモリに転送する工程と、（ｄ−２）前記メモリから、複数のフレーム或いはサブフレームの前記中間データを読み出して画素単位で加算する工程と、から構成されている。
【００１６】
そして、第１０の発明は、第７〜第９の何れか１つの発明の画像処理方法であって、前記工程（ｂ）は、当該サブフィルタ範囲の一部にゼロ値のフィルタ係数を割り当てる工程を備えたものである。
【００１７】
【発明の実施の形態】
図１は、本発明の実施形態に係る画像処理装置１の一部構成を示す概略図である。この画像処理装置１は、入力データをリアルタイムに画像処理するＲＰＵ（リアルタイム・プロセッシング・ユニット）１０と、ＣＰＵ（中央演算装置）３０と、このＣＰＵ３０で実行されるプログラムや初期データなどを格納したＲＯＭ２０と、主メモリ４０と、ＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）５０とを備えている。また、これら構成要素１０，２０，３０，４０および５０は、制御信号とデータ信号とを伝達するバス３を介して相互に接続されている。
【００１８】
本実施形態では、この画像処理装置１はデジタルカメラに組み込まれるものとする。したがって、この画像処理装置１は、図示しないが、被写体からの光が入射する光学系や、ＣＣＤやＣＭＯＳなどの撮像素子、この撮像素子から出力されたアナログ信号にノイズ除去、信号増幅およびＡ／Ｄ変換を施す信号処理回路などを備えている。なお、本実施の形態では画像処理装置１はデジタルカメラに組み込まれるものであるが、本発明ではこれに限るものではない。
【００１９】
バス３を介したデータ転送は、ＣＰＵ（制御部）３０またはＤＭＡＣ（データ転送部）５０の何れか一方で行うことができる。主メモリ４０とＲＰＵ１０との間のデータ転送をＤＭＡＣ５０で行う場合、ＤＭＡＣ５０は、搭載する複数のＤＭＡチャンネル５１０〜５１ｎの中から、当該データ転送に割り当てるＤＭＡチャンネル５１ｋ（ｋ：０〜ｎ）を選択するとともに、バスコントローラ（図示せず）にバス獲得要求を発する。バスコントローラがそのバス獲得要求に応じてＤＭＡＣ５０に対してバスの使用許可を発行した場合、ＤＭＡＣ５０は、バス３を使用する旨をバスコントローラに通知し、選択したＤＭＡチャンネル５１ｋを用いて主メモリ４０と入出力制御部１６との間でデータ転送を実行する。ＤＭＡＣ５０によるデータ転送が終了した後はバス３は解放される。
【００２０】
また前記ＲＰＵ１０は、入力する画像データ（デジタル信号）２にデジタル画像処理を施してその結果をバス３に出力する機能を有する。ＲＰＵ１０は、集積回路であって、単一画素処理部１１、補間・ガンマ補正処理部１２、色空間変換・偽色抑制処理部１３、空間フィルタリング・コアリング処理部１４、解像度変換処理部１５および入出力制御部１６を備えて構成されている。またこれら各処理部１１〜１５は、パイプライン制御によって並列に処理を実行できる。
【００２１】
このＲＰＵ１０では、入力した画像データ２は、各処理部１１，１２，１３，１４，１５で順次にパイプライン処理を施された後に、最終段の解像度変換処理部１５から入出力制御部１６に出力される。解像度変換処理部１５から出力された処理データは、ＣＰＵ３０またはＤＭＡＣ５０によって主メモリ４０に転送され、画像データ４０Ｉとして格納される。
【００２２】
このＲＰＵ１０の各処理部１１〜１５の概要は以下の通りである。単一画素処理部１１は、入力する画像データ２を画素単位で処理する機能を有しており、具体的には、複数のフレーム或いはサブフレームに亘って入力する画像データ２を時間的に平均化する処理や、画像中の明暗の輝度ムラを補正するシェーディング補正処理を行うことができる。
【００２３】
また補間・ガンマ補正処理部１２は、画素補間処理とガンマ補正処理とを実行する機能を有する。画素補間処理は、各画素に欠けている色成分を周辺画素を用いて補間するものである。単板式の撮像素子（１枚の色フィルタのみを備えた撮像素子）は、各画素毎に単色成分の信号のみを出力するため、カラー画像を得るには、各画素に欠けている他の色成分を補間しなければならない。この画素補間処理によって各画素は複数の色成分を持つことになる。
【００２４】
また色空間変換・偽色抑制処理部１３は、色空間変換処理と偽色抑制処理とを行う機能を有する。色空間変換処理は、入力データの色空間を他の色空間に変換する処理であり、例えば、入力データのＲＧＢ空間をＹＣｂＣｒ空間またはＹＵＶ空間に変換することができる。また偽色抑圧処理は、前述の画素補間処理などに起因する、画像の色の境界付近や格子模様の部分などで発生する本来存在しない色（偽色）を抑制する処理である。
【００２５】
また空間フィルタリング・コアリング処理部１４は、空間フィルタ（重みマスク）を用いた空間フィルタリング処理と、主に画像の高域成分を抑える非線形処理（コアリング処理）とを実行する機能を有する。図２に示すように、本実施の形態の空間フィルタリング・コアリング処理部１４は、５×５画素をフィルタ範囲とする空間フィルタ１７を備えている。この空間フィルタ１７は、入力画像データＩ１をフィルタリングして処理データＯＤを算出する。具体的には、空間フィルタ１７は、フィルタ範囲における着目画素のデータとその周辺画素のデータとにフィルタ係数（畳み込み核）を重み付けし（乗算し）、重み付けされた全データを加算するという畳み込み演算（積和演算）を実行する。この空間フィルタ１７に設定するフィルタ係数群は、プログラマブルに設定することが可能である。フィルタ係数を適宜設定することで、画像中の線やエッジ部分を強調したり、平滑化したりすることができる。
【００２６】
そして、解像度変換処理部１５は、入力データの画像サイズ（解像度）を縮小または拡大する解像度変換機能を有するものである。
【００２７】
図３に、空間フィルタリング・コアリング処理部１４に備わる空間フィルタ１７のフィルタ範囲１７Ａを模式的に示す。５×５画素のフィルタ範囲１７Ａ内の各画素にフィルタ係数Ｃ［ｉ，ｊ］（ｉ，ｊは０〜４の整数）が設定されている。またフィルタ範囲１７Ａの中心画素すなわち着目画素（ｃｕｒｒｅｎｔ　ｐｉｘｅｌ）にはＣ［２，２］が設定される。図４に模式的に示す画像データ４０Ｉをフィルタリングする場合、空間フィルタ１７は、フィルタ範囲１７Ａ内の中心画素に対応するｍ行ｎ列目のデータＤ［ｍ，ｎ］（ｍは水平画素番号；ｎは垂直画素番号）およびその周辺の５×５画素のデータをサンプリングし、以下の式（１）に従って、サンプリングしたデータとフィルタ係数とを用いて畳み込み演算を実行する。この結果、当該着目画素に関するデータＯ［ｍ，ｎ］が算出される。
【００２８】
【数１】
2004145615.tif 000003
【００２９】
なお、空間フィルタリング・コアリング処理部１４は、上式（１）の出力結果Ｏ［ｍ，ｎ］に右ビットシフト演算を施したり、補正量を加減算したりした結果を出力することもできる。
【００３０】
以上の構成を有する画像処理装置１を用いた本実施形態に係るフィルタリング処理を、図５を参照しつつ以下に説明する。図５は、このフィルタリング処理の手順を示すフローチャートである。
【００３１】
先ず、ステップＳ０では、図６に示すように１０×１０画素のフィルタ範囲１７Ｅを用意し、このフィルタ範囲１７Ｅの各画素にフィルタ係数Ｃ［ｉ，ｊ］，Ｂ［ｋ，ｍ］，Ｄ［ｎ，ｏ］，Ｅ［ｐ，ｑ］（ｉ，ｊ，ｋ，ｍ，ｎ，ｏ，ｐ，ｑは０〜４の整数）を割り当てる。
【００３２】
次のステップＳ１では、ＣＰＵ３０の処理によって、図６に示すフィルタ範囲１７Ｅが、空間フィルタ１７でサンプリング可能なフィルタ範囲（５×５画素）以下の範囲（以下、サブフィルタ範囲と呼ぶ。）に分割される。この結果、図６に示すフィルタ範囲１７Ｅは、第１〜第４のサブフィルタ範囲１７Ａ（図３）、１７Ｂ（図７）、１７Ｃ（図８）および１７Ｄ（図９）に分割されることになる。
【００３３】
次のステップＳ２では、ＣＰＵ３０の処理によって、第１のサブフィルタ範囲１７Ａ（図３）に割り当てられている第１のフィルタ係数群｛Ｃ［ｉ，ｊ］｝が、空間フィルタリング・コアリング処理部１４の空間フィルタ１７に設定される。
【００３４】
次のステップＳ３では、図１０に示すように、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された画像データ４０Ｉをフレーム単位或いはサブフレーム単位で読み出してＲＰＵ１０にＤＭＡ転送する。ＲＰＵ１０に転送された画像データ４０Ｉは、入出力制御部１６を介して空間フィルタ１７に入力させられる。そして、空間フィルタ１７は、入力する画像データ４０Ｉをフィルタリングし、フレーム或いはサブフレームの中間データを出力する。ＤＭＡＣ５０は、空間フィルタ１７から出力された第１の中間データ４１Ａを入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。
【００３５】
次のステップＳ４では、ＣＰＵ３０の処理によって、第２のサブフィルタ範囲１７Ｂ（図７）に割り当てられている第２のフィルタ係数群｛Ｂ［ｋ，ｍ］｝が、空間フィルタ１７に設定される。次のステップＳ５では、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された画像データ４０Ｉをフレーム単位或いはサブフレーム単位で読み出してＲＰＵ１０にＤＭＡ転送する。ＲＰＵ１０に転送された画像データ４０Ｉは、入出力制御部１６を介して空間フィルタ１７に入力させられる。この結果、空間フィルタ１７は、フレーム或いはサブフレームの中間データを出力する。またＤＭＡＣ５０は、空間フィルタ１７から出力された第２の中間データ４１Ｂを入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。
【００３６】
次のステップＳ６では、ＣＰＵ３０の処理によって、第３のサブフィルタ範囲１７Ｃ（図８）に割り当てられている第３のフィルタ係数群｛Ｄ［ｎ，ｏ］｝が、空間フィルタ１７に設定される。次のステップＳ７では、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された画像データ４０Ｉをフレーム単位或いはサブフレーム単位で読み出してＲＰＵ１０にＤＭＡ転送する。ＲＰＵ１０に転送された画像データ４０Ｉは、入出力制御部１６を介して空間フィルタ１７に入力させられる。この結果、空間フィルタ１７は、フレーム或いはサブフレームの中間データを出力する。またＤＭＡＣ５０は、空間フィルタ１７から出力された第３の中間データ４１Ｃを入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。
【００３７】
次のステップＳ８では、ＣＰＵ３０の処理によって、第４のサブフィルタ範囲１７Ｄ（図９）に割り当てられている第４のフィルタ係数群｛Ｅ［ｐ，ｑ］｝が、空間フィルタ１７に設定される。次のステップＳ９では、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された画像データ４０Ｉをフレーム単位或いはサブフレーム単位で読み出してＲＰＵ１０にＤＭＡ転送する。ＲＰＵ１０に転送された画像データ４０Ｉは、入出力制御部１６を介して空間フィルタ１７に入力させられる。この結果、空間フィルタ１７は、フレーム或いはサブフレームの中間データを出力する。ＤＭＡＣ５０は、空間フィルタ１７から出力された第４の中間データ４１Ｄを、入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。
【００３８】
以上のステップＳ２〜Ｓ９の処理の結果、画像データ４０Ｉにそれぞれサブフィルタ範囲１７Ａ〜１７Ｄのフィルタリングを施して得た中間データ４１Ａ〜４１Ｄが、主メモリ４０に格納されることになる。
【００３９】
また、上記ステップＳ３，Ｓ５，Ｓ７，Ｓ９において、ＤＭＡＣ５０は、主メモリ４０からＲＰＵ１０への画像データ４０ＩのＤＭＡ転送と、ＲＰＵ１０から主メモリ４０への中間データ４１Ａ〜４１ＤのＤＭＡ転送とにそれぞれ異なるＤＭＡチャンネル５１Ｓ，５１Ｒ（Ｒ≠Ｓ）を割り当てるとともに、双方のＤＭＡ転送を並列に実行している。これにより、フィルタリングの処理速度の向上が可能になる。
【００４０】
続くステップＳ１０〜Ｓ１２では、主メモリ４０に格納された中間データ４１Ａ〜４１Ｄを加算する加算処理が実行される。すなわち、ステップＳ１０では図１１に示すように、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された第１および第２の中間データ４１Ａ，４１ＢをＲＰＵ１０にＤＭＡ転送する。入出力制御部１６は受信した中間データ４１Ａ，４１Ｂを単一画素処理部１１に入力させる。単一画素処理部１１は加算器１１ａを内蔵しており、この加算器１１ａは入力する２つの中間データ４１Ａ，４１Ｂを画素単位で加算して入出力制御部１６に出力する。そして、ＤＭＡＣ５０は、加算器１１ａから出力された第５の中間データ４１Ｅを、入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。またステップＳ１１では図１２に示すように、ＤＭＡＣ５０が、ＣＰＵ３０の制御により、主メモリ４０に格納された第３および第４の中間データ４１Ｃ，４１ＤをＲＰＵ１０にＤＭＡ転送する。入出力制御部１６は受信した中間データ４１Ｃ，４１Ｄを単一画素処理部１１に入力させ、単一画素処理部１１の加算器１１ａは、入力する中間データ４１Ｃ，４１Ｄを画素単位で加算して入出力制御部１６に出力する。そして、ＤＭＡＣ５０は、加算器１１ａから出力された第６の中間データ４１Ｆを、入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。
【００４１】
上記ステップＳ１０，Ｓ１１（図１１，図１２）において、ＤＭＡＣ５０は、処理速度の向上のために、主メモリ４０からＲＰＵ１０への中間データ４１Ａ〜４１ＤのＤＭＡ転送と、ＲＰＵ１０から主メモリ４０への中間データ４１Ｅ，４１ＦのＤＭＡ転送とにそれぞれ異なるＤＭＡチャンネル５１Ｓ，５１Ｒ（Ｒ≠Ｓ）を割り当てるとともに、双方のＤＭＡ転送を並列に実行している。
【００４２】
また上記ステップＳ１０，Ｓ１１では、１０×１０画素のフィルタ範囲１７Ｅ（図６）の着目画素と、５×５画素のサブフィルタ範囲１７Ａ〜１７Ｄ（図３，図７〜図９）の着目画素との間の差を補正するように中間データ４１Ａ〜４１Ｄを加算する処理が行われる。具体的に双方の着目画素の差を補正する方法は以下の通りである。図１３に、１０×１０画素のフィルタ範囲１７Ｅ（図６）を画像データ４０Ｉに適用した状態を模式的に示す。このフィルタ範囲１７Ｅの着目画素５６と、サブフィルタ範囲１７Ａ〜１７Ｄの着目画素５５Ａ〜５５Ｄとの間には位置の差ΔＡ，ΔＢ，ΔＣ，ΔＤが存在する。ここで、フィルタ範囲１７Ｅの着目画素５６は、必ずしも図１３に示す位置に設定される必要は無く、任意の画素に設定し得る。例えば、フィルタ範囲１７Ｅの着目画素を、図１３に示す画素５６に対して左に隣接する画素に設定してもよいし、サブフィルタ範囲１７Ａの着目画素５５Ａに設定してもよい。
【００４３】
上記フィルタ範囲１７Ｅの着目画素５６に関するフィルタリング結果は、サブフィルタ範囲１７Ａ〜１７Ｄの着目画素５５Ａ〜５５Ｄに関するフィルタリング結果の総和である。このため、上記ステップＳ１０（図１１）において、ＤＭＡＣ５０は、当該着目画素５６に対して図１３に示す差ΔＡだけ読出しアドレスをずらした画素５５Ａのデータを指定して第１の中間データ４１Ａを主メモリ４０から読出すとともに、当該着目画素５６に対して図１３に示す差ΔＢだけ読出しアドレスをずらした着目画素５５Ｂのデータを指定して第２の中間データ４１Ｂを読出すように制御する。また上記ステップＳ１１（図１２）においては、ＤＭＡＣ５０は、当該着目画素５６に対して図１３に示す差ΔＣだけ読出しアドレスをずらした画素５５Ｃのデータを指定して第３の中間データ４１Ｃを読出すとともに、当該着目画素５６に対して図１３に示す差ΔＤだけ読出しアドレスをずらした画素５５Ｄのデータを指定して第４の中間データ４１Ｄを読出すように制御する。
【００４４】
このような読出しアドレスの制御によって、フィルタ範囲１７Ｅの着目画素５６とサブフィルタ範囲１７Ａ〜１７Ｄの着目画素５５Ａ〜５５Ｄとの間の差ΔＡ〜ΔＤを補正するように、第１〜第４の中間データ４１Ａ〜４１Ｄを主メモリ４０から読み出し、単一画素処理部１１の加算器１１ａで加算させることが可能になる。
【００４５】
また、上記読出しアドレスの制御によって着目画素の差ΔＡ〜ΔＤを補正する代わりに、主メモリ４０に第１〜第４の中間データ４１Ａ〜４１Ｄを書き込む際に、前述の着目画素の差ΔＡ〜ΔＤを補正するようにその書込みアドレスを制御してもよい。具体的には、上記ステップＳ３，Ｓ５，Ｓ７，Ｓ９（図１０）において、ＤＭＡＣ５０は、第１〜第４の中間データ４１Ａ〜４１Ｄを主メモリ４０に転送して格納させる際に、図１３に示すサブフィルタ範囲１７Ａ〜１７Ｄの着目画素５５Ａ〜５５Ｄのデータをフィルタ範囲１７Ｅの着目画素５６の位置に書き込むように書込みアドレスを指定するという制御を行う。かかる場合は、上記ステップＳ１０，Ｓ１１（図１１，図１２）では、ＤＭＡＣ５０は、主メモリ４０に格納された第１〜第４の中間データ４１Ａ〜４１Ｄを通常の方法で読み出し、ＲＰＵ１０にＤＭＡ転送すればよい。
【００４６】
次のステップＳ１２では、図１４に示すように、主メモリ４０に格納された第５および第６の中間データ４１Ｅ，４１Ｆを加算する処理が実行される。すなわち、ＤＭＡＣ５０は、ＣＰＵ３０の制御により、主メモリ４０に格納された第５および第６の中間データ４１Ｅ，４１ＦをＲＰＵ１０にＤＭＡ転送する。入出力制御部１６は受信した中間データ４１Ｅ，４１Ｆを単一画素処理部１１に入力させる。単一画素処理部１１の加算器１１ａは入力する２つの中間データ４１Ｅ，４１Ｆを画素単位で加算して入出力制御部１６に出力する。そして、ＤＭＡＣ５０は、加算器１１ａから出力された処理データ４１Ｇを、入出力制御部１６から主メモリ４０にＤＭＡ転送し格納させる。この結果、１０×１０画素のフィルタ範囲１７Ｅのフィルタリング結果である処理データ４１Ｇが得られる。
【００４７】
ここで、ＤＭＡＣ５０は、処理速度の向上のために、主メモリ４０からＲＰＵ１０への第５および第６の中間データ４１Ｅ，４１ＦのＤＭＡ転送と、ＲＰＵ１０から主メモリ４０への処理データ４１ＧのＤＭＡ転送とにそれぞれ異なるＤＭＡチャンネル５１Ｓ，５１Ｒ（Ｒ≠Ｓ）を割り当てるとともに、双方のＤＭＡ転送を並列に実行する。
【００４８】
なお、上記実施形態では、５×５画素のフィルタ範囲を有する空間フィルタ１７や、１０×１０画素のフィルタ範囲のフィルタリング処理の例を示したが、本発明はそれらフィルタ範囲に制限されるものではない。
【００４９】
このように本実施形態に係る画像処理装置１は、空間フィルタ１７を用いて、この空間フィルタ１７の有限のフィルタ範囲に制限されないフィルタリングを完全に行うことができる。したがって、例えば、３×３画素のフィルタ範囲を有する空間フィルタを用いて、１００×１００画素や１０００×１０００画素などの広い範囲のデータをサンプリングし、フィルタリングを実行することが可能である。
【００５０】
ところで、上記実施形態では、１０×１０画素のフィルタ範囲１７Ｅ（図６）のフィルタリング処理の例を説明した。以下、図５に示すフローチャートを参照しつつ、９×９画素をフィルタ範囲とするフィルタリング処理の例を説明する。
【００５１】
画像処理装置１の空間フィルタ１７が有する５×５画素のフィルタ範囲の組合せによって構成可能なフィルタ範囲は、垂直画素数×水平画素数が（５の倍数）×（５の倍数）となる範囲、例えば、５×１０画素、１０×５画素、１０×１０画素、１０×１５画素、１５×１５画素、…である。本フィルタリング処理では、ステップＳ０において、これらの構成可能なフィルタ範囲の群の中から、９×９画素を含み得る最小のフィルタ範囲、すなわち図１５に示す１０×１０画素のフィルタ範囲１７Ｊを選択して用意する。また、このフィルタ範囲１７Ｊの各画素にフィルタ係数Ｃ［ｉ，ｊ］，Ｂ［ｋ，ｍ］，Ｄ［ｎ，ｏ］，Ｅ［ｐ，ｑ］を割り当てる際に、９×９画素の範囲から外れる一部範囲にゼロ値のフィルタ係数が割り当てられる。
【００５２】
次のステップＳ１では、１０×１０画素のフィルタ範囲１７Ｊを５×５画素のサブフィルタ範囲に分割する。図１６〜図１９に、それら第１〜第４のサブフィルタ範囲１７Ｆ，１７Ｇ，１７Ｈ，１７Ｉを模式的に示す。第２、第３および第４のサブフィルタ範囲１７Ｇ、１７Ｈ、１７Ｉの一部にゼロ値のフィルタ係数が割り当てられている。
【００５３】
次のステップＳ２〜Ｓ１１の処理は、空間フィルタ１７の処理対象がサブフィルタ範囲１７Ｆ〜１７Ｉである点と、フィルタ範囲１７Ｊの着目画素とサブフィルタ範囲１７Ｆ〜１７Ｉの着目画素との間の差を補正する方法と、各フィルタ係数の値を有効画素数の比率に応じて調整することとを除けば、上述した処理とほぼ同じである。図２０に、１０×１０画素のフィルタ範囲１７Ｊを画像データ４０Ｉに適用した状態を模式的に示す。フィルタ範囲１７Ｊの着目画素は、フィルタ係数としてゼロ値を設定した範囲を除いた範囲の中心画素６２に設定される。したがって、フィルタ範囲１７Ｊの着目画素６２とサブフィルタ範囲１７Ｆ，１７Ｇ，１７Ｈ，１７Ｉの着目画素６１Ａ，６１Ｂ，６１Ｃ，６１Ｄとの間の差は、それぞれ、図示するΔＡ，ΔＢ，ΔＣ，ΔＤになる。
【００５４】
また、サブフィルタ範囲１７Ｆの有効画素数は５×５＝２５画素であるのに対し、他のサブフィルタ範囲１７Ｇ，１７Ｈ，１７Ｉの有効画素数は、ゼロ値を設定した一部範囲を除く範囲の画素数である。サブフィルタ範囲１７Ｊ，１７Ｉ，１７Ｈの有効画素数は、５×４＝２０画素または４×５＝２０画素となる。したがって、サブフィルタ範囲１７Ｇ，１７Ｈ，１７Ｉに設定する各フィルタ係数には、ゼロ値が設定されないサブフィルタ範囲１７Ｆの有効画素数（＝α）と、他のサブフィルタ範囲１７Ｇ〜１７Ｉの有効画素数（＝β）との比率（＝α／β）が重み付け（乗算）される。そして、上述した読出しアドレスの制御または書込みアドレスの制御によって、双方の着目画素の差ΔＡ〜ΔＤを補正するように、ステップＳ１０，Ｓ１１の加算処理が行われる。
【００５５】
このように、本フィルタリング処理では、フィルタ範囲１７Ｊの一部にゼロ値のフィルタ係数を割り当てるため、任意サイズを持つフィルタ範囲のフィルタリング処理を効率良く行うことが可能になる。
【００５６】
【発明の効果】
以上の如く、本発明の画像処理装置によれば、空間フィルタを用いて、この空間フィルタの固有のフィルタ範囲に制限されないフィルタリングを完全に行うことができる。
【００５７】
また、本発明の画像処理方法によれば、上記工程（ａ）でサンプリング可能な所定範囲に制限されない完全なフィルタリングを行うことが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る画像処理装置の一部構成を示す概略図である。
【図２】本実施形態に係る空間フィルタリング・コアリング処理部を示す概略図である。
【図３】空間フィルタのフィルタ範囲を模式的に示す図である。
【図４】画像データにフィルタ範囲を適用した状態を模式的に示す図である。
【図５】本発明の実施形態に係るフィルタリング処理の手順を示すフローチャートである。
【図６】１０×１０画素のフィルタ範囲を模式的に示す図である。
【図７】５×５画素のサブフィルタ範囲を模式的に示す図である。
【図８】５×５画素のサブフィルタ範囲を模式的に示す図である。
【図９】５×５画素のサブフィルタ範囲を模式的に示す図である。
【図１０】本発明の実施形態に係るフィルタリング処理の一工程を説明するための図である。
【図１１】本発明の実施形態に係るフィルタリング処理の一工程を説明するための図である。
【図１２】本発明の実施形態に係るフィルタリング処理の一工程を説明するための図である。
【図１３】画像データにフィルタ範囲を適用した状態を模式的に示す図である。
【図１４】本発明の実施形態に係るフィルタリング処理の一工程を説明するための図である。
【図１５】１０×１０画素のフィルタ範囲を模式的に示す図である。
【図１６】５×５画素のフィルタ範囲を模式的に示す図である。
【図１７】５×５画素のフィルタ範囲を模式的に示す図である。
【図１８】５×５画素のフィルタ範囲を模式的に示す図である。
【図１９】５×５画素のフィルタ範囲を模式的に示す図である。
【図２０】画像データにフィルタ範囲を適用した状態を模式的に示す図である。
【符号の説明】
１　画像処理装置
３　バス
１０　ＲＰＵ
１１　単一画素処理部
１１ａ　加算器
１２　補間・ガンマ補正処理部
１３　色空間変換・偽色抑制処理部
１４　空間フィルタリング・コアリング処理部
１５　解像度変換処理部
１６　入出力制御部
１７　空間フィルタ
【図１】
2004145615.tif 000004
【図２】
2004145615.tif 000005
【図３】
2004145615.tif 000006
【図４】
2004145615.tif 000007
【図５】
2004145615.tif 000008
【図６】
2004145615.tif 000009
【図７】
2004145615.tif 000010
【図８】
2004145615.tif 000011
【図９】
2004145615.tif 000012
【図１０】
2004145615.tif 000013
【図１１】
2004145615.tif 000014
【図１２】
2004145615.tif 000015
【図１３】
2004145615.tif 000016
【図１４】
2004145615.tif 000017
【図１５】
2004145615.tif 000018
【図１６】
2004145615.tif 000019
【図１７】
2004145615.tif 000020
【図１８】
2004145615.tif 000021
【図１９】
2004145615.tif 000022
【図２０】
2004145615.tif 000023