(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】画像のデワープ回路
(51)【国際特許分類】
G06T 5/80 20240101AFI20241217BHJP
H04N 23/60 20230101ALI20241217BHJP
H04N 23/698 20230101ALI20241217BHJP
【FI】
G06T5/80
H04N23/60 500
H04N23/698
(21)【出願番号】P 2022515656
(86)(22)【出願日】2020-06-03
(86)【国際出願番号】 US2020035847
(87)【国際公開番号】W WO2021055027
(87)【国際公開日】2021-03-25
【審査請求日】2023-05-23
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502161508
【氏名又は名称】シナプティクス インコーポレイテッド
(74)【代理人】
【識別番号】100205350
【氏名又は名称】狩野 芳正
(74)【代理人】
【識別番号】100117617
【氏名又は名称】中尾 圭策
(72)【発明者】
【氏名】マンチ、チャンドラナート
【審査官】高野 美帆子
(56)【参考文献】
【文献】米国特許出願公開第2013/0016918(US,A1)
【文献】特開2017-017672(JP,A)
【文献】特開2009-164674(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/80
H04N 23/60
H04N 23/698
(57)【特許請求の範囲】
【請求項1】
画像処理のための方法であり、
順序付けられたシークエンスで、歪んだ画像空間における光景を描写する第1画像のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするための複数のデワープ行列を取得することと、
前記デワープ行列の前記順序に少なくとも部分的に基づいて、前記第1画像のピクセルのブロックを取得することと、
前記第1画像のピクセルの前記ブロックに基づいて、複数の画像タイルを生成することと、
前記複数の画像タイルを組み合わせて、補正された画像空間における前記光景を示す第2画像を生成することと、
を含み、
前記第2画像が、高さ及び幅が均一な複数のストライドに分割され、
各ストライドの前記高さが、前記画像タイルのうちの一つの高さと等しく、
各ストライドの前記幅が、前記第2画像の幅と等しく、
前記ストライドの各々が、順に並んだ2以上の前記画像タイルを含み、
前記第1画像のピクセルの前記ブロックを取得することが、
前記複数のストライドのうちの第1ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックを特定し、かつ、前記第1ストライドの前記画像タイルを生成するために用いられるピクセルの前記ブロックが取得されるべき順序を特定する第1ルックアップテーブル(LUT)を取得することと、
前記第1LUTに基づいて、前記第1ストライドの前記画像タイルを生成するために用いられるピクセルの前記ブロックを取得することと、
を含み、
前記画像タイルの各々は、1以上の前記デワープ行列をそれぞれ用いて、取得された1以上のピクセルの前記ブロックから補間される、
方法。
【請求項2】
前記ピクセルのブロックの各々が、前記第1画像のうちの複数の第1ピクセルを含み、
前記画像タイルの各々が、前記第2画像のうちの複数の第2ピクセルを含む、
請求項1の方法。
【請求項3】
ピクセルのブロックの各々に含まれる複数の前記第1ピクセルの数が、イメージタイルの各々に含まれる複数の前記第2ピクセルの数よりも多い、
請求項2の方法。
【請求項4】
前記順序付けられたシークエンスが、前記第2画像内の前記画像タイルのラスタ順序に少なくとも部分的に基づく、
請求項1から3のいずれか1つの方法。
【請求項5】
前記組み合わせることが、前記ラスタ順序で前記複数の画像
タイルを記憶することを含む、
請求項4の方法。
【請求項6】
ピクセルの前記ブロックのうちの一つが、前記複数の画像タイルのうちの2以上の画像タイルの生成に使用されることを許容される
請求項1から5のいずれか1つの方法。
【請求項7】
前記デワープ行列を取得することが、
前記複数のストライドのうちの第1ストライドの前記画像タイルを生成するために用いられる前記デワープ行列を取得することと、
前記第1ストライドに対応する前記デワープ行列の各々が取得された後にのみ、前記複数のストライドのうちの第2ストライドの前記画像タイルを生成するために用いられる前記デワープ行列を取得することと、
を含む、
請求項6の方法。
【請求項8】
ピクセルの前記ブロックを取得することが、
更に、
前記第1LUTによって特定されるピクセルの前記ブロックの各々が取得された後にのみ、前記複数のストライドのうちの第2ストライドの前記画像タイル
のそれぞれを生成するために用いられるピクセルの前記ブロックを特定
し、かつ、前記第2ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックが取得されるべき順序を特定する第2LUTを取得すること、
を含む、
請求項6または7の方法。
【請求項9】
メモリバッファと、
ハードウェアロジックと、
を備え、
前記ハードウェアロジックが、
順序付けられたシークエンスで、歪んだ画像空間における光景を描写する第1画像のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするための複数のデワープ行列を取得し、
前記デワープ行列の前記順序に少なくとも部分的に基づいて、前記第1画像のピクセルのブロックを前記メモリバッファに読み出し、
前記第1画像のピクセルの前記ブロックに基づいて、複数の画像タイルを生成し、
前記複数の画像タイルを外部メモリに書き出して、補正された画像空間上の前記光景を示す第2画像を生成する、
ように構成され、
前記第2画像が、高さ及び幅が均一な複数のストライドに分割され、
各ストライドの前記高さが、前記画像タイルのうちの一つの高さと等しく、
各ストライドの前記幅が、前記第2画像の幅と等しく、
前記ストライドの各々が、順に並んだ2以上の前記画像タイルを含み、
前記第1画像のピクセルの前記ブロックを取得することが、
前記複数のストライドのうちの第1ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックを特定し、かつ、前記第1ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックが取得されるべき順序を特定する第1ルックアップテーブル(LUT)を取得することと、
前記第1LUTに基づいて前記第1画像のピクセルの前記ブロックを取得することと、
を含み、
前記画像タイルの各々は、1以上の前記デワープ行列をそれぞれ用いて、取得された1以上のピクセルの前記ブロックから補間される、
デワープ回路。
【請求項10】
システムであり、
プロセッサと、
命令を記憶するメモリと、
デワープ回路と、
を備え、
前記命令は、前記プロセッサによって実行されたときに、前記システムに、順序付けられたシークエンスで、歪んだ画像空間から補正された画像空間へピクセルを再マッピングするための複数のデワープ行列を生成することを行わせ、
前記デワープ回路が、
前記デワープ行列の前記順序に少なくとも部分的に基づいて、前記歪んだ画像空間における光景を示す第1画像のピクセルのブロックを取得し、
前記第1画像のピクセルの前記ブロックに基づいて、複数の画像タイルを生成し、
前記複数の画像タイルを組み合わせて、前記補正された画像空間における前記光景を示す第2画像を生成する、
ように構成され、
前記第2画像が、高さ及び幅が均一な複数のストライドに分割され、
各ストライドの前記高さが、前記画像タイルのうちの一つの高さと等しく、
各ストライドの前記幅が、前記第2画像の幅と等しく、
前記ストライドの各々が、順に並んだ2以上の前記画像タイルを含み、
前記第1画像のピクセルの前記ブロックを取得することが、
前記複数のストライドのうちの第1ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックを特定し、かつ、前記第1ストライドの前記画像タイルのそれぞれを生成するために用いられるピクセルの前記ブロックが取得されるべき順序を特定する第1ルックアップテーブル(LUT)を取得することと、
前記第1LUTに基づいて前記第1画像のピクセルの前記ブロックを取得することと、
を含み、
前記画像タイルの各々は、1以上の前記デワープ行列をそれぞれ用いて、取得された1以上のピクセルの前記ブロックから補間される、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、一般には、画像処理に関する。
【背景技術】
【0002】
画像処理は、画像撮影デバイス(カメラなど)の能力または制限を考慮して、元の光景をできるだけ正確に再現し得るように、撮影された画像をディスプレイ上に描写することを可能にする。例えば、広角レンズは、標準的なレクティリニアレンズよりも大きな視野(field of view)(FOV)を撮影するために使用される場合がある。しかしながら、広角レンズは、撮影された画像に幾何学的な非線形の歪みをまた導入する。幾何学的な歪みの例としては、放射状歪み又は樽状歪み、及び、接線歪み等が挙げられる。したがって、画像処理は、光景がより直線的に示されるように、撮影された画像の幾何学的な歪みを補正する場合がある。レンズ光学系及び/又は画像撮影デバイスのパースペクティブによって導入された幾何学的な歪みを逆転させるプロセスは、しばしばデワープと呼ばれる。
【発明の概要】
【0003】
この要約は、以下の詳細な説明において更に説明される概念の選択を、簡略な態様で紹介するために提供される。この要約は、請求された主題のキーとなる特徴、又は、必須の特徴を特定することを意図したものではなく、請求された主題の範囲を制限することを意図したものでもない。
【0004】
画像処理のための方法及び装置が開示される。本開示の革新的な一側面は、画像処理の方法として実装され得る。いくつかの実施形態では、当該方法は、順序付けられたシークエンスで、歪んだ画像空間における光景を描写する第1画像のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするための複数のデワープ行列を取得するステップと、デワープ行列の順序に少なくとも部分的に基づいて、第1画像のピクセルのブロックを取得するステップと、第1画像のピクセルのブロックに基づいて、複数の画像タイルを生成するステップであり、ここで、画像タイルの各々は、1以上のデワープ行列をそれぞれ用いて、取得された1以上のピクセルのブロックから補間されるステップと、複数の画像タイルを組み合わせて、補正された画像空間上の光景を示す第2画像を生成するステップと、を含む場合がある。
【0005】
本開示の革新的な他の側面は、画像処理システムとして実装され得る。いくつかの実施形態では、当該システムは、プロセッサと、メモリと、デワープ回路と、を備える場合がある。当該メモリは、プロセッサによって実行されたときに、システムに、順序付けられたシークエンスで、歪んだ画像空間から補正された画像空間へピクセルを再マッピングするための複数のデワープ行列を生成することを行わせる。
【0006】
デワープ回路は、デワープ行列の順序に少なくとも部分的に基づいて、歪んだ画像空間における光景を示す第1画像のピクセルのブロックを取得し、第1画像のピクセルのブロックに基づいて、複数の画像タイルを生成し、ここで、画像タイルの各々は、1以上のデワープ行列をそれぞれ用いて、取得された1以上のピクセルのブロックから補間され、複数の画像タイルを組み合わせて、補正された画像空間における光景を示す第2画像を生成する、ように構成される。
【図面の簡単な説明】
【0007】
本実施形態は、例として示されており、添付の図面の図によって限定されることを意図するものではない。
【0008】
【
図1】
図1は、いくつかの実施形態に係る、画像撮影及び表示システムのブロック図を示す。
【0009】
【
図2】
図2は、いくつかの実施形態に係る、レンズ幾何学歪み補正(lens geometric distortion correction)(LGDC)回路のブロック図を示す。
【0010】
【
図3】
図3は、いくつかの実施形態に係る、例示的な補正された画像空間を示す。
【0011】
【
図4】
図4は、補正された画像空間と歪んだ画像空間との間の例示的なピクセルマッピングを示す。
【0012】
【
図5】
図5は、いくつかの実施形態に係る、LGDCシステムのブロック図を示す。
【0013】
【
図6】
図6は、いくつかの実施形態に係る、画像空間再マッピング制御器のブロック図を示す。
【0014】
【
図7】
図7は、いくつかの実施形態に係る、タイルデワープ回路のブロック図を示す。
【0015】
【
図8】
図8は、いくつかの実施形態に係る、画像空間再マッピング制御器の他のブロック図を示す。
【0016】
【
図9】
図9は、いくつかの実施形態に係る、例示的な画像処理動作を示す例示的なフローチャートである。
【発明を実施するための形態】
【0017】
以下の説明では、本開示の十分な理解を提供するために、具体的なコンポーネント、回路、及び、処理の例のような、多くの具体的な詳細が示される。本明細書で使われる「結合された」という言葉は、直接に接続されている、又は、仲介する1以上のコンポーネント又は回路を介して接続されていることを意味する。更に、以下の説明において、及び、説明を目的として、本開示の態様の十分な理解を提供するために、特定の命名法が用いられる。しかし、例示的な実施形態を実施するために、これらの具体的な詳細が必要でない場合があることが当業者には明らかであろう。他の例では、本開示が不明確になることを避けるために、周知の回路及びデバイスがブロック図の形式で示される。以下の詳細な説明のいくつかの部分は、過程、ロジックブロック、処理、及び、コンピュータのメモリ内のデータビットへの操作を他の記号で表現したもの、という形で提示されている。回路素子又はソフトウェアブロック間の相互接続は、バス又は単一の信号線として示される場合がある。バスのそれぞれは、代替的に単一の信号線であってもよく、単一の信号線のそれぞれは、代替的にバスであっても良く、単一の信号線又はバスは、コンポーネント間の通信のための無数の物理的又は論理的なメカニズムのうちの任意の1以上を表し得る。
【0018】
後述の議論から明らかなように、特にそうでないと述べられていない場合には、本出願を通して、「アクセスする」、「受信する」、「送信する」、「用いる」、「選択する」、「決定する」、「正規化する」、「乗算する」、「平均する」、「モニタする」、「比較する」、「適用する」、「更新する」、「計測する」、「導出する」、等のような表現を用いて行われる議論は、コンピュータシステム(又は同様の電子計算デバイス)のアクション及び処理を参照していると認められる。これらのコンピュータシステム(又は同様の電子計算デバイス)は、コンピュータシステムのレジスタ及びメモリ内の物理的な(電子的な)量として示されるデータを、コンピュータシステムのメモリ若しくはレジスタ、又は他のそのような情報ストレージ、伝送器、又は表示デバイス内の物理量として同様に示される他のデータに操作及び変換する。
【0019】
本明細書で説明されている技術は、特定の方法で実施されると特に記載されない限り、ハードウェア、ソフトウェア、ファームウェア、又は、それらの任意の組み合わせで実施され得る。モジュール又はコンポーネントとして説明されている任意の構成は、集積ロジックデバイスにまとめて実装されるか、又は、個別に分離されているが相互運用が可能なロジックデバイスとして実装される場合もある。ソフトウェアで実装される場合、本技術は、実行されたときに上述の1以上の方法を実現する命令を含む、コンピュータ読取り可能な非一時的記憶媒体によって少なくとも部分的に実現される場合がある。コンピュータ読取り可能な非一時的記憶媒体は、コンピュータプログラム製品の一部を形成する場合がある。なお、コンピュータプログラム製品は、梱包材を含む場合がある。
【0020】
非一時的なプロセッサ読取り可能な記憶媒体は、同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory)(SDRAM)のようなランダムアクセスメモリ(random access memory)(RAM)、リードオンリーメモリ(read only memory)(ROM)、不揮発性ランダムアクセスメモリ(non-volatile random access memory)(NVRAM)、電子的消去可能プログラマブルリードオンリーメモリ(electrically erasable programmable read-only memory)(EEPROM)、フラッシュメモリ、他の既知の記憶媒体等、を含んでもよい。本技術は追加的に、あるいは代替的に、少なくとも一部が、コードを命令又はデータ構造の形で伝達または通信し、かつ、コンピュータ又は他のプロセッサによってアクセス、読取り、及び/又は、実行が可能な、プロセッサ読取り可能な通信媒体によって実現され得る。
【0021】
本明細書で開示される実施形態に関して説明される様々な例示的なロジックブロック、モジュール、回路、及び、命令は、1以上のプロセッサによって実行され得る。本明細書で用いられる「プロセッサ」という用語は、任意の汎用プロセッサ、従来のプロセッサ、コントローラ、マイクロコントローラ、特定用途プロセッサ、及び/又は、メモリに記憶された1以上のソフトウェアプログラムのスクリプト又は命令を実行可能な状態機械、を示す場合がある。
【0022】
図1は、いくつかの実施形態に係る、画像撮影及び表示システム100のブロック図である。システム100は、画像撮影デバイス110と、画像プロセッサ120と、画像表示デバイス130と、を備える。画像撮影デバイス110は、光景からの光101のパターンを撮影し、撮影した光101をデジタルの画像撮影データ102に変換する。画像撮影データ102は、光景を示すデジタル画像に対応する場合がある。画像表示デバイス130は、対応する表示面上に光パターンを再現することにより、デジタル画像を表示する。いくつかの態様において、画像撮影デバイス110はカメラであってもよく、画像表示デバイス130は(テレビ、コンピュータモニタ、及び、スマートフォン等のような)電子ディスプレイであってもよい。
【0023】
画像プロセッサ120は、画像撮影データ102に対して画像処理を行って、画像表示デバイス130上で(画像撮影デバイス110によって撮影された)元の光景をより正確に再現するために使用可能な画像描写データ103を生成する。いくつかの実施形態では、画像プロセッサ120は、画像撮影デバイス110に組み込まれるか、さもなくば、画像撮影デバイス110に含まれている場合がある。画像プロセッサ120は、画像信号処理(image signal processing)(ISP)モジュール122と、レンズ幾何学歪み補正(LGDC)モジュール124と、を備える。ISPモジュール122は、デジタル画像の品質を向上させるために、画像撮影データ102内の様々なピクセル歪みを補正する場合がある。例示的なピクセル歪みには、周辺光量低下、収差、及びノイズが含まれるが、これらに限定されない。
【0024】
LGDCモジュール124は、画像表示デバイス130上での表示により適した又は最適化された別の画像空間に、画像撮影データ102を変換または転送する場合がある。例えば、画像撮影デバイスの広角レンズは、画像撮影データ102に写された光景に(放射状又は樽状歪み、接線歪み、台形歪み、等といった)幾何学的な歪みを導入する場合がある。したがって、LGDCモジュール124は、撮影された画像又は光景が画像表示デバイス130上でより直線的に見えるように、画像撮影デバイス110によって導入された幾何学的歪みを補正するように構成される場合がある。いくつかの実施形態では、画像描写データ103は、画像表示デバイス130に加えて、又は画像表示デバイス130に代えて、他のデバイスに提供される場合がある。例えば、コンピュータビジョン処理は、直線化された画像から利益を得る場合がある。コンピュータビジョン処理の例は、顔検出、物体検出、及び物体の追跡を含む場合があるが、これらに限定されない。
【0025】
本開示の態様は、特定のアプリケーションが、画像撮影データ102の処理をほぼリアルタイムで行う必要がある場合があることを認識している。例示的なリアルタイムアプリケーションには、(コンテンツ配信ネットワーク、ビデオ監視システム、ビデオ会議システム、等からのものといった)ストリーミングビデオのアプリケーション、及び、(顔認識システム、自動車運転支援システム、拡張現実(augmented reality)(AR)システムといった)コンピュータビジョンのアプリケーションが含まれるが、これらに限定されない。しかしながら、LGDCの作動には、複雑な計算とデータ操作が必要である。完全にソフトウェア上でデワープを行う解法は、中央処理装置(central processing unit)(CPU)の帯域幅又は処理能力の相当の部分を消費する場合がある。一方、完全にハードウェアのデワープアーキテクチャは、かなりの領域を占有する上、幾何学な構成が異なるレンズに対してデワープのアルゴリズムを再構成又は調整するための柔軟性が制限される場合がある。
【0026】
いくつかの実施形態では、画像プロセッサ120は、ハードウェア及びソフトウェアを組み合わせたソリューションとして、LGDCモジュール124を実装する場合がある。より詳細には、本開示の態様は、(例えば、CPU又は特定用途プロセッサによって実行される)ソフトウェアの柔軟性と拡張性を活用して、画像撮影デバイス110のレンズのパラメータに基づいて画像撮影データ102の1以上のピクセルを画像描写データ103の1以上のピクセルに再マッピングするための命令を生成する場合がある。本開示の態様は、更に、ハードウェアロジックの速度及び帯域幅を活用して、CPUによって生成された命令によって規定された計算及びデータ操作を実行する場合がある。
【0027】
いくつかの実施形態では、画像描写データ103の画像空間(例えば、「補正された画像空間」)は、デワープ操作がより細かい粒度で実行され得るように、複数のタイルに分割化又は細分化される場合がある。例えば、各タイルのサイズは、LGDCモジュール124のメモリ帯域幅に少なくとも部分的に基づいて構成又は最適化される場合がある。タイルの粒度でピクセル再マッピング操作を実行することにより、画像撮影データ102のフレームまたは画像をデワープするために必要なハードウェアのオーバーヘッドの量が大幅に削減される。これは更に、画像描写データ103がほぼリアルタイムで生成可能となるように、画像処理のレイテンシ又は遅延を低減する場合がある。
【0028】
図2は、いくつかの実施形態に係る、レンズ幾何学的歪み補正(LGDC)回路200のブロック図である。LGDC回路200は、
図1のLGDCモジュール124の一実施形態であり得る。そのため、LGDC回路200は、歪んだ画像202の幾何学的な歪みを補正するように構成される場合がある。例えば、幾何学的な歪みは、歪んだ画像202を取得するために、又は、そうでなければ歪んだ画像202を生成するために使用される画像撮影デバイスのレンズ及び/又は他の特性によって導入される場合がある。いくつかの実施形態では、デワープ回路部210は、補正された画像204が実質的に直線的に見えるように、歪んだ画像202の1以上のピクセルを補正された画像204の1以上のピクセルに再マッピングするように構成される場合がある。
【0029】
図2の実施形態では、歪んだ画像202は、広角レンズを有するカメラ(又は他の画像撮影デバイス)によって撮影される場合がある。その結果、歪んだ画像202に描写された光景には、放射状に歪んで見える。例えば、(建物といった)直線を有する物体は、歪んだ画像202においては湾曲して見える。これに対し、補正された画像204に描かれた光景は、直線的に見える。例えば、直線を有する物体は、補正された画像204において直線的に見える。本明細書で使用する場合、「歪んだ画像空間、又は、DIS(distorted image space)」との用語は、歪んだ画像202の画像空間(例えば、デワープ前)を示し、「補正画像空間、又は、CIS(corrected image space)」との用語は、補正された画像204の画像空間(例えば、デワープ後)を示す。
【0030】
LGDC回路200は、デワープ回路部210とメモリ220とを含む。デワープ回路部210は、歪んだ画像202に対応する画像データを受信する場合があり、補正された画像204に対応する補正された画像データを出力する場合がある。いくつかの態様において、補正された画像204は、歪んだ画像202と同じ寸法(例えば、ピクセルの高さ及びピクセルの幅)を有している場合がある。しかしながら、補正された画像204には、歪んだ画像202よりも少ない光景が描写される場合がある。例えば、歪んだ画像202の左上隅にある建物は、補正された画像204には描写されない。そして、デワープ回路部210は、歪んだ画像202の1以上のピクセルから補正された画像204の各ピクセルを補間する場合がある。
【0031】
いくつかの実施形態では、デワープ回路210は、画像撮影デバイスのカメラの1以上のレンズパラメータ206に少なくとも部分的に基づいて、歪んだ画像空間から補正された画像空間へのピクセルの再マッピングを決定する場合がある。例示的なレンズパラメータ206は、レンズの幾何学な構成及び焦点距離を含む場合があるが、これらに限定されない。デワープ処理は、カメラレンズによって導入された幾何学的歪みを逆転させることであるため、ピクセルの再マッピングは、カメラのレンズによって作成されたピクセルのマッピングの逆である場合がある。いくつかの態様では、デワープ回路部210は、多項式のレンズモデルに基づいてピクセルの再マッピング計算を決定する場合がある。いくつかの他の態様では、デワープ回路部210は、非多項式のレンズモデルに基づいてピクセル再マッピング計算を決定する場合がある。
【0032】
メモリ220は、デワーピングの処理を完了するために必要な任意のデータを記憶またはバッファするように構成される場合がある。メモリ220に記憶されたデータは、カメラのレンズパラメータ206、ピクセルの再マッピング計算(例えば、行列)、歪んだ画像のブロックをフェッチするためのインデックスの順序、歪んだ画像202の画像データ、及び補正された画像204の画像データを含み得るが、これらに限定されない。メモリ220の記憶容量は限られているため、歪んだ画像202及び/又は補正された画像204のフレーム全体についてのピクセルデータの完全なセットを記憶することは(不可能ではないにしても)非効率的であり得る。そのため、いくつかの実施形態では、LGDC回路200は、補正された画像204の小部分(例えば、タイル)を一度に生成するように構成される場合がある。補正された画像204の各部分は、歪んだ画像202のピクセルのうち相対的に小さいサブセット(例えば、ブロック)上のみで補間されるため、本開示の態様は、メモリ220のメモリ帯域幅の要件を大幅に低減させ得る。
【0033】
図3は、いくつかの実施形態に係る、例示的な補正された画像空間300を示す。補正された画像空間300は、
図2の補正された画像204の画像空間の一実施形態であり得る。
図3に示すように、補正された画像空間300は、サイズが等しい又はサイズが均一な複数のタイルT1(1)-Tn(m)に分割又は細分化される。各タイルは、補正された画像空間300の複数のピクセルを含む場合がある。いくつかの実施形態では、各タイルのサイズ(例えば、ピクセルの高さ及びピクセルの幅)は、少なくとも部分的に、(
図2のメモリ220のような)LGDC回路のメモリ帯域幅に基づく場合がある。いくつかの他の実施形態では、各タイルのサイズは、少なくとも部分的に、補正された画像(
図2の補正された画像204など)のピクセル深度及び/又はカラーフォーマットに基づく場合がある。
【0034】
タイルの各列は、それぞれにストライドを形成する場合がある。例えば、ストライドS1はタイルT1(1)-T1(m)を含む場合があり、ストライドS2はタイルT2(1)-T2(m)を含む場合があり、ストライドS3はタイルT3(1)-T3(m)、を含む場合があり、以下同様である。したがって、ストライドS1-Snはそれぞれ、補正された画像空間300の幅(例えば、タイルT1(1)-T1(m)のピクセルを組み合わせた幅に対応する)に渡る場合があり、タイルのうちの1ピクセルの高さに等しい高さを有する場合がある。いくつかの実施形態において、デワープ処理は、ラスタ順序で、一度に1ストライドずつ、タイルのそれぞれに対して実行される場合がある。例えば、デワープ回路部は、ストライドS2の各タイルを左から右へ(たとえば、T2(1)、T2(2)、…、T2(m))処理する前に、ストライドS1の各タイルを連続的に処理する場合がある(たとえば、T1(1)、T1(2)、…、T1(m))。
【0035】
各ストライドのサイズ及び寸法は、少なくとも部分的に、表示更新のラスタ順序及び/又は各更新の粒度に基づく場合がある。
図3の実施形態では、例えば、水平表示更新のためのほぼリアルタイムのデワープをサポートするために、ストライドS1-Snが補正された画像空間300の水平行と対応するように示されている。他の実施形態では、例えば、垂直表示更新のためのほぼリアルタイムのデワープをサポートするために、ストライドが補正された画像空間300の垂直列と対応する場合がある。例えば、デワープ回路部は、タイルの次の列について上から下へ(例えば、T1(2)、T2(2)、…、Tn(2))行う処理に進む前に、タイルの列全体を上から下へ(例えば、T1(1)、T2(1)、…、Tn(1))連続的に処理する場合がある。さらに、いくつかの実施形態では、補正された画像空間300の複数のストライドが同時に処理される場合がある(例えば、マルチスレッドを用いて)。
【0036】
本開示の態様は、補正された画像空間300と歪んだ画像空間との間のピクセルのマッピングが非線形であり得ることを認識している。
図2の例を参照して、幾何学的な歪みは、画像の中心と比較して、歪んだ画像202のエッジ又は周辺部でより顕著になる場合がある。したがって、補正された画像204の中心部のピクセルは、歪んだ画像202の中心部のピクセルにマッピングされる可能性がある。しかしながら、補正された画像204の角及び縁におけるピクセルは、歪んだ画像202のそれぞれの角及び縁におけるピクセルにマッピングされない場合がある。むしろ、補正された画像204の角及び縁のピクセルは、歪んだ画像202の中心により近いピクセルにマッピングされる場合がある。
【0037】
図4は、補正された画像空間410と歪んだ画像空間420との間の例示的なピクセルマッピング400を示す。補正された画像空間410は、
図3の補正された画像空間300の一実施形態であり得る。
図4の実施形態では、歪んだ画像空間420の中心部では、比較的、歪みが顕著でない。例えば、補正された画像空間410の中心におけるタイル412は、歪んだ画像空間420の中心におけるピクセル422のブロックにマッピングされる場合がある。しかしながら、歪んだ画像空間420のエッジに向かって歪みが顕著に大きくなる。例えば、補正された画像空間410の左上隅のタイル414、タイル416、及び、タイル418はそれぞれに、歪んだ画像空間420のピクセル424の同じブロックにマッピングされる場合がある。
【0038】
そのため、いくつかの実施形態では、それぞれのデワープ行列(または行列のセット)が、補正された画像空間410の各タイルについて生成される場合がある。各デワープ行列は、補正された画像空間410の特定のタイルと、歪んだ画像空間420内の対応するピクセルのブロックとの間のピクセルマッピングを定義する場合がある。いくつかの実施形態では、歪んだ画像空間420内のピクセルの各ブロックのサイズ(例えば、ピクセルの高さ及びピクセルの幅)は、少なくとも部分的に、補正された画像空間410の各タイルのサイズ及び/又はLGDC回路部のメモリ帯域幅に基づく場合がある。いくつかの態様において、補正された画像空間410のブロックのサイズ、及び、歪んだ画像空間420のタイルのサイズは、メモリ記憶フォーマットのタイル粒度に少なくとも部分的に基づいて構成される場合がある。より詳細には、タイルの粒度は、メモリに記憶された画像の画像フォーマット及びピクセル深度に応じて、ブロック及び/又はタイルのサイズを制限する場合がある。
【0039】
いくつかの実施形態では、補正された画像空間410のブロックのサイズと歪んだ画像空間420のタイルのサイズとの間の関係もまた、1以上のレンズ歪みパラメータに関連して変化する場合がある。例えば、歪んだ画像空間420が補正された画像空間410よりも実質的に広い視野を表すとき、歪んだ画像空間420のブロックサイズは、補正された画像空間410のタイルサイズよりも有意に大きくなる場合がある。しかしながら、それほど大きくない歪みについては、歪んだ画像空間420のブロックのサイズが、補正された画像空間410のタイルのサイズと近くなる場合がある。いくつかの態様において、歪んだ画像空間420のブロックは、補正された画像空間410のタイルよりも(例えば、少なくとも2倍のサイズで)大きい場合がある。以下でより詳細に説明するように、これは、補正された画像空間410の各タイルの処理のために必要となるブロック読出し処理(例えば、メモリからの)の数及び/又は頻度を低減させる場合がある。
【0040】
図5は、いくつかの実施形態に係る、LGDCシステム500のブロック図である。LGDCシステム500は、
図2のLGDC回路200の一実施形態であり得る。したがって、LGDCシステム500は、画像撮影データ501内の幾何学的な歪みを補正するように構成される場合がある。LGDCシステム500は、画像空間再マッピング制御器510と、メモリ520と、タイルデワープ回路530と、を備える。
【0041】
画像空間再マッピング制御器510は、画像撮影データ501のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするために用いられる再マッピングデータ502を生成するように構成される場合がある。いくつかの実施形態では、再マッピングデータ502は、複数のデワープ行列と、デワープ行列によって使用されるべき、画像撮影データ501のピクセルのブロックを特定する複数のルックアップテーブル(lookup table)(LUT)と、を備える場合がある。
図3及び
図4に関連して説明したように、各デワープ行列は、補正された画像空間のそれぞれのタイルと歪んだ画像空間の1以上のピクセルのブロックとの間のピクセルマッピングを定義する場合がある。したがって、デワープ行列は、デワープ回路530によって実行されるべき一連のデワープ処理(例えば、計算)を定義する場合がある。
【0042】
画像空間再マッピング制御器510は、画像撮影データ501を撮影するために使用される画像撮影デバイスに関連付けられたレンズ構成データ503に少なくとも部分的に基づいて、デワープ行列を生成する場合がある。例えば、レンズ構成データ503は、画像撮影デバイスの(レンズの幾何学的な構成及び焦点距離といった)1以上のレンズパラメータを示す場合がある。いくつかの態様において、レンズ構成データ503は、デバイスの製造段階において再マッピング制御器510に提供される場合がある。いくつかの他の態様では、レンズ構成データ503及び/又は新たなレンズ構成データは、LGDCシステム500の製造後の任意の時点において再マッピング制御器510に提供される場合がある。したがって、LGDCシステム500は、様々な画像撮影デバイスによって撮影された画像をデワープするように構成(および再構成)される場合がある。
【0043】
LUTは、画像撮影データ501のピクセルのブロックがデワープ回路530によって取得され処理されるその順序を特定する場合がある。LUTによって特定されるブロックの順序は、少なくとも部分的に、デワープ回路530によってデワープ行列が実行されるべき順序に基づく場合がある。より詳細には、LUTは、デワープ回路530が、補正された画像空間の各タイルを補間するために、正しい順序で、ピクセルの必要なブロックを取得することを保証する場合がある。いくつかの実施形態において(例えば、
図3に関連して上記で説明したように)、デワープ行列は、デワープ回路530によってラスタ順序で処理される場合がある。したがって、LUTによって特定されるブロックの順序もまた、補正された画像空間におけるタイルのラスタ順序に依存する場合がある。
【0044】
メモリ520は、デワープ処理を完了するために必要な任意のデータを記憶またはバッファリングするように構成される場合がある。いくつかの実施形態では、メモリ520は、ダイナミックランダムアクセスメモリ(DRAM)である場合がある。メモリ520は、再マッピングデータストア522、歪画像空間(DIS)画像データストア524、及び、補正画像空間(CIS)画像データストア526を含む場合がある。再マッピングデータストア522は、再マッピング制御器からの再マッピングデータ502を記憶又はバッファリングする場合がある。DIS画像データストア524は、画像撮影データ501を記憶又はバッファリングする場合がある。いくつかの態様では、DIS画像データストア524は、歪んだ画像空間における光景を描写するフルフレームのピクセルデータを記憶するように構成される場合がある。CIS画像データストア526は、(
図1の画像表示デバイス130のような)別のデバイスまたは電子システムに出力されるべき画像描写データ507を記憶またはバッファリングする場合がある。いくつかの態様では、CIS画像データストア526は、補正された画像空間における光景を描写するフルフレームのピクセルデータを記憶するように構成される場合がある。
【0045】
デワープ回路530は、画像撮影データ501に基づいて画像描写データ507を生成するように構成される場合がある。例えば、デワープ回路530は、画像撮影データ501の1以上のピクセルから、(例えば、双三次補間の技術を用いて)画像描写データ507の各ピクセルを補間する場合がある。いくつかの実施形態では、デワープ回路530は、補正された画像空間のタイルごとの粒度で作動する場合がある。より詳細には、デワープ回路530は、再マッピングデータストア522に記憶されるデワープ行列の順序(例えば、ラスタ順序)に基づき、補正された画像空間の各タイルを順次、処理する場合がある。
【0046】
デワープ回路530は、再マッピングデータストア522から再マッピングデータ502を取得して、補正された画像空間の各タイルに対応するデワープ行列を決定する場合がある。デワープ回路530はまた、再マッピングデータ502に含まれるLUTに基づいて、処理される(例えば、画像撮影データ501の)ピクセルのブロックを決定する場合がある。例えば、デワープ回路530は、LUTによって特定される順序で、DIS画像データストア524から1以上のDIS画像ブロック504を取得する場合がある。デワープ回路530は、デワープ行列によって定義されるように、DIS画像ブロック504に対して双三次補間を実行し、1以上のCIS画像タイル506を生成する場合がある。デワープ回路530はそして、CIS画像タイル506を画像描写データ507としてCIS画像データストア526に記憶する場合がある。したがって、CIS画像タイル506は、補正された画像空間における画像撮影データ501の光景を描写するフルフレームの画像を生成するために、(たとえば、ラスタ順序で)組み合わされる場合がある。
【0047】
いくつかの実施形態では、再マッピング制御器510は、ソフトウェアで実現される場合がある。例えば、再マッピング制御器510は、汎用のプロセッサ又はCPUによって実行される命令のセットを含む場合がある。これにより、デワープ行列の設計及び/又は構成において、より大きなスケーラビリティ及び柔軟性が提供される。例えば、カメラレンズの幾何学的歪みを反転させるためのアルゴリズムは、ユーザによって設定可能(及び再構成可能)である場合がある。したがって、本開示の態様は、(例えば、放射状歪みの、又は、接線歪みを補正するために)多項式のレンズモデルまたは非多項式のレンズモデルに基づくデワープ行列をサポートする場合がある。いくつかの他の態様において、デワープ行列は、チルト、ズーム、回転、及び、焦点の変更を含む(だがこれらに限定されない)追加的な幾何学的歪み補正をサポートするように構成または更新される場合がある。
【0048】
いくつかの実施形態において、デワープ回路530は、ハードウェアで実装される場合がある。例えば、デワープ回路530は、双三次補間または他のピクセル再マッピング機能といった、デワープ行列によって定義される計算又は数学的演算を実行するためにハードウェア化された、トランジスタまたはロジックゲートのセットを備える場合がある。これは、画像描写データ507を補間する際に、より速い速度及び帯域幅を提供する。タイルサイズの粒度で画像描写データ507を処理することによって、本開示の態様は、利用可能な帯域幅およびリソースの使用を最適化しつつも、デワープ処理のレイテンシを更に減少させ得る。その結果、画像描写データ507のフレームは、(たとえば、画像撮影データ501がシステム500によって受信されるのと実質的に同じ速度で、画像描写データ507がLGDCシステム500によって出力されるように)ほぼリアルタイムで生成され得る。
【0049】
図6は、いくつかの実施形態に係る、画像空間再マッピング制御器600のブロック図である。再マッピング制御器600は、
図5の画像空間再マッピング制御器510の一実施形態であり得る。したがって、再マッピング制御器600は、
図5の画像撮影データ501のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするために使用するべき再マッピングデータを生成するように構成される場合がある。いくつかの実施形態では、再マッピング制御器600は、補正画像空間(CIS)の各ストライド602についてストライド再マッピングデータセット604を生成する場合がある。再マッピング制御器600は、デワープ行列生成器610及び画像ブロックLUT生成器620を備える。
【0050】
デワープ行列生成器610は、少なくとも部分的に、画像撮影デバイスに関連付けられたレンズ構成データ603に基づいて、複数のデワープ行列M(1)-M(m)を生成するように構成される。各デワープ行列M1(1)-M(m)は、現在のCIS行列ストライド602のうちのそれぞれのCIS行列タイルT(1)-T(m)と関連付けられる場合がある。各CIS行列タイルT()の行列要素は、CISピクセルの行及び列のインデックスを参照し得る。いくつかの実施形態では、デワープ行列M(1)-M(m)は、CISのピクセルと歪画像空間(DIS)のピクセルとの間のピクセルマッピングを定義する場合がある。したがって、各デワープ行列M()の行列要素は、DISピクセルの行及び列のインデックスを参照し得る。
【0051】
いくつかの実施形態では、行列生成器610は、(例えば、
図3に関連して上記で説明したように)CIS行列タイルT(1)-T(m)の各々をラスタ順序で処理する場合がある。いくつかの態様において、デワープ行列の各要素は、参照されたDISブロック内のピクセルへの高精度なピクセル参照を含む場合がある。所与のCIS行列タイルの各ピクセルを処理するときに、関連するデワープ行列の要素はまた、そこからピクセルが補間されるべきDISブロック内のピクセル内DISピクセルを参照するための1以上の部分座標を特定する。
【0052】
画像ブロックLUT生成器620は、各CIS行列ストライド602に対して、ブロックルックアップテーブル(LUT)をそれぞれに生成するように構成される。各LUTは、CIS行列ストライド602に関連する1以上のDISブロックを特定する場合がある。メモリバッファ空間が制限され得るため、LUTは、DISブロックが(
図5のタイルデワープ回路530のような)デワープ回路部による処理のために取得されるべき順序を特定する場合がある。より詳細には、DISブロックの順序は、必要なDISブロックがCIS行列タイルT(1)-T(m)の各々の処理のために予めフェッチされ得るように、デワープ行列M(1)-M(m)の順序と合致している場合がある。
【0053】
いくつかの実施形態では、LUT生成器620は、デワープ行列M(1)-M(m)の各々に含まれるピクセル参照に少なくとも部分的に基づいて、LUTに含まれるべきDISブロックを決定する場合がある。例えば、LUT生成器620は、特定のデワープ行列(または行列のセット)内の最大及び最小のピクセル参照によって境界付けられる歪んだ画像空間内の領域を決定する場合がある。LUT生成器620はさらに、特定された領域によって境界付けられる(または特定された領域に一致する)1以上のDISブロックを特定し、当該DISブロックをデワープ行列と関連付ける場合がある。例えば、LUT内の各DISブロックは、それが付されるCIS行列の数、又は、他のインジケータと共に、DISブロックの列及び行のオフセットアドレスによって特定される場合がある。
【0054】
LUTは、デワープ行列M(1)-M(m)に付加され、ストライド再マッピングデータセット604として(
図5のメモリ520のような)システムメモリに記憶される場合がある。いくつかの実施形態では、LUTは、データセット604のストレージへのオーバーヘッドを低減するために(例えば、ランレングス符号化を使用して)圧縮される場合がある。いくつかの他の実施形態では、再マッピング行列M(1)-M(m)もまた、ストレージへのオーバーヘッドをさらに低減し、及び/又は、帯域幅の輻輳を緩和するために圧縮される場合がある。LUT生成器620は、画像撮影データの各フレームについて、補正された画像空間の各ストライド602を連続して(例えば、ラスタ順序で)処理する場合がある。いくつかの態様において、LUT生成器620は、ストライド再マッピングデータセット604の各々を連続的なデータストリームとして出力する場合がある。
【0055】
図7は、いくつかの実施形態に係る、タイルデワープ回路700のブロック図である。デワープ回路700は、
図5のタイルデワープ回路530の一実施形態であり得る。このため、デワープ回路700は、歪んだ画像データに基づいて、補正された画像データを生成するように構成される場合がある。いくつかの実施形態では、デワープ回路700は、歪んだ画像空間の対応するブロックのピクセルデータ706からタイルピクセルデータ708を補間することにより、補正された画像空間の各タイルを個別に(例えば、ラスタスキャンの順序で)処理する場合がある。
【0056】
デワープ回路700は、メモリインタフェース710、ストライド処理制御器720、歪画像空間(DIS)入力バッファ730、補正画像空間(CIS)出力バッファ740、補間器750、及び、タイミング制御器760を備える。メモリインタフェース710は、デワープ回路700がそれを介して(
図5のメモリ520といった)システムメモリと通信可能なインタフェースを提供する。メモリインタフェース710は、ストライド再マッピング(stride remapping)(SR)データ読出しクライアント712、DIS画像ブロック読出しクライアント714、及び、CIS画像ブロック書込みクライアント716を備える場合がある。ストライド再マッピングデータ読出しクライアント712は、ストライド読出しリクエスト701に応答して、メモリからストライド再マッピング(SR)データセット702を読み出す場合がある。DIS画像ブロック読出しクライアント714は、ブロック読出しリクエスト705に応答して、メモリからブロックピクセルデータ706を読み出す場合がある。CIS画像ブロック書込みクライアント716は、タイル書込みリクエスト707に応答して、タイルピクセルデータ708をメモリに書き込む場合がある。いくつかの態様では、CIS画像ブロック書込みクライアント716は、ラスタスキャンの順序でタイルピクセルデータ708をメモリに書き込む場合がある。
【0057】
ストライド処理制御器720は、補正された画像空間のストライドを処理する場合がある。
図3に関連して説明したように、補正された画像空間は、所定のピクセルの高さを有し、補正された画像空間の幅にまたがる複数のストライドを含む場合がある。ストライド処理制御器720は、補正された画像空間の各ストライドを処理するための各ストライド読出しリクエスト701を出力する場合がある。ストライド再マッピングデータ読出しクライアント712は、ストライド読出しリクエスト701に応答して、SRデータセット702をストライド処理制御器720に返送する。
図6に関連して説明したように、SRデータセット702は、ブロックLUTと、複数のデワープ行列M(1)-M(m)と、を含む場合がある。各デワープ行列は、補正された画像空間の各タイルと1以上のDISブロックとの間のピクセルマッピングを定義する場合がある。LUTは、各デワープ行列に服するDISブロックを特定する場合がある。ストライド処理制御器720は、ブロックLUT及びデワープ行列を、それぞれLUTバッファ722及び行列バッファ724に記憶する場合がある。いくつかの実施形態では、行列バッファ724は、一度に単一のデワーピング行列のみを記憶するように構成される場合がある。
【0058】
DIS入力バッファ730は、LUTバッファ722からブロック情報703を読み出して、いずれのDISブロックがメモリから取り出されるべきかを決定する場合がある。例えば、ブロック情報703は、LUTから解析され、デワープ行列が処理されるべき順序でDIS入力バッファ730に提供される場合がある。ブロック情報703は、メモリから読み出されるべき1以上のDISブロックのインデックスと、各DISブロックを参照するデワープ行列の数を示すカウント値と、を含む場合がある。DIS入力バッファ730は、現在のブロック情報703に特定されるインデックスを有する各DISブロック(又はDISブロックの集合)についてのブロック読出しリクエスト705をそれぞれ出力する場合がある。DIS画像ブロック読出しクライアント714は、要求されたDISブロック(又は複数のDISブロック)のブロックピクセルデータ706を、DIS入力バッファ730に返送する。DIS入力バッファ730は、続くブロック情報703がLUTバッファ722から読み出されるまで、ブロックピクセルデータ706を記憶又はバッファリングする場合がある。
【0059】
補間器750は、ブロックピクセルデータ706と、それぞれのデワープ行列704と、に基づいて、補正された画像空間の各タイルを処理する場合がある。例えば、補間器750は、行列バッファ724から各デワープ行列704をラスタ順序で読み出す場合がある。各デワープ行列704について、補間器750は、バッファリングされたブロックピクセルデータ706を用いて、デワープ行列704によって特定されるピクセルマッピングに従って、補正された画像空間の対応するタイルを生成する場合がある。いくつかの実施形態では、補間器750は、ブロックピクセルデータ706内のデワープ行列によって示される基準点の双三次補間に基づいて、各タイルを生成する場合がある。例えば、補間器750は、ブロックピクセルデータ706の4個のルナ(Y)ピクセル及び4個のクロマ(UV)ピクセルと、デワープ行列704によって示されるフラクショナルオフセットと、を用いて各タイルを補間する場合がある。
【0060】
CIS出力バッファ740は、完成されたタイルがCIS出力バッファ740に記憶されるまで、補間器750の出力(例えば、タイルピクセルデータ708)をバッファリングする場合がある。CIS出力バッファ740内のタイルピクセルデータ708が補正された画像空間の完全なタイルを表すとき、CIS出力バッファ740はタイルをシステムメモリに書き戻す場合がある。例えば、CIS出力バッファ740は、タイルピクセルデータ708と共に、タイル書込みリクエスト707をCIS画像ブロック書込みクライアント716に出力する場合がある。いくつかの実施形態では、補間器750が補正された画像空間の次のタイル(又は次のデワープ行列704)の処理を開始する前に、完成された各タイルが、ラスタ順序でシステムメモリに書き込まれる場合がある。これに応じて、画像描写デバイス(または画像解析デバイス)は、デワープ回路700によるデワープが完了すると、ほぼリアルタイムで、タイルピクセルデータ708を描写し得る。
【0061】
タイミング制御器760は、タイミング信号709を生成して、ストライド処理制御器720、DIS入力バッファ730、及び、CIS出力バッファ740のタイミングを制御する場合がある。より詳細には、タイミング信号709は、ストライド処理制御器720、DIS入力バッファ730、及び、CIS出力バッファ740の動作を同期させるために使用される場合がある。例えば、タイミング信号709は、ブロックLUTが最初にLUTバッファ722にロードされること、及び、ストライド処理制御器720がブロックピクセルデータ706に関連するデワープ行列704を取得する前に、DIS入力バッファ730がLUTによって特定されるブロックピクセルデータ706を取得することを保証する場合がある。複数のデワープ行列704が同じブロックピクセルデータ706に依存する場合があるため、DIS入力バッファ730は、連続するデワープ行列704毎に新しいブロックピクセルデータ706を取得する必要はない。いくつかの態様において、DIS入力バッファ730は、補間器750によって処理されたデワープ行列の数がDIS入力バッファ730に記憶された現在のDISブロック(又は複数のDISブロック)に関連するカウント値に達したときに、新しいブロック読出しリクエスト705を出力する場合がある。
【0062】
図8は、いくつかの実施形態に係る、画像空間再マッピング制御器800の別のブロック図である。再マッピング制御器800は、LGDCシステム(
図5のLGDCシステム500など)に実装される場合がある。したがって、再マッピング制御器800は、
図6の画像空間再マッピング制御器600の一実施形態であり得る。再マッピング制御器800は、プロセッサ810及びメモリ820を備える。
【0063】
メモリ820は、画像キャプチャデータ及び/又は画像レンダリングデータを記憶するように構成された画像ピクセルデータストア821を含む場合がある。例えば、画像描写データは、歪んだ画像空間における光景の画像に対応する場合があり、画像描写データは、補正された画像空間におけるシーンの画像に対応する場合がある。メモリ820は、少なくとも以下のソフトウェア(SW)モジュールを記憶可能なコンピュータ読取り可能な非一時的記憶媒体(例えば、EPROM、EEPROM、フラッシュメモリ、ハードドライブといった1以上の不揮発性メモリ素子)を含む場合がある。
●補正画像空間(CIS)のタイルと歪画像空間(DIS)のブロックとの間のピクセルマッピングを表す複数のデワープ行列を生成するデワープ行列SWモジュール822であって、デワープ行列SWモジュール822は更に以下を含む:
〇LGDCシステムのメモリ帯域幅の利用態様に少なくとも部分的に基づいて、各CISタイルのサイズを設定するタイル設定サブモジュール823;
〇多項式レンズモデルに基づいてピクセルマッピングを決定する多項式モデリングサブモジュール824;及び
〇非多項式レンズモデルに基づいてピクセルマッピングを決定する非多項式モデリングサブモジュール825;及び
●各デワープ行列に関連する1以上のDISブロックを特定する複数のブロックLUTを生成するブロックLUTSWモジュール826であって、ブロックLUTSWモジュール826は更に以下を含む:
〇LGDCシステムのメモリ帯域幅の利用態様に少なくとも部分的に基づいて各DISブロックのサイズを設定するブロック設定サブモジュール827、及び
〇少なくとも部分的に、デワープ行列の順序に基づいて、DISブロックの各々のフェッチ順序を決定するブロック順序サブモジュール828。
各ソフトウェアモジュールは、プロセッサ810によって実行されるときに、再マッピング制御器800に対応する機能を実行させる命令を含む。
【0064】
プロセッサ810は、再マッピング制御器800に記憶された1以上のソフトウェアプログラムのスクリプトまたは命令を実行可能な任意の適切な1以上のプロセッサである場合がある。例えば、プロセッサ810は、命令822-命令828を実行して、補正された画像空間の各ストライドに対する(
図6のデータセット604といった)ストライド再マッピングのデータセットを生成する場合がある。いくつかの実施形態では、プロセッサ810は、レイテンシの改善のために、複数のストライドに対して同時に又は並行して(例えば、マルチスレッドを用いて)演算を行うように構成される場合がある。より詳細には、ソフトウェアプロセスレイテンシは、プロセッサ810によって同時に作動されるスレッド数を増加させることによって低減され得る。
【0065】
プロセッサ810は、デワープ行列SWモジュール822を実行して、CISのタイルとDISのブロックとの間のピクセルマッピングを表す複数のデワープ行列を生成する場合がある。デワープ行列SWモジュール822を実行する際に、プロセッサ810は、タイル設定サブモジュール823、多項式モデリングサブモジュール824、及び/又は、非多項式モデリングサブモジュール825を更に実行する場合がある。例えば、プロセッサ810は、タイル設定サブモジュール823を実行して、LGDCシステムのメモリ帯域幅の利用態様に少なくとも部分的に基づいて、各CISタイルのサイズを設定する場合がある。更に、プロセッサ810は、多項式モデリングサブモジュール824を実行して、多項式レンズモデルに基づいてピクセルマッピングを決定する場合がある。その上更に、プロセッサ810は、非多項式モデリングサブモジュール825を実行して、非多項式レンズモデルに基づいてピクセルマッピングを決定する場合がある。
【0066】
また、プロセッサ810は、ブロックLUTSWモジュール826を実行して、各デワープ行列に関連する1以上のDISブロックを特定する複数のブロックLUTを生成する場合がある。ブロックLUTSWモジュール826を実行する際に、プロセッサ810は、ブロック設定サブモジュール827、及び/又は、ブロック順序サブモジュール828を更に実行する場合がある。例えば、プロセッサ810は、ブロック設定サブモジュール827を実行して、LGDCシステムのメモリ帯域幅の利用態様に少なくとも部分的に基づいて、各DISブロックのサイズを設定する場合がある。更に、プロセッサ810は、ブロック順序サブモジュール828を実行して、デワープ行列の順序に少なくとも部分的に基づいて、DISブロックの各々のフェッチ順序を決定する場合がある。
【0067】
図9は、いくつかの実施形態に係る、例示的な画像処理動作900を示す例示的なフローチャートである。
図7の例を参照して、動作900は、歪んだ画像データに基づいて補正された画像データを生成するために、タイルデワープ回路700によって実行される場合がある。
【0068】
デワープ回路は、順序付けられたシーケンスで、第1画像のピクセルを歪んだ画像空間から補正された画像空間へ再マッピングするための複数のデワープ行列を、取得する場合がある(910)。第1画像は、歪んだ画像空間上での光景を示す場合がある。例えば、デワープ回路は、メモリからストライド再マッピングのデータセットを取得する場合がある。データセットは、ラスタ順序で配列された複数のデワープピクセルを含む場合がある。各デワープ行列は、CISタイルと1以上のDISブロックとの間のピクセルマッピングをそれぞれに定義する場合がある。
【0069】
デワープ回路は、デワープ行列の順序に少なくとも部分的に基づいて、第1画像のピクセルのブロックを取得する場合がある(920)。例えば、ストライド再マッピングのデータセットは、各デワープ行列に服するDISブロックを特定するブロックLUTをさらに含む場合がある。したがって、DISブロックの順序は、少なくとも部分的に、デワープ行列がデワープ回路によって取得され処理されるべき順序に基づく場合がある。いくつかの実施形態では、デワープ回路は、LUTで特定された順序でDISブロックを取得する場合がある。
【0070】
デワープ回路は、第1画像のピクセルのブロックに基づいて複数の画像タイルを生成する場合がある。ここで、各画像タイルは、取得された1以上のピクセルブロックから、1以上のデワープ行列をそれぞれ用いて補間される(930)。例えば、デワープ回路は、取得されたDISブロックとそれぞれのデワープ行列とに基づいて、補正された画像空間の各タイルを処理する場合がある。いくつかの実施形態では、デワープ回路は、DISブロック内のデワープ行列によって示される基準点の双三次補間に基づいて、各CISタイルを生成する場合がある。
【0071】
次に、デワープ回路は、複数の画像タイルを組み合わせて、補正された画像空間における光景を示す第2画像を生成する場合がある(940)。
図3に関連して上記で説明したように、複数のCISタイルは、ラスタ順序に配置されたときに、補正された画像空間上でのフルフレーム画像を形成する場合がある。いくつかの実施形態では、デワープ回路は、補正された画像空間の次のタイル(または次のデワープ行列)を処理する前に、各補間されたタイルをメモリに書き戻す場合がある。このため、画像描写デバイス(または画像解析デバイス)は、デワープ回路によるデワープが完了すると、ほぼリアルタイムで、第2画像をレンダリングし得る。
【0072】
当業者は、様々な異なる任意のテクノロジー及び技術を用いて、情報及び信号が表し得ることを理解するであろう。例えば、上述の説明を通して参照され得るデータ、命令、コマンド、情報、信号、ビット、記号、及び、チップは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光粒子、又は、これらの任意の組合せによって表し得る。
【0073】
さらに、当業者は、本明細書で開示された態様に関連して説明された様々な例示的なロジックブロック、モジュール、回路、及び、アルゴリズムのステップが、電気的なハードウェア、コンピュータソフトウェア、又は、両者の組合せとして実装し得ることを理解しよう。このハードウェアとソフトウェアの交換可能性を明確に図示するために、例示的な様々なコンポーネント、ブロック、モジュール、回路、及び、ステップが、一般に、その機能性の観点から上述のように説明されてきた。このような機能がハードウェア又はソフトウェアの何れで実装されるかは、システム全体に要求される特定のアプリケーションとデザイン上の制約に依存する。当業者は説明された機能を特定のアプリケーション毎に様々な方法で実装し得るが、そのような実装上の決定が、本開示の範囲からの逸脱を引き起こすと解釈されてはならない。
【0074】
本明細書で開示された態様に関連して説明された方法、手順、又はアルゴリズムは、ハードウェアにより直接的に、プロセッサによって実行されるソフトウェアモジュールにより、あるいは、両者の組合せにより、具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、又は、当技術分野において既知の他の形式の記憶媒体に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。あるいは、記憶媒体はプロセッサに統合されてもよい。
【0075】
前述の明細書では、その具体的な例を参照して実施形態が説明されてきた。しかしながら、添付の特許請求の範囲に提示されているように、本開示のより広い範囲を逸脱することなく、それらに対して様々な変形や変更が成し得ることは明らかであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で解釈される。