IP Library Granted Patent US 10,097,609
Granted Patent B1
US 10,097,609 · App. 15/200,696 · Granted Oct 9, 2018

Method and system for dynamically adjusting a data rate of a video stream

Inventors: Richard M. Lasher (San Jose, CA); Dana A. Lasher (Morgan Hill, CA); Hank J. Hundemer (Bellevue, KY)
Assignee: Tribune Broadcasting Company, LLC
H04L65/601H04L47/30H04L65/607
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 10,097,609
App. No.
15/200,696
Granted
Oct 9, 2018
Kind
B1
Abstract

In one aspect, an example method for dynamically adjusting a data rate of a video stream includes: (i) generating, by a computing system, a video stream representing video content; and (ii) while generating the video stream: (a) determining, by the computing system, an amount of packets in a memory buffer; (b) determining, by the computing system, a time period since a data rate of the video stream was last adjusted; and (c) using, by the computing system, the determined amount of packets in the memory buffer and the determined time period since the data rate of the video stream was last adjusted as a basis to adjust the data rate of the video stream.

Claims (62)

1. A method comprising:

generating, by a computing system, a video stream representing video content; and

while generating the video stream:

(i) determining, by the computing system, an amount of packets in a memory buffer;

(ii) determining, by the computing system, a time period since a data rate of the video stream was last adjusted;

(iii) determining, by the computing system, from among a group of network connection types, a network connection type of a network connection via which the computing system is transmitting the video stream, wherein each network connection type of the group corresponds with a respective data rate increment that is different from the data rate increments that correspond with the other network connection types of the group;

(iv) selecting by the computing system, the data rate increment that corresponds with the determined network connection type; and

(v) using, by the computing system, the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream.

2. The method of claim 1 , wherein the memory buffer is a data queue of the computing system.

3. The method of claim 1 , wherein using the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream comprises:

making, by the computing system, a first determination that the determined amount of packets in the memory buffer is less than a threshold amount of packets;

making, by the computing system, a second determination that the determined time period since the data rate of the video stream was last adjusted is greater than a threshold time period; and

responsive to making the first and second determinations, increasing, by the computing system, the data rate of the video stream by the selected data rate increment.

4. The method of claim 3 , wherein the threshold amount of packets is a value in a range of 5-15 packets, and wherein the threshold time period is a value in a range of 10-20 seconds.

5. The method of claim 3 ,

wherein determining the network connection type of the network connection via which the computing system is transmitting the video stream comprises determining the network connection type to be a Wi-Fi connection.

6. The method of claim 5 , wherein the selected data rate increment that corresponds to the determined network connection type is a value in a range from 100 kilobits per second to 150 kilobits per second.

7. The method of claim 3 ,

wherein determining the network connection type of the network connection via which the computing system is transmitting the video stream comprises determining the network connection type to be a cellular network connection.

8. The method of claim 7 , wherein the selected data rate increment that corresponds to the determined network connection type is a value in a range from 25 kilobits per second to 75 kilobits per second.

9. The method of claim 1 , wherein using the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream comprises:

making, by the computing system, a first determination that the determined amount of packets in the memory buffer is greater than a threshold amount of packets;

making, by the computing system, a second determination that the determined time period since the data rate of the video stream was last adjusted is greater than a threshold time period; and

responsive to making the first and second determinations, decreasing, by the computing system, the data rate of the video stream by the selected data rate increment.

10. The method of claim 9 , wherein the threshold amount of packets is a value in a range of 20-35 packets, and wherein the threshold time period is a value in a range of 1-10 seconds.

11. The method of claim 9 ,

wherein determining the network connection type of the network connection via which the computing system is transmitting the video stream comprises determining the network connection type to be a Wi-Fi connection.

12. The method of claim 11 , wherein the selected data rate increment that corresponds to the determined network connection type is a value in a range from 100 kilobits per second to 150 kilobits per second.

13. The method of claim 9 ,

wherein determining the network connection type of the network connection via which the computing system is transmitting the video stream comprises determining the network connection type to be a cellular network connection.

14. The method of claim 13 , wherein the selected data rate increment that corresponds to the determined network connection type is a value in a range from 25 kilobits per second to 75 kilobits per second.

15. The method of claim 1 , wherein the computing system is a first computing system, the method further comprising:

while generating the video stream:

(iv) transmitting, by the first computing system, to a second computing system, the video stream, wherein the second computing system is configured for receiving the video stream from the first computing system and for broadcasting the video stream.

16. The method of claim 1 , further comprising:

presenting, by the computing system, via a user interface, an indication of the adjusted data rate.

17. A non-transitory computer readable medium having stored thereon instructions that, upon execution by a processor, cause performance of a set of acts comprising:

generating, by a computing system, a video stream representing video content; and

while generating the video stream:

(i) determining, by the computing system, an amount of packets in a memory buffer;

(ii) determining, by the computing system, a time period since a data rate of the video stream was last adjusted;

(iii) determining, by the computing system, from among a group of network connection types, a network connection type of a network connection via which the computing system is transmitting the video stream, wherein each network connection type of the group corresponds with a respective data rate increment that is different from the data rate increments that correspond with the other network connection types of the group;

(iv) selecting, by the computing system, the data rate increment that corresponds with the determined network connection type; and

(v) using, by the computing system, the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream.

18. The non-transitory computer readable medium of claim 17 , wherein using the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream comprises:

making, by the computing system, a first determination that the determined amount of packets in the memory buffer is less than a threshold amount of packets;

making, by the computing system, a second determination that the determined time period since the data rate of the video stream was last adjusted is greater than a threshold time period; and

responsive to making the first and second determinations, increasing, by the computing system, the data rate of the video stream by the selected data rate increment.

19. The non-transitory computer readable medium of claim 17 , wherein using the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream comprises:

making, by the computing system, a first determination that the determined amount of packets in the memory buffer is greater than a threshold amount of packets;

making, by the computing system, a second determination that the determined time period since the data rate of the video stream was last adjusted is greater than a threshold time period; and

responsive to making the first and second determinations, decreasing, by the computing system, the data rate of the video stream by the selected data rate increment.

20. A computing system comprising:

a memory buffer,

wherein the computing system is configured for performing a set of acts comprising:

generating a video stream representing video content; and

while generating the video stream:

(i) determining an amount of packets in the memory buffer;

(ii) determining a time period since a data rate of the video stream was last adjusted;

(iii) determining, by the computing system, from among a group of network connection types, a network connection type of a network connection via which the computing system is transmitting the video stream, wherein each network connection type of the group corresponds with a respective data rate increment that is different from the data rate increments that correspond with the other network connection types of the group;

(iv) selecting, by the computing system, the data rate increment that corresponds with the determined network connection type; and

(iii) using the determined amount of packets in the memory buffer, the determined time period since the data rate of the video stream was last adjusted, and the selected data rate increment as a basis to adjust the data rate of the video stream.

Assignments (6)
RELEASE - REEL/FRAME 048783/0537 Recorded Sep 24, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: TRIBUNE BROADCASTING COMPANY, LLC
Reel/Frame 050473/0797 →
PARTIAL RELEASE - REEL/FRAME 039667/0565 Recorded Sep 24, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: TRIBUNE BROADCASTING COMPANY, LLC
Reel/Frame 050474/0975 →
SECURITY AGREEMENT Recorded Sep 19, 2019
From: CHICAGOLAND TELEVISION NEWS, INC.; KPLR, INC.; KSTU, LLC; KSWB, LLC; KTLA, LLC; KTVI, LLC; KWGN, LLC; TRIBUNE BROADCASTING COMPANY, LLC; TRIBUNE BROADCASTING DENVER, LLC; TRIBUNE BROADCASTING FORT SMITH, LLC; TRIBUNE ENTERTAINMENT COMPANY, LLC; TRIBUNE MEDIA COMPANY; TRIBUNE TELEVISION NEW ORLEANS, INC.; WDAF LICENSE, INC.; WDCW, LLC; WGHP, LLC; WGN CONTINENTAL BROADCASTING COMPANY, LLC; WHNT, LLC; WJW TELEVISION, LLC; WNEP, LLC; WPIX, LLC; WQAD, LLC; WREG, LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 050438/0004 →
SECURITY INTEREST Recorded Apr 3, 2019
From: TRIBUNE BROADCASTING COMPANY, LLC
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 048783/0537 →
SECURITY AGREEMENT Recorded Aug 12, 2016
From: GRACENOTE, INC.; CASTTV, INC.; TRIBUNE BROADCASTING COMPANY, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039667/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2016
From: LASHER, RICHARD M.; LASHER, DANA A.; HUNDEMER, HANK J.
To: TRIBUNE BROADCASTING COMPANY, LLC
Reel/Frame 039066/0267 →