IP Library Granted Patent US 11,722,719
Granted Patent B2
US 11,722,719 · App. 17/452,150 · Granted Aug 8, 2023

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

Inventors: Rakesh Eluvan (Bangalore, IN); Jayaprakash Ramaraj (Bangalore, IN)
H04N21/2662H04L65/762H04N21/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 11,722,719
App. No.
17/452,150
Granted
Aug 8, 2023
Kind
B2
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 (43)

1. A streaming media server, comprising:

a processor; and

a computer-readable storage medium storing computer-readable code that, when executed by the processor, causes the streaming media server to perform operations, the operations comprising:

establishing, by a processor, static parameters for use in processing encoded segments in response to a load of the processor and an adaptive bitrate (ABR) setting;

recalling the static parameters stored in the computer-readable storage medium, wherein the static parameters include a first load threshold (LOAD MAX ) for the processor;

determining a second load threshold for the processor based on the static parameters recalled from the computer-readable storage medium, wherein the second load threshold of the processor is less than the first load threshold of the processor;

comparing an average load (LOAD AVG ) of the processor to the second load threshold; and

setting a value of a final adaptive bitrate (ABR FINAL_NEW ) in response to determining the LOAD AVG is greater than the second load threshold of the processor.

2. The streaming media server of claim 1 , wherein the computer-readable storage medium is configured to store a plurality of load thresholds of the processor with the load thresholds each less than the LOAD MAX .

3. The streaming media server of claim 2 , wherein the load thresholds each correspond to a settable value for the ABR FINAL_NEW .

4. The streaming media server of claim 2 , wherein the operations further comprise decreasing a number of load thresholds stored on the computer-readable storage medium to reduce complexity in setting the value of the ABR FINAL_NEW .

5. The streaming media server of claim 4 , wherein decreasing the number of load thresholds increases a coarseness of adjustments for the ABR FINAL_NEW .

6. The streaming media server of claim 1 ,

wherein the load thresholds comprise a pair of sub-max thresholds for ABR selection, the pair of sub-max thresholds comprising a first sub-max threshold and a second sub-max threshold, wherein the first sub-max threshold less than the second sub-max threshold.

7. The streaming media server of claim 6 , wherein the operations further comprise determining a value of the second sub-max threshold by applying a percentage to a value of the first sub-max threshold.

8. The streaming media server of claim 6 ,

wherein the second load threshold is assigned a fixed value.

9. The streaming media server of claim 1 , wherein the operations further comprise:

storing a first predetermined threshold less than LOAD MAX ; and

storing a second predetermined threshold less than LOAD MAX and less than the first predetermined threshold; and

increasing a value of a final adaptive bitrate (ABR FINAL ) in response to LOAD AVG being less than the first predetermined threshold and greater than the second predetermined threshold.

10. A method performed by a streaming media server containing a processor and a memory, the method comprising:

after initiating a streaming video session during which the streaming media server encodes segments of a video stream at a final adaptive bitrate (ABR FINAL ), establishing static parameters for use in processing encoded segments;

recalling the static parameters stored in the memory;

determining a first load threshold of the processor and a second load threshold of the processor based the static parameters from the memory; and

setting a value of an initial final bitrate (ABR FINAL_NEW ) in response to a comparison of a running processor average load (LOAD AVG ) to the first load threshold of the processor, wherein the first load threshold is less than a second load threshold of the processor.

11. The method of claim 10 , further comprising:

recalling a plurality of load thresholds with each of the load thresholds being less than a maximum load threshold (LOAD MAX ) of the processor.

12. The method of claim 11 , further comprising:

increasing a number of sub-max thresholds stored in the memory to increase refinement in setting the value of the ABR FINAL_NEW .

13. The method of claim 11 , further comprising:

decreasing a number of sub-max thresholds stored in the memory to reduce a complexity in setting the value of ABR FINAL_NEW .

14. The method of claim 13 , wherein decreasing the number of sub-max thresholds increases a coarseness of adjustments for the value of the ABR FINAL_NEW .

15. The method of claim 11 , wherein the plurality of load thresholds comprises a pair of sub-max thresholds for ABR selection, the pair of sub-max thresholds comprising a first sub-max threshold and a second sub-max threshold, wherein the first sub-max threshold is less than the second sub max threshold.

16. A method performed utilizing a streaming media server, the method comprising:

encoding, by an encoder module running on a processor of the streaming media server, segments of content responsive to a variable bitrate (ABR) selection;

reading static parameters for processing encoded segments of media from a memory in communication with the processor;

determining a first load threshold of the processor based on the static parameters from the memory; and

setting a value of ABR FINAL_NEW in response to a comparison of an average load (LOAD AVG ) of the processor to the first load threshold, wherein the first load threshold is less than a second load threshold.

17. The method of claim 16 , further comprising increasing a number of load thresholds stored in the memory to increase refinement in setting the value of the ABR FINAL_NEW .

18. The method of claim 16 , further comprising decreasing a number of load thresholds stored in the memory to reduce a complexity in setting the value of the ABR FINAL_NEW .

19. The method of claim 18 , wherein the second load threshold is configured as a fixed value.

20. The method of claim 19 , further comprising determining a value of the first load threshold by applying a percentage to the second load threshold.

Assignments (2)
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 Oct 25, 2021
From: ELUVAN, RAKESH; RAMARAJ, JAYAPRAKASH
To: SLING MEDIA PVT LTD.
Reel/Frame 057908/0285 →
Continuity (3)
Continuation 16908345 · Jun 22, 2020
Continuation 16218899 · Dec 13, 2018
Related Publication 20220046304A1 · Feb 10, 2022