一般に、本開示は、画像および/またはビデオデータのフレームのズーム遷移を滑らかにするための技法を説明する。技法を実行するように構成されるカメラプロセッサを備えるカメラも開示される。カメラプロセッサは、1つまたは複数のイメージセンサなどから、画像/ビデオデータの複数のフレームを受信してもよい。カメラプロセッサはまた、ユーザインターフェースを介して、複数のフレームの各々のためのズーム設定(たとえば、1.0倍ズーム、2.0倍ズームなど)を受信してもよい。すなわち、ユーザは、複数のフレームがイメージセンサから受信されるにつれて、カメラプロセッサが第1のフレームのセット(たとえば、第1のプレビューフレームのセット)に適用してもよい様々なズームコマンドを提供してもよい。したがって、カメラプロセッサは、ズーム設定に従って、表示(たとえば、プレビュー表示)および/または記憶のために構成される第1のフレームのセットを決定および/または生成してもよい。いくつかの例では、第1のフレームのセットは、ズーム設定(たとえば、第1のズーム遷移のセット)の第1のセットを表す。
ビデオを記録するときに、シーンの望まれる部分を撮影するために注意深く、細かく、または滑らかにズームインしてズームアウトするのはユーザにとって難しいことがしばしばあるので、プレビュー表示のために構成されるフレームは、ビデオの再生の間に大げさに見える可能性のある意図しないズーム設定(たとえば、過剰ズーム、過少ズームなど)を含むことがある。いくつかの例では、ズーム設定は、シーンのパニング、または、シーン全体にわたってパンせよとのカメラに対するコマンドを含むことがある。そのような例では、ユーザは、いくつかの事例では特定のズーム遷移を補う特定の画像品質を有するシーンを撮影するために、シーン全体にわたってパンすることがある。別の例では、カメラプロセッサは、ユーザ入力を検出するように構成される何らかのユーザインターフェース(UI)機構(たとえば、タッチスクリーン、視線トラッカーなど)により、ぶれているように見えるズーム遷移を適用することがある。
説明のための例において、ユーザは、ズームコマンド入力を提供する際に、シーンの中のいくつかの物体がズーミングフレームにおいて中心に来ること、またはズーミングフレームにおいて概ね中心に来ることを期待することがある。しかしながら、ユーザは、ユーザが意図したかもしれないような概ね中心化されたフレームをもはやカメラプロセッサが出力しないような方式で、シーン全体をパンし、および/またはズームすることがある。そのような事例では、ユーザは続いて、ズームコマンドを調整すること、異なるようにパンすること(たとえば、より遅く、より速く、修正すること、過剰に修正することなど)、カメラの指し示す方向を調整することなどによって、ズーム設定を調整することがある。いずれの場合でも、1つまたは複数のプロセッサは、ズームコマンド入力を検出し、次いでズーム設定を調整してもよい。1つまたは複数のプロセッサは、ズーム設定に基づいて、またはズーム設定の調整されたセットに基づいて、第2のフレームのセットを決定してもよく、第2のフレームのセットは第1のフレームのセット(たとえば、第1のプレビューフレームのセット)と異なる。いくつかの例では、1つまたは複数のプロセッサは、ズーム遷移、ズームレベル、フレームのデジタルクロップ領域などを調整するために、ズーム設定を調整してもよい。
本開示の技法によれば、カメラプロセッサは有利には、第2のフレームのセットから第1のプレビューフレームのセットを区別してもよく、第2のフレームのセットは、長期記憶および/またはビデオ符号化などの後処理のために記録されてもよい。そのような例では、第2のフレームのセットは、ビデオファイルとして記憶されてもよい。第2のフレームのセットは、第1のプレビューフレームのセットとは異なってもよい。たとえば、第1のフレームのセットのフレームNは第1のズーム設定を含んでもよく、第2のフレームのセットの対応するフレームNは第1のズーム設定とは別個の第2のズーム設定を含んでもよい。すなわち、いくつかの例では、カメラプロセッサは、第1のフレームのセットの対応するフレームNと異なる第2のフレームのセットの対応するフレームNを決定するために、複数のフレームのフレームNに適用されるべき調整されるズーム設定を決定してもよい。同様に、第1のフレームのセットのフレームN+1および第2のフレームのセットの対応するフレームN+1は、互いに異なるズーム設定を表してもよい。いずれの場合でも、フレームの両方のセットが、イメージセンサ12から受信される複数のフレームのフレームに少なくとも一部基づいて生成されてもよい。
いくつかの例では、カメラプロセッサは、UIを介して受信されるズーム設定から、ズーム設定の第2のセットとして滑らかなズームレートを導出してもよい。説明のための例では、ユーザは、1.0倍から10.0倍のズームまで、物体をズームすることを試みていることがある。しかしながら、何らかのUI機構により、カメラプロセッサは代わりに、1.0倍から12.0倍、次に8.0倍、次に11.0倍、そして最終的に、ユーザが最終的に目標としていた10.0倍のズームレベルなどの唐突なズーム遷移をユーザから受信することがある。この例では、カメラプロセッサは、ズーム設定から、フレームの別々に記録されたセット(たとえば、第2のフレームのセット)に適用されるべき滑らかなズームレートを導出してもよい。したがって、調整されたズーム設定は滑らかなズームレートを含むことがある。説明のための例では、滑らかなズームレートは、目標のズームレベルに達するまでカメラプロセッサにズームレベル量だけズームを大きくさせる、漸次的なまたは連続的なズームレート、たとえば、単位時間ごとに2.5倍のズームレベルの増大を含んでもよく、目標のズームレベルはこの例では10.0倍である。そのような事例では、カメラプロセッサは、第2のフレームのセットにそのようなズーム設定を適用すると、唐突なまたは生のズーム遷移を表すズーム設定を適用するために使用される処理リソースと比較して、処理リソースをさらに節約することが可能であることがある。したがって、ズームレートを含む上で説明された例などの本開示の例示的な技法は、ズーム設定の1つのセットを使用してズーム動作を表示して記録する動作と比較して、カメラ処理のために様々な利点を提供する。
加えて、滑らかにされたズーム遷移は、ビデオコーディングにおいて技術的な利点をもたらすことができ、それは、唐突で不自然なズーム遷移により、ビデオコーダがビデオフレームを正確に圧縮または圧縮解除するのが困難になることがあるからである。すなわち、本開示の技法は、たとえば唐突なまたは不自然なズーム入力の結果として、ユーザによって最初に定められた何らかの「生の」ズーム設定を滑らかにするために特に調整されたズーム設定をコーディングフレームが含むときなどに、ビデオコーディングの正確さの向上および/または処理リソースの低減をビデオコーダにもたらすことができる。加えて、ビデオコーダは、ズーム設定がユーザにより最初に定められたズーム設定と異なるように特に調整されるとき、時間予測技法(たとえば、ビデオコーディング規格におけるPフレームおよびBフレームを圧縮または圧縮解除すること)をより正確に実行する傾向があることがある。
いくつかの例では、カメラプロセッサは、イメージセンサから受信された複数のフレームに基づいて、第2のフレームのセットを決定してもよい。第2のフレームのセットは、第1のフレームのセットとは異なってもよい。第2のフレームのセットは、第2のズーム遷移のセット(たとえば、滑らかにされたズーム遷移)を表してもよい。そのような事例では、第2のズーム遷移のセットは、第1のフレームのセットによって表される第1のズーム遷移のセットとは別個である。いずれにしても、カメラプロセッサは、さらなる処理のために、第2のフレームのセットを出力してもよく、またはいくつかの事例では、第2のズーム遷移のセットを出力してもよい。いくつかの例では、出力は、第2のフレームのセットを生成するために、様々なズーム設定(たとえば、調整されたズーム設定)を適用せよとの命令を含んでもよい。加えて、カメラプロセッサは、第2のフレームのセット、または第2のズーム遷移のセットを、ビデオコーダ、記憶デバイス、および/または表示デバイスに出力してもよい。いずれにしても、カメラプロセッサは、ビデオファイルとして記憶されるべき第2のフレームのセットを出力してもよい。ある例では、メモリコントローラは、カメラプロセッサ出力から、第2のフレームのセットを決定し、ビデオファイルとして第2のフレームのセットを記憶することによって第2のフレームのセットを生成してもよい。別の例では、ビデオコーダは、カメラプロセッサ出力から、第2のフレームのセットを決定し、第2のフレームのセットの符号化を介して第2のフレームのセットを生成してもよい。そのような例では、ビデオコーダは、第1のプレビューフレームのセットに対応するズーム設定の第1のセットと比較して調整されたズーム設定のセットを表すように、第2のフレームのセットを符号化してもよい。
図1は、本開示で説明される例示的な技法の1つまたは複数を実行するように構成されるコンピューティングデバイス10のブロック図である。コンピューティングデバイス10の例は、コンピュータ(たとえば、パーソナルコンピュータ、デスクトップコンピュータ、またはラップトップコンピュータ)、タブレットコンピュータなどのモバイルデバイス、ワイヤレス通信デバイス(たとえば、携帯電話、セルラー電話、衛星電話、および/または携帯電話ハンドセットなど)、インターネット電話、デジタルカメラ、デジタルビデオレコーダ、ポータブルビデオゲームデバイスもしくは携帯情報端末(PDA)などのハンドヘルドデバイス、ドローンデバイス、または1つまたは複数のカメラを含むことがある任意のデバイスを含む。いくつかの例では、コンピューティングデバイス10は、中央処理装置(CPU)16、ビデオエンコーダ/デコーダ17、グラフィクス処理装置(GPU)18、GPU18のローカルメモリ20、ユーザインターフェース22、システムメモリ30へのアクセスを提供するメモリコントローラ24、およびディスプレイ28にグラフィカルデータを表示させる信号を出力するディスプレイインターフェース26を含んでもよい。
図1の例に示されるように、コンピューティングデバイス10は、1つまたは複数のイメージセンサ12A~Nを含む。イメージセンサ12A~Nは、本明細書のいくつかの事例では単に「センサ(sensor)12」と呼ばれることがあるが、他の事例では、適切である場合複数の「センサ(sensors)12」と呼ばれることがある。コンピューティングデバイス10はさらに、1つまたは複数のレンズ13A~Nおよびカメラプロセッサ14を含む。同様に、レンズ13A~Nは、本明細書のいくつかの事例では単に「レンズ(lens)13」と呼ばれることがあるが、他の事例では、適切である場合複数の「レンズ(lenses)13」と呼ばれることがある。いくつかの例では、センサ12は、処理回路、光の表現をキャプチャするための画素センサ(たとえば、画素)のアレイ、メモリ、調整可能なレンズ、およびレンズ13の1つまたは複数を調整するためのアクチュエータを含んでもよい、1つまたは複数のイメージセンサ12を表す。
図1に示されるように、カメラ15は、1つまたは複数のイメージセンサ12、1つまたは複数のレンズ13、および1つまたは複数のカメラプロセッサ14を含む、集合的なデバイスを指すことがある。いくつかの例では、複数のカメラ15は、単一のコンピューティングデバイス10に含まれることがある(たとえば、1つまたは複数の前面カメラおよび1つまたは複数の背面カメラを有する携帯電話)。いくつかの例では、1つのコンピューティングデバイス10は、1つまたは複数のイメージセンサ12および1つまたは複数のレンズ13を有する第1のカメラ15、1つまたは複数のイメージセンサ12および1つまたは複数のレンズ13を有する第2のカメラ15などを含んでもよい。本明細書のいくつかの例示的な技法は、単一のカメラから(たとえば、単一のイメージセンサから)受信されるフレームに言及して論じられることがあるが、本開示の技法はそのように限定されないことに留意されたい。本開示の技法は、コンピューティングデバイス10に含まれる任意のタイプのカメラ15またはカメラ15の組合せのために実施されてもよいことを、当業者は理解するだろう。たとえば、画像データの複合フレームは、複数のカメラから受信されたフレームから、または異なる焦点距離に対応するフレームから作成されてもよい。したがって、カメラプロセッサは、ズーム設定を複合フレームに適用してもよい。
いくつかの例示的な技法が単一のセンサ12に関して本明細書で説明されるが、例示的な技法はそのように限定されず、複数のイメージセンサおよび/または複数のレンズタイプを含むデバイスを含む、画像/ビデオを撮影するために使用される様々なカメラタイプに適用可能であってもよい。たとえば、コンピューティングデバイス10は、デュアルレンズデバイス、トリプルレンズデバイス、360度カメラレンズデバイスなどを含んでもよい。したがって、各レンズ13とイメージセンサ12の組合せは、様々なズームレベル、視野角(AOV)、焦点距離、FOVなどを提供することがある。いくつかの例では、特定のイメージセンサ12が各レンズ13に割り振られてもよく、その逆であってもよい。たとえば、複数のイメージセンサ12は各々、異なるレンズタイプ(たとえば、広角レンズ、超広角レンズ、望遠レンズ、および/または潜望鏡レンズなど)に割り振られてもよい。
複数のレンズ13を含む例では、CPU16および/またはカメラプロセッサ14は、ユーザ入力を(たとえば、ユーザインターフェース22を介して)受信したことに応答して、特定のレンズ13、またはレンズ13の組合せを活動させてもよい。たとえば、CPU16および/またはカメラプロセッサ14は、ズーム設定23(たとえば、特定のレンズ13(たとえば、魚眼レンズカメラ)のユーザ選択、ズームコマンドなど)を含むユーザインターフェース22を介して、ユーザ入力を受信してもよい。別の例では、カメラプロセッサ14は、システムメモリ30またはCPU16などから、ユーザインターフェース22とは無関係にズーム設定23を受信してもよい。一例では、カメラプロセッサ14は、ユーザインターフェース22を介してズーム設定23を受信してもよく、システムメモリ30からあらかじめプログラムされたズーム設定も取り出してもよい。そのような例では、カメラプロセッサ14は、ズーム設定を個別に使用するか、またはいくつかの事例では、異なるソースから受信されるズーム設定を組み合わせるかのいずれかであってもよい。カメラプロセッサ14は、表示のためにプレビューフレームのセットを生成するために、ズーム設定(たとえば、組み合わせられた、または別様の)を利用してもよい。カメラプロセッサ14はまた、ズーム設定の第2のセットを導出して第2のフレームのセットを決定するために、ズーム設定を使用してもよく、第2のフレームのセットは、ズーム設定の導出された第2のセットに従って生成されてもよい。
いくつかの例では、CPU16は、どのレンズ13を活動させるべきかを自動的に決定してもよく、活動させるべき最初のレンズ13を選択すること、またはあるレンズ13から別のレンズ13に移行することのいずれかを行ってもよい。たとえば、CPU16および/またはカメラプロセッサ14は、何らかのレンズ選択基準(たとえば、あらかじめ定められたカメラ遷移閾値を満たすズームレベル、照明条件の変化、特定のレンズ13を求めるユーザからの入力など)を満たす動作条件を検出すると、どのレンズ13を活動させるべきかを決定してもよい。いくつかの例では、複数のカメラが1つの合成画像(たとえば、パノラマ画像)を撮影するために互いに連動して使用されてもよいので、カメラプロセッサ14またはCPU16は、センサ12からの撮像に基づいて1つの合成画像を処理してもよい。パノラマ画像は、非パノラマ画像とは異なるズーム設定を表してもよい。
いくつかの例では、カメラプロセッサ14は、1つまたは複数のレンズ13の実効焦点距離および1つまたは複数のイメージセンサ12への調整を引き起こしてもよい。たとえば、カメラプロセッサ14は、それぞれのイメージセンサ12に向かって、またはそれから離れてレンズ13を動かす、レンズアクチュエータを始動させてもよい。別の例では、カメラプロセッサ14は、第1のレンズ13Aから第2のレンズ13Bへのレンズの遷移を開始してもよい。いずれにしても、カメラプロセッサ14は、画像データのフレームがレンズ13およびイメージセンサ12を介してキャプチャされる際の焦点距離を調整することがある。カメラプロセッサ14は、ズーム設定(たとえば、ズームコマンド、自動ズームプログラミング、ズームレベル入力、ズーム遷移など)に応答してそのような調整を実行してもよい。いくつかの例では、カメラプロセッサは、様々なオートフォーカス技法(たとえば、異なるフォーカスレベルで複数のフレームをキャプチャすること、複数のフレームを一緒に融合させることによって複合フレームを作成することなど)を実行しながら、そのような調整を実行してもよい。
いくつかの例では、カメラプロセッサ14は、一緒にまたは互いに並行して様々な処理動作を実行する複数のカメラプロセッサを含んでもよい。カメラプロセッサ14は、デュアルオンザフライカメラプロセッサ14などの2つ以上のカメラプロセッサ14を含んでもよい。説明のための例では、第1のカメラプロセッサ14は、プレビューフレームを生成するためのディスプレイインターフェース26にビデオデータの第1のフレームのセットを提供してもよい。すなわち、第1のカメラプロセッサ14は、第1のプレビューフレームのセットを決定し、第1のプレビューフレームのセットをメモリに出力し、第1のプレビューフレームのセットを表示のためにディスプレイ28に生成させてもよい。ディスプレイインターフェース26は、プレビューフレームが、ディスプレイ28を介して、ビデオ記録プロセスの間に、または他のプレビューセッションの間に表示されるようにしてもよい。
第2のカメラプロセッサ14は、ビデオデータとして記憶されるべき第2のフレームのセットを決定してもよく、第2のフレームのセットは第1のフレームのセットと異なる。いずれの場合でも、フレームの両方のセットが、イメージセンサ12によってキャプチャされる複数のフレームに対応してもよい。第2のカメラプロセッサ14はさらに、たとえば、ビデオコーディングのためのビデオエンコーダ/デコーダ17に第2のフレームのセットを出力してもよい。加えて、第1のカメラプロセッサ14は、ビデオ記録プロセスを開始する前に撮影されたシーンのプレビューを表示すること、またはビデオ記録プロセスの間に撮影されたシーンのプレビューを表示することなどのために、プレビュー表示のための画像データのフレームを決定するために使用されてもよい。すなわち、プレビュー表示のためのフレームは、ビデオの記録を開始するための、または写真を撮影するための入力などのユーザおよび/またはAIの入力とは無関係に、プレビューフレームとしてディスプレイ28に現れてもよい。
いくつかの例では、第1のカメラプロセッサ14は、ディスプレイインターフェース26とインターフェースし、プレビュー表示のために第1のフレームのセットをディスプレイインターフェース26に出力してもよい。第2のカメラプロセッサ14は、ビデオエンコーダ/デコーダ17と、またはいくつかの事例では、システムメモリ30またはローカルメモリ20とインターフェースしてもよい。第2のフレームのセットは、第1のフレームのセットからのフレームのサブセットを含んでもよいが、いずれの場合でも、第1のフレームのセットおよび第2のフレームのセットは、各セットにより表されるズーム設定(たとえば、ズーム遷移、ズームレベル)、各セットにより表される3Aパラメータなどに関して異なっていてもよいことに留意されたい。
いくつかの例では、単一のイメージセンサ12が複数のレンズ13に対応してもよい。そのような例では、レンズ13に入射する光をそれぞれのイメージセンサ12に向けるために、光導体が使用されてもよい。例示的な光導体は、プリズム、動くプリズム、鏡などを含んでもよい。このようにして、単一のレンズから受信された光は、あるセンサ12から離れて別のセンサ12に向かうなど、特定のセンサ12に向け直されてもよい。たとえば、カメラプロセッサ14は、焦点距離を実質的に変えるために、プリズムを動かしてレンズ13の1つに入射する光を向け直してもよい。
コンピューティングデバイス10の様々な構造は図1では別々であるものとして示されているが、本開示の技法はそのように限定されず、いくつかの例では、構造はシステムオンチップ(SoC)を形成するために組み合わせられてもよい。ある例として、カメラプロセッサ14、CPU16、GPU18、およびディスプレイインターフェース26は、共通の集積回路(IC)チップ上に形成されてもよい。いくつかの例では、カメラプロセッサ14、CPU16、GPU18、およびディスプレイインターフェース26の1つまたは複数が、別々のICチップ上に形成されてもよい。様々な他の置換および組合せが可能であり、本開示の技法は、図1に示される例に限定されるものと見なされるべきではない。
図1に示される様々な構造は、バス32を使用して互いに通信するように構成されてもよい。バス32は、第3世代バス(たとえば、HyperTransportバスまたはInfiniBandバス)、第2世代バス(たとえば、Advanced Graphics Portバス、Peripheral Component Interconnect (PCI)エクスプレスバス、またはAdvanced eXtensible Interface (AXI)バス)、または別のタイプのバスもしくはデバイス相互接続などの様々なバス構造のいずれかであってもよい。図1に示される異なる構造間のバスおよび通信インターフェースの特定の構成は例にすぎず、同じまたは異なる構造を伴うコンピューティングデバイスおよび/または他の画像処理システムの他の構成が、本開示の技法を実施するために使用されてもよいことに留意されたい。
加えて、図1に示される様々な構成要素(1つのデバイス上に形成されるか、または異なるデバイス上に形成されるかにかかわらず)は、センサ12およびカメラプロセッサ14を含めて、機能が固定された回路またはプログラマブル回路のうちの少なくとも1つとして、または両方の組合せとして、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または他の等価な集積論理回路もしくはディスクリート論理回路などにおいて形成されてもよい。加えて、ローカルメモリ20の例は、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、磁気データ媒体、または光記憶媒体などの1つまたは複数の揮発性または不揮発性のメモリまたは記憶デバイスを含む。
いくつかの例では、メモリコントローラ24は、システムメモリ30に出入りするデータの転送を容易にすることがある。たとえば、メモリコントローラ24は、コンピューティングデバイス10の様々な構成要素にメモリサービスを提供するために、メモリ読取りおよび書込みコマンドを受信し、メモリ30に対してそのようなコマンドをサービスしてもよい。そのような例では、メモリコントローラ24は、システムメモリ30に通信可能に結合されていてもよい。メモリコントローラ24は、CPU16とシステムメモリ30のどちらとも別個の処理回路であるものとして、図1のコンピューティングデバイス10の例に示されているが、いくつかの例では、メモリコントローラ24の機能の一部またはすべてが、CPU16、システムメモリ30、カメラプロセッサ14、ビデオエンコーダ/デコーダ17、および/またはGPU18のうちの1つまたは複数で実装されてもよい。
システムメモリ30は、カメラプロセッサ14、CPU16、および/またはGPU18によってアクセス可能な、プログラムモジュールおよび/または命令および/またはデータを記憶してもよい。たとえば、システムメモリ30は、ユーザアプリケーション(たとえば、カメラアプリケーションのための命令)、カメラプロセッサ14からの得られた画像などを記憶してもよい。システムメモリ30は追加で、コンピューティングデバイス10の他の構成要素が使用するための情報、および/またはそれによって生成される情報を記憶してもよい。たとえば、システムメモリ30はカメラプロセッサ14のためのデバイスメモリとして活動してもよい。システムメモリ30は、たとえば、RAM、SRAM、DRAM、ROM、EPROM、EEPROM、フラッシュメモリ、磁気データ媒体または光学記憶媒体などの1つまたは複数の揮発性もしくは不揮発性のメモリまたは記憶デバイスを含んでもよい。加えて、システムメモリ30は、画像データ(たとえば、ビデオデータのフレーム、符号化されたビデオデータ、ズーム設定、3Aパラメータなど)を記憶してもよい。いくつかの例では、システムメモリ30またはローカルメモリ20は、オンチップメモリに、たとえばシステムメモリ30またはローカルメモリ20のメモリバッファに、画像データを記憶してもよい。別の例では、システムメモリ30またはローカルメモリ20は、チップまたはバッファのメモリの外部に、たとえばカメラデバイスのsecure digital (SD(商標))カードなどに、またはいくつかの事例では、カメラデバイスの別の内部ストレージに記憶されるように、画像データを出力してもよい。説明のための例では、システムメモリ30またはローカルメモリ20は、カメラプロセッサ14のチップに具現化されてもよく、GPU18のチップに具現化されてもよく、または両方にバッファメモリとして具現化されてもよく、この場合単一のチップが両方の処理回路を含む。
いくつかの例では、システムメモリ30は、カメラプロセッサ14、CPU16、GPU18、および/またはディスプレイインターフェース26に、本開示においてこれらの構成要素に帰せられる機能を実行させる命令を含んでもよい。したがって、システムメモリ30は、実行されると、1つまたは複数のプロセッサ(たとえば、カメラプロセッサ14、CPU16、GPU18、およびディスプレイインターフェース26)に本開示の様々な技法を実行させる命令を記憶したコンピュータ可読記憶媒体であってもよい。
いくつかの例では、システムメモリ30は非一時的記憶媒体である。「非一時的」という用語は、記憶媒体が搬送波または伝搬される信号において具現化されないことを示す。しかしながら、「非一時的」という用語は、システムメモリ30が非可動であること、またはその内容が静的であることを意味するものと解釈されるべきでない。一例として、システムメモリ30は、コンピューティングデバイス10から取り除かれてもよく、別のデバイスに移動されてもよい。別の例として、システムメモリ30と実質的に類似したメモリが、デバイス10に挿入されてもよい。いくつかの例では、非一時的記憶媒体は、経時的に変化することができるデータを(たとえば、RAMに)記憶してもよい。
加えて、カメラプロセッサ14、CPU16、およびGPU18は、システムメモリ30内に割り振られるそれぞれのバッファに、画像データ、ユーザインターフェースデータなどを記憶してもよい。ディスプレイインターフェース26は、システムメモリ30からデータを取り出し、ユーザインターフェース22の画面などを介して、画像データによって表される画像を表示するようにディスプレイ28を構成してもよい。いくつかの例では、ディスプレイインターフェース26は、システムメモリ30から取り出されたデジタル値をディスプレイ28が利用可能なアナログ信号に変換するように構成される、デジタルアナログ変換器(DAC)を含んでもよい。他の例では、ディスプレイインターフェース26は、処理のためにデジタル値を直接ディスプレイ28に伝えてもよい。
いくつかの例では、カメラプロセッサ14は、画像信号プロセッサ(ISP)を備えてもよい。たとえば、カメラプロセッサ14は、センサ12とカメラプロセッサ14とをインターフェースするカメラインターフェースを含んでもよい。カメラプロセッサ14は、画像の内容を処理するための追加の回路を含んでもよい。カメラプロセッサ14は、センサ12によってキャプチャされた画像データに対して、オートホワイトバランス、色補正、または他の後処理動作を含む様々な動作を実行するように構成されてもよい。いくつかの例では、カメラプロセッサ14は、「3A」アルゴリズムを実行してもよい。そのようなアルゴリズムは、オートフォーカス(AF)、オートエクスポージャーコントロール(AEC)、およびオートホワイトバランス(AWB)技法を含んでもよい。そのような例では、3Aは、統計アルゴリズム処理エンジンの機能を表すことがあり、カメラプロセッサ14のうちの1つがそのような処理エンジンを実装して操作してもよい。
いくつかの例では、カメラプロセッサ14は、センサ12から画像フレーム(たとえば、画素データ)を受信し、画像フレームを処理して画像および/またはビデオコンテンツを生成するように構成される。たとえば、イメージセンサ12は、個々のフレーム、フレームバースト、ビデオコンテンツを生成するためのフレームシーケンス、ビデオを記録する間にキャプチャされる静止写真、プレビューフレーム、または、静止写真の撮影の前および/もしくは後のモーションフォトをキャプチャするように構成されてもよい。CPU16、GPU18、カメラプロセッサ14、または何らかの他の回路は、センサ12によってキャプチャされた画像および/またはビデオの内容をディスプレイ28への表示のために画像またはビデオへと処理するように構成されてもよい。画像フレームは一般に、ビデオデータの静止画像もしくはフレーム、または、モーションフォトなどを伴うそれらの組合せのためのデータのフレームを指すことがある。カメラプロセッサ14は、任意のフォーマットで画像フレームの画素データを受信してもよい。たとえば、画素データは、RGB、YCbCr、YUVなどの異なるカラーフォーマットを含んでもよい。いずれの場合でも、カメラプロセッサ14は、イメージセンサ12から、画像データの複数のフレームを受信してもよい。
加えて、カメラプロセッサ14は、画素データを分析し、および/またはメモリコントローラ24を介して、得られた画像(たとえば、画素の各々の画素値)をシステムメモリ30に出力するように構成されてもよい。画像の各々はさらに、表示のための最終的な画像を生成するように処理されてもよい。たとえば、GPU18、またはカメラプロセッサ14を含む何らかの他の処理ユニットは、ズーミングフレームを生成するためにズーミング動作を実行し、色補正、ホワイトバランス、混合、合成、回転、または表示および/もしくは記憶のための最終的な画像コンテンツを生成するための他の動作を実行してもよい。
いくつかの例では、ディスプレイ28は、プレビューフレームのセットとして第1のフレームのセットを表示してもよい。そのような例では、第1のフレームのセットは、システムメモリ30に記憶されるフレームを必ずしも表さないことがある。いずれの場合でも、ディスプレイ28は、コンテンツを能動的に記録しているとき、または、コンテンツを記録する前にシーンにカメラを単に向けているときのいずれでも、イメージセンサ12が任意の所与の瞬間にどの画素情報をキャプチャしているかをユーザに示すプレビューフレームを表示する。いくつかの例では、プレビューフレームは、ユーザに表示される前に、デジタル的にクロッピングおよび/またはスケーリングされることなどによって、デジタル的に変更されてもよい。いくつかの例では、カメラプロセッサ14は、第1のフレームのセット(たとえば、第1のプレビューフレームのセット)を決定し、第1のフレームのセットの各フレームにズーム設定を適用してもよい。いくつかの例では、カメラプロセッサ14は、表示のために、ズーム設定の第1のセットを有する第1のフレームのセットを出力して生成してもよい。いくつかの例では、第1のフレームのセットは、ズームレベル遷移の第1のセットを表す。ユーザの観点からは、第1のフレームのセットは、たとえば、カメラアプリケーションがコンピューティングデバイス10のフォアグラウンドで実行されているとき、ディスプレイ28でユーザが見るものに対応する。本明細書で論じられるように、ディスプレイ28はまた、イメージセンサ12によってキャプチャされる画像データの複数のフレームを表示してもよく、画像データの複数のフレームは、第1のプレビューフレームのセットと異なるズーム設定を備える。
いくつかの例では、ディスプレイ28は、複数のフレームおよび第1のプレビューフレームのセットを単一のディスプレイに一緒に表示してもよい。したがって、カメラプロセッサ14は、ズーム設定の第1のセットに従って第1のフレームのセットを生成し、ズーム設定のセットに基づいてズーム設定の調整されたセットを決定してもよい。加えて、ディスプレイ28は、第2のフレームのセットを表示するように構成されてもよく、第2のフレームのセットは調整されたズーム設定に基づいて生成される。そのような事例では、第2のフレームのセットは、調整されたズーム設定が原因で、第1のフレームのセットと異なることがある。
説明のための例では、カメラプロセッサ14またはCPU16は、ユーザインターフェース22に、複数のキャプチャされたフレームの異なるバージョンおよび/または第1のフレームのセットのプレビュー表示を提供させてもよく、第1のフレームのセットは、複数のキャプチャされたフレームと異なるズーム設定を備える。たとえば、ユーザインターフェース22は、フレームの複数のセットの同期されたおよび/または同時の表示(たとえば、「ピクチャインピクチャ」表示)を提供してもよい。たとえば、ユーザインターフェース22は、ディスプレイ28を介して、どのような要求されたズーム設定23とも関係なく、完全FOVを見せるフレームの1つのセットを提供してもよい。ユーザインターフェース22は加えて、ディスプレイ28を介して、第1のフレームのセットとともに第2のフレームのセットを提供してもよい。第2のフレームのセットは、第1のフレームのセットに時間的に対応してもよい(たとえば、シーンは同じであるが、視点またはFOVが異なる)。第2のフレームのセットは、リアルタイムで、またはほぼリアルタイムで、カメラプロセッサ14が調整されたズーム設定23を第2のフレームのセットに適用するにつれて、ズーム変更されるフレーム(たとえば、ズーミングフレーム)のプレビュー表示を提供してもよい。いくつかの例では、「ほぼリアルタイム」は、イメージセンサ12からカメラプロセッサ14への画素の転送およびディスプレイインターフェース26へのフレームデータの転送などのデータ転送が許す限りリアルタイムに近いことを意味することがある。
コンピューティングデバイス10は、ビデオエンコーダおよび/またはビデオデコーダ17を含んでもよく、それらのいずれかが、合成ビデオエンコーダ/デコーダ(CODEC)(たとえばビデオコーダ)の一部として統合されてもよい。ビデオエンコーダ/デコーダ17は、1つまたは複数のカメラ15によってキャプチャされたビデオを符号化するビデオコーダ、または圧縮もしくは符号化されたビデオデータを復号できるデコーダを含んでもよい。いくつかの事例では、CPU16および/またはカメラプロセッサ14は、ビデオデータを符号化および/または復号するように構成されてもよく、その場合、CPU16および/またはカメラプロセッサ14は、ビデオエンコーダ/デコーダ17を含んでもよい。いずれの場合でも、ビデオエンコーダ/デコーダ17は、イメージセンサ12から受信された画像データ(たとえば、複数のキャプチャされたフレーム)の完全なまたは少なくとも部分的に完全な潜在FOVフレームを圧縮または圧縮解除するように構成されてもよい。同様に、ビデオエンコーダ/デコーダ17は、ズーム設定の調整されたセットを表す第2のフレームのセットを圧縮または圧縮解除するように構成されてもよい。いくつかの例では、ビデオエンコーダ/デコーダ17はさらに、ズーム設定を表すプレビューフレーム(たとえば、ズーム設定の第1のセットに従って生成されるズーミング第1のフレームのセット)、ズーム設定情報などを、圧縮または圧縮解除するように構成されてもよい。
CPU16は、コンピューティングデバイス10の動作を制御する汎用または専用プロセッサを備えてもよい。ユーザは、1つまたは複数のソフトウェアアプリケーションをCPU16に実行させるために、コンピューティングデバイス10に入力を与えてもよい。CPU16上で実行するソフトウェアアプリケーションは、たとえば、カメラアプリケーション、グラフィクス編集アプリケーション、メディアプレーヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインターフェースアプリケーション、または別のプログラムを含んでもよい。1つの例示的なソフトウェアアプリケーションは、カメラアプリケーションである。CPU16は、カメラアプリケーションを実行し、それに応答して、カメラアプリケーションは、ディスプレイ28が出力するコンテンツをCPU16に生成させる。たとえば、ディスプレイ28は、光強度、フラッシュが有効であるかどうか、および他のそのような情報などの情報を出力してもよい。カメラアプリケーションはまた、ユーザにより定められた方式でセンサ12により撮影された画像を処理するようにカメラプロセッサ14に命令することを、CPU16に行わせてもよい。コンピューティングデバイス10のユーザは、画像が生成される方式(たとえば、ズーム設定23が適用された状態、フラッシュありまたはなし、フォーカス設定、露出設定、ビデオまたは静止画像、および他のパラメータ)を構成するために、ディスプレイ28と(たとえば、ユーザインターフェース22を介して)インターフェースしてもよい。
いくつかの例では、カメラアプリケーションは、ユーザがカメラ15の様々な設定を制御することを可能にしてもよい。様々な設定を制御するために、ユーザは、キーボード、マウス、マイクロフォン、ハンドヘルドコントローラ、リモートコントローラ、視線トラッカー、タッチパッド、またはユーザインターフェース22を介してコンピューティングデバイス10に結合されている別の入力デバイスなどの1つまたは複数の入力デバイス(図示せず)を介して、コンピューティングデバイス10に入力を与えてもよい。たとえば、ユーザインターフェース22は、目標ズーム設定を調整するためのユーザからの入力を受信してもよく、目標ズーム設定は、ズーム設定23から導出されてもよく、またはズーム設定23から以前に導出されていてもよい。いくつかの例では、CPU16は、ズーム設定23または少なくともその一部を記憶してもよい。そのような例では、ズーム設定23のある部分は、第1のフレームのセットと異なる第2のフレームのセットを決定せよとの、カメラプロセッサ14、CPU16、GPU18、ディスプレイインターフェース26、またはビデオエンコーダ/デコーダ17に対する命令を表してもよい。説明のための例では、ズーム設定23は、どの調整されたズーム設定が第2のフレームのセットのどの1つまたは複数のフレームに適用されるかについてカメラプロセッサ14に命令する、コンピュータ可読命令(たとえば、非一時的コンピュータ可読命令)を表してもよい。したがって、ズーム設定23は、コンピューティングデバイス10の様々な構造が、特定のズーム設定23を表す第2のフレームのセットを生成することを可能にしてもよい。
いくつかの例では、CPU16は、カメラアプリケーションを起動および/または操作してもよい。説明されたように、カメラアプリケーションは、ユーザがユーザインターフェース22と対話するための様々なオプションを含んでもよい。そのような例では、CPU16がカメラアプリケーションを操作している間、CPU16は、ユーザインターフェース22を介して、画像データのフレームのためのアスペクト比を変えること、ビデオを記録すること、ビデオを記録しながらスナップショットを撮ること、画像キャプチャにフィルタを適用すること、オートフォーカス動作のための関心領域を選択すること、スローモーションビデオまたはスーパースローモーションビデオを記録すること、ナイトショット設定を適用すること、パノラマ画像データをキャプチャすることなどのための、ユーザからの入力を受信してもよい。CPU16はさらに、ユーザインターフェース22を介して、イメージセンサ12から受信された複数のフレームの各々のためのズーム設定を受信してもよい。
いくつかの例では、ユーザインターフェース22は、本明細書で開示されるズームモードを有効または無効にする選択可能なモードなどの様々な選択可能なモードを提供してもよい。いくつかの例では、CPU16は、本開示のズーム設定調整を開始するカメラモードを含む、様々なカメラモードの選択を受信してもよい。選択可能なモードが有効にされるとき、カメラプロセッサ14は、ディスプレイインターフェース26に提供される画像データのフレームを、システムメモリ30に記録される画像データのフレームと区別してもよい。すなわち、選択可能なモードが有効であるとき、カメラプロセッサ14は、画像データの完全FOVフレームを記憶することと、表示(たとえば、プレビュー表示)のためにズーミングフレームをディスプレイインターフェース26に提供することの両方を実行してもよい。この選択可能なモードでは、カメラプロセッサ14は、完全FOVフレームを取り出し、第1のフレームのセットとは別個のズーム遷移を含む第2のフレームのセットを生成するためにズーム設定をフレームに適用することに進んでもよい。しかしながら、いくつかの事例では、カメラプロセッサは、いずれの選択可能なモードも有効にすることなく(たとえば、デフォルトで)、本開示のそのような技法を実行してもよい。いずれの場合でも、カメラプロセッサ14は、第1のズーム遷移のセットを表す第1のフレームのセットを生成し、第1のズーム遷移のセットとは別個の第2のズーム遷移のセットを決定し、第1のフレームのセットと異なる第2のフレームのセットを決定してもよい。第2のフレームのセットは、第2のズーム遷移のセットを表してもよい。いくつかの例だけにおいて、カメラプロセッサ14は、本明細書で開示されるように、そのような技法を実行するために、カメラプロセッサ14のメモリとは別のメモリデバイスを利用してもよい。
いくつかの例では、CPU16は、特定のズームレベルが目標ズームレベルを備えることを示すユーザ入力を受信してもよい。目標ズームレベルは、ビデオ撮影に対してユーザが最初に望んでいたが、粗いピンチ・トゥ・ズーム動作を実行するときなどの様々なズーム動作を実行する際に速やかにユーザが達成することが可能ではなかった可能性のある、ズームレベルを表してもよい。ユーザ入力を受信するものとしてCPU16に言及して説明されたが、これらの入力はまた、カメラプロセッサ14を含むコンピューティングデバイス10の他の構造物が共通のチップの形成のために統合または合成されていない事例では、それらの構造物によって受信されてもよい。コンピューティングデバイス10の様々な構造物は、たとえばCPU16、システムメモリ30、またはユーザインターフェース22から、ユーザ入力を受信してもよい。
いくつかの例では、カメラプロセッサ14またはCPU16は、ユーザインターフェース22を介して、望まれるズームレベルの標示を受信してもよい。たとえば、ユーザは、特定のズームレベルを決定するために、ユーザインターフェース22の機構を利用してもよい。ユーザが特定のズームレベルを決定すると、ユーザは、特定のズームレベルについてのユーザの満足を示すコマンドを選択してもよい。カメラプロセッサ14またはCPU16は、ズーム設定23の一部としてユーザインターフェース22を介してコマンドを受信してもよい。カメラプロセッサ14は、ズーム設定の第2のセットに従って第2のフレームのセットを決定するために、ズーム設定23からズーム設定の第2のセットを導出してもよい。そのような事例では、カメラプロセッサ14は第2のフレームのセットを出力してもよく、第2のフレームのセットは、ユーザの目標ズームレベルをキャプチャする1つまたは複数のズーム遷移を反映する。説明のための例では、カメラプロセッサ14は、試行期間の間にズーム設定23のセットを受信してもよく、試行期間は、ユーザが望む方法でシーンを最良にキャプチャする所望のズームレベルをユーザが見つけようとする時間である。カメラプロセッサ14は、バックグラウンドにおいて、カメラプロセッサ14が後で試行期間および/または望まれるズームレベルに基づいて完全FOVフレームを変えられるように、完全FOVフレームを記憶してもよい。
いくつかの例では、第1のカメラに対応する第1のイメージセンサ12は、第2のカメラに対応する同じイメージセンサ12であってもよい。すなわち、第2のカメラに対応するイメージセンサ12は、第1のカメラに対応する同じ第1のイメージセンサであってもよい。第1のカメラおよび第2のカメラは、たとえば、使用されているレンズが異なること、動くプリズムの活動などによって、異なる実効焦点距離を提供してもよい。いくつかの例では、カメラプロセッサ14は、オートフォーカスプロセスに従って、および/またはズーム設定23もしくはズーム設定23から導出される第2のズーム設定に応答して、レンズ13Aまたはレンズ13Bを動かしてもよい。オートフォーカスプロセスを実行する際に、または様々なズーム設定を適用するとき、カメラプロセッサ14は、特定の焦点距離を達成するためにレンズ13Aを移動させてもよい。オートフォーカスプロセスは、焦点を合わせて、続いて焦点をずらすこと、またはその逆を含んでもよい。
ディスプレイ28は、モニタ、テレビ、投影デバイス、液晶ディスプレイ(LCD)、プラズマディスプレイパネル、発光ダイオード(LED)アレイ、有機LED(OLED)、電子ペーパー、表面伝導電子放出ディスプレイ(SED)、レーザーテレビディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含んでもよい。ディスプレイ28は、コンピューティングデバイス10内に統合されてもよい。たとえば、ディスプレイ28は、携帯電話ハンドセット、タブレットコンピュータ、またはラップトップの画面であってもよい。代わりに、ディスプレイ28は、有線通信リンクまたはワイヤレス通信リンクを介してコンピューティングデバイス10に結合されたスタンドアロンデバイスであってもよい。たとえば、ディスプレイ28は、ケーブルリンクまたはワイヤレスリンクを介してパーソナルコンピュータに接続されたコンピュータモニタまたはフラットパネルディスプレイであってもよい。ディスプレイ28は、カメラ15が実際に写真を撮った場合に、またはビデオの記録を開始した場合に、何が記憶されているか、または写真がどのように見える可能性があるかを確認するためにユーザが見ることができる、プレビューフレームを提供してもよい。
いくつかの例では、カメラプロセッサ14は、画像データ(たとえば、ビデオデータ)の複数のフレームを受信してもよい。たとえば、カメラプロセッサ14は、1つまたは複数のイメージセンサ12から、画像データの複数のフレームを受信してもよい。カメラプロセッサ14は、画像センサ12から画素データとしてフレームを受信してもよい。説明のための例では、48メガピクセル(MP)のイメージセンサ12は、完全FOVの潜在能力である、4800万画素をカメラプロセッサ14に転送してもよい。いくつかの事例では、イメージセンサ12は、特定のイメージセンサ12から入手できる可能性のある画素数と比較して、より少数の画素を転送してもよい(たとえば、48MPのイメージセンサ12からカメラプロセッサ14への、より少ない12MPの出力)。たとえば、イメージセンサ12は、イメージセンサが様々な画素ビニング技法に関与する場合、および/またはカメラプロセッサ14がイメージセンサ12の画素アレイの特定の部分(たとえば、イメージセンサ12の画素アレイの中央の4分の1に対応する画素)のみを転送するようにイメージセンサ12に命令するとき、より少数の画素インスタンスを出力してもよい。いずれにしても、カメラプロセッサ14は、イメージセンサ12から画像データのフレームを受信してもよい。たとえば、カメラプロセッサ14は、ビデオ記録のビデオデータを集合的に表してもよい画像データの複数のフレームをイメージセンサ12から受信してもよい。
いくつかの事例では、カメラプロセッサ14は、ビデオ記録を命じるユーザインターフェース22を介したユーザ入力に応答して、ビデオ記録を開始してもよい。別の例では、カメラプロセッサ14は、カメラプロセッサ14にビデオ記録を開始させる特定の記録トリガをカメラプロセッサ14が検出するときなどに、ビデオを自動的に記録してもよい。
加えて、カメラプロセッサ14は、複数のフレームに対応するズーム設定23を受信してもよい。いくつかの例では、カメラプロセッサ14は、ユーザインターフェース22を介して、イメージセンサ12によって受信される複数のフレームの各フレームのためのズーム設定を受信してもよい。いくつかの例では、カメラプロセッサ14は、特定のズームレベルにズームインせよとの要求を受信することがある。カメラプロセッサ14はまた、他のズームレベルにズームアウトせよとの要求を受信することがある。いくつかの事例では、カメラプロセッサ14は、第1のズーム要求が閾値のズームを超えるズームを表すときなどに、過剰ズームに応答してズームアウトせよとの要求を受信することがある。たとえば、ユーザは、特定の望ましくない閾値をズームが超えたことを認識することがあり、過剰なズームを訂正するためにズームアウトプロセスを開始することがある。いずれの場合でも、カメラプロセッサ14は、ユーザがビデオを記録しながら、またはビデオを記録する準備をしながら、リアルタイムでズーム設定23を受信してもよく、したがって、ズーム設定23はフレームに対応し、それは、それらのフレームがカメラプロセッサ14によってフレームが受信されるからである。すなわち、経時的なズーム変化は、経時的に受信されるフレームに対応する。
ズーム設定23に従って、カメラプロセッサ14は、プレビューのために第1のフレームのセット(たとえば、プレビューフレーム、ズーミングフレーム、アクティブにズームしているフレームなど)を生成してもよい。ズーム設定23に従って、第1のフレームのセットは、第1のズーム遷移のセットを表してもよい。説明のための限定しない例では、第1のズーム遷移は、1.0倍から5.0倍のズームへの遷移を含んでもよく、それに続くズーム遷移は、5.0倍から11.0倍への遷移を含んでもよく、次のズーム遷移は、11.0倍から9.0倍への遷移を含んでもよく、最後のズーム遷移は、9.0倍から10.0倍のズームへの遷移を含んでもよい。そのような事例では、カメラプロセッサ14は、様々なズーム遷移を反映または表現する第1のフレームのセットを生成してもよい。ズームレベルは、唐突であってもよく、漸次的であってもよく、またはそうでなければ、ユーザインターフェース入力によって定められる変化する制御もしくは動きの影響を受けてもよい。加えて、様々なズームレベルが、様々な期間に適用されてもよい。説明のための例では、ユーザインターフェース22を介して受信される入力に基づいて、カメラプロセッサ14は、第1のフレームのセットを生成するために、第1のズーム遷移の前に0.5秒間5.0倍のズームを適用し、別のズーム遷移の前に異なる期間11.0倍のズームを適用してもよい。いずれの場合でも、第1のフレームのセットは、第1のズーム遷移のセットに関してユーザインターフェース22を介して受信される入力を反映してもよい。
説明のための例では、カメラプロセッサ14は、イメージセンサ12から画像データの複数のFOVフレーム(たとえば、複数の入来するフレーム)を受信することによって、第1のプレビューフレームのセットを決定および/または生成してもよい。カメラプロセッサ14は、イメージセンサ12から、画像データの完全な潜在FOVフレーム(たとえば、ビデオデータおよび/またはプレビューデータのフレーム)を受信してもよい。いくつかの事例では、カメラプロセッサ14は、カメラプロセッサ14がイメージセンサ12により少数の画素(たとえば、フレームの中央25%)を出力させる場合、完全な潜在FOVフレームより少ないフレームを受信してもよい。いくつかの例では、カメラプロセッサ14またはイメージセンサ12は、複数の入来するフレームをメモリに記憶してもよく、複数の入来するフレームは、入来するフレームに任意のズーム設定を適用するカメラプロセッサ14の前に記憶される。そのような例では、カメラプロセッサは、所与のイメージセンサ12から受信される完全な画素数を有するもの(たとえば、完全FOVフレーム)として複数のキャプチャされたフレームを記憶してもよい。
いくつかの例では、ズーム設定23を実施するために、カメラプロセッサ14は、プレビュー表示および/または記憶のための第1のフレームのセットを生成するために、受信されたフレームに対してデジタルクロッピング、スケーリング、サンプリングなどの光学ズーム技法および/またはデジタルズーム技法を実行してもよい。カメラプロセッサ14は、ディスプレイインターフェース26または他の表示デバイスに第1のフレームのセットを出力するように構成されてもよい。いずれの場合でも、第1のフレームのセットは、ユーザから受信された、および/またはAIアルゴリズムもしくはMLモデルによって提供されるズーム設定(たとえば、ズームコマンド)に基づく、第1のズーム遷移のセットを表してもよい。
加えて、カメラプロセッサ14は、第2のフレームのセットを決定および/または生成してもよい。カメラプロセッサ14は、イメージセンサ12から受信される複数のフレーム(たとえば、第1のフレームのセットを生成するために使用される複数のフレーム)の少なくともサブセットから、第2のフレームのセットを生成してもよい。第2のフレームのセットは、第1のフレームのセットとは異なってもよい。一例では、第2のフレームのセットは、第2のフレームのセットからの少なくとも1つのフレームが第1のフレームのセットからの対応するフレームと比較して異なるズーム設定を有するという点で、第1のフレームのセットと異なってもよい。
異なるズーム設定に従って、カメラプロセッサ14は、自動レンズアクチュエーション、および/またはデジタルズーム技法などの光学ズーム技法を使用して、第2のフレームのセットを決定および/または生成してもよい。いくつかの例では、カメラプロセッサ14は、第2のフレームのセットを決定および/または生成するために、イメージセンサ12から受信されたフレームをデジタル的に変更してもよい。そのような例では、カメラプロセッサ14は、フレームの画素をデジタル的にクロップし、および/またはスケーリングすることによって、フレームをデジタル的に変更してもよい。別の例では、カメラプロセッサ14は、画像データのフレームをカメラプロセッサ14に出力するときにイメージセンサ12が適用してもよい画素ビニングレベルを適応させることによって、フレームをデジタル的に変更してもよい。
いくつかの事例では、カメラプロセッサ14は、イメージセンサ12から受信されたフレームのサブセットのみに基づいて、第2のフレームのセットを決定してもよい。たとえば、カメラプロセッサ14は、第1のフレームのセットからの1つまたは複数の対応するフレームを利用することによって、第2のフレームのセットのサブセットを生成してもよい。すなわち、カメラプロセッサ14は、第2のフレームのセットのフレームを決定するとき、第2のフレームのセットの特定のフレームを決定するために、第1のフレームのセットからの1つまたは複数の対応するフレームをデジタル的に変更してもよい。カメラプロセッサ14は、増大または減少するズームレベルに適応する、画素ビニング技法が使用される場合、そのような技法を利用してもよい。一般に、イメージセンサ12は、イメージセンサ12の複数の画素をカメラプロセッサへの出力のためにより少数の画素へと組み合わせることによって、画素ビニング(たとえば、4×4ビニング、3×3ビニング、2×2ビニング、水平ビニング、垂直ビニングなど)を実行する。ビニング技法は、イメージセンサ12、またはいくつかの事例ではカメラプロセッサ14が、各出力画素に対して複数の画素を平均化し、または一緒に加算することを含む、様々な組合せ方式を通じて画素を一緒に組み合わせることを可能にすることによって、信号対雑音比(SNR)を改善する。そのような技法に従うと、イメージセンサ12は、ビニングレベルの遷移および/またはレンズの遷移の間により少ない画素を出力してもよい。そのような例では、とりわけ、カメラプロセッサ14は、第2のフレームのセットの少なくともサブセットを補うために、イメージセンサ12から受信されるような、第1のフレームのセットからのフレームを利用してもよい。そのような例では、カメラプロセッサ14は、第1のフレームのセットの少なくともサブセットから、第2のフレームのセットを決定してもよく、第2のフレームのセットは、第1のフレームのセットと異なり、1つまたは複数の滑らかにされたズーム遷移を表す。
第2のズーム遷移のセットを決定することに関わる例では、第2のズーム遷移のセット(たとえば、滑らかにされたズーム遷移)は、時間長、ズームのレート、ズームレベルなどのいずれかに関して、第1のズーム遷移のセットとは別個であってもよい。たとえば、第1のフレームのセットを生成するための上記の説明のための例に合わせて、滑らかにされたズーム遷移のセットは、5.0倍で短く止まることなく、かつ、最終的に10.0倍のズームに到達する前に異質なズームレベルのない、1.0倍から10.0倍への滑らかな遷移を含んでもよい。いくつかの事例では、AIアルゴリズムおよび/またはMLモデルは、第1のズーム遷移のセットと第2のズーム遷移のセットとの差を定義してもよい。別の例では、ユーザ入力が差を定義してもよく、たとえば、ユーザ入力は、実際には最初から10.0倍が望まれるズームレベル(たとえば、目標ズームレベル)であったことを示す。そのような事例では、カメラプロセッサ14および/またはCPU16は、フレームの中の物体を特定する(たとえば、顔検出、人検出、建物検出など)ように構成されるAIアルゴリズムまたはMLモデルなどの何らかのAIアルゴリズムおよび/またはMLモデルを実行することによって、ユーザ入力を補強してもよい。AIアルゴリズムおよび/またはMLモデルは、フレームの焦点を決定するように訓練されてもよい。すなわち、ユーザは、特定の物体がズーミング体験全体の実際の焦点となるのを望んでいた可能性があり、その場合、AIアルゴリズムおよび/またはMLモデルは、複数の入来するフレームにおける物体の検出に基づいて、ズーミング体験の焦点を特定してもよい。したがって、カメラプロセッサ14は、ズーム設定23におけるフレームの特定された焦点に関する情報を含んでもよい。そのような例では、カメラプロセッサ14は、そのようなズーム設定23に基づいて、フレームの特定された焦点を追跡する第2のズーム遷移のセットを表すために、第2のフレームのセットを決定してもよい。いくつかの事例では、カメラプロセッサ14は、フレームに対してデジタルクロップエリアを調整し、または合わせる(たとえば、フレームの中央ではない部分からの画素をキャプチャするようにクロップする)ことなどによって、選択的なデジタルクロッピングを実行してもよい。このようにして、カメラプロセッサ14は、第2のフレームのセットを決定するときに、ズーム設定(たとえば、ズームコマンド、パニング、ズームしている間のパニングなど)をより良好に追跡し、より正確に実施してもよい。
いくつかの例では、カメラプロセッサ14は、第2のフレームのセット(たとえば、ズーミング第2のフレームのセット)を出力してもよく、第2のフレームのセットは第1のフレームのセットと異なる。たとえば、カメラプロセッサ14は、第2のフレームのセットを、記憶のためにシステムメモリ30に、ビデオコーディングのためにビデオエンコーダ/デコーダ17に、表示のためにディスプレイインターフェース26またはディスプレイ28に、グラフィクス処理のためにローカルメモリ20またはGPU18に出力してもよい。いくつかの例では、カメラプロセッサ14は、さらなる内部処理のために、第2のフレームのセットを出力してもよい。
いくつかの例では、カメラプロセッサ14は、第2のフレームのセットがビデオファイルとして記憶されるようにするために、第2のフレームのセットをメモリコントローラ24に出力してもよい。いくつかの例では、CPU16、ビデオエンコーダ/デコーダ17、および/またはカメラプロセッサ14は、ビデオファイルとして記憶されるべき第2のフレームのセットを出力してもよい。いくつかの例では、メモリコントローラ24は、任意の適切なビデオファイルフォーマットで、第2のフレームのセットを生成および/または記憶してもよい。いくつかの例では、ビデオエンコーダ/デコーダ17は、CPU16、ビデオエンコーダ/デコーダ17、および/またはプロセッサ14が、符号化されたビデオとして第2のフレームのセットが記憶されるようにする前に、第2のフレームのセットを符号化してもよい。エンコーダ/デコーダ17は、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part10、Advanced Video Coding (AVC)、ITU-T H.265/High Efficiency Video Coding (HEVC)、Versatile Video Coding (VCC)など、およびこれらの拡張によって定義される規格において記述されるものを含めて、様々な符号化技法を使用して画像データのフレームを符号化してもよい。非限定的な例では、CPU16、ビデオエンコーダ/デコーダ17、および/またはカメラプロセッサ14は、第2のフレームのセットがMoving Picture Experts Group (MPEG)ビデオファイルフォーマットを使用して記憶されるようにしてもよい。
図2は、本開示で説明される技法の様々な態様による、カメラプロセッサ14、ユーザインターフェース22、およびCPU16を含む、コンピューティングデバイス10の例示的な構成要素を示すブロック図である。図2に示されるように、ユーザインターフェース22はズーム入力検出器33を含んでもよい。ズーム入力検出器33は、タッチ入力(たとえば、タップ、ピンチ、スライドなど)、ジェスチャ(たとえば、声のジェスチャ、手のジェスチャ、頭のジェスチャ、視線のジェスチャなど)、レンズ13の1つのアクチュエーションなどのユーザ入力を検出してもよい。ズーム入力検出器33は、ズーム入力をCPU16またはカメラプロセッサ14に伝えてもよい。CPU16またはカメラプロセッサ14は、検出されたズーム入力からズーム設定23を決定してもよい。
いくつかの例では、CPU16は、フレームエリア(AOF)識別システム34および/またはAOF追跡システム36を含んでもよい。いくつかの例では、カメラプロセッサ14が、AOF識別システム34および/またはAOF追跡システム36を含んでもよい。いずれの場合でも、AOF識別システム34は、物体、人、顔、領域などを含むエリアなどの特定のフレームエリアを識別してもよい。限定しない例では、AOF識別システム34は、顔検出システムを含んでもよい。いくつかの例では、AOF識別システム34は、フレームの特定のエリアを識別する際にAOF識別システム34を支援するユーザインターフェース22を介してユーザ入力を受信してもよい。たとえば、ユーザは、フレームの中の人またはフレームの他のエリアを示すタッチ入力をタッチスクリーン上で提供してもよい。いずれの場合でも、AOF識別システム34は、AIアルゴリズムおよび/またはMLモデルを利用して、フレームの様々なエリア(たとえば、人、建物などに対応するエリア)を識別し、フレームのエリアの追跡を支援してもよい。
AOF追跡システム36は、ビデオ撮影の間に、物体、人、または顔を追跡することなどのために、第1のフレームから後続のフレームへとフレームの識別されたエリアを追跡してもよい。AOF識別システム34および/またはAOF追跡システム36は、物体を含むフレームの様々なエリアの位置、物体の動き予測などを含む、AOF情報を生成してもよい。いくつかの例では、カメラプロセッサ14またはCPU16は、第2のフレームのセットを決定するために、AOF情報を利用してもよい。すなわち、カメラプロセッサ14またはCPU16は、AOF情報を利用して、ズーム設定の第2のセットを導出し、ズーム設定の第2のセットに従って第2のフレームのセットを決定してもよい。一例では、ズーム設定調整器46は、AOF情報に基づいてズーム設定の第2のセットを導出してもよい。
説明のための限定しない例では、顔検出技法は、ユーザが人(たとえば、ズームの焦点)にズームインしようとしていることを示してもよい。そのような例では、第2のフレームのセットは、動的にズームしているフレーム、または静的にズームされるフレームなどのための、フレームの中の人に焦点を合わせるように構成されるズーム設定を表してもよい。一例では、第2のフレームのセットは、フレームの中の人に焦点を合わせるように構成される第2のズーム遷移のセットを表してもよい。そのような例では、第2のズーム遷移のセットは、対応するプレビューフレームのセットによって表される第1のズーム遷移のセットと異なってもよい。
加えて、カメラプロセッサ14は、いくつかの例では、3A処理エンジン52を含んでもよい。たとえば、カメラプロセッサ14は、処理エンジン52を介して画像データのフレームに対して様々な3Aアルゴリズムを実行するように構成されてもよい。いくつかの例では、カメラプロセッサ14は、3A処理エンジン52を介して、撮像のための自動パラメータのセットを決定してもよい。たとえば、カメラプロセッサ14は、撮像の条件(たとえば、照明条件、オートフォーカスを引き起こすフレームのあるエリアの存在など)に基づいて、自動調整パラメータのセットを決定してもよい。自動調整パラメータは、オートフォーカス、オートエクスポージャー、および/またはオートホワイトバランスパラメータもしくは設定などの3Aパラメータまたは設定を含んでもよい。いずれの場合でも、3A処理エンジン52は、自動調整パラメータ(たとえば、3A設定)のセットを生成し、さらなる処理のために、自動調整パラメータのセットを出力してもよい。たとえば、3A処理エンジン52は、カメラプロセッサ14またはCPU16に自動調整パラメータのセットを出力してもよい。カメラプロセッサ14、またはいくつかの事例では、CPU16は、自動調整パラメータのセットを画像データの特定のフレームに適用してもよい。
いくつかの例では、カメラプロセッサ14は、イメージセンサ12の1つまたは複数から受信される複数のフレーム(たとえば、複数のキャプチャされたフレーム)に自動調整パラメータの第1のセットを適用してもよい。自動調整パラメータは、3Aパラメータを含んでもよい。カメラプロセッサ14は、複数のフレームを出力する前に、自動調整パラメータの第1のセットを複数のフレームに適用してもよい。いくつかの例では、カメラプロセッサ14は、画像データの複数のフレームを、ディスプレイインターフェース26、システムメモリ30、カメラプロセッサ14のうちの第2のカメラプロセッサなどに出力してもよい。
加えて、カメラプロセッサ14は、複数のフレームから、第1のフレームのセットを決定してもよい。したがって、カメラプロセッサ14は、自動調整パラメータの第2のセットを第1のフレームのセットに適用してもよい。いくつかの例では、自動調整パラメータの第2のセットは、自動調整パラメータの第1のセットと同じである。説明のための例では、カメラプロセッサ14の3Aエンジン52は、イメージセンサ12から受信された複数の完全な潜在FOVフレームに3A設定を適用してもよく、プレビュー表示を予定されている第1のフレームのセットに同じ3A設定を適用してもよい。そのような事例では、プレビューの中の表示される第1のフレームのセットは、第1のプレビューフレームのセットによって表されるFOVに基づく3A設定を備えなくてもよく、代わりにイメージセンサ12のすべての利用可能な画素(たとえば、すべての画素、またはいくつかの事例ではより少数の画素)によりキャプチャされるような完全なシーンに基づいて、3A設定を備えてもよい。いくつかの例では、複数のフレームは、イメージセンサ12によってキャプチャされるような完全FOVシーンに対応する3A設定を備えなくてもよく、代わりに第1のプレビューフレームのセットによって表されるFOVに基づく3A設定を備えてもよい。
いくつかの例では、カメラプロセッサ14は、自動調整パラメータの第1のセットと異なるように、自動調整パラメータの第2のセットを決定してもよい。たとえば、カメラプロセッサ14は、自動調整パラメータのセットをエミュレートする3Aエミュレータ54を含んでもよい。自動調整パラメータのエミュレートされるセットは、ディスプレイ28上でプレビューされる際に、第1のフレームのセット(たとえば、プレビューフレーム)が、ズーミング第1のフレームのセットの異なる視野に基づく3A設定のエミュレートされたセットを表すことができるように、プレビューフレームに対して固有にエミュレートされてもよい。すなわち、3Aエミュレータ54からのエミュレートされた3A設定は、リアルタイムで、またはほぼリアルタイムで変化するズームレベルに対応してもよいが、複数の受信されるフレームに適用される3Aエンジン52からの3A設定は、複数の受信されるフレームの少なくともサブセットが静的FOVを表すので、ズーム設定に基づかなくてもよい。いくつかの事例では、複数の受信されるフレームの静的FOVは、ズームレベルが画素ビニング遷移閾値および/またはレンズ遷移閾値を超えるときなどに、第2のFOVに合わせてもよい。
カメラプロセッサ14は、第1のフレームのセットがシーンのエリアへのズームインを表すかそれからのズームアウトを表すかなどの第1のフレームのセットの条件に基づいて、自動調整パラメータの第2のセットを決定してもよい。説明のための例では、シーンのズームインされるエリアは、暗くなりつつある照明条件、オートフォーカスの対象のフレームの中の物体などを有してもよい。第1のフレーム生成器42は、プレビュー表示などのために第1のフレームのセットを生成するために、3Aエミュレータ54から3A情報を利用するように構成されてもよい。すなわち、カメラプロセッサ14は、表示のために、プレビューフレームのセットとして第1のフレームのセットを出力してもよく、プレビューフレームは、自動調整パラメータのエミュレートされたセットを表す。いくつかの例では、カメラプロセッサ14は、ディスプレイインターフェース26に第1のフレームのセットをプレビューフレームとして表示させてもよい。本明細書で説明されるように、カメラプロセッサ14は、単一のディスプレイのために、自動調整パラメータの第1のセットを表す複数の受信されたフレーム、および自動調整パラメータの第2のセット(たとえば、ピクチャインピクチャ、サイドバイサイドなど)を表す第1のフレームのセットを出力してもよい。いくつかの例では、カメラプロセッサ14は、ディスプレイインターフェース26に、単一のディスプレイにおいて、複数の受信されたフレームと第1のフレームのセットを同期させてもよく、複数の受信されたフレームと第1のフレームのセットは互いに異なる。
いくつかの例では、第2のフレーム決定器44は、第2のフレームのセットを決定するために、3A 52から、および/または3Aエミュレータ54からの3A情報を利用してもよい。そのような例では、ズーム設定調整器46は、CPU16および/またはズーム入力検出器33から受信された入力に基づいて、ズーム設定23を調整するように構成されてもよい。ズーム設定調整器46は、(たとえば、第2のフレームのセットを生成するために)第2のフレーム決定器44による使用が予定されているズーム設定を調整し、修正し、最適化し、または別様に調整するように構成されてもよい。加えて、ズーム設定調整器46は、ズーム設定23に基づいてズーム遷移を計算するように構成されてもよい。
加えて、第2のフレーム決定器44および3A 52は、第2のフレームのセットのための3Aパラメータの第3のセットを決定してもよい。すなわち、第2のフレームのセットを生成するとき、3Aエミュレータ54は、第1のフレームのセットを生成するために使用される自動調整パラメータの第2のセットと、イメージセンサ12から受信された複数の完全FOVフレームのために決定された自動調整パラメータの第1のセットとの両方に基づいて、自動調整パラメータを決定してもよい。第2のフレーム決定器44は、それぞれのズーム設定間の相対的な差に基づいて、3Aパラメータ(たとえば、平均)を組み合わせてもよい。一例では、第2のフレーム決定器44は、第1のフレームのセットによって表される第1のズーム遷移のセットと、第2のフレームのセットによって表される第2のズーム遷移のセットとの差を計算してもよい。別の例では、第2のフレーム決定器44は、第1のフレームのセットによって表されるズーム設定の第1のセット、および第2のフレームのセットによって表されるズーム設定の第2のセットに対する差のセットを計算してもよい。いずれにしても、第2のフレーム決定器44は、ズーム設定調整器46によって滑らかにされるズーム遷移に対応する自動調整パラメータを有するものとして、第2のフレームのセットを決定および/または生成してもよい。いくつかの例では、ズーム設定調整器46は、ズーム設定の第1のセットに少なくとも一部基づいて、ズーム設定の第1のセットからの調整を表すズーム設定の第2のセットを決定してもよい。したがって、第2のフレーム決定器44は、ズーム設定の第2のセットに対応する自動調整パラメータを表すように、第2のフレームのセットを決定および/または生成してもよい。ある例では、第2のフレームのセットを生成するとき、カメラプロセッサ14は、自動調整パラメータをフレームの決定された第2のセットに適用して、表示、符号化、および/または記憶のために第2のフレームのセットを生成してもよい。
いくつかの例では、カメラプロセッサ14は、有利には、第2のフレームのセットを決定するとき、第1のフレームのセットのために使用される3A設定を再利用してもよく、その逆であってもよい。いくつかの例では、カメラプロセッサ14は、二重の3A設定をフレームの別個のセットに適用するように構成されてもよい。これは、滑らかなズーミングフレームに対して円滑にかつ均等に3A設定を適用できるので、滑らかなズーミングフレーム(たとえば、第2のフレームのセット)の生成において処理の利点をもたらすことができる。すなわち、第2のフレームのセットのために使用されるのと同じ3A設定が第1のプレビューフレームのセットに使用される例では、カメラプロセッサ14は、カメラプロセッサ14が画素データを高速に読み取るときにそうされなければ遭遇する可能性のある高速に変化する3A設定の決定、照明条件の決定などの負荷を避けることがある。すなわち、カメラプロセッサ14は、第1のプレビューフレームのセットに3A設定を適用することを同時にかつ動的に試みながら、ユーザによって定められる粗いまたは唐突なズーム遷移に応答しようと試みることができる。しかしながら、本開示の技法によれば、カメラプロセッサ14は、有利には、第2のフレームのセットによって表されるズーム設定(たとえば、ズーム設定統計、ズーム遷移統計、ズームレートなど)に基づいて、第2のフレームのセットの各フレームのための3A設定の第3のセットを決定し、または予測することすらある。
図3は、本開示で説明される技法の様々な態様による、カメラプロセッサ14の例示的な処理を示すブロック図である。示されるように、カメラプロセッサ14は、ユーザインターフェース22を介してユーザ入力を受信してもよい。いくつかの例では、第1のフレーム生成器42が、ユーザ入力を受信してもよい。加えて、第2のフレーム決定器44は、ユーザインターフェース22または第1のフレーム生成器42を介して、ユーザ入力を決定してもよい。本明細書で説明されるように、カメラプロセッサ14は、ユーザ入力に基づくズーム設定23を決定してもよい。ズーム設定23を決定する際、カメラプロセッサ14は、いくつかの例では、システムメモリ30からズーム設定23を取り出してもよい。そのような例では、ユーザまたはAIは、以前にズーム設定23をシステムメモリ30に記憶している可能性がある。一例では、AIは、予測ズームプログラムの形態でズーム設定23を記憶している可能性がある。そのような事例では、ズーム設定調整器46は、たとえばユーザ入力に基づいて、そのようなズーム設定23を動的に調整してもよい。同様の方式で、カメラプロセッサ14は、特定のユーザに合わせられたズーム設定23を決定するために、AIエンジンおよび/またはMLモデルを展開してもよい。AIまたはMLエンジンは、ユーザのズームコマンド履歴、ユーザ選好、ユーザの物体識別傾向などの様々な入力について訓練されてもよい。
示されるように、イメージセンサ12は、画像データの複数のフレームをカメラプロセッサ14に転送してもよい。第1のフレーム生成器42は、イメージセンサ12から画像データの複数のフレームを受信してもよい。第1のフレーム生成器42は、第1のプレビューフレームのセットを決定および/または生成するために、ズーム設定23(たとえば、エミュレートされた3A設定など)を複数のフレームに適用してもよい。第1のフレーム生成器42は、ディスプレイ28を介した表示のために、第1のフレームのセットをディスプレイインターフェース26に出力してもよい。いくつかの例では、第1のフレーム生成器42は、記憶のために、第1のフレームのセットをシステムメモリ30および/またはローカルメモリ20に出力してもよい。いずれの場合でも、第1のフレーム生成器42は、プレビュー表示のために第1のフレームのセットを出力してもよい。そのような例では、本明細書で説明されるように、プレビューフレームは、第2のフレームのセットの決定および/または生成の間に、またはそれに続いて、システム的に廃棄されてもよい。
加えて、カメラプロセッサ14は、イメージセンサ12から受信された完全FOVフレームとして複数のフレームを記憶してもよい。カメラプロセッサ14は、完全な潜在FOVを備えるものとして、複数のフレームがシステムメモリ30に記憶されるようにしてもよい。一般に、完全な潜在FOVは、複数のフレームをキャプチャするように構成される特定のイメージセンサ12に対応してもよい。いくつかの事例では、完全な潜在FOVは、カメラプロセッサ14が縮小されたFOVまたはより少数の画素を出力するようにイメージセンサ12に命令する場合などのFOVの縮小された部分に対応してもよい。いくつかの事例では、カメラプロセッサ14は、フレームをシステムメモリ30に転送する前に、フレームに対して何らかの処理を実行してもよい。たとえば、カメラプロセッサ14は、システムメモリ30に記憶する前に、自動調整パラメータ(たとえば、3A設定)をフレームに適用してもよい。したがって、第2のフレーム決定器44は、ズーム設定23を受信し、システムメモリ30から完全FOVフレームを受信してもよい。第2のフレーム決定器44は、第1のフレーム生成器42によって生成されるプレビュー表示フレームと異なる第2のフレームのセットを生成してもよい。第2のフレーム決定器44は、第2のフレームのセットをシステムメモリ30に、またはいくつかの事例では、ビデオエンコーダ/デコーダ17に直接出力してもよい。いくつかの例では、第2のフレーム決定器44は、第2のフレームのセットをローカルメモリ20および/またはディスプレイインターフェース26に出力してもよい。
カメラプロセッサ14は、有利には、記憶または符号化を予定されているフレームから、表示を予定されているフレームを切り離してもよい。これは、処理および/または帯域幅消費を維持することなどによって、イメージセンサ12に課される負荷を増やすことなく、改良された画像およびビデオ撮影のオプションをカメラプロセッサ14に提供する。すなわち、イメージセンサ12はそれでも、カメラプロセッサ14にフレームの1つのセット(すなわち、複数のキャプチャされたフレーム)を転送することができる。カメラプロセッサ14は次いで、任意選択でフレームの1つのセットを利用して、ビデオフレームの最後のセット(たとえば、第2のフレームのセット)を最終的に生成してもよく、最後のセットは、プレビューフレームとイメージセンサ12から受信された複数のフレームとの両方と別個である。本明細書で開示される構成のなかでもとりわけこの構成は、ユーザに表示されるプレビューフレームをビデオ記録またはビデオコーディングプロセスの間に記憶されるフレームと結合する傾向がある他のプロセッサより、カメラ処理における利点をカメラプロセッサ14にもたらす。加えて、カメラプロセッサ14は、フレームの滑らかなズーミングの第2のセットを決定するために、画像データのフレームの対応するセットに、互いに異なるズーム設定を適用するように構成される。
図2および図3を参照すると、第1のフレーム生成器42および第2のフレーム決定器44は2つの別々の物体として示されているが、これは主に例示を目的とするものにすぎず、第1のフレーム生成器42および第2のフレーム決定器44は、いくつかの事例では、単一の処理ユニットと同じカメラプロセッサ14によって利用されてもよいことに留意されたい。フレーム生成器42は、第1のフレームのセットの決定および/または生成を例示するために示されており、第2のフレーム決定器44は、第2のフレームのセットの決定および/または生成を例示するために示されていることが理解されるだろう。いくつかの場合、フレームの両方のセットが、カメラプロセッサ14の同じ生成および/または決定プロセスによって扱われてもよい。同様に、カメラプロセッサ14はまた、第1のフレームのセットとは別個の第2のフレームのセットを決定するために、ズーム設定調整器46の機能を実装してもよい。
いくつかの例では、カメラプロセッサ14は、カメラ処理チップ上のメモリまたはバッファメモリなどの専用カメラプロセッサメモリを含んでもよい。すなわち、本開示の技法は、システムメモリ30などの別個のメモリデバイスの関与ありで、またはなしで実行されてもよい。
図3を参照すると、カメラプロセッサ14は、第1のカメラプロセッサ14および第2のカメラプロセッサ14を含んでもよい。そのような例では、カメラプロセッサ14はそれでも、単一のカメラ処理チップによって実装されてもよい。いずれの場合でも、第1のカメラプロセッサ14および/または第2のカメラプロセッサ14は、いくつかの例ではオンチップメモリを含んでもよい。第1のカメラプロセッサ14または第2のカメラプロセッサ14は、イメージセンサ12から複数のフレームを受信してもよい。別の例では、第1のカメラプロセッサ14は、イメージセンサ12から複数のフレームを受信してもよく、第2のカメラプロセッサ14は、第1のカメラプロセッサ14から複数のフレームを受信してもよい。そのような例では、カメラプロセッサ14は、複数のフレームを第2のカメラプロセッサ14に転送する前に、複数のフレームの前処理を実行してもよく、またはしなくてもよい。
いくつかの例では、第1のカメラプロセッサ14は、第1のフレーム生成器42を含んでもよい。加えて、第2のカメラプロセッサ14は、第2のフレーム決定器44を含んでもよい。第1のフレーム生成器42および第2のフレーム決定器44が単一のユニット内のカメラプロセッサ14によって実装される例と同様に、第2のカメラプロセッサ14の第2のフレーム決定器44は、ズーム設定23に基づいて、第1のフレームのセットと異なる第2のフレームのセットを決定するように構成されてもよい。いくつかの例では、第2のカメラプロセッサ14の第2のフレーム決定器44はさらに、ズーム設定23に基づいて、1つまたは複数の目標ズームレベルを特定し、1つまたは複数の目標ズームレベルに少なくとも一部基づいて、第1のフレームのセットと異なる第2のフレームのセットを決定するように構成されてもよい。いくつかの例では、第2のカメラプロセッサ14の第2のフレーム決定器44は、1つまたは複数の目標ズームレベルに少なくとも一部基づく第2のズーム遷移のセットを決定する。本明細書で説明されるように、カメラプロセッサ14(たとえば、第2のカメラプロセッサ14)は、第2のズーム遷移のセットが目標ズームレベルによって知らされるような第1のズーム遷移のセットと異なるように、第2のズーム遷移のセットを決定してもよい。
図4は、本開示で説明される技法の様々な態様による、カメラプロセッサ14の例示的な動作を示す例示的な流れ図である。いくつかの例では、図1の流れ図は、システムメモリ30と通信しているカメラプロセッサ14によって実行されてもよい。そのような例では、カメラプロセッサ14は、システムメモリ30にビデオデータまたは他の画像データを記憶させてもよい。
いくつかの例では、カメラプロセッサ14は、画像データの複数のフレームを受信してもよい(402)。たとえば、イメージセンサ12は、画像データのフレームをキャプチャ、画像データのフレームをカメラプロセッサ14に、たとえば第1のフレーム生成器42と第2のフレーム決定器44の両方に転送してもよい。いくつかの例では、カメラプロセッサ14は、システムメモリ30に、画像データのフレームをメモリへ記憶させてもよい(たとえば、図3のイメージセンサ12からシステムメモリ30への破線の直線を参照)。そのような事例では、記憶されている複数のフレームは、複数のフレームをキャプチャするように構成されるイメージセンサ12の1つまたは複数に対応する完全FOVを有することがある。たとえば、第1のイメージセンサは48MPのイメージセンサであってもよく、この場合、第1のイメージセンサは、画素ビニングが使用されないと仮定して、4800万個の画素をカメラプロセッサ14に転送するように構成される。そのような事例では、完全FOVは、それぞれのイメージセンサ12の4800万個の画素の全体の数に対応する。加えて、カメラプロセッサ14は、ビデオエンコーダ/デコーダ17に、複数のフレームを出力してもよい。そのような事例では、複数のフレームは、複数のフレームをキャプチャするように構成されるイメージセンサ12の1つまたは複数に対応する完全FOVを有するように符号化されてもよい。ビデオエンコーダ/デコーダ17は、符号化されたフレームを、システムメモリ30、ディスプレイ28、または別の別個のコンピューティングデバイスに出力してもよい。
いくつかの例では、システムメモリ30は、均一なズームレベルで複数の受信されたフレームを記憶してもよい。たとえば、複数の受信されるフレームは、ズーム設定23をアクティブに命令するどのようなユーザ入力とも無関係に、フレームの各々に対して1.0倍のズームで記憶されてもよい。
いくつかの例では、カメラプロセッサ14は、ユーザインターフェース22を介して、複数の受信されたフレームに対応するズーム設定23を受信してもよい。すなわち、カメラプロセッサ14は、複数のフレームの各々のためのズーム設定を受信してもよい(404)。ズーム設定23は、デジタルズーム設定、光学ズーム設定、光学ズーム設定とデジタルズーム設定の組合せなどを含んでもよい。いくつかの例では、ズーム設定23は、レンズアクチュエーションコマンド、ジェスチャ、視線追跡コマンドなどに対応してもよい。別の例では、ズーム設定23は、ズームレベル入力、ズーム遷移入力などを含んでもよい。いずれの場合でも、ズーム設定23は、カメラ15によって達成されるデジタルズームおよび/または光学ズームに適用されてもよい。
加えて、カメラプロセッサ14は、ズーム設定23に従って、第1のフレームのセットを決定または生成してもよい(406)。いくつかの例では、第1のフレームのセットは、第1のズーム遷移のセットを表す。たとえば、第1のズーム遷移は、1.0倍から5.0倍であってもよい。いくつかの例では、カメラ15は、特定のズーム閾値においてレンズ遷移を実行するように構成されてもよい。たとえば、カメラ15は、5.0倍のズーム閾値においてレンズ遷移を実行するように構成されてもよい。加えて、いくつかの事例では、ユーザインターフェースコマンドは、あるズームレベルから別のズームレベルへの瞬間的なズーム遷移をもたらすことがある。説明のための例では、ソフトキーアイコンの作動が、1.0倍から5.0倍への瞬間的なズームをもたらすことがある。すなわち、カメラプロセッサは、ユーザインターフェース22を介して、5.0倍のズームアイコンをユーザが選択することに対応するコマンドを受信すると、そのような遷移を実行してもよい。そのような事例では、カメラプロセッサ14は、ズーム設定を達成するために、デジタルクロッピング、スケーリングなどを実行することなく、単一のズーム変化(たとえば、レンズ13Aから13Bへの遷移)を実行してもよい。すなわち、ズーム設定は、この例では5.0倍のズームという命じられたズームを表す。本明細書で説明されるように第2のフレームのセットを決定するとき、カメラプロセッサ14は、遷移が瞬間的ではなく漸次的となるように、1.0倍から5.0倍へのズーム遷移を滑らかにするように構成されてもよい。カメラプロセッサ14は、光学ズーム技法とデジタルズーム技法の組合せを利用することによって、それを行ってもよい。別の例では、そのようなズーム設定は、複数のズーム遷移を表してもよい。いくつかの例では、第1のフレームのセットは、第1のズーム遷移のセットを表すフレームのデジタル的に変更されたセット、第1のズーム遷移のセットを表すフレームの非デジタル的に変更されたセット、またはこれらの組合せを含んでもよい。いくつかの例では、カメラプロセッサ14は、第1のフレームのセットを生成するとき、第1のフレームのセットがズーム設定の第1のセット(たとえば、第1のズーム遷移のセット)によって表されるように、第1のフレームのセットを決定してもよい。
1つのズーム遷移を伴う例では、1つのズーム遷移は、デフォルト/初期ズームレベル(たとえば、1.0倍)から第2のズームレベル(たとえば、5.0倍)であってもよく、ユーザはユーザインターフェース22上で5.0倍のズームアイコンを選択する。いくつかの事例では、ユーザは、5.0倍への唐突なズームの後で、画像の中心を再び合わせるためにカメラ15を動かす必要があることがある。いずれの場合でも、ユーザは、ユーザの関心対象の物体に向かって安定してズームする、1.0倍から5.0倍への安定したズームを有するエンドビデオ(end-video)を望むことがある。ズームのレートは、ユーザによってあらかじめ定められてもよく、または、最終的なズームレベル(たとえば、5.0倍のズームレベル)が達成されるにつれて、可変のまたは均一ではないレートを含んでもよい。すなわち、AIアルゴリズムおよび/またはMLモデルは、特定のズームレートを含むように、調整されたズーム設定を決定してもよい。一例では、レートは、ユーザ選好、シーンキャプチャの状況、または過去のズーム履歴に基づいてもよい。いくつかの例では、特定のAIアルゴリズムおよび/またはMLモデルは、ユーザ選好、シーンキャプチャの状況、過去のズーム履歴などについて訓練されてもよい。
いくつかの例では、カメラプロセッサ14は、第2のフレームのセットを決定してもよい(408)。そのような例では、第2のフレームのセットは、第1のフレームのセットとは異なる。カメラプロセッサ14は、ズーム設定23に基づいて第2のフレームのセットを決定してもよい。本明細書で説明されるように、カメラプロセッサ14は、調整されたズーム設定の第2のセットに基づいて第2のフレームのセットを決定してもよい。加えて、第2のフレームのセットは、第2のズーム遷移のセットを表してもよい。そのような例では、第2のズーム遷移のセットは、第1のフレームのセット(たとえば、第1のプレビューフレームのセット)によって表される第1のズーム遷移のセットとは別個である。いくつかの例では、カメラプロセッサ14は、第2のフレームのセットを生成するための仕様を決定してもよい。この仕様は、調整されるズーム設定、複数のフレームからの対応するフレームの識別子、第1のフレームのセットからの対応するフレームの識別子、対応するフレームの1つまたは複数からの対応するフレームデータなどを含んでもよい。いくつかの事例では、カメラプロセッサ14は、その仕様に従って、第2のフレームのセットを決定して生成してもよい。いくつかの例では、カメラプロセッサ14は、複数のキャプチャされたフレームの少なくともサブセットから、第2のフレームのセットを生成してもよい。したがって、カメラプロセッサ14は、第2のフレームのセットを決定する際に、第2のフレームのセットを生成してもよい。
いくつかの例では、第2のフレームのセットは、本明細書で説明されるように、静的なズーム、動的なズーム、または静的なズームと動的なズームの組合せを含んでもよい。説明のための例では、第2のフレームのセットは、第1のズームレベルがビデオデータの初期フレームに自動的に適用されるようにして、第2のフレームのセットの複数のフレームにわたって第1のズームレベルを維持する、改良されたズーム遷移を含んでもよい。第1のズームレベルは、デフォルトのズームレベルとは異なってもよく、第1のズーム遷移のセットによって表される初期ズームレベルとは別個であってもよい。加えて、第1のズームレベルは、ズーム設定から特定される目標ズームレベルに基づいてもよく、またはそうでなければ、1つまたは複数のズームコマンドによって定められてもよい。いくつかの例では、第2のフレームのセットは、目標ズームレベルで開始し、同じズームレベルをフレームNで開始する複数のフレームに適用する、静的なズームを含んでもよく、フレームNはビデオデータの初期フレームを含んでもよい。第2のフレームのセットはさらに、静的なズームの後にある、または静的なズームの前にある動的ズーミングフレームを含んでもよい。本開示の趣旨と一致する他の置換が存在してもよく、簡潔にするために、ここではすべての例が説明されないことがあることを、当業者は理解するだろう。
いくつかの例では、第2のズーム遷移のセットは、ズームレベル間の、滑らかにされたズーム遷移、または別様に変更されたズーム遷移を含んでもよく、いくつかの事例では、第1のフレームのセットと一緒に含まれていたいくつかのズーム遷移を取り除く変更されたズーム遷移を含んでもよい。いくつかの例では、カメラプロセッサは、デジタルズーム技法および/または光学ズーム技法を使用して、第1のフレームのセットと異なる第2のフレームのセットを決定してもよい。
いくつかの例では、カメラプロセッサ14は、閾値を超える、または前の中間ズームレベルに対応するフレームの数に対する相対的な量を超える、特定の数のフレームに適用される特定のズームレベルを検出してもよい。ズームレベルのそのような長期の適用は、そのズームレベルが、最終的にユーザが望んでいたものであることを示す。そのような事例では、カメラプロセッサ14は、その特定のズームレベル入力を、目標ズームレベルであるものとして特定してもよい。いくつかの例では、カメラプロセッサ14は、ズームコマンドに基づいて、複数の目標ズームレベルを特定してもよい。たとえば、第1の所望のズームレベルは、カメラプロセッサ14が特定の数のフレームの間または特定の長さの時間の間、維持する50.0倍であってもよく、第2の所望のズームレベルは100.0倍であってもよい。そのような事例では、カメラプロセッサ14は、第1の所望のズームレベルを維持してもよく、特定の数のフレームの後で、または特定の長さの時間の間、第2の所望のズームレベルに自動的に切り替えてもよい。いくつかの例では、カメラプロセッサ14は、第1の所望のズームレベルから第2の所望のズームレベルに徐々に移行してもよい。いずれの場合でも、カメラプロセッサ14は、ユーザ、検出AIアルゴリズム、MLモデルなどによって定義されるような関心対象のフレームの関心対象の物体または特定の物体に、ズーミングフレームの焦点を維持してもよい。いくつかの事例では、目標のまたは所望のズームレベルは、AIが決定した、またはAIが所望するズームレベルを表してもよい。
いくつかの例では、カメラプロセッサ14は、1つまたは複数の目標ズームレベルに少なくとも一部基づいて、第1のズーム遷移のセットとは別個の第2のズーム遷移のセットを決定してもよい。説明のための例では、ズーム設定23は、フレームの中の検出された物体に再び中心を合わせるためにユーザがカメラ15を動かすとき、またはシーン全体をパンするときなどのズームレート(たとえば、遅いズーム、速いズーム)、デジタルクロッピングの量、デジタル的にクロップされる部分の座標の調整を含んでもよい。そのような例では、ユーザは、シーンの中の物体にズームインすることを試みることがあるが、過剰にズームすることがあり、同時にズームアウトして、物体が異なる方向を向くようにカメラ15を動かさなければならないことがある。そのような事例では、ズーム設定調整器46が、ズーム入力と、AOF追跡システム36によって検出されるようなフレームに対する相対的な物体の動きとに基づいて、ズーム設定23を調整してもよい。いくつかの例では、第2のズーム遷移のセットは、少なくとも1つの光学ズーム遷移を含んでもよい。光学ズーム遷移は、光学ズームを介した、特定された目標ズームレベルからの目標ズームレベルへのズームインを含んでもよい。いずれの場合でも、カメラプロセッサ14は、イメージセンサ12の入力から直接、複数のフレームからフレームを取り出してもよい。
いくつかの例では、カメラプロセッサ14は、複数のフレームのサブセットから、ズーミング第2のフレームのセットを生成してもよい。たとえば、カメラプロセッサ14は、イメージセンサ12から受信された複数のフレームから第2のフレームのセットの第1のサブセットを生成し、第1のフレームのセットのフレームから第2のフレームのセットの第2のサブセットを生成してもよい。別の例では、カメラプロセッサ14は、イメージセンサ12から受信された複数のフレームから、第2のフレームのセット全体を生成してもよい。いずれの場合でも、カメラプロセッサ14は、光学ズーム技法および/またはデジタルズーム技法を実行することによって、第2のフレームのセットを生成してもよい。いくつかの例では、カメラプロセッサ14は、イメージセンサ12から受信された1つまたは複数のフレームをデジタル的にクロップし、スケーリングし、またはデジタル的にクロップしてスケーリングすることによって、第2のフレームのセットを生成してもよい。たとえば、カメラプロセッサ14は、第2のフレームのセットのための対応するフレームを生成するために、ズーム設定(たとえば、目標ズームレベル)に基づいて、フレームをクロップしてもよい。いくつかの例では、カメラプロセッサ14は、イメージセンサ12によって実施される画素ビニングレベルを適応させた結果として以前に変更されたデジタル的に変更されたフレームに基づいて、第2のフレームのセットを生成してもよい。別の例では、カメラプロセッサ14は、1つまたは複数の目標ズームレベル(たとえば、所望のズームレベル)に基づいて光学ズームレベル調整を引き起こすことによって、第2のフレームのセットを生成してもよい。いくつかの例では、カメラプロセッサ14は、ユーザインターフェース22を介して、光学ズームコマンドを受信してもよい。カメラプロセッサ14は、1つまたは複数の目標ズームレベルを備えるものとして、光学ズームコマンドによって定められる光学ズームレベルの1つまたは複数を特定してもよい。カメラプロセッサ14は、1つまたは複数の目標ズームレベルに基づいて第2のフレームのセットを生成してもよい。そのような例では、カメラプロセッサ14はさらに、イメージセンサ12から受信される複数のフレームの少なくともサブセットをデジタル的に変更することによって、または第1のフレーム生成器42からフレーム出力の第1のセットの少なくともサブセットをデジタル的に変更することによって、第2のフレームのセットを生成してもよい。
説明のための例では、カメラプロセッサ14は、第1のフレームのセットのサブセットに少なくとも一部基づいて、第2のフレームのセットを生成してもよい。いくつかの例では、第2のフレームのセットは、デジタル的に変更されるフレームを表してもよい。カメラプロセッサ14は、第2のズーム遷移のセット(たとえば、修正されたズーム遷移)を有するビデオフレームを再び作成するとき、プレビュー表示を予定されている第1のフレームのセットからのいくつかのフレームを再使用してもよい。カメラプロセッサ14は、フレームとズームレベルとの間に重複がある場合、これを行ってもよいので、カメラプロセッサ14は、特定のズームレベルで追加のズーミングフレームを再び作成する代わりに、有利なことに、第2のフレームのセットを生成するときに第1のフレームのセットのために前に生成されたフレームを再使用し、または別の目的で使用してもよいと判定する。すなわち、カメラプロセッサ14は有利なことに、第2のフレームのセットを生成するために、第1のフレームのセットからの特定のフレームを再使用してもよい。しかしながら、カメラプロセッサ14は、第1のフレームのセットからのフレームのいずれかを別の目的で使用しなくてもよく、それでも第2のフレームのセットを決定または生成してもよい。
本明細書で説明されるように、第2のフレームのセットを決定および/または生成するとき、カメラプロセッサ14は、フレームのエリア(たとえば、物体、領域など)の検出を実行してもよい。たとえば、AOF識別システム34は、オートフォーカス技法の候補であるフレームの特定のエリアを検出してもよい。そのような例では、ズーミング第2のフレームのセットは、検出に少なくとも一部基づいて生成される。たとえば、特定されたエリアが第2のフレームのセットの焦点として残るように、デジタルクロッピングおよび/または滑らかなズームが実行されてもよい。たとえば、特定されたエリアは、第2のフレームのセットの中心領域に残り、またはその近くにあってもよい。
いくつかの例では、カメラプロセッサ14は、第2のフレームのセットを出力してもよい(410)。そのような例では、カメラプロセッサ14は、さらなる内部処理のために第2のフレームのセット(たとえば、滑らかなズーミングフレーム)を出力してもよい。いくつかの例では、カメラプロセッサ14は、カメラプロセッサ14に対する外部の処理のために第2のフレームのセットを出力し、または表示のためにディスプレイインターフェース26に第2のフレームのセットを出力してもよい。一例では、カメラプロセッサ14は、第2のフレームのセットをビデオエンコーダ/デコーダ17に、システムメモリ30に、および/またはディスプレイインターフェース26に出力してもよい。すなわち、第2のフレームのセットを出力するとき、カメラプロセッサ14は、ビデオエンコーダ/デコーダ17、システムメモリ30、および/またはディスプレイインターフェース26(たとえば、ディスプレイ28)の少なくとも1つに第2のフレームのセットを出力するように構成されてもよい。いくつかの事例では、第2のフレームのセットの出力は、第2のフレームのセットを生成するための命令を含んでもよい。命令は、ズーム設定、3A設定などを含んでもよい。いずれの場合でも、命令は、第2のフレームのセットからの少なくとも1つのフレームが第1のフレームのセットからの対応するフレームと異なるズーム設定を備えることを表してもよい。別の例では、第2のフレームのセットの出力は、フレームの第2の生成されたセットを含んでもよく、カメラプロセッサ14は、調整されたズーム設定に基づいて、第2のフレームのセットを生成する。いくつかの例では、ビデオエンコーダ/デコーダ17は、第2のフレームのセットを生成してもよい。
いくつかの例では、第2のフレームのセットを決定するために、カメラプロセッサ14は、イメージセンサ12から受信された複数のフレームの少なくともサブセットから、第2のフレームのセットを生成することに進んでもよい。別の例では、カメラプロセッサ14は、第2のフレームのセットを決定し、第2のフレームのセットを、たとえばビデオエンコーダ/デコーダ17に出力してもよい。そのような例では、ビデオエンコーダ/デコーダ17は、第2のフレームのセットを生成してもよい。いずれの場合でも、第2のフレームのセットからの少なくとも1つのフレームは、第1のフレームのセットのために利用される対応するズーム設定と異なるズーム設定を有してもよい。
いくつかの例では、カメラプロセッサ14は、さらなる処理のために、第2のズーム遷移のセットを出力してもよい。いくつかの例では、ズーム設定調整器46は、遷移の第2のセットを決定してもよい。したがって、ズーム設定調整器46は、第2のフレーム決定器44への第2のズーム遷移のセットを出力してもよい。第2のフレーム決定器44は、第2のフレームのセットが第2のズーム遷移のセットを表すように、第2のフレームのセットを決定してもよい。ズーム遷移は、第2のフレームのセットがどのようにシーンにズームインすべきか、またはシーンからズームアウトすべきかを定める、ズーム設定のセットとして出力されてもよい。いくつかの例では、カメラプロセッサ14は、第2のズーム遷移のセットをシステムメモリ30に、たとえばカメラプロセッサ14の1つのメモリバッファまたは他のオンチップメモリに出力してもよい。別の例では、カメラプロセッサ14は、第2のズーム遷移のセットをビデオエンコーダ/デコーダ17に出力してもよい。
いくつかの例では、カメラプロセッサ14は、システムメモリ30などのメモリデバイスに、第2のフレームのセットの記憶を開始させてもよい。そのような例では、カメラプロセッサは、第2のフレームのセットの記憶の開始に続いて、システムメモリに、そのような例ではメモリデバイスに記憶される複数の受信されたフレームの修正を開始させてもよい。たとえば、カメラプロセッサ14は、複数の完全FOVフレームが修正されるにつれて、リアルタイムで第2のフレームのセットを記憶してもよい。いくつかの例では、カメラプロセッサ14は、第2のフレームのセットの第1のフレームを生成し、続いてメモリから複数のフレームの対応するフレームを削除してもよい。
いくつかの例では、メモリデバイスからの画像データの複数のフレームの修正は、メモリデバイスから複数のフレームを取り除くことを含む。たとえば、カメラプロセッサ14は、システムメモリ30にメモリから複数のフレームを削除させてもよい。別の例では、カメラプロセッサ14は、システムメモリ30に複数のフレームを別個のファイルディレクトリへ移動させてもよい。たとえば、カメラプロセッサ14は、画像データのフレームがあらかじめ定められた時間(たとえば、1時間、1日、30日など)ファイルディレクトリにあった後、システムメモリ30に、ファイルディレクトリのデータ項目または内容全体を削除するように構成されるファイルディレクトリへ、複数のフレームを移動させてもよい。
いくつかの例では、カメラプロセッサ14は、ユーザインターフェース22を介して、特定のカメラモードの選択(たとえば、選択可能なズームモード)を受信するように構成されてもよい。すなわち、カメラプロセッサ14は、有効であるカメラモードに従って動作するように構成されてもよい。いくつかの例では、ユーザは、コンピューティングデバイス10に本開示の様々な技法を実行させるオプションまたはモードを、選択または有効化してもよい。そのような事例では、カメラプロセッサ14は、特定のカメラモードを示すユーザ入力を受信してもよい。いくつかの例では、ユーザインターフェース22は、ズームレートなどのズーム設定を手動で調整するためのオプションをユーザに提供してもよい。別の例では、ユーザインターフェース22は、調整されたズーム設定を第2のフレームのセットの少なくとも1つのフレームに適用するためのオプションをユーザに提供してもよい。限定しない説明のための例では、カメラプロセッサ14は、ズームインプロセスをゆっくり開始してから目標ズームレベルに達するまで速くなるような、またはその逆のアルゴリズムに基づいて、ズーム遷移を滑らかにせよとの要求を、ユーザインターフェース22を介して受信してもよい。いずれの場合でも、カメラプロセッサ14は、ユーザ入力に応答して、特定のカメラモードに従って第2のフレームのセットを決定してもよい。限定しない例では、カメラモードは、ユーザインターフェース22を介してユーザが選択できる滑らかなズームモードを含んでもよい。したがって、カメラプロセッサは、カメラモードとして、第2のフレームのセットを生成してもよく、カメラモードはユーザ入力に応答して有効にされる。
いくつかの例では、コンピューティングデバイス10は、本開示の技法を実行するように構成される複数のカメラプロセッサ14を含んでもよい。そのような例では、第1のカメラプロセッサ14および第2のカメラプロセッサ14は、並列に、または一緒に、本開示の技法を実行してもよい。説明のための例では、第1のカメラプロセッサ14は、複数のキャプチャされたフレームを1つまたは複数の他のカメラプロセッサ14に転送してもよい。加えて、第1のカメラプロセッサ14は、第1のフレームのセット、および/または第1のズーム遷移のセットに関する情報を生成し、1つまたは複数の他のカメラプロセッサ14に移してもよい。1つまたは複数の他のカメラプロセッサは続いて、第1のズーム遷移のセットと異なる第2のズーム遷移のセットを表すように、複数のフレームの少なくともサブセットを変更してもよい。
説明のための例では、カメラプロセッサ14の第1のカメラプロセッサは第1のフレームのセットを決定してもよく、カメラプロセッサ14の第2のカメラプロセッサは、カメラモードに従って、第2のフレームのセットを決定してもよい。第2のカメラプロセッサ14は、選択されたカメラモード(たとえば、滑らかなズームカメラモード)に従って第2のフレームのセットを決定および/または生成してもよい。
加えて、第1のカメラプロセッサ14は、プレビュー表示などの表示のために第1のフレームのセットを出力してもよい。第2のカメラプロセッサ14は、ビデオエンコーダ/デコーダ17などの第2のフレームのセットを出力してもよい。そのような事例では、ビデオエンコーダ/デコーダ17は、第2のカメラプロセッサ14によって決定される第2のフレームのセットを符号化することによって、第2のフレームのセットを生成してもよい。ビデオエンコーダ/デコーダ17は、調整されたズーム設定、3Aパラメータなどに基づいて、第2のフレームのセットを符号化してもよい。そのような事例では、第1のフレームのセットの第1のフレームは、第1のズーム設定を備える。したがって、第2のフレームのセットの第1のフレームは、第1のフレームのセットの第1のフレームに適用される第1のズーム設定と異なる第2のズーム設定を有してもよい。
別の例では、カメラプロセッサ14は、ユーザインターフェース22を介して、1つまたは複数の目標ズームレベルの標示を受信してもよい。たとえば、ビデオが同時に記録されている間に、ユーザは特定のズーム機能を用いて(たとえば、ズームレベルを変えて)実験してもよい。実験の後で、ユーザは、特定のズーム設定について満足すると判定してもよい。そのような事例では、ユーザは、ユーザインターフェース22を介したソフトキーボタンの作動などを通じて、特定のズームレベルなどの特定のズーム設定をユーザが望んでいることの肯定的な標示を提供してもよい。別の例では、カメラプロセッサ14は、特定の長さの時間、または特定の数のフレームの間あるズームレベルが適用されていると判定することがある、1つまたは複数のアルゴリズムを使用して、その標示を決定してもよい。そのような例では、AIアルゴリズムまたはMLモデルは、時間の長さまたはフレームの数の様々な閾値を決定してもよい。いずれの場合でも、カメラプロセッサ14は、ユーザインターフェース22を介した肯定的なキーの押下などのユーザにより望まれるズームレベルについての表現または肯定的な標示を、ユーザインターフェース22を介して何も受信することなく、この方式で1つまたは複数の目標ズームレベルを特定してもよい。
限定しない説明のための例では、カメラプロセッサ14は、1つまたは複数の目標ズームレベルに基づいて、第2のズーム遷移のセットを決定してもよい。第2のズーム遷移のセットは、第2のズーム遷移のセットを表す第2のフレームのセットを(たとえば、ビデオ再生として)見ているときにユーザが目標ズームレベルへの遷移を知覚しないような、目標ズームレベル(たとえば、所望のズームレベル)への即刻の切り替えを含んでもよい。すなわち、目標ズームレベルは、第2のフレームのセットの初期フレームに適用され、後続のズーム遷移は、初期フレームまたは後続のフレームの後にあってもよい。別の例では、第2のズーム遷移のセットは、目標ズームレベルを達成するために、第1のズームレベルを表す第1のフレームから開始して後続のフレームへの、漸次的な遷移を含んでもよい。
いくつかの例では、カメラプロセッサ14は、表示デバイスに、単一のディスプレイ28において、画像/ビデオデータの複数のフレームと第1のフレームのセットを同期させてもよい。一例では、カメラプロセッサ14は、ディスプレイインターフェース26に、複数のフレームと第1のフレームのセットの両方の標示を同期させてもよい。すなわち、カメラプロセッサ14は、表示インターフェース26に、単一のディスプレイにおいて、複数のフレームと第1のフレームのセットの両方を同期させてもよい。一例では、カメラプロセッサ14は、ディスプレイインターフェース26に、サイドバイサイドビューにおいて、アクティブにズームしている第1のフレームのセットを、ズームしていない複数の対応するフレームと並べて表示させてもよい。別の例では、カメラプロセッサ14は、ディスプレイデバイス28に、ピクチャインピクチャ表示を提供させてもよい。これは、様々なズーム設定により第1のプレビューフレームのセットの一部の画素がビューからクロップされる可能性があっても、イメージセンサ12がキャプチャしているものを完全FOVでユーザが視覚化できるようなものであってもよい。
いくつかの例では、ズーム設定調整器46は、AIおよび/またはMLモデルを利用して、第1のフレームのセット(たとえば、第1のプレビューフレームのセット)を生成するときに第1のフレーム生成器42が適用してもよい調整されたズーム設定の第1のセットを決定してもよい。AIおよび/またはMLモデルは、UIズーム機構のズーム感受性、ユーザのズームの履歴と統計、UIのズーム感受性に対するユーザの応答時間などについて訓練されてもよい。そのような事例では、第1のフレームのセットのズーム設定は、ズーム設定がユーザコマンドと異なるように、フレームのプレビューの間に調整されてもよい。すなわち、UI22の特性により過剰ズームまたは過少ズームを行う傾向がユーザにある場合、ズーム設定調整器46は、ユーザがズームコマンドを提供しながらリアルタイムで、ユーザの無分別なズーム操作を補償してもよい。ユーザの観点からは、第1のプレビューフレームのセットは、ユーザのズームコマンドに遅れる、またはそれに先んじるズーム遷移を表してもよい。この補償は、継続的なAIまたはMLの訓練に基づいて時間とともに進化してもよい。いずれの場合でも、調整されたズーム設定の第2のセットを備える第2のフレームのセットはそれでも、調整されたズーム設定の第1のセットを備える第1のフレームのセットと異なっていてもよい。すなわち、調整されたズーム設定の第1のセットは調整されたズーム設定を表すが、調整されたズーム設定の第2のセットが調整されたズーム設定の第1のセットと異なるように、さらなる調整が必要であってもよい。
図5は、本開示で説明される技法の様々な態様による、図1に示されるカメラプロセッサ14の例示的な動作を示す例示的な流れ図である。いくつかの例では、ズーム設定は、複数のズームレベル入力(たとえば、ピンチ・トゥ・ズーム入力、視線入力など)を備える。したがって、カメラプロセッサ14は、1つまたは複数のズームレベル入力が、あらかじめ定められた数のフレームまたは特定の数のフレームに適用されたこと、あらかじめ定められた長さの時間またはある特定の長さの時間適用されたこと、および/またはそうでなければ、第2のフレームのセットのための焦点を示すような方法で適用されたと判定してもよい。説明のための限定しない例では、カメラプロセッサ14は、特定のズームレベルに達するまで、各々0.1秒未満続くズームレベル遷移を含むズーム設定23を受信してもよく、それに達した時点で、ズームレベル(たとえば、目標ズームレベル)は閾値の長さの時間(たとえば、特定の長さの時間)より長い時間の間検出されてもよい。限定しない例では、時間の長さの閾値はそれでも、1.0秒または1.5秒などの比較的短い期間であってもよい。いずれの場合でも、時間の長さの閾値、ならびにフレームの数の閾値は、時間とともに変化してもよい。いくつかの例では、カメラプロセッサ14は、ユーザの挙動に基づいて様々な閾値を適合するために、AIまたはML技法を利用してもよい。たとえば、カメラプロセッサ14は、ユーザのズーム挙動、傾向、および/または選好について訓練されたAIエンジンおよび/またはMLモデルを利用してもよいので、カメラプロセッサ14は、AIエンジンおよび/またはMLモデルを介して、1つまたは複数のズームレベル入力が目標ズームレベル、複数の目標ズームレベル、または有利には、不用意なズームを含むかどうかを決定してもよい。
いくつかの例では、カメラプロセッサ14は、目標ズームレベルを備えるものとして1つまたは複数のズームレベル入力が示されたと判定してもよい。すなわち、カメラプロセッサ14またはCPU16は、ユーザインターフェース22を介して、適用されるズームレベルが望まれるズームレベルを表すことの明示的な標示を受信してもよい。いくつかの例では、ユーザインターフェース22は、ユーザが特定のズームレベル入力を受け入れるための、またはそうでなければ受け入れ可能であるものとして示すためのオプションを含んでもよい。説明のための例では、カメラプロセッサ14は、第1のフレームのセットに第1のズームレベルから第2のズームレベルへのおよび第2のズームレベルから第3のズームレベルへのズーム遷移を表現させる、ユーザ入力を受信してもよい。カメラプロセッサ14は、ユーザインターフェース22を介して、第3のズームレベルが目標ズームレベルであったことの標示を受信してもよい。たとえば、ユーザは、第3のズームレベルにおいて一度、最終的に望まれるズームレベルとして第3のズームレベルに進むためのオプションを選択することがある。この例では、カメラプロセッサ14は、イメージセンサ12によって受信される複数のフレームまたは第1のフレームのセットの少なくともサブセットに少なくとも一部基づいて、第2のフレームのセットを決定してもよい。第2のフレームのセットは、第3のズームレベルにおいて単一のズームレベルを備えてもよい。別の例では、第2のフレームのセットは複数のズームレベルを備えてもよい。ある例では、第2のフレームのセットは複数のズームレベルを備えてもよく、目標ズームレベルによって表されるより多数のフレームを備える第2のフレームのセットを優先して、第2のズームレベルまたは第1のズームレベルをなしで済ませてもよい。いずれの場合でも、第2のフレームのセットは、いくつかの事例では、ユーザが最初に意図していた可能性のあるズームをより厳密に示すことがある。
同様に、カメラプロセッサ14は、閾値を超える、または前の中間ズームレベルに対応するフレームの数に対する相対的な量を超える、特定の数のフレームに適用される特定のズームレベルを検出してもよい。1つまたは複数のズームレベルのそのような長期の適用は、1つまたは複数のズームレベルが、最終的にユーザが望んだもの(たとえば、目標ズームレベル)であることを示す。そのような事例では、カメラプロセッサ14は、1つまたは複数の目標ズームレベルを含むものとして1つまたは複数の特定のズームレベル入力を特定してもよい(504)。すなわち、カメラプロセッサ14は、目標ズームレベル(たとえば、ユーザによって最終的に望まれるズームレベル)に対応するものとして、特定のズームレベル入力を特定してもよい。
いくつかの例では、カメラプロセッサ14は、1つまたは複数の目標ズームレベルに少なくとも一部基づいて、第2のフレームのセットを決定してもよい(506)。別の例では、カメラプロセッサ14は、1つまたは複数のズームレベル入力に少なくとも部分的に基づいて、第2のフレームのセットを決定してもよい。そのような事例では、カメラプロセッサ14は、目標ズームレベルを備えるものとしてズームレベル入力を特定する。いくつかの例では、カメラプロセッサ14は、1つまたは複数の第2のズーム遷移のセットを定義する1つまたは複数のズームパラメータを決定してもよい。たとえば、1つまたは複数のズームパラメータは、シーンの中の特定の物体に再び中心を合わせるためにユーザがカメラ15を動かすとき、またはシーン全体をパンするときなどのズームレート(たとえば、遅いズーム、速いズーム)、デジタルクロッピングの量、デジタル的にクロップされる部分の座標への調整を含んでもよい。ある例では、ユーザは、シーンの中の物体にズームインすることを試みることがあるが、過剰にズームすることがあり、同時にズームアウトして、物体が異なる方向を向くようにカメラ15を動かさなければならないことがある。そのような事例では、カメラプロセッサ14は、物体のズーム入力と動きに基づいてズームパラメータを決定してもよい。AOF追跡システム36は、画像フレームに対する物体の動きを検出してもよい。すなわち、シーンの中の物体は静止していることがあるが、レンズ13は3D物理空間または仮想空間に対して動いていることがある。たとえば、レンズ13は、横方向に、物体に向かって、物体から離れて、などのように、3D空間において動いてもよい。いずれの場合でも、フレームはカメラ15とともに動いてもよく、この場合、AOF追跡システム36は、フレームを基準として、それを基準としなければ静止している物体の動きを検出してもよい。いくつかの例では、AOF追跡システム36は、1つまたは複数の検出された関心対象の物体を備える1つまたは複数のAOFの変化を検出してもよい。
いくつかの例では、第1のズーム遷移のセットは、第1のズームレベルから第2のズームレベルへの第1のズーム遷移を含んでもよい。そのような例では、1つまたは複数の第2のズーム遷移のセットは、第1のズームレベルから目標ズームレベルへのズーム遷移を表す第1の滑らかにされたズーム遷移を含んでもよい。目標ズームレベルは、複数の目標ズームレベルから特定される第1の目標ズームレベルを含んでもよい。いずれの場合でも、目標ズームレベルは、第2のズームレベルと異なってもよい。たとえば、第2のズームレベルは11.0倍であってもよく、望まれるズームレベルは10.5倍であってもよい。そのような事例では、第2のズーム遷移のセットによって定義されるような調整されたズーム遷移は、1.0倍から10.5倍(1.0倍から11.0倍そして10.5倍ではなく)であってもよい。
図6は、複数のズーム設定を含む例示的な撮像シーケンスの例示的な図示である。示されるように、プレビューフレーム602、612、622の第1のセットは、複数のズーム設定を表す。
図6の例では、第1のズーミングフレーム602は、カメラ650を使用してキャプチャされて記憶されてもよい。カメラ650は、カメラ15またはコンピューティングデバイス10の例である。カメラプロセッサ14は、異なるプレビューズームレベルを有するフレーム612へのフレーム602からのズーム遷移をもたらすズーム設定610を受信してもよい。カメラ650は、フレームの中の人604を検出してもよい。ユーザがある程度の時間ズームレベルを正そうとした後で、ズーミングフレーム622は、人604の記録のための理想的なズームを表すことがある。そのような例では、ズーミング第1のフレームのセットは、プレビュー表示のために構成されるプレビューフレームを含む。すなわち、カメラプロセッサ14は、プレビュー表示のために、フレーム602、612、622の第1のセット(たとえば、ズーミング第1のフレームのセット)を出力してもよい。
図7は、本開示において説明される技法の様々な態様によれば、キャプチャされたフレームのエリアのズームインされた表示ビューに対する、キャプチャされたフレームの例示的な図示である。たとえば、フレーム702は、複数のフレームからの完全FOVフレームのキャプチャを表してもよい。ズーミングのためにデジタル的にクロップされた部分706は、図6の第2のズーミングフレームであるズーミングフレーム612を提供してもよい。カメラプロセッサ14は、図6および図8に示されるものなどのズームインされたビューを提供するためにズーム技法710を実行してもよいが、図8は、滑らかにされたズーム遷移(たとえば、第2のズーム遷移のセット)を表す第2のフレームのセットの例を表す。すなわち、ズーム遷移は、図6に示されるズーム遷移に対して滑らかにされる。
図8は、本開示で説明される技法の様々な態様による、ズーム遷移(たとえば、第2のズーム遷移のセット)を滑らかにしたフレームの例示的な第2のセットの例示的な図示である。第2のフレームのセットは、フレーム602、612、622の第1のセットと異なる。カメラプロセッサ14は、図7のフレーム702などの対応するフレームに基づいて、フレーム802、812、および822の第2のセットを生成してもよく、これらはフレーム602および802に対応する。説明のための例では、フレーム812は、時間的にフレーム612に対応するので、プレビューフレーム612を生成するために適用されるズーム設定は、対応するフレーム812を生成するために適用されるズーム設定と異なる。
いくつかの例では、1つまたは複数の望まれるズームレベルを特定するために、および/またはフレーム802の第2のセットを生成もしくは決定するために、カメラプロセッサ14は、フレーム702などの複数のフレームの中の物体または領域の少なくとも1つの検出を実行してもよい。そのような例では、カメラプロセッサ14は、少なくとも1つの物体または領域の検出に少なくとも一部基づいて、フレーム802、812、および822の第2のセットを決定してもよい。フレーム802、812、および822の第2のセットは、調整されたズーム遷移810および820を含んでもよい。カメラプロセッサ14は、第1のフレームのセットを生成または決定するときに受信されるズーム設定に基づいて、滑らかにされたズーム遷移810および820を調整してもよい。いくつかの例では、調整されたズーム遷移は、最適化されたズーム遷移、滑らかにされたズーム遷移、または調整されたズーム設定を含んでもよい。
いくつかの例では、1つまたは複数の望まれるズームレベルを特定し、および/または第2のフレームのセット(たとえば、ズーミング第2のフレームのセット)を決定するとき、カメラプロセッサ14は、ズーム設定の1つとして、ズームコマンドを受信してもよい。たとえば、ズームコマンドは、1.0倍から8.0倍にズームせよとのコマンドであってもよい。加えて、カメラプロセッサ14は、物体または領域に対するフレームの後続の動きを検出してもよい。たとえば、人604はフレーム702の中心から外れている。そのような事例では、ユーザは、フレーム702の中心に人604を置くために、カメラを動かしてもよい(たとえば、フレームを動かしてもよい)。そのような事例では、カメラプロセッサ14は、後続の動きの検出に少なくとも一部基づいて、1つまたは複数の目標ズームレベルを特定し、または第2のフレームのセットを決定してもよい。これは、この例では、プレビュー表示フレーム612が検出された人604を完全に示さない可能性があっても、人が完全FOVフレームにおいて完全にキャプチャされるからである。同様に、カメラプロセッサ14は、キャプチャシーンに対する(たとえば、カメラ15のFOVにおける)関心対象の物体または領域のAOF検出に少なくとも一部基づいて、1つまたは複数の目標ズームレベルを特定し、または第2のフレームのセットを決定してもよい。別の例では、ユーザは、関心対象の物体にズームインすることがあるが、そうすると、ズーム入力がユーザの関心対象の物体ではなく背景の物体に不正確にズームインするので、フレームの中心に物体を再び合わせる必要がある。
本開示の説明のための例は、以下を含む。
例1: 画像データの複数のフレームを受信するステップと、ユーザインターフェースを介して、複数のフレームの各々のためのズーム設定を受信するステップと、ズーム設定に従って、第1のフレームのセットを生成するステップと、ズーム設定に基づいて、第1のフレームのセットと異なる第2のフレームのセットを決定するステップと、さらなる処理のために、第2のフレームのセットを出力するステップとを備える、カメラ処理のための方法。
例2: 第2のフレームのセットを決定するステップが、複数のフレームの少なくともサブセットから、第2のフレームのセットを生成するステップを備え、第2のフレームのセットからの少なくとも1つのフレームが、第1のフレームのセットのために利用される対応するズーム設定と異なるズーム設定を備える、例1による方法。
例3: 第1のフレームのセットが第1のズームレベルから第2のズームレベルへの遷移を表し、第2のフレームのセットが第1のズームレベルから目標ズームレベルへの遷移を表し、目標ズームレベルが第2のズームレベルと異なる、例1または2のいずれかによる方法。
例4: ズーム設定が複数のズームレベル入力を備え、第2のフレームのセットを決定するステップが、特定のズームレベル入力が、あらかじめ定められた数のフレームに適用されていること、またはあらかじめ定められた長さの時間適用されていると判定するステップと、目標ズームレベルを備えるものとして特定のズームレベル入力を特定するステップと、目標ズームレベルに基づいて、第2のフレームのセットを決定するステップとを備える、例1から3のいずれかによる方法。
例5: メモリデバイスまたはビデオエンコーダに、画像データの複数のフレームを出力するステップをさらに備え、複数のフレームが、複数のフレームをキャプチャするように構成される1つまたは複数のイメージセンサに対応する完全視野(FOV)を備えるものとして記憶または符号化される、例1から4のいずれかによる方法。
例6: 第2のフレームのセットが、画素ビニングレベルを適応させた結果としてデジタル的にクロップされ、スケーリングされ、デジタル的にクロップされてスケーリングされ、またはデジタル的に変えられた、複数の受信されたフレームのフレームを表す、例1から5のいずれかによる方法。
例7: 第2のフレームのセットが、光学ズーム遷移またはデジタルズーム遷移の1つまたは複数を表す、例1から6のいずれかによる方法。
例8: 表示のために、プレビューフレームのセットとして第1のフレームのセットを出力するステップをさらに備える、例1から7のいずれかによる方法。
例9: 特定のカメラモードを示すユーザ入力を受信するステップと、ユーザ入力に応答して、カメラモードに従って第2のフレームのセットを生成するステップとをさらに備える、例1から8のいずれかによる方法。
例10: 第2のフレームのセットを決定するステップが、複数のフレームの中の物体または領域の少なくとも1つの検出を実行するステップと、検出に基づいて第2のフレームのセットを決定するステップとを備える、例1から9のいずれかによる方法。
例11: 自動調整パラメータの第1のセットを複数のフレームに適用するステップと、自動調整パラメータの第2のセットを第1のフレームのセットに適用するステップとをさらに備える、例1から10のいずれかによる方法。
例12: 自動調整パラメータの第2のセットが、自動調整パラメータの第1のセットと異なる、例11による方法。
例13: 第2のフレームのセットを出力するステップが、ビデオファイルとして記憶されるべき第2のフレームのセットを出力するステップを備える、例1から12のいずれかによる方法。
例14: 例1から13のいずれかの方法を実行するための1つまたは複数の手段を備える、カメラ処理のための装置。たとえば、例14の装置は、画像データを記憶するように構成されるメモリと、メモリと通信している1つまたは複数のプロセッサとを含んでもよく、1つまたは複数のプロセッサは、画像データの複数のフレームを受信し、ユーザインターフェースを介して、複数のフレームの各々のためのズーム設定を受信し、ズーム設定に従って、第1のフレームのセットを生成し、ズーム設定に基づいて、第2のフレームのセットを決定し、第2のフレームのセットが第1のフレームのセットと異なり、さらなる処理のために、第2のフレームのセットを出力するように構成される。
例15: 第1のフレームのセットが第1のズーム遷移のセットを表し、第2のフレームのセットが第2のズーム遷移のセットを表し、第1のズーム遷移のセットと第2のズーム遷移のセットが互いに異なる、例14による装置。
例16: 第1のズーム遷移のセットが第1のズームレベルから第2のズームレベルへの遷移を含み、第2のズーム遷移のセットが第1のズームレベルから目標ズームレベルへの遷移を含み、目標ズームレベルが第2のズームレベルと異なる、例15による装置。
例17: ズーム設定が複数のズームレベル入力を備え、第2のフレームのセットを決定するために、1つまたは複数のプロセッサが、1つまたは複数のズームレベル入力が、特定の数のフレームに適用されていること、または特定の長さの時間適用されていると判定し、1つまたは複数の目標ズームレベルを含むものとして1つまたは複数のズームレベル入力を特定し、1つまたは複数の目標ズームレベルを含む1つまたは複数のズームレベル入力に基づいて、第2のフレームのセットを決定するように構成される、例14から16のいずれかによる装置。
例18: 1つまたは複数のプロセッサがさらに、メモリデバイスまたはビデオエンコーダに、画像データの複数のフレームを出力するように構成され、複数のフレームが、複数のフレームをキャプチャするように構成される1つまたは複数のイメージセンサに対応する完全視野(FOV)を備える、例14から17のいずれかによる装置。
例19: 第2のフレームのセットが、画素ビニングレベルを適応させた結果としてデジタル的にクロップされ、スケーリングされ、デジタル的にクロップされてスケーリングされ、またはデジタル的に変えられた、複数の受信されたフレームのフレームを含む、例14から18のいずれかによる装置。
例20: 第2のフレームのセットが、光学ズーム遷移またはデジタルズーム遷移の1つまたは複数を表す、例14から19のいずれかによる装置。
例21: 1つまたは複数のプロセッサがさらに、表示のために、プレビューフレームのセットとして第1のフレームのセットを出力するように構成され、第1のフレームのセットからの少なくとも1つのフレームが、第2のフレームのセットからの対応するフレームと異なるズーム設定を備える、例14から20のいずれかによる装置。
例22: 第2のフレームのセットを決定するために、1つまたは複数のプロセッサが、特定のカメラモードを示すユーザ入力を受信し、ユーザ入力に応答して、特定のカメラモードに従って第2のフレームのセットを生成するように構成される、例14から21のいずれかによる装置。
例23. 1つまたは複数のプロセッサが、第1のカメラプロセッサおよび第2のカメラプロセッサを含み、第1のカメラプロセッサが、表示のために、第1のフレームのセットを出力するように構成され、第2のカメラプロセッサが、特定のカメラモードに従って、第2のフレームのセットを決定し、第2のフレームのセットを出力するように構成される、例22による装置。
例24: 第2のフレームのセットを決定するために、1つまたは複数のプロセッサが、複数のフレームの中の物体または領域の少なくとも1つの検出を実行し、検出に基づいて第2のフレームのセットを決定するように構成される、例14から23のいずれかによる装置。
例25: 1つまたは複数のプロセッサがさらに、自動調整パラメータの第1のセットを複数の受信されたフレームに適用し、自動調整パラメータの第2のセットを第1のフレームのセットに適用するように構成される、例14から24のいずれかによる装置。
例26: 自動調整パラメータの第2のセットが、自動調整パラメータの第1のセットと異なる、例24による装置。
例27: 第2のフレームのセットを出力するために、1つまたは複数のプロセッサが、ビデオファイルとして記憶されるべき第2のフレームのセットを出力するように構成される、例14から26のいずれかによる装置。
いくつかの実装形態では、上で説明された例1~13および/または14~27は、実行されると、デバイスの1つまたは複数のプロセッサに様々な動作の一部またはすべてを実行させる命令を記憶するコンピュータ可読記憶媒体を使用して実装され得る。たとえば、実行されると、カメラ処理のための装置の1つまたは複数のプロセッサに、画像データの複数のフレームを受信させ、ユーザインターフェースを介して、複数のフレームの各々のためのズーム設定を受信させ、ズーム設定に従って、第1のフレームのセットを決定させ、ズーム設定に基づいて、第2のフレームのセットを決定させ、第2のフレームのセットが第1のフレームのセットと異なり、第2のフレームのセットを出力させる、命令を記憶したコンピュータ可読記憶媒体が提供され得る。
いくつかの実装形態では、上で説明された例1~13および/または14~27は、様々な動作の一部またはすべてを実行するための1つまたは複数の手段を備える装置を使用して実装され得る。たとえば、カメラ処理のための装置は、画像データの複数のフレームを受信するための手段と、ユーザインターフェースを介して、複数のフレームの各々のためのズーム設定を受信するための手段と、ズーム設定に従って、第1のフレームのセットを生成するための手段と、ズーム設定に基づいて、第2のフレームのセットを決定するための手段であって、第2のフレームのセットと第1のフレームのセットが互いに異なる、手段と、さらなる処理のために、第2のフレームのセットを出力するための手段とを含む。
例に応じて、本明細書で説明される技法のいずれかのいくつかの行為またはイベントが、異なる順序で実行されることがあり、追加され、統合され、または完全に除外されてもよい(たとえば、説明されたすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて、同時に実行されてもよい。
1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装されてもよい。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるかまたはコンピュータ可読媒体を介して送信されてもよく、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含んでもよい。このようにして、コンピュータ可読媒体は一般に、非一時的である有形コンピュータ可読記憶媒体に対応することがある。データ記憶媒体は、本開示で説明される技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスすることができる任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでもよい。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、キャッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。コンピュータ可読記憶媒体およびデータ記憶媒体は、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的な有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの1つまたは複数のプロセッサによって実行されてもよい。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に適した任意の他の構造のいずれかを指すことがある。また、技法は、1つまたは複数の回路または論理要素で全体的に実装され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置に実装されてもよい。開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが本開示において説明されたが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。
様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。