(57)【要約】      （修正有）【課題】複数の入力されたカメラコマンドを、複数のデバイス固有コマンドに変換する複数の技術を提供する。【解決手段】複数のカメラコマンドは、カメラサブシステム３０４から離れて位置する変換エンジン３１２によって変換されて、その後、カメラに転送される。複数の変換されたコマンドは、複数の入力コマンドよりも複雑でなくてよい。複数のコマンドを変換することによって、より古いカメラが、ネイティブにサポートされていない複数のより新しいコマンドをサポートする。【選択図】図３
2016040728.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像デバイスコマンドを変換するための装置であって、
コード記憶領域から変換コードを取得して変換エンジンを構成するロジックと、
前記変換エンジンにおいて複数の画像デバイスコマンドを受信するロジックと、
前記変換エンジンを使用して前記複数の画像デバイスコマンドを変換するロジックと、
前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数の画像デバイスコマンドを前記画像デバイスに転送するロジックと
を備える装置。
【請求項２】
前記受信された複数のコマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定するロジックをさらに備える、請求項１に記載の装置。
【請求項３】
前記変換コードは、前記複数の画像デバイスコマンドを変換するために実行される、請求項１又は２に記載の装置。
【請求項４】
前記コード記憶領域は、前記画像デバイス内に位置する、請求項１から３のいずれか一項に記載の装置。
【請求項５】
前記コード記憶領域は、ホストデバイスに連結されたプラットフォームストレージ内に位置する、請求項１から３のいずれか一項に記載の装置。
【請求項６】
前記変換エンジンは、前記画像デバイスからリモートに位置する、請求項１から５のいずれか一項に記載の装置。
【請求項７】
前記変換エンジンは、インターポーザデバイスに位置し、前記コード記憶領域は、前記インターポーザデバイス、ホストデバイス、センサ、又は、それらの組み合わせの少なくとも１つに位置する、請求項１から３のいずれか一項に記載の装置。
【請求項８】
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−３属性ゲット／セットコマンドに変換する、請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−２レジスタ読出／書込コマンドに変換する、請求項１から８のいずれか一項に記載の装置。
【請求項１０】
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、請求項１から９のいずれか一項に記載の装置。
【請求項１１】
複数の画像デバイスコマンドを変換するためのシステムであって、
ホストデバイスと、
前記ホストデバイスに連結された画像デバイスと、
コード記憶領域から取得されたコードを使用して生成され、複数の画像デバイスコマンドを複数の画像デバイス固有コマンドに変換する変換エンジンと
を備えるシステム。
【請求項１２】
前記ホストデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス若しくはサーバ、又は、それらの組み合わせである、請求項１１に記載のシステム。
【請求項１３】
前記画像デバイス内の組み込みプロセッサ又はシーケンサが、複数の画像デバイスコマンドを変換するべく使用される、請求項１１又は１２に記載のシステム。
【請求項１４】
前記コード記憶領域は、前記ホストデバイス内に位置する、請求項１１から１３のいずれか一項に記載のシステム。
【請求項１５】
前記コード記憶領域は、前記画像デバイス内に位置する、請求項１１から１３のいずれか一項に記載のシステム。
【請求項１６】
前記コード記憶領域は、前記ホストデバイスに連結されたプラットフォームストレージデバイス内に位置する、請求項１１から１３のいずれか一項に記載のシステム。
【請求項１７】
前記変換エンジンは、前記画像デバイスからリモートに位置する、請求項１１から１６のいずれか一項に記載のシステム。
【請求項１８】
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−３属性ゲット／セットコマンドに変換する、請求項１１から１７のいずれか一項に記載のシステム。
【請求項１９】
前記変換エンジンは、前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数のコマンドを前記画像デバイスに送信する、請求項１１から１８のいずれか一項に記載のシステム。
【請求項２０】
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、請求項１１から１９のいずれか一項に記載のシステム。
【請求項２１】
前記コードは、ランタイム解釈言語サンドボックス内で実行される、請求項１１から２０のいずれか一項に記載のシステム。
【請求項２２】
前記変換エンジンは、前記ホストデバイス上に位置する、請求項１１から２１のいずれか一項に記載のシステム。
【請求項２３】
コンピュータに、
コード記憶領域から変換コードを取得して変換エンジンを構成する手順と、
入力された複数の画像デバイスコマンドを受信する手順と、
前記入力された複数の画像デバイスコマンドを、複数の画像デバイス固有コマンドに変換する手順と、
前記複数の画像デバイス固有コマンドを、前記コンピュータに連結された画像デバイスに送信する手順と
を実行させ、
前記入力された複数の画像デバイスコマンドは、変換手段によって変換される、プログラム。
【請求項２４】
前記変換手段は、変換エンジンである、請求項２３に記載のプログラム。
【請求項２５】
前記変換手段は、前記画像デバイスからリモートに位置する、請求項２３又は２４に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、概して、カメラコマンドセットに関する。
【背景技術】
【０００２】
複数の画像デバイスは、画像キャプチャ用に構成された複数のセンサ及び複数のモジュールのような、複数のコンポーネントを含む。各画像デバイス内の複数のセンサ及び複数のモジュールの構成は変わることがある。各画像デバイスは、その構成に関わらず、ホストプロセッサとインタフェースする。したがって、ホストプロセッサは、異なって構成された様々なカメラとインタフェースしうる。
【図面の簡単な説明】
【０００３】
いくつかの例となる実施形態が、複数の図面を参照して、以下の詳細な説明に記載されている。
【図１】複数の実施形態に従って使用されうるホストデバイスのブロック図である。
【図２】複数の実施形態に係る、カメラのブロック図である。
【図３】複数の実施形態に係る、複数のカメラコマンドを変換するシステムのブロック図である。
【図４】複数の実施形態に係る、カメラサブシステムを初期化する方法を示す処理フロー図である。
【図５】複数の実施形態に係る、複数のカメラコマンドを変換する方法の処理フロー図である。
【図６】複数の実施形態に係る、ゲット及びセットアーキテクチャに基づく複数のＣＣＳコマンドを実行する転送メカニズムを可能にする方法の処理フロー図である。
【図７】複数の実施形態に係る、センサ及びモジュール固有メタデータを格納し、かつ、取得することを可能にするメタデータストレージサブシステムのブロック図である。
【図８】複数の実施形態に係る、メタデータストレージサブシステムを可能にする方法の処理フロー図である。
【図９】複数の実施形態に係る、複数のカメラコマンドを変換するためのコードを格納する、有形の非一時的コンピュータ可読媒体を示すブロック図である。
【図１０】複数の実施形態に係る、複数のカメラコマンドを変換する例示システムのブロック図である。
【図１１】複数の実施形態に係る、図１０のシステムが具体化されうる小型フォームファクタデバイスの図である。
【発明を実施するための形態】
【０００４】
本明細書中に開示された複数の実施形態が、様々な画像デバイスの構成のサポート及び検証のための複数の技術を提供する。本技術は、カメラを使用して説明されるが、任意の画像デバイスが使用されてもよい。さらに、本明細書中において使用されるように、画像デバイスは、スチルショットカメラ、ビデオカメラ、立体カメラ、赤外線センサ、若しくは同種のもの、又はそれらの組み合わせであってよい。
【０００５】
複数の実施形態において、カメラコマンドセット（ＣＣＳ）は、カメラの複数のセンサ及び複数のモジュールを含むが、これらに限定はされないカメラの複数のコンポーネントを発見しかつ制御する共通のメカニズムを提供する。複数のコマンドは、ホストプロセッサが、任意のカメラ構成とインタフェースし、任意のカメラ構成をサポートし、かつ、任意のカメラ構成を有効にすることを可能にする。より新しいコマンドセット及びソフトウェアを用いたより古いカメラの上位互換性が、変換ファシリティを使用して、実装されてよい。変換ファシリティは、複数の複雑なＣＣＳコマンドが、カメラが実行できる複数のコマンド、又は、複数のＣＳＩ−３属性のゲット／セット要求に変換されることを可能にしてよい。ＣＳＩ−３属性は、カメラ又はホストデバイスのオペレーションを制御するために使用されうる情報の極小単位である。センサ及びモジュールメタデータが、メタデータサブシステムから格納されかつ取得されうる一方、転送メカニズムは、複数のＣＳＩ−３属性のゲット／セット要求に変換されている複数のコマンドを実行するべく使用されてよい。カメラメタデータは、カメラの複数のセンサ、複数のモジュール及びカメラを使用してキャプチャされた複数の画像に関する情報を含むが、これらに限定はされない。さらに、メタデータストレージシステムはまた、ＣＳＩ−３のためのデータブロックストレージであってもよい。
【０００６】
以下の記載及び請求項において、「連結」及び「接続」という用語が、それらの派生物とともに使用されてよい。理解されるべきことは、これらの複数の用語は、互いの類義語として意図されるものではない。むしろ、複数の特定の実施形態では、「接続」は、２つ又はそれより多くの要素が、互いに直接物理的に又は電気的に接触することを示すために用いられてもよい。「連結」は、２つ又はそれより多くの要素が、直接物理的に又は電気的に接触することを意味してもよい。
【０００７】
しかしながら、「連結」はまた、２つ又はそれより多くの要素が、互いに直接接触しないものの、互いに連動又は連携することをさらに意味してよい。
【０００８】
いくつかの実施形態が、ハードウェア、ファームウェア及びソフトウェアのうちの１つ又はその組み合わせにおいて実装されてよい。いくつかの実施形態はまた、本明細書中に記載された複数のオペレーションを実行するべくコンピューティングプラットフォームによって読み出されかつ実行されうる、機械可読媒体に格納された複数の命令として実装されてよい。機械可読媒体は、例えばコンピュータのような機械によって読み出し可能な形で、情報を格納又は送信するための任意のメカニズムを含んでよい。例えば、機械可読媒体は、リードオンリーメモリ（ＲＯＭ）と、ランダムアクセスメモリ（ＲＡＭ）と、磁気ディスク記憶媒体と、光学記憶媒体と、フラッシュメモリデバイスと、例えば、搬送波、赤外線信号、デジタル信号、又は、とりわけ、信号の送信及び／又は受信をするインタフェースのような、電気、光、音若しくは他の形態で伝搬する信号とのいずれかを含んでよい。
【０００９】
一実施形態は、実装又は例である。明細書における「一実施形態」、「１つの実施形態」、「いくつかの実施形態」、「様々な実施形態」又は「複数の他の実施形態」に対する参照は、複数の実施形態に関連して記載された特定の機能、構造又は特徴が、本発明の、少なくともいくつかの実施形態に含まれることを意味するが、全ての実施形態に含まれることは必ずしも意味しない。「一実施形態」、「１つの実施形態」、又は「いくつかの実施形態」の種々の出現は、必ずしも同じ実施形態を参照しているわけではない。一実施形態からの複数の要素又は態様は、別の実施形態の複数の要素又は態様と組み合わされ得る。
【００１０】
本明細書中での説明及び示される全てのコンポーネント、機能、構造、特徴等は、特定の実施形態又は特定の複数の実施形態に含まれなくてもよい。コンポーネント、機能、構造又は特徴が含まれ「てもよい」、含まれる「場合がある」、含まれ「得る」、含まれ「得た」と本明細書で述べた場合には、例えば、特定のコンポーネント、機能、構造又は特徴は含まれることを要求されない。明細書又は特許請求の範囲で、「ある」要素と参照した場合には、要素が１つだけ存在することを意味しない。明細書又は特許請求の範囲で、「ある追加の」要素と参照した場合には、追加の要素が１より多い場合を排除していない。
【００１１】
いくつかの実施形態が複数の特定の実装を参照して記載されているけれども、いくつかの実施形態によれば他の複数の実装があり得ることが留意される。さらに、本明細書中で記載された及び／又は複数の図面に示された複数の回路素子又は複数の他の機能の配置及び／又は順序は、記載されかつ示された特定の方法で配置される必要はない。その他の多くの構成が、いくつかの実施形態に従って可能である。
【００１２】
図に示される各システムにおいて、場合によって、複数の要素は、表される複数の要素が、異なる及び／又は類似してよいことを示すべく、それぞれ同一の参照番号を有するか又は異なる参照番号を有してよい。しかしながら、要素は、異なる実装を有し、且つ、図示した又はここに記載したシステムの幾つか又は全てと協働できるほど十分に柔軟であってもよい。図に示したさまざまな要素は、同一又は異なるものであってよい。どちらを第１の要素として称し、どちらを第２の要素として称するかは任意的なものである。
【００１３】
図１は、複数の実施形態に従って使用されうるホストデバイス１００のブロック図である。ホストデバイス１００は、例えば、とりわけ、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス又はサーバであってよい。その上、ホストデバイス１００は、本明細書中において記載されているホストデバイスであってよい。ホストデバイス１００は、格納された複数の命令を実行するよう構成された中央処理ユニット（ＣＰＵ）１０２と、ＣＰＵ１０２によって実行され得る複数の命令を格納するメモリデバイス１０４とを含んでよい。ＣＰＵは、バス１０６によってメモリデバイス１０４と連結されていてよい。さらに、ＣＰＵ１０２は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、又は、任意の数の他の構成であり得る。さらに、ホストデバイス１００は、１より多い数のＣＰＵ１０２を含んでもよい。
【００１４】
ホストデバイス１００はまた、グラフィックス処理ユニット（ＧＰＵ）１０８を含んでよい。図のように、ＣＰＵ１０２は、バス１０６を介してＧＰＵ１０８に連結されてよい。ＧＰＵ１０８は、ホストデバイス１００内の任意の数のグラフィクスオペレーションを実行するべく構成されてよい。例えば、ＧＰＵ１０８は、複数のグラフィクス画像、複数のグラフィクスフレーム、複数のビデオ、又は同種のものが、ホストデバイス１００のユーザに対して表示されるように、これらをレンダリング又はコントロールするよう構成されてよい。いくつかの実施形態では、ＧＰＵ１０８は、多数のグラフィクスエンジン（不図示）を含み、それぞれのグラフィクスエンジンは、特定のグラフィクスタスクを実行する、又は、特定のタイプの作業負荷を実行するべく構成される。
【００１５】
メモリデバイス１０４は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は、他の任意の適切なメモリシステムを含み得る。例えば、メモリデバイス１０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を含んでよい。ＣＰＵ１０２は、ホストデバイス１００をディスプレイデバイス１１２に接続するように構成されたディスプレイインターフェース１１０にバス１０６を介してリンクされてよい。ディスプレイデバイス１１２は、ホストデバイス１００のビルトインコンポーネントであるディスプレイスクリーンを含んでよい。ディスプレイデバイス１１２はまた、とりわけ、ホストデバイス１００に対して外部から接続されるコンピュータモニタ、テレビ、又は、プロジェクタを含んでよい。
【００１６】
ＣＰＵ１０２はまた、ホストデバイス１００を１又は複数のＩ／Ｏデバイス１１６に接続するよう構成された入出力（Ｉ／Ｏ）デバイスインタフェース１１４に、バス１０６を介して接続されてよい。Ｉ／Ｏデバイス１１６は、例えば、キーボード及びポインティングデバイスを含んでよい。ポインティングデバイスは、とりわけ、タッチパッド又はタッチスクリーンを含んでよい。Ｉ／Ｏデバイス１１６は、ホストデバイス１００のビルトインコンポーネントであってよく、又は、ホストデバイス１００に外部から接続されるデバイスであってよい。
【００１７】
ＣＰＵ１０２はさらに、バス１０６を介して画像キャプチャインタフェース１１８に接続されてよい。画像デバイスインタフェース１１８は、ホストデバイス１００を１又は複数の画像デバイス１２０に接続するよう構成される。画像デバイス１２０は、スチルショットカメラ、ビデオカメラ、又は、スチルショットカメラとビデオカメラとを組み合わせたカメラであってよい。さらに、画像デバイス１２０は、立体カメラ、赤外線センサ、ＳＯＣカメラ、画像信号プロセッサ（ＩＳＰ）、ブリッジデバイス、又は同種のものであってよい。複数の実施形態において、画像デバイス１２０は、ホストデバイス１００のビルトインコンポーネントである。さらに、複数の実施形態において、画像デバイス１２０は、ホストデバイス１００に外部から接続されたデバイスである。
【００１８】
複数の実施形態において、組み込みプロセッサ又はシーケンサが、画像キャプチャインタフェース１１８内に存在してよい。画像キャプチャインタフェース１１８内の組み込みプロセッサ又はシーケンサは、ホストコマンド変換を提供するために使用されてよい。複数の実施形態において、その変換は、ＩＳＰ上、又は、画像キャプチャインタフェース１１８内に含まれる、若しくはそうでなければ、関連付けられる、独立したプロセッサ上で、動作するコードを使用して生じる。
【００１９】
画像デバイス１２０は、複数の画像をキャプチャするために使用され、かつ、１又は複数のセンサ１２２を含む。複数の例において、センサ１２２は、画像テクスチャ情報に関連する深度情報をキャプチャするために使用される深度センサであってよい。センサ１２２はまた、画像テクスチャ情報をキャプチャするために使用される画像センサであってよい。さらに、画像センサは、電荷結合素子（ＣＣＤ）画像センサ、相補型ＭＯＳ（ＣＭＯＳ）画像センサ、システムオンチップ（ＳＯＣ）画像センサ、感光性薄膜トランジスタ画像センサ、又は、それらの組み合わせであってよい。画像デバイス１２０はまた、１又は複数のモジュール１２４を含んでよい。モジュール１２４は、画像デバイスの様々なコンポーネントをオペレーションするために使用されてよい。例えば、カメラは、それぞれがモジュール１２４によって可能にされ得る、バッファ、レンズ、及び、オートフォーカスを含んでよい。
【００２０】
メモリデバイス１０４は、デバイスドライバ１２６を含む。デバイスドライバ１２６は、ホストデバイス１００が、画像デバイス１２０とインタフェースし、画像デバイス１２０をサポートし、画像デバイス１２０を有効にできるようにするべく、ＣＰＵ１０２又はＧＰＵ１０８によって実行されてよい。デバイスドライバ１２６は、本明細書中に記載されているように、ホストソフトウェアであってよい。さらに、デバイスドライバ１２６は、カメラメタデータにアクセスしてよい。そのメタデータは、メモリデバイス１０４、画像デバイス１２０、ストレージデバイス１２８、又は、他の任意のデータストレージロケーションに格納されてよい。
【００２１】
ストレージデバイス１２８は、ハードドライブ、光学式ドライブ、サムドライブ、デバイスアレイ、又は、それらの組み合わせのような、物理メモリである。ストレージデバイス１２８はまた、リモートストレージドライブを含んでよい。ストレージデバイス１２８は、ホストデバイス１００上で動作するべく構成された任意の数のアプリケーション１３０を含む。ホストデバイス１００はまた、ホストデバイス１００を、バス１０６を介してネットワーク１３４に接続するよう構成されたネットワークインタフェースコントローラ（ＮＩＣ）１３２を含んでよい。ネットワーク１３４は、とりわけ、広域ネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、又は、インターネットであってよい。
【００２２】
複数の実施形態において、ＣＰＵ１０２によって実行される複数の命令は、ホストコマンド変換を可能にするべく使用されてよい。さらに、複数の実施形態において、ＧＰＵ１０８によって実行される複数の命令は、ホストコマンド変換を可能にするべく使用されてよい。その結果、ＣＰＵ１０２又はＧＰＵ１０８は、画像デバイス１２０にインタフェースし、画像デバイス１２０をサポートし、又は、画像デバイス１２０を有効にするべく使用されるホストプロセッサであってよい。その上、デバイスドライバ１２６又はアプリケーション１３０は、本明細書中に記載されているように、ホストソフトウェアを含んでよい。複数の実施形態において、ＣＰＵ１０２又はＧＰＵ１０８は、本明細書中に記載されているように、転送メカニズム内の複数のコマンドを実行するべく使用されてよい。さらに、複数の実施形態において、ＣＰＵ１０２又はＧＰＵ１０８は、メタデータストレージサブシステムを有効にしてよい。
【００２３】
図１のブロック図は、ホストデバイス１００が、図１に表されるコンポーネントの全てを含むためのものであることを示すことを意図していない。さらに、ホストデバイス１００は、特定の複数の実施態様の詳細による、図１に示されない任意の数の追加のコンポーネントを含んでもよい。
【００２４】
ＣＣＳを使用することによって、様々なカメラ構成のサポートに関連するソフトウェア及び統合コストが、複数のカメラセンサ及びモジュールを発見かつ制御するための共通のメカニズムを提供することによって低減され得るが、複数のセンサ又はモジュールの実装は、抑制されない。それどころか、任意のセンサ及びカメラ構成を説明する標準技術が提供される。ＣＣＳは、複数のセンサ、複数のモジュール、及び、複数の画像プロセッサに対して要求される及びオプションの複数のコマンドを含む。複数のカメラコマンドを変換することは、複数のカメラがＣＣＳをネイティブにサポートしていなくても、一般的なドライバが、それらの様々なカメラ構成のサポートを提供することを可能にする。一般的なドライバの使用は、様々なカメラ構成に関連する実装コストを低減し得る。転送メカニズムは、カメラシリアルインタフェース３（ＣＳＩ−３）属性のゲット／セットアーキテクチャ内の複数のコマンドを実行するべく使用される。いくつかのコマンドは、センサのコスト及び複雑さを低減するために、センサの外部で実行されてよい。
【００２５】
さらに、センサの外部で複数のコマンドを実行することは、カメラシリアルインタフェース２（ＣＳＩ−２）タイプのセンサのような、レガシーなセンサに基づくカメラのためのサポートを提供する。複数の実施形態において、複数のチューニングパラメータを含む、センサ及びモジュール固有メタデータを格納しかつ取得するための技術が提供される。
【００２６】
ＣＳＩ−２及びＣＳＩ−３規格は、Ｍｏｂｉｌｅ Ｉｎｄｕｓｔｒｙ Ｐｒｏｃｅｓｓｏｒ Ｉｎｔｅｒｆａｃｅ（ＭＩＰＩ）アライアンスによって発展された。ＣＳＩ−２及びＣＳＩ−３規格は、画像デバイスのようなカメラサブシステムを、アプリケーションプロセッサのようなホストデバイスに取り付けるための標準インタフェースを提供する。本明細書中に記載された複数の技術は、任意のＭＩＰＩカメラシリアルインタフェース（ＣＳＩ）規格に従って発展された複数のカメラサブシステムに実装されてよい。さらに、複数の実施形態において、ＭＩＰＩカメラパラレルインターフェース（ＣＰＩ）に従って発展された複数のカメラサブシステムもまた、本技術において使用されてよい。
【００２７】
図２は、複数の実施形態に従う、カメラ２００のブロック図である。上述したように、カメラ２００は、画像デバイス１２０（図１）のような、画像デバイスであってよい。カメラ２００は、ＣＳＩ−３リンク２０２に取り付けられる。ＣＳＩ−３リンク２０２は、ＣＰＵ１０２又はＧＰＵ１０８（図１）のようなホストプロセッサとの、カメラ２００の統合のための高速シリアルインタフェースのプロトコルを可能にする。複数の実施形態において、ホストプロセッサは、モバイル端末アプリケーション内のアプリケーションプロセッサであってよい。
【００２８】
カメラ２００は、画像ソース２０６によって代表されるＣＳＩ−３仮想チャネル２０４「の上」にある任意の処理機能を含んでよい。画像ソースは、画像センサ、システムオンチップ（ＳＯＣ）画像デバイス、マルチチップ画像デバイスモジュール、又は、画像信号プロセッサ（ＩＳＰ）であってよい。それにより、カメラは、ホストデバイス上に存在する追加の処理機能を含んでよい。しかしながら、これらの潜在的な処理機能は、ＣＣＳオペレーションにとって必須ではない。
【００２９】
ＣＣＳの複数の目的のために、カメラは、図２における複数のコンポーネントと類似する複数のコンポーネントで構成されると仮定される。しかしながら、示される全てのコンポーネントが必要なわけではない。特に、ＣＣＳは、センサ２０８と、１又は複数の画像ソース２０６とを使用してよい。複数の実施形態において、センサ２０８が存在せずに、他の画像ソースが使用されてもよい。例えば、ＣＣＳは、ＩＳＰが画像ソースであるサブシステムに適用してよい。レンズ２１０、開口２１２、照明２１４、及び、メタデータストレージ２１６を含む追加の複数のサブシステムのためのサポートは、オプションである。
【００３０】
レンズサブシステム２１０は、オプションで光学ズーム機能をサポートし得る、指示された視野をもつレンズグループとして形成される。開口サブシステム２１２は、オプションで開口を最小又は最大のＦ値に変更することをサポートする、指示されたＦ値をもつアイリスとして形成される。Ｆ値は、レンズシステムの前面を通してみられる、物理的な開口絞りの光学像の直径に対するレンズの焦点距離の比率である。
【００３１】
複数の実施形態において、センササブシステム２０８は、理想的なセンサを形成する。複数の理想的なセンサは、線形に又はいくつかの測定のシンプルな数学関数に対して線形に設計される。
【００３２】
それにより、特定の値のために、理想的なセンサは、その値が測定されるたびに同じ出力を生成する。タイミング、利得、及び、複数の他のキャプチャ関連パラメータを含む、カメラによって生成された任意の画像に作用する複数の設定は、センササブシステム２０８の一部である。さらに、ＲＡＷ及びＳｏＣセンサもまた、センササブシステム２０８において使用されてよい。さらに、複数の実施形態において、センササブシステム２０８はまた、ＨＤＲ（Ｈｉｇｈ  Ｄｙｎａｍｉｃ  Ｒａｎｇｅ）及びコンピュータによるイメージングの他の構成（マルチ焦点面イメージング等）のような、センサの動作を含んでよい。
【００３３】
画像ソース２０６は、センササブシステム２０８の出力を取得し、ＣＳＩ−３仮想チャネル２０４を介した転送のためにそれをパッケージングする。このパッケージングは、ＹＵＶ又はＪＰＥＧ出力の生成のような複数の処理機能を含む、データがフォーマットされかつ伝達され得る、又は、複雑であり得るＲＡＷセンサの場合のように、シンプルであってよい。各画像ソース２０６の出力は、画像データのホストに対する転送を提供するべく、ＣＳＩ−３仮想チャネル２０４による入力として選択されうる。ＣＳＩ−３仮想チャネル２０４は、同一のデータソースによって生成された複数の画像パケット及び属性のシーケンスを表す。複数の実施形態において、ＣＣＳ画像ソース２０６は、ピクセルデータの一種及び複数の組み込み属性を生成してよい。画像ソース２０６が画像データの生成及び処理を表しかつ管理する一方で、ＣＳＩ−３仮想チャネル２０４は、画像データの転送を表し、かつ、管理するべく使用される。ＣＳＩ−３仮想チャネル２０４と画像ソース２０６との間には、１対１の関係がある。
【００３４】
照明サブシステム２１４は、フラッシュ、１又は複数のビデオランプ、赤目軽減ランプ、及びレコードインジケータライトを含む、カメラの照明制御の管理を提供する。カメラ２００は、照明サブシステム２１４の機能の任意の組み合わせをオプションでサポートしてよい。
【００３５】
さらに、メタデータストレージサブシステムは、ソフトウェアが、カメラサブシステム２００によって格納された不揮発性のデータを取得し、かつ、当該不揮発性のデータをオプションで書き込むための共通のメカニズムを提供する。メタデータストレージは、モジュールによりネイティブにサポートされるものを超越するＣＣＳ機能を可能にする任意の解釈されたコードを格納するのと同様に、モジュール識別及び複数の画像チューニングパラメータを格納してよい。その上、メタデータストレージシステムはまた、ＣＳＩ−３のためのデータブロックストレージであってよい。
【００３６】
コマンド転送メカニズム２１８は、ネイティブにサポートされた複数のＣＣＳコマンドが、ＣＳＩ−３インタフェースを包含するカメラサブシステム２００に対して転送されることを可能にする。ＣＳＩ−２のような、他の複数のインタフェースは、コマンドセットのための代替となる転送を定義し、かつ、実装してよい。コマンド転送メカニズム２１８は、カメラアプリケーションを構成しかつ制御するべく使用される全てのコマンド及びＣＳＩ−３属性２２２をコマンド転送メカニズム２１８に対して転送できるカメラのための構成プロトコル（ＣＰＣ）２２０に、アクセスしてよい。さらに、カメラ制御インタフェース（ＣＣＩ）２２４は、ＣＳＩ−２相互接続をサポートするＣＳＩ−２データのためのブリッジ機能を提供するべく使用されてよい。
【００３７】
多数のＣＣＳコマンドが、ＣＳＩ−３仮想チャネル２０４とＣＣＳ画像ソース２０６との間の特定の重複とともに、ＣＳＩ−３属性２２２に影響を与える変更を発生し得る。例えば、セットセンサ標準構成コマンド（Ｓｅｔ＿ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（））は、画像サイズを含むセンサモードの設定をサポートする。ＣＳＩ３＿ＸＳＩＺＥ、ＣＳＩ３＿ＸＬＥＮ、ＣＳＩ３＿ＹＳＩＺＥ、ＣＳＩ３＿ＹＬＥＮ、及び他のそのようなＣＳＩ−３属性のような仮想チャネル属性は、実装された場合に、複数のＣＣＳコマンドによって設定されたように、現在のカメラ構成を正確に反映した複数の値を返すはずである。
【００３８】
したがって、ＣＳＩ−３仮想チャネル属性は、複数の画像及び関連データをＣＳＩ−３準拠デバイスからホストへと転送するべく使用される複数のパラメータを制御するべく使用される。これらの属性は、各フレームとともに送信された組み込みメタデータとともに、画像サイズ、データフォーマット、タイミング、及びエラー処理のための制御を含む。ＣＣＳコマンドはまた、サイズ、フォーマット及びタイミングのような多くの同一の画像の品質を制御する。センサに対して発行されたＣＣＳコマンドの影響は、とりわけ、ＣＣＳ仮想チャネル属性を修正することを含んでよい。例えば、ＣＣＳコマンドは、仮定として、１９２０×１０８０の解像度、３０フレーム毎秒のオペレーションのためにセンサを構成し得るＳｅｔ＿ＳｔａｎｄａｒｄＣｏｎｆｉｇ（１）となってよい。そして、ＣＳＩ３＿ＹＳＩＺＥ属性に対するＣＳＩ−３  Ｇｅｔは、１０８０を返してよい。次に、ＣＳＩ３＿ＹＳＩＺＥを２０００に変更するべく属性セットが発行された場合、（２０００のＹＳＩＺＥを有する）現在の構成が前に設定されたＣＣＳ状態と不整合であるにもかかわらず、Ｇｅｔ＿ＳｔａｎｄａｒｄＣｏｎｆｉｇ（）ＣＣＳコマンドはまた、「１」を返してよい。
【００３９】
センササブシステム２０８及び画像ソースサブシステム２０６は、任意の数の構成を使用して実装されてよい。それにより、ホストソフトウェアが、センササブシステム２０８を適切に構成することに挑戦可能である。ＣＣＳは、センササブシステム２０８の適切な構成をアシストするべく、複数のセンサモードを使用できる。センサモードは、センサベンダによって定義され、ソフトウェアが選択可能な、オペレーティング構成のセットである。
【００４０】
概して、カメラが将来的にサポートする予期される使用を表す、既知のカメラのために存在する、制限された構成のセットが存在することになる。例えば、カメラは、８メガピクセルＲＡＷＩＯスチル最適化モード、１０８０ｐ／３０ビデオ最適化ＭＪＰＥＧモード、及び、ＱＶＧＡ  ＹＵＶプレビューモードのためのサポートを示してよい。
【００４１】
ＣＣＳは、望まれた構成のインデックスを選択することによって望まれたオペレーティングモードをセットするべく使用されることができるセンサ標準構成（ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（））コマンドを含んでよい。カメラは、それから、適切なタイミング及び関連するセッティングに自己構成する。ホストソフトウェアは、情報センサ標準構成（Ｉｎｆｏ＿ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（））コマンドを使用して、センササブシステム２０８によってサポートされた複数のモードを列挙するテーブルを取得できる。センササブシステム２０８は、そのテーブルにリストされた複数のモードにおけるオペレーションに限定はされない。カメラサブシステム２００の追加の知識を有するホストソフトウェアは、追加の複数のセンサ機能を露呈するために明確にタイミングをセットするセットセンサタイミング（Ｓｅｔ＿ＳｅｎｓｏｒＴｉｍｉｎｇｓ（））コマンドのような、複数の追加コマンドを使用してよい。
【００４２】
図３は、複数の実施形態に従って、複数のカメラコマンドを変換するシステム３００のブロック図である。ＣＣＳは、複数のセンサを制御するための標準メカニズムを可能にするべく使用される。コマンドの共通セットが、ＣＣＳのために定義される。ＣＣＳは、ネイティブの、要求された、かつ、オプションのコマンドに分類されてよい。複数のコマンドは、カメラサブシステム２００のような、定義されたカメラモデル上で動作する。
【００４３】
ネイティブコマンドは、ホスト変換サポートを必要とせずにセンササブシステムによって直接実行可能なコマンドである。ＣＣＳにおけるいくつかのコマンドは、カメラサブシステムがコマンドをネイティブに受け入れかつ処理することが可能であることを示しうるという点で、カメラサブシステムにおけるネイティブコマンドであってよい。それによって、ＣＣＳサポートを主張するカメラサブシステムは、全てのネイティブ要求コマンドのためのネイティブサポートを提供するだろう。
【００４４】
ＣＣＳサポートを主張するカメラサブシステムはまた、複数の要求されたコマンドをサポートすべきであるが、そのサポートは、本明細書中において記載されるホストベース変換ファシリティを使用して提供されてよい。カメラサブシステムは、全てのオプションのコマンドをサポートしてよい。概して、複数のネイティブ要求コマンドは、複数のＣＣＳ機能を識別し、かつ、もし必要であれば、コマンド変換をサポートするために必要な情報を取得するために必要な複数のシンプルコマンドである。変換ファシリティが起動して動作していると、次の複数のコマンドが、このメカニズムを通してサポートされ得る。
【００４５】
したがって、複数のホスト変換コマンドは、複数のＣＣＳコマンドに書き込まれたホストソフトウェアをスチルワークのためのフルＣＣＳコマンドセットをネイティブにサポートしない複数の能力カメラに提供する。ほとんどのコマンドは、変換することによってサポートされ得るが、少数のネイティブな必須コマンドは、それらが変換の起動及び動作をするために要求されるものとして、センサによってサポートされなければならない。変換ファシリティは、実行サンドボックス、コードストレージ、及び、コードをコンパイルするための方法を有する変換エンジンを含むが、それに限定はされない。複数の実施形態において、サンドボックス内で動作するコードの出力は、ＣＳＩ−３属性ゲット／セットトランザクションであり、ひいては、センサ上で実行され得る。
【００４６】
複数の実施形態において、転送メカニズムは、センササブシステム２０８（図２）のようなセンサ上のコマンドの実行を制御するべく定義される。転送メカニズムは、図２において記載されているようなコマンド転送メカニズム２１８であってよい。転送メカニズムはまた、いくつかの複雑なコマンドがホストデバイスにおいて実行されることができ、かつ、センサの複雑さ及びコストを低減するべくより簡素なコマンドセットに変換されることができるメカニズムを提供してよい。
【００４７】
さらに、複数の実施形態において、メタデータは、カメラサブシステムから取得されることができ、ソフトウェア及び製造のニーズを支援する。
【００４８】
ＣＣＳの複数のカメラコマンドは、コマンドが呼び出される方法を概念化した疑似コード表現を使用するために参照される。ＣＳＩ−３カメラがサポートを提供できる複数の技術を使用することで複数のコマンドが記載されてよいが、複数の同一のコマンドは、他のコマンド転送メカニズム又はソフトウェア変換サポートを使用するが、ＣＳＩ−２のような他のカメラサブシステムに提供されることができる。
【００４９】
各コマンドは、サポートされてよい又はされなくてよいいくつかの変数を有する。「Ｓｅｔ＿」の変数がパラメータのセットを取得しかつステータスコードを返す一方、「Ｇｅｔ＿」の変数はパラメータを取得しないがデータのセットを返す。「Ｉｎｆｏ＿」の変数は、ソフトウェアが特定の利用可能なオプション、範囲及び機能を理解することを助け得るデータの静的なブロックを返す。
【００５０】
例えば、上述の情報センサ標準構成（Ｉｎｆｏ＿ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（））コマンドは、ソフトウェアが選択可能な、センサによってサポートされる複数のモード及び構成を定義するデータのテーブルを返す。ソフトウェアは、それから、単一のパラメータインデックスを入力として取得し、かつ、レスポンスにおいてステータスコードを返すセットセンサ標準構成（Ｓｅｔ＿ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（Ｉｎｄｅｘ））コマンドを使用でき、センサを所望のモードに構成する。現在のオペレーティングモードは、入力パラメータを取得しないが、レスポンスとして現在のアクティブインデックスを返すゲットセンサ標準構成（Ｇｅｔ＿ＳｅｎｓｏｒＳｔａｎｄａｒｄＣｏｎｆｉｇ（））コマンドを使用して読み取られることができる。Ｇｅｔ＿／Ｓｅｔ＿／Ｉｎｆｏ＿構造は、ＣＳＩ−３属性ゲット／セットアーキテクチャの上に適合する。
【００５１】
さらに、それは、例えば、Ｉｎｆｏ＿の変数がコマンド変換を通してサポートされるのみである一方、カメラによってネイティブにサポートされるＧｅｔ＿／Ｓｅｔ＿の変数を有するためのサポートと、サポートされた複数のコマンドのきめの細かい指示を可能にする。
【００５２】
ＣＣＳが、カメラのための完全なコントロールセットを提供することを意図されている一方で、複数の他のメカニズムは、複数のベンダ固有コマンド及び属性ゲット／セットメカニズムのような、ＣＣＳによって露呈される限度を超えた制御を可能にするべく使用されてよい。複数のベンダ固有コマンドは、ＣＣＳアーキテクチャ内の、複数の定義済みのＣＣＳコマンドを拡張する機能を提供するために使用されてよい。これら複数のベンダ固有コマンドは、コマンド転送アーキテクチャを使用する。
【００５３】
複数のベンダ固有コマンドに加えて、ソフトウェアは、このドキュメントにおいて定義されたコマンド転送アーキテクチャを使用して容易に表現又は実装されることができない機能を提供するべくＣＳＩ−３仕様によって定義された属性ゲット／セットメカニズムを使用し続けてよい。ベンダ固有の又は直接の属性ゲット／セットコマンドが使用される場合、ＣＣＳによって返された複数の値は、破損する場合がある。それに応じて、複数のベンダ固有コマンド又は属性ゲット／セットメカニズムが実装された場合、ＣＣＳとの潜在的なインタラクションが、認知されるべきである。例えば、ベンダ固有コマンドが、標準コマンドセットによってサポートされないレンズシェーディング補正メカニズムを特定するために使用される場合、ゲットレンズシェーディング（ＧｅｔＬｅｎｓＳｈａｄｉｎｇ（））コマンドが、破損したデータ、又はＣＣＳによって予期されたもの以外のデータを返してよい。
【００５４】
システム３００は、ホストデバイス３０２を含んでよい。ホストデバイス３０２は、デスクトップ、ラップトップ、タッチパッド、パーソナルコンピュータ、携帯電話デバイス、又は同種のものであってよい。さらに、上述のホストデバイス１００（図１）は、ホストデバイス３０２であってよい。ホストデバイス３０２は、カメラサブシステム３０４に連結されてよい。カメラサブシステム３０４は、画像デバイス１２０（図１）又はカメラサブシステム２００（図２）であってよい。上述のように、カメラサブシステム３０４は、ＣＳＩ−３リンクを介してホストデバイス３０２に連結されてよい。カメラサブシステム３０４はさらに、メタデータストレージ３０６を含んでよい。メタデータストレージ３０６は、カメラサブシステム３０４によって格納されるデータへの保管及びからの取得のための共通のメカニズムを提供してよい。メタデータストレージ３０６は、複数のカメラコマンドを変換するために使用される変換コード３０８を格納してよい。加えて、メタデータストレージ３０６はまた、識別及び画像チューニングパラメータを格納してよい。カメラサブシステム３０４はさらに、複数のＣＳＩ−３属性を含んでよい。複数の実施形態において、複数の属性は、カメラサブシステムの複数のリソースにアクセスするために使用されてよい。さらに、複数の実施形態において、複数の属性は、複数のイベントを検出するために使用されてよい。ＣＳＩ−３属性３１０は、変換ファシリティから変換コマンドを受信する。変換ファシリティは、変換エンジン３１２であってよい。
【００５５】
変換エンジン３１２は、カメラサブシステム３０４から外部に位置されてよい。例えば、変換エンジン３１２は、ホストデバイス３０２に位置してよい。他の例において、変換エンジン３１２は、ホストデバイス３０２及びカメラサブシステム３０４の両方に対して外部であってよい。そして、変換エンジン３１２は、カメラサブシステム３０４に連結されてよい。
【００５６】
変換エンジン３１２は、複数の受信コマンドを、カメラサブシステム３０４の構成に固有である複数の画像コマンドに変換してよい。特に、変換エンジン３１２は、複数の受信コマンドを、カメラサブシステム３０４がハンドリング可能である複数のアクセスに変換してよい。例えば、変換エンジン３１２は、複数の複雑な入力コマンドを複数のよりシンプルなコマンドに変換してよい。他の例において、変換エンジン３１２は、複数の入力コマンドを、複数のＣＳＩ−３属性ゲット−セット要求に変換してよい。
【００５７】
複数のコマンドを変換するために、変換エンジン３１２は、変換コード３０８を使用してよい。変換エンジンは、カメラサブシステム３０４のメタデータストレージ３０６から取得したハイレベル変換コード３０８を使用してよい。変換コード３０８はまた、カメラサブシステム３０４から外部に格納されてよい。特に、変換コード３０８は、プラットフォームストレージ３１４内に格納されてよい。ある例において、プラットフォームストレージ３１４は、ホストデバイス３０２に含まれてよい。他の例において、プラットフォームストレージ３１４は、ホストデバイス３０２及びカメラサブシステム３０４の両方に対して外部であってよい。プラットフォームストレージ３１４は、ホストデバイス３０２に連結されてよい。プラットフォームストレージ３１４は、任意のタイプの記憶媒体であってよい。例えば、プラットフォームストレージ３１４は、ＲＡＭメモリ、ＢＩＯＳ、又は、ディスクドライブであってよい。変換コード３０８は、変換エンジンが変換コード３０８に位置してアクセスするために、ホストに対してよく知られている方式で格納されてよい。変換コード３０８はまた、他のプラットフォームストレージ内に又は他のプラットフォームストレージ位置から格納されてよい。変換コードが格納される位置は、変換コード記憶領域として知られる。プラットフォームのニーズに応じて、ホストソフトウェアは、適切なコード記憶領域からコードを取得するべく設計される。変換エンジン３０８は、コードを実行して、提供された複数のＣＣＳコマンドを、ＣＳＩ−３属性ゲット／セットＰＤＵパケットであってよい、カメラサブシステムが実行可能な複数のアクセスに変換する。ＣＳＩ−３属性ゲット／セットＰＤＵパケットは、ＣＣＳコマンドによって要求された動作を生じるべく、カメラサブシステムに対して送信されてよい。
【００５８】
変換エンジン３１２は、複数の変換されたコマンドをカメラサブシステム３０４に対して送信するべく適合されてよい。例えば、変換エンジン３１２は、複数の変換されたコマンドをＣＳＩ−３属性３１０に対して送信してよい。変換エンジン３１２は、カメラサブシステム３０４によってネイティブにサポートされないコマンドのみを変換するべく適合されてよい。それによって、カメラのための全てのコマンドが変換される必要はない。どのコマンドが変換されるべきであるかを判定するために、変換エンジン３０８は、第１に、カメラサブシステム３０４のゲットＣＣＳサポート（Ｇｅｔ＿ＣＣＳＳｕｐｐｏｒｔ（））コマンドを実行すべきである。複数の実施形態において、有効なＣＣＳサポートテーブルが返された場合、その後、変換エンジン３０８は、ネイティブに取り扱われ得る、カメラサブシステム３０４に対して直接コマンドを渡すべく提供された情報を使用することができる。さらに、複数の実施形態において、ホストによって要求された全てのコマンドがネイティブにサポートされ得る場合、その後、変換エンジン又は変換コード記憶領域の必要はない。このように、ホストデバイス３０２は、カメラサブシステム３０４が、複数のコマンドの変換を初期化する前に、複数のコマンドを処理できるか否かを判定するべく、カメラサブシステム３０４を評価してよい。カメラサブシステム３０４が、複数のコマンドを処理できる場合、ホストデバイス３０２は、複数の入力コマンドを直接カメラサブシステム３０４に対して送信してよい。ある例において、複数のコマンドは、変換エンジン３１２に対して直接入力され得る。他の例において、複数のコマンドは、ホストデバイス３０２に入力されて、その後、変換エンジン３１２に対して転送されてよい。
【００５９】
変換エンジン３１２は、デバイスドライバ１２６（図１）ような、デバイスドライバ上で実装されたランタイム解釈言語サンドボックス内に実装されてよい。このように、ホストデバイスのカーネルは、変換エンジン３１２から排出され得る任意のコードからプロテクトされる。
【００６０】
複数の実施形態において、ＣＣＳ内のいくつかのコマンドは、オプションである、又は、ＲＡＷセンサ上の複数の画像処理コマンドのような、特定のカメラサブシステム又はセンササブシステム構成に対して適用可能でない。ホストソフトウェアを提供するために、予測可能なサポートされるコマンドのセット、多数のプロファイルは、様々な使用のために予め定義されることができる。プロファイルを実装すべく、カメラサブシステムは、上述のように、ネイティブな又は変換されたサポートのいずれかを通じて、示された複数のコマンドのためのサポートを提供する。カメラはまた、任意の他のオプションのコマンドに対するサポートを提供してよい。例えば、ＲＡＷカメラとして識別されるカメラは、ＲＡＷカメラＣＣＳプロファイルを実装してよい。同様に、ＳｏＣカメラとして識別されるカメラサブシステムは、ＳｏＣカメラＣＣＳプロファイルを実装してよい。
【００６１】
図４は、複数の実施形態に従って、カメラサブシステムを初期化する方法４００を示す処理フロー図である。処理フロー図は、ホストデバイス１００（図１）又はホストデバイス３０２（図３）のようなホストデバイスによって利用されてよい。
【００６２】
ブロック４０２では、画像デバイスが識別される。複数の実施形態において、カメラを識別するために、ホストソフトウェアは、デバイス属性を読み込んで、デバイスクラス、製造者、モデルナンバー、シリアルナンバー、及び他の情報を識別してよい。例えば、ホストデバイスとカメラとが統合プロトコル（ＵｎｉＰｒｏ）によって相互接続されている場合、ホストデバイスは、カメラのＵｎｉＰｒｏデバイス記述子ブロック（ＤＤＢ）物理層（Ｌ１）属性を読み込んでよい。ＵｎｉＰｒｏプロトコル  は、システム内の複数の相互接続デバイスに対する規格を指定する。ＵｎｉＰｒｏ  ＤＤＢは、デバイスを識別するために使用可能な情報を含む。さらに、画像デバイスのＵｎｉＰｒｏ  ＤＤＢ  Ｌ１属性は、リンクの帯域幅及びパワー能力のような、画像デバイスとホストデバイスとの間のリンクを定義するために使用されてよい。ＵｎｉＰｒｏ  ＤＤＢ  Ｌ１属性は、デバイスクラス、製造者の識別、及び製品識別を含む。複数の実施形態において、複数のＣＳＩ−３属性は、デバイスサブクラスのような、画像デバイスについての情報を判定するべく読み込まれてよい。
【００６３】
複数の実施形態において、カメラは、Ｍｏｂｉｌｅ Ｉｎｄｕｓｔｒｙ Ｐｒｏｃｅｓｓｏｒ Ｉｎｔｅｒｆａｃｅ（ＭＩＰＩ）カメラシリアルインタフェース（ＣＳＩ）アライアンスによる仕様書に従って発展したインタフェースを使用してホストデバイスのプロセッサとインタフェースする。例えば、カメラシリアルインタフェースは、ＭＩＰＩのＣＳＩ−３インタフェースであってよい。複数の実施形態において、ＣＳＩは、データ及びクロック信号の一方向の差動シリアルインタフェースであるデータ送信インタフェースを含む。ホストデバイスは、ＣＳＩ−３属性を使用してカメラのサブクラスを判定してよい。
【００６４】
ブロック４０４では、画像デバイスがＣＣＳをサポートしているか否かが判定される。ＣＣＳがサポートされている場合、処理フローはブロック４０６に続く。ＣＣＳがサポートされていない場合、処理フローはブロック４０８に続く。これを判定するために、ホストは、ゲットＣＣＳサポート（Ｇｅｔ＿ＣＣＳＳｕｐｐｏｒｔ（））コマンドの実行を試みてよい。ゲットＣＣＳサポート（Ｇｅｔ＿ＣＣＳＳｕｐｐｏｒｔ（））コマンドは、後述の転送メカニズムを使用してカメラによって実行されてよい。カメラからの戻り値が「０」である場合、ＣＣＳはサポートされていない。
【００６５】
複数の実施形態において、ＣＣＳがサポートされている場合、ホストデバイスは、カメラがＣＣＳをネイティブにサポートしているか否かを判定してよい。例えば、ホストは、ＣＳＩ−３属性又はＵｎｉＰｒｏ  ＤＤＢ  Ｌ１属性から取得したデータを使用して、情報メタデータディレクトリ（Ｉｎｆｏ＿ＭｅｔａｄａｔａＤｉｒｅｃｔｏｒｙ（））コマンドがサポートされているか否かを判定してよい。カメラがＣＣＳをネイティブにサポートしている場合、カメラは、複数のＣＣＳコマンドの使用を開始してよい。
【００６６】
カメラが、ＣＣＳをネイティブにサポートしない場合、ホストは、変換コードブロブが利用可能であるか否かを判定してよい。例えば、ホストは、変換コードブロブが、メタデータにおいて利用可能であるか否かを判定してよい。
【００６７】
ブロック４０６では、メタデータディレクトリが存在するか否かが判定される。メタデータディレクトリが存在する場合、処理フローは、ブロック４１０に続く。メタデータディレクトリが存在しない場合、処理フローは、ブロック４１６に続く。
【００６８】
ブロック４０８では、ベンダ固有ソフトウェアが、カメラをサポートし、かつ、有効にするために使用される。ＣＣＳがサポートされていない場合、処理は終了し、ベンダ固有フローが使用されなければならない。
【００６９】
ブロック４１０では、メタデータディレクトリを使用することで変換コードが利用可能であるか否かが判定される。メタデータディレクトリを使用することで変換コードが利用可能である場合、処理フローはブロック４１４に続く。メタデータディレクトリを使用することで変換コードが利用可能でない場合、処理フローはブロック４１２に続く。
【００７０】
ブロック４１２では、システム内のいずれかの場所で、変換コードが利用可能であるか否かが判定される。複数の実施形態において、変換コードが、プラットフォーム上のいずれかの場所で利用可能であるか否かが判定される。システム内において変換コードが利用可能でない場合、処理フローはブロック４０８に戻る。システム内において変換コードが利用可能である場合、処理フローはブロック４１４に続く。
【００７１】
ブロック４１４では、変換コードがロードされて、実行される。そして、複数の実施形態において、変換コードブロブが利用可能である場合、ホストは、ブロブをロードして、変換エンジンを初期化してよい。変換ブロブがロードされる場合、ブロブは、ランタイム解釈言語サンドボックスにおいて動作してよい。変換エンジンは、複数のコマンドの変換を開始してよい。変換コードブロブが利用可能でない場合、ホストは、プラットフォームに固有の方法で、プラットフォーム上のどこか他の場所で利用可能な変換コード記憶領域があるか否かを判定してよい。利用可能な変換コード記憶領域がある場合、ホストは、変換コード記憶領域をロードして、変換エンジンを初期化してよい。次に、変換エンジンは、ＣＣＳからの複数のコマンドの、カメラが実行可能な複数のコマンドへの変換を開始してよい。複数の実施形態において、結果として生じる複数の変換されたコマンドは、カメラコマンドによって要求される動作を発生するべく順にカメラに対して送信されるＣＳＩ−３属性ゲット／セットＰＤＵパケットである。ブロック４１６では、複数のＣＣＳコマンドが使用されて、カメラをサポートし、制御し、有効にする。
【００７２】
図５は、複数の実施形態に従って、複数のカメラコマンドを変換する方法５００の処理フロー図である。上述したように、変換エンジンが図４のブロック４１４において変換コードを実行することによって生成される場合、複数のコマンドは変換されてよい。
【００７３】
ブロック５０２では、変換コードがコード記憶領域から取得されて、変換エンジンを構成する。上述したように、変換コード及び変換エンジンは、複数の複雑なＣＣＳコマンドが、カメラが実行可能な複数のコマンド又はＣＳＩ−３属性のゲット／セット要求に変換されるようにできる変換ファシリティを構成する。変換コードは、後述するように、メタデータストレージサブシステムを使用して格納されてよい。ブロック５０４では、複数の画像デバイスコマンドが、変換エンジンにおいて受信される。複数の実施形態において、複数の画像デバイスコマンドは、デバイスドライバ１２６（図１）又はアプリケーション１３０（図１）から送信される。
【００７４】
ブロック５０６では、複数の画像デバイスコマンドが、変換エンジンを使用して変換される。このように、ホストデバイスは、ＣＣＳコマンドを、画像デバイスが処理可能なフォーマットに変形又は変換できる。
【００７５】
複数の実施形態において、変換エンジンは、コマンドをＣＳＩ−３属性のゲット／セット要求に変換できる。転送メカニズムは、ＣＳＩ−３属性のゲット／セット要求に変換された複数のコマンドを実行するために使用されてよい。ブロック５０８では、複数の変換された画像デバイスコマンドが画像デバイスに転送されて、変換された画像デバイスコマンドによって要求される動作が引き起こされる。
【００７６】
ＣＣＳは、ＣＳＩ−３ベースの複数の画像デバイス上で実装されてよい。上述したように、複数の画像デバイスは、複数のカメラ及び複数のセンサを含む。複数の実施形態において、ＣＳＩ−３画像デバイスは、ＣＣＳのコマンドをネイティブに実行でき、それによって、ホストデバイスとの統合チャレンジを軽減し、また、ソフトウェア及びサポートのコストを低減する。さらに、複数の実施形態において、複数のＣＣＳコマンドは、ゲット及びセットアーキテクチャに基づいて、転送メカニズムを使用してネイティブに実行されてよい。
【００７７】
そして、ＣＳＩ−３ベースカメラ上でネイティブに実行される複数のコマンドのための輸送は、ＣＳＩ−３規格が定義するように、カメラのための構成プロトコル（ＣＰＣ）によって定義されたＣＳＩ−３  ＧＥＴ、ＳＥＴ、ＲＥＳＰＯＮＳＥ及びＮＯＴＩＦＹトランザクション動作に基づく。ＣＣＳコマンドのＧｅｔ＿及びＳｅｔ＿の変数は、ＣＳＩ−３のＧＥＴ及びＳＥＴトランザクションに対応する。さらに、コマンドのＩｎｆｏ＿の変数は、Ｇｅｔ＿の変数のより長いバージョンとして、典型的には、異なるコマンド識別（ＩＤ）とともに実装される。コマンドのＩｎｆｏ＿の変数が返す情報は、著しくより大きくなってよく、Ｇｅｔ＿の変数が返す動的な制御情報に比較して、典型的に静的な情報である。
【００７８】
Ｇｅｔ＿の変数又はＳｅｔ＿の変数のコマンドＩＤは、以下の方法で、ＣＳＩ−３属性ＩＤにマッピングされる：  ＣＳＩ−３＿Ａｔｔｒｉｂｕｔｅ＝０ｘ０１００００００＋（ＣＭＤ  ＩＤ＊０ｘ１０００）
【００７９】
多数のコマンドに対して留意すべきことは、疑似コードの抽出が、根本的にちょうど属性ゲット／セット処理であるものの周囲の薄いカバーである。
【００８０】
例えば、０ｘ０１０のＩＤを有するゲットコマンドステータス（Ｇｅｔ＿ＣｏｍｍａｎｄＳｔａｔｕｓ（））コマンドは、（０ｘ０１００００００＋（０ｘ０１０＊０ｘ１０００）＝０ｘ０１０１００００）へのトランザクションとして表されるだろう。このアドレスは、パケットデータユニット（ＰＤＵ）の属性ＩＤフィールドであるだろう。さらに、ＰＤＵは、４バイト転送を表す０のＸＦＳＩＺＥ、及びＧＥＴを示す２のＰＤＵタイプを有するだろう。このＰＤＵは、続いて、ＣＳＩ−３属性パケット内にカプセル化されて、カメラに対して送信されるだろう。次に、ステータス値が、ホストにレスポンスＰＤＵで戻され、コマンドが完了する。
【００８１】
図６は、複数の実施形態に従って、転送メカニズムが、ゲット及びセットアーキテクチャに基づいて複数のＣＣＳコマンドを実行することを可能にする方法６００の処理フロー図である。ブロック６０２では、コマンドの属性識別（ＩＤ）が抽出される。
【００８２】
ブロック６０４では、画像デバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいて、ゲットプロトコルデータユニット（ＰＤＵ）が、ホストデバイスから画像デバイスに対して送信される。ゲットＰＤＵは、ＣＳＩ−３属性パケット内にカプセル化されてよく、その後、画像デバイスに対して送信される。複数の実施形態において、ゲットＰＤＵがホストデバイスから画像デバイスに対して送信される場合、画像デバイスのセンサは、コマンドを実行してよい。さらに、複数の実施形態において、ゲットＰＤＵがブロックされることなく、ホストデバイスから画像デバイスに対して送信される場合、画像デバイスのセンサは、コマンドを実行する。ブロックは、センサがビジーである場合に、コマンドの遅延された実行について言及する。例えば、いくつかのコマンドは、完了するのに多くの時間がかかる場合があり、カメラは、その実行の間、複数の処理コマンドを利用できなくなりうる。しかしながら、カメラモジュールは、ゲットＰＤＵが受信された順番に、レスポンスＰＤＵを返さなければならない。カメラは、ＣＰＣ  Ｃポートにより提供されるＬ４フロー制御を使用して、ホストを引き留めておき、コマンドバッファがオーバーフローするのを防いでもよい。
【００８３】
例えば、複数のコマンドのＳｅｔ＿の変数は、実行し、かつ、ブロックを生じるのに長い時間がかかる場合がある。これらのコマンドは、レスポンスを返さない。よって、ホストは、ゲットコマンドステータス（Ｇｅｔ＿ＣｏｍｍａｎｄＳｔａｔｕｓ（））コマンドを使用して、長いコマンドの実行がいつ終わるのかを判定してよい。ゲットコマンドステータス（Ｇｅｔ＿ＣｏｍｍａｎｄＳｔａｔｕｓ（））コマンドは、コマンド実行がすでに完了しているとき及びセンサが準備できているときを判定するために、コマンドに対するレスポンスがホストによって使用できるようにするべく、常に、ブロックされることなく、センサによって動作可能であることが推奨される。
【００８４】
ブロック６０６では、レスポンスＰＤＵが、画像デバイスからホストデバイスに対して送信されて、コマンドの実行を完了してよい。レスポンスＰＤＵは、画像デバイス内の画像ソースから取得された複数の属性値を含んでよい。
【００８５】
複数の実施形態において、ＣＳＩ−３通知ＰＤＵは、画像デバイスからホストデバイスに対して送信されてよい。通知ＰＤＵは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、ホストデバイスからセットＰＤＵが送信されたとき、セットＰＤＵは、コマンドからの属性識別に基づいて、複数の属性値を画像デバイスに書き込んでよい。
【００８６】
カメラサブシステムはまた、ホストのハードウェア及びソフトウェア処理が、カメラの詳細を識別し、カメラに固有のキャリブレーション及びチューニング情報を取得し、かつ、ファームウェア又は他のコード記憶領域を管理することを可能にするメタデータサブシステムを含む。そして、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含む。多数の実装において、様々なメタデータ要素が、モジュールそれ自身の不揮発性記憶装置、ホストのファームウェア、及びホストのＯＳプライマリストレージを含む様々なシステムデータ記憶領域に格納される。複数の実施形態において、データはまた、様々なコード記憶領域に格納されてよい。さらに、複数の実施形態において、複数のコード記憶領域及びデータ記憶領域は同一である。これら様々な記憶領域の位置は、様々なシステムストレージの制約又はコストのトレードオフが、望ましい位置を変更し得るように、システムによって異なってよい。メタデータを管理する位置でのハイレベルソフトウェアのジョブを簡略化するために、ＣＣＳは、メタデータストレージ及び取得を管理するために使用されることができる選択的なコマンドのセットを提供する。カメラが、モジュール上の不揮発性記憶装置を管理するためのこれらのコマンドのネイティブなバージョンを実行する一方、変換されたコマンドは、さらに、他のシステム記憶領域へのアクセスを潜在的に提供してよい。
【００８７】
図７は、複数の実施形態に従って、センサ及びモジュール固有メタデータを格納し、かつ、取得可能なメタデータストレージサブシステム７００のブロック図である。複数の実施形態において、メタデータストレージシステムは、ＣＳＩ−３のためのデータブロックストレージである。カメラメタデータは、複数のブロブによって整理され、それぞれが個別に管理可能であってよい。ブロブはデータの一部である。ブロブの複数の例は、ＣＣＳをサポートするコード、センサファームウェア、及びキャリブレーション情報を含む。そして、上述の変換コードは、ブロブである。これらブロブは、システムの至るところに格納可能であり、ＣＣＳ変換コードが、各ブロブに対してアクセスを有する限り、ＣＣＳ変換コードは、これら様々なメタデータ記憶領域をソフトウェアに対する１つの協調的な観点にまとめることができる。
【００８８】
ホストソフトウェア７０２は、メタデータディレクトリを読み込むことによって利用可能な複数のブロブを識別する。メタデータストレージコマンド７０４は、メタデータディレクトリへのアクセスを提供する。ホストソフトウェア７０２は、メタデータディレクトリを読み込んで、存在するブロブのタイプと、開始アドレス及び長さと、アクセス属性とを判定する。複数のブロブは、カメラストレージ７０６、プラットフォームファームウェア７０８、若しくはプラットフォームプライマリストレージ７１２、又はそれらの組み合わせの幾つかの上に存在してよい。
【００８９】
具体的には、メタデータディレクトリ（ＭｅｔａｄａｔａＤｉｒｅｃｔｏｒｙ（））コマンドが、ディレクトリへのアクセスを提供する。情報メタデータ（Ｉｎｆｏ＿ＭｅｔａｄａｔａＤｉｒｅｃｔｏｒｙ（））コマンド変数は、ディレクトリのサイズを返し、そして、ゲットメタデータディレクトリ（Ｇｅｔ＿ＭｅｔａｄａｔａＤｉｒｅｃｔｏｒｙ（））コマンド変数を利用してフェッチされることが可能である。
【００９０】
個々のブロブをフェッチするために、２ステップ処理が、ホストによって使用される。第１に、転送の開始アドレスを示すためにセットメタデータ（Ｓｅｔ＿Ｍｅｔａｄａｔａ（））コマンドが使用され、次に、ゲットメタデータ（Ｇｅｔ＿Ｍｅｔａｄａｔａ（））コマンドが、メタデータブロブのセグメントを転送する。個々のＣＳＩ−３ＰＤＵが一度に４０９６バイトまでの転送に制限されるので、複数のＳｅｔ＿／Ｇｅｔ＿シーケンスが、４ＫＢ制限より長いメタデータブロブをフェッチするのに必要であるかもしれない。
【００９１】
ブロブの開始アドレスは、ＣＳＩ−３属性マッピングにフィットする４の倍数以外の任意の特定のパターンに従う必要はない。取り付けられたＥＥＰＲＯＭを使用してメタデータストレージコマンドをネイティブに実装するカメラが、ストレージデバイス内のリテラルアドレスを表すアドレスを使用する間、変換されたメタデータコマンドは、メタデータブロブが取得されるべきデータ記憶領域を表す最大バイトを使用してよい。
【００９２】
図８は、複数の実施形態に従って、メタデータストレージサブシステムを可能にする方法８００の処理フロー図である。ブロック８０２では、利用可能なメタデータのディレクトリが生成される。ここで、メタデータは、様々なシステムデータ記憶装置に格納される。複数の実施形態において、メタデータはカメラコマンドセット（ＣＣＳ）変換コードブロックであり、ホストデバイスは、ＣＣＳ変換コードブロックをロードしかつ初期化する。ブロック８０４では、メタデータが、ホストデバイスによる要求を受けて、取得される。上述のように、メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む。複数の実施形態において、開始アドレスは、ＣＳＩ−３属性マッピングに対応する。さらに、ホストデバイスは、ディレクトリを読み込み、画像デバイス上にあるメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定する。ブロック８０６では、メタデータが、ホストデバイスに対して転送される。ブロック８０８では、メタデータが実行される。
【００９３】
図４−６及び８の処理フロー図は、方法４００、５００、６００又は８００の複数のステップが、特定の順番で実行されること、又は、方法４００、５００、６００又は８００の全てのステップが全てのケースにおいて含まれるべきであることを示すことを意図していない。さらに、固有のアプリケーションに応じて、方法４００、５００、６００若しくは８００、又はそれらの組み合わせ内に、任意の数の追加のステップが含まれてもよい。
【００９４】
図９は、複数の実施形態に従って、複数のカメラコマンドを変換するためのコードを格納する、有形の非一時的コンピュータ可読媒体９００を示すブロック図である。有形の非一時的機械可読媒体は、例えばコンピュータのような機械によって読み出し可能な形態の情報を格納する又は送信するための任意のメカニズムを含んでよい。例えば、機械可読媒体は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体及びフラッシュメモリデバイスを含んでよい。有形の非一時的コンピュータ可読媒体９００は、コンピュータバス９０４を介してプロセッサ９０２によってアクセスされてよい。さらに、有形の非一時的コンピュータ可読媒体９００は、本明細書中に記載の複数の方法をプロセッサ９０２に実行させるように構成されたコードを含んでよい。
【００９５】
本明細書中に記載された様々なソフトウェアコンポーネントが、図９に示すように、有形の非一時的コンピュータ可読媒体９００に格納されてよい。ストレージモジュール９０６は、コード記憶領域から変換コードを受信して、変換エンジンを構成するべく構成されてよい。さらに、変換モジュール９０８は、変換エンジンを使用して画像デバイスコマンドを変換するように構成されてよい。転送モジュール９１０は、変換された画像デバイスコマンドによって要求される動作を生じさせるために、変換された画像デバイスコマンドを画像デバイスに対して転送してよい。
【００９６】
図９のブロック図は、有形の非一時的コンピュータ可読媒体９００が、図９に表される全てのコンポーネントを含むべきことを示すことを意図しない。さらに、有形の非一時的コンピュータ可読媒体９００は、特定の複数の実施態様の詳細に応じて、図９に示されていない任意の数の追加のコンポーネントを含んでよい。
【００９７】
図１０は、複数の実施形態に従って、複数のカメラコマンドを変換するための例となるシステム１０００のブロック図である。図１に関して記載したように、同様の番号の項目がある。いくつかの実施形態では、システム１０００は、メディアシステムである。加えて、システム１０００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、又は、スマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、又は同種のものに組み込まれてよい。
【００９８】
様々な実施形態において、システム１０００は、ディスプレイ１００４に連結されたプラットフォーム１００２を有する。プラットフォーム１００２は、１又は複数のコンテンツサービスデバイス１００６又は１又は複数のコンテンツ配信デバイス１００８、又は、他の同様のコンテンツソースのようなコンテンツデバイスからコンテンツを受信してよい。１又は複数のナビゲーション機能を含むナビゲーションコントローラ１０１０は、例えば、プラットフォーム１００２及び／又はディスプレイ１００４と情報をやりとりするために使用されてよい。これらのコンポーネントの各々は、より詳細に後述される。
【００９９】
プラットフォーム１００２は、チップセット１０１２、中央処理ユニット（ＣＰＵ）１０２、メモリデバイス１０４、ストレージデバイス１２８、グラフィクスサブシステム１０１４、複数のアプリケーション１３０、及び無線部１０１６の任意の組み合わせを含んでよい。チップセット１０１２は、ＣＰＵ１０２と、メモリデバイス１０４と、ストレージデバイス１２８と、グラフィクスサブシステム１０１４と、複数のアプリケーション１３０と、無線部１０１６との間の相互通信を提供してよい。例えば、チップセット１０１２は、ストレージデバイス１２８との相互通信を提供可能なストレージアダプタ（不図示）を含んでよい。
【０１００】
プロセッサ１０２は、複数命令セットコンピュータ（ＣＩＳＣ）若しくは縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、又は、他のマイクロプロセッサ若しくは中央処理ユニット（ＣＰＵ）として実装されてよい。いくつかの実施形態では、プロセッサ１０２は、１若しくは複数のデュアルコアプロセッサ、１若しくは複数のデュアルモバイルプロセッサ、又は同種のものを含む。
【０１０１】
メモリデバイス１０４は、限定されるわけではないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、又はスタティックＲＡＭ（ＳＲＡＭ）のような揮発性メモリデバイスとして実装されてよい。ストレージデバイス１２８は、限定されるわけではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、接続されたストレージデバイス、フラッシュメモリ、バッテリバックアップＳＤＲＡＭ（シンクロナスＤＲＡＭ）、及び／又はネットワークアクセス可能ストレージデバイスのような不揮発性記憶デバイスとして実装されてよい。いくつかの実施形態では、ストレージデバイス１２８は、例えば、複数のハードドライブが含まれる場合、重要なデジタルメディアのためのプロテクションが拡張されたストレージ性能を向上させるための技術を含む。
【０１０２】
グラフィクスサブシステム１０１４は、表示用の静止画又はビデオのような複数の画像の処理を実行してよい。グラフィクスサブシステム１０１４は、例えばＧＰＵ１０８又はビジュアルプロセッシングユニット（ＶＰＵ）のようなグラフィックス処理ユニット（ＧＰＵ）を含んでよい。アナログ又はデジタルのインタフェースが、グラフィクスサブシステム１０１４とディスプレイ１００４とを通信可能に連結するために使用されてよい。例えば、インタフェースは、Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ、Ｄｉｓｐｌａｙ  Ｐｏｒｔ、無線ＨＤＭＩ（登録商標）、及び／又は無線ＨＤ準拠技術のうちいずれかであり得る。グラフィクスサブシステム１０１４は、プロセッサ又はチップセット１０１２内に統合されてよい。代わりに、グラフィクスサブシステム１０１４は、チップセット１０１２に通信可能に連結されたスタンドアロンカードであってよい。
【０１０３】
本明細書において記載されるグラフィクス及び／又はビデオ処理技術は、種々のハードウェアアーキテクチャにより実現することができる。例えば、グラフィクス及び／又はビデオ機能が、チップセット１０１２内に統合されてよい。あるいは、別個のグラフィクス及び／又はビデオプロセッサを使用してもよい。さらに別の実施形態として、複数のグラフィクス及び／又はビデオ機能は、汎用プロセッサ（マルチコアプロセッサを含む）によって実施されてもよい。さらなる実施形態において、複数の上記機能は家電機器のかたちで実装されてもよい。
【０１０４】
無線部１０１６は、様々な適切な無線通信技術を使用して信号を送信及び受信可能な１又は複数の無線機を含んでよい。そのような技術は、１又は複数の無線ネットワークをまたがる通信を包含するものであってもよい。例となる無線ネットワークは、無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、衛星ネットワーク、又は同種のものを含む。そのようなネットワークを通じた通信において、無線部１０１６は、任意のバージョンの、１又は複数の適用規格に従って、動作してよい。
【０１０５】
ディスプレイ１００４は、任意のテレビタイプモニタ又はディスプレイを含んでよい。例えば、ディスプレイ１００４は、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ、又は同種のものを含んでよい。ディスプレイ１００４は、デジタル及び／又はアナログであってよい。いくつかの実施形態では、ディスプレイ１００４は、ホログラフィックディスプレイである。また、ディスプレイ１００４は、視覚投影を受信し得る透明な表面であってよい。そのような投影は、様々な形態の情報、画像、オブジェクト又は同種のものを伝達してよい。例えば、複数のそのような投影は、移動拡張現実（ＭＡＲ）アプリケーションの視覚的オーバレイであってもよい。１又は複数のアプリケーション１３０の制御下において、プラットフォーム１００２は、ディスプレイ１００４上にユーザインターフェース１０１８を表示してよい。
【０１０６】
１又は複数のコンテンツサービスデバイス１００６は、国の、国際の、又は独立のサービスによって主催されてよく、それ故に、例えば、インターネットを介してプラットフォーム１００２に対してアクセス可能であってよい。１又は複数のコンテンツサービスデバイス１００６は、プラットフォーム１００２及び／又はディスプレイ１００４に連結されてよい。プラットフォーム１００２及び／又は１又は複数のコンテンツサービスデバイス１００６は、ネットワーク１３４から及びに対してメディア情報を通信（例えば、送信及び／又は受信）するべく、ネットワーク１３４に連結されてよい。１又は複数のコンテンツ配信デバイス１００８はまた、プラットフォーム１００２及び／又はディスプレイ１００４に連結されてよい。
【０１０７】
１又は複数のコンテンツサービスデバイス１００６は、デジタル情報を伝達できる、インターネット可能なデバイス、電話、ネットワーク、パーソナルコンピュータ、又はケーブルテレビボックスを含んでよい。加えて、１又は複数のコンテンツサービスデバイス１００６は、ネットワーク１３４を介して若しくは直接、コンテンツプロバイダとプラットフォーム１００２若しくはディスプレイ１００４との間で、一定方向に若しくは双方向にコンテンツを通信可能な他の同様のデバイスを含んでよい。当然のことながら、コンテンツは、ネットワーク１３４を介して、システム１０００及びコンテンツプロバイダ内の複数のコンポーネントのうちのいずれか一つから及びに対して一定方向に及び／又は双方向に通信されてよい。コンテンツの複数の例として、例えば、ビデオ、音楽、医療、ゲーム情報、及びその他を含む任意のメディア情報を挙げることが可能である。
【０１０８】
１又は複数のコンテンツサービスデバイス１００６は、メディア情報、デジタル情報又は他のコンテンツを含むケーブルテレビプログラムのようなコンテンツを受信してよい。コンテンツプロバイダの複数の例は、とりわけ、任意のケーブル若しくは衛星テレビ、又は、無線若しくはインターネットコンテンツプロバイダを含んでよい。
【０１０９】
いくつかの実施形態では、プラットフォーム１００２は、１又は複数ナビゲーション機能を含む、制御信号をナビゲーションコントローラ１０１０から受信する。ナビゲーションコントローラ１０１０のナビゲーション機能は、例えば、ユーザインターフェース１０１８と情報をやりとりするために使用されてよい。ナビゲーションコントローラ１０１０は、ユーザが、空間（例えば、連続的かつ多次元の）データをコンピュータに入力できるようにするコンピュータハードウェアコンポーネント（具体的にはヒューマンインタフェースデバイス）であり得るポインティングデバイスであってよい。グラフィカルユーザインタフェース（ＧＵＩ）、ならびにテレビ及びモニタなどの多くのシステムは、コンピュータ又はテレビジョンの制御及びそれへのデータの提供を、ユーザが複数の身体的ジェスチャを用いてできるようにする。身体的ジェスチャは、限定されないが、表情、顔の動き、様々な肢の動き、身体の動き、ボディランゲージ又はそれらの組み合わせを含む。そのような複数の身体的ジェスチャは、複数のコマンド又は命令として認識されることができ、又は変換されることができる。
【０１１０】
ナビゲーションコントローラ１０１０のナビゲーション機能の動きは、ディスプレイ１００４上に表示されるポインタ、カーソル、フォーカスリング、又は他の視覚的なインジケータの動きによって、ディスプレイ１００４上に繰り返される。例えば、アプリケーション１３０の制御下において、ナビゲーションコントローラ１０１０に位置するナビゲーション機能は、ユーザインターフェース１０１８上に表示された視覚的なナビゲーション機能に対してマッピングされる。いくつかの実施形態では、ナビゲーションコントローラ１０１０は、個別のコンポーネントではなくてよいが、しかしむしろ、プラットフォーム１００２及び／又はディスプレイ１００４内に統合されてよい。
【０１１１】
システム１０００は、例えば、有効になったとき、最初の起動後に、ユーザがボタンのタッチによってプラットフォーム１００２を即座にオンにしたりオフにしたりすることを可能にする技術を含む複数のドライバ（不図示）を含んでよい。プログラムロジックは、プラットフォームがオフになった場合に、プラットフォーム１００２がメディアアダプタ若しくは他の１若しくは複数のコンテンツサービスデバイス１００６又は１若しくは複数のコンテンツ配信デバイス１００８にコンテンツをストリームすることを許可してよい。加えて、チップセット１０１２は、例えば、１０．１サラウンドサウンドオーディオ及び／又は高品位７．１サラウンドサウンドオーディオのためのハードウェア及び／又はソフトウェアサポートを含んでよい。複数のドライバは、統合されたグラフィックプラットフォームのためのグラフィクスドライバを含んでよい。いくつかの実施形態では、グラフィクスドライバは、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）グラフィックカードを含んでよい。
【０１１２】
様々な実施形態において、システム１０００内の示された１又は複数のコンポーネントのいくつかは、統合されてよい。例えば、プラットフォーム１００２及び１又は複数のコンテンツサービスデバイス１００６が統合されてよく、プラットフォーム１００２及び１又は複数のコンテンツ配信デバイス１００８が統合されてよく、又は、プラットフォーム１００２、１又は複数のコンテンツサービスデバイス１００６及び１又は複数のコンテンツ配信デバイス１００８が統合されてよい。いくつかの実施形態では、プラットフォーム１００２及びディスプレイ１００４は、統合ユニットである。例えば、ディスプレイ１００４及び１又は複数のコンテンツサービスデバイス１００６が統合されてよく、又は、ディスプレイ１００４及び１又は複数のコンテンツ配信デバイス１００８が統合されてよい。
【０１１３】
システム１０００は、無線システム又は有線システムとして実装されてよい。無線システムとして実装された場合、システム１０００は、１又は複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジックなどのような、無線共有メディアで通信するために適した複数のコンポーネント及びインタフェースを含んでよい。無線共有メディアの一例は、ＲＦスペクトルのような、無線スペクトルの一部を含んでよい。有線システムとして実装された場合、システム１０００は、複数の入出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体に接続する複数の物理コネクタ、ネットワークインタフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ、又は同種のもののような、有線通信媒体で通信するために適した複数のコンポーネント及びインタフェースを含んでよい。有線通信媒体の例は、ワイヤ、ケーブル、複数の導線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体物質、ツイストペア線、同軸ケーブル、ファイバー光学、又は同種のものを含んでよい。
【０１１４】
プラットフォーム１００２は、情報を通信するべく、１又は複数の論理チャネル又は物理チャネルを確立してよい。情報は、メディア情報及び制御情報を含んでもよい。メディア情報は、ユーザ向けのコンテンツを表している任意のデータを指してもよい。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール（Ｅメール）メッセージ、ボイスメールメッセージ、複数の英数字のシンボル、グラフィクス、画像、ビデオ、テキスト、及び同種のものからのデータを含んでよい。音声会話からのデータは、例えば、音声情報、沈黙時間、背景雑音、快適雑音、トーン、及び同種のものであってよい。制御情報は、自動化システム向けの、複数のコマンド、複数の命令、又は複数の制御ワードを意味している任意のデータを指してもよい。例えば、制御情報は、システムを介してメディア情報をルーティングするために、又は、所定のやり方でメディア情報を処理するようにノードに指示するために、用いられてもよい。しかしながら、複数の実施形態は、図１０に示され又は記載された複数の要素又はコンテンツに限定されない。
【０１１５】
図１１は、複数の実施形態に従って、図１０のシステム１０００が具体化されうる小型フォームファクタデバイス１１００の図である。図１０に関して記載したように、同様の番号の項目がある。いくつかの実施形態では、例えば、デバイス１１００は、無線機能を有するモバイルコンピューティングデバイスとして実装される。例えば、モバイルコンピューティングデバイスはプロセッシングシステムと移動式の電源又は電力供給装置（１又は複数のバッテリのような）とを有する任意のデバイスを指してもよい。
【０１１６】
上述のように、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ（ＰＣ），ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、又はスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、データ通信デバイス、及び同種のものを含んでよい。
【０１１７】
モバイルコンピューティングデバイスの一例はまた、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、メガネ型コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣類コンピュータ、又は、他の適切なタイプのウェアラブルコンピュータのような、人間によって着用されるようにアレンジされたコンピュータを含んでよい。例えば、モバイルコンピューティングデバイスは、音声通信及び／又はデータ通信はもちろん、複数のコンピュータアプリケーションを実行可能なスマートフォンとして実装されてよい。いくつかの実施形態が、例として、スマートフォンとして実装される複数のモバイルコンピューティングデバイスにより説明されているのもかかわらず、他の実施形態が同様に複数の他の無線モバイルコンピューティングデバイスを使用して実装されてもよいと正しく理解されると思われる。
【０１１８】
図１１に示すように、デバイス１１００は、筐体１１０２、ディスプレイ１１０４、入出力（Ｉ／Ｏ）デバイス１１０６、及びアンテナ１１０８を含んでよい。デバイス１１００はまた、ナビゲーション機能１１１０を含んでよい。ディスプレイ１１０４は、モバイルコンピューティングデバイスに適した情報を表示するための任意の適切なディスプレイユニットを含んでよい。Ｉ／Ｏデバイス１１０６は、モバイルコンピューティングデバイスに情報を入力するための適切なＩ／Ｏデバイスを含んでよい。例えば、Ｉ／Ｏデバイス１１０６は、英数字キーボード、テンキーパッド、タッチパッド、複数の入力キー、複数のボタン、複数のスイッチ、複数のロッカースイッチ、複数のマイク、複数のスピーカ、音声認識デバイス及びソフトウェア、又は同種のものを含む。情報はまた、マイク経由でデバイス１１００に入力されてよい。そのような情報は、音声認識デバイスでデジタル化されてもよい。その上、デバイス１１００はまた、１又は複数のカメラを含んでよい。複数のカメラは、Ｍｏｂｉｌｅ  Ｉｎｄｕｓｔｒｙ Ｐｒｏｃｅｓｓｏｒ  Ｉｎｔｅｒｆａｃｅ（ＭＩＰＩ）アライアンスによって発展された規格に従って、デバイスのプロセッサとインタフェースしてよい。
【０１１９】
［例１］
ここに、複数の画像デバイスコマンドを変換するための装置が記載される。装置は、コード記憶領域から変換コードを取得して、変換エンジンを構成するロジックと、変換エンジンで複数の画像デバイスコマンドを受信するロジックとを含む。装置はまた、変換エンジンを使用して複数の画像デバイスコマンドを変換するロジックと、変換された複数の画像デバイスコマンドを画像デバイスに転送して、変換された画像デバイスコマンドにより要求される動作を引き起こさせるロジックとを含む。
【０１２０】
装置はさらに、受信された複数のコマンドが、画像デバイスによってネイティブにサポートされているか否かを判定するロジックを含んでよい。変換コードは、複数の画像デバイスコマンドを変換するために実行されてよい。コード記憶領域は、画像デバイス内に位置してよく、又は、コード記憶領域は、ホストデバイスに連結されたプラットフォームストレージ内に位置してよい。変換エンジンは、画像デバイスからリモートに位置してよい。その上、変換エンジンは、インターポーザデバイス上に位置してよく、かつ、コード記憶領域は、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに位置してよい。変換エンジンは、複数の画像デバイスコマンドを、複数のＣＳＩ−３属性ゲット／セットコマンドに変換してよい。
【０１２１】
さらに、変換エンジンは、複数の画像デバイスコマンドを、複数のＣＳＩ−２レジスタ読出／書込コマンドに変換してよい。変換エンジンはまた、画像デバイスによってネイティブにサポートされていない複数のコマンドを変換してよい。
【０１２２】
［例２］
ここに、複数の画像デバイスコマンドを変換するためのシステムが記載される。システムは、ホストデバイス、ホストデバイスに連結された画像デバイス、及び変換エンジンを含み、変換エンジンは、コード記憶領域から取得されたコードを使用して生成され、変換エンジンは、複数の画像デバイスコマンドを複数の画像デバイス固有コマンドに変換するように構成される。
【０１２３】
ホストデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス若しくはサーバ、又はそれらの組み合わせであってよい。さらに、画像デバイス内の組み込みプロセッサ又はシーケンサは、複数の画像デバイスコマンドを変換するために使用されてよい。コード記憶領域は、ホストデバイス内に位置してよい。さらに、コード記憶領域は、画像デバイス内に位置してよい。コード記憶領域はまた、ホストデバイスに連結されたプラットフォームストレージデバイス内に位置してよい。変換エンジンは、画像デバイスからリモートに位置してよい。変換エンジンはまた、複数の画像デバイスコマンドを複数のＣＳＩ−３属性ゲット／セットコマンドに変換してよい。変換エンジンは、変換された複数のコマンドを画像デバイスに対して送信して、変換された画像デバイスコマンドによって要求される動作を引き起こさせるように構成されてよい。さらに、変換エンジンは、画像デバイスによってネイティブにサポートされていない複数のコマンドを変換するように構成されてよい。変換コードは、ランタイム解釈言語サンドボックス内で実行されてよい。変換エンジンはまた、ホストデバイス上に位置してよい。
【０１２４】
［例３］
ここに、複数の画像デバイスコマンドを変換するための複数のコンピュータ実行可能命令を有する有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コンピュータに、コード記憶領域から変換コードを取得させて変換エンジンを構成させ、複数の入力画像デバイスコマンドを受信させる。複数の命令はまた、コンピュータに、複数の入力画像デバイスコマンドを複数の画像デバイス固有コマンドに変換させ、複数の画像デバイス固有コマンドをコンピュータに連結された画像デバイスに送信させてよい。ここで、複数の入力画像デバイスコマンドは、変換手段によって変換される。変換手段は変換エンジンであってよく、かつ、変換手段は、画像デバイスからリモートに位置してよい。
【０１２５】
［例４］
ここに、ゲット及びセットアーキテクチャに基づいて転送メカニズム内のコマンドを実行する装置が記載される。装置は、コマンドの属性識別を抽出するロジックと、画像デバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいてホストデバイスから画像デバイスに対してゲットプロトコルデータユニット（ＰＤＵ）を送信するロジックとを含む。装置はまた、画像デバイスからホストデバイスに対してレスポンスＰＤＵを送信して、コマンドの実行を完了するロジックを含む。
【０１２６】
画像デバイスのセンサは、ゲットＰＤＵがホストデバイスから画像デバイスに対して送信される場合、コマンドを実行してよい。さらに、画像デバイスのセンサは、ゲットＰＤＵがブロックされることなく、ホストデバイスから画像デバイスに対して送信される場合、コマンドを実行してよい。ゲットＰＤＵは、ＣＳＩ−３属性パケットにカプセル化されてよく、その後、画像デバイスに対して送信されてよい。さらに、レスポンスＰＤＵは、画像デバイス内の画像ソースから取得される複数の属性値を含んでよい。画像ソースは、画像センサ、システムオンチップ（ＳＯＣ）画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサ（ＩＳＰ）であってよい。装置はまた、画像デバイスからホストデバイスに対して通知ＰＤＵを送信するロジックを含んでよい。ここで、通知ＰＤＵは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、装置は、ホストデバイスからのセットＰＤＵを送信するロジックを含む。ここで、セットＰＤＵは、コマンドからの属性識別に基づいて複数の属性値を画像デバイスに書き込む。
【０１２７】
［例５］
ここに、ゲット及びセットアーキテクチャに基づいて転送メカニズム内のコマンドを実行するシステムが記載される。システムは、ホストデバイス及びホストデバイスに連結された画像デバイスを含む。ここで、ゲットプロトコルデータユニット（ＰＤＵ）は、ホストデバイスから画像デバイスに対して送信され、ゲットＰＤＵは、画像デバイスの画像ソースからの複数の属性値のための要求を含む。ここで、レスポンスＰＤＵは、画像デバイスからホストデバイスに対して送信され、コマンドの実行を完了させる。
【０１２８】
ホストデバイスのセンサは、ホストデバイスから画像デバイスに対してゲットＰＤＵが送信される場合、コマンドを実行してよい。画像デバイスのセンサはまた、ゲットＰＤＵが、ブロックされることなくホストデバイスから画像デバイスに対して送信される場合、コマンドを実行してよい。画像ソースは、ＲＡＷ画像デバイスセンサ、チップ画像デバイス内のシステム、マルチチップ画像デバイスモジュール又は画像信号プロセッサであってよい。通知ＰＤＵは、画像デバイスからホストデバイスに対して送信されてよい。ここで、通知ＰＤＵは、コマンドからの属性識別に基づく複数の属性値を含まない。セットＰＤＵは、画像デバイスからホストデバイスに対して送信されてよい。ここで、セットＰＤＵは、コマンドからの属性識別に基づいて、複数の属性値を画像デバイスから読み出す又は書き込む。
【０１２９】
［例６］
ここに、ゲット及びセットアーキテクチャに基づいて転送メカニズム内のコマンドを実行するための複数のコンピュータ実行可能命令を含む有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コマンドの属性識別を抽出することと、画像デバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいてホストデバイスから画像デバイスに対してゲットプロトコルデータユニット（ＰＤＵ）を送信することとを、コンピュータに実行させる。複数の命令はまた、コンピュータに、画像デバイスからホストデバイスに対してレスポンスＰＤＵを送信させて、コマンドの実行を完了させる。
【０１３０】
ゲットＰＤＵは、ＣＳＩ−３属性パケット内にカプセル化されてよく、その後、画像デバイスに対して送信されてよい。レスポンスＰＤＵは、画像デバイス内の画像ソースから取得された複数の属性値を含んでよい。画像ソースは、ＲＡＷ画像デバイスセンサ、チップ画像デバイス内のシステム、マルチチップ画像デバイスモジュール又は画像信号プロセッサであってよい。さらに、通知ＰＤＵは、画像デバイスからホストデバイスに対して送信されてよい。ここで、通知ＰＤＵは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、セットＰＤＵが、画像デバイスからホストデバイスに対して送信されてよい。ここで、セットＰＤＵは、コマンドからの属性識別に基づいて、複数の属性値を画像デバイスに書き込む。
【０１３１】
［例７］
ここに、メタデータストレージサブシステムを有効にする装置が記載される。装置は、利用可能なメタデータのディレクトリを生成するロジックと、ホストデバイスによる要求に応じてメタデータを取得するロジックとを含む。ここで、メタデータは、様々なシステムのデータ記憶領域に格納される。装置はまた、ホストデバイスに対してメタデータを転送するロジックと、メタデータを実行するロジックとを含む。
【０１３２】
メタデータを取得するロジックはまた、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。ホストデバイスは、ディレクトリを読み込み、画像デバイス上にあるメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定してよい。メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含んでよい。さらに、メタデータを取得するロジックは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、ＣＳＩ−３属性マッピングに対応する。さらに、メタデータは、カメラコマンドセット（ＣＣＳ）変換コードブロックであってよく、かつ、ホストデバイスは、ＣＣＳ変換コードブロックをロードし、かつ、初期化する。
【０１３３】
［例８］
ここに、メタデータストレージサブシステムを有効にするシステムが記載される。システムは、ホストデバイスと、ホストデバイスに連結された画像デバイスと、メタデータサブシステムとを含む。メタデータサブシステム内の利用可能なメタデータのディレクトリが生成され、メタデータは、ホストデバイスによる要求を受けて取得される。メタデータはまた、ホストデバイスを使用して転送され、かつ、実行される。
【０１３４】
メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。ホストデバイスは、ディレクトリを読み込み、画像デバイスに格納されたメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定してよい。さらに、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含んでよい。メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、ＣＳＩ−３属性マッピングに対応する。メタデータは、コマンド画像デバイスセット（ＣＣＳ）変換コードブロックであってよく、ホストデバイスは、ＣＣＳ変換コードブロックをロードし、かつ、初期化する。
【０１３５】
［例９］
ここに、メタデータストレージサブシステムを有効にするための複数のコンピュータ実行可能命令を含む有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コンピュータに、利用可能なメタデータのディレクトリを生成させる。ここで、メタデータは、様々なシステムのデータ記憶領域に格納されている。複数の命令はまた、コンピュータに、ホストデバイスの要求に応じてメタデータを取得させ、メタデータをホストデバイスに転送させ、メタデータを実行させる。
【０１３６】
メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。ホストデバイスは、ディレクトリを読み込み、画像デバイス上にあるメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定する。さらに、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含んでよい。メタデータを取得することはまた、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、ＣＳＩ−３属性マッピングに対応する。さらに、メタデータは、コマンド画像デバイスセット（ＣＣＳ）変換コードブロックであってよく、ホストデバイスは、ＣＣＳ変換コードブロックをロードし、かつ、初期化する。
【０１３７】
［例１０］
ここに、１又は複数の画像デバイスコマンドを変換する方法が記載される。方法は、変換コードを取得することと、１又は複数画像デバイスコマンドを受信することとを含む。方法はまた、１又は複数の画像デバイスコマンドを画像デバイスがハンドリング可能な１又は複数のアクセスに変換する変換コードを実行することと、１又は複数の画像デバイスコマンドによって要求される動作を引き起こさせるべく１又は複数のアクセスを画像デバイスに対して送信することとを含む。
【０１３８】
画像デバイスはカメラを含んでよく、１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを含んでよい。さらに、方法は、ホストデバイスに実装されてよい。さらに、方法は、ホストソフトウェアに実装されてよい。変換コードは、ハイレベル変換コードであってよい。変換コードはまた、画像デバイス内に位置するストレージから取得されてよい。画像デバイス内に位置するストレージは、メタデータストレージであってよい。変換コードは、画像デバイスの外部にあるストレージから取得されてよい。さらに、画像デバイスの外部にあるストレージは、プラットフォームストレージであってよい。また、画像デバイスの外部にあるストレージは、メタデータストレージであってよい。
【０１３９】
画像デバイスがハンドリング可能な１又は複数のアクセスは、複数のＣＳＩ−３属性ゲット／セットパケットを含んでよい。さらに、より複雑なコマンドが、より簡素なコマンドに変換されてよい。より複雑なコマンドはまた、ＣＳＩ−３属性のゲット／セット要求に変換されてよい。方法はまた、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定することを含んでよい。変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納されてよい。１又は複数の画像デバイスコマンドは、ＣＳＩ−３属性ゲット／セットコマンドに変換されてよい。さらに、１又は複数の画像デバイスコマンドは、ＣＳＩ−２レジスタ読出／書込コマンドに変換されてよい。１又は複数の変換された画像デバイスコマンドはまた、画像デバイスによってネイティブにサポートされない複数のコマンドであってよい。
【０１４０】
［例１１］
ここに、１又は複数の画像デバイスコマンドを変換する装置が記載される。装置は、変換コードを取得し、１又は複数の画像デバイスコマンドを受信し、変換コードを実行して、１又は複数の画像デバイスコマンドを画像デバイスがハンドリング可能な１又は複数のアクセスに変換し、１又は複数のアクセスを画像デバイスに送信して、１又は複数の画像デバイスコマンドによって要求される動作を引き起こさせる、変換エンジンを含む。
【０１４１】
画像デバイスはカメラを含んでよく、１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを含む。変換エンジンは、ホストデバイスに含まれてよい。さらに、変換エンジンは、ホストソフトウェアを含んでよい。変換コードは、ハイレベル変換コードであってよい。さらに、変換エンジンは、画像デバイス内に位置するストレージから変換コードを取得してよい。画像デバイス内に位置するストレージは、メタデータストレージであってよい。さらに、変換エンジンは、画像デバイスの外部にあるストレージから変換コードを取得する。画像デバイスの外部にあるストレージは、プラットフォームストレージである。また、画像デバイスの外部にあるストレージは、メタデータストレージである。
【０１４２】
画像デバイスがハンドリング可能な１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを含んでよい。その上、変換エンジンは、より複雑なコマンドを、より簡素なコマンドに変換してよい。変換エンジンはまた、より複雑なコマンドをＣＳＩ−３属性のゲット／セット要求に変換してよい。変換エンジンは、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定してよい。変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納されてよい。変換エンジンは、１又は複数の画像デバイスコマンドをＣＳＩ−３属性ゲット／セットコマンドに変換してよい。さらに、変換エンジンは、１又は複数の画像デバイスコマンドをＣＳＩ−２レジスタ読出／書込コマンドに変換してよい。さらに、１又は複数の変換された画像デバイスコマンドは、画像デバイスによってネイティブにサポートされていない複数のコマンドであってよい。また、変換エンジンはホストに含まれてよく、装置はさらに、画像デバイスを含む。装置はまた、変換コードを格納するためのストレージデバイスを含んでよい。
【０１４３】
［例１２］
ここに、装置が記載される。装置は、画像デバイスがハンドリング可能な１又は複数のアクセスを受信し、１又は複数の画像デバイスコマンドによって要求される動作を実行する画像デバイスを含む。ここで、１又は複数のアクセスは、１又は複数の画像デバイスコマンドの変換に対応し、変換は、変換コードを使用して実装される。画像デバイスはまたカメラを含んでよく、１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを含む。変換エンジンは、１又は複数の画像デバイスコマンドを１又は複数のアクセスに変換してよい。変換エンジンは、ホストソフトウェアを含んでよい。さらに、変換コードは、ハイレベル変換コードであってよい。変換エンジンは、画像デバイス内に位置するストレージから変換コードを取得してよい。画像デバイスはさらに、変換コードを格納するためのストレージを含んでよい。ストレージは、メタデータストレージであってよい。変換エンジンは、画像デバイスの外部にあるストレージから変換コードを取得してよい。さらに、画像デバイスの外部にあるストレージは、プラットフォームストレージであってよい。さらに、画像デバイスの外部にあるストレージは、メタデータストレージであってよい。
【０１４４】
画像デバイスがハンドリング可能な１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを含んでよい。変換エンジンは、より複雑なコマンドをより簡素なコマンドに変換してよい。さらに、変換エンジンは、より複雑なコマンドをＣＳＩ−３属性のゲット／セット要求に変換してよい。変換エンジンはまた、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定してよい。さらに、変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納される。変換エンジンは、１又は複数の画像デバイスコマンドをＣＳＩ−３属性ゲット／セットコマンドに変換してよい。変換エンジンはまた、１又は複数の画像デバイスコマンドをＣＳＩ−２レジスタ読出／書込コマンドに変換してよい。１又は複数の変換された画像デバイスコマンドは、画像デバイスによってネイティブにサポートされていない複数のコマンドであってよい。さらに、装置は、変換コードを格納するためのストレージデバイスを含んでよい。
【０１４５】
［例１３］
ここに、複数のコンピュータ実行可能命令を含む有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コンピュータに、変換コードを取得させ、かつ、１又は複数の画像デバイスコマンドを受信させる。複数の命令はまた、コンピュータに、変換コードを実行させて、画像デバイスがハンドリング可能な１又は複数にアクセスに、１又は複数の画像デバイスコマンドを変換し、かつ、画像デバイスに対して１又は複数のアクセスを送信させて、１又は複数の画像デバイスコマンドによって要求される動作を引き起こさせる。
【０１４６】
画像デバイスはカメラを含んでよく、１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを含む。さらに、変換コードは、ハイレベル変換コードであってよい。画像デバイスがハンドリング可能な１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを含んでよい。さらに、より複雑なコマンドは、より簡素なコマンドに変換されてよい。その上、より複雑なコマンドは、ＣＳＩ−３属性のゲット／セット要求に変換されてよい。複数の命令はさらに、コンピュータに、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定させてよい。複数の命令はさらに、コンピュータに、１又は複数の画像デバイスコマンドをＣＳＩ−３属性ゲット／セットコマンドに変換させてよい。追加として、複数の命令はさらに、コンピュータに、１又は複数の画像デバイスコマンドをＣＳＩ−２レジスタ読出／書込コマンドに変換させてよい。
【０１４７】
１又は複数の変換された画像デバイスコマンドは、画像デバイスによってネイティブにサポートされていない複数のコマンドであってよい。複数の命令は、コンピュータに、１又は複数の画像デバイスコマンドを、画像デバイスがハンドリング可能な１又は複数のアクセスに変換させてよい。画像デバイスはカメラを含んでよく、１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを含む。さらに、画像デバイスがハンドリング可能な１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを含んでよい。複数の命令はさらに、コンピュータに、より複雑なコマンドをより簡素なコマンドに変換させてよい。複数の命令はまたさらに、コンピュータに、より複雑なコマンドをＣＳＩ−３属性のゲット／セット要求に変換させてよい。その上、複数の命令はさらに、コンピュータに、複数の受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定させてよい。また、複数の命令はさらに、コンピュータに、１又は複数の画像デバイスコマンドをＣＳＩ−３属性ゲット／セットコマンドに変換させてよい。追加として、複数の命令はさらに、コンピュータに、１又は複数の画像デバイスコマンドをＣＳＩ−２レジスタ読出／書込コマンドに変換させてよい。
【０１４８】
［例１４］
ここに、コマンド転送を使用してコマンドを実行する装置が記載される。装置は、属性パケット内にカプセル化されたコマンドのプロトコルデータユニットをカプセル化するコントローラを含むコントローラはまた、カプセル化されたプロトコルデータユニットを画像デバイスに送信してよく、かつ、画像デバイスからのレスポンスプロトコルデータユニット内のステータス値を受信してコマンドを完了させてよい。
【０１４９】
画像デバイスはカメラを含んでよく、コマンドはカメラコマンドであってよい。
【０１５０】
さらに、コマンドは、ＣＳＩ−３属性に対応してよい。さらに、プロトコルデータユニットは、ゲットプロトコルデータユニットであってよい。装置は、ホストデバイスを含んでよい。さらに、コントローラは、コマンドの属性識別を抽出してよく、コントローラは、属性識別に基づいてプロトコルデータユニットを送信してよい。画像デバイスのセンサは、プロトコルデータユニットが画像デバイスに対して送信される場合、コマンドを実行してよい。さらに、画像デバイスのセンサは、プロトコルデータユニットがブロックされることなく画像デバイスに対して送信される場合、コマンドを実行してよい。コントローラは、ＣＳＩ−３属性パケット内にプロトコルデータユニットをカプセル化してよく、その後、それを画像デバイスに対して送信してよい。さらに、レスポンスプロトコルデータユニットは、画像デバイス内の画像ソースから取得された複数の属性値を含んでよい。さらに、コントローラは、画像デバイスの画像ソースから複数の属性値を取得してよい。画像ソースは画像センサ、システムオンチップ（ＳＯＣ）画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサ（ＩＳＰ）であってよい。コントローラはさらに、画像デバイスから通知プロトコルデータユニットを受信してよく、通知プロトコルデータユニットは、コマンドからの属性識別に基づいて複数の属性値を含まない。
【０１５１】
さらに、コントローラはまた、セットプロトコルデータユニットを画像デバイスに対して送信してよく、セットプロトコルデータユニットは、コマンドからの属性識別に基づいて複数の属性値を画像デバイスに対して書き込む。
【０１５２】
［例１５］
ここに、コマンド転送を使用してコマンドを実行する画像デバイスが記載される。
【０１５３】
画像デバイスは、属性パケット内にカプセル化されたコマンドのプロトコルデータユニットを受信し、かつ、レスポンスプロトコルデータユニット内のステータス値を返してコマンドを完了させるコントローラを含む。
【０１５４】
プロトコルデータユニットはホストデバイスから受信されてよく、レスポンスプロトコルデータユニットはホストデバイスに対して送信されてよい。画像デバイスはカメラを含んでよく、コマンドはカメラコマンドであってよい。さらに、コマンドは、ＣＳＩ−３属性に対応してよい。受信プロトコルデータユニットは、ゲットプロトコルデータユニットであってよい。さらに、受信プロトコルデータユニットは、コマンドから抽出された属性識別に基づいてよい。画像デバイスはまた、プロトコルデータユニットが受信される場合、コマンドを実行するセンサを含んでよい。その上、画像デバイスはまた、プロトコルデータユニットがブロックされることなく受信される場合、コマンドを実行するセンサを含んでよい。さらに、受信プロトコルデータユニットは、ＣＳＩ−３属性パケット内にカプセル化されてよい。  画像デバイスはまた、画像ソースを含んでよい。ここで、レスポンスプロトコルデータユニットは、画像ソースから取得された複数の属性値を含む。画像ソースは、画像センサ、システムオンチップ（ＳＯＣ）画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサ（ＩＳＰ）であってよい。画像ソースはまた、ＲＡＷ画像デバイスセンサ、システムオンチップ画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサであってよい。コントローラはさらに、通知プロトコルデータユニットを送信してよい。ここで、通知プロトコルデータユニットは、コマンドからの属性識別に基づく複数の属性値を含まない。追加として、コントローラはさらに、セットプロトコルデータユニットを受信し、かつ、コマンドからの属性識別に基づく複数の属性値を書き込む。
【０１５５】
［例１６］
ここに、コマンド転送を使用してコマンドを実行するシステムが記載される。システムは、属性パケット内にカプセル化されたコマンドのプロトコルデータユニットをカプセル化し、カプセル化されたプロトコルデータユニットを送信し、画像デバイスからのレスポンスプロトコルデータユニット内のステータス値を受信してコマンドを完了させるコントローラを有するホストを含む。システムはまた画像デバイスを含み、画像デバイスは、カプセル化されたプロトコルデータユニットをホストから受信し、かつ、レスポンスプロトコルデータユニット内のステータス値をホストに返してコマンドを完了させる別のコントローラを含む。
【０１５６】
画像デバイスはカメラを含んでよく、コマンドはカメラコマンドであってよい。コマンドは、ＣＳＩ−３属性に対応してよい。プロトコルデータユニットは、ゲットプロトコルデータユニットであってよい。さらに、ホストコントローラは、コマンドの属性識別を抽出し、かつ、属性識別に基づいてプロトコルデータユニットを送信してよい。画像デバイスはさらに、プロトコルデータユニットが画像デバイスに対して送信される場合、コマンドを実行するセンサを含んでよい。また、画像デバイスはさらに、プロトコルデータユニットがブロックされることなく画像デバイスに対して送信される場合、コマンドを実行するセンサを含んでよい。ホストコントローラは、ＣＳＩ−３属性パケット内にプロトコルデータユニットをカプセル化してよく、その後、それを画像デバイスに対して送信してよい。画像デバイスはさらに画像ソースを含んでよい。ここで、レスポンスプロトコルデータユニットは画像ソースから取得された複数の属性値を含む。その上、画像デバイスはさらに、画像ソースを含み、ホストコントローラは、画像ソースからの複数の属性値を取得してよい。画像ソースは、画像センサ、システムオンチップ（ＳＯＣ）画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサ（ＩＳＰ）であってよい。画像ソースはまた、ＲＡＷ画像デバイスセンサ、システムオンチップ画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサであってよい。画像デバイスコントローラは、通知プロトコルデータユニットをホストに対して送信してよく、通知プロトコルデータユニットは、コマンドからの属性識別に基づく複数の属性値を含まない。
【０１５７】
さらに、ホストコントローラは、セットプロトコルデータユニットを画像デバイスに対して送信してよい。ここで、セットプロトコルデータユニットは、コマンドからの属性識別に基づいて複数の属性値を画像デバイスに対して書き込むためのものである。
【０１５８】
［例１７］
装置が本明細書中に記載される。装置は、画像デバイスメタデータを構造化する複数のブロブに含まれる複数の利用可能なブロブを識別し、識別された複数のブロブに応じて画像デバイスメタデータを構造化する複数のブロブに含まれる個々のブロブをフェッチし、かつ、フェッチされた個々のブロブを実行するホストコントローラを含む。
【０１５９】
画像デバイスメタデータはカメラメタデータを含んでよい。ホストコントローラはまた、利用可能なメタデータのディレクトリを生成してよく、メタデータは、様々なシステムデータ記憶領域に格納されてよい。ホストコントローラはさらに、画像デバイスメタデータを取得してよい。追加として、ホストコントローラはさらに、画像デバイスメタデータを実行してよい。画像デバイスメタデータの取得は、画像デバイスメタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。その上、ホストコントローラは、ディレクトリを読み込んで、画像デバイス上にあるメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定してよい。画像デバイスメタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含んでよい。その上、画像デバイスメタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスはＣＳＩ−３属性マッピングに対応してよい。画像デバイスメタデータは、カメラコマンドセット変換コードブロックを含んでよく、ホストコントローラはカメラコマンドセット変換コードブロックをロードしかつ初期化してよい。
【０１６０】
［例１８］
装置が本明細書中に記載される。装置は、画像デバイスメタデータを識別し、識別された画像デバイスメタデータをフェッチし、かつ、フェッチされた画像デバイスメタデータを実行するホストコントローラを含む。
【０１６１】
画像デバイスメタデータは、カメラメタデータを含んでよい。さらに、ホストコントローラは、利用可能なメタデータのディレクトリを生成してよい。ここで、メタデータは、様々なシステムデータ記憶装置に格納される。ホストコントローラはまた、画像デバイスメタデータを含むデータ転送の開始アドレスを示すコマンドを実行することによって、画像デバイスメタデータをフェッチしてよい。その上、ホストコントローラは、ディレクトリを読み込んで、画像デバイス上にあるメタデータのタイプと、メタデータの長さ及び開始アドレスと、メタデータのアクセス属性とを判定してよい。画像デバイスメタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも１つを含んでよい。ホストコントローラは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することによって画像デバイスメタデータをフェッチしてよく、開始アドレスはＣＳＩ−３属性マッピングに対応してよい。画像デバイスメタデータは、カメラコマンドセット変換コードブロックを含んでよく、ホストコントローラは、カメラコマンドセット変換コードブロックをロードしかつ初期化するためのものである。
【０１６２】
本技術は、様々な変更及び代替形に影響を受けやすい一方、その上、上述の例示的な例は、例としてのみ示されている。技術は、本明細書中に開示された特定の例に限定されることを意図していないことが理解される。実際には、本技術は、添付の請求項の真の趣旨及び範囲内の全ての代替例、変更及び同等のものを含む。さらに、一例からの複数の要素又は複数の機能は、任意の数の例の組み合わせで使用されてよい。
【０１６３】
上述の例における個別の事柄は、１又は複数の実施形態のいずれにおいても使用されることができることを理解されたい。例えば、上述のコンピューティングデバイス、装置、又はシステムのすべてのオプションの機能が、また、本明細書中に記載された方法又はコンピュータ可読媒体のいずれに関して実装されてよい。さらに、フロー図及び／又は状態図は、複数の実施形態を説明するために本明細書中において使用されているが、本発明は、これらの図面又は対応する本明細書中の説明に限定されない。例えば、フローは、それぞれの図示されたボックス又は状態を通じて、あるいは本明細書中に図示及び記載されたまったく同じ順序で動く必要はない。
【０１６４】
本発明は、本明細書中に記載された特定の詳細に限定されない。実際、本開示の恩恵を有する当業者であれば、上記の記載及び図面に対しての多くの他の変更が本発明の範囲を逸脱しない範囲内で可能であることを理解できるであろう。したがって、以下の請求項は、本発明の範囲を定義する任意の補正を含むものである。
【図１】
2016040728.tif 000003
【図２】
2016040728.tif 000004
【図３】
2016040728.tif 000005
【図４】
2016040728.tif 000006
【図５】
2016040728.tif 000007
【図６】
2016040728.tif 000008
【図７】
2016040728.tif 000009
【図８】
2016040728.tif 000010
【図９】
2016040728.tif 000011
【図１０】
2016040728.tif 000012
【図１１】
2016040728.tif 000013
【手続補正書】
【提出日】平成27年10月27日(2015.10.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１又は複数の画像デバイスコマンドを変換する方法であって、
変換コードを取得する段階と、
１又は複数の画像デバイスコマンドを受信する段階と、
前記変換コードを実行して、前記１又は複数の画像デバイスコマンドを、画像デバイスがハンドリング可能である１又は複数のアクセスに変換する段階と、
前記１又は複数の画像デバイスコマンドによって要求される動作を引き起こすべく、前記１又は複数のアクセスを前記画像デバイスに送信する段階と
を備える方法。
【請求項２】
前記画像デバイスはカメラを有し、
前記１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを有する、請求項１に記載の方法。
【請求項３】
前記方法は、ホストデバイスに実装される、請求項１又は２に記載の方法。
【請求項４】
前記方法は、ホストソフトウェアに実装される、請求項１又は２に記載の方法。
【請求項５】
前記変換コードは、ハイレベル変換コードである、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記変換コードは、前記画像デバイス内に位置するストレージから取得される、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記画像デバイス内に位置する前記ストレージは、メタデータストレージである、請求項６に記載の方法。
【請求項８】
前記変換コードは、前記画像デバイスの外部にあるストレージから取得される、請求項１から５のいずれか一項に記載の方法。
【請求項９】
前記画像デバイスの外部にある前記ストレージは、プラットフォームストレージである、請求項８に記載の方法。
【請求項１０】
前記画像デバイスの外部にある前記ストレージは、メタデータストレージである、請求項８に記載の方法。
【請求項１１】
前記画像デバイスがハンドリング可能な前記１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを有する、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
より複雑なコマンドが、より簡素なコマンドに変換される、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
より複雑なコマンドが、ＣＳＩ−３属性ゲット／セット要求に変換される、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
受信された複数の前記コマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定する段階をさらに備える、請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
前記変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納される、請求項１から１４のいずれか一項に記載の方法。
【請求項１６】
前記１又は複数の画像デバイスコマンドは、ＣＳＩ−３属性ゲット／セットコマンドに変換される、請求項１から１５のいずれか一項に記載の方法。
【請求項１７】
前記１又は複数の画像デバイスコマンドは、ＣＳＩ−２レジスタ読出／書込コマンドに変換される、請求項１から１５のいずれか一項に記載の方法。
【請求項１８】
変換された前記１又は複数の画像デバイスコマンドは、前記画像デバイスによってネイティブにサポートされていないコマンドである、請求項１から１７のいずれか一項に記載の方法。
【請求項１９】
１又は複数の画像デバイスコマンドを変換する装置であって、
変換コードを取得し、１又は複数の画像デバイスコマンドを受信し、前記変換コードを実行して、前記１又は複数の画像デバイスコマンドを、画像デバイスがハンドリング可能である１又は複数のアクセスに変換し、前記１又は複数の画像デバイスコマンドによって要求される動作を引き起こすべく、前記１又は複数のアクセスを前記画像デバイスに送信する変換エンジンを備える装置。
【請求項２０】
前記画像デバイスはカメラを有し、
前記１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを有する、請求項１９に記載の装置。
【請求項２１】
前記変換エンジンは、ホストデバイスに含まれる、請求項１９又は２０に記載の装置。
【請求項２２】
前記変換エンジンは、ホストソフトウェアを有する、請求項１９又は２０に記載の装置。
【請求項２３】
前記変換コードは、ハイレベル変換コードである、請求項１９から２２のいずれか一項に記載の装置。
【請求項２４】
前記変換エンジンは、前記画像デバイス内に位置するストレージから前記変換コードを取得する、請求項１９から２３のいずれか一項に記載の装置。
【請求項２５】
前記画像デバイス内に位置する前記ストレージは、メタデータストレージである、請求項２４に記載の装置。
【請求項２６】
前記変換エンジンは、前記画像デバイスの外部にあるストレージから前記変換コードを取得する、請求項１９から２３のいずれか一項に記載の装置。
【請求項２７】
前記画像デバイスの外部にある前記ストレージは、プラットフォームストレージである、請求項２６に記載の装置。
【請求項２８】
前記画像デバイスの外部にある前記ストレージは、メタデータストレージである、請求項２６に記載の装置。
【請求項２９】
前記画像デバイスがハンドリング可能な前記１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを有する、請求項１９から２８のいずれか一項に記載の装置。
【請求項３０】
前記変換エンジンは、より複雑なコマンドをより簡素なコマンドに変換する、請求項１９から２９のいずれか一項に記載の装置。
【請求項３１】
前記変換エンジンは、より複雑なコマンドを、ＣＳＩ−３属性ゲット／セット要求に変換する、請求項１９から３０のいずれか一項に記載の装置。
【請求項３２】
前記変換エンジンは、受信された複数の前記コマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定する、請求項１９から３１のいずれか一項に記載の装置。
【請求項３３】
前記変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納される、請求項１９から３２のいずれか一項に記載の装置。
【請求項３４】
前記変換エンジンは、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−３属性ゲット／セットコマンドに変換する、請求項１９から３３のいずれか一項に記載の装置。
【請求項３５】
前記変換エンジンは、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−２レジスタ読出／書込コマンドに変換する、請求項１９から３３のいずれか一項に記載の装置。
【請求項３６】
変換された前記１又は複数の画像デバイスコマンドは、前記画像デバイスによってネイティブにサポートされていないコマンドである、請求項１９から３５のいずれか一項に記載の装置。
【請求項３７】
前記変換エンジンはホストに含まれ、
前記装置はさらに前記画像デバイスを備える、請求項１９又は２０に記載の装置。
【請求項３８】
前記変換コードを格納するストレージデバイスをさらに備える、請求項１９から３７のいずれか一項に記載の装置。
【請求項３９】
装置であって、
画像デバイスがハンドリング可能である１又は複数のアクセスを取得し、１又は複数の画像デバイスコマンドによって要求される動作を実行する画像デバイス
を備え、
前記１又は複数のアクセスは、前記１又は複数の画像デバイスコマンドの変換に対応し、前記変換は変換コードを使用して実装される、装置。
【請求項４０】
前記画像デバイスはカメラを有し、
前記１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを有する、請求項３９に記載の装置。
【請求項４１】
前記１又は複数の画像デバイスコマンドを前記１又は複数のアクセスに変換する変換エンジンをさらに備える、請求項３９又は４０に記載の装置。
【請求項４２】
前記変換エンジンは、ホストソフトウェアを有する、請求項４１に記載の装置。
【請求項４３】
前記変換コードは、ハイレベル変換コードである、請求項３９から４２のいずれか一項に記載の装置。
【請求項４４】
前記変換エンジンは、前記画像デバイス内に位置するストレージから前記変換コードを取得する、請求項４２に記載の装置。
【請求項４５】
前記画像デバイスは、前記変換コードを格納するストレージをさらに備える、請求項３９から４４のいずれか一項に記載の装置。
【請求項４６】
前記ストレージは、メタデータストレージである、請求項４５に記載の装置。
【請求項４７】
前記変換エンジンは、前記画像デバイスの外部にあるストレージから前記変換コードを取得する、請求項４２に記載の装置。
【請求項４８】
前記画像デバイスの外部にある前記ストレージは、プラットフォームストレージである、請求項４７に記載の装置。
【請求項４９】
前記画像デバイスの外部にある前記ストレージは、メタデータストレージである、請求項４７に記載の装置。
【請求項５０】
前記画像デバイスがハンドリング可能な前記１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを有する、請求項３９から４９のいずれか一項に記載の装置。
【請求項５１】
前記変換エンジンは、より複雑なコマンドをより簡素なコマンドに変換する、請求項４２に記載の装置。
【請求項５２】
前記変換エンジンは、より複雑なコマンドを、ＣＳＩ−３属性ゲット／セット要求に変換する、請求項４１に記載の装置。
【請求項５３】
前記変換エンジンは、受信された複数の前記コマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定する、請求項４１に記載の装置。
【請求項５４】
前記変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも１つに格納される、請求項３９から５３のいずれか一項に記載の装置。
【請求項５５】
前記変換エンジンは、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−３属性ゲット／セットコマンドに変換する、請求項４１に記載の装置。
【請求項５６】
前記変換エンジンは、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−２レジスタ読出／書込コマンドに変換する、請求項４１に記載の装置。
【請求項５７】
変換された前記１又は複数の画像デバイスコマンドは、前記画像デバイスによってネイティブにサポートされていないコマンドである、請求項３９から５６のいずれか一項に記載の装置。
【請求項５８】
前記変換コードを格納するストレージデバイスをさらに備える、請求項３９から５７のいずれか一項に記載の装置。
【請求項５９】
コンピュータに、
変換コードを取得する手順、
１又は複数の画像デバイスコマンドを受信する手順、
前記変換コードを実行して、前記１又は複数の画像デバイスコマンドを、画像デバイスがハンドリング可能である１又は複数のアクセスに変換する手順、及び
前記１又は複数の画像デバイスコマンドによって要求される動作を引き起こすべく、前記１又は複数のアクセスを前記画像デバイスに送信する手順
を実行させるためのプログラム。
【請求項６０】
前記画像デバイスはカメラを有し、
前記１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを有する、請求項５９に記載のプログラム。
【請求項６１】
前記変換コードは、ハイレベル変換コードである、請求項５９又は６０に記載のプログラム。
【請求項６２】
前記画像デバイスがハンドリング可能な前記１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを有する、請求項５９から６１のいずれか一項に記載のプログラム。
【請求項６３】
より複雑なコマンドが、より簡素なコマンドに変換される、請求項５９から６２のいずれか一項に記載のプログラム。
【請求項６４】
より複雑なコマンドが、ＣＳＩ−３属性ゲット／セット要求に変換される、請求項５９から６３のいずれか一項に記載のプログラム。
【請求項６５】
前記コンピュータに、受信された複数の前記コマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定する手順をさらに実行させる、請求項５９から６４のいずれか一項に記載のプログラム。
【請求項６６】
前記コンピュータに、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−３属性ゲット／セットコマンドに変換する手順をさらに実行させる、請求項５９から６５のいずれか一項に記載のプログラム。
【請求項６７】
前記コンピュータに、前記１又は複数の画像デバイスコマンドは、ＣＳＩ−２レジスタ読出／書込コマンドに変換する手順をさらに実行させる、請求項５９から６５のいずれか一項に記載のプログラム。
【請求項６８】
変換された前記１又は複数の画像デバイスコマンドは、前記画像デバイスによってネイティブにサポートされていないコマンドである、請求項５９から６７のいずれか一項に記載のプログラム。
【請求項６９】
コンピュータに、
１又は複数の画像デバイスコマンドを、画像デバイスがハンドリング可能である１又は複数のアクセスに変換する手順
を実行させるためのプログラム。
【請求項７０】
前記画像デバイスはカメラを有し、
前記１又は複数の画像デバイスコマンドは１又は複数のカメラコマンドを有する、請求項６９に記載のプログラム。
【請求項７１】
前記画像デバイスがハンドリング可能である前記１又は複数のアクセスは、ＣＳＩ−３属性ゲット／セットパケットを有する、請求項６９又は７０に記載のプログラム。
【請求項７２】
前記コンピュータに、より複雑なコマンドをより簡素なコマンドに変換する手順をさらに実行させる、請求項６９から７１のいずれか一項に記載のプログラム。
【請求項７３】
前記コンピュータに、より複雑なコマンドをＣＳＩ−３属性ゲット／セット要求に変換する手順をさらに実行させる、請求項６９から７２のいずれか一項に記載のプログラム。
【請求項７４】
前記コンピュータに、受信された複数の前記コマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定する手順をさらに実行させる、請求項６９から７３のいずれか一項に記載のプログラム。
【請求項７５】
前記コンピュータに、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−３属性ゲット／セットコマンドに変換する手順をさらに実行させる、請求項６９から７４のいずれか一項に記載のプログラム。
【請求項７６】
前記コンピュータに、前記１又は複数の画像デバイスコマンドを、ＣＳＩ−２レジスタ読出／書込コマンドに変換する手順をさらに実行させる、請求項６９から７４のいずれか一項に記載のプログラム。
【請求項７７】
請求項５９から７６のいずれか一項に記載のプログラムを格納するコンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１６４
【補正方法】変更
【補正の内容】
【０１６４】
本発明は、本明細書中に記載された特定の詳細に限定されない。実際、本開示の恩恵を有する当業者であれば、上記の記載及び図面に対しての多くの他の変更が本発明の範囲を逸脱しない範囲内で可能であることを理解できるであろう。したがって、以下の請求項は、本発明の範囲を定義する任意の補正を含むものである。
［項目１］
複数の画像デバイスコマンドを変換するための装置であって、
コード記憶領域から変換コードを取得して変換エンジンを構成するロジックと、
前記変換エンジンにおいて複数の画像デバイスコマンドを受信するロジックと、
前記変換エンジンを使用して前記複数の画像デバイスコマンドを変換するロジックと、
前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数の画像デバイスコマンドを前記画像デバイスに転送するロジックと
を備える装置。
［項目２］
前記受信された複数のコマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定するロジックをさらに備える、項目１に記載の装置。
［項目３］
前記変換コードは、前記複数の画像デバイスコマンドを変換するために実行される、項目１又は２に記載の装置。
［項目４］
前記コード記憶領域は、前記画像デバイス内に位置する、項目１から３のいずれか一項に記載の装置。
［項目５］
前記コード記憶領域は、ホストデバイスに連結されたプラットフォームストレージ内に位置する、項目１から３のいずれか一項に記載の装置。
［項目６］
前記変換エンジンは、前記画像デバイスからリモートに位置する、項目１から５のいずれか一項に記載の装置。
［項目７］
前記変換エンジンは、インターポーザデバイスに位置し、前記コード記憶領域は、前記インターポーザデバイス、ホストデバイス、センサ、又は、それらの組み合わせの少なくとも１つに位置する、項目１から３のいずれか一項に記載の装置。
［項目８］
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−３属性ゲット／セットコマンドに変換する、項目１から７のいずれか一項に記載の装置。
［項目９］
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−２レジスタ読出／書込コマンドに変換する、項目１から８のいずれか一項に記載の装置。
［項目１０］
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、項目１から９のいずれか一項に記載の装置。
［項目１１］
複数の画像デバイスコマンドを変換するためのシステムであって、
ホストデバイスと、
前記ホストデバイスに連結された画像デバイスと、
コード記憶領域から取得されたコードを使用して生成され、複数の画像デバイスコマンドを複数の画像デバイス固有コマンドに変換する変換エンジンと
を備えるシステム。
［項目１２］
前記ホストデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス若しくはサーバ、又は、それらの組み合わせである、項目１１に記載のシステム。
［項目１３］
前記画像デバイス内の組み込みプロセッサ又はシーケンサが、複数の画像デバイスコマンドを変換するべく使用される、項目１１又は１２に記載のシステム。
［項目１４］
前記コード記憶領域は、前記ホストデバイス内に位置する、項目１１から１３のいずれか一項に記載のシステム。
［項目１５］
前記コード記憶領域は、前記画像デバイス内に位置する、項目１１から１３のいずれか一項に記載のシステム。
［項目１６］
前記コード記憶領域は、前記ホストデバイスに連結されたプラットフォームストレージデバイス内に位置する、項目１１から１３のいずれか一項に記載のシステム。
［項目１７］
前記変換エンジンは、前記画像デバイスからリモートに位置する、項目１１から１６のいずれか一項に記載のシステム。
［項目１８］
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のＣＳＩ−３属性ゲット／セットコマンドに変換する、項目１１から１７のいずれか一項に記載のシステム。
［項目１９］
前記変換エンジンは、前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数のコマンドを前記画像デバイスに送信する、項目１１から１８のいずれか一項に記載のシステム。
［項目２０］
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、項目１１から１９のいずれか一項に記載のシステム。
［項目２１］
前記コードは、ランタイム解釈言語サンドボックス内で実行される、項目１１から２０のいずれか一項に記載のシステム。
［項目２２］
前記変換エンジンは、前記ホストデバイス上に位置する、項目１１から２１のいずれか一項に記載のシステム。
［項目２３］
コンピュータに、
コード記憶領域から変換コードを取得して変換エンジンを構成する手順と、
入力された複数の画像デバイスコマンドを受信する手順と、
前記入力された複数の画像デバイスコマンドを、複数の画像デバイス固有コマンドに変換する手順と、
前記複数の画像デバイス固有コマンドを、前記コンピュータに連結された画像デバイスに送信する手順と
を実行させ、
前記入力された複数の画像デバイスコマンドは、変換手段によって変換される、プログラム。
［項目２４］
前記変換手段は、変換エンジンである、項目２３に記載のプログラム。
［項目２５］
前記変換手段は、前記画像デバイスからリモートに位置する、項目２３又は２４に記載のプログラム。
【外国語明細書】
2016040728000001.pdf