1. A method for encoding a flame in a video stream, the frame having a plurality of blocks, the method comprising: Identifying a noise reduction frame; identifying a first motion vector for encoding a current block of the plurality of blocks; wherein the first motion vector indicates a reference block in a reference frame, and wherein the noise reduction frame differs from the reference frame; identifying a noise reduction block from the noise reduction frame using the first motion vector, such that the noise reduction block is collocated with the reference block; generating a denoised block using the current block and the noise reduction block; identifying a second motion vector for encoding the denoised block based on the first motion vector; generating a residual block using the denoised block and the second motion vector; and generating an encoded block based on the residual block and the second motion vector; and Wherein the current block includes a plurality of current pixels; the noise reduction block includes a plurality of noise reduction pixels; and generating the denoised block includes: identifying a filter coefficient based on a current pixel from the plurality of current pixels and a noise reduction pixel from the plurality of noise reduction pixels; producing a denoised pixel based on the filter coefficient, the current pixel, and the noise reduction pixel; on a condition that a difference between the current pixel and the denoised pixel is less than a first threshold and a sum of squared errors value is less than a second threshold, including the denoised pixel in the denoised block; on a condition that the difference between the current pixel and the denoised pixel is greater than the first threshold, including the current pixel in the denoised block; and on a condition that the difference between the current pixel and the denoised pixel is equal to the first threshold, including the current pixel in the denoised block; and wherein generating the denoised block includes weighting the filter coefficient based on a weighting metric, wherein: on a condition that a magnitude of the first motion vector is greater than a third threshold and a difference between a sum of squared errors of the first motion vector and a sum of squared errors of a zero magnitude motion vector is greater than a fourth threshold, the weighting metric is zero; and on a condition that a magnitude of the first motion vector is less than the third threshold and a difference between a sum of squared errors of the first motion vector and a sum of squared errors of a zero magnitude motion vector is less than the fourth threshold, the weighting metric is the magnitude of the first motion vector.