IP Library Granted Patent US 11,528,540
Granted Patent B2
US 11,528,540 · App. 17/227,026 · Granted Dec 13, 2022

System and method for decreasing an initial buffering period of an adaptive streaming system

Inventors: Abhishek Shivadas (San Diego, CA); Kourosh Soroushian (San Diego, CA)
Assignee: DIVX, LLC
H04N21/8456H04N21/23439H04N21/44209H04N21/6379H04L65/612H04N21/6581
View Patent ↗
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 11,528,540
App. No.
17/227,026
Granted
Dec 13, 2022
Kind
B2
Abstract

System and methods for selecting one of the alternative streams of encoded media from a group of alternative streams of encoded media for use during start-up of playback of the encoded media in accordance with embodiments of this invention are disclosed. The systems and methods begin by determining an estimated stability period for a current bandwidth of a communicative connection between the playback device and a remote system providing the alternative streams of encoded. A test process is then performed on the streams of encoded media to select one of streams of encoded media that provides portions of said encoded media such that an underflow condition does not occur during the estimated stability period. The streaming of encoded media is then commenced by requesting the portions of encoded media be transmitted from the remote server using the selected stream.

Claims (36)

1. A method of determining whether an underflow condition will occur in a particular stream of encoded media during a stability period, the method comprising:

requesting playback of content from one or more servers;

estimating the stability period of a communicative connection between a playback device and the one or more servers, where the estimated stability period is a period of time that the communicative connection is expected to remain stable based on bandwidth conditions;

selecting one of a plurality of streams of encoded media to be assessed, where the selected stream comprises encoded media divided into a plurality of portions, each portion having the same playback duration;

determining a download time for each of the plurality of portions based on the size of each of the plurality of portions; and

determining whether an underflow condition will occur in the selected stream during the estimated stability period by comparing the determined download time of each of the plurality of positions to the playback duration of each of the plurality of portions and accumulating the difference.

2. The method of claim 1 , wherein selecting one of the plurality of streams of encoded media to be assessed comprises selecting the stream of encoded media with the highest maximum bit rate.

3. The method of claim 2 , wherein selecting one of the plurality of streams of encoded media to be assessed, determining a download time for each of the plurality of portions, and determining whether an underflow condition will occur in the selected stream is repeated until a stream is selected where an underflow condition will not occur.

4. The method of claim 3 , wherein the next selected one of the plurality of streams of encoded media to be assessed is the stream of encoded media with the next highest maximum bit rate.

5. The method of claim 1 , wherein determining the download time for each of the plurality of portions comprises reading an index of portions of the selected stream of encoded media to determine the size of each of the plurality of portions of the stream of encoded media.

6. The method of claim 1 , further comprising:

discarding a first portion from each of the plurality of portions of the selected stream from consideration in response to a determination that the plurality of portions of the stream of the encoded media cannot be provided using any of the plurality of streams prior to playback time during the estimated stability period; and

repeating the steps of selecting one of the plurality of streams, determining a download time for each of the plurality of portions without the first portion, and determining whether an underflow condition will occur without the first portion.

7. The method of claim 1 , further comprising performing an alternative selection process for selecting one of the plurality of alternative streams in response to a determination that an underflow condition will occur during the estimated stability period.

8. The method of claim 1 , further comprising, in response to a determination that an underflow will occur in all of the plurality of streams during the estimated stability period, requiring a predetermined number of the plurality of portions be received prior to commencing playback of the encoded media.

9. The method of claim 1 , wherein determining the estimated stability period comprises receiving the estimated stability period from the one or more servers.

10. The method of claim 1 , wherein determining the estimated stability period comprises reading a predefined value for the estimated stability period from a memory of the playback device.

11. A playback device for playing back a stream of encoded media comprising:

a memory;

a processor configured via a client application stored in the memory to:

request playback of content from one or more servers;

estimate a stability period of a communicative connection between a playback device and the one or more servers, where the estimated stability period is a period of time that the communicative connection is expected to remain stable based on bandwidth conditions;

select one of a plurality of streams of encoded media to be assessed, where the selected stream comprises encoded media divided into a plurality of portions, each portion having the same playback duration;

determine a download time for each of the plurality of portions based on the size of each of the plurality of portions; and

determine whether an underflow condition will occur in the selected stream during the estimated stability period by comparing the determined download time of each of the plurality of positions to the playback duration of each of the plurality of portions and accumulating the difference.

12. The playback device of claim 11 , wherein selecting one of the plurality of streams of encoded media to be assessed comprises selecting the stream of encoded media with the highest maximum bit rate.

13. The playback device of claim 12 , wherein selecting one of the plurality of streams of encoded media to be assessed, determining a download time for each of the plurality of portions, and determining whether an underflow condition will occur in the selected stream is repeated until a stream is selected where an underflow condition will not occur.

14. The playback device of claim 13 , wherein the next selected one of the plurality of streams of encoded media to be assessed is the stream of encoded media with the next highest maximum bit rate.

15. The playback device of claim 11 , wherein determining the download time for each of the plurality of portions comprises reading an index of portions of the selected stream of encoded media to determine the size of each of the plurality of portions of the stream of encoded media.

16. The playback device of claim 11 , wherein the processor is further configured via the client application stored in the memory to:

discard a first portion from each of the plurality of portions of the selected stream from consideration in response to a determination that the plurality of portions of the stream of the encoded media cannot be provided using any of the plurality of streams prior to playback time during the estimated stability period; and

repeat the steps of selecting one of the plurality of streams, determining a download time for each of the plurality of portions without the first portion, and determining whether an underflow condition will occur without the first portion.

17. The playback device of claim 11 , wherein the processor is further configured via the client application stored in the memory to perform an alternative selection process for selecting one of the plurality of alternative streams in response to a determination that an underflow condition will occur during the estimated stability period.

18. The playback device of claim 11 , wherein the processor is further configured via the client application stored in the memory to, in response to a determination that an underflow will occur in all of the plurality of streams during the estimated stability period, require a predetermined number of the plurality of portions be received prior to commencing playback of the encoded media.

19. The playback device of claim 11 , wherein determining the estimated stability period comprises receiving the estimated stability period from the one or more servers.

20. The playback device of claim 11 , wherein determining the estimated stability period comprises reading a predefined value for the estimated stability period from a memory of the playback device.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2022
From: SHIVADAS, ABHISHEK; SOROUSHIAN, KOUROSH
To: DIVX, LLC
Reel/Frame 060610/0856 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2022
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 060610/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2022
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 060611/0001 →
CHANGE OF NAME Recorded Jul 25, 2022
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 060611/0051 →
Continuity (4)
Continuation 15937715 · Mar 27, 2018
Continuation 13631017 · Sep 28, 2012
Provisional Application 61696095 · Aug 31, 2012
Related Publication 20210409839A1 · Dec 30, 2021
Cited By (1)
US 12,250,257