JP7318123B2 - 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 - Google Patents

適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 Download PDF

Info

Publication number
JP7318123B2
JP7318123B2 JP2022522357A JP2022522357A JP7318123B2 JP 7318123 B2 JP7318123 B2 JP 7318123B2 JP 2022522357 A JP2022522357 A JP 2022522357A JP 2022522357 A JP2022522357 A JP 2022522357A JP 7318123 B2 JP7318123 B2 JP 7318123B2
Authority
JP
Japan
Prior art keywords
video content
content item
size
buffer
user device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022522357A
Other languages
English (en)
Other versions
JP2022552330A (ja
Inventor
マット・ダクレフ
アニル・ヴィジェンドラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2022552330A publication Critical patent/JP2022552330A/ja
Priority to JP2023117721A priority Critical patent/JP7559156B2/ja
Application granted granted Critical
Publication of JP7318123B2 publication Critical patent/JP7318123B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44204Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/251Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/252Processing of multiple end-users' preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)

Description

関連出願の相互参照
本出願は、参照によりその全体が本明細書に組み込まれる、2019年10月14日に出願した、米国仮特許出願第62/914,978号の利益を主張するものである。
開示される主題は、適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体に関する。
ユーザは、メディアコンテンツ共有サービスからユーザデバイス(たとえば、携帯電話、タブレットコンピュータ、スマートテレビ、メディアプレーヤなど)にメディアコンテンツ(たとえば、ビデオ、テレビ番組、映画、音楽など)を頻繁にストリーミングする。メディアコンテンツアイテムをストリーミングするユーザデバイスは、メディアコンテンツアイテムをストリーミングするために使用されるネットワーク接続が品質低下するかまたは遅延する場合に、メディアコンテンツの部分が提示のために利用可能になるように、メディアコンテンツアイテムをバッファリングし得る。多くの場合、ユーザデバイスは、固定されたバッファサイズを使用する。いくつかのそのような場合、たとえば、ユーザデバイスのユーザが、記憶された部分が提示される前にメディアコンテンツアイテムの提示を停止した場合、バッファ内に記憶される、提示されないメディアコンテンツアイテムの部分をサーバが送信する場合がある。バッファリングされるが提示されないメディアコンテンツアイテムの部分を送信することは、サーバとユーザデバイスの両方にとってリソースの浪費になり得る。
したがって、ビデオコンテンツをストリーミングするための新しい方法、システム、および媒体を提供することが望ましい。
適応的バッファを使用してビデオコンテンツをストリーミングための方法、システム、および媒体が提供される。(固定バッファは、固定されたサイズ(たとえば、記憶容量)のメモリストレージを提供する一方、「適応的」バッファは、必要に応じて変更され得るサイズを有するメモリストレージを提供する。)
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするための方法が提供され、方法は、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するステップと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するステップと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信するステップと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶するステップと、ビデオコンテンツアイテムをユーザデバイスによって提示させるステップと、予測放棄分布に基づいてバッファの第2のサイズを決定するステップと、バッファのサイズを第2のサイズに変更するステップと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求するステップと、サーバから、ビデオコンテンツアイテムの第2の部分を受信するステップと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶するステップとを含む。典型的には、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、コンテンツアイテムの開始時点とコンテンツアイテムの終了時点との間にある少なくとも1つの時点を含み、コンテンツアイテムの開始時点と終了時点との間にある複数の異なる時点を含み得る。加えて、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、ビデオコンテンツアイテムの終点を含み得る。さらなる例として、予測放棄分布がユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止するそれぞれの尤度を示す提示時点は、点D/n、2D/n、...、(n-1)D/nであり得、ここで、nは、正の整数であり、Dは、ビデオコンテンツアイテムの持続時間であり、任意選択で、ビデオコンテンツアイテムの終了時の提示時点も含み得る。
いくつかの実施形態において、予測放棄分布に基づいてバッファの第2のサイズを決定するステップは、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する複数の尤度のうちの尤度が所定のしきい値を下回ることを判定するステップと、複数の尤度のうちの尤度が所定のしきい値を下回るとの判定に応答して、バッファの第2のサイズを第1のサイズよりも大きくすることを決定するステップとを含む。
いくつかの実施形態において、予測放棄分布に基づいてバッファの第2のサイズを決定するステップは、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する複数の尤度のうちの尤度が所定のしきい値を超えることを判定するステップと、複数の尤度のうちの尤度が所定のしきい値を超えるとの判定に応答して、バッファの第2のサイズを第1のサイズよりも小さくすることを決定するステップとを含む。
いくつかの実施形態において、方法は、予測放棄分布に基づいてバッファの第3のサイズを決定するステップと、ビデオコンテンツアイテムの提示を継続しながら、バッファのサイズを第3のサイズに変更するステップとをさらに含む。
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの持続時間に対して正規化される。
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの持続時間に基づいて計算される。
いくつかの実施形態において、予測放棄分布は、ビデオコンテンツアイテムの特性に基づいて計算される。
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするためのシステムが提供され、システムは、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信することと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することと、ビデオコンテンツアイテムをユーザデバイスによって提示させることと、予測放棄分布に基づいてバッファの第2のサイズを決定することと、バッファのサイズを第2のサイズに変更することと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することと、サーバから、ビデオコンテンツアイテムの第2の部分を受信することと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶することとを行うように構成されたハードウェアプロセッサを備える。
開示される主題のいくつかの実施形態によれば、コンピュータ可読媒体が提供され、これは非一時的コンピュータ可読媒体であり得るが、これらの実施形態は、非一時的コンピュータ可読媒体に限定されない。いくつかの実施形態において、コンピュータ可読媒体は、プロセッサによって実行されると、プロセッサに、バッファを使用してビデオコンテンツをストリーミングするための方法を実行させるコンピュータ実行可能命令を含み、方法は、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信することと、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することと、ビデオコンテンツアイテムをユーザデバイスによって提示させることと、予測放棄分布に基づいてバッファの第2のサイズを決定することと、バッファのサイズを第2のサイズに変更することと、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することと、サーバから、ビデオコンテンツアイテムの第2の部分を受信することと、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶することとを含む。開示される主題の他の実施形態によれば、コンピュータ可読媒体が提供され、これは、プロセッサによって実行されると、プロセッサに、本明細書で説明されている任意の実施形態または実装形態による方法を実行させるコンピュータ実行可能命令を含む、非一時的なコンピュータ可読媒体であり得るが、これらの実施形態は、非一時的なコンピュータ可読媒体に限定されない。
開示される主題のいくつかの実施形態によれば、バッファを使用してビデオコンテンツをストリーミングするためのシステムが提供され、システムは、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するための手段と、ユーザデバイスにおいて、サーバから、ユーザデバイスのユーザがビデオコンテンツアイテムの対応する複数の提示時点においてビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するための手段と、ユーザデバイスにおいて、サーバから、ビデオコンテンツアイテムの第1の部分を受信するための手段と、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶するための手段と、ビデオコンテンツアイテムをユーザデバイスによって提示させるための手段と、予測放棄分布に基づいてバッファの第2のサイズを決定するための手段と、バッファのサイズを第2のサイズに変更するための手段と、バッファの第2のサイズに基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求するための手段と、サーバから、ビデオコンテンツアイテムの第2の部分を受信するための手段と、ビデオコンテンツアイテムの提示を継続しながら、ビデオコンテンツアイテムの第2の部分を、第2のサイズのバッファ内に記憶するための手段とを備える。
開示される主題の様々な目的、特徴、および利点は、同様の参照番号が同様の要素を識別する以下の図面に関連して考慮されるとき、開示される主題の以下の詳細な説明を参照してより完全に理解され得る。
開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするためのプロセスの例示的な例を示す図である。 開示される主題のいくつかの実施形態による、予測放棄分布を生成するためのプロセスの例示的な例を示す図である。 開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするための、本明細書で説明されるメカニズムの実装に適した例示的なシステムの概略図である。 開示される主題のいくつかの実施形態による、図3のサーバおよび/またはユーザデバイスにおいて使用され得るハードウェアの詳細な例を示す図である。
様々な実施形態によれば、適応的バッファを使用してビデオコンテンツをストリーミングするためのメカニズム(方法と、システムと、媒体とを含むことができる)が提供される。
いくつかの実施形態において、本明細書で説明されているメカニズムは、メディアコンテンツを閲覧するユーザがメディアコンテンツの終了前にメディアコンテンツの提示を停止する(ビデオ再生放棄と呼ぶこともある)尤度に基づいて、ストリーミングされているメディアコンテンツを記憶するために使用されるバッファのサイズを変更することができる。
いくつかの実施形態において、メディアコンテンツアイテムをユーザデバイスにストリーミングするサーバは、ユーザデバイスのユーザがメディアコンテンツアイテム内の異なる再生時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布をユーザデバイスに送信することができる。いくつかの実施形態において、ユーザデバイスは、予測放棄分布を受信することができ、サーバから受信したメディアコンテンツアイテムの部分を記憶するためにユーザデバイスによって使用されるバッファのサイズを、ユーザデバイスによるメディアコンテンツアイテムの部分の提示の前に変更することができる。いくつかの実施形態において、ユーザデバイスは、任意の適切な方法でバッファのサイズを変更することができる。たとえば、いくつかの実施形態において、ユーザデバイスは、ストリーミングされたメディアコンテンツアイテムの部分を第1のサイズのバッファ内に最初に記憶することができ、ユーザデバイスのユーザがメディアコンテンツアイテムの提示を停止する尤度が比較的高いことを示す予測放棄分布の受信に応答して、より少ないメディアコンテンツアイテムがサーバから要求され、ユーザデバイスによって記憶されるように、バッファのサイズを減少させることができる。逆に、ユーザデバイスのユーザがメディアコンテンツアイテムの提示を停止する尤度が比較的低いことを示す予測放棄分布の受信に応答して、ユーザデバイスは、より多いメディアコンテンツアイテムがサーバから要求され、ユーザデバイスによって記憶されるように、バッファのサイズを増加させることができる。
いくつかの実施形態において、本明細書で説明されているメカニズムは、任意の適切な方法で、任意の適切な情報に基づいて、予測放棄分布を決定することができる。たとえば、いくつかの実施形態において、メディアコンテンツをユーザデバイスにストリーミングするサーバは、特定のメディアコンテンツアイテムについて、メディアコンテンツアイテムを閲覧するユーザがメディアコンテンツアイテムの異なる提示時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布を決定することができる。いくつかの実施形態において、特定のメディアコンテンツアイテムについての予測放棄分布は、メディアコンテンツアイテムの持続時間、メディアコンテンツアイテムが音楽を含むかどうか、メディアコンテンツアイテムがウェブサイト内(たとえば、メディアコンテンツアイテムのリスト内)もしくはソーシャルネットワーキングの投稿内にインラインで挿入されているかどうか、メディアコンテンツアイテムが自動再生するように構成されているかどうか、メディアコンテンツアイテムに関連付けられているオーディオコンテンツがデフォルトでミュートされるかどうか、および/または任意の他の適切な情報などの、メディアコンテンツアイテムに関連付けられている任意の適切な情報に基づいて決定され得る。いくつかの実施形態において、特定のメディアコンテンツアイテムについての予測放棄分布は、メディアコンテンツアイテムをその全体において視聴したユーザの割合、メディアコンテンツアイテムの提示を停止する前にユーザによって閲覧されたメディアコンテンツアイテムの平均持続時間、および/または任意の他の適切な以前の閲覧情報などの、他のユーザによるメディアコンテンツアイテムの以前の閲覧に基づいて決定され得る。
本明細書で説明されているメカニズムは、ビデオコンテンツに関連するものとして概して説明されているが、いくつかの実施形態において、本明細書で説明されているメカニズムは、オーディオコンテンツ(たとえば、音楽、ポッドキャスト、ライブストリーミングオーディオコンテンツ、および/または任意の他の適切なタイプのオーディオコンテンツ)、ビデオコンテンツ(たとえば、ビデオ、テレビ番組、映画、ライブストリーミングビデオコンテンツ、ゲーム、および/または任意の他の適切なタイプのビデオコンテンツ)、および/または任意の他の適切なタイプのメディアコンテンツなどの、任意の適切なタイプのメディアコンテンツをストリーミングすることに関連して使用され得ることに留意されたい。
図1に進むと、開示される主題のいくつかの実施形態による、適応的バッファを使用してビデオコンテンツをストリーミングするためのプロセスの例示的な例100が示されている。いくつかの実施形態において、プロセス100のブロックは、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートテレビ、メディアプレーヤ、ディスプレイデバイスに接続されたストリーミングメディアデバイス、ゲームコンソール、および/または任意の他の適切なタイプのユーザデバイスなどの、任意の適切なユーザデバイス上で実行され得る。
プロセス100は、102において、ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することによって開始することができる。いくつかの実施形態において、ビデオコンテンツアイテムは、ユーザによって生成されたビデオ、ミュージックビデオ、テレビ番組、映画、ライブストリーミングビデオ、および/または任意の他の適切なタイプのビデオコンテンツなどの、任意の適切なタイプのビデオコンテンツに対応することができる。いくつかの実施形態において、プロセス100は、任意の適切な情報に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。たとえば、いくつかの実施形態において、プロセス100は、ユーザデバイスにおいて、ビデオコンテンツアイテムの選択を示すユーザ入力の受信に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。別の例として、いくつかの実施形態において、プロセス100は、ページ(たとえば、ブラウザウィンドウ、ソーシャルネットワーキングサービスのフィード、および/または任意の他の適切なページ)が、ビデオコンテンツアイテムが埋め込まれている部分を含むようにスクロールされたとの判定に応答して、ビデオコンテンツアイテムをストリーミングするための要求を送信することができる。いくつかの実施形態において、ビデオコンテンツアイテムをストリーミングするための要求は、ユーザデバイス上で実行される任意の適切なアプリケーションを介してユーザデバイスから送信され得ることに留意されたい。いくつかのそのような実施形態において、アプリケーションは、要求されたビデオコンテンツアイテムをホストおよび/もしくはストリーミングするメディアコンテンツ共有サービス、ソーシャルネットワーキングサービス、ならびに/または任意の他の適切なエンティティもしくはサービスなどの、任意の適切なエンティティまたはサービスに関連付けられ得る。
いくつかの実施形態において、ビデオコンテンツアイテムをストリーミングするための要求は、ビデオコンテンツアイテムの識別子、プロセス100を実行するユーザデバイスに関連する情報(たとえば、ユーザデバイスのモデル、ユーザデバイスの識別子、ユーザデバイスのディスプレイの画面サイズもしくは解像度、ユーザデバイスおよび/もしくはユーザデバイスに関連付けられたディスプレイの現在の向き、バッファ容量情報、および/または任意の他の適切なデバイス情報)、ユーザデバイスのネットワーク接続に関連する情報(たとえば、ネットワーク接続の現在の帯域幅、ネットワーク接続の現在のレイテンシ、ネットワーク接続に関連する現在の信号強度、および/または任意の他の適切なネットワーク情報)、および/または任意の他の適切な情報などの、任意の適切な情報を含むことができる。
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分ごとの、および/または任意の他の適切な時点における)確率を示すことができる。
いくつかの実施形態において、予測放棄分布は、
P(T≦t0+t|T>t0)
などの、ユーザデバイスのユーザが現在の時間t0と将来の時間tとの間にビデオコンテンツアイテムの提示を停止する確率をユーザデバイスが計算することを可能にすることができる。いくつかの実施形態において、この確率は、
Figure 0007318123000001
として表され得、ここで、Fは、サーバによって計算された放棄分布を示し、Sは、ユーザが少なくとも時間t0までにビデオコンテンツアイテムを視聴する確率を示す。いくつかの実施形態において、S(t0)=1-F(t0)であることに留意されたい。放棄分布Fを計算するためのより詳細な技法について、図2の202に関連して以下に説明する。
いくつかの実施形態において、予測放棄分布は、図2に示され、図2に関連して以下に説明されているような、任意の適切な方法で、任意の適切な情報に基づいて、サーバによって決定され得ることに留意されたい。
106において、ユーザデバイスは、サーバから、ビデオコンテンツアイテムの第1の部分を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第1の部分は、ビデオコンテンツアイテムの任意の適切な部分に対応することができ、任意の適切なサイズ(たとえば、特定のキロバイト数のデータ、および/または任意の他の適切なサイズ)、および/または持続時間(たとえば、1秒、2秒、5秒、および/または任意の他の適切な持続時間)であり得る。
108において、プロセス100は、ビデオコンテンツアイテムの第1の部分を、第1のサイズを有するユーザデバイスのバッファ内に記憶することができる。いくつかの実施形態において、バッファの第1のサイズは、任意の適切な情報に基づいて設定され得る。たとえば、いくつかの実施形態において、バッファの第1のサイズは、デフォルト値(たとえば、ユーザデバイスによって設定されたデフォルト値、ユーザデバイス上で実行されているメディアコンテンツをストリーミングするためのアプリケーションによって設定されたデフォルト値、および/または任意の他の適切なデフォルト値)であり得る。いくつかの実施形態において、バッファの第1のサイズは、任意の適切なサイズ(たとえば、メディアコンテンツの所定のフレーム数、ビデオコンテンツアイテムの第1の部分の所定のサイズ、および/または任意の他の適切なサイズ)、および/またはビデオコンテンツの任意の適切な持続時間(たとえば、2秒、5秒、10秒、および/または任意の他の適切な持続時間)に対応することができる。
110において、プロセス100は、ビデオコンテンツアイテムの第1の部分を提示することを開始することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でビデオコンテンツアイテムの第1の部分を提示することを開始することができる。たとえば、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分を提示する前に、ビデオコンテンツアイテムの第1の部分をバッファから取得させることができる。別の例として、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分を、プロセス100を実行するユーザデバイス上に提示されるビデオプレーヤウィンドウ内に提示させることができる。いくつかのそのような実施形態において、ビデオプレーヤウィンドウは、特定のメディアコンテンツ共有サービスからのメディアコンテンツをストリーミングするためのアプリケーション内に提示されたユーザインターフェース内、ブラウザウィンドウ内に提示されたユーザインターフェース内、および/または任意の他の適切なユーザインターフェース内などの、任意の適切なユーザインターフェース内に提示され得る。
112において、プロセス100は、予測放棄分布に基づいて、更新されたバッファサイズを決定することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法で、更新されたバッファサイズを決定することができる。たとえば、いくつかの実施形態において、プロセス100は、予測放棄尤度が所定のしきい値を超える(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する50%よりも高い尤度、ユーザがビデオコンテンツアイテムの提示を停止する70%よりも高い尤度、および/または任意の他の適切な尤度)との判定に応答して、更新されたバッファサイズがバッファの第1のサイズよりも小さくなるように、更新されたバッファサイズを決定することができる。別の例として、いくつかの実施形態において、プロセス100は、予測放棄尤度が所定のしきい値を下回る(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する10%未満の尤度、ユーザがビデオコンテンツアイテムの提示を停止する20%未満の尤度、および/または任意の他の適切な尤度)との判定に応答して、更新されたバッファサイズがバッファの第1のサイズよりも大きくなるように、更新されたバッファサイズを決定することができる。いくつかの実施形態において、バッファサイズを増加または減少するかどうかを決定するために、任意の適切な所定のしきい値が使用され得ることに留意されたい。
いくつかの実施形態において、プロセス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は、ビデオコンテンツアイテムの総持続時間に基づいて決定され得ることに留意されたい。
いくつかの実施形態において、プロセス100は、任意の適切な技法または技法の組合せを使用して、予測放棄分布に基づいて、更新されたバッファサイズを決定することができる。たとえば、いくつかの実施形態において、プロセス100は、固定された量だけバッファサイズを増加または減少させることによって、第1のサイズからバッファのサイズを変更することができる。別の例として、いくつかの実施形態において、プロセス100は、予測放棄分布を使用して計算されるように、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する尤度に基づいて、バッファサイズへの変更を決定することができる。より具体的な例として、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度が所定のしきい値を下回るとの判定に基づいて、バッファサイズを増加させることを決定する例において、プロセス100は、尤度が所定のしきい値を下回る量に基づいて、バッファサイズの増加のサイズを決定することができる。具体的な例として、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度を40%として計算し、所定のしきい値が60%である例において、プロセス100は、バッファサイズを第1の量(たとえば、ビデオコンテンツアイテムの追加の3秒を保持するため、ビデオコンテンツアイテムの追加の5秒を保持するため、および/または任意の他の適切な量)だけ増加させることを決定することができる。この具体的な例を続けると、プロセス100が、ユーザがビデオコンテンツアイテムの提示を停止する尤度を10%として計算し、所定のしきい値が60%である例において、プロセス100は、バッファサイズを第1の量よりも大きい第2の量だけ増加させることを決定することができる。いくつかの実施形態において、プロセス100は、たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が所定のしきい値を超えるとの判定に応答して、同様の技法を使用して、第1のバッファサイズよりも小さい更新されたバッファサイズを決定することができることに留意されたい。
114において、プロセス100は、バッファサイズを第1のサイズから更新されたバッファサイズに変更することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でバッファサイズを変更することができる。たとえば、いくつかの実施形態において、プロセス100は、メディアコンテンツのためのバッファを割り当てる任意の適切な関数への関数呼び出しを送信することができる。いくつかのそのような実施形態において、プロセス100は、更新されたバッファサイズをパラメータとして、たとえば、バッファコントローラに送信することができる。
116において、プロセス100は、サーバからのビデオコンテンツアイテムの第2の部分を要求することができる。いくつかの実施形態において、プロセス100は、任意の適切な情報に基づいて、ビデオコンテンツアイテムの第2の部分を要求することができる。たとえば、いくつかの実施形態において、プロセス100は、バッファ内に記憶されたビデオコンテンツの量が所定のしきい値未満に低下した(たとえば、ビデオコンテンツアイテムの所定の持続時間未満がバッファ内に残っている、および/または任意の他の適切な量のビデオコンテンツアイテム)との判定に応答して、ビデオコンテンツアイテムの第2の部分を要求することができる。別の例として、いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの第1の部分の所定の量よりも多くが提示されたとの判定に応答して、ビデオコンテンツアイテムの第2の部分を要求することができる。いくつかの実施形態において、プロセス100は、更新されたバッファサイズの指標をサーバに送信することができることに留意されたい。
いくつかの実施形態において、プロセス100は、ビデオコンテンツアイテムの部分に対する要求間の時間遅延がビデオコンテンツアイテムの部分に対する以前の要求から(たとえば、102において送信されたビデオコンテンツアイテムをストリーミングするための要求、および/または任意の他の適切な以前に送信された要求から)経過したかどうかの判定に基づいて、サーバからのビデオコンテンツアイテムの第2の部分を要求することができることに留意されたい。いくつかの実施形態において、時間遅延は、予測放棄分布に基づいて決定され得る。たとえば、上記の
Figure 0007318123000002
与えられているtとt0との間にユーザがビデオコンテンツアイテムの提示を停止する例示的な予測確率を考慮すると、確率は、
Figure 0007318123000003
として表され得る。いくつかの実施形態において、xは、放棄確率がしきい値Pに低下する前に、プロセス100を実行するユーザデバイスが到達するメディア位置を表すことができる。いくつかの実施形態において、放棄分布は、
Figure 0007318123000004
と表され得る。いくつかの実施形態において、
Figure 0007318123000005
である。いくつかの実施形態において、時間は、
Figure 0007318123000006
として計算され得、時間遅延は、
Figure 0007318123000007
として計算され得る。
118において、プロセス100は、要求に応答して、サーバから、ビデオコンテンツアイテムの第2の部分を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、任意の適切なサイズまたは持続時間であり得る。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、106に関連して上記で説明されているように、ビデオコンテンツアイテムの第1の部分のサイズまたは持続時間と異なるサイズまたは持続時間を有することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、更新されたバッファサイズに対応するサイズまたは持続時間を有することができる。より具体的な例として、いくつかの実施形態において、プロセス100が、(たとえば、114に関連して上記で説明されているように)バッファの第1のサイズよりも比較的小さいバッファサイズを有するようにバッファサイズを変更した例において、ビデオコンテンツアイテムの第2の部分は、ビデオコンテンツアイテムの第1の部分よりも小さいサイズまたは短い持続時間を有することができる。別のより具体的な例として、いくつかの実施形態において、プロセス100が、(たとえば、114に関連して上記で説明されているように)バッファの第1のサイズよりも比較的大きいバッファサイズを有するようにバッファサイズを変更した例において、ビデオコンテンツアイテムの第2の部分は、ビデオコンテンツアイテムの第1の部分よりも大きいサイズまたは長い持続時間を有することができる。
120において、プロセス100は、ビデオコンテンツアイテムを提示し続けながら、ビデオコンテンツアイテムの第2の部分をバッファ内に記憶することができる。いくつかの実施形態において、プロセス100は、任意の適切な方法でビデオコンテンツアイテムを提示し続けることができる。たとえば、いくつかの実施形態において、プロセス100は、106に関連して上記で説明されているように、バッファからビデオコンテンツアイテムの部分を取得し続け、ビデオプレーヤウィンドウにおいてビデオコンテンツアイテムの取得された部分を提示し続けることができる。
いくつかの実施形態において、プロセス100は、112にループバックすることができ、予測放棄分布に基づいて、更新されたバッファサイズを決定することができ(すなわち、ユーザデバイスのバッファに関する第3のサイズを決定することができ)、コンテンツアイテムの提示を継続しながら、114においてバッファサイズを更新された(第3の)バッファサイズに変更することができる。いくつかの実施形態において、プロセス100は、予測放棄分布に基づいて、ビデオコンテンツアイテムの提示中に、バッファのサイズを順次に複数回変更させることができることに留意されたい。いくつかのそのような実施形態において、プロセス100は、ビデオコンテンツアイテムの提示中に、バッファのサイズを任意の適切な回数(たとえば、1回、2回、3回、10回、および/または任意の他の適切な回数)変更させることができる。具体的な例として、予測放棄分布が、ユーザがビデオコンテンツアイテムの開始時にビデオコンテンツアイテムの提示を停止させる尤度が比較的高いことを示す例において、プロセス100は、ビデオコンテンツアイテムの開始部分の提示中に、バッファが対応して小さいサイズを有するようにすることができる。この例を続けると、ユーザがビデオコンテンツアイテムの開始部分の間にビデオコンテンツアイテムの提示を停止せず、予測放棄分布が、ユーザがビデオコンテンツアイテムの中央部分の間にビデオコンテンツアイテムの提示を停止する尤度が低いことを示す例において、プロセス100は、ビデオコンテンツアイテムの中央部分の提示中にバッファサイズを増加させることができる。この例をさらに続けると、ユーザがビデオコンテンツアイテムの中央部分の間にビデオコンテンツアイテムの提示を停止せず、予測放棄分布が、ユーザがビデオコンテンツアイテムの全持続時間の前にビデオコンテンツアイテムの終了部分の間にビデオコンテンツアイテムの提示を停止する尤度が高いことを示す例において、プロセス100は、ビデオコンテンツアイテムの終了部分の提示中にバッファサイズを減少させることができる。
図2に進むと、開示される主題のいくつかの実施形態に従って、予測放棄分布を決定するためのプロセスの例示的な例200が示されている。いくつかの実施形態において、プロセス200のブロックは、メディアコンテンツをホストおよび/またはユーザデバイスにストリーミングするサーバなどのサーバによって実行され得る。いくつかの実施形態において、サーバは、任意の適切なメディアコンテンツ(たとえば、ユーザ生成メディアコンテンツ、ビデオ、テレビ番組、映画、音楽、および/または任意の他の適切なタイプのメディアコンテンツ)をホストし、メディアコンテンツをユーザデバイスにストリーミングする特定のメディアコンテンツ共有サービスに関連付けられ得ることに留意されたい。
プロセス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分ごとの、および/または任意の他の適切な時点における)確率を示すことができる。
いくつかの実施形態において、プロセス200は、任意の適切な方法で、任意の適切な技法を使用して、予測放棄分布を計算することができる。たとえば、いくつかの実施形態において、プロセス200は、分布に沿った異なる点において、ユーザがビデオコンテンツアイテムの提示を停止する尤度または確率を示す任意の適切な分布をモデル化することができる。いくつかの実施形態において、プロセス200は、任意の適切なユーザのグループによって以前に閲覧されたビデオコンテンツアイテムに関連するデータを使用してモデルを生成することができる。いくつかの実施形態において、プロセス200は、任意の適切なサイズ(たとえば、数千の以前に閲覧されたビデオコンテンツアイテム、数百万の以前に閲覧されたビデオコンテンツアイテム、および/または任意の他の適切なサイズ)のデータセットを使用してモデルを生成することができることに留意されたい。加えて、いくつかの実施形態において、プロセス200は、モデルを生成する前に、任意の適切な方法でモデルを生成するために使用されるデータを前処理することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、(ビデオコンテンツアイテムが誤って選択されたことを示す)ゼロ時間の持続時間の間視聴されたビデオコンテンツアイテム、および/または任意の他の適切な外れ値などの任意の適切な外れ値を破棄することができる。いくつかの実施形態において、ビデオコンテンツアイテムの持続時間は、範囲の分布が[0,1]に及ぶように正規化され得る。いくつかの実施形態において、Kumaraswamy分布、ベータ分布、ロジット変換された分布、および/または任意の他の適切な分布などの任意の適切な分布が使用され得る。
いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せを使用して分布をモデル化することができる。たとえば、いくつかの実施形態において、分布は、回帰の1膨張混合(one-inflated mixture)としてモデル化され得る。より具体的な例として、いくつかの実施形態において、分布は、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰、およびユーザが異なる時点においてビデオコンテンツアイテムの提示を停止する尤度をモデル化する第2の回帰などの、2つ以上の回帰の混合または組合せとしてモデル化され得る。いくつかの実施形態において、回帰の混合内に含まれる各回帰は、異なるタイプの回帰(たとえば、Kumaraswamy回帰、ベータ回帰、ロジスティック回帰、および/または任意の他の適切なタイプの回帰)であり得る。たとえば、いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰は、ロジスティック回帰であり得、ユーザが異なる時点においてビデオコンテンツアイテムの提示を停止する尤度をモデル化する第2の回帰は、Kumaraswamy回帰であり得る。いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する第1の回帰は、勾配ブーステッド木分類器および/または任意の他の適切なタイプの分類器などの任意の適切なタイプの分類器であり得ることに留意されたい。加えて、いくつかの実施形態において、回帰の混合内の各回帰は、任意の適切な成分または予測子に対応する任意の適切な数の項を有することができ、任意の適切な数の交差項を有し得ることに留意されたい。たとえば、いくつかの実施形態において、回帰の混合の第1の回帰と第2の回帰の両方は、同じ予測子と同じ交差項とを含むことができる。別の例として、いくつかの実施形態において、第2の回帰は、任意の適切な二次項を含むKumaraswamy回帰であり得る。
いくつかの実施形態において、プロセス200が、第1の回帰が、ユーザがビデオコンテンツアイテムの全体を視聴する尤度をモデル化する回帰の混合を生成する例において、プロセス200は、データの訓練セットの生成中に、任意の適切な方法で、訓練セット内に含まれるビデオコンテンツアイテムがそれらの全体において視聴されたかどうかを判定することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、(たとえば、各ビデオコンテンツアイテムの再生に関連するログデータを使用して)、ビデオコンテンツアイテムの提示のために使用されたビデオプレーヤの状態が、ビデオコンテンツアイテムがその全体において再生されたビデオによって提示されたことを示す任意の適切な方法で変化したかどうかを判定することができる。
加えて、いくつかの実施形態において、上記で説明されているような回帰の混合を生成するのではなく、いくつかの実施形態において、プロセス200は、データ内に含まれるゼロまたは1の値が存在しないように、データ点を0.5などの任意の適切な中間値に収縮するために、モデルを生成するために使用されるデータを処理することができることに留意されたい。いくつかの実施形態において、プロセス200は、任意の適切な収縮関数を使用してデータ点を収縮するようにデータ点を変換することができる。
いくつかの実施形態において、各回帰は、回帰を生成するために使用される予測子の異なるセットに基づき得る。いくつかの実施形態において、予測子のセットは、任意の適切な因子または変数を含むことができる。たとえば、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムの持続時間、ビデオコンテンツアイテムの持続時間の対数、ビデオコンテンツアイテムが背景音楽を含むかどうか、ビデオコンテンツアイテムが広告であるかどうか、ビデオコンテンツアイテムがスキップ可能である広告であるかどうか、および/またはビデオコンテンツアイテムの任意の他の適切な特性などの、ビデオコンテンツアイテムの特性を含むことができる。別の例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムがリンクまたは埋め込まれるインターフェースのタイプ(たとえば、ビデオコンテンツアイテムがウェブサイトまたはソーシャルネットワーキング投稿内にインラインで埋め込まれるかどうか)、ビデオコンテンツアイテムがデフォルトで自動再生に設定されているかどうか、ビデオコンテンツアイテムがデフォルトでミュートに設定されているかどうか、ビデオコンテンツアイテムがインラインで埋め込まれたときにオーディオコンテンツをミュートするように設定されているかどうか、および/または任意の適切な特性などの、ビデオコンテンツアイテムが他のコンテンツ内(たとえば、ウェブページ内、ソーシャルネットワーキング投稿内、メッセージ内、および/または任意の他の適切なタイプのコンテンツ内)にリンクまたは埋め込まれる方法に関連する特性を含むことができる。さらに別の例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムが再バッファリングするために一時停止されたときにユーザがビデオコンテンツアイテムの提示を停止する尤度、ビデオコンテンツアイテムを再バッファリングするために必要な予測持続時間、ビデオコンテンツアイテムが再バッファリングされる予測回数、および/または任意の他の適切なバッファリング情報などの、ビデオコンテンツアイテムのバッファリングを示す情報を含むことができる。さらに別の例として、いくつかの実施形態において、予測子のセットは、以前のユーザがビデオコンテンツアイテムを閲覧した平均持続時間、ビデオコンテンツアイテムを完全に閲覧したユーザの割合、特定の提示時点の前(たとえば、ビデオコンテンツアイテムの中間点の前、特定の提示タイムスタンプの前、および/または任意の他の適切な時点の前)にビデオコンテンツアイテムの提示を停止したユーザの割合、および/または任意の他の適切な以前の閲覧情報などの、ビデオコンテンツアイテムが他のユーザによって以前に閲覧された方法に関連する情報を含むことができる。さらなる例として、いくつかの実施形態において、予測子のセットは、ビデオコンテンツアイテムが現在閲覧されているかまたは以前に閲覧された方法に関連するシーク情報を含むことができ、ビデオの再生中のシーク指示は、再生放棄とみなされ得る。
いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せを使用して、回帰を回帰の混合内に適合させることができる。たとえば、いくつかの実施形態において、プロセス200は、各回帰に関連する各予測子に関する係数を生成するために、期待値最大化を使用することができる。より具体的な例として、いくつかの実施形態において、回帰の混合において使用されるKumaraswamy回帰は、log(a)=P*Xおよびlog(b)=Q*Xなどの関係を介して(上記で説明されているような)任意の適切な予測変数に依存する分布パラメータを有することができ、ここで、PおよびQは、係数行列であり、Xは、共変量ベクトルである。いくつかの実施形態において、プロセス200は、任意の適切な技法または技法の組合せ(たとえば、ニュートン-ラフソン法、および/または任意の他の適切な技法)を使用する最尤推定を使用してモデルパラメータ(たとえば、係数行列PおよびQ)を推定することができる。別の例として、いくつかの実施形態において、ユーザがビデオコンテンツアイテムの全体を視聴する尤度を示す第1の回帰をモデル化するためにロジスティック回帰が使用される例において、ロジスティック回帰の任意の適切な予測子に関連する係数は、任意の適切な技法または技法の組合せを使用して計算され得る。
204において、プロセス200は、ユーザデバイスから、ビデオコンテンツアイテムの部分に対する要求を受信することができる。いくつかの実施形態において、プロセス200は、任意の適切な方法でビデオコンテンツアイテムの部分に対する要求を受信することができる。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスのユーザがユーザデバイス上での提示のために特定のビデオコンテンツアイテムを選択したという指標を受信することができる。別の例として、いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムが埋め込まれたページが、ビデオコンテンツアイテムが可視になるようにナビゲートされたという指標を受信することができる。
いくつかの実施形態において、プロセス200は、ユーザデバイスから、ユーザデバイスに関連する任意の適切な情報(たとえば、ユーザデバイスのモデル、ユーザデバイスの識別子、ユーザデバイスに関連付けられたディスプレイの画面サイズもしくは解像度、ユーザデバイスの現在の向き、および/またはユーザデバイスに関連付けられたディスプレイ、および/もしくは任意の他の適切な情報)、および/またはストリーミングされたメディアコンテンツを受信するために使用される通信ネットワークへのユーザデバイスの接続に関連する任意の適切な情報(たとえば、接続の現在の帯域幅、接続の現在のレイテンシ、接続の現在の信号強度、接続のタイプの識別子、および/または任意の他の適切な情報)を受信することができることに留意されたい。
206において、プロセス200は、要求されたビデオコンテンツアイテムに対応する予測放棄分布をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、予測放棄分布を任意の適切な方法で送信することができる。たとえば、予測放棄分布が連続分布である例において、プロセス200は、連続分布のパラメータをユーザデバイスに送信することができる。別の例において、いくつかの実施形態において、プロセス200は、予測放棄分布を配列としてフォーマットすることができ、ここで、配列の要素の第1のセットは、0から1に正規化されたビデオコンテンツアイテムの異なる時点を示し、配列の要素の第2のセットは、ビデオコンテンツアイテムを閲覧するユーザが対応する時点の各々においてビデオコンテンツアイテムの提示を停止する尤度を示す、いくつかのそのような実施形態において、プロセス200は、配列をユーザデバイスに送信することができる。
208において、プロセス200は、ビデオコンテンツアイテムの部分をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムの部分をユーザデバイスに送信する前に、ビデオコンテンツアイテムの部分に対応するファイルを識別することができることに留意されたい。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスに関連する情報および/またはユーザデバイスの通信ネットワークへの接続に関連する情報に基づいて識別されるビデオコンテンツアイテムの部分のバージョンに対応するファイルを識別することができる。より具体的な例として、いくつかの実施形態において、プロセス200は、ユーザデバイスに関連付けられたディスプレイの画面サイズに基づいて、特定の解像度に関連付けられたビデオコンテンツアイテムのバージョンを識別することができる。別のより具体的な例において、いくつかの実施形態において、プロセス200は、ネットワーク接続の現在の帯域幅に基づいて、特定の解像度に関連付けられたビデオコンテンツアイテムのバージョンを識別することができる。
210において、プロセス200は、任意選択で、ユーザデバイスから、ビデオコンテンツアイテムの第2の部分に対する要求を受信することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、任意の適切な情報を含むことができる。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、図1の112~116に関連して上記で説明されているように、ユーザデバイスによって使用される更新されたバッファサイズを含むことができる。別の例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、ユーザデバイスによって使用されるネットワーク接続に関連する任意の適切なネットワーク情報(たとえば、接続に関連する現在の帯域幅、接続に関連する現在のレイテンシ、接続に関連する現在の信号強度、および/または任意の他の適切なネットワーク情報)を含むことができる。さらに別の例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求は、ユーザデバイスに関連するデバイス情報(たとえば、ユーザデバイスの現在のバッファ容量、ユーザデバイスによって使用されるバッファの現在のバッファサイズ、ユーザデバイスに関連付けられたディスプレイの現在のディスプレイの向き、および/または任意の他の適切な情報)を含むことができる。
212において、プロセス200は、要求の受信に応答して、ビデオコンテンツアイテムの第2の部分をユーザデバイスに送信することができる。いくつかの実施形態において、プロセス200は、ファイル内に含まれるビデオデータを送信する前に、ビデオコンテンツアイテムの第2の部分に関連するファイルを識別することができる。たとえば、いくつかの実施形態において、プロセス200は、ユーザデバイスのネットワーク接続に関連する現在のネットワーク情報に基づく、ユーザデバイスに関連付けられたディスプレイの解像度もしくはサイズに基づいて、および/または任意の他の適切な情報に基づくなど、任意の適切な情報に基づいて、ビデオコンテンツの特定の解像度に対応するファイルを識別することができる。いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、任意の適切なサイズまたは持続時間を有することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分は、ユーザデバイスによって使用される更新されたバッファサイズに対応するサイズおよび/または持続時間を有することができる。より具体的な例として、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求が、ユーザデバイスが(たとえば、208において送信される)ビデオコンテンツアイテムの第1の部分を記憶するために使用されるバッファのサイズよりも小さくなるようにバッファのサイズを変更したことを示す例において、プロセス200は、ビデオコンテンツアイテムの第1の部分よりもサイズが小さいおよび/または短い持続時間を有するビデオコンテンツアイテムの第2の部分を送信することができる。逆に、ビデオコンテンツアイテムの第2の部分に対する要求が、ユーザデバイスがビデオコンテンツアイテムの第1の部分を記憶するために使用されるバッファのサイズよりも大きくなるようにバッファのサイズを変更したことを示す例において、プロセス200は、ビデオコンテンツアイテムの第1の部分よりもサイズが大きいおよび/または長い持続時間を有するビデオコンテンツアイテムの第2の部分を送信することができる。
いくつかの実施形態において、プロセス200は、ビデオコンテンツアイテムが広告である例において、ユーザデバイスによって要求されたビデオコンテンツアイテムの部分よりも多くを送信することができることに留意されたい。たとえば、いくつかの実施形態において、ビデオコンテンツアイテムの第2の部分に対する要求が、(たとえば、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止する尤度が高いとの判定に応答して)第2の部分のサイズを比較的小さく、および/または持続時間を短くすることを示す例において、プロセス200は、ビデオコンテンツアイテムが広告であるとの判定に応答して、ビデオコンテンツアイテムの要求された量または持続時間よりも多くを送信することができる。
いくつかの実施形態において、プロセス200は、210にループバックすることができ、ビデオコンテンツアイテムの別の部分に対する別の要求を受信することができる。いくつかのそのような実施形態において、プロセス200は、ビデオコンテンツアイテム全体がユーザデバイスにストリーミングされるまで、またはプロセス200が、ユーザデバイスのユーザがビデオコンテンツアイテムの提示を停止したという指標を受信するまで、210および212を介してループすることができる。
プロセス100および200は、一般に、予測放棄分布を受信し、予測放棄分布に基づいてバッファサイズを決定し、決定されたバッファサイズに基づいてバッファサイズを変更するユーザデバイスとして説明されるが、いくつかの実施形態において、サーバは、予測放棄分布に基づいて、更新されたバッファサイズを決定することができることに留意されたい。たとえば、図1のブロック112に関連して上記で説明されているものと同様に、いくつかの実施形態において、サーバは、予測放棄分布に基づいて。バッファサイズを増加または減少させるかどうかを決定することができる。いくつかの実施形態において、次いで、サーバは、バッファサイズにおける変化の指標をユーザデバイスに送信することができる。加えて、いくつかの実施形態において、サーバは、ユーザデバイスに送信されるビデオコンテンツアイテムの部分のサイズを変更することができる。たとえば、ユーザデバイスに送信されるビデオコンテンツアイテムの第1の部分が第1のサイズまたは第1の持続時間であり、サーバが、(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が比較的高いとの判定に応答して)バッファサイズをより小さくすることを決定する例において、サーバは、比較的小さいサイズまたは比較的短い持続時間のビデオコンテンツアイテムの第2の部分を送信することができる。逆に、サーバが、(たとえば、ユーザがビデオコンテンツアイテムの提示を停止する尤度が比較的低いとの判定に応答して)バッファサイズをより大きくすることを決定する例において、サーバは、比較的大きいサイズまたは比較的長い持続時間のビデオコンテンツアイテムの第2の部分を送信することができる。加えてまたは代替的に、いくつかの実施形態において、サーバは、ビデオコンテンツアイテムの部分が送信されるときの間の時間遅延を計算することができ、時間遅延は、ユーザデバイスによってバッファリングされているビデオコンテンツアイテムの持続時間に対応する。いくつかのそのような実施形態において、サーバは、時間遅延が経過したとサーバが判定するまで、ビデオコンテンツアイテムの後続の部分をユーザデバイスに送信することを一時停止することができる。いくつかのそのような実施形態において、サーバによって使用される時間遅延は、予測放棄分布に基づいて、ビデオコンテンツアイテムのストリーミング中に変更され得ることに留意されたい。
図3に進むと、開示される主題のいくつかの実施形態に従って使用され得る適応的バッファを使用してビデオコンテンツをストリーミングするためのハードウェアの例示的な例300が示されている。図示のように、ハードウェア300は、サーバ302、通信ネットワーク304、ならびに/またはユーザデバイス308および310などの1つもしくは複数のユーザデバイス306を含むことができる。
サーバ302は、情報、データ、プログラム、メディアコンテンツ、および/または任意の他の適切なコンテンツを記憶するための任意の適切なサーバであり得る。いくつかの実施形態において、サーバ302は、任意の適切な機能を実行することができる。たとえば、いくつかの実施形態において、サーバ302は、メディアコンテンツ(たとえば、ビデオコンテンツ、オーディオコンテンツ、および/または任意の他の適切なオーディオコンテンツ)を、ユーザデバイス306のうちの1つなどのユーザデバイスに送信することができる。より具体的な例として、いくつかの実施形態において、サーバ302は、メディアコンテンツに対する要求に応答して、メディアコンテンツをユーザデバイスにストリーミングすることができる。別の例として、いくつかの実施形態において、サーバ302は、サーバ302からのメディアコンテンツアイテムをストリーミングするユーザデバイスのユーザが、図2に示され、図2に関連して上記で説明されているような、メディアコンテンツアイテムの異なる提示時点においてメディアコンテンツアイテムの提示を停止する尤度を示す予測放棄分布を決定することができる。
通信ネットワーク304は、いくつかの実施形態において、1つまたは複数の有線ネットワークおよび/またはワイヤレスネットワークの任意の適切な組合せであり得る。たとえば、通信ネットワーク304は、インターネット、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤレスネットワーク、デジタル加入者線(DSL)ネットワーク、フレームリレーネットワーク、非同期転送モード(ATM)ネットワーク、仮想プライベートネットワーク(VPN)、および/または任意の他の適切な通信ネットワークのうちの任意の1つまたは複数を含むことができる。ユーザデバイス306は、1つまたは複数の通信リンク(たとえば、通信リンク312)によって、1つまたは複数の通信リンク(たとえば、通信リンク314)を介してサーバ302とリンクされ得る通信ネットワーク304に接続され得る。通信リンクは、ネットワークリンク、ダイヤルアップリンク、ワイヤレスリンク、ハードワイヤードリンク、任意の他の適切な通信リンク、またはそのようなリンクの任意の適切な組合せなどの、ユーザデバイス306とサーバ302との間でデータを通信するのに適した任意の通信リンクであり得る。
ユーザデバイス306は、サーバ302からのメディアコンテンツをストリーミングするのに適した任意の1つまたは複数のユーザデバイスを含むことができる。いくつかの実施形態において、ユーザデバイス306は、携帯電話、タブレットコンピュータ、ウェアラブルコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートテレビ、メディアプレーヤ、ゲームコンソール、車両情報および/もしくは娯楽システム、ならびに/または任意の他の適切なタイプのユーザデバイスなどの、任意の適切なタイプのユーザデバイスを含むことができる。いくつかの実施形態において、ユーザデバイス306は、メディアコンテンツのストリーミング中にサーバ302から受信されたメディアコンテンツを記憶するために使用されるバッファのサイズを適応的に変更することができる。たとえば、いくつかの実施形態において、図1に示され、図1に関連して上記で説明されているように、ユーザデバイス306は、ユーザデバイス306がメディアコンテンツアイテムを提示し続ける尤度を示す、サーバ302から受信された予測放棄分布に基づいて、バッファのサイズを変更することができる。
サーバ302は、1つのデバイスとして示されているが、サーバ302によって実行される機能は、いくつかの実施形態において、任意の適切な数のデバイスを使用して実行され得る。たとえば、いくつかの実施形態において、サーバ302によって実行される機能を実装するために、複数のデバイスが使用され得る。
図を過度に複雑化するのを回避するために、2つのユーザデバイス308および310が図3に示されているが、いくつかの実施形態において、任意の適切な数のユーザデバイスおよび/または任意の適切なタイプのユーザデバイスが使用され得る。
いくつかの実施形態において、サーバ302およびユーザデバイス306は、任意の適切なハードウェアを使用して実装され得る。たとえば、いくつかの実施形態において、デバイス302および306は、任意の適切な汎用コンピュータまたは専用コンピュータを使用して実装され得る。たとえば、携帯電話は、専用コンピュータを使用して実装され得る。任意の適切な汎用コンピュータまたは専用コンピュータは、任意の適切なハードウェアを含むことができる。たとえば、図4の例示的なハードウェア400において示されているように、そのようなハードウェアは、ハードウェアプロセッサ402、メモリおよび/またはストレージ404、入力デバイスコントローラ406、入力デバイス408、ディスプレイ/オーディオドライバ410、ディスプレイおよびオーディオ出力回路412、通信インターフェース414、アンテナ416、ならびにバス418を含むことができる。
ハードウェアプロセッサ402は、いくつかの実施形態において、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、専用ロジック、および/または汎用コンピュータもしくは専用コンピュータの機能を制御するための任意の他の適切な回路などの、任意の適切なハードウェアプロセッサを含むことができる。いくつかの実施形態において、ハードウェアプロセッサ402は、サーバ302などのサーバのメモリおよび/またはストレージ内に記憶されたサーバプログラムによって制御され得る。いくつかの実施形態において、ハードウェアプロセッサ402は、ユーザデバイス306のメモリおよび/またはストレージ404内に記憶されたコンピュータプログラムによって制御され得る。
メモリおよび/またはストレージ404は、いくつかの実施形態において、プログラム、データ、および/または任意の他の適切な情報を記憶するための任意の適切なメモリおよび/またはストレージであり得る。たとえば、メモリおよび/またはストレージ404は、ランダムアクセスメモリ、読み取り専用メモリ、フラッシュメモリ、ハードディスクストレージ、光学式媒体、および/または任意の他の適切なメモリを含むことができる。適応的バッファは、たとえば、ハードウェアプロセッサ402によって、メモリおよび/またはストレージ404内に定義され得る。
入力デバイスコントローラ406は、いくつかの実施形態において、1つまたは複数の入力デバイス408からの入力を制御および受信するための任意の適切な回路であり得る。たとえば、入力デバイスコントローラ406は、タッチスクリーンから、キーボードから、1つまたは複数のボタンから、音声認識回路から、マイクロフォンから、カメラから、光センサから、加速度計から、温度センサから、近接場センサから、圧力センサから、エンコーダから、および/または任意の他のタイプの入力デバイスからの入力を受信するための回路であり得る。
ディスプレイ/オーディオドライバ410は、いくつかの実施形態において、1つまたは複数のディスプレイ/オーディオ出力デバイス412への出力を制御および駆動するための任意の適切な回路であり得る。たとえば、ディスプレイ/オーディオドライバ410は、タッチスクリーン、フラットパネルディスプレイ、陰極線管ディスプレイ、プロジェクタ、スピーカ、ならびに/または任意の他の適切なディスプレイおよび/もしくは提示デバイスを駆動するための回路であり得る。
通信インターフェース414は、1つまたは複数の通信ネットワーク(たとえば、通信ネットワーク304)とインターフェースするための任意の適切な回路であり得る。たとえば、インターフェース414は、ネットワークインターフェースカード回路、ワイヤレス通信回路、および/または任意の他の適切なタイプの通信ネットワーク回路を含むことができる。
アンテナ416は、いくつかの実施形態において、通信ネットワーク(たとえば、通信ネットワーク304)とワイヤレス通信するための任意の適切な1つまたは複数のアンテナであり得る。いくつかの実施形態において、アンテナ416は、省略され得る。
バス418は、いくつかの実施形態において、2つ以上の構成要素402、404、406、410、および414の間で通信するための任意の適切なメカニズムであり得る。
いくつかの実施形態によれば、任意の他の適切な構成要素がハードウェア400内に含まれ得る。
いくつかの実施形態において、図1および図2のプロセスの上記で説明されているブロックのうちの少なくともいくつかは、図中に示され、図に関連して説明されている順序およびシーケンスに限定されない任意の順序またはシーケンスにおいて実施または実行され得る。また、図1および図2の上記のブロックのうちのいくつかは、レイテンシおよび処理時間を短縮するために、必要に応じて実質的に同時に、または並行して実施または実行され得る。加えてまたは代替的に、図1および図2のプロセスの上記で説明されているブロックのうちのいくつかは、省略され得る。
いくつかの実施形態において、任意の適切なコンピュータ可読媒体が、本明細書における機能および/または処理を実行するための命令を記憶するために使用され得る。たとえば、いくつかの実施形態において、コンピュータ可読媒体は、一時的または非一時的であり得る。たとえば、非一時的コンピュータ可読媒体は、非一時的形態の磁気媒体(ハードディスク、フロッピーディスク、および/または任意の他の適切な磁気媒体など)、非一時的形態の光学式媒体(コンパクトディスク、デジタルビデオディスク、Blu-ray(登録商標)ディスク、および/または任意の他の適切な光学式媒体など)、非一時的形態の半導体媒体(フラッシュメモリ、電気的にプログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、および/または任意の他の適切な半導体媒体など)、送信中に一過性ではないか、もしくは永続性の様相を欠かない任意の適切な媒体、および/または任意の適切な有形の媒体などの媒体を含むことができる。別の例として、一時的なコンピュータ可読媒体は、ネットワーク上、ワイヤ内、導体内、光ファイバ内、回路内の信号、送信中に一過性であるか、もしくは永続性の様相を欠く任意の適切な媒体、および/または任意の適切な無形の媒体を含むことができる。
したがって、適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体が提供される。
本発明は、前述の例示的な実施形態において説明および図示されてきたが、本開示は、例としてのみなされており、本発明の実装形態の詳細における多数の変更は、以下の特許請求の範囲によってのみ限定される本発明の要旨および範囲から逸脱せずになされ得ることが理解される。開示される実施形態の特徴は、様々な方法において組み合わされ、再配置され得る。
300 ハードウェア
302 サーバ
304 通信ネットワーク
306 ユーザデバイス
308 ユーザデバイス
310 ユーザデバイス
312 通信リンク
314 通信リンク
400 ハードウェア
402 ハードウェアプロセッサ
404 メモリおよび/またはストレージ
406 入力デバイスコントローラ
408 入力デバイス
410 ディスプレイ/オーディオドライバ
412 ディスプレイおよびオーディオ出力回路、ディスプレイ/オーディオ出力デバイス
414 通信インターフェース
416 アンテナ
418 バス

Claims (21)

  1. バッファを使用してビデオコンテンツをストリーミングするための方法であって、
    ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信するステップと、
    前記ユーザデバイスにおいて、前記サーバから、前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信するステップと、
    前記ユーザデバイスにおいて、前記サーバから、前記ビデオコンテンツアイテムの第1の部分を受信するステップと、
    前記ビデオコンテンツアイテムの前記第1の部分を、第1のサイズを有する前記ユーザデバイスのバッファ内に記憶するステップと、
    前記ビデオコンテンツアイテムを前記ユーザデバイスによって提示させるステップと、
    前記予測放棄分布に基づいて前記バッファに関する第2のサイズを決定するステップと、
    前記バッファのサイズを前記第2のサイズに変更するステップと、
    前記バッファの前記第2のサイズに基づいて、前記サーバからの前記ビデオコンテンツアイテムの第2の部分を要求するステップと、
    前記サーバから、前記ビデオコンテンツアイテムの前記第2の部分を受信するステップと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記ビデオコンテンツアイテムの前記第2の部分を、前記第2のサイズを有する前記バッファ内に記憶するステップ
    とを含む、方法。
  2. 前記予測放棄分布に基づいて前記バッファに関する前記第2のサイズを決定するステップが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を下回ることを判定するステップと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を下回るとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも大きくすることを決定するステップ
    とを含む、請求項1に記載の方法。
  3. 前記予測放棄分布に基づいて前記バッファに関する前記第2のサイズを決定するステップが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を超えることを判定するステップと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を超えるとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも小さくすることを決定するステップ
    とを含む、請求項1に記載の方法。
  4. 前記予測放棄分布に基づいて前記バッファに関する第3のサイズを決定するステップと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記バッファの前記サイズを前記第3のサイズに変更するステップ
    とをさらに含む、請求項1、2、または3に記載の方法。
  5. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に対して正規化される、請求項1から4のいずれか一項に記載の方法。
  6. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項1から5のいずれか一項に記載の方法。
  7. 前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項1から6のいずれか一項に記載の方法。
  8. バッファを使用してビデオコンテンツをストリーミングするためのシステムであって、
    ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、
    前記ユーザデバイスにおいて、前記サーバから、前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、
    前記ユーザデバイスにおいて、前記サーバから、前記ビデオコンテンツアイテムの第1の部分を受信することと、
    前記ビデオコンテンツアイテムの前記第1の部分を、第1のサイズを有する前記ユーザデバイスのバッファ内に記憶することと、
    前記ビデオコンテンツアイテムを前記ユーザデバイスによって提示させることと、
    前記予測放棄分布に基づいて前記バッファに関する第2のサイズを決定することと、
    前記バッファのサイズを前記第2のサイズに変更することと、
    前記バッファの前記第2のサイズに基づいて、前記サーバからの前記ビデオコンテンツアイテムの第2の部分を要求することと、
    前記サーバから、前記ビデオコンテンツアイテムの前記第2の部分を受信することと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記ビデオコンテンツアイテムの前記第2の部分を、前記第2のサイズの前記バッファ内に記憶すること
    とを行うように構成されたハードウェアプロセッサ
    を備える、システム。
  9. 前記予測放棄分布に基づいて前記バッファに関する前記第2のサイズを決定することが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を下回ることを判定することと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を下回るとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも大きくすることを決定すること
    とを含む、請求項8に記載のシステム。
  10. 前記予測放棄分布に基づいて前記バッファに関する前記第2のサイズを決定することが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を超えることを判定することと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を超えるとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも小さくすることを決定すること
    とを含む、請求項8に記載のシステム。
  11. 前記ハードウェアプロセッサが、
    前記予測放棄分布に基づいて前記バッファに関する第3のサイズを決定することと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記バッファの前記サイズを前記第3のサイズに変更すること
    とを行うようにさらに構成された、請求項8、9、または10に記載のシステム。
  12. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に対して正規化される、請求項8、9、10、または11に記載のシステム。
  13. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項8、9、10、11、または12に記載のシステム。
  14. 前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項8、9、10、11、12、または13に記載のシステム。
  15. プロセッサによって実行されると、前記プロセッサに、バッファを使用してビデオコンテンツをストリーミングするための方法を実行させるコンピュータ実行可能命令を含むコンピュータ可読媒体であって、前記方法が、
    ユーザデバイスからサーバに、ビデオコンテンツアイテムをストリーミングするための要求を送信することと、
    前記ユーザデバイスにおいて、前記サーバから、前記ユーザデバイスのユーザが前記ビデオコンテンツアイテムの対応する複数の提示時点において前記ビデオコンテンツアイテムの提示を停止する複数の尤度を示す予測放棄分布を受信することと、
    前記ユーザデバイスにおいて、前記サーバから、前記ビデオコンテンツアイテムの第1の部分を受信することと、
    前記ビデオコンテンツアイテムの前記第1の部分を、第1のサイズを有する前記ユーザデバイスのバッファ内に記憶することと、
    前記ビデオコンテンツアイテムを前記ユーザデバイスによって提示させることと、
    前記予測放棄分布に基づいて前記バッファに関する第2のサイズを決定することと、
    前記バッファのサイズを前記第2のサイズに変更することと、
    前記バッファの前記第2のサイズに基づいて、前記サーバからの前記ビデオコンテンツアイテムの第2の部分を要求することと、
    前記サーバから、前記ビデオコンテンツアイテムの前記第2の部分を受信することと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記ビデオコンテンツアイテムの前記第2の部分を、前記第2のサイズを有する前記バッファ内に記憶すること
    とを含む、コンピュータ可読媒体。
  16. 前記予測放棄分布に基づいて前記バッファに関する前記第2のサイズを決定することが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を下回ることを判定することと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を下回るとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも大きくすることを決定すること
    とを含む、請求項15に記載のコンピュータ可読媒体。
  17. 前記予測放棄分布に基づいて前記バッファの前記第2のサイズを決定することが、
    前記ユーザデバイスの前記ユーザが前記ビデオコンテンツアイテムの提示を停止する前記複数の尤度のうちの尤度が所定のしきい値を超えることを判定することと、
    前記複数の尤度のうちの前記尤度が前記所定のしきい値を超えるとの判定に応答して、前記バッファに関する前記第2のサイズを前記第1のサイズよりも小さくすることを決定すること
    とを含む、請求項15に記載のコンピュータ可読媒体。
  18. 前記方法が、
    前記予測放棄分布に基づいて前記バッファに関する第3のサイズを決定することと、
    前記ビデオコンテンツアイテムの提示を継続しながら、前記バッファの前記サイズを前記第3のサイズに変更すること
    とをさらに含む、請求項15、16、または17に記載のコンピュータ可読媒体。
  19. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に対して正規化される、請求項15、16、17、または18に記載のコンピュータ可読媒体。
  20. 前記予測放棄分布が、前記ビデオコンテンツアイテムの持続時間に基づいて計算される、請求項15、16、17、18、または19に記載のコンピュータ可読媒体。
  21. 前記予測放棄分布が、前記ビデオコンテンツアイテムの特性に基づいて計算される、請求項15、16、17、18、19、または20に記載のコンピュータ可読媒体。
JP2022522357A 2019-10-14 2020-01-24 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体 Active JP7318123B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023117721A JP7559156B2 (ja) 2019-10-14 2023-07-19 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962914978P 2019-10-14 2019-10-14
US62/914,978 2019-10-14
PCT/US2020/015000 WO2021076173A1 (en) 2019-10-14 2020-01-24 Methods, systems, and media for streaming video content using adaptive buffers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023117721A Division JP7559156B2 (ja) 2019-10-14 2023-07-19 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体

Publications (2)

Publication Number Publication Date
JP2022552330A JP2022552330A (ja) 2022-12-15
JP7318123B2 true JP7318123B2 (ja) 2023-07-31

Family

ID=69724118

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022522357A Active JP7318123B2 (ja) 2019-10-14 2020-01-24 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体
JP2023117721A Active JP7559156B2 (ja) 2019-10-14 2023-07-19 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023117721A Active JP7559156B2 (ja) 2019-10-14 2023-07-19 適応的バッファを使用してビデオコンテンツをストリーミングするための方法、システム、および媒体

Country Status (6)

Country Link
US (3) US11546675B2 (ja)
EP (2) EP4373105A3 (ja)
JP (2) JP7318123B2 (ja)
KR (1) KR20220075434A (ja)
CN (1) CN114586371A (ja)
WO (1) WO2021076173A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7255704B2 (ja) * 2019-11-11 2023-04-11 日本電信電話株式会社 エンゲージメント推定装置、エンゲージメント推定方法及びプログラム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002032083A1 (fr) 2000-10-13 2002-04-18 Sony Corporation Systeme de controle de la qualite de la communication de donnees, systeme emetteur et recepteur
JP2006345582A (ja) 2001-02-08 2006-12-21 Nokia Corp メディアデータをストリーミングする方法、システム及びクライアント装置
US20080310814A1 (en) 2007-06-13 2008-12-18 Microsoft Corporation Multi-location buffering of streaming media data
JP2010258489A (ja) 2009-04-21 2010-11-11 Hitachi Ltd 映像表示装置、受信装置、送受信システム、及び映像表示方法
JP2011146998A (ja) 2010-01-15 2011-07-28 Hitachi Consumer Electronics Co Ltd コンテンツ受信機及びコンテンツ受信機における受信パケットデータの処理方法
JP2013098982A (ja) 2011-10-27 2013-05-20 Thomson Licensing 適応ストリーミングクライアントの操作を遠隔管理する方法
WO2019059134A1 (ja) 2017-09-22 2019-03-28 株式会社Nttドコモ 通信品質調整システム
US20190281333A1 (en) 2018-03-06 2019-09-12 At&T Intellectual Property I, L.P. Method for intelligent buffering for over the top (ott) video delivery

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9451306B2 (en) 2012-01-03 2016-09-20 Google Inc. Selecting content formats for additional content to be presented along with video content to a user based on predicted likelihood of abandonment
US20170072321A1 (en) * 2013-05-22 2017-03-16 David S. Thompson Highly interactive fantasy sports interleaver
US10505833B2 (en) 2014-05-15 2019-12-10 At&T Intellectual Property I, L.P. Predicting video engagement from wireless network measurements
GB2533942A (en) * 2015-01-07 2016-07-13 Vodafone Ip Licensing Ltd Adaptive buffering of a content player for a mobile device in a telecommunication network
US9973448B2 (en) * 2015-02-25 2018-05-15 At&T Mobility Ii Llc Predictive cached buffer for communication devices
US10003847B2 (en) 2016-04-22 2018-06-19 Google Llc Watch-time clustering for improving video searches, selection and provision
CN117370603A (zh) * 2016-11-11 2024-01-09 谷歌有限责任公司 基于用户装置的消费模式来修改视频内容在用户装置上的呈现的方法、系统和介质
GB2564714A (en) * 2017-07-21 2019-01-23 Falcon Media House A method, device and system for streaming media data
US10848819B2 (en) * 2018-09-25 2020-11-24 Rovi Guides, Inc. Systems and methods for adjusting buffer size
US11070607B2 (en) * 2019-07-22 2021-07-20 DAZN Limited Dynamic behavior modification for content download and playback

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002032083A1 (fr) 2000-10-13 2002-04-18 Sony Corporation Systeme de controle de la qualite de la communication de donnees, systeme emetteur et recepteur
JP2006345582A (ja) 2001-02-08 2006-12-21 Nokia Corp メディアデータをストリーミングする方法、システム及びクライアント装置
US20080310814A1 (en) 2007-06-13 2008-12-18 Microsoft Corporation Multi-location buffering of streaming media data
JP2010258489A (ja) 2009-04-21 2010-11-11 Hitachi Ltd 映像表示装置、受信装置、送受信システム、及び映像表示方法
JP2011146998A (ja) 2010-01-15 2011-07-28 Hitachi Consumer Electronics Co Ltd コンテンツ受信機及びコンテンツ受信機における受信パケットデータの処理方法
JP2013098982A (ja) 2011-10-27 2013-05-20 Thomson Licensing 適応ストリーミングクライアントの操作を遠隔管理する方法
WO2019059134A1 (ja) 2017-09-22 2019-03-28 株式会社Nttドコモ 通信品質調整システム
US20190281333A1 (en) 2018-03-06 2019-09-12 At&T Intellectual Property I, L.P. Method for intelligent buffering for over the top (ott) video delivery

Also Published As

Publication number Publication date
US12015834B2 (en) 2024-06-18
EP4373105A2 (en) 2024-05-22
US20230138238A1 (en) 2023-05-04
EP4373105A3 (en) 2024-05-29
CN114586371A (zh) 2022-06-03
US11546675B2 (en) 2023-01-03
JP2023145562A (ja) 2023-10-11
EP4038892A1 (en) 2022-08-10
JP7559156B2 (ja) 2024-10-01
WO2021076173A1 (en) 2021-04-22
EP4038892B1 (en) 2024-03-06
KR20220075434A (ko) 2022-06-08
JP2022552330A (ja) 2022-12-15
US20210112314A1 (en) 2021-04-15
US20240340507A1 (en) 2024-10-10

Similar Documents

Publication Publication Date Title
US10305947B2 (en) Pre-buffering audio streams
US9167007B2 (en) Stream complexity mapping
US10110650B2 (en) Client side stream switching
US9473548B1 (en) Latency reduction in streamed content consumption
EP2300928B1 (en) Client side stream switching
JP4818562B2 (ja) 漸進的により高品質のバージョンのオーディオおよび/またはビデオプログラムを得るための方法およびコンピュータネットワーク
US20240340507A1 (en) Methods, systems, and media for streaming video content using adaptive buffers
US20160180496A1 (en) Information processor, information processing method, and program
US11356739B2 (en) Video playback method, terminal apparatus, and storage medium
CN113424553A (zh) 用于响应于用户选择而推进交互式媒体项目的重放的技术
US20240214443A1 (en) Methods, systems, and media for selecting video formats for adaptive video streaming
CN114040245A (zh) 视频播放方法、装置、计算机存储介质和电子设备
US10469794B2 (en) Information processing apparatus, information processing method, and information processing system for content management using play lists
EP4074058A1 (en) Methods, systems, and media for selecting formats for streaming media content items
JP6711120B2 (ja) 映像再生装置、映像再生方法および映像再生プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220530

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230614

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230619

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230719

R150 Certificate of patent or registration of utility model

Ref document number: 7318123

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150