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