(57)【特許請求の範囲】
【請求項１】
画素ごとに該画素が属するグループを示すグループ識別情報を含む属性データが付属した画素データであって、該画素のグループ識別情報が、該画素が属する画像データのフレーム単位で設定されている、若しくは列単位もしくは行単位で周期的に設定されている該画素データを入力する入力手段と、
複数の２次元近傍参照演算手段と、
前記画像データを構成するそれぞれの前記画素データを規定の走査順序で走査し、該走査された画素データに付属した属性データに含まれるグループ識別情報に基づいて、前記複数の２次元近傍参照演算手段のいずれかに割り振る割り振り手段と、
前記複数の２次元近傍参照演算手段からの全てもしくは一部の出力を入力とする１次元近傍参照演算手段と、
前記複数の２次元近傍参照演算手段からの出力と前記１次元近傍参照演算手段からの出力とを選択して選択画素データとして出力する選択手段とを有することを特徴とする画像処理装置。
【請求項２】
前記画素データが入力される入力ポートと、
前記選択手段から出力された選択画素データを出力する出力ポートと、
前記入力ポートから入力された複数の画素データを記憶して、注目画素を含む近傍参照画素の画素データを、前記割り振り手段が該画素データについて割り振った２次元近傍参照演算手段に出力する記憶手段とを更に有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記出力ポートから前記入力ポートへのフィードバック手段を更に有することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記複数の２次元近傍参照演算手段は第１乃至第Ｎ（Ｎは２以上の整数）の２次元近傍参照演算手段であり、
前記グループ識別情報は、特定ビットのみが規定値を取るＮビットのビット列であり、
前記割り振り手段は、画素データに付属する属性データ中のグループ識別情報においてｎ（１≦ｎ≦Ｎ）ビット目のビット値が前記規定値である場合には、該画素データを第ｎの２次元近傍参照演算手段に割り振ることを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記入力ポートへ入力される画素データの走査順序は、連続した任意のＮ入力内で、前記割り振り手段が割り振り先の決定に参照するグループ識別情報が全て異なるような走査順序であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記入力ポートへ入力される画素データの走査順序は、１フレームの画像を出力するのに必要な単数もしくは複数の入力フレームに含まれる前記グループ識別情報の種類がＭ個の場合、連続した任意のＭ入力内で、前記割り振り手段が割り振り先の決定に参照するグループ識別情報が全て異なるような走査順序であることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
主走査方向もしくは副走査方向のいずれかを第１の方向とし、他方を第２の方向とする場合に、
前記記憶手段は、第１の方向に画素データを遅延させるための第１の記憶手段と、第２の方向に画素データを遅延させるための第２の記憶手段とから構成され、
前記第２の記憶手段は複数の領域に分かれていることを特徴とする請求項２乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記第２の記憶手段は、前記第２の記憶手段の第１の領域から第２の領域へ画素データを送る経路を有することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記１次元近傍参照演算手段はＬＵＴを含むことを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
複数の２次元近傍参照演算手段と、前記２次元近傍参照演算手段からの全てもしくは一部の出力を入力とする１次元近傍参照演算手段と、を有する画像処理装置の制御方法であって、
入力手段が、画素ごとに該画素が属するグループを示すグループ識別情報を含む属性データが付属した画素データであって、該画素のグループ識別情報が、該画素が属する画像データのフレーム単位で設定されている、若しくは列単位もしくは行単位で周期的に設定されている該画素データを入力する入力ステップと、
割り振り手段が、前記画像データを構成するそれぞれの前記画素データを規定の走査順序で走査し、該走査された画素データに付属した属性データに含まれるグループ識別情報に基づいて、前記複数の２次元近傍参照演算手段のいずれかに割り振る割り振りステップと、
前記複数の２次元近傍参照演算手段及び前記１次元近傍参照演算手段の少なくとも１つが、画素データの演算を実行する演算ステップと、
選択手段が、前記複数の２次元近傍参照演算手段からの出力と前記１次元近傍参照演算手段からの出力とを選択して選択画素データとして出力する選択ステップとを含むことを特徴とする画像処理装置の制御方法。
【請求項１１】
請求項１０に記載の画像処理装置の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその制御方法、特に、画素データに近傍画素を参照した演算を施す画像処理装置およびその制御方法に関する。
【背景技術】
【０００２】
ディスプレイに表示するための映像信号には、高画質化を目的として種々のディジタル処理が施されている。しかし、入力される映像信号の解像度やストリーム数は、アプリケーションに応じてさまざまである。このため、解像度やストリーム数に応じて最適な処理が可能である、柔軟な画像処理装置が求められている。画像処理装置に求められる柔軟性の一例として、実行時における処理速度と画質のトレードオフが挙げられる。これにより、例えばデータ数が多い場合は高速に処理し、データ量が少ない場合には、より画質を重視して処理するといった切り替えができる。また、人間の注視メカニズムの研究などにより、画像内における重要な領域(ROI)の抽出技術が進んでいる。ROIに対して画質を重視した処理を施し、その他の領域に速度を重視した処理を施す事によって、少ない演算量で主観画質の高い画像処理の実現が期待できる。従来、映像の高画質化処理として、１枚のフレーム内における近傍画素を参照して処理を施す２次元近傍画素参照演算や，複数のフレームの近傍画素を参照して処理を施す３次元近傍画素参照演算が広く知られている。前者は、例えばノイズ除去やエッジ強調、解像度変換などである。後者は、例えば特許文献１や特許文献２のように、動き検出を用いた適応的な補正処理やＩＰ変換などである。これらの処理は、一般に参照画素数、参照フレーム数が多いほど，より画質の向上を図ることができる。上記処理は演算量が大きいため、例えばディスプレイといったリアルタイム性を要求されるアプリケーションなどでは、ハードウェアにより実装される。この時、それぞれの処理を別モジュールとして実装するのが一般的であった。
【０００３】
図１７は、従来の画像処理装置の構成例を示すブロック図である。図中、１０はＩＰ変換モジュール、２０は解像度変換モジュール、３０はエッジ強調モジュールである。上記構成に対し、例えばラスタ順に画素を入力し、モジュール間をハンドシェーク通信により画素を送り、パイプライン的に処理することによって、高画質化処理が実現できる。また、例えばエッジ強調モジュール３０のフィルタ係数をファームウェアから設定できるようにすることによって、例えばエッジの強調度を変更したり、処理内容をノイズ除去処理に変更したりできる。
一方、特許文献３では、フィルタにフィードバック系を設け、画素データへフィルタ処理を施す回数を変更可能としている。これにより、フィルタ処理の柔軟性を向上させている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３０４０１９公報
【特許文献２】特開２００６−３１１０６１公報
【特許文献３】特開平９−２９７８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１や２の構成では、動作モードに応じて変更できるのはフィルタ係数などわずかであり、柔軟性に乏しい。また、特許文献３の構成であっても、動作モードに応じて変更できるのはループ回数とフィルタ係数などであり、なお柔軟性が低いという問題があった。
【０００６】
本発明は、上記問題点に鑑みてなされたものであり、小さい回路で柔軟性の高い近傍画素参照演算を行う画像処理装置およびその制御方法を提供する。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像処理装置は、画素ごとに該画素が属するグループを示すグループ識別情報を含む属性データが付属した画素データであって、該画素のグループ識別情報が、該画素が属する画像データのフレーム単位で設定されている、若しくは列単位もしくは行単位で周期的に設定されている該画素データを入力する入力手段と、
複数の２次元近傍参照演算手段と、
前記画像データを構成するそれぞれの前記画素データを規定の走査順序で走査し、該走査された画素データに付属した属性データに含まれるグループ識別情報に基づいて、前記複数の２次元近傍参照演算手段のいずれかに割り振る割り振り手段と、
前記複数の２次元近傍参照演算手段からの全てもしくは一部の出力を入力とする１次元近傍参照演算手段と、
前記複数の２次元近傍参照演算手段からの出力と前記１次元近傍参照演算手段からの出力とを選択して選択画素データとして出力する選択手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、動作モードに応じて、ある画素に対してどの演算部がどの順番で処理するかという画素ごとの多様な経路を選択可能である。例えば、複数フレームの画素データを参照した３次元フィルタ処理や、複数の２次元フィルタの並列処理および順次処理、参照領域の大きな２次元フィルタ処理などが、経路の選択により変更可能である。これにより、動作モードに応じて処理速度と画質のトレードオフが可能な柔軟性の高い画像処理装置が実現できる。さらに、演算部を複数の経路で共用するため、小さい回路で実現可能である。
【図面の簡単な説明】
【０００９】
【図１Ａ】実施形態１における画像処理装置の構成例を示す図である。
【図１Ｂ】実施形態１又は２における入力画素データのフォーマット例を示す図である。
【図２】実施形態１における画素の走査順序を説明する図である。
【図３】実施形態１における行遅延部の構成例を示す図である。
【図４】実施形態１における行遅延部の動作を説明する図である。
【図５】実施形態１における行遅延部の動作を説明する図である。
【図６】実施形態１における列遅延部の構成例を示す図である
【図７】実施形態１における演算部の一構成例を示す図である。
【図８】実施形態１における演算部の他の構成例を示す図である。
【図９】実施形態１の経路IIIを説明する図である。
【図１０】実施形態１における画素の走査順序の他例を説明する図である。
【図１１】実施形態２における画像処理装置の構成例を示す図である。
【図１２】実施形態２における演算部の一構成例を示す図である。
【図１３】実施形態２における演算部の他の構成例を示す図である。
【図１４】実施形態２の具体例における画素の走査順序を説明する図である。
【図１５】実施形態２の具体例における画素の演算方法を説明する図である。
【図１６】実施形態２の具体例における画素の演算方法を説明する図である。
【図１７】従来の画像処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を添付図面を参照して詳細に説明する。
【００１１】
［実施形態１］  図１Ａは、実施形態１の画像処理装置の構成例を示す図である。図中、１００が本画像処理装置である。画像処理装置１００は、図１Ａに示すようなサブモジュール１２０,１４０,１５０,１６０,１７０を具備する。なお、サブモジュール１２０,１４０,１５０,１６０,１７０を結ぶ信号には、各サブモジュールの参照符号にさらに符号を付加した参照符号を付している。これにより、以下の各サブモジュールの構成を説明する図において、同じ信号を同じ参照番号で示し、接続を明瞭にしている。２００は、かかるサブモジュール１２０,１４０,１５０,１６０,１７０を制御して、画像処理装置１００を種々のモードで動作するように画素データの経路を制御する画像処理制御部である。画像処理制御部２００は、例えば、演算処理用のＣＰＵ、ＣＰＵの処理手順のプログラムを記憶するＲＯＭ、ワークエリアとして使用する一時記憶用のＲＡＭを少なくとも有している。１１０は、画像処理装置１００に対する入力である。入力１１０は、１サイクルに最大１画素の入力が可能である。入力１１０は、画像処理装置１００の入力ポートに入力される。
【００１２】
図１Ｂに入力画素データのフォーマット例を示す。所望ビットの入力画素データ１１０ｂには、画素ごとに属性データ１１０ａを付与している。属性データ１１０ａには、例えば図１Ｂのように、４ビットのグループフィールド(gidと呼ぶ)１１０ａ−１と、１ビットのラインエンドフィールド１１０ａ−２とがある。グループフィールド１１０ａ−１としては、フレーム単位で設定されるフレーム情報や列単位もしくは行単位で周期的に設定される位置情報が含まれる。また、グループフィールド１１０ａ−１のビット数は、本例では、以下に示す２次元近傍参照演算部（サブモジュール）１５０の個数に相当する。
【００１３】
画像処理装置１００のサブモジュール１２０は、行遅延部である。行遅延部１２０では、画素データを蓄積し、後段の２次元フィルタ１５０に必要な行数分の画素データをまとめて、列遅延部１４０へ送る。この時、各画素データに付属されている属性データにより、送り先を決定する。サブモジュール１４０は、列遅延部である。列遅延部１４０では、後段の２次元フィルタ１５０に必要な列数分の画素データを蓄積し，２次元フィルタ１５０および他の列遅延部１４０へ送る。図１Ａでは、４つの列遅延部１４０−１，１４０−２，１４０−３，１４０−４が図示されているが、これに限定されない。サブモジュール１５０は、注目画素を中心とする２次元近傍参照画素を参照して演算する２次元近傍参照演算部として動作する２次元フィルタである。本例では、２次元フィルタ１５０の参照画素は、(５x５)の矩形領域とし、２次元フィルタの数は４とする。２次元フィルタ１５０は、４サイクルに１画素を処理できるパイプライン型演算器である。２次元フィルタ１５０は、図示していないフィルタ係数設定部を具備し、ファームウェアなどからフィルタ係数を制御できる。２次元フィルタ１５０は、列遅延部１４０から受け取った(５x５)個の画素データに対し、フィルタ係数により積和演算を行う。演算結果は、１次元フィルタ１６０もしくはセレクタ１７０へ送る。サブモジュール１６０は、注目画素を中心とする１次元近傍参照画素を参照して演算する１次元近傍参照演算部として動作する１次元フィルタである。本例では、１次元フィルタ１６０の参照データ数は４とする。１次元フィルタ１６０は、図示していないフィルタ係数設定部を具備し、ファームウェアなどからフィルタ係数を制御できる。かかるフィルタ係数を画像処理制御部２００からロードするようにしてもよい。１次元フィルタ１６０は、入力された４個の画素データに対し、フィルタ係数により積和演算を行なう。演算結果は、セレクタ１７０へ送る。サブモジュール１７０は、セレクタである。２次元フィルタ１５０もしくは１次元フィルタ１６０の演算結果のうち、有効なものを選択的に出力する。また、セレクタ１７０は内部に、図示していないＦＩＦＯを具備し、タイミングを調整可能である。１８０は、画像処理装置１００からの出力である。出力１８０は、１サイクルに最大１画素の出力が可能である。出力１８０は、画像処理装置１００の出力ポートから出力される。
【００１４】
上記各サブモジュール間は、バリッド信号とストール信号とを用いたハンドシェーク通信により画素データおよび属性データを授受する。画像処理制御部２００は、実行すべき処理内容に応じた処理経路を決定するために、入力画素データ１１０ｂに、画素ごとに属性データ１１０ａを設定する。また、出力１８０が入力１１０へフィードバックされる場合には、属性データ１１０ａを再度設定する。また画像処理制御部２００は、処理内容に応じて、セレクタで選択すべき有効データや、２次元フィルタ１５０及び１次元フィルタ１６０のフィルタ係数を設定することもできる。
【００１５】
＜実施形態１の各サブモジュールの構成例及び経路Ｉの例＞  以下では、次のような入力される画素データを仮定して、各サブモジュールについて詳しく説明する。
【００１６】
（入力画素データの仮定）  入力１１０は４フレームとし、走査順序は図２に示す通りであるとする。入力画像の解像度はＨＤ(１９２０x１０８０)とする。各入力画素には、時間方向に古いフレームから順番に、図１Ｂのグループフィールドgid＝１,２,４,８を割り振る。例えば、フレーム１,２,３,４の処理中、フレーム１内の画素はgid＝１（最下位ビット）、フレーム２内の画素はgid＝２（２ビッチ目）、フレーム３内の画素はgid＝４（３ビット目）、フレーム４内の画素はgid＝８（最上位ビット）である。従って、図２に２０１で示すフレーム順に画素が読み出され、フレーム内ではライン方向２０２の順に読み出される。同様に、フレーム２,３,４,５の処理中、フレーム２はgid＝１、フレーム３はgid＝２、フレーム４はgid＝４、フレーム５はgid＝８である。また、各フレームの最右列中の画素には、ラインエンドフィールドを"１"にセットし、他の画素はラインエンドフィールドを"０"にセットする。従って、ラインエンドフィールドが"１"であれば、次ぎのラインの先頭に戻る。そして、最終ラインでラインエンドフィールドが"１"になれば、２０３にようにフレーム２の先頭に戻り、フレーム２〜５の読み出しとなる。経路Ｉでは、入力された画素データは、行遅延部１２０を通って、属性データに従って２次元フィルタ１５０−１、１５０−２，１５０−３，１５０−４に割り振られて、それぞれフレームごとに２次元フィルタ処理をする。さらに、それぞれの演算結果を１次元フィルタ１６０で処理する。以上により、４フレームを参照した３次元フィルタ処理を行い、１フレーム分の演算結果を出力する。
【００１７】
（行遅延部１２０の構成例）  図３は、行遅延部１２０の構成例を示す図である。図中、５４０はＦＩＦＯ、５４１はリード制御部、５４２はライト制御部、５４３はＳＲＡＭ、５４４はデマルチプレクサである。また、各構成要素を結ぶ矢印はデータの流れを表している。５５１、５５２、５５５、５５６は画素データおよび属性データである。また、５５３はＳＲＡＭから読み出した画素データ、５５４はＳＲＡＭへの読み出しアドレス、５５７はＳＲＡＭへ書き込む画素データ、５５８はＳＲＡＭへの書き込みアドレスおよびライトイネーブルである。ここで、ＳＲＡＭのワード幅は４画素分とし、ＳＲＡＭのワード数は８０００とする。
【００１８】
上記条件での入力画素位置と出力画素位置の関係の一例を、図４に示す。図４の(b)は(a)の次のサイクル、図４の(c)は(b)の次のサイクルを示している。図中、３２０は行遅延部１２０への入力画素の位置、３２１はメモリから読み出された画素群の位置、３２２はメモリに保持されている画素群の位置、３２３はメモリに書き込まれた画素群の位置である。画素領域内の黒地白抜きの数字はＳＲＡＭのアドレスを示している。
【００１９】
また、図６にメモリへのアクセスタイミング例を示す．Inputは３２０、Readは３２１、Writeは３２３にそれぞれ対応している。それぞれ数字はgidを示し、(a)、(b)、(c)はそれぞれ図４の(a)、(b)、(c)のタイミングを示している。
【００２０】
例えば図４の(a)に示したように、行遅延部１２０への入力画素３２０がgid＝２である時、リード制御部５４１でgid＝２のフレームにおける、入力画素３２０の上に位置する４つの画素群３２１をＳＲＡＭ５４３から読み出す。アドレス５５４は、gid＝１のフレームは(Ｘ)、gid＝２のフレームは(２０００+Ｘ)、gid＝４のフレームは(４０００+Ｘ)、gid＝８のフレームは(６０００+Ｘ)とする。ここで、Ｘは入力画素３２０の水平方向の座標である。Ｘは、各gidごとに画素をカウントし、ラインエンドフィールドが"１"である画素を出力後、ゼロにリセットすることで求められる。すなわち、ＳＲＡＭ内のメモリ空間は各フレームごとに２０００ワードずつ均等に割り当てられる。割り当てられたアドレス空間内の一番小さいアドレスが画像の最左列にマッピングされ、画像右方向へ順番に小さいアドレスがマッピングされる。リード制御部５４１は、入力画素３２０と読み出した画素群３２３を結合し、５つの画素群５５５としてデマルチプレクサ５４４へ送る。画素群５５５には、入力画素３２０の属性データを付属させる。また、５つの画素群のうち、一番上の画素を除いた４つの画素群３２３をライト制御部５４２へ送る。ライト制御部５４２では、リード制御部５４１から受け取った画素群３２３の画素データをＳＲＡＭ５４３へ書き込む。例えば、図４の(a)中の入力画素３２０および読み出された画素群３２１は、図４の(b)のタイミングでＳＲＡＭ５４３へ書き込まれる。書き込む際のアドレス５５８は、読み出し時と同様に求める。デマルチプレクサ５４４は、受け取った画素群に付属されているグループフィールドのビットの値に従って画素データを列遅延部１４０に割り振る。すなわち、最下位ビットが"１"であれば列遅延部１４０−１、下位２ビット目が"１"であれば列遅延部１４０−２、下位３ビット目が"１"であれば列遅延部１４０−３、最上位ビットが"１"であれば列遅延部１４０−４へそれぞれ出力する。
【００２１】
（列遅延部１４０の構成例）  図６は、４つの列遅延部の１つの列遅延部１４０−１の構成例を示す図である。なお、他の列遅延部１４０−２，１４０−３，１４０−４も、出力先の２次元フィルタ２５０が異なるのみで構成は同様である。図中、５７１、５７２、５７３、５７４、５７５はそれぞれ５画素分のレジスタである。行遅延部１２０から入力された５画素分の画素群、はレジスタ５７１に保持される。レジスタ５７１に保持されていた５画素分の画素群はレジスタ５７２および２次元フィルタ１５０−１に送られる。レジスタ５７２に保持されていた５画素分の画素群はレジスタ５７３および２次元フィルタ１５０−１に送られる。レジスタ５７３に保持されていた５画素分の画素群はレジスタ５７４および２次元フィルタ１５０−１に送られる。レジスタ５７４に保持されていた５画素分の画素群はレジスタ５７５および２次元フィルタ１５０−１に送られる。レジスタ５７５に保持されていた５画素分の画素群は２次元フィルタ１５０−１に送られる。
【００２２】
（２次元フィルタ１５０の構成例）  図７は、２次元フィルタ１５０の１つである２次元フィルタ１５０−１の構成例を示す図である。なお、他の２次元フィルタ１５０−２，１５０−３，１５０−４も、構成は同様である。図中、５９１は５x５画素分のレジスタ、５９２は係数設定部、５９３は５x５の係数を保持するレジスタ、５９４は乗算器、５９５は５x５画素分のレジスタ、５９６は加算器である。列遅延部１４０−１からの５x５の入力画素群はそれぞれ、乗算器５９４で係数設定部によって設定された係数との積が演算され、レジスタ５９５に送られる。レジスタ５９５の値は全て加算器５９６で合計が演算され、出力される。
【００２３】
（１次元フィルタ１６０の構成例）  図８は、１次元フィルタ１６０の構成例を示す図である。図中、６０１は４画素分のレジスタ、６０２は係数設定部、６０３は４つの係数を保持するレジスタ、６０４は乗算器、６０５は４画素分のレジスタ、６０６は加算器である。各２次元フィルタ１５０からの入力画素はそれぞれ、レジスタ６０１へ入力される。ここで、各入力画素の待ち合わせをする。必要な入力画素が揃うと、乗算器６０４で係数設定部によって設定された係数との積が演算され、レジスタ６０５に送られる。レジスタ６０５の値は全て加算器６０６で合計が演算され、セレクタ１７０へ出力される。
【００２４】
（セレクタ１７０の構成例）  セレクタ１７０による選択は、所望のフィルタ処理に対応して画像処理制御部２００により制御される。本経路Ｉにおいて、セレクタ１７０では１次元フィルタの演算結果を選択し、出力する。
【００２５】
＜実施形態１の構成例による経路IIの例＞  入力画素データの走査順序および属性データは、経路Ｉと同様とする。入力された画素データは、行遅延部１２０を通って２次元フィルタ１５０−１、１５０−２、１５０−３、１５０−４でそれぞれ独立に処理する。各２次元フィルタ１５０の演算結果は、セレクタ１７０へ送る。セレクタ１７０では各演算結果を順番に選択し、出力する。以上により、４フレームそれぞれ独立に２次元フィルタリング処理を行い、４フレーム分の演算結果を出力する。なお、gid＝１のフレームにおける演算結果の出力１８０をgid＝２として入力１１０へフィードバックする。そして、このgid＝２の演算結果の出力１８０をgid＝４として入力１１０へフィードバックする。そして、このgid＝４の演算結果の出力１８０をgid＝８として入力１１０へフィードバックする。これによって、１つのフレームに対して２次元フィルタの順次処理も可能である。このように、独立に動作する２次元フィルタは並列処理と順次処理が選択できる。
【００２６】
＜実施形態１の構成例による経路IIIの例＞  入力１１０は１フレームとし、走査順序は図９の(a)に示す通りであるとする。図に示したように、フレーム内の奇数行目の画素はgid＝１とし、偶数行目の画素はgid＝８とする。gid＝１の画素データは、列遅延部１４０−１で５列遅延され、レジスタ５７５に保持されている５つの画素群は２次元フィルタ１５０−１、列遅延部１４０−２の両方へ送られる。列遅延部１４０−２へ入力された５つの画素群で更に５列遅延させることで、２次元フィルタ１５０−２へ入力される(５x５)の画素領域は、２次元フィルタ１５０−１へ入力される(５x５)の画素領域よりも５列遅延した領域となる。同様に、gid＝８の画素データは、２次元フィルタ１５０−３へ入力される(５x５)の画素領域は、２次元フィルタ１５０−４へ入力される(５x５)の画素領域よりも５列遅延した領域となる。
【００２７】
以上をまとめると、２次元フィルタ１５０−１、１５０−２、１５０−３、１５０−４で処理する画素領域は、図９の(b)のようになる。図中、３３１は２次元フィルタ１５０−１の参照画素領域、３３２は２次元フィルタ１５０−２の参照画素領域、３３３は２次元フィルタ１５０−４の参照画素領域、３３４は２次元フィルタ１５０−３の参照画素領域である。各２次元フィルタ１５０の演算結果は、１次元フィルタ１６０へ入力され、積和演算が施される。以上により、(１０x１０)の画素領域を参照した２次元フィルタ演算を実現できる。なお、経路IIIでは、行遅延部内のＳＲＡＭ５４３は、gid＝１,８にそれぞれ４０００ワードずつ割り当てることができる。これは、水平方向により大きな画像を扱えることを意味する。
【００２８】
＜実施形態１の構成例による経路IVの例＞  上記経路の中間として、例えば２次元フィルタ１５０−１、１５０−２、１５０−３と１次元フィルタ１６０で３次元フィルタ処理を行い、２次元フィルタ１５０−４では独立した２次元フィルタ処理を並列もしくは順次的に行うことも可能である。
【００２９】
＜実施形態１の構成例による各経路の特性＞  上記それぞれの経路Ｉ〜IVによる処理をまとめる。経路Ｉおよび経路IIの順次動作、経路IIIにおける出力スループットは、最大１/４(画素/サイクル)である。また、経路IIの並列動作における出力スループットは、最大１/１(画素/サイクル)である。経路IVは、これらの中間である。一方、経路Ｉでは、４フレームを参照した３次元フィルタ処理が実現される。経路IIの順次動作では、１フレームに複数回の２次元フィルタ処理が実現される。経路IIIでは、１フレーム内の広範囲を参照した２次元フィルタ処理が実現される。これらは、経路IIの並列動作に比べ、高画質な処理が期待できる。経路IVは、これらの中間である。
【００３０】
＜実施形態１の効果＞  以上説明したように本実施形態によれば、動作モードに応じてさまざま経路が選択可能であるため，柔軟性の高い画像処理が実現可能である。
【００３１】
＜実施形態１の変形例＞  なお、画素の走査方向は上記に示した通りでなくても良い。例えば、図１０に示すように走査しても良い。この走査方法では、まず各フレームを細長いバンド領域に分割する。バンドの高さは任意だが、各フレーム間で同一とする。この各バンド領域内でまず時間方向１００１に走査し、Ｙ方向に走査してＸ方向に走査する（１００２）。各フレームの１つのバンドが終了すると、次のバンドを同様に走査する（１００３）。
【００３２】
［実施形態２］  図１１は、本実施形態２における画像処理装置の構成例を示す図である。図中、２５０は２次元近傍参照演算部，２６０は１次元近傍参照演算部であるり、他の構成は実施形態１と同様である。図１Ａと同じ参照符号の構成要素は、実施形態１と同様であり、説明の重複は避ける。前記実施形態１では演算部１５０及び１６０を積和演算としたが、本実施形態２ではより汎用的な近傍参照演算を行う演算部を使用する。かかる演算部の演算アルゴリズムは、所望の処理に対応して画像処理制御部２００からのソフトウエアあるいはファームウエアのロードなどで変更が可能である。
【００３３】
（実施形態２の２次元近傍参照演算部２５０の構成例）  図１２の(a)は、本実施形態２における２次元近傍参照演算部２５０の構成例を示す図である。図中、５９７はＡＬＵである。ＡＬＵ５９７は、例えば、乗算器、加算器、比較器を含む。レジスタ５９１に保持されている値をＡ[k]、レジスタ５９３に保持されている値をＢ[k]とすると(ｋ＝０,１,...,２４)、ＡＬＵ５９７は、例えば式(１)〜(３)に示すＣや"０"などを出力する。
【００３４】
【数１】
0005438390.tif 000002
【００３５】
ｋは、図１２の(b)に示した位置と対応している。式(１)は実施形態１と等価な演算である。式(２)はレジスタ５９１における、Ｘ方向に隣りの要素との差分の２乗を演算する。式(３)は、レジスタ５９１における、Ｘ方向に隣りの要素との差分絶対値が閾値よりも大きい場合に"１"、小さい場合に"０"を返す。
【００３６】
（実施形態２の１次元近傍参照演算部２６０の構成例）  図１３の(a)は、本実施形態２における１次元近傍参照演算部２６０の構成例を示す図である。図中、６０７はＡＬＵである。ＡＬＵ６０７は、例えば、乗算器、加算器、ＬＵＴなどを含む。レジスタ６０１に保持されている値をＤ[k]、レジスタ６０３に保持されている値をＥ[k]とすると(ｋ＝０,１,２,３)、ＡＬＵ６０７は、例えば式(４)〜(６)に示すＦなどを出力する。
【００３７】
【数２】
0005438390.tif 000003
【００３８】
ｋは、図１３の(b)に示した位置と対応している。式中、ＬＵＴ(X)は、Ｘを引き数にしたＬＵＴの値である。式(４)は、実施形態１と等価な演算である。式(５)は、Ｄ[1]、Ｄ[2]、Ｄ[3]の総和を基に、Ｄ[0]の値を補正する。式(６)は、Ｄ[2]、Ｄ[3]の総和を基に、Ｄ[0]とＤ[1]の線形補間値を求める。以上の構成により、実施形態１と同様の積和演算を含む多様な演算を可能にし、更なる柔軟性の向上を図る。
【００３９】
＜実施形態２の具体的な用途例＞  例えば、撮像された現フレームに動物体がある場合に、その領域を警戒色で強調表示する処理を行う。動物体の無い背景フレームをあらかじめ用意しておく。この背景フレームと現フレームとを、図１４に示す走査順序で入力する。すなわち、背景とフレーム１の対応する画素データの順１４０１に、ライン方向１４０２に読み出される。そして、フレーム１の最後を読み出すと、背景の最初の画素に戻って（１４０２，１４０３）、対応するフレーム２、次にフレーム３の画素データが読み出される。図１４に示したように、背景フレームには列ごとにgid＝２,４,８を繰り返し割り振る。これにより、背景フレーム中の座標(３Ｍ,Ｎ)；Ｍ,Ｎは０もしくは正数、の画素は列遅延部１４０−２に送られる。座標(３Ｍ+１,Ｎ)の画素は列遅延部１４０−３に送られる。座標(３Ｍ+２,Ｎ)の画素は列遅延部１４０−４に送られる。同様に、現フレームには列ごとにgid＝３,５,９を繰り返し割り振る。これにより、現フレーム中の座標(３Ｍ,Ｎ)の画素は列遅延部１４０−１および１４０−２に送られる。座標(３Ｍ+１,Ｎ)の画素は列遅延部１４０−１および１４０−３に送られる。座標(３Ｍ+２,Ｎ)の画素は列遅延部１４０−１および１４０−４に送られる。
【００４０】
図１５に、各遅延部１４０で保持している画素群の例を示す。図中、６１３,６１５,６１７,６１９,６２１,６２３,６２５は、それぞれ背景フレーム中の５画素を示している。６１０,６１２,６１４,６１６,６１８,６２０,６２２,６２４は、それぞれ現フレーム中の５画素を示している。６１３と６１４、６１５と６１６、６１７と６１８、６１９と６２０、６２１と６２２、６２３と６２４は、同一座標の画素群である。６１３,６１９,６２５はgid＝２、６１５,６２１はgid＝４、６１７,６２３はgid＝８とする。６１４,６２０はgid＝３、６１０,６１６,６２２はgid＝５、６１２,６１８,６２４はgid＝９とする。また、中心画素６１９及び６２０(図中、斜線部)の座標を(Ｓ,Ｔ)とする。この時、列遅延部１４０−１内のレジスタ５７１,５７２,５７３,５７４,５７５で保持している画素群は、それぞれ６２４、６２２、６２０、６１８、６１６である。列遅延部１４０−２内で保持している画素群は、それぞれ６２５、６２０、６１９、６１４、６１３である。列遅延部１４０−３内で保持している画素群は、それぞれ６２２、６２１、６１６、６１５、６１０である。列遅延部１４０−４内で保持している画素群は、それぞれ６２４、６２３、６１８、６１７、６１２である。以上のような画素群に対し、２次元近傍参照演算部２５０−２では、画素群６２０と画素群６１９の差分二乗和を求める。２次元近傍参照演算部２５０−３では、画素群６２２と画素群６２１の差分二乗和と、画素群６１６と画素群６１５の差分二乗和との和を求める。２次元近傍参照演算部２５０−４では、画素群６２４と画素群６２３の差分二乗和と、画素群６１７と画素群６１８の差分二乗和との和を求める。すなわち、２次元近傍参照演算部２５０−２、２５０−３、２５０−４の演算結果は、それぞれ式(７)、式(８)、式(９)に示す値である。
【００４１】
【数３】
0005438390.tif 000004
【００４２】
式中、Ｂ(ｘ,ｙ)、Ｃ(ｘ,ｙ)は、それぞれ座標(ｘ,ｙ)における背景フレームの画素値と現フレームの画素値である。２次元近傍参照演算部２５０−１では、Ｃ(Ｓ,Ｔ)の画素値を出力する。１次元近傍参照演算部２６０では、２次元近傍参照演算部２５０−２、２５０−３、２５０−４の演算結果の総和によって、式(１０)の値を求め、これを基に２次元近傍参照演算部２５０−１から受け取った値を補正する。式(１０)は、座標(Ｓ,Ｔ）の近傍(５x５)の矩形領域における背景フレームと現フレームとの差分二乗和であり、画素値の変化の指標になる。この値が閾値を越える場合に、座標(Ｓ,Ｔ)は動物体の領域内と判定し、２次元近傍参照演算部２５０−１の出力Ｃ(Ｓ,Ｔ)を警戒色へ変換する処理をＬＵＴにて行う。
【００４３】
また、図１５において１画素分の入力があると、図１６のようになる。この時、列遅延部１４０−１は画素群６２６を受け取り、列遅延部１４０−１内の各レジスタで保持する画素群は、それぞれ６２６、６２４、６２２、６２０、６１８となる。列遅延部１４０−２内の各レジスタで保持する画素群は、それぞれ６２６、６２５、６２０、６１９、６１４となる。列遅延部１４０−３、１４０−４に保持されている画素は、図１５の場合と同一である。以上のような画素群に対し、２次元近傍参照演算部２５０−２、２５０−３、２５０−４では、それぞれ式(１１)、式(１２)、式(９)を演算する。
【００４４】
【数４】
0005438390.tif 000005
【００４５】
これらの和は式(１３)となり、座標(Ｓ+１,Ｔ)の近傍(５x５)の矩形領域における背景フレームと現フレームとの差分二乗和になる。この値が閾値を越える場合に座標(Ｓ+１,Ｔ)は動物体の領域内と判定し、２次元近傍参照演算部２５０−１の出力Ｃ(Ｓ+１,Ｔ)を警戒色へ変換する処理をＬＵＴにて行う。
【００４６】
（具体例の効果）  以上のような演算を上記走査順序で順次行うことによって、上述した動物体領域の強調処理を画像全体に施すことができる。
【００４７】
＜実施形態２の効果＞  以上示したように、本実施形態２では、演算部を汎用的な近傍参照演算とすることで、走査順序や属性データの割り振り方法によって多様な画像処理が可能である。
【００４８】
［他の実施形態］  なお、本実施形態には、特定の近傍参照演算の例を示したが、かかる近傍参照演算を種々に変化させる、あるいは使用するパラメータを種々に変化させることで、簡単な構成の画像処理装置で所望の種々の画像処理が実現できる。また、上記実施形態では、画素データの割り振り先が４個の場合や、属性データの種類が４個の場合を示したが、これに限定されることなく本発明は他の個数であっても同様の効果を奏し、これらも本発明に含まれる。例えば、入力ポートへ入力される画素の走査順序は、割り振り先がＮ個の場合、連続した任意のＮ入力内で、前記割り振り手段が割り振り先の決定に参照する属性データが全て異なるような走査順序となる。例えば、入力ポートへ入力される画素の走査順序は、１フレームの画像を出力するのに必要な単数もしくは複数の入力フレームに含まれる属性データの種類がＭ個の場合、次のような操作順序となる。すなわち、連続した任意のＭ入力内で、割り振り先の決定に参照する属性データが全て異なるような走査順序となる。又、実施形態では、１個の列遅延と４個の行遅延の例を示したが、これに限定されない。一般に、主走査方向もしくは副走査方向のいずれかを第１の方向とし、他方を第２の方向とする場合に、本発明の記憶部は、第１の方向に画素を遅延させるための第１の記憶部と、第２の方向に画素を遅延させるための第２の記憶部とから構成される。そして、前記第２の記憶部は複数の領域に分かれている。また、更に、前記第２の記憶部は、前記第２の記憶部の第１の領域から第２の領域へ画素データを送る経路を有している。これらも本発明に含まれるものである。
【００４９】
又、本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、プリンタなど）から構成されるシステムあるいは統合装置に適用しても、ひとつの機器からなる装置に適用してもよい。又、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはu CPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５０】
又、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（OS）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行う。このような処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図１Ａ】
0005438390.tif 000006
【図１Ｂ】
0005438390.tif 000007
【図２】
0005438390.tif 000008
【図３】
0005438390.tif 000009
【図４】
0005438390.tif 000010
【図５】
0005438390.tif 000011
【図６】
0005438390.tif 000012
【図７】
0005438390.tif 000013
【図８】
0005438390.tif 000014
【図９】
0005438390.tif 000015
【図１０】
0005438390.tif 000016
【図１１】
0005438390.tif 000017
【図１２】
0005438390.tif 000018
【図１３】
0005438390.tif 000019
【図１４】
0005438390.tif 000020
【図１５】
0005438390.tif 000021
【図１６】
0005438390.tif 000022
【図１７】
0005438390.tif 000023