Image noise reduction methods, circuits, electronic devices and storage media

By employing wavelet denoising methods and utilizing moving matrix windows and wavelet transform techniques, the noise problem of CMOS image sensors is solved, improving image quality and accuracy. This method is suitable for the design of real-time CMOS image sensors.

CN115546038BActive Publication Date: 2026-05-05BYD SEMICON CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BYD SEMICON CO LTD
Filing Date
2021-06-30
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

CMOS image sensors are affected by image noise, which affects image quality and accuracy, and existing technologies struggle to effectively suppress noise.

Method used

The wavelet denoising method is adopted. The pixel data array is traversed by moving the matrix window, and wavelet forward transform, threshold denoising and inverse wavelet transform are performed to update the target pixel data. Denoising is then performed by combining weighted average or arithmetic average.

Benefits of technology

It achieves effective noise reduction of images, improves image quality and accuracy, and has a good noise reduction effect that is suitable for real-time CMOS image sensor design.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115546038B_ABST
    Figure CN115546038B_ABST
Patent Text Reader

Abstract

This disclosure relates to an image denoising method, circuit, electronic device, and storage medium. The image denoising method includes: acquiring a pixel data array output by an image sensor; moving a matrix window in the pixel data array according to a preset clock cycle to acquire a first pixel data matrix, until the pixel data array is traversed; performing wavelet denoising processing on the target pixel data in the first pixel data matrix in each clock cycle to obtain a second pixel data matrix, outputting the center pixel data in the second pixel data matrix, and updating the pixel data array with the second pixel data matrix.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure belongs to the field of image technology, and specifically relates to an image noise reduction method, circuit, electronic device and storage medium. Background Technology

[0002] CMOS image sensors are widely used due to their high integration, strong anti-interference capabilities, low power consumption, and advanced manufacturing technology. However, CMOS image sensors are still affected by image noise, and the noise level directly affects image quality and limits image accuracy. With increasingly stringent requirements for imaging quality, noise suppression of CMOS image sensors has become a key focus, thus necessitating the development of a novel noise reduction method. Summary of the Invention

[0003] The purpose of this disclosure is to provide an image denoising method, circuit, electronic device, and storage medium to achieve image denoising processing.

[0004] In a first aspect, embodiments of this disclosure provide an image noise reduction method.

[0005] The image noise reduction method includes:

[0006] Acquire the pixel data array output by the image sensor;

[0007] According to a preset clock cycle, an M*N matrix window is moved in the pixel data array to obtain the first pixel data matrix until the pixel data array is traversed. M is the number of rows of the matrix window, N is the number of columns of the matrix window, and M and N are odd numbers.

[0008] In each clock cycle, the first pixel data matrix is ​​denoised to obtain the second pixel data matrix, the center pixel data in the second pixel data matrix is ​​output, and the second pixel data matrix is ​​updated to the pixel data array.

[0009] The step of denoising the first pixel data matrix to obtain the second pixel data matrix includes: performing wavelet denoising on the target pixel data in the first pixel data matrix, wherein the target pixel data is the pixel data in the first pixel data matrix that corresponds to the target channel type, and the target channel type is the channel type corresponding to the center pixel data of the first pixel data matrix.

[0010] Optionally, the step of performing noise reduction processing on the first pixel data matrix to obtain the second pixel data matrix includes:

[0011] Arbitrarily extract target pixel data from the first pixel data matrix to form at least one original wavelet transform group containing L target pixel data;

[0012] For any original wavelet transform group, wavelet forward transform, threshold denoising, and inverse wavelet transform are performed sequentially to obtain the reconstructed wavelet transform group.

[0013] Based on at least one group of reconstructed wavelet transforms, the target pixel data in the first pixel data matrix is ​​updated to obtain the second pixel data matrix.

[0014] Optionally, updating the target pixel data in the first pixel data matrix to obtain the second pixel data matrix based on at least one group of reconstructed wavelet transforms includes:

[0015] Calculate the average value of the same target pixel data in different reconstructed wavelet transform groups, and update the same target pixel data in the first pixel data matrix with the average value.

[0016] Optionally, updating the target pixel data in the first pixel data matrix to obtain the second pixel data matrix based on at least one group of reconstructed wavelet transforms includes:

[0017] Based on the weights of the reconstructed wavelet transform groups, a weighted average value is calculated for the same target pixel data in different reconstructed wavelet transform groups, and the same target pixel data in the first pixel data matrix is ​​updated to the weighted average value; wherein, if the original wavelet transform group contains more updated target pixel data, the weight of its corresponding reconstructed wavelet transform group is greater.

[0018] Optionally, L is 4, and the original wavelet transform group is sequentially subjected to wavelet forward transform processing, threshold denoising processing, and wavelet inverse transform processing to obtain the reconstructed wavelet transform group, including:

[0019] A = (A1 + A2 + A3 + A4) / 4, H = (A1 + A3 - A2 - A4) / 2, V = (A1 + A2 - A3 - A4) / 2, D = A1 + A4 - A2 - A3, where A, H, V, and D are intermediate quantities, and A1, A2, A3, and A4 are the values ​​of the target element data in the original wavelet transform group;

[0020] If H≤Y1, then H is set to zero or H is set to H', where H' is the product of H and X1, X1 is a preset coefficient and 0<X1<1, and Y1 is a preset threshold.

[0021] If V≤Y2, then V is set to zero or V is set to V', where V' is the product of V and X2, X2 is a preset coefficient and 0<X2<1, and Y2 is a preset threshold.

[0022] If D≤Y3, then set D to zero or set D to D', where D' is the product of D and X3, X3 is a preset coefficient and 0<X3<1, and Y3 is a preset threshold.

[0023] A1' = A + V / 2 + H / 2 + D / 4, A2' = A + V / 2 - H / 2 - D / 4, A3' = AV / 2 + H / 2 - D / 4, A4' = AV / 2 - H / 2 + D / 4; where A1', A2', A3', and A4' are the values ​​of the target element data in the reconstructed wavelet transform group.

[0024] Optionally, before moving an M*N matrix window in the pixel data array at a preset clock period to read the first pixel data matrix, the method further includes:

[0025] Fill the outermost row of the pixel data array with blank elements of row P3, and fill the outermost column of the pixel data array with blank elements of column Q3, so that the pixel data array is expanded from the original row P1 and column Q1 to row P2 and column Q2, where P2 = P1 + M - 1, Q2 = Q1 + N - 1, P3 = (M - 1) / 2, and Q3 = (N - 1) / 2.

[0026] Optionally, the pixel data array is a Bayer pixel data array, and both M and N are 5.

[0027] Secondly, embodiments of this disclosure provide an image noise reduction circuit.

[0028] The image noise reduction circuit includes a clock source and a processing unit;

[0029] The clock source is used to send clock signals to the processing unit according to a preset clock cycle;

[0030] The processing unit is used to receive a clock signal, move an M*N matrix window in the pixel data array according to the clock cycle to obtain a first pixel data matrix, until the pixel data array is traversed, where M is the number of rows in the matrix window, N is the number of columns in the matrix window, and M and N are odd numbers; within each clock cycle, the first pixel data matrix is ​​denoised to obtain a second pixel data matrix, the center pixel data in the second pixel data matrix is ​​output, and the second pixel data matrix is ​​updated in the pixel data array; wherein, the denoising process of the first pixel data matrix to obtain the second pixel data matrix includes: performing wavelet denoising on the target pixel data in the first pixel data matrix, where the target pixel data is the pixel data in the first pixel data matrix corresponding to a target channel type, and the target channel type is the channel type corresponding to the center pixel data of the first pixel data matrix.

[0031] Thirdly, embodiments of this disclosure provide an electronic device including a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the method described in the first aspect.

[0032] Fourthly, embodiments of this disclosure provide a readable storage medium on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method described in the first aspect.

[0033] The image denoising method provided in this embodiment uses a moving matrix window to traverse the pixel data array for denoising. After each denoising process, the processed target pixel data is updated to the pixel data array, so that the target pixel data can be denoised multiple times, thereby achieving a good denoising effect. Attached Figure Description

[0034] Figure 1 This is a schematic diagram of a terminal device provided in one embodiment of the present disclosure;

[0035] Figure 2 This is a flowchart of an image noise reduction method provided in one embodiment of the present disclosure;

[0036] Figures 3(a)-3(b) This is a schematic diagram of a first pixel data matrix provided in one embodiment of the present disclosure;

[0037] Figure 4 This is a flowchart of noise reduction processing of a first pixel data matrix provided in one embodiment of the present disclosure;

[0038] Figure 5 This is a flowchart of an image noise reduction method provided in one embodiment of the present disclosure;

[0039] Figure 6 This is a schematic diagram of a first pixel data matrix provided in one embodiment of the present disclosure;

[0040] Figure 7 This is a schematic diagram of an image noise reduction circuit provided in one embodiment of the present disclosure;

[0041] Figure 8 This is a schematic diagram of an electronic device provided in one embodiment of the present disclosure. Detailed Implementation

[0042] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that, unless otherwise specifically stated, the relative arrangement, numerical expressions, and values ​​of the components and steps set forth in these embodiments do not limit the scope of the present disclosure.

[0043] The following description of at least one exemplary embodiment is merely illustrative and is in no way intended to limit this disclosure or its application or use.

[0044] Techniques, methods, and equipment known to those skilled in the art may not be discussed in detail, but where appropriate, they should be considered part of the specification.

[0045] In all the examples shown and discussed herein, any specific values ​​should be interpreted as merely exemplary and not as limitations. Therefore, other examples of exemplary embodiments may have different values.

[0046] It should be noted that similar labels and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need to be discussed further in subsequent figures.

[0047] This disclosure relates to image processing applications. To achieve image noise reduction, this disclosure provides an image noise reduction scheme that can be applied to electronic devices equipped with cameras.

[0048] Figure 1 This is a schematic diagram of the structure of an electronic device that can be used to implement the embodiments of this disclosure.

[0049] The electronic device 1000 can be a smartphone, laptop, desktop computer, tablet computer, server, etc., and is not limited thereto.

[0050] The electronic device 1000 may include, but is not limited to, a processor 1100, a memory 1200, a camera 1300, a communication device 1400, a display device 1500, an input device 1600, a speaker 1700, a speaker 1800, etc. The processor 1100 may be a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MCU), etc., used to execute computer programs, which may be written using instruction sets of architectures such as x86, Arm, RISC, MIPS, SSE, etc. The memory 1200 may include, for example, ROM (Read-Only Memory), RAM (Random Access Memory), or non-volatile memory such as a hard disk. The camera 1300 is used to capture images, and may include, for example, an image sensor. The communication device 1400 may be capable of wired communication using fiber optic cables or cables, or wireless communication, specifically including WiFi communication, Bluetooth communication, 2G / 3G / 4G / 5G communication, etc. The display device 1500 may be, for example, an LCD screen, a touch screen, etc. The input device 1600 may include, for example, a touch screen, a keyboard, motion input, etc. The speaker 1700 is used to output audio signals. The microphone 1800 is used to acquire audio signals. In addition, the electronic device 1000 also includes one or more interface devices, such as USB interface, serial interface, parallel interface, etc.

[0051] In the embodiments of this disclosure, the memory 1200 of the electronic device 1000 is used to store a computer program that controls the processor 1100 to operate in order to implement the image noise reduction method according to the embodiments of this disclosure. Those skilled in the art can design this computer program based on the scheme disclosed herein. How the computer program controls the processor to operate is well known in the art and will not be described in detail here. The electronic device 1000 may be equipped with a smart operating system (e.g., Windows, Linux, Android, iOS, etc.) and application software.

[0052] Those skilled in the art should understand that, although in Figure 1 The present invention illustrates multiple devices of an electronic device 1000; however, the electronic device 1000 of the present invention may involve only some of these devices, for example, only the processor 1100, memory 1200, camera 1300, etc.

[0053] See Figure 2 As shown, this embodiment of the present disclosure provides an image noise reduction method, including steps S102 and S104.

[0054] Step S102: Obtain the pixel data array output by the image sensor.

[0055] This disclosure provides an image noise reduction method according to one embodiment, illustrated using a Bayer pixel array. Bayer pixel arrays are one of the main technologies for capturing color images using CCD (charge-coupled device) or CMOS (Complementary Metal Oxide Semiconductor) sensors. A Bayer pixel array consists of green, blue, and red photosensitive units arranged sequentially.

[0056] First, the image sensor acquires a frame of Bayer data type image to output a pixel data array. The image acquisition method is to configure the parameters of the image sensor so that the image sensor outputs an unprocessed Bayer data stream. The format of the Bayer data stream is shown in the right side of Figure 3(a). The pixel data array is a four-channel pixel array, with the four channels being Gr, Gb, B, and R. Each pixel corresponds to only one data point of one channel type, where Gr and Gb represent the green component, B represents the blue component, and R represents the red component.

[0057] In another example, the image denoising method provided in this disclosure can be applied to pixel data arrays of other formats.

[0058] Step S104: Move an M*N matrix window in the pixel data array according to a preset clock cycle to obtain the first pixel data matrix, until the pixel data array has been traversed. Here, M is the number of rows in the matrix window, N is the number of columns in the matrix window, and M and N are odd numbers. Within each clock cycle, perform noise reduction processing on the first pixel data matrix to obtain the second pixel data matrix, output the center pixel data in the second pixel data matrix, and update the pixel data array with the second pixel data matrix.

[0059] In one example, referring to Figure 3(a), the M*N matrix window is moved in a manner that shifts from the leftmost side of the first row of the pixel data array to the rightmost side of the first row, and then from the leftmost side of the next row to the rightmost side of the next row, until the M*N matrix window has traversed the pixel data array.

[0060] The image denoising method provided in this embodiment uses a moving M*N matrix window to traverse the pixel data array for denoising. After each denoising process, the processed target pixel data is updated to the pixel data array, so that the target pixel data can be denoised multiple times, thereby achieving a good denoising effect.

[0061] The image denoising method provided in this disclosure uses a moving M*N matrix window to traverse the pixel data array for denoising. In other words, each denoising step is a local denoising step on the pixel data array, which does not require too much logic resources and requires a small area for the implementation circuit, making it suitable for real-time CMOS image sensor design.

[0062] The image denoising method provided in this disclosure performs pipelined denoising on pixel data in a pixel data array with each clock cycle, meeting the requirement of reading and writing data in rows of the pixel data array. The image denoising method provided in this disclosure outputs the denoising result of the center pixel data in real time at each clock cycle, improving denoising efficiency.

[0063] In step S104, the first pixel data matrix is ​​denoised to obtain the second pixel data matrix, including: wavelet denoising of the target pixel data in the first pixel data matrix, wherein the target pixel data is the pixel data in the first pixel data matrix that corresponds to the target channel type, and the target channel type is the channel type corresponding to the center pixel data of the first pixel data matrix.

[0064] Assume that M and N are both 5, meaning the matrix window is a 5x5 matrix. Taking the first pixel data matrix obtained in this case as the pixel data matrix circled by the rectangle in Figure 3(a) as an example, its central pixel data B22 is the blue component. The pixel data of the same channel type in the first pixel data matrix also includes: B11, B12, B13, B21, B23, B31, B32 and B33. These 9 pixel data are all the target pixel data in this case.

[0065] The image denoising method provided in this embodiment employs wavelet denoising technology. Wavelet denoising technology can denoise edges, strongly denoise areas determined to be noise, and completely preserve details. It has a greater advantage in distinguishing between noise and details, resulting in the denoised image retaining more details.

[0066] In one example, see Figure 4 As shown, the process of denoising the first pixel data matrix to obtain the second pixel data matrix includes steps S202-S206.

[0067] Step S202: Randomly extract target pixel data from the first pixel data matrix to form at least one original wavelet transform group containing L target pixel data. The L is less than the product of M and N.

[0068] Assuming L is 4, as shown in the left side of Figure 3(a), the first pixel data matrix includes B11, B12, B13, B21, B22, B23, B31, B32, and B33. By arbitrarily extracting four target pixel data points from the middle, there are 126 extraction methods, resulting in 126 original wavelet transform groups. Examples include {B11, B12, B13, B21}, {B11, B12, B13, B22}, {B22, B23, B31, B32}, etc., which will not be listed here.

[0069] Step S204: For any original wavelet transform group, perform wavelet forward transform processing, threshold denoising processing, and wavelet inverse transform processing in sequence to obtain the reconstructed wavelet transform group.

[0070] The following section uses a Bayer array with L=4 as an example to illustrate the process of sequentially performing forward wavelet transform, threshold denoising, and inverse wavelet transform on the original wavelet transform group to obtain the reconstructed wavelet transform group.

[0071] The original wavelet transform group is processed sequentially using the following formula:

[0072] A = (A1 + A2 + A3 + A4) / 4

[0073] H = (A1 + A3 - A2 - A4) / 2

[0074] V = (A1 + A2 - A3 - A4) / 2,

[0075] D = A1 + A4 - A2 - A3,

[0076] Where A1, A2, A3, and A4 are the values ​​of the target element data in the original wavelet transform group, and A, H, V, and D are intermediate quantities. The meanings of each intermediate quantity are as follows: A represents the low-frequency information after the wavelet transform, H represents the high-frequency information of the horizontal component, V represents the high-frequency information of the vertical component, and D represents the high-frequency information of the diagonal component. For example, if the target pixel data contained in the original wavelet transform group is {B11, B12, B13, B22}, then A1 = B11, A2 = B12, A3 = B13, and A4 = B22. Substituting these values ​​into the above formula yields A, H, V, and D.

[0077] After wavelet forward transform processing, threshold denoising is performed based on the following method:

[0078] If H ≤ Y1, then H is set to zero or H is set to H', where H' is the product of H and X1, X1 is a preset coefficient and 0 < X1 < 1, and Y1 is a preset threshold.

[0079] If V≤Y2, then V is set to zero or V is set to V', where V' is the product of V and X2, X2 is a preset coefficient and 0<X2<1, and Y2 is a preset threshold.

[0080] If D≤Y3, then set D to zero or set D to D', where D' is the product of D and X3, X3 is a preset coefficient and 0<X3<1, and Y3 is a preset threshold.

[0081] In image processing, low-frequency information is considered valid information and needs to be preserved, while noise represents high-frequency information. The denoising process involves processing high-frequency information in different directions. The high-frequency intermediate components H, V, and D contain noise information, as well as valid image edge information. Threshold denoising filters out noise using thresholds while preserving as much valid information as possible. If the high-frequency intermediate components H, V, and D are below their corresponding preset thresholds, they are considered noise. If high-frequency information is identified as noise, its influence is eliminated by setting the high-frequency components to zero or reducing their values. If high-frequency information is considered valid information, it is left unprocessed.

[0082] In this embodiment, Y1, Y2, Y3, X1, X2, and X3 are empirical values ​​that can be set based on experimental simulations or other methods.

[0083] After threshold denoising, an inverse transform is performed based on the following formula to reconstruct the wavelet transform group:

[0084] A1' = A + V / 2 + H / 2 + D / 4

[0085] A2' = A + V / 2 - H / 2 - D / 4,

[0086] A3' = AV / 2 + H / 2 - D / 4,

[0087] A4' = AV / 2 - H / 2 + D / 4,

[0088] Where A1', A2', A3', and A4' are the values ​​of the target element data in the reconstructed wavelet transform group. For example, if the original wavelet transform group is {B11, B12, B13, B22}, the reconstructed wavelet transform group is {A1', A2', A3', A4'}, where A1' corresponds to the target pixel data B11, A2' corresponds to the target pixel data B12, A3' corresponds to the target pixel data B13, and A4' corresponds to the target pixel data B22.

[0089] Step S206: Based on at least one group of reconstructed wavelet transforms, update the target pixel data in the first pixel data matrix to obtain the second pixel data matrix.

[0090] Assuming L is 4, as shown in the left side of Figure 3(a), the first pixel data matrix includes B11, B12, B13, B21, B22, B23, B31, B32, and B33. By arbitrarily extracting four target pixel data points from the middle, there are 126 extraction methods, resulting in 126 original wavelet transform groups. Based on these 126 original wavelet transform groups, the target pixel data in the first pixel data matrix is ​​updated to obtain the second pixel data matrix.

[0091] In one example, step S206 could be: calculating the arithmetic mean of the same target pixel data in different reconstructed wavelet transform groups, and updating the same target pixel data in the first pixel data matrix with this arithmetic mean. For example, assuming there are K original wavelet transform groups containing target pixel data B22 in the first pixel data matrix, the arithmetic mean of the target element data corresponding to target pixel data B22 in the corresponding K reconstructed wavelet transform groups is used as the update value of target pixel data B22. In this way, each target pixel data in the first pixel data matrix can be updated, thereby obtaining the second pixel data matrix.

[0092] In one example, step S206 could be: calculating a weighted average value for the same target pixel data in different reconstructed wavelet transform groups based on their weights, and updating the same target pixel data in the first pixel matrix to the weighted average value. Wherein, if the original wavelet transform group contains more updated target pixel data, then the corresponding weight of the reconstructed wavelet transform group is larger. For example, referring to the rectangle in Figure 3(b), after the 5*5 rectangular window is moved, the first target pixel data matrix includes target pixel data B12, B13, B14, B22, B23, B24, B32, B33, and B34. Among these, B12, B13, B22, B23, B33, and B34 have already been traversed and updated previously, while B14, B24, and B34 are being traversed for the first time and have not yet been updated. Comparing the original wavelet transform groups {B12, B13, B14, B23} and {B23, B14, B24, B34}, both contain target pixel data B23. However, the former contains more updated target pixel data and therefore has a larger weight. When calculating the weighted average of the target pixel data B23, the target pixel data B23 in the reconstructed wavelet transform group corresponding to the former has a higher weight. By assigning different weights, the denoised target pixel data is given greater importance, improving the accuracy of the denoising result. In this way, each target pixel data in the first pixel data matrix can be updated to obtain the second pixel data matrix.

[0093] Referring to the left side of Figure 3(a), in this 5*5 first pixel data matrix, the first pixel data matrix includes B11, B12, B13, B21, B22, B23, B31, B32, and B33. Four target pixel data points can be randomly extracted from the middle, resulting in 126 extraction methods. With L = 4, a wavelet transform group only requires four target pixel data points. Based on these nine target pixel data points, multiple wavelet transform groups are formed, and wavelet transform threshold denoising is performed on each group. After inverse transform, multiple sets of pixel data are obtained. These sets of pixel data are assigned different weights to reassemble them to obtain the final denoised result.

[0094] See Figure 5 As shown, this disclosure provides an image noise reduction method, including steps S102, S103, and S104. Compared to Figure 2 The embodiment shown adds step S103 before moving an M*N matrix window in the pixel data array at a preset clock cycle to read the first pixel data matrix.

[0095] Step S103: Fill the outermost row of the pixel data array with blank elements of row P3 and the outermost column of the pixel data array with blank elements of column Q3, so that the pixel data array is expanded from the original row P1 and column Q1 to row P2 and column Q2, where P2 = P1 + M - 1, Q2 = Q1 + N - 1, P3 = (M - 1) / 2, and Q3 = (N - 1) / 2.

[0096] See Figure 6 As shown, M and N are both 5, and two rows of blank data are added to the top, bottom, left, and right sides of the original pixel data array. After filling, each pixel data in the original pixel data array can be traversed as the center pixel data of a 5*5 matrix window, thus ensuring that the noise reduction result of each pixel data is not missed in the output. For example, see... Figure 6 As shown in the rectangle, traversing a 5x5 matrix window within the filled pixel data array yields a first pixel data matrix containing target pixel data {B11, B12, B21, B22}, with target pixel data B11 being the center pixel of this first pixel data matrix after noise reduction. Since the first pixel data matrix contains only four target pixel data points, the corresponding target pixel data in the first pixel data matrix is ​​directly updated and replaced according to a unique set of reconstructed wavelet transforms to obtain the second pixel data matrix.

[0097] See Figure 7 As shown, this disclosure also provides an image noise reduction circuit. The image noise reduction circuit includes a clock source 109 and a processing unit 110.

[0098] Clock source 109 is used to send clock signals to the processing unit according to a preset clock cycle.

[0099] The processing unit 110 is used to receive a clock signal and move an M*N matrix window in the pixel data array according to the clock cycle to obtain the first pixel data matrix until the pixel data array is traversed. M is the number of rows of the matrix window, N is the number of columns of the matrix window, and M and N are odd numbers.

[0100] The processing unit 110 is also configured to perform noise reduction processing on the first pixel data matrix to obtain the second pixel data matrix in each clock cycle, output the center pixel data in the second pixel data matrix, and update the second pixel data matrix to the pixel data array.

[0101] The process of denoising the first pixel data matrix to obtain the second pixel data matrix includes: performing wavelet denoising on the target pixel data in the first pixel data matrix, wherein the target pixel data is the pixel data in the first pixel data matrix that corresponds to the target channel type, and the target channel type is the channel type corresponding to the center pixel data of the first pixel data matrix.

[0102] The process by which the processing unit performs wavelet denoising on the target pixel data in the first pixel data matrix can be referred to in the various processes of the aforementioned image denoising method embodiments, and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0103] See Figure 8 As shown, this application embodiment also provides an electronic device, including a processor 210, a memory 209, and a program or instructions stored in the memory 209 and executable on the processor 210. When the program or instructions are executed by the processor 210, they implement the various processes of the above-described image noise reduction method embodiments and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0104] In one example, the electronic device also includes a camera module comprising a pixel array. This camera module is, for example, a CMOS camera module.

[0105] This application also provides a readable storage medium storing a program or instructions. When the program or instructions are executed by a processor, they implement the various processes of the above-described image denoising method embodiments and achieve the same technical effect. To avoid repetition, they will not be described again here.

[0106] The processor is the processor in the electronic device described in the above embodiments. The readable storage medium includes computer-readable storage media, such as computer read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.

[0107] One or more embodiments of this specification may be a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for causing a processor to implement various aspects of this specification.

[0108] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example—but not limited to—electrical storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices, such as punch cards or recessed protrusions storing instructions thereon, and any suitable combination thereof. The computer-readable storage media used herein are not to be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.

[0109] The computer-readable program instructions described herein can be downloaded from computer-readable storage media to various computing / processing devices, or downloaded via a network, such as the Internet, local area network, wide area network, and / or wireless network, to an external computer or external storage device. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to the computer-readable storage media in the respective computing / processing device.

[0110] Computer program instructions used to perform the operations of the embodiments described herein may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, etc., and conventional procedural programming languages ​​such as the "C" language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry, such as programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), is personalized by utilizing state information from the computer-readable program instructions. This electronic circuitry can execute the computer-readable program instructions to implement various aspects of this specification.

[0111] Various aspects of this specification are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this specification. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0112] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.

[0113] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.

[0114] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this specification. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions. It is well known to those skilled in the art that implementation in hardware, implementation in software, and implementation using a combination of software and hardware are equivalent.

[0115] The various embodiments of this specification have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is chosen to best explain the principles, practical application, or technical improvements to the embodiments in the market, or to enable others skilled in the art to understand the embodiments disclosed herein. The scope of this application is defined by the appended claims.

Claims

1. An image denoising method, characterized in that, include: Acquire the pixel data array output by the image sensor; According to a preset clock cycle, an M*N matrix window is moved in the pixel data array to obtain the first pixel data matrix until the pixel data array is traversed. M is the number of rows of the matrix window, N is the number of columns of the matrix window, and M and N are odd numbers. In each clock cycle, the first pixel data matrix is ​​denoised to obtain the second pixel data matrix, the center pixel data in the second pixel data matrix is ​​output, and the second pixel data matrix is ​​updated to the pixel data array, so that the target pixel data can be denoised multiple times. The target pixel data is the pixel data in the first pixel data matrix that corresponds to the target channel type, and the target channel type is the channel type corresponding to the center pixel data of the first pixel data matrix. The step of performing noise reduction processing on the first pixel data matrix to obtain the second pixel data matrix includes: performing wavelet noise reduction processing on the target pixel data in the first pixel data matrix.

2. The method according to claim 1, characterized in that, The step of denoising the first pixel data matrix to obtain the second pixel data matrix includes: Arbitrarily extract target pixel data from the first pixel data matrix to form at least one original wavelet transform group containing L target pixel data; For any original wavelet transform group, wavelet forward transform, threshold denoising, and inverse wavelet transform are performed sequentially to obtain the reconstructed wavelet transform group. Based on at least one group of reconstructed wavelet transforms, the target pixel data in the first pixel data matrix is ​​updated to obtain the second pixel data matrix.

3. The method according to claim 2, characterized in that, The step of updating the target pixel data in the first pixel data matrix to obtain the second pixel data matrix based on at least one group of reconstructed wavelet transforms includes: Calculate the average value of the same target pixel data in different reconstructed wavelet transform groups, and update the same target pixel data in the first pixel data matrix with the average value.

4. The method according to claim 2, characterized in that, The step of updating the target pixel data in the first pixel data matrix to obtain the second pixel data matrix based on at least one group of reconstructed wavelet transforms includes: Based on the weights of the reconstructed wavelet transform groups, a weighted average value is calculated for the same target pixel data in different reconstructed wavelet transform groups, and the same target pixel data in the first pixel data matrix is ​​updated to the weighted average value; wherein, if the original wavelet transform group contains more updated target pixel data, the weight of its corresponding reconstructed wavelet transform group is greater.

5. The method according to claim 2, characterized in that, The value of L is 4. The original wavelet transform group is sequentially subjected to forward wavelet transform, threshold denoising, and inverse wavelet transform to obtain the reconstructed wavelet transform group, including: A = (A1 + A2 + A3 + A4) / 4, H = (A1 + A3 - A2 - A4) / 2, V = (A1 + A2 - A3 - A4) / 2, D = A1 + A4 - A2 - A3, where A, H, V, and D are intermediate quantities, and A1, A2, A3, and A4 are the values ​​of the target element data in the original wavelet transform group; If H≤Y1, then H is set to zero or H is set to H', where H' is the product of H and X1, X1 is a preset coefficient and 0<X1<1, and Y1 is a preset threshold. If V≤Y2, then V is set to zero or V is set to V', where V' is the product of V and X2, X2 is a preset coefficient and 0<X2<1, and Y2 is a preset threshold. If D≤Y3, then set D to zero or set D to D', where D' is the product of D and X3, X3 is a preset coefficient and 0<X3<1, and Y3 is a preset threshold. A1'=A+V / 2+H / 2+D / 4, A2'=A+V / 2-H / 2-D / 4, A3'=AV / 2+H / 2-D / 4, A4'=AV / 2-H / 2+D / 4; where A1', A2', A3', and A4' are the values ​​of the target element data in the reconstructed wavelet transform group.

6. The method according to claim 1, characterized in that, Before moving an M*N matrix window in the pixel data array at a preset clock cycle to read the first pixel data matrix, the method further includes: Fill the outermost row of the pixel data array with blank elements of row P3, and fill the outermost column of the pixel data array with blank elements of column Q3, so that the pixel data array is expanded from the original row P1 and column Q1 to row P2 and column Q2, where P2=P1+M-1, Q2=Q1+N-1, P3=(M-1) / 2, and Q3=(N-1) / 2.

7. The method according to claim 1, characterized in that, The pixel data array is a Bayer pixel data array, and both M and N are 5.

8. An image noise reduction circuit, characterized in that, Includes clock source and processing unit; The clock source is used to send clock signals to the processing unit according to a preset clock cycle; The processing unit receives a clock signal and moves an M*N matrix window in the pixel data array according to the clock cycle to obtain a first pixel data matrix until the pixel data array is traversed. M is the number of rows in the matrix window, N is the number of columns in the matrix window, and M and N are odd numbers. Within each clock cycle, the first pixel data matrix is ​​denoised to obtain a second pixel data matrix. The center pixel data in the second pixel data matrix is ​​output, and the second pixel data matrix is ​​updated in the pixel data array, allowing the target pixel data to be denoised multiple times. The target pixel data is the pixel data in the first pixel data matrix corresponding to a target channel type, and the target channel type is the channel type corresponding to the center pixel data in the first pixel data matrix. The denoising process of the first pixel data matrix to obtain the second pixel data matrix includes: performing wavelet denoising on the target pixel data in the first pixel data matrix.

9. An electronic device, characterized in that, Includes a processor, a memory, and programs or instructions stored in the memory and executable on the processor; When the program or instructions are executed by the processor, they implement the steps of the method as described in any one of claims 1-7.

10. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the method as described in any one of claims 1-7.

Citation Information

Patent Citations

  • Data processing method and device

    CN111507931A

  • Image interpolating method by bayer-pattern-converting signal and program recording medium

    KR1020110083888A