IP Library Granted Patent US 8,769,141
Granted Patent B2
US 8,769,141 · App. 13/596,916 · Granted Jul 1, 2014

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,769,141
App. No.
13/596,916
Granted
Jul 1, 2014
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 (104)

1. A method comprising:

providing pseudo-streaming media data for transmission to a terminal, wherein the pseudo-streaming media data includes one or more sequence numbers and corresponds to one or more timestamps;

causing a table to store an association between the one or more sequence numbers and the one or more timestamps;

receiving one or more transport control protocol (TCP) acknowledgments from a terminal, wherein a TCP acknowledgment of the one or more received TCP acknowledgments includes a sequence number of the one or more sequence numbers 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 media network based at least in part on a comparison between the certain time and the acquired timestamp;

determining an optimal audio bitrate and an optimal video bitrate using the estimated one or more network conditions;

receiving media data that includes audio media data and video media data;

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal video bitrate; and

providing the encoded audio media data and the encoded video media data for transmission to the terminal.

2. The method of claim 1 , further comprising dropping frames of the encoded video data.

3. A method comprising:

receiving media data that includes audio media data and video media data;

receiving one or more transport control protocol (TCP) acknowledgments from a terminal;

estimating one or more network conditions of a media network using the one or more TCP acknowledgments;

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

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

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal video bitrate; and

providing the encoded audio media data and the encoded video media data for transmission to the terminal.

4. The method of claim 3 , wherein allocating the optimal session bitrate between the audio media data and the video media data is based on one or more metrics selected from a group including a predetermined allocation, a user preference, an optimal performance data, privileging one type of media data over the other, and an amount of audio and video media data to be provided.

5. The method of claim 3 , wherein determining the optimal session bitrate further comprises:

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

determining the stability of the media network; and

providing the optimal session bitrate based on the stability determination.

6. The method of claim 5 , wherein establishing stability criterion further comprises:

comparing a media time in transit and a round trip time estimate for assisting with the stability determination.

7. The method of claim 5 , wherein establishing stability criterion further comprises:

comparing a bitrate received with a current bitrate session.

8. The method of claim 5 , further comprising:

if the stability of the media network is considered normal, maintaining or incrementally increasing a current bitrate; and

if the stability of the media network is not normal, adjusting the current bitrate.

9. A terminal including one or more processors and a memory, the terminal comprising:

a buffer configured to receive pseudo-streaming media data packets provided by an adaptive bitrate manager over a network; and

a media player configured to receive pseudo-streaming media packets and to provide one or more transport control protocol (TCP) acknowledgments to the adaptive bitrate manager, wherein the adaptive bitrate manager is configured to provide the pseudo-streaming media packets to the terminal, wherein the pseudo-streaming media data includes one or more sequence numbers and corresponds to one or more timestamps, to cause a table to store an association between the one or more sequence numbers and the one or more timestamps, to receive the one or more TCP acknowledgments, wherein a TCP acknowledgment of the one or more received TCP acknowledgments includes a sequence number of the one or more sequence numbers and corresponds to a certain time, to acquire the timestamp from the table using the sequence number of the TCP acknowledgement, to estimate one or more network conditions of the media network based at least in part on a comparison between the certain time and the acquired timestamp, to determine an optimal audio bitrate and an optimal video bitrate using the estimated one or more network conditions, to receive media data that includes audio media data and video media data, to encode the audio media data using the optimal audio bitrate, to encode the video media data using the optimal video bitrate, and to provide the encoded audio media data and the encoded video media data as media data packets to the terminal.

10. A system including one or more processors and a memory, the system comprising:

an adaptive bitrate manager configured to estimate one or more network conditions of a media network between the adaptive bitrate manager and a terminal using one or more received TCP acknowledgments and to acquire media data that includes audio media data and video media data, the adaptive bitrate manager further comprising:

an adaptive bitrate controller configured to determine an optimal session bitrate using the estimated one or more network conditions,

a bitrate splitter configured to acquire the optimal session bitrate and allocate the optimal session bitrate between the audio media data and the video media data to produce an optimal audio bitrate and an optimal video bitrate, and

one or more encoders configured to:

encode the audio media data using the optimal audio bitrate,

encode the video media data using the optimal video bitrate, and

provide the encoded audio media data and the encoded video media data for transmission to the terminal.

11. A system including one or more processors and a memory, the system comprising:

an adaptive bitrate manager configured to provide pseudo-streaming media data for transmission to a terminal, wherein the provided pseudo-streaming media data includes one or more sequence numbers and corresponds to one or more timestamps, to cause a table to store an association between the one or more sequence numbers and the one or more timestamps, to receive one or more TCP acknowledgments, wherein a TCP acknowledgment of the one or more received TCP acknowledgments includes a sequence number of the one or more sequence numbers and corresponds to a certain time, to acquire the timestamp from the table using the sequence number of the TCP acknowledgment, to estimate one or more network conditions of a media network based at least in part on a comparison between the certain time and the acquired timestamp, and to acquire media data that includes audio media data and video media data, the adaptive bitrate manager further comprising:

a bitrate splitter configured to determine an optimal audio bitrate and an optimal video bitrate using the estimated one or more network conditions, and

one or more encoders configured to:

encode the audio media data using the optimal audio bitrate,

encode the video media data using the optimal video bitrate, and

provide the encoded audio media data and the encoded video media data for transmission to the terminal.

12. A non-transitory computer readable medium storing instructions that, when executed by an adaptive bitrate manager including one or more processors, cause the adaptive bitrate manager to perform a method for processing one or more TCP acknowledgments, the method comprising:

providing pseudo-streaming media data for transmission to a terminal, wherein the provided pseudo-streaming media data includes one or more sequence numbers and corresponds to one or more timestamps;

causing a table to store an association between the one or more sequence numbers and the one or more timestamps;

receiving one or more transport control protocol (TCP) acknowledgments from a terminal, wherein a TCP acknowledgment of the one or more received TCP acknowledgments includes a sequence number of the one or more sequence numbers 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 media network based at least in part on a comparison between the certain time and the acquired timestamp;

determining an optimal audio bitrate and an optimal video bitrate using the estimated one or more network conditions;

receiving media data that includes audio media data and video media data;

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal video bitrate; and

providing the encoded audio media data and the encoded video media data for transmission to the terminal.

13. The non-transitory computer readable medium of claim 12 , further comprising instructions that, when executed by an adaptive bitrate manager including one or more processors, cause the adaptive bitrate manager to perform:

dropping frames of the encoded video data.

14. A non-transitory computer readable medium storing instructions that, when executed by an adaptive bitrate manager including one or more processors, cause the adaptive bitrate manager to perform a method for processing one or more TCP acknowledgments, the method comprising:

receiving media data that includes audio media data and video media data:

receiving one or more transport control protocol (TCP) acknowledgments from a terminal;

estimating one or more network conditions of a media network using the one or more TCP acknowledgments;

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

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

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal video bitrate; and

providing the encoded audio media data and the encoded video media data for transmission to the terminal.

15. The non-transitory computer readable medium of claim 14 , wherein allocating the optimal session bitrate between the audio media data and the video media data is based on one or more metrics selected from a group including a predetermined allocation, a user preference, an optimal performance data, privileging one type of media data over the other, and an amount of audio and video media data to be provided.

16. The non-transitory computer readable medium of claim 14 , wherein determining the optimal session bitrate further comprises:

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

determining the stability of the media network; and

providing the optimal session bitrate based on the stability determination.

17. The non-transitory computer readable medium of claim 16 , wherein establishing stability criterion further comprises:

comparing a media time in transit and a round trip time estimate for assisting with the stability determination.

18. The non-transitory computer readable medium of claim 16 , wherein establishing stability criterion further comprises:

comparing a bitrate received with a current bitrate session.

19. The non-transitory computer readable medium of claim 16 , further comprising:

if the stability of the media network is considered normal, maintaining or incrementally increasing a current bitrate; and

if the stability of the media network is not normal, adjusting the current bitrate.

20. A method comprising:

receiving media data that includes audio media data and video media data;

receiving an optimal session bitrate;

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

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal video bitrate;

multiplexing the encoded audio media data and the encoded video media data; and

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

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

receiving media data that includes audio media data and video media data;

receiving the optimal session bitrate;

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

encoding the audio media data using the optimal audio bitrate;

encoding the video media data using the optimal audio bitrate and the optimal video bitrate;

multiplexing the encoded audio media data and the encoded video media data; and

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

22. A terminal including one or more processors and a memory, the terminal comprising:

a buffer configured to receive pseudo-streaming media data packets provided by an adaptive bitrate manager over a network; and

a media player configured to receive pseudo-streaming media packets and to provide one or more transport control protocol (TCP) acknowledgments to the adaptive bitrate manager, wherein the adaptive bitrate manager is configured to receive media data that includes audio media data and video media data, to receive the one or more TCP acknowledgments, to estimate one or more network conditions of the media network using the one or more TCP acknowledgments, to determine an optimal session bitrate using the estimated one or more network conditions, to allocate the optimal session bitrate between the audio media data and the video media data to produce an optimal audio bitrate and an optimal video bitrate, to encode the audio media data using the optimal audio bitrate, to encode the video media data using the optimal video bitrate, and to provide the encoded audio media data and the encoded video media data for transmission as media data packets to the terminal.

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 →