(57)【特許請求の範囲】
【請求項１】
ビデオを処理するシステムであって：
ビデオ・カメラ；
処理ユニット；及び
ビデオ・ディスプレイ；
を有し、前記ビデオ・カメラは、最終フレームと複数の先行フレームとを含む複数の一連のルミナンス・フレームを生成するように構成され、前記処理ユニットは：
前記最終フレームに対して前記先行フレームを整合させるように前記複数の先行フレームをシフトさせ、シフトされた複数のフレームを形成すること；
前記複数のフレーム各々にフーリエ変換を行い、対応する複数の初期フーリエ変換フレームを形成すること；
複数の反復のうちの(n+1)番目の反復に関し、各々のフーリエ変換フレームを、n番目の反復のフーリエ変換フレームの線形結合で置換することにより、複数のフーリエ変換フレームを反復的に更新することであって、0番目の反復のフーリエ変換フレームは前記初期フーリエ変換フレームである、こと；及び
最終反復のフーリエ変換フレームの平均についての逆フーリエ変換を行い、エンハンスト・ルミナンス・フレームを形成すること；
を行うように構成され、前記ビデオ・ディスプレイは前記エンハンスト・ルミナンス・フレームを表示するように構成される、システム。
【請求項２】
前記複数のフーリエ変換フレームを反復的に更新することは、(n+1)番目の反復に関し、前記複数のフーリエ変換フレームのk番目のフーリエ変換フレームを
【数１０】
0006462152.tif 000013
により置換することを含み、^uk-1n、^ukn及び^uk+1nは、n番目の反復についての(k-1)番目、k番目及び(k+1)番目のフーリエ変換フレームであり、
【数１１】
0006462152.tif 000014
は要素毎の比率であり、ただし、1は恒等行列であり、
【数１２】
0006462152.tif 000015
であり、pは1.1より大きく且つ2.0より小さなスカラーであり、λはスカラーであり、μはスカラーであり、Cknはスカラーである、請求項1に記載のシステム。
【請求項３】
λ>2及びλ<10である、請求項2に記載のシステム。
【請求項４】
μ>0.5及びμ<2である、請求項2に記載のシステム。
【請求項５】
【数１３】
0006462152.tif 000016
であり、αはスカラーである、請求項2に記載のシステム
【請求項６】
α>2及びα<10である、請求項5に記載のシステム。
【請求項７】
前記ビデオ・カメラは、最終クロミナンス・フレームと複数の先行クロミナンス・フレームとを含む複数の一連のクロミナンス・フレームを生成するように構成され、前記処理ユニットは：
前記最終クロミナンス・フレーム及び前記先行クロミナンス・フレームの各々をアップサンプリングし；
前記先行クロミナンス・フレームをシフトし；
前記最終クロミナンス・フレームと前記先行クロミナンス・フレームとを平均化して平均クロミナンス・フレームを形成し；
前記平均クロミナンス・フレームをサブサンプリングし、サブサンプリングされたクロミナンス・フレームを形成し；
前記サブサンプリングされたクロミナンス・フレームを遅延させ；及び
サブサンプリングされ遅延させたクロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成する；
ように構成され、前記ビデオ・ディスプレイは、サブサンプリングされ遅延させたクロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームとともに、表示するように構成される、請求項1に記載のシステム。
【請求項８】
前記最終クロミナンス・フレーム及び前記先行クロミナンス・フレームの各々をアップサンプリングすることは、4:4:4のサブサンプリング比にアップサンプリングすることを含む、請求項7に記載のシステム。
【請求項９】
前記平均クロミナンス・フレームのサブサンプリングは、4:2:0のサブサンプリング比にサブサンプリングすることを含む、請求項7に記載のシステム。
【請求項１０】
前記処理ユニットは：
第1メモリ；
第2メモリ；
マルチプレクサ；及び
マス・エンジン
を有し、前記第1メモリは、前記最終フレーム及び前記複数の先行フレームの第1サブセットを保存するように構成され、
前記第2メモリは、前記最終フレーム及び前記複数の先行フレームの第2サブセットを保存するように構成され、及び
前記マルチプレクサは、前記最終フレーム及び前記複数の先行フレームのうちの2又は3フレームを一度に前記マス・エンジンに供給するように構成される、請求項1に記載のシステム。
【請求項１１】
前記複数の先行フレームをシフトさせることは：
前記複数の先行フレームのうちの第1先行フレームをノイズ・フィルタにより処理し、フィルタリングされたフレームを形成すること；
前記フィルタリングされたフレームを水平微分フィルタにより処理し、X微分フレームを形成すること；
前記フィルタリングされたフレームを垂直微分フィルタにより処理し、Y微分フレームを形成すること；
前記X微分フレーム及び前記Y微分フレームから、エッジ強度の2×2マトリクスを形成すること；
前記第1先行フレームから前記最終フレームを減算し、差分フレームを形成すること；
前記差分フレーム、前記X微分フレーム及び前記Y微分フレームから、2要素の勾配ベクトルを形成すること；及び
前記勾配ベクトル及び前記エッジ強度のマトリクスから、シフト推定を形成すること；
を含む、請求項1に記載のシステム。
【請求項１２】
前記水平微分フィルタは水平ソーベル・フィルタであり；及び
前記垂直微分フィルタは垂直ソーベル・フィルタである；
請求項11に記載のシステム。
【請求項１３】
前記エッジ強度の2×2マトリクスは、[sum(gx2)，sum(gx*gy)；sum(gx*gy)，sum(gy2)]であり、
gxは前記X微分フレームであり、
gyは前記Y微分フレームであり、
gx*gyは要素毎の積を示し、
セミコロンはエッジ強度のマトリクスの第1及び第2行の間の区切りを示し、
各々のsumは当該sumの引数の全ての要素にわたって為される、
請求項11に記載のシステム。
【請求項１４】
前記勾配ベクトルは[sum(gx*Diff)，sum(gy*Diff)]であり、
Diffは前記差分フレームであり、
gxは前記X微分フレームであり、
gyは前記Y微分フレームであり、
各々のsumは当該sumの引数の全ての要素にわたって為される、
請求項11に記載のシステム。
【請求項１５】
ビデオ・カメラが、最終ルミナンス・フレームと複数の先行ルミナンス・フレームとを含む複数の一連のルミナンス・フレーム、及び、最終クロミナンス・フレームと複数の先行クロミナンス・フレームとを含む複数の一連のクロミナンス・フレームを生成するステップ；
前記最終ルミナンス・フレームに対して前記先行ルミナンス・フレームの最後の先行ルミナンス・フレームを整合させる推定シフトの分だけ、前記先行ルミナンス・フレームをシフトさせ、複数の整合したルミナンス・フレームを、前記最終ルミナンス・フレームとともに形成するステップ；
前記複数の一連のクロミナンス・フレームの各々をアップサンプリングするステップ；
前記最終クロミナンス・フレームに対して推定シフトの分だけ、前記先行クロミナンス・フレームをシフトさせ、複数の整合したクロミナンス・フレームを形成するステップ；
整合したクロミナンス・フレームを平均化し、平均クロミナンス・フレームを形成するステップ；
前記平均クロミナンス・フレームをサブサンプリングし、サブサンプリングされた平均クロミナンス・フレームを形成するステップ；
整合したルミナンス・フレームを解像度向上モジュールにより処理し、エンハンスト・ルミナンス・フレームを形成するステップ；
ルミナンス情報処理時間とクロミナンス情報処理時間との間の差分に対応する時間インターバルの間に、サブサンプリングされた平均クロミナンス・フレームを保存するステップ；
サブサンプリングされた平均クロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成し、合成フレームを形成するステップ；及び
前記合成フレームをディスプレイにより表示するステップ；
を有する、ビデオを処理する方法。
【請求項１６】
前記複数の一連のクロミナンス・フレームの各々をアップサンプリングすることは、4:4:4のサブサンプリング比にアップサンプリングすることを含む、請求項15に記載の方法。
【請求項１７】
前記平均クロミナンス・フレームをサブサンプリングすることは、4:2:0のサブサンプリング比にサブサンプリングすることを含む、請求項15に記載の方法。
【請求項１８】
サブサンプリングされた平均クロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成することは：
前記エンハンスト・ルミナンス・フレームにスケール因子を乗算すること；及び
前記エンハンスト・ルミナンス・フレームにオフセットを加え、調整されたエンハンスト・ルミナンス・フレームを形成すること；
を含み、
前記調整されたエンハンスト・ルミナンス・フレームのレンジ及びメジアン値が、前記ビデオ・カメラにより生成されるルミナンス・フレームのレンジ及びメジアン値と実質的に同じになるように、前記スケール因子及び前記調整されたエンハンスト・ルミナンス・フレームが選択される、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
政府ライセンス権：本発明は政府の支援とともに為された。政府は本発明に所定の権利を有する。
【０００２】
本発明による実施形態のうち1つ以上の形態は、ビデオ処理に関連し、特に、ビデオ・データにおける大気乱気流(atmospheric  turbulence)の影響を補正するためのシステム及び方法に関連する。
【背景技術】
【０００３】
ビデオが乱気流を介して撮影される場合、例えばビデオ・カメラが搭載された航空機が地表のビデオを取得するような場合であるかもしれないが、その場合、空気中の大気乱気流により画像劣化(例えば、ぼけ(blurring))が生じるおそれがあり、光は、その空気中を通じてその場面からビデオ・カメラの方に進行する。この「ぼけ」は、ビデオの品質を劣化させ、ビデオを観測するオペレータに対して、或いは、自動解析又は制御にビデオを利用する処理装置に対して(ビデオの)値を劣化させてしまう。従って、ビデオ・データに関して大気乱気流の影響を緩和するシステム及び方法が望まれている。
【発明の概要】
【０００４】
本開示の実施形態の一側面は、ビデオ・データに対する大気乱気流の影響を軽減するシステムに方向付けられている。一実施形態において、ビデオ・カメラからのビデオ・データのフレームは、それらを互いに整合させるようにシフトさせられ、乱気流補正モジュールは、ビデオ・データにおける大気乱気流の影響を軽減するように使用される。ビデオ・データのクロミナンス・データは、並列的な経路で処理され、表示又は以後の処理のために、ルミナンス・データと組み合わせられる。
【０００５】
本発明の実施形態によれば、ビデオを処理するシステムが提供され、本システムは：ビデオ・カメラ；処理ユニット；及び、ビデオ・ディスプレイ；を有し、前記ビデオ・カメラは、最終フレームと複数の先行フレームとを含む複数の一連のルミナンス・フレームを生成するように構成され、前記処理ユニットは：前記最終フレームに対して前記先行フレームを整合させるように前記複数の先行フレームをシフトさせ、シフトされた複数のフレームを形成すること；前記複数のフレーム各々にフーリエ変換を行い、対応する複数の初期フーリエ変換フレームを形成すること；複数の反復のうちの(n+1)番目の反復に関し、各々のフーリエ変換フレームを、n番目の反復のフーリエ変換フレームの線形結合で置換することにより、複数のフーリエ変換フレームを反復的に更新することであって、0番目の反復のフーリエ変換フレームは前記初期フーリエ変換フレームである、こと；及び、最終反復のフーリエ変換フレームの平均についての逆フーリエ変換を行い、エンハンスト・ルミナンス・フレームを形成すること；を行うように構成され、前記ビデオ・ディスプレイは前記エンハンスト・ルミナンス・フレームを表示するように構成される、システムである。
一実施形態において、前記複数のフーリエ変換フレームを反復的に更新することは、(n+1)番目の反復に関し、前記複数のフーリエ変換フレームのk番目のフーリエ変換フレームを
【数１】
0006462152.tif 000002
により置換することを含み、^uk-1n、^ukn及び^uk+1nは、n番目の反復についての(k-1)番目、k番目及び(k+1)番目のフーリエ変換フレームであり、
【数２】
0006462152.tif 000003
は要素毎の比率であり、ただし、1は恒等行列であり、
【数３】
0006462152.tif 000004
であり、pは1.1より大きく且つ2.0より小さなスカラーであり、λはスカラーであり、μはスカラーであり、Cknはスカラーである。
【０００６】
一実施形態では、λ>2及びλ<10である。
【０００７】
一実施形態では、μ>0.5及びμ<2である。
【０００８】
一実施形態では、
【数４】
0006462152.tif 000005
であり、αはスカラーである。
【０００９】
一実施形態では、α>2及びα<10である。
【００１０】
一実施形態では、システムは、最終クロミナンス・フレームと複数の先行クロミナンス・フレームとを含む複数の一連のクロミナンス・フレームを含み、処理ユニットは：前記最終クロミナンス・フレーム及び前記先行クロミナンス・フレームの各々をアップサンプリングし；前記先行クロミナンス・フレームをシフトし；前記最終クロミナンス・フレームと前記先行クロミナンス・フレームとを平均化して平均クロミナンス・フレームを形成し；前記平均クロミナンス・フレームをサブサンプリングし、サブサンプリングされたクロミナンス・フレームを形成し；前記サブサンプリングされたクロミナンス・フレームを遅延させ；及び、サブサンプリングされ遅延させたクロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成する；ように構成され、前記ビデオ・ディスプレイは、サブサンプリングされ遅延させたクロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームとともに、表示するように構成される。
【００１１】
一実施形態では、前記最終クロミナンス・フレーム及び前記先行クロミナンス・フレームの各々をアップサンプリングすることは、4:4:4のサブサンプリング比にアップサンプリングすることを含む。
【００１２】
一実施形態では、前記平均クロミナンス・フレームのサブサンプリングは、4:2:0のサブサンプリング比にサブサンプリングすることを含む。
【００１３】
一実施形態において、前記第1メモリは、前記最終フレーム及び前記複数の先行フレームの第1サブセットを保存するように構成され、前記第2メモリは、前記最終フレーム及び前記複数の先行フレームの第2サブセットを保存するように構成され、及び、前記マルチプレクサは、前記最終フレーム及び前記複数の先行フレームのうちの2又は3フレームを一度に前記マス・エンジンに供給するように構成される。
【００１４】
一実施形態において、前記複数の先行フレームをシフトさせることは：前記複数の先行フレームのうちの第1先行フレームをノイズ・フィルタにより処理し、フィルタリングされたフレームを形成すること；前記フィルタリングされたフレームを水平微分フィルタにより処理し、X微分フレームを形成すること；前記フィルタリングされたフレームを垂直微分フィルタにより処理し、Y微分フレームを形成すること；前記X微分フレーム及び前記Y微分フレームから、エッジ強度の2×2マトリクスを形成すること；前記第1先行フレームから前記最終フレームを減算し、差分フレームを形成すること；前記差分フレーム、前記X微分フレーム及び前記Y微分フレームから、2要素の勾配ベクトルを形成すること；及び、前記勾配ベクトル及び前記エッジ強度のマトリクスから、シフト推定を形成すること；を含む。
【００１５】
一実施形態において、前記水平微分フィルタは水平ソーベル・フィルタであり；及び、前記垂直微分フィルタは垂直ソーベル・フィルタである。
【００１６】
一実施形態において、前記エッジ強度の2×2マトリクスは、[sum(gx2)，sum(gx*gy)；sum(gx*gy)，sum(gy2)]であり、gxは前記X微分フレームであり、gyは前記Y微分フレームであり、gx*gyは要素毎の積を示し、セミコロンはエッジ強度のマトリクスの第1及び第2行の間の区切りを示し、各々のsumは当該sumの引数の全ての要素にわたって為される。
【００１７】
一実施形態において、前記勾配ベクトルは[sum(gx*Diff)，sum(gy*Diff)]であり、Diffは前記差分フレームであり、gxは前記X微分フレームであり、gyは前記Y微分フレームであり、各々のsumは当該sumの引数の全ての要素にわたって為される。
【００１８】
本発明の実施形態によれば、ビデオを処理する方法が提供され、本方法は、ビデオ・カメラが、最終ルミナンス・フレームと複数の先行ルミナンス・フレームとを含む複数の一連のルミナンス・フレーム、及び、最終クロミナンス・フレームと複数の先行クロミナンス・フレームとを含む複数の一連のクロミナンス・フレームを生成するステップ；前記最終ルミナンス・フレームに対して前記先行ルミナンス・フレームの最後の先行ルミナンス・フレームを整合させる推定シフトの分だけ、前記先行ルミナンス・フレームをシフトさせ、複数の整合したルミナンス・フレームを、前記最終ルミナンス・フレームとともに形成するステップ；前記複数の一連のクロミナンス・フレームの各々をアップサンプリングするステップ；前記最終クロミナンス・フレームに対して推定シフトの分だけ、前記先行クロミナンス・フレームをシフトさせ、複数の整合したクロミナンス・フレームを形成するステップ；整合したクロミナンス・フレームを平均化し、平均クロミナンス・フレームを形成するステップ；前記平均クロミナンス・フレームをサブサンプリングし、サブサンプリングされた平均クロミナンス・フレームを形成するステップ；整合したルミナンス・フレームを解像度向上モジュールにより処理し、エンハンスト・ルミナンス・フレームを形成するステップ；  ルミナンス情報処理時間とクロミナンス情報処理時間との間の差分に対応する時間インターバルの間に、サブサンプリングされた平均クロミナンス・フレームを保存するステップ；サブサンプリングされた平均クロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成し、合成フレームを形成するステップ；及び、前記合成フレームをディスプレイにより表示するステップ；を有する方法である。
【００１９】
一実施形態では、前記複数の一連のクロミナンス・フレームの各々をアップサンプリングすることは、4:4:4のサブサンプリング比にアップサンプリングすることを含む。
【００２０】
一実施形態では、前記平均クロミナンス・フレームをサブサンプリングすることは、4:2:0のサブサンプリング比にサブサンプリングすることを含む。
【００２１】
一実施形態では、サブサンプリングされた平均クロミナンス・フレームを、前記エンハンスト・ルミナンス・フレームと合成することは：前記エンハンスト・ルミナンス・フレームにスケール因子を乗算すること；及び、前記エンハンスト・ルミナンス・フレームにオフセットを加え、調整されたエンハンスト・ルミナンス・フレームを形成すること；を含み、前記調整されたエンハンスト・ルミナンス・フレームのレンジ及びメジアン値が、前記ビデオ・カメラにより生成されるルミナンス・フレームのレンジ及びメジアン値と実質的に同じになるように、前記スケール因子及び前記調整されたエンハンスト・ルミナンス・フレームが選択される。
【図面の簡単な説明】
【００２２】
添付図面に関連して特徴、側面及び実施形態が説明される。
【００２３】
【図１】本発明の実施形態によるビデオ・システムのブロック図。
【００２４】
【図２】本発明の実施形態によるビデオ処理モジュールのブロック図。
【００２５】
【図３】本発明の実施形態によるフレーム・レジストレーション・モジュールのブロック図。
【００２６】
【図４】本発明の実施形態による乱気流補正モジュールのブロック図。
【００２７】
【図５】本発明の実施形態による算術エンジンのブロック図。
【００２８】
【図６】本発明の実施形態によるクロミナンス処理モジュールのブロック図。
【発明を実施するための形態】
【００２９】
添付図面に関連して以下に記述される詳細な説明は、本発明により提供されるフル・モーション・カラー・ビデオ大気乱気流補正処理方法の例示的な実施形態の説明として意図されており、本発明が構成又は使用される唯一の形式を表現するようには意図されていない。本記述は、図示の実施形態に関連して本発明の特徴を述べている。しかしながら、同一の又は等価な機能及び構造は、本発明の精神及び範囲に包含されるように意図される異なる実施形態によって達成されても良いことが、理解されるべきである。他の場所で示されるように、同様なエレメント番号が同様なエレメント又は特徴を示すように意図されている。
【００３０】
図1に関し、一実施形態において、ビデオ・カメラ110はタレット(turret)115に固定され、タレット115は、航空機、船舶、車両又は人間などのようなプラットフォーム120に固定される。タレット115はビデオ・カメラ110を操縦し；ビデオ・カメラ110からのビデオは、処理されたビデオを生成するビデオ処理モジュール130により処理、処理されたビデオはディスプレイ140に表示される。他の実施形態では、ビデオは制御システムに送信され、制御システムは、例えば、ビデオ画像の中で興味を引く特徴(feature)を追跡するようにタレット115を制御する。
【００３１】
ビデオ処理モジュール130は1つ以上の処理ユニットで実現されても良い。「処理ユニット」という用語は、データ又はディジタル信号を処理するために使用されるハードウェア、ファームウェア及びソフトウェアの任意の組み合わせを含むように、本願では使用される。処理ユニット・ハードウェアは、例えば、特定用途向け集積回路(ASIC)、汎用又は専用の所定の処理ユニット(CPUs)、ディジタル信号プロセッサ(DSPs)、グラフィックス処理ユニット(GPUs)、及び、フィールド・プログラマブル・ゲート・アレイ(FPGAs)のようなプログラム可能な論理デバイス等を含んで良い。処理ユニットにおいては、本願で使用されるように、各々の機能は、その機能を実行するように構成される(すなわち、結線される)ハードウェアにより、或いは、非一時的な記憶媒体に保存される命令を実行するように構成される更に一般的な汎用ハードウェア(例えば、CPU)により、実行される。処理ユニットは、単独のプリント配線基板(PWB)上で構築されても良いし、或いは、複数の相互接続されたPWBsにわたって分散されていても良い。処理ユニットは他の処理ユニットを含んでも良く；例えば、処理ユニットは、PWB上で相互接続される2つの処理ユニット(例えば、FPGA及びCPU)を含んでいても良い。
【００３２】
処理ユニットにおけるデータ処理はモジュールにより実行されても良い。本願で使用されるように、「モジュール」は、ディジタル数値入力を受けてディジタル数値出力を生成するシステム・エレメントである。数値入力及び数値出力はバッチモードでメモリに保存されても良く、バッチモードでは、例えば、出力アレイは、以後の使用又は処理のためにスタック(stack)上に又はヒープ(heap)内に形成及び保存され、或いは、数値入力及び/又は数値出力は、例えば、1度に1つの倍精度数又は1度に1バイトのような小さなインクリメントでモジュールの外にストリーミングされても良い。モジュールは、ソフトウェア、ハードウェア又はそれらの組み合わせで実現されても良い。一実施形態において、各モジュールは、処理ユニットで動作する(例えば、ファンクション、サブルーチン又はオブジェクト等のような)ソフトウェアの一部分である。何れの場合においても、モジュールは、それが受信するデータについてオペレーションを実行し、それが創出するデータを生成する効果を有する。従って、本願で開示される実施形態に関し、オペレーションを実行するモジュールを含むシステムは、そのオペレーションを実行するように構成されるシステムと等価である。例えば、高速フーリエ変換(FFT)モジュールは、そこに供給される入力データについてFFTオペレーションを実行し、入力データのFFTである出力データを形成する。モジュールは他のモジュールを包含又は含んでも良く；例えば、或るファンクションは、別のファンクションを呼び出しても良いし、FPGA等のようなデータ処理ハードウェアの一部分が機能ブロックのような複数のモジュールを含み、それぞれが、FPGAにより実行されるデータ処理に寄与するオペレーションを実行しても良い。
【００３３】
ビデオ処理モジュール130は、乱気流補正(a  turbulence  correction：TC)モジュールを含んでも良く、すなわち、シーンからビデオ・カメラ110へ光が進行して行く途中の空気中における大気乱気流によって生じる虞がある画像劣化(例えば、ぼけ)を軽減する処理モジュールを含んでも良い。
【００３４】
図2を参照すると、ビデオ処理モジュール130は、FPGA1及びFPGA2のような1つ又は複数のフィールド・プログラマブル・ゲート・アレイ(FPGAs)を含んでいる。ビデオ・カメラ110からのビデオ・データ・ストリームは、30Hzのフレームレートで1080p(すなわち、1920×1080ピクセル)の解像度を有するビデオのフル・フレーム(full  frames)を含む。各フル・フレームは、フル・ルミナンス(すなわち、「ルマ」)フレームと、フル・クロミナンス(すなわち、「クロマ」)フレームとを含み；フル・クロミナンス・フレームはサブサンプリングされる(すなわち、サブサンプリングされたものは、フル・ルミナンス・フレームよりも低い解像度を有する)。関心領域抽出モジュールは、受信したフル・ビデオ・フレームから関心領域(a  region  of  interest)を取り出し、対応するフレームをフレーム・メモリに保存し、関心領域がもはや必要とされなくなると、古いフレームを上書きする。ここで使用されるように、「フレーム」は関心領域のフレームを指し、「フル・フレーム」という用語は、ビデオ・カメラ110から受信される完全なビデオ・フレームを指すように使用される。フル・フレームと同様に、(関心領域の)各フレームは、ルミナンス・フレーム及びクロミナンス・フレームを含む。これらのフレームは、例えば256×256ピクセル又は512×256ピクセルであっても良く、ビデオ・カメラ110の視野の中央又はその近辺における正方形又は四角形の領域から構成される。フレームはビデオの品質を向上させるように処理される。関心領域のみを処理することは、ビデオ処理モジュール130における演算負担を削減する。
【００３５】
ビデオ処理モジュール130は、一度にK個(関心領域のうちのK個)のフレームについて処理を施し、K個のフレームは、最新のフレーム(「最新フレーム」)と、最新フレームより前に受信されているK-1個の「先行フレーム」とを含む。一実施形態ではK=6であり、すなわち、システムは一度に6つのフレームについて処理を施す。フレーム・レジストレーション・モジュールは、最新フレームに対して先行フレームを位置合わせする又は整合させる(register)ために使用されるシフトを決定するために使用され、このシフトは、ルミナンス及びクロミナンス・フレームの双方を位置合わせするために使用されて良い。ルミナンス・フレームは、エンハンスト・ルミナンス・フレームを形成するために乱気流補正(TC)モジュールにより処理され、クロミナンス・フレームは、サブサンプル平均クロミナンス・フレームを形成するためにクロミナンス平均化モジュールにより処理される。そして、エンハンスト・ルミナンス・フレームは、出力処理モジュールにおいて、サブサンプル平均クロミナンス・フレームと再合成され、ディスプレイ140で表示されるエンハンスト・カラー・ビデオ・フレーム(すなわち、「出力ビデオ」)を形成する。
【００３６】
図3を参照すると、一実施形態において、フレーム・レジストレーション・モジュールは2つの入力を取得し、2つの入力は：リファレンス・フレーム(すなわち、最新フレーム)と、最新から2番目のフレーム(すなわち、「最新の先行フレーム」、言い換えれば、最新フレームの前に受信したフレーム)である入力フレームとである。リファレンス・フレーム及び入力フレームの双方は、ルミナンス・フレームであっても良い。リファレンス・フレームは、ノイズ・フィルタリング・モジュールにより処理され、このモジュールは、メジアン・フィルタ(例えば、3×3メジアン・フィルタ)、及び/又は、ロー・パス・フィルタ(例えば、7ないし10ピクセルの範囲内のコーナー周波数を有するガウシアン・フィルタのようなロー・パス・フィルタ)を含んでいても良い。メジアン・フィルタ及びロー・パス・フィルタの双方がノイズ・フィルタリング・モジュールで使用される場合、メジアン・フィルタはロー・パス・フィルタに先行しても良いし、その逆でも良い。ノイズ・フィルタリング・モジュールの出力は、各々が数値微分(又は数値差分化)を行う2つの並列的なソーベル・フィルタ(two  parallel  Sobel  filters)により処理され、一方はX方向(水平差分フィルタ)で行われ、一方はY方向(垂直差分フィルタ)で行われる。Xソーベル・フィルタ(又は水平ソーベル・フィルタ)及びYソーベル・フィルタ(又は垂直ソーベル・フィルタ)の出力は、リファレンス・フレームと同一サイズ又は近似的に同一サイズのアレイであり、それぞれ、gx(すなわち、X微分フレーム)及びgy(すなわち、Y微分フレーム)のように言及される。エッジ強度の2×2マトリクスは、次のようにして計算される：
EdgeStrengths=[sum(gx2),sum(gx*gy);sum(gx*gy),sum(gy2)]  
ここで、gx*gyは要素毎の積を示し、セミコロンはマトリクスの第1行と第2行との間の区切りであり、総和関数(sum)はその関数の引数の全ての要素を合計し、EdgeStrengthの数式表現における引数は、それぞれ2次元アレイである。勾配(gradient)が勾配モジュールで計算され、勾配は、
Grad=[sum(gx*Diff),sum(gy*Diff)]
というベクトルであり、ここで、Diffは、差分モジュールで算出された、リファレンス・フレームと入力フレームとの間の差分(図3における「差分画像」)である。グローバル・シフト推定モジュールは、リファレンス・フレームに対して入力フレームを位置合わせするのに必要なシフトの推定値を算出する。この推定値は、
inv(EdgeStrengths)*Grad
として算出され、ここで、inv(EdgeStrengths)は、2×2のEdgeStrengthsマトリクスの逆行列であり、その積は行列積である。そして、入力画像はシフトされ、そのプロセスが反復される。一実施形態では、画像は、ピクセル間を補間するためにバイキュービック・スプライン(a  bicubic  spline)を利用してシフトされ、ピクセルの一部分のシフトを可能にする。
【００３７】
フレームを整合させるのに必要な推定されたシフトの計算及び適用は、一定の回数だけ、或いは、所要推定シフトが適切なレジストレーションを検査するために選択された下限閾値より小さくなるまで、ループにより反復される。一実施形態において、ループは10回反復され、最終反復の最後におけるグローバル・シフト推定値が、フレームのレジストレーションの成否を判定するために使用される。例えば、X方向に±1/2ピクセル未満及びY方向に±1/2ピクセル未満であるグローバル・シフト推定値は、フレーム・レジストレーションが成功したことの指標として考えられても良く、何れかの方向に大きなグローバル・シフト推定値は、フレーム・レジストレーションが失敗したことの指標として考えられて良い。フレーム・レジストレーションが成功した場合、K-1個全ての先行フレームは、最終的なグローバル・シフト推定値に従ってシフトされ、互いに整合したK個のフレームのセットが、更なる処理のために乱気流補正モジュールへ送られる。K-1個のフレームがシフトされる場合に、それらのうちK-2個は、既にシフトされているかもしれないフレームであり、例えば、現在のフレームが受信される前に既にシフトされているフレームである。従って、先行フレームのシフトは、新たなフレームが受信される毎に累積される。K個のフレームはフレーム・メモリに保存され、それにより、次の新たなフレームが受信される場合に、K-1個の事前に受信されたフレームを為すことになる一群のフレームが、既に、互いに位置合わせされているようにする。一実施形態では、リファレンス・フレームに対して入力フレームを整合させるのに必要なシフトを決定するために、ルミナンス・フレームのみが使用される(すなわち、クロミナンス・フレームはその目的には使用されない)。いったん決定されると、そのシフトは、K-1個の以前に受信されたルミナンス・フレームをシフトさせるように適用され、最新のルミナンス・フレームに対してそれらを整合させ、同じシフトが、K-1個の以前に受信されたクロミナンス・フレームをシフトさせるように適用され、最新のクロミナンス・フレームに対してそれらを整合させる。
【００３８】
ある実施形態では、例えば、タレット115がビデオ・カメラ110を急速にパン(又はパンニング)させていると、フレーム・レジストレーションが失敗してしまうかもしれない。この場合、先行するフレームは、除去され或いは使用不可としてマーキングされ、別のフレームが受信されると改めてプロセスが始まる。テーブル1は、例えば、K=6に対する具体例を示し、10フレームのシーケンスの受信に対応している。この例では、フレーム・レジストレーションがフレームN+2の受信において失敗しており、そのため、このステップではフレーム・レジストレーション・モジュールから1フレームしか出力されていない。次のステップでは、フレームN+3の受信の際に処理は成功又は「パス(passes)」し、そのため、このステップではフレーム・レジストレーション・モジュールから2つのフレームが出力され、フレームN+4において再び失敗し、そのため、そのステップではフレーム・レジストレーション・モジュールから1フレームしか出力されていない。シーケンスの残りのステップ各々について処理は成功しており、6フレームという最大数が処理されるまで、各ステップで、フレーム・レジストレーション・モジュールから、前回より多くのフレームが出力される。
【００３９】
＜テーブル1＞
【表１】
0006462152.tif 000006
【００４０】
上述したように、先行するK個のフレームの途中でフレーム・レジストレーションが失敗していない場合、Kフレームのセットが乱気流補正モジュールへ送られる。再び図2を参照すると、ビデオ処理モジュール130のうちのモジュールは、複数のFPGAsの間に分散されても良く；例えば、乱気流補正モジュールは図2のFPGA1のような第2FPGAに実装されても良い。そのようなシステムでは、例えば、FPGAsの各々に実装される通信インターフェース(図2の「シリアル(SERIAL)」を利用して、FPGAs間で転送されても良い。例えば、受信したデータを処理が始まるまでバッファリングするように、インターフェースとともに、ファースト・イン・ファースト・アウト・データ構造(FIFO)が使用されても良い。
【００４１】
一実施形態では、乱気流補正モジュールは、ソーベル・ラプラス偏微分方程式(a  Sobolev-Laplace  partial  differential  equation)の数値解法を実行し、その方程式は、時間反転拡散方程式及びラプラス・フィルタを含む。その解は、周波数領域で数値的に生成される。フレーム・レジストレーション・モジュールから受信されるK個のフレームの各々は、フーリエ変換により(例えば、高速フーリエ変換(FFT)により)、K個のフーリエ変換フレームの何れかを為す空間周波数ドメインに変換される。反復ソリューション・モジュール210は、K個のフーリエ変換フレームを反復的に調整し、各々の反復は、偏微分方程式の解に対する更に良い近似をもたらす。
【００４２】
空間周波数ドメインの処理は、以下の数式に従って進行し、その場合において、kはフレーム・インデックスであり、nは反復インデックスである：
【００４３】
【数５】
0006462152.tif 000007
【００４４】
この数式は、ソーベル・ラプラス偏微分方程式を近似している。^uknという量は、反復的な解のうちのn番目の反復におけるk番目のフーリエ変換フレームである。数式(1)は、右辺に、拡散方程式に対応する第1項と、ラプラス・フィルタに対応する第2項とを有する。4D(m1,m2)/[1+4λD(m1,m2)]という比率は、マトリクスの要素毎の比率(an  element-wise  ratio  of  matrices)を示し(ここで、1は、Dと同じサイズの恒等行列又は単位行列であり)、マトリクスD(m1,m2)は、次式で定義される：
【００４５】
【数６】
0006462152.tif 000008
【００４６】
ここで、pは、1より大きく選択される場合には、ミドル空間周波数(the  middle  spatial  frequencies)の大きさを増やすパラメータである。pの値は1.1ないし2.0の範囲内にあっても良く、一実施形態ではpは1.3である。別の実施形態では、pの値は1より小さくても良く、例えばpは0.5ないし0.9の範囲内にあっても良い。他の実施形態では、pの値は0.5ないし2.0の範囲内にあっても良い。
【００４７】
【数７】
0006462152.tif 000009
という積は、マトリクス4D(m1,m2)/[1+4λD(m1,m2)]及び^uknの要素毎の積である。Cknという量は次式のように定義される。
【００４８】
【数８】
0006462152.tif 000010
【００４９】
ここで、αは、乱気流補正モジュールにより実行される画像鮮明化(image  sharpening)の程度を変化させるように調整されるパラメータである；一実施形態において、αは約5である。
【００５０】
数式(1)は次のように書き直されても良い。
【００５１】
【数９】
0006462152.tif 000011
【００５２】
この数式は、(n+1)番目の反復におけるk番目のフレーム変換フレームを、先行する反復におけるフーリエ変換フレームの関数として与える。
【００５３】
以下のリスト1は、空間周波数領域における乱気流補正モジュールの動作に対応するマトラボ(Matlab)(登録商標)コードを示す。
【００５４】
＜リスト1＞
【表２】
0006462152.tif 000012
【００５５】
リスト1におけるライン8は数式(3)を実現し、ライン9は数式(4)を実現する。1番目及びK番目のフレームについて、修正された表現が使用されており(ライン3,5及びライン12,13)、その場合、(k-1)番目及び(k+1)番目のフレームはそれぞれ利用可能でない。normGrad(k)という量は数式(3)の第1項の分子であり：リスト1のライン15-17で各反復の終わりに更新される。リスト1の中のDkernという量は4D(m1,m2)/[1+4λD(m1,m2)]であり；パラメータλは、反復解の収束の速度に影響を及ぼすが、過剰に高速であるように選択されるとオーバーシュートを引き起こしてしまうであろう。一実施形態において、λは約5である。μ(リスト1におけるmu)という量は、空間ドメインの補正と時間ドメインの補正とが、乱気流補正モジュールにより適用される調整に寄与する相対的な程度のバランスに影響し；一実施例では、μ=1である。一実施形態では、(例えば、リスト1のライン1におけるmaxIterdである)反復回数が或る値(例えば、6)に設定され、その数値は、ビデオの連続するフレーム間の時間インターバル(例えば、30Hzビデオ・フレームの場合、1/30秒)において乱気流補正プロセスの終了を、ビデオ処理モジュール130に許容する。
【００５６】
許容可能な解が空間周波数ドメインで生成されると、その結果のK個のフレームは一緒に平均化され、逆フーリエ変換(IFFT)を利用して、その平均フレームを画像ドメインへ変換し、エンハンスト・フレームを形成する。入力フレームがルミナンス・フレームである場合、出力フレームは、エンハンスト・ルミナンス・フレームである。
【００５７】
乱気流補正モジュールは、図4及び図5に示されるようなFPGAで実現されても良い。図4を参照すると、一実施形態におけるフーリエ変換フレームが、個々のメモリ・ポート415、425により、2つのダブル・データ・レート同期ダイナミック・ランダム・アクセス・メモリ(例えば、DDR2メモリ)へ交互に供給される。例えば、K=6である場合(すなわち、乱気流補正モジュールの各出力に対して、6つのフレームが寄与する場合)、フーリエ変換フレーム1,3,5は第1DDR2メモリ410の中にあり、フーリエ変換フレーム2,4,6は第2DDR2メモリ420の中にあっても良い。マルチプレクサ430は、2つ又は3つのフレームを一度にマス・エンジン(the  math  engine)440へ変換し、マス・エンジンはリスト1の計算に対応するオペレーションを実行する。例えば、「最終フレーム」に対する更新値を計算する場合には、2つのフレーム(例えば、1番目及びK番目のフーリエ変換フレーム)が転送され、他の任意の(中間の)フーリエ変換フレームの更新値を計算する場合には、3つのフーリエ変換フレームが転送される。マス・エンジン440は、alpha(α)、lambda(λ)及びμ(mu)のパラメータと、(図4においてNormGrad0のように言及され、リスト1においてgrad0のように言及される)各フーリエ変換フレームのNormGradの量についての初期値とを入力として取得する。IFFTを実行する前に全てのフーリエ変換フレームを平均化するために、マス・エンジンは、第1DDR2メモリ410内のフーリエ変換フレームを合計して第1合計値を求め、第2DDR2メモリ420内のフーリエ変換フレームを合計して第2合計値を求め、そして、第1合計値及び第2合計値を合計して、フーリエ変換フレームの個数(例えば、6)で除算する。
【００５８】
図5を参照すると、マス・エンジンは、オペレーションを制御するための反復ループ(iterative  loop：IL)状態マシンと、ループ及びフレーム・カウンタと、D(m1,m2)の値を生成するためのDジェネレータと、算術演算を実行する算術モジュールの組み合わせとを含んでいても良い。例えば、第1算術ブロック510は、乗算部(“X”)と、加算部(“+”)と、除算部(“/”)とを含み、各中間フレームについて及び各反復について、次の値を計算する：
【００５９】
(uhat(:,:,k).*(1-chi(k)*Dkern)+mu*(uhat(:,:,k+1)+uhat(:,:,k-1)))
【００６０】
これはリスト1のライン9の表現における分子である(すなわち、数式(4)の右辺の第2因子である)。第2算術ブロック520は、更新されたフーリエ変換フレーム(1/()を乗算したもの)を形成し、(Cknのような)chiの新しい値を計算することを、図示の算術ブロック及びアキュムレータの組み合わせにより実行する。最終フレームの場合、マス・エンジンの制御ロジックは、3つではなく2つのフーリエ変換フレームのみを利用し、第1算術ブロック510の出力に乗算される因子は、1/(1+2mu)ではなく1/(1+mu)となり、これはリスト1のライン5及び13の場合と同様である。Dジェネレータは、数式(2)で定義されるようなD(m1,m2)の値を生成するモジュールである。一実施形態において、Dジェネレータは、サイン(a  sine)を計算するために市販のパッケージを利用する。マス・エンジンの演算は、不動点演算(fixed  point  calculations)として実行されても良い。
【００６１】
図6では、一実施形態におけるクロミナンス・フレームの処理がブロック図形式で進行している。ビデオ・カメラ110から受信されるフレームは、フル解像度ルミナンス・フレームと、4:2:0というクロミナンス・サブサンプリング比でサブサンプリングされたクロミナンス・フレームとの双方を含む。各々のクロミナンス・フレームは、一実施形態では、フレーム・レジストレーション・モジュールで生成されるシフト推定値に従ってフレームをシフトさせるために使用される補間プロセスの間に、完全解像度(4:4:4サブサンプリング)までアップサンプリングされる。従って、シフトの結果は、K個の完全解像度のクロミナンス・フレームのセットであり、互いに及びルミナンス・フレームに対して整合するようにシフトされている。これらのクロミナンス・フレームは一緒に平均化され、完全解像度における1つの平均クロミナンス・フレームを形成し、そして、4:2:0のクロミナンス・サブサンプリング比にサブサンプリングされ、ルミナンス・フレームとの同期のために遅延され(例えば、乱気流モジュールにおいて、2フレームだけ遅延されても良い)、エンハンスト・ルミナンス・フレームとともに再合成される。
【００６２】
ルミナンス・フレーム処理はルミナンス・フレームのゲイン及びオフセットに影響するので、「色忠実度出力調整(Color  Fidelity  Output  Adjustment)」モジュール(図2では「出力処理」というラベルが付されている)は、入力ルミナンス・フレームのメジアン値及びレンジ(すなわち、最大値マイナス最小値)を測定し、エンハンスト・ルミナンス・フレームにスケール因子を乗算し、オフセットを加え、それにより、クロミナンス・フレームをルミナンス・フレームに結合する前に、エンハンスト・ルミナンス・フレームのメジアン値及びレンジが、入力ルミナンス・フレームのものと同じになるようにする。その結果の豪勢されたクロミナンス及びルミナンス・フレームは、オペレータに表示されるように、ディスプレイに供給される。
【００６３】
本願では様々なエレメント、コンポーネント、領域、レイヤ及び/又はセクションを説明するために「第1」「第2」「第3」等の用語が使用されているかもしれないが、これらのエレメント、コンポーネント、領域、レイヤ及び/又はセクションはこれらの用語によって限定されるべきではないことが、理解されるであろう。これらの用語は、或るエレメント、或るコンポーネント、或る領域、或るレイヤ又は或るセクションを、別のエレメント、別のコンポーネント、別の領域、別のレイヤ又は別のセクションから区別するだけのために使用されているに過ぎない。従って、本願で説明される第1のエレメント、第1のコンポーネント、第1の領域、第1のレイヤ又は第1のセクションは、本発明概念の精神及び目的から逸脱すること無く、第2のエレメント、第2のコンポーネント、第2の領域、第2のレイヤ又は第2のセクションと言及されても良い。
【００６４】
本願で使用される用語は、特定の実施形態を記述する目的のためであるにすぎず、本発明概念の限定であるようには意図されていない。本願で使用されるように、「実質的に」「約」の用語及び類似する用語は、程度の用語としてではなく、近似の用語として使用されており、当業者に認められる測定値又は計算値における本来備わっている逸脱を説明するように意図されている。本願における用語使用法では、「主要コンポーネント」という用語は、重量や構成で少なくとも半分を為すコンポーネントを意味し、「主な部分」は、複数のアイテムに対して使用される場合、それらアイテムの少なくとも半分を意味する。
【００６５】
本願における用語使用法では、「或る」(“a”，“an”)及び「その」(“the”)等の形式の語は、文脈が明らかに別意を示していない限り、単数だけでなく複数をも包含するように意図されている。「有する(comprises)」及び/又は「有している(comprising)」という用語が、本明細書で仮に使用される場合、それらは、言及される特徴、整数(integers)、ステップ、オペレーション、エレメント及び/又はコンポーネントの存在を指定しているが、1つ以上の他の特徴、整数、ステップ、オペレーション、エレメント及び/又はコンポーネントの存在又は追加を排除していないことが、理解されるべきである。本願における用語使用法によれば、「及び/又は」は、関連する列挙されるアイテムのうち1つ又は複数個のうちの何れか及び全ての組み合わせを包含する。「少なくとも1つ」のような表現が、要素のリストに先行(又は後続)する場合、それは、要素の全リストを修飾しており、リスト中の個々の要素を修飾していない。更に、発明概念の実施形態を説明する場合に「〜してもよい」という言い回しの利用は、「本発明の1つ又は複数の実施形態」を指す。また、「例示的な」という用語は、具体例又は模範を指すように意図される。本願における用語使用法では、「使用する(use)」「使用している」「使用される」等の用語はそれぞれ「活用する(utilize)」「活用している」「活用されている」等の用語と同義語と考えられて良い。
【００６６】
本願で示される何れの数値範囲も、同程度の数値精度でその示される範囲内に含まれる全ての部分的な範囲を包含するように意図される。例えば、「1.0ないし10.0」の範囲(又はレンジ)は、1.0として示される最小値と10.0として示される最大値との間にある全ての部分的な範囲を包含するように意図されており、すなわち、1.0に等しい又はそれより大きな或る最小値と、10.0に等しい又はそれより小さな或る最大値とを有する全ての部分的な範囲(例えば、2.4ないし7.6)を包含するように意図されている。本願で示される何れの最大の数値制限も、そこに包含される全てのより低い数値制限を包含するように意図されており、本明細書で示される何れの最小の数値制限も、そこに包含される全てのより高い数値制限を包含するように意図されている。
【００６７】
フル・モーション・カラー・ビデオ大気乱気流補正処理方法の限られた実施形態が本明細書で具体的に記述され説明されてきたが、多くの修正及び変形が当業者にとって明らかであろう。従って、本発明の原理に従って使用されるフル・モーション・カラー・ビデオ大気乱気流補正処理方法は、本明細書で具体的に記述されたもの以外で具現化されても良いことが、理解されるべきである。本発明は、添付の特許請求の範囲及びその均等物により規定される。
【図１】
0006462152.tif 000017
【図２】
0006462152.tif 000018
【図３】
0006462152.tif 000019
【図４】
0006462152.tif 000020
【図５】
0006462152.tif 000021
【図６】
0006462152.tif 000022