多人数参加型テレビ会議における映像処理
【課題】多人数参加型テレビ会議システムに於て、画像伝送での計算資源及び帯域幅の減少を図る。
【解決手段】システムは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。また、いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像になる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【解決手段】システムは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。また、いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像になる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多人数参加型テレビ会議における映像処理に関する。
【背景技術】
【0002】
汎用コンピュータの普及に伴い、パーソナルコンピュータ又はビジネスコンピュータを介してテレビ会議を行なうことに対する要求が大きくなってきた。しかし、そのような会議を確立するには、参加者間のデータ転送方法において大きな課題がある。従来の解決策では大量のデータの交換を必要とし、それにより多くの計算資源及び多くの帯域幅が消費される。
【0003】
それら資源及び帯域幅に制限があるため、家及びオフィスで使用するために容易に入手可能である汎用コンピュータは、テレビ会議を効果的及び安価に実行できなかった。従って、従来技術において、テレビ会議の参加者間でデータを送信する効率的な方法を使用するテレビ会議アーキテクチャが必要とされる。そのような方法により、テレビ会議は一般に利用可能なネットワーク接続を介して行なわれる。
【発明の概要】
【課題を解決するための手段】
【0004】
いくつかの実施形態は、多人数参加型テレビ会議を確立するアーキテクチャを提供する。このアーキテクチャは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像となる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【0005】
中央配信装置及び参加者のコンピュータは、種々の形態をとることができる。換言すると、それらコンピュータは、スタンドアロンデスクトップ、ラップトップ及び/又はハンドヘルドコンピュータ、あるいは民生電子機器又は通信装置、ホームメディアセンタ、ハブ等の任意の種類の装置に組み込まれてもよい。
【図面の簡単な説明】
【0006】
添付の請求の範囲において、本発明の新しい特徴を示す。しかし、説明の目的でいくつかの実施形態を以下の図において示す。
【図1】図1は、本発明のいくつかの実施形態のテレビ会議アーキテクチャの一例を示す図である。
【図2】図2は、いくつかの実施形態が多人数参加型テレビ会議において映像コンテンツを交換する方法を示す図である。
【図3】図3は、いくつかの実施形態が多人数参加型テレビ会議において映像コンテンツを交換する方法を示す図である。
【図4】図4は、1人の参加者のディスプレイ上における参加者の画像の好適な配置を示す図である。
【図5】図5は、本発明のいくつかの実施形態のテレビ会議アプリケーションのソフトウェアコンポーネントを示す図である。
【図6】図6は、本発明のいくつかの実施形態の焦点位置モジュールを示す図である。
【図7】図7は、いくつかの実施形態の焦点位置モジュールが生成する合成映像データ及び映像ストリームを示す図である。
【図8】図8は、いくつかの実施形態の焦点位置映像処理を示すフローチャートである。
【図9】図9は、本発明のいくつかの実施形態における差分比較器を有する焦点位置モジュールを示す図である。
【図10】図10は、異なる時間に焦点位置符号器に到着する新しいフレームの例を示す図である。
【図11】図11は、非テレビ会議アプリケーションにおいて冗長フレームを回避するアプリケーションを示す図である。
【図12】図12は、いくつかの実施形態の非焦点位置モジュールを示す図である。
【図13】図13は、いくつかの実施形態の非焦点位置モジュールの復号化動作を示すフローチャートである。
【図14】図14は、いくつかの実施形態における差分比較器を有する非焦点位置モジュールを示す図である。
【図15】図15は、いくつかの実施形態における参加者のサブフレームの焦点位置の2×2の位置付けを示す図である。
【図16】図16は、いくつかの実施形態において、焦点位置がいくつかの符号器を使用して、各参加者が受信する合成画像からその参加者自身の画像を削除する方法を示す図である。
【図17】図17は、いくつかの実施形態において、合成ビデオ画像を符号化するために符号器が利用するステップを示すフローチャートである。
【図18】図18は、動きベクトルに対して許可される探索ウィンドウの一例を示す図である。
【図19】図19は、本発明のいくつかの実施形態において、許可されない動きベクトル探索ウィンドウの一例を示す図である。
【図20】図20は、現在のサブフレームに適合するようにトリミングされる動きベクトルに対する探索ウィンドウの一例を示す図である。
【図21】図21は、現在のサブフレームに適合するように移動される動きベクトルに対する探索ウィンドウの一例を示す図である。
【図22】図22は、いくつかの実施形態において、動きベクトル探索ウィンドウが現在のサブフレームに適合するように調整される方法を示すフローチャートである。
【図23】図23は、サブフレームの一部分における整数画素及び小数画素位置の一例を示す図である。
【図24】図24は、いくつかの実施形態において、符号器が動きベクトルの対象となる位置を制約する方法を示すフローチャートである。
【図25】図25は、いくつかの実施形態において、動きベクトル境界バッファ領域を示す図である。
【図26】図26は、いくつかの実施形態において、符号器がマクロブロック内予想に与える制限を示す図である。
【図27】図27は、いくつかの実施形態において、非ブロック化フィルタが使用する画素のグループに対して与えられる制限を示す図である。
【図28】図28は、いくつかの実施形態が非ブロック化フィルタを同一サブフレームの画素に制限する方法を示すフローチャートである。
【図29】図29は、いくつかの実施形態において、合成フレームのサブフレームの異なる処理を示す図である。
【図30】図30は、いくつかの実施形態において、合成フレームのサブフレームの異なる処理を示す図である。
【図31】図31は、いくつかの実施形態において、同一フレーム内のサブフレームの異なる処理を示す図である。
【図32】図32は、帯域幅を節約するために、いくつかの実施形態における長期参照フレームの用途を示す図である。
【図33】図33は、本発明の一実施形態を実現するのに使用されるコンピュータシステムを示す図である。
【発明を実施するための形態】
【0007】
以下において、説明の目的で多くの詳細を示す。しかし、本発明は、それら特定の詳細を使用せずに実現されてもよいことが当業者には理解されるだろう。他の例において、不必要な詳細により本発明の説明を曖昧にしないように、周知の構成及び装置がブロック図の形態で示される。
【0008】
いくつかの実施形態は、多人数参加型テレビ会議を確立するアーキテクチャを提供する。このアーキテクチャは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像となる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【0009】
本発明のいくつかの詳細な実施形態を以下に説明する。それら実施形態において、中央配信装置はテレビ会議の1人の参加者のコンピュータであり、中央配信装置との間で送信される画像は映像フレームである。他の実施形態が異なる方法で実現されることは、当業者には理解されるだろう。例えば、いくつかの実施形態における中央配信装置は、テレビ会議の任意の参加者のコンピュータではない。また、いくつかの実施形態において、中央配信装置との間で送信される画像は映像フレームではない(例えば画像は、フレームを含むフィールドであってもよく、あるいは他のビデオ画像表現であってもよい)。
【0010】
I.概要
図1は、本発明のいくつかの実施形態のテレビ会議アーキテクチャ100の一例を示す。このアーキテクチャは、複数の参加者がテレビ会議に参加することを可能にする。図1に示す例において、4人の参加者A、B、C及びDは、各々の4つのコンピュータ105〜120及びそれらコンピュータを接続するネットワーク(不図示)を介してテレビ会議に参加する。それらコンピュータを接続するネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、複数のネットワークのうちの1つのネットワーク(例えば、インターネット)等の任意のネットワークである。
【0011】
テレビ会議中、1人の参加者(この例においては参加者D)のコンピュータ105は、図1に示すように音声/映像コンテンツの中央配信装置としての役割を果たす。この中央配信装置125は、以下において多人数参加型会議の焦点位置と呼ばれる。他の参加者のコンピュータは、以下において非焦点マシン又は非焦点コンピュータと呼ばれる。
【0012】
以下の説明は、焦点及び非焦点コンピュータの映像動作に焦点を当てる。コンピュータの音声動作は、米国特許出願第11/118,555号「Audio Processing in aMulti-Participant Conference」Attorney DocketNo. APLE.P0087において更に説明される。更に、米国特許出願第11/118,931号「Multi-ParticipantConferenceSetup」Attorney Docket No. APLE.P0084は、いくつかの実施形態が図1に示すような焦点位置アーキテクチャを介して多人数参加型テレビ会議をセットアップする方法を説明する。これら双方の特許出願を引用することによってその内容をここに合体する。
【0013】
音声/映像コンテンツの中央配信装置として、焦点位置125は、各参加者からビデオ画像を受信し、それら画像を合成及び符号化し、合成画像を各非焦点マシンに送信する。図2は、図1の4人の参加者の例に対する画像の交換の一例を示す。特に図2は、各参加者から1つの映像フレーム215〜225を受信する焦点位置125を示す。焦点位置125は、各受信フレーム及び焦点位置参加者Dのフレーム235を含む合成フレーム230を受信画像215〜225から生成する。焦点位置125は、合成フレーム230を各非焦点マシン110、115及び120に送信する。
【0014】
図2に示す例において、特定の各非焦点参加者に送信される合成フレーム230は、その特定の非焦点参加者の映像フレームを含む。しかし、いくつかの実施形態において、焦点位置は、焦点位置が特定の非焦点参加者に送信する合成画像からその特定の非焦点参加者の画像を除去する。帯域幅を節約するために、焦点位置125は各参加者自身の画像を対応する合成画像から除去する。
【0015】
図3は、図2に示す例に対するその除去の一例を示す。特に図3は、(1)参加者Aに対して、参加者A自身の画像215を有さない合成画像330と、(2)参加者Bに対して、参加者B自身の画像220を有さない合成画像335と、(3)参加者Cに対して、参加者C自身の画像225を有さない合成画像340とを示す。
【0016】
図3は、いくつかの実施形態が、非焦点参加者自身の画像の代わりに、合成画像330の非焦点参加者の画像の位置に空フィールドフラグ345を挿入することを示す。このフラグは、非焦点参加者自身の画像に対応するサブ画像が無いことを示す。このインディケータ345のサイズが非焦点参加者の画像のサイズより非常に小さいため、特定の非焦点参加者の合成画像からその参加者の画像を除去することにより、合成画像が使用する帯域幅の量は減少する。いくつかの実施形態は、空フィールドフラグ345を使用せず、特定の非焦点参加者に送出される合成画像からその特定の非焦点参加者の画像を単純に除去する。例えばいくつかの実施形態において、各画像の各符号化マクロブロックがその位置を表す識別子を有するため、非焦点位置モジュールの復号器は、どのように残りの符号化サブ画像でビデオ画像を構成するかを決定する。
【0017】
各非焦点マシンが符号化合成画像を受信すると、非焦点マシンは、合成画像を復号化し、合成画像の各サブ画像を抽出し、復号化され且つ抽出された画像をディスプレイ上に表示する。図4は、テレビ会議に4人の参加者が存在する場合の表示の一例を示す。図4に示すように、3人の他の参加者の画像405〜415は、参加者のコンピュータディスプレイ400に水平方向に表示される。ローカル参加者自身の画像420は、他の参加者の画像405〜415に対して小さなサイズで表示され、ディスプレイ400の下部に位置付けられる。
【0018】
いくつかの実施形態は、焦点及び非焦点位置動作を実行できるテレビ会議アプリケーションにより実現される。図5は、そのような1つのアプリケーションに対するソフトウェアアーキテクチャを示す。特に図5は、焦点位置モジュール510及び非焦点位置モジュール515の2つのモジュールを有するテレビ会議アプリケーション505を示す。それらモジュール510及び515、並びにテレビ会議アプリケーション505は、テレビ会議の参加者のコンピュータのオペレーティングシステム520上で動作する。
【0019】
多人数参加型テレビ会議中、テレビ会議アプリケーション505は、会議の焦点位置としての役割を果たす場合には焦点位置モジュール510を使用し、焦点位置としての役割を果たさない場合には非焦点位置モジュールを使用する。テレビ会議アプリケーション505が多人数参加型テレビ会議の焦点位置である場合、焦点位置モジュール510は焦点位置映像処理動作を実行する。一方、アプリケーション505が会議の焦点位置でない場合、非焦点位置モジュール515は非焦点位置映像処理動作を実行する。いくつかの実施形態において、焦点位置モジュール510及び非焦点位置モジュール515はある特定のリソースを共有する。
【0020】
本明細書の節IIにおいて焦点位置モジュール510を説明し、節IIIにおいて非焦点位置モジュール515を説明する。
【0021】
II.焦点位置モジュール
図6は、本発明のいくつかの実施形態の焦点位置モジュール510を示す。この例において、3人の非焦点参加者及び1人の焦点参加者の4人の参加者を含むテレビ会議の間の焦点位置モジュール510を示す。特に図6は、3つの復号器620〜630、3つの中間バッファ635〜645、3つのリサイザ647〜649、ローカル画像取り込みモジュール651、フレームレートコントローラ652、合成画像バッファ655、符号器660、冗長性除去器665、パースペクティブ調整器675及びローカル画像コントローラ685を利用する、焦点位置モジュール510を示す。
【0022】
復号器620〜630、中間バッファ635〜645及びリサイザ647〜649は、3つの映像復号化パイプラインから合成画像バッファ655の3つのセクション657〜659を形成する。それら3つの映像復号化パイプラインにより、焦点位置モジュール510は、テレビ会議中に最大3人の参加者からの映像信号を復号化及び合成できる。
【0023】
特に、各復号器620、625又は630は、テレビ会議中に1つの非焦点コンピュータからの映像信号を復号化する役割を果たす。図1に示す例に対して、図6は、参加者Aのコンピュータから映像信号を受信する復号器620、参加者Bのコンピュータから映像信号を受信する復号器625及び参加者Cのコンピュータから映像信号を受信する復号器630を示す。受信フレームの復号化後、各復号器620、625又は630は、中間バッファ635、640又は645に復号化フレームを格納する。いくつかの実施形態において、各中間バッファは焦点位置コンピュータのメモリ中の場所である。
【0024】
各リサイザ647、648又は649は、特定のフレームサンプリングレートで(1)対応する中間バッファに格納されるフレームを検索し、(2)必要に応じてそのフレームをサイズ変更し、(3)合成画像バッファ655の対応するセクションにフレームを格納する。例えばリサイザ648は、中間バッファ640から参加者Bの復号化フレームを検索し、必要に応じて検索したフレームをサイズ変更し、そのフレームを合成バッファセクション658に格納する。
【0025】
フレームレートコントローラ652は、リサイザ647〜649が中間バッファ635〜645からフレームを検索する際のフレームサンプリングレートを規定する。フレームレートコントローラ652は、システム帯域幅、焦点位置コンピュータの計算資源、テレビ会議の参加者数等を含む種々の因子に基づいてそのレートを判定する。コントローラ652がリサイザ647〜649に与えるフレームサンプリングレートで、フレームレートコントローラ652は、ローカル画像取り込みモジュール651に対してフレームを合成画像バッファ655のセクション656に格納するように指示する。それら格納されたフレームは、テレビ会議中に焦点位置コンピュータを使用しているテレビ会議参加者の画像である。それら画像は、焦点位置コンピュータにおいてカメラ650及び画像取り込みモジュール651により取り込まれる。いくつかの実施形態において、テレビ会議の状態の変化に従って、フレームレートコントローラ652はテレビ会議中に特定のフレームレートを変更する。
【0026】
上述のように、リサイザ647〜649は、コントローラ652から受信するフレームレートに基づいてバッファ635〜645からフレームを検索する。その検索したフレームを供給した非焦点コンピュータがそのフレームに対する合成バッファセクションのサイズと異なるサイズでそのフレームを供給した場合、リサイザは、検索したフレームを合成画像バッファに格納する前にそのフレームをサイズ変更する。例えば、符号化中に帯域幅又は計算資源を節約するために、非焦点コンピュータはより小さいフレームを符号化及び送信してもよい(すなわち、粗粒度でフレームを符号化し、各フレームに対してより少ない符号化コンテンツを含むパケットを送信する)。
【0027】
更に上述のように、リサイザ647〜649は、合成画像バッファ655の対応するセクション657〜659に潜在的にサイズ変更されたフレームを格納する。いくつかの実施形態において、合成画像バッファ655は、焦点位置コンピュータのメモリ中の場所であり、そのバッファの各セクション656〜659は、メモリのその場所における連続した論理セクションである。
【0028】
符号器660は、コントローラ652が規定するサンプリングレートで、合成画像バッファに格納される合成フレームを符号化する。符号器は、合成画像バッファ655の他のセクションに格納されるサブフレームに関係なく、各セクション656、657、658又は659に格納されるサブフレームを符号化する。
【0029】
これを示すために、図7は合成フレームの符号化を要約する図を提示する。特に図7は、合成画像バッファ655の4つのセクション656〜659を示す。その符号化のために、セクション656〜659のサブフレームは画素のセットに分割される。例えばいくつかの実施形態において、各サブフレームはマクロブロックのセットに分割され、それらは他のフレームのマクロブロックを参照せずにイントラエンコード(intra-encode)されるか又は別のフレームのマクロブロックを参照してインターエンコード(inter-encode)される。図7は、セクション656のサブフレームをいくつかのマクロブロック705〜710に分割すること、セクション657のサブフレームをいくつかのマクロブロック715〜720に分割すること、セクション658のサブフレームをいくつかのマクロブロック725〜730に分割すること及びセクション659のサブフレームをいくつかのマクロブロック735〜740に分割することを示す。
【0030】
上述のように、各サブフレームの符号化が他のサブフレームに依存しないように(すなわち、1つのセクションの符号化が各セクションの境界を越えて映像データを使用しないように)、符号器660は各セクション656、657、658又は659の各サブフレームの符号化を分離する。例えば、セクション657の参加者Aのサブフレームのマクロブロックの符号化は、セクション658の参加者Bのサブフレームのマクロブロックの符号化に依存しない。この符号化を以下に更に説明する。
【0031】
合成フレームの符号化後、符号器660は、別個のセクションの各参加者の符号化映像データを含む(すなわち、別個の非インターリーブセクションの種々の参加者の符号化映像データを含む)符号化映像ストリームを冗長性除去器に供給する。例えば図7は、合成フレームのイントラエンコード又はインターエンコードされたマクロブロックの各々に対する符号化データを含む符号化映像ストリーム750を示す。図7に示すように、この合成ストリーム750において、各サブフレームに対する符号化データは他のサブフレームの符号化データとインターリーブされない。
【0032】
符号化ストリームの非インターリーブ構成により、冗長性除去器は、特定の非焦点参加者に送信される映像ストリームからその特定の非焦点参加者の映像データを迅速に除去できる。例えば図7は、(1)参加者Aに対して、参加者Aの符号化映像データを空フィールドフラグ760と置換した映像ストリーム755と、(2)参加者Bに対して、参加者Bの符号化映像データを空フィールドフラグ770と置換した映像ストリーム765と、(3)参加者Cに対して、参加者Cの符号化映像データを空フィールドフラグ780と置換した映像ストリーム775とを示す。上述のように、いくつかの実施形態は、そのような空フィールドフラグを採用せず、非焦点モジュール復号器に依存して空のサブフレームを自動的に識別する。
【0033】
冗長性除去器が各参加者の映像ストリームからその参加者の冗長画像データを除去すると、冗長性除去器は参加者の映像ストリームをその参加者に送信する。従って、図6は3人の非焦点参加者A、B及びCに3つの映像ストリームを送出する冗長性除去器665を示す。
【0034】
図6は、焦点位置モジュール510のパースペクティブ調整器675が合成画像バッファ655の焦点位置サブ画像656から焦点位置参加者の画像を検索することを更に示す。パースペクティブ調整器675は、中間バッファ635、640及び645から非焦点参加者のサブ画像を検索する。調整器675は、図4に示す透視図に対して合成画像の各非焦点参加者のサブフレームを調整する。調整器675は、調整した合成フレームをローカル画像コントローラに供給し、ローカル画像コントローラは、焦点位置コンピュータの表示装置695に表示するために最終的な合成画像を描画する。
【0035】
テレビ会議中、焦点位置モジュール510の各構成要素は、上述の動作を反復的に実行する。図8は、いくつかの実施形態において、焦点位置モジュール510のそれら反復動作を概念的に示す処理800を提示する。いくつかの実施形態において、焦点位置モジュール510は、n人の参加者を含むテレビ会議に対して処理800を実行する。ここで、nは3以上の任意の数字である。
【0036】
図8に示すように、焦点位置処理800は、まずテレビ会議に関する1つ以上のパラメータを定義する(805)。805において、種々の実施形態が種々のパラメータを定義する。そのようなパラメータの例には、各非焦点コンピュータの符号器により使用される符号化の種類、各非焦点コンピュータにより送信されるフレームのサイズ、焦点位置コンピュータにより使用される符号化の種類、合成画像バッファのサイズ等が含まれる。上述の本願に取り込まれた米国特許出願「Multi-Participant ConferenceSetup」は、それらパラメータが、いかにして設定され且つ場合によってはテレビ会議中にいかにして再設定されるかを説明する。
【0037】
次に、焦点位置モジュールは、各非焦点コンピュータからフレームを受信する(810)。焦点位置モジュール510の復号器(例えば、復号器620、625又は630)は、受信フレームを復号化し(815)、復号化フレームを中間画像バッファ(例えば、バッファ635、640又は645)に格納する。特定の非焦点コンピュータからのフレームを復号化するために、復号器は、特定の非焦点コンピュータが使用する符号化に適切な復号化アルゴリズムを使用する。これら符号化及び/又は復号化アルゴリズムは、処理800の初期化動作805の間に特定される。いくつかの実施形態において、上述の取り込まれた特許出願において説明したように、テレビ会議の状態の変化に従って、それらアルゴリズムはテレビ会議中に再度特定されてもよい。
【0038】
815において、焦点位置モジュール510は、リサイザが中間バッファをサンプリングする(すなわち、3人の非焦点参加者の場合には、中間バッファ、即ちバッファ635〜645から復号化フレームを検索する)時点であるかを判定する(817)。上述のように、サンプリングレートはフレームレートコントローラ652により設定される。
【0039】
リサイザが中間バッファをサンプリングする時点ではないと処理800が判定した場合(817)、818に移る。818において、新しいフレームが非焦点参加者から受信されたかを判定する。受信されたと判定した場合、815に移り、受信フレームを復号化し且つ適切な中間画像バッファに復号化フレームを格納する。一方、フレームを受信していないと判定した場合(818)、817に戻り、リサイザが中間バッファをサンプリングする時点であるかを判定する。
【0040】
リサイザが中間バッファをサンプリングする時点であると判定した場合(817)、リサイザ(例えば、リサイザ647〜649)は、中間バッファ(例えば、バッファ635〜645)から復号化フレームを検索し(820)、必要に応じてそれら検索したフレームをサイズ変更し、それらフレームを合成画像バッファ655に格納する。
【0041】
次の825において、ローカル画像取り込みモジュール651は、カメラ650が取り込む焦点位置コンピュータを使用している参加者のフレームを合成バッファセクション656に格納する。830において、合成画像バッファからの焦点位置サブ画像656、並びに中間バッファ635、640及び645からの非焦点参加者のサブ画像は、パースペクティブ調整器675に供給され、調整器675は、図4に示す透視図に対して合成画像の各非焦点参加者のサブフレームを調整する。調整器675は、調整した合成フレームをローカル画像コントローラに供給し、ローカル画像コントローラは、焦点位置コンピュータの表示装置695に表示するために最終的な合成画像を描画する。
【0042】
合成フレームは、符号器660に供給され(835)、符号器660は他のサブフレームに関係なく合成画像の各サブフレームを符号化する。冗長性除去器665は、符号器により生成される符号化映像ストリームから非焦点参加者の映像コンテンツを除去することにより、各非焦点参加者に対する映像ストリームを生成する(840)。冗長性除去器は、各参加者の映像ストリームを参加者に送信する(845)。845において、焦点位置処理800は、多人数参加型テレビ会議が終了したかを判定する(850)。終了したと判定した場合、処理800は終了する。終了していないと判定した場合、810に戻り、別のフレームを受信する。
【0043】
上述のように、図8は、いくつかの実施形態における焦点位置の復号化及び符号化動作を示す概念図である。いくつかの実施形態において、焦点位置モジュールは、マルチスレッド処理方式で1つ以上の復号化及び符号化動作を同時に独立して実行する。
【0044】
更にいくつかの実施形態において、焦点位置モジュールは他のソフトウェアモジュールを含む。例えば図9は、焦点位置モジュールの別の実現例を示す。この実現例は、焦点位置モジュール900が(1)更新タイムトラッカを有するフレームレートコントローラ905、(2)差分比較器910及び(3)タイムスタンプフィールドを有する中間バッファ915〜925を有すること以外は、図6に示す実現例と同様である。
【0045】
フレームレートコントローラ及び中間バッファの追加の特徴により、焦点位置モジュールは、非焦点位置コンピュータからの同一フレームを2回以上符号化することを回避できる。特に復号器620〜630の1つが中間バッファ915〜925の1つに新しいフレームを書き込む場合、その復号器は中間バッファのタイムスタンプフィールドに時間を記録する。
【0046】
フレームレートコントローラ905は、特定のフレームレートで各中間バッファのタイムスタンプフィールドをチェックする。バッファのコンテンツが対応するリサイザに供給された先の時間より中間バッファのタイムスタンプの方が遅いことをフレームレートコントローラが検出した場合、フレームレートコントローラは、バッファの対応するリサイザに対してバッファのコンテンツを検索するように指示する。あるいは、バッファが対応するリサイザにより読み出された最後の時間とバッファのタイムスタンプとの間に差がないことをフレームレートコントローラが検出した場合、フレームコントローラはリサイザを呼び出してバッファのコンテンツを読み出すことを行なわない。これは、この場合、中間バッファが対応するリサイザにより最後に読み出されて以来新しいフレームを受信していないためである。同一フレームの複数回の読み出しを行なわないことにより、重複フレームの不必要な符号化をなくし、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約する。
【0047】
この利点を示すために、図10は、焦点コンピュータと非焦点コンピュータとの間の信号送信における遅延により、焦点位置コンピュータがある特定の重複フレームの符号化をスキップする一例を提示する。特に図10は、焦点位置モジュールの中間バッファ915〜925へのフレームの格納を示す。図中、時間の経過を左から右に示し、焦点位置中間バッファへの各参加者のフレームの格納を水平な線上に配置された点により示す。
【0048】
例えば時間0において、焦点位置中間バッファは焦点位置及び全ての非焦点参加者からの新しいフレームを有する。それらフレームは、図10においてF1、A1、B1及びC1でラベル付けされる。それらフレームの各々は符号化され、非焦点参加者に送信される。時間1までに格納される唯一の新しいフレームは焦点参加者の画像であり、図10においてフレームF2として識別される。従って、非焦点位置参加者のフレームは時間0以降変更されていないため、焦点位置モジュールはそれらフレームの検索及び符号化をスキップする。
【0049】
時間1と時間2との間において、焦点位置コンピュータは、焦点位置カメラから1つの新しいフレームを受信し、参加者Aから2つの新しいフレームを受信し、参加者Bから1つの新しいフレームを受信する。新しく到着したフレームは、図10においてそれぞれフレームF3、A2、A3及びB2として識別される。従って、焦点位置モジュールは、時間2までにサブフレームとしてフレームF3、A3及びB2を合成画像バッファに格納し、それら格納したサブフレームに基づいて合成画像を符号化及び送信する。この場合、フレームA2は、焦点位置モジュールにより検索される前に中間バッファにおいて上書きされたため、会議の他の参加者に対して失われる。また、時間2における中間バッファ925のコンテンツが時間0から変更されていないため、時間2においてリサイザ649(参加者Cのデータに対する)は中間バッファ925のコンテンツを検索しない。ここで時間0とは、中間バッファ925がリサイザ649により読み出された最後の時間である。
【0050】
種々の理由により、焦点位置コンピュータにおけるカメラ650は、ローカル画像取り込みモジュール651がカメラ650からフレームを受信した時に2つ以上の連続する時点間に同一フレームを生成する可能性がある。従って、ローカル焦点位置参加者Dの画像の重複処理を回避するために、焦点位置モジュール900は差分比較器910を利用する。特に、フレームレートコントローラ905は、特定のフレームレートでローカル画像取り込み651に対してローカルカメラ650からフレームを取り込むように指示する。図6の取り込みモジュール651とは異なり、図9のローカル画像取り込みモジュール651は取り込んだフレームを差分比較器910に供給する。差分比較器910は、合成画像バッファ655のセクション656にそのフレームを直接格納する。差分比較器910は、合成画像バッファのセクション656に格納した最後のフレームが受信フレームと同一でないか又はそれ程類似していないと判定する限り、そのセクション656に受信フレームを格納する。いくつかの実施形態において、差分比較器910は、比較器が合成画像バッファに格納した最後のフレームと受信フレームとの間の差を表す計測値を計算する。計測値が特定の閾値より小さい場合、比較器910は、合成画像バッファに格納した最後のフレームと受信フレームとが同一であるか又は非常に類似することを検出する。
【0051】
合成画像バッファに格納した最後のフレームと受信フレームとが同一であるか又は非常に類似すると比較器が判定した場合、比較器は、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約するために受信フレームを破棄する。それらフレームが同一であるか又は非常に類似すると判定しなかった場合、比較器は、合成画像バッファのセクション656に受信フレームを格納し、次にローカル画像取り込みからフレームを受信した時に差分比較を行なうためにそのフレームのコピーを維持する。
【0052】
上述のように、フレームレートコントローラの更新追跡及び比較器910の差分比較により、合成画像バッファ655の1つ以上のセクションは、焦点位置モジュール900が合成フレームを生成及び符号化している時に空になる可能性がある。従って、焦点位置モジュールによるそのような場合に生成される合成フレームは、1つ以上の空のサブフレームを有する。そのような空のサブフレームは、上述のように、フラグにより識別されてもよく又は非焦点コンピュータの復号器により自動的に識別されてもよい。
【0053】
重複フレームの処理及び符号化を回避することは、多人数参加型テレビ会議以外の多くの状況において有用である。例えばピアツーピアテレビ会議において、それは、他の参加者からのフレームの重複復号化又はローカルで取り込まれるフレームの重複符号化を回避するのに有用である。
【0054】
重複処理及び符号化を回避することは、テレビ会議設定においても有用である。図11は、1つのそのような設定を示す。特に図11は、コンピュータ1110がカメラからフレームを取り込み、それらフレームを符号化し、それらフレームをローカルに格納する例を示す。図示するように、コンピュータ1110は、特定のレートでビデオカメラ1105からフレームを取り込むローカル取り込みモジュールを有する。種々の理由により、カメラ1105は、ローカル画像取り込みモジュール1115がカメラからフレームを受信する時に2つ以上の連続する時点の間に同一フレームを生成する可能性がある。
【0055】
ローカル画像取り込みモジュール1115は、取り込まれた各フレームを差分比較器1120に供給する。比較器1120は、取り込まれたフレームを符号器1125に転送してもしなくてもよい。特に比較器1120は、取り込みモジュール1115から受信するフレームと比較器が符号器1125に供給した最後のフレームとを比較する。2つのフレームが同一であるか又は非常に類似する場合、差分比較器は符号器への受信フレームの供給を行なわない。あるいは、2つのフレームが同一でないか又はそれ程類似していない場合、差分比較器は符号化するために受信フレームを符号器に転送する。符号器は、受信するフレームを符号化し、それらフレームを記憶装置に格納する。記憶装置は、コンピュータメモリ、ハードディスク、DVD又は同様の媒体である。
【0056】
III.非焦点位置モジュール
図12は、本発明のいくつかの実施形態の非焦点位置モジュール515を示す。非焦点位置モジュールは、符号化及び復号化動作を実行する。符号化動作に対して、非焦点位置モジュール515は、ローカル画像取り込みモジュール1240、フレームレートコントローラ1242及び符号器1250を利用する。復号化動作に対して、非焦点位置モジュール515は、復号器1210、中間バッファ1215、パースペクティブ調整器1220及びローカル画像コントローラ1230を利用する。
【0057】
テレビ会議中、非焦点コンピュータに取り付けられたカメラ1225は、非焦点位置コンピュータを使用しているテレビ会議の参加者を撮影する。符号化動作中、ローカル画像取り込みモジュール1240は、カメラにより生成される映像フレームを受信して取り込む。フレームレートコントローラ1242により特定される特定のサンプリングレートで、ローカル画像取り込みモジュール1240は取り込まれたフレームを符号器1250に向け、符号器1250はフレームを符号化し且つ焦点位置コンピュータに送信する。いくつかの実施形態において、テレビ会議の状態の変化に従って、フレームレートコントローラ1242はテレビ会議中に特定のフレームレートを変更する。
【0058】
復号化動作中、非焦点モジュール515は、焦点位置モジュール510から合成フレームを受信し、非焦点コンピュータの表示装置1235に表示するためにそれらフレームを復号化する。この復号化動作については、図13を参照して更に説明する。図13は、非焦点位置モジュールの復号化処理1300を概念的に示す。
【0059】
図13に示すように、非焦点位置モジュールの復号化処理1300は、非焦点位置モジュールが焦点位置モジュールから合成フレームを含む映像ストリームを受信した(1305)時に開始する。次に、非焦点モジュール515の復号器1210は受信した合成フレームを復号化する(1310)。
【0060】
いくつかの実施形態において、復号器1210は、最初に合成フレームを構成するサブフレームを抽出することなく合成フレームを復号化する。いくつかの実施形態において、復号器は、空のままとなっているサブフレームを識別するために空フィールドフラグを使用する。他の実施形態において、復号器は、他の方法を介してサブフレームを識別できるため(合成フレームの各マクロブロックに関連するサブフレームを識別できるため)、空フィールドフラグに依存する必要はない。
【0061】
各復号化サブフレームは、テレビ会議の他の参加者のうちの1人のフレームを表す。合成フレームの復号化後、復号器は、復号化合成フレームのサブフレームを中間バッファ1215に格納する(1315)。いくつかの実施形態において、中間バッファ1215は3つの小さな中間バッファにより形成される。その小さな各中間バッファは、復号化合成フレームの潜在的な各サブフレームを格納するためのものである。1320において、パースペクティブ調整器は、中間バッファから復号化サブフレームを検索し、他の会議参加者の画像の透視図を調整する。上述のように、図4はそのような透視図の1つの例を示す。調整器1220は、調整した合成フレームをローカル画像コントローラ1230に供給する。ローカル画像コントローラは、ローカル非焦点位置テレビ会議参加者の映像フレームをローカル画像取り込みモジュール1240から受信する。ローカル画像コントローラ1230は、非焦点コンピュータの表示装置1235に表示するために、他の会議参加者の調整したフレーム及びローカル参加者の取り込んだフレームからテレビ会議ディスプレイプレゼンテーションを描画する(1325)。
【0062】
1330の後、非焦点復号化処理1300は、多人数参加型テレビ会議が終了したかを判定する(1335)。終了したと判定した場合、処理1300は終了する。終了していないと判定する場合、1305に戻り、別の符号化合成画像を受信する。
【0063】
上述のように、図13は、非焦点位置モジュールの復号化及び符号化動作の簡単化された概念図である。いくつかの実施形態において、非焦点位置モジュールは他のソフトウェアモジュールを含む。例えば図14は、非焦点位置モジュールの別の実現例を示す。この実現例は、非焦点位置モジュール1400が差分比較器1410を有すること以外は図12に示す実現例と同様である。
【0064】
この差分比較器は、図9の差分比較器910と同様の役割を果たす。特に差分比較器は、ローカルで取り込まれた同一の又は非常に類似するフレームの重複符号化を防止する。ローカル画像取り込みモジュール1240は、フレームを取り込むと、取り込んだフレームを符号器1250に直接送出するのではなく差分比較器1410に供給する。
【0065】
差分比較器1410は、符号器に供給した最後のフレームが取り込んだフレームと同一でないか又はそれ程類似していないと判定する限り、取り込んだフレームを符号器1250に供給する。いくつかの実施形態において、差分比較器1410は、比較器が符号器1250に供給した最後のフレームと受信フレームとの間の差を表す計測値を計算する。計測値が特定の閾値より小さい場合、比較器1410は、符号器に供給した最後のフレームと受信フレームとが同一であるか又は非常に類似することを検出する。
【0066】
受信フレームが符号器に供給された最後のフレームと同一であるか又は非常に類似すると比較器が判定した場合、比較器は、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約するために受信フレームを破棄する。それらフレームが同一であるか又は非常に類似すると判定しなかった場合、比較器は、受信フレームを符号器1250に供給し、次にローカル画像取り込みからフレームを受信した時に差分比較を行なうためにそのフレームのコピーを維持する。
【0067】
いくつかの実施形態において、非焦点位置モジュールは、更新タイムトラッカを有するフレームレートコントローラ及びタイムスタンプを有する中間バッファを更に含む。先の節の焦点位置モジュールに対する説明と同様に、これら実施形態において、非焦点位置モジュールは、中間バッファ1215からパースペクティブ調整器1220に重複復号化画像を送出することを回避することにより計算資源を節約できる。
【0068】
上述の映像符号化、復号化及び配信技術が多くの利点を有することは、当業者には理解されるだろう。例えば、焦点位置モジュール510の映像合成方法は冗長映像データの除去を簡単化し、それによりテレビ会議中に多くの必要なネットワーク帯域幅を節約する。
【0069】
それら利点を示すために、図15は、4人のテレビ会議において映像データを合成する別の方法を示す。この方法において、焦点位置モジュールは、2×2形式1500で参加者のフレームを合成する。焦点位置510は、符号化し且つ結果として得られる符号化画像を各参加者に送出する。図15は、2×2合成フレーム1500の符号化の結果、異なる参加者からの映像データをインターリーブした映像ストリーム1550が得られることを示す。特に、図15に示される映像ストリーム1550の最初の部分は、インターリーブされた焦点位置参加者F及び非焦点位置参加者Aからの映像データを示す。
【0070】
このインターリーブにより、焦点位置モジュールが参加者に供給する映像ストリームから各参加者自身の映像データを除去することは困難になる。この除去を簡単にするために、1つの解決策は、(1)図16に示すように、3人の異なる非焦点参加者に対して3つの異なる合成映像フレームを生成し、(2)3つの異なる符号器を使用してそれら3つの異なる合成映像フレームを符号化することである。この方法により、参加者が受信する合成映像ストリームから各参加者の映像データは削除されるが、追加の符号器をサポートするためにより多くの処理リソースが必要とされる。
【0071】
IV.符号化の制約
A.概要
上記節IIで説明したように、焦点位置モジュールは、2つ以上のサブフレームを有する合成フレームを生成する。各サブフレームは、テレビ会議の参加者のうちの1人からのフレームである。いくつかの実施形態において、焦点位置モジュールは、非インターリーブ方式で各参加者のフレームを合成フレームに配置する。それら実施形態において、符号化処理は、各サブフレームの符号化が別のサブフレームのいずれの部分にも依存しないように制約のセットを利用する。
【0072】
図17は、いくつかの実施形態の焦点位置モジュールの符号器660の符号化処理1700を示す。合成フレームの符号化の前に、符号化処理1700は、合成フレームの種々のサブフレームの符号化が互いに依存しないままであることを保証するために、合成フレームの符号化に対する制約のセットを規定する(1710)。それら制約のいくつかの例を以下の節IV.B.で更に説明する。いくつかの実施形態において、符号化処理1700は、合成フレームに対する実行の度に制約のセットを規定せずに(1710)、参加者が会議に参加する度又は会議から離脱する度に制約規定動作を実行するようにしてもよい。
【0073】
1710の後、処理1700は、以下の動作を実行することにより合成フレームを反復的に符号化する。1715において、処理1700は、合成画像バッファ655から非符号化サブフレームを検索する。符号化の制約を使用して、符号化処理1700はその検索したサブフレームを符号化する(1720)。符号化サブフレームは、出力バッファに保管される(1725)。1725の後、処理1700は、符号化する別のサブフレームが存在するかを判定する(1730)。存在すると判定した場合、1715に戻り、合成画像バッファ655から次のサブフレームを取得する。存在しないと判定した場合、処理は終了する。
【0074】
B.制約
上述のように、符号化処理1700は、複数の制約を規定し(1710)、それら制約に基づいて合成フレームのサブフレームを符号化する(1720)。それら制約は、ブロック間符号化(interblock encoding)の制約、ブロック内符号化(intrablock encoding)の制約及びループフィルタリングの制約である。それら制約のいくつかの例を以下に説明する。
【0075】
1.ブロック間符号化の制約
ブロック間符号化の2つの例を以下に説明する。それら例は、(1)符号化中の探索ウィンドウのサイズに対する制約及び(2)画素ブロックを探索又は符号化するのに使用される目標サブ画素に対する制約である。ブロック間符号化は、1つ以上の参照フレームの1つ以上の部分を参照して現在のフレーム中の画素の1つのブロックを符号化する。ブロック間符号化は1つ以上の動き推定動作を含み、各動き推定動作は、現在のフレーム中の画素のブロックに最も適合する参照フレームの一部分を識別する。そのような識別により、現在のフレームの画素ブロックの符号化表現としての役割を果たすことができる動きベクトルが得られる。現在のフレームの画素ブロックを復号化中において、その動きベクトルは、現在のフレームの画素ブロックの画素値を提供する参照フレームブロックの一部分を識別するために使用される。
【0076】
符号器の動き推定動作は、参照フレームにおいて少なくとも1つの探索ウィンドウを規定する。その後、動き推定動作は、現在のフレームの画素ブロックに最も適合する参照フレームの一部分をウィンドウ内で探索する。その部分は、参照フレームの画素位置又は参照フレームのサブ画素位置と位置合わせされる。サブ画素位置は、参照フレームの非整数位置であり、画素位置は、参照フレームの整数位置に規定される画素を含む参照フレームの整数位置である。いくつかの実施形態において、符号器は、粗探索及び細探索を実行し且つ少なくとも一部の探索に対して種々の探索ウィンドウを使用する多段動き推定処理を使用してもよい。
【0077】
a)探索ウィンドウに対する制約
各参加者のサブフレームを独立させるために、各画素ブロックに対する探索ウィンドウは、特定の画素ブロックが位置付けられるサブフレームと同一のサブフレーム内に制限される必要がある。例えば図18は、本発明により許可される探索ウィンドウ1815を示す。この例において、現在の合成フレーム1801は、参照合成フレーム1802を使用して符号化される。符号化される画素ブロック1805は、参加者Aのサブフレーム1810内に位置付けられる。この画素ブロックを符号化するために、符号器は、いくつかの実施形態において初期動きベクトル1830により識別される位置を中心に配置される探索ウィンドウ1815内を探索する。いくつかの実施形態における初期動きベクトルは、デフォルト値に設定されるか、あるいは既にブロック間符号化された隣接する画素ブロックの動きベクトルから得られる。動き推定動作は、現在のフレームの画素ブロック1805に最も適合する探索ウィンドウ1815の参照サブフレーム1825の画素ブロック1835を識別するためにウィンドウ1815を探索する。図18に示すように、参照サブフレーム1825の画素ブロックは、動き推定動作により特定される最終的な動きベクトル1840により識別される。
【0078】
探索ウィンドウ1815内の任意の画素ブロックは、参照合成フレーム1802の参加者Aのサブフレーム1825内に位置付けられる。現在のフレーム1801の参加者Aのサブフレーム1810を受信する任意の復号器は、参照フレーム1802の参加者Aのサブフレームを有する。従って、復号器は、動き推定動作により特定される最終的な動きベクトル1840を使用して画素ブロック1805を再現できる。
【0079】
これに対して、図19は、本発明により許可されない探索ウィンドウの一例を示す。この例において、現在の合成フレーム1901は、参照合成フレーム1902を使用して符号化される。符号器は、参加者Aのサブフレーム1910内に位置付けられる画素ブロック1905を符号化する。
【0080】
図19は、動き推定動作に対する探索ウィンドウ1915を示す。探索ウィンドウの一部は、参加者Bのサブフレーム1925内にある。従って、この探索ウィンドウ1915が使用される場合、そのサブフレームの適合する画素ブロックを最終的な結果として得る。サブフレームは完全に独立して保持されるべきであるため、結果としてサブフレーム間に相互依存性を与える探索ウィンドウは許可されない。
【0081】
上記節IIで説明したように、探索ウィンドウ1915を許可しない理由は、焦点位置モジュール510が参加者Bに送出する圧縮合成フレームから参加者Bのサブフレーム1925を削除することを考慮することにより明らかとなるだろう。参加者Bの復号器1210が参照サブフレーム1925を受信しないため、動き推定動作により識別される最終的な動きベクトル(動きベクトル1935等)がサブフレーム1925内の画素ブロック(画素ブロック1940等)を指し示す場合、復号器1210は画素ブロック1905を再現できない。
【0082】
初期動きベクトルが2つのサブフレームの境界に近接するか又は他のサブフレーム内に位置する場合、探索ウィンドウは参照合成フレームの2つのサブフレームと重なる。それら双方の状況において、いくつかの実施形態は、探索ウィンドウを上に移動するか又は他のサブフレームに位置する探索ウィンドウの一部をトリミングすることにより、これらの探索ウィンドウの問題に対処する。
【0083】
図20は、トリミングされた探索ウィンドウ2020を結果として与える図19の探索ウィンドウ1915をトリミングする例を示す。トリミングされた探索ウィンドウ2020は、サブフレーム2025内のみにある。参加者Aのサブフレームを受信する任意の復号器は、参照フレーム1902の参加者Aのサブフレームを有する。従って、復号器は、画素ブロック2010を識別する最終的な動きベクトル2005(動き推定動作により特定される)を使用して画素ブロック1905を再現できる。探索ウィンドウ2020がサブフレーム2025の外側に位置することはないと仮定すると、最終的な動きベクトル2005及びそれに対応する画素ブロックは、サブフレーム2025内にあることが保証される。
【0084】
いくつかの実施形態における符号器は、探索ウィンドウ1915をトリミングするのではなく、探索ウィンドウ全体が所望のサブフレーム内になるようにその探索ウィンドウを他のサブフレームから離れる方向に移動する。図21は、図19に示す例に対するそのような移動の一例を示す。
【0085】
図22は、符号器660が探索ウィンドウを所望のサブフレーム内に留まらせる方法を示す。2205において、符号器660は、定義済みの方法を使用して、符号化される現在の画素ブロックに対して動きベクトル探索ウィンドウを選択する。しかし、符号化動作においてこの探索ウィンドウを利用する前に、符号器660は、探索ウィンドウが符号化される現在のフレームの画素ブロックと同一の合成参照フレームのサブフレーム(以下において目標サブフレームと呼ぶ)内に完全に存在するかをチェックする(2210)。
【0086】
探索ウィンドウが現在の画素ブロックと同一のサブフレーム内に完全に存在すると符号器が判定する場合(2210)、現在の画素ブロックに対する目標画素を見つけるために符号化動作において探索ウィンドウを利用する(2220)。完全に存在すると判定されない場合、符号器は、探索ウィンドウが目標サブフレームの外側に位置しないように探索ウィンドウを調整する(2215)。上述のように、探索ウィンドウは、目標サブフレームの外側に位置する部分をトリミングすることにより調整されるか、あるいは探索ウィンドウ全体が目標サブフレーム内になるように他のサブフレームから離れる方向に探索ウィンドウを移動することにより調整される。2215の後、符号器660は符号化動作に対して探索ウィンドウの残りの部分を利用する(2220)。
【0087】
b)目標サブ画素に対する制約
いくつかの実施形態において、符号器は、いくつかの実施形態の動き推定動作中に参照のサブ画素位置と位置合わせされる(すなわち、整数画素位置と位置合わせされない)ブロックを検査する。いくつかの実施形態の復号器は、いくつかの例において、サブ画素位置と位置合わせされる(すなわち、画素位置と位置合わせされない)参照フレームブロックを参照フレームから検索する必要がある。
【0088】
サブ画素位置と位置合わせされるブロックの検査及び検索は、符号器又は復号器がサブ画素位置において参照フレームに対する画像値(例えば、輝度値)を生成することを必要とする。サブ画素位置は、符号化動作中の現在のフレームの画素位置に対応することになる。画像値は、場合によっては縦列に垂直に位置合わせされる複数(例えば、6つの)画素の画像値の補間を必要とする補間動作を介して生成される。
【0089】
いくつかの実施形態において、符号器は、補間に使用される画素の垂直方向の各セットが目標サブフレームからの画素のみを含むことを保証するためにそのような補間動作に対して制約を与える。更にいくつかの実施形態において、符号器は、画素の水平方向のセットにわたる各補間が2つのサブフレームに及ぶ垂直方向の補間動作を介してのみ生成されるサブ画素値に依存しないことを保証するために補間動作に対して制約を与える。
【0090】
図23は、サブフレームの整数及び非整数画素位置にわたる補間の一例を示す。図中、整数画素位置は陰影を付けた正方形(例えば、正方形A又はB)で示され、1/2画素位置は白色の正方形(例えば、正方形b、h、s又はt)で示され、1/4画素位置は円(例えば、円a及びd)で示される。図23を簡単化するために、図中にはいくつかの1/2画素及び1/4画素位置のみを示す。整数画素位置の画像値は、補間の必要なく利用可能である。1/2レベル位置及び1/4レベル位置の小数画素の値は利用不可能であり、符号器がそれらの値を計算するために補間を実行する必要がある。
【0091】
各補間動作は、特定の長さを有する特定の補間フィルタにより実行される。いくつかの実施形態において、目標サブ画素位置に対する各補間動作は、目標サブ画素位置に対して水平又は垂直に位置付けられる画素値及び/又はサブ画素値のセットを使用して行なわれる。例えば、1/2画素の値を計算するために、いくつかの実施形態は長さ3の補間フィルタを使用する。ここで、長さは非整数画素を計算するために各方向で使用される画素数を示す。
【0092】
補間動作が2つのサブフレームに及ばないことを保証するために、いくつかの実施形態における符号器は、補間フィルタの長さを使用してサブフレーム境界を規定する。このサブフレーム境界で、動き推定動作は、サブ画素位置に位置合わせされたブロックを検査できない。
【0093】
例えば補間フィルタ長3を使用すると、1/2画素bはE、F、G、H、I及びJ画素の値を利用することにより補間される。1/2画素hは、A、C、G、M、R及びT画素の値を利用することにより補間される。同一サブフレームの画素値が使用される場合、補間動作において使用される画素が現在のサブフレームの外側に位置付けられることがなければ、h等の1/2画素は補間が行なわれる。この必要条件により、サブフレームの境界内に位置付けられるサブ画素の検査を禁止する特別な制約が作成される。それら境界領域の長さは、最長の垂直方向の補間フィルタの長さと等しい。
【0094】
例えば図23において、線2305は、2つの隣接するサブフレームの境界を示す。長さ3の補間フィルタの場合、この境界領域は、線2305から3画素離れた任意の位置である。例えば、1/2画素tはそのような境界領域内にある。1/2画素tの値の計算は、C、G、M、R、T及びV画素の補間を必要とする。しかし、画素Vは、現在のサブフレームの外側にある。1/2画素tの値は、現在のサブフレーム内の画素を使用して計算されない。従って、動き推定動作は、動きベクトルに対する目標位置としてこの1/2画素値を使用しない。
【0095】
1/2画素sは、その境界領域内に位置付けられる。しかし、1/2画素sは水平方向に位置付けられる2つの整数画素内に位置付けられる。1/2画素sは、同一サブフレーム内に位置付けられるK、L、M、N、P及びQを補間することにより計算される。従ってこの1/2画素は、動きベクトルに対する目標位置として使用される。
【0096】
いくつかの実施形態において、1/4画素値は、2つの最近接する整数画素値又は1/2画素値を平均し且つ切り上げることにより計算される。従って、1/4画素値の計算は、1/2画素がそれらの値を計算する時に要求された制約と同一の制約を有するべきである。
【0097】
図24は、符号器660の動き推定処理が動きベクトルに対する合成参照フレームの目標位置を判定するのに使用する処理2400を示す。図24に示さない初期化において、符号器660は、サブフレームの境界においてバッファ領域のセットを確立するために補間フィルタの長さを利用する。
【0098】
図25は、補間フィルタの長さが3画素である場合、1×4の合成画像バッファ2500に対する境界領域を示す一例を提示する。図25に示すように、境界バッファ領域2505〜2530はサブフレーム境界の3画素内にある。例えば、境界バッファ領域2515の1つのセクション2535は2540において拡大され、境界領域2515が参加者Aのサブフレーム2545内に位置付けられ且つ参加者Bのサブフレーム2550に対する境界に沿った深さ3画素の領域を範囲に含むことを示す。
【0099】
2405において、動きベクトルに対する次の可能な目標を選択する。目標位置が1つの境界領域内にないと判定した場合(2410)、目標位置を検査する(2425)(すなわち、目標位置により識別される参照フレームブロックと現在の参照フレームブロックとを比較する)。2425の後、動き推定動作を終了すべきかを判定する(2430)。終了すべきでないと判定した場合、2405に戻り、別の目標位置を選択する。終了すべきであると判定する場合、2425において処理2400により識別された最適な目標位置を選択し(2435)、その最適な位置を使用して動きベクトルを識別する(2435)。2435の後、処理は終了する。
【0100】
目標位置が1つの境界領域内にあると判定した場合(2410)、目標位置が整数位置であるかを判定する(2415)。整数位置であると判定した場合、上述した2425に移る。整数位置でないと判定した場合、目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素であるかを判定する(2420)。目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素であると判定される場合、上述の2425に移る。一方、目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素ではないと判定される場合(2420)、選択した目標位置の検査を行なわず、単に上述の2430に移る。
【0101】
2.ブロック内符号化の制約
符号器660により実行される別の圧縮動作は、マクロブロック内予測である。マクロブロック内予測動作は、隣接するマクロブロックの選択された画素の値からマクロブロックの値を予測する。参加者のサブフレームを独立させるために、ブロック内予測に対するソース画素は、現在のサブフレーム内に位置付けられるマクロブロックから選択されるべきである。
【0102】
図26は、本発明のいくつかの実施形態において符号器660がブロック内予測を行う対象である2つのマクロブロック2605及び2610を示す。この例に示すように、双方のマクロブロックは、参加者Bのサブフレーム2615内に位置付けられる。マクロブロック「i」2605を取り囲むマクロブロック「a」〜「h」2620〜2634は、同一サブフレーム2615内に位置付けられる。マクロブロック「i」に対するブロック内予測を実行するためにそれらマクロブロックのうち任意の1つを使用することにより、参加者Bのサブフレーム内においてのみマクロブロックの依存性を生じる。従って、符号器660は、マクロブロック「i」2605に対してブロック内予測を行なう時にそれらマクロブロックのいずれか1つを使用できる。
【0103】
一方、マクロブロック「r」2610は、参加者Bのサブフレーム2615及び参加者Aのサブフレーム2640の境界に近接して位置付けられるため、「j」、「k」及び「l」2650〜2654等の隣接するマクロブロックのいくつかは参加者Aのサブフレーム内になる。それらマクロブロックを使用することにより、参加者Bのサブフレーム2615と参加者Aのサブフレーム2640との間に依存性を生じるため、符号器660は、マクロブロック「r」2610に対してブロック内予測を行なうのにそれらマクロブロックを使用しない。しかし、マクロブロック「m」〜「q」2656〜2664はマクロブロック「r」2610と同一のサブフレーム内にある。従って、符号器660は、マクロブロック「r」2610のブロック内予測に対してそれらマクロブロックを使用できる。符号器は、使用されるラスタ走査又は同様の技術のために「n」〜「q」2658〜2664等のいくつかのマクロブロックを使用できない。従って、ここで説明されるブロック内予測の制約は、特定のマクロブロックのブロック内予測に対する特定のマクロブロックの利用を符号器に対して単に許可するか又は許可しないかである(利用を要求するのではない)。
【0104】
3.ループフィルタの制約
符号器は、種々の符号化方法を使用して隣接する画素のブロックを符号化してもよい。例えば符号器は、ブロック間符号化、ブロック内符号化を使用して画素のブロックを符号化してもよく、あるいはブロック全体をスキップしてもよい。従って、種々の符号化方法を使用して符号化された隣接する画素ブロックは、ほぼ同等の値を有するべきであるにもかかわらず種々の値を有する可能性がある。それらアーティファクトを除去するために、フレームが動き予測動作において利用される前に、符号器は参照フレームにループフィルタを適用する。
【0105】
いくつかの実施形態において、非ブロック化フィルタはループフィルタリングに対して利用される。非ブロック化フィルタは、高圧縮された映像データに現れるアーティファクトのようなブロックの外観を減少するのを助長するために使用され、それにより映像フレームを向上する。使用される映像コーデックアルゴリズムに依存して、復号器又は復号器及び符号器の双方が非ブロック化フィルタを使用してもよい。参加者のサブフレームが独立しているため、フィルタリングは種々の参加者のサブフレームに位置付けられる画素間で行なわれる必要はない。
【0106】
図27は、いくつかの実施形態において画素のグループがフィルタリングのために選択される方法を示す。例を明示するために、画素及びサブフレームは一定の縮尺に従わずに描かれる。図27に示す例において、2つの画素のグループ2705及び2710は、フィルタリングのために選択される。第1のグループ2705の全ての画素は、参加者Aのサブフレーム2715の境界内に位置付けられる。従って、この画素のグループはフィルタリングされることを許可される。
【0107】
しかし、第2の画素のグループ2710は、参加者Aのサブフレーム2715と参加者Bのサブフレーム2720との間の境界を横切る。参加者Aのサブフレーム2715及び参加者Bのサブフレーム2720が独立しているため、異なるサブフレームに位置付けられる隣接する画素値の類似性又は差は一致し、符号化動作の結果とならない。従って、その画素のグループはフィルタリングのために選択されるべきではない。
【0108】
図28は、フィルタリングに対して制約を適用するために、本発明のいくつかの実施形態が利用する処理2800を示す。処理2800は、まずフィルタリングのために画素のグループを識別する(2805)。フィルタリングに必要な全ての画素がフィルタリングされる画素のグループと同一のサブフレーム内に位置付けられると判定される場合、フィルタリングを続行する(2815)。フィルタリングに必要な全ての画素がフィルタリングされる画素のグループと同一のサブフレーム内に位置付けられないと処理2800が判定した場合(2810)、グループはフィルタリングのために選択されず、2805に戻り、そのグループを改良するか(2805)又はフィルタリングのために次の画素のグループを見つける。2815の後、フィルタリング処理2800は、フィルタリング処理が終了したかを判定する(2820)。終了したと判定した場合、処理2800は終了する。終了していないと判定した場合、2805に戻り、次の画素のグループを見つけて非ブロック化する。
【0109】
C.帯域幅を節約するための符号化の制約
上述の符号化の制約は、焦点位置モジュールが種々の会議参加者からの種々のフレームを有する合成フレームを生成することを許可する。例えば、ある特定の合成フレームは、1人の参加者に対する相対的に大きなブロック内符号化サブフレーム(Iサブフレーム)及び1人以上の他の参加者に対する相対的に小さなブロック間符号化サブフレーム(P又はBサブフレーム)から構成されてもよい。
【0110】
いくつかの実施形態において、符号器は、従来の合成フレームの送信のエラーに対処するために、組み合わされたブロック内符号化サブフレーム及びブロック間符号化サブフレームを含むそのような合成フレームを送出する。そのような組み合わされた合成フレームは、テレビ会議中に不足する可能性のあるネットワーク帯域幅を節約する。これを更に説明する前に、いくつかの実施形態の符号器及び復号器により使用されるハンドシェイクプロトコルの簡単な概要を以下に説明する。
【0111】
1.プロトコル
いくつかの実施形態において、1人の参加者の符号器(例えば、焦点位置モジュール符号器)は、別の参加者(例えば、非焦点位置モジュール復号器)と通信するためにハンドシェイクプロトコルを使用し、フレームが送信中にドロップされるかを決定する。例えば、非焦点復号器が特定の参加者に関係するサブフレームの1つ以上の部分を完全に受信していないと判定する場合、復号器は、焦点位置符号器にリフレッシュ要求を送出し、破損したサブフレームを識別する。復号器が誤り伝播を阻止する符号器からデータを受信するまで(例えば、特定の参加者に対するブロック内符号化サブフレームを受信するまで)、復号器は符号器にリフレッシュ要求を繰り返し送信する。いくつかの実施形態において、サブフレームは、各々がいくつかのマクロブロックを含むいくつかのスライス(例えば、2つのスライス)に分割される。これら実施形態において、復号器が完全性に対する解析を行なうサブフレームの部分はスライスである。
【0112】
2.帯域幅の節約
帯域幅節約技術のいくつかの例を以下に説明する。MPEG−4の例を使用してそれら技術を説明する。MPEG−4において、参加者の1画像はフレームと呼ばれる。フレームは、I、P又はBフレームである。Iフレームは、フレーム自体に含まれる情報のみを使用して符号化される。従って、それらフレームは他のフレームとは無関係に復号化される。しかし、IフレームはP及びBフレームより非常に大きい。
【0113】
P及びBフレームは、他のI又はPフレームの情報を使用して符号化される。従って、それらフレームはIフレームより小さく、送信するのに必要な帯域幅が小さい。通常、1つのIフレーム、並びにいくつかのP及びBフレームは、共にグループ化され、繰返し構造を形成する。繰返し構造のIフレーム及びPフレームはアンカーフレームと呼ばれ、他のP及びBフレームを生成することを要求される。Iフレーム又はPフレームが送信中に失われると、失われたフレームに依存する繰返し構造の残りのフレームは無用になり、復号化されなくなる。
【0114】
以下の項における第1の例は、帯域幅を節約するための多人数参加型会議中の合成フレーム内の種々のサブフレームの種々の処理を説明する。第2の例は、いくつかの後続フレームのIフレームの異なる部分を送信することにより帯域幅を均等化する方法を説明する。第3の例は、Iフレームの送信を必要としない送信中にフレームが失われた後、同期をとるための長期フレーム参照の用途を説明する。
【0115】
a)合成フレームの特定のサブフレームのリフレッシュ
本発明のいくつかの実施形態において、焦点位置モジュール510及び非焦点モジュール515は、サブフレームの全体的な独立性を利用して失われたフレームの再送信中に帯域幅を節約する。図29のシーケンス図2900は、参加者A、B、C及び焦点位置Fが会議に参加しているいくつかの実施形態において交換されるフレームの例を示す。このシーケンス図において、縦軸は時間の経過(上から下へ)を表し、横軸はオブジェクト間のメッセージの受け渡しを示す。参加者A、B及びCの非焦点モジュール2905〜2915及び焦点モジュール2920は、ライフライン、すなわち各モジュールが存在いている時間の限界を示す垂直の破線の上部にラベル付けされた矩形で示される。それらモジュール間のメッセージは、送信オブジェクトのライフラインから受信オブジェクトのライフラインへの水平の矢印で描かれる。
【0116】
焦点位置モジュール2920と非焦点モジュール2905〜2915との間で交換されるフレームは、モジュールから発生し且つモジュールで終了する矢印付きの線と共に示される。各フレームは、非焦点位置モジュール2905〜2915の1つから送出される参加者のサブフレームを表すか又は焦点位置モジュール2920により送出される合成フレームを表す。
【0117】
この例において、各非焦点モジュールはステップ1で焦点位置2920にPフレームを送出する。しかし、図29に示すように、参加者Cの非焦点モジュール2915により送出されるフレームは失われ、焦点位置2920により受信されない。焦点位置は、繰返し構造に符号化されたフレームのセットを送信及び受信する途中にあるため、後続フレームを生成するために参加者Cの非焦点位置モジュール2915からの新しいIフレームを要求する。
【0118】
従って、ステップ2において、焦点位置2920は参加者Cの非焦点位置モジュール2915にIフレームを送出するように要求する。次のステップ3において、参加者C2915はIフレームを焦点位置2920に送出する。次のステップ4において、焦点位置モジュール2920は、参加者A、B及び焦点位置ポイント参加者の存在するPフレームとステップ3において受信した参加者CのIフレームとから合成フレームを作成し、特定の参加者が受信する合成画像から各参加者自身の画像を削除した後にそれら合成フレームを参加者A、B及びCに送出する。送信は継続し、全ての参加者は受信する全ての後続フレームを復号化できる。
【0119】
図29に示されるリフレッシュ方法は、符号器が参加者のサブフレームを独立させておくことができず且つ全ての参加者からのIフレームの再送信を要求する必要がある状況に比して利点を有する。図30は、合成フレームの参加者のサブフレームが別個に保持されない場合に再送信を行なう方法の一例を示す。
【0120】
参加者のサブフレームが合成フレームにおいて別個に保持されない場合、焦点位置モジュール3020は、ステップ2において全ての非焦点位置モジュール3005〜3015からの新しいIフレームを要求する必要がある。次のステップ3において、全ての非焦点モジュール3005〜3015は、Iフレームを焦点位置モジュール3020に送出する必要がある。ステップ4において、焦点位置3020は、全ての参加者のIフレームから合成フレームを生成し、非常に大きなそれら合成フレームを送信する必要がある。一方、図29に示す方法は、1人の参加者に対してのみブロック内符号化データを送信するため、そのように大きな合成フレームの影響を受けない。
【0121】
また、組み合わされたブロック内符号化サブフレーム及びブロック間符号化サブフレームを含む合成フレームを送出することには、焦点位置が第1の参加者のサブフレームを第2の参加者に送信したが第2の参加者により適切に受信されなかった当該第1の参加者に対するサブフレームを焦点位置符号器がリフレッシュしようとする場合にも、大きな利点がある。
【0122】
b)複数の後続フレームに対するフレームのリフレッシュ
フレーム(例えば、多人数参加型会議のサブフレーム又はピアツーピア会議のフレーム)をリフレッシュするのに必要なデータを複数の後続フレームに分割するために、いくつかの実施形態は、上述の符号化の制約をフレームの1つ以上のセクションに拡張する。例えば、いくつかの実施形態は、合成フレームのサブフレーム境界に関係なく符号化の制約を規定するが、スライス境界においてそれら制約を規定する。それら制約の使用により、符号器はフレームをリフレッシュするのに必要なデータを複数の後続フレームに分割できる。
【0123】
そのような方法は、ピアツーピア会議及び多人数参加型会議において利点がある。ピアツーピア会議中、符号器は、先のフレームが失われたと判定した場合に新しいMPEG繰返し構造を開始するためにIフレームを再送信しなければならない。そのようなIフレームは、多くのネットワーク帯域幅を消費する。従って、いくつかの実施形態における符号器は、フレーム全体より小さいフレームのセクションに対する2つ以上のフレームを介してブロック内符号化データを提供する。
【0124】
図31は、ピアツーピア会議の場合のその1つの例を示す。この例において、2人の参加者がピアツーピア送信に関係する。各参加者は、符号器及び復号器を有する。各復号器は、適切なフレームを受信した時に他者の符号器に通知する。一方の符号器が他者の復号器に送出するフレームに対する例を示す。
【0125】
時間軸3105に示すように、符号器は、時間1においてフレーム3110を送出する。そのフレーム3110は送信中に破損するか又は失われる。動作遅延及び送信遅延のために、符号器は時間3までそのエラーを認識しない。復号器がフレームにおいてビットエラーが存在することを符号器に通知するか又はフレーム3110の送信中にエラーが発生したことに符号器が気付いた時、符号器はそのエラーを認識する。MPEG繰返し構造の残りのフレームがフレーム3110なしでは復号化されないため、符号器は新しい繰返し構造を開始するためにIフレームを再送信する必要がある。
【0126】
IフレームがPフレーム又はBフレームより非常に大きいため、符号器は次のフレーム3115を上側スライス3120及び下側スライス3125の2つのスライスに分割する。符号器は、ブロック内符号化スライスである上側スライスを送出し、下側スライス3125を破棄する(すなわち、下側スライス3125に対する映像データを送出しない)。符号器は、次のフレーム3130を上側スライス3135及び下側スライス3140に分割する。しかし、このフレームの場合、符号器は、上記符号化の制約の観点から上側スライス3135をブロック間符号化し、下側スライス3140をブロック内符号化する。
【0127】
時間4において、復号器は、受信した上側スライス3120及び後続のスライス3135に対するブロック間符号化データの組合せを使用して、復号化リフレッシュフレーム3145の上半分を生成する。復号器は、復号化リフレッシュフレーム3145の下半分を下側スライス3140になるように規定する。時間4の後、符号器が次の不良サブフレーム又は失われたサブフレームに気付くまで、全ての後続フレームは別個のサブフレームに分割されることなく正常に符号化される。
【0128】
他の実施形態は、ブロック内符号化データを3つ以上のフレームに分割してもよい。更にこの技術は、多人数参加型会議における2つ以上の合成フレームの中の特定のサブフレームに対するブロック内符号化データを分割するために使用される。更に、上述の方法は、送信エラーに対して何も行なわない他の状況においてIフレームデータを送信するのに使用される。例えばこの方法は、新しいIフレームがテレビ会議の映像シーケンスにおいて確立される必要がある度に使用される。
【0129】
c)帯域幅を節約するための長期参照フレームの用途
本発明のいくつかの実施形態において、符号器は、符号器と復号器との間で上述のハンドシェイクを使用して、復号器が受信した最後の周知の完全な参照フレーム(Iフレーム又はPフレーム)を追跡する。復号器は、この最後の周知の完全なフレーム又は長期参照フレームを保管する。送信エラーの場合、符号器は、保管される長期参照フレームを使用して後続フレームの符号化を開始する。従って、符号器は、大きなIフレームを送信する必要なく更なる誤り伝播を阻止する。この技術は、ピアツーピア会議及び多人数参加型会議において使用される。
【0130】
図32は、長期参照フレームの用途の例を示す。この例において、符号器及び復号器は、フレーム3205が復号器により受信された最後の周知の完全な参照フレームであることを理解している。このフレームは、Iフレーム又はPフレームであってもよい。時間2において、復号器は、フレーム3210を受信しないか、あるいはビットエラーを有することに気付いて符号器に通知する。フレームが復号器において失われた時間と符号器が通知された時間との間の遅延のために、この例における符号器は、復号器がフレーム3210を受信していないことを時間6において判定する。この時まで、時間3〜5において送信された全てのフレームはフレーム3210に依存していたため、復号器はそれらフレームを使用できない。
【0131】
時間6において、符号器は後続フレームを符号化するためにフレーム3210〜3225を使用することを停止する。その代わり、符号器はフレーム3230を符号化するために長期参照フレーム3205を使用する。復号器は、そのフレームのコピーを保管したためフレーム3230を復号化できる。符号器は、復号器により受信されたフレーム1又はフレーム6を参照として使用して全ての後続フレームを符号化するため、送信は同期される。
【0132】
V.コンピュータシステム
図33は、本発明のいくつかの実施形態を実現するのに使用されるコンピュータシステムを概念的に示す。コンピュータシステム3300は、バス3305、プロセッサ3310、システムメモリ3315、読み出し専用メモリ3320、永久記憶装置3325、入力装置3330及び出力装置3335を含む。
【0133】
バス3305は、コンピュータシステム3300の内部装置間の通信をサポートする全てのシステム、周辺装置及びチップセットバスを一括して表す。例えば、バス3305は、プロセッサ3310を読み出し専用メモリ3320、システムメモリ3315及び永久記憶装置3325に通信可能に接続する。
【0134】
プロセッサ3310は、本発明の処理を実行するために、それら種々の記憶装置から実行する命令及び処理するデータを検索する。読み出し専用メモリ(ROM)3320は、プロセッサ3310及びコンピュータシステムの他のモジュールにより必要とされる静的データ及び命令を格納する。一方、永久記憶装置3325は書き込み/読み出しメモリ素子である。この装置は、コンピュータシステム3300がoffの時でも命令及びデータを格納する不揮発性記憶装置である。本発明のいくつかの実施形態は、大容量記憶装置(磁気ディスク又は光ディスク及びその対応するディスクドライブ等)を永久記憶装置3325として使用する。他の実施形態は、取外し可能記憶装置(フロッピディスク又はzip(R)ディスク及びその対応するディスクドライブ等)を永久記憶装置として使用する。
【0135】
永久記憶装置3325と同様に、システムメモリ3315は書き込み/読み出しメモリ素子である。しかし、記憶装置3325とは異なり、システムメモリはランダムアクセスメモリ等の揮発性書き込み/読み出しメモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態において、本発明の処理は、システムメモリ3315、永久記憶装置3325及び/又は読み出し専用メモリ3320に格納される。
【0136】
バス3305は、入力装置3330及び出力装置3335を更に接続する。入力装置により、ユーザはコンピュータシステムに対して情報を通信し且つコマンドを選択できる。入力装置3330は、英数字キーボード及びカーソルコントローラを含む。出力装置3335は、コンピュータシステムにより生成される画像を表示する。例えば、それら装置はIC設計レイアウトを表示する。出力装置は、陰極線管(CRT)ディスプレイ又は液晶ディスプレイ(LCD)等の表示装置及びプリンタを含む。
【0137】
最後に、図33に示すように、バス3305はコンピュータ3300をネットワークアダプタ(不図示)を介してネットワーク3365に結合する。このように、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)又はイントラネット等)又は複数のネットワークのうちの1つのネットワーク(インターネット等)の一部となる。コンピュータシステム3300の任意又は全ての構成要素は、本発明と共に使用されてもよい。しかし、任意の他のシステム構成が本発明と共に使用されてもよいことは、当業者には理解されるだろう。
【0138】
多くの特定の詳細を参照して本発明を説明したが、本発明は、本発明の趣旨の範囲から逸脱せずに他の特定の形態で実現できることが当業者には理解されるだろう。本発明の趣旨の範囲から逸脱せずに、説明された要素に対して均等物が代用されてもよく且つ種々の変更が行なわれてもよい。例えば、合成フレームの生成後に符号化を行なうのではなく、いくつかの実施形態の焦点位置モジュール510は、送信のために符号化フレームを1つの合成フレームにパッケージ化する前に非焦点参加者のフレームを符号化してもよい。
【0139】
上述のように、いくつかの実施形態は設定された間隔で合成を実行し、遅れて到着するフレーム(図10のA3等)がまだ送出されていない先のフレーム(図10のA2等)を上書きすることを可能にする。しかし、他の実施形態は、まだ送出されていないフレームが破棄されることを防止してもよい。例えばいくつかの実施形態は、設定された間隔で合成フレームを送出することを待たず、ある特定の数の新しいフレームが非焦点参加者から受信された時に合成フレームを送出してもよい。従って、本発明は、上述の詳細により限定されず、添付の請求の範囲により規定されることが当業者には理解されるだろう。
【技術分野】
【0001】
本発明は、多人数参加型テレビ会議における映像処理に関する。
【背景技術】
【0002】
汎用コンピュータの普及に伴い、パーソナルコンピュータ又はビジネスコンピュータを介してテレビ会議を行なうことに対する要求が大きくなってきた。しかし、そのような会議を確立するには、参加者間のデータ転送方法において大きな課題がある。従来の解決策では大量のデータの交換を必要とし、それにより多くの計算資源及び多くの帯域幅が消費される。
【0003】
それら資源及び帯域幅に制限があるため、家及びオフィスで使用するために容易に入手可能である汎用コンピュータは、テレビ会議を効果的及び安価に実行できなかった。従って、従来技術において、テレビ会議の参加者間でデータを送信する効率的な方法を使用するテレビ会議アーキテクチャが必要とされる。そのような方法により、テレビ会議は一般に利用可能なネットワーク接続を介して行なわれる。
【発明の概要】
【課題を解決するための手段】
【0004】
いくつかの実施形態は、多人数参加型テレビ会議を確立するアーキテクチャを提供する。このアーキテクチャは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像となる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【0005】
中央配信装置及び参加者のコンピュータは、種々の形態をとることができる。換言すると、それらコンピュータは、スタンドアロンデスクトップ、ラップトップ及び/又はハンドヘルドコンピュータ、あるいは民生電子機器又は通信装置、ホームメディアセンタ、ハブ等の任意の種類の装置に組み込まれてもよい。
【図面の簡単な説明】
【0006】
添付の請求の範囲において、本発明の新しい特徴を示す。しかし、説明の目的でいくつかの実施形態を以下の図において示す。
【図1】図1は、本発明のいくつかの実施形態のテレビ会議アーキテクチャの一例を示す図である。
【図2】図2は、いくつかの実施形態が多人数参加型テレビ会議において映像コンテンツを交換する方法を示す図である。
【図3】図3は、いくつかの実施形態が多人数参加型テレビ会議において映像コンテンツを交換する方法を示す図である。
【図4】図4は、1人の参加者のディスプレイ上における参加者の画像の好適な配置を示す図である。
【図5】図5は、本発明のいくつかの実施形態のテレビ会議アプリケーションのソフトウェアコンポーネントを示す図である。
【図6】図6は、本発明のいくつかの実施形態の焦点位置モジュールを示す図である。
【図7】図7は、いくつかの実施形態の焦点位置モジュールが生成する合成映像データ及び映像ストリームを示す図である。
【図8】図8は、いくつかの実施形態の焦点位置映像処理を示すフローチャートである。
【図9】図9は、本発明のいくつかの実施形態における差分比較器を有する焦点位置モジュールを示す図である。
【図10】図10は、異なる時間に焦点位置符号器に到着する新しいフレームの例を示す図である。
【図11】図11は、非テレビ会議アプリケーションにおいて冗長フレームを回避するアプリケーションを示す図である。
【図12】図12は、いくつかの実施形態の非焦点位置モジュールを示す図である。
【図13】図13は、いくつかの実施形態の非焦点位置モジュールの復号化動作を示すフローチャートである。
【図14】図14は、いくつかの実施形態における差分比較器を有する非焦点位置モジュールを示す図である。
【図15】図15は、いくつかの実施形態における参加者のサブフレームの焦点位置の2×2の位置付けを示す図である。
【図16】図16は、いくつかの実施形態において、焦点位置がいくつかの符号器を使用して、各参加者が受信する合成画像からその参加者自身の画像を削除する方法を示す図である。
【図17】図17は、いくつかの実施形態において、合成ビデオ画像を符号化するために符号器が利用するステップを示すフローチャートである。
【図18】図18は、動きベクトルに対して許可される探索ウィンドウの一例を示す図である。
【図19】図19は、本発明のいくつかの実施形態において、許可されない動きベクトル探索ウィンドウの一例を示す図である。
【図20】図20は、現在のサブフレームに適合するようにトリミングされる動きベクトルに対する探索ウィンドウの一例を示す図である。
【図21】図21は、現在のサブフレームに適合するように移動される動きベクトルに対する探索ウィンドウの一例を示す図である。
【図22】図22は、いくつかの実施形態において、動きベクトル探索ウィンドウが現在のサブフレームに適合するように調整される方法を示すフローチャートである。
【図23】図23は、サブフレームの一部分における整数画素及び小数画素位置の一例を示す図である。
【図24】図24は、いくつかの実施形態において、符号器が動きベクトルの対象となる位置を制約する方法を示すフローチャートである。
【図25】図25は、いくつかの実施形態において、動きベクトル境界バッファ領域を示す図である。
【図26】図26は、いくつかの実施形態において、符号器がマクロブロック内予想に与える制限を示す図である。
【図27】図27は、いくつかの実施形態において、非ブロック化フィルタが使用する画素のグループに対して与えられる制限を示す図である。
【図28】図28は、いくつかの実施形態が非ブロック化フィルタを同一サブフレームの画素に制限する方法を示すフローチャートである。
【図29】図29は、いくつかの実施形態において、合成フレームのサブフレームの異なる処理を示す図である。
【図30】図30は、いくつかの実施形態において、合成フレームのサブフレームの異なる処理を示す図である。
【図31】図31は、いくつかの実施形態において、同一フレーム内のサブフレームの異なる処理を示す図である。
【図32】図32は、帯域幅を節約するために、いくつかの実施形態における長期参照フレームの用途を示す図である。
【図33】図33は、本発明の一実施形態を実現するのに使用されるコンピュータシステムを示す図である。
【発明を実施するための形態】
【0007】
以下において、説明の目的で多くの詳細を示す。しかし、本発明は、それら特定の詳細を使用せずに実現されてもよいことが当業者には理解されるだろう。他の例において、不必要な詳細により本発明の説明を曖昧にしないように、周知の構成及び装置がブロック図の形態で示される。
【0008】
いくつかの実施形態は、多人数参加型テレビ会議を確立するアーキテクチャを提供する。このアーキテクチャは、2人以上の参加者からビデオ画像を受信する中央配信装置を有する。中央配信装置は、中央配信装置が参加者に送り返す合成画像を受信した画像から生成する。各合成画像はサブ画像のセットを含み、各サブ画像は1人の参加者に属する。いくつかの実施形態において、中央配信装置は、中央配信装置が特定の各参加者に送出する合成画像からその特定の参加者の画像を除去することによりネットワーク帯域幅を節約する。いくつかの実施形態において、各参加者から受信した画像は、非インターリーブ方式で配置されて合成画像となる。例えばいくつかの実施形態において、合成画像は各参加者に対して最大1つのサブ画像を含み、2つのサブ画像がインターリーブされない。
【0009】
本発明のいくつかの詳細な実施形態を以下に説明する。それら実施形態において、中央配信装置はテレビ会議の1人の参加者のコンピュータであり、中央配信装置との間で送信される画像は映像フレームである。他の実施形態が異なる方法で実現されることは、当業者には理解されるだろう。例えば、いくつかの実施形態における中央配信装置は、テレビ会議の任意の参加者のコンピュータではない。また、いくつかの実施形態において、中央配信装置との間で送信される画像は映像フレームではない(例えば画像は、フレームを含むフィールドであってもよく、あるいは他のビデオ画像表現であってもよい)。
【0010】
I.概要
図1は、本発明のいくつかの実施形態のテレビ会議アーキテクチャ100の一例を示す。このアーキテクチャは、複数の参加者がテレビ会議に参加することを可能にする。図1に示す例において、4人の参加者A、B、C及びDは、各々の4つのコンピュータ105〜120及びそれらコンピュータを接続するネットワーク(不図示)を介してテレビ会議に参加する。それらコンピュータを接続するネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、複数のネットワークのうちの1つのネットワーク(例えば、インターネット)等の任意のネットワークである。
【0011】
テレビ会議中、1人の参加者(この例においては参加者D)のコンピュータ105は、図1に示すように音声/映像コンテンツの中央配信装置としての役割を果たす。この中央配信装置125は、以下において多人数参加型会議の焦点位置と呼ばれる。他の参加者のコンピュータは、以下において非焦点マシン又は非焦点コンピュータと呼ばれる。
【0012】
以下の説明は、焦点及び非焦点コンピュータの映像動作に焦点を当てる。コンピュータの音声動作は、米国特許出願第11/118,555号「Audio Processing in aMulti-Participant Conference」Attorney DocketNo. APLE.P0087において更に説明される。更に、米国特許出願第11/118,931号「Multi-ParticipantConferenceSetup」Attorney Docket No. APLE.P0084は、いくつかの実施形態が図1に示すような焦点位置アーキテクチャを介して多人数参加型テレビ会議をセットアップする方法を説明する。これら双方の特許出願を引用することによってその内容をここに合体する。
【0013】
音声/映像コンテンツの中央配信装置として、焦点位置125は、各参加者からビデオ画像を受信し、それら画像を合成及び符号化し、合成画像を各非焦点マシンに送信する。図2は、図1の4人の参加者の例に対する画像の交換の一例を示す。特に図2は、各参加者から1つの映像フレーム215〜225を受信する焦点位置125を示す。焦点位置125は、各受信フレーム及び焦点位置参加者Dのフレーム235を含む合成フレーム230を受信画像215〜225から生成する。焦点位置125は、合成フレーム230を各非焦点マシン110、115及び120に送信する。
【0014】
図2に示す例において、特定の各非焦点参加者に送信される合成フレーム230は、その特定の非焦点参加者の映像フレームを含む。しかし、いくつかの実施形態において、焦点位置は、焦点位置が特定の非焦点参加者に送信する合成画像からその特定の非焦点参加者の画像を除去する。帯域幅を節約するために、焦点位置125は各参加者自身の画像を対応する合成画像から除去する。
【0015】
図3は、図2に示す例に対するその除去の一例を示す。特に図3は、(1)参加者Aに対して、参加者A自身の画像215を有さない合成画像330と、(2)参加者Bに対して、参加者B自身の画像220を有さない合成画像335と、(3)参加者Cに対して、参加者C自身の画像225を有さない合成画像340とを示す。
【0016】
図3は、いくつかの実施形態が、非焦点参加者自身の画像の代わりに、合成画像330の非焦点参加者の画像の位置に空フィールドフラグ345を挿入することを示す。このフラグは、非焦点参加者自身の画像に対応するサブ画像が無いことを示す。このインディケータ345のサイズが非焦点参加者の画像のサイズより非常に小さいため、特定の非焦点参加者の合成画像からその参加者の画像を除去することにより、合成画像が使用する帯域幅の量は減少する。いくつかの実施形態は、空フィールドフラグ345を使用せず、特定の非焦点参加者に送出される合成画像からその特定の非焦点参加者の画像を単純に除去する。例えばいくつかの実施形態において、各画像の各符号化マクロブロックがその位置を表す識別子を有するため、非焦点位置モジュールの復号器は、どのように残りの符号化サブ画像でビデオ画像を構成するかを決定する。
【0017】
各非焦点マシンが符号化合成画像を受信すると、非焦点マシンは、合成画像を復号化し、合成画像の各サブ画像を抽出し、復号化され且つ抽出された画像をディスプレイ上に表示する。図4は、テレビ会議に4人の参加者が存在する場合の表示の一例を示す。図4に示すように、3人の他の参加者の画像405〜415は、参加者のコンピュータディスプレイ400に水平方向に表示される。ローカル参加者自身の画像420は、他の参加者の画像405〜415に対して小さなサイズで表示され、ディスプレイ400の下部に位置付けられる。
【0018】
いくつかの実施形態は、焦点及び非焦点位置動作を実行できるテレビ会議アプリケーションにより実現される。図5は、そのような1つのアプリケーションに対するソフトウェアアーキテクチャを示す。特に図5は、焦点位置モジュール510及び非焦点位置モジュール515の2つのモジュールを有するテレビ会議アプリケーション505を示す。それらモジュール510及び515、並びにテレビ会議アプリケーション505は、テレビ会議の参加者のコンピュータのオペレーティングシステム520上で動作する。
【0019】
多人数参加型テレビ会議中、テレビ会議アプリケーション505は、会議の焦点位置としての役割を果たす場合には焦点位置モジュール510を使用し、焦点位置としての役割を果たさない場合には非焦点位置モジュールを使用する。テレビ会議アプリケーション505が多人数参加型テレビ会議の焦点位置である場合、焦点位置モジュール510は焦点位置映像処理動作を実行する。一方、アプリケーション505が会議の焦点位置でない場合、非焦点位置モジュール515は非焦点位置映像処理動作を実行する。いくつかの実施形態において、焦点位置モジュール510及び非焦点位置モジュール515はある特定のリソースを共有する。
【0020】
本明細書の節IIにおいて焦点位置モジュール510を説明し、節IIIにおいて非焦点位置モジュール515を説明する。
【0021】
II.焦点位置モジュール
図6は、本発明のいくつかの実施形態の焦点位置モジュール510を示す。この例において、3人の非焦点参加者及び1人の焦点参加者の4人の参加者を含むテレビ会議の間の焦点位置モジュール510を示す。特に図6は、3つの復号器620〜630、3つの中間バッファ635〜645、3つのリサイザ647〜649、ローカル画像取り込みモジュール651、フレームレートコントローラ652、合成画像バッファ655、符号器660、冗長性除去器665、パースペクティブ調整器675及びローカル画像コントローラ685を利用する、焦点位置モジュール510を示す。
【0022】
復号器620〜630、中間バッファ635〜645及びリサイザ647〜649は、3つの映像復号化パイプラインから合成画像バッファ655の3つのセクション657〜659を形成する。それら3つの映像復号化パイプラインにより、焦点位置モジュール510は、テレビ会議中に最大3人の参加者からの映像信号を復号化及び合成できる。
【0023】
特に、各復号器620、625又は630は、テレビ会議中に1つの非焦点コンピュータからの映像信号を復号化する役割を果たす。図1に示す例に対して、図6は、参加者Aのコンピュータから映像信号を受信する復号器620、参加者Bのコンピュータから映像信号を受信する復号器625及び参加者Cのコンピュータから映像信号を受信する復号器630を示す。受信フレームの復号化後、各復号器620、625又は630は、中間バッファ635、640又は645に復号化フレームを格納する。いくつかの実施形態において、各中間バッファは焦点位置コンピュータのメモリ中の場所である。
【0024】
各リサイザ647、648又は649は、特定のフレームサンプリングレートで(1)対応する中間バッファに格納されるフレームを検索し、(2)必要に応じてそのフレームをサイズ変更し、(3)合成画像バッファ655の対応するセクションにフレームを格納する。例えばリサイザ648は、中間バッファ640から参加者Bの復号化フレームを検索し、必要に応じて検索したフレームをサイズ変更し、そのフレームを合成バッファセクション658に格納する。
【0025】
フレームレートコントローラ652は、リサイザ647〜649が中間バッファ635〜645からフレームを検索する際のフレームサンプリングレートを規定する。フレームレートコントローラ652は、システム帯域幅、焦点位置コンピュータの計算資源、テレビ会議の参加者数等を含む種々の因子に基づいてそのレートを判定する。コントローラ652がリサイザ647〜649に与えるフレームサンプリングレートで、フレームレートコントローラ652は、ローカル画像取り込みモジュール651に対してフレームを合成画像バッファ655のセクション656に格納するように指示する。それら格納されたフレームは、テレビ会議中に焦点位置コンピュータを使用しているテレビ会議参加者の画像である。それら画像は、焦点位置コンピュータにおいてカメラ650及び画像取り込みモジュール651により取り込まれる。いくつかの実施形態において、テレビ会議の状態の変化に従って、フレームレートコントローラ652はテレビ会議中に特定のフレームレートを変更する。
【0026】
上述のように、リサイザ647〜649は、コントローラ652から受信するフレームレートに基づいてバッファ635〜645からフレームを検索する。その検索したフレームを供給した非焦点コンピュータがそのフレームに対する合成バッファセクションのサイズと異なるサイズでそのフレームを供給した場合、リサイザは、検索したフレームを合成画像バッファに格納する前にそのフレームをサイズ変更する。例えば、符号化中に帯域幅又は計算資源を節約するために、非焦点コンピュータはより小さいフレームを符号化及び送信してもよい(すなわち、粗粒度でフレームを符号化し、各フレームに対してより少ない符号化コンテンツを含むパケットを送信する)。
【0027】
更に上述のように、リサイザ647〜649は、合成画像バッファ655の対応するセクション657〜659に潜在的にサイズ変更されたフレームを格納する。いくつかの実施形態において、合成画像バッファ655は、焦点位置コンピュータのメモリ中の場所であり、そのバッファの各セクション656〜659は、メモリのその場所における連続した論理セクションである。
【0028】
符号器660は、コントローラ652が規定するサンプリングレートで、合成画像バッファに格納される合成フレームを符号化する。符号器は、合成画像バッファ655の他のセクションに格納されるサブフレームに関係なく、各セクション656、657、658又は659に格納されるサブフレームを符号化する。
【0029】
これを示すために、図7は合成フレームの符号化を要約する図を提示する。特に図7は、合成画像バッファ655の4つのセクション656〜659を示す。その符号化のために、セクション656〜659のサブフレームは画素のセットに分割される。例えばいくつかの実施形態において、各サブフレームはマクロブロックのセットに分割され、それらは他のフレームのマクロブロックを参照せずにイントラエンコード(intra-encode)されるか又は別のフレームのマクロブロックを参照してインターエンコード(inter-encode)される。図7は、セクション656のサブフレームをいくつかのマクロブロック705〜710に分割すること、セクション657のサブフレームをいくつかのマクロブロック715〜720に分割すること、セクション658のサブフレームをいくつかのマクロブロック725〜730に分割すること及びセクション659のサブフレームをいくつかのマクロブロック735〜740に分割することを示す。
【0030】
上述のように、各サブフレームの符号化が他のサブフレームに依存しないように(すなわち、1つのセクションの符号化が各セクションの境界を越えて映像データを使用しないように)、符号器660は各セクション656、657、658又は659の各サブフレームの符号化を分離する。例えば、セクション657の参加者Aのサブフレームのマクロブロックの符号化は、セクション658の参加者Bのサブフレームのマクロブロックの符号化に依存しない。この符号化を以下に更に説明する。
【0031】
合成フレームの符号化後、符号器660は、別個のセクションの各参加者の符号化映像データを含む(すなわち、別個の非インターリーブセクションの種々の参加者の符号化映像データを含む)符号化映像ストリームを冗長性除去器に供給する。例えば図7は、合成フレームのイントラエンコード又はインターエンコードされたマクロブロックの各々に対する符号化データを含む符号化映像ストリーム750を示す。図7に示すように、この合成ストリーム750において、各サブフレームに対する符号化データは他のサブフレームの符号化データとインターリーブされない。
【0032】
符号化ストリームの非インターリーブ構成により、冗長性除去器は、特定の非焦点参加者に送信される映像ストリームからその特定の非焦点参加者の映像データを迅速に除去できる。例えば図7は、(1)参加者Aに対して、参加者Aの符号化映像データを空フィールドフラグ760と置換した映像ストリーム755と、(2)参加者Bに対して、参加者Bの符号化映像データを空フィールドフラグ770と置換した映像ストリーム765と、(3)参加者Cに対して、参加者Cの符号化映像データを空フィールドフラグ780と置換した映像ストリーム775とを示す。上述のように、いくつかの実施形態は、そのような空フィールドフラグを採用せず、非焦点モジュール復号器に依存して空のサブフレームを自動的に識別する。
【0033】
冗長性除去器が各参加者の映像ストリームからその参加者の冗長画像データを除去すると、冗長性除去器は参加者の映像ストリームをその参加者に送信する。従って、図6は3人の非焦点参加者A、B及びCに3つの映像ストリームを送出する冗長性除去器665を示す。
【0034】
図6は、焦点位置モジュール510のパースペクティブ調整器675が合成画像バッファ655の焦点位置サブ画像656から焦点位置参加者の画像を検索することを更に示す。パースペクティブ調整器675は、中間バッファ635、640及び645から非焦点参加者のサブ画像を検索する。調整器675は、図4に示す透視図に対して合成画像の各非焦点参加者のサブフレームを調整する。調整器675は、調整した合成フレームをローカル画像コントローラに供給し、ローカル画像コントローラは、焦点位置コンピュータの表示装置695に表示するために最終的な合成画像を描画する。
【0035】
テレビ会議中、焦点位置モジュール510の各構成要素は、上述の動作を反復的に実行する。図8は、いくつかの実施形態において、焦点位置モジュール510のそれら反復動作を概念的に示す処理800を提示する。いくつかの実施形態において、焦点位置モジュール510は、n人の参加者を含むテレビ会議に対して処理800を実行する。ここで、nは3以上の任意の数字である。
【0036】
図8に示すように、焦点位置処理800は、まずテレビ会議に関する1つ以上のパラメータを定義する(805)。805において、種々の実施形態が種々のパラメータを定義する。そのようなパラメータの例には、各非焦点コンピュータの符号器により使用される符号化の種類、各非焦点コンピュータにより送信されるフレームのサイズ、焦点位置コンピュータにより使用される符号化の種類、合成画像バッファのサイズ等が含まれる。上述の本願に取り込まれた米国特許出願「Multi-Participant ConferenceSetup」は、それらパラメータが、いかにして設定され且つ場合によってはテレビ会議中にいかにして再設定されるかを説明する。
【0037】
次に、焦点位置モジュールは、各非焦点コンピュータからフレームを受信する(810)。焦点位置モジュール510の復号器(例えば、復号器620、625又は630)は、受信フレームを復号化し(815)、復号化フレームを中間画像バッファ(例えば、バッファ635、640又は645)に格納する。特定の非焦点コンピュータからのフレームを復号化するために、復号器は、特定の非焦点コンピュータが使用する符号化に適切な復号化アルゴリズムを使用する。これら符号化及び/又は復号化アルゴリズムは、処理800の初期化動作805の間に特定される。いくつかの実施形態において、上述の取り込まれた特許出願において説明したように、テレビ会議の状態の変化に従って、それらアルゴリズムはテレビ会議中に再度特定されてもよい。
【0038】
815において、焦点位置モジュール510は、リサイザが中間バッファをサンプリングする(すなわち、3人の非焦点参加者の場合には、中間バッファ、即ちバッファ635〜645から復号化フレームを検索する)時点であるかを判定する(817)。上述のように、サンプリングレートはフレームレートコントローラ652により設定される。
【0039】
リサイザが中間バッファをサンプリングする時点ではないと処理800が判定した場合(817)、818に移る。818において、新しいフレームが非焦点参加者から受信されたかを判定する。受信されたと判定した場合、815に移り、受信フレームを復号化し且つ適切な中間画像バッファに復号化フレームを格納する。一方、フレームを受信していないと判定した場合(818)、817に戻り、リサイザが中間バッファをサンプリングする時点であるかを判定する。
【0040】
リサイザが中間バッファをサンプリングする時点であると判定した場合(817)、リサイザ(例えば、リサイザ647〜649)は、中間バッファ(例えば、バッファ635〜645)から復号化フレームを検索し(820)、必要に応じてそれら検索したフレームをサイズ変更し、それらフレームを合成画像バッファ655に格納する。
【0041】
次の825において、ローカル画像取り込みモジュール651は、カメラ650が取り込む焦点位置コンピュータを使用している参加者のフレームを合成バッファセクション656に格納する。830において、合成画像バッファからの焦点位置サブ画像656、並びに中間バッファ635、640及び645からの非焦点参加者のサブ画像は、パースペクティブ調整器675に供給され、調整器675は、図4に示す透視図に対して合成画像の各非焦点参加者のサブフレームを調整する。調整器675は、調整した合成フレームをローカル画像コントローラに供給し、ローカル画像コントローラは、焦点位置コンピュータの表示装置695に表示するために最終的な合成画像を描画する。
【0042】
合成フレームは、符号器660に供給され(835)、符号器660は他のサブフレームに関係なく合成画像の各サブフレームを符号化する。冗長性除去器665は、符号器により生成される符号化映像ストリームから非焦点参加者の映像コンテンツを除去することにより、各非焦点参加者に対する映像ストリームを生成する(840)。冗長性除去器は、各参加者の映像ストリームを参加者に送信する(845)。845において、焦点位置処理800は、多人数参加型テレビ会議が終了したかを判定する(850)。終了したと判定した場合、処理800は終了する。終了していないと判定した場合、810に戻り、別のフレームを受信する。
【0043】
上述のように、図8は、いくつかの実施形態における焦点位置の復号化及び符号化動作を示す概念図である。いくつかの実施形態において、焦点位置モジュールは、マルチスレッド処理方式で1つ以上の復号化及び符号化動作を同時に独立して実行する。
【0044】
更にいくつかの実施形態において、焦点位置モジュールは他のソフトウェアモジュールを含む。例えば図9は、焦点位置モジュールの別の実現例を示す。この実現例は、焦点位置モジュール900が(1)更新タイムトラッカを有するフレームレートコントローラ905、(2)差分比較器910及び(3)タイムスタンプフィールドを有する中間バッファ915〜925を有すること以外は、図6に示す実現例と同様である。
【0045】
フレームレートコントローラ及び中間バッファの追加の特徴により、焦点位置モジュールは、非焦点位置コンピュータからの同一フレームを2回以上符号化することを回避できる。特に復号器620〜630の1つが中間バッファ915〜925の1つに新しいフレームを書き込む場合、その復号器は中間バッファのタイムスタンプフィールドに時間を記録する。
【0046】
フレームレートコントローラ905は、特定のフレームレートで各中間バッファのタイムスタンプフィールドをチェックする。バッファのコンテンツが対応するリサイザに供給された先の時間より中間バッファのタイムスタンプの方が遅いことをフレームレートコントローラが検出した場合、フレームレートコントローラは、バッファの対応するリサイザに対してバッファのコンテンツを検索するように指示する。あるいは、バッファが対応するリサイザにより読み出された最後の時間とバッファのタイムスタンプとの間に差がないことをフレームレートコントローラが検出した場合、フレームコントローラはリサイザを呼び出してバッファのコンテンツを読み出すことを行なわない。これは、この場合、中間バッファが対応するリサイザにより最後に読み出されて以来新しいフレームを受信していないためである。同一フレームの複数回の読み出しを行なわないことにより、重複フレームの不必要な符号化をなくし、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約する。
【0047】
この利点を示すために、図10は、焦点コンピュータと非焦点コンピュータとの間の信号送信における遅延により、焦点位置コンピュータがある特定の重複フレームの符号化をスキップする一例を提示する。特に図10は、焦点位置モジュールの中間バッファ915〜925へのフレームの格納を示す。図中、時間の経過を左から右に示し、焦点位置中間バッファへの各参加者のフレームの格納を水平な線上に配置された点により示す。
【0048】
例えば時間0において、焦点位置中間バッファは焦点位置及び全ての非焦点参加者からの新しいフレームを有する。それらフレームは、図10においてF1、A1、B1及びC1でラベル付けされる。それらフレームの各々は符号化され、非焦点参加者に送信される。時間1までに格納される唯一の新しいフレームは焦点参加者の画像であり、図10においてフレームF2として識別される。従って、非焦点位置参加者のフレームは時間0以降変更されていないため、焦点位置モジュールはそれらフレームの検索及び符号化をスキップする。
【0049】
時間1と時間2との間において、焦点位置コンピュータは、焦点位置カメラから1つの新しいフレームを受信し、参加者Aから2つの新しいフレームを受信し、参加者Bから1つの新しいフレームを受信する。新しく到着したフレームは、図10においてそれぞれフレームF3、A2、A3及びB2として識別される。従って、焦点位置モジュールは、時間2までにサブフレームとしてフレームF3、A3及びB2を合成画像バッファに格納し、それら格納したサブフレームに基づいて合成画像を符号化及び送信する。この場合、フレームA2は、焦点位置モジュールにより検索される前に中間バッファにおいて上書きされたため、会議の他の参加者に対して失われる。また、時間2における中間バッファ925のコンテンツが時間0から変更されていないため、時間2においてリサイザ649(参加者Cのデータに対する)は中間バッファ925のコンテンツを検索しない。ここで時間0とは、中間バッファ925がリサイザ649により読み出された最後の時間である。
【0050】
種々の理由により、焦点位置コンピュータにおけるカメラ650は、ローカル画像取り込みモジュール651がカメラ650からフレームを受信した時に2つ以上の連続する時点間に同一フレームを生成する可能性がある。従って、ローカル焦点位置参加者Dの画像の重複処理を回避するために、焦点位置モジュール900は差分比較器910を利用する。特に、フレームレートコントローラ905は、特定のフレームレートでローカル画像取り込み651に対してローカルカメラ650からフレームを取り込むように指示する。図6の取り込みモジュール651とは異なり、図9のローカル画像取り込みモジュール651は取り込んだフレームを差分比較器910に供給する。差分比較器910は、合成画像バッファ655のセクション656にそのフレームを直接格納する。差分比較器910は、合成画像バッファのセクション656に格納した最後のフレームが受信フレームと同一でないか又はそれ程類似していないと判定する限り、そのセクション656に受信フレームを格納する。いくつかの実施形態において、差分比較器910は、比較器が合成画像バッファに格納した最後のフレームと受信フレームとの間の差を表す計測値を計算する。計測値が特定の閾値より小さい場合、比較器910は、合成画像バッファに格納した最後のフレームと受信フレームとが同一であるか又は非常に類似することを検出する。
【0051】
合成画像バッファに格納した最後のフレームと受信フレームとが同一であるか又は非常に類似すると比較器が判定した場合、比較器は、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約するために受信フレームを破棄する。それらフレームが同一であるか又は非常に類似すると判定しなかった場合、比較器は、合成画像バッファのセクション656に受信フレームを格納し、次にローカル画像取り込みからフレームを受信した時に差分比較を行なうためにそのフレームのコピーを維持する。
【0052】
上述のように、フレームレートコントローラの更新追跡及び比較器910の差分比較により、合成画像バッファ655の1つ以上のセクションは、焦点位置モジュール900が合成フレームを生成及び符号化している時に空になる可能性がある。従って、焦点位置モジュールによるそのような場合に生成される合成フレームは、1つ以上の空のサブフレームを有する。そのような空のサブフレームは、上述のように、フラグにより識別されてもよく又は非焦点コンピュータの復号器により自動的に識別されてもよい。
【0053】
重複フレームの処理及び符号化を回避することは、多人数参加型テレビ会議以外の多くの状況において有用である。例えばピアツーピアテレビ会議において、それは、他の参加者からのフレームの重複復号化又はローカルで取り込まれるフレームの重複符号化を回避するのに有用である。
【0054】
重複処理及び符号化を回避することは、テレビ会議設定においても有用である。図11は、1つのそのような設定を示す。特に図11は、コンピュータ1110がカメラからフレームを取り込み、それらフレームを符号化し、それらフレームをローカルに格納する例を示す。図示するように、コンピュータ1110は、特定のレートでビデオカメラ1105からフレームを取り込むローカル取り込みモジュールを有する。種々の理由により、カメラ1105は、ローカル画像取り込みモジュール1115がカメラからフレームを受信する時に2つ以上の連続する時点の間に同一フレームを生成する可能性がある。
【0055】
ローカル画像取り込みモジュール1115は、取り込まれた各フレームを差分比較器1120に供給する。比較器1120は、取り込まれたフレームを符号器1125に転送してもしなくてもよい。特に比較器1120は、取り込みモジュール1115から受信するフレームと比較器が符号器1125に供給した最後のフレームとを比較する。2つのフレームが同一であるか又は非常に類似する場合、差分比較器は符号器への受信フレームの供給を行なわない。あるいは、2つのフレームが同一でないか又はそれ程類似していない場合、差分比較器は符号化するために受信フレームを符号器に転送する。符号器は、受信するフレームを符号化し、それらフレームを記憶装置に格納する。記憶装置は、コンピュータメモリ、ハードディスク、DVD又は同様の媒体である。
【0056】
III.非焦点位置モジュール
図12は、本発明のいくつかの実施形態の非焦点位置モジュール515を示す。非焦点位置モジュールは、符号化及び復号化動作を実行する。符号化動作に対して、非焦点位置モジュール515は、ローカル画像取り込みモジュール1240、フレームレートコントローラ1242及び符号器1250を利用する。復号化動作に対して、非焦点位置モジュール515は、復号器1210、中間バッファ1215、パースペクティブ調整器1220及びローカル画像コントローラ1230を利用する。
【0057】
テレビ会議中、非焦点コンピュータに取り付けられたカメラ1225は、非焦点位置コンピュータを使用しているテレビ会議の参加者を撮影する。符号化動作中、ローカル画像取り込みモジュール1240は、カメラにより生成される映像フレームを受信して取り込む。フレームレートコントローラ1242により特定される特定のサンプリングレートで、ローカル画像取り込みモジュール1240は取り込まれたフレームを符号器1250に向け、符号器1250はフレームを符号化し且つ焦点位置コンピュータに送信する。いくつかの実施形態において、テレビ会議の状態の変化に従って、フレームレートコントローラ1242はテレビ会議中に特定のフレームレートを変更する。
【0058】
復号化動作中、非焦点モジュール515は、焦点位置モジュール510から合成フレームを受信し、非焦点コンピュータの表示装置1235に表示するためにそれらフレームを復号化する。この復号化動作については、図13を参照して更に説明する。図13は、非焦点位置モジュールの復号化処理1300を概念的に示す。
【0059】
図13に示すように、非焦点位置モジュールの復号化処理1300は、非焦点位置モジュールが焦点位置モジュールから合成フレームを含む映像ストリームを受信した(1305)時に開始する。次に、非焦点モジュール515の復号器1210は受信した合成フレームを復号化する(1310)。
【0060】
いくつかの実施形態において、復号器1210は、最初に合成フレームを構成するサブフレームを抽出することなく合成フレームを復号化する。いくつかの実施形態において、復号器は、空のままとなっているサブフレームを識別するために空フィールドフラグを使用する。他の実施形態において、復号器は、他の方法を介してサブフレームを識別できるため(合成フレームの各マクロブロックに関連するサブフレームを識別できるため)、空フィールドフラグに依存する必要はない。
【0061】
各復号化サブフレームは、テレビ会議の他の参加者のうちの1人のフレームを表す。合成フレームの復号化後、復号器は、復号化合成フレームのサブフレームを中間バッファ1215に格納する(1315)。いくつかの実施形態において、中間バッファ1215は3つの小さな中間バッファにより形成される。その小さな各中間バッファは、復号化合成フレームの潜在的な各サブフレームを格納するためのものである。1320において、パースペクティブ調整器は、中間バッファから復号化サブフレームを検索し、他の会議参加者の画像の透視図を調整する。上述のように、図4はそのような透視図の1つの例を示す。調整器1220は、調整した合成フレームをローカル画像コントローラ1230に供給する。ローカル画像コントローラは、ローカル非焦点位置テレビ会議参加者の映像フレームをローカル画像取り込みモジュール1240から受信する。ローカル画像コントローラ1230は、非焦点コンピュータの表示装置1235に表示するために、他の会議参加者の調整したフレーム及びローカル参加者の取り込んだフレームからテレビ会議ディスプレイプレゼンテーションを描画する(1325)。
【0062】
1330の後、非焦点復号化処理1300は、多人数参加型テレビ会議が終了したかを判定する(1335)。終了したと判定した場合、処理1300は終了する。終了していないと判定する場合、1305に戻り、別の符号化合成画像を受信する。
【0063】
上述のように、図13は、非焦点位置モジュールの復号化及び符号化動作の簡単化された概念図である。いくつかの実施形態において、非焦点位置モジュールは他のソフトウェアモジュールを含む。例えば図14は、非焦点位置モジュールの別の実現例を示す。この実現例は、非焦点位置モジュール1400が差分比較器1410を有すること以外は図12に示す実現例と同様である。
【0064】
この差分比較器は、図9の差分比較器910と同様の役割を果たす。特に差分比較器は、ローカルで取り込まれた同一の又は非常に類似するフレームの重複符号化を防止する。ローカル画像取り込みモジュール1240は、フレームを取り込むと、取り込んだフレームを符号器1250に直接送出するのではなく差分比較器1410に供給する。
【0065】
差分比較器1410は、符号器に供給した最後のフレームが取り込んだフレームと同一でないか又はそれ程類似していないと判定する限り、取り込んだフレームを符号器1250に供給する。いくつかの実施形態において、差分比較器1410は、比較器が符号器1250に供給した最後のフレームと受信フレームとの間の差を表す計測値を計算する。計測値が特定の閾値より小さい場合、比較器1410は、符号器に供給した最後のフレームと受信フレームとが同一であるか又は非常に類似することを検出する。
【0066】
受信フレームが符号器に供給された最後のフレームと同一であるか又は非常に類似すると比較器が判定した場合、比較器は、テレビ会議に関わるコンピュータの計算資源及び帯域幅リソースを節約するために受信フレームを破棄する。それらフレームが同一であるか又は非常に類似すると判定しなかった場合、比較器は、受信フレームを符号器1250に供給し、次にローカル画像取り込みからフレームを受信した時に差分比較を行なうためにそのフレームのコピーを維持する。
【0067】
いくつかの実施形態において、非焦点位置モジュールは、更新タイムトラッカを有するフレームレートコントローラ及びタイムスタンプを有する中間バッファを更に含む。先の節の焦点位置モジュールに対する説明と同様に、これら実施形態において、非焦点位置モジュールは、中間バッファ1215からパースペクティブ調整器1220に重複復号化画像を送出することを回避することにより計算資源を節約できる。
【0068】
上述の映像符号化、復号化及び配信技術が多くの利点を有することは、当業者には理解されるだろう。例えば、焦点位置モジュール510の映像合成方法は冗長映像データの除去を簡単化し、それによりテレビ会議中に多くの必要なネットワーク帯域幅を節約する。
【0069】
それら利点を示すために、図15は、4人のテレビ会議において映像データを合成する別の方法を示す。この方法において、焦点位置モジュールは、2×2形式1500で参加者のフレームを合成する。焦点位置510は、符号化し且つ結果として得られる符号化画像を各参加者に送出する。図15は、2×2合成フレーム1500の符号化の結果、異なる参加者からの映像データをインターリーブした映像ストリーム1550が得られることを示す。特に、図15に示される映像ストリーム1550の最初の部分は、インターリーブされた焦点位置参加者F及び非焦点位置参加者Aからの映像データを示す。
【0070】
このインターリーブにより、焦点位置モジュールが参加者に供給する映像ストリームから各参加者自身の映像データを除去することは困難になる。この除去を簡単にするために、1つの解決策は、(1)図16に示すように、3人の異なる非焦点参加者に対して3つの異なる合成映像フレームを生成し、(2)3つの異なる符号器を使用してそれら3つの異なる合成映像フレームを符号化することである。この方法により、参加者が受信する合成映像ストリームから各参加者の映像データは削除されるが、追加の符号器をサポートするためにより多くの処理リソースが必要とされる。
【0071】
IV.符号化の制約
A.概要
上記節IIで説明したように、焦点位置モジュールは、2つ以上のサブフレームを有する合成フレームを生成する。各サブフレームは、テレビ会議の参加者のうちの1人からのフレームである。いくつかの実施形態において、焦点位置モジュールは、非インターリーブ方式で各参加者のフレームを合成フレームに配置する。それら実施形態において、符号化処理は、各サブフレームの符号化が別のサブフレームのいずれの部分にも依存しないように制約のセットを利用する。
【0072】
図17は、いくつかの実施形態の焦点位置モジュールの符号器660の符号化処理1700を示す。合成フレームの符号化の前に、符号化処理1700は、合成フレームの種々のサブフレームの符号化が互いに依存しないままであることを保証するために、合成フレームの符号化に対する制約のセットを規定する(1710)。それら制約のいくつかの例を以下の節IV.B.で更に説明する。いくつかの実施形態において、符号化処理1700は、合成フレームに対する実行の度に制約のセットを規定せずに(1710)、参加者が会議に参加する度又は会議から離脱する度に制約規定動作を実行するようにしてもよい。
【0073】
1710の後、処理1700は、以下の動作を実行することにより合成フレームを反復的に符号化する。1715において、処理1700は、合成画像バッファ655から非符号化サブフレームを検索する。符号化の制約を使用して、符号化処理1700はその検索したサブフレームを符号化する(1720)。符号化サブフレームは、出力バッファに保管される(1725)。1725の後、処理1700は、符号化する別のサブフレームが存在するかを判定する(1730)。存在すると判定した場合、1715に戻り、合成画像バッファ655から次のサブフレームを取得する。存在しないと判定した場合、処理は終了する。
【0074】
B.制約
上述のように、符号化処理1700は、複数の制約を規定し(1710)、それら制約に基づいて合成フレームのサブフレームを符号化する(1720)。それら制約は、ブロック間符号化(interblock encoding)の制約、ブロック内符号化(intrablock encoding)の制約及びループフィルタリングの制約である。それら制約のいくつかの例を以下に説明する。
【0075】
1.ブロック間符号化の制約
ブロック間符号化の2つの例を以下に説明する。それら例は、(1)符号化中の探索ウィンドウのサイズに対する制約及び(2)画素ブロックを探索又は符号化するのに使用される目標サブ画素に対する制約である。ブロック間符号化は、1つ以上の参照フレームの1つ以上の部分を参照して現在のフレーム中の画素の1つのブロックを符号化する。ブロック間符号化は1つ以上の動き推定動作を含み、各動き推定動作は、現在のフレーム中の画素のブロックに最も適合する参照フレームの一部分を識別する。そのような識別により、現在のフレームの画素ブロックの符号化表現としての役割を果たすことができる動きベクトルが得られる。現在のフレームの画素ブロックを復号化中において、その動きベクトルは、現在のフレームの画素ブロックの画素値を提供する参照フレームブロックの一部分を識別するために使用される。
【0076】
符号器の動き推定動作は、参照フレームにおいて少なくとも1つの探索ウィンドウを規定する。その後、動き推定動作は、現在のフレームの画素ブロックに最も適合する参照フレームの一部分をウィンドウ内で探索する。その部分は、参照フレームの画素位置又は参照フレームのサブ画素位置と位置合わせされる。サブ画素位置は、参照フレームの非整数位置であり、画素位置は、参照フレームの整数位置に規定される画素を含む参照フレームの整数位置である。いくつかの実施形態において、符号器は、粗探索及び細探索を実行し且つ少なくとも一部の探索に対して種々の探索ウィンドウを使用する多段動き推定処理を使用してもよい。
【0077】
a)探索ウィンドウに対する制約
各参加者のサブフレームを独立させるために、各画素ブロックに対する探索ウィンドウは、特定の画素ブロックが位置付けられるサブフレームと同一のサブフレーム内に制限される必要がある。例えば図18は、本発明により許可される探索ウィンドウ1815を示す。この例において、現在の合成フレーム1801は、参照合成フレーム1802を使用して符号化される。符号化される画素ブロック1805は、参加者Aのサブフレーム1810内に位置付けられる。この画素ブロックを符号化するために、符号器は、いくつかの実施形態において初期動きベクトル1830により識別される位置を中心に配置される探索ウィンドウ1815内を探索する。いくつかの実施形態における初期動きベクトルは、デフォルト値に設定されるか、あるいは既にブロック間符号化された隣接する画素ブロックの動きベクトルから得られる。動き推定動作は、現在のフレームの画素ブロック1805に最も適合する探索ウィンドウ1815の参照サブフレーム1825の画素ブロック1835を識別するためにウィンドウ1815を探索する。図18に示すように、参照サブフレーム1825の画素ブロックは、動き推定動作により特定される最終的な動きベクトル1840により識別される。
【0078】
探索ウィンドウ1815内の任意の画素ブロックは、参照合成フレーム1802の参加者Aのサブフレーム1825内に位置付けられる。現在のフレーム1801の参加者Aのサブフレーム1810を受信する任意の復号器は、参照フレーム1802の参加者Aのサブフレームを有する。従って、復号器は、動き推定動作により特定される最終的な動きベクトル1840を使用して画素ブロック1805を再現できる。
【0079】
これに対して、図19は、本発明により許可されない探索ウィンドウの一例を示す。この例において、現在の合成フレーム1901は、参照合成フレーム1902を使用して符号化される。符号器は、参加者Aのサブフレーム1910内に位置付けられる画素ブロック1905を符号化する。
【0080】
図19は、動き推定動作に対する探索ウィンドウ1915を示す。探索ウィンドウの一部は、参加者Bのサブフレーム1925内にある。従って、この探索ウィンドウ1915が使用される場合、そのサブフレームの適合する画素ブロックを最終的な結果として得る。サブフレームは完全に独立して保持されるべきであるため、結果としてサブフレーム間に相互依存性を与える探索ウィンドウは許可されない。
【0081】
上記節IIで説明したように、探索ウィンドウ1915を許可しない理由は、焦点位置モジュール510が参加者Bに送出する圧縮合成フレームから参加者Bのサブフレーム1925を削除することを考慮することにより明らかとなるだろう。参加者Bの復号器1210が参照サブフレーム1925を受信しないため、動き推定動作により識別される最終的な動きベクトル(動きベクトル1935等)がサブフレーム1925内の画素ブロック(画素ブロック1940等)を指し示す場合、復号器1210は画素ブロック1905を再現できない。
【0082】
初期動きベクトルが2つのサブフレームの境界に近接するか又は他のサブフレーム内に位置する場合、探索ウィンドウは参照合成フレームの2つのサブフレームと重なる。それら双方の状況において、いくつかの実施形態は、探索ウィンドウを上に移動するか又は他のサブフレームに位置する探索ウィンドウの一部をトリミングすることにより、これらの探索ウィンドウの問題に対処する。
【0083】
図20は、トリミングされた探索ウィンドウ2020を結果として与える図19の探索ウィンドウ1915をトリミングする例を示す。トリミングされた探索ウィンドウ2020は、サブフレーム2025内のみにある。参加者Aのサブフレームを受信する任意の復号器は、参照フレーム1902の参加者Aのサブフレームを有する。従って、復号器は、画素ブロック2010を識別する最終的な動きベクトル2005(動き推定動作により特定される)を使用して画素ブロック1905を再現できる。探索ウィンドウ2020がサブフレーム2025の外側に位置することはないと仮定すると、最終的な動きベクトル2005及びそれに対応する画素ブロックは、サブフレーム2025内にあることが保証される。
【0084】
いくつかの実施形態における符号器は、探索ウィンドウ1915をトリミングするのではなく、探索ウィンドウ全体が所望のサブフレーム内になるようにその探索ウィンドウを他のサブフレームから離れる方向に移動する。図21は、図19に示す例に対するそのような移動の一例を示す。
【0085】
図22は、符号器660が探索ウィンドウを所望のサブフレーム内に留まらせる方法を示す。2205において、符号器660は、定義済みの方法を使用して、符号化される現在の画素ブロックに対して動きベクトル探索ウィンドウを選択する。しかし、符号化動作においてこの探索ウィンドウを利用する前に、符号器660は、探索ウィンドウが符号化される現在のフレームの画素ブロックと同一の合成参照フレームのサブフレーム(以下において目標サブフレームと呼ぶ)内に完全に存在するかをチェックする(2210)。
【0086】
探索ウィンドウが現在の画素ブロックと同一のサブフレーム内に完全に存在すると符号器が判定する場合(2210)、現在の画素ブロックに対する目標画素を見つけるために符号化動作において探索ウィンドウを利用する(2220)。完全に存在すると判定されない場合、符号器は、探索ウィンドウが目標サブフレームの外側に位置しないように探索ウィンドウを調整する(2215)。上述のように、探索ウィンドウは、目標サブフレームの外側に位置する部分をトリミングすることにより調整されるか、あるいは探索ウィンドウ全体が目標サブフレーム内になるように他のサブフレームから離れる方向に探索ウィンドウを移動することにより調整される。2215の後、符号器660は符号化動作に対して探索ウィンドウの残りの部分を利用する(2220)。
【0087】
b)目標サブ画素に対する制約
いくつかの実施形態において、符号器は、いくつかの実施形態の動き推定動作中に参照のサブ画素位置と位置合わせされる(すなわち、整数画素位置と位置合わせされない)ブロックを検査する。いくつかの実施形態の復号器は、いくつかの例において、サブ画素位置と位置合わせされる(すなわち、画素位置と位置合わせされない)参照フレームブロックを参照フレームから検索する必要がある。
【0088】
サブ画素位置と位置合わせされるブロックの検査及び検索は、符号器又は復号器がサブ画素位置において参照フレームに対する画像値(例えば、輝度値)を生成することを必要とする。サブ画素位置は、符号化動作中の現在のフレームの画素位置に対応することになる。画像値は、場合によっては縦列に垂直に位置合わせされる複数(例えば、6つの)画素の画像値の補間を必要とする補間動作を介して生成される。
【0089】
いくつかの実施形態において、符号器は、補間に使用される画素の垂直方向の各セットが目標サブフレームからの画素のみを含むことを保証するためにそのような補間動作に対して制約を与える。更にいくつかの実施形態において、符号器は、画素の水平方向のセットにわたる各補間が2つのサブフレームに及ぶ垂直方向の補間動作を介してのみ生成されるサブ画素値に依存しないことを保証するために補間動作に対して制約を与える。
【0090】
図23は、サブフレームの整数及び非整数画素位置にわたる補間の一例を示す。図中、整数画素位置は陰影を付けた正方形(例えば、正方形A又はB)で示され、1/2画素位置は白色の正方形(例えば、正方形b、h、s又はt)で示され、1/4画素位置は円(例えば、円a及びd)で示される。図23を簡単化するために、図中にはいくつかの1/2画素及び1/4画素位置のみを示す。整数画素位置の画像値は、補間の必要なく利用可能である。1/2レベル位置及び1/4レベル位置の小数画素の値は利用不可能であり、符号器がそれらの値を計算するために補間を実行する必要がある。
【0091】
各補間動作は、特定の長さを有する特定の補間フィルタにより実行される。いくつかの実施形態において、目標サブ画素位置に対する各補間動作は、目標サブ画素位置に対して水平又は垂直に位置付けられる画素値及び/又はサブ画素値のセットを使用して行なわれる。例えば、1/2画素の値を計算するために、いくつかの実施形態は長さ3の補間フィルタを使用する。ここで、長さは非整数画素を計算するために各方向で使用される画素数を示す。
【0092】
補間動作が2つのサブフレームに及ばないことを保証するために、いくつかの実施形態における符号器は、補間フィルタの長さを使用してサブフレーム境界を規定する。このサブフレーム境界で、動き推定動作は、サブ画素位置に位置合わせされたブロックを検査できない。
【0093】
例えば補間フィルタ長3を使用すると、1/2画素bはE、F、G、H、I及びJ画素の値を利用することにより補間される。1/2画素hは、A、C、G、M、R及びT画素の値を利用することにより補間される。同一サブフレームの画素値が使用される場合、補間動作において使用される画素が現在のサブフレームの外側に位置付けられることがなければ、h等の1/2画素は補間が行なわれる。この必要条件により、サブフレームの境界内に位置付けられるサブ画素の検査を禁止する特別な制約が作成される。それら境界領域の長さは、最長の垂直方向の補間フィルタの長さと等しい。
【0094】
例えば図23において、線2305は、2つの隣接するサブフレームの境界を示す。長さ3の補間フィルタの場合、この境界領域は、線2305から3画素離れた任意の位置である。例えば、1/2画素tはそのような境界領域内にある。1/2画素tの値の計算は、C、G、M、R、T及びV画素の補間を必要とする。しかし、画素Vは、現在のサブフレームの外側にある。1/2画素tの値は、現在のサブフレーム内の画素を使用して計算されない。従って、動き推定動作は、動きベクトルに対する目標位置としてこの1/2画素値を使用しない。
【0095】
1/2画素sは、その境界領域内に位置付けられる。しかし、1/2画素sは水平方向に位置付けられる2つの整数画素内に位置付けられる。1/2画素sは、同一サブフレーム内に位置付けられるK、L、M、N、P及びQを補間することにより計算される。従ってこの1/2画素は、動きベクトルに対する目標位置として使用される。
【0096】
いくつかの実施形態において、1/4画素値は、2つの最近接する整数画素値又は1/2画素値を平均し且つ切り上げることにより計算される。従って、1/4画素値の計算は、1/2画素がそれらの値を計算する時に要求された制約と同一の制約を有するべきである。
【0097】
図24は、符号器660の動き推定処理が動きベクトルに対する合成参照フレームの目標位置を判定するのに使用する処理2400を示す。図24に示さない初期化において、符号器660は、サブフレームの境界においてバッファ領域のセットを確立するために補間フィルタの長さを利用する。
【0098】
図25は、補間フィルタの長さが3画素である場合、1×4の合成画像バッファ2500に対する境界領域を示す一例を提示する。図25に示すように、境界バッファ領域2505〜2530はサブフレーム境界の3画素内にある。例えば、境界バッファ領域2515の1つのセクション2535は2540において拡大され、境界領域2515が参加者Aのサブフレーム2545内に位置付けられ且つ参加者Bのサブフレーム2550に対する境界に沿った深さ3画素の領域を範囲に含むことを示す。
【0099】
2405において、動きベクトルに対する次の可能な目標を選択する。目標位置が1つの境界領域内にないと判定した場合(2410)、目標位置を検査する(2425)(すなわち、目標位置により識別される参照フレームブロックと現在の参照フレームブロックとを比較する)。2425の後、動き推定動作を終了すべきかを判定する(2430)。終了すべきでないと判定した場合、2405に戻り、別の目標位置を選択する。終了すべきであると判定する場合、2425において処理2400により識別された最適な目標位置を選択し(2435)、その最適な位置を使用して動きベクトルを識別する(2435)。2435の後、処理は終了する。
【0100】
目標位置が1つの境界領域内にあると判定した場合(2410)、目標位置が整数位置であるかを判定する(2415)。整数位置であると判定した場合、上述した2425に移る。整数位置でないと判定した場合、目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素であるかを判定する(2420)。目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素であると判定される場合、上述の2425に移る。一方、目標位置が同一サブフレームの2つの整数画素間に水平に位置付けられる1/2画素ではないと判定される場合(2420)、選択した目標位置の検査を行なわず、単に上述の2430に移る。
【0101】
2.ブロック内符号化の制約
符号器660により実行される別の圧縮動作は、マクロブロック内予測である。マクロブロック内予測動作は、隣接するマクロブロックの選択された画素の値からマクロブロックの値を予測する。参加者のサブフレームを独立させるために、ブロック内予測に対するソース画素は、現在のサブフレーム内に位置付けられるマクロブロックから選択されるべきである。
【0102】
図26は、本発明のいくつかの実施形態において符号器660がブロック内予測を行う対象である2つのマクロブロック2605及び2610を示す。この例に示すように、双方のマクロブロックは、参加者Bのサブフレーム2615内に位置付けられる。マクロブロック「i」2605を取り囲むマクロブロック「a」〜「h」2620〜2634は、同一サブフレーム2615内に位置付けられる。マクロブロック「i」に対するブロック内予測を実行するためにそれらマクロブロックのうち任意の1つを使用することにより、参加者Bのサブフレーム内においてのみマクロブロックの依存性を生じる。従って、符号器660は、マクロブロック「i」2605に対してブロック内予測を行なう時にそれらマクロブロックのいずれか1つを使用できる。
【0103】
一方、マクロブロック「r」2610は、参加者Bのサブフレーム2615及び参加者Aのサブフレーム2640の境界に近接して位置付けられるため、「j」、「k」及び「l」2650〜2654等の隣接するマクロブロックのいくつかは参加者Aのサブフレーム内になる。それらマクロブロックを使用することにより、参加者Bのサブフレーム2615と参加者Aのサブフレーム2640との間に依存性を生じるため、符号器660は、マクロブロック「r」2610に対してブロック内予測を行なうのにそれらマクロブロックを使用しない。しかし、マクロブロック「m」〜「q」2656〜2664はマクロブロック「r」2610と同一のサブフレーム内にある。従って、符号器660は、マクロブロック「r」2610のブロック内予測に対してそれらマクロブロックを使用できる。符号器は、使用されるラスタ走査又は同様の技術のために「n」〜「q」2658〜2664等のいくつかのマクロブロックを使用できない。従って、ここで説明されるブロック内予測の制約は、特定のマクロブロックのブロック内予測に対する特定のマクロブロックの利用を符号器に対して単に許可するか又は許可しないかである(利用を要求するのではない)。
【0104】
3.ループフィルタの制約
符号器は、種々の符号化方法を使用して隣接する画素のブロックを符号化してもよい。例えば符号器は、ブロック間符号化、ブロック内符号化を使用して画素のブロックを符号化してもよく、あるいはブロック全体をスキップしてもよい。従って、種々の符号化方法を使用して符号化された隣接する画素ブロックは、ほぼ同等の値を有するべきであるにもかかわらず種々の値を有する可能性がある。それらアーティファクトを除去するために、フレームが動き予測動作において利用される前に、符号器は参照フレームにループフィルタを適用する。
【0105】
いくつかの実施形態において、非ブロック化フィルタはループフィルタリングに対して利用される。非ブロック化フィルタは、高圧縮された映像データに現れるアーティファクトのようなブロックの外観を減少するのを助長するために使用され、それにより映像フレームを向上する。使用される映像コーデックアルゴリズムに依存して、復号器又は復号器及び符号器の双方が非ブロック化フィルタを使用してもよい。参加者のサブフレームが独立しているため、フィルタリングは種々の参加者のサブフレームに位置付けられる画素間で行なわれる必要はない。
【0106】
図27は、いくつかの実施形態において画素のグループがフィルタリングのために選択される方法を示す。例を明示するために、画素及びサブフレームは一定の縮尺に従わずに描かれる。図27に示す例において、2つの画素のグループ2705及び2710は、フィルタリングのために選択される。第1のグループ2705の全ての画素は、参加者Aのサブフレーム2715の境界内に位置付けられる。従って、この画素のグループはフィルタリングされることを許可される。
【0107】
しかし、第2の画素のグループ2710は、参加者Aのサブフレーム2715と参加者Bのサブフレーム2720との間の境界を横切る。参加者Aのサブフレーム2715及び参加者Bのサブフレーム2720が独立しているため、異なるサブフレームに位置付けられる隣接する画素値の類似性又は差は一致し、符号化動作の結果とならない。従って、その画素のグループはフィルタリングのために選択されるべきではない。
【0108】
図28は、フィルタリングに対して制約を適用するために、本発明のいくつかの実施形態が利用する処理2800を示す。処理2800は、まずフィルタリングのために画素のグループを識別する(2805)。フィルタリングに必要な全ての画素がフィルタリングされる画素のグループと同一のサブフレーム内に位置付けられると判定される場合、フィルタリングを続行する(2815)。フィルタリングに必要な全ての画素がフィルタリングされる画素のグループと同一のサブフレーム内に位置付けられないと処理2800が判定した場合(2810)、グループはフィルタリングのために選択されず、2805に戻り、そのグループを改良するか(2805)又はフィルタリングのために次の画素のグループを見つける。2815の後、フィルタリング処理2800は、フィルタリング処理が終了したかを判定する(2820)。終了したと判定した場合、処理2800は終了する。終了していないと判定した場合、2805に戻り、次の画素のグループを見つけて非ブロック化する。
【0109】
C.帯域幅を節約するための符号化の制約
上述の符号化の制約は、焦点位置モジュールが種々の会議参加者からの種々のフレームを有する合成フレームを生成することを許可する。例えば、ある特定の合成フレームは、1人の参加者に対する相対的に大きなブロック内符号化サブフレーム(Iサブフレーム)及び1人以上の他の参加者に対する相対的に小さなブロック間符号化サブフレーム(P又はBサブフレーム)から構成されてもよい。
【0110】
いくつかの実施形態において、符号器は、従来の合成フレームの送信のエラーに対処するために、組み合わされたブロック内符号化サブフレーム及びブロック間符号化サブフレームを含むそのような合成フレームを送出する。そのような組み合わされた合成フレームは、テレビ会議中に不足する可能性のあるネットワーク帯域幅を節約する。これを更に説明する前に、いくつかの実施形態の符号器及び復号器により使用されるハンドシェイクプロトコルの簡単な概要を以下に説明する。
【0111】
1.プロトコル
いくつかの実施形態において、1人の参加者の符号器(例えば、焦点位置モジュール符号器)は、別の参加者(例えば、非焦点位置モジュール復号器)と通信するためにハンドシェイクプロトコルを使用し、フレームが送信中にドロップされるかを決定する。例えば、非焦点復号器が特定の参加者に関係するサブフレームの1つ以上の部分を完全に受信していないと判定する場合、復号器は、焦点位置符号器にリフレッシュ要求を送出し、破損したサブフレームを識別する。復号器が誤り伝播を阻止する符号器からデータを受信するまで(例えば、特定の参加者に対するブロック内符号化サブフレームを受信するまで)、復号器は符号器にリフレッシュ要求を繰り返し送信する。いくつかの実施形態において、サブフレームは、各々がいくつかのマクロブロックを含むいくつかのスライス(例えば、2つのスライス)に分割される。これら実施形態において、復号器が完全性に対する解析を行なうサブフレームの部分はスライスである。
【0112】
2.帯域幅の節約
帯域幅節約技術のいくつかの例を以下に説明する。MPEG−4の例を使用してそれら技術を説明する。MPEG−4において、参加者の1画像はフレームと呼ばれる。フレームは、I、P又はBフレームである。Iフレームは、フレーム自体に含まれる情報のみを使用して符号化される。従って、それらフレームは他のフレームとは無関係に復号化される。しかし、IフレームはP及びBフレームより非常に大きい。
【0113】
P及びBフレームは、他のI又はPフレームの情報を使用して符号化される。従って、それらフレームはIフレームより小さく、送信するのに必要な帯域幅が小さい。通常、1つのIフレーム、並びにいくつかのP及びBフレームは、共にグループ化され、繰返し構造を形成する。繰返し構造のIフレーム及びPフレームはアンカーフレームと呼ばれ、他のP及びBフレームを生成することを要求される。Iフレーム又はPフレームが送信中に失われると、失われたフレームに依存する繰返し構造の残りのフレームは無用になり、復号化されなくなる。
【0114】
以下の項における第1の例は、帯域幅を節約するための多人数参加型会議中の合成フレーム内の種々のサブフレームの種々の処理を説明する。第2の例は、いくつかの後続フレームのIフレームの異なる部分を送信することにより帯域幅を均等化する方法を説明する。第3の例は、Iフレームの送信を必要としない送信中にフレームが失われた後、同期をとるための長期フレーム参照の用途を説明する。
【0115】
a)合成フレームの特定のサブフレームのリフレッシュ
本発明のいくつかの実施形態において、焦点位置モジュール510及び非焦点モジュール515は、サブフレームの全体的な独立性を利用して失われたフレームの再送信中に帯域幅を節約する。図29のシーケンス図2900は、参加者A、B、C及び焦点位置Fが会議に参加しているいくつかの実施形態において交換されるフレームの例を示す。このシーケンス図において、縦軸は時間の経過(上から下へ)を表し、横軸はオブジェクト間のメッセージの受け渡しを示す。参加者A、B及びCの非焦点モジュール2905〜2915及び焦点モジュール2920は、ライフライン、すなわち各モジュールが存在いている時間の限界を示す垂直の破線の上部にラベル付けされた矩形で示される。それらモジュール間のメッセージは、送信オブジェクトのライフラインから受信オブジェクトのライフラインへの水平の矢印で描かれる。
【0116】
焦点位置モジュール2920と非焦点モジュール2905〜2915との間で交換されるフレームは、モジュールから発生し且つモジュールで終了する矢印付きの線と共に示される。各フレームは、非焦点位置モジュール2905〜2915の1つから送出される参加者のサブフレームを表すか又は焦点位置モジュール2920により送出される合成フレームを表す。
【0117】
この例において、各非焦点モジュールはステップ1で焦点位置2920にPフレームを送出する。しかし、図29に示すように、参加者Cの非焦点モジュール2915により送出されるフレームは失われ、焦点位置2920により受信されない。焦点位置は、繰返し構造に符号化されたフレームのセットを送信及び受信する途中にあるため、後続フレームを生成するために参加者Cの非焦点位置モジュール2915からの新しいIフレームを要求する。
【0118】
従って、ステップ2において、焦点位置2920は参加者Cの非焦点位置モジュール2915にIフレームを送出するように要求する。次のステップ3において、参加者C2915はIフレームを焦点位置2920に送出する。次のステップ4において、焦点位置モジュール2920は、参加者A、B及び焦点位置ポイント参加者の存在するPフレームとステップ3において受信した参加者CのIフレームとから合成フレームを作成し、特定の参加者が受信する合成画像から各参加者自身の画像を削除した後にそれら合成フレームを参加者A、B及びCに送出する。送信は継続し、全ての参加者は受信する全ての後続フレームを復号化できる。
【0119】
図29に示されるリフレッシュ方法は、符号器が参加者のサブフレームを独立させておくことができず且つ全ての参加者からのIフレームの再送信を要求する必要がある状況に比して利点を有する。図30は、合成フレームの参加者のサブフレームが別個に保持されない場合に再送信を行なう方法の一例を示す。
【0120】
参加者のサブフレームが合成フレームにおいて別個に保持されない場合、焦点位置モジュール3020は、ステップ2において全ての非焦点位置モジュール3005〜3015からの新しいIフレームを要求する必要がある。次のステップ3において、全ての非焦点モジュール3005〜3015は、Iフレームを焦点位置モジュール3020に送出する必要がある。ステップ4において、焦点位置3020は、全ての参加者のIフレームから合成フレームを生成し、非常に大きなそれら合成フレームを送信する必要がある。一方、図29に示す方法は、1人の参加者に対してのみブロック内符号化データを送信するため、そのように大きな合成フレームの影響を受けない。
【0121】
また、組み合わされたブロック内符号化サブフレーム及びブロック間符号化サブフレームを含む合成フレームを送出することには、焦点位置が第1の参加者のサブフレームを第2の参加者に送信したが第2の参加者により適切に受信されなかった当該第1の参加者に対するサブフレームを焦点位置符号器がリフレッシュしようとする場合にも、大きな利点がある。
【0122】
b)複数の後続フレームに対するフレームのリフレッシュ
フレーム(例えば、多人数参加型会議のサブフレーム又はピアツーピア会議のフレーム)をリフレッシュするのに必要なデータを複数の後続フレームに分割するために、いくつかの実施形態は、上述の符号化の制約をフレームの1つ以上のセクションに拡張する。例えば、いくつかの実施形態は、合成フレームのサブフレーム境界に関係なく符号化の制約を規定するが、スライス境界においてそれら制約を規定する。それら制約の使用により、符号器はフレームをリフレッシュするのに必要なデータを複数の後続フレームに分割できる。
【0123】
そのような方法は、ピアツーピア会議及び多人数参加型会議において利点がある。ピアツーピア会議中、符号器は、先のフレームが失われたと判定した場合に新しいMPEG繰返し構造を開始するためにIフレームを再送信しなければならない。そのようなIフレームは、多くのネットワーク帯域幅を消費する。従って、いくつかの実施形態における符号器は、フレーム全体より小さいフレームのセクションに対する2つ以上のフレームを介してブロック内符号化データを提供する。
【0124】
図31は、ピアツーピア会議の場合のその1つの例を示す。この例において、2人の参加者がピアツーピア送信に関係する。各参加者は、符号器及び復号器を有する。各復号器は、適切なフレームを受信した時に他者の符号器に通知する。一方の符号器が他者の復号器に送出するフレームに対する例を示す。
【0125】
時間軸3105に示すように、符号器は、時間1においてフレーム3110を送出する。そのフレーム3110は送信中に破損するか又は失われる。動作遅延及び送信遅延のために、符号器は時間3までそのエラーを認識しない。復号器がフレームにおいてビットエラーが存在することを符号器に通知するか又はフレーム3110の送信中にエラーが発生したことに符号器が気付いた時、符号器はそのエラーを認識する。MPEG繰返し構造の残りのフレームがフレーム3110なしでは復号化されないため、符号器は新しい繰返し構造を開始するためにIフレームを再送信する必要がある。
【0126】
IフレームがPフレーム又はBフレームより非常に大きいため、符号器は次のフレーム3115を上側スライス3120及び下側スライス3125の2つのスライスに分割する。符号器は、ブロック内符号化スライスである上側スライスを送出し、下側スライス3125を破棄する(すなわち、下側スライス3125に対する映像データを送出しない)。符号器は、次のフレーム3130を上側スライス3135及び下側スライス3140に分割する。しかし、このフレームの場合、符号器は、上記符号化の制約の観点から上側スライス3135をブロック間符号化し、下側スライス3140をブロック内符号化する。
【0127】
時間4において、復号器は、受信した上側スライス3120及び後続のスライス3135に対するブロック間符号化データの組合せを使用して、復号化リフレッシュフレーム3145の上半分を生成する。復号器は、復号化リフレッシュフレーム3145の下半分を下側スライス3140になるように規定する。時間4の後、符号器が次の不良サブフレーム又は失われたサブフレームに気付くまで、全ての後続フレームは別個のサブフレームに分割されることなく正常に符号化される。
【0128】
他の実施形態は、ブロック内符号化データを3つ以上のフレームに分割してもよい。更にこの技術は、多人数参加型会議における2つ以上の合成フレームの中の特定のサブフレームに対するブロック内符号化データを分割するために使用される。更に、上述の方法は、送信エラーに対して何も行なわない他の状況においてIフレームデータを送信するのに使用される。例えばこの方法は、新しいIフレームがテレビ会議の映像シーケンスにおいて確立される必要がある度に使用される。
【0129】
c)帯域幅を節約するための長期参照フレームの用途
本発明のいくつかの実施形態において、符号器は、符号器と復号器との間で上述のハンドシェイクを使用して、復号器が受信した最後の周知の完全な参照フレーム(Iフレーム又はPフレーム)を追跡する。復号器は、この最後の周知の完全なフレーム又は長期参照フレームを保管する。送信エラーの場合、符号器は、保管される長期参照フレームを使用して後続フレームの符号化を開始する。従って、符号器は、大きなIフレームを送信する必要なく更なる誤り伝播を阻止する。この技術は、ピアツーピア会議及び多人数参加型会議において使用される。
【0130】
図32は、長期参照フレームの用途の例を示す。この例において、符号器及び復号器は、フレーム3205が復号器により受信された最後の周知の完全な参照フレームであることを理解している。このフレームは、Iフレーム又はPフレームであってもよい。時間2において、復号器は、フレーム3210を受信しないか、あるいはビットエラーを有することに気付いて符号器に通知する。フレームが復号器において失われた時間と符号器が通知された時間との間の遅延のために、この例における符号器は、復号器がフレーム3210を受信していないことを時間6において判定する。この時まで、時間3〜5において送信された全てのフレームはフレーム3210に依存していたため、復号器はそれらフレームを使用できない。
【0131】
時間6において、符号器は後続フレームを符号化するためにフレーム3210〜3225を使用することを停止する。その代わり、符号器はフレーム3230を符号化するために長期参照フレーム3205を使用する。復号器は、そのフレームのコピーを保管したためフレーム3230を復号化できる。符号器は、復号器により受信されたフレーム1又はフレーム6を参照として使用して全ての後続フレームを符号化するため、送信は同期される。
【0132】
V.コンピュータシステム
図33は、本発明のいくつかの実施形態を実現するのに使用されるコンピュータシステムを概念的に示す。コンピュータシステム3300は、バス3305、プロセッサ3310、システムメモリ3315、読み出し専用メモリ3320、永久記憶装置3325、入力装置3330及び出力装置3335を含む。
【0133】
バス3305は、コンピュータシステム3300の内部装置間の通信をサポートする全てのシステム、周辺装置及びチップセットバスを一括して表す。例えば、バス3305は、プロセッサ3310を読み出し専用メモリ3320、システムメモリ3315及び永久記憶装置3325に通信可能に接続する。
【0134】
プロセッサ3310は、本発明の処理を実行するために、それら種々の記憶装置から実行する命令及び処理するデータを検索する。読み出し専用メモリ(ROM)3320は、プロセッサ3310及びコンピュータシステムの他のモジュールにより必要とされる静的データ及び命令を格納する。一方、永久記憶装置3325は書き込み/読み出しメモリ素子である。この装置は、コンピュータシステム3300がoffの時でも命令及びデータを格納する不揮発性記憶装置である。本発明のいくつかの実施形態は、大容量記憶装置(磁気ディスク又は光ディスク及びその対応するディスクドライブ等)を永久記憶装置3325として使用する。他の実施形態は、取外し可能記憶装置(フロッピディスク又はzip(R)ディスク及びその対応するディスクドライブ等)を永久記憶装置として使用する。
【0135】
永久記憶装置3325と同様に、システムメモリ3315は書き込み/読み出しメモリ素子である。しかし、記憶装置3325とは異なり、システムメモリはランダムアクセスメモリ等の揮発性書き込み/読み出しメモリである。システムメモリは、プロセッサが実行時に必要とする命令及びデータの一部を格納する。いくつかの実施形態において、本発明の処理は、システムメモリ3315、永久記憶装置3325及び/又は読み出し専用メモリ3320に格納される。
【0136】
バス3305は、入力装置3330及び出力装置3335を更に接続する。入力装置により、ユーザはコンピュータシステムに対して情報を通信し且つコマンドを選択できる。入力装置3330は、英数字キーボード及びカーソルコントローラを含む。出力装置3335は、コンピュータシステムにより生成される画像を表示する。例えば、それら装置はIC設計レイアウトを表示する。出力装置は、陰極線管(CRT)ディスプレイ又は液晶ディスプレイ(LCD)等の表示装置及びプリンタを含む。
【0137】
最後に、図33に示すように、バス3305はコンピュータ3300をネットワークアダプタ(不図示)を介してネットワーク3365に結合する。このように、コンピュータは、コンピュータのネットワーク(ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)又はイントラネット等)又は複数のネットワークのうちの1つのネットワーク(インターネット等)の一部となる。コンピュータシステム3300の任意又は全ての構成要素は、本発明と共に使用されてもよい。しかし、任意の他のシステム構成が本発明と共に使用されてもよいことは、当業者には理解されるだろう。
【0138】
多くの特定の詳細を参照して本発明を説明したが、本発明は、本発明の趣旨の範囲から逸脱せずに他の特定の形態で実現できることが当業者には理解されるだろう。本発明の趣旨の範囲から逸脱せずに、説明された要素に対して均等物が代用されてもよく且つ種々の変更が行なわれてもよい。例えば、合成フレームの生成後に符号化を行なうのではなく、いくつかの実施形態の焦点位置モジュール510は、送信のために符号化フレームを1つの合成フレームにパッケージ化する前に非焦点参加者のフレームを符号化してもよい。
【0139】
上述のように、いくつかの実施形態は設定された間隔で合成を実行し、遅れて到着するフレーム(図10のA3等)がまだ送出されていない先のフレーム(図10のA2等)を上書きすることを可能にする。しかし、他の実施形態は、まだ送出されていないフレームが破棄されることを防止してもよい。例えばいくつかの実施形態は、設定された間隔で合成フレームを送出することを待たず、ある特定の数の新しいフレームが非焦点参加者から受信された時に合成フレームを送出してもよい。従って、本発明は、上述の詳細により限定されず、添付の請求の範囲により規定されることが当業者には理解されるだろう。
【特許請求の範囲】
【請求項1】
複数参加者を含むテレビ会議中に画像を符号化する方法であって、
a)少なくとも2つの参加装置からの少なくとも2つのサブ画像を有する合成画像を生成することと、
b)各サブ画像を別個に制約符号化することとを含み、前記制約符号化は、各サブ画像の符号化を他のサブ画像の符号化とは無関係にする制約のセットに基づいて前記サブ画像を符号化する方法。
【請求項2】
a)前記符号化は、ブロック間符号化動作に対して動き推定処理を実行することを含み、
b)前記制約のセットは、前記動き推定処理中に使用される探索ウィンドウの場所に対する制約を含む請求項1に記載の方法。
【請求項3】
前記動き推定処理を実行することは、
a)前記動き推定処理が目標サブ画像内で探索を実行することを伴い、
b)前記場所に対する制約は、前記探索ウィンドウが前記目標サブ画像内に位置付けられることを要求する請求項2に記載の方法。
【請求項4】
a)部分的に前記目標サブ画像の外側に位置する探索ウィンドウを識別することと、
b)全体が前記目標サブ画像内に位置するように前記識別された探索ウィンドウをトリミングすることとを更に含む請求項3に記載の方法。
【請求項5】
a)少なくとも部分的に前記目標サブ画像の外側に位置する探索ウィンドウを識別することと、
b)全体が前記目標サブ画像内に位置するように前記識別された探索ウィンドウを移動することとを更に含む請求項3に記載の方法。
【請求項6】
a)前記符号化は、サブ画素位置に位置合わせされるブロックを検査することを含み、 b)前記制約のセットは、サブ画素位置に位置合わせされるブロックが検査される領域に対する制約を含む請求項1に記載の方法。
【請求項7】
前記検査は、画素のセットに対応する画像値のセットに対して補間動作を実行することを含む請求項6に記載の方法。
【請求項8】
サブ画像間の境界領域のセットを確立することを更に含み、前記境界領域の大きさは、前記補間動作に対して使用される前記画素のセットの画素数により判定される請求項7に記載の方法。
【請求項9】
前記境界領域内にある複数のサブ画素位置に位置合わせされるブロックの検査を行なわないことを更に含む請求項8に記載の方法。
【請求項10】
前記境界領域内で検査されない前記ブロックは、複数の1/2画素位置に位置合わせされる複数のブロックである請求項9に記載の方法。
【請求項11】
前記境界領域内にあり且つ当該境界領域内の2つの整数画素位置の間に位置付けられる複数の1/2画素位置に位置合わせされる複数のブロックを検査することを更に含む請求項10記載の方法。
【請求項12】
前記境界領域内で検査されない前記ブロックは、1/4画素位置に位置合わせされる複数のブロックである請求項9に記載の方法。
【請求項13】
前記境界領域内にあり且つ当該境界領域の2つの整数位置内の整数画素位置及び1/2画素位置を利用して補間される複数の1/4画素位置に位置合わせされる複数のブロックを検査することを更に含む請求項12に記載の方法。
【請求項14】
前記制約符号化は、
a)特定のサブ画像の画素セットに対してブロック内予測を実行することと、
b)前記特定のサブ画像の外側に位置する画素のセットを前記ブロック内予測から除外することとを含む請求項1に記載の方法。
【請求項15】
a)特定のサブ画像の前記符号化中にループフィルタ動作を実行することと、
b)前記特定のサブ画像にない画素を前記ループフィルタ動作から除外することとを更に含む請求項1に記載の方法。
【請求項16】
映像コンテンツの1つの中央配信装置を有する多人数参加型テレビ会議において映像コンテンツを配信する方法であって、
a)前記中央配信装置において、各参加装置からビデオ画像を受信することと、
b)前記受信したビデオ画像から合成画像を生成することと、
c)前記合成画像を符号化することと、
d)前記符号化した合成画像を前記参加装置に送信することとを含む方法。
【請求項17】
前記合成画像は、第1の参加装置に対するブロック間符号化画像及び第2の参加装置に対するブロック内符号化画像を含む請求項16に記載の方法。
【請求項18】
a)ブロック内符号化データを介して特定の参加装置からの画像データのリフレッシュを要求する条件を検出することと、
b)前記特定の参加装置からの第1の画像の一部分をブロック内符号化することと、
c)第1の合成画像の前記第1の画像の前記ブロック内符号化した部分を送信することと、
d)前記特定の参加装置からの第2の画像の第1の部分をブロック内符号化することと、
e)第2の合成画像の前記第2の画像の前記ブロック内符号化した部分を送信することとを更に含み、
f)前記第1の画像の前記ブロック内符号化した部分及び前記第2の画像の前記ブロック内符号化した部分は、前記特定の参加装置の画像データをリフレッシュする請求項16に記載の方法。
【請求項19】
前記第2の画像の第2の部分をブロック間符号化することと、前記第2の部分の前記ブロック間符号化を送信することとを更に含み、前記第2の部分はブロック内符号化された前記第1の画像の前記部分に対応する請求項18に記載の方法。
【請求項20】
少なくとも2人の参加者間のテレビ会議において映像コンテンツを配信する方法であって、
a)ブロック内符号化データを介して第1の参加装置の画像データのリフレッシュを要求する条件を検出することと、
b)前記第1の参加装置の第1の画像の一部分をブロック内符号化することと、
c)前記第1の画像の前記ブロック内符号化した部分を前記第2の参加装置に送信することと、
d)前記第1の参加装置の第2の画像の第1の部分をブロック内符号化することと、
e)前記第2の画像の前記ブロック内符号化した部分を前記第2の参加装置に送信することとを含み、
f)前記第1の画像の前記ブロック内符号化した部分及び前記第2の画像の前記ブロック内符号化した部分は、前記第1の参加装置の画像データをリフレッシュする方法。
【請求項21】
前記第2の画像の第2の部分をブロック間符号化することと、前記第2の部分の前記ブロック間符号化を前記第2の参加装置に送信することを更に含み、前記第2の部分はブロック内符号化された前記第1の画像の前記部分に対応する請求項20に記載の方法。
【請求項22】
2人の参加者間のテレビ会議において映像コンテンツを配信する方法であって、
a)第1の参加装置において長期参照フレームを格納することと、
b)第1の参加装置が第2の参加装置により送信された映像データをドロップしたことを前記第1の参加装置が第2の参加装置に通知することと、
c)前記長期参照フレームを参照して規定されるブロック間符号化データを第2の参加装置が前記第2の参加装置から前記第1の参加装置に送出することとを含む方法。
【請求項23】
映像コンテンツの1つの中央配信装置を有する多人数参加型テレビ会議において映像コンテンツを配信する方法であって、
a)前記中央配信装置において、各参加装置から参加者ビデオ画像を受信することと、 b)前記受信した参加者画像から合成画像を生成することと、
c)前記合成画像を前記参加装置に送信することとを含む方法。
【請求項24】
前記中央配信装置はデータ記憶装置を含み、前記方法は、前記受信した参加者画像の各々が前記受信した他の参加者画像のいずれともインターリーブされないような非インターリーブ方式で前記受信した参加者画像の各々を前記データ記憶装置に配置することを更に含む請求項23に記載の方法。
【請求項25】
a)特定の参加装置の各々に対して別個の合成画像を作成することと、
b)前記特定の参加装置の別個の合成画像を前記特定の参加装置に送信する前に、前記別個の合成画像から前記特定の参加装置の各々より受信した参加者画像を除去することとを更に含む請求項23に記載の方法。
【請求項26】
特定の各参加装置の別個の合成画像において除去された前記特定の参加装置からの画像の代わりにインディケータを配置することを更に含む請求項25記載の方法。
【請求項27】
特定の各参加装置において、
a)前記特定の参加装置に送信された前記合成画像を受信することと、
b)前記特定の参加装置によって画像を取り込むことと、
c)表示するために、前記特定の参加装置の前記取り込んだ画像と共に前記送信された合成画像内に含まれる前記参加者画像を描画することとを更に含む請求項25に記載の方法。
【請求項28】
前記合成画像は複数の画素セットを含み、各画素セットは前記画素セットと関連する前記参加者画像を識別する識別子を有し、前記方法は、各参加装置において、前記送信した合成画像内に含まれる前記参加者画像を識別するために前記画素セットの識別子を利用することを更に含む請求項27に記載の方法。
【請求項29】
前記受信した画像を合成する前に前記受信した参加者画像の各々をサイズ変更することを更に含む請求項23に記載の方法。
【請求項30】
a)前記中央配信装置において、前記合成画像を生成する前に前記受信したビデオ画像を保管することと、
b)各参加装置からの前記受信したビデオ画像を前記特定の参加装置からの前記保管した先のビデオ画像と比較することと、
c)前記受信したビデオ画像及び前記先に受信したビデオ画像が同一でない場合に、前記合成画像を生成する際に前記受信したビデオ画像を利用することとを更に含む請求項23に記載の方法。
【請求項31】
多人数参加型テレビ会議に対する中央配信装置であって、
a)前記テレビ会議の参加装置のセットから受信されるビデオ画像を復号化する復号器のセットと、
b)前記復号化したビデオ画像から合成ビデオ画像を生成する合成エンジンと、
c)前記合成ビデオ画像を符号化する少なくとも1つの符号器とを具備する中央配信装置。
【請求項32】
前記合成エンジンが復号化ビデオ画像のセットに基づいて合成ビデオ画像を生成する前に、前記復号化ビデオ画像のセットを格納する中間バッファのセットを更に具備する請求項31に記載の中央配信装置。
【請求項33】
前記合成エンジンが合成ビデオ画像を生成するレートを調整するフレームレートコントローラを更に具備する請求項31に記載の中央配信装置。
【請求項34】
特定の各参加装置に送出される合成ビデオ画像から前記特定の参加装置の画像を除去する冗長性除去器を更に具備する請求項31に記載の中央配信装置。
【請求項35】
多人数参加型テレビ会議において映像コンテンツを受信及び送信するアーキテクチャであって、
a)焦点位置モジュールと、
b)非焦点位置モジュールのセットと、
c)前記非焦点位置モジュールのセットからビデオ画像を受信し且つ前記非焦点位置モジュールのセットに合成ビデオ画像を送信する前記焦点位置モジュールとを具備し、各合成ビデオ画像は、複数の非焦点位置モジュールから受信した複数のビデオ画像の合成であるアーキテクチャ。
【請求項36】
前記焦点位置モジュールは、特定の各参加装置に送出される合成ビデオ画像から前記特定の参加装置の画像を削除する請求項35に記載のアーキテクチャ。
【請求項37】
映像コンテンツの1つの中央ディストリービュータを有する多人数参加型テレビ会議において映像コンテンツを配信するコンピュータプログラムを格納するコンピュータ可読媒体であって、前記コンピュータプログラムは、
a)前記中央配信装置において、各参加装置から参加者ビデオ画像を受信し、
b)前記受信した参加者画像から合成画像を生成し、
c)前記合成画像を前記参加者に送信する命令のセットを含むコンピュータ可読媒体。
【請求項38】
前記中央配信装置はデータ記憶装置を含み、前記コンピュータプログラムは、前記受信した参加者画像の各々が他の前記受信した参加者画像のいずれともインターリーブされないような非インターリーブ方式で前記受信した参加者画像の各々を前記データ記憶装置に配置する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【請求項39】
前記コンピュータプログラムは、
a)特定の各参加装置に対して別個の合成画像を作成し、
b)特定の各参加装置の別個の合成画像を前記特定の参加装置に送信する前に、前記別個の合成画像から前記特定の参加装置から受信した参加者画像を除去する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【請求項40】
前記コンピュータプログラムは、前記受信した画像を合成する前に前記受信した参加装置からの画像の各々をサイズ変更する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【請求項1】
複数参加者を含むテレビ会議中に画像を符号化する方法であって、
a)少なくとも2つの参加装置からの少なくとも2つのサブ画像を有する合成画像を生成することと、
b)各サブ画像を別個に制約符号化することとを含み、前記制約符号化は、各サブ画像の符号化を他のサブ画像の符号化とは無関係にする制約のセットに基づいて前記サブ画像を符号化する方法。
【請求項2】
a)前記符号化は、ブロック間符号化動作に対して動き推定処理を実行することを含み、
b)前記制約のセットは、前記動き推定処理中に使用される探索ウィンドウの場所に対する制約を含む請求項1に記載の方法。
【請求項3】
前記動き推定処理を実行することは、
a)前記動き推定処理が目標サブ画像内で探索を実行することを伴い、
b)前記場所に対する制約は、前記探索ウィンドウが前記目標サブ画像内に位置付けられることを要求する請求項2に記載の方法。
【請求項4】
a)部分的に前記目標サブ画像の外側に位置する探索ウィンドウを識別することと、
b)全体が前記目標サブ画像内に位置するように前記識別された探索ウィンドウをトリミングすることとを更に含む請求項3に記載の方法。
【請求項5】
a)少なくとも部分的に前記目標サブ画像の外側に位置する探索ウィンドウを識別することと、
b)全体が前記目標サブ画像内に位置するように前記識別された探索ウィンドウを移動することとを更に含む請求項3に記載の方法。
【請求項6】
a)前記符号化は、サブ画素位置に位置合わせされるブロックを検査することを含み、 b)前記制約のセットは、サブ画素位置に位置合わせされるブロックが検査される領域に対する制約を含む請求項1に記載の方法。
【請求項7】
前記検査は、画素のセットに対応する画像値のセットに対して補間動作を実行することを含む請求項6に記載の方法。
【請求項8】
サブ画像間の境界領域のセットを確立することを更に含み、前記境界領域の大きさは、前記補間動作に対して使用される前記画素のセットの画素数により判定される請求項7に記載の方法。
【請求項9】
前記境界領域内にある複数のサブ画素位置に位置合わせされるブロックの検査を行なわないことを更に含む請求項8に記載の方法。
【請求項10】
前記境界領域内で検査されない前記ブロックは、複数の1/2画素位置に位置合わせされる複数のブロックである請求項9に記載の方法。
【請求項11】
前記境界領域内にあり且つ当該境界領域内の2つの整数画素位置の間に位置付けられる複数の1/2画素位置に位置合わせされる複数のブロックを検査することを更に含む請求項10記載の方法。
【請求項12】
前記境界領域内で検査されない前記ブロックは、1/4画素位置に位置合わせされる複数のブロックである請求項9に記載の方法。
【請求項13】
前記境界領域内にあり且つ当該境界領域の2つの整数位置内の整数画素位置及び1/2画素位置を利用して補間される複数の1/4画素位置に位置合わせされる複数のブロックを検査することを更に含む請求項12に記載の方法。
【請求項14】
前記制約符号化は、
a)特定のサブ画像の画素セットに対してブロック内予測を実行することと、
b)前記特定のサブ画像の外側に位置する画素のセットを前記ブロック内予測から除外することとを含む請求項1に記載の方法。
【請求項15】
a)特定のサブ画像の前記符号化中にループフィルタ動作を実行することと、
b)前記特定のサブ画像にない画素を前記ループフィルタ動作から除外することとを更に含む請求項1に記載の方法。
【請求項16】
映像コンテンツの1つの中央配信装置を有する多人数参加型テレビ会議において映像コンテンツを配信する方法であって、
a)前記中央配信装置において、各参加装置からビデオ画像を受信することと、
b)前記受信したビデオ画像から合成画像を生成することと、
c)前記合成画像を符号化することと、
d)前記符号化した合成画像を前記参加装置に送信することとを含む方法。
【請求項17】
前記合成画像は、第1の参加装置に対するブロック間符号化画像及び第2の参加装置に対するブロック内符号化画像を含む請求項16に記載の方法。
【請求項18】
a)ブロック内符号化データを介して特定の参加装置からの画像データのリフレッシュを要求する条件を検出することと、
b)前記特定の参加装置からの第1の画像の一部分をブロック内符号化することと、
c)第1の合成画像の前記第1の画像の前記ブロック内符号化した部分を送信することと、
d)前記特定の参加装置からの第2の画像の第1の部分をブロック内符号化することと、
e)第2の合成画像の前記第2の画像の前記ブロック内符号化した部分を送信することとを更に含み、
f)前記第1の画像の前記ブロック内符号化した部分及び前記第2の画像の前記ブロック内符号化した部分は、前記特定の参加装置の画像データをリフレッシュする請求項16に記載の方法。
【請求項19】
前記第2の画像の第2の部分をブロック間符号化することと、前記第2の部分の前記ブロック間符号化を送信することとを更に含み、前記第2の部分はブロック内符号化された前記第1の画像の前記部分に対応する請求項18に記載の方法。
【請求項20】
少なくとも2人の参加者間のテレビ会議において映像コンテンツを配信する方法であって、
a)ブロック内符号化データを介して第1の参加装置の画像データのリフレッシュを要求する条件を検出することと、
b)前記第1の参加装置の第1の画像の一部分をブロック内符号化することと、
c)前記第1の画像の前記ブロック内符号化した部分を前記第2の参加装置に送信することと、
d)前記第1の参加装置の第2の画像の第1の部分をブロック内符号化することと、
e)前記第2の画像の前記ブロック内符号化した部分を前記第2の参加装置に送信することとを含み、
f)前記第1の画像の前記ブロック内符号化した部分及び前記第2の画像の前記ブロック内符号化した部分は、前記第1の参加装置の画像データをリフレッシュする方法。
【請求項21】
前記第2の画像の第2の部分をブロック間符号化することと、前記第2の部分の前記ブロック間符号化を前記第2の参加装置に送信することを更に含み、前記第2の部分はブロック内符号化された前記第1の画像の前記部分に対応する請求項20に記載の方法。
【請求項22】
2人の参加者間のテレビ会議において映像コンテンツを配信する方法であって、
a)第1の参加装置において長期参照フレームを格納することと、
b)第1の参加装置が第2の参加装置により送信された映像データをドロップしたことを前記第1の参加装置が第2の参加装置に通知することと、
c)前記長期参照フレームを参照して規定されるブロック間符号化データを第2の参加装置が前記第2の参加装置から前記第1の参加装置に送出することとを含む方法。
【請求項23】
映像コンテンツの1つの中央配信装置を有する多人数参加型テレビ会議において映像コンテンツを配信する方法であって、
a)前記中央配信装置において、各参加装置から参加者ビデオ画像を受信することと、 b)前記受信した参加者画像から合成画像を生成することと、
c)前記合成画像を前記参加装置に送信することとを含む方法。
【請求項24】
前記中央配信装置はデータ記憶装置を含み、前記方法は、前記受信した参加者画像の各々が前記受信した他の参加者画像のいずれともインターリーブされないような非インターリーブ方式で前記受信した参加者画像の各々を前記データ記憶装置に配置することを更に含む請求項23に記載の方法。
【請求項25】
a)特定の参加装置の各々に対して別個の合成画像を作成することと、
b)前記特定の参加装置の別個の合成画像を前記特定の参加装置に送信する前に、前記別個の合成画像から前記特定の参加装置の各々より受信した参加者画像を除去することとを更に含む請求項23に記載の方法。
【請求項26】
特定の各参加装置の別個の合成画像において除去された前記特定の参加装置からの画像の代わりにインディケータを配置することを更に含む請求項25記載の方法。
【請求項27】
特定の各参加装置において、
a)前記特定の参加装置に送信された前記合成画像を受信することと、
b)前記特定の参加装置によって画像を取り込むことと、
c)表示するために、前記特定の参加装置の前記取り込んだ画像と共に前記送信された合成画像内に含まれる前記参加者画像を描画することとを更に含む請求項25に記載の方法。
【請求項28】
前記合成画像は複数の画素セットを含み、各画素セットは前記画素セットと関連する前記参加者画像を識別する識別子を有し、前記方法は、各参加装置において、前記送信した合成画像内に含まれる前記参加者画像を識別するために前記画素セットの識別子を利用することを更に含む請求項27に記載の方法。
【請求項29】
前記受信した画像を合成する前に前記受信した参加者画像の各々をサイズ変更することを更に含む請求項23に記載の方法。
【請求項30】
a)前記中央配信装置において、前記合成画像を生成する前に前記受信したビデオ画像を保管することと、
b)各参加装置からの前記受信したビデオ画像を前記特定の参加装置からの前記保管した先のビデオ画像と比較することと、
c)前記受信したビデオ画像及び前記先に受信したビデオ画像が同一でない場合に、前記合成画像を生成する際に前記受信したビデオ画像を利用することとを更に含む請求項23に記載の方法。
【請求項31】
多人数参加型テレビ会議に対する中央配信装置であって、
a)前記テレビ会議の参加装置のセットから受信されるビデオ画像を復号化する復号器のセットと、
b)前記復号化したビデオ画像から合成ビデオ画像を生成する合成エンジンと、
c)前記合成ビデオ画像を符号化する少なくとも1つの符号器とを具備する中央配信装置。
【請求項32】
前記合成エンジンが復号化ビデオ画像のセットに基づいて合成ビデオ画像を生成する前に、前記復号化ビデオ画像のセットを格納する中間バッファのセットを更に具備する請求項31に記載の中央配信装置。
【請求項33】
前記合成エンジンが合成ビデオ画像を生成するレートを調整するフレームレートコントローラを更に具備する請求項31に記載の中央配信装置。
【請求項34】
特定の各参加装置に送出される合成ビデオ画像から前記特定の参加装置の画像を除去する冗長性除去器を更に具備する請求項31に記載の中央配信装置。
【請求項35】
多人数参加型テレビ会議において映像コンテンツを受信及び送信するアーキテクチャであって、
a)焦点位置モジュールと、
b)非焦点位置モジュールのセットと、
c)前記非焦点位置モジュールのセットからビデオ画像を受信し且つ前記非焦点位置モジュールのセットに合成ビデオ画像を送信する前記焦点位置モジュールとを具備し、各合成ビデオ画像は、複数の非焦点位置モジュールから受信した複数のビデオ画像の合成であるアーキテクチャ。
【請求項36】
前記焦点位置モジュールは、特定の各参加装置に送出される合成ビデオ画像から前記特定の参加装置の画像を削除する請求項35に記載のアーキテクチャ。
【請求項37】
映像コンテンツの1つの中央ディストリービュータを有する多人数参加型テレビ会議において映像コンテンツを配信するコンピュータプログラムを格納するコンピュータ可読媒体であって、前記コンピュータプログラムは、
a)前記中央配信装置において、各参加装置から参加者ビデオ画像を受信し、
b)前記受信した参加者画像から合成画像を生成し、
c)前記合成画像を前記参加者に送信する命令のセットを含むコンピュータ可読媒体。
【請求項38】
前記中央配信装置はデータ記憶装置を含み、前記コンピュータプログラムは、前記受信した参加者画像の各々が他の前記受信した参加者画像のいずれともインターリーブされないような非インターリーブ方式で前記受信した参加者画像の各々を前記データ記憶装置に配置する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【請求項39】
前記コンピュータプログラムは、
a)特定の各参加装置に対して別個の合成画像を作成し、
b)特定の各参加装置の別個の合成画像を前記特定の参加装置に送信する前に、前記別個の合成画像から前記特定の参加装置から受信した参加者画像を除去する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【請求項40】
前記コンピュータプログラムは、前記受信した画像を合成する前に前記受信した参加装置からの画像の各々をサイズ変更する命令のセットを更に含む請求項37記載のコンピュータ可読媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【公開番号】特開2012−178840(P2012−178840A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−85860(P2012−85860)
【出願日】平成24年4月4日(2012.4.4)
【分割の表示】特願2008−509154(P2008−509154)の分割
【原出願日】平成18年4月27日(2006.4.27)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2012−85860(P2012−85860)
【出願日】平成24年4月4日(2012.4.4)
【分割の表示】特願2008−509154(P2008−509154)の分割
【原出願日】平成18年4月27日(2006.4.27)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]