# US 11,451,864 B2 · Dynamically adaptive bitrate streaming

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,451,864 B2
- Document ID: US11451864B2
- Status: Granted
- Kind: B2
- Application number: 16/077,828
- Filed: 2016-03-08
- Published: 2020-04-23
- Granted: 2022-09-20
- Earliest claimed: 2016-02-15
- Assignees: V-Nova International Limited
- Applicants: V-Nova International Limited
- Inventors: Gaurav Mittal
- Web page: https://patentgrep.com/patent/US11451864B2

## CPC

- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/234327: {by decomposing into layers, e.g. base layer and one or more enhancement layers}
- H04N 21/2662: Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
- H04N 21/434: Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream {(demultiplexing of data packets for data networks, e.g. RTP/UDP H04L65/00)}
- H04N 21/47217: {for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks (specific graphical features in visual interfaces H04N21/4312)}
- H04N 21/643: Communication protocols {(network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP], H04L65/65)}
- H04N 21/845: Structuring of content, e.g. decomposing content into time segments
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of buffering, at a decoder, a segment (320′) of an encoded data stream (300′), the segment (320′) being arranged in hierarchical layers comprising a base layer segment (320-0) and an enhancement layer segment (320-1′), the base layer segment (320-0) being decodable to a base level of reproduction quality (LOQ#6), and the enhancement layer segment (320-1′), together with the base layer segment (320-0), being decodable to an enhanced level of reproduction quality (LOQ#1), the method comprising the steps of: receiving the encoded data stream (300′) for a prescribed time period so as to buffer the base layer segment (320-0) and as much of the enhancement layer segment (320-1′) as possible in the prescribed time period (P); and sending the buffered base layer segment (320-0) and what is received of the enhancement layer segment (320-1′) to a decoder for decoding and output.

## Claims

### Claim 1

A method of buffering, at a client device, a segment of an encoded data stream, the segment being arranged in hierarchical layers comprising a plurality of segment units including a base layer segment and one or more enhancement layer segments, the base layer segment being decodable to a base level of reproduction quality, and the one or more enhancement layer segments, together with the base layer segment, being decodable to enhanced levels of reproduction quality, the method comprising the steps of:
receiving at the client device the segment of the encoded data stream within a prescribed time period, the client device having derived and having pre-determined the prescribed time period for buffering the received segment, the prescribed time period having been derived at least in part using a bandwidth of a communication link from which the segment is received, a playback time of the segment, and an amount of data in the segment, and the encoded data stream having been created using the prescribed time period;
buffering the entire base layer segment, all of a portion of a first enhancement layer segment that was received during the prescribed time period, and all of any additional enhancement layer segment portions that was received during the prescribed time period;
transferring to a decoder for decoding the base layer segment, the all of a portion of the first enhancement layer segment that was received during the prescribed time period, and the all of the any additional enhancement layer segment portions that was received during the prescribed time period.

### Claim 2 (depends on 1)

The method of claim 1, wherein the segment comprises a plurality of segment units of data, each segment unit of data having a corresponding base layer unit and a corresponding enhancement layer unit.

### Claim 3 (depends on 2)

The method of claim 2, wherein each base layer unit is decodable independently from other base layer units.

### Claim 4 (depends on 3)

The method of claim 3, wherein each enhancement layer unit is decodable with its corresponding base layer unit independently from other base layer units or other enhancement layer units.

### Claim 5 (depends on 1)

The method of claim 1, wherein the segment comprises data representing a plurality of frames of video data, and each frame is represented by a base layer unit and an enhancement layer unit.

### Claim 6 (depends on 1)

The method of claim 1, wherein receiving the segment comprises requesting each of the base layer segment and the enhancement layer segment separately on a layer-by-layer basis.

### Claim 7 (depends on 6)

The method of claim 6, wherein in the step of requesting the segment comprises requesting firstly the base layer segment, followed by the enhancement layer segment.

### Claim 8 (depends on 1)

The method of claim 1, wherein the step of streaming the encoded data stream comprises requesting firstly the segment of the encoded data stream, followed by requesting a second segment of the encoded data stream.

### Claim 9 (depends on 1)

The method of claim 1, wherein the prescribed time is less than the playback time of the segment.

### Claim 10 (depends on 1)

The method of claim 1, wherein the reproduction quality is or is related to one or more of the following: resolution; compression; samples per second; or frames per second.

### Claim 11 (depends on 1)

The method of claim 1 wherein the step of sending the buffered base layer segment occurs following, or at the end of, the prescribed time period.

### Claim 12

An apparatus for receiving and decoding an encoded data stream, the apparatus comprising:
a processor configured to control streaming of an encoded data stream;
a communications port configured to communicate with a source of the encoded data stream;
a buffer configured to buffer segments of the encoded data stream; and
a codec arranged to decode the buffered segments of the encoded data stream;
wherein each segment of the encoded data stream is arranged in hierarchical layers comprising a plurality of segment units including a base layer segment and one or more enhancement layer segments, the base layer segment being decodable to a base level of reproduction quality, and the one or more enhancement layer segments, together with the base layer segment, being decodable to enhanced levels of reproduction quality;
the processor being configured to cause the apparatus to:
receive the encoded data stream through the communications port for a prescribed time period, the apparatus having derived and having pre-determined the prescribed time period for buffering the received data stream, the prescribed time period having been derived at least in part using a bandwidth of a communication link from which the data stream is received, a playback time of the data stream, and an amount of data in the data stream, and the encoded data stream having been created using the prescribed time period;
buffer the entire base layer segment, all of a portion of a first enhancement layer segment that was received during the prescribed time period, and all of any additional enhancement layer segment portions that was received during the prescribed time period;
transfer to a decoder for decoding the entire buffered base layer segment, the all of a portion of the first enhancement layer segment that was received during the prescribed time period, and the all of the any additional enhancement layer segment portions that was received during in-the prescribed time period.

### Claim 13 (depends on 12)

The apparatus of claim 12 wherein the processor is further configured to cause the buffered base layer segment and what is received of the enhancement layer segment to be sent following, or at the end of, the prescribed time period.

### Claim 14

A computer-readable hardware storage device having instructions recorded thereon which, when executed, causes a computer to perform a method of buffering, at a client device, a segment of an encoded data stream, the segment being arranged in hierarchical layers comprising a plurality of segment units including a base layer segment and one or more enhancement layer segments, the base layer segment being decodable to a base level of reproduction quality, and the one or more enhancement layer segments, together with the base layer segment, being decodable to enhanced levels of reproduction quality, the method comprising the steps of:
receiving at the client device the segment of the encoded data stream within a prescribed time period, the client device having derived and having pre-determined the prescribed time period for buffering the received segment, the prescribed time period having been derived at least in part using a bandwidth of a communication link from which the segment is received, a playback time of the segment, and an amount of data in the segment, and the encoded data stream having been created using the prescribed time period;
buffering the entire base layer segment, all of a portion of a first enhancement layer segment that was received during the prescribed time period, and all of any additional enhancement layer segment portions that was received during the prescribed time period;
transferring to a decoder for decoding the entire base layer segment, the all of a portion of the first enhancement layer segment that was received during the prescribed time period, and the all of the any additional enhancement layer segment portions that was received during the prescribed time period.
