IP Library › Granted Patent US 12,192,496
Granted Patent B1
US 12,192,496 · App. 17/956,483 · Granted Jan 7, 2025

Channel fitting for media processing

Inventors: Ryan Hegar (Happy Valley, OR); Eric Woodruff (Portland, OR); David William Cardwell (Portland, OR); Brian Enigma (Portland, OR); Karthik Bangalore Shamsunder (Portland, OR); Darin J. Klaas (Beaverton, OR)
Assignee: Amazon Technologies, Inc.
H04N19/40H04N21/23418H04N21/2187
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 12,192,496
App. No.
17/956,483
Granted
Jan 7, 2025
Kind
B1
Abstract

Systems and methods in provide approaches for channel fitting to determine a particular number of resources, such as cores, that may be used for one or more processing jobs for a particular input channel. A given channel may be evaluated to determine performance affecting parameters and those parameters may be evaluated against previously known hardware configurations or against a historical heuristic dataset. A configuration for the channel may be selected where particular cores of a set of resources are assigned to the channel to perform one or more operations, such as transcoding operations. As a result, empirically determined or historical data may be used to efficiently allocate resources for different transcoding operations to provide both predictable performance and high utilization.

Claims (72)

1. A computer-implemented method, comprising:

receiving media content including one or more transcoding parameters;

determining, from the one or more transcoding parameters, a set of performance affecting parameters associated with transcoding operations;

generating a transcoding signature corresponding to at least the set of performance affecting parameters;

comparing the transcoding signature against a set of historical transcoding signatures corresponding to historical sets of performance affecting parameters;

determining a difference between the transcoding signature and individual historical signatures in the set of historical signatures exceeds a threshold;

determining, based at least in part on a heuristic database, a processing configuration for the media content;

assigning the media content to a set of cores of one or more resources based, at least in part on the processing configuration;

executing a transcoding operation for the media content;

determining a performance record for the transcoding operation exceeds a performance threshold; and

adding the transcoding signature, with the processing configuration used for the transcoding operation, to the set of historical transcoding signatures.

2. The computer-implemented method of claim 1 , wherein the media content is a live stream.

3. The computer-implemented method of claim 1 , wherein the one or more performance affecting parameters include at least one of a codec, a resolution, or a bitrate.

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

receiving second media content including one or more second transcoding parameters;

determining, from the one or more second transcoding parameters, a set of second performance affecting parameters;

generating a second transcoding signature associated with at least the set of second performance affecting parameters;

comparing the second transcoding signature against the set of historical signatures;

determining the second transcoding signature matches a historical signature of the set of historical signatures; and

assigning the second media content to a second set of cores of the one or more resources based, at least in part on a configuration of the historical signature.

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

identifying a second set of cores of the one or more resources; and

migrating at least part of the transcoding operation to be processed on at least a portion of the second set of cores.

6. A computer-implemented method, comprising:

determining, from a channel and an associated signature, a set of performance affecting parameters;

determining, based on the set of performance affecting parameters and at least a portion of historical parameters for at least a portion of the performance affecting parameters, a testing configuration for the channel;

assigning the channel to one or more resources according to the testing configuration;

determining one or more additional settings, for a transcoding operation using the testing configuration, corresponding to one or more unknown properties of the channel;

executing the transcoding operation for the channel;

determining testing values for one or more metrics, of the one or more resources, are within a threshold; and

storing the testing configuration for the set of performance affecting parameters.

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

determining second testing values for the one or more metrics exceed the threshold; and

adjusting one or more attributes of the testing configuration.

8. The computer-implemented method of claim 6 , wherein the one or more performance affecting parameters include at least one of a codec, a resolution, or a bitrate.

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

receiving, from a heuristics database, historical transcoding data including at least the historical parameters and historical configurations;

training a machine learning system based, at least in part, on the historical transcoding data;

providing, to the trained machine learning system, the set of performance affecting parameters; and

determining the testing configuration.

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

determining a number of cores to process the channel;

determining available cores for the one or more resources; and

assigning the channel to a set of cores of the available cores.

11. The computer-implemented method of claim 10 , wherein the set of cores are consecutive cores.

12. The computer-implemented method of claim 10 , wherein the set of cores are associated with at least one of a common socket, a common die, a common bus, or a shared memory cache.

13. The computer-implemented method of claim 10 , wherein at least one core of the set of cores is a fragmented core that shares at least a portion of core processing capability with at least one additional operation.

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

determining available cores for the one or more resources;

assigning the channel to a set of cores of the available cores;

identifying a second set of the available cores; and

migrating at least a portion of the channel to at least one core of the second set of the available cores.

15. A system, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the system to:

determine, from a channel and an associated signature, a set of performance affecting parameters;

determine, based on the set of performance affecting parameters and at least a portion of historical parameters for at least a portion of the performance affecting parameters, a testing configuration for the channel;

assign the channel to one or more resources according to the testing configuration;

determine one or more additional settings, for a transcoding operation using the testing configuration, corresponding to one or more unknown properties of the channel;

execute the transcoding operation for the channel;

determine testing values for one or more metrics, of the one or more resources, are within a threshold; and

store the testing configuration for the set of performance affecting parameters.

16. The system of claim 15 , wherein the instructions when executed further cause the system to:

determine second testing values for the one or more metrics exceed the threshold; and

adjust one or more attributes of the testing configuration.

17. The system of claim 15 , wherein the one or more performance affecting parameters include at least one of a codec, a resolution, or a bitrate.

18. The system of claim 15 , wherein the instructions when executed further cause the system to:

determine a number of cores to process the channel;

determine available cores for the one or more resources; and

assign the channel to a set of cores of the available cores.

19. The system of claim 18 , wherein the set of cores are associated with at least one of a common socket, a common die, a common bus, or a shared memory cache.

20. The system of claim 18 , wherein at least one core of the set of cores is a fragmented core that shares at least a portion of core processing capability with at least one additional operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2024
From: HEGAR, RYAN; WOODRUFF, ERIC; CARDWELL, DAVID WILLIAM; ENIGMA, BRIAN; SHAMSUNDER, KARTHIK BANGALORE; KLAAS, DARIN J.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 066895/0843 →
References Cited (9)
US 8897365B2 · Reddy · 2014 [cited by examiner]
US 11222112B1 · Satpathy · 2022 [cited by examiner]
US 11729387B1 · Khsib · 2023 [cited by examiner]
US 20150222935A1 · King · 2015 [cited by examiner]
US 20170164018A1 · Yadav · 2017 [cited by examiner]
US 20210084382A1 · Kellicker · 2021 [cited by examiner]
US 20210092418A1 · Han · 2021 [cited by examiner]
US 20230101806A1 · John · 2023 [cited by examiner]
US 20230188764A1 · Pahalawatta · 2023 [cited by examiner]