IP Library › Granted Patent US 8,474,001
Granted Patent B2
US 8,474,001 · App. 12/368,782 · Granted Jun 25, 2013

Near real time delivery of variable bit rate media streams

Inventors: Bruce Albert Thompson (Saratoga, CA); Xiaomei Liu (San Jose, CA)
Assignee: Cisco Technology, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,474,001
App. No.
12/368,782
Granted
Jun 25, 2013
Kind
B2
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 (63)

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.

2. 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.

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

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

5. 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.

6. 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.

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.

8. 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.

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

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

11. 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.

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.

13. 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.

14. 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.

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

16. 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.

17. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2009
From: THOMPSON, BRUCE ALBERT; LIU, XIAOMEI
To: CISCO TECHNOLOGY, INC.
Reel/Frame 022239/0690 →
Continuity (1)
Related Publication 20100202509A1 · Aug 12, 2010