(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-25
(45)【発行日】2022-12-05
(54)【発明の名称】複数のチャネルを利用して動的ビットレートのビデオを配信および再生する方法およびシステム
(51)【国際特許分類】
H04N 21/2662 20110101AFI20221128BHJP
H04N 21/238 20110101ALI20221128BHJP
H04N 21/438 20110101ALI20221128BHJP
H04N 21/462 20110101ALI20221128BHJP
【FI】
H04N21/2662
H04N21/238
H04N21/438
H04N21/462
(21)【出願番号】P 2020565949
(86)(22)【出願日】2018-05-25
(86)【国際出願番号】 KR2018005972
(87)【国際公開番号】W WO2019225788
(87)【国際公開日】2019-11-28
【審査請求日】2021-05-24
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
【住所又は居所原語表記】11th Fl.,42,Hwangsaeul-ro 360beon-gil,Bundang-gu,Seongnam-si,Gyeonggi-do.13591
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ペク,ジュンシク
【審査官】松元 伸次
(56)【参考文献】
【文献】特開平10-108175(JP,A)
【文献】特開平11-234644(JP,A)
【文献】国際公開第2017/094318(WO,A1)
【文献】国際公開第2015/133249(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04B7/24-7/26
H04N7/10
7/14-7/173
7/20-7/56
21/00-21/858
H04W4/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータと結合してビデオ配信方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
前記ビデオ配信方法は、
配信しようとするビデオのフレームをインターリービン
グ方式によってN(前記Nは2以上の自然数)個のエンコーダに伝達する段階、
前記N個のエンコーダそれぞれに伝達されるフレームをエンコードしてN個のビデオストリームを生成する段階、および
前記生成されたN個のビデオストリームそれぞれを独立的なストリームとして送信する段階
、を含
み、
前記N個のエンコーダそれぞれの第1キーフレームの周期は、単一エンコーダを使用する場合の第2キーフレーム周期のN倍に設定される、
コンピュータプログラム。
【請求項2】
前記N個のエンコーダは、
ビデオエンコーダおよびオーディオエンコーダを含んでビデオおよびオーディオをエンコードする1つのメインエンコーダと、ビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダを含む、
請求項1に記載のコンピュータプログラム。
【請求項3】
前記フレームをインターリービング方式によって前記N個のエンコーダに伝達する段階は、
前記ビデオのi(前記iは自然数)番目のフレームを(((i-1)mod N)+1)番目のエンコーダに伝達する、
請求項1または2に記載のコンピュータプログラム。
【請求項4】
前記N個のエンコーダは、
ビデオエンコーダおよびオーディオエンコーダを含んでビデオおよびオーディオをエンコードする1つのメインエンコーダと、ビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダを含み、
前記N-1個のサブエンコーダは、前記メインエンコーダが有効化された後、前記第1キーフレームの周期の前記Nに対する割合に対応する周期で順に有効化される、
請求項
1~3のうちのいずれか一項に記載のコンピュータプログラム。
【請求項5】
前記送信する段階は、
前記生成されたN個のビデオストリームそれぞれを独立的なストリームとしてサーバを経て受信者端末に送信し、
前記ビデオ配信方法は、
前記サーバを経て前記Nの値を前記受信者端末に送信する段階
をさらに含む、請求項1~
4のうちのいずれか一項に記載のコンピュータプログラム。
【請求項6】
コンピュータと結合してビデオ再生方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
前記ビデオ再生方法は、
1つのビデオのフレームをインターリービン
グ方式によってN(前記Nは2以上の自然数)個のエンコーダでエンコードして生成されるN個のビデオストリームのうちからn(前記nは前記N以下の自然数)個のビデオストリームを選択する段階、
前記選択されたn個のビデオストリームを前記N個のデコーダのうちのn個のデコーダでデコードする段階、および
前記n個のデコーダでデコードされたn個のビデオストリームを利用してビデオを再生する段階
、を含
み、
前記N個のエンコーダそれぞれの第1キーフレームの周期は、単一エンコーダを使用する場合の第2キーフレーム周期のN倍に設定される、
コンピュータプログラム。
【請求項7】
前記選択する段階は、
ネットワーク状況によってビデオの再生に活用するためのビデオストリームの数である前記nを決定し、前記決定されたn個のビデオストリームを選択する、請求項
6に記載のコンピュータプログラム。
【請求項8】
前記ビデオ再生方法は、
前記ネットワーク状況の変化によって前記nの値を動的に変化させる段階
をさらに含む、請求項
7に記載のコンピュータプログラム。
【請求項9】
前記N個のビデオストリームは、配信者の端末で、ビデオエンコーダおよびオーディオエンコーダを含んでビデオおよびオーディオをエンコードする1つのメインエンコーダでエンコードされた1つのビデオストリームと、前記配信者の端末で、ビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダでエンコードされたN-1個のビデオストリームを含む、
請求項
6~
8のうちのいずれか一項に記載のコンピュータプログラム。
【請求項10】
前記デコードする段階は、
前記メインエンコーダでエンコードされた1つのビデオストリーム、および前記N-1個のビデオストリームのうちのn-1個のビデオストリームをそれぞれデコードする、
請求項
9に記載のコンピュータプログラム。
【請求項11】
前記ビデオを再生する段階は、
前記n個のデコーダでデコードされたn個のビデオストリームが含むPT
Sを利用して前記n個のビデオストリームをミキシングして1つの画面として再生する、
請求項
6~
10のうちのいずれか一項に記載のコンピュータプログラム。
【請求項12】
前記N個のビデオストリームは、配信者の端末で生成されてサーバに送信され、
前記配信者の端末から送信される前記Nの値は、前記サーバを経て受信されるビデオストリームの数によって決定される、
請求項
6~
11のうちのいずれか一項に記載のコンピュータプログラム。
【請求項13】
配信しようとするビデオのフレームをインターリービン
グ方式によってN(前記Nは2以上の自然数)個のエンコーダに伝達する段階、
前記N個のエンコーダそれぞれに伝達されるフレームをエンコードしてN個のビデオストリームを生成する段階、および
前記生成されたN個のビデオストリームそれぞれを独立的なストリームとして送信する段階
、を含
み、
前記N個のエンコーダそれぞれの第1キーフレームの周期は、単一エンコーダを使用する場合の第2キーフレーム周期のN倍に設定される、
ビデオ配信方法。
【請求項14】
前記N個のエンコーダは、
ビデオエンコーダおよびオーディオエンコーダを含んでビデオおよびオーディオをエンコードする1つのメインエンコーダと、ビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダを含む、
請求項
13に記載のビデオ配信方法。
【請求項15】
前記フレームをインターリービング方式によって前記N個のエンコーダに伝達する段階は、
前記ビデオのi(前記iは自然数)番目のフレームを(((i-1)mod N)+1)番目のエンコーダに伝達する、
請求項
13または
14に記載のビデオ配信方法。
【請求項16】
請求項
13~
15のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、複数のチャネルを利用して動的ビットレートのビデオを配信および再生する方法およびシステムに関する。
【背景技術】
【0002】
放送配信者が提供するビデオをサーバが受信し、受信したビデオをサーバが多数の放送受信者に配信する技術が存在する。このとき、放送配信者から単一の品質で提供されるビデオを放送受信者のニーズに応じて多様な品質で提供するためには、サーバ側でトランスコーディング過程を実施しなければならない。例えば、放送配信者が720pの解像度でビデオを配信する場合が考えられる。ここで、720pのうち、数字「720」は解像度(縦)の720列を意味し、文字「p」は順次走査(progressive)を意味する。これは、解像度が1280×720であるHD映像を意味してよい。このとき、放送視聴者のために、解像度が720p、480p、360pの3種類の品質のビデオ配信をサーバが支援しようとする場合、サーバは、放送配信者が720pの解像度で配信したビデオを720p、480p、360pの3種類のビデオにトランスコーディングしなければならない。例えば、韓国公開特許第10-2007-0048095号は、デジタルマルチメディア放送ストリームの再送信のためのトランスコーディング方法に関するものであって、外部から受信したデジタル放送ストリームを再送信するためにトランスコーディングを行う技術について開示している。
【0003】
しかし、このようなトランスコーディング自体が、極めて多くのサーバリソースを要するという問題がある。例えば、放送配信者のビデオフレームを単に多重化(multiplexingまたはmuxing)することに比べ、ビデオをトランスコーディングするには相対的にこの数百倍以上のサーバリソースを必要とする。したがって、放送受信者に多様な品質のビデオを提供するためにトランスコーディングを行うようになれば、サーバ側が極めて多くのソースを消費するようになるという問題が発生する。
【0004】
一方、サーバインフラ費用を抑えるためにサーバトランスコーディングを処理しない場合には、放送受信者は、放送配信者が配信した放送のビットレートに対応するデータを受信できない限り、この放送を視聴することができない。例えば、放送配信者は、ネットワーク環境が不安定な場合に、放送のビットレートを動的に調節することで放送配信の制約をある程度調節することができる。この反面、放送受信者は、ネットワーク環境とは関係なく、放送配信者が配信した放送のビットレートに対応するデータをすべて受信することで該当の放送を視聴することができるようになるため、制約に縛られずに放送を視聴するためには、少なくとも放送配信者が使用するネットワーク品質と同一またはそれ以上のネットワーク品質がなければならないという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
配信者が、1つのビデオを単一のチャネルではなくN(前記Nは2以上の自然数)個のチャネルに分割して送信することができるビデオ配信方法、ビデオ配信方法を実行するコンピュータ装置、コンピュータと結合してビデオ配信方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムとその記録媒体を提供する。
【0006】
受信者が、ネットワーク環境によって配信者が配信するN個のチャネルのうちのn(前記nは前記N以下の自然数)個のチャネルに受信されるビデオストリームを結合して再生することにより、受信者側のネットワーク環境に適したビットレートのビデオを再生することができるビデオ再生方法、ビデオ再生方法を実行するコンピュータ装置、コンピュータと結合してビデオ再生方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムとその記録媒体を提供する。
【課題を解決するための手段】
【0007】
N(前記Nは2以上の自然数)個のエンコーダを実現する段階、配信しようとするビデオのフレームをインターリービング(interleaving)方式によって前記N個のエンコーダに伝達する段階、前記N個のエンコーダそれぞれに伝達されるフレームをエンコードしてN個のビデオストリームを生成する段階、および前記生成されたN個のビデオストリームそれぞれを独立的なストリームとして送信する段階を含むことを特徴とする、ビデオ配信方法を提供する。
【0008】
コンピュータと結合してビデオ配信方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
【0009】
ビデオ配信方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。
【0010】
N(前記Nは2以上の自然数)個のデコーダを実現する段階、1つのビデオのフレームをインターリービング(interleaving)方式によってN個のエンコーダでエンコードして生成されるN個のビデオストリームのうちからn(前記nは前記N以下の自然数)個のビデオストリームを選択する段階、前記選択されたn個のビデオストリームを前記N個のデコーダのうちのn個のデコーダでデコードする段階、および前記n個のデコーダでデコードされたn個のビデオストリームを利用してビデオを再生する段階を含む、ビデオ再生方法を提供する。
【0011】
コンピュータと結合してビデオ再生方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録された、コンピュータプログラムを提供する。
【0012】
ビデオ再生方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータ読み取り可能な記録媒体を提供する。
【0013】
コンピュータ装置であって、コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、N(前記Nは2以上の自然数)個のエンコーダを実現し、配信しようとするビデオのフレームをインターリービング(interleaving)方式によって前記N個のエンコーダに伝達し、前記N個のエンコーダそれぞれに伝達されるフレームをエンコードしてN個のビデオストリームを生成し、前記生成されたN個のビデオストリームそれぞれを独立的なストリームとして送信することを特徴とする、コンピュータ装置を提供する。
【0014】
コンピュータ装置であって、コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、N(前記Nは2以上の自然数)個のデコーダを実現し、1つのビデオのフレームをインターリービング(interleaving)方式によってN個のエンコーダでエンコードして生成されるN個のビデオストリームのうちからn(前記nは前記N以下の自然数)個のビデオストリームを選択し、前記選択されたn個のビデオストリームを前記N個のデコーダのうちのn個のデコーダでデコードし、前記n個のデコーダでデコードされたn個のビデオストリームを利用してビデオを再生することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0015】
配信者が、1つのビデオを単一のチャネルではなくN(前記Nは2以上の自然数)個のチャネルに分割して配信することができる。
【0016】
受信者が、ネットワーク環境によって配信者が配信するN個のチャネルのうちのn(前記nは前記N以下の自然数)個のチャネルに受信されるビデオストリームを結合して再生することにより、受信者側のネットワーク環境に適したビットレートのビデオを再生することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】従来技術における、ビデオ配信過程の例を示した図である。
【
図4】本発明の一実施形態における、ビデオ配信過程の例を示した図である。
【
図5】本発明の一実施形態における、ビデオ再生過程の例を示した図である。
【
図6】本発明の一実施形態における、ビデオ再生過程の他の例を示した図である。
【
図7】本発明の一実施形態における、エンコーダを順に有効化させる例を示した図である。
【
図8】本発明の一実施形態における、ビデオ配信方法の例を示したフローチャートである。
【
図9】本発明の一実施形態における、ビデオ再生方法の例を示したフローチャートである。
【発明を実施するための形態】
【0018】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0019】
本発明の実施形態に係るビデオ配信方法は、以下で説明される電子機器のようなコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係るビデオ配信方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してビデオ配信方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。また、本発明の実施形態に係るビデオ再生方法も、以下で説明される電子機器のようなコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係るビデオ再生方法を実行してよい。
【0020】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0021】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器1(110)の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器1(110)は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0022】
通信方式が限定されることはなく、ネットワーク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は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これに限定されることはない。
【0023】
サーバ150、160それぞれは、複数の電子デバイス110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つまたは2つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160もネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、第1サービスがソーシャルネットワークサービスであるとする。この場合、サーバ150は、サービスと連係するアプリケーションがインストールされた複数の電子機器110、120、130、140に前記アプリケーションを通じて放送配信サービス、メッセージングサービス、タイムラインサービスなどのようなソーシャルネットワークサービスとして提供可能な多様なサービスを提供してよい。また、サーバ160は、上述したアプリケーションのインストールのためのインストールファイルを複数の電子機器110、120、130、140に配布するためのサービスを第2サービスとして提供してよい。
【0024】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよい。例えば、コンピュータ装置200においては、一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置200は、実行されるコンピュータプログラムの制御にしたがって本発明の一実施形態に係るビデオ配信方法および/またはビデオ再生方法を実行してよい。
【0025】
このようなコンピュータ装置200は、
図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0026】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0027】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0028】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマイクなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
【0029】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
【0030】
図3は、従来技術における、ビデオ配信過程の例を示した図であり、
図4は、本発明の一実施形態における、ビデオ配信過程の例を示した図である。
【0031】
図3は、配信者端末310がビデオのフレーム320をエンコーダ330でエンコードし、サーバ340を経て受信者端末350に配信する例を示している。このとき、従来技術に係る配信者端末310は、単に、ビデオのフレーム320をエンコーダ330によって順にエンコードする。このとき、ビデオエンコーダ331はビデオのフレーム320をエンコードしてよく、オーディオエンコーダ332はビデオに含まれるオーディオをエンコードしてよい。また、フォーマッター(Formatter)330は、エンコードされたビデオとオーディオをサーバ340に対して予め設定されたビデオストリーミングプロトコル(一例として、RTMP(Real Time Messaging Protocol))に適したフォーマットに変換してよい。受信者端末350は、これとは反対に、サーバ340から伝達されるエンコードされたデータをデコーダでデコードすることにより、ビデオを再生してよい。このとき、従来技術に係る受信者端末350は、配信者端末310が設定したビットレートだけのデータを受信できなければビデオを再生することができないという問題がある。
【0032】
この反面、
図4の実施形態に係る配信者端末410は、N(前記Nは2以上の自然数)個のエンコーダを実現してよく、1つのビデオのためのフレーム420をインターリービング(interleaving)方式によってN個のエンコーダに分割してエンコードしてよい。例えば、
図4の実施形態では、Nが3の場合の例として、第1エンコーダ430、第2エンコーダ440、および第3エンコーダ450のように3つのエンコーダが実現された例を示している。このような第1エンコーダ430、第2エンコーダ440、および第3エンコーダ450それぞれは、配信者端末410においてインストールされて実行されるコンピュータプログラムの制御にしたがい、ソフトウェアモジュールの形態で実現されてよい。
【0033】
Nが4であれば、4つのエンコーダが実現されてよい。エンコーダの数であるNは、配信者端末410のネットワーク状況よって変動してよい。
【0034】
このとき、i(前記iは自然数)番目のフレームは、(((i-1)mod N)+1)番目のエンコーダに伝達されてよい。例えば、Nが3である場合、4番目のフレームは(((4-1)mod 3)+1)によって1番目のエンコーダに伝達されてよく、5番目のフレームは(((5-1)mod 3)+1)によって2番目のエンコーダに伝達されてよい。
【0035】
この場合、第1エンコーダ430は、伝達されるビデオフレームをビデオエンコーダ431でエンコードしてよく、該当のビデオのオーディオをオーディオエンコーダ432でさらにエンコードしてよい。オーディオの場合には、伝達されるビデオフレームとは異なり、分割してエンコードする必要がないため、メインエンコーダである第1エンコーダ430だけに含まれてよい。この後、第1エンコーダ430は、エンコードされたビデオとオーディオを、フォーマッター433を経てサーバ460に対して予め設定されたビデオストリーミングプロトコル(一例として、RTMP(Real Time Messaging Protocol))に適したフォーマットに変換してストリーミングしてよい。
【0036】
一方、N-1個のサブエンコーダである第2エンコーダ440と第3エンコーダ450は、
図4に示すように、個別のオーディオエンコーダを含む必要がなく、ビデオエンコーダ441、451とフォーマッター442、452を含み、自身に伝達されるビデオフレームをそれぞれエンコードしてよい。第2エンコーダ440と第3エンコーダ450も、ビデオエンコーダ441、451でエンコードされたビデオを、フォーマッター442、452を経てサーバ460に対して予め設定されたビデオストリーミングプロトコル(一例として、RTMP(Real Time Messaging Protocol))に適したフォーマットに変換してストリーミングしてよい。
【0037】
この場合、サーバ460は、1つのビデオに対し、N個のチャネルを介してN個のビデオストリームを受信するようになり、N個のチャネルを介してN個のビデオストリームを伝達することができるようになる。
【0038】
一方、受信者端末470は、N個のチャネルを介してN個のビデオストリームすべてを受信する必要はなく、自身の状況に応じて希望するn(前記nは前記N以下の自然数)個のビデオストリームだけを受信してビデオを再生してよい。このとき、nがNに比べて相対的に少ないほどビデオの品質が低くはなるが、不安定なネットワーク状況であっても安定的にビデオを再生することができる。この反面、ネットワーク状況が安定するにつれてnはNに近くなるように選択されてよく、この場合、ビデオの品質は相対的に向上するようになる。nとNが等しい場合には、送信者端末410が送信するビットレートでビデオを再生することができる。言い換えれば、従来技術において、受信者端末350が常に配信者端末310で設定したビットレートでビデオを再生しなければならなかったものとは異なり、本発明の実施形態に係る受信者端末470は、ネットワーク状況によって自身が希望するビットレートでビデオを再生することができるため、ネットワーク状況による制約を減らすことができる。例えば、受信者端末470は、ネットワーク状況が不安定な場合には、メインエンコーダである第1エンコーダ430でエンコードされてストリーミングされるデータを利用してビデオを再生してよく、ネットワーク状況が安定するにつれ、サブエンコーダである第2エンコーダ440および/または第3エンコーダ450でエンコードされてストリーミングされるデータをさらに利用してビデオを再生することができるようになる。
【0039】
配信者端末410および受信者端末470それぞれは、一例として、複数の電子機器110、120、130、140のうちの1つであってよく、
図2を参照しながら説明したコンピュータ装置200によって実現されてよい。また、サーバ460は、サーバ150、160のうちの1つであってよく、
図2を参照しながら説明したコンピュータ装置200によって実現されてよい。
【0040】
図5は、本発明の一実施形態における、ビデオ再生過程の例を示した図である。
図5は、受信者端末470がサーバ460からN個のビデオストリームをすべて受信してビデオを再生する過程の例を示している。このとき、メインエンコーダである第1エンコーダ430でエンコードされてストリーミングされるデータは、メインデコーダである第1デコーダ510でデコードされてよく、サブエンコーダである第2エンコーダ440および第3エンコーダ450でエンコードされてストリーミングされるデータは、サブデコーダである第2デコーダ520および第3デコーダ530でそれぞれデコードされてよい。
【0041】
例えば、配信者端末410は、N個のエンコーダを実現することにより、サーバ460を経てNの値を受信者端末470に送信してよく、サーバ460を経てNの値を受信した受信者端末470は、N個のデコーダを実現することができるようになる。
図5は、
図4において3つのエンコーダ430、440、450が実現されることにより、配信者端末410がNの値として「3」をサーバ460に伝達し、受信者端末470も受信した「3」に基づき、
図5に示した3つのデコーダ510、520、530を実現する実施形態を示している。
【0042】
3つのデコーダ510、520、530が含んでいるデミキサー511、521、531それぞれは、特定のビデオファイルを読み取って処理するための機能を提供してよく、ビデオデコーダ512、522、523は、エンコードされたフレームをデコードしてよい。メインデコーダである第1デコーダ510は、オーディオのデコードのためにオーディオデコーダ513をさらに含んでよい。
【0043】
3つのデコーダ510、520、530それぞれによってデコードされたフレームは、PTS(Presentation Timestamp)を含み、受信者端末470は、PTSに基づいて3つのデコーダ510、520、530それぞれがデコードしたフレームを整列して結合することにより、再生のためのビデオの全体フレーム540が得られてよい。PTSは、該当のフレームが画面に示されてほしい時間に関する情報であって、配信者端末410でフレームをエンコードするときに該当のフレームに追加されて伝達される情報であってよく、フレームの整列はフレームバッファ内でなされてよい。このとき、
図5の全体フレーム540は、配信者端末410が配信するビデオのフレーム420と同じものであってよい。
【0044】
図6は、本発明の一実施形態における、ビデオ再生過程の他の例を示した図である。
図6では、受信者端末470のネットワーク状況が不安定な場合に、N個のビデオストリームのうちの一部だけを利用してビデオを再生する過程の例を示している。例えば、受信者端末470は、ネットワーク状況によってnの値を決定してよく、
図6ではnが「2」として決定された例を示している。オーディオのデコードのためにメインエンコーダである第1エンコーダ430でエンコードされてストリーミングされるデータは、メインデコーダである第1デコーダ510でデコードされることが必須であり、サブエンコーダである第2エンコーダ440および第3エンコーダ450でエンコードされてストリーミングされるデータのチャネルのうちの1つが任意に選択されてよい。
図6の実施形態では、第3エンコーダ450でエンコードされてストリーミングされるデータのチャネルを介してビデオストリームを受信してデコードする例を示している。このとき、第3デコーダ530は、該当のチャネルを介して受信されるビデオストリームをデコードしてよい。
【0045】
このとき、受信者端末470は、
図5と同じように、第1デコーダ510でデコードされたフレームと第3デコーダ530でデコードされたフレームをPTSに基づいて整列および結合してよく、結合されたフレーム610によってビデオが再生されてよい。
図6の結合されたフレーム610は、
図5の結合されたフレーム540に比べてビットレートが低いはずであり、したがって、相対的にネットワーク状況が不安定な場合であっても、より安定的にビデオを再生することができるようになる。
【0046】
図7は、本発明の一実施形態における、エンコーダを順に有効化させる例を示した図である。配信者端末410は、キーフレームの数を等しく維持するために、N個のエンコーダそれぞれのキーフレームの周期を、単一エンコーダを使用する場合のキーフレーム周期のN倍に設定してよい。キーフレームは独立的にエンコードされたフレームであって、他のフレームを参照せずに独立的にデコードされることのできるフレームである。このような他のフレームは、このようなキーフレームや他のフレームを参照することによってエンコード/デコードがなされる。したがって、キーフレームの数が増えることは好ましくないため、配信者端末410は、N個のエンコーダそれぞれのキーフレームの周期を、単一エンコーダを使用する場合のキーフレーム周期のN倍に設定してよい。
図3ではNが3であるため、単一エンコーダを使用する場合のキーフレームの周期をkとするとき、
図7の実施形態では、第1エンコーダ430、第2エンコーダ440、および第3エンコーダ450それぞれのキーフレームの周期が3k(以下、「K」とする)に設定されてよい。このとき、第1エンコーダ430、第2エンコーダ440、および第3エンコーダ450は、キーフレームが同時に生成されることを防ぐために、それぞれK/Nごとに順に有効化されてよい。それぞれのフレームの最初のフレームはキーフレームとして生成されるため、N個のエンコーダが同時に有効化される場合には、毎回同じ時点に同時に3つのキーフレームが生成されるようになる。したがって、これを分散させるために、
図7の実施形態では、N個のエンコーダをK/N(
図7の実施形態ではK/3)ごとに順に有効化することにより、キーフレームが生成される時点を最大限分散させてよい。言い換えれば、配信者端末410は、最初はメインエンコーダだけを有効化させ、残りのN-1個のサブエンコーダは、キーフレームの周期(K)のNに対する割合に対応する周期(K/N)ごとに順に有効化させてよい。
【0047】
図8は、本発明の一実施形態における、ビデオ配信方法の例を示したフローチャートである。本実施形態に係るビデオ配信方法は、配信者端末410を実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。例えば、上述したプログラムコードは、ビデオの配信のためのサービスとの連係のために配信者端末410にインストールされたアプリケーションのコードであってよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図8のビデオ配信方法に含まれる段階810~840を実行するようにコンピュータ装置200を制御してよい。
【0048】
段階810で、コンピュータ装置200は、N(前記Nは2以上の自然数)個のエンコーダを実現してよい。このとき、Nは予め設定されてもよいが、コンピュータ装置200がネットワーク環境によって任意に選択および/または調節してもよい。N個のエンコーダそれぞれは、コンピュータ装置200においてインストールされて実行されたアプリケーションの制御にしたがい、ソフトウェアモジュールの形態で実現されてよい。このとき、コンピュータ装置200は、ビデオエンコーダおよびオーディオエンコーダを含み、ビデオおよびオーディオをエンコードする1つのメインエンコーダと、ビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダを実現してよい。このとき、キーフレームの数が増加することを防ぐために、コンピュータ装置200は、N個のエンコーダそれぞれのキーフレームの周期を、単一エンコーダを使用する場合のキーフレーム周期のN倍に設定してよい。
図7において、単一エンコーダを使用する場合のキーフレーム周期kのN倍であるk×N(周期K)がN個のエンコーダそれぞれのためのキーフレーム生成周期として設定される例について説明した。
【0049】
段階820で、コンピュータ装置200は、配信しようとするビデオのフレームをインターリービング(interleaving)方式によってN個のエンコーダに伝達してよい。例えば、コンピュータ装置200は、ビデオのi(前記iは自然数)番目のフレームを(((i-1)mod N)+1)番目のエンコーダに伝達してよい。ただし、
図7の実施形態で説明したように、N個のエンコーダが順に有効化される場合は、最初のフレームの伝達順序は異なってよい。例えば、Nが3である場合、3番目のエンコーダの有効化後のフレームに対し、i番目のフレームが(((i-1)mod N)+1)番目のエンコーダに伝達されてよい。このとき、コンピュータ装置200は、N個のエンコーダを、キーフレームの周期(K)のNに対する割合に対応する周期(K/N)で順に有効化させてよい。
【0050】
段階830で、コンピュータ装置200は、N個のエンコーダそれぞれに伝達されるフレームをエンコードしてN個のビデオストリームを生成してよい。上述したように、メインエンコーダは、自身に伝達されたビデオフレームとオーディオをそれぞれエンコードしてよく、N-1個のサブエンコーダそれぞれは、自身に伝達されたビデオフレームをエンコードしてよい。このとき、N個のエンコーダそれぞれから1つずつ、合計N個のビデオストリームが生成されてよい。
【0051】
段階840で、コンピュータ装置200は、生成されたN個のビデオストリームそれぞれを独立的なストリームとして送信してよい。例えば、配信者端末410であるコンピュータ装置200は、生成されたN個のビデオストリームそれぞれを独立的なストリームとしてサーバ460を経て受信者端末470に送信してよい。一方、配信者端末410であるコンピュータ装置200は、受信者端末470が最大N個のビデオストリームそれぞれをデコードすることができるように、サーバ470を経てNの値を受信者端末470に送信してよい。
【0052】
このとき、受信者端末470は、ネットワーク状況によってビデオの再生に活用するためのビデオストリームの数n(前記nは前記N以下の自然数)を選択し、配信者端末410が独立的にサーバに送信するN個のビデオストリームのうちから選択されるn個のビデオストリームをデコードしてビデオを再生してよい。また、受信者端末470のネットワーク状況の変化によってnの値を動的に変化させ、ビデオの再生のためにデコードされるビデオストリームの数を動的に調節してもよい。
【0053】
図9は、本発明の一実施形態における、ビデオ再生方法の例を示したフローチャートである。本実施形態に係るビデオ再生方法は、受信者端末470を実現するコンピュータ装置200によって実行されてよい。例えば、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。例えば、上述したプログラムコードは、ビデオの再生のためのサービスとの連係のために受信者端末470にインストールされたアプリケーションのコードであってよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令にしたがってコンピュータ装置200が
図9のビデオ再生方法に含まれる段階910~940を実行するようにコンピュータ装置200を制御してよい。
【0054】
段階910で、コンピュータ装置200は、N(前記Nは2以上の自然数)個のデコーダを実現してよい。ここで、Nの値は、配信者端末410がサーバ460を経て伝達するNの値によって決定されてよく、N個のデコーダそれぞれは、コンピュータ装置200においてインストールされて実行されたアプリケーションの制御にしたがい、ソフトウェアモジュールの形態で実現されてよい。この場合、コンピュータ装置200は、ビデオデコーダおよびオーディオデコーダを含んでビデオおよびオーディオをデコードする1つのメインデコーダと、ビデオデコーダを含んでビデオをデコードするN-1個のサブデコーダを実現してよい。
【0055】
段階920で、コンピュータ装置200は、1つのビデオのフレームをインターリービング(interleaving)方式によってN個のエンコーダでエンコードして生成されるN個のビデオストリームのうちからn(前記nは前記N以下の自然数)個のビデオストリームを選択してよい。例えば、コンピュータ装置200は、ネットワーク状況によってビデオの再生に活用するためのビデオストリームの数であるnを決定し、決定されたn個のビデオストリームを選択してよい。この後、コンピュータ装置200は、ネットワーク状況の変化によってnの値を動的に変化させ、ビデオの再生のためにデコードされるビデオストリームの数を動的に調節してもよい。ここで、N個のビデオストリームは、配信者の端末470からビデオエンコーダおよびオーディオエンコーダを含んでビデオおよびオーディオをエンコードする1つのメインエンコーダでエンコードされた1つのビデオストリームと、前記配信者の端末からビデオエンコーダを含んでビデオをエンコードするN-1個のサブエンコーダでエンコードされたN-1個のビデオストリームを含んでよい。このようなN個のビデオストリームは、配信者端末410で生成されてサーバ460に送信されてよく、コンピュータ装置200は、サーバ460を経てN個のビデオストリームのうちのn個のビデオストリームを受信してよい。言い換えれば、受信者端末470であるコンピュータ装置200は、ネットワーク状態によってN個のビデオストリームのうちの選択的にn個のビデオストリームを受信するため、ネットワーク状態による制約を減らすことができるようになる。
【0056】
段階930で、コンピュータ装置200は、選択されたn個のビデオストリームをN個のデコーダのうちのn個のデコーダでデコードしてよい。このとき、コンピュータ装置200は、メインエンコーダでエンコードされた1つのビデオストリームおよびサブエンコーダでエンコードされたN-1個のビデオストリームのうち、n-1個のビデオストリームをそれぞれデコードしてよい。一例として、
図6では、受信者端末470が、Nが3であってnが2である場合、3個のビデオストリームのうち、メインエンコーダでエンコードされた1つのビデオストリームとサブエンコーダでエンコードされた1つのビデオストリームの合計2つのビデオストリームをデコードする例について説明した。
【0057】
段階940で、コンピュータ装置200は、n個のデコーダでデコードされたn個のビデオストリームを利用してビデオを再生してよい。例えば、コンピュータ装置200は、n個のデコーダでデコードされたn個のビデオストリームが含むPTS(Presentation Timestamp)を利用してn個のビデオストリームをミキシングして1つの画面として再生してよい。例えば、デコードされたビデオフレームそれぞれはPTSを含んでよく、コンピュータ装置200は、このようなPTSに基づいてバッファ内でデコードされたビデオフレームを整列してよい。整列されたビデオフレームは、コンピュータ装置200でビデオの再生のために活用されてよい。このとき、Nよりも少ないnを使用する場合、実質的にはビットレートの減少と同じ効果が発生するため、受信者端末470であるコンピュータ装置200がネットワーク状態によってビットレートを動的に制御できるようになることが分かる。
【0058】
以上のように、本発明の実施形態によると、配信者が1つのビデオを単一のチャネルではなくN(前記Nは2以上の自然数)個のチャネルに分割して配信することができる。また、受信者が、ネットワーク環境によって配信者が配信するN個のチャネルのうちのn(前記nは前記N以下の自然数)個のチャネルで受信されるビデオストリームを結合して再生することにより、受信者側のネットワーク環境に適したビットレートのビデオを再生することができる。
【0059】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0060】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0061】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。このような記録媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されるのではなく、ネットワーク上に分散して存在するものであってもよい。プログラム命令の例には、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0062】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0063】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。