U.S. patent application number 13/888802 was filed with the patent office on 2014-11-13 for method for determining noise level.
The applicant listed for this patent is Qualcomm Technologies, Inc.. Invention is credited to Christophe Bernard, Sarah Lannes.
Application Number | 20140334726 13/888802 |
Document ID | / |
Family ID | 51798268 |
Filed Date | 2014-11-13 |
United States Patent
Application |
20140334726 |
Kind Code |
A1 |
Bernard; Christophe ; et
al. |
November 13, 2014 |
METHOD FOR DETERMINING NOISE LEVEL
Abstract
A method for determining noise levels in a subband of an image.
The method comprises receiving the subband of the image, defining
block regions in at least two space domains of the subband, for
each defined block region, identifying first wavelet coefficients
associated with coordinate values in the at least two space domains
in the defined block region, computing a correlation matrix between
identified wavelet coefficients to determine the correlation
between first wavelet coefficients according to the at least one
color domain, computing second wavelet coefficients, the
computation of second wavelet coefficients being based on the
correlation matrix and the first wavelet coefficients, computing at
least one noise level, the noise level computation being based on
at least one second wavelet coefficient and providing the at least
one noise level.
Inventors: |
Bernard; Christophe;
(London, GB) ; Lannes; Sarah; (Orsay, FR) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Qualcomm Technologies, Inc. |
San Diego |
CA |
US |
|
|
Family ID: |
51798268 |
Appl. No.: |
13/888802 |
Filed: |
May 7, 2013 |
Current U.S.
Class: |
382/167 |
Current CPC
Class: |
G06T 2207/20064
20130101; G06T 2207/20182 20130101; G06T 2207/30168 20130101; G06T
5/002 20130101; G06T 2207/20021 20130101; G06T 7/0002 20130101;
G06T 2207/20016 20130101; G06T 2207/10024 20130101 |
Class at
Publication: |
382/167 |
International
Class: |
G06T 5/00 20060101
G06T005/00 |
Claims
1. A method for determining noise levels in a subband of an image,
the subband comprising at least one color domain and at least two
space domains, the subband comprising first wavelet coefficients
associated with coordinate value in the at least one color domain
and with coordinate values in the at least two space domains,
wherein the method comprises: receiving the subband of the image;
defining block regions in the at least two space domains of the
subband; for each defined block region: identifying first wavelet
coefficients associated with coordinate values in the at least two
space domains in the defined block region; computing a correlation
matrix between identified wavelet coefficients to determine the
correlation between first wavelet coefficients according to the at
least one color domain; computing second wavelet coefficients, the
computation of second wavelet coefficients being based on the
correlation matrix and the first wavelet coefficients; computing at
least one noise level, the noise level computation being based on
at least one second wavelet coefficient; and providing the at least
one noise level.
2. A method according to claim 1, wherein, the image comprising two
unidimensional space domains, A.times.B block regions are defined
in the two unidimensional space domains, n and m being coordinate
values respectively in said two space domains with 0.ltoreq.n<N
and 0.ltoreq.m<M, N and M being integer values, A and B being
integers, n and m verifying a.A.ltoreq.m<(a+1).A,
b.B.ltoreq.n<(b+1).B and a=0, 1/A . . . (M-1)/A and b=0, 1/B . .
. (N-1)/B.
3. A method according to claim 2, wherein identifying first wavelet
coefficients comprises: determining first wavelet coefficients
associated with coordinates values verifying
a.A.ltoreq.m<(a+1).A and b.B.ltoreq.n<(b+1).B.
4. A method according to claim 1, coordinates values of the at
least one color domain comprises {c.sub.1, c.sub.2, . . . ,
c.sub.f}, wherein computing the correlation matrix comprises the
computation of each elements {Corr.sub.g, h}.sub.g, h of the
matrix, where g and h being in {1, . . . f}, and wherein
Corr.sub.g, h is function of 1 S p .di-elect cons. S d c g ( p ) d
c h ( p ) ##EQU00007## where S is a surface of the block region, p
being a point of the block region having coordinate values in the
at least two space domains, d.sub.c.sub.g(p) being the first
wavelet coefficient associated with coordinate values of point p
and with coordinate value c.sub.g in the at least one color domain,
d.sub.c.sub.h(p) being the first wavelet coefficient associated
with coordinate values of point p and with coordinate value c.sub.h
in the at least one color domain.
5. A method according to claim 1, wherein computing second wavelet
coefficients comprises a principal component analysis
transform.
6. A method according to claim 1, wherein computing at least one
noise level comprises the computation of at least a median.
7. A method according to claim 6, wherein, computing second wavelet
coefficients transforming the at least one color domain into at
least one new color domain, one median is computed, said latter
median being function of temporary medians, each temporary median
of the temporary medians being associated with a coordinate value
in the at least one new color domain of the subband, each temporary
median being function of the coefficients associated with the
coordinate value in the at least one new color domain of the
subband associated with.
8. A method according to claim 6, wherein, computing second wavelet
coefficients transforming the at least one color domain into at
least one new color domain, a plurality of medians are computed,
each median being associated with a block region, each median being
associated with a given block region in the block regions, each
median being function of a median of coefficients associated with
coordinate values in the given block region and with a coordinate
value in the at least one new color domain of the subband.
9. A non-transitory computer readable storage medium for
determining noise levels in a subband of an image, having stored
thereon a computer program comprising program instructions, the
subband comprising at least one color domain and at least two space
domains, said subband comprising first wavelet coefficients
associated with coordinate value in the at least one color domain
and with coordinate values in the at least two space domains, the
computer program being loadable into a data-processing unit and
adapted to cause the data-processing unit to carry out the steps,
when the computer program is run by the data-processing device:
receiving the subband of the image; defining block regions in the
at least two space domains of the subband; for each defined block
region: identifying first wavelet coefficients with coordinate
values in the at least two space domains in the defined block
region; computing a correlation matrix between identified wavelet
coefficients to determine the correlation between first wavelet
coefficients according to the at least one color domain; computing
second wavelet coefficients, the computation of second wavelet
coefficients being based on the correlation matrix and the first
wavelet coefficients; computing at least one noise level, the noise
level computation being based on at least one second wavelet
coefficient; and providing the at least one noise level.
10. A device for determining noise levels in a subband of an image,
the subband comprising at least one color domain and at least two
space domains, the subband comprising first wavelet coefficients
associated with coordinate values in the at least one color domain
and the at least two space domains, wherein the device comprises:
an input interface for receiving the subband of the image; a
circuit for defining block regions in the at least two space
domains of the subband; a circuit for identifying first wavelet
coefficients associated with coordinate values in the at least two
space domains in the identified block; a circuit for computing a
correlation matrix between identified wavelet coefficients to
determine the correlation between first wavelet coefficients
according to the at least one color domain; a circuit for computing
second wavelet coefficients, the computation of second wavelet
coefficients being based on the correlation matrix and the first
wavelet coefficients; a circuit for computing at least one noise
level, the noise level computation being based on at least one
second wavelet coefficients; and an output interface for providing
the at least one noise level.
Description
BACKGROUND OF THE INVENTION
[0001] The present invention relates to noise estimation domain in
particular in the domain of image or video processing.
[0002] The approaches described in this section could be pursued,
but are not necessarily approaches that have been previously
conceived or pursued. Therefore, unless otherwise indicated herein,
the approaches described in this section are not prior art to the
claims in this application and are not admitted to be prior art by
inclusion in this section. Furthermore, all embodiments are not
necessarily intended to solve all or even any of the problems
brought forward in this section.
[0003] A possible way to estimate the amount of noise is to use
robust statistical method. For instance, (see Donoho, David L.;
Iain M. Johnstone, December 1995, "Adapting to Unknown Smoothness
via Wavelet Shrinkage". Journal of the American Statistical
Association Vol. 90, No. 432: 1200-1244), a possible way to
estimate a noise level of an image when the noise is white noise
consists in computing the median of a high-pass subband.
[0004] The underlying expectation is that the median is carrying
only information about the noise, and that the signal is sparse
enough to have little impact on this median. Therefore,
coefficients (in which the signal is relevant) represent less than
few percent of the coefficient population).
[0005] In particular, the median of the absolute values of
coefficients may be proportional to the noise standard deviation.
This median may be scaled with an appropriate constant to yield an
estimate of the standard deviation of the Gaussian noise.
.sigma.=median(|s|).times.f with s the signal
[0006] The factor f (for instance f=1/0.67) may be estimated by
measuring the median of values drawn from a known Gaussian
generator of known standard deviation.
[0007] Such estimation has drawbacks as this expectation (i.e that
the signal is sparsely represented in the high pass subband) is not
always adequate.
[0008] Indeed, when the image is highly textured, or contains parts
that are highly textured, the median may produce an estimate of the
noise level that is much higher than what it ought to be: when a
median is computed over a highly textured image, state of the art
methods overestimate the amount of noise, apply a stronger than
necessary noise reduction and wash out the textures that were
confused with noise by the noise estimation algorithm.
[0009] There is thus a need for having a noise estimation method
robust even if parts of the images are highly textured and then to
improve image quality through a more robust noise level estimation
leading to smother noise reduction, and less aggressive flattening
of textures in the highly textured images.
SUMMARY OF THE INVENTION
[0010] The invention relates to a method for determining noise
levels in a subband of an image, the subband comprising at least
one color domain and at least two space domains, said subband
comprising first wavelet coefficients associated with coordinate
value in the at least one color domain and the at least two space
domains.
[0011] The method comprises: [0012] receiving the subband of the
image; [0013] defining block regions in the at least two space
domains of the subband; [0014] for each defined block region:
[0015] identifying first wavelet coefficients associated with
coordinate values in the at least two space domains in the defined
block region; [0016] computing a correlation matrix between
identified wavelet coefficients to determine the correlation
between first wavelet coefficients according to the at least one
color domain; [0017] computing second wavelet coefficients, the
computation of second wavelet coefficients being based on the
correlation matrix and the first wavelet coefficients; [0018]
computing at least one noise level, the noise level computation
being based on at least one second wavelet coefficient; [0019]
providing the at least one noise level.
[0020] A subband is typically a set of coefficients {d.sub.C,
j.sup.k(m, n)}.sub.j, k with j a scale index (e.g 1, 2, etc.) and k
an orientation index (e.g. 1=vertical, 2=horizontal,
3=diagonal).
[0021] A typical image comprises a plurality of color channel such
as a red channel, a blue channel and green channel (if the color
model is RGB). It is possible to create a color domain c which
comprises three values (e.g. c=1 for red, c=2 for green and c=3 for
blue). In addition, a typical image is a 2D grid comprising points
or pixels having two space domains (for instance, (x, y) or (m,
n)), these two space domain being orthogonal.
[0022] As explained above, a subband may comprise wavelet
coefficients d.sub.c, j.sup.k(m, n) associated with coordinate
value c in the color domain and with coordinate values m, n in the
space domains.
[0023] "Defining block regions in the space domains" may be
regrouping points of the space domains. For instance, the block
regions may be regular rectangles or squares or any other
geometrical forms or any arbitrary forms.
[0024] In addition, the image comprising two unidimensional space
domains, A.times.B block regions may be defined in the two
unidimensional space domains.
[0025] m and n may be coordinate values respectively in said two
space domains with 0.ltoreq.n<N and 0.ltoreq.m<M, N and M
being integer values. A and B may be integers.
[0026] n and m may verify a.A.ltoreq.m<(a+1).A,
b.B.ltoreq.n<(b+1).B and a=0, 1/A . . . (M-1)/A and b=0, 1/B . .
. (N-1)/B.
[0027] In such situation, the two unidimensional space domains may
define a two-dimensional space domain (m, n). The two-dimensional
space domain may therefore be split into rectangles of size
A.times.B and the coordinate values of a corner of the rectangle
may be (aA, bB) with a=0, 1/A . . . (M-1)/A and b=0, 1/B . . .
(N-1)/B.
[0028] N and M may be respectively the height and the width of the
image.
[0029] According to a possible embodiment, "identifying first
wavelet coefficients" may comprise determining first wavelet
coefficients associated with coordinate values verifying
a.A.ltoreq.m<(a+1).A and b.B.ltoreq.n<(b+1).B.
[0030] In addition, coordinates values of the at least one color
domain may comprise {c.sub.1, c.sub.2, . . . , c.sub.f}. "Computing
the correlation matrix" may comprise the computation of each
element {Corr.sub.g, h}.sub.g, h of the matrix, where g and h being
in {1, . . . f}. Corr.sub.g, h may be function of
1 S p .di-elect cons. S d c g ( p ) d c h ( p ) ##EQU00001##
where S is a surface of the block region, p being a point of the
block region having coordinate values in the at least two space
domains, d.sub.c.sub.g(p) being the first wavelet coefficient
associated with coordinate values of point p and with coordinate
value c.sub.g in the at least one color domain, d.sub.c.sub.h (p)
being the first wavelet coefficient associated with coordinate
values of point p and with coordinate value c.sub.h in the at least
one color domain.
[0031] Hence, the correlation matrix may be a f.times.f matrix and
each element Corr.sub.g, h of the matrix may correspond to the
correlation between the wavelet coefficients of the color channels
c.sub.g and c.sub.h in the block region.
[0032] The notation d.sub.c(p) is a simplified notation for
d.sub.c, j.sup.k(p) with a given scale j and a given orientation k
(i.e. for a given subband).
[0033] The point p may have coordinates value (m, n) in the space
domains. Therefore, the Corr.sub.g, h may be noted
1 S ( n , m ) .di-elect cons. S d c g ( m , n ) d c h ( m , n ) .
##EQU00002##
If the block region is a rectangle of size A.times.B and if a
corner of the rectangle have coordinates (aA, bB), then Corr.sub.g,
h may be noted
1 AB a . A .ltoreq. m < ( a + 1 ) . A b . B .ltoreq. n < ( b
+ 1 ) . B d c 1 ( m , n ) d c 2 ( m , n ) . ##EQU00003##
[0034] According to one embodiment, "computing second wavelet
coefficients" may comprise a principal component analysis
transform.
[0035] Principal component analysis (or PCA) is a mathematical
procedure that uses an orthogonal transformation to convert a set
of observations of possibly correlated variables into a set of
values of linearly uncorrelated (or mostly uncorrelated) variables
called principal components. This transformation is often defined
in such a way that the first principal component has the largest
possible variance, and each succeeding component has the highest
variance possible under the constraint that it be orthogonal to
(i.e., uncorrelated with) the preceding components. Principal
components are guaranteed to be independent only if the data set is
jointly normally distributed. PCA may also be named the discrete
Karhunen-Loeve transform (KLT), the Hotelling transform or proper
orthogonal decomposition (POD).
[0036] Moreover, "computing at least one noise level" may comprise
the computation of at least a median.
[0037] Median is the numerical value separating the higher half of
a sample, a population, or a probability distribution, from the
lower half.
[0038] It is possible to compute a median for specific coefficients
in the second wavelet coefficients.
[0039] A median M.sub.S for a block region S may be noted
M.sub.S={|d.sub.j.sup.k[p]|:P .di-elect cons. S} for a given scale
j and a given orientation k (i.e. for a given subband), p being a
point of the space domain.
[0040] In addition, "computing second wavelet coefficients" may
transform the at least one color domain into at least one new color
domain. One median may be computed. The latter median may be
function of temporary medians, each temporary median of the
temporary medians being associated with a coordinate value in the
at least one new color domain of the subband, each temporary median
being function of the coefficients associated with the coordinate
value in the at least one new color domain of the subband
associated with.
[0041] In such situation the above mentioned block region S
corresponds to the entire space domains of the subband (i.e. of the
image size).
[0042] If the color domain comprises a plurality of coordinate
values (for instance, for the RGB color model), a temporary median
may be computed for each coordinate value of the color domain.
[0043] Then, the latter median may be equal to the minimal
temporary medians.
[0044] In a different embodiment, a plurality of medians may be
computed. Each median may be associated with a defined block
region. Each median may be function of temporary medians, each
temporary median of the temporary medians being associated with a
coordinate value in the at least one new color domain of the
subband, each temporary median being function of the coefficients
associated with the coordinate value in the at least one new color
domain of the subband associated with.
[0045] In such situation the above mentioned block region S is one
of the defined block regions.
[0046] If the color domain comprises a plurality of coordinate
values (for instance, for the RGB color model), a temporary median
may be computed for each coordinate value of the color domain. Then
the median may be the minimal temporary median.
[0047] An estimate of the noise level may be the minimal median in
the plurality of computed medians.
[0048] Another aspect of the invention relates to a computer
program product comprising a computer readable medium, having
thereon a computer program comprising program instructions. The
computer program is loadable into a data-processing unit and
adapted to cause the data-processing unit to carry out the method
described above when the computer program is run by the
data-processing unit.
[0049] Yet another aspect of the invention relates to a device for
determining noise levels in a subband of an image. The subband
comprises at least one color domain and at least two space domains.
The subband comprises first wavelet coefficients associated with
coordinate values in the at least one color domain and the at least
two space domains.
[0050] The device comprises: [0051] an input interface for
receiving the subband of the image; [0052] a circuit for defining
block regions in the at least two space domains of the subband;
[0053] a circuit for identifying first wavelet coefficients
associated with coordinate values in the at least two space domains
in the identified block; [0054] a circuit for computing a
correlation matrix between identified wavelet coefficients to
determine the correlation between first wavelet coefficients
according to the at least one color domain; [0055] a circuit for
computing second wavelet coefficients, the computation of second
wavelet coefficients being based on the correlation matrix and the
first wavelet coefficients; [0056] a circuit for computing at least
one noise level, the noise level computation being based on at
least one second wavelet coefficients; [0057] an output interface
for providing the at least one noise level.
[0058] Other features and advantages of the method and apparatus
disclosed herein will become apparent from the following
description of non-limiting embodiments, with reference to the
appended drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0059] The present invention is illustrated by way of example, and
not by way of limitation, in the figures of the accompanying
drawings, in which like reference numerals refer to similar
elements and in which:
[0060] FIG. 1a and FIG. 1b are representations of possible
splitting of a subband into a plurality of block regions;
[0061] FIGS. 2a and 2b represent the correlation of noise levels
between two color coordinates, respectively in case of a pure noise
and in case of a noisy texture;
[0062] FIG. 2c is a representation of a method to compute
uncorrelated color components in case of a noisy texture;
[0063] FIG. 3 is a flow chart describing a possible embodiment of
the present invention;
[0064] FIG. 4 is a possible embodiment for a device that enables
the present invention.
DESCRIPTION OF PREFERRED EMBODIMENTS
[0065] An image I[m, n] (with n and m the coordinate values in the
image, e.g. the pixel coordinate values) may be transformed into a
set of wavelets decomposition subbands d.sub.j.sup.k[m, n], where j
is a scale index, and k is an orientation index.
[0066] For typical wavelet transforms used for images, (and in
particular for those described in Stephane Mallat, "Une Exploration
des Signaux en Ondelettes", Editions de I'Ecole Polytechnique,
ISBN: 2-7302-0733-3 for 2D images), the orientation index k is
ranging from 1 to 3 (e.g. vertical, horizontal and diagonal). Each
subband has a varying size depending on a scale index j that ranges
from 1 to some maximum value D (integer).
d.sub.j.sup.k[m, n] for j=1 . . . D, and k=1 . . . 3.
[0067] A standard approach may consist in considering the specific
subband d.sub.1.sup.k[m, n] for k=1, 2 or 3 (i.e. the subband
corresponding to the first scale, j=1), and to compute the median
of the absolute values of this population of coefficients. If the
majority of the surface of the image is covered with high activity
texture, resulting in many high-frequency coefficients, the
presence of the texture will bias the noise level estimation,
leading to an overestimation of the noise level.
[0068] In order to avoid this drawback, it is possible to split the
subband d.sub.1.sup.k[m, n] (for k=1, 2 or 3) into blocks of
coefficients according to the following method.
[0069] In reference to FIG. 1a, and assuming that the considered
subband d.sub.1.sup.k[m, n] (element 100) comprises M.times.N
coefficients d.sub.1.sup.k(m, n) with n=1 . . . N and m=1 . . . M,
then the subband d.sub.1.sup.k[m, n] (element 100) is split into
several blocks {B.sub.1.sup.k.sub.[a, b]}.sub.a, b (elements 101,
102) of size A.times.B (with a=0, 1/A . . . (M-1)/A and b=0, 1/B .
. . (N-1)/B).
[0070] Block B.sub.1.sup.k.sub.[a, b] (element 101) contains the
coefficients d.sub.1.sup.k(m, n) for
[0071] a.A.ltoreq.m<(a+1).A, and
[0072] b.B.ltoreq.n<(b+1).B.
[0073] Then a median value M.sub.a, b is defined for each block in
{B.sub.1.sup.k.sub.[a, b]}.sub.a, b as the median of the set of
values {|d.sub.j.sup.k[m, n]:a.A.ltoreq.m<(a+1).A and
b.B.ltoreq.n<(b+1).B}:
M.sub.a, b=median({|d.sub.j.sup.k[m,
n]|:a.A.ltoreq.m.ltoreq.(a+1).A and b.B.ltoreq.n<(b+1).B})
[0074] Therefore if at least one block does not contain texture, it
may provide a reliable estimate of the noise level. All other
blocks may provide an over-estimated noise level.
[0075] A reasonable estimate of the noise level is then the minimum
of these blockwise estimates: .sigma.=min(M.sub.a, b(M.sub.a, b.C)
where the coefficient C may be calibrated by doing the same
estimation on a known Gaussian source of the same size and the same
number of blocks.
[0076] In this embodiment the intersection between two blocks is
empty. Nevertheless, it may also be possible to partially superpose
blocks for instance as described in FIG. 1b. In this latter
embodiment, the blocks (elements 103, 104) contain the same number
of coefficients i.e. the blocks size are A.times.B. Block
B.sub.1.sup.k.sub.[a, b] (element 101) contains the coefficients
d.sub.j.sup.k(m, n) for
a . A 3 .ltoreq. m < ( a + 3 ) A 3 , and ##EQU00004## b . B 3
.ltoreq. n < ( b + 3 ) B 3 . ##EQU00004.2##
[0077] All other adaptations with other sub-sampling factors is
possible (here the sub-sampling factor is 3)
[0078] In most case, a texture in a given image I[m, n] contains
high frequency contents. This content may be located on a single
color channel, or on a low-dimensional manifold of the color space.
For example, as a grass texture is mostly green, the texture mostly
contains high spatial frequencies on a sub manifold of the color
space that contains shades of green.
[0079] Real noise on the other hand is often distributed on all
three color channels (if the color model is not RGB for "Red Green
Blue"), so the noise is colored and is spanning a real
three-dimensional subset of the color cube. If the color model is
not RGB (for instance YCbCr or CMYK or any other color models) the
considerations are similar.
[0080] FIG. 2a represents wavelet coefficients of a given subband
of a noised color image with two color channels/coordinates (for
simplification purpose only). This Figure may be generalized with a
greater number of color coordinates. The wavelets coefficients are
associated with the two color coordinates W.sub.C1 and W.sub.C2
representing the two colors C1 and C2.
[0081] This image contains noise without any texture. Therefore,
the dots 201 represent the population of wavelet coefficients of
the channels with noise. The population is in a centered circle 202
without any privileged direction.
[0082] In such situation, where the distribution of population is
symmetric according to a point 205, the wavelet components W.sub.C1
and W.sub.C2 (representing the channels of the image) are
uncorrelated.
[0083] FIG. 2b represents wavelet coefficients of a given subband
of a noised color image with two color channels, the image having a
textured content. The wavelets coefficients are associated with the
two color coordinates W.sub.C1 and W.sub.C2 representing the two
colors C1 and C2.
[0084] Therefore, the dots 203 represent the population of wavelet
coefficients of subband according to the color coordinates. The
population may be grouped in an ovoid 204. The ovoid 204 has a
privileged direction 206.
[0085] Since the noise-free texture is assumed to be lying on a
small dimensional manifold, the form 204 is flat and elongated
along a principal direction 206.
[0086] In the situation represented in FIG. 2b, the population of
coefficients is correlated as the distribution along each axis
W.sub.C1 and W.sub.C2 is not uniform.
[0087] Nevertheless, it is possible to "rotate" the color axis to
obtain two new uncorrelated color components W'.sub.C1 and
W'.sub.C2 as described in FIG. 2c. Therefore, the rotated ovoid 207
is similar to the ovoid 204 of FIG. 2b (disregarding the
rotation).
[0088] To compute uncorrelated components, it is possible to use a
Principal component analysis (PCA) mathematical procedure to
convert the correlated population of coefficients into a set of
values of linearly uncorrelated variables.
[0089] Once the color components have been "rotated", it is
possible to easily compute a noise level for the subband
coefficients.
[0090] In FIG. 2c, the median of coefficients along the axis
W'.sub.C1 is smaller than the median of coefficients along the axis
W'.sub.C2. In consequence, in case of colored texture, W'.sub.C1
mostly carries noise.
[0091] The objective of this transformation is to capture a value
which is proportional to a noise level, the captured value being
the width of ovoid (arrow 208 in FIG. 2c) and not width of the
projection of the ovoid onto a random axis (arrow 209 in FIG. 2b),
which would be much larger.
[0092] FIG. 3 is a flow chart describing a possible embodiment of
the present invention. Part of this flow chart may represent steps
of an example of a computer program which may be executed by the
device of FIG. 4.
[0093] Upon the reception of an input image 300, this input image
300 may be decomposed into a plurality of subbands (step 301). Each
subband may be associated with a given scale/resolution j (in
reference to a multiresolution wavelet transform), a color c, and
an orientation k (for instance, three possible orientations).
[0094] Using the notation of multiresolution analysis, it is
possible to "project" the images values of the image onto a span of
functions to obtain a plurality of resolution approximations (i.e.
scales, elements 302, 303).
[0095] Each scale (302, 303, etc) may comprise a plurality of
subband (characterized for instance by an orientation k).
[0096] Each subband (defined by k and j) may be decomposed (step
304) into a plurality of blocks {B.sub.j.sup.k.sub.[a, b]}.sub.a, b
as described in FIG. 1b or FIG. 1b. The following description uses
the notations introduced in the description in relation with these
Figures.
[0097] For each block B.sub.j.sup.k.sub.[a, b] of the subband (j,
k), a noise level is to be computed.
[0098] Therefore, if the noise level of one block in
{B.sub.j.sup.k.sub.[a, b]}.sub.a, b has not been computed (test
305, output OK), the following steps 306, 307, 308 are
executed.
[0099] At first, indexes m, n are determined so that:
[0100] a.A.ltoreq.m<(a+1).A, and
[0101] b.Bn.ltoreq.n.ltoreq.(b+1).B.
[0102] The wavelet coefficients d.sub.c, j.sup.k(m, n) on such a
range of indexes m, n are also determined for all color components
of the image and of the subband (the image being encoded according
a model in RGB, YCbCr, etc. model), where the index `c` is denoting
the color index for the color domain (e.g. c=1 for red, c=2 for
green and c=3 for blue in RGB or similarly for a YCbCr color
space).
[0103] For simplification purpose, it is assumed that the color
model used to code the image is RGB and thus that there are three
color components.
[0104] The wavelet coefficients being of zero mean, a correlation
matrix of coefficients between colors may be computed (step 306).
For instance, the correlation matrix of d.sub.c1, j.sup.k(m, n) and
d.sub.c2, j.sup.k(m, n) is
Corr a , b ( c 1 , c 2 ) = 1 AB a . A .ltoreq. m < ( a + 1 ) . A
b . B .ltoreq. n < ( b + 1 ) . B d c 1 , j k ( m , n ) d c 2 , j
k ( m , n ) . ##EQU00005##
[0105] A "Principal component analysis" (or PCA) may be computed
(step 307) with theses correlations matrixes {Corr.sub.a,
b(c.sub.1, c.sub.2):c.sub.1=1 . . . 3 and c.sub.2=1 . . . 3}. The
correlation matrix Corr.sub.a, b may be noted Corr.sub.a, b=U D
U.sup.T where U is an orthogonal matrix and D is a diagonal matrix
with decreasing diagonal coefficients. The matrix U is a matrix of
eigenvectors which diagonalizes the matrix Corr.sub.a, b. D is the
diagonal matrix of eigenvalues of Corr.sub.a, b. This step will
typically involve the use of a computer-based algorithm for
computing eigenvectors and eigenvalues. These algorithms are
readily available as sub-components of most matrix algebra
systems.
[0106] Once the matrix U is determined, applying U.sup.T to the
vector of wavelet color components generates new uncorrelated
coefficients:
[ C jk 1 ( m , n ) C jk 2 ( m , n ) C jk 3 ( m , n ) ] = U T
.times. [ d 1 , j k ( m , n ) d 2 , j k ( m , n ) d 3 , j k ( m , n
) ] ##EQU00006##
[0107] This application of U.sup.T to the vector of components may
be done block by block (i.e. for n and m that verify
a.A.ltoreq.m<(a+1).A, and b.B.ltoreq.n<(b+1).B), so that the
PCA (for "Principal component analysis") may be adapted locally on
the texture properties.
[0108] Then, the noise level may be estimated (step 308) from the
median of the whole subband C.sub.jkc(m, n) or blockwise from this
subband as described above.
[0109] Alternatively, it can be computed by doing a blockwise
median estimation on
[0110] blocks of C.sub.jk1[m, n],
[0111] blocks of C.sub.jk2[m, n],
[0112] blocks of C.sub.jk3[m, n],
[0113] and by computing the minimum of all blockwise medians
obtained with all the above blockwise median estimations.
[0114] The noise level estimation for each subband may be stored in
a database 309 or in a memory for future use.
[0115] Once the noise level of all blocks in {B.sub.j.sup.k.sub.[a,
b]}.sub.a, b has been computed (test 305, output KO), a filter may
be applied (step 310) for instance on the subband or on the image.
Many noise reduction filters may be used such as NL-means, linear
smoothing filters, anisotropic diffusion filters, etc. according to
the noise level stored in the database 309.
[0116] When all new scales (311, 312, 313) are available, a new
image 315 may be constructed (step 314) according to these new
scales with an inverse wavelet transformation.
[0117] FIG. 4 is a possible embodiment for a device that enables
the present invention.
[0118] In this embodiment, the device 400 comprise a computer, this
computer comprising a memory 405 to store program instructions
loadable into a circuit and adapted to cause circuit 404 to carry
out the steps of the present invention when the program
instructions are run by the circuit 404.
[0119] The memory 405 may also store data and useful information
for carrying the steps of the present invention as described
above.
[0120] The circuit 404 may be for instance: [0121] a processor or a
processing unit adapted to interpret instructions in a computer
language, the processor or the processing unit may comprise, may be
associated with or be attached to a memory comprising the
instructions, or [0122] the association of a processor/processing
unit and a memory, the processor or the processing unit adapted to
interpret instructions in a computer language, the memory
comprising said instructions, or [0123] an electronic card wherein
the steps of the invention are described within silicon, or [0124]
a programmable electronic chip such as a FPGA chip (for
<<Field-Programmable Gate Array>>).
[0125] This computer comprises an input interface 403 for the
reception of subbands and an output interface 406 for providing a
noise level.
[0126] To ease the interaction with the computer, a screen 401 and
a keyboard 402 may be provided and connected to the computer
circuit 404.
[0127] A person skilled in the art will readily appreciate that
various parameters disclosed in the description may be modified and
that various embodiments disclosed may be combined without
departing from the scope of the invention.
* * * * *