[Not Applicable]
[Not Applicable]
Certain embodiments of the invention relate to processing of analog signals. More specifically, certain embodiments of the invention relate to a method and system for analog video noise reduction by blending finite impulse response (FIR) and infinite impulse response (IIR) filtering.
In video system applications, random noise present in analog video signals, such as NTSC or PAL signals, for example, may result in images that are less than visually pleasing to the viewer. To address this problem, noise reduction (NR) operations may be utilized to remove or mitigate the analog noise present. Traditional NR operations may use either infinite impulse response (IIR) filtering based methods or finite impulse response (FIR) filtering based methods. IIR filtering may be utilized to significantly attenuate high frequency noise. However, IIR filtering may result in visual artifacts such as motion trails, jittering, and/or wobbling at places where there is object motion when the amount of filtering is not sufficiently conservative. In some instances, setting the IIR filtering conservatively may mitigate the noise removing capability even for places where there is little or no motion, such as a static area in video. As a result, there may be many instances where objectionable noise artifacts remain in the video signal.
Another traditional NR operation may be FIR filtering based methods. FIR filtering may not be subject to artifacts such as motion trail, motion blurry, jittering and/or wobbling, for example, as much as IIR-based filtering may be. FIR filtering may provide acceptable perceptual quality for moving areas to most viewers. However, in a practical NR system, which may not be able to employ a large number of video images to perform FIR filtering as a result of the cost of storage, the system's noise reducing capability may be very limited in those areas where there is little or no motion.
In order to improve the NR effectiveness it may be necessary to achieve both significant NR in areas of little or no motion and be free of motion artifacts such as motion trails, motion blur, jittering or wobbling in areas where there is motion.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
A system and/or method is provided for analog video noise reduction by blending finite impulse response (FIR) and infinite impulse response (IIR) filtering, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other features and advantages of the present invention may be appreciated from a review of the following detailed description of the present invention, along with the accompanying figures in which like reference numerals refer to like parts throughout.
Certain embodiments of the invention may be found in a system and/or method for analog video noise reduction by blending finite impulse response (FIR) and infinite impulse response (IIR) filtering. A filtering mode may be selected to generate noise-reduced pixels using FIR filtering, IIR filtering, or a blend of FIR/IIR filtering. Blending a current pixel and an FIR-filtered current pixel using an FIR blending factor may generate a first blended current pixel. The FIR filtering may be based on the current pixel, a previous collocated pixel and a next collocated pixel. Blending the current pixel and an IlR-filtered current pixel using an IIR blending factor may generate a second blended current pixel. Blending the first blended current pixel and the second blended current pixel using an adaptive blending factor may dynamically generate a filtered output pixel. The IIR filtering may be based on the current pixel and a collocated pixel of the previous second blended video image or of the previous filtered output video image. The blending factors may be dynamically modified based on a motion metric parameter.
The video processing block 102 may be adapted to receive a video input stream and, in some instances, to buffer at least a portion of the received video input stream in the input buffer 112. In this regard, the input buffer 112 may comprise suitable logic, circuitry, and/or code that may be adapted to store at least a portion of the received video input stream. Similarly, the video processing block 102 may be adapted to generate a filtered video output stream and, in some instances, to buffer at least a portion of the generated filtered video output stream in the output buffer 114. In this regard, the output buffer 114 may comprise suitable logic, circuitry, and/or code that may be adapted to store at least a portion of the filtered video output stream.
The filter 116 in the video processing block 102 may comprise suitable logic, circuitry, and/or code that may be adapted to perform an FIR filtering operation with noise reduction (FIR-NR) on a current pixel in a video frame or video field, to perform an IIR filtering operation with noise reduction (IIR-NR) on the current pixel, or to perform an FIR-IIR blended filtering operation with noise reduction (FIR-IIR-NR) on the current pixel. In this regard, the filter 116 may be adapted to operate in a plurality of filtering modes, where each filtering mode may be associated with one of a plurality of supported filtering operations. The filter 116 may utilize video content, filter coefficients, threshold levels, and/or constants to generate the filtered video output stream in accordance with the filtering mode selected. In this regard, the video processing block 102 may generate blending factors to be utilized with the appropriate filtering mode selected. The registers 110 in the video processing block 102 may comprise suitable logic, circuitry, and/or code that may be adapted to store information that corresponds to filter coefficients, threshold levels, and/or constants, for example. Moreover, the registers 110 may be adapted to store information that corresponds to a selected filtering mode.
The processor 104 may comprise suitable logic, circuitry, and/or code that may be adapted to process data and/or perform system control operations. The processor 104 may be adapted to control at least a portion of the operations of the video processing block 102. For example, the processor 104 may generate at least one signal to control the selection of the filtering mode in the video processing block 102. Moreover, the processor 104 may be adapted to program, update, and/or modify filter coefficients, threshold levels, and/or constants in at least a portion of the registers 110. For example, the processor 104 may generate at least one signal to retrieve stored filter coefficients, threshold levels, and/or constants that may be stored in the memory 106 and transfer the retrieved information to the registers 110 via the data/control bus 108. The memory 106 may comprise suitable logic, circuitry, and/or code that may be adapted to store information that may be utilized by the video processing block 102 to reduce analog noise in the video input stream. The processor 104 may also be adapted to determine noise levels for a current video frame or video field based on an early-exit algorithm (EEA) or an interpolation estimate algorithm (IEA), for example. The memory 106 may be adapted to store filter coefficients, threshold levels, and/or constants, for example, to be utilized by the video processing block 102.
In operation, the processor 104 may select a filtering mode of operation and may program the selected filtering mode into the registers 110 in the video processing block 102. Moreover, the processor 104 may program the appropriate values for the filter coefficients, threshold levels, and/or constants into the registers 110 in accordance with the selected filtering mode. The video processing block 102 may receive the video input stream and may filter pixels in a video frame in accordance with the filtering mode selected. In some instances, the video input stream may be stored in the input buffer 112 before processing. The video processing block 102 may generate the appropriate blending factors needed to perform the noise reduction filtering operation selected by the processor 104. The video processing block 102 may generate the filtered video output stream after performing the noise reduction filtering operation. In some instances, the filtered video output stream may be stored in the output buffer 114 before being transferred out of the video processing block 102.
Pixels in consecutive video frames are said to be collocated when having the same frame location, that is, . . . , Pn−1(x,y),Pn(x,y),Pn+1(x,y), . . . , where Pn−1 indicates a pixel value in the previous video frame 202, Pn indicates a pixel value in the current video frame 204, Pn+1 indicates a pixel value in the next video frame 206, and (x,y) is the common frame location between pixels. As shown in
Operations of the video processing block 102 in
The FIR blending factor, αfir, may be determined by a mapping operation of the motion information. This mapping operation may respond rapidly to motion to avoid unnecessary filtering in moving areas, for example. The FIR-NR block 314 may comprise suitable logic, circuitry, and/or code that may be adapted to FIR filter the current pixel, Pn. The FIR-NR block 314 may be adapted to perform a 3-tap FIR filtering operation given by the expression:
Pn,fir(x,y)=c0·Pn−1(x,y)+c1·Pn(x,y)+C2·Pn+1(x,y), (1)
where c0, c1, and c2 are the 3-tap FIR filter coefficients. In this regard, the FIR filter coefficients may be stored in at least a portion of the registers 110 in
Pn,out
where αfir is the FIR blending factor generated by the MM calculation block 312a. In this regard, equation (2) blends or combines the values of the current pixel and the FIR-filtered current pixel generated in equation (1). The level of blending provided by equation (2) is based on the value of the FIR blending factor, αfir.
In operation, the MM calculation block 312a and the FIR-NR block 314 may receive the current pixel, Pn, the previous collocated pixel, Pn−1, and the next collocated pixel, Pn+1. The MM calculation block 312a may utilize the contents of the received pixels to generate the FIR blending factor, αfir, The FIR-NR block 314 may utilize the contents of the received pixels to generate the FIR-filtered current pixel in accordance with equation (1). The FIR-NR block 314 may utilize the results from equation (1) and the FIR blending factor, αfir, generated by the MM calculation block 312a to generate the FIR-blended current pixel, Pn,out
In operation, the previous collocated pixel, Pn−1, may be received first and may be stored in the memory 316. The current pixel, Pn, may be received next and may also be stored in the memory 316. When the next collocated pixel, Pn+1, is received by the FIR filtering system 320, all three pixels necessary to generate the FIR blending factor, αfir. and to perform the operations described in equation (1) and equation (2) have been received. The next collocated pixel, Pn+1, may be transferred directly to the MM calculation block 312a and to the FIR-NR block 314 for processing. The current pixel, Pn, and the previous collocated pixel, Pn−1, may also be transferred from the memory 316 to the MM calculation block 312a and to the FIR-NR block 314 for processing. The next collocated pixel, Pn+1, may be stored in the memory 316 to be utilized as a current pixel and/or a previous collocated pixel in a subsequent operation of the FIR filtering system 320. In this regard, when the next collocated pixel, Pn+1, is being received and stored, the previous collocated pixel, Pn−1, and the current collocated pixel, Pn, may be fetched from the memory 316 for processing with the next collocated pixel, Pn+1, in the MM calculation block 312a and the FIR-NR block 314. Moreover, calculation of the motion metric by the MM calculation block 312a may require that a region of pixels in a neighborhood around the next collocated pixel, Pn+1, the previous collocated pixel, Pn−1, and the current collocated pixel, Pn, also be stored in the memory 316 and also be fetched from the memory 316 at the appropriate instance.
Motion-adaptive FIR-based filtering systems, such as those described in
The IIR-NR block 318 may comprise suitable logic, circuitry, and/or code that may be adapted to IIR filter the current pixel, Pn. The IIR-NR block 318 may also be adapted to generate an IIR-blended current pixel given by the expression:
P′n,out
where the IIR blending factor, αiir, controls the contribution of the IIR-filtered previous collocated pixel, P′n−1, to the IIR-blended current pixel. The delay block 320 may comprise suitable logic, circuitry, and/or code that may be adapted to delay by one video frame or video field the transfer of the recursive feedback from the output of the IIR-NR block 318 to the MM calculation block 312b and to the input of the IIR-NR block 318. In this regard, both the MM calculation block 312b and the IIR-NR block 318 utilize a recursive feedback operation based on the IlR-filtered previous collocated pixel, P′n−1.
In operation, the current pixel, Pn, and the IIR-filtered previous collocated pixel, P′n−1, are received by the MM calculation block 312b and the IIR-NR block 318. The MM calculation block 312b may generate the IIR blending factor, αiir. The IIR-NR block 318 may IIR filter the current pixel, Pn, and may utilize the IIR-filtered current pixel and the IlR-filtered previous collocated pixel, P′n−1, to perform the operation described by equation (3). The resulting IlR-blended current pixel may be transferred to the delay block 320 and may be utilized as the IlR-filtered previous collocated pixel, P′n−1, for a subsequent operation in the IIR filtering system 330.
Motion-adaptive IIR filtering methods may achieve significant noise reduction but may result in artifacts such as motion trails and/or blurring of moving objects. To avoid these motion artifacts, IIR noise reduction operations may be configured conservatively, limiting, in some instances, the ability to reduce analog noise components.
The MUX 402 may comprise suitable logic, circuitry, and/code that may be adapted to select the inputs to the MM calculations block 404 in accordance with a filtering mode. The MUX 402 may be adapted to select a previous collocated pixel, Pn−1, a current pixel, Pn, and a next collocated pixel, Pn+1, when an FIR filtering mode is selected. The MUX 402 may be adapted to select the current pixel, Pn, and the IIR-filtered previous collocated pixel, P′n−1, when an IIR filtering mode is selected. When an adaptive FIR-IIR filtering mode is selected, the MUX 402 may be adapted to first select the pixels necessary for FIR filtering and then select the pixels necessary for IIR filtering. In another embodiment of the invention, when the adaptive FIR-IIR filtering mode is selected, the MUX 402 may be adapted to first select the pixels necessary for IIR filtering and then select the pixels necessary for FIR filtering.
In another embodiment of the invention, when the adaptive FIR-IIR filtering mode is selected, for example, the MUX 402 may enable selection of the IlR-filtered previous collocated pixel, P′n−1, a current pixel, Pn, and a next collocated pixel, Pn+1,
The MM calculation block 404 may comprise suitable logic, circuitry, and/or code that may be adapted to determine a motion metric (MM) parameter based on contents from at least one of the current pixel, Pn, the previous collocated pixel, Pn−1, the next collocated pixel, Pn+1, and the llR-filtered previous collocated pixel, P′n−1. The MM calculation block 404 may be adapted to generate a different MM parameter for each of the filtering modes supported by the FIR-IIR blended filtering system 400. For example, when the FIR-IIR blended filtering system 400 supports an FIR filtering mode, an IIR filtering mode, and an adaptive FIR-IIR filtering mode, the MM calculation block 404 may be adapted to determine three different MM parameters. The MM calculation block 404 may be adapted to generate an FIR blending factor, αfir, an IIR blending factor, αiir, and/or an adaptive FIR-IIR blending factor, αadaptive. The MM calculation block 404 may generate the blending factors based on the MM parameter for the filtering mode selected, for example.
The MM parameter generated by the MM calculation block 404 may comprise a luminance (Y) component, MMy(x,y), and two chrominance (Cb, Cr) components, MMCb(x,y) and MMCr(x,y). The luminance component of the MM parameter may be determined based on the expression:
where w and h are the width and height of a window or neighborhood around the pixel location (x,y), i and j may correspond to indices that may be utilized to identify the location of pixels in the neighborhood, Diffn(i,j) is a differential variable that may be determined in accordance with the filtering mode selected, and Σ|Diffn(i,j)| is a sum of the absolute values of the differential variables determined in the neighborhood of size wxh. The neighborhood size may be determined by taking into consideration the effect on moving impulses, generally thin edges, and/or the effect on smoothing out noise, for example. Some exemplary neighborhood sizes may be 3×3, 5×3, 3×5, 7×3, 5×5, 7×5, and 7×7, for example. Selection of a neighborhood size may depend, at least in part, on implementation requirements.
The values of Diffn(i,j) in equation (4) may be determined based on the following expressions:
Diffn(i,j)=2*(|Pn(i,j)−Pn−1(i,j)|+|Pn(i,j)−Pn+1(i,j)|), (5)
Diffn(i,j)=4*(|Pn(i,j)−P′n−1(i,j)|), (6)
Diffn(i,j)=2*(|Pn(i,j)−P′n−1(i,j)|+|Pn(i,j)−Pn+1(i,j)|), (7)
where equation (5) may be utilized when the FIR filtering mode is selected, equation (6) may be utilized when the IIR filtering mode is selected, and equation (7) may be utilized when the adaptive FIR-IIR filtering mode is selected. The factor 2 in equation (5) and equation (7) and the factor 4 in equation (6) may depend on the implementation of the FIR-IIR blended filtering system 400 and may be utilized to maintain a specified precision for integer operations. In this regard, the factors in equation (5), equation (7), and equation (6) need not be limited to the examples provided.
The chrominance components of the MM parameter, MMCb(x,y) and MMCr(x,y), may be determined by following an approach substantially as described for determining equation (4). In this regard, determining the chrominance components may require consideration of the lower resolution of the chrominance components to the luma component in 4:2:2 video format, for example. The MM parameter determined by the MM calculation block 404 may be given by the expression:
MM(x,y)=w0·MML(x,y)+w1·MMCb(x,y)+w2·MMCr(x,y), (8)
where w0, w1, and w2 are weight factors that may be utilized to value differently the contribution of the luminance and chrominance components to the MM parameter. The weight factors w0, w1, and w2 may satisfy the conditions that w0+w1+w2=1. When setting w0>w1, and w0>w2, the luma component may contribute more than the chroma component, for example. The weight factors w0, w1, and w2 may be stored in the registers 110 in
The MM calculation block 404 may be adapted to generate the blending factors αfir, αiir, and αadaptive based on the following expression:
α=K0(1−(K1/MM2)), (9)
where K0 and K1, are factors determined for each of the blending factors and MM is the MM parameter determined in equation (8) for a selected filtering mode. For example, the factors K0, FIR and K1, FIR may be utilized to determine αfir, the factors K0, IIR and K1, IIR may be utilized to determine αiir, and the factors K0, adaptive and K1, adaptive may be utilized to determine αadaptive. The non-linearity of equation (9) may enable the blending factors to increase more rapidly as the MM parameter increases and avoid artifacts such as motion blurriness or motion trails for moving objects, for example. Moreover, the non-linear behavior of the blending factors may allow moving content to retain its sharpness.
The MM calculation block 404 may also be adapted to generate noise levels for a plurality of noise level intervals that may be utilized to determine and/or detect the analog video noise level in a current video field or video frame. In this regard, the MM calculation block 404 may utilize the MM parameters and may collect and accumulate the MM parameters into corresponding noise level intervals to determine the noise level corresponding to each of the noise level intervals. The noise level intervals may be determined from information stored in at least a portion of the registers 110. For example, the registers 110 may comprise information regarding the number of noise level intervals, the noise level interval lower threshold, NOISE_RANGE_LOWER_THD, and/or the noise level interval upper threshold, NOISE_RANGE_UPPER_THD. The MM calculation block 404 may generate the noise levels for each of the noise level intervals and may store the results in at least a portion of the registers 110, for example. In this regard, the processor 104 may utilize the noise levels determined by the MM calculation block 404 by retrieving the information from the registers 110, for example.
The FIR-NR block 406 may comprise suitable logic, circuitry, and/or code that may be adapted to generate an FIR-blended current pixel, Pn,out
The IIR-NR block 408 may comprise suitable logic, circuitry, and/or code that may be adapted to generate an IIR-blended current pixel, P′n,out
The FIR-IIR blending block 410 may comprise suitable logic, circuitry, and/or code that may be adapted to receive the FIR-blended current pixel, Pn,out
Pn,out(x,y)=αadaptive·Pn,out
where the adaptive FIR-IIR blending factor, αadaptive, blends the values of the FIR-blended current pixel, Pn,out
In operation, the current pixel, Pn, the previous collocated pixel, Pn−1, the next collocated pixel, Pn+1, and the IlR-filtered previous collocated pixel, P′n−1, may be received by the MUX 402. The filtering mode may be selected and the appropriate pixel values may be transferred from the MUX 402 to the MM calculation block 404. The MM calculation block 404 may determine the MM parameter based on the filtering mode selected and may generate the blending factors αfir, αiir, and αadaptive. The MM calculation block 404 may transfer the corresponding blending factor to the FIR-NR block 406, the IIR-NR block 408, and the FIR-IIR blending block 410. The FIR-NR block 406 may FIR filter the current pixel, Pn, and generate the FIR-blended current pixel, Pn,out
In operation, the previous collocated pixel, Pn−1, may be received first and may be stored in the memory 414. The current pixel, Pn, may be received next and may also be stored in the memory 414. The IIR-blended current pixel, P′n,out
In operation, the previous collocated pixel, Pn−1, may be received first and may be stored in the memory 414. The current pixel, Pn, may be received next and may also be stored in the memory 414. The filtered output pixel, Pn,out, from an immediately previous filtering operation by the FIR-IIR blended filtering system 430 may be stored in the memory 414. When the next collocated pixel, Pn+1, is received, all necessary pixel values for generating the current filtered output pixel, Pn,out, are available to the FIR-IIR blended filtering system 430. The previous collocated pixel, Pn−1, the current pixel, Pn, and the previous filtered output pixel, Pn−1,out, may be transferred from the memory 414 to the MUX 402, the FIR-NR block 406, and/or the IIR-NR block 408. In this regard, the operations for generating the current filtered output pixel, Pn,out, by the FIR-IIR blended filtering system 430 may be substantially as described in
The memory 414 in
In operation, the previous collocated pixel, Pn−1, may be received first and may be stored in the memory 414. The current pixel, Pn, may be received next and may also be stored in the memory 414. The MUX 416 may select to store in the memory 414 the filtered output pixel, Pn,out, from an immediately previous filtering operation by the FIR-IIR blended filtering system 430. In the alternative, the MUX 416 may select to store in the memory 414 the IIR-blended current pixel, P′n,out
In step 506, the MM calculation block 404 may utilize the pixel information received from the MUX 402 to generate the appropriate MM parameter in accordance with the selected filtering mode. The MM calculation block 404 may generate the appropriate blending factors based on the generated MM parameter. For example, for the FIR blending mode, the FIR blending factor, αfir, may be generated and the adaptive FIR-IIR blending factor, αadaptive, may be set to 1. This approach may result in a filtered output pixel, Pn,out, in equation (10) that may depend on the FIR-blended current pixel, Pn,out
In step 508, the FIR-NR block 406 may FIR filter the current pixel, Pn, based on filter coefficients provided from the registers 110 in
In step 512, the FIR-IIR blending block 410 may generate the filtered output pixel, Pn,out, by blending the FIR-blended current pixel, Pn,out
Accordingly, the present invention may be realized in hardware, software, or a combination thereof. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements may be spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein may be suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, may control the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
This application makes reference to: U.S. application Ser. No. ______ (Attorney Docket No. 16900US01) filed Dec. 20, 2005; U.S. application Ser. No. ______ (Attorney Docket No. 16903US01) filed Dec. 20, 2005; U.S. application Ser. No. ______ (Attorney Docket No. 16904US01) filed Dec. 20, 2005; and U.S. application Ser. No. ______ (Attorney Docket No. 16998US01) filed Dec. 20, 2005. Each of the above stated applications is hereby incorporated by reference in its entirety.