WO2019143025A1 - Image processing method and device using line input and output - Google Patents
Image processing method and device using line input and output Download PDFInfo
- Publication number
- WO2019143025A1 WO2019143025A1 PCT/KR2018/015734 KR2018015734W WO2019143025A1 WO 2019143025 A1 WO2019143025 A1 WO 2019143025A1 KR 2018015734 W KR2018015734 W KR 2018015734W WO 2019143025 A1 WO2019143025 A1 WO 2019143025A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image processing
- convolution
- line
- feature map
- processing apparatus
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
Definitions
- the embodiments described below relate to an image processing method and apparatus using line unit operations.
- UHD video is becoming popular in ultra High Definition (UHD) TV, Internet Protocol Television (IPTV) services and smart phone applications. While many high-end TVs and smartphones support 4K UHD video, there are many video streams with full high definition (FHD) resolution (1920x1080) due to legacy acquisition devices and services.
- UHD ultra High Definition
- IPTV Internet Protocol Television
- FHD full high definition
- the upscaling method is classified into two types.
- a single image upscaling method utilizes local spatial correlation within an LR image to recover lost high frequency detail.
- video upscaling methods use additional data dimensions (time) to improve performance and are expensive to compute.
- a single image up-scaling algorithm can be divided into an interpolation method and a super resolution (SR) method.
- the interpolation method uses a simple interpolation kernel such as a bilinear or bicubic kernel.
- the SR method showed better performance than the previous interpolation method.
- the basic concept of a learning-based approach is learning the mapping function from LR to HR image or video. Learning-based methods can be classified into two types.
- the first is to learn LR-HR mapping (based on the input image internal information) using the surrounding information of the LR image itself and the second to use an external LR-HR image pair (based on external training image or dictionary) .
- Machine learning algorithms such as sparse coding, anchored neighbors and linear mapping kernels have been proposed for SR.
- DNN Deep Neural Network
- CNN Convolutional Neural Networks
- Machine learning-based methods find features in hand-crafted designs and use these handcrafted features to learn mappings, but in-depth neural networks learn the best features and mappings themselves, And effectively.
- This CNN structure includes a number of layers and nonlinear functions, and is designed to perform SR and generate HR images or high quality video.
- CNNs Due to excessive multiplications and other computations, conventional CNNs are known to be difficult to implement in low complexity hardware for real-time applications. Moreover, the analysis of computational complexity and execution time for sophisticated CNN-based SR methods was performed at the level of software (Software (SW)) of CPU (Central Processing Unit) and / or GPU (Graphics Processing Unit) platform. In addition, when the CNN structure is implemented in SW and HW, it is difficult to implement in real time because a plurality of frame buffers must be used to store intermediate feature maps.
- SW Software
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- Embodiments can provide techniques for processing images using line-by-line operations.
- An image processing apparatus includes a receiver for receiving two-dimensional pixel information, at least one first line buffer for outputting the two-dimensional pixel information as a data line on a line-by-line basis, An arithmetic unit for performing the convolution operation, and at least one second line buffer for outputting the data line on which the operation is performed.
- the receiver may include a first pixel information converter for converting the first color data of the two-dimensional pixel information into second color data.
- the image processing apparatus may further include a second pixel information converter for converting the second color data of the data line on which the operation is performed to the first color data.
- a first convolution operator for generating a feature map by performing a convolution operation on the basis of the data line; and a second convolution operator for storing the feature map in units of at least one line,
- a feature map processor for processing to output in a two-dimensional form, and a second convolution operator for performing a convolution operation based on the feature map output in a two-dimensional form.
- the first convolution operator may be implemented in a residual block for learning and outputting a residual signal.
- the first convolution operator may include at least one 1-D convolution operator for performing a 1-D (1-dimensional) convolution operation.
- the first convolution operator may include a depth-wise convolution operator and a point-wise convolution operator directly connected to the depth-wise convolution operator.
- the feature map processor may include a compressor for compressing the feature map in at least one line unit.
- the feature map processor may further include at least one third line buffer for storing feature maps compressed on a line-by-line basis.
- the feature map processor may further include a decompressor for reconstructing the feature map compressed in units of lines into a two-dimensional feature map.
- the second convolution operator may include at least one 2-D convolution operator for performing a 2-D (2-dimensional) convolution operation.
- the second convolution operator may include a depth-wise convolution operator and a point-wise convolution operator directly connected to the depth-wise convolution operator.
- the calculator may further include a quantizer that quantizes the result of at least one convolution operation.
- the calculator may further include a weight buffer for storing parameters used for the convolution operation.
- the image processing method includes the steps of receiving two-dimensional pixel information, outputting the two-dimensional pixel information as at least one data line on a line basis, And outputting the data line on which the operation is performed.
- the receiving may include converting the first color data of the two-dimensional pixel information into second color data.
- the step of performing includes a step of generating a feature map by performing a first convolution operation based on the data line, a step of storing the feature map in units of lines, Processing the feature map to output in the form of a feature map, and performing a second convolution operation based on the feature map output in a two-dimensional form.
- the first convolution operation may be performed in a residual block for learning and outputting a residual signal.
- the generating may comprise performing at least one 1-D (1-dimensional) convolution operation.
- the generating step may include performing a depth-wise convolution operation and directly performing a point-wise convolution operation on the result of the depth-wise convolution operation.
- the processing may include compressing the feature map in units of at least one line.
- the processing may further include storing a feature map compressed in at least one line unit.
- the processing may further include restoring the feature map compressed in the at least one line unit into a two-dimensional feature map.
- the performing the second convolution operation may include performing at least one 2-dimensional (2-D) convolution operation.
- the performing the second convolution operation may include performing a depth-wise convolution operation and directly performing a point-wise convolution operation on the result of the depthwise convolution operation. have.
- the performing the convolution operation may further include quantizing the result of at least one convolution operation.
- the step of performing the convolution operation may further include storing a parameter used in the convolution operation.
- Figure 1 shows a schematic block diagram of an image processing apparatus according to one embodiment.
- Fig. 2 shows a schematic block diagram of the controller shown in Fig.
- Fig. 3 shows a schematic block diagram of the operator shown in Fig. 2.
- FIG. 4 shows a schematic block diagram of the first convolution operator shown in FIG.
- 5A shows an example of a conventional depth wise separable convolution.
- 5B shows an example of the operation of the first convolution operator shown in FIG.
- FIG. 5C shows another example of the operation of the first convolution operator shown in FIG.
- Figure 6 shows a schematic block diagram of the feature map processor shown in Figure 3;
- FIG. 7A shows an example of the operation of the feature map processor shown in FIG.
- Fig. 7B shows an example of the compression algorithm of the compressor shown in Fig.
- Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3.
- Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3.
- Fig. 9 shows an example of the hardware structure of the image processing apparatus shown in Fig.
- Fig. 10 shows an example of a neural network structure used by the image processing apparatus shown in Fig.
- Fig. 11 shows an example of a framework for verifying the image processing apparatus shown in Fig.
- FIG. 12A shows an example of the performance of the image processing apparatus shown in FIG.
- FIG. 12B shows another example of the performance of the image processing apparatus shown in FIG.
- Fig. 12C shows another example of the performance of the image processing apparatus shown in Fig.
- 13A shows an example of an original high resolution image.
- 13B shows an example of an image processed through the bicubic method.
- 13C shows an example of an image processed through the SRCNN method.
- 13D shows an example of an image processed through the SRCNN-Ex method.
- 13E shows an example of an image processed through the FSRCNN method.
- 13F shows an example of an image processed through the FSRCNN-s method.
- 13g shows an example of an image processed through the FSRCNN-s method.
- 13H shows an example of an image processed by applying the quantized weight to the image processing apparatus shown in FIG.
- FIG. 13I shows an example of an image processed by applying the quantized weight and activation by the image processing apparatus shown in FIG. 1.
- FIG. 13I shows an example of an image processed by applying the quantized weight and activation by the image processing apparatus shown in FIG. 1.
- 13J shows an example of an image processed by applying the quantized weight and activation and intermediate feature map compression to the image processing apparatus shown in FIG.
- 14B shows another example of the image processed through the bicubic method.
- 14C shows another example of an image processed through the SRCNN method.
- 14D shows another example of an image processed through the SRCNN-Ex method.
- FIG. 14E shows another example of an image processed through the FSRCNN method.
- 14F shows another example of an image processed through the FSRCNN-s method.
- Figure 14g shows another example of an image processed through the FSRCNN-s method.
- FIG. 14H shows another example of the image processed by applying the quantized weight to the image processing apparatus shown in FIG.
- Fig. 14I shows another example of an image processed by applying the quantized weight and activation by the image processing apparatus shown in Fig.
- FIG. 14J shows another example of an image processed by applying the quantized weight and activation and intermediate feature map compression to the image processing apparatus shown in FIG. 1.
- FIG. 14J shows another example of an image processed by applying the quantized weight and activation and intermediate feature map compression to the image processing apparatus shown in FIG. 1.
- SR hardware is implemented as an FPGA.
- first, second, or the like may be used to describe various elements, but the elements should not be limited by terms.
- the terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the embodiment, the first element being referred to as the second element,
- the second component may also be referred to as a first component.
- a module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.
- a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
- Figure 1 shows a schematic block diagram of an image processing apparatus according to one embodiment.
- the image processing apparatus 10 may receive an image and process the received image.
- the image processing apparatus 10 can process a received image to generate a high-resolution image.
- the image processing apparatus 10 can efficiently process images in low specification hardware.
- the image processing apparatus 10 can learn the neural network based on the received image.
- the image processing apparatus 10 can increase the resolution of the image using the learned neural network.
- the image processing apparatus 10 may perform a super-resolution on a low-resolution image.
- the image processing apparatus 10 can provide a hardware-friendly Convolutional Neural Network (CNN) based Super Resolution (SR) method.
- the image processing apparatus 10 may be implemented on an FPGA to convert a 2K full high definition (FHD) image to a 4K UHD (Ultra High Definition) at 60 fps.
- FHD full high definition
- UHD Ultra High Definition
- the image processing apparatus 10 can effectively perform the SR using the neural network in hardware with limited computation and memory space.
- the image processing apparatus 10 can process the LR (Low Resolution) input line by line and keep the parameter value of the convolution filter at a small number. That is, the image processing apparatus 10 can significantly reduce the number of filter parameters compared to the conventional CNN by processing LR (Low Resolution) data in line units.
- the image processing apparatus 10 can process the SR image using a cascade of 1-D (1-Dimensional) convolution.
- the image processing apparatus 10 can save the required line memory by keeping the large acceptance field along the horizontal line while keeping the vertical receptive field small.
- the line memory may include a line buffer.
- the image processing apparatus 10 can combine the residual connection with the depth-wise separable convolution to reduce the number of filter parameters of the neural network and reduce the SR performance .
- the image processing apparatus 10 can convert the 32-bit floating point data into the fixed-point data with the fixed-point data without substantially degrading the Peak Signal to Noise Ratio (PSNR) through quantization.
- the image processing apparatus 10 can compress the feature map to reduce the line memory required to store the feature map data.
- the image processing apparatus 10 includes a receiver 1000 and a controller 2000.
- Receiver 1000 may receive an image.
- An image received by the receiver 1000 may mean an image of an object formed by refraction or reflection of light.
- an image may include video, pictures, and photographs.
- Receiver 1000 may receive an image in the form of pixel information.
- the receiver 1000 may receive two-dimensional pixel information.
- the receiver 1000 may include a first pixel information converter 1100.
- the first pixel information converter 1100 may convert the first color data of the two-dimensional pixel information into the second color data.
- the image received by the first pixel information converter 1100 may include color data.
- the color data may include RGB channel data and YCbCr channel data.
- the first pixel information converter 1100 may convert the first color data into the second color data.
- the first color data may include RGB channels.
- the second color data may include a YCbCr channel.
- the first pixel information converter 1100 may convert the RGB channel of the LR input image into a YCbCr channel.
- the image may include a low resolution image and a high resolution image.
- the controller 200 can process the received image.
- the controller 200 can increase the resolution of the received image.
- the controller 200 may perform super resolution on the received image.
- the controller 200 can process an image line by line.
- the controller 200 may output an image in units of lines and increase the resolution of the image by performing operations on a line-by-line basis.
- Fig. 2 shows a schematic block diagram of the controller shown in Fig.
- the controller 200 includes a first line buffer 2100, an operator 2200, a second pixel information converter 2300, a second line buffer 2400, .
- the first line buffer 2100 can output the two-dimensional pixel information received by the receiver 1000 as a data line on a line basis.
- the first line buffer 2100 may include at least one line buffer. At this time, the number of line buffers can be determined according to the size of the convolution filter.
- the calculator 2200 can perform a convolution operation based on the data line. The operation of the calculator 2200 will be described in detail with reference to FIG.
- the second pixel information converter 2300 may convert the second color data of the operated data line into the first color data.
- the second pixel information converter 2300 may convert a YCbCr channel to an RGB channel.
- the second line buffer 2400 can output the data line on which the operation is performed.
- the second line buffer 2400 may include a plurality of line buffers.
- the second line buffer 2400 may include four output line buffers.
- Fig. 3 shows a schematic block diagram of the operator shown in Fig. 2.
- the operator 2200 may include a first convolution operator 2210, a feature map processor 2230, a second convolution operator 2250, a quantizer 2270 and a weight buffer 2290.
- the first convolution operator 2210 can generate a feature map by performing a convolution operation based on the data line.
- the feature map processor 2230 can store the feature maps in units of at least one line and process the feature maps stored in units of at least one line in a two-dimensional form.
- the second convolution operator 2250 can perform a convolution operation based on the feature map output in a two-dimensional form.
- the quantizer 2270 can quantize the result of at least one convolution operation.
- the quantizer 2270 may quantize the convolution result and filter parameters using a variety of quantization methods.
- the quantization method of the quantizer 2270 may include any quantization algorithm capable of converting a floating point to a fixed point, including uniform quantization and non-uniform quantization.
- quantizer 2270 may quantize at least one convolution result and filter parameters using uniform quantization.
- the image processing apparatus 10 may use a fixed-point representation via the quantizer 2270 to reduce complexity.
- the quantizer 2270 can convert a floating-point to fixed-point data.
- Fixed-point data can be defined as [IL, FL] to indicate the number.
- IL integer length
- FL fraction length
- the quantizer 2270 can calculate the total number of bits used to represent a number by adding a fractional number of bits to the integer number of bits.
- Quantizer 2270 may be set to a fixed-point format through at [IL, FL], limits the precision of the FL data bits, and the range [-2 IL-1, 2 IL -1 -2 -FL] .
- the quantizer 2270 can use a rounding method that rounds to nearest when converting a floating point to a fixed point. This rounding method can be expressed by Equation (1).
- Equation 2 the formula for converting a floating-point to a fixed-point can be expressed as shown in Equation 2 below.
- the optimal WL, IL, and FL values may be applied to the image processing apparatus 10 to minimize the PSNR degradation of the test set for floating point data (filter parameters and activation values) through a number of experiments.
- the drop due to quantization in the network used by the image processing apparatus 10 may be very small.
- the weight buffer 2290 may store parameters used for the convolution operation.
- the above-described components can operate in a pipe-line form.
- at least one convolution operation may operate in a pipelined fashion.
- FIG. 4 shows a schematic block diagram of the first convolution operator shown in FIG.
- a first convolution operator 2210 may be implemented in a residual block for learning and outputting a residual signal.
- the first convolution operator 2210 may include at least one 1-D convolution operator for performing a 1-dimensional (1-dimensional) convolution operation.
- the 1-D convolution operation may be a convolution operation in which data on a line-by-line basis is input.
- a 1-D convolution operation may mean 1 x n convolution.
- the length n of the line-by-line data may have any integer value of 2 or more.
- the first convolution operator 2210 includes a point-wise (PW) convolution operator 2213 directly connected to a depth-wise (DW) convolution operator 2211 and a depthwise convolution operator 2211, . ≪ / RTI >
- the depth-wise convolution operator 2211 can perform the convolution operation in the depth direction of the feature map.
- the depth-wise convolution operator 2211 may perform at least one depthwise convolution operation.
- the point-wise convolution operator 2213 can perform a convolution operation on a point-by-point basis.
- the point-wise convolution operator 2213 may perform at least one point-wise convolution operation.
- the depth-wise convolution operator 2211 may include at least one 1-D convolution operator.
- the point-wise convolution operator 2213 can perform 1x1 convolution.
- Fig. 5A shows an example of conventional depth wise separable convolution
- Fig. 5B shows an example of the operation of the first convolution operator shown in Fig. 3
- Fig. 4C shows an example of the operation of the first convolution operator shown in Fig. Another example is shown.
- the first convolution operator 2210 may perform a convolution operation using depth-wise separable convolutions (DSC). In this way, the first convolution operator 2210 can achieve similar classification performance with only about 1/9 of the number of parameters as compared with the case of the existing non-separable convolution.
- DSC depth-wise separable convolutions
- the DSC may include a cascaded depthwise convolution operation, a rectified linear unit (ReLU), and a pointwise convolution operation.
- ReLU rectified linear unit
- DSC can exhibit poor performance when used in regression problems such as SR.
- Batch normalization BN can require relatively high computational complexity to degrade performance and to calculate the mean and variance in regression analysis.
- the first convolution operator 2210 can use a structure in which BN and ReLU are removed from the DSC.
- the first convolution operator 2210 removes the ReLU operation between the depth-wise convolution operator 2211 and the point-wise convolution operator 2213, and can directly use them.
- FIG. 5A illustrates a conventional DSC structure
- FIG. 5B illustrates a structure of a convolution layer used by the first convolution operator 220.
- FIG. The results of PSNR and SSIM performance comparisons between the presence and absence of ReLU between the depth-wise convolution operator 2211 and the point-wise convolution operator 2213 for a Set-5 data set may be as shown in Table 1.
- a 3 ⁇ 3 size filter can be used for depth-wise convolution.
- some display applications such as T-Con, may not be able to use line memory excessively, which can limit the use of 3x3 filters in the network.
- a large acceptance field using a 3x3 or larger filter may be needed to achieve high performance in deep running.
- the image processing apparatus 10 can make the network more compact and suitable for the hardware in which the LR input data is streamed line by line.
- the image processing apparatus 10 may apply 1-D horizontal convolution to the first convolution operator 2210.
- the first convolution operator 2210 may have a rectangular vertical field having a longer length in the horizontal direction and a shorter length in the vertical direction. In this way, the image processing apparatus 10 can make the line memory required to store the intermediate feature maps as small as possible.
- the network may need to maintain a convolution filter that is as small as possible.
- a small number of filter parameters can worsen the learning of networks including DSC and 1-D horizontal convolution.
- the image processing apparatus 10 can significantly reduce the number of filters while having excellent SR performance by inserting a residual connection in the network.
- the image processing apparatus 10 may reduce the number of filters by implementing the first convolution operator 2210 in the residual block.
- implementing 2-D convolutional residual connections may require additional line memories to store the input of the residual connections, which may also be needed at the end of the connection.
- Figure 5C may represent the final DSC structure with the final 1-D horizontal convolution and residual connections.
- Figure 6 shows a schematic block diagram of the feature map processor shown in Figure 3;
- the feature map processor 2230 may include a compressor 2231, a third line buffer 2233, and a decompressor 2235.
- the compressor 2231 can compress the feature map in units of at least one line.
- the compressor 2231 can compress the feature map in at least one direction of the width, height, and depth directions of the feature map.
- the third line buffer 2233 can store the compressed characteristic map on a line-by-line basis.
- the third line buffer 2233 may include at least one line buffer. At this time, the number of line buffers can be determined according to the size of a convolution filter used for performing a convolution operation.
- the decompressor 2235 can restore the feature maps compressed on a line-by-line basis into a two-dimensional feature map.
- Fig. 7A shows an example of the operation of the feature map processor shown in Fig. 3
- Fig. 7B shows an example of the compression algorithm of the compressor shown in Fig.
- the compressor 2231 can compress the feature map through various algorithms.
- the compression algorithm may include Fixed-Length Coding and Variable-Length Coding.
- the fixed length coding algorithm may include the DXT algorithm and may include block based algorithms such as JPEG and JPEG 2000.
- the fixed length coding algorithm can be preferred in terms of hardware complexity.
- variable length coding algorithm may include Huffman and Arithmetic Coding.
- a variable length coding algorithm can be used to increase the compression rate.
- the compressor 2231 can compress the feature map using a modification algorithm of the above-described algorithm.
- the size of the acceptance field can have a significant impact on performance.
- both the horizontal and vertical acceptance fields can be important.
- the feature map data may have to be stored in the line memory when the data output after passing through the previous convolution layer is transmitted in the next 3x3 convolution layer.
- a line memory that is twice as many as the number of line memories required to store the output feature maps of the current layer may be needed.
- the use of many line memories causes many problems in chip design.
- the main problem is the increase in chip size due to the increase in the number of power rings used in line memory, the routing congestion in place & route (P & R), and the powering on memory memory block boundaries If the power ring is insufficient, it may include the occurrence of a voltage drop.
- the compressor 2231 can use the feature map compression method considering various points from the hardware implementation viewpoint.
- the feature map compressed by the compressor 2231 may include an intermediate feature map.
- the compressor 2231 can use a very simple compression algorithm. Since compression is considered to reduce the number of line memories, the size of the logic used in the compression method may have to be smaller than the memory size required to store the intermediate feature map before compression.
- the compressor 2231 can provide an efficient compression algorithm for this data characteristic.
- the compressor 2231 can compress the data using only the data adjacent in the horizontal direction in order to use the line memory effectively.
- the algorithm used by the compressor 2231 may include an algorithm modified to fit the DXT5 algorithm to the CNN structure.
- DXT5 is capable of independently compressing each RGB color channel input in compressing RGB pixels illustratively comprised of 4x4 blocks.
- the maximum value (MAX) and minimum value (MIN) of each color channel can be calculated.
- Six intermediate points can be generated through interpolation using the maximum value (MAX) and the minimum value (MIN).
- MAX, MIN, and 6 intermediate points can be defined as reference colors for compression.
- each pixel may be assigned an index value of the color closest to the reference color.
- the encoding can be completed by storing a 4x4 block index value and MAX and MIN values. There are eight neighboring index values for each pixel in the 4x4 block, and each index can be represented by three bits for each pixel.
- the decoding can be easily performed using MAX, MIN values and index values in the reverse order of the encoding process. If bits per pixel (bits per pixel (bpp)) of RGB input is 8 bits, DXT5 can have a fixed compression ratio of 2: 1 for a 4x4 block.
- the compression ratio (CR) can be calculated as shown in Equation (3).
- the compressor 2231 of the image processing apparatus 10 may provide a compression method that modifies the DXT5 algorithm to minimize image quality degradation and increase CR.
- the difference between the conventional DXT 5 and the image processing apparatus 10 can be shown in Table 2.
- the compressor 2231 can fix the minimum value to 0 and calculate only the maximum value. Fixing the minimum value to 0 uses a characteristic that the data of the intermediate feature maps is close to 0 or 0.
- the imposition apparatus 10 can reduce the bit for storing the minimum value and eliminate the logic for calculating the minimum value by fixing the minimum value to zero. Since the intermediate feature map data must be processed line by line in hardware, the block size of the feature map data can be set to 1x32.
- a 5-bit index may be assigned to a quantization level for each piece of data in a 1x32 block of the feature map.
- One index of data is allocated to maintain image quality.
- the 5 bit length for the indices can be determined experimentally by examining the PSNR performance along the bit length for the data point indices.
- the CR of the compressor 2231 can be expressed by Equation (4).
- the compressor 2231 uses divisor values of 32 (a multiple of 2) instead of 31 (2 5 -1) to reduce hardware complexity for calculating intermediate points. Can be set. With this, the compressor 2231 can calculate the midpoints with shift and add operators (shift and add operators)
- Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3.
- Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3.
- the second convolution operator 2250 may include a point-wise convolution operator 2251 and a point-wise convolution operator 2253 directly connected to the depth-wise convolution operator 2251.
- the second convolution operator 2250 may include at least one 2-D convolution operator for performing a 2-D (2-dimensional) convolution operation.
- the depth-wise convolution operator 2251 can perform a convolution operation in the depth direction of the feature map.
- the depth-wise convolution operator 2251 can perform at least one depthwise convolution operation.
- the point-wise convolution operator 2253 can perform a convolution operation on a point-by-point basis.
- the point-wise convolution operator 2253 may perform at least one point-wise convolution operation.
- the 2-D convolution operation may be a convolution operation using two-dimensional data as input.
- a 2-D convolution operation may mean m x n convolution.
- the length m and n of the line-by-line data may have an arbitrary integer value of 2 or more.
- 2-D convolution used by the image processing apparatus 10 may not be limited thereto.
- the depth-wise convolution operator 2251 can perform a convolution operation in the depth direction of the feature map.
- the point-wise convolution operator 2253 can perform a convolution operation on a point-by-point basis.
- the depth-wise convolution operator 2251 may include at least one 2-D convolution operator.
- the point-wise convolution operator 2253 may perform 1x1 convolution.
- the second convolution operator 2250 can perform the convolution operation using the depthwise separable convolution.
- the description related to the depthwise separable convolution is the same as the first convolution operator 2210 and will not be described in detail.
- Fig. 9 shows an example of the hardware structure of the image processing apparatus shown in Fig.
- the image processing apparatus 10 can process a low-resolution image to generate a high-resolution image.
- the image processing apparatus 10 may generate a 4K UHD image from the FHD image.
- the example of FIG. 9 may represent a pipeline hardware architecture for SR.
- the example of FIG. 9 may be of two types. Type-1 means no compression of the intermediate feature map, and Type-2 means compression.
- the image processing apparatus 10 includes a first pixel information converter 1100, a first line buffer 2100, a data aligner, a depth-wise convolution operator 2211, a point-wise convolution operator 2213, a compressor 2231 A third line buffer 2233, a decompressor 2235, a depth-wise convolution operator 2251, a point-wise convolution operator 2253, a quantizer 2270, a weight buffer 2290, 2300 and a second line buffer 2400.
- the image received by the first pixel information converter 1100 may include color data.
- the color data may include RGB channel data and YCbCr channel data.
- the first pixel information converter 1100 may convert the first color data into the second color data.
- the first color data may include RGB channels.
- the second color data may include a YCbCr channel.
- the first pixel information converter 1100 may convert the RGB channel of the LR input image into a YCbCr channel.
- the first line buffer 2100 may illustratively include four line buffers.
- the depth-wise convolution operator 2211 can perform a 1x5 convolution operation.
- the third line buffer 2233 may include an even line buffer and an odd line buffer.
- the depth-wise convolution operator 2251 can perform a 3x3 convolution operation.
- the second pixel information information converter 2300 may convert the second color data into the first color data.
- the second pixel information converter 2300 may convert a YCbCr channel to an RGB channel.
- the weight buffer 2290 may store parameters (or filter parameters) used for the convolution operation.
- the weight buffer 2290 may update parameters received from the convolution operators.
- the second line buffer 2400 may include a plurality of line buffers.
- the second line buffer 2400 may include four output line buffers.
- the outputs of all convolution operators may be quantized through a quantizer 2270. All of the weighting parameters may also be quantized through the quantizer 2270.
- the quantizer 2270 can convert a 32-bit floating point to a 10-bit fixed point.
- the weight buffer 2290 may store the quantized weight parameters.
- the arrows in FIG. 9 may represent the data path. That is, the arrow may represent a datapath according to type-1 and a datapath according to type-2.
- the image processing apparatus 10 can operate in a pipeline structure.
- the pipeline may refer to a structure in which the output of the processing step of one data is connected to the input of the next step.
- the processing step of the connected data can be performed in several steps simultaneously or in parallel.
- the components included in the image processing apparatus 10 may operate concurrently or in parallel to process images.
- at least one convolution operation of the image processing apparatus may operate in a pipeline form.
- Convolution operators may load the convolution filter parameters from the weight buffer 2290.
- the first pixel information converter 1100 may then extract the YCbCr value from the RGB input stream.
- the first line buffer 2100 may store four rows of the YCbCr LR input image for use in the shortest entry upscaling to obtain the interpolated image for the residual connection at the end of the network.
- the data aligner may rearrange the data of the four line buffers and input streams of the first line buffer 2100 and generate 3x3 sized YCbCr LR patches.
- the Y channel of the LR patches can be transmitted in a 3x3 convolution layer.
- the feature map may pass through the ReLU activation function. Thereafter, the output of the ReLU function may pass through the first convolution operator 2210.
- the first convolution operator 2210 may generate a feature map (or an intermediate feature map).
- the compressor 2231 compresses the intermediate feature map that has passed through the residual block and the ReLU, and the third line buffer 2233 can store it.
- the decompressor 2235 can read the data stored in the third line buffer 2233 and decompress the decompressed data at a timing of one-delayed line data DE (data enable).
- the depth-wise convolution operator 2251 performs a 3 ⁇ 3 convolution operation on the decompressed data
- the point-wise convolution operator 2253 performs a 1 ⁇ 1 convolution operation on the output of the depth-wise convolution operator 2251 .
- the number of feature map channels may be reduced from 32 to 16 in half.
- the feature map in which the channel is reduced can again pass through the compressor 2231, the third line buffer 2233, and the decompressor 2235 sequentially. Thereafter, a convolution operation may be performed through the depth-wise convolution operator 2251 and the point-wise convolution operator 2253 once again.
- the output after repeated convolution operations can be made up of four channels used to create a 2x2 HR patch in a manner similar to subpixel convolution.
- the image processing apparatus 10 adds the super-resolved Y data (Y C ) of 2x2 size and the 2X up-sampled data (Y N ) by the shortest entry interpolation method, (Y F ).
- Y N data is stored in a FIFO (First-In-First-Out) and can be read at the same timing as Y C.
- the CbCr data delayed from the FIFO may also be upsampled twice based on the nearest neighbor interpolation and sent to the second pixel information converter to obtain RGB pixels.
- the two output buffers of the second line buffer 2400 can store the generated 2x2 RGB HR patches and can be transmitted to the display device every output clock cycle at the output timing.
- Four line buffers may be used in the second line buffer 2400 to avoid read / write conflicts with 2x2 RGB HR patches using a double buffering scheme for stream processing.
- Fig. 10 shows an example of a neural network structure used by the image processing apparatus shown in Fig.
- the image processing apparatus 10 can process images using a hardware-friendly CNN-based SR network.
- the image processing apparatus 10 can process the image using only a part of the color data.
- only the luminance signal (Y) channel can be input to the CNN network for processing.
- the performance of learning using only Y channel may be similar to the performance of learning using RGB channel.
- the number of parameters used for the RGB channel may be three times greater than the number of parameters used only for the Y channel in the 2-D convolution of the first layer and the point-wise convolution of the last layer .
- the color difference signal (Cb, Cr) channel data can be upscaled using an interpolation method.
- the interpolation method may include bicubic interpolation and nearest neighbor interpolation.
- the image processing apparatus 10 can be upscaled using simple shortest-point interpolation instead of bicubic interpolation for reduced hardware complexity and hardware efficiency. Also, in order to reduce the complexity, the image processing apparatus 10 may learn a neural network using a residual learning technique.
- the image processing apparatus 10 can calculate the final HR image Y F by adding the interpolated LR image Y N and the output Y C of the network. This can be expressed by Equation (5).
- the image processing apparatus 10 combines depth-wise separable convolutions, 1-D horizontal convolution and residual connection Can be used.
- the number of filter parameters is about 21 times smaller than that of the conventional Super-Resolution Convolutional Neural Network (SRCNN) -Ex, about 4.5 times smaller than that of the FSRCNN (Fast Super Resolution Convolutional Neural Network) While PSNR and Structural Similarity (SSIM) performance may be similar to SRCNN-Ex.
- SRCNN Super-Resolution Convolutional Neural Network
- FSRCNN Fast Super Resolution Convolutional Neural Network
- PSNR and Structural Similarity (SSIM) performance may be similar to SRCNN-Ex.
- the image processing apparatus 10 may perform a convolution operation through a 2-D convolution layer of two layers and a 1-D convolution layer.
- the 2-D convolution operation may be a 3x3 convolution operation
- the 1-D convolution operation may be a 1x5 convolution operation.
- the total receiving field size may be 7 x 15.
- Fig. 11 shows an example of a framework for verifying the image processing apparatus shown in Fig.
- performance may be evaluated for popular data sets to compare bi-cubic and conventional CNN-based SR methods with the image processing apparatus 10.
- the performance of the image processing apparatus 10 can be compared with software-based methods including SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s and VDSR (Very Deep Super-Resolution).
- the performance of the image processing apparatus 10 can be compared with other real-time SR hardware in view of the gate count and the operating frequency.
- a set of benchmark data that are available for learning and testing can be used.
- the SR network can be learned using 291 images consisting of 200 images from 91 images from Yang et al. And Berkeley Segmentation Dataset.
- Test set-1 and test set-2 can be used for performance comparison.
- Test set-1 can consist of Set5, Set14, B100 and Urban100, which can often be used as SR benchmarks in many ways.
- Test Set-2 can consist of 8 4K UHD images and can be used for testing.
- PSNR and SSIM can be used as metrics for evaluation. Since SR was performed on the luminance channel of the YCbCr color space, the PSNR and SSIM can be computed using the Y channel of the reconstructed original HR image.
- the LR input image can be intentionally generated by downsampling from the original HR image using bi-cubic interpolation of double scale. Subimages of size 128 x 128 may be cropped randomly for learning.
- the LR-HR learning image pair can be augmented using rotation, reflection, and scaling.
- the weights may be initialized using a uniform distribution, and the bias may not be used to reduce the number of parameters.
- L1 loss can be used as a cost function instead of L2 loss.
- the proposed SR network can be learned using the Adam optimizer.
- the learning rate is set to 0.0001 and can be reduced by 10 for every 50 epochs.
- the size of the mini batch can be set to two.
- a 3.4GHz NVIDIA Titan X GPU and an Intel Core i7-6700 CPU can be used for learning tests.
- the weight parameters of the SR network during the learning phase may be quantized according to Equation 2 from floating point to fixed point in the test phase while calculating the floating point.
- the compressed intermediate feature map and the final SR image in the algorithm step can be compared with the hardware simulation results designed using the golden model.
- FIG. 12A shows an example of the performance of the image processing apparatus shown in FIG. 1
- FIG. 12B shows another example of the performance of the image processing apparatus shown in FIG. 1
- Another example of performance is shown.
- weighting parameters and activation may be quantized for hardware implementation. It may be important to find the appropriate quantization bit depth since the quantization for the weight parameter and activation greatly affects the quality of the output image. That is, in the above description, appropriate values for three parameters of the word length (WL), the integer length (IL), and the decimal length (FL) may be required. To do this, experiments can be performed by changing WL, IL, FL for various data sets.
- FIG. 12A may show a PSNR graph for WL and IL that quantizes weight parameter values for a Set5 data set.
- the WL bit depth can be set to 10 bits and the IL bit depth can be set to 2, which can also be used for active quantization and intermediate feature map compression.
- FIG. 12B shows the PSNR performance of the SR network for WL and IL bit depths for active quantization. Based on the experimental result of FIG. 12B, WL for active quantization can be set to 14 bits, and IL can be set to 2 bits.
- FIG. 12C can show experimental results on a compression method applied to a quantized feature map to reduce line memory usage.
- Various block sizes and indices may be examined in relation to PSNR performance. The smaller the number of quantization levels of compression, the higher the compression ratio but the lower the PSNR performance.
- a block size of 32 bits and an index size of 5 bits can be selected as a compromise between the required line memory and the resulting PSNR.
- FIG. 13A shows an example of an original high-resolution image
- FIG. 13B shows an example of an image processed through a bicubic method
- FIG. 13C shows an example of an image processed through a SRCNN method.
- FIG. 13D shows an example of an image processed through the FSRCNN-s method
- FIG. 13E shows an example of an image processed through the FSRCNN method
- FIG. 13F shows an example of an image processed through the FSRCNN- .
- FIG. 13G shows an example of an image processed through the VDSR method
- FIG. 13H shows an example of an image processed by applying the quantized weight to the image processing apparatus shown in FIG.
- FIG. 13I shows an example of an image processed by applying the quantized weight and activation to the image processing apparatus shown in FIG. 1
- FIG. 13J shows an example in which the image processing apparatus shown in FIG. An example of an image processed by applying compression is shown.
- FIG. 14A shows another example of the original high-resolution image
- FIG. 14B shows another example of the image processed through the bicubic method
- FIG. 14C shows another example of the image processed through the SRCNN method.
- FIG. 14D shows another example of the image processed through the SRCNN-s method
- Fig. 14E shows another example of the image processed through the FSRCNN method
- Fig. 14F shows another example of the image processed through the FSRCNN-s method .
- FIG. 14G shows another example of the image processed through the FSRCNN-s method
- FIG. 14H shows another example of the image processed by applying the quantized weight to the image processing apparatus shown in FIG.
- FIG. 14I shows another example of an image processed by applying the quantized weight and activation to the image processing apparatus shown in FIG. 1
- FIG. 14J shows the image processing apparatus shown in FIG. 1 with the quantized weight
- Another example of an image processed by applying compression is shown.
- the performance of the image processing apparatus 10 can be compared with other CNN-based SR methods including bicubic and SRCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s.
- Publicly available MATLAB (TM) source code for SRCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s may be used and the image processing apparatus 10 may be implemented using PyTorch.
- the boundaries of the HR reconstruction and the original image may be excluded from the PSNR / SSIM calculation. All methods can be executed on the CPU platform.
- the execution time of the image processing apparatus 10 can be measured based on a software implementation using PyTorch.
- the image processing apparatus 10 performs better than FSRCNN-s and occupies only 64% of the filter parameters in comparison with FSRCNN-s. In addition, it can be confirmed that the performance of the image processing apparatus 10 does not occur even after the value of the weight parameter and the quantization for activation.
- Table 5 shows the performance comparison results of the image processing apparatus 10 and other CNN-based SR methods in terms of the average calculation time of the PSNR and SSIM of the test set 2 composed of the 4K UHD test image.
- the image processing apparatus 10 can restore a quality HR image comparable to other SR methods.
- RCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s can use relatively long run times because public code is implemented in MATLAB and may not be optimized on the CPU platform.
- the network used by the image processing apparatus 10 for a fair comparison can also be implemented in TensorFlow, and other codes can be created in TensorFlow and the execution time can be measured in the GPU platform.
- the execution time measured by the GPU for various CNN-based SR methods including the image processing apparatus 10 can be confirmed.
- the execution time of the image processing apparatus 10 executed in the GPU was measured to be about 50 ms, which is about three times faster than the FPGA implementation.
- 13A to 13J can represent restored images and their cropped regions using five CNN-based SR methods including bi-cubic and image processing device 10. [ It can be confirmed that the image processing apparatus 10 uses the smallest number of parameters but the resulting HR image can still be perceived with sharp edges and few artifacts.
- FIGS. 14A through 14J may represent cropped regions of the reconstructed HR image for children images of 4K UHD resolution. It can be confirmed that the visual quality of the image processing apparatus 10 and other CNN-based SR methods are similar.
- SR hardware is implemented as an FPGA.
- Table 6 shows the details of Lee, Yang, previous Super-Interpolation (SI) and implementation of the image processing apparatus 10.
- Lee et al. Presented hardware using a Lagrange interpolation method using a sharpening algorithm to obtain a 4K UHD video stream from HD and FHD streams at 30 fps.
- Yang's HW architecture is based on Anchor Neighborhood Regression (ANR), which uses a dictionary to obtain intermediate images at a target resolution for generating high-frequency patches and obtains FHD at 60 fps.
- ANR Anchor Neighborhood Regression
- the machine learning based SI HW architecture can be based on linear mapping using edge orientation analysis, which directly restores the HR image through high frequency reconstruction without the need for intermediate images.
- the image processing apparatus 10 may be implemented using a system verilog of the FPGA.
- the output clock speed of the image processing apparatus 10 may be four times the input clock speed. This may be because the ratio of FHD operating frequencies above 4K UHD is usually 1/4.
- the image processing apparatus 10 may process 4 pixels per clock cycle to support a 4K UHD video stream of 60 fps and may be used in combination with the 150MHz target operating frequency and the synthesis and P & R steps of the Vivado Design Suite 2015.4 May be implemented according to the constraints applied.
- Xilinx Kintex UltraScale FPGA KCU105 evaluation board and TED's HDMI 2.0 expansion card can be used to support FHD input and 4K UHD output video interface to validate implemented SR hardware.
- the image processing apparatus 10 may be provided with two types of SR HWs. Both types of SR HW may be type-1 with no feature map compression applied and type-2 with feature map compression applied.
- a 110K slice LUT and a 102K slice register can be used that occupy 45.38% of the total slice LUTs and 21.08% of the total slice registers in the XCKU040 FPGA device.
- Type-2 a 151K slice LUT and a 121K slice register corresponding to 62.6% of the total slice LUT and 24.97% of the total slice register can be used.
- Type-1 and Type-2 can take full advantage of the 1,920 DSP block in the XCKU040 FPGA device on the KCU105 evaluation board.
- Type-2 can reduce on-chip memory usage of about 50% of Type-1 (for example, block RAM on an FPGA). On the other hand, type-2 can further use about 38% slice LUT and about 18% slice register in comparison to type-1 to implement two compressors 2231 and six decompressors 2235.
- the image processing apparatus 10 may require a larger number of line memories and gates as compared to the non-CNN based SR method, but it can recover a fairly high quality 4K UHD HR image in real time at 60 fps.
- the method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium.
- the computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination.
- Program instructions to be recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software.
- Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
- program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
- the software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded.
- the software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave.
- the software may be distributed over a networked computer system and stored or executed in a distributed manner.
- the software and data may be stored on one or more computer readable recording media.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
Disclosed are an image processing method and device using a linewise operation. The image processing device, according to one embodiment, comprises: a receiver for receiving two-dimensional pixel information; at least one first line buffer for outputting the two-dimensional pixel information into a linewise data line; an operator for performing a convolution operation on the basis of the data line data; and at least one second line buffer for outputting the data line on which the operation has been performed.
Description
아래 실시예들은 라인 단위 연산을 이용한 이미지 처리 방법 및 장치에 관한 것이다.The embodiments described below relate to an image processing method and apparatus using line unit operations.
UHD(Ultra High Definition) TV, IPTV(Internet Protocol Television) 서비스 및 스마트폰 어플리케이션에서 UHD 비디오가 널리 보급되고 있다. 많은 고급형 TV 및 스마트폰이 4K UHD 비디오를 지원하지만, 레거시 수집 장치(legacy acquisition devices) 및 서비스로 인해 FHD(Full High Definition) 해상도(1920×1080)를 가진 비디오 스트림들이 많이 존재하고 있다.UHD video is becoming popular in ultra High Definition (UHD) TV, Internet Protocol Television (IPTV) services and smart phone applications. While many high-end TVs and smartphones support 4K UHD video, there are many video streams with full high definition (FHD) resolution (1920x1080) due to legacy acquisition devices and services.
따라서, 저해상도(low-resolution(LR)) 컨텐츠를 고해상도(high-resolution (HR))로 변환할 수 있는 정교한 업스케일링 기술이 필수적이다. 특히, 2K FHD에서 4K UHD로 변환하는 비디오 업스케일에 있어서 정교한 업스케일링 기술이 더욱 중요하다.Therefore, a sophisticated upscaling technique that can convert low-resolution (LR) content into high-resolution (HR) is essential. In particular, sophisticated upscaling technology is more important for video upscaling from 2K FHD to 4K UHD.
업스케일링 방법은 두가지 유형으로 분류된다. 단일 이미지 업스케일링 방법은 손실된 고주파 디테일을 복구하기 위해 하나의 LR 이미지 내에서 국부적 공간 상관 관계(local spatial correlation)을 활용한다. 반면, 비디오 업스케일링 방법은 성능을 향상시키 위해서 추가 데이터 차원(시간)을 사용하고 계산 비용이 높다.The upscaling method is classified into two types. A single image upscaling method utilizes local spatial correlation within an LR image to recover lost high frequency detail. On the other hand, video upscaling methods use additional data dimensions (time) to improve performance and are expensive to compute.
단일 이미지 업스케일링 알고리즘은 보간(interpolation) 방법과 초해상화(super Resolution(SR)) 방법으로 나눌 수 있다. 보간 방법은 바이리니어(bilinear) 또는 바이큐빅(bicubic) 커널과 같은 간단한 보간 커널을 이용한다.A single image up-scaling algorithm can be divided into an interpolation method and a super resolution (SR) method. The interpolation method uses a simple interpolation kernel such as a bilinear or bicubic kernel.
SR 방법은 이전의 보간 방법보다 우수한 성능을 보였다. 학습 기반 접근 방식의 기본 개념은 LR에서 HR이미지 또는 비디오로의 매핑 함수를 학습하는 것이다. 학습 기반 방법은 두 가지 유형으로 분류할 수 있다.The SR method showed better performance than the previous interpolation method. The basic concept of a learning-based approach is learning the mapping function from LR to HR image or video. Learning-based methods can be classified into two types.
첫 번째는 LR 이미지 자체의 주변 정보를 사용하여 LR-HR 매핑을 학습(입력 이미지 내부 정보 기반)하는 것이고, 두 번째는 외부 LR-HR 이미지 쌍(외부 훈련 이미지 또는 사전(dictionary) 기반)을 이용하여 학습하는 방식이다.The first is to learn LR-HR mapping (based on the input image internal information) using the surrounding information of the LR image itself and the second to use an external LR-HR image pair (based on external training image or dictionary) .
스파스 코딩(sparse coding), 앵커드 네이버(anchored neighbor) 및 리니어 매핑 커널(linear mapping kernel)와 같은 기계 학습 알고리즘이 SR을 위해 제안되었다.Machine learning algorithms such as sparse coding, anchored neighbors and linear mapping kernels have been proposed for SR.
하지만, 이러한 학습 기반 SR 방법은 대부분은 중간 이미지(intermediate image)를 저장하기 위해 큰 용량의 프레임 버퍼를 필요로 하기 때문에, 저복잡도(low-complexity) 하드웨어(Hardware(HW))에서의 고해상도 이미지 초해상화, 예를 들어, FHD에서 4K UHD로 실시간으로 변환하기 위해 SR 방법을 구현하는데 어려움이 있다.However, since this learning-based SR method requires a large capacity frame buffer to store intermediate images in most cases, a high-resolution image in the low-complexity hardware (HW) There is a difficulty in implementing the SR method for real-time conversion from resolution to resolution, for example, FHD to 4K UHD.
최근, 심층 신경망(Deep Neural Network(DNN)), 특히 심층 컨벌루션 뉴럴 네트워크(Convolutional Neural Networks(CNNs))가 이미지 분류, 객체 검출 및 분할 등과 같은 다양한 컴퓨터 시각 영역에서 우수한 성능을 보이고 있다.In recent years, Deep Neural Network (DNN), especially Convolutional Neural Networks (CNNs), has shown excellent performance in various computer vision fields such as image classification, object detection and segmentation.
기계 학습 기반 방법은 핸드 크래프티드(hand-crafted) 설계에서 특징들을 찾아내고 이러한 핸드 크래프티드 특징들을 이용하여 매핑을 학습하지만, 심층 신경망은 최적의 특징들 및 매핑들을 스스로 학습하여 전체 학습을 보다 간단하고 효과적으로 만든다.Machine learning-based methods find features in hand-crafted designs and use these handcrafted features to learn mappings, but in-depth neural networks learn the best features and mappings themselves, And effectively.
정교한 CNN 기반 SR 방법들은 HR 재구성의 시각적 품질을 향상시키기 위하여 제안되었다. 이러한 CNN 구조는 다수의 레이어(layer)들과 비선형 함수들을 포함하고, SR을 수행하고 HR 이미지 또는 높은 품질의 비디오들을 생성하도록 설계된다.Sophisticated CNN-based SR methods have been proposed to improve the visual quality of HR reconstruction. This CNN structure includes a number of layers and nonlinear functions, and is designed to perform SR and generate HR images or high quality video.
과도한 곱셈들 및 다른 계산들로 인해, 종래의 CNN은 실시간 어플리케이션을 위한 낮은 복잡도의 하드웨어에서 구현되는 것이 어렵다고 알려져 있다. 더욱이, 정교한 CNN 기반 SR 방법에 대한 계산 복잡도 및 실행 시간에 대한 분석은 CPU(Central Processing Unit) 및/또는 GPU(Graphics Processing Unit) 플랫폼의 소프트웨어(Software(SW)) 수준에서 수행되었다. 또한, 이러한 CNN 구조는 SW 및 HW에 구현될 때 중간 특징맵들을 저장하기 위해서 다수의 프레임 버퍼를 사용해야 하므로 실시간으로 구현되는 것이 어렵다.Due to excessive multiplications and other computations, conventional CNNs are known to be difficult to implement in low complexity hardware for real-time applications. Moreover, the analysis of computational complexity and execution time for sophisticated CNN-based SR methods was performed at the level of software (Software (SW)) of CPU (Central Processing Unit) and / or GPU (Graphics Processing Unit) platform. In addition, when the CNN structure is implemented in SW and HW, it is difficult to implement in real time because a plurality of frame buffers must be used to store intermediate feature maps.
실시예들은 라인 단위 연산을 이용하여 이미지를 처리하는 기술을 제공할 수 있다.Embodiments can provide techniques for processing images using line-by-line operations.
일 실시예에 따른 이미지 처리 장치는, 2차원 픽셀 정보를 수신하는 수신기와, 상기 2 차원 픽셀 정보를 라인 단위의 데이터 라인으로 출력하는 적어도 하나의 제1 라인 버퍼와, 상기 데이터 라인 데이터에 기초하여 컨벌루션 연산을 수행하는 연산기와, 연산이 수행된 데이터 라인을 출력하는 적어도 하나의 제2 라인 버퍼를 포함한다.An image processing apparatus according to an embodiment of the present invention includes a receiver for receiving two-dimensional pixel information, at least one first line buffer for outputting the two-dimensional pixel information as a data line on a line-by-line basis, An arithmetic unit for performing the convolution operation, and at least one second line buffer for outputting the data line on which the operation is performed.
상기 수신기는, 상기 2차원 픽셀 정보의 제1 컬러 데이터를 제2 컬러 데이터로 변환하는 제1 픽셀 정보 변환기를 포함할 수 있다.The receiver may include a first pixel information converter for converting the first color data of the two-dimensional pixel information into second color data.
상기 이미지 처리 장치는, 상기 연산이 수행된 데이터 라인의 제2 컬러 데이터를 제1 컬러 데이터로 변환하는 제2 픽셀 정보 변환기를 더 포함할 수 있다.The image processing apparatus may further include a second pixel information converter for converting the second color data of the data line on which the operation is performed to the first color data.
상기 연산기는, 상기 데이터 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 제1 컨벌루션 연산기와, 상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을2 차원 형태로 출력하도록 처리하는 특징맵 처리기와, 2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행하는 제2 컨벌루션 연산기를 포함할 수 있다.A first convolution operator for generating a feature map by performing a convolution operation on the basis of the data line; and a second convolution operator for storing the feature map in units of at least one line, A feature map processor for processing to output in a two-dimensional form, and a second convolution operator for performing a convolution operation based on the feature map output in a two-dimensional form.
상기 제1 컨벌루션 연산기는, 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현될 수 있다.The first convolution operator may be implemented in a residual block for learning and outputting a residual signal.
상기 제1 컨벌루션 연산기는, 1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다.The first convolution operator may include at least one 1-D convolution operator for performing a 1-D (1-dimensional) convolution operation.
상기 제1 컨벌루션 연산기는, 뎁스 와이즈(depth-wise) 컨벌루션 연산기와, 상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기를 포함할 수 있다.The first convolution operator may include a depth-wise convolution operator and a point-wise convolution operator directly connected to the depth-wise convolution operator.
상기 특징맵 처리기는, 상기 특징맵을 적어도 하나의 라인 단위로 압축하는 컴프레서(compressor)를 포함할 수 있다.The feature map processor may include a compressor for compressing the feature map in at least one line unit.
상기 특징맵 처리기는, 라인 단위로 압축된 특징맵을 저장하는 적어도 하나의 제3 라인 버퍼를 더 포함할 수 있다.The feature map processor may further include at least one third line buffer for storing feature maps compressed on a line-by-line basis.
상기 특징맵 처리기는, 상기 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 디컴프레서(decompressor)를 더 포함할 수 있다.The feature map processor may further include a decompressor for reconstructing the feature map compressed in units of lines into a two-dimensional feature map.
상기 제2 컨벌루션 연산기는, 2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다.The second convolution operator may include at least one 2-D convolution operator for performing a 2-D (2-dimensional) convolution operation.
상기 제2 컨벌루션 연산기는, 뎁스 와이즈(depth-wise) 컨벌루션 연산기와, 상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기를 포함할 수 있다.The second convolution operator may include a depth-wise convolution operator and a point-wise convolution operator directly connected to the depth-wise convolution operator.
상기 연산기는, 적어도 하나의 컨벌루션 연산 결과를 양자화하는 양자화기를 더 포함할 수 있다.The calculator may further include a quantizer that quantizes the result of at least one convolution operation.
상기 연산기는, 컨벌루션 연산에 사용되는 파라미터를 저장하는 가중치 버퍼를 더 포함할 수 있다.The calculator may further include a weight buffer for storing parameters used for the convolution operation.
일 실시예에 따른 이미지 처리 방법은, 2차원 픽셀 정보를 수신하는 단계와, 상기 2 차원 픽셀 정보를 라인 단위인 적어도 하나의 데이터 라인으로 출력하는 단계와, 상기 적어도 하나의 데이터 라인에 기초하여 컨벌루션 연산을 수행하는 단계와, 상기 연산이 수행된 데이터 라인을 출력하는 단계를 포함한다.The image processing method according to one embodiment includes the steps of receiving two-dimensional pixel information, outputting the two-dimensional pixel information as at least one data line on a line basis, And outputting the data line on which the operation is performed.
상기 수신하는 단계는, 상기 2차원 픽셀 정보의 제1 컬러 데이터를 제2 컬러 데이터로 변환하는 단계를 포함할 수 있다.The receiving may include converting the first color data of the two-dimensional pixel information into second color data.
상기 연산이 수행된 데이터 라인의 제2 컬러 데이터를 제1 컬러 데이터로 변환하는 단계를 더 포함할 수 있다.And converting the second color data of the data line on which the operation is performed to the first color data.
상기 수행하는 단계는, 상기 데이터 라인에 기초하여 제1 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 단계와, 상기 특징맵을 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 상기 특징맵을 처리하는 단계와, 2차원 형태로 출력된 특징맵에 기초하여 제2 컨벌루션 연산을 수행하는 단계를 포함할 수 있다.Wherein the step of performing includes a step of generating a feature map by performing a first convolution operation based on the data line, a step of storing the feature map in units of lines, Processing the feature map to output in the form of a feature map, and performing a second convolution operation based on the feature map output in a two-dimensional form.
상기 제1 컨벌루션 연산은, 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에서 수행될 수 있다.The first convolution operation may be performed in a residual block for learning and outputting a residual signal.
상기 생성하는 단계는, 적어도 한 번의 1-D(1-dimensional) 컨벌루션 연산을 수행하는 단계를 포함할 수 있다.The generating may comprise performing at least one 1-D (1-dimensional) convolution operation.
상기 생성하는 단계는, 뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계와, 상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계를 포함할 수 있다.The generating step may include performing a depth-wise convolution operation and directly performing a point-wise convolution operation on the result of the depth-wise convolution operation.
상기 처리하는 단계는, 상기 특징맵을 적어도 하나의 라인 단위로 압축하는 단계를 포함할 수 있다.The processing may include compressing the feature map in units of at least one line.
상기 처리하는 단계는, 적어도 하나의 라인 단위로 압축된 특징맵을 저장하는 단계를 더 포함할 수 있다.The processing may further include storing a feature map compressed in at least one line unit.
상기 처리하는 단계는, 상기 적어도 하나의 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 단계를 더 포함할 수 있다.The processing may further include restoring the feature map compressed in the at least one line unit into a two-dimensional feature map.
상기 제2 컨벌루션 연산을 수행하는 단계는, 적어도 한 번의 2-D(2-dimensional) 컨벌루션 연산을 수행하는 단계를 포함할 수 있다.The performing the second convolution operation may include performing at least one 2-dimensional (2-D) convolution operation.
상기 제2 컨벌루션 연산을 수행하는 단계는, 뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계와, 상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계를 포함할 수 있다.The performing the second convolution operation may include performing a depth-wise convolution operation and directly performing a point-wise convolution operation on the result of the depthwise convolution operation. have.
상기 컨벌루션 연산을 수행하는 단계는, 적어도 하나의 컨벌루션 연산 결과를 양자화하는 단계를 더 포함할 수 있다.The performing the convolution operation may further include quantizing the result of at least one convolution operation.
상기 컨벌루션 연산을 수행하는 단계는, 컨벌루션 연산에 사용되는 파라미터를 저장하는 단계를 더 포함할 수 있다.The step of performing the convolution operation may further include storing a parameter used in the convolution operation.
도 1은 일 실시예에 따른 이미지 처리 장치의 개략적인 블록도를 나타낸다.Figure 1 shows a schematic block diagram of an image processing apparatus according to one embodiment.
도 2는 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.Fig. 2 shows a schematic block diagram of the controller shown in Fig.
도 3은 도 2에 도시된 연산기의 개략적인 블록도를 나타낸다.Fig. 3 shows a schematic block diagram of the operator shown in Fig. 2. Fig.
도 4는 도 3에 도시된 제1 컨벌루션 연산기의 개략적인 블록도를 나타낸다.FIG. 4 shows a schematic block diagram of the first convolution operator shown in FIG.
도 5a는 종래의 뎁스와이즈 세퍼러블 컨벌루션의 예를 나타낸다.5A shows an example of a conventional depth wise separable convolution.
도 5b는 도 3에 도시된 제1 컨벌루션 연산기의 동작의 일 예를 나타낸다.5B shows an example of the operation of the first convolution operator shown in FIG.
도 5c는 도 3에 도시된 제1 컨벌루션 연산기의 동작의 다른 예를 나타낸다.FIG. 5C shows another example of the operation of the first convolution operator shown in FIG.
도 6은 도 3에 도시된 특징맵 처리기의 개략적인 블록도를 나타낸다.Figure 6 shows a schematic block diagram of the feature map processor shown in Figure 3;
도 7a는 도 3에 도시된 특징맵 처리기의 동작의 예를 나타낸다.7A shows an example of the operation of the feature map processor shown in FIG.
도 7b는 도 6에 도시된 컴프레서의 압축 알고리즘의 예를 나타낸다.Fig. 7B shows an example of the compression algorithm of the compressor shown in Fig.
도 8은 도 3에 도시된 제2 컨벌루션 연산기의 개략적인 블록도를 나타낸다.Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3. Fig.
도 9는 도 1에 도시된 이미지 처리 장치의 하드웨어 구조의 예를 나타낸다.Fig. 9 shows an example of the hardware structure of the image processing apparatus shown in Fig.
도 10는 도 1에 도시된 이미지 처리 장치가 이용하는 뉴럴 네트워크 구조의 예를 나타낸다.Fig. 10 shows an example of a neural network structure used by the image processing apparatus shown in Fig.
도 11은 도 1에 도시된 이미지 처리 장치를 검증하는 프레임 워크의 예를 나타낸다.Fig. 11 shows an example of a framework for verifying the image processing apparatus shown in Fig.
도 12a는 도 1에 도시된 이미지 처리 장치의 성능의 일 예를 나타낸다.12A shows an example of the performance of the image processing apparatus shown in FIG.
도 12b는 도 1에 도시된 이미지 처리 장치의 성능의 다른 예를 나타낸다.12B shows another example of the performance of the image processing apparatus shown in FIG.
도 12c는 도 1에 도시된 이미지 처리 장치의 성능의 또 다른 예를 나타낸다.Fig. 12C shows another example of the performance of the image processing apparatus shown in Fig.
도 13a는 원본 고해상도 이미지의 일 예를 나타낸다.13A shows an example of an original high resolution image.
도 13b는 바이큐빅 방법을 통해 처리된 이미지의 일 예를 나타낸다.13B shows an example of an image processed through the bicubic method.
도 13c는 SRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.13C shows an example of an image processed through the SRCNN method.
도 13d는 SRCNN-Ex 방법을 통해 처리된 이미지의 일 예를 나타낸다.13D shows an example of an image processed through the SRCNN-Ex method.
도 13e는 FSRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.13E shows an example of an image processed through the FSRCNN method.
도 13f는 FSRCNN-s 방법을 통해 처리된 이미지의 일 예를 나타낸다.13F shows an example of an image processed through the FSRCNN-s method.
도 13g는 FSRCNN-s 방법을 통해 처리된 이미지의 일 예를 나타낸다.13g shows an example of an image processed through the FSRCNN-s method.
도 13h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 일 예를 나타낸다.13H shows an example of an image processed by applying the quantized weight to the image processing apparatus shown in FIG.
도 13i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 일 예를 나타낸다.FIG. 13I shows an example of an image processed by applying the quantized weight and activation by the image processing apparatus shown in FIG. 1. FIG.
도 13j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 일 예를 나타낸다.13J shows an example of an image processed by applying the quantized weight and activation and intermediate feature map compression to the image processing apparatus shown in FIG.
도 14a는 원본 고해상도 이미지의 다른 예를 나타낸다.14A shows another example of the original high-resolution image.
도 14b는 바이큐빅 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14B shows another example of the image processed through the bicubic method.
도 14c는 SRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14C shows another example of an image processed through the SRCNN method.
도 14d는 SRCNN-Ex 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14D shows another example of an image processed through the SRCNN-Ex method.
도 14e는 FSRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14E shows another example of an image processed through the FSRCNN method.
도 14f는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14F shows another example of an image processed through the FSRCNN-s method.
도 14g는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타낸다.Figure 14g shows another example of an image processed through the FSRCNN-s method.
도 14h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 다른 예를 나타낸다.14H shows another example of the image processed by applying the quantized weight to the image processing apparatus shown in FIG.
도 14i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 다른 예를 나타낸다.Fig. 14I shows another example of an image processed by applying the quantized weight and activation by the image processing apparatus shown in Fig.
도 14j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 다른 예를 나타낸다.FIG. 14J shows another example of an image processed by applying the quantized weight and activation and intermediate feature map compression to the image processing apparatus shown in FIG. 1. FIG.
도 15는 SR 하드웨어를 FPGA로 구현한 예를 나타낸다.15 shows an example in which SR hardware is implemented as an FPGA.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.In the following, embodiments will be described in detail with reference to the accompanying drawings. However, various modifications may be made in the embodiments, and the scope of the patent application is not limited or limited by these embodiments. It is to be understood that all changes, equivalents, and alternatives to the embodiments are included in the scope of the right.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for descriptive purposes only and are not to be construed as limiting. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다. The terms first, second, or the like may be used to describe various elements, but the elements should not be limited by terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the embodiment, the first element being referred to as the second element, The second component may also be referred to as a first component.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.A module in this specification may mean hardware capable of performing the functions and operations according to the respective names described in this specification and may mean computer program codes capable of performing specific functions and operations , Or an electronic recording medium, e.g., a processor or a microprocessor, equipped with computer program code capable of performing certain functions and operations.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.In other words, a module may mean a functional and / or structural combination of hardware for carrying out the technical idea of the present invention and / or software for driving the hardware.
도 1은 일 실시예에 따른 이미지 처리 장치의 개략적인 블록도를 나타낸다.Figure 1 shows a schematic block diagram of an image processing apparatus according to one embodiment.
도 1을 참조하면, 이미지 처리 장치(10)는 이미지를 수신하고, 수신한 이미지를 처리할 수 있다. 예를 들어, 이미지 처리 장치(10)는 수신한 이미지를 처리하여 고해상도 이미지를 생성할 수 있다.Referring to Figure 1, the image processing apparatus 10 may receive an image and process the received image. For example, the image processing apparatus 10 can process a received image to generate a high-resolution image.
이미지 처리 장치(10)는 낮은 사양의 하드웨어에서 효과적으로 이미지를 처리할 수 있다. 이미지 처리 장치(10)는 수신한 이미지에 기초하여 뉴럴 네트워크를 학습시킬 수 있다.The image processing apparatus 10 can efficiently process images in low specification hardware. The image processing apparatus 10 can learn the neural network based on the received image.
이미지 처리 장치(10)는 학습된 뉴럴 네트워크를 이용하여 이미지의 해상도를 증가시킬 수 있다. 예를 들어, 이미지 처리 장치(10)는 저해상도 이미지에 대하여 초해상화를 수행할 수 있다.The image processing apparatus 10 can increase the resolution of the image using the learned neural network. For example, the image processing apparatus 10 may perform a super-resolution on a low-resolution image.
이미지 처리 장치(10)는 하드웨어 친화적인 CNN(Convolutional Neural Network) 기반 SR(Super Resolution) 방법을 제공할 수 있다. 이미지 처리 장치(10)는 FPGA 상에 구현되어 60 fps에서 2K FHD(Full High Definition) 이미지를 4K UHD(Ultra High Definition)으로 변환할 수 있다.The image processing apparatus 10 can provide a hardware-friendly Convolutional Neural Network (CNN) based Super Resolution (SR) method. The image processing apparatus 10 may be implemented on an FPGA to convert a 2K full high definition (FHD) image to a 4K UHD (Ultra High Definition) at 60 fps.
이미지 처리 장치(10)는 제한된 계산 및 메모리 공간을 갖는 하드웨어에서 뉴럴 네트워크를 이용하여 SR을 효과적으로 수행할 수 있다. 이미지 처리 장치(10)는 LR(Low Resolution) 입력을 라인 단위로 처리하고, 컨벌루션 필터의 파라미터 값이 작은 수로 유지할 수 있다. 즉, 이미지 처리 장치(10)는 LR(Low Resolution) 데이터를 라인 단위로 처리함으로써 종래의 CNN에 비하여 필터 파라미터의 수를 현격하게 감소시킬 수 있다.The image processing apparatus 10 can effectively perform the SR using the neural network in hardware with limited computation and memory space. The image processing apparatus 10 can process the LR (Low Resolution) input line by line and keep the parameter value of the convolution filter at a small number. That is, the image processing apparatus 10 can significantly reduce the number of filter parameters compared to the conventional CNN by processing LR (Low Resolution) data in line units.
이미지 처리 장치(10)는 1-D(1-Dimensional) 컨벌루션의 캐스케이드(cascade)를 이용하여 SR 이미지를 처리할 수 있다. 이미지 처리 장치(10)는 수직 수용 필드(vertical receptive field)를 작은 크기로 유지하면서 수평 라인을 따라 큰 수용 필드를 유지함으로써 요구되는 라인 메모리를 절약할 수 있다. 라인 메모리는 라인 버퍼를 포함할 수 있다.The image processing apparatus 10 can process the SR image using a cascade of 1-D (1-Dimensional) convolution. The image processing apparatus 10 can save the required line memory by keeping the large acceptance field along the horizontal line while keeping the vertical receptive field small. The line memory may include a line buffer.
이미지 처리 장치(10)는 잔차 연결(residual connection)과 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolution)을 결합하여 뉴럴 네트워크의 필터 파라미터의 수가 감소시킬 수 있고, 감소된 연산량을 가지고 우수한 SR 성능을 유지할 수 있다.The image processing apparatus 10 can combine the residual connection with the depth-wise separable convolution to reduce the number of filter parameters of the neural network and reduce the SR performance .
이미지 처리 장치(10)는 양자화를 통해 PSNR(Peak Signal to Noise Ratio) 저하가 거의 없이 고정 소수점 데이터로 32 비트 부동 소수점 데이터를 고정 소수점 데이터로 변환할 수 있다. 또한, 이미지 처리 장치(10)는 특징맵 데이터를 저장하는데 필요한 라인 메모리를 줄이기 위해 특징맵을 압축할 수 있다.The image processing apparatus 10 can convert the 32-bit floating point data into the fixed-point data with the fixed-point data without substantially degrading the Peak Signal to Noise Ratio (PSNR) through quantization. In addition, the image processing apparatus 10 can compress the feature map to reduce the line memory required to store the feature map data.
이미지 처리 장치(10)는 수신기(1000) 및 컨트롤러(2000)를 포함한다.The image processing apparatus 10 includes a receiver 1000 and a controller 2000.
수신기(1000)는 이미지를 수신할 수 있다. 수신기(1000)가 수신하는 이미지는 빛의 굴절이나 반사 등에 의하여 이루어진 물체의 상을 의미할 수 있다. 예를 들어, 이미지는 비디오, 그림 및 사진을 포함할 수 있다. Receiver 1000 may receive an image. An image received by the receiver 1000 may mean an image of an object formed by refraction or reflection of light. For example, an image may include video, pictures, and photographs.
수신기(1000)는 픽셀 정보의 형태로 이미지를 수신할 수 있다. 예를 들어, 수신기(1000)는 2 차원 픽셀 정보를 수신할 수 있다. Receiver 1000 may receive an image in the form of pixel information. For example, the receiver 1000 may receive two-dimensional pixel information.
수신기(1000)는 제1 픽셀 정보 변환기(1100)을 포함할 수 있다. 제1 픽셀 정보 변환기(1100)는 2차원 픽셀 정보의 제1 컬러 데이터를 제2 컬러 데이터로 변환할 수 있다.The receiver 1000 may include a first pixel information converter 1100. The first pixel information converter 1100 may convert the first color data of the two-dimensional pixel information into the second color data.
제1 픽셀 정보 변환기(1100)가 수신하는 이미지는 컬러 데이터를 포함할 수 있다. 예를 들어, 컬러 데이터는 RGB 채널 데이터 및 YCbCr 채널 데이터를 포함할 수 있다.The image received by the first pixel information converter 1100 may include color data. For example, the color data may include RGB channel data and YCbCr channel data.
제1 픽셀 정보 변환기(1100)는 제1 컬러 데이터를 제2 컬러 데이터로 변환할 수 있다. 제1 컬러 데이터는 RGB 채널을 포함할 수 있다. 제2 컬러 데이터는 YCbCr 채널을 포함할 수 있다. 예를 들어, 제1 픽셀 정보 변환기(1100)는 LR 입력 이미지의 RGB 채널을 YCbCr 채널로 변환할 수 있다.The first pixel information converter 1100 may convert the first color data into the second color data. The first color data may include RGB channels. The second color data may include a YCbCr channel. For example, the first pixel information converter 1100 may convert the RGB channel of the LR input image into a YCbCr channel.
이미지는 저해상도 이미지 및 고해상도 이미지를 포함할 수 있다. The image may include a low resolution image and a high resolution image.
컨트롤러(200)는 수신한 이미지를 처리할 수 있다. 컨트롤러(200)는 수신한 이미지의 해상도를 증가시킬 수 있다. 컨트롤러(200)는 수신한 이미지에 대하여 초해상화를 수행할 수 있다.The controller 200 can process the received image. The controller 200 can increase the resolution of the received image. The controller 200 may perform super resolution on the received image.
컨트롤러(200)는 이미지를 라인 단위로 처리할 수 있다. 컨트롤러(200)는 이미지를 라인 단위로 출력하고, 라인 단위로 연산을 수행함으로써 이미지의 해상도를 증가시킬 수 있다.The controller 200 can process an image line by line. The controller 200 may output an image in units of lines and increase the resolution of the image by performing operations on a line-by-line basis.
도 2는 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.Fig. 2 shows a schematic block diagram of the controller shown in Fig.
도 2를 참조하면, 컨트롤러(200)는 제1 라인 버퍼(line buffer, 2100), 연산기(operator, 2200), 제2 픽셀 정보 변환기(pixel information converter, 2300), 제2 라인 버퍼(2400)를 포함할 수 있다.2, the controller 200 includes a first line buffer 2100, an operator 2200, a second pixel information converter 2300, a second line buffer 2400, .
제1 라인 버퍼(2100)는 수신기(1000)가 수신한 2 차원 픽셀 정보를 라인 단위의 데이터 라인으로 출력할 수 있다. 제1라인 버퍼(2100)는 적어도 하나의 라인 버퍼를 포함할 수 있다. 이 때, 라인 버퍼의 수는 컨벌루션 필터의 크기에 따라 결정될 수 있다.The first line buffer 2100 can output the two-dimensional pixel information received by the receiver 1000 as a data line on a line basis. The first line buffer 2100 may include at least one line buffer. At this time, the number of line buffers can be determined according to the size of the convolution filter.
연산기(2200)는 데이터 라인에 기초하여 컨벌루션 연산을 수행할 수 있다. 연산기(2200)의 동작은 도 3을 참조하여 자세하게 설명할 것이다.The calculator 2200 can perform a convolution operation based on the data line. The operation of the calculator 2200 will be described in detail with reference to FIG.
제2 픽셀 정보 변환기(2300)은 연산이 수행된 데이터 라인의 제2 컬러 데이터를 제1 컬러 데이터로 변환할 수 있다. 예를 들어, 제2 픽셀 정보 변환기(2300)는 YCbCr 채널을 RGB 채널로 변환할 수 있다.The second pixel information converter 2300 may convert the second color data of the operated data line into the first color data. For example, the second pixel information converter 2300 may convert a YCbCr channel to an RGB channel.
제2 라인 버퍼(2400)는 연산이 수행된 데이터 라인을 출력할 수 있다. 제2 라인 버퍼(2400)는 복수의 라인 버퍼를 포함할 수 있다. 예를 들어, 제2 라인 버퍼(2400)는 4개의 출력 라인 버퍼를 포함할 수 있다.The second line buffer 2400 can output the data line on which the operation is performed. The second line buffer 2400 may include a plurality of line buffers. For example, the second line buffer 2400 may include four output line buffers.
도 3은 도 2에 도시된 연산기의 개략적인 블록도를 나타낸다.Fig. 3 shows a schematic block diagram of the operator shown in Fig. 2. Fig.
연산기(2200)는 제1 컨벌루션 연산기(2210), 특징맵 처리기(2230), 제2 컨벌루션 연산기(2250), 양자화기 (2270) 및 가중치 버퍼(2290)을 포함할 수 있다.The operator 2200 may include a first convolution operator 2210, a feature map processor 2230, a second convolution operator 2250, a quantizer 2270 and a weight buffer 2290.
제1 컨벌루션 연산기(2210)는 데이터 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성할 수 있다.The first convolution operator 2210 can generate a feature map by performing a convolution operation based on the data line.
특징맵 처리기(2230)는 특징맵을 적어도 하나의 라인 단위로 저장하고, 적어도 하나의 라인 단위로 저장된 특징맵을2 차원 형태로 출력하도록 처리할 수 있다.The feature map processor 2230 can store the feature maps in units of at least one line and process the feature maps stored in units of at least one line in a two-dimensional form.
제2 컨벌루션 연산기(2250)는 2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행할 수 있다.The second convolution operator 2250 can perform a convolution operation based on the feature map output in a two-dimensional form.
양자화기(2270)는 적어도 하나의 컨벌루션 연산 결과를 양자화할 수 있다. 양자화기(2270)는 다양한 방식의 양자화 방법을 이용하여 컨벌루션 결과 및 필터 파라미터들을 양자화할 수 있다.The quantizer 2270 can quantize the result of at least one convolution operation. The quantizer 2270 may quantize the convolution result and filter parameters using a variety of quantization methods.
양자화기(2270)의 양자화 방법은 균일 양자화(uniform quantization), 비균일 양자화(non-uniform quantization)를 포함하여 부동 소수점을 고정 소수점으로 변환할 수 있는 모든 양자화 알고리즘을 포함할 수 있다. 예를 들어, 양자화기(2270)는 균일 양자화를 이용하여 적어도 하나의 컨벌루션 결과 및 필터 파라미터들을 양자화 할 수 있다. The quantization method of the quantizer 2270 may include any quantization algorithm capable of converting a floating point to a fixed point, including uniform quantization and non-uniform quantization. For example, quantizer 2270 may quantize at least one convolution result and filter parameters using uniform quantization.
이미지 처리 장치(10)는 복잡성을 낮추기 위해서 양자화기(2270)를 통해 고정 소수점 표현을 사용할 수 있다. 양자화기(2270)는 부동 소수점(floating-point)을 고정 소수점(fixed-point) 데이터로 변환할 수 있다.The image processing apparatus 10 may use a fixed-point representation via the quantizer 2270 to reduce complexity. The quantizer 2270 can convert a floating-point to fixed-point data.
고정 소수점 데이터는 그 수를 나타내기 위해 [IL, FL]로 정의될 수 있다. IL(integer length)은 정수 길이를 나타내고, FL(fraction length)은 소수(또는 분수) 길이를 나타낼 수 있다. 양자화기(2270)는 정수 비트 수에 소수 비트 수를 더한 값은 숫자를 나타내는데 사용되는 총 비트 수를 산출할 수 있다.Fixed-point data can be defined as [IL, FL] to indicate the number. IL (integer length) represents an integer length, and FL (fraction length) represents a fractional (or fractional) length. The quantizer 2270 can calculate the total number of bits used to represent a number by adding a fractional number of bits to the integer number of bits.
이들의 합계, IL+FL은 단어 길이(word length) WL로 나타낼 수 있다. 양자화기(2270)는 [IL, FL]에서의 고정 소수점 형식을 통해, 데이터의 정밀도를 FL 비트로 제한하고, 범위를 [-2
IL-1, 2
IL-1-2
-FL]로 설정할 수 있다.The sum of these, IL + FL, can be expressed by the word length WL. Quantizer 2270 may be set to a fixed-point format through at [IL, FL], limits the precision of the FL data bits, and the range [-2 IL-1, 2 IL -1 -2 -FL] .
양자화기(2270)는 부동 소수점을 고정 소수점으로 변환할 때, 가장 가까운 쪽으로 반올림(round to nearest)하는 반올림 방법을 사용할 수 있다. 이러한 반올림 방법은 수학식 1과 같이 나타낼 수 있다.The quantizer 2270 can use a rounding method that rounds to nearest when converting a floating point to a fixed point. This rounding method can be expressed by Equation (1).
여기서,
은 x이하의
의 가장 큰 정수 배로 정의될 수 있다. x가 [IL, FL]의 범위를 벗어나면, 결과는 [IL, FL]의 하한 또는 상한으로 포화될 수 있다. 마지막으로 부동 소수점에서 고정 소수점으로 변환하는 공식은 수학식 2와 같이 나타낼 수 있다.here, X is less than or equal to x Can be defined as the largest integer multiple of. If x is outside the range of [IL, FL], the result can be saturated to the lower or upper limit of [IL, FL]. Finally, the formula for converting a floating-point to a fixed-point can be expressed as shown in Equation 2 below.
많은 실험을 통해 부동 소수점 데이터(필터 파라미터 및 활성화 값들)에 대한 테스트 세트의 PSNR 강하(degradation)를 최소화하기 위해, 이미지 처리 장치(10)에 대하여 최적의 WL, IL 및 FL 값을 적용될 수 있다. 이미지 처리 장치(10)가 사용하는 네트워크에서 양자화로 인한 강하는 매우 미미할 수 있다.The optimal WL, IL, and FL values may be applied to the image processing apparatus 10 to minimize the PSNR degradation of the test set for floating point data (filter parameters and activation values) through a number of experiments. The drop due to quantization in the network used by the image processing apparatus 10 may be very small.
가중치 버퍼(2290)는 컨벌루션 연산에 사용되는 파라미터를 저장할 수 있다.The weight buffer 2290 may store parameters used for the convolution operation.
상술한 구성 요소들은 파이프라인(pipe-line) 형태로 동작할 수 있다. 예를 들어, 적어도 하나의 컨벌루션 연산은 파이프라인 형태로 동작할 수 있다.The above-described components can operate in a pipe-line form. For example, at least one convolution operation may operate in a pipelined fashion.
도 4는 도 3에 도시된 제1 컨벌루션 연산기의 개략적인 블록도를 나타낸다.FIG. 4 shows a schematic block diagram of the first convolution operator shown in FIG.
도 4를 참조하면, 제1 컨벌루션 연산기(2210)는 잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현될 수 있다. 제1 컨벌루션 연산기(2210)는 1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다.Referring to FIG. 4, a first convolution operator 2210 may be implemented in a residual block for learning and outputting a residual signal. The first convolution operator 2210 may include at least one 1-D convolution operator for performing a 1-dimensional (1-dimensional) convolution operation.
1-D 컨벌루션 연산은 라인 단위의 데이터를 입력으로 하는 컨벌루션 연산을 의미할 수 있다. 예를 들어, 1-D 컨벌루션 연산은 1×n 컨벌루션을 의미할 수 있다. 이 때, 라인 단위의 데이터의 길이 n은 2 이상의 임의의 정수 값을 가질 수 있다.The 1-D convolution operation may be a convolution operation in which data on a line-by-line basis is input. For example, a 1-D convolution operation may mean 1 x n convolution. At this time, the length n of the line-by-line data may have any integer value of 2 or more.
제1 컨벌루션 연산기(2210)는 뎁스 와이즈(depth-wise(DW)) 컨벌루션 연산기(2211) 및 뎁스 와이즈 컨벌루션 연산기(2211)와 직접적으로 연결된 포인트 와이즈(point-wise(PW)) 컨벌루션 연산기(2213)를 포함할 수 있다.The first convolution operator 2210 includes a point-wise (PW) convolution operator 2213 directly connected to a depth-wise (DW) convolution operator 2211 and a depthwise convolution operator 2211, . ≪ / RTI >
뎁스 와이즈 컨벌루션 연산기(2211)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 컨벌루션 연산기(2211)는 적어도 한 번 이상의 뎁스 와이즈 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(2213)은 포인트 별로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(2213)는 적어도 한 번 이상의 포인트 와이즈 컨벌루션 연산을 수행할 수 있다.The depth-wise convolution operator 2211 can perform the convolution operation in the depth direction of the feature map. The depth-wise convolution operator 2211 may perform at least one depthwise convolution operation. The point-wise convolution operator 2213 can perform a convolution operation on a point-by-point basis. The point-wise convolution operator 2213 may perform at least one point-wise convolution operation.
뎁스 와이즈 컨벌루션 연산기(2211)는 적어도 하나의 1-D 컨벌루션 연산기를 포함할 수 있다. 포인트 와이즈 컨벌루션 연산기(2213)는 1×1 컨벌루션을 수행할 수 있다.The depth-wise convolution operator 2211 may include at least one 1-D convolution operator. The point-wise convolution operator 2213 can perform 1x1 convolution.
도 5a는 종래의 뎁스와이즈 세퍼러블 컨벌루션의 예를 나타내고, 도 5b는 도 3에 도시된 제1 컨벌루션 연산기의 동작의 일 예를 나타내고, 도 4c는 도 3에 도시된 제1 컨벌루션 연산기의 동작의 다른 예를 나타낸다.Fig. 5A shows an example of conventional depth wise separable convolution, Fig. 5B shows an example of the operation of the first convolution operator shown in Fig. 3, Fig. 4C shows an example of the operation of the first convolution operator shown in Fig. Another example is shown.
도 5a 내지 5c를 참조하면, 제1 컨벌루션 연산기(2210)는 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolutions (DSC))를 사용하여 컨벌루션 연산을 수행할 수 있다. 이를 통해, 제1 컨벌루션 연산기(2210)는 기존의 논 세퍼러블 컨벌루션(non-separable)의 경우에 비하여 약 1/9의 파라미터 수 만으로 유사한 분류 성능을 달성할 수 있다.Referring to FIGS. 5A to 5C, the first convolution operator 2210 may perform a convolution operation using depth-wise separable convolutions (DSC). In this way, the first convolution operator 2210 can achieve similar classification performance with only about 1/9 of the number of parameters as compared with the case of the existing non-separable convolution.
DSC는 캐스케이드로 연결된 뎁스 와이즈 컨벌루션 연산, ReLU(Rectified Linear Unit) 및 포인트 와이즈 컨벌루션 연산을 포함할 수 있다.The DSC may include a cascaded depthwise convolution operation, a rectified linear unit (ReLU), and a pointwise convolution operation.
DSC는 SR과 같은 회귀(regression) 문제에서 사용될 때 낮은 성능을 나타낼 수 있다. 배치 정규화(batch normalization(BN))는 회귀 분석에서 성능을 저하시키고 평균 및 분산을 계산하기 위해서 상대적으로 높은 연산량을 요구할 수 있다.DSC can exhibit poor performance when used in regression problems such as SR. Batch normalization (BN) can require relatively high computational complexity to degrade performance and to calculate the mean and variance in regression analysis.
따라서, 제1 컨벌루션 연산기(2210)는 DSC에서 BN 및 ReLU를 제거한 구조를 사용할 수 있다. 예를 들어, 제1 컨벌루션 연산기(2210)는 뎁스 와이즈 컨벌루션 연산기(2211) 및 포인트 와이즈 컨벌루션 연산기(2213) 사이에 ReLU 연산을 제거하고, 이들을 직접적으로 연결하여 사용할 수 있다.Accordingly, the first convolution operator 2210 can use a structure in which BN and ReLU are removed from the DSC. For example, the first convolution operator 2210 removes the ReLU operation between the depth-wise convolution operator 2211 and the point-wise convolution operator 2213, and can directly use them.
DSC에서 적은 수의 컨벌루션 필터가 ReLU와 함께 사용될 때 ReLU 를 거친 특징맵이 지나치게 희박(sparse)해 지는 문제가 발생할 수 있다. 이는, 학습을 방해하여 더 낮은 PSNR 성능을 야기할 수 있다.In DSC, when a small number of convolution filters are used with ReLU, the feature map via ReLU may become too sparse. This can interfere with learning and result in lower PSNR performance.
도 5a는 종래의 DSC 구조를 나타내고, 5b는 제1 컨벌루션 연산기(220)가 사용하는 컨벌루션 레이어의 구조를 나타낼 수 있다. Set-5 데이터셋에 대하여 뎁스 와이즈 컨벌루션 연산기(2211)와 포인트 와이즈 컨벌루션 연산기(2213) 사이에 ReLU 가 있는 경우와 없는 경우에 대하여 PSNR 및 SSIM 성능을 비교한 결과는 표 1과 같을 수 있다.FIG. 5A illustrates a conventional DSC structure, and FIG. 5B illustrates a structure of a convolution layer used by the first convolution operator 220. FIG. The results of PSNR and SSIM performance comparisons between the presence and absence of ReLU between the depth-wise convolution operator 2211 and the point-wise convolution operator 2213 for a Set-5 data set may be as shown in Table 1.
종래의 DSC에서는 뎁스 와이즈 컨벌루션에서는 3×3 크기의 필터가 사용될 수 있다. 하지만, T-Con과 같은 일부 디스플레이 어플리케이션에서는 라인 메모리를 과도하게 사용할 수 없는 경우가 많으므로, 네트워크에 3×3 크기의 필터를 사용하는 데에 제약이 따를 수 있다. 반면, 딥러닝에서 높은 성능을 얻기 위해서는 3×3 또는 더 큰 필터를 사용하는 큰 수용 필드가 필요할 수 있다.In the conventional DSC, a 3 × 3 size filter can be used for depth-wise convolution. However, some display applications, such as T-Con, may not be able to use line memory excessively, which can limit the use of 3x3 filters in the network. On the other hand, a large acceptance field using a 3x3 or larger filter may be needed to achieve high performance in deep running.
따라서, 이미지 처리 장치(10)는 일부 컨벌루션 레이어에 대해 1-D 수평 컨벌루션을 사용함으로써, LR 입력 데이터가 라인 별로 스트리밍되는 하드웨어에 맞게 네트워크를 더욱 컴팩트하고 적합하게 만들 수 있다. 예를 들어, 이미지 처리 장치(10)는 제1 컨벌루션 연산기(2210)에 대하여 1-D 수평 컨벌루션을 적용할 수 있다.Thus, by using 1-D horizontal convolution for some convolutional layers, the image processing apparatus 10 can make the network more compact and suitable for the hardware in which the LR input data is streamed line by line. For example, the image processing apparatus 10 may apply 1-D horizontal convolution to the first convolution operator 2210.
결과적으로, 제1 컨벌루션 연산기(2210)는 수평 방향으로 길이가 더 길고, 수직 방향으로는 짧은 길이를 갖는 직사각형 수형 필드를 가질 수 있다. 이를 통해, 이미지 처리 장치(10)는 중간 특징맵들을 저장하기 위하여 요구되는 라인 메모리를 가능한 작게 만들 수 있다.As a result, the first convolution operator 2210 may have a rectangular vertical field having a longer length in the horizontal direction and a shorter length in the vertical direction. In this way, the image processing apparatus 10 can make the line memory required to store the intermediate feature maps as small as possible.
효율적인 하드웨어 구현을 위해서는 네트워크가 가능한 작게 구성된 컨벌루션 필터를 유지해야할 수 있다. 하지만, 필터 파라미터가 적으면 DSC 및 1-D 수평 컨벌루션이 포함된 네트워크의 학습을 악화시킬 수 있다.For an efficient hardware implementation, the network may need to maintain a convolution filter that is as small as possible. However, a small number of filter parameters can worsen the learning of networks including DSC and 1-D horizontal convolution.
이것은 필터 파라미터의 부족으로 인해 네트워크에서 레이어간 연결이 희박해지고, 이미지의 복원(restoration)에 대한 학습이 제대로 이루어지지 않기 때문일 수 있다.This may be because the lack of filter parameters makes the inter-layer connections on the network thin and the restoration of the image is not well learned.
이미지 처리 장치(10)는 네트워크에 잔차 연결을 삽입함으로써 우수한 SR 성능을 가지면서 필터의 수를 현저히 감소시킬 수 있다. 예를 들어, 이미지 처리 장치(10)는 제1 컨벌루션 연산기(2210)를 잔차 블록 내에 구현함으로써 필터의 수를 감소시킬 수 있다.The image processing apparatus 10 can significantly reduce the number of filters while having excellent SR performance by inserting a residual connection in the network. For example, the image processing apparatus 10 may reduce the number of filters by implementing the first convolution operator 2210 in the residual block.
하드웨어 관점에서 2-D 컨벌루션으로 잔차 연결을 구현하기 위해서는 잔차 연결의 입력을 저장하기 위한 추가적인 라인 메모리들이 필요할 수 있고, 이는 연결의 끝단에도 필요할 수 있다.From a hardware perspective, implementing 2-D convolutional residual connections may require additional line memories to store the input of the residual connections, which may also be needed at the end of the connection.
따라서, 이미지 처리 장치(10)는 잔차 연결에서 1-D 컨벌루션만을 사용하여 지연 버퍼를 이용함으로써 하드웨어에서 쉽게 구현할 수 있다. 도 5c는 최종 1-D 수평 컨벌루션 및 잔차 연결을 갖는 최종 DSC 구조를 나타낼 수 있다.Thus, the image processing apparatus 10 can be easily implemented in hardware by using a delay buffer using only 1-D convolution in the residual connection. Figure 5C may represent the final DSC structure with the final 1-D horizontal convolution and residual connections.
도 6은 도 3에 도시된 특징맵 처리기의 개략적인 블록도를 나타낸다.Figure 6 shows a schematic block diagram of the feature map processor shown in Figure 3;
도 6을 참조하면, 특징맵 처리기(2230)는 컴프레서(compressor, 2231), 제3 라인 버퍼(2233) 및 디컴프레서(decompressor, 2235)를 포함할 수 있다.Referring to FIG. 6, the feature map processor 2230 may include a compressor 2231, a third line buffer 2233, and a decompressor 2235.
컴프레서(2231)는 특징맵을 적어도 하나의 라인 단위로 압축할 수 있다. 컴프레서(2231)는 특징맵의 너비(width), 높이(height) 및 깊이(depth) 방향 중 적어도 하나의 방향으로 특징맵을 압축할 수 있다.The compressor 2231 can compress the feature map in units of at least one line. The compressor 2231 can compress the feature map in at least one direction of the width, height, and depth directions of the feature map.
제3 라인 버퍼(2233)는 라인 단위로 압축된 특징맵을 저장할 수 있다. 제3 라인 버퍼(2233)는 적어도 하나의 라인 버퍼를 포함할 수 있다. 이 때, 라인 버퍼의 수는 컨벌루션 연산을 수행하는데 사용되는 컨벌루션 필터(filter)의 크기에 따라 결정될 수 있다.The third line buffer 2233 can store the compressed characteristic map on a line-by-line basis. The third line buffer 2233 may include at least one line buffer. At this time, the number of line buffers can be determined according to the size of a convolution filter used for performing a convolution operation.
디컴프레서(2235)는 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원할 수 있다.The decompressor 2235 can restore the feature maps compressed on a line-by-line basis into a two-dimensional feature map.
도 7a는 도 3에 도시된 특징맵 처리기의 동작의 예를 나타내고, 도 7b는 도 6에 도시된 컴프레서의 압축 알고리즘의 예를 나타낸다.Fig. 7A shows an example of the operation of the feature map processor shown in Fig. 3, and Fig. 7B shows an example of the compression algorithm of the compressor shown in Fig.
도 7a 및 도 7b를 참조하면, 컴프레서(2231)는 다양한 알고리즘을 통해 특징맵을 압축할 수 있다. 압축 알고리즘은 고정 길이 부호화(Fixed-Length Coding) 및 가변 길이 부호화(Variable-Length Coding)를 포함할 수 있다. 고정 길이 부호화 알고리즘은 DXT 알고리즘을 포함할 수 있고, JPEG및 JPEG 2000과 같은 블록 기반 알고리즘을 포함할 수 있다. 고정 길이 부호화 알고리즘은 하드웨어 복잡도 측면에서 선호될 수 있다. 7A and 7B, the compressor 2231 can compress the feature map through various algorithms. The compression algorithm may include Fixed-Length Coding and Variable-Length Coding. The fixed length coding algorithm may include the DXT algorithm and may include block based algorithms such as JPEG and JPEG 2000. The fixed length coding algorithm can be preferred in terms of hardware complexity.
가변 길이 부호화 알고리즘은 허프만(Huffman) 및 아리스메틱 코딩(Arithmetic Coding)을 포함할 수 있다. 가변 길이 부호화 알고리즘은 압축률을 높이기 위해 사용될 수 있다.The variable length coding algorithm may include Huffman and Arithmetic Coding. A variable length coding algorithm can be used to increase the compression rate.
또한, 컴프레서(2231)는 상술한 알고리즘의 변형 알고리즘을 사용하여 특징맵을 압축할 수 있다.In addition, the compressor 2231 can compress the feature map using a modification algorithm of the above-described algorithm.
수용 필드의 크기는 성능에 큰 영향을 미칠 수 있다. 또한, 수평 및 수직 수용 필드 모두가 중요할 수 있다. 그러나, 수직 방향(vertical direction)을 포함하는 3x3 컨벌루션의 경우, 이전 컨벌루션 레이어를 통과한 후에 출력된 데이터가 다음 3x3 컨벌루션 레이어로 전송될 때, 특징맵 데이터가 라인 메모리에 저장되어야 할 수 있다.The size of the acceptance field can have a significant impact on performance. In addition, both the horizontal and vertical acceptance fields can be important. However, in the case of a 3x3 convolution that includes a vertical direction, the feature map data may have to be stored in the line memory when the data output after passing through the previous convolution layer is transmitted in the next 3x3 convolution layer.
3x3 컨벌루션 레이어을 통과할 때, 현재 레이어의 출력 특징맵들을 저장하는데 요구되는 라인 메모리의 수 보다 2 배 많은 라인 메모리가 필요할 수 있다.When passing through a 3x3 convolution layer, a line memory that is twice as many as the number of line memories required to store the output feature maps of the current layer may be needed.
많은 라인 메모리의 사용은 칩 설계에서 많은 문제를 일으킨다. 주요 문제는 라인 메모리에 사용되는 파워 링(power ring)들의 수의 증가로 인한 칩 크기 증가, P & R(place & route)에서의 라우팅 혼잡 및 메모리 메모리 블록 경계(memory block boundary)에 파워 링(power ring)이 부족할 경우 전압 강하(voltage drop)의 발생을 포함할 수 있다.The use of many line memories causes many problems in chip design. The main problem is the increase in chip size due to the increase in the number of power rings used in line memory, the routing congestion in place & route (P & R), and the powering on memory memory block boundaries If the power ring is insufficient, it may include the occurrence of a voltage drop.
상술한 문제점을 해결하기 위해서, 라인 메모리의 수를 줄이는 방법이 필요하고, 특징맵을 압축하는 방법이 고려될 수 있다.In order to solve the above-mentioned problem, a method of reducing the number of line memories is required, and a method of compressing the feature map can be considered.
컴프레서(2231)는 하드웨어 구현 관점에서 여러 점을 고려한 특징맵 압축 방법을 사용할 수 있다. 컴프레서(2231)가 압축하는 특징맵은 중간 특징맵을 포함할 수 있다.The compressor 2231 can use the feature map compression method considering various points from the hardware implementation viewpoint. The feature map compressed by the compressor 2231 may include an intermediate feature map.
컴프레서(2231)는 매우 간단한 압축 알고리즘을 사용할 수 있다. 압축은 라인 메모리의 수를 줄이는 것으로 간주되므로 압축 방법에 사용된 로직의 크기는 압축 이전에 중간 특징맵을 저장하는데 요구되는 메모리의 크기보다 작아야 할 수 있다.The compressor 2231 can use a very simple compression algorithm. Since compression is considered to reduce the number of line memories, the size of the logic used in the compression method may have to be smaller than the memory size required to store the intermediate feature map before compression.
잔차 학습 및ReLU의 사용이 특징맵들에서 많은 0 및 0에 가까운 값들을 야기하기 때문에, 컴프레서(2231)는 이러한 데이터 특성에 대한 효율적인 압축 알고리즘을 제공할 수 있다. 컴프레서(2231)는 라인 메모리를 효과적으로 사용하기 위해서 수평 방향에서 인접한 데이터만을 사용하여 데이터를 압축할 수 있다.Since the use of residual learning and ReLU causes many zero and nearly zero values in the feature maps, the compressor 2231 can provide an efficient compression algorithm for this data characteristic. The compressor 2231 can compress the data using only the data adjacent in the horizontal direction in order to use the line memory effectively.
예를 들어, 컴프레서(2231)가 사용하는 알고리즘은 DXT5 알고리즘을 CNN 구조에 적합하도록 수정한 알고리즘을 포함할 수 있다. DXT5는 예시적으로 4×4 블록으로 구성된 RGB 픽셀을 압축함에 있어서, 각각의 RGB 컬러 채널 입력을 독립적으로 압축할 수 있다.For example, the algorithm used by the compressor 2231 may include an algorithm modified to fit the DXT5 algorithm to the CNN structure. DXT5 is capable of independently compressing each RGB color channel input in compressing RGB pixels illustratively comprised of 4x4 blocks.
각 컬러 채널의 최대 값(MAX)과 최소값(MIN)이 계산될 수 있다. 6 개 중간 점(intermediate points)이 최대값(MAX) 및 최소값(MIN)을 사용하여 보간을 통해 생성될 수 있다. MAX, MIN 값과 6 개의 중간 점이 압축을 위한 기준 컬러로 정의될 수 있다.The maximum value (MAX) and minimum value (MIN) of each color channel can be calculated. Six intermediate points can be generated through interpolation using the maximum value (MAX) and the minimum value (MIN). MAX, MIN, and 6 intermediate points can be defined as reference colors for compression.
픽셀 데이터를 인코딩하기 위해서 각 픽셀에 참조 컬러(reference color)에 가장 가까운 색의 인덱스 값을 할당할 수 있다. 인코딩은 4x4 블록 인덱스 값과 MAX 및 MIN 값을 저장함으로써 완료될 수 있다. 4x4 블록에서 각각의 픽셀에 대해서 8 개의 이웃 인덱스 값이 있고, 각각의 인덱스는 각 픽셀마다 3 비트로 표현될 수 있다.To encode the pixel data, each pixel may be assigned an index value of the color closest to the reference color. The encoding can be completed by storing a 4x4 block index value and MAX and MIN values. There are eight neighboring index values for each pixel in the 4x4 block, and each index can be represented by three bits for each pixel.
디코딩은 인코딩 프로세스의 역순으로 MAX, MIN 값 및 인덱스 값을 사용하여 쉽게 수행될 수 있다. RGB 입력의 픽셀 당 비트(bit per pixel(bpp))가 8 비트이면 DXT5는 4x4 블록에 대하여 고정된 압축률은 2:1을 가질 수 있다. 압축비(compression ratio(CR))는 수학식 3과 같이 계산될 수 있다.The decoding can be easily performed using MAX, MIN values and index values in the reverse order of the encoding process. If bits per pixel (bits per pixel (bpp)) of RGB input is 8 bits, DXT5 can have a fixed compression ratio of 2: 1 for a 4x4 block. The compression ratio (CR) can be calculated as shown in Equation (3).
이미지 처리 장치(10)의 컴프레서(2231)는 DXT5 알고리즘을 수정하여 이미지 열화(image quality degradation)를 최소화하고 CR을 증가시키는 압축 방법을 제공할 수 있다. 종래의 DXT 5와 이미지 처리 장치(10)의 차이는 표 2와 같이 나타낼 수 있다.The compressor 2231 of the image processing apparatus 10 may provide a compression method that modifies the DXT5 algorithm to minimize image quality degradation and increase CR. The difference between the conventional DXT 5 and the image processing apparatus 10 can be shown in Table 2.
컴프레서(2231)는 최소값은 0으로 고정시키고 최대값만 계산할 수 있다. 최소값을 0으로 고정하는 것은 중간 특징맵들의 데이터가 0 또는 0에 가까운 특성을 사용한다.The compressor 2231 can fix the minimum value to 0 and calculate only the maximum value. Fixing the minimum value to 0 uses a characteristic that the data of the intermediate feature maps is close to 0 or 0.
이미치 처리 장치(10)는 최소값을 0으로 고정함으로써, 최소값을 저장하는 비트를 감소시키고, 최소값을 계산하기 위한 로직(logic)을 제거할 수 있다. 중간 특징맵 데이터는 하드웨어에서 라인 단위로 처리되어야 하므로, 특징맵 데이터의 블록 크기는 1x32로 설정될 수 있다.The imposition apparatus 10 can reduce the bit for storing the minimum value and eliminate the logic for calculating the minimum value by fixing the minimum value to zero. Since the intermediate feature map data must be processed line by line in hardware, the block size of the feature map data can be set to 1x32.
또한, 5 비트 인덱스는 특징맵의 1x32 블록에서 각각의 데이터에 대해 양자화 레벨로 할당될 수 있다. 데이터의 하나의 인덱스는 이미지 품질을 유지하기 위해 할당된다. 인덱스들에 대한 5 비트 길이는 데이터 포인트 인덱스들에 대해서 비트 길이에 따른 PSNR 성능을 검사함으로써 실험적으로 결정될 수 있다.In addition, a 5-bit index may be assigned to a quantization level for each piece of data in a 1x32 block of the feature map. One index of data is allocated to maintain image quality. The 5 bit length for the indices can be determined experimentally by examining the PSNR performance along the bit length for the data point indices.
컴프레서(2231)의 CR은 수학식 4와 같이 나타낼 수 있다.The CR of the compressor 2231 can be expressed by Equation (4).
활성화의 양자화 후에 특징맵 데이터의 워드 길이(word length(WL))가 14 비트 깊이라면, 압축률은 2.58:1(=14(1x32)/(14+5(1x32)))일 수 있다. 즉, 특징맵을 저장하기 위한 라인 메모리의 수는 약 2.58 배로 줄어들 수 있다.The compression rate may be 2.58: 1 (= 14 (1x32) / (14 + 5 (1x32)) if the word length (word length (WL)) of the feature map data is 14 bit depth after quantization of activation. That is, the number of line memories for storing feature maps can be reduced to about 2.58 times.
표 2에 도시된 바와 같이, 컴프레서(2231)는 중간 점(intermediate point)을 계산하는데 대한 하드웨어 복잡성을 줄이기 위해 제수 값(divisor values)은 31(2
5-1) 대신 32(2의 배수)로 설정할 수 있다. 이를 통해, 컴프레서(2231)는 쉬프트 및 올림 연산자(shift 및 add operators)로 중간 점들을 계산할 수 있다As shown in Table 2, the compressor 2231 uses divisor values of 32 (a multiple of 2) instead of 31 (2 5 -1) to reduce hardware complexity for calculating intermediate points. Can be set. With this, the compressor 2231 can calculate the midpoints with shift and add operators (shift and add operators)
도 8은 도 3에 도시된 제2 컨벌루션 연산기의 개략적인 블록도를 나타낸다.Fig. 8 shows a schematic block diagram of the second convolution operator shown in Fig. 3. Fig.
도 7을 참조하면, 제2 컨벌루션 연산기(2250)는 뎁스 와이즈 컨벌루션 연산기(2251) 및 뎁스 와이즈 컨벌루션 연산기(2251)와 직접적으로 연결된 포인트 와이즈 컨벌루션 연산기(2253)을 포함할 수 있다. 제2 컨벌루션 연산기(2250)는 2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다.7, the second convolution operator 2250 may include a point-wise convolution operator 2251 and a point-wise convolution operator 2253 directly connected to the depth-wise convolution operator 2251. The second convolution operator 2250 may include at least one 2-D convolution operator for performing a 2-D (2-dimensional) convolution operation.
뎁스 와이즈 컨벌루션 연산기(2251)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 컨벌루션 연산기(2251)는 적어도 한 번 이상의 뎁스 와이즈 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(2253)은 포인트 별로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(2253)는 적어도 한 번 이상의 포인트 와이즈 컨벌루션 연산을 수행할 수 있다.The depth-wise convolution operator 2251 can perform a convolution operation in the depth direction of the feature map. The depth-wise convolution operator 2251 can perform at least one depthwise convolution operation. The point-wise convolution operator 2253 can perform a convolution operation on a point-by-point basis. The point-wise convolution operator 2253 may perform at least one point-wise convolution operation.
2-D 컨벌루션 연산은 2차원 데이터를 입력으로 하는 컨벌루션 연산을 의미할 수 있다. 예를 들어, 2-D 컨벌루션 연산은 m×n 컨벌루션을 의미할 수 있다. 이 때, 라인 단위의 데이터의 길이 m, n은 2 이상의 임의의 정수 값을 가질 수 있다.The 2-D convolution operation may be a convolution operation using two-dimensional data as input. For example, a 2-D convolution operation may mean m x n convolution. At this time, the length m and n of the line-by-line data may have an arbitrary integer value of 2 or more.
본 명세서에서는 예시적으로 2-D컨벌루션의 예시로 3×3 컨벌루션을 사용하지만, 이미지 처리 장치(10)가 사용하는 2-D 컨벌루션은 이에 제한되지 않을 수 있다.Although exemplary 3-by-3 convolution is used herein as an example of 2-D convolution, the 2-D convolution used by the image processing apparatus 10 may not be limited thereto.
뎁스 와이즈 컨벌루션 연산기(2251)는 특징맵의 깊이 방향으로 컨벌루션 연산을 수행할 수 있다. 포인트 와이즈 컨벌루션 연산기(2253)은 포인트 별로 컨벌루션 연산을 수행할 수 있다.The depth-wise convolution operator 2251 can perform a convolution operation in the depth direction of the feature map. The point-wise convolution operator 2253 can perform a convolution operation on a point-by-point basis.
뎁스 와이즈 컨벌루션 연산기(2251)는 적어도 하나의 2-D 컨벌루션 연산기를 포함할 수 있다. 포인트 와이즈 컨벌루션 연산기(2253)는 1×1 컨벌루션을 수행할 수 있다.The depth-wise convolution operator 2251 may include at least one 2-D convolution operator. The point-wise convolution operator 2253 may perform 1x1 convolution.
제1 컨벌루션 연산기(2210)와 마찬가지로, 제2 컨벌루션 연산기(2250)도 뎁스 와이즈 세퍼러블 컨벌루션을 사용하여 컨벌루션 연산을 수행할 수 있다. 뎁스 와이즈 세퍼러블 컨벌루션과 연관한 설명은 제1 컨벌루션 연산기(2210)와 동일하여 자세히 설명하지 않는다.Like the first convolution operator 2210, the second convolution operator 2250 can perform the convolution operation using the depthwise separable convolution. The description related to the depthwise separable convolution is the same as the first convolution operator 2210 and will not be described in detail.
도 9는 도 1에 도시된 이미지 처리 장치의 하드웨어 구조의 예를 나타낸다.Fig. 9 shows an example of the hardware structure of the image processing apparatus shown in Fig.
이미지 처리 장치(10)는 저해상도 이미지를 처리하여 고해상도 이미지를 생성할 수 있다. 예를 들어, 이미지 처리 장치(10)는 FHD 이미지로부터 4K UHD 이미지를 생성할 수 있다.The image processing apparatus 10 can process a low-resolution image to generate a high-resolution image. For example, the image processing apparatus 10 may generate a 4K UHD image from the FHD image.
도 9의 예시는 SR을 위한 파이프라인 하드웨어 아키텍처를 나타낼 수 있다. 도 9의 예시는 두 개의 유형으로 설계된 것일 수 있다. 유형-1은 중간 특징맵의 압축이 없고, 유형-2는 압축을 하는 경우를 의미할 수 있다.The example of FIG. 9 may represent a pipeline hardware architecture for SR. The example of FIG. 9 may be of two types. Type-1 means no compression of the intermediate feature map, and Type-2 means compression.
도 9에 도시된 이미지 처리 장치의 세부 사항은 표 3과 같이 나타낼 수 있다.Details of the image processing apparatus shown in Fig. 9 can be shown in Table 3.
이미지 처리 장치(10)는 제1 픽셀 정보 변환기(1100), 제1 라인 버퍼(2100), 데이터 정렬기(data aligner), 뎁스 와이즈 컨벌루션 연산기(2211), 포인트 와이즈 컨벌루션 연산기(2213) 컴프레서(2231), 제3 라인 버퍼(2233), 디컴프레서(2235), 뎁스 와이즈 컨벌루션 연산기(2251), 포인트 와이즈 컨벌루션 연산기(2253), 양자화기(2270), 가중치 버퍼(2290), 제2 픽셀 정보 변환기(2300) 및 제2 라인 버퍼(2400)를 포함할 수 있다.The image processing apparatus 10 includes a first pixel information converter 1100, a first line buffer 2100, a data aligner, a depth-wise convolution operator 2211, a point-wise convolution operator 2213, a compressor 2231 A third line buffer 2233, a decompressor 2235, a depth-wise convolution operator 2251, a point-wise convolution operator 2253, a quantizer 2270, a weight buffer 2290, 2300 and a second line buffer 2400.
제1 픽셀 정보 변환기(1100)가 수신하는 이미지는 컬러 데이터를 포함할 수 있다. 예를 들어, 컬러 데이터는 RGB 채널 데이터 및 YCbCr 채널 데이터를 포함할 수 있다.The image received by the first pixel information converter 1100 may include color data. For example, the color data may include RGB channel data and YCbCr channel data.
제1 픽셀 정보 변환기(1100)는 제1 컬러 데이터를 제2 컬러 데이터로 변환할 수 있다. 제1 컬러 데이터는 RGB 채널을 포함할 수 있다. 제2 컬러 데이터는 YCbCr 채널을 포함할 수 있다. 예를 들어, 제1 픽셀 정보 변환기(1100)는 LR 입력 이미지의 RGB 채널을 YCbCr 채널로 변환할 수 있다.The first pixel information converter 1100 may convert the first color data into the second color data. The first color data may include RGB channels. The second color data may include a YCbCr channel. For example, the first pixel information converter 1100 may convert the RGB channel of the LR input image into a YCbCr channel.
제1 라인 버퍼(2100)는 예시적으로 4 개의 라인 버퍼를 포함할 수 있다. 뎁스 와이즈 컨벌루션 연산기(2211)는 1×5 컨벌루션 연산을 수행할 수 있다. 제3 라인 버퍼(2233)는 짝수 라인 버퍼 및 홀수 라인 버퍼를 포함할 수 있다.The first line buffer 2100 may illustratively include four line buffers. The depth-wise convolution operator 2211 can perform a 1x5 convolution operation. The third line buffer 2233 may include an even line buffer and an odd line buffer.
뎁스 와이즈 컨벌루션 연산기(2251)는 3×3 컨벌루션 연산을 수행할 수 있다. 제2 픽셀 정보 정보 변환기(2300)는 제2 컬러 데이터를 제1 컬러 데이터로 변환할 수 있다. 예를 들어, 제2 픽셀 정보 변환기(2300)는 YCbCr 채널을 RGB 채널로 변환할 수 있다. The depth-wise convolution operator 2251 can perform a 3x3 convolution operation. The second pixel information information converter 2300 may convert the second color data into the first color data. For example, the second pixel information converter 2300 may convert a YCbCr channel to an RGB channel.
가중치 버퍼(2290)는 컨벌루션 연산에 사용되는 파라미터(또는 필터 파라미터)를 저장할 수 있다. 가중치 버퍼(2290)는 컨벌루션 연산기들로부터 수신하는 파라미터들을 업데이트 할 수 있다.The weight buffer 2290 may store parameters (or filter parameters) used for the convolution operation. The weight buffer 2290 may update parameters received from the convolution operators.
제2 라인 버퍼(2400)는 복수의 라인 버퍼를 포함할 수 있다. 예를 들어, 제2 라인 버퍼(2400)는 4개의 출력 라인 버퍼를 포함할 수 있다.The second line buffer 2400 may include a plurality of line buffers. For example, the second line buffer 2400 may include four output line buffers.
모든 컨벌루션 연산기의 출력은 양자화기(2270)를 통해 양자화될 수 있다. 또한 모든 가중치 파라미터들 또한 양자화기(2270)를 통해 양자화 될 수 있다.The outputs of all convolution operators may be quantized through a quantizer 2270. All of the weighting parameters may also be quantized through the quantizer 2270.
양자화기(2270)는 32 비트 부동 소수점을10 비트 고정 소수점으로 변환할 수 있다. 가중치 버퍼(2290)는 양자화된 가중치 파라미터를 저장할 수 있다.The quantizer 2270 can convert a 32-bit floating point to a 10-bit fixed point. The weight buffer 2290 may store the quantized weight parameters.
도 9에서 화살표는 데이터 패스를 나타낼 수 있다. 즉, 화살표는 유형-1에 따른 데이터 패스 및 유형-2에 따른 데이터 패스를 나타낼 수 있다.The arrows in FIG. 9 may represent the data path. That is, the arrow may represent a datapath according to type-1 and a datapath according to type-2.
이미지 처리 장치(10)는 파이프 라인 구조로 동작할 수 있다. 파이프 라인은 한 데이터의 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조를 의미할 수 있다. 연결된 데이터의 처리 단계는 여러 단계가 서로 동시에, 또는 병렬적으로 수행될 수 있다.The image processing apparatus 10 can operate in a pipeline structure. The pipeline may refer to a structure in which the output of the processing step of one data is connected to the input of the next step. The processing step of the connected data can be performed in several steps simultaneously or in parallel.
즉, 이미지 처리 장치(10)에 포함된 구성 요소들은 동시에 또는 병렬적으로 동작하여 이미지를 처리할 수 있다. 예를 들어, 이미지 처리 장치의 적어도 하나의 컨벌루션 연산은 파이프 라인 형태로 동작할 수 있다.That is, the components included in the image processing apparatus 10 may operate concurrently or in parallel to process images. For example, at least one convolution operation of the image processing apparatus may operate in a pipeline form.
컨벌루션 연산기들은 컨벌루션 필터 파라미터들을 가중치 버퍼(2290)로부터 로딩할 수 있다. 그 후, 제1 픽셀 정보 변환기(1100)는 RGB 입력 스트림으로부터 YCbCr 값을 추출할 수 있다. 제1 라인 버퍼(2100)는 네트워크의 끝에 잔차 연결에 대해 보간된 이미지를 획득하기 위한 최단입점 업스케일링에 사용하기 위해서 YCbCr LR 입력 이미지의 4 개의 행을 저장할 수 있다.Convolution operators may load the convolution filter parameters from the weight buffer 2290. The first pixel information converter 1100 may then extract the YCbCr value from the RGB input stream. The first line buffer 2100 may store four rows of the YCbCr LR input image for use in the shortest entry upscaling to obtain the interpolated image for the residual connection at the end of the network.
데이터 정렬기는 제1 라인 버퍼(2100)의 4 개의 라인 버퍼 및 입력 스트림의 데이터를 재정렬하고, 3×3 크기의 YCbCr LR 패치(patch)들을 생성할 수 있다. 여기서, LR 패치들의 Y 채널은 3×3 컨벌루션 레이어에 전송될 수 있다.The data aligner may rearrange the data of the four line buffers and input streams of the first line buffer 2100 and generate 3x3 sized YCbCr LR patches. Here, the Y channel of the LR patches can be transmitted in a 3x3 convolution layer.
첫 번째 컨벌루션 연산 후에, 특징맵은 ReLU 활성화 함수를 통과할 수 있다. 그 후, ReLU 함수의 출력은 제1 컨벌루션 연산기(2210)를 통과할 수 있다. 제1 컨벌루션 연산기(2210)는 특징맵(또는 중간 특징맵)을 생성할 수 있다.After the first convolution operation, the feature map may pass through the ReLU activation function. Thereafter, the output of the ReLU function may pass through the first convolution operator 2210. The first convolution operator 2210 may generate a feature map (or an intermediate feature map).
컴프레서(2231)는 잔차 블록 및ReLU를 통과한 중간 특징맵을 압축하고, 제3 라인 버퍼(2233)는 이를 저장할 수 있다.The compressor 2231 compresses the intermediate feature map that has passed through the residual block and the ReLU, and the third line buffer 2233 can store it.
디컴프레서(2235)는 제3 라인 버퍼(2233)에 저장된 데이터를 읽어서 한 번 지연된(one-delayed) 라인 데이터 DE(data enable) 타이밍에 압축을 해제할 수 있다. 뎁스 와이즈 컨벌루션 연산기(2251)는 압축 해제된 데이터에 대하여 3×3 컨벌루션 연산을 수행하고, 포인트 와이즈 컨벌루션 연산기(2253)는 뎁스 와이즈 컨벌루션 연산기(2251)의 출력에 대하여 1×1 컨벌루션 연산을 수행할 수 있다.The decompressor 2235 can read the data stored in the third line buffer 2233 and decompress the decompressed data at a timing of one-delayed line data DE (data enable). The depth-wise convolution operator 2251 performs a 3 × 3 convolution operation on the decompressed data, and the point-wise convolution operator 2253 performs a 1 × 1 convolution operation on the output of the depth-wise convolution operator 2251 .
포인트 와이즈 컨벌루션 연산기(2253)에서 출력된 후에, 특징맵 채널의 수는 32에서 16으로 반으로 감소될 수 있다. 채널이 감소된 특징맵은 다시 컴프레서(2231), 제3 라인 버퍼(2233) 및 디컴프레서(2235)를 순차적으로 통과할 수 있다. 그 후, 다시 한번 뎁스 와이즈 컨벌루션 연산기(2251) 및 포인트 와이즈 컨벌루션 연산기(2253)를 통해 컨벌루션 연산이 수행될 수 있다.After being output from the point-wise convolution operator 2253, the number of feature map channels may be reduced from 32 to 16 in half. The feature map in which the channel is reduced can again pass through the compressor 2231, the third line buffer 2233, and the decompressor 2235 sequentially. Thereafter, a convolution operation may be performed through the depth-wise convolution operator 2251 and the point-wise convolution operator 2253 once again.
반복된 컨벌루션 연산 후의 출력은 서브 픽셀 컨벌루션과 유사한 방법으로 2×2 크기의 HR 패치를 만들기 위해 사용되는 4개의 채널로 이루어질 수 있다.The output after repeated convolution operations can be made up of four channels used to create a 2x2 HR patch in a manner similar to subpixel convolution.
마지막으로, 이미지 처리 장치(10)는 2x2 크기의 초해상화된(super-resolved) Y 데이터(Y
C)와 최단 입점 보간 방법에 의해 2X 업-샘플링된 데이터(Y
N)를 더함으로써 최종 Y(Y
F)를 획득할 수 있다.Finally, the image processing apparatus 10 adds the super-resolved Y data (Y C ) of 2x2 size and the 2X up-sampled data (Y N ) by the shortest entry interpolation method, (Y F ).
Y
C와 Y
N 데이터의 두 개의 타이밍을 동기화하기 위해서, Y
N 데이터가 FIFO(First-In-First-Out)에 저장되고, Y
C와 동일한 타이밍에 판독될 수 있다. FIFO로부터 지연된 CbCr 데이터 또한, 최단 입점(nearest neighbor) 보간에 기초하여 2 배로 업샘플링되고, RGB 픽셀을 획득하기 위해 제2 픽셀 정보 변환기로 전송될 수 있다.In order to synchronize the two timings of Y C and Y N data, Y N data is stored in a FIFO (First-In-First-Out) and can be read at the same timing as Y C. The CbCr data delayed from the FIFO may also be upsampled twice based on the nearest neighbor interpolation and sent to the second pixel information converter to obtain RGB pixels.
제2 라인 버퍼(2400)의 두 개의 출력 버퍼들은 생성된 2x2 RGB HR 패치들을 저장할 수 있고, 출력 타이밍에 출력 클락 사이클 마다 디스플레이 장치로 전송될 수 있다.The two output buffers of the second line buffer 2400 can store the generated 2x2 RGB HR patches and can be transmitted to the display device every output clock cycle at the output timing.
스트림 처리를 위한 이중 버퍼링 구조를 이용하는 2x2 RGB HR 패치들에 대하여 읽기/쓰기 충돌을 피하기 위해서 제2 라인 버퍼(2400)로 4 개의 라인 버퍼가 사용될 수 있다.Four line buffers may be used in the second line buffer 2400 to avoid read / write conflicts with 2x2 RGB HR patches using a double buffering scheme for stream processing.
도 10는 도 1에 도시된 이미지 처리 장치가 이용하는 뉴럴 네트워크 구조의 예를 나타낸다.Fig. 10 shows an example of a neural network structure used by the image processing apparatus shown in Fig.
도 10를 참조하면, 이미지 처리 장치(10)는 하드웨어 친화적인 CNN 기반 SR 네트워크를 이용하여 이미지를 처리할 수 있다. Referring to FIG. 10, the image processing apparatus 10 can process images using a hardware-friendly CNN-based SR network.
이미지 처리 장치(10)는 컬러 데이터의 일부만을 이용하여 이미지를 처리할 수 있다. YCbCr 채널 중에서 휘도 신호(Y) 채널만을 CNN 네트워크에 입력하여 처리할 수 있다. Y 채널만을 이용한 학습의 성능은 RGB 채널을 이용한 학습의 성능과 유사할 수 있다.The image processing apparatus 10 can process the image using only a part of the color data. Of the YCbCr channels, only the luminance signal (Y) channel can be input to the CNN network for processing. The performance of learning using only Y channel may be similar to the performance of learning using RGB channel.
RGB 채널로 CNN 네트워크를 학습시킬 때 RGB 채널에 사용되는 파라미터의 수는 첫 번째 레이어의 2-D 컨벌루션 및 마지막 레이어의 포인트 와이즈 컨벌루션에서 Y 채널에만 사용되는 매개 변수의 수보다 3 배 더 클 수 있다.When learning a CNN network with RGB channels, the number of parameters used for the RGB channel may be three times greater than the number of parameters used only for the Y channel in the 2-D convolution of the first layer and the point-wise convolution of the last layer .
이 때, 색차 신호(Cb, Cr) 채널 데이터는 보간 방법을 이용하여 업스케일링 될 수 있다. 보간 방법은 바이큐빅 보간 및 최단 입점 보간(nearest neighbor interpolation)을 포함할 수 있다.At this time, the color difference signal (Cb, Cr) channel data can be upscaled using an interpolation method. The interpolation method may include bicubic interpolation and nearest neighbor interpolation.
예를 들어, 이미지 처리 장치(10)는 복잡도를 줄이고, 하드웨어 효율을 위해서 바이큐빅 보간 대신에 간단한 최단 입점 보간을 이용하여 업스케일링될 수 있다. 또한, 복잡도를 줄이기 위해서, 이미지 처리 장치(10)는 잔차 학습 기법(residual learning technique)을 이용하여 뉴럴 네트워크를 학습시킬 수 있다.For example, the image processing apparatus 10 can be upscaled using simple shortest-point interpolation instead of bicubic interpolation for reduced hardware complexity and hardware efficiency. Also, in order to reduce the complexity, the image processing apparatus 10 may learn a neural network using a residual learning technique.
이미지 처리 장치(10)는 최종 HR 이미지 Y
F는 보간된 LR 이미지 Y
N과 네트워크의 출력 Y
C를 더함으로써 계산할 수 있다. 이를 수학식 5와 같이 나타낼 수 있다.The image processing apparatus 10 can calculate the final HR image Y F by adding the interpolated LR image Y N and the output Y C of the network. This can be expressed by Equation (5).
컨벌루션 필터 파라미터 및 라인 메모리를 가능한 적게 사용하기 위해서 이미지 처리 장치(10)는 뎁스 와이즈 세퍼러블 컨벌루션(depth-wise separable convolutions), 1-D 수평(horizontal) 컨벌루션 및 잔차 연결(residual connection)을 결합하여 사용할 수 있다. In order to use the convolution filter parameters and the line memory as little as possible, the image processing apparatus 10 combines depth-wise separable convolutions, 1-D horizontal convolution and residual connection Can be used.
그 결과, 필터 파라미터의 수는 종래의 SRCNN(Super-Resolution Convolutional Neural Network)-Ex에 비해서 약 21 배 적고, FSRCNN(Fast Super-Resolution Convolutional Neural Network)에 비해서 약 4.5 배 적고, FSRCNN-s에 비해서 약 1.56 배 적은 반면 PSNR 및 SSIM(Structural Similarity) 성능은 SRCNN-Ex와 유사할 수 있다.As a result, the number of filter parameters is about 21 times smaller than that of the conventional Super-Resolution Convolutional Neural Network (SRCNN) -Ex, about 4.5 times smaller than that of the FSRCNN (Fast Super Resolution Convolutional Neural Network) While PSNR and Structural Similarity (SSIM) performance may be similar to SRCNN-Ex.
도 10에 도시된 예시와와 같이 이미지 처리 장치(10)는 두 레이어의 2-D 컨벌루션 레이어와 하나의 1-D 컨벌루션 레이어를 통해 컨벌루션 연산을 수행할 수 있다. 예를 들어, 2-D 컨벌루션 연산은 3×3 컨벌루션 연산일 수 있고, 1-D 컨벌루션 연산은 1×5 컨벌루션 연산일 수 있다. 이 경우, 총 수용 필드의 크기는 7×15일 수 있다.10, the image processing apparatus 10 may perform a convolution operation through a 2-D convolution layer of two layers and a 1-D convolution layer. For example, the 2-D convolution operation may be a 3x3 convolution operation, and the 1-D convolution operation may be a 1x5 convolution operation. In this case, the total receiving field size may be 7 x 15.
도 11은 도 1에 도시된 이미지 처리 장치를 검증하는 프레임 워크의 예를 나타낸다.Fig. 11 shows an example of a framework for verifying the image processing apparatus shown in Fig.
도 11을 참조하면, 바이큐빅과 기존의 CNN 기반 SR 방법을 이미지 처리 장치(10)와 비교하기 위하여 대중적인 데이터 세트에 대하여 성능이 평가될 수 있다. 성능 평가 실험을 통해, SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s 및 VDSR(Very Deep Super-Resolutio)을 포함하는 소프트웨어 기반 방법들과 이미지 처리 장치(10)의 성능이 비교될 수 있다. 또한, 게이트 카운트 및 동작 주파수의 관점에서도 다른 실시간 SR 하드웨어와 이미지 처리 장치(10)의 성능이 비교될 수 있다.Referring to FIG. 11, performance may be evaluated for popular data sets to compare bi-cubic and conventional CNN-based SR methods with the image processing apparatus 10. Through the performance evaluation experiments, the performance of the image processing apparatus 10 can be compared with software-based methods including SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s and VDSR (Very Deep Super-Resolution). Also, the performance of the image processing apparatus 10 can be compared with other real-time SR hardware in view of the gate count and the operating frequency.
학습 및 테스트를 위해 대중적으로 사용 가능한 벤치 마크 데이터 세트가 사용될 수 있다. 특히, SR 네트워크는 Yang 등으로부터의 91개의 이미지 및 버클리 분할 데이터셋(Berkeley Segmentation Dataset)으로부터의 200 개의 이미지 구성된 291 이미지를 이용하여 학습될 수 있다. A set of benchmark data that are available for learning and testing can be used. In particular, the SR network can be learned using 291 images consisting of 200 images from 91 images from Yang et al. And Berkeley Segmentation Dataset.
성능 비교를 위해 테스트세트-1과 테스트세트-2가 사용될 수 있다. 테스트세트-1은 Set5, Set14, B100 및 Urban100으로 구성될 수 있고, 이들은 많은 방법들에서 SR 벤치마크로 자주 사용될 수 있다. 테스트세트-2는 4K UHD 이미지 8개로 구성될 수 있고, 테스트를 위해 사용될 수 있다.Test set-1 and test set-2 can be used for performance comparison. Test set-1 can consist of Set5, Set14, B100 and Urban100, which can often be used as SR benchmarks in many ways. Test Set-2 can consist of 8 4K UHD images and can be used for testing.
모든 실험은 SR에 대해 2 배의 스케일 팩터로 수행될 수 있다. PSNR 및 SSIM은 평가를 위한 척도(metric)로 사용될 수 있다. SR은 YCbCr 색 공간의 휘도(luminance) 채널에 대해 수행되었으므로, PSNR 및 SSIM은 재구성된 원본 HR 이미지의 Y 채널을 사용하여 계산될 수 있다.All experiments can be performed with a scale factor of 2 for SR. PSNR and SSIM can be used as metrics for evaluation. Since SR was performed on the luminance channel of the YCbCr color space, the PSNR and SSIM can be computed using the Y channel of the reconstructed original HR image.
학습 및 테스트를 위해, LR 입력 이미지는 2 배 스케일의 바이큐빅 보간을 이용하여 원본 HR 이미지로부터 다운 샘플링하여 의도적으로 생성될 수 있다. 학습을 위해 128×128 크기의 서브 이미지들이 무작위로 크롭될(cropped) 수 있다. 회전, 반사 및 스케일링을 사용하여 LR-HR 학습 이미지 쌍이 증대(augmentation)될 수 있다.For learning and testing, the LR input image can be intentionally generated by downsampling from the original HR image using bi-cubic interpolation of double scale. Subimages of size 128 x 128 may be cropped randomly for learning. The LR-HR learning image pair can be augmented using rotation, reflection, and scaling.
가중치는 균일 분포를 사용하여 초기화될 수 있고, 파라미터의 수를 줄이기 위해서 바이어스가 사용되지 않을 수 있다. L1 손실(loss)이 L2 손실 대신 비용 함수로 사용될 수 있다. 제안된 SR 네트워크는 Adam optimizer를 이용하여 학습될 수 있다.The weights may be initialized using a uniform distribution, and the bias may not be used to reduce the number of parameters. L1 loss can be used as a cost function instead of L2 loss. The proposed SR network can be learned using the Adam optimizer.
학습률(learning rate)은 0.0001로 설정되고, 50 에포크(epoch)마다 10씩 감소될 수 있다. 학습 도중에 미니 배치(batch)의 크기는 2로 설정될 수 있다. 3.4GHz의 NVIDIA Titan X GPU 및 Intel Core i7-6700 CPU가 학습 테스트에 사용될 수 있다.The learning rate is set to 0.0001 and can be reduced by 10 for every 50 epochs. During the learning, the size of the mini batch can be set to two. A 3.4GHz NVIDIA Titan X GPU and an Intel Core i7-6700 CPU can be used for learning tests.
학습 단계에서 부동 소수점을 계산하는 동안 SR 네트워크의 가중치 파라미터는 테스트 단계에서 부동 소수점에서 고정 소수점까지 수학식 2에 따라 양자화될 수 있다.The weight parameters of the SR network during the learning phase may be quantized according to Equation 2 from floating point to fixed point in the test phase while calculating the floating point.
또한, 모든 컨벌루션 레이어의 활성화를 양자화하고 압축 방법을 이용하여 3×3 크기의 뎁스 와이즈 컨벌루션 레이어들의 특징맵들만이 압축될 수 있다. 가중치와 활성화에 대한 최적의 양자화 비트는 실험적으로 발견될 수 있고, 양자화된 가중치 파라미터는 이미지 처리 장치(10)에서 사용될 수 있다.In addition, only the feature maps of the 3 × 3 depth wise convolution layers can be compressed by quantizing the activation of all the convolution layers and using the compression method. Optimum quantization bits for weighting and activation can be found experimentally and quantized weighting parameters can be used in the image processing apparatus 10.
알고리즘 단계에서 압축된 중간 특징맵 및 최종 SR 이미지는 골든 모델(golden model)로 사용되어 설계된 하드웨어 시뮬레이션 결과와 비교될 수 있다.The compressed intermediate feature map and the final SR image in the algorithm step can be compared with the hardware simulation results designed using the golden model.
도 12a는 도 1에 도시된 이미지 처리 장치의 성능의 일 예를 나타내고, 도 12b는 도 1에 도시된 이미지 처리 장치의 성능의 다른 예를 나타내고, 도 12c는 도 1에 도시된 이미지 처리 장치의 성능의 또 다른 예를 나타낸다.FIG. 12A shows an example of the performance of the image processing apparatus shown in FIG. 1, FIG. 12B shows another example of the performance of the image processing apparatus shown in FIG. 1, Another example of performance is shown.
도 12a 내지 도 12c를 참조하면, 가중치 파라미터와 활성화는 하드웨어 구현을 위해 양자화될 수 있다. 가중치 파라미터 및 활성화에 대한 양자화가 출력 이미지의 품질에 크게 영향을 미치기 때문에 적절한 양자화 비트 깊이를 찾는 것이 중요할 수 있다. 즉, 상술한 내용에서 단어 길이(WL), 정수 길이(IL) 및 소수 길이(FL)의 세 가지 파라미터에 대한 적절한 값이 요구될 수 있다. 이를 위해, 다양한 데이터 세트에 대하여 WL, IL, FL을 변경하며 실험이 수행될 수 있다.Referring to Figures 12A-12C, weighting parameters and activation may be quantized for hardware implementation. It may be important to find the appropriate quantization bit depth since the quantization for the weight parameter and activation greatly affects the quality of the output image. That is, in the above description, appropriate values for three parameters of the word length (WL), the integer length (IL), and the decimal length (FL) may be required. To do this, experiments can be performed by changing WL, IL, FL for various data sets.
도 12a는 Set5 데이터 세트에 대한 가중치 파라미터 값을 양자화하는 WL 및 IL에 대한 PSNR 그래프를 나타낼 수 있다. 도 12a에서 확인할 수 있듯이, 비트 깊이가 10 이상인 경우, SR 네트워크의 PSNR 성능은 가중치 및 활성화 양자화가 없는 경우와 유사할 수 있다. 또한, 10 비트 WL에 대해, PSNR 성능은 IL=4 이상에서 크게 감소하는 것을 확인할 수 있다.FIG. 12A may show a PSNR graph for WL and IL that quantizes weight parameter values for a Set5 data set. As shown in FIG. 12A, when the bit depth is 10 or more, the PSNR performance of the SR network can be similar to the case of no weighting and active quantization. Also, it can be seen that PSNR performance for 10 bit WL is greatly reduced at IL = 4 or more.
이는 FL 비트 깊이가 수학식 5에서와 같이 잔차 네트워크의 사용으로 인해 IL 비트 깊이 보다 PSNR 성능에 더 큰 영향을 미칠 수 있다. 가중치 파라미터의 양자화를 위해 WL 비트 깊이는 10 비트로, IL 비트 깊이는 2트로 설정될 수 있고, 이는 활성화 양자화 및 중간 특징맵 압축에도 사용될 수 있다.This may have a greater impact on the PSNR performance than the IL bit depth due to the use of the residual network as in Equation (5). For quantization of the weighting parameters, the WL bit depth can be set to 10 bits and the IL bit depth can be set to 2, which can also be used for active quantization and intermediate feature map compression.
도 12b는 활성화 양자화를 위한 WL 및 IL 비트 깊이에 대한 SR 네트워크의 PSNR 성능을 나타낼 수 있다. 도 12b의 실험 결과를 바탕으로 활성화 양자화를 위한 WL가 14 비트로, IL가 2 비트로 설정될 수 있다.FIG. 12B shows the PSNR performance of the SR network for WL and IL bit depths for active quantization. Based on the experimental result of FIG. 12B, WL for active quantization can be set to 14 bits, and IL can be set to 2 bits.
도 12c는 라인 메모리 사용을 줄이기 위해 양자화된 특징맵에 적용된 압축 방법에 대한 실험 결과를 나타낼 수 있다. 다양한 블록 크기 및 인덱스(양자화 레벨)가 PSNR 성능과 관련하여 검사될 수 있다. 압축의 양자화 레벨의 수가 적을수록 압축률은 높아지지만 PSNR 성능은 낮아질 수 있다.FIG. 12C can show experimental results on a compression method applied to a quantized feature map to reduce line memory usage. Various block sizes and indices (quantization levels) may be examined in relation to PSNR performance. The smaller the number of quantization levels of compression, the higher the compression ratio but the lower the PSNR performance.
도 12c의 실험결과에 기초하여, 32 비트의 블록 크기 및 5 비트의 인덱스 크기(양자화 레벨의 수)가 요구되는 라인 메모리 및 결과 PSNR 사이의 절충안으로 선택될 수 있다.Based on the experimental results in FIG. 12C, a block size of 32 bits and an index size of 5 bits (the number of quantization levels) can be selected as a compromise between the required line memory and the resulting PSNR.
도 13a는 원본 고해상도 이미지의 일 예를 나타내고, 도 13b는 바이큐빅 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 13c는 SRCNN 방법을 통해 처리된 이미지의 일 예를 나타낸다.13A shows an example of an original high-resolution image, FIG. 13B shows an example of an image processed through a bicubic method, and FIG. 13C shows an example of an image processed through a SRCNN method.
도 13d는 SRCNN-Ex 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 13e는 FSRCNN 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 13f는 FSRCNN-s 방법을 통해 처리된 이미지의 일 예를 나타낸다.13D shows an example of an image processed through the FSRCNN-s method, FIG. 13E shows an example of an image processed through the FSRCNN method, and FIG. 13F shows an example of an image processed through the FSRCNN- .
도 13g는 VDSR 방법을 통해 처리된 이미지의 일 예를 나타내고, 도 13h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 일 예를 나타낸다.FIG. 13G shows an example of an image processed through the VDSR method, and FIG. 13H shows an example of an image processed by applying the quantized weight to the image processing apparatus shown in FIG.
도 13i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 일 예를 나타내고, 도 13j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 일 예를 나타낸다. FIG. 13I shows an example of an image processed by applying the quantized weight and activation to the image processing apparatus shown in FIG. 1, FIG. 13J shows an example in which the image processing apparatus shown in FIG. An example of an image processed by applying compression is shown.
도 14a는 원본 고해상도 이미지의 다른 예를 나타내고, 도 14b는 바이큐빅 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 14c는 SRCNN 방법을 통해 처리된 이미지의 다른 예를 나타낸다.FIG. 14A shows another example of the original high-resolution image, FIG. 14B shows another example of the image processed through the bicubic method, and FIG. 14C shows another example of the image processed through the SRCNN method.
도 14d는 SRCNN-Ex 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 14e는 FSRCNN 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 14f는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타낸다.14D shows another example of the image processed through the SRCNN-s method, Fig. 14E shows another example of the image processed through the FSRCNN method, and Fig. 14F shows another example of the image processed through the FSRCNN-s method .
도 14g는 FSRCNN-s 방법을 통해 처리된 이미지의 다른 예를 나타내고, 도 14h는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치를 적용하여 처리한 이미지의 다른 예를 나타낸다.FIG. 14G shows another example of the image processed through the FSRCNN-s method, and FIG. 14H shows another example of the image processed by applying the quantized weight to the image processing apparatus shown in FIG.
도 14i는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화를 적용하여 처리한 이미지의 다른 예를 나타내고, 도 14j는 도 1에 도시된 이미지 처리 장치가 양자화된 가중치와 활성화 및 중간 특징맵 압축을 적용하여 처리한 이미지의 다른 예를 나타낸다.FIG. 14I shows another example of an image processed by applying the quantized weight and activation to the image processing apparatus shown in FIG. 1, FIG. 14J shows the image processing apparatus shown in FIG. 1 with the quantized weight, Another example of an image processed by applying compression is shown.
도 13a 내지 도 14j를 참조하면, 이미지 처리 장치(10)의 성능이 바이큐빅 및 SRCNN, SRCNN-Ex, FSRCNN, FSRCNN-s를 포함하는 다른 CNN 기반 SR 방법과 비교될 수 있다. SRCNN, SRCNN-Ex, FSRCNN 및 FSRCNN-s에 대해 공개적으로 사용 가능한 MATLABTM 소스 코드가 사용될 수 있고, 이미지 처리 장치(10)는 PyTorch를 이용하여 구현될 수 있다.13A to 14J, the performance of the image processing apparatus 10 can be compared with other CNN-based SR methods including bicubic and SRCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s. Publicly available MATLAB (TM) source code for SRCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s may be used and the image processing apparatus 10 may be implemented using PyTorch.
공정한 비교를 위해 HR 복원본 및 원본 이미지의 경계가 PSNR/SSIM 계산에서 제외될 수 있다. 모든 방법은 CPU 플랫폼에서 실행될 수 있다.For a fair comparison, the boundaries of the HR reconstruction and the original image may be excluded from the PSNR / SSIM calculation. All methods can be executed on the CPU platform.
VDSR의 공식 코드는 GPU 플랫폼에서만 실행 가능하기 때문에 PSNR/SSIM 및 실행 시간을 측정하기 위해 CPU 플랫폼에서 실행되는 타사 코드(third-party code)가 사용될 수 있다.Because the official code for VDSR is only executable on the GPU platform, third-party code running on the CPU platform can be used to measure PSNR / SSIM and run-time.
이미지 처리 장치(10)의 실행 시간은 PyTorch를 사용한 소프트웨어 구현을 기반으로 측정될 수 있다.The execution time of the image processing apparatus 10 can be measured based on a software implementation using PyTorch.
4 가지 벤치마크 데이터 세트와 비교한 SR 방법의 평균 PSNR 및 SSIM 값은 표 4와 같이 나타낼 수 있다.The average PSNR and SSIM values for the SR method compared to the four benchmark data sets are shown in Table 4.
표 4에서 볼 수 있듯이 이미지 처리 장치(10)는 FSRCNN-s보다 성능이 뛰어나고, FSRCNN-s에 비하여 64 퍼센트의 필터 파라미터의 수만을 차지하는 것을 확인할 수 있다. 또한, 가중치 파라미터의 값 및 활성화를 위한 양자화 후에도 이미지 처리 장치(10)의 성능저가 일어나지 않음을 확인할 수 있다.As shown in Table 4, it can be seen that the image processing apparatus 10 performs better than FSRCNN-s and occupies only 64% of the filter parameters in comparison with FSRCNN-s. In addition, it can be confirmed that the performance of the image processing apparatus 10 does not occur even after the value of the weight parameter and the quantization for activation.
이미지 처리 장치(10)의 네트워크에 대하여 특징맵 압축을 적용할 때, PSNR에서 약 0.1dB의 성능 저하가 있지만, 요구되는 라인 메모리의 공간은 약 2.58배 감소될 수 있다.When applying feature map compression to the network of image processing apparatus 10, there is a performance degradation of about 0.1 dB at PSNR, but the space of the required line memory may be reduced by about 2.58 times.
표 5는 4K UHD 테스트 이미지로 구성된 테스트세트-2의 PSNR, SSIM의 평균 계산 시간 측면에서 이미지 처리 장치(10)와 다른 CNN 기반 SR 방법의 성능 비교 결과를 나타낼 수 있다.Table 5 shows the performance comparison results of the image processing apparatus 10 and other CNN-based SR methods in terms of the average calculation time of the PSNR and SSIM of the test set 2 composed of the 4K UHD test image.
이미지 처리 장치(10)는 다른 SR 방법에 필적하는 품질의 HR 이미지를 복원할 수 있음을 확인할 수 있다. 실행 시간과 관련하여, RCNN, SRCNN-Ex, FSRCNN 및 FSRCNN-s은 공개 코드가 MATLAB에서 구현되고, CPU 플랫폼에서 최적화되지 않을 수 있으므로 상대적으로 긴 실행 시간을 사용할 수 있다.It can be seen that the image processing apparatus 10 can restore a quality HR image comparable to other SR methods. Regarding execution time, RCNN, SRCNN-Ex, FSRCNN, and FSRCNN-s can use relatively long run times because public code is implemented in MATLAB and may not be optimized on the CPU platform.
공정한 비교를 위해 이미지 처리 장치(10)가 사용하는 네트워크가 TensorFlow에서도 구현될 수 있고, 다른 코드들도 TensorFlow에서 작성되어 GPU 플랫폼에서 실행시간이 측정될 수 있다.The network used by the image processing apparatus 10 for a fair comparison can also be implemented in TensorFlow, and other codes can be created in TensorFlow and the execution time can be measured in the GPU platform.
표 5를 참조하면, 이미지 처리 장치(10)를 포함한 다양한 CNN 기반 SR 방법에 대해 GPU가 측정한 실행 시간을 확인할 수 있다. GPU에서 실행되는 이미지 처리 장치(10)의 실행 시간은 약 50ms로 측정되었고, 이는 FPGA 구현에 비하여 약 3배 정도 빠름을 확인할 수 있다.Referring to Table 5, the execution time measured by the GPU for various CNN-based SR methods including the image processing apparatus 10 can be confirmed. The execution time of the image processing apparatus 10 executed in the GPU was measured to be about 50 ms, which is about three times faster than the FPGA implementation.
도 13a 내지 13j는 바이 큐빅과 이미지 처리 장치(10)를 포함한 5 개의 CNN 기반 SR 방법을 이용하여 복원된 이미지 및 그들의 크롭된 영역을 나타낼 수 있다. 이미지 처리 장치(10)가 가장 적은 수의 파라미터를 사용하지만 결과적인 HR 이미지는 여전히 날카로운(sharp) 모서리를 가지고 잘 지각할 수 있고, 아티팩트(artifact)도 거의 없음을 확인할 수 있다.13A to 13J can represent restored images and their cropped regions using five CNN-based SR methods including bi-cubic and image processing device 10. [ It can be confirmed that the image processing apparatus 10 uses the smallest number of parameters but the resulting HR image can still be perceived with sharp edges and few artifacts.
도 14a 내지 14j는 4K UHD 해상도의 아동(children) 이미지에 대하여 복원된 HR 이미지의 크롭된 영역을 나타낼 수 있다. 이미지 처리 장치(10)와 다른 CNN 기반 SR 방법의 시각적 품질은 유사함을 확인할 수 있다.FIGS. 14A through 14J may represent cropped regions of the reconstructed HR image for children images of 4K UHD resolution. It can be confirmed that the visual quality of the image processing apparatus 10 and other CNN-based SR methods are similar.
도 15는 SR 하드웨어를 FPGA로 구현한 예를 나타낸다.15 shows an example in which SR hardware is implemented as an FPGA.
도 15를 참조하면, FPGA 상에 구현된 이미지 처리 장치(10)의 프로토 타입을 확인할 수 있다. 표 6은 Lee, Yang, 이전의 슈퍼-보간(Super-Interpolation(SI)) 및 이미지 처리 장치(10)의 구현의 세부 사항을 나타낼 수 있다.Referring to FIG. 15, the prototype of the image processing apparatus 10 implemented on the FPGA can be confirmed. Table 6 shows the details of Lee, Yang, previous Super-Interpolation (SI) and implementation of the image processing apparatus 10. [
* 2 개 입력 NAND 게이트는 하나의 등가 게이트로 카운팅됨.* Two input NAND gates are counted as one equivalent gate.
Lee 등은 30fps에서 HD 및 FHD 스트림으로부터 4K UHD 비디오 스트림을 얻을 수 샤프닝(sharpening) 알고리즘을 사용하여 라그랑즈(Lagrange) 보간 방법을 사용하는 하드웨어를 제시했다.Lee et al. Presented hardware using a Lagrange interpolation method using a sharpening algorithm to obtain a 4K UHD video stream from HD and FHD streams at 30 fps.
Yang의 HW 아키텍처는 ANR(Anchor Neighborhood Regression)을 기반으로 하여 사전(dictionary)을 이용하여 고주파 패치를 생성하기 위한 타겟 해상도의 중간 이미지를 요구하며 60 fps에서 FHD를 얻을 수 있다.Yang's HW architecture is based on Anchor Neighborhood Regression (ANR), which uses a dictionary to obtain intermediate images at a target resolution for generating high-frequency patches and obtains FHD at 60 fps.
기계 학습 기반 SI HW 아키텍처는 중간 이미지를 필요로 하지 않고 고주파 복원을 통해 HR 이미지를 직접 복원하는 엣지 방향 분석을 이용한 선형 매핑을 기반으로 할 수 있다.The machine learning based SI HW architecture can be based on linear mapping using edge orientation analysis, which directly restores the HR image through high frequency reconstruction without the need for intermediate images.
이미지 처리 장치(10)는 FPGA의 시스템 베릴로그(System Verilog)를 이용하여 구현될 수 있다. 이미지 처리 장치(10)의 출력 클럭 속도는 입력 클럭 속도의 4배일 수 있다. 이는 4K UHD 이상의 FHD 작동 주파수 비율이 대개 1/4 이기 때문일 수 있다.The image processing apparatus 10 may be implemented using a system verilog of the FPGA. The output clock speed of the image processing apparatus 10 may be four times the input clock speed. This may be because the ratio of FHD operating frequencies above 4K UHD is usually 1/4.
이미지 처리 장치(10)는 클럭 사이클 당 4 픽셀을 처리하여 60 fps의 4K UHD 비디오 스트림을 지원할 수 있고, 150MHz 타겟 작동 주파수와 Vivado Design Suite 2015.4의 합성 단계 및 P & R(place & routing) 단계에 적용되는 제한 조건에 따라 구현될 수 있다.The image processing apparatus 10 may process 4 pixels per clock cycle to support a 4K UHD video stream of 60 fps and may be used in combination with the 150MHz target operating frequency and the synthesis and P & R steps of the Vivado Design Suite 2015.4 May be implemented according to the constraints applied.
또한, 구현된 SR 하드웨어를 검증하기 위해 FHD 입력 및 4K UHD 출력 비디오 인터페이스를 지원하기 위해 Xilinx Kintex UltraScale FPGA KCU105 평가 보드 및 TED의 HDMI 2.0 확장 카드가 사용될 수 있다.In addition, Xilinx Kintex UltraScale FPGA KCU105 evaluation board and TED's HDMI 2.0 expansion card can be used to support FHD input and 4K UHD output video interface to validate implemented SR hardware.
이미지 처리 장치(10)는 두 가지 유형의 SR HW가 제공될 수 있다. 두 가지 유형의 SR HW는 특징맵 압축이 적용되지 않은 유형-1 및 특징맵 압축이 적용된 유형-2일 수 있다.The image processing apparatus 10 may be provided with two types of SR HWs. Both types of SR HW may be type-1 with no feature map compression applied and type-2 with feature map compression applied.
유형-1에서는 XCKU040 FPGA 장치에서 총 슬라이스 LUT(Slice LUTs)의 45.38% 및 총 슬라이스 레지스터(Slice Registers)의 21.08%를 차지하는 110K 슬라이스 LUT 및 102K 슬라이스 레지스터가 사용될 수 있다.In type-1, a 110K slice LUT and a 102K slice register can be used that occupy 45.38% of the total slice LUTs and 21.08% of the total slice registers in the XCKU040 FPGA device.
유형-2에서는 총 슬라이스 LUT의 62.6% 및 총 슬라이스 레지스터의 24.97%에 해당하는 151K 슬라이스 LUT 및 121K 슬라이스 레지스터가 사용될 수 있다.In Type-2, a 151K slice LUT and a 121K slice register corresponding to 62.6% of the total slice LUT and 24.97% of the total slice register can be used.
또한, 유형-1 및 유형-2는 모두 KCU105 평가 보드의 XCKU040 FPGA 장치에서 1,920 DSP 블록을 최대한 활용할 수 있다.In addition, both Type-1 and Type-2 can take full advantage of the 1,920 DSP block in the XCKU040 FPGA device on the KCU105 evaluation board.
특징맵 압축을 결합함으로써 유형-2는 유형-1의 약 50%의 온칩(onchip) 메모리 사용(예를 들어, FPGA에서의 블록 램)을 줄일 수 있다. 반면, 유형-2는 2 개의 컴프레서(2231) 및 6 개의 디컴프레서(2235)를 구현하기 위해서 약 38% 슬라이스 LUT 및 약 18%의 슬라이스 레지스터를 유형-1에 비하여 더 사용할 수 있다.By combining feature map compression, Type-2 can reduce on-chip memory usage of about 50% of Type-1 (for example, block RAM on an FPGA). On the other hand, type-2 can further use about 38% slice LUT and about 18% slice register in comparison to type-1 to implement two compressors 2231 and six decompressors 2235.
이미지 처리 장치(10)는 비 CNN 기반 SR 방법과 비교하여 더 많은 수의 라인 메모리와 게이트를 필요로 할 수 있지만, 60 fps속도로 실시간으로 상당히 높은 품질의 4K UHD HR 이미지를 복원할 수 있다.The image processing apparatus 10 may require a larger number of line memories and gates as compared to the non-CNN based SR method, but it can recover a fairly high quality 4K UHD HR image in real time at 60 fps.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (28)
- 2차원 픽셀 정보를 수신하는 수신기;A receiver for receiving two-dimensional pixel information;상기 2 차원 픽셀 정보를 라인 단위의 데이터 라인으로 출력하는 적어도 하나의 제1 라인 버퍼;At least one first line buffer for outputting the two-dimensional pixel information as a data line on a line basis;상기 데이터 라인 데이터에 기초하여 컨벌루션 연산을 수행하는 연산기; 및An arithmetic unit for performing a convolution operation based on the data line data; And연산이 수행된 데이터 라인을 출력하는 적어도 하나의 제2 라인 버퍼And at least one second line buffer를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제1항에 있어서,The method according to claim 1,상기 수신기는,The receiver includes:상기 2차원 픽셀 정보의 제1 컬러 데이터를 제2 컬러 데이터로 변환하는 제1 픽셀 정보 변환기A first pixel information converter for converting the first color data of the two-dimensional pixel information into second color data,를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제1항에 있어서,The method according to claim 1,상기 연산이 수행된 데이터 라인의 제2 컬러 데이터를 제1 컬러 데이터로 변환하는 제2 픽셀 정보 변환기A second pixel information converter for converting the second color data of the data line on which the operation is performed to first color data,를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 제1항에 있어서,The method according to claim 1,상기 연산기는,The computing unit includes:상기 데이터 라인에 기초하여 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 제1 컨벌루션 연산기;A first convolution operator for generating a feature map by performing a convolution operation based on the data line;상기 특징맵을 적어도 하나의 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을2 차원 형태로 출력하도록 처리하는 특징맵 처리기; 및A feature map processor for storing the feature map in units of at least one line and processing for outputting the feature maps stored in the at least one line unit in a two-dimensional form; And2차원 형태로 출력된 특징맵에 기초하여 컨벌루션 연산을 수행하는 제2 컨벌루션 연산기A second convolution operator for performing a convolution operation based on the feature map output in a two-를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제4항에 있어서,5. The method of claim 4,상기 제1 컨벌루션 연산기는,Wherein the first convolution operator comprises:잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에 구현되는(Residual Block) for learning and outputting a residual signal이미지 처리 장치.Image processing device.
- 제4항에 있어서,5. The method of claim 4,상기 제1 컨벌루션 연산기는,Wherein the first convolution operator comprises:1-D(1-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 1-D 컨벌루션 연산기At least one 1-D convolution operator for performing 1-D (1-dimensional)를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제4항에 있어서,5. The method of claim 4,상기 제1 컨벌루션 연산기는,Wherein the first convolution operator comprises:뎁스 와이즈(depth-wise) 컨벌루션 연산기; 및A depth-wise convolution operator; And상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기A point-wise convolutional arithmetic unit directly connected to the depth-wise convolutional arithmetic unit를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제4항에 있어서,5. The method of claim 4,상기 특징맵 처리기는,Wherein the feature map processor comprises:상기 특징맵을 적어도 하나의 라인 단위로 압축하는 컴프레서(compressor)A compressor for compressing the feature map in units of at least one line,를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제8항에 있어서,9. The method of claim 8,상기 특징맵 처리기는,Wherein the feature map processor comprises:라인 단위로 압축된 특징맵을 저장하는 적어도 하나의 제3 라인 버퍼At least one third line buffer for storing a feature map compressed in units of lines;를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 제9항에 있어서,10. The method of claim 9,상기 특징맵 처리기는,Wherein the feature map processor comprises:상기 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 디컴프레서(decompressor)A decompressor for restoring the feature map compressed in the line unit into a two-dimensional feature map,를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 제4항에 있어서,5. The method of claim 4,상기 제2 컨벌루션 연산기는,Wherein the second convolution operator comprises:2-D(2-dimensional) 컨벌루션 연산을 수행하는 적어도 하나의 2-D 컨벌루션 연산기At least one 2-D convolution operator for performing 2-D (2-dimensional)를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제4항에 있어서,5. The method of claim 4,상기 제2 컨벌루션 연산기는,Wherein the second convolution operator comprises:뎁스 와이즈(depth-wise) 컨벌루션 연산기; 및A depth-wise convolution operator; And상기 뎁스 와이즈 컨벌루션 연산기와 직접적으로 연결된 포인트 와이즈(point-wise) 컨벌루션 연산기A point-wise convolutional arithmetic unit directly connected to the depth-wise convolutional arithmetic unit를 포함하는 이미지 처리 장치.And the image processing apparatus.
- 제4항에 있어서,5. The method of claim 4,상기 연산기는,The computing unit includes:적어도 하나의 컨벌루션 연산 결과를 양자화하는 양자화기A quantizer for quantizing the result of at least one convolution operation;를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 제4항에 있어서,5. The method of claim 4,상기 연산기는,The computing unit includes:컨벌루션 연산에 사용되는 파라미터를 저장하는 가중치 버퍼Weight buffer for storing parameters used for convolution operations를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 2차원 픽셀 정보를 수신하는 단계;Receiving two-dimensional pixel information;상기 2 차원 픽셀 정보를 라인 단위인 적어도 하나의 데이터 라인으로 출력하는 단계;Outputting the two-dimensional pixel information as at least one data line on a line basis;상기 적어도 하나의 데이터 라인에 기초하여 컨벌루션 연산을 수행하는 단계; 및Performing a convolution operation based on the at least one data line; And상기 연산이 수행된 데이터 라인을 출력하는 단계;Outputting the data line on which the operation is performed;를 포함하는 이미지 처리 방법./ RTI >
- 제15항에 있어서,16. The method of claim 15,상기 수신하는 단계는,Wherein the receiving comprises:상기 2차원 픽셀 정보의 제1 컬러 데이터를 제2 컬러 데이터로 변환하는 단계Converting the first color data of the two-dimensional pixel information into second color data를 포함하는 이미지 처리 방법./ RTI >
- 제15항에 있어서,16. The method of claim 15,상기 연산이 수행된 데이터 라인의 제2 컬러 데이터를 제1 컬러 데이터로 변환하는 단계Converting the second color data of the data line on which the operation is performed into first color data를 더 포함하는 이미지 처리 방법.The image processing method further comprising:
- 제15항에 있어서,16. The method of claim 15,상기 수행하는 단계는,Wherein the performing comprises:상기 데이터 라인에 기초하여 제1 컨벌루션 연산을 수행함으로써 특징맵을 생성하는 단계;Generating a feature map by performing a first convolution operation based on the data line;상기 특징맵을 라인 단위로 저장하고, 상기 적어도 하나의 라인 단위로 저장된 특징맵을 2 차원 형태로 출력하도록 상기 특징맵을 처리하는 단계; 및Processing the feature map to store the feature map on a line-by-line basis, and output the feature map stored in the at least one line unit in a two-dimensional form; And2차원 형태로 출력된 특징맵에 기초하여 제2 컨벌루션 연산을 수행하는 단계Performing a second convolution operation based on the feature map output in a two-dimensional form를 포함하는 이미지 처리 방법./ RTI >
- 제18항에 있어서,19. The method of claim 18,상기 제1 컨벌루션 연산은,Wherein the first convolution operation comprises:잔차 신호를 학습하여 출력하도록 하는 잔차 블록(Residual Block) 내에서 수행되는Is performed in a residual block for learning and outputting a residual signal이미지 처리 방법.Image processing method.
- 제18항에 있어서,19. The method of claim 18,상기 생성하는 단계는,Wherein the generating comprises:적어도 한 번의 1-D(1-dimensional) 컨벌루션 연산을 수행하는 단계Performing at least one 1-D (1-dimensional) convolution operation를 포함하는 이미지 처리 방법./ RTI >
- 제18항에 있어서,19. The method of claim 18,상기 생성하는 단계는,Wherein the generating comprises:뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계; 및Performing a depth-wise convolution operation; And상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계Point-wise convolution operation of the result of the depth-wise convolution operation를 포함하는 이미지 처리 방법./ RTI >
- 제18항에 있어서,19. The method of claim 18,상기 처리하는 단계는,Wherein the processing comprises:상기 특징맵을 적어도 하나의 라인 단위로 압축하는 단계Compressing the feature map in units of at least one line;를 포함하는 이미지 처리 방법./ RTI >
- 제22항에 있어서,23. The method of claim 22,상기 처리하는 단계는,Wherein the processing comprises:적어도 하나의 라인 단위로 압축된 특징맵을 저장하는 단계Storing the compressed feature map in at least one line unit를 더 포함하는 이미지 처리 방법.The image processing method further comprising:
- 제23항에 있어서,24. The method of claim 23,상기 처리하는 단계는,Wherein the processing comprises:상기 적어도 하나의 라인 단위로 압축된 특징맵을 2 차원 특징맵으로 복원하는 단계Reconstructing the feature map compressed by the at least one line unit into a two-dimensional feature map를 더 포함하는 이미지 처리 장치.The image processing apparatus further comprising:
- 제18항에 있어서,19. The method of claim 18,상기 제2 컨벌루션 연산을 수행하는 단계는,Wherein performing the second convolution operation comprises:적어도 한 번의 2-D(2-dimensional) 컨벌루션 연산을 수행하는 단계Performing at least one 2-D (2-dimensional) convolution operation를 포함하는 이미지 처리 방법./ RTI >
- 제18항에 있어서,19. The method of claim 18,상기 제2 컨벌루션 연산을 수행하는 단계는,Wherein performing the second convolution operation comprises:뎁스 와이즈(depth-wise) 컨벌루션 연산을 수행하는 단계; 및Performing a depth-wise convolution operation; And상기 뎁스 와이즈 컨벌루션 연산 결과를 직접적으로 포인트 와이즈(point-wise) 컨벌루션 연산하는 단계Point-wise convolution operation of the result of the depth-wise convolution operation를 포함하는 이미지 처리 방법./ RTI >
- 제18항에 있어서,19. The method of claim 18,상기 컨벌루션 연산을 수행하는 단계는,Wherein performing the convolution operation comprises:적어도 하나의 컨벌루션 연산 결과를 양자화하는 단계Quantizing the result of at least one convolution operation를 더 포함하는 이미지 처리 방법.The image processing method further comprising:
- 제18항에 있어서,19. The method of claim 18,상기 컨벌루션 연산을 수행하는 단계는,Wherein performing the convolution operation comprises:컨벌루션 연산에 사용되는 파라미터를 저장하는 단계Storing the parameters used in the convolution operation를 더 포함하는 이미지 처리 방법.The image processing method further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/960,917 US11057585B2 (en) | 2018-01-16 | 2018-12-12 | Image processing method and device using line input and output |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180005783 | 2018-01-16 | ||
KR10-2018-0005783 | 2018-01-16 | ||
KR1020180091483A KR102017996B1 (en) | 2018-01-16 | 2018-08-06 | A method and apparatus of image processing using line input and ouput |
KR10-2018-0091483 | 2018-08-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019143025A1 true WO2019143025A1 (en) | 2019-07-25 |
Family
ID=67301493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2018/015734 WO2019143025A1 (en) | 2018-01-16 | 2018-12-12 | Image processing method and device using line input and output |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2019143025A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298843A (en) * | 2020-02-24 | 2021-08-24 | 中科寒武纪科技股份有限公司 | Data quantization processing method and device, electronic equipment and storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140072097A (en) * | 2011-10-14 | 2014-06-12 | 아나로그 디바이시즈 인코포레이티드 | Dynamically reconfigurable pipelined pre-processor |
KR101703354B1 (en) * | 2009-08-31 | 2017-02-06 | 소니 주식회사 | Image processing device, image processing method, and recording medium |
KR20170047489A (en) * | 2015-10-23 | 2017-05-08 | 삼성전자주식회사 | Apparatus for Processing Images, Method for Processing Images, and Computer Readable Recording Medium |
KR20170125396A (en) * | 2015-04-23 | 2017-11-14 | 구글 엘엘씨 | Architecture for high performance, power efficient, programmable image processing processing |
KR20180001428A (en) * | 2016-06-24 | 2018-01-04 | 한국과학기술원 | Encoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter, and decoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter |
-
2018
- 2018-12-12 WO PCT/KR2018/015734 patent/WO2019143025A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101703354B1 (en) * | 2009-08-31 | 2017-02-06 | 소니 주식회사 | Image processing device, image processing method, and recording medium |
KR20140072097A (en) * | 2011-10-14 | 2014-06-12 | 아나로그 디바이시즈 인코포레이티드 | Dynamically reconfigurable pipelined pre-processor |
KR20170125396A (en) * | 2015-04-23 | 2017-11-14 | 구글 엘엘씨 | Architecture for high performance, power efficient, programmable image processing processing |
KR20170047489A (en) * | 2015-10-23 | 2017-05-08 | 삼성전자주식회사 | Apparatus for Processing Images, Method for Processing Images, and Computer Readable Recording Medium |
KR20180001428A (en) * | 2016-06-24 | 2018-01-04 | 한국과학기술원 | Encoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter, and decoding method and apparatus comprising convolutional neural network(cnn) based in-loop filter |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113298843A (en) * | 2020-02-24 | 2021-08-24 | 中科寒武纪科技股份有限公司 | Data quantization processing method and device, electronic equipment and storage medium |
CN113298843B (en) * | 2020-02-24 | 2024-05-14 | 中科寒武纪科技股份有限公司 | Data quantization processing method, device, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019143026A1 (en) | Image processing method and device using feature map compression | |
WO2020080698A1 (en) | Method and device for evaluating subjective quality of video | |
WO2019143024A1 (en) | Super-resolution method and device using linewise operation | |
WO2020262995A1 (en) | Video signal processing method and device using secondary transform | |
WO2019143027A1 (en) | Image pipeline processing method and device | |
WO2020080765A1 (en) | Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image | |
WO2017065525A2 (en) | Method and device for encoding or decoding image | |
WO2020080827A1 (en) | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same | |
WO2018038554A1 (en) | Method and apparatus for encoding/decoding video signal by using secondary transform | |
WO2013002619A2 (en) | Video encoding method with bit depth adjustment for fixed-point conversion and apparatus therefor, and video decoding method and aparatus therefor | |
WO2017026681A1 (en) | Inter prediction method and apparatus in video coding system | |
WO2013157825A1 (en) | Method and device for encoding/decoding image | |
WO2017014585A1 (en) | Method and device for processing video signal using graph-based transform | |
WO2012044076A2 (en) | Video encoding method and device and decoding method and device | |
WO2017155334A1 (en) | Video coding method and apparatus | |
WO2018124333A1 (en) | Intra prediction mode-based image processing method, and apparatus therefor | |
WO2018131986A1 (en) | Image encoding/decoding method and device | |
WO2020080782A1 (en) | Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof | |
WO2011071325A2 (en) | Method and apparatus for encoding and decoding image by using rotational transform | |
WO2021172834A1 (en) | Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image by using pre-processing | |
EP3868097A1 (en) | Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof | |
EP3811619A1 (en) | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same | |
WO2019143025A1 (en) | Image processing method and device using line input and output | |
WO2016076624A1 (en) | Video signal processing method using graph based transform and device therefor | |
WO2010019002A2 (en) | Method for generating a thumbnail image in an image frame of the h.264 standard |
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: 18900823 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18900823 Country of ref document: EP Kind code of ref document: A1 |