# US 8,474,001 B2 · Near real time delivery of variable bit rate media streams

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

- Number: US 8,474,001 B2
- Document ID: US8474001B2
- Status: Granted
- Kind: B2
- Application number: 12/368,782
- Filed: 2009-02-10
- Published: 2010-08-12
- Granted: 2013-06-25
- Earliest claimed: 2009-02-10
- Assignees: Cisco Technology, Inc.
- Applicants: Bruce Albert Thompson; Xiaomei Liu
- Inventors: Bruce Albert Thompson; Xiaomei Liu
- Web page: https://patentgrep.com/patent/US8474001B2

## CPC

- H04N 21/23805: {Controlling the feeding rate to the network, e.g. by controlling the video pump}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/6336: directed to decoder
- H04N 21/6377: directed to server {(one-way streaming services wherein the source is controlled by the destination H04L65/613)}
- H04N 21/643: Communication protocols {(network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP], H04L65/65)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of delivering a variable bit rate (VBR) media stream in near real time includes identifying a selected media asset to be streamed to a media receiver, receiving an available access bandwidth at which the media receiver can receive data, and initiating a session setup for delivery of the selected media asset. The method further includes calculating a delay in decoding a media stream associated with the selected media asset at the media receiver based on the available access bandwidth, and a calculated required minimum transmission rate of a VBR media stream representative of the selected media asset. The method further includes transmitting the selected media asset at the required minimum transmission rate of the VBR media stream and providing the calculated delay to the media receiver such that the media receiver begins decoding the media stream in accordance with the calculated delay.

## Claims

### Claim 1

A method, comprising:
identifying a selected media asset to be streamed to a media receiver;
conducting a first negotiation with the media receiver including (i) initiating a session setup for delivery of the selected media asset, wherein the initiating comprises receiving a bandwidth parameter indicating an available access bandwidth at which the media receiver can receive data and (ii) calculating a delay in decoding a media stream associated with the selected media asset at the media receiver based on the received available access bandwidth of the media receiver, and further based on a calculated required minimum transmission rate of a variable bit rate (VBR) media stream representative of the selected media asset;
transmitting the selected media asset at the calculated required minimum transmission rate of the VBR media stream and providing the calculated delay to the media receiver such that the media receiver begins decoding the VBR media stream in accordance with the calculated delay,
wherein:
a segment transmission rate vs. delay of an asset is calculated, where:
rate≧bits_consumed/(delay+time_passed), wherein:
the time_passed is a program clock reference (PCR) time passed since a start of the segment;
the bits_consumed is a number of bits in the media stream since the start of the segment;
the segment transmission rate calculation is performed for each program clock reference (PCR) point in the VBR media stream and a maximum rate is chosen for the respective segment;
the required minimum transmission rate of the VBR media stream is calculated based on one of the calculated segment transmission rate values;
detecting a stream control operation that changes a current play point of the media asset to a new play point;
in response to detecting the stream control operation conducting a second negotiation with the media receiver comprising the same operations as the first negotiation; and
transmitting the selected media asset from the new play point at a new required minimum transmission rate of the VBR media stream and providing a new calculated delay to the media receiver such that the media receiver begins decoding the VBR media stream at the new play point in accordance with the new calculated delay.

### Claim 2 (depends on 1)

The method of claim 1, wherein:
the initiating of the session further comprises receiving a delay parameter indicating a size of a delay buffer of the media receiver; and
the calculating of the delay is further based on the size of the delay parameter.

### Claim 3 (depends on 2)

The method of claim 2, wherein the delay is provided as a threshold level of the delay buffer.

### Claim 4 (depends on 1)

The method of claim 1, wherein the delay is provided as a period of time.

### Claim 5 (depends on 1)

The method of claim 1, wherein the initiating of the session further comprises:
allocating resources for the session to deliver the selected media asset;
setting up the session between a media asset server and the media receiver; and
providing the media asset server address to the media receiver.

### Claim 6 (depends on 1)

The method of claim 1, wherein a maximum rate value for all segment rate values is chosen as the required minimum transmission rate for the selected asset.

### Claim 7

A method, comprising:
selecting a media asset to be streamed to a media receiver;
performing a first negotiation with a media asset server configured to stream the media asset including (i) sending an available bandwidth parameter indicating a bandwidth at which data of a media stream associated with the media asset can be received by the media receiver and (ii) receiving a delay parameter indicating an amount by which decoding of the media stream is to be delayed by the media receiver, the delay parameter being calculated based on the available bandwidth parameter of the media receiver and a required minimum transmission rate of the media asset;
receiving the media asset via a variable bit rate (VBR) media stream;
decoding the VBR media stream in accordance with the received delay parameter,
wherein the required minimum transmission rate of the VBR media stream is calculated based on segment transmission rate values of segments of the selected asset, where:
rate≧bits_consumed/(delay+time_passed), wherein:
the time_passed is a program clock reference (PCR) timed passed since a start of the segment;
the bits_consumed is a number of bits in the stream since the start of the segment; and
the segment transmission rate calculation is performed for each program clock reference (PCR) point in the VBR media stream and a maximum rate is chosen for the respective segment;
detecting a stream control operation that changes a current play point of the media asset to a new play point;
in response to detecting the stream control operation performing a second negotiation with the media asset server comprising the same operations as the first negotiation; and
thereafter receiving the selected media asset from the new play point at a new required minimum transmission rate of the VBR media stream and receiving a new calculated delay parameter according to which to begin decoding the VBR media stream at the new play point.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
sending a size parameter indicating a size of a delay buffer of the media receiver, wherein the delay parameter is further calculated based on the size parameter.

### Claim 9 (depends on 8)

The method of claim 8, wherein the delay parameter indicates a threshold level of the delay buffer.

### Claim 10 (depends on 7)

The method of claim 7, wherein the delay parameter indicates a period of time.

### Claim 11 (depends on 7)

The method of claim 7, wherein a maximum rate value for all segment rate values is chosen as the required minimum transmission rate for the selected asset.

### Claim 12

A system, comprising:
a media receiver and a media asset server;
the media receiver capable of discovering a media asset server, determining which assets are available for streaming on the media server, selecting an asset on the media asset server to be streamed, and requesting the media asset server to stream the selected asset; and
the media asset server configured to transmit the selected media asset via a variable bit rate (VBR) media stream representative of the selected media asset at a calculated required minimum transmission rate and provide a calculated delay parameter to the media receiver such that the media receiver begins decoding the VBR media stream in accordance with the calculated delay parameter, wherein the calculated required minimum transmission rate and the calculated delay parameter are calculated during a first negotiation between the media receiver and the media asset server
wherein:
the media asset server is further configured to calculate segment transmission rate values, where:
rate≧bits_consumed/(delay+time_passed), wherein:
the time_passed is a program clock reference (PCR) time passed since a start of the segment;
the bits_consumed is a number of bits in the VBR media stream since the start of the segment;
the segment transmission rate calculation is performed for each program clock reference (PCR) point in the VBR media stream and a maximum rate is chosen for the respective segment; and
the required minimum transmission rate of the VBR media stream is calculated based on one of the calculated segment transmission rate values; and
wherein the media asset server is further configured to detect a stream control operation that changes a current play point of the VBR media stream to a new play point and, in response, perform a second negotiation with the media receiver to obtain a new calculated required minimum transmission rate and a new calculated delay parameter; and
thereafter transmit the VBR media stream from the new play point at the new calculated required minimum transmission rate and the new calculated delay parameter such that the media receiver begins decoding the VBR media stream at the new play point in accordance with the new calculated delay parameter.

### Claim 13 (depends on 12)

The system of claim 12, wherein the delay parameter is calculated based on an available access bandwidth of the media receiver and the calculated required minimum transmission rate.

### Claim 14 (depends on 13)

The system of claim 13, wherein the delay parameter is further calculated based on a size of a delay buffer of the media receiver, the delay parameter being a threshold level of the delay buffer.

### Claim 15 (depends on 12)

The system of claim 12, wherein the delay parameter is a period of time.

### Claim 16 (depends on 12)

The system of claim 12, wherein the media asset server is configured to select a maximum rate value for all segment rate values as the required minimum transmission rate for the selected asset.

### Claim 17 (depends on 12)

The system of claim 12, further comprising:
a media navigation server including a media catalog, the media navigation server being configured to receive a request to download a media asset selected from the catalog and identify the media asset to be download to a media receiver; and
a media backoffice system configured to communicate media catalog information to the navigation server and calculate the delay parameter, the media backoffice system comprising:
an embedded session resource manager (ESRM) configured to initiate setup and allocate media resources to setup a media session for delivery of the selected media asset.
