Referring again to FIG. 1, in certain aspects, the processing unit 120 may include a video enhancer 198 configured to enhance the quality of videos by, for example, reducing compression artifacts and/or adding texture to the video. In some embodiments, the video enhancer 198 can be a hardware component of the processing unit 120 and/or a software component executable by the processing unit 120. The video enhancer 198 may be configured to estimate an optical flow between a first noisy frame and a second noisy frame. A noisy frame may be a frame which resulted from encoding and decoding or compressing and decompressing an original frame, and that includes artifacts, loss of high frequency content (e.g., corresponding to fine textures), or other inconsistencies with the original frame as a result of the encoding and decoding or compression and decompression. The second noisy frame may follow the first noisy frame. In some examples, the first and second noisy frames are decoded frames. In some examples, the first and second noisy frames are decoded frames of compressed content. For example, the content decoder 122 may decode encoded content to generate the first and second noisy frames, and the content decoder 122 may provide the first and second noisy frames to the video enhancer 198. The video enhancer 198 may also warp a first enhanced frame to align with the second noisy frame. The video enhancer 198 may perform the warping based on the estimation of the optical flow between the first noisy frame and the second noisy frame. The first enhanced frame may be an enhanced frame of the first noisy frame. The video enhancer 198 may further generate a second enhanced frame based on the warped first enhanced frame and the second noisy frame. Additionally, the video enhancer 198 may output the second enhanced frame.