(57)【要約】      （修正有）【課題】下位レベルの処理により生成されたデータを複数のクライアントアプリケーションが同時に利用しながら、少なくとも１つのクライアントアプリケーションが、出力デバイスにビデオストリームをストリーミングできるようにすることができる。【解決手段】クライアントアプリケーションが、ビデオストリームと、このビデオストリームに関する、クライアントアプリケーション層よりも下位層で行われる処理から生成されたデータを出力デバイスに提供できるようにする装置及び方法を提供する。【選択図】図１
2014081933.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータデバイスの仲裁モジュールにおいて、ビデオストリームについての少なくとも１つの要求と、前記ビデオストリームに行われた少なくとも１つの処理の結果についての要求と、前記ビデオストリームをストリーミングすべきビデオプレーン内の指定位置とを、少なくとも１つのクライアントアプリケーションから受け取るステップと、
前記仲裁モジュールにおいて前記ビデオストリームを受け取るステップと、
前記仲裁モジュールにより、前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの処理の結果を生成するステップと、
前記仲裁モジュールから、前記ビデオストリームと、前記少なくとも１つの処理の結果と、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置とを出力するステップと、
少なくとも前記ビデオストリームと、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置とをビデオパイプライン要素において受け取るステップと、
前記ビデオパイプライン要素により、前記ビデオプレーンの前記指定位置に少なくとも前記ビデオストリームをストリーミングするステップと、
前記少なくとも１つのクライアントアプリケーションにより生成された少なくとも追加の視覚情報と、前記ビデオプレーンへのアクセスと、前記ビデオストリームに行われた前記少なくとも１つの処理の結果へのアクセスとを、前記少なくとも１つのクライアントアプリケーションによって出力デバイスに提供するステップと、
を含むことを特徴とする方法。
【請求項２】
前記仲裁モジュールにより、前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの処理の結果を生成するステップは、前記仲裁モジュールから前記ビデオストリームを出力する前に、前記ビデオストリームに前記結果の少なくとも１つの視覚表現を追加するステップをさらに含み、前記仲裁モジュールから前記少なくとも１つの処理の結果を出力するステップは、前記ビデオストリームを、前記追加された前記結果の少なくとも１つの視覚表現と共に出力するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記少なくとも１つのクライアントアプリケーションにおいて、前記仲裁モジュールから前記少なくとも１つの処理の結果を受け取るステップをさらに含み、
前記少なくとも１つのクライアントアプリケーションにより生成された少なくとも前記追加の視覚情報と、前記ビデオストリームに行われた前記少なくとも１つの処理の結果へのアクセスとを、前記少なくとも１つのクライアントアプリケーションによって前記出力デバイスに提供するステップは、前記ビデオストリームに行われた前記少なくとも１つの処理の結果の少なくとも１つの視覚表現を前記少なくとも１つのクライアントアプリケーションによって生成し、前記ビデオストリームに行われた前記少なくとも１つの処理の結果の少なくとも１つの視覚表現を前記出力デバイスに提供するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記少なくとも１つのクライアントアプリケーションにより生成された少なくとも前記追加の視覚情報を、前記少なくとも１つのクライアントアプリケーションによって前記出力デバイスに提供するステップは、前記ビデオプレーンの上部に存在するグラフィクスプレーン内に存在する少なくとも１つの視覚画像を提供するステップをさらに含み、前記少なくとも１つの視覚画像は、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置に対応する少なくとも１つの空隙を含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記ビデオパイプライン要素は、ｇＳｔｒｅａｍｅｒ互換ビデオパイプライン内にｇＳｔｒｅａｍｅｒ互換ビデオパイプライン要素を含む、
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記ビデオパイプライン要素は、ＯｐｅｎＭＡＸ（商標）互換ビデオパイプライン内にＯｐｅｎＭＡＸ（商標）互換ビデオパイプライン要素を含む、
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記コンピュータデバイスは、Ａｎｄｒｏｉｄ（商標）互換オペレーティングシステムを利用する、
ことを特徴とする請求項１に記載の方法。
【請求項８】
前記仲裁モジュールにより、前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの処理の結果を生成するステップは、前記仲裁モジュールの自然入力エンジンが、前記ビデオストリーム内に存在する少なくとも１つの自然入力を特定するように前記ビデオストリームを処理するステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項９】
前記自然入力エンジンは、前記ビデオストリーム内に存在する少なくとも１つの顔に関する少なくとも１つの特徴を判断するように構成された顔検出エンジンをさらに含む、
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記仲裁モジュールにおいて前記ビデオストリームを受け取るステップは、前記ビデオストリームをカメラデバイスから受け取るステップをさらに含む、
ことを特徴とする請求項１に記載の方法。
【請求項１１】
少なくとも、ビデオストリームについての要求と、前記ビデオストリームに行われた少なくとも１つの処理の少なくとも１つの結果についての要求と、前記ビデオストリームをストリーミングすべきビデオプレーン内の少なくとも１つの指定位置とを少なくとも１つのクライアントアプリケーションから受け取り、
前記ビデオストリームを受け取り、
前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの処理の前記少なくとも１つの結果を生成し、
前記ビデオストリームと、前記少なくとも１つの処理の前記少なくとも１つの結果と、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置とを出力する、
ように構成された仲裁モジュールと、
少なくとも前記ビデオストリームと、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置とを受け取り、
前記ビデオプレーンの前記指定位置に少なくとも前記ビデオストリームをストリーミングする、
ように構成された、前記仲裁モジュールに結合されたビデオパイプライン要素と、
追加の視覚情報を生成し、
少なくとも前記追加の視覚情報を出力デバイスに提供し、
前記ビデオプレーンへのアクセスと、前記ビデオストリームに行われた前記少なくとも１つの処理の結果へのアクセスとを前記出力デバイスに提供する、
ように構成された、前記仲裁モジュールに結合された前記少なくとも１つのクライアントアプリケーションと、
前記ビデオプレーン及び前記少なくとも１つのクライアントアプリケーションに結合された前記出力デバイスと、
前記ビデオパイプライン要素及び前記出力デバイスに結合された前記ビデオプレーンと、
を備えることを特徴とする装置。
【請求項１２】
前記ビデオストリームを生成するように構成された、前記仲裁モジュールに結合された少なくとも１つのカメラをさらに備える、
ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記少なくとも１つのクライアントアプリケーションが動作するＡｎｄｒｏｉｄ（商標）互換オペレーティングシステムをさらに備える、
ことを特徴とする請求項１１に記載の装置。
【請求項１４】
前記ビデオパイプライン要素は、ｇＳｔｒｅａｍｅｒ互換パイプライン内にｇＳｔｒｅａｍｅｒ互換パイプライン要素をさらに含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１５】
前記ビデオパイプライ要素は、ＯｐｅｎＭＡＸ（商標）互換ビデオパイプライン内にＯｐｅｎＭＡＸ（商標）互換ビデオパイプライン要素をさらに含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１６】
前記仲裁モジュールは、
前記ビデオストリームを出力する前に、前記少なくとも１つの結果の少なくとも１つの視覚表現を前記ビデオストリームに追加することにより、前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの結果を生成し、
前記ビデオストリームを、前記追加された前記少なくとも１つの結果の少なくとも１つの視覚表現と共に出力することにより、前記少なくとも１つの処理の前記少なくとも１つの結果を出力する、
ようにさらに構成されることを特徴とする請求項１１に記載の装置。
【請求項１７】
前記少なくとも１つのクライアントアプリケーションは、
前記仲裁モジュールから前記少なくとも１つの処理の前記少なくとも１つの結果を受け取り、
前記ビデオストリームに行われた前記少なくとも１つの処理の前記少なくとも１つの結果の少なくとも１つの視覚表現を生成することによって追加の視覚情報を生成し、
前記ビデオストリームに行われた前記少なくとも１つの処理の前記少なくとも１つの結果の前記少なくとも１つの視覚表現を前記出力デバイスに提供することにより、少なくとも前記追加の視覚情報と、前記ビデオストリームに行われた前記少なくとも１つの処理の前記少なくとも１つの結果へのアクセスとを前記出力デバイスに提供する、
ようにさらに構成されることを特徴とする請求項１１に記載の装置。
【請求項１８】
前記少なくとも１つのクライアントアプリケーションは、前記ビデオプレーンの上部に存在するグラフィクスプレーン内に存在する少なくとも１つの視覚画像を生成することにより、前記追加の視覚情報を生成するようにさらに構成され、前記少なくとも１つの視覚画像は、前記ビデオストリームをストリーミングすべき前記ビデオプレーン内の指定位置に対応する少なくとも１つの空隙を含む、
ことを特徴とする請求項１１に記載の装置。
【請求項１９】
前記仲裁モジュールは、前記ビデオストリーム内に存在する少なくとも１つの自然入力を特定するように前記ビデオストリームを処理することにより、前記ビデオストリームに前記少なくとも１つの処理を行って前記少なくとも１つの処理の前記少なくとも１つの結果を生成するように構成された自然入力エンジンをさらに含む、
ことを特徴とする請求項１１に記載の装置。
【請求項２０】
前記自然入力エンジンは、前記ビデオストリーム内に存在する少なくとも１つの顔に関する少なくとも１つの特徴を判断するように構成された顔検出エンジンをさらに含む、
ことを特徴とする請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にビデオストリーミングに関し、より詳細には、クライアントアプリケーションに応答したビデオストリーミングに関する。
【背景技術】
【０００２】
現代の電子デバイス、特にスマートデバイスでは、固定デバイス又は移動デバイスに関わらずクライアントアプリケーションが広く使用されている。これらのクライアントアプリケーションは、（ディスプレイなどの）出力デバイスにビデオストリームを出力することに加え、この出力されているビデオストリームに関するデータを必要とすることがある。ビデオ表示に関するこのようなデータが他のクライアントアプリケーションにとって有用な場合、ビデオストリームに関するデータの生成に必要とされる機能処理を実行するために電子デバイスのオペレーティングシステム内の全て又はほとんどのクライアントアプリケーションが利用可能な機能リソースを、クライアントアプリケーション層よりも下位層において生み出すことが有益となり得る。この処理を、複数のクライアントアプリケーションが利用可能なリソースにすることにより、各個々のクライアントアプリケーションにより行われる反復処理が低減される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願第１３／２８５，１２１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
現在のところ、Ａｎｄｒｏｉｄ（商標）などの人気の高いオペレーティングシステムでは、複数のクライアントアプリケーションが様々なハードウェアリソースを同時に呼び出すことはできない。例えば、カメラリソースを一度に利用できるのは１つのクライアントアプリケーションのみである。このことは、クライアントアプリケーションがカメラからのビデオストリームを出力デバイスに提供することに加えて、上述した機能リソースにより生成されたこのビデオストリームに関する追加データを提供することはできない場合があるという点で制限的である。この理由は、オペレーティングシステムが、クライアントアプリケーション又は機能リソースの両方ではなく一方しかカメラリソースにアクセスできなくしているからである。従って、クライアントアプリケーションは、ビデオストリームのみ、又は機能リソースからのビデオストリームに関するデータのみしか提供することができず、両方を同時に提供することはできない。
【０００５】
また、このような人気の高いオペレーティングシステムは、１つのクライアントアプリケーションが別のクライアントアプリケーションのグラフィック領域内に単純に描画できないという点で制限的である。これができるのであれば、クライアントアプリケーションが、別のクライアントアプリケーション又は機能リソースのグラフィック領域に単純に描画して、伝えたいと思うあらゆる視覚データを伝えることができるという点で、本明細書に示す解決策とは異なる解決策が可能になると思われる。
【０００６】
従って、上述した望ましい機能を可能にするシステムアーキテクチャを提供することが有益であると考えられる。
【課題を解決するための手段】
【０００７】
本発明のいくつかの実施形態は、ビデオストリームを求める要求と、ビデオストリームに対して行われた処理の結果を求める要求と、ビデオストリームをストリーミングすべきビデオプレーン内の指定位置とをクライアントアプリケーションから受け取る方法、及びこの方法を実行するための、仲裁モジュール備えた装置を提供することにより、上記の及びその他のニーズに有利に対処する。また、仲裁モジュールは、仲裁モジュールにおいてビデオストリームを受け取り、ビデオストリームに対して処理を行って結果を生成する。さらに、仲裁モジュールは、ビデオストリームと、処理の結果と、ビデオストリームをストリーミングすべきビデオプレーン内の指定位置とを出力する。
【０００８】
次に、この方法は、ビデオパイプライン要素によってビデオストリーム及び指定位置を受け取り、これに応答してビデオプレーンの指定位置にビデオストリームをストリーミングする。次に、この方法は、クライアントアプリケーションにより、生成された追加の視覚情報と、ビデオプレーンへのアクセスと、ビデオストリームに対して行われた処理の結果へのアクセスとを出力デバイスに提供する。
【０００９】
従って、この方法及び装置により、クライアントアプリケーションは、ビデオストリーム、及び機能リソースにより作成されたビデオストリームに関するデータの両方を出力デバイスに提供することができる。
【００１０】
以下の図面と共に提供する以下の本発明のより詳細な説明から、本発明のいくつかの実施形態の上記の及びその他の態様、特徴及び利点がより明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】少なくとも１つの実施形態による方法を実行するように構成された装置のブロック図である。
【図２】様々な実施形態による、図１の装置の状況例を示す図である。
【図３】様々な実施形態による、図１の装置の出力画像例を示す図である。
【図４】少なくとも１つの実施形態による、図３の出力画像例の詳細図である。
【図５】少なくとも１つの実施形態による、図３の出力画像例のさらなる詳細図である。
【発明を実施するための形態】
【００１２】
図面の複数の図を通じて、対応する参照文字は対応する構成要素を示す。当業者であれば、図中の要素は単純さ及び明確さを目的として示したものであり、必ずしも縮尺通りではないと理解するであろう。例えば、本発明の様々な実施形態をより良く理解できるように、図中の要素の中には、他の要素に対して寸法を誇張しているものもある。また、本発明のこれらの様々な実施形態をより分かり易く示すために、商業的に実現可能な実施形態において有用又は必要な、一般的ではあるが良く理解されている要素については示していないことが多い。
【００１３】
以下の説明は、限定的な意味で捉えるべきでなく、例示的な実施形態の一般的原理を説明するためのものにすぎない。本発明の範囲は、特許請求の範囲に基づいて決定すべきものである。
【００１４】
本明細書を通じて、「１つの実施形態」、「ある実施形態」、又は同様の表現に言及する場合、これらは、実施形態に関連して説明する特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書を通じて「１つの実施形態では」、「ある実施形態では」という表現、及び同様の表現が出現した場合、これらは、必ずというわけではないが、全て同じ実施形態を指すことができる。
【００１５】
さらに、説明する本発明の特徴、構造又は特性を、１又はそれ以上の実施形態においてあらゆる好適な態様で組み合わせることもできる。以下の説明では、本発明の実施形態を完全に理解してもらうために、プログラミング、ソフトウェアモジュール、ユーザ２０３の選択、ネットワークトランザクション、データベース問い合わせ、データベース構造、ハードウェアモジュール、ハードウェア回路、ハードウェアチップなどの例のような数多くの特定の詳細を記載している。しかしながら、当業者であれば、これらの特定の詳細の１又はそれ以上を用いずに、或いはその他の方法、構成要素及び材料などを用いて本発明を実現できると認識するであろう。その他の場合、本発明の態様を曖昧にしないように、周知の構造、材料又は動作については示しておらず、或いは詳細に説明していない。
【００１６】
まず図１を参照すると、様々な実施形態による方法を実行するように構成された装置１００のブロック図を示している。装置１００は、例えばＩｎｔｅｌ（商標）プロセッサ又はＭａｒｖｅｌ（商標）ＡＲＭプロセッサなどの少なくとも１つのコンピュータデバイス又は処理デバイス、メモリ、任意の記憶デバイス、及び様々なインターフェイスを備える。装置１００は、少なくとも１つのクライアントアプリケーション１０１、仲裁モジュール１０２、ビデオパイプライン要素１０３、ビデオプレーン１０４、及び出力デバイス１０５をさらに備える。他の実施形態によれば、装置１００は、カメラ１０６、カメラエンジン１０７及び復号要素１０８を備えることもできる。また、いくつかの実施形態によれば、仲裁モジュール１０２は、顔検出エンジン１１０をさらに含むこともできる自然入力エンジン１０９をさらに含むことができる。これらの様々なモジュール及び要素は、個別に、互いに組み合わせて、或いは既知又は未知のその他の要素と組み合わせて、当業で理解されているようなビデオパイプラインを含むことができる。ビデオパイプラインスキームは、ユーザ又は別のソフトウェア又はハードウェア要素に、或いはいくつかの実施形態ではビデオパイプライン自体に、ビデオ及び／又はオーディオの提供を行うことができる。
【００１７】
クライアントアプリケーション１０１は、仲裁モジュール１０２及び出力デバイス１０５に結合される。仲裁モジュール１０２は、ビデオパイプライン要素１０３に結合され、任意にカメラ１０６及び／又はカメラエンジン１０７からビデオストリーム１１１を受け取るように構成される。ビデオパイプライン要素１０３は、任意に復号要素１０８を介してビデオプレーンに結合される。さらに、ビデオプレーン１０４は、出力デバイス１０５に結合される。
【００１８】
クライアントアプリケーション１０１は、当業で周知かつ理解されているようないずれのタイプのクライアントアプリケーション１０１であってもよい。図示のクライアントアプリケーション１０１は、複数のクライアントアプリケーション１０１の一群を表わすことができ、仲裁モジュール１０２、出力デバイス１０５、ビデオパイプライン要素１０３又はビデオプレーン１０４を収容する同じ又は異なる処理デバイス又はコンピュータデバイス上に存在し、又はこれらのデバイス上で実行することができる。クライアントアプリケーション１０１は、当業で十分に理解されているように、有線又は無線を問わないネットワーク接続を介して仲裁モジュール１０２に結合できる遠隔位置で任意に実行し又はこの遠隔位置に記憶することができる。クライアントアプリケーション１０１は、Ａｎｄｒｏｉｄ（商標）、Ｌｉｎｕｘ、Ａｐｐｌｅ（登録商標）ＯＳ、Ｍｉｃｒｏｓｏｆｔ（登録商標）などを含むあらゆる数の既知のオペレーティングシステム内で実行されるように設計することができる。Ａｎｄｒｏｉｄ（商標）アプリケーションは、通常、Ａｎｄｒｏｉｄ（商標）ソフトウェア開発キットを使用してＪａｖａ又はＣプログラミング言語で開発されるが、他の開発ツール及び言語もよく使用される。Ａｐｐｌｅ（登録商標）アプリケーションは、通常、ｉＯＳ  ＳＤＫ（ソフトウェア開発キット）又はｉＰｈｏｎｅ（登録商標）ＳＤＫを使用して開発される。他のスタイル及びフォーマットの既知のクライアントアプリケーション１０１が存在してもよく、いくつかの実施形態によれば、装置１００と互換性があり又はその一部であってもよい。
【００１９】
仲裁モジュール１０２は、特に（クライアントアプリケーション１０１などの）複数のクライアントアプリケーションと複数のリソース（すなわち、カメラ１０６リソース又は機能リソース）との間の通信を可能にして、複数のクライアントアプリケーション１０１が同時にリソースを使用できるようにするよう構成される。また、仲裁モジュール１０２は、ビデオストリーム１１１に対して少なくとも１つの処理を行って少なくとも１つの処理の結果を生成するようにさらに構成することができる。２０１１年１０月３１日に出願された「クライアントアプリケーション及びリソース仲裁（Ｃｌｉｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  ａｎｄ  Ｒｅｓｏｕｒｃｅ  Ａｒｂｉｔｒａｔｉｏｎ）」という名称の同一出願人による米国特許出願第１３／２８５，１２１号に、本明細書で開示するものと同様の仲裁モジュールが記載されており、この特許出願の内容は引用により本明細書に組み入れられる。
【００２０】
いくつかの実施形態によれば、仲裁モジュール１０２は、ビデオストリーム１１１内に存在し得る１又はそれ以上の自然入力を検出又は特定するための処理をビデオストリーム１１１に対して行うように構成された自然入力エンジン１０９をさらに含むことができる。他の実施形態によれば、自然入力エンジン１０９は、ビデオストリーム１１１内の少なくとも１つの顔を検出し、その顔の少なくとも１つの特徴（すなわち、その人物の身元又は年齢）を判断するための処理をビデオストリーム１１１に対して行うように構成された顔検出エンジン１１０をさらに含むことができる。１つの実施形態によれば、この少なくとも１つの顔は、人間の顔を含む。
【００２１】
図２を簡単に参照すると、自然入力に関する非限定的な状況例を示している。図２には、ここではテレビ、コンピュータディスプレイ又はその他の既知のディスプレイ２０１などのディスプレイ２０１として示す出力デバイス１０５を含む装置１００を示している。ディスプレイ２０１は装置１００として動作し、或いはディスプレイ２０１とは無関係に又はこれと共に装置１００として動作する別のデバイス（図示せず）に結合される。装置１００には、ディスプレイ２０１の正面のシーンの画像を取り込むためのカメラ１０６が取り付けられ、対応するビデオストリーム１１１を提供する。別の例によれば、装置１００に、マイク２０２又はその他の感知デバイス２０２（動作検出器、光検出器、温度センサ、赤外線センサ、超音波センサ、加速度計、又はその他の公知の検出器又はセンサなど）を同様に接続することができる。装置１００のディスプレイ２０１の正面には、立っているユーザ２０３を示している。ディスプレイ２０１は、ユーザ２０３が視聴できるように、対話型メニュー、ガイド、マルチメディア、又はその他のプログラミングを出力することができる。ユーザ２０３は、従来の遠隔制御装置を使用する代わりに、自然入力を使用して装置１００と対話することができる。例えば、ユーザ２０３は、（図２に示すような）手のジェスチャ２０４を行って、チャネルを変更し、音量を変更し、又は装置１００と別様に対話することができる。カメラ１０６は、このジェスチャ２０４のビデオを取り込み、ビデオストリーム１１１を介してこれを自然入力エンジン１０９に送信し、自然入力エンジン１０９は、このジェスチャ２０４を特定の命令又は動作（すなわち、チャネルの変更）に対応するものとして認識する。次に、自然入力エンジン１０９は、この受け取ったジェスチャ２０４のコマンドを、仲裁モジュール１０２を介して、このようなコマンドを受け取ることに関心のあるいずれかのクライアントアプリケーション１０１又はリソースに仲裁規則に基づいて伝えることができる。或いは、ユーザ２０３は、マイク２０２により感知され自然入力エンジン１０９によりコマンドとして解釈される音を立て、この音をクライアントアプリケーション１０１又はリソースに伝えることもできる。従って、ユーザ２０３は、自然入力を使用して装置１００を制御することができる。
【００２２】
また、図３をごく簡単に参照すると、顔検出エンジン１１０の動作に対応する出力画像３００の非限定的な状況例を示している。図２と同様に、カメラ１０６がディスプレイ２０１の正面のシーンを取り込み、このビデオストリーム１１１が仲裁モジュール１０２内の顔検出エンジン１１０に供給される。顔検出エンジン１１０は、（別の自然入力である）顔３０１を検出して、顔３０１の少なくとも１つの特徴を判断する。図３に示すように、顔検出エンジン１１０を利用して、（個々の顔３０１により識別される）各人物の身元及び年齢を検出する。次に、顔検出エンジン１１０は、この顔３０１に関する情報を、このような情報を求めるいずれかのクライアントアプリケーション１０１又はリソースに送信することができる。例えば、チャイルドロックアプリケーションは、未成年者の存在時に成人向けコンテンツの視聴を制限するチャイルドロッククライアントアプリケーションを実行させるために、この自然入力の顔検出情報を求めることができる。別の例として、プロファイルアプリケーションは、この自然入力の顔検出情報を使用して、お気に入りチャネル設定を自動的に呼び出すことができる。
【００２３】
図１に戻ると、ステージ、ステップ又はフィルタとも呼ばれるビデオパイプライン要素１０３は、デコーダ、マルチプレクサ、デマルチプレクサ、スプリッタ、コンバイナ、又はその他のあらゆる既知又は未知のビデオパイプライン要素１０３を含むことができる。ビデオパイプライン要素１０３は、単一の要素、ステージ、ステップ又はフィルタであってもよく、或いは複数の要素、ステージ、ステップ及び／又はフィルタの組み合わせであってもよい。ビデオパイプライン要素１０３は、ソフトウェアの形で実装することも、又はハードウェアの形で実装することもできるが、標準ソフトウェアであるか、それとも組み込みソフトウェアであるかに関わらず、ソフトウェア実装が最も一般的である。
【００２４】
１つの実施形態によれば、ビデオパイプライン要素１０３は、ｇＳｔｒｅａｍｅｒ要素、又はｇＳｔｒｅａｍｅｒビデオパイプラインフレームワークと互換性のある要素であり、ｇＳｔｒｅａｍｅｒビデオパイプライン又はｇＳｔｒｅａｍｅｒ互換ビデオパイプラインの一部である。当業で理解されているように、ｇＳｔｒｅａｍｅｒは、設計者が様々な種類のマルチメディアアプリケーションを作成できるようにするパイプラインベースのマルチメディアフレームワークである。ほとんどの場合、ｇＳｔｒｅａｍｅｒは、Ｃプログラミング言語で書かれたオープンソースであり、ＧＯｂｊｅｃｔに基づく種類のシステムを利用する。
【００２５】
別の実施形態によれば、ビデオパイプライン要素１０３が、ＯｐｅｎＭＡＸ（商標）要素、又はＯｐｅｎＭＡＸ（商標）ビデオパイプラインフレームワークと互換性のある要素であり、ＯｐｅｎＭＡＸ（商標）ビデオパイプライン又はＯｐｅｎＭＡＸ（商標）互換ビデオパイプラインの一部である。Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｄｉｒｅｃｔｓｈｏｗ及びＡｐｐｌｅ（登録商標）Ｃｏｒｅ  Ｖｉｄｅｏを含む他のビデオパイプライン要素又はビデオパイプラインフレームワークも同様に可能である。
【００２６】
レンダラとしても理解される復号要素１０８は、圧縮（又は非圧縮）ビデオを色空間に翻訳することができる。１つの実施形態によれば、復号要素１０８が、（図１に示すように）ＲＧＢフォーマット復号要素を含むことができる。復号要素１０８の動作に関しては、ＲＧＢ＋アルファブレンディング、ＹＵＶ、ＨＳＬ／ＨＬＳ（色相彩度輝度）、及びＨＳＶ（色相彩度値）、又はその他の公知のカラー又はモノクロの色空間表示などの他の可能性も存在する。
【００２７】
ビデオプレーン１０４は、少なくともいくつかのクライアントアプリケーション１０１がアクセスできるビデオ層又はビデオ面である。これらのクライアントアプリケーション１０１は、ビデオプレーン１０４のコンテンツをさらに出力デバイス１０５に送り、戻し、又は提供することができる。出力デバイス１０５は、ディスプレイ２０１、ハードドライブ、メモリ、ネットワーク出力、電話機、タブレット、ＰＣ、又は本明細書で説明するようなビデオストリーム１１１を出力し、記憶し、又は別様に利用できる他のあらゆるデバイスを含むことができる。
【００２８】
いくつかの実施形態によれば、クライアントアプリケーション１０１、出力デバイス１０５、カメラ１０６及びカメラエンジン１０７が、Ａｎｄｒｏｉｄ（商標）などのオペレーティングシステム内に存在する。他の実施形態によれば、仲裁モジュール１０２、ビデオパイプライン要素１０３、任意の復号要素１０８及びビデオプレーン１０４が、装置１００のネイティブ層内に存在する。従って、仲裁モジュール１０２では、オペレーティングシステムレベルのクライアントアプリケーション１０１が、ネイティブ層内の利用可能なリソースを呼び出すことができ、逆にネイティブ層リソースが、オペレーティングシステムレベル内に存在するリソース又はアプリケーションを呼び出すことができる。
【００２９】
この構成により、装置１００は、ビデオストリーム１１１及びビデオストリームに関するデータを提供する方法を実行できるようになる。仲裁モジュール１０２においてビデオストリーム１１１に対して（すなわち、自然入力エンジン１０９及び／又は顔検出エンジン１１０を介して）行われる処理に関して上述したように、これらの処理により生成された情報又は結果を利用するクライアントアプリケーション１０１及びリソースは複数存在することができる。従って、各要求側クライアントアプリケーション１０１又はリソースに関して計算及び処理を繰り返すよりもむしろ、これらの複数のクライアントアプリケーション１０１及びリソースが処理の結果にアクセスするために呼び出すことができるアクセス可能な機能リソースを提供することが有益である。しかしながら、これらのクライアントアプリケーション１０１の中には、ビデオストリーム１１１又はその修正版が出力デバイス１０５にストリーミングされるように求めるものもある。Ａｎｄｒｏｉｄ（商標）などの様々な既知のオペレーティングシステムに存在する制限に起因して、複数のクライアントアプリケーション１０１又は機能リソースが同時に同じハードウェアリソース（カメラ１０６リソースなど）にアクセスすることはできず、これによりクライアントアプリケーション１０１及び機能リソースの両方が同時にビデオストリーム１１１を受け取ることが妨げられる。従って、ビデオストリーム１１１の表示及びビデオストリームに関するデータを求めるクライアントアプリケーション１０１は、ビデオストリーム１１１を受け取って処理自体を実行し、クライアントアプリケーションレベルで処理の結果を生成する必要がある。この処理は、ネイティブレベルで処理を行うよりも遅い。さらに、この状況では、クライアントアプリケーション１０１が、ビデオストリーム１１１を受け取る機能リソースではなくビデオストリーム１１１を受け取るので、ビデオストリーム１１１に対して行われた処理の結果に他のクライアントアプリケーションが同時にアクセスすることが妨げられる。
【００３０】
このような短所を改善するために、任意に装置１００により実行される以下の方法を提供する。図１に戻ると、１つの実施形態によれば、この方法は、クライアントアプリケーション１０１が、ビデオストリーム１１１を求める要求と、ビデオストリーム１１１に対して行われた少なくとも１つの処理の結果を求める要求と、ビデオストリーム１１１をストリーミングすべきビデオプレーン１０４内の指定位置に関する命令とを仲裁モジュール１０２に送信する（まとめて矢印１１２で示す）ステップ（及び仲裁モジュール１０２がクライアントアプリケーションからさらに受け取るステップ）を含む。１つの実施形態によれば、ビデオストリーム１１１を求める要求は、ビデオストリーム１１１をクライアントアプリケーション１０１自体ではなく出力デバイス１０５にストリーミングする要求を含むことができる。１つの状況例によれば、この要求を、カメラ１０６が取り込んだビデオストリーム１１１をユーザ２０３がリアルタイムで視聴できるようにディスプレイ２０１又はその他の出力デバイス１０５に表示するための要求とすることができる。
【００３１】
ビデオストリーム１１１に対して行われた処理の結果を求める要求は、例えば上述した自然入力エンジン１０９及び／又は顔検出エンジン１１０によって行われた処理などの、ビデオストリーム１１１に対して行われた下位レベルの処理又は機能により生成された情報を求める要求とすることができる。例えば、クライアントアプリケーション１０１は、顔検出エンジン１１０により生成された情報であるビデオストリーム１１１内のいずれかの人物の身元又は年齢を要求することができる。また、この要求を、クライアントアプリケーション１０１においてこれらの結果又はこれらの結果の一部を受け取る要求（矢印１１３で示す）とすることもできる。同様に、この要求を、クライアントアプリケーション１０１に結果を送信することなく、又は送信することに加えて、これらの結果又はこれらの結果の一部を出力デバイス１０５に出力する要求とすることもできる。
【００３２】
ビデオストリーム１１１をストリーミングすべきビデオプレーン１０４内の指定位置に関する命令は、ビデオストリーム１１１をビデオプレーン１０４に提供することに関する位置、サイズ、向き又はその他の詳細を仲裁モジュール１０２に示す。この位置情報は、ビデオプレーン１０４内の位置を示すために使用する座標、画像オフセット情報、画素寸法又はその他の位置データを含むことができる。この位置情報は、ビデオプレーン１０４に対するビデオストリーム１１１の表示をサイズ変更し、トリミングし、引き延ばし、回転させ又は別様に変更するために使用できるサイズ又は寸法情報を含むこともできる。さらに、この位置情報は、重複したビデオストリーム又はビデオストリーム１１１の分割部分に対応できる複数の位置又はサイズを含むこともできる。また、（例えば、クライアントアプリケーション１０１が、ビデオストリーム１１１がストリーミングされているページをスクロールした場合、又はビデオストリーム１１１の新たな位置を含む異なるページに変更した場合）この位置情報は時間と共に変化することができ、クライアントアプリケーション１０１によりリアルタイムで更新することができる。
【００３３】
仲裁モジュール１０２は、上記で識別された要求及び命令と共にビデオストリーム１１１を受け取る（矢印１１２で示す）。１つの実施形態によれば、ビデオストリーム１１１が、カメラ１０６又はカメラエンジン１０７から受け取られる。カメラ１０６は、（図２に示すように）ディスプレイ２０１又はその他の出力デバイス１０５の正面のシーンを取り込むことができる。上述したように、仲裁モジュール１０２は、ビデオストリーム１１１に対して少なくとも１つの処理を行って、求められる少なくとも１つの処理の結果を生成する。例えば、この求められる結果は、自然入力及び／又は顔検出に関するものとすることができ、１つの実施形態によれば、仲裁モジュール１０２が、ビデオストリーム１１１内に存在する少なくとも１つの自然入力（ジェスチャ２０４又は顔３０１など）を識別し、認識し、又は特定するための処理を行う自然入力エンジン１０９を含む。さらに、別の実施形態によれば、仲裁モジュール１０２又は自然入力エンジン１０９が、ビデオストリーム１１１内の少なくとも１つの顔３０１を識別する、又はビデオストリーム１１１内に存在する少なくとも１つの顔３０１に関する少なくとも１つの特徴を別様に判断する顔検出エンジン１１０を含む。これらの処理例及び処理エンジン例は、限定的な意味で捉えるべきでなく、考えられる求められる処理及び処理エンジンの状況例として提供するものにすぎない。ビデオストリーム１１１に対しては、ジェスチャ２０４の検出、音の検出、動作の検出、顔の検出、顔の識別、顔の表情の検出、年齢の認識、オブジェクトの識別、シーンの検出、テキスト認識、及びこれらの処理を行うための様々なエンジンなどの他の多くの処理を行うことができ、これらは全て本出願により完全に企図されている。
【００３４】
仲裁モジュール１０２は、ビデオストリーム１１１に対して行われた処理の結果を生成した後に、この結果を出力する。１つの実施形態によれば、矢印１１３で示すように、この処理の結果又はその一部がクライアントアプリケーションによって受け取られる。別の実施形態によれば、クライアントアプリケーション１０１が結果を受け取ることなく、又はクライアントアプリケーション１０１が結果を受け取ることに加え、ビデオパイプライン要素１０３が結果又は結果の一部を受け取ることができる（以下で説明する矢印１１５内の矢印１１４で表している）。
【００３５】
仲裁モジュール１０２は、ビデオストリーム１１１、及びビデオストリーム１１１をストリーミングすべきビデオプレーン１０４内の指定位置を出力することができ（まとめて矢印１１５で表している）、これらがビデオパイプライン要素１０３によって受け取られる。ビデオパイプライン要素１０３は、これに応答して、受け取った指定位置データに従って、（矢印１１６及び１１７で示すように）ビデオプレーン１０４内の指定位置に（すなわち、指定された位置に又は指示されたサイズで）ビデオストリーム１１１をストリーミングする。いくつかの実施形態によれば、ビデオパイプライン要素１０３は、ビデオパイプラインフレームワーク内に、ビデオプレーン１０４内の指定位置にビデオストリーム１１１をストリーミングするように協調する、復号要素１０８及び／又はその他の要素などの複数の要素を含むことができる。
【００３６】
クライアントアプリケーション１０１（又はその他のクライアントアプリケーション）が使用できるビデオストリーム１１１を含むビデオプレーン１０４に関しては、クライアントアプリケーション１０１が、出力デバイス１０５（ディスプレイ２０１など）にビデオプレーン１０４へのアクセスを提供する（矢印１１８で表している）。また、クライアントアプリケーション１０１は、クライアントアプリケーションが生成した又はこれに関連する追加の視覚情報を出力デバイス１０５に提供することもできる（矢印１１９で表している）。１つの実施形態によれば、この追加の視覚情報は、グラフィクス、テキスト、又はビデオプレーン１０４の上部にオーバーレイされたグラフィック層内に存在するその他の画像を含むことができる（いくつかの実施形態では、グラフィック層がビデオプレーンの下位に存在することができる）。これらのグラフィクスは、クライアントアプリケーション１０１のユーザインターフェイスの一部とすることができ、或いはビデオストリーム１１１の構成を支援するための、又はビデオストリーム１１１に関連する又は関連しない情報を提供するための画像、テキスト又はデータとすることができる。この実施形態では、クライアントアプリケーション１０１が、グラフィック層の少なくとも一部又は全部を出力デバイス１０５に出力１１９して、ビデオプレーン１０４と組み合わさる（すなわち、ビデオプレーン上に重なる、ビデオプレーン上に投影される、又はビデオプレーンと別様にフラット化される）ようにすることができる。
【００３７】
１つの実施形態によれば、クライアントアプリケーション１０１は、グラフィクス層又はグラフィクスプレーン内に、下位レベルに存在するビデオプレーン１０４の一部をグラフィクス層を介して見ることができるようにする１又はそれ以上の空隙３０５（図３〜図５を参照）を形成し又は残すことができる。これらの空隙３０５は、ビデオプレーン１０４内のビデオストリーム１１１の指定位置に直接的又は近似的に対応することができる。この構成により、出力デバイス１０５に提供される、又は出力デバイス１０５により提供される最終的な出力画像（出力画像例３００など）は、クライアントアプリケーション１０１により提供１１９されたグラフィクス層内の視覚情報、及びグラフィクス層内の１又はそれ以上の空隙３０５内のビデオストリーム１１１をいずれも含むことができる。最終結果として、２つの層をシームレスに組み合わせて単一の統合されたソースに見える最終画像（出力画像例３００など）が得られる。
【００３８】
別の実施形態によれば、クライアントアプリケーション１０１が、出力デバイス１０５に、ビデオストリーム１１１に対して行われた処理の結果又は結果に関する情報へのアクセスも提供する。様々な実施形態によれば、この結果又は結果に関する情報へのアクセスを複数の方法で提供することができる。これらの実施形態をより良く理解できるように、これらの様々な実施形態による出力画像３００の非限定的な状況例を示す図３、図４及び図５を参照する。
【００３９】
上述したように、図３には、出力デバイス１０５において出力できる出力画像例３００を示している。この非限定的な例では、ディスプレイ２０１（図２に示すようなテレビなど）の正面に位置する視聴者の顔３０１を識別してディスプレイ２０１上に情報を提供するための「視聴者自動検出」クライアントアプリケーションを呼び出すことができる。いくつかの実施形態によれば、グラフィカルテンプレートが画面の一部を覆い、（青色又は灰色などの）ソリッドカラー、背景画像、又はアニメーションを表示し、その上にテキスト、その他のアニメーション又はその他の情報を表示することができる。上部又はその他の場所には、クライアントアプリケーション１０１のタイトル３０３を表示することができ、画面上には、（出力画像例３００の底部に示されている「メニュー」、「プロファイルの編集」及び「終了」ボタンなどの）ナビゲーションボタン３０４が存在することができる。少なくとも１つの実施形態によれば、上述したグラフィクス及びテキストが、クライアントアプリケーション１０１により生成されて出力デバイス１０５に提供された追加の視覚情報を含むことができる。
【００４０】
さらなる実施形態では、クライアントアプリケーション１０１が、（図１の矢印１１３で示すような）仲裁モジュール１０２によりビデオストリーム１１１に対して行われた処理の結果の少なくとも一部を受け取ることができる。クライアントアプリケーション１０１は、この受け取った情報を使用して、受け取った結果の少なくとも１つの視覚表現を生成し、この視覚表現を出力デバイス１０５に提供１１９することができる。この視覚表現は、クライアントアプリケーション１０１により出力デバイス１０５に提供１１９される追加の視覚情報（すなわち、背景、テキスト、タイトル及びメニューボタン）の一部として、又はこれとは別個のものとして提供１１９することができる。また、クライアントアプリケーション１０１は、ビデオプレーン１０４内に存在するビデオストリーム１１１を確認できるようにする空隙３０５を形成し又は残す。
【００４１】
図３の状況例では、受け取った結果又は受け取った結果に関する情報の生成された視覚表現３０６を、識別された視聴者の名前３０７及び視聴者のそれぞれの年齢３０８として示しているが、受け取った結果の視覚表現３０６としては、各顔３０１の認識確実度及びプロファイル情報などの、識別された顔３０１に関するあらゆる種類の情報又はデータを表示することができる。これらの情報項目は、仲裁モジュール１０２において生成して結果的にクライアントアプリケーション１０１に送信することもでき、或いは結果を単純に（数字又は他の指示子などの）識別符号とし、後にクライアントアプリケーション１０１がこれらを使用して、識別された顔３０１に関する様々な情報項目を検索することもできる。その後、これらの情報項目は、受け取った結果の又はこれに関する視覚表現３０６であるテキスト又はその他の画像に変換される。
【００４２】
別の実施形態によれば、及び図３の状況例を続けると、ビデオストリーム１１１に対して行われた処理の結果は、検出された顔３０１のビデオストリーム１１１内の位置を含むこともできる。この情報を、図１の矢印１１３で表すように、クライアントアプリケーション１０１に送信することができる。クライアントアプリケーション１０１は、これらの受け取った結果の視覚表現３０６の一部として、識別された顔３０１を囲むグラフィックボックス３０９を作成し、このボックス３０９の位置を、ビデオストリーム１１１内の顔３０１の位置にリアルタイムで合わせることができる。その後、これらのグラフィックボックス３０９を空隙３０５内のグラフィック層内の適当な位置に配置して、ビデオプレーン１０４からビデオストリーム１１１が追加された時に、図３に示すように顔３０１の上にグラフィックボックス３０９が表示されるようにすることができる。
【００４３】
図４に、この実施形態による、図３の出力画像例３００の詳細版を示す。クライアントアプリケーション１０１により提供されるグラフィック層４０１は、（背景３０２、タイトル３０３及びナビゲーションボタン３０４などの）追加の視覚情報、及びビデオストリーム１１１に対して行われた処理の結果の生成された視覚表現３０６を含む。この例では、結果の視覚表現３０６が、顔３０１に対応する名前３０７、それぞれの年齢３０８及びグラフィックボックス３０９を含む。グラフィック層４０１は、少なくとも１つの空隙３０５も含む。グラフィック層４０１の下位にビデオストリーム１１１を含むビデオプレーン１０４が加わると、出力画像３００は、図３に示すような単一の結合画像３００のように見える。
【００４４】
別の実施形態によれば、仲裁モジュール１０２が、仲裁モジュールにおいて結果の少なくとも１つの視覚表現３０６を生成し、次に仲裁モジュールからビデオストリーム１１１を出力する前に、この視覚表現３０６をビデオストリーム１１１に追加することによってビデオストリーム１１１に対して行われた処理の結果又はその一部を出力する。これにより、ビデオパイプライン要素１０３は、図１の矢印１１５の内部に入れ子になった矢印１１４で表すように、これらの視覚表現３０６を含む修正済みビデオストリーム１１１の形でこれらの結果を受け取る。なお、この実施形態では、クライアントアプリケーション１０１は、図１の矢印１１３で示すように、処理の結果の少なくとも一部を受け取っても、又は受け取らなくてもよい。
【００４５】
図５に、本明細書で上述した状況例におけるこの実施形態をさらに示す。仲裁モジュール１０２からは、恐らくは顔検出エンジン１１０により生成される、ビデオストリーム１１１内の顔３０１の位置を含む顔検出処理の結果が、ビデオストリーム１１１内の顔３０１の周囲に挿入されたグラフィックボックスの形で出力される。これを、図４に示すグラフィック層４０１ではなく、図５のビデオプレーン１０４内のビデオストリーム１１１に示している。この場合も、グラフィックボックス３０９を有するビデオストリーム１１１を含むビデオプレーン１０４がグラフィック層の下位に加わると、出力画像３００は、図３に示すような単一の結合画像３００のように見える。やはり、この状況例でも、クライアントアプリケーション１０１は、結果の少なくとも一部も受け取って１１３、識別された顔３０１に対応する名前３０７及び年齢３０８を含む、結果に関する情報の視覚表現３０６を生成する。
【００４６】
仲裁モジュール１０２内又はネイティブ層内の別のモジュールにおいて結果の視覚表現３０６（すなわち、グラフィックボックス３０９）を生成することには、このような視覚表現３０６の生成をクライアントアプリケーション層で行うよりもネイティブ層で行った方が速いという点で利点がある。また、ビデオプレーン１０４にアクセスできて、グラフィックボックス３０９と同じビデオストリーム１１１を利用したいと望むことがある他のクライアントアプリケーションが、グラフィックボックス３０９を生成するためのさらなる冗長な処理を行うこと及び他のクライアントアプリケーションの進行中に必要とされる冗長な符号化を行うことなくビデオストリーム１１１にアクセスすることができる。
【００４７】
さらに、仲裁モジュール１０２又はネイティブ層などの、クライアントアプリケーション層よりも下位層においてビデオストリーム１１１に対して処理を行うことにより、複数のクライアントアプリケーションがこのデータにアクセスすることができる。例えば、上述したように、視聴者自動検出クライアントアプリケーション例は、顔検出の結果を使用して様々な顔３０１の名前３０７を引き出すことができるのに対し、チャイルドロッククライアントアプリケーションは、成人向けコンテンツへのアクセスを制限するために、顔検出の結果を同時に使用して顔３０１の年齢３０８を判定し、現在未成年者がディスプレイ２０１を視聴しているかどうかを判断することができる。Ａｎｄｒｏｉｄ（商標）などの一部のオペレーティングシステムの（カメラビデオストリーム１１１などのハードウェアリソースを同時に１つのクライアントアプリケーション１０１又はリソースしか利用できない）現在の制限を考慮すると、本出願の教示がなければ、ビデオストリーム１１１に対して行われた処理の結果を複数のアプリケーションが利用すると同時に、クライアントアプリケーション１０１が出力デバイス１０５にビデオストリーム１１１を出力できるようにすることはできない。従って、本明細書では、これらの制限に対する解決策を開示した。
【００４８】
本明細書で説明した機能ユニットの多くは、これらの実装の独立性をより具体的に際立たせるためにモジュールとして示した。例えば、モジュールは、カスタムＶＬＳＩ回路又はゲートアレイ、論理チップなどの市販の半導体、トランジスタ、又はその他の個別部品を含むハードウェア回路として実装することができる。モジュールは、フィールドプログラマブルゲートアレイなどのプログラマブルハードウェアデバイス、プログラマブルアレイロジック、又はプログラマブル論理デバイスなどの形で実装することもできる。
【００４９】
モジュールは、様々な種類のプロセッサにより実行されるソフトウェアの形で実装することもできる。実行可能コードの識別されたモジュールは、例えばオブジェクト、手順又は機能として体系化できる、例えばコンピュータ命令の１又はそれ以上の物理的又は論理的ブロックを含むことができる。これにも関わらず、識別されたモジュールの実行可能ファイルを共に物理的に位置付ける必要はないが、これらは、論理的に結合された場合、モジュールを含むとともにモジュールのための定められた目的を達成する、様々な場所に記憶された異なる命令を含むことができる。
【００５０】
当然ながら、実行可能コードのモジュールは、単一の命令であっても、又は多くの命令であってもよく、いくつかの異なるコードセグメントを介して、異なるプログラム間で及び複数のメモリ装置にわたって分散させることもできる。同様に、本明細書ではモジュール内で動作データを識別して示すことができ、またこれをいずれかの適当な形で具体化し、いずれかの適当な種類のデータ構造内で体系化することができる。これらの動作データは、単一のデータセットとして収集することも、又は異なる記憶装置を含む様々な場所に分散させることもでき、また少なくとも部分的に、単に電子信号としてシステム又はネットワーク上に存在させることもできる。
【００５１】
本明細書で開示した発明について、特定の実施形態、実施例及びその用途を通じて説明したが、当業者であれば、特許請求の範囲に示す本発明の範囲から逸脱することなく、本発明に数多くの修正及び変更を行うことができる。
【図１】
2014081933.tif 000003
【図２】
2014081933.tif 000004
【図３】
2014081933.tif 000005
【図４】
2014081933.tif 000006
【図５】
2014081933.tif 000007
【外国語明細書】
2014081933000001.pdf