IP Library › Granted Patent US 11,140,429
Granted Patent B1
US 11,140,429 · App. 16/712,757 · Granted Oct 5, 2021

Dynamic statmux video bandwidth determination

Inventors: Erik Jason Johnson (St. Helens, OR); Trevor Wells (Washougal, WA); Ai Luo (Camas, WA); John Bach (Roswell, GA); Ryan Hegar (Happy Valley, OR)
Assignee: Amazon Technologies, Inc.
H04N21/2662H04N21/2362H04N21/2402H04N21/2665H04N21/44004H04N21/4621H04N21/4622
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,140,429
App. No.
16/712,757
Granted
Oct 5, 2021
Kind
B1
Abstract

Techniques for dynamic video bandwidth determination are described. An exemplary method includes receiving an indication of a desired total bitrate for a multiple program transport stream (MPTS), the MPTS having at least two programs; receiving non-video content from two or more encoders; buffering video content during a determination of available video bandwidth; and determining an amount of the desired total bitrate to be the available video bandwidth by: for each active encoder, determining a non-video bitrate over a first time period for each encoder using a sliding window based on a statistical measurement, summing the determined non-video bitrates for the active encoders to get a total non-video bitrate, subtracting the total non-video bitrate from the desired total bitrate to get an available video bandwidth, and allocating the available video bandwidth amongst the two or more encoders.

Claims (53)

1. A computer-implemented method comprising:

receiving an indication of a desired total bitrate for a multiple program transport stream (MPTS), the MPTS having at least two programs;

receiving non-video content from two or more encoders; and

determining an amount of the desired total bitrate to dedicate to video content by:

initializing a sliding window non-video bitrate tracker per program of the MPTS, the sliding window over a first time period,

for each active encoder,

determining a non-video bitrate over the first time period for each encoder over the first time period using the sliding window non-video bitrate tracker by:

for each second time period, adding to an end of the sliding window non-video bitrate tracker a number of non-video bits in that second time period for the non-video content and sliding the sliding window non-video bitrate tracker by the second time period to remove an oldest non-video bits count in the sliding window non-video bitrate tracker, and

choosing a maximum number of non-video bits in the sliding window non-video bitrate tracker to generate the non-video bitrate for the active encoder,

summing the generated non-video bitrates for the active encoders to get a total non-video bitrate,

subtracting the total non-video bitrate from the desired total bitrate to get an available video bandwidth, and

allocating the available video bandwidth amongst the two or more encoders.

2. The computer-implemented method of claim 1 , further comprising:

buffering video content during the determination of the available video bandwidth.

3. The computer-implemented method of claim 1 , wherein the non-video content comprises encoded audio and encoded text data.

4. A computer-implemented method comprising:

receiving an indication of a desired total bitrate for a multiple program transport stream (MPTS), the MPTS having at least two programs;

receiving non-video content from two or more encoders;

buffering video content during a determination of available video bandwidth; and

determining an amount of the desired total bitrate to be the available video bandwidth by:

for each active encoder,

determining a non-video bitrate over a first time period for each encoder using a sliding window based on a statistical measurement,

summing the determined non-video bitrates for the active encoders to get a total non-video bitrate,

subtracting the total non-video bitrate from the desired total bitrate to get an available video bandwidth, and

allocating the available video bandwidth amongst the two or more encoders.

5. The computer-implemented method of claim 4 , wherein the non-video bitrate includes video overhead data.

6. The computer-implemented method of claim 4 , further comprising:

initializing the sliding window per program of the MPTS with a set total value.

7. The computer-implemented method of claim 4 , wherein a time period is one minute and the sliding window is to track 60 consecutive one-second time periods.

8. The computer-implemented method of claim 4 , wherein the sliding window is an array.

9. The computer-implemented method of claim 4 , wherein the non-video content comprises encoded audio and encoded text data.

10. The computer-implemented method of claim 9 , wherein each program contains video content and the non-video content.

11. The computer-implemented method of claim 4 , wherein encoders that are not active do not factor into the determination of the available video bandwidth.

12. The computer-implemented method of claim 4 , wherein a packet identifier (PID) is used to at least partially distinguish between video content and non-video content.

13. The computer-implemented method of claim 4 , wherein the first time period is calculated using program clock references.

14. The computer-implemented method of claim 4 , wherein allocating the available video bandwidth amongst the two or more encoders includes transmitting rate control information that includes a sequence number, encoder identifier, start and end timestamps, and a bitrate allocation for an associated frame.

15. A system comprising:

storage for audio/visual files implemented by a first one or more electronic devices; and

a media service implemented by a second one or more electronic devices, the media service including instructions that upon execution cause the media service to:

receive an indication of a desired total bitrate for a multiple program transport stream (MPTS), the MPTS having at least two programs;

receive non-video content from two or more encoders;

buffer video content during a determination of available video bandwidth; and

determine an amount of the desired total bitrate to be the available video bandwidth to:

for each active encoder,

determine a non-video bitrate over a first time period for each encoder using a sliding window based on a statistical measurement,

sum the determined non-video bitrates for the active encoders to get a total non-video bitrate,

subtract the total non-video bitrate from the desired total bitrate to get an available video bandwidth, and

allocate the available video bandwidth amongst the two or more encoders.

16. The system of claim 15 , wherein the first time period is calculated using program clock references.

17. The system of claim 15 , wherein the sliding window is an array.

18. The system of claim 15 , wherein the non-video content comprises encoded audio and encoded text data.

19. The system of claim 15 , wherein a packet identifier (PID) is used to at least partially distinguish between video content and non-video content.

20. The system of claim 15 , wherein to allocate the available video bandwidth amongst the two or more encoders includes to transmit rate control information that includes a sequence number, encoder identifier, start and end timestamps, and a bitrate allocation for an associated frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: JOHNSON, ERIK JASON; WELLS, TREVOR; LUO, AI; BACH, JOHN; HEGAR, RYAN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 051527/0603 →
Cited By (1)
US 12,289,503