Managing a video encoder to facilitate loading and executing another program
AssigneeNVIDIA Corporation
InventorsMichael L. Lightstone, Stefan Eckart, Hassane S. Azar
Life of this patent
Estimating the term…
Abstract
A software program includes at least two performance levels. Each performance level has an associated processor utilization. Each performance level corresponds to optimization criteria, such as a quality of data processing performed by the software program. The performance level is selected to maintain processor utilization by the software program within constraints, such as a desired range of processor utilization and a minimum idle thread allocation.
Claims34
A method of managing utilization of an integrated circuit (IC) processor, comprising:
- monitoring processor utilization by an adjustable software video encoder program running on a first thread, the adjustable video software encoder program having at least two different performance levels associated with a video quality of individual frames, wherein each performance level has a different associated IC processor utilization and said performance levels comprise video encoding levels corresponding to an encoder configuration;
- selecting a performance level corresponding to a video encoding level to achieve a highest possible video quality while maintaining an idle thread utilization above a minimum threshold selected to permit another software program to load and execute;
- and
- generating running estimates of processor utilization for previous instantiations of the adjustable software video encoder program to determine how much to adjust said performance levels.
A method of managing utilization of an integrated circuit (IC) processor, comprising:
- monitoring processor utilization by an adjustable software video encoder program running on a first thread, the adjustable video software encoder program having at least two different performance levels associated with a video quality of individual frames, wherein each performance level has a different associated IC processor utilization and said performance levels comprise video encoding levels corresponding to an encoder configuration;
- selecting a performance level corresponding to a video encoding level to achieve a highest possible video quality while maintaining an idle thread utilization above a minimum threshold selected to permit another software program to load and execute, and
- in a startup mode of operation, selecting a startup performance level of said adjustable software video encoder program to have the startup performance level with a processor utilization below a maximum IC processor utilization by a margin selected to accommodate differences in processor performance of at least two different types of IC processors.
A method of managing processor utilization in a video system, comprising:
- providing a software video encoder having a plurality of encoding levels, each encoding level having a different associated processor utilization, where each encoding level corresponds to an encoder configuration affecting a video quality of individual frames;
- monitoring processor utilization of said software video encoder and of idle thread utilization;
- determining a greatest encoding level of said video encoder to maintain a minimum idle thread utilization above a minimum threshold selected to permit another software program to load and execute;
- wherein said software video encoder automatically adjusts its encoding level to achieve the best video quality while maintaining idle thread utilization to permit said another software program to load and execute;
- and
- generating running estimates of processor utilization for previous instantiations of the adjustable software video encoder program to determine how much to adjust said encoding levels.
A method of managing processor utilization in a video system, comprising:
- providing a software video encoder having a plurality of encoding levels, each encoding level having a different associated processor utilization, where each encoding level corresponds to an encoder configuration affecting a video quality of individual frames;
- monitoring processor utilization of said software video encoder and of idle thread utilization;
- determining a greatest encoding level of said software video encoder to maintain a minimum idle thread utilization above a minimum threshold selected to permit another software program to load and execute;
- wherein said software video encoder automatically adjusts its encoding level to achieve the best video quality while maintaining idle thread utilization to permit said another software program to load and execute;
- and
- in a startup mode of operation, selecting a startup encoding level of said software video encoder to have the startup encoding level with a processor utilization below a maximum processor utilization by a margin selected to accommodate differences in processor performance of at least two different types of processors.
A computer readable medium having computer code comprising instructions selected to:
- monitor processor utilization by an adjustable software video encoder program running on a first thread, the adjustable video encoder program having at least two different performance levels, wherein said performance levels comprise encoding levels corresponding to an encoder configuration related to video quality;
- select a performance level to achieve a highest possible video quality of individual frames while maintaining an idle thread utilization above a minimum threshold selected to permit another software program to load and execute;
- and
- generate running estimates of processor utilization for previous instantiations of the adjustable software video encoder program to determine how much to adjust said performance levels.
A computer readable medium having computer code comprising instructions selected to:
- monitor processor utilization of a video encoder and of idle thread utilization, the video encoder having a plurality of encoding levels each encoding level having a different associated processor utilization, where each encoding level corresponds to an encoder configuration affecting a video quality of individual frames;
- determine a greatest encoding level of the video encoder to maintain a minimum idle thread utilization to maintain an idle thread utilization above a minimum threshold selected to permit another program to load and execute;
- adjusting the encoding level to achieve the best video quality of individual frames while maintaining idle thread utilization to permit said another software program to load and execute;
- and
- generate running estimates of processor utilization for previous instantiations of the video encoder to determine how much to adjust said performance levels.
A computer readable medium having computer code comprising instructions selected to:
- monitor processor utilization by an adjustable software video encoder program running on a first thread, the adjustable software video encoder program having at least two different performance levels, wherein said performance levels comprise encoding levels corresponding to an encoder configuration related to video quality;
- select a performance level to achieve a highest possible video quality of individual frames while maintaining an idle thread utilization above a minimum threshold selected to permit another software program to load and execute;
- and
- in a startup mode of operation selecting a startup encoding level of said adjustable software video encoder program to have the startup encoding level with a processor utilization below a maximum processor utilization by a margin selected to accommodate differences in processor performance of at least two different types of processors.
A computer readable medium having computer code comprising instructions selected to:
- determine a greatest encoding level of a video encoder having a plurality of encoding levels to maintain a minimum idle thread utilization to maintain an idle thread utilization above a minimum threshold selected to permit another program to load and execute;
- adjusting the encoding level to achieve the best video quality of individual frames while maintaining idle thread utilization to permit said another software program to load and executes and
- in a startup mode of operation, selecting a startup encoding level of said video encoder to have the startup encoding level with a processor utilization below a maximum processor utilization by a margin selected to accommodate differences in processor performance of at least two different types of processors.
Dependencies are inferred from the claim text.