(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
「例示的」または「例」という語は、「例、実例、または例示の役割をすること」を意味するように本明細書で使用される。本明細書で「例示的」または「例」として説明される態様または実施形態は、必ずしも、他の態様または実施形態よりも好ましい、または有利であると解釈されるべきではない。
【0017】
デバイス概略
図1は、本発明の実施形態が実施され得る例示的なシステムを示すブロック図である。このシステムは、制御ユニット160を含み得るデバイス100であることが可能である。制御ユニット160は、後段で説明される様々な実施形態を実行する方法を実施するように構成され得る。たとえば、制御ユニット160は、
図5〜
図8に示されるデバイス100の機能を実施するように構成され得る。また、デバイス100は、汎用プロセッサ161、画像プロセッサ166、グラフィックスエンジン167、およびメモリ164を含むことも可能である。画像プロセッサ166は、複数の画像を処理して、マージされた出力画像を作成するための、基準画像を選択するため、およびゴースト様のアーティファクトの除去のために後段により詳細に説明される命令を含み得る。グラフィックスエンジン167は、処理され、入力された画像の表示を出力する命令、およびユーザインターフェースを提供することが可能である。また、デバイス100は、汎用プロセッサ161と画像プロセッサ166のうちの少なくとも1つにさらに結合された1つまたは複数のバス177または信号線路に結合された、いくつかのデバイスセンサを含むことも可能である。デバイス100は、モバイルデバイス、ワイヤレスデバイス、セル電話、携帯情報端末、ウェアラブルデバイス(たとえば、眼鏡、腕時計、ヘッドウェア、または類似した身体に取り付けられるデバイス)、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、または処理能力を有する任意のタイプのデバイスであり得る。
【0018】
一実施形態において、デバイス100は、モバイル/ポータブルプラットフォームである。デバイス100は、カメラ114などの、画像をキャプチャするための手段を含み得る。デバイス100は、ディスプレイ112などの、画像を表示するための手段を含むユーザインターフェース150をさらに含み得る。また、ユーザインターフェース150は、ユーザがデバイス100に情報を入力することができるキーボード、キーパッド152、または他の入力デバイスを含むことも可能である。所望される場合、タッチスクリーン/センサを有するディスプレイ112に仮想キーパッドを組み込むことが、キーボードまたはキーパッド152を不要にする。デバイス100は、衛星測位システム受信機、電力デバイス(たとえば、バッテリ)などの、本開示とは無関係な他の要素、ならびにポータブル電子デバイスおよび非ポータブル電子デバイスに通常、関連する他の構成要素を含んでもよい。デバイス100は、ポータブル電子デバイス(たとえば、スマートフォン、専用撮像デバイス、ゲームデバイス、または画像キャプチャ能力、画像処理能力、および画像表示能力を有する他のデバイス)であり得る。
【0019】
いくつかの実施形態において、デバイス100は、データ処理システム、パーソナルコンピュータ、ネットワークコンピュータ、サーバ、または別のデバイスもしくは家庭用電子機器製品の内部の組み込まれた処理デバイスであり得る。本明細書で使用されるコンピュータ、デバイス、システム、処理システム、処理デバイス、および「処理デバイスを備える装置」という用語は、デバイス100と互換的に使用されることが可能であり、本明細書でリストアップされる例示的な実施形態を含み得る。
【0020】
また、図示されないさらなる構成要素が、デバイス100の一部であることも可能であり、一部の実施形態において、
図1に示されるよりも少ない構成要素が、デバイス100において使用されることも可能である。この説明から、本発明の態様は、少なくとも部分的に、ソフトウェアで実現され得ることが明白となろう。つまり、
図5〜
図8のコンピュータによって実施される方法は、コンピュータシステムまたは他のデータ処理システムにおいて、そのようなシステムのプロセッサまたは処理システムが、メモリ164または他の非一時的なマシン可読記憶媒体のようなメモリの中に包含される命令のシーケンスを実行することに応答して、実行され得る。このソフトウェアは、ネットワークインターフェースデバイス経由でネットワーク(図示せず)を介してさらに送信される、または受信されることが可能である。様々な実施形態において、ハードワイヤド回路が、これらのソフトウェア命令と組み合わせて使用されて、これらの実施形態を実施することが可能である。このため、技法は、ハードウェア回路とソフトウェアのいずれの特定の組合せにも限定されず、デバイス100によって実行される命令に関するいずれの特定のソースにも限定されない。
【0021】
動きゴーストフィルタリング概略
本明細書で説明されるゴースト様のアーティファクトおよびゴースティングは、動く被写体/対象を有するセットの画像がマージされた、または組み合わされた後、生じ得る出力画像異常を表す。たとえば、画像内の対象または被写体が、HDR処理、パノラマ画像、または焦点合成のためのセットの入力画像の中の1つの画像から別の画像で相対的位置を変えた場合。
【0022】
一実施形態において、動きゴーストフィルタリング(MGF)が、複数の画像をマージして単一の出力画像にする際にゴースト様のアーティファクト(すなわち、ゴースティング)を低減する、または解消する理想的な基準画像をインテリジェントに選択する。基準画像は、MGFが、最終的な出力画像を作成するために使用することができる動きマスク区域の下のピクセルに関するソース画像であり得る。
【0023】
一実施形態において、MGFは、セットの入力画像のうちのいずれが、その他の画像または出力画像にかかわらず、最高の個別画像品質を有するかを決定することが可能である。知覚される最高の画像品質を有する画像を決定すると、MGFは、その単一の基準画像から動きマスクの下のセクション(たとえば、ゴースティングが生じやすいセクション)を最終的な出力画像にコピーすることが可能である。単一の基準画像、および正確な動きマスクを使用することによって、MGFは、マージされた出力画像がゴースティングを有さないことを実質的に保証することができる。動きマスク(すなわち、ゴーストマップ)およびMGFは、後段でより詳細に説明される。
【0024】
動きゴーストフィルタリングを伴う高ダイナミックレンジ撮像
MGFは、高ダイナミックレンジ(HDR)画像、パノラマ画像、拡張された被写界深度画像(すなわち、焦点合成)、ならびに動く対象を包含する複数の画像をマージする、または組み合わせる他の撮像処理技法におけるゴースティングを補正することが可能である。後段で詳細に説明されるように、MGFは、HDR画像処理におけるゴースティングを除去することに効果的であり得るが、HDRに関係して説明される技法の多くは、パノラマ撮像および拡張された被写界深度画像にも適用可能である。したがって、本明細書で説明されるように、MGFを伴うHDRは、1つの例示的な実施形態にすぎず、MGFをHDR画像処理に限定しない。
【0025】
一実施形態において、MGFは、一連の低ダイナミックレンジ(LDR)画像からHDR画像を作成することが可能である。他の実施形態において、別個のHDRプロセス、HDRモジュール、またはHDRエンジンが、HDR画像を処理し、MGFを呼び出して、いずれの基準画像が最も適切であるかを決定する。
【0026】
図2は、インテリジェントな基準画像選択を伴うHDR画像作成の一実施形態を示す。ブロック205で、この実施形態(たとえば、MGF)が、入力LDR画像を受け取ることが可能である。たとえば、この実施形態が、3つ、7つ、または他の量の一意の入力画像のセットを受け取ることが可能である。これらの入力画像の各々は、いくつかだけを挙げると、異なる露出値、色値、およびテクスチャ値を有し得る。
【0027】
ブロック210で、この実施形態が、それらのLDR画像を位置合せすることが可能である。2つ以上の入力画像が異なる視点からシーンをキャプチャするようにカメラ視点全体が移動した場合、位置ずれが生じ得る。たとえば、ハンドヘルドカメラ画像キャプチャが、1つの画像フレームから次の画像フレームで画像の位置ずれを被る可能性がある。位置ずれは、フレーム内で動く対象のぼやけまたはゴースティングとは異なる。セットの入力画像の中の画像をより正確に比較して、組み合わせるのに、この実施形態は、各画像が、ほぼ同一の視点(すなわち、カメラ位置)を表すように各画像を位置合せする(すなわち、そろえる)ことが可能である。
【0028】
ブロック215で、この実施形態が、動きマスクを生成することが可能である。動きマスクは、動きが存在するシーンの部分を識別して、画像において動きが包含される境界を指定することが可能である。動きマスクMは、次のように定義される、LDR入力画像と同一サイズの単一チャネルバイナリ画像であり得る。すなわち、
【0030】
Mを計算するのに、この実施形態が、位置合せされたLDR入力画像
【0032】
から始めることが可能である。本明細書で使用される位置合せされた入力とは、各画像の静止した特徴または要素が、画像フレームごとに同一の位置に出現するように互いに対してすべてそろえられた入力画像を指す。位置合せは、位置ずれしたセットの画像を後処理すると、行われることが可能であり、またはセットの入力画像(たとえば、三脚に装着されたカメラでキャプチャされる画像)全体にわたって同一のカメラ視点を保つことによって画像作成中に実現されることが可能である。
【0033】
入力画像が、異なる露出設定で(たとえば、センサの露出時間または感度/ISOを変えることによって)キャプチャされると、
【0035】
の値が、iとともに変化する。しかし、そのピクセルに対応するシーンポイントが静止している場合、そのピクセルの照度値は、一定のままである。ピクセル値I
i(x,y)、露出時間Δt
i、およびカメラ応答関数fを所与として、ピクセルE
i(x,y)の照度は、次のように計算され得る。
【0037】
この関係式は、露出時間を正規化し、画像スタック(すなわち、入力画像セット)にわたってピクセルの値を比較することを可能にする。不飽和のピクセルおよび過飽和のピクセルを除いて、E
i(x,y)は、対応するシーンポイントが静止している場合、iとともに一定のままでなければならない。しかし、このピクセルが、LDR画像がキャプチャされた持続時間内に移動する場合、E
i(x,y)は、iとともに任意に変化することが可能であり、Mを計算するキューとして使用されることが可能である(たとえば、MGFによって)。2つの露出画像I
i、I
i+1のYチャネルを所与として、動きマスクM
i,i+1が、次のように照度不変差をまず計算することによって計算され得る。
|log(E
i(x,y))-log(E
i+1(x,y))| 式3
【0038】
露出画像I
i、I
i+1は、連続していてもよく、代替として、露出シーケンスの任意の部分からであってもよい。式3からのこの差分画像に加重係数を掛けて、過飽和のピクセルおよび不飽和のピクセルの効果を抑制することが可能である。スペックルを除去するのに、この実施形態が、差分画像をボックスフィルタリングすることが可能である。次いで、もたらされる画像がしきい値処理されて、動きマスクM
i,i+1が得られることが可能である。いくつかの実施形態において、動きマスク計算は、RGBのような他の色空間で決定され得る。次いで、組み合わされた動きマスクMが、すべてのペアごとのマスクの論理和によって計算される。たとえば、NがLDR画像の数である場合に、
M=M
1,2∨M
2,3∨...∨M
N-1,N 式4
【0039】
ブロック220で、この実施形態が、基準画像を選択することが可能である。動きマスク区域内の複数の画像を組み合わせることは、ゴースト様のアーティファクトにつながり得るので、MGFが、LDR画像(本明細書で基準画像と呼ばれる)のうちの1つから動きマスク区域の下のピクセルをコピーすることが可能である。MGFは、基準画像からのピクセルをコピーして、最終的なHDR画像(すなわち、出力画像)にゴースト様のアーティファクトが存在しないことを確実にすることが可能である。MGFは、複数のLDR画像をキャプチャして、最終的な出力画像(たとえば、HDR画像、パノラマ画像、拡張された被写界深度画像)を生成することが可能である。MGFは、後段でより詳細に説明されるように、画像品質スコアまたは画像品質基準に基づいて、いずれの基準画像が選択されるかをインテリジェントに選択することが可能である。
【0040】
ブロック225で、この実施形態が、露出を融合して、混合することが可能である。この実施形態は、LDR画像を融合する加重w
i、i=1,2,...Nを生成することが可能である。この実施形態は、次のようにLDR画像の加重された組合せによって照度領域における標準HDRを獲得することが可能である。
【0042】
ただし、E
i(x,y)は、照度領域に変換されたLDR画像である。E
HDRは、動きの効果が全く補償されておらず、したがって、ゴースト様のアーティファクトが生じやすい可能性がある、照度領域における標準HDR画像である。ゴーストのないHDR画像を作成するのに、この実施形態は、動きマスクMを利用して、基準画像から動きマスク区域の下のピクセルをコピーすることが可能である。しかし、ブラインドコピーは、動きマスクの境界上のアーティファクトにつながり得る。この実施形態は、画像を混合することに先立って大きい平滑化カーネルで動きマスクを平滑化することによって境界アーティファクトを低減する、または解消することが可能である。平滑化が、動きマスクからシーンの静止した部分への遷移が急でない(すなわち、ゆっくりとした、平滑な)様態で生じることを確実にする。Bが平滑化された動きマスクを表して、MGF HDRは、次のように計算され得る。
【0044】
ただし、E
MGF HDRは、照度領域におけるMGF HDR画像であり、B(x,y)は、平滑化された動きマスクであり、E
refは、基準画像である。
【0045】
ブロック230で、この実施形態が、色調をマップすることが可能である。この実施形態は、照度領域からのHDR画像内の色調をピクセル輝度領域にマップすることが可能である。この実施形態は、カメラ応答関数(すなわち、ガンマ曲線)をHDR画像にまず適用することが可能である。次いで、この実施形態は、コントラスト制限された適応ヒストグラム等化(CLAHE:Constrast Limited Adaptive Histogram Equalization)と呼ばれる適応ヒストグラム等化の変種を適用して最終的なHDR画像を得ることが可能である。他の実施形態において、他の色調マッピングアルゴリズムまたは色調マッピング技法が、前述した例示的な色調マッピングの代わりに使用され得る。
【0046】
図3A、
図3B、および
図3Cは、複数の画像処理(たとえば、HDRまたは焦点合成)のための一連の入力画像における第1の画像、第2の画像、および第3の画像を示す。時刻t=1で、サイクリストが、LDR画像フレーム301内の第1の位置310にいる。時刻t=2で、サイクリストは、LDR画像フレーム302内の第2の位置310'にいる。時刻t=3で、サイクリストは、LDR画像フレーム303内の第3の位置310''にいる。露出の変化は、入力画像の線表現において直ちに明白ではない可能性があるものの、各LDR画像フレーム301、302、および303は、これらのシーンの異なるように露出された画像キャプチャを表すことが可能である。たとえば、LDR画像フレーム301が、第1の画像露出(たとえば、露出不足)を表すことが可能であり、LDR画像フレーム302が、第2の画像露出(たとえば、通常の、デフォルトの、または標準の露出)を表すことが可能であり、LDR画像フレーム303が、第3の画像露出(たとえば、露出オーバ)を表すことが可能である。
【0047】
図3Dは、一実施形態における、異なる露出を有する3つのLDR入力画像から組み合わされた結果のHDR出力画像を示す。結果のHDR画像304は、出力画像HDRが生成されていた間の画像フレームにわたるサイクリストの移動からもたらされる動き画像ゴースティング320を包含する。
【0048】
図3Eは、一実施形態における、LDR画像フレーム301〜303のマージからもたらされる動きマスク305の表現を示す。
図3Eは、セクション350で示される静止(すなわち、定義された境界内で全く動きのない静止した区域)を含む。また、
図3Eは、サイクリストの移動によってもたらされるゴースティングを分離する構成要素365に関する動きマスク境界360も含む。
【0049】
図4Aおよび
図4Bは、フレーム内の別々の2つの動く対象を各々が有する、異なる時点でキャプチャされた異なる2つの入力画像を示す。第1の入力画像401において第1の位置405にいるサイクリストは、第2の入力画像402において新たな位置405'に移動している。また、位置410からのジョギングする人も、第2の入力画像402において新たな位置410'に移動している。第1の位置405にいるサイクリストと位置410にいるジョギングする人はともに、組み合わされた出力画像内の動く対象を代表する。MGFが、対象/被写体(たとえば、サイクリストおよびジョギングする人)の移動を検出して、画像が組み合わされた際に生じ得るゴースティングを低減する、または解消することが可能である。
【0050】
図4Cは、第1の入力画像401と第2の入力画像402のマージからもたらされる動きマスク403を示す。MGFが、動きマスク403がつながっていない別々の構成要素を有すると判定して、基準画像を決定する際に各構成要素を別々に扱うことが可能である。たとえば、MGFが、サイクリストとジョギングする人が各々、個別のつながっていない構成要素を有するように、動きマスク403内で別々の構成要素を作成することが可能である。たとえば、つながっていない構成要素440が、ジョギングする人の移動に関連する一方で、つながっていない構成要素435が、サイクリストの移動に関連する。つながっていない構成要素の各々は、静的/静止した空間で分離される。
【0051】
図4Dは、一実施形態における、画像401および402から組み合わされたゴースト様のアーティファクト出力画像を示す。ゴースト低減がディセーブルにされた状態で画像401および402からの画像をマージすると、いくつかのゴースト様のアーティファクト(たとえば、アーティファクト460および470)が存在することが可能である。一実施形態において、MGFが、後段で説明されるとおり、ゴーストアーティファクトを除去することが可能である。
【0052】
一実施形態において、MGFが、入力画像ごとに基礎をなす画像特徴に関して別々に処理する(たとえば、基準スコアまたは画像品質スコアを決定する)ことが可能である。たとえば、構成要素420の下の区域440が、それぞれの入力画像に依存して変わる。たとえば、第1の入力画像401に関連する区域440が、第1のセットの露出設定で第1の位置405においてキャプチャされたサイクリストを包含することが可能である。第2の入力画像402に関連する区域440が、第2のセットの露出設定で新たな位置405'においてキャプチャされたサイクリストを包含することが可能である。したがって、第1の入力画像401における構成要素の下の区域は、第2の入力画像402における構成要素の下の区域とは、1つまたは複数の画像品質基準において異なるスコアを得ることが可能である。たとえば、サイクリストが、1つの画像において、より高速に移動していて、それほど鮮明でない画像をもたらすことが可能であり、またはサイクリストが、木々からの陰のパッチに入っていて、別の画像キャプチャとは異なる色描写をもたらす可能性がある。構成要素420は、一定である(すなわち、所定の境界を保つ)ことが可能であるが、構成要素420の下の画像データは、第1の入力画像401から第2の入力画像402へ変わることが可能である。
【0053】
また、MGFは、各構成要素を、同一の動きマスク内の他の各構成要素とは別に、独立に解析することも可能である。たとえば、MGFは、第1の構成要素に関する最良の画像、および第2の構成要素に関する最良の画像を決定することが可能であり、ただし、最良の画像は、構成要素ごとに異なり得る。たとえば、木の陰に入った位置410にいるジョギングする人が、位置410にいるジョギングする人が木の真下にいるときに、位置410で露出が良好であるが、位置410にいるジョギングする人がより直射日光を受けているときに、新たな位置410'で露出が良好でない可能性がある。MGFは、露出の良好な画像品質基準を使用して、構成要素430に関する基準画像が、402からの入力画像ではなく、第1の入力画像401から撮影され得ることを決定することが可能である。さらに、同一の出力画像に関して、MGFは、露出の良好な画像品質基準を使用して、構成要素420に関する基準画像が、401からの入力画像ではなく、第2の入力画像402から撮影され得ることを決定することが可能である。したがって、いくつかの実施形態において、MGFは、1つの構成要素(たとえば、位置410にいるジョギングする人を含む)に関して、動きマスク内の他の構成要素(たとえば、第1の位置405にいるサイクリストを含む構成要素420)と比較して、異なる基準画像(たとえば、401)を選択することが可能である。
図4Eは、画像401の入力画像のジョギングする人410、および入力402からのサイクリスト405'から処理されたアーティファクトのない出力画像を示す。
【0054】
基準画像の基準(Reference Image Criteria)
基準画像は、最終的なマージされた出力画像を作成する際にMGFが使用する(すなわち、コピーする)ことができる動きマスク区域の下のピクセルに関するソース画像である。低品質の基準画像を選択することは、それに相応して低い出力画像品質をもたらし得る。たとえば、HDR画像を作成する際、露出不足の画像を基準画像として選択することは、ノイズの多い、暗いピクセルをもたらして、出力画像の知覚上の品質の大幅な低下を生じる可能性がある。代替として、露出オーバの画像を選択することは、目に見えて色あせた画像特徴をもたらし得る。
【0055】
一実施形態において、MGFが、基準画像選択を、組み込まれた露出基準、色基準、飽和基準、鮮明度基準、およびテクスチャ基準を有する最適化費用関数として策定することが可能である。一実施形態において、動きマスクの中に、つながっていない複数の(たとえば、隣接しない、または別々の)構成要素(すなわち、ブロブまたは画像パッチ)が存在する場合、MGFは、これらの構成要素の各々に関して最良の基準画像を選んで、最高品質の出力画像を実現することが可能である。たとえば、HDR画像を作成する際、MGFは、最良の出力画像のために低露出の画像からの構成要素のうちの1つ、および高露出の画像から別の構成要素をコピーすることが可能である。構成要素ごとに最良の画像を選択するMGFの柔軟性は、画像が、露出不足の領域と露出オーバの領域の両方において動きを有する場合に、特に有用である。
【0056】
一実施形態において、MGFが、基準(たとえば、露出、色、飽和度、鮮明度、およびテクスチャ)を測定して、それぞれの入力画像の各画像内の各構成要素、各ブロブ、または各パッチに基準スコア(すなわち、画像品質スコア)を割り当てることが可能である。たとえば、セットの入力画像の中の各入力画像が、前述したとおり、関連する動きマスクを有することが可能である。動きマスクは、一意の画像特性を有する別々の/別個の1つまたは複数の構成要素区域を有し得る。一実施形態において、MGFが、各構成要素(すなわち、ブロブまたはパッチ)に関連する画像における区域に関して、それぞれの画像品質を決定することが可能である。
【0057】
図5は、一実施形態における、動きゴーストフィルタリングの流れ図を示す。ブロック505で、この実施形態(たとえば、MGF)が、複数の一意の画像の各画像内の各構成要素に関する画像品質スコアを決定することが可能である。一実施形態において、MGFが、すべての基準スコアを合計し、それらの結果を格付けして、動きマスクの中のそれぞれの構成要素に関していずれの入力画像が最高の全体的な基準スコアを受けたかを判定することが可能である。MGFは、最高の全体的なスコアを、各構成要素に関する基準画像として選択することが可能である。
【0058】
いくつかの実施形態において、MGFが、特定の基準の知覚される重要度に基づいて、各基準加重を変更することが可能である。たとえば、MGFが、適切な露出が色よりも重要であると決定し、露出スコアに、他の基準よりも大きい加重を与えることが可能である。この前述の例において、基準の各々に1という初期加重が割り当てられた場合、MGFは、他の基準加重を(たとえば、0.5に)低減すること、および/または露出基準の加重を(たとえば、2に)増加させることが可能である。
【0059】
ブロック510で、この実施形態が、第1の基準画像に関連する第1の構成要素の第1のそれぞれの画像品質スコアに基づいて、複数の一意の入力画像から第1の基準画像を選択することが可能である。MGFは、それぞれの構成要素に関して最高のスコアを有する画像を、対応する基準画像として選択することが可能である。
【0060】
ブロック515で、この実施形態が、複数の一意の画像のマージに基づいて、出力画像を作成することが可能である。また、出力画像は、各構成要素に関連する各基準画像の少なくとも一部分を含むことも可能である。たとえば、セットの入力画像からHDR出力画像を作成するのに、MGFは、各入力画像をマージして、融合して、または混合して、各入力画像の視覚的に最も快い部分を有する単一の出力画像を作成することが可能である。いくつかの実施形態において、MGFは、基準画像の構成要素を出力画像に直接にコピーすることが可能である。たとえば、第1の構成要素が、木の陰の中を走っている個人を有する画像の区域を表すことが可能である一方で、第2の構成要素が、日光に照らされた小道を自転車走行する個人を表すことが可能である。MGFは、視覚的に最も快い画像特性を有する各構成要素区域を、他の各構成要素とは別に、独立に決定して、その「最良の」、または最高のスコアを得る基準画像構成要素を最終的な出力画像にコピーすることが可能である。
【0061】
色の豊かさ
色の豊かさは、画像の品質を決定する際に重要な要因であり得る。知覚される画像品質は、色彩豊かなイメージの方に強く偏り得る。MGFが、画像内に見られる色を客観的に測定して、色に基づく画像品質スコアを与えることが可能である。いくつかの実施形態において、色基準(すなわち、色の豊かさ)が高いほど、それほど色のない他の画像と比べて、その画像が基準画像として選択される尤度が大きくなる。
【0062】
一実施形態において、MGFが、色の豊かさを(たとえば、RGB色空間から)測定するのに先立って、入力画像をYUV色空間に変換することが可能である。YUV色空間において、Yチャネルは、輝度値を表し、チャネルUおよびVは、色情報を表す。MGFは、画像パッチ内のクロマチャネルUとVの絶対値を合計すること(すなわち、|U|+|V|)によって色の豊かさスコアを決定することが可能である。また、MGFは、次のように動きマスクの下の画像の色情報を測定することも可能である。
【0064】
露出の良好なピクセル
不飽和であるピクセル、すなわち、0に近い輝度値を有するピクセルは、平均よりも多い量のノイズを包含する可能性がある。ノイズの多いピクセルが出力画像にコピーされると、出力画像の全体的な知覚上の品質が低下する可能性がある。代替として、輝度範囲の反対のスペクトル(たとえば、255に近い輝度値)にあるピクセルは、過飽和/露出オーバであると考えられることが可能であり、出力画像の品質の低下をやはり生じる可能性がある。
【0065】
一実施形態において、画像の露出レベルが、画像品質を測定するため、および基準画像を選ぶための基準として使用されることも可能である。MGFが、動きマスクの構成要素内のピクセルに関する露出のレベルを測定することが可能である。たとえば、
【0067】
ただし、Yは、ピクセル輝度であり、Nは、加重係数における正の指数(たとえば、6または他の値)である。中域の露出値が、出力画像の(たとえば、HDR画像に関する)向上した知覚上の品質につながることが可能である。したがって、いくつかの実施形態において、MGFは、画像ピクセルが中域の輝度値(すなわち、Y
mid=128あたりの)を有する場合、露出基準により高いスコアを与える。Y
midが、輝度範囲のいずれかの側にさらに移動するにつれ、それぞれの画像を基準画像として選択することの望ましさは、低下する。
【0068】
一実施形態において、MGFが、Y
mid=128を有するピクセル輝度値に対するハット関数によって、露出の良好な基準を測定する。
【0070】
不飽和のピクセル
一実施形態において、MGFが、動きマスクのそれぞれの構成要素によって覆われる不飽和のピクセルの数を決定することが可能である。入力画像(たとえば、HDR処理のためのセットの画像の一部としてのLDR画像)が、それぞれの入力画像を基準画像として不良な選択にし得る飽和したピクセルの数を包含する可能性がある。シーンポイントの輝度を測定するのに、カメラセンサが、露出時間中にピクセルグリッドに当たる光子の数を時間的に積分することが可能である。しかし、輝度値は、255という上限を有することが可能であり、非常に明るいシーンポイントに対応するピクセルは、255を上限とする。したがって、255値に近い飽和したピクセルを有する領域における情報の本来的な損失が存在する可能性がある。さらに、過飽和のピクセルが、出力画像(たとえば、最終的なHDR画像)の知覚上の品質の劣化をもたらす可能性もある。
【0071】
一実施形態において、MGFが、飽和したピクセルを包含する構成要素に関する画像品質スコアを低減することが可能である。たとえば、MGFが、しきい値(たとえば、255がピクセルに関する最大輝度である場合に、253という値)よりも大きい輝度を有するピクセルを包含する入力画像にペナルティを課すことが可能である。
【0072】
一実施形態において、MGFは、飽和したピクセルに飽和ペナルティC
iを課すことが可能である。たとえば、
【0074】
であり、ただし、C
iは、画像Iに関する飽和ペナルティであり、Iは、指示関数であり、Y
i(x,y)は、ピクセル(x,y)の輝度値である。飽和ペナルティC
iは、画像インデックスiの関数である。構成要素内により多くの飽和したピクセルが存在するほど、MGFは、低露出の入力画像(たとえば、LDR画像)を選択する方に費用関数を、より偏らせようと試みる。このことは、C
i-1≦C
iであるように飽和ペナルティの値を設定することによって実現され得る。その場合、最終的な費用関数は、個々の費用関数の加重された組合せである。
J
ref(i)=J
cost(i)+αJ
we(i)+βJ
sat(i) 式11
であり、ただし、MGFは、基準画像を、インデックス
【0076】
を有する入力画像(たとえば、LDR画像)であるように選択し、ただし、
【0079】
さらなる基準
他の実施形態において、MGFが、前述した基準のうちの1つまたは複数に加えて、またはそれらの基準の代わりにさらなる基準を計算する。たとえば、MGFは、テクスチャ、コントラスト、鮮明度、または他の画像品質メトリックに基づいて、画像品質スコアを計算することが可能である。たとえば、MGFは、入力画像の階調度を計算して、各動き領域(すなわち、動きマスクの各構成要素によって覆われた領域)のテクスチャ/鮮明度の豊かさを格付けすることが可能である。MGFは、ぼやけた画像を検出するように訓練されたクラシファイアを使用して、ぼやけた入力画像を基準として選択することを回避することが可能である。たとえば、MGFは、前述した領域の露出度および彩度に加えて、入力フレームの鮮明度/ぼやけ度を測定するメトリックを使用してもよい。いくつかの実施形態において、MGFは、クラシファイアを使用して、マスクの下の画像/パッチを鮮明である/ぼやけていると分類することが可能である。
【0080】
さらに他の実施形態において、MGFが、前述した基準/メトリックのうちの1つ、すべて、または任意の組合せ/加重を使用することが可能である。たとえば、MGFは、基準画像を決定するために色基準を使用し、他のすべての基準を省く/無視することを決定することが可能である。また、MGFは、飽和度以外のすべての基準がそれほど重要ではないと決定して、飽和度のより高い重要度(すなわち、他のすべての基準の相対的により低い重要度)を反映するようにスコアまたは計算の相対的加重を変えることも可能である。
【0081】
ゴーストのない加重変更
前述したとおり、MGFは、HDR画像に混合されるように異なる露出で各々が撮影される複数の一意のLDR画像(すなわち、入力画像)をキャプチャすることが可能である。たとえば、第1の画像が、露出「X」(たとえば、絞りおよびISOが一定に保たれながら、第1のシャッタ速度)で撮影されることが可能である一方で、第2の画像が、露出「Y」(たとえば、絞りおよびISOが一定に保たれながら、露出「X」を生じさせるのに使用されたのとは異なるシャッタ速度)で撮影されることが可能である。MGFは、異なる露出レベルで撮影された2つ以上のLDR入力画像を受け取って、LDR入力画像の各々からの態様を組み合わせるHDR出力画像を作成することが可能である。
【0082】
N個の露出ブラケット設定された入力画像I
1、I
2、...I
Nのセットを所与として、MGFまたはHDR処理プログラムが、すべての入力画像の加重された合計に基づいて、出力HDR画像を生成することが可能である。たとえば、式13
I
HDR=[(W
1)(I
1)]+[(W
2)(I
2)]+[(W
3)(I
3)]+...+[(W
N)(I
N)] 式13
であり、ただし、各ピクセルに関して、W
1+W
2+...+W
N=1である。以上は、行列要素の要素ごとの乗算である。等しい50%加重で組み合わされた2つの画像は、50/50比でその2つの画像からのデータをもたらすHDR出力画像をもたらす。たとえば、出力HDR画像内の各ピクセルが、均等のピクセルに関する2つの初期画像値の各々の1/2を含み得る。厳密な加重値は、HDR実施のタイプに依存し得る。異なるタイプのHDRアルゴリズムは、最終的なマージされたHDR出力画像を作成する際に、異なるそれぞれの加重を生成することが可能である。
【0083】
HDRベースの加重された合計で前述したとおり画像をマージすること、または組み合わせることは、HDR露出混合に関して最適化され得るが、出力画像における動きゴースティングを能動的に補正することはしない可能性がある。入力画像内の要素、対象、または被写体が移動すると、もたらされる出力画像は、無関係なデータの混合(たとえば、対象データと組み合わされた背景データ)を包含する可能性がある。したがって、LDR画像のHDR混合またはHDRマージは、正確な、または向上したダイナミックレンジ出力をもたらし得るが、最終的な画像にゴースト様のアーティファクトを意図せずに導入する可能性もある。
【0084】
HDR出力結果からのゴースティングを低減する、または解消するのに、MGFは、動きマスクの中の構成要素に基づいて、ゴースト様のアーティファクトを解消するように各基準画像の加重を調整することが可能である。MGFは、各基準画像の加重を、ピクセル領域と照度領域の両方において調整することが可能である。本明細書で使用される照度とは、カメラの特定の露出設定にかかわらず、画像シーンの実際の明るさである。たとえば、カメラの露出設定を変えることは、シーンにおける照度値が変わらないままで、露出不足の画像、または露出オーバの画像をもたらすことが可能である。
【0085】
図6は、一実施形態における、ゴーストのない加重変更の流れ図を示す。ブロック605で、この実施形態が、セットの画像を読み取って、一緒にマージして高ダイナミックレンジ(HDR)出力画像にし、それらの画像の各々は、それぞれのHDR加重を有する。
【0086】
ブロック610で、この実施形態が、セットの画像の加重平均を使用してセットの画像をマージするのに先立って、それぞれのHDR加重を、それらの画像の各々に関するそれぞれのゴーストのない加重で置き換えることが可能である。
【0087】
ブロック615で、この実施形態が、セットの画像の加重平均を使用してセットの画像をマージすることが可能であり、画像の加重平均は、画像の各々に関するそれぞれのゴーストのない加重に基づく。
【0088】
一実施形態において、動きマスクMにおける各構成要素に関して、MGFが、前述したとおりI
HDRを作成するのに使用される加重W
1、W
2、...W
Nを独立に変更することが可能である。一実施形態において、動きマスクは、Mが0(すなわち、動きなし)から1(すなわち、動き)までの任意の値であるように平滑なマスクであることが可能である。動きマスクは、P個のつながっていない構成要素を有することが可能であり、ただし、P>=0である。P=0である場合、動きマスクは、構成要素を全く包含せず、したがって、シーンには動きが全く存在せず、このことが、ゴーストのない出力画像をもたらし得る。各マスクは、HDR出力画像に混合するために使用される個別の加重を各々が有するP個の基準画像が存在し得るように、いくつかのつながっていない構成要素を有し得る。MGFは、ゴースト様の画像(I
HDR)の加重された組合せ、および所定の動きマスクRを使用するそれぞれの基準画像を使用することによって、出力画像におけるゴースティングを低減する、または解消することが可能である。
【0090】
であり、ただし、W
j'=[(1-M)W
j]であり、ただし、I
jは、基準画像ではなく、I
jが基準画像である場合、W
j'=M+[(1-M)W
j]である。静止した区域(すなわち、動きマスク内ではない区域)は、変更されないままであり得る一方で、MGFが、動きを有する区域が、出力画像においてゴーストがないことを確実にする。
【0091】
一実施形態において、動きマスクが、前述したとおり、2つ以上の構成要素(たとえば、パッチまたはブロブ)を有することが可能である。MGRは、それらの構成要素の各々に関連する各基準画像に関する加重を調整することが可能である。
【0092】
ゴースト様のアーティファクト除去
一実施形態において、MGFが、出力画像がゴースト様のアーティファクトを伴って生成された後、出力画像におけるゴースティングまたはゴースト様のアーティファクトを低減する、または解消することが可能である。
【0093】
図7は、一実施形態における、ゴースト様のアーティファクト除去の流れ図を示す。ブロック705で、この実施形態が、複数の一意の入力画像からマージされた出力画像を受け取ることが可能であり、その出力画像は、その複数の一意の入力画像のマージからもたらされる動きアーティファクトを包含する第1のゴースト様の構成要素を有する。たとえば、この実施形態は、セットの入力画像に基づいて、HDR撮像出力を受け取ることが可能である。HDR撮像出力は、MGFによって生成されることが可能であり、またはMGFが、所定のHDR撮像出力を読み取ってゴーストアーティファクトを補正することが可能である。いくつかの実施形態において、複数の別々の異なる構成要素が、ゴーストアーティファクト(たとえば、動きアーティファクトを包含する2つ以上のゴースト様の構成要素)を包含することが可能である。
【0094】
ブロック710で、この実施形態が、第1のゴースト様の構成要素を、複数の一意の入力画像の各画像内のターゲット構成要素と比較することが可能であり、ターゲット構成要素は、第1のゴースト様の構成要素によって覆われる同一の相対的画像区域を包含する。この実施形態は、出力画像内の1つまたは複数のゴースト様の構成要素を、セットの入力画像からの元の画像と比較しようと試みることが可能である。その比較中、この実施形態は、入力画像からのある画像が、他の入力画像よりも出力画像構成要素に類似しているかどうかを判定することが可能である。一実施形態において、MGFは、テクスチャ基準、色基準、または他の基準を比較することによって画像類似度を判定することが可能である。類似度は、2つの画像が組み合わされた際に生じ得る混合アーティファクトを最小限に抑える目的で基準画像を決定するために有益である。たとえば、2つの画像の色またはテクスチャが非常に異なる場合、組み合わせて、またはマージして単一の画像にすることは、2つの画像がより類似していた場合、より低い品質の出力画像をもたらし得る。
【0095】
一実施形態において、MGFが、基準画像の類似度を、ピクセルレベル構造類似度またはブロブレベル類似度で最大化することが可能である。MGFは、類似度を比較し、ピクセルレベル構造類似度またはブロブレベル類似度を有する基準画像の2つ以上の構成要素を独立にマージすることが可能である。たとえば、MGFは、画像Xからの構成要素Aが、出力画像内の構成要素Aに最も類似していると判定する一方で、画像Yからの構成要素Bが、出力画像内の構成要素Bに最も類似している判定することが可能である。個別の各構成要素に関して、それぞれの基準画像を決定すると、MGFは、その構成要素を出力画像にコピーして、更新された出力画像を作成することが可能である。
【0096】
一実施形態において、MGFが、動きマスクのそれぞれの構成要素によって覆われるピクセルの正規化された相互相関(NCC)または差によるピクセルレベル構造類似度を使用することが可能である。たとえば、MGFは、候補基準画像構成要素(たとえば、セットの入力画像構成要素のうちの1つ)および出力画像の各ピクセル値の間の差を計算することが可能である。本明細書で使用されるピクセル値は、露出または色のような任意の測定可能なピクセル情報であり得る。MGFは、構成要素(すなわち、ブロブまたはパッチ)における各ピクセル値に関するすべての差の合計を総計して、それぞれの入力画像と出力画像との間の最終的な差スコアを戻すことが可能である。MGFは、最も低い差スコア(たとえば、最も類似した画像)を有する入力画像(たとえば、構成要素に関連する画像)を選択することが可能である。
【0097】
別の実施形態において、MGFが、ブロブレベル(すなわち、パッチレベルまたは構成要素レベル)類似度を計算することが可能である。構成要素内、および出力画像内の各ピクセルの間の差を計算する代わりに、ブロブレベル類似度は、構成要素のブロブ全体を出力画像におけるブロブ全体と比較することが可能である。たとえば、MGFは、マスクのそれぞれの構成要素(すなわち、ブロブまたはパッチ)によって覆われるピクセルに関する赤、緑、および青(RGB)チャネルの平均値を計算することが可能である。次いで、MGFは、構成要素のRGBチャネルの構成要素平均値の、出力画像におけるRGBチャネルの平均値に対する差を計算することが可能である。それぞれの入力画像と出力画像との間の差を計算すると、出力画像に対して最小の差の(最も類似した)平均値を有する画像が、基準画像として選択され得る。
【0098】
ブロック715で、この実施形態が、第1のゴースト様の構成要素を、複数の一意の入力画像の各画像内のターゲット構成要素と比較することに基づいて、複数の一意の入力画像から第1の基準画像を選択することが可能である。たとえば、この実施形態は、セットの入力画像から基準画像を選択して、その基準画像を、出力画像のゴースト様のアーティファクト構成要素を変更するのに使用することが可能である。MGFは、ゴースト様の画像構成要素に対して最も近い類似度を有する基準画像を選択することが可能である。一実施形態において、MGFは、露出、色、飽和度、またはテクスチャの1つまたは複数の基準の類似度に基づいて、基準画像を選択する。
【0099】
ブロック720で、この実施形態が、出力画像の第1のゴースト様の構成要素の少なくとも一部分を第1の基準画像の少なくとも一部分で置き換えることによって、第1のゴースト様の構成要素を補正することが可能である。たとえば、MGFが、ゴーストアーティファクトが低減された、または解消された最終的な画像結果を作成するように出力画像を操作する、または編集することが可能である。いくつかの実施形態において、MGFが、基準画像からのクリーンな(すなわち、動きゴースティングまたは動きアーティファクトを欠いた)セクションをコピーして、出力画像におけるそれぞれの区域を無効にすることが可能である。各構成要素に関して、MGFは、ゴースト様の構成要素によって表される画像区域の上にあるそれぞれの基準画像をコピーすることが可能である。
【0100】
アーティファクトのない混合
一実施形態において、MGFは、クロマおよび照度を適合させることによって、複数の入力画像を混合して、またはマージしてアーティファクトのない出力画像にすることが可能である。1つまたは複数の画像を混合するのに先立って、MGFは、基準画像およびHDR出力画像をYUV色空間または対数(YUV)色空間に変換することが可能である。MGFは、各画像(すなわち、基準画像Ri)のクロマ(すなわち、色)および照度(すなわち、輝度)を、HDR出力画像(すなわち、I
HDR)のクロマおよび/または照度と適合させる。前述したとおり、基準画像とは、出力画像を作成する際に他の基準画像とマージされるように選択された画像を指す。動きマスクの各構成要素の下の区域で使用されるように異なる基準画像が選択されることが可能である。クロマおよび照度を適合させることは、基準画像と最終的なマージされたHDR出力画像との間の様々なクロマ差および照度差によってもたらされる混合アーティファクトを低減する、または解消することが可能である。
【0101】
代替の実施形態において、MGFが、画像をRGB色空間または対数(RGB)色空間に変換することが可能である。RGB色空間内、または対数(RGB)色空間内で、MGFが、1つのRGBチャネルから別のRGBチャネルに平均値を移すことが可能である。たとえば、1つの基準画像が、HDR出力画像よりも多くの赤を有する場合、MGFは、HDR出力画像のチャネルレベルと適合するようにそれぞれの基準画像を色ずれさせることが可能である。
【0102】
図8は、クロマおよび照度を適合させることによるアーティファクトのない混合の流れ図を示す。ブロック805で、この実施形態が、HDR出力画像を作成するのに使用される基準画像の各々に関するピクセルごとの差分を計算することによってセットの差分画像(たとえば、差分画像D
i=I
HDR-R
i)を作成することが可能である。たとえば、この実施形態は、第1の基準画像からの各ピクセルをHDR出力画像内の各ピクセルと比較して、第1の基準画像に関連する差分画像を作成する。各基準画像ピクセルが、HDR出力画像内の均等のピクセルと比較されることが可能であり、ただし、均等性は、同一の相対的ピクセル位置内のピクセルに関する。たとえば、基準画像内の位置/座標「X」におけるピクセルが、いずれのピクセルであれ、HDR出力画像内の位置/座標「X」に存在するものと比較される。
【0103】
ブロック810で、この実施形態が、差分画像D
iの各々をぼやけさせて、D
i'をもたらすことが可能である。この実施形態は、各差分画像内のピクセルの近傍を平均するように差分画像をぼやけさせて、平滑なオフセット画像D
i'をもたらすことが可能である。他の実施形態において、MGFは、ピクセルごとの差分を決定するのに先立って、基準画像とHDR出力画像を別々にぼやけさせる。
【0104】
ブロック815で、この実施形態が、ぼやかされた(すなわち、平滑な)オフセット画像をそれぞれの基準画像と足して/組み合わせて、補正された基準画像R
i'を生成することが可能である。たとえば、R
i'=R
i+D
i'である。この実施形態は、補正された基準画像を、画像の線形組合せのための入力として提供して、アーティファクトのない出力画像をもたらすことが可能である。
【0105】
MGFは、ソフトウェア、ファームウェア、ハードウェア、モジュール、またはエンジンとして実装され得る。一実施形態において、前述のMGF記述は、前述の所望される機能を実現するようにデバイス100における汎用プロセッサ161によって実施され得る。
【0106】
本明細書の教示は、様々な装置(たとえば、デバイス)に組み込まれる(たとえば、そのような装置内部で、またはそのような装置によって実施される)ことが可能である。たとえば、本明細書で教示される1つまたは複数の態様は、電話(たとえば、セルラー電話)、携帯情報端末(「PDA」)、タブレット、モバイルコンピュータ、ラップトップコンピュータ、エンターテイメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス)、ヘッドセット(たとえば、ヘッドホン、イヤホンなど)、医療デバイス(たとえば、バイオメトリックセンサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザ入出力デバイス、コンピュータ、サーバ、販売時点デバイス、セットトップボックス、または他の任意の適切なデバイスに組み込まれ得る。
【0107】
いくつかの態様において、ワイヤレスデバイスが、通信システムのためのアクセスデバイス(たとえば、Wi-Fiアクセスポイント)を備えることが可能である。そのようなアクセスデバイスは、有線通信リンク経由、またはワイヤレス通信リンク経由でトランシーバ140を介して別のネットワーク(たとえば、インターネットまたはセルラーネットワークのようなワイドエリアネットワーク)に対する接続をもたらすことが可能である。したがって、アクセスデバイスは、別のデバイス(たとえば、Wi-Fi局)が、その別のネットワークまたは他の何らかの機能にアクセスすることを可能にすることができる。さらに、それらのデバイスのうちの一方もしくは両方が、ポータブルであることが可能であり、または、いくつかの事例において、比較的、非ポータブルであることが可能であることを認識されたい。
【0108】
情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることが当業者には理解されよう。たとえば、以上の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、または以上の任意の組合せによって表され得る。
【0109】
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、エンジン、回路、およびアルゴリズムステップは、電子ハードウェアとして、コンピュータソフトウェアとして、または電子ハードウェアとコンピュータソフトウェアの組合せとして実装され得ることが、当業者にはさらに認識されよう。ハードウェアとソフトウェアの互換性を明確に示すのに、様々な例示的な構成要素、ブロック、モジュール、エンジン、回路、およびステップが、機能の点で一般的に以上に説明されてきた。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、全体的なシステムに課せられる特定の応用上、および設計上の制約に依存する。当業者は、説明される機能を、それぞれの特定の応用のために様々な様態で実装することができるが、そのような実装上の決定が、本発明の範囲からの逸脱を生じさせるものと解釈されてはならない。
【0110】
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、および回路は、本明細書で説明される機能を実行するように設計された汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、ディスクリートのゲートもしくはトランジスタロジック、ディスクリートのハードウェア構成要素、または以上の任意の組合せで実装される、または実行されることが可能である。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。また、プロセッサは、コンピューティングデバイスの組合せとして、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または他の任意のそのような構成として実装されることも可能である。
【0111】
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェアで直接に、プロセッサによって実行されるソフトウェアモジュールで、またはハードウェアとそのようなソフトウェアモジュールの組合せで実現され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている他の任意の形態の記憶媒体の中に存在することが可能である。例示的な記憶媒体は、プロセッサが、その記憶媒体から情報を読み取ること、およびその記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化していてもよい。プロセッサと記憶媒体は、ASIC内に存在することが可能である。ASICは、ユーザ端末装置に存在することが可能である。代替として、プロセッサと記憶媒体は、ユーザ端末装置におけるディスクリートの構成要素として存在してもよい。
【0112】
1つまたは複数の例示的な実施形態において、説明される機能、方法、またはモジュール(たとえば、
図5〜
図8)は、ハードウェア(たとえば、ハードウェア162)、ソフトウェア(たとえば、ソフトウェア165)、ファームウェア(たとえば、ファームウェア163)、または以上の任意の組合せで実装されることが可能である。コンピュータプログラム製品としてソフトウェアで実装される場合、機能またはモジュールは、非一時的コンピュータ可読媒体上に、またはそのような媒体を介して1つまたは複数の命令またはコードとして記憶される、または伝送されることが可能である。コンピュータ可読媒体には、1つの場所から別の場所にコンピュータプログラムを移すことを円滑にする任意の媒体を含むコンピュータ記憶媒体と通信媒体がともに含まれ得る。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定としてではなく、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望されるプログラムコードを担持する、もしくは記憶するのに使用されることが可能であり、コンピュータによってアクセスされ得る他の任意の媒体を備えることが可能である。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用してウェブサイト、サーバ、または他の遠隔ソースから伝送される場合、その同軸ケーブル、光ファイバケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波のようなワイヤレス技術が、媒体の定義に含められる。本明細書で使用されるディスク(disk)およびディスク(disc)には、コンパクトディスク(CD)(disc)、レーザディスク(disc)、光ディスク(disc)、デジタルバーサタイルディスク(DVD)(disc)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)が含まれ、ただし、ディスク(disk)は、通常、データを磁気的に再現するのに対して、ディスク(
disc)は、レーザを用いてデータを光学的に再現する。また、以上の媒体の組合せも、非一時的コンピュータ可読媒体の範囲に含められなければならない。
【0113】
開示される実施形態の前述の説明は、任意の当業者が、本発明を作成すること、または使用することを可能にするように与えられる。これらの実施形態の様々な変形が、当業者には容易に明白となり、本明細書で定義される一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の実施形態に適用され得る。このため、本発明は、本明細書で示される実施形態に限定されることは意図されず、本明細書で開示される原理および新規の特徴と合致する最も広い範囲を与えられるべきものとする。