WO2022178786A1 - Image processor and image processing device - Google Patents

Image processor and image processing device Download PDF

Info

Publication number
WO2022178786A1
WO2022178786A1 PCT/CN2021/077975 CN2021077975W WO2022178786A1 WO 2022178786 A1 WO2022178786 A1 WO 2022178786A1 CN 2021077975 W CN2021077975 W CN 2021077975W WO 2022178786 A1 WO2022178786 A1 WO 2022178786A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
image
pixel
convolution
momentum
Prior art date
Application number
PCT/CN2021/077975
Other languages
French (fr)
Chinese (zh)
Inventor
董镇江
谢环
蒋东龙
曾奋元
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN202180081230.3A priority Critical patent/CN116671096A/en
Priority to PCT/CN2021/077975 priority patent/WO2022178786A1/en
Publication of WO2022178786A1 publication Critical patent/WO2022178786A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/60Noise processing, e.g. detecting, correcting, reducing or removing noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/21Circuitry for suppressing or minimising disturbance, e.g. moiré or halo

Definitions

  • the present application relates to the technical field of image processing, and in particular, to an image processor and an image processing device.
  • Spatiotemporal variance-guided filtering is a denoising method that uses spatiotemporal reprojection and feature buffer-driven bilateral filtering to blur high variance regions. It is widely used in image processors (graphic processing unit, GPU) fiber tracing (ray tracing, RT) noise reduction. Among them, the processing flow of SVGF mainly includes three steps, temporal pass processing, filter momentum pass processing and spatial pass processing, each step needs to perform a lot of calculations.
  • the SVGF method is usually implemented by a stream multiprocessor (SM) in the GPU based on software, and during specific implementation, the three threads running on the SM can execute the process in sequence.
  • the three steps of the SVGF, and the input data and output data for each of the three threads, are stored in buffers in the GPU coupled to the SM.
  • the buffer needs to have a large read and write bandwidth and a small read and write delay, that is, the method has high performance requirements on the GPU, for example, Taking an image with a resolution of 1080P processed by a desktop GPU as an example, its display frame rate can only reach about 30 frames per second (fps), while the performance of the GPU in most mobile terminals is only 1/ that of the desktop GPU. 10 or lower, so it cannot be used on devices with lower GPU performance.
  • the present application provides an image processor and an image processing device, which can be used to reduce the performance requirements of the image processor for SVGF processing of images, and at the same time improve the image processing rate.
  • an image processor includes an SVGF accelerator
  • the SVGF accelerator includes: a temporal processing engine, configured to perform temporal filtering processing on the to-be-processed image according to a previous frame of the image to be processed , to obtain the first image, the parameter information of the pixels in the first image is the first parameter information
  • the momentum processing engine includes: a first buffer for buffering the first parameter information, such as buffering one or more parameters in the first image The first parameter information of each pixel point; the momentum calculation circuit is used to filter the momentum process on the first image according to the first parameter information, so as to obtain the second image, and the parameter information of the pixel point in the second image is the second parameter information
  • the spatial processing engine includes: a second buffer for buffering second parameter information, such as buffering the second parameter information of one or more pixels in the second image; The two images are subjected to spatial filtering processing to obtain the target image, and the parameter information of the pixel points in the target image is the target parameter information.
  • both the momentum processing engine and the spatial processing engine include their own buffers, so that when performing the corresponding filtering momentum processing and spatial filtering processing, the parameters of the pixels that need to be multiplexed in multiple consecutive processing processes can be changed.
  • the information is cached in the corresponding buffer, and by obtaining the parameter information of the pixel points obtained by the latest processing from the upper-level processing engine, the corresponding processing can be performed based on the cached parameter information and the obtained parameter information, so that the processing can be realized.
  • the data transmitted between the engines is minimal, thereby greatly reducing the delay of data transmission, improving the speed of image processing, and reducing the performance requirements of the image processor for SVGF processing of images.
  • the time-domain processing engine includes a time-domain calculation circuit
  • the time-domain calculation circuit includes: an information acquisition circuit configured to obtain, for the first pixel point in the image to be processed, The first pixel point corresponds to the historical parameter information of a plurality of pixel points in the first preset window where the historical pixel point in the previous frame of image is located, and the historical parameter information includes geometric coordinate information, historical brightness information and historical momentum information , the first pixel is any pixel in the to-be-processed image;
  • the signal generation circuit is used to generate a control signal according to the geometric coordinate information of the plurality of pixels;
  • the first convolution circuit is used when the control signal is valid When determining the first brightness information and the first momentum information of the first pixel in the first image according to the historical brightness information and historical momentum information of the plurality of pixels, respectively; the first convolution circuit is also used for the control signal When invalid, the first brightness information and the first momentum information of the first pixel in the first image are respectively determined according to the preset
  • a momentum information determines the first variance.
  • a simple and effective circuit structure of a time-domain calculation circuit is provided, through which the time-domain filtering processing can be quickly performed on the pixels in the image to be processed pixel by pixel, and the time-domain filtering processing can be performed quickly.
  • the historical parameter information of the historical pixel points in the continuous multiple processing processes can be reused, so that the speed of the time domain filtering processing can be improved.
  • the signal generation circuit is specifically configured to: when the geometric coordinate information of at least one pixel point in the preset area exists among the plurality of pixel points in the first preset window and satisfies the specified A valid control signal is generated when the coordinate range is within the specified coordinate range, and the specified coordinate range is related to the geometric coordinate information of the first pixel point; when the geometric coordinate information of multiple pixel points in the first preset window does not satisfy the specified coordinate range, an invalid control signal is generated. control information.
  • a method in which the signal generation circuit generates a control signal according to the geometric coordinate information of a plurality of pixel points in the first preset window is provided, which can effectively avoid the geometric coordinate information of the first pixel point. The influence of pixels with large gaps on the temporal filtering processing of the first pixel.
  • the first convolution circuit includes: a first luminance convolution circuit, configured to use a first convolution weight of pixels in the preset area when the control signal is valid and brightness information, to determine the first brightness information of the first pixel in the first image; the first momentum convolution circuit is used for when the control signal is valid, according to the first convolution weight and sum of the pixels in the preset area The momentum information is used to determine the first momentum information of the first pixel in the first image; the first variance calculation circuit is used to determine the first variance of the first pixel according to the first momentum information.
  • a simple and effective circuit structure of the first convolution circuit is provided, and the first luminance convolution circuit and the first momentum convolution circuit in the circuit structure can be executed simultaneously, so as to quickly pass the convolution circuit.
  • the product operation determines the first brightness information and the first momentum information of the pixel, and the first variance calculation circuit can determine the first variance based on the determined first momentum information, thereby improving the first brightness of the pixel determined by the first convolution circuit. information, the first momentum information, and the rate of the first variance.
  • the first parameter information of any pixel in the image to be processed can be quickly determined.
  • the time domain calculation circuit further includes: a first weight calculation circuit, configured to determine a first convolution weight of each pixel in the preset area.
  • the time domain calculation circuit may further include a first weight calculation circuit for determining the first convolution weight of each pixel in the preset area, thereby improving the first convolution weight of each pixel. Accuracy of convolution weights.
  • the historical parameter information further includes the historical calculation times of the historical pixel point
  • the time domain calculation circuit further includes: an update circuit configured to, when the control signal is valid, update the The value obtained by adding one to the historical calculation times of the historical pixel point is determined as the historical calculation times of the first pixel point; the update circuit is also used to determine the historical calculation times of the first pixel point to be 0 when the control signal is invalid.
  • the time domain calculation circuit may further include an update circuit for determining the historical calculation times of the first pixel point, so as to facilitate the rapid selection of the pixel point in the second image in the subsequent filtering momentum processing process. Two parameter information.
  • the time domain processing engine further includes: a third buffer for buffering the historical parameter information and/or the initial parameter information of the first pixel in the image to be processed , the initial parameter information includes at least one of the following: initial luminance information, initial momentum information, motion vector, and geometric coordinate information.
  • the third buffer can be used to store the first parameter information of the pixels that need to be multiplexed in multiple consecutive processing processes, so that the delay of data transmission can be greatly reduced, thereby improving the image processing rate.
  • the first parameter information includes first luminance information, first momentum information, and first variance
  • the momentum calculation circuit includes: a second convolution circuit, configured for the first For the first pixel in the image, according to the first brightness information and the first momentum information of the plurality of pixels in the second preset window where the first pixel is located, the convolutional brightness information and the volume of the first pixel are determined.
  • the second convolution circuit is also used to determine the convolution variance of the first pixel point according to the convolution momentum information;
  • the selection circuit is used to select the first brightness information and the first variance as the first pixel point respectively
  • the second brightness information and the second variance in the second image, or the convolution brightness information and the convolution variance are selected as the second brightness information and the second variance of the first pixel in the second image, respectively.
  • the circuit structure can quickly perform the filtering momentum processing on the pixels in the first image pixel by pixel, and in the filtering momentum processing process, it can be
  • the first parameter information of the pixels stored in the first buffer is multiplexed, so that the speed of filtering momentum processing can be improved.
  • the second convolution circuit includes: a second luminance convolution circuit, configured to use the second convolution weight of the plurality of pixel points and the first convolution weight of the plurality of pixel points Convolution operation is performed on the luminance information to obtain the convolution luminance information of the first pixel; the second momentum convolution circuit is used for the second convolution weight of the plurality of pixels and the first momentum of the plurality of pixels. A convolution operation is performed on the information to obtain the convolution momentum information of the first pixel point; the second variance calculation circuit is used to determine the convolution variance of the first pixel point according to the convolution momentum information.
  • a simple and effective circuit structure of the second convolution circuit is provided, and the second luminance convolution circuit and the second momentum convolution circuit in the circuit structure can be executed simultaneously, so as to quickly pass the volume
  • the product operation determines the convolution brightness information and convolution momentum information of the pixels in the first image
  • the second variance calculation circuit can determine the convolution variance based on the determined convolution momentum information, thereby improving the second convolution point circuit.
  • the rate at which to convolve luminance information, convolve momentum information, and convolve variance is provided, and the second luminance convolution circuit and the second momentum convolution circuit in the circuit structure can be executed simultaneously, so as to quickly pass the volume
  • the product operation determines the convolution brightness information and convolution momentum information of the pixels in the first image
  • the second variance calculation circuit can determine the convolution variance based on the determined convolution momentum information, thereby improving the second convolution point circuit.
  • the rate at which to convolve luminance information, convolve momentum information, and convolve variance is provided, and the second luminance con
  • the momentum calculation circuit further includes: a second weight calculation circuit, configured to determine a second convolution weight of each pixel point in the plurality of pixel points.
  • the dynamic calculation circuit may further include a second convolution weight for determining each pixel point in the plurality of pixel points, thereby improving the accuracy of the second convolution weight for each pixel point.
  • the first parameter information further includes the number of historical calculations
  • the selection circuit is specifically configured to: when the number of historical calculations of the first pixel is greater than or equal to a preset number of times, select the first pixel.
  • the brightness information and the first variance are respectively used as the second brightness information and the second variance of the first pixel in the second image; when the number of historical calculations of the first pixel is less than the preset number of times, select the convolution brightness information and the convolution variance are respectively used as the second luminance information, the second momentum information and the second variance of the first pixel in the second image.
  • the spatial domain calculation circuit includes: a convolution conversion circuit, configured to respectively extract the first pixel point in the second image within each wavelet transform window of the plurality of wavelet transform windows
  • the second parameter information of a plurality of valid pixel points, the plurality of wavelet transform windows are obtained through the wavelet transform of a preset number of steps, the second parameter information includes the second brightness information and the second variance
  • the third weight calculation circuit For each wavelet transform window in the multiple wavelet transform windows, according to the second variance of the multiple effective pixel points in the wavelet transform window, determine the third convolution weight of the multiple effective pixel points; the third volume
  • the product circuit is used for, for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution weight of the plurality of effective pixels in the wavelet transform window and the second brightness information of the plurality of effective pixels and the sum
  • the second variance is used to determine the third brightness information and the third variance of the first pixel respectively
  • the third convolution circuit is also used for the third brightness information
  • the circuit structure can quickly perform spatial filtering processing on the pixels in the second image pixel by pixel, and in the process of spatial filtering processing, it can be The second parameter information of the pixel points stored in the second buffer is multiplexed, so that the speed of spatial filtering processing can be improved.
  • the third weight calculation circuit is specifically configured to: for the plurality of valid pixels, according to the second variance and the second brightness of the plurality of valid pixels in the second image
  • the information and the geometric coordinate information respectively determine the depth weight, normal vector weight and brightness weight; according to the depth weight, normal vector weight and brightness weight of the multiple valid pixels, determine the third convolution weight of the multiple valid pixels.
  • the third weight calculation circuit can quickly and effectively determine the number of effective pixels in the plurality of effective pixels according to the second variance, the second brightness information and the geometric coordinate information in the second parameter information of the multiple effective pixels.
  • the third convolution weight for each valid pixel is specifically configured to: for the plurality of valid pixels, according to the second variance and the second brightness of the plurality of valid pixels in the second image
  • the information and the geometric coordinate information respectively determine the depth weight, normal vector weight and brightness weight; according to the depth weight, normal vector weight and brightness weight of the multiple valid pixels, determine the third convolution weight of the multiple valid pixels.
  • the third convolution circuit includes: a third luminance convolution circuit, configured to A convolution operation is performed on the second luminance information to obtain the third luminance information of the first pixel; the third difference calculation circuit is used for calculating the third convolution weight of the plurality of valid pixels and the The second variance determines the third variance of the first pixel point.
  • a simple and effective circuit structure of the third convolution circuit is provided, and the third luminance convolution circuit in the circuit structure can be used to quickly determine the third value of the first pixel point through the convolution operation.
  • the luminance information, the second variance calculation circuit can be used to quickly determine the third variance of the first pixel point.
  • the first buffer stores a first preset number in the first image that is required by the momentum calculation circuit to filter the momentum processing of the pixels in the first image.
  • the first parameter information of the pixel point, the first preset number is the square of the size of the second preset window; the second buffer stores the space domain calculation circuit in the second image.
  • the second parameter information of the second preset number of pixels in the second image, the second preset number is the square of (Size_Window3+(Step-1) ⁇ 2), and Size_Window3 represents the size of the initial convolution window of the wavelet transform, Step represents the number of wavelet transform steps.
  • the first buffer stores a third preset number in the first image that is required by the momentum calculation circuit to filter the momentum processing of the pixels in the first image.
  • the first parameter information of the pixel point, the first parameter information of the third preset number of pixels, the third preset number can be [Width ⁇ (Size_Window2 ⁇ Step-1)+Size_Window2], Width represents the width of the image to be processed ;
  • the second buffer is stored with the second parameter information of the fourth preset number of pixels in the second image required when the spatial calculation circuit performs the spatial momentum processing on the pixels in the second image, the fourth preset The number is [Width ⁇ (Size_Window3 ⁇ Step-1)+Size_Window3 ⁇ Step].
  • an image processing device in a second aspect, includes an image processor, the image processor includes a stream multiprocessor, and the first aspect or any possible implementation manner of the first aspect is provided.
  • SVGF accelerator in an image processor.
  • any image processing device provided above includes all the contents of the image processor provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects of the image processor provided above. , and will not be repeated here.
  • FIG. 1 is a schematic structural diagram of an image processing device according to an embodiment of the present application.
  • FIG. 2 is a schematic structural diagram of a GPU according to an embodiment of the present application.
  • FIG. 3 is a schematic diagram of processing multiple image blocks by multiple processing cores of a GPU according to an embodiment of the present application
  • FIG. 4 is a schematic structural diagram of an SVGF accelerator in a GPU provided by an embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of a time domain calculation circuit provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a plurality of preset regions in a first preset window provided by an embodiment of the present application
  • FIG. 7 is a schematic structural diagram of a time-domain processing engine provided by an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of a momentum calculation circuit provided by an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of a momentum processing engine according to an embodiment of the present application.
  • FIG. 10 is a schematic diagram of a plurality of wavelet transform windows provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of an airspace calculation circuit provided by an embodiment of the present application.
  • FIG. 12 is a schematic structural diagram of an airspace processing engine provided by an embodiment of the present application.
  • FIG. 13 is a schematic diagram of a caching method provided by an embodiment of the present application.
  • FIG. 14 is a schematic diagram of another caching mode provided by an embodiment of the present application.
  • FIG. 15 is a schematic flowchart of an SVGF processing provided by an embodiment of the present application.
  • 16 is a schematic diagram of a first preset window, a second preset window, and a wavelet transform window in the process of pixel-by-pixel processing of two adjacent pixels by three processing engines in an SVGF accelerator provided by an embodiment of the present application.
  • circuits or other components may be described or referred to as “for” performing one or more tasks.
  • “for” is used to imply structure by indicating that the circuit/component includes structure (eg, circuitry) that performs one or more tasks during operation.
  • the specified circuit/component may be said to be used to perform the task even when the specified circuit/component is not currently operational (eg, not turned on).
  • Circuits/components used with the phrase “for” include hardware, such as circuits that perform operations, and the like.
  • At least one (a) of a, b or c may represent: a, b, c, a and b, a and c, b and c or a, b and c, where a, b and c can be It can be single or multiple.
  • the words “first” and “second” are used to distinguish objects with similar names or functions or functions. Those skilled in the art can understand that the words “first” and “second” do not equate quantity. and the order of execution.
  • the term “coupled” is used to denote electrical connection, including direct connection through wires or terminals or indirect connection through other devices. Therefore “coupling” should be regarded as an electronic communication connection in a broad sense.
  • the technical solution of the present application can be applied to an image processing device with an image processor (graphics processing unit, GPU).
  • the image processing device can be a mobile phone, a tablet computer, a computer, a notebook computer, a video camera, a camera, a wearable device, an in-vehicle device (for example, a car, a bicycle, an electric vehicle, an airplane, a ship, a train, a high-speed rail, etc.), a virtual reality (virtual reality) reality, VR) devices, augmented reality (AR) devices, or intelligent robots, etc.
  • VR virtual reality
  • AR augmented reality
  • FIG. 1 is a schematic structural diagram of an image processing device provided by an embodiment of the application.
  • the device is illustrated by taking a mobile phone as an example.
  • the device may include: a memory 101 , a processor 102 , a sensor component 103 , a multimedia component 104 , and an audio component 105 and power supply assembly 106, etc.
  • the memory 101 can be used to store data, software programs and modules; it mainly includes a stored program area and a stored data area, wherein the stored program area can store an operating system, an application program required for at least one function, such as a sound playback function, an image playback function, etc. ;
  • the storage data area can store data created according to the use of the device, such as audio data, image data, phone book, etc.
  • the device may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device.
  • the memory 101 may include one or more storage devices, and the one or more storage devices may be partially or fully integrated in the processor 102.
  • the memory 101 includes a double data rate (DDR) ) memory (abbreviated as DDR), which may be integrated in the processor 102 .
  • DDR double data rate
  • the processor 102 is the control center of the device, using various interfaces and lines to connect various parts of the entire device, by running or executing the software programs and/or modules stored in the memory 101, and calling the data stored in the memory 101, Perform various functions of the device and process data to monitor the device as a whole.
  • the processor 102 may include one or more processing units.
  • the processor 102 may include a central processing unit (CPU) and a graphics processor (graphic processing unit, GPU).
  • the CPU mainly processes the operating system , user interface and applications, etc.
  • GPU is a processor specially designed to process images.
  • the processor 102 may further include other hardware circuits or accelerators, such as field programmable gate arrays or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof, which is not specifically limited in this embodiment of the present application.
  • the Sensor assembly 103 includes one or more sensors for providing status assessments of various aspects of the device.
  • the sensor component 103 may include a light sensor for detecting the distance between an external object and the device, or used in imaging applications, that is, as an integral part of a camera or a camera.
  • the sensor component 103 may also include an acceleration sensor, a gyroscope sensor, a magnetic sensor, a pressure sensor or a temperature sensor, and the acceleration/deceleration, orientation, open/closed state of the device, relative positioning of the components can be detected through the sensor component 103, or temperature changes of the device, etc.
  • the multimedia component 104 provides an output interface screen between the device and the user, the screen may be a touch panel, and when the screen is a touch panel, the screen may be implemented as a touch screen to receive input signals from the user.
  • the touch panel includes one or more touch sensors to sense touch, swipe, and gestures on the touch panel. The touch sensor may not only sense the boundaries of a touch or swipe action, but also detect the duration and pressure associated with the touch or swipe action.
  • the multimedia component 104 further includes at least one camera, for example, the multimedia component 104 includes a front camera and/or a rear camera. When the device is in an operating mode, such as a shooting mode or a video mode, the front camera and/or the rear camera can receive external multimedia data.
  • Each of the front and rear cameras can be a fixed optical lens system or have focal length and optical zoom capability.
  • Audio component 105 may provide an audio interface between the user and the device, for example, audio component 105 may include audio circuitry, speakers, and a microphone.
  • the audio circuit can convert the received audio data into an electrical signal and transmit it to the speaker, which is converted into a sound signal for output; on the other hand, the microphone converts the collected sound signal into an electrical signal, which is received by the audio circuit and converted into audio data, and then output the audio data for sending, for example, to another such device, or output the audio data to the processor 102 for further processing.
  • Power supply assembly 106 is used to provide power to the various components of the device, and power supply assembly 106 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device.
  • the device may further include a wireless fidelity (wireless fidelity, WiFi) module, a Bluetooth module, and the like, which are not described herein again in this embodiment of the present application.
  • a wireless fidelity wireless fidelity, WiFi
  • a Bluetooth module and the like, which are not described herein again in this embodiment of the present application.
  • the structure of the device shown in FIG. 1 does not constitute a limitation to the device, and the device may include more or less components than the one shown, or combine some components, or different Component placement.
  • FIG. 2 is a schematic structural diagram of an image processor GPU according to an embodiment of the present application.
  • the GPU may include: N processing cores (cores), which are respectively represented as core1 to coreN, where N is a positive integer.
  • each of the N processing cores may include a stream multiprocessor (SM) 201, a spatiotemporal variance-guided filtering (SVGF) accelerator 202, and a buffer 203, the SM 201 and the SVGF accelerator 202 may share the buffer 203, and the SVGF accelerator 202 may also be referred to as an SVGF processor.
  • SM stream multiprocessor
  • SVGF spatiotemporal variance-guided filtering
  • the SM 201 is a general-purpose processor in the processing core of the GPU
  • the SVGF accelerator 202 is a dedicated processor in the processing core of the GPU for executing the SVGF method
  • the SM 201 and the SVGF accelerator 202 can share the buffer 203.
  • the GPU can also be coupled with the memory in the image processing device where the GPU is located, and the memory can be used to store the image to be processed, as well as the relevant data of the SM 201 and the SVGF accelerator 202 in the image processing process, etc.
  • the memory includes DDR
  • the GPU is coupled with the DDR as an example for description.
  • the N processing cores can be used to process different images at the same time, and can also be used to process different image tiles (tiles) of the same image at the same time.
  • the image to be processed may be divided into multiple image blocks.
  • the size of the multiple image blocks may be the same
  • the number of the multiple image blocks may be less than or equal to N
  • the multiple image blocks may be processed by different processing cores in the N processing cores respectively.
  • the SM 201 in the processing core can be used to perform general processing on the image block.
  • the SM 201 can be used to obtain parameter information of pixels in the image block, etc.
  • the SVGF accelerator 202 can be used for SVGF processing of the image block.
  • the process that the N processing cores are used to process different images at the same time is similar to the process that the N processing cores are used to process different image blocks of the same image at the same time.
  • This application mainly relates to the relevant description of the SVGF accelerator 202 performing SVGF processing on images or image blocks through hardware implementation. The following takes one processing core in the N processing cores as an example to describe the specific structure of the SVGF accelerator 202 in the processing core. Detailed Description.
  • Temporal filtering processing refers to the method of filtering the next frame image by using the previous frame image in multiple consecutive frame images. For example, performing temporal filtering processing on a pixel may refer to using the pixel in the previous frame of image and multiple surrounding pixels to filter the pixel in the next frame of image.
  • Filter momentum processing It refers to the process of selectively using the pixel and surrounding multiple pixels in the same frame image to filter the pixel according to the number of temporal filtering of a pixel (also known as the number of historical calculations). Way. For example, filtering momentum processing on a pixel may mean that when the number of temporal filtering of the pixel is greater than a preset value, the pixel and surrounding multiple pixels in the same frame image are used to filter the pixel. .
  • Spatial filtering processing refers to a method of filtering a pixel point and multiple surrounding pixels in the same frame image. For example, performing spatial filtering processing on a pixel may refer to using the pixel and multiple pixels in different surrounding ranges to perform multiple filtering on the pixel respectively.
  • FIG. 4 is a schematic structural diagram of an SVGF accelerator in a GPU provided by an embodiment of the present application.
  • the SVGF accelerator includes: a temporal processing engine (TPE) 1, a momentum processing engine (moment processing engine, MPE) 2 and a spatial domain A processing engine (spatial processing engine, SPE) 3, MPE2 includes a first buffer 21 and a momentum calculation circuit 22, and SPE 3 includes a second buffer 31 and a spatial calculation circuit 32.
  • TPE temporal processing engine
  • MPE momentum processing engine
  • SPE spatial domain
  • MPE2 includes a first buffer 21 and a momentum calculation circuit 22
  • SPE 3 includes a second buffer 31 and a spatial calculation circuit 32.
  • the TPE 1 may be used to perform temporal filtering processing on the to-be-processed image according to the previous frame of the image to obtain a first image
  • the parameter information of the pixels in the first image is the first parameter information
  • TPE1 can also be used to send the first parameter information to MPE 2
  • the first buffer 21 in MPE 2 can be used to buffer the first parameter information, for example, the first buffer 21 can be used to buffer one or more in the first image
  • the momentum calculation circuit 22 in the MPE 2 can be used to filter the momentum processing of the first image according to the first parameter information to obtain the second image
  • the parameter information of the pixel in the second image is the second parameter
  • the momentum calculation circuit 22 can also be used to send the second parameter information to the SPE 3
  • the second buffer 31 in the SPE 3 can be used to buffer the second parameter information, for example, the second buffer 31 can be used to buffer the second image
  • the spatial calculation circuit 32 is used to perform spatial
  • the TPE 1 may include a time domain calculation circuit 11 and a third buffer 12; the time domain calculation circuit 11 is specifically configured to perform a time domain filtering process on the to-be-processed image according to the previous frame of the image to be processed to obtain The first image; the third buffer 12 can be used to buffer the parameter information of the pixels in the previous frame image, and the parameter information of the pixels in the previous frame image can be called historical parameter information, that is, the third buffer 12 can be used for Cache the historical parameter information of one or more pixels in the previous frame of image; and/or, the third buffer 12 can also be used to cache the parameter information of the pixels in the image to be processed, the parameter information of the pixels in the image to be processed
  • the parameter information may be referred to as initial parameter information, that is, the third buffer 12 may also be used to buffer the initial parameter information of one or more pixels in the image to be processed.
  • the to-be-processed image and the previous frame of image may be complete two frames of images, or may be two corresponding image blocks in the two frames of images.
  • the size of one frame of image is 1920 ⁇ 1080
  • the size of the image to be processed and the previous frame of image may both be 1920 ⁇ 1080
  • the size of one frame of image is 1920 ⁇ 1080 and one frame of image may be divided into
  • the size of each image block is 640 ⁇ 540
  • the size of the image to be processed and the image of the previous frame can both be 640 ⁇ 540.
  • the parameter information of a pixel may include one or more of the following parameters: geometric coordinate information, luminance (luminance) information, momentum (moment) information, motion vector (motion vector), variance, historical calculation times; the geometric
  • the coordinate information may include normal, depth, and coordinate. That is, any parameter information among the initial parameter information, the historical parameter information, and the first parameter information may include one or more of the above parameters.
  • the initial parameter information of the pixels in the image to be processed may be determined by the SM in the GPU, and the historical parameter information of the pixels in the previous frame of the image may be processed by the SVGF accelerator in the previous frame. obtained after the image.
  • the temporal computing circuit 11 may perform pixel-by-pixel processing on the pixel points in the to-be-processed image in a row-by-row or column-by-column sequence when performing temporal filter processing on the to-be-processed image.
  • the momentum calculation circuit 22 performs filtering momentum processing on the first image
  • the spatial domain computing circuit 32 performs spatial filtering processing on the second image
  • the first image and the first image can also be processed in a row-by-row or column-by-column order.
  • the pixels in the two images are processed pixel by pixel.
  • the time domain calculation circuit 11 may include: an information acquisition circuit 111 , a signal generation circuit 112 and a first convolution circuit 113 .
  • the relevant descriptions about the information acquisition circuit 111 , the signal generation circuit 112 , and the first convolution circuit 113 are as follows.
  • the information obtaining circuit 111 is configured to: for the first pixel in the to-be-processed image, obtain the first pre-prediction where the first pixel corresponds to the historical pixel in the previous frame of image. Assuming the historical parameter information of multiple pixels in the window, the first pixel is any pixel in the image to be processed.
  • the initial parameter information of the first pixel point may include a first coordinate position, a first motion vector, initial brightness information and initial momentum information.
  • the first preset window is a preset convolution window used for performing temporal filtering processing on the pixels in the image to be processed.
  • the first preset window is sliding, so that for different first pixels, many pixels in the first preset window are slid. pixels are also different.
  • the information acquisition circuit 111 may determine, according to the first coordinate position of the first pixel and the first motion vector, the historical pixel corresponding to the first pixel in the previous frame of image, that is, determine the historical coordinate of the historical pixel position; the information acquisition circuit 111 may also acquire historical parameter information of a plurality of pixel points within the first preset window where the historical pixel point is located based on the historical coordinate position.
  • the information acquisition circuit 111 uses the historical coordinate position of the historical pixel point as the center of the first preset window, and acquires historical parameter information of a plurality of pixel points in the first preset window.
  • the first preset window is a 3 ⁇ 3 window
  • the historical coordinate position is (2, 2)
  • the multiple pixels in the first preset window may be the coordinate positions in the previous frame of image: Pixels from (1,1) to (3,3).
  • the signal generating circuit 112 is configured to: generate a control signal according to the geometric coordinate information of the plurality of pixel points.
  • the signal generation circuit 112 is specifically configured to: generate an effective control signal when the geometric coordinate information of at least one pixel in the preset area among the plurality of pixels in the first preset window satisfies the specified coordinate range,
  • the effective control signal may be high level, and the specified coordinate range is related to the geometric coordinate information of the first pixel; when the geometric coordinate information of multiple pixels in the first preset window does not meet the specified coordinate range Invalid control information is generated, for example, invalid control information may be low.
  • the first preset window may be divided into multiple preset regions, and the shapes and sizes of the multiple preset regions may be different.
  • the first preset window is a 3 ⁇ 3 window
  • the multiple preset areas may include a first preset area and a second preset area
  • the first preset area may be “field”
  • the second preset area may be an "L"-shaped area.
  • the geometric coordinate information of each pixel in the plurality of pixels may include a historical normal, a historical depth, and a historical coordinate position; the geometric coordinate information of the first pixel may include a first normal, a first depth, and a first Coordinate location.
  • the above-mentioned specified coordinate range may specifically include: the historical coordinate position is within the length and width of the previous frame of image, the difference between the first depth and the historical depth is less than the preset ratio, the first normal direction and the historical method. The difference between the directions is less than the preset difference.
  • the plurality of preset regions included in the first preset window may be configured with priorities, and the signal generation circuit 112 may perform processing in order of priority from high to low. If the geometric coordinate information of at least one pixel in a certain preset area satisfies the specified coordinate range, for example, the historical coordinate position of the at least one pixel is within the length and width of the previous frame of image, the first depth and the at least one If the difference between the historical depths of the pixels is smaller than the preset ratio, and the difference between the first normal and the historical normal of the at least one pixel is smaller than the preset difference, then the signal generation circuit 112 generates an effective control signal.
  • the specified coordinate range for example, the historical coordinate position of the at least one pixel is within the length and width of the previous frame of image
  • the first depth and the at least one If the difference between the historical depths of the pixels is smaller than the preset ratio, and the difference between the first normal and the historical normal of the at least one pixel is smaller than the preset difference, then the signal generation circuit 11
  • the signal generation circuit 112 may repeat the above operations according to the pixel points in the preset area of the next priority. If none of the pixels in the multiple preset regions included in the first preset window satisfy the specified coordinate range, the signal generating circuit 112 may generate an invalid control signal. For convenience of description, if the geometric coordinate information of at least one pixel in a certain preset area in the plurality of preset areas satisfies the specified coordinate range, the preset area becomes the target preset area.
  • the first convolution circuit 113 is configured to: when the control signal is valid, determine whether the first pixel is in the first The first brightness information and the first momentum information in an image; when the control signal is invalid, the first brightness information and the first momentum of the first pixel in the first image are respectively determined according to the preset brightness information and the preset momentum information information; the first variance is determined according to the first momentum information.
  • the first convolution circuit 113 may include: a first luminance convolution circuit, a first momentum convolution circuit, and a first variance calculation circuit.
  • the first brightness convolution circuit is used for: when the control signal is valid, the convolution operation is performed based on the historical brightness information of the pixel points in the target preset area to obtain the first brightness information of the first pixel point; When invalid, the preset brightness information is determined as the first brightness information of the first pixel, for example, the preset brightness information may be 0; the first brightness information and the historical brightness information of the pixels in the target preset area are combined.
  • the luminance information obtained after alpha blending is determined as the first luminance information of the first pixel in the first image.
  • the first momentum convolution circuit is used to: perform a convolution operation based on the historical momentum information of the pixel points in the target preset area when the control signal is valid, so as to obtain the first momentum information of the first pixel point in the first image
  • the preset momentum information is determined as the first momentum information of the first pixel, for example, the preset momentum information can be 0; the first momentum information and the pixel in the target preset area are determined
  • the momentum information obtained after performing alpha blending on the historical momentum information of is determined as the first momentum information of the first pixel in the first image.
  • the first variance calculation circuit is configured to determine the first variance of the first pixel in the first image according to the first momentum information.
  • the target preset area is a preset area of a "field" shape including four pixels, and each of the four pixels corresponds to a first convolution weight.
  • the first luminance convolution circuit can perform a convolution operation according to the first convolution weight of the four pixels and the historical luminance information of the four pixels, and combine the luminance information obtained by the convolution operation with the four pixels
  • the historical brightness information of the point is alpha blended to obtain the first brightness information of the first pixel in the first image; the first momentum convolution circuit can be based on the first convolution weight of the four pixels and the four pixels.
  • the historical momentum information of the point is subjected to a convolution operation, and the momentum information obtained by the convolution operation is mixed with the momentum brightness information of the four pixels to obtain the first momentum information of the first pixel in the first image;
  • the first variance calculation circuit may determine the first variance according to the obtained first momentum information.
  • the first momentum information includes the momentum values of the red (red, R) channel and the green (green, G) channel.
  • the difference calculation circuit determines the first variance based on the momentum values of the R channel and the G channel.
  • the first convolution weights corresponding to the pixels in different preset areas among the multiple preset areas included in the first preset window may be different, and the first convolution weights may be configured or is obtained through calculation, and the specific value of the first convolution weight may be greater than or equal to 0 and less than or equal to 1.
  • the plurality of preset regions include a "Tian"-shaped preset region and an "L"-shaped preset region, and the first convolution weights of the pixels in the "Tian"-shaped preset region are obtained by calculation,
  • the first convolution weight of the pixels in the "L"-shaped preset area is configured (for example, the first convolution weight of each pixel may be configured as 1).
  • the time domain calculation circuit 11 may further include: a first weight calculation circuit 114 .
  • the first weight calculation circuit 114 is used for: according to the geometric coordinate information of each pixel in the target preset area, determine the normal weight, depth weight and brightness weight of the pixel; according to each pixel in the target preset area The point's normal weight, depth weight, and luminance weight determine the first convolution weight for that pixel.
  • the geometric coordinate information of the pixel may include historical coordinate position, historical normal and historical depth, and the pixel also includes historical brightness information, then the first weight calculation circuit
  • the normal weight of the pixel point can be determined according to the difference between the historical coordinate position and the historical normal direction between the pixel point and the historical pixel point corresponding to the first pixel point, according to the difference between the historical coordinate position and the historical depth.
  • the first weight calculation circuit can The normal weight of the pixel point, the depth weight and the brightness The weights are respectively multiplied by their respective preset proportions, and the sum of the products obtained by multiplying the three by their respective preset proportions is determined as the first convolution weight of the pixel.
  • the preset proportions may be preset, and the respective preset proportions of the normal weight, depth weight, and brightness weight may be the same or different, which are not specifically limited in this embodiment of the present application.
  • the time domain calculation circuit 11 may further include: an update circuit 115 .
  • the TPE1 includes: a time domain calculation circuit 11 and a third buffer 12, where the third buffer 12 can be used to buffer historical parameter information of multiple pixels in the first preset window.
  • the time domain calculation circuit 11 includes a signal acquisition circuit 111, a signal generation circuit 112, a first convolution circuit 113, a first weight calculation circuit 114 and an update circuit 115, and the first convolution circuit 113 includes a first luminance convolution circuit, a first momentum convolution circuit and a first variance calculation circuit.
  • the temporal filtering process may include: the signal acquisition circuit 111 acquires historical parameters of multiple pixels in the first preset window in the previous frame of image information; the signal generation circuit 112 can be used to generate a control signal according to the geometric coordinate information of the plurality of pixels; the first weight calculation circuit 114 is used to determine the first convolution weight (preconfigured or Obtained after calculation); the first brightness convolution circuit is used to determine the first brightness information of the first pixel in the first image according to the first convolution weight and historical brightness information of each pixel in the target preset area; A momentum convolution circuit is used to determine the first brightness information of the first pixel in the first image according to the first convolution weight and historical momentum information of each pixel in the target preset area; the first variance calculation circuit uses for determining the first variance according to the first momentum information; the updating circuit 115 is used for updating the historical calculation times of the first pixel point.
  • the signal acquisition circuit 111 acquires historical parameters of multiple pixels in the first preset window in the previous frame of image information
  • the signal generation circuit 112
  • the time domain calculation circuit 11 can send the first parameter information of the first pixel to the MPE 2, and the MPE 2
  • the first buffer 21 in can buffer the first parameter information of the first pixel.
  • the first parameter information of the first pixel point may include geometric coordinate information, first brightness information, first momentum information, first variance, and historical calculation times, and the like.
  • the momentum calculation circuit 22 may include: a second convolution circuit 221 and a selection circuit 222 .
  • the relevant descriptions about the second convolution circuit 221 and the selection circuit 222 are as follows.
  • the first pixel is any pixel in the first image
  • the second convolution circuit 221 is used for: according to the location of the first pixel Perform convolution operation on the first brightness information of multiple pixels in the second preset window to obtain the convolution brightness information of the first pixel;
  • the convolution operation is performed on the first momentum information of the pixel point to obtain the convolution momentum information of the first pixel point;
  • the convolution variance of the first pixel point is determined according to the convolution momentum information.
  • the second preset window is a preset convolution window used to perform filtering momentum processing on the pixels in the first image
  • the second preset window may be a 7 ⁇ 7 window.
  • the second preset window is sliding, so that for different first pixels, multiple Pixels are also different.
  • the second convolution circuit 221 may include: a second luminance convolution circuit, a second momentum convolution circuit, and a second variance calculation circuit.
  • the second luminance convolution circuit is configured to perform a convolution operation according to the convolution weights of the plurality of pixels in the second preset window and the first luminance information of the plurality of pixels, so as to obtain the convolution of the first pixel. Accumulate brightness information.
  • the second momentum convolution circuit is configured to perform a convolution operation according to the convolution weights of the plurality of pixels in the second preset window and the first momentum information of the plurality of pixels, so as to obtain the volume of the first pixel. Accumulated momentum information.
  • the second variance calculation circuit is configured to determine the convolution variance of the first pixel point according to the convolution momentum information.
  • the second luminance convolution circuit can be based on the 49 pixel points.
  • the convolution weight and the first brightness information of the 49 pixels are subjected to a convolution operation to obtain the convolution brightness information of the first pixel;
  • the second momentum convolution circuit can be based on the convolution weight of the 49 pixels and the The first momentum information of the 49 pixels is subjected to a convolution operation to obtain the convolution momentum information of the first pixel;
  • the second variance calculation circuit can determine the convolution variance of the first pixel according to the convolution momentum information, for example,
  • the convolution momentum information includes the momentum values of the R channel and the G channel, and the second variance calculation circuit determines the convolution variance of the first pixel point according to the momentum values of the R channel and the G channel.
  • the momentum calculation circuit 22 may further include: a second weight calculation circuit 223 .
  • the second weight calculation circuit 223 is configured to: determine the normal weight, depth weight and brightness weight of each pixel in the second preset window according to the geometric coordinate information of the pixel; The normal weight, depth weight and luminance weight of each pixel determine the second convolution weight of the pixel.
  • the geometric coordinate information of the pixel may include the first coordinate position, the first normal direction and the first depth, and the pixel also includes the first brightness information, then If the first coordinate position is within the length and width of the first image, the second weight calculation circuit can be used to: determine the normal direction of the pixel point according to the difference in the first normal direction between the pixel point and the first pixel point weight; determine the depth weight of the pixel point according to the difference of the first depth between the pixel point and the first pixel point; determine the depth of the pixel point according to the difference of the first brightness information between the pixel point and the first pixel point Brightness weight; multiply the normal weight, depth weight and brightness weight of the pixel by their respective preset proportions, and determine the sum of the products after multiplying the three by their respective preset proportions as the pixel's Second convolution weight.
  • the preset proportions may be preset, and the respective preset proportions of the normal weight, depth weight, and brightness weight may be the same or different, which are not specifically limited in this embodiment of the present application.
  • the second convolution weight of the pixel may be 0.
  • the first pixel is any pixel in the first image
  • the selection circuit 222 is configured to: select the first brightness information, the first momentum The information and the first variance are respectively used as the second brightness information, the second momentum information and the second variance of the first pixel in the second image; or the convolution brightness information, the convolution momentum information and the convolution variance are selected are respectively the second luminance information, the second momentum information and the second variance of the first pixel in the second image.
  • the first parameter information of the first pixel point further includes the number of historical calculations
  • the selection circuit 222 is specifically configured to: when the number of historical calculations of the first pixel point is greater than or equal to the preset number of times, select the first brightness information, the first The momentum information and the first variance are respectively used as the second brightness information, the second momentum information and the second variance of the first pixel in the second image; when the number of historical calculations of the first pixel is less than the preset number, select The convolution luminance information, the convolution momentum information and the convolution variance are respectively used as the second luminance information, the second momentum information and the second variance of the first pixel in the second image.
  • the above preset number of times may be preset, for example, the preset number of times may be 3 or 4, etc., which is not specifically limited in this embodiment of the present application.
  • FIG. 9 a schematic structural diagram of an MPE 2 provided in an embodiment of the present application.
  • the MPE 2 includes: a first buffer 21 and a momentum calculation circuit 22, and the first buffer 21 is used to buffer the first parameter information of the pixels.
  • the momentum calculation circuit 22 includes a second convolution circuit 221, a selection circuit 222 and a second weight calculation circuit 223, and the second convolution circuit 221 includes a second luminance convolution circuit, a second momentum convolution circuit and a second variance calculation circuit circuit.
  • the momentum filtering process may include: when acquiring the first parameter information of multiple pixels in the second preset window, the second weight calculation circuit 223 Determine the second convolution weight of each pixel in the plurality of pixels in the second preset window; the second luminance convolution circuit is based on the second convolution weight of the plurality of pixels in the second preset window and the first A luminance information performs a convolution operation to obtain the convolution luminance information of the first pixel point; the second momentum convolution circuit performs a convolution operation according to the second convolution weight of the plurality of pixels in the second preset window and the first luminance information The convolution operation is used to obtain the convolution brightness information of the first pixel point; the second variance calculation circuit is used to determine the convolution variance according to the convolution momentum information; the selection circuit 222 is used to select the first pixel point according to the historical calculation times of the first pixel point.
  • the momentum calculation circuit 22 can send the second parameter information of the first pixel to the SPE 3, and the first pixel in the SPE 3
  • the second buffer 31 can buffer the second parameter information of the first pixel.
  • the second parameter information of the first pixel point may include geometric coordinate information, second luminance information, second momentum information, second variance, and historical calculation times, and the like.
  • the spatial domain calculation circuit 32 when the spatial domain calculation circuit 32 performs spatial domain filtering processing on the second image according to the second parameter information, it can use wavelet transform to perform spatial domain filtering processing on the second image, that is, the spatial domain calculation circuit 32 can perform spatial domain filtering processing on the second image.
  • the same pixel point of , respectively, is subjected to multiple spatial filtering processing, and the size of the wavelet transform window used in each spatial filtering processing is obtained according to the wavelet transform. For example, as shown in FIG.
  • the number of steps of wavelet transform is 3 and the initial window is 3 ⁇ 3, then the spatial domain calculation circuit 32 needs to perform four spatial domain filtering processing on the same pixel in the second image, and the first spatial domain filtering process
  • the wavelet transform window during processing is 3 ⁇ 3, and the size of the wavelet transform window (which can also be called a hole convolution window at this time) during the second to fourth spatial filtering processing is 5 ⁇ 5, 7 ⁇ 7 and 9 respectively. ⁇ 9.
  • the spatial domain calculation circuit 32 may include: a convolution conversion circuit 321 , a third weight calculation circuit 322 and a third convolution circuit 323 .
  • the convolution conversion circuit 321 , the third weight calculation circuit 322 and the third convolution circuit 323 can all be used to perform the corresponding functions below.
  • the convolution conversion circuit 321 is configured to: extract the second parameters of multiple effective pixels in each of the multiple wavelet transform windows of the first pixel in the second image
  • the multiple wavelet transform windows are obtained through wavelet transform with a preset number of steps
  • the second parameter information may include second brightness information and second variance
  • the first pixel point may be any pixel point in the second image .
  • the first pixel point may be located at the center position of the wavelet transform window
  • the plurality of valid pixels may include pixels located at the center position of the wavelet transform window, the vertex positions of the four sides, and the center positions of the four sides. point. For example, as shown in FIG.
  • the convolution conversion circuit 321 is used to extract the second parameter information of multiple pixels (ie, effective pixels) in the wavelet transform window.
  • the second parameter information can be the second parameter information output by the MPE 2; when the wavelet transform window is 5 ⁇ 5, 7 ⁇ 7 or 9 ⁇ 9, the convolution conversion circuit 321 is used to extract the location within the wavelet transform window.
  • the second parameter information is the second parameter information obtained after the last spatial processing. Parameter information.
  • the first pixel is represented by a black box
  • the valid pixel is represented by a box filled with dots.
  • the third weight calculation circuit 322 is configured to: for each wavelet transform window in the plurality of wavelet transform windows, according to the second variance of the plurality of valid pixels in the wavelet transform window, A third convolution weight of the plurality of valid pixels is determined. Specifically, for each valid pixel point in the plurality of valid pixel points, the third weight calculation circuit 322 is specifically configured to: determine the depth weight respectively according to the second variance, the second luminance information and the geometric coordinate information of the valid pixel point , normal vector weight and brightness weight; determine the third convolution weight of the effective pixel point according to the normal weight, depth weight and brightness weight of the effective pixel point.
  • the third weight calculation circuit 322 may be used to: perform Gaussian blending (gaussians blur) processing on the second variances of the 9 valid pixels in the wavelet transform window to obtain Mixed variance; for each valid pixel in the 9 valid pixels, the depth weight, normal vector weight and luminance weight are determined respectively according to the mixed variance, and the second luminance information and geometric coordinate information of the valid pixel, and then Determine the third convolution weight.
  • Gaussian blending Gaussians blur
  • the third convolution circuit 323 is configured to: for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution of the plurality of valid pixels in the wavelet transform window The weight, the second brightness information and the second variance of the plurality of effective pixel points, respectively determine the third brightness information and the third variance of the first pixel point; The brightness information and the third variance are used to determine the target brightness information and the target variance of the first pixel in the target image, respectively.
  • the third convolution circuit 323 may include: a third luminance convolution circuit and a third difference calculation circuit.
  • the third luminance convolution circuit is used for: for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution weight of the plurality of effective pixels in the wavelet transform window and the plurality of effective pixels
  • the second brightness information of the point is subjected to convolution operation to obtain the third brightness information of the first pixel, so that for multiple wavelet transform windows, there are multiple third convolution weights and multiple first pixels corresponding to the first pixel.
  • Three brightness information determine the target brightness information of the first pixel point according to the multiple third convolution weights and multiple third brightness information, for example, the target brightness information of the first pixel point may be the sum of multiple third brightness information Ratio to the sum of multiple third convolution weights.
  • the third difference calculation circuit is configured to: for each wavelet transform window in the plurality of wavelet transform windows, determine the weight square of the third convolution weight of the plurality of effective pixel points in the wavelet transform window, and calculate the The weight squares of multiple valid pixels and the second variance of the multiple valid pixels are convolved to obtain the third variance of the first pixel, so that for multiple wavelet transform windows, the first pixel corresponds to There are multiple third convolution weights and multiple third differences; according to multiple third convolution weights and multiple third differences of the first pixel points corresponding to the multiple wavelet transform windows, it is determined that the first pixel point is in the
  • the target variance in the target image for example, the target variance of the first pixel point may be the ratio of the sum of multiple third differences and the sum of multiple third convolution weights.
  • the SPE 3 includes: a second buffer 31 and a space calculation circuit 32, and the second buffer 31 is used for buffering the second parameter information of the pixels.
  • the spatial calculation circuit 32 includes a convolution conversion circuit 321, a third weight calculation circuit 322 and a third convolution circuit 323, and the third convolution circuit 323 includes a third luminance convolution circuit and a third difference calculation circuit.
  • the spatial filtering process may include: the convolution conversion circuit 321 is configured to extract the multiplicity of the first pixel in each wavelet transform window of the plurality of wavelet transform windows.
  • the second parameter information of the effective pixels; the third weight calculation circuit 322 is used to determine the third convolution weight of the multiple effective pixels in each wavelet transform window; the third luminance convolution circuit is used to determine the first pixel The target brightness information of the point in the target image; the third variance calculation circuit is used to determine the target variance of the first pixel point in the target image.
  • first buffer 11, second buffer 21 and third buffer 31 may be collectively referred to as the local buffer of the SVGF accelerator.
  • the buffer shared by the SM and the SVGF accelerator in the GPU may be referred to as a secondary buffer, and a memory coupled to the GPU in the image processing device where the GPU is located may be referred to as a secondary memory.
  • the different parameter information of the above-mentioned pixels may be stored in the local buffer, and may also be stored in the secondary buffer or the secondary storage.
  • the local buffer stores: 1). MPE 2.
  • the first parameter information of the first preset number of pixels in the first image required when the MPE performs the filtering momentum processing on the pixels in the first image can be the square of Size_Window2, Size_Window2 represents the size of the second preset window, and the first parameter information of each pixel can include first brightness information, first momentum information, first variance and historical calculation times, (optionally, the first parameter information may also include geometric coordinate information of each pixel point, such as normal direction and depth, etc.).
  • the second parameter information of the second preset number of pixels in the second image required when SPE 3 performs spatial momentum processing on the pixels in the second image can be (Size_Window3+( Step-1) ⁇ 2) square, Size_Window3 represents the size of the initial convolution window of the wavelet transform, Step represents the number of wavelet transform steps, the second parameter information may include the second brightness information and the second variance, (optional, the first The two-parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
  • the secondary buffer or the secondary memory may store: 1).
  • Historical parameter information of each pixel in the previous frame of image the historical parameter information may include geometric coordinate information, historical brightness information, and historical momentum information and the number of historical calculations, as well as the geometric coordinate information and motion vector of each pixel in the image to be processed.
  • the first parameter information of the third preset number of pixels in the first image required by the MPE 2 processing output by the TPE 1, and the third preset number may be [Width ⁇ (Size_Window2 ⁇ Step-1)+ Size_Window2], Width represents the width of the image to be processed, and the first parameter information of each pixel point may include first brightness information, first momentum information, first variance and historical calculation times. 3).
  • the second parameter information of the fourth preset number of pixels in the second image required by the SPE 3 processing output by the MPE 2, the fourth preset number may be [Width ⁇ (Size_Window3 ⁇ Step-1)+ Size_Window3 ⁇ Step], the second parameter information may include second luminance information and second variance, (optionally, the second parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
  • the process of updating the parameter information of the pixel by the local buffer and the secondary memory is similar.
  • the pixel processing of the pixels of the first image is taken as an example for description. Specifically, every time the second preset window slides by one pixel, the MPE 2 needs to update the first parameter information of the first column of pixels on the right side of the second preset window. At this time, the first parameter of the last pixel in the column
  • the parameter information can be obtained from TPE 1, and the first parameter information of the remaining pixels in the column of pixels can be obtained from the secondary buffer or the secondary memory.
  • the local buffer needs to delete the first parameter information of a column of pixels sliding out of the second preset window, and the secondary buffer or the secondary memory can delete the first parameter information of the first pixel in the column of pixels.
  • the first column of pixels on the right side of the second preset window is represented as Col-1
  • the last pixel in Col-1 is represented as pix-1
  • the row of pixels that slide out of the second preset window is represented as Col-1. It is Col-2
  • the first pixel in Col-1 is represented as pix1.
  • the local buffer stores: 1).
  • the third preset number may be [Width ⁇ (Size_Window2 ⁇ Step-1)+Size_Window2], Width represents the width of the image to be processed, and the first parameter information of each pixel may include first brightness information, first momentum information, first variance and historical calculation frequency. 2).
  • the second parameter information of the fourth preset number of pixels in the second image required by the SPE 3 processing output by the MPE 2, and the fourth preset number may be [Width ⁇ (Size_Window3 ⁇ Step-1)+ Size_Window3 ⁇ Step], the second parameter information may include second luminance information and second variance, (optionally, the second parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
  • the secondary buffer or the secondary memory may store: 1).
  • Historical parameter information of each pixel in the previous frame of image may include geometric coordinate information, historical brightness information, and historical momentum information and the number of historical calculations, as well as the geometric coordinate information and motion vector of each pixel in the image to be processed.
  • the process of updating the parameter information of the pixel by the local buffer and the secondary memory is similar.
  • the pixel processing of the pixels of the first image is taken as an example for description. Specifically, every time the second preset window slides by one pixel, the MPE 2 needs to update the first parameter information of the first column of pixels on the right side of the second preset window. At this time, the first parameter of the last pixel in the column
  • the parameter information can be obtained from TPE 1, and the first parameter information of the remaining pixels in the column of pixels is obtained from the local buffer.
  • the local buffer may delete the first parameter information of the first pixel in a column of pixels sliding out of the second preset window.
  • the pixels in the first column on the right side of the second preset window are represented as Col-1, and the last pixel in Col-1 is represented as pix-1, which will slide out of a column of pixels in the second preset window.
  • the first pixel of is represented as pix1.
  • TPE 1, MPE 2 and SPE 3 can perform SVGF processing on the to-be-processed image according to the processing flow shown in Figure 15 below.
  • S11.TPE 1 performs temporal filtering processing on the image to be processed pixel by pixel;
  • S12. TPE 1 determines whether the processing of all pixels is completed, if so (that is, completed), then the TPE 1 processing ends, if not (that is, not completed) ) then return to S11, and execute S13;
  • S13.TPE 1 judges whether to complete the first parameter information of the pixel point of the required size of MPE 2 processing, if completed, then execute S21, if not completed, then return to S11.
  • S21.MPE 2 performs filter momentum processing on the first image pixel by pixel; S22.MPE 1 determines whether the processing of all pixels is completed, if completed, the MPE 2 processing ends, if not, returns to S21, and executes S23; S23.MPE 2. Determine whether to complete the SPE 3. Process the second parameter information of the pixel of the required size, if completed, execute S31, and if not, return to S21. S31.SPE 3 performs spatial filtering processing on the second image pixel by pixel; S32. SPE 3 judges whether the processing of all pixel points is completed, if completed, the SPE 3 processing ends, and if not completed, returns to S31. Correspondingly, in FIG.
  • the two adjacent pixels are processed pixel by pixel by TPE 1, MPE 2 and SPE 3 as an example, and the moment when TPE 1, MPE 2 and SPE 3 are started, and TPE 1, MPE 2 are shown.
  • TPE 1, MPE 2, and SPE 3 all include respective buffers, so that when performing corresponding time-domain filtering processing, filtering momentum processing, and spatial filtering processing, multiple
  • the parameter information of the pixels that need to be multiplexed in the continuous processing process is cached in the buffer, and the parameter information of the pixels obtained by the latest processing can be obtained based on the cached parameter information and the acquired parameters by obtaining the parameter information of the newly processed pixels from the previous-level processing engine.
  • the information is processed accordingly, so that the data transmitted between the processing engines can be minimized, thereby greatly reducing the delay of data transmission and improving the speed of image processing.
  • an optimal buffer ratio and/or bandwidth ratio can also be achieved, thereby further optimizing the performance of the SVGF accelerator.
  • an embodiment of the present application further provides an image processing device, the image processing device includes an image processor, and the image processor may include any of the SVGF accelerators provided above.
  • the image processing device includes an image processor
  • the image processor may include any of the SVGF accelerators provided above.
  • the SVGF accelerator please refer to the above Relevant descriptions in the text are not repeated in this embodiment of the present application.
  • the image processing device and the SVGF accelerator described above are only schematic, for example, the division of the modules or units is only a logical function division, There may be other divisions in actual implementation, for example, multiple units or components may be combined or integrated into another device, or some features may be omitted or not implemented.
  • the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place, or may be distributed to multiple different places . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
  • the above-mentioned integrated units can be implemented in the form of hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)

Abstract

The present application relates to the technical field of image processing, and provides an image processor and an image processing device, for use in reducing performance requirements of the image processor when performing SVGF processing on an image. The image processor comprises an SVGF accelerator. The SVGF accelerator comprises: a time domain processing engine for performing, according to a previous frame image of the image to be processed, time domain filtering processing on the image to be processed, so as to obtain a first image, wherein parameter information of a pixel point in the first image is first parameter information; a momentum processing engine comprising a first cache for caching the first parameter information, and a momentum calculation circuit for performing filtering momentum processing on the first image according to the first parameter information to obtain a second image, wherein parameter information of a pixel point in the second image is second parameter information; and a spatial domain processing engine comprising a second cache for caching the second parameter information, and a spatial domain calculation circuit for performing spatial domain filtering processing on the second image according to the second parameter information to obtain a target image.

Description

一种图像处理器及图像处理设备An image processor and image processing equipment 技术领域technical field
本申请涉及图像处理技术领域,尤其涉及一种图像处理器及图像处理设备。The present application relates to the technical field of image processing, and in particular, to an image processor and an image processing device.
背景技术Background technique
时空域方差引导过滤(spatiotemporal variance-guided filtering,SVGF)是一种使用时空重投影和特征缓冲驱动的双边滤波来模糊高方差区域的去噪方法,被广泛应用于图像处理器(graphic processing unit,GPU)的光纤追踪(ray tracing,RT)降噪中。其中,SVGF的处理流程主要包括三个步骤,即时域路径(temporal pass)处理、过滤动量路径(filter moment pass)处理和空域路径(spatial pass)处理,每个步骤中均需要执行大量的计算。Spatiotemporal variance-guided filtering (SVGF) is a denoising method that uses spatiotemporal reprojection and feature buffer-driven bilateral filtering to blur high variance regions. It is widely used in image processors (graphic processing unit, GPU) fiber tracing (ray tracing, RT) noise reduction. Among them, the processing flow of SVGF mainly includes three steps, temporal pass processing, filter momentum pass processing and spatial pass processing, each step needs to perform a lot of calculations.
现有技术中,该SVGF方法通常是由GPU中的流多处理器(stream multiprocessor,SM)基于软件来实现的,具体实现时可以由运行在SM上的三个线程按照先后顺序依次来执行该SVGF的这三个步骤,且这三个线程中每个线程的输入数据和输出数据均被存储在与该SM耦合的GPU中的缓存器中。但是,由于该SVGF方法的计算量和数据量都较大,从而需要该缓存器具有较大的读写带宽和较小的读写时延,即该方法对GPU的性能要求较高,比如,以桌面GPU处理分辨率为1080P的图像为例,其显示帧率也只能达到30帧每秒(frame per second,fps)左右,而大部分移动终端中GPU的性能仅为桌面GPU的1/10或者更低,因此无法应用在GPU性能较低的设备中。In the prior art, the SVGF method is usually implemented by a stream multiprocessor (SM) in the GPU based on software, and during specific implementation, the three threads running on the SM can execute the process in sequence. The three steps of the SVGF, and the input data and output data for each of the three threads, are stored in buffers in the GPU coupled to the SM. However, due to the large amount of calculation and data of the SVGF method, the buffer needs to have a large read and write bandwidth and a small read and write delay, that is, the method has high performance requirements on the GPU, for example, Taking an image with a resolution of 1080P processed by a desktop GPU as an example, its display frame rate can only reach about 30 frames per second (fps), while the performance of the GPU in most mobile terminals is only 1/ that of the desktop GPU. 10 or lower, so it cannot be used on devices with lower GPU performance.
发明内容SUMMARY OF THE INVENTION
本申请提供一种图像处理器及图像处理设备,可用于降低图像处理器对图像进行SVGF处理的性能需求,同时提高图像的处理速率。The present application provides an image processor and an image processing device, which can be used to reduce the performance requirements of the image processor for SVGF processing of images, and at the same time improve the image processing rate.
为达到上述目的,本申请采用如下技术方案:To achieve the above object, the application adopts the following technical solutions:
第一方面,提供一种图像处理器,该图像处理器包括SVGF加速器,该SVGF加速器包括:时域处理引擎,用于根据待处理图像的上一帧图像对该待处理图像做时域滤波处理,以得到第一图像,第一图像中像素点的参数信息为第一参数信息;动量处理引擎,包括:第一缓存器,用于缓存第一参数信息,比如缓存第一图像中一个或者多个像素点的第一参数信息;动量计算电路,用于根据第一参数信息对第一图像做过滤动量处理,以得到第二图像,第二图像中像素点的参数信息为第二参数信息;空域处理引擎,包括:第二缓存器,用于缓存第二参数信息,比如缓存第二图像中一个或者多个像素点的第二参数信息;空域计算电路,用于根据第二参数信息对第二图像做空域滤波处理,以得到目标图像,该目标图像中像素点的参数信息为目标参数信息。In a first aspect, an image processor is provided, the image processor includes an SVGF accelerator, and the SVGF accelerator includes: a temporal processing engine, configured to perform temporal filtering processing on the to-be-processed image according to a previous frame of the image to be processed , to obtain the first image, the parameter information of the pixels in the first image is the first parameter information; the momentum processing engine includes: a first buffer for buffering the first parameter information, such as buffering one or more parameters in the first image The first parameter information of each pixel point; the momentum calculation circuit is used to filter the momentum process on the first image according to the first parameter information, so as to obtain the second image, and the parameter information of the pixel point in the second image is the second parameter information; The spatial processing engine includes: a second buffer for buffering second parameter information, such as buffering the second parameter information of one or more pixels in the second image; The two images are subjected to spatial filtering processing to obtain the target image, and the parameter information of the pixel points in the target image is the target parameter information.
上述技术方案中,动量处理引擎和空域处理引擎中均包括各自的缓存器,从而在进行相应的过滤动量处理和空域滤波处理时,可以将多次连续处理过程中需要复用的像素点的参数信息缓存在对应的缓存器中,并通过从上一级处理引擎中获取最新处理得到的像素点的参数信息,即可基于缓存的参数信息和获取的参数信息执行相应的处理,从而可以实现处理引擎之间传输的数据最小,进而大大降低数据传输的时延,提 高图像处理的速率,同时也降低了该图像处理器对图像进行SVGF处理的性能需求。In the above technical solution, both the momentum processing engine and the spatial processing engine include their own buffers, so that when performing the corresponding filtering momentum processing and spatial filtering processing, the parameters of the pixels that need to be multiplexed in multiple consecutive processing processes can be changed. The information is cached in the corresponding buffer, and by obtaining the parameter information of the pixel points obtained by the latest processing from the upper-level processing engine, the corresponding processing can be performed based on the cached parameter information and the obtained parameter information, so that the processing can be realized. The data transmitted between the engines is minimal, thereby greatly reducing the delay of data transmission, improving the speed of image processing, and reducing the performance requirements of the image processor for SVGF processing of images.
在第一方面的一种可能的实现方式中,该时域处理引擎包括时域计算电路,该时域计算电路包括:信息获取电路,用于对于该待处理图像中的第一像素点,获取第一像素点对应在该上一帧图像中的历史像素点所在的第一预设窗口内的多个像素点的历史参数信息,该历史参数信息包括几何坐标信息、历史亮度信息和历史动量信息,第一像素点为该待处理图像中的任一像素点;信号生成电路,用于根据该多个像素点的几何坐标信息生成控制信号;第一卷积电路,用于在该控制信号有效时分别根据该多个像素点的历史亮度信息和历史动量信息确定第一像素点在第一图像中的第一亮度信息和第一动量信息;第一卷积电路,还用于在该控制信号无效时根据预设亮度信息和预设动量信息分别确定第一像素点在第一图像中的第一亮度信息和第一动量信息;第一卷积电路,还用于根据第一像素点的第一动量信息确定第一方差。上述可能的实现方式中,提供了一种简单有效的时域计算电路的电路结构,通过该电路结构可以快速地对待处理图像中的像素点逐像素进行时域滤波处理,且在时域滤波处理过程中可以复用连续多次处理过程中的历史像素点的历史参数信息,从而可以提高时域滤波处理的速率。In a possible implementation manner of the first aspect, the time-domain processing engine includes a time-domain calculation circuit, and the time-domain calculation circuit includes: an information acquisition circuit configured to obtain, for the first pixel point in the image to be processed, The first pixel point corresponds to the historical parameter information of a plurality of pixel points in the first preset window where the historical pixel point in the previous frame of image is located, and the historical parameter information includes geometric coordinate information, historical brightness information and historical momentum information , the first pixel is any pixel in the to-be-processed image; the signal generation circuit is used to generate a control signal according to the geometric coordinate information of the plurality of pixels; the first convolution circuit is used when the control signal is valid When determining the first brightness information and the first momentum information of the first pixel in the first image according to the historical brightness information and historical momentum information of the plurality of pixels, respectively; the first convolution circuit is also used for the control signal When invalid, the first brightness information and the first momentum information of the first pixel in the first image are respectively determined according to the preset brightness information and the preset momentum information; the first convolution circuit is also used for according to the first pixel of the first pixel. A momentum information determines the first variance. In the above possible implementation manner, a simple and effective circuit structure of a time-domain calculation circuit is provided, through which the time-domain filtering processing can be quickly performed on the pixels in the image to be processed pixel by pixel, and the time-domain filtering processing can be performed quickly. In the process, the historical parameter information of the historical pixel points in the continuous multiple processing processes can be reused, so that the speed of the time domain filtering processing can be improved.
在第一方面的一种可能的实现方式中,该信号生成电路具体用于:当第一预设窗口内的多个像素点中存在预设区域内的至少一个像素点的几何坐标信息满足指定坐标范围时生成有效的控制信号,该指定坐标范围与第一像素点的几何坐标信息有关;当第一预设窗口内的多个像素点的几何坐标信息均不满足该指定坐标范围时生成无效的控制信息。上述可能的实现方式中,提供了一种信号生成电路根据第一预设窗口内的多个像素点的几何坐标信息生成控制信号的方式,该方式可以有效避免与第一像素点的几何坐标信息差距较大的像素点对于第一像素点的时域滤波处理的影响。In a possible implementation manner of the first aspect, the signal generation circuit is specifically configured to: when the geometric coordinate information of at least one pixel point in the preset area exists among the plurality of pixel points in the first preset window and satisfies the specified A valid control signal is generated when the coordinate range is within the specified coordinate range, and the specified coordinate range is related to the geometric coordinate information of the first pixel point; when the geometric coordinate information of multiple pixel points in the first preset window does not satisfy the specified coordinate range, an invalid control signal is generated. control information. Among the above possible implementations, a method in which the signal generation circuit generates a control signal according to the geometric coordinate information of a plurality of pixel points in the first preset window is provided, which can effectively avoid the geometric coordinate information of the first pixel point. The influence of pixels with large gaps on the temporal filtering processing of the first pixel.
在第一方面的一种可能的实现方式中,第一卷积电路包括:第一亮度卷积电路,用于在该控制信号有效时根据该预设区域内的像素点的第一卷积权重和亮度信息,确定第一像素点在第一图像中的第一亮度信息;第一动量卷积电路,用于在该控制信号有效时根据该预设区域内像素点的第一卷积权重和动量信息,确定第一像素点在第一图像中的第一动量信息;第一方差计算电路,用于根据第一动量信息确定第一像素点的第一方差。上述可能的实现方式中,提供了一种简单有效的第一卷积电路的电路结构,该电路结构中的第一亮度卷积电路和第一动量卷积电路可以同时执行,从而快速地通过卷积运算确定像素点的第一亮度信息和第一动量信息,第一方差计算电路可以基于确定的第一动量信息确定第一方差,从而提高第一卷积电路确定像素点的第一亮度信息、第一动量信息和第一方差的速率。In a possible implementation manner of the first aspect, the first convolution circuit includes: a first luminance convolution circuit, configured to use a first convolution weight of pixels in the preset area when the control signal is valid and brightness information, to determine the first brightness information of the first pixel in the first image; the first momentum convolution circuit is used for when the control signal is valid, according to the first convolution weight and sum of the pixels in the preset area The momentum information is used to determine the first momentum information of the first pixel in the first image; the first variance calculation circuit is used to determine the first variance of the first pixel according to the first momentum information. In the above possible implementation manner, a simple and effective circuit structure of the first convolution circuit is provided, and the first luminance convolution circuit and the first momentum convolution circuit in the circuit structure can be executed simultaneously, so as to quickly pass the convolution circuit. The product operation determines the first brightness information and the first momentum information of the pixel, and the first variance calculation circuit can determine the first variance based on the determined first momentum information, thereby improving the first brightness of the pixel determined by the first convolution circuit. information, the first momentum information, and the rate of the first variance.
可以快速地确定待处理图像中任一像素点的第一参数信息。The first parameter information of any pixel in the image to be processed can be quickly determined.
在第一方面的一种可能的实现方式中,该时域计算电路还包括:第一权重计算电路,用于确定该预设区域内的每个像素点的第一卷积权重。上述可能的实现方式中,该时域计算电路还可以包括用于确定该预设区域内的每个像素点的第一卷积权重的第一权重计算电路,从而提高每个像素点的第一卷积权重的准确性。In a possible implementation manner of the first aspect, the time domain calculation circuit further includes: a first weight calculation circuit, configured to determine a first convolution weight of each pixel in the preset area. In the above possible implementation manner, the time domain calculation circuit may further include a first weight calculation circuit for determining the first convolution weight of each pixel in the preset area, thereby improving the first convolution weight of each pixel. Accuracy of convolution weights.
在第一方面的一种可能的实现方式中,该历史参数信息还包括该历史像素点的历史计算次数,该时域计算电路还包括:更新电路,用于在该控制信号有效时,将该历史 像素点的历史计算次数加一后得到的数值确定为第一像素点的历史计算次数;该更新电路,还用于在该控制信号无效时,确定第一像素点的历史计算次数为0。上述可能的实现方式中,该时域计算电路还可以包括用于确定第一像素点的历史计算次数的更新电路,从而便于后续过滤动量处理过程中快速地选择像素点在第二图像中的第二参数信息。In a possible implementation manner of the first aspect, the historical parameter information further includes the historical calculation times of the historical pixel point, and the time domain calculation circuit further includes: an update circuit configured to, when the control signal is valid, update the The value obtained by adding one to the historical calculation times of the historical pixel point is determined as the historical calculation times of the first pixel point; the update circuit is also used to determine the historical calculation times of the first pixel point to be 0 when the control signal is invalid. In the above possible implementation manner, the time domain calculation circuit may further include an update circuit for determining the historical calculation times of the first pixel point, so as to facilitate the rapid selection of the pixel point in the second image in the subsequent filtering momentum processing process. Two parameter information.
在第一方面的一种可能的实现方式中,该时域处理引擎还包括:第三缓存器,用于缓存该历史参数信息,和/或该待处理图像中第一像素点的初始参数信息,该初始参数信息包括以下至少一项:初始亮度信息,初始动量信息,运动向量,几何坐标信息。上述可能的实现方式中,第三缓存器中可以用于存储多次连续处理过程中需要复用的像素点的第一参数信息,从而可以大大降低数据传输的时延,进而提高图像处理速率。In a possible implementation manner of the first aspect, the time domain processing engine further includes: a third buffer for buffering the historical parameter information and/or the initial parameter information of the first pixel in the image to be processed , the initial parameter information includes at least one of the following: initial luminance information, initial momentum information, motion vector, and geometric coordinate information. In the above possible implementation manner, the third buffer can be used to store the first parameter information of the pixels that need to be multiplexed in multiple consecutive processing processes, so that the delay of data transmission can be greatly reduced, thereby improving the image processing rate.
在第一方面的一种可能的实现方式中,第一参数信息包括第一亮度信息、第一动量信息和第一方差,该动量计算电路包括:第二卷积电路,用于对于第一图像中的第一像素点,分别根据第一像素点所在的第二预设窗口内的多个像素点的第一亮度信息和第一动量信息,确定第一像素点的卷积亮度信息和卷积动量信息;第二卷积电路,还用于根据该卷积动量信息确定第一像素点的卷积方差;选择电路,用于选择第一亮度信息和第一方差分别作为第一像素点在第二图像中的第二亮度信息和第二方差,或者选择该卷积亮度信息和该卷积方差分别作为第一像素点在第二图像中的第二亮度信息和第二方差。上述可能的实现方式中,提供了一种简单有效的动量计算电路的电路结构,该电路结构可以快速地对第一图像中的像素点逐像素进行过滤动量处理,且在过滤动量处理过程中可以复用第一缓存器中存储的像素点的第一参数信息,从而可以提高过滤动量处理的速率。In a possible implementation manner of the first aspect, the first parameter information includes first luminance information, first momentum information, and first variance, and the momentum calculation circuit includes: a second convolution circuit, configured for the first For the first pixel in the image, according to the first brightness information and the first momentum information of the plurality of pixels in the second preset window where the first pixel is located, the convolutional brightness information and the volume of the first pixel are determined. accumulated momentum information; the second convolution circuit is also used to determine the convolution variance of the first pixel point according to the convolution momentum information; the selection circuit is used to select the first brightness information and the first variance as the first pixel point respectively The second brightness information and the second variance in the second image, or the convolution brightness information and the convolution variance are selected as the second brightness information and the second variance of the first pixel in the second image, respectively. In the above possible implementation manners, a simple and effective circuit structure of a momentum calculation circuit is provided. The circuit structure can quickly perform the filtering momentum processing on the pixels in the first image pixel by pixel, and in the filtering momentum processing process, it can be The first parameter information of the pixels stored in the first buffer is multiplexed, so that the speed of filtering momentum processing can be improved.
在第一方面的一种可能的实现方式中,第二卷积电路包括:第二亮度卷积电路,用于根据该多个像素点的第二卷积权重和该多个像素点的第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息;第二动量卷积电路,用于根据该多个像素点的第二卷积权重和该多个像素点的第一动量信息做卷积运算,以得到第一像素点的卷积动量信息;第二方差计算电路,用于根据该卷积动量信息确定第一像素点的卷积方差。上述可能的实现方式中,提供了一种简单有效的第二卷积电路的电路结构,该电路结构中的第二亮度卷积电路和第二动量卷积电路可以同时执行,从而快速地通过卷积运算确定第一图像中像素点的卷积亮度信息和卷积动量信息,第二方差计算电路可以基于确定的卷积动量信息确定卷积方差,从而提高第二卷积点电路确定像素点的卷积亮度信息、卷积动量信息和卷积方差的速率。In a possible implementation manner of the first aspect, the second convolution circuit includes: a second luminance convolution circuit, configured to use the second convolution weight of the plurality of pixel points and the first convolution weight of the plurality of pixel points Convolution operation is performed on the luminance information to obtain the convolution luminance information of the first pixel; the second momentum convolution circuit is used for the second convolution weight of the plurality of pixels and the first momentum of the plurality of pixels. A convolution operation is performed on the information to obtain the convolution momentum information of the first pixel point; the second variance calculation circuit is used to determine the convolution variance of the first pixel point according to the convolution momentum information. In the above possible implementation manner, a simple and effective circuit structure of the second convolution circuit is provided, and the second luminance convolution circuit and the second momentum convolution circuit in the circuit structure can be executed simultaneously, so as to quickly pass the volume The product operation determines the convolution brightness information and convolution momentum information of the pixels in the first image, and the second variance calculation circuit can determine the convolution variance based on the determined convolution momentum information, thereby improving the second convolution point circuit. The rate at which to convolve luminance information, convolve momentum information, and convolve variance.
在第一方面的一种可能的实现方式中,该动量计算电路还包括:第二权重计算电路,用于确定该多个像素点中每个像素点的第二卷积权重。上述可能的实现方式中,该动计算电路还可以包括用于确定该多个像素点中每个像素点的第二卷积权重,从而提高每个像素点的第二卷积权重的准确性。In a possible implementation manner of the first aspect, the momentum calculation circuit further includes: a second weight calculation circuit, configured to determine a second convolution weight of each pixel point in the plurality of pixel points. In the above possible implementation manner, the dynamic calculation circuit may further include a second convolution weight for determining each pixel point in the plurality of pixel points, thereby improving the accuracy of the second convolution weight for each pixel point.
在第一方面的一种可能的实现方式中,第一参数信息还包括历史计算次数,该选择电路具体用于:当第一像素点的历史计算次数大于或等于预设次数时,选择第一亮度信息和第一方差分别作为第一像素点在第二图像中的第二亮度信息和第二方差;当第一像素点的历史计算次数小于该预设次数时,选择该卷积亮度信息和该卷积方差分别 作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差。上述可能的实现方式中,提供了一种简单有效的选择第二亮度信息、第二动量信息和第二方差的方式。In a possible implementation manner of the first aspect, the first parameter information further includes the number of historical calculations, and the selection circuit is specifically configured to: when the number of historical calculations of the first pixel is greater than or equal to a preset number of times, select the first pixel. The brightness information and the first variance are respectively used as the second brightness information and the second variance of the first pixel in the second image; when the number of historical calculations of the first pixel is less than the preset number of times, select the convolution brightness information and the convolution variance are respectively used as the second luminance information, the second momentum information and the second variance of the first pixel in the second image. In the above possible implementation manners, a simple and effective manner for selecting the second luminance information, the second momentum information and the second variance is provided.
在第一方面的一种可能的实现方式中,该空域计算电路包括:卷积转换电路,用于分别提取第二图像中的第一像素点在多个小波变换窗口中每个小波变换窗口内的多个有效像素点的第二参数信息,该多个小波变换窗口是经过预设步数的小波变换得到的,第二参数信息包括第二亮度信息和第二方差;第三权重计算电路,用于对于该多个小波变换窗口中每个小波变换窗口,根据该小波变换窗口内的多个有效像素点的第二方差,确定该多个有效像素点的第三卷积权重;第三卷积电路,用于对于该多个小波变换窗口中每个小波变换窗口,根据该小波变换窗口内的多个有效像素点的第三卷积权重和该多个有效像素点的第二亮度信息和第二方差,分别确定第一像素点的第三亮度信息和第三方差;第三卷积电路,还用于根据该多个小波变换窗口对应的第一像素点的第三亮度信息和第三方差,分别确定第一像素点在该目标图像中的目标亮度信息和目标方差。上述可能的实现方式中,提供了一种简单有效的空域计算电路的电路结构,该电路结构可以快速地对第二图像中的像素点逐像素进行空域滤波处理,且在空域滤波处理过程中可以复用第二缓存器中存储的像素点的第二参数信息,从而可以提高空域滤波处理的速率。In a possible implementation manner of the first aspect, the spatial domain calculation circuit includes: a convolution conversion circuit, configured to respectively extract the first pixel point in the second image within each wavelet transform window of the plurality of wavelet transform windows The second parameter information of a plurality of valid pixel points, the plurality of wavelet transform windows are obtained through the wavelet transform of a preset number of steps, the second parameter information includes the second brightness information and the second variance; the third weight calculation circuit, For each wavelet transform window in the multiple wavelet transform windows, according to the second variance of the multiple effective pixel points in the wavelet transform window, determine the third convolution weight of the multiple effective pixel points; the third volume The product circuit is used for, for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution weight of the plurality of effective pixels in the wavelet transform window and the second brightness information of the plurality of effective pixels and the sum The second variance is used to determine the third brightness information and the third variance of the first pixel respectively; the third convolution circuit is also used for the third brightness information and the third brightness of the first pixel corresponding to the multiple wavelet transform windows. variance, respectively determine the target brightness information and target variance of the first pixel in the target image. In the above possible implementation manner, a simple and effective circuit structure of a spatial domain calculation circuit is provided, the circuit structure can quickly perform spatial filtering processing on the pixels in the second image pixel by pixel, and in the process of spatial filtering processing, it can be The second parameter information of the pixel points stored in the second buffer is multiplexed, so that the speed of spatial filtering processing can be improved.
在第一方面的一种可能的实现方式中,第三权重计算电路具体用于:对于该多个有效像素点,根据该多个有效像素点在第二图像中的第二方差、第二亮度信息和几何坐标信息分别确定深度权重、法向量权重和亮度权重;根据该多个有效像素点的深度权重、法向量权重和亮度权重,确定该多个有效像素点的第三卷积权重。上述可能的实现方式中,第三权重计算电路可以根据多个有效像素点的第二参数信息中的第二方差、第二亮度信息和几何坐标信息,快速有效地确定该多个有效像素点中每个有效像素点的第三卷积权重。In a possible implementation manner of the first aspect, the third weight calculation circuit is specifically configured to: for the plurality of valid pixels, according to the second variance and the second brightness of the plurality of valid pixels in the second image The information and the geometric coordinate information respectively determine the depth weight, normal vector weight and brightness weight; according to the depth weight, normal vector weight and brightness weight of the multiple valid pixels, determine the third convolution weight of the multiple valid pixels. In the above possible implementation manner, the third weight calculation circuit can quickly and effectively determine the number of effective pixels in the plurality of effective pixels according to the second variance, the second brightness information and the geometric coordinate information in the second parameter information of the multiple effective pixels. The third convolution weight for each valid pixel.
在第一方面的一种可能的实现方式中,第三卷积电路包括:第三亮度卷积电路,用于根据该多个有效像素点的第三卷积权重和该多个有效像素点的第二亮度信息做卷积运算,以得到第一像素点的第三亮度信息;第三方差计算电路,用于根据该多个有效像素点的第三卷积权重和该多个有效像素点的第二方差,确定第一像素点的第三方差。上述可能的实现方式中,提供了一种简单有效的第三卷积电路的电路结构,该电路结构中的第三亮度卷积电路可用于通过卷积运算快速地确定第一像素点的第三亮度信息,第二方差计算电路可用于快速地确定第一像素点的第三方差。In a possible implementation manner of the first aspect, the third convolution circuit includes: a third luminance convolution circuit, configured to A convolution operation is performed on the second luminance information to obtain the third luminance information of the first pixel; the third difference calculation circuit is used for calculating the third convolution weight of the plurality of valid pixels and the The second variance determines the third variance of the first pixel point. In the above possible implementation manner, a simple and effective circuit structure of the third convolution circuit is provided, and the third luminance convolution circuit in the circuit structure can be used to quickly determine the third value of the first pixel point through the convolution operation. The luminance information, the second variance calculation circuit can be used to quickly determine the third variance of the first pixel point.
在第一方面的一种可能的实现方式中,第一缓存器中存储有动量计算电路对第一图像中的像素点做过滤动量处理时所需的第一图像中的第一预设数量的像素点的第一参数信息,第一预设数量为第二预设窗口的尺寸的平方;第二缓存器中存储有空域计算电路对第二图像中的像素点做空域动量处理时所需的第二图像中的第二预设数量的像素点的第二参数信息,第二预设数量为(Size_Window3+(Step-1)×2)的平方,Size_Window3表示小波变换的初始卷积窗口的尺寸,Step表示小波变换步数。上述可能的实现方式,可以降低图像处理器对待处理图像做SVGF处理时所需的存储空间,从而实现不同处理引擎中的最小缓存的设置。In a possible implementation manner of the first aspect, the first buffer stores a first preset number in the first image that is required by the momentum calculation circuit to filter the momentum processing of the pixels in the first image. The first parameter information of the pixel point, the first preset number is the square of the size of the second preset window; the second buffer stores the space domain calculation circuit in the second image. The second parameter information of the second preset number of pixels in the second image, the second preset number is the square of (Size_Window3+(Step-1)×2), and Size_Window3 represents the size of the initial convolution window of the wavelet transform, Step represents the number of wavelet transform steps. The above possible implementation manners can reduce the storage space required by the image processor when the image to be processed is processed by SVGF, thereby realizing the setting of the minimum cache in different processing engines.
在第一方面的一种可能的实现方式中,第一缓存器中存储有动量计算电路对第一图像中的像素点做过滤动量处理时所需的第一图像中的第三预设数量的像素点的第一参数信息,第三预设数量的像素点的第一参数信息,第三预设数量可以为[Width×(Size_Window2×Step-1)+Size_Window2],Width表示待处理图像的宽度;第二缓存器中存储有空域计算电路对第二图像中的像素点做空域动量处理时所需的第二图像中的第四预设数量的像素点的第二参数信息,第四预设数量为[Width×(Size_Window3×Step-1)+Size_Window3×Step]。上述可能的实现方式,可以降低图像处理器对待处理图像做SVGF处理时所需的带宽需求,从而实现最小带宽的设置。In a possible implementation manner of the first aspect, the first buffer stores a third preset number in the first image that is required by the momentum calculation circuit to filter the momentum processing of the pixels in the first image. The first parameter information of the pixel point, the first parameter information of the third preset number of pixels, the third preset number can be [Width×(Size_Window2×Step-1)+Size_Window2], Width represents the width of the image to be processed ; The second buffer is stored with the second parameter information of the fourth preset number of pixels in the second image required when the spatial calculation circuit performs the spatial momentum processing on the pixels in the second image, the fourth preset The number is [Width×(Size_Window3×Step-1)+Size_Window3×Step]. The above possible implementation manners can reduce the bandwidth requirement required by the image processor when the image to be processed is processed by the SVGF, thereby realizing the setting of the minimum bandwidth.
第二方面,提供一种图像处理设备,该图像处理设备包括图像处理器,该图像处理器包括流多处理器,以及如第一方面或者第一方面的任一种可能的实现方式所提供的图像处理器中的SVGF加速器。In a second aspect, an image processing device is provided, the image processing device includes an image processor, the image processor includes a stream multiprocessor, and the first aspect or any possible implementation manner of the first aspect is provided. SVGF accelerator in an image processor.
可以理解地,上述提供的任一种图像处理设备包含了上文所提供的图像处理器的所有内容,因此,其所能达到的有益效果可参考上文所提供的图像处理器中的有益效果,此处不再赘述。It can be understood that any image processing device provided above includes all the contents of the image processor provided above. Therefore, the beneficial effects that can be achieved can refer to the beneficial effects of the image processor provided above. , and will not be repeated here.
附图说明Description of drawings
图1为本申请实施例提供的一种图像处理设备的结构示意图;FIG. 1 is a schematic structural diagram of an image processing device according to an embodiment of the present application;
图2为本申请实施例提供的一种GPU的结构示意图;2 is a schematic structural diagram of a GPU according to an embodiment of the present application;
图3为本申请实施例提供的一种GPU的多个处理核处理多个图像块的示意图;3 is a schematic diagram of processing multiple image blocks by multiple processing cores of a GPU according to an embodiment of the present application;
图4为本申请实施例提供的一种GPU中的SVGF加速器的结构示意图;FIG. 4 is a schematic structural diagram of an SVGF accelerator in a GPU provided by an embodiment of the present application;
图5为本申请实施例提供的一种时域计算电路的结构示意图;FIG. 5 is a schematic structural diagram of a time domain calculation circuit provided by an embodiment of the present application;
图6为本申请实施例提供的一种第一预设窗口中的多个预设区域的示意图;6 is a schematic diagram of a plurality of preset regions in a first preset window provided by an embodiment of the present application;
图7为本申请实施例提供的一种时域处理引擎的结构示意图;FIG. 7 is a schematic structural diagram of a time-domain processing engine provided by an embodiment of the present application;
图8为本申请实施例提供的一种动量计算电路的结构示意图;FIG. 8 is a schematic structural diagram of a momentum calculation circuit provided by an embodiment of the present application;
图9为本申请实施例提供的一种动量处理引擎的结构示意图;FIG. 9 is a schematic structural diagram of a momentum processing engine according to an embodiment of the present application;
图10为本申请实施例提供的一种多个小波变换窗口的示意图;10 is a schematic diagram of a plurality of wavelet transform windows provided by an embodiment of the present application;
图11为本申请实施例提供的一种空域计算电路的结构示意图;FIG. 11 is a schematic structural diagram of an airspace calculation circuit provided by an embodiment of the present application;
图12为本申请实施例提供的一种空域处理引擎的结构示意图;12 is a schematic structural diagram of an airspace processing engine provided by an embodiment of the present application;
图13为本申请实施例提供的一种缓存方式的示意图;13 is a schematic diagram of a caching method provided by an embodiment of the present application;
图14为本申请实施例提供的另一种缓存方式的示意图;14 is a schematic diagram of another caching mode provided by an embodiment of the present application;
图15为本申请实施例提供的一种SVGF处理的流程示意图;FIG. 15 is a schematic flowchart of an SVGF processing provided by an embodiment of the present application;
图16为本申请实施例提供的一种SVGF加速器中的三个处理引擎逐像素处理相邻两个像素点的过程中的第一预设窗口、第二预设窗口和小波变换窗口的示意图。16 is a schematic diagram of a first preset window, a second preset window, and a wavelet transform window in the process of pixel-by-pixel processing of two adjacent pixels by three processing engines in an SVGF accelerator provided by an embodiment of the present application.
具体实施方式Detailed ways
下文将详细论述各实施例的制作和使用。但应了解,本申请提供的许多适用发明概念可实施在多种具体环境中。所论述的具体实施例仅仅说明用以实施和使用本说明和本技术的具体方式,而不限制本申请的范围。The making and using of the various embodiments are discussed in detail below. It should be appreciated, however, that many of the applicable inventive concepts provided herein can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the description and the technology, and do not limit the scope of the application.
除非另有定义,否则本文所用的所有科技术语都具有与本领域普通技术人员公知的含义相同的含义。Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art.
各电路或其它组件可描述为或称为“用于”执行一项或多项任务。在这种情况下, “用于”用来通过指示电路/组件包括在操作期间执行一项或多项任务的结构(例如电路系统)来暗指结构。因此,即使当指定的电路/组件当前不可操作(例如未打开)时,该电路/组件也可以称为用于执行该任务。与“用于”措辞一起使用的电路/组件包括硬件,例如执行操作的电路等。Various circuits or other components may be described or referred to as "for" performing one or more tasks. In this context, "for" is used to imply structure by indicating that the circuit/component includes structure (eg, circuitry) that performs one or more tasks during operation. Thus, the specified circuit/component may be said to be used to perform the task even when the specified circuit/component is not currently operational (eg, not turned on). Circuits/components used with the phrase "for" include hardware, such as circuits that perform operations, and the like.
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a、b和c,其中a、b和c可以是单个,也可以是多个。The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application. In this application, "at least one" means one or more, and "plurality" means two or more. "And/or", which describes the association relationship of the associated objects, indicates that there can be three kinds of relationships, for example, A and/or B, which can indicate: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A, B can be singular or plural. The character "/" generally indicates that the associated objects are an "or" relationship. "At least one item(s) below" or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s). For example, at least one (a) of a, b or c may represent: a, b, c, a and b, a and c, b and c or a, b and c, where a, b and c can be It can be single or multiple.
本申请的实施例采用了“第一”和“第二”等字样对名称或功能或作用类似的对象进行区分,本领域技术人员可以理解“第一”和“第二”等字样并不对数量和执行次序进行限定。“耦合”一词用于表示电性连接,包括通过导线或连接端直接相连或通过其他器件间接相连。因此“耦合”应被视为是一种广义上的电子通信连接。In the embodiments of the present application, the words "first" and "second" are used to distinguish objects with similar names or functions or functions. Those skilled in the art can understand that the words "first" and "second" do not equate quantity. and the order of execution. The term "coupled" is used to denote electrical connection, including direct connection through wires or terminals or indirect connection through other devices. Therefore "coupling" should be regarded as an electronic communication connection in a broad sense.
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。It should be noted that, in this application, words such as "exemplary" or "for example" are used to represent examples, illustrations or illustrations. Any embodiment or design described in this application as "exemplary" or "such as" should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "such as" is intended to present the related concepts in a specific manner.
本申请的技术方案可以应用于具有图像处理器(graphics processing unit,GPU)的图像处理设备中。该图像处理设备可以为手机、平板电脑、计算机、笔记本电脑、摄像机、照相机、可穿戴设备、车载设备(例如,汽车、自行车、电动车、飞机、船舶、火车、高铁等)、虚拟现实(virtual reality,VR)设备、增强现实(augmented reality,AR)设备或者智能机器人等。为方便描述,本申请中将上面提到的设备统称为图像处理设备。The technical solution of the present application can be applied to an image processing device with an image processor (graphics processing unit, GPU). The image processing device can be a mobile phone, a tablet computer, a computer, a notebook computer, a video camera, a camera, a wearable device, an in-vehicle device (for example, a car, a bicycle, an electric vehicle, an airplane, a ship, a train, a high-speed rail, etc.), a virtual reality (virtual reality) reality, VR) devices, augmented reality (AR) devices, or intelligent robots, etc. For the convenience of description, the above-mentioned devices are collectively referred to as image processing devices in this application.
图1为本申请实施例提供的一种图像处理设备的结构示意图,该设备以手机为例进行说明,该设备可以包括:存储器101、处理器102、传感器组件103、多媒体组件104、音频组件105和电源组件106等。FIG. 1 is a schematic structural diagram of an image processing device provided by an embodiment of the application. The device is illustrated by taking a mobile phone as an example. The device may include: a memory 101 , a processor 102 , a sensor component 103 , a multimedia component 104 , and an audio component 105 and power supply assembly 106, etc.
下面结合图1对该设备的各个构成部件进行具体的介绍:Below in conjunction with Fig. 1 each constituent part of this equipment is introduced in detail:
存储器101可用于存储数据、软件程序以及模块;主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,比如声音播放功能、图像播放功能等;存储数据区可存储根据该设备的使用所创建的数据,比如音频数据、图像数据、电话本等。此外,该设备可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。在本申请实施例中,存储器101可以包括一个或者多个存储器件,这一个或者多个存储器件可以部分或者全部集成在处理器102中,比如,存储器101包括双倍速率(double data rate,DDR)存储器(简称DDR),DDR可以集成在处理器102中。The memory 101 can be used to store data, software programs and modules; it mainly includes a stored program area and a stored data area, wherein the stored program area can store an operating system, an application program required for at least one function, such as a sound playback function, an image playback function, etc. ; The storage data area can store data created according to the use of the device, such as audio data, image data, phone book, etc. Additionally, the device may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device. In this embodiment of the present application, the memory 101 may include one or more storage devices, and the one or more storage devices may be partially or fully integrated in the processor 102. For example, the memory 101 includes a double data rate (DDR) ) memory (abbreviated as DDR), which may be integrated in the processor 102 .
处理器102是该设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器101内的软件程序和/或模块,以及调用存储在存储器101内的数据,执行该设备的各种功能和处理数据,从而对该设备进行整体监控。可选地,处理器102可以包括一个或多个处理单元,比如,处理器102可以包括中央处理器(central processing unit,CPU)和图像处理器(graphic processing unit,GPU),CPU主要处理操作系统、用户界面和应用程序等,GPU是专门设计的用于处理图像的一种处理器。此外,处理器102还可以进一步包括其他硬件电路或加速器,如现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合等,本申请实施例对此不作具体限制。The processor 102 is the control center of the device, using various interfaces and lines to connect various parts of the entire device, by running or executing the software programs and/or modules stored in the memory 101, and calling the data stored in the memory 101, Perform various functions of the device and process data to monitor the device as a whole. Optionally, the processor 102 may include one or more processing units. For example, the processor 102 may include a central processing unit (CPU) and a graphics processor (graphic processing unit, GPU). The CPU mainly processes the operating system , user interface and applications, etc. GPU is a processor specially designed to process images. In addition, the processor 102 may further include other hardware circuits or accelerators, such as field programmable gate arrays or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof, which is not specifically limited in this embodiment of the present application.
传感器组件103包括一个或多个传感器,用于为该设备提供各个方面的状态评估。其中,传感器组件103可以包括光传感器,用于检测外部物体与该设备的距离,或者在成像应用中使用,即成为相机或摄像头的组成部分。此外,传感器组件103还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器,通过传感器组件103可以检测到该设备的加速/减速、方位、打开/关闭状态,组件的相对定位,或该设备的温度变化等。 Sensor assembly 103 includes one or more sensors for providing status assessments of various aspects of the device. The sensor component 103 may include a light sensor for detecting the distance between an external object and the device, or used in imaging applications, that is, as an integral part of a camera or a camera. In addition, the sensor component 103 may also include an acceleration sensor, a gyroscope sensor, a magnetic sensor, a pressure sensor or a temperature sensor, and the acceleration/deceleration, orientation, open/closed state of the device, relative positioning of the components can be detected through the sensor component 103, or temperature changes of the device, etc.
多媒体组件104在该设备和用户之间的提供一个输出接口的屏幕,该屏幕可以为触摸面板,且当该屏幕为触摸面板时,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。此外,多媒体组件104还包括至少一个摄像头,比如,多媒体组件104包括一个前置摄像头和/或后置摄像头。当该设备处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。The multimedia component 104 provides an output interface screen between the device and the user, the screen may be a touch panel, and when the screen is a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touch, swipe, and gestures on the touch panel. The touch sensor may not only sense the boundaries of a touch or swipe action, but also detect the duration and pressure associated with the touch or swipe action. In addition, the multimedia component 104 further includes at least one camera, for example, the multimedia component 104 includes a front camera and/or a rear camera. When the device is in an operating mode, such as a shooting mode or a video mode, the front camera and/or the rear camera can receive external multimedia data. Each of the front and rear cameras can be a fixed optical lens system or have focal length and optical zoom capability.
音频组件105可提供用户与该设备之间的音频接口,比如,音频组件105可以包括音频电路、扬声器和麦克风。音频电路可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,麦克风将收集的声音信号转换为电信号,由音频电路接收后转换为音频数据,再输出音频数据以发送给比如另一该设备,或者将音频数据输出至处理器102以便进一步处理。 Audio component 105 may provide an audio interface between the user and the device, for example, audio component 105 may include audio circuitry, speakers, and a microphone. The audio circuit can convert the received audio data into an electrical signal and transmit it to the speaker, which is converted into a sound signal for output; on the other hand, the microphone converts the collected sound signal into an electrical signal, which is received by the audio circuit and converted into audio data, and then output the audio data for sending, for example, to another such device, or output the audio data to the processor 102 for further processing.
电源组件106用于为该设备的各个组件提供电源,电源组件106可以包括电源管理系统,一个或多个电源,及其他与该设备生成、管理和分配电力相关联的组件。 Power supply assembly 106 is used to provide power to the various components of the device, and power supply assembly 106 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device.
尽管未示出,该设备还可以包括无线保真(wireless fidelity,WiFi)模块、蓝牙模块等,本申请实施例在此不再赘述。本领域技术人员可以理解,图1中示出的该设备的结构并不构成对该设备的限定,该设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。Although not shown, the device may further include a wireless fidelity (wireless fidelity, WiFi) module, a Bluetooth module, and the like, which are not described herein again in this embodiment of the present application. Those skilled in the art can understand that the structure of the device shown in FIG. 1 does not constitute a limitation to the device, and the device may include more or less components than the one shown, or combine some components, or different Component placement.
图2为本申请实施例提供的一种图像处理器GPU的结构示意图,该GPU可以包括:N个处理核(core)且分别表示为core1至coreN,N为正整数。如图2所示,该N个处理核中的每个处理核可以包括流多处理器(stream multiprocessor,SM)201、时空域方差引导过滤(spatiotemporal variance-guided filtering,SVGF)加速器202和 缓存器203,SM 201和SVGF加速器202可以共享缓存器203,SVGF加速器202也可以称为SVGF处理器。其中,SM 201是该GPU的处理核中通用的处理器,SVGF加速器202是该GPU的处理核中用于执行SVGF方法的专用处理器,SM 201和SVGF加速器202可以共享缓存器203。进一步的,该GPU还可以与该GPU所在的图像处理设备中的存储器耦合,该存储器可用于存储待处理的图像,以及SM 201和SVGF加速器202在图像处理过程中的相关数据等,本申请实施例对此不作具体限制。图2中以该存储器包括DDR,该GPU与DDR耦合为例进行说明。FIG. 2 is a schematic structural diagram of an image processor GPU according to an embodiment of the present application. The GPU may include: N processing cores (cores), which are respectively represented as core1 to coreN, where N is a positive integer. As shown in FIG. 2, each of the N processing cores may include a stream multiprocessor (SM) 201, a spatiotemporal variance-guided filtering (SVGF) accelerator 202, and a buffer 203, the SM 201 and the SVGF accelerator 202 may share the buffer 203, and the SVGF accelerator 202 may also be referred to as an SVGF processor. The SM 201 is a general-purpose processor in the processing core of the GPU, the SVGF accelerator 202 is a dedicated processor in the processing core of the GPU for executing the SVGF method, and the SM 201 and the SVGF accelerator 202 can share the buffer 203. Further, the GPU can also be coupled with the memory in the image processing device where the GPU is located, and the memory can be used to store the image to be processed, as well as the relevant data of the SM 201 and the SVGF accelerator 202 in the image processing process, etc. This application implements The example does not impose specific restrictions on this. In FIG. 2 , the memory includes DDR, and the GPU is coupled with the DDR as an example for description.
当该GPU处理图像时,该N个处理核可以同时用于处理不同的图像,也可以同时用于处理同一图像的不同图像块(tile)。示例性的,如图3所示,以该N个处理核中的每个处理核用于处理同一图像的不同图像块(tile)为例,则待处理的图像可以被划分为多个图像块,该多个图像块的尺寸可以是相同的,该多个图像块的数量可以小于或等于N,该多个图像块可以分别由该N个处理核中的不同处理核来处理。对于该N个处理核中的每个处理核,该处理核中的SM 201可用于对图像块进行通用处理,比如,SM 201可用于获取图像块中像素点的参数信息等,SVGF加速器202可用于对该图像块进行SVGF处理。When the GPU processes images, the N processing cores can be used to process different images at the same time, and can also be used to process different image tiles (tiles) of the same image at the same time. Exemplarily, as shown in FIG. 3 , taking each of the N processing cores for processing different image blocks (tiles) of the same image as an example, the image to be processed may be divided into multiple image blocks. , the size of the multiple image blocks may be the same, the number of the multiple image blocks may be less than or equal to N, and the multiple image blocks may be processed by different processing cores in the N processing cores respectively. For each processing core in the N processing cores, the SM 201 in the processing core can be used to perform general processing on the image block. For example, the SM 201 can be used to obtain parameter information of pixels in the image block, etc., and the SVGF accelerator 202 can be used for SVGF processing of the image block.
需要说明的是,该N个处理核同时用于处理不同的图像的过程与该N个处理核同时用于处理同一图像的不同图像块的过程是类似的。本申请主要涉及SVGF加速器202通过硬件实现方式对图像或图像块进行SVGF处理的相关描述,下面以该N个处理核中的一个处理核为例,对该处理核中的SVGF加速器202具体结构进行详细描述。It should be noted that the process that the N processing cores are used to process different images at the same time is similar to the process that the N processing cores are used to process different image blocks of the same image at the same time. This application mainly relates to the relevant description of the SVGF accelerator 202 performing SVGF processing on images or image blocks through hardware implementation. The following takes one processing core in the N processing cores as an example to describe the specific structure of the SVGF accelerator 202 in the processing core. Detailed Description.
为便于理解,这里先对SVGF方法中涉及的时域滤波处理、过滤动量处理和空域滤波处理相关概念进行解释说明。For ease of understanding, concepts related to the temporal filtering processing, the filtering momentum processing, and the spatial filtering processing involved in the SVGF method are explained here first.
时域滤波处理:是指利用多个连续帧图像中的上一帧图像对下一帧图像做滤波的方式。比如,对一个像素点做时域滤波处理可以是指利用上一帧图像中该像素点以及周围的多个像素点对下一帧图像中的该像素点做滤波。Temporal filtering processing: refers to the method of filtering the next frame image by using the previous frame image in multiple consecutive frame images. For example, performing temporal filtering processing on a pixel may refer to using the pixel in the previous frame of image and multiple surrounding pixels to filter the pixel in the next frame of image.
过滤动量处理:是指根据一个像素点的时域滤波次数(也可以称为历史计算次数),选择性地利用同一帧图像中该像素点及周围的多个像素点对该像素点进行滤波的方式。比如,对一个像素点做过滤动量处理可以是指在该像素点的时域滤波次数大于一个预设值时,利用同一帧图像中该像素点及周围的多个像素点对该像素点进行滤波。Filter momentum processing: It refers to the process of selectively using the pixel and surrounding multiple pixels in the same frame image to filter the pixel according to the number of temporal filtering of a pixel (also known as the number of historical calculations). Way. For example, filtering momentum processing on a pixel may mean that when the number of temporal filtering of the pixel is greater than a preset value, the pixel and surrounding multiple pixels in the same frame image are used to filter the pixel. .
空域滤波处理:是指利用同一帧图像中一个像素点及周围的多个像素点对该像素点进行滤波的方式。比如,对一个像素点做空域滤波处理可以是指利用该像素点及周围不同范围内的多个像素点,分别对该像素做多次滤波。Spatial filtering processing: refers to a method of filtering a pixel point and multiple surrounding pixels in the same frame image. For example, performing spatial filtering processing on a pixel may refer to using the pixel and multiple pixels in different surrounding ranges to perform multiple filtering on the pixel respectively.
图4为本申请实施例提供的一种GPU中SVGF加速器的结构示意图,该SVGF加速器包括:时域处理引擎(temporal processing engine,TPE)1、动量处理引擎(moment processing engine,MPE)2和空域处理引擎(spatial processing engine,SPE)3,MPE2包括第一缓存器21和动量计算电路22,SPE 3包括第二缓存器31和空域计算电路32。FIG. 4 is a schematic structural diagram of an SVGF accelerator in a GPU provided by an embodiment of the present application. The SVGF accelerator includes: a temporal processing engine (TPE) 1, a momentum processing engine (moment processing engine, MPE) 2 and a spatial domain A processing engine (spatial processing engine, SPE) 3, MPE2 includes a first buffer 21 and a momentum calculation circuit 22, and SPE 3 includes a second buffer 31 and a spatial calculation circuit 32.
在本申请实施例中,TPE 1可用于根据待处理图像的上一帧图像对该待处理图像做时域滤波处理以得到第一图像,第一图像中像素点的参数信息为第一参数信息;TPE1还可用于将第一参数信息发送给MPE 2;MPE 2中的第一缓存器21可用于缓存第一 参数信息,比如,第一缓存器21可用于缓存第一图像中一个或者多个像素点的第一参数信息;MPE 2中的动量计算电路22可用于根据第一参数信息对第一图像做过滤动量处理以得到第二图像,第二图像中像素点的参数信息为第二参数信息;动量计算电路22还可用于将第二参数信息发送给SPE 3;SPE 3中的第二缓存器31可用于缓存第二参数信息,比如,第二缓存器31可用于缓存第二图像中一个或者多个像素点的第二参数信息;空域计算电路32用于根据第二参数信息对第二图像做空域滤波处理以得到目标图像,目标图像中像素点的参数信息为目标参数信息。In this embodiment of the present application, the TPE 1 may be used to perform temporal filtering processing on the to-be-processed image according to the previous frame of the image to obtain a first image, and the parameter information of the pixels in the first image is the first parameter information TPE1 can also be used to send the first parameter information to MPE 2; the first buffer 21 in MPE 2 can be used to buffer the first parameter information, for example, the first buffer 21 can be used to buffer one or more in the first image The first parameter information of the pixel; the momentum calculation circuit 22 in the MPE 2 can be used to filter the momentum processing of the first image according to the first parameter information to obtain the second image, and the parameter information of the pixel in the second image is the second parameter The momentum calculation circuit 22 can also be used to send the second parameter information to the SPE 3; the second buffer 31 in the SPE 3 can be used to buffer the second parameter information, for example, the second buffer 31 can be used to buffer the second image The second parameter information of one or more pixels; the spatial calculation circuit 32 is used to perform spatial filtering processing on the second image according to the second parameter information to obtain the target image, and the parameter information of the pixels in the target image is the target parameter information.
可选的,TPE 1可以包括时域计算电路11和第三缓存器12;时域计算电路11具体用于根据该待处理图像的上一帧图像对该待处理图像做时域滤波处理以得到第一图像;第三缓存器12可用于缓存该上一帧图像中像素点的参数信息,该上一帧图像中像素点的参数信息可以称为历史参数信息,即第三缓存器12可用于缓存该上一帧图像中一个或者多个像素点的历史参数信息;和/或,第三缓存器12还可用于缓存该待处理图像中像素点的参数信息,该待处理图像中像素点的参数信息可以称为初始参数信息,即第三缓存器12还可用于缓存该待处理图像中一个或者多个像素点的初始参数信息。Optionally, the TPE 1 may include a time domain calculation circuit 11 and a third buffer 12; the time domain calculation circuit 11 is specifically configured to perform a time domain filtering process on the to-be-processed image according to the previous frame of the image to be processed to obtain The first image; the third buffer 12 can be used to buffer the parameter information of the pixels in the previous frame image, and the parameter information of the pixels in the previous frame image can be called historical parameter information, that is, the third buffer 12 can be used for Cache the historical parameter information of one or more pixels in the previous frame of image; and/or, the third buffer 12 can also be used to cache the parameter information of the pixels in the image to be processed, the parameter information of the pixels in the image to be processed The parameter information may be referred to as initial parameter information, that is, the third buffer 12 may also be used to buffer the initial parameter information of one or more pixels in the image to be processed.
其中,该待处理图像和该上一帧图像可以是完整的两帧图像,也可以是两帧图像中对应的两个图像块。比如,一帧图像的尺寸为1920×1080,该待处理图像和该上一帧图像的尺寸可以均为1920×1080;或者,一帧图像的尺寸为1920×1080且一帧图像可以被划分为6个图像块,每个图像块的尺寸为640×540,则该待处理图像和该上一帧图像的尺寸可以均为640×540。Wherein, the to-be-processed image and the previous frame of image may be complete two frames of images, or may be two corresponding image blocks in the two frames of images. For example, if the size of one frame of image is 1920×1080, the size of the image to be processed and the previous frame of image may both be 1920×1080; or, the size of one frame of image is 1920×1080 and one frame of image may be divided into There are 6 image blocks, and the size of each image block is 640×540, then the size of the image to be processed and the image of the previous frame can both be 640×540.
另外,一个像素点的参数信息可以包括以下参数中的一个或者多个:几何坐标信息,亮度(luminance)信息,动量(moment)信息,运动向量(motion vector),方差,历史计算次数;该几何坐标信息可以包括法向(normal)、深度(depth)、坐标位置(coordinate)。即初始参数信息、历史参数信息和第一参数信息中的任一参数信息均可以包括上述参数中的一个或者多个。可选的,该待处理图像中像素点的初始参数信息可以是由该GPU中的SM确定的,该上一帧图像中像素点的历史参数信息可以是由该SVGF加速器在处理该上一帧图像后得到的。In addition, the parameter information of a pixel may include one or more of the following parameters: geometric coordinate information, luminance (luminance) information, momentum (moment) information, motion vector (motion vector), variance, historical calculation times; the geometric The coordinate information may include normal, depth, and coordinate. That is, any parameter information among the initial parameter information, the historical parameter information, and the first parameter information may include one or more of the above parameters. Optionally, the initial parameter information of the pixels in the image to be processed may be determined by the SM in the GPU, and the historical parameter information of the pixels in the previous frame of the image may be processed by the SVGF accelerator in the previous frame. obtained after the image.
再者,时域计算电路11在对该待处理图像做时域滤波处理时可以按照逐行或者逐列的顺序对该待处理图像中的像素点进行逐像素处理。同理,动量计算电路22在对第一图像做过滤动量处理、以及空域计算电路32在对第二图像做空域滤波处理时,也可以按照逐行或者逐列的顺序分别对第一图像和第二图像中的像素点进行逐像素处理。下面分别对时域计算电路11、动量计算电路22和空域计算电路32的具体结构进行介绍说明。Furthermore, the temporal computing circuit 11 may perform pixel-by-pixel processing on the pixel points in the to-be-processed image in a row-by-row or column-by-column sequence when performing temporal filter processing on the to-be-processed image. Similarly, when the momentum calculation circuit 22 performs filtering momentum processing on the first image, and when the spatial domain computing circuit 32 performs spatial filtering processing on the second image, the first image and the first image can also be processed in a row-by-row or column-by-column order. The pixels in the two images are processed pixel by pixel. The specific structures of the time domain calculation circuit 11 , the momentum calculation circuit 22 and the space domain calculation circuit 32 will be introduced and described below.
在本申请实施例中,如图5所示,时域计算电路11可以包括:信息获取电路111、信号生成电路112和第一卷积电路113。关于信息获取电路111、信号生成电路112和第一卷积电路113的相关描述具体如下所述。In this embodiment of the present application, as shown in FIG. 5 , the time domain calculation circuit 11 may include: an information acquisition circuit 111 , a signal generation circuit 112 and a first convolution circuit 113 . The relevant descriptions about the information acquisition circuit 111 , the signal generation circuit 112 , and the first convolution circuit 113 are as follows.
在一种可能的实施例中,信息获取电路111用于:对于该待处理图像中的第一像素点,获取第一像素点对应在该上一帧图像中的历史像素点所在的第一预设窗口内的多个像素点的历史参数信息,第一像素点是该待处理图像中的任一像素点。In a possible embodiment, the information obtaining circuit 111 is configured to: for the first pixel in the to-be-processed image, obtain the first pre-prediction where the first pixel corresponds to the historical pixel in the previous frame of image. Assuming the historical parameter information of multiple pixels in the window, the first pixel is any pixel in the image to be processed.
其中,第一像素点的初始参数信息可以包括第一坐标位置、第一运动向量、初始 亮度信息和初始动量信息。第一像素点的运动向量可以是第一像素点的第一坐标位置与第一像素点对应在该上一帧图像中的历史像素点的历史坐标位置之间的运动向量。比如,第一像素点的第一坐标位置为(0,0)、第一运动向量为(2,2),则第一像素点对应在该上一帧图像中的历史像素点的历史坐标位置为(0,0)+(2,2)=(2,2)。Wherein, the initial parameter information of the first pixel point may include a first coordinate position, a first motion vector, initial brightness information and initial momentum information. The motion vector of the first pixel point may be a motion vector between the first coordinate position of the first pixel point and the historical coordinate position of the first pixel point corresponding to the historical pixel point in the previous frame of image. For example, if the first coordinate position of the first pixel is (0, 0) and the first motion vector is (2, 2), then the first pixel corresponds to the historical coordinate position of the historical pixel in the previous frame of image is (0,0)+(2,2)=(2,2).
另外,第一预设窗口是预设的用于对该待处理图像中的像素点进行时域滤波处理的卷积窗口。在按照逐行或者逐列的顺序对该待处理图像中的像素点进行处理的过程中,第一预设窗口是滑动的,从而对于不同的第一像素点,第一预设窗口内的多个像素点也是不同的。In addition, the first preset window is a preset convolution window used for performing temporal filtering processing on the pixels in the image to be processed. In the process of processing the pixels in the image to be processed in a row-by-row or column-by-column sequence, the first preset window is sliding, so that for different first pixels, many pixels in the first preset window are slid. pixels are also different.
具体的,信息获取电路111可以根据第一像素点的第一坐标位置和第一运动向量确定第一像素点对应在该上一帧图像中的历史像素点,即确定该历史像素点的历史坐标位置;信息获取电路111还可以基于该历史坐标位置获取该历史像素点所在的第一预设窗口内的多个像素点的历史参数信息。可选的,信息获取电路111以该历史像素点的历史坐标位置作为第一预设窗口的中心,获取第一预设窗口内的多个像素点的历史参数信息。示例性的,第一预设窗口为3×3的窗口、该历史坐标位置为(2,2),则第一预设窗口内的多个像素点可以为该上一帧图像中坐标位置为(1,1)至(3,3)的像素点。Specifically, the information acquisition circuit 111 may determine, according to the first coordinate position of the first pixel and the first motion vector, the historical pixel corresponding to the first pixel in the previous frame of image, that is, determine the historical coordinate of the historical pixel position; the information acquisition circuit 111 may also acquire historical parameter information of a plurality of pixel points within the first preset window where the historical pixel point is located based on the historical coordinate position. Optionally, the information acquisition circuit 111 uses the historical coordinate position of the historical pixel point as the center of the first preset window, and acquires historical parameter information of a plurality of pixel points in the first preset window. Exemplarily, the first preset window is a 3×3 window, and the historical coordinate position is (2, 2), then the multiple pixels in the first preset window may be the coordinate positions in the previous frame of image: Pixels from (1,1) to (3,3).
在一种可能的实施例中,信号生成电路112用于:根据该多个像素点的几何坐标信息生成控制信号。可选的,信号生成电路112具体用于:当第一预设窗口内的多个像素点中存在预设区域内的至少一个像素点的几何坐标信息满足指定坐标范围时生成有效的控制信号,比如有效的控制信号可以为高电平,该指定坐标范围与第一像素点的几何坐标信息有关;当第一预设窗口内的多个像素点的几何坐标信息均不满足该指定坐标范围时生成无效的控制信息,比如,无效的控制信息可以为低电平。In a possible embodiment, the signal generating circuit 112 is configured to: generate a control signal according to the geometric coordinate information of the plurality of pixel points. Optionally, the signal generation circuit 112 is specifically configured to: generate an effective control signal when the geometric coordinate information of at least one pixel in the preset area among the plurality of pixels in the first preset window satisfies the specified coordinate range, For example, the effective control signal may be high level, and the specified coordinate range is related to the geometric coordinate information of the first pixel; when the geometric coordinate information of multiple pixels in the first preset window does not meet the specified coordinate range Invalid control information is generated, for example, invalid control information may be low.
其中,第一预设窗口可以被划分为多个预设区域,该多个预设区域的形状和大小可以是不同的。比如,如图6所示,第一预设窗口为3×3的窗口,该多个预设区域可以包括第一预设区域和第二预设区域,第一预设区域可以为“田”形区域,第二预设区域可以为“L”字形区域。The first preset window may be divided into multiple preset regions, and the shapes and sizes of the multiple preset regions may be different. For example, as shown in FIG. 6 , the first preset window is a 3×3 window, the multiple preset areas may include a first preset area and a second preset area, and the first preset area may be “field” The second preset area may be an "L"-shaped area.
另外,该多个像素点中每个像素点的几何坐标信息可以包括历史法向、历史深度和历史坐标位置;第一像素点的几何坐标信息可以包括第一法向、第一深度和第一坐标位置。可选的,上述指定坐标范围具体可以包括:历史坐标位置在该上一帧图像的长宽范围内,第一深度与历史深度之间的差值小于预设比值,第一法向与历史法向之间的差值小于预设差值。In addition, the geometric coordinate information of each pixel in the plurality of pixels may include a historical normal, a historical depth, and a historical coordinate position; the geometric coordinate information of the first pixel may include a first normal, a first depth, and a first Coordinate location. Optionally, the above-mentioned specified coordinate range may specifically include: the historical coordinate position is within the length and width of the previous frame of image, the difference between the first depth and the historical depth is less than the preset ratio, the first normal direction and the historical method. The difference between the directions is less than the preset difference.
具体的,第一预设窗口包括的多个预设区域可以配置有优先级,信号生成电路112可以按照优先级从高到低的顺序依次进行处理。若某一预设区域内存在至少一个像素点的几何坐标信息满足指定坐标范围,比如该至少一个像素点的历史坐标位置在该上一帧图像的长宽范围内、第一深度与该至少一个像素点的历史深度之间的差值均小于预设比值、以及第一法向与该至少一个像素点的历史法向之间的差值均小于预设差值,则信号生成电路112生成有效的控制信号。若某一预设区域内的像素点均不满足该指定坐标范围,比如该预设区域内的所有像素点的历史坐标位置均不在该上一帧图像的 长宽范围内、或者第一法向与该所有像素点的历史法向之间的差值均大于或等于预设差值、或者第一法向与该所有像素点的历史法向之间的差值均大于或等于预设差值,则信号生成电路112可以根据下一个优先级的预设区域内的像素点重复上述操作。若第一预设窗口包括的该多个预设区域内的像素点均不满足该指定坐标范围,则信号生成电路112可以生成无效的控制信号。为便于描述,若该多个预设区域中存在某一预设区域内存在至少一个像素点的几何坐标信息满足指定坐标范围,将该预设区域成为目标预设区域。Specifically, the plurality of preset regions included in the first preset window may be configured with priorities, and the signal generation circuit 112 may perform processing in order of priority from high to low. If the geometric coordinate information of at least one pixel in a certain preset area satisfies the specified coordinate range, for example, the historical coordinate position of the at least one pixel is within the length and width of the previous frame of image, the first depth and the at least one If the difference between the historical depths of the pixels is smaller than the preset ratio, and the difference between the first normal and the historical normal of the at least one pixel is smaller than the preset difference, then the signal generation circuit 112 generates an effective control signal. If none of the pixels in a preset area meet the specified coordinate range, for example, the historical coordinate positions of all the pixels in the preset area are not within the length and width of the previous frame of image, or the first normal direction The difference with the historical normal of all the pixels is greater than or equal to the preset difference, or the difference between the first normal and the historical normal of all the pixels is greater than or equal to the preset difference , the signal generation circuit 112 may repeat the above operations according to the pixel points in the preset area of the next priority. If none of the pixels in the multiple preset regions included in the first preset window satisfy the specified coordinate range, the signal generating circuit 112 may generate an invalid control signal. For convenience of description, if the geometric coordinate information of at least one pixel in a certain preset area in the plurality of preset areas satisfies the specified coordinate range, the preset area becomes the target preset area.
在一种可能的实施例中,第一卷积电路113用于:在该控制信号有效时分别根据该目标预设区域内的像素点的历史亮度信息和历史动量信息确定第一像素点在第一图像中的第一亮度信息和第一动量信息;在该控制信号无效时根据预设亮度信息和预设动量信息分别确定第一像素点在第一图像中的第一亮度信息和第一动量信息;根据第一动量信息确定第一方差。In a possible embodiment, the first convolution circuit 113 is configured to: when the control signal is valid, determine whether the first pixel is in the first The first brightness information and the first momentum information in an image; when the control signal is invalid, the first brightness information and the first momentum of the first pixel in the first image are respectively determined according to the preset brightness information and the preset momentum information information; the first variance is determined according to the first momentum information.
可选的,第一卷积电路113可以包括:第一亮度卷积电路、第一动量卷积电路和第一方差计算电路。第一亮度卷积电路用于:在该控制信号有效时基于该目标预设区域内的像素点的历史亮度信息做卷积运算,以得到第一像素点的第一亮度信息;在该控制信号无效时将预设亮度信息确定为第一像素点的第一亮度信息,比如,该预设亮度信息可以为0;将第一亮度信息和该目标预设区域内的像素点的历史亮度信息做阿尔法混合(alpha blender)之后得到的亮度信息确定为第一像素点在第一图像中的第一亮度信息。第一动量卷积电路用于:在该控制信号有效时基于该目标预设区域内的像素点的历史动量信息做卷积运算,以得到第一像素点在第一图像中的第一动量信息;在该控制信号无效时将预设动量信息确定为第一像素点的第一动量信息,比如,该预设动量信息可以为0;将第一动量信息和该目标预设区域内的像素点的历史动量信息做阿尔法混合(alpha blender)之后得到的动量信息确定为第一像素点在第一图像中的第一动量信息。第一方差计算电路,用于根据第一动量信息确定第一像素点在第一图像中的第一方差。Optionally, the first convolution circuit 113 may include: a first luminance convolution circuit, a first momentum convolution circuit, and a first variance calculation circuit. The first brightness convolution circuit is used for: when the control signal is valid, the convolution operation is performed based on the historical brightness information of the pixel points in the target preset area to obtain the first brightness information of the first pixel point; When invalid, the preset brightness information is determined as the first brightness information of the first pixel, for example, the preset brightness information may be 0; the first brightness information and the historical brightness information of the pixels in the target preset area are combined. The luminance information obtained after alpha blending is determined as the first luminance information of the first pixel in the first image. The first momentum convolution circuit is used to: perform a convolution operation based on the historical momentum information of the pixel points in the target preset area when the control signal is valid, so as to obtain the first momentum information of the first pixel point in the first image When the control signal is invalid, the preset momentum information is determined as the first momentum information of the first pixel, for example, the preset momentum information can be 0; the first momentum information and the pixel in the target preset area are determined The momentum information obtained after performing alpha blending on the historical momentum information of , is determined as the first momentum information of the first pixel in the first image. The first variance calculation circuit is configured to determine the first variance of the first pixel in the first image according to the first momentum information.
示例性的,若控制信号有效,该目标预设区域为包括四个像素点的“田”字形的预设区域,且该四个像素点中的每个像素点对应有一个第一卷积权重,则第一亮度卷积电路可以根据该四个像素点的第一卷积权重和该四个像素点的历史亮度信息做卷积运算,并将卷积运算得到的亮度信息与该四个像素点的历史亮度信息做阿尔法混合,以得到第一像素点在第一图像中的第一亮度信息;第一动量卷积电路可以根据该四个像素点的第一卷积权重和该四个像素点的历史动量信息做卷积运算,并将卷积运算得到的动量信息与该四个像素点的动量亮度信息做阿尔法混合,以得到第一像素点在第一图像中的第一动量信息;第一方差计算电路可以根据得到的第一动量信息确定第一方差,比如,第一动量信息包括红色(red,R)通道和绿色(green,G)通道的动量值,第一方差计算电路根据R通道和G通道的动量值确定第一方差。Exemplarily, if the control signal is valid, the target preset area is a preset area of a "field" shape including four pixels, and each of the four pixels corresponds to a first convolution weight. , then the first luminance convolution circuit can perform a convolution operation according to the first convolution weight of the four pixels and the historical luminance information of the four pixels, and combine the luminance information obtained by the convolution operation with the four pixels The historical brightness information of the point is alpha blended to obtain the first brightness information of the first pixel in the first image; the first momentum convolution circuit can be based on the first convolution weight of the four pixels and the four pixels. The historical momentum information of the point is subjected to a convolution operation, and the momentum information obtained by the convolution operation is mixed with the momentum brightness information of the four pixels to obtain the first momentum information of the first pixel in the first image; The first variance calculation circuit may determine the first variance according to the obtained first momentum information. For example, the first momentum information includes the momentum values of the red (red, R) channel and the green (green, G) channel. The difference calculation circuit determines the first variance based on the momentum values of the R channel and the G channel.
进一步的,第一预设窗口包括的多个预设区域中不同预设区域内的像素点对应的第一卷积权重可以是不同的,且该第一卷积权重可以是配置的,也可以是经过计算得到的,该第一卷积权重的具体数值可以在大于或等于0、且小于或等于1。比如,该多个预设区域包括“田”字形的预设区域和“L”形的预设区域,“田”字形的预设区域 内的像素点的第一卷积权重是计算得到的,“L”形的预设区域内的像素点的第一卷积权重是配置的(比如,每个像素点的第一卷积权重可以配置为1)。Further, the first convolution weights corresponding to the pixels in different preset areas among the multiple preset areas included in the first preset window may be different, and the first convolution weights may be configured or is obtained through calculation, and the specific value of the first convolution weight may be greater than or equal to 0 and less than or equal to 1. For example, the plurality of preset regions include a "Tian"-shaped preset region and an "L"-shaped preset region, and the first convolution weights of the pixels in the "Tian"-shaped preset region are obtained by calculation, The first convolution weight of the pixels in the "L"-shaped preset area is configured (for example, the first convolution weight of each pixel may be configured as 1).
可选的,时域计算电路11还可以包括:第一权重计算电路114。第一权重计算电路114用于:根据目标预设区域内的每个像素点的几何坐标信息,确定该像素点的法向权重、深度权重和亮度权重;根据目标预设区域内的每个像素点的法向权重、深度权重和亮度权重确定该像素点的第一卷积权重。Optionally, the time domain calculation circuit 11 may further include: a first weight calculation circuit 114 . The first weight calculation circuit 114 is used for: according to the geometric coordinate information of each pixel in the target preset area, determine the normal weight, depth weight and brightness weight of the pixel; according to each pixel in the target preset area The point's normal weight, depth weight, and luminance weight determine the first convolution weight for that pixel.
具体的,对于目标预设区域内的每个像素点,该像素点的几何坐标信息可以包括历史坐标位置、历史法向和历史深度,该像素点还包括历史亮度信息,则第一权重计算电路可以根据该像素点与第一像素点对应的历史像素点之间的历史坐标位置的差距和历史法向的差距确定该像素点的法向权重,根据该历史坐标位置的差距和历史深度的差距确定该像素点的深度权重,根据该历史坐标位置的差距和历史亮度信息的差距确定该像素点的亮度权重;之后,第一权重计算电路可以将该像素点的法向权重、深度权重和亮度权重分别乘以各自的预设占比,并将三者乘以各自的预设占比之后的乘积的和确定为该像素点的第一卷积权重。需要说明的是,上述预设占比可以是预先设置的,且上述法向权重、深度权重和亮度权重中各自对应的预设占比可以相同或不同,本申请实施例对此不作具体限制。Specifically, for each pixel in the target preset area, the geometric coordinate information of the pixel may include historical coordinate position, historical normal and historical depth, and the pixel also includes historical brightness information, then the first weight calculation circuit The normal weight of the pixel point can be determined according to the difference between the historical coordinate position and the historical normal direction between the pixel point and the historical pixel point corresponding to the first pixel point, according to the difference between the historical coordinate position and the historical depth. Determine the depth weight of the pixel point, and determine the brightness weight of the pixel point according to the difference between the historical coordinate position and the historical brightness information; after that, the first weight calculation circuit can The normal weight of the pixel point, the depth weight and the brightness The weights are respectively multiplied by their respective preset proportions, and the sum of the products obtained by multiplying the three by their respective preset proportions is determined as the first convolution weight of the pixel. It should be noted that the preset proportions may be preset, and the respective preset proportions of the normal weight, depth weight, and brightness weight may be the same or different, which are not specifically limited in this embodiment of the present application.
进一步的,时域计算电路11还可以包括:更新电路115。更新电路115用于:在该控制信号有效时,将该历史像素点的历史计算次数加一后得到的数值确定为第一像素点的历史计算次数,比如,该历史像素点的历史计算次数为0,则第一像素点的历史计算次数为0+1=1;在该控制信号无效时,确定第一像素点的历史计算次数为0。Further, the time domain calculation circuit 11 may further include: an update circuit 115 . The update circuit 115 is used for: when the control signal is valid, the value obtained by adding one to the historical calculation times of the historical pixel point is determined as the historical calculation times of the first pixel point, for example, the historical calculation times of the historical pixel point is 0, the historical calculation times of the first pixel is 0+1=1; when the control signal is invalid, it is determined that the historical calculation times of the first pixel is 0.
示例性的,如图7所示,为本申请实施例提供的一种TPE 1的结构示意图。该TPE1包括:时域计算电路11和第三缓存器12,第三缓存器12可用于缓存第一预设窗口内的多个像素点的历史参数信息。其中,时域计算电路11包括信号获取电路111、信号生成电路112、第一卷积电路113、第一权重计算电路114和更新电路115,第一卷积电路113包括第一亮度卷积电路、第一动量卷积电路和第一方差计算电路。具体的,对于该待处理图像中的第一像素点,该时域滤波的过程可以包括:信号获取电路111获取该上一帧图像中的第一预设窗口内的多个像素点的历史参数信息;信号生成电路112可用于根据该多个像素点的几何坐标信息生成控制信号;第一权重计算电路114用于确定目标预设区域的每个像素点的第一卷积权重(预配置或者经过计算得到);第一亮度卷积电路用于根据目标预设区域的每个像素点的第一卷积权重和历史亮度信息确定第一像素点在第一图像中的第一亮度信息;第一动量卷积电路用于根据目标预设区域的每个像素点的第一卷积权重和历史动量信息确定第一像素点在第一图像中的第一亮度信息;第一方差计算电路用于根据第一动量信息确定第一方差;更新电路115用于更新第一像素点的历史计算次数。关于上述每个电路的详细描述可以参见上文中的阐述,本申请实施例在此不再赘述。Exemplarily, as shown in FIG. 7 , a schematic structural diagram of a TPE 1 provided in an embodiment of the present application. The TPE1 includes: a time domain calculation circuit 11 and a third buffer 12, where the third buffer 12 can be used to buffer historical parameter information of multiple pixels in the first preset window. The time domain calculation circuit 11 includes a signal acquisition circuit 111, a signal generation circuit 112, a first convolution circuit 113, a first weight calculation circuit 114 and an update circuit 115, and the first convolution circuit 113 includes a first luminance convolution circuit, a first momentum convolution circuit and a first variance calculation circuit. Specifically, for the first pixel in the image to be processed, the temporal filtering process may include: the signal acquisition circuit 111 acquires historical parameters of multiple pixels in the first preset window in the previous frame of image information; the signal generation circuit 112 can be used to generate a control signal according to the geometric coordinate information of the plurality of pixels; the first weight calculation circuit 114 is used to determine the first convolution weight (preconfigured or Obtained after calculation); the first brightness convolution circuit is used to determine the first brightness information of the first pixel in the first image according to the first convolution weight and historical brightness information of each pixel in the target preset area; A momentum convolution circuit is used to determine the first brightness information of the first pixel in the first image according to the first convolution weight and historical momentum information of each pixel in the target preset area; the first variance calculation circuit uses for determining the first variance according to the first momentum information; the updating circuit 115 is used for updating the historical calculation times of the first pixel point. For a detailed description of each of the foregoing circuits, reference may be made to the foregoing description, and details are not described herein again in this embodiment of the present application.
当时域计算电路11根据上述方式完成对该待处理图像中的第一像素点的时域滤波处理后,时域计算电路11可以将第一像素点的第一参数信息发送给MPE 2,MPE 2中的第一缓存器21可以缓存第一像素点的第一参数信息。比如,第一像素点的第一参数信息可以包括几何坐标信息、第一亮度信息、第一动量信息、第一方差和历史计算 次数等。After the time domain calculation circuit 11 completes the time domain filtering processing of the first pixel in the to-be-processed image according to the above method, the time domain calculation circuit 11 can send the first parameter information of the first pixel to the MPE 2, and the MPE 2 The first buffer 21 in can buffer the first parameter information of the first pixel. For example, the first parameter information of the first pixel point may include geometric coordinate information, first brightness information, first momentum information, first variance, and historical calculation times, and the like.
在本申请实施例中,如图8所示,动量计算电路22可以包括:第二卷积电路221和选择电路222。关于第二卷积电路221和选择电路222的相关描述具体如下所述。In this embodiment of the present application, as shown in FIG. 8 , the momentum calculation circuit 22 may include: a second convolution circuit 221 and a selection circuit 222 . The relevant descriptions about the second convolution circuit 221 and the selection circuit 222 are as follows.
在一种可能的实施例中,对于第一图像中的第一像素点,第一像素点为第一图像中的任一像素点,第二卷积电路221用于:根据第一像素点所在的第二预设窗口内的多个像素点的第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息;根据第一像素点所在的第二预设窗口内的多个像素点的第一动量信息做卷积运算,以得到第一像素点的卷积动量信息;根据卷积动量信息确定第一像素点的卷积方差。In a possible embodiment, for the first pixel in the first image, the first pixel is any pixel in the first image, and the second convolution circuit 221 is used for: according to the location of the first pixel Perform convolution operation on the first brightness information of multiple pixels in the second preset window to obtain the convolution brightness information of the first pixel; The convolution operation is performed on the first momentum information of the pixel point to obtain the convolution momentum information of the first pixel point; the convolution variance of the first pixel point is determined according to the convolution momentum information.
其中,第二预设窗口是预设的用于对第一图像中的像素点进行过滤动量处理的卷积窗口,比如,第二预设窗口可以为7×7的窗口。在按照逐行或者逐列的顺序对第一图像中的像素点进行处理的过程中,第二预设窗口是滑动的,从而对于不同的第一像素点,第二预设窗口内的多个像素点也是不同的。Wherein, the second preset window is a preset convolution window used to perform filtering momentum processing on the pixels in the first image, for example, the second preset window may be a 7×7 window. In the process of processing the pixels in the first image in a row-by-row or column-by-column sequence, the second preset window is sliding, so that for different first pixels, multiple Pixels are also different.
可选的,第二卷积电路221可以包括:第二亮度卷积电路、第二动量卷积电路和第二方差计算电路。第二亮度卷积电路,用于根据上述第二预设窗口内的多个像素点的卷积权重和该多个像素点的第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息。第二动量卷积电路,用于根据上述第二预设窗口内的多个像素点的卷积权重和该多个像素点的第一动量信息做卷积运算,以得到第一像素点的卷积动量信息。第二方差计算电路,用于根据卷积动量信息确定第一像素点的卷积方差。Optionally, the second convolution circuit 221 may include: a second luminance convolution circuit, a second momentum convolution circuit, and a second variance calculation circuit. The second luminance convolution circuit is configured to perform a convolution operation according to the convolution weights of the plurality of pixels in the second preset window and the first luminance information of the plurality of pixels, so as to obtain the convolution of the first pixel. Accumulate brightness information. The second momentum convolution circuit is configured to perform a convolution operation according to the convolution weights of the plurality of pixels in the second preset window and the first momentum information of the plurality of pixels, so as to obtain the volume of the first pixel. Accumulated momentum information. The second variance calculation circuit is configured to determine the convolution variance of the first pixel point according to the convolution momentum information.
示例性的,若第二预设窗口内包括49个像素点,该49个像素点中的每个像素点对应有一个卷积权重,则第二亮度卷积电路可以根据该49个像素点的卷积权重和该49个像素点的第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息;第二动量卷积电路可以根据该49个像素点的卷积权重和该49个像素点的第一动量信息做卷积运算,以得到第一像素点的卷积动量信息;第二方差计算电路可以根据该卷积动量信息确定第一像素点的卷积方差,比如,该卷积动量信息包括R通道和G通道的动量值,第二方差计算电路根据R通道和G通道的动量值确定第一像素点的卷积方差。Exemplarily, if the second preset window includes 49 pixel points, and each pixel point in the 49 pixel points corresponds to a convolution weight, the second luminance convolution circuit can be based on the 49 pixel points. The convolution weight and the first brightness information of the 49 pixels are subjected to a convolution operation to obtain the convolution brightness information of the first pixel; the second momentum convolution circuit can be based on the convolution weight of the 49 pixels and the The first momentum information of the 49 pixels is subjected to a convolution operation to obtain the convolution momentum information of the first pixel; the second variance calculation circuit can determine the convolution variance of the first pixel according to the convolution momentum information, for example, The convolution momentum information includes the momentum values of the R channel and the G channel, and the second variance calculation circuit determines the convolution variance of the first pixel point according to the momentum values of the R channel and the G channel.
进一步的,动量计算电路22还可以包括:第二权重计算电路223。第二权重计算电路223用于:根据第二预设窗口内的每个像素点的几何坐标信息,确定该像素点的法向权重、深度权重和亮度权重;根据第二预设窗口内的每个像素点的法向权重、深度权重和亮度权重确定该像素点的第二卷积权重。Further, the momentum calculation circuit 22 may further include: a second weight calculation circuit 223 . The second weight calculation circuit 223 is configured to: determine the normal weight, depth weight and brightness weight of each pixel in the second preset window according to the geometric coordinate information of the pixel; The normal weight, depth weight and luminance weight of each pixel determine the second convolution weight of the pixel.
具体的,对于第二预设窗口内的每个像素点,该像素点的几何坐标信息可以包括第一坐标位置、第一法向和第一深度,该像素点还包括第一亮度信息,则若第一坐标位置在第一图像的长宽范围之内,第二权重计算电路可以用于:根据该像素点与第一像素点之间的第一法向的差距确定该像素点的法向权重;根据该像素点与第一像素点之间的第一深度的差距确定该像素点的深度权重;根据该像素点与第一像素点之间的第一亮度信息的差距确定该像素点的亮度权重;将该像素点的法向权重、深度权重和亮度权重分别乘以各自的预设占比,并将三者乘以各自的预设占比之后的乘积的和确定为该像素点的第二卷积权重。需要说明的是,上述预设占比可以是预先设置的,且上述法向权重、深度权重和亮度权重中各自对应的预设占比可以相同或不同,本申请实施例对此不作具体限制。另外,对于第一坐标范围不在第一图像的长宽范围之内的 像素点,该像素点的第二卷积权重可以为0。Specifically, for each pixel in the second preset window, the geometric coordinate information of the pixel may include the first coordinate position, the first normal direction and the first depth, and the pixel also includes the first brightness information, then If the first coordinate position is within the length and width of the first image, the second weight calculation circuit can be used to: determine the normal direction of the pixel point according to the difference in the first normal direction between the pixel point and the first pixel point weight; determine the depth weight of the pixel point according to the difference of the first depth between the pixel point and the first pixel point; determine the depth of the pixel point according to the difference of the first brightness information between the pixel point and the first pixel point Brightness weight; multiply the normal weight, depth weight and brightness weight of the pixel by their respective preset proportions, and determine the sum of the products after multiplying the three by their respective preset proportions as the pixel's Second convolution weight. It should be noted that the preset proportions may be preset, and the respective preset proportions of the normal weight, depth weight, and brightness weight may be the same or different, which are not specifically limited in this embodiment of the present application. In addition, for a pixel whose first coordinate range is not within the length and width range of the first image, the second convolution weight of the pixel may be 0.
在一种可能的实施例中,对于第一图像中的第一像素点,第一像素点为第一图像中的任一像素点,选择电路222用于:选择第一亮度信息、第一动量信息和第一方差分别作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差;或者选择该卷积亮度信息、该卷积动量信息和该卷积方差分别作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差。In a possible embodiment, for the first pixel in the first image, the first pixel is any pixel in the first image, and the selection circuit 222 is configured to: select the first brightness information, the first momentum The information and the first variance are respectively used as the second brightness information, the second momentum information and the second variance of the first pixel in the second image; or the convolution brightness information, the convolution momentum information and the convolution variance are selected are respectively the second luminance information, the second momentum information and the second variance of the first pixel in the second image.
具体的,第一像素点的第一参数信息还包括历史计算次数,选择电路222具体用于:当第一像素点的历史计算次数大于或等于预设次数时,选择第一亮度信息、第一动量信息和第一方差分别作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差;当第一像素点的历史计算次数小于该预设次数时,选择该卷积亮度信息、该卷积动量信息和该卷积方差分别作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差。需要说明的是,上述预设次数可以是预先设置的,比如,该预设次数可以为3或者4等,本申请实施例对此不作具体限制。Specifically, the first parameter information of the first pixel point further includes the number of historical calculations, and the selection circuit 222 is specifically configured to: when the number of historical calculations of the first pixel point is greater than or equal to the preset number of times, select the first brightness information, the first The momentum information and the first variance are respectively used as the second brightness information, the second momentum information and the second variance of the first pixel in the second image; when the number of historical calculations of the first pixel is less than the preset number, select The convolution luminance information, the convolution momentum information and the convolution variance are respectively used as the second luminance information, the second momentum information and the second variance of the first pixel in the second image. It should be noted that, the above preset number of times may be preset, for example, the preset number of times may be 3 or 4, etc., which is not specifically limited in this embodiment of the present application.
示例性的,如图9所示,为本申请实施例提供的一种MPE 2的结构示意图。该MPE 2包括:第一缓存器21和动量计算电路22,第一缓存器21用于缓存像素点的第一参数信息。其中,动量计算电路22包括第二卷积电路221、选择电路222和第二权重计算电路223,第二卷积电路221包括第二亮度卷积电路、第二动量卷积电路和第二方差计算电路。具体的,对于第一图像中的第一像素点,该动量过滤处理的过程可以包括:在获取到第二预设窗口内的多个像素点的第一参数信息时,第二权重计算电路223确定第二预设窗口内的多个像素点中每个像素点的第二卷积权重;第二亮度卷积电路根据第二预设窗口内的多个像素点的第二卷积权重和第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息;第二动量卷积电路根据第二预设窗口内的多个像素点的第二卷积权重和第一亮度信息做卷积运算,以得到第一像素点的卷积亮度信息;第二方差计算电路用于根据卷积动量信息确定卷积方差;选择电路222用于根据第一像素点的历史计算次数,选择第一亮度信息、第一动量信息和第一方差、或者选择卷积亮度信息、卷积动量信息和卷积方差分别作为第一像素点在第二图像中的第二亮度信息、第二动量信息和第二方差。关于上述每个电路的详细描述可以参见上文中的阐述,本申请实施例在此不再赘述。Exemplarily, as shown in FIG. 9 , a schematic structural diagram of an MPE 2 provided in an embodiment of the present application. The MPE 2 includes: a first buffer 21 and a momentum calculation circuit 22, and the first buffer 21 is used to buffer the first parameter information of the pixels. The momentum calculation circuit 22 includes a second convolution circuit 221, a selection circuit 222 and a second weight calculation circuit 223, and the second convolution circuit 221 includes a second luminance convolution circuit, a second momentum convolution circuit and a second variance calculation circuit circuit. Specifically, for the first pixel in the first image, the momentum filtering process may include: when acquiring the first parameter information of multiple pixels in the second preset window, the second weight calculation circuit 223 Determine the second convolution weight of each pixel in the plurality of pixels in the second preset window; the second luminance convolution circuit is based on the second convolution weight of the plurality of pixels in the second preset window and the first A luminance information performs a convolution operation to obtain the convolution luminance information of the first pixel point; the second momentum convolution circuit performs a convolution operation according to the second convolution weight of the plurality of pixels in the second preset window and the first luminance information The convolution operation is used to obtain the convolution brightness information of the first pixel point; the second variance calculation circuit is used to determine the convolution variance according to the convolution momentum information; the selection circuit 222 is used to select the first pixel point according to the historical calculation times of the first pixel point. luminance information, first momentum information and first variance, or selecting convolutional luminance information, convolution momentum information and convolution variance as the second luminance information and second momentum information of the first pixel in the second image, respectively and the second variance. For a detailed description of each of the foregoing circuits, reference may be made to the foregoing description, and details are not described herein again in this embodiment of the present application.
当动量计算电路22根据上述方式完成对第一图像中的第一像素点的过滤动量处理后,动量计算电路22可以将第一像素点的第二参数信息发送给SPE 3,SPE 3中的第二缓存器31可以缓存第一像素点的第二参数信息。比如,第一像素点的第二参数信息可以包括几何坐标信息、第二亮度信息、第二动量信息、第二方差和历史计算次数等。After the momentum calculation circuit 22 completes the filtering momentum processing of the first pixel in the first image according to the above method, the momentum calculation circuit 22 can send the second parameter information of the first pixel to the SPE 3, and the first pixel in the SPE 3 The second buffer 31 can buffer the second parameter information of the first pixel. For example, the second parameter information of the first pixel point may include geometric coordinate information, second luminance information, second momentum information, second variance, and historical calculation times, and the like.
在本申请实施例中,空域计算电路32根据第二参数信息对第二图像做空域滤波处理时,可以利用小波变换对第二图像做空域滤波处理,即空域计算电路32可以对第二图像中的同一像素点分别做多次空域滤波处理,且每次做空域滤波处理时所使用的小波变换窗口的大小是根据小波变换得到的。比如,如图10所示,小波变换的步数为3且初始窗口为3×3,则空域计算电路32需要对第二图像中的同一像素点做四次空域滤波处理,第1次空域滤波处理时的小波变换窗口为3×3,第2至第4次空域滤波处 理时的小波变换窗口(此时也可以称为空洞卷积窗口)的大小分别为5×5、7×7和9×9。In the embodiment of the present application, when the spatial domain calculation circuit 32 performs spatial domain filtering processing on the second image according to the second parameter information, it can use wavelet transform to perform spatial domain filtering processing on the second image, that is, the spatial domain calculation circuit 32 can perform spatial domain filtering processing on the second image. The same pixel point of , respectively, is subjected to multiple spatial filtering processing, and the size of the wavelet transform window used in each spatial filtering processing is obtained according to the wavelet transform. For example, as shown in FIG. 10 , the number of steps of wavelet transform is 3 and the initial window is 3×3, then the spatial domain calculation circuit 32 needs to perform four spatial domain filtering processing on the same pixel in the second image, and the first spatial domain filtering process The wavelet transform window during processing is 3×3, and the size of the wavelet transform window (which can also be called a hole convolution window at this time) during the second to fourth spatial filtering processing is 5×5, 7×7 and 9 respectively. ×9.
如图11所示,空域计算电路32可以包括:卷积转换电路321、第三权重计算电路322和第三卷积电路323。在使用不同小波变换窗口做空域滤波时,卷积转换电路321、第三权重计算电路322和第三卷积电路323均可用于执行下文中对应的功能。As shown in FIG. 11 , the spatial domain calculation circuit 32 may include: a convolution conversion circuit 321 , a third weight calculation circuit 322 and a third convolution circuit 323 . When using different wavelet transform windows for spatial filtering, the convolution conversion circuit 321 , the third weight calculation circuit 322 and the third convolution circuit 323 can all be used to perform the corresponding functions below.
在一种可能的实施例中,卷积转换电路321用于:提取第二图像中的第一像素点在多个小波变换窗口中每个小波变换窗口内的多个有效像素点的第二参数信息,该多个小波变换窗口是经过预设步数的小波变换得到的,第二参数信息可以包括第二亮度信息和第二方差,第一像素点可以为第二图像中的任一像素点。其中,第一像素点可以位于该小波变换窗口的中心位置,该多个有效像素点可以包括位于该小波变换窗口的中心位置、四个边的顶角位置、以及四个边的中心位置的像素点。比如,如图10所示,当该小波变换窗口为3×3时,卷积转换电路321用于提取该小波变换窗口内的多个像素点(即有效像素点)的第二参数信息,此时该第二参数信息可以为MPE 2输出的第二参数信息;当该小波变换窗口为5×5、7×7或9×9时,卷积转换电路321用于提取该小波变换窗口内位于中心位置、四个边的顶角位置、以及四个边的中心位置的像素点(即有效像素点)的第二参数信息,此时该第二参数信息为上一次空域处理后得到的第二参数信息。图8中以黑色方框表示第一像素点,以点状填充的方框表示有效像素点。In a possible embodiment, the convolution conversion circuit 321 is configured to: extract the second parameters of multiple effective pixels in each of the multiple wavelet transform windows of the first pixel in the second image The multiple wavelet transform windows are obtained through wavelet transform with a preset number of steps, the second parameter information may include second brightness information and second variance, and the first pixel point may be any pixel point in the second image . Wherein, the first pixel point may be located at the center position of the wavelet transform window, and the plurality of valid pixels may include pixels located at the center position of the wavelet transform window, the vertex positions of the four sides, and the center positions of the four sides. point. For example, as shown in FIG. 10 , when the wavelet transform window is 3×3, the convolution conversion circuit 321 is used to extract the second parameter information of multiple pixels (ie, effective pixels) in the wavelet transform window. When the second parameter information can be the second parameter information output by the MPE 2; when the wavelet transform window is 5×5, 7×7 or 9×9, the convolution conversion circuit 321 is used to extract the location within the wavelet transform window. The second parameter information of the center position, the vertex position of the four sides, and the pixel point (ie, the effective pixel point) at the center position of the four sides. At this time, the second parameter information is the second parameter information obtained after the last spatial processing. Parameter information. In FIG. 8 , the first pixel is represented by a black box, and the valid pixel is represented by a box filled with dots.
在一种可能的实施例中,第三权重计算电路322用于:对于该多个小波变换窗口中的每个小波变换窗口,根据该小波变换窗口内的多个有效像素点的第二方差,确定该多个有效像素点的第三卷积权重。具体的,对于该多个有效像素点中的每个有效像素点,第三权重计算电路322具体用于:根据该有效像素点的第二方差、第二亮度信息和几何坐标信息分别确定深度权重、法向量权重和亮度权重;根据该有效像素点的法向权重、深度权重和亮度权重确定该有效像素点的第三卷积权重。示例性的,对于3×3的小波变换窗口,第三权重计算电路322可以用于:对该小波变换窗口内的9个有效像素点的第二方差做高斯混合(gaussians blur)处理,以得到混合方差;对于这9个有效像素点中的每个有效像素点,根据该混合方差、以及该有效像素点的第二亮度信息和几何坐标信息分别确定深度权重、法向量权重和亮度权重,进而确定第三卷积权重。In a possible embodiment, the third weight calculation circuit 322 is configured to: for each wavelet transform window in the plurality of wavelet transform windows, according to the second variance of the plurality of valid pixels in the wavelet transform window, A third convolution weight of the plurality of valid pixels is determined. Specifically, for each valid pixel point in the plurality of valid pixel points, the third weight calculation circuit 322 is specifically configured to: determine the depth weight respectively according to the second variance, the second luminance information and the geometric coordinate information of the valid pixel point , normal vector weight and brightness weight; determine the third convolution weight of the effective pixel point according to the normal weight, depth weight and brightness weight of the effective pixel point. Exemplarily, for a 3×3 wavelet transform window, the third weight calculation circuit 322 may be used to: perform Gaussian blending (gaussians blur) processing on the second variances of the 9 valid pixels in the wavelet transform window to obtain Mixed variance; for each valid pixel in the 9 valid pixels, the depth weight, normal vector weight and luminance weight are determined respectively according to the mixed variance, and the second luminance information and geometric coordinate information of the valid pixel, and then Determine the third convolution weight.
在一种可能的实施例中,第三卷积电路323用于:对于该多个小波变换窗口内的每个小波变换窗口,根据该小波变换窗口内的多个有效像素点的第三卷积权重、该多个有效像素点的第二亮度信息和第二方差,分别确定第一像素点的第三亮度信息和第三方差;根据该多个小波变换窗口对应的第一像素点的第三亮度信息和第三方差,分别确定第一像素点在该目标图像中的目标亮度信息和目标方差。In a possible embodiment, the third convolution circuit 323 is configured to: for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution of the plurality of valid pixels in the wavelet transform window The weight, the second brightness information and the second variance of the plurality of effective pixel points, respectively determine the third brightness information and the third variance of the first pixel point; The brightness information and the third variance are used to determine the target brightness information and the target variance of the first pixel in the target image, respectively.
可选的,第三卷积电路323可以包括:第三亮度卷积电路和第三方差计算电路。其中,第三亮度卷积电路用于:对于该多个小波变换窗口内的每个小波变换窗口,根据该小波变换窗口内的多个有效像素点的第三卷积权重和该多个有效像素点的第二亮度信息做卷积运算,以得到第一像素点的第三亮度信息,从而对于多个小波变换窗口而言,第一像素点对应存在多个第三卷积权重和多个第三亮度信息;根据该多个第三 卷积权重和多个第三亮度信息确定第一像素点的目标亮度信息,比如,第一像素点的目标亮度信息可以是多个第三亮度信息之和与多个第三卷积权重之和的比值。另外,第三方差计算电路用于:对于该多个小波变换窗口内的每个小波变换窗口,确定该小波变换窗口内的多个有效像素点的第三卷积权重的权重平方,并将该多个有效像素点的权重平方和该多个有效像素点的第二方差做卷积运算,以得到第一像素点的第三方差,从而对于多个小波变换窗口而言,第一像素点对应存在多个第三卷积权重和多个第三方差;根据该多个小波变换窗口对应的第一像素点的多个第三卷积权重和多个第三方差,确定第一像素点在该目标图像中的目标方差,比如,第一像素点的目标方差可以是多个第三方差之和与多个第三卷积权重之和的比值。Optionally, the third convolution circuit 323 may include: a third luminance convolution circuit and a third difference calculation circuit. Wherein, the third luminance convolution circuit is used for: for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution weight of the plurality of effective pixels in the wavelet transform window and the plurality of effective pixels The second brightness information of the point is subjected to convolution operation to obtain the third brightness information of the first pixel, so that for multiple wavelet transform windows, there are multiple third convolution weights and multiple first pixels corresponding to the first pixel. Three brightness information; determine the target brightness information of the first pixel point according to the multiple third convolution weights and multiple third brightness information, for example, the target brightness information of the first pixel point may be the sum of multiple third brightness information Ratio to the sum of multiple third convolution weights. In addition, the third difference calculation circuit is configured to: for each wavelet transform window in the plurality of wavelet transform windows, determine the weight square of the third convolution weight of the plurality of effective pixel points in the wavelet transform window, and calculate the The weight squares of multiple valid pixels and the second variance of the multiple valid pixels are convolved to obtain the third variance of the first pixel, so that for multiple wavelet transform windows, the first pixel corresponds to There are multiple third convolution weights and multiple third differences; according to multiple third convolution weights and multiple third differences of the first pixel points corresponding to the multiple wavelet transform windows, it is determined that the first pixel point is in the The target variance in the target image, for example, the target variance of the first pixel point may be the ratio of the sum of multiple third differences and the sum of multiple third convolution weights.
示例性的,如图12所示,为本申请实施例提供的一种SPE 3的结构示意图。该SPE 3包括:第二缓存器31和空域计算电路32,第二缓存器31用于缓存像素点的第二参数信息。其中,空域计算电路32包括卷积转换电路321、第三权重计算电路322和第三卷积电路323,第三卷积电路323包括第三亮度卷积电路和第三方差计算电路。具体的,对于第二图像中的第一像素点,该空域滤波处理的过程可以包括:卷积转换电路321用于提取第一像素点在多个小波变换窗口中每个小波变换窗口内的多个有效像素点的第二参数信息;第三权重计算电路322用于确定每个小波变换窗口内的多个有效像素点的第三卷积权重;第三亮度卷积电路用于确定第一像素点在目标图像中的目标亮度信息;第三方差计算电路用于确定第一像素点在该目标图像中的目标方差。关于上述每个电路的详细描述可以参见上文中的阐述,本申请实施例在此不再赘述。Exemplarily, as shown in FIG. 12 , a schematic structural diagram of an SPE 3 provided in this embodiment of the present application. The SPE 3 includes: a second buffer 31 and a space calculation circuit 32, and the second buffer 31 is used for buffering the second parameter information of the pixels. The spatial calculation circuit 32 includes a convolution conversion circuit 321, a third weight calculation circuit 322 and a third convolution circuit 323, and the third convolution circuit 323 includes a third luminance convolution circuit and a third difference calculation circuit. Specifically, for the first pixel in the second image, the spatial filtering process may include: the convolution conversion circuit 321 is configured to extract the multiplicity of the first pixel in each wavelet transform window of the plurality of wavelet transform windows. The second parameter information of the effective pixels; the third weight calculation circuit 322 is used to determine the third convolution weight of the multiple effective pixels in each wavelet transform window; the third luminance convolution circuit is used to determine the first pixel The target brightness information of the point in the target image; the third variance calculation circuit is used to determine the target variance of the first pixel point in the target image. For a detailed description of each of the foregoing circuits, reference may be made to the foregoing description, and details are not described herein again in this embodiment of the present application.
进一步的,上述第一缓存器11、第二缓存器21和第三缓存器31可以统称为该SVGF加速器的本地缓存器。该GPU中SM和SVGF加速器共享的缓存器可以称为次级缓存器,该GPU所在的图像处理设备中与该GPU耦合的存储器可以称为次级存储器。其中,当该SVGF加速器在进行SVGF处理时,上述涉及的像素点的不同参数信息可以存储在本地缓存器中,也可以存储在次级缓存器或者次级存储器中。Further, the above-mentioned first buffer 11, second buffer 21 and third buffer 31 may be collectively referred to as the local buffer of the SVGF accelerator. The buffer shared by the SM and the SVGF accelerator in the GPU may be referred to as a secondary buffer, and a memory coupled to the GPU in the image processing device where the GPU is located may be referred to as a secondary memory. Wherein, when the SVGF accelerator is performing SVGF processing, the different parameter information of the above-mentioned pixels may be stored in the local buffer, and may also be stored in the secondary buffer or the secondary storage.
在一种可能的实施例中,如图13所示,为本申请实施例提供的一种存储方式,该存储方式下可以实现最小本地缓存器。具体的,该本地缓存器中存储有:1).MPE 2对第一图像中的像素点做过滤动量处理时所需的第一图像中的第一预设数量的像素点的第一参数信息,第一预设数量可以为Size_Window2的平方,Size_Window2表示第二预设窗口的尺寸,每个像素点的第一参数信息可以包括第一亮度信息、第一动量信息、第一方差和历史计算次数,(可选的,第一参数信息还可以包括每个像素点的几何坐标信息,比如,法向和深度等)。2).SPE 3对第二图像中的像素点做空域动量处理时所需的第二图像中的第二预设数量的像素点的第二参数信息,第二预设数量可以为(Size_Window3+(Step-1)×2)的平方,Size_Window3表示小波变换的初始卷积窗口的尺寸,Step表示小波变换步数,第二参数信息可以包括第二亮度信息和第二方差,(可选的,第二参数信息还可以包括每个像素点的几何坐标信息,比如,法向和深度等)。In a possible embodiment, as shown in FIG. 13 , there is a storage method provided in this embodiment of the present application, in which a minimum local buffer can be implemented. Specifically, the local buffer stores: 1). MPE 2. The first parameter information of the first preset number of pixels in the first image required when the MPE performs the filtering momentum processing on the pixels in the first image , the first preset number can be the square of Size_Window2, Size_Window2 represents the size of the second preset window, and the first parameter information of each pixel can include first brightness information, first momentum information, first variance and historical calculation times, (optionally, the first parameter information may also include geometric coordinate information of each pixel point, such as normal direction and depth, etc.). 2). The second parameter information of the second preset number of pixels in the second image required when SPE 3 performs spatial momentum processing on the pixels in the second image, the second preset number can be (Size_Window3+( Step-1)×2) square, Size_Window3 represents the size of the initial convolution window of the wavelet transform, Step represents the number of wavelet transform steps, the second parameter information may include the second brightness information and the second variance, (optional, the first The two-parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
此时,次级缓存器或者次级存储器中可以存储有:1).该上一帧图像中每个像素点的历史参数信息,该历史参数信息可以包括几何坐标信息、历史亮度信息、历史动量信息和历史计算次数,以及该待处理图像的中每个像素点的几何坐标信息和运动向 量等。2).由TPE 1输出的MPE 2处理所需要的第一图像中第三预设数量的像素点的第一参数信息,第三预设数量可以为[Width×(Size_Window2×Step-1)+Size_Window2],Width表示待处理图像的宽度,每个像素点的第一参数信息可以包括第一亮度信息、第一动量信息、第一方差和历史计算次数。3).由MPE 2输出的SPE 3处理所需要的第二图像中第四预设数量的像素点的第二参数信息,第四预设数量可以为[Width×(Size_Window3×Step-1)+Size_Window3×Step],第二参数信息可以包括第二亮度信息和第二方差,(可选的,第二参数信息还可以包括每个像素点的几何坐标信息,比如,法向和深度等)。At this time, the secondary buffer or the secondary memory may store: 1). Historical parameter information of each pixel in the previous frame of image, the historical parameter information may include geometric coordinate information, historical brightness information, and historical momentum information and the number of historical calculations, as well as the geometric coordinate information and motion vector of each pixel in the image to be processed. 2). The first parameter information of the third preset number of pixels in the first image required by the MPE 2 processing output by the TPE 1, and the third preset number may be [Width×(Size_Window2×Step-1)+ Size_Window2], Width represents the width of the image to be processed, and the first parameter information of each pixel point may include first brightness information, first momentum information, first variance and historical calculation times. 3). The second parameter information of the fourth preset number of pixels in the second image required by the SPE 3 processing output by the MPE 2, the fourth preset number may be [Width×(Size_Window3×Step-1)+ Size_Window3×Step], the second parameter information may include second luminance information and second variance, (optionally, the second parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
在上述存储方式下,MPE 2和SPE 3在逐像素处理像素点的过程中,本地缓存器和次级存储器更新像素点的参数信息的过程是相似的,下面以MPE 2按照逐行的顺序逐像素处理第一图像的像素点为例进行说明。具体的,第二预设窗口每滑动一个像素点,MPE 2需要更新第二预设窗口右侧第一列像素点的第一参数信息,此时该列像素点中最后一个像素点的第一参数信息可以从TPE 1中获取,该列像素点中其余像素点的第一参数信息可以从次级缓存器或者次级存储器中获取。本地缓存器需要删除滑出第二预设窗口的一列像素点的第一参数信息,次级缓存器或者次级存储器可以删除该列像素点中的第一个像素点的第一参数信息。图13中将第二预设窗口右侧第一列像素点表示为Col-1,将Col-1中最后一个像素点表示为pix-1,将滑出第二预设窗口的一列像素点表示为Col-2,将Col-1中第一个像素点表示为pix1。In the above storage mode, in the process of pixel-by-pixel processing by MPE 2 and SPE 3, the process of updating the parameter information of the pixel by the local buffer and the secondary memory is similar. The pixel processing of the pixels of the first image is taken as an example for description. Specifically, every time the second preset window slides by one pixel, the MPE 2 needs to update the first parameter information of the first column of pixels on the right side of the second preset window. At this time, the first parameter of the last pixel in the column The parameter information can be obtained from TPE 1, and the first parameter information of the remaining pixels in the column of pixels can be obtained from the secondary buffer or the secondary memory. The local buffer needs to delete the first parameter information of a column of pixels sliding out of the second preset window, and the secondary buffer or the secondary memory can delete the first parameter information of the first pixel in the column of pixels. In FIG. 13, the first column of pixels on the right side of the second preset window is represented as Col-1, the last pixel in Col-1 is represented as pix-1, and the row of pixels that slide out of the second preset window is represented as Col-1. It is Col-2, and the first pixel in Col-1 is represented as pix1.
在另一种可能的实施例中,如图14所示,为本申请实施例提供的另一种存储方式,该存储方式下可以实现SVGF加速器的最小带宽需求。具体的,该本地缓存器中存储有:1).由TPE 1输出的MPE 2处理所需要的第一图像中第三预设数量的像素点的第一参数信息,第三预设数量可以为[Width×(Size_Window2×Step-1)+Size_Window2],Width表示待处理图像的宽度,每个像素点的第一参数信息可以包括第一亮度信息、第一动量信息、第一方差和历史计算次数。2).由MPE 2输出的SPE 3处理所需要的第二图像中第四预设数量的像素点的第二参数信息,第四预设数量可以为[Width×(Size_Window3×Step-1)+Size_Window3×Step],第二参数信息可以包括第二亮度信息和第二方差,(可选的,第二参数信息还可以包括每个像素点的几何坐标信息,比如,法向和深度等)。In another possible embodiment, as shown in FIG. 14 , another storage method is provided in this embodiment of the present application, and the minimum bandwidth requirement of the SVGF accelerator can be achieved in this storage method. Specifically, the local buffer stores: 1). The first parameter information of a third preset number of pixels in the first image required for processing by the MPE 2 output by the TPE 1. The third preset number may be [Width×(Size_Window2×Step-1)+Size_Window2], Width represents the width of the image to be processed, and the first parameter information of each pixel may include first brightness information, first momentum information, first variance and historical calculation frequency. 2). The second parameter information of the fourth preset number of pixels in the second image required by the SPE 3 processing output by the MPE 2, and the fourth preset number may be [Width×(Size_Window3×Step-1)+ Size_Window3×Step], the second parameter information may include second luminance information and second variance, (optionally, the second parameter information may also include geometric coordinate information of each pixel, such as normal and depth, etc.).
此时,次级缓存器或者次级存储器中可以存储有:1).该上一帧图像中每个像素点的历史参数信息,该历史参数信息可以包括几何坐标信息、历史亮度信息、历史动量信息和历史计算次数,以及该待处理图像的中每个像素点的几何坐标信息和运动向量等。At this time, the secondary buffer or the secondary memory may store: 1). Historical parameter information of each pixel in the previous frame of image, the historical parameter information may include geometric coordinate information, historical brightness information, and historical momentum information and the number of historical calculations, as well as the geometric coordinate information and motion vector of each pixel in the image to be processed.
在上述存储方式下,MPE 2和SPE 3在逐像素处理像素点的过程中,本地缓存器和次级存储器更新像素点的参数信息的过程是相似的,下面以MPE 2按照逐行的顺序逐像素处理第一图像的像素点为例进行说明。具体的,第二预设窗口每滑动一个像素点,MPE 2需要更新第二预设窗口右侧第一列像素点的第一参数信息,此时该列像素点中最后一个像素点的第一参数信息可以从TPE 1中获取,该列像素点中其余像素点的第一参数信息从本地缓存器中获取。本地缓存器可以删除滑出第二预设窗口的一列像素点中的第一个像素点的第一参数信息。图14中将第二预设窗口右侧第一列像素点 表示为Col-1,将Col-1中最后一个像素点表示为pix-1,将滑出第二预设窗口的一列像素点中的第一个像素点表示为pix1。In the above storage mode, in the process of pixel-by-pixel processing by MPE 2 and SPE 3, the process of updating the parameter information of the pixel by the local buffer and the secondary memory is similar. The pixel processing of the pixels of the first image is taken as an example for description. Specifically, every time the second preset window slides by one pixel, the MPE 2 needs to update the first parameter information of the first column of pixels on the right side of the second preset window. At this time, the first parameter of the last pixel in the column The parameter information can be obtained from TPE 1, and the first parameter information of the remaining pixels in the column of pixels is obtained from the local buffer. The local buffer may delete the first parameter information of the first pixel in a column of pixels sliding out of the second preset window. In FIG. 14, the pixels in the first column on the right side of the second preset window are represented as Col-1, and the last pixel in Col-1 is represented as pix-1, which will slide out of a column of pixels in the second preset window. The first pixel of is represented as pix1.
在上述两种存储方式下,TPE 1、MPE 2和SPE 3可以按照下述图15所示的处理流程对该待处理图像做SVGF处理。具体的,S11.TPE 1对该待处理图像逐像素做时域滤波处理;S12.TPE 1判断是否完成所有像素点的处理,若是(即完成)则TPE 1处理结束,若否(即未完成)则返回S11,并执行S13;S13.TPE 1判断是否完成MPE 2处理所需尺寸的像素点的第一参数信息,若完成则执行S21,若未完成则返回S11。S21.MPE 2对第一图像逐像素做过滤动量处理;S22.MPE 1判断是否完成所有像素点的处理,若完成则MPE 2处理结束,若未完成则返回S21,并执行S23;S23.MPE 2判断是否完成SPE 3处理所需尺寸的像素点的第二参数信息,若完成则执行S31,若未完成则返回S21。S31.SPE 3对第二图像逐像素做空域滤波处理;S32.SPE 3判断是否完成所有像素点的处理,若完成则SPE 3处理结束,若未完成则返回S31。相应的,图16中分别以TPE 1、MPE 2和SPE 3逐像素处理相邻的两个像素点为例,示出了TPE 1、MPE 2和SPE 3启动的时刻,以及TPE 1、MPE 2和SPE 3在处理过程中分别对应的第一预设窗口、第二预设窗口和小波变换窗口滑动前后的示意图。Under the above two storage modes, TPE 1, MPE 2 and SPE 3 can perform SVGF processing on the to-be-processed image according to the processing flow shown in Figure 15 below. Specifically, S11.TPE 1 performs temporal filtering processing on the image to be processed pixel by pixel; S12. TPE 1 determines whether the processing of all pixels is completed, if so (that is, completed), then the TPE 1 processing ends, if not (that is, not completed) ) then return to S11, and execute S13; S13.TPE 1 judges whether to complete the first parameter information of the pixel point of the required size of MPE 2 processing, if completed, then execute S21, if not completed, then return to S11. S21.MPE 2 performs filter momentum processing on the first image pixel by pixel; S22.MPE 1 determines whether the processing of all pixels is completed, if completed, the MPE 2 processing ends, if not, returns to S21, and executes S23; S23.MPE 2. Determine whether to complete the SPE 3. Process the second parameter information of the pixel of the required size, if completed, execute S31, and if not, return to S21. S31.SPE 3 performs spatial filtering processing on the second image pixel by pixel; S32. SPE 3 judges whether the processing of all pixel points is completed, if completed, the SPE 3 processing ends, and if not completed, returns to S31. Correspondingly, in FIG. 16 , the two adjacent pixels are processed pixel by pixel by TPE 1, MPE 2 and SPE 3 as an example, and the moment when TPE 1, MPE 2 and SPE 3 are started, and TPE 1, MPE 2 are shown. Schematic diagrams of the first preset window, the second preset window and the wavelet transform window corresponding to SPE 3 in the processing process before and after sliding.
在本申请实施例提供的SVGF加速器中,TPE 1、MPE 2和SPE 3中均包括各自的缓存器,从而在进行相应的时域滤波处理、过滤动量处理和空域滤波处理时,可以将多次连续处理过程中需要复用的像素点的参数信息缓存在缓存器中,并通过从上一级处理引擎中获取最新处理得到的像素点的参数信息,即可基于缓存的参数信息和获取的参数信息执行相应的处理,从而可以实现处理引擎之间传输的数据最小,进而大大降低数据传输的时延,提高图像处理的速率。此外,通过合理地配置TPE 1、MPE 2和SPE 3中缓存器的空间,还可以实现最优的缓存配比和/或带宽配比,从而进一步优化该SVGF加速器的性能。In the SVGF accelerator provided in the embodiment of the present application, TPE 1, MPE 2, and SPE 3 all include respective buffers, so that when performing corresponding time-domain filtering processing, filtering momentum processing, and spatial filtering processing, multiple The parameter information of the pixels that need to be multiplexed in the continuous processing process is cached in the buffer, and the parameter information of the pixels obtained by the latest processing can be obtained based on the cached parameter information and the acquired parameters by obtaining the parameter information of the newly processed pixels from the previous-level processing engine. The information is processed accordingly, so that the data transmitted between the processing engines can be minimized, thereby greatly reducing the delay of data transmission and improving the speed of image processing. In addition, by properly configuring the buffer space in TPE 1, MPE 2 and SPE 3, an optimal buffer ratio and/or bandwidth ratio can also be achieved, thereby further optimizing the performance of the SVGF accelerator.
基于此,本申请实施例还提供一种图像处理设备,该图像处理设备包括图像处理器,该图像处理器可以包括上文提供的任一种SVGF加速器,关于该SVGF加速器的具体描述可以参见上文中的相关描述,本申请实施例在此不再赘述。Based on this, an embodiment of the present application further provides an image processing device, the image processing device includes an image processor, and the image processor may include any of the SVGF accelerators provided above. For the specific description of the SVGF accelerator, please refer to the above Relevant descriptions in the text are not repeated in this embodiment of the present application.
在本申请所提供的几个实施例中,应该理解到,以上所描述的图像处理设备和SVGF加速器仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the image processing device and the SVGF accelerator described above are only schematic, for example, the division of the modules or units is only a logical function division, There may be other divisions in actual implementation, for example, multiple units or components may be combined or integrated into another device, or some features may be omitted or not implemented. On the other hand, the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components shown as units may be one physical unit or multiple physical units, that is, they may be located in one place, or may be distributed to multiple different places . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元可以采用硬件的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above-mentioned integrated units can be implemented in the form of hardware.
最后应说明的是:以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。Finally, it should be noted that: the above are only the specific embodiments of the present application, but the protection scope of the present application is not limited to this, and any changes or replacements within the technical scope disclosed in the present application should be included in the present application. within the scope of protection of the application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims (15)

  1. 一种图像处理器,其特征在于,所述图像处理器包括时空域方差引导过滤SVGF加速器,所述SVGF加速器包括:An image processor, characterized in that the image processor includes a spatiotemporal variance-guided filtering SVGF accelerator, and the SVGF accelerator includes:
    时域处理引擎,用于根据待处理图像的上一帧图像对所述待处理图像做时域滤波处理,以得到第一图像,所述第一图像中像素点的参数信息为第一参数信息;A time-domain processing engine, configured to perform time-domain filtering processing on the to-be-processed image according to the previous frame of the image to be processed to obtain a first image, where the parameter information of the pixels in the first image is the first parameter information ;
    动量处理引擎,包括:Momentum processing engine, including:
    第一缓存器,用于缓存所述第一参数信息;a first buffer for buffering the first parameter information;
    动量计算电路,用于根据所述第一参数信息对所述第一图像做过滤动量处理,以得到第二图像,所述第二图像中像素点的参数信息为第二参数信息;a momentum calculation circuit, configured to perform filtering momentum processing on the first image according to the first parameter information to obtain a second image, and the parameter information of the pixels in the second image is the second parameter information;
    空域处理引擎,包括:Airspace processing engines, including:
    第二缓存器,用于缓存所述第二参数信息;a second buffer for buffering the second parameter information;
    空域计算电路,用于根据所述第二参数信息对所述第二图像做空域滤波处理,以得到目标图像。A spatial domain calculation circuit, configured to perform spatial filtering processing on the second image according to the second parameter information to obtain a target image.
  2. 根据权利要求1所述的图像处理器,其特征在于,所述时域处理引擎包括时域计算电路,所述时域计算电路包括:The image processor according to claim 1, wherein the time domain processing engine comprises a time domain calculation circuit, and the time domain calculation circuit comprises:
    信息获取电路,用于对于所述待处理图像中的第一像素点,获取所述第一像素点对应在所述上一帧图像中的历史像素点所在的第一预设窗口内的多个像素点的历史参数信息,所述历史参数信息包括几何坐标信息、历史亮度信息和历史动量信息,所述第一像素点为所述待处理图像中的任一像素点;The information acquisition circuit is configured to, for the first pixel in the to-be-processed image, acquire a plurality of data corresponding to the first pixel in the first preset window where the historical pixel in the previous frame of image is located The historical parameter information of the pixel point, the historical parameter information includes geometric coordinate information, historical brightness information and historical momentum information, and the first pixel point is any pixel point in the image to be processed;
    信号生成电路,用于根据所述多个像素点的几何坐标信息生成控制信号;a signal generating circuit, configured to generate a control signal according to the geometric coordinate information of the plurality of pixel points;
    第一卷积电路,用于在所述控制信号有效时分别根据所述多个像素点的历史亮度信息和历史动量信息确定所述第一像素点在所述第一图像中的第一亮度信息和第一动量信息;a first convolution circuit, configured to determine the first brightness information of the first pixel in the first image according to the historical brightness information and historical momentum information of the plurality of pixels respectively when the control signal is valid and first momentum information;
    所述第一卷积电路,还用于在所述控制信号无效时根据预设亮度信息和预设动量信息分别确定所述第一像素点在所述第一图像中的第一亮度信息和第一动量信息;The first convolution circuit is further configured to respectively determine the first brightness information and the first brightness information of the first pixel in the first image according to the preset brightness information and the preset momentum information when the control signal is invalid. a momentum information;
    所述第一卷积电路,还用于根据所述第一像素点的所述第一动量信息确定第一方差。The first convolution circuit is further configured to determine a first variance according to the first momentum information of the first pixel point.
  3. 根据权利要求2所述的图像处理器,其特征在于,所述信号生成电路具体用于:The image processor according to claim 2, wherein the signal generating circuit is specifically used for:
    当所述第一预设窗口内的多个像素点中存在预设区域内的至少一个像素点的几何坐标信息满足指定坐标范围时生成有效的控制信号,所述指定坐标范围与所述第一像素点的几何坐标信息有关;A valid control signal is generated when the geometric coordinate information of at least one pixel in the preset area among the plurality of pixels in the first preset window satisfies the specified coordinate range, and the specified coordinate range and the first The geometric coordinate information of the pixel point is related;
    当所述第一预设窗口内的多个像素点的几何坐标信息均不满足所述指定坐标范围时生成无效的控制信息。Invalid control information is generated when none of the geometric coordinate information of the plurality of pixels in the first preset window meets the specified coordinate range.
  4. 根据权利要求3所述的图像处理器,其特征在于,所述第一卷积电路包括:The image processor according to claim 3, wherein the first convolution circuit comprises:
    第一亮度卷积电路,用于在所述控制信号有效时根据所述预设区域内的像素点的第一卷积权重和亮度信息,确定所述第一像素点在所述第一图像中的第一亮度信息;a first luminance convolution circuit, configured to determine that the first pixel is in the first image according to the first convolution weight and luminance information of the pixel in the preset area when the control signal is valid The first brightness information of;
    第一动量卷积电路,用于在所述控制信号有效时根据所述预设区域内像素点的第一卷积权重和动量信息,确定所述第一像素点在所述第一图像中的第一动量信息;A first momentum convolution circuit, configured to determine the first pixel in the first image according to the first convolution weight and momentum information of the pixel in the preset area when the control signal is valid first momentum information;
    第一方差计算电路,用于根据所述第一动量信息确定所述第一像素点的所述第一方差。A first variance calculation circuit, configured to determine the first variance of the first pixel point according to the first momentum information.
  5. 根据权利要求4所述的图像处理器,其特征在于,所述时域计算电路还包括:The image processor according to claim 4, wherein the time domain calculation circuit further comprises:
    第一权重计算电路,用于确定所述预设区域内的每个像素点的第一卷积权重。The first weight calculation circuit is used to determine the first convolution weight of each pixel in the preset area.
  6. 根据权利要求2-5任一项所述的图像处理器,其特征在于,所述历史参数信息还包括所述历史像素点的历史计算次数,所述时域计算电路还包括:The image processor according to any one of claims 2-5, wherein the historical parameter information further includes the historical calculation times of the historical pixel points, and the time domain calculation circuit further includes:
    更新电路,用于在所述控制信号有效时,将所述历史像素点的历史计算次数加一后得到的数值确定为所述第一像素点的历史计算次数;an update circuit, configured to determine the value obtained by adding one to the historical calculation times of the historical pixel point as the historical calculation times of the first pixel point when the control signal is valid;
    所述更新电路,还用于在所述控制信号无效时,确定所述第一像素点的历史计算次数为0。The updating circuit is further configured to determine that the number of historical calculation times of the first pixel is 0 when the control signal is invalid.
  7. 根据权利要求2-6任一项所述的图像处理器,其特征在于,所述时域处理引擎还包括:The image processor according to any one of claims 2-6, wherein the time domain processing engine further comprises:
    第三缓存器,用于缓存所述历史参数信息,和/或所述待处理图像中所述第一像素点的初始参数信息,所述初始参数信息包括以下至少一项:初始亮度信息,初始动量信息,运动向量,几何坐标信息。A third buffer, configured to buffer the historical parameter information and/or the initial parameter information of the first pixel in the image to be processed, where the initial parameter information includes at least one of the following: initial brightness information, initial Momentum information, motion vector, geometric coordinate information.
  8. 根据权利要求1-7任一项所述的图像处理器,其特征在于,所述第一参数信息包括第一亮度信息、第一动量信息和第一方差,所述动量计算电路包括:The image processor according to any one of claims 1-7, wherein the first parameter information includes first luminance information, first momentum information and first variance, and the momentum calculation circuit includes:
    第二卷积电路,用于对于所述第一图像中的第一像素点,分别根据所述第一像素点所在的第二预设窗口内的多个像素点的第一亮度信息和第一动量信息,确定所述第一像素点的卷积亮度信息和卷积动量信息;The second convolution circuit is configured to, for the first pixel in the first image, respectively, according to the first brightness information and the first brightness information of the plurality of pixels in the second preset window where the first pixel is located Momentum information, determining the convolution luminance information and convolution momentum information of the first pixel;
    所述第二卷积电路,还用于根据所述卷积动量信息确定所述第一像素点的卷积方差;The second convolution circuit is further configured to determine the convolution variance of the first pixel point according to the convolution momentum information;
    选择电路,用于选择所述第一亮度信息和所述第一方差分别作为所述第一像素点在所述第二图像中的第二亮度信息和第二方差,或者选择所述卷积亮度信息和所述卷积方差分别作为所述第一像素点在所述第二图像中的第二亮度信息和第二方差。a selection circuit, configured to select the first brightness information and the first variance as the second brightness information and the second variance of the first pixel in the second image, respectively, or select the convolution The luminance information and the convolution variance are respectively used as the second luminance information and the second variance of the first pixel in the second image.
  9. 根据权利要求8所述的图像处理器,其特征在于,所述第二卷积电路包括:The image processor according to claim 8, wherein the second convolution circuit comprises:
    第二亮度卷积电路,用于根据所述多个像素点的第二卷积权重和所述多个像素点的第一亮度信息做卷积运算,以得到所述第一像素点的卷积亮度信息;A second luminance convolution circuit, configured to perform a convolution operation according to the second convolution weights of the plurality of pixels and the first luminance information of the plurality of pixels, so as to obtain the convolution of the first pixels brightness information;
    第二动量卷积电路,用于根据所述多个像素点的第二卷积权重和所述多个像素点的第一动量信息做卷积运算,以得到所述第一像素点的卷积动量信息;A second momentum convolution circuit, configured to perform a convolution operation according to the second convolution weights of the plurality of pixels and the first momentum information of the plurality of pixels, so as to obtain the convolution of the first pixels Momentum information;
    第二方差计算电路,用于根据所述卷积动量信息确定所述第一像素点的卷积方差。The second variance calculation circuit is configured to determine the convolution variance of the first pixel point according to the convolution momentum information.
  10. 根据权利要求9所述的图像处理器,其特征在于,所述动量计算电路还包括:The image processor according to claim 9, wherein the momentum calculation circuit further comprises:
    第二权重计算电路,用于确定所述多个像素点中每个像素点的第二卷积权重。The second weight calculation circuit is configured to determine the second convolution weight of each pixel point in the plurality of pixel points.
  11. 根据权利要求8-10任一项所述的图像处理器,其特征在于,所述第一参数信息还包括历史计算次数,所述选择电路具体用于:The image processor according to any one of claims 8-10, wherein the first parameter information further includes the number of historical calculations, and the selection circuit is specifically configured to:
    当所述第一像素点的历史计算次数大于或等于预设次数时,选择所述第一亮度信息和所述第一方差分别作为所述第一像素点在所述第二图像中的第二亮度信息和第二方差;When the number of historical calculations of the first pixel is greater than or equal to a preset number of times, the first brightness information and the first variance are selected as the first pixel in the second image respectively. Two luminance information and a second variance;
    当所述第一像素点的历史计算次数小于所述预设次数时,选择所述卷积亮度信息 和所述卷积方差分别作为所述第一像素点在所述第二图像中的第二亮度信息、第二动量信息和第二方差。When the number of historical calculations of the first pixel is less than the preset number of times, the convolution brightness information and the convolution variance are selected as the second value of the first pixel in the second image, respectively. Luminance information, second momentum information, and second variance.
  12. 根据权利要求1-11任一项所述的图像处理器,其特征在于,所述空域计算电路包括:The image processor according to any one of claims 1-11, wherein the airspace calculation circuit comprises:
    卷积转换电路,用于分别提取所述第二图像中的第一像素点在多个小波变换窗口中每个小波变换窗口内的多个有效像素点的第二参数信息,所述多个小波变换窗口是经过预设步数的小波变换得到的,所述第二参数信息包括第二亮度信息和第二方差;A convolution conversion circuit, configured to separately extract the second parameter information of multiple valid pixels in each of the multiple wavelet transform windows of the first pixel in the second image, the multiple wavelet transform windows. The transformation window is obtained through wavelet transformation of a preset number of steps, and the second parameter information includes second luminance information and second variance;
    第三权重计算电路,用于对于所述多个小波变换窗口中每个小波变换窗口,根据所述小波变换窗口内的多个有效像素点的第二方差,确定所述多个有效像素点的第三卷积权重;The third weight calculation circuit is configured to, for each wavelet transform window in the plurality of wavelet transform windows, determine the weight of the plurality of effective pixel points according to the second variance of the plurality of effective pixel points in the wavelet transform window. the third convolution weight;
    第三卷积电路,用于对于所述多个小波变换窗口中每个小波变换窗口,根据所述小波变换窗口内的多个有效像素点的第三卷积权重和所述多个有效像素点的第二亮度信息和第二方差,分别确定所述第一像素点的第三亮度信息和第三方差;The third convolution circuit is configured to, for each wavelet transform window in the plurality of wavelet transform windows, according to the third convolution weight of the plurality of effective pixel points in the wavelet transform window and the plurality of effective pixel points The second brightness information and the second variance of , respectively determine the third brightness information and the third variance of the first pixel;
    所述第三卷积电路,还用于根据所述多个小波变换窗口对应的所述第一像素点的所述第三亮度信息和所述第三方差,分别确定所述第一像素点在所述目标图像中的目标亮度信息和目标方差。The third convolution circuit is further configured to, according to the third luminance information and the third difference of the first pixel points corresponding to the multiple wavelet transform windows, respectively determine that the first pixel point is in target brightness information and target variance in the target image.
  13. 根据权利要求12所述的图像处理器,其特征在于,所述第三权重计算电路具体用于:The image processor according to claim 12, wherein the third weight calculation circuit is specifically used for:
    对于所述多个有效像素点,根据所述多个有效像素点在所述第二图像中的第二方差、第二亮度信息和几何坐标信息分别确定深度权重、法向量权重和亮度权重;For the plurality of valid pixels, the depth weight, the normal vector weight and the luminance weight are respectively determined according to the second variance, the second luminance information and the geometric coordinate information of the plurality of valid pixels in the second image;
    根据所述多个有效像素点的深度权重、法向量权重和亮度权重,确定所述多个有效像素点的第三卷积权重。The third convolution weight of the plurality of valid pixels is determined according to the depth weight, the normal vector weight and the luminance weight of the plurality of valid pixels.
  14. 根据权利要求12或13所述的图像处理器,其特征在于,所述第三卷积电路包括:The image processor according to claim 12 or 13, wherein the third convolution circuit comprises:
    第三亮度卷积电路,用于根据所述多个有效像素点的第三卷积权重和所述多个有效像素点的第二亮度信息做卷积运算,以得到所述第一像素点的第三亮度信息;A third luminance convolution circuit, configured to perform a convolution operation according to the third convolution weights of the plurality of valid pixels and the second luminance information of the plurality of valid pixels, so as to obtain the third brightness information;
    第三方差计算电路,用于根据所述多个有效像素点的第三卷积权重和所述多个有效像素点的第二方差,确定所述第一像素点的第三方差。and a third variance calculation circuit, configured to determine the third variance of the first pixel point according to the third convolution weight of the multiple valid pixel points and the second variance of the multiple valid pixel points.
  15. 一种图像处理设备,其特征在于,所述图像处理设备包括图像处理器,所述图像处理器包括流多处理器和如权利要求1-14任一项所述的图像处理器中的SVGF加速器。An image processing device, characterized in that the image processing device includes an image processor, and the image processor includes a stream multiprocessor and an SVGF accelerator in the image processor according to any one of claims 1-14 .
PCT/CN2021/077975 2021-02-25 2021-02-25 Image processor and image processing device WO2022178786A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180081230.3A CN116671096A (en) 2021-02-25 2021-02-25 Image processor and image processing device
PCT/CN2021/077975 WO2022178786A1 (en) 2021-02-25 2021-02-25 Image processor and image processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/077975 WO2022178786A1 (en) 2021-02-25 2021-02-25 Image processor and image processing device

Publications (1)

Publication Number Publication Date
WO2022178786A1 true WO2022178786A1 (en) 2022-09-01

Family

ID=83047624

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/077975 WO2022178786A1 (en) 2021-02-25 2021-02-25 Image processor and image processing device

Country Status (2)

Country Link
CN (1) CN116671096A (en)
WO (1) WO2022178786A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238316A (en) * 2010-04-29 2011-11-09 北京科迪讯通科技有限公司 Self-adaptive real-time denoising scheme for 3D digital video image
CN102769722A (en) * 2012-07-20 2012-11-07 上海富瀚微电子有限公司 Time-space domain hybrid video noise reduction device and method
US20180324465A1 (en) * 2017-05-05 2018-11-08 Disney Enterprises, Inc. Edge-aware spatio-temporal filtering and optical flow estimation in real time
CN109743473A (en) * 2019-01-11 2019-05-10 珠海全志科技股份有限公司 Video image 3 D noise-reduction method, computer installation and computer readable storage medium
CN111986116A (en) * 2020-08-25 2020-11-24 Oppo广东移动通信有限公司 Video noise reduction method and device, electronic equipment and computer readable storage medium

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238316A (en) * 2010-04-29 2011-11-09 北京科迪讯通科技有限公司 Self-adaptive real-time denoising scheme for 3D digital video image
CN102769722A (en) * 2012-07-20 2012-11-07 上海富瀚微电子有限公司 Time-space domain hybrid video noise reduction device and method
US20180324465A1 (en) * 2017-05-05 2018-11-08 Disney Enterprises, Inc. Edge-aware spatio-temporal filtering and optical flow estimation in real time
CN109743473A (en) * 2019-01-11 2019-05-10 珠海全志科技股份有限公司 Video image 3 D noise-reduction method, computer installation and computer readable storage medium
CN111986116A (en) * 2020-08-25 2020-11-24 Oppo广东移动通信有限公司 Video noise reduction method and device, electronic equipment and computer readable storage medium

Also Published As

Publication number Publication date
CN116671096A (en) 2023-08-29

Similar Documents

Publication Publication Date Title
WO2021147657A1 (en) Frame interpolation processing method and related product
US10282805B2 (en) Image signal processor and devices including the same
US11190715B2 (en) System and method for event camera data processing
CN110996170B (en) Video file playing method and related equipment
US9286532B2 (en) Image processing apparatus and control method thereof
TWI559256B (en) Reducing shading by merging fragments from the adjacent primitives
US10861243B1 (en) Context-sensitive augmented reality
WO2022089592A1 (en) Graphics rendering method and related device thereof
JP2022543729A (en) System and method for foveated rendering
US20200388005A1 (en) Enhanced rendering of surround view images
WO2022068326A1 (en) Image frame prediction method and electronic device
KR20200011000A (en) Device and method for augmented reality preview and positional tracking
US20210049983A1 (en) Display rendering
WO2023207379A1 (en) Image processing method and apparatus, device and storage medium
CN115176455A (en) Power efficient dynamic electronic image stabilization
CN113302658A (en) Parallel texture sampling
CN108540689B (en) Image signal processor, application processor and mobile device
US11373273B2 (en) Method and device for combining real and virtual images
US20200210351A1 (en) Image processing accelerator
WO2022178786A1 (en) Image processor and image processing device
CN112905132B (en) Screen projection method and device
US9374526B2 (en) Providing frame delay using a temporal filter
KR20170037205A (en) Method for controlling parameter of image sensor
CN116091292A (en) Data processing method and related device
US11902502B2 (en) Display apparatus and control method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21927224

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202180081230.3

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21927224

Country of ref document: EP

Kind code of ref document: A1