IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ライブアリーナ テクノロジーズ アクチエボラグの特許一覧

特表2024-538056共有ビデオストリームを生成するシステムおよび方法
<>
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図1
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図2
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図3
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図4
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図5
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6a
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6b
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6c
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6d
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6e
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図6f
  • 特表-共有ビデオストリームを生成するシステムおよび方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-18
(54)【発明の名称】共有ビデオストリームを生成するシステムおよび方法
(51)【国際特許分類】
   H04N 21/2665 20110101AFI20241010BHJP
   H04N 21/262 20110101ALI20241010BHJP
   H04N 21/242 20110101ALI20241010BHJP
【FI】
H04N21/2665
H04N21/262
H04N21/242
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521912
(86)(22)【出願日】2022-10-14
(85)【翻訳文提出日】2024-05-28
(86)【国際出願番号】 SE2022050933
(87)【国際公開番号】W WO2023063870
(87)【国際公開日】2023-04-20
(31)【優先権主張番号】2151267-8
(32)【優先日】2021-10-15
(33)【優先権主張国・地域又は機関】SE
(81)【指定国・地域】
(71)【出願人】
【識別番号】524135738
【氏名又は名称】ライブアリーナ テクノロジーズ アクチエボラグ
【氏名又は名称原語表記】LIVEARENA TECHNOLOGIES AB
(74)【代理人】
【識別番号】100109380
【弁理士】
【氏名又は名称】小西 恵
(74)【代理人】
【識別番号】100109036
【弁理士】
【氏名又は名称】永岡 重幸
(72)【発明者】
【氏名】ダニエルソン,マグナス
(72)【発明者】
【氏名】ヴァン デン ハアク,ポール
(72)【発明者】
【氏名】ビョークマン,アンドレアス
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA10
5C164FA26
5C164SB10P
5C164SB41S
5C164SC04P
5C164SC21P
5C164SD12S
5C164YA21
(57)【要約】
共有デジタルビデオストリームを提供する方法が開示される。この方法は、以下のステップを含む:収集ステップにおいて、少なくとも2つのデジタルビデオソース(120)から、複数の一次デジタルビデオストリーム(210)をそれぞれ収集し;同期ステップにおいて、前記複数の一次デジタルビデオストリーム(210)を共通時間基準(260)に対して時間同期させ;パターン検出ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)を分析して、第1のパターンセットから選択された少なくとも1つのパターン(212)を検出し;生成ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)の連続的に考慮されたフレーム(213)および前記検出されたパターン(212)に基づいて、前記共有デジタルビデオストリームを出力デジタルビデオストリーム(230)として生成し;および、公開ステップにおいて、前記出力デジタルビデオストリーム(230)を、前記共有デジタルビデオストリームの消費者に継続的に提供し、ここで、前記同期ステップは、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリーム(230)に少なくとも前記待ち時間が提供されることを含み、および、前記パターン検出ステップは、前記複数の一次デジタルビデオストリーム(210)の情報を考慮することを含み、前記情報は、前記出力デジタルビデオストリーム(230)の生成にまだ使用されていない、時間同期された一次デジタルビデオストリーム(210)のフレームよりも後のフレーム(213)に存在する。本発明はまたシステムおよびコンピュータソフトウエア製品に関する。
【選択図】 図5
【特許請求の範囲】
【請求項1】
共有デジタルビデオストリームを提供する方法であって、前記方法は、以下のステップを含む方法:
収集ステップにおいて、少なくとも2つのデジタルビデオソース(120)から、複数の一次デジタルビデオストリーム(210)をそれぞれ収集し;
同期ステップにおいて、前記複数の一次デジタルビデオストリーム(210)を共通時間基準(260)に対して時間同期させ;
パターン検出ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)を分析して、第1のパターンセットから選択された少なくとも1つのパターン(212)を検出し;
生成ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)の連続的に考慮されたフレーム(213)および前記検出されたパターン(212)に基づいて、前記共有デジタルビデオストリームを出力デジタルビデオストリーム(230)として生成し;および、
公開ステップにおいて、前記出力デジタルビデオストリーム(230)を、前記共有デジタルビデオストリームの消費者に継続的に提供し、
ここで、前記同期ステップは、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリーム(230)に少なくとも前記待ち時間が提供されることを含み、および、
前記パターン検出ステップは、前記複数の一次デジタルビデオストリーム(210)の情報を考慮することを含み、前記情報は、前記出力デジタルビデオストリーム(230)の生成にまだ使用されていない、時間同期された一次デジタルビデオストリーム(210)のフレームよりも後のフレーム(213)に存在する。
【請求項2】
請求項1に記載の方法であって、
前記複数の一次デジタルビデオストリーム(210)の少なくとも2つは、当該一次デジタルビデオストリーム(210)を提供するそれぞれの遠隔接続された参加者クライアント(121)が関与する共有デジタルビデオ通信サービス(110)の一部として提供される、方法。
【請求項3】
請求項2に記載の方法であって、
前記収集ステップは、前記共有デジタルビデオ通信サービス(110)から前記複数の一次デジタルビデオストリーム(210)の少なくとも1つを収集することを含む、方法。
【請求項4】
請求項2または3に記載の方法であって、
前記収集ステップは、前記複数の一次デジタルビデオストリーム(210)の少なくとも1つを、前記共有デジタルビデオ通信サービス(110)の外部の情報源(300)から収集された外部デジタルビデオストリーム(301)として収集することを含む、方法。
【請求項5】
請求項1から4のいずれか1項に記載の方法であって、
前記複数の一次デジタルビデオストリーム(210)の少なくとも1つは、偏位したビデオエンコーディング、フレームレート、アスペクト比、および/または解像度を有する、方法。
【請求項6】
請求項1から5のいずれか1項に記載の方法であって、
前記収集ステップは、前記複数の一次デジタルビデオストリーム(210)の少なくとも2つを共通プロトコル(240)に変換することを含み、前記共通プロトコル(240)は、デジタルビデオデコーディングまたはデジタルビデオエンコーディングを実行することなく、生データのバイナリ形式でデジタルビデオデータを格納することを規定し、前記共通プロトコル(240)はまた、前記格納されたデジタルビデオデータに関連する指定された時点に関連付けられたメタデータ(242)を格納することを規定する、方法。
【請求項7】
請求項6に記載の方法であって、
前記メタデータ(242)は、使用されるデジタルビデオエンコーディング、解像度、フレームレートまたはアスペクト比など、当該一次デジタルビデオストリーム(210)のフォーマットに関する情報を含む、方法。
【請求項8】
請求項6または7に記載の方法であって、
前記収集ステップは、異なるエンコーディングフォーマットを使用してエンコードされた複数の一次デジタルビデオストリーム(210)に対して、異なるフォーマット固有の収集機能を使用することを含む、方法。
【請求項9】
請求項6から8のいずれか1項に記載の方法であって、
前記変換することは、前記複数の一次デジタルビデオストリーム(210)のそれぞれの生データのバイナリデータを、より小さなデータセット(241)に分割すること、および、前記より小さなデータセット(241)の各々を前記共通時間基準(260)の各時間に関連付けることを含む、方法。
【請求項10】
請求項6から9のいずれか1項に記載の方法であって、
前記変換することは、必要に応じて、前記複数の一次デジタルビデオストリーム(210)の前記生データのバイナリデジタルビデオデータを、共通のフレームレートおよび共通の解像度にダウンサンプリングまたはアップサンプリングすることを含む、方法。
【請求項11】
請求項10に記載の方法であって、
前記複数の一次デジタルビデオストリーム(210)のそれぞれは、個別のフレームまたはフレームのシーケンス(213)として、前記共通の時間基準(260)に順に関連付けられた対応するタイムスタンプに関連付けられた個別のバッファ(250)に格納される、方法。
【請求項12】
請求項10または11に記載の方法であって、
オーバーレイまたはエフェクトなどのデジタルビデオ情報(220)の少なくとも1つの追加部分が、それぞれの個別のバッファ(250)に、前記共通時間基準(260)に順に関連付けられた対応するタイムスタンプにそれぞれ関連付けられた個別のフレームまたはフレームのシーケンスとして格納される、方法。
【請求項13】
請求項1から12のいずれか1項に記載の方法であって、以下のステップをさらに含む方法:
前記イベント検出ステップにおいて、前記複数の一次デジタルビデオストリーム(210)を個別に分析して、第1のイベントセットから選択された少なくとも1つのイベント(211)を検出する。
【請求項14】
請求項6から12および13のいずれか1項に記載の方法であって、
前記イベント検出ステップは、前記共通プロトコル(240)を使用して、前記検出されたイベント(211)を記述するメタデータ(242)を、当該イベント(211)が検出された一次デジタルビデオストリーム(210)に関連付けて記憶することを含む、方法。
【請求項15】
請求項13または14に記載の方法であって、
前記イベント検出ステップは、第1の訓練されたニューラルネットワークまたは他の機械学習コンポーネント(132a)により、前記イベント(211)を自動的に検出するために、前記複数の一次デジタルビデオストリーム(210)のそれぞれを分析することを含む、方法。
【請求項16】
請求項15に記載の方法であって、
前記イベント(211)は、プレゼンテーションスライドの変更であり、
前記イベント検出ステップは、以下の少なくとも1つを含む、方法:
第1に、スライドの第1の画像とそれに続くスライドの第2の画像との差の画像解析に基づいてイベントを検出すること(211);および、
第2に、前記第2の画像の情報複雑性の画像解析に基づいて前記イベントを検出すること(211)。
【請求項17】
請求項15に記載の方法であって、
前記イベント(211)は、デジタルビデオ通信サービス(110)に対する参加者クライアント(121)の通信接続の喪失であり、および、
前記検出ステップは、当該参加者クライアント(121)に対応する一次デジタルビデオストリーム(210)の一連の後続フレーム(213)の画像解析に基づいて、当該参加者クライアント(121)が通信接続を喪失したことを検出することを含む、方法。
【請求項18】
請求項1から17のいずれか1項に記載の方法であって、
前記共通時間基準(260)は、共通オーディオ信号(111)を含み、
前記共通オーディオ信号(111)は、前記複数の一次デジタルビデオストリーム(210)のそれぞれの1つをそれぞれ提供する少なくとも2つの遠隔接続された参加者クライアント(121)がそれぞれ関与する共有デジタルビデオ通信サービス(110)に対して共通である、方法。
【請求項19】
請求項1から17のいずれか1項に記載の方法であって、
前記複数の一次デジタルビデオストリーム(210)の少なくとも2つは、それぞれの参加者クライアント(121)によって共有デジタルビデオ通信サービス(110)に提供され、そのような各参加者クライアント(121)は、当該参加者クライアント(121)に提供される前記出力デジタルビデオストリーム(230)の一部として提供される時間同期要素(231)の到着時間を検出するように構成されたそれぞれのローカル同期ソフトウエア(125)を有し、および、
前記共通時間基準(260)は、前記検出された到着時間に少なくとも部分的に基づいて決定される、方法。
【請求項20】
請求項1から19のいずれか1項に記載の方法であって、
前記共通時間基準(260)は、前記複数の一次デジタルビデオストリーム(210)の第1のもののオーディオ部分(214)と前記第1の一次デジタルビデオストリーム(210)の画像部分(215)との間の検出された不一致に少なくとも部分的に基づいて決定され、前記不一致は、前記第1の一次デジタルビデオストリーム(210)において視聴される発話中の参加者(122)のデジタルリップシンクビデオ分析に基づく、方法。
【請求項21】
請求項1から20のいずれか1項に記載の方法であって、
前記待ち時間は最大30秒、例えば最大5秒、例えば最大1秒、例えば最大0.5秒である、方法。
【請求項22】
請求項1から21のいずれか1項に記載の方法であって、
前記パターン検出ステップは、第2の訓練されたニューラルネットワークまたは他の機械学習コンポーネント(134a)により、前記パターン(212)を自動的に検出するために、前記複数の一次デジタルビデオストリーム(120)を協調して分析することを含む、方法。
【請求項23】
請求項1から22のいずれか1項に記載の方法であって、
前記検出されたパターン(212)は、各々がそれぞれの参加者クライアント(121)に関連付けられた、共有ビデオ通信サービス(110)への少なくとも2人の異なる発話中の参加者(122)を含む発話パターンを含み、前記発話中の参加者(122)の各々は、前記複数の一次デジタルビデオストリーム(210)のそれぞれの1つにおいて視聴される、方法。
【請求項24】
請求項1から23のいずれか1項に記載の方法であって、
前記生成ステップは、前記出力デジタルビデオストリーム(230)における前記複数の一次デジタルビデオストリーム(210)のそれぞれの可視性;視覚的および/または聴覚的なビデオコンテンツの配置;使用される視覚的または聴覚的効果;および/または前記出力デジタルビデオストリーム(230)の出力モードに関する、予め決定されたおよび/または動的に可変なパラメータのセットに基づいて、前記出力デジタルビデオストリーム(230)を生成することをさらに含む、方法。
【請求項25】
請求項1から24のいずれか1項に記載の方法であって、
前記複数の一次デジタルビデオストリーム(210)の少なくとも1つが、デジタルビデオ通信サービス(110)に提供され、および、
前記公開ステップは、前記出力デジタルビデオストリーム(230)を、前記通信サービス(110)の参加者クライアント(121)、または外部消費者(150)など、前記通信サービス(110)に提供することを含む、方法。
【請求項26】
請求項1から25のいずれか1項に記載の方法であって、
前記生成ステップは、中央サーバ(130)によって実行され、前記出力デジタルビデオストリーム(230)を、API(137)を介してライブビデオストリームとして1つまたは複数の同時消費者に提供する、方法。
【請求項27】
共有デジタルビデオストリームを提供するコンピュータソフトウエア製品であって、前記コンピュータソフトウエア製品は、実行された際に以下のステップを実行するよう構成されるコンピュータソフトウエア製品:
収集ステップにおいて、少なくとも2つのデジタルビデオソース(120)から、複数の一次デジタルビデオストリーム(210)がそれぞれ収集され;
同期ステップにおいて、前記複数の一次デジタルビデオストリーム(210)が共通時間基準(260)に対して時間同期され;
パターン検出ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)が分析されて、第1のパターンセットから選択された少なくとも1つのパターン(212)を検出し;
生成ステップにおいて、前記時間同期された複数の一次デジタルビデオストリーム(210)の連続的に考慮されたフレーム(213)および前記検出されたパターン(212)に基づいて、前記共有デジタルビデオストリームが出力デジタルビデオストリーム(230)として生成され;および、
公開ステップにおいて、前記出力デジタルビデオストリーム(230)が、前記共有デジタルビデオストリームの消費者に継続的に提供され、
ここで、前記同期ステップは、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリーム(230)に少なくとも前記待ち時間が提供されることを含み、および、
前記パターン検出ステップは、前記複数の一次デジタルビデオストリーム(210)の情報を考慮することを含み、前記情報は、前記出力デジタルビデオストリーム(230)の生成にまだ使用されていない、時間同期された一次デジタルビデオストリーム(210)のフレームよりも後のフレーム(213)に存在する。
【請求項28】
共有デジタルビデオストリームを提供するシステム(100)であって、前記システム(100)は中央サーバ(130)を備え、前記中央サーバは以下の機能を備えるシステム:
少なくとも2つのデジタルビデオソース(120)から、複数の一次デジタルビデオストリーム(210)をそれぞれ収集するよう構成される収集機能(131);
前記複数の一次デジタルビデオストリーム(210)を共通時間基準(260)に対して時間同期させるよう構成される同期機能(133);
前記時間同期された複数の一次デジタルビデオストリーム(210)を分析して、第1のパターンセットから選択された少なくとも1つのパターン(212)を検出するよう構成されるパターン検出機能(134);
前記時間同期された複数の一次デジタルビデオストリーム(210)の連続的に考慮されたフレーム(213)および前記検出されたパターン(212)に基づいて、前記共有デジタルビデオストリームを出力デジタルビデオストリーム(230)として生成するよう構成される生成機能(135);および、
前記出力デジタルビデオストリーム(230)を、前記共有デジタルビデオストリームの消費者に継続的に提供するよう構成される公開機能(136)、
ここで、前記同期機能(133)は、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリーム(230)に少なくとも前記待ち時間が提供されるよう構成され、および、
前記パターン検出機能(134)は、前記複数の一次デジタルビデオストリーム(210)の情報を考慮するよう構成され、前記情報は、前記出力デジタルビデオストリーム(230)の生成にまだ使用されていない、時間同期された一次デジタルビデオストリーム(210)のフレームよりも後のフレーム(213)に存在する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルビデオストリームを生成するための、特に、2つ以上の異なるデジタル入力ビデオストリームに基づいてデジタルビデオストリームを生成するための、システム、コンピュータソフトウエア製品および方法に関する。好ましい実施形態において、デジタルビデオストリームは、特に複数の異なる同時接続ユーザが参加するデジタルビデオ会議、またはデジタルビデオ会議ないしミーティングシステムのコンテキストにおいて生成される。生成されたデジタルビデオストリームは、外部に公開(published)されてもよいし、デジタルビデオ会議またはデジタルビデオ会議システム内で公開されてもよい。
【0002】
他の実施形態では、本発明は、デジタルビデオ会議ではないが、複数のデジタルビデオ入力ストリームが同時に処理され、生成されるべきデジタルビデオストリームに結合されるコンテキストに適用される。例えば、このようなコンテキストは、教育的または指導的なものであってよい。
【背景技術】
【0003】
Microsoft(登録商標)Teams(登録商標)、Zoom(登録商標)、Google(登録商標) Meet(登録商標)など、多くのデジタルビデオ会議システムが知られており、2人以上の参加者が、ローカルで録画されたデジタルビデオとオーディオを使用してバーチャルに会議を行い、参加者全員にブロードキャストすることで、物理的な会議をエミュレートすることができる。
【0004】
このようなデジタルビデオ会議ソリューションを改善する一般的なニーズがあり、特に、視聴コンテンツの生成(制作)に関して、どのようなコンテンツを、どのような時間に、誰に、どのような配信チャネルを通じて見せるかといったことが重要である。
【0005】
たとえば、現在発話中の参加者を自動的に検出し、その発話中の参加者の対応するビデオフィード(video feed)を他の参加者に表示するシステムもある。多くのシステムでは、現在表示されている画面、ビューイングウィンドウ、デジタルプレゼンテーションなどのグラフィックを共有することが可能である。しかし、バーチャルミーティングがより複雑になるにつれ、現在利用可能なすべての情報のうち、どの情報を各時点で各参加者に表示すべきかをサービス側が把握することは、すぐに難しくなるであろう。
【0006】
他の例では、プレゼンテーションしている参加者がデジタルプレゼンテーションのスライドについて話しながらステージ上を動き回る。この場合、システムは、プレゼンテーションを表示するか、発表者を表示するか、あるいはその両方を表示するか、あるいはその2つを切り替えるかを決定する必要がある。
【0007】
自動生成プロセスによって、多数の入力デジタルビデオストリームに基づいて1つまたは複数の出力デジタルビデオストリームを生成し、そのような生成されたデジタルビデオストリームまたはストリーム群を1人または複数の消費者に提供することが望ましい場合がある。
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら多くの場合、このようなデジタルビデオ会議システムが直面する多くの技術的な困難のために、動的な会議画面のレイアウトマネージャや他の自動化された生成機能が、どのような情報を表示すべきかを選択することは困難である。
【0009】
第1に、デジタルビデオ会議はリアルタイム性を重視するため、遅延が小さいことが重要である。異なる参加者が異なるハードウエアを使用して参加するなど、異なる受信デジタルビデオストリームが、異なる遅延、異なるフレームレート、異なるアスペクト比、または異なる解像度と関連付けられる場合、これは問題となる。多くの場合、このような受信デジタルビデオストリームは、整形された(well-formed)ユーザ体験のための処理が必要とする。
【0010】
第2に、時間同期の問題がある。外部デジタルビデオストリームや参加者が提供するデジタルビデオストリームなどの、多様な入力デジタルビデオストリームは、典型的には中央サーバ等に供給されるため、そのようなデジタルビデオフィードをそれぞれ同期させる絶対的な時間は存在しない。大き過ぎる遅延と同様に、同期されていないデジタルビデオフィードは、ユーザ体験の低下につながる。
【0011】
第3に、複数参加者間のデジタルビデオ会議は、異なるエンコーディングまたはフォーマットを持つ異なるデジタルビデオストリームを含む可能性があり、これはデコードと再エンコーディングを必要とし、遅延と同期の点で問題が生じる。また、このようなエンコーディングは、計算負荷が高く、ハードウエア要件の点で高価となる。
【0012】
第4に、異なるデジタルビデオソースが異なるフレームレート、異なるアスペクト比、異なる解像度に関連付けられる可能性があるという事実は、メモリ割り当てのニーズが予測不可能に変化すること、継続的なバランスを必要とし得る。その結果、遅延や同期の問題が追加的に発生する可能性がある。その結果、大きなバッファが必要となる。
【0013】
第5に、参加者は、接続性の変動、離脱/再接続などの点で様々な困難を経験する可能性があり、整形されたユーザ体験を自動的に生成する上でさらなる困難をもたらす。
【0014】
これらの問題は、多数の参加者がいる;参加者が異なるハードウエアおよび/またはソフトウエアを使用して接続している;外部から提供されたデジタルビデオストリームを使用している;画面共有をしている;複数のホストを使用しているなど、より複雑な会議の状況で増幅される。
【0015】
教育や指導のためのデジタルビデオ生成システムのように、複数の入力デジタルビデオストリームに基づいて出力デジタルビデオストリームを生成すべき場合、対応する問題が他のコンテキストで生じる。
【0016】
本発明は、上述した問題の1つまたは複数を解決するものである。
【課題を解決するための手段】
【0017】
したがって、本発明は、共有デジタルビデオストリームを提供するための方法に関する。この方法は、以下のステップを含む:収集ステップにおいて、少なくとも2つのデジタルビデオソースから、複数の一次デジタルビデオストリームをそれぞれ収集し;同期ステップにおいて、前記複数の一次デジタルビデオストリームを共通時間基準に対して時間同期させ;パターン検出ステップにおいて、前記時間同期された複数の一次デジタルビデオストリームを分析して、第1のパターンセットから選択された少なくとも1つのパターンを検出し;生成ステップにおいて、前記時間同期された複数の一次デジタルビデオストリームの連続的に考慮された複数のフレームおよび前記検出されたパターンに基づいて、前記共有デジタルビデオストリームを出力デジタルビデオストリームとして生成し;および、公開ステップにおいて、前記出力デジタルビデオストリームを、前記共有デジタルビデオストリームの消費者に継続的に提供し、ここで、前記同期ステップは、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリームに少なくとも前記待ち時間が提供されることを含み、および、前記パターン検出ステップは、前記複数の一次デジタルビデオストリームの情報を考慮することを含み、前記情報は、前記出力デジタルビデオストリームの生成にまだ使用されていない、時間同期された一次デジタルビデオストリームのフレームよりも後のフレームに存在する。
【0018】
本発明はまた、共有デジタルビデオストリームを提供するコンピュータソフトウエア製品に関する。このコンピュータソフトウエア製品は実行されると以下のステップを実行する:収集ステップにおいて、少なくとも2つのデジタルビデオソースから、複数の一次デジタルビデオストリームがそれぞれ収集され;同期ステップにおいて、前記複数の一次デジタルビデオストリームが共通時間基準に対して時間同期され;パターン検出ステップにおいて、前記時間同期された複数の一次デジタルビデオストリームが分析されて、第1のパターンセットから選択された少なくとも1つのパターンを検出し;生成ステップにおいて、前記時間同期された複数の一次デジタルビデオストリームの連続的に考慮されたフレームおよび前記検出されたパターンに基づいて、前記共有デジタルビデオストリームが出力デジタルビデオストリームとして生成され;および、公開ステップにおいて、前記出力デジタルビデオストリームが、前記共有デジタルビデオストリームの消費者に継続的に提供され、ここで、前記同期ステップは、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリームに少なくとも前記待ち時間が提供されることを含み、および、前記パターン検出ステップは、前記複数の一次デジタルビデオストリームの情報を考慮することを含み、前記情報は、前記出力デジタルビデオストリームの生成にまだ使用されていない、時間同期された一次デジタルビデオストリームのフレームよりも後のフレームに存在する。
【0019】
さらに、本発明は、共有デジタルビデオストリームを提供するシステムに関する。このシステムは中央サーバを備え、前記中央サーバは以下の機能を備える:収集ステップにおいて、少なくとも2つのデジタルビデオソースから、複数の一次デジタルビデオストリームをそれぞれ収集するよう構成される収集機能;前記複数の一次デジタルビデオストリームを共通時間基準に対して時間同期させるよう構成される同期機能;前記時間同期された複数の一次デジタルビデオストリームを分析して、第1のパターンセットから選択された少なくとも1つのパターンを検出するよう構成されるパターン検出機能;前記時間同期された複数の一次デジタルビデオストリームの連続的に考慮されたフレームおよび前記検出されたパターンに基づいて、前記共有デジタルビデオストリームを出力デジタルビデオストリームとして生成するよう構成される生成機能;および、前記出力デジタルビデオストリームを、前記共有デジタルビデオストリームの消費者に継続的に提供するよう構成される公開機能、ここで、前記同期機能は、意図的に待ち時間を導入することによって、前記出力デジタルビデオストリームに少なくとも前記待ち時間が提供されるよう構成され、および、前記パターン検出機能は、前記複数の一次デジタルビデオストリームの情報を考慮するよう構成され、前記情報は、前記出力デジタルビデオストリームの生成にまだ使用されていない、時間同期された一次デジタルビデオストリームのフレームよりも後のフレームに存在する。
【0020】
以下では、本発明の例示的な実施形態および同封の図面を参照しながら、本発明を詳細に説明する。
【図面の簡単な説明】
【0021】
図1図1は、本発明に係る第1のシステムを示す図である。
図2図2は、本発明に係る第2のシステムを示す図である。
図3図3は、本発明に係る第3のシステムを示す図である。
図4図4は、本発明に係る中央サーバを示す図である。
図5図5は、本発明に係るシステムで使用される中央サーバを示す図である。
図6a図6aは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図6b図6bは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図6c図6cは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図6d図6dは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図6e図6eは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図6f図6fは、図5に示す方法における異なる方法ステップに関連した後続する状態を示す図である。
図7図7は、本発明で使用される共通プロトコルを概念的に示す図である。
【発明を実施するための形態】
【0022】
すべての図は、同一または対応する部分の参照符号を共有するものである。
【0023】
図1は、共有デジタルビデオストリームを提供するための本発明に係る方法を実行するように構成された、本発明に係るシステム100を示す。
【0024】
システム100は、ビデオ通信サービス110を備えてもよいが、ビデオ通信サービス110は、いくつかの実施形態では、システム100の外部にあってもよい。
【0025】
システム100は、1つまたは複数の参加者クライアント121を備えてよいが、1つ、いくつか、またはすべての参加者クライアント121は、いくつかの実施形態では、システム100の外部であってもよい。
【0026】
システム100は中央サーバ130を備える。
【0027】
本明細書で使用する場合、「中央サーバ」という用語は、明確に定義されたAPI(アプリケーション・プログラミング・インタフェース)を介するなど、論理的に一元化された方法でアクセスできるように構成された、コンピュータに実装された機能である。このような中央サーバの機能は、純粋にコンピュータソフトウエアに実装されてもよいし、ソフトウエアと仮想ハードウエアおよび/または物理ハードウエアの組み合わせに実装されてもよい。また、スタンドアロンの物理的または仮想的なサーバコンピュータに実装してもよいし、相互接続された複数の物理的および/または仮想的なサーバコンピュータに分散させて実装してもよい。
【0028】
中央サーバ130が実行する物理的または仮想的ハードウエア、言い換えれば、中央サーバ130の機能を定義するコンピュータソフトウエアは、それ自体従来のCPU、それ自体従来のGPU、それ自体従来のRAM/ROMメモリ、それ自体従来のコンピュータバス、およびインターネット接続のようなそれ自体従来の外部通信機能から構成され得る。
【0029】
ビデオ通信サービス110は、それが使用される限りにおいて、上記意味での中央サーバでもあり、それは中央サーバ130とは異なる中央サーバであってもよいし、中央サーバ130の一部であってもよい。
【0030】
これに対応して、参加者クライアント121のそれぞれは、対応する解釈で、各参加者クライアント121が実行する物理的または仮想的ハードウエア、言い換えれば、参加者クライアント121の機能を定義するコンピュータソフトウエアが、それ自体従来のCPU/GPU、それ自体従来のRAM/ROMメモリ、それ自体従来のコンピュータバス、およびインターネット接続のようなそれ自体従来の外部通信機能を備える、上記意味での中央サーバであってもよい。
【0031】
各参加者クライアント121はまた、典型的には、進行中のビデオ通信の一部として参加者クライアント121に提供されるビデオコンテンツを表示するように配置されたコンピュータスクリーンと、ビデオ通信の一部として参加者クライアント121に提供されるサウンドコンテンツを発するように配置されたスピーカと、ビデオカメラと、ビデオ通信に対する人間の参加者122にローカルにサウンドを記録するように配置されたマイクロフォンとを備えるか、またはそれらと通信しており、参加者122は、当該参加者クライアント121を使用してビデオ通信に参加する。
【0032】
言い換えれば、各参加者クライアント121のそれぞれのヒューマン・マシン・インタフェースにより、それぞれの参加者122は、ビデオ通信において、他の参加者、および/または多様なソースから提供されるオーディオ/ビデオストリームと、当該クライアント121で対話することができる。
【0033】
一般に、各参加者クライアント121は、デジタルビデオストリーム、デジタルオーディオストリームおよび/または他のデジタルデータを受信するための、上記ビデオカメラ;上記マイクロフォン;キーボード;コンピュータマウスまたはトラックパッド;および/またはAPIから構成され得る、それぞれの入力手段123を備える。入力手段123は、特に、ビデオ通信サービス110および/または中央サーバ130などの中央サーバからビデオストリームおよび/またはオーディオストリームを受信するように構成され、そのようなビデオストリームおよび/またはオーディオストリームは、ビデオ通信の一部として提供され、好ましくは、そのようなデジタルデータ入力ストリームの少なくとも2つのソース、たとえば参加者クライアント121および/または外部ソース(後述)から上記中央サーバに提供される対応するデジタルデータ入力ストリームに基づいて生成される。
【0034】
さらに一般的に、各参加者クライアント121は、上記コンピュータスクリーン;上記スピーカ;およびデジタルビデオおよび/またはオーディオストリームを発するAPIから構成され得るそれぞれの出力手段124を備える。こうしたストリームは、当該参加者クライアント121を使用した、参加者122に対するローカルにキャプチャされたビデオおよび/またはオーディオを代表するものである。
【0035】
実際には、各参加者クライアント121は、スクリーン、スピーカ、マイク、およびインターネット接続を備える携帯電話などのモバイルデバイスであってもよく、モバイルデバイスは、ローカルでコンピュータソフトウエアを実行するか、リモートで実行されるコンピュータソフトウエアにアクセスして、当該参加者クライアント121の機能を実行する。これに対応して、参加者クライアント121は、厚型または薄型のラップトップまたは据え置き型コンピュータであってもよく、ローカルにインストールされたアプリケーションを実行したり、ウェブブラウザを介してリモートアクセスされた機能を使用したりすることもできる。
【0036】
本実施形態の1つの同じビデオ通信で使用される参加者クライアント121は、1つ以上、例えば少なくとも3つ存在してよい。
【0037】
ビデオ通信は、本明細書で説明し例示するように、少なくとも一部がビデオ通信サービス110によって提供され、少なくとも一部が中央サーバ130によって提供され得る。
【0038】
この用語が本明細書で使用される場合、「ビデオ通信」とは、少なくとも2つ、好ましくは少なくとも3つのビデオストリームを含む双方向デジタル通信セッションであり、好ましくは、1つまたは複数の混合または共同デジタルビデオ/オーディオストリームを生成するために使用されるオーディオストリームとも一致する。このようなビデオ通信は、リアルタイムであり、一定の待ち時間または遅延があってもなくてもよい。このようなビデオ通信に参加する少なくとも1人、好ましくは少なくとも2人の参加者122は、ビデオ/オーディオ情報を提供および消費する双方向の方法でビデオ通信に関与する。
【0039】
参加者クライアント121の少なくとも1つ、または参加者クライアント121のすべては、ローカル同期ソフトウエア機能125を備えており、その詳細は後述する。
【0040】
ビデオ通信サービス110は、以下により詳細に説明するように、共通時間基準を備えるか、または共通時間基準にアクセスすることができる。
【0041】
中央サーバ130は、中央サーバ130の外部のエンティティとデジタル通信するためのAPI137を含んでいてもよい。このような通信は、入力と出力の両方を含んでよい。
【0042】
中央サーバ130などのシステム100は、外部から提供されるビデオストリームなどの外部情報ソース300とデジタル通信し、特に外部情報ソース300からオーディオおよび/またはビデオストリームデータなどのデジタル情報を受信するように構成され得る。情報ソース300が「外部」であるということは、中央サーバ130から、または中央サーバ130の一部として提供されないことを意味する。好ましくは、外部情報ソース300によって提供されるデジタルデータは、中央サーバ130から独立しており、中央サーバ130はその情報内容に影響を与えることができない。例えば、外部情報ソース300は、公のスポーツイベントや進行中のニュースイベントや報道のような、ライブキャプチャされたビデオおよび/またはオーディオであってもよい。また、外部情報ソース300は、参加者クライアント121のいずれかによってではなく、ウェブカメラなどによってキャプチャされてもよい。したがって、そのようなキャプチャされたビデオは、参加者クライアント121のいずれか1つと同じ局所(地域)を描写することができるが、参加者クライアント121の活動の一部としてキャプチャされることはない。外部から提供される情報ソース300と内部から提供される情報ソース120との間の1つのあり得る相違点は、内部から提供される情報ソースは、上記定義されたタイプのビデオ通信への参加者として、その能力において提供され得るが、外部から提供される情報ソース300はそうではなく、代わりに、当該ビデオ会議の外部であるコンテキストの一部として提供されることである。
【0043】
また、オーディオおよび/またはビデオストリームなどの当該タイプのデジタル情報を中央サーバ130に並行して提供する、複数の外部情報ソース300が存在してもよい。
【0044】
図1に示すように、各参加者クライアント121は、説明したように、当該参加者クライアント121によってビデオ通信サービス110に提供される情報(ビデオおよび/またはオーディオ)ストリーム120のソースを構成する。
【0045】
中央サーバ130などのシステム100は、外部消費者150とデジタル通信し、特に外部消費者150にデジタル情報を発するようにさらに構成されてもよい。例えば、中央サーバ130によって生成されたデジタルビデオおよび/またはオーディオストリームは、上記API137を介して、1つまたは複数の外部消費者150に、リアルタイムまたはほぼリアルタイムで、連続的に提供され得る。ここでも、消費者150が「外部」であるということは、消費者150が中央サーバ130の一部として提供されないこと、および/または当該ビデオ通信の当事者ではないことを意味する。
【0046】
特に断りのない限り、本明細書におけるすべての機能および通信は、適切なコンピュータハードウエア上で実行されるコンピュータソフトウエアによって実現され、インターネットのようなデジタル通信ネットワークまたはチャネルを介して通信されて、デジタル的かつ電子的に提供される。
【0047】
したがって、図1に示されるシステム100の構成では、多数の参加者クライアント121が、ビデオ通信サービス110によって提供されるデジタルビデオ通信に参加する。各参加者クライアント121は、それゆえ、ビデオ通信サービス110に対する進行中のログイン、セッション、または同様のものを有し、ビデオ通信サービス110によって提供される1つの同じ進行中のビデオ通信に参加することができる。言い換えれば、ビデオ通信は、参加者クライアント121の間で「共有」され、したがって、対応する人間の参加者122によっても「共有」される。
【0048】
図1では、中央サーバ130は、自動参加者クライアント140を備え、これは参加者クライアント121に対応する自動クライアントであるが、人間の参加者122には関連付けられない。その代わりに、自動参加者クライアント140は、参加者クライアント121と同じ共有ビデオ通信に参加するために、ビデオ通信サービス110に参加者クライアントとして追加される。このような参加者クライアントとして、自動参加者クライアント140には、ビデオ通信サービス110によって進行中のビデオ通信の一部として提供される、連続的に生成されるデジタルビデオおよび/またはオーディオストリーム(複数可)へのアクセスが付与され、こうしたストリームは自動参加者クライアント140を介して中央サーバ130によって消費されることができる。好ましくは、自動参加者クライアント140は、ビデオ通信サービス110から、各参加者クライアント121に配信される、または配信され得る共通のビデオおよび/またはオーディオストリーム;1つまたは複数の参加者クライアント121の各々からビデオ通信サービス110に提供され、ビデオ通信サービス110によってすべての参加者クライアント121または要求している参加者クライアント121に生データまたは修正された形式で中継されるそれぞれのビデオおよび/またはオーディオストリーム;および/または共通時間基準、を受信する。
【0049】
中央サーバ130は、後述するように処理するために、自動参加者クライアント140から、場合によっては上記外部情報ソース(複数可)300からも、上記タイプのビデオストリームおよび/またはオーディオストリームを複数受信し、その後、API137を介して共有ビデオストリームを提供するように構成された収集機能131を備える。たとえば、この共有ビデオストリームは、外部の消費者150によって、および/またはビデオ通信サービス110によって消費され、ビデオ通信サービス110によって、参加者クライアント121のすべてまたは要求する任意の1つに配信される。
【0050】
図2図1と同様であるが、自動参加者クライアント140を使用する代わりに、中央サーバ130は、ビデオ通信サービス110のAPI112を介して、進行中のビデオ通信からビデオおよび/またはオーディオストリームデータを受信する。
【0051】
図3図1と同様であるが、ビデオ通信サービス110は示されていない。この場合、参加者クライアント121は、中央サーバ130のAPI137と直接通信し、例えば、中央サーバ130にビデオおよび/またはオーディオストリームデータを提供し、および/または中央サーバ130からビデオおよび/またはオーディオストリームデータを受信する。次に、生成された共有ストリームは、外部消費者150に、および/またはクライアント参加者121のうちの1つまたは複数に提供され得る。
【0052】
図4は、中央サーバ130をより詳細に示している。図示されるように、収集機能131は、1つまたは好ましくは複数の、フォーマット固有の収集機能131aから構成され得る。フォーマット固有の収集機能131aの各々は、所定のバイナリエンコーディングフォーマットおよび/または所定のストリームデータコンテナのような所定のフォーマットを有するビデオおよび/またはオーディオストリームを受信するように構成され、具体的には、上記フォーマットのバイナリビデオおよび/またはオーディオデータを解析(parse)して、個々のビデオフレーム、ビデオフレームのシーケンスおよび/またはタイムスロットに分類するように構成される。
【0053】
中央サーバ130は、収集機能131からバイナリストリームデータなどのビデオおよび/またはオーディオストリームデータを受信し、受信した複数のデータストリームの個々の1つに対してそれぞれのイベント検出を実行するように構成された、イベント検出機能132をさらに備える。イベント検出機能132は、イベント検出を実行するためのAI(人工知能)コンポーネント132aを備えてよい。イベント検出は、収集された個別の複数のストリームを最初に時間同期させることなく実行されてよい。
【0054】
中央サーバ130は、収集機能131によって提供され、イベント検出機能132によって処理される複数のデータストリームを時間同期させるように構成された同期機能133をさらに備える。同期機能133は、時間同期を実行するためのAIコンポーネント133aを備えてよい。
【0055】
中央サーバ130は、受信した複数のデータストリームの少なくとも1つでもよいが、多くの場合は少なくとも2つ、例えば少なくとも3つ、例えばすべて、の組み合わせに基づいてパターン検出を実行するように構成されたパターン検出機能134をさらに備える。パターン検出はさらに、イベント検出機能132によって上記複数のデータストリームの個々の1つごとに検出された1つ、場合によっては少なくとも2つ以上のイベントに基づいてもよい。パターン検出機能134によって考慮されるそのような検出されたイベントは、個々の収集されたストリームに関して時間に亘って分布し得る。パターン検出機能134は、パターン検出を実行するためのAIコンポーネント134aを備えてよい。
【0056】
中央サーバ130は、収集機能131から提供された複数のデータストリームに基づいて、さらに、検出されたあらゆるイベントおよび/またはパターンに基づいて、共有デジタルビデオストリームを生成するように構成された、生成機能135をさらに備える。共有ビデオストリームは、少なくとも、収集機能131によって提供された、生データの、再フォーマットされた、または変換されたビデオストリームの1つまたは複数を備えるように生成されたビデオストリームを含み、対応するオーディオストリームデータを含んでもよい。
【0057】
中央サーバ130はさらに、上述のAPI137を介するなどして、生成された共有デジタルビデオストリームを公開する(publish)ように構成された公開機能136を備える。
【0058】
図1図2および図3は、本明細書で説明する原理を実施するために、特に本発明による方法を提供するために、中央サーバ130をどのように使用できるかの3つの異なる例を示しているが、1つまたは複数のビデオ通信サービス110を使用する、または使用しない他の構成も可能であることに留意されたい。
【0059】
したがって、図5は、共有デジタルビデオストリームを提供するための、本発明に係る方法を図示する。図6Aから図6Fは、図5に示される方法ステップの結果として生じる異なるデジタルビデオ/オーディオデータストリームの状態を示す。
【0060】
最初のステップで、本方法は始まる。
【0061】
続く収集ステップにおいて、それぞれの複数の一次デジタルビデオストリーム210、301が、例えば収集機能131によって、上記デジタルビデオソース120、300のうちの少なくとも2つから収集される。このような複数の一次データストリーム210、301はそれぞれ、オーディオ部分214および/またはビデオ部分215を備えてよい。このコンテキストにおける「ビデオ」は、かかるデータストリームの動画および/または静止画像コンテンツを示すことが理解される。各一次データストリーム210、301は、(当該一次ストリーム210、301を提供するエンティティによって使用されるそれぞれのコーデックを使用して)任意のビデオ/オーディオ符号化標準に従ってエンコードされてよく、符号化フォーマットは、1つの同じビデオ通信で同時に使用される当該複数の一次ストリーム210、301の異なるもの間で異なってよい。複数の一次データストリーム210、301の少なくとも1つ、例えば全ては、バイナリデータのストリームとして提供されることが好ましく、場合によっては、それ自体従来のデータコンテナデータ構造で提供される。複数の一次データストリーム210、301の少なくとも1つ、例えば少なくとも2つ、あるいはすべてが、それぞれのライブビデオ録画として提供されることが好ましい。
【0062】
複数の一次データストリーム210、301は、収集機能131によって受信されるとき、時間的に同期していない可能性があることに留意されたい。これは、それらが互いに対して異なる待ち時間または遅延に関連付けられていることを意味し得る。例えば、2つの一次ビデオストリーム210、301がライブ録画である場合、これは、収集機能131によって受信されたときに、それらが録画時間に関して異なる待ち時間に関連付けられていることを意味し得る。
【0063】
また、複数の一次データストリーム210、301は、それ自体が、ウェブカメラからのそれぞれのライブカメラフィード;現在共有されている画面やプレゼンテーション;視聴されているフィルムクリップ;あるいは、1つの同じ画面内に様々な方法で配置されたこれらの任意の組み合わせであったりすることに留意されたい。
【0064】
収集ステップは、図6aおよび図6bに示されている。図6bでは、収集機能131が、各一次ビデオストリーム210、301を、バンドルされたオーディオ/ビデオ情報として、または関連するビデオストリームデータから分離されたオーディオストリームデータとして、どのように格納できるかも示されている。図6bは、一次ビデオストリーム210、301のデータが、個々のフレーム213またはフレームの集積/クラスタとしてどのように格納されるかを図示し、「フレーム」は、ここでは、画像データおよび/または任意の関連するオーディオデータの時間制限された部分を指し、たとえば、各フレームは、個々の静止画像であるか、または連続する一連の画像(たとえば、最大で1秒の動画像を構成するような一連の画像)であり、一緒に動画像ビデオコンテンツを形成する。
【0065】
イベント検出機能132によって実行される後続のイベント検出ステップにおいて、複数の一次デジタルビデオストリーム210、301は、イベント検出機能132、特にAIコンポーネント132aなどによって分析され、第1のイベントセットから選択された少なくとも1つのイベント211を検出する。これを図6cに示す。
【0066】
このイベント検出ステップは、少なくとも1つの、例えば少なくとも2つの、例えば全ての、一次ビデオストリーム210、301に対して行われ、当該一次ビデオストリーム210、301の各々に対して個別に行われることが好ましい。換言すれば、イベント検出ステップは、好ましくは、当該特定の一次ビデオストリーム210、301の一部として含まれる情報のみを考慮し、特に、他の一次ビデオストリームの一部として含まれる情報を考慮することなく、当該個々の一次ビデオストリーム210、301に対して行われる。さらに、イベント検出は、好ましくは、複数の一次ビデオストリーム210、301に関連付けられるあらゆる共通の時間基準260を考慮することなく行われる。
【0067】
一方、好ましくは、イベント検出は、ある時間間隔に亘って、例えば、0秒より長い、例えば、少なくとも0.1秒、例えば、少なくとも1秒のような一次ビデオストリームの履歴時間間隔に亘って、当該個別に分析された一次ビデオストリームの一部として含まれる情報を考慮する。
【0068】
イベント検出は、一次ビデオストリーム210、301の一部として含まれるオーディオおよび/またはビデオデータに含まれる情報を考慮してもよい。
【0069】
上記第1のイベントセットには、当該一次ビデオストリーム210、301を構成する、または当該一次ビデオストリーム210、301の一部であるスライドプレゼンテーションにおけるスライドの変化;当該一次ビデオストリーム210、301を提供するソース120、300の接続品質の変化であって、画像品質の変化、画像データの損失、または画像データの再取得をもたらす接続品質の変化;および、ビデオ内の人物またはオブジェクトの動き、ビデオ内の照明の変化、オーディオ内の突然の鋭いノイズ、またはオーディオ品質の変化などの当該一次ビデオストリーム210、301内で検出された動きの物理的イベント等の、任意の数のタイプのイベントが含まれ得る。これは、網羅的なリストであることを意図するものではなく、これらの例は、現在説明されている原理の適用可能性を理解するために提供されるものであることを理解されたい。
【0070】
同期機能133によって実行される後続の同期ステップにおいて、複数の一次デジタルビデオストリーム210、310は、共通の時間基準260に対して時間同期される。図6dに示されるように、この時間同期は、共通時間基準260を使用して、複数の一次ビデオストリーム210、301を互いに対して整列させることを含み、これにより、それらが組み合わされて、時間同期されたコンテキストを形成することができる。共通時間基準260は、データのストリーム、ハートビート信号または他のパルスデータ、または個別の複数の一次ビデオストリーム210、301のそれぞれに適用可能な時間アンカであってもよい。重要なことは、共通時間基準を個別の複数の一次ビデオストリーム210、301のそれぞれに適用できるようにすることによって、共通の時間軸に関して、当該一次ビデオストリーム210、301の情報コンテンツを共通時間基準に対して一義的に関連付けることができるようにすることである。言い換えれば、共通時間基準により、複数の一次ビデオストリーム210、301は、タイムシフトを介して、現在の感覚(present sense)において時間同期されるように整列させられる。
【0071】
図6dに示されるように、時間同期は、複数の一次ビデオストリーム210、301のそれぞれについて、共通時間基準260に関連して、1つまたは複数のタイムスタンプ261を決定することを含んでよい。
【0072】
パターン検出機能134によって実行される後続のパターン検出ステップにおいて、時間同期された複数の一次デジタルビデオストリーム210、301は、第1のパターンセットから選択された少なくとも1つのパターン212を検出するために分析される。これを図6eに示す。
【0073】
イベント検出ステップとは対照的に、パターン検出ステップは、好ましくは、時間同期された複数の一次ビデオストリーム210、301の少なくとも2つの一部として含まれるビデオおよび/またはオーディオ情報に基づいて実行される。
【0074】
上記第1のパターンのセットは、複数の参加者が入れ替わり立ち替わりまたは同時に発話する;またはプレゼンテーションスライドの変更が別の参加者が発話するなどの別のイベントとして同時に発生するなど、任意の数のタイプのパターンを含んでよい。このリストは網羅的なものではなく、例示的なものである。
【0075】
代替的実施形態では、検出されたパターン212は、複数の一次ビデオストリーム210、301のうちの複数に含まれる情報ではなく、複数の一次ビデオストリーム210、301のうちの1つのみに含まれる情報に関連してよい。そのような場合、そのようなパターン212は、少なくとも2つの検出されたイベント211、例えば2つ以上の連続して検出されたプレゼンテーションスライド変更または接続品質変更に跨る、その単一の一次ビデオストリーム210、301に含まれるビデオおよび/またはオーディオ情報に基づいて検出されることが好ましい。一例として、検出されたスライド変更イベントごとの1つの個別のスライド変更パターンとは対照的に、時間の経過とともに急速に互いに続く複数の連続したスライド変更が、1つの単一のスライド変更パターンとして検出される場合がある。
【0076】
第1のイベントセットおよび第1のパターンセットは、パラメータおよびパラメータ間隔のそれぞれのセットを使用して定義された、所定のタイプのイベント/パターンを備えてよいことが理解される。以下に説明するように、上記セットのイベント/パターンは、様々なAIツールを使用して定義および検出することもできる。
【0077】
生成機能135によって実行される後続の生成ステップにおいて、共有デジタルビデオストリームは、時間同期された複数の一次デジタルビデオストリーム210、301の連続的に考慮された複数のフレーム213と、検出されたパターン212とに基づいて、出力デジタルビデオストリーム230として生成される。
【0078】
以下に説明し詳述するように、本発明により、出力デジタルビデオストリーム230を完全に自動生成することができる。
【0079】
例えば、このような生成は、どの一次ビデオストリーム210、301からどのようなビデオおよび/またはオーディオ情報を、出力ビデオストリーム230でどの程度使用するかの選択;出力ビデオストリーム230のビデオスクリーンレイアウト;時間に亘る異なるそのような使用またはレイアウト間の切り替えパターンなどを含んでよい。
【0080】
これは、図6fにも示されており、この図6fには、出力ビデオストリーム230の生成において、共通時間基準260と時間同期され、時間同期された複数の一次ビデオストリーム210、301と協働して使用され得る、追加デジタルビデオ情報ストリームなどの、時間に関連する(共通時間基準260に関連する)デジタルビデオ情報220の1つまたは複数の追加部分が示されている。例えば、追加ストリーム220は、検出されたパターンに動的に基づくような、使用する任意のビデオおよび/またはオーディオ特殊効果に関する情報;ビデオ通信のための計画されたタイムスケジュールなどを含んでよい。
【0081】
公開機能136によって実行される後続の公開ステップにおいて、生成された出力デジタルビデオストリーム230は、上述のように、共有デジタルビデオストリームの消費者110、150に連続的に提供される。
【0082】
後続するステップで、本方法は終了する。しかしながら、最初に、本方法は、図5に示されるように、出力ビデオストリーム230を連続的に提供されるストリームとして生成するために、任意の回数、反復されてもよい。好ましくは、出力ビデオストリーム230は、リアルタイムまたはほぼリアルタイム(途中のすべてのステップによって付加される待ち時間の合計を考慮する)で、かつ連続的に(より多くの情報が利用可能になったときに直ちに公開されるが、ただし、以下に説明する意図的に付加される待ち時間はカウントしない)消費されるように生成される。このようにして、出力ビデオストリーム230は、双方向(インタラクティブ)方式で消費されてよく、これにより、ビデオ通信サービス110に、または、閉じたフィードバックループを形成するように収集機能131に再び供給される一次ビデオストリーム210の生成の基礎を形成する他のコンテキストに、出力ビデオストリーム230がフィードバックされ;または、異なる(システム100の外部、または、少なくとも中央サーバ130の外部の)コンテキストに、出力ビデオストリーム230が消費され、そこで、リアルタイムの双方向ビデオ通信の基礎を形成することができる。
【0083】
上述したように、いくつかの実施形態では、複数の一次デジタルビデオストリーム210、301の少なくとも2つは、ビデオ通信サービス110によって提供されるような共有デジタルビデオ通信の一部として提供され、このビデオ通信は、当該一次デジタルビデオストリーム210を提供するそれぞれの遠隔接続された参加者クライアント121を含む。このような場合、収集ステップは、共有デジタルビデオ通信サービス110自体から、当該ビデオ通信サービス110内からビデオおよび/またはオーディオストリームデータへのアクセスを順番に付与された自動参加者クライアント140を介して、および/またはビデオ通信サービス110のAPI112を介して、当該一次デジタルビデオストリーム210の少なくとも1つを収集することから構成され得る。
【0084】
さらに、この場合および他の場合において、収集ステップは、共有デジタルビデオ通信サービス110の外部である情報ソース300から収集されたそれぞれの外部デジタルビデオストリーム301として、上記複数の一次デジタルビデオストリーム210、301の少なくとも1つを収集することを備えてよい。このような外部ビデオソース300の1つまたは複数が、中央サーバ130の外部にあってもよいことに留意されたい。
【0085】
いくつかの実施形態では、複数の一次ビデオストリーム210、301は、同じ方法でフォーマットされていない。そのような異なるフォーマットは、それらが異なるタイプのデータコンテナ(AVIまたはMPEGなど)で収集機能131に供給される形式であり得るが、好ましい実施形態では、複数の一次ビデオストリーム210、301の少なくとも1つは、(一次ビデオストリーム210、301の少なくとも1つの他のものに対して)偏位する(deviating)フォーマットに従ってフォーマットされ、これは、偏位する一次デジタルビデオストリーム210、301が偏位するビデオ符号化;偏位する固定または可変フレームレート;偏位するアスペクト比;偏位するビデオ解像度;および/または偏位するオーディオサンプルレートを有するという点においてである。
【0086】
収集機能131は、収集されたすべての一次ビデオストリーム210、301で発生するすべての符号化フォーマット、コンテナ規格などを読み取り、解釈するように事前に構成されていることが好ましい。これにより、本明細書で説明するような処理を実行することが可能になり、これらの処理の比較的後の段階まで(当該一次ストリームがそれぞれのバッファに入れられるまで;イベント検出ステップの後まで;あるいはイベント検出ステップの後までなど)、デコーディングを必要としない。しかしながら、一次ビデオフィード210、301のうちの1つまたは複数が、収集機能131がデコードせずには解釈できないコーデックを使用して符号化されているという稀なケースでは、収集機能131は、そのような一次ビデオストリーム210、301のデコードおよび分析を実行し、その後、例えばイベント検出機能によって処理できるフォーマットへの変換を実行するように構成されてよい。この場合でも、この段階で再エンコードを実行しないことが好ましいことに留意されたい。
【0087】
例えば、ビデオ通信サービス110によって提供されるような、複数当事者間のビデオイベントからフェッチされる一次ビデオストリーム220は、典型的には、低遅延に対する要求があり、したがって、典型的には、参加者122が効果的な通信を行うことを可能にするために、可変フレームレートおよび可変ピクセル解像度と関連付けられる。言い換えれば、全体的なビデオおよびオーディオの品質は、低遅延のために必要に応じて低下する。
【0088】
一方、外部ビデオフィード301は、典型的には、より安定したフレームレートを持ち、高画質であるが、それゆえ遅延が大きくなる可能性がある。
【0089】
したがって、ビデオ通信サービス110は、各時点で、外部ビデオソース300とは異なる符号化(エンコーディング)および/またはコンテナを使用し得る。したがって、本明細書で説明する分析およびビデオ生成プロセスは、異なるフォーマットのこれら複数のストリーム210、301を、結合された経験のために新たな1つのストリームに結合する必要がある。
【0090】
上述したように、収集機能131は、フォーマット固有の収集機能131aのセットを備えてよく、それぞれが、特定のタイプのフォーマットの一次ビデオストリーム210、301を処理するように構成される。たとえば、これらのフォーマット固有の収集機能131aの各1つは、Windows(登録商標)Media(登録商標)またはDivX(登録商標)などの異なるビデオそれぞれのエンコード方法/コーデックを使用してエンコードされた複数の一次ビデオストリーム210、301を処理するように構成されてよい。
【0091】
しかしながら、好ましい実施形態では、収集ステップは、複数の一次デジタルビデオストリーム210、301の少なくとも2つ、例えばすべて、を共通プロトコル240に変換することを含む。
【0092】
この文脈で使用されるように、用語「プロトコル」は、デジタルビデオ/オーディオストリームに含まれる情報をどのように格納かを特定する情報構造化規格またはデータ構造を示す。しかしながら、共通プロトコルは、好ましくは、デジタルビデオおよび/またはオーディオ情報を、例えばバイナリレベルなど(すなわち、音および画像自体を指示する符号化/圧縮されたデータ)、どのように格納するかを規定するのではなく、代わりに、そのようなデータを格納するための所定のフォーマットの構造を形成する。言い換えれば、共通プロトコルは、そのような格納に関連してデジタルビデオデコーディングまたはデジタルビデオエンコーディングを何ら実行することなく、場合によってはバイナリ形式のバイト列を連結および/または分割することとは別に既存のバイナリ形式を全く修正することなく、生データのバイナリ形式でデジタルビデオデータを格納することを規定している。代わりに、当該一次ビデオストリーム210、301の生データの(符号化/圧縮された)バイナリデータコンテンツは、プロトコルによって定義されたデータ構造でこの生データのバイナリデータを再パック(repacking)しながら、保持される。いくつかの実施形態では、共通プロトコルは、ビデオファイルコンテナフォーマットを定義する。
【0093】
図7は、一例として、それぞれのフォーマット固有収集機能131aによって再構築され、上記共通プロトコル240を使用する、図6aに示す複数の一次ビデオストリーム210、301を示す。
【0094】
したがって、共通プロトコル240は、デジタルビデオおよび/またはオーディオデータを、好ましくは、当該一次ビデオストリーム210、301に関連する時間軸に沿って、離散的で連続したデータのセットに分割されたデータセット241に格納することを規定する。このような各データセットは、1つまたはいくつかのビデオフレーム、および関連するオーディオデータを含むことができる。
【0095】
共通プロトコル240はまた、格納されたデジタルビデオおよび/またはオーディオデータセット241に関連して、指定された時点に関連付けられるメタデータ242を格納することを規定してよい。
【0096】
メタデータ242は、当該生データのバイナリデータを生成するために使用されるデジタルビデオエンコーディング方法またはコーデック;ビデオデータの解像度;ビデオフレームレート;フレームレート変動フラグ;ビデオ解像度;ビデオアスペクト比;オーディオ圧縮アルゴリズム;またはオーディオサンプリングレートに関する等の、当該一次デジタルビデオストリーム210の生データのバイナリフォーマットに関する情報を含んでよい。また、メタデータ242は、当該一次ビデオストリーム210、301の時間基準に関連する、格納されたデータのタイムスタンプに関する情報を含んでよい。
【0097】
フォーマット固有の収集機能131aを共通プロトコル240と組み合わせて使用することにより、受信したビデオ/オーディオデータをデコーディング/再エンコーディングすることによる待ち時間(遅延)を追加することなく、一次ビデオストリーム210、301の情報コンテンツを迅速に収集することが可能になる。
【0098】
したがって、収集ステップは、当該一次ビデオストリーム210、301を解析し、解析された生データのバイナリデータを、任意の関連するメタデータとともに、共通プロトコルを使用してデータ構造に格納するために、複数のフォーマット固有収集機能131aのうち異なる収集機能131aを使用して、異なるバイナリビデオおよび/またはオーディオエンコーディングフォーマットを使用してエンコードされた複数の一次デジタルビデオストリーム210、301を収集することを備えてよい。自明であるが、どの一次ビデオストリーム210、301に対してどのフォーマット固有の収集機能131aを使用するかについての決定は、当該一次ビデオストリーム210、301のそれぞれの所定のおよび/または動的に検出された特性に基づいて、収集機能131によって実行されてよい。
【0099】
このように収集された各一次ビデオストリーム210、301は、中央サーバ130内のRAMメモリバッファのような、それ自身の別個のメモリバッファに格納されてよい。
【0100】
各フォーマット固有の収集機能131aによって実行される一次ビデオストリーム210、301の変換は、したがって、こうして変換された各一次デジタルビデオストリーム210、301の生データのバイナリデータを、順序付けられたセットのより小さいデータセット241に分割することを備えてよい。
【0101】
さらに、変換は、より小さいセット241のそれぞれ(またはサブセット、例えば当該一次ストリーム210、301のそれぞれの時間軸に沿って規則的に分布するサブセット)を、共通時間基準260のそれぞれの時間に関連付けることも備えてよい。この関連付けは、以下に説明する原理方法のいずれか、または他の方法で、生データのバイナリビデオおよび/またはオーディオデータの分析によって実行されてもよく、一次ビデオストリーム210、301の後続する時間同期を実行できるようにするために実行されてもよい。使用される共通時間基準260のタイプに応じて、各データセット241のこの関連付けの少なくとも一部は、同期機能133によっても、またはその代わりに実行されてもよい。後者の場合、収集ステップは、代わりに、より小さいセット241の各々またはそのサブセットを、当該一次ストリーム210、301に固有の時間軸のそれぞれの時間に関連付けることを含んでよい。
【0102】
いくつかの実施形態では、収集ステップはまた、複数の一次ビデオストリーム210、301から収集された生データのバイナリビデオおよび/またはオーディオデータを、均一な品質に変換、および/または周波数を更新することを含む。これは、必要に応じて、複数の一次デジタルビデオストリーム210、301の生データのバイナリデジタルビデオおよび/またはオーディオデータを、共通のビデオフレームレート;共通のビデオ解像度;または共通のオーディオサンプリングレートにダウンサンプリングまたはアップサンプリングすることを含んでよい。当該フォーマット固有収集機能131aが正しいバイナリ符号化ターゲットフォーマットに従って生データのバイナリデータを直接処理することができるため、このような再サンプリングは、完全なデコーディング/再エンコーディングを実行することなく、あるいは、デコーディングを全く実行することすらなく、実行することができることに留意されたい。
【0103】
好ましくは、複数の一次デジタルビデオストリーム210、301の各々は、上述したように、個々のフレーム213またはフレーム213のシーケンスとして、個々のデータ格納バッファ250に格納され、また、各々は、共通時間基準260に順に関連付けられた対応するタイムスタンプに関連付けられる。
【0104】
例示のために提供される具体例では、ビデオ通信サービス110は、Microsoft(登録商標) Teams(登録商標)であり、同時接続の複数参加者122が関与するビデオ会議を実行している。自動参加者クライアント140は、Teams(登録商標)会議の会議参加者として登録されている。
【0105】
次に、一次ビデオ入力信号210が、自動参加者クライアント140を介して収集機能130に提供され、収集機能130によって取得される。これらはH264フォーマットの生データ信号であり、各ビデオフレームのタイムスタンプ情報を含む。
【0106】
関連するフォーマット固有の収集機能131aは、設定可能な事前定義されたTCPポート上で、IP(クラウドのLANネットワーク)経由で生データをピックアップする。すべてのTeams(登録商標)会議参加者と関連する音声データは、個別のポートに関連付けられる。次に、収集機能131は、オーディオ信号(50Hz)からのタイムスタンプを使用し、ビデオデータを25Hzの固定出力信号にダウンサンプリングしてから、ビデオストリーム220をそれぞれの個別のバッファ250に格納する。
【0107】
上述のように、共通プロトコル240は、データを生データのバイナリ形式で保存する。これは、非常に低レベルで、ビデオ/オーディオデータの生データのビットおよびバイトを処理するように設計することができる。好ましい実施形態では、データは、単純なバイト配列または対応するデータ構造(スライスなど)として共通プロトコル240に格納される。これは、データが従来のビデオコンテナに入れられる必要が全くないことを意味する(共通プロトコル240は、この文脈ではそのような従来のコンテナを構成しない)。また、ビデオのエンコードおよびデコードは、計算量的に重いので、遅延を引き起こし、高価なハードウエアを必要とする。さらに、この問題は参加者の数によってスケーリングされる。
【0108】
共通プロトコル240を使用すると、Teams(登録商標)の各会議参加者122に関連付けられたプライマリビデオストリーム210と、任意の外部ビデオソース300のために、収集機能131内のメモリを確保し、プロセス中にオンザフライで割り当てメモリ量を変更することが可能になる。このようにして、入力ストリームの数を変更することが可能になり、その結果、各バッファを有効に保つことができる。例えば、解像度、フレームレートなどの情報は可変であるが、共通プロトコル240にメタデータとして格納されるため、この情報を使用して、必要に応じて各バッファのサイズを迅速に変更することができる。
【0109】
以下は、本タイプの共通プロトコル240の仕様の一例である。
【0110】
【表1】
【0111】
上記表では、「もしあれば、検出されたイベント(Detected event in, if any)」データは、共通プロトコル260の仕様の一部として含まれている。しかしながら、いくつかの実施形態では、この情報(検出されたイベントに関する)は、代わりに別のメモリバッファに入れてもよい。
【0112】
いくつかの実施形態では、オーバーレイまたはエフェクトであり得るデジタルビデオ情報220の上記少なくとも1つの追加部分もまた、共通時間基準260に順に関連付けられた対応するタイムスタンプにそれぞれ関連付けられた個々のフレームまたはフレームのシーケンスとして、それぞれの個別バッファ250に格納される。
【0113】
上記に例示したように、イベント検出ステップは、共通プロトコル240を使用して、検出されたイベント211を記述するメタデータ242を、当該イベント211が検出された一次デジタルビデオストリーム210、301に関連付けて記憶することを含んでよい。
【0114】
イベント検出は、異なる方法で実行することができる。AIコンポーネント132aによって実行されるいくつかの実施形態では、イベント検出ステップは、第1の訓練されたニューラルネットワークまたは他の機械学習コンポーネントが、前記イベント211のいずれかを自動的に検出するために、複数の一次デジタルビデオストリーム210、301の少なくとも1つ、例えばいくつか、または全部を個別に分析することを含む。これは、AIコンポーネント132aが、管理された分類において、一次ビデオストリーム210、301のデータを、予め定義されたイベントのセットに分類すること、および/または、管理されていない分類において、動的に決定されたイベントのセットに分類することを含んでよい。
【0115】
いくつかの実施形態では、検出されたイベント211は、当該一次ビデオストリーム210、301である、またはこれに含まれるプレゼンテーションのプレゼンテーションスライドの変更である。
【0116】
例えば、プレゼンテーションの発表者が、聴衆に対してその時点で行っているプレゼンテーションのスライドを変更することを決定した場合、これは、所定の視聴者にとって興味深いものが変化し得ることを意味する。新しく表示されるスライドは、いわゆる「バタフライ」モード(例えば、出力ビデオストリーム230でスライドを発表者のビデオと並べて表示する)で短時間見るのに最適な全体レベルの画像に過ぎないかもしれない。あるいは、スライドには、詳細が多く、フォントサイズが小さいテキストなどが含まれる場合もある。後者の場合、スライドはフルスクリーンで表示され、通常の場合よりも多少長い時間表示される。この場合のスライドは、発表者の顔よりもプレゼンテーションを見る人の興味を引くかもしれないので、バタフライモードはそれほど適切ではないかもしれない。
【0117】
実際には、イベント検出ステップは、以下の少なくとも1つで構成される。
【0118】
まず第1に、イベント211は、検出されたスライドの第1の画像と、それに後続する検出されたスライドの第2の画像との差の画像解析に基づいて検出することができる。一次ビデオストリーム220、301の性質がスライドを示すものであることは、OCR(光学式文字認識)と組み合わせた動き検出を使用するなど、それ自体は従来のデジタル画像処理を使用して自動的に決定することができる。
【0119】
これは、自動コンピュータ画像処理技術を使用して、検出されたスライドが、実際にスライドの変更として分類するのに十分なほど大きく変化したかどうかをチェックすることを含んでよい。これは、RGBカラー値に関して、現在のスライドと前のスライドとの間のデルタ(delta)をチェックすることによって行うことができる。例えば、問題のスライドがカバーする画面領域で、RGB値がどの程度グローバルに変化したかを評価し、同時に、これに協調して変化する隣接するピクセルのグループを見つけることが可能かどうかを評価することができる。こうすることで、関連するスライドの変化を検出することができ、同時に、例えば、画面全体にわたるコンピュータのマウスの動きのような無関係な変化をフィルタリングすることができる。このアプローチで完全な構成可能性が実現される。例えば、発表者がコンピュータのマウスを使って異なるものを指し示しながら何かを詳細に発表したい場合など、コンピュータのマウスの動きをキャプチャできることが望まれることがある。
【0120】
第2に、イベント211は、より高い特異性でイベントの種類を決定するために、第2の画像自体の情報複雑性の画像解析に基づいて検出されてもよい。
【0121】
これは例えば、問題のスライド上のテキスト情報の総量や、関連するフォントサイズを評価することを含むかもしれない。これは、ディープラーニングに基づく文字認識技術など、従来のOCR手法を使用して行うことができる。
【0122】
評価されたビデオストリーム210、301の生データのバイナリフォーマットが既知であるため、これは、最初にビデオデータをデコードまたは再エンコードすることなく、バイナリドメインで直接実行されてもよいことに留意されたい。例えば、イベント検出機能132は、画像解釈サービスのための関連するフォーマット固有の収集機能を呼び出してもよく、またはイベント検出機能132自体が、多数の異なるサポートされる生データのバイナリビデオデータフォーマットに対して、個々のピクセルレベルなどへの画像情報を評価するための機能を含んでもよい。
【0123】
別の例では、検出されたイベント211は、デジタルビデオ通信サービス110に対する参加者クライアント121の通信接続の喪失である。この場合、検出ステップは、当該参加者クライアント121に対応する一次デジタルビデオストリーム210の一連の後続ビデオフレーム213の画像解析に基づいて、当該参加者クライアント121が通信接続を喪失したことを検出することを含んでよい。
【0124】
参加者クライアント121は、異なる物理的な場所や異なるインターネット接続に関連付けられているため、誰かがビデオ通信サービス110または中央サーバ130への接続を喪失することが起こり得る。そのような状況では、生成された出力ビデオストリーム230に黒または空の画面が表示されないようにすることが望ましい。
【0125】
これに替えて、このような接続の喪失は、イベント検出機能132によってイベントとして検出することができ、例えば、使用される2つのクラスが接続されている/接続されていない(データなし)である2クラス分類アルゴリズムを適用することによって検出することができる。この場合、「データなし」は、発表者が意図的に黒いスクリーンを送信することとは異なると理解される。わずか1フレームまたは2フレームのような短時間の黒いスクリーンは、最終的に生成されるストリーム230では目立たない可能性があるため、2クラス分類アルゴリズムを経時的に適用して時系列を作成することができる。次に、接続中断の最小長さを指定する閾値を使用して、接続が喪失したかどうかを決定することができる。
【0126】
以下で説明されるように、上記で例示されたタイプの検出されたイベントは、パターン検出機能134によって、適切かつ所望のように、様々な対応をするために使用され得る。
【0127】
上記のように、個々の一次ビデオストリーム210、301は、それぞれ共通の時間基準260に関連しており、同期機能133が互いに対して時間同期させることができる。
【0128】
いくつかの実施形態では、共通時間基準260は、共通オーディオ信号111(図1から図3参照)に基づくか、または共通オーディオ信号111を備え、共通オーディオ信号111は、上述したように、少なくとも2つの遠隔接続された参加者クライアント121が参加する共有デジタルビデオ通信サービス110に共通であり、各々が、一次デジタルビデオストリーム210のそれぞれの1つを提供する。
【0129】
上述したMicrosoft(登録商標)Teams(登録商標)の例では、共通オーディオ信号が生成され、自動参加者クライアント140を介して、および/またはAPI 112を介して、中央サーバ130によってキャプチャされ得る。この例および他の例では、このような共通オーディオ信号をハートビート信号として使用して、このハートビート信号に基づいて個々の一次ビデオストリーム220を特定の時点に結合することによって、個々の複数の一次ビデオストリーム220を時間同期させることができる。このような共通オーディオ信号は、別個の(他の一次ビデオストリーム210の各々との関係において)信号として提供されてもよく、これにより、他の一次ビデオストリーム210は各々、当該他の一次ビデオストリーム210に含まれるオーディオに基づいて、または(自動画像処理ベースのリップシンク技術を使用するなど)そこに含まれる画像情報に基づいて、共通オーディオ信号に個別に時間相関(time -correlated)されてもよい。
【0130】
言い換えると、個々の一次ビデオストリーム210に関連する可変の待ち時間および/または異なる待ち時間を処理し、結合されたビデオ出力ストリーム230の時間同期を実現するために、このような共通オーディオ信号が、中央サーバ130内のすべての一次ビデオストリーム210のためのハートビートとして使用される(ただし、おそらく外部の一次ビデオストリーム301ではない)。言い換えれば、他のすべての信号は、すべてが時間同期していることを確認するために、この共通のオーディオ時間のハートビートにマッピングされる。
【0131】
別の例では、時間同期は、出力デジタルビデオストリーム230に導入され、参加者クライアント121の1つまたはいくつかの個々のものの一部として提供されるそれぞれのローカル時間同期ソフトウエア機能125によって検出される時間同期要素231を使用して達成される。ローカルソフトウエア機能125は、出力ビデオストリーム230における時間同期要素231の到着時間(time of arrival)を検出するように構成される。理解されるように、このような実施形態では、出力ビデオストリーム230は、ビデオ通信サービス110にフィードバックされるか、そうでない場合、各参加者クライアント121および当該ローカルソフトウエア機能125に利用可能となる。
【0132】
例えば、時間同期要素231は、一定の時間間隔で出力ビデオ230に配置または更新される、所定の順序または方法で色が変化する画素などの視覚的マーカ;出力ビデオ230に更新および表示される視覚的時計;(例えば、十分に低い振幅および/または十分に高い周波数を有することによって、参加者122に聞こえないように設計され得る)音声信号であって、出力ビデオストリーム230の一部を形成する音声に追加される音声信号、であってよい。ローカルソフトウエア機能125は、適切な画像処理および/または音声処理を使用して、時間同期要素(のそれぞれ)231のそれぞれの到着時間を自動的に検出するように構成される。
【0133】
次に、共通時間基準260は、少なくとも部分的には、検出された到着時間に基づいて決定され得る。例えば、ローカルソフトウエア機能125の各々は、検出された到着時間を示すそれぞれの情報を中央サーバ130に通信してもよい。
【0134】
このような通信は、当該参加者クライアント121と中央サーバ130との間の直接通信リンクを介して行われてよい。ただし、通信は、当該参加クライアント121に関連付けられた一次ビデオストリーム210を介して行われてもよい。例えば、参加者クライアント121は、中央サーバ130による自動検出のために、当該参加者クライアント121によって生成される一次ビデオストリーム210に、上述したタイプのような視覚的または可聴的コードを導入し、共通時間基準260を決定するために使用してもよい。
【0135】
さらに追加的な実施例では、各参加者クライアント121は、ビデオ通信サービス110に対して、すべての参加者クライアント121が視聴可能な共通ビデオストリームにおいて画像検出を実行し、そのような画像検出の結果を、上述したものに対応する方法で中央サーバ130に中継し、そこで経時的に、互いに対する各参加者クライアント121のそれぞれのオフセットを決定するために使用されてもよい。このようにして、共通時間基準260は、個々の相対オフセットのセットとして決定され得る。例えば、共通に利用可能なビデオストリームの選択された基準ピクセルは、ローカルソフトウエア機能125などによって、いくつかの、またはすべての参加クライアント121によってモニタリングされ、そのピクセルの現在の色が中央サーバ130に伝達されてもよい。中央サーバ130は、多数の(またはすべての)参加クライアント121の各々から連続して受信されたそのような色値に基づいてそれぞれの時系列を計算し、相互相関(cross-correlation)を実行することにより、異なる参加クライアント121間に亘る相対的な時間オフセットの推定されるセットを生成してもよい。
【0136】
実際には、ビデオ通信サービス110に供給された出力ビデオストリーム230は、当該ビデオ通信のすべての参加者クライアントの共有画面の一部として含まれてよく、したがって、参加者クライアント121に関連付けられるそのような時間オフセットを評価するために使用されてよい。特に、ビデオ通信サービス110に供給された出力ビデオストリーム230は、自動参加者クライアント140および/またはAPI112を介して、中央サーバに再び利用可能になってよい。
【0137】
いくつかの実施形態では、共通時間基準260は、複数の一次デジタルビデオストリーム210、301のうちの第1のもののオーディオ部分214と、複数の一次デジタルビデオストリーム210、301のうちの上記第1のものの画像部分215との間の検出された不一致(discrepancy)に少なくとも部分的に基づいて決定され得る。このような不一致は、例えば、当該第1の一次デジタルビデオストリーム210、301において視聴される発話中の参加者122のデジタルリップシンクビデオ画像分析に基づくものでよい。このようなリップシンク解析はそれ自体従来のものであり、例えば訓練されたニューラルネットワークを使用してもよい。分析は、利用可能な共通のオーディオ情報に関連して、各一次ビデオストリーム210、301について同期機能133によって実行されてもよく、個々の一次ビデオストリーム210、301に亘る相対的なオフセットは、この情報に基づいて決定されてもよい。
【0138】
いくつかの実施形態では、同期ステップは、最大30秒、例えば最大5秒、例えば最大1秒、例えば最大0.5秒、ただし0秒よりも長い待ち時間を意図的に導入することを含み、これにより、出力デジタルビデオストリーム230には少なくともその待ち時間が提供される。いずれの長さであっても、意図的に導入される待ち時間は、収集ステップにおける任意の再サンプリング後に格納されるこの数のフレーム(または個別の画像)のような、少なくとも3つ、あるいは少なくとも5つ、さらには10つといった、少なくとも複数のビデオフレーム分である。本明細書で使用する場合、「意図的に」という用語は、同期の問題などに基づいてそのような待ち時間を導入する必要性とは無関係に待ち時間が導入されることを意味する。言い換えれば、意図的に導入される待ち時間は、複数の一次ビデオストリーム210、301間の互いの時間同期をとるために、一次ビデオストリーム210、301の同期の一部として導入される待ち時間に加えて導入される。意図的に導入される待ち時間は、共通時間基準260との関係で、予め決められたもの、固定されたもの、または可変のものであってもよい。待ち時間は、複数の一次ビデオストリーム210、301のうち最も潜在的(latent)でない1つに関連して測定されてよく、上記時間同期の結果、これらのストリーム210、301のより多くの潜在的なものが、相対的に小さい意図的に追加された待ち時間に関連付けられるようにしてもよい。
【0139】
いくつかの実施形態では、0.5秒以下のような比較的小さな待ち時間が導入される。この待ち時間は、出力ビデオストリーム230を使用するビデオ通信サービス110の参加者にはほとんど気づかれない。他の実施形態では、出力ビデオストリーム230が対話型コンテキストでは使用されず、代わりに外部消費者150への一方向通信で公開される場合などに、より大きな待ち時間が導入される可能性がある。
【0140】
この意図的に導入された待ち時間は、同期機能133が、収集された個別のプライマリストリーム210、301のビデオフレームを正しい共通時間基準260のタイムスタンプ261にマッピングするのに十分な時間を達成する。また、失われた一次ストリーム210、301の信号、スライドの変更、解像度の変更などを検出するために、上述のイベント検出を実行するのに十分な時間をもたらす。さらに、待ち時間を意図的に導入することにより、以下に説明するように、パターン検出機能134を改善することができる。
【0141】
待ち時間の導入は、当該バッファリングされたフレーム213を使用して出力ビデオストリーム230を公開する前に、収集され時間同期された複数の一次ビデオストリーム210、301の各々をバッファリング250することを含むことが理解される。言い換えれば、複数の一次ビデオストリーム210、301の少なくとも1つ、いくつか、またはすべてのビデオデータおよび/またはオーディオデータは、キャッシュのように、しかし(従来のキャッシュバッファのように)帯域幅が変化する状況に対処できることを意図して使用されるのではなく、上記の理由のために、特にパターン検出機能134によって使用されるように、バッファリングされた方法で中央サーバ130に存在することになる。
【0142】
そのため、いくつかの実施形態では、パターン検出ステップは、複数の一次デジタルビデオストリーム210、301の少なくとも1つ、たとえばいくつか、またはすべて、の特定の情報を考慮することを含み、この特定の情報は、出力デジタルビデオストリーム230の生成においてまだ使用されていない、時間同期された一次デジタルビデオストリーム210のフレームよりも後のフレーム213に存在する。したがって、新たに追加されたフレーム213は、出力ビデオストリーム230の一部(またはその基礎)を形成する前の特定の待ち時間の間、当該バッファ250に存在する。この期間中、当該フレーム213の情報は、出力ビデオストリーム230の現在のフレームを生成するために現在使用されているフレームとの関係において、「未来」の情報を構成する。出力ビデオストリーム230のタイムラインが当該フレーム213に達すると、当該フレームは出力ビデオストリーム230の対応するフレームの生成に使用され、その後は破棄されてもよい。
【0143】
言い換えれば、パターン検出機能134は、出力ビデオストリーム230を生成するためにまだ使用されていないビデオ/オーディオフレーム213のセットを自由に利用でき、このデータを使用して上記パターンを検出する。
【0144】
パターン検出は、異なる方法で実行することができる。AIコンポーネント134aによって実行されるいくつかの実施形態では、パターン検出ステップは、第2の訓練されたニューラルネットワークまたは他の機械学習コンポーネントが、上記パターン212を自動的に検出するために、複数の一次デジタルビデオストリーム120、301の少なくとも2つ、例えば少なくとも3つ、あるいはすべて、を協調して(in concert)分析することを含む。
【0145】
いくつかの実施形態において、検出されたパターン212は、共有ビデオ通信サービス110に対する、各々がそれぞれの参加者クライアント121に関連付けられた、少なくとも2人の異なる発話中の参加者122を含む発話パターンを備え、これら発話中の参加者122の各々は、複数の一次デジタルビデオストリーム210、301のそれぞれの1つにおいて視覚的に視聴される。
【0146】
好ましくは、生成ステップは、出力ビデオストリーム230の現在の生成状態を決定し、追跡し、更新することを含む。例えば、そのような状態は、どのような参加者122(もしあれば)が出力ビデオストリーム230において可視であるか、および画面上のどこで可視であるか;いずれかの外部ビデオストリーム300が出力ビデオストリーム230において可視であるか、および画面上のどこで可視であるか;いずれかのスライドまたは共有画面が、フルスクリーンモードで表示されるか、またはいずれかのライブビデオストリームと組み合わせて表示されるか、などを決定付けることができる。したがって、生成機能135は、生成された出力ビデオストリーム230に関するステートマシン(state machine)として見ることができる。
【0147】
出力ビデオストリーム230を、例えば最終消費者150によって視聴される結合されたビデオ体験として生成するために、中央サーバ130は、個々の一次ビデオストリーム210、301に関連付けられる個々のイベントを単に検出するよりも深いレベルで何が起こるかを理解できることが有利である。
【0148】
第1の例では、プレゼンテーションしている参加者クライアント121が、現在表示されているスライドを変更している。このスライド変更は、上述したようにイベント検出機能132によって検出され、スライド変更が起こったことを示すメタデータ242が当該フレームに追加される。プレゼンテーションしている参加者クライアント121が多数のスライドを前方に急速に連続してスキップしていることが判明し、その結果、一連の「スライド変更」のイベントが、検出機能132によっても検出され、当該一次ビデオストリーム210の個別のバッファ250に対応するメタデータ242とともに格納されるので、これは何回も起こる。実際には、そのような急速に前方にスキップされた各スライドは、ほんの数秒の間しか表示されないことがある。
【0149】
パターン検出機能134は、これらの検出されたスライド変更の複数にまたがる、当該バッファ250内の情報を参照して、多数のまたは急速に実行されたスライド変更ではなく、1つの単一のスライド変更に対応するパターンを検出する(すなわち、前方スキップにおける最後のスライドへの単一のスライド変更であり、一旦急速なスキップが終了すると、その最後のスライドは可視のままである)。言い換えれば、パターン検出機能134は、例えば、非常に短時間に10回のスライド変更があったこと、なぜそれらが1つの単一のスライド変更を意味する検出されたパターンとして扱われるのかに注目する。その結果、生成機能135は、パターン検出機能134によって検出されたパターンへのアクセスを持ち、この最後のスライドが上記ステートマシンにおいて潜在的に重要であると判断するので、出力ビデオストリーム230において数秒間フルスクリーンモードでその最後のスライドを表示することを選択することができる。また、出力ストリーム230において、中間的に閲覧されるスライドを全く表示しないことを選択することもできる。
【0150】
複数の急速なスライド変更を有するパターンの検出は、単純なルールベースのアルゴリズムによって検出されてもよいが、これに替えて、分類によって動画像のそのようなパターンを検出するように設計され訓練されたニューラルネットワークを使用して検出されてもよい。
【0151】
別の例では、例えば、ビデオ通信がトークショー、パネル討論、または同様のものである場合に有用である可能性があるが、一方では、穏やかで滑らかな出力ビデオストリーム230を生成して公開することによって消費者150に関連する視聴体験を与えながら、一方では、現在の話者の間で視覚的注目を素早く切り替えることが望ましい可能性がある。この場合、イベント検出機能132は、各一次ビデオストリーム210、301を連続的に分析して、その特定の一次ビデオストリーム210、301において視聴されている人物が現在話しているか否かを常に判定することができる。これは、例えば、それ自体従来の画像処理ツールを使用して、上述のように実行され得る。次に、パターン検出機能134は、複数の一次ビデオストリーム210、301を含む、特定の全体的なパターン(overall patterns)を検出するように動作可能であってもよく、このパターンは、滑らかな出力ビデオストリーム230を生成するのに有用である。例えば、パターン検出機能134は、現在の話者間の非常に頻繁なスイッチのパターンおよび/または複数の同時話者を含むパターンを検出することができる。
【0152】
次に、生成機能135は、例えば、半秒しか話さずに再び無音になる話者に視覚的フォーカスを自動的に切り替えないようにしたり、両者が入れ替わりながら又は同時に話しているある時間帯に複数の話者が並んで表示される状態に切り替えるようにしたりするなど、生成状態に関連して自動化された決定を行う際に、このような検出されたパターンを考慮することができる。この状態決定プロセスは、それ自体、時系列パターン認識技術を使用して、または訓練されたニューラルネットワークを使用して実行することができるが、少なくとも部分的に所定のルールセットに基づくこともできる。
【0153】
いくつかの実施形態では、並行して検出され、生成機能135のステートマシンへの入力を形成する複数のパターンがあってもよい。このような複数のパターンは、生成機能135によって、異なるAIコンポーネント、コンピュータビジョン検出アルゴリズムなどで使用され得る。一例として、一部の参加者クライアント121の不安定な接続を同時に検出しながら、恒久的なスライドの変更を検出することができ、他のパターンは現在の主な発話中の参加者122を検出する。このような利用可能なパターンデータをすべて使用して、このようなパターンデータの時系列を分析するために、分類器ニューラルネットワークを訓練し、および/またはルールのセットを開発することができる。このような分類は、少なくとも部分的に、例えば完全に、上記の生成で使用される決定された所望の状態変化をもたらすように、教師付きにすることができる。例えば、様々な異なる生成スタイルおよび要望に従って出力ビデオストリーム230を自動的に生成するように特に構成された、異なるそのような所定の分類器を生成することができる。訓練は、所望の出力としての既知の生成状態変化シーケンス、および訓練データとしての既知のパターン時系列データに基づいて行うことができる。いくつかの実施形態では、ベイズモデルを使用して、そのような分類器を生成することができる。具体的な例では、経験豊富なプロデューサから先験的に情報を得ることができ、「トークショーでは、話者Aから話者Bに直接切り替わることはしないが、他の話者が非常に支配的で大きな声で話す場合を除き、他の話者に焦点を当てる前に、常に最初に概要を示す」といった入力を提供することができる。この生成ロジックは、「もしXが真であれば|Yが真であるという事実が与えられれば|Zを実行する」という一般的な形式のベイズモデルとして表現される。実際の検出(誰かが大きな声で話しているかどうかなど)は、分類器や閾値ベースのルールを使って行うことができる。
【0154】
(パターン時系列データの)大規模なデータセットがあれば、ディープラーニングの手法を用いて、ビデオストリームの自動生成に使用するための、正しく魅力的な生成フォーマットを開発することができる。
【0155】
要約すると、個別の複数の一次ビデオストリーム210、301に基づくイベント検出;意図的に導入された待ち時間;複数の時間同期された一次ビデオストリーム210、301および検出されたイベントに基づくパターン検出;および検出されたパターンに基づく生成プロセスの組み合わせを使用することにより、テイストおよびスタイルの幅広い可能な選択に従って、出力デジタルビデオストリーム230の自動生成を実現することが可能になる。この結果は、イベント検出機能132、パターン検出機能134、および生成機能135によって使用される、可能なニューラルネットワークおよび/またはルールに基づく分析技術の広い範囲に亘って有効である。
【0156】
上記に例示したように、生成ステップは、出力デジタルビデオストリーム230における複数の一次デジタルビデオストリーム210、301の個々のものの可視性;視覚的および/または聴覚的ビデオコンテンツの配置;使用される視覚的または聴覚的効果;および/または出力デジタルビデオストリーム230の出力モードに関する、予め決定されたおよび/または動的に可変なパラメータのセットに基づいて、出力デジタルビデオストリーム230を生成することを含んでよい。このようなパラメータは、生成機能135のステートマシンによって自動的に決定され、および/または生成を制御するオペレータによって設定され(半自動にされ)、および/またはある先験的な構成上の要望(出力ビデオストリーム230のレイアウト変更または上記例示されたタイプの状態変更の間の最短時間など)に基づいて予め決定されてよい。
【0157】
実際の例では、ステートマシンは、フルスクリーンの発表者ビュー(現在発話中の参加者122をフルスクリーンで示す);スライドビュー(現在共有されているプレゼンテーションスライドをフルスクリーンで示す);「バタフライビュー」(現在発話中の参加者122と現在共有されているプレゼンテーションスライドの両方を並べたビューで示す);マルチスピーカビュー(参加者122のすべてまたは選択されたサブセットを並べてまたはマトリックスレイアウトで示す)など、出力ビデオストリーム230に適用され得る所定の標準レイアウトのセットをサポートしてよい。様々な利用可能な生成フォーマットは、利用可能な状態のセット(上記標準レイアウトのセットなど)と共に、(上記に例示したような)ステートマシン状態変更ルールのセットによって定義することができる。例えば、そのような生成フォーマットの1つは「パネルディスカッション」であり、別の生成フォーマットは「プレゼンテーション」などである。中央サーバ130へのGUIまたは他のインタフェースを介して特定の生成フォーマットを選択することによって、システム100のオペレータは、予め定義されたそのような制作フォーマットのセットのうちの1つを迅速に選択することができ、次いで、中央サーバ130が、完全に自動的に、上記のような利用可能な情報に基づいて、当該生成フォーマットに従って出力ビデオストリーム230を生成することを可能にする。
【0158】
さらに、生成中に、上述のように、各会議参加者クライアント121または外部ビデオソース300に対して、それぞれのメモリ内バッファが作成され、維持される。これらのバッファは、その場で容易に削除、追加、および変更することができる。次に、中央サーバ130は、出力ビデオストリーム230の生成中に、追加/削除(dropped-off)された参加者クライアント121およびスピーチを行う予定の参加者122;プレゼンテーションの予定されたまたは予期せぬ一時停止/再開;現在使用されている生成フォーマットに対する所望の変更などに関する情報を受信するように構成されてよい。このような情報は、例えば、上述したように、オペレータGUIまたはインタフェースを介して中央サーバ130に供給されてよい。
【0159】
上記に例示したように、いくつかの実施形態では、複数の一次デジタルビデオストリーム210、301の少なくとも1つは、デジタルビデオ通信サービス110に提供され、次に、公開ステップは、出力デジタルビデオストリーム230をその同じ通信サービス110に提供することを含んでよい。例えば、出力ビデオストリーム230は、ビデオ通信サービス110の参加者クライアント121に提供されてもよく、または、API112を介して、ビデオ通信サービス110への外部ビデオストリームとして提供されてもよい。このようにして、出力ビデオストリーム230は、ビデオ通信サービス110によって現在実現されているビデオコミュニケーションイベントの参加者の複数または全員が利用できるようにすることができる。
【0160】
上述もしたように、追加的または代替的に、出力ビデオストリーム230は、1つまたは複数の外部消費者150に提供されてよい。
【0161】
一般に、生成ステップは、中央サーバ130によって実行され、出力デジタルビデオストリーム230を、API137を介してライブビデオストリームとして1つまたは複数の同時消費者に提供することができる。
【0162】
本発明はまた、上記の開示に従って共有デジタルビデオストリームを提供するためのコンピュータソフトウエア機能に関する。そして、このようなコンピュータソフトウエア機能は、実行時に、上記の収集、イベント検出、同期、パターン検出、生成、および公開の各ステップを実行するように構成される。コンピュータソフトウエア機能は、上述したように、中央サーバ130の物理ハードウエアまたは仮想ハードウエアア上で実行するように構成される。
【0163】
本発明はまた、共有デジタルビデオストリームを提供するためのシステムであり、順に中央サーバ130を構成する、そのようなシステム100に関する。中央サーバ103は、順に、上記の収集、イベント検出、同期、パターン検出、生成、および公開の各ステップを実行するように構成される。例えば、これらのステップは、中央サーバ130が、上記の各ステップを実行するためのコンピュータソフトウエア機能を実行することによって実行される。
【0164】
以上、好ましい実施形態について説明した。しかしながら、本発明の基本的な思想から逸脱することなく、開示された実施形態に多くの変更を加えることができることは、当業者には明らかである。
【0165】
例えば、本明細書で説明するシステム100の一部として、本明細書では説明しない多くの追加機能を提供することができる。一般に、ここで説明されている解決手段は、ビデオデータのストリームが通信に使用される多種多様な具体的アプリケーションに対応するために、詳細な機能性および特徴を構築することができるフレームワークを提供する。
【0166】
一例として、デモンストレーションの状況があり、ここでは、一次ビデオストリームは、発表者のビュー、共有されたデジタルスライドベースのプレゼンテーション、およびデモンストレーションされている製品のライブビデオを含む。
【0167】
別の例としては、教育の状況があり、ここでは、一次ビデオストリームは、教師のビュー、教育のトピックである物理的実体のライブビデオ、質問を投げかけたり教師と対話したりする複数の生徒のそれぞれのライブビデオを含む。
【0168】
これら2つの例のいずれにおいても、(システムの一部であってもなくてもよい)ビデオ通信サービスは、一次ビデオストリームの1つまたは複数を提供することができ、および/または、一次ビデオストリームのいくつかを、本明細書で開示されるタイプの外部ビデオソースとして提供することができる。
【0169】
一般に、本方法に関して開示したことはすべて、本システムおよびコンピュータソフトウエア製品に適用可能であり、その逆もまた同様である。
【0170】
したがって、本発明は、記載された実施形態に限定されるものではなく、添付の特許請求の範囲内で種々の変更が可能である。
図1
図2
図3
図4
図5
図6a
図6b
図6c
図6d
図6e
図6f
図7
【国際調査報告】