JP6322834B2 - ビデオチャットデータプロセッシング - Google Patents

ビデオチャットデータプロセッシング Download PDF

Info

Publication number
JP6322834B2
JP6322834B2 JP2015257418A JP2015257418A JP6322834B2 JP 6322834 B2 JP6322834 B2 JP 6322834B2 JP 2015257418 A JP2015257418 A JP 2015257418A JP 2015257418 A JP2015257418 A JP 2015257418A JP 6322834 B2 JP6322834 B2 JP 6322834B2
Authority
JP
Japan
Prior art keywords
data
video
video chat
application
data stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015257418A
Other languages
English (en)
Other versions
JP2016077001A5 (ja
JP2016077001A (ja
Inventor
ヴェンカタスブラマニアン、サンカラナラヤナン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016077001A publication Critical patent/JP2016077001A/ja
Publication of JP2016077001A5 publication Critical patent/JP2016077001A5/ja
Application granted granted Critical
Publication of JP6322834B2 publication Critical patent/JP6322834B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Telephone Function (AREA)

Description

ビデオチャットアプリケーションは、インターネットなどのネットワークを介して少なくとも1つのコンピューティングシステムから他のコンピューティングシステムへビデオチャットデータを送信することによって、コンピューティングシステムのユーザが他のコンピューティングシステムの少なくとも1人のユーザと通信することを可能にする。ビデオチャットデータは、1つのコンピューティングシステムでコーデックを用いて符号化された後、ネットワークプロトコルにもとづいてパッケージングされ、ネットワークを介して送信されてもよい。符号化されたビデオチャットデータは、ネットワークから他のコンピューティングシステムで受信され、パッケージから抽出され、そしてコーデックを用いて復号化されてもよい。ビデオチャットデータが符号化および復号化されるので、ビデオチャットアプリケーションによって使用される特定のコーデックは、1つのコンピューティングシステムまたは他のコンピューティングシステムの他の構成要素およびモジュールに対して、明らかにされなくてもよい。
ビデオチャットデータプロセッシングと共に用いてもよいコンピューティングデバイスのブロック図である。 ビデオチャットデータプロセッシングを可能にする方法の処理フローチャートである。 入力ビデオチャットデータを復号化するやり方を示す例示である。 入力ビデオチャットデータを復号化するやり方を示すシステムの制御フローチャートである。 ビデオチャットデータプロセッシングを可能にする他の方法の処理フローチャートである。 キャプチャしたビデオチャットデータを符号化するやり方を示す例示である。 キャプチャしたビデオチャットデータを符号化するやり方を示すシステムの制御フローチャートである。 ビデオチャットデータを処理する例示的なシステムのブロック図である。 図8のシステムが具現化されてもよい小型フォームファクタデバイスの模式図である。 ビデオチャットデータプロセッシングのコードを格納する、有形の持続性コンピュータ可読媒体を示すブロック図である。本開示および図面全体にわたって同一の数字を使用することにより、同様の構成要素および特徴を言及する。100番台の数字は、図1で最初に見られる特徴を指している。200番台の数字は、図2で最初に見られる特徴を指している。その他の図も同様である。
ビデオチャットデータは、ビデオチャットセッションに関連する画像、テキスト、オーディオ、およびビデオを含む。各々のビデオチャットアプリケーションは、コーデックを用いて、ビデオチャットデータのグラフィックス部分を符号化または復号化する。コーデックは、データのストリームを符号化または復号化することができるコンピューティングデバイスのソフトウェアまたはハードウェア構成要素である。場合によっては、データ圧縮を目的としてデータの符号化および復号化がおこなわれる。ビデオチャットデータのグラフィックス部分は、生ビデオデータを含む。ビデオチャットアプリケーションは、典型的に、ソフトウェアアルゴリズムを用いてコーデックを実装し、データストリームを圧縮する。コーデックを実装するべくビデオチャットアプリケーションによって用いられるソフトウェアアルゴリズムは、中央処理装置(CPU)を用いて実行される。しかし、ハードウェア符号化および復号化機能は、グラフィックスハードウェアを介して、ほとんどのコンピューティングシステムで利用可能である。グラフィックスハードウェアは、以下に限定されるものではないが、グラフィックスプロセッシングユニット(GPU)、固定機能ハードウェア、ビデオ符号化ロジック、ビデオ復号化ロジック、およびグラフィックエンジンを含む。
ビデオチャットアプリケーションは、典型的に、グラフィックスハードウェアを用いずに、符号化または復号化機能を行なう。なぜなら、グラフィックスハードウェアを有する標準インターフェースが利用可能ではないと考えられるからである。場合によっては、グラフィックスハードウェアは、ビデオチャットアプリケーションのソフトウェア符号化および復号化機能と比較した場合、より速くてより効率のよいハードウェアベースの符号化および復号化を行うことができる。加えて、ビデオチャットアプリケーションの符号化および復号化機能を実行するべくCPUを用いることによって、ビデオチャット中の電力消費は比較的高くなる場合がある。さらに、ビデオチャットアプリケーションのパフォーマンスは、CPUのデータスループットに応じて、遅いまたは途切れがちのレンダリングされたビデオをもたらす場合がある。
本明細書中に説明された実施形態は、ビデオチャットデータプロセッシングを可能にする。いくつかの実施形態では、グラフィックスドライバ、カメラドライバ、およびネットワークドライバを、ビデオチャットアプリケーションからグラフィックスハードウェアへ、符号化機能、復号化機能、および後処理機能を転送するインテリジェンスまたはロジックによって、具現化することが可能である。このように、ビデオチャットのパフォーマンスが向上し、向上したパフォーマンスは、改善されたシステム電力消費と同様に、ユーザに提示されるビデオ、テキスト、画像、およびサウンドの改善された品質のことを指してもよい。さらに、いくつかの実施形態では、グラフィックスハードウェアを有する標準インターフェースが利用可能ではない場合、グラフィックスハードウェアがビデオチャットデータを処理してもよい。説明を容易にするために、デスティネーションコンピューティングシステムとソースコンピューティングシステムは、ビデオチャットセッション中の機能を説明するために用いられる。しかし、単一のシステムは、デスティネーションコンピューティングシステムとソースコンピューティングシステムの機能を同時に実行することができる。さらに、任意の数のコンピューティングシステムがビデオチャットセッションに参加することができる。
以下の説明および特許請求の範囲において、用語「結合」および「接続」は、それらの派生語とともに用いられてもよい。これらの用語が互いの同意語として意図されないことを理解する必要がある。むしろ、特定の実施形態では、「接続」は2またはそれ以上の要素が互いに、直接に物理的または電気的に接触している状態にあることを示ために用いられてもよい。「結合」は、2またはそれ以上の要素が互いに、直接に物理的または電気的に接触している状態にあることを意味してもよい。しかし、「結合」は、2またはそれ以上の要素が互いに、直接に接触してはいないが、依然として共働することまたは互いにインタラクションし合うことを意味してもよい。
いくつかの実施形態は、ハードウェア、ファームウェア、およびソフトウェアのうちの1つまたはそれらの組み合わせに実装されてもよい。いくつかの実施形態は、機械可読媒体に格納された命令として実装されてもよく、この命令は、本明細書中に説明されたオペレーションを行うべく、コンピューティングプラットフォームによって読み取りおよび実行されてもよい。機械可読媒体は、コンピュータなどの機械によって可読可能な形式で情報を格納または送信する任意のメカニズムを含んでもよい。例えば、機械可読媒体は、とりわけ、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス、あるいは、電気的、光学的、音響的、または他の形式の伝播信号、例えば、搬送波、赤外線信号、デジタル信号、または信号の送信および/もしくは受信を行うインターフェースを含んでもよい。
実施形態は、実装または例である。本明細書において、「実施形態」、「1つの実施形態」、「いくつかの実施形態」、「様々な実施形態」、または「他の実施形態」に対する言及は、必ずしも本技術の実施形態全てではないが、少なくともいくつかの実施形態に含まれる、実施形態に関連して説明される特定の特徴、構造、または特性を、意味する。「実施形態」、「1つの実施形態」、または「いくつかの実施形態」の様々な外観は、必ずしも全てが同じ実施形態を指している必要はない。実施形態の要素または態様は、他の実施形態の要素または態様と組み合わせることができる。
本明細書中に説明および図示した構成要素、特徴、構造、特性などは、特定の実施形態または複数の実施形態に、それらの全てが含まれている必要はない。明細書が、例えば、構成要素、特徴、構造、または特性が「含まれ得る」、「含まれてもよい」、「含むことができる」、または「含まれる場合がある」ことを述べる場合、その特定の構成要素、特徴、構造、または特性が含まれていることを必要としない。明細書または特許請求の範囲が「複数の形であることを明確にしないかたち(英語の不定冠詞「a」または「an」に対応)」で要素について言及する場合、そのことは要素がたった1つであることを意味しない。明細書または特許請求の範囲が「追加的な」要素について言及する場合、そのことは1より大きい数の追加的な要素であることを排除しない。
留意しておくことは、いくつかの実施形態が特定の実装に関して説明されているが、いくつかの実施形態にもとづいて他の実装が可能なことである。加えて、図面に例示および/または本明細書中に説明された回路要素または他の特徴の構成および/または順序を、図示および記載された特定のやり方で設定する必要はない。いくつかの実施形態にもとづいて、多くの他の構成が可能である。
図に示す各々のシステムでは、場合によっては、要素は、各々、同一の参照番号または異なる参照番号を有することで、表された要素が異なるものおよび/または同様のものでもよいことを示唆し得る。しかし、要素は、本明細書に示されたまたは説明されたシステムのいくつかまたは全てによる異なる実装および作業を有するのに十分なほどに、融通が利いてもよい。図に示す様々な要素は、同一または異なってもよい。どれが第1の要素として言及されるか、どれが第2の要素として称されるかは任意である。
図1は、ビデオチャットデータプロセッシングと共に用いてもよいコンピューティングデバイス100のブロック図である。コンピューティングデバイス100は、とりわけ、例えばラップトップコンピュータ、デスクトップコンピュータ、ウルトラブック(商標)、タブレットコンピュータ、モバイルデバイス、スマートフォン、スマートTV、またはサーバであってもよい。コンピューティングデバイス100は、CPU102によって実行可能な命令を格納するメモリデバイス104と同様に、格納された命令を実行する中央処理装置(CPU)102を備えてもよい。CPU102は、バス106によってメモリデバイス104に結合してもよい。してもよい。加えて、CPU102は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成であってもよい。さらに、コンピューティングデバイス100は、1より大きい数のCPU102を備えてもよい。
コンピューティングデバイス100はさらにグラフィックスプロセッシングユニット(GPU)108を備えてもよい。示されるように、CPU102は、バス106を介してGPU108に結合してもよい。メモリデバイス104は、GPU108によって実行可能な命令を格納してもよい。GPU108は、コンピューティングデバイス100内で、グラフィックスオペレーションを何回でも実行してもよい。例えば、GPU108は、コンピューティングデバイス100のユーザに表示されるグラフィックス画像、グラフィックスフレーム、またはビデオなどのグラフィックスデータをレンダリングまたは操作してもよい。グラフィックスデータは、ビデオチャットセッション中にレンダリングされてもよい。
メモリデバイス104は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、または任意の他の適したメモリシステムを有することができる。例えば、メモリデバイス104は、ダイナミックランダムアクセスメモリ(DRAM)を含んでもよい。メモリデバイス104は、1または複数のドライバ110を有する。ドライバとして、グラフィックスドライバ、ネットワークドライバ、またはカメラドライバなどのデバイスドライバを挙げることが可能である。いくつかの例において、グラフィックスエンコーダなどのハードウェア構成要素は、グラフィックスドライバの符号化モジュールによって、動作させられてもよい。同様に、いくつかの例において、グラフィックスデコーダは、グラフィックスドライバの復号化するモジュールによって操作されてもよい。コンピューティングデバイス100は、画像キャプチャ機構112をさらに備える。いくつかの実施形態では、画像キャプチャ機構112は、カメラ、ウェブカム、ステレオカメラ、スキャナ、赤外線センサ、またはその他である。画像キャプチャ機構112は、ビデオチャットセッション中、ビデオデータストリームまたは画像などのグラフィックスデータをキャプチャするために用いられてもよい。
グラフィックスドライバ、ネットワークドライバ、カメラドライバ、またはそれらの任意の組み合わせは、ビデオチャットアプリケーションがヒントを用いてビデオチャットセッションを初期化またはビデオチャットセッションが始動したことを検知できる。場合によっては、ヒントはビデオチャットセッションの開始を示すことができる任意のアクションである。グラフィックス、ネットワーク、およびカメラドライバは、各々、ビデオチャットセッションがビデオチャットアプリケーションによって初期化されたやり方に基づいた異なるヒントを受信してもよい。例えば、ビデオチャットセッション中に表示されるビデオをレンダリングするための表面を作成するべく、グラフィックスドライバはビデオチャットアプリケーションから呼び出しを受信してもよい。そのような例において、受信された呼び出しは、入力ビデオチャットセッションのグラフィックスドライバに関するヒントとして役立つ。他の例において、カメラドライバは、ビデオチャットアプリケーションから通知またはカメラ機能へのアクセスの要求を受信してもよい。そのような例において、通知または要求は、入力ビデオチャットセッションのカメラドライバへのヒントとして役立つ。さらに、例として、ネットワークドライバは、ビデオチャットアプリケーションによって送信または受信されているデータパケットを検知してもよい。そのような例において、ビデオチャットアプリケーションへの、またはそのビデオチャットアプリケーションからのデータパケットの検出は、入力ビデオチャットセッションのネットワークドライバへのヒントとしての機能を果たすことが可能である。
各々のデバイスドライバのユーザモードモジュールもビデオチャットセッションの開始を示すヒントを検知するために用いてもよい。デバイスドライバのユーザモードモジュールは、カーネルモードの特権空間内ではなくコンピューティングシステムのユーザモード空間内で、デバイスドライバの実行を可能にする。ユーザモードで実行させることによって、デバイスドライバはアプリケーションプログラミングインターフェース(API)を呼び出してシステムハードウェアにアクセスする。いくつかの実施形態では、デバイスドライバのユーザモードモジュールは、デバイスドライバからのサービスを要求しているアプリケーションのアイデンティティを判断してもよい。サービスを要求するアプリケーションがビデオチャットアプリケーションである場合、デバイスドライバはビデオチャットセッションが初期化されたというヒントとしてビデオチャットアプリケーションによる要求を用いてもよい。
ビデオチャットセッションが初期化されたというヒントが検知される場合、符号化、復号化、および後処理機能を、ビデオチャットアプリケーションからGPUハードウェアへ転送することができる。典型的に、GPUハードウェアは、符号化、復号化、および後処理などの媒体機能に特化している。いくつかの例において、ビデオチャットアプリケーションによって用いられるビデオコーデックフォーマットは、GPUサブシステムのエンコーダハードウェアおよびデコーダハードウェアによって実装されてもよい。ビデオチャットアプリケーションの符号化機能、復号化機能、および後処理機能と比較した場合に、特化したGPUハードウェアは、より速く、より効率のよい符号化機能、復号化機能、および後処理機能を提供することができる。典型的に、上に議論されるように、ビデオチャットアプリケーションはソフトウェアを用いてそのような機能を実装する。したがって、ビデオチャットアプリケーションのパフォーマンスはGPUハードウェアを用いることによって改善されてもよい。さらに、コンピューティングデバイスは、ビデオチャットアプリケーションの符号化、復号化、および後処理機能にGPUハードウェアを用いることによって、電力を節約することができる。
CPU102は、さらに、コンピューティングデバイス100を1または複数の入出力(I/O)デバイス116に接続させるI/Oデバイスインターフェース114に、バス106を介して接続されてもよい。I/Oデバイス116は、例えば、キーボードおよびポインティングデバイスを含んでもよいもので、ポインティングデバイスは、とりわけ、タッチパッドまたはタッチ画面を含んでもよい。I/Oデバイス116は、コンピューティングデバイス100の内蔵構成要素であってもよく、またはコンピューティングデバイス100と外部接続されるデバイスもよい。
CPU102は、コンピューティングデバイス100を1または複数の表示装置120に接続するディスプレイインターフェース118と、バス106を介してリンクしてもよい。表示装置120は、コンピューティングデバイス100の内蔵構成要素であるディスプレイ画面を有してもよい。表示装置120は、コンピュータモニタ、テレビ、またはプロジェクタを含んでもよく、とりわけコンピューティングデバイス100と外部接続されてもよい。
コンピューティングデバイス100は、さらに、記憶デバイス122を備える。記憶デバイス122は、ハードドライブ、光学的ドライブ、サムドライブ、ドライブアレイ、またはそれらの任意の組み合わせなどの物理メモリである。記憶デバイス122は、リモートストレージドライブを有してもよい。記憶デバイス122は、さらにアプリケーション124を有する。アプリケーション124はビデオチャットアプリケーションを含んでもよい。コンピューティングデバイス100は、さらに、バス106を介してネットワーク128にコンピューティングデバイス100を接続するネットワークインターフェースコントローラ(NIC)126を備えてもよい。ネットワーク128は、とりわけ、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、またはインターネットであってもよい。ネットワークを介して送信されるデータをストリーミングデータとして説明する。このストリーミングデータはネットワークプロトコルにもとづいてパケット化されているデータを含む。パケットデータは、限定されるものではないが、画像フレームおよび対応するオーディオデータを含む。
図1のブロック図は、コンピューティングデバイス100が図1に示される構成要素の全てを備えているように示すことを意図していない。さらに、コンピューティングデバイス100は、具体的な実施態様の詳細に応じて、図1に示さない任意の数の追加的な構成要素を備えてもよい。さらに、コンピューティングデバイス100は、システムオンチップ(SOC)として実装されてもよい。SOC実装では、コンピューティングデバイス100の様々な構成要素は単一のチップ基板上に組み合わせられる。
いくつかの実施形態では、ビデオチャットアプリケーションによって処理されたビデオをレンダリングする表面を作成するために、ビデオチャットアプリケーションはグラフィックスドライバに通知を送信してもよい。場合によっては、表面はグラフィックスデータが書かれているメモリの領域である。複数の例において、API、例えばDirectXによって提供されるものを用いる場合、ビデオチャットアプリケーションの要求で作られた表面は、レンダリング対象表面であり、この面はGPUハードウェアによって管理されないメモリの領域内に位置してもよい。その結果、GPUは、各々の表面のフラグを設定することによってビデオチャットアプリケーションの要求で作られた表面をトラッキングする。複数の例において、フラグはグラフィックスドライバソフトウェアによって格納されてもよい。加えて、複数の例において、表は、表面がトラッキングされるかどうか示すブール値と共に割り当てられた表面を示ために用いられてもよい。アプリケーションからのレンダリングオペレーションの間、アプリケーションは特定の表面がレンダリングされることを求め、グラフィックスドライバがこの表面に対して設定されたフラグを有する場合、グラフィックスドライバは、復号化データを含む表面に対してビデオ後処理を実行し、アプリケーションによって生成された表面をレンダリングしない。この処理は、表面のトラッピングとしても知られている。
グラフィックスドライバは、さらに、レンダリング対象表面からビデオ処理レンダリング対象表面へビデオチャットアプリケーションによって送信された作成表面通知を変更してもよい。このように、ビデオチャットアプリケーションによって作成された表面は、レンダリング対象表面からビデオ処理レンダリング対象表面に変換される。ビデオ処理レンダリング対象表面は、GPUハードウェアによって管理される。さらに、いくつかの実施形態では、ビデオ処理レンダリング対象表面はグラフィックスカードに位置してもよい。グラフィックスドライバは、さらに、復号化レンダリング対象用の追加の表面を作成してもよい。復号化レンダリング対象は、復号化されたグラフィックスデータを後処理エンジンへ送信するために用いてもよい。グラフィックスドライバは、さらに、ビデオチャットセッションがビデオチャットアプリケーションによって開始されたことをネットワークドライバとカメラドライバとに通知することができる。
ビデオチャットアプリケーションがアクティブ状態のビデオ通話または会議をまったく持たない場合でさえ、ネットワークドライバは任意のビデオチャットアプリケーションアクティビティ用のビデオチャットデータパケットを送信または受信するために用いられるポートをモニタリングしてもよい。ネットワークドライバがビデオチャットアプリケーションからのパケットを検知する場合、それはビデオチャットセッションをトラッキングする手段としてビデオチャットセッションからのトラフィックをマーク付けする。場合によっては、ネットワークドライバはマーカビットまたは任意の他のマーキング機構を用いることによってトラフィックをマーク付けしてもよい。ネットワークドライバは、パケットヘッダの検討またはデータ検査を介して、ビデオチャットアプリケーションからパケットを検知することができる。その後、ネットワークドライバは、ビデオチャットセッションが初期化されたことを、グラフィックスドライバとカメラドライバとに通知してもよい。
デバイスドライバが新しいビデオチャットセッションについて通知を受け取るやり方は、ビデオチャットセッション中にビデオチャットアプリケーションによって用いられるビデオチャット特徴と同様に、ビデオチャットセッションがビデオチャットアプリケーションによってどのように初期化されるかにもとづいて、見出される。ビデオチャットセッションでは、コンピューティングシステムはソースコンピューティングシステムおよびデスティネーションコンピューティングシステムとして指定されてもよい。場合によっては、ソースコンピューティングシステムはビデオチャットデータを送信しているコンピューティングシステムであり、その一方でデスティネーションコンピューティングシステムはビデオチャットデータを受信するコンピューティングシステムである。各々のコンピューティングシステムは、ビデオチャットセッション中に同時にソースコンピューティングシステムとデスティネーションコンピューティングシステムとの両方であってもよい。しかし、説明を容易にするために、各々のコンピューティングシステムをソースコンピューティングシステムまたはデスティネーションコンピューティングシステムとして説明する。
ウェブカムなどの画像キャプチャ機構がソースコンピューティングシステムには存在しないというシナリオを検討する。ソースコンピューティングシステムは、デスティネーションコンピューティングシステムにビデオチャットデータを送信してもよく、このビデオチャットデータにはオーディオおよびテキストが含まれる。この場合、画像キャプチャ機構がソースコンピューティングシステム内に存在せず、かつ処理すべきグラフィックスデータをグラフィックスハードウェアが存在しないので、グラフィックスドライバもカメラドライバもソースコンピューティングシステムでのワークフローに参加しない。したがって、ソースコンピューティングシステムのネットワークドライバは、様々なヒントの使用を介して新しいビデオチャットセッションを検知する最初のドライバであってもよい。ネットワークドライバは、新しいビデオチャットセッションの他のドライバに通知してもよい。ウェブカムの欠如によりビデオストリームがデスティネーションコンピューティングシステムに送信されない場合、デスティネーションコンピューティングシステムのグラフィックスドライバは、グラフィックスハードウェアの復号化機能または後処理機能を有効にしない。なぜなら、処理すべきグラフィックスデータがないからである。したがって、ドライバが入力ビデオチャットセッションについての通知を受けるやり方は、ビデオチャットセッションの特徴に依存する。
図2は、デスティネーションコンピューティングシステムでビデオチャットデータプロセッシングを可能にする方法200の処理フローチャートである。いくつかの例において、ビデオチャットデータは、ネットワークプロトコルにもとづいて、様々なヘッダを備えたデータパケットにフォーマットされてもよい。ネットワークプロトコルとして、限定されるものではないが、ハイパーテキスト転送プロトコル(HTTP)、Transmission Control Protocol(TCP)、インターネットプロトコル(IP)、ユーザデータグラムプロトコル(UDP)、またはリアルタイム通信(RTC)プロトコルが挙げられる。ブロック202では、入力データパケットは前処理される。データパケットの前処理は、データパケットからビデオデータをリッピングし、このビデオデータを復号化のためにグラフィックスドライバに送信することを含む。いくつかの例において、ネットワークドライバは入力データストリームからビデオデータストリームをリッピングしてもよい。上に議論されるように、ネットワークドライバは、ポート検査または詳細なパケットヘッダ検査を介して、ビデオチャットアプリケーションに関連したパケットを検知してもよい。いくつかの実施形態において、ネットワークドライバ以外の他のモジュールは、入力データストリームからビデオデータストリームをリッピングするために用いられてもよい。
ブロック204では、無効なビデオストリームがビデオチャットアプリケーションに送信されている間に、ビデオデータストリームはグラフィックスサブシステムに送信される。いくつかの実施形態において、ネットワークドライバは、ビデオデータストリームをビデオチャットアプリケーションからグラフィックスサブシステムへルーティングするために用いられてもよい。ビデオチャットアプリケーションに送信された無効なビデオストリームは、グラフィックスハードウェアによって処理される実際のビデオデータのためのプレースホルダである。いくつかの実施形態において、入力データストリームからのオーディオデータストリームを含むパケットは、無効なビデオストリームと共にビデオチャットアプリケーションに送信される。ビデオチャットアプリケーションはオーディオデータストリームをオーディオセッションと認識し、オーディオデータストリームのレンダリングができるようにオーディオデータストリームを処理することができる。
いくつかの実施形態において、ネットワークドライバは共有エリアまたはメモリ上にビデオデータをリッピングしてもよい。メモリのこのエリアはグラフィックスハードウェアとネットワークドライバとによって共有されてもよい。ネットワークドライバは、共有メモリへのビデオデータをリッピングし、次に、ビデオデータがグラフィックスサブシステムにより消費されるのを待っている共有メモリにあることを、グラフィックスドライバに通知する。
ブロック206では、ビデオデータストリームはグラフィックスサブシステムを用いて処理される。いくつかの実施形態において、グラフィックスハードウェアはビデオデータストリームを受信し、次に、ストリームを復号化する。グラフィックスハードウェアは、さらに、ビデオデータに色変換、スケーリング、およびデインターレーシングなどの後処理を実行してもよい。さらに、グラフィックスサブシステムは復号化されたビデオデータストリーム上で任意の追加の画像エンハンスメント(画像改良)オペレーションを実行することができ、このような操作として、限定されるものではないが、スキントーニングと、色相、彩度、および明度の制御とが含まれる。ネットワークから受信した復号化されたビデオデータストリームの後処理をグラフィックスサブシステムが実行する一方で、ビデオチャットアプリケーションは無効なビデオストリーム上で復号化機能および後処理機能を同時に実行する。しかし、無効なストリームがプレースホルダであることから、ビデオアプリケーションに送信されたパケットはデータを含まない。その結果、データ処理はビデオチャットアプリケーションによって行われない。このように、ビデオチャットアプリケーションは、ビデオデータがビデオチャットアプリケーションに送信される時と同様のやり方で、機能する。
ブロック208では、処理ビデオデータはレンダリングされる。ビデオチャットアプリケーションがレンダリング用のグラフィックスドライバを呼び出す場合、グラフィックスドライバは、ビデオチャットアプリケーションからのプレースホルダデータが表面の上にレンダリングされないように、表面をトラッピングする。グラフィックスドライバは、グラフィックスサブシステムからの処理ビデオデータストリームを表面の上にレンダリングする。場合によっては、表面のトラッピングは、グラフィックスドライバが表面へのビデオチャットアプリケーションのアクセスを防ぐ処理のことを指す。グラフィックスドライバは、レンダリング用のビデオチャットアプリケーションから受信された任意のデータを破棄または無視してもよい。いくつかの実施形態において、表面は、ビデオチャットアプリケーションが表面を作成する要求を送信した時、グラフィックスドライバによってセットされたフラグによってトラッピングされる。ビデオチャットアプリケーションが処理用の無効なビデオストリームを受信する場合でさえ、ビデオチャットアプリケーションは、それらの表面に対してレンダリング機能を実行する。なぜなら、ビデオチャットアプリケーションは、ビデオデータストリームの復号化および後処理を処理していないことを認識していないからである。ビデオは表面からディスプレイにレンダリングされてもよい。
図3は、デスティネーションコンピューティングシステムで入力ビデオチャットデータを復号化するやり方を示す例示300である。ネットワークからの入力データパケット302はネットワークハードウェア304によって受信される。いくつかの実施形態において、ネットワークドライバ306は、ネットワークハードウェア304によって受信されたビデオチャットデータを検知する。ネットワークハードウェアによって受信されたビデオチャットデータが最初に検出されると、ネットワークドライバ306は、グラフィックスドライバ308にビデオチャットセッションを通知してもよい。この通知を受信した後、グラフィックスドライバはビデオチャットアプリケーション310によって作られた表面をトラッキングすることができる。ネットワークドライバ306は、入力データストリームからのビデオデータストリームの分離をネットワークハードウェア304に行わせてもよい。ネットワークハードウェア304は、さらに、グラフィックスドライバ308の復号化モジュール308Aへビデオデータストリームを転送してもよい。ネットワークドライバ306は、さらに、ビデオチャットアプリケーション310への無効なビデオストリームの送信をネットワークハードウェア304に行わせてもよい。
グラフィックスドライバ308の復号化モジュール308Aは、上述したようなビデオデータストリーム上での復号化機能および後処理機能の実行を、グラフィックス復号化および後処理ハードウェア312に行わせる。その後、グラフィックスドライバ308のレンダリングモジュール308Bは、復号化データおよび後処理データのレンダリングを、GPUレンダリングハードウェア314に行わせる。グラフィックスドライバ308のレンダリングモジュール308Bは、ブロック310でビデオチャットアプリケーションによって送信されたデータが「ダミー」データであることに気づく。ビデオチャットアプリケーションからのビデオデータはどれも無視される。いくつかの実施形態において、グラフィックスドライバ308のレンダリングモジュール308Bは、グラフィックス復号化および後処理ハードウェア312からレンダリングされる表面に、復号化および後処理されたビデオデータストリームを書き込みする。
図4は、入力ビデオチャットデータを復号化するやり方を示すシステム400の制御フローチャートである。入力データパケット302はシステム400へ入力される。ネットワークドライバ306は、参照番号402でビデオデータがシステムに入力されるポートを検査する。参照番号404では、入力データパケットがビデオチャットパケットである場合、ビデオチャット復号化セッションが作成され、またデータはグラフィックスハードウェアに送信される。参照番号406で示されるように、ビデオチャットパケットが検知される場合は常に、ビデオデータはデータの各々のパケットから抽出される。参照番号408では、抽出されたビデオパケットは、復号化されるグラフィックスハードウェアに送信される。グラフィックスドライバの復号化モジュール308Aは、ビデオデータを復号化するべく、グラフィックスハードウェアを動作させてもよい。加えて、参照番号410では、ネットワークドライバは、無効なビデオストリームと入力データパケットから抽出されたオーディオデータとをビデオチャットアプリケーション310へ送信するように、ネットワークハードウェアに命じる。
復号化セッションは参照番号412で開始されてもよい。復号化セッションに、ビデオデータストリームからの入力フレームは参照番号414で示されるようなグラフィックスハードウェアを用いて、継続的に復号化される。参照番号416では、後処理はビデオデータフレーム上で実行される。したがって、グラフィックスドライバ308は、復号化されたビデオデータの後処理または上に議論されたようなデータのレンダリングを、グラフィックスハードウェアに行わせてもよい。ビデオチャットアプリケーション310は、参照番号418でレンダリングされるビデオデータを送信する。しかし、ビデオチャットアプリケーションによって処理されたパケットが無効なデータパケットであったことから、ビデオチャットアプリケーション310からのビデオデータはレンダリングされず、結果として得られるビデオ表面は情報を含まない。グラフィックスドライバ308は、グラフィックスハードウェアから受信された、復号化および後処理されたフレームをレンダリングする。
図5は、ソースコンピューティングシステムでビデオチャットデータプロセッシングを可能にする方法500の処理フローチャートである。デバイスドライバは、ビデオチャットセッションの開始を検知するべく、ヒントを用いてもよい。このように、ドライバは、ビデオチャットデータがグラフィックスサブシステムによって処理されてもよいように、ビデオチャットデータをリルーティングすることができる。いくつかの例において、カメラドライバは、ビデオチャットセッションが始動されたことをグラフィックスドライバとネットワークドライバとに通知することが可能であり、カメラドライバはビデオチャットアプリケーションからのアクセスの要求を検知する。
ブロック502では、ビデオデータがキャプチャされる。いくつかの実施形態において、カメラなどの画像キャプチャ機構はビデオデータをキャプチャするために用いられる。さらに、オーディオデータはマイクロホンを用いてキャプチャされてもよい。ブロック504では、カメラドライバは、符号化用グラフィックスサブシステムへのキャプチャしたビデオデータの送信を、画像キャプチャ機構に行わせる。とりわけ、キャプチャしたビデオデータはグラフィックスサブシステムのエンコーダに送信され得る。カメラドライバは、さらに、ビデオチャットアプリケーションへの無効なビデオデータの送信を、画像キャプチャ機構に行わせる。マイクロホンによってキャプチャしたオーディオも、ビデオチャットアプリケーションに送信され、ビデオチャットアプリケーションから結果として得られるパケットは正確なオーディオおよび無効なビデオを含む。ブロック506では、キャプチャしたビデオデータはグラフィックスサブシステムを用いて処理される。いくつかの実施形態において、グラフィックスドライバの符号化モジュールは、キャプチャしたビデオデータを符号化するべく、エンコーダなどのグラフィックスハードウェアを用いる。
ブロック508では、グラフィックスサブシステムからの符号化されたデータは、ネットワークを介した送信に備えられる。いくつかの実施形態において、符号化されたデータはネットワークドライバへ送信される。ネットワークハードウェアは、ネットワークを介して送信するためにビデオチャットアプリケーションから送信されたパケットをインターセプトし、グラフィックスサブシステムからの符号化されたビデオデータの挿入によってパケットをリパッケージする。その後、リパッケージされたパケットは、ネットワークプロトコルにもとづいて、ネットワークを介して送信される。いくつかの実施形態において、ネットワークハードウェアがグラフィックスサブシステムからの符号化されたデータの挿入によってパケットをリパッケージするので、ネットワークヘッダ情報は完全なままである。例えば、ネットワークサブシステムは、パケットに送信されるバイト数のトラッキングを維持すべく、パケットヘッダを用いてもよい。グラフィックスサブシステムからの符号化されたビデオデータがビデオチャットアプリケーションから送信されるパケットに挿入される場合、パケットヘッダはパケット長の変化を反映するべく修正され、これにより、正確なヘッダ情報を維持してもよい。そのようなパッケージングは、潜在的なネットワークプロトコルにもとづいて実行されなければならない。このことは、送信されたパケットの受信時に、このパケットが拒否されないことを確実にする。
いくつかの実施形態において、グラフィックスドライバのレンダリングモジュールは、グラフィックスサブシステムにソースコンピューティングシステムのビデオチャットアプリケーション内の受信ビデオデータと並行して、キャプチャしたビデオデータをレンダリングさせる。例えば、ビデオチャットアプリケーションのより大きな部分において受信されたビデオチャットデータをレンダリングする一方で、ユーザが自分の画像を見ることができるようにビデオチャットアプリケーションのより小さな部分においてソースビデオデータをレンダリングしてもよい。そのようなシナリオでは、グラフィックスサブシステムは、このソースデータを示すために呼び出される場合に画像キャプチャ機構によって転送される生ビデオストリームを再度用いる。いくつかの実施形態において、色空間変換およびスケーリングは、キャプチャしたソースデータが同じコンピューティングシステム上でレンダリングされる前に、グラフィックスハードウェアによって実行されてもよい。
図6は、ソースコンピューティングシステムで、キャプチャしたビデオチャットデータを符号化するやり方を示す例示600である。カメラモジュール602は、カメラドライバ604およびカメラハードウェア606を用いて生ビデオデータのキャプチャを制御するために用いられる。カメラモジュール602は、ビデオチャットアプリケーション608に無効なビデオデータを送信する。カメラドライバ604は、カメラハードウェア606からグラフィックスサブシステムの符号化ハードウェア612へ、キャプチャしたビデオデータを送信させる。カメラドライバ604は、さらに、グラフィックスドライバの符号化モジュール610Aおよびグラフィックスドライバのレンダリングモジュール610Bに、ビデオチャットセッションが始動されたことを通知してもよい。
グラフィックスドライバの符号化モジュール610Aは、ビデオチャットアプリケーションから受信されたパケットがリパッケージされるように、ネットワークドライバ614と通信する。符号化されたビデオデータは、グラフィックスサブシステムの符号化ハードウェア612からネットワークハードウェア616に送信される。ネットワークドライバ614は、グラフィックスサブシステムの符号化ハードウェア612からの符号化されたビデオデータとビデオチャットアプリケーション608からのパケットとを組み合わせる。いくつかの実施形態において、マルチプレクサは、オーディオおよび無効なビデオを含むビデオチャットアプリケーション608からのデータパケットとグラフィックスサブシステムの符号化ハードウェア612からの符号化されたビデオデータとを組み合わせるために用いられる。マルチプレクサは、ハードウェアまたはソフトウェアに実装されてもよい。ネットワークハードウェア616は、ネットワークを介してリパッケージされたデータパケットを送信するために用いられる。
カメラドライバ604は、さらに、グラフィックスドライバのレンダリングモジュール610Bと通信することによって、カメラハードウェア606からのキャプチャしたビデオデータを、GPUサブシステムのGPUレンダリングハードウェア618へ送信させる。レンダリングモジュール610Bは、カメラハードウェア606によってキャプチャしたビデオデータのレンダリングを、グラフィックスサブシステムのGPUレンダリングハードウェア618に行わせてもよく、これにより、キャプチャしたビデオデータが同一のコンピューティングシステムでレンダリングされる。いくつかの実施形態において、ビデオチャットアプリケーション608は、リモートコンピューティングシステムから受信されたビデオおよびオーディオデータと並行してソースビデオデータをレンダリングする。
図7は、キャプチャしたビデオチャットデータを符号化するやり方を示すシステム700の制御フローチャートである。ビデオチャットアプリケーションは、カメラモジュール602と同期することによって、参照番号702でビデオフレームをキャプチャする。いくつかの実施形態において、同期は、カメラモジュール602に生ビデオデータを要求することを含む。カメラモジュール602は、参照番号704で示されるような新しいビデオチャットセッションをネットワークドライバ614に通知する。カメラモジュール602は、さらに、参照番号706で示されるような新しいビデオチャットセッションのグラフィックスドライバの符号化モジュール610Aに通知する。その後、カメラモジュール602は、参照番号708で示されるようなビデオチャットアプリケーション608に無効なビデオフレームを送信する。キャプチャしたビデオデータは、参照番号710で示されるようなグラフィックスドライバの符号化モジュール610Aまで、カメラハードウェアから送信される。グラフィックスドライバの符号化モジュール610Aは、参照番号712で示されるようなグラフィックスサブシステムの符号化ハードウェアを初期化する。その後、グラフィックスサブシステムの符号化ハードウェアは、参照番号714で示されるような入力ビデオデータを符号化する。その後、グラフィックスドライバの符号化モジュール610Aは、参照番号716で示されるようなネットワークハードウェアに符号化されたビデオデータを送信する。対応するオーディオデータは、さらに、参照番号718で示されるようなパケットのネットワークハードウェアへ、ビデオチャットアプリケーション608から送信される。ネットワークドライバ614は、参照番号720で示されるようなビデオチャットデータの送信のために用いられるポートを初期化する。符号化されたデータは、参照番号722で示されるように格納されてもよい。その後、符号化されたデータは、参照番号724で示されるようなビデオチャットアプリケーションからのオーディオデータを有するパケットにリパッケージされる。リパッケージされたパケットは、参照番号726でネットワークを介して送信されてもよい。
図8は、ビデオチャットデータを処理する例示的なシステム800のブロック図である。同様の数字が付けられたアイテムは、図1に関して説明されたものと同じである。いくつかの実施形態において、システム800は媒体システムである。さらに、システム800は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、サーバーコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDA組み合わせ、テレビ、スマートデバイス(例えばスマートフォン、スマートタブレット、もしくはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス、プリントデバイス、組込みドライバ、またはその他に、組み込まれてもよい。
様々な実施形態では、システム800は、ディスプレイ804に結合したプラットフォーム802を備える。プラットフォーム802は、コンテンツサービスデバイス806もしくはコンテンツ配信デバイス808などのコンテンツデバイスまたは他の同様のコンテンツソースからコンテンツを受信してもよい。1または複数のアイテム間移動特徴を含むアイテム間移動コントローラ810は、例えばプラットフォーム802および/またはディスプレイ804とインタラクションを行うために用いられてもよい。以下、これらの構成要素の各々をより詳細に説明する。
プラットフォーム802は、チップセット812、中央処理装置(CPU)102、メモリデバイス104、記憶デバイス122、グラフィックスサブシステム814、アプリケーション820、および無線816の任意の組み合わせを有してもよい。チップセット812は、CPU102、メモリデバイス104、記憶デバイス122、グラフィックスサブシステム814、アプリケーション820、および無線816の間で相互通信を提供してもよい。例えば、チップセット812は、相互通信に記憶デバイス122を提供することができるストレージアダプタ(不図示)を有してもよい。アプリケーション820は、上述したようなアプリケーション124、アプリケーション202、またはアプリケーション502であってもよい。システム800の構成要素は、システムオンチップ(SOC)として実装されてもよい。SOC実装では、プラットフォーム802の全ての構成要素は、単一のチップ基板上に組み合わせられる。
CPU102は、複数命令セットコンピュータ(CISC)または縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セット互換プロセッサ、マルチコア、あるいは任意の他のマイクロプロセッサまたは中央処理装置(CPU)として実装されてもよい。いくつかの実施形態において、CPU102は、マルチコアプロセッサ、マルチコアモバイルプロセッサ、またはその他を有する。メモリデバイス104は、揮発性記憶デバイスとして実装されてもよい。この揮発性記憶デバイスは、限定されるものではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、またはスタティックRAM(SRAM)などである。記憶デバイス122は、不揮発性記憶デバイスとして実装されてもよい。この不揮発性記憶デバイスは、限定されるものではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、ソリッドステートドライブ、内部記憶デバイス、接続記憶デバイス、フラッシュメモリ、バッテリバックアップSDRAM(シンクロナスDRAM)、および/またはネットワークアクセス可能な記憶デバイスなどである。いくつかの実施形態において、例えば、記憶デバイス122は、多数のハードドライブが含まれる場合に、有益なデジタル媒体の保護を強化するストレージパフォーマンスを高める技術を有する。
グラフィックスサブシステム814は、表示用のスチールまたはビデオなどの画像の処理を実行してもよい。グラフィックスサブシステム814は、例えば、GPU108などのグラフィックスプロセッシングユニット(GPU)、またはビジュアルプロセッシングユニット(VPU)を含んでもよい。アナログインターフェースまたはデジタルインターフェースは、グラフィックスサブシステム814とディスプレイ804とを通信可能に結合するために用いられてもよい。例えば、このインターフェースは、高解像度マルチメディアインターフェース、ディスプレイポート(DisplayPort)、無線HDMI(登録商標)および/または無線HD準拠の技術のいずれであってもよい。グラフィックスサブシステム814は、CPU102またはチップセット812に統合される。あるいは、グラフィックスサブシステム814は、チップセット812に通信可能に結合するスタンドアロンのカードであってもよい。
本明細書に説明されるグラフィックス処理技術および/またはビデオ処理技術は、様々なハードウェアアーキテクチャに実装されてもよい。例えば、グラフィックスおよび/またはビデオ機能性は、チップセット812内に統合されてもよい。あるいは、ディスクリートグラフィックスおよび/またはビデオプロセッサが用いられてもよい。さらに他の実施形態として、グラフィックス機能および/またはビデオ機能は、マルチコアプロセッサなどの汎用プロセッサによって実装されてもよい。さらなる実施形態では、上記機能は消費者向けの電子デバイスに実装されてもよい。
無線816は、様々な適当な無線通信技術を用いて、信号を送受信することができる1または複数の無線を有してもよい。そのような技術は、1または複数の無線ネットワーク間の通信を伴うものであってもよい。例示的な無線ネットワークとして、無線ローカルエリアネットワーク(WLAN)、無線パーソナルエリアネットワーク(WPAN)、無線メトロポリタンネットワーク(WMAN)、セルラーネットワーク、衛星ネットワーク、またはその他が挙げられる。そのようなネットワークを介して通信する際に、無線816は、任意のバージョンの1または複数の適用可能な規格にもとづいて動作してもよい。
ディスプレイ804は、任意のテレビ型モニタまたはテレビ型ディスプレイを有してもよい。例えば、ディスプレイ804は、コンピュータディスプレイ画面、タッチ画面ディスプレイ、ビデオモニタ、テレビ、またはその他を有してもよい。ディスプレイ804は、デジタルおよび/またはアナログであってもよい。いくつかの実施形態において、ディスプレイ804はホログラフィックディスプレイである。さらに、ディスプレイ804は視覚投影を受け得るトランスペアレント表面であってもよい。そのような投影は、様々な形式の情報、画像、物体、またはその他を伝達してもよい。例えば、そのような投影は、モバイル拡張現実(MAR)アプリケーション用のビジュアルオーバーレイであってもよい。1または複数のアプリケーション820の制御下で、プラットフォーム802はディスプレイ804上にユーザインターフェース818を表示してもよい。
コンテンツサービスデバイス806は、任意の国家サービス、国際サービス、または独立したサービスがホストになることが可能である。これにより、例えば、インターネットを介してプラットフォーム802にアクセス可能であってもよい。コンテンツサービスデバイス806は、プラットフォーム802、および/またはディスプレイ804に結合してもよい。プラットフォーム802および/またはコンテンツサービスデバイス806は、ネットワーク128とメディア情報の通信のやりとり(例えば、送信および/または受信)を行うべく、ネットワーク128に結合してもよい。コンテンツ配信デバイス808は、さらに、プラットフォーム802および/またはディスプレイ804に結合してもよい。
コンテンツサービスデバイス806は、デジタル情報を伝えることができるケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、またはインターネット対応デバイスを有してもよい。さらに、コンテンツサービスデバイス806は、ネットワーク128を介してまたは直接的に、コンテンツプロバイダとプラットフォーム802またはディスプレイ804との間でコンテンツを一方向または双方向に通信することができる任意の他の同様のデバイスを有してもよい。コンテンツは、一方向および/または双方向で、システム800およびコンテンツプロバイダの構成要素の任意の1つとネットワーク128を介して、一方向および/または双方向で通信のやりとりを行い得ると理解されよう。コンテンツの例として、任意のメディア情報を挙げることが可能であり、そのような情報には、例えば、ビデオ、音楽、医学およびゲーム情報、ならびにその他が含まれる。
コンテンツサービスデバイス806は、メディア情報、デジタル情報、または他のコンテンツを含むケーブルテレビプログラミングのなどのコンテンツを受信してもよい。とりわけ、コンテンツプロバイダの例は、任意の有線もしくは衛星テレビまたは無線あるいはインターネットコンテンツプロバイダを含んでもよい。
いくつかの実施形態において、プラットフォーム802は、1または複数のアイテム間移動特徴を含むアイテム間移動コントローラ810から制御信号を受信する。アイテム間移動コントローラ810のアイテム間移動特徴は、例えば、ユーザインターフェース818とのインタラクションを行うために用いられてもよい。アイテム間移動コントローラ810は、ポインティングデバイスまたはタッチ画面デバイスであってもよい。このポインティングデバイスまたはタッチスクリーンデバイスは、ユーザが空間的(例えば、連続的かつ多次元の)データをコンピュータに入力することを可能にするコンピュータハードウェア構成要素(具体的には、ヒューマンインターフェースデバイス)であってもよい。グラフィカルユーザインターフェース(GUI)などの多くのシステム、ならびにテレビおよびモニタは、ユーザが身振りを用いてデータを制御してコンピュータまたはテレビにそのデータを提供することを可能にする。身振りとして、限定されるものではないが、顔の表情、顔の動作、様々な手足の動作、身体動作、ボディランゲージ、またはそれらの任意の組み合わせが挙げられる。そのような身振りは、認識され、コマンドまたは命令に翻訳される。
アイテム間移動コントローラ810のアイテム間移動特徴の動作は、ディスプレイ804上に表示されたポインタ、カーソル、フォーカスリング、または他の視覚的指標の動作によって、ディスプレイ804上に反映されてもよい。例えば、アプリケーション820の制御下で、アイテム間移動コントローラ810に位置するアイテム間移動特徴は、ユーザインターフェース818に表示された仮想アイテム間移動特徴にマッピングされてもよい。いくつかの実施形態において、アイテム間移動コントローラ810は別個の構成要素ではなくてもよく、むしろ、プラットフォーム802および/またはディスプレイ804に統合されてもよい。
システム800は、例えば、有効になった時、最初のブートアップの後に、ユーザがボタンのタッチによってプラットフォーム802を即座にオンオフすることを可能にする技術を含むドライバ(不図示)を有してもよい。プログラムロジックは、プラットフォーム802をオフにすると、媒体アダプタまたは他のコンテンツサービスデバイス806もしくはコンテンツ配信デバイス808へのプラットフォーム802によるコンテンツのストリーミングを可能にしてもよい。さらに、チップセット812は、例えば、6.1サラウンドサウンドオーディオおよび/または高品位7.1サラウンドサウンドオーディオ用のハードウェアおよび/またはソフトウェアサポートを含んでもよい。ドライバは、統合グラフィックスプラットフォーム用のグラフィックスドライバを含んでもよい。いくつかの実施形態において、グラフィックスドライバは、Peripheral Component Interconnect Express(PCIe)グラフィックスカードを含む。
様々な実施形態では、システム800に示される構成要素のいずれか1つまたは複数を統合してもよい。例えば、プラットフォーム802およびコンテンツサービスデバイス806を統合してもよい。プラットフォーム802およびコンテンツ配信デバイス808を統合してもよい。プラットフォーム802およびコンテンツデリバリデバイス808を統合してもよく、またはプラットフォーム802、コンテンツサービスデバイス806、およびコンテンツデリバリデバイス808を統合してもよい。いくつかの実施形態では、プラットフォーム802およびディスプレイ804は、統合ユニットである。例えば、ディスプレイ804およびコンテンツサービスデバイス806を統合してもよく、または、ディスプレイ804およびコンテンツ配信デバイス808を統合してもよい。
システム800は、無線システムまたは有線システムとして実装されてもよい。無線システムとして実装された場合、システム800は、無線共有媒体越しに通信するのに適した構成要素およびインターフェース、例えば、1または複数のアンテナ、送信器、受信器、送受信器、増幅器、フィルタ、および制御ロジックを備えてもよい。無線共有媒体の一例は、RFスペクトルなど、無線スペクトルの部分を含んでもよい。有線システムとして実装された場合、システム800は、有線通信媒体越しに通信するのに適した構成要素およびインターフェース、例えば、入出力(I/O)アダプタ、I/Oアダプタを対応の有線通信媒体に接続する物理的コネクタ、ネットワークインターフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、またはオーディオコントローラを備えてもよい。有線通信媒体の例として、ワイヤ、ケーブル、メタルリード、プリント回路板(PCB)、バックプレーン、スイッチング構造、半導体材料、ツイストペア線、同軸ケーブル、ファイバーオプティクス、またはその他を挙げることが可能である。
プラットフォーム802は、情報を通信するべく、1または複数のロジックチャンネルまたは物理チャネルを確立してもよい。情報は、メディア情報と制御情報とを含んでもよい。メディア情報は、コンテンツがユーザ用の任意のデータを表してもよい。コンテンツの例として、例えば、音声対話、テレビ会議、ストリーミングビデオ、電子メール(eメール)メッセージ、音声メールメッセージ、英数字シンボル、グラフィックス、画像、ビデオ、およびテキスト、およびその他のデータを挙げることが可能である。音声対話からのデータは、例えば、音声情報、沈黙時間、バックグラウンドノイズ、快感雑音、トーン、およびその他であってもよい。制御情報は、自動化されたシステム用のコマンド、命令、または制御語を表す任意のデータを指してもよい。例えば、制御情報は、システムを介してメディア情報をルーティングするべく、または予め定められたやり方でメディア情報を処理するようにノードを命じるべく、用いられてもよい。しかし、実施形態は、図8に示すまたは説明される要素または文脈に限定されるものではない。
図9は、図8のシステム800が具現化されてもよい小型フォームファクタデバイス900の模式図である。同様の数字が付けられたアイテムは、図8に関して説明されたものと同じである。いくつかの実施形態において、例えば、小型フォームファクタデバイス900は無線機能を有しているモバイルコンピューティングデバイスとして実装される。モバイルコンピューティングデバイスは、例えば、処理システムと、1または複数のバッテリなどのモバイル電源または供給源とを有する任意のデバイスを指してもよい。
上述したように、モバイルコンピューティングデバイスの例として、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、サーバーコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDA組み合わせ、テレビ、スマートデバイス(例えばスマートフォン、スマートタブレット、もしくはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、およびデータ通信デバイスを挙げることが可能である。
モバイルコンピューティングデバイスの例として、さらに、人が着用するよう構成されたコンピュータ、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、アイグラスコンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、シューコンピュータ、クロージングコンピュータ、または任意の他の適したタイプのウェアラブルコンピュータなどを挙げることが可能である。例えば、モバイルコンピューティングデバイスは、音声コミュニケーションおよび/またはデータ通信と同様に、コンピュータアプリケーションを実行することができるスマートフォンとして実装されてもよい。いくつかの実施形態は、例として、スマートフォンとして実装されたモバイルコンピューティングデバイスとして説明されてもよいが、他の実施形態が同様に他の有線または無線のモバイルコンピューティングデバイスを用いて実装され得ると認識されてもよい。
図9に示されるように、小型フォームファクタデバイス900は、筐体902、ディスプレイ904、入出力(I/O)デバイス906、およびアンテナ908を備えてもよい。小型フォームファクタデバイス900は、さらに、アイテム間移動特徴912を有してもよい。ディスプレイ904は、モバイルコンピューティングデバイスに適切な情報を表示するための、任意の適当なディスプレイユニット910を有してもよい。I/Oデバイス906は、モバイルコンピューティングデバイスへ情報を入力するための任意の適当なI/Oデバイスを含んでもよい。例えば、I/Oデバイス906として、アルファニューメリックキーボード、テンキー、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロホン、スピーカー、音声認識デバイスおよびソフトウェア、またはその他を挙げることが可能である。情報もマイクロホン経由で小型フォームファクタデバイス900に入力されてもよい。そのような情報は、音声認識デバイスによってデジタル化されてもよい。
図10は、ビデオチャットデータプロセッシングのコードを格納する、有形の持続性コンピュータ可読媒体1000を示すブロック図である。有形の持続性コンピュータ可読媒体1000は、コンピュータバス1004越しにプロセッサ1002によってアクセスされてもよい。さらに、有形の持続性コンピュータ可読媒体1000は、本明細書中に説明された方法を行なうようにプロセッサ1002に対して指示するコードを含んでもよい。
図10に示されるように、本明細書中で議論される様々なソフトウェア構成要素は、1または複数の有形の持続性コンピュータ可読媒体1000に格納されてもよい。例えば、符号化モジュール1006は、画像データの符号化をグラフィックスサブシステムに行わせてもよい。復号化モジュール1008は、ネットワークから受信された入力データパケットの復号化をグラフィックスサブシステムに行わせてもよいもよい。後処理モジュールはグラフィックスサブシステムに復号化されたビデオデータの後処理をグラフィックスサブシステムに行わせてもよい。さらに、レンダリングモジュールは、ビデオデータのレンダリングをグラフィックスサブシステムに行わせるために用いられてもよい。
図10のブロック図は、有形の持続性コンピュータ可読媒体1000が図10に示される構成要素をすべて含むように示すことを意図されない。さらに、有形の持続性コンピュータ可読媒体1000は、具体的な実施態様の詳細に応じて、図10に示さない任意の数の追加的な構成要素を含んでもよい。実施例1
グラフィックスプロセッシングユニットは、本明細書中に説明される。グラフィックスプロセッシングユニットは、デコーダを有する。デコーダは、入力データストリームからのビデオデータストリームを復号化する。グラフィックスプロセッシングユニットは、さらに、後処理プロセッサを有する。後処理プロセッサは、復号化されたビデオデータストリームの後処理を行なう。加えて、グラフィックスプロセッシングユニットはレンダラを有する。レンダラは、後処理されたビデオデータストリームをレンダリングし、ビデオチャットセッション中にビデオチャットアプリケーションから無効なビデオデータストリームを破棄する。
デバイスドライバは、入力データからのビデオデータストリームがデコーダに送信され、かつ無効なビデオストリームがビデオチャットアプリケーションに送信されるように、ビデオチャットセッションを検知してもよい。入力データストリームは、ビデオデータストリームとオーディオデータストリームを含んでもよい。また、ビデオチャットアプリケーションは、オーディオデータストリームと無効なビデオデータストリームとを受信してもよい。デコーダは、ビデオチャットアプリケーションのコーデックによってビデオデータストリームを復号化してもよい。加えて、復号化されたデータストリームを後処理することがビデオデータストリームに対する任意の画像改良を含んでもよい。さらに、ヒントは、新しいビデオチャットセッションを検知するために用いられてもよい。実施例2
システムは、本明細書中に説明される。システムはエンコーダを有し、またエンコーダは画像データの符号化をおこなう。システムは、さらに、マルチプレクサを有する。また、マルチプレクサは、ビデオチャットセッション中にビデオチャットアプリケーションからのデータパケットによって、符号化された画像データをリパッケージする。加えて、システムはネットワークロジックを有する。また、ネットワークロジックはネットワークを介してリパッケージされたデータパケットを送信する。
エンコーダは、ビデオチャットアプリケーションのコーデックによってビデオデータストリームを符号化してもよい。画像キャプチャデバイスは画像データをキャプチャし、その画像データをエンコーダへ送信してもよい。画像キャプチャデバイスは、さらに、ビデオチャットアプリケーションへ無効な画像データを送信してもよい。ビデオチャットアプリケーションからのデータパケットは、ビデオチャットセッションからの無効な画像データおよびオーディオデータを含んでもよい。レンダラは、ビデオチャットセッション中にビデオチャットアプリケーションを用いて、画像データをレンダリングしてもよい。ヒントは、新しいビデオチャットセッションを検知ために用いられてもよい。実施例3
システムは、本明細書中に説明される。システムは、ディスプレイと、無線と、命令を格納してディスプレイに通信可能に結合したメモリとを備える。システムは、さらに、無線およびメモリに通信可能に結合したプロセッサを有し、プロセッサが命令を実行する場合、プロセッサはアプリケーションによってビデオチャットセッションを検知する。プロセッサは、さらに、ネットワークを介して送信される画像データを符号化する。ここで、グラフィックスサブシステムは画像キャプチャデバイスからの画像データを符号化し、アプリケーションは画像キャプチャデバイスから無効な画像データを受信する。加えて、プロセッサは、ネットワークから受信された入力データパケットを復号化する。ここで、ネットワークロジックは、入力データパケットからの符号化されたビデオデータをリッピングし、復号化されるグラフィックスサブシステムへ符号化されたビデオデータを送信する。また、ネットワークロジックは、アプリケーションへ無効なビデオデータを送信する。プロセッサは、グラフィックスプロセッシングユニットであってもよい。加えて、システムはシステムオンチップ(SOC)であってもよい。さらに、符号化機能および復号化機能は、アプリケーションの代わりにプロセッサによって実行されてもよい。実施例4
プロセッサに指示するコードを有する有形の持続性コンピュータ可読媒体は、本明細書中に説明される。コードは、ネットワークを介して送信される画像データを符号化するようにプロセッサに指示してもよい。ここで、プロセッサは、ビデオチャットアプリケーションの代わりに画像データを符号化する。コードは、さらに、ネットワークから受信された入力データパケットを復号化するようにプロセッサに指示してもよい。ここで、符号化された画像データは入力データパケットからリッピングされ、復号化されるべくプロセッサに送信される。
画像データは、画像キャプチャデバイスから受信されてもよい。加えて、プロセッサが画像データを符号化する場合、ビデオチャットアプリケーションは無効なビデオデータを符号化してもよい。プロセッサが符号化された画像データを受信する場合、ビデオチャットアプリケーションは無効なデータパケットを受信してもよい。
先述された例における特性は、1または複数の実施形態のいかなるところでも用いてもよいと理解される。例えば、上記のコンピューティングデバイスの選択的な特徴の全ても、本明細書中に説明された方法またはコンピュータ可読媒体のいずれかに関して実装されてもよい。さらに、実施形態を説明するべくフローチャートおよび/または状態図を本明細書中で用いてもよいが、本技術はこれらの図またはそれに対応した本明細書中の説明に限定されるものではない。例えば、フローは各々の図示されたボックスまたは状態を通って、あるいは本明細書に例示または説明された順序と全く同じに、移動する必要はない。
本技術は、本明細書中に挙げられた特定の詳細に制限されない。実際に、この開示の利益を有する当業者は、上記の説明および図面から多くの他の変形が本技術の範囲内でなされてもよいことを理解するであろう。したがって、以下の特許請求の範囲には本技術の範囲を画定するあらゆる変更が包含される。
本実施形態の例を下記の各項目として示す。
[項目1]
入力データストリームからビデオデータストリームを復号化するデコーダと、
前記復号化されたビデオデータストリームの後処理を実行する後処理プロセッサと、
ビデオチャットセッション中に、前記後処理されたビデオデータストリームをレンダリングし、ビデオチャットアプリケーションからの無効なビデオデータストリームを破棄するレンダラと
を備えるグラフィックスプロセッシングユニット。
[項目2]
デバイスドライバをさらに備え、前記デバイスドライバは、入力データからの前記ビデオデータストリームが前記デコーダに送信され、かつ前記無効なビデオストリームが前記ビデオチャットアプリケーションに送信されるように、前記ビデオチャットセッションを検知する、項目1に記載のグラフィックスプロセッシングユニット。
[項目3]
前記入力データストリームは前記ビデオデータストリームとオーディオデータストリームとを含む、項目1または2に記載のグラフィックスプロセッシングユニット。
[項目4]
前記ビデオチャットアプリケーションはオーディオデータストリームと前記無効なビデオデータストリームとを受信する、項目1から3のいずれか一項に記載のグラフィックスプロセッシングユニット。
[項目5]
前記デコーダは前記ビデオチャットアプリケーションのコーデックにもとづいて前記ビデオデータストリームを復号化する、項目1から4のいずれか一項に記載のグラフィックスプロセッシングユニット。
[項目6]
前記復号化されたビデオデータストリームを後処理することは前記ビデオデータストリームに対する任意の画像改良を含む、項目1から5のいずれか一項に記載のグラフィックスプロセッシングユニット。
[項目7]
複数のヒントを用いて新しいビデオチャットセッションを検知する、項目1から6のいずれか一項に記載のグラフィックスプロセッシングユニット。
[項目8]
画像データを符号化するエンコーダと、
ビデオチャットセッション中にビデオチャットアプリケーションからのデータパケットによって符号化された画像データをリパッケージするマルチプレクサと、
前記リパッケージされたデータパケットをネットワークを介して送信するネットワークロジックと
を備えるシステム。
[項目9]
前記エンコーダは、前記ビデオチャットアプリケーションのコーデックにもとづいてビデオデータストリームを符号化する、項目8に記載のシステム。
[項目10]
画像キャプチャデバイスをさらに備え、前記画像キャプチャデバイスは前記画像データをキャプチャし、前記画像データを前記エンコーダへ送信する、項目8または9に記載のシステム。
[項目11]
画像キャプチャデバイスは、前記ビデオチャットアプリケーションへ無効な画像データを送信する、項目8から10のいずれか一項に記載のシステム。

[項目12]
前記ビデオチャットアプリケーションからの前記データパケットは、前記ビデオチャットセッションからの無効な画像データおよびオーディオデータを含む、項目8から11のいずれか一項に記載のシステム。
[項目13]
レンダラをさらに備え、
前記レンダラは前記ビデオチャットセッション中に前記ビデオチャットアプリケーションを用いて前記画像データをレンダリングする、項目8から12のいずれか一項に記載のシステム。
[項目14]
複数のヒントを用いて新しいビデオチャットセッションを検知する、項目8から13のいずれか一項に記載のシステム。
[項目15]
ディスプレイと、
無線と、
複数の命令を格納し、前記ディスプレイに通信可能に結合したメモリと、
通信可能に前記無線および前記メモリに結合したプロセッサとを備え、
前記プロセッサが前記複数の命令を実行する場合、前記プロセッサは、アプリケーションによってビデオチャットセッションを検知すること、ネットワークを介して送信される画像データを符号化すること、および前記ネットワークから受信された複数の入力データパケットを復号化すること
を行うもので、
前記画像データの符号化において、グラフィックスサブシステムは、画像キャプチャデバイスからの前記画像データを符号化し、前記アプリケーションは画像キャプチャデバイスから無効な画像データを受信し、
前記複数の入力データパケットの前記復号化において、ネットワークロジックは、前記複数の入力データパケットからの前記符号化された画像データをリッピングし、復号化されるように前記グラフィックスサブシステムへ前記符号化された画像データを送信し、前記ネットワークロジックは、無効な画像データを前記アプリケーションへ送信する、
システム。
[項目16]
前記プロセッサはグラフィックスプロセッシングユニットである、項目15に記載のシステム。
[項目17]
前記システムはシステムオンチップである、項目15または16に記載のシステム。
[項目18]
符号化機能および復号化機能は、前記アプリケーションの代わりに前記プロセッサによって実行される、項目15から17のいずれか一項に記載のシステム。
[項目19]
プロセッサを指示するコードを備えるプログラムであって、
前記コードは、
ネットワークを介して送信される画像データを符号化する手順であり、前記プロセッサがビデオチャットアプリケーションの代わりに前記画像データを符号化する手順と、
前記ネットワークから受信された複数の入力データパケットを復号化する手順であり、前記符号化された画像データが前記複数の入力データパケットからリッピングされ、復号化されるべく前記プロセッサに送信される手順と、
を備えるプログラム。
[項目20]
前記画像データは画像キャプチャデバイスから受信される、項目19に記載のプログラム。
[項目21]
前記プロセッサが前記画像データを符号化する場合、前記ビデオチャットアプリケーションは無効なビデオデータを符号化する、項目19または20に記載のプログラム。
[項目22]
前記プロセッサが符号化された画像データを受信する場合、前記ビデオチャットアプリケーションは複数の無効なデータパケットを受信する、項目19から21のいずれか一項に記載のプログラム。

Claims (15)

  1. 入力データストリームからのビデオデータストリームデコーダに送信し、無効なータストリームアプリケーションに送信するドライバと、
    前記ビデオデータストリームを復号化する前記デコーダと、
    前記復号化されたビデオデータストリームをレンダリングし、前記無効なータストリームを受信した前記プリケーションからの前記無効なータストリームを破棄または無視するレンダラと
    を備えるロセッシングユニット。
  2. 前記復号化されたビデオデータストリームの後処理を実行する後処理プロセッサを備え、
    前記ドライバは、ビデオチャットセッションを検知する
    請求項1に記載のプロセッシングユニット。
  3. 前記入力データストリームは前記ビデオデータストリームとオーディオデータストリームとを含む、請求項1または2に記載のロセッシングユニット。
  4. 前記プリケーションはオーディオデータストリームと前記無効なータストリームとを受信する、請求項1から3のいずれか一項に記載のロセッシングユニット。
  5. 前記デコーダは前記プリケーションのコーデックにもとづいて前記ビデオデータストリームを復号化する、請求項1からのいずれか一項に記載のロセッシングユニット。
  6. 前記復号化されたビデオデータストリームを後処理することは前記ビデオデータストリームに対する任意の画像改良を含む、請求項に記載のロセッシングユニット。
  7. 複数のヒントを用いて新しいビデオチャットセッションを検知する、請求項に記載のロセッシングユニット。
  8. 像データをキャプチャし、前記画像データをエンコーダへ送信し、かつプリケーションへ無効なータを送信する画像キャプチャデバイスと、
    前記画像データを符号化する前記エンコーダと、
    前記プリケーションからの前記無効なータを含むデータパケットを、前記符号化された画像データの挿入によってリパッケージするマルチプレクサと、
    前記リパッケージされたデータパケットをネットワークを介して送信するネットワークロジックと
    を備えるシステム。
  9. 前記エンコーダは、前記プリケーションのコーデックにもとづいてビデオデータストリームを符号化する、請求項に記載のシステム。
  10. 前記プリケーションからの前記データパケットは、前記無効なータおよびオーディオデータを含む、請求項またはに記載のシステム。
  11. レンダラをさらに備え、
    前記レンダラはプリケーションを用いて前記画像データをレンダリングする、請求項から10のいずれか一項に記載のシステム。
  12. 複数のヒントを用いて新しいビデオチャットセッションを検知する、請求項から11のいずれか一項に記載のシステム。
  13. プリケーションを含むコンピュータにおいて実行され、前記コンピュータのプロセッサを指示するコードを備えるプログラムであって、
    前記コードは、
    ネットワークを介して送信される画像データを符号化する手順であり、前記プロセッサが前記プリケーションの代わりに前記画像データを符号化する手順と、
    前記ネットワークから受信された複数の入力データパケットを復号化する手順であり、前記符号化された画像データが前記複数の入力データパケットからリッピングされ、復号化されるべく前記プロセッサに送信される手順と、
    を備え、
    前記プロセッサが前記画像データを符号化する場合、前記プリケーションは無効なータを符号化するプログラム。
  14. 前記画像データは画像キャプチャデバイスから受信される、請求項13に記載のプログラム。
  15. 前記プロセッサが符号化された画像データを受信する場合、前記プリケーションは複数の無効なデータパケットを受信する、請求項13または14に記載のプログラム。
JP2015257418A 2013-07-12 2015-12-28 ビデオチャットデータプロセッシング Expired - Fee Related JP6322834B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/940,883 2013-07-12
US13/940,883 US9232177B2 (en) 2013-07-12 2013-07-12 Video chat data processing

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014139916A Division JP5879609B2 (ja) 2013-07-12 2014-07-07 ビデオチャットデータプロセッシング

Publications (3)

Publication Number Publication Date
JP2016077001A JP2016077001A (ja) 2016-05-12
JP2016077001A5 JP2016077001A5 (ja) 2017-07-27
JP6322834B2 true JP6322834B2 (ja) 2018-05-16

Family

ID=51178747

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014139916A Active JP5879609B2 (ja) 2013-07-12 2014-07-07 ビデオチャットデータプロセッシング
JP2015257418A Expired - Fee Related JP6322834B2 (ja) 2013-07-12 2015-12-28 ビデオチャットデータプロセッシング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014139916A Active JP5879609B2 (ja) 2013-07-12 2014-07-07 ビデオチャットデータプロセッシング

Country Status (4)

Country Link
US (1) US9232177B2 (ja)
EP (1) EP2824930A1 (ja)
JP (2) JP5879609B2 (ja)
CN (1) CN104284129B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150228106A1 (en) * 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
CN104768063A (zh) * 2015-04-07 2015-07-08 天脉聚源(北京)教育科技有限公司 一种视频编码方法及装置
US20180007115A1 (en) * 2016-07-01 2018-01-04 Cisco Technology, Inc. Fog enabled telemetry embedded in real time multimedia applications
KR102651126B1 (ko) 2016-11-28 2024-03-26 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
CN108289185B (zh) * 2017-01-09 2021-08-13 腾讯科技(深圳)有限公司 一种视频通信方法、装置及终端设备
US20200186729A1 (en) * 2017-07-31 2020-06-11 Sony Corporation Image processing apparatus, image processing method, program, and remote communication system
US11032157B2 (en) 2019-05-16 2021-06-08 Microsoft Technology Licensing, Llc Adaptable real-time communications plugin for virtual desktop infrastructure solutions
US11165888B1 (en) * 2020-04-29 2021-11-02 Citrix Systems, Inc. Image acquisition device virtualization for remote computing
CN111447439B (zh) * 2020-05-18 2022-08-09 Oppo(重庆)智能科技有限公司 图像编码方法、图像编码装置及移动终端
CN111741343B (zh) * 2020-06-17 2022-11-15 咪咕视讯科技有限公司 视频处理方法及装置、电子设备
US12101323B2 (en) * 2020-12-23 2024-09-24 Acronis International Gmbh Systems and methods for protecting web conferences from intruders
CN114860440B (zh) * 2022-04-29 2023-01-10 北京天融信网络安全技术有限公司 Gpu显存管理方法及装置

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5602992A (en) * 1993-11-29 1997-02-11 Intel Corporation System for synchronizing data stream transferred from server to client by initializing clock when first packet is received and comparing packet time information with clock
JPH08195947A (ja) * 1994-11-19 1996-07-30 Casio Comput Co Ltd テレビ電話装置、データ伝送方法およびテレビ電話方式
US6415439B1 (en) * 1997-02-04 2002-07-02 Microsoft Corporation Protocol for a wireless control system
US6466701B1 (en) * 1997-09-10 2002-10-15 Ricoh Company, Ltd. System and method for displaying an image indicating a positional relation between partially overlapping images
JP3079081B2 (ja) * 1998-03-30 2000-08-21 沖電気工業株式会社 Mpeg2システムにおける文字多重放送伝送方式
US6829303B1 (en) * 1999-11-17 2004-12-07 Hitachi America, Ltd. Methods and apparatus for decoding images using dedicated hardware circuitry and a programmable processor
JP2002142192A (ja) * 2000-11-01 2002-05-17 Sony Corp 信号処理装置および方法、ならびに、記録装置および方法
US6677976B2 (en) * 2001-10-16 2004-01-13 Sprint Communications Company, LP Integration of video telephony with chat and instant messaging environments
US7451457B2 (en) * 2002-04-15 2008-11-11 Microsoft Corporation Facilitating interaction between video renderers and graphics device drivers
US7219352B2 (en) * 2002-04-15 2007-05-15 Microsoft Corporation Methods and apparatuses for facilitating processing of interlaced video images for progressive video displays
US7116894B1 (en) * 2002-05-24 2006-10-03 Digeo, Inc. System and method for digital multimedia stream conversion
US7405738B2 (en) * 2002-10-22 2008-07-29 Harris Canada Systems, Inc. System and method for generating and processing a stream of video data having multiple data streams
US7248590B1 (en) * 2003-02-18 2007-07-24 Cisco Technology, Inc. Methods and apparatus for transmitting video streams on a packet network
US7197751B2 (en) * 2003-03-12 2007-03-27 Oracle International Corp. Real-time collaboration client
JP2004289688A (ja) * 2003-03-24 2004-10-14 Nec Corp テレビ電話装置
GB0313720D0 (en) * 2003-06-13 2003-07-16 Electra Guide Ltd England An improved television system
US20050058307A1 (en) * 2003-07-12 2005-03-17 Samsung Electronics Co., Ltd. Method and apparatus for constructing audio stream for mixing, and information storage medium
US8027335B2 (en) 2004-05-05 2011-09-27 Prodea Systems, Inc. Multimedia access device and system employing the same
KR100608061B1 (ko) * 2004-07-12 2006-08-02 삼성전자주식회사 전송 스트림 생성을 위한 다중화 방법 및 그 장치
US7671893B2 (en) * 2004-07-27 2010-03-02 Microsoft Corp. System and method for interactive multi-view video
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US7965736B2 (en) * 2005-08-24 2011-06-21 Qualcomm Incorporated Transmission of multiplex protocol data units in physical layer packets
KR100773508B1 (ko) 2005-09-23 2007-11-06 엘지전자 주식회사 이동 통신 단말기의 호 설정 방법
EP1982485B1 (en) * 2006-02-10 2019-07-24 III Holdings 2, LLC System and method for connecting mobile devices
US8233527B2 (en) 2007-05-11 2012-07-31 Advanced Micro Devices, Inc. Software video transcoder with GPU acceleration
US8605779B2 (en) * 2007-06-20 2013-12-10 Microsoft Corporation Mechanisms to conceal real time video artifacts caused by frame loss
KR20090004658A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US20090092234A1 (en) * 2007-10-05 2009-04-09 Apple Inc. Answering video chat requests
US8171123B2 (en) * 2007-12-04 2012-05-01 Sony Computer Entertainment Inc. Network bandwidth detection and distribution
US20090184977A1 (en) * 2008-01-18 2009-07-23 Qualcomm Incorporated Multi-format support for surface creation in a graphics processing system
CN101262610B (zh) * 2008-03-27 2011-05-18 复旦大学 一种便携式终端上avs-ts节目的播放系统
KR20100136999A (ko) * 2008-04-11 2010-12-29 톰슨 라이센싱 시간 확장성을 이용하는 스태거캐스팅
US20090315886A1 (en) * 2008-06-19 2009-12-24 Honeywell International Inc. Method to prevent resource exhaustion while performing video rendering
US20100056273A1 (en) * 2008-09-04 2010-03-04 Microsoft Corporation Extensible system for customized avatars and accessories
US9060187B2 (en) * 2008-12-22 2015-06-16 Netflix, Inc. Bit rate stream switching
TWI471016B (zh) * 2009-05-11 2015-01-21 Mstar Semiconductor Inc 重建數位視訊資料流的方法與裝置
US9313513B2 (en) * 2009-06-10 2016-04-12 Texas Instruments Incorporated Detection of resynchronization markers when decoding an MPEG-4 bitstream
JP5521403B2 (ja) * 2009-06-23 2014-06-11 ソニー株式会社 情報処理装置とリソース管理方法およびプログラム
US8358379B1 (en) * 2009-07-31 2013-01-22 Pixelworks, Inc. Post processing displays with on-screen displays
US8744420B2 (en) * 2010-04-07 2014-06-03 Apple Inc. Establishing a video conference during a phone call
CN102215217B (zh) * 2010-04-07 2014-09-17 苹果公司 在通话期间建立视频会议
US8514263B2 (en) * 2010-05-12 2013-08-20 Blue Jeans Network, Inc. Systems and methods for scalable distributed global infrastructure for real-time multimedia communication
US8533166B1 (en) * 2010-08-20 2013-09-10 Brevity Ventures LLC Methods and systems for encoding/decoding files and transmission thereof
US9628755B2 (en) * 2010-10-14 2017-04-18 Microsoft Technology Licensing, Llc Automatically tracking user movement in a video chat application
US8988558B2 (en) * 2011-04-26 2015-03-24 Omnivision Technologies, Inc. Image overlay in a mobile device
US9247157B2 (en) * 2011-05-13 2016-01-26 Lattice Semiconductor Corporation Audio and video data multiplexing for multimedia stream switch
JP5629642B2 (ja) * 2011-05-19 2014-11-26 株式会社ソニー・コンピュータエンタテインメント 動画像撮影装置、情報処理システム、情報処理装置、および画像データ処理方法
US8803991B2 (en) * 2011-10-12 2014-08-12 Cisco Technology, Inc. Snapshot capture in video stream
CN102378067B (zh) * 2011-11-21 2013-10-02 武汉大学 一种鲁棒性的移动视频解码方法
US8888590B2 (en) * 2011-12-13 2014-11-18 Empire Technology Development Llc Graphics render matching for displays
US20140006977A1 (en) * 2012-03-30 2014-01-02 Karriem Lateff Adams Integrated social network internet operating system and management interface
US8913099B2 (en) * 2012-05-02 2014-12-16 Blackberry Limited Systems and methods to manage video chat contacts
US9241131B2 (en) * 2012-06-08 2016-01-19 Samsung Electronics Co., Ltd. Multiple channel communication using multiple cameras
US9191417B2 (en) * 2012-06-28 2015-11-17 Microsoft Technology Licensing, Llc Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
US9424660B2 (en) * 2012-08-07 2016-08-23 Intel Corporation Media encoding using changed regions
US8984540B2 (en) * 2012-09-14 2015-03-17 Taifatech Inc. Multi-user computer system
US20140098185A1 (en) * 2012-10-09 2014-04-10 Shahram Davari Interactive user selected video/audio views by real time stitching and selective delivery of multiple video/audio sources
US9137488B2 (en) * 2012-10-26 2015-09-15 Google Inc. Video chat encoding pipeline
US20140176548A1 (en) * 2012-12-21 2014-06-26 Nvidia Corporation Facial image enhancement for video communication
US9154396B2 (en) * 2013-03-14 2015-10-06 Arris Technology, Inc. Passive measurement of available link bandwidth

Also Published As

Publication number Publication date
US20150015663A1 (en) 2015-01-15
CN104284129B (zh) 2018-06-29
CN104284129A (zh) 2015-01-14
JP5879609B2 (ja) 2016-03-08
JP2015019365A (ja) 2015-01-29
US9232177B2 (en) 2016-01-05
JP2016077001A (ja) 2016-05-12
EP2824930A1 (en) 2015-01-14

Similar Documents

Publication Publication Date Title
JP6322834B2 (ja) ビデオチャットデータプロセッシング
KR101634500B1 (ko) 미디어 작업부하 스케줄러
EP3046331B1 (en) Media control method and system based on cloud desktop
US9264478B2 (en) Home cloud with virtualized input and output roaming over network
US10257510B2 (en) Media encoding using changed regions
CN112394895B (zh) 画面跨设备显示方法与装置、电子设备
WO2022100304A1 (zh) 应用内容跨设备流转方法与装置、电子设备
US10045079B2 (en) Exposing media processing features
RU2573213C2 (ru) Схемы многопланового видеокодирования
JP2016531502A (ja) 低電力画像圧縮及び表示のための技術
US9955197B2 (en) Encrypted screencasting
CN116774961A (zh) 无线可编程媒体处理系统
TWI619383B (zh) 無線顯示雲端模式
US9019340B2 (en) Content aware selective adjusting of motion estimation
CN114697731B (zh) 投屏方法、电子设备及存储介质
TWI539795B (zh) 使用變化區域的媒體編碼
US20240273844A1 (en) Augmented reality streaming device, method, and system interoperating with edge server

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180313

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180316

R150 Certificate of patent or registration of utility model

Ref document number: 6322834

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees