詳細な説明
図1は、一実施形態に従って、ハードワイヤード素子を利用して、画素データに対して演算を実行するための例示的なフローチャート100を示す。必要に応じて、フローチャート100は、図面のいずれかの細部に関連して実行することができる。しかしながら言うまでもなく、任意の所望の環境でフローチャート100を実行することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、演算は、ステップ102で画素データを受信することによって開始する。1つ以上の実施形態において、画素データは、露光データ、露光統計、色データ、色統計値、色空間データ、輝度データ、彩度データ、ルミナンスデータ、色度データ、および/またはあらゆる形で画素に関連する他のデータを含むことができる。さまざまな実施形態において、画素データは、画像センサによって受信されてもよい。他の実施形態において、画素データは、編集に使用された圧縮後の写真に関連付けられてもよい。
一実施形態において、色データおよび/または色統計値は、ホワイトバランスに関連するデータを含むことができる。例えば、さまざまな実施形態において、色チャネル(例えば、赤色チャネル、緑色チャネル、青色チャネル)を用いて、カラーバランスの彩度を決定することができ、カラーバランスの輝度を用いて、関連する画像のホワイトバランスを補正することができる。いくつかの実施形態において、色統計値は、ホワイトバランス曲線および/またはの他の数学的モデルに関連付けられてもよい。
他の実施形態において、色データおよび/または色統計値を用いて、色合わせを行うことができる。例えば、一実施形態において、色合わせを使用して、1つ以上の画像(例えば、HDRミックス)を結合または混合する前に、1つ以上の画像と関連付けることができる。さまざまな実施形態において、色統計値を計算することによって、画素データに関連する色の決定を支援することができる。
図示のように、画素データの受信に応答して、ステップ104において、ハードワイヤード素子を利用して、画素データに対して演算を実行する。さまざまな実施形態において、演算は、露光を調整すること、ホワイトバランスを調整すること、画素データの測定を調整すること、焦点を調整すること、および/または画素データに関連する任意の特徴を調整することを含むことができる。
いくつかの実施形態において、画素データがカメラモジュール内にある間に、演算を実行することができる。例えば、一実施形態において、カメラモジュール内に配置された画像センサとイメージコントローラとの間にデータを伝送する間に、データに対して演算を実行することができる。他の実施形態において、カメラモジュールとアプリケーションプロセッサとの間で画素データを伝送する間に、データに対して演算を実行することができる。当然ながら、カメラモジュールおよび/または画像センサに関連する任意の他のモジュールまたはプロセッサの任意箇所で、画素データに対して演算を実行することができる。
一実施形態において、ハードワイヤード素子を利用して、演算を実行することができる。画素データに対して実行され得る演算と同様に、ハードワイヤード素子は、カメラモジュール、アプリケーションプロセッサ、および/または画像センサに関連する任意の他のモジュールもしくはプロセッサ内に配置されてもよい。
図示のように、判定ステップ106において、必要条件が満たされているか否かを判定する。当然ながら、一実施形態において、当該必要条件は、1つ以上の必要条件を含んでもよい。さまざまな実施形態において、1つ以上の必要条件は、画素データが設定された範囲内にあるか否かを判定することを含んでもよい。例えば、一実施形態において、画素データは、露光を含んでもよく、必要条件は、設定された数値範囲内に中央露光点を設定することを含んでもよい。例えば、画素輝度に関連する数値範囲は、0.0〜1.0であり、0.5という中央露光点は、画像が目標露光範囲内にあることを示してもよい。他の実施形態において、必要条件は、設定した百分率の画素データが露光データの上位5%および下位の5%に含まれないことを保証してもよい。例えば、一実施形態において、必要条件は、5%以下の画素データが露光データの上位5%にあることを保証してもよい。したがって、露光データの上位5%に入る画素データが5%以下になるまで、画素データが画像センサに連続的にフィードバックされてもよい。
他の実施形態において、必要条件は、ヒストグラムに関連付けられてもよい。例えば、一実施形態において、数値範囲は、画素データのヒストグラム出力に依存してもよい。別の実施形態において、ヒストグラムを用いて、例えば露光および/または画素データに関連する他の任意のパラメータに関連する画素の輝度分布を判定してもよい。例えば、一実施形態において、各露光時の画素数がカウントされてもよく、設定された数の画素が設定されたヒストグラム部分内に含まれなければならないことが必要条件にされてもよい。例えば、ヒストグラムの上位および下位の5%に位置するの画素の数を決定し、(例えば、カウントによって決定された)90%の画素が必ずヒストグラムの5%〜95%の区域に含まれることが必要条件にされてもよい。当然ながら、他の実施形態において、区域および/または必要条件は、任意の数値であってもよい。
一実施形態において、必要条件は、ユーザによって設定されてもよい。例えば、一実施形態において、ユーザは、範囲、数値、中央値、分布、および/または任意の他の制約条件を選択および/または入力し、これらを必要条件として使用することができる。別の実施形態において、必要条件は、自動的に設定されてもよい。例えば、一実施形態において、最適設定を画素データに関連付けてもよい。この最適設定は、1つ以上の必要条件を含むことができる。例えば、一実施形態において、ユーザがモバイル装置Xに関連するカメラモジュールを使用しており、画像が高比率で画素データを失っている(例えば、大量の画素データは、ヒストグラム分布上で90%を超える過度露出範囲にある)と仮定する。この場合、最適設定は、モバイル装置Xに実際に存在するレンズ歪みを補正すること(例えば、設定値の歪み補正を適用する)、ヒストグラム分布の下位5%または上位5%に含まれていない少なくとも80%の画素データの目標百分率を適用すること、および/または最適設定を適用するためのいずれかの他の行動をとることを含んでもよい。いくつかの実施形態において、1つ以上の必要条件は、装置(例えば、Apple iPhone(登録商標)、Samsung Galaxy(登録商標)、Canon Mark III(登録商標)、Nikon(登録商標)D、Panasonic Lumix(登録商標))に関連するパラメータから取得することができる。
他の実施形態において、1つ以上の必要条件は、個人のユーザ、2つ以上の単位(例えば、グループ設定、グループ共有)、遠隔実体(例えば、Dropbox(登録商標)、Google(登録商標)ドライブ、Box.com)、および/または任意の他のソースに関連付けられてもよい。いくつかの実施形態において、1つ以上の必要条件は、装置(例えば、装置のローカルメモリ)に格納されてもよく、(例えば、Bluetooth(登録商標)、WiFi(登録商標)、WiFi Directを介して)別の装置から伝送されてもよく、クラウド(Facebook(登録商標)、Dropbox(登録商標)、Google(登録商標)ドライブ、Microsoft One(登録商標))および/またはその他の格納場所に格納されてもよい。
図示のように、必要条件が満たされている場合、フローは終了する。しかしながら、必要条件が満たされていない場合、フローは、ステップ106に戻り、ハードワイヤード素子を利用して、画素データに対して演算を実行する。いくつかの実施形態において、演算は、フィードバックに基づいて変化し得る。例えば、一実施形態において、(例えば、画素数に基づいて)ホワイトバランスが正しくないことを判定することができる。したがって、ホワイトバランスが所定値の閾値に含まれるまでまたは所定値に達するまで、ホワイトバランスを補正してもよい。
さまざまな実施形態において、ハードワイヤード素子を利用することによって、シーンおよび/または画像を迅速に計測することができ、および/または画素データに関連するパラメータを調整することができる。いくつかの実施形態において、ハードワイヤード素子を用いて、画像センサ、カメラレンズおよび/またはカメラモジュールに関連する別の素子に関連する欠陥を補正することができる。したがって、ハードワイヤード素子を利用すると、制御ループの時間を短縮することができる。例えば、一実施形態において、画素データを計測し、ハードワイヤード素子でパラメータ(例えば、露光)を評価することによって、パラメータが設定した必要条件に適合しているか否かを判断することができる。適合している場合は、画像を撮影する。適合していない場合、必要条件に適合するようにパラメータに関連する設定を変更する。いくつかの実施形態において、必要条件が満たされるまで、この制御ループを数回に繰り返す必要がある。
図2は、一実施形態に従って、ハードワイヤード素子を利用して、画素データに対して演算を実行するための例示的な方法200を示す。必要に応じて、方法200は、図面のいずれかの詳部に関連して実行することができる。しかしながら言うまでもなく、任意の所望の環境で方法200を実行することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、ステップ202において、画素データを受信する。次に、ステップ204において、回路のハードワイヤード論理素子を利用して、画素データの第1特徴を特定する。さらに、ステップ206において、回路のハードワイヤード論理素子を利用して、画素データの第1特徴に関連して演算を実行する。
一実施形態において、画素データは、画像センサから受信されてもよい。いくつかの実施形態において、画素データは、画像センサから受信したデータの単一のスカラ要素を含むことができ、および/または画像センサから受信したデータの1つ以上の彩度を含むことができる。
さまざまな実施形態において、ステップ206の少なくとも一部は、アプリケーションプロセッサおよび/またはカメラモジュール内で行うことができる。別の実施形態において、演算は、全てカメラモジュール内で行うことができる。当然ながら、他の実施形態において、演算は、画像センサに関連する任意のプロセッサおよび/またはモジュール内で行うことができる。
一実施形態において、第1特徴は、ホワイトバランス、焦点、露光、彩度および/または画素データに関連する他のパラメータのうち、少なくとも1つを含むことができる。一実施形態において、画素データの第1特徴は、画素データ内の2つ以上の目標部位(Point Of Interest)を含むことができる。2つ以上の目標部位は、2つ以上のホワイトバランス点、2つ以上の焦点、2つ以上の露光点、2つ以上の彩度点、および/または2つ以上画素データに関連する別のパラメータのうち、少なくとも1つを含むことができる。さらに、目標部位は、画素データ内の画素領域を含むことができる。
さまざまな実施形態において、2つ以上の目標部位は、関連付けられてもよい。例えば、一実施形態において、第1目標部位は、第1白色点に関連し、第2の目標部位は、第2白色点に関連し、第1特徴は、第1白色点および第2白色点の両方を含むことができる。いくつかの実施形態において、第1目標部位および第2目標部位に関連するパラメータをブレンドし、混合し、正規化し、平均化し、および/または何らかの方法で合併し、合併した情報を画素データの第1特徴として使用することができる。
他の実施形態において、2つ以上の目標部位は、関連付けられなくてもよい。例えば、一実施形態において、第1目標部位は、屋外を示す画像の一部の露光設定に関連し、第2目標部位は、屋内を示す画像の一部の露光設定に関連する。当然ながら、他の実施形態において、目標部位は、写真の場所に関連付けられ、画素データの任意のパラメータに関連付けられてもよい。
さらに、一実施形態において、第1特徴の特定は、画素データに関連する領域の1つ以上の値を加算するステップと、画素データに関連する領域の最高点範囲を決定ステップを含むことができる。特定の一実施形態において、画素データに関連する領域の最高点範囲に基づいて、演算を実行することができる。当然ながら、他の実施形態において、演算として、任意の数学演算を使用することができる。
図示のように、ステップ208において、演算結果をフィードバックする。一実施形態において、演算結果のフィードバックは、結果を画像センサに提供することを含むことができる。いくつかの実施形態において、結果を画像センサにフィードバックすることに応答して、画像センサは、パラメータを調整することによって、必要条件に適合する確率を高めることができる。
一実施形態において、演算結果は、画素データの露光に関連する正規化素子もしくは加算素子の結果、画素データのホワイトバランスに関連する正規化素子もしくは加算素子の結果、画素データの焦点に関連する正規化素子もしくは加算素子の結果、画素データの彩度に関連する正規化素子もしくは加算素子の結果、および/または数学的演算結果のうち少なくとも1つを含むことができる。
一実施形態において、第1特徴は、ホワイトバランス値に関連付けることができ、演算結果のフィードバックは、ホワイトバランス値に基づいて画素データを調整することを含むことができる。さらに、一実施形態において、回路のハードワイヤード論理素子を利用して、調整を行うことができる。別の実施形態において、カメラモジュール内で全ての調整を実行する。
さらに、図示のように、ステップ210において、演算結果が所定の必要条件を満たすまで、回路のハードワイヤード論理素子を利用して画素データの第1特徴に関連する演算の実行または演算結果のフィードバックのうち少なくとも一方を繰り返す。
一実施形態において、必要条件は、最大値、閾値および/または範囲のうち少なくとも1つを含むことができる。一実施形態において、必要条件は、範囲を含むことができ、範囲は、少なくとも中央値を含むことができる。さらに別の実施形態において、必要条件は、範囲を含むことができ、範囲は、画素データの第1特徴(例えば、露光、彩度、輝度、色彩、ホワイトバランス)に関連する40%〜60%の分布を含むことができる。さらに一実施形態において、必要条件は、範囲を含むことができ、範囲は、画素データの第1特徴に関連する特定の設定値を含むことができる。
さまざまな実施形態において、カメラモジュールは、光学情報を画像センサに取り込むために絞り(例えば、調節可能な絞りまたは非調節可能な絞り)を合焦するレンズ組立体を備えるように設けられてもよい。一実施形態において、カメラモジュール内にコントローラを設けることができる。コントローラを設けることによって、画像センサ上の熱を減少することができ、それによって撮影された画像の潜在的なノイズを低減することができる。当然ながら、いくつかの実施形態において、アナログ/デジタルコンバータが、画像センサに含まれてもよく、コントローラ上に設けられてもよく、および/または、カメラモジュールの内部および/または画像センサに関連する他の素子の内部に配置されてもよい。
一実施形態において、カメラモジュールは、光学部品(例えば、レンズ)、画像センサ、コントローラ、および前述した部品のいずれかをアプリケーションプロセッサに結合する機能を含むことができる。さらに、一実施形態において、画像センサは、ハードウェア(例えば、カメラモジュール)または処理カーネル(例えば、アプリケーションプロセッサ)に処理される画像データを提供することができる。当然ながら、他の実施形態において、データは、画像センサに取り込まれた後、任意の時点で処理されてもよい。
別の実施形態において、画素データの第1特徴に関連して演算を実行することは、焦点を測定することを含むことができる。例えば、一実施形態において、画像センサは、焦点駆動装置を含むことができる。画素データがカメラモジュールのハードワイヤード論理素子に入力されると、その結果が画像センサにフィードバックされ、焦点駆動装置を調整する。このようにして、非常に迅速且つ精確に合焦を行うことができる。例えば、一実施形態において、画像センサは、初期掃引を行い、その後、画素データをオーバーシュートし、次に、必要条件に適合するように、(例えば、フィードバック結果に基づいて)最適設定を適用することができる。一実施形態において、画像センサは、より低い解像度で画素データを取り込み、画素データを回路のハードワイヤード論理素子に供給し、より高い解像度で画素データを取り込む前に、設定を精密に決定することができる。
一実施形態において、画素データの第1特徴に関連して演算を実行することは、中央値の一方側にある画素の数をカウントすることを含むことができる。例えば、一実施形態において、より多くの画素が中央値の右側にあると評価された場合、画像センサは、画素データの過度露光を防止するために、ISOを減少する、露光時間を短縮する、および/または他の行動をとることができる。当然ながら、他の実施形態において、露光時間および/またはISO(または画像センサに関連する可能性のある他のパラメータ)を調整することによって、ヒストグラムを直接シフトすることができるため、必要条件に適合するように調整を行うことができる。
別の実施形態において、画素数は、1つ以上のデータグループを含むことができる。例えば、一実施形態において、画素データは、統計を用いて処理される。統計は、計数器を用いて、各画素の輝度が輝度ヒストグラムの0〜0.5に位置するかまたは0.5〜1.0に位置するかを決定する。このようにして、画素を2つのグループに分類し、各グループをカウントする。当然ながら、他の実施形態において、中央値は、任意の値であってもよい。演算子(例えば、>、=または<)を用いて、データグループを比較することができる。さらに、回路のハードワイヤード論理素子を利用して、画素のカウントを行うこともできる。
別の例として、一実施形態において、画素データが全て輝度ヒストグラムの中央値の左側(例えば、0〜0.5)にある場合、画素データが著しく露光不足である可能性がある。一方、画素データが全て輝度ヒストグラムの中央値の右側(例えば、0.5〜1.0)にある場合、画素データが著しく過剰露光である可能性がある。当然ながら、さまざまな実施形態において、ハードワイヤード論理素子を用いて、ISO、露光時間および画像センサに関連する他のパラメータを変更することは、輝度ヒストグラム全体の画素のより均一な分布を得ることを支援することができる。
さらに別の実施形態において、任意種類の統計(または数学演算)を用いて、カウント、または、所定の必要条件に適合するか否かを判定するために画像センサによって使用される他の結果を、計算することができる。一実施形態において、ソフトウェアおよび/またはメモリモジュールではなく、ハードワイヤード論理素子を利用して、画素データの処理に必要な時間を減すことができる。
別の実施形態において、1つ以上のグループの画素データを用いて、輝度、焦点、露光、および/または画素データに関連する任意の他のパラメータを決定することができる。一実施形態において、画素データの全体ではなく、画素データ全体の一部を処理に使用することができる。例えば、一実施形態において、1000個の入来画素を処理するように待ち行列に入れる。100個の画素を処理した後、最初の100個の画素のカウントが特定の閾値を超えてしまう(例えば、画素のカウントが特定の輝度ヒストグラム範囲を超えた)と判定することができる。このような実施形態において、残りの900個の画素を処理する必要がないため、処理に必要な時間を短縮する。したがって、いくつかの実施形態において、一定量の画素が閾値を超えた場合、残りの画素を処理せず、直ちに画像センサにフィードバックすることができる。
いくつかの実施形態において、画像センサは、(例えば、ハードワイヤード論理素子からの)フィードバック結果、カメラモジュールの製造、(例えば、色の欠損を補正するための)レンズ組立体の製造、および/または画素データに影響を及ぼし、画像センサによって何らかの方法で補正することができる他の情報を考慮することができる。当然ながら、さまざまな実施形態において、画像センサによって適用された設定は、(例えば、レンズまたはカメラモジュールの)最良動作パラメータを与えることができる。
一実施形態において、数学演算を実行する(例えば、グループに分類された画素をカウントする)のではなく、プロセッサ(例えば、アプリケーションプロセッサ)を用いて、画素データを処理する(画像センサ内のテーブルと比較する)ことができる。しかしながら、このような実施形態において、アプリケーションプロセッサは、(例えば、アプリケーションプロセッサの)全てのシステムメモリを使用せず、(例えば、画像センサ内の)1つ以上の参照テーブルを用いて、画素データを処理することができる。アプリケーションプロセッサは、これらのテーブルを検索し、画素データ値および対応する検索値に基づいて、判定を行うことができる。
さまざまな実施形態において、検索は、カメラモジュール、アプリケーションプロセッサ、ソフトウェア内(例えば、アプリケーションプロセッサに配置されているもの、カメラモジュールに配置されているもの、等)、デバイスドライバ(アプリケーションプロセッサモジュール内の、等)を含むさまざまな部位、および/または、検索を実行し検索に基づく判断を実行することができるいかなる部位において、実行されてもよい。
当然ながら、別の実施形態において、画素をグループ化した後、グループに下位グループをさらに作成することができる。例えば、一実施形態において、画素を0〜0.5輝度ヒストグラムにグループ化することができる。しかしながら、0〜0.1バケットの画素(例えば、過度に露光不足)と0.1〜0.5バケットの画素(例えば、ある程度の露光不足)とは、かなり異なる場合がある。したがって、必要に応じて、グループ内のサブグループを使用して、関連情報(例えば、閾値に基づいたトリガを有する0〜0.1範囲内の画素数)を抽出することができる。
他の実施形態において、ハードワイヤード論理素子および1つ以上のソフトウェア要素は、少なくとも一部の処理に同時に関与することができる。例えば、一実施形態において、ハードワイヤード論理素子を用いて、画素データの露光設定を調整することができる。ハードワイヤード論理素子で露光設定を迅速且つ精密に決定した後、画素データは、(例えば、カメラモジュールまたはアプリケーションプロセッサ内の)ソフトウェアモジュールに伝送され、さらに処理されてもよい。例えば、一実施形態において、ハードワイヤード論理素子は、輝度ヒストグラムに従って決定された中央値に基づいて、露光を精密に決定することができる。しかしながら、場合によって、画素データを露光過剰のままにすることが望まれる。この場合、ハードワイヤード論理素子によって設定された中央値は、正確ではない可能性がある。一実施形態において、ソフトウェア(例えば、ドライバ、専用ソフトウェア)を用いて、画像を調整することによって、得られた画像が中央値(または任意の数学統計値)のみに基づくではなく、実現され得る最適設定を考慮したものとすることもできる。
一実施形態において、ユーザは、少なくとも部分的にソフトウェアを制御することができる。例えば、さまざまな実施形態において、ユーザは、ヒストグラムの中央値を調整することができ、および/または写真を調整するために使用できる他のフィードバックを提供することができる。他の実施形態において、ソフトウェアは、製造業者、クラウドソース、および/または他のソースによって決定された最適設定(例えば、カメラのために実現される最良設定)を実現することができる。したがって、いくつかの実施形態において、ユーザは、ハードワイヤード論理素子および/または画像センサに関連するソフトウェア要素によって与えられた設定を無視することができる。さらに、ユーザは、画素データに適用された過剰耀さおよび/または過剰暗さを意図的に測定することができる。
一実施形態において、デバイスドライバを使用して、画素データに関連する範囲を決定することができる。例えば、一実施形態において、完全に暗い画素または完全に明るい画素に焦点を合わせないことが望まれる場合がある。このような実施形態において、ヒストグラムデータに所定の曲線を乗算し、その結果を画像センサにフィードバックして、画素データの取り込みを調整することができる。さらに、一実施形態において、ヒストグラムデータに曲線を乗算することによって、ヒストグラム分布の中央に位置する画素に焦点を合わせることができる。
さまざまな実施形態において、ヒストグラムを用いて、画素データを分類することができる。他の実施形態において、8ビットの解像度(例えば、8ビットカラー)を使用する場合、分類は、より細かい細分性を可能にする256個(例えば、8ビットカラーグループの最大数)のグループを含むことができる。当然ながら、別の方法を用いて、画素データを分類することができる。
いくつかの実施形態において、フィードバックは、数学計算(例えば、グループ内の画素のカウント)に基づく結果を含むことができる。他の実施形態において、フィードバックは、ハードワイヤード論理素子によって決定された最新の露光パラメータを含むことができる。例えば、一実施形態において、画素データが過度露光された場合、最新の露光パラメータは、ISOの減少、シャッタ速度の増加、絞りの制限(例えば、f絞りをより高い数値に変更すること)、および/または画像センサに進入する光線の量を制限するために適用される他の設定を含むことができる。当然ながら、他の実施形態において、任意の命令および/またはパラメータを画像センサにフィードバックし、画像センサは、それらを用いて、画像の取り込みを変更することができる。
いくつかの実施形態において、目標部位は、2次領域を含むことができる。例えば、一実施形態において、2次領域は、目標部位の周りの境界領域を含むことができる。さまざまな実施形態において、境界領域を用いて、露光の差(例えば、内側の露光と外側の露光との差)を決定することができ、および/または輪郭を決定することができる。一実施形態において、輪郭を用いて、2つ以上のフィルタおよび/または設定を適用することができる。例えば、一実施形態において、検出された輪郭によって、第1露光を第1領域に適用させ、第2露光を第2領域に適用させることができる。当然ながら、他の実施形態において、検出された輪郭に関連する任意のパラメータを使用することができる。さらに、他の実施形態において、2次領域は、写真の任意の領域および/または目標部位を含むことができる。
一実施形態において、ユーザ入力に基づいて、輪郭を検出することができる。例えば、一実施形態において、ユーザは、輪郭の検出に使用されるパターンを見い出すことができる。いくつかの実施形態において、見い出されたパターンは、適用される輪郭を規定することができる。他の実施形態において、見い出されたパターンは、輪郭の自動検出に使用される画像領域を決定することができる。例えば、一実施形態において、ユーザは、適用される輪郭に対応する領域を見い出すことができる。装置は、探し出された領域に基づいて、自動的に輪郭を検出することができる。
他の実施形態において、輪郭を自動的に検出することができる。例えば、一実施形態において、装置は、コントラストを増加し、1つ以上のチャネル(例えば、赤色、緑色、青色)で画像をフィルタリングし、および/または他のパラメータを適用することによって、輪郭を決定することができる。当然ながら、一実施形態において、輪郭を決定するために画像に適用されたパラメータは、一時的であり、専ら輪郭の決定に適用されてもよい。別の実施形態において、色彩、輝度(例えば、露光)および/または画素データに関連する任意の他のパラメータにおける差を分析することによって、輪郭を検出することができる。当然ながら、他の実施形態において、輪郭を検出するために技術的に実現可能な他の方法を使用することができる。
さらに、一実施形態において、1対1マッピング(例えば、CCD上の領域を特定し、次いで画像センサ上の領域を特定する)、(例えば、選択された目標部位および/または領域に基づいた)行選択および列選択、(例えば、必要ないおよび/または関連性のないデータを破棄する)全フレーム測定、および/または何らかの方法で目標領域または目標部位の選択に使用され得る任意の他の方法を含むがこれらに限定されないさまざまな方法を用いて、目標部位をマッピングすることができる。一実施形態において、画素データに関連するフレームの全体を取得し、次いで、選択された領域によって選択されなかった全ての行および/または列を廃棄してもよい。このようにして、選択された領域に関連する画素データを更なる処理および/または分析の基礎として使用することができる。
一実施形態において、ハードワイヤード論理素子を使用して、第1パラメータ(例えば、全体的な露光)を補正することができ、ソフトウェアを使用して、第2パラメータ(例えば、領域特定の露光)を補正することができる。他の実施形態において、任意の方法で個別にまたは組み合わせてハードワイヤード論理素子およびソフトウェアを使用することによって、1つ以上のパラメータを補正することができる。
別の実施形態において、混ぜられた2つ以上のパラメータに基づいて、画像を出力することができる。例えば、一実施形態において、第1のISOで画素データを取り込み、第2のISOで画素データを取り込み、両方のISOからの画素データを混合することができる。さらに、第1のISOで取り込んだ画素データは、第1領域に関連し、第2のISOで取り込んだ画素データは、第2領域に関連する。両方のISOからの画素データを混合することは、第1領域または第2領域にそれぞれ関連する画素データに(混合する)優先度を与えることができる。当然ながら、画像の任意の部分が特定のISOおよび/またはパラメータに関連付けられるため、混合は、特定のISOおよび/またはパラメータに関連する画像部分を考慮しなければならない。
一例として、一実施形態において、第1目標部位に関連して第1露光を行い、ハードワイヤード論理素子を用いて、第1目標部位に対する第1露光を計測することができる。さらに、このような実施形態において、ソフトウェアを用いて、第2目標部位の第2露光パラメータを特定することができる。その後、ソフトウェアは、特定された第1および第2の露光パラメータに基づいて1組以上の画素データを露光して取り込むように、カメラモジュール(例えば、画像センサ)に指示することができる。さらに、得られた画像は、取り込まれた1組以上の画素データに基づいて、混合されてもよい。
別の実施形態において、ハードワイヤード論理素子を用いて、第1露光で写真の全フレームを計測することができる。さらに、フレーム内の一領域を選択して、別個に計測することができる。画像センサは、計測された情報に基づいて、第1露光で第1フレームを取り込み、その後、第2露光で第2フレームを取り込むことができる。他の実施形態において、画像センサは、1組の画素データを取り込み、2つ以上のISO値(または他の適用可能なパラメータ)を画素データに適用することができる。
一実施形態において、正規化計算を用いて、ホワイトバランスを計算することができる。例えば、1つの特定の実施形態において、各色チャネル(例えば、赤、緑、青)に関連する画素輝度を個別にカウントすることができる。次いで、各色チャネルの加算を用いて、色チャネルを正規化することができ、各色チャネルを用いて、(例えば、グレーワールド設定における)ホワイトバランスを計算することができる。1つの追加の実施形態において、ハードワイヤード論理素子上で、各色チャネルの加算および正規化を行うことができる。さまざまな実施形態において、ハードワイヤード論理素子は、ソフトウェアと合わせて、加算および/または正規化の少なくとも一部を使用することができる。例えば、一実施形態において、ハードワイヤード論理素子は、ホワイトバランスを行ったRGBデータを返し、ソフトウェアは、この正規化データを受け取り、圧縮(例えば、JPEG圧縮または無損失圧縮)を実行することができる。このようにして、得られる画像(例えば、JPEG)は、ハードワイヤード論理素子によって出力された正確なホワイトバランスに基づいて補償される。
一実施形態において、ハードワイヤード論理素子は、画像の焦点合わせに用いることができる。例えば、一実施形態において、画素データをハードワイヤード論理素子に入力し、周波数分析を行うことができる。一実施形態において、周波数分析は、画素データの1つ以上のラインに対する高速フーリエ変換(FFT)を含むことができる。別の実施形態において、周波数分析は、画素データのブロックに対する離散コサイン変換(DCT)を含むことができる。一実施形態において、画像の焦点が合っておらず、この画像に対してDCTを実行した場合、より多くの低周波エネルギー(低周波数成分)が画像に関連するDCTブロックの大部分に現れる可能性がある。対照的に、例えば、焦点が合っている画像の場合、より多くのブロックが支配的に高い周波数のエネルギー(高周波成分)を有する。合焦画像において、DCおよび低周波数成分は、DCTブロックの大部分において相対的に減衰する。このような実施形態において、ハードワイヤード論理素子を用いて、画素データの少なくとも1つ以上のラインを分析することができる。この分析は、周波数分析を含む。
特定の実施形態において、画素データのラインをハードワイヤード論理素子に入力し、画素データに対して1次元フーリエ変換(例えば、FFT)を含む演算を実行することによって、高周波数データおよび低周波数データの両方を含む結果を生成することができる。特定の範囲の周波数値を加算し、複数の範囲に対する加算を繰り返すことによって、画像内の複数のラインの周波数データを示すヒストグラムを集計することができる。この実施形態において、画素データの新しいラインをハードワイヤード論理素子に入力し、ライン範囲のヒストグラムにおいて周波数値の最終加算を行うことができる。このようにして、複数ラインの画素データに基づいて、完全なヒストグラムを構築することができる。一実施形態において、全てのラインの正味値は、最大値を生成し、この最大値は、画像を合焦すべきポイントに対応する。当然ながら、技術的に実現可能な任意の方法(例えば、派生分析、試行値に基づく確率分析)を用いて、曲線に関連する最大値を計算することができる。
このようにして、さまざまな実施形態において、画像の全体または画像の1つ以上の目標部位を、焦点を計算するための基礎として使用することができる。別の実施形態において、8×8ブロックの画素データをハードワイヤード論理素子に入力し、画素データに対してDCTを含む演算を実行することによって、高周波数データおよび低周波数データの両方を含む結果を生成することができる。特定の範囲(および/または複数の範囲)の周波数値を加算し、ヒストグラム上で結果を表示することができる。一実施形態において、ヒストグラムを用いて、画素データの複数のブロック、画素データの複数の行、画素データの複数の列に基づいて、最大値を計算することができる。当然ながら、いくつかの実施形態では、上記の記載に基づいて、合焦する機能は、シーン情報および/またはテキスト情報を含む画像データに影響を及ぼす場合がある。さらに、一実施形態において、特定のフレームの焦点距離は、そのフレームの高周波数成分の加算値であってもよい。別の実施形態において、特定のフレームの焦点距離は、そのフレームを構成するラインまたはそのフレームを構成するDCTブロックに対して得られた周波数領域ヒストグラムの中央値を含む。さらに別の実施形態において、特定のフレームの焦点距離は、そのフレームを構成する1つ以上のDCTブロックを含む線に対して得られた周波数領域ヒストグラムの高閾値(例えば、上位10%)を含む。
他の実施形態において、ソフトウェア論理素子およびハードウェア論理素子の組み合わせは、焦点合わせに用いることができる。例えば、一実施形態において、ハードウェア論理素子を用いて、静的シーンを完全に合焦することができる。しかしながら、別の実施形態において、対象物は、周囲に走っている子供である可能性がある。このような実施形態において、ソフトウェアを用いて対象物を追跡し、ハードウェア論理素子を用いて、ソフトウェアによって決定された位置に基づいて合焦することができる。当然ながら、他の実施形態において、ハードウェアおよびソフトウェアの任意の組み合わせが、画素データの焦点合わせに用いられてもよい。
さまざまな実施形態において、上述したようなハードワイヤード論理素子を用いたホワイトバランスの計算は、表示装置に適用することができ(例えば、モニタの較正)、演示装置に適用することができ(例えば、プロジェクタの較正)、2つ以上の装置に適用することができ(例えば、複数の装置のスクリーンの較正)、および/または何らかの方法で画素データを表示するために使用され得る任意の他の装置に適用することができる。別の実施形態において、ワイヤハードワイヤード論理素子を用いたホワイトバランスの計算は、3D撮像に使用することができる。この場合、2つのレンズから得られた画素データが整合するように、2つ以上のレンズの入力を関連させてもよい。
図3Aは、一実施形態に従ったデジタル撮影システム300を示す。必要に応じて、デジタル撮影システム300は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でデジタル撮影システム300を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、デジタル撮影システム300は、相互接続334を介してカメラモジュール330に接続されたプロセッサ複合体310を含むことができる。一実施形態において、プロセッサ複合体310は、ストロボユニット336に接続される。デジタル撮影システム300は、各々がプロセッサ複合体310に接続された表示ユニット312、入力/出力素子314、不揮発性メモリ316、揮発性メモリ318、無線ユニット340およびセンサ素子342を含むがこれらに限定されない。一実施形態において、電力管理サブシステム320は、デジタル撮影システム300内の各電気負荷素子に適切な給電電圧を生成するように構成される。電池322は、電力管理サブシステム320に電気エネルギーを供給するように構成することができる。電池322は、一次電池または二次電池を含む、技術的に実現可能なエネルギー貯蔵システムを備える。当然ながら、他の実施形態において、システムは、追加のまたはより少ない特徴、ユニット、装置、センサまたはサブシステムを含むことができる。
一実施形態において、ストロボユニット336は、デジタル撮影システム300に一体化され、デジタル撮影システム300によって実行される画像の撮影中にストロボ照明光350を提供するように構成されてもよい。別の実施形態において、ストロボユニット336は、デジタル撮影システム300から独立した装置として実装され、デジタル撮影システム300によって実行される画像の撮影中にストロボ照明光350を提供するように構成されてもよい。ストロボユニット336は、1つ以上のLED素子、ガス放電発光体(キセノンストロボ素子、キセノンフラッシュランプ)、または技術的に実現可能な他の照明素子を含むことができる。特定の実施形態において、2つ以上のストロボユニットは、画像の撮影と連動してストロボ照明光を同期に提供するように構成される。一実施形態において、ストロボユニット336がストロボ照明光350を出射するか否かは、ストロボ制御信号338によって制御される。ストロボ制御信号338は、技術的に実現可能な任意の信号伝送プロトコルを用いて実現することができる。ストロボ制御信号338は、特定の強度および/または色のストロボ照明光350を生成させるようにストロボユニット336に指示するためのストロボパラメータ(例えば、ストロボ強度、ストロボ色、ストロボ時間)を含むことができる。ストロボ制御信号338は、プロセッサ複合体310、カメラモジュール330、またはそれらの技術的に実現可能な任意の組み合わせによって生成されることができる。一実施形態において、ストロボ制御信号338は、プロセッサ複合体310内のカメラインターフェイスユニットによって生成され、相互接続334を介してストロボユニット336およびカメラモジュール330の両方に伝送される。別の実施形態において、ストロボ制御信号338は、カメラモジュール330によって生成され、相互接続334を介してストロボユニット336に伝送される。
撮影シーン内の物体から反射されたストロボ照明光350の少なくとも一部を含み得る光学シーン情報352は、光学画像としてカメラモジュール330内の画像センサ332に集束される。画像センサ332は、光学画像の電子的表現を生成する。電子的表現は、異なる色彩度サンプル(例えば、赤色、緑色および青色光)を含み得る空間色彩度情報を含む。他の実施形態において、空間色彩度情報は、白色光サンプルを含むこともできる。電子的表現は、技術的に実現可能な任意の信号伝送プロトコルを実現することができる相互接続334を介して、プロセッサ複合体310に送信される。
一実施形態において、入力/出力素子314は、容量性タッチ入力面、抵抗性タブレット入力面、1つ以上のボタン、1つ以上のノブ、発光素子、検光素子、発音素子、検音素子、またはユーザ入力を受信して電気信号に変換するまたは電気信号を物理信号に変換するための技術的に実現可能な任意の他の素子を含むが、これらに限定されない。一実施形態において、入力/出力素子314は、表示ユニット312に接続された容量性タッチ入力面を含む。タッチ入力表示システムは、プロセッサ複合体310に共に接続された表示ユニット312および容量性タッチ入力面を含んでもよい。
さらに、他の実施形態において、不揮発性(NV)メモリ316は、電力が中断されたときにデータを記憶するように構成される。一実施形態において、不揮発性メモリ316は、1つ以上のフラッシュメモリ装置(たとえば、ROM、PCM、FeRAM、FRAM(登録商標)、PRAM、MRAM、NRAM)を含む。不揮発性メモリ316は、非一時的なコンピュータ可読媒体を含み、この非一時的なコンピュータ可読媒体は、プロセッサ複合体310に設けられた1つ以上の処理ユニットによって実行されるプログラム命令を格納するように構成される。プログラム命令は、非限定的な一例として、オペレーティングシステム(OS)、UIソフトウェアモジュール、画像処理および格納ソフトウェアモジュール、プロセッサ複合体310に接続された1つ以上の入力/出力素子314、カメラモジュール330を介して画像スタックを撮影するための1つ以上のソフトウェアモジュール、表示ユニット312を介して画像スタックまたは画像スタックから生成された1つ以上の合成画像を表示させるための1つ以上のソフトウェアモジュールを実装することができる。一例として、一実施形態において、プログラム命令は、画像スタック内の画像または画像部分を合併するための1つ以上のソフトウェアモジュール、画像スタック内の各画像の少なくとも一部を整列するための1つ以上のソフトウェアモジュール、またはそれらの組み合わせを実装することができる。別の実施形態において、プロセッサ複合体310は、高ダイナミックレンジ(HDR)画像を生成するように動作可能な1つ以上のソフトウェアモジュールを実装することができるプログラム命令を実行するように構成することができる。
さらに、一実施形態において、不揮発性メモリ316を構成する1つ以上のメモリ装置は、ユーザによって取付けられまたは取外されるように構成されたモジュールとしてパッケージ化されてもよい。一実施形態において、揮発性メモリ318は、デジタル撮影システム300の通常動作中に利用されるプログラム命令または画像スタックに関連するデータなどの画像データを一時的に格納するように構成されたダイナミックランダムアクセスメモリ(DRAM)を含む。当然ながら、任意の方法で揮発性メモリを使用することができ、プロセッサ複合体310に取り付けられた任意の他の入力/出力素子314またはセンサ素子342と共に、揮発性メモリを使用することができる。
一実施形態において、センサ素子342は、動きおよび/または向きを検出するための1つ以上の加速度計、動きおよび/または向きを検出するための電子ジャイロ、向きを検出するための磁束検出器、地理位置を検出するための全地球測位システム(GPS)モジュール、またはそれらの任意の組み合わせを含むが、これらに限定されない。当然ながら、動き検出センサ、近接センサ、RGB光センサ、ジェスチャセンサ、3D入力画像センサ、圧力センサ、および屋内位置センサを含むがこれらに限定されない他のセンサをセンサ素子として一体化することができる。一実施形態において、センサ素子は、入力/出力素子314の一例であってもよい。
無線ユニット340は、デジタルデータを送受信するように構成された1つ以上のデジタル無線機を含むことができる。特に、無線ユニット340は、無線通信規格(例えば、WiFi(登録商標)、Bluetooth(登録商標)、NFC)を実装することができ、デジタル移動通信規格(例えば、CDMA、3G、4G、LTE(登録商標)、LTE-Advanced)を実装することができる。当然ながら、任意の無線通信規格またはデジタル移動通信規格を使用してもよい。
一実施形態において、デジタル撮影システム300は、無線ユニット340を介して、1つ以上のデジタル写真をネットワークベース(オンライン)写真媒体サービスまたはクラウドベース写真媒体サービスに送信するように構成される。1つ以上のデジタル写真は、不揮発性メモリ316または揮発性メモリ318もしくはプロセッサ複合体310に関連する任意の他のメモリ装置内に格納されてもよい。一実施形態において、ユーザは、1つ以上のデジタル写真をオンライン写真媒体サービスに保存し、そこから読取および閲覧するために、オンライン写真媒体サービスにアクセスし、デジタル写真をオンライン写真媒体サービスに送信する認証情報を有する。認証情報は、デジタル写真を送信する前にデジタル撮影システム300内に記憶されまたは生成されてもよい。オンライン写真媒体サービスは、デジタル写真の格納、デジタル写真の処理、デジタル写真の送信、デジタル写真の共有またはそれらの任意の組み合わせを提供するソーシャルネットワークサービス、写真共有サービス、または他のネットワークサービスを含むことができる。特定の実施形態において、オンライン写真媒体サービスは、関連するサーバに送信された画像データ(例えば、画像スタック、HDR画像スタック、画像パッケージ)に基づいて、1つ以上のデジタル写真を生成することができる。このような実施形態において、ユーザは、オンライン写真媒体サービスによる処理のために、デジタル撮影システム300から1つ以上の元画像をアップロードすることができる。
一実施形態において、デジタル撮影システム300は、少なくとも1つのカメラモジュール330を備える。別の実施形態において、デジタル撮影システム300は、複数のカメラモジュール330を備える。このような実施形態は、複数のカメラモジュール330によって複数の視図として撮影された撮影シーンを照明するように構成された少なくとも1つのストロボユニット336を含む。複数のカメラモジュール330は、パノラマ写真を生成するために、(例えば、45度以上のカメラ掃引角度で)広角視図を撮影するように構成されてもよい。一実施形態において、複数のカメラモジュール330は、立体写真を生成するために、(例えば、45度未満のカメラ掃引角度で)2つ以上の狭角視図を撮影するように構成されてもよい。他の実施形態において、複数のカメラモジュール330は、3D画像を生成するように構成されてもよく、または遠近感(例えば、z成分)のある写真を表示ユニット312または任意の他の表示装置に表示するように構成されてもよい。
一実施形態において、表示ユニット312は、2次元の画素配列を表示することによって、画像表示部を形成するように構成されてもよい。表示ユニット312は、液晶(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、有機LEDディスプレイ、または技術的に実現可能な任意の他のディスプレイを含むことができる。特定の実施形態において、表示ユニット312は、単一のHDR画像内または多重露光またはHDR画像スタックを含む2つ以上の画像セットのような撮影シーンから撮影された完全範囲の輝度値よりも狭いダイナミックレンジの画像彩度値を表示することができる。一実施形態において、技術的に実現可能な任意のHDR混成技術に従って、画像スタックを構成する画像を合併することによって、表示ユニット312のダイナミックレンジで表示できる合成画像を生成することができる。一実施形態において、制限されたダイナミックレンジは、対応する色彩強度の色チャネルごとに8ビットのバイナリ表現を指定することができる。他の実施形態において、制限されたダイナミックレンジは、色チャネルごとに8ビット以上(例えば、10ビット、12ビットまたは14ビット)のバイナリ表現を指定することができる。
図3Bは、一実施形態に従って、図3Aのデジタル撮影システム300内のプロセッサ複合体310を示す。必要に応じて、プロセッサ複合体310は、本明細書に開示された図面のいずれかの詳部に関連して実装することができる。しかしながら言うまでもなく、任意の所望の環境でプロセッサ複合体310を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、プロセッサ複合体310は、プロセッササブシステム360を含み、メモリサブシステム362を含んでもよい。一実施形態において、プロセッサ複合体310は、プロセッササブシステム360を実装するシステムオンチップ(SoC)素子を含んでもよく、メモリサブシステム362は、プロセッササブシステム360に接続された1つ以上のDRAM素子を含む。別の実施形態において、プロセッサ複合体310は、SoC素子およびメモリサブシステム362を構成する1つ以上のDRAM素子を封入したマルチチップモジュール(MCM)を含むことができる。
プロセッササブシステム360は、各々が相互接続374に接続している1つ以上の中央処理ユニット(CPU)コア370、メモリインターフェイス380、入力/出力インターフェイスユニット384、および表示インターフェイスユニット382を含むことができるが、これらに限定されない。1つ以上のCPUコア370は、メモリサブシステム362、揮発性メモリ318、不揮発性メモリ316、またはそれらの任意の組み合わせ内に常駐する命令を実行するように構成されてもよい。1つ以上のCPUコア370の各々は、相互接続374およびメモリインターフェイス380を介して、データを取り出して格納するように構成することができる。一実施形態において、1つ以上のCPUコア370の各々は、データキャッシュおよび命令キャッシュを含むことができる。さらに、2つ以上のCPUコア370は、データキャッシュ、命令キャッシュ、またはそれらの任意の組み合わせを共有することができる。一実施形態において、キャッシュ階層を実装して、各々のCPUコア370に私有(private)キャッシュ層および共有(public)キャッシュ層を提供することができる。
いくつかの実施形態において、プロセッササブシステム360は、1つ以上の画像処理ユニット(GPU)コア372を含むことができる。各GPUコア372は、画像処理高速化を実行するようにプログラムされた複数のマルチスレッド実行ユニットを含むが、これらに限定されない。さまざまな実施形態において、GPUコア372は、周知の規格(例えば、OpenGL(登録商標)、WebGL(登録商標)、OpenCL(登録商標)、CUDA(登録商標))および/または任意の他のプログラム可能な画像処理規格に従って、マルチスレッドプログラムを実行するように構成されることができる。特定の実施形態において、少なくとも1つのGPUコア372は、周知のHarris検出器または周知のHessian-Laplace検出器のような動き推定機能の少なくとも一部を実装する。この動き推定機能を用いて、画像スタック内の画像または画像部分を少なくとも部分的に整列することができる。例えば、一実施形態において、画像スタックに基づいてHDR画像をコンパイルすることができる。HDR画像をコンパイルする前に、まず、画像スタック内の2つ以上の画像を整列する必要がある。
図示のように、相互接続374は、メモリインターフェイス380、表示インターフェイスユニット382、入力/出力インターフェイスユニット384、CPUコア370、およびGPUコア372の間でデータを伝送するように構成される。さまざまな実施形態において、相互接続374は、1つ以上のバス、1つ以上のリング、クロスバー、メッシュ、または技術的に実現可能な任意の他のデータ伝送構造または技術を実装することができる。メモリインターフェイス380は、メモリサブシステム362を相互接続374に接続するように構成される。メモリインターフェイス380はまた、不揮発性メモリ316、揮発性メモリ318またはそれらの任意の組み合わせを相互接続374に接続することができる。表示インターフェイスユニット382は、表示ユニット312を相互接続374に接続するように構成されてもよい。表示インターフェイスユニット382は、特定のフレームバッファ機能(例えば、フレームリフレッシュ)を実現することができる。代わりに、別の実施形態において、表示ユニット312は、特定のフレームバッファ機能(例えば、フレームリフレッシュ)を実現することができる。入力/出力インターフェイスユニット384は、さまざまな入力/出力素子を相互接続374に接続するように構成されてもよい。
特定の実施形態において、カメラモジュール330は、画像スタック内の各画像を撮影するための露光パラメータを格納するように構成される。例えば、一実施形態において、撮影シーンを撮影するように指示されたときに、カメラモジュール330は、格納された露光パラメータに従って、画像スタックを構成する画像を撮影することができる。プロセッサ複合体310内で実行されるプログラム命令を含むソフトウェアモジュールは、画像スタックを撮影するようにカメラモジュール330に指示する前に、露光パラメータを生成して格納することができる。他の実施形態において、カメラモジュール330は、画像または画像スタックを計測するために使用され、プロセッサ複合体310内で実行されるプログラム命令を含むソフトウェアモジュールは、画像を取り込むようにカメラモジュール330に指示する前に、計測パラメータを生成して格納することができる。当然ながら、任意の方法でプロセッサ複合体310と組み合わせて、カメラモジュール330を使用することができる。
一実施形態において、画像スタックを構成する画像に関連する露光パラメータは、1つ以上の画像の露光パラメータを含む露光パラメータデータ構造内に格納されてもよい。別の実施形態において、プロセッサ複合体310内のカメラインターフェイスユニット(図3Bに図示せず)は、撮影シーンを撮影する前に、露光パラメータデータ構造から露光パラメータを読み出し、読み出した露光パラメータをカメラモジュール330に伝送するように構成することができる。露光パラメータに従ってカメラモジュール330を設定した後、カメラインターフェイスは、撮影シーンを撮影するようにカメラモジュール330に指示して、それに応じて、カメラモジュール330は、画像スタックを生成することができる。露光パラメータデータ構造は、カメラインターフェイスユニット、プロセッサ複合体310内のメモリ回路、揮発性メモリ318、不揮発性メモリ316、カメラモジュール330、または技術的に実現可能な任意の他のメモリ回路内に格納することができる。さらに、別の実施形態において、プロセッサ複合体310内で実行されるソフトウェアモジュールは、露光パラメータデータ構造を生成して格納することができる。
図3Cは、一実施形態に従ったデジタルカメラ302を示す。必要に応じて、デジタルカメラ302は、本明細書に開示された図面のいずれかの詳部に関連して実施されてもよい。しかしながら言うまでもなく、任意の所望の環境でデジタルカメラ302を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、デジタルカメラ302は、図3Aのデジタル撮影システム300のようなデジタル撮影システムを含むように構成することができる。図示のように、デジタルカメラ302は、カメラモジュール330を含む。カメラモジュール330は、撮影シーンを表す光学シーン情報を画像センサに合焦するように構成された光学素子を含むことができる。画像センサは、撮影シーンの光学シーン情報を電子的表現に変換することができる。
さらに、デジタルカメラ302は、ストロボユニット336およびシャッタレリーズボタン315を含むことができる。シャッタレリーズボタン315を用いて写真の撮影をトリガすることによって、デジタルカメラ302は、電子的表現を構成する1つ以上の画像を撮影する。他の実施形態において、技術的に実現可能な任意の他のシャッタレリーズ機構(例えば、タイマまたはリモート制御装置)を用いて、写真の撮影をトリガすることができる。
図3Dは、一実施形態に従った無線モバイル装置376を示す。必要に応じて、モバイル装置376は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でモバイル装置376を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、モバイル装置376は、撮影シーンを撮影するように構成されたデジタル撮影システム(例えば、図3Aのデジタル撮影システム300)を含むように構成することができる。さまざまな実施形態において、カメラモジュール330は、光学シーン情報を撮影シーンの電子的表現に変換するように構成された画像センサに、撮影シーンを表す光学シーン情報を合焦するように構成された光学素子を含むことができる。さらに、技術的に実現可能な任意のメカニズム、例えば、表示ユニット312を構成するタッチ入力表示システム上に設置されたタッチジェスチャなどの仮想ボタン、またはモバイル装置376の任意の側面または表面に配置された物理的ボタンを起動することによって、シャッタレリーズ命令を生成することができる。当然ながら、他の実施形態において、任意の数の他のボタン、外部入力/出力、またはデジタル入力/出力は、モバイル装置376に設けることができ、カメラモジュール330と共に使用することができる。
図示のように、一実施形態において、表示ユニット312を構成するタッチ入力表示システムは、カメラモジュール330が配置されたモバイル装置376の側面と反対側の側面に配置される。特定の実施形態において、モバイル装置376は、ユーザに面するカメラモジュール331を含み、ユーザに面するストロボユニット(図示せず)を含むこともできる。当然ながら、他の実施形態において、モバイル装置376は、任意の数のユーザに面するカメラモジュールまたは後方に面するカメラモジュール、ならびに任意の数のユーザに面するストロボユニットまたは後方に面するストロボユニットを含むことができる。
いくつかの実施形態において、デジタルカメラ302およびモバイル装置376は各々、カメラモジュール330によって撮影された画像スタックに基づいて、合成画像を生成し、格納することができる。画像スタックは、環境照明条件で撮影された1つ以上の画像、ストロボユニット336からのストロボ照明光で撮影された1つ以上の画像、またはそれらの組み合わせを含むことができる。
図3Eは、一実施形態に従ったカメラモジュール330を示す。必要に応じて、カメラモジュール330は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラモジュール330を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、カメラモジュール330は、ストロボ制御信号338を介してストロボユニット336を制御するように構成される。図示のように、レンズ390は、撮影される光学シーン情報352を画像センサ332に合焦するように構成される。一実施形態において、画像センサ332は、ストロボ制御信号338を介して、ストロボユニット336の詳細なタイミングを有利に制御することによって、ストロボユニット336を有効にした時に撮影した画像とストロボユニット336を無効にした時に撮影した画像との間の撮影時間を短縮する。例えば、画像センサ332が環境画像の撮影に関連する露光時間を完了した後であって、ストロボ画像を撮影する前に、画像センサ332は、ストロボユニット336が1マイクロ秒(または任意の所望の長さ)未満の時間でストロボ照明光350を出射できるようにしてもよい。
他の実施形態において、1つ以上の所望の目標点に基づいて、ストロボ照明光350を設定することができる。例えば、一実施形態において、露光時間に応じて、ストロボ照明光350は、画像の前景に位置する物体を照明することができ、画像の背景に位置する物体を照明することもできる。一実施形態において、ストロボユニット336を有効にすると、画像センサ332は、ストロボ画像の露光を直ちに開始することができる。したがって、画像センサ332は、画像スタックの生成に関連するストロボユニット336の有効化および無効化を含む撮影動作を直接に制御することができる。この画像スタックは、ストロボユニット336を無効にした状態で撮影した少なくとも1つの画像、およびストロボユニット336を有効または無効にした状態で撮影した少なくとも1つの画像を含み得る。一実施形態において、画像センサ332によって撮影された画像スタックを含むデータは、相互接続334を介して、プロセッサ複合体310内のカメラインターフェイスユニット386に送信される。いくつかの実施形態において、カメラモジュール330は、画像センサコントローラを含み、画像センサコントローラは、画像センサ332の動作を制御しながらストロボ制御信号338を生成するように構成される。
図3Fは、一実施形態に従ったカメラモジュール330を示す。必要に応じて、カメラモジュール330は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラモジュール330を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、カメラモジュール330は、ストロボユニット336の状態情報に基づいて画像を撮影するように構成することができる。状態情報は、特定の強度および/または色のストロボ照明光350を生成するようにストロボユニット336に指示するための1つ以上のストロボパラメータ(例えば、ストロボ強度、ストロボの色、ストロボの時間)を含むがこれらに限定されない。一実施形態において、ストロボユニット336に関連する状態情報を設定するためのコマンドは、ストロボ制御信号338を介して送信することができ、カメラモジュール330は、ストロボ制御信号338を監視することによって、ストロボユニット336を有効にした時間を検出することができる。例えば、一実施形態において、カメラモジュール330は、ストロボ制御信号338によってストロボユニット336が有効または無効にされてからマイクロ秒以内に、ストロボユニット336が有効または無効にされた時間を検出することができる。ストロボ照明光を必要とする画像を撮影するために、カメラインターフェイスユニット386は、ストロボ制御信号338を介してイネーブルコマンドを送信することによって、ストロボユニット336を有効にすることができる。一実施形態において、カメラインターフェイスユニット386は、図3Bの入力/出力インターフェイス384として、プロセッサ複合体310のプロセッササブシステム360内に含まれてもよい。イネーブルコマンドは、信号レベル遷移コマンド、データパケットコマンド、レジスタ書き込みコマンド、または技術的に伝送可能な任意の他のコマンドを含むことができる。カメラモジュール330は、ストロボユニット336が有効にされたことを感知し、ストロボユニット336が有効にされている間にストロボ照明光を必要とする1つ以上の画像を画像センサ332に撮影させる。このような実施形態において、画像センサ332は、新しい露光撮影を開始するために、トリガ信号としてストロボユニット336に発行されるイネーブル信号を待機するように構成することができる。
一実施形態において、カメラインターフェイスユニット386は、相互接続334を介して、露光パラメータおよびコマンドをカメラモジュール330に送信することができる。特定の実施形態において、カメラインターフェイスユニット386は、ストロボ制御信号338を介してストロボユニット336に制御コマンドを送信することによって、ストロボユニット336を直接に制御するように構成することができる。カメラインターフェイスユニット386は、カメラモジュール330およびストロボユニット336の両方を直接に制御することによって、カメラモジュール330およびストロボユニット336に精確な時間同期で各々の動作を行わせることができる。一実施形態において、精確な時間同期は、イベントタイミング誤差の500マイクロ秒未満であってもよい。さらに、イベントタイミング誤差は、意図したイベントの発生時間と実際のイベントの発生時間との差であってもよい。
別の実施形態において、カメラインターフェイスユニット386は、カメラモジュール330から画像データを受信しながら統計値を累積するように構成することができる。特に、カメラインターフェイスユニット386は、相互接続334を介して、画像データを受信しながら、所定の画像の露光統計値を累積することができる。露光統計値は、輝度ヒストグラム、過度露光の画素数、露光不足の画素数、画素強度の強度加重和のうち1つ以上、またはそれらの任意の組み合わせを含むがこれらに限定されない。カメラインターフェイスユニット386は、プロセッサ複合体310内の1つ以上のCPUコア370などのプロセッサによって定義された物理的または仮想的アドレス空間内のメモリにマップされた記憶場所として、露光統計値を提示することができる。一実施形態において、露光統計値は、メモリにマップされたレジスタ空間にマップされた記憶回路に記憶され、相互接続334を介してアクセスすることができる。他の実施形態において、露光統計値は、取り込まれた画像の画素データを送信すると共に送信される。例えば、所定の画像の露光統計値は、取り込まれた画像の画素強度データを送信した後、インラインデータとして送信されてもよい。露光統計値は、カメラインターフェイスユニット386内で計算、記憶またはキャッシュすることができる。
一実施形態において、カメラインターフェイスユニット386は、シーンホワイトバランスを推定するために、色統計値を累積することができる。技術的に実現可能な任意の色統計値、例えば赤、緑、および青色チャネルを含む異なる色チャネルの彩度加算値を累積することによって、ホワイトバランスを推定することができる。色チャネルの彩度加算値を用いて、ホワイトバランスモデル例えばグレーワールドホワイトバランスモデルに従って、関連する画像に対してホワイトバランスカラー補正を行うことができる。他の実施形態において、曲線近似統計値は、線形曲線近似または二次曲線近似のために蓄積され、画像のホワイトバランス補正に使用される。
一実施形態において、カメラインターフェイスユニット386は、周囲画像と、ストロボ照明光で撮影された1つ以上の画像との間など、画像間のカラーマッチングを実行するための空間色統計値を累積することができる。露光統計値と同様に、色統計値は、プロセッサ複合体310内のメモリにマップされた記憶場所として提示されてもよい。一実施形態において、色統計値は、プロセッササブシステム360内のメモリにマップされたレジスタ空間にマップされ、相互接続334を介してアクセスすることができる。他の実施形態において、色統計値は、取り込まれた画像の画素データを送信すると共に送信されてもよい。例えば、一実施形態において、所定の画像の色統計値は、取り込まれた画像の画素強度データを送信した後、インラインデータとして送信されてもよい。色統計値は、カメラインターフェイスユニット386内で計算、記憶またはキャッシュすることができる。
一実施形態において、カメラモジュール330は、ストロボ制御信号338をストロボユニット336に送信することによって、カメラモジュール330が画像を撮影している間にストロボユニット336に照明光を生成させることができる。別の実施形態において、カメラモジュール330は、カメラインターフェイスユニット386からストロボユニット336が有効にされていることを示す指示信号を受信すると、ストロボユニット336によって照明された画像を撮影することができる。さらに別の実施形態において、カメラモジュール330は、シーン照明の急激な上昇によって撮影シーン内のストロボ照明を検出すると、ストロボユニット336によって照明された画像を撮影することができる。さらに別の実施形態において、カメラモジュール330は、1つの画像を撮影する時に、ストロボ照明光を生成するようにストロボユニット336を有効にすることができ、異なる画像を撮影する時に、ストロボユニット336を無効にすることができる。
図3Gは、一実施形態に従ったカメラモジュール330を示す。必要に応じて、カメラモジュール330は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラモジュール330を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、カメラモジュール330は、アプリケーションプロセッサ335と通信することができる。図示のカメラモジュール330は、コントローラ333と通信する画像センサ332を含む。さらに、図示のコントローラ333は、アプリケーションプロセッサ335と通信する。
一実施形態において、アプリケーションプロセッサ335は、カメラモジュール330の外部に設けることができる。図示のように、レンズ390は、撮影される光学シーン情報を画像センサ332に合焦するように構成され得る。その後、画像センサ332によって撮影された光学シーン情報は、後続処理およびアプリケーションプロセッサ335への送信の少なくとも一方のために、画像センサ332からコントローラ333に送信されてもよい。別の実施形態において、コントローラ333は、画像センサ332によって撮影された光学シーン情報の記憶または処理された光学シーン情報の記憶を制御することができる。
別の実施形態において、コントローラ333は、画像センサ332が周囲画像の撮影に関連する露光時間を完了した後、ストロボユニットが短時間(例えば、1マイクロ秒未満)ストロボ照明光を出射することを可能にすることができる。さらに、コントローラ333は、画像センサ332の制御動作と連動して、ストロボ制御信号338を生成するように構成されてもよい。
一実施形態において、画像センサ332は、相補型金属酸化膜半導体(CMOS)センサまたは電荷結合素子(CCD)センサであってもよい。別の実施形態において、コントローラ333および画像センサ332の両方は、一体化システムまたは集積回路としてパッケージ化されてもよい。さらに別の実施形態において、コントローラ333および画像センサ332は、個別のパッケージに形成されてもよい。一実施形態において、コントローラ333は、画像センサ332から光学シーン情報の受信、光学シーン情報の処理、さまざまな機能の時間調整、およびアプリケーションプロセッサ335に関連する信号の生成を行うための回路を提供することができる。さらに別の実施形態において、コントローラ333は、露光、シャッタ、ホワイトバランス、およびゲイン調整のうち1つ以上を制御するための回路を提供することができる。コントローラ333の回路による光学シーン情報の処理は、ゲインの適用、増幅およびアナログ−デジタル変換のうち1つ以上を含むことができる。光学シーン情報を処理した後、コントローラ333は、対応するデジタル画素データをアプリケーションプロセッサ335などに送信することができる。
一実施形態において、アプリケーションプロセッサ335は、プロセッサ複合体310と、揮発性メモリ318および不揮発性メモリ316のうち少なくとも1つ、または任意の他のメモリ装置および/またはシステム上で実装することができる。アプリケーションプロセッサ335は、予め、受信された光学シーン情報またはカメラモジュール330からアプリケーションプロセッサ335に送信されたデジタル画素データを処理するように構成されてもよい。
図4は、一実施形態に従ったネットワークサービスシステム400を示す。必要に応じて、ネットワークサービスシステム400は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でネットワークサービスシステム400を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、ネットワークサービスシステム400は、デジタル撮影システムを実装する装置に、ネットワークアクセスを提供するように構成されてもよい。図示のように、ネットワークサービスシステム400は、無線モバイル装置376、無線アクセスポイント472、データネットワーク474、データセンタ480、およびデータセンタ481を含む。無線モバイル装置376は、デジタル無線回線471を介して無線アクセスポイント472と通信することによって、デジタル画像に関連するデータを含むデジタルデータを送受信することができる。無線モバイル装置376および無線アクセスポイント472は、本発明の範囲および精神を逸脱することなく、デジタル無線回線471を介してデジタルデータを送信するための技術的に実現可能な任意の送信技術を実現することができる。特定の実施形態において、仮想構造を用いて1つ以上のデータセンタ480、481を実装することができる。これによって、所定のデータセンタ480、481内の各システムおよびサブシステムは、特定のデータ処理およびネットワーク作業を実行するように構成された仮想マシンを構成することができる。他の実施形態において、1つ以上のデータセンタ480および481は、複数の物理サイトに亘って物理的に分散されてもよい。
無線モバイル装置376は、デジタルカメラを含むように構成されたスマートフォン、無線ネットワーク接続を含むように構成されたデジタルカメラ、実物増強装置、デジタルカメラおよび無線ネットワーク接続を含むように構成されたラップトップ、またはデジタル撮影システムおよび無線ネットワーク接続を含むように構成された他の技術的に実現可能な任意のコンピューティング装置を含むことができる。
さまざまな実施形態において、無線アクセスポイント472は、デジタル無線回線471を介して無線モバイル装置376と通信し、技術的に実行可能な任意の伝送媒体、例えば、任意の電気伝送媒体、任意の光学伝送媒体または任意の無線伝送媒体を介してデータネットワーク474と通信するように構成されてもよい。例えば、一実施形態において、無線アクセスポイント472は、無線アクセスポイント472およびデータネットワーク474内のルータシステムまたはスイッチシステムに接続された光ファイバを介して、データネットワーク474と通信することができる。広域ネットワーク(WAN)リンクなどのネットワークリンク475は、データネットワーク474とデータセンタ480との間にデータを送信するように構成することができる。
一実施形態において、データネットワーク474は、ルータ、スイッチ、長距離伝送システム、支給システム、認可システム、およびネットワークエンドポイントの間に、例えば無線アクセスポイント472とデータセンタ480との間にデータを伝送するように構成された通信および演算サブシステムの技術的に実現可能な組み合わせを含むことができる。一実現例において、モバイル装置376は、データネットワーク474に接続された1つ以上の無線アクセスポイントを介してデータセンタ480と通信するように構成された複数の無線モバイル装置のうち1つを含むことができる。
さらに、さまざまな実施形態において、データセンタ480は、スイッチ/ルータ482および少なくとも1つのデータサービスシステム484を含むがこれらに限定されない。スイッチ/ルータ482は、ネットワークリンク475と各データサービスシステム484との間に、データトラフィックを伝送することができる。スイッチ/ルータ482は、イーサネット(登録商標)メディアレイヤ伝送、レイヤ2スイッチング、レイヤ3ルーティングなどの技術的に実現可能な伝送技術を実装することができる。スイッチ/ルータ482は、データサービスシステム484とデータネットワーク474との間に、データを送信するように構成された1つ以上の個別のシステムを備えることができる。
一実施形態において、スイッチ/ルータ482は、複数のデータサービスシステム484の間でセッションレベルの負荷分散を実現することができる。各データサービスシステム484は、少なくとも1つの計算システム488および1つ以上の記憶システムを含むことができる。各計算システム488は、1つ以上の処理装置、例えば、中央処理装置、グラフィック処理装置またはそれらの任意の組み合わせを含むことができる。所定のデータサービスシステム484は、共同動作するように構成された1つ以上の物理的に異なるシステムを備える物理システムとして実装されてもよい。代替的には、所定のデータサービスシステム484は、任意の物理システム上で実行される1つ以上の仮想システムを備える仮想システムとして実装されてもよい。特定のシナリオにおいて、データネットワーク474は、例えばネットワークリンク476を介して、データセンタ480と別のデータセンタ481との間でデータを送信するように構成することができる。
別の実施形態において、ネットワークサービスシステム400は、本発明の1つ以上の実施形態を実装するように構成された任意のネットワーク接続モバイル装置を含むことができる。例えば、いくつかの実施形態において、2つの異なる無線モバイル装置間に、アドホック無線ネットワークなどのピアツーピア(P2P)ネットワークを確立することができる。このような実施形態において、デジタル画像データをデータセンタ480に送信する必要なく、2つの無線モバイル装置間で送信することができる。
以下、ユーザの要望に従って、前述した方法が実施され得るさまざまなオプション構造および用途に関するより事例的な情報を説明する。特に留意すべきことは、以下の情報は、説明の目的のために記載されたものであり、いかなる限定として考えるではないことである。以下の特徴のいずれかは、必要に応じて、記載された他の特徴をと共に組み込むことができ、または他の特徴を除外して組み込むことができる。
図5は、一実施形態に従って、アプリケーションプロセッサと通信するカメラシステム500を示す。必要に応じて、カメラシステム500は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラシステム500を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、カメラモジュール330は、画像センサ332を含み、画像センサ332は、アナログ−デジタルコンバータ502(A/Dコンバータ)と通信し、A/Dコンバータ502は、コントローラ333と通信し、コントローラ333は、アプリケーションプロセッサと通信することができる。一実施形態において、A/Dコンバータの出力504は、コントローラ333に提供される。別の実施形態において、A/Dコンバータ502は、コントローラ333に一体化される。
一実施形態において、レンズ390は、撮影される光学シーン情報を画像センサ332上に合焦するように構成されてもよい。その後、画像センサ332によって撮影された光学シーン情報は、後続処理およびアプリケーションプロセッサ335への送信の少なくとも一方のために、画像センサ332からA/Dコンバータ502に送信される。コントローラ333は、画像センサ332によって撮影された光学シーン情報の記憶または処理された光学シーン情報の記憶を制御することができる。
一実施形態において、コントローラ333は、画像センサ332と直接に通信することができる。例えば、一実施形態において、コントローラは、ハードワイヤード論理素子を含み、ハードウェア論理素子は、画像センサ332によって撮影され、A/Dコンバータ502によって変換された画素データの少なくとも一部を処理するように構成される。このような実施形態において、コントローラは、変換された画素データを処理し、得られた制御信号を画像センサに送り返すことができる。例えば、一実施形態において、コントローラは、撮影画像の露光レベルを処理し、撮影画像に応じて制御信号の形にしたフィードバック(例えば、正確露光、過度露光、露光不足)を画像センサに提供することができる。
別の実施形態において、コントローラ333は、アプリケーションプロセッサ335と通信することができる。さらに、図示のように、アプリケーションプロセッサ335は、デバイスドライバ508およびソフトウェアモジュール510と通信可能なカメラインターフェイス506を含む。
一実施形態において、カメラインターフェイス506は、カメラモジュール330内のコントローラ333からの要求を受信し、結果をコントローラ333に直接にフィードバックすることができる。別の実施形態において、カメラインターフェイス506は、デバイスドライバ508と通信することができる。さまざまな実施形態において、コントローラ333内、カメラインターフェイス506内、デバイスドライバ508内、および/またはソフトウェアモジュール510内で、検索を行うことができる。
一実施形態において、デバイスドライバ508を用いて、画素データに関連する範囲を決定することができる。例えば、一実施形態において、完全に暗い画素または完全に明るい画素に合焦しないことが望ましい場合がある。このような実施形態において、ヒストグラムデータに所定の関連曲線を乗算し、その結果を画像センサにフィードバックすることによって、画素データの取り込みを調整することができる。さらに、一実施形態において、ヒストグラムデータに関連曲線を乗算することにより、ヒストグラム分布の中央画素を合焦の目標にすることができる。当然ながら、他の実施形態において、カメラインターフェイス506および/またはソフトウェアモジュール510を用いて、画素データに関連する範囲を決定することができる。
さらに、別の実施形態において、カメラモジュール330と共に、アプリケーションプロセッサ335の任意の構成素子を使用して、画素データの処理(例えば、画素データの露光の決定、画素データのホワイトバランスの決定)、画素データの計測(例えば、適切な露光の決定)、画素データの出力(例えば、JPEGへの変換)、目標部位の決定(例えば、自動的にまたは手動フィードバックを介して)、目標部位の追跡、(例えば、製造者またはクラウド設定に基づいて)1つ以上の最適設定の適用、および/または画像センサ332に関連する任意の他の機能の提供を支援することができる。一実施形態において、図3Aのプロセッサ複合体310は、アプリケーションプロセッサ335を含む。
図6は、一実施形態に従って、1つ以上の目標部位を処理するためのカメラシステム600を示す。必要に応じて、カメラシステム600は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラシステム600を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、カメラモジュール330は、これまで説明したように、画像センサ332で画像602を受信することができる。さらに、画像センサ332は、A/Dコンバータ502を介して画像を出力することができる。画像602は、1つ以上の目標部位604および606を含むことができる。
いくつかの実施形態において、1つ以上の目標部位604および606は、装置によって自動で選択されてもよい。例えば、一実施形態において、第1露光を画像に関連し、屋内露光設定で計測しない。さらに、第1目標部位(例えば、部位604)は、屋外に関連する露光に対応し、第2目標部位(例えば、部位606)は、顔に関連する露光に対応することができる。このような実施形態において、結果を最適化するために、(例えば、ハードワイヤード論理素子によって)最初に第1露光を計測しておいてもよい。目標部位は、(例えば、過度露光領域、検出された顔および/または物体に基づいて)装置によって選択されてもよい。
別の実施形態において、目標部位は、ユーザによって手動で選択されてもよい。例えば、一実施形態において、画像センサ332は、A/Dコンバータ502を介して画像を出力し、演示装置(例えば、スクリーン)に表示させることができる。装置のユーザは、(例えば、スクリーンにタッチすることによって)第1目標部位(例えば、屋外)を選択し、選択された領域を暗くするように指示することができる。さらに、ユーザは、第2目標部位(例えば、顔)を選択し、選択されたものが顔であり、顔最適化設定を適用すべきであることを指示することができる。これらの選択に基づいて、目標部位から生成された露光情報(付随する露光および/または設定などを含む)が、画像センサ332にフィードバックされる。その後、画像センサは、目標部位に関連する情報に基づいて、画像を取り込むことができる。
一実施形態において、画像センサ332は、(例えば、通常の第1露光、屋外設定に基づく第2露光、顔の特徴を最適化する第3露光で)複数の画像を取り込み、取り込んだ複数の画像を混合することによって、1つの合成画像を形成することができる。別の実施形態において、画像センサ332は、1組の画素データを取り込み、画素データに複数のゲインを適用し(例えば、画素データに第1のISOを適用してから、画素データに第2のISOを適用し)、結果として得られた各画像(例えば、ゲイン+画素データ)を使用して、他の全ての結果画像と組み合わせることによって、1つの混合画像を形成することができる。
いくつかの実施形態において、2つ以上の結果画像の混合は、目標部位に優先順位の割り当てを含むことができる。例えば、一実施形態において、第1結果画像は、通常露光に関連付けられ、第2結果画像は、第1目標部位に関連付けられる。第1結果画像および第2結果画像を混合する場合、第1目標部位に関して第2画像に優先度を与える(すなわち、主に第2画像からの第1目標部位に関連する画素データを混合する)。
別の実施形態において、目標部位に関連して、画素データを取り込むことができる。例えば、一実施形態において、ユーザは、第1目標部位を選択し、露光を暗くする必要があること(例えば、屋外)を示すことができる。したがって、目標部位の露光を低減することができ、画素データを取り込むときに、画像センサは、目標部位に関連する画素データのみを取り込むことができる(すなわち、目標部位以外の画素データを取り込みない)。このようにして、目標部位に関連する画素データのみを取り込むため、取り込む量が低減する。画素データの取り込む量が低減したため、その後の処理がより迅速になり、画像の全体を取り込むための露光情報を決定することができる。別の実施形態において、画像センサが画素データを取り込み、アナログ画素データに第1ゲイン(例えば、第1通常露光)を適用した場合、第1目標部位に関連するアナログ画素に第2ゲインを適用することができる。アナログ画素に第2ゲインを適用する場合、第2ゲインは、第1目標部位のみに適用されてもよい(すなわち、他の領域の画素データを除外する)。
当然ながら、他の実施形態において、上記に説明したように(例えば、図5、図3G)、A/Dコンバータ502からの出力は、継続して他の構成要素に与えることができる。
図7は、一実施形態に従って、ホワイトバランスを調整するためのカメラシステム700を示す。必要に応じて、カメラシステム700は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でカメラシステム700を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、カメラシステム700は、カメラモジュール330、画像センサ332、A/Dコンバータ502、A/Dコンバータ出力504、RGBコントローラ702、赤色チャネル出力704、緑色チャネル出力706、青色チャネル出力708、加算モジュール710、および補正信号712を含んでもよい。
さまざまな実施形態において、画像センサ332、A/Dコンバータ502およびA/Dコンバータ出力504は、既に説明したように動作することができる。
一実施形態において、RGBコントローラ702は、A/Dコンバータ502からの出力を受信し、処理することができる。一実施形態において、RGBコントローラ702を用いて、画素データの各色チャネルに関連する画素輝度を決定することができる。さらに、RGBコントローラ702を用いて、各チャネル(例えば、赤、緑、青)を正規化することができる。
RGBコントローラ702は、画素データの処理(例えば、各チャンネルの正規化)を終了した後、RGBコントローラ702は、カラーチャンネル出力を出力することができる。例えば、一実施形態において、RGBコントローラ702は、赤色チャネル、緑色チャネルおよび青色チャネルの係数を出力することができる。さまざまな実施形態において、この係数は、赤色チャネル出力704、緑色チャネル出力706、および青色チャネル出力708に対応することができる。
一実施形態において、係数は、一画素に対する一色チャネルの輝度値を含むことができる。例えば、一実施形態において、ホワイトバランスの補正は、加算モジュール710においてフレームごとに行うことができ、アナログゲインを指定するフィードバックは、(例えば、色補正係数に基づいて)達成すべきホワイトバランス制約を引き起こすことができる。このような実施形態において、ホワイトバランス補正は、少なくとも部分的に、グレイワールド制約(例えば、グレイワールドアルゴリズム、全てのカラーの平均がグレーであること)に基づくことができる。さらに、各カラーチャンネルのアナログゲインを指定するフィードバックは、画像センサ332にフィードバックされてもよい。
別の実施形態において、ホワイトバランスの補正は、加算モジュール710においてフレームごとに行うことができ、ホワイトバランス補正を指定するフィードバックは、(例えば、A/Dコンバータ502による)デジタル量子化の前に、アナログ領域(例えば、画像センサ332)に、または(例えば、RGBコントローラ702の)デジタル領域に適用することができる。当然ながら、一実施形態において、演算結果をフィードバックすることは、画像センサ、アナログ−デジタルコンバータ、またはアナログ−デジタルコンバータからのデジタル出力のうち少なくとも1つに、結果を与えることを含んでもよい。
一実施形態において、補正信号712は、RGBコントローラ702からのデジタル画素データに適用されてもよい。一実施形態において、RGBコントローラ702は、デジタル画素データを色成分(例えば、赤、緑)を分離し、704、706および708(および/または他のパス)を介してデジタル画素を加算モジュール710に送信することができる。一実施形態において、加算モジュールは、グレーワールド制約を仮定して、各色チャネルを加算し、平均化する。
別の実施形態において、加算モジュール710からの画素データは、RGBコントローラにフィードバックされ、他のパラメータ(例えば、露光、彩度)を変更する必要があるか否かを決定することができる。当然ながら、他の実施形態において、同一の素子(例えば、同一の画像センサダイ、コントローラダイ、またはプロセッサ複合体/アプリケーションプロセッサのダイ)上で、RGBコントローラ702および加算モジュール710を実装することができる。
別の実施形態において、加算モジュール710を使用して、画素データに関連する他の統計値を得ることができる。例えば、一実施形態において、加算モジュールは、ホワイトバランス補正係数の計算に使用される色チャネル彩度値を加算することができる。このような実施形態において、補正信号712は、ホワイトバランス補償信号を含むことができる。別の実施形態において、加算モジュール710は、所定のフレームのヒストグラムを生成するように構成される。その後、ヒストグラムを処理することによって、露光情報を生成することができる。生成された露光情報は、次のフレームで画像センサ332にフィードバックすることができる。
一実施形態において、補正信号712をRGBコントローラ702の出力画素714に適用することは、RGBコントローラ702(またはプロセッサーダイ上の他の処理複合体)によって、(例えば、加算モジュール710によって計算された)補正係数を現在画像(または任意の後続画像)に適用することを含む。さらに、RGBコントローラ702によって、補正係数を次の画像に適用することができる。このような実施形態において、次の画像に補正係数を適用することは、ビデオフレームに対して特定の用途を有することができる。この場合、ビデオフレームを再生しながら、リアルタイムで色補正(例えば、ホワイトバランス)を計算し、フレームを補正することができる(すなわち、ビデオストリームの表示を遅くしないように、各フレームを計算および補正するのではなく、各フレームを後続のフレームに対して補正する)。
一実施形態において、補正信号712は、加算モジュール710からの統計値を含むことができ、その統計値(例えば、ホワイトバランス統計値、ホワイトバランス係数、露光、露光係数)は、ローパスフィルタ(例えば、移動平均フィルタ)を用いて減衰することができる。例えば、減衰によって、次のフレームではなく、数秒内で実質的に新しいホワイトバランスを有効にすることができる。したがって、一実施形態において、シーンが変化する場合(例えば、カメラを移動して、新しい被写体に合焦する場合)、例えば、カメラを第1シーンから第2シーンに移動するときに各フレームのホワイトバランスを再調整するのではなく、最初のシーン(最初にカメラを向けた場所)および最終のシーン(現在カメラを向けている場所)に基づき、ホワイトバランスを再調整することができる。
図8は、一実施形態に従って、合焦を行うための周波数方法800を示す。必要に応じて、周波数方法800は、本明細書に開示された図面のいずれかの詳部に関連して実行されてもよい。しかしながら言うまでもなく、任意の所望の環境で周波数方法800を実行することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
図示のように、周波数方法800は、画素データの行802を含むことができる。一実施形態において、行802は、画素データの1つ以上のブロック804を含むことができる。一実施形態において、1つ以上のブロック804は、画素データの8×8ブロック組を含むことができる。さらに、一実施形態において、画素データ(例えば、画素データのブロック)に対して、離散コサイン変換(DCT)を実行することができる。他の実施形態において、画素データは、DCTによって既に処理されたものであってもよい。
別の実施形態において、画素データのラインは、1次元高速フーリエ変換(1DFFT)806に従って処理されてもよい。このような実施形態において、空間領域画像データ(例えば、彩度画像データ)は、周波数領域画像データに変換される。同様に、他の技術を適用して、空間領域画像データを周波数領域画像データに変換することができる。
図示のように、周波数領域グラフ810は、低周波数値808および高周波数値812を含むことができる。一実施形態において、周波数領域グラフ810を用いて、1つ以上の周波数値に基づいて画素データを分類することができる。一実施形態において、周波数領域値の上位25%(816)を表す値の加算値を基準として用いて、合焦信号を生成することができる。
一実施形態において、画像の焦点が非常に合っておらず、画像に対してDCTを実行した場合、非常に低い周波数成分が存在する可能性がある。このことは、例えば、焦点が合っており、より高い周波数成分(例えば、DC成分が低くなる)の加算値を含む画像とは対照的である。このような実施形態において、ハードワイヤード論理素子を用いて、画素データの少なくとも1つ以上のラインを分析することができ、分析操作は、周波数分析の実行を含む。
特定の実施形態において、画素データのラインをハードワイヤード論理素子に入力し、画素データに対して、1DFFT(例えば、FFT)を含む演算を実行することによって、高周波数データおよび低周波数データの両方を含む結果を生成することができる。画像フレームを構成する周波数値ラインの加算に基づき、周波数データを示すヒストグラムをコンパイルすることができる。この実施形態において、画素データの新しいラインをハードワイヤード論理素子に入力し、所定のフレームに対して、周波数ヒストグラム内の周波数値の最終的な加算値を生成することができる。このようにして、画素データのフレームを構成する画素データのラインに基づいて、完全なヒストグラムを構築することができる。一実施形態において、周波数中央点などのヒストグラムパラメータは、焦点距離を表す。カメラモジュール内のレンズの焦点範囲に亘って焦点距離を最大化することは、画像が最適な焦点に位置するポイントに対応する。周波数領域ヒストグラムを計算する操作は、画像の焦点を目標部位の周りに合わせするために、フレーム内のサブ領域に対して実行されてもよい。図示のように、曲線818は、レンズの焦点位置の関数としての焦点距離を示す。図示のように、焦点距離を最適化するレンズの焦点位置を見付けるために、シーク処理を実行することができる。当然ながら、技術的に実現可能な任意の方法(例えば、派生分析、試行値に基づく確率分析)を用いて、曲線に関連する最大値を計算することができる。
このようにして、さまざまな実施形態において、画像の全体または画像の1つ以上の目標部位を、焦点を計算するための基礎として使用することができる。別の実施形態において、8×8ブロックの画素データをハードワイヤード論理素子に入力し、画素データに対してDCTを含む演算を実行することによって、高周波数データおよび低周波数データの両方を含む結果を生成することができる。特定の範囲(および/または複数の範囲)の周波数値を加算し、その結果を用いて、周波数ヒストグラムを生成することができる。一実施形態において、ヒストグラムを用いて、画素データの複数のブロック、画素データの複数の行、画素データの複数の列に基づいて、最大値(例えば、焦点距離)を計算することができる。当然ながら、いくつかの実施形態において、上記の記載に基づいて、合焦する機能は、シーン情報および/またはテキスト情報を含む画像データに影響を及ぼす。さらに、一実施形態において、特定のフレームの焦点距離は、そのフレームの高周波数成分の加算値であってもよい。
他の実施形態において、ソフトウェア論理素子およびハードウェア論理素子の組み合わせを用いて、焦点を合わせることができる。例えば、一実施形態において、ハードウェア論理素子を用いて、静的シーンに焦点を完全に合わせることができる。しかしながら、別の実施形態において、対象物は、周囲に走っている子供である可能性がある。このような実施形態において、ソフトウェアを用いて対象物を追跡し、ハードウェア論理素子を用いて、ソフトウェアによって決定された位置に基づいて焦点を合わせることができる。当然ながら、他の実施形態において、ハードウェアおよびソフトウェアの任意の組み合わせを用いて、画素データの焦点を合わせることができる。
図示のように、プロット820は、焦点距離−焦点位置を示す。一実施形態において、曲線818は、焦点位置の関数としての焦点距離に対応する。さらに、第1点822は、第1ぼやけた焦点位置(ぼやけ1)を表し、第2点824は、第2ぼやけた焦点位置(ぼやけ2)を表す。第1点822および第2点824に基づいて、最大焦点距離に対応する正しい点826が決定される。さまざまな実施形態において、1つ以上のプロセッサは、焦点距離曲線818に沿って2つ以上の点を算入することによって、焦点位置を決定することができる。当然ながら、当技術分野で知られている任意の方法(例えば、最大値を決定するための微分)を用いて、焦点距離の最大値を決定することができる。他の実施形態において、焦点距離曲線818は、フレームの高周波数成分の単純和を表す。例えば、焦点距離曲線818は、焦点位置の関数としての周波数成分の上位25%の和を表すことができる。
図9は、本発明の一実施形態に従って、合成画像920を生成するためのユーザインターフェイス(UI)システム900を示す。必要に応じて、UIシステム900は、本明細書に開示された図面のいずれかの詳部に関連して実装されてもよい。しかしながら言うまでもなく、任意の所望の環境でUIシステム900を実装することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
一実施形態において、合成画像920は、少なくとも2つの関連するデジタル画像の組み合わせを含む。一実施形態において、合成画像920は、第1デジタル画像と第2デジタル画像とを組み合わせた表現を含むがこれに限定されない。別の実施形態において、合成画像920を計算するために使用されたデジタル画像は、少なくとも2つの異なるゲインでアナログ信号を増幅することによって生成され得る。このアナログ信号は、画像センサに集束された光学画像に基づいて取り込まれた光学シーン情報を含む。さらに別の実施形態において、アナログ信号は、少なくとも2つの異なるゲインを用いて、画素ごと、ラインごと、またはフレームごとに増幅されてもよい。
一実施形態において、UIシステム900は、画像表示部910を提供する。画像表示部910は、合成画像920、トラック932に沿って移動するように構成されたスライダ制御部930、および各々が画像表示部910内に表示された視覚マーカを含む2つ以上の指示点940を含むが、これらに限定されない。
一実施形態において、UIシステム900は、デジタル撮影システム300のプロセッサ複合体310内で実行される調整ツールによって生成され、画像表示部910は、表示ユニット312上で表示される。一実施形態において、少なくとも2つのデジタル画像、例えば少なくとも2つの関連するデジタル画像は、合成画像920を生成するための元画像を構成する。少なくとも2つのデジタル画像は、不揮発性メモリ316、揮発性メモリ318、メモリサブシステム362、またはそれらの任意の組み合わせに保存され得る。別の実施形態において、UIシステム900は、ラップトップコンピュータまたはデスクトップコンピュータなどのコンピュータシステム内で実行される調整ツールによって生成される。少なくとも2つのデジタル画像は、コンピュータシステムに送信されてもよく、または付属のカメラ装置によって生成されてもよい。さらに別の実施形態において、UIシステム900は、クラウドベースのサーバコンピュータシステムによって生成され、このサーバコンピュータシステムは、少なくとも2つのデジタル画像をクライアントブラウザにダウンロードすることができる。クライアントブラウザは、以下で説明する合成動作を実行することができる。別の実施形態において、UIシステム900は、クラウドベースのサーバコンピュータシステムによって生成され、このサーバコンピュータシステムは、モバイル装置内のデジタル撮影システムから少なくとも2つのデジタル画像を受信し、以下で説明する合成動作を実行して、合成画像920を生成することができる。
スライダ制御部930は、指示点940−Aおよび940−Cに対応する2つの端点の間に移動するように構成されてもよい。1つ以上の指示点、例えば指示点940−Bは、2つの端点の間に配置されてもよい。各指示点940は、特定のバージョンの合成画像920または少なくとも2つのデジタル画像の特定の組み合わせに関連付けられてもよい。例えば、指示点940−Aは、第1ゲインを用いて生成された第1デジタル画像に関連付けられ、指示点940−Cは、第2ゲインを用いて生成される第2デジタル画像と関連付けられてもよい。第1デジタル画像および第2デジタル画像の両方は、単一の撮影シーンの同一のアナログ信号から生成される。一実施形態において、スライダ制御部930が指示点940−Aに位置する場合、第1デジタル画像のみが画像表示部910において合成画像920として表示されてもよい。同様に、スライダ制御部930が指示点940−Cに位置する場合、第2デジタル画像のみが画像表示部910において合成画像920として表示されてもよい。
一実施形態において、指示点940−Bは、第1デジタル画像および第2デジタル画像の混合画像に関連付けられてもよい。例えば、スライダ制御部930が指示点940−Bに位置する場合、合成画像920は、第1デジタル画像および第2デジタル画像の混合画像であってもよい。一実施形態において、第1デジタル画像および第2デジタル画像の混合は、アルファブレンディング、輝度ブレンディング、ダイナミックレンジブレンディング、および/またはトーンマッピングまたは他の非線形ブレンディングおよびマッピング演算を含むことができる。別の実施形態において、第1デジタル画像および第2デジタル画像の混合は、より大きなダイナミックレンジまたは単独の第1画像および第2画像のいずれかとは異なる他の視覚特性を有する新しい画像を形成することができる。したがって、第1デジタル画像および第2デジタル画像の混合は、合成画像920として表示され得るまたは合成画像920を生成するために使用され得る新しいHDR画像を形成することができる。そのために、第1デジタル信号および第2デジタル信号を組み合わせて、HDR画像の少なくとも一部を生成することができる。さらに、第1デジタル信号および第2デジタル信号のうちの一方を、別のデジタル画像またはデジタル信号の少なくとも一部とさらに組み合わせることができる。一実施形態において、他のデジタル画像は、別のHDR画像を含むことができる。
一実施形態において、スライダ制御部930が指示点940−Aに位置する場合、第1デジタル画像は、合成画像920として表示され、スライダ制御部930が指示点940−Cに位置する場合、第2デジタル画像は、合成画像920として表示される。さらに、スライダ制御部930が指示点940−Bに位置する場合、混合画像は、合成画像920として表示される。このような実施形態において、スライダ制御部930が指示点940−Aと指示点940−Cとの間に位置する場合、第1デジタル画像および第2デジタル画像のミックス(例えば、混合)重みを計算することができる。第1デジタル画像の場合、スライダ制御部930が指示点940−Cに位置するときに、ミックス重みは、0.0という値を有するように計算され、スライダ制御部930が指示点940−Aに位置するときに、ミックス重みは、1.0という値を有するように計算され、スライダ制御部930が指示点940−Cと940−Aとの間に位置するときに、ミックス重みは、0.0〜1.0の範囲にある。ミックス演算を参照すると、スライダ制御部930が指示点940−Cに位置するときに、ミックス重みは、0.0という値を有するように計算され、スライダ制御部930が指示点940−Aに位置するときに、ミックス重みは、1.0という値を有するように計算され、スライダ制御部930が指示点940−Cと940−Aとの間に位置するときに、ミックス重みは、0.0〜1.0の範囲にある。
一実施形態において、第1デジタル画像および第2デジタル画像の少なくとも1つに関連する少なくとも1つのミックス重みに基づいて、第1デジタル画像および第2デジタル画像にミックス演算を適用することができる。一実施形態において、1.0のミックス重みは、1.0ミックス重みに関連付けられたデジタル画像に完全なミックス重みを与える。このようにして、ユーザは、第1デジタル画像および第2デジタル画像を混合することができる。この目的のために、第1デジタル信号および第2デジタル信号は、ユーザの入力に応答して、混合されてもよい。例えば、スライド指示が表示され、第1デジタル信号および第2デジタル信号が、ユーザによって操作されたスライド指示に応答して、混合されてもよい。
このミックス重みおよびミックス操作システムは、第1デジタル画像、第2デジタル画像、および第1デジタル画像から第2デジタル画像に段階的な進行するものとしての混合画像を観察するためのUIツールを提供する。一実施形態において、ユーザは、スライダ制御部930の任意位置に対応して合成画像920を保存することができる。UIシステム900を実現する調整ツールは、技術的に実現可能な任意のジェスチャまたは技術を介して合成画像920を保存するコマンドを受信することができる。例えば、調整ツールは、ユーザが合成画像920によって占められた領域内にジェスチャをする場合、合成画像920を保存するように構成されてもよい。代替的には、調整ツールは、ユーザがスライダ制御部930を移動せず、単に押しているときに、合成画像920を保存する。別の実施態様において、調整ツールは、ユーザが保存コマンドを受信するように構成された保存ボタンなどのUI要素(図示せず)を押すなどのジェスチャをするときに、合成画像920を保存することができる。
したがって、スライダ制御部を用いて、合成画像920のような最終の計算画像を生成するために、2つ以上のデジタル画像の寄与度を決定することができる。当業者であれば、本発明の範囲および精神を逸脱することなく、2つ以上の関連する画像に関連する2つ以上の指示点を含むように、上述のミックス重みおよびミックス操作システムを一般化することができる。これらの関連画像は、以下に限定されないが、例えば同一のアナログ信号を用いて生成され、異なる輝度値を有する任意数のデジタル画像を含んでもよく、それらのゼロフレーム間時間は、ゼロであってもよい。
さらに、ユーザからミックス重み入力または色調整入力を与えるように、スライダ930ではなく、回転ノブのような異なる連続位置UI制御部を実装することができる。
当然ながら、他の実施形態において、他のユーザインターフェイスを用いて、1つ以上の(例えば、合焦、計測)目標部位の選択、画像に関連する1つ以上のパラメータ(ホワイトバランス、彩度、露光)の調整に関する入力、および/または何らかの方法で画像に影響を与える可能性のある他の入力を受信することができる。
図10は、本発明の一実施形態に従って、合成画像を生成するための方法1000を示すフローチャートである。必要に応じて、方法1000は、本明細書に開示された図面のいずれかの詳部に関連して実行されてもよい。しかしながら言うまでもなく、任意の所望の環境で方法1000を実行することができる。さらに、前述した定義は、以下の説明に同様に適用することができる。
方法1000は、ステップ1010から開始する。ステップ1010において、プロセッサ複合体310などのプロセッサ複合体に実行される調整ツールは、少なくとも2つの関連する元画像、例えば、図9に関連して記載された第1デジタル画像および第2デジタル画像をロードする。ステップ1012において、調整ツールは、UI制御部、例えば図9のスライダ制御部930の位置を初期位置に初期化する。一実施形態において、初期位置は、UI制御部の範囲値の端点、例えば指示点940−Aを含む。別の実施形態において、初期位置は、少なくとも2つの関連する元画像のうちの1つ以上に基づいて計算された値を含む。特定の実施形態において、初期位置は、少なくとも第1デジタル画像および第2デジタル画像を含む画像に関連して、ユーザによって以前に選択された値に初期化される。
ステップ1014において、調整ツールは、UI制御部の位置および少なくとも2つの関連する元画像に基づいて、合成画像、例えば図9の合成画像920を生成して表示する。一実施形態において、合成画像を生成することは、図9を参照して記載したように、少なくとも2つの関連する元画像を混合することを含む。ステップ1016において、調整ツールは、ユーザ入力を受信する。ユーザ入力は、画像表示部910内の選択ジェスチャまたはクリックジェスチャなどのUIジェスチャを含むがこれらに限定されない。ステップ1020で、ユーザ入力がUI制御部の位置を変更する場合、調整ツールは、UI制御部の位置を変更し、方法は、ステップ1014に戻る。そうでない場合、方法は、ステップ1030に進む。
ステップ1030において、ユーザ入力が終了コマンドを含まない場合、方法は、ステップ1040に進む。ステップ1040において、調整ツールは、ユーザ入力に関連するコマンドを実行する。一実施形態において、コマンドは、保存コマンドを含み、調整ツールは、UI制御部の位置に従って生成された合成画像を保存する。その後、方法は、ステップ1016に戻る。
ステップ1030において、ユーザ入力が終了コマンドを含む場合、方法は、ステップ1090で終了する。調整ツールは、終了することによって、実行を終了させる。
当然ながら、さまざまな実施形態において、調整ツールは、画像に関連する1つ以上目標部位、1つ以上のホワイトバランスポイントおよび/または任意の他のパラメータを混合するために使用されてもよい。いくつかの実施形態において、調整ツールは、2つ以上の画像に関連するフルシーン(例えば、画像の全体)に関連してもよい。他の実施形態において、調整ツールは、画像のサブセット(例えば、特定の点)に関連してもよい。
本発明の1つの利点は、撮影シーンの単一撮影時に2つ以上の異なる露光を用いて、ユーザ入力に基づいて、デジタル写真を選択的に生成することができることである。したがって、ユーザ入力に基づいて生成されたデジタル写真は、個別の露光よりも大きなダイナミックレンジを有することができる。さらに、フレーム間時間がゼロである2つ以上の異なる露光を用いてHDR画像を生成することによって、モーションアーチファクトを有しなく、HDR画像を迅速に生成することができる。
さらに、さまざまな実施形態において、シーン内に動きがあった場合または撮影中に撮影装置にジッタが発生した場合、いくつかの実施形態は、フレーム間露光時間が最終的に合併された写真に動きぼやけを生じさせることを対処する。このようなぼやけは、フレーム間時間の増加に連れて著しく大きくなる可能性がある。この問題を解決するために、HDRは、非常に静的シーン以外の状況でも、鮮明な画像を取り込む効果的な解決策である。
さらに、他の実施形態において、HDR写真を生成するための従来の技術は、多くの計算資源を必要とする一方、結果として得られる画像の画質を低下させるアーチファクトを生成することもある。したがって、厳密に必要に応じて、本明細書に開示される1つ以上の技術を利用して、上記の問題の1つ以上を対処することができる。
さらに、さまざまな実施形態において、本明細書に開示された1つ以上の技術は、さまざまな市場および/または製品に適用することができる。例えば、これらの技術は、写真撮影に関して開示されているが、テレビ、ウェブ会議(またはライブストリーミング能力)、セキュリティカメラ(例えば、特徴を特定するために、コントラストを増加する)、自動車(例えば、運転手支援システム、車載インフォテインメントシステム)、および/またはカメラ入力を含む任意の他の製品であってもよい。
上記でさまざまな実施形態を説明してきたが、これらの実施形態は、限定ではなく、単なる例示として提供されることを理解すべきである。したがって、好ましい実施形態の範囲は、上記の例示的な実施形態のいずれによっても制限されるべきではなく、添付の特許請求の範囲およびそれらの等価物によって規定されるべきである。