IP Library Granted Patent US 8,723,879
Granted Patent B2
US 8,723,879 · App. 12/996,284 · Granted May 13, 2014

Techniques for reducing noise while preserving contrast in an image

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 8,723,879
App. No.
12/996,284
Granted
May 13, 2014
Kind
B2
Abstract

A system and method for reducing noise in images is disclosed. The present invention reduces noise and preserves contrast of an image to be displayed, the image having pixels, by (1) comparing a value of a first pixel to values of a set of other pixels; (2) comparing values of pixels neighboring the first pixel to values of further pixels neighboring the set of other pixels; (3) determining, for each pixel in the set of other pixels, a weight based on results of steps (1) and (2); (4) calculating a de-noised pixel value based on the weights of each pixel in the set of other pixels; and (5) replacing the value of the first pixel with the de-noised pixel value.

Claims (79)

1. A method comprising:

(a) comparing a value of a first pixel to values of a set of other pixels, wherein the first pixel and the set of other pixels are each of a first color;

wherein step (a) comprises defining a first environment comprising the first pixel and the at least two pixels neighboring the first pixel;

(b) for each pixel in the set of other pixels, comparing values of at least two pixels neighboring the first pixel to values of at least two further pixels neighboring the other pixel, wherein one of the at least two pixels neighboring the first pixel is of a second color and the other of a third color, and wherein one of the at least two further pixels neighboring the other pixel is of the second color and the other of the third color;

wherein step (b) comprises, for each pixel in the set of other pixels, defining an environment comprising the other pixel and the at least two pixels neighboring the other pixel, and determining a difference value that numerically represents how similar the environment defined for the other pixel is to the environment defined for the first pixel;

(c) determining, for each pixel in the set of other pixels, a weight based at least in part on results of steps (a) and (b);

wherein step (c) comprises determining at least one threshold value, comparing the at least one threshold value to each of the difference values determined in step (b), and for each pixel in the set of other pixels, determining the weight for the other pixel based at least in part on the comparison of the at least one threshold value to the difference value determined for the other pixel;

(d) calculating a de-noised pixel value based at least in part on the weights of each pixel in the set of other pixels; and

(e) replacing the value of the first pixel with the de-noised pixel value.

2. The method of claim 1 , wherein step (d) comprises:

summing the weights of each pixel in the set of other pixels;

calculating a lowest power of two that is greater than the sum of the weights; and

calculating the de-noised pixel value as a function of the lowest power of two and the sum of the weights.

3. The method of claim 2 , wherein the lowest power of two is adjusted prior to calculating the de-noised pixel value if a difference between the lowest power of two and the sum of the weights is lower than a predetermined value.

4. The method of claim 2 , wherein the lowest power of two is adjusted prior to calculating the de-noised pixel value if the lowest power of two is lower than a predetermined value.

5. The method of claim 2 , wherein calculating the de-noised pixel value comprises:

calculating a weighted average of the weights of each pixel in the set of other pixels and the weight of the first pixel, wherein the weight of the first pixel is based on the lowest power of two and the sum of the weights; and

setting the de-noised pixel value equal to the weighted average.

6. The method of claim 5 , wherein the weighted average is calculated by shifting bits in a register.

7. The method of claim 1 , wherein step (a) comprises:

calculating, for each pixel in the set of other pixels, a difference between the value of the first pixel and the value of the other pixel.

8. The method of claim 7 , wherein step (b) comprises:

for each pixel in the set of other pixels, calculating, for each pixel of the at least two pixels neighboring the first pixel, a difference between the value of the pixel neighboring the first pixel and the value of a corresponding pixel of the at least two further pixels neighboring the other pixel,

wherein location, relative to the first pixel, of the pixel neighboring the first pixel and location, relative to the other pixel, of the corresponding pixel determines which of the at least two further pixels corresponds to the pixel neighboring the first pixels.

9. The method of claim 8 , wherein the calculated differences of steps (a) and (b) are based on a spatial weight matrix.

10. The method of claim 8 , wherein step (c) comprises:

adjusting a threshold value, wherein the adjustment is based on a signal level, and wherein the signal level is dependent on at least one of the value of the first pixel and the values of the set of other pixels;

comparing the adjusted threshold value and the calculated differences of steps (a) and (b); and

determining the weight of each pixel in the set of other pixels based on the comparison.

11. The method of claim 1 , further comprising:

(g) outputting an image for further processing by an image processor apparatus.

12. The method of claim 1 , wherein determining the at least one threshold value comprises adjusting an initial threshold value based at least in part on a signal scaling factor to produce the at least one threshold value.

13. A system comprising:

a distance calculator that compares a value of a first pixel with values of a set of other pixels, wherein the first pixel and the set of other pixels are each of a first color, and that, for each pixel in the set of other pixels, compares values of at least two pixels neighboring the first pixel with values of at least two further pixels neighboring the other pixel, wherein one of the at least two pixels neighboring the first pixel is of a second color and the other of a third color, and wherein one of the at least two further pixels neighboring the other pixel is of the second color, and the other of the third color;

wherein the distance calculator defines a first environment comprising the first pixel and the at least two pixels neighboring the first pixel;

wherein the distance calculator, for each pixel in the set of other pixels, defines an environment comprising the other pixel and the at least two pixels neighboring the other pixel, and determines a difference value that numerically represents how similar the environment defined for the other pixel is to the environment defined for the first pixel;

a weight calculator that determines, for each pixel in the set of other pixels, a weight based at least in part on results of the distance calculator;

wherein the weight calculator determines at least one threshold value, compares the at least one threshold value to each of the difference values determined by the distance calculator, and for each pixel in the set of other pixels, determines the weight for the other pixel based at least in part on the comparison of the at least one threshold value to the difference value determined for the other pixel; and

a de-noised pixel calculator that calculates a de-noised pixel value based at least in part on the weights of each pixel in the set of other pixels, and that replaces the value of the first pixel with the de-noised pixel value.

14. The system of claim 13 , wherein the de-noised pixel calculator comprises:

a weight adder that sums the weights of each pixel in the set of other pixels;

a minimum power-of-2 calculator that calculates a lowest power of two that is greater than the sum of the weights; and

a weighted average calculator that calculates the de-noised pixel value as a function of the lowest power of two and the sum of the weights.

15. The system of claim 14 , wherein the de-noised pixel calculator further comprises a middle weight calculator that adjusts the lowest power of two prior to the weighted average calculator calculating the de-noised pixel value if a difference between the lowest power of two and the sum of the weights is lower than a predetermined value.

16. The system of claim 14 , wherein the de-noised pixel calculator further comprises a middle weight calculator that adjusts the lowest power of two prior to the weighted average calculator calculating the de-noised pixel value if the lowest power of two is lower than a predetermined value.

17. The system of claim 14 , wherein the weighted average calculator calculates a weighted average of the weights of each pixel in the set of other pixels and the weight of the first pixel, wherein the weight of the first pixel is based on the lowest power of two and the sum of the weights, and sets the de-noised pixel value equal to the weighted average.

18. The system of claim 17 , wherein the weighted average calculator calculates the weighted average by shifting bits in a register.

19. The system of claim 13 , wherein the distance calculator calculates, for each pixel in the set of other pixels, a difference between the value of the first pixel and the value of the other pixel.

20. The system of claim 19 , wherein the distance calculator, for each pixel in the set of other pixels, calculates, for each pixel of the at least two pixels neighboring the first pixel, a difference between the value of the pixel neighboring the first pixel and the value of a corresponding pixel of the at least two further pixels neighboring the other pixel, wherein location, relative to the first pixel, of the pixel neighboring the first pixel and location, relative to the other pixel, of the corresponding pixel determines which at the at least two further pixels corresponds to the pixel neighboring the first pixel.

21. The system of claim 20 , wherein the differences calculated by the distance calculator are based on a spatial weight matrix.

22. The system of claim 20 , wherein the weight calculator comprises:

a barrel shifter that adjusts a threshold value, wherein the adjustment is based on a signal level, and wherein the signal level is dependent on at least one of the value of the first pixel and the values of the set of other pixels;

a comparator that compares the adjusted threshold value and differences calculated by the distance calculator;

and multiplexor logic that determines the weight of each pixel in the set of other pixels based on a result of the comparator.

23. The system of claim 13 , wherein the de-noised pixel calculator outputs an image for further processing.

24. The system of claim 13 , wherein the weight calculator determines the at least one threshold value by at least adjusting an initial threshold value based at least in part on a signal scaling factor to produce the at least one threshold value.

25. A tangible non-transitory computer usable medium, having computer readable program code embodied thereon, the computer readable program code comprising:

first computer readable program code, which when executed by a computing device, causes the computing device to implement a distance calculator that compares a value of a first pixel with values of a set of other pixels, wherein the first pixel and the set of other pixels are each of a first color, and that, for each pixel in the set of other pixels, compares values of at least two pixels neighboring the first pixel with values of at least two further pixels neighboring the other pixel, wherein one of the at least two pixels neighboring the first pixel is of a second color and the other of a third color, and wherein one of the at least two further pixels neighboring the other pixel is of the second color, and the other of the third color;

wherein the distance calculator defines a first environment comprising the first pixel and the at least two pixels neighboring the first pixel;

wherein the distance calculator, for each pixel in the set of other pixels, defines an environment comprising the other pixel and the at least two pixels neighboring the other pixel, and determines a difference value that numerically represents how similar the environment defined for the other pixel is to the environment defined for the first pixel;

second computer readable program code, which when executed by the computing device, causes the computing device to implement a weight calculator that determines, for each pixel in the set of other pixels, a weight based at least in part on results of the distance calculator;

wherein the weight calculator determines at least one threshold value, compares the at least one threshold value to each of the difference values determined by the distance calculator, and for each pixel in the set of other pixels, determines the weight for the other pixel based at least in part on the comparison of the at least one threshold value to the difference value determined for the other pixel; and

third computer readable program code, which when executed by the computing the computing device to implement a de-noised pixel calculator that calculates a de-noised pixel value based at least in part on the weights of each pixel in the set of other pixels, and that replaces the value of the first pixel with the de-noised pixel value.

26. The computer usable medium of claim 25 , wherein the de-noised pixel calculator:

sums the weights of each pixel in the set of other pixels;

calculates a lowest power of two that is greater than the sum of the weights; and

calculates the de-noised pixel value as a function of the lowest power of two and the sum of the weights.

27. The computer usable medium of claim 26 , wherein the de-noised pixel calculator further adjusts the lowest power of two prior to the weighted average calculator calculating the de-noised pixel value if a difference between the lowest power of two and the sum of the weights is lower than a predetermined value.

28. The computer usable medium of claim 26 , wherein the de-noised pixel calculator calculates the de-noised pixel value by calculating a weighted average of the weights of each pixel in the set of other pixels and the weight of the first pixel, wherein the weight of the first pixel is based on the lowest power of two and the sum of the weights, and sets the de-noised pixel value equal to the weighted average.

29. The computer usable medium of claim 26 , wherein the de-noised pixel calculator calculates the de-noised pixel value by calculating a weighted average of the weights of each pixel in the set of other pixels and the weight of the first pixel, wherein the weight of the first pixel is based on the lowest power of two and the sum of the weights, and sets the de-noised pixel value equal to the weighted average.

30. The computer usable medium of claim 25 , wherein the distance calculator calculates, for each pixel in the set of other pixels, a difference between the value of the first pixel and the value of the other pixel.

31. The computer usable medium of claim 30 , wherein the distance calculator, for each pixel in the set of other pixels, calculates, for each pixel of the at least two pixels neighboring the first pixel, a difference between the value of the pixel neighboring the first pixel and the value of a corresponding pixel of the at least two further pixels neighboring the other pixel, wherein location, relative to the first pixel, of the pixel neighboring the first pixel and location, relative to the other pixel, of the corresponding pixel determines which at the at least two further pixels corresponds to the pixel neighboring the first pixel.

32. The computer usable medium of claim 31 , wherein the differences calculated by the distance calculator are based on a spatial weight matrix.

33. The computer usable medium of claim 31 , wherein the weight calculator:

adjusts a threshold value, wherein the adjustment is based on a signal level, and wherein the signal level is dependent on at least one of the value of the first pixel and the values of the set of other pixels;

compares the adjusted threshold value and differences calculated by the distance calculator; and

determines the weight of each pixel in the set of other pixels based on a result of the comparator.

34. The computer usable medium of claim 25 , wherein the de-noised pixel calculator outputs an image for further processing.

35. The computer usable medium of claim 25 , wherein the weight calculator determines the at least one threshold value by at least adjusting an initial threshold value based at least in part on a signal scaling factor to produce the at least one threshold value.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 12, 2025
From: TOBII TECHNOLOGIES LTD
To: ADEIA MEDIA HOLDINGS LLC
Reel/Frame 071572/0855 →
CONVERSION Recorded Jun 12, 2025
From: ADEIA MEDIA HOLDINGS LLC
To: ADEIA MEDIA HOLDINGS INC.
Reel/Frame 071577/0875 →
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
CHANGE OF NAME Recorded Mar 31, 2025
From: FOTONATION LIMITED
To: TOBII TECHNOLOGIES LIMITED
Reel/Frame 070682/0207 →
CHANGE OF NAME Recorded Feb 17, 2025
From: FOTONATION LIMITED
To: TOBII TECHNOLOGY LIMITED
Reel/Frame 070238/0774 →
CHANGE OF NAME Recorded Dec 2, 2014
From: DIGITALOPTICS CORPORATION EUROPE LIMITED
To: FOTONATION LIMITED
Reel/Frame 034512/0972 →
CHANGE OF NAME Recorded Aug 11, 2011
From: TESSERA TECHNOLOGIES IRELAND LIMITED
To: DIGITALOPTICS CORPORATION EUROPE LIMITED
Reel/Frame 026738/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2010
From: TESSERA TECHNOLOIGES HUNGARY KFT.
To: TESSERA TECHNOLOGIES IRELAND LIMITED
Reel/Frame 025500/0394 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2010
From: COHEN, NOY
To: TESSERA TECHNOLOGIES HUNGARY KFT.
Reel/Frame 025493/0742 →