US11051046B2 - Method and apparatus for noise reduction in video systems - Google Patents
Method and apparatus for noise reduction in video systems Download PDFInfo
- Publication number
- US11051046B2 US11051046B2 US16/988,978 US202016988978A US11051046B2 US 11051046 B2 US11051046 B2 US 11051046B2 US 202016988978 A US202016988978 A US 202016988978A US 11051046 B2 US11051046 B2 US 11051046B2
- Authority
- US
- United States
- Prior art keywords
- block
- current
- pixels
- motion
- filtered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 11
- 239000013598 vector Substances 0.000 claims abstract description 72
- 238000002156 mixing Methods 0.000 claims description 29
- 238000001914 filtration Methods 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 6
- 238000012935 Averaging Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 14
- 230000006835 compression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000002123 temporal effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Definitions
- Embodiments of the disclosure relate generally to noise filters and more particularly to a noise filter implemented using a video compression engine.
- a noise filter is an essential component in a video system to ensure a high quality video. Also, when the noise filter is used in a video compression engine, it reduces a bitrate significantly to provide a high quality video. In vision systems, the noise filter improves accuracy of underlying vision algorithms. Noise is random in nature and various noise models are available to characterize different kinds of noise. Averaging and filtering techniques are prominently used to remove many of these kinds of noise. Traditionally, spatial filtering and temporal filtering have been used to remove noise.
- MATNF motion adaptive temporal noise filter
- MCTNF motion compensated temporal noise filter
- MATNF class of filters have various shortcomings, such as: (a) inability to clean noise especially in medium to high noise; (b) distortion in areas with motion (motion region) when strong filtering is performed; (c) blurring of sequences with high resolution.
- MCTNF generates better video quality and does more effective filtering than MATNF.
- MCTNF has much higher computational complexity.
- the noise filter includes a motion estimation (ME) engine.
- the ME receives a current frame and a reference frame.
- the current frame comprising a current block and the reference frame includes a plurality of reference blocks.
- the ME engine generates final motion vectors.
- the current block comprises a plurality of current pixels.
- a motion compensation unit is coupled to the ME engine and generates a motion compensated block based on the final motion vectors and the reference frame.
- the motion compensated block includes a plurality of motion compensated pixels.
- a weighted average filter multiplies each current pixel of the plurality of current pixels and a corresponding motion compensated pixel of the plurality of motion compensated pixels with a first weight and a second weight respectively.
- a blockiness removal unit is coupled to the weighted average filter and removes artifacts in the filtered block.
- FIG. 1 illustrates a block diagram of a noise filter, according to an embodiment
- FIG. 2 illustrates a spatial filter, according to an embodiment
- FIG. 3 illustrates a computing device, according to an embodiment
- FIG. 4 is an example environment in which various aspect of the present disclosure may be implemented.
- FIG. 1 illustrates a block diagram of a noise filter 100 , according to an example embodiment.
- the noise filter 100 includes a motion estimation (ME) engine 104 .
- the ME engine 104 receives a current frame 102 and a reference frame 106 .
- a motion smoothness factor (MSF) engine 108 is coupled to the ME engine 104 .
- a motion compensation unit 110 is coupled to the ME engine 104 .
- the motion compensation unit 110 also receives the reference frame 106 .
- a weighted average filter 114 is coupled to the motion compensation unit 110 .
- the weighted average filter 114 also receives the current frame 102 .
- a weight computation unit 112 is coupled to the ME engine 104 and the weighted average filter 114 .
- a blockiness removal unit 116 is coupled to the weighted average filter 114 .
- a filtered frame buffer 120 is coupled to the blockiness removal unit 116 .
- the noise filter 100 is being initiated to process the current frame 102 .
- the ME engine 104 receives the current frame 102 and the reference frame 106 .
- a plurality of frames is received by the noise filter 100 and the plurality of frames includes the current frame 102 and the reference frame 106 .
- Each frame of the plurality of frames includes a plurality of non-overlapping macroblocks and each macroblock includes a plurality of blocks.
- the current frame 102 includes a current block and the reference frame 106 includes a plurality of reference blocks.
- the reference frame 106 is a frame received before the current frame 102 that is filtered by the noise filter 100 to generate the reference frame 106 .
- the current block includes a plurality of current pixels and each reference block of the plurality of reference blocks includes a plurality of reference pixels.
- the ME engine 104 performs a motion search for each macroblock of the plurality of non-overlapping macroblocks in the current frame 102 .
- the current frame 102 is of 1920 ⁇ 1080 pixels and each macroblock is of 16 ⁇ 16 pixels.
- the ME engine 104 performs motion searches with 16 ⁇ 16 macroblocks.
- the ME engine 104 performs a book-keep for each block of the set of blocks in the macroblock.
- each macroblock of 16 ⁇ 16 pixels includes 4 blocks of 8 ⁇ 8 pixels.
- the ME engine 104 book-keep at 8 ⁇ 8 blocks to estimate four distinct motion vectors for each macroblock.
- a macroblock of the current frame 102 is compared with a macroblock of the reference frame 106 and a set of motion vectors corresponding to each block in the macroblock of the current frame 102 are stored by the ME engine 104 .
- the motion vectors provide a location of a reference block with respect to the current block.
- the motion vector of the plurality of motion vectors represents a shift of an area to be matched in the reference frame 106 and the current frame 102 .
- the motion vectors are utilized for representing vectors corresponding to a horizontal and a vertical shift of a specific block between the reference frame 106 and the current frame 102 .
- the ME engine 104 performs multiple motion searches to compare the macroblock of the current frame 102 with a set of macroblocks in the reference frame 106 .
- the ME engine 104 therefore generates a plurality of motion vectors.
- the ME engine 104 uses multiple reference frames for generating the plurality of motion vectors.
- the multiple reference frames includes frames received before the current frame 102 and frames received after the current frame 102 .
- the ME engine 104 is configured to estimate a sum of absolute difference (SAD) between the current block and a reference block of the plurality of reference blocks in the reference frame 106 .
- the SAD is estimated by adding absolute value of differences between a current pixel and a corresponding reference pixel over all the pixels of the current block and the reference block respectively.
- the ME engine 104 estimates a plurality of SAD corresponding to the current block as the ME engine 104 estimates SAD between the current block and each reference block of the plurality of reference blocks.
- the ME engine 104 also estimates motion vector cost (MVcost) between the current block and a reference block.
- the motion vector cost (MVcost) is estimated from the motion vectors associated with the current block.
- predicted motion vectors are decided based on motion vectors of blocks adjacent to the current block.
- the motion smoothness factor (MSF) engine 108 estimates a motion smoothness value (MSV) corresponding to the current block.
- the MSV is defined between a maximum MSV and a minimum MSV.
- the MSV is estimated from the current noise level as illustrated in equation 2.
- MSV Minimum ⁇ ⁇ MSV ⁇ Current ⁇ ⁇ Noise ⁇ ⁇ level Minimum ⁇ ⁇ Noise ⁇ ⁇ level ( 2 )
- the MSV when current noise level is equal to the minimum noise level, the MSV is equal to the minimum MSV. As the current noise level increases, MSV increases till it saturates to the maximum MSV.
- a value of the maximum MSV is defined as (192*blocksize/64) and a value of the minimum MSV is defined as (24*blocksize/64), where blocksize is a size of the current block. In one example, when the current block is an 8 ⁇ 8 pixel block, the blocksize is 64.
- the current noise level is estimated between the current frame 102 and the reference frame 106 by averaging SAD for all blocks with motion vectors below a predefined threshold.
- the current noise level is estimated between the current frame 102 and the reference frame 106 by averaging SAD for all blocks with motion vectors (MVx,MVy) defined as ⁇ 0,0>. Therefore, in the above example, the current noise level is represented as
- the MSV is equal to the minimum MSV when a sum of the motion vectors associated with the current block and the motion vectors associated with a set of adjacent blocks is above a predefined threshold.
- adjacent blocks are spatial neighbor blocks and/or temporal neighbor blocks of the current block. Whenever information from spatial neighbor blocks is not available due to processing in a raster scan format, temporal neighbor blocks from a previous frame are utilized. The noise filter 100 receives the previous frame followed by current frame 102 .
- the ME engine 104 estimates a cost function (J) between the current block and a reference block.
- the cost function (J) is estimated by summing the SAD between the current block and the reference block and a product of the MSV and the motion vector cost between the current block and the reference block.
- the ME engine 104 estimates a motion vector cost between the current block and the reference block and also estimates the SAD between the current block and the reference block.
- the MSF engine 108 estimates the motion smoothness value (MSV) corresponding to the current block. Thereafter, the ME engine 104 utilizes these values to obtain the cost function (J) as illustrated in equation 4.
- the ME engine 104 estimates the cost function (J) between the current block and each reference block of the plurality of reference blocks in the reference frame 106 . In one example, the ME engine 104 estimates the cost function (J) between the current block and a set of reference blocks of the plurality of reference blocks in the reference frame 106 . The ME engine 104 selects a final SAD and final motion vectors associated with the current block corresponding to a reference block of the plurality of reference blocks for which the cost function (J) is minimum.
- the cost function (J) between the current block and a first reference block is J1 and the cost function (J) between the current block and a second reference block is J2.
- the reference frame 106 includes the first reference block and the second reference block.
- the final motion vectors are divided by two to obtain chrominance motion vectors (cMVx, cMVy).
- chrominance motion vectors cMVx, cMVy
- a last bit of the final motion vectors is masked with zero before dividing by two.
- the chrominance motion vectors (cMVx, cMVy) obtained are integers. Interpolation for chrominance SAD is thus avoided because it provides marginal improvement in removing noise but comes with significant computational complexity.
- the ME engine 104 estimates a chrominance SAD between the current block and the reference block using the chrominance motion vectors (cMVx, cMVy).
- the chrominance SAD is a SAD for a chrominance block (Cb block and Cr block) which corresponds to the current block.
- the chrominance components Cb and Cr are of 4 ⁇ 4 pixels.
- the chrominance motion vectors (cMVx, cMVy) are utilized to estimate SAD for every 4 ⁇ 4 block which is further used to compute the chrominance SAD.
- the ME engine 104 estimates a combined SAD associated with the current block by summing the final SAD and the chrominance SAD.
- the weight computation unit 112 receives the combined SAD associated with the current block from the ME engine 104 .
- the weight computation unit 112 estimates a first weight (W1) and a second weight (W2) using the combined SAD associated with the current block, an average combined SAD associated with the previous frame and a blending factor.
- the noise filter 100 receives the previous frame followed by current frame 102 . Each block of the previous frame is associated with a combined SAD. An average of combined SAD associated with all the blocks in the previous frame provides the average combined SAD associated with the previous frame.
- the first weight (W1) is estimated as follows
- W ⁇ 1 exp ⁇ ( - ⁇ ) exp ⁇ ( - ⁇ ) + exp ⁇ ( - r ) ( 5 )
- ⁇ is the blending factor and r is defined as
- piecewise linear approximation of exponential function is used in the weight computation unit 112 to estimate the first weight (W1) and the second weight (W2).
- a range of r is from 0 to 8, it is divided into 9 regions and a region is defined between two numbers such as a first region is defined between 0 and 1, a second region is defined between 1 and 2 and so on.
- a last region will account for r>8.
- a straight line is fitted instead of exponential as an approximation. This reduces the error in estimation of the first weight (W1) and the second weight (W2) and also can be implemented with very low computational complexity as compared to traditional floating point implementation.
- a block is marked as zero block when the motion vectors of the block is ⁇ 0,0>, otherwise it is marked as non-zero block.
- the current block is a static block otherwise the current block is a motion block.
- the blending factor ( ⁇ ) for the motion block is lower than the blending factor ( ⁇ ) for the static block.
- the blending factor ( ⁇ ) is defined between a maximum blending factor ( ⁇ ) and a minimum blending factor ( ⁇ ).
- the blending factor ( ⁇ ) for the motion block is equal to the minimum blending factor ( ⁇ ) and the blending factor ( ⁇ ) for the static block is between the maximum blending factor ( ⁇ ) and the minimum blending factor ( ⁇ ).
- the blending factor ( ⁇ ) increases in steps from the minimum blending factor ( ⁇ ) to the maximum blending factor ( ⁇ ). For example, min_ ⁇ , min_ ⁇ + ⁇ , min_ ⁇ +2 ⁇ till max_ ⁇ , where ⁇ is a step increase in ⁇ , min_ ⁇ is the minimum blending factor and max_ ⁇ is the maximum blending factor.
- the motion compensation unit 110 receives the final motion vectors from the ME engine 104 and also receives the reference frame 106 .
- the motion compensation unit 110 generates a motion compensated block based on the final motion vectors and the reference frame 106 .
- the motion compensated block includes a plurality of motion compensated pixels.
- the weighted average filter 114 receives: (a) motion compensated pixels from the motion compensation unit 110 ; (b) the plurality of current pixels corresponding to the current block; and (c) the first weight (W1) and the second weight (W2) from the weight computation unit 112 .
- the weighted average filter 114 multiply each current pixel of the plurality of current pixels and a corresponding motion compensated pixel of the plurality of motion compensated pixels with a first weight (W1) and a second weight (W2) respectively.
- the product of the current pixels and the first weight (W1) is summed with the product of the corresponding motion compensated pixels and the second weight (W2) to generate a filtered block.
- the filtered block includes a plurality of filtered pixels.
- a filtered pixel (f) is represented as:
- log Wd log ⁇ ⁇ Wd + 1 ( 8 )
- p0 is the current pixel and p1 is the motion compensated pixel.
- W1 is the first weight and W2 is the second weight.
- log Wd is used in equation 8, to increase the precision of weights W1 and W2.
- a value of log Wd is 6, as it can be used to represent weights up to one with maximum precision.
- the weighted average filter 114 is implemented on a motion compensation accelerator in a video compression engine.
- the filtered block is received by the blockiness removal unit 116 that removes artifacts in the filtered block.
- the blockiness removal unit 116 is a de-blocking filter.
- a set of parameters are associated with the de-blocking filter such as (but not limited to) quantization parameter, inter mode, intra modes and motion vector.
- a set of the parameters associated with the de-blocking filter are adjusted to perform at least one of a strong filtering, moderate filtering and weak filtering.
- the set of parameters are adaptively selected based on the noise present in the filtered block.
- the blockiness removal unit 116 after filtering provides the filtered block to the filtered frame buffer 120 .
- the filtered frame buffer 120 stores the filtered block.
- the filtered frame buffer 120 stores all the filtered blocks corresponding to the current frame 102 .
- the filtered blocks corresponding to the current frame 102 together form a filtered frame.
- the noise filter 100 in one embodiment is a motion compensated temporal noise filter (MCTNF).
- MTNF motion compensated temporal noise filter
- the noise filter 100 is mapped to a video compression engine.
- the noise filter 100 is mapped to video encoding accelerators. Indeed, those skilled in the art will appreciate that building blocks of noise filter 100 overlaps building blocks of a video compression engine and the processes defined earlier in the description have been adapted to suit hardware blocks of the video compression engine.
- the noise filter 100 utilizes available resources of a video compression engine and also provides high video quality.
- the noise filter 100 finds application in any video processing systems such as, but not limited to, video surveillance devices, and computer vision systems.
- the noise filter 100 is of lesser computational complexity as compared to MATNF and provides a better video quality than MCTNF.
- FIG. 2 illustrates a spatial filter 200 according to an embodiment.
- the spatial filter 200 is coupled to the noise filter 201 .
- the noise filter 201 is similar in connection and operation to the noise filter 100 (as illustrated in FIG. 1 ).
- the spatial filter 200 includes a median filter 202 that is coupled to the noise filter 201 .
- the median filter 202 is an N ⁇ N median filter, where N is an integer.
- the median filter 202 is a 3 ⁇ 3 median filter.
- a subtractor 204 is coupled to the median filter 202 .
- a soft coring unit 206 is coupled to the subtractor 204 and receives a noise function ( ⁇ ) 208 .
- the soft coring unit 206 is coupled to an adder 210 .
- the median filter 202 receives a filtered pixel of the plurality of filtered pixels from the noise filter 201 .
- the noise filter 201 generates a filtered block and each block includes a plurality of filtered pixels.
- the median filter 202 generates a median pixel on receiving the filtered pixel.
- the subtractor 204 subtracts the median pixel from the filtered pixel to generate a subtracted pixel.
- the soft coring unit 206 receives the subtracted pixel and the noise function ( ⁇ ) 208 .
- the noise function ( ⁇ ) 208 is estimated from a current noise level. The current noise level is obtained as illustrated in equation 3.
- the soft coring unit 206 performs a soft coring function which is defined as
- f ⁇ ( x ) x ⁇ [ 1 - exp ⁇ ⁇ ( x 2 ⁇ ⁇ ) 2 ⁇ ] ( 9 )
- f(x) represents an output of the soft coring unit 206
- x represents an input to the soft coring unit 206 .
- the input to the soft coring unit 206 is the subtracted pixel.
- the soft coring unit 206 performs soft coring function on the subtracted pixel and generates an adjusted pixel.
- the adder 210 sums the adjusted pixel and the median pixel to generate a spatial filtered pixel.
- the spatial filter 200 performs filtering on each filtered pixel received from the noise filter 201 and generates a corresponding spatial filtered pixel.
- the spatial filter 200 is used to remove any noise left over in the noise filter 201 .
- the spatial filter 200 in one example suppresses amplitudes below a threshold and preserves high amplitudes.
- FIG. 3 illustrates a computing device 300 according to an embodiment.
- the computing device 300 is, or is incorporated into, a mobile communication device, such as a mobile phone, a personal digital assistant, a transceiver, a personal computer, or any other type of electronic system.
- the computing device 300 may include one or more additional components known to those skilled in the relevant art and are not discussed here for simplicity of the description.
- the computing device 300 comprises a megacell or a system-on-chip (SoC) which includes a processing unit 312 such as a CPU (Central Processing Unit), a memory module 315 (e.g., random access memory (RAM)) and a tester 310 .
- the processing unit 312 can be, for example, a CISC-type (Complex Instruction Set Computer) CPU, RISC-type CPU (Reduced Instruction Set Computer), or a digital signal processor (DSP).
- the memory module 315 (which can be memory such as RAM, flash memory, or disk storage) stores one or more software applications 330 (e.g., embedded applications) that, when executed by the processing unit 312 , performs any suitable function associated with the computing device 300 .
- the tester 310 comprises logic that supports testing and debugging of the computing device 300 executing the software applications 330 .
- the tester 310 can be used to emulate a defective or unavailable component(s) of the computing device 300 to allow verification of how the component(s), were it actually present on the computing device 300 , would perform in various situations (e.g., how the component(s) would interact with the software applications 330 ).
- the software applications 330 can be debugged in an environment which resembles post-production operation.
- the processing unit 312 typically comprises memory and logic which store information frequently accessed from the memory module 315 .
- a camera 318 is coupled to the processing unit 312 .
- the computing device 300 includes a video processing unit 316 .
- the video processing unit 316 is coupled to the processing unit 312 , the memory module 314 and the camera 318 .
- the video processing unit 316 includes noise filter 320 .
- the noise filter 320 is analogous to the noise filter 100 in connection and operation.
- the image/video data shot by the camera 318 is processed in the video processing unit 316 .
- the video data in the computing device 300 is processed using the noise filter 320 as in any of the embodiments discussed previously in this description.
- the noise filter 320 overlaps building blocks of a video compression engine and the processes defined earlier in the description have been adapted to suit hardware blocks of the video compression engine.
- the noise filter 320 utilizes available resources of a video compression engine and also provides high video quality.
- FIG. 4 is an example environment in which various aspects of the present disclosure may be implemented.
- the environment may comprise, for example, one or more video cameras 410 , computers 420 , personal digital assistants (PDA) 430 , mobile devices 440 , televisions 450 , video conference systems 460 , video streaming systems 480 , TV broadcasting systems 470 and communication networks/channels 490 .
- PDA personal digital assistants
- the video cameras 410 are configured to take continuous pictures and generate digital video, a signal comprising sequence of image frames.
- the video cameras 410 are configured to process the image frames for efficient storage and/or for transmission over the communication networks/channels 490 .
- the computers 420 , PDAs 430 and the mobile devices 440 are configured to encode the video signals for transmission and to decode encoded video signals received from the communication networks/channels 490 .
- the video streaming systems 480 is configured to encode video signal and to transmit the encoded video signals over the communication networks/channels 490 responsive to a received request and/or asynchronously.
- the television broadcasting systems 470 are configured to process video signals in accordance with one or more broadcast technologies and to broadcast the processed video signals over the communication networks/channels 490 .
- the video conference systems 460 are configured to receive a video signal from one or more participating/conferencing end-terminals (not shown) and to convert or compress the video signal for broadcasting or for transmitting to other participating user terminals.
- the television broadcasting systems 470 are configured to receive encoded video signals from one or more different broadcasting centers (or channels), to decode each video signal and to display the decoded video signals on a display device (not shown).
- the devices and systems 410 - 480 are coupled to the communication networks/channels 490 .
- Communication networks/channels 490 supports an exchange of video signal encoded in accordance with one or more video encoding standards such as, but not limited to, H. 263, H. 264/AEC, and HEVC (high efficiency video coding) or H. 266, for example.
- the devices and systems 410 - 480 are required to process (encode and/or decode) video signals complying with such standards.
- the systems and devices 410 - 480 are implemented with one or more functional units that are configured to perform signal processing, transmitting and/or receiving of video signals from communication networks/channels 490 . When each device in the described environment performs video coding or decoding, one or more embodiments described in this disclosure are used.
- connection means at least either a direct electrical connection between the devices connected or an indirect connection through one or more passive intermediary devices.
- circuit means at least either a single component or a multiplicity of passive or active components, that are connected together to provide a desired function.
- signal means at least one current, voltage, charge, data, or other signal.
- connected to or “connected with” (and the like) are intended to describe either an indirect or direct electrical connection. Thus, if a first device is coupled to a second device, that connection can be through a direct electrical connection, or through an indirect electrical connection via other devices and connections.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Picture Signal Circuits (AREA)
Abstract
Description
MVcost=MVbits(MVx,MVy) (1)
Where, (MVx,MVy) are the motion vectors associated with the current block and MVbits is an imaginary value of bits of the differential value of the motion vectors (MVx,MVy) in the x and y direction respectively with respect to predicted motion vectors. In one embodiment predicted motion vectors are decided based on motion vectors of blocks adjacent to the current block.
In the above example, the blocks with motion vectors (MVx,MVy) defined as <0,0> are considered for estimating the current noise level as the SAD in other blocks may be due to motion and thus, the SAD will not be true representation of noise.
J(MVx,MVy)=SAD(MVx,MVy)+(MSV*MVbits(MVx,MVy)) (4)
During a motion search, the current block is compared with a reference block, the
Where, β is the blending factor and r is defined as
The second weight (W2) is estimated as follows
W2=1−W1 (7)
where, p0 is the current pixel and p1 is the motion compensated pixel. W1 is the first weight and W2 is the second weight. log Wd is used in equation 8, to increase the precision of weights W1 and W2. In one example, a value of log Wd is 6, as it can be used to represent weights up to one with maximum precision.
where f(x) represents an output of the
Claims (15)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/988,978 US11051046B2 (en) | 2013-07-22 | 2020-08-10 | Method and apparatus for noise reduction in video systems |
| US17/331,159 US11831927B2 (en) | 2013-07-22 | 2021-05-26 | Method and apparatus for noise reduction in video systems |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN3248/CHE/2013 | 2013-07-22 | ||
| IN3248CH2013 | 2013-07-22 | ||
| US14/337,669 US20150023436A1 (en) | 2013-07-22 | 2014-07-22 | Method and apparatus for noise reduction in video systems |
| US16/988,978 US11051046B2 (en) | 2013-07-22 | 2020-08-10 | Method and apparatus for noise reduction in video systems |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/337,669 Continuation US20150023436A1 (en) | 2013-07-22 | 2014-07-22 | Method and apparatus for noise reduction in video systems |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/331,159 Continuation US11831927B2 (en) | 2013-07-22 | 2021-05-26 | Method and apparatus for noise reduction in video systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20200374564A1 US20200374564A1 (en) | 2020-11-26 |
| US11051046B2 true US11051046B2 (en) | 2021-06-29 |
Family
ID=52343566
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/337,669 Abandoned US20150023436A1 (en) | 2013-07-22 | 2014-07-22 | Method and apparatus for noise reduction in video systems |
| US16/988,978 Active US11051046B2 (en) | 2013-07-22 | 2020-08-10 | Method and apparatus for noise reduction in video systems |
| US17/331,159 Active 2034-10-01 US11831927B2 (en) | 2013-07-22 | 2021-05-26 | Method and apparatus for noise reduction in video systems |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/337,669 Abandoned US20150023436A1 (en) | 2013-07-22 | 2014-07-22 | Method and apparatus for noise reduction in video systems |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/331,159 Active 2034-10-01 US11831927B2 (en) | 2013-07-22 | 2021-05-26 | Method and apparatus for noise reduction in video systems |
Country Status (1)
| Country | Link |
|---|---|
| US (3) | US20150023436A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210289233A1 (en) * | 2013-07-22 | 2021-09-16 | Texas Instruments Incorporated | Method and apparatus for noise reduction in video systems |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20180067598A (en) | 2015-11-11 | 2018-06-20 | 삼성전자주식회사 | METHOD AND APPARATUS FOR ENCODING / DECODING IMAGE |
| US20170223802A1 (en) * | 2016-02-03 | 2017-08-03 | Honeywell International Inc. | Camera-aided controller of illumination |
| CN113613005B (en) * | 2021-07-30 | 2024-04-19 | 百果园技术(新加坡)有限公司 | Video denoising method and device based on time domain filtering |
| CN115131229A (en) * | 2022-05-27 | 2022-09-30 | 腾讯科技(深圳)有限公司 | Image noise reduction and filtering data processing method and device and computer equipment |
Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5659365A (en) | 1995-06-06 | 1997-08-19 | Sony Corporation | Video compression |
| US20020011094A1 (en) | 1997-10-02 | 2002-01-31 | John Edward Cook | Temperature correction method and subsystem for automotive evaporative leak detection systems |
| US20050063475A1 (en) | 2003-09-19 | 2005-03-24 | Vasudev Bhaskaran | Adaptive video prefilter |
| US20060023788A1 (en) | 2004-07-27 | 2006-02-02 | Fujitsu Limited | Motion estimation and compensation device with motion vector correction based on vertical component values |
| US20060056724A1 (en) | 2004-07-30 | 2006-03-16 | Le Dinh Chon T | Apparatus and method for adaptive 3D noise reduction |
| US20060222074A1 (en) | 2005-04-01 | 2006-10-05 | Bo Zhang | Method and system for motion estimation in a video encoder |
| US20080089417A1 (en) | 2006-10-13 | 2008-04-17 | Qualcomm Incorporated | Video coding with adaptive filtering for motion compensated prediction |
| US20080204600A1 (en) * | 2007-02-23 | 2008-08-28 | Ning Xu | System and method for video noise reduction using an adaptive temporal method with motion detection and motion compensation |
| US20100091194A1 (en) | 2007-03-31 | 2010-04-15 | Sony Deutschland Gmbh | Noise reduction method and unit for an image frame |
| US20100309378A1 (en) | 2009-06-08 | 2010-12-09 | Sheng Zhong | Method And System For Motion Compensated Noise Level Detection And Measurement |
| US20110090960A1 (en) | 2008-06-16 | 2011-04-21 | Dolby Laboratories Licensing Corporation | Rate Control Model Adaptation Based on Slice Dependencies for Video Coding |
| US8184200B1 (en) | 2008-04-22 | 2012-05-22 | Marvell International Ltd. | Picture rate conversion system for high definition video |
| US20120257113A1 (en) | 2011-04-11 | 2012-10-11 | Mstar Semiconductor, Inc. | Filter for Video Stream |
| WO2013049412A2 (en) | 2011-09-29 | 2013-04-04 | Dolby Laboratories Licensing Corporation | Reduced complexity motion compensated temporal processing |
| US9131073B1 (en) | 2012-03-02 | 2015-09-08 | Google Inc. | Motion estimation aided noise reduction |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004514351A (en) * | 2000-11-17 | 2004-05-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Video coding method using block matching processing |
| US20150023436A1 (en) * | 2013-07-22 | 2015-01-22 | Texas Instruments Incorporated | Method and apparatus for noise reduction in video systems |
-
2014
- 2014-07-22 US US14/337,669 patent/US20150023436A1/en not_active Abandoned
-
2020
- 2020-08-10 US US16/988,978 patent/US11051046B2/en active Active
-
2021
- 2021-05-26 US US17/331,159 patent/US11831927B2/en active Active
Patent Citations (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5659365A (en) | 1995-06-06 | 1997-08-19 | Sony Corporation | Video compression |
| US20020011094A1 (en) | 1997-10-02 | 2002-01-31 | John Edward Cook | Temperature correction method and subsystem for automotive evaporative leak detection systems |
| US20050063475A1 (en) | 2003-09-19 | 2005-03-24 | Vasudev Bhaskaran | Adaptive video prefilter |
| US20060023788A1 (en) | 2004-07-27 | 2006-02-02 | Fujitsu Limited | Motion estimation and compensation device with motion vector correction based on vertical component values |
| US20060056724A1 (en) | 2004-07-30 | 2006-03-16 | Le Dinh Chon T | Apparatus and method for adaptive 3D noise reduction |
| US20060222074A1 (en) | 2005-04-01 | 2006-10-05 | Bo Zhang | Method and system for motion estimation in a video encoder |
| US20080089417A1 (en) | 2006-10-13 | 2008-04-17 | Qualcomm Incorporated | Video coding with adaptive filtering for motion compensated prediction |
| US20080204600A1 (en) * | 2007-02-23 | 2008-08-28 | Ning Xu | System and method for video noise reduction using an adaptive temporal method with motion detection and motion compensation |
| US20100091194A1 (en) | 2007-03-31 | 2010-04-15 | Sony Deutschland Gmbh | Noise reduction method and unit for an image frame |
| US8184200B1 (en) | 2008-04-22 | 2012-05-22 | Marvell International Ltd. | Picture rate conversion system for high definition video |
| US20110090960A1 (en) | 2008-06-16 | 2011-04-21 | Dolby Laboratories Licensing Corporation | Rate Control Model Adaptation Based on Slice Dependencies for Video Coding |
| US20100309378A1 (en) | 2009-06-08 | 2010-12-09 | Sheng Zhong | Method And System For Motion Compensated Noise Level Detection And Measurement |
| US20120257113A1 (en) | 2011-04-11 | 2012-10-11 | Mstar Semiconductor, Inc. | Filter for Video Stream |
| WO2013049412A2 (en) | 2011-09-29 | 2013-04-04 | Dolby Laboratories Licensing Corporation | Reduced complexity motion compensated temporal processing |
| US9131073B1 (en) | 2012-03-02 | 2015-09-08 | Google Inc. | Motion estimation aided noise reduction |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210289233A1 (en) * | 2013-07-22 | 2021-09-16 | Texas Instruments Incorporated | Method and apparatus for noise reduction in video systems |
| US11831927B2 (en) * | 2013-07-22 | 2023-11-28 | Texas Instruments Incorporated | Method and apparatus for noise reduction in video systems |
Also Published As
| Publication number | Publication date |
|---|---|
| US20150023436A1 (en) | 2015-01-22 |
| US20200374564A1 (en) | 2020-11-26 |
| US20210289233A1 (en) | 2021-09-16 |
| US11831927B2 (en) | 2023-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11051046B2 (en) | Method and apparatus for noise reduction in video systems | |
| US11611764B2 (en) | Method and apparatus of HEVC de-blocking filter | |
| US11134259B2 (en) | System and method for enhanced motion compensation using adaptive filtering | |
| JP5102228B2 (en) | Video encoding | |
| CN101326550B (en) | Motion estimation using prediction guided decimated search | |
| US12170780B2 (en) | Method and apparatus for real-time SAO parameter estimation | |
| Suh et al. | Fast sub-pixel motion estimation techniques having lower computational complexity | |
| US12149726B2 (en) | Motion refinement using a deep neural network | |
| US12323633B2 (en) | Deep prediction refinement | |
| EP1653744A1 (en) | Non-integer pixel sharing for video encoding | |
| EP3957073A1 (en) | Method and apparatus for video encoding and decoding with optical flow based on boundary smoothed motion compensation | |
| US20060171569A1 (en) | Video compression with blur compensation | |
| US8792549B2 (en) | Decoder-derived geometric transformations for motion compensated inter prediction | |
| WO2021001220A1 (en) | Bi-directional optical flow refinement of affine motion compensation | |
| US20100239006A1 (en) | Video decoder plus a discrete cosine transform unit | |
| US20240430415A1 (en) | Adaptive Filter Computation Precision in Video Coding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |