KR20220075434A - 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들 - Google Patents
적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들 Download PDFInfo
- Publication number
- KR20220075434A KR20220075434A KR1020227016144A KR20227016144A KR20220075434A KR 20220075434 A KR20220075434 A KR 20220075434A KR 1020227016144 A KR1020227016144 A KR 1020227016144A KR 20227016144 A KR20227016144 A KR 20227016144A KR 20220075434 A KR20220075434 A KR 20220075434A
- Authority
- KR
- South Korea
- Prior art keywords
- video content
- content item
- size
- buffer
- user device
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 158
- 230000003044 adaptive effect Effects 0.000 title abstract description 12
- 230000004044 response Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 description 106
- 238000004891 communication Methods 0.000 description 22
- 239000000203 mixture Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000006855 networking Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000007477 logistic regression Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000002940 Newton-Raphson method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/442—Monitoring 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/44204—Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/23406—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing 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/23439—Processing 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/251—Learning process for intelligent management, e.g. learning user preferences for recommending movies
- H04N21/252—Processing of multiple end-users' preferences to derive collaborative data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/44—Processing 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/44004—Processing 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)
Abstract
적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들이 제공된다. 일부 실시예들에서, 이 방법은: 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하는 단계; 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들을 비디오 콘텐츠 아이템의 대응하는 복수의 프레젠테이션 시간 포인트들에서 표시하는 예측된 포기 분포를 서버로부터 사용자 디바이스에서 수신하는 단계; 비디오 콘텐츠 아이템의 제1 부분을 서버로부터 사용자 디바이스에서 수신하는 단계; 비디오 콘텐츠 아이템의 제1 부분을, 제1 사이즈를 갖는 사용자 디바이스의 버퍼에 저장하는 단계; 비디오 콘텐츠 아이템이 사용자 디바이스에 의해 제시되게 하는 단계; 예측된 포기 분포에 기초하여 버퍼의 제2 사이즈를 결정하는 단계; 버퍼의 사이즈를 제2 사이즈로 수정하는 단계; 버퍼의 제2 사이즈에 기초하여 서버로부터 비디오 콘텐츠 아이템의 제2 부분을 요청하는 단계; 서버로부터 비디오 콘텐츠 아이템의 제2 부분을 수신하는 단계; 및 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서, 비디오 콘텐츠 아이템의 제2 부분을 제2 사이즈의 버퍼에 저장하는 단계를 포함한다.
Description
관련 출원에 대한 상호 참조
본 출원은, 2019년 10월 14일자로 출원된 미국 가특허 출원 제62/914,978호의 이익을 주장하고, 이 미국 가특허 출원은 이로써 본 명세서에 그 전체가 참조로 포함된다.
기술분야
개시된 청구 대상은 적응 버퍼(adaptive buffer)들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들에 관한 것이다.
사용자들은 미디어 콘텐츠 공유 서비스들로부터 사용자 디바이스들(예를 들어, 모바일 폰들, 태블릿 컴퓨터들, 스마트 텔레비전들, 미디어 플레이어들 등)로 미디어 콘텐츠(예를 들어, 비디오들, 텔레비전 프로그램들, 영화들, 음악 등)를 빈번하게 스트리밍한다. 미디어 콘텐츠 아이템을 스트리밍하는 사용자 디바이스는 미디어 콘텐츠 아이템을 버퍼링하여, 미디어 콘텐츠 아이템을 스트리밍하는 데 사용되는 네트워크 커넥션이 품질이 떨어지거나 또는 지연되는 경우들에서 미디어 콘텐츠의 일 부분이 프레젠테이션(presentation)을 위해 이용가능하도록 할 수도 있다. 많은 경우들에서, 사용자 디바이스는 고정된 버퍼 사이즈를 사용한다. 일부 그러한 경우들에서, 예를 들어, 저장된 부분들이 제시되기 전에 사용자 디바이스의 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지하는 경우들에서, 서버는, 버퍼에 저장된 미디어 콘텐츠 아이템의 제시되지 않은 부분들을 송신할 수도 있다. 버퍼링되지만 제시되지 않은 미디어 콘텐츠 아이템의 부분들을 송신하면, 서버와 사용자 디바이스 양측 모두에 대해, 리소스들을 낭비할 수 있다.
이에 따라, 비디오 콘텐츠를 스트리밍하기 위한 새로운 방법들, 시스템들, 및 매체들을 제공하는 것이 바람직하다.
적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들이 제공된다. ("적응" 버퍼는, 요구에 따라 변경될 수도 있는 사이즈(예를 들어, 저장 용량)를 갖는 메모리 스토리지(memory storage)를 제공하는 반면, 고정된 버퍼는 고정된 사이즈의 메모리 스토리지를 제공한다.)
개시된 청구 대상의 일부 실시예들에 따르면, 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법이 제공되고, 이 방법은: 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하는 단계; 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들을 비디오 콘텐츠 아이템의 대응하는 복수의 프레젠테이션 시간 포인트들에서 표시하는 예측된 포기 분포(predicted abandonment distribution)를 서버로부터 사용자 디바이스에서 수신하는 단계; 비디오 콘텐츠 아이템의 제1 부분을 서버로부터 사용자 디바이스에서 수신하는 단계; 비디오 콘텐츠 아이템의 제1 부분을, 제1 사이즈를 갖는 사용자 디바이스의 버퍼에 저장하는 단계; 비디오 콘텐츠 아이템이 사용자 디바이스에 의해 제시되게 하는 단계; 예측된 포기 분포에 기초하여 버퍼의 제2 사이즈를 결정하는 단계; 버퍼의 사이즈를 제2 사이즈로 수정하는 단계; 버퍼의 제2 사이즈에 기초하여 서버로부터 비디오 콘텐츠 아이템의 제2 부분을 요청하는 단계; 서버로부터 비디오 콘텐츠 아이템의 제2 부분을 수신하는 단계; 및 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서, 비디오 콘텐츠 아이템의 제2 부분을 제2 사이즈의 버퍼에 저장하는 단계를 포함한다. 전형적으로, 예측된 포기 분포가 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 개개의 가능성을 표시하는 프레젠테이션 시간 포인트들은, 콘텐츠 아이템의 시작 시간 포인트와 콘텐츠 아이템의 종료 시간 포인트 사이에 있는 적어도 하나의 시간 포인트를 포함하고, 콘텐츠 아이템의 시작 시간 포인트와 종료 시간 포인트 사이에 있는 다수의 상이한 시간 포인트들을 포함할 수도 있다. 부가적으로, 예측된 포기 분포가 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 개개의 가능성을 표시하는 프레젠테이션 시간 포인트들은, 비디오 콘텐츠 아이템의 종료 포인트를 포함할 수도 있다. 추가의 예로서, 예측된 포기 분포가 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 개개의 가능성을 표시하는 프레젠테이션 시간 포인트들은 포인트 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 사이즈의 버퍼에 저장하는 수단을 포함한다.
개시된 청구 대상의 다양한 목적들, 피처(feature)들, 및 이점들은, 동일한 참조 번호들이 동일한 요소들을 식별하는 다음의 도면들과 관련하여 고려될 때 개시된 청구 대상의 다음의 상세한 설명을 참조하여 더 충분히 인식될 수 있다.
도 1은 개시된 청구 대상의 일부 실시예들에 따른, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 프로세스의 예시적인 예를 도시한다.
도 2는 개시된 청구 대상의 일부 실시예들에 따른, 예측된 포기 분포를 생성하기 위한 프로세스의 예시적인 예를 도시한다.
도 3은 개시된 청구 대상의 일부 실시예들에 따른, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위해 본 명세서에서 설명되는 메커니즘들의 구현에 적합한 예시적인 시스템의 개략적 다이어그램을 도시한다.
도 4는 개시된 청구 대상의 일부 실시예들에 따른, 도 3의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 예를 도시한다.
도 1은 개시된 청구 대상의 일부 실시예들에 따른, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 프로세스의 예시적인 예를 도시한다.
도 2는 개시된 청구 대상의 일부 실시예들에 따른, 예측된 포기 분포를 생성하기 위한 프로세스의 예시적인 예를 도시한다.
도 3은 개시된 청구 대상의 일부 실시예들에 따른, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위해 본 명세서에서 설명되는 메커니즘들의 구현에 적합한 예시적인 시스템의 개략적 다이어그램을 도시한다.
도 4는 개시된 청구 대상의 일부 실시예들에 따른, 도 3의 서버 및/또는 사용자 디바이스에서 사용될 수 있는 하드웨어의 상세한 예를 도시한다.
다양한 실시예들에 따르면, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 메커니즘들(이들은 방법들, 시스템들, 및 매체들을 포함할 수 있다)이 제공된다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은, 미디어 콘텐츠를 뷰잉하는 사용자가 미디어 콘텐츠의 종료에 앞서 미디어 콘텐츠의 프레젠테이션을 중지할 가능성(이는 비디오 재생 포기라고 때때로 지칭된다)에 기초하여 스트리밍되고 있는 미디어 콘텐츠를 저장하는 데 사용되는 버퍼의 사이즈를 수정할 수 있다.
일부 실시예들에서, 미디어 콘텐츠 아이템을 사용자 디바이스로 스트리밍하는 서버가, 미디어 콘텐츠 아이템 내의 상이한 재생 시간 포인트들에서 사용자 디바이스의 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지할 가능성을 표시하는 예측된 포기 분포를 사용자 디바이스에 송신할 수 있다. 일부 실시예들에서, 사용자 디바이스는 예측된 포기 분포를 수신할 수 있고, 사용자 디바이스에 의한 미디어 콘텐츠 아이템의 부분들의 프레젠테이션에 앞서 서버로부터 수신되는 미디어 콘텐츠 아이템의 부분들을 저장하기 위해 사용자 디바이스에 의해 사용되는 버퍼의 사이즈를 수정할 수 있다. 일부 실시예들에서, 사용자 디바이스는 임의의 적합한 방식으로 버퍼의 사이즈를 수정할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스는 스트리밍된 미디어 콘텐츠 아이템의 부분들을 제1 사이즈의 버퍼에 초기에 저장할 수 있고, 사용자 디바이스의 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지할 가능성이 비교적 있음을 표시하는 예측된 포기 분포를 수신하는 것에 응답하여, 미디어 콘텐츠 아이템의 더 적은 것이 서버로부터 요청되고 사용자 디바이스에 의해 저장되도록 버퍼의 사이즈를 감소시킬 수 있다. 반대로, 사용자 디바이스의 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지할 가능성이 비교적 없음을 표시하는 예측된 포기 분포를 수신하는 것에 응답하여, 사용자 디바이스는 미디어 콘텐츠 아이템의 더 많은 것이 서버로부터 요청되고 사용자 디바이스에 의해 저장되도록 버퍼의 사이즈를 증가시킬 수 있다.
일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 임의의 적합한 방식으로 그리고 임의의 적합한 정보에 기초하여 예측된 포기 분포를 결정할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스들에게 미디어 콘텐츠를 스트리밍하는 서버가, 특정 미디어 콘텐츠 아이템에 대해, 미디어 콘텐츠 아이템의 상이한 프레젠테이션 시간 포인트들에서, 미디어 콘텐츠 아이템을 뷰잉하는 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지할 가능성들을 표시하는 예측된 포기 분포를 결정할 수 있다. 일부 실시예들에서, 특정 미디어 콘텐츠 아이템에 대한 예측된 포기 분포는, 미디어 콘텐츠 아이템과 연관된 임의의 적합한 정보, 예컨대 미디어 콘텐츠 아이템의 지속시간, 미디어 콘텐츠 아이템이 음악을 포함하는지 여부, 미디어 콘텐츠 아이템이 소셜 네트워킹 포스트 또는 웹사이트에(예를 들어, 미디어 콘텐츠 아이템들의 리스팅에) 인라인으로 삽입되는지 여부, 미디어 콘텐츠 아이템이 자동 재생되도록 구성되는지 여부, 미디어 콘텐츠 아이템과 연관된 오디오 콘텐츠가 디폴트로 음소거되는지 여부, 그리고/또는 임의의 다른 적합한 정보에 기초하여 결정될 수 있다. 일부 실시예들에서, 특정 미디어 콘텐츠 아이템에 대한 예측된 포기 분포는, 다른 사용자들에 의한 미디어 콘텐츠 아이템의 이전 뷰잉들, 예컨대 미디어 콘텐츠 아이템을 전부 시청한 사용자들의 퍼센티지, 미디어 콘텐츠 아이템의 프레젠테이션을 중지하기에 앞서 사용자들에 의해 뷰잉된 미디어 콘텐츠 아이템의 평균 지속기간, 그리고/또는 임의의 다른 적합한 이전 뷰잉 정보에 기초하여 결정될 수 있다.
본 명세서에서 설명되는 메커니즘들이 일반적으로 비디오 콘텐츠와 관련된 것으로서 설명되지만, 일부 실시예들에서, 본 명세서에서 설명되는 메커니즘들은 임의의 적합한 타입의 미디어 콘텐츠, 예컨대 오디오 콘텐츠(예를 들어, 음악, 팟캐스트들, 라이브-스트리밍된 오디오 콘텐츠, 및/또는 임의의 다른 적합한 타입의 오디오 콘텐츠), 비디오 콘텐츠(예를 들어, 비디오들, 텔레비전 쇼들, 영화들, 라이브-스트리밍된 비디오 콘텐츠, 게임들, 및/또는 임의의 다른 적합한 타입의 비디오 콘텐츠), 및/또는 임의의 다른 적합한 타입의 미디어 콘텐츠)를 스트리밍하는 것과 관련하여 사용될 수 있다는 것에 주목한다.
도 1을 참조하면, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 프로세스의 예시적인 예(100)가 개시된 청구 대상의 일부 실시예들에 따라 도시되어 있다. 일부 실시예들에서, 프로세스(100)의 블록들은 임의의 적합한 사용자 디바이스, 예컨대 모바일 폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 스마트 텔레비전, 미디어 플레이어, 디스플레이 디바이스에 연결된 스트리밍 미디어 디바이스, 게임 콘솔, 및/또는 임의의 다른 적합한 타입의 사용자 디바이스 상에서 실행될 수 있다.
프로세스(100)는 102에서 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하는 것으로 시작할 수 있다. 일부 실시예들에서, 비디오 콘텐츠 아이템은, 임의의 적합한 타입의 비디오 콘텐츠, 예컨대 사용자-생성된 비디오, 뮤직 비디오, 텔레비전 쇼, 영화, 라이브-스트리밍된 비디오, 및/또는 임의의 다른 적합한 타입의 비디오 콘텐츠에 대응할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 정보에 응답하여 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 송신할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 비디오 콘텐츠 아이템의 선택을 표시하는 사용자 입력을 사용자 디바이스에서 수신하는 것에 응답하여 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 송신할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(100)는 페이지(예를 들어, 브라우저 윈도우, 소셜 네트워킹 서비스의 피드(feed), 및/또는 임의의 다른 적합한 페이지)가 비디오 콘텐츠 아이템이 임베딩된 부분을 포함하도록 스크롤되었다는 결정에 응답하여 비디오 콘텐츠 아이템을 스트리밍하라는 요청을 송신할 수 있다. 일부 실시예들에서, 비디오 콘텐츠 아이템을 스트리밍하라는 요청은, 사용자 디바이스 상에서 실행되는 임의의 적합한 애플리케이션을 통해 사용자 디바이스로부터 송신될 수 있다는 것에 주목한다. 일부 그러한 실시예들에서, 애플리케이션은, 임의의 적합한 엔티티(entity) 또는 서비스, 예컨대 요청된 비디오 콘텐츠 아이템을 호스팅 및/또는 스트리밍하는 미디어 콘텐츠 공유 서비스, 소셜 네트워킹 서비스, 및/또는 임의의 다른 적합한 엔티티 또는 서비스와 연관될 수 있다.
일부 실시예들에서, 비디오 콘텐츠 아이템을 스트리밍하라는 요청은, 임의의 적합한 정보, 예컨대 비디오 콘텐츠 아이템의 식별자, 프로세스(100)를 실행하는 사용자 디바이스와 관련된 정보(예를 들어, 사용자 디바이스의 모델, 사용자 디바이스의 식별자, 사용자 디바이스의 디스플레이의 스크린 사이즈 또는 해상도, 사용자 디바이스의 그리고/또는 사용자 디바이스와 연관된 디스플레이의 현재 배향, 버퍼 용량 정보, 및/또는 임의의 다른 적합한 디바이스 정보), 사용자 디바이스의 네트워크 커넥션과 관련된 정보(예를 들어, 네트워크 커넥션의 현재 대역폭, 네트워크 커넥션의 현재 레이턴시(latency), 네트워크 커넥션과 연관된 현재 신호 강도, 및/또는 임의의 다른 적합한 네트워크 정보), 및/또는 임의의 다른 적합한 정보), 및/또는 임의의 다른 적합한 정보를 포함할 수 있다.
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에서의 간격들로, 그리고/또는 임의의 다른 적합한 간격들로) 확률들을 표시할 수 있다. 또 다른 예로서, 일부 실시예들에서, 예측된 포기 분포는 비디오 콘텐츠 아이템의 임의의 적합한 미리 결정된 시간 포인트들에서(예를 들어, 매 초마다, 매 10초마다, 매 분마다, 그리고/또는 임의의 다른 적합한 시간 포인트들에서) 확률들을 표시할 수 있다.
일부 실시예들에서, 예측된 포기 분포는 현재 시간 t 0 과 미래 시간 t 사이에서 사용자 디바이스의 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 확률을 사용자 디바이스가 계산하게 할 수 있는데, 예컨대:
일부 실시예들에서, 이 확률은 다음과 같이 표현될 수 있고:
여기서 F는 서버에 의해 계산된 포기 분포를 표시하고, 여기서 S는 적어도 시간 t0까지 사용자가 비디오 콘텐츠 아이템을 시청할 확률을 표시한다. 일부 실시예들에서, 이라는 것에 주목한다. 포기 분포 F를 계산하기 위한 더 상세한 기법들이 도 2의 202와 관련하여 아래에 설명된다.
일부 실시예들에서, 예측된 포기 분포는, 예컨대 도 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은 현재 시간을 표시한다 - 를 사용하여, 프로세스(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 부분을 요청할 수 있다는 것에 주목한다. 일부 실시예들에서, 시간 딜레이는 예측된 포기 분포에 기초하여 결정될 수 있다. 예를 들어, 다음의 것의 상기에 주어진 t와 t 0 사이에서 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 예시적인 예측된 확률이 주어지면:
확률은 다음과 같이 표현될 수 있다:
일부 실시예들에서, x는, 포기 확률이 임계치 P로 드롭되기 전에, 프로세스(100)를 실행하는 사용자 디바이스가 도달해야 하는 미디어 위치를 표현할 수 있다. 일부 실시예들에서, 포기 분포는 다음과 같이 표현될 수 있다:
일부 실시예들에서:
일부 실시예들에서, 시간은 다음과 같이 계산될 수 있고:
시간 딜레이는 다음과 같이 계산될 수 있다:
118에서, 프로세스(100)는 요청에 응답하여 서버로부터 비디오 콘텐츠 아이템의 제2 부분을 수신할 수 있다. 일부 실시예들에서, 비디오 콘텐츠 아이템의 제2 부분은 임의의 적합한 사이즈 또는 지속기간으로 될 수 있다. 일부 실시예들에서, 비디오 콘텐츠 아이템의 제2 부분은, 106과 관련하여 상술된 바와 같은 비디오 콘텐츠 아이템의 제1 부분의 사이즈 또는 지속기간과는 상이한 사이즈 또는 지속기간을 가질 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 비디오 콘텐츠 아이템의 제2 부분은, 업데이트된 버퍼 사이즈에 대응하는 사이즈 또는 지속기간을 가질 수 있다. 더 구체적인 예로서, 일부 실시예들에서, 프로세스(100)가 버퍼의 제1 사이즈보다 상대적으로 더 작은 버퍼 사이즈를 갖도록 (예를 들어, 114와 관련하여 상술된 바와 같이) 버퍼 사이즈를 수정한 경우에, 비디오 콘텐츠 아이템의 제2 부분은, 비디오 콘텐츠 아이템의 제1 부분보다 더 작은 사이즈 또는 더 짧은 지속기간을 가질 수 있다. 다른 더 구체적인 예로서, 일부 실시예들에서, 프로세스(100)가 버퍼의 제1 사이즈보다 상대적으로 더 큰 버퍼 사이즈를 갖도록 (예를 들어, 114와 관련하여 상술된 바와 같이) 버퍼 사이즈를 수정한 경우에, 비디오 콘텐츠 아이템의 제2 부분은, 비디오 콘텐츠 아이템의 제1 부분보다 더 큰 사이즈 또는 더 긴 지속기간을 가질 수 있다.
120에서, 프로세스(100)는 비디오 콘텐츠 아이템을 계속 제시하면서 비디오 콘텐츠 아이템의 제2 부분을 버퍼에 저장할 수 있다. 일부 실시예들에서, 프로세스(100)는 임의의 적합한 방식으로 비디오 콘텐츠 아이템을 계속 제시할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(100)는 버퍼로부터 비디오 콘텐츠 아이템의 부분들을 검색하는 것 그리고, 예컨대 106과 관련하여 상술된, 비디오 콘텐츠 아이템의 검색된 부분들을 비디오 플레이어 윈도우에 제시하는 것을 계속할 수 있다.
일부 실시예들에서, 프로세스(100)는 112로 다시 루핑(loop)될 수 있고, 예측된 포기 분포에 기초하여 업데이트된 버퍼 사이즈를 결정할 수 있으며(즉, 사용자 디바이스의 버퍼에 대한 제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에서의 간격들로, 그리고/또는 임의의 다른 적합한 간격들로) 확률들을 표시할 수 있다. 다른 예로서, 일부 실시예들에서, 예측된 포기 분포는 비디오 콘텐츠 아이템의 임의의 적합한 미리 결정된 시간 포인트들에서(예를 들어, 매 초마다, 매 10초마다, 매 분마다, 그리고/또는 임의의 다른 적합한 시간 포인트들에서) 확률들을 표시할 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 그리고 임의의 적합한 기법(들)을 사용하여 예측된 포기 분포를 계산할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는, 분포에 따른 상이한 포인트들에서, 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 가능성 또는 확률을 표시하는 임의의 적합한 분포를 모델링할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 그룹의 사용자들에 의해 이전에 뷰잉된 비디오 콘텐츠 아이템들과 관련된 데이터를 사용하여 모델을 생성할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 사이즈(예를 들어, 수천 개의 이전에 뷰잉된 비디오 콘텐츠 아이템들, 수백만 개의 이전에 뷰잉된 비디오 콘텐츠 아이템들, 및/또는 임의의 다른 적합한 사이즈)의 데이터세트를 사용하여 모델을 생성할 수 있다는 것에 주목한다. 부가적으로, 일부 실시예들에서, 프로세스(200)는, 모델을 생성하기에 앞서, 임의의 적합한 방식으로 모델을 생성하는 데 사용되는 데이터를 프리프로세싱(pre-process)할 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 프로세스(200)는, 임의의 적합한 이상치(outlier)들, 예컨대 제로 시간의 지속기간 동안 시청된 비디오 콘텐츠 아이템들(비디오 콘텐츠 아이템이 우연히 선택되었음을 표시함), 및/또는 임의의 다른 적합한 이상치들을 폐기할 수 있다. 일부 실시예들에서, 비디오 콘텐츠 아이템의 지속기간은 범위의 분포가 [0, 1]에 걸쳐 있도록 정규화될 수 있다. 일부 실시예들에서, 임의의 적합한 분포, 예컨대 Kumaraswamy 분포, 베타 분포(Beta distribution), 로짓-변환된 분포(logit-transformed distribution), 및/또는 임의의 다른 적합한 분포가 사용될 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 기법 또는 기법들의 조합을 사용하여 분포를 모델링할 수 있다. 예를 들어, 일부 실시예들에서, 분포는 회귀들의 1-팽창된 혼합(one-inflated mixture)으로서 모델링될 수 있다. 더 구체적인 예로서, 일부 실시예들에서, 분포는, 사용자가 비디오 콘텐츠 아이템 전체를 시청할 가능성을 모델링하는 제1 회귀, 및 상이한 시간 포인트들에서 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 가능성을 모델링하는 제2 회귀와 같은 2개 이상의 회귀들의 혼합 또는 조합으로서 모델링될 수 있다. 일부 실시예들에서, 회귀들의 혼합에 포함된 각각의 회귀는 상이한 타입의 회귀(예를 들어, Kumaraswamy 회귀, 베타 회귀, 로지스틱 회귀, 및/또는 임의의 다른 적합한 타입의 회귀)일 수 있다. 예를 들어, 일부 실시예들에서, 사용자가 비디오 콘텐츠 아이템 전체를 시청할 가능성을 모델링하는 제1 회귀는 로지스틱 회귀일 수 있고, 상이한 시간 포인트들에서 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 가능성을 모델링하는 제2 회귀는 Kumaraswamy 회귀일 수 있다. 일부 실시예들에서, 사용자가 비디오 콘텐츠 아이템 전체를 시청할 가능성을 모델링하는 제1 회귀는 임의의 적합한 타입의 분류자, 예컨대 그래디언트 부스트 트리 분류자(gradient boosted trees classifier), 및/또는 임의의 다른 적합한 타입의 분류자일 수 있다는 것에 주목한다. 부가적으로, 일부 실시예들에서, 회귀들의 혼합에서의 각각의 회귀는, 임의의 적합한 컴포넌트들 또는 예측자들에 대응하는 임의의 적합한 수의 항들을 가질 수 있고, 임의의 적합한 수의 교차 항들을 가질 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 회귀들의 혼합의 제1 회귀와 제2 회귀 양측 모두는 동일한 예측자들 및 동일한 교차 항들을 포함할 수 있다. 다른 예로서, 일부 실시예들에서, 제2 회귀는, 임의의 적합한 2차 항(quadratic term)들을 포함하는 Kumaraswamy 회귀일 수 있다.
일부 실시예들에서, 프로세스(200)가 제1 회귀가 사용자가 비디오 콘텐츠 아이템 전체를 시청하는 가능성을 모델링하는 회귀들의 혼합을 생성하는 경우들에서, 프로세스(200)는, 트레이닝 세트의 데이터의 생성 동안, 트레이닝 세트에 포함된 비디오 콘텐츠 아이템들이 임의의 적합한 방식으로 그 전체가 시청되었는지 여부를 결정할 수 있다는 것에 주목한다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 (예를 들어, 각각의 비디오 콘텐츠 아이템의 재생과 연관된 로그 데이터를 사용하여) 비디오 콘텐츠 아이템의 프레젠테이션을 위해 사용된 비디오 플레이어의 상태가, 전체가 비디오 플레이된 것에 의해 비디오 콘텐츠 아이템이 제시되었음을 표시하는 임의의 적합한 방식으로 변경되었는지 여부를 결정할 수 있다.
부가적으로, 일부 실시예들에서, 상술된 것과 같은 회귀들의 혼합을 생성하기보다는 오히려, 일부 실시예들에서, 프로세스(200)는 데이터에 제로 또는 1 값들이 포함되지 않도록, 데이터 포인트들을 0.5와 같은 임의의 적합한 중간 값으로 축소하기 위해 모델을 생성하는 데 사용된 데이터를 프로세싱할 수 있다는 것에 주목한다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 축소 함수를 사용하여 데이터 포인트들을 축소하도록 데이터 포인트들을 변환할 수 있다.
일부 실시예들에서, 각각의 회귀는, 회귀를 생성하는 데 사용되는 예측자들의 상이한 세트에 기초할 수 있다. 일부 실시예들에서, 예측자들의 세트는 임의의 적합한 인자들 또는 변수들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 예측자들의 세트는, 비디오 콘텐츠 아이템의 특성들, 예컨대 비디오 콘텐츠 아이템의 지속시간, 비디오 콘텐츠 아이템의 지속기간의 대수(logarithm), 비디오 콘텐츠 아이템이 배경 음악을 포함하는지 여부, 비디오 콘텐츠 아이템이 광고인지 여부, 비디오 콘텐츠 아이템이 스킵가능한 광고인지 여부, 그리고/또는 비디오 콘텐츠 아이템의 임의의 다른 적합한 특성들을 포함할 수 있다. 다른 예로서, 일부 실시예들에서, 예측자들의 세트는, 비디오 콘텐츠 아이템이 다른 콘텐츠 내에(예를 들어, 웹페이지 내에, 소셜 네트워킹 포스트 내에, 메시지 내에, 그리고/또는 임의의 다른 적합한 타입의 콘텐츠에) 링크 또는 임베딩되는 방식과 관련된 특성들, 예컨대 비디오 콘텐츠 아이템이 링크 또는 임베딩되는 인터페이스의 타입(예를 들어, 비디오 콘텐츠 아이템이 웹사이트 또는 소셜 네트워킹 포스트에 인라인으로 임베딩되는지 여부), 비디오 콘텐츠 아이템이 디폴트로 자동 재생으로 설정되었는지 여부, 비디오 콘텐츠 아이템이 디폴트로 음소거로 설정되었는지 여부, 비디오 콘텐츠 아이템이 인라인으로 임베딩되었을 때 오디오 콘텐츠가 음소거되도록 설정되었는지 여부, 그리고/또는 임의의 적합한 특성들을 포함할 수 있다. 또 다른 예로서, 일부 실시예들에서, 예측자들의 세트는, 비디오 콘텐츠 아이템의 버퍼링을 표시하는 정보, 예컨대 비디오 콘텐츠 아이템이 재버퍼링하기 위해 일시중지되는 경우 사용자가 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 가능성, 비디오 콘텐츠 아이템을 재버퍼링하기 위해 요구되는 예측된 지속기간의 시간, 비디오 콘텐츠 아이템이 재버퍼링될 예측된 횟수, 및/또는 임의의 다른 적합한 버퍼링 정보를 포함할 수 있다. 또 다른 예로서, 일부 실시예들에서, 예측자들의 세트는, 비디오 콘텐츠 아이템이 다른 사용자들에 의해 이전에 뷰잉된 방식과 관련된 정보, 예컨대 이전 사용자들이 비디오 콘텐츠 아이템을 뷰잉한 평균 지속기간, 비디오 콘텐츠 아이템을 완전히 뷰잉한 사용자들의 비율, 특정 프레젠테이션 시간 포인트에 앞서(예를 들어, 비디오 콘텐츠 아이템의 중간 포인트에 앞서, 특정 프레젠테이션 타임스탬프에 앞서, 그리고/또는 임의의 다른 적합한 시간 포인트에 앞서) 비디오 콘텐츠 아이템의 프레젠테이션을 중지한 사용자들의 비율, 및/또는 임의의 다른 적합한 이전 뷰잉 정보를 포함할 수 있다. 추가의 예로서, 일부 실시예들에서, 예측자들의 세트는, 비디오 콘텐츠 아이템이 현재 뷰잉되고 있거나 또는 이전에 뷰잉된 방식과 관련된 탐색 정보를 포함할 수 있고, 여기서 비디오의 재생 동안의 탐색 명령어는 재생 포기로 간주될 수 있다.
일부 실시예들에서, 프로세스(200)는 임의의 적합한 기법 또는 기법들의 조합을 사용하여 회귀들의 혼합에 회귀들을 맞출 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 각각의 회귀와 연관된 각각의 예측자에 대한 계수들을 생성하기 위해 기대치-최대화(expectation-maximization)를 사용할 수 있다. 더 구체적인 예로서, 일부 실시예들에서, 회귀들의 혼합에 사용되는 Kumaraswamy 회귀는: log(a)=P*X 그리고 log(b)=Q*X와 같은 관계를 통해 (상술된 것과 같은) 임의의 적합한 예측 변수들에 좌우되는 분포 파라미터들을 가질 수 있고, 여기서 P 및 Q는 계수 행렬들이고, X는 공변량 벡터(covariate vector)이다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 기법 또는 기법들의 조합(예를 들어, 뉴턴-랩슨법(Newton-Raphson method), 및/또는 임의의 다른 적합한 기법(들))을 사용하여 최대 우도 추정(maximum likelihood estimation)을 사용하여 모델 파라미터들(예를 들어, 계수 행렬들 P 및 Q)을 추정할 수 있다. 다른 예로서, 일부 실시예들에서, 사용자가 비디오 콘텐츠 아이템 전체를 시청할 가능성을 표시하는 제1 회귀를 모델링하기 위해 로지스틱 회귀가 사용되는 경우에, 로지스틱 회귀의 임의의 적합한 예측자들과 연관된 계수들은 임의의 적합한 기법 또는 기법들의 조합을 사용하여 계산될 수 있다.
204에서, 프로세스(200)는 사용자 디바이스로부터 비디오 콘텐츠 아이템의 일 부분에 대한 요청을 수신할 수 있다. 일부 실시예들에서, 프로세스(200)는 임의의 적합한 방식으로 비디오 콘텐츠 아이템의 부분에 대한 요청을 수신할 수 있다. 예를 들어, 일부 실시예들에서, 프로세스(200)는 사용자 디바이스의 사용자가 사용자 디바이스 상의 프레젠테이션을 위해 특정 비디오 콘텐츠 아이템을 선택하였다는 표시를 수신할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(200)는, 비디오 콘텐츠 아이템이 임베딩된 페이지가 비디오 콘텐츠 아이템이 가시적이도록 내비게이팅되었다는 표시를 수신할 수 있다.
일부 실시예들에서, 프로세스(200)는, 사용자 디바이스로부터, 사용자 디바이스와 관련된 임의의 적합한 정보(예를 들어, 사용자 디바이스의 모델, 사용자 디바이스의 식별자, 사용자 디바이스와 연관된 디스플레이의 스크린 사이즈 또는 해상도, 사용자 디바이스와 연관된 디스플레이 및/또는 사용자 디바이스의 현재 배향, 및/또는 임의의 다른 적합한 정보) 및/또는 스트리밍된 미디어 콘텐츠를 수신하는 데 사용되는 통신 네트워크에 대한 사용자 디바이스의 커넥션과 관련된 임의의 적합한 정보(예를 들어, 커넥션의 현재 대역폭, 커넥션의 현재 레이턴시, 커넥션의 현재 신호 강도, 커넥션의 타입의 식별자, 및/또는 임의의 다른 적합한 정보)를 수신할 수 있다는 것에 주목한다.
206에서, 프로세스(200)는 요청된 비디오 콘텐츠 아이템에 대응하는 예측된 포기 분포를 사용자 디바이스에 송신할 수 있다. 일부 실시예들에서, 프로세스(200)는 예측된 포기 분포를 임의의 적합한 방식으로 송신할 수 있다. 예를 들어, 예측된 포기 분포가 연속 분포인 경우에, 프로세스(200)는 연속 분포의 파라미터들을 사용자 디바이스에 송신할 수 있다. 다른 예로서, 일부 실시예들에서, 프로세스(200)는 예측된 포기 분포를 어레이로서 포맷팅(format)할 수 있고, 여기서 어레이의 제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), 및/또는 하나 이상의 사용자 디바이스들(306), 예컨대 사용자 디바이스들(308 및 310)을 포함할 수 있다.
서버(302)는, 정보, 데이터, 프로그램들, 미디어 콘텐츠, 및/또는 임의의 다른 적합한 콘텐츠를 저장하기 위한 임의의 적합한 서버(들)일 수 있다. 일부 실시예들에서, 서버(302)는 임의의 적합한 기능(들)을 수행할 수 있다. 예를 들어, 일부 실시예들에서, 서버(302)는 미디어 콘텐츠(예를 들어, 비디오 콘텐츠, 오디오 콘텐츠, 및/또는 임의의 다른 적합한 오디오 콘텐츠)를 사용자 디바이스들(306) 중 하나와 같은 사용자 디바이스에 송신할 수 있다. 더 구체적인 예로서, 일부 실시예들에서, 서버(302)는 미디어 콘텐츠에 대한 요청에 응답하여 미디어 콘텐츠를 사용자 디바이스로 스트리밍할 수 있다. 다른 예로서, 일부 실시예들에서, 서버(302)는, 도 2에 도시되고 이와 관련하여 상술된 것과 같은, 미디어 콘텐츠 아이템의 상이한 프레젠테이션 시간 포인트들에서, 서버(302)로부터 미디어 콘텐츠 아이템을 스트리밍하는 사용자 디바이스의 사용자가 미디어 콘텐츠 아이템의 프레젠테이션을 중지할 가능성들을 표시하는 예측된 포기 분포를 결정할 수 있다.
통신 네트워크(304)는 일부 실시예들에서 하나 이상의 유선 및/또는 무선 네트워크들의 임의의 적합한 조합일 수 있다. 예를 들어, 통신 네트워크(304)는 인터넷, 인트라넷, 광역 네트워크(wide-area network)(WAN), 근거리 네트워크(local-area network)(LAN), 무선 네트워크, 디지털 가입자 라인(digital subscriber line)(DSL) 네트워크, 프레임 릴레이 네트워크, 비동기 송신 모드(asynchronous transfer mode)(ATM) 네트워크, 가상 사설 네트워크(virtual private network)(VPN), 및/또는 임의의 다른 적합한 통신 네트워크 중 임의의 하나 이상을 포함할 수 있다. 사용자 디바이스들(306)은, 하나 이상의 통신 링크들(예를 들어, 통신 링크들(314))을 통해 서버(302)에 링크될 수 있는 통신 네트워크(304)에 하나 이상의 통신 링크들(예를 들어, 통신 링크들(312))에 의해 연결될 수 있다. 통신 링크들은, 네트워크 링크들, 다이얼-업 링크(dial-up link)들, 무선 링크들, 하드-와이어드 링크(hard-wired link)들, 임의의 다른 적합한 통신 링크들, 또는 그러한 링크들의 임의의 적합한 조합과 같은, 사용자 디바이스들(306)과 서버(302) 간에서 데이터를 통신하기에 적합한 임의의 통신 링크들일 수 있다.
사용자 디바이스들(306)은, 서버(302)로부터 미디어 콘텐츠를 스트리밍하기에 적합한 임의의 하나 이상의 사용자 디바이스들을 포함할 수 있다. 일부 실시예들에서, 사용자 디바이스(306)는 임의의 적합한 타입의 사용자 디바이스, 예컨대 모바일 폰들, 태블릿 컴퓨터들, 웨어러블 컴퓨터들, 랩톱 컴퓨터들, 데스크톱 컴퓨터들, 스마트 텔레비전들, 미디어 플레이어들, 게임 콘솔들, 차량 정보 및/또는 엔터테인먼트 시스템들, 및/또는 임의의 다른 적합한 타입의 사용자 디바이스를 포함할 수 있다. 일부 실시예들에서, 사용자 디바이스(306)는 미디어 콘텐츠의 스트리밍 동안 서버(302)로부터 수신된 미디어 콘텐츠를 저장하는 데 사용되는 버퍼의 사이즈를 적응적으로 수정할 수 있다. 예를 들어, 일부 실시예들에서, 사용자 디바이스들(306)은, 사용자 디바이스(306)가, 도 1에 도시되고 이와 관련하여 상술된 것과 같은, 미디어 콘텐츠 아이템을 계속 제시할 가능성을 표시하는 서버(302)로부터 수신된 예측된 포기 분포에 기초하여 버퍼의 사이즈를 수정할 수 있다.
서버(302)가 하나의 디바이스로서 예시되어 있지만, 서버(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)는, 일부 실시예들에서 하나 이상의 입력 디바이스들(408)로부터의 입력을 제어 및 수신하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 입력 디바이스 컨트롤러(406)는, 터치스크린으로부터, 키보드로부터, 하나 이상의 버튼들로부터, 음성 인식 회로로부터, 마이크로폰으로부터, 카메라로부터, 광학 센서로부터, 가속도계로부터, 온도 센서로부터, 근접장 센서로부터, 압력 센서로부터, 인코더로부터, 그리고/또는 임의의 다른 타입의 입력 디바이스로부터 입력을 수신하기 위한 회로부일 수 있다.
디스플레이/오디오 드라이버들(410)은, 일부 실시예들에서 하나 이상의 디스플레이/오디오 출력 디바이스들(412)로의 출력을 제어 및 구동하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 디스플레이/오디오 드라이버들(410)은, 터치스크린, 플랫-패널 디스플레이, 음극선관 디스플레이, 프로젝터, 스피커 또는 스피커들, 및/또는 임의의 다른 적합한 디스플레이 및/또는 프레젠테이션 디바이스들을 구동하기 위한 회로부일 수 있다.
통신 인터페이스(들)(414)는, 하나 이상의 통신 네트워크들(예를 들어, 컴퓨터 네트워크(304))과 인터페이싱하기 위한 임의의 적합한 회로부일 수 있다. 예를 들어, 인터페이스(들)(414)는 네트워크 인터페이스 카드 회로부, 무선 통신 회로부, 및/또는 임의의 다른 적합한 타입의 통신 네트워크 회로부를 포함할 수 있다.
안테나(416)는, 일부 실시예들에서 통신 네트워크(예를 들어, 통신 네트워크(304))와 무선 통신하기 위한 임의의 적합한 하나 이상의 안테나들일 수 있다. 일부 실시예들에서, 안테나(416)는 생략될 수 있다.
버스(418)는, 일부 실시예들에서 2개 이상의 컴포넌트들(402, 404, 406, 410, 및 414) 사이에서 통신하기 위한 임의의 적합한 메커니즘일 수 있다.
임의의 다른 적합한 컴포넌트들이 일부 실시예들에 따라 하드웨어(400)에 포함될 수 있다.
일부 실시예들에서, 도 1 및 도 2의 프로세스들의 상술된 블록들 중 적어도 일부는, 도면들에 도시되고 이들과 관련하여 설명되는 순서 및 시퀀스로 제한되지 않는 임의의 순서 또는 시퀀스로 실행 또는 수행될 수 있다. 또한, 도 1 및 도 2의 상기의 블록들 중 일부는 레이턴시 및 프로세싱 시간들을 감소시키기 위해 병렬로 또는 적절하다면 실질적으로 동시에 실행 또는 수행될 수 있다. 부가적으로 또는 대안적으로, 도 1 및 도 2의 프로세스들의 상술된 블록들 중 일부는 생략될 수 있다.
일부 실시예들에서, 본 명세서의 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하기 위해 임의의 적합한 컴퓨터 판독가능 매체들이 사용될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨터 판독가능 매체들은 일시적 또는 비일시적일 수 있다. 예를 들어, 비일시적 컴퓨터 판독가능 매체들은, 비일시적 형태들의 자기 매체들(예컨대, 하드 디스크들, 플로피 디스크들, 및/또는 임의의 다른 적합한 자기 매체들), 비일시적 형태들의 광학 매체들(예컨대, 콤팩트 디스크들, 디지털 비디오 디스크들, 블루레이 디스크들, 및/또는 임의의 다른 적합한 광학 매체들), 비일시적 형태들의 반도체 매체들(예컨대, 플래시 메모리, 전기적으로 프로그래밍가능한 판독 전용 메모리(electrically programmable read-only memory)(EPROM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(electrically erasable programmable read-only memory)(EEPROM), 및/또는 임의의 다른 적합한 반도체 매체들), 송신 동안 영속성과의 어떠한 유사성이 전혀 없지 않거나 또는 순간적이지 않은 임의의 적합한 매체들, 및/또는 임의의 적합한 유형(tangible) 매체들과 같은 매체들을 포함할 수 있다. 다른 예로서, 일시적 컴퓨터 판독가능 매체들은, 네트워크들 상의, 배선들, 컨덕터들, 광섬유들, 회로들 내의 신호들, 송신 동안 영속성과의 어떠한 유사성이 전혀 없고 순간적인 임의의 적합한 매체들, 및/또는 임의의 적합한 무형 매체들을 포함할 수 있다.
이에 따라, 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들이 제공된다.
본 발명은 전술한 예시적인 실시예들에서 설명 및 예시되었지만, 본 개시내용은 단지 예로서 이루어졌고, 본 발명의 구현의 세부사항들의 수많은 변경들이, 후속하는 청구범위에 의해서만 제한되는, 본 발명의 사상 및 범주로부터 벗어남이 없이 이루어질 수 있다는 것이 이해된다. 개시된 실시예들의 피처들은 다양한 방식들로 조합 및 재배열될 수 있다.
Claims (21)
- 버퍼를 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법으로서,
비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하는 단계;
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션(presentation)을 중지할 복수의 가능성들을 상기 비디오 콘텐츠 아이템의 대응하는 복수의 프레젠테이션 시간 포인트들에서 표시하는 예측된 포기 분포(predicted abandonment distribution)를 상기 서버로부터 상기 사용자 디바이스에서 수신하는 단계;
상기 비디오 콘텐츠 아이템의 제1 부분을 상기 서버로부터 상기 사용자 디바이스에서 수신하는 단계;
상기 비디오 콘텐츠 아이템의 제1 부분을, 제1 사이즈를 갖는 상기 사용자 디바이스의 버퍼에 저장하는 단계;
상기 비디오 콘텐츠 아이템이 상기 사용자 디바이스에 의해 제시되게 하는 단계;
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 단계;
상기 버퍼의 사이즈를 상기 제2 사이즈로 수정하는 단계;
상기 버퍼의 제2 사이즈에 기초하여 상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 요청하는 단계;
상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 수신하는 단계; 및
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서, 상기 비디오 콘텐츠 아이템의 제2 부분을, 상기 제2 사이즈를 갖는 버퍼에 저장하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 단계는:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치 미만이라고 결정하는 단계; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치 미만이라는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 커져야 한다고 결정하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 단계는:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치를 초과한다고 결정하는 단계; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치를 초과한다는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 작아져야 한다고 결정하는 단계
를 포함하는, 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제3 사이즈를 결정하는 단계; 및
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서 상기 버퍼의 사이즈를 상기 제3 사이즈로 수정하는 단계
를 더 포함하는, 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간으로 정규화되는, 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간에 기초하여 계산되는, 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 특성들에 기초하여 계산되는, 방법. - 버퍼를 사용하여 비디오 콘텐츠를 스트리밍하기 위한 시스템으로서,
상기 시스템은:
하드웨어 프로세서
를 포함하고,
상기 하드웨어 프로세서는:
비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하고;
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들을 상기 비디오 콘텐츠 아이템의 대응하는 복수의 프레젠테이션 시간 포인트들에서 표시하는 예측된 포기 분포를 상기 서버로부터 상기 사용자 디바이스에서 수신하고;
상기 비디오 콘텐츠 아이템의 제1 부분을 상기 서버로부터 상기 사용자 디바이스에서 수신하고;
상기 비디오 콘텐츠 아이템의 제1 부분을, 제1 사이즈를 갖는 상기 사용자 디바이스의 버퍼에 저장하고;
상기 비디오 콘텐츠 아이템이 상기 사용자 디바이스에 의해 제시되게 하고;
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하고;
상기 버퍼의 사이즈를 상기 제2 사이즈로 수정하고;
상기 버퍼의 제2 사이즈에 기초하여 상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 요청하고;
상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 수신하고;
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서, 상기 비디오 콘텐츠 아이템의 제2 부분을 상기 제2 사이즈의 버퍼에 저장하도록
구성되는, 시스템. - 제8항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 것은:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치 미만이라고 결정하는 것; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치 미만이라는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 커져야 한다고 결정하는 것
을 포함하는, 시스템. - 제8항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 것은:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치를 초과한다고 결정하는 것; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치를 초과한다는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 작아져야 한다고 결정하는 것
을 포함하는, 시스템. - 제8항 내지 제10항 중 어느 한 항에 있어서,
상기 하드웨어 프로세서는:
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제3 사이즈를 결정하고;
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서 상기 버퍼의 사이즈를 상기 제3 사이즈로 수정하도록
추가로 구성되는, 시스템. - 제8항 내지 제11항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간으로 정규화되는, 시스템. - 제8항 내지 제12항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간에 기초하여 계산되는, 시스템. - 제8항 내지 제13항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 특성들에 기초하여 계산되는, 시스템. - 컴퓨터 실행가능 명령어들을 포함하는 컴퓨터 판독가능 매체로서,
상기 컴퓨터 실행가능 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 버퍼를 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법을 수행하게 하고,
상기 방법은:
비디오 콘텐츠 아이템을 스트리밍하라는 요청을 사용자 디바이스로부터 서버로 송신하는 단계;
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들을 상기 비디오 콘텐츠 아이템의 대응하는 복수의 프레젠테이션 시간 포인트들에서 표시하는 예측된 포기 분포를 상기 서버로부터 상기 사용자 디바이스에서 수신하는 단계;
상기 비디오 콘텐츠 아이템의 제1 부분을 상기 서버로부터 상기 사용자 디바이스에서 수신하는 단계;
상기 비디오 콘텐츠 아이템의 제1 부분을, 제1 사이즈를 갖는 상기 사용자 디바이스의 버퍼에 저장하는 단계;
상기 비디오 콘텐츠 아이템이 상기 사용자 디바이스에 의해 제시되게 하는 단계;
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 단계;
상기 버퍼의 사이즈를 상기 제2 사이즈로 수정하는 단계;
상기 버퍼의 제2 사이즈에 기초하여 상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 요청하는 단계;
상기 서버로부터 상기 비디오 콘텐츠 아이템의 제2 부분을 수신하는 단계; 및
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서, 상기 비디오 콘텐츠 아이템의 제2 부분을, 상기 제2 사이즈를 갖는 버퍼에 저장하는 단계
를 포함하는, 컴퓨터 판독가능 매체. - 제15항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제2 사이즈를 결정하는 단계는:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치 미만이라고 결정하는 단계; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치 미만이라는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 커져야 한다고 결정하는 단계
를 포함하는, 컴퓨터 판독가능 매체. - 제15항에 있어서,
상기 예측된 포기 분포에 기초하여 상기 버퍼의 제2 사이즈를 결정하는 단계는:
상기 사용자 디바이스의 사용자가 상기 비디오 콘텐츠 아이템의 프레젠테이션을 중지할 복수의 가능성들 중의 가능성이 미리 결정된 임계치를 초과한다고 결정하는 단계; 및
상기 복수의 가능성들 중의 가능성이 상기 미리 결정된 임계치를 초과한다는 결정에 응답하여, 상기 버퍼에 대한 제2 사이즈가 상기 제1 사이즈보다 더 작아져야 한다고 결정하는 단계
를 포함하는, 컴퓨터 판독가능 매체. - 제15항 내지 제17항 중 어느 한 항에 있어서,
상기 방법은:
상기 예측된 포기 분포에 기초하여 상기 버퍼에 대한 제3 사이즈를 결정하는 단계; 및
상기 비디오 콘텐츠 아이템의 프레젠테이션을 계속하면서 상기 버퍼의 사이즈를 상기 제3 사이즈로 수정하는 단계
를 더 포함하는, 컴퓨터 판독가능 매체. - 제15항 내지 제18항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간으로 정규화되는, 컴퓨터 판독가능 매체. - 제15항 내지 제19항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 지속기간에 기초하여 계산되는, 컴퓨터 판독가능 매체. - 제15항 내지 제20항 중 어느 한 항에 있어서,
상기 예측된 포기 분포는 상기 비디오 콘텐츠 아이템의 특성들에 기초하여 계산되는, 컴퓨터 판독가능 매체.
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 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220075434A true KR20220075434A (ko) | 2022-06-08 |
Family
ID=69724118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227016144A KR20220075434A (ko) | 2019-10-14 | 2020-01-24 | 적응 버퍼들을 사용하여 비디오 콘텐츠를 스트리밍하기 위한 방법들, 시스템들, 및 매체들 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11546675B2 (ko) |
EP (2) | EP4373105A3 (ko) |
JP (2) | JP7318123B2 (ko) |
KR (1) | KR20220075434A (ko) |
CN (1) | CN114586371A (ko) |
WO (1) | WO2021076173A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220400309A1 (en) * | 2019-11-11 | 2022-12-15 | Nippon Telegraph And Telephone Corporation | Engagement estimation apparatus, engagement estimation method and program |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4048483B2 (ja) * | 2000-10-13 | 2008-02-20 | ソニー株式会社 | データ通信速度制御システム、送信装置及び受信装置 |
FI118830B (fi) * | 2001-02-08 | 2008-03-31 | Nokia Corp | Tietovirran toisto |
US7802006B2 (en) * | 2007-06-13 | 2010-09-21 | 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 | コンテンツ受信機及びコンテンツ受信機における受信パケットデータの処理方法 |
EP2587824A1 (en) * | 2011-10-27 | 2013-05-01 | Thomson Licensing | Method and apparatus to manage the operation of an adaptive streaming client |
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 |
US11197063B2 (en) * | 2016-11-11 | 2021-12-07 | Google Llc | Methods, systems, and media for modifying the presentation of video content on a user device based on a consumption of the user device |
GB2564714A (en) * | 2017-07-21 | 2019-01-23 | Falcon Media House | A method, device and system for streaming media data |
US11190839B2 (en) * | 2017-09-22 | 2021-11-30 | Ntt Docomo, Inc. | Communication quality adjusting system |
US10694221B2 (en) * | 2018-03-06 | 2020-06-23 | At&T Intellectual Property I, L.P. | Method for intelligent buffering for over the top (OTT) video delivery |
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 |
-
2020
- 2020-01-24 JP JP2022522357A patent/JP7318123B2/ja active Active
- 2020-01-24 CN CN202080071492.7A patent/CN114586371A/zh active Pending
- 2020-01-24 EP EP24161535.0A patent/EP4373105A3/en active Pending
- 2020-01-24 KR KR1020227016144A patent/KR20220075434A/ko active IP Right Grant
- 2020-01-24 EP EP20707949.2A patent/EP4038892B1/en active Active
- 2020-01-24 WO PCT/US2020/015000 patent/WO2021076173A1/en unknown
- 2020-10-14 US US17/070,144 patent/US11546675B2/en active Active
-
2022
- 2022-12-29 US US18/090,897 patent/US12015834B2/en active Active
-
2023
- 2023-07-19 JP JP2023117721A patent/JP7559156B2/ja active Active
-
2024
- 2024-06-17 US US18/746,014 patent/US20240340507A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7559156B2 (ja) | 2024-10-01 |
WO2021076173A1 (en) | 2021-04-22 |
US12015834B2 (en) | 2024-06-18 |
JP2023145562A (ja) | 2023-10-11 |
JP2022552330A (ja) | 2022-12-15 |
US20230138238A1 (en) | 2023-05-04 |
JP7318123B2 (ja) | 2023-07-31 |
EP4038892A1 (en) | 2022-08-10 |
EP4373105A2 (en) | 2024-05-22 |
EP4373105A3 (en) | 2024-05-29 |
CN114586371A (zh) | 2022-06-03 |
US11546675B2 (en) | 2023-01-03 |
US20210112314A1 (en) | 2021-04-15 |
EP4038892B1 (en) | 2024-03-06 |
US20240340507A1 (en) | 2024-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11695974B2 (en) | Methods, systems, and media for adjusting quality level during synchronized media content playback on multiple devices | |
US9473548B1 (en) | Latency reduction in streamed content consumption | |
US9167007B2 (en) | Stream complexity mapping | |
WO2021143479A1 (zh) | 媒体流传输方法及系统 | |
US20240340507A1 (en) | Methods, systems, and media for streaming video content using adaptive buffers | |
US10462531B2 (en) | Methods, systems, and media for presenting an advertisement while buffering a video | |
US10482568B2 (en) | Information processor and information processing method | |
US20230396829A1 (en) | Methods, systems, and media for synchronized media content playback on multiple devices | |
CN108307248B (zh) | 视频播放方法、装置、计算设备及存储介质 | |
JP2024109558A (ja) | メディアコンテンツ項目をストリーミングするためのフォーマットを選択するための方法、システム、および媒体 | |
US20240214443A1 (en) | Methods, systems, and media for selecting video formats for adaptive video streaming | |
CN114302180A (zh) | 视频单帧播放方法、设备、服务器、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |