(57)【要約】      （修正有）【課題】レンズによってもたらされる画像の歪みを小さくする、又は除去する方法を提供する。【解決手段】画像の歪みを低減するために、レンズ系に関連する歪み情報を特定するステップと、前記歪み情報を格納するステップと、前記レンズ系を使用して撮影された画像であってキャプチャされた該画像を、前記歪み情報を参照して処理するステップと、前記キャプチャされた画像と比べてより小さい画像歪みを含む補正された画像を生成するステップとにより画像処理を行う。【選択図】図６
2009165106.tif 000002
【特許請求の範囲】
【請求項１】
画像の歪みを低減する方法であって、
レンズ系に関連する歪み情報を特定するステップと、
前記歪み情報を格納するステップと、
前記レンズ系を使用して撮影された画像であってキャプチャされた該画像を、前記歪み情報を参照して処理するステップと、
前記キャプチャされた画像と比べてより小さい画像歪みを含む補正された画像を生成するステップと、
を含む方法。
【請求項２】
前記特定するステップは、
前記レンズ系を使用して基準画像の較正ピクチャを撮影するステップと、
前記較正ピクチャを前記基準画像と比較することによって前記歪み情報を計算するステップと、
を含む請求項１に記載の方法。
【請求項３】
複数の基準画像に対して前記撮影するステップと前記計算するステップとを繰り返して、複数の種類の歪みに関する前記歪み情報を特定することを更に含む、請求項２に記載の方法。
【請求項４】
前記生成するステップは、
前記歪み情報から前記補正された画像における宛先ピクセルの補正値を抽出するステップと、
前記キャプチャされた画像からソースピクセル値を獲得するステップと、
前記宛先ピクセルを生成するために、前記補正値を参照して前記ソースピクセル値を変更するステップと、
を含み、
前記補正された画像における複数の宛先ピクセルのそれぞれに関して、前記抽出するステップ、前記獲得するステップ、及び前記変更するステップを繰り返す、
請求項１に記載の方法。
【請求項５】
ＧＰＵ（グラフィックスプロセシングユニット）のシェーダによって実行される、請求項４に記載の方法。
【請求項６】
前記格納するステップは、前記歪み情報を補正用画像として書き込むことを含む、請求項１に記載の方法。
【請求項７】
前記補正用画像は、複数の補正ピクセルデータを含む、請求項６に記載の方法。
【請求項８】
前記補正ピクセルデータは、位置移動情報を含む請求項７に記載の方法。
【請求項９】
前記処理するステップは、
前記キャプチャされた画像からソースピクセル値を獲得するステップと、
前記位置移動情報を参照して、前記ソースピクセル値を、前記キャプチャされた画像における第１の位置から、補正された画像における第２の位置に移動させるステップと、
を含み、
前記補正された画像における複数の宛先ピクセルに関して、前記獲得するステップ、及び前記移動させるステップを繰り返す
請求項８に記載の方法。
【請求項１０】
キャプチャされた画像におけるレンズ歪みを低減するシステムであって、
情報を格納するためのバッファと、
ピクセルデータを生成するためのテクスチャリングエンジンと、
を備え、
前記テクスチャリングエンジンは、前記バッファに格納された補正用画像にアクセスし、前記補正用画像を使用して、前記キャプチャされた画像から補正された画像を生成するように構成されている、
システム。
【請求項１１】
前記テクスチャリングエンジンは、複数のピクセルシェーダを有する、請求項１０に記載のシステム。
【請求項１２】
前記複数のピクセルシェーダのそれぞれは、前記補正された画像における補正されたピクセルを生成するように構成されている、請求項１１に記載のシステム。
【請求項１３】
前記複数のピクセルシェーダは、前記補正されたピクセル用の補正値を前記補正用画像から獲得すること、前記キャプチャされた画像からソースピクセルを獲得すること、及び前記補正値を参照して前記ソースピクセルを変更して、前記補正されたピクセルを生成することによって、前記補正されたピクセルを生成するように構成されている、請求項１２に記載のシステム。
【請求項１４】
前記キャプチャされた画像を提供するためのレンズ系を有するカメラを更に備えており、
前記補正画像は、２次元画像を含む、
請求項１０に記載のシステム。
【請求項１５】
前記補正用画像は、複数の分離可能な１次元画像を含む、請求項１０に記載のシステム。
【請求項１６】
前記補正用画像は、１次元径方向画像を含む、請求項１０に記載のシステム。
【請求項１７】
キャプチャされた画像をワーピングしてキャプチャされた画像の歪みを低減する方法をコンピュータシステムに実行させるためのコンピュータ可読プログラムコードが実体化されたコンピュータ可読媒体であって、
前記方法は、
歪み補正情報を生成するステップと、
前記歪み補正情報をワーピングテクスチャとして格納するステップと、
前記ワーピングテクスチャをＧＰＵ（グラフィックスプロセシングユニット）にロードするステップと、
前記ＧＰＵを使用して、前記ワーピングテクスチャを参照して、前記キャプチャされた画像をワーピングすることによって、修正された画像を生成するステップと、
を含む、コンピュータ可読媒体。
【請求項１８】
前記歪み補正情報は、絶対ピクセル補正情報を含む請求項１７に記載のコンピュータ可読媒体。
【請求項１９】
前記歪み補正情報は、相対ピクセル情報を含む請求項１７に記載のコンピュータ可読媒体。
【請求項２０】
前記ＧＰＵを使用することは、
前記修正された画像における宛先ピクセルを生成するピクセルシェーダを割り当てるステップと、
前記ワーピングテクスチャから前記宛先ピクセルに対応する補正値を獲得するために、前記ピクセルシェーダ及び前記宛先ピクセルを使用するステップと、
前記キャプチャされた画像からソースピクセルを獲得するために、前記ｔｏ  ａｓｓｏｃｉａｔｅ  ｈｅｒ及び前記補正値を使用するステップと、
前記ソースピクセルを前記宛先ピクセルとして出力するステップと、
を含む請求項１７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明の実施形態は、画像の歪み補正に関するものである。
【背景技術】
【０００２】
[0002]カメラ及びその他の光学装置を扱う際に絶えず発生する問題は、カメラのレンズ自体によってもたらされる歪みである。異なる多くの種類の歪みが生じることがあり、これらの歪みは、カメラ設計者及び写真家等によく知られた問題である。
【０００３】
[0003]歪みを補正する際には、幾つかのアプローチが、従来から用いられている。ＳＬＲ（一眼レフ）カメラ等のより高価なカメラでは、レンズの組み合わせが順に使用され、追加の各ガラス片は特定の種類の歪みを低減し又は除去するように設計されることが多い。より安価なカメラは、カメラのレンズによってもたらされる歪みに対して、相応に、より少ないハードウェア修正しか提供せず、移動電話機等の一体型のソリューションは、本来的な歪み補正を殆ど全く有していない。
【０００４】
[0004]また、歪みは、画像がキャプチャされた後に補正することが可能である。デジタルカメラやカムコーダによってキャプチャされた写真やビデオ等のデジタル画像は、画像が撮影された後に操作し得るものであり、カメラ自体によってもたらされる歪みは、略完全に除去し得る。
【発明の概要】
【０００５】
[0005]画像の歪みを低減し又は除去するための方法及びシステムを説明する。このアプローチは、概して、レンズによってもたらされる歪みを特定すること、キャプチャされた画像を修正してその歪みを低減することを伴っている。一実施形態では、レンズに関連する歪み情報が、特定される。この歪み情報は、格納される。そのレンズによって撮影され且つキャプチャされた画像は、この歪み情報を参照して処理される。このように画像の歪みを定量化することにより、本発明の実施形態を使用して、単純なレンズ系を利用していたカメラシステムでさえも、画像の品質を向上させることが可能である。
【０００６】
[0006]また、キャプチャされた画像のレンズ歪みを低減するための別の実施形態を、説明する。説明するシステムは、情報を格納するためのバッファと、ＧＰＵ（グラフィックスプロセシングユニット）の一部としてピクセルデータを生成するためのテクスチャリングエンジンと、を有する。テクスチャリングエンジンは、バッファに格納された補正用画像にアクセスするように構成される。テクスチャリングエンジンは、この補正用画像を使用して、キャプチャされた画像から補正された画像を生成する。
【０００７】
[0007]また、キャプチャされた画像をワーピングして、歪みを低減するための別の実施形態も説明する。このアプローチには、歪み補正情報を生成することを伴う。この歪み補正情報は、ワーピングテクスチャとして格納される。このワーピングテクスチャが、ＧＰＵに、例えば、テクスチャエンジンにロードされ、当該ＧＰＵを使用して、ワーピングテクスチャを参照し、キャプチャされた画像をワーピングして、修正された画像を生成する。
【０００８】
[0008]添付の図面は、本明細書に組み込まれ、且つ、本明細書の一部分を形成するものであり、本発明の実施形態を示し、本説明と共に、本発明の原理を説明する役割を果たしている。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態が実施され得る例示的なコンピュータシステムを示すブロック図である。
【図２】本発明の実施形態が適用され得る幾つかの種類の歪みを示す図である。
【図３】一実施形態による、画像の歪みを補正する例示的な方法を示すフローチャートである。
【図４】一実施形態による、レンズに関する歪みを特定する例示的な方法を示すフローチャートである。
【図５】一実施形態による、補正された画像を生成する例示的な方法を示すフローチャートである。
【図６】一実施形態による補正された画像の生成を示す図である。
【図７】一実施形態による、キャプチャされた画像の歪みを低減するための別のシステムを示すブロック図である。
【詳細な説明】
【００１０】
[0016]次に、本発明の幾つかの実施形態を詳細に参照する。本発明は、代替の実施形態と共に説明されるが、これらの実施形態は、本発明をこれら実施形態に限定することは意図していないことを理解されたい。それどころか、本発明は、添付の特許請求の範囲によって規定される本発明の精神及び範囲に含まれることが可能な、代替形態、変形形態、及び均等形態にまでに及ぶことが意図されている。
【００１１】
[0017]さらに、以下の詳細な説明では、多数の特定の詳細を、特許を申請する主題の完全な理解をもたらすために示してある。しかしならが、実施形態は、これらの特定の詳細なしに、又はこれらの詳細の均等形態を使用して実施されてもよいことが、当業者には認識されよう。その他、よく知られている方法、手続き、構成要素、及び回路については、本主題の態様及び特徴を不必要に不明瞭にしないように、詳細には説明しない。
【００１２】
[0018]以下の詳細な説明の幾つかの部分については、方法の観点から提示して、説明する。この方法のステップ及び順序を、当該方法の動作を説明する本明細書の図（例えば、図５）に開示するが、そのようなステップ及び順序は、例示的なものである。種々の実施形態は、他の様々なステップ又は本明細書の図のフローチャートに記載されているステップの変種を本明細書で図示し説明する以外の順序で実行することにも良好に適合する。
【００１３】
[0019]この詳細な説明の幾つかの部分は、手続き、ステップ、論理ブロック、処理、並びにコンピュータメモリ上で実行し得るデータビットに対する操作の他の記号表現により提示する。これらの説明及び表現は、データ処理技術業者が、自らの成果の内容を他の当業者に最も効果的に伝えるのに使用する手段である。手続き、コンピュータによって実行されるステップ、論理ブロック、プロセス等は、本明細書において、更には一般的にも、所望の結果を導くステップ又は命令の自己矛盾のないシーケンスと考えられる。これらのステップは、物理量の物理的操作を要求するステップである。通常、必然的ではないものの、これらの量は、コンピュータシステムにおいて格納され、転送され、組み合わされ、比較され、更にそれ以外で操作され得る電気信号又は磁気信号の形態をとる。ときとして、主に一般的な用法との理由で、これらの信号をビット、値、要素、シンボル、文字、項、数等と呼ぶことが好都合であることが分かっている。
【００１４】
[0020]しかしながら、これら及び類似する用語の全ては、適切な物理量に関連付けられるべきものであり、単に、これらの量に付けられた便利なラベルに過ぎないことに留意されたい。特に明記しない限り、以下の説明から明白なように、「アクセスする」、「書き込む」、「含める」、「格納する」、「伝送する」、「移動する」、「関連付ける」、「特定する」等の用語を利用する説明は、コンピュータシステムのレジスタ内及びメモリ内の物理（電子的）量として表されたデータを操作して、コンピュータシステムメモリ内又はコンピュータシステムレジスタ内、或いは他のそのような情報記憶デバイス内、情報伝送デバイス内、又は情報表示デバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステム、又は類似した電子計算デバイスのアクション及びプロセスを指すものと理解される。
【００１５】
[0021]計算デバイスは、通常、少なくとも何らかの形態のコンピュータ可読媒体を含む。コンピュータ可読媒体は、計算デバイスがアクセスすることが可能な任意の媒体であることが可能である。例えば、限定するものではないが、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得るものである。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータ等の情報の格納のために任意の方法又は技術で実装された、揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体が含まれる。コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタルバーサタイルディスク）又は他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又は他の磁気ストレージデバイス、或いは所望の情報を格納するのに使用することができ、計算デバイスがアクセスすることができる他の任意の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波等の変調されたデータ信号、又は他のトランスポート機構でコンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを実体化し、あらゆる情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内に情報を符号化するように特性の一つ又は複数が設定又は変更された信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体、並びに音響媒体、ＲＦ媒体、赤外線媒体、及びその他の無線媒体等の無線媒体が含まれる。また、以上の媒体のうちの任意の媒体の組み合わせも、コンピュータ可読媒体の範囲に含まれるべきものである。
【００１６】
[0022]一部の実施形態については、一以上のコンピュータ又は他のデバイスによって実行されるプログラムモジュール等のコンピュータ実行可能命令の形態で説明することがある。一般に、プログラムモジュールには、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造等が含まれる。通常、プログラムモジュールの機能は、様々な実施形態において所望により組み合わされても、分散されてもよい。
【００１７】
[0023]本明細書で説明する実施形態では、ＣＰＵとＧＰＵを、コンピュータシステムの個別の構成要素として参照することがあるが、ＣＰＵとＧＰＵは、単一のデバイスに統合されていてもよく、更にＣＰＵとＧＰＵは、命令ロジック、バッファ、機能ユニット等の様々なリソースを共有してもよく、或いはグラフィックス動作と汎用動作に別々のリソースが提供されてもよいことが当業者には認識されよう。したがって、ＧＰＵに関連するものとして本明細書で説明する回路及び／又は機能のいずれか、又はすべてが、適切に構成されたＣＰＵに実装され、そのようなＣＰＵによって実行され得る。
【００１８】
[0024]さらに、本明細書で説明する実施形態では、ＧＰＵを参照することがあるが、本明細書で説明する回路及び／又は機能は、汎用コプロセッサ若しくは他の専用コプロセッサ等の他のタイプのプロセッサに、又はＣＰＵ内部に実装され得る。
【００１９】
基本的な計算システム
【００２０】
[0025]以下、図１を参照する。図１は、例示的なコンピュータシステム１１２のブロック図である。本明細書で説明するコンピュータシステム１１２は、実施形態を好適に実施し得る動作プラットフォームの例示的な構成を示すものと理解されたい。異なる構成を有する他のコンピュータシステムを、本発明の範囲内でコンピュータシステム１１２の代わりに使用することも可能である。即ち、コンピュータシステム１１２は、図１に関連して説明する要素以外の要素を含むことが可能である。さらに、実施形態は、コンピュータシステム１１２のようなコンピュータシステムだけでなく、当該実施形態を可能とするように構成し得る任意のシステム上で実施されることが可能である。実施形態は、異なる多数のタイプのコンピュータシステム１１２上で実施され得るものと理解されたい。システム１１２は、例えば、専用のグラフィックスレンダリングＧＰＵに結合された強力な汎用ＣＰＵを有するデスクトップコンピュータシステム又はサーバコンピュータシステムとして実施され得る。そのような実施形態では、周辺バス、専用オーディオ／ビデオ構成要素、入出力デバイス等を追加する構成要素を、含めることが可能である。同様に、システム１１２は、ハンドヘルドデバイス（例えば、セル電話機等）として、又はワシントン州リッチモンド市所在のマイクロソフトコーポレーションから入手可能なＸｂｏｘ（登録商標）、若しくは日本国東京都所在のソニーコンピュータエンターテイメントコーポレーションから入手可能なＰｌａｙＳｔａｔｉｏｎ３（登録商標）等の、セットトップビデオゲームコンソールデバイスとして実施されてもよい。また、システム１１２は、計算デバイスのエレクトロニクス（例えば、構成要素１０１、１０３、１０５、１０６等）が、単一の集積回路ダイ内に完全に含められた「システムオンチップ」として実施されてもよい。例には、ディスプレイを有するハンドヘルド器具、カーナビシステム、ポータブルエンターテイメントシステム等が含まれる。
【００２１】
[0026]コンピュータシステム１１２は、情報を通信するためのアドレス／データバス１００と、情報及び命令を処理するための、バス１００に結合された中央プロセッサ１０１と、中央プロセッサ１０１のために情報及び命令を格納するための、バス１００に結合された揮発性メモリユニット１０２（例えば、ＲＡＭ［ランダムアクセスメモリ］、スタティックＲＡＭ、ダイナミックＲＡＭ）と、プロセッサ１０１のために静的情報及び命令を格納するための、バス１００に結合された不揮発性メモリユニット１０３（例えば、ＲＯＭ［読み取り専用メモリ］、プログラマブルＲＯＭ、フラッシュメモリ等）と、を含んでいる。さらに、コンピュータシステム１１２は、情報及び命令を格納するためのデータ記憶デバイス１０４（例えば、ハードディスクドライブ）も含んでいる。
【００２２】
[0027]また、コンピュータシステム１１２は、オプションのグラフィックスサブシステム１０５と、オプションの英数字入力デバイス１０６と、オプションのカーソル制御デバイス若しくはカーソル指示デバイス１０７と、信号通信インタフェース（入出力デバイス）１０８と、を含んでいる。オプションの英数字入力デバイス１０６は、情報選択及びコマンド選択を中央プロセッサ１０１に伝達することができる。オプションのカーソル制御デバイス又はカーソル指示デバイス１０７は、ユーザによって入力された情報選択及びコマンド選択を中央プロセッサ１０１に伝達するためにバス１００に結合される。信号通信インタフェース（入出力デバイス）１０８は、バス１００に結合されており、シリアルポートであってもよい。通信インタフェース１０８は、無線通信機構を含んでいてもよい。通信インタフェース１０８を使用して、コンピュータシステム１１２は、インターネット又はイントラネット（例えば、ローカルエリアネットワーク）等の通信網を介して他のコンピュータシステムと通信するように結合することができ、或いはデータ（例えば、デジタルテレビ信号）を受信することができる。また、コンピュータシステム１１２は、例えば、ビデオケーブル１１１で接続された付属のディスプレイデバイス１１０上に情報を表示することによって、コンピュータユーザに情報を提示するためのグラフィックスサブシステム１０５を含んでいてもよい。一部の実施形態では、グラフィックスサブシステム１０５は、中央プロセッサ１０１に組み込まれる。他の実施形態では、グラフィックスサブシステム１０５は、別個の、分離した構成要素である。他の実施形態では、グラフィックスサブシステム１０５は、別の構成要素に組み込まれる。他の実施形態では、グラフィックスサブシステム１０５は、その他の態様でシステム１１２に含められる。
【００２３】
テクスチャリングエンジンの使用による歪みの補正
【００２４】
[0028]ＧＰＵ（グラフィックスプロセシングユニット）は、多くの電子デバイスにおいてますます一般的なものとなっている。ラップトップ又はデスクトップ等の専用コンピュータは、分離したプロセッサとして、又はシステム内の他の機能と一体化されて、殆ど常にＧＰＵを備えている。しかしながら、ＧＰＵ機能は、はるかに広い範囲のアプリケーションにおいて見ることができる。ＰＤＡ（パーソナルデジタルアシスタント）、移動電話機、及びスマートフォン等のハンドヘルドデバイス、及び一部のカメラさえ、以上のＧＰＵを備えて、情報の表示をスピードアップすることがあり、又は、更なる機能を提供することがある。
【００２５】
[0029]ＧＰＵ、特にピクセルシェーダは、理想的には、画像の操作に適している。以下の実施形態では、ピクセルシェーダの機能を利用してピクセルごとに画像を操作するアプローチを説明する。特に、一部の実施形態では、ピクセルシェーダを使用して、カメラレンズによってもたらされる歪み等のデジタル画像の歪みを補正する。
【００２６】
歪みの種類
【００２７】
[0030]画像をキャプチャする際には、異なる多くの種類の歪みがもたらされることがある。歪みの原因は、種々の実施形態によって変わり得るものである。例えば、一部の実施形態では、歪みは、カメラレンズの異なる部分を通る焦点距離の違いの結果、又は光学部品類の製造若しくは設計の欠陥に起因してもたらされる。これらの歪みは、しばしば、幾何歪みと呼ばれる。別の実施形態では、歪みは、カメラが光の異なる波長によって異なる焦点距離を有すること、例えば、カメラが、赤の光、緑の光、及び青の光に対して異なる焦点距離を有することによってもたらされることがある。光の異なる波長によってもたらされるそのような歪みは、しばしば、色歪みと呼ばれる。同様に、歪みが画像に与える影響は、異なる種類の歪みよって、また、異なる実施形態によって変わり得るものである。
【００２８】
[0031]ここで、図２を参照する。図２は、幾つかの一般的な歪みの種類を例示している。幾つかの種類の歪みを例示してあるが、実施形態は、種々多様な種類の歪みを伴うアプリケーションによく適しているものと理解されたい。図２は、網羅的ではなく、例示的であることが意図されている。画像２００は、直角に交差する線の歪みのない格子の写真を表す。画像２１０は、「糸巻形」歪みを受けた同一の格子を示す。画像２２０は、「樽形」歪みを受けた画像２００の格子を示す。画像２５０は、上から見た三つの円柱状の被写体を表している。画像２６０は、「レリーフ」歪みを受けた同一の被写体を示している。当該歪みの場合、カメラレンズの真下の被写体についてはその頂部だけが見えるが、その他のすべての被写体については、それらの被写体の頂部と側面が見えるように画像の中心から離れて傾いているように見える。更に、重要なレンズ歪みには、主光線の軸に対する焦点面の調整不良によってもたらされる遠近歪み、焦点面若しくはセンサ面における「リプル」に起因する、又は、レンズ製造の重大な欠陥に起因する非対称歪みが含まれるが、以上には限定されない。
【００２９】
[0032]歪みは、いずれの特定のアプリケーションにも限定されない。歪みの影響は、静止画像アプリケーションにおいて生じるのと同様に、ビデオアプリケーションにおいても生じる。
【００３０】
歪みの補正
【００３１】
[0033]一部の実施形態では、画像の歪み補正は、画像がキャプチャされた後、いつでも行うことが可能である。例えば、一部の実施形態において、例えば、デジタルカメラが使用される場合、歪みは、画像が最初に撮影された際、この画像が格納される前に補正される。別の実施形態では、歪みは、画像がキャプチャされてしばらくしてから、例えば、他の何らかの画像処理が行われる前、又は後に補正されてもよい。一部の実施形態では、歪み補正は、画像に関するピクセルデータが利用可能である任意の時点で行うことが可能である。
【００３２】
[0034]さらに、実施形態は、静止画像の補正に限定されないものと理解されたい。例えば、デジタルカムコーダが例えば関連する一実施形態では、歪みは、ビデオがキャプチャされるにつれ、例えば、フレームごとに補正される。別の実施形態では、歪みは、ビデオがキャプチャされた後、例えば、他の何らかのビデオ処理動作が行われる前、又は後に補正される。一部の実施形態では、歪み補正は、ビデオのフレームに関するピクセルデータが利用可能である任意の時点で行うことが可能である。
【００３３】
[0035]前述したとおり、異なる多くの種類の歪みが生じることがある。一部の実施形態では、歪みは、カメラレンズによってもたらされる。他の実施形態では、歪みは、他の要因、例えば、データをキャプチャするのに使用されるセンサによってもたらされる。実施形態は、異なる多くの種類及び源の歪みがかかわるアプリケーションによく適しているものと理解されたい。後述する例示的な実施形態は、特定の種類の歪み、例えば、樽形歪み又は糸巻形歪みを補正することに注目するが、他の実施形態は、他の種類の歪み、例えば、色歪みを補正するのに利用されることが可能であるものと理解されたい。
【００３４】
[0036]次に図３を参照する。図３は、一実施形態による、画像の歪みを補正する例示的な方法のフローチャート３００を示している。特定のステップをフローチャート３００で開示するが、そのようなステップは例示的なものである。即ち、本発明の実施形態は、他の様々な（追加の）ステップ、又はフローチャート３００に記載したステップの変種を実行することによく適している。フローチャート３００におけるステップは、提示した順序とは異なる順序で実行することが可能であり、更に、フローチャート３００におけるステップの全てが実行されなくてもよいことを理解されたい。
【００３５】
[0037]ステップ３１０では、レンズによってもたらされた歪みが特定される。様々な実施形態では、このステップは、様々な態様で達せられる。例えば、一実施形態では、試験されるレンズを使用して、長方形の格子様画像２００等の、既知の基準ピクチャの画像がキャプチャされる。次に、このキャプチャされた基準画像が、既知の基準ピクチャと、例えば、ピクセルごとに比較される。一部の実施形態では、この比較結果を使用して、レンズによってもたらされた歪みを記述する式が生成される。他の実施形態では、この比較結果を使用して、レンズによってもたらされる歪みを低減し、又は除去するために、歪みマッピング、例えば、キャプチャされた基準画像をどのように操作すべきかを記述する画像マップが生成される。
【００３６】
[0038]様々な実施形態では、歪み情報を、様々な態様で収集することが可能である。例えば、単一の２次元歪みマップが、例えば、すべてのピクセルを個々に指定する水平値と垂直値を使用して、生成されてもよい。別の実施形態では、幾つかの別々の１次元「画像」が、使用されてもよい。別の実施形態では、１次元径方向画像が、使用されてもよい。
【００３７】
[0039]一部の実施形態では、ステップ３１０が、複数の種類の歪み、及び／又は複数の試験シナリオに対して繰り返されてもよい。例えば、一部の実施形態では、歪みは、レンズの焦点距離によって変化し、したがって、一つの式が、近距離の被写体の写真に関する歪みを規定するのに対して、異なる式が、レンズから遠方に離れた被写体の写真の歪みを規定することがある。さらに、光の波長、例えば、色に依存して、又は、一般的な照明条件に依存して、異なる歪みがもたらされることがある。
【００３８】
[0040]ステップ３２０を参照すると、そのレンズに関する歪み情報が、格納される。様々な実施形態では、この歪み情報の格納が、変更される。例えば、一実施形態では、歪み情報は、テクスチャ又は画像として格納され、したがって、テクスチャリングエンジンが、この歪み情報を使用して、画像をワーピングし、歪みを低減し、又は除去することが可能である。
【００３９】
[0041]さらに、一部の実施形態では、格納される情報が、異なっていてもよい。一部の実施形態、例えば、レンズに関する歪みを規定する式が計算される実施形態では、この式が、格納される。例えば、歪みマップが生成される、別の実施形態では、各ピクセルに関する絶対歪み補正情報が、格納されてもよい。一つのそのような実施形態では、歪みマップは、ピクセルを、歪んだ画像における一つの絶対位置から補正された画像における別の絶対位置に移すことによって、歪みを補正する。別の実施形態では、歪みマップを使用して、相対位置情報が格納される。例えば、歪みマップは、絶対位置を与えるのではなく、ピクセルを移動させるべき相対距離及び／又は相対方向を指定することによって、現在のピクセルが別の位置に移されるべきことを示すことができる。
【００４０】
[0042]ステップ３３０を参照すると、キャプチャされた画像が処理されて、レンズによってもたらされた歪みが低減される。様々な実施形態では、このステップは、様々な時点で行われ得る。例えば、一実施形態では、歪み補正は、画像がキャプチャされると直ぐに、例えば、センサからデータが受け取られた際、このデータが格納される前に行われる。他の実施形態では、歪み補正は、他の何らかの画像処理の前又は後に行われる。
【００４１】
[0043]一部の実施形態では、キャプチャされた画像は、ピクセルごとに処理される。各ピクセルに対して、そのピクセルに関する歪み補正情報が取り出され、歪み補正情報及びキャプチャされた画像を使用して、補正された画像が生成される。一実施形態では、後に詳細に説明するように、テクスチャリングエンジン内のピクセルシェーダが、補正されたピクセルを生成するように構成される。一つのそのような実施形態では、ピクセルシェーダは、歪み補正用画像から歪み補正情報を取り出し、この歪み補正情報を使用して、キャプチャされた画像からピクセルを取り出す。ピクセルシェーダは、例えば、この取り出されたピクセルを、キャプチャされた画像における補正された位置に出力することによって、補正されたピクセルを出力する。
【００４２】
歪みの特定
【００４３】
[0044]様々な実施形態において、様々なアプローチを利用して、写真をキャプチャするのに使用された機器によってもたらされた写真の歪みが特定される。一部の実施形態では、レンズによってもたらされる歪みが、特定される。一つのそのような実施形態では、この特定は、歪みのない基準画像を、レンズによってキャプチャされた画像と比較することによって実行される。
【００４４】
[0045]次に図４を参照する。図４は、一実施形態による、レンズに関する歪みを特定する例示的な方法のフローチャート４００を示している。特定のステップをフローチャート４００に開示しているが、そのようなステップは例示的なものである。即ち、本発明の実施形態は、他の様々な（追加の）ステップ、又はフローチャート４００に記載したステップの変種を実行することによく適している。フローチャート４００におけるステップは、提示した順序とは異なる順序で実行され得るものであり、更に、フローチャート４００におけるステップの全てが実行されなくてもよいことを理解されたい。
【００４５】
[0046]次にステップ４１０を参照すると、試験されるレンズを使用して、既知の基準画像の写真が撮影される。様々な実施形態では、この基準画像の性質は変わり得る。例えば、樽形歪み又は糸巻形歪みを特定する際、画像２００等の格子画像を利用することが有益である。色歪みが特定される別の実施形態では、光の様々な色及び波長を試験するように幾つかの画像を利用することが有益である。さらに、一部の実施形態では、同一のレンズを使用して、様々な状況下で、例えば、様々な照明条件下で、又は画像からの様々な距離で、同一種の歪みに関して試験するよう、複数の基準画像の写真を撮影してもよい。
【００４６】
[0047]ステップ４２０を参照すると、試験されるレンズに関する補正情報又は較正情報が、収集される。一部の実施形態では、レンズは、キャプチャされた画像に存在する歪みを補正することによって較正される。一つのそのような実施形態では、キャプチャされた画像は、「手動で」補正される。例えば、ユーザが、基準画像を参照してキャプチャされた画像におけるピクセルを操作して、レンズによってもたらされた歪みを補正する。他の実施形態では、キャプチャされた画像は、他の態様で補正される。例えば、キャプチャされた画像を、基準画像を参照して、オフラインプログラムによって操作して、レンズによってもたらされた歪みを補正する。
【００４７】
[0048]ステップ４３０を参照すると、レンズに関する較正情報が、格納される。一部の実施形態では、この較正情報は、一以上のテクスチャとして格納され、この後、このテクスチャを、テクスチャリングエンジンが、将来の画像におけるレンズによってもたらされる歪みを補正するのに使用することができる。前述したように、この較正情報の性質は、異なる実施形態によって変わり得る。例えば、一部の実施形態では、較正情報は、絶対ピクセル位置から成り、例えば、キャプチャされた画像における特定のピクセルが、補正された画像のどこに位置付けられるべきかを示す。他の一部の実施形態では、較正情報は、相対ピクセル位置、例えば、現在のピクセルが、そのピクセルの現在の位置に対して、新たな位置に移されるべきことを示す情報から成る。更に、様々な実施形態において、較正情報は、様々な種類の画像、例えば、２次元画像、又は複数の１次元の分離可能な画像、又は単一の１次元径方向画像を含むことが可能である。
【００４８】
補正された画像の生成
【００４９】
[0049]一部の実施形態では、較正情報又は補正情報を、補正された画像を生成するために、テクスチャリングエンジンによって、一以上のピクセルシェーダをプログラミングするのに使用することができる。前述したように、様々な実施形態では、較正情報の性質は、変わり得るものである。したがって、異なる実施形態では、較正情報がどのように利用されるかの詳細は、異なることがある。
【００５０】
[0050]次に図５を参照する。図５は、一実施形態による、補正された画像を生成する例示的な方法のフローチャート５００を示している。特定のステップをフローチャート５００に開示しているが、そのようなステップは、例示的なものである。即ち、本発明の実施形態は、他の様々な（追加の）ステップ、又はフローチャート５００に記載されたステップの変種を実行することによく適している。フローチャート５００におけるステップは、提示した順序とは異なる順序で実行されえてもよく、更に、フローチャート５００におけるステップの全てが実行されなくてもよいことを理解されたい。
【００５１】
[0051]まず、ステップ５１０を参照すると、一実施形態では、テクスチャリングエンジンが、較正テクスチャから、補正された画像における宛先ピクセルに関する補正値を獲得する。一つのそのような実施形態では、補正された画像が、ピクセルごとに生成される。この実施形態では、ピクセルシェーダが、補正された画像における一つの特定の宛先ピクセルの内容を特定することを担う。一部の実施形態では、ピクセルシェーダは、較正テクスチャ画像にアクセスすることによって、宛先ピクセルに対応する補正値を獲得する。一部のそのような実施形態では、この補正値は、キャプチャされた画像における或るピクセル位置に対応する。
【００５２】
[0052]例えば、色歪みが補正される他の実施形態では、補正値は、色「シフト」情報を含み得る。例えば、一実施形態では、補正値は、レンズによってもたらされた色歪みを補正するために、或るピクセルのＲＧＢ値をどのように操作すべきかを示してもよい。
【００５３】
[0053]次にステップ５２０を参照すると、一実施形態において、テクスチャリングエンジンが、キャプチャされた画像における或る位置からソースピクセル値を獲得する。一部の実施形態では、このソースピクセル値の位置は、較正テクスチャから獲得された補正値によって示される。幾つかのそのような実施形態では、歪み補正は、補正された画像を生成する際、キャプチャされた画像におけるピクセルを異なる位置に「移す」ことを伴う。一つのそのような実施形態では、ピクセルのこの再配置は、ワープ歪み効果、例えば、樽形歪み又は糸巻形歪みの補正を可能にする。
【００５４】
[0054]例えば、色歪みが補正される他の実施形態では、歪み補正は、レンズによってもたらされる色歪みを補正するために、キャプチャされた画像におけるピクセルのＲＧＢ値を調整することを伴う。
【００５５】
[0055]次にステップ５３０を参照すると、補正値及びソースピクセル値を利用して、補正されたピクセルが生成される。一部の実施形態では、ピクセルシェーダが、この補正値を使用してソースピクセル値を獲得し、そのソースピクセル値を、補正された画像の正しい位置に書き込んで、例えば、ワープ歪みを補正する。一部の実施形態では、ピクセルシェーダが、この補正値を使用して、ソースピクセル値における何らかの値を変更し、その変更された値を、補正された画像における現在の位置に書き込んで、例えば、色歪みを補正する。
【００５６】
[0056]一部の実施形態では、フローチャート５００におけるステップは、補正された画像におけるすべてのピクセルに対して繰り返される。例えば、ＧＰＵ又はテクスチャリングエンジンが複数のピクセルシェーダを利用可能である一部の実施形態では、複数のピクセルを同時に処理することが可能である。他の実施形態では、各ピクセルを順々に処理することが望ましいことがある。
【００５７】
[0057]一部の実施形態では、フローチャート４００の方法が、複数の種類の歪みを補正するのに適用されてもよいことを理解されたい。一部の実施形態では、幾つかの種類の歪みが、同時に補正されてもよい。例えば、単一のピクセルの色歪みとワープ歪みの双方が、そのピクセルを処理する際に一以上の較正テクスチャにアクセスすることによって、一度に補正されてもよい。他の実施形態では、各種の歪みが、別個の処理アプリケーションを必要としてもよい。例えば、キャプチャされた画像はまず、ワープ歪みに関して補正され、次に、補正された画像が、色歪みを小さくするように更に補正されてもよい。さらに、一部の実施形態では、これらのアプローチの様々な組み合わせが、利用されてもよい。
【００５８】
[0058]フローチャート５００によって説明した方法は、修正されてもよいことを理解されたい。例えば、フローチャート５００で説明した方法は、補正された画像に対してピクセルごとに作用するが、一部の実施形態では、この方法は、ソース画像に対してピクセルごとに作用するように適用されてもよい。
【００５９】
ピクセル補正
【００６０】
[0059]次に図６を参照する。図６は、一実施形態による補正された画像生成の例を示している。図６は、幾つかの特定の、列挙される特徴及び要素を示しているが、実施形態は、異なる特徴又は要素、更なる特徴又は要素、或いはより少ない特徴又は要素を伴うアプリケーションにもよく適しているものと理解されたい。
【００６１】
[0060]図６は、補正された画像６１０、較正テクスチャ６２０、及びソース画像６３０を示している。図示した実施形態では、補正された画像６１０が、ソース画像６３０から生成される。較正テクスチャ６２０を使用して、ソース画像６３０をキャプチャしたレンズによってもたらされたワープ歪みが補正される。例えば、移動電話機カメラを使用してソース画像６３０がキャプチャされる場合、樽形歪みが、そのようなカメラにおいて使用される安価なレンズ構成によってもたらされることがある。
【００６２】
[0061]補正された画像６１０における補正されたピクセル、例えば、ピクセル６１５を生成するために、補正値が、獲得される。図示した実施形態では、この補正値は、較正テクスチャ６２０から獲得される。較正テクスチャ６２０は、ピクセル６１５に関する補正値が、ソース画像６３０における位置６２５にあることを示す。一部の実施形態では、較正テクスチャ６２０は、位置６２５に関する絶対位置、例えば、座標を与えることができる。他の実施形態において、較正テクスチャ６２０は、位置６２５の相対位置を与えることができ、例えば、矢印６２１で示されるとおり、位置６２５は、ピクセル６１５の位置から３ピクセル左である。
【００６３】
[0062]テクスチャリングエンジンは、較正テクスチャ６２０からの補正値を使用して、ソース画像６３０からの補正ピクセル値を獲得する。図示したように、ピクセル６３５が、補正された画像を生成する際に「移動」させられ、例えば、ソース画像６３０におけるピクセル６３５の内容が、矢印６４１で示されように、補正された画像６１０におけるピクセル６１５に書き込まれる。
【００６４】
[0063]この場合も、図６に示す例は、補正された画像からの補正された画像をピクセルごとに生成することに的を絞ったアプローチを説明しているが、他の実施形態が、他のアプローチによく適しているものと理解されたい。例えば、一実施形態では、補正された画像を生成するために、ソース画像におけるピクセルがまず、処理されてもよい。そのような実施形態では、ピクセル６３５が処理されると、テクスチャリングエンジンが、較正テクスチャ６２０における補正情報を使用して、補正された画像６１０における適切な位置にピクセル６１５を出力することができる。さらに、例えば、ＧＰＵ又はテクスチャリングエンジンが複数のピクセルシェーダを含む一部の実施形態では、複数のピクセルを同時に処理することが可能である。
【００６５】
[0064]さらに、図６に示す例は、ワープ歪み、例えば、樽形歪みを補正するアプローチを説明しているが、実施形態は、他の種類の歪みを補正することにもよく適しているものと理解されたい。例えば、色歪みが、補正されるべき場合、較正テクスチャは、位置補正情報ではなく、色補正情報を含み得る。そのような実施形態では、補正されたピクセルを生成する際、テクスチャリングエンジンが、ソース画像からソースピクセルを取り出し、補正情報を使用して、このピクセルのＲＧＢ値を変更してから、補正されたピクセルを書き込んでもよい。さらに、一部の実施形態では、複数の種類の歪みが、補正されてもよい。
【００６６】
歪みを低減するためのシステム
【００６７】
[0065]次に図７を参照する。図７は、一実施形態による、キャプチャされた画像の歪みを低減するためのシステム７００を示している。システム７００は、特定の列挙した特徴を組み込んだものとして示してあるが、実施形態は、更なる特徴又は要素、より少ない特徴又は要素、或いは異なる特徴又は要素を伴うアプリケーションにもよく適しているものと理解されたい。
【００６８】
[0066]さらに、様々な実施形態では、システム７００は、様々なデバイスに組み込まれてもよい。例えば、一実施形態では、システム７００は、デジタルカメラに組み込まれる。別の実施形態では、システム７００は、カムコーダに組み込まれてもよい。別の実施形態では、システム７００は、異なる移動体光学デバイス、例えば、カメラ機能を有する携帯電話機に組み込まれてもよい。さらに、一部の実施形態では、システム７００の画像キャプチャリング構成要素は、例えば、写真をキャプチャするのに使用されるデジタルカメラと、歪みを低減し画像を表示するのに使用されるデスクトップコンピュータ又はラップトップコンピュータとのように、システム７００の歪み低減要素及び／又はディスプレイ要素とは別個のデバイスに組み込まれてもよい。
【００６９】
[0067]図示した実施形態では、システム７００は、レンズ７１０、センサ７１５、グラフィックス処理モジュール７２０、記憶媒体７４０、及びディスプレイ７５０を備えている。図示するように、レンズ７１０は、光を集束させるため、及び画像をキャプチャするための一以上の光学要素を組み込む。図示した実施形態におけるセンサ７１５は、レンズ７１０を通して集束させられた光を受け取る。デジタルカメラ等の一部の実施形態では、センサ７１５は、感知された画像をピクセル値に変換することも行う。図７に示すように、このキャプチャされた画像は、記憶媒体７４０上に格納することができる。記憶媒体７４０は、様々な実施形態では、多種多様な記憶媒体、例えば、内部フラッシュメモリ、リムーバブルストレージデバイス、又は他の任意の適切な記憶媒体のいずれを含むことも可能である。
【００７０】
[0068]図示した実施形態では、グラフィックス処理モジュール７２０が、システム７００に含まれている。様々な実施形態では、グラフィックス処理モジュール７２０の目的及び機能は、様々であってもよい。例えば、システム７００が移動電話機に組み込まれる一部の実施形態では、グラフィックス処理モジュール７２０は、ディスプレイ７５０に出力するように情報を表示し、グラフィックスをレンダリングするのに使用されてもよい。図示した実施形態では、グラフィックス処理モジュール７２０は、ＧＰＵ７２５を含んでいる。ＧＰＵ７２５は、一部の実施形態では、様々な機能、例えば、３次元オブジェクトをレンダリングするために使用される。図示したように、ＧＰＵ７２５は、幾つかのピクセルシェーダ７２７を含んでいる。ピクセルシェーダは、一部の実施形態では、画像を表示する際に、ＧＰＵ７２５によって或る特定のピクセルの適切なピクセル値を計算するのに使用される。
【００７１】
[0069]また、グラフィックス処理モジュール７２０は、バッファ７３０を組み込むものとして示されている。バッファ７３０は、一部の実施形態では、画像を表示する際にグラフィックス処理モジュール７２０及びＧＰＵ７２５によって使用される情報を格納するため、及び取り出すために使用される。様々な実施形態において、バッファ７３０は、様々な形態をとることが可能である。例えば、一部の実施形態では、バッファ７３０は、ＲＡＭ（ランダムアクセスメモリ）によって構成される。図示した実施形態では、バッファ７３０の諸部分が、ソース画像７３１、ワーピング画像７３３、及び補正された画像７３５を格納するために割り当てられたものとして示されている。
【００７２】
[0070]システム７００は、キャプチャされた画像又はビデオの歪みを低減するのに利用され得るものである。一実施形態では、レンズ７１０によってもたらされる歪みは、所定である。この歪みを計算する一つのアプローチは、フローチャート４００を参照して前述されており、例えば、レンズを使用して、或る基準画像の写真をキャプチャして、この基準画像において必要な補正を計算する。次に、この補正情報を、例えば、ワーピング画像７３３として格納することが可能である。
【００７３】
[0071]システム７００が後に画像をキャプチャすると、このキャプチャされた画像をグラフィックス処理モジュール７２０によって処理して、レンズ７１０によってもたらされた歪みを小さくすることが可能である。図示した実施形態では、キャプチャされた画像は、ソース画像７３１として格納される。次に、ＧＰＵ７２５を使用して、補正された画像、即ち、補正された画像７３５が生成される。そのような補正された画像生成の一つのアプローチを、フローチャート５００において前述した。
【００７４】
[0072]複数の種類の歪みが補正されることが可能な一部の実施形態では、幾つかの候補のワーピング画像の間での選択を行うことが必要となることがある。幾つかのそのような実施形態では、グラフィックス処理モジュール７２０、又はシステムプロセッサ（図示せず）が、適切な補正テクスチャを選択するために、キャプチャされた画像に関連する更なる考慮事項又はデータを使用することが可能である。例えば、異なる二つの照明条件下でレンズ７１０によってもたらされた歪みを補正するために、二つのワーピング画像が利用できる場合、その画像がキャプチャされた時点でセンサ７１５によって観察された照明条件が、その二つの補正テクスチャの間で選択を行うのに利用されてもよい。
【００７５】
[0073]このように、本発明の実施形態を説明した。本発明を特定の実施形態において説明してきたが、本発明は、そのような実施形態によって限定されるものと解釈されるべきではなく、むしろ、以下の特許請求の範囲に従って解釈されるべきであることを理解されたい。
【符号の説明】
【００７６】
６１０…補正された画像、６１５…ピクセル、６２０…較正テクスチャ、６２５…位置、６３０…ソース画像。
【図１】
2009165106.tif 000003
【図２】
2009165106.tif 000004
【図３】
2009165106.tif 000005
【図４】
2009165106.tif 000006
【図５】
2009165106.tif 000007
【図６】
2009165106.tif 000008
【図７】
2009165106.tif 000009
【外国語明細書】
2009165106000001.pdf