JP2016040728A - カメラコマンドセットホストコマンド変換 - Google Patents

カメラコマンドセットホストコマンド変換 Download PDF

Info

Publication number
JP2016040728A
JP2016040728A JP2015209959A JP2015209959A JP2016040728A JP 2016040728 A JP2016040728 A JP 2016040728A JP 2015209959 A JP2015209959 A JP 2015209959A JP 2015209959 A JP2015209959 A JP 2015209959A JP 2016040728 A JP2016040728 A JP 2016040728A
Authority
JP
Japan
Prior art keywords
commands
image device
image
camera
conversion
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
Application number
JP2015209959A
Other languages
English (en)
Inventor
ディー. シャルトラン、ブレント
D Chartrand Brent
ディー. シャルトラン、ブレント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016040728A publication Critical patent/JP2016040728A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/617Upgrading or updating of programs or applications for camera control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00962Input arrangements for operating instructions or parameters, e.g. updating internal software
    • H04N1/00973Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0074Arrangements for the control of a still picture apparatus by the connected apparatus
    • H04N2201/0075Arrangements for the control of a still picture apparatus by the connected apparatus by a user operated remote control device, e.g. receiving instructions from a user via a computer terminal or mobile telephone handset
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0084Digital still camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】複数の入力されたカメラコマンドを、複数のデバイス固有コマンドに変換する複数の技術を提供する。【解決手段】複数のカメラコマンドは、カメラサブシステム304から離れて位置する変換エンジン312によって変換されて、その後、カメラに転送される。複数の変換されたコマンドは、複数の入力コマンドよりも複雑でなくてよい。複数のコマンドを変換することによって、より古いカメラが、ネイティブにサポートされていない複数のより新しいコマンドをサポートする。【選択図】図3

Description

本技術は、概して、カメラコマンドセットに関する。
複数の画像デバイスは、画像キャプチャ用に構成された複数のセンサ及び複数のモジュールのような、複数のコンポーネントを含む。各画像デバイス内の複数のセンサ及び複数のモジュールの構成は変わることがある。各画像デバイスは、その構成に関わらず、ホストプロセッサとインタフェースする。したがって、ホストプロセッサは、異なって構成された様々なカメラとインタフェースしうる。
いくつかの例となる実施形態が、複数の図面を参照して、以下の詳細な説明に記載されている。
複数の実施形態に従って使用されうるホストデバイスのブロック図である。 複数の実施形態に係る、カメラのブロック図である。 複数の実施形態に係る、複数のカメラコマンドを変換するシステムのブロック図である。 複数の実施形態に係る、カメラサブシステムを初期化する方法を示す処理フロー図である。 複数の実施形態に係る、複数のカメラコマンドを変換する方法の処理フロー図である。 複数の実施形態に係る、ゲット及びセットアーキテクチャに基づく複数のCCSコマンドを実行する転送メカニズムを可能にする方法の処理フロー図である。 複数の実施形態に係る、センサ及びモジュール固有メタデータを格納し、かつ、取得することを可能にするメタデータストレージサブシステムのブロック図である。 複数の実施形態に係る、メタデータストレージサブシステムを可能にする方法の処理フロー図である。 複数の実施形態に係る、複数のカメラコマンドを変換するためのコードを格納する、有形の非一時的コンピュータ可読媒体を示すブロック図である。 複数の実施形態に係る、複数のカメラコマンドを変換する例示システムのブロック図である。 複数の実施形態に係る、図10のシステムが具体化されうる小型フォームファクタデバイスの図である。
本明細書中に開示された複数の実施形態が、様々な画像デバイスの構成のサポート及び検証のための複数の技術を提供する。本技術は、カメラを使用して説明されるが、任意の画像デバイスが使用されてもよい。さらに、本明細書中において使用されるように、画像デバイスは、スチルショットカメラ、ビデオカメラ、立体カメラ、赤外線センサ、若しくは同種のもの、又はそれらの組み合わせであってよい。
複数の実施形態において、カメラコマンドセット(CCS)は、カメラの複数のセンサ及び複数のモジュールを含むが、これらに限定はされないカメラの複数のコンポーネントを発見しかつ制御する共通のメカニズムを提供する。複数のコマンドは、ホストプロセッサが、任意のカメラ構成とインタフェースし、任意のカメラ構成をサポートし、かつ、任意のカメラ構成を有効にすることを可能にする。より新しいコマンドセット及びソフトウェアを用いたより古いカメラの上位互換性が、変換ファシリティを使用して、実装されてよい。変換ファシリティは、複数の複雑なCCSコマンドが、カメラが実行できる複数のコマンド、又は、複数のCSI−3属性のゲット/セット要求に変換されることを可能にしてよい。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と、CPU102によって実行され得る複数の命令を格納するメモリデバイス104とを含んでよい。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)画像センサ、相補型MOS(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はまた、ホストデバイス100を、バス106を介してネットワーク134に接続するよう構成されたネットワークインタフェースコントローラ(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規格は、Mobile Industry Processor Interface(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の複数の目的のために、カメラは、図2における複数のコンポーネントと類似する複数のコンポーネントで構成されると仮定される。しかしながら、示される全てのコンポーネントが必要なわけではない。特に、CCSは、センサ208と、1又は複数の画像ソース206とを使用してよい。複数の実施形態において、センサ208が存在せずに、他の画像ソースが使用されてもよい。例えば、CCSは、ISPが画像ソースであるサブシステムに適用してよい。レンズ210、開口212、照明214、及び、メタデータストレージ216を含む追加の複数のサブシステムのためのサポートは、オプションである。
レンズサブシステム210は、オプションで光学ズーム機能をサポートし得る、指示された視野をもつレンズグループとして形成される。開口サブシステム212は、オプションで開口を最小又は最大のF値に変更することをサポートする、指示されたF値をもつアイリスとして形成される。F値は、レンズシステムの前面を通してみられる、物理的な開口絞りの光学像の直径に対するレンズの焦点距離の比率である。
複数の実施形態において、センササブシステム208は、理想的なセンサを形成する。複数の理想的なセンサは、線形に又はいくつかの測定のシンプルな数学関数に対して線形に設計される。
それにより、特定の値のために、理想的なセンサは、その値が測定されるたびに同じ出力を生成する。タイミング、利得、及び、複数の他のキャプチャ関連パラメータを含む、カメラによって生成された任意の画像に作用する複数の設定は、センササブシステム208の一部である。さらに、RAW及びSoCセンサもまた、センササブシステム208において使用されてよい。さらに、複数の実施形態において、センササブシステム208はまた、HDR(High Dynamic Range)及びコンピュータによるイメージングの他の構成(マルチ焦点面イメージング等)のような、センサの動作を含んでよい。
画像ソース206は、センササブシステム208の出力を取得し、CSI−3仮想チャネル204を介した転送のためにそれをパッケージングする。このパッケージングは、YUV又はJPEG出力の生成のような複数の処理機能を含む、データがフォーマットされかつ伝達され得る、又は、複雑であり得るRAWセンサの場合のように、シンプルであってよい。各画像ソース206の出力は、画像データのホストに対する転送を提供するべく、CSI−3仮想チャネル204による入力として選択されうる。CSI−3仮想チャネル204は、同一のデータソースによって生成された複数の画像パケット及び属性のシーケンスを表す。複数の実施形態において、CCS画像ソース206は、ピクセルデータの一種及び複数の組み込み属性を生成してよい。画像ソース206が画像データの生成及び処理を表しかつ管理する一方で、CSI−3仮想チャネル204は、画像データの転送を表し、かつ、管理するべく使用される。CSI−3仮想チャネル204と画像ソース206との間には、1対1の関係がある。
照明サブシステム214は、フラッシュ、1又は複数のビデオランプ、赤目軽減ランプ、及びレコードインジケータライトを含む、カメラの照明制御の管理を提供する。カメラ200は、照明サブシステム214の機能の任意の組み合わせをオプションでサポートしてよい。
さらに、メタデータストレージサブシステムは、ソフトウェアが、カメラサブシステム200によって格納された不揮発性のデータを取得し、かつ、当該不揮発性のデータをオプションで書き込むための共通のメカニズムを提供する。メタデータストレージは、モジュールによりネイティブにサポートされるものを超越するCCS機能を可能にする任意の解釈されたコードを格納するのと同様に、モジュール識別及び複数の画像チューニングパラメータを格納してよい。その上、メタデータストレージシステムはまた、CSI−3のためのデータブロックストレージであってよい。
コマンド転送メカニズム218は、ネイティブにサポートされた複数のCCSコマンドが、CSI−3インタフェースを包含するカメラサブシステム200に対して転送されることを可能にする。CSI−2のような、他の複数のインタフェースは、コマンドセットのための代替となる転送を定義し、かつ、実装してよい。コマンド転送メカニズム218は、カメラアプリケーションを構成しかつ制御するべく使用される全てのコマンド及びCSI−3属性222をコマンド転送メカニズム218に対して転送できるカメラのための構成プロトコル(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(1)となってよい。そして、CSI3_YSIZE属性に対するCSI−3 Getは、1080を返してよい。次に、CSI3_YSIZEを2000に変更するべく属性セットが発行された場合、(2000のYSIZEを有する)現在の構成が前に設定されたCCS状態と不整合であるにもかかわらず、Get_StandardConfig()CCSコマンドはまた、「1」を返してよい。
センササブシステム208及び画像ソースサブシステム206は、任意の数の構成を使用して実装されてよい。それにより、ホストソフトウェアが、センササブシステム208を適切に構成することに挑戦可能である。CCSは、センササブシステム208の適切な構成をアシストするべく、複数のセンサモードを使用できる。センサモードは、センサベンダによって定義され、ソフトウェアが選択可能な、オペレーティング構成のセットである。
概して、カメラが将来的にサポートする予期される使用を表す、既知のカメラのために存在する、制限された構成のセットが存在することになる。例えば、カメラは、8メガピクセルRAWIOスチル最適化モード、1080p/30ビデオ最適化MJPEGモード、及び、QVGA YUVプレビューモードのためのサポートを示してよい。
CCSは、望まれた構成のインデックスを選択することによって望まれたオペレーティングモードをセットするべく使用されることができるセンサ標準構成(SensorStandardConfig())コマンドを含んでよい。カメラは、それから、適切なタイミング及び関連するセッティングに自己構成する。ホストソフトウェアは、情報センサ標準構成(Info_SensorStandardConfig())コマンドを使用して、センササブシステム208によってサポートされた複数のモードを列挙するテーブルを取得できる。センササブシステム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のような他のカメラサブシステムに提供されることができる。
各コマンドは、サポートされてよい又はされなくてよいいくつかの変数を有する。「Set_」の変数がパラメータのセットを取得しかつステータスコードを返す一方、「Get_」の変数はパラメータを取得しないがデータのセットを返す。「Info_」の変数は、ソフトウェアが特定の利用可能なオプション、範囲及び機能を理解することを助け得るデータの静的なブロックを返す。
例えば、上述の情報センサ標準構成(Info_SensorStandardConfig())コマンドは、ソフトウェアが選択可能な、センサによってサポートされる複数のモード及び構成を定義するデータのテーブルを返す。ソフトウェアは、それから、単一のパラメータインデックスを入力として取得し、かつ、レスポンスにおいてステータスコードを返すセットセンサ標準構成(Set_SensorStandardConfig(Index))コマンドを使用でき、センサを所望のモードに構成する。現在のオペレーティングモードは、入力パラメータを取得しないが、レスポンスとして現在のアクティブインデックスを返すゲットセンサ標準構成(Get_SensorStandardConfig())コマンドを使用して読み取られることができる。Get_/Set_/Info_構造は、CSI−3属性ゲット/セットアーキテクチャの上に適合する。
さらに、それは、例えば、Info_の変数がコマンド変換を通してサポートされるのみである一方、カメラによってネイティブにサポートされるGet_/Set_の変数を有するためのサポートと、サポートされた複数のコマンドのきめの細かい指示を可能にする。
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は、第1に、カメラサブシステム304のゲットCCSサポート(Get_CCSSupport())コマンドを実行すべきである。複数の実施形態において、有効なCCSサポートテーブルが返された場合、その後、変換エンジン308は、ネイティブに取り扱われ得る、カメラサブシステム304に対して直接コマンドを渡すべく提供された情報を使用することができる。さらに、複数の実施形態において、ホストによって要求された全てのコマンドがネイティブにサポートされ得る場合、その後、変換エンジン又は変換コード記憶領域の必要はない。このように、ホストデバイス302は、カメラサブシステム304が、複数のコマンドの変換を初期化する前に、複数のコマンドを処理できるか否かを判定するべく、カメラサブシステム304を評価してよい。カメラサブシステム304が、複数のコマンドを処理できる場合、ホストデバイス302は、複数の入力コマンドを直接カメラサブシステム304に対して送信してよい。ある例において、複数のコマンドは、変換エンジン312に対して直接入力され得る。他の例において、複数のコマンドは、ホストデバイス302に入力されて、その後、変換エンジン312に対して転送されてよい。
変換エンジン312は、デバイスドライバ126(図1)ような、デバイスドライバ上で実装されたランタイム解釈言語サンドボックス内に実装されてよい。このように、ホストデバイスのカーネルは、変換エンジン312から排出され得る任意のコードからプロテクトされる。
複数の実施形態において、CCS内のいくつかのコマンドは、オプションである、又は、RAWセンサ上の複数の画像処理コマンドのような、特定のカメラサブシステム又はセンササブシステム構成に対して適用可能でない。ホストソフトウェアを提供するために、予測可能なサポートされるコマンドのセット、多数のプロファイルは、様々な使用のために予め定義されることができる。プロファイルを実装すべく、カメラサブシステムは、上述のように、ネイティブな又は変換されたサポートのいずれかを通じて、示された複数のコマンドのためのサポートを提供する。カメラはまた、任意の他のオプションのコマンドに対するサポートを提供してよい。例えば、RAWカメラとして識別されるカメラは、RAWカメラCCSプロファイルを実装してよい。同様に、SoCカメラとして識別されるカメラサブシステムは、SoCカメラCCSプロファイルを実装してよい。
図4は、複数の実施形態に従って、カメラサブシステムを初期化する方法400を示す処理フロー図である。処理フロー図は、ホストデバイス100(図1)又はホストデバイス302(図3)のようなホストデバイスによって利用されてよい。
ブロック402では、画像デバイスが識別される。複数の実施形態において、カメラを識別するために、ホストソフトウェアは、デバイス属性を読み込んで、デバイスクラス、製造者、モデルナンバー、シリアルナンバー、及び他の情報を識別してよい。例えば、ホストデバイスとカメラとが統合プロトコル(UniPro)によって相互接続されている場合、ホストデバイスは、カメラのUniProデバイス記述子ブロック(DDB)物理層(L1)属性を読み込んでよい。UniProプロトコル は、システム内の複数の相互接続デバイスに対する規格を指定する。UniPro DDBは、デバイスを識別するために使用可能な情報を含む。さらに、画像デバイスのUniPro DDB L1属性は、リンクの帯域幅及びパワー能力のような、画像デバイスとホストデバイスとの間のリンクを定義するために使用されてよい。UniPro DDB L1属性は、デバイスクラス、製造者の識別、及び製品識別を含む。複数の実施形態において、複数の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をネイティブにサポートしているか否かを判定してよい。例えば、ホストは、CSI−3属性又はUniPro DDB L1属性から取得したデータを使用して、情報メタデータディレクトリ(Info_MetadataDirectory())コマンドがサポートされているか否かを判定してよい。カメラが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では、変換コードがコード記憶領域から取得されて、変換エンジンを構成する。上述したように、変換コード及び変換エンジンは、複数の複雑なCCSコマンドが、カメラが実行可能な複数のコマンド又はCSI−3属性のゲット/セット要求に変換されるようにできる変換ファシリティを構成する。変換コードは、後述するように、メタデータストレージサブシステムを使用して格納されてよい。ブロック504では、複数の画像デバイスコマンドが、変換エンジンにおいて受信される。複数の実施形態において、複数の画像デバイスコマンドは、デバイスドライバ126(図1)又はアプリケーション130(図1)から送信される。
ブロック506では、複数の画像デバイスコマンドが、変換エンジンを使用して変換される。このように、ホストデバイスは、CCSコマンドを、画像デバイスが処理可能なフォーマットに変形又は変換できる。
複数の実施形態において、変換エンジンは、コマンドを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トランザクションに対応する。さらに、コマンドのInfo_の変数は、Get_の変数のより長いバージョンとして、典型的には、異なるコマンド識別(ID)とともに実装される。コマンドの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通知PDUは、画像デバイスからホストデバイスに対して送信されてよい。通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、ホストデバイスからセットPDUが送信されたとき、セットPDUは、コマンドからの属性識別に基づいて、複数の属性値を画像デバイスに書き込んでよい。
カメラサブシステムはまた、ホストのハードウェア及びソフトウェア処理が、カメラの詳細を識別し、カメラに固有のキャリブレーション及びチューニング情報を取得し、かつ、ファームウェア又は他のコード記憶領域を管理することを可能にするメタデータサブシステムを含む。そして、メタデータは、変換コード、キャリブレーションデータ、チューニングデータ、画像デバイスファームウェア、又はそれらの組み合わせの少なくとも1つを含む。多数の実装において、様々なメタデータ要素が、モジュールそれ自身の不揮発性記憶装置、ホストのファームウェア、及びホストのOSプライマリストレージを含む様々なシステムデータ記憶領域に格納される。複数の実施形態において、データはまた、様々なコード記憶領域に格納されてよい。さらに、複数の実施形態において、複数のコード記憶領域及びデータ記憶領域は同一である。これら様々な記憶領域の位置は、様々なシステムストレージの制約又はコストのトレードオフが、望ましい位置を変更し得るように、システムによって異なってよい。メタデータを管理する位置でのハイレベルソフトウェアのジョブを簡略化するために、CCSは、メタデータストレージ及び取得を管理するために使用されることができる選択的なコマンドのセットを提供する。カメラが、モジュール上の不揮発性記憶装置を管理するためのこれらのコマンドのネイティブなバージョンを実行する一方、変換されたコマンドは、さらに、他のシステム記憶領域へのアクセスを潜在的に提供してよい。
図7は、複数の実施形態に従って、センサ及びモジュール固有メタデータを格納し、かつ、取得可能なメタデータストレージサブシステム700のブロック図である。複数の実施形態において、メタデータストレージシステムは、CSI−3のためのデータブロックストレージである。カメラメタデータは、複数のブロブによって整理され、それぞれが個別に管理可能であってよい。ブロブはデータの一部である。ブロブの複数の例は、CCSをサポートするコード、センサファームウェア、及びキャリブレーション情報を含む。そして、上述の変換コードは、ブロブである。これらブロブは、システムの至るところに格納可能であり、CCS変換コードが、各ブロブに対してアクセスを有する限り、CCS変換コードは、これら様々なメタデータ記憶領域をソフトウェアに対する1つの協調的な観点にまとめることができる。
ホストソフトウェア702は、メタデータディレクトリを読み込むことによって利用可能な複数のブロブを識別する。メタデータストレージコマンド704は、メタデータディレクトリへのアクセスを提供する。ホストソフトウェア702は、メタデータディレクトリを読み込んで、存在するブロブのタイプと、開始アドレス及び長さと、アクセス属性とを判定する。複数のブロブは、カメラストレージ706、プラットフォームファームウェア708、若しくはプラットフォームプライマリストレージ712、又はそれらの組み合わせの幾つかの上に存在してよい。
具体的には、メタデータディレクトリ(MetadataDirectory())コマンドが、ディレクトリへのアクセスを提供する。情報メタデータ(Info_MetadataDirectory())コマンド変数は、ディレクトリのサイズを返し、そして、ゲットメタデータディレクトリ(Get_MetadataDirectory())コマンド変数を利用してフェッチされることが可能である。
個々のブロブをフェッチするために、2ステップ処理が、ホストによって使用される。第1に、転送の開始アドレスを示すためにセットメタデータ(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は、1又は複数のコンテンツサービスデバイス1006又は1又は複数のコンテンツ配信デバイス1008、又は、他の同様のコンテンツソースのようなコンテンツデバイスからコンテンツを受信してよい。1又は複数のナビゲーション機能を含むナビゲーションコントローラ1010は、例えば、プラットフォーム1002及び/又はディスプレイ1004と情報をやりとりするために使用されてよい。これらのコンポーネントの各々は、より詳細に後述される。
プラットフォーム1002は、チップセット1012、中央処理ユニット(CPU)102、メモリデバイス104、ストレージデバイス128、グラフィクスサブシステム1014、複数のアプリケーション130、及び無線部1016の任意の組み合わせを含んでよい。チップセット1012は、CPU102と、メモリデバイス104と、ストレージデバイス128と、グラフィクスサブシステム1014と、複数のアプリケーション130と、無線部1016との間の相互通信を提供してよい。例えば、チップセット1012は、ストレージデバイス128との相互通信を提供可能なストレージアダプタ(不図示)を含んでよい。
プロセッサ102は、複数命令セットコンピュータ(CISC)若しくは縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セット互換プロセッサ、マルチコア、又は、他のマイクロプロセッサ若しくは中央処理ユニット(CPU)として実装されてよい。いくつかの実施形態では、プロセッサ102は、1若しくは複数のデュアルコアプロセッサ、1若しくは複数のデュアルモバイルプロセッサ、又は同種のものを含む。
メモリデバイス104は、限定されるわけではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、又はスタティックRAM(SRAM)のような揮発性メモリデバイスとして実装されてよい。ストレージデバイス128は、限定されるわけではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、接続されたストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、及び/又はネットワークアクセス可能ストレージデバイスのような不揮発性記憶デバイスとして実装されてよい。いくつかの実施形態では、ストレージデバイス128は、例えば、複数のハードドライブが含まれる場合、重要なデジタルメディアのためのプロテクションが拡張されたストレージ性能を向上させるための技術を含む。
グラフィクスサブシステム1014は、表示用の静止画又はビデオのような複数の画像の処理を実行してよい。グラフィクスサブシステム1014は、例えばGPU108又はビジュアルプロセッシングユニット(VPU)のようなグラフィックス処理ユニット(GPU)を含んでよい。アナログ又はデジタルのインタフェースが、グラフィクスサブシステム1014とディスプレイ1004とを通信可能に連結するために使用されてよい。例えば、インタフェースは、High−Definition Multimedia Interface、Display Port、無線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を表示してよい。
1又は複数のコンテンツサービスデバイス1006は、国の、国際の、又は独立のサービスによって主催されてよく、それ故に、例えば、インターネットを介してプラットフォーム1002に対してアクセス可能であってよい。1又は複数のコンテンツサービスデバイス1006は、プラットフォーム1002及び/又はディスプレイ1004に連結されてよい。プラットフォーム1002及び/又は1又は複数のコンテンツサービスデバイス1006は、ネットワーク134から及びに対してメディア情報を通信(例えば、送信及び/又は受信)するべく、ネットワーク134に連結されてよい。1又は複数のコンテンツ配信デバイス1008はまた、プラットフォーム1002及び/又はディスプレイ1004に連結されてよい。
1又は複数のコンテンツサービスデバイス1006は、デジタル情報を伝達できる、インターネット可能なデバイス、電話、ネットワーク、パーソナルコンピュータ、又はケーブルテレビボックスを含んでよい。加えて、1又は複数のコンテンツサービスデバイス1006は、ネットワーク134を介して若しくは直接、コンテンツプロバイダとプラットフォーム1002若しくはディスプレイ1004との間で、一定方向に若しくは双方向にコンテンツを通信可能な他の同様のデバイスを含んでよい。当然のことながら、コンテンツは、ネットワーク134を介して、システム1000及びコンテンツプロバイダ内の複数のコンポーネントのうちのいずれか一つから及びに対して一定方向に及び/又は双方向に通信されてよい。コンテンツの複数の例として、例えば、ビデオ、音楽、医療、ゲーム情報、及びその他を含む任意のメディア情報を挙げることが可能である。
1又は複数のコンテンツサービスデバイス1006は、メディア情報、デジタル情報又は他のコンテンツを含むケーブルテレビプログラムのようなコンテンツを受信してよい。コンテンツプロバイダの複数の例は、とりわけ、任意のケーブル若しくは衛星テレビ、又は、無線若しくはインターネットコンテンツプロバイダを含んでよい。
いくつかの実施形態では、プラットフォーム1002は、1又は複数ナビゲーション機能を含む、制御信号をナビゲーションコントローラ1010から受信する。ナビゲーションコントローラ1010のナビゲーション機能は、例えば、ユーザインターフェース1018と情報をやりとりするために使用されてよい。ナビゲーションコントローラ1010は、ユーザが、空間(例えば、連続的かつ多次元の)データをコンピュータに入力できるようにするコンピュータハードウェアコンポーネント(具体的にはヒューマンインタフェースデバイス)であり得るポインティングデバイスであってよい。グラフィカルユーザインタフェース(GUI)、ならびにテレビ及びモニタなどの多くのシステムは、コンピュータ又はテレビジョンの制御及びそれへのデータの提供を、ユーザが複数の身体的ジェスチャを用いてできるようにする。身体的ジェスチャは、限定されないが、表情、顔の動き、様々な肢の動き、身体の動き、ボディランゲージ又はそれらの組み合わせを含む。そのような複数の身体的ジェスチャは、複数のコマンド又は命令として認識されることができ、又は変換されることができる。
ナビゲーションコントローラ1010のナビゲーション機能の動きは、ディスプレイ1004上に表示されるポインタ、カーソル、フォーカスリング、又は他の視覚的なインジケータの動きによって、ディスプレイ1004上に繰り返される。例えば、アプリケーション130の制御下において、ナビゲーションコントローラ1010に位置するナビゲーション機能は、ユーザインターフェース1018上に表示された視覚的なナビゲーション機能に対してマッピングされる。いくつかの実施形態では、ナビゲーションコントローラ1010は、個別のコンポーネントではなくてよいが、しかしむしろ、プラットフォーム1002及び/又はディスプレイ1004内に統合されてよい。
システム1000は、例えば、有効になったとき、最初の起動後に、ユーザがボタンのタッチによってプラットフォーム1002を即座にオンにしたりオフにしたりすることを可能にする技術を含む複数のドライバ(不図示)を含んでよい。プログラムロジックは、プラットフォームがオフになった場合に、プラットフォーム1002がメディアアダプタ若しくは他の1若しくは複数のコンテンツサービスデバイス1006又は1若しくは複数のコンテンツ配信デバイス1008にコンテンツをストリームすることを許可してよい。加えて、チップセット1012は、例えば、10.1サラウンドサウンドオーディオ及び/又は高品位7.1サラウンドサウンドオーディオのためのハードウェア及び/又はソフトウェアサポートを含んでよい。複数のドライバは、統合されたグラフィックプラットフォームのためのグラフィクスドライバを含んでよい。いくつかの実施形態では、グラフィクスドライバは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)グラフィックカードを含んでよい。
様々な実施形態において、システム1000内の示された1又は複数のコンポーネントのいくつかは、統合されてよい。例えば、プラットフォーム1002及び1又は複数のコンテンツサービスデバイス1006が統合されてよく、プラットフォーム1002及び1又は複数のコンテンツ配信デバイス1008が統合されてよく、又は、プラットフォーム1002、1又は複数のコンテンツサービスデバイス1006及び1又は複数のコンテンツ配信デバイス1008が統合されてよい。いくつかの実施形態では、プラットフォーム1002及びディスプレイ1004は、統合ユニットである。例えば、ディスプレイ1004及び1又は複数のコンテンツサービスデバイス1006が統合されてよく、又は、ディスプレイ1004及び1又は複数のコンテンツ配信デバイス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は、CSI−3属性パケットにカプセル化されてよく、その後、画像デバイスに対して送信されてよい。さらに、レスポンスPDUは、画像デバイス内の画像ソースから取得される複数の属性値を含んでよい。画像ソースは、画像センサ、システムオンチップ(SOC)画像デバイス、マルチチップ画像デバイスモジュール、又は画像信号プロセッサ(ISP)であってよい。装置はまた、画像デバイスからホストデバイスに対して通知PDUを送信するロジックを含んでよい。ここで、通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。さらに、装置は、ホストデバイスからのセットPDUを送信するロジックを含む。ここで、セットPDUは、コマンドからの属性識別に基づいて複数の属性値を画像デバイスに書き込む。
[例5]
ここに、ゲット及びセットアーキテクチャに基づいて転送メカニズム内のコマンドを実行するシステムが記載される。システムは、ホストデバイス及びホストデバイスに連結された画像デバイスを含む。ここで、ゲットプロトコルデータユニット(PDU)は、ホストデバイスから画像デバイスに対して送信され、ゲットPDUは、画像デバイスの画像ソースからの複数の属性値のための要求を含む。ここで、レスポンスPDUは、画像デバイスからホストデバイスに対して送信され、コマンドの実行を完了させる。
ホストデバイスのセンサは、ホストデバイスから画像デバイスに対してゲットPDUが送信される場合、コマンドを実行してよい。画像デバイスのセンサはまた、ゲットPDUが、ブロックされることなくホストデバイスから画像デバイスに対して送信される場合、コマンドを実行してよい。画像ソースは、RAW画像デバイスセンサ、チップ画像デバイス内のシステム、マルチチップ画像デバイスモジュール又は画像信号プロセッサであってよい。通知PDUは、画像デバイスからホストデバイスに対して送信されてよい。ここで、通知PDUは、コマンドからの属性識別に基づく複数の属性値を含まない。セットPDUは、画像デバイスからホストデバイスに対して送信されてよい。ここで、セットPDUは、コマンドからの属性識別に基づいて、複数の属性値を画像デバイスから読み出す又は書き込む。
[例6]
ここに、ゲット及びセットアーキテクチャに基づいて転送メカニズム内のコマンドを実行するための複数のコンピュータ実行可能命令を含む有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コマンドの属性識別を抽出することと、画像デバイス内の画像ソースから複数の属性値を取得するために、属性識別に基づいてホストデバイスから画像デバイスに対してゲットプロトコルデータユニット(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又は複数のアクセスは、複数のCSI−3属性ゲット/セットパケットを含んでよい。さらに、より複雑なコマンドが、より簡素なコマンドに変換されてよい。より複雑なコマンドはまた、CSI−3属性のゲット/セット要求に変換されてよい。方法はまた、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定することを含んでよい。変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも1つに格納されてよい。1又は複数の画像デバイスコマンドは、CSI−3属性ゲット/セットコマンドに変換されてよい。さらに、1又は複数の画像デバイスコマンドは、CSI−2レジスタ読出/書込コマンドに変換されてよい。1又は複数の変換された画像デバイスコマンドはまた、画像デバイスによってネイティブにサポートされない複数のコマンドであってよい。
[例11]
ここに、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又は複数のアクセスは、CSI−3属性ゲット/セットパケットを含んでよい。変換エンジンは、より複雑なコマンドをより簡素なコマンドに変換してよい。さらに、変換エンジンは、より複雑なコマンドをCSI−3属性のゲット/セット要求に変換してよい。変換エンジンはまた、受信コマンドが画像デバイスによってネイティブにサポートされているか否かを判定してよい。さらに、変換コードは、インターポーザデバイス、ホストデバイス、センサ、又はそれらの組み合わせの少なくとも1つに格納される。変換エンジンは、1又は複数の画像デバイスコマンドをCSI−3属性ゲット/セットコマンドに変換してよい。変換エンジンはまた、1又は複数の画像デバイスコマンドをCSI−2レジスタ読出/書込コマンドに変換してよい。1又は複数の変換された画像デバイスコマンドは、画像デバイスによってネイティブにサポートされていない複数のコマンドであってよい。さらに、装置は、変換コードを格納するためのストレージデバイスを含んでよい。
[例13]
ここに、複数のコンピュータ実行可能命令を含む有形の非一時コンピュータ可読記憶媒体が記載される。複数の命令は、コンピュータに、変換コードを取得させ、かつ、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から3のいずれか一項に記載の装置。
[項目5]
前記コード記憶領域は、ホストデバイスに連結されたプラットフォームストレージ内に位置する、項目1から3のいずれか一項に記載の装置。
[項目6]
前記変換エンジンは、前記画像デバイスからリモートに位置する、項目1から5のいずれか一項に記載の装置。
[項目7]
前記変換エンジンは、インターポーザデバイスに位置し、前記コード記憶領域は、前記インターポーザデバイス、ホストデバイス、センサ、又は、それらの組み合わせの少なくとも1つに位置する、項目1から3のいずれか一項に記載の装置。
[項目8]
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−3属性ゲット/セットコマンドに変換する、項目1から7のいずれか一項に記載の装置。
[項目9]
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−2レジスタ読出/書込コマンドに変換する、項目1から8のいずれか一項に記載の装置。
[項目10]
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、項目1から9のいずれか一項に記載の装置。
[項目11]
複数の画像デバイスコマンドを変換するためのシステムであって、
ホストデバイスと、
前記ホストデバイスに連結された画像デバイスと、
コード記憶領域から取得されたコードを使用して生成され、複数の画像デバイスコマンドを複数の画像デバイス固有コマンドに変換する変換エンジンと
を備えるシステム。
[項目12]
前記ホストデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス若しくはサーバ、又は、それらの組み合わせである、項目11に記載のシステム。
[項目13]
前記画像デバイス内の組み込みプロセッサ又はシーケンサが、複数の画像デバイスコマンドを変換するべく使用される、項目11又は12に記載のシステム。
[項目14]
前記コード記憶領域は、前記ホストデバイス内に位置する、項目11から13のいずれか一項に記載のシステム。
[項目15]
前記コード記憶領域は、前記画像デバイス内に位置する、項目11から13のいずれか一項に記載のシステム。
[項目16]
前記コード記憶領域は、前記ホストデバイスに連結されたプラットフォームストレージデバイス内に位置する、項目11から13のいずれか一項に記載のシステム。
[項目17]
前記変換エンジンは、前記画像デバイスからリモートに位置する、項目11から16のいずれか一項に記載のシステム。
[項目18]
前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−3属性ゲット/セットコマンドに変換する、項目11から17のいずれか一項に記載のシステム。
[項目19]
前記変換エンジンは、前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数のコマンドを前記画像デバイスに送信する、項目11から18のいずれか一項に記載のシステム。
[項目20]
前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、項目11から19のいずれか一項に記載のシステム。
[項目21]
前記コードは、ランタイム解釈言語サンドボックス内で実行される、項目11から20のいずれか一項に記載のシステム。
[項目22]
前記変換エンジンは、前記ホストデバイス上に位置する、項目11から21のいずれか一項に記載のシステム。
[項目23]
コンピュータに、
コード記憶領域から変換コードを取得して変換エンジンを構成する手順と、
入力された複数の画像デバイスコマンドを受信する手順と、
前記入力された複数の画像デバイスコマンドを、複数の画像デバイス固有コマンドに変換する手順と、
前記複数の画像デバイス固有コマンドを、前記コンピュータに連結された画像デバイスに送信する手順と
を実行させ、
前記入力された複数の画像デバイスコマンドは、変換手段によって変換される、プログラム。
[項目24]
前記変換手段は、変換エンジンである、項目23に記載のプログラム。
[項目25]
前記変換手段は、前記画像デバイスからリモートに位置する、項目23又は24に記載のプログラム。

Claims (25)

  1. 複数の画像デバイスコマンドを変換するための装置であって、
    コード記憶領域から変換コードを取得して変換エンジンを構成するロジックと、
    前記変換エンジンにおいて複数の画像デバイスコマンドを受信するロジックと、
    前記変換エンジンを使用して前記複数の画像デバイスコマンドを変換するロジックと、
    前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数の画像デバイスコマンドを前記画像デバイスに転送するロジックと
    を備える装置。
  2. 前記受信された複数のコマンドが、前記画像デバイスによってネイティブにサポートされているか否かを判定するロジックをさらに備える、請求項1に記載の装置。
  3. 前記変換コードは、前記複数の画像デバイスコマンドを変換するために実行される、請求項1又は2に記載の装置。
  4. 前記コード記憶領域は、前記画像デバイス内に位置する、請求項1から3のいずれか一項に記載の装置。
  5. 前記コード記憶領域は、ホストデバイスに連結されたプラットフォームストレージ内に位置する、請求項1から3のいずれか一項に記載の装置。
  6. 前記変換エンジンは、前記画像デバイスからリモートに位置する、請求項1から5のいずれか一項に記載の装置。
  7. 前記変換エンジンは、インターポーザデバイスに位置し、前記コード記憶領域は、前記インターポーザデバイス、ホストデバイス、センサ、又は、それらの組み合わせの少なくとも1つに位置する、請求項1から3のいずれか一項に記載の装置。
  8. 前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−3属性ゲット/セットコマンドに変換する、請求項1から7のいずれか一項に記載の装置。
  9. 前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−2レジスタ読出/書込コマンドに変換する、請求項1から8のいずれか一項に記載の装置。
  10. 前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、請求項1から9のいずれか一項に記載の装置。
  11. 複数の画像デバイスコマンドを変換するためのシステムであって、
    ホストデバイスと、
    前記ホストデバイスに連結された画像デバイスと、
    コード記憶領域から取得されたコードを使用して生成され、複数の画像デバイスコマンドを複数の画像デバイス固有コマンドに変換する変換エンジンと
    を備えるシステム。
  12. 前記ホストデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス若しくはサーバ、又は、それらの組み合わせである、請求項11に記載のシステム。
  13. 前記画像デバイス内の組み込みプロセッサ又はシーケンサが、複数の画像デバイスコマンドを変換するべく使用される、請求項11又は12に記載のシステム。
  14. 前記コード記憶領域は、前記ホストデバイス内に位置する、請求項11から13のいずれか一項に記載のシステム。
  15. 前記コード記憶領域は、前記画像デバイス内に位置する、請求項11から13のいずれか一項に記載のシステム。
  16. 前記コード記憶領域は、前記ホストデバイスに連結されたプラットフォームストレージデバイス内に位置する、請求項11から13のいずれか一項に記載のシステム。
  17. 前記変換エンジンは、前記画像デバイスからリモートに位置する、請求項11から16のいずれか一項に記載のシステム。
  18. 前記変換エンジンは、前記複数の画像デバイスコマンドを、複数のCSI−3属性ゲット/セットコマンドに変換する、請求項11から17のいずれか一項に記載のシステム。
  19. 前記変換エンジンは、前記変換された画像デバイスコマンドによって要求される動作を引き起こすべく、前記変換された複数のコマンドを前記画像デバイスに送信する、請求項11から18のいずれか一項に記載のシステム。
  20. 前記変換エンジンは、前記画像デバイスによってネイティブにサポートされていない複数のコマンドを変換する、請求項11から19のいずれか一項に記載のシステム。
  21. 前記コードは、ランタイム解釈言語サンドボックス内で実行される、請求項11から20のいずれか一項に記載のシステム。
  22. 前記変換エンジンは、前記ホストデバイス上に位置する、請求項11から21のいずれか一項に記載のシステム。
  23. コンピュータに、
    コード記憶領域から変換コードを取得して変換エンジンを構成する手順と、
    入力された複数の画像デバイスコマンドを受信する手順と、
    前記入力された複数の画像デバイスコマンドを、複数の画像デバイス固有コマンドに変換する手順と、
    前記複数の画像デバイス固有コマンドを、前記コンピュータに連結された画像デバイスに送信する手順と
    を実行させ、
    前記入力された複数の画像デバイスコマンドは、変換手段によって変換される、プログラム。
  24. 前記変換手段は、変換エンジンである、請求項23に記載のプログラム。
  25. 前記変換手段は、前記画像デバイスからリモートに位置する、請求項23又は24に記載のプログラム。
JP2015209959A 2012-12-27 2015-10-26 カメラコマンドセットホストコマンド変換 Pending JP2016040728A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/728,921 US9235260B2 (en) 2012-12-27 2012-12-27 Camera command set host command translation
US13/728,921 2012-12-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015545032A Division JP2016507920A (ja) 2012-12-27 2013-06-13 カメラコマンドセットホストコマンド変換

Publications (1)

Publication Number Publication Date
JP2016040728A true JP2016040728A (ja) 2016-03-24

Family

ID=51016785

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015545032A Pending JP2016507920A (ja) 2012-12-27 2013-06-13 カメラコマンドセットホストコマンド変換
JP2015209959A Pending JP2016040728A (ja) 2012-12-27 2015-10-26 カメラコマンドセットホストコマンド変換

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015545032A Pending JP2016507920A (ja) 2012-12-27 2013-06-13 カメラコマンドセットホストコマンド変換

Country Status (6)

Country Link
US (3) US9235260B2 (ja)
EP (2) EP3037963A1 (ja)
JP (2) JP2016507920A (ja)
KR (2) KR101702801B1 (ja)
CN (2) CN104798376B (ja)
WO (1) WO2014105120A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119958A (ja) * 2019-01-22 2020-08-06 富士通株式会社 伝送装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9235260B2 (en) 2012-12-27 2016-01-12 Intel Corporation Camera command set host command translation
US9244694B2 (en) 2012-12-27 2016-01-26 Intel Corporation Executing a command within a transport mechanism based on a get and set architecture
US20150049101A1 (en) * 2013-08-16 2015-02-19 Nobuyuki Suzuki Display adaptation system for mipi display serial interface applications
KR101798947B1 (ko) * 2016-06-01 2017-11-20 주식회사 리딩유아이 터치 감지 장치
TWI645297B (zh) * 2017-05-26 2018-12-21 聚晶半導體股份有限公司 資料傳輸系統

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228968A (ja) * 2002-01-30 2003-08-15 Matsushita Electric Ind Co Ltd 機器制御システム、被制御機器、被制御機器動作モード変更方法、プログラム、および媒体
JP2004221779A (ja) * 2003-01-10 2004-08-05 Sony Corp 電子機器制御システム、信号出力装置、入力装置、電子機器制御方法
JP2004333665A (ja) * 2003-05-02 2004-11-25 Sanyo Electric Co Ltd 遠隔操作可能な電子機器
JP2008098963A (ja) * 2006-10-12 2008-04-24 Funai Electric Co Ltd 遠隔操作システム
JP2011019262A (ja) * 2010-08-19 2011-01-27 Sharp Corp 無線伝送システム
US20120084452A1 (en) * 2010-10-01 2012-04-05 Microsoft Corporation Remote control command translation

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0556484A (ja) * 1991-08-22 1993-03-05 Fujitsu General Ltd マルチリモコンシステム
JPH10174118A (ja) * 1996-12-10 1998-06-26 Canon Inc 撮像システム
JP3656438B2 (ja) 1998-11-02 2005-06-08 松下電器産業株式会社 高速画像入力変換装置
US6154210A (en) * 1998-11-25 2000-11-28 Flashpoint Technology, Inc. Method and system for implementing button interface compatibility in touch-screen equipped digital imaging device
US20020170039A1 (en) 2001-02-22 2002-11-14 Kovacevic Branko D. System for operating system and platform independent digital stream handling and method thereof
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
US7491367B2 (en) 2002-06-04 2009-02-17 Applera Corporation System and method for providing a standardized state interface for instrumentation
US7130424B2 (en) * 2002-12-19 2006-10-31 Qualcomm, Inc. Systems and methods for utilizing an application from a native portable device within a non-native communications network
JP2005260648A (ja) 2004-03-12 2005-09-22 Matsushita Electric Ind Co Ltd 記録再生装置、およびその制御システム
KR100736930B1 (ko) * 2005-02-07 2007-07-10 삼성전자주식회사 홈서버, 상기 홈서버를 포함하는 컨텐츠 전송 시스템, 통합미디어 재생 프로그램을 이용한 컨텐츠 재생방법, 미디어포맷 변환 기능을 이용한 컨텐츠 전송방법 그리고 컨텐츠전송 여부 판별방법
JP2006222622A (ja) * 2005-02-09 2006-08-24 Ntt Comware Corp 入力制御システムおよび制御装置、制御プログラム
JP5313430B2 (ja) 2005-08-17 2013-10-09 日本電気株式会社 変換サーバ、携帯端末装置、データ変換システム、データ変換方法およびプログラム
JP5170961B2 (ja) * 2006-02-01 2013-03-27 ソニー株式会社 画像処理システム、画像処理装置および方法、プログラム、並びに記録媒体
EP1981245A1 (en) * 2007-04-13 2008-10-15 Liconic Ag Method and product for controlling laboratory equipment
JP2008306253A (ja) * 2007-06-05 2008-12-18 Panasonic Corp 携帯受信端末及び機器制御システム
US20120075469A1 (en) * 2007-07-25 2012-03-29 Neo It Solutions Ltd. Internet visual surveillance and management technology for telecommunications, internet, cellular and other communications companies
US9052934B2 (en) * 2008-06-30 2015-06-09 Fluke Corporation Remote command interpreter
US8180891B1 (en) * 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
JP5132600B2 (ja) * 2009-01-14 2013-01-30 ヤフー株式会社 番組関連情報活用システムおよび番組関連情報活用方法
US8386649B2 (en) 2009-09-16 2013-02-26 EchoStar Technologies, L.L.C. User input command relaying
US20110225606A1 (en) * 2010-03-09 2011-09-15 Microsoft Corporation Television Content Metadata
US8477204B2 (en) 2010-03-16 2013-07-02 Sony Corporation Camera image editing using a television
US8797414B2 (en) * 2010-12-23 2014-08-05 Samsung Electronics Co., Ltd. Digital image stabilization device
US8659667B2 (en) * 2011-08-29 2014-02-25 Panasonic Corporation Recipe based real-time assistance for digital image capture and other consumer electronics devices
US8780219B2 (en) * 2012-07-23 2014-07-15 Wooblue, Inc. Wireless viewing and control interface for imaging devices
US9235260B2 (en) 2012-12-27 2016-01-12 Intel Corporation Camera command set host command translation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003228968A (ja) * 2002-01-30 2003-08-15 Matsushita Electric Ind Co Ltd 機器制御システム、被制御機器、被制御機器動作モード変更方法、プログラム、および媒体
JP2004221779A (ja) * 2003-01-10 2004-08-05 Sony Corp 電子機器制御システム、信号出力装置、入力装置、電子機器制御方法
JP2004333665A (ja) * 2003-05-02 2004-11-25 Sanyo Electric Co Ltd 遠隔操作可能な電子機器
JP2008098963A (ja) * 2006-10-12 2008-04-24 Funai Electric Co Ltd 遠隔操作システム
JP2011019262A (ja) * 2010-08-19 2011-01-27 Sharp Corp 無線伝送システム
US20120084452A1 (en) * 2010-10-01 2012-04-05 Microsoft Corporation Remote control command translation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020119958A (ja) * 2019-01-22 2020-08-06 富士通株式会社 伝送装置
JP7241551B2 (ja) 2019-01-22 2023-03-17 富士通株式会社 伝送装置

Also Published As

Publication number Publication date
CN104798376B (zh) 2019-06-14
CN105282372A (zh) 2016-01-27
EP2939433A2 (en) 2015-11-04
US20140184842A1 (en) 2014-07-03
CN104798376A (zh) 2015-07-22
US9906713B2 (en) 2018-02-27
US20140184827A1 (en) 2014-07-03
JP2016507920A (ja) 2016-03-10
WO2014105120A3 (en) 2014-12-18
KR101645242B1 (ko) 2016-08-03
WO2014105120A2 (en) 2014-07-03
US20160088220A1 (en) 2016-03-24
CN105282372B (zh) 2019-10-18
EP2939433A4 (en) 2016-06-29
US9235260B2 (en) 2016-01-12
KR20150129049A (ko) 2015-11-18
KR101702801B1 (ko) 2017-02-22
KR20150079884A (ko) 2015-07-08
EP3037963A1 (en) 2016-06-29
US9201492B2 (en) 2015-12-01

Similar Documents

Publication Publication Date Title
US9906713B2 (en) Camera command set host command translation
US9686460B2 (en) Enabling a metadata storage subsystem
KR20200074067A (ko) 이미지를 처리하는 전자장치 및 방법
JP2016028521A (ja) ゲットアンドセットアーキテクチャに基づくトランスポートメカニズム内のコマンド実行

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170815