(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6892877
(24)【登録日】2021年6月1日
(45)【発行日】2021年6月23日
(54)【発明の名称】ビデオコンテンツをエンコードするためのシステムおよび方法
(51)【国際特許分類】
H04N 21/238 20110101AFI20210614BHJP
H04N 21/226 20110101ALI20210614BHJP
H04N 19/46 20140101ALI20210614BHJP
H04N 19/436 20140101ALI20210614BHJP
G06F 13/00 20060101ALI20210614BHJP
【FI】
H04N21/238
H04N21/226
H04N19/46
H04N19/436
G06F13/00 520B
【請求項の数】14
【全頁数】21
(21)【出願番号】特願2018-565364(P2018-565364)
(86)(22)【出願日】2017年5月4日
(65)【公表番号】特表2019-526188(P2019-526188A)
(43)【公表日】2019年9月12日
(86)【国際出願番号】US2017031114
(87)【国際公開番号】WO2017218095
(87)【国際公開日】20171221
【審査請求日】2019年1月17日
(31)【優先権主張番号】15/183,562
(32)【優先日】2016年6月15日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】518348942
【氏名又は名称】ディビックス, エルエルシー
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】アミデイ, ウィリアム デイビッド
(72)【発明者】
【氏名】シヴァダス, アブヒシェク
(72)【発明者】
【氏名】ウー, ケビン ディーン−ヨン
【審査官】
川中 龍太
(56)【参考文献】
【文献】
米国特許出願公開第2014/0059243(US,A1)
【文献】
特表2014−506430(JP,A)
【文献】
米国特許出願公開第2016/0134881(US,A1)
【文献】
韓国公開特許第10−2011−0051104(KR,A)
【文献】
特開2016−005043(JP,A)
【文献】
米国特許出願公開第2016/0073176(US,A1)
【文献】
CHUNG-YI WU, et al.,A hierarchical reliability-driven scheduling for cloud video transcoding,2015 International Conference on Machine Learning and Cybernetics (ICMLC),2015年 7月12日,pp.456-457,URL,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7340964
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 − 21/858
H04N 19/00 − 19/98
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
エンコーディングシステム内の複数のエンコーダを使用して、ビデオコンテンツのソースストリームからビデオコンテンツの複数の代替ストリームをエンコードするための方法であって、前記方法は、
前記エンコーディングシステム内の複数のエンコーダのそれぞれにおいて、ビデオコンテンツのソースストリームの複数のポーションを受信することであって、前記複数のエンコーダは、N個のエンコーダを含み、Nは、整数であり、前記ソースストリームの前記複数のポーションは、N個より大きい個数のポーションを含み、前記複数のエンコーダにおける各エンコーダは、M番目のエンコーディング順序を有し、Mは、1からNの整数である、ことと、
前記複数のエンコーダのそれぞれにおいて、前記ソースストリームの前記複数のポーションのサブセットをエンコードすることであって、各エンコーダは、前記ソースストリームの前記複数のポーションのM番目のポーションをエンコードした後に、前記M番目のポーションに続く、前記ソースストリームの前記複数のポーションのN番目毎のポーションをエンコードする、ことと、
前記複数のエンコーダのうちの各特定の1つによってエンコードされた前記複数のポーションの前記サブセットを前記複数のエンコーダのうちの特定の1つのためのコンテナの中に記憶することと、
前記複数のエンコーダのうちの各特定の1つによってエンコードされた前記複数の代替ストリームのポーションに関するインデックス情報を生成することと、
前記特定のエンコーダのそれぞれによって生成された前記複数のポーションの前記サブセットに関するマニフェストにおける前記インデックス情報を前記複数のエンコーダのうちの前記特定の1つのマニフェストの中に記憶することと
を含む、方法。
【請求項2】
前記複数のエンコーダのそれぞれによってエンコードされた前記ソースストリームの前記複数のポーションの前記サブセットは、複数の代替ストリームのうちの1つであり、前記方法は、
前記複数のエンコーダのそれぞれにおいて、前記ソースストリームの前記複数のポーションのそれぞれを受信することと、
前記複数のエンコーダのそれぞれにおいて、前記ソースストリームの前記複数のポーションのそれぞれからの代替ストリームのセグメントをエンコードすることにより、前記代替ストリームの複数のセグメントを生成することであって、前記複数のエンコーダのうちの各特定の1つによって生成された各特定の代替ストリームは、特定のセットのパラメータを有する、ことと、
前記複数のエンコーダのうちの各特定の1つにおいて、前記複数のエンコーダのうちの特定の1つによって生成された前記複数のセグメントのそれぞれに対して、インデックス情報を生成することと、
前記複数のエンコーダのうちの各特定の1つによって生成された前記インデックス情報を前記複数のエンコーダのうちの前記特定の1つに関するマニフェストの中に記憶することにより、複数のマニフェストを生成することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のエンコーダのうちの特定の1つによって生成された前記複数の代替ストリームのうちの1つの代替ストリームは、特定の最大ビットレートをパラメータとして有する、請求項2に記載の方法。
【請求項4】
前記複数のエンコーダのうちの異なるものによって生成された前記複数の代替ストリームのうちの少なくとも2つの代替ストリームは、同一の最大ビットレートおよび異なる少なくとも1つの他のパラメータを有する、請求項2に記載の方法。
【請求項5】
前記少なくとも1つの他のパラメータは、縦横比、フレームレート、分解能から成るパラメータの群から選択される、請求項4に記載の方法。
【請求項6】
ポーションをエンコードすることは、前記M番目のエンコーダの前記複数のポーションの前記サブセットのうちの各ポーションを複数のセグメントにエンコードすることを含み、前記複数のセグメントのそれぞれは、前記N個のエンコーダのそれぞれにおける複数の代替ストリームのうちの1つにおけるセグメントであり、
前記インデックス情報を生成することは、前記N個のエンコーダのそれぞれにおけるM番目のエンコーダのポーションのセットのうちの各ポーションに対して生成された前記複数のセグメントのそれぞれに対して、インデックス情報を生成することを含み、
前記インデックス情報を記憶することは、前記N個のエンコーダのそれぞれを使用して、前記M番目のエンコーダによって前記ポーションのセットにおける各ポーションから生成された前記複数のセグメントのそれぞれに対する前記インデックス情報を前記M番目のエンコーダのためのマニフェストの中に記憶することを含む、請求項1に記載の方法。
【請求項7】
前記N個のエンコーダのそれぞれにおけるM番目のエンコーダのための前記複数のポーションの前記サブセットにおいて存在しない、前記複数のポーションのうちの各ポーションを廃棄することをさらに含む、請求項1に記載の方法。
【請求項8】
ビデオコンテンツのソースストリームからビデオコンテンツの複数の代替ストリームをエンコードするためのエンコーディングシステムであって、前記エンコーディングシステムは、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによってアクセス可能なメモリと、
前記メモリの中に記憶された命令と
を備え、
前記命令は、前記少なくとも1つのプロセッサによって読み取られると、 複数のエンコーダを提供するように前記プロセッサに指示し、前記複数のエンコーダは、N個のエンコーダを含み、Nは、整数であり、前記複数のエンコーダにおける各エンコーダは、M番目のエンコーディング順序を有し、Mは、1からNの整数であり、
前記複数のエンコーダのそれぞれは、
ビデオコンテンツのソースストリームの複数のポーションを受信することであって、前記ソースストリームの前記複数のポーションは、N個より大きい個数のポーションを含む、ことと、
前記エンコーダにおいて、前記ソースストリームの前記複数のポーションのサブセットをエンコードすることであって、前記エンコーダは、前記ソースストリームの前記複数のポーションのM番目のポーションをエンコードした後、前記M番目のポーションに続く、前記ソースストリームの前記複数のポーションのN番目毎のポーションをエンコードする、ことと、
前記エンコーダによってエンコードされた前記ソースストリームの前記複数のポーションの前記サブセットを前記エンコーダに特定のコンテナの中に記憶することと、
前記エンコーダによってエンコードされた前記ソースストリームの前記複数のポーションの前記サブセットに関するインデックス情報を生成することであって、特定のポーションに関する前記インデックス情報は、再生デバイスが前記特定のポーションを要求することを可能にする、ことと、
前記エンコーダによって生成された前記ソースストリームの前記複数のポーションの前記サブセットに関するマニフェストの中に前記インデックス情報を記憶することと
を行うように指示される、エンコーディングシステム。
【請求項9】
前記複数のエンコーダのそれぞれによってエンコードされた前記ソースストリームの前記複数のポーションの前記サブセットは、複数の代替ストリームのうちの1つであり、
前記複数のエンコーダのそれぞれは、
前記ソースストリームの前記複数のポーションのそれぞれを受信することと、
前記ソースストリームの前記複数のポーションのそれぞれからの特定の代替ストリームのセグメントをエンコードすることにより、前記代替ストリームの複数のセグメントを生成することであって、各特定の代替ストリームは、特定のパラメータを有する、ことと、
生成された前記複数のセグメントのそれぞれに対して、インデックス情報を生成することと、
生成された前記インデックス情報を前記複数のエンコーダのうちの特定の1つのためのマニフェストの中に記憶することと
をさらに行うように指示される、請求項8に記載のシステム。
【請求項10】
前記複数のエンコーダのうちの特定の1つによって生成された前記複数の代替ストリームのうちの1つの代替ストリームは、特定の最大ビットレートをパラメータとして有する、請求項9に記載のシステム。
【請求項11】
前記複数のエンコーダのうちの異なるものによって生成された前記複数の代替ストリームのうちの少なくとも2つの代替ストリームは、同一の最大ビットレートおよび異なる少なくとも1つの他のパラメータを有する、請求項9に記載のシステム。
【請求項12】
前記少なくとも1つの他のパラメータは、縦横比、フレームレート、分解能から成るパラメータの群から選択される、請求項11に記載のシステム。
【請求項13】
前記複数のエンコーダのそれぞれは、
前記複数のポーションの前記サブセットのうちの各ポーションを複数のセグメントにエンコードすることであって、前記複数のセグメントのそれぞれは、複数の代替ストリームのうちの1つにおけるセグメントである、ことと、
前記M番目のエンコーダのポーションのセットのうちの各ポーションに対して生成された前記複数のセグメントのそれぞれに対して、インデックス情報を生成することと、
ポーションの前記セットにおける各ポーションから生成された前記複数のセグメントのそれぞれに対する前記インデックス情報を前記M番目のエンコーダのためのマニフェストの中に記憶することと
を行うように指示される、請求項8に記載のシステム。
【請求項14】
前記N個のエンコーダのそれぞれは、前記M番目のエンコーダのためのポーションのセットにおいて存在しない、前記複数のポーションのうちの各ポーションを破棄するようにさらに指示される、請求項8に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、適応ストリーミングに関し、より具体的には、ビデオデータを異なる最大ビットレートを有するストリームにエンコードするシステムと、ストリームを使用して、エンコードされたビデオコンテンツをエンコードされたストリームから取得する再生デバイスとに関する。
【背景技術】
【0002】
用語「メディアストリーミング」は、再生デバイス上におけるメディアの再生を説明しており、メディアは、サーバ上に記憶され、再生の間、ネットワークを経由して、再生デバイスに継続的に送信される。典型的には、再生デバイスは、メディアの次のポーションの受信に先立って、全てのバッファされたメディアの再生を完了するため、再生デバイスは、再生の間、任意の所与の時間において、十分な量のメディアをバッファ内に記憶し、再生の途絶を防止する。適応ビットレートストリーミングまたは適応ストリーミングは、本ストリーミング条件(例えば、ユーザのネットワーク帯域幅およびCPU容量)をリアルタイムで検出し、適宜、ストリーミングされるメディアの品質を調節することを伴う。典型的には、ソースメディアは、複数のビットレートでエンコードされ、再生デバイスまたはクライアントは、利用可能なリソースに応じて、異なるエンコードのストリーミング間で切り替える。
【0003】
適応ストリーミングソリューションは、典型的には、RFC2616として、Internet Engineering Task ForceおよびWorld Wide Web Consortiumによって公開されたハイパーテキスト転送プロトコル(HTTP)、またはRFC2326として、Internet Engineering Task Forceによって公開されたリアルタイムストリーミングプロトコル(RTSP)のいずれかを利用して、サーバと再生デバイスとの間でメディアをストリーミングする。HTTPは、再生デバイスが、ファイル内のバイト範囲を要求することを可能にする、ステートレスプロトコルである。HTTPは、サーバが、再生デバイスから受信された要求に応答するために、情報を要求する再生デバイスの状態または再生デバイスによって要求されたバイト範囲に関する情報を記録することが要求されないため、ステートレスとして説明される。RTSPは、ストリーミングメディアサーバを制御するために使用されるネットワーク制御プロトコルである。再生デバイスは、メディアをストリーミングするサーバに、「再生」および「一時停止」等の制御コマンドを発行し、メディアファイルの再生を制御する。RTSPが利用されるとき、メディアサーバは、各クライアントデバイスの状態を記録し、クライアントデバイスから受信した命令およびクライアントの状態に基づいて、ストリーミングするためのメディアを決定する。
【0004】
適応ストリーミングシステムでは、ソースメディアは、典型的には、実際のビデオおよびオーディオデータを含有する、いくつかの代替ストリームをポイントするトップレベルインデックスファイルまたはマニフェストとして、メディアサーバ上に記憶される。各ストリームは、典型的には、1つ以上のコンテナファイル内に記憶される。異なる適応ストリーミングソリューションは、典型的には、異なるインデックスおよびメディアコンテナを利用する。World Wide Web Consortiumによって開発された同期マルチメディア統合言語(SMIL)は、Microsoft Corporation(Redmond, Washington)によって開発されたIISスムーズストリーミング、およびAdobe Systems Incorporated(SanJose, California)によって開発されたフラッシュダイナミックストリーミングを含む、いくつかの適応ストリーミングソリューションにおいて、インデックスを作成するために利用される。Apple Computer Incorporated(Cupertino, California)によって開発されたHTTP適応ビットレートストリーミングは、典型的には、メディアコンテナファイルを識別する、URIのリストを含有するテキストファイルである、拡張M3U再生ファイル(.M3U8)を使用して、インデックスファイルを実装する。最も一般に使用されるメディアコンテナ形式は、MPEG−4 Part14(すなわち、ISO/IEC14496−14)に規定されるMP4コンテナ形式、およびMPEG−2Part1(すなわち、ISO/IEC規格13818−1)に規定されるMPEGトランスポートストリーム(TS)コンテナである。MP4コンテナ形式は、IISスムーズストリーミングおよびフラッシュダイナミックストリーミングにおいて利用される。TSコンテナは、HTTP適応ビットレートストリーミングにおいて使用される。
【0005】
Matroskaコンテナは、オープン標準プロジェクトとしてMatroska非営利団体(Aussonne, France)によって開発されたメディアコンテナである。Matroskaコンテナは、拡張バイナリメタ言語(EBML)に基づき、これは、拡張マークアップ言語(XML)のバイナリ派生物である。Matroskaコンテナのデコードは、多くの消費者電子機器(CE)デバイスによってサポートされている。DivX, LLC(San Diego, California)によって開発されたDivX Plusファイルフォーマットは、Matroskaコンテナフォーマットの拡張子を利用する(すなわち、Matroskaコンテナフォーマットに基づくが、Matroskaフォーマット内に規定されていない要素を含む)。
【0006】
インターネットを経由してメディアコンテンツの配信のための一貫した手段を提供するために、国際標準化機構(ISO)および国際電気標準会議(IEC)は、HTTP(DASH)規格を経由した動的適応ストリーミングを推進している。DASH規格は、HTTPを使用したMPEGコンテンツの配信のためのメディアコンテンツおよびコンテンツの記述のためのフォーマットを規定する。DASHによると、プレゼンテーションのためのメディアコンテンツの各コンポーネントは、1つ以上のストリーム内に記憶される。ストリームはそれぞれ、セグメントに分割される。メディアプレゼンテーション記述(MPD)は、ストリームのそれぞれ内のセグメントについての情報と、再生の間にメディアコンテンツをプレゼンテーションするために必要とされる他の情報とを含む、データ構造である。再生デバイスは、再生のための適応ビットレートストリーミングを使用してメディアコンテンツのコンポーネントを取得するために、MPDを使用する。
【0007】
コンテンツをストリーミングする速度が改良されるにつれて、スポーツイベントおよびコンサート等のライブイベントのストリーミングが、一般的となりつつある。しかしながら、適応ビットレートストリーミングのために、ライブイベントからのビデオコンテンツをストリームにエンコードすることは、問題である。そのために、エンコーダサーバシステムは、典型的には、ビデオコンテンツを種々のストリームにエンコードするように具体的に設計される、ハードウェアエンコーダを使用する。これらの特殊エンコーダは、取得が高価である。したがって、当業者は、特殊エンコーダのより低いコスト代替を見出すことを常に模索している。
【発明の概要】
【課題を解決するための手段】
【0008】
本発明のいくつかの実施形態による、ビデオコンテンツを異なる最大ビットレートを有する複数のストリームにエンコードし、再生デバイスを使用して、ビデオコンテンツを取得するためのシステムおよび方法が、開示される。多くの実施形態による、プロセスは、以下の様式で実施される。エンコーディングシステム内の各サーバは、ビデオコンテンツのソースストリームのポーションをコンテンツプロバイダシステムから受信する。エンコーダはそれぞれ、エンコーダのそれぞれにおいて受信されたソースストリームのポーションを使用して、代替ストリームのポーションをエンコードする。エンコーダのうちの各特定の1つによってエンコードされた代替ストリームのポーションは、エンコーダのうちの特定の1つのためのコンテナ内に記憶される。エンコーダはそれぞれ、次いで、各エンコーダによって生成された代替ストリームのポーションに関するインデックス情報を生成し、インデックス情報を特定のエンコーダによって生成された代替ストリームのポーションのためのマニフェスト内に記憶する。
【0009】
本発明のいくつかの実施形態によると、エンコーダのそれぞれによってエンコードされた代替ストリームのポーションは、代替ストリームのうちの1つであって、ストリームは、以下の様式で各エンコーダによって生成される。エンコーダは、ソースストリームの各ポーションを受信し、ソースストリームの各ポーションからの代替ストリームのセグメントをエンコードし、代替ストリームのセグメントを生成する。いくつかのこれらの実施形態によると、各特定のエンコーダは、ストリームを生成するためのパラメータの特定のセットを有する。各エンコーダはまた、特定のエンコーダによって生成されたセグメントのそれぞれに対し、インデックス情報を生成し、インデックス情報を特定のエンコーダのためのマニフェスト内に記憶する。これらの実施形態のうちのいくつかによると、特定のエンコーダによって生成された代替ストリームは、特定の最大ビットレートをパラメータとして有する。なおもさらにこれらの実施形態のいくつかによると、エンコーダの異なるものによって生成された代替ストリームの少なくとも2つの代替ストリームは、同一最大ビットレートおよび異なる少なくとも1つの他のパラメータを有する。これらの実施形態の多くによると、少なくとも1つの他のパラメータは、縦横比、フレームレート、および分解能から成るパラメータの群から選択される。
【0010】
本発明のいくつかの実施形態によると、本システムは、N個のエンコーダを含み、Nは、整数であって、N個のエンコーダはそれぞれ、ソースストリームの1/Nのポーションを代替ストリームのそれぞれのセグメントにエンコードする。いくつかの実施形態によると、代替ストリームのそれぞれ内のセグメントへのソースストリームの1/Nポーションのエンコーディングは、以下の様式で実施される。各エンコーダは、M番目のエンコーディング順序を割り当てられ、Mは、1からNの整数である。各エンコーダは、受信されたソースストリームのM番目のポーションおよびソースストリームからその後受信されたすべてのN番目のポーションをM番目のエンコーダがエンコードするためのソースストリームのポーションのセットとして決定する。ポーションをエンコードすることは、ポーションを代替ストリームのうちの各1つ内のセグメントにエンコードすることを含む。インデックス情報を生成することは、インデックス情報を代替ストリームのそれぞれ内のポーションのそれぞれに対して生成されたセグメントのそれぞれに対して生成することと、インデックス情報を、ポーションのセット内の各ポーションから生成されたセグメントのそれぞれに対し、M番目のエンコーダのためのマニフェスト内に記憶することとを含む。これらの実施形態のいくつかによると、各M番目のエンコーダは、M番目のエンコーダのためのポーションのセットにない、ポーションのそれぞれを破棄する。
例えば、本願は以下の項目を提供する。
(項目1)
エンコーディングシステム内の複数のエンコーダを使用して、ビデオコンテンツの複数の代替ストリームをビデオコンテンツのソースストリームからエンコードするための方法であって、前記方法は、
ビデオコンテンツのソースストリームの複数のポーションを前記エンコーディングシステム内の複数のエンコーダのそれぞれにおいて受信することと、
前記複数のエンコーダのそれぞれ内で受信された前記ソースストリームの複数のポーションを使用して、前記複数のエンコーダのそれぞれ内で前記複数の代替ストリームのポーションをエンコードすることと、
前記複数のエンコーダのうちの各特定の1つによってエンコードされた前記複数の代替ストリームのポーションを前記エンコーダのうちの特定の1つのためのコンテナ内に記憶することと、
前記複数のエンコーダのうちの各特定の1つによってエンコードされた前記代替ストリームのポーションに関するインデックス情報を生成することと、
前記特定のエンコーダのそれぞれによって生成された前記複数の代替ストリームのポーションに関するマニフェスト内のインデックス情報を前記複数のエンコーダのうちの特定の1つのマニフェスト内に記憶することと
を含む、方法。
(項目2)
前記複数のエンコーダのそれぞれによってエンコードされた前記代替ストリームのポーションは、前記複数の代替ストリームのうちの1つであり、前記方法はさらに、
前記ソースストリームの複数のポーションのそれぞれを前記複数のエンコーダのそれぞれにおいて受信することと、
前記ソースストリームの複数のポーションのそれぞれからの代替ストリームのセグメントをエンコードし、前記代替ストリームの複数のセグメントを前記複数のエンコーダのそれぞれにおいて生成することであって、前記複数のエンコーダのうちの各特定の1つによって生成された各特定の代替ストリームは、パラメータの特定のセットを有する、ことと、
前記複数のエンコーダのうちの各特定の1つにおいて、前記複数のエンコーダのうちの特定の1つによって生成された前記複数のセグメントのそれぞれに対し、インデックス情報を生成することと、
前記複数のエンコーダのうちの各特定の1つによって生成されたインデックス情報を前記複数のエンコーダのうちの特定の1つに関するマニフェスト内に記憶し、複数のマニフェストを生成することと
を含む、項目1に記載の方法。
(項目3)
前記複数のエンコーダのうちの特定の1つによって生成された複数の代替ストリームからの代替ストリームは、特定の最大ビットレートをパラメータとして有する、項目2に記載の方法。
(項目4)
前記複数のエンコーダの異なるものによって生成された前記複数の代替ストリームからの少なくとも2つの代替ストリームは、同一最大ビットレートおよび異なる少なくとも1つの他のパラメータを有する、項目2に記載の方法。
(項目5)
前記少なくとも1つの他のパラメータは、縦横比、フレームレート、および分解能から成るパラメータの群から選択される、項目4に記載の方法。
(項目6)
前記複数のエンコーダは、N個のエンコーダを含み、Nは、整数であり、前記N個のエンコーダのそれぞれは、前記ソースストリームの複数のポーションの1/Nを前記複数の代替ストリームのそれぞれのセグメントにエンコードする、項目1に記載の方法。
(項目7)
前記方法はさらに、
前記N個のエンコーダのそれぞれをM番目のエンコーディング順序に割り当てることであって、Mは、1からNの整数である、ことと、
前記N個のエンコーダの各M番目のものにおいて受信された前記ソースストリームのM番目のポーションおよび前記ソースストリームからその後受信されたすべてのN番目のポーションを前記M番目のエンコーダが前記N個のエンコーダのそれぞれにおいてエンコードするための前記ソースストリームのポーションのセットとして決定することと、
を含み、
ポーションをエンコードすることは、前記M番目のエンコーダのソースストリームからのポーションのセット内の各ポーションを複数のセグメントにエンコードすることを含み、前記複数のセグメントのそれぞれは、前記N個のエンコーダのそれぞれにおける前記複数の代替ストリームのうちの1つ内のセグメントであり、
前記インデックス情報を生成することは、前記N個のエンコーダのそれぞれ内のM番目のエンコーダのポーションのセットからのポーションのそれぞれに対して生成された複数のセグメントのそれぞれに対し、インデックス情報を生成することを含み、
前記インデックス情報を記憶することは、前記N個のエンコーダのそれぞれを使用して、前記M番目のエンコーダのためのマニフェスト内に、前記M番目のエンコーダによって前記ポーションのセット内の各ポーションから生成された複数のセグメントのそれぞれに対するインデックス情報を記憶することを含む、
項目6に記載の方法。
(項目8)
前記N個のエンコーダのそれぞれ内のM番目のエンコーダのためのポーションの前記セット内にない、前記複数のポーションからのポーションのそれぞれを廃棄することをさらに含む、項目7に記載の方法。
(項目9)
ビデオコンテンツの複数の代替ストリームをビデオコンテンツのソースストリームからエンコードするためのエンコーディングシステムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによってアクセス可能なメモリと、
前記メモリ内に記憶される命令であって、前記命令は、前記少なくとも1つのプロセッサによって読み取られると、前記プロセッサに、
複数のエンコーダを提供することであって、前記複数のエンコーダのそれぞれは、
ビデオコンテンツのソースストリームの複数のポーションを受信することと、
前記ソースストリームの複数のポーションを使用して、前記複数の代替ストリームのポーションをエンコードすることと、
前記エンコードされた複数の代替ストリームのポーションを前記エンコーダに特定のコンテナ内に記憶することと、
前記エンコーダによってエンコードされた前記代替ストリームのポーションに関するインデックス情報を生成することと、
前記エンコーダによって生成された前記複数の代替ストリームのポーションに関するマニフェスト内に前記インデックス情報を記憶することと
を行うように指示される、ことと
を行うように指示する、前記メモリ内に記憶される命令と
を備える、システム。
(項目10)
前記複数のエンコーダのそれぞれによってエンコードされた前記代替ストリームのポーションは、前記複数の代替ストリームのうちの1つであり、前記複数のエンコーダのそれぞれはさらに、
前記ソースストリームの複数のポーションのそれぞれを受信することと、
前記ソースストリームの複数のポーションのそれぞれからの特定の代替ストリームのセグメントをエンコードし、前記代替ストリームの複数のセグメントを生成することであって、各特定の代替ストリームは、特定のパラメータを有する、ことと、
生成された前記複数のセグメントのそれぞれに対し、インデックス情報を生成することと、
生成された前記インデックス情報を前記複数のエンコーダのうちの特定の1つのためのマニフェスト内に記憶することと
を行うように指示される、項目9に記載のシステム。
(項目11)
前記複数のエンコーダのうちの特定の1つによって生成された前記複数のストリームからの代替ストリームは、特定の最大ビットレートをパラメータとして有する、項目10に記載のシステム。
(項目12)
前記複数のエンコーダの異なるものによって生成された前記複数の代替ストリームからの代替ストリームのうちの少なくとも2つは、同一の最大ビットレートおよび異なる少なくとも1つの他のパラメータを有する、項目10に記載のシステム。
(項目13)
前記少なくとも1つの他のパラメータは、縦横比、フレームレート、および分解能から成るパラメータの群から選択される、項目12に記載のシステム。
(項目14)
前記複数のエンコーダは、N個のエンコーダを含み、Nは、整数であり、前記N個のエンコーダのそれぞれは、前記ソースストリームの複数のポーションの1/Nのポーションを前記複数のストリームのそれぞれのセグメントにエンコードする、項目9に記載のシステム。
(項目15)
前記N個のエンコーダのそれぞれは、M番目のエンコーディング順序に割り当てられ、前記N個のエンコーダのそれぞれは、
受信された前記ソースストリームのM番目のポーションおよび前記ソースストリームからその後受信されたすべてのN番目のポーションを前記M番目のエンコーダがエンコードするための前記ソースストリームのポーションのセットとして決定することと、
前記ソースストリームからのポーションのセット内の各ポーションを複数のセグメントにエンコードすることであって、前記複数のセグメントのそれぞれは、前記複数の代替ストリームのうちの1つ内のセグメントであり、
前記M番目のエンコーダのポーションのセットからのポーションのそれぞれに対して生成された前記複数のセグメントのそれぞれに対し、インデックス情報を生成することと、
前記インデックス情報を、ポーションの前記セット内の各ポーションから生成された複数のセグメントのそれぞれに対し、前記M番目のエンコーダのためのマニフェスト内に記憶することと
を行うように指示される、項目14に記載のシステム。
(項目16)
前記N個のエンコーダはそれぞれさらに、前記M番目のエンコーダのためのポーションのセット内にない、前記複数のポーションからのポーションのそれぞれを破棄するように指示される、項目15に記載のシステム。
【図面の簡単な説明】
【0011】
【
図1】
図1は、本発明のある実施形態による、適応ビットレートストリーミングシステムのネットワーク略図を図示する。
【
図2】
図2は、本発明のある実施形態による、エンコーディングサーバシステムのコンポーネントのブロック図を図示する。
【
図3】
図3は、本発明のある実施形態による、ビデオコンテンツを異なる最大ビットレートを有するストリームにエンコードする、エンコーダサーバシステム内の処理システムのコンポーネントのブロック図を図示する。
【
図4】
図4は、本発明のある実施形態による、異なる最大ビットレートを有するエンコードされたストリームを使用して、適応ビットレートストリームエンコーディングシステムを介して、ビデオコンテンツを取得する、再生デバイス内の処理システムのコンポーネントのブロック図を図示する。
【
図5】
図5は、本発明のある実施形態による、エンコーダサーバシステム内の各エンコーダによって実施され、ビデオコンテンツを適応ビットレートストリーミングシステム内で使用されるストリームのうちの1つにエンコードするためのプロセスのためのフロー図を図示する。
【
図6】
図6は、本発明のある実施形態による、エンコーダサーバシステム内のN個のエンコーダのそれぞれによって実施され、ビデオコンテンツの各N番目のセグメントをエンコードするためのプロセスのためのフロー図を図示する。
【
図7】
図7は、本発明のある実施形態による、ストリームのためのマニフェスト情報を取得し、適応ビットレートシステムを使用して、ストリームを使用し、ビデオコンテンツを取得するために再生デバイスによって実施されるプロセスのフロー図を図示する。
【発明を実施するための形態】
【0012】
ここで図面に目を向けると、本発明のいくつかの実施形態による、ビデオコンテンツを適応ビットレートストリーミングのためのストリームにエンコードし、再生デバイスを使用して、ストリームを取得するためのシステムおよび方法が、図示される。本発明のいくつかの実施形態によると、エンコーディングシステムは、1つを上回るエンコーダを含む。これらの実施形態のいくつかによると、エンコーダは、エンコーディングシステム内の処理システムによって実行されるソフトウェアによって提供されてもよい。多くの実施形態によると、エンコーダは、エンコーディングシステム内のファームウェアによって提供されてもよい。いくつかの実施形態によると、エンコーダは、サーバシステム内のハードウェアによって提供される。
【0013】
エンコーディングシステムは、ビデオコンテンツのソースストリームを内蔵タイムスタンプを含むソースから受信する。いくつかの実施形態によると、ビデオコンテンツは、リアルタイムで記録されるライブフィードである。これらの実施形態のいくつかによると、ビデオコンテンツのソースストリームは、協定世界時に従って、タイムスタンプを含む。
【0014】
いくつかの実施形態によると、各エンコーダは、コンテンツの適応ビットレートストリーミングのために使用されるべきストリームのセットの単一ストリームを生成するために使用される。これらの実施形態のいくつかによると、エンコーダは全て、ビデオコンテンツのソースストリームのポーションの受信を開始し、受信されたポーション内の内蔵タイムスタンプを使用して同期される。各エンコーダが、ビデオコンテンツのソースストリームのポーションをソースシステムから受信すると、エンコーダは、受信されたビデオコンテンツのソースストリームのポーションを各エンコーダに特定の所定のパラメータを有するストリームのセグメントにエンコードする。いくつかの実施形態によると、各エンコーダによって生産されたストリームは、他のエンコーダによって生成されたストリームと異なる最大ビットレート(または異なる標的平均ビットレート)を有する。いくつかの他の実施形態によると、限定ではないが、縦横比、分解能、およびフレームレートを含む、他のパラメータは、種々のエンコーダによって生成されたストリーム内で変動されてもよい。
【0015】
各エンコーダは、本発明のいくつかの実施形態によると、生成されたポーションを生成されたストリームのための1つ以上のコンテナファイル内に記憶する。エンコーダはまた、本発明の多くの実施形態による、ストリームの生成されたポーションのそれぞれに対し、インデックスまたはマニフェスト情報を生成し、生成されたインデックスまたはマニフェスト情報をインデックスファイルまたはマニフェストに追加する。プロセスは、ソースストリームの終了が受信されるまで繰り返される。
【0016】
いくつかの他の実施形態によると、エンコーディングシステムは、いくつかのエンコーダ(N)を含み、各エンコーダは、ソースストリームのポーション(例えば、1/N)を、エンコーディングパラメータの異なるセットを使用して、複数回エンコードし、ストリームの適応セット内のストリームのそれぞれに対し、セグメントを作成する。これらの実施形態のいくつかによると、各エンコーダは、処理順序内の位置を割り当てられる。各エンコーダは、次いで、ビデオコンテンツのソースストリームの受信を開始する。ソースストリームのポーションが、エンコーダのそれぞれによって受信されると、エンコーダは、ポーションがエンコーダに割り当てられるソースストリームのN番目のセグメントであるかどうかを決定する。ポーションがN番目のセグメントではない場合、エンコーダは、セグメントを破棄する。ポーションがN番目のセグメントである場合、エンコーダは、ストリームのセット内の種々のストリームのためのプロファイルのそれぞれに従って、受信されたポーションをセグメントにエンコードし、セグメントを適切なストリームのためのコンテナファイル内に記憶する。エンコーダは、次いで、生成されたセグメントのそれぞれに対し、インデックスまたはマニフェスト情報を生成し、情報を適切なインデックスファイルまたはマニフェストに追加する。これらの実施形態の多くによると、インデックスまたはマニフェスト情報は、エンコーダによって生産されたセグメントのためのマニフェストに追加される。いくつかの他の実施形態によると、種々のストリームのために生産された各セグメントに対するインデックスまたはマニフェスト情報は、具体的ストリームのために維持されるインデックスファイルまたはマニフェストに追加される、および/またはマニフェストファイルを生成する際の将来的使用のために、メモリ内のデータベースの中に記憶される。プロセスは、エンコーダがそれぞれソースストリームの終了を受信するまで、エンコーダのそれぞれによって繰り返される。
【0017】
いくつかの実施形態によると、メディアコンテンツは、DASH規格に従って、ストリーム内に記憶される。しかしながら、当業者は、限定ではないが、Matroska(MKV)コンテナファイルフォーマット等のフォーマットも本発明から逸脱することなく、メディアコンテンツのストリームを記憶するために使用され得ることを認識するであろう。
【0018】
本発明のいくつかの実施形態による、適応ビットレートストリーミングシステムの性能は、ビデオのセグメントが、イントラフレームであるインスタントデコーダリフレッシュ(IDR)フレームから開始する、単一(または少なくとも1つ)クローズドグループオブピクチャ(GOP)として各ストリーム内でエンコードされるように、代替ストリームのそれぞれ内のソースビデオの各ポーションをエンコードすることによって、大幅に向上されることができる。再生デバイスは、ビデオセグメントの再生の完了時、再生の間に使用される代替ストリーム間で切り替えることができ、ビデオセグメントが取得されるストリームに関係なく、ビデオセグメント内の第1のフレームは、ビデオセグメント内に含有されるエンコードされたメディア以外の任意のエンコードされたメディアを参照せずにデコードされ得る、IDRフレームとなるであろう。
【0019】
いくつかの実施形態では、再生デバイスは、MPDから利用可能なストリームのそれぞれに関する情報を取得し、メディアの再生において利用するための1つ以上のストリームを選択する。再生デバイスはまた、関連コンテナファイル内に記憶されるエンコードされたビデオコンテンツのセグメントをインデックス化する、インデックス情報を要求することができる。インデックス情報は、コンテナファイル内に、またはMPDもしくは別個のインデックスファイル内のコンテナファイルと別個に記憶されることができる。インデックス情報は、再生デバイスが、エンコードされたビデオコンテンツの具体的ポーションを含有するコンテナファイル内のエンコードされたビデオコンテンツのセグメントに対応するバイト範囲をHTTP(または別の適切なステートフルもしくはステートレスプロトコル)を介してサーバから要求することを可能にする。再生デバイスは、いくつかの実施形態によると、インデックス情報を使用して、代替ストリームからビデオのコンテンツのセグメントを要求する。再生は、再生デバイスがネットワーク条件によってサポートされ得る最大ビットレートでエンコードされたビデオコンテンツを有するストリームからエンコードされたビデオコンテンツのセグメントを要求することによって継続される。
【0020】
本発明のいくつかの実施形態によると、再生デバイスは、以下の様式で動作し、エンコーディングシステム内の複数のエンコーダによって生成されたストリームを使用する。再生デバイスは、ビデオコンテンツを含む、メディアコンテンツを要求する。要求に応答して、再生デバイスは、各エンコーダによって維持および/または生成されるMPDまたはインデックスファイルを受信する。再生デバイスは、内蔵タイムスタンプを使用して、次いで、種々のエンコーダからのMPDまたはインデックスファイルをインデックス情報の組み合わされた適応セットの中に加える。再生デバイスは、次いで、組み合わされた適応セットからのインデックス情報を使用して、適応ビットレートストリーミングを実施し、ビデオコンテンツを取得する。いくつかの他の実施形態によると、サーバは、MPDを内蔵タイムスタンプを使用して各エンコーダによって生成されたMPDまたはインデックスファイルから生成し、MPDを再生デバイスに提供する。再生デバイスは、次いで、MPDを使用し、適応ビットレートストリーミングを実施し、ビデオコンテンツを取得する。
【0021】
本発明のいくつかの実施形態による、ビデオコンテンツを複数のエンコーダを使用して適応ビットレートストリーミングにおいて使用するための複数のストリームにエンコードすることと、適応ビットレートストリーミングを使用して、再生デバイスによって生成されたストリームからビデオコンテンツを取得するためのプロセスとは、さらに以下に議論される。
(適応ストリーミングシステムアーキテクチャ)
【0022】
ここで
図1を参照すると、本発明の実施形態による、複数のエンコーダを使用してストリームを生成するエンコーディングシステムを含む、適応ストリーミングシステムが、図示される。適応ストリーミングシステム10は、いくつかの代替ストリームとして、ビデオコンテンツを含むソースメディアコンテンツをエンコードするように構成される、ソースエンコーディングシステム12を含む。図示される実施形態では、ソースエンコーダは、単一サーバである。他の実施形態では、ソースエンコーダは、プロセッサと、ソースメディア(限定ではないが、ビデオ、オーディオ、および/または字幕を含む)の代替ストリームへのトランスコーディングを実施するための十分なリソースとを含む、任意の処理デバイスまたは処理デバイスのグループであることができる。典型的には、ソースエンコードサーバ12は、ストリームおよび/またはメタデータ情報を含有するコンテナファイルを示すインデックスを含むMPDを生成し、そのうちの少なくとも複数は、代替ストリームである。代替ストリームは、同一のメディアコンテンツを異なる方法でエンコードするストリームである。多くの事例では、代替ストリームは、異なる最大ビットレートでメディアコンテンツ(限定ではないが、ビデオコンテンツおよび/またはオーディオコンテンツ等)をエンコードする。いくつかの実施形態では、ビデオコンテンツの代替ストリームは、異なる解像度および/または異なるフレームレートでエンコードされる。しかしながら、ソースエンコーダシステム12は、複数のエンコーダを使用して、代替ストリームを生成し、各特定のエンコーダは、特定のエンコーダによって生成されたストリームまたは複数のストリームのセグメントのためのMPDを生成する。種々のエンコーダおよびコンテナファイルによって生成されたMPDは、HTTPサーバ14にアップロードされる。種々の再生デバイスは、次いで、HTTPまたは別の適切なステートレスプロトコルを使用して、インターネット等のネットワーク16を介して、MPD、インデックスファイル、およびコンテナファイルのポーションを要求することができる。
【0023】
図示される実施形態では、種々のエンコーダからのMPDを使用して適応ビットレートストリームを実施することができる再生デバイスは、パーソナルコンピュータ18、CEプレーヤ、および携帯電話20を含む。いくつかの他の実施形態によると、再生デバイスは、消費者電子機器デバイス、例えば、DVDプレーヤ、Blu−ray(登録商標)プレーヤ、テレビ、セットトップボックス、ビデオゲームコンソール、タブレット、仮想現実ヘッドセット、拡張現実ヘッドセット、およびHTTPを含む(限定ではないが)通信プロトコルを介して、サーバに接続し、エンコードされたメディアを再生可能である、他のデバイスを含むことができる。具体的アーキテクチャは、
図1に示されるが、適応ビットレートストリーミングではなく、従来のストリーミングを実施するシステムを含む、任意の種々のアーキテクチャのいずれかが、再生デバイスが、本発明の種々の実施形態に従って、MPDおよびコンテナファイルのポーションを要求することを可能にするように利用されることができる。
(エンコーダシステム)
【0024】
本発明のある実施形態による、複数のエンコーダを使用して、ビデオコンテンツを適応ビットレートストリーミングにおいて使用するための代替ストリームにエンコードする、エンコーダシステムが、
図2に示される。エンコーディングシステム200は、ルータ205と、ルータ205に通信可能に接続される、エンコーディングサーバ202とを含む。当業者は、任意の数のサーバまたはプロセッサが、本発明から逸脱することなく、ルータ205に接続されてもよく、1つのみのサーバが、明確および簡潔にするために示されることを認識するであろう。エンコーダは、複数のエンコーダ215−218を含む。いくつかの実施形態によると、エンコーダ215−218はそれぞれ、ソースコンテンツのデコードおよび/またはエンコードを実施するためにメモリ内に記憶される命令からプロセッサによって実行される、ソフトウェアのインスタンス化である。いくつかの他の実施形態によると、エンコーダ215−218のうちの1つ以上のものは、受信されたコンテンツをエンコードする、サーバ内の特定のハードウェアコンポーネントである。さらに他の実施形態では、エンコーダのうちの1つ以上のものは、ハードウェアおよびソフトウェアがエンコーダを提供するために使用される、ファームウェアコンポーネントであってもよい。ルータは、ビデオコンテンツの着信ソースストリームをサーバ210のエンコーダ215−218のそれぞれに提供する。いくつかの実施形態によると、ルータは、ストリームのコピーをエンコーダのそれぞれに伝送する。いくつかの他の実施形態によると、サーバ210は、ソースストリームを受信し、ソースストリームが受信されると、着信ソースストリームのコピーをエンコーダ215のそれぞれに提供する。ソースストリームは、内蔵タイミング情報を含む。
【0025】
サーバシステムの具体的アーキテクチャが
図2に示されるが、受信されたストリームからのビデオコンテンツをエンコードするシステムを含む、種々のアーキテクチャのうちの任意のものが、本発明の種々の実施形態に従って利用されることができる。
(再生デバイス)
【0026】
本発明のいくつかの実施形態による、複数のエンコーダによって生成された代替ストリームを使用するための方法およびシステムを提供する、プロセスは、再生デバイスによって実行される。本発明のある実施形態による、プロセスを実施することができる、再生デバイス内の関連コンポーネントは、
図3に示される。当業者は、再生デバイスが、本発明の説明される実施形態から逸脱することなく、簡潔にするために省略される他のコンポーネントを含んでもよいことを認識するであろう。再生デバイス300は、プロセッサ305と、不揮発性メモリ310と、揮発性メモリ315とを含む。プロセッサ305は、揮発性メモリ315または不揮発性メモリ310内に記憶される命令を実施し、メモリ内に記憶されるデータを操作する、プロセッサ、マイクロプロセッサ、コントローラ、またはプロセッサ、マイクロプロセッサ、および/またはコントローラの組み合わせである。不揮発性メモリ310は、本発明のいくつかの実施形態による、複数のエンコーダによってエンコードされた代替ストリームを使用し、適応ビットレートストリーミングを使用して、ビデオコンテンツを取得するためのプロセスを含む、プロセスを実施するように、再生デバイス300を構成するために利用されるプロセッサ命令を記憶することができる。種々の他の実施形態によると、再生デバイスは、命令を含み、および/またはこれらのプロセスを実施することができる、ハードウェアおよび/またはファームウェアを有してもよい。さらに他の実施形態によると、プロセスのための命令は、具体的用途に適切な種々の非一過性コンピュータ可読媒体のいずれか内に記憶されることができる。
(サーバ)
【0027】
本発明のある実施形態による、複数のエンコーダを使用して、ビデオコンテンツを適応ビットレートストリーミングのためのストリームにエンコードする方法およびシステムにおけるプロセスは、エンコーディングサーバ等のエンコーダによって実施される。本発明のある実施形態によるこれらのプロセスを実施する、エンコーディングサーバ内の関連コンポーネントは、
図4に示される。当業者は、サーバが、本発明の説明される実施形態から逸脱することなく、簡潔にするために省略される他のコンポーネントを含んでもよいことを認識するであろう。サーバ400は、プロセッサ405と、不揮発性メモリ410と、揮発性メモリ415とを含む。プロセッサ405は、揮発性メモリ415または不揮発性メモリ410内に記憶され、メモリ内に記憶されるデータを操作するための命令を実施する、プロセッサ、マイクロプロセッサ、コントローラ、またはプロセッサ、マイクロプロセッサ、および/またはコントローラの組み合わせである。不揮発性メモリ410は、本発明のいくつかの実施形態による、メディアコンテンツをエンコードし、および/またはマーカ情報を生成するためのプロセスを含む、プロセスを実施するようにサーバ400を構成するために利用されるプロセッサ命令および/または利用されるプロセスのためのデータを記憶することができる。種々の実施形態によると、これらの命令は、サーバソフトウェア内にあってもよく、および/またはファームウェアは、具体的用途に適切な種々の非一過性コンピュータ可読媒体のいずれか内に記憶されることができる。具体的サーバが、
図4に図示されるが、任意の数のプロセスを実施するように構成される、種々のサーバのいずれも、本発明の種々の実施形態に従って利用されることができる。
(エンコーディングシステム内の複数のエンコーダを使用した適応ビットレートストリーミングのための代替ストリームへのビデオコンテンツのエンコーディング)
【0028】
いくつかの実施形態によると、エンコーディングシステムは、複数のエンコーダを使用して、ビデオコンテンツを適応ビットレートストリーミングのための代替ストリームにエンコードする。本発明のいくつかの実施形態によると、エンコーダは、ソフトウェア命令のインスタンス化である、ソフトウェアエンコーダであって、プロセッサによって実施または実行される、メモリから読み取られる。ソフトウェアエンコーダは、処理およびメモリリソースのみが付加的エンコーダをシステムに追加することが必要とされるため、エンコーダのコストを低減させる、および/またはシステムのスケーラビリティを改良することが望ましいときに使用されてもよい。多くの実施形態によると、複数のエンコーダのうちの1つ以上のものは、ハードウェアエンコーダである。ハードウェアエンコーダは、受信されたコンテンツを1つ以上のストリームにエンコードするためのプロセスを実施するように構成される、回路である。いくつかの実施形態によると、エンコーダのうちの1つ以上のものは、ファームウェアエンコーダであってもよい。ファームウェアエンコーダは、いくつかのハードウェアコンポーネントおよびいくつかのソフトウェアプロセスを組み合わせ、エンコーダを提供する。
【0029】
ビデオコンテンツは、ソースストリームとしてコンテンツプロバイダから受信されてもよい。いくつかの実施形態によると、ビデオコンテンツは、ライブブロードキャストであって、ビデオコンテンツがリアルタイムで捕捉およびストリーミングされることを意味する。ビデオコンテンツは、時間情報を含んでもよい。時間情報は、限定ではないが、ブロードキャスト時間、提示時間、および/または時間記録を含んでもよい。エンコーダはそれぞれ、ビデオコンテンツのソースストリームを受信し、代替ストリームのポーションを生成する。いくつかの実施形態によると、複数のエンコーダはそれぞれ、エンコーダ特有パラメータを有する単一ストリームをソースストリームから生産する。いくつかの他の実施形態によると、エンコーディングシステムは、いくつかのエンコーダ(N)を含み、各エンコーダは、エンコーディングパラメータの異なるセットを使用して、ソースストリームのポーション(例えば、1/N)を複数回エンコードし、ストリームの適応セット内のストリームの各々に対し、セグメントを作成する。本発明のいくつかの異なる実施形態による、複数のエンコーダを使用して、ビデオコンテンツの代替ストリームをビデオコンテンツのソースストリームからエンコードするためのプロセスは、
図5および6に示される。
【0030】
本発明のある実施形態による、複数のエンコーダのセットのうちの少なくとも1つによって実施され、代替ストリームの単一ストリームをビデオコンテンツのソースストリームから生成するためのプロセスのフローチャートが、
図5に示される。プロセス500では、エンコーダは、タイミング情報を含む、ビデオコンテンツのソースストリームのポーションを受信する(505)。いくつかの実施形態によると、エンコーダは、エンコーダがストリームのエンコーディングを開始すべきストリーム内の点を決定するためのポーションとともに受信された時間情報を使用してもよい。エンコーダが、同一タイミング情報を使用しているため、エンコーダによって実施されるエンコーディングは、各エンコーダによって生産されたセグメントが提示時間の観点から提示するための同一持続時間のビデオコンテンツを含み、セグメントが整合されるように、同期される。エンコーダは、ビデオコンテンツのソースストリームのポーションを使用し、エンコーダに特定の規定されたパラメータを有する、ビデオコンテンツのストリームのセグメントをエンコードする(510)。いくつかの実施形態によると、各エンコーダによって生成されたストリームの規定されたパラメータは、異なる最大ビットレートを含む。
【0031】
いくつかの他の実施形態によると、2つ以上のエンコーダからのストリームは、同一最大ビットレートと、異なる縦横比、分解能、および/またはフレームレートとを有する。エンコーダはまた、生成されたセグメントに関するインデックスまたはマニフェスト情報を生成する(515)。生成されたセグメントは、エンコーダによって生成されているストリームのコンテナ内に記憶され(520)、インデックスまたはマニフェスト情報は、メモリ内に記憶され、および/またはクライアント再生デバイスに更新として送達されるストリームに関するマニフェストまたはインデックスファイルに追加される(525)。プロセス500は、エンコーダがストリームの終了を受信するまで繰り返し、および/またはストリームの受信は、ある他の様式で停止される(530)。
【0032】
ビデオコンテンツの代替ストリームのセットのうちの1つをエンコードするためにエンコーダによって実施されるプロセスの種々の実施例は、上記に説明されるが、当業者は、ストリームをエンコードするための他のプロセスも本発明のいくつかの実施形態に従って実施されてもよいことを認識するであろう。
【0033】
本発明のある他の実施形態によると、エンコーディングシステムは、いくつかのエンコーダ(N)を含み、各エンコーダは、エンコーディングパラメータの異なるセットを使用して、ソースストリームのポーション(例えば、1/N)を複数回エンコードし、ストリームの適応セット内のストリームの各々に対し、セグメントを作成する。各エンコーダは、エンコーダ順序位置Mを割り当てられ、Mは、1とMとの間の数である。第1のエンコーダは、ソースストリームの第1のポーションおよびその後受信されたすべてのN番目のポーションを代替ストリームのそれぞれのセグメントにエンコードする。第2のエンコーダは、ソースストリームの第2の受信されたポーションおよびその後受信されたすべてのN番目のポーションを代替ストリームのそれぞれのセグメントにハンドリングする。同様に、エンコーディング順序1からNにおける残りのエンコーダは、その後受信されたすべてのN番目のポーションのM番目の受信されたポーションを種々の代替ストリームのセグメントにエンコードし、Mは、エンコーディング順序位置である。したがって、各エンコーダは、ソースストリームのセグメントの総数の1/Nのみを代替ストリームにエンコードする。本タイプのエンコーディングは、セグメントの可用性をN
*|セグメント持続時間|にさせ、リアルタイムではない。したがって、セグメントの可用性時間は、マニフェスト内の情報に追加され、クライアントがセグメントが利用可能となるであろうときを把握することを可能にする必要があり得る。本発明のある実施形態による、N個のエンコーダのそれぞれによって実施され、ビデオコンテンツのすべてのN番目のセグメントをソースストリームから生成するためのプロセスのフロー図は、
図6に示される。
【0034】
プロセス600では、エンコーダは、タイミング情報を含むビデオコンテンツのソースストリームのポーションを受信する(605)。いくつかの実施形態によると、エンコーダは、エンコーダがストリームのエンコーディングを開始すべきストリーム内の点を決定するために、ポーションとともに受信された時間情報を使用してもよい。エンコーダは、ソースストリームからの同一タイミング情報を使用しているため、エンコーダによって実施されるエンコーディングは、各エンコーダによって生産されたセグメントが提示時間の観点から提示するための同一量のビデオコンテンツを含み、セグメントが後続セグメントと整合されるように同期される。
【0035】
エンコーダは、次いで、受信されたポーションがハンドリングするためのソースストリームのN番目のポーションのうちの1つであるかどうかを決定する(610)。決定は、いくつかの実施形態によると、カウンタを使用して、受信されたポーションをカウントし、現在のカウントとMを比較し、カウントがM(Mは、エンコーダ位置順序である)と等しいまたはその倍数であるかどうかを決定することによって、実施されてもよい。いくつかの他の実施形態によると、ソースストリームの受信されたポーションのためのメタデータが、決定を行うために使用される。
【0036】
受信されたポーションが、エンコーダがハンドリングすべきポーションのうちの1つではない場合、エンコーダは、ストリームの受信されたポーションを破棄する(615)。受信されたポーションが、エンコーダがエンコードすべき着信ストリームのポーションのうちの1つであると決定された場合、エンコーダは、代替ストリームのそれぞれに対する具体的パラメータに基づいて、代替ストリームのそれぞれに対し、セグメント内のポーションをエンコードする(620)。ストリームのパラメータとして、限定ではないが、最大ビットレート、分解能、縦横比、およびフレームレートが挙げられる。
【0037】
エンコーダはまた、生成されたセグメントのそれぞれに対し、インデックスまたはマニフェスト情報を生成する(625)。これは、代替ストリームのそれぞれに対し、マニフェスト情報を生成することを含む。生成されたセグメントはそれぞれ、適切な代替ストリームのコンテナ内に記憶され(630)、インデックスまたはマニフェスト情報は、適切なマニフェストまたはインデックスファイルに追加される(635)。いくつかの実施形態によると、マニフェストまたはインデックス情報は、メモリ内に記憶される代替ストリームのためのMPDに追加される。いくつかの他の実施形態によると、マニフェストまたはインデックス情報は、エンコーダによってエンコードされたセグメントのためのMPDに追加される。さらに他の実施形態では、マニフェストまたはインデックス情報は、クライアント再生デバイスに更新として送達される。プロセス600は、エンコーダがストリームの終了を受信するまで繰り返し、および/またはストリームの受信は、ある他の様式で停止される(640)。
【0038】
エンコーダによって実施され、ビデオコンテンツの代替ストリームのそれぞれに対し、すべてのN番目のセグメントをエンコードするためのプロセスの種々の実施例は、上記に説明されるが、当業者は、ストリームのためのポーションをエンコードするための他のプロセスが本発明のいくつかの実施形態に従って実施されてもよいことを認識するであろう。
(再生デバイスによって実施され、複数のエンコーダによって生成された代替ストリームを使用してビデオコンテンツを取得するためのプロセス)
【0039】
本発明のいくつかの実施形態によると、再生デバイスは、複数のエンコーダによって生成されたストリームを使用して、再生のためのビデオコンテンツを取得する。本発明のいくつかの実施形態によると、再生デバイスは、適応ビットレートストリーミングを実施し、複数のエンコーダを使用して生成された代替ストリームからメディアコンテンツを取得する。そのために、再生デバイスは、エンコーダのそれぞれによって生成されたMPDを受信し、適応ビットレートストリーミングを使用してセグメントを取得する際に使用するための組み合わされた適応セットを生成しなければならない。いくつかの実施形態によると、組み合わされた適応セットは、エンコーダのそれぞれによって生成されたMPD内に内蔵されたタイムスタンプに基づいて生成される。本発明のある実施形態による、再生デバイスによって実施され、適応ビットレートストリーミングを実施するためのプロセスは、
図7に示される。
【0040】
プロセス700では、再生デバイスは、ビデオコンテンツのためのインデックスまたはマニフェスト情報を要求する(705)。再生デバイスは、エンコーダが代替ストリームのセグメントを生成すると、各エンコーダによって生成されたMPDまたはインデックスファイルを受信する(710)。再生デバイスは、MPDのそれぞれ内の内蔵タイムスタンプを使用して、組み合わされた適応セットをエンコーダからのMPD内のインデックスまたはマニフェスト情報から生成する(715)。いくつかの実施形態によると、生成された組み合わされた適応セットは、MPDと同一フォーマットを有し、組み合わされた適応セットに受信されたMPDからのインデックスまたはマニフェスト情報を取り込むことによって生成される。組み合わされた適応セットは、再生デバイスによって使用され、適応ビットレートストリーミングを実施し、再生のためのビデオコンテンツを取得する(720)。いくつかの実施形態によると、再生デバイスは、組み合わされた適応セットを使用して、ビデオコンテンツのポーションを要求する。本発明のいくつかの実施形態によると、再生デバイスは、再生デバイスとコンテンツプロバイダシステムとの間のネットワークを経由した通信のためのネットワーク帯域幅を監視し、測定された帯域幅に従ってハンドリングされ得る最高の最大ビットレートでエンコードされたオーディオおよび/またはビデオコンテンツのストリームを選択する。ストリームを選択し、再生を開始するためのシステムおよび方法は、「Systems and Methods for Determining Available Bandwidth and Performing Initial Stream Selection When Commencing Streaming Using Hypertext Transfer Protocol」と題された米国特許出願公開第2013/0007200号および「Systems and Methods for Performing Multiphase Adaptive Bitrate Streaming」と題された米国特許第8,832,297号(本開示は、参照することによってその全体として本明細書に組み込まれる)に開示されるものを含む。より具体的には、これらの参考文献に説明される再生デバイスによって実施され、適応ビットレートストリーミングを使用して、ビデオコンテンツを取得するためのプロセスは、参照することによって本明細書に組み込まれる。
【0041】
本発明のある実施形態による、再生デバイスによって実施され、複数のエンコーダによって生成された代替ストリームを使用して、適応ビットレートストリーミングを実施する、ビデオコンテンツを取得するためのプロセスは、
図7に開示されるが、他のプロセスも、本発明の実施形態に従って、複数のエンコーダによって生成された代替ストリームを使用してビデオコンテンツを取得するために再生デバイスによって実施されてもよい。
【0042】
本発明は、ある具体的側面において説明されたが、多くの付加的修正および変形例が、当業者に明白となるであろう。具体的には、本発明は、トリックプレイトラックのあるフレームのみが本発明のいくつかの実施形態に従って示される、トリックプレイトラックと関連付けて使用されてもよい。したがって、本発明は、本発明の範囲および精神から逸脱することなく、それらが準拠する特定の規格内に規定されるもの以外の特徴をサポートする、エンコーダおよびデコーダの利用等、実装の種々の変更を含め、具体的に説明される以外にも実践されてもよいことを理解されたい。したがって、本発明の実施形態は、あらゆる点において、制限的ではなく、例証的と見なされるべきである。