WO2024080623A1 - Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 - Google Patents

Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 Download PDF

Info

Publication number
WO2024080623A1
WO2024080623A1 PCT/KR2023/014500 KR2023014500W WO2024080623A1 WO 2024080623 A1 WO2024080623 A1 WO 2024080623A1 KR 2023014500 W KR2023014500 W KR 2023014500W WO 2024080623 A1 WO2024080623 A1 WO 2024080623A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
neural network
transform
current block
transformation
Prior art date
Application number
PCT/KR2023/014500
Other languages
English (en)
French (fr)
Inventor
딘쿠오칸
김경아
박민수
박민우
최광표
표인지
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220170054A external-priority patent/KR20240050971A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/372,409 priority Critical patent/US20240129546A1/en
Publication of WO2024080623A1 publication Critical patent/WO2024080623A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Definitions

  • This disclosure relates to encoding and decoding of images. More specifically, the present disclosure relates to technology for encoding and decoding images using AI (Artificial Intelligence), for example, a neural network.
  • AI Artificial Intelligence
  • the image is divided into blocks, each block is predicted, and the residual block, which is the difference between the original block and the predicted block, is converted into a converted block. can be obtained, the transform block is quantized, entropy encoded, and transmitted as a bitstream.
  • a residual block can be obtained by inversely transforming a transform block obtained by entropy decoding and dequantization from a transmitted bitstream, and the block can be restored using the prediction block and residual block obtained through prediction.
  • AI Artificial Intelligent
  • An AI-based image decoding method includes obtaining a transform block for a residual block of a current block from a bitstream; Applying the prediction block for the current block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block; Obtaining a residual block by applying the generated transform kernel to the transform block; And it may include restoring the current block using a residual block and a prediction block.
  • An AI-based image decoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain a transform block for the residual block of the current block from the bitstream. At least one processor may apply a prediction block for the current block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block. At least one processor may obtain a residual block by applying the generated transform kernel to the transform block. At least one processor may restore the current block using the residual block and the prediction block.
  • An AI-based image encoding method includes obtaining a residual block based on a prediction block of a current block and an original block of the current block; Applying the prediction block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for a transform block of the residual block; Obtaining a transform block by applying the generated transform kernel to the residual block; and generating a bitstream including the transform block.
  • An AI-based image encoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain a residual block based on the prediction block of the current block and the original block of the current block. At least one processor may apply the prediction block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block of the residual block. At least one processor may obtain a transform block by applying the generated transform kernel to the residual block. At least one processor may generate a bitstream including a transform block.
  • An AI-based image decoding method includes obtaining a transform feature map corresponding to a transform block for a residual block of a current block from a bitstream; Applying the prediction block for the current block, surrounding pixels of the current block, and coding context information to a first neural network to generate a coding context feature map for the transform block; And it may include restoring the current block by applying the transformation feature map and the coding context feature map to the second neural network.
  • An AI-based image decoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain a transform feature map corresponding to a transform block for the residual block of the current block from the bitstream. At least one processor may apply the prediction block for the current block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block. At least one processor may restore the current block by applying the transformation feature map and the coding context feature map to the second neural network.
  • An AI-based image encoding method includes obtaining a residual block based on a prediction block of a current block and an original block of the current block; Applying the prediction block, surrounding pixels of the current block, and coding context information to a first neural network to generate a coding context feature map for the transform block; applying the coding context feature map and the residual block to a second neural network to obtain a transform feature map corresponding to the transform block; and generating a bitstream including the transformed feature map.
  • An AI-based image encoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions. At least one processor may obtain a residual block based on the prediction block of the current block and the original block of the current block. At least one processor may apply the prediction block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block. At least one processor may apply the coding context feature map and the residual block to the second neural network to obtain a transform feature map corresponding to the transform block. At least one processor may generate a bitstream including a transform feature map.
  • 1 is a diagram showing the video encoding and decoding process.
  • Figure 2 is a diagram showing blocks divided from an image according to a tree structure.
  • Figure 3 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 4 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 5 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 6 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 7 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 8 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • Figure 9 is a flowchart of an AI-based image encoding method according to an embodiment of the present disclosure.
  • FIG. 10 is a diagram illustrating the configuration of an AI-based video encoding device according to an embodiment of the present disclosure.
  • FIG 11 is a flowchart of an AI-based video decoding method according to an embodiment of the present disclosure.
  • FIG. 12 is a diagram illustrating the configuration of an AI-based video decoding device according to an embodiment of the present disclosure.
  • Figure 13 is a flowchart of an AI-based image encoding method according to an embodiment of the present disclosure.
  • FIG. 14 is a diagram illustrating the configuration of an AI-based video encoding device according to an embodiment of the present disclosure.
  • Figure 15 is a flowchart of an AI-based video decoding method according to an embodiment of the present disclosure.
  • FIG. 16 is a diagram illustrating the configuration of an AI-based video decoding device according to an embodiment of the present disclosure.
  • FIG. 17 is a diagram for explaining a training method of neural networks used in an AI-based image encoding method and an AI-based image decoding method according to an embodiment of the present disclosure.
  • FIG. 18 is a diagram for explaining a method of training neural networks used in an AI-based image encoding method and an AI-based image decoding method according to an embodiment of the present disclosure.
  • the expression “at least one of a, b, or c” refers to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b and c”, or variations thereof.
  • a component when referred to as “connected” or “connected” to another component, the component may be directly connected or directly connected to the other component, but specifically Unless there is a contrary description, it should be understood that it may be connected or connected through another component in the middle.
  • components expressed as ' ⁇ unit (unit)', 'module', etc. are two or more components combined into one component, or one component is divided into two or more components for each more detailed function. It may be differentiated into.
  • each of the components described below may additionally perform some or all of the functions of other components in addition to the main functions that each component is responsible for, and some of the main functions of each component may be different from other components. Of course, it can also be performed exclusively by a component.
  • 'image or picture' may mean a still image (or frame), a moving image composed of a plurality of consecutive still images, or a video.
  • 'neural network' is a representative example of an artificial neural network model that simulates brain nerves, and is not limited to an artificial neural network model using a specific algorithm.
  • a neural network may also be referred to as a deep neural network.
  • a 'parameter' is a value used in the calculation process of each layer forming a neural network, and can be used, for example, when applying an input value to a predetermined calculation equation.
  • Parameters are values set as a result of training, and can be updated through separate training data as needed.
  • sample' refers to data assigned to a sampling position within one-dimensional or two-dimensional data such as an image, block, or feature data, and is the data to be processed.
  • a sample may include pixels in a two-dimensional image.
  • Two-dimensional data may also be referred to as a 'map'.
  • 'current block' refers to a block that is currently the target of processing.
  • the current block may be a slice, tile, maximum coding unit, coding unit, prediction unit, or transformation unit divided from the current image.
  • 1 is a diagram showing the video encoding and decoding process.
  • the encoding device 110 transmits the bitstream generated by encoding the image to the decoding device 150, and the decoding device 150 receives and decodes the bitstream to restore the image.
  • the prediction encoder 115 outputs a prediction block through inter prediction and intra prediction, and the transform and quantization unit 120 outputs a residual sample of the residual block between the prediction block and the current block. Transform and quantize them and output the quantized transform coefficients.
  • the entropy encoder 125 encodes the quantized transform coefficient and outputs it as a bitstream.
  • the quantized transform coefficient is restored into a residual block including residual samples in the spatial domain through the inverse quantization and inverse transform unit 130.
  • the restored block which is a combination of the prediction block and the residual block, passes through the deblocking filtering unit 135 and the loop filtering unit 140 and is output as a filtered block.
  • the reconstructed image including the filtered block can be used as a reference image for the next input image in the prediction encoder 115.
  • the bitstream received by the decoding device 150 is restored into a residual block including residual samples in the spatial domain through the entropy decoding unit 155 and the inverse quantization and inverse transform unit 160.
  • the prediction block and the residual block output from the prediction decoder 175 are combined to generate a restored block, and the restored block passes through the deblocking filtering unit 165 and the loop filtering unit 170 and is output as a filtered block.
  • the reconstructed image including the filtered block can be used by the prediction decoder 175 as a reference image for the next image.
  • the loop filtering unit 140 of the encoding device 110 performs loop filtering using filter information input according to user input or system settings.
  • the filter information used by the loop filtering unit 140 is transmitted to the decoding device 150 through the entropy encoding unit 125.
  • the loop filtering unit 170 of the decoding device 150 may perform loop filtering based on filter information input from the entropy decoding unit 155.
  • the image is hierarchically divided, and encoding and decoding are performed on blocks divided from the image. Blocks divided from an image will be described with reference to FIG. 2.
  • Figure 2 is a diagram showing blocks divided from an image according to a tree structure.
  • One image 200 may be divided into one or more slices or one or more tiles.
  • One slice may include multiple tiles.
  • One slice or one tile may be a sequence of one or more Maximum Coding Units (Maximum CU).
  • One maximum coding unit may be divided into one or more coding units.
  • a coding unit may be a reference block for determining a prediction mode. In other words, it can be determined whether intra prediction mode or inter prediction mode is applied to each coding unit.
  • the maximum coding unit may be referred to as a maximum coding block, and the coding unit may be referred to as a coding block.
  • the size of the coding unit may be the same as the maximum coding unit or may be smaller than the maximum coding unit. Since the maximum coding unit is a coding unit with the maximum size, it may also be referred to as a coding unit.
  • One or more prediction units for intra-prediction or inter-prediction may be determined from the coding unit.
  • the size of the prediction unit may be the same as the coding unit or may be smaller than the coding unit.
  • one or more transformation units for transformation and quantization may be determined from the coding unit.
  • the size of the conversion unit may be the same as the coding unit or may be smaller than the coding unit.
  • the transformation unit is a reference block for transformation and quantization, and residual samples of the coding unit can be transformed and quantized for each transformation unit within the coding unit.
  • the current block may be a slice, a tile, a maximum coding unit, a coding unit, a prediction unit, or a transformation unit divided from the image 200.
  • the lower block of the current block is a block divided from the current block.
  • the upper block of the current block is a block that partially includes the current block.
  • the upper block may be a picture sequence, picture, slice, or tile.
  • an AI-based video decoding method an AI-based video decoding device, an AI-based video encoding method, and an AI-based video encoding device according to an embodiment will be described.
  • Figures 3 to 5 relate to linear transformation using a transformation kernel learned through a neural network
  • Figures 6 to 8 relate to a non-linear transformation in which the results of transformation and inverse transformation are output through a neural network. It is about transform).
  • Figure 3 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • transform 315 is applied to the residual block 301 of the current block.
  • the residual block 301 represents the difference between the original block of the current block and the prediction block 303 of the current block.
  • the prediction block 303 may be obtained through intra prediction and/or inter prediction. Transformation 315 is performed on the residual block 301 as part of the encoding process.
  • a transformation kernel generation neural network 310 is used to obtain a transformation kernel for performing transformation 315 on the residual block 301.
  • Surrounding pixels 302 of the current block, that is, reference pixels, the prediction block 303 of the current block, and coding context information 304 are input to the transform kernel generation neural network 310, and the transform kernel generation neural network 310 ), the conversion kernel 311 is output.
  • the transform block 320 of the residual block 301 is obtained by matrix multiplication of the residual block 301 and the transform kernel 311.
  • the transform block 320 is quantized, entropy encoded, and transmitted to the decoder as a bitstream.
  • the transform block 320 obtained from the bitstream is entropy decoded and inverse quantized, and then the inverse transform 325 is performed.
  • the inverse transformation kernel generation neural network 330 is used to obtain the inverse transformation kernel for the inverse transformation 325.
  • the surrounding pixels 302 of the current block that is, reference pixels, the prediction block 303 of the current block, and the coding context information 304 are input to the inverse transform kernel generation neural network 330.
  • the inverse transformation kernel 331 is output.
  • the residual block 335 is obtained by matrix multiplication of the inverse quantized residual block and the inverse transformation kernel 331. By adding (340) the residual block (335) and the prediction block (303), the restored block (345) of the current block is obtained.
  • the transformation kernel generation neural network 310 and the inverse transformation kernel generation neural network 330 may be referred to as a forward kernel generation neural network and a backward kernel generation neural network, respectively.
  • the transform 315 and the inverse transform 325 may be referred to as forward transform and backward transform, respectively.
  • the combination of the transform kernel generation neural network 310 and the inverse transform kernel generation neural network 330 does not provide fixed and predetermined convolution kernels, but can adaptively learn convolution kernels specialized for a given task. .
  • the forward kernel generation neural network and the backward kernel generation neural network may be implemented using convolutional neural networks, recurrent neural networks, or other types of neural network structures.
  • the conversion kernel is trained to have a good balance in cost between accuracy and bit rate, and the accuracy in terms of cost can guarantee the accuracy of the restored block.
  • Coding context information used in FIGS. 3 to 8 may include a quantization parameter of the current block, a partition tree structure of the current block, a partition structure of neighboring pixels, a partition type of the current block, and a partition type of neighboring pixels.
  • the coding context information may include context on how strong the degree of compression is to balance bitrate and quality, and context on the current coding state to provide statistical information on residual blocks.
  • the transformation kernel and the inverse transformation kernel can be used as a single dense kernel for efficient transformation in terms of rate-distortion.
  • the size of the residual block 301 is MxN
  • the surrounding pixels 302 of the current block, the prediction block 303 of the current block, and the coding context information 304 are used as input to create a transform kernel.
  • the transformation kernel 311 output from the generating neural network 310 is MNxMN.
  • the residual block 301 is transformed into a vector form and rearranged in the form of MNx1.
  • the MNxMN transform kernel 311 and the MNx1 residual block 301 output a vector-type transform block 320 including the MNx1 transform coefficients through M2N2 multiplication.
  • the transform block 320 is quantized, entropy encoded, and transmitted to the decoder as a bitstream.
  • the transform block 320 obtained from the bitstream is entropy decoded and dequantized.
  • the inverse transformation kernel 331 output from the inverse transformation kernel generation neural network 330 using the surrounding pixels 302 of the current block, the prediction block 303 of the current block, and the coding context information 304 as input is MNxMN.
  • the vector-type transformation block 320 which includes the inverse transformation kernel 331 of MNxMN and the transformation coefficients of MNx1, obtains a residual block 335 obtained by inverse transformation 325 of MNx1 through M2N2 multiplication.
  • the residual block 335 of MNx1 is rearranged in the form of a block of MxN.
  • the restored block 345 of the MxN current block is obtained by adding (340) the MxN residual block 335 and the MxN prediction block 303.
  • the transformation kernel and the inverse transformation kernel may be separable (e.g., Kronecker kernel) for efficient transformation in terms of calculation.
  • the transform kernel 311 output from the generative neural network 310 includes two transform kernels: an MxM left transform kernel and an NxN right transform kernel. For the transformation, matrix multiplication of the MxM left transform kernel, the MxN residual block 301, and the NxN right transform kernel are performed.
  • M2 multiplication and N2 multiplication are performed instead of M2N2 multiplication, so the size of the multiplication calculation is relatively small, so when two conversion kernels are used, in terms of calculation It's efficient.
  • MxN transformation block 320 is obtained.
  • the transform block 320 is quantized, entropy encoded, and transmitted to the decoder as a bitstream.
  • the transform block 320 obtained from the bitstream is entropy decoded and dequantized.
  • the inverse transform kernel 331 output from the neural network 330 generates an inverse transform kernel using the surrounding pixels 302 of the current block, the prediction block 303 of the current block, and the coding context information 304 as input.
  • the inverse transform kernel 331 output from the neural network 330 is the left inverse transform of MxM. It contains two inversion kernels: a kernel and an NxN right inversion kernel.
  • a kernel For the inverse transformation, matrix multiplication of the MxM left inverse transform kernel, the MxN transform block 320, and the NxN right inverse transform kernel are performed.
  • an MxN inverse-transformed (325) residual block (335) is obtained.
  • the restored block 345 of the MxN current block is obtained by adding (340) the MxN residual block 335 and the MxN prediction block 303.
  • one transform kernel may be used on the encoding side, and two separable transform kernels may be used on the decoding side.
  • two separable transform kernels may be used on the encoding side, and one transform kernel may be used on the decoding side.
  • the training method of the neural networks used in FIG. 3 is described later in FIG. 17.
  • Figure 4 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • transform 415 is applied to the residual block 401 of the current block.
  • the residual block 401 represents the difference between the original block of the current block and the prediction block 403 of the current block. Transformation 415 is performed on the residual block 401 as part of the encoding process.
  • a transform kernel generation neural network 410 is used to obtain a transform kernel for transform 415 of the residual block 401.
  • Surrounding pixels 402 of the current block, that is, reference pixels, the prediction block 403 of the current block, and coding context information 404 are input to the transform kernel generation neural network 410, and the transform kernel generation neural network 410 ), the conversion kernel 411 is output.
  • a transform block 420 of the residual block is obtained by matrix multiplication of the residual block 401 and the transform kernel 411.
  • the transform block 420 is quantized, entropy encoded, and transmitted to the decoder as a bitstream.
  • the transform block 420 obtained from the bitstream is entropy decoded and inverse quantized, and then the inverse transform 425 is performed.
  • a linear inversion kernel 430 is used to inverse transform 425 of the inverse quantized residual block.
  • the linear inverse transform kernel 430 may be one of a plurality of fixed transform kernels such as a discrete cosine transform (DCT) type or a discrete sine transform (DST) type used in conventional codec standards.
  • the inversely transformed residual block 435 is obtained by matrix multiplication of the inversely quantized residual block and the linear inverse transformation kernel 430.
  • the restored block 445 of the current block is obtained by adding (440) the residual block (435) and the prediction block (403).
  • Figure 5 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • transformation 515 is performed on the residual block 501 of the current block.
  • the residual block 501 represents the difference between the original block of the current block and the prediction block 503 of the current block. Transformation 515 is performed on the residual block 501 as part of the encoding process.
  • a linear transformation kernel 510 is used for transformation 515 of the residual block 501.
  • the linear transformation kernel 510 may be one of a plurality of fixed transformation kernels such as DCT type and DST type used in conventional codec standards.
  • a transformation block 520 of the transformed residual block 515 is obtained by matrix multiplication of the residual block 501 and the linear transformation kernel 510.
  • the transform block 520 is quantized, entropy-encoded, and transmitted to the decoder as a bitstream.
  • the transform block 520 obtained from the bitstream is entropy decoded and inverse quantized, and then the inverse transform 525 is performed.
  • the inverse transformation kernel generation neural network 530 is used to obtain the inverse transformation kernel for the inversion 525.
  • the surrounding pixels 502 of the current block that is, reference pixels, the prediction block 503 of the current block, and coding context information 504 are input to the inverse transform kernel generation neural network 530.
  • the inverse transformation kernel 531 is output.
  • the inversely transformed residual block 535 is obtained by matrix multiplication of the inversely quantized residual block and the inverse transformation kernel 531.
  • the restored block 545 of the current block is obtained by adding 540 the residual block 535 and the prediction block 503.
  • Figure 6 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • transformation is applied to the residual block 601 of the current block.
  • the residual block 601 represents the difference between the original block of the current block and the prediction block 603 of the current block.
  • a transformation neural network 615 and a coding context neural network 610 are used to transform the residual block 601.
  • the surrounding pixels 602 of the current block, that is, reference pixels, the prediction block 603 of the current block, and coding context information 604 are input to the coding context neural network 610, and are input from the coding context neural network 610.
  • a coding context feature map 611 is output.
  • the coding context feature map 611 and the residual block 601 are input to the transformation neural network 615 to obtain the transformation feature map 620.
  • the transformation feature map 620 is quantized, entropy-encoded, and transmitted to the decoder as a bitstream.
  • the transformed feature map 620 obtained from the bitstream is entropy decoded and inverse quantized.
  • an inverse transformation neural network 625 and a coding context neural network 630 are used for inverse transformation.
  • the surrounding pixels 602 of the current block, that is, reference pixels, the prediction block 603 of the current block, and the coding context information 604 are input to the coding context neural network 630, and are input from the coding context neural network 630.
  • a coding context feature map 631 is output.
  • the inverse quantized transformation feature map 620 and the coding context feature map 631 are input to the inverse transformation neural network 625, and the inverse transformation residual block 635 is obtained.
  • the restored block 645 of the current block is obtained.
  • the residual block 601 has a size of MxN.
  • the coding context feature map 611 and the residual block 601 are input to the transform neural network 615, and the transform neural network 615 generates a transform feature map 620 for the transform coefficient of the residual block 601 with a size of M2xN2XC2. Outputs .
  • the transformation feature map 620 is quantized, entropy-encoded, and transmitted to the decoding side as a bitstream.
  • the transformed feature map 620 obtained from the bitstream is entropy decoded and inverse quantized.
  • the inverse quantized transformation feature map 620 and the coding context feature map 631 are input to the inverse transformation neural network 625, and an inverse residual block 635 of size MxN is obtained.
  • an inverse residual block 635 of size MxN is obtained.
  • M, M1, M2, M3 do not have to be the same and can be different values
  • N, N1, N2, N3 do not have to be the same and can be different values
  • C1, C2, C3 do not have to be the same and can be different values. It can be a value.
  • the transformation feature map 620 output from the transformation neural network 615 needs to be limited in size because it is transmitted as a bitstream. Therefore, the transformation neural network 615 is a neural network trained so that the size of the output transformation feature map 620 is smaller than the input information in order to reduce the bit rate, and the inverse transformation neural network 625 is a neural network that outputs the transformation feature map 620 as input. This is a neural network trained to restore data from the map 620 and output a residual block 635.
  • the coding context neural network 610 for transformation is a neural network that outputs information essential for transformation from the surrounding pixels 602 of the current block, the prediction block 603 of the current block, and the coding context information 604 in the form of a feature map.
  • the coding context neural network 630 for inverse transformation outputs information essential for inverse transformation from the surrounding pixels 602 of the current block, the prediction block 603 of the current block, and the coding context information 604 in the form of a feature map. It could be a neural network that does.
  • the coding context neural network 610 for transformation converts some information among the surrounding pixels 602 of the current block, the prediction block 603 of the current block, and the coding context information 604 without any processing.
  • the coding context neural network 630 for inverse transformation transfers some information among the surrounding pixels 602 of the current block, the prediction block 603 of the current block, and the coding context information 604 without any processing. It can be passed as is to be input to the inverse transformation neural network 625.
  • the output of the transform neural network 615 may be a transform feature map 620 for the transform coefficient that was quantized after transform
  • the output of the inverse transform neural network 625 may be a residual block 635 that was inversely quantized and then inverted. That is, the transformation neural network 615 may be a neural network in which transformation and quantization are performed together, and the inverse transformation neural network 625 may be a neural network in which inverse quantization and inverse transformation are performed together.
  • the size of the residual block 601 is MxN
  • the surrounding pixels 602 of the current block, the prediction block 603 of the current block, and the coding context information 604 are used as input to determine the coding context.
  • the coding context feature map 611 for transformation output from the neural network 610 is M1xN1xC1.
  • the coding context feature map 611 and the residual block 601 are input to the transform neural network 615 to obtain a transform feature map 620 for the quantized transform coefficient of the residual block 601 of M2xN2XC2.
  • the transformation feature map 620 is entropy encoded and delivered to the decoder as a bitstream.
  • the transformed feature map 620 obtained from the bitstream is entropy decoded.
  • the entropy-decoded transformation feature map 620 and coding context feature map 631 are input to the inverse transformation neural network 625, are inversely quantized, and an inversely transformed residual block 635 of size MxN is obtained.
  • a restored block 645 of size MxN of the current block is obtained.
  • M, M1, M2, M3 do not have to be the same and can be different values
  • N, N1, N2, N3 do not have to be the same and can be different values
  • C1, C2, C3 do not have to be the same and can be different values. It can be a value.
  • Figure 7 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • the transformation is applied to the residual block 701 of the current block.
  • the residual block 701 represents the difference between the original block of the current block and the prediction block 703 of the current block. Transformation is performed on the residual block 701 as part of the encoding process.
  • a transformation neural network 715 and a coding context neural network 710 are used to transform the residual block 701.
  • the surrounding pixels 702 of the current block, that is, reference pixels, the prediction block 703 of the current block, and coding context information 704 are input to the coding context neural network 710, and are input from the coding context neural network 710.
  • a coding context feature map 711 is output.
  • the coding context feature map 711 and the residual block 701 are input to the transform neural network 715 to obtain a transform feature map 720 for the transform coefficient of the residual block 701.
  • the transformation feature map 720 is quantized, entropy-encoded, and transmitted to the decoder as a bitstream.
  • the transformed feature map 720 obtained from the bitstream is entropy decoded and inverse quantized.
  • an inverse transformation neural network 725 and a coding context neural network 730 are used for inverse transformation.
  • the surrounding pixels 702 of the current block, that is, reference pixels, the prediction block 703 of the current block, and coding context information 704 are input to the coding context neural network 730, and are input from the coding context neural network 730.
  • a coding context feature map 731 is output.
  • the inverse quantized transform feature map and the coding context feature map 731 are input to the inverse transform neural network 725 to obtain the restored block 745 of the current block.
  • the transformation feature map 720 output from the transformation neural network 715 needs to be limited in size because it is transmitted as a bitstream. Therefore, the transformation neural network 715 is a neural network trained so that the size of the output transformation feature map 720 is smaller than the input information in order to reduce the bit rate, and the inverse transformation neural network 725 is a neural network that outputs the transformation feature map 720 as input. It is a neural network trained to restore data from the map 720 and output a restoration block 745.
  • the coding context neural network 710 for transformation is a neural network that outputs information essential for transformation from the surrounding pixels 702 of the current block, the prediction block 703 of the current block, and the coding context information 704 in the form of a feature map.
  • the coding context neural network 730 for inverse transformation outputs information essential for inverse transformation from the surrounding pixels 702 of the current block, the prediction block 703 of the current block, and the coding context information 704 in the form of a feature map. It could be a neural network that does.
  • the coding context neural network 710 for transformation converts some information among the surrounding pixels 702 of the current block, the prediction block 703 of the current block, and the coding context information 704 without any processing.
  • the coding context neural network 730 for inverse transformation transfers some information among the surrounding pixels 702 of the current block, the prediction block 703 of the current block, and the coding context information 704 without any processing. It can be passed as is to be input to the inverse transformation neural network 725.
  • the output of the transform neural network 715 may be a transform feature map 720 for the transform coefficient that has been quantized after transformation
  • the output of the inverse transform neural network 725 may be a restoration block 745 that has been inversely quantized and then inversely transformed. That is, the transformation neural network 715 may be a neural network in which transformation and quantization are performed together, and the inverse transformation neural network 725 may be a neural network in which inverse quantization and inverse transformation are performed together.
  • the residual block 701 of the current block which is the difference between the original block of the current block and the prediction block 703 of the current block, becomes the target of transformation.
  • a transformation neural network 715 and a coding context neural network 710 are used to transform the residual block 701.
  • the surrounding pixels 702 of the current block that is, reference pixels, the prediction block 703 of the current block, and coding context information 704 are input to the coding context neural network 710, and are input from the coding context neural network 710.
  • a coding context feature map 711 is output.
  • the coding context feature map 711 and the residual block 701 are input to the transform neural network 715 to obtain a transform feature map 720 for the quantized transform coefficient of the residual block 701.
  • the transformation feature map 720 is entropy encoded and delivered to the decoder as a bitstream.
  • the transformed feature map 720 obtained from the bitstream is entropy decoded.
  • an inverse transformation neural network 725 and a coding context neural network 730 are used for inverse transformation.
  • the surrounding pixels 702 of the current block, that is, reference pixels, the prediction block 703 of the current block, and coding context information 704 are input to the coding context neural network 730, and are input from the coding context neural network 730.
  • a coding context feature map 731 is output.
  • the entropy-decoded transformation feature map and coding context feature map 731 are input to the inverse transformation neural network 725, and the restoration block 745 of the current block is obtained.
  • Figure 8 is a diagram for explaining an AI-based video encoding and decoding process according to an embodiment of the present disclosure.
  • the transformation is applied to the residual block 801 of the current block.
  • the residual block 801 represents the difference between the original block of the current block and the prediction block 803 of the current block. Transformation is performed on the residual block 801 as part of the encoding process.
  • a transformation neural network 815 and a coding context neural network 810 are used to transform the residual block 801.
  • the surrounding pixels 802 of the current block, that is, reference pixels, the prediction block 803 of the current block, and the coding context information 804 are input to the coding context neural network 810, and are input from the coding context neural network 810.
  • a coding context feature map 811 is output.
  • the coding context feature map 811 and the residual block 801 are input to the transformation neural network 815 to obtain the transformation feature map 820.
  • the transformation feature map 820 is quantized, entropy-encoded, and transmitted to the decoder as a bitstream.
  • the transformed feature map 820 obtained from the bitstream is entropy decoded and inverse quantized.
  • an inverse transformation neural network 825 and a coding context neural network 830 are used for inverse transformation.
  • the surrounding pixels 802 of the current block, that is, reference pixels, the prediction block 803 of the current block, and coding context information 804 are input to the coding context neural network 830, and are input from the coding context neural network 830.
  • a coding context feature map 831 is output.
  • the inverse quantized transform feature map and the coding context feature map 831 are input to the inverse transform neural network 825 to obtain a restored block of the current block and an extended restored block 845 including reference pixels of the current block.
  • An extended reconstruction block 845 including the reconstruction block of the current block and the reference pixels of the current block is obtained, which may help the deblocking filter process. In other words, the results of deblocking filtering can be better.
  • the transformation feature map 820 output from the transformation neural network 815 needs to be limited in size because it is transmitted as a bitstream. Therefore, the transformation neural network 815 is a neural network trained so that the size of the output transformation feature map 820 is smaller than the input information in order to reduce the bit rate, and the inverse transformation neural network 825 is a neural network that outputs the transformation feature map 820 as input. It is a neural network trained to restore data from the map 820 and output an extended reconstruction block 845 including a reconstruction block of the current block and reference pixels of the current block.
  • the coding context neural network 810 for transformation is a neural network that outputs information essential for transformation from the surrounding pixels 802 of the current block, the prediction block 803 of the current block, and the coding context information 804 in the form of a feature map.
  • the coding context neural network 830 for inverse transformation outputs information essential for inverse transformation from the surrounding pixels 802 of the current block, the prediction block 803 of the current block, and the coding context information 804 in the form of a feature map. It could be a neural network that does.
  • the coding context neural network 810 for transformation converts some information among the surrounding pixels 802 of the current block, the prediction block 803 of the current block, and the coding context information 804 without any processing.
  • the coding context neural network 830 for inverse transformation transfers some information among the surrounding pixels 802 of the current block, the prediction block 803 of the current block, and the coding context information 804 without any processing. It can be passed as is to be input to the inverse transformation neural network 825.
  • the output of the transform neural network 815 is a transform feature map 820 for the transform coefficient that has been quantized after transform
  • the output of the inverse transform neural network 825 can be an extended reconstruction block 845 that has been dequantized and then inverted.
  • the transformation neural network 815 may be a neural network in which transformation and quantization are performed together
  • the inverse transformation neural network 825 may be a neural network in which inverse quantization and inverse transformation are performed together.
  • the residual block 801 of the current block which is the difference between the original block of the current block and the prediction block 803 of the current block, becomes the target of transformation.
  • a transformation neural network 815 and a coding context neural network 810 are used to transform the residual block 801.
  • the surrounding pixels 802 of the current block that is, reference pixels, the prediction block 803 of the current block, and the coding context information 804 are input to the coding context neural network 810, and are input from the coding context neural network 810.
  • a coding context feature map 811 is output.
  • the coding context feature map 811 and the residual block 801 are input to the transform neural network 815 to obtain a transform feature map 820 for the quantized transform coefficient of the residual block 801.
  • the transformation feature map 820 is entropy encoded and transmitted to the decoder as a bitstream.
  • the transformed feature map 820 obtained from the bitstream is entropy decoded.
  • an inverse transformation neural network 825 and a coding context neural network 830 are used for inverse transformation.
  • the surrounding pixels 802 of the current block, that is, reference pixels, the prediction block 803 of the current block, and coding context information 804 are input to the coding context neural network 830, and are input from the coding context neural network 830.
  • a coding context feature map 831 is output.
  • the entropy decoded transform feature map and coding context feature map 831 are input to the inverse transform neural network 825 to obtain a restored block of the current block and an extended restored block 845 including reference pixels of the current block.
  • Figure 9 is a flowchart of an AI-based image encoding method according to an embodiment of the present disclosure.
  • the AI-based image encoding apparatus 1000 obtains a residual block based on the prediction block of the current block and the original block of the current block.
  • the residual block may represent the difference between the original block and the prediction block of the current block.
  • the original block may be part of an image that the AI-based encoding device 1000 wants to encode or decode, and a prediction block is generated for the original block based on surrounding blocks to estimate what the original block will look like.
  • the residual block may be the value obtained by subtracting the prediction block from the original block to indicate the difference between the actual content in the prediction block and the original block.
  • step S930 the AI-based image encoding apparatus 1000 applies the prediction block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block of the residual block.
  • step S950 the AI-based image encoding device 1000 obtains a transform block by applying the generated transform kernel to the residual block.
  • the transformation may be performed to reduce the amount of data required to represent the original block.
  • the generated transform kernel may include a left transform kernel applied to the left side of the residual block and a right transform kernel applied to the right side of the residual block.
  • step S970 the AI-based image encoding apparatus 1000 generates a bitstream including a transform block.
  • the transform block may be inversely transformed by a neural network-based transform kernel or inversely transformed by one linear transform kernel among a plurality of predetermined linear transform kernels during the image decoding process.
  • FIG. 10 is a diagram illustrating the configuration of an AI-based video encoding device according to an embodiment of the present disclosure.
  • the AI-based image encoding apparatus 1000 may include a residual block acquisition unit 1010, a transformation kernel generation unit 1020, a transformation unit 1030, and a generation unit 1040.
  • the residual block acquisition unit 1010, the transformation kernel generation unit 1020, the transformation unit 1030, and the generation unit 1040 may be implemented with a processor.
  • the residual block acquisition unit 1010, the conversion kernel generation unit 1020, the conversion unit 1030, and the generation unit 1040 may operate according to instructions stored in the memory.
  • the residual block acquisition unit 1010, the conversion kernel generation unit 1020, the conversion unit 1030, and the generation unit 1040 are implemented with a dedicated processor, an application processor (AP), or a central processing unit (CPU).
  • AP application processor
  • CPU central processing unit
  • it may be implemented through a combination of a general-purpose processor such as a GPU (graphic processing unit) and software.
  • a dedicated processor it may include a memory for implementing an embodiment of the present disclosure, or a memory processing unit for using an external memory.
  • the residual block acquisition unit 1010, the transformation kernel generation unit 1020, the transformation unit 1030, and the generation unit 1040 may be implemented with a plurality of processors.
  • the residual block acquisition unit 1010, the conversion kernel generation unit 1020, the conversion unit 1030, and the generation unit 1040 are implemented as a combination of dedicated processors or a plurality of general purpose processors such as AP, CPU, or GPU. It may also be implemented through a combination of processors and software.
  • the processor may include a processor dedicated to artificial intelligence.
  • an artificial intelligence-specific processor may be composed of a processor and a separate chip.
  • the residual block acquisition unit 1010 acquires a residual block based on the prediction block of the current block and the original block of the current block.
  • the transform kernel generator 1020 applies the prediction block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block of the residual block.
  • the transform unit 1030 obtains a transform block by applying the generated transform kernel to the residual block.
  • the generator 1040 generates a bitstream including a transform block.
  • the bitstream may be transmitted to the AI-based video decoding device 1200.
  • FIG 11 is a flowchart of an AI-based video decoding method according to an embodiment of the present disclosure.
  • step S1110 the AI-based image encoding apparatus 1200 obtains a transform block for the residual block of the current block from the bitstream.
  • the transform block may be a block transformed by a neural network-based transform kernel or a block transformed by one linear transform kernel among a plurality of predetermined linear transform kernels.
  • step S1130 the AI-based image encoding device 1200 inputs the prediction block for the current block, surrounding pixels of the current block, and coding context information into a neural network, obtains a transformation kernel as the output of the neural network, and obtains a transformation block. Generate the conversion kernel for .
  • the coding context information includes at least one of a quantization parameter of the current block, a partition tree structure of the current block, a partition structure of the neighboring pixels, a partition type of the current block, and a partition type of the neighboring pixels. can do.
  • step S1150 the AI-based image encoding device 1200 applies the generated transform kernel to the transform block to obtain a residual block.
  • the generated transform kernel may include a left transform kernel applied to the left side of the transform block and a right transform kernel applied to the right side of the transform block.
  • step S1170 the AI-based image encoding device 1200 restores the current block using the residual block and the prediction block.
  • FIG. 12 is a diagram illustrating the configuration of an AI-based video decoding device according to an embodiment of the present disclosure.
  • the AI-based image decoding device 1200 may include an acquisition unit 1210, an inverse transformation kernel generation unit 1220, an inverse transformation unit 1230, and a restoration unit 1240.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 may be implemented with a processor.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 may operate according to instructions stored in the memory.
  • Figure 12 shows the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 separately.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, The inverse transform unit 1230 and the restoration unit 1240 may be implemented through one processor.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 are implemented with a dedicated processor, an application processor (AP), a central processing unit (CPU), or a GPU. It can also be implemented through a combination of a general-purpose processor, such as a graphic processing unit, and software.
  • a dedicated processor it may include a memory for implementing an embodiment of the present disclosure, or a memory processing unit for using an external memory.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 may be implemented with a plurality of processors.
  • the acquisition unit 1210, the inverse transformation kernel generation unit 1220, the inverse transformation unit 1230, and the restoration unit 1240 are implemented as a combination of dedicated processors or a plurality of general-purpose processors such as AP, CPU, or GPU. It can also be implemented through a combination of and software.
  • the processor may include a processor dedicated to artificial intelligence.
  • an artificial intelligence-specific processor may be composed of a processor and a separate chip.
  • the acquisition unit 1210 obtains a transform block for the residual block of the current block from the bitstream.
  • a bitstream can be generated and transmitted from the AI-based video encoding device 1000.
  • the inverse transform kernel generator 1220 generates a transform kernel for the transform block by applying the prediction block for the current block, surrounding pixels of the current block, and coding context information to a neural network.
  • the inverse transform unit 1230 applies the generated transform kernel to the transform block to obtain a residual block.
  • the restoration unit 1240 restores the current block using the residual block and prediction block.
  • Figure 13 is a flowchart of an AI-based image encoding method according to an embodiment of the present disclosure.
  • step S1310 the AI-based image encoding device 1400 obtains a residual block based on the prediction block of the current block and the original block of the current block.
  • step S1330 the AI-based image encoding apparatus 1400 applies the prediction block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block.
  • step S1350 the AI-based image encoding device 1400 inputs a coding context feature map and a residual block into a second neural network, obtains a transform feature map as an output of the second neural network, and obtains the transform feature corresponding to the transform block. Obtain the map.
  • the second neural network may output a transform feature map for the quantized transform coefficient.
  • step S1370 the AI-based image encoding device 1400 generates a bitstream including a transformed feature map.
  • FIG. 14 is a diagram illustrating the configuration of an AI-based video encoding device according to an embodiment of the present disclosure.
  • the AI-based image encoding device 1400 may include a residual block acquisition unit 1410, a coding context feature map generation unit 1420, a transformation unit 1430, and a generation unit 1440. there is.
  • the residual block acquisition unit 1410, the coding context feature map generation unit 1420, the conversion unit 1430, and the generation unit 1440 may be implemented with a processor.
  • the residual block acquisition unit 1410, the coding context feature map generation unit 1420, the conversion unit 1430, and the generation unit 1440 may operate according to instructions stored in the memory.
  • the map creation unit 1420, the conversion unit 1430, and the creation unit 1440 may be implemented through one processor.
  • the residual block acquisition unit 1410, the coding context feature map generation unit 1420, the conversion unit 1430, and the generation unit 1440 are implemented with a dedicated processor, an application processor (AP), or a central processing unit (CPU). It may also be implemented through a combination of a general-purpose processor such as a unit or GPU (graphic processing unit) and software.
  • a dedicated processor it may include a memory for implementing an embodiment of the present disclosure, or a memory processing unit for using an external memory.
  • the residual block acquisition unit 1410, the coding context feature map generation unit 1420, the conversion unit 1430, and the generation unit 1440 may be implemented with a plurality of processors.
  • the residual block acquisition unit 1410, the coding context feature map generation unit 1420, the conversion unit 1430, and the generation unit 1440 are implemented as a combination of dedicated processors or multiple processors such as AP, CPU, or GPU. It can also be implemented through a combination of general-purpose processors and software.
  • the processor may include a processor dedicated to artificial intelligence.
  • an artificial intelligence-specific processor may be composed of a processor and a separate chip.
  • the residual block acquisition unit 1410 acquires a residual block based on the prediction block of the current block and the original block of the current block.
  • the coding context feature map generator 1420 applies the prediction block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block.
  • the transform unit 1430 applies the coding context feature map and the residual block to the second neural network to obtain a transform feature map corresponding to the transform block.
  • the generator 1440 generates a bitstream including a transformed feature map.
  • the bitstream may be transmitted to the AI-based video decoding device 1600.
  • Figure 15 is a flowchart of an AI-based video decoding method according to an embodiment of the present disclosure.
  • step S1510 the AI-based image decoding apparatus 1600 obtains a transform feature map corresponding to the transform block for the residual block of the current block from the bitstream.
  • step S1530 the AI-based image decoding device 1600 inputs a prediction block for the current block, surrounding pixels of the current block, and coding context information into a first neural network, and outputs a coding context feature map as the output of the first neural network. Obtain and generate the coding context feature map for the transform block.
  • step S1550 the AI-based image decoding device 1600 inputs the transformation feature map and the coding context feature map into a second neural network, obtains the restored current block as an output of the second neural network, and restores the current block.
  • the second neural network may output an inversely transformed result after inverse quantization.
  • restoring the current block includes: obtaining the residual block by applying the transform feature map and the coding context feature map to a second neural network; And it may include restoring the current block using the residual block and the prediction block.
  • the restored current block may further include surrounding pixels of the current block for deblocking filtering of the current block.
  • FIG. 16 is a diagram illustrating the configuration of an AI-based video decoding device according to an embodiment of the present disclosure.
  • the AI-based image decoding apparatus 1600 may include an acquisition unit 1610, a coding context feature map generation unit 1620, an inverse transformation unit 1630, and a restoration unit 1640.
  • the acquisition unit 1610, the coding context feature map creation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 may be implemented with a processor.
  • the acquisition unit 1610, the coding context feature map creation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 may operate according to instructions stored in the memory.
  • the acquisition unit 1610, the coding context feature map generation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 may be implemented through one processor.
  • the acquisition unit 1610, the coding context feature map generation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 are implemented with a dedicated processor, an application processor (AP), or a central processing unit (CPU).
  • AP application processor
  • CPU central processing unit
  • it may be implemented through a combination of a general-purpose processor such as a GPU (graphic processing unit) and software.
  • a dedicated processor it may include a memory for implementing an embodiment of the present disclosure, or a memory processing unit for using an external memory.
  • the acquisition unit 1610, the coding context feature map creation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 may be implemented with a plurality of processors.
  • the acquisition unit 1610, the coding context feature map generation unit 1620, the inverse transformation unit 1630, and the restoration unit 1640 are implemented as a combination of dedicated processors or a plurality of general purpose processors such as AP, CPU, or GPU. It may also be implemented through a combination of processors and software.
  • the processor may include a processor dedicated to artificial intelligence.
  • an artificial intelligence-specific processor may be composed of a processor and a separate chip.
  • the acquisition unit 1610 obtains a transform feature map corresponding to the transform block for the residual block of the current block from the bitstream.
  • a bitstream can be generated and transmitted from the AI-based video encoding device 1400.
  • the coding context feature map generator 1620 applies the prediction block for the current block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block.
  • the inverse transform unit 1630 obtains a residual block by applying the transformation feature map and the coding context feature map to the second neural network.
  • the reconstruction unit 1640 obtains a reconstruction block using the residual block and the prediction block.
  • the inverse transform unit 1630 may obtain a restored block by inputting the transformation feature map and the coding context feature map into a second neural network.
  • the restoration unit 1640 may be omitted from the AI-based video encoding device 1600.
  • the inverse transform unit 1630 inputs the transformation feature map and the coding context feature map to the second neural network to expand the reconstruction block of the current block and the surrounding pixels of the current block for deblocking filtering of the current block. You can obtain restored blocks.
  • the restoration unit 1640 may be omitted from the AI-based video encoding device 1600.
  • FIG. 17 is a diagram for explaining a training method of neural networks used in an AI-based image encoding method and an AI-based image decoding method according to an embodiment of the present disclosure.
  • the transformation kernel generation neural network 1710 and the inverse transformation kernel generation neural network 1730 may be trained.
  • the surrounding pixels for training 1702, the prediction block for training 1703, and the coding context information for training 1704 are input to the transformation kernel generation neural network 1710 to generate the transformation kernel 1711 for training.
  • a transformation block for training (1720) is obtained by performing transformation (1715) using the residual block for training (1701) and the transformation kernel for training (1711).
  • the training transformation block 1720 is quantized, entropy encoded, and transmitted in the form of a bitstream.
  • the training transform block 1720 is entropy decoded and inverse quantized.
  • the surrounding pixels for training 1702, the prediction block for training 1703, and the coding context information for training 1704 are input to the inverse transformation kernel generation neural network 1730 to generate the inverse transformation kernel 1731 for training.
  • the inverse transformation 1725 is performed using the training transformation block 1720 and the training inversion kernel 1731 to obtain the inverse training residual block 1735.
  • a reconstruction block 1745 for training is obtained by adding (1740) the inversely transformed residual block for training 1735 and the prediction block 1703 for training.
  • the restoration block for training 1745 becomes as similar as possible to the original block 1700 for training, and the bits of the bitstream generated through encoding for the transformation block for training 1720 Neural networks can be trained so that the rate is minimized.
  • first loss information 1750 and second loss information 1760 can be used to train neural networks.
  • the second loss information 1760 may correspond to the difference between the original block for training 1700 and the restored block for training 1745.
  • the difference between the original training block 1700 and the restoration block 1745 is the L1-norm value between the original training block 1700 and the restoration block 1745, and the L2-norm value, Structural Similarity (SSIM) value, Peak Signal-To-Noise Ratio-Human Vision System (PSNR-HVS) value, Multiscale SSIM (MS-SSIM) value, Variance Inflation Factor (VIF) value, or Video Multimethod Assessment Fusion (VMAF) value.
  • SSIM Structural Similarity
  • PSNR-HVS Peak Signal-To-Noise Ratio-Human Vision System
  • MS-SSIM Multiscale SSIM
  • VIF Variance Inflation Factor
  • VMAF Video Multimethod Assessment Fusion
  • the second loss information 1760 indicates the quality of the reconstructed image including the training reconstruction block 1745, it may also be referred to as quality loss information.
  • the first loss information 1750 can be calculated from the bit rate of the bitstream generated as a result of encoding the training transform block 1720.
  • the first loss information 1750 may be calculated based on the bit rate difference between the training residual block 1701 and the training transform block 1720.
  • the second loss information may be referred to as compression loss information.
  • the transform kernel generation neural network 1710 and the inverse transform kernel generation neural network 1730 may be trained so that the final loss information derived from one or a combination of the first loss information 1750 or the second loss information 1760 is reduced or minimized. .
  • the transformation kernel generation neural network 1710 and the inverse transformation kernel generation neural network 1730 may reduce or minimize final loss information while changing the values of preset parameters.
  • final loss information can be calculated according to Equation 1 below.
  • Equation 1 a and b are weights applied to the first loss information 1750 and the second loss information 1760, respectively.
  • the transformation kernel generation neural network 1710 and the inverse transformation kernel generation neural network 1730 are directed so that the restoration block for training 1745 is as similar as possible to the original block for training 1700 and the size of the bitstream is minimized. You can see that it has been trained.
  • the transform kernel generation neural network 1710 and the inverse transform kernel generation neural network 1730 of FIG. 17 may respectively correspond to the transform kernel generation neural network 310 and the inverse transform kernel generation neural network 330 of FIG. 3 described above.
  • the transformation kernel generation neural network 410 of FIG. 4 can be trained using a conventional linear inverse transformation kernel instead of the inverse transformation kernel 1731 for training, excluding the inverse transformation kernel generation neural network 1730 in the training method of FIG. 17.
  • transform kernel generation neural network 410 of FIG. 4 may correspond to the transform kernel generation neural network 1710 of FIG. 17 .
  • the inverse transformation kernel generation neural network 530 of FIG. 5 can be trained using a conventional linear transformation kernel instead of the training transformation kernel 1711, except for the transformation kernel generation neural network 1710 in the training method of FIG. 17.
  • the inverse transformation kernel generation neural network 530 of FIG. 5 may correspond to the inverse transformation kernel generation neural network 1730 of FIG. 17 .
  • FIG. 18 is a diagram for explaining a method of training neural networks used in an AI-based image encoding method and an AI-based image decoding method according to an embodiment of the present disclosure.
  • Coding context neural network 1810 using the original block for training (1800), the residual block for training (1801), the surrounding pixels for training (1802), the prediction block for training (1803), and the coding context information for training (1804). Coding context neural network 1810, transformation neural network 1815, inverse transformation neural network 1825, and coding context neural network 1830 can be trained.
  • surrounding pixels for training 1802, prediction blocks 1803 for training, and coding context information for training 1804 are input to the coding context neural network 1810 to generate a coding context feature map for training 1811. .
  • the transformation feature map for training 1820 is obtained.
  • the transformation feature map 1820 for training is quantized, entropy encoded, and transmitted in the form of a bitstream.
  • the training transform feature map 1820 is entropy decoded and dequantized.
  • the surrounding pixels for training 1802, the prediction block for training 1803, and the coding context information for training 1804 are input to the coding context neural network 1830 to generate a coding context feature map for training 1831.
  • the transformation feature map for training 1820 and the coding context feature map for training 1831 are applied to the inverse transformation neural network 1825, and the inverse transformation residual block 1835 for training is obtained.
  • a reconstruction block 1845 for training is obtained by adding (1840) the inversely transformed residual block for training 1835 and the prediction block 1803 for training.
  • the restoration block 1845 for training becomes as similar as possible to the original block 1800 for training, and the bitstream generated through encoding for the transformation feature map 1820 for training is Neural networks can be trained so that the bitrate is minimized.
  • first loss information 1850 and second loss information 1860 can be used to train neural networks.
  • the second loss information 1860 may correspond to the difference between the original block for training 1800 and the restored block for training 1845.
  • the difference between the original training block 1800 and the restoration block 1845 is the L1-norm value between the original training block 1800 and the restoration block 1845, and the L2-norm value, Structural Similarity (SSIM) value, Peak Signal-To-Noise Ratio-Human Vision System (PSNR-HVS) value, Multiscale SSIM (MS-SSIM) value, Variance Inflation Factor (VIF) value, or Video Multimethod Assessment Fusion (VMAF) value.
  • SSIM Structural Similarity
  • PSNR-HVS Peak Signal-To-Noise Ratio-Human Vision System
  • MS-SSIM Multiscale SSIM
  • VIF Variance Inflation Factor
  • VMAF Video Multimethod Assessment Fusion
  • the second loss information 1860 is related to the quality of the reconstructed image including the training reconstruction block 1845, it may also be referred to as quality loss information.
  • the first loss information 1850 can be calculated from the bitrate of the bitstream generated as a result of encoding the transformation feature map 1820 for training.
  • the first loss information 1850 may be calculated based on the bit rate difference between the training residual block 1801 and the training transform block 1820.
  • the second loss information may be referred to as compression loss information.
  • the coding context neural network 1810, the transformation neural network 1815, the inverse transformation neural network 1825, and the coding context neural network 1830 have a final loss derived from one or a combination of the first loss information 1850 or the second loss information 1860. Information can be trained to be reduced or minimized.
  • the coding context neural network 1810, the transformation neural network 1815, the inverse transformation neural network 1825, and the coding context neural network 1830 change the values of preset parameters so that the final loss information is reduced or minimized. .
  • final loss information can be calculated according to Equation 2 below.
  • Equation 2 a and b are weights applied to the first loss information 1850 and the second loss information 1860, respectively.
  • the coding context neural network 1810, the transformation neural network 1815, the inverse transformation neural network 1825, and the coding context neural network 1830 are such that the restoration block for training (1845) is as similar as possible to the original block for training (1800). It can be seen that the training is done in a way that minimizes the size of the bitstream.
  • the transform neural network 1815 may output not only the transform coefficient result but also the quantization result. That is, the training transformation feature map 1820 obtained from the transformation neural network 1815 may be a transformation feature map for quantized transformation coefficients. Therefore, the transformation feature map 1820 for training is entropy encoded and transmitted in the form of a bitstream.
  • the inverse transformation neural network 1825 can perform not only inverse transformation but also inverse quantization. That is, the transformation feature map 1820 for training is entropy decoded, the transformation feature map 1820 for training and the coding context feature map 1831 for training are applied to the inverse transformation neural network 1825, and the inverse quantization and inverse transformation for training are performed. A residual block 1835 may be obtained.
  • the coding context neural network 610, transformation neural network 615, inverse transformation neural network 625, and coding context neural network 630 of FIG. 6 are respectively the coding context neural network 1810, transformation neural network 1815, and inverse transformation neural network 1825 of FIG. 18. ) and may correspond to the coding context neural network 1830.
  • the coding context neural network 710, the transformation neural network 715, and the coding context neural network 730 of FIG. 7 are respectively connected to the coding context neural network 1810, the transformation neural network 1815, and the coding context neural network 1830 of FIG. 18, respectively.
  • the inverse transform neural network 725 of FIG. 7 unlike the inverse transform neural network 1825 of FIG. 18, may output a value that is not the residual block 1835 for training but the restoration block 1845 for training.
  • the coding context neural network 810, the transformation neural network 815, and the coding context neural network 830 of FIG. 8 are respectively connected to the coding context neural network 1810, the transformation neural network 1815, and the coding context neural network 1830 of FIG. 18, respectively.
  • the inverse transformation neural network 825 of FIG. 8 differs from the inverse transformation neural network 1825 of FIG. 18 in that the output value is not the residual block for training 1835, but the restoration block for training 1845 and the restoration block for training 1845. It may be an extended reconstruction block including surrounding pixels.
  • An AI-based image decoding method includes obtaining a transform block for a residual block of a current block from a bitstream; Applying the prediction block for the current block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for the transform block; Obtaining a residual block by applying the generated transform kernel to the transform block; And it may include restoring the current block using a residual block and a prediction block.
  • the AI-based image decoding method uses a more suitable transform kernel through a neural network that uses surrounding pixels, prediction blocks, and coding context information, unlike using a small number of fixed transform kernels in the conventional standard. This is possible, and since surrounding pixels, prediction blocks, and coding context information are used, there is no need to transmit additional information for determining the transformation kernel, so transmitted data does not increase.
  • the coding context is also available on the decoding side, so only the complementary information needed to generate a good conversion in terms of bitrate needs to be transmitted, thereby reducing the bitrate, and since surrounding pixels and prediction blocks contain information related to the residual block, The overhead transmitted to the decoding side for inverse conversion can be controlled.
  • the transformation kernel generated through a neural network is highly adaptive to various characteristics of the transformation target block, and all context information is flexibly integrated and reflected.
  • the coding context that has valuable information in the conversion target block is considered, and the coding context can be considered on both the encoding and decoding sides, thereby maximizing usefulness.
  • the coding context information may include at least one of a quantization parameter of the current block, a partition tree structure of the current block, a partition structure of neighboring pixels, a partition type of the current block, and a partition type of neighboring pixels.
  • the transform block may be a block transformed by a neural network-based transform kernel or a block transformed by one linear transform kernel among a plurality of predetermined linear transform kernels.
  • the generated transform kernel may include a left transform kernel applied to the left side of the transform block and a right transform kernel applied to the right side of the transform block.
  • An AI-based image decoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor obtains a transform block for a residual block of the current block from a bitstream, a prediction block for the current block, and a surrounding block of the current block.
  • Apply pixels and coding context information to a neural network to generate a transform kernel for the transform block apply the generated transform kernel to the transform block to obtain a residual block, and use the residual block and the prediction block to The current block can be restored.
  • the AI-based image decoding device uses a more suitable transform kernel through a neural network that uses surrounding pixels, prediction blocks, and coding context information, unlike using a small number of fixed transform kernels in the conventional standard. This is possible, and since surrounding pixels, prediction blocks, and coding context information are used, there is no need to transmit additional information for determining the transformation kernel, so transmitted data does not increase.
  • the coding context is also available on the decoding side, so only the complementary information needed to generate a good conversion in terms of bitrate needs to be transmitted, thereby reducing the bitrate, and since surrounding pixels and prediction blocks contain information related to the residual block, The overhead transmitted to the decoding side for inverse conversion can be controlled.
  • the coding context information may include at least one of a quantization parameter of the current block, a partition tree structure of the current block, a partition structure of neighboring pixels, a partition type of the current block, and a partition type of neighboring pixels.
  • the transform block may be a block transformed by a neural network-based transform kernel or a block transformed by one linear transform kernel among a plurality of predetermined linear transform kernels.
  • the generated transform kernel may include a left transform kernel applied to the left side of the transform block and a right transform kernel applied to the right side of the transform block.
  • An AI-based image encoding method includes obtaining a residual block based on a prediction block of a current block and an original block of the current block; Applying the prediction block, surrounding pixels of the current block, and coding context information to a neural network to generate a transform kernel for a transform block of the residual block; Obtaining a transform block by applying the generated transform kernel to the residual block; and generating a bitstream including the transform block.
  • the AI-based image encoding method uses a more suitable transform kernel through a neural network that uses surrounding pixels, prediction blocks, and coding context information, unlike using a small number of fixed transform kernels in the conventional standard. This is possible, and since surrounding pixels, prediction blocks, and coding context information are used, there is no need to transmit additional information for determining the transformation kernel, so transmitted data does not increase.
  • the coding context is also available on the decoding side, so only the complementary information needed to generate a good conversion in terms of bitrate needs to be transmitted, thereby reducing the bitrate, and since surrounding pixels and prediction blocks contain information related to the residual block, The overhead transmitted to the decoding side for inverse conversion can be controlled.
  • the transform block may be inversely transformed by a neural network-based transform kernel or inversely transformed by one linear transform kernel among a plurality of predetermined linear transform kernels during the image decoding process.
  • the generated transform kernel may include a left transform kernel applied to the left side of the residual block and a right transform kernel applied to the right side of the residual block.
  • An AI-based image encoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor obtains a residual block based on a prediction block of the current block and an original block of the current block, and obtains a residual block based on the prediction block and the original block of the current block.
  • Apply the pixels and coding context information to the neural network to generate a transform kernel for the transform block of the residual block apply the generated transform kernel to the residual block to obtain a transform block, and generate a bitstream containing the transform block. can be created.
  • the AI-based image encoding device uses a more suitable transformation kernel through a neural network that uses surrounding pixels, prediction blocks, and coding context information. This is possible, and since surrounding pixels, prediction blocks, and coding context information are used, there is no need to transmit additional information for determining the transformation kernel, so transmitted data does not increase.
  • the coding context is also available on the decoding side, so only the complementary information needed to generate a good conversion in terms of bitrate needs to be transmitted, thereby reducing the bitrate, and since surrounding pixels and prediction blocks contain information related to the residual block, The overhead transmitted to the decoding side for inverse conversion can be controlled.
  • the transform block may be inversely transformed by a neural network-based transform kernel or inversely transformed by one linear transform kernel among a plurality of predetermined linear transform kernels during the image decoding process.
  • the generated transform kernel may include a left transform kernel applied to the left side of the residual block and a right transform kernel applied to the right side of the residual block.
  • An AI-based image decoding method includes obtaining a transform feature map corresponding to a transform block for a residual block of a current block from a bitstream; Applying the prediction block for the current block, surrounding pixels of the current block, and coding context information to a first neural network to generate a coding context feature map for the transform block; And it may include restoring the current block by applying the transformation feature map and the coding context feature map to the second neural network.
  • the AI-based image decoding method generates a feature map for the coding context through a neural network that generates a coding context feature map using surrounding pixels, prediction blocks, and coding context information, and generates a feature map for the coding context.
  • a feature map for the transformation coefficient generated through the neural network By acquiring the feature map and the transformation feature map for the transformation coefficient generated through the neural network and inputting it into the neural network for inverse transformation, and restoring the current block, additional information other than the transformation feature map for the transformation coefficient generated through the neural network is obtained.
  • the bit rate is small due to no transmission, and the surrounding pixels, prediction blocks, and coding context are also available on the decoding side, so the overhead transmitted to the decoding side for inverse transformation can be controlled, and the small number of fixations in the conventional standard is reduced.
  • results can be obtained by applying transformation and inverse transformation suitable for various characteristics of the transformation target block.
  • the second neural network may output an inversely transformed result after inverse quantization.
  • restoring the current block includes obtaining a residual block by applying the transform feature map and the coding context feature map to a second neural network; And it may include restoring the current block using the residual block and the prediction block.
  • the restored current block may further include surrounding pixels of the current block for deblocking filtering of the current block.
  • An AI-based image decoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor obtains a transform feature map corresponding to a transform block for a residual block of the current block from the bitstream, and performs a prediction for the current block. Apply the block, surrounding pixels of the current block, and coding context information to the first neural network to generate a coding context feature map for the transform block, and apply the transform feature map and coding context feature map to the second neural network to generate the current block. can be restored.
  • An AI-based image decoding device generates a feature map for the coding context through a neural network that generates a coding context feature map using surrounding pixels, prediction blocks, and coding context information, and By acquiring the feature map and the transformation feature map for the transformation coefficient generated through the neural network and inputting it into the neural network for inverse transformation, and restoring the current block, additional information other than the transformation feature map for the transformation coefficient generated through the neural network is obtained.
  • the bit rate is small due to no transmission, and the surrounding pixels, prediction blocks, and coding context are also available on the decoding side, so the overhead transmitted to the decoding side for inverse transformation can be controlled, and the small number of fixations in the conventional standard is reduced.
  • results can be obtained by applying transformation and inverse transformation suitable for various characteristics of the transformation target block.
  • the second neural network may output an inversely transformed result after inverse quantization.
  • restoring the current block may mean obtaining a residual block by applying the transformation feature map and the coding context feature map to a second neural network and restoring the current block using the residual block and the prediction block.
  • the restored current block may further include surrounding pixels of the current block for deblocking filtering of the current block.
  • An AI-based image encoding method includes obtaining a residual block based on a prediction block of a current block and an original block of the current block; Applying the prediction block, surrounding pixels of the current block, and coding context information to a first neural network to generate a coding context feature map for the transform block; applying the coding context feature map and the residual block to a second neural network to obtain a transform feature map corresponding to the transform block; and generating a bitstream including the transformed feature map.
  • the AI-based image encoding method generates a feature map for the coding context through a neural network that generates a coding context feature map using surrounding pixels, prediction blocks, and coding context information, and By acquiring the feature map and the transformation feature map for the transformation coefficient generated through the neural network and inputting it into the neural network for inverse transformation, and restoring the current block, additional information other than the transformation feature map for the transformation coefficient generated through the neural network is obtained.
  • the bit rate is small due to no transmission, and the surrounding pixels, prediction blocks, and coding context are also available on the decoding side, so the overhead transmitted to the decoding side for inverse transformation can be controlled, and the small number of fixations in the conventional standard is reduced.
  • results can be obtained by applying transformation and inverse transformation suitable for various characteristics of the transformation target block.
  • the second neural network may output a transform feature map for the quantized transform coefficient.
  • An AI-based image encoding device includes a memory that stores one or more instructions; and at least one processor operating according to the one or more instructions, wherein the at least one processor acquires a residual block based on a prediction block of the current block and an original block of the current block, and obtains a residual block based on the prediction block and the original block of the current block.
  • An AI-based image encoding device generates a feature map for the coding context through a neural network that generates a coding context feature map using surrounding pixels, prediction blocks, and coding context information, and By acquiring the feature map and the transformation feature map for the transformation coefficient generated through the neural network and inputting it into the neural network for inverse transformation, and restoring the current block, additional information other than the transformation feature map for the transformation coefficient generated through the neural network is obtained.
  • the bit rate is small due to no transmission, and the surrounding pixels, prediction blocks, and coding context are also available on the decoding side, so the overhead transmitted to the decoding side for inverse transformation can be controlled, and the small number of fixations in the conventional standard is reduced.
  • results can be obtained by applying transformation and inverse transformation suitable for various characteristics of the transformation target block.
  • the second neural network may output a transform feature map for the quantized transform coefficient.
  • a storage medium that can be read by a device may be provided in the form of a non-transitory storage medium.
  • 'non-transitory storage medium' simply means that it is a tangible device and does not contain signals (e.g. electromagnetic waves). This term refers to cases where data is semi-permanently stored in a storage medium and temporary storage media. It does not distinguish between cases where it is stored as .
  • a 'non-transitory storage medium' may include a buffer where data is temporarily stored.
  • Computer program products are commodities and can be traded between sellers and buyers.
  • a computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store or between two user devices (e.g. smartphones). It may be distributed in person or online (e.g., downloaded or uploaded). In the case of online distribution, at least a portion of the computer program product (e.g., a downloadable app) is stored on a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.
  • a machine-readable storage medium such as the memory of a manufacturer's server, an application store's server, or a relay server. It can be temporarily stored or created temporarily.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

AI에 기반한 영상 복호화 방법 및 AI에 기반한 영상 복호화 방법을 수행하는 장치를 제안한다. AI에 기반한 영상 복호화 방법에 따르면, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록이 획득되고, 상기 현재 블록에 대한 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 상기 변환 블록에 대한 변환 커널이 생성되고, 상기 생성된 변환 커널을 상기 변환 블록에 적용하여, 상기 잔차 블록이 획득되고, 상기 잔차 블록 및 상기 예측 블록을 이용하여 상기 현재 블록이 복원된다.

Description

AI에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
본 개시는 영상의 부호화 및 복호화에 관한 것이다. 보다 구체적으로, 본 개시는 AI(Artificial Intelligence), 예를 들어, 신경망을 이용하여 영상을 부호화 및 복호화하는 기술에 관한 것이다.
H.264 AVC(Advanced Video Coding) 및 HEVC(High Efficiency Video Coding)와 같은 코덱에서는, 영상을 블록으로 분할하고, 각각의 블록을 예측하여 원본 블록과 예측 블록의 차이인 잔차 블록을 변환하여 변환 블록을 획득하고, 변환 블록을 양자화하고 엔트로피 부호화하여 비트스트림으로 전송할 수 있다.
전송된 비트스트림으로부터 엔트로피 복호화하고 역양자화하여 획득된 변환 블록을 역변환하여 잔차 블록을 획득하고, 예측을 통해 획득된 예측 블록과 잔차 블록을 이용하여 블록을 복원할 수 있다.
최근, AI(Artificial Intelligent)를 이용하여 영상을 부호화/복호화하는 기술들이 제안되고 있는데, AI, 예를 들어, 신경망을 이용하여 변환 또는 역변환을 수행함으로써, 영상을 효과적으로 부호화/복호화하는 방안이 요구된다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득하는 단계; 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 변환 블록에 대한 변환 커널 을 생성하는 단계; 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득하는 단계; 및 잔차 블록 및 예측 블록을 이용하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득할 수 있다. 적어도 하나의 프로세서는, 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 변환 블록에 대한 변환 커널을 생성할 수 있다. 적어도 하나의 프로세서는, 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득할 수 있다. 적어도 하나의 프로세서는, 잔차 블록 및 상기 예측 블록을 이용하여 상기 현재 블록을 복원할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하는 단계; 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성하는 단계; 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득하는 단계; 및 변환 블록을 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득할 수 있다. 적어도 하나의 프로세서는, 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성할 수 있다. 적어도 하나의 프로세서는, 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득할 수 있다. 적어도 하나의 프로세서는, 변환 블록을 포함하는 비트스트림을 생성할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득하는 단계; 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하는 단계; 및 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 현재 블록을 복원하는 단계를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득할 수 있다. 적어도 하나의 프로세서는, 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성할 수 있다. 적어도 하나의 프로세서는, 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 현재 블록을 복원할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하는 단계; 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하는 단계; 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 적용하여 변환 블록에 대응하는 변환 특징 맵을 획득하는 단계; 및 변환 특징 맵을 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 적어도 하나의 프로세서는, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득할 수 있다. 적어도 하나의 프로세서는, 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성할 수 있다. 적어도 하나의 프로세서는, 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 적용하여 변환 블록에 대응하는 변환 특징 맵을 획득할 수 있다. 적어도 하나의 프로세서는, 변환 특징 맵을 포함하는 비트스트림을 생성할 수 있다.
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
도 2는 영상으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.
도 3은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법의 순서도이다.
도 10은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치의 구성을 도시하는 도면이다.
도 11은 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법의 순서도이다.
도 12는 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치의 구성을 도시하는 도면이다.
도 13은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법의 순서도이다.
도 14는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치의 구성을 도시하는 도면이다.
도 15는 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법의 순서도이다.
도 16은 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치의 구성을 도시하는 도면이다.
도 17은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법및 AI에 기반한 영상 복호화 방법에서 이용되는 신경망들의 훈련 방법을 설명하기 위한 도면이다.
도 18은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법및 AI에 기반한 영상 복호화 방법에서 이용되는 신경망들의 훈련 방법을 설명하기 위한 도면이다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 개시에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 개시에서, '영상(image) 또는 픽처(picture)'는 정지영상(또는 프레임), 복수의 연속된 정지영상으로 구성된 동영상, 또는 비디오를 의미할 수 있다.
본 개시에서 '신경망(neural network)'은 뇌 신경을 모사한 인공 신경망 모델의 대표적인 예시로서, 특정 알고리즘을 사용한 인공 신경망 모델로 한정되지 않는다. 신경망은 심층 신경망(deep neural network)으로 참조될 수도 있다.
본 개시에서 '파라미터(parameter)'는 신경망을 이루는 각 레이어의 연산 과정에서 이용되는 값으로서, 예를 들어, 입력 값을 소정 연산식에 적용할 때 이용될 수 있다. 파라미터는 훈련의 결과로 설정되는 값으로서, 필요에 따라 별도의 훈련 데이터(training data)를 통해 갱신될 수 있다.
본 개시에서, '샘플'은 영상, 블록, 또는 특징 데이터 등의 1차원 또는 2차원 데이터 내 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 샘플은 2차원의 영상 내 픽셀을 포함할 수 있다. 2차원의 데이터는 '맵'으로 참조될 수도 있다.
또한, 본 개시에서 '현재 블록'은 현재의 처리 대상인 블록을 의미한다. 현재 블록은 현재 영상으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다.
일 실시예에 따른 영상 복호화 방법, 영상 복호화 장치, 영상 부호화 방법, 및 영상 부호화 장치에 대해 설명하기에 앞서, 도 1 및 도 2를 참조하여 영상의 부호화 및 복호화 과정에 대해 설명한다.
도 1은 영상의 부호화 및 복호화 과정을 도시하는 도면이다.
부호화 장치(110)는 영상에 대한 부호화를 통해 생성된 비트스트림을 복호화 장치(150)로 전송하고, 복호화 장치(150)는 비트스트림을 수신 및 복호화하여 영상을 복원한다
구체적으로, 부호화 장치(110)에서, 예측 부호화부(115)는 인터 예측 및 인트라 예측을 통해 예측 블록을 출력하고, 변환 및 양자화부(120)는 예측 블록과 현재 블록 사이의 잔차 블록의 잔차 샘플들을 변환 및 양자화하여 양자화된 변환 계수를 출력한다. 엔트로피 부호화부(125)는 양자화된 변환 계수를 부호화하여 비트스트림으로 출력한다.
양자화된 변환 계수는 역양자화 및 역변환부(130)을 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 블록과 잔차 블록이 합해진 복원 블록은 디블로킹 필터링부(135) 및 루프 필터링부(140)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 부호화부(115)에서 다음 입력 영상의 참조 영상으로 사용될 수 있다.
복호화 장치(150)로 수신된 비트스트림은 엔트로피 복호화부(155) 및 역양자화 및 역변환부(160)를 거쳐 공간 영역의 잔차 샘플들을 포함하는 잔차 블록으로 복원된다. 예측 복호화부(175)로부터 출력된 예측 블록과 잔차 블록이 조합되어 복원 블록이 생성되고, 복원 블록은 디블로킹 필터링부(165) 및 루프 필터링부(170)를 거쳐 필터링된 블록으로 출력된다. 필터링된 블록을 포함하는 복원 영상은 예측 복호화부(175)에서 다음 영상에 대한 참조 영상으로 이용될 수 있다.
부호화 장치(110)의 루프 필터링부(140)는 사용자 입력 또는 시스템 설정에 따라 입력된 필터 정보를 이용하여 루프 필터링을 수행한다. 루프 필터링부(140)에 의해 사용된 필터 정보는 엔트로피 부호화부(125)를 통해 복호화 장치(150)로 전송된다. 복호화 장치(150)의 루프 필터링부(170)는 엔트로피 복호화부(155)로부터 입력된 필터 정보에 기초하여 루프 필터링을 수행할 수 있다.
영상의 부호화 및 복호화 과정에서는 영상이 계층적으로 분할되고, 영상으로부터 분할된 블록에 대해 부호화 및 복호화가 수행된다. 영상으로부터 분할된 블록에 대해 도 2를 참조하여 설명한다.
도 2는 영상으로부터 트리 구조에 따라 분할된 블록들을 도시하는 도면이다.
하나의 영상(200)은 하나 이상의 슬라이스(Slice) 혹은 하나 이상의 타일(Tile)로 분할될 수 있다. 하나의 슬라이스는 복수의 타일을 포함할 수 있다.
하나의 슬라이스 혹은 하나의 타일은 하나 이상의 최대 부호화 단위(Maximum Coding Unit; Maximum CU)의 시퀀스일 수 있다.
하나의 최대 부호화 단위는 하나 이상의 부호화 단위로 분할될 수 있다. 부호화 단위는 예측 모드를 결정하기 위한 기준 블록일 수 있다. 다시 말하면, 각각의 부호화 단위에 대해 인트라 예측 모드가 적용되는지, 인터 예측 모드가 적용되는지가 결정될 수 있다. 본 개시에서 최대 부호화 단위는 최대 부호화 블록으로 참조될 수 있고, 부호화 단위는 부호화 블록으로 참조될 수 있다.
부호화 단위의 크기는 최대 부호화 단위와 동일하거나, 최대 부호화 단위보다 작을 수 있다. 최대 부호화 단위는 최대 크기를 가지는 부호화 단위이므로, 부호화 단위로 참조될 수도 있다.
부호화 단위로부터 인트라 예측 또는 인터 예측을 위한 하나 이상의 예측 단위가 결정될 수 있다. 예측 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다.
또한, 부호화 단위로부터 변환 및 양자화를 위한 하나 이상의 변환 단위가 결정될 수 있다. 변환 단위의 크기는 부호화 단위와 동일하거나, 부호화 단위보다 작을 수 있다. 변환 단위는 변환 및 양자화를 위한 기준 블록으로서, 부호화 단위의 잔차 샘플들이 부호화 단위 내의 변환 단위별로 변환 및 양자화될 수 있다.
본 개시에서 현재 블록은 영상(200)으로부터 분할된 슬라이스, 타일, 최대 부호화 단위, 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 하위 블록은 현재 블록으로부터 분할된 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 하위 블록은 부호화 단위, 예측 단위 또는 변환 단위일 수 있다. 또한, 현재 블록의 상위 블록은 현재 블록을 일부로 포함하는 블록으로서, 예를 들어, 현재 블록이 최대 부호화 단위이면, 상위 블록은 픽처 시퀀스, 픽처, 슬라이스 또는 타일일 수 있다.
이하에서는, 도 3 내지 도 18을 참조하여, 일 실시예에 따른 AI에 기반한 비디오 복호화 방법, AI에 기반한 비디오 복호화 장치, AI에 기반한 비디오 부호화 방법, 및 AI에 기반한 비디오 부호화 장치에 대해 설명한다.
도 3 내지 도 5는 신경망을 통해 학습된 변환 커널을 이용하는 선형 변환(linear transform)에 관한 것이고, 도 6 내지 도 8은 신경망을 통해 변환 및 역변환이 수행된 결과가 출력되는 비선형 변환(non-linear transform)에 관한 것이다.
도 3은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 3을 참고하면, 변환(315)는 현재 블록의 잔차 블록(301)에 적용된다. 잔차 블록(301)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(303)의 차이를 나타낸다.예측 블록(303)은 인트라 예측 및/또는 인터 예측을 통해 획득될 수 있다. 변환(315)은 부호화 과정의 일부로 잔차 블록(301)에 수행된다. 잔차 블록(301)에 변환(315)을 수행하기 위한 변환 커널을 획득하기 위해 변환 커널 생성 신경망(310)이 이용된다. 변환 커널 생성 신경망(310)에는 현재 블록의 주변 픽셀들(302), 즉, 참조 픽셀들, 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)가 입력되고, 변환 커널 생성 신경망(310)으로부터 변환 커널(311)이 출력된다. 잔차 블록(301)과 변환 커널(311)을 행렬 곱셈(Matrix multiplication)하여 잔차 블록(301)의 변환 블록(320)이 획득된다. 변환 블록(320)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 블록(320)은 엔트로피 복호화되고 역양자화된 후, 역변환(325)이 수행된다. 역변환(325)을 위한 역변환 커널을 획득하기 위해 역변환 커널 생성 신경망(330)이 이용된다. 역변환 커널 생성 신경망(330)에는 현재 블록의 주변 픽셀들(302), 즉, 참조 픽셀들, 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)가 입력되고, 역변환 커널 생성 신경망(330)으로부터 역변환 커널(331)이 출력된다. 역양자화된 잔차 블록과 역변환 커널(331)을 행렬 곱셈(Matrix multiplication)하여 잔차 블록(335)이 획득된다. 잔차 블록(335)과 예측 블록(303)을 더함(340)으로써 현재 블록의 복원 블록(345)이 획득된다.
도 3의 AI에 기반한 영상 부호화 및 복호화 과정을 통해, 다양한 블록들에 대하여 적합하지 않은 종래의 코덱 표준의 고정 커널들(예를 들어, DCT 타입 또는 DST 타입)이 변환에 이용되지 않고, 주변 픽셀들, 예측 블록, 코딩 컨텍스트 정보 등을 이용하여 신경망을 통해 직접 학습된 변환 커널이 이용될 수 있다.
상기 변환 커널 생성 신경망(310)과 역 변환 커널 생성 신경망(330)은 각각 순방향 커널(forward kernel) 생성 신경망과 역방향 커널(backward kernel) 생성 신경망으로 참조될 수 있다. 상기 변환(315)과 상기 역변환(325)는 각각 순방향 변환(forward transform) 및 역방향 변환(backward transform)으로 참조될 수 있다. 상기 변환 커널 생성 신경망(310)과 역 변환 커널 생성 신경망(330)의 조합은 고정되고 미리정해진 컨볼루션 커널들을 제공하는 것이 아니라 주어진 작업(task)에 특화된 컨볼루션 커널들을 적응적으로 학습할 수 있다. 추가로, 순방향 커널 생성 신경맟 및 역방향 커널 생성 신경망은 컨볼루션 신경망(convolutional neural network)들, 순환 신경망(recurrent neural network)들 또는 다른 유형의 신경망 구조들을 이용하기 구현될 수 있다.
또한, 신경망을 이용하여 학습됨으로써, 변환 커널은 정확도와 비트레이트 사이의 코스트가 밸런스 좋게 훈련되고, 코스트 측면에서의 정확도는 복원되는 블록의 정확도를 보장할 수 있다.
도 3 내지 도 8에서 이용되는 코딩 컨텍스트 정보는 현재 블록의 양자화 파라미터, 현재 블록의 분할 트리 구조, 주변 픽셀들의 분할 구조, 현재 블록의 분할 타입, 주변 픽셀들의 분할 타입 등을 포함할 수 있다.
또한, 코딩 컨텍스트 정보에는 비트레이트와 품질의 균형을 맞추기 위해 압축 정도가 얼마나 강한지에 대한 컨텍스트 및 잔차 블록의 통계 정보를 제공하기 위해 현재 코딩 상태에 대한 컨텍스트 등이 포함될 수 있다.
변환 커널 및 역변환 커널은 율-왜곡(rate-distortion) 측면에서 효율적인 변환을 위해 하나의 조밀한 커널(dense kernel)이 이용될 수 있다.
구체적으로, 부호화 측에서, 잔차 블록(301)의 크기가 MxN이면, 현재 블록의 주변 픽셀들(302), 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)을 입력으로 하여 변환 커널 생성 신경망(310)으로부터 출력되는 변환 커널(311)는 MNxMN이다. 변환 커널(311)과 잔차 블록(301)의 행렬 곱셈을 위해 잔차 블록(301)은 벡터 형태로 변형되어, MNx1의 형태로 재배열된다. MNxMN의 변환 커널(311)과 MNx1의 잔차 블록(301)은 M2N2 곱셈을 통해 MNx1의 변환 계수들을 포함하는 벡터 형태의 변환 블록(320)을 출력한다. 변환 블록(320)은 양자화되고 엔트로피 부호화되어 비트스트림으로 복호화 측에 전달된다. 복호화 측에서 비트스트림으로부터 획득된 변환 블록(320)은 엔트로피 복호화되고 역양자화된다. 현재 블록의 주변 픽셀들(302), 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)을 입력으로 하여 역변환 커널 생성 신경망(330)으로부터 출력되는 역변환 커널(331)는 MNxMN이다. MNxMN의 역변환 커널(331)과 MNx1의 변환 계수들을 포함하는 벡터 형태의 변환 블록(320)은 M2N2 곱셈을 통해 MNx1의 역변환(325)된 잔차 블록(335)이 획득된다. MNx1의 잔차 블록(335)은 MxN의 블록 형태로 다시 재배열된다. MxN의 잔차 블록(335)과 MxN의 예측 블록(303)을 더함(340)으로써 MxN의 현재 블록의 복원 블록(345)이 획득된다.
또한, 변환 커널 및 역변환 커널은 계산의 측면에서 효율적인 변환을 위해 분리가능한(seperable) 변환 커널(예를 드랑, 크로네커(Kronecker) 커널)이 이용될 수 있다.
구체적으로, 부호화 측에서, 잔차 블록(301)의 크기가 MxN이면, 현재 블록의 주변 픽셀들(302), 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)을 입력으로 하여 변환 커널 생성 신경망(310)으로부터 출력되는 변환 커널(311)는 MxM의 좌측 변환 커널과 NxN의 우측 변환 커널의 2개의 변환 커널들을 포함한다. 변환을 위해, MxM의 좌측 변환 커널, MxN의 잔차 블록(301), NxN의 우측 변환 커널의 행렬 곱셈이 수행된다. 이 경우, 하나의 변환 커널이 이용되는 경우와 달리, M2N2 곱셈이 아니라 M2 곱셈과 N2 곱셈이 수행되므로, 상대적으로 곱셈 계산의 크기가 작으므로, 두개의 변환 커널들이 이용되는 경우는 계산의 측면에서 효율적이다. 행렬 곱셈을 통해, MxN의 변환 블록(320)이 획득된다. 변환 블록(320)은 양자화되고 엔트로피 부호화되어 비트스트림으로 복호화 측에 전달된다. 복호화 측에서 비트스트림으로부터 획득된 변환 블록(320)은 엔트로피 복호화되고 역양자화된다. 현재 블록의 주변 픽셀들(302), 현재 블록의 예측 블록(303), 및 코딩 컨텍스트 정보(304)을 입력으로 하여 역변환 커널 생성 신경망(330)으로부터 출력되는 역변환 커널(331)는 MxM의 좌측 역변환 커널과 NxN의 우측 역변환 커널의 2개의 역변환 커널들을 포함한다. 역변환을 위해, MxM의 좌측 역변환 커널, MxN의 변환 블록(320), NxN의 우측 역변환 커널의 행렬 곱셈이 수행된다. 행렬 곱셈을 통해, MxN의 역변환(325)된 잔차 블록(335)이 획득된다. MxN의 잔차 블록(335)과 MxN의 예측 블록(303)을 더함(340)으로써 MxN의 현재 블록의 복원 블록(345)이 획득된다.
또한, 부호화 측에서는 하나의 변환 커널이 이용되고, 복호화 측에서는 2개의 분리가능한 변환 커널들이 이용될 수 있다.
또한, 부호화 측에서는 2개의 분리가능한 변환 커널들이 이용되고, 복호화 측에서 하나의 변환 커널이 이용될 수 있다.
도 3에서 상술된 블록의 크기에 따른 계산 방식들은 후술되는 도 4 및 도 5에도 동일하게 적용될 수 있다.
도 3에서 이용되는 신경망들의 훈련 방법은 도 17에서 후술된다.
후술되는 도 4 내지 도 5에서는 신경망을 통해 학습된 변환 커널과 종래의 표준에서 이용되는 복수의 고정된 변환 커널들 중 하나가 함께 이용되는 방법이 상술된다.
도 4는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 4를 참고하면, 변환(415)은 현재 블록의 잔차 블록(401)에 적용된다. 잔차 블록(401)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(403)의 차이를 나타낸다. 변환(415)은 부호화 과정의 일부로 잔차 블록(401)에 수행된다. 잔차 블록(401)의 변환(415)을 위한 변환 커널을 획득하기 위해 변환 커널 생성 신경망(410)이 이용된다. 변환 커널 생성 신경망(410)에는 현재 블록의 주변 픽셀들(402), 즉, 참조 픽셀들, 현재 블록의 예측 블록(403), 및 코딩 컨텍스트 정보(404)가 입력되고, 변환 커널 생성 신경망(410)으로부터 변환 커널(411)이 출력된다. 잔차 블록(401)과 변환 커널(411)을 행렬 곱셈(Matrix multiplication)하여 잔차 블록의 변환 블록(420)이 획득된다. 변환 블록(420)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림)으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 블록(420)은 엔트로피 복호화되고 역양자화된 후, 역변환(425)이 수행된다. 역양자화된 잔차 블록의 역변환(425)을 위해 선형 역변환 커널(430)이 이용된다. 선형 역변환 커널(430)은 종래의 코덱 표준에서 이용되는 DCT (discrete cosine transform) 타입, DST (discrete sine transform) 타입 등의 복수의 고정된 변환 커널 중 하나일 수 있다. 역양자화된 잔차 블록과 선형 역변환 커널(430)을 행렬 곱셈(Matrix multiplication)하여 역변환(425)된 잔차 블록(435)이 획득된다. 잔차 블록(435)과 예측 블록(403)을 더함(440)으로써 현재 블록의 복원 블록(445)이 획득된다.
도 5는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 5를 참고하면, 변환(515)은 현재 블록의 잔차 블록(501)에 수행된다. 잔차 블록(501)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(503)의 차이를 나타낸다. 변환(515)은 부호화 과정의 일부로 잔차 블록(501)에 수행된다. 잔차 블록(501)의 변환(515)을 위해 선형 변환 커널(510)이 이용된다. 선형 변환 커널(510)은 종래의 코덱 표준에서 이용되는 DCT 타입, DST 타입 등의 복수의 고정된 변환 커널 중 하나일 수 있다. 잔차 블록(501)과 선형 변환 커널(510)을 행렬 곱셈(Matrix multiplication)하여 변환(515)된 잔차 블록의 변환 블록(520)이 획득된다. 변환 블록(520)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 블록(520)은 엔트로피 복호화되고 역양자화된 후, 역변환(525)이 수행된다. 역변환(525)을 위한 역변환 커널을 획득하기 위해 역변환 커널 생성 신경망(530)이 이용된다. 역변환 커널 생성 신경망(530)에는 현재 블록의 주변 픽셀들(502), 즉, 참조 픽셀들, 현재 블록의 예측 블록(503), 및 코딩 컨텍스트 정보(504)가 입력되고, 역변환 커널 생성 신경망(530)으로부터 역변환 커널(531)이 출력된다. 역양자화된 잔차 블록과 역변환 커널(531)을 행렬 곱셈(Matrix multiplication)하여 역변환(525)된 잔차 블록(535)이 획득된다. 잔차 블록(535)과 예측 블록(503)을 더함(540)으로써 현재 블록의 복원 블록(545)이 획득된다.
도 6은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 6을 참고하면, 부호화 과정에서 변환은 현재 블록의 잔차 블록(601)에 적용된다. 잔차 블록(601)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(603)의 차이를 나타낸다. 잔차 블록(601)의 변환을 위해 변환 신경망(615)과 코딩 컨텍스트 신경망(610)이 이용된다. 코딩 컨텍스트 신경망(610)에는 현재 블록의 주변 픽셀들(602), 즉, 참조 픽셀들, 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)가 입력되고, 코딩 컨텍스트 신경망(610)으로부터 코딩 컨텍스트 특징 맵(611)이 출력된다. 코딩 컨텍스트 특징 맵(611)과 잔차 블록(601)은 변환 신경망(615)에 입력되어 변환 특징 맵(620)이 획득된다. 변환 특징 맵(620)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 특징 맵(620)은 엔트로피 복호화되고 역양자화된다. 역변환을 위해 역변환 신경망(625)과 코딩 컨텍스트 신경망(630)이 이용된다. 코딩 컨텍스트 신경망(630)에는 현재 블록의 주변 픽셀들(602), 즉, 참조 픽셀들, 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)가 입력되고, 코딩 컨텍스트 신경망(630)으로부터 코딩 컨텍스트 특징 맵(631)이 출력된다. 역양자화된 변환 특징 맵(620)과 코딩 컨텍스트 특징 맵(631)은 역변환 신경망(625)에 입력되어 역변환된 잔차 블록(635)이 획득된다. 잔차 블록(635)과 예측 블록(603)을 더함(640)으로써 현재 블록의 복원 블록(645)이 획득된다.
구체적으로, 부호화 측에서, 잔차 블록(601)은 MxN의 크기를 가진다. 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)을 입력으로 하여 코딩 컨텍스트 신경망(610)으로부터 출력되는 변환을 위한 코딩 컨텍스트 특징 맵(611)은 M1xN1xC1의 크기를 가진다. 코딩 컨텍스트 특징 맵(611)과 잔차 블록(601)은 변환 신경망(615)에 입력되고, 변환 신경망(615)은 M2xN2XC2의 크기를 가지는 잔차 블록(601)의 변환 계수에 대한 변환 특징 맵(620)을 출력한다. 변환 특징 맵(620)은 양자화되고 엔트로피 부호화되어 비트스트림으로 복호화 측에 전달된다. 복호화 측에서 비트스트림으로부터 획득된 변환 특징 맵(620)은 엔트로피 복호화되고 역양자화된다. 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)을 입력으로 하여 코딩 컨텍스트 신경망(630)으로부터 출력되는 역변환을 위한 코딩 컨텍스트 특징 맵(631)은 M3xN3xC3이다. 역양자화된 변환 특징 맵(620)과 코딩 컨텍스트 특징 맵(631)은 역변환 신경망(625)에 입력되어 역변환된 MxN 크기의 잔차 블록(635)이 획득된다. MxN 크기의 잔차 블록(635)과 MxN 크기의 예측 블록(603)을 더함(640)으로써 현재 블록의 MxN 크기의 복원 블록(645)이 획득된다. 여기서, M, M1, M2, M3는 동일할 필요가 없고 다른 값일 수 있고, N, N1, N2, N3는 동일할 필요가 없고 다른 값일 수 있고, C1, C2, C3는 동일할 필요가 없고 다른 값일 수 있다.
변환 신경망(615)으로부터 출력되는 변환 특징 맵(620)은 비트스트림으로 전송되기 때문에 크기가 제한될 필요가 있다. 따라서, 변환 신경망(615)은 비트레이트를 감소시키기 위해 출력되는 변환 특징 맵(620)의 크기가 입력되는 정보들보다 작은 크기로 출력되도록 훈련된 신경망이고, 역변환 신경망(625)은 입력되는 변환 특징 맵(620)으로부터 데이터를 복원하여 잔차 블록(635)을 출력하도록 훈련된 신경망이다.
변환을 위한 코딩 컨텍스트 신경망(610)은 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)로부터 변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망이고, 역변환을 위한 코딩 컨텍스트 신경망(630)은 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)로부터 역변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망일 수 있다.
또한, 변환을 위한 코딩 컨텍스트 신경망(610)은 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604) 중 일부 정보를 어떠한 처리 없이 그대로 변환 신경망(615)에 입력되도록 전달하고, 역변환을 위한 코딩 컨텍스트 신경망(630)은 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604) 중 일부 정보를 어떠한 처리 없이 그대로 역변환 신경망(625)에 입력되도록 전달할 수 있다.
또한, 변환 신경망(615)의 출력은 변환 후 양자화된 변환 계수에 대한 변환 특징 맵(620)이고, 역변환 신경망(625)의 출력은 역양자화된 후 역변환된 잔차 블록(635)일 수 있다. 즉, 변환 신경망(615)은 변환과 양자화가 함께 수행되는 신경망이고, 역변환 신경망(625)은 역양자화와 역변환이 함께 수행되는 신경망일 수 있다.
구체적으로, 부호화 측에서, 잔차 블록(601)의 크기가 MxN이고, 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)을 입력으로 하여 코딩 컨텍스트 신경망(610)으로부터 출력되는 변환을 위한 코딩 컨텍스트 특징 맵(611)은 M1xN1xC1이다. 코딩 컨텍스트 특징 맵(611)과 잔차 블록(601)은 변환 신경망(615)에 입력되어 M2xN2XC2의 잔차 블록(601)의 양자화된 변환 계수에 대한 변환 특징 맵(620)이 획득된다. 변환 특징 맵(620)은 엔트로피 부호화되어 비트스트림으로 복호화 측에 전달된다. 복호화 측에서 비트스트림으로부터 획득된 변환 특징 맵(620)은 엔트로피 복호화된다. 현재 블록의 주변 픽셀들(602), 현재 블록의 예측 블록(603), 및 코딩 컨텍스트 정보(604)을 입력으로 하여 코딩 컨텍스트 신경망(630)으로부터 출력되는 역변환을 위한 코딩 컨텍스트 특징 맵(631)은 M3xN3xC3이다. 엔트로피 복호화된 변환 특징 맵(620)과 코딩 컨텍스트 특징 맵(631)은 역변환 신경망(625)에 입력되어 역양자화되고 역변환된 MxN 크기의 잔차 블록(635)이 획득된다. MxN 크기의 잔차 블록(635)과 MxN 크기의 예측 블록(603)을 더함(640)으로써 현재 블록의 MxN 크기의 복원 블록(645)이 획득된다. 여기서, M, M1, M2, M3는 동일할 필요가 없고 다른 값일 수 있고, N, N1, N2, N3는 동일할 필요가 없고 다른 값일 수 있고, C1, C2, C3는 동일할 필요가 없고 다른 값일 수 있다.
도 6에서 상술된 블록의 크기에 따른 계산 방식들은 후술되는 도 7 및 도 8에도 동일하게 적용될 수 있다.
도 6에서 이용되는 신경망들의 훈련 방법은 도 18에서 후술된다.
도 7은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 7을 참고하면, 변환은 현재 블록의 잔차 블록(701)에 적용된다. 잔차 블록(701)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(703)의 차이를 나타낸다. 변환은 부호화 과정의 일부로 잔차 블록(701)에 수행된다. 잔차 블록(701)의 변환을 위해 변환 신경망(715)과 코딩 컨텍스트 신경망(710)이 이용된다. 코딩 컨텍스트 신경망(710)에는 현재 블록의 주변 픽셀들(702), 즉, 참조 픽셀들, 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)가 입력되고, 코딩 컨텍스트 신경망(710)으로부터 코딩 컨텍스트 특징 맵(711)이 출력된다. 코딩 컨텍스트 특징 맵(711)과 잔차 블록(701)은 변환 신경망(715)에 입력되어 잔차 블록(701)의 변환 계수에 대한 변환 특징 맵(720)이 획득된다. 변환 특징 맵(720)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 특징 맵(720)은 엔트로피 복호화되고 역양자화된다. 역변환을 위해 역변환 신경망(725)과 코딩 컨텍스트 신경망(730)이 이용된다. 코딩 컨텍스트 신경망(730)에는 현재 블록의 주변 픽셀들(702), 즉, 참조 픽셀들, 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)가 입력되고, 코딩 컨텍스트 신경망(730)으로부터 코딩 컨텍스트 특징 맵(731)이 출력된다. 역양자화된 변환 특징 맵과 코딩 컨텍스트 특징 맵(731)은 역변환 신경망(725)에 입력되어 현재 블록의 복원 블록(745)이 획득된다.
변환 신경망(715)으로부터 출력되는 변환 특징 맵(720)은 비트스트림으로 전송되기 때문에 크기가 제한될 필요가 있다. 따라서, 변환 신경망(715)은 비트레이트를 감소시키기 위해 출력되는 변환 특징 맵(720)의 크기가 입력되는 정보들보다 작은 크기로 출력되도록 훈련된 신경망이고, 역변환 신경망(725)은 입력되는 변환 특징 맵(720)으로부터 데이터를 복원하여 복원 블록(745)을 출력하도록 훈련된 신경망이다.
변환을 위한 코딩 컨텍스트 신경망(710)은 현재 블록의 주변 픽셀들(702), 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)로부터 변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망이고, 역변환을 위한 코딩 컨텍스트 신경망(730)은 현재 블록의 주변 픽셀들(702), 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)로부터 역변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망일 수 있다.
또한, 변환을 위한 코딩 컨텍스트 신경망(710)은 현재 블록의 주변 픽셀들(702), 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704) 중 일부 정보를 어떠한 처리 없이 그대로 변환 신경망(715)에 입력되도록 전달하고, 역변환을 위한 코딩 컨텍스트 신경망(730)은 현재 블록의 주변 픽셀들(702), 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704) 중 일부 정보를 어떠한 처리 없이 그대로 역변환 신경망(725)에 입력되도록 전달할 수 있다.
또한, 변환 신경망(715)의 출력은 변환 후 양자화된 변환 계수에 대한 변환 특징 맵(720)이고, 역변환 신경망(725)의 출력은 역양자화된 후 역변환된 복원 블록(745)일 수 있다. 즉, 변환 신경망(715)은 변환과 양자화가 함께 수행되는 신경망이고, 역변환 신경망(725)은 역양자화와 역변환이 함께 수행되는 신경망일 수 있다.
구체적으로, 부호화 과정에서 현재 블록의 원본 블록과 현재 블록의 예측 블록(703)의 차이인 현재 블록의 잔차 블록(701)이 변환의 대상이 된다. 잔차 블록(701)의 변환을 위해 변환 신경망(715)과 코딩 컨텍스트 신경망(710)이 이용된다. 코딩 컨텍스트 신경망(710)에는 현재 블록의 주변 픽셀들(702), 즉, 참조 픽셀들, 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)가 입력되고, 코딩 컨텍스트 신경망(710)으로부터 코딩 컨텍스트 특징 맵(711)이 출력된다. 코딩 컨텍스트 특징 맵(711)과 잔차 블록(701)은 변환 신경망(715)에 입력되어 잔차 블록(701)의 양자화된 변환 계수에 대한 변환 특징 맵(720)이 획득된다. 변환 특징 맵(720)은 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 특징 맵(720)은 엔트로피 복호화된다. 역변환을 위해 역변환 신경망(725)과 코딩 컨텍스트 신경망(730)이 이용된다. 코딩 컨텍스트 신경망(730)에는 현재 블록의 주변 픽셀들(702), 즉, 참조 픽셀들, 현재 블록의 예측 블록(703), 및 코딩 컨텍스트 정보(704)가 입력되고, 코딩 컨텍스트 신경망(730)으로부터 코딩 컨텍스트 특징 맵(731)이 출력된다. 엔트로피 복호화된 변환 특징 맵과 코딩 컨텍스트 특징 맵(731)은 역변환 신경망(725)에 입력되어 현재 블록의 복원 블록(745)이 획득된다.
도 8은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 및 복호화 과정을 설명하기 위한 도면이다.
도 8을 참고하면, 변환은 현재 블록의 잔차 블록(801)에 적용된다. 잔차 블록(801)은 현재 블록의 원본 블록과 현재 블록의 예측 블록(803)의 차이를 나타낸다. 변환은 부호화 과정의 일부로 잔차 블록(801)에 수행된다. 잔차 블록(801)의 변환을 위해 변환 신경망(815)과 코딩 컨텍스트 신경망(810)이 이용된다. 코딩 컨텍스트 신경망(810)에는 현재 블록의 주변 픽셀들(802), 즉, 참조 픽셀들, 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)가 입력되고, 코딩 컨텍스트 신경망(810)으로부터 코딩 컨텍스트 특징 맵(811)이 출력된다. 코딩 컨텍스트 특징 맵(811)과 잔차 블록(801)은 변환 신경망(815)에 입력되어 변환 특징 맵(820)이 획득된다. 변환 특징 맵(820)은 양자화되고 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 특징 맵(820)은 엔트로피 복호화되고 역양자화된다. 역변환을 위해 역변환 신경망(825)과 코딩 컨텍스트 신경망(830)이 이용된다. 코딩 컨텍스트 신경망(830)에는 현재 블록의 주변 픽셀들(802), 즉, 참조 픽셀들, 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)가 입력되고, 코딩 컨텍스트 신경망(830)으로부터 코딩 컨텍스트 특징 맵(831)이 출력된다. 역양자화된 변환 특징 맵과 코딩 컨텍스트 특징 맵(831)은 역변환 신경망(825)에 입력되어 현재 블록의 복원 블록과 현재 블록의 참조 픽셀들을 포함하는 확장된 복원 블록(845)이 획득된다.
현재 블록의 복원 블록과 현재 블록의 참조 픽셀들을 포함하는 확장된 복원 블록(845)이 획득됨으로써, 디블로킹 필터 과정에 도움이 될 수 있다. 즉, 디블로킹 필터링의 결과가 더 나아질 수 있다.
변환 신경망(815)으로부터 출력되는 변환 특징 맵(820)은 비트스트림으로 전송되기 때문에 크기가 제한될 필요가 있다. 따라서, 변환 신경망(815)은 비트레이트를 감소시키기 위해 출력되는 변환 특징 맵(820)의 크기가 입력되는 정보들보다 작은 크기로 출력되도록 훈련된 신경망이고, 역변환 신경망(825)은 입력되는 변환 특징 맵(820)으로부터 데이터를 복원하여 현재 블록의 복원 블록과 현재 블록의 참조 픽셀들을 포함하는 확장된 복원 블록(845)을 출력하도록 훈련된 신경망이다.
변환을 위한 코딩 컨텍스트 신경망(810)은 현재 블록의 주변 픽셀들(802), 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)로부터 변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망이고, 역변환을 위한 코딩 컨텍스트 신경망(830)은 현재 블록의 주변 픽셀들(802), 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)로부터 역변환에 필수적인 정보들을 특징 맵의 형태로 출력하는 신경망일 수 있다.
또한, 변환을 위한 코딩 컨텍스트 신경망(810)은 현재 블록의 주변 픽셀들(802), 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804) 중 일부 정보를 어떠한 처리 없이 그대로 변환 신경망(815)에 입력되도록 전달하고, 역변환을 위한 코딩 컨텍스트 신경망(830)은 현재 블록의 주변 픽셀들(802), 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804) 중 일부 정보를 어떠한 처리 없이 그대로 역변환 신경망(825)에 입력되도록 전달할 수 있다.
또한, 변환 신경망(815)의 출력은 변환 후 양자화된 변환 계수에 대한 변환 특징 맵(820)이고, 역변환 신경망(825)의 출력은 역양자화된 후 역변환된 확장된 복원 블록(845)일 수 있다. 즉, 변환 신경망(815)은 변환과 양자화가 함께 수행되는 신경망이고, 역변환 신경망(825)은 역양자화와 역변환이 함께 수행되는 신경망일 수 있다.
구체적으로, 부호화 과정에서 현재 블록의 원본 블록과 현재 블록의 예측 블록(803)의 차이인 현재 블록의 잔차 블록(801)이 변환의 대상이 된다. 잔차 블록(801)의 변환을 위해 변환 신경망(815)과 코딩 컨텍스트 신경망(810)이 이용된다. 코딩 컨텍스트 신경망(810)에는 현재 블록의 주변 픽셀들(802), 즉, 참조 픽셀들, 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)가 입력되고, 코딩 컨텍스트 신경망(810)으로부터 코딩 컨텍스트 특징 맵(811)이 출력된다. 코딩 컨텍스트 특징 맵(811)과 잔차 블록(801)은 변환 신경망(815)에 입력되어 잔차 블록(801)의 양자화된 변환 계수에 대한 변환 특징 맵(820)이 획득된다. 변환 특징 맵(820)은 엔트로피 부호화되어 복호화 측에 비트스트림으로 전달된다.
복호화 과정에서, 비트스트림으로부터 획득된 변환 특징 맵(820)은 엔트로피 복호화된다. 역변환을 위해 역변환 신경망(825)과 코딩 컨텍스트 신경망(830)이 이용된다. 코딩 컨텍스트 신경망(830)에는 현재 블록의 주변 픽셀들(802), 즉, 참조 픽셀들, 현재 블록의 예측 블록(803), 및 코딩 컨텍스트 정보(804)가 입력되고, 코딩 컨텍스트 신경망(830)으로부터 코딩 컨텍스트 특징 맵(831)이 출력된다. 엔트로피 복호화된 변환 특징 맵과 코딩 컨텍스트 특징 맵(831)은 역변환 신경망(825)에 입력되어 현재 블록의 복원 블록과 현재 블록의 참조 픽셀들을 포함하는 확장된 복원 블록(845)이 획득된다.
도 9는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법의 순서도이다.
도 9를 참고하면, 단계 S910에서, AI에 기반한 영상 부호화 장치(1000)는 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득한다. 잔차 블록은 현재 블록의 원본 블록과 예측 블록의 차이를 나타낼 수 있다. 원본 블록은 AI에 기반한 부호화 장치(1000)가 부호화 또는 복호화하고자 하는 영상의 일 부분이 될 수 있고, 예측 블록은 원본 블록이 어떤 모습일지 추정하기 위해 주변 블록을 기반으로 원본 블록에 대해 생성된다. 잔차 블록은 예측 블록과 원본 블록 내 실제 내용의 차이를 나타내기 위해 원본 블록에서 예측 블록을 뺀 값일 수 있다.
단계 S930에서, AI에 기반한 영상 부호화 장치(1000)는 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성한다.
단계 S950에서, AI에 기반한 영상 부호화 장치(1000)는 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득한다. 상기 변환은 상기 원본 블록을 나타내는데 필요한 데이터의 양을 감소시키기 위해 수행될 수 있다.
일 실시예에 따라, 생성된 변환 커널은 잔차 블록의 좌측에 적용되는 좌측 변환 커널 및 잔차 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
단계 S970에서, AI에 기반한 영상 부호화 장치(1000)는 변환 블록을 포함하는 비트스트림을 생성한다.
일 실시예에 따라, 변환 블록은 영상 복호화 과정에서 신경망 기반 변환 커널에 의해 역변환되거나 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 역변환될 수 있다.
도 10은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치의 구성을 도시하는 도면이다.
도 10을 참고하면, AI에 기반한 영상 부호화 장치(1000)는 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)를 포함할 수 있다.
잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 프로세서로 구현될 수 있다. 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 10은 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)를 개별적으로 도시하고 있으나, 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 잔차 블록 획득부(1010), 변환 커널 생성부(1020), 변환부(1030), 및 생성부(1040)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
잔차 블록 획득부(1010)는 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득한다.
변환 커널 생성부(1020)는 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성한다.
변환부(1030)는 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득한다.
생성부(1040)는 변환 블록을 포함하는 비트스트림을 생성한다.
비트스트림은 AI에 기반한 영상 복호화 장치(1200)에 전송될 수 있다.
도 11은 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법의 순서도이다.
도 11을 참고하면, 단계 S1110에서, AI에 기반한 영상 부호화 장치(1200)는 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득한다.
일 실시예에 따라, 변환 블록은 신경망 기반 변환 커널에 의해 변환된 블록 또는 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 변환된 블록일 수 있다.
단계 S1130에서, AI에 기반한 영상 부호화 장치(1200)는 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 입력하고 상기 신경망의 출력으로 변환 커널을 획득하여, 변환 블록에 대한 상기 변환 커널을 생성한다.
일 실시예에 따라, 코딩 컨텍스트 정보는 상기 현재 블록의 양자화 파라미터, 상기 현재 블록의 분할 트리 구조, 상기 주변 픽셀들의 분할 구조, 상기 현재 블록의 분할 타입, 상기 주변 픽셀들의 분할 타입 중 적어도 하나를 포함할 수 있다.
단계 S1150에서, AI에 기반한 영상 부호화 장치(1200)는 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득한다.
일 실시예에 따라, 생성된 변환 커널은 상기 변환 블록의 좌측에 적용되는 좌측 변환 커널 및 상기 변환 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
단계 S1170에서, AI에 기반한 영상 부호화 장치(1200)는 잔차 블록 및 예측 블록을 이용하여 현재 블록을 복원한다.
도 12는 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치의 구성을 도시하는 도면이다.
도 12를 참고하면, AI에 기반한 영상 복호화 장치(1200)는 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)를 포함할 수 있다.
획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 프로세서로 구현될 수 있다. 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 12는 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)를 개별적으로 도시하고 있으나, 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 획득부(1210), 역변환 커널 생성부(1220), 역변환부(1230), 및 복원부(1240)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
획득부(1210)는 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득한다.
비트스트림은 AI에 기반한 영상 부호화 장치(1000)로부터 생성되어 전송될 수 있다.
역변환 커널 생성부(1220)는 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 변환 블록에 대한 변환 커널을 생성한다.
역변환부(1230)는 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득한다.
복원부(1240)는 잔차 블록 및 예측 블록을 이용하여 현재 블록을 복원한다.
도 13은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법의 순서도이다.
도 13을 참고하면, 단계 S1310에서, AI에 기반한 영상 부호화 장치(1400)는 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득한다.
단계 S1330에서, AI에 기반한 영상 부호화 장치(1400)는 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성한다.
단계 S1350에서, AI에 기반한 영상 부호화 장치(1400)는 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 입력하고 상기 제2 신경망의 출력으로 변환 특징 맵을 획득하여 상기 변환 블록에 대응하는 상기 변환 특징 맵을 획득한다.
일 실시예에 따라, 제2 신경망은 양자화된 변환 계수에 대한 변환 특징 맵을 출력할 수 있다.
단계 S1370에서, AI에 기반한 영상 부호화 장치(1400)는 변환 특징 맵을 포함하는 비트스트림을 생성한다.
도 14는 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치의 구성을 도시하는 도면이다.
도 14를 참고하면, AI에 기반한 영상 부호화 장치(1400)는 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)를 포함할 수 있다.
잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 프로세서로 구현될 수 있다. 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 14는 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)를 개별적으로 도시하고 있으나 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 잔차 블록 획득부(1410), 코딩 컨텍스트 특징 맵 생성부(1420), 변환부(1430), 및 생성부(1440)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
잔차 블록 획득부(1410)는 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득한다.
코딩 컨텍스트 특징 맵 생성부(1420)는 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성한다.
변환부(1430)는 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 적용하여 변환 블록에 대응하는 변환 특징 맵을 획득한다.
생성부(1440)는 변환 특징 맵을 포함하는 비트스트림을 생성한다.
비트스트림은 AI에 기반한 영상 복호화 장치(1600)에 전송될 수 있다.
도 15는 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법의 순서도이다.
도 15를 참고하면, 단계 S1510에서, AI에 기반한 영상 복호화 장치(1600)는 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득한다.
단계 S1530에서, AI에 기반한 영상 복호화 장치(1600)는 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 입력하고 상기 제1 신경망의 출력으로 코딩 컨텍스트 특징 맵을 획득하여, 상기 변환 블록을 위한 상기 코딩 컨텍스트 특징 맵을 생성한다.
단계 S1550에서, AI에 기반한 영상 복호화 장치(1600)는 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 입력하고 상기 제2 신경망의 출력으로 복원된 현재 블록을 획득하여 상기 현재 블록을 복원한다.
일 실시예에 따라, 제2 신경망은 역양자화 후 역변환된 결과값을 출력할 수 있다.
일 실시예에 따라, 상기 현재 블록을 복원하는 단계는: 상기 변환 특징 맵과 상기 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 상기 잔차 블록을 획득하는 단계; 및 상기 잔차 블록과 상기 예측 블록을 이용하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
일 실시예에 따라, 복원된 현재 블록은 상기 현재 블록의 디블로킹 필터링을 위한 상기 현재 블록의 주변 픽셀들을 더 포함할 수 있다.
도 16은 본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치의 구성을 도시하는 도면이다.
도 16을 참고하면, AI에 기반한 영상 복호화 장치(1600)는 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)를 포함할 수 있다.
획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 프로세서로 구현될 수 있다. 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 메모리에 저장된 인스트럭션에 따라 동작할 수 있다.
도 16은 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)를 개별적으로 도시하고 있으나, 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 하나의 프로세서를 통해 구현될 수 있다. 이 경우, 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 전용 프로세서로 구현되거나, AP(application processor), CPU(central processing unit) 또는 GPU(graphic processing unit)와 같은 범용 프로세서와 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 전용 프로세서의 경우, 본 개시의 실시예를 구현하기 위한 메모리를 포함하거나, 외부 메모리를 이용하기 위한 메모리 처리부를 포함할 수 있다.
획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 복수의 프로세서로 구현될 수도 있다. 이 경우, 획득부(1610), 코딩 컨텍스트 특징 맵 생성부(1620), 역변환부(1630), 및 복원부(1640)는 전용 프로세서들의 조합으로 구현되거나, AP, CPU 또는 GPU와 같은 다수의 범용 프로세서들과 소프트웨어의 조합을 통해 구현될 수도 있다. 또한, 프로세서는 인공지능 전용 프로세서를 포함할 수 있다. 다른 예로, 인공지능 전용 프로세서는 프로세서와 별도의 칩으로 구성될 수 있다.
획득부(1610)는 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득한다.
비트스트림은 AI에 기반한 영상 부호화 장치(1400)로부터 생성되어 전송될 수 있다.
코딩 컨텍스트 특징 맵 생성부(1620)는 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망 에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성한다.
역변환부(1630)는 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 잔차 블록을 획득한다.
복원부(1640)는 잔차 블록과 예측 블록을 이용하여 복원 블록을 획득한다.
일 실시예에 따라, 역변환부(1630)는 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 입력하여 복원 블록을 획득할 수 있다. 이 경우에는, 복원부(1640)는 AI에 기반한 영상 부호화 장치(1600)에서 생략될 수 있다.
일 실시예에 따라, 역변환부(1630)는 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 입력하여 현재 블록의 복원 블록 및 현재 블록의 디블로킹 필터링을 위한 현재 블록의 주변 픽셀들을 포함하는 확장된 복원 블록을 획득할 수 있다. 이 경우에는, 복원부(1640)는 AI에 기반한 영상 부호화 장치(1600)에서 생략될 수 있다.
도 17은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법및 AI에 기반한 영상 복호화 방법에서 이용되는 신경망들의 훈련 방법을 설명하기 위한 도면이다.
도 17을 참고하면, 훈련용 원본 블록(1700), 훈련용 잔차 블록(1701), 훈련용 주변 픽셀들(1702), 훈련용 예측 블록(1703), 훈련용 코딩 컨텍스트 정보(1704)를 이용하여 변환 커널 생성 신경망(1710) 및 역변환 커널 생성 신경망(1730)이 훈련될 수 있다.
구체적으로, 훈련용 주변 픽셀들(1702), 훈련용 예측 블록(1703), 훈련용 코딩 컨텍스트 정보(1704)가 변환 커널 생성 신경망(1710)에 입력되어 훈련용 변환 커널(1711)이 생성된다. 훈련용 잔차 블록(1701)과 훈련용 변환 커널(1711)을 이용하여 변환(1715)함으로써 훈련용 변환 블록(1720)이 획득된다. 훈련용 변환 블록(1720)은 양자화되고 엔트로피 부호화되어 비트스트림의 형태로 전송된다.
또한, 훈련용 변환 블록(1720)은 엔트로피 복호화되고 역양자화된다. 훈련용 주변 픽셀들(1702), 훈련용 예측 블록(1703), 훈련용 코딩 컨텍스트 정보(1704)가 역변환 커널 생성 신경망(1730)에 입력되어 훈련용 역변환 커널(1731)이 생성된다. 훈련용 변환 블록(1720)과 훈련용 역변환 커널(1731)을 이용하여 역변환(1725)함으로써 훈련용 역변환된 잔차 블록(1735)가 획득된다. 훈련용 역변환된 잔차 블록(1735)과 훈련용 예측 블록(1703)을 더함(1740)으로써 훈련용 복원 블록(1745)가 획득된다.
도 17의 훈련 과정에서 비교(1755)를 통해 훈련용 복원 블록(1745)은 훈련용 원본 블록(1700)에 최대한 유사해지고, 훈련용 변환 블록(1720)에 대한 부호화를 통해 생성된 비트스트림의 비트레이트가 최소화되도록 신경망들이 훈련될 수 있다. 이를 위해 도 17에 도시된 바와 같이, 제 1 손실 정보(1750)와 제 2 손실 정보(1760)가 신경망들의 훈련에 이용될 수 있다.
제 2 손실 정보(1760)는 훈련용 원본 블록(1700)과 훈련용 복원 블록(1745) 사이의 차이에 대응할 수 있다. 일 실시예에서, 훈련용 원본 블록(1700)과 훈련용 복원 블록(1745) 사이의 차이는, 훈련용 원본 블록(1700)과 훈련용 복원 블록(1745) 사이의 L1-norm 값, L2-norm 값, SSIM(Structural Similarity) 값, PSNR-HVS(Peak Signal-To-Noise Ratio-Human Vision System) 값, MS-SSIM(Multiscale SSIM) 값, VIF(Variance Inflation Factor) 값 또는 VMAF(Video Multimethod Assessment Fusion) 값 중 적어도 하나를 포함할 수 있다.
제 2 손실 정보(1760)는 훈련용 복원 블록(1745)을 포함하는 복원 영상의 퀄리티를 나타내므로, 퀄리티 손실 정보로 참조될 수도 있다.
제 1 손실 정보(1750)는 훈련용 변환 블록(1720)에 대한 부호화 결과로 생성된 비트스트림의 비트레이트로부터 산출될 수 있다. 예를 들어, 제 1 손실 정보(1750)는 상기 훈련용 잔차 블록(1701)과 상기 훈련용 변환 블록(1720)의 비트레이트 차이에 기초하여 산출될 수 있다.
제 1 손실 정보(1750)는, 훈련용 변환 블록(1720)에 대한 부호화 효율을 나타내므로, 제 2 손실 정보는 압축도 손실 정보로 참조될 수 있다.
변환 커널 생성 신경망(1710) 및 역변환 커널 생성 신경망(1730)은 제 1 손실 정보(1750) 또는 제 2 손실 정보(1760) 중 하나 또는 조합으로부터 도출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
일 실시예에서, 변환 커널 생성 신경망(1710) 및 역변환 커널 생성 신경망(1730)은 미리 설정된 파라미터의 값을 변경하면서 최종 손실 정보가 감소 또는 최소화되도록 할 수 있다.
일 실시예에서, 최종 손실 정보는 하기 수학식 1에 따라 산출될 수 있다.
[수학식 1]
최종 손실 정보 = a*제 1 손실 정보+b*제 2 손실 정보
수학식 1에서, a, b는 각각 제 1 손실 정보(1750) 및 제 2 손실 정보(1760) 각각에 적용되는 가중치이다.
수학식 1에 따르면, 변환 커널 생성 신경망(1710) 및 역변환 커널 생성 신경망(1730)은 훈련용 복원 블록(1745)이 훈련용 원본 블록(1700)에 최대한 유사해지고, 비트스트림의 크기가 최소화되는 방향으로 훈련됨을 알 수 있다.
도 17의 변환 커널 생성 신경망(1710) 및 역변환 커널 생성 신경망(1730)은 각각 전술된 도 3의 변환 커널 생성 신경망(310) 및 역변환 커널 생성 신경망(330)에 대응될 수 있다.
도 4의 변환 커널 생성 신경망(410)은 도 17의 훈련 방법에서 역변환 커널 생성 신경망(1730)을 제외하고 훈련용 역변환 커널(1731) 대신에 종래의 선형 역변환 커널을 이용하여 훈련될 수 있다.
또한, 도 4의 변환 커널 생성 신경망(410)은 도 17의 변환 커널 생성 신경망(1710)에 대응될 수 있다.
도 5의 역변환 커널 생성 신경망(530)은 도 17의 훈련 방법에서 변환 커널 생성 신경망(1710)을 제외하고 훈련용 변환 커널(1711) 대신에 종래의 선형 변환 커널을 이용하여 훈련될 수 있다.
또한, 도 5의 역변환 커널 생성 신경망(530)은 도 17의 역변환 커널 생성 신경망(1730)에 대응될 수 있다.
도 18은 본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법및 AI에 기반한 영상 복호화 방법에서 이용되는 신경망들의 훈련 방법을 설명하기 위한 도면이다.
도 18을 참고하면, 훈련용 원본 블록(1800), 훈련용 잔차 블록(1801), 훈련용 주변 픽셀들(1802), 훈련용 예측 블록(1803), 훈련용 코딩 컨텍스트 정보(1804)를 이용하여 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 역변환 신경망(1825) 및 코딩 컨텍스트 신경망 (1830)이 훈련될 수 있다.
구체적으로, 훈련용 주변 픽셀들(1802), 훈련용 예측 블록(1803), 훈련용 코딩 컨텍스트 정보(1804)가 코딩 컨텍스트 신경망(1810)에 입력되어 훈련용 코딩 컨텍스트 특징 맵(1811)이 생성된다. 훈련용 잔차 블록(1801)과 훈련용 코딩 컨텍스트 특징 맵(1811)을 변환 신경망(1815)에 입력하여 훈련용 변환 특징 맵(1820)이 획득된다. 훈련용 변환 특징 맵(1820)은 양자화되고 엔트로피 부호화되어 비트스트림의 형태로 전송된다.
또한, 훈련용 변환 특징 맵(1820)은 엔트로피 복호화되고 역양자화된다. 훈련용 주변 픽셀들(1802), 훈련용 예측 블록(1803), 훈련용 코딩 컨텍스트 정보(1804)가 코딩 컨텍스트 신경망(1830)에 입력되어 훈련용 코딩 컨텍스트 특징 맵(1831)이 생성된다. 훈련용 변환 특징 맵(1820)과 훈련용 코딩 컨텍스트 특징 맵(1831)이 역변환 신경망(1825)에 적용되어, 훈련용 역변환된 잔차 블록(1835)가 획득된다. 훈련용 역변환된 잔차 블록(1835)과 훈련용 예측 블록(1803)을 더함(1840)으로써 훈련용 복원 블록(1845)가 획득된다.
도 18의 훈련 과정에서 비교(1855)를 통해 훈련용 복원 블록(1845)은 훈련용 원본 블록(1800)에 최대한 유사해지고, 훈련용 변환 특징 맵(1820)에 대한 부호화를 통해 생성된 비트스트림의 비트레이트가 최소화되도록 신경망들이 훈련될 수 있다. 이를 위해 도 18에 도시된 바와 같이, 제 1 손실 정보(1850)와 제 2 손실 정보(1860)가 신경망들의 훈련에 이용될 수 있다.
제 2 손실 정보(1860)는 훈련용 원본 블록(1800)과 훈련용 복원 블록(1845) 사이의 차이에 대응할 수 있다. 일 실시예에서, 훈련용 원본 블록(1800)과 훈련용 복원 블록(1845) 사이의 차이는, 훈련용 원본 블록(1800)과 훈련용 복원 블록(1845) 사이의 L1-norm 값, L2-norm 값, SSIM(Structural Similarity) 값, PSNR-HVS(Peak Signal-To-Noise Ratio-Human Vision System) 값, MS-SSIM(Multiscale SSIM) 값, VIF(Variance Inflation Factor) 값 또는 VMAF(Video Multimethod Assessment Fusion) 값 중 적어도 하나를 포함할 수 있다.
제 2 손실 정보(1860)는 훈련용 복원 블록(1845)을 포함하는 복원 영상의 퀄리티와 관련이 있으므로, 퀄리티 손실 정보로 참조될 수도 있다.
제 1 손실 정보(1850)는 훈련용 변환 특징 맵(1820)에 대한 부호화 결과로 생성된 비트스트림의 비트레이트로부터 산출될 수 있다. 예를 들어, 제 1 손실 정보(1850)는 상기 훈련용 잔차 블록(1801)과 상기 훈련용 변환 블록(1820) 사이의 비트레이트 차이에 기초하여 산출될 수 있다.
제 1 손실 정보(1850)는, 훈련용 변환 특징 맵(1820)에 대한 부호화 효율에 관련되므로, 제 2 손실 정보는 압축도 손실 정보로 참조될 수 있다.
코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 역변환 신경망(1825) 및 코딩 컨텍스트 신경망 (1830)은 제 1 손실 정보(1850) 또는 제 2 손실 정보(1860) 중 하나 또는 조합으로부터 도출되는 최종 손실 정보가 감소 또는 최소화되도록 훈련될 수 있다.
일 실시예에서, 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 역변환 신경망(1825) 및 코딩 컨텍스트 신경망 (1830)은 미리 설정된 파라미터의 값을 변경하면서 최종 손실 정보가 감소 또는 최소화되도록 할 수 있다.
일 실시예에서, 최종 손실 정보는 하기 수학식 2에 따라 산출될 수 있다.
[수학식 2]
최종 손실 정보 = a*제 1 손실 정보+b*제 2 손실 정보
수학식 2에서, a, b는 각각 제 1 손실 정보(1850) 및 제 2 손실 정보(1860) 각각에 적용되는 가중치이다.
수학식 2에 따르면, 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 역변환 신경망(1825) 및 코딩 컨텍스트 신경망 (1830)은 훈련용 복원 블록(1845)이 훈련용 원본 블록(1800)에 최대한 유사해지고, 비트스트림의 크기가 최소화되는 방향으로 훈련됨을 알 수 있다.
일 실시예에 따라, 변환 신경망(1815)은 변환 계수에 대한 결과 뿐만 아니라 양자화 결과도 함께 출력될 수 있다. 즉, 변환 신경망(1815)으로부터 획득되는 훈련용 변환 특징 맵(1820)은 양자화된 변환 계수에 대한 변환 특징 맵일 수 있다. 따라서, 훈련용 변환 특징 맵(1820)은 엔트로피 부호화되어 비트스트림의 형태로 전송된다.
또한, 역변환 신경망(1825)는 역변환 뿐만 아니라 역양자화도 수행될 수 있다. 즉, 훈련용 변환 특징 맵(1820)은 엔트로피 복호화되고, 훈련용 변환 특징 맵(1820)과 훈련용 코딩 컨텍스트 특징 맵(1831)이 역변환 신경망(1825)에 적용되어, 훈련용 역양자화 및 역변환된 잔차 블록(1835)가 획득될 수 있다.
도 6의 코딩 컨텍스트 신경망(610), 변환 신경망(615), 역변환 신경망(625) 및 코딩 컨텍스트 신경망 (630)는 각각 도 18의 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 역변환 신경망(1825) 및 코딩 컨텍스트 신경망 (1830)에 대응될 수 있다.
또한, 도 7의 코딩 컨텍스트 신경망(710), 변환 신경망(715), 코딩 컨텍스트 신경망 (730)는 각각 각각 도 18의 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 코딩 컨텍스트 신경망 (1830)에 대응하고, 도 7의 역변환 신경망(725)은 도 18의 역변환 신경망(1825)과 다르게 출력되는 값이 훈련용 잔차 블록(1835)이 아니고 훈련용 복원 블록(1845)일 수 있다.
또한, 도 8의 코딩 컨텍스트 신경망(810), 변환 신경망(815), 코딩 컨텍스트 신경망 (830)는 각각 각각 도 18의 코딩 컨텍스트 신경망(1810), 변환 신경망(1815), 코딩 컨텍스트 신경망 (1830)에 대응하고, 도 8의 역변환 신경망(825)은 도 18의 역변환 신경망(1825)과 다르게 출력되는 값이 훈련용 잔차 블록(1835)이 아니고 훈련용 복원 블록(1845) 및 훈련용 복원 블록(1845)의 주변 픽셀들을 포함하는 확장된 복원 블록일 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득하는 단계; 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 변환 블록에 대한 변환 커널 을 생성하는 단계; 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득하는 단계; 및 잔차 블록 및 예측 블록을 이용하여 상기 현재 블록을 복원하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법은 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것과 달리 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 신경망을 통해 더 적합한 변환 커널이 이용가능하고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하므로, 변환 커널의 결정을 위한 추가적인 정보의 전송이 불필요하여 전송되는 데이터가 증가되지 않는다. 즉, 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 비트레이트 측면에서 좋은 변환을 생성하는데 필요한 보완 정보만 전송하면 되므로 비트레이트가 작아지고, 주변 픽셀 및 예측 블록은 잔차 블록과 관련된 정보가 포함되어 있므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있다.
또한, 신경망을 통해 생성된 변환 커널은 변환 대상 블록의 다양한 특징에 대해 매우 적응적이고, 모든 컨텍스트 정보가 유연하게 통합되어 반영된다. 즉, 변환 대상 블록에 가치 있는 정보를 가지는 코딩 컨텍스트를 고려하고, 코딩 컨텍스트는 부호화 및 복호화 측 모두에서 고려될 수 있으므로, 유용성이 극대화된다.
일 실시예에 따라, 코딩 컨텍스트 정보는 현재 블록의 양자화 파라미터, 현재 블록의 분할 트리 구조, 주변 픽셀들의 분할 구조, 현재 블록의 분할 타입, 주변 픽셀들의 분할 타입 중 적어도 하나를 포함할 수 있다.
일 실시예에 따라, 변환 블록은 신경망 기반 변환 커널에 의해 변환된 블록 또는 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널 에 의해 변환된 블록일 수 있다.
일 실시예에 따라, 생성된 변환 커널은 변환 블록의 좌측에 적용되는 좌측 변환 커널 및 변환 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록을 획득하고, 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 변환 블록에 대한 변환 커널을 생성하고, 생성된 변환 커널을 변환 블록에 적용하여, 잔차 블록을 획득하고, 잔차 블록 및 상기 예측 블록을 이용하여 상기 현재 블록을 복원할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치는 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것과 달리 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 신경망을 통해 더 적합한 변환 커널이 이용가능하고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하므로, 변환 커널의 결정을 위한 추가적인 정보의 전송이 불필요하여 전송되는 데이터가 증가되지 않는다. 즉, 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 비트레이트 측면에서 좋은 변환을 생성하는데 필요한 보완 정보만 전송하면 되므로 비트레이트가 작아지고, 주변 픽셀 및 예측 블록은 잔차 블록과 관련된 정보가 포함되어 있므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있다.
일 실시예에 따라, 코딩 컨텍스트 정보는 현재 블록의 양자화 파라미터, 현재 블록의 분할 트리 구조, 주변 픽셀들의 분할 구조, 현재 블록의 분할 타입, 주변 픽셀들의 분할 타입 중 적어도 하나를 포함할 수 있다.
일 실시예에 따라, 변환 블록은 신경망 기반 변환 커널에 의해 변환된 블록 또는 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널 에 의해 변환된 블록일 수 있다.
일 실시예에 따라, 생성된 변환 커널은 변환 블록의 좌측에 적용되는 좌측 변환 커널 및 변환 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하는 단계; 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성하는 단계; 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득하는 단계; 및 변환 블록을 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법은 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것과 달리 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 신경망을 통해 더 적합한 변환 커널이 이용가능하고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하므로, 변환 커널의 결정을 위한 추가적인 정보의 전송이 불필요하여 전송되는 데이터가 증가되지 않는다. 즉, 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 비트레이트 측면에서 좋은 변환을 생성하는데 필요한 보완 정보만 전송하면 되므로 비트레이트가 작아지고, 주변 픽셀 및 예측 블록은 잔차 블록과 관련된 정보가 포함되어 있므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있다.
일 실시예에 따라, 변환 블록은 영상 복호화 과정에서 신경망 기반 변환 커널에 의해 역변환되거나 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 역변환될 수 있다.
일 실시예에 따라, 생성된 변환 커널은 잔차 블록의 좌측에 적용되는 좌측 변환 커널 및 잔차 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하고, 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 적용하여, 잔차 블록의 변환 블록에 대한 변환 커널을 생성하고, 생성된 변환 커널을 잔차 블록에 적용하여 변환 블록을 획득하고, 변환 블록을 포함하는 비트스트림을 생성할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치는 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것과 달리 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 신경망을 통해 더 적합한 변환 커널이 이용가능하고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하므로, 변환 커널의 결정을 위한 추가적인 정보의 전송이 불필요하여 전송되는 데이터가 증가되지 않는다. 즉, 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 비트레이트 측면에서 좋은 변환을 생성하는데 필요한 보완 정보만 전송하면 되므로 비트레이트가 작아지고, 주변 픽셀 및 예측 블록은 잔차 블록과 관련된 정보가 포함되어 있므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있다.
일 실시예에 따라, 변환 블록은 영상 복호화 과정에서 신경망 기반 변환 커널에 의해 역변환되거나 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 역변환될 수 있다.
일 실시예에 따라, 생성된 변환 커널은 잔차 블록의 좌측에 적용되는 좌측 변환 커널 및 잔차 블록의 우측에 적용되는 우측 변환 커널을 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 방법은, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득하는 단계; 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하는 단계; 및 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 현재 블록을 복원하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 방법은 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 코딩 컨텍스트 특징 맵을 생성하는 신경망을 통해 코딩 컨텍스트에 대한 특징 맵을 생성하고, 코딩 컨텍스트에 대한 특징 맵 및 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵을 획득하여 역변환을 위한 신경망에 입력하여, 현재 블록을 복원함으로써, 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵 외에 다른 추가적인 정보를 전송하지 않아 비트레이트가 작아지고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있고, 종래의 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것에 비해 변환 대상 블록의 다양한 특징에 적합한 변환 및 역변환이 적용된 결과가 획득될 수 있다.
일 실시예에 따라, 제2 신경망은 역양자화 후 역변환된 결과값을 출력할 수 있다.
일 실시예에 따라, 현재 블록을 복원하는 단계는, 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 잔차 블록을 획득하는 단계; 및 잔차 블록과 예측 블록을 이용하여 현재 블록을 복원하는 단계를 포함할 수 있다.
일 실시예에 따라, 복원된 현재 블록은 현재 블록의 디블로킹 필터링을 위한 현재 블록의 주변 픽셀들을 더 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 복호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 비트스트림으로부터 현재 블록의 잔차 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득하고, 현재 블록에 대한 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하고, 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 현재 블록을 복원할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 복호화 장치는 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 코딩 컨텍스트 특징 맵을 생성하는 신경망을 통해 코딩 컨텍스트에 대한 특징 맵을 생성하고, 코딩 컨텍스트에 대한 특징 맵 및 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵을 획득하여 역변환을 위한 신경망에 입력하여, 현재 블록을 복원함으로써, 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵 외에 다른 추가적인 정보를 전송하지 않아 비트레이트가 작아지고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있고, 종래의 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것에 비해 변환 대상 블록의 다양한 특징에 적합한 변환 및 역변환이 적용된 결과가 획득될 수 있다.
일 실시예에 따라, 제2 신경망은 역양자화 후 역변환된 결과값을 출력할 수 있다.
일 실시예에 따라, 현재 블록을 복원하는 것은, 변환 특징 맵과 코딩 컨텍스트 특징 맵을 제2 신경망에 적용하여 잔차 블록을 획득하고 잔차 블록과 예측 블록을 이용하여 현재 블록을 복원하는 것일 수 있다.
일 실시예에 따라, 복원된 현재 블록은 현재 블록의 디블로킹 필터링을 위한 현재 블록의 주변 픽셀들을 더 포함할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 방법은, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하는 단계; 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하는 단계; 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 적용하여 변환 블록에 대응하는 변환 특징 맵을 획득하는 단계; 및 변환 특징 맵을 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 방법은 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 코딩 컨텍스트 특징 맵을 생성하는 신경망을 통해 코딩 컨텍스트에 대한 특징 맵을 생성하고, 코딩 컨텍스트에 대한 특징 맵 및 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵을 획득하여 역변환을 위한 신경망에 입력하여, 현재 블록을 복원함으로써, 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵 외에 다른 추가적인 정보를 전송하지 않아 비트레이트가 작아지고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있고, 종래의 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것에 비해 변환 대상 블록의 다양한 특징에 적합한 변환 및 역변환이 적용된 결과가 획득될 수 있다.
일 실시예에 따라, 제2 신경망은 양자화된 변환 계수에 대한 변환 특징 맵을 출력할 수 있다.
일 실시예에 따른 AI에 기반한 영상 부호화 장치는, 하나 이상의 인스트럭션을 저장하는 메모리; 및 상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는, 현재 블록의 예측 블록과 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득하고, 예측 블록, 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 적용하여, 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성하고, 코딩 컨텍스트 특징 맵 및 잔차 블록을 제2 신경망에 적용하여 변환 블록에 대응하는 변환 특징 맵을 획득하고, 변환 특징 맵을 포함하는 비트스트림을 생성할 수 있다.
본 개시의 일 실시예에 따른 AI에 기반한 영상 부호화 장치는 주변 픽셀, 예측 블록, 및 코딩 컨텍스트 정보를 이용하는 코딩 컨텍스트 특징 맵을 생성하는 신경망을 통해 코딩 컨텍스트에 대한 특징 맵을 생성하고, 코딩 컨텍스트에 대한 특징 맵 및 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵을 획득하여 역변환을 위한 신경망에 입력하여, 현재 블록을 복원함으로써, 신경망을 통해 생성된 변환 계수에 대한 변환 특징 맵 외에 다른 추가적인 정보를 전송하지 않아 비트레이트가 작아지고, 주변 픽셀, 예측 블록, 및 코딩 컨텍스트는 복호화 측에서도 이용가능하므로, 역변환을 위해 복호화 측에 전송되는 오버헤드가 제어될 수 있고, 종래의 종래 표준의 적은 수의 고정된 변환 커널을 이용하는 것에 비해 변환 대상 블록의 다양한 특징에 적합한 변환 및 역변환이 적용된 결과가 획득될 수 있다.
일 실시예에 따라, 제2 신경망은 양자화된 변환 계수에 대한 변환 특징 맵을 출력할 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.

Claims (15)

  1. 비트스트림으로부터 현재 블록에 대한 변환 블록을 획득(S1110)하는 단계;
    상기 현재 블록에 대한 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 입력하여, 상기 신경망으로부터 변환 커널을 획득(S1130)하는 단계;
    상기 변환 커널을 상기 변환 블록에 적용하여, 상기 현재 블록의 잔차 블록을 획득(S1150)하는 단계; 및
    상기 잔차 블록 및 상기 예측 블록을 이용하여 상기 현재 블록을 복원(S1170)하는 단계를 포함하는, AI에 기반한 영상 복호화 방법.
  2. 제1항에 있어서,
    상기 코딩 컨텍스트 정보는 상기 현재 블록의 양자화 파라미터, 상기 현재 블록의 분할 트리 구조, 상기 주변 픽셀들의 분할 구조, 상기 현재 블록의 분할 타입, 상기 주변 픽셀들의 분할 타입 중 적어도 하나를 포함하는, AI에 기반한 영상 복호화 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 변환 블록은 신경망 기반 변환 커널에 의해 변환된 블록 또는 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 변환된 블록인, AI에 기반한 영상 복호화 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 생성된 변환 커널은 상기 변환 블록의 좌측에 적용되는 좌측 변환 커널 및 상기 변환 블록의 우측에 적용되는 우측 변환 커널을 포함하는, AI에 기반한 영상 복호화 방법.
  5. 비트스트림으로부터 현재 블록에 대한 변환 블록에 대응하는 변환 특징 맵을 획득(S1510)하는 단계;
    상기 현재 블록에 대한 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 입력하여, 상기 변환 블록을 위한 코딩 컨텍스트 특징 맵을 생성(S1530)하는 단계; 및
    상기 변환 특징 맵과 상기 코딩 컨텍스트 특징 맵을 제2 신경망에 입력하여, 상기 제2 신경망으로부터 획득된 잔차 블록에 기초하여, 상기 현재 블록을 복원(S1550)하는 단계를 포함하는, AI에 기반한 영상 복호화 방법.
  6. 제5항에 있어서,
    상기 제2 신경망은 역양자화 후 역변환된 결과값을 출력하는, AI에 기반한 영상 복호화 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 현재 블록을 복원하는 단계는:
    상기 변환 특징 맵과 상기 코딩 컨텍스트 특징 맵을 제2 신경망에 입력하여 상기 제2 신경망으로부터 상기 잔차 블록을 획득하는 단계; 및
    상기 잔차 블록과 상기 예측 블록을 이용하여 상기 현재 블록을 복원하는 단계를 포함하는, AI에 기반한 영상 복호화 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 복원된 현재 블록은 상기 현재 블록의 디블로킹 필터링을 위한 상기 현재 블록의 주변 픽셀들을 더 포함하는, AI에 기반한 영상 복호화 방법.
  9. 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득(S910)하는 단계;
    상기 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 입력하여, 상기 신경망으로부터 변환 커널을 생성(S930)하는 단계;
    상기 변환 커널을 상기 잔차 블록에 적용하여 상기 변환 블록을 획득(S950)하는 단계; 및
    상기 변환 블록을 포함하는 비트스트림을 생성(S970)하는 단계를 포함하는, AI에 기반한 영상 부호화 방법.
  10. 제9항에 있어서,
    상기 변환 블록은 영상 복호화 과정에서 신경망 기반 변환 커널에 의해 역변환되거나 복수의 미리정해진 선형 변환 커널 중 하나의 선형 변환 커널에 의해 역변환되는, AI에 기반한 영상 부호화 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 생성된 변환 커널은 상기 잔차 블록의 좌측에 적용되는 좌측 변환 커널 및 상기 잔차 블록의 우측에 적용되는 우측 변환 커널을 포함하는, AI에 기반한 영상 부호화 방법.
  12. 현재 블록의 예측 블록과 상기 현재 블록의 원본 블록에 기초하여 잔차 블록을 획득(S1310)하는 단계;
    상기 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 제1 신경망에 입력하여, 상기 제1 신경망으로부터 코딩 컨텍스트 특징 맵을 생성(S1330)하는 단계;
    상기 코딩 컨텍스트 특징 맵 및 상기 잔차 블록을 제2 신경망에 입력하여 상기 제2 신경망으로부터 변환 특징 맵을 획득(S1350)하는 단계; 및
    상기 변환 특징 맵을 포함하는 비트스트림을 생성(S1370)하는 단계를 포함하는, AI에 기반한 영상 부호화 방법.
  13. 제12항에 있어서,
    상기 제2 신경망은 양자화된 변환 계수에 대한 변환 특징 맵을 출력하는, AI에 기반한 영상 부호화 방법.
  14. AI에 기반한 영상 복호화 장치(1200)에 있어서,
    하나 이상의 인스트럭션을 저장하는 메모리; 및
    상기 하나 이상의 인스트럭션에 따라 동작하는 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    비트스트림으로부터 현재 블록에 대한 변환 블록을 획득하고,
    상기 현재 블록에 대한 예측 블록, 상기 현재 블록의 주변 픽셀들, 및 코딩 컨텍스트 정보를 신경망에 입력하여, 상기 신경망으로부터 변환 커널을 획득하고,
    상기 변환 커널을 상기 변환 블록에 적용하여, 상기 현재 블록의 잔차 블록을 획득하고,
    상기 잔차 블록 및 상기 예측 블록을 이용하여 상기 현재 블록을 복원하는, AI에 기반한 영상 복호화 장치.
  15. 제14항에 있어서,
    상기 코딩 컨텍스트 정보는 상기 현재 블록의 양자화 파라미터, 상기 현재 블록의 분할 트리 구조, 상기 주변 픽셀들의 분할 구조, 상기 현재 블록의 분할 타입, 상기 주변 픽셀들의 분할 타입 중 적어도 하나를 포함하는, AI에 기반한 영상 복호화 장치.
PCT/KR2023/014500 2022-10-12 2023-09-22 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법 WO2024080623A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/372,409 US20240129546A1 (en) 2022-10-12 2023-09-25 Artificial intelligence-based image encoding and decoding apparatus, and image encoding and decoding method thereby

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220130879 2022-10-12
KR10-2022-0130879 2022-10-12
KR1020220170054A KR20240050971A (ko) 2022-10-12 2022-12-07 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
KR10-2022-0170054 2022-12-07

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/372,409 Continuation US20240129546A1 (en) 2022-10-12 2023-09-25 Artificial intelligence-based image encoding and decoding apparatus, and image encoding and decoding method thereby

Publications (1)

Publication Number Publication Date
WO2024080623A1 true WO2024080623A1 (ko) 2024-04-18

Family

ID=90669561

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/014500 WO2024080623A1 (ko) 2022-10-12 2023-09-22 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Country Status (1)

Country Link
WO (1) WO2024080623A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065063A (ko) * 2019-11-26 2021-06-03 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20210125088A (ko) * 2019-04-17 2021-10-15 후아웨이 테크놀러지 컴퍼니 리미티드 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법
WO2022086376A1 (en) * 2020-10-20 2022-04-28 Huawei Technologies Co., Ltd. Signaling of feature map data
KR20220077931A (ko) * 2020-09-10 2022-06-09 텐센트 아메리카 엘엘씨 컨텍스트 적응 변환 세트
KR102421856B1 (ko) * 2017-12-20 2022-07-18 삼성전자주식회사 영상의 상호작용 처리 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102421856B1 (ko) * 2017-12-20 2022-07-18 삼성전자주식회사 영상의 상호작용 처리 방법 및 장치
KR20210125088A (ko) * 2019-04-17 2021-10-15 후아웨이 테크놀러지 컴퍼니 리미티드 매트릭스 기반 인트라 예측 및 2차 변환 코어 선택을 조화시키는 인코더, 디코더 및 대응 방법
KR20210065063A (ko) * 2019-11-26 2021-06-03 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
KR20220077931A (ko) * 2020-09-10 2022-06-09 텐센트 아메리카 엘엘씨 컨텍스트 적응 변환 세트
WO2022086376A1 (en) * 2020-10-20 2022-04-28 Huawei Technologies Co., Ltd. Signaling of feature map data

Similar Documents

Publication Publication Date Title
WO2016064185A1 (ko) 최적화 함수를 이용하여 그래프 기반 예측을 수행하는 방법 및 장치
WO2017065525A2 (ko) 영상을 부호화 또는 복호화하는 방법 및 장치
WO2013157825A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018128322A1 (ko) 영상 처리 방법 및 이를 위한 장치
WO2011053021A2 (en) Method and apparatus for encoding and decoding image by using rotational transform
WO2017014585A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2011016702A2 (ko) 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
WO2016129872A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2017155334A1 (ko) 비디오 코딩 방법 및 장치
WO2010027170A2 (ko) 예측 방향 전환과 선택적 부호화를 이용한 영상 부호화/복호화 장치 및 방법
WO2016159610A1 (ko) 비디오 신호 처리 방법 및 장치
WO2011071325A2 (en) Method and apparatus for encoding and decoding image by using rotational transform
WO2016190690A1 (ko) 적응적인 분리가능한 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2016104854A1 (ko) 부호화 방법 및 장치와 복호화 방법 및 장치
WO2016048092A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016064123A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019221472A1 (ko) 참조 샘플을 이용하는 비디오 신호 처리 방법 및 장치
WO2020116961A1 (ko) 이차 변환에 기반한 영상 코딩 방법 및 그 장치
WO2016122253A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020167097A1 (ko) 영상 코딩 시스템에서 인터 예측을 위한 인터 예측 타입 도출
WO2021040398A1 (ko) 팔레트 이스케이프 코딩 기반 영상 또는 비디오 코딩
WO2020076069A1 (ko) Atmvp 후보를 기반으로 영상 코딩을 수행하는 장치
WO2016204524A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2016200235A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2021125700A1 (ko) 예측 가중 테이블 기반 영상/비디오 코딩 방법 및 장치

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: 23877551

Country of ref document: EP

Kind code of ref document: A1