IP Library Granted Patent US 9,311,694
Granted Patent B2
US 9,311,694 · App. 14/094,405 · Granted Apr 12, 2016

Method for image processing using local statistics convolution

Inventor: Nils Kokemohr (Hamburg, DE)
Assignee: Google Inc.
G06T5/001G06T5/009G06T5/20G06T5/40G06T2207/20028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,311,694
App. No.
14/094,405
Granted
Apr 12, 2016
Kind
B2
Abstract

A method for filtering a digital image, comprising segmenting the digital image into a plurality of tiles; computing tile histograms corresponding to each of the plurality of tiles; deriving a plurality of tile transfer functions from the tile histograms preferably using 1D convolutions; interpolating a tile transfer function from the plurality of tile transfer functions; and filtering the digital image with the interpolated tile transfer function. Many filters otherwise difficult to conceive or to implement are possible with this method, including an edge-preserving smoothing filter, HDR tone mapping, edge invariant gradient or entropy detection, image upsampling, and mapping coarse data to fine data.

Claims (39)

1. A method for filtering a digital image, the method comprising:

calculating a regional histogram corresponding to one or more regions in a first plurality of regions, each of the first plurality of regions comprising a plurality of pixels of the digital image;

calculating for each region in the first plurality of regions a regional transfer function comprising a convolution of the corresponding regional histogram with a first convolution kernel; and

filtering the digital image with an image transfer function based on at least one of the regional transfer functions.

2. The method of claim 1 , where the plurality of pixels comprises the entire digital image.

3. The method of claim 2 , where the regions are non-overlapping, and each pixel of the plurality of pixels is contained within a region.

4. The method of claim 1 , further comprising interpolating two or more of a plurality of regional transfer functions, wherein the interpolation includes:

selecting a pixel having a luminosity value from a first region of the first plurality of regions;

computing a plurality of single value results by inputting the selected pixel's luminosity value into each of a second plurality of regional transfer functions, said second plurality including regional transfer functions corresponding to regions not comprising the selected pixel; and

interpolating a resulting value for the selected pixel as a function of the plurality of single value results.

5. The method of claim 1 , where the first convolution kernel is a Gaussian function.

6. The method of claim 1 , where the first convolution kernel is one-dimensional.

7. The method of claim 1 , where the regional transfer function is also a function of a second convolution comprising the convolution of the corresponding regional histogram with a second convolution kernel.

8. The method of claim 7 , where the first convolution kernel is a Gaussian function, and the second convolution kernel is a product of a Gaussian function and a step function.

9. The method of claim 7 , where the second convolution is weighted by pixel luminosity.

10. The method of claim 1 , where the plurality of regional histograms are a function of luminosity, of pixel difference, of color, of depth along a z-axis, or of saturation.

11. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps to transform a digital image, said method steps comprising:

calculating a regional histogram corresponding to each region in the first plurality of regions, each of the first plurality of regions comprising a plurality of pixels in the digital image;

calculating for each region in the first plurality of regions a regional transfer function comprising a convolution of the corresponding regional histogram with a first convolution kernel; and

filtering the digital image by applying the with an image transfer function based on at least one of the regional transfer functions to each of the first plurality of pixels.

12. The method of claim 11 , where the plurality of pixels comprises the entire digital image.

13. The method of claim 12 , where the regions are non-overlapping, and each pixel of the plurality of pixels is contained within a region.

14. The method of claim 11 , further comprising interpolating two or more of a plurality of regional transfer functions, wherein the interpolation includes:

selecting a pixel having a luminosity value from a first region of the first plurality of regions;

computing a plurality of single value results by inputting the selected pixel's luminosity value into each of a second plurality of regional transfer functions, said second plurality including regional transfer functions corresponding to regions not comprising the selected pixel; and

interpolating a resulting value for the selected pixel as a function of the plurality of single value results.

15. The method of claim 11 , where each regional transfer function is also a function of a second convolution comprising the convolution of the corresponding regional histogram with a second convolution kernel.

16. A system comprising:

one or more processors coupled to a program storage device readable by the one or more processors, tangibly embodying a program of instructions executable by the one or more processors to perform operations to transform a digital image, said operations including:

calculating a regional histogram corresponding to each region in the first plurality of regions, each of the first plurality of regions comprising a plurality of pixels in the digital image;

calculating for each region in the first plurality of regions a regional transfer function comprising a convolution of the corresponding regional histogram with a first convolution kernel; and

filtering the digital image by applying the with an image transfer function based on at least one of the regional transfer functions to each of the first plurality of pixels.

17. The system of claim 16 , where the plurality of pixels comprises the entire digital image.

18. The system of claim 17 , where the regions are non-overlapping, and each pixel of the plurality of pixels is contained within a region.

19. The system of claim 16 , wherein the operations further include interpolating two or more of a plurality of regional transfer functions, wherein the interpolation includes:

selecting a pixel having a luminosity value from a first region of the first plurality of regions;

computing a plurality of single value results by inputting the selected pixel's luminosity value into each of a second plurality of regional transfer functions, said second plurality including regional transfer functions corresponding to regions not comprising the selected pixel; and

interpolating a resulting value for the selected pixel as a function of the plurality of single value results.

20. The method of claim 16 , where each regional transfer function is also a function of a second convolution comprising the convolution of the corresponding regional histogram with a second convolution kernel.

Assignments (3)
CHANGE OF NAME Recorded Oct 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044129/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2017
From: KOKEMOHR, NILS
To: NIK SOFTWARE, INC.
Reel/Frame 042680/0181 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2017
From: NIK SOFTWARE, INC.
To: GOOGLE INC.
Reel/Frame 042680/0194 →
Continuity (2)
Continuation 12566782 · Sep 25, 2009
Related Publication 20140105490A1 · Apr 17, 2014