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

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

▶ グーグル インコーポレイテッドの特許一覧

特許7559156適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体
<>
  • 特許-適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 図1
  • 特許-適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 図2
  • 特許-適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 図3
  • 特許-適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-20
(45)【発行日】2024-10-01
(54)【発明の名称】適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体
(51)【国際特許分類】
   H04N 21/438 20110101AFI20240924BHJP
   H04N 21/435 20110101ALI20240924BHJP
【FI】
H04N21/438
H04N21/435
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2023117721
(22)【出願日】2023-07-19
(62)【分割の表示】P 2022522357の分割
【原出願日】2020-01-24
(65)【公開番号】P2023145562
(43)【公開日】2023-10-11
【審査請求日】2023-08-03
(31)【優先権主張番号】62/914,978
(32)【優先日】2019-10-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マット・ダクレフ
(72)【発明者】
【氏名】アニル・ヴィジェンドラン
【審査官】大西 宏
(56)【参考文献】
【文献】特開2006-345582(JP,A)
【文献】特開2010-258489(JP,A)
【文献】特開2011-146998(JP,A)
【文献】特開2013-098982(JP,A)
【文献】特表2019-514084(JP,A)
【文献】米国特許出願公開第2008/0310814(US,A1)
【文献】米国特許出願公開第2013/0174045(US,A1)
【文献】米国特許出願公開第2019/0281333(US,A1)
【文献】国際公開第2002/032083(WO,A1)
【文献】国際公開第2019/059134(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 -21/858
(57)【特許請求の範囲】
【請求項1】
複数のバッファを使用してビデオコンテンツをストリーミングするための方法であって、
ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するステップと、
前記ユーザデバイスにおいて、前記サーバから、前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するステップであって、前記予測放棄分布が前記ビデオコンテンツアイテムの持続時間に対して正規化される、ステップと、
前記ビデオコンテンツアイテムの部分、前記ユーザデバイスのバッファ内に記憶するステップであって、前記ユーザデバイスの前記バッファのサイズが、前記予測放棄分布に基づいて決定される、ステップとを含む、方法。
【請求項2】
前記予測放棄分布に基づいて前記バッファの第2のサイズを決定するステップと、
前記バッファのサイズを前記第2のサイズに変更するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記バッファの前記第2のサイズに基づいて、前記サーバに前記ビデオコンテンツアイテムの第2の部分を要求するステップと、
前記サーバから、前記ビデオコンテンツアイテムの前記第2の部分を受信するステップと、
前記ビデオコンテンツアイテムの提示を継続しながら、前記ビデオコンテンツアイテムの前記第2の部分を、前記第2のサイズの前記バッファ内に記憶するステップと
をさらに含む、請求項2に記載の方法。
【請求項4】
前記予測放棄分布に基づいて前記バッファ前記第2のサイズを決定するステップが、
前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を下回ることを判定するステップと、
前記複数の尤度のうちの前記尤度が前記所定のしきい値を下回るとの判定に応答して、前記バッファ前記第2のサイズを前記バッファの前記サイズよりも小さくすることを決定するステップ
を含む、請求項2に記載の方法。
【請求項5】
前記予測放棄分布に基づいて前記バッファ前記第2のサイズを決定するステップが、
前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を超えることを判定するステップと、
前記複数の尤度のうちの前記尤度が前記所定のしきい値を超えるとの判定に応答して、前記バッファ前記第2のサイズを前記バッファの前記サイズよりも大きくすることを決定するステップ
を含む、請求項2に記載の方法。
【請求項6】
前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項1に記載の方法。
【請求項7】
前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項1に記載の方法。
【請求項8】
複数のバッファを使用してビデオコンテンツをストリーミングするための方法であって、
ユーザデバイスからサーバへの、ビデオコンテンツアイテムをストリーミングするための要求を受信するステップと、
前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を決定するステップであって、前記予測放棄分布が前記ビデオコンテンツアイテムの持続時間に対して正規化される、ステップと、
前記予測放棄分布に基づいて前記ビデオコンテンツアイテムの部分を、前記ユーザデバイスに送信するステップと
を含む、方法。
【請求項9】
前記ユーザデバイスに送信される前記ビデオコンテンツアイテムの前記部分のサイズは、前記予測放棄分布に基づいて決定される、請求項8に記載の方法。
【請求項10】
前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項8に記載の方法。
【請求項11】
前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項8に記載の方法。
【請求項12】
前記予測放棄分布を前記ユーザデバイスに送信するステップをさらに含む、請求項8に記載の方法。
【請求項13】
前記ビデオコンテンツアイテムの第2の部分の要求を、前記ユーザデバイスから受信するステップと、
前記予測放棄分布に基づいて前記ビデオコンテンツアイテムの前記第2の部分を送信するステップであって、前記ビデオコンテンツアイテムの前記第2の部分が、前記ビデオコンテンツアイテムの前記部分と異なるサイズを有する、ステップと
をさらに含む、請求項8に記載の方法。
【請求項14】
複数のバッファを使用してビデオコンテンツをストリーミングするためのシステムであって、
ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、
前記ユーザデバイスにおいて、前記サーバから、前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することであって、前記予測放棄分布が前記ビデオコンテンツアイテムの持続時間に対して正規化される、ことと、
前記ビデオコンテンツアイテムの部分を、前記ユーザデバイスのバッファ内に記憶することであって、前記ユーザデバイスの前記バッファのサイズが、前記予測放棄分布に基づいて決定される、ことと
行うように構成されたハードウェアプロセッサ
を備える、システム。
【請求項15】
前記ハードウェアプロセッサが、
前記予測放棄分布に基づいて前記バッファの第2のサイズを決定することと、
前記バッファのサイズを前記第2のサイズに変更することと
を行うようにさらに構成された、請求項14に記載のシステム。
【請求項16】
前記ハードウェアプロセッサが、
前記バッファの前記第2のサイズに基づいて、前記サーバに前記ビデオコンテンツアイテムの第2の部分を要求することと、
前記サーバから、前記ビデオコンテンツアイテムの前記第2の部分を受信することと、
前記ビデオコンテンツアイテムの提示を継続しながら、前記ビデオコンテンツアイテムの前記第2の部分を、前記第2のサイズの前記バッファ内に記憶することと
を行うようにさらに構成された、請求項15に記載のシステム。
【請求項17】
前記予測放棄分布に基づいて前記バッファ前記第2のサイズを決定することが、
前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を下回ることを判定することと、
前記複数の尤度のうちの前記尤度が前記所定のしきい値を下回るとの判定に応答して、前記バッファ前記第2のサイズを前記バッファの前記サイズよりも小さくすることを決定することと
を含む、請求項15に記載のシステム。
【請求項18】
前記予測放棄分布に基づいて前記バッファ前記第2のサイズを決定することが、
前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を超えることを判定することと、
前記複数の尤度のうちの前記尤度が前記所定のしきい値を超えるとの判定に応答して、前記バッファ前記第2のサイズを前記バッファの前記サイズよりも大きくすることを決定することと
を含む、請求項15に記載のシステム。
【請求項19】
前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項14に記載のシステム。
【請求項20】
前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、2019年10月14日に出願した、米国仮特許出願第62/914,978号の利益を主張するものである。
【0002】
開示される主題は、適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体に関する。
【背景技術】
【0003】
ユーザは、メディアコンテンツ共有サービスからユーザデバイス(たとえば、携帯電話、タブレットコンピュータ、スマートテレビ、メディアプレーヤなど)にメディアコンテンツ(たとえば、ビデオ、テレビ番組、映画、音楽など)を頻繁にストリーミングする。メディアコンテンツアイテムをストリーミングするユーザデバイスは、メディアコンテンツアイテムをストリーミングするために使用されるネットワーク接続が品質低下するかまたは遅延する場合に、メディアコンテンツの部分が提示のために利用可能になるように、メディアコンテンツアイテムをバッファリングし得る。多くの場合、ユーザデバイスは、固定されたバッファサイズを使用する。いくつかのそのような場合、たとえば、ユーザデバイスのユーザが、記憶された部分が提示される前にメディアコンテンツアイテムの提示を停止した場合、バッファ内に記憶される、提示されないメディアコンテンツアイテムの部分をサーバが送信する場合がある。バッファリングされるが提示されないメディアコンテンツアイテムの部分を送信することは、サーバとユーザデバイスの両方にとってリソースの浪費になり得る。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、ビデオコンテンツをストリーミングするための新しい方法、システム、および媒体を提供することが望ましい。
【課題を解決するための手段】
【0005】
適応的バッファを使用してビデオコンテンツをストリーミングための方法、システム、および媒体が提供される。(固定バッファは、固定されたサイズ(たとえば、記憶容量)のメモリストレージを提供する一方、「適応的」バッファは、必要に応じて変更され得るサイズを有するメモリストレージを提供する。)
【0006】
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするための方法が提供され、方法は、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するステップと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するステップと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信するステップと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶するステップと、ビデオコンテンツアイテムをユーザデバイスによって提示させるステップと、予測放棄分布に基づいてバッファの第2のサイズを決定するステップと、バッファのサイズを第2のサイズに変更するステップと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求するステップと、サーバから、ビデオコンテンツアイテムの第2の部分を受信するステップと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶するステップとを含む。典型的には、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、コンテンツアイテムの開始時点とコンテンツアイテムの終了時点との間にある少なくとも1つの時点を含み、コンテンツアイテムの開始時点と終了時点との間にある複数の異なる時点を含み得る。加えて、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、ビデオコンテンツアイテムの終点を含み得る。さらなる例として、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、点D/n、2D/n、...、(n-1)D/nであり得、ここで、nは、正の整数であり、Dは、ビデオコンテンツアイテムの持続時間であり、任意選択で、ビデオコンテンツアイテムの終了時の提示時点も含み得る。
【0007】
いくつかの実施形態において、予測放棄分布に基づいてバッファの第2のサイズを決定するステップは、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する複数の尤度のうちの尤度が所定のしきい値を下回ることを判定するステップと、複数の尤度のうちの尤度が所定のしきい値を下回るとの判定に応答して、バッファの第2のサイズを第1のサイズよりも大きくすることを決定するステップとを含む。
【0008】
いくつかの実施形態において、予測放棄分布に基づいてバッファの第2のサイズを決定するステップは、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する複数の尤度のうちの尤度が所定のしきい値を超えることを判定するステップと、複数の尤度のうちの尤度が所定のしきい値を超えるとの判定に応答して、バッファの第2のサイズを第1のサイズよりも小さくすることを決定するステップとを含む。
【0009】
いくつかの実施形態において、方法は、予測放棄分布に基づいてバッファの第3のサイズを決定するステップと、ビデオコンテンツアイテムの提示を継続しながら、バッファのサイズを第3のサイズに変更するステップとをさらに含む。
【0010】
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの持続時間に対して正規化される。
【0011】
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの持続時間に基づいて計算される。
【0012】
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの特性に基づいて計算される。
【0013】
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするためのシステムが提供され、システムは、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信することと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することと、ビデオコンテンツアイテムをユーザデバイスによって提示させることと、予測放棄分布に基づいてバッファの第2のサイズを決定することと、バッファのサイズを第2のサイズに変更することと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することと、サーバから、ビデオコンテンツアイテムの第2の部分を受信することと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶することとを行うように構成されたハードウェアプロセッサを備える。
【0014】
開示される主題のいくつかの実施形態によれば、コンピュータ可読媒体が提供され、これは非一時的コンピュータ可読媒体であり得るが、これらの実施形態は、非一時的コンピュータ可読媒体に限定されない。いくつかの実施形態において、コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、バッファを使用してビデオコンテンツをストリーミングするための方法を実行させるコンピュータ実行可能命令を含み、方法は、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信することと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することと、ビデオコンテンツアイテムをユーザデバイスによって提示させることと、予測放棄分布に基づいてバッファの第2のサイズを決定することと、バッファのサイズを第2のサイズに変更することと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することと、サーバから、ビデオコンテンツアイテムの第2の部分を受信することと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶することとを含む。開示される主題の他の実施形態によれば、コンピュータ可読媒体が提供され、これは、プロセッサによって実行されると、プロセッサに、本明細書で説明されている任意の実施形態または実装形態による方法を実行させるコンピュータ実行可能命令を含む、非一時的なコンピュータ可読媒体であり得るが、これらの実施形態は、非一時的なコンピュータ可読媒体に限定されない。
【0015】
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするためのシステムが提供され、システムは、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するための手段と、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するための手段と、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信するための手段と、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶するための手段と、ビデオコンテンツアイテムをユーザデバイスによって提示させるための手段と、予測放棄分布に基づいてバッファの第2のサイズを決定するための手段と、バッファのサイズを第2のサイズに変更するための手段と、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求するための手段と、サーバから、ビデオコンテンツアイテムの第2の部分を受信するための手段と、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶するための手段とを備える。
【0016】
開示される主題の様々な目的、特徴、および利点は、同様の参照番号が同様の要素を識別する以下の図面に関連して考慮されるとき、開示される主題の以下の詳細な説明を参照してより完全に理解され得る。
【図面の簡単な説明】
【0017】
図1】開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするためのプロセスの例示的な例を示す図である。
図2】開示される主題のいくつかの実施形態による、予測放棄分布を生成するためのプロセスの例示的な例を示す図である。
図3】開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするための、本明細書で説明されるメカニズムの実装に適した例示的なシステムの概略図である。
図4】開示される主題のいくつかの実施形態による、図3のサーバおよび/またはユーザデバイスにおいて使用され得るハードウェアの詳細な例を示す図である。
【発明を実施するための形態】
【0018】
様々な実施形態によれば、適応的バッファを使用してビデオコンテンツをストリーミングするためのメカニズム(方法と、システムと、媒体とを含むことができる)が提供される。
【0019】
いくつかの実施形態において、本明細書で説明されているメカニズムは、メディアコンテンツを閲覧するユーザがメディアコンテンツの終了前にメディアコンテンツの提示を停止する(ビデオ再生放棄と呼ぶこともある)尤度に基づいて、ストリーミングされているメディアコンテンツを記憶するために使用されるバッファのサイズを変更することができる。
【0020】
いくつかの実施形態において、メディアコンテンツアイテムをユーザデバイスにストリーミングするサーバは、ユーザデバイスのユーザがメディアコンテンツアイテム内の異なる再生時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布をユーザデバイスに送信することができる。いくつかの実施形態において、ユーザデバイスは、予測放棄分布を受信することができ、サーバから受信したメディアコンテンツアイテムの部分を記憶するためにユーザデバイスによって使用されるバッファのサイズを、ユーザデバイスによるメディアコンテンツアイテムの部分の提示の前に変更することができる。いくつかの実施形態において、ユーザデバイスは、任意の適切な方法でバッファのサイズを変更することができる。たとえば、いくつかの実施形態において、ユーザデバイスは、ストリーミングされたメディアコンテンツアイテムの部分を第1のサイズのバッファ内に最初に記憶することができ、ユーザデバイスのユーザがメディアコンテンツアイテムの提示を停止する尤度が比較的高いことを示す予測放棄分布の受信に応答して、より少ないメディアコンテンツアイテムがサーバから要求され、ユーザデバイスによって記憶されるように、バッファのサイズを減少させることができる。逆に、ユーザデバイスのユーザがメディアコンテンツアイテムの提示を停止する尤度が比較的低いことを示す予測放棄分布の受信に応答して、ユーザデバイスは、より多いメディアコンテンツアイテムがサーバから要求され、ユーザデバイスによって記憶されるように、バッファのサイズを増加させることができる。
【0021】
いくつかの実施形態において、本明細書で説明されているメカニズムは、任意の適切な方法で、任意の適切な情報に基づいて、予測放棄分布を決定することができる。たとえば、いくつかの実施形態において、メディアコンテンツをユーザデバイスにストリーミングするサーバは、特定のメディアコンテンツアイテムについて、メディアコンテンツアイテムを閲覧するユーザがメディアコンテンツアイテムの異なる提示時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布を決定することができる。いくつかの実施形態において、特定のメディアコンテンツアイテムについての予測放棄分布は、メディアコンテンツアイテムの持続時間、メディアコンテンツアイテムが音楽を含むかどうか、メディアコンテンツアイテムがウェブサイト内(たとえば、メディアコンテンツアイテムのリスト内)もしくはソーシャルネットワーキングの投稿内にインラインで挿入されているかどうか、メディアコンテンツアイテムが自動再生するように構成されているかどうか、メディアコンテンツアイテムに関連付けられているオーディオコンテンツがデフォルトでミュートされるかどうか、および/または任意の他の適切な情報などの、メディアコンテンツアイテムに関連付けられている任意の適切な情報に基づいて決定され得る。いくつかの実施形態において、特定のメディアコンテンツアイテムについての予測放棄分布は、メディアコンテンツアイテムをその全体において視聴したユーザの割合、メディアコンテンツアイテムの提示を停止する前にユーザによって閲覧されたメディアコンテンツアイテムの平均持続時間、および/または任意の他の適切な以前の閲覧情報などの、他のユーザによるメディアコンテンツアイテムの以前の閲覧に基づいて決定され得る。
【0022】
本明細書で説明されているメカニズムは、ビデオコンテンツに関連するものとして概して説明されているが、いくつかの実施形態において、本明細書で説明されているメカニズムは、オーディオコンテンツ(たとえば、音楽、ポッドキャスト、ライブストリーミングオーディオコンテンツ、および/または任意の他の適切なタイプのオーディオコンテンツ)、ビデオコンテンツ(たとえば、ビデオ、テレビ番組、映画、ライブストリーミングビデオコンテンツ、ゲーム、および/または任意の他の適切なタイプのビデオコンテンツ)、および/または任意の他の適切なタイプのメディアコンテンツなどの、任意の適切なタイプのメディアコンテンツをストリーミングすることに関連して使用され得ることに留意されたい。
【0023】
図1に進むと、開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするためのプロセスの例示的な例100が示されている。いくつかの実施形態において、プロセス100のブロックは、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートテレビ、メディアプレーヤ、ディスプレイデバイスに接続されたストリーミングメディアデバイス、ゲームコンソール、および/または任意の他の適切なタイプのユーザデバイスなどの、任意の適切なユーザデバイス上で実行され得る。
【0024】
プロセス100は、102において、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することによって開始することができる。いくつかの実施形態において、ビデオコンテンツアイテムは、ユーザによって生成されたビデオ、ミュージックビデオ、テレビ番組、映画、ライブストリーミングビデオ、および/または任意の他の適切なタイプのビデオコンテンツなどの、任意の適切なタイプのビデオコンテンツに対応することができる。いくつかの実施形態において、プロセス100は、任意の適切な情報に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。たとえば、いくつかの実施形態において、プロセス100は、ユーザデバイスにおいて、ビデオコンテンツアイテムの選択を示すユーザ入力の受信に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。別の例として、いくつかの実施形態において、プロセス100は、ページ(たとえば、ブラウザウィンドウ、ソーシャルネットワーキングサービスのフィード、および/または任意の他の適切なページ)が、ビデオコンテンツアイテムが埋め込まれている部分を含むようにスクロールされたとの判定に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。いくつかの実施形態において、ビデオコンテンツアイテムをストリーミングするための要求は、ユーザデバイス上で実行される任意の適切なアプリケーションを介してユーザデバイスから送信され得ることに留意されたい。いくつかのそのような実施形態において、アプリケーションは、要求されたビデオコンテンツアイテムをホストおよび/もしくはストリーミングするメディアコンテンツ共有サービス、ソーシャルネットワーキングサービス、ならびに/または任意の他の適切なエンティティもしくはサービスなどの、任意の適切なエンティティまたはサービスに関連付けられ得る。
【0025】
いくつかの実施形態において、ビデオコンテンツアイテムをストリーミングするための要求は、ビデオコンテンツアイテムの識別子、プロセス100を実行するユーザデバイスに関連する情報(たとえば、ユーザデバイスのモデル、ユーザデバイスの識別子、ユーザデバイスのディスプレイの画面サイズもしくは解像度、ユーザデバイスおよび/もしくはユーザデバイスに関連付けられたディスプレイの現在の向き、バッファ容量情報、および/または任意の他の適切なデバイス情報)、ユーザデバイスのネットワーク接続に関連する情報(たとえば、ネットワーク接続の現在の帯域幅、ネットワーク接続の現在のレイテンシ、ネットワーク接続に関連する現在の信号強度、および/または任意の他の適切なネットワーク情報)、および/または任意の他の適切な情報などの、任意の適切な情報を含むことができる。
【0026】
104において、プロセス100は、サーバから、ビデオコンテンツアイテムに対応する予測放棄分布を受信することができる。いくつかの実施形態において、予測放棄分布は、任意の適切な情報を示すことができる。たとえば、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムを閲覧するユーザがビデオコンテンツアイテムの異なる時点においてビデオコンテンツアイテムの提示を停止する確率または尤度を示すことができる。いくつかの実施形態において、予測放棄分布は、予測放棄分布が[0,1]からの予測放棄確率を示すように、ビデオコンテンツアイテムの長さに対して正規化され得、ここで、0は、ビデオコンテンツアイテムの初期時点を示し、1は、ビデオコンテンツアイテムの全持続時間を示す。予測放棄分布の例は、{(0.25,40);(0.5,80);(1,90)}であり得、これは、ユーザがビデオコンテンツアイテムの持続時間の0.25においてビデオコンテンツアイテムの提示を停止する40%の尤度と、ユーザがビデオコンテンツアイテムの持続時間の0.5においてビデオコンテンツアイテムの提示を停止する80%の尤度と、ユーザがビデオコンテンツアイテムの持続時間の全長においてビデオコンテンツアイテムの提示を停止する90%の尤度とを示す。いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの任意の適切な数の時点についての確率を示すことができる。たとえば、いくつかの実施形態において、予測放棄分布は、連続的な時間分布に沿った確率を示すことができる。別の例として、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの全持続時間の任意の適切な所定の間隔における(たとえば、ビデオコンテンツアイテム持続時間の0.1の間隔における、ビデオコンテンツアイテム持続時間の0.01における間隔における、および/または任意の他の適切な間隔における)確率を示すことができる。さらに別の例として、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの任意の適切な所定の時点における(たとえば、1秒ごとの、10秒ごとの、1分ごとの、および/または任意の他の適切な時点における)確率を示すことができる。
【0027】
いくつかの実施形態において、予測放棄分布は、
P(T≦t0+t|T>t0)
などの、ユーザデバイスのユーザが現在の時間t0と将来の時間tとの間にビデオコンテンツアイテムの提示を停止する確率をユーザデバイスが計算することを可能にすることができる。いくつかの実施形態において、この確率は、
【0028】
【数1】
【0029】
として表され得、ここで、Fは、サーバによって計算された放棄分布を示し、Sは、ユーザが少なくとも時間t0までにビデオコンテンツアイテムを視聴する確率を示す。いくつかの実施形態において、S(t0)=1-F(t0)であることに留意されたい。放棄分布Fを計算するためのより詳細な技法について、図2の202に関連して以下に説明する。
【0030】
いくつかの実施形態において、予測放棄分布は、図2に示され、図2に関連して以下に説明されているような、任意の適切な方法で、任意の適切な情報に基づいて、サーバによって決定され得ることに留意されたい。
【0031】
106において、ユーザデバイスは、サーバから、ビデオコンテンツアイテムの第1の部分を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第1の部分は、ビデオコンテンツアイテムの任意の適切な部分に対応することができ、任意の適切なサイズ(たとえば、特定のキロバイト数のデータ、および/または任意の他の適切なサイズ)、および/または持続時間(たとえば、1秒、2秒、5秒、および/または任意の他の適切な持続時間)であり得る。
【0032】
108において、プロセス100は、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することができる。いくつかの実施形態において、バッファの第1のサイズは、任意の適切な情報に基づいて設定され得る。たとえば、いくつかの実施形態において、バッファの第1のサイズは、デフォルト値(たとえば、ユーザデバイスによって設定されたデフォルト値、ユーザデバイス上で実行されているメディアコンテンツをストリーミングするためのアプリケーションによって設定されたデフォルト値、および/または任意の他の適切なデフォルト値)であり得る。いくつかの実施形態において、バッファの第1のサイズは、任意の適切なサイズ(たとえば、メディアコンテンツの所定のフレーム数、ビデオコンテンツアイテムの第1の部分の所定のサイズ、および/または任意の他の適切なサイズ)、および/またはビデオコンテンツの任意の適切な持続時間(たとえば、2秒、5秒、10秒、および/または任意の他の適切な持続時間)に対応することができる。
【0033】
110において、プロセス100は、ビデオコンテンツアイテムの第1の部分を提示することを開始することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でビデオコンテンツアイテムの第1の部分を提示することを開始することができる。たとえば、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分を提示する前に、ビデオコンテンツアイテムの第1の部分をバッファから取得させることができる。別の例として、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分を、プロセス100を実行するユーザデバイス上に提示されるビデオプレーヤウィンドウ内に提示させることができる。いくつかのそのような実施形態において、ビデオプレーヤウィンドウは、特定のメディアコンテンツ共有サービスからのメディアコンテンツをストリーミングするためのアプリケーション内に提示されたユーザインターフェース内、ブラウザウィンドウ内に提示されたユーザインターフェース内、および/または任意の他の適切なユーザインターフェース内などの、任意の適切なユーザインターフェース内に提示され得る。
【0034】
112において、プロセス100は、予測放棄分布に基づいて、更新されたバッファサイズを決定することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法で、更新されたバッファサイズを決定することができる。たとえば、いくつかの実施形態において、プロセス100は、予測放棄尤度が所定のしきい値を超える(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する50%よりも高い尤度、ユーザがビデオコンテンツアイテムの提示を停止する70%よりも高い尤度、および/または任意の他の適切な尤度)との判定に応答して、更新されたバッファサイズがバッファの第1のサイズよりも小さくなるように、更新されたバッファサイズを決定することができる。別の例として、いくつかの実施形態において、プロセス100は、予測放棄尤度が所定のしきい値を下回る(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する10%未満の尤度、ユーザがビデオコンテンツアイテムの提示を停止する20%未満の尤度、および/または任意の他の適切な尤度)との判定に応答して、更新されたバッファサイズがバッファの第1のサイズよりも大きくなるように、更新されたバッファサイズを決定することができる。いくつかの実施形態において、バッファサイズを増加または減少するかどうかを決定するために、任意の適切な所定のしきい値が使用され得ることに留意されたい。
【0035】
いくつかの実施形態において、プロセス100は、特定の時間範囲内の予測放棄尤度に基づいて、更新されたバッファサイズを決定することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの現在の提示時点からの所定の持続時間内(たとえば、次の1分以内、次の5分以内、および/または任意の他の適切な時間の持続時間)の予測放棄尤度に基づいて、更新されたバッファサイズを決定することができる。より具体的な例として、t0が現在の時間を示す、P(T≦t0+t|T>t0)の上記で与えられている放棄確率分布を使用して、プロセス100は、ユーザデバイスのユーザが現在の時間t0と将来の時間tとの間にビデオコンテンツアイテムの提示を停止する確率を決定することができ、ここで、tは、将来における任意の適切な所定の持続時間(たとえば、5秒、10秒、1分、3分、5分、および/または任意の他の適切な持続時間)である。いくつかの実施形態において、将来の時間tは、現在のバッファサイズ(たとえば、108に関連して上記で説明されているように、第1のバッファサイズ)に基づいて決定され得ることに留意されたい。たとえば、現在のバッファサイズがビデオコンテンツアイテムの特定の持続時間(たとえば、5秒、10秒、および/または任意の他の適切な持続時間)に対応する例において、将来の時間tは、現在のバッファサイズに関連付けられたビデオコンテンツアイテムの持続時間に対応することができる。加えてまたは代替的に、いくつかの実施形態において、将来の時間tは、ビデオコンテンツアイテムの総持続時間に基づいて決定され得ることに留意されたい。
【0036】
いくつかの実施形態において、プロセス100は、任意の適切な技法または技法の組合せを使用して、予測放棄分布に基づいて、更新されたバッファサイズを決定することができる。たとえば、いくつかの実施形態において、プロセス100は、固定された量だけバッファサイズを増加または減少させることによって、第1のサイズからバッファのサイズを変更することができる。別の例として、いくつかの実施形態において、プロセス100は、予測放棄分布を使用して計算されるように、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する尤度に基づいて、バッファサイズへの変更を決定することができる。より具体的な例として、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度が所定のしきい値を下回るとの判定に基づいて、バッファサイズを増加させることを決定する例において、プロセス100は、尤度が所定のしきい値を下回る量に基づいて、バッファサイズの増加のサイズを決定することができる。具体的な例として、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度を40%として計算し、所定のしきい値が60%である例において、プロセス100は、バッファサイズを第1の量(たとえば、ビデオコンテンツアイテムの追加の3秒を保持するため、ビデオコンテンツアイテムの追加の5秒を保持するため、および/または任意の他の適切な量)だけ増加させることを決定することができる。この具体的な例を続けると、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度を10%として計算し、所定のしきい値が60%である例において、プロセス100は、バッファサイズを第1の量よりも大きい第2の量だけ増加させることを決定することができる。いくつかの実施形態において、プロセス100は、たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が所定のしきい値を超えるとの判定に応答して、同様の技法を使用して、第1のバッファサイズよりも小さい更新されたバッファサイズを決定することができることに留意されたい。
【0037】
114において、プロセス100は、バッファサイズを第1のサイズから更新されたバッファサイズに変更することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でバッファサイズを変更することができる。たとえば、いくつかの実施形態において、プロセス100は、メディアコンテンツのためのバッファを割り当てる任意の適切な関数への関数呼び出しを送信することができる。いくつかのそのような実施形態において、プロセス100は、更新されたバッファサイズをパラメータとして、たとえば、バッファコントローラに送信することができる。
【0038】
116において、プロセス100は、サーバからのビデオコンテンツアイテムの第2の部分を要求することができる。いくつかの実施形態において、プロセス100は、任意の適切な情報に基づいて、ビデオコンテンツアイテムの第2の部分を要求することができる。たとえば、いくつかの実施形態において、プロセス100は、バッファ内に記憶されたビデオコンテンツの量が所定のしきい値未満に低下した(たとえば、ビデオコンテンツアイテムの所定の持続時間未満がバッファ内に残っている、および/または任意の他の適切な量のビデオコンテンツアイテム)との判定に応答して、ビデオコンテンツアイテムの第2の部分を要求することができる。別の例として、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分の所定の量よりも多くが提示されたとの判定に応答して、ビデオコンテンツアイテムの第2の部分を要求することができる。いくつかの実施形態において、プロセス100は、更新されたバッファサイズの指標をサーバに送信することができることに留意されたい。
【0039】
いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの部分に対する要求間の時間遅延がビデオコンテンツアイテムの部分に対する以前の要求から(たとえば、102において送信されたビデオコンテンツアイテムをストリーミングするための要求、および/または任意の他の適切な以前に送信された要求から)経過したかどうかの判定に基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することができることに留意されたい。いくつかの実施形態において、時間遅延は、予測放棄分布に基づいて決定され得る。たとえば、上記の
【0040】
【数2】
【0041】
与えられているtとt0との間にユーザがビデオコンテンツアイテムの提示を停止する例示的な予測確率を考慮すると、確率は、
【0042】
【数3】
【0043】
として表され得る。いくつかの実施形態において、xは、放棄確率がしきい値Pに低下する前に、プロセス100を実行するユーザデバイスが到達するメディア位置を表すことができる。いくつかの実施形態において、放棄分布は、
【0044】
【数4】
【0045】
と表され得る。いくつかの実施形態において、
【0046】
【数5】
【0047】
である。いくつかの実施形態において、時間は、
【0048】
【数6】
【0049】
として計算され得、時間遅延は、
【0050】
【数7】
【0051】
として計算され得る。
【0052】
118において、プロセス100は、要求に応答して、サーバから、ビデオコンテンツアイテムの第2の部分を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、任意の適切なサイズまたは持続時間であり得る。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、106に関連して上記で説明されているように、ビデオコンテンツアイテムの第1の部分のサイズまたは持続時間と異なるサイズまたは持続時間を有することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、更新されたバッファサイズに対応するサイズまたは持続時間を有することができる。より具体的な例として、いくつかの実施形態において、プロセス100が、(たとえば、114に関連して上記で説明されているように)バッファの第1のサイズよりも比較的小さいバッファサイズを有するようにバッファサイズを変更した例において、ビデオコンテンツアイテムの第2の部分は、ビデオコンテンツアイテムの第1の部分よりも小さいサイズまたは短い持続時間を有することができる。別のより具体的な例として、いくつかの実施形態において、プロセス100が、(たとえば、114に関連して上記で説明されているように)バッファの第1のサイズよりも比較的大きいバッファサイズを有するようにバッファサイズを変更した例において、ビデオコンテンツアイテムの第2の部分は、ビデオコンテンツアイテムの第1の部分よりも大きいサイズまたは長い持続時間を有することができる。
【0053】
120において、プロセス100は、ビデオコンテンツアイテムを提示し続けながら、ビデオコンテンツアイテムの第2の部分をバッファ内に記憶することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でビデオコンテンツアイテムを提示し続けることができる。たとえば、いくつかの実施形態において、プロセス100は、106に関連して上記で説明されているように、バッファからビデオコンテンツアイテムの部分を取得し続け、ビデオプレーヤウィンドウにおいてビデオコンテンツアイテムの取得された部分を提示し続けることができる。
【0054】
いくつかの実施形態において、プロセス100は、112にループバックすることができ、予測放棄分布に基づいて、更新されたバッファサイズを決定することができ(すなわち、ユーザデバイスのバッファに関する第3のサイズを決定することができ)、コンテンツアイテムの提示を継続しながら、114においてバッファサイズを更新された(第3の)バッファサイズに変更することができる。いくつかの実施形態において、プロセス100は、予測放棄分布に基づいて、ビデオコンテンツアイテムの提示中に、バッファのサイズを順次に複数回変更させることができることに留意されたい。いくつかのそのような実施形態において、プロセス100は、ビデオコンテンツアイテムの提示中に、バッファのサイズを任意の適切な回数(たとえば、1回、2回、3回、10回、および/または任意の他の適切な回数)変更させることができる。具体的な例として、予測放棄分布が、ユーザがビデオコンテンツアイテムの開始時にビデオコンテンツアイテムの提示を停止させる尤度が比較的高いことを示す例において、プロセス100は、ビデオコンテンツアイテムの開始部分の提示中に、バッファが対応して小さいサイズを有するようにすることができる。この例を続けると、ユーザがビデオコンテンツアイテムの開始部分の間にビデオコンテンツアイテムの提示を停止せず、予測放棄分布が、ユーザがビデオコンテンツアイテムの中央部分の間にビデオコンテンツアイテムの提示を停止する尤度が低いことを示す例において、プロセス100は、ビデオコンテンツアイテムの中央部分の提示中にバッファサイズを増加させることができる。この例をさらに続けると、ユーザがビデオコンテンツアイテムの中央部分の間にビデオコンテンツアイテムの提示を停止せず、予測放棄分布が、ユーザがビデオコンテンツアイテムの全持続時間の前にビデオコンテンツアイテムの終了部分の間にビデオコンテンツアイテムの提示を停止する尤度が高いことを示す例において、プロセス100は、ビデオコンテンツアイテムの終了部分の提示中にバッファサイズを減少させることができる。
【0055】
図2に進むと、開示される主題のいくつかの実施形態に従って、予測放棄分布を決定するためのプロセスの例示的な例200が示されている。いくつかの実施形態において、プロセス200のブロックは、メディアコンテンツをホストおよび/またはユーザデバイスにストリーミングするサーバなどのサーバによって実行され得る。いくつかの実施形態において、サーバは、任意の適切なメディアコンテンツ(たとえば、ユーザ生成メディアコンテンツ、ビデオ、テレビ番組、映画、音楽、および/または任意の他の適切なタイプのメディアコンテンツ)をホストし、メディアコンテンツをユーザデバイスにストリーミングする特定のメディアコンテンツ共有サービスに関連付けられ得ることに留意されたい。
【0056】
プロセス200は、202において、ビデオコンテンツアイテムに関する予測放棄分布を計算することによって開始することができる。図1の104に関連して上記で説明されているように、いくつかの実施形態において、予測放棄分布は、任意の適切な情報を示すことができる。たとえば、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムを閲覧するユーザがビデオコンテンツアイテムの異なる時点においてビデオコンテンツアイテムの提示を停止する確率または尤度を示すことができる。いくつかの実施形態において、予測放棄分布は、予測放棄分布が[0,1]からの予測放棄確率を示すように、ビデオコンテンツアイテムの長さに対して正規化され得、ここで、0は、ビデオコンテンツアイテムの開始時点を示し、1は、ビデオコンテンツアイテムの全持続時間を示す。図1の104に関連して上記で説明されているように、予測放棄分布の例は、{(0.25,40);(0.5,80);(1,100)}の値を含むことができ、これはユーザがビデオコンテンツアイテムの持続時間の0.25においてビデオコンテンツアイテムの提示を停止する40%の尤度と、ユーザがビデオコンテンツアイテムの持続時間の0.5においてビデオコンテンツアイテムの提示を停止する80%の尤度と、ユーザがビデオコンテンツアイテムの持続時間の全長においてビデオコンテンツアイテムの提示を停止する100%の尤度とを示す。いくつかの実施形態において、予測放棄分布は、予測放棄確率が任意の時点において計算され得るように、完全連続分布であり得ることに留意されたい。代替的に、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの任意の適切な数の時点についての確率を示すことができる。たとえば、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの全持続時間の任意の適切な所定の間隔における(たとえば、ビデオコンテンツアイテム持続時間の0.1の間隔における、ビデオコンテンツアイテム持続時間の0.01の間隔における、および/または任意の他の適切な間隔における)確率を示すことができる。別の例として、いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの任意の適切な所定の時点における(たとえば、1秒ごとの、10秒ごとの、1分ごとの、および/または任意の他の適切な時点における)確率を示すことができる。
【0057】
いくつかの実施形態において、プロセス200は、任意の適切な方法で、任意の適切な技法を使用して、予測放棄分布を計算することができる。たとえば、いくつかの実施形態において、プロセス200は、分布に沿った異なる点において、ユーザがビデオコンテンツアイテムの提示を停止する尤度または確率を示す任意の適切な分布をモデル化することができる。いくつかの実施形態において、プロセス200は、任意の適切なユーザのグループによって以前に閲覧されたビデオコンテンツアイテムに関連するデータを使用してモデルを生成することができる。いくつかの実施形態において、プロセス200は、任意の適切なサイズ(たとえば、数千の以前に閲覧されたビデオコンテンツアイテム、数百万の以前に閲覧されたビデオコンテンツアイテム、および/または任意の他の適切なサイズ)のデータセットを使用してモデルを生成することができることに留意されたい。加えて、いくつかの実施形態において、プロセス200は、モデルを生成する前に、任意の適切な方法でモデルを生成するために使用されるデータを前処理することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、(ビデオコンテンツアイテムが誤って選択されたことを示す)ゼロ時間の持続時間の間視聴されたビデオコンテンツアイテム、および/または任意の他の適切な外れ値などの任意の適切な外れ値を破棄することができる。いくつかの実施形態において、ビデオコンテンツアイテムの持続時間は、範囲の分布が[0,1]に及ぶように正規化され得る。いくつかの実施形態において、Kumaraswamy分布、ベータ分布、ロジット変換された分布、および/または任意の他の適切な分布などの任意の適切な分布が使用され得る。
【0058】
いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せを使用して分布をモデル化することができる。たとえば、いくつかの実施形態において、分布は、回帰の1膨張混合(one-inflated mixture)としてモデル化され得る。より具体的な例として、いくつかの実施形態において、分布は、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰、およびユーザが異なる時点においてビデオコンテンツアイテムの提示を停止する尤度をモデル化する第2の回帰などの、2つ以上の回帰の混合または組合せとしてモデル化され得る。いくつかの実施形態において、回帰の混合内に含まれる各回帰は、異なるタイプの回帰(たとえば、Kumaraswamy回帰、ベータ回帰、ロジスティック回帰、および/または任意の他の適切なタイプの回帰)であり得る。たとえば、いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰は、ロジスティック回帰であり得、ユーザが異なる時点においてビデオコンテンツアイテムの提示を停止する尤度をモデル化する第2の回帰は、Kumaraswamy回帰であり得る。いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰は、勾配ブーステッド木分類器および/または任意の他の適切なタイプの分類器などの任意の適切なタイプの分類器であり得ることに留意されたい。加えて、いくつかの実施形態において、回帰の混合内の各回帰は、任意の適切な成分または予測子に対応する任意の適切な数の項を有することができ、任意の適切な数の交差項を有し得ることに留意されたい。たとえば、いくつかの実施形態において、回帰の混合の第1の回帰と第2の回帰の両方は、同じ予測子と同じ交差項とを含むことができる。別の例として、いくつかの実施形態において、第2の回帰は、任意の適切な二次項を含むKumaraswamy回帰であり得る。
【0059】
いくつかの実施形態において、プロセス200が、第1の回帰が、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する回帰の混合を生成する例において、プロセス200は、データの訓練セットの生成中に、任意の適切な方法で、訓練セット内に含まれるビデオコンテンツアイテムがそれらの全体において視聴されたかどうかを判定することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、(たとえば、各ビデオコンテンツアイテムの再生に関連するログデータを使用して)、ビデオコンテンツアイテムの提示のために使用されたビデオプレーヤの状態が、ビデオコンテンツアイテムがその全体において再生されたビデオによって提示されたことを示す任意の適切な方法で変化したかどうかを判定することができる。
【0060】
加えて、いくつかの実施形態において、上記で説明されているような回帰の混合を生成するのではなく、いくつかの実施形態において、プロセス200は、データ内に含まれるゼロまたは1の値が存在しないように、データ点を0.5などの任意の適切な中間値に収縮するために、モデルを生成するために使用されるデータを処理することができることに留意されたい。いくつかの実施形態において、プロセス200は、任意の適切な収縮関数を使用してデータ点を収縮するようにデータ点を変換することができる。
【0061】
いくつかの実施形態において、各回帰は、回帰を生成するために使用される予測子の異なるセットに基づき得る。いくつかの実施形態において、予測子のセットは、任意の適切な因子または変数を含むことができる。たとえば、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムの持続時間、ビデオコンテンツアイテムの持続時間の対数、ビデオコンテンツアイテムが背景音楽を含むかどうか、ビデオコンテンツアイテムが広告であるかどうか、ビデオコンテンツアイテムがスキップ可能である広告であるかどうか、および/またはビデオコンテンツアイテムの任意の他の適切な特性などの、ビデオコンテンツアイテムの特性を含むことができる。別の例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムがリンクまたは埋め込まれるインターフェースのタイプ(たとえば、ビデオコンテンツアイテムがウェブサイトまたはソーシャルネットワーキング投稿内にインラインで埋め込まれるかどうか)、ビデオコンテンツアイテムがデフォルトで自動再生に設定されているかどうか、ビデオコンテンツアイテムがデフォルトでミュートに設定されているかどうか、ビデオコンテンツアイテムがインラインで埋め込まれたときにオーディオコンテンツをミュートするように設定されているかどうか、および/または任意の適切な特性などの、ビデオコンテンツアイテムが他のコンテンツ内(たとえば、ウェブページ内、ソーシャルネットワーキング投稿内、メッセージ内、および/または任意の他の適切なタイプのコンテンツ内)にリンクまたは埋め込まれる方法に関連する特性を含むことができる。さらに別の例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムが再バッファリングするために一時停止されたときにユーザがビデオコンテンツアイテムの提示を停止する尤度、ビデオコンテンツアイテムを再バッファリングするために必要な予測持続時間、ビデオコンテンツアイテムが再バッファリングされる予測回数、および/または任意の他の適切なバッファリング情報などの、ビデオコンテンツアイテムのバッファリングを示す情報を含むことができる。さらに別の例として、いくつかの実施形態において、予測子のセットは、以前のユーザがビデオコンテンツアイテムを閲覧した平均持続時間、ビデオコンテンツアイテムを完全に閲覧したユーザの割合、特定の提示時点の前(たとえば、ビデオコンテンツアイテムの中間点の前、特定の提示タイムスタンプの前、および/または任意の他の適切な時点の前)にビデオコンテンツアイテムの提示を停止したユーザの割合、および/または任意の他の適切な以前の閲覧情報などの、ビデオコンテンツアイテムが他のユーザによって以前に閲覧された方法に関連する情報を含むことができる。さらなる例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムが現在閲覧されているかまたは以前に閲覧された方法に関連するシーク情報を含むことができ、ビデオの再生中のシーク指示は、再生放棄とみなされ得る。
【0062】
いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せを使用して、回帰を回帰の混合内に適合させることができる。たとえば、いくつかの実施形態において、プロセス200は、各回帰に関連する各予測子に関する係数を生成するために、期待値最大化を使用することができる。より具体的な例として、いくつかの実施形態において、回帰の混合において使用されるKumaraswamy回帰は、log(a)=P*Xおよびlog(b)=Q*Xなどの関係を介して(上記で説明されているような)任意の適切な予測変数に依存する分布パラメータを有することができ、ここで、PおよびQは、係数行列であり、Xは、共変量ベクトルである。いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せ(たとえば、ニュートン-ラフソン法、および/または任意の他の適切な技法)を使用する最尤推定を使用してモデルパラメータ(たとえば、係数行列PおよびQ)を推定することができる。別の例として、いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度を示す第1の回帰をモデル化するためにロジスティック回帰が使用される例において、ロジスティック回帰の任意の適切な予測子に関連する係数は、任意の適切な技法または技法の組合せを使用して計算され得る。
【0063】
204において、プロセス200は、ユーザデバイスから、ビデオコンテンツアイテムの部分に対する要求を受信することができる。いくつかの実施形態において、プロセス200は、任意の適切な方法でビデオコンテンツアイテムの部分に対する要求を受信することができる。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスのユーザがユーザデバイス上での提示のために特定のビデオコンテンツアイテムを選択したという指標を受信することができる。別の例として、いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムが埋め込まれたページが、ビデオコンテンツアイテムが可視になるようにナビゲートされたという指標を受信することができる。
【0064】
いくつかの実施形態において、プロセス200は、ユーザデバイスから、ユーザデバイスに関連する任意の適切な情報(たとえば、ユーザデバイスのモデル、ユーザデバイスの識別子、ユーザデバイスに関連付けられたディスプレイの画面サイズもしくは解像度、ユーザデバイスの現在の向き、および/またはユーザデバイスに関連付けられたディスプレイ、および/もしくは任意の他の適切な情報)、および/またはストリーミングされたメディアコンテンツを受信するために使用される通信ネットワークへのユーザデバイスの接続に関連する任意の適切な情報(たとえば、接続の現在の帯域幅、接続の現在のレイテンシ、接続の現在の信号強度、接続のタイプの識別子、および/または任意の他の適切な情報)を受信することができることに留意されたい。
【0065】
206において、プロセス200は、要求されたビデオコンテンツアイテムに対応する予測放棄分布をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、予測放棄分布を任意の適切な方法で送信することができる。たとえば、予測放棄分布が連続分布である例において、プロセス200は、連続分布のパラメータをユーザデバイスに送信することができる。別の例において、いくつかの実施形態において、プロセス200は、予測放棄分布を配列としてフォーマットすることができ、ここで、配列の要素の第1のセットは、0から1に正規化されたビデオコンテンツアイテムの異なる時点を示し、配列の要素の第2のセットは、ビデオコンテンツアイテムを閲覧するユーザが対応する時点の各々においてビデオコンテンツアイテムの提示を停止する尤度を示す、いくつかのそのような実施形態において、プロセス200は、配列をユーザデバイスに送信することができる。
【0066】
208において、プロセス200は、ビデオコンテンツアイテムの部分をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムの部分をユーザデバイスに送信する前に、ビデオコンテンツアイテムの部分に対応するファイルを識別することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスに関連する情報および/またはユーザデバイスの通信ネットワークへの接続に関連する情報に基づいて識別されるビデオコンテンツアイテムの部分のバージョンに対応するファイルを識別することができる。より具体的な例として、いくつかの実施形態において、プロセス200は、ユーザデバイスに関連付けられたディスプレイの画面サイズに基づいて、特定の解像度に関連付けられたビデオコンテンツアイテムのバージョンを識別することができる。別のより具体的な例において、いくつかの実施形態において、プロセス200は、ネットワーク接続の現在の帯域幅に基づいて、特定の解像度に関連付けられたビデオコンテンツアイテムのバージョンを識別することができる。
【0067】
210において、プロセス200は、任意選択で、ユーザデバイスから、ビデオコンテンツアイテムの第2の部分に対する要求を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、任意の適切な情報を含むことができる。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、図1の112~116に関連して上記で説明されているように、ユーザデバイスによって使用される更新されたバッファサイズを含むことができる。別の例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、ユーザデバイスによって使用されるネットワーク接続に関連する任意の適切なネットワーク情報(たとえば、接続に関連する現在の帯域幅、接続に関連する現在のレイテンシ、接続に関連する現在の信号強度、および/または任意の他の適切なネットワーク情報)を含むことができる。さらに別の例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、ユーザデバイスに関連するデバイス情報(たとえば、ユーザデバイスの現在のバッファ容量、ユーザデバイスによって使用されるバッファの現在のバッファサイズ、ユーザデバイスに関連付けられたディスプレイの現在のディスプレイの向き、および/または任意の他の適切な情報)を含むことができる。
【0068】
212において、プロセス200は、要求の受信に応答して、ビデオコンテンツアイテムの第2の部分をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、ファイル内に含まれるビデオデータを送信する前に、ビデオコンテンツアイテムの第2の部分に関連するファイルを識別することができる。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスのネットワーク接続に関連する現在のネットワーク情報に基づく、ユーザデバイスに関連付けられたディスプレイの解像度もしくはサイズに基づいて、および/または任意の他の適切な情報に基づくなど、任意の適切な情報に基づいて、ビデオコンテンツの特定の解像度に対応するファイルを識別することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、任意の適切なサイズまたは持続時間を有することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、ユーザデバイスによって使用される更新されたバッファサイズに対応するサイズおよび/または持続時間を有することができる。より具体的な例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求が、ユーザデバイスが(たとえば、208において送信される)ビデオコンテンツアイテムの第1の部分を記憶するために使用されるバッファのサイズよりも小さくなるようにバッファのサイズを変更したことを示す例において、プロセス200は、ビデオコンテンツアイテムの第1の部分よりもサイズが小さいおよび/または短い持続時間を有するビデオコンテンツアイテムの第2の部分を送信することができる。逆に、ビデオコンテンツアイテムの第2の部分に対する要求が、ユーザデバイスがビデオコンテンツアイテムの第1の部分を記憶するために使用されるバッファのサイズよりも大きくなるようにバッファのサイズを変更したことを示す例において、プロセス200は、ビデオコンテンツアイテムの第1の部分よりもサイズが大きいおよび/または長い持続時間を有するビデオコンテンツアイテムの第2の部分を送信することができる。
【0069】
いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムが広告である例において、ユーザデバイスによって要求されたビデオコンテンツアイテムの部分よりも多くを送信することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求が、(たとえば、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する尤度が高いとの判定に応答して)第2の部分のサイズを比較的小さく、および/または持続時間を短くすることを示す例において、プロセス200は、ビデオコンテンツアイテムが広告であるとの判定に応答して、ビデオコンテンツアイテムの要求された量または持続時間よりも多くを送信することができる。
【0070】
いくつかの実施形態において、プロセス200は、210にループバックすることができ、ビデオコンテンツアイテムの別の部分に対する別の要求を受信することができる。いくつかのそのような実施形態において、プロセス200は、ビデオコンテンツアイテム全体がユーザデバイスにストリーミングされるまで、またはプロセス200が、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止したという指標を受信するまで、210および212を介してループすることができる。
【0071】
プロセス100および200は、一般に、予測放棄分布を受信し、予測放棄分布に基づいてバッファサイズを決定し、決定されたバッファサイズに基づいてバッファサイズを変更するユーザデバイスとして説明されるが、いくつかの実施形態において、サーバは、予測放棄分布に基づいて、更新されたバッファサイズを決定することができることに留意されたい。たとえば、図1のブロック112に関連して上記で説明されているものと同様に、いくつかの実施形態において、サーバは、予測放棄分布に基づいて。バッファサイズを増加または減少させるかどうかを決定することができる。いくつかの実施形態において、次いで、サーバは、バッファサイズにおける変化の指標をユーザデバイスに送信することができる。加えて、いくつかの実施形態において、サーバは、ユーザデバイスに送信されるビデオコンテンツアイテムの部分のサイズを変更することができる。たとえば、ユーザデバイスに送信されるビデオコンテンツアイテムの第1の部分が第1のサイズまたは第1の持続時間であり、サーバが、(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が比較的高いとの判定に応答して)バッファサイズをより小さくすることを決定する例において、サーバは、比較的小さいサイズまたは比較的短い持続時間のビデオコンテンツアイテムの第2の部分を送信することができる。逆に、サーバが、(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が比較的低いとの判定に応答して)バッファサイズをより大きくすることを決定する例において、サーバは、比較的大きいサイズまたは比較的長い持続時間のビデオコンテンツアイテムの第2の部分を送信することができる。加えてまたは代替的に、いくつかの実施形態において、サーバは、ビデオコンテンツアイテムの部分が送信されるときの間の時間遅延を計算することができ、時間遅延は、ユーザデバイスによってバッファリングされているビデオコンテンツアイテムの持続時間に対応する。いくつかのそのような実施形態において、サーバは、時間遅延が経過したとサーバが判定するまで、ビデオコンテンツアイテムの後続の部分をユーザデバイスに送信することを一時停止することができる。いくつかのそのような実施形態において、サーバによって使用される時間遅延は、予測放棄分布に基づいて、ビデオコンテンツアイテムのストリーミング中に変更され得ることに留意されたい。
【0072】
図3に進むと、開示される主題のいくつかの実施形態に従って使用され得る適応的バッファを使用してビデオコンテンツをストリーミングするためのハードウェアの例示的な例300が示されている。図示のように、ハードウェア300は、サーバ302、通信ネットワーク304、ならびに/またはユーザデバイス308および310などの1つもしくは複数のユーザデバイス306を含むことができる。
【0073】
サーバ302は、情報、データ、プログラム、メディアコンテンツ、および/または任意の他の適切なコンテンツを記憶するための任意の適切なサーバであり得る。いくつかの実施形態において、サーバ302は、任意の適切な機能を実行することができる。たとえば、いくつかの実施形態において、サーバ302は、メディアコンテンツ(たとえば、ビデオコンテンツ、オーディオコンテンツ、および/または任意の他の適切なオーディオコンテンツ)を、ユーザデバイス306のうちの1つなどのユーザデバイスに送信することができる。より具体的な例として、いくつかの実施形態において、サーバ302は、メディアコンテンツに対する要求に応答して、メディアコンテンツをユーザデバイスにストリーミングすることができる。別の例として、いくつかの実施形態において、サーバ302は、サーバ302からのメディアコンテンツアイテムをストリーミングするユーザデバイスのユーザが、図2に示され、図2に関連して上記で説明されているような、メディアコンテンツアイテムの異なる提示時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布を決定することができる。
【0074】
通信ネットワーク304は、いくつかの実施形態において、1つまたは複数の有線ネットワークおよび/またはワイヤレスネットワークの任意の適切な組合せであり得る。たとえば、通信ネットワーク304は、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、デジタル加入者線(DSL)ネットワーク、フレームリレーネットワーク、非同期転送モード(ATM)ネットワーク、仮想プライベートネットワーク(VPN)、および/または任意の他の適切な通信ネットワークのうちの任意の1つまたは複数を含むことができる。ユーザデバイス306は、1つまたは複数の通信リンク(たとえば、通信リンク312)によって、1つまたは複数の通信リンク(たとえば、通信リンク314)を介してサーバ302とリンクされ得る通信ネットワーク304に接続され得る。通信リンクは、ネットワークリンク、ダイヤルアップリンク、ワイヤレスリンク、ハードワイヤードリンク、任意の他の適切な通信リンク、またはそのようなリンクの任意の適切な組合せなどの、ユーザデバイス306とサーバ302との間でデータを通信するのに適した任意の通信リンクであり得る。
【0075】
ユーザデバイス306は、サーバ302からのメディアコンテンツをストリーミングするのに適した任意の1つまたは複数のユーザデバイスを含むことができる。いくつかの実施形態において、ユーザデバイス306は、携帯電話、タブレットコンピュータ、ウェアラブルコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートテレビ、メディアプレーヤ、ゲームコンソール、車両情報および/もしくは娯楽システム、ならびに/または任意の他の適切なタイプのユーザデバイスなどの、任意の適切なタイプのユーザデバイスを含むことができる。いくつかの実施形態において、ユーザデバイス306は、メディアコンテンツのストリーミング中にサーバ302から受信されたメディアコンテンツを記憶するために使用されるバッファのサイズを適応的に変更することができる。たとえば、いくつかの実施形態において、図1に示され、図1に関連して上記で説明されているように、ユーザデバイス306は、ユーザデバイス306がメディアコンテンツアイテムを提示し続ける尤度を示す、サーバ302から受信された予測放棄分布に基づいて、バッファのサイズを変更することができる。
【0076】
サーバ302は、1つのデバイスとして示されているが、サーバ302によって実行される機能は、いくつかの実施形態において、任意の適切な数のデバイスを使用して実行され得る。たとえば、いくつかの実施形態において、サーバ302によって実行される機能を実装するために、複数のデバイスが使用され得る。
【0077】
図を過度に複雑化するのを回避するために、2つのユーザデバイス308および310が図3に示されているが、いくつかの実施形態において、任意の適切な数のユーザデバイスおよび/または任意の適切なタイプのユーザデバイスが使用され得る。
【0078】
いくつかの実施形態において、サーバ302およびユーザデバイス306は、任意の適切なハードウェアを使用して実装され得る。たとえば、いくつかの実施形態において、デバイス302および306は、任意の適切な汎用コンピュータまたは専用コンピュータを使用して実装され得る。たとえば、携帯電話は、専用コンピュータを使用して実装され得る。任意の適切な汎用コンピュータまたは専用コンピュータは、任意の適切なハードウェアを含むことができる。たとえば、図4の例示的なハードウェア400において示されているように、そのようなハードウェアは、ハードウェアプロセッサ402、メモリおよび/またはストレージ404、入力デバイスコントローラ406、入力デバイス408、ディスプレイ/オーディオドライバ410、ディスプレイおよびオーディオ出力回路412、通信インターフェース414、アンテナ416、ならびにバス418を含むことができる。
【0079】
ハードウェアプロセッサ402は、いくつかの実施形態において、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、専用ロジック、および/または汎用コンピュータもしくは専用コンピュータの機能を制御するための任意の他の適切な回路などの、任意の適切なハードウェアプロセッサを含むことができる。いくつかの実施形態において、ハードウェアプロセッサ402は、サーバ302などのサーバのメモリおよび/またはストレージ内に記憶されたサーバプログラムによって制御され得る。いくつかの実施形態において、ハードウェアプロセッサ402は、ユーザデバイス306のメモリおよび/またはストレージ404内に記憶されたコンピュータプログラムによって制御され得る。
【0080】
メモリおよび/またはストレージ404は、いくつかの実施形態において、プログラム、データ、および/または任意の他の適切な情報を記憶するための任意の適切なメモリおよび/またはストレージであり得る。たとえば、メモリおよび/またはストレージ404は、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ、ハードディスクストレージ、光学式媒体、および/または任意の他の適切なメモリを含むことができる。適応的バッファは、たとえば、ハードウェアプロセッサ402によって、メモリおよび/またはストレージ404内に定義され得る。
【0081】
入力デバイスコントローラ406は、いくつかの実施形態において、1つまたは複数の入力デバイス408からの入力を制御および受信するための任意の適切な回路であり得る。たとえば、入力デバイスコントローラ406は、タッチスクリーンから、キーボードから、1つまたは複数のボタンから、音声認識回路から、マイクロフォンから、カメラから、光センサから、加速度計から、温度センサから、近接場センサから、圧力センサから、エンコーダから、および/または任意の他のタイプの入力デバイスからの入力を受信するための回路であり得る。
【0082】
ディスプレイ/オーディオドライバ410は、いくつかの実施形態において、1つまたは複数のディスプレイ/オーディオ出力デバイス412への出力を制御および駆動するための任意の適切な回路であり得る。たとえば、ディスプレイ/オーディオドライバ410は、タッチスクリーン、フラットパネルディスプレイ、陰極線管ディスプレイ、プロジェクタ、スピーカ、ならびに/または任意の他の適切なディスプレイおよび/もしくは提示デバイスを駆動するための回路であり得る。
【0083】
通信インターフェース414は、1つまたは複数の通信ネットワーク(たとえば、通信ネットワーク304)とインターフェースするための任意の適切な回路であり得る。たとえば、インターフェース414は、ネットワークインターフェースカード回路、ワイヤレス通信回路、および/または任意の他の適切なタイプの通信ネットワーク回路を含むことができる。
【0084】
アンテナ416は、いくつかの実施形態において、通信ネットワーク(たとえば、通信ネットワーク304)とワイヤレス通信するための任意の適切な1つまたは複数のアンテナであり得る。いくつかの実施形態において、アンテナ416は、省略され得る。
【0085】
バス418は、いくつかの実施形態において、2つ以上の構成要素402、404、406、410、および414の間で通信するための任意の適切なメカニズムであり得る。
【0086】
いくつかの実施形態によれば、任意の他の適切な構成要素がハードウェア400内に含まれ得る。
【0087】
いくつかの実施形態において、図1および図2のプロセスの上記で説明されているブロックのうちの少なくともいくつかは、図中に示され、図に関連して説明されている順序およびシーケンスに限定されない任意の順序またはシーケンスにおいて実施または実行され得る。また、図1および図2の上記のブロックのうちのいくつかは、レイテンシおよび処理時間を短縮するために、必要に応じて実質的に同時に、または並行して実施または実行され得る。加えてまたは代替的に、図1および図2のプロセスの上記で説明されているブロックのうちのいくつかは、省略され得る。
【0088】
いくつかの実施形態において、任意の適切なコンピュータ可読媒体が、本明細書における機能および/または処理を実行するための命令を記憶するために使用され得る。たとえば、いくつかの実施形態において、コンピュータ可読媒体は、一時的または非一時的であり得る。たとえば、非一時的コンピュータ可読媒体は、非一時的形態の磁気媒体(ハードディスク、フロッピーディスク、および/または任意の他の適切な磁気媒体など)、非一時的形態の光学式媒体(コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、および/または任意の他の適切な光学式媒体など)、非一時的形態の半導体媒体(フラッシュメモリ、電気的にプログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、および/または任意の他の適切な半導体媒体など)、送信中に一過性ではないか、もしくは永続性の様相を欠かない任意の適切な媒体、および/または任意の適切な有形の媒体などの媒体を含むことができる。別の例として、一時的なコンピュータ可読媒体は、ネットワーク上、ワイヤ内、導体内、光ファイバ内、回路内の信号、送信中に一過性であるか、もしくは永続性の様相を欠く任意の適切な媒体、および/または任意の適切な無形の媒体を含むことができる。
【0089】
したがって、適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体が提供される。
【0090】
本発明は、前述の例示的な実施形態において説明および図示されてきたが、本開示は、例としてのみなされており、本発明の実装形態の詳細における多数の変更は、以下の特許請求の範囲によってのみ限定される本発明の要旨および範囲から逸脱せずになされ得ることが理解される。開示される実施形態の特徴は、様々な方法において組み合わされ、再配置され得る。
【符号の説明】
【0091】
300 ハードウェア
302 サーバ
304 通信ネットワーク
306 ユーザデバイス
308 ユーザデバイス
310 ユーザデバイス
312 通信リンク
314 通信リンク
400 ハードウェア
402 ハードウェアプロセッサ
404 メモリおよび/またはストレージ
406 入力デバイスコントローラ
408 入力デバイス
410 ディスプレイ/オーディオドライバ
412 ディスプレイおよびオーディオ出力回路、ディスプレイ/オーディオ出力デバイス
414 通信インターフェース
416 アンテナ
418 バス
図1
図2
図3
図4