IP Library Patent Application 13251061
Patent Application
App. No. 13/251,061

SYSTEMS AND METHODS FOR DETERMINING AVAILABLE BANDWIDTH AND PERFORMING INITIAL STREAM SELECTION WHEN COMMENCING STREAMING USING HYPERTEXT TRANSFER PROTOCOL

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/251,061
Abstract

Systems and methods for determining available bandwidth and performing initial stream selection when commencing adaptive bitrate streaming using Hypertext Transfer Protocol (HTTP) in accordance with embodiments of the invention are disclosed. One embodiment includes performing a bandwidth probe to obtain an estimate of the available bandwidth between a playback device and a remote server, where the bandwidth probe comprises the playback device requesting blocks of data of increasing size from the remote server until the time taken to download a requested block exceeds a predetermined threshold, selecting an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates using the playback device based upon the maximum bitrates of the plurality of streams and the estimated available bandwidth, and commencing streaming of encoded media by requesting portions of the encoded media from the initial streams using the playback device.

Claims (88)

1 . A method of selecting an initial stream of encoded media from a plurality of streams of encoded media that are encoded at different maximum bitrates rates, the method comprising:

performing a bandwidth probe to obtain an estimate of the available bandwidth between a playback device and a remote server, where the bandwidth probe comprises the playback device requesting blocks of data of increasing size from the remote server until the time taken to download a requested block exceeds a predetermined threshold;

selecting an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates using the playback device based upon the maximum bitrates of the plurality of streams and the estimated available bandwidth; and

commencing streaming of encoded media by requesting portions of the encoded media from the initial streams using the playback device.

2 . The method of claim 1 , wherein requesting blocks of data of increasing size from the remote server until the time taken to download one of the requested blocks exceeds a predetermined threshold further comprises:

requesting an initial block of data from the remote server using the playback device, where the initial size of the block of data is determined based upon the minimum bandwidth at which streaming can be supported and a maximum probe time; and

determining an increased block size when the time taken to download the initial block of data does not exceed the predetermined threshold by estimating:

the available bandwidth based upon the size of the requested block of data; and

the time taken to download the requested block of data and multiplying the estimated available bandwidth by a predetermined maximum allowable probe time.

3 . The method of claim 1 , further comprising adjusting the estimate of the available bandwidth by a predetermined amount.

4 . The method of claim 1 , wherein the predetermined amount is dependent upon the value of the estimate of the available bandwidth.

5 . The method of claim 1 , further comprising adjusting the estimate of the available bandwidth based upon a maximum startup time.

6 . The method of claim 5 , wherein an estimate of the available rate is determined as follows:

Rate

adjusted

=

Rate

probe

*

(

Time

maximum

-

(

Time

probe_overhead

+

Time

setup_procedures

)

Time

maximum

)

where

Rate adjusted is the adjusted estimate of the available rate;

Rate probe is the estimate of the available rate obtained using the bandwidth probe;

Time maximum is the maximum startup time;

Time probe — overhead is the time taken to conduct the bandwidth probe; and

Time setup — procedures is the time taken to perform any additional start up operations.

7 . The method of claim 1 , wherein the initial stream is selected for use in the adaptive bitrate streaming of the encoded media.

8 . The method of claim 1 , wherein the initial stream is selected by initially allocating available bandwidth to streams which have no alternative and allocating the remaining bandwidth to the selection from the plurality of streams of encoded media that are encoded at different maximum bitrates rates.

9 . The method of claim 8 , further comprising selecting a stream from each of a number of sets of streams of encoded media that are encoded at different maximum bitrates.

10 . The method of claim 9 , wherein the user can instruct the playback device concerning allocation of bandwidth to at least one of the selections subject to the remaining available bandwidth.

11 . A playback device configured to perform a bandwidth probe and select an initial stream from a plurality of streams of encoded media that are encoded at different maximum bitrates, the playback device comprising:

a processor configured, via a client application, to request portions of files from a remote server;

wherein the client application further configures the processor to:

perform a bandwidth probe to obtain an estimate of the available bandwidth between the playback device and a remote server, where the bandwidth probe comprises configuring the processor to request blocks of data of increasing size from the remote server until the time taken to download a requested blocks exceeds a predetermined threshold;

select an initial stream based upon the bitrate of the streams and the estimated available bandwidth; and

commence streaming of the encoded media by requesting portions of the encoded media from the initial stream.

12 . The playback device of claim 11 , wherein configuring the processor to request blocks of data of increasing size from the remote server until the time taken to download one of the requested blocks exceeds a predetermined threshold further comprises the client application configuring the processor to:

request an initial block of date from the remote server using the playback device, where the initial size of the block of data is determined based upon the minimum bandwidth at which streaming can be supported multiplied by a maximum allowable probe time; and

determine an increased block size when the time taken to download the initial block of data does not exceed the predetermined threshold by estimating the available bandwidth based upon the size of the requested block of data and the time taken to download the requested block of data and multiplying the estimated available bandwidth by the maximum probe time.

13 . The playback device of claim 11 , further comprising the client application configuring the processor to adjust the estimate of the available bandwidth by a predetermined amount.

14 . The playback device of claim 11 , wherein the predetermined amount is dependent upon the value of the estimate of the available bandwidth.

15 . The playback device of claim 11 , wherein the client application further configures the playback device to adjust the estimate of the available bandwidth based upon a predetermined maximum allowable startup time.

16 . The playback device of claim 15 , wherein the client application further configures the playback device to estimate the available rate as follows:

Rate

adjusted

=

Rate

probe

*

(

Time

maximum

-

(

Time

probe_overhead

+

Time

setup_procedures

)

Time

maximum

)

where

Rate adjusted is the adjusted estimate of the available rate;

Rate probe is the estimate of the available rate obtained using the bandwidth probe;

Time maximum is the maximum startup time;

Time probe — overhead is the time taken to conduct the bandwidth probe; and

Time setup — procedures is the time taken to perform any additional start up operations.

17 . The playback device of claim 11 , wherein the initial stream is selected for use in the adaptive bitrate streaming of the encoded media.

18 . The playback device of claim 11 , wherein the client application configures the processor to select the initial stream by initially allocating available bandwidth to streams for which there are not alternatives and allocating the remaining bandwidth to the selection from the plurality of streams of encoded media that are encoded at different maximum bitrates.

19 . The playback device of claim 18 , wherein the client application configures the processor to select a stream from each of a number of sets of streams of encoded media that are encoded at different maximum bitrates.

20 . The playback device of claim 19 , wherein the client application configures the processor to receive user instructions concerning allocation of bandwidth to at least one of the selections subject to the remaining available bandwidth.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 031713/0032 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE SPELLING OF ASSIGNOR KOUROSH SOROUSHIAN'S LAST NAME PREVIOUSLY RECORDED ON REEL 027372 FRAME 0664. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 16, 2011
From: VAN DER SCHAAR, AUKE SJOERD; BRANESS, JASON; SOROUSHIAN, KOUROSH
To: DIVX, LLC
Reel/Frame 027398/0885 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2011
From: VAN DER SCHAAR, AUKE SJOERD; BRANESS, JASON; SOROUSHAIN, KOUROSH
To: DIVX, LLC
Reel/Frame 027372/0664 →