IP Library Granted Patent US 9,020,039
Granted Patent B2
US 9,020,039 · App. 13/341,504 · Granted Apr 28, 2015

Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming

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 9,020,039
App. No.
13/341,504
Granted
Apr 28, 2015
Kind
B2
Abstract

Systems and methods for encoding alternative streams for use in adaptive bitrate streaming based upon the delay of each stream in accordance with embodiments of the invention are described. One embodiment of the invention includes memory, and a processor configured by a source encoding application to: receive multimedia content, where the multimedia content includes source video data having a primary resolution and a primary sample aspect ratio; and encode the source video data as a set of alternative video streams, where: the alternative video streams have different maximum bitrates; and the alternative video streams are encoded to have an upper bound seek delay that is equal to or less than the upper bound seek delay of streams in the set of alternative video streams that are encoded at a higher maximum bitrate.

Claims (175)

1. A source encoder configured to encode source video as a number of alternative video streams, the source encoder comprising:

memory; and

a processor configured by a source encoding application to:

receive multimedia content, where the multimedia content comprises source video data having a primary resolution and a primary sample aspect ratio; and

encode the source video data as a set of alternative video streams, where:

the alternative video streams have different maximum bitrates; and

the alternative video streams are encoded to have an upper bound seek delay that is equal to or less than the upper bound seek delay of streams in the set of alternative video streams that are encoded at a higher maximum bitrate where the upper seek bound delay of a particular one of the alternative video streams is determined as follows:

Delay

=

level

buffersize

+

level

rate

·

duration

chunk

rate

where level buffersize is the maximum buffer size constraint used in encoding the video stream;

duration chunk is the time taken to playback a single chunk of video of the particular one of the alternative video streams;

level rate is the maximum bitrate of the particular one of the alternative video streams; and

rate is a network data rate.

2. The source encoder of claim 1 , wherein:

the source encoding application further configures the processor to encode the alternative video streams at predetermined maximum bitrates and maximum buffer sizes; and

the upper bound seek delay of a stream is determined by dividing the predetermined maximum buffer size of the stream by the predetermined maximum bitrate of the stream.

3. The source encoder of claim 1 , wherein the source encoding application further configures the processor to encode the alternative video streams so that each stream in the set of alternative streams has the same aspect ratio.

4. The source encoder of claim 1 , wherein the source encoding application further configures the processor to determine a lower bound seek delay for each stream in the set of alternative video streams.

5. The source encoder of claim 4 , wherein the source encoding application further configures the processor to include within each stream its lower bound seek delay.

6. The source encoder of claim 4 , wherein the source encoding application further configures the processor to:

determine the alternative stream that has the highest lower bound seek delay; and

include the highest lower bound seek delay within each stream.

7. The source encoder of claim 6 , wherein the alternative video streams are encoded in accordance with the H.264 standard.

8. The source encoder of claim 7 , wherein the source encoding application further configures the processor to include the highest lower bound seek delay in a initial_cpb_removal_delay field in an SEI buffering message within each stream.

9. The source encoder of claim 4 , wherein the source encoding application configures the processor to determine the lower bound seek delay of a particular one of the alternative streams as follows:

Delay

=

max

chunks

(

i

=

0

n

size

chunk

i

rate

-

(

n

-

1

)

·

duration

chunk

)

where:

size chunk i is a size of a particular chunk, i, in the particular one of the alternative streams,

where rate is the network data rate, and

duration chunk is the time taken to playback a single chunk of video of the particular one of the alternative video streams.

10. A method of encoding source video as a number of alternative video streams, comprising:

receiving multimedia content, where the multimedia content comprises source video data having a primary resolution and a primary sample aspect ratio using a source encoder;

encoding the source video data as a set of alternative video streams using the source encoder, where:

the alternative video streams have different maximum bitrates; and

the alternative video streams are encoded to have an upper bound seek delay that is equal to or less than the upper bound seek delay of streams in the set of alternative video streams that are encoded at a higher maximum bitrate where the upper seek bound delay of a particular one of the alternative video streams is determined as follows:

Delay

=

level

buffersize

+

level

rate

·

duration

chunk

rate

where level buffersize is the maximum buffer size constraint used in encoding the video stream;

duration chunk is the time taken to playback a single chunk of video of the particular one of the alternative video streams;

level rate is the maximum bitrate of the particular one of the alternative video streams; and

rate is a network data rate.

11. The method of claim 10 , further comprising:

encoding the alternative video streams at predetermined maximum bitrates and maximum buffer sizes using the source encoder;

wherein the upper bound seek delay of a stream is determined by dividing the predetermined maximum buffer size of the stream by the predetermined maximum bitrate of the stream.

12. The method of claim 10 , further comprising encoding the alternative video streams so that each stream in the set of alternative streams has the same aspect ratio.

13. The method of claim 10 , further comprising determining a lower bound seek delay for each stream in the set of alternative video streams.

14. The method of claim 13 , further comprising including within each stream its lower bound seek delay.

15. The method of claim 13 , further comprising:

determining the alternative stream that has the highest lower bound seek delay; and

including the highest lower bound seek delay within each stream.

16. The method of claim 15 , wherein the alternative video streams are encoded in accordance with the H.264 standard.

17. The method of claim 16 , further comprising including the highest lower bound seek delay in a initial_cpb_removal_delay field in an SEI buffering message within each stream.

18. The method of claim 14 , further comprising determining the lower bound seek delay as follows:

Delay

=

max

chunks

(

i

=

0

n

size

chunk

i

rate

-

(

n

-

1

)

·

duration

chunk

)

where:

size chunk i is a size of a particular chunk, i, in the particular one of the alternative streams,

where rate is the network data rate, and

duration chunk is the time taken to playback a single chunk of video of the particular one of the alternative video streams.

19. A non-transitory machine readable medium containing processor instructions, where execution of the instructions by the processor causes the processor to perform a process comprising:

receiving multimedia content, where the multimedia content comprises source video data having a primary resolution and a primary sample aspect ratio; and

encoding the source video data as a set of alternative video streams, where:

the alternative video streams have different maximum bitrates; and

the alternative video streams are encoded to have an upper bound seek delay that is equal to or less than the upper bound seek delay of streams in the set of alternative video streams that are encoded at a higher maximum bitrate where the upper seek bound of a particular one of the alternative video streams is determined as follows:

Delay

=

level

buffersize

+

level

rate

·

duration

chunk

rate

where level buffersize is the maximum buffer size constraint used in encoding the video stream;

duration chunk is the time taken to playback a single chunk of video of the particular one of the alternative video streams;

level rate is the maximum bitrate of the particular one of the alternative video streams; and

rate is a network data rate.

Assignments (5)
CHANGE OF PRINCIPAL PLACE OF BUSINESS Recorded Mar 5, 2019
From: DIVX, LLC
To: DIVX, LLC
Reel/Frame 050407/0104 →
CHANGE OF NAME Recorded Mar 5, 2018
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 045498/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: SONIC IP, INC.; DIVX, LLC
To: DIVX CF HOLDINGS LLC
Reel/Frame 045310/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 031713/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2012
From: VAN DER SCHAAR, AUKE SJOERD
To: DIVX, LLC
Reel/Frame 027879/0010 →