(57)【特許請求の範囲】
【請求項１】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールと
を有し、前記インデックスマッピングモジュールが、画像の中心点に対する入力画像パッチの（x，y）画素座標について逆正接の値を近似的に計算することで、前記回転角インデックスを決定する、ディジタル画像処理装置。
【請求項２】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールと
を有し、前記インデックスマッピングモジュールが、画像の中心点に対する入力画像パッチの（x，y）画素座標について、x及びyの一群の線形関数を用いて符号検出を行うことで、前記回転角インデックスを決定する、ディジタル画像処理装置。
【請求項３】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールと
を有し、前記回転角インデックスは、一群の２進の制御値であり、各々がマルチプレクサ段に対応する、ディジタル画像処理装置。
【請求項４】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールと、
画像の中心を決める入力画素座標を用いて、現在の入力画素の位置に対する半径距離を決定する半径インデックスマッピングモジュールと
を有するディジタル画像処理装置。
【請求項５】
前記半径距離を利用して、フィルタリング処理の出力を線形結合する際の１つ以上のウェイトを決定する、請求項４記載のディジタル画像処理装置。
【請求項６】
前記フィルタエンジンモジュールが、有限個のフィルタ群を有し、
フィルタ各々の出力を結合し、フィルタリングされた出力画像を得る、請求項２に記載のディジタル画像処理装置。
【請求項７】
前記フィルタ群の出力が、一群のウェイトを用いて線形結合される、請求項６記載のディジタル画像処理装置。
【請求項８】
前記一群のウェイトは、フィルタｉに対してウェイトαi（ρ）を有し、ρはフィルタ処理される現在の画素の半径インデックスである、請求項７記載のディジタル画像処理装置。
【請求項９】
前記有限個のフィルタ群は、最適化された一定のフィルタ係数とともに構築されている、請求項６記載のディジタル画像処理装置。
【請求項１０】
前記有限個のフィルタ群のフィルタ各々は、有限インパルス応答（FIR）フィルタである、請求項６記載のディジタル画像処理装置。
【請求項１１】
前記有限個のフィルタ群中の１つ以上のFIRフィルタは、四角形の幾何学形状を有する、請求項１０記載のディジタル画像処理装置。
【請求項１２】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールと
を有し、前記回転モジュールは、複数の一連のマルチプレクサ段をさらに有し、前記回転各インデックスに基づいて前記入力画像パッチを回転させる、ディジタル画像処理装置。
【請求項１３】
前記回転モジュールは、前記入力画像パッチを45度、90度及び180度の角度だけそれぞれ回転させる一連の３つのマルチプレクサ段を含み、前記一連の３つのマルチプレクサ段各々を選択的に使用することで、0度、45度、90度、135度、180度、225度、270度又は315度の角度だけ画像を回転させる、請求項１２記載のディジタル画像処理装置。
【請求項１４】
前記回転モジュールは、前記入力画像パッチを30度、60度、120度及び240度の角度だけそれぞれ回転させる一連の４つのマルチプレクサ段を含み、前記一連の４つのマルチプレクサ段各々を選択的に使用することで、0度、30度、60度、90度、120度、150度、180度、210度、240度、270度、300度又は330度の角度だけ画像を回転させる、請求項１２記載のディジタル画像処理装置。
【請求項１５】
前記回転モジュールは、前記入力画像パッチを22．5度、45度、90度及び180度の角度だけそれぞれ回転させる一連の４つのマルチプレクサ段を含み、前記一連の４つのマルチプレクサ段各々を選択的に使用することで、0度、22．5度、45度、67．5度、90度、112．5度、135度、157．5度、180度、202．5度、225度、247．5度、270度、292．5度、315度又は337．5度の角度だけ画像を回転させる、請求項１２記載のディジタル画像処理装置。
【請求項１６】
前記回転モジュールは、前記入力画像パッチのサイズに基づいて、O（log2M）のサイズにスケール変換可能であり、前記入力画像パッチは、θ＝｛θ1，θ2，．．．，θM｝のM個の角度だけ回転可能であり、前記入力画像パッチは√2×N×√2×N個の入力画素を有し、Nは、有限個のFIRフィルタ群の高さ及び幅の内の最大サイズである、請求項１２記載のディジタル画像処理装置。
【請求項１７】
前記マルチプレクサは、2：1マルチプレクサである、請求項１２記載のディジタル画像処理装置。
【請求項１８】
ディジタル画像処理方法であって、
入力画像パッチの回転を制御するための回転角インデックスを決定するステップと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させるステップと、
回転した入力画像パッチにフィルタリングを施すステップと
を有し、前記回転させるステップにおいて、一連の複数のマルチプレクサ段を有するインデックスマッピング構造を利用して、前記回転角インデックスに基づいて、前記入力画像パッチが回転させられる、ディジタル画像処理方法。
【請求項１９】
前記インデックスマッピング構造が、８つの回転角の内の１つを使用して、前記入力画像パッチを回転させる、請求項１８記載のディジタル画像処理方法。
【請求項２０】
ディジタル画像処理方法であって、
入力画像パッチの回転を制御するための回転角インデックスを決定するステップと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させるステップと、
回転した入力画像パッチにフィルタリングを施すステップと
を有し、前記フィルタリングが、一群の一定のフィルタを適用することで行われ、該フィルタの出力は重み付け加算される、ディジタル画像処理方法。
【請求項２１】
前記重み付け加算は、前記入力画像パッチに基づいて算出された線形重み付け係数に基づく、請求項２０記載のディジタル画像処理方法。
【請求項２２】
ディジタル画像処理方法であって、
入力画像パッチの回転を制御するための回転角インデックスを決定するステップと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させるステップと、
回転した入力画像パッチにフィルタリングを施すステップと
を有し、画像の中心点に対する入力画像パッチの（x，y）画素座標について、x及びyの一群の線形関数を用いて符号検出を行うことで、前記回転角インデックスが決定される、ディジタル画像処理方法。
【請求項２３】
前記入力画像パッチの回転が、最近接補間法に基づく、請求項２２に記載のディジタル画像処理方法。
【請求項２４】
前記入力画像パッチの回転が、バイリニア補間に基づく、請求項２２に記載のディジタル画像処理方法。
【請求項２５】
入力画像パッチの（x，y）画素座標に基づいて、前記入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチにフィルタリング処理を適用するフィルタエンジンモジュールであって、有限個のフィルタ群を有し、フィルタ各々の出力を結合し、フィルタリングされた出力画像を得るフィルタエンジンモジュールと
を有し、前記フィルタ群の出力が、一群のウェイトを用いて線形結合され、前記一群のウェイトは、フィルタｉに対してウェイトαi（ρ）を有し、ρはフィルタ処理される現在の画素の半径インデックスである、ディジタル画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に光画像処理システムの技術分野に関連し、特に演算負担及びリソースが少なくて済む有限インパルス応答（FIR）フィルタバンクアーキテクチャ及び方法に関連する。
【背景技術】
【０００２】
一般に、電子光学画像処理システムは、画像光学系（例えば、レンズ又はミラーのアセンブリ）、電子センサアレイ（例えば、CCDディテクタ配列）及びディジタル画像プロセッサ（例えば、専用チップ又はソフトウェアにより実現される）を含む。これらのシステムを設計する従来の方法は、一般に、全く独立した工程を含む。光学系は、センサアレイにおいて高品質な中間光学画像を形成することを目的として設計される。センサアレイは、意図されるアプリケーションによりしばしば決定され、分解能やコストの要因もアプリケーションにより決定される。ディジタル画像処理は、サンプリングされた中間光学画像における残留欠陥を補償することを意図して、しばしば光学系の設計後に設計される。
【０００３】
光学系の設計者及び画像処理の設計者の間ではほとんど調整がないままこれらの設計段階は行われる。これらの段階の孤立化は、光学系及び画像処理の分野間における大幅な相違（設計目的、方法、ツール及び制約等における相違）を反映している。例えば、各々の分野は潜在的に広範なアプリケーションをカバーしているが、電子光学画像処理システムの設計以外に両者の技術分野間ではほとんどオーバーラップがない。顕微鏡、望遠鏡、眼鏡等の技術分野における通常の設計は、いかなる画像処理も考慮していない。同様に、圧縮、コンピュータグラフィックス及び画像強調等のような通常の画像処理の分野は、何らの光学的要素も含んでいない。その結果、各々の技術分野は、各自固有の用語、最良の慣行、ツール群等と共に互いに独立に発展してきている。
【０００４】
最近、これらの相乗効果をねらった試みがある。例えば、ロビンソン（Robinson）及びストーク（Stork）による「End−To−End  Design  of  Electro−Optic  Imaging  Systems」と題する米国特許出願第11／155，870号は、画像光学及び画像処理が互いに補償できるようにすることで、画像処理システムを設計する一般的な試みに関連している。単独に考察した場合、光学系も画像処理も最適にはならないが、両者の相互作用は良い結果をもたらす。言い換えれば、ある全体的な画像品質を達成するため、この方法は、２つの補償が互いに所望のパフォーマンスを達成できる限り、より低い品質の光学系及び／又はより低い品質の画像処理を利用可能にしている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながらそのような画像処理システムの光学系は、回転非対称であり空間的に変化又は依存する（space−varying）強い光学収差をしばしば導入してしまう。これらの収差を補償するため、ディジタル画像処理において、様々な有限インパルス応答（FIR）フィルタの多数の群が各自の向き及び場所に必要とされ、関連する領域の光学収差により引き起こされる不鮮明なアーチファクトを補償する必要がある。しかしながら、ハードウェアによるそのような多数のFIRフィルタを実装することは、非常に高価な演算リソースを必要としてしまう。
【０００６】
空間非一定FIRフィルタをソフトウェアにより実現することが様々な分野で広く研究されており、特に天文学の分野で研究されている。演算効率（一般的には、速度）を向上させるため、空間非一定の不鮮明さを解消する多数のアルゴリズムが提案されている。これらのソフトウェアアルゴリズムは、高速な反復法を使用している、あるいは線形補間を利用した高速マトリクスベクトル積（fast  matrix−vector  products）を使用している。しかしながら、これらのアルゴリズムに要する複雑さやメモリは、低コストのハードウェア実現手段にとって実用的ではない。
【０００７】
「Method  and  System  for  Generating  and  Implementing  Orientational  Filters  for  Real−Time  Computer  Vision  Applications」と題する米国特許第6，009，447号（特許文献１）は、VLSIハードウェアシステムにおいて、ディジタル指向性フィルタ群（例えば、がボール（Gabor）フィルタ群）を表現及び実現する方法をもたらす。指向性フィルタ群（orientational  filters  set）は、フィルタバンクとして表現され、その各々は、１次元の（1−D）フィルタカーネル個々の総和を含む。リアルタイムでビデオデータからフレーム毎にターゲットオブジェクトの向きを特定することが目的である。この特許文献による手段は、非常に多くの中間的なメモリバッファをハードウェアで必要とすることであり、個々の1−Dフィルタバンクを実現するために非常に演算負担も大きくなってしまう。リアルタイム画像回転及びハードウェアによる画像サイズ変更を行う方法の１つが、「Real−Time  Image  Resizing  and  Rotation  with  Line  Buffers」と題する米国特許第6，801，674号（特許文献２）に開示されている。リアルタイム画像化移転法は複雑な構造を有し、その構造は、バイキュービック補間プロセッサ、インデックスジェネレータ及び回転制御論理装置等を含む必要がある。このシステムの出力は、回転したサイズ変更された形式の入力画像であるが、比較的高価な補間、インデックス及び制御論理装置を必要とする。
【０００８】
これら上記の方法は、各自の画像処理を行うために、比較的高度な演算及びそれに付随する負担を必要とする。
【０００９】
開示される発明の課題は、演算負担の軽い効率的な画像処理を行う方法及び装置を提供することである。
【課題を解決するための手段】
【００１０】
開示される発明によるディジタル画像処理装置は、
画像パッチの（x，y）画素座標に基づいて、入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチに適用されるフィルタエンジンモジュールと
を有するディジタル画像処理装置である。
【図面の簡単な説明】
【００１１】
【図１Ａ】光学系の変調伝達関数（MTF）特性を示す図。
【図１Ｂ】強いコマ収差がある光学系のMTF特性を示す図。
【図２Ａ】FIRフィルタリングプロセスに基づく空間依存回転の一例を示す図。
【図２Ｂ】２次元有限インパルス応答（FIR）フィルタバンクに基づく空間依存回転のアーキテクチャ例を示す図。
【図２Ｃ】２次元FIRフィルタバンクに基づく空間依存回転のアーキテクチャ例を示す図。
【図３Ａ】回転する入力画像データの回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す図。
【図３Ｂ】回転する入力画像データの３ビット回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す図。
【図４】マルチプレクサを利用するフィールドプログラマブルゲートアレイ（FPGA）回転インデックスマッピング構造の一例を示す図。
【図５Ａ】８つの扇状タイルとともに処理される画像の分割例を示す図。
【図５Ｂ】４つの放射状タイル及び８つの扇状タイルとともに処理される画像の分割例を示す図。
【図６】FIRフィルタバンクアーキテクチャに基づく空間依存回転用の制御論理装置例を示す図。
【図７】２次元FIRフィルタバンクに基づくシリアル空間依存回転のアーキテクチャ例を示す図。
【図８】コンピュータシステムのブロック図。
【発明を実施するための形態】
【００１２】
複雑でなく演算リソースが少なくて済む有限インパルス応答（FIR）フィルタバンクアーキテクチャのための方法及び装置が説明される。一実施例におけるディジタル画像処理システムは、画像パッチの（x，y）画素座標に基づいて、回転角インデックスを決定し、入力画像パッチの回転を制御するインデックスマッピングモジュールを含む。ディジタル画像処理システムは、回転角インデックスに基づいて、入力画像パッチを回転させる回転モジュールも含む。一実施例におけるディジタル画像処理システムは、回転後の入力パッチ画像に適用されるフィルタエンジンモジュールをさらに含む。
【００１３】
本発明は、様々な実施例に関する以下の詳細な説明及び添付図面によりさらに明らかになるであろう。しかしながら詳細な説明及び添付図面は本発明を特定の実施例に限定するものではなく、実施例は説明の便宜上の一例にすぎない。
【実施例１】
【００１４】
複雑でなく演算リソースが少なくて済む有限インパルス応答（FIR）フィルタバンクアーキテクチャのための方法及び装置が説明される。一実施例におけるディジタル画像処理システムは、画像パッチの（x，y）画素座標に基づいて、回転角インデックスを決定し、入力画像パッチの回転を制御するインデックスマッピングモジュールを含む。ディジタル画像処理システムは、回転角インデックスに基づいて、入力画像パッチを回転させる回転モジュールも含む。一実施例におけるディジタル画像処理システムは、回転後の入力パッチ画像に適用されるフィルタエンジンモジュールをさらに含む。
【００１５】
以下の説明において、本発明の説明をさらに完全にするため、具体的な数値例が説明される。しかしながら、本発明はそのような具体的詳細によらずに実現されてもよいことは明らかであろう。また、周知の構造及び装置は、本発明を曖昧にしてしまうことを避けるため、詳細には説明されず、ブロック図形式で示される。
【００１６】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
【００１７】
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な（電子的な）量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
【００１８】
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
【００１９】
本明細書に示されるアルゴリズム及びディスプレイは、何らかの特定のコンピュータ又は他の装置に固有に関連するものではない。様々な汎用システムが、本願による教示にしたがってプログラムとともに使用されてもよいし、あるいは、必要な方法ステップを実行する際にさらに特化した装置を構築することが有益であるかもしれない。それら様々なシステムに必要な構造は以下の説明から明らかになるであろう。さらに、本発明は何らかの特定のプログラミング言語に特化して説明されていない。本願で説明される発明の教示内容を実現するために様々なプログラミング言語を使用できることは明らかであろう。
【００２０】
マシン読取可能な媒体は、マシン（例えば、コンピュータ）が読取可能な形式で情報を格納及び送信する如何なる手段を含んでもよい。例えば、マシン読取可能な媒体は、リードオンリメモリ（ROM）、ランダムアクセスメモリ（RAM）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリ装置等を含む。
【００２１】
図１Ａ及び１Ｂは、ある画像に対する異なる光学系の変調伝達関数（MTF）特性を示す。MTFは、光学系が対象の画像をどの程度不鮮明にするかを示す。図１Ａ及び１Ｂは、異なるMTF特性を有する２つの光学系の例を示す。図１Ａは、通常の光学系のMTF110を示し、光学系により画像がどのようにして不鮮明にされるかを示す。特に、この光学収差は、回転対称でありかつ空間的に不変である。
【００２２】
しかしながら、図１Ｂは、指向性（配向性）収差特性を示す光学系のMTF120を示す。MTF120は、角度方向に沿う画像領域の様々な場所に応じて、各方向について指向性を示している。すなわち、この光学収差に起因して、MTF120は、回転対称でなくかつ空間的に不変ではない。
【００２３】
一実施例における図１ＢのMTFは、強いコマ収差を有する。さらに、コマ収差MTFは、一貫した予測可能な指向性及び空間非一定収差特性を示す。一実施例において、各方向は、画像領域の角度方向に沿う異なる場所に対応する。一実施例において、この予測可能な反復的な指向性収差特性は、上記のエンドトゥエンドの設計された電子光学画像処理システムに固有である。しかしながら、他の光学系も指向性収差特性を示し、上記の方法及び装置による恩恵を等しく受ける。
【００２４】
図１Ｂは１つの画像について12個のタイルを示し、各々が関連する方向に変化する収差を有しているが、光学系は幾つのタイルに分割されてもよい。さらに、図１Ｂに示される光学系のMTF特性は予測可能であるので、後述するように、その予測可能な収差特性に基づいて、特殊な最適なフィルタアーキテクチャが設計されてもよい。予測可能な収差特性は、しばしば、回転対称な光学レンズ要素を用いて得られる。
【００２５】
図２Ａは、FIRフィルタリングプロセスに基づく空間依存回転（space−varying  rotation）の一例を示す。図２Ａの例は、FIRフィルタリングプロセスに基づく空間依存回転の上位概念的説明を与える。個々の要素については、後に詳述される。
【００２６】
一実施例において、本シーケンスは、入力画像202によるラスタスキャニングを含む。入力画像202内の画素（ピクセル）全てについて、２つの制御情報（回転角インデックス及び半径インデックス）が算出される。
一実施例において、回転角インデックスは、回転モジュール208により処理される入力画素の回りに、小さな画像パッチ204を回転させる量を制御するのに使用される。画像パッチ210を回転させた後、FIRフィルタエンジン212におけるFIRフィルタ又は一群のFIRフィルタ（すなわち、フィルタバンク）が、入力画像パッチ210に適用される。一実施例において、半径インデックスを使用して線形重み係数（linear  weighting  coefficient）を算出／制御し、線形重み係数は212におけるフィルタ群からの出力を結合するのに使用される。結合後の出力は出力画像216に保存される。
【００２７】
図２Ａに示されるFIRフィルタリングプロセスに基づく空間依存回転は、様々なコンピュータアーキテクチャにより実現されてよい。一実施例において、プロセス（処理）は、汎用コンピュータアーキテクチャ（CPU）又はグラフィックプロセッサ（GPU）により行われてもよい。別の実施例におけるプロセスは、ディジタル信号プロセッサのような特殊なコンピュータ装置により行われてもよい。さらに別の実施例におけるプロセスは、FIRフィルタリングシステムに基づく空間依存回転を行うように設計された特定用途ハードウェア（例えば、フィールドプログラマブルゲートアレイ（FPGA）又は特定用途集積回路（ASIC）等）を用いて行われてもよい。
【００２８】
一実施例において、入力画像の入力パッチ204のような入力パッチ各々について、空間依存回転モジュール208は、画像パッチを回転させる。一実施例の場合、入力画像は収差のある光学系から取得される。一実施例の場合、入力画像202は、一貫した予測可能な向き及び空間非一定収差特性（図１Ｂを参照しながら説明したような特性）を示す。一実施例において、捕捉した画像座標（例えば、画素）を光学サブシステムの座標系に関連付けることは、光学サブシステムを検査することで又は光学設計に基づいて行われる。以下の説明において、光学軸は、センサの中心に対応し、すなわち捕捉画像の中心に対応するものとする。しかしながら、このことは必須ではなく、光学軸は必ずしもセンサの中心に整合していなくてもよい。
【００２９】
一実施例において、回転角インデックスマッピングモジュール206は、空間依存回転モジュール208が画像パッチ204を回転させる角度を決める。一実施例において、回転角インデックスは、点（x，y）の線形関数群とともに符号（サイン）検出を用いることで、回転角インデックスマッピングモジュール206により決定される。符号（サイン）検出の例については後述する。符号検出の結果により、空間依存回転モジュール208が入力パッチを回転させることが可能な全ての可能な回転角θ1．．．θMの内のθiが決定される。一実施例では、FIRフィルタエンジンモジュール212の最適なフィルタ係数を生成するため、ある有限数の回転角が使用される。一実施例では、FIRフィルタエンジンモジュール212が使用するフィルタ係数は、回転角に基づいている（すなわち、FIRフィルタ係数は、ある角度について最適化されている。）。
【００３０】
一実施例では、半径インデックスマッピングモジュール214は、画像の中心を基準点として、現在の入力画素の半径方向の位置を決定する。一実施例では、その半径（半径方向の距離）は、フィルタバンクの出力を線形結合する際の１つ以上のウェイトを決める場合に使用される。一実施例では、ターゲットの光学系の特性にしたがうことに加えて、ターゲットのディジタル画像処理プロセスの出力画像品質特性の条件にもしたがって、有限数の半径インデックスが決定される。
【００３１】
一実施例では、空間依存回転モジュール208は、低コストかつ高効率のハードウェアアーキテクチャであるマルチプレクサを用いたアーキテクチャである。さらに、一実施例では、空間依存回転モジュール208は、画像タイル様々な回転角θMについてスケーラブルなハードウェアアーキテクチャである（例えば、入力画像を、８個、１２個、１６個等のタイルに分割可能である。）。
【００３２】
空間依存回転モジュール208は、画像パッチ204を角度θiだけ回し、回転したパッチ210を生成する。回転したパッチ210はFIRフィルタ212に与えられる。一実施例では、FIRフィルタ212は、特定の角度θiについて最適化されたフィルタ係数を適用する。回転及びフィルタリングされたパッチは、出力画像216として出力される。一実施例では、完全な出力画像216を得るために、入力画像の全てのパッチが結合される。
【００３３】
図２Ｂは、２次元有限インパルス応答（FIR）フィルタバンクに基づく空間依存回転のアーキテクチャ例を示す。一実施例において、入力ウィンドウバッファ222は、処理される現在の画素を中心とする入力画像のウィンドウにおける画素を受信する。一実施例において、入力ウィンドウバッファ222により受信されるデータは、ラインバッファ１ないしNのようなラインバッファ220から受信される。一実施例において、画素は、図２Ａに関して上述したような入力画像からのパッチの画素に対応する。
【００３４】
一実施例において、空間依存回転モジュール224は、2D入力ウィンドウをある角度だけ回転させる。一実施例において、その回転は、低コストで効率的なハードウェア構造である2：1マルチプレクサにより実行される。空間依存回転モジュール224の具体例については、図３及び図４を参照しながら後述される。空間依存回転モジュール224が行う入力画像パッチの回転は、現在の画素に対する回転角インデックスにより決定される。回転した入力ウィンドウはFIRフィルタバンク232により処理される。一実施例において、FIRフィルタバンク232は、有限個の組のFIRフィルタから構成され、FIRフィルタは、一群のウェイトαi（ρ）を用いて線形結合される出力を有し、ρは現在の画素の半径インデックスである。一実施例において、フィルタバンク232のFIRフィルタ各々は、積和演算法（MAC：Multiply−Accumulate）又はシフトアッド法（Shift−and−Add）のような既存の１次元（1D）FIRフィルタアーキテクチャを利用して実現可能である。別の実施例では、FIRフィルタ係数は、MAC又はシフトアッド構造を利用して求められてもよい。別の実施例において、FIRフィルタは、特定用途のDSPチップにより提供されるFIRフィルタにとって局所的な制御論理装置及びアキュムレータを利用して、シリアル形式で実現されてもよい。
【００３５】
一実施例では、ウェイト選択制御モジュール230は、極座標インデックスマッピングモジュール228から受信した現在の半径インデックスにしたがって、様々なウェイト群を選択する。回転角インデックス及び半径インデックス双方は、極座標インデックスマッピングもユール228により、現在の画素座標（x，y）から算出される。一実施例において、現在の画素座標は、入力座標生成モジュール226により生成される。
【００３６】
図２Ｃは、２次元FIRフィルタバンクに基づく空間依存回転のアーキテクチャ例を示す。図２Ｃに示されるフィルタバンクにより、論理制御レベルの詳細な一例が示されている。図２Ｃは、上記の図２Ｂのアーキテクチャ構成に基づくハードウェア例を示す。
【００３７】
一実施例において、２次元回転FIRフィルタのアーキテクチャは、ラインバッファ240を含む。一実施例において、ラインバッファ240は、同期型シリアルインシリアルアウトシフトレジスタを利用する。別の実施例では、ラインバッファ240は、アドレスメモリに対するカウンタを備えた専用RAM（例えば、XilinxFPGAにおけるブロックRAM）を使用する。さらに、一実施例では、RAMはリードファーストRAM（read  fast  RAM）である。
【００３８】
一実施例では、ラインバッファ240はフレームバッファ242を含む。一実施例では、フレームバッファ242は、Fh×Fwに等しい画素の仮想的に定義されたフレームであり、Fh及びFwはそれぞれフレームの高さ及び幅である。これらは、√2max（fh1，fh2，．．．，fhp，fw1，fw2，．．．，fwp）として決定され、ここで、fhi及びfwiは、ｐフィルタバンク248におけるｉ番目のフィルタに対する高さ及び幅をそれぞれ表す。一実施例では、Fh及びFwに対するビット数は、それらが回転部により処理される際に一度に選択される。そのビット数は、２次元FIRフィルタによりフィルタリングされる画素に対する関連ビットとともに、ｐフィルタバンク248に与えられる。
【００３９】
一実施例では、プレバッファ（前段バッファ）244がラインバッファ240から画素データを受信する。一実施例において、プレバッファ244はパラレルインパラレルアウトレジスタを含む。さらに、一実施例では、パラレルインパラレルアウトレジスタは、ルックアップテーブル（LUT）又は他の等価な要素でもよい。
【００４０】
画素データは、その後にプレバッファ244から回転論理装置246に与えられる。一実施例において、回転論理装置は一群のマルチプレクサを含み、マルチプレクサは、群中のマルチプレクサ同士の間で所定の接続関係を有する。さらに、その所定の接続関係は、仮想的に規定されたフレーム242から、フィルタリングする画素の選択を可能にする。回転論理装置246に関し、所定の接続関係を有するマルチプレクサ群の一例は、図４を参照しながら後述される。さらに、回転論理装置246は、接続関係により、ｐフィルタバンク248が処理する画像データを前もって回転させる（pre−rotate）。
【００４１】
一実施例において、ｐフィルタバンク248は、回転した画像データを回転論理装置246から受信する。一実施例において、ｐフィルタバンク248は、フィルタ250−1ないしフィルタ250−pのような一群のフィルタから構成される。フィルタ250は様々なタイプのフィルタとすることができる。例えば、フィルタ250は、MAC、ディストリビュートアリスメティック（DA：Distributed  Arithmetic）又はシフトアッド方式のフィルタでもよい。他のFIRフィルタが本願に使用されてもよい。
【００４２】
一実施例において、制御論理装置254は、画素データがフィルタリングされる前に回転論理装置246が所与の画素に適用する回転を決定する。さらに、制御論理装置254は、ｐフィルタバンク248のフィルタリングされた出力にウェイトを割り当て、それらのウェイトをフィルタウェイト部252に与える。一実施例において、ウェイトは、画素が属する半径方向のタイル（半径方向距離）に基づいてリアルタイムで割り当てられる。
【００４３】
一実施例では、ｐフィルタバンク248によりフィルタリングされたデータは、その後にフィルタウェイト部252により重み付けされる。一実施例では、フィルタウェイト部252は、ｐフィルタバンク248の出力に、所定のウェイトにより重み付けを行う。一実施例において、ウェイトは、処理される現在の画素が所属している半径タイル（半径方向距離）に基づいて、制御論理装置254により決定される。半径タイル及び画素の重み付けについては後述される。そして、フィルタウェイト部252は、フィルタリングされた重み付けされた画素データを最終的なシステム出力として出力する。
【００４４】
図３Ａは、回転する入力画像データの回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す。図３Ａは、回転インデックスマッピング構造を示す。本構造は３段階（ステージ）のバイナリマルチプレクサから構成され（すなわち、バイナリマルチプレクサ310、320、330）、各段階の出力は、ゼロ度入力と、関連する回転角による回転値との間で切り替わる。一実施例において、各マルチプレクサは、対応する回転角の制御ビット入力により制御される。一実施例において、図３Ａに示されている３段階の回転インデックスマッピング構造は、３ビット制御バイトに応じて、0、45、90、135、180、225、270及び315度のような８つの回転角のために使用可能である。
【００４５】
図３Ｂは、例えば、画像データを135度回転させる場合の３ビット回転制御インデックスを示す。回転角生成部が生成した回転制御インデックスは２進法で110であり、MSBからLSBに至るビット各々が、45度、90度及び180度用のマルチプレクサをそれぞれ制御する。この場合において、45度及び90度用のマルチプレクサは、マルチプレクサ各自に入力されている１ビットによりイネーブルにされている（活性化されている）。さらに、180度用のマルチプレクサは、0ビット入力によりディセーブルにされている。その結果は、45度及び90度のマルチプレクサ双方による画像データの回転となり、出力において135度の回転をもたらす。８つの回転角（0、45、90、135、180、225、270及び315度）は、バイナリマルチプレクサ各々を選択的に動作させることで同様に生成可能である。
【００４６】
一実施例において、マルチプレクサ入力の接続関係は、最近接法、最近傍法又は最短距離法（nearest  neighbor  method）を用いて生成される。一実施例において、空間依存回転構造は、画像回転に関する最近接補間アルゴリズムに基づく。フィルタリング結果の補間誤差の影響は、回転角を変化させる。一実施例では、回転構造はローカル補間（すなわち、バイリニア、バイキュービック等）を行い、より大きなパッチに対する回転画像パッチの品質を改善する。
【００４７】
図４は、マルチプレクサを利用するフィールドプログラマブルゲートアレイ（FPGA）回転インデックスマッピング構造の一例を示す。一実施例において、回転インデックスマッピング構造は、３ステージ（段階）のマルチプレクサを使用する。一実施例において、マルチプレクサの３段階は、45、90及び180度の回転に対応する。さらに、回転インデックスマッピング構造は25個の出力を有し、これらは5×5の2Dフィルタカーネルサイズに対応する。図示の回転角インデックスマッピング構造は、5×5の2Dフィルタカーネルとして機能するが、他のサイズのフィルタカーネルが、上記の趣旨に合うアーキテクチャとともに処理されてもよい。一実施例において、回転インデックスマッピング部は2D入力ウィンドウバッファを含み、2D入力ウィンドウバッファは7×7のサイズのレジスタアレイから構成され、7は近似的にフィルタカーネルサイズ5の√2倍である。
【００４８】
5×5の2Dフィルタカーネルにおいて動作する回転インデックスマッピング構造が図４に示されているが、３段階の回転により、他の組み合わせも可能である。回転角M個の有限集合θ＝｛θ1，θ2，．．．，θM｝、2N2個の入力画素及びN2個の出力画素の場合、回転インデックスマッピング構造の出力各々に必要な2：1マルチプレクサの最小数は、O（log2M）である。例えば、上記の図４の場合、8つの角度であるので、3段階の2：1マルチプレクサが、回転インデックスマッピング構造の各出力に使用される。同様な構造がASICのような他のハードウェアシステムに適用されてもよい。
【００４９】
図５Ａは、８つの扇状タイル（angular  tile）により処理される画像の分割例を示す。図５Ｂは、４つの放射状タイル及び８つの扇状タイルにより処理される画像の分割例を示す。タイル各々は入力画像の内の45度をカバーし、各タイルに対応するインデックスは0ないし7に及ぶ。したがって、一実施例の場合、3つの制御ビット（000−111の２進値）を利用して、図３Ａ及び３Ｂに示される３段階のマルチプレクサに対する回転角インデックスを生成できる。
【００５０】
回転角インデックスのマッピングは、入力画像の（x，y）座標対各々について、逆正接（arctan）の値を算出することで行われる。別の実施例の場合、x及びyの線形関数群の符号検出を利用することで、低コストの回転角インデックスマッピング関数が使用可能である。以下に、擬似コードによる３つの制御ビットの生成例を示す。
【数１】
0005531805.tif 000002
【００５１】
一実施例において、回転角インデックスマッピングの符号検出法は、回転する入力画像中の扇形タイルの総数に応じて異なる。8、12及び16個の3種類のタイルに対する回転角インデックスマッピングの符号検出例を以下に示す。
【００５２】
8個の扇形タイルの場合、各タイルは45度である：
【数２】
0005531805.tif 000003
【００５３】
12個の扇形タイルの場合、各タイルは30度である：
【数３】
0005531805.tif 000004
【００５４】
16個の扇形タイルの場合、各タイルは22．5度である：
【数４】
0005531805.tif 000005
【００５５】
上記の例は、様々な例の符号検出に使用されるx及びyの線形関数を含む。（x，y）座標の原点は、入力画像の中心に決められていることに留意を要する。12個の扇形タイル（Tile）を使用する空間依存回転インデックスマッピングの場合において、以下の表１は、線形関数の符号ビット及び座標に基づく選択信号の値を示す。
【００５６】
表１
【表１】
0005531805.tif 000006
【００５７】
一実施例において、上述の線形関数の使用及び選択は、ハードウェアを簡潔にすることを促す。一実施例において、２の倍数がx及びyに対するスケーリングの制約として使用され、逆正接（arctan）関数を近似する（そうでなかった場合の計算は、かなりのハードウェア部分を占める。）。
【００５８】
図６は、FIRフィルタバンクアーキテクチャに基づく空間依存回転用の制御論理装置例を示す。一実施例において、コントローラ654は、上記の半径タイルに基づいて、マルチプレクサ回転部の選択信号と、フィルタバンクに割り当てられるウェイトとを生成する。図６に示されているコントローラ654は、図２Ｃの制御論理装置254のさらなる詳細を示す。
【００５９】
画素は、画像の左上隅から始まり、ラスタ形式で到来する。計算を簡単にするため、座標軸は画像の中心に移される。一実施例において、カウンタ602は座標軸の移行（シフト）を可能にする。一実施例において、カウンタ602は比較器604によりリセットされ、比較器はx座標値及びy座標値を比較する。
【００６０】
例えば、画像が640×480画素により構成される場合、X−CoordCNTR及びY−CoordCNTRとして示されているカウンタ602は、−320及び240にそれぞれ設定される。X及びYカウンタのリセット値−320及び240のリセット値は、（0，0）の中心座標とともに640×480画素の画像境界により決定される。一実施例において、カウンタは10ビットカウンタであり、２の補数形式で数を数える。−320及び240にカウンタが設定される上記の例の場合、これらのカウンタは111011000000及び000011110000の値に初期化され、これらは２の補数形式における−320及び240に対応する。したがって、一実施例において、新たな画素データが分析される際に、カウントを進める場合、X座標カウンタは１だけ増やされ、Y座標カウンタは１だけ減らされる。
【００６１】
一実施例において、カウンタ602はX及びY座標値を出力し、X及びY座標値は、マルチプレクサの回転ネットワーク用の選択信号を決定するのに使用されるだけでなく、フィルタバンクのウェイトを決定することにも使用される。
【００６２】
一実施例において、線形関数ネットワーク606が比較器604及びカウンタ602の上に示されている。一実施例において、線形関数ネットワーク606は、上記の符号検出の線形関数を実現する。例えば、線形関数ネットワーク606により実現される線形関数は、45度のタイルの場合は（f1，f2）、30度のタイルの場合は（f1，f2，f3，f4）、22．5度のタイルの場合は（f1，f2，f3，f4，f5，f6）である。上述したように、関数はX及びY座標の線形関数である。一実施例において、線形関数は、X及びY座標に関するシフト操作（shift  operation）を含む。例えば、16タイル及び22．5度の角度分割を行う光学系の場合、関数f1は、線形関数ネットワーク606により次の表に計算される。
【数５】
0005531805.tif 000007
ここで、「〜」はインバース処理（逆演算）を示し、「｛｝」はビット連結処理を示し、X（i）は、Nビット座標ストリング（文字列）Xにおけるｉ番目のビットを示す。
【００６３】
一実施例において、関数は、符号拡張シフト（sign  extended  shifting）に基づく。さらに、符号拡張は、シフト操作を行いつつ、X及びYの符号ビットを拡張することで行われる。否定を行うため、ビット反転（bit  flip）を行い、定数１を加える。これは、その数の２の補数である。
【００６４】
一実施例において、回転インデックス608は、線形関数ネットワーク606の結果を受信する。一実施例において、回転インデックスブロック608は、マルチプレクサ612及び最上位ビット（MSB）再編成ネット610を含む。上述したように、線形関数の出力は、画素の角度位置を特定するために使用される。一実施例の場合、角度の対応関係は、線形関数ブロックのMSBのみを使用して判明する。なぜなら、線形関数のMSB出力は、２の補数における符号ビットだからである。
【００６５】
一実施例において、回転インデックス608用のマルチプレクサ612は、FPGAによる組み込みマルチプレクサである。例えば、マルチプレクサ612は、XILINX（登録商標）FPGAに組み込まれたBUFGMUXでもよいし、ASIC、CPU、GPU、DSPその他の何らかのコンピュータプラットフォームにおいて同様に設計されてもよい。一実施例において、マルチプレクサ612は、入力として与えられた選択信号の中から選択を行う。マルチプレクサ612に与えられる入力（例えば、選択信号）のサイズは、光学系において可能な回転角（例えば、8、12又は16個の扇状タイル等）により異なる。さらに、マルチプレクサ数も可能な回転角に応じて可変である。例えば、8つの扇状タイルの場合、45、90及び180度の回転角を選択するために３つのマルチプレクサが使用される。12及び16個の扇状タイルの場合、30、60、120、240、22．5、45、90及び180度の回転角をそれぞれ選択するために、４つのマルチプレクサが使用される。マルチプレクサに対する選択入力は、606の出力及びX−Y座標からの符号ビットである。一実施例において、マルチプレクサの対応づけ（マッピング）は、上記の表１と同様な表を用いて行われる。
【００６６】
一実施例において、コントローラ654は二乗半径（ρ2）生成部620をさらに含む。一実施例において、座標の総和は二乗半径値ρ2＝X2＋Y2を出力する。一実施例において、二乗半径生成部620は、ハードウェア乗算部を用いて構築される。
【００６７】
一実施例において、コントローラ654は、ウェイト選択部及び半径タイル割当部630を含む。コントローラ654は、代替的なウェイト選択部及び半径タイル割当部640を含んでもよい。ウェイト選択部及び半径タイル割当部630及び640の各々は、極座標形式の割り当て及びウェイト選択を別様に実行する。
【００６８】
ウェイト選択部及び半径タイル割当部630は、640×480の画像フレームサイズを意図した例として示されている。画像フレームサイズは例示的に示されているにすぎず、ウェイト選択部及び半径タイル割当部630は、上記の説明に合致する様々な画像フレームサイズに合わせて構築可能である。640×480のフレームサイズの場合、最大半径は、400＝√（2402＋3202）である。画像フレームにおいて10個のタイル量子化が行われ、９個の閾値が、402、802、1202、1602、2002、2402、2802、3202及び3602であると仮定する。仮に、所与の画素の半径が402未満の値を持っていた場合、それはタイル１の画像フレーム内にあり、タイル１は予め割り当てられたウェイトを有する。一実施例の場合、ウェイトは、上記の多項式関数を用いて予め決められている。一実施例において、所与の画素の半径が402及び802の間にあった場合、その画素はタイル２に属する、等々である。
【００６９】
一実施例において、半径タイル割り当てを行うため、（例えば、半径方向の解像度として）10まで数えるカウンタ632とアキュムレータ634とが使用され、アキュムレータの出力はρ2の値と比較される。アキュムレータ634は1600（最小タイル閾値）まで蓄積し、比較器620の出力は、タイルが決定された場合、カウンタ632をディセーブルにする。現在のρ2が閾値より小さかった場合、それはカウンタが現在決定しているタイル数に属する。一実施例において、画素クロック及びカウンタクロックがコントローラ654により使用される。カウンタ632の出力（すなわち、極座標における数）はマルチプレクサに対する選択入力として使用され、マルチプレクサはフィルタバンクに割り当てるウェイトを提供する。ウェイトが8ビットの場合、マルチプレクサ入力各々は16ビットである。
【００７０】
一実施例において、ウェイト選択部及び半径タイル割当部640は、ウェイト選択及び半径タイル割り当ての処理を並列化して行う。この例の場合、ρ2が一群の比較器642に直接的に送られる。一実施例において、比較器642はそれぞれ10ビットであり、閾値と比較される（例えば、640×480の画像サイズの場合、1600ステップにより行われる）。一実施例において、比較器642の出力はマルチプレクサに対する選択信号として使用され、マルチプレクサの入力は、所与の半径タイルに対応するウェイト値を受けている。
【００７１】
一実施例において、比較器642及び比較器604は、２ビット比較器のツリーとして構築される。比較器がツリー形式で構築される場合、比較器のデータ処理速度は最速になる。２ビット比較器のツリー形式による比較器642及び比較器604の一例が、図650に示されている。
【００７２】
一実施例において、図２Ｃで言及したように、専用のRAM（例えば、XILINX（登録商標）FPGAにおけるブロックRAM）がラインバッファに使用され、ルックアップテーブル（LUT）又はそれと等価な論理装置若しくは回路要素が、回転マルチプレクサネットワーク、プレバッファ及び制御論理装置に使用される。別の例では、ASIC、CPU、GPU、DSP又は他の演算要素が実現の際に使用されても良い。一実施例において、FIRフィルタは、5×5の２つのMACフィルタバンクに対して、50個のマルチプレクサ及び49個の加算器を使用する。代替例は、より優れたハードウェア効率を備えたディスリビュートアリスメティック（DA）フィルタ又はアッドアンドシフトフィルタを使用してもよい。
【００７３】
図７は、２次元FIRフィルタバンクに基づくシリアル空間依存回転のアーキテクチャ例を示す。
【００７４】
例示的に640×480のフレーム702が示されている。フィルタ処理される画素は、画素706−1であり、一実施例において、画素706−1に関する図７のシリアルな計算は、仮想フレーム内の最後の画素に至るまで完了しないものと仮定する。一実施例において、フィルタ処理の計算は、画素704が到着すると直ぐに開始される。一実施例において、画素704は、フレーム702（すなわち、仮想フレーム）内の画素に対するフィルタリング処理の部分和の計算に使用される。
【００７５】
図７において、CoeffMap710及びCoordMap708はメモリであり、（フィルタリング処理を要する画素の）待ち受けたX座標値を昇順に保存している。これらは、画素の角度（例えば、45、90又は180度）を用いて予め決定された回転マッピングに基づいて決定され、これらの待受係数に対応するフィルタ係数は、CoordMmapスタックに保存される。一実施例において、CoeffMap710及びCoordMap708     は、Y座標値も保持する。これらは、フレーム処理が開始される前に計算可能であり、処理される現在の水平ライン画素全てについて（すなわち、画素706−1ないし706−i−−640）メモリが裏付けられる。一実施例において、制御論理装置714は、回転割当論理装置712とともに回転角の割当を決定する。回転角は画像702における画素262−1ないし262−iについて決定され、対応する選択信号が、画素262−1に関するフィルタリング処理の開始前にメモリに保存される。一実施例において、制御論理装置274は、フィルタリング処理のウェイトを選択する。制御論理装置714は、上述の図６における制御論理装置とどうようなアーキテクチャを有する。
【００７６】
一実施例において、フィルタトラッカ716は、処理対象の水平ラインにおける現在の画素について完了した2Dフィルタの増加数を追跡する。一実施例において、フィルタトラッカはバッファである。さらに、フィルタトラッカ716の新たなメモリは、フレーム702内の新たな水平ラインの画素各々について裏付けられる。
【００７７】
一実施例において、出力バッファ718は、現在到着している画素に対するフィルタ増加の計算を蓄積する。一実施例において、これは、新たな画素が到着した場合に（例えば、画素704が到着したような場合に）、水平ライン（行）内の全ての画素について算出される。一実施例において、出力バッファ周波入力バッファ数に等しい。例えば、7×7フィルタの場合、画素の計算を終了させるため、近辺の49個の画素が到着する必要がある。
【００７８】
一実施例において、フィルタリング処理に必要な画素（例えば、上記の例における画素704）が到着すると直ぐに、出力バッファの内容は蓄積される。一実施例において、現在の画素に対して保存された計算結果は、次のラインの画素のフィルタリング処理を近似するのに使用可能である。一実施例において、この方法は、垂直ライン画素相関が高い画像の場合に有用である。したがって、そのようなアプリケーションの場合、近似の誤差は非常に高いわけではなく、小数の出力バッファが利用される。
【００７９】
一実施例において、インデックスコア720は画素データに関するシリアルフィルタリング処理を実行する。一実施例において、インデックスコア720はフレームスキャンカウンタ722を含む。7×7フレームの場合、インデックスコア720は、１画素クロック周波数につき7回動作し、7は、max（Fh，Fw）（Fh及びFwの内の大きい方）である。なぜなら、現在到来している画素（例えば、画素704）は、例示的な7×7フレームの7フレームによりカバーされる水平に隣接する画素により使用されるからである。
【００８０】
図７に示されるアーキテクチャを、以下の例とともにさらに説明する。処理する画素のラインは、画像フレーム702内に示されている画素706−1ないし706−iのラインであり、到来した現在の画素が画素704であると仮定する。さらに、画素704は、45度回転マッピングの場合に、現在のフレームに必要な最初の画素である。回転割当バッファ712（バッファの入力は、計算の前に入力される）は、CoordMap708キューヘッドを選択し、これはフィルタリング処理で待機している次の座標である。隣接する画素の場合、待機している座標は、キューの先頭に隣接する座標である。例えば、（45度回転の場合に）処理対象の第１画素について待機している最初の座標が４であった場合、第２画素について待機している座標は、第３に対する、及び同じ45度回転の各画素に対する５、６である。CoordMap708キューヘッドの先頭の要素は、7つの水平に隣接する画素により使用され、一実施例では、カウンタが動作し、CoordMap708バッファの先頭における座標値を増やす。座標値は、比較器724により、到来した画素の現在のX座標値と比較される。合致していた場合、フィルタ係数がCoefMap710バッファスタックから選択され、現在の画素値（すなわち、x[n]）に乗算される。一実施例において、これらの係数はフィルタバンク全体に対するものであり、その場合、CoeffMap710バッファスタックは、図示されているものより多くの入力を含む。これは、フィルタリング処理の部分的な重み付け加算の計算を可能にし、処理対象の現在の水平ライン内の全ての画素について、画素クロックサイクル毎に出力バッファ718に蓄積される。こうして、現在到来している画素、例えば画素704に関して、それが到来すると直ぐにフィルタリング処理が完了し、多くの入力バッファの要請を排除できる。
【００８１】
図８は、上記の処理の１つ以上を実行するコンピュータシステムのブロック図である。一実施例において、コンピュータシステムの１つ以上の要素は、光学画像処理システムに統合されてもよい。別の実施例において、コンピュータシステムは光学画像処理システムを制御してもよい。図８を参照するに、コンピュータシステム800は、例示的なクライアント又はサーバコンピュータシステムを有する。コンピュータシステム800は、情報を通信する通信手段又はバス811と、バス811に結合された情報を処理するプロセッサ812とを有する。プロセッサ812はマイクロプロセッサを含み、マイクロプロセッサは、例えばペンティアム（登録商標）等のようなマイクロプロセッサであるが、これに限定されない。
【００８２】
システム800は、ランダムアクセスメモリ（RAM）又は他のダイナミックストレージデバイス804（メインメモリと言及される）を含み、これらは、バス811に結合され、情報及びプロセッサ812が実行する命令を格納する。メインメモリ804は、プロセッサ812による命令の実行中に、一時的な変数又は他の中間的な情報を保存するためにも使用される。
【００８３】
コンピュータシステム800はリードオンリメモリ（ROM）及び／又は他の静的ストレージデバイス806を含み、これらはバス811に結合され、プロセッサ812のための命令及び静的情報を保存し、コンピュータシステム800は、磁気ディスク又は光ディスクのようなデータストレージデバイス807及び関連するディスクドライブを有する。データ素折れー時デバイス807は、バス811に結合され、情報及び命令を保存する。
【００８４】
コンピュータシステム800は、陰極線管（CRT）又は液晶ディスプレイ（LCD）のような表示装置821に結合され、これらはバス811に結合され、情報をコンピュータユーザに表示する。英数字及び他のキーを含む英数字入力装置822は、バス811に結合され、情報及びコマンド選択内容をプロセッサ812に通知する。追加的なユーザ入力装置は、マウス、トラックボール、トラックパッド、スタイラス又はカーソル指示キーのようなカーソル制御部823であり、カーソル制御部は、バス811に結合され、方向情報及び命令選択内容をプロセッサに通知し、ディスプレイ821におけるカーソルの動きを制御する。
【００８５】
バス811に結合されている他の装置として、ハードコピー装置824があり、これは、命令、データ又は他の情報を、紙、フィルム又は同様なタイプの媒体に印刷するのに使用される。さらに、スピーカ及び／又はマイクロフォンのような音声記録及び再生装置が選択的にバス811に結合され、コンピュータシステム800に対するインターフェース機能を果たす。バス811に結合される他の装置として、有線／無線通信部825があり、これは電話又は携帯装置と通信を行う。
【００８６】
システム800及び関連するハードウェアの要素の全部又は任意の一部が本発明において使用されてよいことに留意を要する。しかしながら、他の形態のコンピュータシステムが本装置の全部又は一部を含んでもよいことが認められるであろう。
【００８７】
本発明に関する多くの代替例及び変形例が、上記の説明を理解した当業者にとって疑う余地無く明らかになっているであろう。説明した特定の実施例は如何なる方法によっても限定的に解釈されることは意図されていない。したがって、様々な実施例の詳細が、特許請求の範囲を限定するように解釈されてはならず、特許請求の範囲における請求項は発明に必須の特徴のみを列挙している。
【符号の説明】
【００８８】
２０２  入力画像
２０４  入力パッチ
２０６  回転角インデックスマッピングモジュール
２０８  空間依存回転モジュール
２１０  回転したパッチ
２１２  FIRフィルタエンジン
２１４  半径インデックスマッピングモジュール
２１６  出力画像
２２０  入力画像  ラインバッファN  
２２０  ラインバッファN-1
２２０  ラインバッファ2
２２０  ラインバッファ
２２２  入力ウィンドウバッファ
２２４  空間依存回転モジュール
２２６  入力座標生成モジュール
２２８  極座標インデックスマッピングモジュール
２３０  ウェイト選択制御部
２４０  ラインバッファ
２４２  読取フレーム  N×M
２４４  プレバッファ
２４６  回転論理装置
２４８  pフィルタバンク
２５２  フィルタウェイト
２５４  制御論理装置
３１０  ゼロ／45度バイナリMUX
３２０  ゼロ／90度バイナリMUX
３３０  ゼロ／180度バイナリMUX
７０２  フレーム    画像
７１２  回転割当部
７１４  制御論理装置
７１６  フィルタトラッカ
７１８  出力バッファ
７２０  インデックスコア
７２２  フレームスキャン
８０４  メインメモリ
８０５  大容量ストレージメモリ
８０６  スタティックメモリ
８１１  バス
８１２  プロセッサ
８２１  ディスプレイ
８２２  キーボード
８２３  カーソル制御装置
８２４  ハードコピー装置
８２５  無線／電話インターフェース
【先行技術文献】
【特許文献】
【００８９】
【特許文献１】米国特許第6，009，447号
【特許文献２】米国特許第6，801，674号
【図２Ａ】
0005531805.tif 000008
【図２Ｂ】
0005531805.tif 000009
【図２Ｃ】
0005531805.tif 000010
【図３Ａ】
0005531805.tif 000011
【図３Ｂ】
0005531805.tif 000012
【図４】
0005531805.tif 000013
【図５Ａ】
0005531805.tif 000014
【図５Ｂ】
0005531805.tif 000015
【図６】
0005531805.tif 000016
【図７】
0005531805.tif 000017
【図８】
0005531805.tif 000018
【図１Ａ】
0005531805.tif 000019
【図１Ｂ】
0005531805.tif 000020