(57)【要約】  撮像及び分析処理のために最適な電力及びパフォーマンスポリシーの選択を提供するべく、幾つかの実施形態では、再利用可能、再構成可能である、専用機能プロセスエレメントを、連続実行されるプロセスエレメントからなる実行シーケンスに割り当ててよい。所与のプロセスエレメントはいずれも、シーケンスのパフォーマンスメトリックを満たすべく、任意の所与の実行シーケンスに再構成されてよい。そして複数のシーケンスが並列実行されてよい。【選択図】図１
2015508528.tif 000002
【特許請求の範囲】
【請求項１】
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当てる段階と、
あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成する段階と、
複数のシーケンスを並列実行する段階と
を備える方法。
【請求項２】
並列実行される２つのシーケンスで所与のプロセスエレメントを利用する段階を備える、請求項１に記載の方法。
【請求項３】
前記再構成する段階は、
シーケンスの電力予算を満たすべくプロセスエレメントを修正する段階を有する、請求項１に記載の方法。
【請求項４】
前記再構成する段階は、
電力消費を調整するべくメモリ帯域幅を調節する段階を有する、請求項３に記載の方法。
【請求項５】
温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する段階を備える、請求項１に記載の方法。
【請求項６】
シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する段階を備える、請求項１に記載の方法。
【請求項７】
プロセスエレメントの優先度を、対応するシーケンスのパフォーマンスメトリック又はバス調停メトリックを満たすべく調節する段階を備える、請求項１に記載の方法。
【請求項８】
ランタイムにおいて、パフォーマンスメトリックを満たすべく、あるシーケンスにおいてどのようにプロセスエレメントが動作するかを変更する段階を備える、請求項１に記載の方法。
【請求項９】
シーケンスのパフォーマンスメトリックを満たすべく、プロセスエレメントのメモリアクセスの優先レベルを変更する段階を備える、請求項１に記載の方法。
【請求項１０】
再構成は、前記シーケンス中に動的に実行される、請求項１に記載の方法。
【請求項１１】
コンピュータに、
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当てる手順と、
あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成する手順と、
複数のシーケンスを並列実行する手順と
を実行させるためのプログラム。
【請求項１２】
更に、前記コンピュータに、並列実行される２つのシーケンスで所与のプロセスエレメントを利用する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１３】
更に、前記コンピュータに、シーケンス電力予算を満たすべくプロセスエレメントを修正する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１４】
更に、前記コンピュータに、電力消費を調整するべくメモリ帯域幅を調節する手順を実行させるための、請求項１３に記載のプログラム。
【請求項１５】
更に、前記コンピュータに、温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１６】
更に、前記コンピュータに、シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１７】
更に、前記コンピュータに、プロセスエレメントの優先度を、対応するシーケンスのパフォーマンスメトリック又はバス調停メトリックを満たすべく調節する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１８】
更に、前記コンピュータに、ランタイムにおいて、パフォーマンスメトリックを満たすべく、あるシーケンスにおいてどのようにプロセスエレメントが動作するかを変更する手順を実行させるための、請求項１１に記載のプログラム。
【請求項１９】
更に、前記コンピュータに、シーケンスのパフォーマンスメトリックを満たすべく、プロセスエレメントのメモリアクセスの優先レベルを変更する手順を実行させるための、請求項１１に記載のプログラム。
【請求項２０】
更に、前記コンピュータに、再構成を、前記シーケンス中に動的に実行する手順を実行させるための、請求項１１に記載のプログラム。
【請求項２１】
シーケンサと、
前記シーケンサに連結されたメモリと
を備え、
前記シーケンサは、
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当て、あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成し、複数のシーケンスを並列実行する、装置。
【請求項２２】
前記シーケンサは、並列実行される２つのシーケンスで所与のプロセスエレメントを利用する、請求項２１に記載の装置。
【請求項２３】
前記シーケンサは、シーケンス電力予算を満たすべくプロセスエレメントを修正する、請求項２１に記載の装置。
【請求項２４】
前記シーケンサは、電力消費を調整するべくメモリ帯域幅を調節する、請求項２３に記載の装置。
【請求項２５】
前記シーケンサは、温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する、請求項２１に記載の装置。
【請求項２６】
前記シーケンサは、シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する、請求項２１に記載の装置。
【請求項２７】
前記シーケンサは、プロセスエレメントの優先度を、対応するシーケンスのパフォーマンスメトリック又はバス調停メトリックを満たすべく調節する、請求項２１に記載の装置。
【請求項２８】
前記シーケンサは、ランタイムにおいて、パフォーマンスメトリックを満たすべく、あるシーケンスにおいてどのようにプロセスエレメントが動作するかを変更する、請求項２１に記載の装置。
【請求項２９】
前記シーケンサは、シーケンスのパフォーマンスメトリックを満たすべく、プロセスエレメントのメモリアクセスの優先レベルを変更する、請求項２１に記載の装置。
【請求項３０】
無線インターフェースを備える、請求項２１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は概して、画像処理及び分析のための処理タスクを実行することに関する。
【背景技術】
【０００２】
分析は、表現されているオブジェクトに関する情報を取得するために画像又は画像フレームからなるビデオシーケンスを処理することを伴う。ビデオ分析は、数例を挙げると、監視、顔認識、及び、ビデオ検索を含む様々なアプリケーションで利用される。
【０００３】
ビデオ分析アプリケーションは、計算及びメモリを多用する傾向があり、場合によっては、機能が固定されたハードウェアブロックと、ソフトウェアコンポーネントとの両方が組み合わせられる。通常は、数例を挙げると、閾値計算、高速フーリエ変換、ヒストグラム、又は、空間畳み込み等の項目を含む共通の機能が数回実行されてよい。画像処理は、カメラ、スキャナからの画像、及び既存の画像又はビデオファイルの分析、並びに、向上及び調節を含む。
【図面の簡単な説明】
【０００４】
幾つかの実施形態を以下の図面を参照して説明する。
【図１】本発明の一実施形態の概略図である。
【図２】一実施形態のフローチャートである。
【図３】一実施形態のシステム図である。
【図４】モバイルデバイスの形態である実施形態を図示したものである。
【発明を実施するための形態】
【０００５】
幾つかの実施形態では、画像処理用の再利用可能、再構成可能である、複数の専用機能プロセスエレメントが、連続実行されるプロセスエレメントからなる複数の実行シーケンスに割り当てられてよい。シーケンスのパフォーマンスメトリックを満たすべく、任意のプロセスエレメントが任意の実行シーケンスに再構成されてよい。次に複数のシーケンスが並列実行されてよい。
【０００６】
ここで利用される、「プロセスエレメント」という用語は、特定のコンピューティングタスクを実行するソフトウェアモジュール又はハードウェアモジュールであってよい。ビデオ分析アプリケーションにおけるプロセスエレメントの例は、高速フーリエ変換、閾値、モフォロジー、ヒストグラム、空間畳み込み、比色分析法（colorimetry）、ルックアップテーブル、フォーマット変換、テンプレートマッチング、プログラム可能な単一命令複数データ（programmable single instruction multiple data）、形状因子（shape factor）、シーン統計量、及び、三次元ワイヤフレームメッシュ（three-dimensional wire frame meshes）を含む。
【０００７】
実行シーケンスは、順次実行されるプロセスエレメントのチェインである。
【０００８】
プロセスエレメントが再利用可能であるとは、そのエレメントが、特定の機能専用であり、異なる時点又は並列に、１又は複数の実行シーケンスで再利用できることを示す。プロセスエレメントが再構成可能であるとは、特定の動作条件又は設計における制約を達成するべく、ランタイムにおいて適合可能であることを示す。特に、現在配置されている特定のシーケンスに関連したパフォーマンスメトリックを満たすために、任意のプロセスエレメントが再構成可能であってよい。
【０００９】
パフォーマンスメトリックの例として、所与のシーケンスが、電力消費の予算目標又は電力の予算目標を有してよい。そのシーケンス内の特定のプロセスエレメントのオペレーションは、パフォーマンスメトリックを満たすために、その特定のシーケンスのみのために修正されてよい。
【００１０】
別の例としては、個々のプロセスエレメントのパフォーマンスが、シーケンスの速度を向上させるために修正されてよい。例えば、メモリアクセスのための帯域幅を増加又は低減させることで、パフォーマンスを向上させたり、電力消費を調節（modulate）することができる。
【００１１】
また別の例として、所望の動作温度範囲を達成するべく、所与のプロセスエレメントの特性又はオペレーションを変更してよい。例えば、温度制限を満たすべく、ハードウェアベースのプロセスエレメントの電圧又は周波数を特定のシーケンスで修正してよい。
【００１２】
また別の例として、パフォーマンス、速度、又は電力消費目標のいずれかを達成するべく、所与のプロセスエレメントが動作する速度（例えば毎秒のオペレーション数）を修正してよい。
【００１３】
また別の例として、動作速度等のシーケンスレベルの目標を満たすべく、実行シーケンス内の所与のプロセスエレメント又はシーケンス全体の優先度を修正してもよい。特に、プロセスエレメント又はシーケンスのメモリアクセス優先度を、パフォーマンスメトリックを達成するために変更してよい。
【００１４】
図１を参照すると、パイプライン分析シーケンサ１０が、１又は複数のシーケンス及び優先順位が与えられたバス・アービター１４を形成する、複数の再利用可能、再構成可能である、専用機能プロセスエレメント１２を含んでよい。加えて、シーケンサ１０は、一実施形態では別々のハードウェアコントローラであってよい複数のパイプラインコントローラ１６を含んでよい。パイプライン化された分析シーケンサ１０は、複数のアドレス可能バッファ２０からなるメモリ１８と、バスを介して通信してよい。或る実施形態では、シーケンサは、ソフトウェア、ハードウェア、又は両方の組み合わせを利用しようとも機能が同じになるよう、汎用コンピュータを利用して１又は複数のソフトウェアプロセス又はタスクとして実装されてよい。
【００１５】
したがって、プロセスエレメント１２のそれぞれは、特定の専用機能を行うハードウェアモジュール又はソフトウェアモジュールであってよい。そうであっても、一度に１を超える数の実行シーケンスで再利用することができ、自身の動作特性が、特定のシーケンスの動作目標を満たすべく調節されてよい。
【００１６】
幾つかの実施形態では、各シーケンスがパイプラインコントローラ１６によって制御される１又は複数のプロセスエレメントからなっていてよい。従って図１に示すように、一実施形態として、パイプラインコントローラ１６は、高速フーリエ変換エレメント１２からなる単一のエレメント１２シーケンスを制御する。同様に、パイプラインコントローラ１６ａは、高速フーリエ変換プロセスエレメント１２を含む３つのプロセスエレメント１２を含んでよい。場合によっては、パイプラインコントローラ１６及びパイプラインコントローラ１６ａは、双方が同じプロセスエレメント１２の幾つかを利用しているにも関わらず、並列実行されるシーケンスを実行することができる。これを実現するために、優先順位が与えられたバス・アービター１４は、１を超える数の同時に動作するシーケンスが利用するプロセスエレメント及びメモリ位置についての争い（disputes）及びコンテンションを調停する。
【００１７】
シーケンサ１０は、様々な方法を用いて制御されてよい。１つの方法では、拡張マークアップ言語（ＸＭＬ）コマンドを通信リンク又はバスを介して送信及び受信するプロトコルによって制御される。別の実施形態では、シーケンサが、メモリマップドコントロール及びステータスレジスタ（ＣＳＲ）によって制御されてよい。また別の実施形態では、シーケンサは、拡張マークアップフォーマット又はコントロール及びステータスレジスタフォーマットに類似したコマンドを含むコマンドキュー又はリングバッファによって制御されてよい。
【００１８】
幾つかの実施形態では、各実行シーケンスが、固有の識別子を有している。更に、シーケンス内のプロセスエレメントの実行順序も、各プロセスエレメントに識別子を割り当てることによって、及び、プロセスエレメント識別子の順序付けられたリストを記録することによって、決定される。
【００１９】
一実施形態では、アービター１４は、先着順の調停プロトコル（a first come, first served arbitration protocol）を施行する。２つの実行シーケンスが、同じプロセスエレメントの利用を希望する場合、一実施形態では、それぞれが、該プロセスエレメントの利用を、該エレメントが解放されるまで待つ必要がある。プロセスエレメントの実行中には、シーケンスは、プロセスの実行が完了するまで、又は、エラー状態となるまで停止される（stall）、又は、待つことがありうる。そして、シーケンスは、チェインのうちの全てのプロセスエレメントの実行を、全てが完了するまで続ける。
【００２０】
コマンド及びステータスレジスタを利用する幾つかの実施形態では、チェインのうちの各プロセスエレメントが正確に実行されるよう、各シーケンスが、コマンド及びステータスレジスタをプログラミングする責務を負う。各シーケンスは、必要に応じて、シーケンスの各プロセスエレメントのステータスをチェックしてよい。
【００２１】
各プロセスエレメントは、コントロール及びステータスレジスタによって、入力バッファ及び出力バッファを利用するようプログラミングされてよい。これらバッファは、任意のタイプのメモリに存在していてよい。制御は更に、コントローラ及びシーケンサを実装するソフトウェアライブラリ内へのソフトウェア及び関数呼び出しを利用することで達成されてもよい。
【００２２】
パイプラインコントローラ１２は、プロセスエレメントをリザーブしてよい。リザーブされると、他のシーケンスはいずれも、そのプロセスエレメントが解放されるまで、そのプロセスエレメントを利用することができない。プロセスエレメントは、一実施形態では、所有側シーケンスによってのみ解放することができる。シーケンスは更に、先着順の調停モデルを利用して、リザーブなしにプロセスエレメントを利用することもできる。これは、プロセスエレメントは、該プロセスエレメントがリザーブされていない限りにおいてシーケンス間で共有されてよいからである。
【００２３】
幾つかの実施形態では、シーケンス又はプロセスエレメントに、電圧及び周波数について予め定義された較正である電力状態が割り当てられてよい。例えば、低電力状態は、低減されたクロック及び電圧要件を有してよい。各プロセスエレメントについて、オフ、スタンバイ、「低」、「中」、及び、「高」等のプリセットとしてプログラム可能な電力状態のセットが利用可能であってよい。プロセスエレメントが利用されていない場合には、シーケンスはこれをオフにしたり、スタンバイモードへと切り替えてもよい。次いで、所与の電力状態でプロセスエレメントが動作する。シーケンスに割り当てられた電力予算は、所与のプロセスエレメントの電力状態、クロックレート、又は電圧を変更することで、所与のパフォーマンス目標を達成することができる。
【００２４】
図１に示す実施形態では、プロセスエレメントがバッファ２０にアクセスすると、バッファ２０は、プロセスエレメント１２に入力を送ってよく、そこで、この入力が処理され、異なるバッファ２０に対して出力が提供されてよい。しかし、その場で実行する実施形態（an execute-in-place embodiment）等の他の場合には、出力は、入力を提供したバッファと同じバッファに戻されてよい。
【００２５】
複数の異なるレジスタが、コントロール及びステータスレジスタが実装する実施形態で実装されてよい。例えば、シーケンスマスタコントロール及びステータスレジスタと称されるレジスタが、リセット状態又は書き込み専用状態、オフ状態、及び、読み出し及び書き込みが可能なオン状態をセットする特定のパターンのビット、並びに、開始コマンド及び停止コマンドが実装するシーケンサ制御を有してよい。
【００２６】
シーケンサパイプラインステータスレジスタと称されてよい別のレジスタは、各シーケンスの開始及び停止を制御する。シーケンスは、最初はパイプラインセットアップレジスタを利用してセットアップされ、次に、パイプライン制御レジスタを利用してセットアップされる。シーケンサパイプラインステータスレジスタは、開始又は停止インジケータであってよい。
【００２７】
各プロセスエレメントは、入力バッファアドレス、入力バッファサイズ、出力バッファアドレス、出力バッファサイズ、制御シーケンスのシーケンス識別子、電力予算、メモリ調停優先度、高速フーリエ変換プロセスエレメントのための基数（radix）、及び、任意の所与のプロセスエレメントのための他のパラメータが含まれてよい複数の異なるワードを受信してよいセットアップレジスタを含んでよい。各プロセスエレメントのためのセットアップ領域は、入力及び出力バッファ、及び、電力予算及びメモリ調停優先度が含まれるその他のパラメータを特定してよい。一実施形態では、プロセスエレメントは、様々な配置のセットアップパラメータを有してよい。
【００２８】
各プロセスエレメントも、コマンド及びステータスレジスタを有してよく、これは、特定のプロセスエレメントを制御するシーケンスによって制御されてよい。シーケンスは、該シーケンスがプロセスエレメントを解放するまで、他のシーケンスが該プロセスエレメントを利用することができないように、該プロセスエレメントをリザーブしてよい。このレジスタは、電力状態等の情報、出力結果コード、リセットインジケータ、開始及び停止インジケータ、並びに、プロセス完了、パーセンテージ完了、メモリオペレーション待ち状態ビット、処理進行中ビット、及び、様々なエラービットを含むがこれらに限定はされないステータスビット等の情報を持つワードを含んでよい。
【００２９】
そして、各プロセスエレメントが、セットアップレジスタ、及び、コントロール及びステータスレジスタを有してよく、各シーケンスが、セットアップレジスタ、及び、コントロール及びステータスレジスタを有してよい。セットアップシーケンスレジスタは、シーケンスチェインを形成するプロセスエレメント識別子の連続したリストを含んでよい。プロセスエレメントは、該チェインで与えられている順序のシーケンスのコンテキストで実行されてよい。プロセスエレメントは、一実施形態では、先着順に基づく調停によってシーケンス間で共有されてよい。幾つかの実施形態では、シーケンスは、各プロセスエレメントを実際にシーケンス処理する（sequence）単純なマイクロコントローラであるパイプラインコントローラによって実行されてよい。プロセスエレメント完了ステータスが所有側シーケンスに送られ、これが次に、必要に応じてシーケンスの他のプロセスエレメントを開始して、コマンド及びステータスレジスタにステータスを記録するようにしてよい。
【００３０】
幾つかの実施形態では、シーケンス２２は、ソフトウェア、ファームウェア、及び／又はハードウェアで実装されてよい。ソフトウェア及びファームウェアの実施形態では、磁気、光、又は半導体ストレージ等の非一時的なコンピュータ可読媒体に格納されたコンピュータ実行される命令によって実装されてよい。
【００３１】
一実施形態では、シーケンス２２が、１つの実行シーケンスについてプロセスエレメントを割り当てることによって開始されてよい。シーケンス内のプロセスエレメントは、ブロック２６に示されているように、パフォーマンスメトリックを満たすべく再構成されてよい。次いで、ブロック２８に示すように、プロセスエレメントからなる２つ又はそれ以上のシーケンスが並列実行されてよい。
【００３２】
図３は、システム７００のある実施形態を示す。実施形態では、システム７００はメディアシステムであってもよいが、システム７００はこのコンテキストに限定はされない。例えばシステム７００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、複合携帯電話／ＰＤＡ、テレビ、スマートデバイス（例えばスマートフォン、スマートタブレット、又は、スマートテレビ）、モバイルインターネットデバイス（MID）、メッセージングデバイス、データ通信デバイス等に組み込まれてよい。
【００３３】
実施形態では、システム７００は、ディスプレイ７２０に連結されたプラットフォーム７０２を含む。プラットフォーム７０２は、コンテンツサービスデバイス７３０又はコンテンツ配信デバイス７４０又は他の類似したコンテンツソース等のコンテンツデバイスからコンテンツを受信してよい。１又は複数のナビゲーション機能を持つナビゲーションコントローラ７５０が、例えばプラットフォーム７０２及び／又はディスプレイ７２０とインタラクトするべく利用されてよい。これらコンポーネントのそれぞれを以下で詳述する。
【００３４】
実施形態では、プラットフォーム７０２が、チップセット７０５、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィクスサブシステム７１５、アプリケーション７１６、及び／又は無線機器（radio）７１８の任意の組み合わせを含んでよい。チップセット７０５は、プロセッサ７１０、メモリ７１２、ストレージ７１４、グラフィクスサブシステム７１５、アプリケーション７１６、及び／又は無線機器７１８の間の相互通信を提供してよい。例えばチップセット７０５は、ストレージ７１４との相互通信を提供することができるストレージアダプタ（不図示）を含んでよい。
【００３５】
プロセッサ７１０は、複数命令セットコンピュータ（ＣＩＳＣ）又は縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット対応プロセッサ、マルチコア、又はその他のマイクロプロセッサ又は中央処理装置（ＣＰＵ）として実装されてよい。実施形態では、プロセッサ７１０が、デュアルコアプロセッサ、デュアルコアモバイルプロセッサ等を含んでよい。
【００３６】
メモリ７１２は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）等であるがこれらに限定はされない揮発性メモリデバイスとして実装されてよい。
【００３７】
ストレージ７１４は、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、接続されたストレージデバイス、フラッシュメモリ、バッテリ補助されたＳＤＲＡＭ（同期ＤＲＡＭ）、及び／又は、ネットワークアクセス可能ストレージデバイス等であるがこれらに限定はされない不揮発性ストレージデバイスとして実装されてよい。実施形態では、ストレージ７１４は、例えば複数のハードドライブが含まれる場合に、価値あるデジタル媒体のための、ストレージのパフォーマンスが向上した保護を増強させる技術を含んでいてよい。
【００３８】
グラフィクスサブシステム７１５は、表示するために、静止又はビデオ等の画像の処理を実行してよい。グラフィクスサブシステム７１５は、例えば、グラフィクス処理ユニット（ＧＰＵ）又は画像処理ユニット（ＶＰＵ）であってよい。グラフィクスサブシステム７１５及びディスプレイ７２０を通信可能に連結するために、アナログ又はデジタルインターフェースが利用されてよい。例えばインターフェースは、高品位マルチメディアインターフェース（High-Definition Multimedia Interface）、ＤｉｓｐｌａｙＰｏｒｔ、無線ＨＤＭＩ（登録商標）、及び／又は、無線ＨＤ対応技術のいずれかであってよい。グラフィクスサブシステム７１５は、プロセッサ７１０又はチップセット７０５内に集積することもできる。グラフィクスサブシステム７１５は、チップセット７０５に通信可能に連結されたスタンドアロンカードであってもよい。
【００３９】
ここに記載するグラフィクス及び／又はビデオ処理技術は、様々なハードウェアキテクチャで実装されてよい。例えばグラフィクス及び／又はビデオ機能が、チップセット内に集積されてよい。又は、離散したグラフィクス及び／又はビデオプロセッサが利用されてもよい。また別の実施形態として、グラフィクス及び／又はビデオ機能が、マルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。更なる実施形態では、機能が、家庭用電子機器に実装されてもよい。
【００４０】
無線機器７１８は、様々な適切な無線通信技術を利用して信号を送信及び受信することのできる１又は複数の無線機器を含んでよい。これら技術は、１又は複数の無線ネットワークでの通信を含んでよい。無線ネットワークの例には、（これらに限定はされないが）無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、及び衛星ネットワークが含まれる。これらのネットワークにおける通信において、無線機器７１８は、任意のバージョンの１又は複数の適用可能な規格に従って動作してよい。
【００４１】
実施形態では、ディスプレイ７２０は、任意のテレビタイプのモニタ又はディスプレイを含んでよい。ディスプレイ７２０は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ型デバイス、及び／又は、テレビを含んでよい。ディスプレイ７２０は、デジタル及び／又はアナログであってよい。実施形態では、ディスプレイ７２０はホログラフィクス・ディスプレイであってもよい。ディスプレイ７２０は、また、視覚投影を受け取ることのできる透明な表面であってもよい。これらの投影は、様々な形態の情報、画像、及び／又はオブジェクトを伝達してよい。例えば、これらの投影は、モバイル拡張現実（ＭＡＲ）アプリケーションのための視覚上のオーバレイであってよい。１又は複数のソフトウェアプリケーション７１６の制御を受けて、プラットフォーム７０２は、ディスプレイ７２０にユーザインターフェース７２２を表示してよい。
【００４２】
実施形態では、コンテンツサービスデバイス７３０は、任意の国のサービス、国際的サービス、及び／又は、独立サービスによりホストされてよく、したがって、例えばインターネット経由でプラットフォーム７０２にアクセス可能であってよい。コンテンツサービスデバイス７３０は、プラットフォーム７０２に、及び／又は、ディスプレイ７２０に連結されてよい。プラットフォーム７０２及び／又はコンテンツサービスデバイス７３０は、メディア情報をネットワーク７６０との間で通信（例えば送信及び／又は受信）するべく、ネットワーク７６０に連結されてよい。コンテンツ配信デバイス７４０は、更に、プラットフォーム７０２及び／又はディスプレイ７２０に連結されてよい。
【００４３】
実施形態では、コンテンツサービスデバイス７３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット利用可能デバイス、又は、デジタル情報及び／又はコンテンツを配信することができる機器、並びに、一方向に、又は、双方向に、ネットワーク７６０を介して又は直接コンテンツをコンテンツプロバイダとプラットフォーム７０２及び／又はディスプレイ７２０との間に通信することができる任意の他の同様のデバイスを含んでよい。コンテンツは、一方向に、及び／又は、双方向に、システム７００及びコンテンツプロバイダのコンポーネントのいずれか１つに、または該いずれか１つから、ネットワーク７６０を介して、通信されてよい点を理解されたい。コンテンツの例には、例えばビデオ、音楽、医療、及び、ゲーム情報等を含む任意のメディア情報が含まれてよい。
【００４４】
コンテンツサービスデバイス７３０は、メディア情報、デジタル情報、及び／又は他のコンテンツを含む、ケーブルテレビ番組等のコンテンツを受信する。コンテンツプロバイダの例には、ケーブルテレビもしくは衛星テレビ、ラジオ、又はインターネットコンテンツプロバイダが含まれてよい。提供された例は、本発明の実施形態を制限する意図はない。
【００４５】
実施形態では、プラットフォーム７０２は、１又は複数のナビゲーション機能をもつナビゲーションコントローラ７５０から制御信号を受信してよい。コントローラ７５０のナビゲーション機能は、例えばユーザインターフェース７２２とインタラクトするために利用されてよい。実施形態では、ナビゲーションコントローラ７５０は、ユーザに空間（例えば連続し且つ多次元の）データをコンピュータに入力させるためのコンピュータハードウェアコンポーネント（特に、ヒューマンインターフェースデバイス）であってよいポインティングデバイスであってよい。グラフィクスユーザインターフェース（ＧＵＩ）及びテレビ及びモニタ等の多くのシステムは、ユーザに、身体的なジェスチャーを利用した、コンピュータ又はテレビに対するデータの制御及び提供を可能とさせる。
【００４６】
コントローラ７５０のナビゲーション機能の動きは、ポインタ、カーソル、フォーカスリング、又は、ディスプレイに表示されるその他の視覚的なインジケータの動きによってディスプレイ（例えばディスプレイ７２０）上にエコーされてよい。例えば、ソフトウェアプリケーション７１６の制御を受けて、ナビゲーションコントローラ７５０の上に位置しているナビゲーション機能が、例えばユーザインターフェース７２２の上に表示される仮想のナビゲーション機能にマッピングされてよい。実施形態では、コントローラ７５０が、別個のコンポーネントではなくて、プラットフォーム７０２及び／又はディスプレイ７２０に集積されていてもよい。しかし実施形態は、ここに示された、又は、説明されたエレメント又はコンテキストに限定はされない。
【００４７】
実施形態では、ドライバ（不図示）が、例えば初期起動の後にイネーブルされると、ボタンを触ることで、テレビ等のプラットフォーム７０２を即座にオン・オフすることをユーザに許可する技術を含んでよい。プログラム論理は、プラットフォーム７０２に、プラットフォームが「オフ」のときに、メディアアダプタ又はその他のコンテンツサービスデバイス７３０又はコンテンツ配信デバイス７４０にコンテンツをストリーミングさせてよい。これに加えて、チップセット７０５は、例えば、５．１サラウンドサウンドオーディオ及び／又は高品位７．１サラウンドサウンドオーディオのためのハードウェア及び／又はソフトウェアサポートを含んでよい。ドライバは、集積されたグラフィクスプラットフォームのためのグラフィクスドライバを含んでよい。実施形態では、グラフィクスドライバが、ＰＣＩ  Ｅｘｐｒｅｓｓグラフィクスカード（peripheral component interconnect (PCI) Express graphics card）を含んでよい。
【００４８】
様々な実施形態では、システム７００に示されるコンポーネントの任意の１又は複数が集積されてよい。例えばプラットフォーム７０２及びコンテンツサービスデバイス７３０が集積されてもよいし、プラットフォーム７０２及びコンテンツ配信デバイス７４０が集積されてもよいし、又は、例えば、プラットフォーム７０２、コンテンツサービスデバイス７３０、及びコンテンツ配信デバイス７４０が集積されてもよい。様々な実施形態では、プラットフォーム７０２及びディスプレイ７２０が、集積されたユニットであってよい。例えば、ディスプレイ７２０及びコンテンツサービスデバイス７３０が集積されてもよいし、又は、ディスプレイ７２０及びコンテンツ配信デバイス７４０が集積されてもよい。これらの例は、本発明を制限する意図はない。
【００４９】
様々な実施形態では、システム７００は、無線システム、有線システム、又は両方の組み合わせとして実装されてよい。無線システムとして実装された場合、システム７００は、１又は複数のアンテナ、トランスミッタ、レシーバ、トランシーバ、増幅器、フィルタ、制御論理等の、無線共有媒体を介して通信するのに適しているコンポーネント及びインターフェースを含んでよい。無線共有媒体の例には、ＲＦスペクトル等の無線スペクトルの部分が含まれてもよい。有線システムとして実装される場合、システム７００は、入力／出力（Ｉ／Ｏ）アダプタ、及び、Ｉ／Ｏアダプタを、対応する有線通信媒体、ネットワークインターフェースカード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等に接続するための物理的コネクタ等の、有線通信媒体を介して通信するのに適したコンポーネント及びインターフェースを含んでよい。有線通信媒体の例は、有線、ケーブル、金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチ構成、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ等を含んでよい。
【００５０】
プラットフォーム７０２は、情報を通信するために１又は複数の論理的又は物理的チャネルを構築してよい。情報には、メディア情報及び制御情報が含まれてよい。メディア情報とは、ユーザ用のコンテンツを表すデータのことであってよい。コンテンツの例には、例えば、音声会話、ビデオ会議、ビデオストリーミング、電子メール（「イーメール」）メッセージ、ボイスメールメッセージ、英数字シンボル、グラフィクス、画像、ビデオ、テキスト等からのデータが含まれてよい。音声会話からのデータとは、例えば、音声情報、沈黙期間、背景雑音、快適雑音、トーン等であってよい。制御情報とは、自動化システムのためのコマンド、命令、又は制御用語を表すデータのことであってよい。例えば、制御情報は、システムにメディア情報をルーティングするために、又は、ノードに対して、予め定められた方法でメディア情報をプロセスするように命令するために利用されてよい。しかし実施形態は、図２に示された、又は、説明されたエレメント又はコンテキストに限定はされない。
【００５１】
上述したように、システム７００は、様々な物理的スタイル又はフォームファクタで実現されてよい。図３は、システム７００が実現されてよいスモールフォームファクタのデバイス８００の実施形態を示す。例えば実施形態では、デバイス８００が、無線機能をもつモバイルコンピューティングデバイスとして実装されてよい。モバイルコンピューティングデバイスとは、例えば、処理システム、及び、１又は複数のバッテリ等のモバイル電源又は電源供給を有するデバイスのことであってよい。
【００５２】
上述したように、モバイルコンピューティングデバイスの例には、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、手持ちコンピュータ、パームトップコンピュータ、携帯情報端末（PDA）、携帯電話、複合携帯電話／ＰＤＡ、テレビ、スマートデバイス（例えば、スマートフォン、スマートタブレット、又は、スマートテレビ）、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等が含まれてよい。
【００５３】
モバイルコンピューティングデバイスの例には、更に、リストコンピュータ(wrist computer)、指用コンピュータ（finger computer）、指輪型コンピュータ(ring computer)、メガネ型コンピュータ(eyeglass computer)、ベルトクリップ型コンピュータ(belt-clip computer)、アームバンド型コンピュータ(arm-band computer)、靴型コンピュータ(shoe computers)、服コンピュータ（clothing computer）、及び、その他のウェアラブルコンピュータ等の、人が装着することができるよう構成されたコンピュータが含まれてもよい。実施形態では、例えば、モバイルコンピューティングデバイスが、コンピュータアプリケーション、並びに、音声通信及び／又はデータ通信を実行することができるスマートフォンとして実装されてもよい。幾つかの実施形態は、例として、スマートフォンとして実装されるモバイルコンピューティングデバイスを利用して記載されている場合があるが、他の実施形態は、他の無線モバイルコンピューティングデバイスを利用して実装されてよいことを理解されたい。実施形態はこのコンテキストに限定はされない。
【００５４】
図４に示すように、デバイス８００は、筐体８０２、ディスプレイ８０４、入力／出力（Ｉ／Ｏ）デバイス８０６、及びアンテナ８０８を含んでよい。デバイス８００は、更に、ナビゲーション機能８１２を含んでよい。ディスプレイ８０４は、モバイルコンピューティングデバイスに適した情報を表示するための、任意の適切な表示ユニットを含んでよい。Ｉ／Ｏデバイス８０６は、モバイルコンピューティングデバイスに情報を入力する用途に適したＩ／Ｏデバイスを含んでよい。  Ｉ／Ｏデバイス８０６の例には、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロホン、スピーカ、音声認識デバイス及びソフトウェア等が含まれてよい。情報は更に、マイクロホン経由でデバイス８００に入力されてもよい。これらの情報は、音声認識デバイスによってデジタル化されてよい。実施形態はこのコンテキストに限定はされない。
【００５５】
様々な実施形態は、ハードウェアエレメント、ソフトウェアエレメント、又は、両方の組み合わせを利用して実装されてよい。ハードウェアエレメントの例には、プロセッサ、マイクロプロセッサ、回路、回路素子（例えばトランジスタ、抵抗、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等が含まれてよい。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数（function）、方法、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又は、これらの任意の組み合わせが含まれてよい。或る実施形態をハードウェアエレメント及び／又はソフトウェアエレメントを利用して実装するかの決定は、任意の数の要素に応じて変更されてよい。要素とは、所望の計算レート、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、及び、その他の設計又はパフォーマンス制約等である。
【００５６】
少なくとも１つの実施形態の１又は複数の側面は、プロセッサ内の様々な論理を表す機械可読媒体に格納されている代表命令によって実装されてよく、この代表命令は、機械に読み出されると、機械に、ここに記載した技術を実行するための論理を作成させる。「ＩＰコア」として知られているこれらの表現は、有形の機械可読媒体に格納され、様々なカスタマ又は製造設備に供給され、論理又はプロセッサを実際に作成する製造マシンにロードされてよい。
【００５７】
様々な実施形態は、ハードウェアエレメント、ソフトウェアエレメント、又は、両方の組み合わせを利用して実装されてよい。ハードウェアエレメントの例には、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗、コンデンサ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等が含まれてよい。ソフトウェアの例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェース、アプリケーションプログラムインターフェース(API)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、又はこれらの任意の組み合わせが含まれてよい。或る実施形態をハードウェアエレメント及び／又はソフトウェアエレメントを利用して実装するかの決定は、任意の数の要素に応じて変更されてよい。要素とは、所望の計算レート、電力レベル、熱耐性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、及び、その他の設計又はパフォーマンス制約等である。
【００５８】
少なくとも１つの実施形態の１又は複数の側面は、プロセッサ内の様々な論理を表す機械可読媒体に格納されている代表命令によって実装されてよく、この代表命令は、機械に読み出されると、機械に、ここに記載した技術を実行するための論理を作成させる。「ＩＰコア」として知られているこれらの表現は、有形の機械可読媒体に格納され、様々なカスタマ又は製造設備に供給され、論理又はプロセッサを実際に作成する製造マシンにロードされてよい。
【００５９】
ここで説明したグラフィクス処理技術は、様々なハードウェアキテクチャで実装されてよい。例えばグラフィクス機能はチップセット内に集積されてよい。又は、離散グラフィクスプロセッサを利用してもよい。また別の実施形態として、グラフィクス機能がマルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。
【００６０】
また、本明細書全体において、"一実施形態"、"ある実施形態"、等と言っている場合、実施形態との関連で説明された特定の特徴、構造、又は特性が、本発明に含まれる少なくとも１つの実装例に含まれることを意味する。従って、"一実施形態"、又は、"ある実施形態"といった言葉があるからといって、これらは必ずしもすべてが同じ実施形態のことを指すわけではない。更に、特定の特徴、構造、又は特性は、例示された特定の実施形態以外の他の適切な形態で実装することもでき、これら形態全てが、本願の請求項の範囲内には含まれてよい。
【００６１】
本発明を、限られた数の実施形態を参照して記載してきたが、当業者には、これを基にして多くの変形例及び修正例が明らかだろう。添付請求項はこれら全ての変形例及び修正例が本発明の真の精神及び範囲内に含まれることを意図している。
【図１】
2015508528.tif 000003
【図２】
2015508528.tif 000004
【図３】
2015508528.tif 000005
【図４】
2015508528.tif 000006
【手続補正書】
【提出日】平成26年6月24日(2014.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当てる段階と、
あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成する段階と、
複数のシーケンスを並列実行する段階と
を備える方法。
【請求項２】
並列実行される２つのシーケンスで所与のプロセスエレメントを利用する段階を備える、請求項１に記載の方法。
【請求項３】
前記再構成する段階は、
シーケンスの電力予算を満たすべくプロセスエレメントを修正する段階を有する、請求項１または２に記載の方法。
【請求項４】
前記再構成する段階は、
電力消費を調整するべくメモリ帯域幅を調節する段階を有する、請求項３に記載の方法。
【請求項５】
温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する段階を備える、請求項１から４の何れか１項に記載の方法。
【請求項６】
シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する段階を備える、請求項１から５の何れか１項に記載の方法。
【請求項７】
プロセスエレメントの優先度を、対応するシーケンスのパフォーマンスメトリック又はバス調停メトリックを満たすべく調節する段階を備える、請求項１から６の何れか１項に記載の方法。
【請求項８】
コンピュータに、
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当てる手順と、
あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成する手順と、
複数のシーケンスを並列実行する手順と
を実行させるためのプログラム。
【請求項９】
更に、前記コンピュータに、並列実行される２つのシーケンスで所与のプロセスエレメントを利用する手順を実行させるための、請求項８に記載のプログラム。
【請求項１０】
更に、前記コンピュータに、シーケンス電力予算を満たすべくプロセスエレメントを修正する手順を実行させるための、請求項８または９に記載のプログラム。
【請求項１１】
更に、前記コンピュータに、電力消費を調整するべくメモリ帯域幅を調節する手順を実行させるための、請求項１０に記載のプログラム。
【請求項１２】
更に、前記コンピュータに、温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する手順を実行させるための、請求項８から１１の何れか１項に記載のプログラム。
【請求項１３】
更に、前記コンピュータに、シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する手順を実行させるための、請求項８から１２の何れか１項に記載のプログラム。
【請求項１４】
更に、前記コンピュータに、プロセスエレメントの優先度を、対応するシーケンスのパフォーマンスメトリック又はバス調停メトリックを満たすべく調節する手順を実行させるための、請求項８から１３の何れか１項に記載のプログラム。
【請求項１５】
シーケンサと、
前記シーケンサに連結されたメモリと
を備え、
前記シーケンサは、
再利用可能、再構成可能である、複数の専用機能画像処理プロセスエレメントを、複数のプロセスエレメントの実行シーケンスに割り当て、あるシーケンスのプロセスエレメントを、シーケンスのパフォーマンスメトリックを満たすよう再構成し、複数のシーケンスを並列実行する、装置。
【請求項１６】
前記シーケンサは、並列実行される２つのシーケンスで所与のプロセスエレメントを利用する、請求項１５に記載の装置。
【請求項１７】
前記シーケンサは、シーケンス電力予算を満たすべくプロセスエレメントを修正する、請求項１５または１６に記載の装置。
【請求項１８】
前記シーケンサは、電力消費を調整するべくメモリ帯域幅を調節する、請求項１７に記載の装置。
【請求項１９】
前記シーケンサは、温度又はパフォーマンスを制御するべく、プロセスエレメントの電圧又は周波数のいずれか１つを調節する、請求項１５から１８の何れか１項に記載の装置。
【請求項２０】
前記シーケンサは、シーケンスのパフォーマンスメトリックを満たすべく、プロセスの毎秒のオペレーション数を調節する、請求項１５から１９の何れか１項に記載の装置。
【国際調査報告】
2015508528.tif 000007
2015508528.tif 000008
2015508528.tif 000009