(57)【特許請求の範囲】
【請求項１】
イメージセンサアレイのイメージセンサへのユーザアクセスを制御するためのコンピューティングデバイスであって、前記コンピューティングデバイスは、
複数のイメージセンサを含むイメージセンサアレイを有するカメラデバイスであって、前記複数のイメージセンサが第１のイメージセンサと第２のイメージセンサとを含むカメラデバイスと、
カメラドライバモジュールであって、（ｉ）前記イメージセンサアレイの前記イメージセンサの各々によって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）前記コンピューティングデバイスのユーザによって選択された前記カメラデバイスのユーザ入力モード設定を判定し、（ｉｉｉ）前記第１のイメージセンサのイメージデータと、前記第２のイメージセンサのイメージデータとを合成し、（ｉｖ）前記第１のイメージセンサ及び前記第２のイメージセンサ以外の、前記イメージセンサアレイの他のイメージセンサが有するセンサ機能に対応するセンサデータを生成する間、少なくとも部分的に、前記ユーザ入力モード設定に基づいて、前記合成されたイメージデータを前記ユーザに公開し、（ｖ）前記他のイメージセンサが対応する前記センサ機能を実行する間前記他のイメージセンサの設定を前記ユーザへ表示しないことにより、前記カメラデバイスが前記ユーザ入力モード設定に選択されている間前記他のイメージセンサへのユーザアクセスを制限する、カメラドライバモジュールと
を備える、
コンピューティングデバイス。
【請求項２】
前記第２のイメージセンサは、前記第１のイメージセンサと異なる視野を有し、
前記カメラドライバモジュールは、前記合成により前記第１のイメージセンサの視野よりも拡大された視野のイメージデータを形成する、
請求項１に記載のコンピューティングデバイス。
【請求項３】
前記複数のイメージセンサは、主イメージセンサと、１つ又は複数の副イメージセンサとを含み、前記カメラドライバモジュールは更に、（ｉ）前記主イメージセンサ及び前記１つ又は複数の副イメージセンサによって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）前記主イメージセンサを前記ユーザに公開し、（ｉｉｉ）前記イメージセンサアレイのうちの前記１つ又は複数の副イメージセンサへのユーザアクセスを制限する、請求項１または２に記載のコンピューティングデバイス。
【請求項４】
前記複数のイメージセンサは、複数の主イメージセンサを含み、前記カメラドライバモジュールは更に、（ｉ）前記複数の主イメージセンサの各々によって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）前記複数の主イメージセンサのうち単一の主イメージセンサを前記ユーザへ公開し、（ｉｉｉ）前記単一の主イメージセンサ以外の、前記複数の主イメージセンサのうちの他の前記複数の主イメージセンサへのユーザアクセスを制限する、請求項１から３のいずれか一項に記載のコンピューティングデバイス。
【請求項５】
前記複数のイメージセンサは更に、１つ又は複数の副イメージセンサを含み、前記カメラドライバモジュールは更に、（ｉ）前記１つ又は複数の副イメージセンサによって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）前記１つ又は複数の副イメージセンサへのユーザアクセスを制限する、請求項４に記載のコンピューティングデバイス。
【請求項６】
前記カメラドライバモジュールは更に、サポートされる解像度、視野、又は、視野角のうちの少なくとも１つに基づいて、前記イメージセンサアレイの前記複数のイメージセンサから前記複数の主イメージセンサを選択する、請求項４又は５に記載のコンピューティングデバイス。
【請求項７】
前記公開することは、前記第１のイメージセンサ及び前記第２のイメージセンサからのイメージデータストリームを、前記コンピューティングデバイスによって実行可能なソフトウェアアプリケーションへ公開することを含む、請求項１から６のいずれか一項に記載のコンピューティングデバイス。
【請求項８】
更に、前記カメラデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理して、処理された前記イメージセンサデータを出力するための複数の出力モジュールと、
前記カメラドライバモジュールからの光学イメージデータの各ストリームを、前記複数の出力モジュールのうちの対応する１つへ仲介するための複数のプロキシモジュールと
を備え、
前記カメラドライバモジュールは更に、（ｉ）前記カメラデバイスの、前記カメラモード設定及びユーザ入力モード設定を判定し、（ｉｉ）少なくとも部分的に、前記ユーザ入力モード設定に基づいて、前記複数のイメージセンサ、及び、前記イメージセンサアレイの前記他のイメージセンサの各々の有効化状態を管理し、（ｉｉｉ）前記カメラモード設定に基づいて、前記複数のプロキシモジュールの１つへ前記イメージセンサデータを伝送する、
請求項１から７のいずれか一項に記載のコンピューティングデバイス。
【請求項９】
前記ユーザ入力モード設定が深度検出モードへ設定されていないという判定に応答して、前記カメラドライバモジュールは更に、（ｉ）イメージセンサデータキャプチャについて、前記第１のイメージセンサ及び前記第２のイメージセンサを有効化し、（ｉｉ）前記イメージセンサアレイの前記他のイメージセンサを無効化し、（ｉｉｉ）前記カメラモード設定に基づいて、前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを前記複数のプロキシモジュールの１つへ伝送することと、
前記カメラモード設定が深度検出モードに設定されているという判定に応答して、前記カメラドライバモジュールは更に、（ｉ）イメージセンサデータキャプチャについて、前記第１のイメージセンサ、前記第２のイメージセンサ及び前記イメージセンサアレイの前記他のイメージセンサを有効化し、（ｉｉ）前記カメラデバイスが写真キャプチャに設定されているかどうかを判定することと、
を行う、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記複数の出力モジュールは、
受信された前記イメージセンサデータを処理し、処理された前記イメージセンサデータに基づいてプレビューイメージを出力するためのプレビュー出力モジュールと、
受信された前記イメージセンサデータを処理し、処理された前記イメージセンサデータに基づいてビデオを出力するためのビデオ出力モジュールと、
を有し、
前記複数のプロキシモジュールは、
前記カメラドライバモジュールと前記プレビュー出力モジュールとの間で前記光学イメージデータを仲介するためのプレビュープロキシモジュールと、
前記カメラドライバモジュールと前記ビデオ出力モジュールとの間で前記光学イメージデータを仲介するためのビデオプロキシモジュールと、
を有し、
前記カメラドライバモジュールは更に、前記カメラモード設定が写真キャプチャモードに設定されていないという判定に応答して、（ｉ）前記第１のイメージセンサ及び前記第２のイメージセンサからのイメージセンサデータをキャプチャし、（ｉｉ）前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを前記プレビュープロキシモジュール又は前記ビデオプロキシモジュールの１つへ伝送する、
請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記複数の出力モジュールは更に、受信された前記イメージセンサデータを処理して、受信された前記イメージセンサデータに基づいて写真を出力するための写真出力モジュールを有し、
前記複数のプロキシモジュールは更に、前記カメラドライバモジュールと前記写真出力モジュールとの間で前記光学イメージデータを仲介するための写真プロキシモジュールを有し、
前記カメラドライバモジュールは更に、前記カメラモード設定が写真キャプチャモードに設定されているという判定に応答して、（ｉ）前記第１のイメージセンサ、前記第２のイメージセンサ及び前記イメージセンサアレイの前記他のイメージセンサからのイメージセンサデータをキャプチャし、（ｉｉ）少なくとも部分的に、前記カメラモード設定に基づいて、前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを前記写真プロキシモジュールへ伝送し、
前記写真プロキシモジュールは更に、（ｉ）前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを使用して写真を符号化し、（ｉｉ）前記イメージセンサアレイの前記他のイメージセンサのうちの１つ又は複数からの前記イメージセンサデータに基づいて深度データを計算し、（ｉｉｉ）符号化された前記写真のメタデータへ前記深度データを挿入し、（ｉｖ）前記深度データを含む前記写真を出力する、
請求項１０に記載のコンピューティングデバイス。
【請求項１２】
前記光学イメージデータを前記カメラドライバモジュールと前記プレビュー出力モジュールとの間で仲介することは、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記プレビュー出力モジュールへ伝送することを含み、
前記光学イメージデータを前記カメラドライバモジュールと前記ビデオ出力モジュールとの間で仲介することは、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記ビデオ出力モジュールへ伝送することを含み、
前記光学イメージデータを前記カメラドライバモジュールと前記写真出力モジュールとの間で仲介することは、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記写真出力モジュールへ伝送することを含む、
請求項１１に記載のコンピューティングデバイス。
【請求項１３】
コンピューティングデバイスのイメージセンサアレイのイメージセンサへのユーザアクセスを制御するための方法であって、
前記コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサが含む第１のイメージセンサ及び第２のイメージセンサの各々が、イメージデータストリームを生成する段階と、
前記コンピューティングデバイスのカメラドライバモジュールが、前記第１のイメージセンサのイメージデータと、前記第２のイメージセンサのイメージデータとを合成する段階と、
前記カメラドライバモジュールが、生成される前記イメージデータストリームへのアクセスを管理する段階と、
前記カメラドライバモジュールが、前記コンピューティングデバイスのユーザによって選択されたカメラデバイスのユーザ入力モード設定を判定する段階と、
前記カメラドライバモジュールが、前記第１のイメージセンサ及び前記第２のイメージセンサ以外の、前記イメージセンサアレイの他のイメージセンサが有するセンサ機能の対応するセンサデータを生成する間、少なくとも部分的に、前記ユーザ入力モード設定に基づいて、前記合成されたイメージデータを前記ユーザに公開する段階と、
前記カメラドライバモジュールが、前記他のイメージセンサが対応する前記センサ機能を実行する間前記他のイメージセンサの設定を前記ユーザへ表示しないことにより、前記カメラデバイスが前記ユーザ入力モード設定に選択されている間前記他のイメージセンサへのユーザアクセスを制限する段階と、
を備える、
方法。
【請求項１４】
前記第２のイメージセンサは、前記第１のイメージセンサと異なる視野を有し、
前記合成する段階は、前記カメラドライバモジュールが前記合成により前記第１のイメージセンサの視野よりも拡大された視野のイメージデータを形成する段階と、
を含む、
請求項１３に記載の方法。
【請求項１５】
前記イメージデータストリームを生成する段階は、主イメージセンサ及び１つ又は複数の副イメージセンサの各々によって前記イメージデータストリームを生成する段階を含み、
前記公開する段階は、前記主イメージセンサを前記ユーザへ公開する段階を含み、
公開されている前記第１のイメージセンサ及び前記第２のイメージセンサ以外の、前記イメージセンサアレイの前記他のイメージセンサへのユーザアクセスを制限する段階は、前記イメージセンサアレイのうちの前記１つ又は複数の副イメージセンサへのユーザアクセスを制限する段階を含む、
請求項１３または１４に記載の方法。
【請求項１６】
前記コンピューティングデバイスの前記イメージセンサアレイの前記複数のイメージセンサの各々が前記イメージデータストリームを生成する段階は、複数の主イメージセンサの各々が前記イメージデータストリームを生成する段階を含み、
前記公開する段階は、前記複数の主イメージセンサのうちの単一の主イメージセンサを前記ユーザに公開する段階を含み、
公開されている前記第１のイメージセンサ及び前記第２のイメージセンサ以外の、前記イメージセンサアレイの前記他のイメージセンサへのユーザアクセスを制限する段階は、前記単一の主イメージセンサ以外の、前記複数の主イメージセンサの他の主イメージセンサへのユーザアクセスを制限する段階を含む、
請求項１３から１５のいずれか一項に記載の方法。
【請求項１７】
前記コンピューティングデバイスの前記イメージセンサアレイの前記複数のイメージセンサの各々が前記イメージデータストリームを生成する段階は更に、１つ又は複数の副イメージセンサの各々が前記イメージデータストリームを生成する段階を含み、
前記第１のイメージセンサ及び前記第２のイメージセンサ以外の、前記イメージセンサアレイの前記他のイメージセンサへのユーザアクセスを制限する段階は、前記１つ又は複数の副イメージセンサへのユーザアクセスを制限する段階を含む、
請求項１６に記載の方法。
【請求項１８】
サポートされる解像度、視野、又は、視野角のうちの少なくとも１つに基づいて、前記カメラドライバモジュールが、前記複数の主イメージセンサから前記単一の主イメージセンサを選択する段階を更に含む、請求項１６又は１７に記載の方法。
【請求項１９】
前記公開する段階は、前記第１のイメージセンサ及び前記第２のイメージセンサからのイメージデータストリームを、前記コンピューティングデバイスによって実行可能なソフトウェアアプリケーションへ公開する段階を含む、請求項１３から１６のいずれか一項に記載の方法。
【請求項２０】
前記コンピューティングデバイスのカメラモード設定及びユーザ入力モード設定を判定する段階と、
少なくとも部分的に、前記ユーザ入力モード設定に基づいて、前記イメージセンサの各々の有効化状態を管理する段階と、
前記カメラドライバモジュールが、前記カメラモード設定に基づいて、複数のプロキシモジュールのうちの１つへイメージセンサデータを伝送する段階と、
前記複数のプロキシモジュールのうちの少なくとも１つによって、前記カメラドライバモジュールからの光学イメージデータの各ストリームを、複数の出力モジュールのうちの対応する１つへ仲介する段階と、
前記複数の出力モジュールのうちの少なくとも１つによって、少なくとも部分的に、前記カメラモード設定に基づいて、受信されたイメージセンサデータを処理する段階と、
処理された前記イメージセンサデータを前記コンピューティングデバイスのディスプレイへ出力する段階と
を更に含む、
請求項１３から１９のいずれか一項に記載の方法。
【請求項２１】
更に、前記ユーザ入力モード設定が深度検出モードへ設定されていないという判定に応答して、（ｉ）イメージセンサデータキャプチャについて、前記第１のイメージセンサ及び前記第２のイメージセンサを有効化し、（ｉｉ）前記イメージセンサアレイの前記他のイメージセンサを無効化し、（ｉｉｉ）前記カメラモード設定に基づいて、前記第１のイメージセンサ及び前記第２のイメージセンサからのイメージセンサデータを前記複数のプロキシモジュールのうちの１つへ伝送する段階と、
前記カメラモード設定が深度検出モードに設定されているという判定に応答して、（ｉ）イメージセンサデータキャプチャについて、前記第１のイメージセンサ、前記第２のイメージセンサ及び前記イメージセンサアレイの前記他のイメージセンサを有効化し、（ｉｉ）前記コンピューティングデバイスが写真キャプチャに設定されているかどうかを判定する段階と、
を更に含む、
請求項２０に記載の方法。
【請求項２２】
前記カメラドライバモジュールからの光学イメージデータの各ストリームを、前記複数の出力モジュールの対応する１つへ仲介する段階は、
受信された前記イメージセンサデータを処理し、処理された前記イメージセンサデータに基づいてプレビューイメージを出力するためのプレビュー出力モジュールへ、前記カメラドライバモジュールからの光学イメージデータのストリームをプレビュープロキシモジュールが仲介する段階と、
受信された前記イメージセンサデータを処理し、処理された前記イメージセンサデータに基づいてビデオを出力するためのビデオ出力モジュールへ、前記カメラドライバモジュールからの光学イメージデータのストリームをビデオプロキシモジュールが仲介する段階と、
受信された前記イメージセンサデータを処理し、処理された前記イメージセンサデータに基づいて写真を出力するための写真出力モジュールへ、前記カメラドライバモジュールからの光学イメージデータのストリームを写真プロキシモジュールによって仲介する段階と
を含む、請求項２１に記載の方法。
【請求項２３】
前記カメラモード設定が写真キャプチャモードに設定されていないという判定に応答して、
前記第１のイメージセンサ及び前記第２のイメージセンサからのイメージセンサデータをキャプチャする段階と、
前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを、前記プレビュープロキシモジュール又は前記ビデオプロキシモジュールのうちの１つへ伝送する段階と、
を更に含む、請求項２２に記載の方法。
【請求項２４】
前記カメラモード設定が写真キャプチャモードに設定されているという判定に応答して、
前記第１のイメージセンサ、前記第２のイメージセンサ及び前記イメージセンサアレイの前記他のイメージセンサからのイメージセンサデータをキャプチャする段階と、
少なくとも部分的に、前記カメラモード設定に基づいて、前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを前記写真プロキシモジュールへ伝送する段階と、
前記第１のイメージセンサ及び前記第２のイメージセンサからの前記イメージセンサデータを使用して写真を符号化する段階と、
前記イメージセンサアレイの前記他のイメージセンサのうちの１つ又は複数からの前記イメージセンサデータに基づいて、深度データを計算する段階と、
前記深度データを、符号化された前記写真のメタデータへ挿入する段階と、
前記深度データを含む前記写真を出力する段階と
を更に含む、
請求項２２又は２３に記載の方法。
【請求項２５】
前記光学イメージデータを前記カメラドライバモジュールと前記プレビュー出力モジュールとの間で仲介する段階は、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記プレビュー出力モジュールへ伝送する段階を含み、
前記光学イメージデータを前記カメラドライバモジュールと前記ビデオ出力モジュールとの間で仲介する段階は、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記ビデオ出力モジュールへ伝送する段階を含み、
前記光学イメージデータを前記カメラドライバモジュールと前記写真出力モジュールとの間で仲介する段階は、受信された前記イメージセンサデータを前記カメラドライバモジュールから前記写真出力モジュールへ伝送する段階を含む、
請求項２２から２４のいずれか一項に記載の方法。
【請求項２６】
コンピューティングデバイスであって、
プロセッサと、
前記プロセッサによって実行されるときに、前記コンピューティングデバイスに、請求項１３から２５のいずれか一項に記載の方法を実行させる複数の命令をその中に格納したメモリと、
を備える、
コンピューティングデバイス。
【請求項２７】
実行されることに応答して、コンピューティングデバイスが請求項１３から２５のいずれか一項に記載の方法を実行するという結果をもたらす、複数の命令を含むプログラム。
【請求項２８】
請求項２７に記載のプログラムを格納する１つ又は複数の機械可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
［関連出願の相互参照］
本出願は、２０１５年３月２７日に出願された、「カメラデバイスのイメージセンサへのユーザアクセスを制御するための技術」と題される、米国特許出願第１４／６７１，７０５号への優先権を主張する。
【０００２】
現代のコンピューティングデバイスは、個人、ビジネス、及びソーシャルの用途のための多面的なツールになった。現代のコンピューティングデバイスの大部分は、様々な解像度で、多くの形式で、静止イメージ（すなわち、写真）をキャプチャし、ビデオストリームを記録可能な、１つ又は複数のカメラを備える。カメラは、写真をキャプチャすること、及び、ビデオストリームを記録することを行うべく、イメージセンサを使用することで、光をキャプチャし、キャプチャされた光を電気信号へ変換する。カメラがコンピューティングデバイスの環境内で機能するように、各イメージセンサは通常、コンピューティングデバイスのハードウェア（例えばプロセッサ）と、カメラのハードウェア（例えばイメージセンサ）との間の通信を管理（すなわち、変換）するためのドライバ（すなわち、インタフェース）を有する。従来、多くのカメラは、単一のイメージセンサ、及び、従って、単一のドライバを備えてきたが、しかしながら、カメラ、及び、カメラをその中に組み込んだコンピューティングデバイスがより高度化したので、一部のカメラは、イメージセンサのアレイを備え得る。そのようなカメラにおいて、各イメージセンサは異なるドライバを有し得て、その結果、単一のカメラに複数のイメージセンサドライバが存在することになる。イメージセンサアレイのイメージセンサは、単一のイメージセンサを有するカメラより、機能を増加させることが可能であり得る。例えば、イメージセンサアレイを備えるカメラは、深度を計算し、及び／又は、より広い視野（ＦＯＶ）を形成するのに使用できる様々なイメージセンサを備え得る。
【０００３】
一般的に、イメージセンサのベンダは、そのイメージセンサに特有のアプリケーションプログラミングインタフェース（ＡＰＩ）を配布している。ＡＰＩは通常、カメラのユーザが、カメラ上で実行されるソフトウェアアプリケーションを介して、及び、ソフトウェアアプリケーションを用いて、イメージセンサの特定の機能及び／又は設定へアクセスすることを可能にする。例えば、高解像度でイメージをキャプチャすることが可能な主イメージセンサと、主イメージセンサより低い解像度でイメージをキャプチャすること、又は、他の特化した機能を実行することが可能な様々な他の副イメージセンサとを含むイメージセンサアレイにおいて、ユーザは、カメラで写真を撮るのに使用するべく、イメージセンサの１つをイメージセンサアレイから手動で選択する必要があり得る。写真のプレビューは通常、コンピューティングデバイスのディスプレイを介してユーザに提示されるが、イメージセンサ間の差異（すなわち、解像度、視野角など）が明確に区別されないことがあり得る。従って、ユーザは、望ましくない場合がある視野角及び／又は解像度を有するイメージセンサを意図せず選択することがあり得る。
【図面の簡単な説明】
【０００４】
本明細書で説明される概念は、例として示されるものであり、添付の図において限定として示されるものではない。説明を簡潔かつ明確にするために、図に示した要素は必ずしも縮尺通りに描かれていない。適切とみなされる場合に、参照符号は、対応する又は類似の要素を示すために、複数の図の中で繰り返し用いられている。
【０００５】
【図１】コンピューティングデバイスのカメラのイメージセンサへのユーザアクセスを制御するための、コンピューティングデバイスの少なくとも１つの実施形態の簡略ブロック図である。
【０００６】
【図２】図１のコンピューティングデバイスのカメラの少なくとも１つの実施形態の簡略ブロック図である。
【０００７】
【図３】図１のコンピューティングデバイスの環境の少なくとも１つの実施形態の簡略ブロック図である。
【０００８】
【図４】図１のコンピューティングデバイスによって実行され得るイメージデータキャプチャについてイメージセンサを有効化するための方法の少なくとも１つの実施形態の簡略フロー図である。
【図５】図１のコンピューティングデバイスによって実行され得るイメージデータキャプチャについてイメージセンサを有効化するための方法の少なくとも１つの実施形態の簡略フロー図である。
【発明を実施するための形態】
【０００９】
本開示の概念は、様々な変更及び代替的な形態を許容し得るが、それらの具体的実施形態は、図面において例として示され、本明細書において詳細に説明される。しかしながら、本開示の概念を、開示された特定の形式に限定する意図はなく、反対に、本開示及び添付された特許請求の範囲に整合する全ての変更、均等物、及び代替物を包含することを意図するものであることを理解すべきである。
【００１０】
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」などの記載は、説明される実施形態が特定の機能、構造、又は特性を含んでよいことを示すが、各実施形態は、当該特定の機能、構造、又は特性を含んでよく、又は、必ずしも含まなくてよい。更に、このような文言は必ずしも同一の実施形態を指していない。更に、ある実施形態に関連して特定の機能、構造、又は特性が説明される場合、明示的に説明されているか否かに係らず、他の実施形態に関連してそのような機能、構造、又は特性に影響を与えることは、当業者の知識の範囲内であると考えられる。更に、「Ａ、Ｂ、及びＣのうちの少なくとも１つ」という形式の一覧に含まれる項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡかつＢ）、（ＡかつＣ）、（ＢかつＣ）、又は、（ＡかつＢかつＣ）を意味し得ることを理解すべきである。同様に、「Ａ、Ｂ、又はＣのうちの少なくとも１つ」という形式の一覧に含まれる項目は、（Ａ）、（Ｂ）、（Ｃ）、（ＡかつＢ）、（ＡかつＣ）、（ＢかつＣ）、又は、（ＡかつＢかつＣ）を意味し得る。
【００１１】
開示された実施形態は、いくつかの場合、ハードウェア、ファームウェア、ソフトウェア、又は、それらの任意の組み合わせに実装され得る。開示された実施形態はまた、１つ又は複数の一時的又は非一時的機械可読（例えば、コンピュータ可読）記憶媒体によって保持されるか、それらに保存される命令として実装され得て、それらは、１つ又は複数のプロセッサによって読み込まれ、実行され得る。機械可読記憶媒体は、機械によって読み込み可能な形式で情報を保存又は伝送するための、任意のストレージデバイス、機構、又は、他の物理的構造（例えば、揮発性若しくは不揮発性メモリ、メディアディスク、又は、他のメディアデバイス）として具現化され得る。
【００１２】
図面において、いくつかの構造又は方法上の特徴は、特定の構成及び／又は順序で示されることがある。しかしながら、このような特定の構成及び／又は順序が必要とされないことがあることを理解されたい。むしろ、いくつかの実施形態において、そのような特徴は、例示的な図に示されるものと異なる態様及び／又は順序で構成されてよい。更に、構造又は方法上の特徴を特定の図に含めることは、そのような特徴が全ての実施形態において必要とされるものであることを示唆する意味はなく、いくつかの実施形態において、それらは含まれていなくてよく、又は、他の特徴と組み合わされてよい。
【００１３】
ここで、図１を参照すると、例示的なコンピューティングデバイス１０２は、光をキャプチャすること、及び、キャプチャされた光をイメージ又はイメージストリームへ変換するための電気信号へ変換することが可能な多くの個々のイメージセンサを含むイメージセンサアレイ１１６を有するカメラデバイス１１４を備える。各イメージセンサとのインタラクトを容易にするように、コンピューティングデバイス１０２は、コンピューティングデバイス１０２のソフトウェアアプリケーションとイメージセンサの各々との間の通信を管理するべく、イメージセンサアレイ１１６のイメージセンサの各々について、異なるドライバを利用し得る。いくつかの実施形態において、任意の数のイメージセンサが異なるベンダによって提供され得て、その結果、複数の異なるドライバが存在し得る。更に、異なるベンダによって製造されるイメージセンサの各々は追加的に、異なるアプリケーションプログラミングインタフェース（ＡＰＩ）を有し得る。これらは、ソフトウェアアプリケーションを介して、イメージセンサの特定の機能及び／又は設定をユーザに公開するのに使用される。従って、ソフトウェアアプリケーションが、通常のコンピューティングデバイス内のイメージセンサアレイ１１６とインタフェース接続するには、ソフトウェアアプリケーションは、多くのイメージセンサドライバ及びＡＰＩとインタフェース接続するよう設計される必要があり得る。
【００１４】
複数のイメージセンサ固有のドライバ及びＡＰＩによってもたらされ得る、そのような複雑性を克服するべく、コンピューティングデバイス１０２は、個々のイメージセンサへのアクセスを制限するための単一のドライバ（図３のカメラドライバモジュール３１０を参照のこと）を実装する。例えば、実装される単一のドライバは、複数のイメージセンサ固有ドライバを「オーバーレイ」し得る。以下でより詳細に説明するが、実装される単一のドライバは、複数のイメージセンサからのデータストリームのうち、どれが特定のＡＰＩ又はユーザへ提供されるかを制御する。換言すれば、実装される単一のドライバは、イメージセンサアレイのうちの単一のイメージセンサのみを、その特定のＡＰＩ又はユーザへ公開する。例えば、いくつかの実施形態において、公開されるイメージセンサ（例えば、主イメージセンサ）は、最も高い解像度をサポートするイメージセンサであり得る。しかしながら、いくつかの実施形態において、主イメージセンサを選択するのに異なる基準（利用可能な機能のサポート、視野（ＦＯＶ）など）が使用され得ることを理解すべきである。したがって、カメラデバイスがどのカメラモード（例えば、イメージのプレビュー、ビデオのキャプチャ、又は、写真のキャプチャ）に設定されているかに関わらず、公開されているイメージセンサ（例えば、主イメージセンサ）からのイメージデータは、イメージセンサデータをユーザへ表示するのに使用される唯一のイメージデータであり得る。それを行うべく、実装される単一のドライバは、利用可能なイメージセンサからのイメージデータのうちのどれがユーザへ供給されるかを判定し、イメージデータ上で実行される特定の計算を隠す。いくつかの実施形態において、実装される単一のドライバは、現在のカメラモードに基づいて、そのような判定を実行し得る。更に、実装される単一のドライバは、ＡＰＩの外部で、特定の計算（例えば、イメージ深度計算）を実行し得る。いくつかの実施形態において、ＡＰＩの外部で計算を実行することにより、個々のＡＰＩへの依存が低減し得る。
【００１５】
コンピューティングデバイス１０２は、イメージセンサの管理が可能な、又は、そうでない場合、本明細書に説明されている機能を実行可能な、任意の種類のデバイスとして具現化され得る。例えば、コンピューティングデバイス１０２は、デジタルカメラ、スマートフォン、卓上コンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ウェアラブルコンピューティングデバイス、コンピュータ、ワークステーション、サーバ、マルチプロセッサシステム、民生用電子デバイス、スマートアプライアンス、及び／又は、イメージセンサの管理が可能な任意の他のコンピューティングデバイスとして具現化され得るが、これらに限定されない。図１に示されているように、例示的なコンピューティングデバイス１０２は、他の上述のコンポーネントの中でも特に、プロセッサ１０４、Ｉ／Ｏサブシステム１０６、メモリ１０８、及びデータストレージデバイス１１２を備える。当然、他の実施形態において、コンピューティングデバイス１０２は、カメラ機能（例えば、様々な入力／出力デバイス）を有するコンピューティングデバイス（例えば、スマートフォン、ラップトップ、デジタルカメラなど）に通常見られるような、他の、又は、追加のコンポーネントを備え得る。更に、いくつかの実施形態において、例示的なコンポーネントのうちの１つ又は複数は、別のコンポーネントに組み込まれ得るか、そうでない場合、その一部を形成し得る。例えば、メモリ１０８、又は、その一部は、いくつかの実施形態において、１つ又は複数のプロセッサ１０４内に組み込まれ得る。
【００１６】
プロセッサ１０４は、本明細書で説明される機能を実行することが可能な任意の種類のプロセッサとして具現化され得る。プロセッサ１０４は、１つ若しくは複数のシングルコア若しくはマルチコアプロセッサ、デジタル信号プロセッサ、マイクロコントローラ、又は他のプロセッサ若しくは処理／制御回路として具現化されてよい。メモリ１０８は、本明細書で説明される機能を実行可能な、任意の種類の揮発性若しくは不揮発性メモリ又はデータストレージとして具現化されてもよい。動作中、メモリ１０８は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ及びドライバなどの、コンピューティングデバイス１０２の動作中に使用される様々なデータ及びソフトウェアを格納してもよい。例えば、例示的なコンピューティングデバイス１０２において、メモリ１０８は、カメラデバイス１１４とインタフェース接続するよう構成されるカメラドライバ１１０を有する。メモリ１０８は、プロセッサ１０４、メモリ１０８、及びコンピューティングデバイス１０２の他のコンポーネントとの入力／出力操作を容易にする回路及び／又はコンポーネントとして具現化され得るＩ／Ｏサブシステム１０６を介して、プロセッサ１０４と通信可能に結合される。例えば、Ｉ／Ｏサブシステム１０６は、入力／出力操作を容易にするべく、メモリコントローラハブ、入力／出力コントロールハブ、統合センサハブ、ファームウェアデバイス、通信リンク（すなわち、ポイントツーポイントリンク、バスリンク、ワイヤ、ケーブル、ライトガイド、プリント回路基板トレースなど）、及び／又は他のコンポーネント及びサブシステムとして具現化されてよく、又は、そうでない場合、それらを含んでよい。いくつかの実施形態において、Ｉ／Ｏサブシステム１０６は、システムオンチップ（ＳｏＣ）の一部を形成し得て、プロセッサ１０４、メモリ１０８、及び、コンピューティングデバイス１０２の他のコンポーネントと共に、単一の集積回路チップ上に組み込まれ得る。
【００１７】
データストレージデバイス１１２は、例えば、メモリデバイス並びに回路、メモリカード、ハードディスクドライブ、ソリッドステートドライブ、又は、他のデータストレージデバイスなどの、データの短期間若しくは長期間保存用に構成された任意の種類のデバイス又は複数のデバイスとして具現化されてもよい。いくつかの実施形態において、データストレージデバイス１１２は、１つ又は複数のトラステッド実行環境（ＴＥＥ）の内容を保存するのに使用され得る。トラステッド実行環境（ＴＥＥ）の内容は、データストレージデバイス１１２によって保存されるとき、未認証のソフトウェアによるアクセスを防止するように暗号化され得る。
【００１８】
カメラデバイス１１４は、イメージがキャプチャされ、信号へ変換され、静止写真及び／又はデジタルビデオにするよう処理されることを可能にする機能を有する、任意の種類のイメージキャプチャ用のデバイス、回路、又は、それらの組み合わせとして具現化され得る。カメラデバイス１１４は、未加工イメージデータをキャプチャすることに、並びに、様々なデジタルフォーマット技術及びコンテナ（ｃｏｎｔａｉｎｅｒｓ）を使用して、当該未加工データを圧縮及び／又は非圧縮静止写真ファイル及び／又はビデオファイルとしてコンピューティングデバイス（例えば、データストレージ１１２）上のファイルへ保存することに、任意のイメージフォーマット技術を使用するよう構成され得る。例示的なカメラデバイス１１４は、イメージセンサアレイ１１６を有する。以下で更に詳細に説明するが、図２に示されているように、イメージセンサアレイ１１６は、複数のイメージセンサを含み得て、それらの各々は、光をキャプチャすること、並びに、キャプチャされた光を、処理して写真及び／又はビデオにするための電気信号へ変換することが可能であり得る。いくつかの実施形態において、イメージセンサアレイ１１６は、１つ又は複数の電荷結合素子（ＣＣＤ）イメージセンサ、相補型金属酸化膜半導体（ＣＭＯＳ）イメージセンサ、及び／又は、本明細書に記載の機能を実行可能な任意の種類のイメージセンサとして具現化され得るか、そうでない場合、それらを含み得る。更に、いくつかの実施形態において、イメージセンサアレイ１１６は、様々な異なるイメージセンサフォーマット（すなわち、形状及びサイズ）を有するイメージセンサを含み得る。上述のように、コンピューティングデバイス１０２は、カメラデバイス１１４の特定の機能を実行するべく、プロセッサ１０４とカメラデバイス１１４との間でインタフェース接続するための手段として、カメラドライバ１１０を使用し得る。更に、いくつかの実施形態において、カメラデバイス１１４は、例えば、イメージセンサアレイ１１６の特定のイメージセンサを有効化及び無効化するなど、カメラデバイス１１４についてのユーザ要求設定を実行するべく、カメラデバイス１１４のユーザ側のソフトウェア（すなわち、ユーザ）と、カメラドライバ１１０との間の（例えば、アプリケーションプログラミングインタフェース（ＡＰＩ）を介する）インタフェースを提供し得る。
【００１９】
通信回路１１８は、任意の通信回路、デバイス、又は、それらの集合として具現化され得て、コンピューティングデバイス１０２と、リモートコンピューティングデバイス（図示せず）との間の通信を有効化することが可能である。通信回路１１８は、任意の１つ又は複数の通信技術（例えば、有線又は無線通信）、及び、そのような通信を有効にするための関連するプロトコル（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＷｉＭＡＸ（登録商標）、ＵＳＢなど）を使用するよう構成され得る。
【００２０】
ディスプレイ１２０は、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、発光ダイオード（ＬＥＤ）、ブラウン管（ＣＲＴ）、又は、他の種類のディスプレイデバイスなど、デジタル情報を表示可能な任意の種類のディスプレイデバイスとして具現化され得る。そのような実施形態において、ディスプレイは、コンピューティングデバイス１０２のユーザによる接触に応答して入力データを生成可能なタッチスクリーン（例えば、抵抗式タッチスクリーン、又は容量式タッチスクリーンなど）として具現化され得る。
【００２１】
ここで、図２を参照する。カメラデバイス１１４の例示的なイメージセンサアレイ１１６は、光学イメージをキャプチャすること、及び、キャプチャされた光学イメージを電気信号へ変換することを行うよう構成された複数のイメージセンサを含む。例示的なイメージセンサアレイ１１６は、第１の副イメージセンサ、第１の主イメージセンサ、第２の主イメージセンサ、及び、第２の副イメージセンサを含み、これらは、それぞれ、副イメージセンサ（１）２１０、主イメージセンサ（１）２２０、主イメージセンサ（Ｎ）２３０（すなわち、「第Ｎ」の主イメージセンサであり、「Ｎ」は正の整数で、１つ又は複数の追加の主イメージセンサを指定する）、及び、副イメージセンサ（Ｎ）２４０（すなわち、「第Ｎ」の副イメージセンサであり、「Ｎ」は正の整数で、１つ又は複数の追加の副イメージセンサを指定する）として指定されている。イメージセンサ２１０、２２０、２３０、２４０の各々は、電荷結合素子（ＣＣＤ）イメージセンサ、及び、相補型金属酸化膜半導体（ＣＭＯＳ）イメージセンサなど、本明細書に説明されている機能を実行可能な任意の種類のイメージセンサとして具現化され得る。
【００２２】
通常、イメージセンサアレイ１１６は、「主」イメージセンサ（例えば、主イメージセンサ（１）２２０）として指定される、少なくとも１つのイメージセンサを含む。しかしながら、いくつかの実施形態において、イメージセンサアレイ１１６は、「主」イメージセンサとして指定された１つより多くのイメージセンサを含み得て、「主」イメージセンサのうちの１つのみが公開され得ることを理解すべきである。そのような実施形態において、１つ又は複数の副イメージセンサが存在しても、まったく存在しなくてよい。他の実施形態において、イメージセンサアレイは、単一の「主」イメージセンサ（例えば、主イメージセンサ（１）２２０）及び１つ又は複数の副イメージセンサを含み得る。主イメージセンサ（１）２２０（すなわち、唯一の主イメージセンサ、又は、主イメージセンサのうちの指定された１つ）は、より望ましいイメージを形成し得る特定の性質（解像度容量がより高い、中心からの視野角のオフセットがほとんど無いか全く無い、ＦＯＶが狭い、ＦＯＶが広い、モノクロのイメージセンサ、露光時間など）に基づくように指定され得る。
【００２３】
いくつかの実施形態において、カメラデバイス１１４は、キャプチャされる光学イメージについての深度を計算するべく、及び／又は、より広いＦＯＶを形成するべく、イメージセンサ２１０、２２０、２３０、２４０のうちの１つ又は複数を利用し得る。例えば、イメージセンサ２１０、２２０、２３０、２４０の各々は、特定の視野角をキャプチャできるアパーチャーを含み得る。カメラデバイス１１４は、任意の単一のイメージセンサが単独で生じさせることができるであろうＦＯＶより広いＦＯＶを有する単一のイメージを生成するべく、特定の視野角を解釈して処理し得る。例示的なカメラデバイス１１４は、副イメージセンサ（１）２１０に接続されている第１アパーチャー２１２と、主イメージセンサ（１）２２０に接続されている第２アパーチャー２２２と、主イメージセンサ（Ｎ）２３０に接続されている第３アパーチャー２３２と、副イメージセンサ（Ｎ）２４０に接続されている第４アパーチャー２４２とを有する。従って、各アパーチャー２１２、２２２、２３２、２４２は、関連するＦＯＶを有する。例えば、第１イメージセンサ２１０は、第１アパーチャー２１２を通る第１ＦＯＶ２１４を有し、主イメージセンサ（１）２２０は、第２アパーチャー２２２を通る第２ＦＯＶ２２４を有し、主イメージセンサ（Ｎ）２３０は、第３アパーチャー２３２を通る第３ＦＯＶ２３４を有し、副イメージセンサ（Ｎ）２４０は、第４アパーチャー２４２を通る第４ＦＯＶ２４４を有する。
【００２４】
いくつかの実施形態において、カメラデバイス１１４は、異なるイメージセンサ２１０、２２０、２３０、２４０に関連する、異なるＦＯＶ２１４、２２４、２３４、２４４を利用し得る。例えば、イメージセンサアレイ１１６が２つの主イメージセンサ（例えば、主イメージセンサ（１）２２０及び主イメージセンサ（Ｎ）２３０）を含む実施形態において、第１の主イメージセンサは、ズームインに使用できる、狭い焦点距離を有し得て、第２の主イメージセンサは、ズームアウトに使用できる、第１の主イメージセンサより広い焦点距離を有し得る。
【００２５】
同様に、副イメージセンサの各々は、「主」イメージセンサより解像度が低い、又は、視野角がより大きいなど、主イメージセンサと異なる、及び／又は、互いに異なる性質若しくは特性を有し得る。例えば、イメージセンサアレイ１１６が主イメージセンサ（１）２２０、及び少なくとも１つの副イメージセンサ（例えば、副イメージセンサ（１）２１０及び／又は副イメージセンサ（Ｎ）２４０）を含む実施形態において、主イメージセンサ（１）２２０からキャプチャされるイメージデータは、利用可能なイメージセンサ２１０、２２０、２３０、２４０の中で最も高い解像度でイメージデータをキャプチャすることが可能であり得て、一方、副イメージセンサの１つ（例えば、副イメージセンサ（１）２１０）からキャプチャされるイメージデータは、より低い異なる解像度でイメージデータをキャプチャすることが可能であり得る。従って、副イメージセンサ（１）２１０からキャプチャされるイメージデータは、キャプチャされる光学イメージについての深度を計算するのに使用され得て、一方、主イメージセンサ（１）２２０からキャプチャされるイメージデータは、ディスプレイ（例えば、図１のコンピューティングデバイス１０２のディスプレイ１２０）を介してユーザに公開される。追加的に、又は、代替的に、そのような実施形態において、カメラデバイス１１４は、より広いＦＯＶを形成するべく、主イメージセンサ（１）２２０、及び、副イメージセンサ２１０、２４０のうちの１つ又は複数からキャプチャされるイメージデータを使用し得る。例えば、主イメージセンサ（１）２２０の第２ＦＯＶ２２４は、副イメージセンサ（１）２１０の第１ＦＯＶ２１４と組み合わされ得て、第１ＦＯＶ２１４及び第２ＦＯＶ２２４の各々の最も外側の境界まで及ぶ、拡大されたＦＯＶ２５０を形成する。そのような実施形態において、主イメージセンサ（１）２２０の１つ又は複数の設定は、コンピューティングデバイス１０２のユーザに公開され得て、一方、副イメージセンサ２１０、２４０は、副イメージセンサ２１０、２４０の明示的な設定をユーザに公開することなく、それらのそれぞれのＦＯＶ２１４、２３４が主イメージセンサ（１）２２０の主ＦＯＶ２２４を拡大できるような角度でイメージセンサアレイ１１６内に配置され得ることを理解すべきである。
【００２６】
イメージセンサベンダ（すなわち、独立系ハードウェアベンダ（ＩＨＶ））は、自社のイメージセンサの特徴及び機能を利用するためのユーザインタフェースアプリケーションを配布し得るが、一方で、イメージセンサベンダは通常、ＡＰＩをリリースしている。これにより、通常 、ユーザインタフェース用のソフトウェアアプリケーション（すなわち、フィルタ及び／又はエフェクトを適用するためのカメラアプリケーション）は、イメージセンサとインタフェース接続することが可能となる。換言すれば、ＡＰＩは、サードパーティのソフトウェアベンダ（すなわち、独立系ソフトウェアベンダ（ＩＳＶ））が、イメージセンサによって提供されるイメージデータに基づいて、特定の機能（例えば、イメージをプレビューする、写真ストリームをキャプチャする、ビデオストリームをキャプチャするなど）にアクセスすることを可能にする。いくつかの実施形態において、特定の機能をサポートするべく、イメージセンサベンダは更に、深度計算、又は、他のコンピュテーショナルフォトグラフィ機能の実行などの特定の機能のためのＡＰＩへのアクセスの代替手段として、ソフトウェア開発キット（ＳＤＫ）をリリースし得る。多くの異なるベンダによって生産される多くのイメージセンサを含む実施形態において、ユーザインタフェース用のソフトウェアアプリケーションがインタフェース接続する必要があり得るＡＰＩ及び／又はＳＤＫのセットは、特に新しいユーザにとって、複雑になり得る。
【００２７】
ここで、図３を参照する。コンピューティングデバイス１０２は、動作中に環境３００を構築し得る。例示的環境３００において、コンピューティングデバイス１０２は、カメラドライバモジュール３１０、プレビュープロキシモジュール３３０、写真プロキシモジュール３４０、ビデオプロキシモジュール３５０、プレビュー出力モジュール３６０、写真出力モジュール３７０、及び、ビデオ出力モジュール３８０を備える。環境３００の様々なモジュールは、ハードウェア、ファームウェア、ソフトウェア、又はそれらの組み合わせとして具現化され得る。例えば、環境３００の様々なモジュール、ロジック、及び他のコンポーネントは、プロセッサ１０４、又は、コンピューティングデバイス１０２の他のハードウェアコンポーネントの一部を形成し得るか、又は、そうでない場合、それらによって確立され得る。したがって、いくつかの実施形態において、環境３００のモジュールのうちの任意の１つ又は複数は、電気デバイス（例えば、カメラドライバ回路、写真キャプチャ回路、ビデオキャプチャ回路など）の回路又は集合として具現化され得る。追加的又は代替的に、いくつかの実施形態において、例示的なモジュールの１つ又は複数は、別のモジュールの一部を形成し得て、及び／又は、例示的なモジュール及び／又はサブモジュールの１つ又は複数は、スタンドアロン又は独立のモジュールとして具現化され得る。
【００２８】
例示的環境３００は更に、１つ又は複数の副イメージセンサ３０２（例えば、副イメージセンサ（１）２１０及び／又は副イメージセンサ（Ｎ）２４０）、及び、１つ又は複数の主イメージセンサ３０４（例えば、主イメージセンサ（１）２２０及び／又は主イメージセンサ（Ｎ）２３０）を備える。上述のように、いくつかの実施形態において、コンピューティングデバイス１０２は、１つの主イメージセンサ、及び、１つ又は複数の副センサを有し得る。他の実施形態において、コンピューティングデバイス１０２は、１つより多くの主イメージセンサ、及び、１つ又は複数の副イメージセンサを備え得る。更に、いくつかの実施形態において、コンピューティングデバイス１０２は、１つより多くの主イメージセンサを備え、副イメージセンサを備えないことがあり得る。例示的環境３００は更に、副イメージセンサデータ３０６及び主イメージセンサデータ３０８を備える。
【００２９】
いくつかの実施形態において、副イメージセンサ３０２からの光学イメージデータは、副イメージセンサデータ３０６内に保存され得て、主イメージセンサ３０４からの光学イメージデータは、主イメージセンサデータ３０８内に保存され得る。副イメージセンサ及び主イメージセンサ３０２、３０４からのイメージセンサデータ３０６、３０８は、環境３００のモジュールの１つ又は複数によってアクセスされ得る。境界線３２０は、副イメージセンサ３０２、主イメージセンサ３０４、及び、カメラドライバモジュール３１０を備える、実施形態３００のカーネルモード３２２部分と、プロキシモジュール３３０、３４０、３５０、及び、出力モジュール３６０、３７０、３８０を備える、実施形態３００のユーザモード３２４との間を描写している。
【００３０】
カメラドライバモジュール３１０は、副イメージセンサ３０２からのイメージセンサデータ３０６、及び、主イメージセンサ３０４からのイメージセンサデータ３０８のうちのどれがプレビュー及び／又はキャプチャのために出力され得る（すなわち、前者の場合、ディスプレイへ流され、後者の場合、ファイルに保存される）かを管理するよう構成されている。カメラドライバモジュール３１０は、ユーザがカメラデバイス１１４をどのモード（例えば、プレビュー、ビデオ、又は、写真）に設定したかに関わらず、イメージセンサアレイ１１６のうちの単一のイメージセンサ（例えば、図２の主イメージセンサ（１）２２０）のみをユーザに公開し得る。換言すれば、どのイメージセンサが有効化されるか指示するべくユーザが各イメージセンサを管理できる従来のカメラ機能付きコンピューティングデバイスと異なり、コンピューティングデバイス１０２は、どの光学イメージデータがユーザに提示されるか決定するためのカメラドライバモジュール３１０を実装する。
【００３１】
上述のように、副イメージセンサ３０２及び主イメージセンサ３０４の各々は、対応するイメージセンサ３０２、３０４の特定の機能を公開するためのＡＰＩを含む。従って、イメージセンサ３０２、３０４の各々の設定は通常、特定の機能に対する何のアクセスがＡＰＩを介して公開されているかに基づいて、ユーザに表示される。しかしながら、また上述のように、ＡＰＩの数は、イメージセンサアレイ１１６に各イメージセンサが追加されるにつれて増加し得て、イメージセンサ３０２、３０４の有効化及び無効化を含む、任意の数の設定をユーザに公開し得る。更に、ユーザは、イメージセンサ３０２と３０４との間の差異、（例えば、解像度、視野角など）及び／又は、それらの設定の間の差異を区別できないことがあり得る。その結果、ユーザは不注意に、ユーザの意図より低い解像度のイメージセンサで、又は、最適角度より小さい角度で、写真又はビデオをキャプチャし得る。したがって、カメラドライバモジュール３１０は、そのような混乱を回避するべく、ユーザに対して単一のイメージセンサ（例えば、主イメージセンサ（１）２２０）のみを公開する。
【００３２】
カメラドライバモジュール３１０は、単一のイメージセンサのみを公開するべく、ユーザからの他のイメージセンサ（例えば、副イメージセンサ）へのユーザアクセスを制限し得る。いくつかの実施形態において、カメラドライバモジュール３１０は、それを行うべく、他のイメージセンサの設定をユーザから隠し得る。例えば、副イメージセンサ３０２が深度計算に使用される実施形態において、主イメージセンサ（１）２２０は、ユーザに公開される唯一のイメージセンサであり得る。従って、深度計算は、ＡＰＩから隠されて実行され得るが、ユーザからの静止写真キャプチャ要求に基づいて、自動的に実行されてメタデータとして写真（例えば、ｊｐｅｇイメージ）に挿入される。別の例において、イメージセンサ３０２、３０４の各々からの光学イメージデータは、カメラドライバモジュール３１０によって利用可能な最高のイメージ品質であると判定されるイメージ品質で、ユーザが定義する設定に基づく機能（例えば、デジタルズーム、高速フレームレートなど）によって、単一のストリームへ組み合わされ得る。
【００３３】
例示的なカメラドライバモジュール３１０は、モード判定モジュール３１２、センサ有効化モジュール３１４、及び、データ割り当てモジュール３１６を有する。モード判定モジュール３１２は、カメラモード設定及びユーザ入力モード設定を判定するよう構成される。例示的な実施形態において、利用可能なカメラモード設定は、プレビューモード、写真キャプチャモード、及び／又は、ビデオキャプチャモードを含む。当然、他の実施形態において、利用可能なカメラモード設定は、追加的な、又は、他のカメラモードを含み得る。更に、いくつかの実施形態において、ユーザ入力モード設定は、ノーマルモード、深度検出モード、近接光学ズームモード、高速フレームレートモード、及び／又は、カメラドライバモジュール３１０によってサポートされるような任意の他のモード又は機能を含み得る。カメラモード設定及び／又はユーザ入力モード設定は、コンピューティングデバイス１０２のハードウェア入力（例えば、スライドボタン）又はソフトウェア入力（例えば、ユーザインタフェースソフトウェアのセレクタのソフトキー）など、モード間の切り替えをユーザが行うことを可能にする、任意のユーザ入力手段によって設定され得る。センサ有効化モジュール３１４は、カメラモード設定、及び／又は、ユーザ入力モード設定に従って、イメージセンサ３０２、３０４の各々の状態を、有効化、又は無効化に設定するよう構成される。同様に、データ割り当てモジュール３１６は、カメラモード設定及び／又はユーザ入力モード設定に基づいて、光学イメージデータを出力（すなわち、伝送）するよう構成される。
【００３４】
ユーザモード３２４は、プロキシモジュール３３０、３４０、３５０、及び、出力モジュール３６０、３７０、３７０から成る。プロキシモジュール３３０、３４０、３５０は、カーネルモード３２２内のカメラドライバモジュール３１０と、ユーザモード３２４の出力モジュール３６０、３７０、３８０との間で光学イメージデータの各ストリームをその中で仲介（ｂｒｏｋｅｒ）するためのインタフェースを提供するよう構成される。いくつかの実施形態において、プロキシモジュール３３０、３４０、３５０は、例えばデータ割り当てモジュール３１６を介して、カメラドライバモジュール３１０から光学イメージデータのストリームを受信し得る。そのような実施形態において、プロキシモジュール３３０、３４０、３５０は、例えば、フィルタ記述子など、光学イメージデータストリームに対応する情報を受信し得る。
【００３５】
出力モジュール３６０、３７０、３７０は、プロキシモジュール３３０、３４０、３５０から受信される光学イメージデータを処理（すなわち、変換）し、該当する場合は光学イメージデータを保存し、伝送のための出力を図１のディスプレイ１２０などのディスプレイに描画するよう構成される。出力モジュール３６０、３７０、３７０は、それを行うべく、光学イメージデータを符号化すること、復号化すること、並びに／又は、逆多重化、多重化、スケーリング、変換、エフェクトの適用、インターレース、及び／若しくは、インターレース解除などを含むがこれらに限定されない任意の他の種類のデジタル信号処理を光学イメージデータに適用することが可能な任意の光学イメージデータプロセッサとして具現化され得る。例えば、コンピューティングデバイス１０２のリソースがＷｉｎｄｏｗｓ（登録商標）ベースのオペレーティングシステムによって管理される実施形態において、出力モジュール３６０、３７０、３８０は、光学イメージデータを処理するための変換モデルを実装できる、メディアファンデーショントランスフォーム（ＭＦＴ）又はＤｉｒｅｃｔＸ（登録商標）メディアオブジェクト（ＤＭＯ）として具現化され得る。
【００３６】
イメージセンサアレイ１１６が主イメージセンサ（例えば、主イメージセンサ（１）２２０）及び２つの副イメージセンサ（副イメージセンサ２１０、２４０）を含む３カメラアレイの実施形態では、ノーマルモードにおいて、カメラドライバモジュール３１０は、主イメージセンサ（１）２２０からの光学イメージデータのみをキャプチャし得て、したがって、データ割り当てモジュール３１６は、主イメージセンサ（１）２２０からキャプチャされる光学イメージデータのみを供給し得る。換言すれば、センサ有効化モジュール３１４は、深度計算が必要でない場合、主イメージセンサ（１）２２０を有効化し、副イメージセンサ２１０、２４０を無効化し得る。
【００３７】
更に、深度検出モードにおいて、センサ有効化モジュール３１４は、イメージセンサ２１０、２２０、２４０の全てを有効化し、カメラドライバモジュール３１０がイメージセンサ２１０、２２０、２４０の全てから光学イメージデータをキャプチャすることを可能にし得る。しかしながら、データ割り当てモジュール３１６は、プレビュー及びビデオデータについては、主イメージセンサ（１）２２０からの光学イメージデータ（すなわち、イメージデータストリーム）のみを供給し、一方、写真データについては、イメージセンサ２１０、２２０、２４０の各々からの光学イメージデータを供給し得る。換言すれば、ユーザがプレビューモードにおいて光学イメージデータを見ている場合、データ割り当てモジュール３１６は、主イメージセンサ（１）２２０からの光学イメージデータのみをプレビュープロキシモジュール３３０へ供給し得る。
【００３８】
同様に、ユーザがビデオキャプチャモードにおいて光学イメージデータを見ている場合、データ割り当てモジュール３１６は、主イメージセンサ（１）２２０からの光学イメージデータをビデオプロキシモジュール３５０へ供給し得る。しかしながら、ユーザが写真キャプチャモードにおいて光学イメージデータを見ている場合、データ割り当てモジュール３１６は、主イメージセンサ（１）２２０からの光学イメージデータを写真プロキシモジュール３４０へ供給し、副イメージセンサ２１０、２４０の各々からの光学イメージデータを写真出力モジュール３７０へ供給し得る。従って、プロキシモジュール３３０、３４０、３５０は、深度計算などの計算を実行するべく、副イメージセンサ２１０、２４０からの光学イメージデータを受信する必要はない。なぜなら、計算はプロキシモジュール３３０、３４０、３５０で実行され得て、計算結果は出力モジュール３６０、３７０、３７０によってメタデータとして挿入されるからである。更に、ユーザが深度計算についての写真キャプチャ要求を開始するとき、必要なイメージセンサは既に初期化され、それにより、副イメージセンサ２１０、２４０の初期化に関連する遅延を低減する。
【００３９】
ここで、図４を参照する。使用中、コンピューティングデバイス１０２のカメラデバイス１１４は、ユーザが定義したモード設定に基づいて、イメージデータキャプチャについて、イメージセンサを有効化するための方法４００を実行し得る。上述のように、カメラデバイス１１４によって実行される機能の少なくとも一部は、イメージセンサの各々を管理するための単一のカメラドライバ（例えば、カメラドライバ１１０）によって実行され得る。例示的な方法４００は、ブロック４０２から開始する。ここでは、カメラデバイス１１４は、自身がアクティブ化されているかどうか判定する。いくつかの実施形態において、カメラデバイス１１４は、コンピューティングデバイス１０２の電源オンのイベント、カメラデバイス１１４自体の電源オンのイベント、又は、カメラデバイス１１４を停止状態から起動させる、コンピューティングデバイス１０２上で現在実行されている外部アプリケーションなどのアクティブ化トリガに応答してアクティブ化済みであり得る。
【００４０】
カメラデバイス１１４がアクティブ化されていない場合、方法４００は、アクティブ化されたかどうかの判定を続けるべく、及び／又は、アクティブ化トリガが受信されるまで、ブロック４０２へ戻る。カメラデバイス１１４がアクティブ化された場合、方法４００はブロック４０４へ進む。ここでは、カメラデバイス１１４はカメラモード設定を判定する。いくつかの実施形態において、カメラモード設定は、プレビューモード、ビデオキャプチャモード、及び、写真キャプチャモードの１つに設定され得る。ブロック４０６において、カメラデバイス１１４は、ユーザ入力モード設定を判定する。いくつかの実施形態において、ユーザ入力モード設定は、深度検出モード又はノーマルモードの１つに設定され得る。
【００４１】
ブロック４０８において、カメラデバイス１１４は、ユーザ入力モード設定が深度検出モードに設定されているかどうか判定する。設定されていない場合、方法４００はブロック４１０へ進む。ここでは、カメラデバイス１１４は、イメージデータキャプチャについて、主イメージセンサ（例えば、図２の主イメージセンサ（１）２２０）として指定されているイメージセンサを有効化する。換言すれば、カメラデバイス１１４は、主イメージセンサ（１）２２０の状態を有効化状態に設定する。ブロック４１２において、カメラデバイス１１４は、イメージセンサアレイ１１６内の他のイメージセンサ（例えば、図２の副イメージセンサ２１０、２４０）を無効化する。ブロック４１４において、カメラデバイス１１４は、主イメージセンサ（１）２２０からのイメージデータ（すなわち、光学イメージデータストリーム）をキャプチャする。ブロック４１６において、カメラドライバ１１０は、ブロック４０４で判定されるカメラモード設定に基づいて、キャプチャされたイメージデータをプレビュー、ビデオ、又は写真として出力する。
【００４２】
カメラデバイス１１４が、ユーザ入力モード設定が深度検出モードに設定されていると判定する場合、方法４００はブロック４１８へ進む。ここでは、カメラデバイス１１４は、イメージデータキャプチャについて、イメージセンサの全てを有効化する。換言すれば、カメラデバイス１１４は、主イメージセンサ（１）２２０及び副イメージセンサ２１０、２４０の状態を有効化状態に設定する。ブロック４２０において、カメラデバイス１１４は、ブロック４０４で判定されるカメラモード設定に基づいて、カメラモードが写真キャプチャに設定されているかどうか判定する。設定されていない場合、方法はブロック４２２へ進む。ここでは、カメラデバイス１１４は、主イメージセンサ（１）２２０からのイメージデータをキャプチャする。ブロック４２４において、カメラデバイス１１４は、ブロック４０４で判定されるカメラモード設定に基づいて、キャプチャされたイメージデータをプレビュー又はビデオとして出力する。ブロック４１６において、キャプチャされたイメージデータをプレビュー、ビデオ、又は写真として出力すると、又は、ブロック４２４で、キャプチャされたイメージデータをプレビュー又はビデオとして出力すると、方法４００はブロック４２６へ進む。ここでは、カメラデバイス１１４は、それ自体が非アクティブ化されている（すなわち、キャプチャ／プレビュー要求の停止、電源オフのイベントなど）かどうかを判定する。非アクティブ化されていない場合、方法４００は引き続き適宜にイメージデータを出力し、ブロック４２６へ戻り、カメラデバイス１１４が非アクティブ化されたかどうか判定する。ブロック４２６において、カメラデバイス１１４が、それ自体が非アクティブ化されたと判定する場合、方法４００はブロック４０２へ戻り、カメラデバイス１１４がアクティブ化されたかどうか判定する。
【００４３】
ブロック４２０において、カメラデバイス１１４が、カメラモードが写真キャプチャに設定されていると判定する場合、方法は、図５に示されているブロック４２８へ進む。ブロック４２８において、カメラデバイス１１４は、全てのイメージセンサからのイメージデータをキャプチャする。換言すれば、カメラデバイス１１４は、主イメージセンサ（１）２２０、及び副イメージセンサ２１０、２４０からのイメージデータをキャプチャする。ブロック４３０において、カメラデバイス１１４は、副イメージセンサ２１０、２４０からのイメージデータに基づいて深度計算を実行する。ブロック４３２において、カメラデバイス１１４は、主イメージセンサ（１）２２０からのイメージデータを使用して、写真を符号化する。いくつかの実施形態において、ブロック４３０で深度計算に使用され、ブロック４３２で写真の符号化に使用されるイメージデータは、主イメージセンサ（例えば、主イメージセンサ（１）２２０及び主イメージセンサ（Ｎ）２３０）、及び、副イメージセンサ（例えば、副イメージセンサ（１）２１０及び副イメージセンサ（Ｎ）２４０）の各々とインタフェース接続する単一のドライバによって判定される。ブロック４３４において、カメラデバイス１１４は、計算された深度データを、符号化された写真のメタデータへ挿入する。いくつかの実施形態において、ブロック４３０における深度計算の各々と、ブロック４３２における写真の符号化と、ブロック４３４における計算された深度のメタデータ挿入とは、コンピューティングデバイス１０２の出力モジュール、又は変換モジュール（例えば、図３の出力モジュール３６０、３７０、３８０）によって実行され得る。カメラデバイス１１４がまだアクティブ化されているかどうか判定すべく方法４００がブロック４０２へ戻る前に、ブロック４３６において、カメラデバイス１１４は、深度データが挿入されたメタデータを含む、符号化された写真を出力する。
［例］
【００４４】
本明細書に開示される技術の説明例を以下に提供する。技術の実施形態は、以下に説明されている例のうちの任意の１つ又は複数、及び、その任意の組み合わせを含み得る。
【００４５】
例１は、イメージセンサアレイのイメージセンサへのユーザアクセスを制御するためのコンピューティングデバイスを備え、当該コンピューティングデバイスは、複数のイメージセンサを含むイメージセンサアレイを有するカメラデバイスと、（ｉ）イメージセンサアレイのイメージセンサの各々によって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）イメージセンサアレイの単一のイメージセンサをコンピューティングデバイスのユーザに公開し、（ｉｉｉ）公開されている単一のイメージセンサ以外の、イメージセンサアレイのうちの他のイメージセンサへのユーザアクセスを制限する、カメラドライバモジュールとを有する。
【００４６】
例２は、例１の主題を含み、複数のイメージセンサは、主イメージセンサと、１つ又は複数の副イメージセンサとを備え、カメラドライバモジュールは更に、（ｉ）主イメージセンサ及び１つ又は複数の副イメージセンサによって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）主イメージセンサをコンピューティングデバイスのユーザに公開し、（ｉｉｉ）イメージセンサアレイのうちの１つ又は複数の副イメージセンサへのユーザアクセスを制限する。
【００４７】
例３は、例１及び２のいずれかの主題を備え、複数のイメージセンサは、１つ又は複数の主イメージセンサを有し、カメラドライバモジュールは更に、（ｉ）主イメージセンサの各々によって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）単一の主イメージセンサをコンピューティングデバイスのユーザへ公開し、（ｉｉｉ）当該単一の主イメージセンサ以外の、主イメージセンサのうちの他の主イメージセンサへのユーザアクセスを制限する。
【００４８】
例４は、例１から３のいずれかの主題を含み、複数のイメージセンサは更に、１つ又は複数の副イメージセンサを備え、カメラドライバモジュールは更に、（ｉ）１つ又は複数の副イメージセンサによって生成されるイメージデータストリームへのアクセスを管理し、（ｉｉ）１つ又は複数の副イメージセンサへのユーザアクセスを制限する。
【００４９】
例５は、例１から４のいずれかの主題を備え、カメラドライバモジュールは更に、１つ又は複数の予め定められた基準に基づいて、イメージセンサアレイの複数のイメージセンサから主イメージセンサを選択する。
【００５０】
例６は、例１から５のいずれかの主題を備え、１つ又は複数の予め定められた基準は、サポートされる解像度、視野、又は、視野角のうちの少なくとも１つを有する。
【００５１】
例７は、例１から６のいずれかの主題を備え、イメージセンサアレイのイメージセンサからのイメージデータストリームへのアクセスを管理することは、イメージセンサアレイのイメージセンサが有効化されているかどうかを管理することを有する。
【００５２】
例８は、例１から７のいずれかの主題を備え、イメージセンサアレイのイメージセンサからのイメージデータストリームへのアクセスを管理することは、コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第１セットに対する、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理すること、及び、コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第２セットに対する、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理すること有する。
【００５３】
例９は、例１から８のいずれかの主題を備え、ユーザモードコンポーネントの第２セットは、カメラデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータを出力するための、１つ又は複数の媒体変換モジュールを有し、ユーザモードにおけるアクセス可能なコンポーネントの第１セットは、カメラドライバモジュールからの光学イメージデータのストリームを、１つ又は複数の媒体変換モジュールのうちの対応する１つへ仲介（ｂｒｏｋｅｒ）するための１つ又は複数の媒体ストリームデバイスプロキシモジュールを含む。
【００５４】
例１０は、例１から９のいずれかの主題を備え、単一のイメージセンサを公開することは、単一のイメージセンサからのイメージデータストリームを、コンピューティングデバイスによって実行可能なソフトウェアアプリケーションへ公開することを含む。
【００５５】
例１１は、例１から１０のいずれかの主題を備え、単一のイメージセンサを公開することは、単一のイメージセンサの１つ又は複数の設定をコンピューティングデバイスのユーザへ公開することを含む。
【００５６】
例１２は、例１から１１のいずれかの主題を備え、更に、カメラデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理して、処理されたイメージセンサデータを出力するための複数の出力モジュールと、カメラドライバモジュールからの光学イメージデータの各ストリームを、複数の出力モジュールのうちの対応する１つへ仲介するための複数のプロキシモジュールとを有し、カメラドライバモジュールは更に、（ｉ）カメラデバイスのカメラモード設定、及び、ユーザ入力モード設定を判定し、（ｉｉ）少なくとも部分的に、ユーザ入力モード設定に基づいて、単一のイメージセンサ、及び、イメージセンサアレイの他のイメージセンサの各々の有効化状態を管理し、（ｉｉｉ）カメラモード設定に基づいて、複数のプロキシモジュールの１つへイメージセンサデータを伝送する。
【００５７】
例１３は、例１から１２のいずれかの主題を含み、カメラドライバモジュールは更に、ユーザ入力モードが深度検出モードに設定されているという判定に応答して、（ｉ）イメージセンサデータキャプチャについて、単一のイメージセンサを有効化し、（ｉｉ）イメージセンサアレイの他のイメージセンサを無効化し、（ｉｉｉ）カメラモード設定に基づいて、単一のイメージセンサから複数のプロキシモジュールの１つへイメージセンサデータを伝送する。
【００５８】
例１４は、例１から１３のいずれかの主題を含み、カメラドライバモジュールは更に、カメラモード設定が深度検出モードに設定されていないという判定に応答して、（ｉ）イメージセンサデータキャプチャについて、単一のイメージセンサ、及び、イメージセンサアレイの他のイメージセンサを有効化し、（ｉｉ）カメラデバイスが写真キャプチャに設定されているかどうか判定する。
【００５９】
例１５は、例１から１４のいずれかの主題を備え、複数の出力モジュールは、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいてプレビューイメージを出力するためのプレビュー出力モジュールと、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいてビデオを出力するためのビデオ出力モジュールとを有し、複数のプロキシモジュールは、カメラドライバモジュールとプレビュー出力モジュールの間で光学イメージデータを仲介するためのプレビュープロキシモジュールと、カメラドライバモジュールとビデオ出力モジュールとの間で光学イメージデータを仲介するためのビデオプロキシモジュールを有し、カメラドライバモジュールは更に、カメラモードが写真キャプチャモードに設定されていないという判定に応答して、（ｉ）単一のイメージセンサからのイメージセンサデータをキャプチャし、（ｉｉ）単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールの１つへ伝送する。
【００６０】
例１６は、例１から１５のいずれかの主題を備え、複数の出力モジュールは更に、受信されたイメージセンサデータを処理して、受信されたイメージセンサデータに基づいて写真を出力するための写真出力モジュールを有し、複数のプロキシモジュールは更に、カメラドライバモジュールと写真出力モジュールとの間で光学イメージデータを仲介するための写真プロキシモジュールを有し、カメラドライバモジュールは更に、カメラモードが写真キャプチャモードに設定されているという判定に応答して、（ｉ）単一のイメージセンサ、及び、イメージセンサアレイの他のイメージセンサからのイメージセンサデータをキャプチャし、（ｉｉ）少なくとも部分的に、カメラモード設定に基づいて、単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールの１つへ伝送し、写真プロキシモジュールは更に、（ｉ）単一のイメージセンサからのイメージセンサデータを使用して写真を符号化し、（ｉｉ）イメージセンサアレイの他のイメージセンサのうちの１つ又は複数からのイメージセンサデータに基づいて深度データを計算し、（ｉｉｉ）符号化された写真のメタデータへ深度データを挿入し、（ｉｖ）深度データを含む写真を出力する。
【００６１】
例１７は、例１から１６のいずれかの主題を備え、カメラドライバモジュールとプレビュー出力モジュールとの間で光学イメージデータを仲介することは、受信されたイメージセンサデータをカメラドライバモジュールからプレビュー出力モジュールへ伝送することを有する。
【００６２】
例１８は、例１から１７のいずれかの主題を備え、カメラドライバモジュールとビデオ出力モジュールとの間で光学イメージデータを仲介することは、受信されたイメージセンサデータをカメラドライバモジュールからビデオ出力モジュールへ伝送することを有する。
【００６３】
例１９は、例１から１８のいずれかの主題を備え、カメラドライバモジュールと写真出力モジュールとの間で光学イメージデータを仲介することは、受信されたイメージセンサデータをカメラドライバモジュールから写真出力モジュールへ伝送することを有する。
【００６４】
例２０は、コンピューティングデバイスのイメージセンサアレイのイメージセンサへのユーザアクセスを制御するための方法を備え、当該方法は、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成する段階と、コンピューティングデバイスのカメラドライバモジュールによって、生成されるイメージデータストリームへのアクセスを管理する段階と、カメラドライバモジュールによって、単一のイメージセンサをコンピューティングデバイスのユーザへ公開する段階と、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限する段階とを有する。
【００６５】
例２１は、例２０の主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成する段階は、主イメージセンサ及び１つ又は複数の副イメージセンサの各々によってイメージデータストリームを生成する段階を含み、単一のイメージセンサをコンピューティングデバイスのユーザへ公開する段階は、主イメージセンサをコンピューティングデバイスのユーザへ公開する段階を含み、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限する段階は、イメージセンサアレイのうちの１つ又は複数の副イメージセンサへのユーザアクセスを制限する段階を含む。
【００６６】
例２２は、例２０及び２１のいずれかの主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成する段階は、複数の主イメージセンサの各々によって、イメージデータストリームを生成する段階を含み、単一のイメージセンサをコンピューティングデバイスのユーザへ公開する段階は、複数の主イメージセンサの単一の主イメージセンサをコンピューティングデバイスのユーザへ公開する段階を含み、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限する段階は、単一の主イメージセンサ以外の、複数の主イメージセンサの他の主イメージセンサへのユーザアクセス制限する段階を含む。
【００６７】
例２３は、例２０から２２のいずれかの主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成する段階は更に、１つ又は複数の副イメージセンサの各々によってイメージデータストリームを生成する段階を含み、単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限する段階は、１つ又は複数の副イメージセンサへのユーザアクセスを制限する段階を含む。
【００６８】
例２４は、例２０から２３のいずれかの主題を備え、更に、カメラドライバモジュールによって、１つ又は複数の予め定められ基準に基づいて、複数の主イメージセンサから単一の主イメージセンサを選択する段階を含む。
【００６９】
例２５は、例２０から２４のいずれかの主題を備え、１つ又は複数の予め定められた基準に基づいて単一の主イメージセンサを選択する段階は、サポートされる解像度、視野、又は、視野角のうちの少なくとも１つから、単一の主イメージセンサを選択する段階を含む。
【００７０】
例２６は、例２０から２５のいずれかの主題を備え、イメージセンサからのイメージデータストリームへのアクセスを管理する段階は、イメージセンサが有効化されているかどうかを管理する段階を含む。
【００７１】
例２７は、例２０から２６のいずれかの主題を備え、イメージセンサからのイメージデータストリームへのアクセスを管理することは、（ｉ）コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第１セットへの、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理する段階と、（ｉｉ）コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第２セットへの、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理する段階とを含む。
【００７２】
例２８は、例２０から２７のいずれかの主題を備え、コンポーネントの第２セットへの、コンピューティングデバイスのカーネルモードにおけるイメージセンサアレイの他のイメージセンサのイメージデータストリームを管理する段階は、コンピューティングデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータを出力するための１つ又は複数の媒体変換モジュールへの、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理する段階を含み、コンポーネントの第１セットへの、コンピューティングデバイスのカーネルモードにおける単一のイメージセンサのイメージデータストリームを管理する段階は、カメラドライバモジュールからの光学イメージデータのストリームを、１つ又は複数の媒体変換モジュールのうちの対応する１つへ仲介するための１つ又は複数の媒体ストリームデバイスプロキシモジュールへの、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理する段階を含む。
【００７３】
例２９は、例２０から２８のいずれかの主題を備え、単一のイメージセンサを公開する段階は、単一のイメージセンサからのイメージデータストリームを、コンピューティングデバイスによって実行可能なソフトウェアアプリケーションへ公開する段階を含む。
【００７４】
例３０は、例２０から２９のいずれかの主題を備え、単一のイメージセンサを公開する段階は、単一のイメージセンサの１つ又は複数の設定をコンピューティングデバイスのユーザへ公開する段階を含む。
【００７５】
例３１は、例２０から３０のいずれかの主題を備え、更に、コンピューティングデバイスのカメラモード設定及びユーザ入力モード設定を判定する段階と、少なくとも部分的にユーザ入力モード設定に基づいて、イメージセンサの各々の有効化状態を管理する段階と、カメラドライバモジュールによって、カメラモード設定に基づいて、複数のプロキシモジュールの１つへイメージセンサデータを伝送する段階と、複数のプロキシモジュールのうちの少なくとも１つによって、カメラドライバモジュールからの光学イメージデータの各ストリームを、複数の出力モジュールのうちの対応する１つへ仲介する段階と、複数の出力モジュールのうちの少なくとも１つによって、少なくとも部分的に、コンピューティングデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理する段階と、処理されたイメージセンサデータをコンピューティングデバイスのディスプレイへ出力する段階とを含む。
【００７６】
例３２は、例２０から３１のいずれかの主題を備え、更に、ユーザ入力モードが深度検出モードに設定されているという判定に応答して、イメージセンサデータキャプチャについて、単一のイメージセンサを有効化し、イメージセンサアレイの他のイメージセンサを無効化し、カメラモード設定に基づいて、単一のイメージセンサから複数のプロキシモジュールの１つへイメージセンサデータを伝送する段階を含む。
【００７７】
例３３は、例２０から３２のいずれかの主題を備え、更に、カメラモード設定が深度検出モードに設定されていないという判定に応答して、イメージセンサデータキャプチャについて、単一のイメージセンサ、及び、イメージセンサアレイの他のイメージセンサを有効化する段階と、写真キャプチャについて、コンピューティングデバイスが設定されているかどうか判定する段階とを含む。
【００７８】
例３４は、例２０から３３のいずれかの主題を備え、カメラドライバモジュールからの光学イメージデータの各ストリームを、複数の出力モジュールの対応する１つへ仲介する段階は、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいてプレビューイメージを出力するためのプレビュー出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームをプレビュープロキシモジュールによって仲介する段階と、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいてビデオを出力するためのビデオ出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームをビデオプロキシモジュールによって仲介する段階と、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいて写真を出力するための写真出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームを写真プロキシモジュールによって仲介する段階とを含む。
【００７９】
例３５は、例２０から３４のいずれかの主題を備え、更に、カメラモードが写真キャプチャモードに設定されていないという判定に応答して、単一のイメージセンサからのイメージセンサデータをキャプチャする段階と、単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールの１つへ伝送する段階とを含む。
【００８０】
例３６は、例２０から３５のいずれかの主題を備え、更に、カメラモードが写真キャプチャモードに設定されているという判定に応答して、単一のイメージセンサ及びイメージセンサアレイの他のイメージセンサからのイメージセンサデータをキャプチャする段階と、少なくとも部分的に、カメラモード設定に基づいて、単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールのうちの１つへ伝送する段階と、単一のイメージセンサからのイメージセンサデータを使用して写真を符号化する段階と、イメージセンサアレイの他のイメージセンサのうちの１つ又は複数からのイメージセンサデータに基づいて深度データを計算する段階と、符号化された写真のメタデータへ深度データを挿入する段階と、深度データを含む写真を出力する段階とを含む。
【００８１】
例３７は、例２０から３６のいずれかの主題を備え、カメラドライバモジュールとプレビュー出力モジュールとの間で光学イメージデータを仲介する段階は、受信されたイメージセンサデータをカメラドライバモジュールからプレビュー出力モジュールへ伝送する段階を含む。
【００８２】
例３８は、例２０から３７のいずれかの主題を備え、カメラドライバモジュールとビデオ出力モジュールとの間で光学イメージデータを仲介する段階は、受信されたイメージセンサデータをカメラドライバモジュールからビデオ出力モジュールへ伝送する段階を含む。
【００８３】
例３９は、例２０から３８のいずれかの主題を備え、カメラドライバモジュールと写真出力モジュールとの間で光学イメージデータを仲介する段階は、受信されたイメージセンサデータをカメラドライバモジュールから写真出力モジュールへ伝送する段階を含む。
【００８４】
例４０は、プロセッサと、複数の命令をその中に格納しているメモリとを備えるコンピューティングデバイスを備える。当該命令がプロセッサによって実行されると、コンピューティングデバイスは例２０から３９のいずれかの方法を実行する。
【００８５】
例４１は、実行されたことに応答して、コンピューティングデバイスが、例２０から３９のいずれかの方法を実行する結果をもたらす複数の命令をそこに格納して、備える、１つ又は複数の機械可読記憶媒体を備える。
【００８６】
例４２は、イメージセンサアレイのイメージセンサへのユーザアクセスを制御するためのコンピューティングデバイスを備える。当該コンピューティングデバイスは、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によって、イメージデータストリームを生成するための手段と、コンピューティングデバイスのカメラドライバモジュールによって、生成されたイメージデータストリームへのアクセスを管理するための手段と、カメラドライバモジュールによって、単一のイメージセンサをコンピューティングデバイスのユーザへ公開するための手段と、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限するための手段とを有する。
【００８７】
例４３は、例４２の主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成するための手段は、主イメージセンサ、及び、１つ又は複数の副イメージセンサの各々によって、イメージデータストリームを生成するための手段を有し、単一のイメージセンサをコンピューティングデバイスのユーザへ公開するための手段は、主イメージセンサをコンピューティングデバイスのユーザへ公開するための手段を有し、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限するための手段は、イメージセンサアレイの１つ又は複数の副イメージセンサへのユーザアクセスを制限するための手段を有する。
【００８８】
例４４は、例４２及び４３のいずれかの主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成するための手段は、複数の主イメージセンサの各々によってイメージデータストリームを生成するための手段を有し、単一のイメージセンサをコンピューティングデバイスのユーザへ公開するための手段は、複数の主イメージセンサのうち単一の主イメージセンサをコンピューティングデバイスのユーザへ公開するための手段を有し、公開されている単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限するための手段は、単一の主イメージセンサ以外の、複数の主イメージセンサの他の主イメージセンサへのユーザアクセスを制限するための手段を有する。
【００８９】
例４５は、例４２から４４のいずれかの主題を備え、コンピューティングデバイスのイメージセンサアレイの複数のイメージセンサの各々によってイメージデータストリームを生成するための手段は、更に、１つ又は複数の副イメージセンサの各々によって、イメージデータストリームを生成するための手段を有し、単一のイメージセンサ以外の、イメージセンサアレイの他のイメージセンサへのユーザアクセスを制限するための手段は、１つ又は複数の副イメージセンサへのユーザアクセスを制限するための手段を有する。
【００９０】
例４６は、例４２から４５のいずれかの主題を備え、更に、カメラドライバモジュールによって、１つ又は複数の予め定められ基準に基づいて、複数の主イメージセンサから単一の主イメージセンサを選択するための手段を有する。
【００９１】
例４７は、例４２から４６のいずれかの主題を備え、１つ又は複数予め定められ基準から単一の主イメージセンサを選択するための手段は、サポートされる解像度、視野、又は、視野角のうちの少なくとも１つに基づいて、単一の主イメージセンサを選択するための手段を有する。
【００９２】
例４８は、例４２から４７のいずれかの主題を備え、イメージセンサからのイメージデータストリームへのアクセスを管理するための手段は、イメージセンサが有効化されているかどうかを管理するための手段を有する。
【００９３】
例４９は、例４２から４８のいずれかの主題を備え、イメージセンサからのイメージデータストリームへのアクセスを管理するための手段は、（ｉ）コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第１セットへの、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理するための手段と、（ｉｉ）コンピューティングデバイスのユーザモードにおける、アクセス可能なコンポーネントの第２セットへの、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理するための手段とを有する。
【００９４】
例５０は、例４２から４９のいずれかの主題を備え、コンポーネントの第２セットへの、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理するための手段は、コンピューティングデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理して、処理されたイメージセンサデータを出力するための１つ又は複数の媒体変換モジュールへの、コンピューティングデバイスのカーネルモードにおける、イメージセンサアレイの他のイメージセンサのイメージデータストリームを管理するための手段を含み、コンポーネントの第１セットへの、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理するための手段は、カメラドライバモジュールからの光学イメージデータのストリームを１つ又は複数の媒体変換モジュールのうち対応する１つへ仲介するための１つ又は複数の媒体ストリームデバイスプロキシモジュールへの、コンピューティングデバイスのカーネルモードにおける、単一のイメージセンサのイメージデータストリームを管理するための手段を有する。
【００９５】
例５１は、例４２から５０のいずれかの主題を備え、単一のイメージセンサを公開するための手段は、単一のイメージセンサからのイメージデータストリームを、コンピューティングデバイスによって実行可能なソフトウェアアプリケーションへ公開するための手段を有する。
【００９６】
例５２は、例４２から５１のいずれかの主題を備え、単一のイメージセンサを公開するための手段は、単一のイメージセンサのうち１つ又は複数の設定を、コンピューティングデバイスのユーザに公開するための手段を有する。
【００９７】
例５３は、例４２から５２のいずれかの主題を備え、更に、コンピューティングデバイスのカメラモード設定及びユーザ入力モード設定を判定するための手段と、少なくとも部分的に、ユーザ入力モード設定に基づいて、イメージセンサの各々の有効化状態を管理するための手段と、カメラドライバモジュールによって、カメラモード設定に基づいて、イメージセンサデータを複数のプロキシモジュールの１つへ伝送するための手段と、複数のプロキシモジュールのうちの少なくとも１つによって、光学イメージデータの各ストリームを、カメラドライバモジュールから、複数の出力モジュールのうちの対応する１つへ仲介するための手段と、複数の出力モジュールのうちの少なくとも１つによって、少なくとも部分的に、コンピューティングデバイスのカメラモード設定に基づいて、受信されたイメージセンサデータを処理するための手段と、処理されたイメージセンサデータをコンピューティングデバイスのディスプレイへ出力するための手段とを有する。
【００９８】
例５４は、例４２から５３のいずれかの主題を備え、更に、ユーザ入力モードが深度検出モードに設定されているという判定に応答して、イメージセンサデータキャプチャについて、単一のイメージセンサを有効化するための手段と、イメージセンサアレイの他のイメージセンサを無効化するための手段と、カメラモード設定に基づいて、単一のイメージセンサからのイメージセンサデータを複数のプロキシモジュールの１つへ伝送するための手段とを有する。
【００９９】
例５５は、例４２から５４のいずれかの主題を備え、更に、カメラモード設定が深度検出モードに設定されていないという判定に応答して、イメージセンサデータキャプチャについて、単一のイメージセンサ、及び、イメージセンサアレイの他のイメージセンサを有効化するための手段と、コンピューティングデバイスが写真キャプチャに設定されているかどうかを判定するための手段とを有する。
【０１００】
例５６は、例４２から５５のいずれかの主題を備え、カメラドライバモジュールからの光学イメージデータの各ストリームを、複数の出力モジュールのうち対応する１つへ仲介するための手段は、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいてプレビューイメージを出力するためのプレビュー出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームをプレビュープロキシモジュールによって仲介するための手段と、受信されたイメージセンサデータを処理して、処理されたイメージセンサデータに基づいてビデオを出力するためのビデオ出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームをビデオプロキシモジュールによって仲介するための手段と、受信されたイメージセンサデータを処理し、処理されたイメージセンサデータに基づいて写真を出力するための写真出力モジュールへ、カメラドライバモジュールからの光学イメージデータのストリームを写真プロキシモジュールによって仲介するための手段とを有する。
【０１０１】
例５７は、例４２から５６のいずれかの主題を備え、更に、カメラモードが写真キャプチャモードに設定されていないという判定に応答して、単一のイメージセンサからのイメージセンサデータをキャプチャするための手段と、単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールの１つへ伝送するための手段とを有する。
【０１０２】
例５８は、例４２から５７のいずれかの主題を備え、更に、カメラモードが写真キャプチャモードに設定されているという判定に応答して、単一のイメージセンサ及びイメージセンサアレイの他のイメージセンサからのイメージセンサデータをキャプチャするための手段と、少なくとも部分的に、カメラモード設定に基づいて、単一のイメージセンサからのイメージセンサデータをプレビュープロキシモジュール又はビデオプロキシモジュールのうちの１つへ伝送するための手段と、単一のイメージセンサからのイメージセンサデータを使用して写真を符号化するための手段と、イメージセンサアレイの他のイメージセンサのうちの１つ又は複数からのイメージセンサデータに基づいて、深度データを計算するための手段と、符号化された写真のメタデータへ深度データを挿入するための手段と、深度データを含む写真を出力するための手段とを有する。
【０１０３】
例５９は、例４２から５８のいずれかの主題を備え、カメラドライバモジュールとプレビュー出力モジュールとの間で光学イメージデータを仲介するための手段は、受信されたイメージセンサデータを、カメラドライバモジュールからプレビュー出力モジュールへ伝送するための手段を有する。
【０１０４】
例６０は、例４２から５９のいずれかの主題を備え、カメラドライバモジュールとビデオ出力モジュールとの間で光学イメージデータを仲介するための手段は、受信されたイメージセンサデータを、カメラドライバモジュールからビデオ出力モジュールへ伝送するための手段を有する。
【０１０５】
例６１は、例４２から６０のいずれかの主題を備え、カメラドライバモジュールと写真出力モジュールとの間で光学イメージデータを仲介するための手段は、受信されたイメージセンサデータを、カメラドライバモジュールから写真出力モジュールへ伝送するための手段を有する。
【図１】
0006790326.tif 000002
【図２】
0006790326.tif 000003
【図３】
0006790326.tif 000004
【図４】
0006790326.tif 000005
【図５】
0006790326.tif 000006