(57)【特許請求の範囲】
【請求項１】
適応型データパスを提供するための方法であって、
アプリケーション処理ユニットによって実行されるアプリケーションに基づいて、前記アプリケーション処理ユニットから複数の命令ベースのコマンドを処理ユニットにおいて受信するステップであって、前記複数の命令ベースのコマンドが、前記アプリケーションによって任意のときに呼び出されるとともに、プロセッサによってリアルタイムに翻訳されるインタープリタ型言語に関係している、コマンドのセットである、ステップと、
複数の画像を前記処理ユニットにおいて受信するステップと、
前記複数の命令ベースのコマンドのうちの各命令ベースのコマンドについて、
前記命令ベースのコマンドに基づいて、複数の画像処理機能から画像処理機能のサブセットを選択することであって、前記処理ユニットが、画像処理機能の前記選択されたサブセットを実施するように動的にプログラムされる、選択することと、
画像処理機能の前記選択されたサブセットを使用して前記複数の画像のうちの画像を前記処理ユニットで処理することと
を行うために、前記アプリケーション処理ユニットとは別の前記処理ユニットを使用するステップと
を含む、方法。
【請求項２】
基準画像を維持するステップをさらに含み、
前記複数の画像のうちの少なくとも1つの画像を処理することが、前記基準画像に基づいている、請求項1に記載の方法。
【請求項３】
前記複数の画像のうちの少なくとも1つの画像から複数のサブ画像出力を提供するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記複数の画像のうちの少なくとも1つの画像を処理することが、イメージシグナルプロセッサを使用して実行される、請求項1に記載の方法。
【請求項５】
適応型データパスを提供するためのプロセッサであって、
アプリケーション処理ユニットによって実行されるアプリケーションに基づいて、前記アプリケーション処理ユニットから第1の命令ベースのコマンドおよび第2の命令ベースのコマンドを受信するための手段であって、前記第1の命令ベースのコマンドおよび前記第2の命令ベースのコマンドが、前記アプリケーションによって任意のときに呼び出されるとともに、前記プロセッサによってリアルタイムに翻訳されるインタープリタ型言語に関係している、コマンドのセットである、手段と、
第1の画像および第2の画像を受信するための手段と、
前記第1の命令ベースのコマンドに基づいて、複数の画像処理機能から画像処理機能の第1のサブセットを選択し、前記第2の命令ベースのコマンドに基づいて、前記複数の画像処理機能から画像処理機能の第2のサブセットを選択するための手段と、
画像処理機能の前記第1のサブセットを使用して前記第1の画像と、画像処理機能の前記第2のサブセットを使用して前記第2の画像とを処理するための手段であって、
処理するための前記手段が、前記アプリケーション処理ユニットとは別であり、画像処理機能の前記第1および第2のサブセットの各々を実施するように動的にプログラムされ、
画像処理機能の前記第2のサブセットが、画像処理機能の前記第1のサブセットとは異なる、
手段と、
を備える、プロセッサ。
【請求項６】
前記第1の命令ベースのコマンドが、第1のコンピュータビジョンアプリケーションによって生成された命令を含む、請求項5に記載のプロセッサ。
【請求項７】
基準画像を維持するための手段をさらに備え、前記第1の画像を処理するための前記手段が、前記基準画像に基づいて前記第1の画像を処理するように構成されている、請求項5に記載のプロセッサ。
【請求項８】
前記第1の画像から複数のサブ画像出力を提供するための手段をさらに備える、請求項5に記載のプロセッサ。
【請求項９】
実行されたとき、処理ユニットに、請求項1から4のいずれか一項に記載のステップを含む動作を実行させるように動作する命令で符号化されたコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータビジョンアプリケーションのための適応型データパスに関する。
【背景技術】
【０００２】
携帯電話、カメラ、および他の電子デバイスは、しばしば、ビデオまたは静止画像取り込みのようなイメージングアプリケーションのためのイメージングデータを取り込みおよび処理するために、イメージングコアを利用する。イメージングコアは、データがイメージセンサ(たとえば、カメラ)から、汎用プロセッサのようなアプリケーション処理ユニット、および/またはディスプレイに流れ得るデータパスを提供するハードウェアおよび/またはソフトウェアコンポーネントの集合体を含む。多くの電子デバイスでは、イメージングコアは、コンピュータビジョンアプリケーション(「マシンビジョンアプリケーション」としても知られる)のためにも利用される。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の実施形態は、コンピュータビジョンアプリケーションのための適応型データパスを提供する。本明細書で提供される技術を利用して、データパスは、データを提供するためにコンピュータビジョンアプリケーションに適応し得る。データパスは、1つまたは複数のフィルタを1つまたは複数のセンサからの画像データに適用することによって適応され得る。いくつかの実施形態は、コンピュータビジョンアプリケーションからのコマンドを解釈し得る特化型命令(specialized instruction)ベースのインラインプロセッサを備えるコンピュータビジョン処理ユニットを利用し得る。
【０００４】
本開示による、コンピュータビジョンアプリケーションのための適応型データパスを提供するための例示的な装置は、アプリケーション処理ユニットと、アプリケーション処理ユニットと別々にプログラム可能であり、イメージセンサモジュールおよびアプリケーション処理ユニットに通信可能に接続された処理ユニットとを含む。処理ユニットは、イメージセンサモジュールから第1の画像を受信し、アプリケーション処理ユニットによって実行される第1のコンピュータビジョンアプリケーションに基づいて、複数の画像処理機能から画像処理機能の第1のサブセットを選択し、画像処理機能の第1のサブセットを使用して第1の画像を処理するように構成されている。
【０００５】
本開示による、コンピュータビジョンアプリケーションのための適応型データパスを提供するための例示的な方法は、第1の画像を受信するステップと、アプリケーション処理ユニットによって実行される第1のコンピュータビジョンアプリケーションに基づいて、複数の画像処理機能から画像処理機能の第1のサブセットを選択するステップと、画像処理機能の第1のサブセットを使用して第1の画像を処理するステップとを含む。処理するステップは、アプリケーション処理ユニットとは別のユニットで生じる。
【０００６】
本開示による、コンピュータビジョンアプリケーションのための適応型データパスを提供するための例示的なプロセッサは、第1の画像を受信するための手段と、アプリケーション処理ユニットによって実行される第1のコンピュータビジョンアプリケーションに基づいて、複数の画像処理機能から画像処理機能の第1のサブセットを選択するための手段と、画像処理機能の第1のサブセットを使用して第1の画像を処理するための手段とを含む。第1の画像を処理するための手段は、アプリケーション処理ユニットとは別である。
【０００７】
本開示による非一時的コンピュータ可読媒体は、実行されたとき、処理ユニットに、第1の画像を受信することと、アプリケーション処理ユニットによって実行された第1のコンピュータビジョンアプリケーションに基づいて、複数の画像処理機能から画像処理機能の第1のサブセットを選択することと、画像処理機能の第1のサブセットを使用して第1の画像を処理することとを含む動作を実行させるように動作する命令で符号化されている。
【０００８】
本明細書による例示的な方法は、光センサによって取り込まれた画像から導出された情報をイメージシグナルプロセッサで受信するステップと、出力するためのデータの指示をイメージシグナルプロセッサで受信するステップとを含む。方法は、受信された指示に基づいて受信された情報を処理するステップと、処理された情報を出力するステップとをさらに含む。
【０００９】
方法は、以下の特徴のうちの1つまたは複数を含むことができる。出力するためのデータの指示は、データが生成されているアプリケーションの指示、または、データが生成されているアプリケーションのタイプを含むことができる。出力するためのデータの指示は、要求されたデータのタイプの指示を含むことができる。処理するステップは、受信された情報の量もしくはタイプを低減するステップ、および/または、受信された情報を所望の特徴と比較し、所望の特徴と無関係な受信された情報の部分を除去するステップを含むことができる。加えてまたは代替的に、処理するステップは、受信された情報を既知の情報と比較するステップを含むことができ、処理された情報を出力するステップは、受信された情報が既知の情報と異なるとき、警告を出力するステップを含むことができる。処理するステップは、受信された情報から出力するためのデータを識別または生成するステップを含むことができ、処理された情報を出力するステップは、データが生成または識別されたときにのみ、別のユニットを起動させる(たとえば、信号、コマンド、などを送信することによって、別のユニットに低電力状態を終了させる)ステップを含むことができる。他のユニットは、アプリケーションプロセッサであり得る。
【００１０】
本開示による別の例示的な方法は、光センサからの情報をイメージシグナルプロセッサで受信するステップと、コンピュータビジョンアプリケーションの識別、コンピュータビジョンアプリケーションのタイプ、またはコンピュータビジョンアプリケーションの状態をイメージシグナルプロセッサで受信するステップとを含むことができる。方法は、識別に基づいてイメージシグナルプロセッサのコンピュータビジョンモジュールを選択するステップと、選択されたコンピュータビジョンモジュールを用いてイメージシグナルプロセッサで情報を処理するステップとをさらに含むことができる。
【００１１】
本開示によるさらに別の例示的な方法は、光センサによって取り込まれた画像から導出された情報をイメージシグナルプロセッサで受信するステップと、受信された情報を処理するステップと、処理された情報を消費することになるアプリケーションまたはアプリケーションの状態に基づいて、処理された情報をイメージシグナルプロセッサからアプリケーションプロセッサに出力するステップとを含むことができる。
【００１２】
方法は、以下の特徴のうちの1つまたは複数を含むことができる。処理された情報のタイプまたは量は、アプリケーションまたはアプリケーションの状態に依存し得る。アプリケーションは、コンピュータビジョンアプリケーションを含むことができる。処理された情報は、アプリケーションによってさらに処理するためのピクセルデータ、および/または、アプリケーションプロセッサのための割り込みもしくは起動を含むことができる。アプリケーションプロセッサは、イメージシグナルプロセッサが受信された情報を処理している間、休止している(たとえば、低電力状態)ことができる。方法は、アプリケーションまたはアプリケーションの状態に基づいて、イメージシグナルプロセッサ内のデータパスを選択するステップをさらに含むことができ、処理するステップは、選択されたデータパスを使用して、受信された情報を処理するステップを含む。
【００１３】
本明細書で説明される項目および/または技術は、以下の機能のうちの1つまたは複数、ならびに、記載されていない他の機能を提供し得る。技術は、データパスをコンピュータビジョンアプリケーションに適応させることによって、増加した効率を提供することができ、それによって、処理のオーバヘッドを低減する。さらに、コンピュータビジョン機能をアプリケーション処理ユニットからデータパスにオフロードすることによって、アプリケーション処理ユニットは、データパスがオフロードされた機能を実行する間、動作の低電力モードに入ることができ、電力および処理需要をさらに低減する。これらおよび他の実施形態は、その利点および機能の多くと共に、以下の本文および添付図面に関連してより詳細に説明される。
【図面の簡単な説明】
【００１４】
【図１】一実施形態によるデバイスの特定のコンポーネントを示す簡略化したブロック図である。
【図２】一実施形態による、センサモジュールからコンピュータビジョンアプリケーションおよびサービスにデータを提供するためのデータパスを示す機能ブロック図である。
【図３】一実施形態による、コンピュータビジョン特化モジュールの利用可能なフィルタのセットの図である。
【図４】図3のコンピュータビジョン特化モジュールのコンポーネントがデータパスの異なる機能部分に分類され得る方法を示すブロック図である。
【図５Ａ】コンピュータビジョンアプリケーションおよびサービスのニーズに基づいて、データパスを適応的に調整することによって、コンピュータビジョン特化が異なるフィルタチェーンを使用し得る方法を示す図である。
【図５Ｂ】コンピュータビジョンアプリケーションおよびサービスのニーズに基づいて、データパスを適応的に調整することによって、コンピュータビジョン特化が異なるフィルタチェーンを使用し得る方法を示す図である。
【図６】一実施形態による、データの異なるセグメントのためのデータポートを提供するために、データ切り替えを使用するデータパスの図である。
【図７】一実施形態による、コンピュータビジョンアプリケーションのための適応型データパスを提供するための方法の一実施形態を示す図である。
【発明を実施するための形態】
【００１５】
以下の説明は、全体を通じて同様の参照番号が同様の要素を指すために使用される図面を参照して提供される。1つまたは複数の技術の様々な詳細が本明細書で説明されているが、他の技術も可能である。いくつかの例では、構造およびデバイスは、様々な技術の説明を容易にするために、ブロック図の形式で示されている。
【００１６】
携帯電話、タブレット、カメラ、などのようなモバイルデバイスは、しばしば、ビデオまたは静止画像取り込みのようなイメージングアプリケーションのためのイメージングデータを取り込みおよび処理するとき、イメージングコアを利用する。イメージングアプリケーションを実行するために、モバイルデバイスは、一般的には、画像取り込みを可能にするための1つまたは複数のセンサと、画像データをセンサからプラットフォームにもたらすデータパス(ハードウェアおよび/またはソフトウェアで実装される)と、いくらかの処理とを含む。モバイルデバイスは、歴史的にイメージングアプリケーションのために使用されてきたので、モバイルデバイスは、通常、主にイメージングアプリケーションのために構成されているデータパスを有するイメージングコアを含む。
【００１７】
しかしながら、多くのモバイルデバイスは、現在、さらにコンピュータビジョンアプリケーションを実行し得る。一般的には、カメラおよびカムコーダ関連の機能を扱う限られた数のアプリケーションを含むイメージングアプリケーションとは対照的に、コンピュータビジョンアプリケーションは、等しく広範な機能を提供する様々なアプリケーションを含むことができる。たとえば、コンピュータビジョンアプリケーションは、以下の機能、
1.光の分散を検出する、
2.表示場面の変化を検出する、
3.視覚オブジェクトの検出、
4.視覚オブジェクトの特徴検出(たとえば、視覚オブジェクトの色、近接、運動、など)、
5.オブジェクト追跡、および/または、
6.プラットフォームの安定性の検出、
のうちの1つまたは複数を提供し得る。いくつかのコンピュータビジョンアプリケーションは、これらの機能に加えて、またはこれらの機能の代替として他の機能を提供し得る。実際には、モバイルデバイスの感知および処理能力が成長し続けると、追加の機能がおそらく出てくるであろう。
【００１８】
そのようなコンピュータビジョンアプリケーションのための十分なデータパスを提供する上で、モバイルデバイスは、比較的大きい処理量を必要とする活性状態と、比較的小さい処理量を必要とする状態との間で動作を切り替えることができる。低処理状態は、たとえば、コンピュータビジョンアプリケーションが、比較的高い処理量を必要とするデータ回路から関心の特徴(features of interest)を受信しない状態である。バッテリ駆動されるモバイルデバイスに関して、高および低処理状態の両方の効率的な実行は、より長いバッテリ寿命を提供し得る。しかしながら、前述のように、モバイルデバイスのためのイメージングコアは、一般的には、イメージングアプリケーションを優先的に処理する機能を有する固定されたデータパスを有し、データパスは、たとえば、高い解像度および/または高フレームレートを有する画像を提供するように構成されている。したがって、モバイルデバイスがコンピュータビジョンアプリケーションのための高および低処理状態の両方を効率的に実行することを可能にし得るデータパスを提供するのではなく、従来のモバイルデバイスは、しばしば、必要よりもはるかに多くのオーバヘッドを有するデータパスを提供することになる。加えて、従来のモバイルデバイス内のデータパスは、しばしば、コンピュータビジョンアプリケーションによって必要とされるフィルタリングを提供しないので、このフィルタリングの多くは、一般的なアプリケーション処理ユニットで行われる。これは、電子デバイスのバッテリの寿命だけでなく、ユーザの体験品質(QOE:quality of experience)にも悪影響を及ぼす可能性がある。本明細書で開示される実施形態は、コンピュータビジョンアプリケーションのためのフィルタをアプリケーション処理ユニットからデータパスにオフロードし、コンピュータビジョンアプリケーションに応じて、異なるデータ(および、異なるタイプのデータ)をアプリケーション処理ユニットに提供して、コンピュータビジョンアプリケーションの要件に調整し得るコンピュータビジョンアプリケーションのための適応型データパスを提供する。これは、最終的に、増加したバッテリ寿命および/またはQOEを提供する。
【００１９】
図1は、一実施形態による、コンピュータビジョンアプリケーションのための適応型データパスを有するデバイス100の特定のコンポーネントを示すブロック図である。コンポーネントは、センサ115と、センサコントローラ117と、アプリケーション処理ユニット130と、グラフィックス処理ユニット140と、ディスプレイ170と、ディスプレイコントローラ160と、メモリサブシステム150と、コンピュータビジョン処理ユニット120とを含むことができる。デバイス100は、通信インターフェース、ユーザインターフェース、などのような、図示されていない様々な追加のコンポーネントを含むことができる。本明細書で提供される他の図面と同じように、図1は、そのいずれかまたはすべてが適切に利用され得る様々なコンポーネントの一般化された実例を単に提供するためのものである。異なる実施形態は、図示のコンポーネントのいずれかを追加、除外、置換、結合、および/または分割し得る。当業者は、多くの変更に気付くであろう。
【００２０】
いくつかの実施形態では、デバイス100は、モバイルデバイスを備える。たとえば、デバイス100は、携帯電話、タブレット、パーソナルメディアプレーヤ、ポータブルゲームシステム、デジタルカメラ、カムコーダ、などを含むことができる。本明細書で提供される技術は、いくつかの実施形態では、電力の節約、および/または低減された待ち時間のような他の利点を提供するために、モバイルデバイスで利用され得るが、デバイス100は、それに限定されないことに注目してもよい。すなわち、実施形態は、デバイス100を含むことができ、モバイルであると考慮されなくてもよい。たとえば、テレビジョンは、イメージングアプリケーション(たとえば、ビデオ会議アプリケーション)のためのデータパスと、マシンビジョン(たとえば、ジェスチャ制御アプリケーション)のためのデータパスとを含むことができる。ゲームシステムは、イメージングアプリケーション(たとえば、ゲーム内ビデオチャット)のためのデータパスと、マシンビジョン(たとえば、ジェスチャおよび/またはボディ制御)のためのデータパスとを含むことができる。非モバイルデバイスを含む他の実施形態を検討する。
【００２１】
センサ115は、デバイス100の機能に応じて、1つまたは複数の様々なセンサを含むことができる。これは、カメラまたはカムコーダ機能に関連付けられていないセンサを含むことができる。センサは、たとえば、赤外線(IR)および/または近IRを検出するためのセンサ、異なる測色を決定するためのセンサ、深度(たとえば、飛行時間、構造化光、など)を決定するためのセンサ、ならびに、1つまたは複数のカメラ(たとえば、立体カメラ、前面および/または背面カメラ、など)、ならびに/あるいは他のイメージングセンサを含むことができる。
【００２２】
センサコントローラ117は、センサ115とのインターフェースを提供し得る。センサコントローラ117は、アプリケーション処理ユニット130および/またはコンピュータビジョン処理ユニット120のような他のコンポーネントからの入力に基づいてセンサ115を制御し得る。いくつかの実施形態では、センサコントローラ117は、たとえば、ホワイトバランス制御、露光制御、フォーカス制御、ビニングおよびスキップ制御、2D/3Dウィンドウ作成/ボックス化、および/または他の機能を提供し得る。センサ115および/またはセンサコントローラ117は、デバイス100のイメージセンサモジュール110の少なくとも一部分を形成し得る。
【００２３】
アプリケーション処理ユニット130は、1つまたは複数の汎用プロセッサ、1つまたは複数の専用プロセッサ(デジタル信号プロセッサ、グラフィックスアクセラレーションプロセッサ、などのような)、ならびに/または、メモリサブシステム150に記憶され得るコンピュータビジョンおよび他のソフトウェアアプリケーションを実行するように構成され得る他のプロセッサ構造を含むことができる。いくつかの実施形態では、アプリケーション処理ユニット130は、1つまたは複数のコアで構成されたアプリケーションまたは「アプリ」プロセッサを備える。
【００２４】
メモリサブシステム150は、アプリケーションおよび/またはシステム記憶装置を提供する1つまたは複数の非一時的コンピュータ可読記憶媒体を含むことができる。そのような記憶デバイスは、ディスクドライブ、ドライブアレイ、光記憶デバイス、プラグラム可能、フラッシュ更新可能、などの、ランダムアクセスメモリ(「RAM」)および/またはリードオンリーメモリ(「ROM」)のような固体記憶デバイスを含むことができる。そのような記憶デバイスは、様々なファイルシステム、データベース構造、などを制限なしに含む、任意の適切なデータストアを実装するように構成され得る。
【００２５】
ソフトウェア要素は、1つまたは複数の非一時的コンピュータ可読記憶媒体に組み込まれた命令としてメモリサブシステムに含まれ得る。そのようなソフトウェア要素は、オペレーティングシステム、デバイスドライバ、実行可能なライブラリ、および/または、1つまたは複数のアプリケーションプラグラムのような他のコードを含むことができ、他のコードは、本明細書に記載の実施形態によって提供されるように、アプリケーション処理ユニット130、コンピュータビジョン処理ユニット120、および/または他のコンポーネントに、方法(またはその部分)を実施させ、および/または、システムを構成させるように設計され得る。単なる例として、図7に関して説明した方法を含む、本明細書で説明した1つまたは複数の手順は、コンピュータビジョン処理ユニット120および/またはアプリケーション処理ユニット130によって実行可能なコードおよび/または命令として実装され得る。
【００２６】
グラフィックス処理ユニット140およびディスプレイコントローラ160は、アプリケーション処理ユニット130によって実行されるアプリケーションに応じて、ディスプレイ170上に1つまたは複数の画像を表示するために使用され得る。ビデオまたは静止画像取り込みのようなイメージングアプリケーションは、一般的には、画像を表示し、したがって、ディスプレイ170、ディスプレイコントローラ160、および/またはグラフィックス処理ユニット140の利用を必要とすることに注目してもよい。多くのコンピュータビジョンアプリケーションは、他方では、これらのコンポーネントをまったく利用する必要がない可能性がある。したがって、デバイス100のこれらのコンポーネントは、アプリケーション処理ユニット130によって実行されるコンピュータビジョンアプリケーションに適応するために、含まれてもよく、データパスから除外されてもよい。
【００２７】
コンピュータビジョン処理ユニット120は、センサ115からアプリケーション処理ユニット130までの適応型データパスを提供するためのハードウェアおよび/またはソフトウェアサブコンポーネントを含むことができる。これは、たとえば、ビデオフロントエンド(VFE:video front end)、イメージシグナルプロセッサ(ISP:image-signal processor)、デジタル信号プロセッサ(DSP)、および/または、アプリケーション処理ユニットと別々にプログラム可能な他の処理ユニットを含むことができる。オプションでは、コンピュータビジョン処理ユニット120は、メモリサブシステム150から読み込むおよび/またはメモリサブシステム150に書き込むことができる。いくつかの実施形態では、コンピュータビジョン処理ユニット120は、アプリケーション処理ユニット130によって実行されるコンピュータビジョンアプリケーションに基づいて動的にプログラムされ得る。したがって、コンピュータビジョン処理ユニット120は、メモリサブシステム150および/またはコンピュータビジョン処理ユニット120内部のメモリ(メモリサブシステム150に関連して上記で説明したものと同様の特徴を含むことができる)内に記憶されたアプリケーションを実行し得る。いくつかの実施形態では、コンピュータビジョン処理ユニット120内部のメモリのサイズ、および/またはコンピュータビジョンアプリケーションの要求に応じて、コンピュータビジョン処理ユニット120は、メモリサブシステム150を使用せずに適応型データパスを提供することができ、それによって、メモリサブシステム150が、アプリケーション処理ユニット130とともに低電力モードに入ることを可能にする。
【００２８】
一実施形態では、コンピュータビジョン処理ユニット120は、コンピュータビジョンアプリケーションのための様々なフィルタを実施するように適応された、特化型命令ベースのインラインプロセッサを備えることができる。そのように、コンピュータビジョンアプリケーションは、いくつかの実施形態では、解釈エンジンを利用する必要なしに、必要とされるフィルタを実施するために命令を呼び出すことができる。すなわち、コンピュータビジョン処理ユニット120によって実施されるフィルタは、コンピュータビジョンアプリケーションのための必要とされるフィルタを識別するために、特化型命令ベースのインラインプロセッサによってリアルタイムに翻訳されるインタープリタ型言語に関係している標準型命令ベースのコマンドのセットに対応し得る。
【００２９】
コンピュータビジョンアプリケーションのための適応型データパスのために本明細書で提供される技術は、アプリケーション層で制御されるプログラム可能性を有効にし得る。すなわち、アプリケーション処理ユニット130によって実行されるコンピュータビジョンアプリケーションは、いくつかの実施形態では、任意のときに、命令および/または他の情報をコンピュータビジョン処理ユニット120に提供し得る。そのような機能は、アプリケーションにより多くのパワーを与え、コンピュータビジョンデータが使用されるコンテキストのどんな追加の知識もなしにコンピュータビジョンデータを効率的に提供する動的にプログラム可能なコンピュータビジョン処理ユニット120を可能にする。コンピュータビジョンアプリケーションは、コンテキストを決定することができ、それに応じて、コンピュータビジョン処理ユニット120に命令を提供し得る。上述したように、実施形態は、解釈エンジンを利用する必要なしに、コンピュータビジョンアプリケーションが所望のフィルタを実施するために命令を呼び出すことを可能にする。
【００３０】
特定の要件にしたがって、図1に示すコンポーネントに相当の変化がもたらされ得ることが当業者には明らかであろう。たとえば、カスタマイズされたハードウェアも使用され得、および/または、特定の要素は、ハードウェア、ソフトウェア、または両方で、上記の説明に加えて、またはその代替として実施され得る。さらに、他のデバイスおよび/またはセンサとの接続が用いられ得る。
【００３１】
図2は、一実施形態による、センサモジュール210からコンピュータビジョンアプリケーションおよびサービス240にデータを提供するデータパス200を示す機能ブロック図である。データパス200は、図1のデバイス100の1つまたは複数のコンポーネント、および/または類似の手段によって実行され得る。センサモジュール210ならびにコンピュータビジョンアプリケーションおよびサービス240に加えて、データパス200は、コアデータパス220と、コンピュータビジョン特化モジュール230とを含むことができる。他の実施形態は、類似の機能的方法で異なるコンポーネントを利用することによって、図示の実施形態と異なることができる。当業者は、多くの変更に気付くであろう。
【００３２】
センサモジュール210は、図1のイメージセンサモジュール110および/または類似の手段のような、センサデータを出力するセンサおよび/または他のコンポーネントを備えることができる。デバイス100の機能、および/または、センサモジュール210のセンサの能力に応じて、センサモジュールからのデータは、変化し得る。センサモジュール210からのデータは、次いで、コアデータパス220に渡される。
【００３３】
コアデータパス220の機能は、センサモジュール210とコンピュータビジョン特化モジュール230との間のインターフェースを提供し得る。それは、いくつかの実施形態によれば、センサモジュール210の特定のセンサデータに適応し、一様な方法でデータを出力するように適応され得る。さらに、コアデータパス220は、たとえば、イメージングアプリケーション、コンピュータビジョンアプリケーション、および/または、デバイス100によって実行可能な他の一般的なアプリケーションで使用される特定のフィルタを用いて、センサモジュール210のデータのいくらかの初期処理を実行し得る。そのようなフィルタは、たとえば、照明、色、露光、フォーカス、などのための最適化フィルタを含むことができる。コアデータパス220は、図1のコンピュータビジョン処理ユニット120および/またはイメージセンサモジュール110の一部分、ならびに、1つまたは複数の中間コンポーネント(図示せず)、および/または類似の手段によって実施され得る。いくつかの実施形態では、コアデータパス220は、ビデオフロントエンド(VFE)によって少なくとも部分的に実施され得る。
【００３４】
コンピュータビジョン特化モジュール230は、図1のコンピュータビジョン処理ユニット120および/またはメモリサブシステム150によって実行され得るデータパス200の適応型コンポーネントを備える。コンピュータビジョン特化モジュール230は、コンピュータビジョンアプリケーションおよびサービス240のための入力を決定し、それに応じてデータパスを適応させるように構成され、それによって、センサモジュール210からのデータを、コンピュータビジョンアプリケーションおよびサービス240のための入力に適応させる。たとえば、コンピュータビジョン特化モジュール230は、1つまたは複数のコンピュータビジョンアプリケーションおよびサービス240の要件または必要に基づいて、あるいは、そこからの命令またはそのインターフェースに基づいて、入力を決定し得る。具体的には、コンピュータビジョン特化モジュール230は、コアデータパス220を介してセンサモジュール210から画像(または他のデータ)を受信することができ、コンピュータビジョンアプリケーションおよびサービス240のニーズに基づいて、利用可能な画像処理機能(本明細書では「フィルタ」とも呼ばれる)の少なくとも1つのサブセットを使用して、画像を処理し得る。いくつかの実施形態では、コンピュータビジョン特化モジュール230、またはその機能の一部分は、ISPによって実施される。
【００３５】
コンピュータビジョンアプリケーションおよびサービス240は、図1のアプリケーション処理ユニット130および/またはメモリサブシステム150、ならびに/あるいは類似の手段によって実行され得る。以下でより詳細に論じるように、コンピュータビジョンアプリケーションおよびサービス240は、コンピュータビジョン特化モジュール230に基準(画像、コマンド、など)を提供することによって、コンピュータビジョン特化モジュール230に所望のデータまたは情報の指示を提供し得る。上記で開示したように、コンピュータビジョンアプリケーション(および、そのニーズ)は、アプリケーションに応じて実質的に変化し得る。コンピュータビジョンアプリケーションおよびサービス240は、本明細書で説明されるように、1つまたは複数のコンピュータビジョンアプリケーションおよび/またはコンピュータビジョンサービスを含むことができることが理解されるであろう。複数のコンピュータビジョンアプリケーションおよび/またはサービスが多くのニーズを有する場合、コンピュータビジョン特化モジュール230は、いくつかの実施形態では、それらのすべてのニーズを満たすように最適なデータパスを提供し得る。
【００３６】
図3は、一実施形態による、コンピュータビジョン特化モジュール230の利用可能なフィルタ315〜355のセットを示す。いくつかの実施形態では、フィルタは、少なくとも部分的にハードウェアで実施され、ソフトウェア単独で実行される場合よりも高速で、より効率的なフィルタリングを提供する。さらに、コンピュータビジョンアプリケーションおよびサービス240ならびに/またはアプリケーション処理ユニット130の代わりのコンピュータビジョン特化モジュール230内のそのようなフィルタの実施は、いくつかの実施形態では、処理速度を上昇させることができ、および/または、電力消費を減らすことができる。図3は、特定の順序での、コアデータパス220から受信された入力310から、コンピュータビジョンアプリケーションおよびサービス240に提供される出力375への特定のデータパスを提供するものとしてフィルタを示しているが、順序は、アプリケーションに応じて変更され得る。さらに、フィルタは、アプリケーションに応じて、追加、除外、置換、結合、および/または分割され得る。さらに、フィルタの任意の1つまたは複数は、いくつかの実施形態では、コンピュータビジョン特化モジュール230内の他のフィルタの使用を必要とすることなく、所与の機能またはプロセスのために使用するために選択され得る。
【００３７】
ニーズを示すために、コンピュータビジョンアプリケーションおよびサービス240は、入力365を介して基準360を提供し得る。アプリケーションに応じて、基準は、たとえば、基準画像であり得る。基準は、加えて、または代替的に、画像についての情報(たとえば、画像の色分布を提供するヒストグラム)を含むことができる。オプションで、基準は、特定のプロトコルおよび/または命令セットに付着し得る、コンピュータビジョンアプリケーションおよびサービス240からのコマンド、または命令のセットを含むことができる。いくつかの例では、基準は、コンピュータビジョンアプリケーションおよびサービス240からの基準を受信するのに加えて、またはその代替として、コアデータパス220から直接コンピュータビジョン特化モジュール230によって得られ得る。基準が得られると、コンピュータビジョン特化モジュール230は、それをメモリに記憶し得る。
【００３８】
動的ビュー選択325は、その後の処理のための特定のビューを選択するように構成され得る。具体的には、コンピュータビジョンアプリケーションに応じて、視野は、複数のイメージセンサ(たとえば、ステレオ画像のために少なくとも2つ)によってサンプリングされ得る。そのように、いくつかのイメージセンサからの視野は、コンピュータビジョンのための必要な処理を最小化するように動的に調整され得る。一例では、ハンドジェスチャ認識は、手を追跡することができ、その画像は、複数のイメージセンサによって取り込まれる。動的ビュー選択325は、複数の画像から、手の追跡のための最良の画像を選択し得る。別の例では、動的ビュー選択325は、たとえば、拡張現実(AR:augmented reality)アプリケーションで使用するために、基準マーカを追跡し、基準マーカの最良の視野(たとえば、基準マーカに対して垂直)を有する画像を選択し得る。これは、処理する画像の量を減らすことによって、その後の処理を減らすのを助けることができる。
【００３９】
ビューナローイング315およびビューローカライズ320は、アプリケーションが対象としていない画像の部分を除去するように構成され得る。たとえば、特定のコンピュータビジョンアプリケーションは、2メガピクセル画像の1つの四分の一区分に配置された特定のオブジェクトを対象とし得る。そのような場合には、画像の一部分(たとえば、500000ピクセル)のみが、処理され、コンピュータビジョンアプリケーションおよびサービス240に渡される必要がある。したがって、コンピュータビジョン特化モジュール230は、たとえば、画像の関連部分を分離、ならびに/あるいは、オブジェクトを表すピクセルおよび/または線の数を推定するために、ビューナローイング315を用いるように適応され得る。コンピュータビジョンアプリケーションおよびサービス240のニーズが変化する(たとえば、特定のコンピュータビジョンアプリケーションが異なる状態に入る、および/または、別のコンピュータビジョンアプリケーションが実行される)につれて、コンピュータビジョン特化モジュール230は、それに応じて適応し得る。したがって、コンピュータビジョン特化モジュール230は、異なる時間に異なる解像度を提供するために、ビューナローイング315および/またはビューローカライズ320を使用し得る。
【００４０】
可変角度回転345は、画像を取り込むセンサに対して画像および/または画像内のオブジェクトを回転させるように構成され得る。たとえば、コンピュータビジョンアプリケーションは、矩形がセンサに対して特定の方向にあるとき、画像内の矩形を単に識別し得る。コンピュータビジョンアプリケーションに画像の向きを調整するためのアルゴリズムを実行する(たとえば、アプリケーション処理ユニット130上でアルゴリズムを実行する)ことを強制するのではなく、コンピュータビジョン特化モジュール230は、可変角度回転345を使用して画像のすべてまたは一部分を回転させるようにデータパスを適応させることができる。
【００４１】
色変換350、色フィルタリングおよびマスキング330、ならびにヒストグラム解析335は、たとえば、コンピュータビジョンアプリケーションおよびサービス240が色認識および/または操作の必要性を示すとき、データパスで実施され得る。
【００４２】
フレームドロップ制御340は、コンピュータビジョンおよびサービス240に送達される画像(フレーム)の量を減少させるように構成され得、それによって、帯域幅および電力ニーズを減少させる。たとえば、一旦プログラムされると、センサモジュール210のセンサは、1秒あたり特定の量のフレームを送達し得る。しかしながら、この量が、コンピュータビジョンアプリケーションおよびサービス240が必要とするよりも多い場合、データパスは、フレームドロップ制御340を使用して、任意の余分なフレームをドロップするように構成され得る。
【００４３】
シーン変化検出および動き推定355は、センサ入力の変化が生じたかどうかを判断するように構成され得る。変化は、たとえば、現在の画像を過去の画像と比較することによって判断され得る。先に示したように、過去の画像は、データパスから送達される、または、入力365を介してコンピュータビジョンアプリケーションおよびサービス240から受信される基準360として維持され得る。
【００４４】
図3には示していないが、コンピュータビジョン特化モジュール230は、特徴を識別および/または出力するように構成された1つまたは複数のフィルタ、ならびに/あるいは、要素または特徴を追跡するおよび/またはその位置を出力するように構成された1つまたは複数のモジュールを含むこともできる。たとえば、コンピュータビジョン特化モジュール230は、スケール不変特徴変換(SIFT:Scale Invariant Feature Transform)、擬似SIFT、高速化ロバスト特徴(SURF:Speeded-up Robust Features)、および/または、加速セグメントテスト(FAST:Accelerated Segment Test)コーナ検出器からの特徴のような、画像から特徴を抽出するように構成された1つまたは複数の機能を備えることができる。さらに、特徴は、スペクトル特徴または特性を計算するために、1つまたは複数の機能を含むことができる。
【００４５】
コンピュータビジョン特化モジュール230は、コンピュータビジョン割り込みプロセッサ370を含むこともできる。コンピュータビジョン割り込みプロセッサ370により、コンピュータビジョン特化モジュール230は、コンピュータビジョンアプリケーションおよびサービス240を実行する基礎となるハードウェア(たとえば、アプリケーション処理ユニット130および/またはメモリサブシステム150)が低電力(たとえば「スタンバイ」)モードに入るのを可能にし得る。コンピュータビジョン特化モジュール230が、トリガイベントが発生していると判断したとき、コンピュータビジョン特化モジュール230は、基礎となるハードウェアに低電力モードを終了させるように、基礎となるハードウェアに割り込みを提供するために、コンピュータビジョン割り込みプロセッサ370を利用し得る。
【００４６】
他のフィルタと組み合わされたとき、コンピュータビジョン割り込みプロセッサ370は、コンピュータビジョンアプリケーションおよびサービス240を実行する基礎となるハードウェアからの処理をほとんどまたはまったく必要とせずに、コンピュータビジョン特化モジュール230がデータパス内の様々な機能を実行することを可能にし得る。たとえば、コンピュータビジョンアプリケーションおよびサービス240は、セキュリティアプリケーションを含むことができ、セキュリティアプリケーションでは、デバイス100が、カメラで領域を監視し、監視された領域内の変化を検出した場合、警報を鳴らす。バッテリ電力を維持するために、コンピュータビジョン特化モジュール230が、監視された領域の基準画像とセンサ入力を比較するために、シーン変化検出および動き推定355を用いている間、コンピュータビジョンアプリケーションおよびサービス240を実行する基礎となるハードウェア(たとえば、アプリケーション処理ユニット130および/またはメモリサブシステム150)は、スタンバイモードに入ることができる。シーン変化検出および動き推定355が、監視された領域に変化がある(たとえば、誰かまたは何かが、カメラによって見られているシーンに入った)と判断した場合、コンピュータビジョン割り込みプロセッサ370に通知し得る。コンピュータビジョン割り込みプロセッサ370は、今度は、コンピュータビジョンアプリケーションおよびサービス240を実行する基礎となるハードウェアのための割り込みを発生させることができ、この割り込みは、次いで、セキュリティアプリケーションに警報を鳴らさせることができる。コンピュータビジョンアプリケーションおよびサービス240内にではなく、このようにデータパス内にコンピュータビジョン割り込みプロセッサ370ならびにシーン変化検出および動き推定355を設けることによって、デバイス100は、コンピュータビジョンアプリケーションおよびサービス240を実行する基礎となるハードウェアによって不必要に処理することなく、効率的な方法でセキュリティアプリケーションを実行し得る。
【００４７】
図4は、コンピュータビジョン特化モジュール230のコンポーネントがコンピュータビジョンアプリケーションおよびサービス240のためのデータパスの異なる機能部分に分類され得る方法を示すブロック図400である。たとえば、コンポーネントは、以下の機能部分、入力層420、プリミティブ認識430、および構造認識440に分類され得る。コンピュータビジョン特化モジュール230に含まれない(たとえば、コアデータパス220に含まれる)データパスの態様は、また、所望の機能に応じて、入力層420、プリミティブ認識430、および/または構造認識440の機能に寄与し得る。すなわち、コアデータパス220は、入力層420、プリミティブ認識430、および/または構造認識440の一部分がすでに実行されている可能性がある入力310を提供し得る。
【００４８】
入力層420は、その後のコンピュータビジョン処理ブロックで必要な処理を潜在的に低減しつつ、センサモジュール210からのデータを引き込むデータパスの一部分を備える。これを行うために、入力層420は、たとえば、色変換350、色フィルタリングおよびマスキング330、動的ビュー選択325、ビューローカライズ320、ビューナローイング315、可変角度回転345、色変換350、色フィルタリングおよびマスキング330、ならびに/またはフレームドロップ制御340、などを含む1つまたは複数の画像処理フィルタで構成され得る。加えて、または代替的に、入力層420は、照明、色、露光、および/またはフォーカスを最適化する画像処理フィルタ、ならびに特徴抽出のために構成されたフィルタ、ならびに/もしくは、他のフィルタを提供し得る。
【００４９】
データパスのプリミティブ認識430の部分は、コンピュータビジョンアプリケーションおよびサービス240のニーズに基づいて構成され得る。これは、特定の特徴がセンサモジュール210からのデータ内に存在するかどうかを決定することを含むことができる。たとえば、コンピュータビジョンアプリケーションおよびサービス240がハンドジェスチャ認識を含む場合、プリミティブ認識430は、手を認識するように構成され得る。特定の色を対象とするアプリケーションに関して、プリミティブ認識430は、1つまたは複数の色が存在するかどうかを決定するために、センサモジュール210からのデータの測色を調査するように構成され得る。この機能を提供するために、プリミティブ認識430は、たとえば、ビューローカライズ320および/またはビューナローイング315などを含む1つまたは複数の画像処理フィルタで構成され得る。加えて、または代替的に、プリミティブ認識430は、セグメンテーション、姿勢検出、および/または他のフィルタを含む画像処理フィルタで構成され得る。
【００５０】
構造認識440は、センサモジュール210からのデータ内の特徴を経時的に追跡し、構造を定義するように構成され得、これは、コンピュータビジョンアプリケーションおよびサービス240のニーズに基づくこともできる。データ内の特徴は、エッジ、コーナ、SIFT(スケール不変特徴変換)、などの識別可能な特徴を含むことができる。追跡された特徴によって定義される構造は、たとえば、記号および/または視覚ジェスチャを含むことができる。この機能を提供するために、および/または、プリミティブおよび/または構造認識処理ブロックでの必要な処理を潜在的に低減するために、構造認識440は、たとえば、シーン変化検出および動き推定355、フレームドロップ制御340、ヒストグラム解析335、などを含む1つまたは複数の画像処理フィルタで構成され得る。加えて、または代替的に、構造認識440は、追跡、予測、ジェスチャ検出、および/または他のフィルタを含む画像処理フィルタで構成され得る。追跡された特徴は、構造認識を要求および/または実行するアプリケーションのニーズに応じて変化し得る。ジェスチャベースのアプリケーションは、たとえば、ジェスチャを決定するために、手の追跡を必要とし得る。コンテキストアウェアアプリケーションまたは拡張現実アプリケーションは、他方では、オブジェクト認識のための様々なオブジェクトのいずれかを追跡し得る。
【００５１】
図5Aおよび図5Bは、コンピュータビジョン特化が、コンピュータビジョンアプリケーションおよびサービス240のニーズに基づいてデータパス200を適応的に調整して、異なるフィルタチェーンを用いることができる方法の例を提供する。図5Aでは、コンピュータビジョン特化モジュール230は、出力375をコンピュータビジョンアプリケーションおよびサービス240に提供するために、ヒストグラム解析335と、シーン変化検出および動き推定355と、コンピュータビジョン割り込みプロセッサ370とを備えるフィルタチェーンを利用することによって、データパスをセキュリティアプリケーションに適応させる。図5Bでは、コンピュータビジョン特化モジュール230が、ビューナローイング315と、可変角度回転345と、フレームドロップ制御340とを備えるフィルタチェーンを利用することによって、オブジェクト認識のためのコンピュータビジョンアプリケーションのニーズを満たすように、データパスを適応させる、データパス200が示されている。図5Aと図5Bの両方に示す例で提供されるフィルタチェーンは、3つのフィルタを含むが、コンピュータビジョン特化モジュール230は、コンピュータビジョンアプリケーションおよびサービス240のニーズに基づいて、より多くのまたはより少ないフィルタを含むことができることに注目してもよい。
【００５２】
コンピュータビジョン特化モジュール230によって利用される各フィルタのパラメータは、また、コンピュータビジョンアプリケーションおよびサービス240のニーズに応じて変化し得る。たとえば、ビューナローイング315は、第1のアプリケーションのための画像の右上の四分の一、および、第2のアプリケーションのための画像の左下の四分の一を提供するように定義され得る。さらに、コンピュータビジョン特化モジュール230は、単一のアプリケーションの変化するニーズにしたがって、フィルタおよびそれらのパラメータを適応させることができる。したがって、コンピュータビジョン特化モジュール230は、異なるコンピュータビジョンアプリケーションのためだけでなく、特定のコンピュータビジョンアプリケーションの異なる状態および/またはニーズのためにデータパスを適応させることができる。
【００５３】
図3に示すフィルタに加えて、実施形態は、データの異なるセグメントのためのデータポートを提供するために、データ切り替えを利用し得る。この機能の一例は、図6に示されている。ここで、(図3に関連して説明したフィルタ315〜355のような)任意の他のフィルタ610に加えて、コンピュータビジョン特化モジュール230は、マルチビューポートデータスイッチ620がデータを異なるポート630に分離するフィルタチェーンを用いることができる。マルチビューポートデータスイッチ620で、データパス200は、単一の画像からのデータを、画像が別々のセンサによって撮影されたかのように、別々のサブ画像出力に分割し得る。たとえば、コンピュータビジョンアプリケーションおよびサービス240での顔認識コンピュータビジョンアプリケーションに関して、コンピュータビジョン特化モジュール230は、4人の顔の画像から各顔の別々の画像を抽出するために、フィルタ610およびマルチビューポートデータスイッチ620を使用することができ、各画像のデータは、対応するビューポート630を有する。顔認識コンピュータビジョンアプリケーションは、各ポート630からのデータを利用することができ、各ポート630からの顔認識を別々に実行し得る。
【００５４】
この方法でのデータ切り替えは、図1のメモリサブシステム150を備えることができるデバイスのシステムメモリ640でデータがタグ付けされる方法を容易にすることもできる。データのタグ付けは、情報をデータパス200に提供する複数のセンサを有するデバイスに特に有用であり得る。図6に示すように、実施形態は、コンピュータビジョン特化モジュール230のマルチビューポートデータスイッチ620が、各データポート630のデータにタグ付けし、システムメモリ640に書き込むことを可能にするように構成され得る。マルチビューポートデータスイッチ620は、システムメモリ640でのページングが低減されるようにデータを整列させるように構成され得、それによって、待ち時間および電力消費を低減する。
【００５５】
図7は、コンピュータビジョンアプリケーションのための適応型データパスを提供するための方法700の一実施形態を示す。方法は、たとえば、図1のコンピュータビジョン処理ユニット120のようなコンピュータビジョン処理ユニットによって実行され得る。したがって、方法700の各ステップを実行するための手段は、本明細書で説明したようなハードウェアおよび/またはソフトウェアコンポーネントを含むことができる。一実施形態では、方法700は、特化型命令ベースのインラインプロセッサによって実行され得る。さらに、デバイスのメモリサブシステムおよび/またはコンピュータビジョン処理ユニットの内部のメモリは、デバイスおよび/またはコンピュータビジョン処理ユニットに方法700のステップの1つまたは複数を実行させるための命令で符号化され得る。
【００５６】
ブロック710では、第1の画像が受信される。画像は、イメージセンサモジュールの1つまたは複数のセンサ、たとえば、センサ115から受信され得る。いくつかの実施形態では、たとえば、コアデータパスによって画像が受信される前に、なんらかの予備フィルタリングが画像に対して生じ得る。
【００５７】
ブロック720では、画像処理機能の第1のサブセット、またはフィルタが、アプリケーション処理ユニットによって実行される第1のコンピュータビジョンアプリケーションに基づいて選択される。第1のサブセットは、第1の画像の処理で使用され得る複数の画像処理機能から選択される。先に示したように、画像処理機能の第1のサブセットを選択することは、アプリケーション処理ユニット、たとえば、アプリケーション処理ユニット130によって実行されるコンピュータビジョンアプリケーションによって提供される入力に基づくことができる。入力は、たとえば、基準画像であり得る。方法700が特化されたコンピュータビジョン処理ユニットによって実行される場合、入力は、別個の解釈エンジンなしでコンピュータビジョン処理ユニットによって解釈される命令ベースのコマンドであり得る。入力は、コンピュータビジョンアプリケーションによってアプリケーション層で生成される命令を含むことができる。加えて、または代替的に、コンピュータビジョン処理ユニット(および/または、方法700を実施する他のハードウェアおよび/またはソフトウェア)は、選択された画像処理機能を実施するために、入力に基づいて動的にプログラムされ得る。フィルタまたは機能は、フィルタ315〜355、もしくは、本明細書で図示または説明していない他のフィルタのいずれかを含むことができる。
【００５８】
ブロック730では、第1の画像が、画像処理機能の第1のサブセットを使用して処理される。所望の機能、および/または、コンピュータビジョンアプリケーションのニーズに応じて、アプリケーション処理ユニットおよび/またはメモリサブシステムのいずれかまたは両方に低電力モードを終了させるために、割り込みまたは他の入力が、アプリケーション処理ユニットおよび/またはメモリサブシステムに提供され得る。いくつかの例では、図6に関連して上記で説明したように、単一の画像からサブ画像を分離するために、マルチビューポートデータスイッチが使用されるときのように、第1の画像からの複数のサブ画像出力が提供され得る。
【００５９】
オプションのブロック740〜760は、第2のコンピュータビジョンアプリケーションに関連するデータパスの適応性を示す。ブロック740では、第2の画像が、たとえばセンサ115から受信される。ブロック750では、画像処理機能の第2のサブセットが、たとえば、機能315〜355または他の機能から、アプリケーション処理ユニットによって実行される第2のコンピュータビジョンアプリケーションに基づいて選択される。ここで、たとえば、第2のコンピュータビジョンアプリケーションのニーズは、第1のコンピュータビジョンアプリケーションのニーズとは異なってよく、したがって、図5Aおよび図5Bに関連して上記で説明したように、画像処理機能の第2のサブセットの選択をもたらすことができる。しかしながら、上記で説明したように、データパスは、アプリケーション処理ユニットによって実行される異なるコンピュータビジョンアプリケーションに基づいて、使用される画像処理機能、および/または各画像処理機能のパラメータを変更し得るだけでなく、特定のコンピュータビジョンアプリケーションの状態に基づいて、使用される画像処理機能、および/または各画像処理ユニットのパラメータを変更することもできる。ブロック760では、第2の画像が、画像処理機能の第2のサブセットを使用して処理される。
【００６０】
図7に示す特定のステップは、コンピュータビジョンアプリケーションのための適応型データパスを提供するための例示的な方法を示していることを理解すべきである。代替実施形態は、図示の実施形態に対する変更を含むことができる。さらに、特定のアプリケーションに応じて、追加の機能が追加または除去され得る。当業者は、多くの変形、修正、および代替に気付くであろう。
【００６１】
本明細書で論じた方法、システム、およびデバイスは、例である。様々な実施形態は、様々な手順またはコンポーネントを適切に省略、置換、または追加し得る。たとえば、特定の実施形態に関連して説明した特徴は、様々な他の実施形態と組み合わされ得る。実施形態の異なる態様および要素は、同様の方法で組み合わされ得る。本明細書で提供される図面の様々なコンポーネントは、ハードウェアおよび/またはソフトウェアで具体化され得る。また、技術は、発展し、したがって、要素の多くは、本開示の範囲をこれらの特定の例に限定しない例である。
【００６２】
実施形態の完全な理解を提供するために、特定の詳細が本明細書本文で与えられている。しかしながら、実施形態は、これらの特定の詳細なしに実施され得る。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技術は、実施形態を不明瞭にすることを避けるために、不必要な詳細なしで示されている。この説明は、例示的な実施形態のみを提供し、本発明の範囲、適用性、または構成を限定することを意図していない。むしろ、実施形態の前述の説明は、当業者に、本発明の実施形態を実施するための可能な説明を提供するであろう。本発明の要旨および範囲から逸脱することなく、様々な変更が要素の機能および配置になされ得る。
【００６３】
いくつかの実施形態を説明したが、様々な修正、代替構成、および等価物は、本開示の要旨から逸脱することなく使用され得る。たとえば、上記の要素は、単に、より大きいシステムのコンポーネントであり得、そこでは、他のルールが、本発明のアプリケーションに優先する、または他の方法で本発明のアプリケーションを修正する可能性がある。また、いくつかのステップは、上記の要素が考慮される前、最中、または後に行われ得る。したがって、上記の説明は、本開示の範囲を限定しない。
【符号の説明】
【００６４】
100  デバイス
110  イメージセンサモジュール
115  センサ
117  センサコントローラ
120  コンピュータビジョン処理ユニット
130  アプリケーション処理ユニット
140  グラフィックス処理ユニット
150  メモリサブシステム
160  ディスプレイコントローラ
170  ディスプレイ
200  データパス
210  センサモジュール
220  コアデータパス
230  コンピュータビジョン特化モジュール
240  コンピュータビジョンアプリケーションおよびサービス
310  入力
315  ビューナローイング
320  ビューローカライズ
325  動的ビュー選択
330  色フィルタリングおよびマスキング
335  ヒストグラム解析
340  フレームドロップ制御
345  可変角度回転
350  色変換
355  シーン変化検出および動き推定
360  基準
365  入力
370  コンピュータビジョン割り込みプロセッサ
375  出力
400  ブロック図
420  入力層
430  プリミティブ認識
440  構造認識
610  フィルタ
620  マルチビューポートデータスイッチ
630  ポート
640  システムメモリ
【図１】
0006706198.tif 000002
【図２】
0006706198.tif 000003
【図３】
0006706198.tif 000004
【図４】
0006706198.tif 000005
【図５Ａ】
0006706198.tif 000006
【図５Ｂ】
0006706198.tif 000007
【図６】
0006706198.tif 000008
【図７】
0006706198.tif 000009