1. A method for causing a processor to process an image frame of pixel data, the image including a plurality of pixels and the pixel data corresponding to the pixels, the method comprising: selecting a first pixel; selecting a plurality of second pixels in the vicinity of the first pixel; computing a weighted average value of the pixel data corresponding to the selected pixels such that the weight associated with each selected pixel comprises a combination of a first weight inversely related to that pixel's distance from the first pixel and a second weight inversely related to the difference between that pixel's data and the first pixel's data; and adjusting the first pixel data according to the computed weighted average, wherein the first pixel data is adjusted by a series of iterations each of which utilizes the previously adjusted data of the first pixel and the data of two pixels situated at the cross section of one of two perpendicular axes passing through the first pixel and a rectangle with the first pixel at its center.