1. A method for performing image noise reduction, the method comprising: performing color estimation of a pixel in an image, wherein the image is stored in a data structure in a non-transitory computer-readable storage medium and the pixel has an initial pixel value; selecting a pixel-block size for determining one or more similarities between one or more first pixel blocks associated with the pixel, wherein each of the one or more first pixel blocks has a size corresponding to the pixel-block size, wherein determining one or more similarities is based at least in part on the color estimation; calculating one or more first pixel block average values for the one or more first pixel blocks; calculating a weighted average of the one or more first pixel block average values; and updating the data structure by replacing the initial pixel value of the pixel with the weighted average of the one or more first pixel block average values, wherein performing color estimation of the pixel includes, determining one or more second pixel blocks associated with the pixel, calculating one or more second pixel block average values for the second pixel blocks, calculating a weighted average of the second pixel block average values using a bilateral filtering algorithm, and estimating a color value of the pixel based at least in part on the weighted average of the second pixel block average values.