IP Library Granted Patent US 10,708,642
Granted Patent B1
US 10,708,642 · App. 16/218,899 · Granted Jul 7, 2020

Systems, methods, and devices for optimizing streaming bitrate based on variations in processor load

Inventors: Rakesh Eluvan (Bangalore, IN); Jayaprakash Ramaraj (Bangalore, IN)
Assignee: SLING MEDIA PVT LTD
H04N21/2662H04L65/602H04N21/23406H04N21/8456G06F9/505
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,708,642
App. No.
16/218,899
Granted
Jul 7, 2020
Kind
B1
Abstract

Systems, methods, and devices are provided for optimizing streaming bitrate in response to variations in processor load. In various embodiments, a streaming media server includes a processor and a computer-readable storage medium, which stores computer-readable code or instructions. When executed by the processor, the computer-readable code causes the server to encode segments of a video stream at a final variable bitrate (ABR FINAL ). The encoded segments are transmitted from the server, over a network, and to a first client media receiver for presentation to an end user. The steps of encoding and transmitting are repeated during a streaming video session with the first client media receiver, while varying a value of ABR FINAL based, at least in part, upon a running average of a processor load placed on the processor (LOAD AVG ).

Claims (45)

1. A streaming media server, comprising:

a processor; and

a computer-readable storage medium that stores a critical processor load threshold (LOAD MAX ) and a predetermined bitrate decrease function, and further storing computer-readable code that, when executed by the processor, causes the streaming media server to perform the operations of:

encoding segments of a video stream at a final variable bitrate (ABR FINAL );

transmitting encoded segments over a network and to a first client media receiver for presentation to an end user;

repeating the steps of encoding and transmitting during a streaming video session with the first client media receiver, while varying a value of ABR FINAL based, at least in part, upon a running average of a processor load placed on the processor (LOAD AVG ); and

decreasing the value of ABR FINAL when LOAD AVG exceeds LOAD MAX in accordance with the predetermined bitrate decrease function.

2. The streaming media server of claim 1 wherein the predetermined bitrate decrease function instructs the processor to assign a new value to ABR FINAL that is X percentage of a previous value of ABR FINAL ;

wherein X is greater than 0 percent and less than 100 percent.

3. A streaming media server, comprising:

a processor; and

a computer-readable storage medium that stores a first predetermined threshold less than LOAD MAX ; and a second predetermined threshold less than LOAD MAX and less than the first predetermined threshold, and further storing computer-readable code that, when executed by the processor, causes the streaming media server to perform the operations of:

encoding segments of a video stream at a final variable bitrate (ABR FINAL );

transmitting encoded segments over a network and to a first client media receiver for presentation to an end user;

repeating the steps of encoding and transmitting during a streaming video session with the first client media receiver, while varying a value of ABR FINAL based, at least in part, upon a running average of a processor load placed on the processor (LOAD AVG ); and

increasing the value of ABR FINAL when LOAD AVG is less than the first predetermined threshold, but greater than the second predetermined threshold.

4. The streaming media server of claim 3 wherein the computer-readable storage medium further stores a predetermined bitrate decrease function; and

wherein, when the computer-readable code is executed by the processor, the streaming media server further performs the operation of increasing the value of ABR FINAL in accordance with the predetermined bitrate increase function when LOAD AVG is less than the first predetermined threshold, but greater than the second predetermined threshold.

5. The streaming media server of claim 3 wherein the predetermined bitrate increase function instructs the processor to assign a new value to ABR FINAL that is X kilobits per second (kbps) greater than previous value of ABR FINAL ;

wherein X is greater than 50 kbps and less than 200 kbps.

6. The streaming media server of claim 3 wherein, when the computer-readable code is executed by the processor, the streaming media server further performs the operation of leaving the value of ABR FINAL unchanged when LOAD AVG is less than LOAD MAX , but greater the first predetermined threshold.

7. A streaming media server, comprising:

a processor; and

a computer-readable storage medium that stores a predetermined threshold less than LOAD MAX , and further storing computer-readable code that when executed by the processor, causes the streaming media server to perform the operations of:

encoding segments of a video stream at a final variable bitrate (ABR FINAL );

transmitting the encoded segments over a network and to a first client media receiver for presentation to an end user;

repeating the steps of encoding and transmitting during a streaming video session with the first client media receiver, while varying a value of ABR FINAL based, at least in part, upon a running average of a processor load placed on the processor (LOAD AVG );

determining a default value for the final variable bitrate; and

setting the value of ABR FINAL at the default value when LOAD AVG is less than the predetermined threshold.

8. The streaming media server of claim 7 wherein default value for the final variable bitrate comprises a buffer-based bitrate determined based, at least in part, on a buffer occupancy parameter of a transfer buffer contained in the computer-readable storage medium.

9. The streaming media server of claim 7 wherein default value for the final variable bitrate comprises a client-requested bitrate determined utilizing data transmitted from the first client media receiver, over the network, and to the streaming media server, over the network.

10. The streaming media server of claim 7 wherein the default value for the final variable bitrate is calculated independently of the processor load placed on the processor of the streaming media server.

11. A method performed utilizing a streaming media server with a memory that stores a first predetermined threshold less than LOAD MAX and a second predetermined threshold less than the first predetermined threshold, the method comprising:

utilizing an encoder module contained in the streaming media server, encoding segments of a video stream at a final variable bitrate (ABR FINAL );

transmitting encoded segments of the video stream from the streaming media server, over a network, and to a first client media receiver for presentation to an end user;

repeating the steps of encoding and transmitting, while varying a value of ABR FINAL based, at least in part, on a running average of a processor load placed on the processor (LOAD AVG ); and

increasing the value of ABR FINAL when LOAD AVG is less than the first predetermined threshold, but greater than the second predetermined threshold.

12. The method of claim 11 further comprising decreasing the value of ABR FINAL when LOAD AVG exceeds a critical processor load threshold (LOAD MAX ) stored in a memory of the streaming media server.

13. The method of claim 11 , further comprising:

determining a default value for the final variable bitrate; and

setting the value of ABR FINAL at the default value when LOAD AVG is less than the first predetermined threshold.

14. The method of claim 13 further comprising:

determining the default value for the final variable bitrate based upon a fill rate of a transfer buffer contained in the streaming media server.

15. The method of claim 13 further comprising:

determining the default value for the final variable bitrate based upon a capacity of a transfer buffer contained in the streaming media server.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2024
From: ELUVAN, RAKESH; RAMARAJ, JAYAPRAKASH
To: SLING MEDIA PVT LTD.
Reel/Frame 069185/0703 →
CHANGE OF NAME Recorded Sep 1, 2022
From: SLING MEDIA PVT. LTD.
To: DISH NETWORK TECHNOLOGIES INDIA PRIVATE LIMITED
Reel/Frame 061365/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2018
From: ELUVAN, RAKESH; RAMARAJ, JAYAPRAKASH
To: SLING MEDIA PVT LTD.
Reel/Frame 048962/0872 →