IP Library Granted Patent US 7,613,112
Granted Patent B2
US 7,613,112 · App. 11/167,287 · Granted Nov 3, 2009

Optimizing playback startup time of bursty real-time streams

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 7,613,112
App. No.
11/167,287
Granted
Nov 3, 2009
Kind
B2
Abstract

Provided are apparatuses and methods in a digital broadcast transmission system for optimizing the buffering time of data streams prior to data consumption of playback. The optimal buffering time is calculated based on parameters from the server. The parameters may include the burst interval, buffering delay, the average size of data bursts, the amount of data in the buffer, the earliest timestamp and/or the latest timestamp.

Claims (53)

1. A method comprising:

detecting a change in an amount of received data stored in a buffer;

receiving a first value indicating an average data size of a data burst;

receiving a second value indicating a buffering delay, a third value indicating the amount of received data in the buffer, and a fourth value indicating a burst interval of data bursts; and

determining a buffering time based on the first value, the second value, the third value, and the fourth value by setting the buffering time equal to the second value+(((the first value−the third value)/first value)*the fourth value); and

consuming the received data only after the buffering time has elapsed.

2. The method of claim 1 further comprising:

determining an elapsed time, the elapsed time being the difference between a current time and a time the change in the amount of received data stored in the buffer was detected, wherein determining the buffering time comprises setting the buffering time equal to the second value+(((first value−third value)/first value)*the fourth value)−the elapsed time.

3. The method of claim 1 further comprising:

receiving a fifth value indicating a second buffering time; and

continuing consuming the data if the buffering time is greater than the second buffering time, otherwise:

determining a period of time for suspending consuming the data;

suspending consuming the data for the period of time; and

resuming the consuming the data after the period of time elapses.

4. The method of claim 3 wherein the period of time for suspending consuming the data is equal to the second buffering time minus the buffering time.

5. The method of claim 3 wherein the period of time for suspending consuming the data is equal to the second buffering time and a buffering delay.

6. A method comprising:

detecting a change in an amount of received data stored in a buffer;

receiving a first value indicating an earliest timestamp corresponding to the received data stored in the buffer, wherein the received data includes corresponding timestamp information including the earliest timestamp and a latest timestamp;

receiving a second value indicating a buffering delay and a third value indicating the burst interval and a fourth value indicating the latest timestamp;

determining a buffering time by setting the buffering time equal to the second value+third value−(the fourth value−the first value); and

consuming the received data only after the buffering time has elapsed.

7. The method of claim 6 further comprising:

determining an elapsed time, the elapsed time being the difference between a current time and a time in which the change in the amount of received data stored in the buffer was detected; and

wherein determining the buffering time includes setting the buffering time equal to the second value+the third value−(the fourth value−the first value)−the elapsed time.

8. An apparatus comprising:

an interface configured to receive one or more inputs for indicating a plurality of parameters, at least one of the parameters indicating the amount of data in a buffer;

a timer; and

one or more processors, configured to perform:

storing a start time value if the timer is off, otherwise turning the timer off;

calculating a buffering time based on the plurality of parameters by setting the buffering time equal to the buffering delay+((the average amount of data in a data burst−the amount of data in the buffer)/the average amount of data in a data burst)*the burst interval;

turning on the timer; and

receiving data from the buffer only after the buffering time has elapsed.

9. The apparatus of claim 8 , wherein the one or more processors are further configured to perform before the receiving data from the buffer:

turning the timer off after at least a portion of a subsequent burst of data is stored in the buffer; and

calculating a timer value, the timer value being the amount of time for waiting before receiving data from the buffer,

wherein calculating the buffering time includes setting the buffering time equal to the amount of time indicated by the timer value, and

wherein the timer value is equal to (the buffering delay+((the average amount of data in a data burst−the amount of data in the buffer)/the average amount of data in a data burst)*the burst interval)−an elapsed time, the elapsed time being equal to a current time minus the stored start time.

10. An apparatus comprising:

an interface configured to receive one or more inputs for indicating a first parameter indicating an earliest timestamp and a second parameter indicating a latest timestamp;

a timer;

one or more processors, configured to perform:

storing a start time value if the timer is off, otherwise turning the timer off;

calculating a buffering time based on the first parameter and the second parameter by setting the buffering time equal to a buffering delay+burst interval−(the second parameter−the first parameter);

turning on the timer; and

receiving data from the buffer only after the buffering time has elapsed.

11. The apparatus of claim 10 wherein the one or more processors are further configured to turn the timer off after at least a portion of a subsequent burst of data is stored in the buffer, wherein calculating the buffering time includes setting the buffering time equal to the buffering delay+burst interval−(the second parameter−the first parameter)−an elapsed time, the elapsed time being equal to a current time minus the stored start time.

12. A computer-readable storage medium encoded with instructions that, when executed by a computer, perform:

detecting a change in an amount of received data stored in a buffer;

receiving a first value indicating one of an average data size of a data burst;

receiving a second value indicating a buffering delay, a third value indicating the amount of received data in the buffer, and a fourth value indicating a burst interval of data bursts; and

determining a buffering time based on the first value, the second value, the third value, and the fourth value by setting the buffering time equal to the second value+(((the first value−the third value)/first value)*the fourth value); and

consuming the received data only after the buffering time has elapsed.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2015
From: NOKIA CORPORATION
To: NOKIA TECHNOLOGIES OY
Reel/Frame 035581/0816 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2005
From: JYSKE, EERO; KARRAS, TIMO
To: NOKIA CORPORATION
Reel/Frame 016947/0947 →