# US 10,873,780 B2 · System and method for effectuating fast channel change in an adaptive streaming environment

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

- Number: US 10,873,780 B2
- Document ID: US10873780B2
- Status: Granted
- Kind: B2
- Application number: 15/581,299
- Filed: 2017-04-28
- Published: 2017-08-10
- Granted: 2020-12-22
- Earliest claimed: 2013-09-25
- Assignees: Ericsson Inc.
- Applicants: Ericsson AB
- Inventors: Chris Phillips; Charles Hammett Dasher; Mark Robertson; Robert Hammond Forsman; Jennifer Ann Reynolds
- Web page: https://patentgrep.com/patent/US10873780B2

## CPC

- H04N 21/4384: {involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency}
- H04L 65/60: Network streaming of media packets
- H04L 65/612: for unicast
- H04L 65/70: Media network packetisation
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/6373: for rate control {, e.g. request to the server to modify its transmission rate (flow control in packet networks H04L47/10)}
- H04N 21/64322: {IP}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for effectuating fast channel change in an adaptive streaming environment. A plurality of adjacent channels may be predicted relative to a current streaming channel engaged by a client device. Upon prioritizing the adjacent channels, the client device may be configured to pre-fetch metadata and initialization information for a subset of the prioritized adjacent channels based on bandwidth conditions, video player buffer status, etc. When a channel is changed, the client device is operative to use the pre-fetched data to quickly obtain encoded media content at a select bitrate for rendering.

## Claims

### Claim 1

A method operative in a client device disposed in an adaptive streaming environment, the method comprising:
monitoring at least a bandwidth condition relative to a network connection between the client device and a content delivery network;
predicting a plurality of adjacent channels relative to a current streaming channel of the client device effectuated over the network connection, the predicting of the adjacent channels performed responsive to at least one of a current bandwidth condition and adaptive learning of a user's channel surfing behavior;
prioritizing the plurality of adjacent channels;
determining a subset number of channels of the prioritized plurality of adjacent channels for which metadata information can be pre-fetched;
pre-fetching the metadata information associated with each of the subset number of channels of the prioritized plurality of adjacent channels;
responsive to the pre-fetched metadata information, pre-fetching and storing initialization information for the subset number of channels of the prioritized plurality of adjacent channels;
if the current streaming channel is changed to a new streaming channel belonging to the subset number of channels of the prioritized plurality of adjacent channels, using the pre-fetched initialization information to fetch segments of encoded media content pertaining to the new streaming channel, the segments having a first duration; and
subsequent to determining that the new streaming channel has settled in the new streaming channel for a select time period, sending a request for segments of the encoded media content having a second duration.

### Claim 2 (depends on 1)

The method as recited in claim 1, wherein the metadata information comprises manifest information associated with a respective one of the subset number of channels of the prioritized plurality of adjacent channels.

### Claim 3 (depends on 1)

The method as recited in claim 1, wherein the initialization information associated with a respective one of the subset number of channels of the prioritized plurality of adjacent channels comprises at least one of a Sequence Parameters Set (SPS), a Picture Parameters Set (PPS), one or more codec headers, and data necessary to decode slices of video frames.

### Claim 4 (depends on 1)

The method as recited in claim 1, wherein the segments having the first duration are shorter than the segments having the second duration.

### Claim 5 (depends on 1)

The method as recited in claim 1, further comprising:
continuing to monitor at least one of the bandwidth condition of the network connection, video player buffer conditions and decoder processing conditions of the client device; and
responsive to the monitoring, predicting a new plurality of adjacent channels relative to the new streaming channel.

### Claim 6 (depends on 1)

The method as recited in claim 1, further comprising:
determining that the media content of the new streaming channel is not error-corrected by the streaming server; and
upon expiration of a specified period of time after the client device has settled into the new streaming channel, sending a message to the streaming server to enable error correction of the media content by the streaming server.

### Claim 7

A client device, comprising:
one or more processors;
a bandwidth condition monitor; and
a persistent memory coupled to the one or more processors, wherein the persistent memory includes program instructions for performing the following when executed by the one or more processors:
monitoring at least a bandwidth condition relative to a network connection between the client device and a content delivery network;
predicting a plurality of adjacent channels relative to a current streaming channel of the client device effectuated over the network connection, the predicting of the adjacent channels performed responsive to at least one of a current bandwidth condition and adaptive learning of a user's channel surfing behavior;
prioritizing the plurality of adjacent channels;
determining a subset number of channels of the prioritized plurality of adjacent channels for which metadata information can be pre-fetched;
pre-fetching the metadata information associated with each of the subset number of channels of the prioritized plurality of adjacent channels;
responsive to the pre-fetched metadata information, pre-fetching and storing initialization information for the subset number of channels of the prioritized plurality of adjacent channels;
if the current streaming channel is changed to a new streaming channel belonging to the subset number of channels of the prioritized plurality of adjacent channels, using the pre-fetched initialization information to fetch segments of encoded media content pertaining to the new streaming channel, the segments having a first duration; and
subsequent to determining that the new streaming channel has settled in the new streaming channel for a select time period, sending a request for segments of the encoded media content having a second duration.

### Claim 8 (depends on 7)

The client device as recited in claim 7, wherein the metadata information comprises manifest information associated with a respective one of the subset number of channels of the prioritized plurality of adjacent channels.

### Claim 9 (depends on 7)

The client device as recited in claim 7, wherein the initialization information associated with a respective one of the subset number of channels of the prioritized plurality of adjacent channels comprises at least one of a Sequence Parameters Set (SPS), a Picture Parameters Set (PPS), one or more codec headers, and data necessary to decode slices of video frames.

### Claim 10 (depends on 7)

The client device as recited in claim 7, wherein the segments having the first duration are shorter than the segments having the second duration.

### Claim 11 (depends on 7)

The client device as recited in claim 7, wherein the program instructions further comprise instructions configured for:
continuing to monitor at least one of the bandwidth condition of the network connection, video player buffer conditions and decoder processing conditions of the client device; and
responsive to the monitoring, predicting a new plurality of adjacent channels relative to the new streaming channel.

### Claim 12 (depends on 7)

The client device as recited in claim 7, wherein the program instructions further comprise instructions configured for:
determining that the media content of the new streaming channel is not error-corrected by the streaming server; and
upon expiration of a specified period of time after the client device has settled into the new streaming channel, sending a message to the streaming server to enable error correction of the media content by the streaming server.

### Claim 13

A non-transitory computer-readable medium containing program instructions stored thereon, which perform the following acts when executed by a processor of a client device:
monitoring at least a bandwidth condition relative to a network connection between the client device and a content delivery network;
predicting a plurality of adjacent channels relative to a current streaming channel of the client device effectuated over the network connection, the predicting of the adjacent channels performed responsive to at least one of a current bandwidth condition and adaptive learning of a user's channel surfing behavior;
prioritizing the plurality of adjacent channels;
determining a subset number of channels of the prioritized plurality of adjacent channels for which metadata information can be pre-fetched;
pre-fetching the metadata information associated with each of the subset number of channels of the prioritized plurality of adjacent channels;
responsive to the pre-fetched metadata information, pre-fetching and storing initialization information for the subset number of channels of the prioritized plurality of adjacent channels;
if the current streaming channel is changed to a new streaming channel belonging to the subset number of channels of the prioritized plurality of adjacent channels, using the pre-fetched initialization information to fetch segments of encoded media content pertaining to the new streaming channel, the segments having a first duration; and
subsequent to determining that the new streaming channel has settled in the new streaming channel for a select time period, sending a request for segments of the encoded media content having a second duration.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium as recited in claim 13, wherein the segments having the first duration are shorter than the segments having the second duration.

### Claim 15 (depends on 13)

The non-transitory computer-readable medium as recited in claim 13, further comprising program instructions configured for:
continuing to monitor at least one of the bandwidth condition of the network connection, video player buffer conditions and decoder processing conditions of the client device; and
responsive to the monitoring, predicting a new plurality of adjacent channels relative to the new streaming channel.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium as recited in claim 13, further comprising program instructions configured for:
determining that the media content of the new streaming channel is not error-corrected by the streaming server; and
upon expiration of a specified period of time after the client device has settled into the new streaming channel, sending a message to the streaming server to enable error correction of the media content by the streaming server.
