(57)【要約】      （修正有）【課題】画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を提供する。【解決手段】方法は、初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去すること、決定した乱流除去の反復回数に基づいて、後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定すること、ここで、画像フレームの最小セットは、利用可能なメモリに格納されるものであって、時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、初期の補正された画像フレームで生成された画像フレームの数、及び初期の補正された画像フレームを含む、及び、画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの後続の画像から乱流を除去し、補正された後続の画像を出力することを含む。【選択図】図２
2020144835.tif 000002
【特許請求の範囲】
【請求項１】
画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法であって、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
乱流除去の反復回数を決定し、
前記反復回数に基づいて、後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
ことを特徴とする方法。
【請求項２】
前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記反復回数はレイテンシ制約および利用可能なメモリ容量を満たすために必要な回数であり、前記レイテンシ制約および前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連されることを特徴とする請求項１に記載の方法。
【請求項４】
前記補正された後続の画像を用いて、乱流除去の反復の追加が必要であること、及び、当該乱流除去の反復の追加がレイテンシ制約および利用可能なメモリの容量を満たすことを決定することをさらに含むことを特徴する請求項１に記載の方法。
【請求項５】
前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む、
ここで、最小のフレーム数は前の反復からの前のフレームの補正されたバージョンを追加するように更新される、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記反復回数を決定することは、レイテンシ制約および前記利用可能なメモリの容量を満たす、最大反復回数を決定することを含む
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記反復回数を決定することは、乱流除去を提供するための最小反復回数を決定することを含む
ことを特徴とする請求項１に記載の方法。
【請求項８】
最小の反復数は、前記時間順序付けされたシーケンスのフレーム数の幾何学的類似性に基づいて決定される
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記補正された後続する画像を使用して、追加の乱流除去が必要であることを決定することをさらに含む、
ここで、前記反復回数は、最大１回の繰り返しだけ増加される、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記反復回数を決定することは、
レイテンシ制約および前記利用可能なメモリの容量を満たすために最大反復回数を決定すること、
前記乱流除去を提供するために最小反復回数を決定することと、
前記最大反復回数および最小反復回数の平均値を決定することを含む、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
前記決定された反復数の平均値は、時間順序付けされたシーケンスの各フレームに使用されることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記必要とされる反復数は、前記時間順序付けされたシーケンスの各画像フレームに対して別々に決定されることを特徴とする請求項１に記載の方法。
【請求項１３】
前記乱流除去は、前記メモリに格納された前記フレームの最小セットを使用した、空間的なボケの除去、続く幾何学的歪みの除去を含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記方法は、前記時間順序付けされた画像フレームのシーケンスがキャプチャされるに応じてリアルタイムで実施されることを特徴とする請求項１に記載の方法。
【請求項１５】
前記乱流除去の除去するレベルは、勾配ベースの構造類似性指数(Ｇ−ＳＳＩＭ)方法と、前記時間順序付けられたシーケンスの前記画像フレームの数とを用いて決定されることを特徴とする請求項７に記載の方法。
【請求項１６】
前記後続の画像から乱流を除去することは、(i)前記初期の補正された画像、(ii)現在の反復の直前の中間反復からの前記後続するフレームの補正画像と、(ii)前記前の反復において補正された前記シーケンスにおける次の後続の画像の画像フレームとを組み合わせることを含むことを特徴とする請求項１に記載の方法。
【請求項１７】
画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための画像処理装置であって、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシ制約は、画像のキャプチャに関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む
ことを特徴とする画像処理装置。
【請求項１８】
コンピュータを請求項１７に記載の画像処理装置として機能させるためのプログラム。
【請求項１９】
システムであって、
メモリと、
画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたコードを実行するように構成されているプロセッサとを有し、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシ制約は、乱流除去を実施する算出システムに関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間順序付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、長距離撮像における乱流の影響を補償するのためのビデオ安定化及びアーチファクト除去の方法に関する。
【背景技術】
【０００２】
長距離監視のような長距離撮像用途においては、カメラの動き、大気の乱れ、または他の外乱により、キャプチャされたビデオはボケたり、幾何学的に歪んだり、不安定に見えたりすることがある。
【０００３】
多くの場合、長距離画像キャプチャの解像度のボトルネックは、レンズの品質やセンサのサイズではない。 代わりに、通常、大気の乱流が、キャプチャされたビデオに幾何学的な歪みとボケ（blur）が存在する主な理由となる。 水上または高温の表面上での長距離監視は、そのイメージングパスに沿った屈折率が強くランダムに変化するため、特に困難となる。
【０００４】
大気乱流は、主に大気の屈折率の変動によるものである。大気の屈折率変化は、風速、温度勾配、および高度を含む多くの要因を含む。
【０００５】
星のような、遠い光源から大気に近づく狭いスペクトル帯域の光は、平面波によってよくモデル化される。この波の平面的な性質は、その波が均一な屈折率を有する自由空間を通って伝播する限り、変化しないままである。しかしながら、大気は、乱流渦と呼ばれる、均一な屈折率の多数のランダムに分布した領域を含む。屈折率は渦から渦まで変化する。その結果、遠く離れたシーンから大気中を進行する光波は、光がカメラに到達するまでもはや平面とはならない。
【０００６】
図１は、地球の大気が、遠点源の波面に及ぼす影響を示している。図１では、平面波が大気中の乱流層を通過した後、波面が乱れる。平面波からの波の偏位は、画像捕捉システムにおいてランダムな収差として現れる。光学収差の一般的な効果には、点広がり関数の広がりおよび解像度の低下が含まれる。レンズの設計において、固定された光学系によって、いくらかのボケ効果を補正することができるが、空間的にランダムで時間的に変化する大気乱流の性質は補正することを困難にしている。
【０００７】
従来の長距離画像キャプチャでは、乱流の影響を除去するために複数のフレームが必要とされる。１つの既知の例は、空間的及び時間的拡散方法を使用することであり、この方法は各キャプチャされたフレームにおける幾何学的歪みを低減し、同時にフレームにわたってビデオを安定化するものである。バイスペクトラム法のような他の公知方法は多数のフレームから大気乱流の長露出の点広がり関数(PSF)を抽出し、各フレームをボケ修正(deblur)するためにPSFを適用することを試みる。
【０００８】
近年の監視装置の進歩に伴い、長距離監視映像のフレーム解像度は急速に高まっている。乱流の影響を受けたビデオを高いフレーム解像度で処理するには、計算能力を向上させるため、比較的大きな記憶容量と最新の技術を有する高価な装置が必要となることが多い。さらに、いくつかの将来のフレームを含む複数のフレームが、現在のフレームにおける乱流の影響を補正するために必要とされるので、ある量の遅延が処理されたビデオに導入される。より多くのフレームが必要とされるほど、遅延(レイテンシ：待ち時間)はより長くなっていく。
【０００９】
幾何学的歪みおよびボケ（blur）を短いレイテンシで補償するためには、厳しい乱流の影響を有する長距離監視の特殊な場合を処理するために、効率的なリアルタイムマルチフレームビデオ安定化方法が必要とされる。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明の目的は、既存の構成の１つ以上の欠点を実質的に克服するか、または少なくとも改善することである。
【課題を解決するための手段】
【００１１】
本開示の１つの態様は、画像フレームの時間的に順序付けられたシーケンスの画像から乱流の影響を除去する方法を提供する。この方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシ及び前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
を含む。
【００１２】
他の態様によれば、前記方法は、前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む。
【００１３】
他の態様によれば、前記方法は、前記補正された後続の画像を用いて、乱流除去の反復の追加が必要であること、及び、当該乱流除去の反復の追加が前記レイテンシ制約および利用可能なメモリの容量を満たすことを決定することをさらに含む。
【００１４】
他の態様によれば、前記方法は、前記補正された後続の画像を使用して、乱流除去の反復の追加が必要であることを決定することをさらに含む、
ここで、前記参照フレーム数は前の反復からの前のフレームの補正されたバージョンを追加するように更新される。
【００１５】
他の態様によれば、前記反復回数を決定することは、前記レイテンシ制約および前記利用可能なメモリの容量を満たす、最大反復回数を決定することを含む。
【００１６】
他の態様によれば、前記反復回数を決定することは、所望の量の乱流除去を提供するための最小反復回数を決定することを含む。
【００１７】
他の態様によれば、前記最小反復数は、前記時間順序付けされたシーケンスのフレーム数の幾何学的類似性に基づいて決定される。
【００１８】
他の態様によれば、前記方法は、前記補正された後続する画像を使用して、追加の乱流除去が必要であることを決定することをさらに含む。
【００１９】
他の態様によれば、前記反復回数を決定することは、
前記レイテンシ制約および前記利用可能なメモリの容量を満たすために最大反復回数を決定すること、
前記所望の量の乱流除去を提供するために最小反復回数を決定することと、
前記最大反復回数および最小反復回数の平均値を決定することを含む。
【００２０】
他の態様によれば、前記決定された反復数の平均値は、時間順序付けされたシーケンスの各フレームに使用される。
【００２１】
他の態様によれば、前記必要とされる反復数は、前記時間順序付けされたシーケンスの各画像フレームに対して別々に決定される。
【００２２】
他の態様によれば、前記乱流除去は、前記メモリに格納された前記フレームの最小セットを使用した、空間的なボケの除去、続く幾何学的歪みの除去を含む。
【００２３】
他の態様によれば、前記方法は、前記時間順序付けされた画像フレームのシーケンスがキャプチャされるに応じてリアルタイムで実施される。
【００２４】
他の態様によれば、前記乱流除去の前記所望のレベルは、勾配ベースの構造類似性指数(Ｇ−ＳＳＩＭ)方法と、前記時間順序シーケンスの前記画像フレームの数とを用いて決定される。
【００２５】
他の態様によれば、前記後続の画像から乱流を除去することは、(i)前記初期の補正された画像、(ii)前記現在の反復の直前の中間反復からの前記後続するフレームの補正画像と、(ii)前記前の反復において補正された前記シーケンスにおける次の後続の画像の画像フレームとを組み合わせることを含む。
【００２６】
本開示の他の態様は、画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するためのプログラムが記憶された、非一時的なコンピュータが読取可能な記憶媒体を提供する。ここで、前記プログラムは、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去するコードと、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定するコードと、
ここで、前記レイテンシ及び前記利用可能なメモリの容量は、乱流除去を実施するコンピューティングシステムに関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定するコードと、
ここで、前記画像フレームの最小セットは、利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力するコードとを含む。
【００２７】
本開示の他の態様は、画像キャプチャ装置を提供する。この画像キャプチャ装置は、
メモリと、
画像キャプチャ装置によってキャプチャされた、画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたプログラムを実行するプロセッサとを有し、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシは、前記画像キャプチャ装置に関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む。
【００２８】
本開示の他の態様は、システムを提供する。このシステムは、
メモリと、
画像フレームの時間的に順序付けられたシーケンスの画像から乱流を除去する方法を実施するための、前記メモリに格納されたコードを実行するように構成されているプロセッサとを有し、
前記方法は、
初期の補正された画像フレームを生成するため、時間順序付けされたフレームのシーケンスの第１の画像から乱流の影響を除去し、
前記シーケンス内の後続の画像のために所望の量の乱流除去を実施するため、及び、レイテンシ制約および利用可能なメモリの容量を満たすために必要な反復回数を決定し、
ここで、前記レイテンシは、乱流除去を実施する算出システムに関連される；
必要な反復回数に基づいて、前記後続の画像から乱流を除去するのに必要な画像フレームの最小セットを決定し、
ここで、前記画像フレームの最小セットは、前記利用可能なメモリに格納されるものであって、前記時間付けられたシーケンスの画像フレームの画像フレーム数、乱流除去の中間反復にて生成される画像フレーム数、及び、前記初期の補正された画像フレームで生成された画像フレームの画像フレーム数、及び前記初期の補正された画像フレームを含む；
前記画像フレームの最小セットを用いて、ビデオの時間的に順序付けられた画像フレームの前記後続の画像から乱流を除去し、補正された後続の画像を出力する
こと含む。
【００２９】
本発明の他の態様も開示される。
【図面の簡単な説明】
【００３０】
以下の図面を参照して、本発明の１以上の例示的な実施形態を説明する。
【図１】平面波の波面に対する大気乱流の影響を示す図。
【図２】乱流画像捕捉装置のための適応画像品質改善プロセスの方法を示す図。
【図３】ビデオフレームの反復構造および反復数を示す図。
【図４】乱気流ビデオ改善処理がブートストラップされた後の、後続のフレームのメモリ要件および反復構造を示す図。
【図５】反復ビデオ品質改善方法において必要とされる反復回数と必要とされるフレーム数との間の関係を示す図。
【図６】乱流効果除去方法の反復構造を示す図。
【図７】最小反復数を決定する方法を示す図。
【図８】最大反復数を決定する方法を示す図。
【図９】空間的ボケ修正および時間拡散を含む反復ボケ修正の方法を示す図。
【図１０】図９で実施される時間拡散の方法を示す図。
【図１１】隣接フレームが異なる数の必要な反復を有する場合のメモリ使用の流れ図を示す図。
【図１２】現在のフレームに対するトータル反復が増加される必要があるかどうかを決定するための適応評価の方法を示す図。
【図１３】隣接フレームの空間解像度向上および時間的組合せを利用する、1つのフレームに対する乱流補正の例を示す。
【図１４】トータル反復回数がフレームごとに変化しない乱流画像捕捉装置のための適応画像品質改善の方法を示す図。
【図１５】図１４の方法で使用される反復数を決定する方法を示す図。
【図１６】トータル反復数はフレームごとに変化するものの、単一フレームの反復中には変化しない、乱流画像キャプチャ装置のための適応画像品質改善の方法を示す図。
【図１７Ａ】、
【図１７Ｂ】集合的に、説明された構成を実施することができる電子装置の概略ブロック形成図。
【発明を実施するための形態】
【００３１】
添付の図面のいずれか１つまたは複数において、同じ参照番号を有するステップおよび／または特徴が参照される場合、これらのステップおよび／または特徴は反対の意図が現れない限り、本説明の目的のために、同じ機能または操作を有する。
【００３２】
説明される構成は、リアルタイムで実施することができる乱流画像を補正する方法に関する。マルチフレームビデオ安定化法を用いて、激しい乱流の影響を有する長距離監視の特殊な場合を扱われる。
【００３３】
本開示の文脈において、画像から「乱流を除去すること」(画像を補正することとも呼ばれる)は、乱流によって引き起こされる幾何学的歪みおよびボケを補償するために画像処理を適用することに関する。説明される例示的な構成では、画像またはビデオが１以上の画像キャプチャデバイスによってキャプチャされる。画像キャプチャ装置のプロセッサまたはＧＰＵは、乱流の影響を除去するために、画像処理装置として説明した方法を実行する。他の構成では、キャプチャされた画像を、ここで説明される方法を実施することができるリモートコンピューティングデバイスに送信させることができる。
【００３４】
上述したように、画像内の乱流の影響を低減するためにより多くのフレームが必要とされるほど、補正された画像フレームを生成する際のレイテンシが長くなる。したがって、リアルタイムで実施できる乱流補正技術が必要である。説明される構成はレイテンシおよび演算処理を低減し、したがって、ハードウェアコストを低減し、速度を向上させるために、可能な限り少ないフレームをメモリにロードすることを可能にする方法に関する。一方、マルチフレーム乱流除去方式では、乱流補正の品質を保証するために、特定の数のフレームが必要である。より多くのフレームが必ずしも良好な出力品質を保証するとは限らないが、フレームが少なすぎると、典型的には不十分な乱流補正または不安定な前景移動物体抽出につながる。
【００３５】
図１７Ａ及び図１７Ｂは、まとめて、組み込まれた要素を含む汎用電子デバイス１７０１の概略ブロック図を形成し、その上で、説明される方法が望ましく実施される。説明される例では、電子デバイス１７０１がデジタルビデオカメラ、または、デジタル画像シーケンスを取り込むのに適した別の画像取り込みデバイスである。しかし、電子デバイス１７０１は例えば、携帯電話、ポータブルメディアプレーヤ、または処理リソースが制限される別のデバイスであってもよい。それにもかかわらず、説明される方法はまた、デスクトップコンピュータ、サーバコンピュータ、および著しく大きな処理リソースを有する他のそのような装置などのより高レベルの装置上で実行されてもよい。
【００３６】
図１７Ａに見られるように、電子デバイス１７０１は、組み込みコントローラ１７０２を備える。したがって、電子デバイス１７０１は、「組み込みデバイス」と呼ぶことができる。この例では、コントローラ１７０２が内部記憶モジュール１７０９に双方向に結合された処理ユニット(またはプロセッサ)１７０５を有する。記憶モジュール１７０９は、図１７Ｂに見られるように、不揮発性半導体読み出し専用メモリ(ＲＯＭ)１７６０および半導体ランダムアクセスメモリ(ＲＡＭ)１７７０から形成されてもよい。ＲＡＭ１７７０は、揮発性、不揮発性、または揮発性メモリと不揮発性メモリとの組み合わせであってもよい。
【００３７】
電子デバイス１７０１は、液晶ディスプレイ(ＬＣＤ)パネルなどのビデオディスプレイ１７１４に接続されたディスプレイコントローラ１７０７を含む。ディスプレイコントローラ１７０７は、ディスプレイコントローラ１７０４が接続されたエンベデッドコントローラ１７０２から受信した指示に従って、ビデオディスプレイ１７１４上にグラフィック画像を表示するように構成される。
【００３８】
電子デバイス１７０１はまた、キー、キーパッドまたは同様の制御装置によって典型的に形成されるユーザ入力デバイス１７１３を含む。いくつかの実装では、ユーザ入力デバイス１７１３が表示部１７１４に物理的に関連付けられたタッチセンシティブパネルを含み、集合的にタッチスクリーンを形成することができる。したがって、そのようなタッチスクリーンはキーパッド-ディスプレイの組み合わせで典型的に使用されるプロンプトまたはメニュー駆動ＧＵＩとは対照的に、グラフィカルユーザインタフェース(ＧＵＩ)の１つの形成として動作することができる。音声コマンドのためのマイクロフォン(図示せず)またはメニューの周りのナビゲーションを容易にするためのジョイスティック/サムホイール(図示せず)など、他の形態のユーザ入力デバイスも使用することができる。
【００３９】
図１７Ａに見られるように、電子デバイス１７０１はまた、接続１７１９を介してプロセッサ１７０５に結合されるポータブルメモリインタフェース１７０６を備える。ポータブルメモリインタフェース１７０６は、相補型ポータブル・メモリ・デバイス１７２５を電子デバイス１７０１に結合して、データのソースまたは宛先として機能させるか、または内部記憶モジュール１７０９を補足することを可能にする。そのようなインタフェースの例は、ユニバーサルシリアルバス(ＵＳＢ)メモリ装置、セキュアデジタル(ＳＤ)カード、パーソナルコンピュータメモリカード国際協会(ＰＣＭＩＡ)カード、光ディスク、および磁気ディスクなどのポータブルメモリ装置との結合を可能にする。
【００４０】
電子デバイス１７０１はまた、接続１７２１を介してデバイス１７０１をコンピュータまたは通信ネットワーク１７２０に結合することを可能にする通信インタフェース１７０８を有する。接続１７２１は、有線であっても無線であってもよい。例えば、接続１７２１は、無線周波数または光学であってもよい。有線接続の例には、イーサネット(登録商標)が含まれる。また、無線接続としては、ブルートゥース（登録商標）方式のローカル相互接続、Ｗｉ−Ｆｉ(IEEE 802.11ファミリの規格に準拠したプロトコルを含む)、ＩｒＤａ（Infrared Data Association)等がある。
【００４１】
典型的には、電子デバイス１７０１が何らかの特別な機能を実行するように構成される。組み込みコントローラ１７０２は、おそらくさらなる特殊機能要素分１７１０と共に、その特殊機能を実行するために提供される。説明した例では装置１７０１がデジタルビデオカメラである場合、要素１７１０はカメラのレンズ、焦点制御、および撮像素子を表すことができる。特殊機能要素１７１０は、組み込みコントローラ１７０２に接続される。別の例として、デバイス１７０１は、携帯電話ハンドセットであってもよい。この例では、要素１７１０がセルラー電話環境における通信に必要な要素を表すことができる。デバイス１７０１がポータブルデバイスである場合、特殊機能要素１７１０は、Joint Photographic Experts Group（ＪＰＥＧ）、(Moving Picture Experts Group)MPEG、MPEG−1 Audio Layer 3 (MP3)などを含むタイプのいくつかのエンコーダおよびデコーダを表すことができる。
【００４２】
以下に説明する方法は、組み込みコントローラ１７０２を使用して実施することができ、図２、図７〜図１０、図１２、および、図１４〜図１６プロセスは、組み込みコントローラ１７０２内で実行可能な１以上のソフトウェアアプリケーションプログラム１７３３として実施することができる。図１７Ａの電子デバイス１７０１は、説明される方法を実施する。特に、図１７Ｂを参照すると、説明される方法のステップは、コントローラ１７０２内で実行されるソフトウェア１７３３内の命令によって実行される。ソフトウェア命令は、各々が１つ以上の特定のタスクを実行するための１つ以上のコードモジュールとして形成されてもよい。ソフトウェアはまた、２つの別個の部分に分割されてもよく、第１の部分および対応するコードモジュールは説明される方法を実行し、第２の部分および対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００４３】
組み込みコントローラ１７０２のソフトウェア１７３３は、典型的には内部記憶モジュール１７０９の不揮発性ＲＯＭ１７６０に格納される。ＲＯＭ１７６０に格納されたソフトウェア１７３３は、必要に応じて、コンピュータ読み取り可能な媒体から更新することができる。ソフトウェア１７３３は、プロセッサ１７０５にロードして実行することができる。場合によっては、プロセッサ１７０５がＲＡＭ１７７０内に位置するソフトウェア命令を実行することができる。ソフトウェア命令は、ＲＯＭ１７６０からＲＡＭ１７７０への１つ以上のコードモジュールのコピーを開始するプロセッサ１７０５によって、ＲＡＭ１７７０にロードされ得る。あるいは、１以上のコードモジュールのソフトウェア命令が製造業者によってＲＡＭ１７７０の不揮発性領域にプリインストールされてもよい。１以上のコードモジュールがＲＡＭ１７７０に配置された後、プロセッサ１７０５は、１以上のコードモジュールのソフトウェア命令を実行することができる。
【００４４】
アプリケーションプログラム１７３３は、典型的には電子デバイス１７０１の配布の前に、製造業者によってＲＯＭ１７６０にプリインストールされ、格納される。しかし、場合によっては、アプリケーションプログラム１７３３が１以上のＣＤ−ＲＯＭ(図示せず)上に符号化されてユーザに供給され、内部記憶モジュール１７０９またはポータブルメモリ１７２５に格納する前に、図１７Ａのポータブルメモリインタフェース１７０６を介して読み取ることができる。別の代替例では、ソフトウェアアプリケーションプログラム１７３３がプロセッサ１７０５によってネットワーク１７２０から読み取られるか、または他のコンピュータ可読媒体からコントローラ１７０２またはポータブルメモリ媒体１７２５にロードされ得る。コンピュータ可読記憶媒体は、実行および/または処理のためにコントローラ１７０２に命令および/またはデータを提供することに関与する任意の非一時的有形記憶媒体を指す。そのような記憶媒体の例には、フロッピー(登録商標)ディスク、磁気テープ、ＣＤ−ＲＯＭ、ハードディスクドライブ、ＲＯＭまたは集積回路、ＵＳＢメモリ、光磁気ディスク、フラッシュメモリ、またはＰＣＭＣＩＡカードなどのコンピュータ可読カードが含まれ、そのようなデバイスがデバイス１７０１の内部にあるか外部にあるかは問わない。ソフトウェア、アプリケーションプログラム、命令、および/またはデータのデバイス１７０１への提供にも関与し得る一時的または非有形のコンピュータ可読伝送媒体の例には、無線または赤外線伝送チャネル、ならびに別のコンピュータまたはネットワーク化された装置へのネットワーク接続、ならびに電子メール伝送およびウェブサイト上に記録された情報などを含むインターネットまたはイントラネットが含まれる。そのようなソフトウェアまたはコンピュータプログラムが記録されたコンピュータ可読媒体は、コンピュータプログラム製品である。
【００４５】
アプリケーションプログラム１７３３の第２の部分、および、上述の対応するコードモジュールは、図１７Ａの表示部１７１４上にレンダリングされる、または他の方法で表される１以上のグラフィカルユーザインタフェース(ＧＵＩ)を実装するために、実行することができる。ユーザ入力デバイス１７１３(例えば、キーパッド)の操作を通じて、デバイス１７０１のユーザおよびアプリケーションプログラム１７３３はＧＵＩに関連するアプリケーションに制御コマンドおよび/または入力を提供するために、機能的に適応可能な方法でインタフェースを操作することができる。スピーカ(図示せず)を介して出力されるスピーチプロンプト、およびマイクロフォン(図示せず)を介して入力されるユーザ音声コマンドを利用するオーディオインタフェースなど、機能的に適応可能なユーザインタフェースの他の形態も実装され得る。
【００４６】
図１７Ｂは、アプリケーションプログラム１７３３および内部記憶１７０９を実行するためのプロセッサ１７０５を有する組み込みコントローラ１７０２を詳細に示す。内部記憶１７０９は、読み取り専用メモリ(ＲＯＭ)１７６０およびランダムアクセスメモリ(ＲＡＭ)１７７０を含む。プロセッサ１７０５は、接続されたメモリ１７６０および１７７０の一方または両方に格納されたアプリケーションプログラム１７３３を実行することができる。電子デバイス１７０１が最初に電源投入されると、ＲＯＭ１７６０に常駐するシステムプログラムが実行される。ＲＯＭ１７６０に永続的に格納されるアプリケーションプログラム１７３３は、「ファームウェア」と呼ばれることもある。プロセッサ１７０５によるファームウェアの実行は、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、およびユーザインタフェースを含む様々な機能を実行することができる。
【００４７】
プロセッサ１７０５は、典型的には制御ユニット(ＣＵ)１７５１、算術論理ユニット(ＡＬＵ)１７５２、デジタル信号プロセッサ(ＤＳＰ)１７５３、および、典型的にはアトミック・データ要素１７５６、１７５７を内部バッファまたはキャッシュ・メモリ１７５５と共に含む１組のレジスタ１７５４を含むローカルまたは内部メモリを含む、いくつかの機能モジュールを含む。１以上の内部バス１７５９は、これらの機能モジュールを相互接続する。プロセッサ１７０５はまた、典型的には、接続１７６１を使用して、システムバス１７８１を介して外部デバイスと通信するための１以上のインタフェース１７５８を有する。
【００４８】
アプリケーションプログラム１７３３は、条件付き分岐およびループ命令を含むことができる一連の命令１７６２〜１７６３を含む。プログラム１７３３は、プログラム１７３３の実行に使用されるデータを含むこともできる。このデータは、命令の一部として、またはＲＯＭ１７６０またはＲＡＭ１７７０内の別個の位置１７６４に格納することができる。
【００４９】
一般に、プロセッサ１７０５には、その中で実行される命令のセットが与えられる。この命令セットは、特定のタスクを実行するか、または電子デバイス１７１内で発生する特定のイベントを処理するブロックに編成することができる。典型的には、アプリケーションプログラム１７３３がイベントを待ち、その後、そのイベントに関連するコードのブロックを実行する。イベントはプロセッサ１７０５によって検出されるように、図１７Ａのユーザ入力デバイス１７１３を介して、ユーザからの入力に応答してトリガされ得る。イベントはまた、電子デバイス１７０１内の他のセンサおよびインタフェースに応答してトリガされてもよい。
【００５０】
命令のセットの実行は、読み出され、修正される数値変数を必要とし得る。このような数値変数はＲＡＭ１７７０に記憶される。開示される方法は、メモリ１７７０内の既知の位置１７７２、１７７３に格納された入力変数１７７１を使用する。入力変数１７７１は、メモリ１７７０内の既知の位置１７７８，１７７９に記憶される出力変数１７７７を生成するために処理される。中間変数１７７４は、メモリ１７７０の位置１７７５、１７７６内の追加のメモリ位置に格納することができる。あるいは、いくつかの中間変数がプロセッサ１７０５のレジスタ１７５４にのみ存在してもよい。
【００５１】
一連の命令の実行は、フェッチ−実行サイクルを繰り返し適用することによって、プロセッサ１７０５において達成される。プロセッサ１７０５の制御部１７５１は、ＲＯＭ１７６０またはＲＡＭ１７７０内の次に実行される命令のアドレスを含む、プログラムカウンタと呼ばれるレジスタを維持する。フェッチ実行サイクルの開始時に、プログラムカウンタによってインデックスされたメモリアドレスの内容が制御部１７５１にロードされる。このようにロードされた命令はプロセッサ１７０５の後続の動作を制御し、例えば、データがＲＯＭメモリ１７６０からプロセッサレジスタ１７５４にロードされ、レジスタの内容が別のレジスタの内容と算術的に結合され、レジスタの内容が別のレジスタに格納された位置に書き込まれ、以下同様である。フェッチ実行サイクルの終わりに、プログラムカウンタは、システムプログラムコード内の次の命令を指すように更新される。実行されたばかりの指示に応じて、これは分岐動作を達成するために、プログラムカウンタに含まれるアドレスを増分すること、またはプログラムカウンタに新しいアドレスをロードすることを含むことができる。
【００５２】
以下に説明する方法のプロセスにおける各ステップまたはサブプロセスは、アプリケーションプログラム１７３３の１以上のセグメントに関連付けられ、プロセッサ１７０５におけるフェッチ-実行サイクルの繰り返し実行、または電子デバイス１７０１における他の独立したプロセッサブロックの同様のプログラム動作によって実行される。
【００５３】
図２は、デバイス１７０１によってキャプチャされた所与の画像フレームに対してビデオ安定化を実行する方法２００を示している。この方法２００は、ビデオの画像フレームの時間順序シーケンスにおける乱流を除去または補正するために実行される。方法２００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【００５４】
方法２００は、受信ステップ２０５で開始する。ステップ２０５は、要素１７１０の撮像素子によってキャプチャされた、ｍ枚の初期画像フレームを受信することを実行する。ステップ２０５は、電子デバイス１７０１のメモリから画像を取り出すことにも関することができる。ステップ２０５でロードされるフレーム数は、初期推定値である。例えば、アプリケーションおよびシステムハードウェアに応じるが、ｍの典型的な値は５〜８とすることができる。初期推定値ｍは、実験または以前の結果に基づくことができる。
【００５５】
方法２００は、ステップ２０５から決定ステップ２１０に続く。ステップ２１０の実行において、最大トータル反復数（maximum number of total iteration）ｎ2の最大数が決定される。最大反復回数ｎ2は、モジュール１７０１のハードウェア限界およびシステム性能要件に基づいて決定される。
【００５６】
方法２００は、ステップ２１０から決定ステップ２１５に続く。ステップ２１５は、最小反復数ｎ1を決定するために実行される。反復数ｎ1は、必要な量の乱流補正の推定値に基づいて決定される。最大および最小反復数を決定する際に、ステップ２１０および２１５は、レイテンシ制約および乱流除去を実施するデバイス１７０１の利用可能なメモリ容量のための所望の量の乱流除去を達成するために必要とされる反復の数を決定するように動作する。
【００５７】
トータル反復の最小および最大数が決定されると、方法２００は、ステップ２１５から乱流除去ステップ２２０に続く。ステップ２２０の実行は、空間的なボケ及び幾何学的な歪みを除去することによって乱流の影響を補正(除去)するため、反復的なボケ修正アルゴリズムを適用する。ステップ２２０によって開始される反復ループは、トータル反復数nとして、ステップ215からの最小トータル反復数ｎ1を実施することに基づいて開始し、各反復について対応する画像フレームをロードする。現在の反復数は、乱流補正された(乱流除去された)フレームを生成するために使用されるフレームの最小セットを決定するために使用される。反復に依存して、フレームの最小セットは、典型的にはビデオのキャプチャされた画像フレームの最小数、中間反復において生成された補正された画像フレームの数、及び、前の又は初期の補正された画像フレームを含む。補正のために必要とされる画像フレームのセットは、図３及び図４に関連して更に説明される。ステップ２２０で始まる反復ループは、ｎ1反復の実施に基づいて開始するが、トータル反復補正が実行される間、トータル反復数ｎは更新され得る。
【００５８】
ステップ２２０は、ボケ修正の１回の反復を表す。ステップ２２０は、ＲＡＭ１７７０またはメモリ１７０９のキャッシュのような、デバイス１７０１の利用可能なメモリの高速部分にフレームの最小セットを記憶するように動作する。ステップ２２０は図９に関連して説明するように、フレームに対して乱流除去方法を実行するためにさらに実行される。
【００５９】
ステップ２２０の各反復の後、方法２００はチェックステップ２６０に進む。ステップ２６０は、設定されたトータル反復回数ｎに達したかどうかをチェックする。設定されたトータル反復数ｎは、最初時はｎ1に設定される。設定されたトータル反復回数ｎに既に達している場合（ステップ２６０にて“Ｙｅｓ”の場合）、反復は現在のフレームについて終了し、方法２００はチェックステップ２７０に進む。ステップ２７０は、次のフレームがボケ修正に利用可能であるかどうかをチェックする。ビデオシーケンスの次の(後続の)フレームが利用可能である場合(ステップ２７０にて“Ｙｅｓ”の場合）、方法２００はステップ２０５に戻る。また、次のフレームが利用可能でない場合(ステップ２７０で“Ｎｏ”の場合）、方法２００は終了する。
【００６０】
ステップ２６０の説明に戻って、反復が終了しない場合(ステップ２６０で“Ｎｏ”の場合）、方法２００はチェックステップ２５０に進む。ステップ２５０は、反復回数の増加が必要であるかどうかをチェックする。ステップ２０５で実施されるように、より多くの反復が必要であるかどうかを決定する方法は、図１２に関連して説明される。ステップ２５０での評価が、より多くの反復が必要であることを示す場合(ステップ２５０で“Ｙｅｓ”の場合)、トータル反復数ｎは１だけ増加され、方法２００はチェックステップ２４０に進む。ステップ２４０は、現在のトータル反復数ｎが最大反復数ｎ2よりも大きいかどうかをチェックする。ｎ＜ｎ2の場合（ステップ２４０で“Ｙｅｓ”の場合)、方法２００は方法ステップ２３０に進む。ステップ２３０は反復に必要な次のフレームをロードし、方法２００はステップ２２０に進む。ステップ２２０は、最新にロードしたフレームに乱流除去を適用するために繰り返される。
【００６１】
ステップ２５０での評価が、トータル反復回数ｎを更新する必要がないことを示す場合(ステップ２５０で“Ｎｏ”の場合)、方法２００はステップ２２０に戻り、乱流除去ステップを繰り返す。同様に、ステップ２４０で、現在のトータル反復回数ｎ≧ｎ2である場合（ステップ２４０で“Ｎｏ”の場合）、余分なフレームはロードされず、方法２００はステップ２２０に戻る。
【００６２】
ステップ２５０は、トータル反復回数を増加させる必要がある場合を考慮する。ステップ２５０では、トータル反復回数は減らされない。各フレームに対するトータル反復回数は最小反復回数ｎ1より開始し、反復ステップ２５０ごとに、その回数が１だけ増加するかどうかを決定し、トータル反復回数は、最大回数ｎ2を超えることはない。
【００６３】
図２のプロセスは、ステップ２７０で処理すべきフレームもはや存在しないこと、またはリアルタイム長距離画像キャプチャシステムがオフにされているかどうかを判定した後に終了する。
【００６４】
反復映像品質向上法では、現フレームが隣接フレームを使用して補正、もしくは改善される場合、反復が多いほど、より多くの隣接フレームが含まれることを意味する。トータル反復数は、補正アルゴリズムに含まれる過去または将来のフレームの数に正比例する。したがって、トータル反復回数が多いと、過去または将来の多数のフレームの処理およびローディングにつながる。
【００６５】
図５は、使用されるフレームの数と、以前に知られている解決策におけるトータル反復数との間の関係ダイアグラム５００を示している。ダイアグラム５００は、オリジナルのフレームｆ（−３）〜ｆ（３）を示す。オリジナルのフレームは、反復１を形成するために組み合わされる。反復１の結果は、反復２を形成するために組み合わされる。反復２の結果は、補正されたフレームｆ’（０）を有する反復３を提供するために組み合わされる。１つの過去のフレーム、現在のフレーム、および１つの将来のフレームを利用する各反復で３回の反復で、補正された現在のフレームｆ’（０）を生成するため、合計７つのオリジナルのフレームが最初にロードされる。図５では、各フレームがそのフレームの隣接フレームの特定の組合せで更新される。例えば、反復１でのｆ’（−２）は、ｆ（−３）、ｆ（−２）及びｆ（−１）の組み合わせを使用して更新される。フレームをどのように組み合わせることができるかについての更なる詳細は、図９を参照して後述する。
【００６６】
図５に示されるように、使用される反復方法に応じて、必要とされるフレーム数とトータル反復数ｎとの間には、直接的かつ比例的な関係があり得る。説明される例では、収束へのスピードアップとメモリ要件を低減するために、新しい反復スキームが使用される。
【００６７】
図３は、４回の反復で説明される反復方法の例を示す構造300を示す。現在の乱流フレームｆ00を補正するために、４つの将来のフレームｆ10、ｆ20、ｆ30、ｆ40がロードされる。図３および図４の例では、フレームの添え字はすべて２桁である。最初の数字はフレーム番号を示し、２番目の数字は反復数を表す。例えば、ｆ21は第１の反復の後の２番目のフレームであり、ｆ00はゼロ番目のオリジナルのフレームを示す。現在のフレームは、第１の反復で更新されて、ｆ10,ｆ00、及び、前に更新されたフレームとの組合せを使用してｆ01が生成される。次いで、この方法はｆ11,ｆ21及びｆ31を、ｆ01と同じ公式を使用して更新する。４回の反復の後の、ｆ04が、ここで補正後の乱流フレームである。フレームｆ01−ｆ31、ｆ02−ｆ22、及びｆ03−ｆ13は、乱流補正された中間反復フレームを表す。反復が中間フレームとみなされるかどうかは、現在のフレーム番号に依存する。
【００６８】
図３において、矢印３２０はオリジナルのフレームｆ30から更新後のフレームｆ31への寄与を表し、矢印３３０は、オリジナルのフレームｆ40から更新後のフレームｆ31への寄与を表す。同様に、矢印３１０は、更新された前のフレームから補正後の乱流フレームｆ04への寄与を表す。図５と図３に示す反復方式の違いは、以前に補正されたフレームからの情報を使用することである。図５で使用される方法は最後の反復からのフレームを使用して現在のフレームを更新するのに対し、一方、図３の方法は新しく更新されたフレームが利用可能になるとすぐに、新しく更新された(乱流除去された)前のフレームを適用する。図３に示すように、新たに更新された前のフレームを使用することにより、収束速度が改善され、最終的な補正された出力フレームが生成される。
【００６９】
さらに、リアルタイムビデオ監視システムでは、メモリ効率が非常に重要であることが多い。図３の反復スキームが開始されると、次の補正後のフレームを生成するために高速コアメモリに格納される必要があるフレームは比較的少なく、したがって、複雑な計算を必要とするリアルタイムシステムのための効率的な解決策を提供する。ブートストラッピングステップとして、補正後の現在のフレームｆ04は、図３のビデオシーケンスの「前のフレーム」を含む代わりに、ちょうど更新された現在のフレームｆ00、ｆ01、ｆ02、ｆ03、および将来のフレームｆ10,ｆ11,ｆ12及びｆ13を使用して更新することができる。
【００７０】
図４は、いくつかの補正後のフレームが既に利用可能である場合の、次の補正されるフレームを生成する例示的な方法４００を示す。図４の例はまた、４回の反復に関連し、図３の拡張を反映する。補正後フレームｆ04が生成されると、次の補正後のフレームｆ14は、もう１つのオリジナルフレームｆ50だけをロードし、図４の網点長方形(フレーム４１０など)で示されるフレームのセット４４０を使用して示されるフレームに同じ更新スキームを適用することによって決定することができる。換言すれば、補正された現在のフレームｆ04が一旦生成されると、単に、次の乱流除去演算のために新しいオリジナルのフレームｆ50をロードする前に、ｆ40,ｆ31,ｆ22,ｆ13及びｆ04のみがコアメモリ内への保持が必要となるだけである。４回の反復を伴う図４の例では、合計１０フレームだけが、次の補正フレームを生成するために記憶されることが必要となる。結果として、記憶されるフレームの総数は、ｓ＝２（ｎ＋１）である。ここでｎは、トータル反復数である。
【００７１】
上述のフレーム結合方法をブートストラップするために、より多くのフレームが最初に必要とされる。例えば、図３の三角形構造３００は、乱流除去を開始するために必要である。しかし、ブートストラップ工程はビデオ監視タスクで一度だけ実行されるので、ブートストラップ工程は、コアメモリ内で迅速に実行されるか、または、システムの高速コアメモリの外部で実施されれば良いので、コアメモリ内の比較的大量の余地を占有することを回避することができる。後続の反復は、領域４４０のフレームのようなフレームのサブセットを使用することができる。
【００７２】
したがって、乱流除去の反復ごとに、所望の量の乱流除去を達成するために必要な反復回数ｎに基づいて、フレームの最小セットを決定することができる。フレームの最小セットは、現在の反復数(例えば、最初の反復は、上述のブートストラップ方法を使用する)、ならびに決定された反復数(反復の最小数ｎ1、または反復がステップ２５０で追加される場合)に関連する。最小限のフレームセットは、最初の補正されたフレーム、中間反復で補正されたフレーム、および、映像シーケンスの将来または後続のフレーム(図４のｆ50など)を含むことができる。ブートストラッピングシナリオでは、初期フレームは利用可能でなくてもよく、中間訂正フレームの数はゼロであってもよい。最初の補正されたフレームは、時間順序付けされたビデオシーケンス(現在のフレームがシーケンスの次または正味のフレーム)において現在のフレームに先行するフレームに関連する、現在の反復の乱流補正された画像フレームに関連する。初期補正フレームの例は、図４の第４の反復においてフレーム１の補正に使用されるフレーム３１０である。
【００７３】
中間反復において補正されるフレームの一例は、図４の第４の反復と比べて中間となる、図４のフレームｆ13 およびｆ23である。つまり、中間反復で補正された画像フレームは、現在のフレームに対する現在の反復の前の反復で補正されたフレームである。
【００７４】
図４に示すように、第４の反復のための結果として生じる補正されたフレームは、(i)最初の補正された画像(ｆ04)、(ii)現反復の直前の中間反復からの後続フレームの補正された画像(ｆ13)、および(ii)前の反復(f23)で補正されたような次のシーケンスに続く画像フレームである。
【００７５】
図３の三角形構造３００の重要な利点の１つは、その構造がリアルタイムシステムにおいて柔軟性および効率を提供することである。構造３００または４００に基づいて、最大反復数ｎ2内でフレームを使用する際に、方法２００は、リアルタイムもしくはニアリアルタイムで実施することができる。
【００７６】
従来の後処理ビデオ品質改善方法は、多数のフレームを取り込み、すべてのフレームを一度に処理することを含むことができる。図６は、従来の後処理反復方法の一例を示す構造６００を示す。４回の反復を仮定すると、図６で使用される方法は、多くのフレームをメモリにロードし、ロードされたすべてのフレームにわたって反復する。第１の反復が完了すると、第１の反復における結果のみが保存される。オリジナルのフレームは廃棄される。第２の反復の後は、第１の反復からの全ての結果は廃棄され、以下同様である。例えば、２００フレームを処理する場合、２００フレームを同時にメモリに保持しなければならない。構造６００で使用される方法は単純であるが、この方法は比較的大量のメモリを使用する必要があり、したがって、通常、リアルタイムシステムには適していない。構造３００および４００は、このような大量のフレームを格納する必要はない。
【００７７】
重要なことは、乱流の影響がランダムに変化することである。監視ビデオに対する結果として生じる空間的なボケ、および幾何学的な歪みの影響は、フレームごとに迅速に変化し得る。その結果、長距離監視ビデオに必要とされる乱流補正の量は、新しいフレームがまだ捕捉されている間にも変化する。図３に示される三角形構造３００および図４に示される対角線構造４４０(網点長方形)を使用して、反復が実施されている間に、トータル反復数を更新することができる。
【００７８】
図１１は、変数であるトータル反復数ｎの例を示す構造１１００を示しているす。図１１の例では、フレーム１に対する４回目の反復ｆ14を決定する間に、適応評価方法２００がステップ２５０において、フレーム１における乱流強度の過小評価のために、より多くの乱流補正が必要であることを見出している。したがって、１回以上の反復が必要である。１回以上の反復を加えるため、方法２００はステップ２３０にて、１つの余分なフレームｆ60をロードし、網点長方形で示される対角構造１１５０を使用して、更新されたフレームｆ15を生成するために第５の反復を決定する。図１１に示す適応評価方法について、図１２を参照して詳細に説明する。
【００７９】
反復数の増加は、フレームｆ10の決定のために導入され、フレームｆ00の決定の後に起こるので、利用可能なｆ50はない。図１１に示されるように、フレームｆ10の第５の反復結果は、ｆ14とｆ24との組み合わせのｆ05代わりにｆ04が使用される。実際には、構造１００は、現在の反復(反復５)からの現在のフレーム(フレーム１)の以前に補正されたバージョンの代わりに、以前の反復(フレームｆ04は反復５ではなく反復４に関連する)からのビデオシーケンスの以前の画像フレーム(フレームｆ04はフレーム０の補正に関連する)の補正されたバージョンを使用する。現在の反復における現在のフレームの補正としてのフレームｆ04の使用は、反復結果に影響を及ぼすが、メモリに記憶されたデーターに対する影響は、ｆ04がｆ05から１回だけ離れた反復であるので、最小化される。
【００８０】
図４は、次のフレームｆ10がフレームｆ00と同じ反復数を必要とする例を示している。一方、図１１では、次のフレームｆ10がｆ00よりも多くの反復回数を必要としている例を示している。図１１において、コアメモリに必要なフレーム数は、ｓ＝３（ｎ＋１）＋１である。ここでｎは、４の例において、は前回設定した反復回数となる。一般に、一度に１回の反復の増加に基づいて、コアメモリにおいて必要とされるフレームは、最小値の２（ｎ＋１）から、最大値の２（ｎ1＋１）＋｛（ｎ2−ｎ1）（２ｎ1＋３＋ｎ2−ｎ1）｝／２まで変化することができる。したがって、反復が追加される場合には、必要とされる最小フレームセットを増加させることができる。
【００８１】
例えば、ステップ２１０で決定された最大反復回数ｎ2が８であり、ステップ２１５で決定された最小反復回数ｎ1が４であり、フレームｆ00に対する以前に設定された反復回数ｎが最小回数ｎ1と同じである場合、ｆ10を補正するために、コアメモリは、少なくとも１０フレーム、最大で４０フレームを保持しなければならない。隣接するフレームのビデオ品質は、典型的には比較的ゆっくりと変化するので、特にフレームレートが速いビデオでは、１つのフレームが最小反復数を必要とし、次のフレームが最大反復数を必要とする可能性は比較的低い。連続する２つフレーム間で必要とされる反復数のより典型的な差は、ほぼ１または２である。説明される例では、フレームｆ00に対する前に設定された反復数ｎが４である場合、１６〜２３フレームだけが必要とされる。
【００８２】
次のフレームｆ10が現在のフレームｆ00よりも少ない反復を必要とする場合には、コアメモリに記憶されるフレームの数は、上記のｆ10がｆ00よりも多い反復を必要とする場合と同じパターンに従う。
【００８３】
リアルタイム監視システムでは、予期しない事象に迅速に反応するために、レイテンシ要件がしばしば存在する。言い換えれば、任意のビデオ品質改善処理ステップは、遅延(レイテンシ)の上限にてリアルタイムで行われるべきである。例えば、カメラ１７０１上に実装される長距離監視システムのレイテンシ要件が１秒とすることができる。１秒のレイテンシ要件は、処理時間およびフレーム検索時間を含む。処理時間は乱流補正アルゴリズムを適用するためにシステム１７０１によって費やされる時間であり、フレーム検索時間はフレームを捕捉し、ロードするために費やされる時間である。例えば、乱流除去を伴う特定の長距離監視システムのフレームレートが、１秒のレイテンシ要件を伴う、１０フレーム／秒(ＦＰＳ)である場合、乱流補正アルゴリズムは、将来の１０フレームを使用することに限定される。アルゴリズムが乱流補正を決定するために１１番目の将来のフレームを待つ場合、補正されたフレームは、オリジナルのフレームが捕捉された時間よりも１秒より後に生成される。したがって、レイテンシ要件は満たされない。要約すると、レイテンシ要件とシステムフレーム率との組合せ効果はシステムが使用できるフレームの最大数を制限し、その結果、最大反復数ｎ2を制限する。
【００８４】
さらに、システムにロードされるフレームの最大数、したがって最大反復数ｎ2も、システム１７０１内の利用可能な高速ストレージ(ＲＡＭ１７７０またはメモリ１７０９のキャッシュなど)によって制限される。例えば、ビデオの各ピクセルがＲＧＢチャネルで表現され、且つ、倍精度浮動小数点値を有する場合、２ＧＢのグローバルメモリを有するＧＰＵ(グラフィックス処理ユニット)は、１９２０×１０８０の解像度のＨＤ（高精細度）ビデオにおける最大２１フレームをロードすることができる。
【００８５】
図８は、図２のステップ２１０で実施される、最大反復数ｎ2を決定する方法８００を示している。方法８００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【００８６】
方法８００は、受信ステップ８１０から始まる。ステップ８１０は、プロセッサ１７０５に送信されたクエリを介してレイテンシ要件を受信する。方法８００は、ステップ８１０から受信ステップ８２０に続く。ステップ８２０は、プロセッサ１７０５に送信されたクエリを介してシステム１７０１のメモリ制限を受信する。
【００８７】
方法８００は、ステップ８００から決定ステップ８３０に続く。ステップ８３０の実行は、システムにロードすることができ、乱流補正計算に使用することができるフレームの最大数に基づいて、最大反復数ｎ2を決定する。８１０におけるレイテンシ要件および８２０におけるメモリ制限の両方によって許容されるフレームの最大数は、最大反復数ｎ2を決定する。解像度およびサイズなどのフレームのパラメータも、最大反復数ｎ2に影響を及ぼすことができる。上記の例を使用して、システム１７０１が１秒のレイテンシ要件および１０ＦＰＳ(フレーム／秒)のフレームレートを有し、システムメモリ１７０９が一度に２１フレームをロードすることを可能にする場合、反復乱流補正アルゴリズムは、おそらく、演算のために過去の１０フレーム、現在のフレーム、および将来の１０フレームを使用することができる。乱流補正アルゴリズムの反復実施形態に応じて、フレームの数は、異なるトータル反復数につながり得る。しかし、上述したように、任意の反復マルチフレーム乱流補正アルゴリズムのトータル反復数は、図３および図５に示すように、伝統的に、プロセスで使用されるフレーム数に比例する。
【００８８】
ステップ８３０において、決定された最大反復数ｎ2が、最初にロードされたフレームの数よりも小さい場合、余分なフレームは廃棄される。
【００８９】
ステップ２１５で実施されるように、最小のトータル反復回数ｎ1を決定する方法７００が図７に示されている。方法７００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０６に格納され、プロセッサ１７０５の実行下で制御される。
【００９０】
方法７００は、決定ステップ７１０で開始する。ステップ７１０は、ｍ個の初期画像にわたる平均画像を決定する。上述したように、ｍの典型的な値は５〜８である。ステップ７１０の実行において決定された平均画像は、高周波の詳細を平滑化しながら、平均化動作がオリジナルのシーンの乱流のない幾何学的形状を維持するので、構造的基準フレームとして機能する。平均画像は、最小反復数ｎ1を決定するために、ランダムに選択された乱流フレーム、例えば、ｍ個のロードされた初期のフレームの最初と比較され得る。
【００９１】
方法７００は、ステップ７１０から決定ステップ７２０に続く。最小反復数ｎ1を推定するための多くの異なる方法がある。この方法の共通の目的は、乱流強度を評価し、乱流フレームに対する対応する補正量を決定するのを助けることである。ステップ７２０では、構造類似性インデックス(structual similarity index:SSIM)を用いて、ステップ７１０からの平均画像と、ランダムに選択された乱流フレーム、例えば、ｍ個のロードされた初期のフレームの最初との間の幾何学的類似性をチェックする。このチェックは、乱流フレームにおける幾何学的歪みの尺度を提供し、したがって乱流強度の大まかな推定を提供する。構造類似性インデックス(SSIM)スコアは、計算を最小にするためにフレームの輝度チャネルを使用して決定される。
【００９２】
ステップ７２０では、構造類似性インデックス(SSIM)の異なる変形を使用することができる。例えば、勾配ベースの構造類似性インデックス(gradient-based structure similarity index(G-SSIM))方法の適用が適切であり得る。これは、構造類似性インデックスの輝度成分がオリジナルのフレームを使用して決定され、コントラスト成分および構造成分がフレームの階調マップを用いて計算されるものである。
【００９３】
方法７００は、ステップ７２０から決定ステップ７３０に続く。ステップ７３０は、ステップ７２０からの構造類似性インデックススコアに基づいて最小反復数ｎ1を決定する。ｎ1の値は、閾値を用いて決定することができる。例えば、構造類似性指標スコアが０．７より低い場合はｎ1＝５にセットし、構造類似性指標スコアが０．８より高い場合にはｎ1＝３にセットする。この閾値は、実験によって決定することができる。代替的に、特定のタイプの画像に対する許容可能な構造類似性インデックス(SSIM)スコアに関連するルックアップテーブルなどの他の方法を使用することもできる。
【００９４】
最小反復数ｎ1は、ステップ２１０において、代替技術を用いて決定することもできる。ｎ1が選択されたフレームからの乱流強度と相関される限り、ｎ1は、必要とされる乱流補正の量の適切な推定を提供することができる。例えば、ＳＬＯＤＡＲ(SLOpe Detection And Ranging)技法を使用して、乱流強度を測定し、最小反復数ｎ1を決定することができる。ＳＬＯＤＡＲが使用される場合、乱流強度Ｃn2を反復回数にマッピングするためにルックアップテーブルが使用される必要があり得る。
【００９５】
方法７００および８００によってそれぞれ実施されるステップ２１０および２１５は、システム１７０１の所与の制約に対して所望の量の乱流除去を達成するために反復が必要とされるかどうかの数を決定するように動作する。方法２００は、ステップ２６０、２５０、２４０、および２３０の実行を介して、リアルタイム乱流除去中の反復回数をさらに適応させるように動作する。
【００９６】
図２に戻って参照すると、２１０において反復の最大数および最小数が決定された後、ステップ２２０は乱流補正技術の反復を実行する。ステップ２００は、反復数に従って決定された最小フレームセットを格納した。反復乱流除去方法の詳細は、図９に関連して説明される。なぜならば、乱流イメージング方法は、各フレームのための空間的ボケ修正プロセスおよび時間ボケ修正プロセスを含む、幾何学的歪みおよび空間的ボケの両方を除去しようと試みるからである。
【００９７】
図９は、ステップ２２０で実施される、画像から歪みを除去する方法９００を示す。方法９００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。方法９００は、ボケ修正ステップ９１０で開始する。ステップ９１０は、各フレームに対して空間的ボケ修正処理を適用する。
【００９８】
方法９００は、ステップ９１０から拡散ステップ９２０に続く。ステップ９２０は、最小フレームセットのフレームを使用して、複数のフレームで幾何学的歪みを相殺するために、時間ボケ修正(拡散)プロセスを適用する。いくつかの乱流除去アルゴリズムでは、フレーム毎のボケ修正と時間的ボケ修正は別々の操作である。他の方法では、空間フレーム毎のボケ修正および時間的ボケ修正が単一の動作で完了する。
【００９９】
図１３は、例１３００を示す。例１３００は、１１個のオリジナルのフレーム１３１０と、１１個のボケ修正済みフレーム１３２０、現在のフレーム１３１１、及び、現在の補正後のフレーム１３３０を含む。１１個のフレーム１３１０（フレームｆ（−５）〜フレームｆ（５））のそれぞれは、フレーム１３２０を提供するために、個別に空間的に画質改善(enhance)され、次いで、乱流のない現在のフレーム１３３０を生成するために一緒に結合される。他の実装では、ボケ修正と、ボケ修正済みフレームの結合の２つのステップが、収束を改善するために組み合わせることができる。一例として図３を使用すると、第１の反復の後の現在のフレーム１３１１は式(１)に従って更新される。
ｆ01＝（ｆs1＋２ｆ'00＋ｆ10）／４    …（１）
【０１００】
式（１）において、ｆs1は、最初の反復の後の前のフレームを表し、ｆ'00は空間的ボケ修正９１０の後の現在のフレームを表し、ｆ10はオリジナルの将来のフレームを表す。
【０１０１】
図１０は、処理ステップ９２０で実施され、式（１）を使用する、時間拡散の方法１０００を示す。方法１０００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。方法１０００は、受信ステップ１０１０で開始する。ステップ１０１０は、更新された前のフレームｆs1を受信する。方法１０００は、ステップ１０１０から受信ステップ１０２０に続く。ステップ１０２０は、空間的に画質改善された現在のフレームｆ'00を受信する。方法１０００は、ステップ１０２０から受信ステップ１０３０に続く。ステップ１０３０は、オリジナルの未来フレームｆ10を受信する。方法１０００は、ステップ１０３０から結合ステップ１０４０に続く。ステップ１０４０において、３つのフレームｆs1、ｆ'00、ｆ10は、式（１）を使用して結合され、更新された現在のフレームｆ01を生成する。
【０１０２】
ステップ９２０では、フレームの時間的組合せのための多くの技法を使用することができる。例えば、空間的に画質改善された現在のフレームｆ'10が、時間ラプラシアンフィルタリングと組み合わされて、隣接するフレームからの情報を含む方法を使用することができる。式(１)を置き換えるために、異なる式を使用することができる。空間的画質改善（spatial enhancement）ステップ９１０および時間拡（temporal diffusion）ステップ９２０が含まれる限り、ステップ２２０における反復ボケ修正スキームは空間解像度を改善し、現在のフレームにおける幾何学的歪みを補正することができる。
【０１０３】
図２に戻って参照すると、適応評価ステップ２５０は、ステップ２１５と同様の方法を使用して、トータル反復回数を増加させる必要があるかどうかを決定する。ステップ２５０で実施される、反復数を増加させる必要があるかどうかを決定する方法１２００が図１２に示されている。方法１２００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【０１０４】
方法１２００は、決定ステップ１２１０で開始する。ステップ１２１０は、現在のフレームの周りのいくつかの隣接フレームを使用して平均画像を決定する。隣接するフレームの数は、実験によって決定することができるが、典型的には５〜８フレームの領域である。ステップ２５０は現在のフレームに対する反復の中間で起こるので、ステップ２１５におけるように、使用すべき初期フレームは存在しない。平均画像を使用して幾何学的に正しいシーンの妥当な推定値を提供するため、ステップ１２１０は、現在の反復において現在のフレーム、及び、現在の反復においていくつかの将来のフレームを使用して、平均画像を計算する。あるいは、ステップ１２１０は、数個のオリジナルフレーム、例えば、ｆ00、ｆ01、ｆ02、ｆ03にわたる平均画像を決定することができる。ただし、平均値を決定するには、オリジナルフレームを余分に記憶する必要がある。あるいは、平均決定が過度のメモリアドレス指定および計算を回避するために、数秒毎に１回だけシステムコアメモリの外部で行うことができる。
【０１０５】
方法１２００は、ステップ１２１０から決定ステップ１２２０に続く。ステップ１２１０で平均画像が作成されると、ステップ１２２０は、ステップ７２０と同様の方法で、構造類似性インデックス(SSIM)スコアを決定する。方法１２００は、ステップ１２２０からステップ１２３０に続く。トータル反復数を更新するために、ステップ１２３０は、ステップ７３０と同様に、ルックアップテーブルを使用することができる。例えば、０．７以下のSSIMスコアを閾値として使用して、トータル反復数を１だけ増加させる必要があることを意味することができ、または０．８以上の構造類似性指数(SSIM)スコアを使用して、トータル反復数を変更する必要がないことを意味することができる。上述したように、ステップ２５０はトータル反復数を増加させるだけであり、トータル反復数を決して減少させない。好ましくは、ステップ２５０がメモリの浪費を回避するために、全ての評価において、トータル反復回数を１だけ増加させる。
【０１０６】
図７の方法７００と同様に、図１２の方法１２００は、トータル反復数を推定するためにSSIM以外の方法を使用することもできる。例えば、ＳＬＯＤＡＲを用いて乱流強度を測定することができる。ＳＬＯＤＡＲが使用される場合、乱流強度Ｃn2を反復回数にマッピングするためにルックアップテーブルが使用される必要があり得る。
【０１０７】
代替実施形態では、画像改善の反復中に、トータル反復回数は更新されない。代わりに、反復を開始する前に、固定されたトータル反復数が推定される。固定数は、全てのフレームの反復を通して使用される。
【０１０８】
図１４は、固定数の実行を使用する反復ビデオ品質改善の方法１４００を示す。方法１４００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【０１０９】
方法１４００は、受信ステップ１４０５で開始する。ステップ１４０５は、最初のｍ個の初期フレームを受信する。ステップ１４０５でロードされるフレームの数は、初期推定値である。例えば、アプリケーションおよびシステムハードウェアに応じて、ステップ２０５と同様に、ｍの典型的な値は５〜８とすることができる。
【０１１０】
方法１４００は、ステップ１４０５から決定ステップ１４１０に続く。ステップ１４１０は、トータル反復数ｎを決定する。一旦、トータル反復数ｎが決定されると、方法１４００は、ボケ修正ステップ１４２０に続く。ステップ１４２０は、ステップ２２０と同様に反復乱流除去を実行する。ステップ１４２０は、図９の方法９００を参照して説明したように実施することができる。
【０１１１】
方法１４００は、ステップ１４２０からチェックステップ１４６０に続く。ステップ１４６０は、トータル反復数ｎに達したかどうかをチェックする。そうである場合（ステップ１４６０で“Ｙｅｓ”の場合)、方法１４００はチェックステップ１４７０に進む。チェックステップ１４７０は、別のフレームが利用可能であるかどうかをチェックする。別のフレームが利用可能である場合(ステップ１４７０で“Ｙｅｓ”の場合)、方法１４００は次のフレームをロードするように動作し、ステップ１４２０に戻り、ｎ回の反復の間、新たにロードされたフレームのためのボケ修正を実行する。
【０１１２】
ステップ１４６０で、反復が現在のフレームについて終了していない場合(ステップ１４６０で“Ｎｏ”の場合)、方法１４００はステップ１４２０に戻り、現在のフレームについて反復的なボケ修正を継続する。
【０１１３】
ステップ１４７０に戻って、それ以上のフレームが利用可能でない場合(“Ｎｏ”の場合）、方法１４００は終了する。
【０１１４】
反復が開始すると、トータル反復数は変化しないので、方法１４００は、方法２００よりも少ないコアメモリ容量しか必要としない。図４に示すように、４回の反復の場合には、高速アクセスのためにコアメモリ内に保持する必要があるのは１０フレームだけとなる。
【０１１５】
次に、ステップ１４１０で実施される、反復数ｎを決定する方法１５００を、図１５を参照して説明する。方法１５００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【０１１６】
方法１５００は、決定ステップ１５１０で開始する。ステップ１５１０は、ハードウェアおよびレイテンシ要件によって許容される最大反復回数を決定する。ステップ１５１０は、図８を参照して説明した方法８００を使用して実施することができる。
【０１１７】
方法１５００は、ステップ１５１０から決定ステップ１５１５に続く。ステップ１５１５は、キャプチャされたビデオの効果的な乱流補正を提供するための最小反復回数を決定するように処理を進める。ステップ１５１５は、図７を参照して説明した方法７００に従って実施することができる。
【０１１８】
方法１５００は、ステップ１５１５から選択ステップ１５２０に続く。ステップ１５２０は、最小値ｎ1および最大値ｎ2に基づいて、トータル反復数ｎを選択する。例えば、トータル反復回数ｎは、ｎ1とｎ2の平均であってもよい。あるいは、アプリケーションのタイプなどの余分な情報を考慮しても良い。例えば、乱流撮像システムがセキュリティ監視のために使用される場合、高速応答が重要であり、ｎ1とｎ2の重みづけ平均を用いても良い。ここで、式（２）に示されるように、ｎ1により多くの重みが与えることができる。
ｎ＝（２ｎ1＋ｎ2）／３        …（２）
【０１１９】
一方、例えば気象データ収集のようなアプリケーションのために、短いレイテンシがシステムにとって重要でない場合には、より多くの重みをｎ2に与えることができる。
【０１２０】
別の代替実施形態では、すべてのフレームのトータル反復回数が反復中に更新されない。代わりに、固定されたトータル反復数が、反復を開始する前に推定され、各フレームの反復全体にわたって使用される。この実施形態では、トータル反復回数が各フレームについて個別に更新され、決定される。したがって、各フレームは、異なるトータル反復数ｎを有することができる。
【０１２１】
図１６は、各フレームに対して異なるトータル反復数を使用して反復ビデオ品質改善を実行する方法１６００を示す。方法１６００は、通常、アプリケーション１７３３の１以上のモジュールとして実装され、メモリ１７０９に格納され、プロセッサ１７０５の実行下で制御される。
【０１２２】
方法１６００は、受信ステップ１６０５で開始する。ステップ１６０５は、ステップ２０５と同様に、最初のｍ個の初期フレームを受信する。ステップ１６０５でロードされるフレーム数ｍは、初期推定値である。例えば、アプリケーションおよびシステムハードウェアによるが、典型的な値は５〜８とすることができる。
【０１２３】
方法１６００は、ステップ１６０５から決定ステップ１６１０に続く。ステップ１６１０は、反復数ｎを決定する。ステップ１６１０は、方法２００のステップ２１０および２１５と同じ方法で実施することができる。あるいは、方法１５００がステップ１６１０で実施することができる。トータル反復回数ｎが決定されると、方法１６００は、ボケ修正ステップ１６２０に続く。ステップ１６２０は、ステップ２２０と同じ反復的なボケ修正技術を実行する。ステップ１６２０は、図９を参照して説明した方法９００を使用して実施することができる。
【０１２４】
方法１６００は、ステップ１６２０からチェックステップ１６６０に続く。ステップ１６６０は、現在のフレームのトータル反復数ｎに達したかどうかをチェックする。トータル反復回数に達した場合(ステップ１６６０で“Ｙｅｓ”の場合)、方法１６００はチェックステップ１６７０に進む。ステップ１６７０は、ロードすべき別のフレームがあるかどうかをチェックする。別のフレームがある場合(ステップ１６７０で“Ｙｅｓ”の場合)、ステップ１６７０は次のフレームをロードし、方法１６００はステップ１６０５に戻り、新たにロードされたフレームに関連するｍ個のフレームを受信する。現在のフレームについて反復が終了していない場合(ステップ１６６０で“Ｎｏ”の場合)、方法１６００は、現在のフレームについてステップ１６２０でのボケ修正の別の反復を実施し続ける。ステップ１６７０で、さらなるフレームが利用可能でないと判定された場合(ステップ１６７０で“Ｎｏ”の場合)、方法１６００は終了する。
【０１２５】
方法１６００では、トータル反復数はフレームごとに変化する可能性があるので、メモリ要件は、一般に、２（ｎ＋１）より大きい。ここで、ｎは反復回数を示している。上述したように、隣接するフレームの実際の反復数に応じて、メモリ内に保持する必要があるフレームの数は、２（ｎ＋１）と２（ｎ＋１）＋（ｎs−ｎ）（ｎs＋ｎ＋３）／２の間で変化することができる。ここで、ｎは現在のフレームの反復数であり、ｎsは前のフレームの反復数である。
【０１２６】
反復数推定ステップ（１６１０）の詳細は、図１５を参照して説明した。反復的なボケ修正ステップ（１６２０）の詳細は、図９を参照して説明した。
【０１２７】
記載された構成は、コンピュータおよびデータ処理産業、特に画像処理に適用可能である。記載された構成は、リアルタイムでの長距離乱流除去に特に適している。上述した方式で反復回数及び対応する最小フレームセットを決定する際に、訂正されたフレームを生成するために記憶するのに必要なフレーム数を低減することができ、本方式をリアルタイムで実施することができる。
【０１２８】
実用的な実施例では、説明した構成は、デバイス１７０１によって捕捉された自動車の画像を長距離から改善またはボケ修正に使用される。方法２００は自動車のキャプチャされた画像から乱流の影響を除去するために、デバイス１７０１のメモリ要件に従って決定されるいくつかの反復を使用して実施される。
【０１２９】
上記は本発明のいくつかの実施形態のみを説明しており、本発明の範囲および精神から逸脱することなく、本発明に修正および/または変更を加えることができ、実施形態は例示であり、限定ではない。
【０１３０】
本明細書の文脈では「含む」という語が「主に含むが、必ずしも単独ではない」または「有する」または「含む」を手段し、「のみからなる」ではない。「備える」および「備える」などの単語「備える」の変形は、対応して変化する意味を有する。
【図１】
2020144835.tif 000003
【図２】
2020144835.tif 000004
【図３】
2020144835.tif 000005
【図４】
2020144835.tif 000006
【図５】
2020144835.tif 000007
【図６】
2020144835.tif 000008
【図７】
2020144835.tif 000009
【図８】
2020144835.tif 000010
【図９】
2020144835.tif 000011
【図１０】
2020144835.tif 000012
【図１１】
2020144835.tif 000013
【図１２】
2020144835.tif 000014
【図１３】
2020144835.tif 000015
【図１４】
2020144835.tif 000016
【図１５】
2020144835.tif 000017
【図１６】
2020144835.tif 000018
【図１７Ａ】
2020144835.tif 000019
【図１７Ｂ】
2020144835.tif 000020