プロセッサと、前記プロセッサと通信状態にあるメモリと、を備えるビデオ表示装置であって、前記メモリは命令を備え、前記命令は、前記プロセッサによって実行されるとき、前記プロセッサに、少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムを実行させ、仮想ビデオキャプチャデバイスを実行させ、なお、前記仮想ビデオキャプチャデバイスは、前記画像データを取得し、前記取得された画像データをトランスコードし、前記プログラムによる使用のために、前記トランスコードされた画像データを出力する、ように構成され、前記仮想ビデオキャプチャデバイスを第1の物理ビデオキャプチャデバイスとしてオペレーティングシステムに登録させる、なお、前記オペレーティングシステムは、前記プログラムの実行を制御する、ビデオ表示装置。第2の物理ビデオキャプチャデバイスをさらに備え、なお、前記メモリは、前記プロセッサによって実行されるとき、前記プロセッサに、前記プログラムが前記トランスコードされた画像データを受信することおよび前記第2の物理ビデオキャプチャデバイスからのビデオデータを受信することの間で選択させる命令をさらに備える、請求項1に記載の装置。前記第2の物理ビデオキャプチャデバイスは、ビデオカメラを備える、請求項2に記載の装置。ネットワークインタフェースをさらに備え、なお、前記プログラムは、前記受信されたビデオ入力を前記ネットワークインタフェース上で送信するように構成される、請求項1に記載の装置。前記ネットワークインタフェースは、インターネット上で前記ビデオ入力を送信する、請求項4に記載の装置。前記仮想ビデオキャプチャデバイスは、前記画像データに基づいて、前記画像データを拡張データと組み合わせるようにさらに構成される、請求項1に記載の装置。前記仮想ビデオキャプチャデバイスは、デバイスドライバを備える、請求項1に記載の装置。前記メモリは、前記プロセッサによって実行されるとき、前記プロセッサに、複数の仮想ビデオキャプチャデバイスを作成させる命令をさらに備え、なお、各仮想ビデオキャプチャデバイスは、前記画像データの特定の部分と関連づけられる、請求項1に記載の装置。第1の仮想ビデオキャプチャデバイスと関連づけられた前記画像データの第1の部分は、アプリケーションウィンドウを備える、請求項1に記載の装置。前記画像データを表示するように構成されたディスプレイをさらに備える、請求項1に記載の装置。少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムのために、データを処理する方法であって、少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムを実行することと、仮想ビデオキャプチャデバイスを実行することと、なお、前記仮想ビデオキャプチャデバイスを実行することは、前記画像データを取得することと、前記取得された画像データをトランスコードすることと、前記プログラムによる使用のために、前記トランスコードされた画像データを出力することと、を備え、前記仮想ビデオキャプチャデバイスを第1の物理ビデオキャプチャデバイスとしてオペレーティングシステムに登録することと、なお、前記オペレーティングシステムは、前記プログラムの実行を制御する、を備える方法。前記プログラムが前記トランスコードされた画像データを受信することおよび第2の物理ビデオキャプチャデバイスからのビデオデータを受信することの間で選択することをさらに備える、請求項11に記載の方法。前記第2の物理ビデオキャプチャデバイスは、ビデオカメラを備える、請求項12に記載の方法。前記受信されたビデオ入力をネットワーク上で送信することをさらに備える、請求項11に記載の方法。前記ネットワークは、インターネットを備える、請求項14に記載の方法。前記仮想ビデオキャプチャデバイスは、前記画像データに基づいて、前記画像データを拡張データと組み合わせるようにさらに構成される、請求項11に記載の方法。前記仮想ビデオキャプチャデバイスは、デバイスドライバを備える、請求項11に記載の方法。複数の仮想ビデオキャプチャデバイスを作成することをさらに備え、なお、各仮想ビデオキャプチャデバイスは、前記画像データの特定の部分と関連づけられる、請求項11に記載の方法。第1の仮想ビデオキャプチャデバイスと関連づけられる前記画像データの第1の部分は、アプリケーションウィンドウを備える、請求項11に記載の方法。前記画像データを表示することをさらに備える、請求項11に記載の方法。少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムを実行する手段と、仮想ビデオキャプチャデバイスを実行する手段と、なお、前記仮想ビデオキャプチャデバイスは、前記画像データを取得し、前記取得された画像データをトランスコードし、前記プログラムによる使用のために、前記トランスコードされた画像データを出力する、ように構成され、前記仮想ビデオキャプチャデバイスを第1の物理ビデオキャプチャデバイスとしてオペレーティングシステムに登録する手段と、なお、前記オペレーティングシステムは、前記プログラムの実行を制御する、を備えるビデオ表示装置。前記プログラムが前記トランスコードされた画像データを受信することおよび第2の物理ビデオキャプチャデバイスからのビデオデータを受信することの間で選択する手段をさらに備える、請求項21に記載の装置。前記第2の物理ビデオキャプチャデバイスは、ビデオカメラを備える、請求項22に記載の装置。前記受信されたビデオ入力をネットワーク上で送信する手段をさらに備える、請求項21に記載の装置。前記ネットワークは、インターネットを備える、請求項24に記載の装置。前記仮想ビデオキャプチャデバイスは、前記画像データに基づいて、前記画像データを拡張データと組み合わせるようにさらに構成される、請求項21に記載の装置。前記仮想ビデオキャプチャデバイスは、デバイスドライバを備える、請求項21に記載の装置。複数の仮想ビデオキャプチャデバイスを作成する手段をさらに備え、なお、各仮想ビデオキャプチャデバイスは、前記画像データの特定の部分と関連づけられる、請求項21に記載の装置。第1の仮想ビデオキャプチャデバイスと関連づけられる前記画像データの第1の部分は、アプリケーションウィンドウを備える、請求項21に記載の装置。前記画像データを表示する手段をさらに備える、請求項21に記載の装置。少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムのために、データを処理するコンピュータプログラム製品であって、コンピュータに、少なくとも1つの物理ビデオキャプチャデバイスからのビデオ入力を受信するように構成されたプログラムを実行させるためのコードと、コンピュータに、仮想ビデオキャプチャデバイスを実行させるためのコードと、なお、前記仮想ビデオキャプチャデバイスは、前記コンピュータに、前記画像データを取得させ、前記取得された画像データをトランスコードさせ、前記プログラムによる使用のために、前記トランスコードされた画像データを出力させる、ように構成され、コンピュータに、前記仮想ビデオキャプチャデバイスを第1の物理ビデオキャプチャデバイスとしてオペレーティングシステムに登録させるためのコードと、なお、前記オペレーティングシステムは、前記プログラムの実行を制御する、をその上に記憶された非一時的なコンピュータ読み取り可能媒体、を備えるコンピュータプログラム製品。前記非一時的なコンピュータ読み取り可能媒体は、コンピュータに、前記プログラムが前記トランスコードされた画像データを受信することおよび第2の物理ビデオキャプチャデバイスからのビデオデータを受信することの間で選択させるためのコードをその上にさらに記憶される、請求項31に記載のコンピュータプログラム製品。前記第2の物理ビデオキャプチャデバイスは、ビデオカメラを備える、請求項32に記載のコンピュータプログラム製品。前記非一時的なコンピュータ読み取り可能媒体は、コンピュータに、前記受信されたビデオ入力をネットワーク上で送信させるためのコードをその上にさらに記憶される、請求項31に記載のコンピュータプログラム製品。前記ネットワークは、インターネットを備える、請求項34に記載のコンピュータプログラム製品。前記仮想ビデオキャプチャデバイスは、前記画像データに基づいて、前記画像データを拡張データと組み合わせるようにさらに構成される、請求項31に記載のコンピュータプログラム製品。前記仮想ビデオキャプチャデバイスは、デバイスドライバを備える、請求項31に記載のコンピュータプログラム製品。前記非一時的なコンピュータ読み取り可能媒体は、コンピュータに、複数の仮想ビデオキャプチャデバイスを作成させるためのコードをその上にさらに記憶され、なお、各仮想ビデオキャプチャデバイスは、前記画像データの特定の部分と関連づけられる、請求項31に記載のコンピュータプログラム製品。第1の仮想ビデオキャプチャデバイスと関連づけられる前記画像データの第1の部分は、アプリケーションウィンドウを備える、請求項31に記載のコンピュータプログラム製品。前記非一時的なコンピュータ読み取り可能媒体は、コンピュータに、前記画像データを表示させるためのコードをその上にさらに記憶される、請求項31に記載のコンピュータプログラム製品。0019典型的exemplaryという用語は、ここで、例、実例、または例示を提供するという意味で用いられる。ここで典型的であると説明される任意の実施形態は、他の実施形態に対して、必ずしも好ましいまたは有利であるようには解釈されない。以下の説明は、いかなる当業者であっても、本発明の製造または使用を可能にするために示される。詳細は、説明目的で、以下の説明において記載される。当業者であれば、本発明がこれら特定の詳細を使用することなく実現されうることを理解するであろうことが認識されるべきである。他の事例では、本発明の説明を不必要な詳細により不明瞭にしないように、周知の構造および処理は、詳しくは述べられない。したがって、本発明は、示される実施形態によって限定されるようには意図されず、ここに開示される原理および特徴と一致する最も広い範囲を与えられることとなる。0020ここに説明されるシステムおよび方法は、仮想ビデオキャプチャデバイスをインプリメントすることに関する。一実施形態では、仮想ビデオキャプチャデバイスは、ウェブカメラのような物理カメラとしてシステムに現れる、コンピューティングシステム上で実行中の仮想デバイスである。ウェブカメラと同様に、仮想ビデオキャプチャデバイスは、ビデオチャットアプリケーションのような、コンピューティングシステム上で実行中のアプリケーションによって使用されうるビデオデータを出力する。しかしながら、ウェブカメラとは異なり、仮想ビデオキャプチャデバイスは、必ずしもカメラのセンサを通じて画像を物理的にキャプチャするのではなく、むしろ物理カメラの出力と同様のフォーマットで、様々な異なるソースからのビデオを出力する。例えば、仮想ビデオキャプチャデバイスは、コンピュータ上に存在しているビデオファイルを取得して、それを物理カメラによって使用される出力フォーマットにフォーマットしうる。その後、アプリケーションが、仮想ビデオキャプチャデバイスからのこの出力を使用しうる。これは、例えば、物理カメラからの入力を予期しているビデオチャットアプリケーションが、代わりに、仮想ビデオキャプチャデバイスを介して異なるソースからの入力を受信することを可能にする。従来、このようなアプリケーションは、物理カメラ以外のソースからの入力を受け取るために、変更または再設計される必要があった。しかしながら、ここに説明される教示を使用すると、このようなアプリケーションは、変更または再設計を必要とせずに、追加のソースからの入力を受信しうる。0021ここに説明されるシステムおよび方法はさらに、補助入力を備えたネットワークカメラのようなビデオキャプチャデバイスに関する。これは、ネットワークカメラが、ネットワークカメラのセンサ以外のソースからの補助ビデオ入力を受信し、ネットワーク接続上でこの入力ビデオをエンコード、フォーマット、および送信するために、ネットワークカメラのハードウェアおよび/またはソフトウェアのリソースを共有することを可能にする。従来、ユーザが、DVDプレーヤのような補助ソースからの画像またはオーディオを、ネットワークカメラを通じて共有することを望んだ場合、ネットワークカメラは、このネットワークカメラに内蔵されたセンサを介して入力を受信するようにのみ構成されているので、ユーザはそうすることができなかった。しかしながら、ここに説明される教示を使用すると、ユーザは、補助ソースからの画像またはオーディオを、共有のためにネットワークカメラの補助入力に供給できる。0022図1Aは、ここに説明される実施形態で使用されうる典型的なコンピューティングデバイスを例示する。コンピューティングデバイス100aは、任意の周知のコンピューティングシステムでありうる。周知のコンピューティングシステム、環境、および/または構成の例は、それに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル民生用電子機器、ネットワークPCs、ミニコンピュータ、メインフレームコンピュータ、任意の上記システムまたはデバイスを含む分散コンピューティング環境、およびそれに類するものを含む。示されるように、コンピューティングデバイス100aは、カメラ105aを含む。カメラ105aは、コンピューティングデバイス100aのハウシングに内蔵された内蔵カメラintegratedcameraとして示されている。カメラ105aは、ウェブカメラのようなビデオキャプチャデバイスを備えうる。さらに、ビデオソース110aが、コンピューティングデバイス100aに接続attachedされている。ビデオソース110aは、DVDプレーヤ、ブルーレイ登録商標プレーヤ、カムコーダ等のような任意のビデオソースを備えうる。ビデオソース110aは、コンピューティングデバイス100a上のインタフェースを介してコンピューティングデバイス100aに接続されうる。ポートは、USB、DVI、VGA、コンポーネントビデオ等のうちの少なくとも1つを備えうる。0023図1Bは、ここに説明される実施形態で使用されうる別の典型的なコンピューティングデバイスを例示する。コンピューティングデバイス100bもまた、任意の周知のコンピューティングシステムでありうる。示されるように、コンピューティングデバイス100bは、カメラ105bを含む。カメラ105bは、コンピューティングデバイス100bに接続する外付けカメラとして示されている。カメラ105bは、USBインタフェースを介してコンピューティングデバイス100bに接続する。カメラ105bは、ウェブカメラのようなビデオキャプチャデバイスを備えうる。さらに、ビデオソース110bが、カメラ105bに接続されている。ビデオソース110bは、DVDプレーヤ、ブルーレイプレーヤ、カムコーダ等のような任意のビデオソースを備えうる。ビデオソース110bは、カメラ105b上のインタフェースを介してカメラ105bに接続されうる。インタフェースは、USB、DVI、VGA、コンポーネントビデオ等のうちの少なくとも1つを備えうる。0024図2は、コンピューティングデバイスの機能ブロック図である。コンピューティングデバイス100は、コンピューティングデバイス100a、コンピューティングデバイス100b、または別の同様のコンピューティングデバイスのうちの任意の1つに対応しうる。コンピューティングデバイス100は、入力/出力インタフェース230、およびメモリ220とデータ通信状態にあるプロセッサ210を含む。入力/出力インタフェース230はさらに、ディスプレイ240とデータ通信状態にある。プロセッサ210はさらに、ネットワークインタフェース260とデータ通信状態にある。別々に説明されているが、コンピューティングデバイス100について説明される機能ブロックは、個別の構造要素である必要がないことが理解されるべきである。例えば、プロセッサ210およびメモリ220は、単一チップ内に組み込まれうる。同様に、2つ以上のプロセッサ210、およびネットワークインタフェース260も、単一チップ内に組み込まれうる。0025プロセッサ210は、汎用プロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明される機能を実行するように設計されたこれらの任意の適切な組み合わせでありうる。プロセッサはまた、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携した1つ以上のマイクロプロセッサ、あるいはその他任意のこのような構成であるコンピューティングデバイスの組み合わせとしてインプリメントされうる。0026プロセッサ210は、1つ以上のバスを介して、メモリ220から情報を読み取り、またはこのメモリに情報を書き込むように結合されうる。プロセッサは、これに加えて、あるいはその代わりに、プロセッサレジスタのようなメモリを含みうる。メモリ220は、異なるレベルが異なる容量およびアクセス速度を有するマルチレベル階層キャッシュを含むプロセッサキャッシュを含みうる。メモリ220はまた、ランダムアクセスメモリRAM、その他の揮発性記憶デバイス、または不揮発性記憶デバイスを含みうる。記憶装置は、ハードドライブ、コンパクトディスクCDsまたはデジタルビデオディスクDVDsなどの光ディスク、フラッシュメモリ、フロッピー登録商標ディクス、磁気テープ、およびZip登録商標ドライブを含みうる。0027プロセッサ210はまた、コンピューティングデバイス100に接続されたデバイスからの入力を受信し、またそれらデバイスに出力を提供するための入力/出力インタフェース230に結合される。このようなデバイスの例は、それに限定されるものではないが、キーボード、ボタン、キー、スイッチ、ポインティングデバイス、マウス、ジョイスティック、リモコン、赤外線検出器、ビデオカメラ例えば、ウェブカメラ、DVDプレーヤ、ブルーレイプレーヤ、動き検出器、例えば、音声コマンドを検出するために、場合によっては、オーディオ処理ソフトウェアに結合されるマイクロホン、ディスプレイおよびプリンタを含む視覚的出力デバイス例えば、ディスプレイ240、スピーカ、ヘッドホン、イヤホン、およびアラームを含むオーディオ出力デバイス、ならびにフォースフィードバックゲームコントローラおよび振動デバイスを含む触覚出力デバイスを含む。0028プロセッサ210はさらに、ネットワークインタフェース260に結合される。ネットワークインタフェース260は、1つ以上のモデムを備えうる。ネットワークインタフェース260は、ネットワークへの送信のために、プロセッサ210によって生成されたデータを用意する。トランシーバ260はまた、ネットワークを介して受信されたデータを復調する。ネットワークインタフェース260は、送信機、受信機、またはその両方を含みうる。他の実施形態では、送信機および受信機は、2つの個別のコンポーネントである。ネットワークインタフェース260は、汎用プロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明される機能を実行するように設計されたこれらの任意の適切な組み合わせとして具現化されうる。0029図3は、ビデオキャプチャデバイスの機能ブロック図である。ビデオキャプチャデバイス105は、カメラ105a、カメラ105b、または別の同様のビデオキャプチャデバイスのうちの任意の1つに対応しうる。ビデオキャプチャデバイス105は、入力/出力インタフェース330、およびメモリ320とデータ通信状態にあるプロセッサ310を含む。プロセッサ310はさらに、補助入力340およびセンサ350とデータ通信状態にある。別々に説明されているが、ビデオキャプチャデバイス105について説明される機能ブロックは、個別の構造要素である必要がないことが理解されるべきである。例えば、プロセッサ310およびメモリ320は、単一チップ内に組み込まれうる。0030プロセッサ310は、汎用プロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明される機能を実行するように設計されたこれらの任意の適切な組み合わせでありうる。プロセッサはまた、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携した1つ以上のマイクロプロセッサ、あるいはその他任意のこのような構成であるコンピューティングデバイスの組み合わせとしてインプリメントされうる。0031プロセッサ310は、1つ以上のバスを介して、メモリ320から情報を読み取り、またはこのメモリに情報を書き込むように結合されうる。プロセッサは、これに加えて、あるいはその代わりに、プロセッサレジスタのようなメモリを含みうる。メモリ320は、異なるレベルが異なる容量およびアクセス速度を有するマルチレベル階層キャッシュを含むプロセッサキャッシュを含みうる。メモリ320はまた、ランダムアクセスメモリRAM、その他の揮発性記憶デバイス、または不揮発性記憶デバイスを含みうる。記憶装置は、ハードドライブ、コンパクトディスクCDsまたはデジタルビデオディスクDVDsなどの光ディスク、フラッシュメモリ、フロッピーディクス、磁気テープ、およびZipドライブを含みうる。0032プロセッサ310はまた、コンピューティングデバイス100のようなコンピューティングデバイスからの入力を受信し、またコンピューティングデバイスに出力を提供するための入力/出力インタフェース330に結合される。入力/出力インタフェース330は、USBインタフェース、FireWire登録商標インタフェース等を備えうる。0033プロセッサ310はまた、DVDプレーヤ、ブルーレイプレーヤ、カムコーダ等のようなビデオソース例えば、ビデオソース110a/110bからの入力を受信するための補助入力340に結合される。補助入力340は、DVI、HDMI登録商標、VGA、RCA、コンポーネントビデオ等のような入力インタフェースを備えうる。0034プロセッサ310はまた、画像/ビデオをキャプチャするためのセンサ350に結合される。センサ350は、CCD、CMOS、またはその他の適切なタイプのセンサを備えうる。0035図4は、仮想ビデオキャプチャデバイスを有するコンピューティングシステムの機能ブロック図である。システム400は、オペレーティングシステム405、アプリケーション410、ビデオドライバ415、仮想キャプチャデバイスドライバ420、ネットワークドライバ425、およびカメラドライバ430を含み、これらは、個別にあるいは集合的に、コンピューティングデバイス100のメモリ220のようなメモリに記憶され、かつプロセッサ210のようなプロセッサによって実行されうる1つ以上のソフトウェアモジュールを備えうる。0036アプリケーション410は、スカイプ、Windows登録商標Liveメッセンジャ、GチャットGChat等のようなビデオアプリケーションを備えうる。アプリケーション410は、例えば、ドライバのような、標準のビデオキャプチャデバイスからのビデオデータを受信するように構成される。具体的には、アプリケーション410は、ウェブカメラ用のカメラドライバからのビデオデータを受信するように構成されうる。0037ネットワークドライバ425は、ネットワークインタフェースカードNIC450からの入力を受信するように構成されることができ、これはさらに、インターネット455などのインターネットプロトコルネットワークのようなネットワークと通信するように構成されることができる。例えば、オペレーティングシステム405は、アプリケーション410の実行を容易にするように機能しうる。アプリケーション410は、ビデオデータを生成し、APIsなどを通じて、オペレーティングシステム405と相互作用してinteract、このビデオデータを、インターネット455に接続された別のデバイスにインターネット455上で送信しうる。オペレーティングシステム405は、ビデオデータをネットワークドライバ425に送ることができ、それは、NIC450を制御して、このデータをインターネット455上で送信する。同様に、NIC450、ネットワークドライバ425、オペレーティングシステム405、およびアプリケーション410は、例えば、アプリケーション410において、インターネット455からビデオを受信するように機能しうる。0038ビデオドライバ415は、ビデオカード460と通信するように構成されることができ、それはさらに、ディスプレイ465と通信する。例えば、アプリケーション410は、ディスプレイ465上で表示するためのビデオデータを受信または生成しうる。アプリケーション410は、ビデオデータをディスプレイ465上に表示するために、APIsなどを通じて、オペレーティングシステム405と相互作用しうる。オペレーティングシステム405は、ビデオデータをビデオドライバ415に送ることができ、それは、ビデオカード460を制御して、ビデオデータをディスプレイ465に送信する。その後、ディスプレイ465は、ビデオデータを表示する。0039ビデオキャプチャデバイスドライバ430は、例えば、ビデオキャプチャデバイス105のような、ビデオキャプチャデバイス470と通信するように構成されうる。例えば、アプリケーション410は、ビデオキャプチャデバイス470を通じてビデオデータをキャプチャしうる。アプリケーション410は、ビデオデータをキャプチャするために、APIsなどを通じて、オペレーティングシステム405と相互作用しうる。オペレーティングシステム405は、ビデオキャプチャデバイス470と通信して、ビデオキャプチャデバイス470上のセンサからのビデオ、またはビデオキャプチャデバイス470上の補助入力からのビデオなどの、ビデオキャプチャデバイス470からのビデオを受信するために、ビデオキャプチャデバイスドライバ430を利用しうる。その後、オペレーティングシステム405は、受信されたビデオをアプリケーション410に導きうるdirect。0040上述されたシステム400の様々なモジュール/コンポーネントを利用して、システム400は、ビデオデータをキャプチャし、ビデオデータをディスプレイ上に表示し、さらに、ビデオデータをインターネット上で別のデバイスに送信しうる。システム400は、ビデオキャプチャデバイス460以外のソースからのビデオデータを受信するようにさらに構成されうる。上述されたように、アプリケーション410は、標準のビデオキャプチャデバイスドライバを通じて、標準のビデオキャプチャデバイスからのビデオデータを受信するように構成される。したがって、仮想ビデオキャプチャVVC:virtualvideocaptureドライバ420は、標準のビデオキャプチャデバイス以外のソースからのビデオをキャプチャする標準のビデオキャプチャデバイスドライバとして機能するように構成される。VVCドライバ420は、このようなソースから受信されるビデオデータを、標準のビデオキャプチャデバイスと同じフォーマットでフォーマットする。VCCドライバ420の機能により、標準のビデオキャプチャデバイスとしてアプリケーション410に現れるソースは、仮想ビデオキャプチャデバイスと称される。0041一実施形態では、仮想ビデオキャプチャデバイスは、コンピューティングデバイス100の入力/出力インタフェース230を通じて通信するDVDプレーヤ、ブルーレイプレーヤ、カムコーダ等のようなビデオソースを備える。別の実施形態では、仮想ビデオキャプチャデバイスは、ビデオキャプチャデバイス460の補助入力例えば、補助入力340を通じて通信するビデオソースを備える。0042なお別の実施形態では、仮想ビデオキャプチャデバイスは、ディスプレイ465に出力される画像を備える。例えば、1つ以上の画像が、ビデオドライバ415およびビデオカード460を介して、ディスプレイ465に出力されうる。これら画像は、OSX登録商標、Windows等のようなオペレーティングシステムで見られるウィンドウのような、1つ以上のウィンドウwindowsで表示されうる。これら画像は、例えば、WidowsMediaPlayer、iTunes登録商標、QuickTime登録商標Player、Adobe登録商標FlashPlayer等のようなビデオプログラムからのビデオデータ、またはワード編集プログラム、ウェブブラウザ、AdobeAcrobat登録商標等からの表示のような何らかの他の画像データを備えうる。この実施形態では、VVCドライバ420は、ビデオドライバ415に出力される画像データを受信するために、オペレーティングシステムと相互作用するように構成される。VVCドライバ420は、ディスプレイ465に出力される画像のすべて、またはこれら画像の一部のみを受信しうる。VVCドライバ420は、これら画像データを、標準のビデオキャプチャデバイスドライバにより出力されるのと同じフォーマットにさらにフォーマットする。その後、フォーマットされた画像データは、アプリケーション410によって利用されうる。図5-図9は、VVCドライバ420およびシステム400の機能についてさらに詳述する。0043なお別の実施形態では、仮想ビデオキャプチャデバイスは、画像ファイル、ビデオファイル、AdobeAcrobatファイル、ウェブページ等のようなファイルを備える。0044仮想ビデオキャプチャデバイスは、ビデオキャプチャデバイス470および/または1つ以上の上述された仮想ビデオキャプチャデバイスの組み合わせをさらに備えうる。例えば、VVCドライバ420は、オペレーティングシステム405を介して、ビデオキャプチャデバイスドライバ420からの画像データを受信するように構成されうる。VVCドライバ420は、ディスプレイ465に出力される画像、ファイル、別のビデオソース等のような上述された別のソースからの入力を、ビデオキャプチャデバイスドライバ430からの画像データの上にオーバレイoverlayするようにさらに構成されうる。これら画像は、オーバラップされoverlapped、異なる透明度を有し、分割スクリーンフォーマットで配置されるarranged等が行われうる。さらに、2つ以上の様々な仮想ビデオキャプチャデバイスおよび/またはビデオキャプチャデバイスが、説明されたように組み合わされうる。VVCドライバ420の出力のために使用される仮想ビデオキャプチャの選択は、図5について以下に説明されるもののようなユーザインタフェースを経由して行われうる。0045VVCドライバ420は、仮想ビデオキャプチャデバイスの画像に拡張現実感特徴augmentedrealityfeaturesを組み込むために、オペレーティングシステム405と相互作用するようにさらに構成されうる。例えば、VVCドライバ420は、画像に対してオーバレイされる仮想ビデオキャプチャデバイスの画像を説明する情報を追加する、ファイル、ウェブソース、またはその他のソースからの拡張現実感情報をオーバレイするように構成されうる。0046図5は、図4の仮想ビデオキャプチャデバイスドライバを制御するための典型的なユーザインタフェースである。ユーザインタフェース500は、システム400のディスプレイ465上に表示されうる。ユーザインタフェース500は、キーボード、マウス、およびまたは当該技術において周知であるその他の入力システムを使用して制御されうる。ユーザインタフェース500は、どの入力がVVCドライバ420によって選択されるべきかを選択するための1つ以上の入力ボックス505を含む。入力ボックス505は、ドロップダウンボックス、およびまたはテキスト入力ボックスを備えうる。図4に示されるように、第1の入力は、ウェブアドレスを備え、第2の入力は、ビデオキャプチャデバイス470を備える。ユーザインタフェース500は、各入力と関連する除去ボタン510をさらに備える。除去ボタン510を選択すると、関連する入力が、VVCドライバ420の出力から除去される。各入力は、参照ボタンbrowsebutton520とさらに関連する。参照ボタン530を選択すると、ダイアログボックスが開き、ユーザが、入力として使用するために、ファイルまたは特定の入力を検索searchすることを可能にする。ユーザインタフェース500は、追加ボタン525をさらに備える。追加ボタン525は、入力ボックス505、除去ボタン510、および参照ボタン520と関連する追加入力を追加する。0047ユーザインタフェース500は、プレビューフレーム530をさらに備える。プレビューフレーム530は、ユーザインタフェース500において行われたユーザ選択に基づいて、VVCドライバ420の出力のビューを表示する。示されるように、入力1は、入力ウィンドウ1としてフレーム全体を占めるtakingように示され、一方、入力2は、入力ウィンドウ2として入力1の上にオーバレイされている。ユーザは、入力ウィンドウを選択して移動することによって、あるいは当該技術において周知であるように、入力ウィンドウの縁sideまたはコーナーを選択して、入力ウィンドウのサイズを変更することによって、入力をサイズ変更および移動しうる。さらに、現在の選択ボックス535が、現在選択されている入力ウィンドウを示す。特定の入力の透明度レベルは、透明度の入力540を使用して変更されうる。現在の選択ボックス535において示される入力が、透明度の入力540を使用した場合に変更される入力である。さらに、ユーザは、選択ボタン550を使用して、情報を追加Yするべきか、あるいは情報を除去Nするべきかを選択することにより、入力に対して拡張現実感情報を追加または除去しうる。拡張現実感情報のファイルまたはソースは、入力ボックス545に入力されうる。現在の選択ボックス535に示される入力が、拡張現実感選択ボタン550および現在の選択ボックス535を使用して変更される入力である。0048図6は、ビデオキャプチャデバイスの補助入力を介してビデオをキャプチャするための典型的な処理のフローチャートである。上述されたように、図1Bについて、ビデオキャプチャデバイスは、ビデオキャプチャデバイスのセンサに加えて、外部ソースからの画像データを受信するための補助入力を有しうる。処理600は、どのようにこのような入力が送信のためのアプリケーション410に出力されるかを説明する。最初のステップ610では、システム400は、ビデオキャプチャデバイス470の画像センサを介して、ビデオキャプチャデバイス470において第1の入力を受信する。次のステップ620では、ビデオキャプチャデバイス470は、ビデオキャプチャデバイス470の補助入力ポートにおいて第2の入力を受信する。続いて、ステップ630では、第1の入力および第2の入力のうちの少なくとも1つが出力のために選択される。例えば、ビデオキャプチャデバイス470は、入力を選択するための物理スイッチを有しうる。別の実施形態では、アプリケーション410は、入力を選択するために、オペレーティングシステム405およびビデオキャプチャデバイスドライバ430と相互作用しうる。さらに、ステップ640では、ビデオキャプチャデバイス470は、選択された入力を、アプリケーション410によって利用されるビデオフォーマットにフォーマットする。次に、ステップ650では、ビデオキャプチャデバイス470は、フォーマットされた入力をビデオキャプチャデバイス430に出力し、それは、この入力を、オペレーティングシステム405を介してアプリケーション410に送る。0049図7は、仮想ビデオキャプチャデバイスをインストールして、ビデオデータを送信するための典型的な処理のフローチャートである。上述されたように、図4について、仮想ビデオキャプチャデバイスは、送信用のビデオデータを提供するために、オペレーティングシステム405およびアプリケーション410と相互作用しうる。したがって、VVCドライバ420は、システム400上でインストールおよびセットアップされている必要がある。処理700は、どのようにVVCドライバ420がセットアップされるかを説明する。ステップ710では、システム400は、物理ビデオキャプチャデバイス例えば、ビデオキャプチャデバイス470からのビデオ入力を受信するように構成されたプログラム例えば、アプリケーション410を実行する。続いて、ステップ720では、システム400は、ディスプレイデータのようなソースからの画像データを受信するように構成されたビデオキャプチャデバイスアプリケーションを実行して、このデータを物理ビデオキャプチャデバイスと同じフォーマットで出力する。ステップ730では、仮想ビデオキャプチャデバイスは、オペレーティングシステム405に登録される。したがって、VVCドライバ420が、仮想ビデオキャプチャデバイスのためにセットアップされる。さらに、ステップ740では、VVCドライバ420は、画像データを物理ビデオキャプチャデバイスと同じフォーマットでアプリケーション410に出力する。0050図8は、仮想ビデオキャプチャデバイスにおける画像データをトランスコードするための典型的な処理のフローチャートである。図4について上述されたように、VVCドライバ420へ入力される画像データは、ビデオがアプリケーション410と互換性があるように、ビデオキャプチャデバイスによって使用されるフォーマットにフォーマットされるべきである。したがって、処理700によるVVCドライバ420のセットアップ後、画像データは、処理800で説明されるように、適切なフォーマットにトランスコードされる必要がある。ステップ810では、VVCドライバ420は、画像データを取得する。例えば、VVCドライバ420は、ディスプレイ465上で表示するために、ビデオドライバ415へ送られる画像データの少なくとも一部分を取得する。続いて、ステップ820では、VVCドライバ420は、取得された画像データを物理ビデオキャプチャデバイス例えば、ビデオキャプチャデバイス470と同じフォーマットにトランスコードする。図4および図5について上述されたように、VVCドライバ420は、複数のソースからの画像データを取得しうる。したがって、上述されたように、VVCドライバ420は、複数のソースからの画像データを、出力用の単一の画像データへとさらにフォーマットしうる。どのように複数のソースからの画像データをまとめて、出力用の単一の画像データにするかの制御は、例えば、図5について上述されたユーザインタフェース500のようなユーザインタフェースによって制御される。さらに、ステップ830では、VVCドライバ420は、オペレーティングシステム405およびアプリケーション410による使用のために、トランスコードされた画像データを出力する。0051図9は、オペレーティングシステムから、仮想ビデオキャプチャデバイスによって画像データを取得する典型的な処理のフローチャートである。図4について上述されたように、アプリケーション410は、インターネット455への送信のために、VVCドライバ420からの画像データを受信する。処理900は、どのように画像データが、VVCドライバ420から受信されて、ネットワーク上に出力されるかを説明する。ステップ910では、アプリケーション410は、VVCドライバ420から画像データを取得するためにオペレーティングシステム405と通信する。次に、ステップ920では、アプリケーション410は、オペレーティングシステム405からの画像データを受信し、それは、VVCドライバ420からこの画像データを受信する。続いて、ステップ930では、アプリケーション410は、別のデバイスへの通信のために画像データを処理する。さらに、ステップ940では、アプリケーション410は、オペレーティングシステム405に、インターネット455上での転送のために、処理されたデータをネットワークドライバ425に送るように指示する。続いて、ステップ950では、ネットワークドライバ235は、処理されたデータを、ネットワークインタフェースカード450を介してネットワーク例えば、インターネット455上で送信する。0052図10は、オペレーティングシステムから、仮想ビデオキャプチャデバイスによって画像データを取得する別の典型的な処理のフローチャートである。図4について上述されたように、VVCドライバ420は、ディスプレイ465上に表示される画像に対応するビデオデータを出力しうる。処理1000は、どのようにVVCドライバ420が、このような画像を受信して、対応するビデオデータを出力するかの一実施形態を説明している。ステップ1010では、VVCドライバ420は、オペレーティングシステム405からのシステム呼についてシステム400をモニタする、および/または、画像表示要求についてアプリケーション410のようなアプリケーションをモニタする。例えば、VVCドライバ420は、ビデオドライバ415を介して表示のために表示データをディスプレイ465に送るための呼についてシステム400をモニタする。続いて、ステップ1020では、VVCドライバ420は、どの画像表示要求が、別のデバイスに送信される画像データに対応するかを決定する。例えば、VVCドライバ420は、特定のファイル、ウィンドウ等に対応する画像データを送るように構成されうる。さらに、ステップ1030では、VVCドライバは、画像表示データをビデオキャプチャデバイスと同じフォーマットで出力する。0053当業者であれば、処理600-1000は、単に例示的であるにすぎないことを理解すべきである。処理600-1000のステップは、ここに開示された原理および新規な特徴と依然として一致しながらも、除去されることができ、追加のステップが加えられることができ、および/またはステップの順序が変更される。0054例えば、1つ以上の添付図面に関してここに説明された機能は、添付された特許請求の範囲において同様に示される~する手段の機能に、いくつかの態様において対応しうる。図2-図4のモジュールの機能は、ここでの教示と一致する様々な方法でインプリメントされうる。いくつかの態様では、これらモジュールの機能は、1つ以上の電気的コンポーネントとしてインプリメントされうる。いくつかの態様では、これらブロックの機能は、1つ以上のプロセッサコンポーネントを含む処理システムとしてインプリメントされうる。いくつかの態様では、これらモジュールの機能は、例えば、1つ以上の集積回路例えば、ASICの少なくとも一部を用いてインプリメントされうる。ここで説明されたように、集積回路は、プロセッサ、ソフトウェア、その他の関連するコンポーネント、またはこれらの何らかの組み合わせを含みうる。これらモジュールの機能は、ここで教示されたようなその他いくつかの方式でもインプリメントされうる。0055本明細書において、例えば、第1の、第2の等のような指定を用いた、要素に対するいずれの参照も、一般に、これら要素の数も順序も限定しないことが理解されるべきである。むしろ、これらの指定は、2つ以上の要素または要素の事例の間で区別する便利な方法としてここで使用されうる。したがって、第1の要素および第2の要素への参照は、そこで2つだけの要素しか適用できないことも、何らかの方法で第1の要素が第2の要素に先行しなければならないことも、意味していない。また、特に明記されていない限り、要素のセットは、1つ以上の要素を備えうる。さらに、明細書または特許請求の範囲において使用されているA、B、またはCのうちの少なくとも1つの形式をとる記述は、AまたはBまたはC、または、これら要素の任意の組み合わせを意味する。0056当業者であれば、情報および信号は、様々な異なる技術および技法のうちの何れかを用いて表されうることを理解するであろう。例えば、上記説明の全体にわたって参照されうるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光粒子、あるいはこれらの任意の組み合わせによって表されうる。0057当業者であれば、ここに開示された例に関連して説明された様々な例示的な論理ブロック、モジュール、回路、方法、およびアルゴリズムは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとしてインプリメントされうることをさらに理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、方法およびアルゴリズムが、概してそれらの機能の観点から上述された。このような機能が、ハードウェアとしてインプリメントされるか、あるいはソフトウェアとしてインプリメントされるかは、特定のアプリケーションおよびシステム全体に課せられている設計制約に依存する。当業者は、特定のアプリケーションごとに多様な方法で説明された機能をインプリメントしうるが、このようなインプリメンテーションの決定は、本発明の範囲から逸脱を引き起こしていると解釈されるべきでない。0058ここに開示された例に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタロジック、ディスクリートハードウェアコンポーネント、あるいはここに説明された機能を実行するように設計されたこれらの任意の組み合わせで、インプリメントまたは実行されうる。汎用プロセッサは、マイクロプロセッサでありうるが、代替において、このプロセッサは、任意の従来型のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンstatemachineでありうる。プロセッサはまた、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSP通信と連携した1つ以上のマイクロプロセッサ、あるいはその他任意のこのような構成であるコンピューティングデバイスの組み合わせとしてインプリメントされうる。0059ここに開示された例に関連して説明された方法またはアルゴリズムは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら2つの組み合わせにおいて、具現化embodiedされうる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバルディスク、CD-ROM、または当該技術分野において周知のその他任意の形状の記憶媒体内に存在しうる。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるように、プロセッサに結合されうる。代替において、記憶媒体は、プロセッサと一体化されうる。プロセッサおよび記憶媒体は、ASIC内に存在しうる。00601つ以上の典型的な実施形態では、説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェアまたはファームウェア、あるいはこれらの任意の組み合わせでインプリメントされうる。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ読み取り可能媒体上で、1つ以上の命令またはコードとして送信または記憶されうる。コンピュータ読み取り可能媒体は、1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体とコンピュータ記憶媒体との両方を含む。記憶媒体は、コンピュータによってアクセスされうる任意の利用可能な媒体でありうる。限定ではなく例として、このようなコンピュータ読み取り可能媒体は、RAM、ROM、フラッシュメモリ、EEPROM、CD-ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイスなどの非一時的なコンピュータ読み取り可能記憶媒体、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶または搬送するために使用可能であり、かつコンピュータによってアクセスされうるその他任意の媒体を備えうる。また、任意の接続は、厳密にはコンピュータ読み取り可能媒体と称される。例えば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線DSL、または赤外線、電波、およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、またはその他の遠隔ソースから送信される場合には、この同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、電波、およびマイクロ波のような無線技術は、媒体の定義に含まれる。ここで使用される場合、ディスクdiskおよびディスクdiscは、フラッシュメモリ記憶装置、コンパクトディスクCD、レーザーディスク登録商標、光ディスク、デジタル多目的ディスクDVD、フロッピーディスクおよびブルーレイディスクを含み、ここでディスクdisksは、通常磁気的にデータを再生し、一方ディスクdiscsは、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ読み取り可能媒体の範囲内に含まれるべきである。0061開示された例の上記説明は、いかなる当業者であっても、本発明を製造または使用できるように提供される。これらの例への様々な修正は、当業者にとって容易に明らかになり、ここに定義された一般的な原理は、本発明の主旨または範囲から逸脱することなく、他の例にも適用されうる。したがって、本発明は、ここに示された例に限定されるようには意図されず、ここに開示される原理および新規な特徴と一致する最も広い範囲を与えられることとなる。