# US 10,320,870 B2 · Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction

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

- Number: US 10,320,870 B2
- Document ID: US10320870B2
- Status: Granted
- Kind: B2
- Application number: 14/572,858
- Filed: 2014-12-17
- Published: 2015-04-16
- Granted: 2019-06-11
- Earliest claimed: 2010-05-04
- Assignees: Telefonaktiebolaget LM Ericsson (publ)
- Applicants: Ericsson AB
- Inventors: Kevin J. Ma; Raj Nair; Robert Hickey; Jianguo Xu
- Web page: https://patentgrep.com/patent/US10320870B2

## CPC

- H04L 65/60: Network streaming of media packets
- H04L 65/752: adapting media to network capabilities
- H04L 65/103: {in the network}
- H04L 65/1045: Proxies, e.g. for session initiation protocol [SIP]
- H04L 65/612: for unicast
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 65/765: {intermediate}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/025: for remote control or remote monitoring of applications
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- H04N 21/222: Secondary servers, e.g. proxy server, cable television Head-end {(provisioning of proxy services in data packet switching networks H04L67/56)}
- H04N 21/6405: Multicasting {(data broadcast and multicast in packet switching networks H04L12/18)}
- H04N 21/64738: {Monitoring network characteristics, e.g. bandwidth, congestion level (data switched network analysis H04L41/14; monitoring functioning in data switched networks H04L43/0817; flow control in packet networks H04L47/10)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method and system is provided for controlling bandwidth rate limiting and client rendering rate limiting in a video delivery network. The method provides network service providers with a means for overriding video delivery data rates selected through dynamic client bitrate adaptation, as well as video data rendering rates of the clients, to limit the impact of network congestion. A system is also specified for implementing a client and a proxy computer in accordance with the method. The system works transparently with standard HTTP-based video delivery systems and includes an HTTP proxy cache infrastructure to support bandwidth rate limiting and client rending rate limiting. The system further provides for administrative overrides of client bitrate selection and client bandwidth usage.

## Claims

### Claim 1

A method for operating a proxy computer in a streaming video delivery network to enforce video streaming policies for clients using bitrate adaptation and video playout rate reduction, comprising:
performing video streaming by caching video segments from a video content server and delivering cached video segments to the clients, the caching including predictively prefetching future video segments;
monitoring a variety of operational information;
using the operational information to calculate desired operational parameters for the network including a target bitrate for delivery of the video segments and an optimal bitrate for prefetching video segments; and
notifying a client of network conditions and the need for modification of the playout rate at which the video segments are to be rendered at the client to obtain a desired mix of quality playback and conformance to the desired operational parameters of the network.

### Claim 2 (depends on 1)

The method of claim 1, wherein the variety of operation information includes subscriber service level agreement (SLA) information, local network bandwidth at the proxy computer, and presence of congestion in the network.

### Claim 3 (depends on 2)

The method of claim 2, further comprising one or more actions selected from the group consisting of limiting access to selected videos; limiting bandwidth usage; applying global rate limiting policies; and prioritizing bandwidth by service level.

### Claim 4 (depends on 3)

The method of claim 3, wherein limiting access to selected videos includes refraining from sending videos of a given bitrate and/or resolution to clients not capable of rendering the videos at the given bitrate and/or resolution.

### Claim 5 (depends on 3)

The method of claim 3, wherein limiting access to selected videos is based on licensing restrictions regarding maximum bitrate or resolution available to a given client.

### Claim 6 (depends on 3)

The method of claim 3, wherein limiting bandwidth usage is achieved by using segment spoofing and/or playlist spoofing, segment spoofing including requesting a segment for one bitrate from the video content server in response to receiving a request for a segment of a higher bitrate from a client, and playlist spoofing including sending a spoofed playlist to the client in response to receiving a requested playlist, the spoofed playlist differing from the requested playlist.

### Claim 7 (depends on 1)

The method of claim 1, wherein segments are prefetched sequentially based on a current segment being requested, and prefetched segments are cached for later delivery to the clients.

### Claim 8 (depends on 1)

The method of claim 1, wherein the network includes a frontend radio access network and a backend carrier backhaul network, and wherein bandwidth of the frontend radio access network is estimated separately from bandwidth of the backend carrier backhaul network.

### Claim 9 (depends on 1)

The method of claim 1, wherein notifying the client of network conditions includes providing a frontend network bandwidth estimate usable by the client and routers downstream of the proxy computer, and wherein notifying the client of network conditions includes using a custom HTTP header inserted into a response to an HTTP request.

### Claim 10 (depends on 1)

The method of claim 1, wherein notifying the client of network conditions includes providing a backend network bandwidth estimate usable by the client and routers downstream of the proxy computer, the notifying including using a custom HTTP header inserted into a response to an HTTP request.

### Claim 11

A proxy computer for use in a streaming video delivery network to enforce video streaming policies for clients using bitrate adaptation and video playout rate reduction, comprising:
memory;
a processor;
input/output circuitry for connecting the proxy computer to the streaming video delivery network including connections to the clients and a video content server; and
one or more data buses by which the memory, processor and input/output circuitry are coupled together,
the memory and processor being configured to store and execute program instructions to enable the proxy computer to perform a method including:
performing video streaming by caching video segments from a video content server and delivering cached video segments to the clients, the caching including predictively prefetching future video segments;
monitoring a variety of operational information;
using the operational information to calculate desired operational parameters for the network including a target bitrate for delivery of the video segments and an optimal bitrate for prefetching video segments; and
notifying a client of network conditions and the need for modification of the playout rate at which the video segments are to be rendered at the client to obtain a desired mix of quality playback and conformance to the desired operational parameters of the network.

### Claim 12 (depends on 11)

The proxy computer according to claim 11, wherein the variety of operation information includes subscriber service level agreement (SLA) information, local network bandwidth at the proxy computer, and presence of congestion in the network.

### Claim 13 (depends on 12)

The proxy computer according to claim 12, further comprising one or more actions selected from the group consisting of limiting access to selected videos; limiting bandwidth usage; applying global rate limiting policies; and prioritizing bandwidth by service level.

### Claim 14 (depends on 13)

The proxy computer according to claim 13, wherein limiting access to selected videos includes refraining from sending videos of a given bitrate and/or resolution to clients not capable of rendering the videos at the given bitrate and/or resolution.

### Claim 15 (depends on 13)

The proxy computer according to claim 13, wherein limiting access to selected videos is based on licensing restrictions regarding maximum bitrate or resolution available to a given client.

### Claim 16 (depends on 13)

The proxy computer according to claim 13, wherein limiting bandwidth usage is achieved by using segment spoofing and/or playlist spoofing, segment spoofing including requesting a segment for one bitrate from the video content server in response to receiving a request for a segment of a higher bitrate from a client, and playlist spoofing including sending a spoofed playlist to the client in response to receiving a requested playlist, the spoofed playlist differing from the requested playlist.

### Claim 17 (depends on 11)

The proxy computer according to claim 11, wherein segments are prefetched sequentially based on a current segment being requested, and prefetched segments are cached for later delivery to the clients.

### Claim 18 (depends on 11)

The proxy computer according to claim 11, wherein the network includes a frontend radio access network and a backend carrier backhaul network, and wherein bandwidth of the frontend radio access network is estimated separately from bandwidth of the backend carrier backhaul network.

### Claim 19 (depends on 11)

The proxy computer according to claim 11, wherein notifying the client of network conditions includes providing a frontend network bandwidth estimate usable by the client and routers downstream of the proxy computer, and wherein notifying the client of network conditions includes using a custom HTTP header inserted into a response to an HTTP request.

### Claim 20 (depends on 11)

The proxy computer according to claim 11, wherein notifying the client of network conditions includes providing a backend network bandwidth estimate usable by the client and routers downstream of the proxy computer, the notifying including using a custom HTTP header inserted into a response to an HTTP request.
