A method of encoding video data in a video encoder, the method comprising: i) encoding a bi-directional coded unit at the video encoder, wherein: the coded unit comprises a slice having bi-directional and uni-directional video blocks, and the coded unit includes syntax elements indicating explicit weights to be applied during explicit weighted prediction of the bi-directional video blocks in the coded unit; ii) encoding via the video encoder one or more bi-directional video blocks in the coded unit based on the explicit weights based on data from a first list of predictive reference frames weighted by a first weighting factor, w2, and data from a second list of predictive reference frames weighted by a second weighting factor, w3, wherein the first and second weighting factors, w2, w3, are calculated by multiplying a default weight by a scaling factor, the scaling factor being the ratio of summed pixel values of a frame currently being encoded and a frame from the respective first and second lists of predictive reference frames; and iii) encoding via the video encoder one or more uni-directional video blocks in the coded unit based on one or more different weights based on data from the first or second list of predictive reference frames weighted by a third weighting factor, w0 or w1, respectively and wherein: the weighting factor, w0, for the uni-directional video blocks is different from the first weighting factor, w2, for the bi-directional video blocks within the bi-directional coded unit, and the weighting factor, w1, for the uni-directional video blocks is different from the second weighting factor w3 for the bi-directional video blocks within the bi-directional coded unit. i) encoding a bi-directional coded unit at the video encoder, wherein: the coded unit comprises a slice having bi-directional and uni-directional video blocks, and the coded unit includes syntax elements indicating explicit weights to be applied during explicit weighted prediction of the bi-directional video blocks in the coded unit; the coded unit comprises a slice having bi-directional and uni-directional video blocks, and the coded unit includes syntax elements indicating explicit weights to be applied during explicit weighted prediction of the bi-directional video blocks in the coded unit; ii) encoding via the video encoder one or more bi-directional video blocks in the coded unit based on the explicit weights based on data from a first list of predictive reference frames weighted by a first weighting factor, w2, and data from a second list of predictive reference frames weighted by a second weighting factor, w3, wherein the first and second weighting factors, w2, w3, are calculated by multiplying a default weight by a scaling factor, the scaling factor being the ratio of summed pixel values of a frame currently being encoded and a frame from the respective first and second lists of predictive reference frames; and iii) encoding via the video encoder one or more uni-directional video blocks in the coded unit based on one or more different weights based on data from the first or second list of predictive reference frames weighted by a third weighting factor, w0 or w1, respectively and wherein: the weighting factor, w0, for the uni-directional video blocks is different from the first weighting factor, w2, for the bi-directional video blocks within the bi-directional coded unit, and the weighting factor, w1, for the uni-directional video blocks is different from the second weighting factor w3 for the bi-directional video blocks within the bi-directional coded unit. the weighting factor, w0, for the uni-directional video blocks is different from the first weighting factor, w2, for the bi-directional video blocks within the bi-directional coded unit, and the weighting factor, w1, for the uni-directional video blocks is different from the second weighting factor w3 for the bi-directional video blocks within the bi-directional coded unit.