In some embodiments, a method determines an instance of content and a metric to evaluate a quality of an encoding of the instance of content. A set of features is extracted. The method performs an optimized search process to evaluate different combinations of encoding parameter values that are used to encode the content to generate instances of encoded content. The instances of encoded content are compared to the metric to determine a next combination of encoding parameter values to use. An optimal combination of encoding parameter values is selected that is associated with one of the instances of encoded content. Predicted encoding parameter values are output from a model using model parameters based on an input of the set of features. The method is trained using the optimal combination of encoding parameter values and the predicted encoding parameter values, wherein the model parameters are adjusted in the training.
BACKGROUND
Video encoders have many parameters that can be tuned to specific scenarios (e.g., on-demand vs. live video) or in a per-instance of content/scene manner. Examples of encoding parameters include a number of reference frames, adaptive quantization mode and strength, a number of b frames, and motion estimation range. Finding the optimal encoding parameters, however, is non-trivial and resource intensive.
1. A method comprising: determining an instance of content and a metric to evaluate a quality of an encoding of the instance of content; extracting a set of features for the instance of content; performing an optimized search process to evaluate different combinations of encoding parameter values that are used to encode the content to generate instances of encoded content, wherein the instances of encoded content are compared to the metric to determine a next combination of encoding parameter values to use; selecting an optimal combination of encoding parameter values that is associated with one of the instances of encoded content, wherein the one of the instances of encoded content is selected based a comparison to the metric; outputting predicted encoding parameter values from a model using model parameters based on an input of the set of features; and training the model using the optimal combination of encoding parameter values and the predicted encoding parameter values, wherein the model parameters are adjusted in the training. ||
14. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for: determining an instance of content and a metric to evaluate a quality of an encoding of the instance of content; extracting a set of features for the instance of content; performing an optimized search process to evaluate different combinations of encoding parameter values that are used to encode the content to generate instances of encoded content, wherein the instances of encoded content are compared to the metric to determine a next combination of encoding parameter values to use; selecting an optimal combination of encoding parameter values that is associated with one of the instances of encoded content, wherein the one of the instances of encoded content is selected based a comparison to the metric; outputting predicted encoding parameter values from a model using model parameters based on an input of the set of features; and training the model using the optimal combination of encoding parameter values and the predicted encoding parameter values, wherein the model parameters are adjusted in the training. ||
15. A method comprising: receiving a trained model, wherein the model was trained using an optimized search process that evaluated different combinations of encoding parameter values that are used to encode an instance of content to generate instances of encoded content, wherein the instances of encoded content are compared to a metric to determine a next combination of encoding parameter values to use to determine an optimal combination of encoding parameter values for the instance of content; extracting feature values of a new instance of content; inputting the feature values into the trained model to generate predicted encoding parameters; and encoding the new instance of content using the predicted encoding parameter values.