1. A method for creating an output digital image by performing fast detail-preserving filtering of an input digital image comprising: a) selecting a pixel a from the input digital image, pixel a not being in a row or column at the boundary of the image; b) calculating the difference between the selected pixel and each of its four neighboring pixels located above, left, right, and below the selected pixel; c) calculating a scaled weighted sum of differences between the selected pixel and its four neighbors, the difference being scaled by a data-adaptive scaling function using the pixel under consideration to estimate noise variance, where for each neighboring pixel b the weight is a function ƒ of the difference between the selected pixel a and its neighboring pixel b under consideration, where f ⁡ ( a , b ) = 1 1 + ( a - b ) 2 / κ ⁡ ( a , b ) 2 , the data-adaptive scaling function being κ(a,b)=θ(Θ 0 +Θ 1 a+Θ 2 a 2 ) where θ is a scaling factor, and where Θ 0 , Θ 1 , and Θ 2 are quadratic model parameters; d) adding the weighted sum of differences to the value of the selected pixel; and performing a) through d) for each pixel in the input digital image that is not in a row or column at the boundary of the image.