Patentable/Patents/US-20260133828-A1
US-20260133828-A1

Systems and Methods for Optimizing Usage of Media Processing Containers

PublishedMay 14, 2026
Assigneenot available in USPTO data we have
Technical Abstract

A system includes one or more storage devices and circuitry. In one example, the one or more storage devices are configured to queue a plurality of media processing jobs. In this example, the circuitry is configured to estimate execution times for the jobs in the queue and to determine a completion deadline for the jobs. Additionally or alternatively, the circuitry is further configured to calculate a number of containers needed to complete the jobs by the deadline based at least in part on the estimated execution times and to implement the calculated number of containers to process the jobs by the completion deadline. Various other methods, systems, and computer-readable media are also disclosed.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

one or more storage devices configured to queue a plurality of jobs to be completed by one or more containers; and estimate execution times for the jobs in the queue; determine a completion deadline of the jobs in the queue; calculate a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs; and implement the number of containers to process the jobs by the completion deadline. circuitry configured to: . A system comprising:

2

claim 1 estimate an execution time for each job in the queue based at least in part on a function of the job and a resource requirement of the job; and calculate the number of containers needed to complete each job in the queue by the completion deadline based at least in part on the execution time for each job in the queue. . The system of, wherein the circuitry is further configured to:

3

claim 1 allocate, from a pool of containers, the number of containers to process the jobs; and spin up the allocated containers to process the jobs by the completion deadline. . The system of, wherein the circuitry is further configured to:

4

claim 3 estimate additional execution times for additional jobs in an additional queue; determine an additional completion deadline of the additional jobs in the additional queue; calculate an additional number of containers that are needed to complete the additional jobs by the additional completion deadline based at least in part on the additional execution times for the additional jobs; and schedule the allocation of the number of containers to process the jobs at a certain time based at least in part on the deadline and the additional deadline. . The system of, wherein the circuitry is further configured to:

5

claim 4 determine a number of the jobs in the queue; determine a total number of the containers in the pool; and schedule the allocation of the number of containers to process the jobs at the certain time based at least in part on the deadline, the additional deadline, the number of jobs in the queue, the execution times for the jobs in the queue, and the total number of containers in the pool. . The system of, wherein the circuitry is further configured to:

6

claim 4 the plurality of jobs in the queue share a job type in common; and the additional jobs in the additional queue share an additional job type in common. . The system of, wherein:

7

claim 1 determine that the number of containers have completed the jobs in the queue; terminate the number of containers in response to determining that the number of containers have completed the jobs in the queue; and release the number of containers to a pool of containers capable of being reallocated to process one or more additional jobs. . The system of, wherein the circuitry is further configured to:

8

claim 7 . The system of, wherein the circuitry is further configured to maintain the number of containers in an active state of processing the jobs sequentially without entering an idle state until all the jobs have been completed.

9

claim 1 determine a number of the jobs in the queue; and calculate the number of containers needed to complete each job in the queue by the completion deadline based at least in part on the number of jobs in the queue. . The system of, wherein the circuitry is further configured to:

10

claim 1 previous execution times of previous jobs that are comparable to the jobs in the queue; a job type of the jobs in the queue; or a resource requirement of the jobs in the queue. . The system of, wherein the circuitry is further configured to implement an artificial intelligence (AI) model to estimate execution times for the jobs in the queue based at least in part on one or more of:

11

claim 1 obtain recent execution times of recent jobs that are comparable to the jobs in the queue; and update one or more of the estimated execution times for the jobs in the queue based at least in part on the recent execution times. . The system of, wherein the circuitry is further configured to:

12

claim 1 assign a first priority level to a first subset of the jobs in the queue; assign a second priority level that is higher than the first priority level to a second subset of the jobs in the queue; and allocate, due at least in part to the second subset of jobs having been assigned the second priority level, one of the containers to the second subset of jobs prior to allocating any of the containers to the first subset of jobs. . The system of, wherein the circuitry is further configured to:

13

identifying, by circuitry, a queue that includes a plurality of jobs to be completed by one or more containers; estimating, by the circuitry, execution times for the jobs included in the queue; determining, by the circuitry, a completion deadline of the jobs included in the queue; calculating, by the circuitry, a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs; and implementing, by the circuitry, the number of containers to process the jobs by the completion deadline. . A method comprising:

14

claim 13 estimating the execution times for the jobs comprises estimating an execution time for each job included in the queue based at least in part on a function of the job and a resource requirement of the job; and calculating the number of containers comprises calculating the number of containers needed to complete each job included in the queue by the completion deadline based at least in part on the execution time for each job included in the queue. . The method of, wherein:

15

claim 13 allocating, by the circuitry, the number of containers to process the jobs from a pool of containers; and spinning up, by the circuitry, the allocated containers to process the jobs by the completion deadline. . The method of, further comprising:

16

claim 15 estimating, by the circuitry, additional execution times for additional jobs included in an additional queue; determining, by the circuitry, an additional completion deadline of the additional jobs included in the additional queue; calculating, by the circuitry, an additional number of containers that are needed to complete the additional jobs by the additional completion deadline based at least in part on the additional execution times for the additional jobs; and scheduling, by the circuitry, the allocation of the number of containers to process the jobs at a certain time based at least in part on the deadline and the additional deadline. . The method of, further comprising:

17

claim 16 determining, by the circuitry, a number of the jobs included in the queue; determining, by the circuitry, a total number of the containers in the pool; and scheduling, by the circuitry, the allocation of the number of containers to process the jobs at the certain time based at least in part on the deadline, the additional deadline, the number of jobs included in the queue, the execution times for the jobs included in the queue, and the total number of containers in the pools. . The method of, further comprising:

18

claim 16 the plurality of jobs included in the queue share a job type in common; and the additional jobs included in the additional queue share an additional job type in common. . The method of, wherein:

19

claim 13 determining, by the circuitry, that the number of containers have completed the jobs; terminating, by the circuitry, the number of containers in response to determining that the number of containers have completed the jobs; and releasing, by the circuitry, the number of containers to a pool of containers capable of being reallocated to process one or more additional jobs. . The method of, further comprising:

20

identify a queue that includes a plurality of jobs to be completed by one or more containers; estimate execution times for the jobs included in the queue; determine a completion deadline of the jobs included in the queue; calculate a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs; and implement the number of containers to process the jobs by the completion deadline. . A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by circuitry incorporated in a system, cause the system to:

Detailed Description

Complete technical specification and implementation details from the patent document.

This application claims the benefit of U.S. Provisional Application No. 63/719,763 filed Nov. 13, 2024, the disclosure of which is incorporated in its entirety by this reference.

In modern cloud-based media processing platforms, compute resources like containers are used to execute a wide variety of jobs (e.g., encoding, transcoding, asset generation, etc.). The scheduling of resource allocation for processing such jobs can impact service level objectives and/or operational costs. For example, some conventional media processing platforms allocate containers to collectively process the jobs in parallel and/or simultaneously. Unfortunately, such parallel processing can lead to elevated costs, reduced container utilization, and/or longer queue wait times for media processing jobs.

The instant disclosure, therefore, identifies and addresses a need for improved systems and methods capable of optimizing usage of media processing containers to reduce costs, increase container utilization, and/or shorten queue wait times.

As will be described in greater detail below, the present disclosure describes systems and methods for optimizing usage of media processing containers. In some examples, a system includes one or more storage devices and circuitry. In one example, the one or more storage devices are configured to queue a plurality of media processing jobs. In this example, the circuitry is configured to estimate execution times for the jobs in the queue and to determine a completion deadline for the jobs. Additionally or alternatively, the circuitry is further configured to calculate a number of containers needed to complete the jobs by the deadline based at least in part on the estimated execution times and to implement the calculated number of containers to process the jobs by the completion deadline.

In some examples, the circuitry is further configured to estimate an execution time for each job in the queue based at least in part on a function of the job and a resource requirement of the job and to calculate the number of containers needed to complete each job in the queue by the completion deadline. Additionally or alternatively, the circuitry is configured to allocate, from a pool of containers, the number of containers to process the jobs and to spin up the allocated containers to process the jobs by the completion deadline.

In some examples, the circuitry is further configured to estimate additional execution times for additional jobs in an additional queue and to determine an additional completion deadline for the additional jobs. In such examples, the circuitry is further configured to calculate an additional number of containers needed to complete the additional jobs by the additional completion deadline and to schedule the allocation of containers to process jobs at a certain time based at least in part on the deadline and the additional deadline. In one example, the plurality of jobs in the queue share a job type in common, and/or the additional jobs in the additional queue share an additional job type in common.

In some examples, the circuitry is further configured to determine a number of jobs in the queue and to determine a total number of containers in the pool. In such examples, the circuitry is further configured to schedule the allocation of containers based at least in part on the deadline, the additional deadline, the number of jobs in the queue, the execution times for the jobs, and the total number of containers in the pool.

In some examples, the circuitry is further configured to determine that the number of containers have completed the jobs in the queue and to terminate the containers in response to completion. In such examples, the circuitry is further configured to release the containers to a pool for reallocation to additional jobs. Additionally or alternatively, the circuitry is configured to maintain the containers in an active state of processing jobs sequentially without entering an idle state until all jobs have been completed.

In some examples, the circuitry is further configured to determine a number of the jobs in the queue and to calculate the number of containers needed to complete each job in the queue by the completion deadline based at least in part on the number of jobs in the queue. In one example, the circuitry is further configured to implement an artificial intelligence (AI) model to estimate execution times for the jobs in the queue based at least in part on previous execution times of comparable jobs, a job type of the jobs, and/or a resource requirement of the jobs. Additionally or alternatively, the circuitry is configured to obtain recent execution times of recent jobs that are comparable to the jobs in the queue and to update one or more of the estimated execution times for the jobs in the queue based at least in part on the recent execution times.

In some examples, the circuitry is further configured to assign a first priority level to a first subset of the jobs in the queue and to assign a second priority level that is higher than the first priority level to a second subset of the jobs. In such examples, the circuitry is further configured to allocate, due at least in part to the second subset of jobs having been assigned the higher priority level, one of the containers to the second subset of jobs prior to allocating any of the containers to the first subset of jobs.

In some examples, a corresponding computer-implemented method involves (1) identifying, by circuitry, a queue that includes a plurality of jobs to be completed by one or more containers, (2) estimating, by the circuitry, execution times for the jobs included in the queue, (3) determining, by the circuitry, a completion deadline of the jobs included in the queue, (4) calculating, by the circuitry, a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs, and (5) implementing, by the circuitry, the number of containers to process the jobs by the completion deadline.

In some examples, a non-transitory computer-readable medium comprises one or more computer-executable instructions that, when executed by circuitry incorporated in a system, cause the system to (1) identify a queue that includes a plurality of jobs to be completed by one or more containers, (2) estimate execution times for the jobs included in the queue, (3) determine a completion deadline of the jobs included in the queue, (4) calculate a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs, and (5) implement the number of containers to process the jobs by the completion deadline.

Features from any of the embodiments described herein may be used in combination with one another in accordance with the general principles described herein. These and other embodiments, features, and advantages will be more fully understood upon reading the following detailed description in conjunction with the accompanying drawings and claims.

Throughout the drawings, identical reference characters and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the present disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims.

The present disclosure is generally directed to systems and methods for optimizing the allocation and utilization of containers in cloud-based media processing platforms. As will be explained in greater detail below, these systems and methods can provide numerous features and benefits over conventional technologies, such as improving resource utilization, reducing operational costs, and/or meeting service level objectives in media processing environments.

In some examples, container allocation can refer to and/or represent the process of determining the number of containers needed to complete all the jobs loaded in a queue and/or scheduling the allocation, spin-up, and/or termination of such containers in connection with those jobs. Various factors can contribute and/or lead to inefficiencies in conventional container-allocation technologies. Examples of such factors include, without limitation, inaccurate job execution time estimates, aggressive scaling based on queue depth, failure to account for job types, failure to account for resource requirements, and/or failure to account for priority levels. Unfortunately, the inefficiencies can result in high container churn, underutilized resources, increased overhead, and/or elevated costs.

In some examples, a system capable of overcoming such inefficiencies includes and/or represents one or more storage devices queue various jobs to be completed by one or more containers. Examples of such jobs include, without limitation, encoding jobs, transcoding jobs, stream generation jobs, thumbnail creation jobs, asset inspection jobs, fingerprinting jobs, media processing jobs, combinations or variations of one or more of the same, and/or any other suitable jobs. In one example, the system maintains a pool of containers available for allocation to process the jobs loaded across a set of queues. In this example, the jobs loaded in any given queue can involve and/or implicate different resource requirements—such as differing levels of processor usage, memory usage, bandwidth usage, input/output (I/O) operations, etc.—even if those jobs share the same job type.

In some examples, the system also includes and/or represents circuitry configured to estimate execution times and/or durations for the jobs loaded in the queues. The estimations can be based on and/or account for a variety of different attributes of the jobs, including the types and/or functions of the jobs, the resource requirements of the jobs, and/or historical or recent execution times and/or durations of comparable jobs. In one example, the circuitry executes and/or implements an artificial intelligence (AI) model trained on historical and/or recent job completion data to generate accurate execution time estimates. In this example, the circuitry periodically updates execution time estimates for the jobs in the queues based on recent completion times, thus enabling the system to adapt to evolving workloads and/or conditions.

In some examples, the circuitry determines completion deadlines—which are sometimes also referred to as target drain times—for the jobs in the queues and calculates the minimum number of containers needed to complete the jobs by the respective completion deadlines. The calculations may be based on the estimated execution times for the jobs, the number of jobs in the queues, and/or the total number of containers available in a pool. In one example, the circuitry schedules the minimum number of containers to process the jobs in the queues by their respective completion deadlines. In this example, at the scheduled time, the circuitry allocates the minimum number of containers from the pool to process the jobs in one of the queues. The circuitry then spins up the allocated containers to meet the completion deadlines.

In some examples, the circuitry maintains the allocated containers in an active state of processing jobs sequentially without idling until all jobs have been completed. Upon completion of the jobs, the circuitry terminates the spun-up containers and releases them to the pool for reallocation to additional jobs. Additionally or alternatively, the circuitry estimates additional execution times for additional jobs loaded in additional queues, determines additional completion deadlines, and/or schedules the allocation of containers to process those jobs at certain times based on the respective deadlines and/or available resources.

In some examples, the circuitry assigns priority levels to subsets of jobs in the queue. For example, a low priority level is assigned to a first subset of jobs, and a higher priority level is assigned to a second subset of jobs. In this example, the circuitry allocates and/or applies one or more containers to process the higher-priority jobs before the lower-priority jobs. By doing so, the circuitry ensures that any urgent and/or time-sensitive jobs are processed in accordance with business preferences and/or requirements.

As a specific example, a queue includes and/or contains sixty (60) jobs with an average execution time of one minute, and a system is tasked with completing all sixty (60) jobs within a one-hour deadline. With some conventional container-allocation technologies, the system would have spun up sixty (60) containers—one for each job in the queue—to process the sixty (60) jobs in parallel. Under such conventional technologies, each container would complete a single job and then terminate. While this conventional approach ensures rapid job completion, this conventional approach can result in significant overhead due to the repeated starting and stopping of containers.

However, with the improved technologies described herein, the system determines that a single container is sufficient to process all sixty (60) jobs in the queue sequentially within the one-hour deadline. By spinning up that single container to process all sixty (60) of those jobs, the system achieves savings equivalent to sixty (60) times the overhead involved in starting and/or stopping a container. Continuing with this example, the reduction in container overhead leads to a trade-off of increased queue wait time as each job waits its turn to be processed by the single container. As a result, the system is able to increase and/or improve efficiencies and/or available resources by extending the completion of the jobs in the queue until the completion deadline, as opposed to simply processing all the jobs in the queue simultaneously and/or in parallel.

In a comparable example, if the completion deadline is shortened to thirty (30) minutes instead of one (1) hour, the system can calculate that a minimum of two (2) containers are needed to process all sixty (60) jobs by the completion deadline. In this example, the queue wait time is reduced by half, and the system achieves savings equivalent to thirty (30) times the overhead involved in starting and/or stopping a container. Accordingly, the system enables dynamic container allocation based on estimated job execution times and completion deadlines to maximize cost efficiency and/or resource utilization.

1 6 8 10 FIGS.-and- 7 FIG. The following will provide, with reference to, detailed descriptions of exemplary devices, systems, and corresponding implementations or configurations that facilitate and/or support optimizing usage of media processing containers. The following will also provide, with reference to, examples of methods for optimizing usage of media processing containers.

1 FIG. 100 100 104 106 104 106 106 112 1 112 1 114 112 116 illustrates an exemplary systemfor optimizing usage of media processing containers. In some examples, systemincludes and/or represents circuitryand/or a storage device. In one example, circuitryand/or storage deviceinterface with and/or are communicatively coupled to one another. In this example, storage devicestores, maintains, provides, and/or manages queues()-(N) that are loaded, populated, and/or filled with jobs. For example, queue() is loaded and/or populated with jobs, and queue(N) is loaded and/or populated with jobs.

104 108 1 114 116 104 108 1 114 116 104 114 116 114 116 114 116 114 116 In some examples, circuitrymanages, executes, and/or implements containers()-(N) capable of processing jobsand. In one example, circuitryschedules containers()-(N) for allocation to process jobsandbased at least in part on their respective estimated execution times and/or completion deadlines. In this example, circuitryestimates execution times for jobsandbased at least in part on the job types and/or functions of jobsand. In certain implementations, all of jobshave or share the same job type and/or function as one another, and all of jobshave or share the same job type and/or function as one another. However, the job type and/or function of jobsmay differ from the job type and/or function of jobs.

104 114 116 104 114 116 104 104 114 116 In some examples, circuitrydetermines the completion deadlines of jobsand. For example, circuitrycan receive information and/or data that indicates the completion deadline of either jobsor jobsfrom a customer associated with such jobs and/or from an upstream system or environment associated with such jobs. Additionally or alternatively, circuitrymay examine and/or review a policy that indicates a standard completion deadline for all jobs or certain jobs characterized by specific attributes (e.g., job type, function, etc.) after being loaded into the corresponding queues. In certain implementations, circuitrymay dynamically calculate the completion deadline of either jobsor jobsbased at least in part on the current system load, job priorities, and/or downstream requirements (e.g., a customer's business needs).

104 108 1 114 116 114 116 104 108 1 114 116 112 1 112 In some examples, circuitrydetermines, calculates, and/or computes the number of containers()-(N) needed to complete jobsor jobsby their respective completion deadlines based at least in part on the estimated execution times for jobsor jobs. In one example, circuitrycalculates the minimum number of containers()-(N) needed to complete each of jobsor jobsby their respective completion deadlines based at least in part on the execution time for each job in queue() or queue(N).

104 108 1 114 116 104 114 116 112 1 114 116 104 108 1 114 116 In some examples, circuitrycan schedule the allocation of containers()-(N) to process jobsor jobsat a certain time based at least in part on their respective completion deadlines. For example, circuitrymay consider and/or take into account the completion deadlines of jobsand jobs, the number of jobs included in queues()-(N), the estimated execution times of jobsand jobs, and/or the total number of available containers when performing the scheduling operation and/or task. In one example, circuitryallocates one or more of containers()-(N) to process jobsor jobsin accordance with the schedule.

104 112 1 114 116 108 1 112 1 114 104 114 114 In some examples, circuitryexecutes, spins up, and/or implements the containers as allocated and/or applied to queues()-(N) to process jobsand/or jobs. For example, one or more of containers()-(N) allocated to queue() and/or jobsperform the corresponding tasks, work, and/or computational steps. In one example, circuitrymaintains the container(s) in an active state of processing jobssequentially without entering an idle state until all of jobshave been completed.

106 106 130 1 106 106 1 FIG. In some examples, storage deviceincludes and/or represents any type or form of volatile or non-volatile storage device or medium capable of storing data, computer-readable instructions, and/or load-balancing options. In one example, storage devicemaintains and/or stores one or more computer-readable instructions, modules, programs, applications, and/or load-balancing options()-(N). Examples of storage deviceinclude, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, and/or any other suitable memory. Although illustrated as a single unit in, storage devicecan alternatively include and/or represent a collection of multiple storage devices capable of storing and/or maintaining a plurality of queues and/or data corresponding to jobs loaded in those queues.

104 100 104 106 104 In some examples, circuitryincludes and/or represents one or more electrical and/or electronic circuits capable of processing, applying, modifying, transforming, displaying, transmitting, receiving, and/or executing data for system. In one example, circuitryaccesses and/or analyzes data stored in storage deviceto facilitate and/or support optimizing usage of media processing containers. Additionally or alternatively, circuitrylaunches, performs, and/or executes certain executable files, code snippets, and/or computer-readable instructions to facilitate and/or support optimizing usage of media processing containers.

1 FIG. 104 104 104 Although illustrated as a single unit in, circuitrycan include and/or represent a collection of multiple processing units and/or electrical or electronic components that work and/or operate in conjunction with one another. Examples of circuitryinclude, without limitation, processing devices, hardware processors, microprocessors, microcontrollers, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), graphics processing units (GPUs), central processing units (CPUs), systems on chips (SoCs), parallel accelerated processors, tensor cores, integrated circuits, chiplets, receivers, transmitters, transceivers, storage devices, memory devices, digital logic, analog circuitry, digital circuitry, portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable circuitry. In certain implementations, circuitrycan be distributed across multiple devices (e.g., remote and/or network devices).

108 1 108 1 100 100 108 1 100 108 1 100 In some examples, containers()-(N) each refer to and/or represent a lightweight, isolated, and/or virtualized computing environment that encapsulates the software, dependencies, and/or runtime necessary to execute one or more jobs. In one example, containers()-(N) are managed by systemand can be dynamically allocated, spun up, maintained in an active state, and/or terminated as needed to process the jobs in the queues across system. Additionally or alternatively, containers()-(N) can provide a consistent and/or portable execution environment that facilitates processing jobs independently of the underlying hardware and/or operating system. In certain implementations, systemcan orchestrate and/or collect containers()-(N) as part of a pool or fleet. By doing so, systemfacilitates and/or supports efficient resource utilization, rapid scaling, and/or flexible job scheduling.

114 116 114 116 In some examples, jobsandeach constitute and/or represent a media processing job, operation, and/or task. Examples of jobsandinclude, without limitation, encoding jobs, transcoding jobs, stream generation jobs, thumbnail creation jobs, asset inspection jobs, fingerprinting jobs, media processing jobs, combinations or variations of one or more of the same, and/or any other suitable jobs.

100 100 100 In some examples, systemincludes and/or represent one or more media servers, devices, and/or environments. In one example, systemincludes and/or represents a data center and/or a distributed system that handles, processes, and/or delivers streaming media. Additionally or alternatively, systemincludes and/or represents a collection of components and/or devices included in and/or distributed across a client-server network.

2 FIG. 2 FIG. 1 FIG. 200 200 200 104 106 104 202 204 206 210 illustrates an exemplary systemthat facilitates and/or supports optimizing usage of media processing containers. In some examples, systeminincludes and/or involves certain devices, components, configurations, and/or features that perform and/or provide functionalities that are similar and/or identical to those described above in connection with. In one example, systemincludes and/or represents circuitryand/or storage device. In this example, circuitryexecutes and/or implements an artificial intelligence (AI) model, a scheduler, allocated containers, and/or a pool.

206 108 1 210 208 1 208 1 112 1 114 1 114 2 114 3 114 4 114 5 114 In some examples, allocated containersinclude and/or represent containers()-(N). In one example, poolincludes and/or represents containers()-(N). In this example, containers()-(N) have been released and/or are available for allocation to process jobs. In certain implementations, queue() includes and/or is loaded with jobs(),(),(),(),(), and/or(N).

104 202 512 114 1 112 1 104 212 202 202 114 1 112 1 212 202 204 In some examples, circuitryexecutes, implements, and/or leverages AI modelto estimate the execution timesfor jobs()-(N) in queue(). In one example, circuitryprovides and/or inputs informationto AI model. In this example, AI modelestimates the execution times for jobs()-(N) in queue()-(N) based at least in part on information. Additionally or alternatively, AI modelprovides and/or transmits those execution times to schedulerfor making scheduling decisions.

3 FIG. 3 FIG. 1 FIG. 2 FIG. 300 300 104 114 1 104 114 1 114 104 112 1 114 1 112 1 illustrates an exemplary implementationfor optimizing usage of media processing containers. In some examples, implementationinincludes and/or involves certain devices, components, configurations, and/or features that perform and/or provide functionalities that are similar and/or identical to those described above in connection with eitheror. In one example, circuitryassigned differing priority levels to jobs()-(N) based at least in part on the needs of a customer and/or specific request. For example, circuitrycan assign a higher priority level to job() and a lower priority level to job(N). In this example, circuitrycan assign other and/or different priority levels to the remaining jobs loaded in queue() such that jobs()-(N) are arranged in order of priority in queue().

108 1 114 1 108 1 114 1 108 2 114 2 108 1 114 1 114 1 108 1 108 1 In some examples, containers()-(N) can be deployed and/or applied to process jobs()-(N) in order of priority. In one example, container() processes job(), and container() processes job(). In this example, containers()-(N) can process jobs()-(N) in parallel. However, because the number of jobs()-(N) exceeds the number of containers()-(N), containers()-(N) process the jobs of highest priority first before processing those jobs of lower priority.

5 FIG. 5 FIG. 1 FIG. 2 FIG. 500 202 204 500 104 202 512 114 1 112 1 202 illustrates an exemplary implementationof AI modeland/or schedulercapable of optimizing usage of media processing containers. In some examples, implementationinincludes and/or involves certain devices, components, configurations, and/or features that perform and/or provide functionalities that are similar and/or identical to those described above in connection with eitheror. In one example, circuitryexecutes, implements, and/or leverages AI modelto estimate the execution timesfor jobs()-(N) in queue(). In this example, AI modelis trained with historical and/or recent job completion data. Examples of such job completion data include, without limitation, the actual execution and/or completion times, the respective job types, the respective resource requirements (e.g., processor usage, memory usage, bandwidth usage, etc.), I/O operations data associated to the jobs, the corresponding system state and/or environments, combinations or variations of one or more of the same, and/or any other suitable job completion data.

104 212 202 202 212 114 1 212 114 1 114 1 212 4 FIG. In some examples, circuitryprovides and/or inputs informationto AI model. In one example, AI modeluses informationto estimate the execution times of jobs()-(N). As illustrated in, informationcan include and/or represent previous execution times of comparable jobs (e.g., 0:58, 0:59, 1:02, 1:03, etc.), the job type or function of jobs()-(N) (e.g., video stream encoding), and/or the resource requirements of jobs()-(N). In one example, the resource requirements represented in informationinclude and/or represents CPU usages (e.g., 25%, 30%, 23%, 32%, 41%, etc.), memory utilizations (e.g., 512 megabytes (MB), 256 MB, 1 gigabytes (GB), etc.), bandwidth (e.g., 10 megabits per second (Mbps), 20 Mbps, 5 Mbps, etc.), and/or GPU usages (e.g., 25%, 80%, 40%, 35%, 45%, etc.).

202 512 114 1 204 204 512 512 204 108 1 114 1 112 1 114 1 112 1 114 1 210 In some examples, AI modelprovides and/or transmits estimated execution timesfor jobs()-(N) to scheduler. In one example, schedulerreceives estimated execution timesand then examines and/or reviews estimated execution times. In this example, schedulercan schedule the allocation of containers()-(N) to process jobs()-(N) included in queue() based at least in part on the completion deadlines of jobs()-(N), the number of jobs included in queue(), the estimated execution times of jobs()-(N), and/or the total number of available containers in pool.

204 200 204 108 1 114 1 112 1 204 108 1 114 1 512 514 1 In some examples, schedulerobtains similar and/or identical information or data associated with other jobs loaded in other queues in system. In one example, schedulerschedules the allocation of containers()-(N) to process jobs()-(N) included in queue() in view of the needs (e.g., estimated execution times, completion deadlines, resource requirements, etc.) of all those jobs. For example, schedulercan schedule the allocation of containers()-(N) to process jobs()-(N) based at least in part on estimated execution timesas well as estimated execution times()-(N) corresponding to other queues and/or jobs.

104 202 104 512 114 1 112 1 512 114 1 114 1 5 FIG. In some examples, circuitrycan periodically update, revise, and/or retrain AI modelbased at least in part new information and/or data (e.g., more recent job completion data and/or execution times). Additionally or alternatively, circuitrycan update and/or revise estimated execution timesfor jobs()-(N) in queue() based at least in part on more recent completed execution times of comparable jobs. As illustrated in, estimated execution timescan include and/or represent individual execution times of jobs()-(N) (e.g., 0:57, 0:59, 1:04, 1:02, 0:58, etc.) and/or the average estimated execution time of jobs()-(N) (e.g., 1:00).

1 6 FIGS.- 1 3 FIGS.- 1 6 FIGS.- 1 6 FIGS.- 1 6 FIGS.- In some examples, the various systems, components, and/or features described in connection withmay include and/or represent one or more additional circuits, components, and/or features that are not necessarily illustrated and/or labeled in. For example, the systems, components, and/or features illustrated inmay also include and/or represent additional analog and/or digital circuitry, onboard logic, transistors, radio-frequency (RF) transmitters, RF receivers, transceivers, antennas, resistors, capacitors, diodes, inductors, switches, registers, flipflops, digital logic, connections, traces, buses, semiconductor (e.g., silicon) devices and/or structures, processing devices, storage devices, memory devices, circuit boards, sensors, packages, substrates, housings, servers, client devices, computing devices, network devices, networks, combinations or variations of one or more of the same, and/or any other suitable components. In certain implementations, one or more of these additional circuits, components, and/or features may be inserted and/or applied between any of the existing circuits, components, and/or features illustrated inconsistent with the aims and/or objectives described herein. Accordingly, the couplings and/or connections described with reference tomay be direct connections with no intermediate components, devices, and/or nodes or indirect connections with one or more intermediate components, devices, and/or nodes.

In some examples, the phrase “to couple” and/or the term “coupling”, as used herein, may refer to a direct connection and/or an indirect connection. For example, a direct coupling between two components may constitute and/or represent a coupling in which those two components are directly connected to each other by a single node that provides continuity from one of those two components to the other. In other words, the direct coupling may exclude and/or omit any additional components between those two components.

1 6 FIGS.- 1 6 FIGS.- Additionally or alternatively, an indirect coupling between two components may constitute and/or represent a coupling in which those two components are indirectly connected to each other by multiple nodes that fail to provide continuity from one of those two components to the other. In other words, the indirect coupling may include and/or incorporate at least one additional component between those two components. In one example, the indirect coupling may include and/or incorporate at least one additional computing device between two computing devices illustrated in any of. In some implementations, one or more components and/or devices illustrated inmay be omitted and/or excluded from the corresponding systems.

7 FIG. 7 FIG. 7 FIG. 1 6 FIGS.- 700 is a flow diagram of an exemplary computer-implemented methodfor optimizing usage of media processing containers. In one example, the steps shown inare performed by circuitry incorporated and/or implemented in one or more systems and/or computing devices. Additionally or alternatively, the steps shown inincorporate and/or involve certain sub-steps and/or variations consistent with the descriptions provided above in connection with.

7 FIG. 1 6 FIGS.- 700 710 710 As illustrated in, methodincludes and/or involves the step of identifying a queue that includes a plurality of jobs to be completed by one or more containers (). Stepis performed in a variety of ways, including any of those described above in connection with. For example, circuitry included in a system can identify a queue that includes a plurality of jobs to be completed by one or more containers.

700 720 720 1 6 FIGS.- Methodalso includes and/or involves the step of estimating execution times for the jobs included in the queue (). Stepis performed in a variety of ways, including any of those described above in connection with. For example, the circuitry estimates execution times for the jobs included in the queue.

700 730 730 1 6 FIGS.- Methodfurther includes and/or involves the step of determining a completion deadline of the jobs included in the queue (). Stepis performed in a variety of ways, including any of those described above in connection with. For example, the circuitry determines a completion deadline of the jobs included in the queue.

700 740 740 1 6 FIGS.- Methodfurther includes and/or involves the step of calculating a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs (). Stepis performed in a variety of ways, including any of those described above in connection with. For example, the circuitry calculates a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs.

700 750 750 1 6 FIGS.- Methodfurther includes and/or involves the step of implementing the number of containers to process the jobs by the completion deadline (). Stepis performed in a variety of ways, including any of those described above in connection with. For example, the circuitry implements the number of containers to process the jobs by the completion deadline.

Furthermore, a non-transitory computer-readable medium comprises one or more computer-executable instructions that, when executed by circuitry incorporated in a system, cause the system to (1) identify a queue that includes a plurality of jobs to be completed by one or more containers, (2) estimate execution times for the jobs included in the queue, (3) determine a completion deadline of the jobs included in the queue, (4) calculate a number of containers that are needed to complete the jobs by the completion deadline based at least in part on the execution times for the jobs, and (5) implement the number of containers to process the jobs by the completion deadline.

8 FIG. 9 10 FIGS.and 1 7 FIGS.- The following will provide, with reference to, detailed descriptions of exemplary ecosystems in which content is provisioned to end nodes and in which requests for content are steered to specific end nodes. The discussion corresponding topresents an overview of an exemplary distribution infrastructure and an exemplary content player used during playback sessions, respectively. These exemplary ecosystems and distribution infrastructures are implemented in any of the embodiments described above with reference to.

8 FIG. 1000 1010 1020 1010 1020 1020 1010 1010 is a block diagram of a content distribution ecosystemthat includes a distribution infrastructurein communication with a content player. In some embodiments, distribution infrastructureis configured to encode data at a specific data rate and to transfer the encoded data to content player. Content playeris configured to receive the encoded data via distribution infrastructureand to decode the data for playback to a user. The data provided by distribution infrastructureincludes, for example, audio, video, text, images, animations, interactive content, haptic data, virtual or augmented reality data, location data, gaming data, or any other type of data that is provided via streaming.

1010 1010 1010 1010 1012 1014 1016 1014 Distribution infrastructuregenerally represents any services, hardware, software, or other infrastructure components configured to deliver content to end users. For example, distribution infrastructureincludes content aggregation systems, media transcoding and packaging services, network components, and/or a variety of other types of hardware and software. In some cases, distribution infrastructureis implemented as a highly complex distribution system, a single media server or device, or anything in between. In some examples, regardless of size or complexity, distribution infrastructureincludes at least one physical processorand at least one memory. One or more modulesare stored or loaded into memoryto enable adaptive streaming, as discussed herein.

1020 1010 1020 1010 1020 1022 1024 1026 1026 1016 1010 1026 1020 Content playergenerally represents any type or form of device or system capable of playing audio and/or video content that has been provided over distribution infrastructure. Examples of content playerinclude, without limitation, mobile phones, tablets, laptop computers, desktop computers, televisions, set-top boxes, digital media players, virtual reality headsets, augmented reality glasses, and/or any other type or form of device capable of rendering digital content. As with distribution infrastructure, content playerincludes a physical processor, memory, and one or more modules. Some or all of the adaptive streaming processes described herein is performed or enabled by modules, and in some examples, modulesof distribution infrastructurecoordinate with modulesof content playerto provide adaptive streaming of multimedia content.

1016 1026 1016 1026 1016 1026 8 FIG. 8 FIG. In certain embodiments, one or more of modulesand/orinrepresent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, and as will be described in greater detail below, one or more of modulesandrepresent modules stored and configured to run on one or more general-purpose computing devices. One or more of modulesandinalso represent all or portions of one or more special-purpose computers configured to perform one or more tasks.

In addition, one or more of the modules, processes, algorithms, or steps described herein transform data, physical devices, and/or representations of physical devices from one form to another. For example, one or more of the modules recited herein receive audio data to be encoded, transform the audio data by encoding it, output a result of the encoding for use in an adaptive audio bit-rate system, transmit the result of the transformation to a content player, and render the transformed data to an end user for consumption. Additionally or alternatively, one or more of the modules recited herein transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.

1012 1022 1012 1022 1016 1026 1012 1022 1016 1026 1012 1022 Physical processorsandgenerally represent any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. In one example, physical processorsandaccess and/or modify one or more of modulesand, respectively. Additionally or alternatively, physical processorsandexecute one or more of modulesandto facilitate adaptive streaming of multimedia content. Examples of physical processorsandinclude, without limitation, microprocessors, microcontrollers, central processing units (CPUs), field-programmable gate arrays (FPGAs) that implement softcore processors, application-specific integrated circuits (ASICs), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable physical processor.

1014 1024 1014 1024 1016 1026 1014 1024 Memoryandgenerally represent any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, memoryand/orstores, loads, and/or maintains one or more of modulesand. Examples of memoryand/orinclude, without limitation, random access memory (RAM), read only memory (ROM), flash memory, hard disk drives (HDDs), solid-state drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, and/or any other suitable memory device or system.

9 FIG. 1010 1010 1110 1120 1130 1110 1110 1110 is a block diagram of exemplary components of content distribution infrastructureaccording to certain embodiments. Distribution infrastructureincludes storage, services, and a network. Storagegenerally represents any device, set of devices, and/or systems capable of storing content for delivery to end users. Storageincludes a central repository with devices capable of storing terabytes or petabytes of data and/or includes distributed storage systems (e.g., appliances that mirror or cache content at Internet interconnect locations to provide faster access to the mirrored content within certain regions). Storageis also configured in any other suitable manner.

1110 1112 1114 1116 1112 1114 1116 1010 As shown, storagemay store a variety of different items including content, user data, and/or log data. Contentincludes television shows, movies, video games, user-generated content, and/or any other suitable type or form of content. User dataincludes personally identifiable information (PII), payment information, preference settings, language and accessibility settings, and/or any other information associated with a particular user or content player. Log dataincludes viewing history information, network throughput information, and/or any other metrics associated with a user's connection to or interactions with distribution infrastructure.

1120 1122 1124 1126 1122 1010 1124 1126 1130 Servicesincludes personalization services, transcoding services, and/or packaging services. Personalization servicespersonalize recommendations, content streams, and/or other aspects of a user's experience with distribution infrastructure. Transcoding servicescompress media at different bitrates which, as described in greater detail below, enable real-time switching between different encodings. Packaging servicespackage encoded video before deploying it to a delivery network, such as network, for streaming.

1130 1130 1130 1130 1132 1134 1136 9 FIG. Networkgenerally represents any medium or architecture capable of facilitating communication or data transfer. Networkfacilitates communication or data transfer using wireless and/or wired connections. Examples of networkinclude, without limitation, an intranet, a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communications (PLC), a cellular network (e.g., a global system for mobile communications (GSM) network), portions of one or more of the same, variations or combinations of one or more of the same, and/or any other suitable network. For example, as shown in, networkincludes an Internet backbone, an internet service provider, and/or a local network. As discussed in greater detail below, bandwidth limitations and bottlenecks within one or more of these network segments triggers video and/or audio bit rate adjustments.

10 FIG. 8 FIG. 1020 1020 1020 is a block diagram of an exemplary implementation of content playerof. Content playergenerally represents any type or form of computing device capable of reading computer-executable instructions. Content playerincludes, without limitation, laptops, tablets, desktops, servers, cellular phones, multimedia players, embedded systems, wearable devices (e.g., smart watches, smart glasses, etc.), smart vehicles, gaming consoles, internet-of-things (IoT) devices such as smart appliances, variations or combinations of one or more of the same, and/or any other suitable computing device.

10 FIG. 1022 1024 1020 1202 1222 1224 1020 1226 1228 1234 1236 1238 1240 As shown in, in addition to processorand memory, content playerincludes a communication infrastructureand a communication interfacecoupled to a network connection. Content playeralso includes a graphics interfacecoupled to a graphics device, an input interfacecoupled to an input device, and a storage interfacecoupled to a storage device.

1202 1202 Communication infrastructuregenerally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructureinclude, without limitation, any type or form of communication bus (e.g., a peripheral component interconnect (PCI) bus, PCI Express (PCIe) bus, a memory bus, a frontside bus, an integrated drive electronics (IDE) bus, a control or register bus, a host bus, etc.).

1024 1024 1208 1022 1208 1020 As noted, memorygenerally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or other computer-readable instructions. In some examples, memorystores and/or loads an operating systemfor execution by processor. In one example, operating systemincludes and/or represents software that manages computer hardware and software resources and/or provides common services to computer programs and/or applications on content player.

1208 1226 1230 1234 1238 1208 1210 1210 1212 1218 1220 Operating systemperforms various system management functions, such as managing hardware components (e.g., graphics interface, audio interface, input interface, and/or storage interface). Operating systemalso provides process and memory management models for playback application. The modules of playback applicationincludes, for example, a content buffer, an audio decoder, and a video decoder.

1210 1222 1226 1226 1228 1210 1210 1210 1210 1010 Playback applicationis configured to retrieve digital content via communication interfaceand play the digital content through graphics interface. Graphics interfaceis configured to transmit a rendered video signal to graphics device. In normal operation, playback applicationreceives a request from a user to play a specific title or specific content. Playback applicationthen identifies one or more encoded video and audio streams associated with the requested title. After playback applicationhas located the encoded streams associated with the requested title, playback applicationdownloads sequence header indices associated with each encoded stream associated with the requested title from distribution infrastructure. A sequence header index associated with encoded content includes information related to the encoded sequence of data included in the encoded content.

1210 1212 1020 1212 1020 1212 1216 1212 1214 1212 In one embodiment, playback applicationbegins downloading the content associated with the requested title by downloading sequence data encoded to the lowest audio and/or video playback bitrates to minimize startup time for playback. The requested digital content file is then downloaded into content buffer, which is configured to serve as a first-in, first-out queue. In one embodiment, each unit of downloaded data includes a unit of video data or a unit of audio data. As units of video data associated with the requested digital content file are downloaded to the content player, the units of video data are pushed into the content buffer. Similarly, as units of audio data associated with the requested digital content file are downloaded to the content player, the units of audio data are pushed into the content buffer. In one embodiment, the units of video data are stored in video bufferwithin content bufferand the units of audio data are stored in audio bufferof content buffer.

1220 1216 1216 1216 1226 1228 A video decoderreads units of video data from video bufferand outputs the units of video data in a sequence of video frames corresponding in duration to the fixed span of playback time. Reading a unit of video data from video buffereffectively de-queues the unit of video data from video buffer. The sequence of video frames is then rendered by graphics interfaceand transmitted to graphics deviceto be displayed to a user.

1218 1214 1230 1232 An audio decoderreads units of audio data from audio bufferand output the units of audio data as a sequence of audio samples, generally synchronized in time with a sequence of decoded video frames. In one embodiment, the sequence of audio samples is transmitted to audio interface, which converts the sequence of audio samples into an electrical audio signal. The electrical audio signal is then transmitted to a speaker of audio device, which, in response, generates an acoustic output.

1010 1210 In situations where the bandwidth of distribution infrastructureis limited and/or variable, playback applicationdownloads and buffers consecutive portions of video data and/or audio data from video encodings with different bit rates based on a variety of factors (e.g., scene complexity, audio complexity, network bandwidth, device capabilities, etc.). In some embodiments, video playback quality is prioritized over audio playback quality. Audio playback and video playback quality are also balanced with each other, and in some embodiments audio playback quality is prioritized over video playback quality.

1226 1228 1226 1022 1226 1022 Graphics interfaceis configured to generate frames of video data and transmit the frames of video data to graphics device. In one embodiment, graphics interfaceis included as part of an integrated circuit, along with processor. Alternatively, graphics interfaceis configured as a hardware accelerator that is distinct from (i.e., is not integrated within) a chipset that includes processor.

1226 1228 1228 1228 1228 1228 1226 Graphics interfacegenerally represents any type or form of device configured to forward images for display on graphics device. For example, graphics deviceis fabricated using liquid crystal display (LCD) technology, cathode-ray technology, and light-emitting diode (LED) display technology (either organic or inorganic). In some embodiments, graphics devicealso includes a virtual reality display and/or an augmented reality display. Graphics deviceincludes any technically feasible means for generating an image for display. In other words, graphics devicegenerally represents any type or form of device capable of visually displaying information forwarded by graphics interface.

10 FIG. 1020 1236 1202 1234 1236 1020 1236 As illustrated in, content playeralso includes at least one input devicecoupled to communication infrastructurevia input interface. Input devicegenerally represents any type or form of computing device capable of providing input, either computer or human generated, to content player. Examples of input deviceinclude, without limitation, a keyboard, a pointing device, a speech recognition device, a touch screen, a wearable device (e.g., a glove, a watch, etc.), a controller, variations or combinations of one or more of the same, and/or any other type or form of electronic input mechanism.

1020 1240 1202 1238 1240 1240 1238 1240 1020 Content playeralso includes a storage devicecoupled to communication infrastructurevia a storage interface. Storage devicegenerally represents any type or form of storage device or medium capable of storing data and/or other computer-readable instructions. For example, storage deviceis a magnetic disk drive, a solid-state drive, an optical disk drive, a flash drive, or the like. Storage interfacegenerally represents any type or form of interface or device for transferring data between storage deviceand other components of content player.

1020 1020 10 FIG. 10 FIG. Many other devices or subsystems are included in or connected to content player. Conversely, one or more of the components and devices illustrated inneed not be present to practice the embodiments described and/or illustrated herein. The devices and subsystems referenced above are also interconnected in different ways from that shown in. Content playeris also employed in any number of software, firmware, and/or hardware configurations. For example, one or more of the example embodiments disclosed herein are encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term “computer-readable medium,” as used herein, refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, without limitation, transmission-type media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, etc.), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives and flash media), and other digital storage systems.

1020 1024 1240 1022 1024 1022 1020 A computer-readable medium containing a computer program is loaded into content player. All or a portion of the computer program stored on the computer-readable medium is then stored in memoryand/or storage device. When executed by processor, a computer program loaded into memorycauses processorto perform and/or be a means for performing the functions of one or more of the example embodiments described and/or illustrated herein. Additionally or alternatively, one or more of the example embodiments described and/or illustrated herein are implemented in firmware and/or hardware. For example, content playeris configured as an Application Specific Integrated Circuit (ASIC) adapted to implement one or more of the example embodiments disclosed herein.

As detailed above, the computing devices and systems described and/or illustrated herein broadly represent any type or form of computing device or system capable of executing computer-readable instructions, such as those contained within the modules described herein. In their most basic configuration, these computing device(s) may each include at least one memory device and at least one physical processor.

In some examples, the term “memory device” generally refers to any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, a memory device may store, load, and/or maintain one or more of the modules described herein. Examples of memory devices include, without limitation, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, Hard Disk Drives (HDDs), Solid-State Drives (SSDs), optical disk drives, caches, variations or combinations of one or more of the same, or any other suitable storage memory.

In some examples, the term “physical processor” generally refers to any type or form of hardware-implemented processing unit capable of interpreting and/or executing computer-readable instructions. In one example, a physical processor may access and/or modify one or more modules stored in the above-described memory device. Examples of physical processors include, without limitation, microprocessors, microcontrollers, Central Processing Units (CPUs), Field-Programmable Gate Arrays (FPGAs) that implement softcore processors, Application-Specific Integrated Circuits (ASICs), portions of one or more of the same, variations or combinations of one or more of the same, or any other suitable physical processor.

Although illustrated as separate elements, the modules described and/or illustrated herein may represent portions of a single module or application. In addition, in certain embodiments one or more of these modules may represent one or more software applications or programs that, when executed by a computing device, may cause the computing device to perform one or more tasks. For example, one or more of the modules described and/or illustrated herein may represent modules stored and configured to run on one or more of the computing devices or systems described and/or illustrated herein. One or more of these modules may also represent all or portions of one or more special-purpose computers configured to perform one or more tasks.

In addition, one or more of the modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. Additionally or alternatively, one or more of the modules recited herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.

In some embodiments, the term “computer-readable medium” generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, without limitation, transmission-type media, such as carrier waves, and non-transitory-type media, such as magnetic-storage media (e.g., hard disk drives, tape drives, and floppy disks), optical-storage media (e.g., Compact Disks (CDs), Digital Video Disks (DVDs), and BLU-RAY disks), electronic-storage media (e.g., solid-state drives and flash media), and other distribution systems.

The process parameters and sequence of the steps described and/or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various exemplary methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.

The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or to be limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects illustrative and not restrictive. Reference should be made to the appended claims and their equivalents in determining the scope of the present disclosure.

Unless otherwise noted, the terms “connected to” and “coupled to” (and their derivatives), as used in the specification and claims, are to be construed as permitting both direct and indirect (i.e., via other elements or components) connection. In addition, the terms “a” or “an,” as used in the specification and claims, are to be construed as meaning “at least one of.” Finally, for ease of use, the terms “including” and “having” (and their derivatives), as used in the specification and claims, are interchangeable with and have the same meaning as the word “comprising.”

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

October 2, 2025

Publication Date

May 14, 2026

Inventors

Olof Johansson
Rosanna Kam Shui Lee
Ameya Ramesh Vasani
Poorna Chandra Tejashvi Reddy

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “SYSTEMS AND METHODS FOR OPTIMIZING USAGE OF MEDIA PROCESSING CONTAINERS” (US-20260133828-A1). https://patentable.app/patents/US-20260133828-A1

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.