Legal claims defining the scope of protection, as filed with the USPTO.
1. A directional bilateral filter circuit comprising: an edge detection circuit configured to determine an edge direction for each pixel in an image by processing a pixel value of each pixel and pixel values of a subset of pixels in the image within a defined distance from each pixel; a coefficient processor circuit coupled to the edge detection circuit, the coefficient processor circuit configured to: determine a plurality of non-directional taps for the pixels in the subset by processing information about a location of each pixel in the subset and each difference between the pixel value and another pixel value of each pixel in the subset, determine a plurality of directional taps for the pixels in the subset by processing at least the edge direction and each difference, and determine a plurality of filter taps for the pixels in the subset by processing the non-directional taps and the directional taps; and a filter circuit coupled to the coefficient processor circuit, the filter circuit configured to calculate a filtered pixel value of each pixel in a filtered image using the filter taps and the pixel values.
2. The directional bilateral filter circuit of claim 1 , wherein: the edge detection circuit is further configured to determine a weight for the edge direction by processing differences between each pair of the pixel values; and the coefficient processor circuit is further configured to determine each filter tap for each pixel in the subset by blending each of the non-directional taps with a corresponding directional tap of the plurality of directional taps using the weight.
3. The directional bilateral filter circuit of claim 2 , wherein the edge detection circuit is further configured to determine the weight for the edge direction by processing at least: a set of direction values for a set of edge directions, a minimum of the set of direction values, an average of the set of direction values, a direction value from the set of direction values associated with a direction perpendicular to a direction associated with the minimum, and a noise standard deviation for each pixel in the image.
4. The directional bilateral filter circuit of claim 1 , wherein the edge detection circuit is further configured to: determine a set of direction values for a set of edge directions by processing absolute differences between each pair of the pixel values; and determine the edge direction for each pixel in the image by processing the set of direction values.
5. The directional bilateral filter circuit of claim 4 , wherein each direction value in the set of direction values represents a likelihood that each pixel in the image is part of an edge extending in a corresponding edge direction of the set of edge directions.
6. The directional bilateral filter circuit of claim 1 , further comprising a photometric difference calculator circuit coupled to the coefficient processor circuit, the photometric difference calculator circuit configured to: compute a corresponding difference of a plurality of differences between the pixel value and the other pixel value of each pixel in the subset; and normalize the corresponding difference for each pixel in the subset using a noise standard deviation of each pixel in the image to obtain a corresponding normalized difference of a plurality of normalized differences for each pixel in the subset.
7. The directional bilateral filter circuit of claim 6 , wherein the coefficient processor circuit is further configured to: determine a photometric factor for each pixel in the subset by processing the corresponding normalized difference, a knee value associated with each pixel in the subset, and a slope value associated with each pixel in the subset; determine a spatial coefficient for each pixel in the subset by processing the information about the location of each pixel in the subset relative to an edge having the edge direction, and gradient information for each pixel in the subset indicating whether each pixel in the subset is on a gradient; and compute each of the directional taps for each pixel in the subset by multiplying the photometric factor and the spatial coefficient.
8. The directional bilateral filter circuit of claim 6 , wherein the coefficient processor circuit is further configured to: determine a photometric factor for each pixel in the subset by processing the corresponding normalized difference, a knee value associated with each pixel in the subset, and a slope value associated with each pixel in the subset; determine a spatial coefficient for each pixel in the subset as a function of the location of each pixel in the subset; and compute each of the non-directional taps for each pixel in the subset by multiplying the photometric factor and the spatial coefficient.
9. The directional bilateral filter circuit of claim 1 , further comprising a gradient detector circuit coupled to the coefficient processor circuit, the gradient detector circuit configured to: generate gradient information for each pixel in the subset indicating whether each pixel in the subset is located on a gradient, wherein the coefficient processor circuit is further configured to determine each of the directional taps for each pixel in the subset by processing the edge direction, each difference, and the gradient information for each pixel in the subset.
10. A method comprising: determining an edge direction for each pixel in an image by processing a pixel value of each pixel and pixel values of a subset of pixels in the image within a defined distance from each pixel; determining a plurality of non-directional taps for the pixels in the subset by processing information about a location of each pixel in the subset and each difference between the pixel value and another pixel value of each pixel in the subset; determining a plurality of directional taps for the pixels in the subset by processing at least the edge direction and each difference; determining a plurality of filter taps for the pixels in the subset by processing the non-directional taps and the directional taps; and calculating a filtered pixel value of each pixel in a filtered image using the filter taps and the pixel values.
11. The method of claim 10 , further comprising: determining a weight for the edge direction by processing differences between each pair of the pixel values; and determining each filter tap for each pixel in the subset by blending each of the non-directional taps with a corresponding directional tap of the plurality of directional taps using the weight.
12. The method of claim 11 , further comprising determining the weight for the edge direction by processing at least: a set of direction values for a set of edge directions, a minimum of the set of direction values, an average of the set of direction values, a direction value from the set of direction values associated with a direction perpendicular to a direction associated with the minimum, and a noise standard deviation for each pixel in the image.
13. The method of claim 10 , further comprising: determining a set of direction values for a set of edge directions by processing absolute differences between each pair of the pixel values; and determining the edge direction for each pixel in the image by processing the set of direction values, each direction value in the set of direction values representing a likelihood that each pixel in the image is part of an edge extending in a corresponding edge direction of the set of edge directions.
14. The method of claim 10 , further comprising: computing a corresponding difference of a plurality of differences between the pixel value and the other pixel value of each pixel in the subset; and normalizing the corresponding difference for each pixel in the subset using a noise standard deviation of each pixel in the image to obtain a corresponding normalized difference of a plurality of normalized differences for each pixel in the subset.
15. The method of claim 14 , further comprising: determining a photometric factor for each pixel in the subset by processing the corresponding normalized difference, a knee value associated with each pixel in the subset, and a slope value associated with each pixel in the subset; determining a spatial coefficient for each pixel in the subset by processing the information about the location of each pixel in the subset relative to an edge having the edge direction, and gradient information for each pixel in the subset indicating whether each pixel in the subset is on a gradient; and computing each of the directional taps for each pixel in the subset by multiplying the photometric factor and the spatial coefficient.
16. The method of claim 14 , further comprising: determining a photometric factor for each pixel in the subset by processing the corresponding normalized difference, a knee value associated with each pixel in the subset, and a slope value associated with each pixel in the subset; determining a spatial coefficient for each pixel in the subset as a function of the location of each pixel in the subset; and computing each of the non-directional taps for each pixel in the subset by multiplying the photometric factor and the spatial coefficient.
17. The method of claim 10 , further comprising: generating gradient information for each pixel in the subset indicating whether each pixel in the subset is located on a gradient; and determining each of the directional taps for each pixel in the subset by processing the edge direction, each difference, and the gradient information for each pixel in the subset.
18. A system, comprising: an image sensor configured to capture an image having at least one color component; and a directional bilateral filter circuit comprising: an edge detection circuit configured to determine an edge direction for each pixel in the image by processing a pixel value of each pixel and pixel values of a subset of pixels in the image within a defined distance from each pixel; a coefficient processor circuit coupled to the edge detection circuit, the coefficient processor circuit configured to: determine a plurality of non-directional taps for the pixels in the subset by processing information about a location of each pixel in the subset and each difference between the pixel value and another pixel value of each pixel in the subset, determine a plurality of directional taps for the pixels in the subset by processing at least the edge direction and each difference, and determine a plurality of filter taps for the pixels in the subset by processing the non-directional taps and the directional taps; and a filter circuit coupled to the coefficient processor circuit, the filter circuit configured to calculate a filtered pixel value of each pixel in a filtered image using the filter taps and the pixel values.
19. The system of claim 18 , wherein: the edge detection circuit is further configured to determine a weight for the edge direction by processing differences between each pair of the pixel values; and the coefficient processor circuit is further configured to determine each filter tap for each pixel in the subset by blending each of the non-directional taps with a corresponding directional tap of the plurality of directional taps using the weight.
20. The system of claim 18 , further comprising a gradient detector circuit coupled to the coefficient processor circuit, the gradient detector circuit configured to: generate gradient information for each pixel in the subset indicating whether each pixel in the subset is located on a gradient, wherein the coefficient processor circuit is further configured to determine each of the directional taps for each pixel in the subset by processing the edge direction, each difference, and the gradient information for each pixel in the subset.
Unknown
April 27, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.