Method for bilateral filtering of digital images
AssigneeHewlett-Packard Development Company, L.P.
InventorRon Maurer
Life of this patent
Estimating the term…
Abstract
A method for processing an image using a bilateral filter. The bilateral filter is reformulated at each pixel location in the image into a sum of the original signal value of a central pixel at said pixel location and a bilateral correction term which is a function of local signal differences between the central pixel and its neighbors. The bilateral correction term is calculated using a computationally efficient approximation.
Claims8
A method for processing an image using a bilateral filter, comprising the steps of:
- generating a modified bilateral filter by reformulating an initial bilateral filter for each pixel location in the image into a sum of the original signal value of a central pixel at said pixel location and a bilateral correction term which is a function of local signal differences between the central pixel and its neighbors;
- processing each pixel (i) in the image by:
- buffering a neighborhood of said pixels as determined by the size of the bilateral filter convolution kernel Kj;
- and
- calculating a filtered value for said pixel (i) using a bilateral filter including a normalization expression implemented as a Taylor series expansion;
- replacing the normalization expression with a value of 1;
- for each possible quantized said signal difference:
- pre-calculating the product of the photometric weight for each neighboring pixel j and the signal difference Δfj between pixel j and center pixel i, to produce a signal value PSI(Δfj) representing the influence of neighboring pixel j;
- storing each said value of PSI in a look-up table;
- and
- using a value of PSI in the look-up table corresponding to an instant value of Δƒj to calculate the contribution of the neighboring pixel j, by multiplying the value for pixel j with a corresponding convolution kernel coefficient Kj.
A method for processing an image using a bilateral filter, comprising the steps of:
- generating a modified bilateral filter by reformulating an initial bilateral filter for each pixel location in the image into a sum of the original signal value of a central pixel at said pixel location and a bilateral correction term which is a function of local signal differences between the central pixel and its neighbors;
- and
- processing each pixel (i) in the image by:
- buffering a neighborhood of said pixels as determined by the size of the bilateral filter convolution kernel Kj;
- and
- calculating a filtered value for said pixel (i) using a bilateral filter including a normalization expression implemented as a Taylor series expansion;
- wherein the normalization expression is expanded by performing the additional steps of:
- for each possible quantized said signal difference Δfj:
- pre-calculating the photometric weight g(Δfj);
- storing each said value of photometric weight in a look-up table;
- and
- using a value of g in the look-up table corresponding to an instant value of a signal difference in one or more color-channels Δfj to compute the bilateral weight of a neighboring pixel j, by multiplying the value for pixel j with a corresponding convolution kernel coefficient Kj;
- computing a bilateral correction term for each of the color channels, by multiplying the calculated bilateral weight of the neighboring pixel j with the signal differences Δcj corresponding to each of the color channels;
- and
- adding each of the computed bilateral correction terms to the central pixel value for the corresponding channel.
A method for generating a zero-order approximation of a bilateral filter, wherein a single channel input signal including an image comprising a plurality of pixels is filtered to provide a single channel output corresponding to one dimension of a filtered image, the method comprising the steps of:
- summing, for all said pixels i in the image, contributions from each neighboring pixel j, corresponding to Kj, wherein the contribution of each said neighboring pixel j is:
- (a) the photometric weight for each said neighboring pixel j, multiplied by
- (b) the signal difference between pixel j and the center pixel single channel signal;
- multiplied by
- (c) the convolution kernel coefficient Kj for the neighboring pixel (j);
- and
- adding the single channel center pixel signal to generate the single channel output for the center pixel;
- wherein said photometric weight for neighboring pixel j is determined by the difference between the center pixel signal and the signal at the neighboring pixel j, corresponding to Kj;
- and
- wherein the convolution kernel coefficient Kj is a weight that determines the contribution of neighbor j to a weighted average filter;
- quantizing the input signal;
- for each possible quantized said signal difference:
- pre-calculating the product of the photometric weight for each neighboring pixel j and the signal difference Δfj between pixel j and center pixel i, to produce a signal value PSI(Δfj) representing the influence of neighboring pixel j;
- storing each said value of PSI in a look-up table;
- and
- using the value of PSI in the look-up table corresponding to an instant value of Δfj to calculate the contribution of the neighboring pixel j, by multiplying the value for pixel j with a corresponding convolution kernel coefficient Kj.
A system for processing an image including a plurality of pixels comprising:
- a look-up table stored in said memory, and a bit-shift register a processor and associated memory;
- a bilateral filter program, stored in said memory and executable by said processor;
- wherein the bilateral filter program processes each pixel (i) in the image by:
- reformulating the bilateral filter, for each pixel location in the image, into a sum of the original signal value of a central pixel at said pixel location and a bilateral correction term which is a function of local signal differences between the central pixel and its neighbors;
- buffering a neighborhood of said pixels as determined by the size of the bilateral filter convolution kernel Kj;
- and calculating a filtered value for said pixel (i) using a bilateral filter including a normalization expression implemented as a truncated Taylor series expansion;
- wherein the normalization expression is expanded using a Taylor series expansion by performing the additional steps of:
- for each possible guantized said signal difference:
- pre-calculating the product of the photometric weight for each neighboring pixel j and the signal difference Δfj between pixel j and center pixel i, to produce a signal value PSI(Δfj) representing the influence of neighboring pixel j;
- storing each said value of PSI in the look-up table;
- and
- using a value of PSI in the look-up table corresponding to an instant value of Δfj to calculate the contribution of the neighboring pixel j, by multiplying the value for pixel j with a corresponding convolution kernel coefficient Kj;
- wherein the normalization expression is implemented using the bit-shift register.
Dependencies are inferred from the claim text.