JP2016029583A - メタデータストレージサブシステムの実現 - Google Patents
メタデータストレージサブシステムの実現 Download PDFInfo
- Publication number
- JP2016029583A JP2016029583A JP2015206531A JP2015206531A JP2016029583A JP 2016029583 A JP2016029583 A JP 2016029583A JP 2015206531 A JP2015206531 A JP 2015206531A JP 2015206531 A JP2015206531 A JP 2015206531A JP 2016029583 A JP2016029583 A JP 2016029583A
- Authority
- JP
- Japan
- Prior art keywords
- metadata
- imaging device
- commands
- command
- camera
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
- G06F9/4415—Self describing peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
Abstract
【課題】多様なイメージデバイス構成のサポート及び有効化のための技術を提供する。【解決手段】利用可能なメタデータのディレクトリが作成され、メタデータは、個々のシステムデータストアに格納する。メタデータは、ホストデバイスからの要求に応じて取得され、メタデータは、ホストデバイスに転送される。イメージデバイスは、スチルショットカメラ、ビデオカメラ、立体カメラ、赤外線センサ、または同種の任意のイメージデバイス、あるいはそれらの組み合わせで使用されてよい。【選択図】図1
Description
本技術は、概して、カメラコマンド設定に関する。
複数のイメージデバイスは、画像キャプチャ用に構成された複数のセンサおよび複数のモジュールなどの複数のコンポーネントを含む。それぞれのイメージデバイス内の複数のセンサおよび複数のモジュールの構成は、変化できる。構成に関わらず、それぞれのイメージデバイスは、ホストプロセッサとインタフェースをとるだろう。従って、ホストプロセッサは、多様な異なる構成の複数のカメラとインタフェースをとることができる。
いくつかの例示的な実施形態は、以下の詳細な説明および図面を参照することで、記載される。
複数の実施形態に従って使用されてよいホストデバイスのブロック図である。
複数の実施形態に係るカメラのブロック図である。
複数の実施形態に係る複数のカメラコマンドを変換するためのシステムのブロック図である。
複数の実施形態に係るカメラサブシステムを初期化するための方法を図示する処理フロー図である。
複数の実施形態に係る複数のカメラコマンドを変換する方法の処理フロー図である。
複数の実施形態に係るゲットおよびセットアーキテクチャに基づく複数のCCSコマンドを実行する転送メカニズムを可能にする方法の処理フロー図である。
複数の実施形態に係るセンサおよびモジュール固有のメタデータを格納および取得することを可能にするメタデータストレージサブシステムのブロック図である。
複数の実施形態に係るメタデータストレージサブシステムを有効にする方法の処理フロー図である。
複数の実施形態に係る複数のカメラコマンドを変換するためのコードを格納する有形の非一時的コンピュータ可読媒体を示すブロック図である。
複数の実施形態に係る複数のカメラコマンドを変換するための例示的なシステムのブロック図である。
複数の実施形態に係る図10のシステムが具現化される小型フォームファクタデバイスの概略である。
本明細書中に開示される複数の実施形態は、多様なイメージデバイス構成のサポート及び有効化のための技術を提供する。本技術は、カメラを使用することで記載されるが、任意のイメージデバイスが使用されてよい。さらに、本明細書中で使用されるように、イメージデバイスは、スチルショットカメラ、ビデオカメラ、立体カメラ、赤外線センサ、または同種のもの、あるいはそれらの組み合わせでよい。
複数の実施形態において、カメラコマンド設定(CCS)は、限定されないが複数のカメラセンサ及び複数のモジュールを含む複数のカメラコンポーネントを発見及び制御する共通機構を提供する。複数のコマンドは、ホストプロセッサが、任意のカメラ設定とインタフェースを取り、サポートし、有効にすることを可能にする。新型の複数のコマンド設定及びソフトウェアとの複数の旧型のカメラの上位互換性が、変換機能を使用することで実装されてよい。変換機能は、カメラが実行できる複数のコマンド、または複数のCSI−3属性ゲット/セット要求に変換される複数の複雑なCCSコマンドを可能にしてよい。CSI−3属性は、カメラまたはホストデバイスの動作を制御するのに使用されてよいアトミックな情報単位である。転送メカニズムは、複数のCSI−3属性ゲット/セット要求に変換された複数のコマンドを実行するために使用されてよく、さらに、センサ及びモジュールメタデータは、メタデータサブシステムに格納され、取得されてよい。カメラメタデータは、限定されないが、複数のカメラセンサ、複数のモジュール、及びカメラを用いてキャプチャされる複数の画像に関する情報を含む。さらに、メタデータストレージシステムは、また、CSI−3のためのデータブロックストレージでもよい。
以下の説明および請求項において、「結合」および「接続」といった用語、およびそれらの派生語を用いることがある。理解されるべきことは、これらの複数の用語は、互いの類義語として意図されるものではない。むしろ、複数の特定の実施形態において、「接続」は、2つまたはそれより多くの要素が、互いに直接物理的にまたは電気的に接触することを示すために用いられてもよい。「連結」は、2つまたはそれより多くの要素が、直接物理的にまたは電気的に接触することを意味してもよい。しかしながら、「連結」は、2つまたはそれより多くのエレメントが、互いに直接接触しないものの、互いに連動または連携することをさらに意味してもよい。
いくつかの実施形態は、ハードウェア、ファームウェア、及びソフトウェアのうちの1つ又は組み合わせで実装されてよい。いくつかの実施形態は、また、機械可読媒体上に格納された複数の命令として実装されてよく、機械可読媒体は、コンピューティングプラットフォームによって読み出され、実行されて、本明細書中で記載された複数の動作を実行してよい。機械可読媒体は、機械、例えば、コンピュータにより読み出し可能な形式の情報を格納または送信するための任意のメカニズムを含んでよい。例えば、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、複数のフラッシュメモリデバイス、または電気的、光学的に、音的または他の形態の複数の伝搬信号など、複数の搬送波、複数の赤外線信号、複数のデジタル信号、あるいは他との間で複数の信号を送信及び/又は受信する複数のインタフェースを含んでよい。
一実施形態は、実装又は例である。本明細書で、「一実施形態」、「1つの実施形態」、「いくつかの実施形態」、「様々な実施形態」、または「他の実施形態」への言及は、特定の機能、構造、または複数の実施形態に関連して記載される特性が、少なくともいくつかの実施形態に含まれるが、必ずしも本発明のすべての実施形態を含まないことを意味する。「一実施形態」、「1つの実施形態」、又は「幾つかの実施形態」の種々の出現は、必ずしも同一実施形態を参照しているわけではない。一実施形態からの複数のエレメントまたは複数の態様は、他の実施形態の複数のエレメントまたは複数の態様と組み合わせられることができる。
本明細書中での説明及び示される全てのコンポーネント、特徴、構造、特性などは、特定の実施形態又は複数の実施形態に含まれる必要があるとは限らない。コンポーネント、特徴、構造又は特性が含まれ「てもよい」、含まれる「場合がある」、含まれ「得る」、含まれ「得た」と本明細書で述べた場合には、例えば、特定のコンポーネント、特徴、構造又は特性は含まれることを要求されない。明細書又は特許請求の範囲で、「ある」要素と参照した場合には、要素が1つだけ存在することを意味しない。明細書又は特許請求の範囲で、「ある追加の」要素と参照した場合には、追加の要素が1より多い場合を排除していない。
いくつかの実施形態は特定の実装を参照して説明されるが、いくつかの実施形態に従って、他の実装が可能であるということに注意すべきである。 さらに、図面で図示され、及び/又は本明細書中に記載されている複数の回路素子または他の機能の構成及び/又は順序は、図示および記載された特定のやり方で配置される必要がない。その他の多くの構成が、いくつかの実施形態に従って可能である。
図に示される各システムにおいて、表される複数の要素が異なる及び/又は同様であり得ることを示唆するために、場合によっては、複数の要素が同一の参照番号又は異なる参照番号をそれぞれ有してよい。しかしながら、要素は、異なる実施例を有し、且つ、図示した又は本明細書中に記載したシステムの幾つか又は全てと協働できるほど十分に柔軟であってもよい。図に示したさまざまな要素は、同じものであってもよく、異なるものであってもよい。どちらを第1の要素として称し、どちらを第2の要素として称するかは任意的なものである。
図1は、複数の実施形態に従って使用されてよいホストデバイス100のブロック図である。ホストデバイス100は、数ある中でも、例えば、ラップトップコンピュータ、デスクトップ型コンピュータ、タブレットコンピュータ、モバイルデバイス、またはサーバでよい。さらに、ホストデバイス100は、本明細書中で記載されているようにホストデバイスでよい。ホストデバイス100は、中央処理ユニット(CPU)102によって実行可能な複数の命令を格納するメモリデバイス104と同様に、格納された複数の命令を実行するよう構成されているCPU102を含んでよい。CPUは、バス106でメモリデバイス104と結合されてよい。さらに、CPU102は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成であり得る。さらに、ホストデバイス100は、1つより多くのCPU102を含んでよい。
ホストデバイス100は、また、グラフィックス処理ユニット(GPU)108を含んでよい。示すように、CPU102は、バス106を介してGPU108に結合されてよい。GPU108は、ホストデバイス100内の任意の数のグラフィックスオペレーションを実行するように構成されてよい。例えば、GPU108は、ホストデバイス100のユーザに対して表示される、複数のグラフィックス画像、複数のグラフィックスフレーム、複数のビデオまたは同種のものを描画または操作するように構成されてよい。いくつかの実施形態において、GPU108は、多数のグラフィックスエンジン(図示せず)を含む。ここで、それぞれのグラフィックスエンジンは、複数の特定のグラフィックスタスクを実行、または複数の特定のタイプのワークロードを実行するように構成される。
メモリデバイス104は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または任意の他の適したメモリシステムを含むことができる。例えば、メモリデバイス104は、ダイナミックランダムアクセスメモリ(DRAM)を含んでよい。CPU102は、ホストデバイス100をディスプレイデバイス112に接続するように構成されたディスプレイインターフェース110にバス106を通じてリンクされてよい。ディスプレイデバイス112は、ホストデバイス100のビルトインコンポーネントであるディスプレイスクリーンを含んでよい。ディスプレイデバイス112は、また、数ある中でも、ホストデバイス100に外部接続されるコンピュータモニタ、テレビ、またはプロジェクタを含んでよい。
CPU102は、また、ホストデバイス100を1または複数のI/Oデバイス116に接続するように構成された入出力(I/O)デバイスインタフェース114に、バス106を通じて接続されてよい。I/Oデバイス116は、例えば、キーボードおよびポインティングデバイスを含んでよい。ここで、ポインティングデバイスは、数ある中でも、タッチパッドまたはタッチスクリーンを含んでよい。複数のI/Oデバイス116は、ホストデバイス100のビルトインコンポーネントでよく、あるいはホストデバイス100に外部接続される複数のデバイスでよい。
CPU102は、さらに、バス106を通じて、画像キャプチャインタフェース118に接続されてよい。イメージデバイスインタフェース118は、ホストデバイス100を、1または複数のイメージデバイス120に接続するように構成される。イメージデバイス120は、スチルショットカメラ、ビデオカメラ、またはスチルショットカメラおよびビデオカメラを組み合わせたカメラでよい。さらに、イメージデバイス120は、立体カメラ、赤外線センサ、SOCカメラ、画像信号プロセッサ(ISP)、ブリッジデバイス、または同種のものであってよい。複数の実施形態において、複数のイメージデバイス120は、ホストデバイス100の複数のビルトインコンポーネントである。さらに、複数の実施形態において、複数のイメージデバイス120は、ホストデバイス100に外部接続されたデバイスである。
複数の実施形態において、組み込まれたプロセッサまたはシーケンサは、画像キャプチャインタフェース118に存在することができる。画像キャプチャインタフェース118内の組み込まれたプロセッサまたはシーケンサは、ホストコマンド変換を提供するために使用されることができる。複数の実施形態において、変換は、ISP、画像キャプチャインタフェース118内に含まれるさもなければ関連している別個のプロセッサ上で実行されるコードを使用して生じる。
イメージデバイス120は、複数の画像をキャプチャするために使用され、1または複数のセンサ122を含む。複数の例において、センサ122は、画像テクスチャ情報に関連する深度情報をキャプチャするために使用される深度センサでよい。センサ122は、また、画像テクスチャ情報をキャプチャするために使用されるイメージセンサでよい。さらに、イメージセンサは、電荷結合素子(CCD)イメージセンサ、相補型金属酸化膜半導体(CMOS)イメージセンサ、システムオンチップ(SOC)イメージセンサ、複数の感光性薄膜トランジスタを有するイメージセンサ、またはそれらの組み合わせでよい。イメージデバイス120は、また、1つ又は複数のモジュール124を含む。モジュール124は、イメージデバイスの様々なコンポーネントを操作するのに使用されてよい。例えば、カメラは、それぞれがモジュール124によって可能になるバッファ、複数のレンズ、及びオートフォーカスを含んでよい。
メモリデバイス104は、複数のデバイスドライバ126を含む。デバイスドライバ126は、ホストデバイス100がイメージデバイス120とインタフェースを取り、イメージデバイス120をサポートし、イメージデバイス120を有効にすることができるように、CPU102またはGPU108によって実行されてよい。デバイスドライバ126は、本明細書中に記載されているようにホストソフトウェアでよい。さらに、デバイスドライバ126は、カメラメタデータにアクセスしてよい。メタデータは、メモリデバイス104、イメージデバイス120、ストレージデバイス128、または任意の他のデータストレージロケーションに格納されてよい。
ストレージデバイス128は、ハードドライブ、光学式ドライブ、サムドライブ、アレイドライブ、またはそれらの組み合わせなどの物理メモリである。ストレージデバイス128は、または、リモート記憶ドライブを含んでよい。ストレージデバイス128は、ホストデバイス100上で実行するように構成された任意の数のアプリケーション130を含んでよい。ホストデバイス100は、また、バス106を通じてネットワーク134にホストデバイス100を接続するよう構成されたネットワークインタフェースコントローラ(NIC)132を含んでよい。ネットワーク134は、数ある中で、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、または、インターネットでよい。
複数の実施形態において、CPU102によって実行される複数の命令が、ホストコマンド変換を可能にするために使用されてよい。さらに、複数の実施形態において、GPU108によって実行される複数の命令が、ホストコマンド変換を可能にするために使用されてよい。従って、CPU102またはGPU108は、イメージデバイス120とインタフェースを取り、イメージデバイス120をサポートし、イメージセンサ120を有効にするために使用されるホストプロセッサでよい。さらに、デバイスドライバ126またはアプリケーション130は、本明細書中に記載されるようにホストソフトウェアを含んでよい。複数の実施形態において、CPU102またはGPU108は、本明細書中に記載されるように転送メカニズム内の複数のコマンドを実行するために使用されてよい。さらに、複数の実施形態において、CPU102またはGPU108は、メタデータストレージサブシステムを有効にしてよい。図1のブロック図は、ホストデバイス100が、図1に示すコンポーネントのすべてを含むことを示すことを意図していない。さらに、ホストデバイス100は、特定の実装の詳細に応じて、図1に示されていない任意の数の追加的な構成を含んでよい。
CCSを使用することにより、様々なカメラ設定のサポートに関連するソフトウェア及び統合コストは、複数のカメラセンサおよび複数のモジュールを発見および制御するための共通機構を用意することにより減少できる。しかしながら、複数のセンサ及び複数のモジュールの実装は、抑制されない。むしろ、任意のセンサ及びカメラ設定を表す標準化技術が用意される。CCSは、複数のセンサ、複数のモジュール、及び複数のイメージプロセッサのための必須のおよび選択的な両方の複数のコマンドを含む。複数のカメラコマンドの変換は、ジェネリックドライバが、様々なカメラ設定に対するサポートを、たとえそれらのカメラがCCSをネイティブにサポートしていなくても、提供することを可能にする。ジェネリックドライバの使用が、異なるカメラ設定に関連付けられる実装コストを減少させることができる。転送メカニズムは、カメラシリアルインタフェース3(CSI−3)属性ゲット/セットアーキテクチャ内の複数のコマンドを実行するのに使用される。いくつかのコマンドは、センサのコスト及び複雑性を減少させるために、センサの外部で実行されてよい。さらに、センサの外部で複数のコマンドを実行することは、カメラシリアルインタフェース2(CSI−2)タイプのセンサなどの複数のレガシーセンサに基づく複数のカメラに対するサポートを提供する。複数の実施形態において、複数のチューニングパラメータを含むセンサ及びモジュール固有のメタデータを格納及び取得するための技術が提供される。
CSI−2及びCSI−3規格は、モバイルインダストリプロセッサインタフェース(MIPI)アライアンスにより開発された。CSI−2及びCSI−3規格は、複数のイメージデバイスなどの複数のカメラサブシステムを、アプリケーションプロセッサなどのホストデバイスに取り付けるための規格インタフェースを提供する。本明細書中で記載される複数の技術は、任意のMIPIカメラシリアルインタフェース(CSI)規格に従って開発された複数のカメラサブシステムで実装されてよい。さらに、複数の実施形態において、MIPIカメラパラレルインターフェース(CPI)に従って開発された複数のカメラサブシステムが、また本技術で使用されてよい。
図2は、複数の実施形態に係るカメラ200のブロック図である。上記の通り、カメラ200は、イメージデバイス120(図1)などのイメージデバイスでよい。カメラ200は、CSI−3リンク202に取り付けられてよい。CSI−3リンク202は、CPU102またはGPU108(図1)などのホストプロセッサとのカメラ200の統合のための高速シリアルインタフェースプロトコルを可能にする。複数の実施形態において、ホストプロセッサは、モバイルターミナルアプリケーションにおけるアプリケーションプロセッサでよい。
カメラ200は、画像ソース206によって表されるような「上位の」CSI−3仮想チャネル204である任意の処理機能を含んでよい。画像ソースは、イメージセンサ、システムオンチップ(SOC)イメージングデバイス、マルチチップイメージングデバイスモジュール、または画像信号プロセッサ(ISP)でよい。従って、カメラは、ホストデバイス上に存在する複数の追加の処理機能を含んでよい。しかしながら、これらの潜在的処理機能は、CCSオペレーションに対して要求されない。
CCSの目的に対して、カメラは、図3内のそれらに類似する構成された複数のコンポーネントであると仮定される。しかしながら、図示されたすべてのコンポーネントが、要求されない。特に、CCSは、センサ208および1または複数の画像ソース206を使用してよい。複数の実施形態において、センサ208は存在せず、他の画像ソースが使用されてよい。例えば、CCSは、ISPが画像ソースであるサブシステムに適用してよい。レンズ210、開口212、照明214、およびメタデータストレージ216を含む複数の追加のサブシステムに対するサポートは、選択的である。
レンズサブシステム210は、任意選択的に光学ズーム機能をサポートしてよい指示視野を持つレンズ群として具現化される。開口サブシステム212は、開口を最小または最大Fナンバーまで変化させる選択的なサポートを用いて、指示されたFナンバーを有するアイリスとして具現化される。Fナンバーは、レンズシステムの前方を介して見た、物理的な開口絞りの視覚的な画像の直径に対するレンズの焦点距離の割合である。
複数の実施形態において、センササブシステム208は、理想的なセンサを具現化する。複数の理想的なセンサは、線形に設計、または測定のいくつかのシンプルな数学的機能に対して線形に設計される。それによって、特定の値に対して、理想的なセンサは、値が測定されるたびに同一出力を生じさせる。カメラによって生成される任意の画像に影響を与える、タイミング、ゲイン、および複数のパラメータに関連する他のキャプチャを含むセッティングは、センササブシステム208の一部である。さらに、複数のRAWおよびSoCセンサは、またセンササブシステム208で使用されてよい。さらに、複数の実施形態において、センササブシステム208は、また、HDR(ハイダイナミックレンジ)および他の形態のコンピュータによるイメージング(多焦点面イメージングなど)のような複数のセンサ挙動を含んでよい。
複数の画像ソース206は、センササブシステム208の出力を取り込み、CSI−3仮想チャネル204を介して転送のためにその出力をパッケージする。このパッケージングは、データがフォーマット化され、伝えられてよい、またはデータがコンプレックスでよい、YUVまたはJPEG出力を生じさせるような複数の処理機能を含むRAWセンサの場合のように、簡略化されてよい。それぞれの画像ソース206の出力は、CSI−3仮想チャネル204による入力として選択されて、画像データの転送をホストに提供することができる。CSI−3仮想チャネル204は、同一のデータソースにより生成された一連の複数の属性および複数の画像パケットを表す。複数の実施形態において、CCS画像ソース206は、組み込まれた複数の属性と同様に1つのタイプのピクセルデータを生じさせてよい。CSI−3仮想チャネル204は、画像データの転送を表し、管理するために使用され、さらに、画像ソース206は、画像データの生成及び処理を表し、管理する。CSI−3仮想チャネル204と画像ソース206との間には、1対1の関係がある。照射サブシステム214は、フラッシュ、ビデオランプ、赤目低減ランプ、および録画インジケータライトを含むカメラの照明制御を介した制御を提供する。カメラ200は、複数の照射サブシステム214の機能の任意の組み合わせを任意選択的にサポートしてよい。さらに、メタデータストレージサブシステムは、カメラサブシステム200により格納された非不揮発性データを取得し、任意選択的に書き込むためのソフトウェアに対する共通機構を提供する。メタデータストレージは、モジュールによりネイティブにサポートされるものを超越するCCS機能を可能にする任意の解釈されたコードを格納するのと同様に、モジュール識別および複数の画像チューニングパラメータを格納してよい。さらに、メタデータストレージシステムは、また、CSI−3に対するデータブロックストレージであってよい。
コマンド転送メカニズム218は、ネイティブにサポートされたCCSコマンドがCSI−3インタフェースを組み込むカメラサブシステム200に転送されることを可能にする。CSI−2などの他のインタフェースが、コマンド設定に対する代替の転送を定義および実装してよい。コマンド転送メカニズム218は、コマンド転送メカニズム218に対するカメラアプリケーションを構成および制御するために使用されるすべてのコマンドおよびCSI−3属性222を転送できるカメラ用設定プロトコル(CPC)220にアクセスしてよい。さらに、カメラ制御インタフェース(CCI)224は、CSI−2相互接続をサポートするCSI−2データに対するブリッジ機能を提供するために使用されてよい。
多くのCCSコマンドは、CSI−3仮想チャネル204とCCS画像ソース206との間の特定の重複とともに、CSI−3属性222に影響する複数の変更を生じさせることができる。例えば、センサ標準構成設定(Set_SensorStandardConfig())コマンドが、画像サイズを含むセンサモードの設定をサポートする。CSI3 XSIZE、CSI3_XLEN、CSI3_YSIZE、CSI3_YLENおよび複数のCSI−3属性のような他のものなどの仮想チャネル属性は、実装された場合、複数のCCSコマンドによる設定のような現在のカメラ設定を正確に反映する複数の値を戻すはずである。従って、CSI−3仮想チャネル属性は、複数の画像及び関連データをCSI−3準拠デバイスからホストへ転送するために使用される複数のパラメータを制御するために使用される。これらの属性は、各フレームを用いて送信された組み込まれたメタデータと同様に、画像サイズ、データフォーマット、タイミング、及びエラー処理のための複数の制御を含む。複数のCCSコマンドは、また、サイズ、フォーマット、及びタイミングなどの多くの同一の画像品質を制御する。センサに発行されたCCSコマンドの効果は、とりわけ、CCS仮想チャネル属性を修正することを含んでよい。例えば、CCSコマンドは、1920×1080の解像度で、毎秒30フレームで動作するセンサを仮に設定する、Set StandardConfig(l)であるかもしれない。CSI3 YSIZE属性に対するCSI−3 Getが、その次に1080を戻すかもしれない。もし、Attribute Setが次に発行されて、CSI3 YSIZEを2000に変更する場合、(2000のYSIZEを有する)現在の設定が、以前に設定されたCCS状態に矛盾するのにかかわらず、Get_StandardConfig() CCSコマンドが「1」に戻ってよい。
センササブシステム208及び画像ソースサブシステム206は、任意の数の設定を使用して実装されてよい。従って、それは、センササブシステム208を適切に設定すべく、ホストソフトウェアに対して挑戦されることができる。CCSは、複数のセンサモードを使用して、センササブシステム208を適切に設定することをアシストすることができる。センサモードは、ソフトウェアが選択できるセンサベンダーによって定義される複数の動作設定のセットである。概して、カメラがサポートするであろう期待された使用法を表す所与のカメラに対して提示されるであろう限定された複数の設定があるであろう。例えば、カメラは、8メガピクセルRAWIOスチル最適モード、1080p/30ビデオ最適MJPEGモード、及びQVGA YUVプレビューモードに対するサポートを示してよい。
CCSは、望まれた設定のインデックスを選択することにより望まれた動作モードを設定するために使用されることができるセンサ標準構成(SensorStandardConfig())コマンドを含んでよい。カメラは、その結果、適切なタイミング及び関連付けられたセッティングにセルフ設定するであろう。ホストソフトウェアは、センササブシステム208によりサポートされる複数のモードを詳述するテーブルを取得するための情報センサ標準設定(Info_SensorStandardConfig())コマンドを使用することができる。センササブシステム208は、テーブルに列挙された複数のモードでの動作に限定されない。カメラサブシステム200の追加の知識を有するホストソフトウェアは、複数の追加のセンサ機能を顕在化させるために最適なタイミングを設定するための設定センサタイミング(Set_SensorTimings())コマンドなどの複数の追加のコマンドを使用してよい。
図3は、複数の実施形態に従って、複数のカメラコマンドを変換するためのシステム300のブロック図である。CCSは、複数のセンサを制御する標準メカニズムを可能にするために使用される。複数のコマンドの共通セットは、CCSに対して定義される。CCSは、ネイティブで、必須の、かつ選択的な複数のコマンドに分割されてよい。複数のコマンドは、カメラサブシステム200などの定義されたカメラモデル上で動作する。
ネイティブコマンドは、必須のホスト変換サポートなしにセンササブシステムにより直接実行されることができるコマンドである。CCS内の任意のコマンドは、カメラサブシステムがコマンドをネイティブに受け入れ、処理できることを示し得るという点で、ネイティブコマンドであってよい。従って、CCSサポートを要求するカメラサブシステムは、当然、すべてのネイティブな必須のコマンドに対してネイティブにサポートを提供するだろう。
CCSサポートを要求するカメラサブシステムは、また、必須のコマンドを当然サポートするだろう。しかし、サポートは、本明細書中で記載されたホスト標準の変換機能を使用することで提供されてよい。カメラサブシステムは、すべての選択的なコマンドをサポートしてよい。概して、複数のネイティブな必須のコマンドは、複数のCCS機能を識別し、必要であれば、コマンド変換をサポートするために必要な情報を取得するのに必要な複数の簡略コマンドである。一旦、変換機能がアップされ、実行されると、複数の後続のコマンドが、次に、このメカニズムを通じてサポートされることができる。従って、複数のホスト変換コマンドは、複数のCCSコマンドに書き込まれたホストソフトウェアを用いたスチルワークのためのフルCCSコマンド設定をネイティブにサポートしない複数の能力カメラを提供する。ほとんどのコマンドは、変換を通じてサポートされることができる。しかし、いくつかのネイティブな必須のコマンドが、変換のアップ及び実行を得るために要求されるように、センサによりサポートされなければならない。変換機能は、限定されないが、実行サンドボックスを有する変換エンジン、コードストレージ、及びコードをコンパイルする方法を含む。複数の実施形態において、サンドボックス内のコード実行の出力は、次にセンサ上で実行できる複数のCSI−3属性ゲット/セットトランザクションである。
複数の実施形態において、転送メカニズムは、センササブシステム208(図2)などのセンサ上での複数のコマンドの実行を制御するために定義される。転送メカニズムは、図2に記載されているようなコマンド転送メカニズム218でよい。転送メカニズムは、また、いくつかの複雑なコマンドがホストデバイス上で実行され、センサの複雑性及びコストを低減すべく、複数のコマンドの簡素化セットに変換されることができるメカニズムを提供してよい。さらに、複数の実施形態において、メタデータは、ソフトウェア及び製造に必要なものを用いてアシストするべく、カメラサブシステムから取得されることができる。
CCSのカメラコマンドは、コマンドが呼び出される方法を取り除いた疑似コード表現を使用することで付託される。CSI−3カメラがサポートを提供できる複数の技術を使用することで複数のコマンドが記載されてよいが、複数の同一のコマンドは、他のコマンド転送メカニズムまたはソフトウェア変換サポートを使用するが、CSI−2などの他のカメラサブシステムに提供されることができる。
それぞれのコマンドは、サポートされ、またはサポートされなくてよい様々な変形を有する。「Get_」の変数は、複数のパラメータを取得しないが、データのセットを戻す。さらに、「Set_」の変数は、複数のパラメータのセットを取得し、ステータスコードを戻す。「Info_」の変数は、ソフトウェアが具体的な能力、レンジ及び利用可能なオプションを理解することを助けるかもしれないデータのスタティックブロックを戻す。
例えば、上記の情報センサ標準設定(Info SensorStandardConfig())コマンドが、複数のモード、ソフトウェアが選択できるセンサによりサポートされる複数の設定を定義するデータのテーブルを戻す。ソフトウェアは、次に、所望のモードにセンサを設定すべく、入力として単一のパラメータインデックスを取得し、応答においてステータスコードを戻す設定センサ標準設定(SensorStandardConfig(Index))コマンドを使用できる。現在の動作モードは、複数の入力パラメータを取得しないが、応答として現在のアクティブインデックスを戻すゲットセンサ標準設定(Get SensorStandardConfig())コマンドを使用することで読み出すことができる。
Get_/Set_/Info_構造は、CSI−3属性ゲット/セットアーキテクチャの上にフィットする。加えて、それは、例えば、カメラによってネイティブにサポートされるGet_/Set_の変数を有するためのサポートと同様に、サポートされた複数のコマンドのきめの細かい指示を可能にする。一方、Info_の変数は、コマンド変換を通じてサポートされるのみである。
CCSがカメラに対する完全な制御設定を提供するように意図されている間、複数の他のメカニズムが、複数のベンダー特有のコマンド及び属性ゲット/セットメカニズムなどのCCSにより顕在化される超越した制御を可能にするために使用されてよい。複数のベンダー特有のコマンドは、CCSアーキテクチャ内の定義された複数のCCSコマンドを拡張する機能を提供するために使用されてよい。複数のベンダー特有のコマンドは、コマンド転送アーキテクチャを使用する。
複数のベンダー特有のコマンドに加えて、ソフトウェアは、簡単に表現できない、または本明細書で定義されたコマンド転送アーキテクチャを使用することで簡単に実装されることができない機能を提供するために、CSI−3仕様により定義される複数の属性ゲット/セットメカニズムを使用することを継続してよい。複数のベンダー特有または直接の属性ゲット/セットコマンドが使用される場合、CCSにより戻される複数の値は、破損されるかもしれない。従って、複数のベンダー特有のコマンドまたは直接の属性ゲット/セットメカニズムが実装される場合、CCSとの複数の潜在的な相互作用が認識されるべきである。例えば、ベンダー特有のコマンドが、標準コマンド設定によりサポートされないレンズシェーディング補正メカニズムを指定するために使用される場合、ゲットレンズシェーディング(GetLensShading())コマンドが、破損されたデータまたはCCSによって期待される外部のデータを戻してよい。
システム300は、ホストデバイス302を含んでよい。ホストデバイス302は、デスクトップ、ラップトップ、タッチパッド、パーソナルコンピュータ、携帯電話デバイスなどでよい。さらに、上述の通り、ホストデバイス100(図1)は、ホストデバイス302でよい。ホストデバイス302は、カメラサブシステム304に結合されてよい。カメラサブシステム304は、イメージデバイス120(図1)またはカメラサブシステム200(図2)でよい。上述の通り、カメラサブシステム304は、CSI−3リンクを介してホストデバイス302に結合されてよい。カメラサブシステム304は、さらに、メタデータストレージ306を含んでよい。メタデータストレージ306は、ストレージのための共通機構、及びカメラサブシステム304により格納されたデータの取得を提供してよい。メタデータストレージ306は、カメラコマンドを変換するために使用される変換コード308を格納してよい。加えて、メタデータストレージ306は、また、識別子および画像チューニングパラメータを格納しちぇおい。カメラサブシステム304は、さらに、複数のCSI−3属性を含んでよい。複数の実施形態において、複数の属性は、カメラサブシステムの複数のリソースにアクセスするために使用されてよい。さらに、複数の実施形態において、複数の属性は、複数のイベントを検知するために使用されてよい。CSI−3属性310は、変換機能から変換されたコマンドを受信する。変換機能は、変換エンジン312でよい。
変換エンジン312は、カメラサブシステム304の外部に位置付けられてよい。例えば、変換エンジン312は、ホストデバイス302上に位置付けられてよい。他の例において、変換エンジン312は、ホストデバイス302及びカメラサブシステム304の両方の外部にあってよい。さらに、変換エンジン312は、カメラサブシステム304に結合されてよい。
変換エンジン312は、複数の受信コマンドを、カメラサブシステム304の設定に固有である複数の画像コマンドに変換してよい。特に、変換エンジン312は、複数の受信コマンドを、カメラサブシステム304が処理することができる複数のアクセスに変換してよい。例えば、変換エンジン312は、複数の複雑な入力コマンドを複数の簡略コマンドに変換してよい。他の例において、変換エンジン312は、複数の入力コマンドを、CSI−3属性ゲット−セット要求に変換してよい。
複数のコマンドを変換するために、変換エンジン312は、変換コード308を使用してよい。変換エンジンは、カメラサブシステム304のメタデータストレージ306から取得されたハイレベル変換コード308を使用する。変換コード308は、また、カメラサブシステム304の外部に格納されてよい。特に、変換コード308は、プラットフォームストレージ314内に格納されてよい。ある例において、プラットフォームストレージ314は、ホストデバイス302上に含まれてよい。他の例において、プラットフォームストレージ314は、ホストデバイス302及びカメラサブシステム304の両方の外部にあってよい。プラットフォームストレージ314は、ホストデバイス302に結合されてよい。プラットフォームストレージ314は、任意のタイプのストレージ媒体でよい。例えば、プラットフォームストレージ314は、RAMメモリ、BIOS、またはディスクドライブでよい。変換コード308は、変換エンジンが変換コード308を見つけ出し、アクセスできるように、通常やり方で、ホストに格納されてよい。変換コード308は、また、他のプラットフォームストレージロケーションに、または他のプラットフォームストレージロケーションから格納されてよい。変換コードが格納されるロケーションは、変換コードストアとして知られている。プラットフォームニーズに応じて、ホストソフトウェアは、適切なコードストアからコードを取得するように設計されるであろう。変換エンジン308は、提供された複数のCCSコマンドを、カメラサブシステムが実行できる複数のアクセスに変換するためのコードを実行する。複数のアクセスは、複数のCSI−3属性ゲット/セットPDUパケットでよい。複数のCSI−3属性ゲット/セットPDUパケットは、CCSコマンドによって要求される挙動を引き起こさせるためにカメラサブシステムに送信されてよい。
変換エンジン312は、複数の変換されたコマンドをカメラサブシステム304に送信するように適合されてよい。例えば、変換エンジン312は、複数の変換されたコマンドをCSI−3属性310に送信してよい。変換エンジン312は、カメラサブシステム304によりネイティブにサポートされてない複数のコマンドのみを変換するように適合されてよい。従って、カメラに対する全てのコマンドが変換される必要はない。どの複数のコマンドが変換されるべきかを判断するために、変換エンジン308は、カメラサブシステム304上で、ゲットCCSサポート(Get_CCSSupport())コマンドをまず実行すべきである。複数の実施形態において、有効なCCSサポートテーブルが戻される場合には、変換エンジン308は、ネイティブに処理されることができるカメラサブシステム304に複数のコマンドを直接パスするために提供される情報を使用できる。さらに、複数の実施形態において、ホストによって要求されるすべてのコマンドがネイティブにサポートされることができる場合には、変換エンジンまたは変換コードストアに対する責務はない。このように、ホストデバイス302は、カメラサブシステム304が複数のコマンドの変換を開始する前に複数のコマンドを処理できるかどうかを判断するために、カメラサブシステム304にアクセスしてよい。カメラサブシステム304が複数のコマンドを処理できる場合、ホストデバイス302は、カメラサブシステム304に直接複数の入力コマンドを送信してよい。ある例において、複数のコマンドは、変換エンジン312に直接入力されてよい。他の例において、複数のコマンドは、ホストデバイス302に入力され、次に変換エンジン312に転送されてよい。
変換エンジン312は、デバイスドライバ126(図1)などのデバイスドライバ上に実装されたランタイム解釈言語サンドボックス内に実装されてよい。この方法では、ホストデバイスのカーネルは、変換エンジン312からイジェクトされてよい任意のコードから保護される。
複数の実施形態において、複数のRAWセンサ上の画像処理コマンドなどのCCS内のいくつかのコマンドは、選択的である、あるいは特定のカメラサブシステムまたはセンササブシステムの設定に適用されない。ホストソフトウェアを提供するために、予測可能なサポートされるコマンドのセット、多数のプロファイルは、様々な使用のために予め定義されることができる。プロファイルを実装すべく。カメラサブシステムは、上述のように、ネイティブにまたは変換されたサポートのいずれかを通じて、示されたコマンドのためのサポートを提供する。カメラは、また、任意の他の選択的コマンドに対するサポートを提供してよい。例えば、RAWカメラとして識別されるカメラは、RAWカメラCCSプロファイルを実装してよい。同様に、SoCカメラとして識別されるカメラサブシステムは、SoCカメラCCSプロファイルを実装してよい。
図4は、複数の実施形態に係るカメラサブシステムを初期化する方法400を図示する処理フロー図である。処理フロー図は、ホストデバイス100(図1)またはホストデバイス302(図3)などのホストデバイスによって利用されてよい。
ブロック402で、イメージデバイスが、識別される。複数の実施形態において、カメラを識別するために、ホストソフトウェアがデバイス属性を読み出して、デバイスクラス、製造元、モデル番号、シリアル番号、及び他の情報を識別してよい。例えば、ホストデバイスは、ホストデバイス及びカメラがUniProプロトコルに従って相互接続される場合、カメラの統合プロトコル(UniPro)デバイス記述子ブロック(DDB)物理層(LI)属性を読み出してよい。UniProプロトコルは、システム内の相互接続デバイスに対する規格を指定する。UniPro DDBは、デバイスを識別するために使用されることができる情報を含む。さらに、イメージデバイスのUniPro DDB LI属性は、帯域幅とリンクの電力機能との間などのイメージデバイスとホストデバイスとの間のリンクを定義するために使用されてよい。UniPro DDB LI属性は、デバイスクラス、製造元識別子、及び製品識別子を含む。複数の実施形態において、CSI−3属性がデバイスサブクラスなどのイメージデバイスについての情報を判断するために読み出されてよい。
複数の実施形態において、カメラは、Mobile Industry Processor Interface(MIPI)カメラシリアルインタフェース(CSI)アライアンスによる仕様に従って開発されたインタフェースを使用することで、ホストデバイスのプロセッサとインタフェースをとる。例えば、カメラシリアルインタフェースは、MIPI CSI−3インタフェースでよい。複数の実施形態において、CSIは、データ及びクロック信号との一方向の差分シリアルインタフェースであるデータ送信インタフェースを含む。ホストデバイスは、CSI−3属性を使用することで、カメラのサブクラスを判断してよい。
ブロック404で、イメージデバイスがCCSをサポートするかどうかが判断される。CCSがサポートされている場合、処理フローは、ブロック406に続く。CCSがサポートされていない場合、処理フローは、ブロック408に続く。この判断のために、ホストは、ゲットCCSサポート(Get CCSSupport())コマンドを実行することを試みてよい。ゲットCCSサポート(Get_CCSSupport())コマンドは、後述される転送メカニズムを使用することでカメラにより実行されてよい。カメラから返信された値が「0」である場合、CCSがサポートされていない。
複数の実施形態において、CCSがサポートされている場合、ホストデバイスは、カメラがネイティブにCCSをサポートするかどうかを判断してよい。例えば、ホストは、情報メタデータディレクトリ(Info MetadataDirectory())コマンドがサポートされているかどうかを判断するために、CSI−3属性またはUniPro DDB LI属性から取得されるデータを使用してよい。カメラがネイティブにCCSをサポートする場合、カメラは、CCSコマンドを使用することを開始してよい。
カメラがネイティブにCCSをサポートしていない場合、ホストは、変換コードブロブが利用可能であるかどうかを判断してよい。例えば、ホストは、変換コードブロブがメタデータにおいて利用可能であるかどうかを判断してよい。
ブロック406で、メタデータディレクトリが存在するかどうかが判断される。メタデータディレクトリが存在する場合、処理フローは、ブロック410に続く。メタデータディレクトリが存在しない場合、処理フローはブロック416に続く。
ブロック408で、ベンダー特有のソフトウェアがカメラをサポートし、有効にするために使用される。CCSがサポートされていない場合、処理が終了し、ベンダー特有のフローが使用されなければならない。
ブロック410で、変換コードがメタデータディレクトリを使用することで利用可能かどうかが判断される。変換コードが、メタデータディレクトリを使用することで利用可能である場合、処理フローはブロック414に続く。変換コードが、メタデータディレクトリを使用することで利用可能でない場合、処理フローは、ブロック412に続く。
ブロック412で、変換コードがシステム内のいずれかで利用可能であるかどうかが判断される。複数の実施形態において、変換コードが、プラットフォーム上のいずれかで利用可能であるかどうかが判断される。変換コードが、システム内で利用可能ではない場合、処理フローは、ブロック408に戻る。変換コードがシステム内で利用可能である場合、処理フローはブロック414に続く。ブロック414で、変換コードは、ロードされ、実行される。従って、複数の実施形態において、変換コードブロブが利用可能である場合、ホストは、そのブロブをロードし、変換エンジンを初期化してよい。変換ブロブがロードされる場合、ブロブは、ランタイム解釈言語サンドボックス内で実行されてよい。変換エンジンは、複数のコマンドの変換を開始してよい。変換コードブロブが利用可能でない場合、ホストは、プラットフォームに特有の方法で、プラットフォーム上のいずれかに利用可能な変換コードストアがあるかどうかを判断してよい。利用可能な変換コードストアがある場合、ホストは、変換コードストアをロードし、変換エンジンを初期化してよい。変換エンジンは、次に、カメラが実行できる複数のコマンドに、CCSからの複数のコマンドを変換することを開始してよい。複数の実施形態において、結果として得られる変換されたコマンドは、カメラコマンドにより要求される挙動を引き起こさせるべく、順にカメラに送信されるCSI−3属性ゲット/セットPDUパケットである。ブロック416で、複数のCCSコマンドが、カメラをサポート、制御、および有効にするために使用される。
図5は、複数の実施形態に従って、複数のカメラコマンドを変換するための方法500の処理フロー図である。上述の通り、複数のコマンドは、変換エンジンが図4のブロック414で変換コードを実行することにより生成される場合、変換されてよい。
ブロック502で、変換コードは、コードストアから受信され、変換エンジンを形成する。
上述の通り、変換コード及び変換エンジンは、カメラが実行できるコマンド、またはCSI−3属性ゲット/セット要求に変換される複雑なCCSコマンドを可能にする変換機能を形成する。変換コードは、後述のようにメタデータストレージサブシステムを使用することで格納されてよい。ブロック504で、イメージングデバイスコマンドが変換エンジンで受信される。複数の実施形態において、イメージングデバイスコマンドがデバイスドライバ126(図1)またはアプリケーション130(図1)から送信される。
ブロック506で、イメージングデバイスコマンドは、変換エンジンを使用することで変換されてよい。このように、ホストデバイスは、CSSコマンドをイメージングデバイスが処理できるフォーマットに変更または変換することができる。
複数の実施形態において、変換エンジンは、コマンドをCSI−3属性ゲット/セット要求に変換できる。転送メカニズムは、複数のCSI−3属性ゲット/セット要求に変換された複数のコマンドを実行するために使用されてよい。ブロック508で、変換されたイメージングデバイスコマンドは、変換されたイメージングデバイスコマンドにより要求される挙動を引き起こさせるために、イメージングデバイスに転送される。
CCSは、複数のイメージングデバイスに基づくCSI−3上に実装されてよい。上述の通り、複数のイメージングデバイスは、複数のカメラ及び複数のセンサを含む。複数の実施形態において、CSI−3イメージングデバイスは、ネイティブにCCSの複数のコマンドを実行することができ、それによって、ホストデバイスを用いた統合変更を簡単にし、またソフトウェア及びサポートのコストを低減する。 さらに、複数の実施形態において、複数のCCSコマンドは、ゲット及びセットアーキテクチャに基づく転送メカニズムを使用することで、ネイティブに実行されることができる。
従って、カメラに基づくCSI−3上でネイティブに実行されるべき複数のコマンドの転送は、CSI−3規格により定義されるようなカメラ用設定プロトコル(CPC)により定義されるCSI−3 GET、SET、RESPONSE、及びNOTIFYトランザクション挙動に基づく。CCSコマンドのGet_およびSet_の変数は、CSI−3 GET及びSETトランザクションに対応する。さらに、CCSコマンドのInfo_の変数は、一般的には、異なるコマンド識別子(ID)を用いて、Get_変数のロングバージョンとして実装される。コマンドのInfo_の変数が戻す情報は、Get_変数が一般的に戻す動的制御情報に比べて、かなり長くてよく、一般的に静的情報である。
Get_またはSet_変数のコマンドIDは、次のやり方でCSI−3属性IDにマップする。 CSI−3_Attribute=0x01000000+(CMD ID * 0x1000)
多くのコマンドに対して留意すべきことは、疑似コードの抽出が、根本的にちょうど属性ゲット/セット処理であるものの周囲の薄いカバーである。
例えば、0x010のIDを有するゲットコマンドステータス(Get_CommandStatus())コマンドは、(0x01000000+(0x010*0x1000)=0x01010000)へのトランザクションとして表されるであろう。このアドレスは、パケットデータユニット(PDU)の属性IDフィールドであろう。さらに、PDUは、4バイト転送を表す0のXFSIZE、及びGETを示す2のPDUタイプを有するであろう。このPDUは、その次に、CSI−3属性パケットにカプセル化され、カメラに送信されるであろう。その次に、ステータス値がホストに応答PDUで戻され、コマンドが完了する。
図6は、複数の実施形態に従って、ゲット及びセット属性に基づいてCCSコマンドを実行する転送メカニズムを有効にする方法600の処理フロー図である。ブロック602で、コマンドの属性識別(ID)が抽出されてよい。
ブロック604で、ゲットプロトコルデータユニット(PDU)は、イメージングデバイス内の画像ソースから複数の属性値を取得するために属性識別に基づいて、ホストデバイスからイメージングデバイスに送信されてよい。ゲットPDUは、CSI−3属性パケットにカプセル化され、その後、イメージングデバイスに送信されてよい。複数の実施形態において、イメージングデバイスのセンサは、ゲットPDUがホストデバイスからイメージングデバイスに送信される場合、コマンドを実行してよい。さらに、複数の実施形態において、イメージングデバイスのセンサは、ブロックなしにゲットPDUがホストデバイスからイメージングデバイスに送信される場合、コマンドを実行する。ブロックは、センサがビジーの場合にコマンドの遅延された実行について言及する。例えば、いくつかのコマンドは、完了するのに長い時間がかかるかもしれず、カメラは、実行時間の間にコマンドを処理するために利用可能でないかもしれない。しかしながら、カメラモジュールは、ゲットPDUが受信される順序で、応答PDUを戻さなければならない。カメラは、CPC Cポートにより提供されるL4フロー制御を使用して、ホストを引き留めておき、コマンドバッファがオーバーフローするのを防いでもよい。
例えば、コマンドのSet_変数は、実行するのに長い時間がかかり、ブロックを生じさせるかもしれない。これらのコマンドは、応答を戻さない。したがって、ホストは、ゲットコマンドステータス(Get CommandStatus())コマンドを使用して、いつ長いコマンドの実行が完了するかを判断してよい。いつコマンドの実行が完了し、センサが準備できるかを判断するために、ホストによってコマンドの応答が使用されることができるように、ゲットコマンドステータス(Get CommandStatus())コマンドが常にブロックなしにセンサにより処理されることが望ましい。
ブロック606で、応答PDUは、イメージングデバイスからホストデバイスに送信され、コマンドの実行を完了させてよい。応答PDUは、イメージングデバイス内の画像ソースから取得される属性値を含んでよい。
複数の実施形態において、CSI−3 Notify PDUは、イメージングデバイスからホストデバイスに送信されてよい。Notify PDUは、コマンドからの属性識別に基づく属性値を含まない。さらに、Set PDUがホストデバイスから送信される場合、Set PDUは、コマンドからの属性識別に基づいて属性値をイメージングデバイスに書き込んでよい。
カメラサブシステムは、また、カメラの詳細を識別し、カメラの固有のキャリブレーション及びチューニング情報を取得し、ファームウェアまたは他のコードストアを管理するために、ホストハードウェア及びソフトウェア処理を可能にするメタデータサブシステムを含んでよい。従って、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む。 多くの実装において、個々のメタデータ要素が、モジュール自体の不揮発性記憶装置、ホストファームウェア、及びホストOSプライマリストレージを含む個々のシステムデータストアに格納される。複数の実施形態において、データは、また、個々のコードストアに格納されてよい。さらに、複数の実施形態において、コードストア及びデータストアは、同一である。これら個々のストアのロケーションは、個々のシステムストレージ制約またはコストトレードオフが望ましいロケーションを変更するので、システムからシステムに変化するかもしれない。メタデータを管理する位置でのハイレベルソフトウェアのジョブを簡略化するために、CCSは、メタデータストレージ及び検索を管理するのに使用されることができる選択的なコマンドのセットを提供する。 カメラが、モジュール上の不揮発性記憶装置を管理するためのこれらのコマンドのネイティブなバージョンを実行するとともに、変換されたコマンドは、さらに、他のシステムストアへのアクセスを潜在的に提供してよい。
図7は、複数の実施形態に従って、センサ及びモジュール固有のメタデータを格納および取得することを可能にするメタデータストレージサブシステム700のブロック図である。複数の実施形態において、メタデータストレージシステムは、CSI−3に対するデータブロックストレージである。カメラメタデータは、ブロブにより構造化され、ブロブのそれぞれは、個別に管理可能でよい。1つのブロブは、データの1要素である。複数のブロブの例は、キャリブレーション情報、センサファームウェア、及びCCSサポートのためのコードを含む。従って、上述の変換コードは、ブロブである。これらのブロブは、システムの全域で個々の場所に格納されることができる。CCSトランザクションコードがそれぞれのブロブへのアクセスを有する限り、CCSトランザクションコードは、これらの個々のメタデータストアをソフトウェアに対する1つの協調的な観点にまとめることができる。
ホストソフトウェア702は、メタデータディレクトリを読み出すことにより利用可能なブロブを識別する。メタデータストレージコマンド704が、メタデータディレクトリへのアクセスを提供する。ホストソフトウェア702がメタデータディレクトリを読み出して、存在するブロブのタイプ、開始アドレスおよび長さ、並びにアクセス属性を判断する。ブロブは、カメラストレージ706、プラットフォームファームウェア708、またはプラットフォームストレージ712、あるいはそれらの組み合わせのいずれかに存在してよい。
具体的には、メタデータディレクトリ(MetadataDirectory())コマンドは、ディレクトリへのアクセスを提供する。情報メタデータ(Info_MetadataDirectory())コマンド変数は、ディレクトリのサイズを戻し、ディレクトリのサイズは、次にゲットメタデータディレクトリ(Get MetadataDirectory())コマンド変数を使用することで、フェッチされることができる。
個々のブロブをフェッチするために、2つの段階処理がホストによって使用される。まず、セットメタデータ(Set Metadata())コマンドが、転送の開始アドレスを示すために使用され、次に、ゲットメタデータ(Get_Metadata())コマンドがメタデータブロブのセグメントを転送する。個々のCSI−3PDUが一度に4096バイトまでの転送に制限されるので、複数のSet_/Get_シーケンスが、4KB制限より長いメタデータブロブをフェッチするのに必要であるかもしれない。
ブロブの開始アドレスは、CSI−3属性マッピングにフィットする4の倍数以外の任意の特定のパターンに従う必要はない。 取り付けられたEEPROMを使用してメタデータストレージコマンドをネイティブに実装するカメラが、ストレージデバイス内のリテラルアドレスを表すアドレスを使用する間、変換されたメタデータコマンドは、メタデータブロブが取得されるべきデータストアを表す最大バイトを使用してよい。
図8は、複数の実施形態に従って、メタデータストレージサブシステムを有効にする方法800の処理フロー図である。ブロック802で、利用可能なメタデータのディレクトリが作成される。ここで、メタデータは、個々のシステムデータストアに格納される。複数の実施形態において、メタデータは、カメラコマンド設定(CCS)変換コードブロックであり、ホストデバイスは、CCS変換コードブロックをロードし、初期化する。ブロック804で、メタデータは、ホストデバイスに要求されると、取得される。上述の通り、メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。複数の実施形態において、開始アドレスは、CSI−3属性マッピングに対応する。さらに、ホストデバイスは、ディレクトリを読み出して、イメージングデバイス上にあるメタデータのタイプ、メタデータの開始アドレス及び長さ、並びにメタデータのアクセス属性を判断する。ブロック806で、メタデータは、ホストデバイスに転送される。ブロック808で、メタデータは、実行される。図4から図6および図8の処理フロー図は、方法400、500、600、及び800のステップが特定の順に実行されること、または方法400、500、600、及び800のステップのすべてがすべての場合に含まれることを示すことを意図していない。さらに、任意の数の追加のステップが、特定のアプリケーションに応じて、方法400、500、600、及び800、またはそれらの組み合わせ内に含まれてよい。
図9は、複数の実施形態に従って、複数のカメラコマンドを変換するためのコードを格納する有形の非一時的コンピュータ可読媒体900を示すブロック図である。有形の非一時機械可読媒体は、コンピュータなどの機械により読み出し可能な形態で情報を格納または送信するための任意のメカニズムを含んでよい。例えば、機械可読媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、およびフラッシュメモリデバイスを含んでよい。有形の非一時的コンピュータ可読媒体900は、コンピュータバス904を介してプロセッサ902によってアクセスされてよい。さらに、有形の非一時的コンピュータ可読媒体900は、本明細書中に記載された方法を実現するようにプロセッサ902に命令するよう構成されたコードを含んでよい。
本明細書中で記載される種々のソフトウェアコンポーネントは、図9に示すような有形の非一時的コンピュータ可読媒体900上に格納されてよい。ストレージモジュール906は、コードストアから変換コードを受信して、変換エンジンを形成するように構成されてよい。さらに、変換モジュール908は、変換エンジンを使用することでイメージングデバイスコマンドを変換するように構成されてよい。転送モジュール910は、変換されたイメージングデバイスコマンドにより要求される挙動を引き起こさせるべく、変換されたイメージングデバイスコマンドをイメージングデバイスに転送してよい。
図9のブロック図は、有形の非一時的コンピュータ可読媒体900が図9に示されるコンポーネントをすべて含むように示すことを意図されない。さらに、有形の非一時的コンピュータ可読媒体900は、特定の実装の詳細に応じて、図9に示さない任意の数の追加コンポーネントを含んでよい。
図10は、複数の実施形態に従って、複数のカメラコマンドを変換する例示的なシステム1000のブロック図である。 同様な数字が付けられたアイテムは、図1に関連して記載される。いくつかの実施形態において、システム1000は、メディアシステムである。加えて、システム1000は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット、またはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイスなどに組み込まれてよい。
様々な実施形態において、システム1000は、ディスプレイ1004に結合してもよい。したプラットフォーム1002を備える。プラットフォーム1002は、コンテンツサービスデバイス1006、またはコンテンツ配信デバイス1008、または他の同様なコンテンツソースなどのコンテンツデバイスからコンテンツを受信してよい。1または複数のナビゲーション機能を含むナビゲーションコントローラ1010が、例えば、プラットフォーム1002及び/又はディスプレイ1004と情報をやりとりするのに使用されてよい。これらのコンポーネントの各々は、より詳細に後述される。
プラットフォーム1002は、チップセット1012、中央処理ユニット(CPU)102、メモリデバイス104、ストレージデバイス128、グラフィックスサブシステム1014、アプリケーション130および無線機1016の任意の組み合わせを含んでよい。チップセット1012は、CPU102、メモリデバイス104、グラフィックスサブシステム1014、ストレージデバイス128、アプリケーション130、及び無線機1016との間の相互通信を提供してよい。例えば、チップセット1012は、ストレージデバイス128との相互通信を提供することができる記憶アダプタ(図示せず)を含んでよい。
プロセッサ102は、複合命令セットコンピュータ(CISC)または縮小命令セットコンピュータ(RISC)、x86命令設定互換性プロセッサ、マルチコア、または任意のマイクロプロセッサまたは中央処理ユニット(CPU)として実装されてよい。いくつかの実施形態において、プロセッサ102は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどを含む。
メモリデバイス104は、限定されないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、またはスタティックRAM(SRAM)などの揮発性メモリデバイスとして実装されてよい。ストレージデバイス128は、限定されないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、取り付けストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM(同期DRAM)、及び/又はネットワークアクセス可能なストレージデバイスなどの不揮発性ストレージデバイスとして実装されてよい。いくつかの実施形態において、ストレージデバイス128は、例えば複数のハードドライブが含まれる場合に、高価なデジタルメディアに対して記憶性能の高められた防御を増加する技術を含む。
グラフィックスサブシステム1014は、表示用の静止画または動画などの画像の処理を実行してもよい。グラフィックスサブシステム1014は、例えば、GPU108、またはビジュアルプロセッシングユニット(VPU)などのグラフィックス処理ユニット(GPU)を含んでよい。 アナログまたはデジタルインタフェースは、グラフィックスサブシステム1014及びディスプレイ1004を通信可能に結合するために使用されてよい。例えば、インタフェースはHigh−Definition Multimedia Interface(DisplayPort、無線HDMI(登録商標)及び/又は複数の無線HD準拠技術)のいずれかであってもよい。グラフィックスサブシステム1014は、プロセッサまたはチップセット1012に集積されてよい。代わりに、グラフィックスサブシステム1014は、チップセット1012に通信可能に結合されるスタンドアロンカードでよい。
本明細書中に説明される複数のグラフィックス及び/又はビデオプロセシング技術は、様々なハードウェアアーキテクチャのかたちで実装されてもよい。例えば、グラフィックス及び/又は動画機能は、チップセット1012内に集積されてよい。あるいは、別個のグラフィックス及び/又はビデオプロセッサを使用してもよい。さらに他の実施形態として、複数のグラフィックス及び/又はビデオ機能は、汎用プロセッサ(マルチコアプロセッサを含む)によって実装されてもよい。さらなる実施形態において、複数の上記機能は家電機器のかたちで実装されてもよい。
無線機1016は、様々な適当な無線通信技術を用いて、信号を送信及び受信することができる1または複数の無線を含んでよい。そのような技術は、1または複数の無線ネットワークをまたがる通信を包含するものであってもよい。例示的な無線ネットワークは、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、ワイヤレス大都市圏ネットワーク(WMAN)、セルラーネットワーク、衛星ネットワークなどを含む。そのようなネットワークにわたる通信において、無線機1016は、1または複数の任意のバージョンの適用し得る規格に従って動作してよい。
ディスプレイ1004は、任意のテレビ型モニタまたはテレビ型ディスプレイを含んでよい。例えば、ディスプレイ1004は、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビなどを含んでよい。ディスプレイ1004は、デジタル及び/又はアナログでよい。いくつかの実施形態において、ディスプレイ1004は、ホログラフィックディスプレイである。また、ディスプレイ1004は、視覚投影を受け付ける透明な面でよい。そのようなプロジェクションは、種々の形式の情報、画像、オブジェクトなどを搬送してよい。例えば、複数のそのような投影は、移動拡張現実(MAR)アプリケーションの視覚的オーバレイであってもよい。1または複数のアプリケーション130の制御下で、プラットフォーム1002は、ディスプレイ1004上のユーザインターフェース1018を表示できる。
コンテンツサービスデバイス1006は、任意の国家サービス、国際サービス、または独立したサービスによりホストされることが可能である。これにより、例えば、インターネットを介してプラットフォーム1002にアクセス可能であってもよい。コンテンツサービスデバイス1006は、プラットフォーム1002及び/又はディスプレイ1004に結合されてよい。プラットフォーム1002及び/又はコンテンツサービスデバイス1006は、メディア情報をネットワーク134へおよびネットワーク134から通信(例えば、送信及び/受信)するためにネットワーク134に結合されてよい。コンテンツ配信デバイス1008は、また、プラットフォーム1002及び/又はディスプレイ1004に結合されてよい。
コンテンツサービスデバイス1006は、デジタル情報を伝えることができるケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、またはインターネット対応デバイスを含んでよい。加えて、コンテンツサービスデバイス1006は、ネットワーク134を介して、または直接に、コンテンツプロバイダと、プラットフォーム1002またはディスプレイ1004との間で一方向または双方向にコンテンツを通信することが可能な任意の他の同様なデバイスを含んでよい。コンテンツは、システム1000及びコンテンツプロバイダ内のコンポーネントの任意の1つへおよび任意の1つから一方向及び/又は双方向にネットワーク134を介して通信されてよいことが好ましい。コンテンツの複数の例として、例えば、ビデオ、音楽、医療、ゲーム情報、およびその他を含む任意のメディア情報を挙げることが可能である。コンテンツサービスデバイス1006は、メディア情報、デジタル情報、または他のコンテンツを含むケーブルテレビプログラムなどのコンテンツを受信してよい。コンテンツプロバイダの例は、数ある中で、任意のケーブルまたは衛星テレビ、あるいは無線またはインターネットコンテンツプロバイダを含んでよい。
いくつかの実施形態において、プラットフォーム1002は、1または複数のナビゲーション機能を含むナビゲーションコントローラ1010から制御信号を受信する。ナビゲーションコントローラ1010のナビゲーション機能は、例えばユーザインターフェース1018を用いて連携するために使用されてよい。ナビゲーションコントローラ1010は、ユーザが空間(例えば、連続的な多次元)のデータをコンピュータに入力することを可能にするハードウェア構成要素(具体的には、ヒューマンインターフェースデバイス)でよいポインティングデバイスでよい。グラフィカルユーザインタフェース(GUI)、ならびにテレビおよびモニタなどの多くのシステムは、コンピュータまたはテレビジョンの制御およびそれへのデータの提供を、ユーザが複数の物理的ジェスチャを用いてできるようにする。物理的ジェスチャは、限定されないが、表情、顔の動き、種々のリムの動き、体の動き、ボディランゲージ、またはそれらの組み合わせを含む。そのような物理的ジェスチャは、コマンドまたは命令として認識され変換されることができる。
ナビゲーションコントローラ1010のナビゲーション機能の複数の動作は、ディスプレイ1004上に表示されたポインタ、カーソル、フォーカスリング、または他の視覚的指標の複数の動作によって、ディスプレイ1004上に反映されてもよい。例えば、アプリケーション130の制御下で、ナビゲーションコントローラ1010に位置付けられたナビゲーション機能は、ユーザインターフェース1018上に表示された仮想ナビゲーション機能にマッピングされてよい。いくつかの実施形態において、ナビゲーションコントローラ1010は、別個のコンポーネントでなくてよいが、むしろ、プラットフォーム1002及び/又はディスプレイ1004に集積されてよい。
システム1000は、例えば、有効になった時、最初のブートアップの後に、ユーザがボタンのタッチによってプラットフォーム1002を即座にオンオフすることを可能にする技術を含むドライバ(不図示)を含んでよい。プログラムロジックは、プラットフォームが「オフ」になる場合、プラットフォーム1002が媒体アダプタまたは他のコンテンツサービスデバイス1006またはコンテンツ配信デバイス1008にコンテンツをストリームすることを可能にする。加えて、チップセット1012は、例えば10.1サラウンドサウンドオーディオ及び/又は高解像度7.1サラウンドサウンドオーディオのためのハードウェア及び/又はソフトウェアサポートを含んでよい。ドライバは、集中画像表示プラットフォームに対するグラフィックスドライバを含んでよい。いくつかの実施形態において、グラフィックスドライバは、周囲コンポーネント相互接続エクスプレス(PCIe)グラフィックスカードを含む。
様々な実施形態において、システム1000に示されるコンポーネントのいずれか1つまたは複数を統合してもよい。例えば、プラットフォーム1002及びコンテンツサービスデバイス1006は、統合されてよい。プラットフォーム1002及びコンテンツ配信デバイス1008は、統合されてよい。またはプラットフォーム1002、コンテンツサービスデバイス1006およびコンテンツ配信デバイス1008は、統合されてよい。いくつかの実施形態において、プラットフォーム1002及びディスプレイ1004は、集積ユニットでよい。例えば、ディスプレイ1004及びコンテンツサービスデバイス1006は、統合されてよい。またはディスプレイ1004及びコンテンツ配信デバイス1008は集積されてよい。
システム1000は、無線システムまたは有線システムとして実装されてもよい。無線システムとして実装される場合、システム1000は、1または複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジックなどのような無線共有媒体を介した通信のために適合した複数のコンポーネント及び複数のインタフェースを含んでよい。無線共有媒体の一例は、RFスペクトルなどの無線スペクトルの部分を含んでよい。有線システムとして実装される場合、システム1000は、入出力(I/O)アダプタ、対応する有線通信媒体とI/Oアダプタを接続する物理コネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどのような有線通信媒体を介して通信するように適合可能な複数のコンポーネント及び複数のインタフェースを含んでよい。有線通信媒体の例は、ワイヤ、ケーブル、金属リード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバーなどを含んでよい。
プラットフォーム1002は、情報を通信するべく、1または複数の論理チャネルまたは物理チャネルを確立してもよい。情報は、メディア情報および制御情報を含んでもよい。メディア情報は、ユーザ向けのコンテンツを表している任意のデータを指してもよい。コンテンツの例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール(Eメール)メッセージ、音声メールメッセージ、英数字シンボル、グラフィックス、画像、ビデオ、テキスト等からのデータを含んでよい。音声会話からのデータは、例えば、スピーチ情報、沈黙時間、バックグラウンド雑音、快適雑音、トーン等でよい。制御情報は、自動化システム向けの、複数のコマンド、複数の命令、または複数の制御ワードを表している任意のデータを指してもよい。例えば、制御情報は、システムを介してメディア情報をルーティングするために、または、所定のやり方でメディア情報を処理するようにノードに指示するために、使用されてもよい。しかしながら、実施形態は、図10に示されるまたは記載されるエレメントまたはコンテキストには限定されない。
図11は、複数の実施形態に従って、図10のシステム1000が具現化されることができる小型フォームファクタデバイス1100の概略である。同様な数字が付けられたアイテムは、図10に関連して記載される。いくつかの実施形態において、例えば、デバイス1100は、無線機能を有するモバイルコンピューティングデバイスとして実装される。例えば、モバイルコンピューティングデバイスはプロセッシングシステムと移動式の電源または電力供給装置(例えば1または複数のバッテリ)とを有する任意のデバイスを指してもよい。上述の通り、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレットまたはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含んでよい。
モバイルコンピューティングデバイスの例として、さらに、人が着用するよう構成されたコンピュータ、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューコンピュータ、クロージングコンピュータ、または任意の他の適したタイプのウェアラブルコンピュータなどを挙げることが可能である。例えば、モバイルコンピューティングデバイスは、音声通信及び/又はデータ通信と同様にコンピュータアプリケーションを実行することが可能なスマートフォンとして実装されてよい。いくつかの実施形態が、例として、スマートフォンとして実装される複数のモバイルコンピューティングデバイスにより説明されているのもかかわらず、他の実施形態が同様に複数の他の無線モバイルコンピューティングデバイスを使用して実装されてもよいと正しく理解されると思われる。
図11に示されるように、小型ファームファクタデバイス1100は、筐体1102、ディスプレイ1104、入出力(I/O)デバイス1106、およびアンテナ1108を含んでよい。デバイス1100は、また、ナビゲーション機能1110を含んでよい。ディスプレイ1104は、モバイルコンピューティングデバイスに適切な情報を表示するための任意の適切なディスプレイユニットを含んでよい。I/Oデバイス1106は、モバイルコンピューティングデバイスに情報を入力する適切なI/Oデバイスを含んでよい。例えば、I/Oデバイス1106は、英数字キーボード、テンキーパッド、タッチパッド、インプットキー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイスおよびソフトウェアなどを含んでよい。情報は、または、マイクを用いてデバイス1100に入力されてよい。そのような情報は、音声認識デバイスでデジタル化されてもよい。さらに、デバイス1100は、また、1または複数のカメラを含んでよい。カメラは、Mobile Industry Processor Interface(MIPI)アライアンスによって開発された規格に従ったデバイスのプロセッサとインタフェースを取ってよい。
[例1]
イメージングデバイスコマンドを変換するための装置が本明細書中に記載される。装置は、コードストアから変換コードを取得して、変換エンジンを形成するロジックと、変換エンジンで複数のイメージングデバイスコマンドを受信するロジックとを含む。装置は、また、変換エンジンを使用することで複数のイメージングデバイスコマンドを変換するロジックと、変換された複数のイメージングデバイスコマンドをイメージングデバイスに転送して、変換されたイメージングデバイスコマンドにより要求される挙動を引き起こさせるロジックとを含む。
イメージングデバイスコマンドを変換するための装置が本明細書中に記載される。装置は、コードストアから変換コードを取得して、変換エンジンを形成するロジックと、変換エンジンで複数のイメージングデバイスコマンドを受信するロジックとを含む。装置は、また、変換エンジンを使用することで複数のイメージングデバイスコマンドを変換するロジックと、変換された複数のイメージングデバイスコマンドをイメージングデバイスに転送して、変換されたイメージングデバイスコマンドにより要求される挙動を引き起こさせるロジックとを含む。
装置は、さらに、受信された複数のコマンドがイメージングデバイスによりネイティブにサポートされているかどうかを判断するロジックを含んでよい。変換コードは、イメージングデバイスコマンドを変換するために実行されてよい。コードストアは、イメージングデバイス内に位置付けられてよい。あるいは、コードストアは、ホストデバイスに結合されたプラットフォームストレージ内に位置付けられてよい。変換エンジンは、イメージングデバイスから遠く離れて位置付けられてよい。さらに、変換エンジンは、インターポーザーデバイス上に位置付けられてよい。コードストアは、インターポーザーデバイス、ホストデバイス、センサ、またはそれらの組み合わせの少なくとも1つに位置付けられてよい。変換エンジンは、複数のイメージングデバイスコマンドを複数のCSI−3属性ゲット/セットコマンドに変換されてよい。さらに、変換エンジンは、複数のイメージングデバイスコマンドをCSI−2レジスタ読出し/書込みコマンドに変換してよい。変換エンジンは、また、イメージングデバイスによりネイティブにサポートされていない複数のコマンドを変換してよい。
[例2]
複数のイメージングデバイスコマンドを変換するためのシステムが、本明細書中に記載される。システムは、ホストデバイス、ホストデバイスに結合されたイメージングデバイス、及び変換エンジンを含み、変換エンジンは、コードストアから取得されるコードを使用することで作成され、変換エンジンは、複数のイメージングデバイスコマンドを複数のイメージングデバイス固有コマンドに変換するように構成される。
複数のイメージングデバイスコマンドを変換するためのシステムが、本明細書中に記載される。システムは、ホストデバイス、ホストデバイスに結合されたイメージングデバイス、及び変換エンジンを含み、変換エンジンは、コードストアから取得されるコードを使用することで作成され、変換エンジンは、複数のイメージングデバイスコマンドを複数のイメージングデバイス固有コマンドに変換するように構成される。
ホストデバイスは、ラップトップコンピュータ、デスクトップ型コンピュータ、タブレットコンピュータ、モバイルデバイス、サーバ、またはそれらの組み合わせでよい。さらに、イメージングデバイス内に組み込まれたプロセッサまたはシーケンサが、複数のイメージングデバイスコマンドを変換するために使用されてよい。コードストアは、ホストデバイス内に位置付けられてよい。さらに、コードストアは、イメージングデバイス内に位置付けられてよい。コードストアは、また、ホストデバイスに結合されたプラットフォームストレージデバイス内に位置付けられてよい。変換エンジンは、イメージングデバイスから遠く離れて位置付けられてよい。変換エンジンは、また、複数のイメージングデバイスコマンドを複数のCSI−3属性ゲット/セットコマンドに変換してよい。変換エンジンは、イメージングデバイスに変換された複数のコマンドを送信して、変換されたイメージングデバイスコマンドにより要求される挙動を引き起こさせるように構成されてよい。さらに、変換エンジンは、イメージングデバイスによりネイティブにサポートされていない複数のコマンドを変換するように構成されてよい。変換コードは、ランタイム解釈言語サンドボックス内で実行されてよい。変換エンジンは、また、ホストデバイス上に位置付けられてよい。
[例3]
複数のイメージングデバイスコマンドを変換するための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が本明細書中に記載される。複数の命令は、コンピュータにコードストアから変換コードを取得させて、変換エンジンを形成し、複数の入力イメージングデバイスコマンドを受信する。複数の命令は、また、コンピュータに、複数の入力イメージングデバイスコマンドを複数のイメージングデバイス固有コマンドに変換させ、複数のイメージングデバイス固有コマンドをコンピュータに結合されたイメージングデバイスに送信させる。ここで、複数の入力イメージングデバイスコマンドは、変換手段により変換される。変換手段は、変換エンジンでよく、変換手段は、イメージングデバイスから遠く離れて位置付けられてよい。
複数のイメージングデバイスコマンドを変換するための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が本明細書中に記載される。複数の命令は、コンピュータにコードストアから変換コードを取得させて、変換エンジンを形成し、複数の入力イメージングデバイスコマンドを受信する。複数の命令は、また、コンピュータに、複数の入力イメージングデバイスコマンドを複数のイメージングデバイス固有コマンドに変換させ、複数のイメージングデバイス固有コマンドをコンピュータに結合されたイメージングデバイスに送信させる。ここで、複数の入力イメージングデバイスコマンドは、変換手段により変換される。変換手段は、変換エンジンでよく、変換手段は、イメージングデバイスから遠く離れて位置付けられてよい。
[例4]
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行する装置が、本明細書中に記載される。装置は、コマンドの属性識別を抽出するロジックと、イメージングデバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいてホストデバイスからイメージングデバイスに、ゲットプロトコルデータユニット(PDU)を送信するロジックとを含む。装置は、また、イメージングデバイスからホストデバイスに応答PDUを送信して、コマンドの実行を完了するロジックを含む。
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行する装置が、本明細書中に記載される。装置は、コマンドの属性識別を抽出するロジックと、イメージングデバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいてホストデバイスからイメージングデバイスに、ゲットプロトコルデータユニット(PDU)を送信するロジックとを含む。装置は、また、イメージングデバイスからホストデバイスに応答PDUを送信して、コマンドの実行を完了するロジックを含む。
イメージングデバイスのセンサは、ゲットPDUがホストデバイスからイメージングデバイスに送信される場合、コマンドを実行してよい。さらに、イメージングデバイスのセンサは、ゲットPDUがブロックなしにホストデバイスからイメージングデバイスに送信される場合、コマンドを実行してよい。ゲットPDUは、CSI−3属性パケットでカプセル化され、その後、イメージングデバイスに送信されてよい。さらに、応答PDUは、イメージングデバイス内の画像ソースから取得される複数の属性値を含んでよい。画像ソースは、イメージセンサ、システムオンチップ(SOC)イメージングデバイス、マルチチップイメージングデバイスモジュール、または画像信号プロセッサ(ISP)でよい。装置は、また、イメージングデバイスからホストデバイスに通知PDUを送信するロジックを含んでよい。ここで、通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、装置は、ホストデバイスからセットPDUを送信するロジックを含んでよい。ここで、セットPDUは、コマンドから属性識別に基づいて複数の属性値をイメージングデバイスに書き込む。
[例5]
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行するシステムが、本明細書中に記載される。システムは、ホストデバイス、及びホストデバイスに結合されたイメージングデバイスを含む。ここで、ゲットプロトコルデータユニット(PDU)は、ホストデバイスからイメージングデバイスに送信され、ゲットPDUは、イメージングデバイスの画像ソースからの複数の属性値に対する要求を含む。ここで、応答PDUは、イメージングデバイスからホストデバイスに送信され、コマンドの実行を完了させる。
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行するシステムが、本明細書中に記載される。システムは、ホストデバイス、及びホストデバイスに結合されたイメージングデバイスを含む。ここで、ゲットプロトコルデータユニット(PDU)は、ホストデバイスからイメージングデバイスに送信され、ゲットPDUは、イメージングデバイスの画像ソースからの複数の属性値に対する要求を含む。ここで、応答PDUは、イメージングデバイスからホストデバイスに送信され、コマンドの実行を完了させる。
ホストデバイスのセンサは、ゲットPDUがホストデバイスからイメージングデバイスに送信される場合、コマンドを実行してよい。イメージングデバイスのセンサは、また、ゲットPDUが、ブロックなしにホストデバイスからイメージングデバイスに送信される場合、コマンドを実行してよい。画像ソースは、RAWイメージングデバイスセンサ、チップイメージングデバイス内のシステム、マルチチップイメージングデバイスモジュール、または画像信号プロセッサでよい。通知PDUは、イメージングデバイスからホストデバイスに送信されてよい。ここで、通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。セットPDUは、イメージングデバイスからホストデバイスに送信されてよい。ここで、セットPDUは、コマンドからの属性識別に基づいて複数の属性値をイメージングデバイスに読み出す、または書き込む。
[例6]
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行するための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が本明細書中に記載される。複数の命令は、コンピュータにコマンドの属性識別を抽出させ、イメージングデバイス内の画像ソースから複数の属性値を取得するために属性識別に基づいて、ホストデバイスからイメージングデバイスへゲットプロトコルデータユニット(PDU)を送信させる。複数の命令は、また、コンピュータに、イメージングデバイスからホストデバイスに応答PDUを送信させて、コマンドの実行を完了させる。
ゲット及びセットアーキテクチャに基づく転送メカニズム内のコマンドを実行するための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が本明細書中に記載される。複数の命令は、コンピュータにコマンドの属性識別を抽出させ、イメージングデバイス内の画像ソースから複数の属性値を取得するために属性識別に基づいて、ホストデバイスからイメージングデバイスへゲットプロトコルデータユニット(PDU)を送信させる。複数の命令は、また、コンピュータに、イメージングデバイスからホストデバイスに応答PDUを送信させて、コマンドの実行を完了させる。
ゲットPDUは、CSI−3属性パケットでカプセル化され、その後、イメージングデバイスに送信されてよい。応答PDUは、イメージングデバイス内の画像ソースから取得される複数の属性値を含んでよい。画像ソースは、RAWイメージングデバイスセンサ、チップイメージングデバイス内のシステム、マルチチップイメージングデバイスモジュール、または画像信号プロセッサでよい。さらに、通知PDUは、イメージングデバイスからホストデバイスに送信されてよく、通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、セットPDUは、イメージングデバイスからホストデバイスに送信されてよく、セットPDUは、コマンドからの属性識別に基づいてイメージングデバイスに複数の属性値を書き込む。
[例7]
メタデータストレージサブシステムを有効にする装置が、本明細書中に記載される。装置は、利用可能なメタデータのディレクトリを形成するロジックと、ホストデバイスからの要求に応じてメタデータを取得するロジックとを含む。ここで、メタデータは、個々のシステムデータストアに格納される。装置は、また、ホストデバイスにメタデータを転送するロジックと、メタデータを実行するロジックとを含む。
メタデータストレージサブシステムを有効にする装置が、本明細書中に記載される。装置は、利用可能なメタデータのディレクトリを形成するロジックと、ホストデバイスからの要求に応じてメタデータを取得するロジックとを含む。ここで、メタデータは、個々のシステムデータストアに格納される。装置は、また、ホストデバイスにメタデータを転送するロジックと、メタデータを実行するロジックとを含む。
メタデータを取得するロジックは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。ホストデバイスは、ディレクトリを読み出して、イメージングデバイス上のメタデータの複数のタイプ、開始アドレス及びメタデータの長さ、並びにメタデータのアクセス属性を判断してよい。メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含んでよい。さらに、メタデータを取得するロジックは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、CSI−3属性マッピングに対応する。さらに、メタデータは、カメラコマンド設定(CCS)変換コードブロックであってよく、ホストデバイスは、CCS変換コードブロックをロードして初期化してよい。
[例8]
メタデータストレージサブシステムを有効にするシステムが本明細書中に記載される。システムは、ホストデバイスと、ホストデバイスに結合されたイメージングデバイスと、メタデータサブシステムとを含む。メタデータサブシステム内の利用可能なメタデータのディレクトリが作成され、メタデータが、ホストデバイスからの要求に応じて取得される。メタデータは、また、ホストデバイスを用いて転送され、実行される。
メタデータストレージサブシステムを有効にするシステムが本明細書中に記載される。システムは、ホストデバイスと、ホストデバイスに結合されたイメージングデバイスと、メタデータサブシステムとを含む。メタデータサブシステム内の利用可能なメタデータのディレクトリが作成され、メタデータが、ホストデバイスからの要求に応じて取得される。メタデータは、また、ホストデバイスを用いて転送され、実行される。
メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む。ホストデバイスは、ディレクトリを読み出して、イメージングデバイスに格納されたメタデータの複数のタイプ、メタデータの開始アドレス及び長さ、並びにメタデータのアクセス属性を判断してよい。さらに、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含んでよい。メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、CSI−3属性マッピングに対応する。メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックでよく、ホストデバイスは、CCS変換コードブロックをロードし、初期化する。
[例9]
メタデータストレージサブシステムを有効にするための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が、本明細書中に記載される。複数の命令は、コンピュータに、利用可能なメタデータのディレクトリを作成させ、メタデータは、個々のシステムデータストアに格納される。複数の命令は、また、コンピュータに、ホストデバイスからの要求に応じてメタデータを取得させ、ホストデバイスにメタデータを転送させ、メタデータを実行させる。
メタデータストレージサブシステムを有効にするための複数のコンピュータ実行可能な命令を有する有形の非一時コンピュータ可読記憶媒体が、本明細書中に記載される。複数の命令は、コンピュータに、利用可能なメタデータのディレクトリを作成させ、メタデータは、個々のシステムデータストアに格納される。複数の命令は、また、コンピュータに、ホストデバイスからの要求に応じてメタデータを取得させ、ホストデバイスにメタデータを転送させ、メタデータを実行させる。
メタデータを取得することは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。ホストデバイスは、ディレクトリを読み出して、イメージングデバイス上のメタデータの複数のタイプ、メタデータの開始アドレス及び長さ、並びにメタデータのアクセス属性を判断してよい。 さらに、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含んでよい。メタデータを取得することは、また、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、CSI−3属性マッピングに対応する。さらに、メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックでよく、ホストデバイスは、CCS変換コードブロックをロードし、初期化する。
[例10]
1または複数のイメージングデバイスコマンドを変換する方法が、本明細書中に記載される。方法は、変換コードを取得すること、及び1また複数のイメージングデバイスコマンドを受信することを含む。方法は、また、1または複数のイメージングデバイスコマンドをイメージングデバイスが処理することができる1または複数のアクセスに変換する変換コードを実行すること、及び1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせるべく、1または複数のアクセスをイメージングデバイスに送信することを含む。
1または複数のイメージングデバイスコマンドを変換する方法が、本明細書中に記載される。方法は、変換コードを取得すること、及び1また複数のイメージングデバイスコマンドを受信することを含む。方法は、また、1または複数のイメージングデバイスコマンドをイメージングデバイスが処理することができる1または複数のアクセスに変換する変換コードを実行すること、及び1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせるべく、1または複数のアクセスをイメージングデバイスに送信することを含む。
イメージングデバイスは、カメラを含んでよく、1または複数のイメージングデバイスコマンドは、1または複数のカメラコマンドを含んでよい。さらに、方法は、ホストデバイスに実装されてよい。さらに、方法は、ホストソフトウェアに実装されてよい。変換コードは、ハイレベル変換コードでよい。変換コードは、また、イメージングデバイスに位置付けられたストレージから取得されてよい。イメージングデバイスに位置付けられたストレージは、メタデータストレージでよい。変換コードは、イメージングデバイスの外部のストレージから取得されてよい。さらに、イメージングデバイスの外部のストレージは、プラットフォームストレージでよい。また、イメージングデバイスの外部のストレージは、メタデータストレージでよい。
イメージングデバイスが処理をすることができる1または複数のアクセスは、複数のCSI−3属性ゲット/セットパケットを含んでよい。さらに、複数のより複雑なコマンドが、複数のより簡略なコマンドに変換されてよい。より複雑なコマンドが、また、複数のCSI−3属性ゲット/セット要求に変換されてよい。方法は、また、受信された複数のコマンドが、イメージングデバイスによりネイティブにサポートされているかどうかを判断することを含んでよい。変換コードは、インターポーザーデバイス、ホストデバイス、センサ、またはそれらの組み合わせの少なくとも1つに格納されてよい。1または複数のイメージングデバイスコマンドが、複数のCSI−3属性ゲット/セットコマンドに変換されてよい。さらに、1または複数のイメージングデバイスコマンドが、CSI−2レジスタ読出し/書込みコマンドに変換されてよい。1または複数の変換されたイメージングデバイスコマンドは、また、イメージングデバイスによりネイティブにサポートされない複数のコマンドでよい。
[例11]
1または複数のイメージングデバイスコマンドを変換する装置が、本明細書中に記載される。装置は、変換コードを取得し、1または複数のイメージングデバイスコマンドを受信し、変換コードを実行して、イメージングデバイスが処理することができる1または複数のアクセスに、1または複数のイメージングデバイスコマンドを変換し、1または複数のアクセスをイメージングデバイスに送信して、1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせる、変換エンジンを含む。
1または複数のイメージングデバイスコマンドを変換する装置が、本明細書中に記載される。装置は、変換コードを取得し、1または複数のイメージングデバイスコマンドを受信し、変換コードを実行して、イメージングデバイスが処理することができる1または複数のアクセスに、1または複数のイメージングデバイスコマンドを変換し、1または複数のアクセスをイメージングデバイスに送信して、1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせる、変換エンジンを含む。
イメージングデバイスは、カメラを含んでよく、1または複数のイメージングデバイスコマンドは、1または複数のカメラコマンドを含む。変換エンジンは、ホストデバイスに含まれてよい。さらに、変換エンジンは、ホストソフトウェアを含んでよい。変換コードは、ハイレベル変換コードでよい。さらに、変換エンジンは、イメージングデバイスに位置付けられたストレージから変換コードを取得してよい。イメージングデバイスに位置付けられたストレージは、メタデータストレージでよい。さらに、変換エンジンは、イメージングデバイスの外部のストレージから変換コードを取得する。イメージングデバイスの外部のストレージは、プラットフォームストレージである。また、イメージングデバイスの外部のストレージは、メタデータストレージである。
イメージングデバイスが処理をすることができる1または複数のアクセスは、複数のCSI−3属性ゲット/セットパケットを含んでよい。さらに、変換エンジンは、複数のより複雑なコマンドを複数のより簡略なコマンドに変換してよい。変換エンジンは、また、複数のより複雑なコマンドを複数のCSI−3属性ゲット/セット要求に変換してよい。変換エンジンは、複数の受信されたコマンドがイメージングデバイスによりネイティブにサポートされているかどうかを判断してよい。変換コードは、インターポーザーデバイス、ホストデバイス、センサ、またはそれらの組み合わせの少なくとも1つに格納されてよい。変換エンジンは、1または複数のイメージングデバイスコマンドを、CSI−3属性ゲット/セットコマンドに変換してよい。さらに、変換エンジンは、1または複数のイメージングデバイスコマンドを、CSI−2レジスタ読出し/書込みコマンドに変換してよい。さらに、1または複数の変換されたイメージングデバイスコマンドは、イメージングデバイスによりネイティブにサポートされていない複数のコマンドでよい。また、変換エンジンは、ホストに含まれてよく、装置は、さらに、イメージングデバイスを含む。装置は、また、変換コードを格納するストレージデバイスを含んでよい。
[例12]
装置は、本明細書中に記載される。装置は、イメージングデバイスが処理をすることができる1または複数のアクセスを受信し、1または複数のイメージングデバイスコマンドにより要求される挙動を実行するイメージングデバイスを含む。ここで、1または複数のアクセスは、1または複数のイメージングデバイスコマンドの変換に対応し、変換は、変換コードを使用して実装される。
装置は、本明細書中に記載される。装置は、イメージングデバイスが処理をすることができる1または複数のアクセスを受信し、1または複数のイメージングデバイスコマンドにより要求される挙動を実行するイメージングデバイスを含む。ここで、1または複数のアクセスは、1または複数のイメージングデバイスコマンドの変換に対応し、変換は、変換コードを使用して実装される。
イメージングデバイスは、カメラを含んでよく、1または複数のイメージングデバイスコマンドは、1または複数のカメラコマンドを含む。変換エンジンは、1または複数のイメージングデバイスコマンドを1または複数のアクセスに変換してよい。変換エンジンは、ホストソフトウェアを含んでよい。さらに、変換コードは、ハイレベル変換コードでよい。変換エンジンは、イメージングデバイスに位置付けられたストレージから変換コードを取得してよい。イメージングデバイスは、さらに、変換コードを格納するストレージを含んでよい。ストレージは、メタデータストレージでよい。変換エンジンは、イメージングデバイスの外部のストレージから変換コードを取得してよい。さらに、イメージングデバイスの外部のストレージは、プラットフォームストレージでよい。さらに、イメージングデバイスの外部のストレージは、メタデータストレージでよい。
イメージングデバイスが処理することができる1または複数のアクセスは、CSI−3属性ゲット/セットパケットを含んでよい。変換エンジンは、複数のより複雑なコマンドを複数のより簡略なコマンドに変換してよい。さらに、変換エンジンは、複数のより複雑なコマンドを複数のCSI−3属性ゲット/セット要求に変換してよい。変換エンジンは、また、受信された複数のコマンドがイメージングデバイスによりネイティブにサポートされているかどうかを判断してよい。さらに、変換コードは、インターポーザーデバイス、ホストデバイス、センサまたはそれらの組み合わせの少なくとも1つに格納される。変換エンジンは、1または複数のイメージングデバイスコマンドを複数のCSI−3属性ゲット/セットコマンドに変換してよい。変換エンジンは、また、1または複数のイメージングデバイスコマンドを、複数のCSI−2レジスタ読出し/書込みコマンドに変換してよい。1または複数の変換されたイメージングデバイスコマンドは、イメージングデバイスにネイティブにサポートされない複数のコマンドでよい。さらに、装置は、変換コードを格納するストレージデバイスを含んでよい。
[例13]
複数のコンピュータ実行可能な命令をその上に有する有形の非一時コンピュータ可読記憶媒体が、本明細書中に記載される。複数の命令は、コンピュータに、変換コードを取得させ、1または複数のイメージングデバイスコマンドを受信させる。複数の命令は、コンピュータに、変換コードを実行させて、イメージングデバイスが処理することができる1または複数のアクセスに、1または複数のイメージングデバイスコマンドを変換し、1または複数のアクセスをイメージングデバイスに送信させて、1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせる。
複数のコンピュータ実行可能な命令をその上に有する有形の非一時コンピュータ可読記憶媒体が、本明細書中に記載される。複数の命令は、コンピュータに、変換コードを取得させ、1または複数のイメージングデバイスコマンドを受信させる。複数の命令は、コンピュータに、変換コードを実行させて、イメージングデバイスが処理することができる1または複数のアクセスに、1または複数のイメージングデバイスコマンドを変換し、1または複数のアクセスをイメージングデバイスに送信させて、1または複数のイメージングデバイスコマンドにより要求される挙動を引き起こさせる。
イメージングデバイスは、カメラを含み、1または複数のイメージングデバイスコマンドは、1または複数のカメラコマンドを含む。さらに、変換コードは、ハイレベル変換コードでよい。イメージングデバイスが処理することができる1または複数のアクセスは、CSI−3属性ゲット/セットパケットを含んでよい。さらに、複数のより複雑なコマンドは、複数のより簡略なコマンドに変換されてよい。さらに、より複雑なコマンドは、複数のCSI−3属性ゲット/セット要求に変換されてよい。複数の命令は、さらに、コンピュータに、受信された複数のコマンドが、イメージングデバイスによりネイティブにサポートされているかどうかを判断させてよい。複数の命令は、さらに、コンピュータに、1または複数のイメージングデバイスコマンドを、複数のCSI−3属性ゲット/セットコマンドに変換させてよい。さらに、複数の命令は、さらに、コンピュータに、1または複数のイメージングデバイスコマンドを、CSI−2レジスタ読出し/書込みコマンドに変換させてよい。1または複数の変換されたイメージングデバイスコマンドは、イメージングデバイスによりネイティブにサポートされない複数のコマンドでよい。複数の命令は、コンピュータに、1または複数のイメージングデバイスコマンドに、イメージングデバイスが処理することができる1または複数のアクセスに変換させてよい。イメージングデバイスは、カメラを含んでよく、1または複数のイメージングデバイスコマンドは、1または複数のカメラコマンドを含む。さらに、イメージングデバイスが処理することができる1または複数のアクセスは、複数のCSI−3属性ゲット/セットパケットを含んでよい。複数の命令は、さらに、コンピュータに、複数のより複雑なコマンドを複数のより簡略なコマンドに変換させてよい。複数の命令は、またさらに、コンピュータに、複数のより複雑なコマンドを複数のCSI−3属性ゲット/セット要求に変換させてよい。さらに、複数の命令は、さらに、コンピュータに、複数の受信されたコマンドがイメージングデバイスによりネイティブにサポートされているかどうかを判断させてよい。また、複数の命令は、さらに、コンピュータに、1または複数のイメージングデバイスコマンドを、CSI−3属性ゲット/セットコマンドに変換させてよい。さらに、複数の命令は、さらに、コンピュータに、1または複数のイメージングデバイスコマンドを、CSI−2レジスタ読出し/書込みコマンドに変換させてよい。
[例14]
コマンド転送を使用することでコマンドを実行する装置が本明細書中に記載される。装置は、属性パケットにカプセル化されたコマンドのプロトコルデータユニットをカプセル化するコントローラを含む。コントローラは、また、カプセル化されたプロトコルデータユニットをイメージングデバイスに送信し、イメージングデバイスからの応答プロトコルデータユニットでステータス値を受信してコマンドを完了させてよい。
コマンド転送を使用することでコマンドを実行する装置が本明細書中に記載される。装置は、属性パケットにカプセル化されたコマンドのプロトコルデータユニットをカプセル化するコントローラを含む。コントローラは、また、カプセル化されたプロトコルデータユニットをイメージングデバイスに送信し、イメージングデバイスからの応答プロトコルデータユニットでステータス値を受信してコマンドを完了させてよい。
イメージングデバイスは、カメラを含んでよく、コマンドは、カメラコマンドを含んでよい。さらに、コマンドは、CSI−3属性に対応してよい。さらに、プロトコルデータユニットは、ゲットプロトコルデータユニットでよい。装置は、ホストデバイスを含んでよい。さらに、コントローラは、コマンドの属性識別を抽出してよく、コントローラは、属性識別に基づいてプロトコルデータユニットを送信してよい。イメージングデバイスのセンサは、プロトコルデータユニットがイメージングデバイスに送信される場合、コマンドを実行してよい。さらに、イメージングデバイスのセンサは、プロトコルデータユニットがブロックなしにイメージングデバイスに送信される場合、コマンドを実行してよい。コントローラは、プロトコルデータユニットをCSI−3属性パケットにカプセル化し、その後、それをイメージングデバイスに送信してよい。さらに、応答プロトコルデータユニットは、イメージングデバイス内の画像ソースから取得された複数の属性値を含んでよい。さらに、コントローラは、イメージングデバイスの画像ソースから複数の属性値を取得してよい。画像ソースは、イメージセンサ、システムオンチップ(SOC)イメージングデバイス、マルチチップイメージングデバイスモジュール、または画像信号プロセッサ(ISP)であってよい。コントローラは、さらに、イメージングデバイスから通知プロトコルデータユニットを受信してよく、通知プロトコルデータユニットは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、コントローラは、また、設定プロトコルデータユニットをイメージングデバイスに送信してよく、設定プロトコルデータユニットは、コマンドからの属性識別に基づいてイメージングデバイスに複数の属性値を書き込む。
[例15]
コマンド転送を使用することでコマンドを実行するイメージングデバイスが、本明細書中に記載される。イメージングデバイスは、属性パケットにカプセル化されたコマンドのプロトコルデータユニットを受信し、応答プロトコルデータユニットでステータス値を戻してコマンドを完了させるコントローラを含む。
コマンド転送を使用することでコマンドを実行するイメージングデバイスが、本明細書中に記載される。イメージングデバイスは、属性パケットにカプセル化されたコマンドのプロトコルデータユニットを受信し、応答プロトコルデータユニットでステータス値を戻してコマンドを完了させるコントローラを含む。
プロトコルデータユニットは、ホストデバイスから受信されてよく、応答プロトコルデータユニットは、ホストデバイスに送信されてよい。イメージングデバイスは、カメラを含んでよく、コマンドは、カメラコマンドでよい。さらに、コマンドは、CSI−3属性に対応してよい。受信されたプロトコルデータユニットは、ゲットプロトコルデータユニットでよい。さらに、受信されたプロトコルデータユニットは、コマンドから抽出された属性識別に基づいてよい。イメージングデバイスは、また、プロトコルデータユニットが受信された場合に、コマンドを実行するセンサを含んでよい。さらに、イメージングデバイスは、また、プロトコルデータユニットがブロックなしに受信された場合、コマンドを実行するセンサを含んでよい。さらに、受信されプロトコルデータユニットは、CSI−3属性パケットにカプセル化されてよい。イメージングデバイスは、また、画像ソースを含んでよい。ここで、応答プロトコルデータユニットは、画像ソースから取得された複数の属性値を含む。画像ソースは、イメージセンサ、システムオンチップ(SOC)イメージングデバイス、マルチチップイメージングデバイスモジュール、または画像信号プロセッサ(ISP)でよい。画像ソースは、RAWイメージングデバイスセンサ、チップイメージングデバイス上のシステム、マルチチップイメージングデバイスモジュール、または画像信号プロセッサでよい。コントローラは、さらに、通知プロトコルデータユニットを送信してよい。ここで、ここで、通知プロトコルデータユニットは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、コントローラは、さらに、セットプロトコルデータユニットを受信して、コマンドからの属性識別に基づいて複数の属性値を書き込む。
[例16]
コマンド転送を使用することでコマンドを実行するシステムが本明細書中に記載される。システムは、属性パケットにカプセル化されたコマンドプロトコルデータユニットをカプセル化し、カプセル化されたプロトコルデータユニットを送信し、イメージングデバイスからの応答プロトコルデータユニットでステータス値を受信してコマンドを完了させるコントローラを有するホストを含む。システムは、また、イメージングデバイスを含み、イメージングデバイスは、ホストからカプセル化されたプロトコルデータユニットを受信し、応答プロトコルデータユニットでホストにステータス値を戻して、コマンドを完了させる別のコントローラを含む。
コマンド転送を使用することでコマンドを実行するシステムが本明細書中に記載される。システムは、属性パケットにカプセル化されたコマンドプロトコルデータユニットをカプセル化し、カプセル化されたプロトコルデータユニットを送信し、イメージングデバイスからの応答プロトコルデータユニットでステータス値を受信してコマンドを完了させるコントローラを有するホストを含む。システムは、また、イメージングデバイスを含み、イメージングデバイスは、ホストからカプセル化されたプロトコルデータユニットを受信し、応答プロトコルデータユニットでホストにステータス値を戻して、コマンドを完了させる別のコントローラを含む。
イメージングデバイスは、カメラを含んでよく、コマンドは、カメラコマンドでよい。コマンドは、CSI−3属性に対応してよい。プロトコルデータユニットは、ゲットプロトコルデータユニットでよい。さらに、ホストコントローラは、コマンドから属性識別を抽出し、属性識別に基づいてプロトコルデータユニットを送信してよい。イメージングデバイスは、さらに、プロトコルデータユニットがイメージングデバイスに送信される場合に、コマンドを実行するセンサを含んでよい。また、イメージングデバイスは、さらに、プロトコルデータユニットがブロックなしにイメージングデバイスに送信される場合、コマンドを実行するセンサを含んでよい。ホストコントローラは、CSI−3属性パケットでプロトコルデータユニットをカプセル化し、次に、それをイメージングデバイスに送信してよい。イメージングデバイスは、さらに、画像ソースを含んでよく、応答プロトコルデータユニットは、画像ソースから取得された複数の属性値を含む。さらに、イメージングデバイスは、さらに、画像ソースを含んでよく、ホストコントローラは、画像ソースから複数の属性値を取得してよい。画像ソースは、イメージセンサ、システムオンチップ(SOC)イメージングデバイス、マルチチップイメージングデバイスモジュール、または画像信号プロセッサ(ISP)でよい。画像ソースは、また、RAWイメージングデバイスセンサ、チップイメージングデバイス上のシステム、マルチチップイメージングデバイスモジュール、または画像信号プロセッサでよい。イメージングデバイスコントローラは、通知プロトコルデータユニットをホストに送信してよい。ここで、通知プロトコルデータユニットは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、ホストコントローラは、設定プロトコルデータユニットをイメージングデバイスに送信してよい。ここで、設定プロトコルデータユニットは、コマンドからの属性識別に基づいて、イメージングデバイスに複数の属性値を書き込む。
[例17]
装置は、本明細書中に記載される。装置は、イメージングデバイスメタデータを構造化する複数のブロブ内に含まれる複数の利用可能なブロブを識別し、識別された複数のブロブに応じてイメージングデバイスメタデータを構造化する複数のブロブに含まれる個々のブロブをフェッチし、フェッチされた個々のブロブを実行するホストコントローラを含む。
装置は、本明細書中に記載される。装置は、イメージングデバイスメタデータを構造化する複数のブロブ内に含まれる複数の利用可能なブロブを識別し、識別された複数のブロブに応じてイメージングデバイスメタデータを構造化する複数のブロブに含まれる個々のブロブをフェッチし、フェッチされた個々のブロブを実行するホストコントローラを含む。
イメージングデバイスメタデータは、カメラメタデータを含んでよい。ホストコントローラは、また、利用可能なメタデータのディレクトリを形成してよく、メタデータは、個々のシステムデータストアに格納されてよい。ホストコントローラは、さらに、イメージングデバイスメタデータを取得してよい。さらに、ホストコントローラは、イメージングデバイスメタデータをさらに実行してよい。イメージングデバイスメタデータの検索は、イメージングデバイスメタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよい。さらに、ホストコントローラは、ディレクトリを読み出して、イメージングデバイス上にあるメタデータのタイプ、メタデータの開始アドレス及び長さ、並びにメタデータのアクセス属性を判断する。イメージングデバイスメタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含んでよい。さらに、イメージングデバイスメタデータの検索は、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含んでよく、開始アドレスは、CSI−3属性マッピングに対応してよい。イメージングデバイスメタデータは、カメラコマンド設定変換コードブロックを含んでよく、ホストコントローラは、カメラコマンド設定変換コードブロックをロードして初期化してよい。
[例18]
装置は、本明細書中に記載される。装置は、イメージングデバイスメタデータを識別し、識別されたイメージングデバイスメタデータをフェッチし、フェッチされたイメージングデバイスメタデータを実行するホストコントローラを含む。
装置は、本明細書中に記載される。装置は、イメージングデバイスメタデータを識別し、識別されたイメージングデバイスメタデータをフェッチし、フェッチされたイメージングデバイスメタデータを実行するホストコントローラを含む。
イメージングデバイスメタデータは、カメラメタデータを含んでよい。さらに、ホストコントローラは、利用可能なメタデータディレクトリを形成してよく、メタデータは、個々のシステムデータストアに格納される。ホストコントローラは、また、イメージングデバイスメタデータを含むデータ転送の開始アドレスを示すコマンドを実行することによりイメージングデバイスメタデータをフェッチしてよい。さらに、ホストコントローラは、ディレクトリを読み出して、イメージングデバイス上にあるメタデータのタイプ、メタデータの開始アドレス及び長さ、並びにメタデータのアクセス属性を判断してよい。イメージングデバイスメタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含んでよい。ホストコントローラは、メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することでイメージングデバイスメタデータをフェッチしてよく、開始アドレスは、CSI−3属性マッピングに対応する。イメージングデバイスメタデータは、カメラコマンド設定変換コードブロックを含んでよく、ホストコントローラは、カメラコマンド設定変換コードブロックをロードして初期化する。
本技術は、様々な変更及び代替形に影響を受けやすく、その上、上述の例示的な例は、例としてのみ示されている。技術は、本明細書中に開示された特定の例に限定されることを意図していないことが理解される。実際には、本技術は、添付の請求項の真の趣旨および範囲内に含まれる全ての代替例、変更および同等のものを含む。さらに、一例からの複数のエレメントまたは複数の機能は、任意の数の例の組み合わせで使用されてよい。
上述の例における個別の事柄は1または複数の実施形態のいずれにおいても用いることができることを理解されたい。例えば、上述のコンピューティングデバイス、装置、またはシステムのすべてのオプションの機能が、また、本明細書中に記載された方法またはコンピュータ可読媒体のいずれに関連して実装されてよい。さらに、フロー図及び/又は状態図は、複数の実施形態を説明するために本明細書中で使用されているが、本発明は、これらの図面または対応する本明細書中の説明に限定されない。例えば、フローは、それぞれの図示されたブロックまたは状態を通じて、あるいは本明細書中に図示および記載された全く同じ順序で、動く必要はない。
本発明は、本明細書中で列挙された特定の詳細に限定されない。実際、本開示の恩恵を有する当業者であれば、上記の記載及び図面に対しての多くの他の変更が本発明の範囲を逸脱しない範囲で可能であることを理解できるであろう。従って、以下の請求項は、本発明の範囲を定義する任意の補正を含むものである。
本発明は、本明細書中で列挙された特定の詳細に限定されない。実際、本開示の恩恵を有する当業者であれば、上記の記載及び図面に対しての多くの他の変更が本発明の範囲を逸脱しない範囲で可能であることを理解できるであろう。従って、以下の請求項は、本発明の範囲を定義する任意の補正を含むものである。
[項目1]
メタデータストレージサブシステムを有効にするための装置であって、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを形成するロジックと、
ホストデバイスからの要求に応じて、上記メタデータを取得するロジックと、
上記ホストデバイスに上記メタデータを転送するロジックと、
上記メタデータを実行するロジックと
を備える装置。
[項目2]
上記メタデータを取得する上記ロジックは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目1に記載の装置。
[項目3]
上記ホストデバイスは、上記ディレクトリを読み出して、イメージングデバイス上の上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目1または項目2に記載の装置。
[項目4]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目1から項目3のいずれか1つに記載の装置。
[項目5]
上記メタデータを取得するロジックは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目1から項目4のいずれか1つに記載の装置。
[項目6]
上記メタデータは、カメラコマンド設定(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードして初期化する、項目1から項目5のいずれか1つに記載の装置。
[項目7]
メタデータストレージサブシステムを有効にするためのシステムであって、
ホストデバイスと、
上記ホストデバイスに結合されたイメージングデバイスと、
メタデータサブシステムと
を備え、
上記メタデータサブシステム内の利用可能なメタデータのディレクトリが作成され、上記メタデータが、上記ホストデバイスからの要求に応じて取得され、上記メタデータが、上記ホストデバイスを用いて転送され、実行される、システム。
[項目8]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目7に記載のシステム。
[項目9]
上記ホストデバイスは、上記ディレクトリを読み出して、上記イメージングデバイスに格納された上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目7または項目8に記載のシステム。
[項目10]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目7から項目9のいずれか1つに記載のシステム。
[項目11]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目7から項目10のいずれか1つに記載のシステム。
[項目12]
上記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードし、初期化する、項目7から項目11のいずれか1つに記載のシステム。
[項目13]
コンピュータをメタデータストレージサブシステムとして機能させるためのプログラムであって、
上記コンピュータに、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを作成すること、
ホストデバイスからの要求に応じて上記メタデータを取得すること、
ホストデバイスに上記メタデータを転送すること、
上記メタデータを実行すること
を実行させる、プログラム。
[項目14]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目13に記載のプログラム。
[項目15]
上記ホストデバイスは、上記ディレクトリを読み出して、イメージングデバイス上の上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目13または項目14に記載のプログラム。
[項目16]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目13から項目15のいずれか1つに記載のプログラム。
[項目17]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目13から項目16のいずれか1つに記載のプログラム。
[項目18]
上記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードし、初期化する、項目13から項目17のいずれか1つに記載のプログラム。
[項目1]
メタデータストレージサブシステムを有効にするための装置であって、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを形成するロジックと、
ホストデバイスからの要求に応じて、上記メタデータを取得するロジックと、
上記ホストデバイスに上記メタデータを転送するロジックと、
上記メタデータを実行するロジックと
を備える装置。
[項目2]
上記メタデータを取得する上記ロジックは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目1に記載の装置。
[項目3]
上記ホストデバイスは、上記ディレクトリを読み出して、イメージングデバイス上の上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目1または項目2に記載の装置。
[項目4]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目1から項目3のいずれか1つに記載の装置。
[項目5]
上記メタデータを取得するロジックは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目1から項目4のいずれか1つに記載の装置。
[項目6]
上記メタデータは、カメラコマンド設定(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードして初期化する、項目1から項目5のいずれか1つに記載の装置。
[項目7]
メタデータストレージサブシステムを有効にするためのシステムであって、
ホストデバイスと、
上記ホストデバイスに結合されたイメージングデバイスと、
メタデータサブシステムと
を備え、
上記メタデータサブシステム内の利用可能なメタデータのディレクトリが作成され、上記メタデータが、上記ホストデバイスからの要求に応じて取得され、上記メタデータが、上記ホストデバイスを用いて転送され、実行される、システム。
[項目8]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目7に記載のシステム。
[項目9]
上記ホストデバイスは、上記ディレクトリを読み出して、上記イメージングデバイスに格納された上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目7または項目8に記載のシステム。
[項目10]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目7から項目9のいずれか1つに記載のシステム。
[項目11]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目7から項目10のいずれか1つに記載のシステム。
[項目12]
上記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードし、初期化する、項目7から項目11のいずれか1つに記載のシステム。
[項目13]
コンピュータをメタデータストレージサブシステムとして機能させるためのプログラムであって、
上記コンピュータに、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを作成すること、
ホストデバイスからの要求に応じて上記メタデータを取得すること、
ホストデバイスに上記メタデータを転送すること、
上記メタデータを実行すること
を実行させる、プログラム。
[項目14]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、項目13に記載のプログラム。
[項目15]
上記ホストデバイスは、上記ディレクトリを読み出して、イメージングデバイス上の上記メタデータの複数のタイプ、上記メタデータの開始アドレス及び長さ、並びに上記メタデータのアクセス属性を判断する、項目13または項目14に記載のプログラム。
[項目16]
上記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、項目13から項目15のいずれか1つに記載のプログラム。
[項目17]
上記メタデータを取得することは、上記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、上記開始アドレスは、CSI−3属性マッピングに対応する、項目13から項目16のいずれか1つに記載のプログラム。
[項目18]
上記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、上記ホストデバイスは、上記CCS変換コードブロックをロードし、初期化する、項目13から項目17のいずれか1つに記載のプログラム。
Claims (18)
- メタデータストレージサブシステムを有効にするための装置であって、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを形成するロジックと、
ホストデバイスからの要求に応じて、前記メタデータを取得するロジックと、
前記ホストデバイスに前記メタデータを転送するロジックと、
前記メタデータを実行するロジックと
を備える装置。 - 前記メタデータを取得する前記ロジックは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、請求項1に記載の装置。
- 前記ホストデバイスは、前記ディレクトリを読み出して、イメージングデバイス上の前記メタデータの複数のタイプ、前記メタデータの開始アドレス及び長さ、並びに前記メタデータのアクセス属性を判断する、請求項1または請求項2に記載の装置。
- 前記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、請求項1から請求項3のいずれか1つに記載の装置。
- 前記メタデータを取得するロジックは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、前記開始アドレスは、CSI−3属性マッピングに対応する、請求項1から請求項4のいずれか1つに記載の装置。
- 前記メタデータは、カメラコマンド設定(CCS)変換コードブロックであり、前記ホストデバイスは、前記CCS変換コードブロックをロードして初期化する、請求項1から請求項5のいずれか1つに記載の装置。
- メタデータストレージサブシステムを有効にするためのシステムであって、
ホストデバイスと、
前記ホストデバイスに結合されたイメージングデバイスと、
メタデータサブシステムと
を備え、
前記メタデータサブシステム内の利用可能なメタデータのディレクトリが作成され、前記メタデータが、前記ホストデバイスからの要求に応じて取得され、前記メタデータが、前記ホストデバイスを用いて転送され、実行される、システム。 - 前記メタデータを取得することは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、請求項7に記載のシステム。
- 前記ホストデバイスは、前記ディレクトリを読み出して、前記イメージングデバイスに格納された前記メタデータの複数のタイプ、前記メタデータの開始アドレス及び長さ、並びに前記メタデータのアクセス属性を判断する、請求項7または請求項8に記載のシステム。
- 前記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、請求項7から請求項9のいずれか1つに記載のシステム。
- 前記メタデータを取得することは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、前記開始アドレスは、CSI−3属性マッピングに対応する、請求項7から請求項10のいずれか1つに記載のシステム。
- 前記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、前記ホストデバイスは、前記CCS変換コードブロックをロードし、初期化する、請求項7から請求項11のいずれか1つに記載のシステム。
- コンピュータをメタデータストレージサブシステムとして機能させるためのプログラムであって、
前記コンピュータに、
個々のシステムデータストアに格納された利用可能なメタデータのディレクトリを作成すること、
ホストデバイスからの要求に応じて前記メタデータを取得すること、
ホストデバイスに前記メタデータを転送すること、
前記メタデータを実行すること
を実行させる、プログラム。 - 前記メタデータを取得することは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含む、請求項13に記載のプログラム。
- 前記ホストデバイスは、前記ディレクトリを読み出して、イメージングデバイス上の前記メタデータの複数のタイプ、前記メタデータの開始アドレス及び長さ、並びに前記メタデータのアクセス属性を判断する、請求項13または請求項14に記載のプログラム。
- 前記メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、イメージングデバイスファームウェア、またはそれらの組み合わせの少なくとも1つを含む、請求項13から請求項15のいずれか1つに記載のプログラム。
- 前記メタデータを取得することは、前記メタデータを含むデータ転送の開始アドレスを示すコマンドを実行することを含み、前記開始アドレスは、CSI−3属性マッピングに対応する、請求項13から請求項16のいずれか1つに記載のプログラム。
- 前記メタデータは、コマンドイメージングデバイスセット(CCS)変換コードブロックであり、前記ホストデバイスは、前記CCS変換コードブロックをロードし、初期化する、請求項13から請求項17のいずれか1つに記載のプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/728,924 US9686460B2 (en) | 2012-12-27 | 2012-12-27 | Enabling a metadata storage subsystem |
US13/728,924 | 2012-12-27 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015544058A Division JP2016507796A (ja) | 2012-12-27 | 2013-06-19 | メタデータストレージサブシステムの実現 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016029583A true JP2016029583A (ja) | 2016-03-03 |
Family
ID=51016777
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015544058A Pending JP2016507796A (ja) | 2012-12-27 | 2013-06-19 | メタデータストレージサブシステムの実現 |
JP2015206531A Pending JP2016029583A (ja) | 2012-12-27 | 2015-10-20 | メタデータストレージサブシステムの実現 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015544058A Pending JP2016507796A (ja) | 2012-12-27 | 2013-06-19 | メタデータストレージサブシステムの実現 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9686460B2 (ja) |
EP (2) | EP3086224A1 (ja) |
JP (2) | JP2016507796A (ja) |
KR (2) | KR101691760B1 (ja) |
CN (2) | CN105227850B (ja) |
WO (1) | WO2014105139A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9244694B2 (en) | 2012-12-27 | 2016-01-26 | Intel Corporation | Executing a command within a transport mechanism based on a get and set architecture |
US9686460B2 (en) | 2012-12-27 | 2017-06-20 | Intel Corporation | Enabling a metadata storage subsystem |
JP2015220693A (ja) * | 2014-05-20 | 2015-12-07 | キヤノン株式会社 | 撮像装置、撮像システム、及びそれらの制御方法、ならびにプログラム |
EP3236668A1 (en) * | 2016-04-18 | 2017-10-25 | ABB Schweiz AG | Method and system for reproducing an instrument`s calibration certificate |
US20180027174A1 (en) * | 2016-07-19 | 2018-01-25 | Qualcomm Incorporated | Signaling camera configuration changes using metadata defined for a camera command set |
EP3445045A1 (en) * | 2017-08-18 | 2019-02-20 | NXP USA, Inc. | Video device and method for embedded data capture on a virtual channel |
KR20190020552A (ko) | 2017-08-21 | 2019-03-04 | (주)원지리정보 | 고해상도 위성영상 메타데이터를 이용한 영상변환 일괄처리방법 |
KR102391480B1 (ko) * | 2017-11-06 | 2022-04-29 | 삼성디스플레이 주식회사 | 디스플레이 구동 집적 회로 및 이를 포함하는 디스플레이 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339117A (ja) * | 1999-03-19 | 2000-12-08 | Seiko Epson Corp | データ通信装置 |
JP2005260648A (ja) * | 2004-03-12 | 2005-09-22 | Matsushita Electric Ind Co Ltd | 記録再生装置、およびその制御システム |
JP2007208526A (ja) * | 2006-01-31 | 2007-08-16 | Canon Inc | 画像処理装置及びその制御方法 |
JP2011024097A (ja) * | 2009-07-17 | 2011-02-03 | Canon Inc | 撮像装置、撮影処理方法及びプログラム |
JP2011525078A (ja) * | 2008-06-18 | 2011-09-08 | エーティーアイ・テクノロジーズ・ユーエルシー | グラフィックスマルチメディアic及びその動作の方法 |
US20110292221A1 (en) * | 2010-05-26 | 2011-12-01 | Micorsoft Corporation | Automatic camera |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001052178A1 (en) | 2000-01-13 | 2001-07-19 | Digimarc Corporation | Authenticating metadata and embedding metadata in watermarks of media signals |
US6629104B1 (en) * | 2000-11-22 | 2003-09-30 | Eastman Kodak Company | Method for adding personalized metadata to a collection of digital images |
JP4236830B2 (ja) | 2001-07-09 | 2009-03-11 | 株式会社ルネサステクノロジ | アップロード機能付き記憶装置 |
GB2378275B (en) * | 2001-07-31 | 2005-06-22 | Hewlett Packard Co | Distributed metadata processing system |
US7929808B2 (en) | 2001-10-30 | 2011-04-19 | Hewlett-Packard Development Company, L.P. | Systems and methods for generating digital images having image meta-data combined with the image data |
US7068306B2 (en) | 2002-01-02 | 2006-06-27 | Hewlett-Packard Development Company, L.P. | Proxy-based remote control method and system for a digital camera |
US7433546B2 (en) | 2004-10-25 | 2008-10-07 | Apple Inc. | Image scaling arrangement |
US7164907B2 (en) | 2004-01-13 | 2007-01-16 | Qualcomm Inc. | Automated over the air plug-in device recognition and software driver download |
JP2006222530A (ja) | 2005-02-08 | 2006-08-24 | Canon Inc | デジタルカメラ |
JP5170961B2 (ja) | 2006-02-01 | 2013-03-27 | ソニー株式会社 | 画像処理システム、画像処理装置および方法、プログラム、並びに記録媒体 |
WO2007131132A2 (en) * | 2006-05-03 | 2007-11-15 | Voxant, Inc. | System and method for collecting and distributing content |
JP5037862B2 (ja) | 2006-06-14 | 2012-10-03 | キヤノン株式会社 | 情報処理装置及び方法、並びにプログラム |
US20080033919A1 (en) * | 2006-08-04 | 2008-02-07 | Yan Arrouye | Methods and systems for managing data |
US7990992B2 (en) | 2008-06-19 | 2011-08-02 | Nokia Corporation | Electronically configurable interface |
WO2010042703A2 (en) * | 2008-10-09 | 2010-04-15 | Hillcrest Laboratories, Inc. | Methods and systems for analyzing parts of an electronic file |
US8937930B2 (en) | 2009-11-19 | 2015-01-20 | Qualcomm, Incorporated | Virtual peripheral hub device and system |
US8896668B2 (en) * | 2010-04-05 | 2014-11-25 | Qualcomm Incorporated | Combining data from multiple image sensors |
US20110242355A1 (en) * | 2010-04-05 | 2011-10-06 | Qualcomm Incorporated | Combining data from multiple image sensors |
US8823856B2 (en) * | 2010-10-12 | 2014-09-02 | Blackberry Limited | Convergence feedback indicator, provided when taking a picture in a camera application |
EP2646924A4 (en) | 2010-11-29 | 2014-07-09 | Mce Sys Ltd | HOST DEVICE AND OPERATING METHOD COUPLED TO A USB PERIPHERAL DEVICE |
US20130179402A1 (en) * | 2012-01-09 | 2013-07-11 | International Business Machines Corporation | Defining and Detecting Bundle Information in Databases |
US20140119463A1 (en) * | 2012-10-29 | 2014-05-01 | Texas Instruments Incorporated | Scalable Multifunction Serial Link Interface |
US9686460B2 (en) | 2012-12-27 | 2017-06-20 | Intel Corporation | Enabling a metadata storage subsystem |
-
2012
- 2012-12-27 US US13/728,924 patent/US9686460B2/en active Active
- 2012-12-28 US US13/730,353 patent/US9667849B2/en active Active
-
2013
- 2013-06-19 KR KR1020157013927A patent/KR101691760B1/ko active IP Right Grant
- 2013-06-19 CN CN201510743258.5A patent/CN105227850B/zh active Active
- 2013-06-19 EP EP15196592.8A patent/EP3086224A1/en not_active Withdrawn
- 2013-06-19 WO PCT/US2013/046465 patent/WO2014105139A1/en active Application Filing
- 2013-06-19 CN CN201380061785.7A patent/CN104798065A/zh active Pending
- 2013-06-19 EP EP13868165.5A patent/EP2939140A4/en not_active Withdrawn
- 2013-06-19 JP JP2015544058A patent/JP2016507796A/ja active Pending
- 2013-06-19 KR KR1020157030697A patent/KR101654053B1/ko active IP Right Grant
-
2015
- 2015-10-20 JP JP2015206531A patent/JP2016029583A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339117A (ja) * | 1999-03-19 | 2000-12-08 | Seiko Epson Corp | データ通信装置 |
JP2005260648A (ja) * | 2004-03-12 | 2005-09-22 | Matsushita Electric Ind Co Ltd | 記録再生装置、およびその制御システム |
JP2007208526A (ja) * | 2006-01-31 | 2007-08-16 | Canon Inc | 画像処理装置及びその制御方法 |
JP2011525078A (ja) * | 2008-06-18 | 2011-09-08 | エーティーアイ・テクノロジーズ・ユーエルシー | グラフィックスマルチメディアic及びその動作の方法 |
JP2011024097A (ja) * | 2009-07-17 | 2011-02-03 | Canon Inc | 撮像装置、撮影処理方法及びプログラム |
US20110292221A1 (en) * | 2010-05-26 | 2011-12-01 | Micorsoft Corporation | Automatic camera |
Also Published As
Publication number | Publication date |
---|---|
EP3086224A1 (en) | 2016-10-26 |
EP2939140A4 (en) | 2016-10-12 |
US20140184828A1 (en) | 2014-07-03 |
US20140184817A1 (en) | 2014-07-03 |
US9686460B2 (en) | 2017-06-20 |
KR20150079847A (ko) | 2015-07-08 |
CN105227850B (zh) | 2019-04-19 |
WO2014105139A1 (en) | 2014-07-03 |
KR101691760B1 (ko) | 2016-12-30 |
KR101654053B1 (ko) | 2016-09-05 |
CN105227850A (zh) | 2016-01-06 |
US9667849B2 (en) | 2017-05-30 |
CN104798065A (zh) | 2015-07-22 |
EP2939140A1 (en) | 2015-11-04 |
KR20150123977A (ko) | 2015-11-04 |
JP2016507796A (ja) | 2016-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906713B2 (en) | Camera command set host command translation | |
KR101691760B1 (ko) | 메타데이터 저장 서브시스템의 작동 | |
US9635268B2 (en) | Electronic device and method for generating thumbnail data | |
JP2016028521A (ja) | ゲットアンドセットアーキテクチャに基づくトランスポートメカニズム内のコマンド実行 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161007 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161101 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170627 |