The present invention relates to denoising technology for digital images and videos. Particularly, it relates to a method for denoising images and videos by employing an auto-regressive approach in combination with spatial varying or spatio-temporal filtering techniques.
With the advance of computer and network technologies, digital images and videos have become commonplace in people's personal and professional life. Photographs taken with digital cameras and exchanged through email or cellular phones, video conferencing, digital TV broadcasting, pay-per-view Internet services, to name just a few, are getting more popular everyday. With their popularity, comes the attention to technologies for improving image and video's quality and reducing their size for easy transmission and exchange. Denoising is such a technology, which is a process taken to remove noise from digital images and videos and to enhance their compressibility.
Noise usually exists in uncompressed images and videos, which are unwanted or undesirable elements or artifacts. Noise can come from a variety of sources, for example, shot noise which originates in the electronic hardware, thermal noise, channel noise, etc. The existence of noise not only degrades the visual quality of video, it also decreases the performance of video coding and reduces the medium files' compressibility. It increases the entropy of the video such that more bits are needed to code the images and videos and also decreases the accuracy of motion estimation that further increases the bit rate. To increase the coding efficiency and compressibility, video denoising is necessary before encoding the video. The purpose of video denoising is to estimate the true image signals as accurately as possible. Many methods have been developed for image denoising such as low pass filtering, Wiener filtering, Kalman filtering or Spatial Varying filtering, most of which exploit the spatio-redundancy of the image to suppress noise. However, these filters are not optimized, especially for video denoising as the temporal redundancy of the video is not exploited. Some spatio-temporal filters are proposed for denoising where motion compensation is usually applied in order to exploit the temporal redundancy of moving objects. However, the computational complexity of these methods is too great for real time processing. Spatial Varying Filter (SVF) was proposed, which has relatively low computational demand and yet good edge preserving capability. SVF computes filter weights by the difference between current pixel and unfiltered neighboring pixels. Because SVF is a Finite Impulse Response (FIR) filter, the filter size is limited due to computational complexity. This constraint limits the noise suppression capability of the SVF technique as the order of the filter cannot be too large.
Some references are briefly commented in the following for purpose of providing background information.
U.S. Pat. No. 6,731,821 discloses an adaptive low pass filter to remove noise in digital video signals. The amount of low pass filtering depends on a local gradient measurement. The image is first filtered by a general low pass filter and then the filtered image is subtracted from the original image to give the residue image. The residue image is weighted according to local gradient measurement and added back to the filtered image to give the final image. However, the weighing of the neighboring pixels used in the low pass filter is not adaptive.
U.S. Pat. No. 6,665,448 discloses a filter which performs selective sharpening and smoothing of image data. The sharpening filter is derived from the selective smoothing filter. Unsharp masking is performed to enhance the edges. The purpose of the filter, however, is to enhance the visual quality of the image with enhanced edges which, in general, increase the bit rate.
U.S. Patent Application No. 20050036704 teaches a method of splitting an image into the foreground region and the background region and applying different anisotropic diffusion filters on each region. But, in general, a video scene is more complex than just two regions.
U.S. Patent Application No. 20050036558 teaches a method where pixel values between successive frames are filtered if the difference in the pixel values between successive frames is within threshold range, which is determined adaptively frame by frame. The use of fixed threshold within a frame nonetheless limits the performance of the filter.
U.S. Patent Application No. 20020172431 discloses a method for improving the appearance of the image while at the same time enhancing the compressibility of the image. It improves compressibility by selectively filtering the smooth regions and enhances the edges by applying an edge enhancement filter selected based on an edge analysis. However, the method only uses a limited set of filters.
U.S. Pat. No. 6,633,683 discloses a method to improve a well-known “least mean square method” by locally segmenting the pixels to the homogeneous region and edge region and estimating the local mean and variance using the data only from the homogeneous region. This method, however, requires the knowledge of noise variance to give good performance and it is for handling Gaussian noise.
Certain embodiments provide an efficient denoising filter for adaptively reducing spatial noise in both homogeneous and high texture regions in a way that does not sacrifice picture details and does not demand too heavy computational power to render them practical for real-time processing. Certain embodiments to provide a set of denoising filters that are computationally highly efficient, have good noise reduction power and are capable of preserving edge details.
In one embodiment, there is provided an auto-regressive denoising method, which is applicable to digital images or digital video frames. The method includes an act of producing a filtered output for a current pixel of the digital image or video frame using past filtered pixels as an input, rather than inputting the original pixels themselves. The filtered output represents a weighted sum of the past filtered pixels and future original pixels. The weights are calculated by using a function of absolute pixel difference between current pixel and a set of neighboring pixels. There are further provided a set of denoising filters as particular embodiments. Those filters are: Auto-regressive Spatial Varying Filter (ARSAV), Modified Auto-regressive Spatial Varying Filter (MARSVF), Spatiotemporal Varying Filter (STVF), Auto-Regressive Spatiotemporal Varying Filter (ARSTVF), Motion Compensated Spatiotemporal Varying Filter (MCSTVF), Auto-regressive Motion Compensated Spatiotemporal Varying Filter (ARMCSTVF), Selective Auto-regressive Motion Compensated Spatiotemporal Varying Filter (SARMCSTVF).
The various features of novelty which characterize the embodiments are pointed out with particularity in the claims annexed to and forming a part of this disclosure. For a better understanding of the invention, its operating advantages, and specific objects attained by its use, reference should be made to the drawings and the following description in which there are illustrated and described preferred embodiments.
SVF
The present method and system is an extension and an improvement of the existing SVF (spatial varying filter) disclosed in “Fast ad-hoc Inverse Halftoning using Adaptive Filtering”, Proc. Of IEEF int. Conf on Acoustics, Speech Processing, Vol. 6, pp. 2279-2282, March 1999. The publication (the SVF paper hereinafter) is incorporated herewith in its entirety for the purpose of providing background information to appreciate the subject matter of the present method and system.
The SVF filter is based on a set of calculations using Equations (1)-(4) as provided below. In Equation (1), the filtered output y(i, j) is weighted sum of the input x( i, j) and the neighboring pixels. This filter can be applied on luminance and chrominance pixels.
Where x(i,j) is the (i,j)th pixel of the image, a(i+k,j+l) is a spatial varying filter coefficient, which is determined by the function of absolute pixel difference using Equation (2)-(4), and N is a set of neighboring pixels.
w(i+k,j+l)=f(|x(i, j)−x(i+k,j+l)|), (k,l)εN (2)
Equation (3) is used to normalize the filtered coefficients such that the average intensity is preserved. While there are many numerous possible definitions for f in Equation (2), the simplest one defined in the SVF paper referenced as the “polynomial map” is chosen:
Many possible values of k have been tried in simulations on the testing videos and it is found that k=30 is a good value for all the videos tested. Of course, a person of ordinary skill may use other values to obtain satisfactory results for a given video under particular circumstances. The main feature of SVF is that the edges can be preserved as the weights of neighboring pixels with large difference with current pixels will be suppressed significantly. The mapping function f with k=30 is shown in
Auto-Regressive Spatial Varying Filter (ARSVF)
SVF is basically a FIR filter. As such, the filter size is limited due to heavy computation requirement. This in turn limits SVF's noise suppression capacity as the order of the filter cannot be too large. To increase the flexibility of the filter, the present invention applies an autoregressive filtering technique to SVF, resulting in a type of filter referred to as ARSVF. Unlike SVF where an unfiltered future pixel is used as the input of the filter, ARSVF uses a past filtered pixel as input for computing the filter weight. Filtered pixels are less noisy and thus are more reliable, whereby reducing computational complexity and reducing the memory requirement. For SVF, the original pixel should be kept in the memory to be used as the input, while for ARSVF filtered pixels are used as the input and there is no need to keep the original pixel in the memory. The filtered output y(i,j) using ARSVF is calculated by Equations (5)-(7).
Referring to
Modified Auto-Regressive Spatial Varying Filter (MARSVF)
A full implementation using equations 5, 6 and 7 should achieve optimal result, but it is computation exhaustive. Therefore, as another aspect of the present system and method there is provided a modified ARSVF or MARSVF, which is a sub-optimal solution but can be efficiently computed.
The objective of MARSVF is to reduce the computation of ARSVF. To that end, the equations used in ARSVF described in the foregoing are modified to achieve better computation efficiency with little or no decrease in filtering quality.
The weighting function, Equation (4), is modified in MARSVF as follows
f″(i)=2−i (8)
where: “i” is the absolute difference between the truncated intensity of current pixel and the input candidate. In certain embodiments the pixel difference calculation in ARSVF is an 8-bit operation. MARSVF uses a truncated pixel value which is 5 bits for calculation so that the new difference, which is the input for Equation (8), is as follows:
new_diffi=ABS(pixel(center)>>3−pixel(i)>>3) (9)
To further increase the efficiency, the computation of subtract and absolute operation in Equation (9) may be eliminated. The absolute difference can be obtained by means of a lookup table. The lookup table has two entries, one is the truncated (5 bits) current pixel value and one is the truncated candidate value (5 bits) such that the table size is 32 by 32. Since the total level of absolute difference equals 32 in Equation (9), the weighting function in Equation (8) is quantized to have an estimated weighting function:
fest(i)=└32*2−i┘ (10)
The division computation in Equation (7), may be eliminated by using the right shifting function. This requires that the normalization factor needs to be a power of 2. There are two ways to achieve this goal: adaptive and non-adaptive.
Non-adaptive normalization basically is accomplished by setting the normalization factor as a constant value, which in this exemplary implementation is set to be 128. If the actual sum of weight is larger than 128, the difference between the sum of weights and 128 is subtracted from the weight of current pixel (or the center pixel) such that:
Weightcenter=128−sum of weight of 8 connected neighbors
The current filtered pixel will be equal to:
where:
For adaptive normalization, the normalization factor is still a power of two but, instead of using a fixed value, it is set to a value which is a power of two and this value is slightly larger than the sum of weight of 9 pixels. The process of obtaining the value is as follows:
1) Use a lookup table to find the maximum level of the most significance bit (MSB) of the first input value. This will give the index for the normalization factor.
2) Initialize accumulated weight (sum_acc), making it equal to the first input value.
3) Each input value will be added to the sum_acc, which will then be right shifted by the maximum level of MSB. If the output equals to 1, the maximum level of MSB will be incremented by one.
4) After all the weight of candidate is added, the maximum level of MSB of the sum of weight is obtained. The normalization factor equals to right shifting (>>) with amount of (maximum level of MSB+1). As a result, the filtered pixel equals:
where:
This filter was proposed by Tai-Wai Chan; Au, O. C.; Tak-Song Chong; Wing-San Chau; “A novel content-adaptive video denoising filter,” in Proceedings (ICASSP '05) IEEE International Conference on Acoustics, Speech, Volume 2, 18-23 March 2005, Pages 649-652.
STVF extends SVF to the temporal domain by including the pixels in previous frame and next frames in order to exploit the temporal redundancy for noise suppression. Denoting xt−1(i,j), xt(i,j), xt+1(i,j) as the (i,j)th pixel in t−1, t and t+1 frame respectively where t is the current frame, the filtered output yt(i, j) is given by Equations (13)-(15). Because one frame delay is introduced when STVF is used, to avoid the delay, Equation (13) can be modified so that only the current frame and previous one are used to filter the frame.
Auto-Regressive Spatiotemporal Varying Filter (ARSTVF)
As another embodiment of the present method and system, STVF and ARSVF are combined to give ARSTVF and the filtered pixel is given by Equations (16)-(18).
Motion Compensated Spatiotemporal Varying Filter (MCSTVF)
In MCSTVF, motion information is used to compensate the motion effect in the filtering process. In general, the motion information for every pixel should be estimated. However, the complexity needed to estimate the motion information for every pixel is too large for real-time video processing. To reduce the complexity, block based motion estimation is used. However, other higher complexity techniques may also be used to provide better results. For example, a pixel based motion estimation technique, like optical flow, may produce a better result. Therefore, temporal direction pixel matching is not limited to block based motion estimation. Denoting mvx1,t−1(i, j), mvy1,t−1(i, j) as the x-component and y-component of the motion vector for the (i, j)th pixel in current frame t, with reference to previous frame t−1, the filtered pixel is given by Equations (19)-(21).
Auto-Regressive Motion Compensated Spatiotemporal Varying Filter (ARMCSTVF)
As another embodiment of the present method and system, MCSTVF is modified to become a recursive filter, referred to as ARMCSTVF. The filtered pixel via ARMCSTVF is given by Equations (22)-(24).
Selective Auto-Regressive Motion Compensated Spatiotemporal Varying Filter (SARMCSTVF)
It is observed that for some frames with large object motions or camera movement, the noise suppression capability of MCSTVF is inferior to STVF. In contrast, for frames with small motion regions, ARMCSTVF is better than ARSTVF. Those observations are taken into consideration in another embodiment of the present method and system where a condition is defined to switch between ARSTVF and ARMCSTVF. For any pixel, if either the absolute magnitude of the x-component or y-component is smaller than or equal to a threshold value, ARMCSTVF is used for this pixel and otherwise ARSTVF is used. For one particular embodiment described here, the threshold value is set to 4, but the value can be adjusted or adaptively calculated. Thus, people of ordinary skill in the art may modify the switching condition to suit their specific needs. The specified switching condition provided here is by example only. This filter is referred to as SARMCSTVF or Selective Auto-regressive Motion Compensated Spatiotemporal Varying Filter, which is based on Equations (25) and (26).
Referring to Table 1, two testing video sequences “Foreman” and “Akiyo,” which were in CIF 4:2:0 format (352 by 288 pixels for luminance, 176 by 144 pixels for chrominance), were used in a testing with the denoising filters listed in Table 1. Gaussian noise with variances=16 was added to the luminance component of the testing videos. SVF and the built-in 2-D Wiener filter (a product under the trademark “Matlab”) are used as references along with various filters according to the present method and system. The testing was running on a PC using Matlab for simulation.
8-connected spatial neighboring pixels are chosen as the input of the filter, e.g., that the set of neighboring pixels N is {(−1,−1), (−1,0), (−1,1), (0,−1), (0,0), (0,1), (1,−1), (1,0), (1,1)}. If temporal filtering is included, pixels in past or future frames should be included. The Peak Signal-to-Noise-Ratio (PSNR) using different filters are shown in
For Akiyo, the general performance of the filters were very good since there was high spatial as well as temporal redundancy.
The filtered testing video was then compressed using H.264/AVC reference software JM6.1e with difference QP ranging 14 to 38. The GOP size was 15 frames and the GOP structure was IPPPPPPPPPPPPPP. The multi-block was employed and the multi-frame function was switched off. Average PSNR, bit-rate reduction and rate-distortion curves are shown in
Although the foregoing embodiments focused on video denoising filtering, the concept of autoregressive filtering where filtered pixels are used as an input for filtering the current pixel, an important aspect of the present method and system, can be equally applicable to the images. In essence, an image is very much like a single frame of a video. Of course, filters that use temporal information are not applicable to individual images as there is not temporal information. The denoising method of the present invention can be computationally implemented in software, hardware, or combination of both. Such computational implementation, either in the form of a software application or integrated circuits of a semiconductor chip or combination thereof, is within ordinary skill in the art.
While there have been described and pointed out fundamental novel features of the invention as applied to a preferred embodiment thereof, it will be understood that various omissions and substitutions and changes, in the form and details of the embodiments illustrated, may be made by those skilled in the art without departing from the spirit of the invention. The invention is not limited by the embodiments described above which are presented as examples only but can be modified in various ways within the scope of protection defined by the appended patent claims.