# US 8,571,347 B2 · Reducing digital image noise

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,571,347 B2
- Document ID: US8571347B2
- Status: Granted
- Kind: B2
- Application number: 12/555,960
- Filed: 2009-09-09
- Published: 2010-03-11
- Granted: 2013-10-29
- Earliest claimed: 2008-09-09
- Assignees: Marvell World Trade Ltd.
- Applicants: Sujith Srinivasan; Byas Muni; Sanjay Garg
- Inventors: Sujith Srinivasan; Byas Muni; Sanjay Garg
- Web page: https://patentgrep.com/patent/US8571347B2

## CPC

- G06T 5/70: Denoising; Smoothing
- G06T 5/73: Deblurring; Sharpening
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/14: Coding unit complexity, e.g. amount of activity or edge presence estimation (H04N19/146 takes precedence)
- H04N 19/17: the unit being an image region, e.g. an object
- H04N 19/172: the region being a picture, frame or field
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- G06T 2207/10016: Video; Image sequence
- G06T 2207/20012: Locally adaptive
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Devices, systems, methods, and other embodiments associated with reducing digital image noise are described. In one embodiment, a method includes determining, on a per pixel basis, mosquito noise values associated with pixels of a digital image. The method determines, on a per pixel basis, block noise values associated with the digital image. The method filters the digital image with a plurality of adaptive filters. A compression artifact in the digital image is reduced. The compression artifact is reduced by combining filter outputs from the plurality of adaptive filters. The filter outputs are combined based, at least in part, on the mosquito noise values and the block noise values.

## Claims

### Claim 1

A method, comprising:
determining on a per pixel basis mosquito noise values associated with pixels of a digital image;
determining on a per pixel basis block noise values associated with the digital image;
filtering the digital image with a plurality of adaptive filters including at least a mosquito noise filter and a block noise filter; and
reducing, on a per pixel basis, a compression artifact in the digital image, where the compression artifact is reduced by combining filter outputs from the plurality of adaptive filters by combining outputs from the mosquito noise filter and the block noise filter when the digital image is blocky and by not combining the output from the mosquito noise filter when the digital image is not blocky.

### Claim 2 (depends on 1)

The method of claim 1, where the mosquito noise values are determined by:
detecting a strong directional edge;
determining a region of possible mosquito noise adjacent to the strong directional edge; and
determining mosquito noise values for pixels in the region of possible mosquito noise.

### Claim 3

An apparatus, comprising:
mosquito noise detection logic configured to detect an amount of mosquito noise present in a digital image;
block noise detection logic configured to detect an amount of block noise present in the digital image;
filter logic configured to filter the digital image to produce at least one of, a 2-dimensional (2D) mosquito filter output, a 2D block filter output, a 1-dimensional (1D) horizontal block filter output, and a 1D vertical block filter output;
selection logic configured to select, based, at least in part, on the amount of mosquito noise and the amount of block noise a correction filter output to improve image quality, the correction filter output being a combination of the 2D mosquito filter output, and the 2D block filter output when the digital image is determined to be blocky across the digital image based on the amount of block noise, and the correction filter output being a combination of the 1D horizontal filter output, and the 1D vertical filter output when the digital image is determined to not be blocky across the digital image based on the amount of block noise; and
compression artifact logic configured to reduce a compression artifact in the digital image based, at least in part, on the correction filter output.

### Claim 4 (depends on 3)

The apparatus of claim 3, where the digital image is a current frame, where the selection logic is configured to select the correction filter output based, at least in part, on a past history of a set of previous frames, where the current frame is blocky when a threshold amount of the set of previous frames are blocky, where a blocky frame has block noise throughout the blocky frame.

### Claim 5 (depends on 3)

The apparatus of claim 3, where the mosquito noise detection logic is configured to:
detect a strong directional edge;
expand the strong directional edge with a major expansion;
expand the strong directional edge with a minor expansion, where pixels in the major expansion and the minor expansion form an edge map;
determine a flat region of the digital image corresponding to the edge map;
determine pixels having a mosquito noise magnitude exceeding a mosquito noise threshold; and
generating a mosquito noise output by multiplying mosquito pixel values corresponding to the edge map, pixel values corresponding to the flat region, and the pixels having a mosquito noise magnitude exceeding a mosquito noise threshold.

### Claim 6 (depends on 5)

The apparatus of claim 5, further comprising ringing detector logic configured to calculate ringing values of neighboring pixels in 3×3 regions.

### Claim 7 (depends on 6)

The apparatus of claim 6, where the ringing detector logic is configured to calculate the ringing values are according to:
rs=max(rs08, rs17, rs26, rs35),
where rs17 is calculated for pixels at the top left and bottom right corners of the center pixel, where rs17 is calculated for the pixels above and below the center pixel, where rs26 is calculated for pixels at top right and bottom left corners of the center pixel, where rs35 is calculated for pixels left and right the center pixel, and where
rs
ab
=
{
d
a
+
d
b
2
,
d
a
⁢
d
b
>
0
0
,
otherwise
where the differences di=xi−x4 are the differences between each pixel with the center pixel.

### Claim 8 (depends on 5)

The apparatus of claim 5, where the edge map is an area of pixels around the directional edge, where pixels on the directional edge are not included in the edge map, and where the major expansion defines pixels on an outer edge of the edge map, and where the minor expansion defines pixels on an inner edge of the edge map.

### Claim 9 (depends on 3)

The apparatus of claim 3, where the block noise detection logic is configured to detect the amount of block noise present by:
detecting whether a horizontal block boundary is present;
detecting whether a vertical block boundary is present;
determining whether a block phase is present in the digital image, where the block phase indicates at least one of, that the horizontal block boundary repeats at a periodic interval, and that the vertical block boundary repeats at the periodic interval; and
generating a grid based, at least in part, on the block phase, where the grid corresponds to pixels of the digital image, where the block noise detection logic is configured to detect the amount of block noise based, at least in part, on the grid, and the pixels of the digital image.

### Claim 10 (depends on 3)

The apparatus of claim 3, where the selection logic is configured to select the correction filter output based, at least in part, on the 2D mosquito filter output, and the correction filter output is based on at least one of, the 2D block filter output, the 1D horizontal block filter output, and the 1D vertical block filter output, when a pixel value contains an amount of mosquito noise and an amount of block noise.

### Claim 11

An apparatus comprising:
mosquito noise detection logic configured to detect an amount of mosquito noise present in a digital image;
block noise detection logic configured to detect an amount of block noise present in the digital image;
filter logic configured to filter the digital image to produce at least one of, a 2-dimensional (2D) mosquito filter output, a 2D block filter output, a 1-dimensional (1D) horizontal block filter output, and a 1D vertical block filter output;
selection logic configured to select, based, at least in part, on the amount of mosquito noise and the amount of block noise a correction filter output to improve image quality, the correction filter output being at least one of, the 2D mosquito filter output, the 2D block filter output, the 1D horizontal filter output, and the 1D vertical filter output; and
compression artifact logic configured to reduce a compression artifact in the digital image based, at least in part, on the correction filter output;
where the block noise detection logic is configured to detect the amount of block noise present by:
determining a horizontal block boundary based, at least in part, on one vertical column of pixels in the digital image;
incrementing a horizontal accumulator corresponding to a phase of the horizontal block boundary;
determining a vertical block boundary where the vertical block boundary is determined based, at least in part, on at least one horizontal row of pixels in the digital image;
incrementing a vertical accumulator corresponding to a phase of the vertical block boundary; and
generating a block grid of the digital image based, at least in part, on horizontal accumulator values and vertical accumulator values, where the block noise detection logic is configured to detect the amount of block noise based, at least in part, on the block grid, and pixels of the digital image.

### Claim 12 (depends on 11)

The apparatus of claim 11, where the compression artifact logic is configured to reduce a compression artifact in the digital image based, at least in part, on the block grid.

### Claim 13

A method, comprising:
upon determining that mosquito noise is present in a digital image, generating a mosquito noise output, where the mosquito noise output indicates a mosquito noise magnitude;
upon determining that block noise is present in the digital image, generating a block noise output, where the block noise output represents a magnitude of block noise, and where the block noise output identifies the block noise as being one of vertical block noise, horizontal block noise, and global block noise, wherein the global block noise is comprised of horizontal block noise and vertical block noise throughout the digital image;
creating a 2-dimensional (2D) mosquito filter output, a 2D block filter output, a 1-dimensional (1D) horizontal filter output, and a 1D vertical filter output by filtering the digital image with at least one of, a 2D mosquito filter, a 2D block filter, a 1D horizontal filter, and a 1D vertical filter;
selecting a correction filter output to improve image quality based, at least in part, on the mosquito noise output and the block noise output, the correction filter output being a combination of the 2D mosquito filter output and the 2D block filter output when the digital image is determined to be blocky across the digital image, and the correction filter output being a combination of the 1D horizontal filter output and the 1D vertical filter output when the digital image is determined to not be blocky across the digital image; and
reducing a compression artifact in the digital image based, at least in part, on the correction filter output.

### Claim 14 (depends on 13)

The method of claim 13, where the digital image is a current frame, where selecting the correction filter output is based, at least in part, on a past history of a set of previous frames, where the current frame is blocky when a threshold amount of the set previous frames are blocky, and where a blocky frame has block noise throughout the blocky frame.

### Claim 15 (depends on 13)

The method of claim 13, where the 2D block filter output is selected to be the correction filter output when the current frame is blocky.

### Claim 16 (depends on 13)

The method of claim 13, where determining that mosquito noise is present further comprises:
detecting a directional edge;
expanding the directional edge with a major expansion;
expanding the directional edge with a minor expansion, where pixels in the major expansion and the minor expansion form an edge map;
determining a flat region of the digital image corresponding to the edge map; and
multiplying at least three values together to generate the mosquito noise output, where the at least three values multiplied together are a mosquito pixel value corresponding to the edge map, a pixel value corresponding to the flat region, and a pixel value magnitude corresponding to the mosquito noise output.

### Claim 17 (depends on 16)

The method of claim 16, where the pixel value magnitude is determined by calculating ringing values of neighboring pixels, where the neighboring pixels form 3×3 regions, and where the pixel value magnitude corresponds to pixels in the center of the 3×3 regions.

### Claim 18 (depends on 17)

The method of claim 17, where the ringing values are calculated according to:
rs
=
max
⁡
(
rs
08
,
rs
17
,
rs
26
,
rs
35
)
,
⁢
where
rs
ab
=
{
d
a
+
d
b
2
,
d
a
⁢
d
b
>
0
0
,
otherwise
and where the differences di=xi−x4 are the differences between each pixel with the center pixel.

### Claim 19 (depends on 13)

The method of claim 13, where determining that block noise is present further comprises:
detecting a horizontal block boundary;
detecting a vertical block boundary;
determining whether a block phase is present in the digital image, where the block phase indicates at least one of, that the horizontal block boundary repeats at a periodic interval, and that the vertical block boundary repeats at the periodic interval;
generating a grid based, at least in part, on the block phase, where the grid corresponds to pixels of the digital image; and
generating the block noise output based, at least in part, on the grid and the pixels of the digital image.

### Claim 20 (depends on 13)

The method of claim 13, further comprising:
determining a horizontal block boundary based, at least in part, on pixels of at least one vertical column of pixels in the digital image;
incrementing a horizontal accumulator corresponding to a phase of the horizontal block boundary;
determining a vertical block boundary based, at least in part, on pixels of at least one horizontal row of pixels in the digital image:
incrementing a vertical accumulator corresponding to a phase of the horizontal block boundary; and
generating a block grid of the digital image based, at least in part, on horizontal accumulator values and vertical accumulator values, where selecting a correction filter output to improve image quality is based, at least in part, on the block grid.
