Method for updating buffer and video processing system

By using filtering algorithms and noise measurements in video frame sequences to determine and compress new sets of pixel values, the problem of insufficient bandwidth usage in the prior art is solved, and more efficient data transmission and noise reduction are achieved.

CN120182121APending Publication Date: 2025-06-20AXIS
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411826131.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-12-20
Filing Date
2024-12-12
Publication Date
2025-06-20

AI Technical Summary

Technical Problem

The prior art fails to fully utilize data compression when reducing the temporal noise associated with the current video frames, resulting in a larger bandwidth required for reading and writing from the buffer.

Method used

By obtaining the stored set of pixel values ​​from the buffer and obtaining the current video frame from the sensor, a new set of pixel values ​​is determined using a filtering algorithm, and quantizing and compressing according to the metric of the noise amount, and finally updating the buffer.

Benefits of technology

Further compression of the new set of pixel values ​​is achieved, reducing the bandwidth required for reading and writing from the buffer while reducing time noise.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120182121A_ABST
    Figure CN120182121A_ABST
Patent Text Reader

Abstract

The invention discloses a method for updating a buffer and a video processing system. The method includes obtaining, from a buffer, a stored set of pixel values regarding a set of one or more pixels associated with a previous video frame in a sequence of video frames. The stored set of pixel values has been filtered using a filtering algorithm for reducing temporal noise. A measure of an amount of noise in the stored set of pixel values is obtained, and a current set of pixel values in the current video frame with respect to the set of one or more pixels is obtained from the sensor. A new set of pixel values for storage in the buffer is determined using a filtering algorithm. A measure of the amount of noise in the new set of pixel values is determined and the new set of pixel values is quantized based on the measure of the amount of noise in the new set of pixel values. The higher the measure of the amount of noise in the new set of pixel values is, the higher the quantization performed is. The quantized new set of pixel values is compressed, and a buffer is updated with the compressed quantized new set of pixel values.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an update buffer, and more particularly, to an update buffer for reducing temporal noise associated with current pixel values of a current video frame of a video frame sequence. Background Art

[0002] When new image data associated with video frames of a video frame sequence from a sensor in a camera is provided (e.g., for subsequent encoding by an encoder), a buffer such as an infinite impulse response (IIR) filter buffer can be used to store the image data therein, reducing the temporal noise. For example, before being provided to the encoder, the image data stored in the buffer is combined with the image data from the sensor to reduce temporal noise. In addition, the image data from the sensor is also used in combination with the stored image data to determine new image data to update the buffer. Since for each new image frame, the stored image data needs to be read from the buffer and new image data needs to be written to the buffer separately, compression is used before storing the new image data in the buffer in order to reduce the bandwidth required for reading from and writing to the buffer. The use of such compression is known, but further compression is desired.

[0003] US7711044B1 discloses a noise reduction system and method that includes transforming a residual signal to produce transform coefficients and applying the transform coefficients to a quantization matrix and a configurable gain matrix to provide frequency-selective weighting of the transform coefficients with a gain sensitive to the noise level. Summary of the Invention

[0004] An object of the present invention is to overcome or at least mitigate the problems and disadvantages of the prior art.

[0005] According to a first aspect, there is provided a method for updating a buffer. The method includes obtaining from the buffer a set of stored pixel values for a set of one or more pixels, the set of one or more pixels being associated with a previous video frame in a video frame sequence. The set of stored pixel values has been filtered using a filtering algorithm for reducing temporal noise. The method further includes obtaining from a sensor a set of current pixel values for the set of one or more pixels in a current video frame. The method further includes determining, based on the set of stored pixel values and the set of current pixel values, a set of new pixel values for the set of one or more pixels to be stored in the buffer using a filtering algorithm for reducing temporal noise. The method further includes determining a measure of the amount of noise in the set of new pixel values and quantizing the set of new pixel values based on the measure of the amount of noise in the set of new pixel values. The higher the measure of the amount of noise in the set of new pixel values, the higher the quantization performed. The method further includes compressing the quantized set of new pixel values and updating the buffer with the compressed quantized set of new pixel values.

[0006] By determining a measure of the amount of noise in the new set of pixel values and then quantizing the new set of pixel values based on the measure of the amount of noise in the new set of pixel values such that the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed, further compression of the new set of pixel values is achieved without a corresponding reduction in visible side effects. By the further compression, the bandwidth required for reading from and writing to the buffer is reduced.

[0007] The method may further include determining a measure of the probability that a change in the current set of pixel values relative to the stored set of pixel values (or in other words, the difference between the current set of pixel values and the stored set of pixel values) is due to a change in the scene. The new set of pixel values to be stored in the buffer may then be further determined based on the measure of the probability that a change in the current set of pixel values relative to the stored set of pixel values is due to a change in the scene.

[0008] Thereby, further compression of the new set of pixel values is achieved without a corresponding reduction in visible side effects. By the further compression, the bandwidth required for reading from and writing to the buffer is reduced.

[0009] The corresponding method may further include determining a first weight by which the stored set of pixel values should be multiplied and a second weight by which the current set of pixel values should be multiplied to produce the new set of pixel values. The higher the probability that a change in the current set of pixel values relative to the stored set of pixel values is due to a change in the scene, the lower the first weight relative to the second weight.

[0010] The method may further include obtaining a measure of the amount of noise in the stored set of pixel values. The relationship between the first weight and the second weight may then be further based on the measure of the amount of noise in the stored set of pixel values such that the higher the measure of the amount of noise in the stored set of pixel values, the lower the first weight relative to the second weight.

[0011] It should be noted that "the lower the first weight relative to the second weight" does not mean that the first weight is always lower than the second weight, but rather that as the measure of the amount of noise in the stored pixels increases, the magnitude of the first weight decreases relative to the second weight.

[0012] The new set of pixel values to be stored in the buffer may be further determined based on the measure of the amount of noise in the stored set of pixel values.

[0013] The method may further include obtaining a measure of the amount of noise in the current set of pixel values from a sensor. The new set of pixel values to be stored in the buffer may then be further determined based on the measure of the amount of noise in the current set of pixel values. The relationship between the first weight and the second weight may then be further based on the measure of the amount of noise in the current set of pixel values, such that the higher the measure of the amount of noise in the current set of pixel values, the higher the first weight relative to the second weight.

[0014] The buffer may be an infinite impulse response (IIR) buffer, and wherein the filtering algorithm for reducing temporal noise is IIR filtering.

[0015] Obtaining the stored set of pixel values from the buffer may include retrieving a compressed stored set of pixel values for a set of one or more pixels that are associated with a previous video frame in a video frame sequence and decompressing the compressed stored set of pixel values to obtain the stored set of pixel values. The compressed stored set of pixel values has been filtered using the filtering algorithm for reducing temporal noise.

[0016] According to a second aspect, there is provided a non-transitory computer-readable storage medium having instructions stored thereon that, when executed in a video processing system having processing capabilities, cause the video processing system to perform the method of the first aspect.

[0017] Where applicable, the optional additional features of the method according to the first aspect mentioned above also apply to the non-transitory computer-readable storage medium according to the second aspect. For the avoidance of unnecessary repetition, reference is made to the above.

[0018] According to a third aspect, there is provided a video processing system configured to update a buffer. The video processing system includes circuitry configured to perform a first obtaining function, a third obtaining function, a first determining function, a second determining function, a quantization function, a compression function, and an updating function. The first obtaining function is configured to obtain from the buffer a stored set of pixel values for a set of one or more pixels associated with a previous video frame in a sequence of video frames, wherein the stored set of pixel values has been filtered using a filtering algorithm for reducing temporal noise. The third obtaining function is configured to obtain from a sensor a current set of pixel values for the set of one or more pixels in a current video frame. The first determining function is configured to determine, based on the stored set of pixel values and the current set of pixel values, using the filtering algorithm for reducing temporal noise, a new set of pixel values for the set of one or more pixels to be stored in the buffer. The second determining function is configured to determine a measure of the amount of noise in the new set of pixel values. The quantization function is configured to quantize the new set of pixel values based on the measure of the amount of noise in the new set of pixel values, wherein the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed. The compression function is configured to compress the quantized new set of pixel values. The updating function is configured to update the buffer with the compressed quantized new set of pixel values.

[0019] Where applicable, the optional additional features of the method according to the first aspect mentioned above also apply to the video processing system according to the third aspect. To avoid unnecessary repetition, reference is made to the above.

[0020] The further scope of application of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the scope of the invention will become apparent to those skilled in the art from this detailed description.

[0021] Therefore, it should be understood that the present invention is not limited to the particular components of the described system or the actions of the described method, as such system and method may vary. It should also be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. It must be noted that as used in the specification and the appended claims, the articles "a", "an", "the" and "said" are intended to mean that there is one or more elements, unless the context clearly indicates otherwise. Thus, for example, reference to "a unit" or "the unit" may include several devices and the like. Further, the words "comprising", "including" and "containing" and the like do not exclude other elements or steps. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The above and other aspects of the present invention will now be described in more detail with reference to the accompanying drawings. The drawings should not be regarded as limiting, but should be used for explanation and understanding.

[0023] Figure 1 A flowchart showing an embodiment related to a method for updating a buffer is shown.

[0024] Figure 2 A schematic diagram showing an embodiment related to a video processing system configured to update a buffer is shown. DETAILED DESCRIPTION

[0025] The present invention will now be described hereinafter with reference to the accompanying drawings, in which currently preferred embodiments of the present invention are illustrated. However, the present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

[0026] Embodiments of the present invention are suitable, for example, for scenarios in which a corresponding set of pixel values for each one or more sets of pixels is stored in a buffer. The one or more pixels may be, for example, one or more adjacent pixels. The stored set of pixel values may be related, for example, to values of light intensity and values of spectral profiles (colors), for example using YCbCr or other color spaces. It should be noted that the values of light intensity and spectral profiles may be stored at different resolutions, such that, for example, the light intensity is stored at a higher resolution (such as storing the light intensity of each pixel), while the spectral profile (color) is stored at a lower resolution (such as storing the spectral profile (color) of every nxm pixels, where at least one of n and m is greater than 1). Each stored set of pixel values is related to a corresponding set of one or more pixels in a previous video frame in a sequence of video frames from a sensor in a camera, and has been filtered using a filtering algorithm for reducing temporal noise applied to the buffer. Then, each stored set of pixel values is combined with a corresponding current set of pixel values for a corresponding one or more pixels of the current video frame obtained from the sensor to form a new set of pixel values with which to update the buffer. The "corresponding" set of one or more pixels of the current video frame means a set of one or more pixels in the current video frame that have the same position as the set of one or more pixels (the set of one or more pixels that is related to the stored set of pixel values). Then, each stored set of pixel values may also be combined with the current set of pixel values for a corresponding one or more pixels of the current video frame obtained from the sensor to form an output set of pixel values, which may typically be forwarded to an encoder for encoding via further image processing steps. It should be noted that the method may also be applied together with image stabilization. In this case, "the same position" may mean the same position after moving the pixels based on image stabilization.

[0027] Now, the implementation of method 100 for updating a buffer in a video processing system will be described in conjunction with Figure 1 the flowchart in. The method involves updating a buffer associated with a set of one or more pixels, where a corresponding set of pixel values is provided for each set of one or more pixels. The method can be performed for any set of n x m pixels, where n and m are integers greater than or equal to 1. To update the buffer associated with all pixels, the method will be performed for each set of one or more pixels.

[0028] The method includes obtaining S110 from the buffer a set of stored pixel values for a set of one or more pixels. The set of stored pixel values for a set of one or more pixels is associated with a previous video frame in a sequence of video frames from a sensor in a camera, as the set of stored pixel values has been filtered using a filtering algorithm for reducing temporal noise over time. For example, if there is no change in the scene associated with a set of one or more pixels in a previous video frame in the sequence of video frames, the set of pixel values for the set of one or more pixels will include the same set of pixel values of all previous frames (except for noise). The buffer is then updated such that the temporal noise is reduced over time. For example, the buffer can be an infinite impulse response (IIR) buffer, and thus the filtering algorithm for reducing temporal noise will be an IIR filter. Any type of buffer can be used to implement a convergence filtering algorithm to reduce temporal noise.

[0029] The set of pixel values stored in the buffer is typically compressed. Thus, obtaining S110 the set of stored pixel values from the buffer can include retrieving from the buffer a compressed set of stored pixel values for a set of one or more pixels and then decompressing the compressed set of stored pixel values to obtain the set of stored pixel values.

[0030] In addition to obtaining S110 the stored set of pixel values for a set of one or more pixels, a measure of the amount of noise in the stored set of pixel values is also obtained S120. Each time the buffer is updated, a measure of the amount of noise in the stored set of pixel values can be determined and the measure of the amount of noise in the stored set of pixel values can be stored, for example, in a separate buffer such that when a new set of pixel values for updating the buffer is to be determined, the measure of the noise in the stored set of pixel values can be obtained S120 from the separate buffer. For example, each time the buffer is updated, a convergence level of the set of pixel values to be stored can be determined and this convergence level of the set of pixel values to be stored can be stored in a separate buffer. Then the measure of the noise S120 is obtained by deriving the measure of the noise from the convergence level. Specifically, if the convergence level is low, the set of pixel values stored in the buffer has a high measure of the amount of noise, and if the convergence level is high, the set of pixel values stored in the buffer has a low measure of the amount of noise. A high convergence level means that for consecutive video frames, the difference in the set of pixel values in the buffer between buffer updates is small. As an alternative to storing the measure of the amount of noise in the stored set of pixel values in a separate buffer, the measure of the amount of noise in the stored set of pixel values can be stored interleaved with the stored set of pixel values in the buffer.

[0031] It should be noted that the stored set of pixel values and the measure of the amount of noise in the stored set of pixel values can be stored at different resolutions such that, for example, some or all of the pixel values of the set of pixel values are stored at a higher resolution (such as storing the pixel value for each pixel), while the measure of the amount of noise in the stored set of pixel values is stored at a lower resolution (such as storing the measure of the amount of noise in the stored set of pixel values for every n x m pixels, where at least one of n and m is greater than 1).

[0032] A current set of pixel values for a set of one or more pixels in the current video frame is obtained S130 from the sensor. The current set of pixel values referred to here for "a set of one or more pixels" means that the current set of pixel values is for such a set of one or more pixels that has the same position in the current video frame as a set of one or more pixels in each previous frame (which is related to the stored set of pixel values). It should be noted that the method can also be applied together with image stabilization. In this case, "the same position" can mean the same position after moving the pixels based on image stabilization.

[0033] Then, based on the stored set of pixel values and the current set of pixel values, a new set of pixel values for a set of one or more pixels to be stored in the buffer is determined S140 using a filtering algorithm for reducing temporal noise.

[0034] It should be noted that the set of pixel values stored in the buffer and the set of current pixel values from the sensor may not be in the same domain. For example, the set of stored pixel values may include more bits than the set of current pixel values. Therefore, it may be necessary to transform the set of stored pixel values and / or the set of current pixel values in order to be able to compare and combine them. This is relevant to determining the new set of pixel values in S140 and any subsequent actions in which comparisons and combinations or other related processing involving the set of stored pixel values and the set of current pixel values will be performed.

[0035] Method 100 may further include determining S135 a measure of the probability that the change in the set of current pixel values relative to the set of stored pixel values is due to a change in the scene. It may then further be determined S140 a new set of pixel values for storage in the buffer based on the measure of the probability that the change in the set of current pixel values relative to the set of stored pixel values is due to a change in the scene. Determining S135 the new set of pixel values for storage in the buffer may further include determining a first weight by which the set of stored pixel values should be multiplied and a second weight by which the set of current pixel values should be multiplied to produce the new set of pixel values. The first weight and the second weight may then be determined such that the higher the probability that the change in the set of current pixel values relative to the set of stored pixel values is due to a change in the scene, the lower the first weight relative to the second weight. Determining the probability that the change in the set of current pixel values relative to the set of stored pixel values is due to a change in the scene is intended to determine whether the difference between the set of current pixel values and the set of stored pixel values is due to a change in the scene (such as the movement of one or more objects or a change in lighting conditions, etc.), or whether it is due to noise in the set of current pixel values and / or noise in the set of stored pixel values. The probability may be determined not only based on a set of one or more pixels, but also based on many pixels surrounding the set of one or more pixels. For example, if the set of stored pixel values and the set of current pixel values are related to a set of one pixel, the probability that the difference between the set of current pixel values and the set of stored pixel values is related to a change in the scene may additionally be determined based on the pixels surrounding that one pixel.

[0036] In general, it is assumed herein that the sum of the first weight and the second weight is 1. However, this requires that the set of stored pixel values and the set of current pixel values be in the same domain, e.g., they contain the same number of bits. As indicated above in this document, this may not be the case. Therefore, it may first be necessary to transform either or both of the set of stored pixel values and the set of current pixel values. Optionally, the weights may be adjusted to take this difference into account.

[0037] If the probability that the change in the current pixel value set relative to the stored pixel value set is due to a change in the scene is high, then a further change in the scene is likely to occur in the next image frame subsequent to the current image frame. In this case, when determining the set of output pixel values (e.g., to be forwarded to an encoder for encoding) for the next image frame, the newly stored set of pixel values for the current image frame in the buffer will not be used to a great extent. For example, even if the newly stored set of pixel values will have a lower measure of noise amount and thus will be subject to low quantization based on this, high quantization may be performed based on the high probability that the change in the current pixel value set relative to the stored pixel value set is due to a change in the scene, because the newly stored set of pixel values in the buffer may not be used to a great extent when determining the set of output pixel values (e.g., for forwarding to an encoder for encoding) associated with the next video frame. As the quantization increases, the compression increases, which in turn reduces the bandwidth required for reading from and writing to the buffer. Additionally, if the probability that the change in the current pixel value set relative to the stored pixel value set is due to a change in the scene is high, the newly stored set of pixel values for the current image frame in the buffer will likely have a higher measure of noise amount and will not be used to a great extent when determining the set of output pixel values (e.g., to be forwarded to an encoder for encoding) for the next image frame. Therefore, high quantization may be performed because the newly stored set of pixel values in the buffer may not be used to a great extent when determining the set of output pixel values (e.g., for forwarding to an encoder for encoding) associated with the next video frame. As the quantization increases, the compression increases, which in turn reduces the bandwidth required for reading from and writing to the buffer.

[0038] When determining the newly stored set of pixel values for S140 in the buffer, the first weight and the second weight may be further determined based on the measure of the noise amount in the stored pixel value set, such that the higher the measure of the noise amount in the stored pixel value set, the lower the first weight relative to the second weight. For example, if it is determined that the probability that the change in the current pixel value set relative to the stored pixel value set is due to a change in the scene is close to zero and the measure of the noise amount is close to zero, then the first weight will be close to 1 and the second weight will be close to 0.

[0039] Method 100 may further include obtaining a measure of the amount of noise in a current set of pixel values (not shown) from a sensor. The amount of noise in the current set of pixel values from the sensor may be determined using a noise model, such as that described in Photon Transfer: DN→λ, James R. Janesick, SPIE Press, Bellingham, WA, 2007. Determination S140 may then further determine a new set of pixel values for storage in the buffer based on the measure of the amount of noise in the current set of pixel values. For example, when determining the new set of pixel values in determination S140, a first weight and a second weight may be further determined based on the measure of the amount of noise in the current set of pixel values, such that the higher the measure of the amount of noise in the current set of pixel values, the higher the first weight relative to the second weight.

[0040] After determining the new set of pixel values in determination S140, a measure of the amount of noise in the new set of pixel values is determined in determination S150. The new set of pixel values is a combination of the stored set of pixel values and the current set of pixel values, and the combination may be based on the probability that the difference between the current set of pixel values and the stored set of pixel values is due to a change in the scene, the measure of the amount of noise in the stored set of pixel values, and the measure of the amount of noise in the current set of pixel values. The measure of the amount of noise in the new set of pixel values may be determined based on how the stored set of pixel values and the current set of pixel values are combined, for example, determined together with the magnitudes of the first weight and the second weight and their corresponding measures of the amount of noise.

[0041] Then, based on the measure of the amount of noise in the new set of pixel values, quantization S160 is performed on the new set of pixel values. Specifically, the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed. Quantization of the new set of pixel values may be performed in the spatial domain or the frequency domain. Additionally, quantization need not be performed separately on the new set of pixel values for a set of one or more pixels, but may be performed in relation to the new set of pixel values for a set of one or more pixels, in relation to a further new set of pixel values for a set of one or more pixels adjacent to the set of one or more pixels, for example, by quantifying the difference between the new set of pixel values and the further new set of pixel values.

[0042] Generally, quantization is based on dividing by a quantization factor and storing only the integer part of the result. Inverse quantization is performed by multiplying by the quantization factor, retaining the original value. Quantization may be performed in the spatial domain and the frequency domain. For quantization in the spatial domain, quantization may be performed separately for each set of one or more pixels, and the magnitude of the quantization factor may be based on the measure of the amount of noise in the set of one or more pixels. For the frequency domain, first, the image is subjected to a frequency transform, such as a fast Fourier transform (FFT). In this case, different quantization factors may be used for different frequency components.

[0043] If the measure of the amount of noise in the new set of pixel values is high, it will not be used to a great extent to generate the set of output pixel values associated with the next frame subsequent to the current frame when the new set of pixel values is stored in the buffer. Thus, increasing quantization in the case where the measure of the amount of noise in the new set of pixel values is high can achieve further compression of the new set of pixel values without a corresponding reduction with visible side effects. As quantization increases, compression increases, which in turn reduces the bandwidth required for reading from and writing to the buffer. Additionally, the time required for reading from and writing to the buffer can be reduced, thereby reducing latency.

[0044] Then, the new set of quantized pixel values is compressed S170. For the compression after quantization, any type of lossless compression method can be used. For example, prediction-based compression (delta coding) based on an earlier set of pixel values can be used. Preferably, the compression uses variable bit length coding and entropy coding.

[0045] It should be noted that quantization S160 can be performed before or after delta coding.

[0046] Then, the buffer is updated S180 with the compressed and quantized new set of pixel values.

[0047] If an additional buffer is used to store the measure of the amount of noise in the stored set of pixel values, the additional buffer is updated with the measure of the noise in the new set of pixel values now stored in the buffer (e.g., in the form of a convergence level).

[0048] Figure 2 A block diagram showing an embodiment of a video processing system configured to update a buffer is shown. The image processing system 200 can be, for example, a camera, included in a camera, or connected to a camera for capturing a sequence of video frames.

[0049] The video processing system 200 includes circuitry 210. The circuitry 210 is configured to perform the functions of the image processing system 200. The circuitry 210 can include a processor 212 such as, for example, a central processing unit (CPU), a graphics processing unit (GPU), a tensor processing unit (TPU), a microcontroller, or a microprocessor. The processor 212 is configured to execute program code. The program code can be configured, for example, to perform the functions of the video processing system 200.

[0050] The video processing system 200 may further include a memory 220. The memory 220 may be one or more of a buffer, a flash memory, a hard disk drive, a removable medium, a volatile memory, a non-volatile memory, a random access memory (RAM), or another suitable device. In a typical arrangement, the memory 220 may include a non-volatile memory for long-term data storage and a volatile memory that serves as a device memory for the circuitry 210. The memory 220 may exchange data with the circuitry 210 via a data bus. There may also be accompanying control lines and an address bus between the memory 220 and the circuitry 210.

[0051] The functionality of the video processing system 200 may be embodied in the form of executable logic routines (e.g., lines of code, software programs, etc.) that are stored on a non-transitory computer-readable medium (e.g., the memory 220) of the image processing system 200 and executed by the circuitry 210 (e.g., using the processor 212). Additionally, the functionality of the image processing system 200 may be a stand-alone software application or form part of a software application that performs additional tasks related to the video processing system 200. The described functionality may be regarded as a method that a processing unit (e.g., the processor 212 of the circuitry 210) is configured to perform. Similarly, although the described functionality may be implemented in software, such functionality may also be carried out via dedicated hardware or firmware, or some combination of hardware, firmware, and / or software.

[0052] The video processing system 200 further includes a buffer 215.

[0053] The circuitry 210 is configured to perform a first acquisition function 221, a second acquisition function 222, a third acquisition function 223, a first determination function 224, a quantization function 225, a compression function 227, and an update function 228. The circuitry 210 is further optionally configured to perform a third determination function 229.

[0054] The first acquisition function 221 is configured to acquire a set of stored pixel values regarding a set of one or more pixels from the buffer 215, where the set of one or more pixels is related to a previous video frame in a video frame sequence, and where the set of stored pixel values has been filtered using a filtering algorithm for reducing temporal noise.

[0055] The second acquisition function 222 is configured to acquire a measure of the amount of noise in the set of stored pixel values.

[0056] The third acquisition function 223 is configured to acquire a set of current pixel values regarding a set of one or more pixels in a current video frame from a sensor.

[0057] The first determination function 224 is configured to determine a new set of pixel values for storage in buffer 215 using a filtering algorithm for reducing temporal noise based on a stored set of pixel values and a current set of pixel values.

[0058] The second determination function 225 is configured to determine a measure of the amount of noise in the new set of pixel values.

[0059] The quantization function 226 is configured to quantize the new set of pixel values based on a measure of the amount of noise in the new set of pixel values, wherein the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed.

[0060] The compression function 227 is configured to compress the quantized new pixel values.

[0061] The update function 228 is configured to update buffer 215 with the compressed and quantized new set of pixel values.

[0062] The circuit may be further configured to perform a third determination function 229 that is configured to measure the probability that a change in the current set of pixel values relative to the stored set of pixel values is due to a change in the scene. In the first determination function 224, the new set of pixel values for storage in buffer 215 may then be further determined based on a measure of the probability that a change in the current set of pixel values relative to the stored set of pixel values is due to a change in the scene.

[0063] The first determination function 224 may be further configured to determine a first weight by which the stored set of pixel values should be multiplied and a second weight by which the current set of pixel values should be multiplied to produce the new pixel values, wherein the higher the probability that a change in the current set of pixel values relative to the stored set of pixel values is due to a change in the scene, the lower the first weight relative to the second weight. The first weight and the second weight may be determined such that the higher the measure of the amount of noise in the stored set of pixel values, the lower the first weight relative to the second weight.

[0064] The first determination function 224 may be configured to further determine the new set of pixel values for storage in the buffer based on a measure of the amount of noise in the stored set of pixel values.

[0065] Buffer 215 may be an infinite impulse response IIR buffer 115, and wherein the filtering algorithm for reducing temporal noise is IIR filtering.

[0066] The first acquisition function 221 may be configured to obtain, from the buffer 115, a set of compressed stored pixel values for a set of one or more pixels associated with a previous video frame in a video frame sequence, where the set of compressed stored pixel values has been filtered using a filtering algorithm for reducing temporal noise and the set of compressed stored pixel values is decompressed to obtain a set of stored pixel values.

[0067] The detailed description of the actions of the method 100 described above in connection with Figure 1 also applies to the corresponding functions of the image processing system 200. Additionally, where applicable, the optional additional features of the method 100 described above in connection with Figure 1 also apply to the image processing system 200.

[0068] Those skilled in the art will recognize that the present invention is not limited to the above-described embodiments. On the contrary, within the scope of the appended claims, many modifications and variations are possible. Such modifications and changes can be understood and achieved by those skilled in the art when practicing the claimed invention by studying the drawings, this disclosure, and the appended claims.

Claims

1. A method for updating a buffer in a video processing system, the method comprising: obtaining from the buffer a stored set of pixel values ​​for a set of one or more pixels, the set of one or more pixels being associated with a previous video frame in a sequence of video frames, wherein the stored set of pixel values ​​has been filtered using a filtering algorithm for reducing temporal noise; Obtaining a current set of pixel values ​​for the set of one or more pixels in a current video frame from a sensor; determining, based on the stored set of pixel values ​​and the current set of pixel values, a new set of pixel values ​​for the set of one or more pixels for storage in the buffer using the filtering algorithm for reducing temporal noise; determining a measure of an amount of noise in the new set of pixel values; quantizing the new set of pixel values ​​based on the measure of the amount of noise in the new set of pixel values, wherein the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed; compressing the quantized new pixel value set; and The buffer is updated with the new set of compressed quantized pixel values.

2. The method according to claim 1, further comprising: determining a measure of the probability that a change in the current set of pixel values ​​relative to the stored set of pixel values ​​is due to a change in the scene, Wherein determining the new set of pixel values ​​for storage in the buffer is further based on a measure of the probability that a change in the current set of pixel values ​​relative to the stored set of pixel values ​​is due to a change in the scene.

3. The method according to claim 2, wherein: Determining the new set of pixel values ​​for storage in the buffer further comprises: Determine a first weight by which the stored set of pixel values ​​should be multiplied and a second weight by which the current set of pixel values ​​should be multiplied to produce the new set of pixel values, wherein the higher the probability that a change in the current set of pixel values ​​relative to the stored set of pixel values ​​is due to a change in the scene, the lower the first weight is relative to the second weight.

4. The method according to claim 3, further comprising: obtaining a measure of the amount of noise in the stored set of pixel values, The higher the measure of the amount of noise in the stored set of pixel values, the lower the first weight is relative to the second weight.

5. The method according to claim 1, further comprising: obtaining a measure of the amount of noise in the stored set of pixel values, Wherein determining a new set of pixel values ​​for storage in the buffer is further based on a measure of the amount of noise in the stored set of pixel values.

6. The method according to claim 1, wherein: The buffer is an infinite impulse response (IIR) buffer, and wherein the filtering algorithm for reducing temporal noise is IIR filtering.

7. The method according to claim 1, wherein: Obtaining the stored set of pixel values ​​from the buffer comprises: Retrieving from the buffer a compressed stored set of pixel values ​​for the set of one or more pixels, the set of one or more pixels being associated with a previous video frame in the sequence of video frames, wherein the compressed stored set of pixel values ​​has been filtered using a filtering algorithm for reducing temporal noise; and The compressed and stored pixel value set is decompressed to obtain the stored pixel value set.

8. A non-transitory computer-readable storage medium having stored thereon instructions which, when executed in a video processing system having processing capabilities, cause the video processing system to perform the method of claim 1.

9. A video processing system configured to update a buffer, the video processing system comprising circuitry configured to: a first obtaining function configured to obtain from the buffer a stored set of pixel values ​​for a set of one or more pixels, the set of one or more pixels being associated with a previous video frame in the sequence of video frames, wherein The stored set of pixel values ​​has been filtered using a filtering algorithm for reducing temporal noise; A third obtaining function is configured to obtain a current set of pixel values ​​for the set of one or more pixels in a current video frame from a sensor; a first determination function configured to determine, based on said stored set of pixel values ​​and said current set of pixel values, a new set of pixel values ​​for said set of one or more pixels for storage in said buffer using said filtering algorithm for reducing temporal noise; a second determination function configured to determine a measure of an amount of noise in said new set of pixel values; a quantization function configured to quantize the new set of pixel values ​​based on a measure of the amount of noise in the new set of pixel values, wherein the higher the measure of the amount of noise in the new set of pixel values, the higher the quantization performed; A compression function configured to compress the quantized new pixel value set; and An update function is configured to update the buffer with the new set of compressed quantized pixel values.

10. The video processing system according to claim 9, wherein: The circuit is further configured to perform: a third determination function configured to determine a measure of the probability that a change in said current set of pixel values ​​relative to said stored set of pixel values ​​is due to a change in the scene, Wherein, in the first determination function, the new set of pixel values ​​for storage in the buffer is determined further based on a measure of the probability that a change in the current set of pixel values ​​relative to the stored set of pixel values ​​is due to a change in the scene.

11. The video processing system according to claim 9, wherein: The first determination function is further configured to determine a first weight by which the stored set of pixel values ​​should be multiplied and a second weight by which the current set of pixel values ​​should be multiplied to generate a new set of pixel values, wherein the higher the probability that a change in the current set of pixel values ​​relative to the stored set of pixel values ​​is due to a change in the scene, the lower the first weight is relative to the second weight.

12. The video processing system according to claim 11, further comprising: a second obtaining function configured to obtain a measure of the amount of noise in said stored set of pixel values, The higher the measure of the amount of noise in the stored set of pixel values, the lower the first weight is relative to the second weight.

13. The video processing system according to claim 9, further comprising: a second obtaining function configured to obtain a measure of the amount of noise in said stored set of pixel values, Therein, in the first determining function, the new set of pixel values ​​for storing in the buffer is determined further based on a measure of the amount of noise in the stored set of pixel values.

14. The video processing system according to claim 8, wherein: The buffer is an infinite impulse response (IIR) buffer, and wherein the filtering algorithm for reducing temporal noise is IIR filtering.

15. The video processing system according to claim 9, wherein: The first obtaining function is configured to: Retrieving from the buffer a compressed stored set of pixel values ​​for the set of one or more pixels, the set of one or more pixels being associated with a previous video frame in the sequence of video frames, wherein the compressed stored set of pixel values ​​has been filtered using a filtering algorithm for reducing temporal noise; and The compressed and stored pixel value set is decompressed to obtain the stored pixel value set.

Citation Information

Patent Citations

  • Noise reduction systems and methods

    US7711044B1