Super Resolution for Games

JP7629915B2Active Publication Date: 2025-02-14ADVANCED MICRO DEVICES INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2022525205
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-18
Filing Date
2020-10-28
Publication Date
2025-02-14
Estimated Expiration
2040-10-28

Smart Images

  • Figure 0007629915000001
    Figure 0007629915000001
  • Figure 0007629915000002
    Figure 0007629915000002
  • Figure 0007629915000003
    Figure 0007629915000003
Patent Text Reader

Abstract

A processing device is provided that includes a memory and a processor configured to receive an input image having a first resolution, generate a linear downsampled version of the input image by downsampling the input image through a linear upscaling network, generate a non-linear downsampled version of the input image by downsampling the input image through a non-linear upscaling network, and convert the downsampled version of the input image into pixels of an output image having a second resolution that is higher than the first resolution, and provide the output image for display.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Patent Application No. 16 / 687,569, filed November 18, 2019, and is incorporated by reference as if fully set forth herein. [Background technology]

[0002] Super-resolution is the process of upscaling an original image (e.g., a video image, a photograph) through a neural network to extract more information (e.g., details) than were present in the original image. Super-resolution techniques use information from different images or frames to generate the upscaled image. Details are extracted from each image in the sequence to reconstruct the other images.

[0003] A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings, in which: [Brief description of the drawings]

[0004] [Figure 1] 1 is a block diagram of an example device in which one or more features of the present disclosure may be implemented. [Diagram 2] 2 is a block diagram of the device of FIG. 1 showing additional details. [Diagram 3] FIG. 2 is a flow diagram illustrating an exemplary method for super-resolution of an image in accordance with aspects of the present disclosure. [Figure 4] FIG. 4 is a flow diagram illustrating a more detailed example of the method shown in FIG. [Diagram 5] FIG. 2 illustrates the conversion of a low-resolution image to a high-resolution image using sub-pixel convolution, in accordance with aspects of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] Conventional super-resolution techniques include various conventional neural network architectures that perform super-resolution by upscaling an image using a linear function. However, these linear functions do not take advantage of other types of information (e.g., non-linear information), and therefore typically result in blurred and / or corrupted images. Furthermore, conventional neural network architectures are generalizable and trained to operate without significant knowledge of the problem at hand. Other conventional super-resolution techniques use deep learning approaches. However, deep learning techniques do not incorporate important aspects of the original image, resulting in loss of color and detailed information.

[0006] The present application provides devices and methods for efficient super-resolution of images, whereby the original information of the image may be preserved while the image is upscaled and the fidelity is increased. The devices and methods utilize linear and non-linear upsampling in a fully trained environment.

[0007] The device and method include a gaming super-resolution (GSR) network architecture that efficiently super-resolves images in a convolutional and generalizable manner. The GSR architecture uses image condensation and a combination of linear and nonlinear operations to speed up the process to a practical level for gaming. GSR renders images at a lower quality scale to produce a higher quality image approximation and achieves high frame rates. A higher quality reference image is approximated by applying a specific configuration of convolutional layers and activation functions to a lower quality reference image. By training the weights of the convolutional layers with a corpus of images, the GSR network approximates more generalized problems more accurately and efficiently than conventional super-resolution techniques.

[0008] A processing device is provided that includes a memory and a processor. The processor is configured to receive an input image having a first resolution, generate a linear downsampled version of the input image by downsampling the input image through a linear upscaling network, and generate a non-linear downsampled version of the input image by downsampling the input image through a non-linear upscaling network, and convert the downsampled version of the input image into picture elements (pixels) of an output image having a second resolution higher than the first resolution, and provide the output image for display.

[0009] A processing device is provided that includes a memory and a processor configured to receive an input image having a first resolution. The processor is also configured to generate a plurality of non-linear downsampled versions of the input image via a non-linear upscaling network and generate one or more linear downsampled versions of the input image via a linear upscaling network. The processor is also configured to combine the non-linear downsampled versions and the one or more linear downsampled versions to provide a plurality of combined downsampled versions. The processor is also configured to convert the combined downsampled versions of the input image to pixels of the output image by assigning co-located pixels of each of the combined downsampled versions to each of a plurality of pixel blocks of an output image having a second resolution higher than the first resolution, and provide the output image for display.

[0010] A method of super-resolution processing that improves processing performance is provided. The method includes receiving an input image having a first resolution, generating a linear downsampled version of the input image by downsampling the input image through a linear upscaling network, and generating a non-linear downsampled version of the input image by downsampling the input image through a non-linear upscaling network. The method also includes converting the downsampled version of the input image into pixels of an output image having a second resolution higher than the first resolution, and providing the output image for display.

[0011] 1 is a block diagram of an example device 100 in which one or more features of the present disclosure may be implemented. Device 100 may include, for example, a computer, a gaming device, a handheld device, a set-top box, a television, a mobile phone, or a tablet computer. Device 100 includes a processor 102, a memory 104, a storage 106, one or more input devices 108, and one or more output devices 110. Device 100 may also include optional input drivers 112 and output drivers 114. It should be understood that device 100 may include additional components not shown in FIG. 1.

[0012] In various alternatives, the processor 102 includes a central processing unit (CPU), a graphics processing unit (GPU), another type of computational accelerator, a CPU and a GPU located on the same die, or one or more processor cores, each of which may be a CPU, a GPU, or another type of accelerator. For example, multiple processors are included on a single substrate or multiple substrates. The processors are on one or more substrates. In various alternatives, the memory 104 is located on the same die as the processor 102 or is located separately from the processor 102. The memory 104 includes volatile or non-volatile memory (e.g., random access memory (RAM), dynamic RAM, cache).

[0013] Storage 106 includes fixed or removable storage (e.g., hard disk drive, solid state drive, optical disk, flash drive). Input devices 108 include, but are not limited to, one or more image capture devices (e.g., cameras), keyboards, keypads, touch screens, touch pads, detectors, microphones, accelerometers, gyroscopes, biometric scanners, or network connections (e.g., wireless local area network cards for transmitting and / or receiving wireless IEEE 802 signals). Output devices 110 include, but are not limited to, one or more serial digital interface (SDI) cards, displays, speakers, printers, haptic feedback devices, one or more lights, antennas, or network connections (e.g., wireless local area network cards for transmitting and / or receiving wireless IEEE 802 signals).

[0014] The input driver 112 communicates with the processor 102 and the input device 108, allowing the processor 102 to receive input from the input device 108. The output driver 114 communicates with the processor 102 and the output device 110, allowing the processor 102 to send output to the output device 110. The input driver 112 and the output driver 114 include one or more video capture devices, such as, for example, a video capture card (e.g., an SDI card). As shown in FIG. 1, the input driver 112 and the output driver 114 are separate driver devices. Alternatively, the input driver 112 and the output driver 114 are integrated into a single device (e.g., an SDI card) that receives captured image data and provides processed image data (e.g., panoramic stitch image data) that can be stored (e.g., in the storage 106), displayed (e.g., via the display device 118), or transmitted (e.g., over a wireless network).

[0015] It should be noted that the input driver 112 and the output driver 114 are optional components, and that the device 100 operates similarly when the input driver 112 and the output driver 114 are not present. In one example, as shown in FIG. 1, the output driver 114 includes an accelerated processing device (APD) 116 coupled to the display device 118. The APD is configured to receive computational and graphics rendering commands from the processor 102, process the computational and graphics rendering commands, and provide pixel output to the display device 118 for display. The APD 116 includes one or more parallel processing units configured to perform computations according to, for example, a single instruction, multiple data (SIMD) paradigm. Thus, although various functions are described herein as being performed by or in conjunction with the APD 116, in various alternative examples, the functions described as being performed by the APD 116 are not driven by a host processor (e.g., the processor 102), but are additionally or alternatively performed by other computing devices having similar functionality configured to provide graphical output to the display device 118. For example, it is contemplated that any processing system that performs processing tasks according to the SIMD paradigm may be configured to perform the functions described herein, or alternatively, it is contemplated that computing systems that do not perform processing tasks according to the SIMD paradigm may perform the functions described herein.

[0016] 2 is a block diagram of device 100 illustrating additional details related to the execution of processing tasks on APD 116. Processor 102 maintains in system memory 104 one or more control logic modules for execution by processor 102. The control logic modules include operating system 120, kernel mode driver 122, and applications 126. These control logic modules control various features of the operation of processor 102 and APD 116. For example, operating system 120 communicates directly with hardware and provides an interface to the hardware for other software executing on processor 102. Kernel mode driver 122 controls the operation of APD 116, for example, by providing an application programming interface (API) for software executing on processor 102 (e.g., applications 126) to access various features of APD 116. Kernel mode driver 122 also includes a just-in-time compiler that compiles programs for execution by processing components of APD 116 (such as SIMD unit 138, described in more detail below).

[0017] APD 116 executes commands and programs for selected functions that may be suitable for parallel processing, such as graphics and non-graphics operations. APD 116 may be used to perform graphics pipeline operations, such as pixel manipulation, geometry calculations, rendering of images to display device 118, based on commands received from processor 102. APD 116 also performs computational operations not directly related to graphics operations, such as operations related to video, physics simulations, computational fluid dynamics, or other tasks, based on commands received from processor 102.

[0018] The APD 116 includes a computation unit 132 that includes one or more SIMD units 138 configured to perform operations in parallel at the request of the processor 102 according to the SIMD paradigm. The SIMD paradigm is a paradigm in which multiple processing elements share a single program control flow unit and program counter, thus allowing them to execute the same program but execute it on different data. In one example, each SIMD unit 138 includes 16 lanes, each of which can execute the same instruction simultaneously with other lanes in the SIMD unit 138, but execute it on different data. When not all lanes need to execute a given instruction, predication can be used to turn off lanes. Predication can also be used when executing programs with branching control flows. More specifically, for programs where the control flow has conditional branches or other instructions based on calculations performed by individual lanes, the predication of lanes corresponding to the control flow paths that are not currently executed, and the serial execution of the different control flow paths allows for arbitrary control flows.

[0019] The basic unit of execution on the compute units 132 is the work-item. Each work-item represents a single instantiation of a program that executes in parallel on a particular lane. Work-items may execute simultaneously on a single SIMD unit 138 as a "wavefront." One or more wavefronts are included in a "workgroup," which includes a collection of work-items designated to execute the same program. A workgroup may be executed by executing each of the wavefronts that make up the workgroup. In alternative examples, a wavefront may execute sequentially on a single SIMD unit 138, or may execute partially or fully in parallel on different SIMD units 138. A wavefront may be thought of as the largest collection of work-items that can execute simultaneously on a single SIMD unit 138. Thus, if commands received from processor 102 indicate that a particular program is to be parallelized to such an extent that the program cannot run simultaneously on a single SIMD unit 138, then the program is divided into wavefronts that are processed in parallel on two or more SIMD units 138, or that are processed serially (or both in parallel and serially, as appropriate) on the same SIMD unit 138. Scheduler 136 is configured to perform operations related to scheduling various wavefronts on different compute units 132 and SIMD units 138.

[0020] The parallelism provided by the computation units 132 is well suited for graphics-related operations such as pixel value calculations, vertex transformations, and other graphics operations. Thus, in some examples, a graphics processing pipeline 134, which receives graphics processing commands from the processor 102, provides computation tasks to the computation units 132 for execution in parallel.

[0021] Computation units 132 are also used to perform computational tasks that are not related to graphics or that are not performed as part of the "normal" operation of graphics processing pipeline 134 (e.g., custom operations performed to supplement the processing performed on the operation of graphics processing pipeline 134). Applications 126 or other software executing on processor 102 send programs defining such computational tasks to APD 116 for execution.

[0022] An exemplary method for super-resolving an image will now be described with reference to Figures 3 and 4. Figure 3 is a flow diagram illustrating an exemplary method for super-resolving an image. Figure 4 is a flow diagram illustrating a more detailed example of the method shown in Figure 3.

[0023] As shown in block 302, the method includes receiving a low-resolution image. Prior to receiving the low-resolution image in block 302, the original image may be pre-processed, e.g., using any of a number of conventional normalization techniques, and the original image may be condensed into a low-resolution normalized image (i.e., a low-resolution image) received in block 302. For example, as shown in block 402 of FIG. 4, an original image (e.g., an image with a resolution of 1×3×2560×1440) may be received and pre-processed (e.g., normalized) according to pre-processing operations 404 (e.g., including division and subtraction operations), and the original image may be condensed into a low-resolution normalized image received in block 302.

[0024] The low-resolution image is then processed according to two different processes as shown in blocks 304 and 306. The low-resolution image is processed according to a deep learning based linear upscaling network as shown in block 304 or according to a deep learning based non-linear upscaling network as shown in block 306. In the example shown in FIG. 3, each process shown in blocks 304 and 306 operates on the low-resolution image and is performed in parallel. Alternatively, if the hardware does not support parallel processing, the linear and non-linear upscaling processes are not performed in parallel.

[0025] The deep learning-based linear upscaling network includes a linear convolution filter that downsamples the image (e.g., by half the resolution of the image) and extracts linear features from the image to convert an image having a small number (e.g., 3) of feature channels (e.g., red-green-blue (RGB) channels) into a downsampled image having a larger number (e.g., 27) of linear feature channels. That is, the low-resolution image is processed to generate a large number (e.g., 27) of linearly downsampled versions of the low-resolution image. The deep learning-based nonlinear upscaling network processes the low-resolution image through a series of convolution operators and activation functions, extracts nonlinear features, downsamples these features, and increases the feature information content of the low-resolution image.

[0026] The combination of linear and non-linear upscaling facilitates both preserving the color and large-scale features of an image (large objects and shapes that are more easily perceived by the human eye) through linear upscaling, and preserving the finer features of an image (e.g., curve features and features that are not easily perceived at lower resolutions) through non-linear upscaling. Linear operations use only the input data, whereas non-linear operations extend the input data by using both the input data and other data (i.e., non-input data). Non-linear functions facilitate accurate determination of complex features of an image (e.g., curves) more efficiently than non-linear functions (e.g., convolution operations).

[0027] For example, the left path of Figure 4 illustrates an example of a linear upscaling process 304, and the right path of Figure 4 illustrates an example of a non-linear upscaling process 306. Each convolution operation 406 (i.e., each convolution layer) illustrated in the left and right paths of Figure 4 performs a matrix mathematical operation (e.g., matrix multiplication) on a window of pixel data of a low resolution image to generate one or more downsampled versions (i.e., one or more feature maps) of the image having multiple features but at a lower resolution. For example, each convolution operation 406 is predetermined (e.g., set prior to run-time for super-resolving an image of a video stream) to generate the same number (i.e., one or more) of downsampled versions each time the convolution operation 406 is performed (e.g., for each image of a video stream).

[0028] In the example shown in FIG. 4, the left path (i.e., the linear upscaling process 304) includes a single convolution operation 406, and the right path includes multiple linear convolution operations 406. Additionally, the right path includes multiple non-linear point-wise activation functions 408 stacked between the convolution operations 406. The number of convolution operations 406 and activation functions 408 shown in FIG. 4 are merely examples. These examples may include any number of convolution operations and activation functions. Additionally, the dimensions shown in FIG. 4 (e.g., 1×3×2560×1440, 48×3×5×5, 48×48×3×3, and 1×3×1520×2880) are merely examples.

[0029] Each activation function 408 is a nonlinear mathematical function that receives element data and transforms the data into nonlinear data. That is, after each convolution operation 406 is performed on the input data on the right path, a nonlinear point-wise activation function 408 is applied to transform the linear data into nonlinear data. By stacking activation functions 408 between the convolution operations 406, a series of linear operations is transformed into a series of nonlinear operations. Once the neural network has learned to process the data, the network is less constrained (i.e., limited) by the data in the original image than if the stacking of activation functions between the convolution operations 406 had not been performed, and therefore the input data is more efficiently warped to super-resolve the image.

[0030] 3, as shown in block 308 (and in FIG. 4), a linearly downsampled (e.g., 1 / 2 resolution) version of the low resolution image 302 is combined with a non-linearly downsampled version of the low resolution image 302 to provide several combined downsampled versions of the low resolution image 302. These downsampled versions of the low resolution image 302 extract multiple features (i.e., feature channels) from the image at the low resolution.

[0031] As indicated in block 310, the method includes a pixel shuffling process 310. For example, the pixel shuffling process 310 may include performing operations such as reshape operations 410 and transpose operations 412 shown in FIG. 4 to provide a high resolution image 312, as described in more detail below.

[0032] 5 is a diagram illustrating the conversion of a low-resolution image to a high-resolution image using sub-pixel (i.e., sub-resolution pixel) convolutions in accordance with features of the present disclosure. The first three portions of FIG. 5 (annotated as hidden layers) illustrate the extraction of features from the low-resolution image 502 to generate multiple downsampled versions 504 of the low-resolution image 502 according to either of the processing paths shown in FIG. 3 (i.e., linear upscaling process 304 or non-linear upscaling process 306). The downsampled versions 504 of the low-resolution image 302 are also referred to herein as feature maps 504 and combined feature maps 506 to extract multiple features from the image 302.

[0033] In the example shown in FIG. 4, the linear upscaling process 304 on the left path includes a single convolution operation 406 (i.e., a single hidden layer) performed on a window of pixel data of a low-resolution image 502 having a small number (e.g., 3) of features (e.g., RGB color features) to generate a linearly downsampled version (i.e., feature map 504) of the image 502 having a larger number (e.g., 48) of features, including color features, non-color features, and features having color and non-color information.

[0034] The nonlinear upscaling process 306 on the right path of FIG. 4 includes three sets of convolution operations 406 (i.e., three hidden layers) and one activation function 408. That is, a first convolution operation 406, followed by an activation function 408 (e.g., a “Tanh” function) is performed on a window of pixel data of the image 502 to generate a first nonlinear version of the image 502 (i.e., feature map 504). A second convolution operation 406, followed by a second activation function 408, is then performed on the window of pixel data of the image 502 to generate a second nonlinear version of the image 502 (i.e., feature map 504). A third convolution operation 406, followed by a third activation function 408, is then performed on the window of pixel data of the image 502 to generate a third nonlinear version of the image 502 (i.e., feature map 504).

[0035] The fourth and fifth parts of FIG. 5 (annotated as subpixel convolution layers) show the generation of a high-resolution image 508 from several combined downsampled versions 506 of the low-resolution image 502 resulting from the linear upscaling process 304 and the nonlinear upscaling process 306.

[0036] The pixel shuffling process 310 involves converting the low-resolution feature map 506 into pixels of a high-resolution image 508 by using the low-resolution pixel information to generate each block 510 at a higher resolution. As shown in the example of FIG. 5, the high-resolution image 508 includes a plurality of 3×3 high-resolution pixel blocks 510 having a repeating pattern of nine pixels. Furthermore, nine downsampled versions 506(1)-506(9) of the low-resolution image 302 are generated to correspond to the high-resolution pixel blocks 510 of nine pixels, where eight of the downsampled versions 506 represent shifted low-resolution versions of the image 302 and one of the downsampled versions 506 represents an unshifted low-resolution version of the image 302.

[0037] For example, downsampled version 506(1) represents a low-resolution version of image 302 shifted one pixel position up (i.e., up in the Y direction) and one pixel position to the left (i.e., to the left in the X direction). Downsampled version 506(2) represents a low-resolution version of image 302 shifted one pixel position up (i.e., up in the Y direction). Downsampled version 506(3) represents a low-resolution version of image 302 shifted one pixel position up (i.e., up in the Y direction) and one pixel position to the right (i.e., to the right in the X direction). Downsampled version 506(4) represents a low-resolution version of image 302 shifted one pixel position to the left (i.e., to the left in the X direction). Downsampled version 506(5) represents an unshifted low-resolution version of image 302. Downsampled version 506(6) represents a lower resolution version of image 302 shifted one pixel position to the right (i.e., to the right in the X direction). Downsampled version 506(7) represents a lower resolution version of image 302 shifted one pixel position down (i.e., down in the Y direction) and to the left (i.e., to the left in the X direction). Downsampled version 506(8) represents a lower resolution version of image 302 shifted one pixel position down (i.e., down in the Y direction). Downsampled version 506(9) represents a lower resolution version of image 302 shifted one pixel position down (i.e., down in the Y direction) and to the right (i.e., to the right in the X direction).

[0038] The pixel shuffling process 310 is performed by assigning to each of the high resolution pixel blocks 510 the pixel in the same location in each of the nine low resolution feature maps 506. For example, the first high resolution pixel block 510 located in the upper left corner of the high resolution image 508 is shuffled by assigning to pixel position 1 of the high resolution pixel block 510 the pixel in the upper left corner of the first low resolution feature map 506(1) (i.e., the pixel in the same location), to pixel position 1 of the high resolution pixel block 510, the pixel located in the upper left corner of the second low resolution feature map 506(2), the pixel located in the upper left corner of the third low resolution feature map 506(3), the pixel located in the upper left corner of the fourth low resolution feature map 506(4), and the pixel location 4 of the high resolution pixel block 510. assigning to pixel position 7 of the high resolution pixel block 510 the pixel located in the upper left corner of seventh low resolution feature map 506(7); assigning to pixel position 8 of the high resolution pixel block 510 the pixel located in the upper left corner of eighth low resolution feature map 506(8); and assigning to pixel position 9 of the high resolution pixel block 510 the pixel located in the upper left corner of ninth low resolution feature map 506(9).

[0039] The next high resolution pixel block 510 (i.e., the block to the right of the first high resolution pixel block 510) is generated in a similar manner to the first high resolution pixel block 510 by assigning to each pixel location 1-9 of the high resolution pixel block 510 the pixel at the same location (i.e., the pixel located to the right of the pixel in the upper left corner) in each of the low resolution feature maps 506(1)-506(9). The process continues for each of the remaining high resolution pixel blocks 510 in the high resolution image 508.

[0040] After the pixel shuffle process 310 is performed and before generating the high resolution image 312, additional processing operations 414 including addition and multiplication operations are performed to undo the normalization of the original image 402 performed by the subtraction and division operations 404 and return the original image 402 to a standard color space.

[0041] It should be understood that many variations are possible based on the disclosure herein, and although features and elements have been described above in specific combinations, each feature or element can be used alone without the other features and elements, or in various combinations with or without the other features and elements.

[0042] The various functional units illustrated in the figures and / or described herein (including, but not limited to, processor 102, input driver 112, input device 108, output driver 114, output device 110, accelerated processing device 116, scheduler 136, graphics processing pipeline 134, computation unit 132, and SIMD unit 138) may be implemented as a general purpose computer, processor or processor core, or as a program, software or firmware stored in a non-transitory computer readable medium or another medium and executable by a general purpose computer, processor or processor core. The methods provided may be implemented in a general purpose computer, processor or processor core. Suitable processors include, by way of example, a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, other types of integrated circuits (ICs), and / or state machines. Such a processor may be manufactured by configuring a manufacturing process using the results of the processed hardware description language (HDL) instructions and other intermediate data, including a netlist (instructions that may be stored on a computer-readable medium). The result of such processing may be a maskwork used in a semiconductor manufacturing process to manufacture a processor that implements features of the present disclosure.

[0043] The methods or flow charts provided herein may be implemented in a computer program, software, or firmware embodied in a non-transitory computer-readable storage medium for execution by a general purpose computer or processor. Examples of non-transitory computer-readable storage media include read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital versatile disks (DVDs).

Claims

1. Memory, A processor; A processing device comprising: The processor, Receiving an input image having a first resolution; generating at least one linearly downsampled version of the input image via a linear upscaling network; generating at least one non-linear downsampled version of the input image via a non-linear upscaling network; converting at least one linearly downsampled version of the input image and at least one non-linearly downsampled version of the input image into pixels of the output image having a second resolution higher than the first resolution by assigning co-located pixels of each downsampled version of the input image to each of a plurality of pixel blocks of an output image; providing the output image for display; 4. The method of claim 3, Processing device.

2. the processor is configured to generate at least one nonlinear downsampled version of the input image via the nonlinear upscaling network by stacking an activation function between each of a plurality of convolution operations to transform a series of linear operations into a series of nonlinear operations. The processing device of claim 1 .

3. the processor is configured to generate at least one linearly downsampled version of the input image via the linear upscaling network by performing one or more convolution operations on windows of pixels of the input image. The processing device of claim 1 .

4. the processor is configured to convert at least one downsampled version of the input image and at least one non-linearly downsampled version of the input image into pixels by generating a plurality of pixel blocks for the output image, each pixel block including co-located pixels of a respective downsampled version of the input image; The processing device of claim 1 .

5. each pixel block of the output image includes a plurality of pixels, each pixel being located at one of a number of different pixel locations in each pixel block; different pixel locations of the plurality of pixel blocks include identically located pixels of corresponding downsampled versions of the input image; The processing device of claim 4.

6. the total number of distinct pixel locations in each pixel block is equal to the total number of downsampled versions of the input image; The processing device of claim 5.

7. The linear upscaling network includes one or more convolution operations, and the non-linear upscaling network includes a plurality of convolution operations, each of which generates an equal number of linear downsampled versions or an equal number of non-linear downsampled versions each time the corresponding convolution operation is performed. The processing device of claim 1 .

8. Memory, A processor; A processing device comprising: The processor, Receiving an input image having a first resolution; generating a plurality of non-linear downsampled versions of the input image via a non-linear upscaling network; generating a plurality of linearly downsampled versions of the input image via a linear upscaling network; combining the plurality of non-linear downsampling versions with the plurality of linear downsampling versions to provide a plurality of combined downsampling versions; converting the combined downsampled versions of the input images to pixels of the output image having a second resolution higher than the first resolution by assigning to each of a plurality of pixel blocks of an output image a co-located pixel in each of the combined downsampled versions; providing the output image for display; 4. The method of claim 3, Processing device.

9. each of the plurality of linear and non-linear down-sampling versions includes at least one of color features, non-color features, and features having color and non-color information; The processing device of claim 8.

10. the processor is configured to generate the plurality of non-linear down-sampled versions of the input image in parallel with the plurality of linear down-sampled versions of the input image. The processing device of claim 8.

11. the processor is configured to generate the plurality of non-linear down-sampled versions by stacking activation functions between convolution operations to transform a series of linear operations into a series of non-linear operations. The processing device of claim 8.

12. the processor is configured to generate the plurality of linearly downsampled versions of the input image via the linear upscaling network by performing at least one convolution operation on a window of pixels of the input image. The processing device of claim 8.

13. each pixel block of the output image includes a plurality of pixels, each pixel being located at one of a number of different positions in each pixel block; each location contains the pixel at the same location in a corresponding downsampled version of the input image; The processing device of claim 8.

14. the total number of different positions for each pixel block is equal to the total number of downsampled versions of the input image. The processing device of claim 13.

15. The linear upscaling network includes one or more convolution operations, and the non-linear upscaling network includes a plurality of convolution operations, each of which generates an equal number of linear downsampled versions or an equal number of non-linear downsampled versions each time the corresponding convolution operation is performed. The processing device of claim 8.

16. Receiving an input image having a first resolution; generating at least one linearly downsampled version of the input image by downsampling the input image through a linear upscaling network; generating at least one non-linear downsampled version of the input image by downsampling the input image through a non-linear upscaling network; converting at least one linearly downsampled version of the input image and at least one non-linearly downsampled version of the input image into pixels of an output image having a second resolution higher than the first resolution by assigning co-located pixels of each downsampled version of the input image to each of a plurality of pixel blocks of an output image; providing the output image for display. Super resolution processing method.

17. generating at least one nonlinear downsampled version of the input image via the nonlinear upscaling network includes stacking an activation function between each of a plurality of convolution operations to convert a series of linear operations into a series of nonlinear operations.

17. The super-resolution processing method of claim 16.

18. generating at least one linearly downsampled version of the input image via the linear upscaling network includes performing a convolution operation on a window of pixels of the input image; 17. The super-resolution processing method of claim 16.

19. converting the at least one linearly downsampled version of the input image and the at least one non-linearly downsampled version of the input image to pixels includes generating a plurality of pixel blocks for the output image, each pixel block including co-located pixels of a respective downsampled version of the input image.

17. The super-resolution processing method of claim 16.

20. The linear upscaling network includes one or more convolution operations, and the non-linear upscaling network includes a plurality of convolution operations, each of which generates an equal number of linear downsampled versions or an equal number of non-linear downsampled versions each time the corresponding convolution operation is performed.

17. The super-resolution processing method of claim 16.

Citation Information

Patent Citations

  • Ultrasonic diagnostic apparatus

    JP2019198429A