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

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

▶ LINE株式会社の特許一覧

特開2022-79607ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム
<>
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図1
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図2
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図3
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図4
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図5
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図6
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図7
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図8
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図9
  • 特開-ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022079607
(43)【公開日】2022-05-26
(54)【発明の名称】ビデオカンファレンスのビデオストリームを提供するサーバ、方法及びコンピュータプログラム
(51)【国際特許分類】
   H04N 7/15 20060101AFI20220519BHJP
【FI】
H04N7/15 120
H04N7/15
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022054842
(22)【出願日】2022-03-30
(62)【分割の表示】P 2017157004の分割
【原出願日】2017-08-16
(31)【優先権主張番号】10-2016-0103738
(32)【優先日】2016-08-16
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】321003371
【氏名又は名称】LINE株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】クァック ジョンナム
(57)【要約】
【課題】 ビデオカンファレンスのためのビデオストリーム提供方法およびシステムを提供する。
【解決手段】 ビデオストリーム提供方法は、ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類するクラス情報を管理する段階、クラス情報に基づき、複数のクラスのうちで前記ビデオカンファレンスに参加したソース提供クライアントで提供可能な解像度が属する少なくとも2つ以上のクラスを決定する段階、ビデオカンファレンスのためのビデオストリームを決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して複数のレイヤとしてエンコードする段階、および前記複数のレイヤとしてエンコードされたビデオストリームをネットワークを介してビデオカンファレンスのためのサーバに送信するように前記ソース提供クライアントの電子機器を制御する段階を含む。
【選択図】 図3
【特許請求の範囲】
【請求項1】
ネットワークを介してビデオカンファレンスのビデオストリームを提供するサーバであって、
少なくとも1つのプロセッサ;及び
前記少なくとも1つのプロセッサに結合され、コンピュータ読み取り可能な命令を記憶したメモリ;
を含み、前記コンピュータ読み取り可能な命令は:
前記ビデオカンファレンスに接続されたソース提供クライアントから、前記ビデオカンファレンスに関連するエンコードされたビデオストリームと、前記ビデオカンファレンスの前記エンコードされたビデオストリームに関連する複数のレイヤのうちの少なくとも1つのレイヤを含むビデオ解像度の利用可能性情報とを受信するステップであって、前記ビデオ解像度の利用可能性情報は、前記ソース提供クライアントが、前記ビデオカンファレンスに関連する前記ビデオストリームをエンコード又はデコードするために利用可能なビデオ解像度を示し、前記複数のレイヤのうちの前記少なくとも1つのレイヤは、前記少なくとも1つのレイヤのビデオ解像度の範囲内に含まれる選択されたビデオ解像度に対応している、ステップ;
前記ビデオカンファレンスに接続された少なくとも1つの受信クライアントから、前記少なくとも1つの受信クライアントにより再生可能なビデオ解像度に関連するビデオ解像度の再生可能性情報を受信するステップと、
前記少なくとも1つの受信クライアントへ送信されるべき前記エンコードされたビデオストリームのうちの少なくとも1つのレイヤを、前記ソース提供クライアントからの受信した前記ビデオ解像度の利用可能性情報と、前記少なくとも1つの受信クライアントからの受信した前記ビデオ解像度の再生可能性情報とに基づいて決定するステップと、
前記エンコードされたビデオストリームのうちの決定された少なくとも1つのレイヤを、前記少なくとも1つの受信クライアントへ、前記エンコードされたビデオストリームを前記サーバによりトランスコードすることなく送信するステップと
を前記少なくとも1つのプロセッサに実行させる、サーバ。
【請求項2】
前記複数のレイヤのうちの前記少なくとも1つのレイヤは、
前記エンコードされたビデオストリームのビデオ解像度に対応するレイヤ;及び
前記エンコードされたビデオストリームの前記ビデオ解像度より低いビデオ解像度に対応する、前記複数のレイヤのうちの少なくとも1つのより低いレイヤ;
を含む、請求項1に記載のサーバ。
【請求項3】
前記エンコードされたビデオストリームは、前記ビデオカンファレンスに関して管理されるクラス情報と、前記ソース提供クライアントのハードウェア特徴とに基づいて、前記ソース提供クライアントにより記録され;
前記クラス情報は、前記複数のレイヤのうちの各レイヤに対する前記ビデオ解像度の範囲を含み;
前記複数のレイヤ各々の選択されたビデオ解像度に関し、レイヤnの前記ビデオ解像度の幅は、レイヤn-1の前記ビデオ解像度の幅の倍数であり、前記レイヤnの前記ビデオ解像度の高さは、前記レイヤn-1の前記ビデオ解像度の高さの倍数であり、nは2以上の自然数を示す、請求項1に記載のサーバ。
【請求項4】
前記少なくとも1つの受信クライアントへ送信されるべき前記エンコードされたビデオストリームのうちの少なくとも1つのレイヤを決定するステップは:
前記エンコードされたビデオストリームを、前記少なくとも1つの受信クライアントについての受信した前記ビデオ解像度の再生可能性情報に基づいて分析し、その分析は、前記エンコードされたビデオストリームの前記複数のレイヤのうちの少なくとも1つのレイヤであって前記少なくとも1つの受信クライアントにより再生可能なビデオ解像度に対応するレイヤを識別することを含む、ステップ;及び
前記ビデオストリームを、分析された前記ビデオストリームに基づいて再構成するステップであって、その再構成は、前記少なくとも1つの受信クライアントで再生可能でないレイヤを、分析された前記ビデオストリームから除くことを含む、ステップ;
を含む、請求項1に記載のサーバ。
【請求項5】
前記複数のレイヤは少なくとも第1レイヤと第2レイヤを含み、前記第2レイヤは前記第1レイヤより高いビデオ解像度の範囲を有し;
前記第1レイヤと前記第2レイヤは、前記ソース提供クライアントにより提供される参照フレームに基づいて生成される、請求項1に記載のサーバ。
【請求項6】
前記第1レイヤと前記第2レイヤは、異なるエンコーディングフォーマットを用いて生成される、請求項5に記載のサーバ。
【請求項7】
前記第1レイヤは、前記参照フレームをダウンスケーリングし、ダウンスケーリングされた参照フレームをエンコードすることによって生成される、請求項5に記載のサーバ。
【請求項8】
前記第2レイヤは、インターレイヤ予測に関連するメタデータと前記参照フレームをエンコードすることに基づいて生成される、請求項5に記載のサーバ。
【請求項9】
ネットワークを介してビデオカンファレンスのビデオストリームを提供するためにサーバの少なくとも1つのプロセッサにより実行される方法であって、
ビデオカンファレンスに接続されたソース提供クライアントから、前記ビデオカンファレンスに関連するエンコードされたビデオストリームと、前記ビデオカンファレンスの前記エンコードされたビデオストリームに関連する複数のレイヤのうちの少なくとも1つのレイヤを含むビデオ解像度の利用可能性情報とを受信するステップであって、前記ビデオ解像度の利用可能性情報は、前記ソース提供クライアントが、前記ビデオカンファレンスに関連する前記ビデオストリームをエンコード又はデコードするために利用可能なビデオ解像度を示し、前記複数のレイヤのうちの前記少なくとも1つのレイヤは、前記少なくとも1つのレイヤのビデオ解像度の範囲内に含まれる選択されたビデオ解像度に対応している、ステップ;
前記ビデオカンファレンスに接続された少なくとも1つの受信クライアントから、前記少なくとも1つの受信クライアントにより再生可能なビデオ解像度に関連するビデオ解像度の再生可能性情報を受信するステップと、
前記少なくとも1つの受信クライアントへ送信されるべき前記エンコードされたビデオストリームのうちの少なくとも1つのレイヤを、前記ソース提供クライアントからの受信した前記ビデオ解像度の利用可能性情報と、前記少なくとも1つの受信クライアントからの受信した前記ビデオ解像度の再生可能性情報とに基づいて決定するステップと、
前記エンコードされたビデオストリームのうちの決定された少なくとも1つのレイヤを、前記少なくとも1つの受信クライアントへ、前記エンコードされたビデオストリームを前記サーバによりトランスコードすることなく送信するステップと
を含む方法。
【請求項10】
請求項9に記載された方法を前記プロセッサに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ビデオカンファレンスのためのビデオストリーム提供方法およびシステム、コンピュータによって実現される電子機器と結合してビデオカンファレンスのためのビデオストリーム提供方法をコンピュータに実行させるコンピュータプログラム、ならびに、コンピュータで読み取り可能な記録媒体に関する。
【背景技術】
【0002】
ビデオカンファレンス(video conference)とは、遠距離に位置する人々が映像および音声通信網を利用して同じ場所にいるような雰囲気で行われる遠隔会議の一種である。このようなビデオカンファレンスでは、映像の解像度(映像画面のサイズ)が大きくなるため、データが圧縮されたとしても送受信されなければならないデータ量が多くなる上に、ビデオカンファレンスに参加したユーザのうちでも特定のユーザ(一例として、該当の解像度でビデオストリームを再生することができない端末のユーザ)には、ビデオストリームの伝達が困難になる可能性もあるという問題を抱えている。
【0003】
このような問題を克服するために、従来のビデオカンファレンスシステムは、2種類以上の解像度を有するビデオストリームを提供している。例えば、従来のビデオカンファレンスシステムは、ビデオカンファレンスのすべての参加者が使用することのできる解像度のみでビデオストリームを送信したり、あるいは、受信したビデオストリームをデコードした後、低い解像度のビデオストリームにトランスコードして伝達したりしていた。一例として、特許文献1は、エンコードされたメディアストリームにトランスコード(transcoding)情報を提供する方法について開示している。
【0004】
しかし、このようなトランスコードは、サーバ側の負荷が極めて大きいという問題を抱えている。さらに、2種類以上の解像度を有するビデオストリームを提供するにあたっては、画面サイズを別途分類しないため、希望するサイズでない場合には画面サイズをリサイジングしなければならないことから、性能に悪影響を及ぼすという問題がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】韓国登録特許第10-1100413号公報
【特許文献2】国際公開第2015/065001号
【特許文献3】米国特許出願公開第2014/0019540号明細書
【特許文献4】米国特許出願公開第2013/0332543号明細書
【特許文献5】米国特許出願公開第2013/0260893号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
ビデオカンファレンスのためのビデオストリームの提供において、ソース提供クライアントがビデオストリームを画面サイズ(解像度)別に複数のレイヤとしてエンコードしてサーバに提供することによってサーバ側の負担を減らすことができる、ビデオカンファレンスのためのビデオストリーム提供方法およびシステム、コンピュータによって実現される電子機器と結合してビデオカンファレンスのためのビデオストリーム提供方法をコンピュータに実行させるコンピュータプログラム、および、コンピュータで読み取り可能な記録媒体を提供する。
【0007】
解像度の範囲を複数のクラスに予め分類し、各クラスの解像度範囲に含まれる解像度を有するレイヤを提供することにより、クライアントのカメラによって入力される解像度と前記解像度を基準に設定される他の解像度を活用して画面をリサイジングする必要なくそのまま活用することができる、ビデオカンファレンスのためのビデオストリーム提供方法およびシステム、コンピュータによって実現される電子機器と結合してビデオカンファレンスのためのビデオストリーム提供方法をコンピュータに実行させるためにコンピュータプログラム、および、コンピュータで読み取り可能な記録媒体を提供する。
【課題を解決するための手段】
【0008】
ビデオカンファレンスのためのビデオストリーム提供方法を、電子機器のコンピュータに実行させるコンピュータプログラムであって、前記ビデオストリーム提供方法は、前記ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づいて、前記複数のクラスのうち、前記ビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定する段階、前記ビデオカンファレンスのためのビデオストリームを前記決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して複数のレイヤとしてエンコードする段階、および前記複数のレイヤとしてエンコードされたビデオストリームをネットワークを介して前記ビデオカンファレンスのためのサーバに送信するように前記ソース提供クライアントの電子機器を制御する段階を含む、コンピュータプログラムを提供する。
【0009】
ビデオカンファレンスのためのビデオストリーム提供方法であって、前記ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づいて、前記複数のクラスのうちで前記ビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定する段階、前記ビデオカンファレンスのためのビデオストリームを前記決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して複数のレイヤとしてエンコードする段階、および前記複数のレイヤとしてエンコードされたビデオストリームをネットワークを介して前記ビデオカンファレンスのためのサーバに送信するように前記ソース提供クライアントの電子機器を制御する段階を含む、ビデオストリーム提供方法を提供する。
【0010】
ビデオカンファレンスのためのサーバのビデオストリーム提供方法であって、前記ビデオカンファレンスに参加したソース提供クライアントから、前記ソース提供クライアントが提供可能な複数の解像度それぞれによって複数のレイヤとしてエンコードされたビデオストリームを受信する段階、前記ビデオカンファレンスに参加した少なくとも2つ以上の受信クライアントそれぞれから、前記2つ以上の受信クライアントそれぞれが再生可能な解像度に関する情報を受信する段階、前記2つ以上の受信クライアントのうちで第1受信クライアントに送信するためのビデオストリームのレイヤを前記第1受信クライアントから受信した解像度に関する情報を利用して決定する段階、および前記決定されたレイヤを前記第1受信クライアントに送信する段階を含む、ビデオストリーム提供方法を提供する。
【発明の効果】
【0011】
ビデオカンファレンスのためのビデオストリームの提供において、ソース提供クライアントがビデオストリームを画面サイズ(解像度)別に複数のレイヤとしてエンコードしてサーバに提供することにより、サーバ側の負担を減らすことができる。
【0012】
解像度の範囲を複数のクラスに予め分類し、各クラスの解像度範囲に含まれる解像度を有するレイヤを提供することにより、クライアントのカメラによって入力される解像度と前記解像度を基準に設定される他の解像度を活用して画面をリサイジングする必要なくそのまま活用することができる。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図3】本発明の一実施形態における、ビデオストリーム提供のための全体システムの例を示した図である。
図4】本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示したブロック図である。
図5】本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
図6】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図である。
図7】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
図8】本発明の一実施形態における、下位レイヤと上位レイヤの関係に対する例を示した図である。
図9】本発明の一実施形態における、ビデオストリームをレイヤとしてエンコードする例を示した図である。
図10】本発明の一実施形態における、ビデオストリームをレイヤとしてエンコードする他の例を示した図である。
【発明を実施するための形態】
【0014】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0015】
本発明の実施形態に係るビデオカンファレンスのためのサーバのビデオストリーム提供システムは、以下で説明される電子機器やサーバによって実現されてよく、本発明の実施形態に係るビデオカンファレンスのためのサーバのビデオストリーム提供方法は、上述した電子機器やサーバによって実行されてよい。一実施形態として、電子機器は、サーバを通じてビデオカンファレンスに参加してよく、1つの電子機器から送信されるビデオストリームは、サーバを通じてビデオカンファレンスに参加した他の電子機器に伝達されてよい。このとき、ビデオカンファレンスのためのサービスが提供されるためのコンピュータプログラムが電子機器にインストールされてよく、電子機器は、インストールされたコンピュータプログラムの制御にしたがって本発明の実施形態に係るビデオカンファレンスのためのサーバのビデオストリーム提供方法を実行してよい。サーバも、サーバにインストールされるコンピュータプログラムの制御にしたがって電子機器にビデオカンファレンスのためのサービスを提供してよい。コンピュータプログラムは、コンピュータで実現された電子機器やサーバと結合してビデオストリーム提供方法をコンピュータに実行させるためにコンピュータで読み取り可能な記録媒体に格納されてよい。
【0016】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
【0017】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、図1では、電子機器1(110)の例としてスマートフォンの形状を示しているが、本発明の実施形態では、実質的に、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な機器のうちの1つを意味してよい。
【0018】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでもよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0019】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、第1サービスとして、ビデオカンファレンスのためのサービスを複数の電子機器110、120、130、140に提供するシステムであってよい。また、サーバ160は、第2サービスとして、ビデオカンファレンスのためのサービスが提供されるようにするためのアプリケーション(一例として、上述したコンピュータプログラム)のインストールファイルを複数の電子機器110、120、130、140に提供するファイル配布システムであってよい。
【0020】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、電子機器に対する例として電子機器1(110)の内部構成を、そしてサーバ150の内部構成を説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器1(110)またはサーバ150と同一または類似の内部構成を有してよい。
【0021】
電子機器1(110)とサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含んでよい。ここで、ROMとディスクドライブのような永久大容量記憶装置は、メモリ211、221とは区分される別の永久保存装置として電子機器1(110)やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電気機器1(110)にインストールされ駆動するブラウザや特定サービスの提供のために電子機器1(110)にインストールされたアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0022】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0023】
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器1(110)および/またはサーバ150が他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードにしたがって生成した要求が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体(上述した永久保存装置)に格納されてよい。
【0024】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、ディスプレイのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器1(110)と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150と接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0025】
また、他の実施形態において、電子機器1(110)およびサーバ150は、図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などの多様な構成要素が電子機器1(110)にさらに含まれるように実現されてよい。
【0026】
図3は、本発明の一実施形態における、ビデオストリーム提供のための全体システムの例を示した図である。図3は、第1電子機器310、第2電子機器320、第3電子機器330、およびビデオカンファレンスサーバ340を示している。第1電子機器310、第2電子機器320、および第3電子機器330それぞれは、上述した電子機器1(110)のように実現されてよく、ビデオカンファレンスサーバ340は、上述したサーバ150のように実現されてよい。
【0027】
ここで、第1電子機器310、第2電子機器320、および第3電子機器330は、ネットワーク170を介してビデオカンファレンスに参加した端末であってよく、ビデオカンファレンスのためのビデオストリームを送受信してよい。このような第1電子機器310、第2電子機器320、および第3電子機器330はそれぞれ、ビデオストリームの発信者であると同時に受信者であってもよいが、説明の便宜のために、第1電子機器310がビデオストリームを発信するソース提供クライアントであり、第2電子機器320および第3電子機器330がビデオスクリムを受信する受信クライアントであると仮定する。また、ビデオカンファレンスサーバ340は、第1電子機器310、第2電子機器320、および第3電子機器330間でビデオカンファレンスが成立するようにサービスを提供する装置であってよい。
【0028】
第1点線ボックス351が示す過程は、ビデオカンファレンスに参加した第1電子機器310から提供可能なソースのサイズをビデオカンファレンスサーバ340に知らせてビデオカンファレンスサーバ340が応答する過程の例を示している。ここで、ソースとは、第1電子機器310がビデオカンファレンスを行うためにビデオカンファレンスサーバ340にアップロードしようとするビデオストリームを意味してよく、ソースのサイズとは、第1電子機器310が提供することのできる解像度を意味してよい。例えば、第1電子機器310は、ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報を利用し、ビデオストリームを互いに異なる解像度のn(前記nは、2以上の自然数)個のレイヤでエンコードしてよい。
【0029】
このとき、第1電子機器310が提供可能なソースのサイズ(レイヤ)は、第1電子機器310のCPUパワーおよび/またはネットワーク状況(例えば、第1電子機器310が測定するネットワークトラフィック)に基づいて第1電子機器310で決定されてよい。
【0030】
一例として、以下の表1は、ビデオカンファレンスのための解像度の範囲を3つのクラスに予め分類した例を示している。このとき、解像度の範囲は、幅(width)×高さ(height)を基準に分類されてよい。
【0031】
【表1】
このとき、第1点線ボックス351に示された「レイヤ=3」は、表1のレイヤ識別子3に対応し、第1電子機器310が第1クラスに対応するレイヤ1、第2クラスに対応するレイヤ2、および第3クラスに対応するレイヤ3の提供が可能であることをビデオカンファレンスサーバに知らせることを意味してよい。
【0032】
各レイヤの解像度は、対応するクラスの解像度の範囲に含まれてよい。ここで、各レイヤの解像度は、予め特定の値で固定されるのではなく、予め分類されたクラスの解像度範囲に含まれる値の中から設定されてよい。例えば、電子機器が含むカメラによって入力される画面のサイズは一括的ではない。もし、第2レイヤの解像度の値を640×480に固定した場合に、カメラを通じて他の解像度(一例として、635×475)の映像が入力された場合には、映像の解像度をリサイジングしなければならない問題が生じる。しかし、発明の実施形態のように、レイヤの解像度の値を固定的に設定するのではなく、クラス別の解像度の範囲に含まれる値を設定することによってリサイジング(resizing)が要求されなくなるため、性能が向上するようになる。
【0033】
表1では、3つのクラスと3つのレイヤについて説明したが、クラスはn個に予め分類されてもよく、レイヤもn個が存在してもよい。例えば、表2は、ビデオカンファレンスのための解像度の範囲が4つのクラスに予め分類された実施形態を示している。
【0034】
【表2】
このような実施形態において、複数のレイヤのうちで基準となるレイヤの解像度は、電子機器(一例として、上述した第1電子機器310)が含むカメラによって入力される解像度が設定されてよく、複数のレイヤのうちの他のレイヤの解像度は、基準となるレイヤの解像度に基づいて設定されてよい。例えば、レイヤの解像度は、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍となり、前記レイヤnの解像度による高さが前記レイヤn-1の解像度による高さの2倍となるように設定されてよい。より具体的な例として、第1電子機器310が含むカメラを通じて入力される画面のサイズが315×235である場合、レイヤ1の解像度は315×235となってよい。ここで、レイヤ2の解像度は630×470となってよく、レイヤ3の解像度は1260×940となってよい。
【0035】
言い換えれば、レイヤの解像度がQVGAのための496×360、VGAのための640×480のように固定されているのではなく、カメラを通じて入力される画面のサイズによって対応するクラスの解像度範囲に含まれるように可変的に設定され、そのサイズは幅と高さがそれぞれ2倍になるように設定されるため、リサイジング時には性能向上を期待することができる。
【0036】
また、レイヤnは、レイヤn-1を基盤にエンコードされてよい。例えば、レイヤ1が生成された後、レイヤ2は、レイヤ1に追加で必要な情報のみを含んでよい。言い換えれば、レイヤnは、レイヤ1からレイヤn-1までの下位レイヤのデータを共有し、レイヤnの解像度にしたがってエンコードされたビデオストリームを構成するための追加データを含むことができる。
【0037】
一方、ビデオカンファレンスサーバ340は、ネットワーク状況(例えば、ビデオカンファレンスサーバ340で測定するネットワークトラフィックやネットワークリソースなど)に応じて第1電子機器310がアップロード可能なレイヤを再調整してよい。例えば、第1電子機器310が「レイヤ=3」のようにレイヤ1からレイヤ3までの提供が可能であると知らせてきたとき、ビデオカンファレンスサーバ340は、ネットワーク状況に応じて第1電子機器310がアップロード可能なレイヤをレイヤ2までに制限してよい。この場合、第1点線ボックスの「応答」は、「レイヤ=2」のように再調整されたレイヤ識別子を含んでよい。
【0038】
また、第2点線ボックス352が示す過程は、ビデオカンファレンスに参加した第2電子機器320が第2電子機器320で再生可能な解像度をビデオカンファレンスサーバ340に知らせ、サーバがこれに応答する過程の例であってよい。第2点線ボックス352の「レイヤ=2」は、第2電子機器320がレイヤ2の解像度で映像の再生が可能であることを意味してよい。
【0039】
第3点線ボックス353が示す過程は、ビデオカンファレンスに参加した第3電子機器330が第3電子機器330で再生可能な解像度をビデオカンファレンスサーバ340に知らせ、サーバがこれに応答する過程の例であってよい。第3点線ボックス353の「レイヤ=1」は、第3電子機器330がレイヤ1の解像度で映像の再生が可能であることを意味してよい。
【0040】
このような受信クライアント(第2電子機器320および第3電子機器330)の再生可能な解像度は、機器の特性に応じて定められるものであるため、ビデオカンファレンスサーバ340は、レイヤに対する別途の再調整なく、第2電子機器320および第3電子機器330の要求にしたがってレイヤを伝達することができる。
【0041】
第1矢印354が示す過程は、第1電子機器310がビデオカンファレンスサーバ340にレイヤをアップロードする過程であってよい。図3の実施形態のように、第1電子機器310は、レイヤ1からレイヤ3までのアップロードが可能であることをビデオカンファレンスサーバ340に知らせたため、これに応じてレイヤ1、レイヤ2、およびレイヤ3をビデオカンファレンスサーバ340にアップロードしてよい。
【0042】
第2矢印355と第3矢印356が示す過程は、ビデオカンファレンスサーバ340が第2電子機器320および第3電子機器330に要求されたレイヤを伝達する過程であってよい。ここで、第2電子機器320はレイヤ2を要求したため、ビデオカンファレンスサーバ340は、レイヤ1およびレイヤ2を第2電子機器320に提供してよい。また、第3電子機器330はレイヤ1を要求したため、ビデオカンファレンスサーバ340は、レイヤ1を第3電子機器330に提供してよい。
【0043】
上述したように、レイヤ2は、レイヤ1のデータを共有し、レイヤ2の解像度によるビデオストリームを得るための追加の情報を含むため、レイヤ1と共に伝達されることにより、第2電子機器320でレイヤ2の解像度によるビデオストリームを得ることができるようになる。より具体的な例として、第1電子機器310がビデオカンファレンスサーバ340にアップロードするレイヤの統合されたペイロードフォーマットが「[レイヤ1][レイヤ2][レイヤ3]」のような形態を有しているとする。このとき、ビデオカンファレンスサーバ340は、上のペイロード構造をトランスコードせずに分析(parse)した後、「[レイヤ1][レイヤ2]」のように再び組み合わせて再構成された第2電子機器320に提供してよい。これと同じように、ビデオカンファレンスサーバ340は、上のペイロード構造をトランスコードせずに分析した後、「[レイヤ1]」のように再び組み合わせて第3電子機器330に提供してよい。
【0044】
図4は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示したブロック図であり、図5は、本発明の一実施形態における、電子機器が実行することのできる方法の例を示したフローチャートである。
【0045】
本実施形態に係る電子機器1(110)は、図3を参照しながら説明した第1電子機器310に対応してよく、ソース提供クライアントの役割を実行してよい。このような電子機器1(110)のプロセッサ212は、図4に示すように、クラス情報管理部410、クラス決定部420、エンコード部430、および送信制御部440を含んでよい。
【0046】
このようなプロセッサ212およびプロセッサ212の構成要素は、図5のビデオストリーム提供方法が含む段階510~540を実行してよい。このとき、プロセッサ212およびプロセッサ212の構成要素は、メモリ211が含むオペレーティングシステムのコードや少なくとも1つのプログラム(一例として、ビデオカンファレンスサービスの提供のためのアプリケーション)のコードによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ212の構成要素は、電子機器1(110)に格納されたコードが提供する制御命令にしたがってプロセッサ212によって実行される、プロセッサ212の互いに異なる機能(different functions)の表現であってよい。例えば、プロセッサ212がクラス情報を管理するように電子機器1(110)を制御するプロセッサ212の機能的表現としてクラス情報管理部410が使用されてよい。
【0047】
段階510で、クラス情報管理部410は、ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報を管理してよい。クラス情報とは、上記の表1や表2を参照しながら説明したように、解像度の範囲に関する分類情報であってよく、上述したアプリケーションの制御にしたがって電子機器1(110)の格納所(一例として、図2を参照しながら説明した永久格納装置)に格納および管理されてよい。解像度の範囲に対する分類は、ビデオカンファレンスのためのサーバで予め設定されてよい。ここで、サーバは、上述したビデオカンファレンスサーバ340に対応してよい。例えば、複数のクラスは、QVGA(Quarter Video Graphic Array)の解像度を含む解像度範囲の第1クラス、VGA(Video Graphic Array)の解像度を含む解像度範囲の第2クラス、およびHD(High Definition)の解像度を含む解像度範囲の第3クラスを含んでよい。
【0048】
段階520で、クラス決定部420は、クラス情報に基づき、複数のクラスのうちでビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定してよい。上述したように、各クラスに対応するレイヤが存在し、クラスを決定することは、提供可能なレイヤを決めることに対応してよい。例えば、表1において第1クラスおよび第2クラスを決定することは、レイヤ1およびレイヤ2の提供が可能であることに対応してよい。
【0049】
段階530で、エンコード部430は、ビデオカンファレンスのためのビデオストリームを決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して複数のレイヤとしてエンコードしてよい。上述したように、複数のレイヤのうちで基準となるレイヤの解像度は、電子機器1(110)が含むカメラによって入力される画面のサイズ(解像度)で設定され、複数のレイヤのうちの他のレイヤの解像度は、基準となるレイヤの解像度に基づいて設定されてよい。ここで、複数のレイヤの解像度は、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍となり、レイヤnの解像度による高さがレイヤn-1の解像度による高さの2倍となるように設定されてよい。上述したビデオカンファレンスのための解像度の範囲は、解像度範囲が低い順にn番目クラスの解像度範囲にレイヤnの解像度が含まれるように予め分類されてよい。また、上述したように、レイヤnは、レイヤ1からレイヤn-1までのデータを共有し、レイヤnの解像度にしたがってエンコードされたビデオストリームを構成するための追加データを含んでよい。例えば、レイヤ2は、レイヤ1のデータを共有し、レイヤ2の解像度にしたがってエンコードされたビデオストリームを構成するための追加データを含んでよい。
【0050】
例えば、電子機器1(110)が含むカメラを通じて入力される画面のサイズが315×235である場合、エンコード部430は、解像度315×235でレイヤ1をエンコードしてよい。また、電子機器1(110)がレイヤ3まで提供可能な場合(第1クラス、第2クラス、および第3クラスを提供可能な解像度が属するクラスとして決定する場合)、エンコード部430は、解像度630×470でレイヤ2をエンコードしてよく、解像度1260×940でレイヤ3をエンコードしてよい。ビデオストリームのレイヤとしてのエンコードについては、以下でさらに詳しく説明する。
【0051】
段階540で、送信制御部440は、複数のレイヤとしてエンコードされたビデオストリームをネットワークを介してビデオカンファレンスのためのサーバに送信するようにソース提供クライアントの電子機器1(110)を制御してよい。ここで、ネットワークは、図1および図2を参照しながら説明したネットワーク170に対応してよく、ビデオストリームをサーバに送信することは、図3の第1矢印354が示す過程を参照しながら説明したように、レイヤをアップロードすることに対応してよい。このとき、ビデオカンファレンスのためのサーバは、複数のレイヤとしてエンコードされたビデオストリームを受信し、ビデオカンファレンスに参加した少なくとも2つ以上の受信クライアントそれぞれから2つ以上の受信クライアントそれぞれが再生可能な解像度に関する情報をネットワークを介して受信し、2つ以上の受信クライアントのうちの第1受信クライアントから受信した解像度に関する情報を利用して第1受信クライアントに送信するレイヤを決定するように実現されてよい。
【0052】
また、2つ以上の受信クライアントそれぞれは、2つ以上の受信クライアントの電子機器(一例として、図3を参照しながら説明した第2電子機器320および第3電子機器330)で再生可能な解像度に関する情報をネットワークを介してビデオカンファレンスのためのサーバに送信し、ビデオカンファレンスのためのサーバから受信したレイヤを利用してビデオストリームを再生するように実現されてよい。例えば、図3の第2電子機器320は、受信したレイヤ1およびレイヤ2によってレイヤ2の解像度によるビデオストリームを再生してよい。
【0053】
図6は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、図7は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【0054】
本実施形態に係るサーバ150は、図3を参照しながら説明したビデオカンファレンスサーバ340に対応してよい。このようなサーバ150のプロセッサ222は、図6に示すように、ビデオストリーム受信制御部610、解像度情報受信部620、レイヤ決定部630、およびレイヤ送信制御部640を含んでよい。
【0055】
このようなプロセッサ222およびプロセッサ222の構成要素は、図7のビデオストリーム提供方法が含む段階710~740を実行してよい。このとき、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードや少なくとも1つのプログラムのコードによる制御命令を実行するように実現されてよい。ここで、プロセッサ222の構成要素は、サーバ150に格納されたコードが提供する制御命令にしたがってプロセッサ222によって実行される、プロセッサ222の互いに異なる機能の表現であってよい。例えば、プロセッサ222がビデオストリームを受信するようにサーバ150を制御するプロセッサ222の機能的表現としてビデオストリーム受信制御部610が使用されてよい。
【0056】
段階710で、ビデオストリーム受信制御部610は、ビデオカンファレンスに参加したソース提供クライアントから、ソース提供クライアントから提供可能な複数の解像度それぞれにしたがって複数のレイヤとしてエンコードされたビデオストリームを受信するようにサーバ150を制御してよい。上述したように、ソース提供クライアントは、ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づき、複数のクラスのうちでビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定し、ビデオカンファレンスのためのビデオストリームを決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して複数のレイヤとしてエンコードし、複数のレイヤとしてエンコードされたビデオストリームをネットワークを介してビデオカンファレンスのためのサーバ150に送信するように実現されてよい。このようなレイヤとクラスについての繰り返される説明は省略する。
【0057】
段階720で、解像度情報受信部620は、ビデオカンファレンスに参加した少なくとも2つ以上の受信クライアントそれぞれから、2つ以上の受信クライアントそれぞれが再生可能な解像度に関する情報を受信してよい。一例として、2つ以上の受信クライアントは、図3を参照しながら説明した第2電子機器320および第3電子機器330に対応してよく、それぞれ自身が再生可能な解像度に関する情報をネットワークを介してサーバ150に送信してよい。ここで、解像度に関する情報は、レイヤ識別子(一例として、レイヤ1、レイヤ2、またはレイヤ3)を含んでよい。
【0058】
段階730で、レイヤ決定部630は、2つ以上の受信クライアントのうちの第1受信クライアントに送信するためのビデオストリームのレイヤを第1受信クライアントから受信した解像度に関する情報を利用して決定してよい。例えば、第1受信クライアントから受信した解像度に関する情報がレイヤ識別子「2」を含む場合、レイヤ決定部630は、レイヤ1およびレイヤ2を第1受信クライアントに送信するためのビデオストリームのレイヤとして決定してよい。また、レイヤ決定部630は、2つ以上の受信クライアントのうちの残りの受信クライアントのためのレイヤも、それぞれの受信クライアントから受信した解像度に関する情報を利用して決定してよい。
【0059】
段階740で、レイヤ送信制御部640は、決定されたレイヤを第1受信クライアントに送信するようにサーバ150を制御してよい。ここで、レイヤ送信制御部640は、2つ以上の受信クライアントのうちの残り受信クライアントにもそれぞれ決定されたレイヤを送信するようにサーバ150を制御することは当然である。例えば、図3では、ビデオカンファレンスサーバ340が第2電子機器320および第3電子機器330に決定されたレイヤを送信することについて既に説明した。
【0060】
図8は、本発明の一実施形態における、下位レイヤと上位レイヤの関係に対する例を示した図である。下位レイヤ(一例として、レイヤ1)のブロック8101つが示す映像は、上位レイヤ(一例として、レイヤ2)の4つのブロック821、822、823、824が示す映像に該当する。これは、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍になり、レイヤnの解像度による高さがレイヤn-1の解像度による高さの2倍になるように設定されるためである。このとき、ソース提供クライアントは、レイヤをエンコードするにあたり、下位レイヤ1つのブロック810に該当する4つのブロック821、822、823、824単位で参照フレームを決定してよい。また、ソース提供クライアントは、このようにマッピングされた上位レイヤの4つのブロック821、822、823、824単位で参照フレームを最後フレームとして使用するのか、それとも下位レイヤで生成された再生成されたイメージを使用するのかを判断してよい。このようなエンコードについては、図9を参照しながら以下でさらに詳しく説明する。
【0061】
図9は、本発明の一実施形態における、ビデオストリームをレイヤとしてエンコードする例を示した図である。ソース提供クライアントは、入力される上位レイヤのためのソースフレーム910をダウンスケーリング920(down scaling)して下位レイヤのためのフレーム930を生成してよい。このとき、ソース提供クライアントは、上位レイヤのためのエンコードフォーマット(一例として、EVS2)を利用してソースフレーム910をエンコード940(EVS2エンコード)して上位レイヤのためのビットストリーム950(ビデオストリーム)を生成し、下位レイヤのためのエンコードフォーマット(一例として、VP8)を利用して下位レイヤのためのフレーム930をエンコード960(VP8エンコード)して下位レイヤのためのビットストリーム970を生成してよい。
【0062】
この場合、ソース提供クライアントは、下位レイヤのためのエンコード960に使用されたインタ-レイヤ予測(inter-layer prediction)のためのメタデータ(一例として、モーションベクトル(motion vector)、再生成フレーム(reconstruction frame)、レジデュアル(residual)など)を上位レイヤのためのエンコード940のために活用してよい。ここで、再生成フレームは、アップスケーリング980を経て活用されてよい。このとき、上位レイヤのためのエンコード940時に、ソース提供クライアントは、以前フレームやアップスケーリング980を経た再生成されたフレームを参照フレームとして探し出してよい。言い換えれば、上位レイヤエンコードは、下位レイヤ1つのブロックに該当する4つのブロック単位で参照フレームを決定してよい。また、ソース提供クライアントは、インタ-レイヤ予測のためのメタデータを利用して最善のモーションベクトルを探し出してよく、探し出された参照フレームと最善のモーションベクトルを通じて上位レイヤのためのエンコード940を処理してよい。また、ソース提供クライアントは、上述したレジデュアルをさらにエンコードしてよい。
【0063】
上述した図9のメインアルゴリズムでは、下位レイヤで計算されたモーションベクトルを上位レイヤで利用すれば、以下で説明される図10の代替アルゴリズムでは、上位レイヤで計算されたモーションベクトルを下位レイヤで利用することができる。
【0064】
図10は、本発明の一実施形態における、ビデオストリームをレイヤとしてエンコードする他の例を示した図である。ソース提供クライアントは、入力される上位レイヤのためのソースフレーム1010を上位レイヤのためのエンコードフォーマット(一例として、EVS2)を利用してエンコード1020(EVS2エンコード)して上位レイヤのためのビットストリーム1030(ビデオストリーム)を生成してよい。
【0065】
このとき、ソース提供クライアントは、ソースフレーム1010をダウンスケーリング1040(down scaling)して下位レイヤのためのフレーム1050を生成しながら、上位レイヤのためのエンコード1020で計算されたモーションベクトルを利用して下位レイヤのためのフレーム1050をエンコード1060(VP8エンコード)することによって下位レイヤのためのビットストリーム1070を生成してよい。また、下位レイヤのためのエンコード1060で使用されたメタデータを上位レイヤのために活用してよい。図9と同じように、再生成フレームがアップスケーリングされて活用されてよく、下位レイヤ1つのブロックに該当する上位レイヤの4つのブロック単位で参照フレームが決定されてよい。
【0066】
図8図10は、レイヤnがレイヤ1~レイヤn-1のデータを共有し、ビデオストリームを得るための追加データを含むように生成される例を説明するためのものであり、ビデオストリームのエンコードがどのように行われるかを説明するためのものではない。また、VP8のようなエンコードフォーマットは周知のとおりであるため、具体的な説明は省略する。
【0067】
生成されたレイヤは、上述したように、ビデオカンファレンスのためのサーバを通じて受信クライアントに適切にルーティングされてよい。
【0068】
このように、本発明の実施形態によると、ビデオカンファレンス(video conference)のためのビデオストリームの提供において、ソース提供クライアントがビデオストリームを画面サイズ(解像度)別に複数のレイヤとしてエンコードしてサーバに提供することにより、サーバ側の負担を減らすことができる。また、解像度の範囲を複数のクラスに予め分類し、各クラスの解像度範囲に含まれる解像度を有するレイヤを提供することにより、クライアントのカメラによって入力される解像度と前記解像度を基準として設定される他の解像度を活用して画面をリサイジングする必要なくそのまま活用することができる。
【0069】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
【0070】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、所望の動作を行うように処理装置を構成したり、独立的または集合的に処理装置に命令してもよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置、または伝送される信号波に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【0071】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【0072】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0073】
したがって、本発明の精神及び範囲から逸脱しない限り、異なる実施形態であってもそれらは特許請求の範囲に属する。
【0074】
(付記1)
ビデオカンファレンスのためのビデオストリーム提供方法を、電子機器のコンピュータに実行させるコンピュータプログラムであって、
前記ビデオストリーム提供方法は、
前記ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づいて、前記複数のクラスのうち、前記ビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定する段階、
前記ビデオカンファレンスのためのビデオストリームを、前記決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して、複数のレイヤとしてエンコードする段階、および
前記複数のレイヤとしてエンコードされたビデオストリームを、ネットワークを介して、前記ビデオカンファレンスのためのサーバに送信するように前記ソース提供クライアントの電子機器を制御する段階
を含む、コンピュータプログラム。
(付記2)
前記複数のレイヤのうちで基準となるレイヤの解像度は、前記電子機器が含むカメラによって入力される解像度に設定され、前記複数のレイヤのうちの他のレイヤの解像度は、前記基準となるレイヤの解像度に基づいて設定される、
付記1に記載のコンピュータプログラム。
(付記3)
前記複数のレイヤの解像度は、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍となり、前記レイヤnの解像度による高さが前記レイヤn-1の解像度による高さの2倍となるように設定され、
前記nは2以上の自然数である、
付記1に記載のコンピュータプログラム。
(付記4)
前記ビデオカンファレンスのための解像度の範囲は、解像度範囲が低い順にn番目クラスの解像度範囲に前記レイヤnの解像度が含まれるように予め分類される、
付記3に記載のコンピュータプログラム。
(付記5)
前記レイヤnは、レイヤ1からレイヤn-1までのデータを共有し、前記レイヤnの解像度によってエンコードされたビデオストリームを構成するための追加データを含む、
付記3に記載のコンピュータプログラム。
(付記6)
前記複数のクラスは、QVGAの解像度を含む解像度範囲の第1クラス、VGAの解像度を含む解像度範囲の第2クラス、およびHDの解像度を含む解像度範囲の第3クラスを含む、
付記1に記載のコンピュータプログラム。
(付記7)
前記ビデオカンファレンスのためのサーバは、
前記複数のレイヤとしてエンコードされたビデオストリームを受信し、
前記ビデオカンファレンスに参加した少なくとも2つ以上の受信クライアントそれぞれから前記2つ以上の受信クライアントそれぞれが再生可能な解像度に関する情報をネットワークを介して受信し、
前記2つ以上の受信クライアントのうちで第1受信クライアントから受信した解像度に関する情報を利用して前記第1受信クライアントに送信するレイヤを決定するように実現される、
付記1に記載のコンピュータプログラム。
(付記8)
前記2つ以上の受信クライアントそれぞれは、
前記2つ以上の受信クライアントの電子機器で再生可能な解像度に関する情報をネットワークを介して前記ビデオカンファレンスのためのサーバに送信し、
前記ビデオカンファレンスのためのサーバから受信されるレイヤを利用してビデオストリームを再生するように実現される、
付記7に記載のコンピュータプログラム。
(付記9)
ビデオカンファレンスのためのビデオストリーム提供方法であって、
前記ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づいて、前記複数のクラスのうち、前記ビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定する段階、
前記ビデオカンファレンスのためのビデオストリームを、前記決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して、複数のレイヤとしてエンコードする段階、および
前記複数のレイヤとしてエンコードされたビデオストリームを、ネットワークを介して、前記ビデオカンファレンスのためのサーバに送信するように前記ソース提供クライアントの電子機器を制御する段階
を含む、ビデオストリーム提供方法。
(付記10)
前記複数のレイヤのうちで基準となるレイヤの解像度は、前記電子機器が含むカメラによって入力される解像度に設定され、前記複数のレイヤのうちの他のレイヤの解像度は、前記基準となるレイヤの解像度に基づいて設定される、
付記9に記載のビデオストリーム提供方法。
(付記11)
前記複数のレイヤの解像度は、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍となり、前記レイヤnの解像度による高さが前記レイヤn-1の解像度による高さの2倍となるように設定され、
前記nは2以上の自然数である、
付記9に記載のビデオストリーム提供方法。
(付記12)
前記ビデオカンファレンスのための解像度の範囲は、解像度範囲が低い順にn番目クラスの解像度範囲に前記レイヤnの解像度が含まれるように予め分類される、
付記11に記載のビデオストリーム提供方法。
(付記13)
前記レイヤnは、レイヤ1からレイヤn-1までのデータを共有し、前記レイヤnの解像度によってエンコードされたビデオストリームを構成するための追加データを含む、
付記11に記載のビデオストリーム提供方法。
(付記14)
前記複数のクラスは、QVGAの解像度を含む解像度範囲の第1クラス、VGAの解像度を含む解像度範囲の第2クラス、およびHDの解像度を含む解像度範囲の第3クラスを含む、
付記9に記載のビデオストリーム提供方法。
(付記15)
ビデオカンファレンスのためのサーバのビデオストリーム提供方法であって、
前記ビデオカンファレンスに参加したソース提供クライアントから、前記ソース提供クライアントが提供可能な複数の解像度それぞれによって複数のレイヤとしてエンコードされたビデオストリームを受信する段階、
前記ビデオカンファレンスに参加した少なくとも2つ以上の受信クライアントそれぞれから、前記2つ以上の受信クライアントそれぞれが再生可能な解像度に関する情報を受信する段階、
前記2つ以上の受信クライアントのうちの第1受信クライアントに送信するためのビデオストリームのレイヤを、前記第1受信クライアントから受信した解像度に関する情報を利用して決定する段階、および
前記決定されたレイヤを前記第1受信クライアントに送信する段階
を含む、ビデオストリーム提供方法。
(付記16)
前記ソース提供クライアントは、
前記ビデオカンファレンスのための解像度の範囲を複数のクラスに予め分類したクラス情報に基づいて、前記複数のクラスのうちで前記ビデオカンファレンスに参加したソース提供クライアントから提供可能な解像度が属する少なくとも2つ以上のクラスを決定し、
前記ビデオカンファレンスのためのビデオストリームを、前記決定された少なくとも2つ以上のクラスごとに設定される解像度を利用して、複数のレイヤとしてエンコードし、
前記複数のレイヤとしてエンコードされたビデオストリームを、ネットワークを介して、前記ビデオカンファレンスのためのサーバに送信するように実現される、
付記15に記載のビデオストリーム提供方法。
(付記17)
前記複数のレイヤのうちで基準となるレイヤの解像度は、前記ソース提供クライアントの電子機器が含むカメラによって入力される解像度に設定され、前記複数のレイヤのうちの他のレイヤの解像度は、前記基準となるレイヤの解像度に基づいて設定される、
付記15に記載のビデオストリーム提供方法。
(付記18)
前記複数のレイヤの解像度は、レイヤnの解像度による幅がレイヤn-1の解像度による幅の2倍となり、前記レイヤnの解像度による高さが前記レイヤn-1の解像度による高さの2倍となるように設定され、
前記nは2以上の自然数である、
付記15に記載のビデオストリーム提供方法。
(付記19)
前記ビデオカンファレンスのための解像度の範囲は、解像度範囲が低い順にn番目クラスの解像度範囲に前記レイヤnの解像度が含まれるように予め分類される、付記18に記載のビデオストリーム提供方法。
(付記20)
前記レイヤnは、レイヤ1からレイヤn-1までのデータを共有し、前記レイヤnの解像度によってエンコードされたビデオストリームを構成するための追加データを含む、
付記18に記載のビデオストリーム提供方法。
【符号の説明】
【0075】
110、120、130、140:電子機器
150、160:サーバ
170:ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10