説明

ディジタル画像処理システム及び方法

【課題】演算負担の軽い効率的な画像処理を行う方法及び装置を提供する。
【解決手段】複雑でなく演算リソースが少なくて済む有限インパルス応答(FIR)フィルタバンクアーキテクチャのための方法及び装置が開示される。一実施例におけるディジタル画像処理システムは、画像パッチの(x,y)画素座標に基づいて、回転角インデックスを決定し、入力画像パッチの回転を制御するインデックスマッピングモジュールを含む。ディジタル画像処理システムは、回転角インデックスに基づいて、入力画像パッチを回転させる回転モジュールも含む。一実施例におけるディジタル画像処理システムは、回転後の入力パッチ画像に適用されるフィルタエンジンモジュールをさらに含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般に光画像処理システムの技術分野に関連し、特に演算負担及びリソースが少なくて済む有限インパルス応答(FIR)フィルタバンクアーキテクチャ及び方法に関連する。
【背景技術】
【0002】
一般に、電子光学画像処理システムは、画像光学系(例えば、レンズ又はミラーのアセンブリ)、電子センサアレイ(例えば、CCDディテクタ配列)及びディジタル画像プロセッサ(例えば、専用チップ又はソフトウェアにより実現される)を含む。これらのシステムを設計する従来の方法は、一般に、全く独立した工程を含む。光学系は、センサアレイにおいて高品質な中間光学画像を形成することを目的として設計される。センサアレイは、意図されるアプリケーションによりしばしば決定され、分解能やコストの要因もアプリケーションにより決定される。ディジタル画像処理は、サンプリングされた中間光学画像における残留欠陥を補償することを意図して、しばしば光学系の設計後に設計される。
【0003】
光学系の設計者及び画像処理の設計者の間ではほとんど調整がないままこれらの設計段階は行われる。これらの段階の孤立化は、光学系及び画像処理の分野間における大幅な相違(設計目的、方法、ツール及び制約等における相違)を反映している。例えば、各々の分野は潜在的に広範なアプリケーションをカバーしているが、電子光学画像処理システムの設計以外に両者の技術分野間ではほとんどオーバーラップがない。顕微鏡、望遠鏡、眼鏡等の技術分野における通常の設計は、いかなる画像処理も考慮していない。同様に、圧縮、コンピュータグラフィックス及び画像強調等のような通常の画像処理の分野は、何らの光学的要素も含んでいない。その結果、各々の技術分野は、各自固有の用語、最良の慣行、ツール群等と共に互いに独立に発展してきている。
【0004】
最近、これらの相乗効果をねらった試みがある。例えば、ロビンソン(Robinson)及びストーク(Stork)による「End−To−End Design of Electro−Optic Imaging Systems」と題する米国特許出願第11/155,870号は、画像光学及び画像処理が互いに補償できるようにすることで、画像処理システムを設計する一般的な試みに関連している。単独に考察した場合、光学系も画像処理も最適にはならないが、両者の相互作用は良い結果をもたらす。言い換えれば、ある全体的な画像品質を達成するため、この方法は、2つの補償が互いに所望のパフォーマンスを達成できる限り、より低い品質の光学系及び/又はより低い品質の画像処理を利用可能にしている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながらそのような画像処理システムの光学系は、回転非対称であり空間的に変化又は依存する(space−varying)強い光学収差をしばしば導入してしまう。これらの収差を補償するため、ディジタル画像処理において、様々な有限インパルス応答(FIR)フィルタの多数の群が各自の向き及び場所に必要とされ、関連する領域の光学収差により引き起こされる不鮮明なアーチファクトを補償する必要がある。しかしながら、ハードウェアによるそのような多数のFIRフィルタを実装することは、非常に高価な演算リソースを必要としてしまう。
【0006】
空間非一定FIRフィルタをソフトウェアにより実現することが様々な分野で広く研究されており、特に天文学の分野で研究されている。演算効率(一般的には、速度)を向上させるため、空間非一定の不鮮明さを解消する多数のアルゴリズムが提案されている。これらのソフトウェアアルゴリズムは、高速な反復法を使用している、あるいは線形補間を利用した高速マトリクスベクトル積(fast matrix−vector products)を使用している。しかしながら、これらのアルゴリズムに要する複雑さやメモリは、低コストのハードウェア実現手段にとって実用的ではない。
【0007】
「Method and System for Generating and Implementing Orientational Filters for Real−Time Computer Vision Applications」と題する米国特許第6,009,447号(特許文献1)は、VLSIハードウェアシステムにおいて、ディジタル指向性フィルタ群(例えば、がボール(Gabor)フィルタ群)を表現及び実現する方法をもたらす。指向性フィルタ群(orientational filters set)は、フィルタバンクとして表現され、その各々は、1次元の(1−D)フィルタカーネル個々の総和を含む。リアルタイムでビデオデータからフレーム毎にターゲットオブジェクトの向きを特定することが目的である。この特許文献による手段は、非常に多くの中間的なメモリバッファをハードウェアで必要とすることであり、個々の1−Dフィルタバンクを実現するために非常に演算負担も大きくなってしまう。リアルタイム画像回転及びハードウェアによる画像サイズ変更を行う方法の1つが、「Real−Time Image Resizing and Rotation with Line Buffers」と題する米国特許第6,801,674号(特許文献2)に開示されている。リアルタイム画像化移転法は複雑な構造を有し、その構造は、バイキュービック補間プロセッサ、インデックスジェネレータ及び回転制御論理装置等を含む必要がある。このシステムの出力は、回転したサイズ変更された形式の入力画像であるが、比較的高価な補間、インデックス及び制御論理装置を必要とする。
【0008】
これら上記の方法は、各自の画像処理を行うために、比較的高度な演算及びそれに付随する負担を必要とする。
【0009】
開示される発明の課題は、演算負担の軽い効率的な画像処理を行う方法及び装置を提供することである。
【課題を解決するための手段】
【0010】
開示される発明によるディジタル画像処理装置は、
画像パッチの(x,y)画素座標に基づいて、入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチに適用されるフィルタエンジンモジュールと
を有するディジタル画像処理装置である。
【図面の簡単な説明】
【0011】
【図1A】光学系の変調伝達関数(MTF)特性を示す図。
【図1B】強いコマ収差がある光学系のMTF特性を示す図。
【図2A】FIRフィルタリングプロセスに基づく空間依存回転の一例を示す図。
【図2B】2次元有限インパルス応答(FIR)フィルタバンクに基づく空間依存回転のアーキテクチャ例を示す図。
【図2C】2次元FIRフィルタバンクに基づく空間依存回転のアーキテクチャ例を示す図。
【図3A】回転する入力画像データの回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す図。
【図3B】回転する入力画像データの3ビット回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す図。
【図4】マルチプレクサを利用するフィールドプログラマブルゲートアレイ(FPGA)回転インデックスマッピング構造の一例を示す図。
【図5A】8つの扇状タイルとともに処理される画像の分割例を示す図。
【図5B】4つの放射状タイル及び8つの扇状タイルとともに処理される画像の分割例を示す図。
【図6】FIRフィルタバンクアーキテクチャに基づく空間依存回転用の制御論理装置例を示す図。
【図7】2次元FIRフィルタバンクに基づくシリアル空間依存回転のアーキテクチャ例を示す図。
【図8】コンピュータシステムのブロック図。
【発明を実施するための形態】
【0012】
複雑でなく演算リソースが少なくて済む有限インパルス応答(FIR)フィルタバンクアーキテクチャのための方法及び装置が説明される。一実施例におけるディジタル画像処理システムは、画像パッチの(x,y)画素座標に基づいて、回転角インデックスを決定し、入力画像パッチの回転を制御するインデックスマッピングモジュールを含む。ディジタル画像処理システムは、回転角インデックスに基づいて、入力画像パッチを回転させる回転モジュールも含む。一実施例におけるディジタル画像処理システムは、回転後の入力パッチ画像に適用されるフィルタエンジンモジュールをさらに含む。
【0013】
本発明は、様々な実施例に関する以下の詳細な説明及び添付図面によりさらに明らかになるであろう。しかしながら詳細な説明及び添付図面は本発明を特定の実施例に限定するものではなく、実施例は説明の便宜上の一例にすぎない。
【実施例1】
【0014】
複雑でなく演算リソースが少なくて済む有限インパルス応答(FIR)フィルタバンクアーキテクチャのための方法及び装置が説明される。一実施例におけるディジタル画像処理システムは、画像パッチの(x,y)画素座標に基づいて、回転角インデックスを決定し、入力画像パッチの回転を制御するインデックスマッピングモジュールを含む。ディジタル画像処理システムは、回転角インデックスに基づいて、入力画像パッチを回転させる回転モジュールも含む。一実施例におけるディジタル画像処理システムは、回転後の入力パッチ画像に適用されるフィルタエンジンモジュールをさらに含む。
【0015】
以下の説明において、本発明の説明をさらに完全にするため、具体的な数値例が説明される。しかしながら、本発明はそのような具体的詳細によらずに実現されてもよいことは明らかであろう。また、周知の構造及び装置は、本発明を曖昧にしてしまうことを避けるため、詳細には説明されず、ブロック図形式で示される。
【0016】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現で与えられる。これらのアルゴリズムの説明及び表現は、データ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
【0017】
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な(電子的な)量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
【0018】
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
【0019】
本明細書に示されるアルゴリズム及びディスプレイは、何らかの特定のコンピュータ又は他の装置に固有に関連するものではない。様々な汎用システムが、本願による教示にしたがってプログラムとともに使用されてもよいし、あるいは、必要な方法ステップを実行する際にさらに特化した装置を構築することが有益であるかもしれない。それら様々なシステムに必要な構造は以下の説明から明らかになるであろう。さらに、本発明は何らかの特定のプログラミング言語に特化して説明されていない。本願で説明される発明の教示内容を実現するために様々なプログラミング言語を使用できることは明らかであろう。
【0020】
マシン読取可能な媒体は、マシン(例えば、コンピュータ)が読取可能な形式で情報を格納及び送信する如何なる手段を含んでもよい。例えば、マシン読取可能な媒体は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリ装置等を含む。
【0021】
図1A及び1Bは、ある画像に対する異なる光学系の変調伝達関数(MTF)特性を示す。MTFは、光学系が対象の画像をどの程度不鮮明にするかを示す。図1A及び1Bは、異なるMTF特性を有する2つの光学系の例を示す。図1Aは、通常の光学系のMTF110を示し、光学系により画像がどのようにして不鮮明にされるかを示す。特に、この光学収差は、回転対称でありかつ空間的に不変である。
【0022】
しかしながら、図1Bは、指向性(配向性)収差特性を示す光学系のMTF120を示す。MTF120は、角度方向に沿う画像領域の様々な場所に応じて、各方向について指向性を示している。すなわち、この光学収差に起因して、MTF120は、回転対称でなくかつ空間的に不変ではない。
【0023】
一実施例における図1BのMTFは、強いコマ収差を有する。さらに、コマ収差MTFは、一貫した予測可能な指向性及び空間非一定収差特性を示す。一実施例において、各方向は、画像領域の角度方向に沿う異なる場所に対応する。一実施例において、この予測可能な反復的な指向性収差特性は、上記のエンドトゥエンドの設計された電子光学画像処理システムに固有である。しかしながら、他の光学系も指向性収差特性を示し、上記の方法及び装置による恩恵を等しく受ける。
【0024】
図1Bは1つの画像について12個のタイルを示し、各々が関連する方向に変化する収差を有しているが、光学系は幾つのタイルに分割されてもよい。さらに、図1Bに示される光学系のMTF特性は予測可能であるので、後述するように、その予測可能な収差特性に基づいて、特殊な最適なフィルタアーキテクチャが設計されてもよい。予測可能な収差特性は、しばしば、回転対称な光学レンズ要素を用いて得られる。
【0025】
図2Aは、FIRフィルタリングプロセスに基づく空間依存回転(space−varying rotation)の一例を示す。図2Aの例は、FIRフィルタリングプロセスに基づく空間依存回転の上位概念的説明を与える。個々の要素については、後に詳述される。
【0026】
一実施例において、本シーケンスは、入力画像202によるラスタスキャニングを含む。入力画像202内の画素(ピクセル)全てについて、2つの制御情報(回転角インデックス及び半径インデックス)が算出される。
一実施例において、回転角インデックスは、回転モジュール208により処理される入力画素の回りに、小さな画像パッチ204を回転させる量を制御するのに使用される。画像パッチ210を回転させた後、FIRフィルタエンジン212におけるFIRフィルタ又は一群のFIRフィルタ(すなわち、フィルタバンク)が、入力画像パッチ210に適用される。一実施例において、半径インデックスを使用して線形重み係数(linear weighting coefficient)を算出/制御し、線形重み係数は212におけるフィルタ群からの出力を結合するのに使用される。結合後の出力は出力画像216に保存される。
【0027】
図2Aに示されるFIRフィルタリングプロセスに基づく空間依存回転は、様々なコンピュータアーキテクチャにより実現されてよい。一実施例において、プロセス(処理)は、汎用コンピュータアーキテクチャ(CPU)又はグラフィックプロセッサ(GPU)により行われてもよい。別の実施例におけるプロセスは、ディジタル信号プロセッサのような特殊なコンピュータ装置により行われてもよい。さらに別の実施例におけるプロセスは、FIRフィルタリングシステムに基づく空間依存回転を行うように設計された特定用途ハードウェア(例えば、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途集積回路(ASIC)等)を用いて行われてもよい。
【0028】
一実施例において、入力画像の入力パッチ204のような入力パッチ各々について、空間依存回転モジュール208は、画像パッチを回転させる。一実施例の場合、入力画像は収差のある光学系から取得される。一実施例の場合、入力画像202は、一貫した予測可能な向き及び空間非一定収差特性(図1Bを参照しながら説明したような特性)を示す。一実施例において、捕捉した画像座標(例えば、画素)を光学サブシステムの座標系に関連付けることは、光学サブシステムを検査することで又は光学設計に基づいて行われる。以下の説明において、光学軸は、センサの中心に対応し、すなわち捕捉画像の中心に対応するものとする。しかしながら、このことは必須ではなく、光学軸は必ずしもセンサの中心に整合していなくてもよい。
【0029】
一実施例において、回転角インデックスマッピングモジュール206は、空間依存回転モジュール208が画像パッチ204を回転させる角度を決める。一実施例において、回転角インデックスは、点(x,y)の線形関数群とともに符号(サイン)検出を用いることで、回転角インデックスマッピングモジュール206により決定される。符号(サイン)検出の例については後述する。符号検出の結果により、空間依存回転モジュール208が入力パッチを回転させることが可能な全ての可能な回転角θ1...θMの内のθiが決定される。一実施例では、FIRフィルタエンジンモジュール212の最適なフィルタ係数を生成するため、ある有限数の回転角が使用される。一実施例では、FIRフィルタエンジンモジュール212が使用するフィルタ係数は、回転角に基づいている(すなわち、FIRフィルタ係数は、ある角度について最適化されている。)。
【0030】
一実施例では、半径インデックスマッピングモジュール214は、画像の中心を基準点として、現在の入力画素の半径方向の位置を決定する。一実施例では、その半径(半径方向の距離)は、フィルタバンクの出力を線形結合する際の1つ以上のウェイトを決める場合に使用される。一実施例では、ターゲットの光学系の特性にしたがうことに加えて、ターゲットのディジタル画像処理プロセスの出力画像品質特性の条件にもしたがって、有限数の半径インデックスが決定される。
【0031】
一実施例では、空間依存回転モジュール208は、低コストかつ高効率のハードウェアアーキテクチャであるマルチプレクサを用いたアーキテクチャである。さらに、一実施例では、空間依存回転モジュール208は、画像タイル様々な回転角θMについてスケーラブルなハードウェアアーキテクチャである(例えば、入力画像を、8個、12個、16個等のタイルに分割可能である。)。
【0032】
空間依存回転モジュール208は、画像パッチ204を角度θiだけ回し、回転したパッチ210を生成する。回転したパッチ210はFIRフィルタ212に与えられる。一実施例では、FIRフィルタ212は、特定の角度θiについて最適化されたフィルタ係数を適用する。回転及びフィルタリングされたパッチは、出力画像216として出力される。一実施例では、完全な出力画像216を得るために、入力画像の全てのパッチが結合される。
【0033】
図2Bは、2次元有限インパルス応答(FIR)フィルタバンクに基づく空間依存回転のアーキテクチャ例を示す。一実施例において、入力ウィンドウバッファ222は、処理される現在の画素を中心とする入力画像のウィンドウにおける画素を受信する。一実施例において、入力ウィンドウバッファ222により受信されるデータは、ラインバッファ1ないしNのようなラインバッファ220から受信される。一実施例において、画素は、図2Aに関して上述したような入力画像からのパッチの画素に対応する。
【0034】
一実施例において、空間依存回転モジュール224は、2D入力ウィンドウをある角度だけ回転させる。一実施例において、その回転は、低コストで効率的なハードウェア構造である2:1マルチプレクサにより実行される。空間依存回転モジュール224の具体例については、図3及び図4を参照しながら後述される。空間依存回転モジュール224が行う入力画像パッチの回転は、現在の画素に対する回転角インデックスにより決定される。回転した入力ウィンドウはFIRフィルタバンク232により処理される。一実施例において、FIRフィルタバンク232は、有限個の組のFIRフィルタから構成され、FIRフィルタは、一群のウェイトαi(ρ)を用いて線形結合される出力を有し、ρは現在の画素の半径インデックスである。一実施例において、フィルタバンク232のFIRフィルタ各々は、積和演算法(MAC:Multiply−Accumulate)又はシフトアッド法(Shift−and−Add)のような既存の1次元(1D)FIRフィルタアーキテクチャを利用して実現可能である。別の実施例では、FIRフィルタ係数は、MAC又はシフトアッド構造を利用して求められてもよい。別の実施例において、FIRフィルタは、特定用途のDSPチップにより提供されるFIRフィルタにとって局所的な制御論理装置及びアキュムレータを利用して、シリアル形式で実現されてもよい。
【0035】
一実施例では、ウェイト選択制御モジュール230は、極座標インデックスマッピングモジュール228から受信した現在の半径インデックスにしたがって、様々なウェイト群を選択する。回転角インデックス及び半径インデックス双方は、極座標インデックスマッピングもユール228により、現在の画素座標(x,y)から算出される。一実施例において、現在の画素座標は、入力座標生成モジュール226により生成される。
【0036】
図2Cは、2次元FIRフィルタバンクに基づく空間依存回転のアーキテクチャ例を示す。図2Cに示されるフィルタバンクにより、論理制御レベルの詳細な一例が示されている。図2Cは、上記の図2Bのアーキテクチャ構成に基づくハードウェア例を示す。
【0037】
一実施例において、2次元回転FIRフィルタのアーキテクチャは、ラインバッファ240を含む。一実施例において、ラインバッファ240は、同期型シリアルインシリアルアウトシフトレジスタを利用する。別の実施例では、ラインバッファ240は、アドレスメモリに対するカウンタを備えた専用RAM(例えば、XilinxFPGAにおけるブロックRAM)を使用する。さらに、一実施例では、RAMはリードファーストRAM(read fast RAM)である。
【0038】
一実施例では、ラインバッファ240はフレームバッファ242を含む。一実施例では、フレームバッファ242は、Fh×Fwに等しい画素の仮想的に定義されたフレームであり、Fh及びFwはそれぞれフレームの高さ及び幅である。これらは、√2max(fh1,fh2,...,fhp,fw1,fw2,...,fwp)として決定され、ここで、fhi及びfwiは、pフィルタバンク248におけるi番目のフィルタに対する高さ及び幅をそれぞれ表す。一実施例では、Fh及びFwに対するビット数は、それらが回転部により処理される際に一度に選択される。そのビット数は、2次元FIRフィルタによりフィルタリングされる画素に対する関連ビットとともに、pフィルタバンク248に与えられる。
【0039】
一実施例では、プレバッファ(前段バッファ)244がラインバッファ240から画素データを受信する。一実施例において、プレバッファ244はパラレルインパラレルアウトレジスタを含む。さらに、一実施例では、パラレルインパラレルアウトレジスタは、ルックアップテーブル(LUT)又は他の等価な要素でもよい。
【0040】
画素データは、その後にプレバッファ244から回転論理装置246に与えられる。一実施例において、回転論理装置は一群のマルチプレクサを含み、マルチプレクサは、群中のマルチプレクサ同士の間で所定の接続関係を有する。さらに、その所定の接続関係は、仮想的に規定されたフレーム242から、フィルタリングする画素の選択を可能にする。回転論理装置246に関し、所定の接続関係を有するマルチプレクサ群の一例は、図4を参照しながら後述される。さらに、回転論理装置246は、接続関係により、pフィルタバンク248が処理する画像データを前もって回転させる(pre−rotate)。
【0041】
一実施例において、pフィルタバンク248は、回転した画像データを回転論理装置246から受信する。一実施例において、pフィルタバンク248は、フィルタ250−1ないしフィルタ250−pのような一群のフィルタから構成される。フィルタ250は様々なタイプのフィルタとすることができる。例えば、フィルタ250は、MAC、ディストリビュートアリスメティック(DA:Distributed Arithmetic)又はシフトアッド方式のフィルタでもよい。他のFIRフィルタが本願に使用されてもよい。
【0042】
一実施例において、制御論理装置254は、画素データがフィルタリングされる前に回転論理装置246が所与の画素に適用する回転を決定する。さらに、制御論理装置254は、pフィルタバンク248のフィルタリングされた出力にウェイトを割り当て、それらのウェイトをフィルタウェイト部252に与える。一実施例において、ウェイトは、画素が属する半径方向のタイル(半径方向距離)に基づいてリアルタイムで割り当てられる。
【0043】
一実施例では、pフィルタバンク248によりフィルタリングされたデータは、その後にフィルタウェイト部252により重み付けされる。一実施例では、フィルタウェイト部252は、pフィルタバンク248の出力に、所定のウェイトにより重み付けを行う。一実施例において、ウェイトは、処理される現在の画素が所属している半径タイル(半径方向距離)に基づいて、制御論理装置254により決定される。半径タイル及び画素の重み付けについては後述される。そして、フィルタウェイト部252は、フィルタリングされた重み付けされた画素データを最終的なシステム出力として出力する。
【0044】
図3Aは、回転する入力画像データの回転制御インデックスを用いる空間依存回転のアーキテクチャ例を示す。図3Aは、回転インデックスマッピング構造を示す。本構造は3段階(ステージ)のバイナリマルチプレクサから構成され(すなわち、バイナリマルチプレクサ310、320、330)、各段階の出力は、ゼロ度入力と、関連する回転角による回転値との間で切り替わる。一実施例において、各マルチプレクサは、対応する回転角の制御ビット入力により制御される。一実施例において、図3Aに示されている3段階の回転インデックスマッピング構造は、3ビット制御バイトに応じて、0、45、90、135、180、225、270及び315度のような8つの回転角のために使用可能である。
【0045】
図3Bは、例えば、画像データを135度回転させる場合の3ビット回転制御インデックスを示す。回転角生成部が生成した回転制御インデックスは2進法で110であり、MSBからLSBに至るビット各々が、45度、90度及び180度用のマルチプレクサをそれぞれ制御する。この場合において、45度及び90度用のマルチプレクサは、マルチプレクサ各自に入力されている1ビットによりイネーブルにされている(活性化されている)。さらに、180度用のマルチプレクサは、0ビット入力によりディセーブルにされている。その結果は、45度及び90度のマルチプレクサ双方による画像データの回転となり、出力において135度の回転をもたらす。8つの回転角(0、45、90、135、180、225、270及び315度)は、バイナリマルチプレクサ各々を選択的に動作させることで同様に生成可能である。
【0046】
一実施例において、マルチプレクサ入力の接続関係は、最近接法、最近傍法又は最短距離法(nearest neighbor method)を用いて生成される。一実施例において、空間依存回転構造は、画像回転に関する最近接補間アルゴリズムに基づく。フィルタリング結果の補間誤差の影響は、回転角を変化させる。一実施例では、回転構造はローカル補間(すなわち、バイリニア、バイキュービック等)を行い、より大きなパッチに対する回転画像パッチの品質を改善する。
【0047】
図4は、マルチプレクサを利用するフィールドプログラマブルゲートアレイ(FPGA)回転インデックスマッピング構造の一例を示す。一実施例において、回転インデックスマッピング構造は、3ステージ(段階)のマルチプレクサを使用する。一実施例において、マルチプレクサの3段階は、45、90及び180度の回転に対応する。さらに、回転インデックスマッピング構造は25個の出力を有し、これらは5×5の2Dフィルタカーネルサイズに対応する。図示の回転角インデックスマッピング構造は、5×5の2Dフィルタカーネルとして機能するが、他のサイズのフィルタカーネルが、上記の趣旨に合うアーキテクチャとともに処理されてもよい。一実施例において、回転インデックスマッピング部は2D入力ウィンドウバッファを含み、2D入力ウィンドウバッファは7×7のサイズのレジスタアレイから構成され、7は近似的にフィルタカーネルサイズ5の√2倍である。
【0048】
5×5の2Dフィルタカーネルにおいて動作する回転インデックスマッピング構造が図4に示されているが、3段階の回転により、他の組み合わせも可能である。回転角M個の有限集合θ={θ1,θ2,...,θM}、2N2個の入力画素及びN2個の出力画素の場合、回転インデックスマッピング構造の出力各々に必要な2:1マルチプレクサの最小数は、O(log2M)である。例えば、上記の図4の場合、8つの角度であるので、3段階の2:1マルチプレクサが、回転インデックスマッピング構造の各出力に使用される。同様な構造がASICのような他のハードウェアシステムに適用されてもよい。
【0049】
図5Aは、8つの扇状タイル(angular tile)により処理される画像の分割例を示す。図5Bは、4つの放射状タイル及び8つの扇状タイルにより処理される画像の分割例を示す。タイル各々は入力画像の内の45度をカバーし、各タイルに対応するインデックスは0ないし7に及ぶ。したがって、一実施例の場合、3つの制御ビット(000−111の2進値)を利用して、図3A及び3Bに示される3段階のマルチプレクサに対する回転角インデックスを生成できる。
【0050】
回転角インデックスのマッピングは、入力画像の(x,y)座標対各々について、逆正接(arctan)の値を算出することで行われる。別の実施例の場合、x及びyの線形関数群の符号検出を利用することで、低コストの回転角インデックスマッピング関数が使用可能である。以下に、擬似コードによる3つの制御ビットの生成例を示す。
【数1】

【0051】
一実施例において、回転角インデックスマッピングの符号検出法は、回転する入力画像中の扇形タイルの総数に応じて異なる。8、12及び16個の3種類のタイルに対する回転角インデックスマッピングの符号検出例を以下に示す。
【0052】
8個の扇形タイルの場合、各タイルは45度である:
【数2】

【0053】
12個の扇形タイルの場合、各タイルは30度である:
【数3】

【0054】
16個の扇形タイルの場合、各タイルは22.5度である:
【数4】

【0055】
上記の例は、様々な例の符号検出に使用されるx及びyの線形関数を含む。(x,y)座標の原点は、入力画像の中心に決められていることに留意を要する。12個の扇形タイル(Tile)を使用する空間依存回転インデックスマッピングの場合において、以下の表1は、線形関数の符号ビット及び座標に基づく選択信号の値を示す。
【0056】
表1
【表1】

【0057】
一実施例において、上述の線形関数の使用及び選択は、ハードウェアを簡潔にすることを促す。一実施例において、2の倍数がx及びyに対するスケーリングの制約として使用され、逆正接(arctan)関数を近似する(そうでなかった場合の計算は、かなりのハードウェア部分を占める。)。
【0058】
図6は、FIRフィルタバンクアーキテクチャに基づく空間依存回転用の制御論理装置例を示す。一実施例において、コントローラ654は、上記の半径タイルに基づいて、マルチプレクサ回転部の選択信号と、フィルタバンクに割り当てられるウェイトとを生成する。図6に示されているコントローラ654は、図2Cの制御論理装置254のさらなる詳細を示す。
【0059】
画素は、画像の左上隅から始まり、ラスタ形式で到来する。計算を簡単にするため、座標軸は画像の中心に移される。一実施例において、カウンタ602は座標軸の移行(シフト)を可能にする。一実施例において、カウンタ602は比較器604によりリセットされ、比較器はx座標値及びy座標値を比較する。
【0060】
例えば、画像が640×480画素により構成される場合、X−CoordCNTR及びY−CoordCNTRとして示されているカウンタ602は、−320及び240にそれぞれ設定される。X及びYカウンタのリセット値−320及び240のリセット値は、(0,0)の中心座標とともに640×480画素の画像境界により決定される。一実施例において、カウンタは10ビットカウンタであり、2の補数形式で数を数える。−320及び240にカウンタが設定される上記の例の場合、これらのカウンタは111011000000及び000011110000の値に初期化され、これらは2の補数形式における−320及び240に対応する。したがって、一実施例において、新たな画素データが分析される際に、カウントを進める場合、X座標カウンタは1だけ増やされ、Y座標カウンタは1だけ減らされる。
【0061】
一実施例において、カウンタ602はX及びY座標値を出力し、X及びY座標値は、マルチプレクサの回転ネットワーク用の選択信号を決定するのに使用されるだけでなく、フィルタバンクのウェイトを決定することにも使用される。
【0062】
一実施例において、線形関数ネットワーク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により次の表に計算される。
【数5】

ここで、「〜」はインバース処理(逆演算)を示し、「{}」はビット連結処理を示し、X(i)は、Nビット座標ストリング(文字列)Xにおけるi番目のビットを示す。
【0063】
一実施例において、関数は、符号拡張シフト(sign extended shifting)に基づく。さらに、符号拡張は、シフト操作を行いつつ、X及びYの符号ビットを拡張することで行われる。否定を行うため、ビット反転(bit flip)を行い、定数1を加える。これは、その数の2の補数である。
【0064】
一実施例において、回転インデックス608は、線形関数ネットワーク606の結果を受信する。一実施例において、回転インデックスブロック608は、マルチプレクサ612及び最上位ビット(MSB)再編成ネット610を含む。上述したように、線形関数の出力は、画素の角度位置を特定するために使用される。一実施例の場合、角度の対応関係は、線形関数ブロックのMSBのみを使用して判明する。なぜなら、線形関数のMSB出力は、2の補数における符号ビットだからである。
【0065】
一実施例において、回転インデックス608用のマルチプレクサ612は、FPGAによる組み込みマルチプレクサである。例えば、マルチプレクサ612は、XILINX(登録商標)FPGAに組み込まれたBUFGMUXでもよいし、ASIC、CPU、GPU、DSPその他の何らかのコンピュータプラットフォームにおいて同様に設計されてもよい。一実施例において、マルチプレクサ612は、入力として与えられた選択信号の中から選択を行う。マルチプレクサ612に与えられる入力(例えば、選択信号)のサイズは、光学系において可能な回転角(例えば、8、12又は16個の扇状タイル等)により異なる。さらに、マルチプレクサ数も可能な回転角に応じて可変である。例えば、8つの扇状タイルの場合、45、90及び180度の回転角を選択するために3つのマルチプレクサが使用される。12及び16個の扇状タイルの場合、30、60、120、240、22.5、45、90及び180度の回転角をそれぞれ選択するために、4つのマルチプレクサが使用される。マルチプレクサに対する選択入力は、606の出力及びX−Y座標からの符号ビットである。一実施例において、マルチプレクサの対応づけ(マッピング)は、上記の表1と同様な表を用いて行われる。
【0066】
一実施例において、コントローラ654は二乗半径(ρ2)生成部620をさらに含む。一実施例において、座標の総和は二乗半径値ρ2=X2+Y2を出力する。一実施例において、二乗半径生成部620は、ハードウェア乗算部を用いて構築される。
【0067】
一実施例において、コントローラ654は、ウェイト選択部及び半径タイル割当部630を含む。コントローラ654は、代替的なウェイト選択部及び半径タイル割当部640を含んでもよい。ウェイト選択部及び半径タイル割当部630及び640の各々は、極座標形式の割り当て及びウェイト選択を別様に実行する。
【0068】
ウェイト選択部及び半径タイル割当部630は、640×480の画像フレームサイズを意図した例として示されている。画像フレームサイズは例示的に示されているにすぎず、ウェイト選択部及び半径タイル割当部630は、上記の説明に合致する様々な画像フレームサイズに合わせて構築可能である。640×480のフレームサイズの場合、最大半径は、400=√(2402+3202)である。画像フレームにおいて10個のタイル量子化が行われ、9個の閾値が、402、802、1202、1602、2002、2402、2802、3202及び3602であると仮定する。仮に、所与の画素の半径が402未満の値を持っていた場合、それはタイル1の画像フレーム内にあり、タイル1は予め割り当てられたウェイトを有する。一実施例の場合、ウェイトは、上記の多項式関数を用いて予め決められている。一実施例において、所与の画素の半径が402及び802の間にあった場合、その画素はタイル2に属する、等々である。
【0069】
一実施例において、半径タイル割り当てを行うため、(例えば、半径方向の解像度として)10まで数えるカウンタ632とアキュムレータ634とが使用され、アキュムレータの出力はρ2の値と比較される。アキュムレータ634は1600(最小タイル閾値)まで蓄積し、比較器620の出力は、タイルが決定された場合、カウンタ632をディセーブルにする。現在のρ2が閾値より小さかった場合、それはカウンタが現在決定しているタイル数に属する。一実施例において、画素クロック及びカウンタクロックがコントローラ654により使用される。カウンタ632の出力(すなわち、極座標における数)はマルチプレクサに対する選択入力として使用され、マルチプレクサはフィルタバンクに割り当てるウェイトを提供する。ウェイトが8ビットの場合、マルチプレクサ入力各々は16ビットである。
【0070】
一実施例において、ウェイト選択部及び半径タイル割当部640は、ウェイト選択及び半径タイル割り当ての処理を並列化して行う。この例の場合、ρ2が一群の比較器642に直接的に送られる。一実施例において、比較器642はそれぞれ10ビットであり、閾値と比較される(例えば、640×480の画像サイズの場合、1600ステップにより行われる)。一実施例において、比較器642の出力はマルチプレクサに対する選択信号として使用され、マルチプレクサの入力は、所与の半径タイルに対応するウェイト値を受けている。
【0071】
一実施例において、比較器642及び比較器604は、2ビット比較器のツリーとして構築される。比較器がツリー形式で構築される場合、比較器のデータ処理速度は最速になる。2ビット比較器のツリー形式による比較器642及び比較器604の一例が、図650に示されている。
【0072】
一実施例において、図2Cで言及したように、専用のRAM(例えば、XILINX(登録商標)FPGAにおけるブロックRAM)がラインバッファに使用され、ルックアップテーブル(LUT)又はそれと等価な論理装置若しくは回路要素が、回転マルチプレクサネットワーク、プレバッファ及び制御論理装置に使用される。別の例では、ASIC、CPU、GPU、DSP又は他の演算要素が実現の際に使用されても良い。一実施例において、FIRフィルタは、5×5の2つのMACフィルタバンクに対して、50個のマルチプレクサ及び49個の加算器を使用する。代替例は、より優れたハードウェア効率を備えたディスリビュートアリスメティック(DA)フィルタ又はアッドアンドシフトフィルタを使用してもよい。
【0073】
図7は、2次元FIRフィルタバンクに基づくシリアル空間依存回転のアーキテクチャ例を示す。
【0074】
例示的に640×480のフレーム702が示されている。フィルタ処理される画素は、画素706−1であり、一実施例において、画素706−1に関する図7のシリアルな計算は、仮想フレーム内の最後の画素に至るまで完了しないものと仮定する。一実施例において、フィルタ処理の計算は、画素704が到着すると直ぐに開始される。一実施例において、画素704は、フレーム702(すなわち、仮想フレーム)内の画素に対するフィルタリング処理の部分和の計算に使用される。
【0075】
図7において、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は、上述の図6における制御論理装置とどうようなアーキテクチャを有する。
【0076】
一実施例において、フィルタトラッカ716は、処理対象の水平ラインにおける現在の画素について完了した2Dフィルタの増加数を追跡する。一実施例において、フィルタトラッカはバッファである。さらに、フィルタトラッカ716の新たなメモリは、フレーム702内の新たな水平ラインの画素各々について裏付けられる。
【0077】
一実施例において、出力バッファ718は、現在到着している画素に対するフィルタ増加の計算を蓄積する。一実施例において、これは、新たな画素が到着した場合に(例えば、画素704が到着したような場合に)、水平ライン(行)内の全ての画素について算出される。一実施例において、出力バッファ周波入力バッファ数に等しい。例えば、7×7フィルタの場合、画素の計算を終了させるため、近辺の49個の画素が到着する必要がある。
【0078】
一実施例において、フィルタリング処理に必要な画素(例えば、上記の例における画素704)が到着すると直ぐに、出力バッファの内容は蓄積される。一実施例において、現在の画素に対して保存された計算結果は、次のラインの画素のフィルタリング処理を近似するのに使用可能である。一実施例において、この方法は、垂直ライン画素相関が高い画像の場合に有用である。したがって、そのようなアプリケーションの場合、近似の誤差は非常に高いわけではなく、小数の出力バッファが利用される。
【0079】
一実施例において、インデックスコア720は画素データに関するシリアルフィルタリング処理を実行する。一実施例において、インデックスコア720はフレームスキャンカウンタ722を含む。7×7フレームの場合、インデックスコア720は、1画素クロック周波数につき7回動作し、7は、max(Fh,Fw)(Fh及びFwの内の大きい方)である。なぜなら、現在到来している画素(例えば、画素704)は、例示的な7×7フレームの7フレームによりカバーされる水平に隣接する画素により使用されるからである。
【0080】
図7に示されるアーキテクチャを、以下の例とともにさらに説明する。処理する画素のラインは、画像フレーム702内に示されている画素706−1ないし706−iのラインであり、到来した現在の画素が画素704であると仮定する。さらに、画素704は、45度回転マッピングの場合に、現在のフレームに必要な最初の画素である。回転割当バッファ712(バッファの入力は、計算の前に入力される)は、CoordMap708キューヘッドを選択し、これはフィルタリング処理で待機している次の座標である。隣接する画素の場合、待機している座標は、キューの先頭に隣接する座標である。例えば、(45度回転の場合に)処理対象の第1画素について待機している最初の座標が4であった場合、第2画素について待機している座標は、第3に対する、及び同じ45度回転の各画素に対する5、6である。CoordMap708キューヘッドの先頭の要素は、7つの水平に隣接する画素により使用され、一実施例では、カウンタが動作し、CoordMap708バッファの先頭における座標値を増やす。座標値は、比較器724により、到来した画素の現在のX座標値と比較される。合致していた場合、フィルタ係数がCoefMap710バッファスタックから選択され、現在の画素値(すなわち、x[n])に乗算される。一実施例において、これらの係数はフィルタバンク全体に対するものであり、その場合、CoeffMap710バッファスタックは、図示されているものより多くの入力を含む。これは、フィルタリング処理の部分的な重み付け加算の計算を可能にし、処理対象の現在の水平ライン内の全ての画素について、画素クロックサイクル毎に出力バッファ718に蓄積される。こうして、現在到来している画素、例えば画素704に関して、それが到来すると直ぐにフィルタリング処理が完了し、多くの入力バッファの要請を排除できる。
【0081】
図8は、上記の処理の1つ以上を実行するコンピュータシステムのブロック図である。一実施例において、コンピュータシステムの1つ以上の要素は、光学画像処理システムに統合されてもよい。別の実施例において、コンピュータシステムは光学画像処理システムを制御してもよい。図8を参照するに、コンピュータシステム800は、例示的なクライアント又はサーバコンピュータシステムを有する。コンピュータシステム800は、情報を通信する通信手段又はバス811と、バス811に結合された情報を処理するプロセッサ812とを有する。プロセッサ812はマイクロプロセッサを含み、マイクロプロセッサは、例えばペンティアム(登録商標)等のようなマイクロプロセッサであるが、これに限定されない。
【0082】
システム800は、ランダムアクセスメモリ(RAM)又は他のダイナミックストレージデバイス804(メインメモリと言及される)を含み、これらは、バス811に結合され、情報及びプロセッサ812が実行する命令を格納する。メインメモリ804は、プロセッサ812による命令の実行中に、一時的な変数又は他の中間的な情報を保存するためにも使用される。
【0083】
コンピュータシステム800はリードオンリメモリ(ROM)及び/又は他の静的ストレージデバイス806を含み、これらはバス811に結合され、プロセッサ812のための命令及び静的情報を保存し、コンピュータシステム800は、磁気ディスク又は光ディスクのようなデータストレージデバイス807及び関連するディスクドライブを有する。データ素折れー時デバイス807は、バス811に結合され、情報及び命令を保存する。
【0084】
コンピュータシステム800は、陰極線管(CRT)又は液晶ディスプレイ(LCD)のような表示装置821に結合され、これらはバス811に結合され、情報をコンピュータユーザに表示する。英数字及び他のキーを含む英数字入力装置822は、バス811に結合され、情報及びコマンド選択内容をプロセッサ812に通知する。追加的なユーザ入力装置は、マウス、トラックボール、トラックパッド、スタイラス又はカーソル指示キーのようなカーソル制御部823であり、カーソル制御部は、バス811に結合され、方向情報及び命令選択内容をプロセッサに通知し、ディスプレイ821におけるカーソルの動きを制御する。
【0085】
バス811に結合されている他の装置として、ハードコピー装置824があり、これは、命令、データ又は他の情報を、紙、フィルム又は同様なタイプの媒体に印刷するのに使用される。さらに、スピーカ及び/又はマイクロフォンのような音声記録及び再生装置が選択的にバス811に結合され、コンピュータシステム800に対するインターフェース機能を果たす。バス811に結合される他の装置として、有線/無線通信部825があり、これは電話又は携帯装置と通信を行う。
【0086】
システム800及び関連するハードウェアの要素の全部又は任意の一部が本発明において使用されてよいことに留意を要する。しかしながら、他の形態のコンピュータシステムが本装置の全部又は一部を含んでもよいことが認められるであろう。
【0087】
本発明に関する多くの代替例及び変形例が、上記の説明を理解した当業者にとって疑う余地無く明らかになっているであろう。説明した特定の実施例は如何なる方法によっても限定的に解釈されることは意図されていない。したがって、様々な実施例の詳細が、特許請求の範囲を限定するように解釈されてはならず、特許請求の範囲における請求項は発明に必須の特徴のみを列挙している。
【符号の説明】
【0088】
202 入力画像
204 入力パッチ
206 回転角インデックスマッピングモジュール
208 空間依存回転モジュール
210 回転したパッチ
212 FIRフィルタエンジン
214 半径インデックスマッピングモジュール
216 出力画像
220 入力画像 ラインバッファN
220 ラインバッファN-1
220 ラインバッファ2
220 ラインバッファ
222 入力ウィンドウバッファ
224 空間依存回転モジュール
226 入力座標生成モジュール
228 極座標インデックスマッピングモジュール
230 ウェイト選択制御部
240 ラインバッファ
242 読取フレーム N×M
244 プレバッファ
246 回転論理装置
248 pフィルタバンク
252 フィルタウェイト
254 制御論理装置
310 ゼロ/45度バイナリMUX
320 ゼロ/90度バイナリMUX
330 ゼロ/180度バイナリMUX
702 フレーム 画像
712 回転割当部
714 制御論理装置
716 フィルタトラッカ
718 出力バッファ
720 インデックスコア
722 フレームスキャン
804 メインメモリ
805 大容量ストレージメモリ
806 スタティックメモリ
811 バス
812 プロセッサ
821 ディスプレイ
822 キーボード
823 カーソル制御装置
824 ハードコピー装置
825 無線/電話インターフェース
【先行技術文献】
【特許文献】
【0089】
【特許文献1】米国特許第6,009,447号
【特許文献2】米国特許第6,801,674号

【特許請求の範囲】
【請求項1】
画像パッチの(x,y)画素座標に基づいて、入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチに適用されるフィルタエンジンモジュールと
を有するディジタル画像処理装置。
【請求項2】
前記フィルタエンジンモジュールが、有限個のフィルタ群を有し、
フィルタ各々の出力を結合し、フィルタリングされた出力画像を得る、請求項1記載のディジタル画像処理装置。
【請求項3】
前記フィルタ群の出力が、一群のウェイトを用いて線形結合される、請求項2記載のディジタル画像処理装置。
【請求項4】
前記一群のウェイトは、フィルタiに対してウェイトαi(ρ)を有し、ρはフィルタ処理される現在の画素の半径インデックスである、請求項3記載のディジタル画像処理装置。
【請求項5】
前記有限個のフィルタ群は、最適化された一定のフィルタ係数とともに構築されている、請求項2記載のディジタル画像処理装置。
【請求項6】
前記有限個のフィルタ群のフィルタ各々は、有限インパルス応答(FIR)フィルタである、請求項2記載のディジタル画像処理装置。
【請求項7】
前記有限個のフィルタ群中の1つ以上のFIRフィルタは、四角形の幾何学形状を有する、請求項6記載のディジタル画像処理装置。
【請求項8】
画像パッチの(x,y)画素座標に基づいて、入力画像パッチの回転を制御するための回転角インデックスを決定するインデックスマッピングモジュールと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させる回転モジュールと、
回転した入力画像パッチに適用されるフィルタエンジンモジュールと
を有し、前記回転モジュールは、
複数の一連のマルチプレクサ段をさらに有し、前記回転各インデックスに基づいて前記入力画像パッチを回転させる、ディジタル画像処理装置。
【請求項9】
前記回転モジュールは、前記入力画像パッチを45度、90度及び180度の角度だけそれぞれ回転させる一連の3つのマルチプレクサ段を含み、前記一連の3つのマルチプレクサ段各々を選択的に使用することで、0度、45度、90度、135度、180度、225度、270度又は315度の角度だけ画像を回転させる、請求項8記載のディジタル画像処理装置。
【請求項10】
前記回転モジュールは、前記入力画像パッチを30度、60度、120度及び240度の角度だけそれぞれ回転させる一連の4つのマルチプレクサ段を含み、前記一連の4つのマルチプレクサ段各々を選択的に使用することで、0度、30度、60度、90度、120度、150度、180度、210度、240度、270度、300度又は330度の角度だけ画像を回転させる、請求項8記載のディジタル画像処理装置。
【請求項11】
前記回転モジュールは、前記入力画像パッチを22.5度、45度、90度及び180度の角度だけそれぞれ回転させる一連の4つのマルチプレクサ段を含み、前記一連の4つのマルチプレクサ段各々を選択的に使用することで、0度、22.5度、45度、67.5度、90度、112.5度、135度、157.5度、180度、202.5度、225度、247.5度、270度、292.5度、315度又は337.5度の角度だけ画像を回転させる、請求項8記載のディジタル画像処理装置。
【請求項12】
前記回転モジュールは、前記入力画像パッチのサイズに基づいて、O(log2M)のサイズにスケール変換可能であり、前記入力パッチは、θ={θ1,θ2,...,θM}のM個の角度だけ回転可能であり、前記入力パッチは√2×N×√2×N個の入力画素を有し、Nは、有限個のFIRフィルタ群の高さ及び幅の内の最大サイズである、請求項8記載のディジタル画像処理装置。
【請求項13】
前記マルチプレクサは、2:1マルチプレクサである、請求項8記載のディジタル画像処理装置。
【請求項14】
前記インデックスマッピングモジュールが、画像の中心点に対する入力パッチの(x,y)座標について逆正接の値を近似的に計算することで、前記回転角インデックスを決定する、請求項1記載のディジタル画像処理装置。
【請求項15】
前記インデックスマッピングモジュールが、画像の中心点に対する入力パッチの(X,Y)座標について、X及びYの一群の線形関数を用いて符号検出を行うことで、前記回転角インデックスを決定する、請求項1記載のディジタル画像処理装置。
【請求項16】
前記回転角インデックスは、一群の2進の制御値であり、各々がマルチプレクサ段に対応する、請求項1記載のディジタル画像処理装置。
【請求項17】
画像の中心を決める入力画素座標を用いて、現在の入力画素の位置に対する半径距離を決定する半径インデックスマッピングモジュールをさらに有する、請求項1記載のディジタル画像処理装置。
【請求項18】
前記半径距離を利用して、フィルタバンクの出力を線形結合する際の1つ以上のウェイトを決定する、請求項17記載のディジタル画像処理装置。
【請求項19】
入力画像パッチの回転を制御するための回転角インデックスを決定するステップと、
前記回転角インデックスに基づいて、前記入力画像パッチを回転させるステップと、
回転した入力画像パッチにフィルタリングを施すステップと
を有する方法。
【請求項20】
一連の複数のマルチプレクサ段を有するインデックスマッピング構造を利用して、前記回転角インデックスに基づいて、前記入力画像パッチが回転させられる、請求項19記載の方法。
【請求項21】
前記インデックスマッピング構造が、8つの回転角の内の1つを使用して、前記入力画像パッチを回転させる、請求項20記載の方法。
【請求項22】
前記入力画像パッチの回転が、最近接補間法に基づく、請求項19記載の方法。
【請求項23】
前記入力画像パッチの回転が、バイリニア補間に基づく、請求項19記載の方法。
【請求項24】
前記フィルタリングが、一群の一定のフィルタを適用することで行われ、該フィルタの出力は重み付け加算される、請求項19記載の方法。
【請求項25】
前記重み付け加算は、前記入力画像パッチに基づいて算出された線形重み付け係数に基づく、請求項24記載の方法。
【請求項26】
画像の中心点に対する入力パッチの(X,Y)座標について、X及びYの一群の線形関数を用いて符号検出を行うことで、前記回転角インデックスが決定される、請求項19記載の方法。

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図1A】
image rotate

【図1B】
image rotate


【公開番号】特開2011−3196(P2011−3196A)
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願番号】特願2010−139320(P2010−139320)
【出願日】平成22年6月18日(2010.6.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】