1. A method of encoding video content, comprising: providing input video content; providing a resource budget; partitioning the video content into regions; and generating optimal encoding parameters for the regions to enable an encoder to produce an encoded version of the video content with maximum quality criterion within the provided resource budget, wherein the encoding parameters are divided into sets of parameters associated with each region, and wherein the step of providing encoding parameters to enable an encoder to produce the encoded version of the video content with maximum quality criterion within the resource budget is performed by solving a optimization problem { ϑ 1 ⋆ , … ⁢ , ϑ L ⋆ } = arg ⁢ ⁢ max { ϑ 1 ⋆ , … , ϑ L ⋆ } ⁢ f ⁡ ( q 1 ⁡ ( ϑ 1 ; y 1 , v 1 ) , … ⁢ , q L ⁡ ( ϑ L ; y L , v L ) ) subject to ∑ l = 1 L ⁢ r _ l ⁡ ( ϑ l ; y l , v l ) ≤ R _ 0 , Where {θ* 1 ,. .. θ* L } is the optimal set of encoder parameters for the regions; r l (θ l ;y l ,v l ) is the vector of resources used by the encoder for encoding the input video content y l in region 1 with the set of encoder parameters θ l ; q l (θ l ;y l ,v l ) is the video quality criterion in region 1 as the result of encoding of video content y l with the set of encoder parameters θ l , v l is the additional information associated with region 1 , and f is an aggregation function.