(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-14
(45)【発行日】2023-07-25
(54)【発明の名称】ビデオに関するプロファイルラダーの適応トランスコーディング
(51)【国際特許分類】
H04N 21/84 20110101AFI20230718BHJP
【FI】
H04N21/84
【外国語出願】
(21)【出願番号】P 2021177581
(22)【出願日】2021-10-29
【審査請求日】2021-11-26
(32)【優先日】2020-10-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100219542
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】チェン・リュー
(72)【発明者】
【氏名】ウェンハオ・ジャン
(72)【発明者】
【氏名】シーチャン・フアンフー
(72)【発明者】
【氏名】シャオボー・リュー
(72)【発明者】
【氏名】ダーリャン・フー
(72)【発明者】
【氏名】ラン・シエ
(72)【発明者】
【氏名】ルイ・ジャン
(72)【発明者】
【氏名】シュワイ・ロウ
(72)【発明者】
【氏名】チャオ・ジャン
【審査官】大西 宏
(56)【参考文献】
【文献】米国特許出願公開第2018/0160161(US,A1)
【文献】米国特許出願公開第2018/0240502(US,A1)
【文献】米国特許出願公開第2020/0221141(US,A1)
【文献】米国特許出願公開第2020/0236372(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
(57)【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって、ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する
表現を生成することと、
前記コンピューティングデバイスによって、前記
表現上の候補トランスコーディングポイントを選択することと、
前記コンピューティングデバイスによって、前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、
前記コンピューティングデバイスによって、前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関する前記品質測定値または前記ビットレートの値を生成するために、前記複数の候補プロファイルラダーの前記プロファイルの別々の組合せにおけるプロファイルを分析することと、
前記コンピューティングデバイスによって、
前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関連付けられている前記値に基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記コンピューティングデバイスによって、前記ビデオに関して前記プロファイルラダーを使用することと
を備える方法。
【請求項2】
前記ビデオに関して前記プロファイルラダーを使用することが、
前記プロファイルラダーにおけるプロファイルに基づいて前記ビデオを複数のビデオストリームへとトランスコードすることを備える、請求項1に記載の方法。
【請求項3】
前記ビデオを前記複数のビデオストリームへとトランスコードすることが、
それぞれのプロファイルに関連付けられている前記ビットレートおよび前記品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える、請求項2に記載の方法。
【請求項4】
前記ビデオに関して前記プロファイルラダーを使用することが、
前記選択されたプロファイルラダーの前記プロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える、請求項1に記載の方法。
【請求項5】
前記選択されたプロファイルラダーの前記プロファイルに基づいて前記標準的なプロファイルラダーからプロファイルを選択することが、
前記選択されたプロファイルラダーにおけるプロファイルに最も近い前記ビットレートおよび前記品質測定値のうちの少なくとも一方を有するプロファイルを前記標準的なプロファイルから選択することを備える、請求項4に記載の方法。
【請求項6】
前記ビデオに関する前記
表現を生成することが、
前記品質測定値に対する前記ビットレートの前記関係を表す曲線を生成することを備える、請求項1に記載の方法。
【請求項7】
前記候補トランスコーディングポイントを選択することが、
最後のポイントと比べてさらに高い品質を現在のポイントが含む場合に前記
表現上のポイントを選択することを備える、請求項1に記載の方法。
【請求項8】
前記最後のポイントと比べて前記さらに高い品質を前記ポイントが含む場合に前記
表現上のポイントを選択することが、
前記最後のポイントと前記現在のポイントとの間の品質における変化にしきい値を適用することと、
品質における前記変化が前記しきい値を満たす場合に前記現在のポイントを前記候補トランスコーディングポイントに加えることとを備える、請求項7に記載の方法。
【請求項9】
前記最後のポイントと比べて前記さらに高い品質を前記ポイントが含む場合に前記
表現上のポイントを選択することが、
前記
表現上の下限を決定することと、
前記
表現上の上限を決定することと、
前記下限および前記上限に基づいて前記
表現上のポイントを選択することとを備える、請求項7に記載の方法。
【請求項10】
前記下限を選択すること、または前記上限を選択することが、
前記下限または前記上限を決定するために、再生されたビットレートの確率分布を使用することを備える、請求項9に記載の方法。
【請求項11】
前記候補トランスコーディングポイントに基づいて前記複数の候補プロファイルラダーを生成することが、
前記複数の候補プロファイルラダーを形成するために前記候補トランスコーディングポイントから複数の組合せを生成することを備える、請求項1に記載の方法。
【請求項12】
前記複数の候補プロファイルラダーから前記プロファイルラダーを選択することが、
前記複数の候補プロファイルラダーから現在のプロファイルラダーにおけるプロファイルに関するビットレートに基づくビットレート
表現を計算することと、
ここにおいて、前記現在のプロファイルラダーにおける前記値は前記ビットレート表現に基づく、
前記現在のプロファイルラダーを選択するかどうかを前記ビットレート
表現に基づいて決定することとを備える、請求項1に記載の方法。
【請求項13】
前記ビットレート
表現が、前記現在のプロファイルラダーの前記プロファイルに関連付けられているビットレートと
、それぞれの
前記プロファイルの再生の確率とに基づく重み付けされたビットレートを備える、請求項12に記載の方法。
【請求項14】
前記複数の候補プロファイルラダーから前記プロファイルラダーを選択することが、
前記複数の候補プロファイルラダーにおける現在のプロファイルラダーに関する品質測定値
表現を計算することと、ここにおいて、前記品質測定値
表現が、現在のプロファイルラダーにおけるプロファイルに関する品質測定値に基づく、
および、ここにおいて、前記現在のプロファイルラダーにおける前記値は前記品質測定値表現に基づく、
前記現在のプロファイルラダーを選択するかどうかを前記品質
測定値表現に基づいて決定することとを備える、請求項1に記載の方法。
【請求項15】
前記品質測定値
表現が、前記現在のプロファイルラダーの前記プロファイルに関連付けられている品質測定値と、
前記現在のプロファイルラダーのそれぞれのプロファイルの再生の確率とに基づく重み付けされた品質測定値
表現を備える、請求項14に記載の方法。
【請求項16】
命令を含む非一時的コンピュータ可読ストレージメディアであって、前記命令が、実行されたときに、
ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する
表現を生成することと、
前記
表現上の候補トランスコーディングポイントを選択することと、
前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、
前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関する前記品質測定値または前記ビットレートの値を生成するために、前記複数の候補プロファイルラダーの前記プロファイルの別々の組合せにおけるプロファイルを分析することと、
前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関連付けられている前記値に基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記ビデオに関して前記プロファイルラダーを使用することとを行うように動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読ストレージメディア。
【請求項17】
前記ビデオに関して前記プロファイルラダーを使用することが、
前記プロファイルラダーにおけるプロファイルに基づいて前記ビデオを複数のビデオストリームへとトランスコードすることを備える、請求項16に記載の非一時的コンピュータ可読ストレージメディア。
【請求項18】
前記ビデオを前記複数のビデオストリームへとトランスコードすることが、
それぞれのプロファイルに関連付けられている前記ビットレートおよび前記品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える、請求項17に記載の非一時的コンピュータ可読ストレージメディア。
【請求項19】
前記ビデオに関して前記プロファイルラダーを使用することが、
前記選択されたプロファイルラダーの前記プロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える、請求項16に記載の非一時的コンピュータ可読ストレージメディア。
【請求項20】
1つまたは複数のコンピュータプロセッサと、
命令を備える非一時的コンピュータ可読ストレージメディアと
を備える装置であって、前記命令が、実行されたときに、
ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する
表現を生成することと、
前記
表現上の候補トランスコーディングポイントを選択することと、
前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、
前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関する前記品質測定値または前記ビットレートの値を生成するために、前記複数の候補プロファイルラダーの前記プロファイルの別々の組合せにおけるプロファイルを分析することと、
前記複数の候補プロファイルラダーにおけるそれぞれの候補プロファイルラダーに関連付けられている前記値に基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記ビデオに関して前記プロファイルラダーを使用することとを行うように動作可能であるように前記1つまたは複数のコンピュータプロセッサを制御する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
【背景技術】
【0002】
[0001]プロファイルラダーは、クライアントがビデオのセグメントをストリーミングする際に使用する上で利用可能であるさまざまなプロファイルを一覧表示する。それぞれのプロファイルは、別々のレベルのビットレートおよび/または品質など、別々のレベルのビデオ属性に関連付けられ得る。ビデオ配信システムは、良好なネットワーク状況が経験されている場合には、より高いビットレートを有するビデオプロファイルをクライアントに提供したいと望み、これは、ストリーミングされているビデオの品質を改善する。劣悪なネットワーク状況が経験されている場合には、ビデオ配信システムは、より低いビットレートを有するプロファイルをクライアントに提供したいと望み、それによってクライアントは、再バッファリングまたはダウンロードの失敗など、いかなる再生の問題も伴わずにビデオを再生することができる。したがって、ネットワーク状況が良好である場合には、品質を改善するために、利用可能なビットレートでクライアントが要求できるプロファイルを有することが望ましい。逆に、ネットワーク状況が悪化している場合には、再生の問題が生じないように、より低いビットレートでのプロファイルを有することが重要である。
【0003】
[0002]企業は、すべてのビデオに関して静的なプロファイルラダーを使用し得る。これは、トランスコーディングプロセスを簡略化し得る。しかしながら、すべてのビデオに関して同じプロファイルラダーを使用することは、最適な再生状況を提供しない場合がある。なぜならビデオどうしは、別々の特性を含む場合があり、それらの別々の特性は、別々のトランスコーディング結果をもたらす場合があるからである。またクライアントどうしは、別々の再生状況を経験する場合があり、これは、どのプロファイルをクライアントが選択するかに影響を与える。したがって、静的なプロファイルラダーは、ビデオに関する再生経験を最適化しない場合がある。
【発明の概要】
【0004】
[0003]後続する考察に、特に図面に関して、示されている詳細は、例示的な考察という目的のための例を表しており、本開示の原理および概念的な側面の記述を提供するために提示されているということが強調される。この点については、本開示の基本的な理解にとって必要とされるものを超えて実施の詳細を示すための試みは行われていない。後続する考察は、図面と併せて、どのようにして本開示による実施形態が実施され得るかを当業者に対して明らかにする。さまざまな図面およびサポートする記述における同様のまたは同じ要素どうしを識別するかまたはそれらにその他の形で言及するために、同様のまたは同じ参照番号が使用され得る。添付の図面においては、下記のとおりである。
【図面の簡単な説明】
【0005】
【
図1】[0004]いくつかの実施形態による、適応プロファイルラダーを生成するための簡略化されたシステムを示す図。
【
図2】[0005]いくつかの実施形態による、適応プロファイルラダージェネレータのさらに詳細な例を示す図。
【
図3】[0006]いくつかの実施形態による、トランスコーディングプロセス中に適応プロファイルラダーを使用することの例を示す図。
【
図4】[0007]いくつかの実施形態による、トランスコーディング後のビデオに関するビデオストリームを生成することの例を示す図。
【
図5】[0008]いくつかの実施形態による、適応プロファイルラダーを生成するための方法の簡略化されたフローチャート。
【
図6】[0009]いくつかの実施形態による、レート歪み曲線の例を示す図。
【
図7】[0010]いくつかの実施形態による、候補トランスコーディングポイントを決定することの例を示す図。
【
図8】[0011]いくつかの実施形態による、帯域幅分布のグラフの例を示す図。
【
図9】[0012]いくつかの実施形態による、候補トランスコーディングポイントを選択するための方法の簡略化されたフローチャート。
【
図10】[0013]いくつかの実施形態による、最適なプロファイルラダーを選択するための方法の簡略化されたフローチャート。
【
図11】[0014]いくつかの実施形態による、重み付けされた品質を決定するためのグラフの例を示す図。
【
図12】[0015]いくつかの実施形態による、帯域幅分布上のプロファイルラダーのそれぞれのプロファイルのビットレートを示す図。
【
図13】[0016]いくつかの実施形態による、C2のビットレートとC3のビットレートとの間におけるプロファイルの使用可能範囲の例を示す図。
【
図14】[0017]一実施形態による、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステムを示す図。
【
図15】[0018]ビデオコンテンツおよび広告を見るための装置の線図。
【発明を実施するための形態】
【0006】
[0019]本明細書において記述されているのは、ビデオストリーミングシステムのための技術である。以降の記述においては、説明の目的から、いくつかの実施形態の徹底的な理解を提供するために、多くの例および特定の詳細が示されている。特許請求の範囲によって定義されているいくつかの実施形態は、これらの例における特徴のうちのいくつかまたはすべてを単独で、または以降で記述されているその他の特徴と組み合わせて含むことが可能であり、本明細書において記述されている特徴および概念の修正および均等物をさらに含み得る。
【0007】
[0020]ビデオ配信システムが、ビデオに関する適応プロファイルラダーを生成し得る。いくつかの実施形態においては、適応プロファイルラダーは、それぞれのビデオのコンテンツの分析および/または再生履歴情報の分析など、特性に基づいて特定のビデオ(またはビデオのグループ)に関して生成され得る。ビデオ配信システムは、ビットレートおよび/または品質など、再生特性のさまざまな組合せに関するプロファイルを含み得る適応プロファイルラダーを出力し得る。次いで適応プロファイルラダーは、ビデオに関するトランスコーディングプロセスにおいて使用され得る。たとえば、トランスコーダが、適応プロファイルラダーにおいて見受けられるプロファイルに基づいてビデオをトランスコードするために適応プロファイルラダーを使用し得る。いくつかの例においては、トランスコーダは、ビデオストリームをトランスコードするために、それぞれのプロファイルの特性(たとえば、ビットレートおよび品質)を使用する。適応プロファイルラダーを使用することは、別々のビデオに関して別々のプロファイルを生成し得る。それぞれのビデオに関するそれぞれのプロファイルは、それぞれの各ビデオの再生のために最適化され得る。その他の実施形態においては、トランスコーダが、プロファイルの標準的な固定されたセットに関して複数のビデオストリームを生成し得る。次いで適応プロファイルラダーは、ビデオに関するプロファイルのうちのいくつかを選択するために使用される。いずれのケースにおいても、適応プロファイルラダーは、ビデオのコンテンツおよび/または再生履歴情報に基づいて、それぞれのビデオに関して最適化され得る。
【0008】
[0021]適応プロファイルラダーは、再生経験を最適化し得るプロファイルを使用し得る。たとえば、作成されるプロファイルは、クライアントデバイスにおける再バッファリングの量を低減すること、そしてまた、良好なネットワーク状況中にクライアントデバイスへストリーミングされているビデオのビットレートおよび/または品質を最適化するプロファイルを提供することが可能である。プロファイルラダーにおいて使用されるプロファイルは、より低い帯域幅を有するネットワーク状況が経験されている場合にそれらのプロファイルをクライアントデバイスが選択することを可能にするほど十分に低いビットレートを含み得るので、再バッファリングが低減される。より高い帯域幅を有するネットワーク状況が経験されている場合には、プロファイルラダーにおけるプロファイルは、利用可能な帯域幅に一致するさらに高いビットレートおよび/または品質レベルを有するプロファイルをクライアントデバイスが選択することを可能にする。
【0009】
[0022]システムの概観
[0023]
図1は、いくつかの実施形態による、適応プロファイルラダーを生成するための簡略化されたシステム100を示している。システム100は、ビデオ配信システム102、クライアント104、およびコンテンツ配信ネットワーク106を含む。ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104は、1つまたは複数のコンピューティングデバイスを使用して実装され得る。また、ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104の単一の例が示されているが、システム100は、複数のビデオ配信システム102、コンテンツ配信ネットワーク106、および/またはクライアント104を含み得るということが理解されるであろう。たとえば、ビデオ配信システム102は、複数のクライアント104と通信することが可能であり、コンテンツ配信ネットワーク106は、複数のサーバを介してクライアント104へビデオを送り得る、といった具合である。また、ビデオ配信システム102、コンテンツ配信ネットワーク106、およびクライアント104は、別々のエンティティとして示されているが、それらによって実行される機能は、それらの間において、またはその他のエンティティへ分散され得る。
【0010】
[0024]ビデオ配信システム102は、ビデオオンデマンドまたはテレビの生放送からのライブビデオなどのビデオをクライアント104が要求することを可能にするビデオ配信サービスを提供し得る。ビデオ配信システム102は、クライアント104におけるインターフェース112において表示されるアプリケーションを提供し得る。ユーザアカウントが、ビデオ配信サービスにアクセスするためにアプリケーションにログオンし得る。次いでビデオ配信システム102は、クライアント104からビデオ要求を受信し、そのビデオ要求を処理して、クライアント104がビデオをストリーミングすることを可能にし得る。
【0011】
[0025]クライアント104は、メディアプレーヤ(図示せず)を介してなど、インターフェース112においてビデオを再生できるコンピューティングデバイスを含み得る。クライアント104は、モバイル電話、スマートフォン、セットトップボックス、テレビ、リビングルームデバイス、タブレットデバイスなどを含み得る。クライアント104は、プラットフォーム上で動作することが可能であり、プラットフォームは、そのプラットフォーム上で動作するデバイスのタイプによって分類され得る。たとえば、プラットフォームは、モバイルデバイスプラットフォーム、リビングルームデバイスプラットフォームなどを含む。ユーザによって使用されるユーザアカウントが、ビデオ配信サービスにアクセスするためにクライアント104を使用し得る。たとえば、ユーザアカウントは、ユーザアカウントに関する情報を識別するためにビデオ配信サービスにログインし得る。クライアント104が、ビデオを求める要求をユーザアカウントから受信した場合には、クライアント104は、そのビデオを求めてビデオ配信システム102へビデオ要求を送り得る。
【0012】
[0026]コンテンツ配信ネットワーク106は、クライアント104へビデオを配信できるサーバを含む。たとえば、コンテンツ配信サーバシステム116が、クライアント104へビデオを配信できる1つまたは複数のサーバを含み得る。いくつかの実施形態においては、コンテンツ配信サーバシステム116は、クライアント104へビデオのセグメントを配信する。それらのセグメントは、ビデオのうちの6秒間など、ビデオの一部分であり得る。知られているように、ビデオは、別々のレベルに対応する複数のプロファイルで符号化されることが可能であり、それらの別々のレベルは、ビットレートおよび/または品質の別々のレベルであり得る。クライアント104は、現在の再生状況に基づいてプロファイルレベルのうちの1つからビデオのセグメントを要求し得る。たとえば、クライアント104は、現在の利用可能な帯域幅およびその他のネットワーク状況に基づいてビデオに関するプロファイルを選択するために適応ビットレートアルゴリズムを使用し得る。
【0013】
[0027]ビデオの再生を開始するためのプロセスにおいて、ビデオ配信システム102は、ビデオを求める要求をクライアント104から受信し得る。ビデオ配信システム102は、コンテンツ配信ネットワーク106を選択し、コンテンツ配信ネットワーク106および/またはクライアント104に情報を提供して、コンテンツ配信ネットワーク106とクライアント104との間においてビデオがストリーミングされることを可能にし得る。ビデオ配信システム102はまた、再生構成およびメディア提示の記述など、さまざまな情報を提供し得る。再生構成は、ストリーミングなどのための利用可能なプロトコルを含み得る。メディア提示の記述は、利用可能であるプロファイル、セグメント持続時間、およびビデオのその他の特性についての情報を含み得る。
【0014】
[0028]コンテンツ配信ネットワーク106は、ビデオ要求と、ビデオに関する適応プロファイルラダーを反映するプロファイルラダーとを受信し得る。マニフェストジェネレータ114は、クライアント104に関するマニフェストを生成し得る。マニフェストは、クライアント104によって要求されることが可能であるビデオのセグメントに関する情報と、ビデオのセグメントを再生するために必要とされるその他の任意の情報とを列挙し得る。それらの情報は、クライアント104が再生のためのセグメントを要求するために使用し得るリンクを含み得る。いくつかの実施形態においては、マニフェストは、セグメントごとのそれぞれのプロファイルに関するリンクを含むなど、マニフェストは、それぞれのセグメントに関してすべての利用可能なプロファイルを列挙する。クライアント104は、セグメントの再生を要求するためにリンクのうちの1つを選択することができる。
【0015】
[0029]クライアント104がマニフェストを受信した場合には、クライアント104は、プロファイルに関連付けられているセグメントを求める要求を送ることができる。たとえば、クライアント104は、所望のビットレートに関連付けられているセグメントに関するリンクを選択し得る。コンテンツ配信サーバシステム116は次いで、要求されているプロファイルに関するビデオのセグメントをクライアント104へ送ることが可能であり、クライアント104は次いで、インターフェース112上のメディアプレーヤにおいてセグメントを表示することができる。クライアント104は、現在のネットワーク状況に基づいて、セグメントに関して要求されるプロファイルを変更し得る。
【0016】
[0030]セッション中にネットワーク状況が変化する場合があり得る。変化するネットワーク状況に適応するために、適応ビットレート(ABR)アルゴリズム110が、クライアント104において経験されている現在のネットワーク状況(たとえば、利用可能な帯域幅)を分析し、新たなプロファイルラダーが要求されるべきであるかどうかを決定し得る。たとえば、適応ビットレートアルゴリズム110は、利用可能な帯域幅が増加した場合には、より高いビットレートを有するプロファイルを要求することが可能であり、利用可能な帯域幅が減少した場合には、より低いビットレートを有するプロファイルを要求し得る。
【0017】
[0031]適応プロファイルラダージェネレータ108は、ビデオに関するプロファイルラダー用のプロファイルを適応的に生成する。たとえば、適応プロファイルラダージェネレータ108は、ビデオのコンテンツおよび/または再生履歴情報の特性を分析して、ビデオに関するプロファイルラダーを適応的に生成し得る。適応的な生成は、ビデオのコンテンツおよび/または再生履歴情報の別々の特性に関して別々のプロファイルラダーを生成することが可能であり、その結果、別々のビデオに関して別々のプロファイルラダーが生じ得る。
【0018】
[0032]プロファイルラダーは、ビデオに関して使用されることが可能であるプロファイルを含む。プロファイルは、ビットレートおよび/または品質特性などの特性に関連付けられているさまざまなレベルを含む。ビットレートは、送られることが可能である1秒あたりのビットの数であり得、品質特性は、ビデオの品質を測定し得る。より高い解像度は、より高い品質に関連付けられているなど、ビデオの解像度は、品質特性に関連し得る。ビデオが、400キロバイト/秒(Kbps)および270pの解像度でトランスコードされ得るなど、プロファイルラダーにおけるプロファイルのレベルは、そのレベルに関してどのようにビデオがトランスコードされるかに基づいて決定され得る。270pの解像度は、ビデオの解像において使用されるピクセルの数を表し得る。
【0019】
[0033]適応プロファイルラダージェネレータ108は、適応プロファイルラダーを出力し、適応プロファイルラダーは、ビデオに関するビデオストリームを選択するために使用されることが可能である。たとえば、適応プロファイルラダーは、ビデオをそれぞれのビデオストリームへとトランスコードするために使用され得る。トランスコーダが、適応プロファイルラダーにおけるプロファイルに関するビットレートおよび/または品質値を受信し、それらの値に基づいてビデオをトランスコードする。トランスコーダは、適応プロファイルラダーにおけるそれぞれのプロファイルレベルのビットレートおよび品質レベルに基づいて別々のビデオストリームを出力し得る。また、その他の例においては、トランスコーダが、既にトランスコードされているビデオストリームどうしの標準的なミックスを最初に生成し得る。次いでビデオ配信システム102は、適応プロファイルラダーにおけるプロファイルに関するビットレートおよび品質レベルに基づいて、トランスコーダによって出力されたプロファイルのうちからプロファイルを選択する。たとえば、ビデオ配信システム102は、適応プロファイルラダーにおけるプロファイルの特性に最も近い可能性がある特性を有するビデオストリームに関するプロファイルを選択し得る。
【0020】
[0034]ビデオ配信システム102は、ビデオに関する適応プロファイルラダーおよびビデオストリームをコンテンツ配信ネットワーク106および/またはクライアント104に提供する。クライアント104は次いで、ビデオの再生中にプロファイルを選択するために適応プロファイルラダーを使用することができる。たとえば、適応ビットレートアルゴリズム110は、ネットワーク状況を分析し、適応プロファイルラダーからプロファイルを選択する。たとえば、利用可能な帯域幅が高い場合には、ABRアルゴリズム110は、より高いビットレートおよび/または品質レベルを有するプロファイルを選択し、より高いビットレートおよび/または品質レベルで、対応するビデオストリームを提供される。ネットワーク状況が悪い場合には、ABRアルゴリズム110は、より低いビットレートおよび/または品質レベルを有するプロファイルを選択し、より低いビットレートおよび/または品質レベルで、対応するビデオストリームを提供される。
【0021】
[0035]適応プロファイルラダー生成のためのトランスコーディングプロセス
[0036]
図2は、いくつかの実施形態による、適応プロファイルラダージェネレータ108のさらに詳細な例を示している。適応プロファイルラダージェネレータ108は、コンテンツ分析システム202および履歴情報分析システム204を含む。コンテンツ分析システム202は、ビデオ固有情報208を分析することが可能であり、ビデオ固有情報208は、現在のビデオ(たとえば、適応プロファイルラダーが現在生成されているビデオ)に固有のコンテンツからの情報であり得る。また、同じ番組からのビデオのエピソードなど、その他の1つまたは複数のビデオに固有のコンテンツが使用され得る。履歴情報分析システム204は、再生履歴情報210を分析することが可能であり、再生履歴情報210は、ビデオの再生履歴に基づく情報であり得る。ビデオは、適応プロファイルラダーが生成されているビデオからの、またはその他のビデオからの再生情報であり得る。適応プロファイルラダーが生成されている特定のビデオからの情報が使用される場合には、ビデオは、トランスコードされて再生されることが可能であり、次いで適応プロファイルラダーを生成するために、その再生に関する情報が使用され得る。次いで適応プロファイルラダーは、ビデオを再トランスコードするために、またはビデオに関する新たなプロファイルラダーを選択するために使用され得る。その他のビデオからの再生情報は、その他のエピソードのビデオまたは関連した映画からなど、関連したビデオから選択され得る。また再生情報は、ランダムなビデオから選択され得る。
【0022】
[0037]ビデオ固有情報208は、ビデオ特徴212およびトランスコーディング特徴214を含むが、その他のビデオ固有情報も認識され得る。ビデオ特徴212は、輝度、シナリオ、主題、テクスチャ、動き、複雑さ等など、ビデオのコンテンツから導き出された特徴を含み得る。輝度は、ビデオの照明状況を表し、シナリオは、ビデオのショットまたはシーンに関する情報(たとえば、どこでそのショットが生じたか)を表し、主題は、ビデオのジャンル(たとえば、漫画、ドラマなど)であり得、テクスチャは、画像の空間的アレンジに関する情報(たとえば、色、濃淡など)であり得、動きは、ビデオにおいて見られる動きに関する情報であり得、複雑さは、ビデオにおける情報(たとえば、物体、動きなど)の量を測定し得る。その他の特徴も使用され得る。トランスコーディング特徴214は、ビットレート、品質メトリック、量子化パラメータ、コーディングの複雑さ等など、ビデオをトランスコードすることに基づく特徴を含み得る。トランスコーディング特徴214は、ビデオをトランスコードする前にビデオを分析することによって決定され得る。その分析は、ビデオの完全なトランスコーディングに基づいていない場合がある事前分析であり得る。事前分析は、ビデオを完全にトランスコードするよりも速い場合がある。あるいは、トランスコーディング特徴214は、ビデオの完全なトランスコーディングからのもの、または別のビデオ(たとえば、番組の別のエピソード)からのものであり得る。
【0023】
[0038]再生履歴情報210は、CDN特徴216、適応ビットレート特徴218、およびクライアント再生特徴220を含み得るが、その他の特徴が使用され得る。CDN特徴216は、どのコンテンツ配信ネットワークが使用されたか、どのプロファイルが選択されたか等など、コンテンツ配信ネットワークを使用するビデオの配信に関連付けられている情報であり得る。ABR特徴218は、ビデオの再生中の適応ビットレートアルゴリズム110からの情報であり得る。たとえば、ABR特徴218は、ビデオに関して要求されるプロファイル、および再生中に経験される利用可能な帯域幅を含み得る。クライアント再生特徴220は、デバイスタイプ、デバイスの特徴などを含み得る。再生履歴情報210は、適応プロファイルラダーが生成される前に収集されることが可能であり、適応プロファイルラダーが生成されているビデオ以外のビデオに基づき得る。しかしながら、再生履歴情報210は、適応プロファイルラダーが生成されているビデオに関する再生履歴情報を含み得る。
【0024】
[0039]コンテンツ分析システム202は、コンテンツを分析し、ビデオ固有情報208に関する情報を出力する。履歴情報分析システム204は、再生履歴情報210を分析し、再生履歴情報210に関する情報を出力する。適応プロファイル選択エンジン206は次いで、コンテンツおよび再生履歴情報に基づいてビデオに関する適応プロファイルラダーを選択するために、その情報を使用する。分析されたコンテンツおよび再生履歴情報を使用して適応プロファイルラダーを選択するためのプロセスの例が、以降で記述されている。
【0025】
[0040]上で論じられているように、適応プロファイルラダーは、ビデオのトランスコーディングプロセスにおいて、またはビデオのトランスコーディングプロセスの後に使用され得る。
図3は、いくつかの実施形態による、トランスコーディングプロセス中に適応プロファイルラダーを使用することの例を示している。トランスコーダ302は、別々の特性を使用してビデオをビデオに関するビデオストリームへとトランスコードする。たとえば、トランスコーダ302は、別々のビットレートおよび品質レベルなど、別々の設定に基づいてビデオを別々のビデオストリームへとトランスコードし得る。
【0026】
[0041]トランスコーダ302は、ビデオおよび適応プロファイルラダーを受信する。適応プロファイルラダーは、プロファイルどうしに関して別々のビットレートおよび品質レベルを指定し得る。トランスコーダ302は次いで、適応プロファイルラダーにおけるそれぞれのプロファイルに関するビデオストリームを生成することが可能であり、ビデオストリーム304を出力する。それぞれのビデオストリーム304は、別々のビットレートおよび品質(たとえば、解像度)など、別々の特性を含み得る。いくつかの実施形態においては、トランスコーダ302は、ビデオ#1およびビデオ#2と、それぞれのビデオに関するそれぞれのプロファイルラダー#1および#2とを受信する。トランスコーダ302は、それぞれのビデオに関するそれぞれのプロファイルラダーに従ってビデオストリーム304を生成する。たとえば、静的なプロファイルラダーは、(360p,500Kbps)、(360p,1000Kbps)、(720p,1500Kbps)、(720p,2500Kbps)、(1080,4000Kbps)のプロファイルを含み得る。次いで、ビデオ#1に関する適応プロファイルラダーは、(360p,300Kbps)、(720p,800Kbps)、(720p,1200Kbps)、(1080p,2000Kbps)であり得る。また、ビデオ#2に関する適応プロファイルラダーは、(360p,400Kbps)、(360p,700Kbps)、(720p,1000Kbps)、(1080p,2000Kbps)、(1080p,3000Kbps)であり得る。適応プロファイルラダーは、任意のビットレートおよび解像度を選択することが可能であり、さまざまな数のプロファイルを含み得る。また適応プロファイルラダーは、静的なラダーから利用可能であるプロファイルのサブセットを選択し得る。上の例から、ビデオ#1およびビデオ#2からの適応プロファイルは互いに異なり、静的なプロファイルラダーとも異なる。ビデオストリーム#1 304-1は、適応プロファイルラダー#1を使用してトランスコードされたビデオストリームを含み、ビデオストリーム#2 304-2は、適応プロファイルラダー#2を使用してトランスコードされたビデオストリームを含む、また適応プロファイルラダーは、いくつかの実施形態によれば、ビデオのトランスコーディング後に生成され得る。
図4は、いくつかの実施形態による、トランスコーディング後のビデオに関するビデオストリームを生成することの例を示している。トランスコーダ302は、ビデオを受信し、そのビデオをビデオストリーム402へとトランスコードする。ビデオストリーム402は、さまざまな品質レベルおよびビットレートを含み得る。たとえば、ビデオストリーム402は、おそらくは使用され得る標準的な固定された数のプロファイルに関連付けられ得るが、プロファイルのうちのすべてがプロファイルラダーに含まれるとは限らない。すなわち、ビデオストリーム402の数は、適応プロファイルラダーにおけるプロファイルの数よりも多い。
【0027】
[0042]ビデオストリームセレクタ404が、適応プロファイルラダーを受信し、いくつかのビデオストリーム402を選択する。たとえば、ビデオストリームセレクタ404は、ビデオストリーム402のうちからビデオストリームを選択するために適応プロファイルラダー108におけるプロファイルのビットレートおよび/または品質レベルを使用する。いくつかの実施形態においては、ビデオストリームセレクタ404は、適応プロファイルラダーにおけるそれぞれのプロファイルに関するビットレートおよび品質レベルに最も近いビットレートおよび/または品質レベルを有するビデオストリームをビデオストリーム402のうちから選択する。いくつかの実施形態においては、ビデオストリームは、適応プロファイルラダー108におけるプロファイルのビットレートおよび/または品質レベルに関して正確にトランスコードされていない可能性がある。しかしながらプロファイルは、適応プロファイルラダーにおけるプロファイルのビットレートおよび/または品質レベルに近いビットレートおよび/または品質レベルを含み得る。したがって、使用されるビデオストリームは、ビデオに関して最適化され得る。なぜなら、選択されたビデオストリームは、適応プロファイルラダーにおける関連付けられているプロファイルに関して最適化されるからである。
【0028】
[0043]適応プロファイルラダー生成プロセス
[0044]
図5は、いくつかの実施形態による、適応プロファイルラダーを生成するための方法の簡略化されたフローチャート500を示している。502において、適応プロファイルラダージェネレータ108が、ビデオに関する品質とビットレートの関係など、ビデオの特性を表す曲線を生成する。曲線が描かれているが、棒グラフ等など、その他の表現が使用され得る。いくつかの実施形態においては、曲線は、ビデオのレート歪み(RD)曲線であり得る。レート歪み曲線は、機械学習を使用することによってなど、予測に基づいて受信され得る。たとえば、機械学習アルゴリズムが、ビデオに関するレート歪み曲線を生成するためにビデオの特性を分析し得る。その他の例においては、レート歪み曲線は、そのビデオまたは類似のビデオのトランスコーディングからなど、トランスコーディング結果を使用して生成される。
【0029】
[0045]
図6は、いくつかの実施形態による、レート歪み曲線600の例を示している。グラフ600のY軸は品質をプロットし、X軸はビットレートを測定する。曲線602が、品質とビットレートとの間における関係をプロットしている。品質は、ピーク信号対雑音比、構造的類似性指数、および歪みのその他の測定値など、さまざまな特性を使用して測定され得る。曲線上のさまざまなポイントが、品質と、ビットレートと、解像度との関係を示している。いくつかの実施形態においては、曲線602は、そのビデオまたは別のビデオからのビデオ特徴212を使用して生成される。また、あるポイントが、あるビットレートおよびある解像度に対応し得るなど、曲線602上の別々のポイントは、別々のトランスコーディングパラメータ構成に対応し得る。たとえば、曲線602の別々のセクションは、360p、720p、および1080pという別々の解像度に関連付けられている。曲線602上のあるポイントが、それらの解像度に関する範囲のうちの1つの中に収まる場合には、そのポイントは、それぞれの解像度を割り当てられる。たとえば、604におけるポイントが、X軸からの関連付けられているビットレートと、720pの解像度とを割り当てられる。なぜなら、そのポイントは、720pに関連付けられている範囲内にあるからである。
【0030】
[0046]
図5を再び参照すると、504において、適応プロファイルラダージェネレータ108は、曲線602上の候補トランスコーディングポイントを選択する。候補トランスコーディングポイントは、曲線602上の一連の別々のポイントであり得る。それぞれの候補トランスコーディングポイントは、ビデオをトランスコードするために使用され得る可能なポイントを表し得る。候補トランスコーディングポイントを決定するために、さまざまな方法が使用され得る。
図7は、いくつかの実施形態による、候補トランスコーディングポイントを決定することの例を示している。適応プロファイルラダージェネレータ108は、上限702および下限704を選択し得る。上限702は、最大品質およびビットレートであり得、下限704は、候補トランスコーディングポイントに関して使用されることが可能である最小品質およびビットレートであり得る。すなわち、候補トランスコーディングポイントは、下限704と上限702との間にのみあり得る。
【0031】
[0047]適応プロファイルラダージェネレータ108は、ビデオ固有情報208および/または再生履歴情報210など、さまざまな情報に基づいて上限702および下限704を選択し得る。たとえば、適応プロファイルラダージェネレータ108は、より複雑である複雑さを有するコンテンツについて、より高い上限702を使用し、あまり複雑でない複雑さを有するコンテンツについて、より低い上限702を使用する。複雑なコンテンツの品質レベルが、その複雑なコンテンツの詳細を示すほどに高いことを確実にするために、より高い上限702は、より複雑なコンテンツに関して使用される。しかしながら、あまり複雑でないコンテンツは、コンテンツの複雑さを示すために、さほど高い品質のトランスコーディングを必要としない場合がある。
【0032】
[0048]適応プロファイルラダージェネレータ108はまた、上限702および下限704を選択するために再生履歴情報210を使用し得る。たとえば、再生中に使用される適応ビットレートアルゴリズムおよび帯域幅分布は、ビデオの再生中に使用されたビットレート分布についての情報を提供し得る。
図8は、いくつかの実施形態による、帯域幅分布のグラフ800の例を示している。グラフ800のY軸は確率密度であり、X軸は帯域幅である。曲線802は、さまざまな帯域幅で生じる帯域幅の確率をプロットしている。たとえば、ある帯域幅での曲線の値が高ければ高いほど、ビデオがその帯域幅でストリーミングされることになる確率が高くなることを示している。適応プロファイルラダージェネレータ108は、帯域幅分布に基づいて上限702および下限704を選択し得る。たとえば、ビデオが、99%の確率で、200Kbpsよりも大きい帯域幅の部分でストリーミングされ得るということを曲線802上の804におけるポイントが示している場合には、適応プロファイルラダージェネレータ108は、下限704を決定するためにその値を使用し得る。また、下限704を決定するためにABRアルゴリズム安全係数などの係数が使用され得る。選択された帯域幅が許容誤差を含むように安全係数が使用される。安全係数が0.7である場合には、200Kbps×0.7=140Kbpsであり、これは下限704として設定される。同じ計算が、上限702に関して実行され得る。たとえば、806において、帯域幅の99%が12メガバイト/秒(Mbps)よりも低く、安全係数が1.2である場合には、上限702は14.4Mbpsであり得る。上限702および下限704を決定するその他の方法が使用され得る。
【0033】
[0049]適応プロファイルラダージェネレータ108はまた、解像度範囲を生成するために情報を使用し得る。たとえば、上限702および下限704を表す解像度範囲を選択するためにクライアント再生特徴220からのデバイスタイプが使用され得る。デバイスタイプに応じて、異なる解像度範囲が使用され得る。たとえば、モバイル電話が、216Pから720Pの間の解像度範囲を使用することが可能であり、テレビが、540Pから8Kの間の解像度範囲を使用し得る。
【0034】
[0050]
図7を再び参照すると、適応プロファイルラダージェネレータ108はまた、差分品質しきい値706を決定し得る。差分品質しきい値706は、2つの連続した候補トランスコーディングポイントが曲線602上で離れているべきであるという品質における差であり得る。たとえば、差分品質しきい値706内で、候補トランスコーディングポイントが1つだけ見出されるべきである。差分品質しきい値706を使用することは、候補トランスコーディングポイントどうしが互いの特定の量の品質内にないことを確実にし、これは、品質測定を曲線602全体にわたって分散し得る。すなわち、同じ品質を有する2つのプロファイルを適応プロファイルラダーにおいて有することには、あまり利点がないかもしれない。
【0035】
[0051]上限702、下限704、および差分品質しきい値706を使用して、適応プロファイルラダージェネレータ108は、候補トランスコーディングポイントを生成する。
図9は、いくつかの実施形態による、候補トランスコーディングポイントを選択するための方法の簡略化されたフローチャート900を示している。902において、適応プロファイルラダージェネレータ108は、プロファイルラダーに関する上限を決定するために特徴を分析する。904において、適応プロファイルラダージェネレータ108は、プロファイルラダーに関する下限704を決定するために特徴を分析する。上述されているビデオ固有情報208および/または再生履歴情報210における特徴は、上限702および下限704を決定するために分析され得る。
【0036】
[0052]906において、適応プロファイルラダージェネレータ108は、下限704を上回るポイントを選択する。曲線602は、別々のポイントを含むことが可能であり、適応プロファイルラダージェネレータ108は、曲線602上のそれぞれの別々のポイントを選択し得る。また、ポイントがX量のビットレートごとに選択されるなど、適応プロファイルラダージェネレータ108は、ある間隔に基づいて曲線602上のポイントを選択し得る。
【0037】
[0053]908において、適応プロファイルラダージェネレータ108は、上限702が超過されているかどうかを決定する。たとえば、上限702が超過されている場合には、プロセスは終了する。適応プロファイルラダージェネレータ108は、上限702を上回るポイントを分析することを必要としない。
【0038】
[0054]910において、上限702が超過されていない場合には、適応プロファイルラダージェネレータ108は、このポイントが下限704に等しいかどうかを決定する。これは、プロセスにおいて最初のポイントが選択された場合にのみ生じ得る。これが最初のポイントである場合には、918において、適応プロファイルラダージェネレータ108は、現在のポイントを候補トランスコーディングポイントリストに加える。たとえば、適応プロファイルラダージェネレータ108は、下限704を表すポイントを常に含み得るが、これが生じる必要はない。候補トランスコーディングポイントリストは、決定されている候補トランスコーディングポイントのリストであり得る。
【0039】
[0055]ポイントが下限704ではない場合には、912において、適応プロファイルラダージェネレータ108は、現在のポイントの品質が最後のポイントの品質よりも低いかどうかを決定する。ポイントは、下限ポイント704から上限ポイント702まで順次選択されているので、適応プロファイルラダージェネレータ108は、最後に選択されたポイントよりも高い品質を有する候補トランスコーディングポイントを候補トランスコーディングポイントリストに含め得る。これは、より低い品質を有するトランスコーディングポイントをより高いビットレートとともに含めることが望ましくない場合があるからであり、なぜなら、ビットレートにおける増加および品質における減少は、再生状況を改善しないからである。現在のポイントの品質が、最後に選択されたポイントの品質よりも低い場合には、適応プロファイルラダージェネレータ108は、このポイントを選択せず、プロセスは、曲線602上の別のポイントを選択するために906へ繰り返す。
【0040】
[0056]品質が最後のポイントの品質よりも低くない場合には、914において、適応プロファイルラダージェネレータ108は、現在のポイントと最後のポイントとの間における差分品質を計算する。これは、現在のポイントと最後のポイントとの間の品質における差である。916において、適応プロファイルラダージェネレータ108は、差分品質がしきい値よりも低いかどうかを決定する。しきい値は、差分品質しきい値706であり得る。適応プロファイルラダージェネレータ108は、最後のポイントからの変更品質が差分品質しきい値706よりも低い場合には、候補トランスコーディングポイントを候補トランスコーディングポイントリストに加えないことが可能である。これは、候補トランスコーディングポイントが、特定の量だけ最後のポイントよりも高い品質を有するべきであるからであり、なぜなら、最後のポイントの品質に近い候補トランスコーディングポイントを加えることは価値がない場合があるからであり、それは、見られる品質における差が最小になるからである。差分品質が差分品質しきい値706よりも低い場合には、プロセスは、曲線602上の別のポイントを選択するために906へ繰り返す。差分品質が差分品質しきい値706よりも高い場合には、918において、適応プロファイルラダージェネレータ108は、現在のポイントを候補トランスコーディングポイントリストに加える。これで、候補トランスコーディングポイントの選択は終了する。
【0041】
[0057]
図5を再び参照すると、候補トランスコーディングポイントを決定したら、506において、適応プロファイルラダージェネレータ108は、候補トランスコーディングポイントから候補プロファイルラダーを選択する。たとえば、適応プロファイルラダージェネレータ108は、候補トランスコーディングポイントのさまざまなバリエーションを候補プロファイルラダーとして出力し得る。いくつかの実施形態においては、適応プロファイルラダージェネレータ108は、候補プロファイルラダーを生成するために、すべての候補トランスコーディングポイントに関して順列または組合せのプロセスを使用し得る。12個のプロファイルへなど、選択されるプロファイルの数が定義され得る。候補トランスコーディングポイントが12個のポイントよりも多い場合には、候補トランスコーディングポイントのさまざまな組合せが形成されることが可能である。たとえば、候補トランスコーディングポイントの1つの組合せが第1のプロファイルラダーを形成し、第2の組合せが第2のプロファイルラダーを形成する、といった具合である。また、適応プロファイルラダージェネレータ108は、ルールに基づいて組合せのサブセットを識別し得る。たとえば、適応プロファイルラダージェネレータ108は、270P、360P、480P、720P、1080Pなどの解像度など、選択された解像度からの候補トランスコーディングポイントを含めたい場合がある。これらの解像度は、従来プロファイルラダー用に生成されている標準的な解像度であり得る。
【0042】
[0058]508において、適応プロファイルラダージェネレータ108は、候補プロファイルラダーから最適なプロファイルラダーを選択する。最適なプロファイルラダーは、標準的な固定されたプロファイルラダーに対する改良であり得る。たとえば、最適なプロファイルラダーは、元の固定されたプロファイルラダーと比べて同じ品質またはより高い品質を有すること、および標準的な固定されたプロファイルラダーからのビットレートをできるだけ大幅に低減することが可能である。別の例においては、最適なプロファイルラダーは、ビットレートを元の固定されたプロファイルラダーと同じに保つこと、および標準的な固定されたプロファイルラダーからできるだけ大幅に品質を改善することが可能である。さらに、適応プロファイルラダージェネレータ108は、2つの対象の組合せを使用する。
【0043】
[0059]最適なプロファイルラダーの選択
[0060]
図10は、いくつかの実施形態による、最適なプロファイルラダーを選択するための方法の簡略化されたフローチャート1000を示している。このプロセスは、ビットレートと品質とにおける改善のバランスを取り得るが、品質を一定に保ちながらビットレートを改善すること、またはビットレートを一定に保ちながら品質を改善することなど、その他のプロセスが使用され得る。1002において、適応プロファイルラダージェネレータ108は、目標品質、現在の最適なビットレート、および現在の最適なラダーを初期化する。これらは、プロセスに関する値を格納する変数であり得る。目標品質はプロファイルラダーが満たすべき品質の測定値を表す値であり得る。現在の最適なビットレートは、現在の最適なラダーに関する現在の最適なビットレートの値である。現在の最適なラダーは、現在の最適なラダーとして選択されているプロファイルラダーの識別子である。現在の最適なビットレートおよび現在の最適なラダーは、プロファイルラダーが分析されるにつれて変化し得る。
【0044】
[0061]1004において、適応プロファイルラダージェネレータ108は、見直す候補プロファイルラダーがさらにあるかどうかを決定する。そうでない場合には、プロセスは1016へ進み、1016では、適応プロファイルラダージェネレータ108は、現在の最適なラダーがNULLに等しいかどうかを決定する。NULLという値は、プロファイルラダーが現在の最適なラダーに設定されていないことを意味する。このケースにおいては、候補プロファイルラダーのうちのいずれも、現在の最適ラダーとして設定されるための条件を満たしていない。現在の最適なラダーがNULLに等しい場合には、1020において、適応プロファイルラダージェネレータ108は、最終的な最適なラダーをデフォルトのプロファイルラダーに設定する。デフォルトのプロファイルラダーは、標準的な固定されたプロファイルラダーであり得るか、またはデフォルトのプロファイルラダーとして指定された別のプロファイルラダーであり得る。
【0045】
[0062]分析するさらなる候補ラダーがある場合には、1006において、適応プロファイルラダージェネレータ108は、利用可能な候補プロファイルラダーのうちから候補プロファイルラダーを選択する。1008において、適応プロファイルラダージェネレータ108は、重み付けされた品質および重み付けされたビットレートを計算する。重み付けされた品質および重み付けされたビットレートは、候補プロファイルラダーにおけるプロファイルどうしの別々の品質およびビットレートを表す値であり得る。重み付けされた品質および重み付けされたビットレートは、候補プロファイルラダーにおける別々のプロファイルの別々の重要度を反映する。たとえば、候補プロファイルラダーにおけるそれぞれのプロファイルは、関連付けられている品質およびビットレートを含むことが可能であり、いくつかのプロファイルは、再生中にさらに頻繁に使用され得るなど、いくつかのプロファイルは、より重要であり得る。重み付けされた品質および重み付けされたビットレートは、プロファイルが再生中に使用され得る確率を表し、それらのプロファイルに関連付けられている品質およびビットレートをより高く重み付けする。プロファイルに関して重みを適用すると、適応プロファイルラダージェネレータ108は、候補プロファイルラダーに関する重み付けされた品質および重み付けされたビットレートを決定する。重み付けされた品質および重み付けされたビットレートが記述されているが、重み付けされた品質および重み付けされたビットレートを使用しないことなど、品質およびビットレートを表すその他の方法が使用され得る。
【0046】
[0063]重み付けされた品質および重み付けされたビットレートは、さまざまな方法を使用して生成され得る。適応プロファイルラダージェネレータ108は、重み付けされた値として帯域幅分布を使用すること、重み付けされた値としてビジネス状況の特性を使用することなどが可能である、といった具合である。ビジネス状況は、ビジネスエンティティによって重要として指定されている特定のプロファイルを強調することによって、重み付けされた値を決定し得る。また、どの品質およびビットレートがより重要であるかを決定するために帯域幅分布および適応ビットレートモデルが使用され得る。
図11は、いくつかの実施形態による、重み付けされた品質を決定するためのグラフ1100の例を示している。Y軸は確率分布であり、X軸は帯域幅である。曲線1102は、候補プロファイルラダーに関する帯域幅分布である。帯域幅に関する曲線1102の高さは、再生中にこのビットレートを経験する再生インスタンスの数を表し得る。再生インスタンスの数は、再生中の帯域幅を記録する、コンテンツ配信ネットワーク106またはクライアント104からの情報に基づき得る。
【0047】
[0064]適応プロファイルラダージェネレータ108は次いで、N個の候補プロファイルC0、C1、C2、C3、C4、C5などを選択する。候補プロファイルラダーは、さまざまなビットレートに関連付けられているプロファイルを含む。帯域幅分布上のプロファイルラダーのそれぞれのプロファイルのビットレートが、
図12において示されている。それぞれのビットレートは、曲線1102と交差しており、再生中にこのビットレートを経験するケースの数を示している。たとえば、ビットレートC3においては、再生の多数のケースが、このビットレートを経験した。
【0048】
[0065]適応プロファイルラダージェネレータ108は、それぞれのプロファイルの使用可能範囲を決定する。使用可能範囲は、下限および上限に安全係数を適用することに基づき得る。たとえば、1つのプロファイルがC2のビットレートからC3のビットレートまでの範囲にある場合には、C2の下限は適用される安全係数を有し、これはC2のビットレートを低下させる。またC3の上限は、C3のビットレートを増加させ得る、適用される安全係数を有する。たとえば、プロファイルnに関しては、範囲の下限は、下記を使用して計算され得る。
【0049】
【0050】
[0067]下限を下げるために、下限ビットレートCn_bitrateが、安全係数safe_factorで割られる。
【0051】
[0068]範囲の上限は、下記を使用して計算され得る。
【0052】
【0053】
[0070]上限を下げるために、上限ビットレートCn+1_bitrateというビットレートが、安全係数で割られる。たとえば、safe_factorが0.7である場合に、それが意味しているのは、利用可能なネットワーク帯域幅が1000Kbpsである場合には、ABRアルゴリズム110は、再バッファリングを伴わない再生をサポートする目的で、高すぎるビットレートを有するプロファイルを要求することによって、再バッファのリスクを低減するために、700Kbpsまでのビットレートを有するプロファイルのみを要求し得るということである。
【0054】
[0071]安全係数を適用すると、
図13は、いくつかの実施形態による、C2のビットレートとC3のビットレートとの間におけるプロファイルの使用可能範囲の例を示している。1202におけるC2の範囲の下限、および1204におけるC2の範囲のより高い上限が、安全係数に基づいて移動されている。また、さまざまな範囲がその他のビットレートどうしの間において提供され得る。たとえば、範囲C0は、C0のビットレートとC1のビットレートとの間にあり、範囲C1は、C1のビットレートとC2のビットレートとの間にあり、C3の範囲は、C3のビットレートとC4のビットレートとの間にあり、C4の範囲は、C4のビットレートとC5のビットレートとの間にある。
【0055】
[0072]適応プロファイルラダージェネレータ108は、それぞれのプロファイルの使用可能範囲に関する確率をそれぞれのプロファイルの重み付けされた値として計算する。確率は、再生中にプロファイルが使用されることになる可能性がどれぐらいかであり得る。たとえば、それぞれの範囲に関する曲線の下のエリアは、それぞれのプロファイルの使用可能範囲に関する確率として使用され得る。適応プロファイルラダージェネレータ108は次いで、それぞれのプロファイルに関する重み付けされた品質を計算する。重み付けされた品質は、範囲の品質にそれぞれのプロファイルに関する確率を掛けたものである。したがって、より高い全体的な品質を伴って生じる確率がより高いプロファイルは、より重く重み付けされる。適応プロファイルラダージェネレータ108は次いで、それぞれのプロファイルの重み付けされた品質を加算または合計することによってなどで、候補品質ラダーに関する重み付けされた品質を決定するために、それぞれのプロファイルの重み付けされた品質を使用する。
【0056】
[0073]
図10を再び参照すると、適応プロファイルラダージェネレータ108は、重み付けされた品質が目標品質よりも高いかどうかを決定する。そうでない場合には、適応プロファイルラダージェネレータ108は、この候補プロファイルラダーを使用せず、プロセスは、使用するその他の候補プロファイルラダーがあるかどうかを決定するために1004へ繰り返す。重み付けされた品質が十分に高くないので、候補プロファイルラダーは使用されない。
【0057】
[0074]1012において、重み付けされた品質が目標品質よりも高い場合には、適応プロファイルラダージェネレータ108は、重み付けされたビットレートが現在の最適なビットレートよりも低いかどうかを決定する。重み付けされたビットレートは、さまざまな方法を使用して決定され得る。それぞれのビットレートに関する同じ重みが、いくつかのケースにおいては使用されることが可能であり、または最も高いプロファイルが、より高く重み付けされる。なぜなら、そのプロファイルが、最も高いビットレートを有することに起因して、そのプロファイルは、再バッファリングに最も影響を与え得るからである。ビットレートを重み付けするために、その他の方法も使用され得る。適応プロファイルラダージェネレータ108は、この候補プロファイルラダーが選択された場合に使用されているビットレートを低減するために、現在の最適ビットレートよりも低い重み付けされたビットレートを含む候補プロファイルラダーを含めたい場合がある。重み付けされたビットレートが現在の最適なビットレートよりも高くない場合には、適応プロファイルラダージェネレータ108は、さらなる候補プロファイルラダーがあるかどうかを決定するために1004へ繰り返す。
【0058】
[0075]重み付けされたビットレートが現在の最適なビットレートよりも高くない場合には、1014において、適応プロファイルラダージェネレータ108は、現在の最適なビットレートを現在の候補プロファイルラダーの重み付けされたビットレートに設定し、現在の最適なラダーを候補プロファイルラダーに設定する。このケースにおいては、重み付けされた品質および重み付けされたビットレートは、目標品質よりも高くて現在の最適なビットレートよりも低いという要件を満たしている。これは、品質を改善してビットレートを低減する候補プロファイルラダーを選択する上でのバランスを取る。
【0059】
[0076]1016において、プロセスは次いで、さらなる候補ラダーがあるかどうかを決定するために1004へ繰り返す。さらなる候補プロファイルラダーがなく、現在のラダーがNULLに等しくない場合には、1018において、適応プロファイルラダージェネレータ108は、最終的な最適なラダーを現在の最適なプロファイルラダーに設定する。したがって、適応プロファイルラダージェネレータ108は、最も高い重み付けされた品質および最も低い重み付けされたビットレートを含み得る候補プロファイルラダーのうちの1つを選択している。
【0060】
[0077]結論
[0078]適応プロファイルラダーは、ビデオにとって最適であり得るビットレートおよび/または品質を有するプロファイルを含み得る。適応プロファイルラダーは次いで、最適なプロファイルを求めてビデオをビデオストリームへとトランスコードするために使用されることが可能である。あるいは、適応プロファイルラダーは、固定されたプロファイルラダーからプロファイルを選択するために使用され得る。適応プロファイル生成プロセスは、ビデオに関して使用されるプロファイルを改善する。なぜなら、それらのプロファイルは、ビデオの特性および再生履歴情報に関して適合されているからである。たとえば、より低い複雑さを有する漫画は、より低いビットレートプロファイルを伴うプロファイルを有し得る。なぜなら、より低いビットレートで十分な品質が提供されるからである。いくつかの例においては、最も高いプロファイルは、1000Kbpsのビットレートを有し得る。しかしながら、より高い複雑さを有するライブスポーツイベントは、より高いビットレートを有するプロファイルを使用し得る。なぜなら、より低いビットレートが漫画に関して達成できるのと同じ品質レベルを達成するためには、より高いビットレートが必要とされ得るからである。いくつかの例においては、スポーツイベントは、6000Kbpsのビットレートを有する最も高いプロファイルを有し得る。プロファイルにおける改善は、再生体験を改善し得る。なぜなら、クライアント104は、ビデオの再生にとってより適している可能性があるプロファイルを提供され得るからである。このケースにおいては、ビデオの品質が高められることが可能であり、使用されるビットレートが低減され得る。
【0061】
[0079]実施形態
[0080]いくつかの実施形態においては、コンピューティングデバイスによって、ビデオに関する品質測定値に対するビットレートの関係を表すビデオに関する表現を生成することと、コンピューティングデバイスによって、表現上の候補トランスコーディングポイントを選択することと、コンピューティングデバイスによって、候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、コンピューティングデバイスによって、ビットレートまたはプロファイルラダーの品質を分析することに基づいて複数の候補プロファイルラダーからプロファイルラダーを選択することと、コンピューティングデバイスによって、ビデオに関してプロファイルラダーを使用することとを備える方法。
【0062】
[0081]いくつかの実施形態においては、ビデオに関してプロファイルラダーを使用することは、プロファイルラダーにおけるプロファイルに基づいてビデオを複数のビデオストリームへとトランスコードすることを備える。
【0063】
[0082]いくつかの実施形態においては、ビデオを複数のビデオストリームへとトランスコードすることは、それぞれのプロファイルに関連付けられているビットレートおよび品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える。
【0064】
[0083]いくつかの実施形態においては、ビデオに関してプロファイルラダーを使用することは、選択されたプロファイルラダーのプロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える。
【0065】
[0084]いくつかの実施形態においては、選択されたプロファイルラダーのプロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することは、選択されたプロファイルラダーにおけるプロファイルに最も近いビットレートおよび品質測定値のうちの少なくとも一方を有するプロファイルを標準的なプロファイルから選択することを備える。
【0066】
[0085]いくつかの実施形態においては、ビデオに関する表現を生成することは、品質測定値に対するビットレートの関係を表す曲線を生成することを備える。
【0067】
[0086]いくつかの実施形態においては、候補トランスコーディングポイントを選択することは、最後のポイントと比べてさらに高い品質を現在のポイントが含む場合に表現上のポイントを選択することを備える。
【0068】
[0087]いくつかの実施形態においては、最後のポイントと比べてさらに高い品質をそのポイントが含む場合に表現上のポイントを選択することは、最後のポイントと現在のポイントとの間の品質における変化にしきい値を適用することと、品質における変化がしきい値を満たす場合に現在のポイントを候補トランスコーディングポイントに加えることとを備える。
【0069】
[0088]いくつかの実施形態においては、最後のポイントと比べてさらに高い品質をそのポイントが含む場合に表現上のポイントを選択することは、表現上の下限を決定することと、表現上の上限を決定することと、下限および上限に基づいて表現上のポイントを選択することとを備える。
【0070】
[0089]いくつかの実施形態においては、下限を選択すること、または上限を選択することは、下限または上限を決定するために、再生されたビットレートの確率分布を使用することを備える。
【0071】
[0090]いくつかの実施形態においては、候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することは、複数の候補プロファイルラダーを形成するために候補トランスコーディングポイントから複数の組合せを生成することを備える。
【0072】
[0091]いくつかの実施形態においては、複数の候補プロファイルラダーからプロファイルラダーを選択することは、複数の候補プロファイルラダーから現在のプロファイルラダーにおけるプロファイルに関するビットレートに基づくビットレート表現を計算することと、現在のプロファイルラダーを選択するかどうかをビットレート表現に基づいて決定することとを備える。
【0073】
[0092]いくつかの実施形態においては、ビットレート表現は、現在のプロファイルラダーのプロファイルに関連付けられているビットレートと、それぞれのプロファイルの再生の確率とに基づく重み付けされたビットレートを備える。
【0074】
[0093]いくつかの実施形態においては、複数の候補プロファイルラダーからプロファイルラダーを選択することは、複数の候補プロファイルラダーにおける現在のプロファイルラダーに関する品質測定値表現を計算することと、ここにおいて、品質測定値が、現在のプロファイルラダーにおけるプロファイルに関する品質測定値に基づく、現在のプロファイルラダーを選択するかどうかを品質測定値表現に基づいて決定することとを備える。
【0075】
[0094]いくつかの実施形態においては、品質測定値表現は、現在のプロファイルラダーのプロファイルに関連付けられている品質測定値と、それぞれのプロファイルの再生の確率とに基づく重み付けされた品質測定値表現を備える。
【0076】
[0095]いくつかの実施形態においては、命令を含む非一時的コンピュータ可読ストレージメディアであって、それらの命令が、実行されたときに、ビデオに関する品質測定値に対するビットレートの関係を表すビデオに関する表現を生成することと、表現上の候補トランスコーディングポイントを選択することと、候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、ビットレートまたはプロファイルラダーの品質を分析することに基づいて複数の候補プロファイルラダーからプロファイルラダーを選択することと、ビデオに関してプロファイルラダーを使用することとを行うように動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読ストレージメディア。
【0077】
[0096]いくつかの実施形態においては、ビデオに関してプロファイルラダーを使用することは、プロファイルラダーにおけるプロファイルに基づいてビデオを複数のビデオストリームへとトランスコードすることを備える。
【0078】
[0097]いくつかの実施形態においては、ビデオを複数のビデオストリームへとトランスコードすることは、それぞれのプロファイルに関連付けられているビットレートおよび品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える。
【0079】
[0098]いくつかの実施形態においては、ビデオに関してプロファイルラダーを使用することは、選択されたプロファイルラダーのプロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える。
【0080】
[0099]いくつかの実施形態においては、1つまたは複数のコンピュータプロセッサと、命令を備える非一時的コンピュータ可読ストレージメディアとを備える装置であって、それらの命令が、実行されたときに、ビデオに関する品質測定値に対するビットレートの関係を表すビデオに関する表現を生成することと、表現上の候補トランスコーディングポイントを選択することと、候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、ビットレートまたはプロファイルラダーの品質を分析することに基づいて複数の候補プロファイルラダーからプロファイルラダーを選択することと、ビデオに関してプロファイルラダーを使用することとを行うように動作可能であるように1つまたは複数のコンピュータプロセッサを制御する、装置。
【0081】
[00100]システム
[00101]本明細書において開示されている特徴および態様は、
図14において示されているように、1つまたは複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステム1400とともに実施され得る。ビデオストリーミングシステム1400の態様は、本開示に従って用意されたコンテンツの配布および配信を可能にするためのアプリケーションの例を提供するためだけに記述されている。本テクノロジーは、ストリーミングビデオアプリケーションに限定されず、その他のアプリケーションおよび配信メカニズム用に適合され得るということを理解されたい。
【0082】
[00102]一実施形態においては、メディア番組プロバイダが、メディア番組のライブラリを含み得る。たとえば、メディア番組は、サイト(たとえば、ウェブサイト)、アプリケーション、またはブラウザを通じて集約および提供され得る。ユーザは、メディア番組プロバイダのサイトまたはアプリケーションにアクセスして、メディア番組を要求することができる。ユーザは、メディア番組プロバイダによって提供されるメディア番組のみを要求することに制限され得る。
【0083】
[00103]システム1400においては、ビデオデータが、ビデオコンテンツサーバ1402への入力としての使用のために、1つまたは複数のソースから、たとえばビデオソース1410から入手され得る。入力ビデオデータは、任意の適切なデジタルフォーマット、たとえば、ムービングピクチャーズエキスパートグループ(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、またはその他のフォーマットでの生のまたは編集されたフレームベースのビデオデータを備え得る。代替として、ビデオは、非デジタルフォーマットで提供されて、スキャナおよび/またはトランスコーダを使用してデジタルフォーマットへ変換され得る。入力ビデオデータは、さまざまなタイプのビデオクリップまたは番組、たとえば、テレビエピソード、映画、および、消費者にとって関心のある主要なコンテンツとして製作されたその他のコンテンツを備え得る。ビデオデータは音声を含むことも可能であり、または音声のみが使用され得る。
【0084】
[00104]ビデオストリーミングシステム1400は、1つまたは複数のコンピュータにわたって分散された1つまたは複数のコンピュータサーバまたはモジュール1402、1404、および/または1407を含み得る。それぞれのサーバ1402、1404、1407は、1つまたは複数のデータストア1409、たとえば、データベース、インデックス、ファイル、またはその他のデータ構造を含み得るか、またはそれらに動作可能に結合され得る。ビデオコンテンツサーバ1402は、さまざまなビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ1402は、クライアントデバイスと通信するユーザインターフェースコントローラによって指示されるようにビデオセグメントを供給し得る。本明細書において使用される際には、ビデオセグメントは、テレビエピソード、映画、記録されたライブパフォーマンス、またはその他のビデオコンテンツを見るためのストリーミングビデオセッションにおいて使用され得るような、フレームベースのビデオデータの特定の部分を指す。
【0085】
[00105]いくつかの実施形態においては、ビデオ広告サーバ1404は、特定の広告主またはメッセージのための広告として構成された比較的短いビデオ(たとえば、10秒、30秒、または60秒のビデオ広告)のデータストアにアクセスし得る。広告は、何らかの種類の支払いと引き換えに広告主に提供され得るか、またはシステム1400に関する販売促進メッセージ、公共サービスメッセージ、またはその他の何らかの情報を備え得る。ビデオ広告サーバ1404は、ユーザインターフェースコントローラ(図示せず)によって指示されるようにビデオ広告セグメントを供給し得る。
【0086】
[00106]ビデオストリーミングシステム1400はまた、ビデオ配信システム102を含み得る。
【0087】
[00107]ビデオストリーミングシステム1400はさらに、ビデオコンテンツおよびビデオ広告をストリーミングビデオセグメントへと統合する統合/ストリーミングコンポーネント1407を含み得る。たとえば、ストリーミングコンポーネント1407は、コンテンツサーバまたはストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の適切なアルゴリズムまたはプロセスに基づいてストリーミングビデオにおける広告の選択または構成を決定し得る。ビデオストリーミングシステム1400は、
図14において示されていないその他のモジュールまたはユニット、たとえば、管理サーバ、コマースサーバ、ネットワークインフラストラクチャー、広告選択エンジンなどを含み得る。
【0088】
[00108]ビデオストリーミングシステム1400は、データ通信ネットワーク1412に接続し得る。データ通信ネットワーク1412は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、たとえば、インターネット、電話ネットワーク、ワイヤレスセルラーテレコミュニケーションネットワーク(WCS)1414、またはこれらのもしくは類似のネットワークどうしの何らかの組合せを備え得る。
【0089】
[00109]1つまたは複数のクライアントデバイス1420は、データ通信ネットワーク1412、ワイヤレスセルラーテレコミュニケーションネットワーク1414、および/または別のネットワークを介して、ビデオストリーミングシステム1400と通信状態にあり得る。そのようなクライアントデバイスは、たとえば、LANに関してはルータ1418を介した、ワイヤレスセルラーテレコミュニケーションネットワーク1414に関しては基地局1417を介した、またはその他の何らかの接続を介した、1つまたは複数のラップトップコンピュータ1420-1、デスクトップコンピュータ1420-2、「スマート」モバイル電話1420-3、タブレットデバイス1420-4、ネットワーク対応テレビ1420-5、またはそれらの組合せを含み得る。動作中に、そのようなクライアントデバイス1420は、ユーザ入力デバイスから受け取られたユーザ入力、またはその他の入力に応答して、システム1400に対してデータまたは命令を送ることおよび受信することが可能である。それに応答して、システム1400は、メディア番組の選択に応答したデータストア1409からのビデオセグメントおよびメタデータをクライアントデバイス1420に供給し得る。クライアントデバイス1420は、ディスプレイスクリーン、プロジェクタ、またはその他のビデオ出力デバイスを使用してメディアプレーヤにおけるストリーミングビデオセグメントからビデオコンテンツを出力し、そのビデオコンテンツと対話するためのユーザ入力を受け取り得る。
【0090】
[00110]オーディオビデオデータの配布は、さまざまな方法、たとえばストリーミングを使用して、ストリーミングコンポーネント1407から、コンピュータネットワーク、テレコミュニケーションネットワーク、およびそのようなネットワークの組合せを介して、リモートクライアントデバイスへ実施され得る。ストリーミングにおいては、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤコンポーネントにオーディオビデオデータを継続的にストリーミングし、メディアプレーヤコンポーネントは、サーバからストリーミングデータを受信すると同時にオーディオビデオデータを再生し得る。ストリーミングが論じられているが、配信のその他の方法が使用され得る。メディアプレーヤコンポーネントは、コンテンツプロバイダからデータの最初の部分を受信した直後にビデオデータの再生を開始し得る。従来のストリーミング技術は、単一のプロバイダを使用してデータのストリームを一群のエンドユーザに配信する。単一のストリームを大勢の視聴者へ配信するためには、高い帯域幅および処理能力が必要とされる場合があり、エンドユーザの数が増大するにつれて、プロバイダの必要とされる帯域幅が増大し得る。
【0091】
[00111]ストリーミングメディアは、オンデマンドまたはライブで配信されることが可能である。ストリーミングは、ファイル内の任意のポイントにおける即時の再生を可能にする。エンドユーザは、メディアファイルにおいて再生を開始するために、または再生を任意のポイントへ変更するためにメディアファイル内をスキップし得る。したがってエンドユーザは、ファイルがプログレッシブにダウンロードするのを待つ必要はない。典型的には、ストリーミングメディアは、高帯域幅能力を有する少数の専用のサーバから専門のデバイスを介して配信され、その専門のデバイスは、ビデオファイルを求める要求を、それらのファイルのフォーマット、帯域幅、および構造に関する情報とともに受け入れ、ビデオを再生するのに必要な量のデータのみを、それを再生するのに必要とされる速度で配信する。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの送信帯域幅および能力を考慮し得る。ストリーミングコンポーネント1407は、ビデオが再生される際に、変化するネットワーク状況に適応するために、制御メッセージおよびデータメッセージを使用してクライアントデバイス1420と通信し得る。これらの制御メッセージは、クライアントにおける早送り、早戻し、一時停止、またはファイルの特定の部分へのシークなどの制御機能を有効にするためのコマンドを含むことができる。
【0092】
[00112]ストリーミングコンポーネント1407は、必要とされる際にのみ、必要とされる速度でビデオデータを送信するので、供給されるストリームの数に関する正確な制御が保持されることが可能である。視聴者が、より低いデータレートの送信メディア上で高いデータレートのビデオを見ることは不可能であろう。しかしながら、ストリーミングメディアサーバは、(1)ビデオファイルへのランダムアクセスをユーザに提供し、(2)誰がどのビデオ番組を見ているか、そしてどれぐらい長くそれらが見られているかのモニタリングを可能にし、(3)より効率的に送信帯域幅を使用し(視聴経験をサポートするのに必要とされる量のデータのみが送信されるので)、(4)ビデオファイルは、視聴者のコンピュータにおいて格納されず、メディアプレーヤによって破棄され、したがってコンテンツに関するさらなる制御を可能にする。
【0093】
[00113]ストリーミングコンポーネント1407は、HTTPおよびリアルタイムメッセージングプロトコル(RTMP)など、TCPベースのプロトコルを使用し得る。ストリーミングコンポーネント1407はまた、ライブウェブキャストを配信することができ、マルチキャストすることができ、これは、複数のクライアントが単一のストリームへと同調することを可能にし、したがって帯域幅を節約する。ストリーミングメディアプレーヤは、メディア番組における任意のポイントへのランダムアクセスを提供するためにビデオ全体をバッファリングすることに依存しないことが可能である。代わりに、これは、メディアプレーヤからストリーミングメディアサーバへ送信される制御メッセージの使用を通じて実現される。ストリーミングのために使用されるその他のプロトコルは、ハイパーテキスト転送プロトコル(HTTP)ライブストリーミング(HLS)またはダイナミックアダプティブストリーミングオーバーHTTP(DASH)である。HLSおよびDASHプロトコルは、典型的には1つまたは複数のコンテンツ配信ネットワーク(CDN)からさまざまなビットレートで利用可能にされる小さなセグメントの再生リストを介してHTTP経由でビデオを配信する。これは、メディアプレーヤがセグメントごとにビットレートとコンテンツソースの両方を切り替えることを可能にする。この切り替えは、ネットワーク帯域幅の変動を、そしてまた、ビデオの再生中に生じ得るインフラストラクチャーの障害を補正するのに役立つ。
【0094】
[00114]ストリーミングによるビデオコンテンツの配信は、さまざまなモデルのもとで実現され得る。1つのモデルにおいては、ユーザは、ビデオ番組の視聴に対する支払いを行い、たとえば、メディア番組のライブラリもしくは制限されたメディア番組の一部分へのアクセスに対する料金を支払うか、またはペイパービューサービスを使用する。放送テレビによってその開始直後に広く採用された別のモデルにおいては、スポンサーが、番組の提示中または提示に隣接して広告を提示する権利と引き換えに、メディア番組の提示に対する支払いを行う。いくつかのモデルにおいては、広告は、ビデオ番組において所定の時間に挿入され、この時間は、「広告スロット」または「広告休憩」と呼ばれ得る。ストリーミングビデオについては、メディアプレーヤは、クライアントデバイスが指定の広告スロット中に所定の広告を再生することもなくビデオを再生することができないように構成され得る。
【0095】
[00115]
図15を参照すると、ビデオコンテンツおよび広告を見るための装置1500の線図が示されている。選択された実施形態においては、装置1500は、プロセッサメモリ1504に動作可能に結合されているプロセッサ(CPU)1502を含むことが可能であり、プロセッサメモリ1504は、プロセッサ1502による実行用のバイナリーコード化された機能モジュールを保持する。そのような機能モジュールは、入力/出力およびメモリアクセスなどのシステム機能を取り扱うためのオペレーティングシステム1506、ウェブページを表示するためのブラウザ1508、ならびにビデオを再生するためのメディアプレーヤ1510を含み得る。それらのモジュールはさらに、ABRアルゴリズム110を含み得る。メモリ1504は、
図15において示されていないさらなるモジュール、たとえば、本明細書におけるその他の場所で記述されているその他のオペレーションを実行するためのモジュールを保持し得る。
【0096】
[00116]バス1514またはその他の通信コンポーネントが、装置1500内の情報の通信をサポートし得る。プロセッサ1502は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書において開示されている特徴および態様に従って特定のタスクを実行するように構成されているかまたはそのように動作可能な専門のもしくは専用のマイクロプロセッサであり得る。プロセッサメモリ1504(たとえば、ランダムアクセスメモリ(RAM)またはその他の動的なストレージデバイス)は、バス1514に、または直接プロセッサ1502に接続されて、情報と、プロセッサ1502によって実行されることになる命令とを格納し得る。メモリ1504はまた、そのような命令の実行中に一時変数またはその他の中間情報を格納し得る。
【0097】
[00117]ストレージデバイス1524におけるコンピュータ可読メディアが、バス1514に接続されて、プロセッサ1502のための静的な情報および命令を格納することが可能であり、たとえば、ストレージデバイス(CRM)1524は、装置1500が電源をオフにされるときにモジュール1506、1508、1510、および1515を格納することが可能であり、そこから、装置1500が電源を入れられたときに、それらのモジュールがプロセッサメモリ1504へとロードされ得る。ストレージデバイス1524は、情報、命令、またはそれらの何らかの組合せ、たとえば、プロセッサ1502によって実行されたときに、装置1500が、本明細書において記述されている方法の1つまたは複数のオペレーションを実行するように構成されるかまたは動作可能であるようにする命令を保持する非一時的コンピュータ可読ストレージメディアを含み得る。
【0098】
[00118]通信インターフェース1516はまた、バス1514に接続され得る。通信インターフェース1516は、任意選択でルータ/モデム1526および有線またはワイヤレス接続を介して、装置1500と1つまたは複数の外部デバイス、たとえばストリーミングシステム1400との間における双方向データ通信を提供またはサポートし得る。代替として、または追加として、装置1500は、アンテナ1529に接続されているトランシーバ1518を含むことが可能であり、それを通じて、装置1500は、ワイヤレス通信システムのための基地局と、またはルータ/モデム1526とワイヤレスに通信し得る。代替として、装置1500は、ローカルエリアネットワーク、仮想プライベートネットワーク、またはその他のネットワークを介してビデオストリーミングシステム1400と通信し得る。さらなる代替として、装置1500は、システム1400のモジュールまたはコンポーネントとして組み込まれて、バス1514を介して、またはその他の何らかのモダリティによってその他のコンポーネントと通信し得る。
【0099】
[00119]装置1500は、(たとえば、バス1514およびグラフィックスプロセッシングユニット1520を介して)ディスプレイユニット1528に接続され得る。ディスプレイ1528は、装置1500の操作者に情報を表示するための任意の適切な構成を含み得る。たとえば、ディスプレイ1528は、視覚的な表示で装置1500のユーザに情報を提示するために、液晶ディスプレイ(LCD)、タッチスクリーンLCD(たとえば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、またはその他のディスプレイデバイスを含むことまたは利用することが可能である。
【0100】
[00120]1つまたは複数の入力デバイス1530(たとえば、英数字キーボード、マイクロフォン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラ、またはカメラアレイ)が、情報およびコマンドを装置1500へ伝達するためにユーザ入力ポート1522を介してバス1514に接続され得る。選択された実施形態においては、入力デバイス1530は、カーソルの位置決めに対する制御を提供またはサポートし得る。このようなカーソル制御デバイス(ポインティングデバイスとも呼ばれる)は、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、または、物理的な動きを受信もしくは追跡把握して、その動きを、カーソルの動きを示す電気信号へと変換するためのその他のデバイスとして構成され得る。カーソル制御デバイスは、たとえばタッチセンシティブスクリーンを使用して、ディスプレイユニット1528へと組み込まれ得る。カーソル制御デバイスは、方向情報およびコマンド選択をプロセッサ1502に伝達し、ディスプレイ1528上のカーソルの動きを制御し得る。カーソル制御デバイスは、2つ以上の自由度を有して、たとえば、デバイスが平面または3次元空間におけるカーソル位置を指定することを可能にし得る。
【0101】
[00121]いくつかの実施形態は、命令実行システム、装置、システム、またはマシンによる、またはそれらに関連した使用のために非一時的コンピュータ可読ストレージメディアに実装され得る。コンピュータ可読ストレージメディアは、いくつかの実施形態によって記述されている方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つまたは複数のコンピューティングデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されたときに、いくつかの実施形態において記述されているものを実行するように構成されるかまたはそのように動作可能であり得る。
【0102】
[00122]本明細書における記述において、および後続する特許請求の範囲全体を通じて使用される際には、「a」、「an」、および「the」は、文脈が明確に別段の指示をしない限り、複数の参照を含む。また、本明細書における記述において、および後続する特許請求の範囲全体を通じて使用される際には、「in」の意味は、文脈が明確に別段の指示をしない限り、「in」および「on」を含む。
【0103】
[00123]上の記述は、さまざまな実施形態を、いくつかの実施形態の態様がどのように実施され得るかの例とともに示している。上記の例および実施形態は、唯一の実施形態であるとみなされるべきではなく、下記の特許請求の範囲によって定義されるいくつかの実施形態の柔軟性および利点を例示するために提示されている。上記の開示および下記の特許請求の範囲に基づいて、その他のアレンジ、実施形態、実装形態、および均等物が、特許請求の範囲によって定義される本明細書の範囲から逸脱することなく採用され得る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピューティングデバイスによって、ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する表示を生成することと、
前記コンピューティングデバイスによって、前記表示上の候補トランスコーディングポイントを選択することと、
前記コンピューティングデバイスによって、前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、 前記コンピューティングデバイスによって、前記ビットレートまたは前記プロファイルラダーの前記品質を分析することに基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記コンピューティングデバイスによって、前記ビデオに関して前記プロファイルラダーを使用することと
を備える方法。
[C2]
前記ビデオに関して前記プロファイルラダーを使用することが、
前記プロファイルラダーにおけるプロファイルに基づいて前記ビデオを複数のビデオストリームへとトランスコードすることを備える、C1に記載の方法。
[C3]
前記ビデオを前記複数のビデオストリームへとトランスコードすることが、
それぞれのプロファイルに関連付けられている前記ビットレートおよび前記品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える、C2に記載の方法。
[C4]
前記ビデオに関して前記プロファイルラダーを使用することが、
前記選択されたプロファイルラダーの前記プロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える、C1に記載の方法。
[C5]
前記選択されたプロファイルラダーの前記プロファイルに基づいて前記標準的なプロファイルラダーからプロファイルを選択することが、
前記選択されたプロファイルラダーにおけるプロファイルに最も近い前記ビットレートおよび前記品質測定値のうちの少なくとも一方を有するプロファイルを前記標準的なプロファイルから選択することを備える、C4に記載の方法。
[C6]
前記ビデオに関する前記表示を生成することが、
前記品質測定値に対する前記ビットレートの前記関係を表す曲線を生成することを備える、C1に記載の方法。
[C7]
前記候補トランスコーディングポイントを選択することが、
最後のポイントと比べてさらに高い品質を現在のポイントが含む場合に前記表示上のポイントを選択することを備える、C1に記載の方法。
[C8]
前記最後のポイントと比べて前記さらに高い品質を前記ポイントが含む場合に前記表示上のポイントを選択することが、
前記最後のポイントと前記現在のポイントとの間の品質における変化にしきい値を適用することと、
品質における前記変化が前記しきい値を満たす場合に前記現在のポイントを前記候補トランスコーディングポイントに加えることとを備える、C7に記載の方法。
[C9]
前記最後のポイントと比べて前記さらに高い品質を前記ポイントが含む場合に前記表示上のポイントを選択することが、
前記表示上の下限を決定することと、
前記表示上の上限を決定することと、
前記下限および前記上限に基づいて前記表示上のポイントを選択することとを備える、C7に記載の方法。
[C10]
前記下限を選択すること、または前記上限を選択することが、
前記下限または前記上限を決定するために、再生されたビットレートの確率分布を使用することを備える、C9に記載の方法。
[C11]
前記候補トランスコーディングポイントに基づいて前記複数の候補プロファイルラダーを生成することが、
前記複数の候補プロファイルラダーを形成するために前記候補トランスコーディングポイントから複数の組合せを生成することを備える、C1に記載の方法。
[C12]
前記複数の候補プロファイルラダーから前記プロファイルラダーを選択することが、 前記複数の候補プロファイルラダーから現在のプロファイルラダーにおけるプロファイルに関するビットレートに基づくビットレート表示を計算することと、
前記現在のプロファイルラダーを選択するかどうかを前記ビットレート表示に基づいて決定することとを備える、C1に記載の方法。
[C13]
前記ビットレート表示が、前記現在のプロファイルラダーの前記プロファイルに関連付けられているビットレートと、前記それぞれのプロファイルの再生の確率とに基づく重み付けされたビットレートを備える、C12に記載の方法。
[C14]
前記複数の候補プロファイルラダーから前記プロファイルラダーを選択することが、 前記複数の候補プロファイルラダーにおける現在のプロファイルラダーに関する品質測定値表示を計算することと、ここにおいて、前記品質測定値が、現在のプロファイルラダーにおけるプロファイルに関する品質測定値に基づく、
前記現在のプロファイルラダーを選択するかどうかを前記品質表示に基づいて決定することとを備える、C1に記載の方法。
[C15]
前記品質測定値表示が、前記現在のプロファイルラダーの前記プロファイルに関連付けられている品質測定値と、前記それぞれのプロファイルの再生の確率とに基づく重み付けされた品質測定値を備える、C14に記載の方法。
[C16]
命令を含む非一時的コンピュータ可読ストレージメディアであって、前記命令が、実行されたときに、
ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する表示を生成することと、
前記表示上の候補トランスコーディングポイントを選択することと、
前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、
前記ビットレートまたは前記プロファイルラダーの前記品質を分析することに基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記ビデオに関して前記プロファイルラダーを使用することとを行うように動作可能であるようにコンピュータシステムを制御する、非一時的コンピュータ可読ストレージメディア。
[C17]
前記ビデオに関して前記プロファイルラダーを使用することが、
前記プロファイルラダーにおけるプロファイルに基づいて前記ビデオを複数のビデオストリームへとトランスコードすることを備える、C16に記載の非一時的コンピュータ可読ストレージメディア。
[C18]
前記ビデオを前記複数のビデオストリームへとトランスコードすることが、
それぞれのプロファイルに関連付けられている前記ビットレートおよび前記品質測定値のうちの少なくとも一方に基づいてそれぞれのビデオストリームをトランスコードすることを備える、C17に記載の非一時的コンピュータ可読ストレージメディア。
[C19]
前記ビデオに関して前記プロファイルラダーを使用することが、
前記選択されたプロファイルラダーの前記プロファイルに基づいて標準的なプロファイルラダーからプロファイルを選択することを備える、C16に記載の非一時的コンピュータ可読ストレージメディア。
[C20]
1つまたは複数のコンピュータプロセッサと、
命令を備える非一時的コンピュータ可読ストレージメディアと
を備える装置であって、前記命令が、実行されたときに、
ビデオに関する品質測定値に対するビットレートの関係を表す前記ビデオに関する表示を生成することと、
前記表示上の候補トランスコーディングポイントを選択することと、
前記候補トランスコーディングポイントに基づいて複数の候補プロファイルラダーを生成することと、ここにおいて、前記複数の候補プロファイルラダーが、プロファイルの別々の組合せを含み、ここにおいて、プロファイルが、ビットレートおよび品質測定値のうちの少なくとも一方に関連付けられている、
前記ビットレートまたは前記プロファイルラダーの前記品質を分析することに基づいて前記複数の候補プロファイルラダーからプロファイルラダーを選択することと、
前記ビデオに関して前記プロファイルラダーを使用することとを行うように動作可能であるように前記1つまたは複数のコンピュータプロセッサを制御する、装置。