(58)【調査した分野】(Int.Cl.,DB名)
コンピューター・システム上でコンピューター・プロセスを実行するためのコンピューター実行可能命令をエンコードした1または複数のコンピューター読み取り可能記憶媒体であって、前記コンピューター・プロセスは、
通信チャネルによって結合されたセンサー・ノードまたは処理サブシステムのうちの少なくとも一方のエネルギー管理条件を検出するステップであって、前記通信チャネルはセンサー・データー・ストリームを搬送する、ステップと、
前記センサー・ノードまたは前記処理サブシステムのうちの前記少なくとも一方のプリプロセッサー・ブロックを有効にし前記センサー・ノードまたは前記処理サブシステムのうちの他方の対応するプリプロセッサー・ブロックを無効にすることによって、前記検出されたエネルギー管理条件に基づいて前記センサー・ノードと前記処理サブシステムとの間において機能の割り当てを調節するステップであって、前記調節された機能の割り当ては、前記センサー・データー・ストリームにおいて伝達されるデーターの特性を変化させる、ステップと、
を含む、1または複数のコンピューター読み取り可能記憶媒体。
通信チャネルによって結合されたセンサー・ノードまたは処理サブシステムのうちの少なくとも一方のエネルギー管理条件を検出するように構成されたモニターであって、前記通信チャネルはセンサー・データー・ストリームを搬送する、モニターと、
前記センサー・ノードまたは前記処理サブシステムのうちの前記少なくとも一方のプリプロセッサー・ブロックを有効にし前記センサー・ノードまたは前記処理サブシステムのうちの他方の対応するプリプロセッサー・ブロックを無効にすることによって、前記検出されたエネルギー管理条件に基づいて前記センサー・ノードと前記処理サブシステムとの間において機能の割り当てを調節するように構成された分割コントローラーであって、前記調節された機能の割り当ては、前記センサー・データー・ストリームにおいて伝達されるデーターの特性を変化させる、分割コントローラーと、
を備えるシステム。
前記処理サブシステムおよび前記センサー・ノードは各々、重複プリプロセッサー機能を実施することが可能な1または複数のプリプロセッサー・ブロックを含む、請求項5に記載のシステム。
前記処理サブシステムおよび前記センサー・ノードのうちの少なくとも一方は、更に、前記処理サブシステムおよび前記センサー・ノードのうちの前記少なくとも一方に一意のプリプロセッサー機能を提供する追加のプリプロセッサー・ブロックを含む、請求項7に記載のシステム。
前記センサー・ノードまたは前記処理サブシステムのうちの前記少なくとも一方の前記プリプロセッサー・ブロックの有効化は、前記センサー・ノードまたは前記処理サブシステムのうちの前記少なくとも一方のエネルギー管理条件における変化に対処する、請求項5に記載のシステム。
前記センサー・ノードまたは前記処理サブシステムのうちの他方の前記対応するプリプロセッサー・ブロックの無効化は、前記検出されたエネルギー管理条件における変化に対処する、請求項5に記載のシステム。
【発明を実施するための形態】
【0006】
[0011] 一環境例では、多数のセンサー・ノードがこの環境全域に分散され、検知されたデーターを処理サブシステムに報告する。例えば、交通カメラを都市中心部全域に分散し、この都市における車両の流れおよび通勤状態を監視するときに使用するために、ストリーミング・ビデオまたは静止画像を交通センターに送信する。交通センターは、このような交通情報を使用して、交通信号周波数を調節し、緊急時要員を配備する等を行うことができる。また、交通センターは、このような交通情報を、交通ウェブサイトまたはテレビジョン放送によって提供することもできる。しかしながら、説明する技術の範囲内で、他のタイプのセンサー・ノードや処理サブシステムも採用できることは理解されてしかるべきである。限定ではなく、それらにはコンソール・ゲーミング環境におけるカメラおよびマイクロフォン、製造環境における化学薬品検出器、セキュリティ環境におけるマイクロフォンおよび赤外線カメラ、ポンプ場における圧力センサー等が含まれる。
【0007】
[0012] 本明細書において開示するシステムの実施態様は、多数のセンサー・ノードと、これらのセンサー・ノードからのセンサー・データーを処理する処理サブシステムとを含む。このようなシステムは、各センサー・ノードが動作する方法に影響を及ぼす可能性がある種々の遠隔エネルギー管理条件においてセンサー・ノードを分散するように構成される場合がある。一実施態様例では、センサー・ノードおよび/または処理サブシステムが、可変エネルギー管理条件で動作しており、センサー・ノードおよび/または処理サブシステムの動作処理能力が、これらの要因によって減退または増強されることがあり得る。エネルギー管理条件の例には、限定ではなく、電力消費、エネルギー消費、熱生成、またはエネルギー生成を含むことができる。尚、エネルギーは、電気エネルギー、熱エネルギー、音響エネルギー、動力エネルギー、およびその他のタイプのエネルギーを含んでもよいことは理解されてしかるべきである。例えば、具体的なエネルギー管理条件が、センサー・ユニットに給電するために利用可能なエネルギー量(例えば、ワット−時間単位)に言及するのでもよい。
【0008】
[0013] エネルギー管理要因によって発生する動作処理能力の変動性に考慮するために、センサー・ノードが、センサー・データーを処理サブシステムに送信する前にセンサー・データーに対して行う前処理の量を変化させるのでもよく、および/または処理サブシステムが、センサー・データーをそれ自体のCPUに渡す前に、受信したセンサー・データーに対して実行する前処理の量を変化させるのでもよい。一実施態様では、センサー・ノードおよび処理サブシステムの双方が、処理サブシステムと個々のセンサー・ノードとの間において動的に割り当てることができる相補前処理機能を採用する。利用可能なエネルギー管理条件に依存して、本システムはセンサー・ノード自体におけるセンサー・データーの前処理を増やすまたは減らすことを選択し、こうして任意の所与の時点における電力消費、エネルギー消費、エネルギー検出、熱生成、エネルギー生成等を調節する。
【0009】
[0014]
図1は、動的機能分割を採用する、センサー・ノード(例えば、交通カメラ102)および処理サブシステム(例えば、車両交通監視サブシステム104)のシステム例100を示す。
図1において、交通監視システムに関してシステム100を図示し説明するが、このようなシステムは、セキュリティ監視、化学処理監視、天気監視、ゲーミング、医療処置等を含む、他の用途において採用されてもよい。
【0010】
[0015] 図示する例では、車両交通監視サブシステム104は、種々の交通カメラ102からセンサー・データーを受信し、受信したセンサー・データーを処理するように動作する。通信チャネル(ワイヤレス接続106によって例示される)は、システムの必要性に応じて、有線(ディジタルまたはアナログ・シグナリングを含む)またはワイヤレス(無線周波または光シグナリングを含む)であってもよい。実施態様の中には、1つのセンサー・ノードに対する通信チャネルがワイヤレスであり、他のセンサーに対する通信チャネルは有線にすることができる場合もある。したがって、任意の個々のセンサー・ノードに対する動的分割は、他の個々のセンサー・ノードに対する動的分割とは独立であることができる。しかしながら、以下で更に詳細に説明するように、この特徴は個々のセンサー・ノード間における相互作用を除外するのではない。
【0011】
[0016] 車両交通監視サブシステム104および交通カメラ102はディスクリート・コンポーネントによって実現してもよいが、動的機能分割に寄与することができる技術を、チップ上システム(SOC)と呼ぶ。SOCでは、センサー・ノードの殆どまたは全てのコンポーネントが集積回路(IC)に集積され、この集積回路は、限定ではなく、ディジタル、アナログ、混合信号、光、無線周波、中央処理ユニット、プリプロセッサー、およびメモリー・コンポーネントを内蔵することができる。このようなセンサー・コンポーネントを個々のプリプロセッサー(例えば、画像およびビデオ前処理アクセレレーター、音声/オーディオ・プリプロセッサー、ディジタル信号プロセッサー(DSP)、通信モニター、電力モニター、動き検出器等)および他のコンポーネントと集積することによって、個々のセンサー・ノードが広い機能選択幅を提供することができ、エネルギー管理コンテキストにしたがって、センサー・ノードによって機能を実行するか、または車両交通監視104に委託してもよい。説明する技術は、このようなデバイス間においてこのような機能の割り当てを動的に調節することができる。
【0012】
[0017] 一例では、交通カメラ102は都市中心部全域において車両交通を監視し、交通コントローラー、テレビジョンおよびラジオ・ニュース関係者等による見直しのために、車両交通監視サブシステム104にビデオ・データーを返送している。車両交通監視サブシステム104および種々のトラフィック・カメラ102に対するエネルギー管理条件は、大幅に異なる場合がある。例えば、ある交差点において陰に配置されている交通カメラは、暑い午後の日光があたる場所に配置されている他の交通カメラよりも良好に動作するかもしれない。同様に、バッテリー給電型交通カメラは、都市の電気グリッド(electrical grid)に接続された交通カメラとは異なる動作をするかもしれない(電力を保存するため)。これらのエネルギー管理要因は、センサー・ノードにおける種々の前処理機能動的分割によって対処することができ、前処理機能には、任意の特定の時点における個々のセンサー・ノードの電力引き込みまたは熱生成を増大または減少させるための、圧縮、ノイズ打ち消し、スムージング、空間正規化等が含まれる。同様に、エネルギー管理要因は、処理サブシステムにおける種々の前処理機能の動的分割にも影響を及ぼす可能性がある。例えば、処理サブシステムが移動体コンピューターの形態である場合、バッテリー電力に頼る間はある種の前処理機能を交通カメラに割り当て、一旦電力グリッドに再度差し込まれたならこの前処理機能を取り戻す(regain)。
【0013】
[0018] 更に他の例示として、交通カメラ108、110、112、および114が都市中心部における異なる交差点に分散されると仮定する。各交通カメラは、初期状態では、圧縮フォーマットでそのビデオを車両交通監視サブシステム104に送信するように構成される。交通カメラ108が低バッテリー、減少した電力引き込み、過剰な熱状態、または他のエネルギー管理上の問題を検出した場合、交通カメラ108は、その電力消費、熱生成等を低減するように、ビデオ・ストリームを圧縮するその前処理アクセレレーターの内1つ以上を無効にすることができる。圧縮の例には、損失のない圧縮、損失がある圧縮、空間画像圧縮、時間動き圧縮(temporal motion compensation)等を含むことができる。このような変更動作モードでは、交通カメラ108は、圧縮フォーマット処理が、交通カメラ108における代わりに車両交通監視サブシステム104において前処理ブロックによって実行されるように、圧縮ビデオ・データーではなく、生のビデオ・データーを車両交通監視サブシステム104に送信する。
【0014】
[0019] 例えば、交通カメラ108を混雑する交差点に配置するのでもよい。堅牢な電源および/または低い動作温度の検出に応答して、交通カメラ108は堅牢なエネルギー管理条件を利用してノイズ打ち消しを実行することもできる。対照的に、交通カメラ110は弱いバッテリーおよび/または過剰な温度を検出する場合もあり(例えば、カメラが暑い日光が当たる場所に配置される)、これらの双方は交通カメラの動作を低下させる可能性がある。したがって、交通カメラ110は、条件が改善するまで(例えば、バッテリーが再充電される、または動作温度が低下する)、その電力消費、熱生成要件、および他のエネルギー管理要件を低減するために、そのプリプロセッサーの全てを動的に無効にすることができる。各交通カメラによって考慮されるとよい他の要因には、1日の時刻、日付け、利用可能な帯域幅、車両交通監視サブシステム104によって指定されるパラメーター等を含むとよいが、これらに限定されるのではない。このコンテキストでは、個々の交通カメラは、画像コンテンツ、利用可能な帯域幅、利用可能な電力、生成されたエネルギー、および各交通カメラによって特定される他の要因に応じて、個別に多数のプリプロセッサーの中から動的に選択することができる。
【0015】
[0020] 更に、センサー・ノードにおいてある機能が省略される(動的分割によって)場合、この機能は、車両交通監視サブシステム104において相補プリプロセッサーによって提供することができる。例えば、交通カメラ108が取り込んだビデオの前処理からノイズ打ち消し機能を省略した場合、車両交通監視サブシステム104は、ビデオ品質を向上させるために、通信チャネルのそれ自体の側において、ノイズ打ち消しプリプロセッサーを有効にすることができる。一実施態様では、車両交通監視サブシステム104および個々の交通カメラは、各交通カメラおよび車両交通監視サブシステム104が提供できるまたは提供するように要求された前処理について通信することができる。例えば、車両交通監視サブシステム104は、それがもはやバッテリー電力には頼らず、代わりに都市の電気グリッドに接続されたことを検出するかもしれない。これに応じて、車両交通監視サブシステム104は、1つ以上の交通カメラ102に、それらのプリプロセッサーの内1つ以上を無効にするように通知し、その機能を車両交通監視サブシステム104に委託させることができる。車両交通監視サブシステム104と個々の交通カメラとの間の相互作用には、多くの他の例も考えられる。
【0016】
[0021] また、現在説明している技術の実施態様は、多数のセンサー・ノード間における通信協力を含むこともでき、ピア・センサー・ノード間で統制されても、または処理サブシステムとの通信によって統制されてもよいことも理解されてしかるべきである。一実施態様では、重複する画像取り込み領域を有する2台のカメラのように、2つのセンサー・ノードがそれらの検知有効領域で重複する場合、これらのセンサー・ノードは、その知識に基づいて、処理サブシステムとは異なる分割をある機能に行うこともできる。 例えば、交通カメラ108および交通カメラ114が、多少異なる視点から同じ交差点をカバーし、交通カメラ108は、交通カメラ114よりも、堅固な電源および/または温度が低い動作環境を有する場合、交通カメラ108は生のビデオ・データーを車両交通監視システム104に送ってもよく、一方交通カメラ114は、有利なエネルギー管理条件を利用して、その内蔵する不可逆的圧縮プリプロセッサー、その内蔵するノイズ打ち消しプリプロセッサー、およびその時間動き補償プリプロセッサーを有効にする。このシナリオでは、重複するカメラの調整により、多数のセンサー・ノード間で協力して、動的機能分割の判断を行うことが可能になる。
【0017】
[0022]
図2は、エネルギー管理条件に基づいて、機能を動的に分割するセンサー・ノード例200および処理サブシステム例202を示す。処理サブシステム202は、センサー・データー・ストリーム(例えば、ビデオ・データー)をセンサー・ノード200から受信し、ブロードキャスト、格納、編集等のためにそれを処理するように構成されている。処理サブシステム202は、処理サブシステム202の主要な処理動作を担うプロセッサー204(例えば、CPU)を含む。また、処理サブシステム202は、センサー・ノード200と、そして潜在的にセンサー・ネットワーク内にある他のセンサー・ノードと通信するために通信インターフェース206も含む。通信インターフェース206は、通信チャネル208を通じて、データーをセンサー・ノード200から受信し、データーをセンサー・ノード200に送る。通信チャネル208は、図示された時点では、広い帯域幅を有するように示される。先に論じたように、通信チャネル208は、個々のノードの構成にしたがって、有線でもワイヤレスでもよい。更に、通信チャネル208は、専用または共有通信チャネル(例えば、ワイヤまたは光信号)によって、あるいはインターネットのような、複合論理ネットワークによって実現されてもよい。
【0018】
[0023] また、処理サブシステム202は、分割コントローラー210も含む。分割コントローラー210は、センサー・ノード200および処理サブシステム202が受信したセンサー・データーと相互作用を行い、処理サブシステム202とセンサー・ノード200の分割コントローラー222との間における機能の適切な動的分割をネゴシエートする。更に、処理サブシステム202は、多数の前処理ブロック(例えば、前処理ブロックA212、前処理ブロックB214、および前処理ブロックC216)を含み、これらは、受信したセンサー・データーをプロセッサー204に渡す前に前処理するために選択される。例えば、処理サブシステム202が生のビデオ・データーをセンサー・ノード200から受信した場合、前処理ブロックA212は、H.264規格にしたがってこの生のビデオ・データーを圧縮してから、圧縮したセンサー・データーを処理のためにプロセッサー204に渡す。
【0019】
[0024] 前処理ブロックおよび他の動作ブロックは、特定の処理動作を実現するための回路と、潜在的にソフトウェア/ファームウェアとによって構成されてもよい。場合によっては、前処理ブロックが別個のアクセレレーターまたは一体化されたアクセレレーターの形態とした回路を含み、プロセッサーまたはセンサー・サブシステムが、ある種の処理動作を別の処理コンポーネントに委託することを許容してもよい。前処理ブロックの例には、限定ではなく、グラフィクス・アクセレレーター、圧縮アクセレレーター、ノイズ打ち消しプロセッサー等を含むことができる。一実施態様では、センサー・サブシステムおよび1つ以上のプリプロセッサーがSOCに集積され、SOCは、通信インターフェース、分割コントローラー、および他の集積コンポーネントも含むことができる。
【0020】
[0025] 一実施態様では、処理サブシステム202は、電力監視ブロック230および/または温度監視ブロック232も含む。他のエネルギー監視ブロックを採用してもよい。電力監視ブロック230は、処理サブシステム202および/またはそのコンポーネントの1つ以上に供給される電力を監視する。利用可能な電力が容認可能な動作範囲(残っている総バッテリー充電量または電力引き込みに関して)を満たせない場合、または望ましくない状態(less desirable state)(例えば、グリッド給電の代わりにバッテリー給電)、電力監視ブロック230は、分割コントローラー210に、処理サブシステム202がその電力要件を低減できるように、処理サブシステム202とそれが通信しているセンサー・ノードの内1つ以上との間における機能分割を変化させるように通知することができる。例えば、残っている総バッテリー充電量がその最大充電量の25%未満に低下した場合、電力監視ブロック230は、プリプロセッサー機能の一部を、処理サブシステム202において提供するのではなく、個々のセンサー・ノードにプッシュするように、分割コントローラー210に通知すればよい。対照的に、電力条件がもっと良い場合(例えば、処理サブシステム202が電気グリッドに差し込まれた)、電力監視ブロック230は、処理サブシステム202がある種のプリプロセッサー機能を提供できるように(例えば、その対応するプリプロセッサーを有効にする)、このプリプロセッサー機能を1つ以上のセンサー・ノードから引き上げるように分割コントローラー210に通知すればよい(例えば、センサー・ノードのプリプロセッサーの内1つ以上を無効にする)。
【0021】
[0026] 温度監視ブロック232は、処理サブシステム202および/またはそのコンポーネントの1つ以上の動作温度を監視する。被監視温度が容認可能な動作範囲を満たすことができない場合(例えば、処理サブシステムまたはコンポーネントに対する既知の温度制限に近づくまたは超過する)、温度監視ブロック232は、処理サブシステム202がその熱生成を低減してより容認可能な熱動作に戻ることができるように、処理サブシステム202とそれが通信しているセンサー・ノードの内1つ以上との間における機能分割を変更することを分割コントローラー210に通知することができる。例えば、処理サブシステム202の被監視温度が既知の制限である200Fに接近するまたはこれを超過した場合、温度監視ブロック232は、プリプロセッサー機能の一部を処理サブシステム202において提供するのではなく、このような機能を個々のセンサー・ノードにプッシュすることを分割コントローラー210に通知することができる。対照的に、もっと良い熱条件では(例えば、処理サブシステム202がもっと低い温度で動作している)、温度監視ブロック232は、処理サブシステム202がある種のプリプロセッサー機能を提供できるように(例えば、その対応するプリプロセッサーを有効にする)、この機能を1つ以上のセンサー・ノードから引き上げることを(例えば、センサー・ノードのプリプロセッサーの内1つ以上を無効にする)、分割コントローラー210に通知することができる。
【0022】
[0027] センサー・ノード200は、カメラとしてビデオ・データー、マイクロフォンとしてオーディオ・データー、熱電対として温度データー等というように、その環境において、データーを検知するように構成される。センサー・ノード200は、センサー・サブシステム218を内蔵する。センサー・サブシステム218は、ディスクリート・センサーに一体化されたインターフェース(例えば、カメラに対して)を含むこともでき、または一体化されたセンサーおよびセンサー・インターフェースの組み合わせ(例えば、フォトダイオードに対して)を含むこともできる。センサー・サブシステム218によって検出されたセンサー・データーは、通信インターフェース220および通信チャネル208を通じてのプロセッサー・サブシステム202への送信の前に前処理を行うことなく、または1つ以上のプリプロセッサーを介さずに、直接プロセッサー・サブシステム202に、通信インターフェース220および通信チャネル208を通じて伝達することができる。
【0023】
[0028] センサー・ノード200は、多数の前処理ブロック(例えば、前処理ブロックA224、前処理ブロックB226、および前処理ブロックX228)を含む。尚、センサー・ノード200における前処理ブロックの内2つは、処理サブシステム202において対応する相当物(即ち、前処理ブロックA212および前処理ブロックB214)を有し、前処理ブロックの内1つはセンサー・ノード200だけにある(即ち、前処理ブロックX228)が、他のセンサー・ノードがそれら自体の前処理ブロックXを有してもよいことを注記しておく。同様に、処理サブシステム202における前処理ブロックC216はこのサブシステムだけにある。既に論じたように、センサー・ノード200は分割コントローラー222も含む。
【0024】
[0029] 一実施態様では、センサー・ノード200は、電力監視ブロック234および/または温度監視ブロック236も含む。他のエネルギー監視ブロックが採用されてもよい。電力監視ブロック232は、センサー・ノード200および/またはそのコンポーネントの1つ以上に供給される電力を監視する。利用可能な電力が容認可能な動作範囲(例えば、容認可能な動作範囲(残っている総バッテリー充電量または電力引き込みに関して)を満たせない場合、または望ましくない状態(less desirable state)(例えば、グリッド給電の代わりにバッテリー給電)にある場合、電力監視ブロック234は、分割コントローラー222に、センサー・ノード200がその電力要件を低減できるように、センサー・ノード200とそれが通信している処理サブシステム202との間における機能分割を変化させるように通知することができる。例えば、残っている総バッテリー充電量がその最大充電量の25%未満に低下した場合、電力監視ブロック234は、プリプロセッサー機能の一部を、センサー・ノード200において提供するのではなく、処理サブシステム202にプッシュするように、分割コントローラー222に通知すればよい。対照的に、電力条件がもっと良い場合(例えば、センサー・ノード200が電気グリッドに差し込まれた)、電力監視ブロック234は、センサー・ノード200がある種のプリプロセッサー機能を提供できるように(例えば、その対応するプリプロセッサーを有効にする)、このプリプロセッサー機能を処理サブシステム202から引き上げるように分割コントローラー222に通知すればよい(例えば、処理サブシステムのプリプロセッサーの内1つ以上を無効にする)。
【0025】
[0030] 温度監視ブロック236は、センサー・ノード200および/またはそのコンポーネントの1つ以上の動作温度を監視する。被監視温度が容認可能な動作範囲を満たすことができない場合(例えば、処理サブシステムまたはコンポーネントに対する既知の温度制限に近づくまたは超過する)、温度監視ブロック236は、センサー・ノード200がその熱生成を低減してより容認可能な熱動作に戻ることができるように、センサー・ノード200とそれが通信している処理サブシステム202との間における機能分割を変更することを分割コントローラー222に通知することができる。例えば、センサー・ノード200の被監視温度が既知の制限である200Fに接近するまたはこれを超過した場合、温度監視ブロック236は、プリプロセッサー機能の一部をセンサー・ノード200において提供するのではなく、このような機能を処理サブシステム202にプッシュすることを分割コントローラー222に通知することができる。対照的に、もっと良い熱条件では(例えば、センサー・ノード200がもっと低い温度で動作している)、温度監視ブロック236は、センサー・ノード200がある種のプリプロセッサー機能を提供できるように(例えば、その対応するプリプロセッサーを有効にする)、この機能を処理サブシステム202から引き上げることを(例えば、処理サブシステムのプリプロセッサーの内1つ以上を無効にする)、分割コントローラー222に通知することができる。
【0026】
[0031] 尚、センサー・ノード200および処理サブシステム202の双方において他のモニターを採用してもよいことは理解されてしかるべきである。例えば、エネルギー生成モニター(例えば、センサー・ノードまたは処理サブシステムによって生成される音響エネルギーを検出するため)、エネルギー消費モニター(例えば、センサー・ノードまたは処理サブシステムによってバッテリーから消費されるエネルギーを検出するため)、またはエネルギー検出モニター(例えば、センサー・ノードまたは処理サブシステムによって受けられる日光を検出するため)を採用してもよい。
【0027】
[0032] 尚、
図2に示すようなプリプロセッサーにおける1対1の対応は、処理サブシステムおよびセンサー・ノードに利用可能な前処理構成の一例に過ぎないことは理解されてしかるべきである。センサー・ノードにおける一部のプリプロセッサーが、処理サブシステムにおける一部のプロセッサーと同じ機能を提供する場合もあるが、センサー・ノードには、処理サブシステムと比較して、センサー・ノードにしかないプリプロセッサーもある場合もあり、その逆もある。更に、センサー・ノードにおけるあるプリプロセッサーの機能が、プロセッサー・サブシステムにおけるあるプリプロセッサーの機能と重複することもあり、その逆もある。例えば、プロセッサー・サブシステムにおけるプリプロセッサーが、センサー・ノードにおける2つのプリプロセッサーまたは2つ半のプリプロセッサーの機能を提供することもあり、その逆もある。
【0028】
[0033]
図3は、センサー・ノードの視点からの動的分割機能の動作300を示す。通信動作302は、処理サブシステムとの通信を開始する。既に論じたように、このような通信は種々の通信チャネルを通じて行うことができる。通信監視動作304は、センサー・ノードのエネルギー管理条件を監視する。センサー・ノードのエネルギー管理条件が、センサー・ノードおよび処理サブシステムの現在の動作に対して容認可能である場合(例えば、決定されている容認可能な動作範囲内にある、またはグリッド給電のような、現在の機能分割に対して容認可能な定められた状態にある)、既存の機能分割が、動作306によって、センサー・ノードと処理サブシステムとの間で維持され、通信は継続する。
【0029】
[0034] センサー・ノードのエネルギー管理条件は、周期的に監視動作304によって再評価される。センサー・ノードのエネルギー管理条件が、センサー・ノードおよび処理サブシステムの現在の動作に対して不適切になった場合(例えば、一定の電力引き込み閾値または一定の残留充電量閾値未満に低下した、および/または一定の温度閾値よりも上昇した)、構成動作308は、センサー・ノードと処理サブシステムとの間において機能を割り当てし直す(例えば、システム機能全体を再分割するため)。構成動作308に応答して、再分割動作310が、新たな機能分割にしたがって、センサー・ノードにおける選択プリプロセッサーを有効または無効にする。通信動作312は、新たな機能分割にしたがって、センサー・ノードと処理サブシステムとの間においてセンサー・データーの伝達を継続し、センサー・ノードの新たなエネルギー管理条件は、通信監視動作304によって周期的に再評価される。各再分割動作310の後、センサー・データー・ストリームは何らかの面で変化させられることになる(例えば、異なるタイプまたはレベルの圧縮、異なるレベルのノイズ打ち消し等)。1つの視点では、元のセンサー・データー・ストリームが終了し、第2のセンサー・データー・ストリームが開始する。
【0030】
[0035] 例えば、センサー・ノードのエネルギー管理条件が改善して追加のエネルギーを供給する場合または動作温度が低下した場合、センサー・ノードは、追加のエネルギーまたは温度低下動作条件(cooler operating condition)を利用して、圧縮し浄化したビデオ・データーを処理サブシステムに送ることを選択してもよい。このような場合、処理サブシステムには、受信したセンサー・データーの圧縮および浄化(そのプリプロセッサー・ブロックの内1つによって実行できる)を飛ばすことを命令すればよい(または自動的にそうしてもよい)。対照的に、センサー・ノードのエネルギー管理条件が悪化して、センサー・ノードの性能が損なわれたまたは低下した場合、センサー・ノードは、一層厳しくなったエネルギー管理条件に対処するために、生のビデオ・データーのみを送ることを選択してもよい。このような対処は、センサー・ノードと処理サブシステムとの間であれこれとネゴシエートされても、単に一方または他方による命令によって強制されてもよい。それに応じて、新たな機能分割が、センサー・ノードのエネルギー管理条件および/またはセンサー・ノードと処理サブシステムとの間における利用を調節する。
【0031】
[0036]
図4は、処理サブシステムの視点から、動的に機能を分割する動作400を示す。通信動作402は、センサー・ノードとの通信を開始する。既に論じたように、このような通信は種々の通信チャネルを通じて行うことができる。監視動作404は、処理サブシステムのエネルギー管理条件を監視する。処理サブシステムのエネルギー管理条件が、処理サブシステムおよびセンサー・ノードの現在の動作に対して容認可能である場合(例えば、決定された容認可能な動作範囲内にある、またはグリッド給電のように、現在の機能分割に対して容認できる定められた状態にある)、既存の機能分割が、動作406によって、処理サブシステムとセンサー・ノードとの間で維持され、通信は継続する。
【0032】
[0037] 処理サブシステムのエネルギー管理条件は、周期的に監視動作404によって再評価される。処理サブシステムのエネルギー管理条件が、処理サブシステムおよびセンサー・ノードの現在の動作に対して不適切になった場合(例えば、定められた電力引き込み閾値または定められた残留充電量閾値未満に低下した、および/または定められた温度閾値よりも上昇した)、構成動作408は、処理サブシステムとセンサー・ノードとの間において機能を割り当てし直す(例えば、システム機能全体を再分割するため)。構成動作408に応答して、再分割動作410が、新たな機能分割にしたがって、処理サブシステムにおける選択プリプロセッサーを有効または無効にする。通信動作412は、新たな機能分割にしたがって、処理サブシステムとセンサー・ノードとの間においてセンサー・データーの伝達を継続し、処理サブシステムの新たなエネルギー管理条件は、通信監視動作404によって周期的に再評価される。各再分割動作410の後、センサー・データー・ストリームはなんらかの面で変化させられることになる(例えば、異なるタイプまたはレベルの圧縮、異なるレベルのノイズ打ち消し等)。1つの視点では、元のセンサー・データー・ストリームが終了し、第2のセンサー・データー・ストリームが開始する。
【0033】
[0038] 例えば、処理サブシステムのエネルギー管理条件が改善して追加のエネルギーを供給するまたは動作温度が低下した場合、処理サブシステムは、処理サブシステムがその改善したエネルギー管理条件を利用し、それ自体で前処理を実行することができるように、未圧縮センサー・データーを送ることをセンサー・ノードに命令してもよい。このような場合、センサー・ノードには、それ自体のプリプロセッサー・ブロックの1つに基づいて、検出されたセンサー・データーの圧縮を無効にすることを命令すればよい(または自動的にそうしてもよい)。対照的に、エネルギー管理条件が悪化して、処理サブシステムの性能が損なわれたまたは低下した場合、処理サブシステムは、一層厳しくなったエネルギー管理条件に対処するために、センサー・ノードのプリプロセッサーの内1つによって1秒当たりに送るフレームを少なくすること、または空間画像圧縮または時間動き圧縮を実行することをセンサー・ノードに命令すればよい。このような対処は、処理サブシステムとセンサー・ノードの間であれこれとネゴシエートされても、単に一方または他方による命令によって強制されてもよい。それに応じて、新たな機能分割は、処理サブシステムとセンサー・ノードとの間における通信要件および/または利用を調節する。
【0034】
[0039]
図5は、説明した技術を実現するときに有用であると考えられるシステム例を示す。説明した技術を実現するための
図5のハードウェアおよび動作環境例は、ゲーミング・コンソールまたはコンピューター20の形態とした汎用計算デバイス、移動体電話機、パーソナル・ディジタル・アシスタント(PDA)、セット・トップ・ボックス、または他のタイプの計算デバイスというような、計算デバイスを含む。このシステム例の1つ以上の部分は、チップ上システム(SOC)の形態で実現することもできる。
図5の実施態様では、例えば、コンピューター20は、処理ユニット21、システム・メモリー22、およびシステム・バス23を含む。システム・バス23は、システム・メモリーから処理ユニット21までを含む種々のシステム・コンポーネントを動作的に結合する。コンピューター20のプロセッサーが1つの中央処理ユニット(CPU)、または並列処理環境と一般に呼ばれる、複数の処理ユニットを含むように、1つだけの処理ユニット21があってもよく、または1つよりも多い処理ユニット21があってもよい。コンピューター20は、従来のコンピューター、分散型コンピューター、または他のいずれのタイプのコンピューターであってもよく、本発明はそれには限定されない。
【0035】
[0040] システム・バス23は、メモリー・バスまたはメモリー・コントローラー、周辺バス、切り替えファブリック(switched fabric)、二点間接続、および種々のバス・アーキテクチャのいずれかを使用するローカル・バスを含む、様々なタイプのバス・構造の内いずれでもよい。また、システム・メモリーは、単にメモリーと呼んでも良く、リード・オンリ・メモリー(ROM)24およびランダム・アクセス・メモリー(RAM)25を含む。基本入力/出力システム(BIOS)26は、起動中のように、コンピューター20内部におけるエレメント間で情報を転送するのに役立つ基本的なルーチンを収容し、ROM24に格納される。更に、コンピューター20は、図示しない、ハード・ディスクに対して読み出しおよび書き込みを行うためのハード・ディスク・ドライブ27、リムーバブル磁気ディスク29に対する読み出しおよび書き込みを行うための磁気ディスク・ドライブ28、ならびにCD ROM、DVD、または他の光媒体のような、リムーバブル光ディスク31に対する読み出しおよび書き込みを行うための光ディスク・ドライブ30も含む。
【0036】
[0041] ハード・ディスク・ドライブ27、磁気ディスク・ドライブ28、および光ディスク・ドライブ30は、それぞれ、ハード・ディスク・ドライブ・インターフェース32、磁気ディスク・ドライブ・インターフェース33、および光ディスク・ドライブ・インターフェース34によって、システム・バス23に接続される。これらのドライブおよびこれらに付随するコンピューター読み取り可能媒体は、コンピューター読み取り可能命令、データー構造、プログラム・モジュール、およびコンピューター20のその他のデーターの不揮発性ストレージを設ける。尚、磁気カセット、フラッシュ・メモリー・カード、ディジタル・ビデオ・ディスク、ランダム・アクセス・メモリー(RAM)、リード・オンリー・メモリー(ROM)等のような、コンピューターによってアクセス可能なデーターを格納することができるコンピューター読み取り可能媒体であればいずれのタイプでも、動作環境例において使用してもよいことは、当業者には認められてしかるべきである。
【0037】
[0042] オペレーティング・システム35、1つ以上のアプリケーション・プログラム36、他のプログラム・モジュール37、およびプログラム・データー38を含む多数のプログラム・モジュールをハード・ディスク、磁気ディスク29、光ディスク31、ROM24、またはRAM25に格納することができる。ユーザは、キーボード40およびポインティング・デバイス42のような入力デバイスを介して、コマンドおよび情報をパーソナル・コンピューター20に入力することができる。他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、ゲーム・パッド、ジェスチャー検出器、タッチ・スクリーン、衛星ディッシュ、スキャナー等を含むことができる。これらおよび他の入力デバイスは、多くの場合、システム・バスに結合されたシリアル・ポート・インターフェース46を介して処理ユニット21に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のような他のインターフェースによって接続されてもよい。モニター47または他のタイプのディスプレイ・デバイスも、ビデオ・アダプタ48のようなインターフェースを介して、システム・バスに接続される。モニターに加えて、コンピューターは、通例、スピーカーおよびプリンターのような、他の周辺出力デバイス(図示せず)も含む。
【0038】
[0043] コンピューター20は、リモート・コンピューター49のような、1つ以上のリモート・コンピューターへの論理接続を使用して、ネットワーク接続環境においても動作することができる。これらの論理接続は、コンピューター20またはその一部に結合された通信デバイスによって行われる。本発明は、特定のタイプの通信デバイスには限定されない。リモート・コンピューター49は、他のコンピューター、サーバー、ルーター、ネットワークPC、クライアント、ピア・デバイス、または他の一般的なネットワーク・ノードであってもよく、通例、コンピューター20に関して以上で説明したエレメントの多くまたは全てを含むが、
図5にはメモリー記憶デバイス50だけが示されている。
図6に図示した論理接続は、ローカル・エリア・ネットワーク(LAN)51、およびワイド・エリア・ネットワーク(WAN)52を含む。このようなネットワーキング環境は、事務所のネットワーク、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通であり、これらは全てネットワークの種類である。
【0039】
[0044] LANネットワーキング環境において使用されるとき、コンピューター20は、通信デバイスの一種である、ネットワーク・インターフェースまたはアダプタ53を介してローカル・ネットワーク51に接続される。WANネットワーキング環境において使用するとき、コンピューター20は、通例、モデム54、ネットワーク・アダプタ、通信デバイスの一種、またはワイド・エリア・ネットワーク52を通じて通信を確立するための他のいずれかのタイプの通信デバイスを含む。モデム54は、内蔵型でも外付け型でもよく、シリアル・ポート・インターフェース46を介してシステム・バス23に接続される。ネットワーク接続環境では、パーソナル・コンピューター20に関して図示したプログラム・エンジン、またはその一部が、離れたメモリー記憶デバイスに格納されてもよい。尚、図示したネットワーク接続は例であり、コンピューター間で通信リンクを確立する他の手段、およびそのための通信デバイスが使用されてもよい。
【0040】
[0045] 一実施態様例では、センサー・サブシステム回路、プリプロセッサー回路、通信インターフェース、分割コントローラー、電力モニター、温度モニター、エネルギー・モニター、および他のハードウェア/ソフトウェア・ブロックを制御するためのソフトウェアまたはファームウェア命令は、メモリー22および/または記憶デバイス29または31に格納され、処理ユニット21によって処理される。センサー・データー、検出されたエネルギー管理条件パラメーター、および他のデーターは、メモリー22および/または永続的データーストアである記憶デバイス29または31に格納されてもよい。
【0041】
[0046]
図6は、説明した技術を実現するときに有用であると考えられる他のセンサー・ノード例(移動体センサー600と称する)を示す。移動体センサー600は、プロセッサー602、メモリー604、ディスプレイ606(例えば、タッチスクリーン・ディスプレイ)、および他のインターフェース608(例えば、キーボード、カメラ、マイクロフォン等)を含むが、センサー・ノードはこれらよりも多いまたは少ないコンポーネントを有する場合もある。例えば、排出(emission)監視センサーを工業用排出ベント内に配置してもよく、したがってユーザ入力および出力インターフェースが不要となる。メモリー604は、一般に、揮発性メモリー(例えば、RAM)および不揮発性メモリー(例えば、フラッシュ・メモリー)の双方を含む。 Microsoft Windows(登録商標)Phone 8のようなオペレーティング・システム610がメモリー604内に存在することができ、プロセッサー602によって実行されるが、他のオペレーティング・システムを採用してもよいことは言うまでもない。
【0042】
[0047] 1つ以上のアプリケーション・プログラム612は、メモリー604内にロードし、オペレーティング・システム610上においてプロセッサー602によって実行することができる。アプリケーション・プログラム612の例には、限定ではなく、1つ以上のプリプロセッサー・ブロックと共に使用するアプリケーション等が含まれる。移動体センサー600は、電源616を含む。電源616は、1つ以上のバッテリーまたは他の電力源によって給電され、移動体センサー600の他のコンポーネントに電力を供給する。また、電源616は、内蔵バッテリーを無効にするまたは再充電する外部電力源、または他の電力源に接続することもできる。
【0043】
[0048] 移動体センサー600は、ネットワーク接続(connectivity)を設けるための1つ以上の通信送受信機630(例えば、移動体電話ネットワーク、Wi−Fi(商標)、BlueTooth(登録商標)、イーサネット(登録商標)等)を含む。また、移動体センサー600は、測位システム620(例えば、全地球測位衛星送受信機)、1つ以上の加速度計622、1つ以上のカメラ624、オーディオ・インターフェース626(例えば、マイクロフォン、オーディオ増幅器およびスピーカー、および/またはオーディオ・ジャック)、および追加のストレージ628のような、種々の他のコンポーネントも含むことができる。他の構成を採用してもよい。
【0044】
[0049] 一実施形態例では、センサー・サブシステム回路、プリプロセッサー回路、通信インターフェース、分割コントローラー、電力モニター、温度モニター、エネルギー・モニター、および他のハードウェア/ソフトウェア・ブロックを制御するためのソフトウェアまたはファームウェア命令は、メモリー604および/または記憶デバイス628に格納される命令によって具体化し、プロセッサー602によって処理することができる。センサー・データー、検出されたエネルギー管理条件パラメーター、および他のデーターは、メモリー604および/または記憶デバイス628に永続的データーストアとして格納することもできる。このセンサー・ノード例の1つ以上の部分は、チップ上システム(SOC)の形態で実現することもできる。
【0045】
[0050] 実施形態の中には、製品(article of manufacture)を含むものがあってもよい。製品は、ロジックを格納するための有形記憶媒体を含むことができる。有形記憶媒体の例には、電子データーを格納することができる1つ以上のタイプのコンピューター読み取り可能記憶媒体を含むことができ、揮発性メモリーまたは不揮発性メモリー、リムーバブルまたは非リムーバブル・メモリー、消去可能または消去不可メモリー、書き込み可能または再書き込み可能メモリー等が含まれる。ロジックの例には、ソフトウェア・コンポーネント、プログラム、アプリケーション、コンピューター・プログラム、アプリケーション・プログラム、システム・プログラム、マシン・プログラム、オペレーティング・システム・ソフトウェア、ミドルウェイ、ファームウェア、ソフトウェア・モジュール、ルーチン、サブルーチン、機能、メソッド、プロシージャー、ソフトウェア・インターフェース、アプリケーション・プログラム・インターフェース(API)、命令セット、計算コード、コンピューター・コード、コード・セグメント、コンピューター・コード・セグメント、単語(words)、値、シンボル、またはこれらの任意の組み合わせというような、種々のソフトウェア・エレメントを含むことができる。一実施形態では、例えば、製品は、実行可能コンピューター・プログラム命令を格納することができ、これらの命令は、コンピューターによって実行されると、このコンピューターに、説明した実施形態にしたがって方法および/または動作を実行させる。実行可能コンピューター・プログラム命令は、ソース・コード、コンパイル・コード、インタプリター・コード、実行可能コード、スタティック・コード、ダイナミック・コード等のような、任意の適したタイプのコードを含むことができる。実行可能コンピューター・プログラム命令は、既定のコンピューター言語、態様、またはシンタックスにしたがって、コンピューターに一定の機能を実行させるために実装することができる。これらの命令は、任意の適した上位、下位、オブジェクト指向、ビジュアル、コンパイル、および/またはインタプリター・プログラミング言語を使用して実現することができる。
【0046】
[0051] 本明細書で説明した実施態様は、1つ以上のコンピューター・システムにおいて論理ステップとして実現される。本発明の論理動作は、(1)1つ以上のコンピューター・システムにおいて実行するプロセッサー実行ステップのシーケンスとして、(2)1つ以上のコンピューター・システム内部において相互接続された機械または回路モジュールとして実施される。実施態様は、本発明を実現するコンピューター・システムの性能要件に依存する選択事項である。したがって、本明細書において説明した発明の実施形態を構成する論理動作は、動作、ステップ、オブジェクト、またはモジュールと、種々に呼ばれる。更に、論理動作は、別段明示的に主張されない限り、または請求項の文言によって特定の順序が本質的に必要とされない限り、いずれの順序で実行してもよいことは、理解されてしかるべきである。
【0047】
[0052] 以上の明細書、例、およびデーターは、本発明の実施形態例の構造および使用の完全な説明を示す。本発明の多くの実施形態は、本発明の主旨および範囲から逸脱することなく作ることができるので、本発明は以下に添付する特許請求の範囲に存在するものとする。更に、明記される(recited)特許請求の範囲から逸脱することなく、異なる実施形態の構造的特徴を更に他の実施形態において組み合わせることもできる。