# US 10,320,875 B2 · Content delivery

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

- Number: US 10,320,875 B2
- Document ID: US10320875B2
- Status: Granted
- Kind: B2
- Application number: 15/109,283
- Filed: 2014-12-23
- Published: 2016-11-03
- Granted: 2019-06-11
- Earliest claimed: 2014-01-03
- Assignees: British Broadcasting Corporation
- Applicants: British Broadcasting Corporation
- Inventors: Richard Bradbury; Andrew Lipscombe
- Web page: https://patentgrep.com/patent/US10320875B2

## CPC

- H04L 65/765: {intermediate}
- H04L 12/1886: {with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains}
- H04L 65/611: for multicast or broadcast (systems for broadcast or conference H04L12/18; arrangements for broadcast or distribution combined with broadcast H04H20/00; arrangements for broadcast applications with a direct linkage to broadcast information or to broadcast space-time H04H60/00; selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS], H04W4/06)
- H04L 65/612: for unicast
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for delivering content at varying qualities from a server to multiple client across a network has a server side converter and a client side converter. The server side converter makes unicast requests to a server for representations of content and converts these to multiple representations to be delivered as multicast streams. The client side converter receives a request for content from clients, determines a representation of content to obtain and subscribes to an appropriate multicast stream. The client side then converts the multicast stream back into segments available to a client by unicast request. In this way, data is delivered efficiently across a network from a server side to a client side while maintaining compatibility that client devices can issue traditional unicast requests.

## Claims

### Claim 1

A system for delivering content at varying qualities from a server to multiple clients across a network, the content being arranged in representations of differing qualities, each representation comprising segments addressable by client requests, comprising:
a Dynamic Adaptive Streaming over Multicast (DASM) head-end arranged to:
issue unicast requests to the server for segments of multiple representations of the content;
convert each of the multiple representations of the content to respective multicast datagram streams, each representation being assigned to a corresponding multicast IP address; and
deliver the multicast datagram streams onto the network;
a DASM client proxy arranged to:
receive requests for content from the clients;
determine a representation of the content to obtain;
subscribe to the multicast datagram stream that comprises the determined representation of the content;
convert the multicast datagram stream back to segments available to the client by unicast request;
intercept client requests for content;
intercept response messages from a server; and
modify the response messages to be sent to the client by altering an address in the response message so that client requests for content are redirected to the DASM client proxy.

### Claim 2 (depends on 1)

A system according to claim 1 wherein the modifying comprises altering a description in the response message to present only one representation as apparently available to the client.

### Claim 3 (depends on 1)

A system according to claim 1 wherein the response message is a MPEG DASH media presentation description (MPD).

### Claim 4 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is arranged to determine the representation of the content to obtain based on monitoring conditions on the network.

### Claim 5 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is arranged to minimize perceptible effects of switching between representations by one or more of minimizing the frequency of switching between representations or minimizing the difference in quality of representations when switching between representations.

### Claim 6 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is operable to switch between different representations of the content by switching between multicast datagram streams.

### Claim 7 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is arranged to determine if any segments reassembled from a multicast datagram stream are incomplete and to retrieve missing portions of such segments.

### Claim 8 (depends on 7)

A system according to claim 7 wherein retrieving the missing portions is by requesting one or more ranges of bytes within the incomplete segment.

### Claim 9 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is part of a client device or part of a gateway device arranged to provide content to multiple client devices.

### Claim 10 (depends on 1)

A system according to claim 1 wherein the DASM client proxy is part of a network provider content delivery system.

### Claim 11 (depends on 1)

A system according to claim 1 wherein converting each of the multiple representations of the content to respective multicast datagram streams comprises converting segments to a stream of datagrams.

### Claim 12 (depends on 1)

A system according to claim 1 wherein determining a representation of the content to obtain comprises obtaining a representation if the DASM client proxy receives a request for the content from a number of clients that is greater than a threshold.

### Claim 13

A method for delivering content at varying qualities from a server to multiple clients across a network, the content being arranged in representations of differing qualities, each representation comprising segments addressable by client requests, comprising:
at a server side converter:
issuing unicast requests to the server for segments of multiple representations of the content;
converting each of the multiple representations of the content to respective multicast datagram streams, each representation being assigned to a corresponding multicast IP address; and
deliver the multicast datagram streams onto the network;
at a client side converter:
receiving requests for content from the clients;
determining a representation of the content to obtain;
subscribing to the multicast datagram stream that comprises the determined representation of the content;
converting the multicast datagram stream back to segments available to the client by unicast request;
intercepting client requests for content;
intercepting response messages from a server; and
modifying the response messages to be sent to the client by altering an address in the response message so that client requests for content are redirected to the client side converter.

### Claim 14 (depends on 13)

A method according to claim 13, wherein the modifying comprises altering a description in the response message to present only one representation as apparently available to the client.

### Claim 15 (depends on 13)

A method according to claim 13 comprising minimizing perceptible effects of switching between representations by one or more of minimizing the frequency of switching between representations or minimizing the difference in quality of representations when switching between representations.

### Claim 16 (depends on 13)

A method according to claim 13, comprising determining if any segments are missing when switching between multicast datagram streams and retrieving any such missing segments by issuing a unicast request to the server.

### Claim 17 (depends on 13)

A method according to claim 13 comprising determining if any segments reassembled from a multicast datagram stream are incomplete and to retrieve missing portions of such segments.

### Claim 18 (depends on 17)

A method according to claim 17, wherein retrieving the missing portions is by requesting one or more ranges of bytes within the incomplete segment.

### Claim 19 (depends on 13)

A method according to claim 13 wherein converting each of the multiple representations of the content to respective multicast datagram streams comprises converting segments to a stream of datagrams.

### Claim 20 (depends on 13)

A method according to claim 13 wherein determining a representation of the content to obtain comprises obtaining a representation if the client side converter receives a request for the content from a number of clients that is greater than a threshold.

### Claim 21

A method for delivering content at varying qualities from a server to multiple clients across a network, the content being arranged in representations of differing qualities, each representation comprising segments addressable by client requests, comprising:
receiving requests for content from the clients;
determining a representation of the content to obtain;
subscribing to the multicast datagram stream that comprises the determined representation of the content;
converting the multicast datagram stream to segments available to the client by unicast request;
intercepting client requests for content;
intercepting response messages from a server; and
modifying the response messages to be sent to the client by altering an address in the response message so that client requests for content are redirected to the client side converter.
