Patent ID: 8503528

Claim:
A method for encoding a video signal having a plurality of frames, comprising: selecting a filter set from the plurality of frames, each frame of the filter set having a plurality of macroblocks and each macroblock having a plurality of pixels; selecting a set of filter macroblocks from the filter set, the set of filter macroblocks including a reference macroblock from a reference frame of the filter set and a plurality of filter macroblocks from frames of the filter set other than the reference frame, each of the plurality of filter macroblocks being a macroblock of a respective frame in the filter set that is spatially-correspondent with the reference macroblock; determining a prediction coding mode associated with each macroblock of the set of filter macroblocks; determining a macroblock-specific weighting factor for each macroblock of the set of filter macroblocks, the macroblock-specific weighting factor having a value derived from the associated prediction coding mode; determining weighted averages of pixels in the set of filter macroblocks, wherein a weight applied to each pixel of the pixels in the set of filter macroblocks is derived from the macroblock-specific weighting factor associated with the one of the plurality of filter macroblocks in which the pixel resides; generating at least a portion of a predictive reference frame using the weighted averages, the predictive reference frame being a frame in addition to the plurality of frames of the video signal; predicting at least a portion of one of the plurality of frames of the video signal using the at least the portion of the predictive reference frame; and determining, for at least a first pixel in a macroblock of the plurality of filter macroblocks, a pixel-specific factor at least partially indicative of a temporal correlation between a value of the first pixel and a second spatially correspondent pixel in the reference macroblock; wherein the weight applied to the first pixel in determining a weighted average for the first pixel is derived from the macroblock-specific weighting factor associated with the one of the plurality of filter macroblocks in which the first pixel resides and the pixel-specific factor; and wherein the pixel-specific factor determined for the first pixel is derived using the following formula: P kij =a−f[b *( p kij −p tij ) 2 / n S ], where P kij is the pixel-specific factor, a and b are empirically-derived constants, p kij is a value of the first pixel, p tij is a value of the second pixel, n is an integer, S is a filter strength, and f [ ] is a function that caps the value of its argument to the value of a.