(57)【特許請求の範囲】
【請求項１】
高ダイナミックレンジ（ＨＤＲ）場面の画像を捕捉するモバイルデバイスであって、
モバイルデバイスがＨＤＲモードに入るのに応答して、第１の露光レベルでＨＤＲ場面の複数の画像を捕捉し、かつ
前記ＨＤＲ場面を捕捉する指令の受信に応答して、第２の露光レベルで第１の画像及び第３の露光レベルで第２の画像を捕捉する、
ためのカメラと、
前記第１の露光レベルで前記捕捉された複数の画像から第３の画像を選択し、かつ
前記第１、第２、及び第３の画像を合成して前記ＨＤＲ場面の合成画像を生成する、
ための画像処理モジュールと、
を含むことを特徴とするモバイルデバイス。
【請求項２】
前記第３の画像は、前記ＨＤＲ場面を捕捉する前記指令を受信する直前に捕捉されたものであることを特徴とする請求項１に記載のモバイルデバイス。
【請求項３】
前記第３の画像を前記選択する段階は、前記ＨＤＲ場面を捕捉する前記指令を受信する前の期間内にかつ前記モバイルデバイスが閾値量よりも少なく移動された間に捕捉された画像を選択する段階を含むことを特徴とする請求項１に記載のモバイルデバイス。
【請求項４】
モバイルデバイスが、時間の複数の異なるインスタンスでのモバイルデバイスの動きに関連する複数の異なる値を生成する回路を含み、
前記閾値量は、前記回路によって生成された前記値に関連する、
ことを特徴とする請求項３に記載のモバイルデバイス。
【請求項５】
モバイルデバイスが、時間の複数の異なるインスタンスでのモバイルデバイスの動きに関連する複数の異なる値を生成する回路を含み、
前記画像を前記選択する段階は、
前記回路によって生成された前記複数の値の各々に対して、時間のインスタンスでのモバイルデバイスの前記動きを表す動きパラメータを計算する段階と、
前記期間内に捕捉された前記画像の各々を動きパラメータに対して相関させる段階と、  前記期間内に捕捉された各画像の前記動きパラメータの前記閾値量との比較に基づいて、該期間内に捕捉された１つの画像を前記第３の画像として選択する段階と、
を含む、
ことを特徴とする請求項３に記載のモバイルデバイス。
【請求項６】
前記第３の画像を選択する前記段階は、前記複数の画像のうちの最も鮮明な画像を選択する段階を含むことを特徴とする請求項１に記載のモバイルデバイス。
【請求項７】
モバイルデバイスが、時間の複数の異なるインスタンスでのモバイルデバイスの前記動きに関連する複数の異なる値を生成する回路を含み、
前記複数の画像のうちの前記最も鮮明な画像は、ある一定のインスタンスで前記回路によって生成された前記値がモバイルデバイスが最も少なく移動したことを示す時の時間のそのインスタンスで捕捉された画像である、
ことを特徴とする請求項６に記載のモバイルデバイス。
【請求項８】
モバイルデバイスが、前記第１の露光レベルで捕捉して記憶された一群の画像の各々を処理するデジタル信号プロセッサを含み、
前記複数の画像からの前記最も鮮明な画像は、最も高い周波数コンテンツを有する画像である、
ことを特徴とする請求項６に記載のモバイルデバイス。
【請求項９】
前記第１の露光レベルは、正常露光レベルであり、
前記第２及び第３の露光レベルの一方が、露光不足レベルであり、
前記第２及び第３の露光レベルの他方が、露光過多レベルである、
ことを特徴とする請求項１に記載のモバイルデバイス。
【請求項１０】
前記第１の露光レベルは、露光過多レベルであり、
前記第２及び第３の露光レベルの一方が、正常露光レベルであり、
前記第２及び第３の露光レベルの他方が、露光不足レベルである、
ことを特徴とする請求項１に記載のモバイルデバイス。
【請求項１１】
高ダイナミックレンジ（ＨＤＲ）場面の画像を捕捉する方法であって、
モバイルデバイスのカメラにより、かつ該モバイルデバイスがＨＤＲモードに入るのに応答して、第１の露光レベルでＨＤＲ場面の複数の画像を捕捉する段階と、
前記モバイルデバイスの前記カメラにより、かつ前記ＨＤＲ場面を捕捉する指令の受信に応答して、第２の露光レベルで第１の画像及び第３の露光レベルで第２の画像を捕捉する段階と、
前記モバイルデバイスの１つ又はそれよりも多くのプロセッサにより、前記第１の露光レベルで前記捕捉された複数の画像から第３の画像を選択する段階と、
前記モバイルデバイスの前記１つ又はそれよりも多くのプロセッサにより、前記第１、第２、及び第３の画像を合成して前記ＨＤＲ場面の合成画像を生成する段階と、
を含むことを特徴とする方法。
【請求項１２】
前記第３の画像は、前記ＨＤＲ場面を捕捉する前記指令を受信する直前に捕捉されたものであることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第３の画像を選択する前記段階は、前記ＨＤＲ場面を捕捉する前記指令を受信する前の期間内にかつ前記モバイルデバイスが閾値量よりも少なく移動した間に捕捉された画像を選択する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記モバイルデバイスは、時間の複数の異なるインスタンスでの該モバイルデバイスの動きに関連する複数の異なる値を生成する回路を含み、
前記閾値量は、前記回路によって生成された前記値に関連する、
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記モバイルデバイスは、時間の複数の異なるインスタンスでの該モバイルデバイスの動きに関連する複数の異なる値を生成する回路を含み、
前記画像を選択する前記段階は、
前記回路によって生成された前記複数の値の各々に対して、時間のインスタンスでの前記モバイルデバイスの前記動きを表す動きパラメータを計算する段階と、
前記期間内に捕捉された前記画像の各々を動きパラメータに対して相関させる段階と、  前記期間内に捕捉された各画像の前記動きパラメータの前記閾値量との比較に基づいて、該期間内に捕捉された１つの画像を前記第３の画像として選択する段階と、
を含む、
ことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記第３の画像を選択する前記段階は、前記複数の画像のうちの最も鮮明な画像を選択する段階を含むことを特徴とする請求項１１に記載の方法。
【請求項１７】
前記モバイルデバイスは、時間の複数の異なるインスタンスでの該モバイルデバイスの前記動きに関連する複数の異なる値を生成する回路を含み、
前記複数の画像のうちの前記最も鮮明な画像は、ある一定のインスタンスで前記回路によって生成された前記値が前記デバイスが最も少なく移動したことを示す時の時間のそのインスタンスで捕捉された画像である、
ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記モバイルデバイスは、前記第１の露光レベルで捕捉して記憶された一群の画像の各々を処理するデジタル信号プロセッサを含み、
前記複数の画像からの前記最も鮮明な画像は、最も高い周波数コンテンツを有する画像である、
ことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記第１の露光レベルは、正常露光レベルであり、
前記第２及び第３の露光レベルの一方が、露光不足レベルであり、
前記第２及び第３の露光レベルの他方が、露光過多レベルである、
ことを特徴とする請求項１１に記載の方法。
【請求項２０】
プログラム命令を記憶するコンピュータ可読ストレージ媒体であって、
プログラム命令が、モバイルデバイスの１つ又はそれよりも多くのプロセッサによって実行された時に請求項１１から請求項１９のいずれか１項に記載の段階を実行する、
ことを特徴とするコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
近年、独立型デバイスとして、及び携帯電話、スマートフォン、他のモバイルコンピュータデバイスのようなより複雑なデバイスの一部としてデジタルカメラの激増がある。この激増で、製造業者はこれらのデバイス上のデジタルカメラの技術的な特徴を迅速に増大させた。例えば、多くのモバイルデバイスは、今日、通常は、高品質画像を生成するのに必要とされることが多い５台のメガピクセルカメラを含む。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
残念ながら、たとえこのようなカメラの技術仕様が改善したとしても、これらのカメラは、高品質画像を捕捉及び生成することができないことが多く、その理由は、これらのカメラの画像処理機能は、改善されるハードウエア機能に適合していないからである。例えば、多くのカメラは、今日、依然として、高ダイナミックレンジ（ＨＤＲ）の画像の捕捉及び生成のでき栄えが貧弱である。
【０００３】
ＨＤＲ場面の典型的な例は、日中に窓の前に屋内に立っている人物である。このような場面を捕捉する多くのカメラでは、人の全ての特徴を示すわけではなく、前景は暗く、背景が暗い画像が生成される。モバイルデバイスのカメラによる（例えば、電話のカメラによる）このようなＨＤＲ場面を捕捉するという問題は、このようなカメラにより使用された小さい画像センサにより悪化する。
【課題を解決するための手段】
【０００４】
本発明の一部の実施形態は、高ダイナミックレンジを有する画像を捕捉及び生成するモバイルデバイスを提供する。高ダイナミックレンジ画像を捕捉及び生成するために、一部の実施形態のモバイルデバイスは、新しい画像捕捉及び処理モジュールを含む。一部の実施形態において、モバイルデバイスは、（１）画像捕捉モジュールに異なる画像露光持続時間に一連の画像を迅速に捕捉させ、かつ（２）その画像処理モジュールにこれらの画像を合成してＨＤＲ画像を生成させることによって高ダイナミックレンジ（ＨＤＲ）画像を生成する。
【０００５】
一連の画像を迅速に捕捉するために、一部の実施形態の画像捕捉モジュールは、２つのアクションを取る。第１に、モバイルデバイスがＨＤＲモードに入った後に、又は画像捕捉モード（以下では、カメラモードとも呼ばれる）に入った後に、特定のフレーム率で画像を捕捉し始める。一部の実施形態において、フレーム率は、約１５フレーム／秒（ｆｐ）である。他の実施形態において、初期フレーム率は、照明条件が異なれば異なる（例えば、通常の照明条件に対しては１５ｆｐ、より暗い条件に対しては１０ｆｐのような）。
【０００６】
このフレーム率により、カメラは、現在の照明条件に対して通常の露光設定で画像を捕捉することができる（すなわち、カメラは、画像捕捉モジュールが現在の照明条件に対して正常露光持続時間として計算する露光持続時間に各画像を捕捉する）。画像捕捉モジュールは、デバイスのフレームバッファ内に特定のフレーム率で捕捉する各画像を記憶する。一部の実施形態において、捕捉モジュールは、バッファが最大記憶容量に到達した時にモジュールが後に記憶したフレームの前に先に記憶したフレームを削除することを可能にする回状式にこのフレームバッファに書き込む。
【０００７】
第２には、モバイルデバイスが高ダイナミックレンジ（ＨＤＲ）モードに入った時に、画像捕捉モジュールは、カメラが画像を捕捉している照明条件（現在の照明条件と以下で呼ぶ）に対して露光不足画像及び露光過多画像を捕捉する露光持続時間を計算する。本発明の実施形態が異なれば、露光過多画像及び露光不足画像の持続時間を計算する異なる技術を使用する。例えば、一部の実施形態は、デバイスが特定のフレーム率で捕捉している正常露光画像のヒストグラムに基づいて、露光過多画像及び露光不足画像の持続時間を計算する。
【０００８】
デバイスがＨＤＲモードに入った後に、ＨＤＲ画像を撮る（例えば、リモートユーザ又はタイマなどにより、デバイス上のタイマにより、デバイスのユーザにより）ようにデバイスに指示することができる。デバイスがＨＤＲ画像を撮るように指示された時に、一部の実施形態の画像捕捉モジュールは、迅速に連続して２つの画像を捕捉する。一方の画像は、現在の照明条件に対して先だって計算した露光過多持続時間に基づいて捕捉する露光過多画像であるが、他方の画像は、現在の照明条件に対して先だって計算した露光不足持続時間に基づいて捕捉する露光不足画像である。異なる実施形態において、画像捕捉モジュールは、異なる順序で露光過多画像及び露光不足画像を捕捉する（例えば、最初に露光過多画像を捕捉する実施形態もあれば、最初に露光不足画像を捕捉する実施形態もある）。
【０００９】
露光過多画像及び露光不足画像を捕捉することに加えて、画像捕捉モジュールは、正常露光持続時間で先に捕捉してフレームバッファに記憶した画像の検索もする。このモジュールは、画像処理モジュールに３つの画像の各々を供給する。一部の実施形態において、画像捕捉モジュールは、カメラが画像を捕捉した色空間に３つの画像を供給する。例えば、一部の実施形態の画像捕捉モジュールは、画像を捕捉してＹ’ＣｂＣｒ（ルマ、青色色度、及び赤色色度）色空間にこれらの画像を供給する。一部の実施形態は、様々な画像編集作動を行う前にＹＣｂＣｒ（ルミナンス、青色色度、赤色色度）画像にカメラのＹ’ＣｂＣｒ（ルマ）画像を逆ガンマ補正し、次に、Ｙ’ＣｂＣｒ（ルマ）画像に得られるＹＣｂＣｒ（ルミナンス）画像をガンマ補正する。
【００１０】
画像処理モジュールは、次に、２つの作動を提供する。第１の作動は、カメラが３つの画像を捕捉する時間中に移動することがあり得るので３つの画像の全てを互いとのアラインメントである。実施形態が異なれば、このアラインメントを違った方法で行う。例えば、２つの画像を整列させるために、一部の実施形態は、２つの画像において適合する特徴を識別しようとする階層的検索を提供する。適合する特徴を識別するために、一部の実施形態は、２つの画像のルマ成分（例えば、Ｙ’ＣｂＣｒ色空間のＹ’チャンネル成分）のみを調べる。画像のルマ成分は、本明細書で「ルマ画像」又は「画像」と呼ぶことがある。２つのルマ画像は、数対のルマ画像が識別されるまで各方向で数回（例えば、６回）特定の係数（例えば、２）により間引かれる。各対のルマ画像は、検索階層において異なるレベルで検索を行うのに使用される。各レベルで、ビットマップが各ルマ画像に対して生成される（例えば、そのレベルのルマ中心値を使用して中心値よりも大きいか又は下回るかに基づいて１又は０にピクセル値を生成することにより）。
【００１１】
各レベルで、少なくとも１つのビットマップは、いくつかのタイルに分割され、各タイルは、いくつかのピクセルを包含する。タイルを使用し、他のビットマップにおいて対応する適合するタイルを識別し、それによって２つのビットマップ間のオフセットを識別する。一部の実施形態において、タイルの一部は、それらのタイルが白色ピクセルのみ、黒色ピクセルのみを含むか、タイルが白色ピクセルの閾値よりも小さい時又は黒色ピクセルの閾値よりも小さい時に廃棄される。これらのタイルは、他のタイルと適合するのに使用することができる十分な数の特徴（例えば、エッジ）を有していないタイルである。これらのタイルは、タイルを比較してそれによってビットマップの２対間のオフセットを識別する処理を迅速化するために廃棄される。
【００１２】
残りのタイルに基づいて、２つのビットマップは、階層の現在の分解能レベルで２つのビットマップを最良に整列させるオフセットを識別するために様々な異なるオフセットで比較される。階層の現在の分解能レベルが階層の最高分解能レベルでなかった場合に、一部の実施形態の画像処理モジュールは、階層の現在の分解能レベルに対して計算されたオフセットを階層の次のレベルでの検索の開始点として使用する。この次のレベルにおいて、モジュールは、再び、階層のそのレベルに対して２つの異なるルマ画像に対する２つのビットマップを生成し、次に、検索の指定の開始点で始まるオフセットを検索する。
【００１３】
２つの画像のルマ成分の階層的な比較において、階層の最高レベルで識別されるオフセットは、２つの画像間のオフセットである。画像処理モジュールが１つの画像（例えば、規則正しく露光された画像）と他の画像（例えば、露光過多画像及び露光不足画像）の各々の間のこのオフセットを判断すると、これらのオフセットを使用して３つの画像を整列させる。例えば、一部の実施形態において、２つのオフセットを使用して、全てが同じ場面の重なり合う部分のみを含むようにこれらの３つの画像を切り取る。代替的に、３つの画像の全てを切り取る代わりに、一部の実施形態は、露光過多画像及び露光不足画像を切り取るだけであり、切り取られるこれらの画像の部分に対して、正常露光画像からのデータを使用して合成ＨＤＲ画像を生成する。また、画像を切り取る代わりに、他の実施形態は、画像内の重なりなしの区域に対処するために、他の作動を使用することがあり得る（例えば、画像の結合を識別することがあり得る）。一部の実施形態は、エッジピクセルを切り取らず、その代わりに反復する。エッジピクセルを反復すると、画像間のオフセットが通常は小さいので満足できる結果が得られる。
【００１４】
また、色度は、通常はＹ’ＣｂＣｒ４：２：２又は４：２：０フォーマットである。これは、色度のサンプリングがルマと異なることを意味する。４：２：２において、色度は、ルマの水平サイズの半分であり、一方、４：２：０において、色度は、水平サイズの半分、及びルマの垂直のサイズの半分である。従って、画像を整列させる時に、一部の実施形態は、このフォーマットに基づいて色度のベクトルを調節する。
【００１５】
画像を整列させた後に、画像処理モジュールは、第２の作動を提供し、第２の作動は、合成ＨＤＲ画像を生成するための３つの整列した画像の合成である。異なる実施形態において、画像処理モジュールは、異なる技術を使用して３つの画像を合成する。例えば、一部の実施形態は、これらの画像のルマチャンネルに対して、これらの画像の色度チャンネルとは異なる組の作動を行うことによって３つの画像を合成する。また、ＨＤＲ合成画像を生成することにおいて、一部の実施形態は、値の望ましい範囲よりも大きいルマ値及び色度値を生成することがあり得る。従って、ＨＤＲ画像を生成している間、一部の実施形態は、同時にスケーリング作動を行って、確実にＨＤＲ画像のルマ及び色度値が望ましい範囲で生成されるようにする。
【００１６】
当業者は、画像捕捉及び処理作動を上述したものと異なる方法で実行することができると認識するであろう。例えば、フレームバッファから１つの正常露光画像のみを戻す代わりに、一部の実施形態の画像捕捉モジュールは、画像処理モジュールにいくつかの正常露光画像を戻す。この群から、画像処理モジュールは、次に、最も鮮明であって捕捉された露光過多画像及び露光不足画像に最良に適合する正常露光画像を選択する。代替的に、一部の実施形態において、画像捕捉モジュールは、１つの正常露光画像のみを戻すが、確実にこの戻された画像がぼけない（すなわち、鮮明である）ようにしようとする。異なる実施形態において、画像捕捉モジュールは、異なる方法で画像が確実に鮮明であるようにしようとする。例えば、デバイスが加速度計及び／又はジャイロを有する一部の実施形態において、画像捕捉モジュールは、加速度計及び／又はジャイロから記録されたデータを使用して、鮮明である正常露光画像を選択するために正常露光画像のぼけの可能性を確認する。代替的に、一部の実施形態において、フレームバッファから正常露光画像を使用するのではなく、ＨＤＲ指令を受信した後に、モバイルデバイスは、通常の露光での１つ又はそれよりも多くの画像、並びに露光過多画像及び露光不足画像を撮る。一部のこのような実施形態において、画像処理モジュールは、合成ＨＤＲ画像の生成に使用する正常露光画像（例えば、最も鮮明なもの、最後のものなど）の１つを選択する。
【００１７】
以上の「課題を解決するための手段」は、本発明の一部の実施形態の短い導入部として機能することを意図している。それは、本明細書に開示する全て本発明の主題の紹介又は概要であることを意味しない。以下の「発明を実施するための形態」及び「発明を実施するための形態」で言及する図面では、「課題を解決するための手段」に説明する実施形態、並びに他の実施形態を更に説明する。従って、本明細書により説明する全ての実施形態を理解するためには、「課題を解決するための手段」、「発明を実施するための形態」、及び図面の完全な考察が必要である。更に、主張する主題は、「課題を解決するための手段」、「発明を実施するための形態」、及び図面における例示的な詳細によって限定すべきではなく、特許請求の範囲によって定めるべきであり、その理由は、主張する主題は、主題の精神から逸脱することなく他の特定の形態で実施することができるからである。
【図面の簡単な説明】
【００１８】
【図１】高ダイナミックレンジを有する画像を捕捉及び生成するモバイルデバイスを示す図である。
【図２Ａ】一部の実施形態のモバイルデバイスにおける高ダイナミックレンジ（ＨＤＲ）モードの呼出し及びこのモードにおいてＨＤＲ画像の撮影を示す図である。
【図２Ｂ】一部の実施形態のモバイルデバイスにおける高ダイナミックレンジ（ＨＤＲ）モード呼出し中のプレビュー画像の表示及びこのモードでのＨＤＲ画像の撮影を示す図である。
【図３】一部の実施形態のモバイルデバイスのソフトウエアアーキテクチャを概念的に示す図である。
【図４】ＨＤＲ画像捕捉セッション中の画像処理モジュールの作動を示す図である。
【図５Ａ】本発明の一部の実施形態の画像捕捉モジュールを示す図である。
【図５Ｂ】本発明の一部の他の実施形態の画像捕捉モジュールを示す図である。
【図６】ＨＤＲ画像捕捉セッション中の画像捕捉モジュールの一連の作動を概念的に表す処理を示す図である。
【図７】画像を整列させる一連のビットマップを生成する一部の実施形態の処理を示す図である。
【図８】一部の実施形態の間引き画像から製造されたビットマップの例を示す図である。
【図９】２つの画像を整列させるオフセットベクトルを判断する一部の実施形態の処理を示す図である。
【図１０】２つのビットマップを整列させるオフセットベクトルを判断する処理を示す図である。
【図１１】最終オフセットベクトルの判断の例を示す図である。
【図１２】同じ場面の３つの異なる露光のルマチャンネル画像を合成して得られる合成画像の様々なルマ値を調節する処理を示す図である。
【図１３Ａ】特定の場面に合成処理を行う例を示す図である。
【図１３Ｂ】別々の画像からマスクを生成している間に合成処理を実行する例を示す図である。
【図１４】色度チャンネル画像を合成する一部の実施形態の処理を示す図である。
【図１５】一部の実施形態において色度チャンネル画像を合成する例を示す図である。
【図１６】一部の実施形態のモバイルコンピュータデバイス１６００の例の図である。
【図１７】タッチＩ／Ｏデバイスの図である。
【発明を実施するための形態】
【００１９】
本発明の以下の詳細説明において、本発明の多くの詳細、実施例、及び実施形態を定めると共に説明する。しかし、本発明は、定める実施形態に限定されず、かつ本発明は、説明する特定の詳細及び実施例の一部がなくても実施することができることが当業者には明確かつ明らかであろう。
【００２０】
本発明の一部の実施形態は、高ダイナミックレンジで画像を捕捉及び生成するモバイルデバイスを提供する。図１は、１つのこのようなモバイルデバイス１００を示している。このモバイルデバイスは、カメラ、移動電話、スマートフォン、携帯情報端末（ＰＤＡ）、タブレットパーソナルコンピュータ（ｉＰａｄ（登録商標）のような）、ラップトップ、又はあらゆる他のタイプのモバイルコンピュータデバイスとすることができる。図１は、高ダイナミックレンジを有する場面のデジタル画像を捕捉するモバイルデバイス１００を示している。この場面において、人が、天気のよい日に窓の前に立っており、一方、背景には、車が運転されている。
【００２１】
図１は、モバイルデバイス１００が、３つの異なる露光設定で捕捉される３つの画像１３５、１４０、及び１４５を捕捉、整列、及び合成することによって高ダイナミックレンジ画像１８０を生成することも示している。この図に示すように、モバイルデバイス１００は、画像捕捉モジュール１０５及び画像処理モジュール１１０を含み、画像捕捉モジュール１０５及び画像処理モジュール１１０は、モバイルデバイスが高ダイナミックレンジ画像を捕捉及び生成することを可能にする作動を提供する。一部の実施形態において、モバイルデバイスは、（１）画像捕捉モジュールに異なる画像露光持続時間に一連の画像を迅速に捕捉させ、かつ（２）その画像処理モジュールにこれらの画像を合成してＨＤＲ画像を生成させることによって高ダイナミックレンジ（ＨＤＲ）画像を生成する。本明細書の説明は、３つの画像を含むが、当業者は、一部の実施形態は、３つよりも多い画像を使用する（例えば、一部の実施形態は、非常に露光過多と、露光過多と、通常と、露光不足と、非常に露光不足との５つの画像を使用する）ことを認識するであろう。一部の実施形態は、様々な条件下で様々な数の画像を使用する。
【００２２】
一連の画像を迅速に捕捉するために、一部の実施形態の画像捕捉モジュールは、カメラが高ダイナミックレンジ（ＨＤＲ）モードに入った時に、２つのアクションを取る。第１に、特定のフレーム率で画像を捕捉し始める。一部の実施形態において、フレーム率は、約１５フレーム／秒（ｆｐ）である。他の実施形態において、初期フレーム率は、照明条件が異なれば異なる（例えば、通常の照明状態に対しては１５ｆｐ、より暗い状態に対しては１０ｆｐのような）。このフレーム率により、カメラは、現在の照明条件に対して通常の露光設定で画像を捕捉することができる（すなわち、カメラは、画像捕捉モジュールが現在の照明条件に対して正常露光持続時間として計算される露光持続時間に各画像を捕捉する）。画像捕捉モジュールは、デバイスのフレームバッファ（図示せず）内に特定のフレーム率で捕捉する各画像を記憶する。一部の実施形態において、捕捉モジュールは、バッファが最大記憶容量に到達した時にモジュールが後に記憶したフレームの前に先に記憶したフレームを削除することを可能にする回状式にこのフレームバッファに書き込む。
【００２３】
カメラが画像を捕捉している照明条件（現在の照明条件と以下で呼ぶ）に対して、画像捕捉モジュールは、露光不足画像及び露光過多画像を捕捉する露光持続時間を計算する。例えば、一部の実施形態は、デバイスが特定のフレーム率で捕捉している正常露光画像のヒストグラムに基づいて、露光過多画像及び露光不足画像の持続時間を計算する。例えば、正常露光画像が多くの飽和状態のピクセルを有する場合に、露光過多画像の持続時間は、正常露光画像がより少ない飽和状態のピクセルを有する場合よりも小さい正常露光持続時間の倍数に設定される。
【００２４】
デバイスがＨＤＲモードに入った後に、ＨＤＲ画像を撮る（例えば、リモートユーザ又はタイマなどにより、デバイス上のタイマにより、デバイスのユーザにより）ようにデバイスに指示することができる。デバイスがＨＤＲ画像を撮るように指示された時に、一部の実施形態の画像捕捉モジュールは、迅速に連続して２つの画像を捕捉する。一方の画像は、現在の照明条件に対して先だって計算した露光過多持続時間に基づいて捕捉する露光過多画像であり、一方、他方の画像は、現在の照明条件に対して先だって計算した露光不足持続時間に基づいて捕捉する露光不足画像である。異なる実施形態において、画像捕捉モジュールは、異なる順序で露光過多画像及び露光不足画像を捕捉する（例えば、一部の実施形態は、最初に露光過多画像を捕捉し、一方、他の実施形態は、最初に露光不足画像を捕捉する）。
【００２５】
露光過多画像及び露光不足画像を捕捉することに加えて、画像捕捉モジュールは、正常露光持続時間に先に捕捉してフレームバッファに記憶した画像（例えば、ＨＤＲ捕捉指令の前に撮られたごく最近の画像）の検索もする。このモジュール１０５は、画像処理モジュール１１０に３つの画像の各々を供給する。図１は、画像捕捉モジュール１０５の出力での露光過多画像１３５、正常露光画像１４０、及び露光不足画像１４５としてこれらの３つの画像を示している。一部の実施形態において、画像捕捉モジュールは、カメラが画像を捕捉した色空間に３つの画像を供給する。例えば、一部の実施形態の画像捕捉モジュールは、画像を捕捉してＹ’ＣｂＣｒ色空間にこれらの画像を供給する。
【００２６】
以上の説明は、ＨＤＲ捕捉指令が受信される前に正常露光持続時間に複数の画像を撮る段階、及びＨＤＲ捕捉指令を受信した後に露光過多画像及び露光不足画像を撮る段階を含む。しかし、一部の実施形態において、複数の露光不足画像は、ＨＤＲ捕捉指令が受信される前に撮られ、正常露光画像及び露光過多画像は、ＨＤＲ捕捉指令が受信される後に撮られる。更に、一部の実施形態において、複数の露光過多画像が、ＨＤＲ捕捉指令が受信される前に撮られ、正常露光画像及び露光不足画像は、ＨＤＲ捕捉指令が受信される後に撮られる。
【００２７】
図１に示すように、一部の実施形態内の画像処理モジュール１１０は、（１）受信する３つの画像を整列させるためのアラインメントモジュール１１５及び（２）ＨＤＲ画像１８０を生成するために受信する３つの画像を合成する合成モジュール１２０を含む。アラインメントモジュールは、カメラが３つの画像を捕捉した時間中に移動することがあり得るので３つの画像の全てを互いに整列させる。
【００２８】
図１に更に示すように、一部の実施形態内のアラインメントモジュール１１５は、（１）整列させるために画像を比較する検索モジュール１２５、及び（２）画像間に重なる区域のみを含むように整列させた画像の１つ又はそれよりも多くを切り取るトリミングモジュール１３０を含む。２つの画像を整列させるために、検索モジュール１２５は、２つの画像において適合する特徴を識別しようとする検索を提供する。これを行うために、一部の実施形態は、２つの画像のルマ成分（例えば、Ｙ’ＣｂＣｒ色空間のＹ’チャンネル成分）のみを調べる。
【００２９】
一部の実施形態において、検索モジュール１２５は、数対のルマ画像が識別されるまで各方向で数回（例えば、６回）特定の係数（例えば、２）により２つのルマ画像を間引く階層的検索を提供する。各対のルマ画像は、検索階層において異なるレベルで検索を行うのに使用される。各レベルで、ビットマップが各ルマ画像に対して生成される（例えば、そのレベルのルマ中心値を使用して中心値よりも大きいか又は下回るかに基づいて、１又は０にピクセル値を生成することにより）。
【００３０】
各レベルで、検索モジュールは、少なくとも１つのビットマップをいくつかのタイルに分割し、各タイルは、いくつかのピクセルを包含する。モジュールは、タイルを使用し、他のビットマップにおいて対応する適合するタイルを識別し、それによって２つのビットマップ間のオフセットを識別する。一部の実施形態において、検索モジュールは、タイルが白色ピクセルのみ、黒色ピクセルのみを含むか、タイルが白色ピクセルの閾値よりも小さいか又は黒色ピクセルの閾値よりも小さい時にタイルの一部を廃棄する。これらのタイルは、他のタイルと適合するのに使用することができる十分な数の特徴（例えば、エッジ）を有していないタイルである。これらのタイルは、タイルを比較してそれによってビットマップの２対間のオフセットを識別する処理を迅速化するために廃棄される。
【００３１】
検索モジュールは、残りのタイルに基づいて、階層の現在の分解能レベルで２つのビットマップを最良に整列させるオフセットを識別するために様々な異なるオフセットで２つのビットマップを比較する。階層の現在の分解能レベルが階層の最高分解能レベルでなかった場合に、検索モジュールは、階層の現在の分解能レベルに対して計算されたオフセットを階層の次のレベルでの検索の開始点として使用する。この次のレベルにおいて、モジュールは、再び、階層のそのレベルに対して２つの異なるルマ画像に対する２つのビットマップを生成し、次に、検索の指定の開始点で始まるオフセットを検索する。
【００３２】
２つの画像のルマ成分の階層的な比較において、階層の最高レベルで識別されるオフセットは、２つの画像間のオフセットである。検索モジュール１２５が２対の画像を階層的検索を完了した状態で、全ての３つの画像が整列するように画像のうちの２つの平行移動を定める２つのオフセットを識別する。図１に示す例では、一部の実施形態内の探索モジュールは、露光不足／露光過多画像のルマ成分を規則正しく露光された画像のルマ成分と比較する。この比較により、２つのオフセットが識別され、一方は、露光不足ルマ画像と正常露光画像の間の平行移動を定め、他方は、露光過多ルマ画像と正常露光画像間の平行移動を定める。これらの２つのオフセットにより、３つのルマ画像１５０、１５５、及び１６０において適合する区域を識別する図１の破線によって示すように、３つの画像が整列させることができる方法が識別される。
【００３３】
検索モジュールが１つの画像（例えば、規則正しく露光された画像）と他の画像（例えば、露光過多画像及び露光不足画像）の各々との間にこのオフセットを判断した状態で、トリミングモジュール１３０は、これらのオフセットを使用して３つの画像をトリミングする。具体的には、一部の実施形態において、２つのオフセットを使用して、全てが同じ場面の重なり合う部分のみを含むようにこれらの３つの画像を切り取る。図１は、切り取られた整列した画像１６５、１７０、及び１７５を示すことによってこの切取り結果を示している。全ての３つの画像を切り取る代わりに、一部の実施形態は、露光過多画像及び露光不足画像のみを切り取り、切り取られるこれらの画像の部分に対して、正常露光画像からのデータを使用して合成ＨＤＲ画像を生成する。代替的に、画像を切り取る代わりに、他の実施形態は、画像内の重なりなしの区域に対処するために他の作動を使用することがあり得る（例えば、画像の結合を識別することがあり得る）。一部の実施形態は、エッジピクセルを切り取らず、その代わりに反復する。エッジピクセルを反復すると、画像間のオフセットが通常は小さいので満足できる結果が得られる。
【００３４】
また、色度は、通常はＹ’ＣｂＣｒ４：２：２又は４：２：０フォーマットである。これは、色度のサンプリングがルマと異なることを意味する。４：２：２において、色度は、ルマの水平サイズの半分であり、一方、４：２：０において、色度は、水平サイズの半分、及びルマの垂直のサイズの半分である。従って、画像を整列させる時に、一部の実施形態は、このフォーマットに基づいて色度のベクトルを調節する。
【００３５】
この図に示すように、合成モジュール１２０は、切り取られた整列した画像を受信し、次に、切り取られた整列した画像を合成して合成ＨＤＲ画像１８０を生成する。異なる実施形態において、合成モジュールは、異なる技術を使用して３つの画像を合成する。例えば、一部の実施形態は、これらの画像のルマチャンネルに対して、これらの画像の色度チャンネルとは異なる組の作動を行うことによって３つの画像を合成する。また、ＨＤＲ合成画像を生成することにおいて、一部の実施形態は、値の望ましい範囲よりも大きいルマ値及び色度値を生成することがあり得る。従って、ＨＤＲ画像を生成している間、一部の実施形態の合成モジュール１２０は、同時にスケーリング作動を行って、確実にＨＤＲ画像のルマ及び色度値が望ましい範囲で生成されるようにする。
【００３６】
当業者は、画像捕捉及び処理作動を上述したものと異なる方法で実行することができると認識するであろう。例えば、フレームバッファに１つの正常露光画像のみ（例えば、ごく最近の画像）を戻す代わりに、一部の実施形態の画像捕捉モジュールは、画像処理モジュールにいくつかの正常露光画像を戻す。この群から、画像処理モジュールは、次に、最も鮮明であり、及び／又は捕捉された露光過多画像及び露光不足画像に最良に適合する正常露光画像を選択する。代替的に、一部の実施形態において、画像捕捉モジュールは、１つの正常露光画像のみを戻すが、確実にこの戻された画像がぼけない（すなわち、鮮明である）ようにしようとする。異なる実施形態において、画像捕捉モジュールは、異なる方法で画像が確実に鮮明であるようにしようとする。例えば、デバイスが加速度計及び／又はジャイロを有する一部の実施形態において、画像捕捉モジュールは、加速度計及び／又はジャイロから記録されたデータを使用して、正常露光画像のぼけの可能性を確認する（例えば、１つ又はそれよりも多くの動きに関連の属性を定量化する）。鮮明である正常露光画像を選択するために、一部の実施形態において、画像捕捉モジュールは、ぼける可能性がない（例えば、特定の動き閾値未満である動きに関連の属性を有する）ごく最近の画像を選択する。動き検出センサを使用する代わりに又はそれに加えて、一部の実施形態は、デジタル信号加工技術を使用して各画像の周波数成分を判断することによって複数の画像のうちのどれが最も鮮明かを判断する。このような実施形態において、最も高い周波数成分を有する画像が最も鮮明な画像と識別される。
【００３７】
代替的に、一部の実施形態において、フレームバッファからの正常露光画像を使用するのではなく、ＨＤＲ指令を受信した後に、モバイルデバイスは、通常の露光での１つ又はそれよりも多くの画像、並びに露光過多画像及び露光不足画像を撮る。一部のこのような実施形態において、画像処理モジュールは、合成ＨＤＲ画像の生成に使用する正常露光画像（例えば、最も鮮明なもの、最後のものなど）の１つを選択する。
【００３８】
本発明のいくつかのより詳細な実施形態を以下に説明する。第Ｉ節では、一部の実施形態のユーザインタフェースがどのようにしてユーザがＨＤＲモードを呼び出してＨＤＲ画像を捕捉することを可能にするかを説明する。次に、第ＩＩ節は、メディアデバイスがＨＤＲ画像を捕捉及び処理するために一部の実施形態に使用するソフトウエアアーキテクチャを説明する。次に、第ＩＩＩ節では、一部の実施形態のモバイルデバイスの画像捕捉モジュールを更に説明する。次に、第ＩＶ節では、一部の実施形態においてモバイルデバイスの画像処理モジュールの画像アラインメント処理を説明する。次に、第Ｖ節では、一部の実施形態におけるモバイルデバイスの画像処理モジュールの画像合成処理を説明する。最後に、第ＶＩ節では、一部の実施形態のモバイルデバイスのシステムアーキテクチャを説明する。
【００３９】
Ｉ．ＨＤＲモードの呼出し及びＨＤＲ捕捉
一部の実施形態において、ＨＤＲモードは、モバイルデバイスのユーザインタフェース（ＵＩ）における選択によって示される。図２Ａは、一部の実施形態のモバイルデバイス２００におけるＨＤＲモードの呼出し及びこのモード中でのＨＤＲ画像の撮影を示している。この図は、デバイス２００のユーザインタフェースの６つの段階２４５、２５０、２５５、２５７、２６０、及び２６５でこれらの作動を示している。
【００４０】
図２Ａに示すように、モバイルデバイス２００は、表示区域２２０、画像捕捉ＵＩ品目２１５、及びフラッシュＵＩ品目２１０を含む。一部の実施形態における表示区域２２０は、モバイルデバイスがカメラとして作動するモードになった時にモバイルデバイスのセンサにより捕捉された場面の画像を表示する。画像捕捉ＵＴ品目２１５は、ユーザにより選択されると、モバイルデバイスに１つ又はそれよりも多くの画像を捕捉するように指示するユーザが選択可能な品目である。
【００４１】
一部の実施形態において、モバイルデバイスは、カメラのためのフラッシュを含む。従って、これらの実施形態において、フラッシュＵＩ品目２１０により、ユーザは、フラッシュの電源を投入又は切断することができる。更に以下に説明するように、フラッシュＵＩ品目２１０により、ユーザは、モバイルデバイスのカメラをＨＤＲモードにすることができる。
【００４２】
ＨＤＲ画像を捕捉する際のモバイルデバイス２００の作動をここで説明する。第１の段階２４５は、デバイスが画像捕捉モードになった後のモバイルデバイスのユーザインタフェースを示している。一部の実施形態において、ユーザは、表示区域２２０内に表示されたカメラアイコンを選択することにより、デバイスをこのモードに置くことができる。一部の実施形態において、デバイスがカメラモードに入る時に、デバイスは、画像を捕捉し、そのフレームバッファ内にこれらの画像を一時的に記憶し、かつ表示区域２２０にこれらの画像を表示することを開始する。しかし、フラッシュ品目２１０及び表示されるＵＩ品目及び行われる作動のシーケンスを強調表示するために、図２Ａの第１〜第４の段階２４５〜２５７では、表示区域２２０内で一時的に表示された画像のいずれも表示しない。
【００４３】
第２の段階２５０は、フラッシュＵＩ品目２１０を選択するユーザを示している。図２Ａに示すように、ユーザは、フラッシュ品目２１０の位置でデバイスのタッチスクリーン表示区域に触れる（例えば、指２２５で）ことによってこの選択を行うことができる。ユーザは、一部の実施形態では、他のＵＩ選択技術を通じてこの品目を選択することができる。
【００４４】
第３の段階２５５は、フラッシュ品目２１０の選択により結果としてフラッシュメニュー２３０の表示が行われることを示している。このメニューには、フラッシュに電源を投入する選択可能なＵＩ品目２８０、フラッシュの電源を切断する選択可能なＵＩ品目２８５、自動フラッシュモードにフラッシュを設定する選択可能なＵＩ品目２９０、及びＨＤＲ画像捕捉モードをオンにする選択可能なＵＩ品目２３５がある。選択可能なＨＤＲ−モード品目２３５は、図２Ａのフラッシュメニュー２３０の一部であると一部の実施形態に対して示されたが、当業者は、この品目２３５は、一部の実施形態ではデバイスのＵＩにおいて異なる配置を有することを認識するであろう。
【００４５】
第４の段階２５７は、ＨＤＲモード選択品目２３５のユーザの選択を示している。モバイルデバイスのディスプレイタッチスクリーン上でこの品目の位置を触れる（例えば、指２４０で）ことによってこの選択を提供する。一部の実施形態において、ユーザは、他のＵＩ選択技術を通じてこの品目を選択することができる。
【００４６】
第５の段階２６０は、ユーザがモバイルデバイスのディスプレイタッチスクリーン上でこの品目の位置に触れる（例えば、指２７０で）ことによって画像捕捉品目２１５を選択することを示している。表示区域内の他の選択可能な品目の場合と同様に、ユーザは、一部の実施形態では、他のＵＩ選択技術を通じて画像捕捉品目を選択することができる。品目２１５の選択により、デバイスは、ユーザが表示区域２２０内で見ているＨＤＲ場面（天気のよい日に窓の前に立っている人の）のＨＤＲ画像を捕捉する。ここでもまた、ＨＤＲモードに入って画像−捕捉品目の選択を受信する前でさえも、表示区域は、プレビュー画像２６２のようなカメラモードに入った時にカメラが一時的かつ反復的に捕捉する一時的な画像を表示する。しかし、上述のように、これらの一時的に表示された画像は、ＵＩ品目の表示及び様々なＵＩ品目の選択を不明瞭にしないように図２Ａの段階２４５〜２５７では示されない。
【００４７】
第６の段階２６５は、カメラが捕捉して画像−捕捉品目２１５の選択で記憶するＨＤＲ画像２６７を示している。一部の実施形態内のこの画像は、画像捕捉モジュールに連続して異なる露光でいくつかの画像を捕捉させて画像合成モジュールにこれらの画像を合成させた後にデバイスが生成する画像が処理されたデジタル画像である。一部の実施形態において、ＨＤＲ画像２６７は、プレビュー画像２６２内では見えない詳細を含む。例えば、ＨＤＲ画像２６７は、鳥２７５を含む。
【００４８】
上述のように、プレビュー画像２６２は、ＵＩ品目及びその選択の表示を不明瞭にしないように図２Ａのディスプレイでは示されていない。従って、図２Ｂは、図２Ａに関して説明するＨＤＲ捕捉作動の段階中のプレビュー画像２６２の表示を示している。
【００４９】
ＩＩ．ソフトウエアアーキテクチャ
図３は、一部の実施形態のモバイルデバイスのソフトウエアアーキテクチャ３００を概念的に示している。一部の実施形態において、このデバイスは、ＨＤＲ場面の画像を捕捉することができ、これらの画像を処理してＨＤＲ画像を生成することができ、かつこれらの画像（例えば、ＪＰＥＧ画像として）を符号化することができる。これらの作動をするために、このデバイスは、図３に示すように、捕捉モジュール（ＣＭ）ドライバ３０５、メディア交換モジュール３１０、符号化器ドライバ３２０、及び画像処理モジュール３２５を含む。
【００５０】
一部の実施形態において、メディア交換モジュール３１０は、メディアコンテンツの消費者及び製作者であるデバイス上のプログラムがメディアコンテンツの処理に関し、メディアコンテンツ及び命令を交換することを可能にする。従って、一部の実施形態において、メディア交換モジュール３１０は、画像処理モジュール３２５とＣＭドライバ３０５間に、及び画像処理モジュール３２５と符号化器ドライバ３２０間に命令及びメディアコンテンツを経路指定する。このような命令及びメディアコンテンツの経路指定を容易にするために、一部の実施形態のメディア交換モジュール３１０は、メディアコンテンツの消費者及び製作者を使用する１組のアプリケーションプログラミングインタフェース（ＡＰＩ）を供給する。一部のこのような実施形態において、メディア交換モジュール３１０は、モバイルデバイス上で実行中であるオペレーティングシステムの一部である１つ又はそれよりも多くのフレームワークの組である。このようなメディア交換モジュール３１０の１つの例は、アップル・インコーポレーテッドによって供給される「コア・メディア」フレームワークである。
【００５１】
画像処理モジュール３２５は、デバイスのカメラにより捕捉された画像に画像処理を提供する。このような作動の例には、露光調節作動、焦点調節作動、パースペクティブ補正、画像サイズ変更などが含まれる。これらの作動に加えて、画像処理モジュール３２５は、ＨＤＲ画像処理作動を提供する。具体的には、一部の実施形態において、モジュール３２５は、図１のＨＤＲ画像処理モジュール１１０を含む。このモジュール１１０と共に、モジュール３２５は、図１を参照して上述したアラインメント作動及び合成作動をすることを提供する。
【００５２】
メディア交換モジュール３１０を通じて、画像処理モジュール３２５は、上述のように、ＣＭドライバ３０５及び符号化器ドライバ３２０とインタフェースで接続する。ＣＭドライバ３０５は、画像捕捉モジュール（ＩＣＭ）３３０とメディア交換モジュール３１０間の通信インタフェースとして機能する。ＩＣＭ３３０は、ＨＤＲ画像を生成するのに必要である異なる分解能で一連の画像を捕捉することを担うモバイルデバイスの構成要素である。
【００５３】
メディア交換モジュール３１０を通じて画像処理モジュール３２５から、ＣＭドライバ３０５は、デバイスがＨＤＲモードに入り、かつＨＤＲ画像捕捉要求が行われたという指示を受信する。ＣＭドライバ３０５はＩＣＭ３３０にこのような要求を中継し、これに応答し、ＨＤＲ画像を生成する必要な異なる分解能の１組の画像を受信する。ＣＭドライバ３０５は、次に、メディア交換モジュール３１０を通じて、画像処理モジュール３２５にこれらの画像を送る。
【００５４】
符号化器ドライバ３２０は、メディア交換モジュール３１０と符号化器ハードウエア３３５間の通信インタフェース（例えば、符号化器チップ、システム・オン・チップ上の符号化構成要素のような）として機能する。一部の実施形態において、符号化器ドライバ３２０は、メディア交換モジュール３１０を通じて、画像（例えば、生成されたＨＤＲ画像）及び画像処理モジュール３２５からの画像を符号化する要求を受信する。符号化器ドライバ３２０は、符号化すべき画像を符号化器３３５に送り、符号化器３３５は、次に、画像に画像符号化（例えば、ＪＰＥＧ符号化）を提供する。符号化器ドライバ３２０が符号化器３３５から符号化された画像を受信した時に、符号化器ドライバ３２０は、メディア交換モジュール３１０を通じて画像処理モジュール３２５に符号化された画像を送り返す。
【００５５】
一部の実施形態において、画像処理モジュール３２５は、符号化器から受信する符号化された画像に異なる作動を行うことができる。このような作動の例には、符号化された画像をデバイスのストレージに記憶すること、別のデバイスにデバイスのネットワークインタフェースを通じて符号化された画像を送信することが含まれる。
【００５６】
一部の実施形態において、モジュール３０５、３１０、３２０、及び３２５の一部又は全ては、デバイスのオペレーティングシステムの一部である。他の実施形態は、デバイスのオペレーティングシステムの一部として、メディア交換モジュール３１０、ＣＭドライバ３０５、及び符号化器ドライバ３２０を実行し、同時に、オペレーティングシステム上で実行されるアプリケーションとして画像処理モジュール３２５を有する。モジュール３００の更に他の例が可能である。
【００５７】
ＨＤＲ画像捕捉セッション中の画像処理モジュール３２５の作動をここで図４を参照して説明する。この図は、画像処理モジュール３２５が符号化されたＨＤＲ画像を生成するために一部の実施形態において行う一連の作動を表す処理４００を概念的に示している。デバイスがＨＤＲモードに入る度に（例えば、図２Ａに示す例におけるＨＤＲ選択品目２３５の選択で）、画像処理モジュール３２５は、この処理４００を提供する。従って、図４に示すように、画像処理モジュール３２５は、最初にＨＤＲモードに入る（４０５で）。
【００５８】
次に、モジュール３２５は、画像捕捉モジュール３３０に対してメディア交換モジュール３１０及びＣＭドライバ３０５を通じてＨＤＲ画像捕捉モードに入るように指示する（４１０で）。この指示を受信した時に、画像捕捉モジュール３３０は、上述して以下で更に説明するように、現在の照明条件下で露光過多画像及び露光不足画像を生成する露光持続時間を計算する。また、この段階で、画像捕捉モジュール３３０は、正常露光画像を捕捉して一時的にフレームバッファに記憶している。このような画像を捕捉するために、画像捕捉モジュール３３０は、デバイスがカメラモード作動にある間に反復的に露光持続時間を計算する。
【００５９】
画像捕捉モジュール３３０にＨＤＲモードに入るように指示した後に、画像処理モジュール３２５は、ＨＤＲ画像を捕捉及び生成する指令を受信した（例えば、図２Ａに示す例内の画像捕捉品目２１５の選択で）と画像捕捉モジュール３３０に指示する（４１５で）。この指示は、メディア交換モジュール３１０及びＣＭドライバ３０５を通じて画像捕捉モジュール３３０に中継される。
【００６０】
この指示に応答し、画像捕捉モジュール３３０は、迅速かつ連続的に、現在の照明条件に対して先だって計算した露光過多持続時間に基づいて捕捉する露光過多画像、及び現在の照明条件に対して先だって計算した露光不足持続時間に基づいて捕捉する露光不足画像を捕捉する。これらの画像に加えて、画像捕捉モジュールは、正常露光持続時間で先に捕捉してフレームバッファに記憶した画像の検索もする。
【００６１】
ＣＭドライバ３０５及びメディア交換モジュール３１０を通じて、画像処理モジュール３２５は、画像捕捉モジュール３３０から３つの画像の各々を受信する（４１５で）。一部の実施形態において、画像処理モジュールは、カメラが画像を捕捉した色空間に３つの画像を受信する。例えば、一部の実施形態の画像捕捉モジュール３３０は、画像を捕捉してＹ’ＣｂＣｒ色空間にこれらの画像を供給する。
【００６２】
画像処理モジュールは、カメラが３つの画像を捕捉した時間中に移動することがあり得るので３つの画像の全てを互いに整列させる（４２０で）。上述して以下で更に説明するように、画像処理モジュールは、階層的検索技術を使用し、対で露光過多画像及び露光不足画像を規則正しく露光された画像に整列させる。
【００６３】
画像を整列させた後に、画像処理モジュールは、合成ＨＤＲ画像を生成するために３つの画像において画像データを合成する（４２５で）。異なる実施形態において、画像処理モジュールは、異なる技術を使用して３つの画像を合成する。例えば、一部の実施形態は、これらの画像のルマチャンネルに対して、これらの画像の色度チャンネルとは異なる組の作動を行うことによって３つの画像を合成する。また、ＨＤＲ合成画像を生成することにおいて、一部の実施形態は、値の望ましい範囲よりも大きいルマ値及び色度値を生成することがあり得る。従って、ＨＤＲ画像を生成している間、一部の実施形態は、同時にスケーリング作動を行って、確実にＨＤＲ画像のルマ及び色度値が望ましい範囲で生成されるようにする。
【００６４】
ＨＤＲ画像を生成した後に、画像処理モジュールは、生成されたＨＤＲ画像を表示する（４２５で）。次に、このモジュールは、符号化器３３５に（メディア交換モジュール３１０及び符号化器ドライバ３２０を通じて）ＨＤＲ画像を符号化するように指示する（４３０）。一部の実施形態における符号化器は、この画像を符号化して（例えば、ＪＰＥＧフォーマットに符号化して）、符号化されたＨＤＲ画像を戻す。一部の実施形態における画像処理モジュールは、次に、符号化されたＨＤＲ画像をデバイスのストレージ上に記憶する（４３０で）。一部の実施形態の画像処理モジュールは、符号化されたＨＤＲ画像に対して他の作動を行うことができる。例えば、一部の場合には、画像処理モジュールは、デバイスのネットワークインタフェースにより確立されたネットワーク接続を通して、符号化された生成画像を別のデバイスに送信する。
【００６５】
当業者は、処理作動を上述したものと異なる方法で実行することができると認識するであろう。例えば、１つの正常露光画像のみを処理する代わりに、一部の実施形態の画像処理モジュールは、画像捕捉モジュールが戻すいくつかの正常露光画像を調べる。この群から、画像処理モジュールは、最も鮮明であり、及び／又は捕捉された露光過多画像及び露光不足画像に最良に適合する正常露光画像を選択する。代替的に、一部の実施形態において、フレームバッファからの正常露光画像を使用するのではなく、ＨＤＲ指令を受信した後に、モバイルデバイスは、通常の露光での１つ又はそれよりも多くの画像、並びに露光過多画像及び露光不足画像を撮る。一部のこのような実施形態において、画像処理モジュールは、合成ＨＤＲ画像の生成に使用する正常露光画像（例えば、最も鮮明なもの、最後のものなど）の１つを選択する。一部の実施形態において、正常露光画像は、フレームバッファからではなくＨＤＲ捕捉指令の後に撮られる。
【００６６】
当業者は、フレームバッファから通常の画像を撮り、かつＨＤＲ指令を受信した後に通常の画像を撮る各方法は、他のものに勝るいくつかの利点を有することを理解するであろう。ＨＤＲ捕捉指令アイコンに触れる行為により、モバイルデバイスは、フレームバッファ内の画像が取られた時の位置から離れる。フレームバッファから画像が使用される場合、ＨＤＲ捕捉指令アイコンに触れることによって引き起こされるモバイルデバイスの移動は、正常露光画像の撮影と露光過多画像及び露光不足画像の撮影との間に発生することになる。代替的に、ＨＤＲ捕捉指令アイコンが触れられた後に新しい正常露光画像が撮られる場合に、タッチにより引き起こされた移動は、画像の捕捉間にはなく通常の画像が撮られる前に発生することになる。従って、新しい正常露光画像を撮ることにより、３つの露光の捕捉中にデバイスの移動量を低減することができる。画像捕捉中に移動を低減することにより、合成される重なり合う区域が増大する。
【００６７】
上述のように、一部の実施形態は、プレビュー画像としてフレームバッファからの最近の画像を表示して正常露光画像としてプレビュー画像の１つを使用する。フレームバッファから通常の画像を使用する可能な利点は、その画像は、ＨＤＲ捕捉指令が受信される前に表示されるプレビュー画像により似ることである。フレームバッファから通常の画像を読み取る別の可能な利点は、起動されるＨＤＲ指令と表示される合成ＨＤＲ画像の間の時間を短縮することができる（例えば、正常露光画像の露光時間だけ）という点である。
【００６８】
一部の実施形態は、フレームバッファからの画像ではなく新しく捕捉された通常の露光のものを使用するので、それらの一部の実施形態は、モバイルデバイスがＨＤＲモードである間に、正常露光プレビュー画像を取らずフレームバッファに記憶する。しかし、ＨＤＲ指令を受信した後に捕捉された正常露光画像を使用する実施形態の間でさえも、一部の実施形態は、依然として、正常露光プレビュー画像を撮って照明条件に関するデータを収集し、どの通常の露光時間を使用すべきか、どの露光値を使用すべきかなどを判断する。
【００６９】
ＩＩＩ．画像捕捉モジュール
図５Ａは、本発明の一部の実施形態の画像捕捉モジュール３３０を示している。画像処理モジュール３２５の指示で、画像捕捉モジュール３３０は、デバイスカメラに画像を捕捉するように指示する。例えば、上述のように、一部の実施形態内の画像捕捉モジュール３３０は、カメラに、デバイスがカメラ作動モードに入った時に特定のフレーム率で正常露光画像を捕捉し始めるように指示する。また、デバイスがＨＤＲモードに入った時に、モジュール３３０は、露光過多画像及び露光不足画像を撮る露光持続時間を計算することにより、ＨＤＲモードに入る（画像処理モジュール３２５の指示で）。次に、それがＨＤＲモードにある間にそれが画像捕捉指令を受信した時に、一部の実施形態における画像捕捉モジュール３３０は、（１）２つの連続した画像を１つを露光過多持続時間にかつ１つを露光不足続時間に撮り、（２）フレームバッファからの１つ又はそれよりも多くの正常露光画像と共にこれらの２つの画像を戻す。
【００７０】
図５Ａに示すように、画像捕捉モジュール３３０は、センサモジュール５１５、フレームバッファ５２０、画像処理パイプライン５２５、統計値エンジン５３０、及びコントローラモジュール５３５を含む。一部の実施形態において、画像捕捉モジュール３３０のモジュールの全ては、ハードウエア（例えば、ＡＳＴＣ、ＦＰＧＡ、マイクロコントローラによるＳＯＣのような）に実施され、一方、他の実施形態において、画像捕捉モジュール３３０のモジュールの一部又は全ては、ソフトウエアに実施される。
【００７１】
センサモジュール５１５は、デバイスのカメラのセンサインタフェース５１０とカメラセンサ５０５とに通信的に結合する。一部の実施形態において、カメラセンサ５０５は、ＣＭＯＳセンサであり、センサインタフェース１０は、カメラセンサ５０５の一部である。センサモジュールとカメラセンサ／センサインタフェース間の通信的な結合は、あらゆる数の公知のセンサインタフェースを通じて容易にされる。この通信的な結合を通じて、センサモジュール５１５は、電力レベル、ズームレベル、焦点、露光レベルのようなカメラの作動の様々な態様を制御する指示をカメラに転送することができる。一部の実施形態において、これらの指示は、通常はコントローラモジュール５３５から生じる。また、カメラとの通信的な結合を通じて、センサモジュール５１５は、更に以下に説明するように、画像処理モジュール３２５がカメラに画像の捕捉を開始するように要求し、センサモジュール５１５がコントローラモジュール５３５を通じてこの要求を受信した時に画像の捕捉を開始するようにカメラセンサに指示することができる。
【００７２】
一部の実施形態において、バイエルフィルタは、カメラセンサ上に重畳され、従って、カメラセンサは、バイエルパターン画像を出力し、バイエルパターン画像は、カメラセンサに関連のセンサインタフェースに記憶される。バイエルパターン画像は、各ピクセルが１つの色値、すなわち、赤色、青色、又は緑色のみを記憶する画像である。センサインタフェース５１０との結合を通じて、センサモジュール５１５は、カメラセンサインタフェース５１０に記憶された生バイエルパターン画像を検索する。センサモジュール５１５がカメラのセンサインタフェースから画像を検索する速度を制御することにより、センサモジュール５１５は、特定のカメラにより捕捉された画像のフレーム率を制御することができる。
【００７３】
センサモジュール５１５は、フレームバッファ５２０内のセンサインタフェース５１０からそれが検索する画像を記憶する。フレームバッファ５２０に記憶された画像は、生の又は未処理の画像である。画像処理モジュール３２５がこれらの画像を処理することができる前に、画像捕捉モジュール３３０の画像処理パイプライン５２５は、これらの画像にいくつかの前処理作動を行う必要がある。実施形態が異なれば、行う前処理の作動の組も異なる。例えば、一部の実施形態において、画像処理パイプライン５２５は、バイエルパターン画像内の各組の色に対して色値を補間することによってフレームバッファ５２０に記憶されたバイエルパターン画像から赤色、緑色、青色（ＲＧＢ）画像を再現する間引きモジュール（図示せず）を含む。また、一部の実施形態の画像処理パイプライン５２５は、Ｙ’ＣｂＣｒ画像にＲＧＢ画像を変換する色空間変換モジュール（図示せず）を含む。一部の実施形態の画像処理パイプライン５２５内に含まれる他のモジュールの例には、（１）フレームバッファから検索された画像内の不良ピクセルを補正することを試みる不良ピクセル除去、（２）カメラレンズにより引き起こされた画像欠陥を補正するレンズシェーディング補正、（３）正しく中間色調をレンダリングするために画像の色を調節する白色均衡補正などを行うモジュールがある。本明細書で使用する時に、フォーマット間の変換は、１つのフォーマットの画像からデータを使用して異なるフォーマットで画像を生成することを指す。一部の実施形態において、画像の新バージョンは、旧画像に取って代わり、他の実施形態において、画像の旧バージョン及び新バージョンが保たれる。
【００７４】
統計値エンジン５３０は、画像処理パイプライン５２５の様々な段階で画像データを収集する。また、異なる実施形態において、このエンジンは、画像処理パイプライン５２５の異なる段階とは異なる方法でデータを収集する。統計値エンジン５３０は、収集されたデータを処理し、処理したデータに基づいて、コントローラモジュール５３５及びセンサモジュール５１５を通じてカメラセンサ５０５の作動を調節する。このような作動の例には、露光及び焦点がある。一部の実施形態において、露光持続時間は、センサ積分時間及びセンサ／捕捉モジュールアナログ／デジタル利得の組合せにより決まる。図５Ａは、コントローラモジュール５３５を通じてカメラセンサ５０５を制御する統計値エンジン５３０を示すが、他の実施形態における統計値エンジン５３０は、センサモジュール５１５のみを通じてカメラセンサを制御する。また、統計値エンジン５３０は、コントローラモジュール５３５と別々であるように示されているが、このエンジンの作動は、コントローラモジュール５３５により行われる。換言すると、図５Ａの統計値エンジンのモジュール分割は、画像捕捉モジュール３３０により行われる一連の作動の概念化である。
【００７５】
一部の実施形態のコントローラモジュール５３５は、画像捕捉モジュール３３０の作動を制御するマイクロコントローラである。例えば、一部の実施形態において、コントローラモジュール５３５は、センサモジュール１５を通じてカメラセンサ５０５に画像を捕捉するように指示する。また、一部の実施形態において、コントローラモジュール５３５は、（１）センサモジュール５１５を通じたカメラセンサの作動（例えば、露光レベル）、（２）画像処理パイプライン５２５の作動、及び（３）一部の実施形態のモバイルデバイスの一部であるフラッシュ／ストロボ（図示せず）を制御する。コントローラモジュール５３５から露光設定を受信する代わりに、又はこれらの設定に関連して、一部の実施形態のカメラセンサ５０５又はセンサモジュール５１５は、カメラセンサ作動に向けてデフォルト値を使用する。
【００７６】
コントローラモジュール５３５の一部の実施形態は、統計値エンジン５３０及び捕捉モジュールドライバ３０５から受信した指示を処理する。一部の実施形態において、捕捉モジュールドライバ３０５から受信した指示は、モバイルデバイスからの（すなわち、ローカルデバイスから受信した）指示であり、一方、他の実施形態において、捕捉モジュールドライバ３０５から受信した指示は、別のデバイスからの指示である。処理された指示に基づいて、コントローラモジュール５３５は、画像捕捉モジュール３３０の作動を調節することができる。
【００７７】
図５Ｂは、本発明の一部の他の実施形態の画像捕捉モジュール３３０を示している。図５Ｂでは、センサモジュール５１５は、直接にカメラセンサ５０５を制御せず、かつコントローラモジュール５３５から指令を受信しない。この図では、コントローラモジュール５３５は、カメラセンサ５０５を制御する。図５Ｂでは、センサモジュール５１５は、ちょうど図５Ａ内のセンサモジュール５１５がするように、センサインタフェース１０からフレームバッファ５２０にデータを渡す。
【００７８】
図６は、ＨＤＲ画像捕捉セッション中の画像捕捉モジュール３３０の一連の作動を概念的に表す処理６００を示している。この処理は、デバイスがその画像−捕捉モードに入る度に開始される。図６に示すように、この処理は、最初に特定のデフォルト速度で画像の捕捉を開始する（６０５で）。捕捉された画像の１つ又はそれよりも多くの１つ又はそれよりも多くの品質（例えば、ヒストグラム又は全体的な光レベル）に基づいて、一部の実施形態におけるコントローラモジュール５３５は、現在の光条件を検出する（６０５で）。現在の光条件に基づいて、コントローラモジュールは、正常露光画像（以下、ＥＶ０画像と呼ぶ）を捕捉する露光持続時間を定めて（６０５で）、センサモジュール５１５にこの露光持続時間を中継する（６０５で）。他の実施形態において、カメラセンサ５０５又はセンサモジュール５１５に関連の制御論理回路は、光条件を検出し、通常の露光（ＥＶ０露光と呼ぶ）の露光持続時間を定める。一部の実施形態において、この制御論理回路は、デバイスが作動中である光量を定量化することができる光検出回路を含む。
【００７９】
正常露光持続時間がどこでどのように計算されるかとは無関係に、処理６００では、正常露光持続時間で画像の捕捉を開始し、捕捉された画像をフレームバッァに記憶する。一部の実施形態において、処理６００は、照明条件が変わる時に正常露光持続時間を識別するために画像捕捉セッション中に正常露光持続時間を反復計算する。
【００８０】
６０５の後に、コントローラモジュール５３５は、画像処理モジュール３２５からＣＭドライバ３０５及びメディア交換モジュール３１０を通じてＨＤＲモード指令を受信したという指示を受信する（６１０で）。この指令に基づいて、コントローラモジュール５３５は、現在の照明条件中に露光過多画像及び露光不足画像を撮る（ＥＶ＋画像及びＥＶ−画像を撮る）露光持続時間を計算する（６１５で）。一部の実施形態において、コントローラモジュールは、照明条件が変わる時に、露光過多及び露光不足露光持続時間を識別するためにＨＤＲ捕捉セッション中に作動６１５を反復的に行う。
【００８１】
次に、６２０で、コントローラモジュール５３５は、画像を取るための命令を受信する。それに応答して、コントローラモジュール５３５は、センサモジュールに露光過多持続時間で１つの露光過多画像、及び露光不足持続時間で１つの露光不足画像を捕捉するように指令する（６２５及び６３０で）。コントローラモジュール５３５は、次に、画像処理パイプライン５２５にフレームバッファにおいて１つ又はそれよりも多くのＥＶ０画像と共にフレームバッファから捕捉されたＥＶ＋及びＥＶ−画像を取り出すように指令する（６３５で）。上述のように、画像捕捉モジュールは、ＥＶ＋画像及びＥＶ−画像に整列させる最良のＥＶ０画像を選択することをモジュール３２５に可能にするために、一部の実施形態では画像処理モジュール３２５にいくつかのＥＶ０画像を戻す。代替的に、一部の実施形態において、画像捕捉モジュール３３０は、１つの正常露光画像のみを戻すが、確実にこの戻された画像がぼけない（すなわち、鮮明である）ようにしようとする。異なる実施形態において、画像捕捉モジュール３３０は、異なる方法で画像が確実に鮮明であるようにしようとする。例えば、デバイスが加速度計及び／又はジャイロを有する一部の実施形態において、画像捕捉モジュールは、加速度計及び／又はジャイロから記録されたデータを使用して、鮮明である正常露光画像を選択するために正常露光画像のぼけの可能性を確認する。
【００８２】
異なる実施形態において、コントローラモジュール５３５は、画像処理パイプライン５２５に異なる方法で露光過多画像、露光不足画像、及び正常露光画像を検索するように指示する（６３５で）。一部の実施形態において、コントローラモジュール５３５は、単に露光過多画像及び露光不足画像が捕捉されたと処理パイプライン５２５に通知し、処理パイプライン５２５は、フレームバッファ５２０から正しい画像を検索する。
【００８３】
画像処理パイプライン５２５は、フレームバッファ５２０から検索した各画像を前処理する（６４０で）。画像捕捉モジュール３３０は、ＨＤＲ画像生成に向けて画像処理モジュール３２５に各検索済み及び前処理された画像を戻す（６４０で）。６４０の後に、処理は、デバイスがもはやＨＤＲ捕捉モードでない場合に終了するか、又は別の「画像を撮る」指令を待機するために６２０に戻る。
【００８４】
以上の説明は、捕捉された画像を照明条件に関する情報源として識別する。しかし、一部の実施形態において、カメラセンサ５０５は、画像データを生成することなく、照明条件を判断する。一部の実施形態のモバイルデバイスは、カメラセンサ５０５の代わりに又はそれに加えて、付加的なセンサを使用して照明条件を判断する。
【００８５】
ＩＶ．画像アラインメント
Ａ．序文
モバイルデバイスにより撮られる場面の３つの画像から合成画像を製造するために、場面の特定部分を示す各画像内のピクセルは、場面の同じ部分を示す他の画像の各々におけるピクセルと合成すべきである。画像が撮られている間にモバイルデバイスが移動しなかった場合、各画像内の場面の特定部分を表すピクセルは、画像内では、他の画像の各々において場面の同じ部分を表すピクセルと同じ座標を有する。このような画像はアラインメント済みと特徴付けることができる。しかし、モバイルデバイスが画像を撮る間に移動する場合に、１つの画像内の場面の特定部分を表すピクセルは、他の画像内の場面の同じ部分を表すピクセルと僅かに異なる座標を有する。換言すると、移動中のデバイスにより撮られた画像は、アラインメントから外れていることになる。
【００８６】
画像を合成する前に、一部の実施形態は、画像を合成する前に画像を整列させることによってモバイルデバイスの移動を補正する。すなわち、生の画像が垂直方向及び水平方向で互いからオフセットしているピクセルの数が判断され、従って、モバイルデバイスは、次に、たとえ対応するピクセルが生の画像の各々において同じ座標を有してなくても、場面の同じ部分に対応する各画像からピクセルを結合することができる。２つの画像内の対応するピクセルを整列させるオフセットは、ピクセルで測定されるオフセットベクトルとして特徴付けることができる。
【００８７】
撮られる同じ場面の２つの画像間のオフセットは、画像が撮られる間にモバイルデバイスの回転又は平行移動の動きにより引き起こすことができる。ユーザが一部の実施形態のモバイルデバイスに高ダイナミックレンジ画像を撮るように指令した時に、モバイルデバイスは、各画像の撮影間に時間が殆どなく迅速に連続して３つの画像を撮る。しかし、画像の各々の撮影間の小さい時間にも関わらず、手持ち式モバイルデバイスは、たいがい３つの画像を撮る中に移動する。例えば、ＨＤＲ画像を撮るように指令するためにモバイルデバイスに触れる行動により、デバイスが移動する可能性がある。モバイルデバイスの移動のために、各画像は、僅かに異なる位置から撮られることになる。位置内の僅かな変化のために、生の画像は、互いにアラインメント状態にはならない。高ダイナミックレンジ処理で異なる露光で撮られる画像を合成することができる前に、画像を整列させる特定のオフセットベクトルを見出すことによって画像を互いに整列させるべきである（例えば、モバイルデバイスにより）。このようなアラインメントは、「レジストレーション」と呼ぶこともある処理の一部である。
【００８８】
画像が別の画像からオフセットしているピクセルの数は、画像を撮っている間にカメラがどれ程度移動するか（平行移動動き及び回転により）、及び画像のスケール（例えば、場面の何センチ又は何度は、画像内の各ピクセルにより表される）に依存する。例えば、カメラの回転又は平行移動の動きにより、場面の２つの画像が１０ｃｍアラインメントから外れていることがあり得る（例えば、一方の画像は、他方の画像より場面の左側が１０ｃｍ多く、場面の右側が１０ｃｍ少ない）。このような場合に、画像のスケールで１ピクセルの長さを場面中の１ｃｍに合わせた場合に、画像は、１０ピクセルだけアラインメント外れであることになる。このスケールは、場面内の実際の世界の品目に対する画像の位置の変化を画像を構成するピクセルに対する画像の変化に変換することができる方法を説明するために提供している。一部の実施形態において、モバイルデバイスは、画像の実際のスケールを測定しない。
【００８９】
一部の実施形態のモバイルデバイスは、デバイスが画像を撮る最中にどの程度遠くに移動するかという正確な尺度を有していない。従って、このような実施形態において画像を整列させるオフセットは、画像が撮られる時には分らない。一部の実施形態のモバイルデバイスは、様々なオフセットベクトルを試験することによって２つの画像を整列させるオフセットを識別する。画像の特定の対を整列させるか否かを判断するためにモバイルデバイスにより試験される範囲のオフセットベクトルの組は、本明細書では「潜在的なオフセットベクトル」又は「潜在的なオフセット」と呼ばれる。一部の実施形態のモバイルデバイスは、オフセットベクトルの異なる値で画像（又は画像から導出されたビットマップ）を比較することにより、どの潜在的なオフセットベクトルが画像を整列させるかを判断する。潜在的なオフセットの範囲は、一部の実施形態において、画像間に有意な重なりができるオフセットに限定される。有意な重なりができるオフセットは、このような実施形態において試験されず、その理由は、合成処理は、主として画像の重なり合う部分に機能するからである。画像を撮る間に確実に保持しようとするユーザの手中のモバイルデバイスの移動は、比較的小さい可能性があり、従って、アラインメントオフセットは、画像のサイズに対して小さいことが多い。しかし、一部の実施形態は、移動がいつもより大きい場合にのみより大きいオフセット範囲を試験する。一部の実施形態において、１つ又はそれよりも多くの外部センサ（例えば、ジャイロ、動きセンサのような）を使用し、変位及び／又はモバイルデバイスの回転を推定する。一部の実施形態において、このような推定値を使用して、オフセットベクトルを検索する開始点を判断する。一部の実施形態において、推定値を使用して、調べるべきオフセットベクトルの範囲を判断する（例えば、モバイルデバイスが非常にしっかりと保持された場合に、検索範囲は、モバイルデバイスがさほど確実に保持されていない場合よりも狭い）。
【００９０】
画像間に有意な重なりができる潜在的なオフセットの範囲を制限する実施形態においてさえも、潜在的なオフセットの数は、多い可能性がある。例えば、潜在的なオフセットが、１０００ピクセル平方である画像の幅と高さの０％〜６．４％の範囲である場合に、潜在的なオフセットベクトルは、あらゆる方向（上、下、左、又は右）の０〜６４のピクセルである可能性がある。可能なオフセットベクトルのその範囲で、可能なオフセットベクトルの総数は、約１６，０００（約１２８個の水平ピクセルｘ約１２８個の垂直のピクセル）である。試験すべき潜在的なオフセットベクトルが何千もある時に、各可能なオフセットベクトルで大きな画像（又は大きなビットマップ）を直接に比較することによって潜在的なオフセットベクトルを試験するには、非常に多くの回数の計算が必要である。
【００９１】
実際のオフセットを見つけるために行う計算の回数を低減するために、一部の実施形態は、階層的なアラインメント処理を提供する。一部の実施形態の階層的なアラインメント処理では、より低い分解能で画像の各バージョンを生成する。画像の分解能が低くなっても同じ場面を含むが、倍率が増大する。例えば、１０００ｘ１０００（ピクセルｘピクセル）画像が１０ｍ幅の場面を表す場合に、画像内の１つのピクセル長は、場面において１ｃｍを表している。１０００ｘ１０００画像から生成された５００ｘ５００分解能画像内の１つのピクセル長は、場面において２ｃｍを表している。同様に、５００ｘ５００画像から生成された２５０ｘ２５０分解能画像内の１つのピクセル長は、場面において４ｃｍを表している。
【００９２】
スケールの差のために（すなわち、同じ場面を表すピクセルの少数化）、低分解能化時の潜在的なオフセットベクトルは、画像の同じ画分を対象とするが、潜在的なオフセットベクトルの絶対数は小さくなっている。上述の例では、分解能を４分の１に落とせば（正方形の１０００平方のピクセルから２５０平方のピクセルに）、可能なオフセットの範囲は、±６４ピクセルから±１６ピクセル（すなわち、６４ピクセル÷４）に低減する。このような低減により、可能なオフセットベクトルの数は、１６分の１に減少する（すなわち、約１６，０００個の可能なオフセットベクトルから約１，０００個の可能なオフセットベクトルに）。このような処理では、第１の近似値から開始し、次に、連続的により細かい近似値を通じて実際のオフセットベクトルを判断することにより、オフセットベクトルを見つける。
【００９３】
一部の実施形態の処理は、生の画像の分解能が低減されたバージョンを生成し、画像の分解能が低減されたバージョンから１ビットビットマップを生成してビットマップを整列させることによって２つの画像を整列させるオフセットベクトルの逐次近似を計算する。最低分解能ビットマップから開始してビットマップを整列させる。ビットマップを整列させるために、処理では、様々な試験オフセットベクトルを使用して互いに２つのビットマップを比較してビットマップ間の実際のオフセットベクトルを判断する。一部の実施形態の処理では、ビットマップ内の全てピクセルを比較するのではなく、ビットマップ内のピクセルの部分集合を比較する。一部のこのような実施形態において、２つのビットマップを比較する前に、処理では、一方又は両方のビットマップをタイルに分割して閾値よりも大きい百分率の黒色ピクセル又は閾値よりも大きい百分率の白色ピクセルを含むタイルを廃棄する。このような処理では、次に、残りのタイル内のピクセルを比較してビットマップ間のオフセットベクトルを判断する。ビットマップの各分解能に対して識別されたオフセットベクトルは、ビットマップの次の高分解能化に向けてオフセットベクトルを試験する開始点として使用される。これらの処理を以下で更に図７〜図１１に関して説明する。
【００９４】
Ｂ．アラインメントのためのビットマップの生成
一部の実施形態は、２つの画像を整列させるオフセットベクトルを検索するのに使用すべき複数のビットマップを生成する。図７は、画像を整列させるそのような一連のビットマップを生成する一部の実施形態の処理７００を示している。本明細書で使用する時の「ビットマップ」という用語は、ピクセル当たり１ビットの色の深みを有する画像のバージョンを指す。このようなビットマップ内の各ピクセルは、黒色又は白色として表すことができる。
【００９５】
処理７００では、最初の画像を受信する（７１０で）。一部の実施形態において、画像は、モバイルデバイスのカメラから受信される。一部の実施形態のモバイルデバイスのカメラ作動は、処理７００を行うプログラムとは独立しているプログラムにより制御される。一部のこのような実施形態において、画像は、カメラ作動を制御するプログラムから受信される。他の実施形態において、単一のプログラムが、両方のカメラ作動を制御して処理７００を提供する。一部のこのような作動において、ビットマップ生成処理７００及びモバイルデバイスのカメラ作動を実行するプログラムが、カメラハードウエアから画像を受信する。一部の実施形態のプログラムは、カメラハードウエアから画像を受信する代わりに又はそれに加えて、モバイルデバイスのメモリから画像を受信する。モバイルデバイスの実施形態が異なれば、画像を供給するフォーマットも異なる。一部の実施形態において、画像は、各ピクセルに対して明度値及び１組の色値に関して表される。例えば、一部の実施形態において、処理では、Ｙ’ＣｂＣｒ（ルマ、青色色度、及び赤色色度）フォーマットで画像を受信する。一部の実施形態において、画像は、異なる色成分値に関して表される。ルマ／色度フォーマットにおいて画像を供給する代わりに又はそれに加えて、一部の実施形態のモバイルデバイスは、異なる色成分値に関して画像を供給する。一部の実施形態の色成分値は、ＲＧＢフォーマット（例えば、ｓＲＧＢ画像）で供給される。このような実施形態において、処理７００では、受信作動の一部としてルマ画像に画像を変換する。
【００９６】
この処理では、最初のルマ画像を間引く（７２０で）。最初の画像の間引きにより、最初の画像の分解能（各寸法の）の半分で画像のコピーが作成される。例えば、最初の画像が１９２０ｘ１２８０の分解能を有する場合に、コピーは、９６０ｘ６４０の分解能を有する。
【００９７】
処理７００は、特定の回数の間引きを提供し、例えば、図９〜図１０の処理においては、オフセットベクトルの逐次近似に向けて使用すべき異なる分解能レベルのいくつかの画像を生成する。様々な実施形態は、様々な回数で画像を間引く。一部の実施形態において、間引きの回数は、潜在的なオフセットの範囲に影響を与える。特定の画像の分解能が低いほど、画像の特定の百分率が得られるように潜在的なオフセットベクトル数は少ない。従って、一部の実施形態において、試験すべき潜在的なオフセットの範囲が大きいほど、使用される間引きのレベルは多い。間引きのレベルの数は、一部の実施形態では予めプログラムされる。例えば、一部の実施形態は、間引きの最初の画像及び５つのレベルを供給し、間引かれた画像の最低分解能は、最初の画像の分解能の１／３２であり（各寸法において）、ピクセル数は１／１０２４である。一部の実施形態は、間引きの最初の画像及び６つのレベルを供給し、間引かれた画像の最低分解能は、最初の画像の分解能の１／６４であり（各寸法において）、ピクセル数は１／４０９６である。分解能の減少により、結果として、画像の特定の画分において潜在的なオフセットベクトルの数の対応する減少が発生する。従って、ピクセルの数の１〜４０９６の低減により、画像の特定の画分における潜在的なオフセットベクトルの数が４０９６分の１に減少する。
【００９８】
間引きの回数は、一部の実施形態において予め設定される。しかし、震える手又は弱光レベルのような局所条件は、モバイルデバイスの作動に影響を与える可能性がある。従って、予め設定された（デフォルト）数の間引きを使用することに加えて又はその代わりに、一部の実施形態により、ユーザは、間引きレベルの数を決めるか、又は最初の画像が撮られる時にモバイルデバイスに利用可能な１つ又はそれよりも多くの変数に応答して動的に間引きレベルの数を判断させることができる。例えば、総露光時間を長くして（例えば、弱光条件において）３つのＨＤＲ画像を撮る時に、ユーザの手は、移動する時間が増えて、従って、同じ速度でより遠くに移動することができる。一部の実施形態は、間引きのレベルを増大させて付加的な移動時間を補正することによって付加的な移動を補正する。一部の実施形態のモバイルデバイスは、ユーザの手が移動中の速度の少なくとも何らかの表示を行う動きセンサを含む。一部のこのような実施形態において、画像の捕捉中にモバイルデバイスの移動が速くなるほど、多くの間引きレベルを生成するようにモバイルデバイスは促される。
【００９９】
間引きの数を判断する方法と無関係に、有限数の間引きがある。従って、処理では、間引きが望ましい数の間引き画像を生成するのに十分な回数で反復されたか否かを判断する（７３０で）。間引きが十分な回数で反復されなかった場合に、処理は、前回の間引きで生成された画像を間引くために７２０に戻る。間引きの各々の反復により（７２０で）、連続的に小さくなる分解能で画像の新しいコピーが生成される。例えば、間引きが１９２０ｘ１２８０の分解能で最初の画像から始まって６回行われた場合に、画像の総数は、分解能１９２０ｘ１２８０（最初）、９６０ｘ６４０（第１の間引き画像）、４８０ｘ３２０（第２の間引き画像）、２４０ｘ１６０（第３の間引き画像）、１２０ｘ８０（第４の間引き画像）、６０ｘ４０（第５の間引き画像）、及び３０ｘ２０（第６の間引き画像）で７つになる（最初の画像を含む）。
【０１００】
一部の実施形態における間引きは、画像を間引くあらゆる公知の方法により行われる。例えば、一部の実施形態は、以下の技術、すなわち、（１）ピクセルをｎｘｎ平方にグループ分けし（ここで、ｎは、間引き係数（例えば、２）である）、次に、平方でピクセルの値を平均化すること、（２）移動平均フィルタ、（３）加重移動平均フィルタ、（４）全てのｎｘｎ群内で１つのピクセル値（例えば、中心ピクセル値又は群内の特定の位置でのピクセル値）を選択すること、（５）最小自乗解析法を使用すること、（６）二段抽出、及び（７）他の間引き方法のうちの１つ又はそれよりも多くを使用する。
【０１０１】
処理７００で各画像（すなわち、間引きから生じる最初のルマ画像及び各画像）から間引かれた画像の正しい数が生成されたと判断すると（７３０で）、処理は、１ビットビットマップを生成する。ビットマップ画像は、画像から生成されるが、その理由は、２つのビットマップ間のオフセットを見つける方が画像自体間のオフセットを直接に見つけるよりも計算的に厳しくないからである。ビットマップを生成する一部の実施形態の作動により、比較すべき画像の異なる露光レベルから生じるルマ値の差が補正される。各露光の異なるルマ値にも関わらず、各露光により、場面の暗い部分より明るいものとして場面の明るい部分が見出される。より具体的には、一方の露光でのピクセルの明るい（及び暗い）半分は、他方の露光でのピクセルの明るい（及び暗い）半分の形状及び位置が密接に適合するものになる。各画像のルマ中心値を使用してその画像内のピクセルの暗い半分からその画像内のピクセルの明るい半分を分離する。画像のルマ中心値は、画像内のピクセルの半分が低い方のルマ値（又は同じルマ値）を有し、画像内のピクセルの半分が高い方のルマ値（又は同じルマ値）を有するルマ値である。従って、その画像のルマ中心値を使用して各画像に行われる閾値演算により、異なる露光時間と無関係に、他の画像によって生成されたビットマップとほぼ同じであるビットマップが生成される。
【０１０２】
従って、ルマ画像からビットマップの生成の準備をするために、処理７００では、各画像（最初の画像及び全ての間引き画像を含む）に対してルマ中心値を識別する（７４０で）。ルマ中心値を使用して、ビットマップを生成する。上述のように、各画像に対して個々のルマ中心値を使用することにより、アラインメント処理７００では、異なる露光でのルマ値の異なる範囲を補正する。当業者は、一部の実施形態は、ビットマップを生成する他の方法を使用することがあり得ることを理解するであろう。例えば、一部の実施形態の閾値は、ルマ中心値（例えば、閾値はルマ中心値÷２である）から導出されるが、ルマ中心値ではない。一部の他の実施形態の閾値は、画像の一部の他の特性から判断される（例えば、閾値はルマの中心値ではなくルマ範囲の平均値である）。
【０１０３】
この処理は、次に、閾値としてその画像のルマ中心値を使用して閾値作動を行うことによって各画像の１−ビットビットマップバージョンを生成する（７５０で）。ルマ画像内のピクセルに対する閾値演算により、ビットマップにおいて対応するピクセルが生成される。閾値演算により、画像内の対応するピクセルが閾値ルマ値よりも明るい場合に、ビットマップにおいて白色ピクセルが生成され、画像内の対応するピクセルが閾値ルマ値よりも暗い場合に、ビットマップにおいて黒色ピクセルが生成される。この演算に使用される閾値ルマ値は、ビットマップを生成するのに使用される画像のルマ中心値であるので、ビットマップ内のピクセルのほぼ半分は黒色になり、ピクセルのほぼ半分は白色になる。処理７００は、次に終了する。
【０１０４】
処理７００は、いくつかの特徴を含むと上述した。当業者は、上述の特徴の全てが、全ての実施形態において見られるというわけではないことを理解するであろう。また、処理７００の様々な実施形態は、上述の特徴の１つ又はそれよりも多くに加えて又はその代わりに他の特徴を有する。当業者は、一部の個々の実施形態は、同じ作動内で実行されるのではなく、互いの代替として実行される複数の特徴を含むことを認識するであろう。例えば、以上の説明した処理は、ルマ画像の上で作用する。しかし、当業者は、一部の実施形態は、ルマ画像の代わりにルミナンス画像（ＹＣｂＣｒ画像のルミナンス成分）を使用することを理解するであろう。更に他の実施形態は、一部の場合にはルマ画像を使用し、他の場合には代替的にルミナンス画像を使用する。上述の処理では、ルマ画像から別々のビットマップを生成するが、一部の実施形態において、ビットマップは、対応するルマ画像を上書きする。一部の実施形態における間引かれた画像は、ビットマップ生成処理中に上書きされ、又はメモリを節約するためにそれぞれのビットマップが生成された後に削除される。
【０１０５】
上述の処理７００では、全ての間引き画像が生成された後に間引かれた画像からビットマップを生成するが、当業者は、一部の実施形態は、間引かれた画像が生成された後であるが、全ての間引き画像が生成される前に、間引かれた画像からビットマップを生成することを理解するであろう。上述の実施形態は、１／２に画像を間引く。しかし、当業者は、一部の実施形態は、２以外の係数により画像を間引くことを理解するであろう。上述の処理において、各々の間引き画像は、次の最高分解能の間引き画像から生成される。しかし、一部の実施形態において、次の最高分解能の間引き画像以外の画像を使用して間引かれた画像を生成する（例えば、間引かれた画像は、最初のルマ画像から、又は分解能レベルが２つ上の間引き画像から生成することができる）。上述の処理において、ビットマップ内の黒色ピクセルは、ルマ画像内の中心値より暗いピクセルに対応し、ビットマップ内の白色ピクセルは、ルマ画像内の中心値より明るいピクセルに対応する。しかし、当業者は、「黒色」及び「白色」は、ビットマップ内のピクセルの２つの可能性がある２進値を表すために色のあらゆる選択を表すことを理解するであろう。一部の実施形態において、画像内の暗いピクセルは、２進値「０」としてビットマップにおいて表され、画像内の明るいピクセルは、２進値「１」としてビットマップにおいて表される。他の実施形態において、画像内の暗いピクセルは、２進値「１」としてビットマップにおいて表され、画像内の明るいピクセルは、２進値「０」としてビットマップにおいて表される。
【０１０６】
図８は、アラインメントを検索するのに使用することができる一部の実施形態のビットマップの例を示している。このビットマップは、車の画像から生成されたものである。図８のビットマップは、スケール通りに描かれていない。図は、最初の画像８００及び８０５、ビットマップ８１０Ａ〜８１０Ｃ及び１５Ａ〜８１５Ｃ、及びタイル張りビットマップ８２０及び８２５を含む。最初の画像８００は、モバイルデバイスから中間持続時間露光で撮られた画像である。最初の画像８０５は、それよりも短い持続時間露光で撮られた同じモバイルデバイスから画像である。ビットマップ８１０Ａ〜８１０Ｃは、最初の画像８００のコピーから生成された（異なる分解能で）ビットマップである。ビットマップ８１５Ａ〜８１５Ｃは、最初の画像８０５のコピーから生成された（異なる分解能で）ビットマップである。タイル張りビットマップ８２０は、タイルに概念的に分割されたビットマップ８１０Ｃのコピーである。タイル張りビットマップ８２５は、タイルに概念的に分割されたビットマップ８１５Ｃのコピーである。
【０１０７】
同じ分解能によるこの図のビットマップは、最初の画像８００及び８０５のオフセットを検索するために、互いと比較することができる。画像８００及び８０５のオフセットにより、画像の１つに適用された時に、他方の画像に整列させるベクトルである。この場合に、画像８００の車は、その画像の右側に向けて近く、一方、画像８０５の車は、画像の左側に向けて近い。従って、正しい量で右側にそのピクセルを移動するオフセットを画像８０５に適用すれば、画像８０５は、画像８００に整列する。
【０１０８】
ビットマップ８１０Ａ及び８１５Ａは、ビットマップ８１０Ａ及び８１５Ａが最初の画像から直接に生成されたので、画像８００及び８０５と同じ量でオフセットされる。画像８００及び８０５のオフセットは、ビットマップ８１０Ａ及び８１５Ａのオフセットを見つけることによって見つけることができる。しかし、オフセットでビットマップが整列するか否かを確かめるためにあらゆる可能なオフセットを試すことによって単にビットマップ８１０Ａ及び８１５Ｃのオフセットを見つけるのは、２つの高分解能ビットマップを整列させるために検査すべき可能なオフセットが多数あるために計算機的に高価であるものになる。従って、一部の実施形態の処理では、高値分解能ビットマップに対して全ての可能なオフセットベクトルを試すのではなく、逐次近似の階層的な処理を通じて正しいアラインメントを検索する。
【０１０９】
ビットマップ８１０Ｃ及び８１５Ｃの低分解能化により、結果として、ビットマップ８１０Ｃ及び８１５Ｃを整列させる時に検査すべき可能なオフセットが少なくなる。しかし、同じく検査すべき可能なオフセットの少数化は、その分解能で見られるオフセットの精度の低下を意味する。具体的には、ビットマップ８１０Ｃと８１５Ｃ間の１つのピクセルのオフセットは、最初の画像８００及び８０５間のいくつかのピクセル（例えば、６４個のピクセル）のオフセットを表すので、ビットマップ８１０Ｃ及び８１５Ｃを整列させるオフセットは、ビットマップ８１０Ａ及び８１５Ａを整列させるオフセットを正確に指定しない。しかし、ビットマップ８１０Ｃ及び８１５Ｃを整列させるオフセットは、ビットマップ８１０Ａ及び８１５Ａを整列させるオフセットの第１の近似値として使用することができる。ビットマップ８１０Ｃ及び８１５Ｃを整列させるオフセットは、分解能がより高いビットマップのオフセットを見つける階層的な処理における開始点である。
【０１１０】
連続的に増大するビットマップの組により、オフセットの値は、分解能が連続的に高くなる各ビットマップを使用して精緻化することができる。図８では、ビットマップの特定の縦列内の各々の連続的なビットマップは、縦列内の前のビットマップを生成するのに使用された画像の分解能の半分で概念的に画像から生成されたビットマップを表すので、各ビットマップのオフセットは、次の最高分解能のオフセットの半分である。例えば、ビットマップ８１０Ａは、分解能１９２０ｘ１２８０（最初）で最初の画像８００から生成され、ビットマップ８１０Ｂは、分解能９６０ｘ６４０（第１の間引き画像）で最初の画像８００の間引かれたコピー（図示せず）から生成されたものである。ビットマップ８１０Ｂと８１５Ｂ間の右側寄りの１０個のピクセルのオフセットは、ビットマップ８１０Ａと８１５Ａ間に右側寄りの２０個のピクセル（±１個のピクセル）のオフセットを表している。分解能がより大きいビットマップ８１０Ａ及び８１５Ａのオフセットが見つけられた時に、検索の開始点は、右寄りの２０個のピクセルになる。以下で図９〜図１１に関して更に説明するように、アラインメント処理は、次に、右寄りの１９個のピクセル、２０個のピクセル、及び２１個のピクセルで実際のオフセットを検索する開始点から１個のピクセル以内の可能なオフセットを評価する。
【０１１１】
図８において、ビットマップ８１０Ｂと８１０Ｃ間の省略記号は、先行する間引かれた画像の分解能の半分（各寸法において）の各々の間引き画像から生成された連続的に小さくなる分解能のビットマップを無視するものである。図７に関して説明するように、ビットマップの間引き及び生成は、分解能の一部の特定の数のレベル（例えば、６つのレベル）に対して続行される。図８では、ビットマップ８１０Ａ〜８１０Ｃ及び８１５Ａ〜８１５Ｃ及び最初の画像８００及び８０５は、スケール通りに描かれていない。
【０１１２】
上述の実施形態は、生成されたビットマップと同じ分解能で各ビットマップを間引かれた画像から生成する。代替的に、一部の実施形態において、分解能が低いビットマップは、間引かれた画像からではなく、分解能が高いビットマップから生成することができる。一部の実施形態において、分解能が高いビットマップからビットマップを生成する方が間引かれた画像からビットマップを生成するよりも速い。しかし、ビットマップを間引かれた画像からではなく分解能が高いビットマップから生成すると、オフセットベクトルの検索の効率及び／又は精度を低減し兼ねないアーチファクトがビットマップ内に生成される傾向がある。従って、この技術は、全ての実施形態に使用されるというわけではない。
【０１１３】
一部の実施形態は、一方又は両方のビットマップをタイルに分割し、各画像の特徴を一列に並ばせるオフセットベクトルを見つけるために他のビットマップ内の対応するピクセルとタイルの一部又は全て内のピクセルを比較することにより、ビットマップを整列させる。以下の短い説明は、各分解能で１つのビットマップにタイルを張る実施形態に関するものである。
【０１１４】
一部の実施形態の処理では、複数の試験オフセットベクトルを使用して２つのビットマップ画像を複数回比較する。この比較では、１つのビットマップ内のピクセル（「タイル張りされたビットマップ」）を第２のビットマップ（「ターゲットビットマップ」）内の対応するピクセルと系統的に比較する。この処理では、タイル張りされたビットマップ内のピクセルをオフセットベクトルによりオフセットしているターゲットビットマップ内のピクセルと比較する。各試験オフセットベクトルに対して、一部の実施形態の処理では、互いと異なる対応するピクセルの数を数える。試験オフセットベクトルが２つの画像間の実際のオフセットに近いほど、（シフトした）ターゲットビットマップに対してタイル張りビットマップとは異なる２つのビットマップ内のピクセルの数はより少ない。
【０１１５】
間引かれた画像から生成された一部のビットマップは、殆ど全て黒色又は殆ど全て白色であるタイルを含む。比較結果から全て黒色、殆ど全て黒色、全て白色、又は殆ど全て白色であるタイルを省くと、一部の実施形態では、識別されたオフセットベクトルを変更することなく比較が迅速化される。従って、一部の実施形態は、比較結果から黒色、殆ど全て黒色、白色、及び殆ど全て白色のタイルを廃棄する。
【０１１６】
従って、一部の実施形態のビットマップは、オフセットベクトルを見つける処理（図９及び１０に関して以下に説明）の一部として、タイル張りビットマップ８２０及び８２５のようなタイルに概念的に分割される。各タイルは、いくつかのピクセルを含む。２つのビットマップのオフセットベクトルを見つける一部の実施形態の処理において、白色タイルの何らかの閾値数よりも小さい全て黒色又は殆ど全て黒色（例えば、タイル張りビットマップ８２０内の前輪の上半分）タイルは無視され、黒色タイルの何らかの閾値数よりも小さい全て白色（例えば、タイル張りビットマップ８２０の左及び上エッジのタイル）、又は殆ど全て白色（例えば、タイル張りビットマップ８２０のフロントガラス）であるタイルは無視される。すなわち、それらのタイル内のピクセルは、それらの２つのビットマップを整列させるオフセットベクトルを検索中に行われる２つのビットマップの比較結果には含まれない。
【０１１７】
Ｃ．画像の階層的アラインメント
ビットマップが複数の分解能で生成された状態で、一部の実施形態は、ビットマップを使用して画像を整列させるオフセットベクトルを見つける。図９〜図１０は、２つの画像を整列させるオフセットベクトルを見つける一部の実施形態の処理９００及び処理１０００を示している。明瞭さを期すために、処理９００の説明では、互いとの２つの画像のアラインメントに対して説明する。しかし、一部の実施形態において、処理９００では、異なる露光の３つの最初の画像に対して３組のビットマップを受信して３つの画像を整列させる。３つの画像を整列させる際に、処理９００では、まず２つの画像を整列させ、次に、第３の画像を他の２つの画像の一方に整列させる。処理９００は、分解能が低いビットマップを使用してオフセットに向けて大雑把な近似値を見つけ、次に、連続的に増大する分解能ビットマップを使用して実際のオフセットベクトルに連続的に近くなる近似値を見つけることにより、実際のオフセット値を絞り込むことによって２つの画像間のオフセットを見つける階層的な処理である。この処理では、各分解能で９つの候補オフセットベクトルを試験し、どのオフセットベクトルがその分解能でビットマップをアラインメントに最も近づけるかを見つける。
【０１１８】
図９〜図１０は、図１１を参照して説明する。図１１は、一部の実施形態において２つの画像を整列させるオフセットベクトルを見つける例を示している。この図は、一度に１つの階層レベルを使用して２つの画像間のオフセットベクトルがどのようにして処理９００により見つけられるかを示している。図は、横列／段階１１１０〜１１４０及び縦列１１６５〜１１８０を含む。段階１１１０〜１１４０の各々は、概念的に、２つの画像間のオフセットベクトルの特定における階層的なレベルを表している。縦列１１６５〜１１８０の各々は、各段階の本質的な特徴を表している。段階１１１０〜１１４０の各々は、間引かれた分解能（縦列１１６５に）、開始オフセットベクトル（縦列１１７０に）、オフセットベクトルへの識別された追加オフセットベクトル（縦列１１７５に）、及び新しいオフセットベクトル（縦列１１８０に）を含む。
【０１１９】
縦列１１６５の間引かれた分解能値により、各段階において比較すべきビットマップの分解能が識別される。これは、処理９００における分解能の選択（９２０及び９７０で）を概念的に示している。縦列１１７０の開始オフセットベクトルは、候補ベクトルが試験される起点として作用するオフセットベクトルを表している。縦列１１７５の各横列は、９つの候補ベクトルを含む。縦列１１７５の様々な段階における矢印（及び丸）は、その分解能でビットマップで最良のアラインメントを生成する候補オフセットベクトルとして処理１０００により概念的に選択された候補ベクトルを示している。縦列１１８０の新しいオフセットベクトルは、同じ段階における開始オフセットベクトル及び縦列１１７５において識別されたベクトルのベクトル合計を表している。縦列１１８０内のオフセットベクトルは、最終段階１１４０において、２つの最初の完全分解能画像のオフセットを表している。
【０１２０】
一部の実施形態において、処理９００は、図７の処理７００のような処理によって生成されたビットマップを使用する。処理９００は、２組のビットマップを受信する（９１０で）ことによって始まる。ビットマップの各組は、モバイルデバイスからの最初の画像から生成されたものである。受信した組のビットマップの各々は、次のより大きい分解能よりも２倍小さい様々な分解能を含む。処理９００は、協働すべき（例えば、ビットマップを整列させるオフセットベクトルを見つけるために）ビットマップの現在の対として最低分解能のビットマップを選択する（９２０で）。図１１の例では、段階１１１０は、最低階層的レベルを表している。段階１１１０のビットマップの分解能は、縦列１１６５に示すように３０ｘ２０である。
【０１２１】
タイル張りビットマップ８２０及び８２５の関連において上述したように、ビットマップは、タイルに概念的に分割することができる。処理９００では、各組の現在のビットマップをタイルに分割する（９３０で）。一部の実施形態は、ビットマップの各対（共通分解能を有する）の一方のビットマップのみをタイルに分割する。各タイルは、特定の組のピクセルを含む。この関連では、タイルは、ピクセルがそのタイルにより識別された位置の範囲である時にピクセルを含むと考えられる。例えば、ビットマップの左下のピクセルを座標（０，０）として使用し、特定のタイルは、１０個のピクセルと１９個のピクセル間にｘ座標、及び２０個のピクセルと２９個のピクセル間にｙ座標を有する全てタイルを含むことができる。座標（１３，２５）を有するピクセルは、そのタイル内のピクセルであり、座標（２２，２５）を有するピクセルは、異なるタイル内のピクセルである。当業者は、タイルは、実施形態が異なれば異なるサイズとすることができ、同じ実施形態でも異なるサイズとすることさえ可能であることを理解するであろう。例えば、異なる分解能のタイルは、異なるサイズとすることができる。一部の実施形態のタイルは、ビットマップの分解能に対して異なるサイズである。
【０１２２】
一部のタイルは、有意な数の黒色ピクセル及び白色ピクセルを含む。他のタイルは、全て（代替的に、殆ど全て）黒色ピクセル又は全て（代替的に、殆ど全て）白色ピクセルを含む。２枚のタイルを整列させるオフセットベクトルを見つける後の比較を迅速化するために、一部の実施形態の処理では、殆ど１色のピクセル（黒色又は白色）を含む全てのタイルを廃棄する（９４０で）。すなわち、候補オフセットベクトルがいかに良好に２つのビットマップを整列させるかを見つけるために後の比較を行う時に、処理９００では、それらの比較結果内に廃棄されたタイルからのピクセルを含まない。一部の実施形態において、タイルは、それらが少数派色の閾値数未満を有する場合は廃棄される。一部の実施形態内の閾値数は、タイル内のピクセルの総数の５％である。他の実施形態において、少数派色の閾値数は、タイル内のピクセルの何らかの他の百分率である。１対のビットマップの一方のみのタイルが、一部の実施形態では廃棄される。他の実施形態において、タイルは両方のビットマップから廃棄される。
【０１２３】
処理９００では、現在の分解能の２つのビットマップを整列させるオフセットベクトルを識別する（９５０で）。オフセットベクトルを見つける作動９５０を図１０の処理１０００として更に説明する。図１１は、縦列１１７５における作動９５０を概念的に示している。例えば、縦列１１７５、段階１１１０に示すように、作動９５０では、起点の１つのピクセル内の全てのベクトルを評価し、この分解能（３０ｘ２０）でビットマップ間の最も接近したアラインメントを行うオフセットベクトルを見つける。段階１１１０での縦列１１７５の矢印は、最も接近したアラインメントがオフセット（１，１）によって生成されることを示している。最低解能の段階１１１０において、作動９５０では、最初の画像の分解能の１／６４（各寸法が）であるビットマップを整列させる。識別されたオフセットベクトルの値は、各段階で２倍になり、従って、１つの段階内の候補オフセットベクトルの寄与率は、全てのその後の段階において２倍になる。例えば、段階１１１０、縦列１１８０内の選択された候補オフセットベクトルは、（１，１）である。このベクトルは、各々のその後の段階（６回）において２倍になり、最終オフセットベクトル（６４、６４）に全体的に寄与する。同様に、段階１１２０（−１，−１）内の選択された候補オフセットベクトルは、４回２倍になり、最終オフセットベクトル、（−１６，−１６）のベクトルに全体的に寄与する。
【０１２４】
実際上、完全分解能（１９２０ｘ１２８０）画像間の実際のオフセットベクトルにより、段階１１１０において、作動９５０では、２つの完全分解能画像間のオフセットは（６４、６４）であることを見つける（すなわち、識別されたオフセットベクトルの６４倍）。オフセット（６４、６４）は、その以降の段階において精緻化されることになる大ざっぱな判断である。例えば、段階１１１５内の作動９５０では、各方向で０又は±１分オフセットベクトルを変えることができる段階１１４０まで、各方向（垂直及び水平）で０又は±３２だけオフセットベクトルを変えることができ、段階１１２０において、各方向で０又は±１６だけのようにオフセットベクトルを変えることができる。従って、図１１に示す特定のオフセットベクトルではなく、その後の段階において一連の可能なオフセットを仮定し、最低分解能でのオフセットを（１、１）を考慮すると、その後の段階において、作動９５０では、水平方向で１〜１２７のピクセルの画像、及び垂直方向で１〜１２７のピクセルに対して最終オフセットを見つけることができる。同様に、段階１１１５において、作動９５０では、実際の画像の分解能の１／３２（各寸法が）であるビットマップを整列させる。完全分解能（１９２０ｘ１２８０）画像間の実際のオフセットベクトルに関し、段階１１１５において、作動９５０では、２つの完全分解能画像間のオフセットは（９６、６４）であることを見つける（すなわち、識別されたオフセットベクトルの３２倍）。オフセット（９６、６４）は、依然としてその後の段階１１２０〜１１４０において精緻化されることになる大ざっぱな判断である。その後の段階は、最大３１ピクセルまで上下にベクトルの値を調節することができる。図１１に示す特定のオフセットベクトルではなく、その後の段階において一連の可能なオフセットを仮定し、オフセットがこの分解能（６０ｘ４０）で（３，２）である考慮すると、その後の段階の処理９００は、水平方向で３３〜９５のピクセルの画像、及び垂直方向で６５〜１２７のピクセルに対して最終オフセットを見つけることができる。
【０１２５】
オフセットベクトルが特定の分解能で見つけられた状態で、処理９００は、整列していないビットマップが更にあるか否かを判断する（９６０で）。処理で評価する必要があるビットマップが更にあると判断した場合に（９６０で）、処理は、現在のビットマップとして次の最低分解能ビットマップを選択する（９７０で）。例えば、図１１では、段階１１１０後に、作動９７０は、次の最低分解能ビットマップ（６０ｘ４０）を選択する。処理は、次に、新しい分解能のビットマップのための候補オフセットベクトルを評価する開始点として使用すべき作動９５０において識別されたオフセットベクトルを倍増する（９８０で）。例えば、図１１では、段階１１１０、縦列１１８０のオフセットベクトル（１，１）は、段階１１１５の縦列１１７０において、（１，１）から（２，２）に倍増される。各段階において、開始オフセットベクトルは、段階の分解能は先行する段階の分解能の２倍であることに対処するために、先行する段階からの新しいオフセットベクトルの２倍である。実際上、ビットマップの全ての座標は１つの分解能から次に２倍になり、新しい開始オフセットベクトルは、相応に２倍になる。
【０１２６】
処理が評価する必要があるビットマップはこれ以上はないと判断した場合（９６０で）（すなわち、ごく最近比較されたビットマップが完全分解能ビットマップであった時）、処理９００では、２つの最初の画像を整列させるオフセットベクトルを見つけている。例えば、図１１では、段階１１４０後に、評価すべきビットマップはこれ以上はない。従って、段階１１４０、縦列１１８０のオフセットベクトル、具体的に（８７、４８）は、２つの画像を整列させるオフセットベクトルである。画像が問題なく整列させた状態で、処理９００は、次に終了する。
【０１２７】
上述のように特定の分解能でビットマップの特定の対を整列させる作動９５０を図１０により詳細に示している。図１０は、２つのビットマップを整列させるオフセットベクトルを見つける処理１０００を示している。処理１０００は、様々な候補オフセットベクトル（及び開始オフセットベクトル（もしあれば））によってシフトされている時の２つのビットマップのピクセルを比較し、どの候補オフセットベクトルが最も接近したアラインメントを生成するかを見つける。処理１０００は、一部の実施形態の処理９００の一部である。
【０１２８】
処理１０００では、候補オフセットベクトルを選択する（１０１０で）。候補オフセットベクトルは、１組の可能なオフセットベクトルから選択されたベクトルである。可能なオフセットベクトルは、全て垂直にゼロ又は±１ピクセルだけ、及び水平にゼロ又は±１ピクセルだけ起点からオフセットしているベクトルである。候補オフセットベクトルは、（−１，−１）、（−１，０）、（−１，１）、（０，−１）、（０，０）、（０，１）、（１，１）、（１，０）、及び（１，１）である。候補オフセットベクトルは、図１１の縦列１１７５に示されている。
【０１２９】
処理は、開始オフセットベクトルに候補オフセットベクトルを追加して複合ベクトルを生成する（１０２０で）。開始オフセットベクトルは、前の分解能（もしあれば）のビットマップを整列させることを処理１０００により見つけられたオフセットベクトルである。図１１では、段階１１１０において、最低分解能ビットマップを整列させる。前の分解能がないので、開始オフセットベクトルは、（０，０）である。ゼロ以外の開始オフセットベクトルを有する第１の段階（すなわち、段階１１１５）において、処理１０００は、開始オフセットベクトル（２，２）の１つのピクセル内の全ての可能なオフセットベクトルを評価する。すなわち、段階１１１５において、処理１０００は、ベクトル（１，１）、（１，２）、（１，３）、（２，１）、（２，２）、（２，３）（３，１）、（３，２）、及び（３，３）を試験する。
【０１３０】
上述のように、縦列１１７５内の矢印（及び段階１１３０の丸）は、図１１に示す例では、２つのビットマップを比較する時にどの候補オフセットベクトルが最少数の差を生成するかを概念的に識別する。段階１１１５の縦列１１７５の矢印は、候補オフセットベクトル（１，０）が開始オフセットベクトル（２，２）に追加された時に最も接近したアラインメントが生成されることを示している。候補オフセットベクトル（１、０）が開始オフセットベクトル（２，２）に追加された時に、結果は、段階１１１５の縦列１１８０に示すようにオフセットベクトル（３，２）である。
【０１３１】
処理は、次に、結合したベクトルを試験オフセットベクトルとして使用して２つのビットマップを比較する（１０３０で）。この比較は、タイル張りビットマップ内のあらゆる廃棄されていないタイル内の各ピクセルをターゲットビットマップ内の対応するピクセルと系統的に比較する。ターゲットビットマップ内の対応するピクセルは、ターゲットビットマップ内の座標がタイル張りビットマップに内のピクセルの座標から試験オフセットベクトルによりオフセットしたピクセルである。例えば、試験オフセットベクトル（２５，３０）に対して、タイル張りビットマップの座標（ｘ，ｙ）のピクセルは、ターゲットビットマップの座標（ｘ＋２５，ｙ＋３０）のピクセルと比較される。一部の実施形態において、ＸＯＲ演算を使用して、２つの１ビット値（例えば、２つのビットマップ内のピクセルの値）を比較し、互いと異なるか否かを調べる。比較されたピクセルが異なる場合に（すなわち、１つのピクセルは黒色、他のピクセルは白色である）、ＸＯＲ演算により、ピクセルが同じである場合に（すなわち、両方のピクセルが黒色であり、又は両方のピクセルが白色である）、１の出力を生成し、次に、ＸＯＲ演算によりゼロの出力を生成する。各試験オフセットベクトルに対して、一部の実施形態の処理１０００では、互いと異なる対応するピクセルの数を数える。試験オフセットベクトルが２つのビットマップ間の実際のオフセットに近いほど、タイル張りビットマップと（シフトした）ターゲットビットマップとの異なる２つのビットマップ内のピクセル数が少ない。
【０１３２】
一方のビットマップと（シフトした）他方のビットマップ間でいくつのピクセルが異なるかを数えることによってビットマップを比較している際に、一部の実施形態の処理１０００では、廃棄されたタイルにおけるピクセルを比較には含まない。黒色及び白色の両方のピクセルの本質的な存在（例えば、一部の実施形態では５％よりも大きい）を伴ってタイル内にあるピクセルのみが比較に含まれる。ビットマップの一方のみのタイルを廃棄する一部の実施形態において、タイル張りビットマップからの廃棄されていないタイルにより、どのピクセルが比較されるかが指定される。例えば、試験オフセットベクトル（２５，３０）に対して、タイル張りビットマップの座標（ｘ，ｙ）のピクセルは、通常、ターゲットビットマップの座標（ｘ＋２５，ｙ＋３０）のピクセルと比較される。しかし、座標（ｘ，ｙ）がタイル張りビットマップの廃棄されたタイル内にある場合に、それらの座標でのタイル張りビットマップのピクセルは、ターゲットビットマップのピクセルとは比較されない。換言すると、座標（ｘ，ｙ）がタイル張りビットマップの廃棄されたタイル内にある時に、一部の実施形態の処理は、タイル張りビットマップの（ｘ，ｙ）でのピクセルのターゲットビットマップの（ｘ＋２５，ｙ＋３０）でのピクセル又はターゲットビットマップのあらゆる他のピクセルとの比較を単に実行しないことになる。
【０１３３】
一部の実施形態において、殆ど全て黒色又は殆ど全て白色であるタイルを廃棄する理由は、それらのタイルが結果に有意に影響を与えるものではないからである。例えば、全て白色のタイルが全て白色の区域にある場合に、いずれの小さいオフセットも、他方のビットマップの対応する区域において別の１組の全て白色のピクセルとそのタイルにおいて白色ピクセルを整列させる。候補ベクトルの各々によりその白色タイルが全て白色のピクセルの異なる組と比較された場合に、白色タイル内のピクセルをターゲットビットマップ内の対応するピクセルと比較してもオフセットベクトルを他の候補ベクトルと区別するのに使用することができるいずれのデータも得られない。
【０１３４】
処理は、特定の試験オフセットベクトルで一方のビットマップと他方のビットマップ間に異なると判明したピクセルの数により決まる値を記憶する（１０４０で）。一部の実施形態において、値は、単に異なるピクセルの数である。他の実施形態において、値は、異なるピクセルの実数ではなく異なるピクセルの数から導出される。
【０１３５】
処理は、次に、評価する必要がある候補ベクトルが更にあるか否かを判断する（１０５０で）。評価する必要がある候補ベクトルが更にある場合に、処理は、１０１０に戻って、新しい候補ベクトルを選択する。全ての候補ベクトルが評価された場合に、処理は、各ビットマップに対して記憶された値に基づいてビットマップで最良のアラインメントを行う候補ベクトルを識別する（１０６０で）。例えば、一部の実施形態において、結果としてタイル張りビットマップとシフトしたターゲットビットマップの最低数の異なる候補ベクトルが最良のアラインメントを行う候補ベクトルと識別される。オフセットベクトルが得られるように最良の候補ベクトルを開始オフセットベクトルに加算する（１０７０で）。処理１０００は、次に終了し、処理９００は、９６０で再開する。
【０１３６】
ビットマップの次の最高分解能の対は、現在の分解能と同じ画像を表すがよりスケールが精密化している。スケールの精密化のために、この新しいオフセットベクトルは、ビットマップの次の最高分解能の対の正確なオフセットを識別しない。しかし、１つの分解能で最良にビットマップを整列させる新しいオフセットベクトルを見つけることによって次の最高分解能でビットマップで最良のアラインメントを一部の場合に行うことができるオフセットベクトルの範囲が絞られる。各レベルで分解能を２倍にする実施形態において、特定の分解能でのアラインメントの精度は、次の最高分解能でのアラインメントの精度の半分に過ぎない。処理１０００により識別されたこの新しいオフセットベクトルは、現在の分解能で１ピクセル未満の精度である。従って、この新しいオフセットベクトルが次の分解能にスケーリングされた時に（例えば、作動９８０において）、アラインメントの値内の不確実性も同様にスケーリングされる。すなわち、次の分解能が現在の分解能の２倍である場合に、開始オフセットベクトルは、その分解能で実際のオフセットの２ピクセル（各方向で）未満になる。開始オフセットベクトルから２ピクセル未満離れる方向にいる全てのオフセットベクトルの組は、９つのベクトルを含む。具体的には、９つのベクトルは、開始オフセットベクトル及び９つの候補オフセットベクトルのベクトルの合計である。
【０１３７】
各分解能の開始オフセットベクトルは、次の最低分解能で２つのビットマップを整列させる新しいオフセットベクトルから導出される。最低分解能ビットマップには次の最低分解能がない。従って、処理１０００には、最低分解能ビットマップを整列させる時は開始オフセットベクトルがない。最低分解能ビットマップに対して、可能なオフセットの範囲は絞られてはおらず、従って、最低分解能でビットマップを整列させるオフセットベクトルは、探索の開始点から離れる方向にいる距離が２ピクセルよりも大きい場合がある。従って、一部の実施形態において、処理１０００では、最低分解能ビットマップに対して、分解能がより高いビットマップの場合よりも大きい範囲の候補ベクトルを評価する。
【０１３８】
どの候補ベクトルが各段階で選択されるかに基づいて６つの間引きレベルがある実施形態において、処理９００の階層的検索により見つけられるオフセットベクトルの可能性がある値は、水平に−１２７〜１２７、垂直に−１２７〜１２７である。各々の連続した段階により、可能なオフセットベクトルの範囲がほぼ１／２に絞り込まれる。各レベルで選択された候補オフセットベクトルが１の値を有する場合に、オフセットの水平成分の１２７の値に到達する。このような場合に、最低分解能レベルでは、最高分解能レベルで合計に１ピクセルが加算されるまで、６４ピクセルが合計に加算され、次の最低分解能レベルでは、３２ピクセルが合計に加算される。
【０１３９】
先の説明では各分解能で９つの候補ベクトルが含まれていたが、当業者は、他の実施形態は、異なる数の候補ベクトルを使用することを理解するであろう。一部の実施形態は、２倍以外で間引く。このような実施形態において、候補ベクトルの数は、低い分解能から高い分解能になる時に、補正する分解能の増加が大きいほど増加する。例えば、画像は一部の実施形態では各方向で１／４に間引かれる。一部のこのような実施形態において、開始オフセットベクトルは、１／４に縮小され（分解能間に）、候補オフセットベクトルには、開始オフセットベクトルから３ピクセル以内の全てのベクトルが含まれる。一部のこのような実施形態は、４９個の候補ベクトルを使用する。
【０１４０】
先の説明では全ての分解能レベルで主に白色タイル及び主に黒色タイルを廃棄することが含まれていたが、一部の実施形態は、より高い分解能レベルでのみタイルを廃棄する。低い分解能で、画像内のピクセルの数は少なくなるので、タイルを排除する方が探索の結果に影響を与える可能性が高い。更に、分解能が低いビットマップを整列させるオフセットベクトルの検索は、タイルを廃棄しなくても適度に速い。低い分解能でタイルを廃棄する時のエラーの危険性の増加及びオフセットベクトルの検索への利点の減少のために、一部の実施形態は、特定の分解能レベルよりも大きいビットトマップに関してのみタイルを廃棄する。例えば、一部の実施形態は、５つの間引きレベルで、画像から生成されたビットマップのタイルを廃棄する。同様に、一部の実施形態は、４つ、３つ、２つ、１つの間引きレベル又は０間引きレベルで、画像から生成されたビットマップに関してのみタイルを廃棄する。分解能がより高い画像に関してのみタイルを廃棄する一部の実施形態は、分解能がより低いビットマップにはタイルを張らない。一部のこのような実施形態は、低い分解能レベルでビットマップ全体を比較する。一部の実施形態は、各オフセットに対して同数のピクセルを比較するために、ビットマップの１つ又はそれよりも多くの１つ又はそれよりも多くのエッジの近くのピクセルを除外する。
【０１４１】
Ｖ．画像処理：ＨＤＲ画像生成及びスケーリング
Ａ．序文
写真撮影において、場面が異なれば撮影時の露光持続時間も異なる。露光持続時間が長いと、薄暗い被写体に対して高度の詳細が得られる。露光持続時間が短いと、明るい被写体に対して高度の詳細が得られる。しかし、撮影された被写体の明度に適合していない露光時間は、不良な結果が生じる可能性がある。例えば、明るい被写体の画像を撮る時に、露光持続時間が長すぎると、明るい被写体の画像のピントが合わされる時のセンサが飽和状態になる。詳細は、その場合には失われ、その理由は、飽和レベルよりも大きい光レベルは、単に白色（最大値で）として表示されるからである。全てのピクセルが白色を表示された時に、そうでない場合に詳細が得られる光レベルの差が捕捉されない。不良な結果の別の例は、短すぎる露光持続時間に暗い被写体の画像を撮る時に得られる。短い露光持続時間が短すぎると、暗い被写体の画像のピントを合わせる時のセンサの感度に不適切な光をもたらす。詳細が失われ、その理由は、センサは、受け取られた少量の光の僅かな割合の差を正確に識別することができないからである。場面が異なれば露光時間も異なる方が良く見えるので、撮影者及び自動カメラは、露光時間を調節して照明条件を補正する。一部の実施形態のモバイルデバイスは、撮影している場面の照明条件に従って露光時間も調節する。長い露光時間を使って暗い場面の詳細を捕捉し、短い露光時間を使って明るい場面の詳細を捕捉し、中程度の露光時間を使って明と暗の間に存在する（中間色調）場面の詳細を捕捉する。
【０１４２】
しかし、１つの場面が明るい被写体及び暗い被写体、並びに中間色調被写体を含む時に、暗い被写体の詳細を捕捉するのに十分な長い露光時間には、明るい被写体は、画像においては飽和状態になり、中間色調被写体は過度に明るいものになる。明るい被写体の詳細を捕捉するのに十分な短い露光時間には、暗い被写体は、殆どは黒色になり、中間色調被写体は暗すぎるものになる。中間色調品目を捕捉するのにちょうど合った露光時間には、暗い被写体は暗すぎ、明るい被写体は明るすぎるものになる。
【０１４３】
明るい被写体の飽和及び暗い被写体のぼかした詳細を回避する。一部の実施形態は、異なる露光（露光過多、露光不足、及び正常露光）で３つの画像を撮り、その特定の露光が良好に捕捉する露光の各々で詳細を強調するように像を合成する。露光過多画像では、暗区域で詳細が良好であり、従って、合成画像は、画像の暗区域においてピクセルを生成するために露光過多画像からのピクセルを使用することに向けて重み付けされる。露光不足画像では、明区域で詳細が良好であり、従って、合成画像は、画像の明区域においてピクセルを生成するために露光不足画像からのピクセルを使用することに向けて重み付けされる。正常露光画像では、中間色調区域で詳細が良好であり、従って、合成画像は、画像の中間色調区域に対して正常露光画像からのピクセルを使用することに向けて重み付けされる。
【０１４４】
画像を整列させた後に、節ＩＶで上述したように、一部の実施形態の画像処理モジュールは、３つの整列した画像の合成を行って合成ＨＤＲ画像を生成する。異なる実施形態において、画像処理モジュールは、異なる技術を使用して３つの画像を合成する。一部の実施形態は、これらの画像のルマチャンネルに対して、これらの画像の色度チャンネルとは異なる組の作動を行うことによって３つの画像を合成する。一部の実施形態において、色度チャンネル画像上の別々の作動は、ルマ画像上の作動と同じか又は類似のものである。また、ＨＤＲ合成画像を生成することにおいて、一部の実施形態は、値の望ましい範囲よりも大きいルマ値及び色度値を生成することがあり得る。従って、ＨＤＲ画像を生成している間、一部の実施形態は、同時にスケーリング作動を行って、確実にＨＤＲ画像のルマ及び色度値が望ましい範囲で生成されるようにする。一部の実施形態において、最終ＨＤＲ画像の生成は、ＨＤＲ捕捉作動及びＨＤＲレンダリング作動に概念的に分割される。ＨＤＲ捕捉作動において、初期ＨＤＲ画像は、異なる露光時間に撮られた複数の画像から生成される。一部の実施形態のＨＤＲレンダリング作動において、初期ＨＤＲ画像は、画像の影の強調、画像の高ルマ表示の減衰、画像のヒストグラム引伸し、及び画像の色度成分の彩度を含む１つ又はそれよりも多くの作動により調節される。
【０１４５】
合成画像ルマ画像の対応する区域を生成するために各画像のどの区域を使用すべきかを識別するために、一部の実施形態は、３つのマスクを生成する。３つのマスクは、３つの露光レベルに対応する。合成画像に使用すべき各露光の区域を識別するために、各マスクにより、その対応する露光の各点で重み係数が得られる。一部の実施形態において、正常露光画像は、３つのマスクを生成するために画像の明区域、暗区域、及び中間色調区域を識別するのに使用される。合成画像は、次に、各ピクセルに対して重み係数としてのマスクを使用してピクセル単位で生成される。特定のピクセルの特定のマスク内の高い値は、そのマスクに対応する露光のピクセルが合成画像内の対応するピクセルに及ぼす影響が強いことを意味する。特定のピクセルの特定のマスク内の低い値は、そのマスクに対応する露光のピクセルが合成画像内の対応するピクセルに及ぼす影響が弱いことを意味する。スケールの両端で、特定の露光のマスク内の特定のピクセルの１という値は、合成画像内の対応するピクセルの値がその露光の対応するピクセルの値に完全に依存することを意味する。同様に、特定の露光のマスク内の特定のピクセルの０という値は、合成画像内の対応するピクセルの値がその露光の対応するピクセルの値に全く依存しないことを意味する。
【０１４６】
マスクにより個々のピクセルが重み付けされるが、一部の実施形態は、各露光の相対露光時間を補正する係数により各画像内の全てのピクセルを重み付けする。一部の実施形態において、これらの計算に使用される露光時間は、モバイルデバイスのカメラによって供給される。
【０１４７】
一部の実施形態において、色を確実にルマ値でスケーリングさせるために、画像の色度値も、ルマ値として類似の重み付け方式で合成される。すなわち、露光の色度チャンネル（Ｃｂ及びＣｒ）は、露光のルマチャンネルと同じマスク及びスケーリングで合成される。画像の中間色調の色は、一部の実施形態において、合成中又は合成後に強調される。
【０１４８】
Ｂ．ルマ又はルミナンスの合成
一部の実施形態のモバイルデバイスは、異なる露光で撮られた複数の画像を合成することにより、ＨＤＲ画像を生成する。画像を合成すると、一部の実施形態において、各ピクセルの値が３つの画像の各々における対応するピクセルの値の重み付き平均である画像を生成する。一部の実施形態において、合成画像は、画像のルマ成分の重み付き平均である。他の実施形態において、合成画像は、画像のルミナンス成分の重み付き平均である。すなわち、様々な実施形態は、様々な異なる画像フォーマットで画像を合成する。一部の実施形態は、ルマ（Ｙ’）フォーマットで画像に全ての作動を提供する。他の実施形態において、全ての作動は、ルミナンス（Ｙ）フォーマットで画像に行われる。更に他の実施形態において、モバイルデバイスは、ルマ（Ｙ’）フォーマットで画像から開始し、ルミナンス（Ｙ）成分にルマ（Ｙ’）成分を変換し、次に、ルミナンス（Ｙ）成分に作動を提供する。ルミナンス画像が合成された後に、一部の実施形態のモバイルデバイスは、ルミナンス（Ｙ）からルマ（Ｙ’）に得られる合成画像を変換する。以下の説明では、このような変換が行われる可能性がある合成処理における一部の位置を識別するが、当業者は、他の実施形態において、変換が処理の他の部分中に行われる可能性があることを理解するであろう。
【０１４９】
図１２は、同じ場面の３つの異なる露光のルマチャンネル画像を合成して得られる合成画像の様々なルマ値を調節する処理１２００を示している。処理１２００は、合成モジュール１２０がアラインメントモジュール１１５から３つの（一部の実施形態では切り取られた）画像を受信する度に行われる。この処理を図１３Ａを参照して説明するが、図１３Ａは、特定の場面に処理１２００を行う例を示している。処理１２００を図１３Ａで品目を参照して説明するが、当業者は、これは、説明し易くしたものであり、かつ計算は、その図の特定の場面に限定されないことを理解するであろう。
【０１５０】
図１３Ａ内の場面は、山道に止まっている車である。場面は、明るい空及び暗い逆行の山並み、並びに中間色調化された車及び道路を含む。図１３Ａは、異なる露光で撮られた３つの画像１３１０Ａ〜１３１０Ｃ（例えば、色画像）、画像の各々のルマチャンネル画像（時にはルマ画像と呼ぶ）１３２０Ａ〜１３２０Ｃ、マスク１３３０Ａ〜１３３０Ｃ、合成ルマ画像１３４０、ガウスぼかし合成画像１３５０、強調表示−減衰画像１３６０Ａ、陰影−強化画像１３６０Ｂ、合成画像１３７０、及び最終ルマ画像１３８０を含む。異なる露光１３１０Ａ〜１３１０Ｃで撮られた３つの画像は、異なる露光レベルで撮られた色画像を表している。画像１３１０Ａは露光不足画像、１３１０Ｂは正常露光画像、１３１０Ｃは露光過多画像である。一部の実施形態において、画像１３１０Ａは、画像１３１０Ｂの長さの１／４で露光され、画像１３１０Ｃは、画像１３１０Ｂの４倍の長さで露光される。露光時間比率は、同じ実施形態において、又は他の実施形態では４以外の数とすることができる。ルマチャンネル画像１３２０Ａ〜１３２０Ｃは、色画像のルマ１３１０Ａ〜１３１０Ｃの情報のみを表している。一部の実施形態において、ルマチャンネルデータは色度チャンネルデータとは別々に供給され、他の実施形態において、ルマチャンネルデータは、色画像から抽出される。
【０１５１】
図１に関して上述したように、一部の実施形態のモバイルデバイスは、各画像に対して異なる露光時間に３つの画像（例えば、画像１３１０Ａ−１３１０Ｃ）を生成する。一部の実施形態において、これらの露光時間は、露光値報酬（ＥＶ）に関して測定される。モバイルデバイス上のカメラの特定の開口に対して、露光時間の量は、ＥＶの２の累乗に比例している。例えば、３のＥＶでは、露光時間を８倍に増大する。一部の実施形態において、正常露光画像に対して、露光過多画像は、＋２のＥＶで撮られ、露光不足画像は、−２のＥＶで撮られる。このような実施形態において、露光過多画像は、正常露光画像の４倍の長さで露光され、露光不足画像は、正常露光画像の１／４の長さで露光される。様々な実施形態は、±２と異なるＥＶ値を使用する。一部の実施形態は、異なる照明条件に合うようにＥＶを調節する。例えば、一部の実施形態は、正常露光画像（例えば、正常露光プレビュー画像から生成されたヒストグラム）のヒストグラムに基づいてどの露光値を使用すべきかを判断する。一部のこのような実施形態は、ＥＶ＋値とＥＶ−値間に一定差を維持する。一部の実施形態において、露光過多のＥＶは、一部の照明条件内の露光不足のＥＶと異なるマグニチュードとすることができる。例えば、一部の実施形態は、非常に明るい場面においてはそれぞれ露光不足画像及びで露光過多画像に対してＥＶ−３及びＥＶ＋１を使用する。一部の実施形態は、非常に暗い場面においてはそれぞれ露光不足画像及び露光過多画像に対してＥＶ−１及びＥＶ＋３を使用する。
【０１５２】
図１２の合成処理１２００では、最初に、異なる露光時間（例えば、ルマ画像１３２０Ａ〜１３２０Ｃ）で撮られた３つのルマ画像で始まるＨＤＲ捕捉作動を提供する。処理では、正常露光ルマ画像１３２０Ｂから、３ルマ画像１３２０Ａ〜１３２０Ｃに対応する３つのマスクを生成する（１２１０で）。正常露光ルマ画像１３２０Ｂを使用し、撮影された場面のどの部分が明るいか、どの部分が中間色調化されたか、場面のどの部分が暗いかを識別する。図１３Ａでは、正常露光ルマ画像１３２０Ｂの明区域は、空及び車の車輪を含み、暗区域は山を含み、中間色調区域は車体及び道路を含む。マスクは、ピクセルを合成する１組の重みである。一部の実施形態において、各マスクは、合成される画像と同じ分解能を有する。マスクは、画像として表すことができ、マスク内の値をピクセル値と説明することが有利である、しかし、マスク内のデータは、主として視覚表示のためでなくて、合成時の計算における使用を意図している。
【０１５３】
３つのマスクは、３つのルマ画像１３２０Ａ〜１３２０Ｃに対応する。露光不足ルマ画像１３２０Ａで、明区域において最良の詳細が得られる。従って、露光不足ルマ画像１３２０Ａのマスク１３３０Ａは、正常露光ルマ画像１３２０Ｂ内の光輝ピクセルに対応するピクセルに対して高い値、正常露光ルマ画像１３２０Ｂ内の中間ピクセル及び暗いピクセルに対応するピクセルに対して低い値を有する。露光過多ルマ画像１３２０Ｃで、暗区域において最良の詳細が得られる。従って、露光過多ルマ画像１３２０Ｃのマスク１３３０Ｃは、正常露光ルマ画像１３２０Ｂ内の暗いピクセルに対応するピクセルに対して高い値、正常露光ルマ画像１３２０Ｂ内の中間ピクセル及び光輝ピクセルに対応するピクセルに対して低い値を有する。正常露光ルマ画像１３２０Ｂで、中間色調区域において最良の詳細が得られる。従って、正常露光ルマ画像１３２０Ｂのマスク１３３０Ｂは、正常露光ルマ画像１３２０Ｂ内の中間色調ピクセルに対応するピクセルに対して高い値、正常露光ルマ画像１３２０Ｂ内の光輝ピクセル及び暗いピクセルに対応するピクセルに対して低い値を有する。
【０１５４】
一部の実施形態において、各画像からの別々のピクセルを使用するのではなく、異なるルマ画像１３２０Ａ〜１３２０Ｃからのピクセルを調合する様々な値を有するマスクが得られる。マスク内のピクセルの値が高いほど、対応する画像内の対応するピクセルが合成画像内の対応するピクセルの値に与える影響が大きい。各画像の区域を識別し易いように、マスク１３３０Ａ〜１３３０Ｃは、図１３Ａでは黒色の区域及び白色区域のみを有するが、一部の実施形態のマスクの視覚表示は、灰色のピクセルが含まれる。このような灰色のピクセルは、合成画像内の対応するピクセルの値に影響を与えるが完全には決めない値を表している。
【０１５５】
一部の実施形態において、以下の方程式（１）〜（３）を使用してマスクを生成する。従って、これらの方程式により、３組の重み付け値が得られる双曲線正接に基づいて、３本の曲線が得られ、３組の重み付け値により、上述のように、露光過多画像から暗区域の詳細部を取り、露光不足画像から明区域の詳細を取り、正常露光画像から中間色調の詳細を取ることによってＨＤ画像を合成する初期バイアスが得られる。双曲線正接に基づいて方程式／曲線を使用する代わりに、他の実施形態は、他のタイプのシグモイド又は他の非線形関数／曲線を使用し、合成画像を生成するために画像を選択的に重み付けするのに使用されるマスキング値を指定する。
【０１５６】
本明細書の方程式では、慣例に従い、各変数は、単一の大文字により表され、一部の場合には、大文字の次に、特に異なるマスク又は画像に向けて同じ関数に供される変数が使用された時には単一の小文字の英字がある。画像内の異なる個々のピクセルに向けて異なる値を有する変数は、方程式内の値がピクセル当たりで判断することを示す頭文字の後の［ｘ，ｙ］によって示されており、ｘ及びｙは、画像内のピクセルの座標を表している。異なるピクセルの異なる値を有する変数は、画像内のピクセルの範囲にわたって各ピクセルに対して計算される。方程式は、図１３Ａ内の品目を参照して説明するが、当業者は、これは、説明し易くしたものであり、かつ計算は、その図の特定の場面に限定されないことを理解するであろう。
【０１５７】
一部の実施形態において、以下の方程式を使用してマスク１３３０Ａ〜１３３０Ｃ内のピクセルの値を生成する。
【０１５８】
Ｍｂ［ｘ，ｙ］＝０．５*（ｔａｎｈ（−Ｓｂ*（Ｌｎ［ｘ，ｙ］−Ｔｂ））＋１）          （１）
【０１５９】
Ｍｕ［ｘ，ｙ］＝０．５*（ｔａｎｈ（Ｓｕ*（Ｌｎ［ｘ，ｙ］−Ｔｕ））＋１）          （２）
【０１６０】
Ｍｎ［ｘ，ｙ］＝１−Ｍｂ［ｘ，ｙ］−ｍｕ［ｘ，ｙ］          （３）
【０１６１】
方程式（１）において、Ｍｂ［ｘ，ｙ］は、座標［ｘ，ｙ］での露光過多マスク１３３０Ｃの値を表し、かつ正常露光ルマ画像１３２０Ｂの対応するピクセルのルマ値Ｌｎ［ｘ，ｙ］の関数である。Ｔｂは、露光過多画像の閾値ルマ値である。Ｓｂは、関数の勾配に影響を与える。Ｓｂが本明細書で表示される方程式において、ｔａｎｈは、双曲線正接である。リアルタイムで双曲線正接計算を行う代わりに、一部の実施形態は、ルックアップテーブルを使用して特定の入力に向けて双曲線正接によって生成された値を識別する。一部の実施形態は、双曲線正接の代わりに又はそれと同じく、他の計算の代わりにルックアップテーブルを使用する。
【０１６２】
方程式（２）において、Ｍｕ［ｘ，ｙ］は、座標［ｘ，ｙ］での露光不足マスク１３３０Ａの値を表している。それは、Ｍｂ［ｘ，ｙ］と同様に、正常露光ルマ画像１３２０Ｂの対応するピクセルのルマ値Ｌｎ［ｘ，ｙ］の関数でもある。Ｔｕは、露光不足画像の閾値ルマ値である。Ｓｕは、関数の勾配に影響を与える。方程式（３）において、Ｍｎ［ｘ，ｙ］は、座標［ｘ，ｙ］での通常の露光マスク１３３０Ｂの値を表している。
【０１６３】
露光過多マスク１３３０Ｃの目的は、薄暗区域内のピクセルの影響を増大させ（露光過多ルマ画像１３２０Ｃで良好な詳細が得られる場合）、かつ明区域内のピクセルの影響を増大させる（露光過多ルマ画像１３２０Ｃが一部の場合に飽和状態である場合）ことである。従って、方程式（１）において、露光過多ルマ画像１３２０Ｃからのピクセルの重み付けは、正常露光ルマ画像１３２０Ｂ内の対応するピクセルのルマ値の滑らかな減少する関数である。Ｓｂは、その前に負の符号を有し、Ｓｂの正の値により、一部の実施形態で用いられているように、結果としてルマ値と共に減少する関数になることになることを示している。Ｓｂの正の値に対して、正常露光ルマ画像１３２０Ｂ内のピクセルが明るいほど、合成画像を生成する時に露光過多画像内の対応するピクセルに与えられる重み付けが少ない。
【０１６４】
上述のように、Ｔｂは、露光過多画像の閾値ルマ値である。正常露光ルマ画像１３２０Ｂ内のピクセルがＴｂよりも小さい値を有する時に（閾値より暗い）、露光過多マスク１３３０Ｃの対応するピクセルは、１／２よりも大きい値を有する。正常露光ルマ画像１３２０Ｂ内のピクセルがＴｂの値を有する時に（閾値での）、露光過多マスク１３３０Ｃの対応するピクセルは、１／２の値を有する。正常露光ルマ画像１３２０Ｂ内のピクセルがＴｂよりも大きい値を有する時に（閾値より明るい）、露光過多マスク１３３０Ｃの対応するピクセルは、１／２よりも小さい値を有する。一部の実施形態において、Ｔｂの値は、正常露光ルマ画像１３２０Ｂ内のピクセルのルマの中心値で０．０１５を割ることによって判断される。例えば、正常露光ルマ画像１３２０Ｂ内のピクセルのルマの中心値が０．１である場合に、Ｔｂの値であれば０．１５である。一部の実施形態において、Ｔｂの値は、正常露光ルマ画像１３２０Ｂ内のピクセルのルマの中心値により、０．０２（又は一部の他の値）により判断される。一部の実施形態は、画像の特性に基づいてＴｂを計算する異なる方法を有する。例えば、一部の実施形態は、Ｔｂを中心値ルマからではなくルマ画像（例えば、１３２０Ｂ）の平均的（平均値）ルマに基づいて計算する。
【０１６５】
Ｓｂは、関数Ｍｂ［ｘ，ｙ］が閾値に関していかに迅速にＴｂを変更するかを判断する。Ｓｂの非常に高い値により、結果として急激な変化が発生する。Ｓｂの高い値に対して、正常露光ルマ画像１３２０Ｂ内のピクセルが閾値Ｔｂのすぐ上のルマ値を有すると、従って、マスク１３３０Ｃ内の対応するピクセルは、非常に低い値を有する。マスク内のピクセルの低い値は、露光過多ルマ画像１３２０Ｃ内の対応するピクセルは、合成画像１３４０の対応するピクセルの値に殆ど影響を与えないことになることを意味する。従って、正常露光ルマ画像１３２０Ｂ内のピクセルが閾値のすぐ下のルマ値を有すると、マスク１３３０Ｃ内の対応するピクセルは、非常に高い値（１の最大値で）を有する。露光過多ルマ画像１３２０Ｃ内の対応するピクセルの値により、合成画像１３４０の対応するピクセルの値を殆ど完全に決まることになる。これとは対照的に、Ｓｂの低い値により、従って、閾値と交差する時に漸進的な影響のシフトが発生する。Ｓｂの低い値に対して、正常露光ルマ画像１３２０Ｂ内のピクセルが閾値のすぐ下のルマ値を有すると、従って、マスク１３３０Ｃ内の対応するピクセルは、合成画像１３４０の対応するピクセルに及ぼす影響が５０％を僅かに超える。従って、Ｓｂの低い値に対して、正常露光ルマ画像１３２０Ｂ内のピクセルが閾値のすぐ上のルマ値を有すると、マスク１３３０Ｃ内の対応するピクセルは、合成画像１３４０の対応するピクセルに及ぼす影響が５０％を僅かに下回る。一部の実施形態において、Ｓｂの値は、１０である。
【０１６６】
露光不足マスク１３３０Ａの目的は、明区域内のピクセルの影響を増大させ（露光不足ルマ画像１３２０Ａで良好な詳細が得られる場合）、かつ薄暗区域内のピクセルの影響を低減する（露光不足ルマ画像１３２０Ａが詳細を示すには一部の場合に暗い過ぎる場合）ことである。従って、方程式（２）において、露光不足マスク１３３０Ａ内のピクセルの値は、正常露光ルマ画像１３２０Ｂ内の対応するピクセルのルマ値の増加する関数であるべきである。勾配を決めるＳｕは、その前にマイナスを持たず、従って、Ｓｕの正の値は、結果としてルマの正の関数になる。方程式（２）内の閾値Ｔｕは、方程式（１）において閾値Ｔｂと異なっている。一部の実施形態において、Ｔｕの値は、正常露光ルマ画像１３２０Ｂのルマ中心値に６（又は一部の他の値）を掛けることによって判断される。一部の実施形態において、ルマ中心値及び係数（例えば、６）の積が１よりも大きい時に、Ｔｕの値は１に設定される。一部の実施形態は、画像の特性に基づいてＴｕを計算する異なる方法を有する。Ｓｂの場合と同様に、Ｓｕのマグニチュードにより、露光不足ルマ画像１３２０Ａのピクセルの影響（合成画像１３４０に対する）が正常露光ルマ画像内の対応するピクセルのルマ値の関数としていかに迅速に１３２０Ｂを変更するかが決まる。Ｓｕの高い値は、正常露光ルマ画像１３２０Ｂのピクセルのルマ値が閾値Ｔｕより下から閾値より上になる時に影響なしから影響大への急激な変化をもたらすものである。Ｓｕの低い値は、正常露光ルマ画像１３２０Ｂのピクセルのルマ値が閾値Ｔｕより下から閾値より上になる時に影響なしから影響大への緩やかな変化をもたらすものである。
【０１６７】
通常の露光マスク１３３０Ｂのピクセルは、１から他のマスク１３３０Ａ及び１３３０Ｃ内の対応するピクセルの値を差し引いた値を有する。通常の露光マスク１３３０Ｂは、両方の他のマスクが下位値を有する場合は高い値を、かつ他のマスク（代替的に、そのアセンブリ）のいずれかが高い値を有する場合は低い値を有する。Ｓｕ値が他のマスクを生成するのに使用されるＳｂ値に等しいと仮定すると、他の２つのマスクの結合値は、Ｔｂ及びＴｕの平均値でのピクセルとしては最低である。従って、通常の露光マスク１３３０Ｂは、Ｔｂ及びＴｕの平均値でルマ値を有する正常露光ルマ画像１３２０Ｂ内のピクセルに対応する際にはピクセルに対しては最高値を有する。
【０１６８】
ピクセルの値を制する１つのマスクからピクセルの値を制する別のマスクへの漸進的な遷移を有するマスクの視覚表示は（例えば、Ｓｕ又はＳｂの低いマグニチュードで）、部分的に１つのマスクによりかつ部分的に別のマスクにより影響を与えられた合成画像の区域に対処する中間区域を含む。これとは対照的に、１つのマスクから別のマスクへの急激な遷移を有するマスクの視覚表示であれば（例えば、Ｓｕ又はＳｂの高いマグニチュードで）、灰色のピクセルは（あるとしても）殆どなく、殆ど完全に黒色のピクセル及び白色ピクセルである。マスク１３３０Ａ〜１３３０Ｃは、Ｓｕ及びＳｂの非常に高い値を使用して生成したものであり、従って、灰色のピクセルは有していない。正常露光ルマ画像１３２０Ｂ内のピクセルが閾値Ｔｂよりいくらかでも薄暗いと、露光過多マスク１３３０Ｃでは白色ピクセルが生じる。正常露光ルマ画像１３２０Ｂ内のピクセルが閾値Ｔｂよりいくらかでも明るいと、露光過多マスク１３３０Ｃでは黒色ピクセルが生じる。正常露光ルマ画像１３２０Ｂ内のピクセルが閾値Ｔｕよりいくらかでも明るいと、露光不足マスク１３３０Ａでは黒色のピクセルが生じる。正常露光ルマ画像１３２０Ｂ内のピクセルが閾値Ｔｕよりいくらかでも明るいと、露光過多マスク１３３０Ａでは白色ピクセルが生じる。閾値ＴｕとＴｂの間に存在する正常露光ルマ画像１３２０Ｂ内のピクセルは、通常の露光マスク１３３０Ｂにおいて、結果として白色ピクセルになる。正常露光ルマ画像１３２０Ｂ内のピクセルが閾値ＴｕとＴｂの間にないと、通常の露光マスク１３３０Ｂでは黒色ピクセルが生じる。要約して言えば、露光不足マスク１３３０Ａでは、光輝ピクセルの重み全体が得られ（合成画像において）、通常の露光マスク１３３０Ｂでは中間位置ピクセルの重み全体が得られ、露光過多マスクでは暗いピクセルの重み全体が得られる。マスク１３３０Ａ〜１３３０Ｃ内の極端な遮断が行われ、その理由は、この極端な遮断により、白黒図においては重み付け高、重み付け低の様々な区域を識別しやすくなるからである。しかし、Ｓｂ及びＳｕの低い値を有する実施形態は、対応するマスクが様々な値を含む。視覚的には、マスクは、合成画像内のピクセルのルマにわたって共有の影響力を表す中間区域を含む。
【０１６９】
露光過多画像マスクを生成するために、一部の実施形態は、上述の値から閾値ルマ値Ｔｂを調節する。一部の実施形態は、閾値ルマ値Ｔｂを調節するが、その理由は、露光過多画像のＳＮ比は、露光時間の増加と共に減少するからである（例えば、露光時間が長いと、画像内のノイズが増加する）。従って、合成画像においてノイズを低減するために、一部の実施形態は、最終合成画像に含まれる露光過多画像が少なくなるように閾値ルマ値Ｔｂを調節する。一部の実施形態において、以下の方程式を使用して、閾値を調節する。
【０１７０】
Ｔｂ＝Ｔｂ*０．５*（ｔａｎｈ（４*（Ｆｂ−Ｆｔ））＋１）          （４）
【０１７１】
方程式（４）において、第１のＴｂは、調節後の閾値ルマ値であり、第２のＴｂは、調節前の閾値ルマ値である。Ｆｂは、露光過多画像のデシベル（ｄＢ）でのＳＮ比である。Ｆｔは、閾値ＳＮ比である。ＳＮ比がＦｔ閾値よりも大きいと、露光過多画像の閾値ルマが増大し、それによって合成画像１３４０に大きな影響を与えるピクセルの数が露光過多画像内で増加する。一部の実施形態において、Ｆｔは、２４ｄＢである。一部の実施形態内のモバイルデバイス（又はモバイルデバイスの試作モデル）の較正中、ＳＮ比を一連の光レベル（例えば、５つの光レベル）に対して測定する。これらの測定したＳＮ比を使用して特定の画像に対してＳＮ比を判断する。一部の実施形態において、較正を各モバイルデバイスに行う。他の実施形態において、較正をモバイルデバイスのサンプル（１つ又はそれよりも多く）に行って、そのタイプのモバイルデバイスの較正点を判断し、次に、これらの較正点を同じタイプの他のモバイルデバイスに使用する。一部の実施形態は、デフォルト較正点を有するが、新しい較正点を特定のモバイルデバイスに対して計算することを可能にする。特定の画像の光レベルは、画像が捕捉された時にモバイルデバイスにより判断される。較正されたモバイルデバイスを使用する実施形態において、光レベルに基づいて、画像のＳＮ比は、較正点のＳＮ比から補間される。
【０１７２】
一部の実施形態において、マスキングが個々のピクセルに基づくと、結果としてコントラストの損失になる可能性がある。近くのピクセルに適合しないピクセル（他の暗区域内の明るいピクセルのような）が受ける影響がそのピクセル値に最良の詳細が得られる画像ではなくその区域に最良の詳細が得られる画像による方が大きい時により多くの詳細は維持される。例えば、このような実施形態において、明るい背景内の暗いピクセルの合成値が最も影響を受けるのは、暗いピクセルに向けて詳細が得られるのに有効である露光過多画像によってではなく、明るいピクセル（背景のような）に向けて詳細が得られるのに有効である露光不足画像の対応するピクセルである。更に、マスクをぼけさせることなく合成すると、重みが空間的に滑らかでないので異なる露光から導出されたピクセル間の高周波遷移が合成画像内に発生する可能性がある。従って、一部の実施形態は、マスクをぼけさせて、光と暗区域の境界でコントラストを改善するためにマスクをぼけさせることに加えて又はその代わりに、空間的に重みを滑らかにすることによって合成画像において高周波遷移を低減する。従って、一部の実施形態において、処理１２００は、光と暗区域の境界でコントラストを改善し、及び／又は合成画像において高周波遷移を低減するようにマスクを調節する（１２１５で）。従って、一部の実施形態のマスクは、合成画像１３４０の重みとして適用される前にぼける。一部のこのような実施形態において、以下のような方程式を使用してマスクをぼかす。
【０１７３】
Ｍｂ［ｘ，ｙ］＝ｆｉｌｔｅｒ（Ｍｂ［ｘ，ｙ］、ｋ）          （５）
【０１７４】
Ｍｕ［ｘ，ｙ］＝ｆｉｌｔｅｒ（Ｍｕ［ｘ，ｙ］、ｋ）          （６）
【０１７５】
方程式（５）において、第１のＭｂ［ｘ，ｙ］は、ぼかしフィルタが適用された後のマスクを表し、第２のＭｂ［ｘ，ｙ］は、ぼかしフィルタが適用される前のマスクを表している。方程式（５）及び（６）内のフィルタは、フィルタｋを使用する２Ｄフィルタ作動である。項ｋは、２Ｄガウスフィルタカーネルである。一部の実施形態において、７ｘ７又は９ｘ９フィルタカーネルが、３のピクセル分散に使用される。方程式（６）において、第１のＭｕ［ｘ，ｙ］は、ぼかしフィルタが適用された後のマスクを表し、第２のＭｕ［ｘ，ｙ］は、ぼかしフィルタが適用される前のマスクを表している。
【０１７６】
フィルタカーネル（ｋ）のサイズは、ぼかし作動の結果に影響を与える可能性がある。ｋの値が大きいと、その結果、大きなハロー効果が発生する可能性があるが、ｋの値が小さいと、その結果、区域内のコントラストの損失が発生する可能性がある。ぼかしは、マスクにより、個々のピクセルの明度に基づいて重みが得られるのではなく、ピクセルがある区域の明度に基づいて重みが得られることを保証する。一部の実施形態において、それによって複数の範囲（暗、中間色調、及び／又は明）からのピクセルを有する区域内のコントラストが改善する。一部の実施形態において、方程式（５）及び（６）を方程式（３）の前に実行し、通常の露光マスク１３３０Ｂが方程式（１）及び（２）によって生成されるマスクによってではなく、方程式（５）及び（６）によって生成されるぼけたマスクから生成されるようにする。
【０１７７】
マスク生成の以上の説明では、他のルマ画像１３２０Ａ及び１３２０Ｃからではなく、正常露光ルマ画像１３２０Ｂからのデータを使用するマスクの生成を説明した。しかし、正常露光ルマ画像１３２０Ｂを使用して３つのマスク１３３０Ａ〜１３３０Ｃの全てを生成すると、露光過多画像の誇張された（例えば、飽和した）区域が使用される条件になる可能性がある。それはまた、暗すぎる露光不足画像の区域が使用される条件になる可能性もある。従って、一部の実施形態において、ルマ画像から生成するマスクは、通常の画像からルマ値の代わりに又はそれに加えて、露光過多画像及び露光不足画像からのルマ値を使用して生成する。図１３Ｂは、処理１２００を実行して各画像からマスク１３３０Ａ〜１３３０Ｃを生成する例を示している。図１３Ｂでは、露光不足マスク１３３０Ａは露光不足ルマ画像１３２０Ａから生成され、露光過多マスク１３３０Ｃは露光過多ルマ画像１３２０Ｃから生成され、通常の露光マスク１３３０Ｂは露光過多ルマ画像１３２０Ｃ及び露光不足ルマ画像１３２０Ａから生成される。図１３Ｂは通常の露光マスクが露光不足ルマ画像１３２０Ａ及び露光過多ルマ画像１３２０Ｃを使用して生成されるように示すが、一部の実施形態において、方程式（３）を使用して露光不足マスク１３２０Ａ及び露光過多マスク１３２０Ｃから通常の露光マスク１３３０Ｂを生成する。一部の実施形態において、露光不足マスク１３２０Ａ及び露光過多マスク１３２０Ｃがぼけた後に、露光不足マスク１３２０Ａ及び露光過多マスク１３２０Ｃから通常の露光マスク１３３０Ｂを生成する。
【０１７８】
露光不足画像及び露光過多画像からマスクを生成する一部の実施形態において、方程式（１）〜（６）と類似の方程式を使用してマスクを生成するが、露光過多画像からのルマ値（Ｌｂ［ｘ，ｙ］）は、露光過多マスクのＬｎ［ｘ，ｙ］の代わりをし、露光不足画像からのルマ値（Ｌｕ［ｘ，ｙ］）は、露光不足マスクのＬｎ［ｘ，ｙ］の代わりをし、閾値が、相応に調節される。一部のこのような実施形態において、露光過多マスク及び露光不足マスクを計算する閾値は、それぞれの画像のルマ中心値から導出される。他の実施形態において、閾値は、正常露光画像のルマ中心値から導出される（例えば、正常露光画像からマスクを生成する上述の実施形態の場合と同じ方法で）。他の実施形態において、閾値は、Ｔｂに対しては（露光過多マスクに向けて）０．４のデフォルト値、Ｔｕに対しては（露光不足マスクに向けて）０．５に設定される。更に他の実施形態において、閾値は、Ｔｂに対しては（露光過多マスクに向けて）０．５のデフォルト値、Ｔｕに対しては（露光不足マスクに向けて）０．５に設定される。
【０１７９】
処理１２００後に、マスク（例えば、マスク１３３０Ａ〜１３３０Ｃ）が生成される（１２１０で）。処理は、次に、各個々のルマ露光（例えば、１３２０Ａ〜１３２０Ｃ）から取った詳細を含む合成ルマ画像（例えば、ルマ画像１３４０）を生成する（１２２０で）。合成ルマ画像１３４０においては、正常露光ルマ画像１３２０Ｂの車体及び道路からの詳細、露光過多ルマ画像１３２０Ｃの山からの詳細、及び露光不足ルマ画像１３２０Ａの空及び車輪からの詳細の全てが存在する。一部の実施形態において、以下の方程式を使用してルマ画像１３３０Ａ〜１３３０Ｃを合成する。
【０１８０】
Ｌｃ［ｘ，ｙ］＝Ｅｂ*Ｌｂ［ｘ，ｙ］*Ｍｂ［ｘ，ｙ］＋Ｅｎ*Ｌｎ［ｘ，ｙ］*Ｍｎ［ｘ，ｙ］＋Ｅｕ*Ｌｕ［ｘ，ｙ］*Ｍｕ［ｘ，ｙ］          （７Ａ）
【０１８１】
方程式（７Ａ）において、Ｌｃ［ｘ，ｙ］は、合成画像１３４０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌｂ［ｘ，ｙ］は、露光過多（明）ルマ画像１３２０Ｃ内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌｎ［ｘ，ｙ］及びＬｕ［ｘ，ｙ］は、それぞれ、正常露光ルマ画像１３２０Ｂ及び露光不足ルマ画像１３２０Ａのルマ値である。２Ｅｂは、露光過多ルマ画像１３２０Ｃの露光の露光倍率である。Ｅｎ及びＥｕは、それぞれ、正常露光ルマ画像１３２０Ｂ及び露光不足ルマ画像１３２０Ａの対応する倍率である。Ｍｂ［ｘ，ｙ］は、座標［ｘ，ｙ］での露光過多マスク１３３０Ｃの値を表している。Ｍｎ［ｘ，ｙ］及びＭｕ［ｘ，ｙ］は、それぞれ、正常露光マスク１３３０Ｂ及び露光不足マスク１３３０Ａの値を表している。マスク１３３０Ｃ内のピクセルの値により、露光過多ルマ画像１３２０Ｃ内の対応するピクセルがどれだけ合成画像に影響を与えるかが決まる。マスク１３３０Ｂ内のピクセルの値により、正常露光ルマ画像１３２０Ｂ内の対応するピクセルがどれだけ合成画像に影響を与えるかが決まる。マスク１３３０Ａ内のピクセルの値により、露光不足ルマ画像１３２０Ａ内の対応するピクセルがどれだけ合成画像に影響を与えるかが決まる。各マスク１３３０Ａ〜１３３０Ｃにおいて、値が高いほど、合成画像に与える影響が大きいことを意味する。
【０１８２】
露光倍率（Ｅｕ、Ｅｎ、及びＥｂ）は、画像の異なる露光時間を補正する（例えば、露光過多画像は、露光時間が正常露光画像の４倍である場合に、Ｅｂ＝Ｅｎ／４）。画像は、露光が多いほどルマ値が高い。その理由は、露光時間が長くなるからであり、データが「より良い」からでも、値が表す画像の部分が明るくなるからでもない。露光の長時間化を補正しなければ、図示の情報よりも露光過多画像からのデータが結果を制する。一部の実施形態において、露光時間の比率は、４以外のものである。露光不足持続時間：正常露光持続時間の比率は、一部の実施形態では、正常露光持続時間：露光過多持続時間の比率と異なっている。このような実施形態において、露光倍率は、露光時間の異なる比率を反映するように調節される。
【０１８３】
ピクセルの値が対応するセンサに到達する光の線形関数であるフォーマットを使用する実施形態において、露光倍率により、異なる露光時間により引き起こされたピクセル値内の差が均一に補正される。ピクセルの値がセンサに到達する光の線形関数である時に、他の要素（例えば、特定のセンサにより捕捉された場面の部分の変化する明度）がない場合には、ピクセルの値は、同じ場面の正常露光画像内の対応するピクセルの値の４倍の通常の露光時間に露光過多画像において４倍になる。このようなフォーマットにおいて、同じ場面の各露光内のピクセルは、互いに対して同じ値を有する。すなわち、正常露光画像内の１つのピクセルが正常露光画像内の別のピクセルの値の２倍である場合に、通常の画像内の第１のピクセルに対応する露光過多画像のピクセルは、通常の画像内の第２のピクセルに対応する露光過多画像内のピクセルの２倍の値を有する。
【０１８４】
一部のモバイルデバイスは、センサに到達する（飽和点まで）光量の線形関数である成分（例えば、ルミナンス）を含むフォーマットで画像を捕捉する。しかし、一部のこのようなデバイスは、非線形変換（例えば、ガンマ補正）を使用し、自動的にルミナンス画像をルマ画像に変換する。ルミナンスからルマへの非線形変換のために、ルマ値は、露光時間の線形関数でない。ルマ値は、線形関数でなく、その理由は、ガンマ補正は、ルミナンス範囲の中心及び高い両端の近くの値よりもルミナンス範囲の底部の近くの値を変更するからであり、長い露光時間に撮られる露光過多画像は、正常露光画像より明るくて、カメラのルミナンス範囲の上部の近くに集まるルミナンス値を有する。短い露光時間に撮られる露光不足画像は、正常露光画像より暗くて、カメラのルミナンス範囲の底部の近くに集まるルミナンス値を有する。正常な露光で撮られた画像は、カメラのルミナンス範囲の中心の近くに集まるルミナンス値を有する。異なる露光の明度の異なるレベルのために、ガンマ補正は、異なる方法で異なる露光の対応する被写体の相対的な明度を変更することができる。異なる露光内の被写体の相対的な明度を変えると、画像を合成する結果がその影響を受ける。
【０１８５】
従って、値が露光時間の線形関数であるフォーマットに画像を戻すために、一部の実施形態は、画像のルマ（Ｙ’）成分のガンマ補正を逆転させて、ルミナンス（Ｙ）画像を生成する。一部のこのような実施形態は、作動をルミナンス画像に行い、次に、作動後に新しいガンマ補正を適用し、ルマ（Ｙ’）成分で最終画像を生成する。逆ガンマ補正は、一部の実施形態では合成中に行われる。一部のこのような実施形態は、方程式（７Ａ）を使用するよりも、むしろ以下の方程式（７Ｂ）を使用して合成画像を生成する。
【０１８６】
Ｌｃ［ｘ，ｙ］＝Ｅｂ*Ｌｂ［ｘ，ｙ］∧（１／γ）*Ｍｂ［ｘ，ｙ］＋Ｅｎ*Ｌｎ［ｘ，ｙ］∧（１／γ）*Ｍｎ［ｘ，ｙ］＋Ｅｕ*Ｌｕ［ｘ，ｙ］∧（１／γ）*Ｍｕ［ｘ，ｙ］          （７Ｂ）
【０１８７】
方程式（７Ｂ）は、ルマ値Ｌｂ［ｘ，ｙ］、Ｌｎ［ｘ，ｙ］、及びＬｕ［ｘ，ｙ］が（１／γ）の累乗に上げられた点を除き、方程式（７Ａ）と殆ど同じである。また、Ｌｃ［ｘ，ｙ］値は、ルマ値ではなくルミナンス値である。一部の実施形態において、モバイルデバイスは、ガンマ（γ）（一部の実施形態において、ガンマは、１／２．２に等しい）の累乗に上げられた捕捉された画像のルミナンス値に基づくルマ値を供給する。一部の実施形態のモバイルデバイスは、供給された画像のメタデータとしてガンマの値を供給する。一部のこのような実施形態において、供給されたガンマを方程式（７Ｂ）内で用いて、画像が合成される間に最初のルミナンス値を再現する。他のこのような実施形態は、画像を合成する前に逆ガンマ補正を行って、合成作動とは別の作動において生成されたルミナンス値で方程式（７Ａ）を使用する。
【０１８８】
同様に、上述の方程式をルマ画像から生成されたマスクに関して説明したが、当業者は、一部の実施形態のマスクが他のフォーマットで画像から生成されることを理解するであろう。例えば、一部の実施形態において、マスクは、ルマバージョンではなく画像の１つ又はそれよりも多くのルミナンスバージョンから生成される。一部の実施形態において、マスク（例えば、ルマ又はルミナンス）を生成するのに使用される画像のタイプは、合成画像を生成するのに使用される画像のタイプと同じである。他の実施形態において、マスク（例えば、ルマ又はルミナンス）を生成するのに使用される画像のタイプは、合成画像を生成するのに使用される画像のタイプと異なっている。
【０１８９】
方程式（７Ａ）又は（７Ｂ）を使用して合成画像を生成するために、露光過多画像（Ｅｂ）の倍率は、一部の実施形態において露光時間の実際の比率から調節される。一部の実施形態は、以下の方程式を使用し、影を強調させるように露光過多画像Ｅｂの倍率を調節する。
【０１９０】
Ｅｂ＝Ｅｎ／（Ｅｒ＋（２／３*（Ｔｓ−０．２５）*（１−Ｅｒ）*（１−ｔａｎｈ（１２Ｎ−３．５））））          （８）
【０１９１】
方程式（８）において、Ｅｂは露光過多画像の倍率であり、Ｅｎは、正常露光画像の倍率である。Ｅｒは、正常露光画像の露光時間：露光過多画像の露光時間の比率であり（例えば、露光過多画像の露光の長さが正常露光画像の４倍である場合に、１／４）、Ｔｓは、閾値係数である。一部の実施形態において、Ｔｓは、０．４に設定される。Ｎは、ルマ中心値である（０〜１のルマスケールで）。ルミナンス中心値は、一部の実施形態においてルマ中心値の代わりにＮに使用される。
【０１９２】
一部の実施形態において、方程式（７Ａ）又は（７Ｂ）が実行されると、計算された合成画像は、正規化により特定の範囲（例えば、０〜１又は０〜２５５）にマップされる（例えば、再スケーリングされる）。
【０１９３】
Ｌｃ［ｘ，ｙ］＝Ｅｃ*Ｌｃ［ｘ，ｙ］／ｍａｘ（Ｌｃ）          （９Ａ）
【０１９４】
方程式（９Ａ）において、第１のＬｃ［ｘ，ｙ］は、正規化後の合成画像１３４０内の座標［ｘ，ｙ］でのピクセルのルマである。第２のＬｃ［ｘ，ｙ］は、正規化前の合成画像内の座標［ｘ，ｙ］でのピクセルのルマである。ｍａｘ（Ｌｃ）は、正規化前の合成画像内のあらゆるピクセルの最大ルマ値であり、Ｅｃは、範囲を指定する倍率である。一部の実施形態は、１*Ｅｕである最高可能ピクセル値より正規化する。これは、ＥＶ０と比較されたＨＤＲ画像の過度明度を変更することを回避するために行われる。
【０１９５】
一部の実施形態は、ｍａｘ（Ｌｃ）ではなく異なる正規化係数を適用する。方程式（９Ｂ）により、合成画像を正規化する代替方程式が得られる。
【０１９６】
Ｌｃ［ｘ，ｙ］＝Ｅｃ*Ｌｃ［ｘ，ｙ］／Ｅｕ          （９Ｂ）
【０１９７】
方程式（９Ａ）において、第１のＬｃ［ｘ，ｙ］は、正規化後の合成画像１３４０内の座標［ｘ，ｙ］でのピクセルのルマである。第２のＬｃ［ｘ，ｙ］は、正規化前の合成画像内の座標［ｘ，ｙ］でのピクセルのルマである。Ｅｎ／Ｅｂは、露光過多ルマ画像の露光の露光倍率であり（例えば、露光過多画像の露光時間が通常の露光の４倍である場合に、Ｅｎ／Ｅｂ＝４）、Ｅｃは、範囲を指定する倍率である。一部の実施形態において、Ｅｃは、１に設定され、他の実施形態において、Ｅｃは、１．２に設定され、他の実施形態において、Ｅｃは、他の値に設定される。
【０１９８】
一部の実施形態において、捕捉作動は、方程式（９Ａ）又は（９Ｂ）の再スケーリング後に終了する。このような実施形態において、次に、処理１２００で合成ルマ画像１３４０のガウスぼかし合成１３５０バージョンを生成した時に（１２３０で）、レンダリング作動が始まる。ガウスぼかし合成画像１３５０は、個々のマスクのガウスぼけを作成する理由と類似の理由で作成される。ガウスぼかし合成画像１３５０は、処理１２００の他の部分で他の画像を調節する重みとして使用され、ぼかしは、その回りのピクセルと非常に異なる値を有するピクセルの効果（最終画像上で）を高める。ガウスぼけは、方程式（５）及び（６）のマスクぼかしと類似の処理によって生成される。
【０１９９】
Ｇ［ｘ，ｙ］＝ｆｉｌｔｅｒ（Ｌｃ［ｘ，ｙ］、ｋ）          （１０）
【０２００】
方程式（１０）において、Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０を表している。Ｌｃ［ｘ，ｙ］は、合成画像１３４０の（ｘ、ｙ）でのピクセルのルマを表している。フィルタは、フィルタｋを使用する２Ｄフィルタ作動である。項ｋは、２Ｄガウスフィルタである。一部の実施形態において、７ｘ７又は９ｘ９フィルタが、３のピクセル分散と共に使用される。同じフィルタ及びカーネルは、一部の実施形態において、方程式（５）及び（６）においてマスクをぼかし、かつ方程式（１０）においてガウスぼかし画像をぼかすために使用され、他の実施形態において、異なるフィルタ及び／又はカーネルが使用される。
【０２０１】
マスクの場合と同様に、ｋの値が大きいと、その結果、大きなハロー効果が発生する可能性があるが、ｋの値が小さいと、その結果、区域内のコントラストの損失が発生する可能性がある。ぼかしは、ガウスぼかし合成画像１３５０により、個々のピクセルの明度に基づいて重みが得られるのではなくピクセルがある区域の明度に基づいて重みが得られることを保証する。一部の実施形態において、区域に基づく重み付けにより、複数の範囲（暗、中間色調、及び／又は明）からのピクセルを有する区域内のコントラストが改善する。
【０２０２】
ガウスぼかし合成画像１３５０が生成された状態で、処理１２００では、強調表示−減衰画像１３６０Ａ及び影より強調された画像１３６０Ｂを生成する（１２４０で）。陰影−強化画像１３６０Ｂは、画像の暗区域内の光レベルの拡張された範囲及び明区域内の光レベルの圧縮された範囲を含む。換言すると、暗区域において、ルマ値間の差は、陰影−強化画像において拡張される。例えば、０．０２のルマの合成画像１３４０内のピクセルは、０．１４の陰影−強化画像内のピクセルに変換されることがあり、０．０３のルマの合成画像１３４０内のピクセルは、０．１９の陰影−強化画像内のピクセルに変換されることがあり得る。各々の場合に、ピクセルのルマ値のマグニチュードは増加するが、より重要なことに、ルマ値のマグニチュード内の差が増加する。より明るい区域内のピクセルに対して、ピクセルのルマ値のマグニチュードも増加するが、２つのピクセルのルマ値のマグニチュード間の差は減少する。換言すると、影の強調は、範囲を通して明度値を増大させるが、範囲の下端において、隣接値間の増加は、範囲の上端におけるものよりも大きい（すなわち、暗区域の明度の増加は、明区域の明度の増加よりも大きい）。
【０２０３】
同様に、強調表示−減衰画像１３６０Ａは、明るい方のピクセルのルマの範囲を拡張し、合成画像１３４０の暗い方のピクセルのルマの範囲を収縮する。換言すると、強調表示減衰は、範囲を通して明度値を低減するが、範囲の上端において、隣接値間の減少は、範囲の下端におけるものよりも大きい（すなわち、暗区域の明度の減少は、明区域の明度の増加よりも大きい）。
【０２０４】
一部の実施形態において、陰影−強化画像１３６０Ｂは、以下の方程式によって生成される。
【０２０５】
Ｌｓ［ｘ，ｙ］＝Ｌｃ［ｘ，ｙ］／（Ｂｓ*Ｇ［ｘ，ｙ］＋（１−Ｂｓ））          （１１）
【０２０６】
方程式（１１）において、Ｌｓ［ｘ，ｙ］は、陰影−強化画像１３６０Ｂ内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｂｓは、倍率である。Ｂｓは、一部の実施形態において０．８３に等しい。他の実施形態において、他の値が使用される。
【０２０７】
強調表示−減衰画像１３６０Ａは、一部の実施形態において以下の方程式によって生成される。
【０２０８】
Ｌｈ［ｘ，ｙ］＝１−（（１−Ｌｃ［ｘ，ｙ］）／（（１−Ｂｈ）*（１−Ｇ［ｘ，ｙ］）＋Ｂｈ））          （１２）
【０２０９】
方程式（１２）において、Ｌｈ［ｘ，ｙ］は、強調表示−減衰画像１３６０Ａ内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｂｓは、倍率である。一部の実施形態において、Ｂｓは、０．７に等しい。他の実施形態において、他の値が倍率に使用される。
【０２１０】
処理１２００は、陰影−強化画像１３６０Ｂ及び強調表示−減衰画像１３６０Ａを合成して合成画像１３７０を作成する（１２５０で）。一部の実施形態の合成画像１３７０は、以下の方程式を使用して生成される。
【０２１１】
Ｌｃ［ｘ，ｙ］＝（Ｌｓ［ｘ，ｙ］*（ｌ−Ｇ［ｘ，ｙ］））＋（Ｌｈ［ｘ，ｙ］*Ｇ［ｘ，ｙ］）          （１３）
【０２１２】
Ｌｃ［ｘ，ｙ］は、合成画像１３７０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌｈ［ｘ，ｙ］は、強調表示−減衰画像１３６０Ａ内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌｓ［ｘ，ｙ］は、陰影−強化画像１３６０Ｂ内の座標［ｘ，ｙ］でのピクセルのルマ値である。陰影−強化画像１３６０Ｂ及び強調表示−減衰画像１３６０Ａの組合せは、方程式（１３）において重み付けされるように、画像の明区域及び暗区域において詳細を強調する正味効果を有する。一部の実施形態において、陰影−強化画像１３６０Ｂ及び強調表示−減衰画像１３６０Ａを合成することの一部として、許容範囲の上部よりも大きいルマを有するあらゆるピクセルは、許容範囲の上部まで低減される（例えば、０〜１の範囲の１．１のルマは、１のルマに低減される）。
【０２１３】
一部の実施形態は、この時点でルマ値を増大及び減衰するのを止めて作動１２６０に移動する。しかし、一部の実施形態において、画像１３６０Ａ及び１３６０Ｂを合成することは、中間色調ピクセルの増大も含む。一部のこのような実施形態は、中間色調を強調するために以下の方程式を実行する。
【０２１４】
Ｌｃ［ｘ，ｙ］＝Ｌｃ［ｘ，ｙ］∧（２∧（（Ｂｍ*Ｇ［ｘ，ｙ］*（１−Ｇ［ｘ，ｙ］））∧２）          （１４）
【０２１５】
方程式（１４）において、第１のＬｃ［ｘ，ｙ］は、中間色調ピクセルの強調後の合成画像１３７０内の座標［ｘ，ｙ］でのピクセルのルマ値である。第２のＬｃ［ｘ，ｙ］は、中間色調ピクセルの強調前の合成画像内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｂｍは、増大曲線を判断する倍率である。一部の実施形態は、他の方程式を使用して中間色調を強調する。上述のように、一部の実施形態は、中間色調を強調しない。
【０２１６】
合成ルマ画像１３４０（例えば、方程式（７Ａ）を使用して）ではなく合成画像ルミナンス画像１３４０（例えば、方程式（７Ｂ）を使用して）を生成する一部の実施形態において、陰影−強化画像１３６０Ｂ、強調表示−減衰画像１３６０Ａ、及び合成画像１３７０は、ルマ画像ではなくルミナンス画像である。すなわち、画像１３６０Ａ及び１３６０Ｂ及び１３７０が、全てルミナンス画像であるのは、ルマ画像１３４０ではなくルミナンス画像１３４０から生成されるからである（直接、間接に関わらず）。一部のこのような実施形態において、ルミナンス画像１３７０は、ガンマ補正（例えば、ガンマの累乗に画像１３７０のルミナンス値を上げる）によりルマ画像１３７０に変換される。一部の実施形態のモバイルデバイスは、ルマ画像１３７０にルミナンス画像１３７０を変換するのに使用されるガンマ値を供給する。ガンマ値は、一部の実施形態では１／２．２である。
【０２１７】
様々な合成処理では、値の利用可能な範囲の１つの小さい区域内に集まったルマ値を有する画像を生成することができる。例えば、画像は、利用可能なスケールの５０％より殆ど全て暗いピクセルを有するか、又は利用可能なスケールの５０％より殆ど全て明るいピクセルを有する場合がある。画像内のルマ値の範囲を増大させて利用可能なスケールを利用するために、一部の実施形態の処理１２００では、合成画像１３７０のルマバージョン上でヒストグラム拡張を適用して最初の正常露光ルマ画像１３２０Ｂの大体のルマ分布に戻す（１２６０で）。このヒストグラム拡張により、合成画像１３７０のルマのヒストグラムが生成されて、画像１３７０に対して０．５百分率と９９．５百分率間のルマの範囲を判断する。処理は、次に、正常露光ルマ画像１３２０Ｂのピクセルに対して同じ判断をする。処理は、次に、合成画像１３７０のピクセルに以下の方程式を適用する。
【０２１８】
Ｌｆ［ｘ，ｙ］＝（Ｌｃ［ｘ，ｙ］−Ｌ１）*（（Ｈ２−Ｌ２）／（Ｈ１−Ｌ１））＋Ｌ２          （１５）
【０２１９】
方程式（１５）において、Ｌｆ［ｘ，ｙ］は、合成画像１３８０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌｃ［ｘ，ｙ］は、合成画像１３７０内の座標［ｘ，ｙ］でのピクセルのルマ値である。Ｌ１は、合成画像１３７０内のピクセルの９９．５％より暗いルマ値である。Ｈ１は、合成画像１３７０内のピクセルの９９．５％より明るいルマ値である。Ｌ２は、正常露光ルマ画像１３２０Ｂ内のピクセルの９９．５％より暗いルマ値である。Ｈ２は、正常露光ルマ画像１３２０Ｂ内のピクセルの９９．５％より明るいルマ値である。一部の実施形態において、百分率は、異なる場合がある。
【０２２０】
このヒストグラム拡張では、正常露光ルマ画像１３２０Ｂと同じ全体的な照明範囲の条件が得られる。百分率による遮断の理由は、範囲外のルマのピクセルが最初の正常露光ルマ画像１３２０Ｂと比較して圧縮され過ぎるか又は広過ぎる範囲の画像を製造することを防止することである。一部の実施形態は、次に、利用可能な範囲の上部よりも大きいルマ値を有するピクセルのルマ値を範囲の最高値に変更する。一部の実施形態は、利用可能な範囲の底部よりも小さいルマ値を有するピクセルのルマ値を範囲の最小値に変更する。
【０２２１】
一部の実施形態は、利用可能なルマの範囲全体を利用するためにルマ値をあらゆる範囲（例えば、利用可能な範囲全体）に拡張する。例えば、一部の実施形態は、最初の正常露光ルマ画像１３２０Ｂが狭い範囲のルマを有する時にルマの範囲全体に拡張する。ヒストグラム拡張後に、処理１２００は、次に終了する。
【０２２２】
ヒストグラム拡張の以上の説明では、ルマ合成画像１３７０にヒストグラムを適用する実施形態を説明した。しかし、一部の実施形態において、ヒストグラム拡張はルミナンス合成画像１３７０に適用され、ガンマ補正は、合成画像１３８０のルマバージョンを生成するために最終合成画像１３８０のルミナンスバージョンに適用される。
【０２２３】
Ｃ．色度チャンネル画像の合成
ルマ、青色色度、赤色色度（Ｙ’ＣｂＣｒ）フォーマット又はルミナンス、青色色度、赤色色度（ＹＣｂＣｒ）フォーマットの画像は、色情報を伝達する色度成分（Ｃｂ及びＣｒ）を有する。処理１２００は、それらのフォーマット内で画像のルマ（又はルミナンス）成分を合成するが、一部の実施形態は、ルマ成分の合成とは別に画像１３１０Ａ〜１３１０Ｃの色度チャンネル画像を合成する。一部の実施形態において、ルマ画像を合成する際に使用される同じマスクが、色度画像を合成する際に使用される。図１４は、色度チャンネル画像を合成する一部の実施形態の処理１４００を示している。図１４を図１５に関連して説明する。図１５は、一部の実施形態では色度チャンネル画像を合成する例を示している。図１５は、露光不足色度チャンネル画像１５２０Ａ、正常露光色度チャンネル画像１５２０Ｂ、露光過多色度チャンネル画像１５２０Ｃ、合成色度チャンネル画像１５３０、及びルマ合成からインポートされたデータ１５４０を含む。露光不足色度チャンネル画像１５２０Ａは、画像１３１０Ａからの色度値（例えば、Ｃｒ及びＣｂ）を含む。正常露光色度チャンネル画像１５２０Ｂは、画像１３１０Ｂからの色度値（例えば、Ｃｒ及びＣｂ）を含む。露光過多色度チャンネル画像１５２０Ｃは、画像１３１０Ｃからの色度値（例えば、Ｃｒ及びＣｂ）を含む。一部の実施形態において、色度チャンネル画像（Ｃｂ及びＣｒ）の各組には、同じ作動が行われる。一部の実施形態の合成色度画像１５３０は、色度データの２つのチャンネルも含む。当業者は、一部のこのような実施形態において、合成処理が別々に各色度チャンネルに行われることを理解するであろう。しかし、明瞭さを期すために、色度合成処理での下記の説明では、「合成画像の１つのチャンネルのピクセル」ではなく、むしろ「合成画像のピクセル」に言及する。
【０２２４】
処理１４００は、露光過多、露光不足、及び正常露光のマスク（例えば、ルマ合成処理１２００中に生成されるマスク）を受信する（１４１０で）ことによって始まる。図１５では、インポートされたデータ１５４０は、これらのマスクを含む。一部の実施形態において、このようなマスクは、処理１４００に対してはルマ合成処理におけるマスクのコピーではなく別々に生成される。一部の実施形態において、ルマ合成と異なるマスクが色度合成するのに使用される。例えば、一部の実施形態において、色度合成のマスクは、最終ルマ合成画像から生成される。一部の実施形態は、正常露光ルマ画像から１組のマスクを、個々のルマ画像から別の１組のマスクを生成し、異なるタイプの画像成分を合成するのに各組を使用する（例えば、ルマに一方、色度に他方）。
【０２２５】
マスクが受信（又は生成）された後に、処理１４００は、マスク（例えば、マスク１３３０Ａ〜１３３０Ｃ）から合成画像の１つの色度チャンネル及び１５２０Ａ〜１５２０Ｃ色度画像の１つのチャンネル（すなわち、Ｃｂ又はＣｒ）を生成する（１４２０で）。一部の実施形態において、色度画像１５２０Ａ〜１５２０Ｃのチャンネルを以下の方程式を使用して合成する。
【０２２６】
Ｃｃ［ｘ，ｙ］＝Ｅｂ*Ｃｂ［ｘ，ｙ］*Ｍｂ［ｘ，ｙ］＋Ｅｎ*Ｃｎ［ｘ，ｙ］*Ｍｎ［ｘ，ｙ］＋Ｅｕ*Ｃｕ［ｘ，ｙ］*Ｍｕ［ｘ，ｙ］          （１６）
【０２２７】
方程式（１６）において、Ｃｃ［ｘ，ｙ］は、合成色度チャンネル画像１５３０（図１５の）内の座標［ｘ，ｙ］でのピクセルの色度値である。Ｃｂ［ｘ，ｙ］は、露光過多（明）ルマ画像１５２０Ｃ内の座標［ｘ，ｙ］でのピクセルの色度値である。Ｃｎ［ｘ，ｙ］及びＣｕ［ｘ，ｙ］は、それぞれ、正常色度チャンネル画像１５２０Ｂ及び露光不足色度チャンネル画像１５２０Ａの色度値である。Ｅｂは、露光過多色度画像１５２０Ａの露光の露光倍率である。Ｅｎ及びＥｕは、それぞれ、正常色度チャンネル画像１５２０Ｂ及び露光不足色度チャンネル画像１５２０Ａの色度値である。Ｍｂ［ｘ，ｙ］は、座標［ｘ，ｙ］での露光過多マスク１３３０Ｃの値を表している。Ｍｎ［ｘ，ｙ］及びＭｕ［ｘ，ｙ］は、それぞれ、正常露光マスク１３３０Ｂ及び露光不足マスク１３３０Ａの値を表している。マスク１３３０Ｃ内のピクセルの値により、露光過多色度チャンネル画像１５２０Ｃ内の対応するピクセルが合成色度にどれだけの影響を与えるかが決まる。マスク１３３０Ｂ内のピクセルの値により、正常色度チャンネル画像１５２０Ｂ内の対応するピクセルが合成色度にどれだけの影響を与えるかが決まる。マスク１３３０Ａ内のピクセルの値により、露光不足色度チャンネル画像１５２０Ａ内の対応するピクセルが合成色度にどれだけの影響を与えるかが決まる。各マスク１３３０Ａ−１３３０Ｃにおいて、値が高いほど影響が大きいことを意味する。ルマ画像と同じマスクを使用することにより、色度調節は、色度チャンネル画像１５２０Ａ〜１５２０Ｃ内の各ピクセルの色データが、ルマ画像内の各ピクセルに対して対応するルマデータに確実に適合することを保証する。例えば、露光過多ルマ画像１３２０Ｃ内の対応するピクセルからのルマ値の６２％を得る特定のピクセルは、ここでもまた、露光過多色度チャンネル画像１５２０Ｃの対応するピクセルからのその色度値の６２％を得る。
【０２２８】
処理１４００では、ガウスぼかしマスクを受信する（１４３０で）。一部の実施形態において、これは、ルマ合成画像１３４０から生成された同じガウスぼかし合成１３５０のコピーである。当業者は、ガウスぼかし合成画像１３５０は処理１４００内の先又は後の時点で受信することができることを理解するであろう。処理１４００では、方程式（１５）で分るように、ヒストグラム拡張値（例えば、（Ｈ２−Ｌ２）／（Ｈ１−Ｌ１）を受信する（１４４０で）。この値は、一部の実施形態において、処理１２００中に記憶されて処理１４００中に受信されるのではなく、処理１４００中に独立して計算される。
【０２２９】
処理１４００は、次に、ガウスぼかし合成画像１３５０及びヒストグラム拡張値を使用して合成色度を調節する（１４５０で）。この調節ではまた、一部の実施形態において、合成色度画像に飽和係数を掛ける。一部の実施形態は、予めプログラムされた飽和係数を供給する。一部の実施形態において、予めプログラムされた飽和係数に加えて又はその代わりにユーザ調節可能な飽和係数が供給される。更に他の実施形態において、色度画像調節は、方程式（１７）〜（１９）により判断される。
【０２３０】
Ｆ［ｘ，ｙ］＝１＋（Ｈ２−Ｌ２）（Ｈ１−Ｌ１）*Ｘ*Ｇ［ｘ，ｙ］*（１−Ｇ［ｘ，ｙ］））          （１７）
【０２３１】
方程式（１７）内の飽和係数（Ｆ［ｘ，ｙ］）は、一部の実施形態において、以下で方程式（１９）に示すように座標［ｘ，ｙ］でピクセルの色度を調節するのに使用される。Ｌ１は、図１３又は図１４の合成画像１３７０内のピクセルの９９．５％より暗いルマ値である。Ｈ１は、合成画像１３７０内のピクセルの９９．５％より明るいルマ値である。Ｌ２は、正常露光ルマ画像１３２０Ｂ内のピクセルの９９．５％より暗いルマ値である。Ｈ２は、正常露光ルマ画像１３２０Ｂ内のピクセルの９９．５％より明るいルマ値である。Ｘは、異なる実施形態では異なり、かつ一部の実施形態では変更することができる（例えば、ユーザ又はモバイルデバイスにより）飽和係数（例えば、１．２）である。一部の実施形態において、ヒストグラム拡張係数を計算するのに使用される百分率は、上述のものと異なる場合がある。Ｇ［ｘ，ｙ］は、ガウスぼかし合成画像１３５０内の座標［ｘ，ｙ］でのピクセルの値である。係数Ｇ＊（ｌ−Ｇ）は、Ｇ＝０．５の時に最大にされ、Ｇ＝ｌ又はＧ＝０の時に最小にされる。従って、このようにガウスぼかし合成画像１３５０を使用し、明るい又は暗いピクセルを有する画像の部分の色度値ではなく中間色調ルマを有する画像の部分の色度値が増大する。中間色調ピクセルの色を強調すると、色を均一に強調するのと異なる最終画像が得られる。
【０２３２】
一部の実施形態において、合成色度は、以下の方程式を使用して生成される正規化係数で色度値を割ることによって正規化される（１４６０で）。
【０２３３】
Ｎ［ｘ，ｙ］＝（Ｅｂ*Ｍｂ［ｘ，ｙ］）＋（Ｅｎ*Ｍｎ［ｘ，ｙ］）＋（Ｅｕ*Ｍｕ［ｘ，ｙ］）          （１８）
【０２３４】
方程式（１８）内の正規化係数（Ｎ［ｘ，ｙ］）は、一部の実施形態において、以下で方程式（１９）に示すように座標［ｘ，ｙ］でピクセルの色度を調節するのに使用される。Ｅｂは、露光過多色度画像１５２０Ａの露光の露光倍率である。Ｅｎ及びＥｕは、それぞれ、正常色度チャンネル画像１５２０Ｂ及び露光不足色度チャンネル画像１５２０Ａの色度値である。Ｍｂ［ｘ，ｙ］は、座標［ｘ，ｙ］での露光過多マスク１３３０Ｃの値を表している。Ｍｎ［ｘ，ｙ］及びＭｕ［ｘ，ｙ］は、それぞれ、正常露光マスク１３３０Ｂ及び露光不足マスク１３３０Ａの値を表している。
【０２３５】
従って、一部の実施形態において、最終合成色度チャンネル画像１５３０は、以下の方程式により判断される。
【０２３６】
Ｃｆ［ｘ，ｙ］＝Ｃｃ［ｘ，ｙ］*Ｆ［ｘ，ｙ］／Ｎ［ｘ，ｙ］          （１９）
【０２３７】
方程式（１９）において、Ｃｆ［ｘ，ｙ］は、合成色度チャンネル画像１５３０（飽和後）内の座標［ｘ，ｙ］でのピクセルの色度値である。Ｎ［ｘ，ｙ］は、合成色度画像の色度値を割るために使用される正規化係数（例えば、方程式（１８）からの正規化係数）である。Ｃｃ［ｘ，ｙ］は、合成色度チャンネル画像１５３０内の座標［ｘ，ｙ］でのピクセルの色度値である。Ｆ［ｘ，ｙ］は、座標［ｘ，ｙ］でピクセルの色度に掛けるために使用される飽和係数である（例えば、方程式（１７）からの飽和係数）。これらの調節を行う実施形態において、調節により最終合成色度チャンネル画像１５３０が生成される。当業者は、方程式（１９）を使用する一部の実施形態において、方程式（１７）及び（１８）と異なる方程式を使用してＦ［ｘ，ｙ］又はＮ［ｘ，ｙ］を計算することを理解するであろう。
【０２３８】
処理１４００は、次に、合成すべき別の色度チャンネル画像があるか否かを判断する（１４７０で）。合成すべき別の色度チャンネルがある場合（例えば、処理１４００がＣｒ色度画像でなくＣｂ色度画像を合成し終えていた場合にＣｒ色度画像を調節する）、処理１４００は、作動１４２０に戻って新しい色度チャンネル画像にマスクを適用する。一部の実施形態において、作動１４２０〜１４６０を一方の色度チャンネル画像に行うのではなく個々の作動を各色度チャンネル画像に行い、次に、１４２０〜１４６０を他方の色度チャンネル画像に行う。処理１４００は、一部の実施形態では全ての色度チャンネルに行われる。
【０２３９】
上述の色度関連の方程式は、画像の対応するルマ（又はルミナンス）成分と同じ分解能を有する画像の色度成分を合成することを説明するものであるが、当業者は、一部の実施形態において、画像の色度成分は、画像のルマ（又はルミナンス）成分と異なる分解能を有することを理解するであろう。一部のこのような実施形態において、マスクは、分解能の差に対処するように調節される。例えば、一部の実施形態は、画像のルマ／ルミナンス成分内の２つの水平に隣接するピクセルに対応する画像の色度成分内の各ピクセルに対して４：２：２のフォーマットを使用する。一部の実施形態のマスクは画像のルマ／ルミナンス成分と同じ分解能を有するので、画像の色度成分内の各ピクセルは、対応するマスク内の２つの水平に隣接するピクセルに対応する。一部のこのような実施形態において、画像の色度ピクセルの値は、対応するマスク内の水平に隣接するピクセルの対応する対の平均値により重み付けされる。他のこのような実施形態において、色度ピクセルの値は、マスク内の水平に隣接するピクセルの対応する対の一方又は他方の値（例えば、対の一番左のピクセルの値）により重み付けされる。同様に、一部の実施形態は、各色度ピクセルがルマ／ルミナンス成分において（及びマスクにおいて）ピクセルの２ｘ２平方に対応する４：２：０のフォーマットを使用する。一部のこのような実施形態において、色度ピクセルの値は、マスクにおいて対応する４つのピクセルの平均値により重み付けされる。他のこのような実施形態において、色度ピクセルの値は、マスク内の４つの対応するピクセルの１つの値（例えば、４つの左上ピクセルの値）により重み付けされる。代替的に、一部の実施形態において、色度成分の合成は、マスクの分解能で行われ、合成ルマ／ルミナンス成分と同じ分解能を有する合成色度成分が生成される。一部のこのような実施形態において、合成色度成分は、何らかの時点で最初の色度成分の分解能に変換される。
【０２４０】
一部の実施形態の合成モジュールは、最終ルマ画像１３８０（図１３Ａ又は図１３Ｂの）及び最終合成色度チャンネル画像１５３０（図１５の）の各チャンネルを結合して最終ＨＤ画像を生成する。代替的に、一部の実施形態における合成モジュールは、最終ルマ画像１３８０及び最終合成色度チャンネル画像１５３０をＲＧＢフォーマット（例えば、ｓＲＧＢ）に変換して最終ＨＤＲ画像を生成する。
【０２４１】
Ｄ．露光条件のための調節
一部の実施形態のモバイルデバイスは、モバイルデバイスが画像を撮っている時に局所照明条件に対処するように正常露光画像の露光時間を自動的に調節する。一部の実施形態において、露光時間は、カメラのＣＭＯセンサのリフレッシュ間の時間である。モバイルデバイスは、正常持続時間露光の露光時間を増大させることによって弱光条件を補正する。一部のこのような実施形態において、モバイルデバイスは、露光の持続時間に関する上限値も有する。一部の実施形態における露光過多画像の露光持続時間は、正常露光持続時間の倍数である（例えば、正常露光持続時間の４倍）。弱光条件において、通常の露光の持続時間の増大及び露光過多画像の露光時間のデフォルト乗数により、モバイルデバイスにより許容される上限値より長い露光過多画像の露光時間になる可能性がある。これらの条件に向けて調節するために、一部の実施形態は、露光過多画像に対して、デフォルト値より低い露光乗数（例えば、４のデフォルト乗数ではなく２の乗数）を使用する。一部の実施形態の合成処理では、相応に倍率Ｅｂを増大させる。
【０２４２】
一部の場合には、光は、正常露光持続時間が許容露光時間の上限値又はその近くにあるほど薄暗い。このような場合に、露光過多持続時間は、長くても強制的に正常露光持続時間と同じ長さ（又は殆ど同じ長さ）にされる。一部の実施形態のモバイルデバイスは、正常露光画像と同量の時間に（又は殆ど同量の時間に）露光過多画像を撮ってとにかく合成を提供する。当業者は、正常露光画像及び露光過多画像が同じ露光持続時間に撮られる場合には、画像は、正常露光画像及び露光過多画像とではなく、２つの正常露光画像と呼ぶことができることを理解するであろう。
【０２４３】
正常露光持続時間がモバイルデバイスの最大許容露光である場合に、一部の実施形態は、最終画像においてノイズレベルを低減するために同じ露光持続時間に撮られる２つの正常露光画像を合成する。正常露光持続時間がモバイルデバイスの最大許容露光の近くである場合に、露光過多画像は、正常露光画像の露光持続時間より僅かに長いだけである露光持続時間で撮られる。露光持続時間の低い比率のために、このような場合の露光過多画像では、通常ほど中分散範囲が増大しない。しかし、一部の実施形態は、ダイナミックレンジの増加が小さくて済むように及び／又は最終画像内のノイズレベルを低減するために、露光過多画像及び正常露光画像を合成する。
【０２４４】
露光持続時間を制限する実施形態において、露光過多持続時間の上限を定められた時に、倍率Ｅｂは、露光時間の変更された比率に従って増大される。同じか又は他の一部の実施形態において、モバイルデバイスは、露光過多画像を撮っている間はフラッシュを使用し、露光過多画像の露光時間の長時間の欠如を補正するために正常露光画像を撮っている間にはフラッシュを使用しない。一部の実施形態において、フラッシュは、正常露光持続時間が最大露光持続時間の一部の特定の閾値内のある時に使用される。例えば、一部の実施形態において、フラッシュは、正常露光持続時間が最大露光持続時間の５０％よりも長い時に使用される。他の実施形態において、他の百分率が閾値として使用される。一部の実施形態において、正常露光持続時間が閾値よりも大きい時に、露光過多持続時間は、最大露光持続時間（例えば、より明るい照明条件に使用されるより低い正常露光持続時間の倍数）に設定され、フラッシュは、露光過多持続時間に使用されるが、正常持続時間又は露光不足持続時間に対しては使用されない。一部の実施形態において、フラッシュが使用される場合に、モバイルデバイスは、露光過多で正常露光画像を捕捉及び合成するが露光不足画像を捕捉せず、及び／又は他の２つの画像で露光不足画像を合成しない。
【０２４５】
一部の実施形態のモバイルデバイスは、露光の長さに下限値を有する。このような実施形態において、明るい光条件において、露光不足画像の露光時間のデフォルト乗数により、露光時間は、モバイルデバイスが許容する下限値より短くなる場合がある。一部のこのような実施形態において、露光不足画像では、他の場合よりも高い露光乗数を使用する（例えば、１／４のデフォルト露光乗数ではなく１／２の露光乗数）。一部の場合には、光は、正常露光持続時間が許容露光時間の下限値であるほど明るい。このような場合に、露光不足は、正常露光画像と同量の時間に撮られて（結果として２つの正常露光画像になる）、かつ最終画像においてノイズレベルを低減するためで合成する際に使用される。一部のこのような実施形態において、倍率Ｅｕは、露光時間の変更された比率に従って低減される。
【０２４６】
本明細書に説明する実施形態の多くの説明では、３つの画像（例えば、露光不足画像、正常露光画像、及び露光過多画像）を撮って合成することに言及したが、当業者は、他の実施形態において、他の数の画像を撮り及び／又は合成することができることを理解するであろう。例えば、一部の実施形態は、３つの画像の代わりに２つの画像（例えば、露光不足画像及び正常露光画像）を合成する。
【０２４７】
更に、一部の実施形態は、照明条件に基づいて異なる数の画像を撮る。例えば、一部のこのような実施形態は、モバイルデバイスが暗区域及び明区域を有する場面の画像を捕捉している時には３つの画像を合成し、モバイルデバイスが殆ど暗区域又は殆ど明区域がない画像を捕捉している時には２つの画像を合成する。場面に殆ど暗区域がない時に、一部のこのような実施形態は、正常露光画像及び露光不足画像を合成する。場面に殆ど明区域がない時に、一部のこのような実施形態は、正常露光画像及び露光不足画像を合成する。一部のこのような実施形態は、１つ又はそれよりも多くの画像（例えば、プレビュー画像）のヒストグラムを使用し、場面に殆ど明区域がないか又は殆ど暗区域がないかを判断する。明区域又は暗区域が小さいか又は不在の時に２つの画像を合成する一部の実施形態は、依然として明区域及び暗区域が小さいか又は不在の時に（すなわち、主に中間色調である場面）３つの画像を使用する。代替的に、捕捉すべき場面の個々の区域の品質に基づいて画像のタイプを除外するのではなく、一部の実施形態は、特定の総合光レベルよりも大きい場面を捕捉する時に露光過多画像を除外し、一部の実施形態は、特定の総合光レベルよりも小さい場面を捕捉する時に露光不足画像を除外する。
【０２４８】
以上の説明には、多くの組のデータ（例えば、ガウスぼかし画像、陰影−強化画像、露光過多画像のような）に関して「画像」又は「複数の画像」という用語が含まれていたが、当業者は、一部の実施形態において、これらの「画像」内のデータは、通常、実施形態を実施する際に視覚形態では表示されないことを理解するであろう。このような実施形態において、「画像」内のデータは、最終的に視覚形態で表示される他のデータを操作及び調節するのに使用される。一部の実施形態は、最終製品、すなわち、ＨＤＲ画像のみを表示する。しかし、他の実施形態は、他の画像、並びに最終ＨＤＲ画像の１つ又はそれよりも多くを表示する。
【０２４９】
１つのフラッシュ照明画像を１つ又はそれよりも多くの非フラッシュ照明画像に結合する実施形態により、デバイスのＨＤＲ画像捕捉モードは、デバイスのフラッシュモードに関連して作動させることができる。しかし、他の実施形態において、デバイスは、フラッシュモード又はＨＤＲモードでのみ作動させることができる。従って、自動フラッシュモードが有効である時に、これらの実施形態は、ＨＤＲ画像捕捉モードを無効にする。
【０２５０】
Ｅ．画像フォーマット
上述の実施形態の多くは、１つ又はそれよりも多くの画像フォーマットに関して説明した。当業者は、異なる実施形態が異なるフォーマットで画像を供給及び操作することを理解するであろう。一部の実施形態において、色画像は、ルマチャンネル及び２つの色度チャンネルのような情報の３つのチャンネルとして供給される。このタイプの情報に使用される１つの色フォーマットは、Ｙ'ＣｂＣｒ（ルマ、青色色度、及び赤色色度）色フォーマットである。一部の実施形態のモバイルデバイスのカメラ機能は、Ｙ'ＣｂＣｒフォーマットで画像を自動的に供給する。モバイルデバイスの光センサ（例えば、電荷結合素子）は、各センサに到達する光の強度を測定して強度に比例したルミナンス値（Ｙ）を生成する。モバイルデバイスは、カメラの光センサから受信したルミナンスデータを取ってルミナンスデータにガンマ補正を適用すること（例えば、１／２．２のような何らかの累乗にルミナンス値を数学的に上げること）により、画像のＹ’成分を生成する。
【０２５１】
Ｙ’ＣｂＣｒフォーマットにおいて、ルマ（Ｙ’）チャンネルは、画像のルマ情報を伝達し、Ｃｂ（時にＣＢとして外部参考文献に書かれる）チャンネルは、画像の青色値がどれ程度ルマ（Ｙ’）値と異なるかに関する情報を伝達し、Ｃｒ（時にＣＲとして外部参考文献に書かれる）チャンネルは、画像の赤色値がどれ程度ルマ（Ｙ’）値と異なるかに関する情報を伝達し、実際上、ルマチャンネル（Ｙ’）は、モノクロ（及び灰色）画像を供給し、色度チャンネル（Ｃｂ及びＣｒ）は、画像に色を追加する。一部の実施形態において、Ｙ’ＣｂＣｒ値のスケールは、任意に変更することができる。本明細書に説明する計算結果に対して、ルマ（Ｙ’）は、検査結果に対しては１の最大値及び０の最小値にスケーリングされ、色度（Ｃｂ及びＣｒ）は０．５から０．５までスケーリングされる。しかし、他のスケールが、一部の実施形態の範囲で可能である。例えば、ルマ（Ｙ’）は、一部の実施形態では、０から２５５までスケーリングされる。他の実施形態は、ルマを１６から２３５までスケーリングし、色度を１６から２４０までスケーリングする。ＹＵＶのような他の色フォーマットが、一部の実施形態では使用される。
【０２５２】
一部のモバイルデバイスは、直接にＹＣｂＣｒ色フォーマットで画像を捕捉し、次に、ＲＧＢ画像（例えば、標準的なＲＧＢ）に又はＹ’ＣｂＣｒ画像に画像を変換する。一部の実施形態において、上述の作動は、Ｙ’ＣｂＣｒフォーマットで捕捉された時に画像に行われる（モバイルデバイスのスケールからのあらゆる必要な再スケーリングと共に）。他の実施形態において、この作動は、ＲＧＢフォーマットで最初に受信されてＹ’ＣｂＣｒに変換された画像に行われる。作動及び数学的な方程式では、以下でＹ’ＣｂＣｒカラーフォーマットを仮定するが、他の実施形態は、他の色フォーマット（例えば、ＹＵＶのような）を使用する。一部の実施形態において、他の色フォーマットで、作動及び方程式が相応に調節される。同様に、一部の実施形態は、間引かれた画像及び上述のように画像を整列させるのに使用されるビットマップを生成する時に、ルマ値ではなくルミナンス値を使用する。
【０２５３】
処理及び上述の方程式を特定の画像フォーマットに関して説明したが、当業者は、処理及び方程式は、一部の実施形態では他の画像フォーマットに対して使用することができることを理解するであろう。例えば、一部の箇所では、以上の説明は、ルマデータに言及し、一部の箇所では、ルミナンスデータに言及している。しかし、特に断らない限り、本明細書に説明する方程式及び処理は、一部の実施形態ではルマ値に適用され、他の実施形態ではルミナンス値に適用され、その逆も同様である。当業者は、ルマ及びルミナンスは、画像強度データのフォーマットの２つの例にすぎず、かつ説明した処理及びルミナンス及びルマに関連して本明細書に説明する方程式は、一部の実施形態では強度情報を記憶する他のフォーマットに適用することができることを理解するであろう。例えば、一部の実施形態は、ＲＧＢフォーマット、ｓＲＧＢフォーマット、Ｒ’Ｇ’Ｂ’フォーマット（すなわち、ガンマ補正ＲＧＢフォーマット）、又は別々の成分として強度データ及び色データを供給しない他のフォーマットの画像の赤色、青色、及び緑色の成分に対して上述の作動を行う。このような作動を赤色、青色、緑色の成分に行う一部の実施形態は、上述の同じ作動又は類似の作動でガンマ補正されたフォーマットとガンマ補正されていないフォーマット間で変換する。
【０２５４】
同様に、色度データに適用されると本明細書に説明する方程式及び処理は、一部の実施形態では強度データとは別に色データを記憶する他のフォーマットに適用することができる。更に、以上の説明では一方のフォーマットから別のフォーマットへの（例えば、ルマからルミナンス又はＲＧＢからルマへの）変換を行うことができる処理の一部の特定の部分を指摘しているが、当業者は、画像間の変換は、一部の実施形態では処理のいずれかの１つ又は複数の段階で行うことができることを理解するであろう。
【０２５５】
ＶＩ．モバイルデバイス
図１６は、一部の実施形態のモバイルコンピュータデバイス１６００の例である。モバイルコンピュータデバイスの例は、１つ又はそれよりも多くの処理ユニット１６０５、メモリインタフェース１６１０、及び周辺機器インタフェース１６１５を含む。コンピュータデバイスアーキテクチャを構成するこれらの構成要素の各々は、別々の構成要素とすることができ、又は１つ又はそれよりも多くの集積回路に一体化することができる。これらの様々な構成要素は、１つ又はそれよりも多くの通信バス又は信号線により互いに結合することができる。
【０２５６】
周辺機器インタフェース１６１５は、様々なセンサ、及びカメラサブシステム１６２０、無線通信サブシステム１６２５、オーディオサブシステム１６３０、Ｉ／Ｏサブシステム１６３５などを含むサブシステムに結合する。周辺機器インタフェース１６１５は、プロセッサと周辺機器間の通信を可能にする。方位センサ１６４５又は加速度センサ１６５０のような周辺機器は、方位及び加速度機能を容易にするために周辺機器インタフェース１６１５に結合することができる。
【０２５７】
カメラサブシステム１６２０は、デバイスの１つ又はそれよりも多くのカメラに向けて１つ又はそれよりも多くの光センサ１６４０（例えば、電荷結合素子（ＣＣＤ））光センサ、相補的金属酸化物半導体（捕捉モジュール）光センサに結合することができる。一部の実施形態において、デバイスは、１台のカメラのみを有し、一方、他の実施形態において、デバイスは１つよりも多い（例えば、２つの）カメラを有する。一部の実施形態において、デバイスは、デバイスの複数の側面上のカメラを有する（例えば、デバイス前面のカメラ及びデバイス後面のカメラ）。センサに結合したカメラサブシステム１６２０は、画像及び／又は映像データ捕捉のようなカメラ機能を容易にすることができる。無線通信サブシステム１６２５は、通信機能を容易にする役目をすることができる。無線通信サブシステム１６２５は、無線周波数受信機及び送信機、及び光受信機及び送信機を含むことができる。無線通信サブシステム１６２５は、ＧＳＭ（登録商標）ネットワーク、Ｗｉ−Ｆｉネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ネットワークのような１つ又はそれよりも多くの通信ネットワーク上で作動するように実施することができる。オーディオサブシステム１６３０は、音声認識、デジタル録音のような音声対応関数を容易にするためにスピーカ１６３１及びマイク１６３２に結合される。
【０２５８】
Ｉ／Ｏサブシステム１６３５は、周辺機器インタフェース１６１５を通じて、ディスプレイ、タッチスクリーンのようなＩ／Ｏ周辺デバイスとＣＰＵのデータバス間の転送を提供する。Ｉ／Ｏサブシステム１６３５は、これらの関数を容易にするために、タッチスクリーンコントローラ１６５５及び他の入力コントローラ１６６０を含むことができる。タッチスクリーンコントローラ１６５５は、タッチスクリーン１６６５に結合することができ、かつ複数のタッチ感度技術のいずれかを使用して画面上の接触及び移動を検出することができる。他の入力コントローラ１６６０を１つ又はそれよりも多くのボタンのような他の入力／制御デバイスに結合することができる。
【０２５９】
メモリインタフェース１６１０は、メモリ１６７０に結合することができ、メモリ１６７０は、フラッシュメモリのような高速ランダムアクセスメモリ及び／又は不揮発性メモリを含むことができる。メモリは、オペレーティングシステム（ＯＳ）１６７２を記憶することができる。ＯＳ１６７２は、基本システムサービスを処理する命令及びハードウエア従属タスクを行う命令を含むことができる。
【０２６０】
メモリは、１つ又はそれよりも多くの付加的なデバイスと通信することを容易にする通信命令１６７４、グラフィカルユーザインタフェース処理を容易にするグラフィカルユーザインタフェース命令１６７６、画像関連の処理及び関数を容易にする画像処理命令１６７８、電話関連の処理及び機能を容易にする電話命令１６８０、メディア通信及び処理関連の処理及び機能を容易にするメディア交換及び処理命令１６８２、カメラ関連の処理及び機能を容易にするカメラ命令１６８４、及びＨＤＲにおいて生成処理及び機能を容易にするＨＤＲ画像生成命令１６８６を含むことができる。先に識別した命令は、別々のソフトウエアプログラム又はモジュールとして実施された必要はない。モバイルコンピュータデバイスの様々な機能は、１つ又はそれよりも多くの信号処理及び／又は特定用途向け集積回路を含むハードウエア及び／又はソフトウエアに実施することができる。
【０２６１】
図１７は、タッチＩ／Ｏデバイスを示している。上述の実施形態は、有線又は無線通信チャンネル１７０２を通じて、図１７に示すように、コンピュータシステム１７０３と相互作用するタッチ入力を受信することができるタッチＩ／Ｏデバイス１７０１を含むことができる。タッチＩ／Ｏデバイス１７０１を使用して、キーボードマウスのような他の入力デバイスの代わりに又はそれらと組み合わせてコンピュータシステム１７０３にユーザ入力を供給することができる。１つ又はそれよりも多くのタッチＩ／Ｏデバイス１７０１は、コンピュータシステム１７０３にユーザ入力を供給するのに使用することができる。タッチＩ／Ｏデバイス１７０１は、コンピュータシステム１７０３の不可欠な部分（例えば、ラップトップ上のタッチスクリーン）とすることができ、又はコンピュータシステム１７０３とは別々のものとすることができる。
【０２６２】
タッチＩ／Ｏデバイス１７０１は、全体的に又は部分的に透明、半透明、不透明、不明瞭、又はそのあらゆる組合せである接触感知パネルを含むことができる。タッチＩ／Ｏデバイス１７０１は、タッチスクリーン、タッチパッド、タッチパッドとして機能するタッチスクリーン（例えば、ラップトップのタッチパッドに取って代わるタッチスクリーン）、あらゆる他の入力デバイス（例えば、キーボード上に配置されたタッチスクリーン又はタッチパッド）、又はタッチ入力を受信するタッチ感応面を有するあらゆる多次元物体と組み合わされたか又は組み込まれたタッチスクリーン又はタッチパッドとして具現化することができる。
【０２６３】
１つの例では、タッチスクリーンとして実施されるタッチＩ／Ｏデバイス１７０１は、少なくとも一部のディスプレイ上に部分的に又は全体的に位置決めされた透明及び／又は半透明の接触感知パネルを含むことができる。この実施形態により、タッチＩ／Ｏデバイス１７０１は、コンピュータシステム１７０３（及び／又は別のソース）から送信されたグラフィックデータを表示するように機能し、かつユーザ入力を受信するようにも機能する。他の実施形態において、タッチＩ／Ｏデバイス１７０１は、タッチ感応構成要素／デバイスがディスプレイ構成要素／デバイスと一体である一体型タッチスクリーンとして具現化することができる。更に他の実施形態において、タッチスクリーンは、補足的なグラフィックデータ又は主要なディスプレイと同じグラフィックデータを表示してタッチ入力を受信する補足的又は付加的な表示画面として使用することができる。
【０２６４】
タッチＩ／Ｏデバイス１７０１は、容量測定、抵抗測定、光学測定、音響測定、誘導測定、機械的測定、化学的測定、又はデバイス１７０１の近くの１つ又はそれよりも多くのタッチ又はニアタッチの発生に対して測定することができるあらゆる現象に基づいてデバイス１７０１上で１つ又はそれよりも多くのタッチ又はニアタッチの位置を検出するように構成することができる。ソフトウエア、ハードウエア、ファームウエア、又はそのあらゆる組合せを使用して、１つ又はそれよりも多くの動作を特定及び追跡するように検出されたタッチの測定を処理することができる。動作は、タッチＩ／Ｏデバイス１７０１上の静止中又は非静止中の単一又は複数のタッチ又はニアタッチに対応することができる。動作は、本質的に同時に、隣接して、又は順番に、タッピング、押圧、揺動、擦動、捩り、向き変更、及び様々な圧力による押圧などのようなタッチＩ／Ｏデバイス１７０１上の特定の方法で１つ又はそれよりも多くの指又は他の物体を移動することによって行うことができる。動作は、指の間又はあらゆる他の指でのつまみ、摺動、強打、回転、屈曲、引き、又はタッピングの動きにより特徴付けることができるが、これらに限定されない。単一の動作は、１つ又はそれよりも多くの手により、１人又はそれよりも多くのユーザにより、又はそのあらゆる組合せによって行うことができる。
【０２６５】
コンピュータシステム１７０３は、グラフィックデータでディスプレイを駆動してグラフィカルユーザインタフェース（ＧＵＴ）を表示することができる。ＧＵＴは、タッチＴ／Ｏデバイス１７０１を通じてタッチ入力を受信するように構成することができる。タッチスクリーンとして実施されたタッチＩ／Ｏデバイス１７０１は、ＧＵＩを表示することができる。代替的に、ＧＵＩは、タッチＩ／Ｏデバイス１７０１とは別のディスプレイ上に表示することができる。ＧＵＩは、インタフェース内の特定の位置で表示される図形要素を含むことができる。図形要素は、仮想スクロールホイール、仮想キーボード、仮想ノブ、仮想ボタン、あらゆる仮想ＵＩなどを含む様々な表示された仮想入力デバイスを含むことができるがこれらに限定されない。ユーザは、ＧＵＩの図形要素に関連付けることができるタッチＩ／Ｏデバイス１７０１上の１つ又はそれよりも多くの特定の位置で動作を行うことができる。他の実施形態において、ユーザは、ＧＵＩの図形要素の位置とは独立している１つ又はそれよりも多くの位置で動作を行うことができる。タッチＩ／Ｏデバイス１７０１に行われる動作では、カーソル、アイコン、メディアファイル、リスト、テキスト、画像のような全て又は様々な部分のような図形要素を直接、間接に関わらず、ＧＵＩ内で操作、制御、改造、移動、起動、開始、又は全体的に影響を与えることができる。例えば、タッチスクリーンの場合に、ユーザは、タッチスクリーン上で図形要素の上に動作を行うことにより、図形要素と直接に対話することができる。代替的に、タッチパッドにより、一般的に間接的な対話が行われる。動作は、表示されないＧＵＩ要素（例えば、ユーザインタフェースを表示させる）に影響を与えることができ、又はコンピュータシステム１７０３内の他のアクションに影響を与えることができる（例えば、ＧＵＩ、アプリケーション、又はオペレーティングシステムの状態又はモードに影響を与える）。動作は、表示されたカーソルに関連してタッチＩ／Ｏデバイス１７０１上で行われる場合もあれば、行われない場合もある。例えば、動作がタッチパッドに行われる場合に、カーソル（又はポインタ）は、表示画面又はタッチスクリーン上に表示することができ、カーソルは、表示画面上のグラフィカルオブジェクトと対話するためにタッチパッド上のタッチ入力を通じて制御することができる。動作が直接にタッチスクリーンに行われる他の実施形態において、ユーザは、タッチスクリーン上に表示されたカーソル又はポインタの有無に関わらずタッチスクリーンで直接にオブジェクトと対話することができる。
【０２６６】
フィードバックは、タッチＩ／Ｏデバイス１７０１上のタッチ又はニアタッチに応答して又はそれに基づいて通信チャンネル１７０２を通じてユーザに供給することができる。フィードバックは、光学的、機械的、電気的、嗅覚的、又は音響的など、又はそのあらゆる組合せで可変的又は非可変的方式で送信することができる。
【０２６７】
上述のこれらの機能は、デジタル電子回路においてコンピュータソフトウエア、ファームウエア、又はハードウエアに実施することができる。これらの技術は、１つ又はそれよりも多くのコンピュータプログラム製品を使用して実施することができる。プログラマブルプロセッサ及びコンピュータは、モバイルデバイスに含めるか、又はモバイルデバイスとしてパッケージ化することができる。処理及び論理回路フローは、１つ又はそれよりも多くのプログラマブルプロセッサにより、及び１つ又はそれよりも多くのプログラマブル論理回路によって実行することができる。汎用及び専用コンピュータデバイス及びストレージデバイスを通信ネットワーク上で相互接続することができる。
【０２６８】
一部の実施形態は、機械可読又はコンピュータ可読媒体（又はコンピュータ可読ストレージ媒体、機械可読媒体、又は機械可読ストレージ媒体と呼ぶ）内にコンピュータプログラム命令を記憶するマイクロプロセッサ、ストレージ、及びメモリのような電子部品を含む。このようなコンピュータ可読媒体の一部の例は、ＲＡＭ、ＲＯＭ、読取専用コンパクトディスク（ＣＤ−ＲＯＭ）、記録可能コンパクトディスク（ＣＤ−Ｒ）、再書込可能コンパクトディスク（ＣＤ−ＲＷ）、読取専用デジタル多用途ディスク（例えば、ＤＶＤ−ＲＯＭ、二重層ＤＶＤ−ＲＯＭ）、様々な記録可能／再書込可能ＤＶＤ（例えば、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷのような）、フラッシュメモリ（例えば、ＳＤカード、ミニＳＤカード、マイクロＳＤカードのような）、磁気及び／又は半導体ハードドライブ（読取専用及び記録可能Ｂｌｕ−Ｒａｙ（登録商標）ディスク、超高密度光ディスク、あらゆる他の光学媒体又は磁気媒体及びフロッピー（登録商標）ディスク）を含む。コンピュータ可読媒体は、少なくとも１つの処理ユニットによって実行可能であり、かつ様々な作動を行う命令の組を含むコンピュータプログラムを記憶することができる。コンピュータプログラム又はコンピュータコードの例には、コンパイラによって生成されるような機械コード、及び解釈プログラムを使用してコンピュータ、電子部品、又はマイクロプロセッサによって実行される高水準コードを含むファイルがある。
【０２６９】
上述の内容では主としてソフトウエアを実行するマイクロプロセッサ又はマルチコアプロセッサに言及しているが、一部の実施形態は、特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような１つ又はそれよりも多くの集積回路によって実行される。一部の実施形態において、このような集積回路は、回路自体に記憶された命令を実行する。
【０２７０】
本明細書及び本出願のあらゆる特許請求の範囲で使用する時の用語「コンピュータ」、「サーバ」、「プロセッサ」、及び「メモリ」は、全て電子デバイス又は他の技術的デバイスを指す。これらの用語では、人々又人々の群を除外する。本明細書の目的上、ディスプレイ又は表示手段という用語は、電子デバイスで表示することを意味する。本明細書及び本出願のあらゆる特許請求の範囲で使用する時の用語「コンピュータ可読媒体」、「複数のコンピュータ可読媒体」、「機械可読媒体」、又は「複数の機械可読媒体」は、コンピュータ、コンピュータデバイス、又は１つ又はそれよりも多くの処理ユニットを有する他の電子デバイスにより可読である形式で情報を記憶する有形の物理的物体に完全に限定される。これらの用語では、あらゆる無線信号、有線ダウンロード信号、及びあらゆる他の一時信号を除外する。
【０２７１】
本発明では多くの特定の詳細を言及して説明したが、当業者は、本発明が本発明の精神から逸脱することなく他の特定の形態で実施することができることを認識するであろう。例えば、一部の実施形態をモバイルデバイスに対して上述したが、当業者は、他の実施形態におけるデバイスは、デスクトップコンピュータのような非モバイルデバイスであり得ることを認識するであろう。
【０２７２】
更に、いくつかの図（図４、図６、図７、図９、図１０、図１２、及び図１４を含む）は、概念的に処理を示している。これらの処理の特殊な作動は、図示のように説明する正確な順序で行われない場合がある。特殊な作動は、１つの連続した一連の作動において行われない場合があり、作動は、異なる実施形態において異なって行われる場合がある。更に、処理は、いくつかの副工程を使用し、又はより大きいマクロ処理の一部として行われる可能性がある。また、連続して登場する作動は、織り交ぜられて行われる場合がある。従って、当業者は、本発明は、上述の例示的な詳細により限定されることを意図したものではなく、特許請求の範囲により定めるべきであることを理解するであろう。
【符号の説明】
【０２７３】
１００  モバイルデバイス
１０５  画像捕捉モジュール
１２０  合成モジュール
１２５  検索モジュール
１３５  露光過多画像
１４０  正常露光画像
１４５  露光不足画像
【図１】
0005615973.tif 000002
【図３】
0005615973.tif 000003
【図４】
0005615973.tif 000004
【図５Ａ】
0005615973.tif 000005
【図５Ｂ】
0005615973.tif 000006
【図６】
0005615973.tif 000007
【図７】
0005615973.tif 000008
【図８】
0005615973.tif 000009
【図９】
0005615973.tif 000010
【図１０】
0005615973.tif 000011
【図１１】
0005615973.tif 000012
【図１２】
0005615973.tif 000013
【図１４】
0005615973.tif 000014
【図１５】
0005615973.tif 000015
【図１６】
0005615973.tif 000016
【図１７】
0005615973.tif 000017
【図２Ａ】
0005615973.tif 000018
【図２Ｂ】
0005615973.tif 000019
【図１３Ａ】
0005615973.tif 000020
【図１３Ｂ】
0005615973.tif 000021