IP Library Granted Patent US 8,255,551
Granted Patent B2
US 8,255,551 · App. 13/194,761 · Granted Aug 28, 2012

Adaptive bitrate management for streaming media over packet networks

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,255,551
App. No.
13/194,761
Granted
Aug 28, 2012
Kind
B2
Abstract

A method including providing pseudo-streaming media data to a terminal; receiving a transport control protocol (TCP) acknowledgement from the terminal; estimating one or more network conditions of a network based at least in part on the TCP acknowledgement; determining an optimal session bitrate based on the estimated one or more network conditions; and providing pseudo-streaming media data to the terminal based on the optimal session bitrate.

Claims (99)

1. A method comprising:

providing pseudo-streaming media data to a terminal, wherein the provided pseudo streaming media data includes a sequence number and corresponds to a timestamp;

causing a table to store an association between the sequence number and the timestamp;

receiving a transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time;

acquiring the timestamp from the table using the sequence number of the TCP acknowledgement;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

establishing stability criterion based on the estimated one or more network conditions;

determining the stability of the network;

determining an optimal session bitrate based on the estimated one or more network conditions;

providing the optimal session bitrate based on the stability determination; and

providing pseudo-streaming media data to the terminal according to the optimal session bitrate.

2. The method of claim 1 , wherein establishing stability criterion further comprises comparing the media time in transit and a round trip time estimate for assisting with the stability determination.

3. The method of claim 1 , wherein establishing stability criterion further comprises comparing a bitrate received with a current bitrate session.

4. The method of claim 1 , further comprising maintaining or incrementally increasing a current bitrate when the stability of the network is considered normal.

5. The method of claim 1 , further comprising adjusting a current bitrate when the stability of the network is not normal.

6. A method comprising:

providing pseudo-streaming media data to a terminal, wherein the provided pseudo streaming media data includes a sequence number and corresponds to a timestamp;

causing a table to store an association between the sequence number and the timestamp;

receiving a transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time;

acquiring the timestamp from the table using the sequence number of the TCP acknowledgement;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

determining an optimal session bitrate based on the estimated one or more network conditions;

allocating the optimal session bitrate between audio media data and video media data to produce an optimal audio bitrate and an optimal video bitrate;

encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; and

providing pseudo-streaming media data to the terminal according to the optimal session bitrate.

7. The method of claim 6 , wherein providing media data to the terminal includes providing the encoded audio media data and the encoded video media data based on the optimal audio bitrate and the optimal video bitrate.

8. A method comprising:

receiving a transport control protocol (TCP) acknowledgement from a terminal based on the terminal receiving pseudo-streaming media data, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time;

acquiring a timestamp from a table using the sequence number of the TCP acknowledgement wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

determining the stability of the network based on the estimations, wherein determining the stability of the network is based on establishing stability criterion, and establishing stability criterion further comprises comparing the media time in transit and a round trip time estimate for assisting with the stability determination;

controlling a bitrate based on the determination; and

providing the bitrate to an encoder for transmitting pseudo-streaming media data according to the provided bitrate.

9. The method of claim 8 , wherein establishing stability criterion further comprises comparing a bitrate received with a current bitrate session.

10. The method of claim 8 , wherein controlling the bitrate includes maintaining or incrementally increasing a current bitrate when the stability of the network is considered normal.

11. The method of claim 8 , wherein controlling the bitrate includes adjusting a current bitrate when the stability of the network is considered not normal.

12. A method comprising:

receiving an optimal session bitrate based on information provided by a transport control protocol (TCP) acknowledgement;

allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, wherein allocating the optimal session bitrate between audio and video media involves allocating a higher bitrate for either the audio media or the video media over the other;

encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate;

multiplexing the encoded audio and video media data; and

providing the multiplexed audio and video data for transmittal to a terminal.

13. The method of claim 12 , further comprising dropping frames of the encoded video data.

14. A system comprising:

a terminal, having a media player, configured to receive pseudo-streaming media data and provide a transport control protocol (TCP) acknowledgement based on the received pseudo-streaming media data, wherein the TCP acknowledgement includes a sequence number and corresponds to a certain time; and

an adaptive bitrate manager configured to:

receive the TCP acknowledgement,

acquire a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal,

estimate one or more network conditions using a comparison between the certain time and the acquired timestamp,

determine an optimal session bitrate based on the estimated one or more network conditions, and

provide pseudo-streaming media data to the terminal based on the optimal session bitrate;

wherein the adaptive bitrate manager further comprises:

an adaptive bitrate controller for receiving the receiver report and calculating an optimal session bitrate, and

an encoder for obtaining the optimal session bitrate, allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, encoding audio and video data according to the optimal audio bitrate and the optimal video bitrate, and providing the encoded audio and video data for transmittal to the terminal.

15. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:

providing pseudo-streaming media data to a terminal, wherein the provided pseudo-streaming media data includes a sequence number and corresponds to a timestamp;

causing a table to store an association between the sequence number and the timestamp;

receiving the transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time;

acquiring the timestamp from the table using the sequence number of the TCP acknowledgement;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

determining an optimal session bitrate based on the estimated one or more network conditions;

allocating the optimal session bitrate between audio media data and video media data to produce an optimal audio bitrate and an optimal video bitrate;

encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; and

providing pseudo-streaming media data to the terminal according to the optimal session bitrate.

16. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:

receiving a transport control protocol (TCP) acknowledgement from a terminal based on the terminal receiving pseudo-streaming media data, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time;

acquiring a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

determining the stability of the network based on the estimations, wherein determining the stability of the network is based on establishing stability criterion, and establishing stability criterion further comprises comparing the media time in transit and a round trip time estimate for assisting with the stability determination;

controlling a bitrate based on the determination; and

providing the bitrate to an encoder for transmitting pseudo-streaming media data according to the provided bitrate.

17. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing an optimal session bitrate, the method comprising:

receiving the optimal session bitrate based on information provided by a transport control protocol (TCP) acknowledgement;

allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, wherein allocating the optimal session bitrate between audio and video media involves allocating a higher bitrate for either the audio media or the video media over the other;

encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate;

multiplexing the encoded audio and video media data; and

providing the multiplexed audio and video data for transmittal to a terminal.

18. A terminal comprising:

a buffer that receives pseudo-streaming media data packets transmitted by an adaptive bitrate manager over a network; and

a media player that receives the pseudo-streaming media data packets and provides a transport control protocol (TCP) acknowledgement to the adaptive bitrate manager, where the adaptive bitrate manager is configured to:

receive the transport control protocol (TCP) acknowledgement, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time,

acquire a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal,

estimate one or more network conditions using a comparison between the certain time and the acquired timestamp,

determine an optimal session bitrate based on the estimated one or more network conditions, and

provide pseudo-streaming media data to the buffer according to the optimal session bitrate;

wherein the adaptive bitrate manager further comprises:

an adaptive bitrate controller for receiving the receiver report and calculating an optimal session bitrate, and

an encoder for obtaining the optimal session bitrate, allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, encoding audio and video data according to the optimal audio bitrate and the optimal video bitrate, and providing the encoded audio and video data for transmittal to the terminal.

19. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:

providing pseudo-streaming media data to a terminal, wherein the provided pseudo-streaming media data includes a sequence number and corresponds to a timestamp;

causing a table to store an association between the sequence number and the timestamp;

receiving the transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time;

acquiring the timestamp from the table using the sequence number of the TCP acknowledgement;

estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;

establishing stability criterion based on the estimated one or more network conditions;

determining the stability of the network;

determining an optimal session bitrate based on the estimated one or more network conditions;

providing the optimal session bitrate based on the stability determination; and

providing pseudo-streaming media data to the terminal according to the optimal session bitrate.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2023
From: BYTEMOBILE INNOVATIONS, LLC
To: OPTIMORPHIX, INC.
Reel/Frame 064020/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2022
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE INNOVATIONS, LLC
Reel/Frame 059087/0052 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 037289/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2015
From: CITRIX SYSTEMS, INC.
To: BYTEMOBILE, INC.
Reel/Frame 035440/0599 →
NUNC PRO TUNC ASSIGNMENT Recorded Dec 6, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031730/0322 →
THIS SUBMISSION IS TO CORRECT THE SPELLING OF THE RECEIVING PARTY (ASSIGNEE)'S STREET NAME IN THE ORIGINAL COVER SHEET RECORDED AT REEL/FRAME 030609/0389. THE ADDRESS NAME SHOULD BE WEST CYPRESS CREEK ROAD. Recorded Sep 17, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 031287/0874 →
MERGER Recorded Jun 13, 2013
From: BYTEMOBILE, INC.
To: CITRIX SYSTEMS, INC.
Reel/Frame 030609/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2013
From: MELNYK, MIGUEL; STAVRAKOS, NICHOLAS J.; PENNER, ANDREW; TIDEMANN, JEREMY; BREG, FABIAN
To: BYTEMOBILE, INC.
Reel/Frame 030527/0790 →