Noise reduction device and method
The denoising device addresses the computational burden of existing noise reduction methods by using linearly decreasing weights to minimize floating-point operations, enabling efficient impulse noise reduction in image processing.
Patent Information
- Application Number
- DE102013212730
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2012-06-29
- Filing Date
- 2013-06-28
- Publication Date
- 2026-01-22
- Estimated Expiration
- 2033-06-28
AI Technical Summary
Existing noise reduction methods, such as non-local means (NL Means) and Block Matching 3D (BM3D), require significant floating-point operations, leading to increased computational load on image signal processors (ISPs) due to their complex weight-based averaging calculations, especially when dealing with impulse noise.
A denoising device and method that minimizes floating-point operations by setting weights to a maximum value when the difference between correction and comparison target blocks is zero, decreasing linearly until a threshold, and setting to zero beyond the threshold, ensuring at least a guaranteed number of comparison blocks receive a corrected weight, even for impulse blocks.
This approach reduces computational load on ISPs by allowing high-speed noise reduction with efficient weight-based averaging, effectively handling impulse noise without the need for extensive floating-point operations.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Cross-reference to related registration
[0001] This application claims the priority of the Korean patent application number 10-2012-0071067 filed with the Korean Intellectual Property Office on June 29, 2012, and all the legal benefits arising therefrom, the contents of which are incorporated in their entirety by reference. Background 1. Technical field
[0002] The present inventive concept relates to a noise reduction device and a method, and in particular to a device and a method for reducing noise in an image. 2. Description of the state of the art
[0003] A denoising technology reduces noise added to an image. One such technology is averaging, which reduces noise by averaging across pixel data. With averaging, if a particular pixel in the image is noisy, the pixel is primarily restored using only pixel data in the vicinity of the noisy pixel. However, if neighboring pixels have also become noisy, averaging cannot simply remove the noise by averaging across the neighboring pixel data.
[0004] A non-local mean (hereinafter referred to as "NL Means") has recently been proposed and is used to reduce image noise. In this method, pixel noise is estimated under the assumption that the image repeats similar patterns, and the entire image is searched to identify an environment with features similar to those surrounding the target pixels for denoising.
[0005] For example, to reduce the noise of a denoising target pixel block 10 in the Fig. To reduce the noise in the image shown, a first comparison target block 12 is more similar to the denoising target pixel block 10 than a second comparison target block 14. If the sum is calculated accordingly to determine the mean in the NL Means, the higher weight can be assigned to the first comparison target block 12 compared to the second comparison target block 14.
[0006] The NL Means algorithm uses weighted averaging, where the mean is calculated by assigning a weight based on the similarity between neighboring areas. Neighboring areas are not limited to those adjacent to the target pixel block for noise reduction. Accordingly, noise can be reduced even if neighboring pixels have become noisy due to their own noise. Another denoising method using weighted averaging is the Block Matching 3D (BM3D) algorithm.
[0007] In denoising algorithms that use weight-based averaging, the weight is determined based on the similarity between pixel blocks. Similarity can be a difference between the pixel values contained within the pixel blocks. For example, similarity can be the sum of absolute differences (SAD), which is the sum of the differences between the pixel values contained within the pixel blocks. The more similar the pixel blocks are, the smaller the SAD. Since a higher weight can be assigned to a similar pixel block, the weight can decrease as the difference value between the pixel blocks increases. The weight can decrease linearly or exponentially as the difference value between the pixel blocks increases.
[0008] However, if the weighting for the pixel difference value changes exponentially, floating-point operations may be necessary for weight-based averaging. Since floating-point operations are comparatively slow due to their greater computational complexity compared to integer operations, an image signal processor (ISP) is subjected to a greater workload when processing floating-point operations.
[0009] US Patent 2011 / 0311154 A1 describes a method and a device for improving a digital image.
[0010] US Patent 2010 / 0141804 A1 describes an image data processing method by reducing image noise and a camera that includes means for implementing this method.
[0011] JD Peter et al., “Robust Estimation Approach for NL-Means Filter”, Proc. Part 2: Advances in Visual Computing, 4th International Symposium, ISVC 2008, Springer, pages 571-580, describes a robust estimation method for an NL-Means filter.
[0012] US 2010 / 0220222 A1 describes an image processing device, an image processing method and a recording medium that stores an image processing program. Overview
[0013] Exemplary embodiments of the present disclosure provide a noise reduction device, a system and a method for performing high-speed noise reduction, including pulse noise reduction.
[0014] Exemplary embodiments of the present disclosure also provide a denoising device, a system and a method for minimizing the number of floating-point operations for calculating the weighting in a weight-based averaging calculation for impulse noise reduction.
[0015] An embodiment of the present disclosure is a denoising device comprising: an image input unit that receives pixel data containing color information of pixels included in a correction target image; a denoising unit that denoises the pixel data by a weight-based averaging method, wherein the weight is set to a maximum value when a difference value between a correction target block and a comparison target block in the correction target image is equal to 0, decreases linearly to 0 as the difference value increases until it reaches a threshold, and is set to 0 when the difference value is greater than or equal to the threshold; and an image output unit that outputs the denoised pixel data.The denoising unit assigns a corrected weight value to at least a guaranteed number of comparison target blocks for a pulse block, and the pulse block is a correction target block for which the number of comparison target blocks not weighted with 0 is less than a predetermined guaranteed number.
[0016] Another embodiment of the present disclosure is a denoising method comprising: inputting pixel data of a correction target image into a denoising device and using the denoising device to apply a weighting-averaging denoising process to the pixel data.Weighted-averaging denoising comprises setting the weight to a maximum value when the difference between a correction target block and a comparison target block is zero; setting the weight such that it decreases linearly to zero as the difference increases until it reaches a threshold; setting the weight to zero when the difference is greater than or equal to the threshold; assigning a corrected weight value to at least a guaranteed number of comparison target blocks whose difference value is greater than the threshold; and averaging the correction target block and the comparison target blocks to which the corrected weight value has been assigned to reduce noise contained in the pixel data. A correction target block for which the number of comparison target blocks not weighted with zero is less than a predetermined guaranteed number is a pulse block.
[0017] Another embodiment of the present disclosure is a method for denoising pixels in a digital image, comprising the following steps: receiving pixel data of a correction target image, wherein the correction target image includes a correction target block of pixels for denoising and one or more comparison target blocks of pixels; setting a weight to a maximum value when a difference value between the correction target block and a comparison target block is equal to 0; setting the weight such that it decreases linearly to 0 as the difference value increases until it reaches a threshold; setting the weight to 0 when the difference value is greater than or equal to the threshold; assigning a corrected weight value to at least a guaranteed number of comparison target blocks whose difference value is greater than the threshold;and means of the correction target block and the comparison target blocks to which the corrected weight value has been assigned, in order to reduce noise in the correction target block pixel data. A correction target block for which the number of comparison target blocks not weighted with 0 is less than a predetermined guaranteed number is a pulse block.
[0018] The functions of the present disclosure are not limited to this, and further functions of the present disclosure are described in the following description of exemplary embodiments or arise from this. Brief description of the drawings Fig. Figure 1 shows the calculation of a weighting and an arrangement of a correction target block and a comparison target block in a conventional weight-based averaging procedure. Fig. Figure 2 shows a case in which the noise resulting from a pulse block is included in a correction target image. Fig. 3A is a graph to represent the weight as a function of the SAD, where the weighting changes linearly with respect to the sum of absolute differences (SAD). Fig. 3B is a graph to represent the weighting as a function of the SAD, where the weighting changes exponentially with respect to the sum of absolute differences (SAD). Fig. 4, Fig. 5 to Fig. Figure 6 are graphs representing a linear weighting that can be used in a denoising device for correcting pulse block noise according to an embodiment of the present disclosure. Fig. Figure 7 is a block diagram illustrating an embodiment of a noise reduction device according to an exemplary embodiment of the present disclosure. Fig. Figure 8 is a block diagram illustrating a detailed design of a noise reduction device according to an embodiment of the present disclosure. Fig. Figure 9 is a first linear weighting graph for determining unsorted correction target and comparison target blocks that can be used in a denoising device for correcting the pulse block, according to an embodiment of the present disclosure. Fig. 10 is a second linear weighting graph for determining unsorted correction target and comparison target blocks that can be used in a denoising device for correcting the pulse block, according to an embodiment of the present disclosure. Fig. 11 is a third linear weighting graph for determining unsorted correction target and comparison target blocks that can be used in a denoising device for correcting the pulse block, according to an embodiment of the present disclosure. Fig. 12 is a fourth linear weighting graph for determining unsorted correction target and comparison target blocks that can be used in a denoising device for pulse block correction, according to an embodiment of the present disclosure. Fig. Figure 13 is a block diagram illustrating a detailed design of a noise reduction device according to an embodiment of the present disclosure. Fig. Figure 14 is a block diagram illustrating an embodiment of a noise reduction system according to an embodiment of the present disclosure. Fig. Figure 15 shows an embodiment of a mobile device according to an embodiment of the present disclosure. Fig. Figure 16 is a flowchart of a noise reduction method according to an embodiment of the present disclosure. Fig. Figure 17 is a flowchart of another noise reduction method according to an embodiment of the present disclosure. Detailed description of exemplary implementation examples
[0019] Embodiments of the present disclosure are now described in more detail with reference to the accompanying drawing, which shows preferred embodiments of the disclosure. However, this disclosure may be embodied in various forms and should not be interpreted as being limited to the embodiments presented here. The same reference numerals denote the same components throughout the description.
[0020] First, the meaning of "impulse block" in the sense of the present description will be explained using the following examples. Fig. 2 described.
[0021] The term "impulse noise" refers to pixels that display an image different from neighboring pixels, for example, as a result of data loss in image processing technology. In the Fig. Figure 2 shows a pixel block 16 containing pulse noise. For the purposes of this description, the term "pulse block" refers to one or more pixel blocks in an image that contain pulse noise. Because a pulse block exhibits large differences in pixel values compared to neighboring pixel blocks, it is useful for noise reduction, as described in detail below.
[0022] In one embodiment of the present disclosure, the impulse block relates to a correction target block with a number of comparison blocks not weighted with 0 that is less than a predetermined guaranteed number.
[0023] Next, the meaning of "pixel value" in the context of this description will be explained.
[0024] The term "pixel value" can refer to a value representing the grayscale or color of each pixel. For example, the color of each pixel can be designated R (red), G (green), and B (blue), and the pixel value can be the sum of an R channel value, a G channel value, and a B channel value. However, the pixel value need not be a numerical value, and a pixel can have a set of two or more numerical values.
[0025] Next, the meaning of "difference value" in the context of the present description will be described.
[0026] The difference value between the correction target block and the comparison target block represents the difference between the pixel values contained in the correction target block and the pixel values contained in the comparison target block. This means that the smaller the difference value between the correction target block and the comparison target block, the more similar the correction target block is to the comparison target block.
[0027] The difference value between the correction target block and the comparison target block can be determined by various methods. What these methods have in common is that the difference value is based on the difference between the pixel values contained in the correction target block and the pixel values contained in the comparison target block. For example, the similarity between blocks can be calculated based on the sum of absolute differences (SAD), which is obtained by adding absolute values of difference values between pixels corresponding to positions in the blocks. However, the methods for calculating the difference value between the correction target block and the comparison target block presented here are not limited to calculating the difference value based on the SAD.
[0028] As above based on Fig. As described in section 1, in a weighted averaging method, the weight is calculated based on the difference between the correction target block and the comparison target block. The corrected pixel value of the correction target block can then be determined by assigning the weight to the comparison target blocks, adding the pixel values, and dividing the sum by a reference value.
[0029] The comparison target blocks can include all blocks in the image except the correction target block or those blocks in the vicinity of the correction target block. If the difference value between the correction target block and the comparison target block becomes smaller, the comparison target block is assigned a higher weight.
[0030] Furthermore, although in some embodiments the correction target block and the comparison target block may each contain a plurality of pixels, in other embodiments of the present disclosure the correction target block and the comparison target block may each contain one pixel.
[0031] Fig. 3A is a graph to represent the weighting as a function of the SAD, where the weighting changes linearly as a function of the SAD between the correction target block and the comparison target block.
[0032] Fig. 3A represents a case where the SAD is used as the difference value. As the SAD difference value increases, the similarity decreases, and the lower weight is assigned. As in Fig. As shown in 3A, the weighting can be set to a maximum value MAX if the difference value between the correction target block and the comparison target block is 0, can decrease linearly if the difference value increases until it reaches a threshold, and can be set to 0 if the difference value is greater than or equal to the threshold.
[0033] In the case where the weighting, as in Fig. As shown in 3A, if the correction target image is a pulse block, it can be costly to perform a correction by means of means. Fig. Figure 3A represents a case where all SADs for the comparison target blocks exceed the threshold if the correction target block is an impulse block. In this case, all comparison target blocks are assigned a weight of 0 for the impulse block. Accordingly, it is not possible to correct the impulse block by averaging. This effect occurs because the weight decreases linearly in the graph. This effect can be mitigated if the weight is adjusted as in Fig. As shown in 3B, it decreases exponentially.
[0034] The weighting takes place according to the in Fig. Since the graph shown in 3B decreases exponentially, even if the SAD of a specific comparison target block exceeds the threshold, the weighting does not become 0. Similarly, a correction target block that is an impulse block can also be corrected by averaging with other comparison target blocks.
[0035] Nevertheless, floating-point operations are necessary, with the weights for the pixel difference value increasing exponentially, as in Fig. As shown in Figure 3B, this may change. Since floating-point operations are comparatively slow due to their greater computational complexity compared to integer operations, a greater computational load is placed on an image signal processor (ISP) when processing a floating-point operation. Nevertheless, a denoising device of the present disclosure uses a denoising method that supports averaging for a pulse block even when the weighting changes linearly with respect to the difference value.
[0036] The operation of a noise reduction device according to an embodiment of the present disclosure is described using the graphs of Fig. 4, Fig. 5 to Fig. 6 described, which show a linear weighting that can be used in the denoising device to correct the pulse block. Fig. 4, Fig. 5 to Fig. 6 assume that the correction target block corresponds to a correction target area, the comparison target blocks correspond to areas other than the correction target area and have the same area as the correction target block, and the SAD between blocks is used as the difference value.
[0037] First of all, Fig. 4 a graph to represent the weighting as a function of the difference value between the correction target block and the comparison target block for use in noise reduction according to the embodiment of the present disclosure.
[0038] The graph of Fig. 4 is similar to that of Fig. 3A such that the weighting is set to a maximum value when the SAD between the correction target block and the comparison target block is equal to 0, and decreases linearly as the SAD increases. The graph of Fig. However, 4 is different from that of Fig. 3A differs in that a non-zero weighting value is assigned five SADs whose value exceeds the threshold, where the number 5 corresponds to the guaranteed number.
[0039] This means that a denoising device according to an embodiment of the present disclosure can provide a correction function for the pulse block that increases the weighting to a corrected weighting value for up to at least the guaranteed number of comparison target blocks.
[0040] In a noise reduction device according to an embodiment of the present disclosure, the weighting increase for those comparison target blocks whose weights are corrected is not based on the difference value.
[0041] In general, the number of comparison target blocks is greater than the guaranteed number. In a denoising device according to an embodiment of the present disclosure, the weighting for a number of comparison target blocks with a difference value greater than the threshold can increase, wherein the number is less than or equal to the guaranteed number of comparison target blocks.
[0042] For this purpose, in a denoising device according to an embodiment of the present disclosure, the comparison target blocks for the pulse block are sorted based on their difference values. From among the sorted comparison target blocks, up to the guaranteed number of comparison target blocks with smaller difference values are selected, and the corrected weighting value can only be assigned to the selected comparison target blocks.
[0043] Similarly, Fig. 5 represents a case in which the weighting for five SADs increases. Comparing Fig. 4 with Fig. 5, in a noise reduction device according to an embodiment of the present disclosure, it follows that the increase in weighting is not based on the difference value.
[0044] In a noise reduction device according to an embodiment of the present disclosure, as described in Fig. As shown in Figure 6, even if one or more comparison target blocks are present for which the weight is not equal to 0, if the number of comparison target blocks is less than the guaranteed number, the correction target block is considered an impulse block.
[0045] Since noise patterns can be similar, a first pulse block and an adjacent second pulse block may have similar pixel values. In this case, if the first pulse block is the correction target block and the second pulse block is a comparison target block, the second pulse block is assigned a non-zero weight.
[0046] If a noise reduction device is used in accordance with an embodiment of the present disclosure Fig. 6. Even if another pulse block is present in the vicinity of the correction target pulse block and one or more comparison target blocks with a non-zero weight are present, unless the number of pulse blocks in the vicinity of the correction target pulse block is greater than or equal to the guaranteed number, the noise in the correction target pulse block can be reduced by averaging over the normal comparison target blocks. This means that in a denoising device according to one embodiment, even if another pulse block with a non-zero weight is present among the comparison target blocks, a corrected weight value can be assigned to some general blocks for which the weight would otherwise be zero, and averaging can be performed on the pulse block and the general blocks.
[0047] Fig. 5 and Fig. Figure 6 shows a case where the guaranteed number is 5. Fig. 6 is a comparison target block for which the difference value with respect to the correction target block is smaller than the threshold value, so that a denoising device according to an embodiment increases the weighting of the remaining four comparison target blocks to the corrected weighting value.
[0048] The threshold value, the guaranteed number, and the corrected weighting value described above are values that can be modified. A noise reduction device according to one embodiment can receive at least one of the threshold value, the guaranteed number, and the corrected weighting value as input and store the input data.
[0049] The construction of the aforementioned noise reduction device is described using Fig. 7 described. As in Fig. As shown in Figure 7, a noise reduction device 100 according to an embodiment of the present disclosure can comprise an input image unit 102, a noise reduction unit 103, and an image output unit 110. The noise reduction device 100 according to an embodiment of the present disclosure can, for example, be configured in the form of an image signal processor (ISP).However, it should be noted that the denoising device 100, according to an embodiment of the present disclosure, can include all types of devices in which the image input unit 102 receives the pixel data input from the correction target image, the denoising unit 103 performs noise reduction on the pixel data of the correction target image, and the image output unit 110 outputs the noise-reduced pixel data of the correction target image after the noise reduction process, wherein the design of the denoising device 100 is not limited to a specific chip.
[0050] Although this in Fig. Not shown in Figure 7, the denoising device 100 may further include: a set input unit that receives input data for at least one of the threshold, guaranteed number and corrected weight value, and a non-volatile memory module that stores the input data for at least one of the threshold, guaranteed number and corrected weight value.
[0051] The image input unit 102 receives the pixel data, which includes color information for the pixels contained in the correction target image. For example, if the correction target image contains 100 pixels horizontally and 100 pixels vertically, the pixel data can include data for 10,000 pixels. The data for each pixel can include color information for that pixel.
[0052] The denoising unit 103 receives the pixel data from the image input unit 102, generates the corrected pixel data by reducing the noise in the original pixel signals and provides the corrected pixel data to the image output unit 110.
[0053] The denoising unit 103 denoises the pixels contained in the pixel data using a weighted averaging method. In this case, the weight is set to a maximum value when the difference between the correction target block and the comparison target block is 0, decreases linearly as the difference increases until it reaches the threshold, and is set to 0 when the difference is greater than or equal to the threshold, except up to a guaranteed number of comparison target blocks.
[0054] The denoising unit 103 reduces the noise in the pixel data by assigning a corrected weight value to a number of comparison target blocks for the pulse block that is less than or equal to the guaranteed number, and averaging the corrected target block and the weighted comparison target blocks.
[0055] The denoising unit 103 can include as internal modules a pixel comparison unit 104, a weighting correction unit 106 and an averaging unit 108.
[0056] The pixel comparison unit 104 receives the pixel data from the image input unit 102. Furthermore, the pixel comparison unit 104 compares the pixel data of each correction target block with the comparison target blocks. This means that the pixel comparison unit 104 calculates the difference value between each correction target block and the comparison target blocks. The pixel comparison unit 104 then assigns a weight to each comparison target block using the difference value of each comparison target block.
[0057] The weight and difference value of each comparison target block are transferred to the weighting correction unit 106. The weighting correction unit 106 determines whether the correction target block is a pulse block. This determination is based on whether the number of comparison target blocks not weighted with 0 is less than the predetermined guaranteed number. For example, in a case where the guaranteed number is 10, if the number of comparison target blocks not weighted with 0 is 3, the correction target block is a pulse block.
[0058] If a specific correction target block corresponds to a pulse block, the weighting correction unit 106 selects that specific correction target block as a pulse block and increases the weight assigned to the correction target block to the corrected weight value. The specific correction target blocks selected as pulse blocks are referred to below as weighting correction target blocks.
[0059] A detailed setup of the weighting correction unit 106 in conjunction with the selection of the weighting correction target block is described below. Fig. 8 described. As in Fig. As shown in Figure 8, the weighting correction unit 106 can include a difference value sorting unit 160 for selecting the weighting correction target blocks and a weighting assignment unit 162 for assigning the weighting based on the sorting results of the difference value sorting unit 160. As described above, since the weighting is increased for up to a predetermined number of comparison target blocks with a difference value greater than the threshold, the difference value sorting unit 160 sorts the comparison target blocks based on the difference value.
[0060] The weighting correction unit 106 provides the difference value and corrected weighting information for each comparison target block.
[0061] The averaging unit 108 can sum the weighted pixel values of the comparison target blocks and divide the sum by a reference value, which is used to set new pixel values for each of the pixels included in the correction target block.
[0062] The averaging unit 108 can add the pixel values of the correction target block to the sum of the weighted pixel values of the comparison target blocks and divide the resulting value by the reference value to set new pixel values on the pixels included in the correction target block.
[0063] The reference value can be the sum of the weights assigned to the comparison target blocks.
[0064] The noise reduction device, which is in Fig. 7 and Fig. As shown in Figure 8, the comparison target blocks can be sorted to determine the weight correction target block. However, sorting typically has a time complexity of O(NlogN) when the data size is N. As the size of the comparison target blocks increases, more computation is required. To reduce the computational effort, a method for finding the guaranteed number of comparison target blocks without sorting is described below.
[0065] In one embodiment of a noise reduction device, a plurality of bins are pre-loaded. These bins contain different ranges of the difference value. When the difference value is calculated for each target block, the noise reduction device places the target block in the bin whose difference value range contains the calculated difference value.
[0066] As in Fig. As shown in Figure 9, a reserve, referred to here as the internal bin, can have a difference value range from 0 up to the threshold. This means that comparison target blocks with a non-zero weight can be placed in the internal bin. Furthermore, as shown in Fig. 10, Fig. 11 to Fig. As shown in Figure 12, comparison target blocks with a weight of 0 are placed in one or more additional bins, referred to below as external bins. This means that a difference value range of one or more external bins includes values greater than the threshold, and each external bin can have the same difference value range size, which may be predetermined. According to one embodiment of the present disclosure, the number of external bins can be greater than 2 to classify the comparison target blocks with a weight of 0 into at least two groups. The difference value range of the external bins can be adjusted such that each external bin contains a suitable number of comparison target blocks.
[0067] The set input unit (not shown) can further receive the difference value range size of the external supplies and the number of external supplies, and the non-volatile memory module can further store the size of the external supply and the number of external supplies.
[0068] The process of selecting the weighting correction target block is described below. Fig. 9, Fig. 10, Fig. 11 to Fig. 12 described under the assumption that a noise reduction device of an embodiment places each comparison target block into one of the stores. In Fig. 9, Fig. 10, Fig. 11 to Fig. 12, the guaranteed number can be 5.
[0069] In an embodiment, a denoising device places the comparison target blocks for the pulse block into repositories whose difference value ranges include the difference value, adds the repositories to the weighting correction target individually in the order of an increasing difference value range of each repository, until the number of all comparison target blocks included in the weighting correction target is greater than or equal to the guaranteed number.
[0070] According to this design, first, as in Fig. As shown in Figure 9, the block placed in the internal reserve BIN 0 is added as a weighting correction target block. Since the correction target block is an impulse block, there are few comparison target blocks in BIN 0. If comparison target blocks are present in BIN 0, the weighting can only be increased to the corrected weighting value if the weight of the comparison target block is less than the corrected weighting value.
[0071] In Fig. 9. There are no comparison target blocks in BIN 0 (COUNT = 0).
[0072] In Fig. 10 indicates that a comparison target block is present in BIN 1 (COUNT = 1).
[0073] In Fig. 11. Two comparison target blocks are present in BIN 2 (COUNT = 3).
[0074] In Fig. There are three comparison target blocks in BIN 3 (COUNT = 6).
[0075] Once the weight correction target addition process for BIN 3 has finished, the count of all comparison target blocks included in the weight correction target is 6, which is greater than the guaranteed number of 5. Accordingly, the weight correction target addition process is complete. As a result, a noise reduction device in an exemplary embodiment increases the weighting for all comparison target blocks included in BIN 1, BIN 2, and BIN 3 to the corrected weighting value.
[0076] According to a Fig. 9, Fig. 10, Fig. 11 to Fig. In the 12 methods shown, the operation of calculating the difference value of each comparison target block can be performed simultaneously with the operation of placing the comparison target blocks into the stockpiles (O(N)), requiring only one additional cyclic operation for each stockpile (O(1)). Therefore, a Fig. 9, Fig. 10, Fig. 11 to Fig. The method shown is faster than a method of selecting the weighting correction target blocks by sorting.
[0077] Fig. 13 describes the design of the weighting correction unit 106 of a noise reduction device 100 according to a Fig. 9, Fig. 10, Fig. 11 to Fig. The embodiment shown in Figure 12 differs from the design of a weighting correction unit in which the weighting correction target block is selected by sorting.
[0078] The weighting correction unit 106 of the noise reduction device 100 of an embodiment can include a storage unit 161 and the weighting assignment unit 162.
[0079] The stockpiling unit 161 places each comparison target block for the impulse block into a stockpile whose difference value ranges contain the comparison target block difference value, adds the stockpiles individually in the order of an increasing difference value range of each stockpile, until the number of comparison target blocks included in the weighting correction target is greater than or equal to the guaranteed number.
[0080] The weighting assignment unit 162 increases the weighting of those comparison target blocks that are weighting correction targets to the corrected weighting value.
[0081] The weighting device 100 according to an embodiment of the present disclosure can classify the comparison target blocks for the impulse block based on their difference values, select up to the guaranteed number of comparison target blocks from those with smaller difference values as weighting correction targets based on the classification results and assign the corrected weighting value to the selected comparison target blocks.
[0082] Classifying the comparison target blocks for the impulse block based on their difference values can mean grouping the comparison target blocks for the impulse block based on their difference values. This means that the comparison target blocks can be classified into two or more groups based on their difference values.
[0083] To select precisely up to the guaranteed number of comparison target blocks with smaller difference values, sorting can be performed. However, no sorting is necessary to group the comparison target blocks and select at least the guaranteed number of comparison target blocks as weighting correction targets based on the classification results. The denoising device 100 of an exemplary embodiment can assign a corrected weighting value to those comparison target blocks with a weight of 0 among the selected comparison target blocks.
[0084] Fig. Figure 14 is a block diagram of an embodiment of a noise reduction system according to an exemplary embodiment of the present disclosure. As in Fig. As shown in Figure 14, a denoising system 200 according to an embodiment of the present disclosure can include an interface 210, an ISP 204 and a core 202 and can further include a RAM 206, a non-volatile memory 212 and an internal data path 208.
[0085] Interface 210 is connected to an external device (not shown) to receive pixel data containing color information for each pixel in the correction target image and to provide this pixel data to the ISP 204. The external device can be any device connected to a noise reduction system according to an exemplary embodiment, and is not limited to a device with a specific function. For example, the external device could be a storage device or an image sensor.
[0086] The ISP 204 reduces noise in the pixels using a weight-based averaging method. The weight is set to a maximum value when the difference between the correction target block and the comparison target block is zero, and decreases linearly as the difference increases until it reaches the threshold. It is then set to zero when the difference is greater than or equal to the threshold. The ISP 204 assigns a corrected weight value to at least the guaranteed number of comparison target blocks for pulse block 2, where the number of non-zero-weighted comparison target blocks is less than the guaranteed number. The ISP 204 then averages the correction target block and the weight-corrected comparison target blocks to output the corrected pixel data through interface 210.
[0087] The 202 core executes a set of instructions stored in RAM 206. The 202 core can control interface 210 and ISP 204 by executing instructions within this set.
[0088] The core 202 can receive input data from at least one of the threshold, guaranteed count, and corrected weight value from the external device by executing further instructions within the set of instructions. The core 202 can process the data received from the external device in the non-volatile memory 212 by executing yet other instructions within the set of instructions. The ISP 204 can load at least one of the threshold, guaranteed count, and corrected weight value, storing it in the RAM 206 for use in noise reduction.
[0089] The noise reduction system 200, according to one embodiment, can be designed as an application processor (AP).
[0090] Fig. Figure 15 shows an embodiment of a mobile device according to an embodiment of the present disclosure.
[0091] A mobile terminal 300 according to an embodiment of the present disclosure can be a wireless mobile communications terminal. As in Fig. As shown in Figure 15, the mobile terminal 300 can, according to one embodiment, include an AP 200, a camera lens 302, an image sensor (CMOS image sensor (CIS) (Complementary Metal Oxide Semiconductor CMOS)) 304 connected to the camera lens 302, a display 1201, an ADPCM codec circuit 1202 (Adaptive Differential Pulse-Code Modulation ADPCM, adaptive differential pulse code modulation) for compressing or decompressing the compressed sound, a loudspeaker 1203, a microphone 1204, a TDMA circuit 1206 (Time Division Multiple Access TDMA, multiple access by time division) for performing time division multiplexing on digital data, a PLL circuit 1210 (Phase Lock Loop PLL, phase lock loop) for setting a carrier frequency of a wireless signal, an RF circuit 1211 (radio Frequency RF (radio frequency) for sending or receiving a wireless signal and the like.
[0092] Furthermore, the mobile device 300 can contain different types of storage devices. For example, the mobile device 300 can contain a non-volatile memory device 1207, a ROM (read-only memory) 1208, and an SRAM (random access static memory) 1209. The ROM 1208 can store firmware programs, and the SRAM 1209 can serve as an operating area for the AP 200 or temporarily store data.
[0093] The AP 200 can do the in Fig. The noise reduction device 200 shown in Figure 14 corresponds to an embodiment of the present disclosure. As in Fig. As shown in Figure 14, the AP 200 can be connected to the image sensor 304, and the ISP 204 of the AP 200 can receive the image from the image sensor 304 through interface 210, perform noise reduction, and output the noise-reduced data to the display 1201 through interface 210. This means that the AP 200 can reduce the noise in the image data received from the camera lens 302 and the image sensor 304 and then display the noise-reduced image data through the display 1201.
[0094] Below, a noise reduction method according to an embodiment of the present disclosure is described based on Fig. 16 described.
[0095] The procedure of Fig. 16 uses a denoising device that includes a receiver unit which receives the pixel data of the pixels contained in the correction target image, and a computation unit which performs calculations on the pixel data. The pixel data may include color information. The denoising device may be, for example, an application processor (AP) or a mobile device containing the application processor.
[0096] The pixel data of the correction target image is received by the denoising device (S400).
[0097] The denoising process is then performed on the pixels contained in the pixel data using a weighted averaging method with the denoising device.
[0098] The following section describes a noise reduction process in more detail.
[0099] First, the weighting is set to a maximum value if the difference value between the correction target block and the comparison target block is equal to 0, and is set such that it decreases linearly as the difference value increases until it reaches the threshold, and is set to 0 if the difference value is greater than or equal to the threshold.
[0100] A correction target block or group of correction target blocks is selected from the pixel data of the input image (S402). The selection can involve a single sequential selection of all blocks of the input image.
[0101] For the selected block, the difference values are calculated with all comparison target blocks or all comparison target block groups (S404).
[0102] It is determined whether the number of comparison target blocks in which the calculated difference value is greater than or equal to the predetermined threshold is greater than or equal to the predetermined guaranteed number (S406). This means that it is determined whether the number of comparison target blocks not weighted with 0 is greater than or equal to the predetermined guaranteed number.
[0103] As a result of the determination (S406), if the number of comparison target blocks for which the difference value is less than or equal to the predetermined threshold is greater than or equal to the predetermined guaranteed number, the correction target block or correction target block group does not require weight correction, and an averaging operation (S410) may be performed to reduce noise in the correction target block or correction target block group.
[0104] In contrast, as a result of determination (S406), if the number of comparison target blocks with a difference value less than or equal to the predetermined threshold is less than the predetermined guaranteed number because the correction target block has few or no weighted comparison target blocks for averaging, the weighting of some comparison target blocks is increased such that at least the guaranteed number of comparison target blocks has a weighting greater than or equal to the corrected weighting value (S408). For example, the weighting of at least five comparison target blocks with a difference value greater than the threshold can be increased to the predetermined corrected weighting value. After the weighting correction for the correction target images for the pulse block has been completed, an averaging operation (S410) can be performed to reduce noise in the pulse block.
[0105] Operations S402, S404, S406, S408 and S410 for selecting the correction target block and performing noise reduction for the correction target block are repeated until noise reduction is completed for all blocks of the input image (S412).
[0106] Below, a noise reduction method according to an embodiment of the present disclosure is described based on Fig. 17 described.
[0107] A denoising method according to one embodiment does not sort the comparison target blocks based on their difference values when selecting the weighting correction target blocks for the impulse block.
[0108] The procedure of Fig. 17 uses a denoising device that includes a receiving unit containing color information and pixel data of the pixels in the target correction image, and a processing unit that performs calculations on the pixel data. The denoising device can be, for example, an application processor (AP) or a mobile device containing the application processor. Furthermore, the denoising device uses multiple repositories with different difference value ranges. One of the repositories, referred to as the internal repository, can have a difference value range from 0 to the predetermined threshold. Repositories whose ranges include values greater than or equal to the predetermined threshold are referred to as external repositories.For example, the predetermined threshold value can be 5, BIN 1 can have a difference value range of 5 to 10, BIN 2 can have a difference value range of 10 to 20, and BIN 3 can have a difference value range of 20 to 50. If the difference value increases, the difference value range for each stock can also increase.
[0109] The pixel data of the correction target area is received by the denoising device (S400).
[0110] Then, a weight-based averaging denoising process is performed on the pixels included in the pixel data using the denoising device.
[0111] The noise reduction process is described in more detail below.
[0112] First, the weighting is set to a maximum value if the difference value between the correction target block and the comparison target block is equal to 0, and is set such that it decreases linearly as the difference value increases until it reaches the threshold, and is set to 0 if the difference value is greater than or equal to the threshold.
[0113] A correction target block is selected from the pixel data of the input image (S402). The selection can involve a single sequential selection of all blocks of the input image.
[0114] For the selected block, the difference values are calculated with all comparison target blocks (S404). Once the difference value is calculated, the comparison target block whose range contains the difference value is placed in the stock (S500). For example, if BIN 2 has a difference value range of 10 to 20, a comparison target block with a difference value of 15 is placed in BIN 2.
[0115] Next, it is determined whether the correction target block is a pulse block. A pulse block can be determined by checking whether the number of comparison target blocks placed in the internal stock is greater than or equal to the guaranteed number. This means that if the number of comparison target blocks placed in the internal stock is less than the guaranteed number, the correction target block can be considered a pulse block.
[0116] If the correction target block is an impulse block, the weighting correction target block is determined from the comparison target blocks in the inventories (S503). For example, the inventories can be added individually in order of an increasing difference value range of each inventory until the number of all comparison target blocks included in the weighting correction target is greater than or equal to the guaranteed number. A procedure for determining the weighting correction target inventory can be found using Fig. 9, Fig. 10, Fig. 11 to Fig. 12 will be explained.
[0117] The weighting of the comparison target blocks included in the weighting correction target block is increased to the predetermined correction weighting value (S504). After the weighting correction is complete, an averaging operation (S410) is performed on the pulse block to reduce noise.
[0118] Operations S402, S404, S500, S502, S504 and S410 for selecting the correction target block and performing noise reduction for the correction target block are repeated until noise reduction is complete for all pixels of the input image (S412).
[0119] According to the present disclosure, noise reduction, including impulse noise reduction, can be performed at high speed.
[0120] Furthermore, weight-based averaging noise reduction can be performed on the pulse block even if the weighting decreases linearly as the SAD between the correction target block and the comparison target block increases.
[0121] Although the present disclosure has been shown and described in particular by means of exemplary embodiments thereof, it should be apparent to a person skilled in the art in the relevant field that various modifications can be made to it with regard to form and details without departing from the essence and scope of the present disclosure as defined by the following claims. The present exemplary embodiments are therefore to be understood in all aspects as illustrative and not limiting, with references being made to the appended claims rather than to the preceding description to indicate the scope of the disclosure.
Claims
[1] Noise reduction device comprising: an image input unit (102) designed to receive pixel data containing color information of pixels included in a correction target image; a denoising unit (103) designed to denoise the pixel data by a weight averaging procedure, wherein a weight is set to a maximum value when a difference value between a correction target block and a comparison target block in the correction target image that is equal to 0, decreases linearly to 0 as the difference value increases until it reaches a threshold, and is set to 0 when the difference value is greater than or equal to the threshold; and an image output unit (110) designed to output denoised pixel data, wherein the denoising unit is designed to assign a corrected weight value to at least a guaranteed number of comparison target blocks for a pulse block, and the pulse block is a correction target block for which the number of comparison target blocks not weighted with 0 is less than a predetermined guaranteed number. [2] A denoising device according to claim 1, wherein, if there is another pulse block not weighted with 0 among the comparison target blocks, the denoising unit (103) is designed to assign the corrected weighting value to some general blocks weighted with 0 among the comparison target blocks and to average the pulse block and the general blocks. [3] A denoising device according to claim 1, wherein the denoising unit (103) is designed to sort the comparison target blocks for the pulse block based on their difference values, to select up to the guaranteed number of comparison target blocks from those with smaller difference values as weight correction target blocks and to assign corrected weight values to the weight correction target blocks. [4] A denoising device according to claim 1, wherein the denoising unit (103) is designed to classify the comparison target blocks for the pulse block based on their difference values, to select at least the guaranteed number of comparison target blocks from those with smaller difference values based on the classification results as weight correction target blocks, and to assign the corrected weight values to weight correction target blocks. [5] Noise reduction device according to claim 4, wherein the noise reduction unit (103) does not sort the comparison target blocks for the pulse block. [6] Denoising device according to claim 4, wherein the denoising unit (103) is designed to assign the corrected weighting value with 0 weighted comparison target blocks to the weighting correction target blocks. [7] A denoising device according to claim 1, wherein the denoising unit (103) is designed to place the comparison target blocks for the pulse block into a plurality of repositories according to their difference values, each repository being associated with a different range of difference values, and to add or add the repositories to a weighting correction target repository individually in the order of an increasing difference value range of each repository until the number of comparison target blocks included in the weighting correction target repository is greater than or equal to the guaranteed number. [8] Noise reduction device according to claim 7, wherein the plurality of repositories includes an internal repository with a difference value range from 0 up to the threshold and one or more external repositories whose difference value ranges include values greater than the threshold. [9] Noise reduction device according to claim 1, wherein the noise reduction device is designed as an image signal processor (ISP). [10] Noise reduction methods, including: Input (S400) of pixel data from a correction target image into a denoising device; and Using the denoising device to perform a weight-averaging denoising process on the pixel data, including weighting averaging denoising (S402-S410): Setting a weight to a maximum value when a difference value between a correction target block and a comparison target block is equal to 0, setting the weight such that it decreases linearly to 0 as the difference value increases until it reaches a threshold, and setting the weight to 0 when the difference value is greater than or equal to the threshold; Assigning (S406, S408) a corrected weight value to at least a guaranteed number of comparison target blocks whose difference value is greater than the threshold; and Means (S410) of the correction target block and the comparison target blocks to which the corrected weight value has been assigned, in order to reduce noise in the correction target block pixel data, where a correction target block for which the number of comparison target blocks not weighted with 0 is less than a predetermined guaranteed number is an impulse block.
Citation Information
Patent Citations
Image data processing method by reducing image noise, and camera integrating means for implementing said method
US20100141804A1
Image processing device, image processing method, and recording medium storing image processing program
US20100220222A1
Method and device for enhancing a digital image
US20110311154A1