WO2017222140A1 - Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치 - Google Patents

Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치 Download PDF

Info

Publication number
WO2017222140A1
WO2017222140A1 PCT/KR2017/001512 KR2017001512W WO2017222140A1 WO 2017222140 A1 WO2017222140 A1 WO 2017222140A1 KR 2017001512 W KR2017001512 W KR 2017001512W WO 2017222140 A1 WO2017222140 A1 WO 2017222140A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
loop filter
filtering
cnn
image
Prior art date
Application number
PCT/KR2017/001512
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 KR1020170017959A external-priority patent/KR101974261B1/ko
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to CN201780051305.7A priority Critical patent/CN109644268B/zh
Priority to JP2018567746A priority patent/JP6761490B2/ja
Priority to US16/313,052 priority patent/US11095887B2/en
Publication of WO2017222140A1 publication Critical patent/WO2017222140A1/ko
Priority to US17/376,162 priority patent/US11627316B2/en
Priority to US18/088,615 priority patent/US20230134212A1/en

Links

Images

Classifications

    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Definitions

  • the following embodiments relate to an encoding method and apparatus and a decoding method and apparatus including a CNN-based in-loop filter.
  • in-loop filtering is a block incubation type, block boundary pixel intensity, motion information, and quantization along a block boundary in order to alleviate the visually very disturbing block boundary caused by the difference in pixel values between adjacent coded blocks by quantization.
  • a method of reducing the difference between pixels at the boundary of the adjacent coding block using residual signal presence information and the like was used.
  • the coefficients are not transmitted by using the fixed filter coefficients, they are effective only to alleviate image quality deterioration at the boundary of the coding block.
  • the recent High Efficiency Video Coding (HEVC) standard not only applies block boundary distortion de-blocking filtering to the coded block boundary, but also additionally the ringing distortion occurring in the vertical direction due to quantization.
  • Sample adaptive offset filtering is used as the second-order in-loop filtering to reduce artefact and brightness difference distortion. In this case, not only does not improve the high-frequency blurring artefact, but also needs to transmit the sample offset and the edge direction type to the decoder, so there is a limit in improving the coding efficiency.
  • Embodiments may provide a technique for removing block boundary distortion, dulling distortion, and high frequency blurring artefact due to quantization through in-loop filtering.
  • embodiments may provide a technique for improving image quality without transmitting in-loop filter coefficients by using a CNN-based in-loop filter trained in the encoding apparatus and the decoding apparatus.
  • embodiments may provide a technique for greatly improving encoding efficiency or decoding efficiency by using a frame having an improved image quality as a reference frame using a CNN-based in-loop filter trained by the encoding apparatus and the decoding apparatus.
  • embodiments may provide a technique of applying in-loop filtering for each slice type.
  • embodiments may provide a technique of applying in-loop filtering for each coding block.
  • embodiments may provide a technique of applying in-loop filtering for each region of a designated image.
  • the CNN-based in-loop filter learning method may include generating filtering information by filtering a residual image corresponding to a difference between an original image and a prediction image, and inversely filtering the filtering information. Generating reconstruction information by generating inverse filtering information, inputting the inverse filtering information to a CNN based in-loop filter, and generating reconstruction information on the reconstruction information and the original image. Calculating a difference between the original source information and correcting a weight of the CNN based in-loop filter based on the difference, wherein the predicted image is based on the original image and the reconstruction information. Is generated.
  • the generating of the filtering information may include generating filtering information by transforming and quantizing the residual image, and the generating of the inverse filtering information may include generating inverse filtering information by inverse quantizing and inversely converting the filtering information. It may comprise the step of generating.
  • the generating of the filtering information may include filtering the residual image based on a quantization interval according to a quantization parameter, and the correcting may include correcting a weight of the quantization interval. It may include.
  • the generating of the filtering information may include filtering the residual image based on the distortion value interval according to the distortion value, and the correcting step may include correcting a weight of the distortion value interval. Can be.
  • the generating of the filtering information may include filtering the residual image based on a texture complexity section of an image characteristic, and the correcting may include correcting a weight of the texture complexity section. have.
  • the generating of the filtering information may include filtering the residual image based on a motion complexity section of an image characteristic, and the correcting may include correcting a weight of the motion complexity section. have.
  • the generating of the reconstruction information may include generating reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter, wherein the reconstruction information includes the original image. It may be of the same type.
  • Generating reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter may include performing in-loop filtering on the prediction information.
  • the generating of the reconstruction information may include generating reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter, wherein the reconstruction information includes: the residual image; It may be of the same type.
  • Generating reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter may include performing in-loop filtering on the prediction information.
  • an encoding apparatus includes a filtering unit generating filtering information by filtering a residual image corresponding to a difference between an original image and a predicted image, and an inverse filtering unit generating reverse filtering information by reverse filtering the filtering information; A predictor configured to generate the predicted image based on the original image and the reconstructed information, a CNN-based in-loop filter that receives the inverse filtering information and the predicted image and outputs the reconstructed information, and the filtering information. And an encoder which performs encoding based on the information of the prediction image.
  • the filtering unit may generate filtering information by transforming and quantizing the residual image, and the inverse filtering unit may generate inverse filtering information by inverse quantization and inverse transformation of the filtering information.
  • the reconstruction information is in the same format as the original image, and the CNN-based in-loop filter may generate reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter. .
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the prediction information.
  • the in-loop filter includes at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO) filter, and an adaptive loop filter (ALF). can do.
  • DF deblocking filter
  • SAO sample adaptive offset filter
  • ALF adaptive loop filter
  • the reconstruction information is in the same format as the residual image, and the CNN-based in-loop filter may generate reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter. .
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the prediction information.
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the reconstruction information.
  • An decoding apparatus may include an entropy decoder configured to decode filtering information to output filtering information and preliminary prediction information, and an inverse filtering unit to generate inverse filtering information by inversely filtering the filtering information. And a prediction unit generating a prediction image based on the preliminary prediction information, and a CNN-based in-loop filter that receives the inverse filtering information and the prediction image and outputs reconstruction information.
  • the reconstruction information is in the same format as the original image, and the CNN-based in-loop filter may generate reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter. .
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the inverse filtering information.
  • the in-loop filter may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF).
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • the reconstruction information is in the same format as the residual image, and the CNN-based in-loop filter may generate reconstruction information by inputting the inverse filtering information and the prediction information based on the prediction image to the CNN-based in-loop filter. .
  • the apparatus may further include an adder for generating final reconstruction information by adding the reconstruction information and the prediction image.
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the inverse filtering information.
  • the in-loop filter may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF).
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • the reconstruction information has the same format as the residual image, and the CNN-based in-loop filter may generate residual reconstruction information by inputting the inverse filtering information to the CNN-based in-loop filter.
  • the apparatus may further include an adder for generating final reconstruction information by adding the residual reconstruction information and the prediction image.
  • the apparatus may further include an in-loop filter that performs in-loop filtering on the final reconstruction information.
  • the in-loop filter may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF).
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • FIG. 1 is a diagram for explaining an example of a system using an encoding device and / or a decoding device.
  • FIG. 2A illustrates an example of a block diagram of an encoding apparatus including a CNN based in-loop filter, according to an embodiment.
  • FIG. 2B illustrates an example of a block diagram of the prediction unit illustrated in FIG. 1.
  • FIG. 3 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 4 shows another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 5 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 6 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 7 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • 8A illustrates an example of a block diagram of a decoding apparatus including a CNN based in-loop filter according to an embodiment.
  • FIG. 8B illustrates an example of a block diagram of the prediction unit illustrated in FIG. 8A.
  • FIG. 9 shows another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 10 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 11 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 12 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 13 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • FIG. 14 is a diagram illustrating a structure of a CNN-based in-loop filter according to an embodiment.
  • FIG. 15 illustrates an example of a training method for each section of a CNN-based in-loop filter, according to an exemplary embodiment.
  • FIG. 16 illustrates another example of a training method for each section of a CNN-based in-loop filter, according to an exemplary embodiment.
  • 17 is an example of a diagram of a method of training a CNN-based in-loop filter, according to an exemplary embodiment.
  • FIG. 18 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • 19 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • 20 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • 21 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • Embodiments according to the inventive concept may be variously modified and have various forms, so embodiments are illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments in accordance with the concept of the present invention to specific embodiments, and includes modifications, equivalents, or substitutes included in the spirit and scope of the present invention.
  • first or second may be used to describe various components, but the components should not be limited by the terms. The terms are only for the purpose of distinguishing one component from another component, for example, without departing from the scope of the rights according to the inventive concept, the first component may be called a second component, Similarly, the second component may also be referred to as the first component.
  • FIG. 1 is a diagram for explaining an example of a system using an encoding device and / or a decoding device.
  • a system 10 using an encoding device and / or a decoding device may include a user terminal 11 and a server terminal 12.
  • the user terminal 11 may include an electronic device.
  • the electronic device may be implemented as a personal computer (PC), a data server, a television (TV), or a portable device.
  • Portable devices include laptop computers, mobile phones, smart phones, tablet PCs, mobile internet devices (MIDs), personal digital assistants (PDAs), enterprise digital assistants (EDAs). , Digital still camera, digital video camera, portable multimedia player (PMP), playstation portable (PSP), personal navigation device or portable navigation device (PND), handheld game console ), A wireless communication terminal, an e-book, or a smart device.
  • MIDs mobile internet devices
  • PDAs personal digital assistants
  • EDAs enterprise digital assistants
  • PMP portable multimedia player
  • PND personal navigation device
  • handheld game console handheld game console
  • a wireless communication terminal an e-book, or a smart device.
  • the server terminal 12 may include an application server or a service server.
  • the user terminal 11 and the server terminal 12 may be a communication device such as a communication modem for performing communication with various devices or a wired / wireless communication network, an inter-screen for encoding or decoding an image, or for encoding and decoding an image.
  • Various apparatuses may include various programs for intra prediction and a memory 18 for storing data, a processor 14 for executing and operating a program, and the like.
  • the user terminal 11 and the server terminal 12 may transmit an image encoded in a bitstream by the encoding apparatus to the image decoding apparatus.
  • the user terminal 11 and the server terminal 12 may transmit an image encoded in real time or non real time to an image decoding apparatus.
  • the user terminal 11 and the server terminal 12 may transmit the encoded image to the image decoding apparatus through a wired or wireless communication network or various communication interfaces.
  • the wired or wireless communication network may be the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, or a mobile communication network.
  • the communication interface may include a cable or a universal serial bus (USB) or the like.
  • an image encoded in a bitstream by the encoding apparatus may be transferred from the encoding apparatus to the decoding apparatus through a computer-readable recording medium.
  • the decoding apparatus may reproduce the reconstructed image by decoding the encoded image.
  • the encoding apparatus and the decoding apparatus may be separate apparatuses, but may be made of one encoding and decoding apparatus, depending on the implementation.
  • the prediction unit, inverse quantization unit, inverse transform unit, adder, filter unit, and DPB of the encoding apparatus are the prediction unit, inverse quantizer, inverse transform unit, adder, filter of the decoding apparatus in the order described. It may be implemented to include at least the same structure or to perform at least the same function as substantially the same technical elements as the secondary and DPB. Also, when the entropy encoder performs the function in reverse, the entropy encoder may correspond to the entropy decoder.
  • the decoding apparatus corresponds to a computing device that applies the encoding method performed by the encoding apparatus to the decoding, the following description will focus on the encoding apparatus.
  • the encoding apparatus may be referred to as an encoder and the decoding apparatus may be referred to as a decoder.
  • FIG. 2A illustrates an example of a block diagram of an encoding apparatus including a CNN-based in-loop filter
  • FIG. 2B illustrates an example of a block diagram of the prediction unit illustrated in FIG. 1.
  • the encoding apparatus 100 may include a transform and quantizer 120, an entropy encoder 130, an inverse quantizer and an inverse-transformer. 140, a CNN based in-loop filter (150a), a coded picture buffer (DPB) 160, a predictor 170, and a plurality of adders; Include.
  • the encoding apparatus 100 may perform encoding (encoding) on an input image 110 or an input slice 110. For example, the encoding apparatus 100 may divide a plurality of pixel blocks obtained by dividing the input image 110 or the input slice 110. Encoding can be performed on.
  • the encoding apparatus 100 may further include a divider (not shown) for dividing the input image 110 or the input slice 110.
  • the divider (not shown) may divide the input image 110 or the input slice 110 into blocks having a predetermined size (M ⁇ N). In this case, M or N may be one or more natural numbers.
  • the division unit may determine the size (M ⁇ N) of the block based on the characteristics, resolution, or the like of the input image 110 or the input slice 110.
  • the divider may determine the size (M ⁇ N) of the block as a power of two.
  • the division unit may determine the size (M ⁇ N) of the block in a square or rectangular shape. For example, when the division part (not shown) determines the square shape, the size (M ⁇ N) of the block is 256 ⁇ 256, 128 ⁇ 128, 64 ⁇ 64, 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8 Or 4 ⁇ 4 and the like.
  • Adder is a pixel block And prediction blocks ( Residual block based on Can be generated.
  • residual block Silver pixel block And prediction blocks It may be a block corresponding to the difference.
  • Predictive block ( ) Is predicted by the prediction unit 170 It may be a block generated using intra prediction or inter prediction with respect to.
  • the transform and quantization unit 120 is a residual block Can be transformed and quantized.
  • Transform and quantizer 120 is a pixel block Residual block The encoding efficiency can be increased by performing transform and quantization on.
  • the transform and quantization unit 120 is a residual block Filtering information by performing filtering on the filtering information; ) Can be created.
  • the transform and quantizer 120 is a residual block. Transform and / or quantization may be performed.
  • the transform and quantization unit 120 is a residual block Can be transformed into the frequency domain. Residual block Each pixel of may correspond to a transform coefficient of the transformed residual block.
  • the transform and quantization unit 120 uses a transform matrix to residual block Can be converted.
  • the transformation matrix may be a one-dimensional, two-dimensional, or three-dimensional transformation matrix.
  • the transform and quantization unit 120 may use a transform matrix with discrete cosine transform (DCT), discrete cosine transform (DST), horizontal, vertical units, and the like.
  • the transform and quantization unit 120 is a residual block It is possible to determine whether to use the transform matrix based on the size, shape, type (luminance / color difference), coding mode, prediction mode information, quantization parameter, or encoding information of a neighboring block.
  • the transform and quantization unit 120 is a residual block
  • the transform block E may be generated by transforming.
  • the transform and quantization unit 120 performs quantization on the transform block E to perform a quantized residual ( ) Can be printed.
  • the transform and quantization unit 120 may perform quantization on the transform coefficients of the transform block E.
  • the transform and quantization unit 120 may include a quantization section based on a quantization parameter (QP), a distortion value section based on a video signal characteristic, a texture complexity section based on a video signal characteristic, and a motion complexity section based on a video signal characteristic Residual image based on at least one of You can perform filtering on.
  • Video signal residual block It may include.
  • the transform and quantization unit 120 may perform quantization based on the quantization parameter QP.
  • the transform and quantization unit 120 may determine the quantization parameter in units of blocks of the transform block E.
  • the quantization parameter may be set in units of a sequence, a picture, a slice, a block, or the like.
  • the transform and quantization unit 120 may derive at least one quantization parameter from a neighboring block of the transform block E.
  • the transform and quantization unit 120 may predict the quantization parameter of the transform block E using at least one quantization parameter.
  • the transform and quantization unit 120 may derive at least one quantization parameter from neighboring blocks, such as the left, top left, bottom left, top, top right, bottom right, and bottom of the transform block E. .
  • the transform and quantization unit 120 may calculate a difference between the predicted quantization parameter and the quantization parameter derived from the neighboring block and transmit the difference to the entropy encoder 130.
  • the transform and quantization unit 120 may transmit a basic parameter transmitted in units of a sequence, a picture, a slice, or a block.
  • the quantization parameter can be set based on the.
  • the transform and quantization unit 120 may calculate a difference between the basic parameter and the quantization parameter and transmit the calculated difference value to the entropy encoder 130.
  • Transform and quantization unit 120 is a quantized residual transform ( ) May be transmitted to the entropy encoder 130 and / or the inverse quantization and inverse transform unit 140.
  • the entropy encoder 130 may use a prediction block ( ) And / or quantized residual transform ( ) May perform entropy encoding.
  • the entropy encoder 130 may use entropy by using a coding scheme such as context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), or syntax based context adaptive binary arithmetic coding (SBAC). Encoding can be performed.
  • CAVLC context adaptive variable length coding
  • CABAC context adaptive binary arithmetic coding
  • SBAC syntax based context adaptive binary arithmetic coding
  • the entropy encoder 130 may perform entropy encoding to output encoded data as a bitstream.
  • the encoded data may include a bitstream encoding the quantization parameter and various information necessary for decoding the encoded bitstream. Further, the encoded data may include a coded block form, a quantization parameter, a bitstream in which the quantization block is encoded, information necessary for prediction, and the like.
  • Inverse quantization and inverse transform unit 140 is filtering information ( Inverse filtering information (Inverse filtering information; ) Can be created.
  • Reverse Filtering Information ( ) Is the restore residual block ( May mean.
  • the inverse quantization and inverse transform unit 140 may be a quantized residual transform ( Inverse quantization and / or inverse transformation to the restoring residual block ( ) Can be created.
  • the inverse quantization and inverse transform unit 140 may reversely perform the operations of the transform and quantization unit 120.
  • the inverse quantization and inverse transform unit 140 may be a quantized residual transform ( ) Can be inverse quantized and inversely transformed.
  • the inverse quantization and inverse transform unit 140 may configure the transform structure and the quantization structure of the transform and quantization unit 120 in reverse.
  • the transform and quantization unit 120 performs transformation and quantization, but the present invention is not limited thereto.
  • a residual block Each may be implemented as a quantization unit that quantizes.
  • the inverse quantization and inverse transform unit 140 is illustrated as performing inverse quantization and inverse transformation, the present invention is not limited thereto, and the quantized residual transformation ( Inverse quantization unit for inverse quantization and quantized residual transformation ( ) May be implemented as an inverse transform unit for inverse transform.
  • the adder is a prediction block ( ) And restore residual block ( Based on the preliminary reconstruction block ( ) Can be created.
  • a spare restore block ( ) Is the prediction block ( ) And restore residual block ( ) May be a block obtained by adding.
  • the CNN based in-loop filter 150a may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is a preliminary reconstruction block ( ), Secondary preliminary restore block ( ), Or restore residual block ( ) And the like.
  • Restore information is the restore information restore block ( ), Secondary restore residual block ( or ), The last restore block ( Etc.).
  • the CNN based in-loop filter 150a uses a preliminary reconstruction block ( In-loop filtering on the Will be described.
  • the CNN-based in-loop filter 150a uses a second order prediction block (preliminary reconstruction block) In-loop filtering on) to restore blocks ( ) Can be created.
  • a spare restore block ( ) Is the restore residual block ( ) And prediction blocks ( ) May be a block plus.
  • Restore block ( ) Is the prediction block ( ), Or a spare restore block ( May be a block having improved image quality.
  • the CNN based in-loop filter 150a may use a deep convolutional neural network. That is, the CNN based in-loop filter 150a may be trained based on a plurality of training data. CNN based in-loop filter 150a may be trained to generate an appropriate output image for any input image.
  • the CNN based in-loop filter 150a may include an input layer, a hidden layer, and an output layer.
  • the input layer, the hidden layer, and the output layer may each include a plurality of nodes.
  • Nodes between adjacent layers may be connected to each other with a connection weight.
  • Each node may operate based on an activation model.
  • the output value corresponding to the input value may be determined according to the activation model.
  • the output value of any node may be input to the node of the next layer connected to the node.
  • the node of the next layer may receive values output from the plurality of nodes.
  • a connection weight may be applied.
  • the node of the next layer may output an output value corresponding to the input value to the node of the next layer connected to the node based on the activation model.
  • the output layer may include nodes corresponding to in-loop filtering.
  • the nodes of the output layer may output feature values corresponding to the image (or block) on which the in-loop filtering is performed.
  • the CNN based in-loop filter 150a is a preliminary reconstruction block ( ), Filtering may be performed for each slice, for each coding block, or for each specified region. Accordingly, the encoding apparatus 100 may determine a reconstruction block generated as a result of the filtering. ), Coding efficiency and complexity can be improved.
  • the CNN based in-loop filter 150a is a preliminary reconstruction block ( ) To filter the restore block ( ) Can be created. That is, the CNN based in-loop filter 150a may use a preliminary reconstruction block ( Based on the restore block ( You can learn to create). For example, the CNN based in-loop filter 150a may use a preliminary reconstruction block ( ) And pixel blocks Based on the restore block ( You can learn to create).
  • CNN based in-loop filter 150a is a reconstruction block ( ) May be transmitted to the decoded picture buffer 160.
  • the decoded picture buffer 160 includes a reconstruction block ( ) May be stored or output to a display device for display.
  • the decoded picture buffer 160 restores a block ( ), Decoded picture buffer 160 is predicted by the prediction unit 170 is predicted block ( ), Create a restore block ( ) Can be sent for use. For example, the prediction unit 170 may reconstruct a block in a subsequent intra prediction or inter prediction operation. ) Uses the prediction block ( ) Can be created.
  • the prediction unit 170 is a pixel block And restore blocks ( Based on the prediction block ( ) Can be created. Restore block ( ) And pixel blocks There may be a time difference. For example, restore block ( ) Is a block of pixels It may be a block generated earlier.
  • the prediction unit 170 is a pixel block And restore blocks ( Based on the prediction block ( Information can be generated.
  • the prediction block ( ) May include at least one of an intra prediction mode, an inter prediction motion prediction mode, a motion block type, and a motion vector.
  • the predictor 170 includes an intra frame estimator 171, a motion estimator 172, an intra frame predictor 173, a motion compensator 174, a mode determiner 175, and a predictive image generator 176. ) May be included.
  • the intra frame estimator 171 and the motion estimator 172 may include an input image 110 and a reconstruction block (from the decoded picture buffer 160). ) Can be received.
  • the intra frame estimator 171 may include an input image 110 and a reconstruction block ( Intra mode can be determined based on The intra frame estimator 171 may transmit the intra mode to the intra frame predictor 173 and the entropy encoder 130.
  • the intra frame predictor 173 includes the input image 110 and the reconstruction block in the intra mode. ) May be performed, and may be transmitted to the mode determiner 175.
  • the motion estimator 172 may include an input image 110 and a reconstruction block ( ), Motion vectors (MVs) may be extracted.
  • the motion estimator 172 may transmit the motion vectors to the motion compensator 174.
  • the motion compensator 174 includes an input image 110 and a reconstruction block (The intra-screen motion may be compensated for based on the motion vectors of the s) and may be transmitted to the mode determiner 175.
  • the mode determiner 175 may determine an encoding mode based on data from the intra frame predictor 173 and the motion compensator 174.
  • the encoding mode may be an intra mode, an inter mode, or the like.
  • the prediction image generator 176 may generate a prediction block based on an encoding mode determined by the mode determiner 175. ) Can be created.
  • the prediction image generator 176 generates the generated prediction block ( ) May be transmitted to the adder or the entropy encoder 130.
  • FIG. 3 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the encoding apparatus 100 may include a transform and quantization unit 120, an entropy encoding unit 130, an inverse quantization and inverse transform unit 140, an in-loop filter 145, and a CNN base.
  • the in-loop filter 150b, the decoded picture buffer 160, the predictor 170, and a plurality of adders are included.
  • the transform and quantizer 120, the entropy encoder 130, the inverse quantizer and inverse transformer 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders illustrated in FIG. 3 are illustrated in FIG. 2A.
  • the illustrated transform and quantizer 120, the entropy encoder 130, the inverse quantization and inverse transform unit 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders and the configuration and operation are substantially May be the same. Therefore, the in-loop filter 145 and the CNN-based in-loop filter 150b will be described below.
  • In-loop filter 145 is a preliminary reconstruction block from the adder ( ) Can be received.
  • In-loop filter 145 is a preliminary recovery block ( ) To filter the secondary preliminary restore block ( ) Can be created.
  • the in-loop filter 145 may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO) filter, and an adaptive loop filter (ALF). It may include.
  • DF deblocking filter
  • SAO sample adaptive offset filter
  • ALF adaptive loop filter
  • the in-loop filter 145 when the in-loop filter 145 includes one filter, the in-loop filter 145 is one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF). It can be implemented with one filter.
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • the in-loop filter 145 may be implemented as including a deblocking filter (DF) and a sample adaptive offset filter (SAO filter).
  • the in-loop filter 145 may be implemented as including a sample adaptive offset filter (SAO filter) and an adaptive loop filter (ALF).
  • the in-loop filter 145 may be implemented to include a deblocking filter (DF) and an adaptive loop filter (ALF).
  • In-loop filter 145 includes three filters, in-loop filter 145 includes a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF). Can be implemented.
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • the deblocking filter DF is a preliminary reconstruction block ( ) To filter out the redundant restore block ( Distortion of the pixel value difference between blocks appearing in the boundary region of the? The pixel value difference between blocks may occur in the quantization process.
  • the deblocking filter DF may use a predetermined filter coefficient for filtering.
  • the sample adaptive offset filter may correct ringing artefact or pixel value interval distortion in units of coding blocks.
  • the sample adaptive offset filter (SAO filter) is a preliminary reconstruction block ( ) And the result of the deblocking filtering With respect to the difference value can be restored to the offset.
  • the adaptive loop filter is a spare reconstruction block ( ) Can be filtered using the one-stage linear mapping model on the sample adaptive offset filtered result.
  • the CNN-based in-loop filter 150b may generate reconstruction information by filtering the prediction information.
  • the prediction information is secondary preliminary reconstruction block ( )
  • the restore information is the final restore block ( ) May be included.
  • the CNN-based in-loop filter 150b uses the second preliminary reconstruction block ( Based on the final restore block ( You can learn to create).
  • the CNN based in-loop filter 150b may be a secondary preliminary reconstruction block ( ) And pixel blocks Based on the final restore block ( You can learn to create).
  • CNN-based in-loop filter 150b passes the final reconstruction block ( ) May be transmitted to the decoded picture buffer 160.
  • FIG. 4 shows another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the encoding apparatus 100 may include a transform and quantizer 120, an entropy encoder 130, an inverse quantization and inverse transform unit 140, a CNN-based in-loop filter 150c, and a decoded picture buffer 160. ), A prediction unit 170, and a plurality of adders.
  • the transform and quantizer 120, the entropy encoder 130, the inverse quantizer and inverse transformer 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders illustrated in FIG. 4 are illustrated in FIG. 2A.
  • the illustrated transform and quantizer 120, the entropy encoder 130, the inverse quantization and inverse transform unit 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders and the configuration and operation are substantially May be the same.
  • the CNN-based in-loop filter 150c will be described below.
  • the CNN based in-loop filter 150c may generate reconstruction information by filtering the prediction information.
  • the CNN based in-loop filter 150c is a preliminary reconstruction block from the adder. ) Can be received.
  • the CNN based in-loop filter 150c is a preliminary reconstruction block ( ) To filter the restore residual block ( ) Can be created.
  • the CNN based in-loop filter 150c may use a preliminary reconstruction block ( Restore residual block based on You can learn to create).
  • the CNN based in-loop filter 150c may have a preliminary reconstruction block ( ) And residual blocks Restore residual block based on You can learn to create).
  • the CNN-based in-loop filter 150c uses the reconstruction residual block ( ) Can be sent to the adder.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add the restore block ( ) Can be created.
  • the adder is a recovery block ( ) May be transmitted to the decoded picture buffer 160.
  • FIG. 5 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the encoding apparatus 100 may include a transform and quantizer 120, an entropy encoder 130, an inverse quantization and inverse transform unit 140, an in-loop filter 145, and a CNN-based in-loop filter 150d. ), A decoded picture buffer 160, a predictor 170, and a plurality of adders.
  • the plurality of adders include the transform and quantizer 120, the entropy encoder 130, the inverse quantizer and inverse transform unit 140, the in-loop filter 145, the decoded picture buffer 160, and the predictor ( 170, and the configuration and operation of the plurality of adders may be substantially the same. Therefore, hereinafter, the CNN-based in-loop filter 150d will be described.
  • the CNN based in-loop filter 150d may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the CNN based in-loop filter 150d receives the second preliminary reconstruction block from the in-loop filter 145. ) Can be received.
  • the CNN-based in-loop filter 150d uses the second preliminary reconstruction block ( ) To filter the restore residual block ( ) Can be created.
  • Restore residual block ( ) Is the reconstructed residual block ( It may be closer to zero than).
  • the CNN-based in-loop filter 150d uses the second preliminary reconstruction block ( Restore residual block based on You can learn to create).
  • the CNN based in-loop filter 150d may be a secondary preliminary reconstruction block ( ) And the residual residual block ( e ) based on the residual block e You can learn to create).
  • CNN-based in-loop filter 150d uses the reconstruction residual block ( ) Can be sent to the adder.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add the final restore block ( ) Can be created.
  • the adder is the final restore block ( ) May be transmitted to the decoded picture buffer 160.
  • FIG. 6 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the encoding apparatus 100 may include a transform and quantizer 120, an entropy encoder 130, an inverse quantization and inverse transform unit 140, a CNN-based in-loop filter 150e, and a decoded picture buffer 160. ), A prediction unit 170, and a plurality of adders.
  • the transform and quantizer 120, the entropy encoder 130, the inverse quantizer and inverse transformer 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders illustrated in FIG. 6 are illustrated in FIG. 2A.
  • the illustrated transform and quantizer 120, the entropy encoder 130, the inverse quantization and inverse transform unit 140, the decoded picture buffer 160, the predictor 170, and the plurality of adders and the configuration and operation are substantially May be the same.
  • the CNN-based in-loop filter 150e will be described.
  • the CNN-based in-loop filter 150e may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the CNN-based in-loop filter 150e may perform inverse quantization and inverse transform from the inverse quantization and inverse transform unit 140. ) Can be received.
  • CNN-based in-loop filter 150e uses the reconstruction residual block ( ) Can be restored to generate restoration information.
  • Restore information is stored in the secondary restore residual block ( ) May be included.
  • the CNN based in-loop filter 150e may restore the residual block ( Based on the 2nd reconstruction residual block ( You can learn to create). For example, the CNN based in-loop filter 150e may have a recovery residual block ( ) And residual blocks Based on the secondary restoration residual block ( You can learn to create).
  • CNN-based in-loop filter 150e uses the reconstruction residual block ( ) Can be sent to the adder.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add the restore block ( ) Can be created.
  • the adder is a recovery block ( ) May be transmitted to the decoded picture buffer 160.
  • FIG. 7 illustrates another example of a block diagram of an encoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the encoding apparatus 100 may include a transform and quantizer 120, an entropy encoder 130, an inverse quantization and inverse transform unit 140, a CNN-based in-loop filter 150e, and an in-loop filter 147. ), A decoded picture buffer 160, a predictor 170, and a plurality of adders.
  • a plurality of adders include a transform and quantizer 120, an entropy encoder 130, an inverse quantization and inverse transform unit 140, a CNN-based in-loop filter 150e, and a decoded picture buffer 160 shown in FIG. 6.
  • the configuration unit and the operation of the predictor 170 and the plurality of adders may be substantially the same.
  • the in-loop filter 147 will be described below.
  • In-loop filter 147 restores from the adder block ( ) Can be received.
  • Restore block ( ) Is the primary restore block ( May be).
  • In-loop filter 147 is a primary reconstruction block ( By filtering
  • Final restore block ( ) Can be created.
  • In-loop filter 147 is a final reconstruction block ( ) May be transmitted to the decoded picture buffer 160.
  • the in-loop filter 147 may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF), as described above with reference to FIG. 3.
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • FIG. 8A illustrates an example of a block diagram of a decoding apparatus including a CNN-based in-loop filter
  • FIG. 8B illustrates an example of a block diagram of the prediction unit illustrated in FIG. 8A.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, a CNN-based in-loop filter 230a, an encoded picture buffer 240, and a predictor ( 250), and an adder.
  • the decoding apparatus 200 may correspond to a computing device applying the encoding method to the decoding, which is performed by the encoding apparatus 100 illustrated in FIGS. 2A to 7. That is, the entropy decoder 210, the inverse quantization and inverse transform unit 220, the coded picture buffer 240, the predictor 250, and the adder are the entropy encoder 130 shown in FIG. 2A, inverse quantization, and inverse transform.
  • the unit 140, the transform and quantizer 120, the decoded picture buffer 160, the predictor 170, and the adder may correspond to each other.
  • the entropy decoder 210 may perform decoding by parsing the encoded bitstream information.
  • the entropy decoder 210 may decode and output filtering information and preliminary prediction information.
  • Entropy decoder 210 is entropy decoder 210 is a quantized residual ( ) May be transmitted to the inverse quantization and inverse transform unit 140 and / or the prediction unit 170.
  • the inverse quantization and inverse transform unit 220 may transform and / or quantize the residual ( Inverse quantization and / or inverse transformation to the restoring residual block ( ) Can be created.
  • the inverse quantization and inverse transform unit 220 may restore a residual block ( ) Can be sent to the adder.
  • the adder reconstructs the residual block from the inverse quantization and inverse transform unit 220 ( ), The prediction block 170 from the prediction unit 170 ) Can be received.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add a spare restore block ( ) Can be created.
  • the adder is a spare restoration block ( ) May be transmitted to the CNN-based in-loop filter 230a.
  • the CNN-based in-loop filter 230a may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is a preliminary reconstruction block ( )
  • the restore information includes a restore block ( ) May be included.
  • the CNN-based in-loop filter 230a may use a deep convolutional neural network. That is, the CNN based in-loop filter 230a may be trained based on a plurality of training data. CNN based in-loop filter 230a may be trained to generate an appropriate output image for any input image.
  • the CNN based in-loop filter 230a may include an input layer, a hidden layer, and an output layer.
  • the input layer, the hidden layer, and the output layer may each include a plurality of nodes.
  • CNN-based in-loop filter 230a is a second-order prediction block ( ), Filtering may be performed for each slice, for each coding block, or for each specified region. Accordingly, the decoding apparatus 200 generates a reconstruction block generated as a result of the filtering. ), The decoding efficiency and complexity can be improved.
  • CNN based in-loop filter 230a is a preliminary reconstruction block ( ) To filter the restore block ( ) Can be created. That is, the CNN based in-loop filter 230a may use a preliminary reconstruction block ( Based on the restore block ( You can learn to create). For example, the CNN based in-loop filter 230a may use a preliminary reconstruction block ( ) And pixel blocks Based on the restore block ( You can learn to create).
  • CNN based in-loop filter 230a is a reconstruction block ( ) May be transmitted to the encoded picture buffer 240.
  • the encoded picture buffer 240 is a reconstruction block ( ) Can be stored or output to a display device for display.
  • the encoded picture buffer 240 is a reconstruction block ( ),
  • the encoded picture buffer 240 is predicted by the prediction unit 250 is a prediction block ( ), Create a restore block ( ) Can be sent for use.
  • the prediction unit 250 may reconstruct a block in a subsequent intra prediction or inter prediction operation.
  • the prediction unit 250 includes a reconstruction block ( Based on the prediction block ( ) Can be created.
  • the predictor 250 may include an intra frame predictor 251, a motion compensator 252, and a predictive image generator 253.
  • the intra frame predictor 251 and the motion compensator 252 reconstruct a block from the coded picture buffer 240. ) Quantized from the entropy decoding unit 210 ) Can be received.
  • the intra frame predictor 251 performs the quantized residual in intra mode.
  • restore blocks Intra prediction may be performed on the screen, and the result value may be transmitted to the predicted image generator 253.
  • the motion compensator 252 has a quantized residual ( ) And restore blocks ( The intra-screen motion may be compensated for based on the motion vectors, and the result value may be transmitted to the predicted image generator 253.
  • the prediction image generator 253 may generate a prediction block based on the results of the intra frame predictor 251 and the motion compensator 252. ) Can be created.
  • the prediction image generator 253 generates the generated prediction block ( ) Can be sent to the adder.
  • FIG. 9 shows another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, an in-loop filter 225, a CNN-based in-loop filter 230b, and an encoded picture buffer 240. , A predictor 250, and an adder.
  • the entropy decoder 210, the inverse quantization and inverse transformer 220, the coded picture buffer 240, the predictor 250, and the adder illustrated in FIG. 9 are the decoder 210 and inverse quantization illustrated in FIG. 8A.
  • the configuration and operation of the inverse transform unit 220, the encoded picture buffer 240, the predictor 250, and the adder may be substantially the same.
  • the in-loop filter 225 and the CNN-based in-loop filter 230b will be described below.
  • In-loop filter 225 is a preliminary recovery block from the adder ( ) Can be received. In-loop filter 225 is a preliminary recovery block ( ) To filter the secondary preliminary restore block ( ) Can be created. In-loop filter 225 is a secondary preliminary recovery block ( ) May be transmitted to the CNN-based in-loop filter 230b.
  • the in-loop filter 225 may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF) as described above.
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • the CNN based in-loop filter 230b may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is secondary preliminary reconstruction block ( )
  • the receive information includes the final reconstruction block ( ) May be included.
  • the CNN-based in-loop filter 230b uses a secondary preliminary reconstruction block ( Based on the final restore block ( You can learn to create).
  • the CNN based in-loop filter 230b may be a secondary preliminary reconstruction block ( ) And pixel blocks Based on the final restore block ( You can learn to create).
  • CNN-based in-loop filter 230b passes the final reconstruction block ( ) May be transmitted to the encoded picture buffer 240.
  • FIG. 10 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, a CNN-based in-loop filter 230c, an encoded picture buffer 240, a predictor 250, And a plurality of adders.
  • the entropy decoder 210, the inverse quantization and inverse transformer 220, the coded picture buffer 240, the predictor 250, and the plurality of adders illustrated in FIG. 10 are the decoder 210 illustrated in FIG. 8A,
  • the inverse quantization and inverse transform unit 220, the encoded picture buffer 240, the predictor 250, and the adder may be substantially the same in structure and operation.
  • the CNN-based in-loop filter 230c will be described below.
  • the CNN based in-loop filter 230c may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is a preliminary reconstruction block ( )
  • the restore information includes a restore residual block ( ) May be included.
  • the CNN based in-loop filter 230c is a preliminary reconstruction block (from the adder). ) Can be received.
  • the CNN based in-loop filter 230c is a preliminary reconstruction block ( ) To filter the restore residual block ( ) Can be created.
  • the CNN based in-loop filter 230c may use a preliminary reconstruction block ( Restore residual block based on You can learn to create).
  • the CNN based in-loop filter 230c may use a preliminary reconstruction block ( ) And residual blocks Restore residual block based on You can learn to create).
  • the CNN-based in-loop filter 230c uses a reconstruction residual block ( ) Can be sent to the adder.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add the restore block ( ) Can be created.
  • the adder is a recovery block ( ) May be transmitted to the encoded picture buffer 240.
  • FIG. 11 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, an in-loop filter 225, a CNN-based in-loop filter 230d, and an encoded picture buffer 240. , A predictor 250, and a plurality of adders.
  • the plurality of adders include an entropy decoder 210, an inverse quantization and inverse transform unit 220, an in-loop filter 225, an encoded picture buffer 240, a predictor 250, and an adder shown in FIG. 9. And the operation may be substantially the same.
  • the CNN-based in-loop filter 230d will be described.
  • the CNN-based in-loop filter 230d may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is secondary preliminary reconstruction block ( )
  • the restore information includes a restore residual block ( ) May be included.
  • the CNN-based in-loop filter 230d receives the second preliminary reconstruction block (from the in-loop filter 225). ) Can be received.
  • the CNN based in-loop filter 230d is a secondary preliminary reconstruction block ( ) To filter the restore residual block ( ) Can be created.
  • Restore residual block ( ) Is the reconstructed residual block ( It may be closer to zero than).
  • the CNN-based in-loop filter 230d uses the second preliminary reconstruction block ( Restore residual block based on You can learn to create).
  • the CNN based in-loop filter 230d may be a secondary preliminary reconstruction block ( ) And residual blocks Restore residual block based on You can learn to create).
  • the CNN-based in-loop filter 230d uses the reconstruction residual block ( ) Can be sent to the adder.
  • the adder is responsible for restoring residual blocks ( ) And prediction blocks ( ) To add the final restore block ( ) Can be created.
  • the adder is the final restore block ( ) May be transmitted to the encoded picture buffer 240.
  • FIG. 12 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, a CNN-based in-loop filter 230e, an encoded picture buffer 240, a predictor 250, And an adder.
  • the entropy decoder 210, the inverse quantization and inverse transformer 220, the coded picture buffer 240, the predictor 250, and the plurality of adders illustrated in FIG. 12 are the decoder 210 illustrated in FIG. 8A,
  • the inverse quantization and inverse transform unit 220, the encoded picture buffer 240, the predictor 250, and the adder may be substantially the same in structure and operation. Therefore, hereinafter, the CNN based in-loop filter 230e will be described.
  • the CNN-based in-loop filter 230e may generate reconstruction information by performing in-loop filtering on the prediction information.
  • the prediction information is predicted residual block ( )
  • the restore information includes a secondary restore residual block ( ) May be included.
  • the CNN-based in-loop filter 230e performs inverse quantization and inverse transform from the inverse quantization and inverse transform unit 220. ) Can be received.
  • CNN-based in-loop filter 230e uses a reconstruction residual block ( ) To filter the secondary restore residual block ( ) Can be created.
  • the CNN based in-loop filter 230e may restore the residual block ( Based on the 2nd reconstruction residual block ( You can learn to create). For example, the CNN based in-loop filter 230e may use a reconstruction residual block ( ) And residual blocks Based on the secondary restoration residual block ( You can learn to create).
  • CNN-based in-loop filter 230e uses a second reconstruction residual block ( ) Can be sent to the adder.
  • the adder is the secondary reconstruction residual block ( ) And prediction blocks ( ) To add the restore block ( ) Can be created.
  • the adder is a recovery block ( ) May be transmitted to the encoded picture buffer 240.
  • FIG. 13 illustrates another example of a block diagram of a decoding apparatus including a CNN-based in-loop filter according to an embodiment.
  • the decoding apparatus 200 may include an entropy decoder 210, an inverse quantization and inverse transform unit 220, a CNN-based in-loop filter 230e, an in-loop filter 227, and an encoded picture buffer 240. , A predictor 250, and an adder.
  • the entropy decoder 210, the inverse quantization and inverse transformer 220, the CNN-based in-loop filter 230e, the coded picture buffer 240, the predictor 250, and the adder illustrated in FIG. 13 are illustrated in FIG. 12.
  • the structure and operation of the decoder 210, the inverse quantization and inverse transformer 220, the CNN-based in-loop filter 230e, the coded picture buffer 240, the predictor 250, and the adder may be substantially the same. have.
  • the in-loop filter 227 will be described below.
  • In-loop filter 227 is removed from the adder
  • Restore block ( ) Can be received.
  • Restore block ( ) Is a spare restore block ( May be).
  • In-loop filter 227 is a preliminary reconstruction block ( ) To filter the secondary final restore block ( ) Can be created.
  • In-loop filter 227 is the final reconstruction block ( ) May be transmitted to the encoded picture buffer 240.
  • the in-loop filter 227 may include at least one of a deblocking filter (DF), a sample adaptive offset filter (SAO filter), and an adaptive loop filter (ALF), as described above with reference to FIG. 9.
  • DF deblocking filter
  • SAO filter sample adaptive offset filter
  • ALF adaptive loop filter
  • FIG. 14 is a diagram illustrating a structure of a CNN-based in-loop filter according to an embodiment.
  • the CNN based in-loop filter 150 includes an input layer 151, a hidden layer 152, and an output layer 153.
  • the input layer 151 may receive an input image.
  • the input image may include a deteriorated reconstructed image.
  • a reconstructed image in which inverse quantization and inverse transformation are performed by the inverse quantization and inverse transform unit 140 may be input to the input layer 151.
  • the input image may include block boundary distortion, nuisance distortion, and high frequency blur blur distortion.
  • the reconstructed image may include a degradation phenomenon.
  • the input layer 151 may extract the hidden layer 153 by performing an image patch on the input image.
  • the input layer 151 may perform image patch on the input image with a size of ( f 1 ⁇ f 1 ) .
  • the hidden layer 152 can perform non-linear mapping.
  • the hidden layer 152 may include N convolutional layers. In this case, as the first convolutional layer 152-1 proceeds to the Nth convolutional layer 152 -N, the image quality of the image may be improved.
  • the CNN based in-loop filter 150 may be trained on the CNN-based in-loop filter through the hidden layer 152, the output layer 153, and a loss function.
  • the first convolutional layer 152-1 may correspond to equation (1).
  • the second convolutional layer may correspond to equation (2).
  • N th convolution layer 152 -N may correspond to Equation 3 below.
  • the hidden layer 152 may increase the efficiency and speed of training by using a rectified linear unit (ReLU) function.
  • ReLU rectified linear unit
  • the output layer 153 may correspond to equation (4).
  • the output layer 153 may be filtered to output an output image having improved image quality.
  • the loss function may correspond to equation (5).
  • CNN based in-loop filter 150 may be trained to minimize filtering errors through loss functions.
  • FIG. 15 illustrates an example of a training method for each section of a CNN-based in-loop filter, according to an exemplary embodiment.
  • the CNN-based in-loop filter 150 may perform training for each quantization section.
  • the CNN-based in-loop filter 150 may process reconstructed images having different distortion values according to quantization parameters (QPs). Accordingly, the CNN based in-loop filter 150 may perform effective filtering by performing training for each quantization interval.
  • QPs quantization parameters
  • the quantization parameter QP may be a value between 0 and 51, inclusive.
  • Each quantization interval may include at least one quantization parameter (QP).
  • QP quantization parameter
  • the first interval and the second interval may include the quantization parameter QP 5 in common.
  • the quantization parameter QP used for encoding in the encoding apparatus 100 is a value that can be checked in the decoding apparatus 200, and the encoding apparatus 100 transfers the quantization parameter QP used in encoding to the decoding apparatus 200. May not transmit. Accordingly, the encoding apparatus 100 may increase encoding efficiency without generating overhead.
  • the encoding apparatus 100 may generate the reconstruction training image 300 using the quantization parameter QP of the Nth section.
  • the encoding apparatus 100 may transmit the reconstruction training image 300 to the CNN-based in-loop filter 150.
  • the CNN-based in-loop filter 150 may perform filtering on the reconstruction training image 300 to generate an output image and transmit the output image to the adder.
  • the adder may differentially output the output image and the original input training image 400 to the CNN based in-loop filter 150.
  • the CNN based in-loop filter 150 may adjust the weight of the hidden layer 152 based on the difference. For example, the CNN based in-loop filter 150 may adjust weights such that there is no difference between the output image and the input training image 400. At this time, the training for weight correction of the CNN-based in-loop filter 150 may use a back propagation method.
  • the reconstruction training image 300 and the input training image 400 may be implemented in various embodiments. That is, the CNN based in-loop filter 150 may have a myriad of training methods. The CNN based in-loop filter 150 may operate differently according to the training method.
  • the reconstructed training image 300 may be reconstructed frames prior to in-loop filtering in the in-loop filter 140.
  • the CNN based in-loop filter 150 may generate an output image close to the input training image 400 by filtering the reconstructed image before filtering.
  • the CNN based in loop filter 150 may operate as the CNN based in loop filter 150a shown in FIG. 2A.
  • the reconstructed training image 300 may be a reconstructed frames after in-loop filtering in the in-loop filter 140. That is, the CNN-based in-loop filter 150 may perform filtering on the filtered image to generate an output image closer to the original input training image 400. In this case, the CNN based in loop filter 150 may operate as the CNN based in loop filter 150b shown in FIG. 3.
  • the reconstruction training image 300 may be an image to which the filtering is applied in the in-loop filter 140, and the input training image 400 may be a residual image e .
  • the CNN-based in-loop filter 150 may generate a reconstructed residual image by applying filtering to the filtered image.
  • the CNN based in loop filter 150 may operate as the CNN based in loop filter 150d illustrated in FIG. 5.
  • FIG. 16 illustrates another example of a training method for each section of a CNN-based in-loop filter, according to an exemplary embodiment.
  • the CNN-based in-loop filter 150 may perform training for each distortion value section.
  • the CNN-based in-loop filter 150 may have a different distortion value according to the quantization parameter QP. Accordingly, the CNN-based in-loop filter 150 may perform effective filtering by performing training for each distortion value section.
  • the distortion value interval used in encoding in the encoding apparatus 100 is a value that can be checked in the decoding apparatus 200, and the encoding apparatus 100 does not transmit the index used in the encoding to the decoding apparatus 200. Can be. Accordingly, the encoding apparatus 100 may increase encoding efficiency without overhead.
  • the distortion value may be a difference between the input training image 600 and the reconstruction training image.
  • the encoding apparatus 100 may generate a reconstruction training image 500 belonging to a distortion value of the Nth section.
  • the encoding apparatus 100 may transmit the reconstruction training image 500 to the CNN-based in-loop filter 150.
  • the CNN-based in-loop filter 150 may perform filtering on the reconstruction training image 500 to generate an output image and transmit the output image to the adder.
  • the adder may differentially output the output image and the original input training image 600 to the CNN-based in-loop filter 150.
  • the CNN based in-loop filter 150 may adjust the weight of the hidden layer 152 based on the difference. For example, the CNN based in-loop filter 150 may adjust weights such that there is no difference between the output image and the input training image 600. In this case, the learning for weight correction of the CNN-based in-loop filter 150 may use a backpropagation method.
  • the reconstruction training image 500 may be a reconstruction residual image.
  • the reconstructed residual image may be an image obtained by performing transformation and quantization on the residual image and performing inverse quantization and inverse transformation.
  • the input training image 600 may be a residual image.
  • the residual image may be an image obtained by dividing the input image and the reconstructed image.
  • the reconstructed image may be an image to which in-loop filtering is applied or an image to which in-loop filtering is not applied.
  • the CNN based in-loop filter 150 may filter the reconstructed residual image to generate an output image that is close to the residual image.
  • the CNN based in loop filter 150 may operate as the CNN based in loop filter 150e illustrated in FIG. 6.
  • the CNN-based in-loop filter 150 may perform filtering for each slice type of the image.
  • an operation of performing filtering by the slice type by the CNN-based in-loop filter 150 will be described.
  • 17 is an example of a diagram of a method of training a CNN-based in-loop filter, according to an exemplary embodiment.
  • the CNN-based in-loop filter 150 may perform filtering on a plurality of images in an encoding or decoding process of a low delay configuration.
  • the slice type of the plurality of images may be an intra slice (I slice) or a predictive slice (P slice).
  • Images 700-1 and 700-N of the intra slice may perform intra prediction. Images 700-2 to 700-4 of the prediction slices may perform inter prediction.
  • the image 700-2 of the prediction slice may predict the image by referring to the image 700-1 of the intra slice.
  • the image 700-3 of the prediction slice may predict an image by referring to the image 700-1 of the intra slice and the image 700-2 of the prediction slice.
  • the image 700-4 of the prediction slice may predict an image by referring to the image 700-1 of the intra slice and the images 700-2 to 700-3 of the prediction slice.
  • the CNN-based in-loop filter 150 filters the images 700-1 and 700 -N of the intra slice, thereby continuously providing an image with little distortion.
  • the CNN based in-loop filter 150 may periodically provide images 700-1 and 700 -N of the intra slice.
  • FIG. 18 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • the CNN-based in-loop filter 150 may include a plurality of images 800-1 through 800-3, 800-5, and 800-5 during encoding or decoding of a low delay configuration. You can optionally perform filtering on.
  • the slice types of the plurality of images 800-1 to 800-3, 800-5, and 800-5 may be an intra slice or a prediction slice.
  • the image 800-1 of the intra slice may perform intra prediction. Images 800-2, 800-3, 800-5, and 800-7 of the prediction slice may perform inter prediction.
  • the image 800-2 of the prediction slice may predict the image with reference to the image 800-1 of the intra slice.
  • the image 800-3 of the prediction slice may predict an image by referring to the image 700-1 of the intra slice and the image 800-2 of the prediction slice.
  • the images 800-5 and 800-7 of the prediction slice may predict the image by referring to the image of the previous slice.
  • the CNN-based in-loop filter 150 filters the images 800-1 of the intra slice and the images 800-3, 800-5, and 800-7 of the predicted slice to continuously filter the images with low distortion. Can provide.
  • the CNN based in-loop filter 150 may perform filtering periodically or selectively to provide images 800-3, 800-5, and 800-7 of the prediction slices.
  • the CNN-based in-loop filter 150 not only selectively applies filtering under a low-delay structure, but also for each input slice and each coding tree unit (Coding Tree Unit (CTU)) or coding block within an input slice. Coding Unit (CU)) or a specific image area may be selectively applied.
  • CTU Coding Tree Unit
  • CU Coding Unit
  • 19 is another example of a diagram illustrating a method of applying a CNN-based in-loop filter according to an embodiment.
  • the CNN-based in-loop filter 150 may perform filtering on a plurality of images 900-1 to 900 -N in an encoding or decoding process of an all intra configuration.
  • the slice types of the plurality of images 900-1 to 900 -N may be intra slices.
  • Images 900-1 to 900-N of intra slices may perform intra prediction. That is, the distortion values of the images 900-1 to 900-N of the intra slices are not transmitted to other images, and the CNN-based in-loop filter 150 processes the images 900-1 to 900-N of all the intra slices. Filtering can provide high quality images.
  • the CNN-based in-loop filter 150 not only selectively applies filtering under a low-delay structure, but also for each input slice in a series, and also for each coding unit block (CTU) or coding block (CU) or designated image within the input slice. It can be selectively applied by area.
  • CTU coding unit block
  • CU coding block
  • FIG. 20 illustrates another example of a method of applying a CNN-based in-loop filter
  • FIG. 21 illustrates another example of a method of applying a CNN-based in-loop filter, according to an exemplary embodiment. to be.
  • the CNN-based in-loop filter 150 includes a plurality of images 1010-1 through 1010-3 and 1020-in a process of encoding or decoding a hierarchical B-picture configuration. 1 to 1020-2, 1030-1 to 1030-4, and 1040-1 to 1040-4).
  • the hierarchical B screen structure may include first to fourth layers.
  • the slice type of the first layer images 1010-1 to 1010-3 may be an intra slice or a prediction slice. Images 1010-1 through 1010-3 of intra slices may perform intra prediction.
  • the slice types of the second to fourth layer images 1020-1 to 1020-2, 1030-1 to 1030-4, and 1040-1 to 1040-4 are bi-predictive slices (B slices).
  • Images 1020-1-1020-2, 1030-1-1030-4, and 1040-1-1040-4 of both prediction slices B may predict an image by referring to an image of a lower layer.
  • the images 1020-1 to 1020-2, 1030-1 to 1030-4, and 1040-1 to 1040-4 of both prediction slices (B slices) may or may not be the previous layer (before) or after. You can refer to all of them regardless of whether they are images (back).
  • the image 1020-1 of the second layer may refer to the images 1010-1 and 1010-2 of the first layer.
  • the image 1020-2 of the second layer may refer to the images 1010-2 and 1010-3 of the first layer.
  • the fourth layer of image 1040-1 may refer to the third layer of image 1030-1 and the first layer of image 1010-1, and the fourth layer of image 1040-1. 3) may refer to the image 1020-1 of the second layer and the image 1030-2 of the third layer.
  • the CNN-based in-loop filter 150 may select a specific layer to perform filtering. For example, the CNN-based in-loop filter 150 may perform filtering on the images 1010-1 to 1010-3 of one layer.
  • the CNN-based in-loop filter 150 may perform filtering on one layer of images 1010-1 to 1010-3 and two layers of images 1020-1 and 1020-2.
  • the CNN-based in-loop filter 150 performs filtering on the first layer of images 1010-1 through 1010-3 and the second layer of images 1020-1 and 1020-2 as shown in FIG. 20. Can be.
  • the CNN-based in-loop filter 150 may include one layer of images 1110-1 to 1110-3, two layers of images 1120-1 and 1120-2, and a third layer of images 1130-1. Filtering may be performed at ⁇ 1130-4).
  • the CNN-based in-loop filter 150 may include one layer of images 1110-1 to 1110-3, two layers of images 1120-1 and 1120-2, and a third layer of images 1130-1 to 1113-0. Performing filtering in 4) may be as shown in FIG. 21.
  • the CNN-based in-loop filter 150 not only selectively applies filtering under a low-delay structure, but also for each input slice in a series, and also for each coding unit block (CTU) or coding block (CU) or designated image within the input slice. It can be selectively applied by area.
  • CTU coding unit block
  • CU coding block
  • the CNN based in-loop filter 150 may apply filtering to a specific region in the image. For example, the CNN-based in-loop filter 150 may segment the image into a plurality of regions, and apply filtering by selecting only a portion of the plurality of regions. In this case, the CNN based in-loop filter 150 may signal whether or not filtering is applied to a part of the region.
  • the CNN-based in-loop filter 150 may apply filtering based on at least one of the amount of motion in the image and the texture complexity.
  • the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
  • the devices and components described in the embodiments are, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors, microcomputers, field programmable gate arrays (FPGAs).
  • ALUs arithmetic logic units
  • FPGAs field programmable gate arrays
  • PLU programmable logic unit
  • the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
  • the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
  • processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
  • the processing device may include a plurality of processors or one processor and one controller.
  • other processing configurations are possible, such as parallel processors.
  • the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
  • Software and / or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device in order to be interpreted by or to provide instructions or data to the processing device. Or may be permanently or temporarily embodied in a signal wave to be transmitted.
  • the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner.
  • Software and data may be stored on one or more computer readable recording media.
  • the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • the program instructions recorded on the media may be those specially designed and constructed for the purposes of the embodiments, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

Abstract

CNN 기반 인루프 필터를 포함하는 부호화 장치 및 복호화 장치가 개시된다. 일 실시예에 따른 부호화 장치는 원본 영상과 예측 영상 사이의 차이에 해당하는 잔차 영상을 필터링함으로써 필터링 정보를 생성하는 필터링부와, 상기 필터링 정보를 역필터링함으로써 역필터링 정보를 생성하는 역필터링부와, 상기 원본 영상과 복원 정보에 기초하여 상기 예측 영상을 생성하는 예측부와, 상기 역필터링 정보와 상기 예측 영상을 입력 받아 상기 복원 정보를 출력하는 CNN 기반 인루프 필터와, 및 상기 필터링 정보와 상기 예측 영상의 정보에 기초하여 부호화를 수행하는 부호화부를 포함한다.

Description

CNN 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
아래 실시예들은 CNN 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치에 관한 것이다.
종래에는 인루프 필터링은 양자화에 의해 인접 부호화 블록간 화소 값의 차이로 인해 발생하는 블록 경계가 시각적으로 매우 거슬리는 것을 완화하기 위해 블록 경계를 따라 블록 부화화 타입, 블록 경계 화소 강도, 움직임 정보, 양자화후 잔치 신호 존재 정보 등을 이용하여 인접 부호화 블록의 경계를 화소 간의 차이를 완화하는 방법을 이용하였다. 이때, 비록 고정된 필터 계수를 사용함으로써 계수를 전송하지 않았으나 부호화 블록의 경계에 대해 화질 열화를 완화하는 데만 효과적이다.
최근 HEVC(High Efficiency Video Coding) 표준에는 부호화 블록 경계에 대해 블록 경계 왜곡 완화 필터링(de-blocking filtering)을 적용하는 것뿐만 아니라, 추가적으로 양자화로 인한 영상 에지에 수직 방향으로 발생하는 너울성 왜곡(ringing artefact) 및 밝기차 왜곡을 줄이기 위한 샘플 적응형 오프셋(Sample Adaptive Offset) 필터링을 2차 인루프 필터링으로 사용하고 있다. 이 경우, 고주파 흐려짐 블러 왜곡(blurring artefact)을 제대로 개선하지 못할 뿐만 아니라, 샘플 오프셋 및 에지 방향 타입 등을 디코더로 전송해야 하므로 부호화 효율을 향상 시키는데 있어서 한계가 있다.
실시예들은 양자화로 인한 블록 경계 왜곡, 너울성 왜곡, 및 고주파 흐려짐 블러 왜곡(blurring artefact) 등을 인루프 필터링을 통해 제거하는 기술을 제공할 수 있다.
또한, 실시예들은 부호화 장치 및 복호화 장치에 훈련된 CNN 기반 인루프 필터를 사용하여 인루프 필터 계수를 전송하지 않으면서 화질을 개선하는 기술을 제공할 수 있다.
또한, 실시예들은 부호화 장치 및 복호화 장치가 훈련된 CNN 기반 인루프 필터를 사용하여 화질이 개선된 프레임을 참조 프레임으로 사용하여 부호화 효율 또는 복호화 효율을 크게 향상시키는 기술을 제공할 수 있다.
또한, 실시예들은 슬라이스 타입 별로 인루프 필터링을 적용하는 기술을 제공할 수 있다.
또한, 실시예들은 부호화 블록 별로 인루프 필터링을 적용하는 기술을 제공할 수 있다.
또한, 실시예들은 지정된 영상의 영역 별로 인루프 필터링 적용하는 기술을 제공할 수 있다.
일 실시예에 따른 CNN 기반 인루프 필터 학습 방법은, 원본 영상과 예측 영상 사이의 차이에 해당하는 잔차 영상을 필터링함으로써 필터링 정보(filtering information)를 생성하는 단계와, 상기 필터링 정보를 역필터링함으로써 역필터링 정보(inverse filtering information)를 생성하는 단계와, 상기 역필터링 정보를 CNN 기반 인루프 필터(CNN based in-loop filter)에 입력함으로써 복원 정보를 생성하는 단계와, 상기 복원 정보와 상기 원본 영상에 기반한 원본 정보의 차이를 계산하는 단계와, 및 상기 차이에 기초하여 상기 CNN 기반 인루프 필터의 가중치(weight)를 보정하는 단계를 포함하고, 상기 예측 영상은 상기 원본 영상과 상기 복원 정보에 기초하여 생성된다.
상기 필터링 정보를 생성하는 단계는, 상기 잔차 영상을 변환 및 양자화함으로써 필터링 정보를 생성하는 단계를 포함하고, 상기 역필터링 정보를 생성하는 단계는, 상기 필터링 정보를 역양자화 및 역변환함으로써 역필터링 정보를 생성하는 단계를 포함할 수 있다.
상기 필터링 정보를 생성하는 단계는, 양자화 파라미터(quantization parameter)에 따른 양자화 구간에 기초하여 상기 잔차 영상을 필터링하는 단계를 포함하고, 상기 보정하는 단계는, 상기 양자화 구간에 대한 가중치를 보정하는 단계를 포함할 수 있다.
상기 필터링 정보를 생성하는 단계는, 왜곡값에 따른 왜곡값 구간에 기초하여 상기 잔차 영상을 필터링하는 단계를 포함하고, 상기 보정하는 단계는, 상기 왜곡값 구간에 대한 가중치를 보정하는 단계를 포함할 수 있다.
상기 필터링 정보를 생성하는 단계는, 영상 특성의 텍스처 복잡도 구간에 기초하여 상기 잔차 영상을 필터링하는 단계를 포함하고, 상기 보정하는 단계는, 상기 텍스처 복잡도 구간에 대한 가중치를 보정하는 단계를 포함할 수 있다.
상기 필터링 정보를 생성하는 단계는, 영상 특성의 움직임 복잡도 구간에 기초하여 상기 잔차 영상을 필터링하는 단계를 포함하고, 상기 보정하는 단계는, 상기 움직임 복잡도 구간에 대한 가중치를 보정하는 단계를 포함할 수 있다.
상기 복원 정보를 생성하는 단계는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계를 포함하고, 상기 복원 정보는, 상기 원본 영상과 같은 형식일 수 있다.
상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계는, 상기 예측 정보에 인루프 필터링을 수행하는 단계를 포함할 수 있다.
상기 복원 정보를 생성하는 단계는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계를 포함하고, 상기 복원 정보는, 상기 잔차 영상과 같은 형식일 수 있다.
상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계는, 상기 예측 정보에 인루프 필터링을 수행하는 단계를 포함할 수 있다.
일 실시예에 따른 부호화 장치는 원본 영상과 예측 영상 사이의 차이에 해당하는 잔차 영상을 필터링함으로써 필터링 정보를 생성하는 필터링부와, 상기 필터링 정보를 역필터링함으로써 역필터링 정보를 생성하는 역필터링부와, 상기 원본 영상과 복원 정보에 기초하여 상기 예측 영상을 생성하는 예측부(estimator)와, 상기 역필터링 정보와 상기 예측 영상을 입력 받아 상기 복원 정보를 출력하는 CNN 기반 인루프 필터와, 상기 필터링 정보와 상기 예측 영상의 정보에 기초하여 부호화를 수행하는 부호화부(encoder)를 포함한다.
상기 필터링부는, 상기 잔차 영상을 변환 및 양자화함으로써 필터링 정보를 생성하고, 상기 역필터링부는, 상기 필터링 정보를 역양자화 및 역변환함으로써 역필터링 정보를 생성할 수 있다.
상기 복원 정보는, 상기 원본 영상과 같은 형식이고, 상기 CNN 기반 인루프 필터는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성할 수 있다.
상기 장치는 상기 예측 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
상기 인루프 필터는, 디블록킹 필터(deblocking filter(DF)), 샘플 적응형 오프셋 필터(sample adaptive offset(SAO) filter), 및 적응형 루프 필터(adaptive loop filter(ALF)) 중 적어도 하나를 포함할 수 있다.
상기 복원 정보는, 상기 잔차 영상과 같은 형식이고, 상기 CNN 기반 인루프 필터는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성할 수 있다.
상기 장치는, 상기 예측 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
상기 장치는, 상기 복원 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
일 실시예에 따른 복호화 장치는, 필터링 정보에 복호화를 수행하여 필터링 정보와 예비 예측 정보를 출력하는 엔트로피 복호화부(entropy decoder)와, 상기 필터링 정보를 역필터링함으로써 역필터링 정보를 생성하는 역필터링부와, 상기 예비 예측 정보에 기초하여 예측 영상을 생성하는 예측부와, 상기 역필터링 정보와 상기 예측 영상을 입력 받아 복원 정보를 출력하는 CNN 기반 인루프 필터를 포함한다.
상기 복원 정보는, 상기 원본 영상과 같은 형식이고, 상기 CNN 기반 인루프 필터는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성할 수 있다.
상기 장치는, 상기 역필터링 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
상기 인루프 필터는, 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
상기 복원 정보는, 상기 잔차 영상과 같은 형식이고, 상기 CNN 기반 인루프 필터는, 상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성할 수 있다.
상기 장치는, 상기 복원 정보와 상기 예측 영상을 더하여 최종 복원 정보를 생성하는 가산기를 더 포함할 수 있다.
상기 장치는, 상기 역필터링 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
상기 인루프 필터는, 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
상기 복원 정보는, 상기 잔차 영상과 같은 형식이고, 상기 CNN 기반 인루프 필터는, 상기 역필터링 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 잔차 복원 정보를 생성할 수 있다.
상기 장치는, 상기 잔차 복원 정보와 상기 예측 영상을 더하여 최종 복원 정보를 생성하는 가산기를 더 포함할 수 있다.
상기 최종 복원 정보에 인루프 필터링을 수행하는 인루프 필터를 더 포함할 수 있다.
상기 인루프 필터는, 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
도 1은 부호화 장치 및/또는 복호화 장치를 이용하는 시스템의 일 예를 설명하기 위한 도면이다.
도 2a는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 일 예를 나타낸다.
도 2b는 도 1에 도시된 예측부의 블록도의 일 예를 나타낸다.
도 3은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 4는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 5는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 6은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 7은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 8a는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 일 예를 나타낸다.
도 8b는 도 8a에 도시된 예측부의 블록도의 일 예를 나타낸다.
도 9는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 10은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 11은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 12는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 13은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 14는 일 실시예에 따른 CNN 기반 인루프 필터의 구조를 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 CNN 기반 인루프 필터의 구간 별 훈련 방법을 설명하기 위한 도면의 일 예이다.
도 16은 일 실시예에 따른 CNN 기반 인루프 필터의 구간 별 훈련 방법을 설명하기 위한 도면의 다른 예이다.
도 17은 일 실시예에 따른 CNN 기반 인루프 필터의 훈련 방법을 설명하기 위한 도면의 일 예이다.
도 18은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 19는 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 20은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 21은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 부호화 장치 및/또는 복호화 장치를 이용하는 시스템의 일 예를 설명하기 위한 도면이다.
도 1을 참조하면, 부호화 장치 및/또는 복호화 장치를 이용하는 시스템(10)은 사용자 단말기(11)와 서버 단말기(12)를 포함할 수 있다. 사용자 단말기(11)는 전자 장치(electronic device)를 포함할 수 있다. 전자 장치는 개인용 컴퓨터(personal computer(PC)), 데이터 서버, 텔레비전(TV), 또는 휴대용 장치로 구현될 수 있다.
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PSP(playstation portable), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 무선 통신 단말기(wireless communication terminal), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다.
서버 단말기(12)는 응용 서버, 또는 서비스 서버 등을 포함할 수 있다.
사용자 단말기(11)와 서버 단말기(12)는 각종 기기 또는 유무선 통신망(network)과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 및 복호화를 위해 화면 간(inter) 또는 화면 내(intra) 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(18), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(14) 등을 구비하는 다양한 장치를 포함할 수 있다.
또한, 사용자 단말기(11)와 서버 단말기(12)는 부호화 장치에 의해 비트스트림(bitstream)으로 부호화된 영상을 영상 복호화 장치로 전송할 수 있다. 예를 들어, 사용자 단말기(11)와 서버 단말기(12)는 실시간 또는 비실시간으로 부호화된 영상을 영상 복호화 장치로 전송할 수 있다.
사용자 단말기(11)와 서버 단말기(12)는 유무선 통신망 또는 다양한 통신 인터페이스를 통해 부호화된 영상을 영상 복호화 장치로 전송할 수 있다. 예를 들어, 유무선 통신망은 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 또는 이동통신망 등일 수 있다. 통신 인터페이스는 케이블, 또는 범용 직렬 버스(Universal Serial Bus(USB))등을 포함할 수 있다.
또한, 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
복호화 장치는 부호화된 영상을 복호화하여 복원된 영상을 재생할 수 있다.
부호화 장치와 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 부호화 및 복호화 장치로 만들어질 수 있다. 하나의 부호화 및 복호화 장치의 경우, 부호화 장치의 예측부, 역양자화부, 역변환부, 가산부, 필터부 및 DPB는 기재된 순서대로 복호화 장치의 예측부, 역양자화부, 역변환부, 가산부, 필터부 및 DPB와 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 또한, 엔트로부 부호화부는 그 기능을 역으로 수행할 때, 엔트로피 복호화부에 대응될 수 있다.
따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
또한, 복호화 장치는 부호화 장치에서 수행되는 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 부호화 장치를 중심으로 설명하기로 한다. 부호화 장치는 부호화기로, 복호화 장치는 복호화기로 각각 지칭될 수 있다.
도 2a는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 일 예를 나타내고, 도 2b는 도 1에 도시된 예측부의 블록도의 일 예를 나타낸다.
도 2a 및 도 2b를 참조하면, 부호화 장치(100)는 변환 및 양자화부(transformer and quantizer; 120), 엔트로피 부호화부(entropy encoder; 130), 역양자화 및 역변환부(inverse-quantizer and inverse-transformer; 140), CNN 기반 인루프 필터(CNN based in-loop filter; 150a), 부호화 픽쳐 버퍼(decoded picture buffer(DPB); 160), 예측부(estimator; 170), 및 복수의 가산기(adder)를 포함한다.
부호화 장치(100)는 입력 영상(input image; 110) 또는 입력 슬라이스(input slice; 110)에 부호화(인코딩(encoding))을 수행할 수 있다. 예를 들어, 부호화 장치(100)는 입력 영상(110) 또는 입력 슬라이스(110)를 분할한 복수 개의 픽셀 블록
Figure PCTKR2017001512-appb-I000001
에 부호화를 수행할 수 있다. 부호화 장치(100)는 입력 영상(110) 또는 입력 슬라이스(110)를 분할하는 분할부(미도시)를 더 포함할 수 있다. 분할부(미도시)는 입력 영상(110) 또는 입력 슬라이스(110)를 정해진 크기(M × N)의 블록으로 분할할 수 있다. 이때, M 또는 N은 1 이상의 자연수일 수 있다.
분할부(미도시)는 입력 영상(110) 또는 입력 슬라이스(110)의 특성, 또는 해상도 등에 기초하여 블록의 크기(M × N)를 결정할 수 있다. 분할부(미도시)는 블록의 크기(M × N)를 2의 거듭제곱으로 결정할 수 있다. 분할부(미도시)는 블록의 크기(M × N)를 정사각 형태 또는 직사각 형태로 결정할 수 있다. 예를 들어, 분할부(미도시)가 정사각 형태로 결정하는 경우, 블록의 크기(M × N)는 256 × 256, 128 × 128, 64 × 64, 32 × 32, 16 × 16, 8 × 8, 또는 4 × 4 등일 수 있다.
가산기는 픽셀 블록
Figure PCTKR2017001512-appb-I000002
및 예측 블록(
Figure PCTKR2017001512-appb-I000003
)에 기초하여 잔차 블록
Figure PCTKR2017001512-appb-I000004
을 생성할 수 있다. 예를 들어, 잔차 블록
Figure PCTKR2017001512-appb-I000005
은 픽셀 블록
Figure PCTKR2017001512-appb-I000006
및 예측 블록(
Figure PCTKR2017001512-appb-I000007
)의 차이에 해당하는 블록일 수 있다. 예측 블록(
Figure PCTKR2017001512-appb-I000008
)은 예측부(170)가 픽셀 블록
Figure PCTKR2017001512-appb-I000009
에 대하여 화면 내 예측(intra prediction) 또는 화면 간 예측(inter prediction) 등을 사용하여 생성한 블록일 수 있다. 변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000010
에 변환 및 양자화를 수행할 수 있다. 변환 및 양자화부(120)가 픽셀 블록
Figure PCTKR2017001512-appb-I000011
대신 잔차 블록
Figure PCTKR2017001512-appb-I000012
에 대하여 변환 및 양자화를 수행함으로써 부호화 효율을 증가시킬 수 있다.
변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000013
에 필터링을 수행하여 필터링 정보(filtering information;
Figure PCTKR2017001512-appb-I000014
)를 생성할 수 있다. 예를 들어, 변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000015
에 변환 및/또는 양자화를 수행할 수 있다.
변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000016
을 주파수 영역(frequency domain)으로 변환할 수 있다. 잔차 블록
Figure PCTKR2017001512-appb-I000017
의 각 화소는 변환된 잔차 블록의 변환 계수에 대응할 수 있다.
변환 및 양자화부(120)는 변환 매트릭스를 사용하여 잔차 블록
Figure PCTKR2017001512-appb-I000018
을 변환될 수 있다. 변환 매트릭스는 1 차원, 2 차원, 또는 3 차원의 변환 매트릭스일 수 있다. 예를 들어, 변환 및 양자화부(120)는 이산 코사인 변환(discrete cosine transform(DCT)), 이산 사인 변환(discrete cosine transform(DST)), 수평, 수직 단위 등으로 변환 매트릭스를 사용할 수 있다. 변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000019
의 크기, 형태, 종류(휘도/색차), 부호화 모드, 예측 모드 정보, 양자화 파라미터, 또는 이웃 블록의 부호화 정보 등에 기초하여 변환 매트릭스의 사용 여부를 결정할 수 있다. 변환 및 양자화부(120)는 잔차 블록
Figure PCTKR2017001512-appb-I000020
을 변환하여 변환 블록(E)을 생성할 수 있다.
변환 및 양자화부(120)는 변환 블록(E)에 양자화를 수행하여 양자화된 잔차(
Figure PCTKR2017001512-appb-I000021
)를 출력할 수 있다. 변환 및 양자화부(120)는 변환 블록(E)의 변환 계수에 양자화를 수행할 수 있다. 변환 및 양자화부(120)는 양자화 파라미터(quantization parameter(QP))에 따른 양자화 구간, 영상 신호의 특성에 따른 왜곡값 구간, 영상 신호 특성에 따른 텍스처 복잡도 구간, 및 영상 신호 특성에 따른 움직임 복잡도 구간 중 적어도 하나 이상에 기초하여 잔차 영상
Figure PCTKR2017001512-appb-I000022
에 필터링을 수행할 수 있다. 영상 신호는 잔차 블록
Figure PCTKR2017001512-appb-I000023
을 포함할 수 있다.
변환 및 양자화부(120)는 양자화 파라미터(QP)에 기초하여 양자화를 수행할 수 있다. 변환 및 양자화부(120)는 변환 블록(E)의 블록 단위로 양자화 파라미터를 결정할 수 있다. 양자화 파라미터는 시퀀스(sequence), 픽쳐(picture), 슬라이스(slice), 또는 블록(block) 등의 단위로 설정될 수 있다.
변환 및 양자화부(120)는 변환 블록(E)의 이웃 블록으로부터 적어도 하나의 양자화 파라미터를 유도할 수 있다. 변환 및 양자화부(120)는 적어도 하나의 양자화 파라미터를 사용하여 변환 블록(E)의 양자화 파라미터를 예측할 수 있다. 예를 들어, 변환 및 양자화부(120)는 변환 블록(E)의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위, 오른쪽 아래, 아래 등의 이웃 블록으로부터 적어도 하나의 양자화 파라미터를 유도할 수 있다. 변환 및 양자화부(120)는 예측한 양자화 파라미터와 이웃 블록으로부터 유도한 양자화 파라미터의 차분치를 계산하여 엔트로피 부호화부(130)로 전송할 수 있다.
변환 및 양자화부(120)가 변환 블록(E)의 이웃 블록으로부터 양자화 파라미터를 유도할 수 없는 경우, 변환 및 양자화부(120)는 시퀀스, 픽쳐, 슬라이스, 또는 블록 등의 단위로 전송된 기본 파라미터에 기초하여 양자화 파라미터를 설정할 수 있다. 변환 및 양자화부(120)는 기본 파라미터와 양자화 파라미터의 차분치를 계산하여 엔트로피 부호화부(130)로 전송할 수 있다.
변환 및 양자화부(120)는 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000024
)을 엔트로피 부호화부(130) 및/또는 역양자화 및 역변환부(140)로 전송할 수 있다.
엔트로피 부호화부(130)는 예측 블록(
Figure PCTKR2017001512-appb-I000025
) 및/또는 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000026
)에 엔트로피 부호화를 수행할 수 있다. 예를 들어, 엔트로피 부호화부(130)는 컨텍스트 적응 가변 길이 코딩(CAVLC), 컨텍스트 적응 2진 산술 코딩(CABAC), 또는 구문 기반 컨텍스트 적응 2진 산술 코딩(SBAC) 등의 부호화 방식을 사용하여 엔트로피 부호화를 수행할 수 있다.
엔트로피 부호화부(130)는 엔트로피 부호화를 수행하여 부호화 데이터를 비트스트림으로 출력할 수 있다. 부호화 데이터는 양자화 파라미터를 부호화한 비트스트림과 부호화된 비트스트림을 복호화하는데 필요한 다양한 정보들을 포함할 수 있다. 또한, 부호화 데이터는 부호화된 블록 형태, 양자화 파라미터, 양자화 블록이 부호화된 비트스트림, 및 예측에 필요한 정보 등을 포함할 수 있다.
역양자화 및 역변환부(140)는 필터링 정보(
Figure PCTKR2017001512-appb-I000027
)에 역필터링을 수행하여 역필터링 정보(inverse filtering information;
Figure PCTKR2017001512-appb-I000028
)를 생성할 수 있다. 역필터링 정보(
Figure PCTKR2017001512-appb-I000029
)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000030
)을 의미할 수 있다. 예를 들어, 역양자화 및 역변환부(140)는 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000031
)에 역양자화 및/또는 역변환을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000032
)을 생성할 수 있다. 역양자화 및 역변환부(140)는 변환 및 양자화부(120)의 동작을 역으로 수행할 수 있다. 예를 들어, 역양자화 및 역변환부(140)는 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000033
)에 역양자화를 수행하고, 역변환을 수행할 수 있다. 역양자화 및 역변환부(140)는 변환 및 양자화부(120)의 변환 구조 및 양자화 구조를 반대로 구성할 수 있다.
도 1에서는 설명의 편의상 변환 및 양자화부(120)가 변환 및 양자화를 수행하는 것으로 도시하고 있으나, 반드시 이에 한정되는 것은 아니고, 잔차 블록
Figure PCTKR2017001512-appb-I000034
을 변환하는 변환부와, 잔차 블록
Figure PCTKR2017001512-appb-I000035
을 양자화하는 양자화부로 각각 구현될 수 있다.
또한, 역양자화 및 역변환부(140)가 역양자화 및 역변환을 수행하는 것으로 도시하고 있으나, 반드시 이에 한정되는 것은 아니고, 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000036
)을 역양자화하는 역양자화부와, 양자화된 잔차 변환(
Figure PCTKR2017001512-appb-I000037
)을 역변환하는 역변환부로 각각 구현될 수 있다.
가산기는 예측 블록(
Figure PCTKR2017001512-appb-I000038
) 및 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000039
)에 기초하여 예비 복원(preliminary reconstruction) 블록(
Figure PCTKR2017001512-appb-I000040
)을 생성할 수 있다. 예비 복원 블록(
Figure PCTKR2017001512-appb-I000041
)은 예측 블록(
Figure PCTKR2017001512-appb-I000042
) 및 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000043
)을 가산한 블록일 수 있다.
CNN 기반 인루프 필터(150a)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000044
), 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000045
), 또는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000046
) 등일 수 있다. 복원 정보는 복원정보는 복원 블록(
Figure PCTKR2017001512-appb-I000047
), 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000048
또는
Figure PCTKR2017001512-appb-I000049
), 최종 복원 블록(
Figure PCTKR2017001512-appb-I000050
)등일 수 있다. 도 2a 및 도 2b에서는 CNN 기반 인루프 필터(150a)가 예비 복원 블록(
Figure PCTKR2017001512-appb-I000051
)에 인루프 필터링을 수행하여 복원 블록(
Figure PCTKR2017001512-appb-I000052
)을 생성하는 동작에 대해 설명한다.
CNN 기반 인루프 필터(150a)가 2차 예측 블록(예비 복원 블록(
Figure PCTKR2017001512-appb-I000053
))에 인루프 필터링을 수행하여 복원 블록(
Figure PCTKR2017001512-appb-I000054
)을 생성할 수 있다. 예비 복원 블록(
Figure PCTKR2017001512-appb-I000055
)은 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000056
)과 예측 블록(
Figure PCTKR2017001512-appb-I000057
)을 더한 블록일 수 있다. 복원 블록(
Figure PCTKR2017001512-appb-I000058
)은 예측 블록(
Figure PCTKR2017001512-appb-I000059
), 또는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000060
)보다 화질이 향상된 블록일 수 있다.
CNN 기반 인루프 필터(150a)는 심층 콘볼루션 뉴럴 네트워크(deep convolutional neural network)를 사용할 수 있다. 즉, CNN 기반 인루프 필터(150a)는 복수의 트레이닝 데이터에 기초하여 훈련될 수 있다. CNN 기반 인루프 필터(150a)는 임의의 입력 영상에 대하여 적절한 출력 영상을 생성하도록 훈련될 수 있다.
CNN 기반 인루프 필터(150a)는 입력 레이어(input layer), 은닉 레이어(hidden layer), 및 출력 레이어(output layer)를 포함할 수 있다. 입력 레이어(input layer), 은닉 레이어(hidden layer), 및 출력 레이어(output layer)는 각각 복수의 노드들을 포함할 수 있다.
인접한 레이어 사이의 노드들은 연결 가중치를 가지고 서로 연결될 수 있다. 각 노드들은 활성화 모델에 기초하여 동작할 수 있다. 활성화 모델에 따라 입력 값에 대응하는 출력 값이 결정될 수 있다. 임의의 노드의 출력 값은 해당 노드와 연결된 다음 레이어의 노드로 입력될 수 있다. 다음 레이어의 노드는 복수의 노드들로부터 출력되는 값들을 입력 받을 수 있다. 임의의 노드의 출력 값이 다음 레이어의 노드로 입력되는 과정에서, 연결 가중치가 적용될 수 있다. 다음 레이어의 노드는 활성화 모델에 기초하여 입력 값에 대응하는 출력 값을 해당 노드와 연결된 그 다음 레이어의 노드로 출력할 수 있다.
출력 레이어는 인루프 필터링에 대응하는 노드들을 포함할 수 있다. 출력 레이어의 노드들은 인루프 필터링을 수행한 영상(또는 블록)에 대응하는 특징 값들을 출력할 수 있다.
CNN 기반 인루프 필터(150a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000061
)에 슬라이스 별로, 부호화 블록 별로, 또는 지정된 영역 별로 필터링을 수행할 수 있다. 이에, 부호화 장치(100)는 필터링 결과 생성된 복원 블록(
Figure PCTKR2017001512-appb-I000062
)을 부호화함으로써 부호화 효율과 복잡도를 개선할 수 있다.
CNN 기반 인루프 필터(150a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000063
)에 필터링을 수행하여 복원 블록(
Figure PCTKR2017001512-appb-I000064
)을 생성할 수 있다. 즉, CNN 기반 인루프 필터(150a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000065
)에 기초하여 복원 블록(
Figure PCTKR2017001512-appb-I000066
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(150a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000067
) 및 픽셀 블록
Figure PCTKR2017001512-appb-I000068
에 기초하여 복원 블록(
Figure PCTKR2017001512-appb-I000069
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(150a)는 복원 블록(
Figure PCTKR2017001512-appb-I000070
)을 복호화 픽쳐 버퍼(160)로 전송할 수 있다.
CNN 기반 인루프 필터(150a)의 구성, 훈련 방법 등에 대해서는 도면을 참조하여 후술하도록 한다.
복호화 픽쳐 버퍼(160)는 복원 블록(
Figure PCTKR2017001512-appb-I000071
)을 저장하거나, 또는 디스플레이 장치 등으로 출력하여 디스플레이(display)할 수 있다.
복호화 픽쳐 버퍼(160)가 복원 블록(
Figure PCTKR2017001512-appb-I000072
)을 저장하는 경우, 복호화 픽쳐 버퍼(160)는 예측부(170)가 예측 블록(
Figure PCTKR2017001512-appb-I000073
)을 생성할 때, 복원 블록(
Figure PCTKR2017001512-appb-I000074
)이 사용되도록 전송할 수 있다. 예를 들어, 예측부(170)는 이후의 화면 내 예측(intra prediction) 또는 화면 간 예측(inter prediction) 동작 과정에서 복원 블록(
Figure PCTKR2017001512-appb-I000075
)이 사용하여 예측 블록(
Figure PCTKR2017001512-appb-I000076
)을 생성할 수 있다.
예측부(170)는 픽셀 블록
Figure PCTKR2017001512-appb-I000077
및 복원 블록(
Figure PCTKR2017001512-appb-I000078
)에 기초하여 예측 블록(
Figure PCTKR2017001512-appb-I000079
)을 생성할 수 있다. 복원 블록(
Figure PCTKR2017001512-appb-I000080
)과 픽셀 블록
Figure PCTKR2017001512-appb-I000081
은 시간 차이가 있을 수 있다. 예를 들어, 복원 블록(
Figure PCTKR2017001512-appb-I000082
)은 픽셀 블록
Figure PCTKR2017001512-appb-I000083
보다 먼저 생성된 블록일 수 있다.
예측부(170)는 픽셀 블록
Figure PCTKR2017001512-appb-I000084
및 복원 블록(
Figure PCTKR2017001512-appb-I000085
)에 기초하여 예측 블록(
Figure PCTKR2017001512-appb-I000086
)의 정보를 생성할 수 있다. 예를 들어, 예측 블록(
Figure PCTKR2017001512-appb-I000087
)의 정보는 화면 내 예측 모드, 화면 간 움직임 예측 모드, 움직임 블록 타입, 및 움직임 벡터 중 적어도 하나를 포함할 수 있다.
예측부(170)는 프레임 내 추정부(171), 움직임 추정부(172), 프레임 내 예측부(173), 움직임 보상부(174), 모드 결정부(175), 및 예측 영상 생성부(176)을 포함할 수 있다.
프레임 내 추정부(171) 및 움직임 추정부(172)는 입력 영상(110) 및 (복호화 픽쳐 버퍼(160)로부터) 복원 블록(
Figure PCTKR2017001512-appb-I000088
)을 수신할 수 있다.
프레임 내 추정부(171)는 입력 영상(110) 및 복원 블록(
Figure PCTKR2017001512-appb-I000089
)에 기초하여 인트라 모드(intra mode)를 결정할 수 있다. 프레임 내 추정부(171)는 인트라 모드를 프레임 내 예측부(173) 및 엔트로피 부호화부(130)로 전송할 수 있다.
프레임 내 예측부(173)는 인트라 모드에서 입력 영상(110) 및 복원 블록(
Figure PCTKR2017001512-appb-I000090
)에 기초하여 화면 내 예측을 수행하고, 모드 결정부(175)로 전송할 수 있다.
움직임 추정부(172)는 입력 영상(110) 및 복원 블록(
Figure PCTKR2017001512-appb-I000091
)에 기초하여 움직임 벡터들(motion vectors(MVs))을 추출할 수 있다. 움직임 추정부(172)는 움직임 벡터들을 움직임 보상부(174)로 전송할 수 있다.
움직임 보상부(174)는 입력 영상(110) 및 복원 블록(
Figure PCTKR2017001512-appb-I000092
)의 움직임 벡터들에 기초하여 화면 내 움직임을 보상할 수 있고, 모드 결정부(175)로 전송할 수 있다.
모드 결정부(175)는 프레임 내 예측부(173) 및 움직임 보상부(174)로부터의 데이터에 기초하여 부호화 모드를 결정할 수 있다. 예를 들어, 부호화 모드는 인트라 모드(intra mode), 인터 모드(inter mode) 등이 있을 수 있다.
예측 영상 생성부(176)는 모드 결정부(175)가 결정한 부호화 모드에 기초하여 예측 블록(
Figure PCTKR2017001512-appb-I000093
)을 생성할 수 있다.
예측 영상 생성부(176)는 생성한 예측 블록(
Figure PCTKR2017001512-appb-I000094
)을 가산기 또는 엔트로피 부호화부(130)로 전송할 수 있다.
도 3은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 3을 참조하면, 부호화 장치(100)는 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 인루프 필터(in-loop filter; 145), CNN 기반 인루프 필터(150b), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기를 포함한다.
도 3에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기는 도 2a에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 인루프 필터(145) 및 CNN 기반 인루프 필터(150b)에 대해 설명한다.
인루프 필터(145)는 가산기로부터 예비 복원 블록(
Figure PCTKR2017001512-appb-I000095
)을 수신할 수 있다. 인루프 필터(145)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000096
)에 필터링을 수행하여 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000097
)을 생성할 수 있다.
인루프 필터(145)는 디블록킹 필터(deblocking filter(DF)), 샘플 적응형 오프셋 필터(sample adaptive offset(SAO) filter), 및 적응형 루프 필터(adaptive loop filter(ALF)) 중 적어도 하나를 포함할 수 있다.
즉, 인루프 필터(145)가 1 개의 필터를 포함하는 경우, 인루프 필터(145)는 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 하나의 필터로 구현될 수 있다.
인루프 필터(145)가 2 개의 필터를 포함하는 경우, 인루프 필터(145)는 디블록킹 필터(DF) 및 샘플 적응형 오프셋 필터(SAO filter)를 포함하는 것으로 구현될 수 있다. 또는, 인루프 필터(145)는 샘플 적응형 오프셋 필터(SAO filter) 및 적응형 루프 필터(ALF)를 포함하는 것으로 구현될 수 있다. 또는, 인루프 필터(145)는 디블록킹 필터(DF) 및 적응형 루프 필터(ALF)를 포함하는 것으로 구현될 수 있다.
인루프 필터(145)가 3 개의 필터를 포함하는 경우, 인루프 필터(145)는 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF)를 포함하는 것으로 구현될 수 있다.
디블록킹 필터(DF)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000098
)을 필터링하여 예비 복원 블록(
Figure PCTKR2017001512-appb-I000099
)의 경계영역에 나타나는 블록간 화소값 차이 왜곡을 완화시킬 수 있다. 블록간 화소값 차이는 양자화 과정에서 발생할 수 있다. 디블록킹 필터(DF)는 정해진 필터 계수를 필터링에 사용할 수 있다.
샘플 적응형 오프셋 필터(SAO filter)는 부호화 블록 단위로 너울성 왜곡(ringing artefact)이나 화소값 구간 왜곡을 수정할 수 있다. 샘플 적응형 오프셋 필터(SAO filter)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000100
)에 디블록킹 필터링을 수행한 결과와 픽셀 블록
Figure PCTKR2017001512-appb-I000101
에 대하여 차이 값을 오프셋으로 복원할 수 있다.
적응형 루프 필터(ALF)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000102
)에 상기 샘플 적응형 오프셋 필터링된 결과에 1단 선형 매핑 모델을 사용하여 필터링을 수행할 수 있다.
CNN 기반 인루프 필터(150b)는 예측 정보에 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000103
)을 포함하고, 복원 정보는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000104
)을 포함할 수 있다.
즉, CNN 기반 인루프 필터(150b)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000105
)에 기초하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000106
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(150b)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000107
) 및 픽셀 블록
Figure PCTKR2017001512-appb-I000108
에 기초하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000109
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(150b)는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000110
)을 복호화 픽쳐 버퍼(160)에 전송할 수 있다.
도 4는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 4를 참조하면, 부호화 장치(100)는 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), CNN 기반 인루프 필터(150c), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기를 포함한다.
도 4에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기는 도 2a에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(150c)에 대해 설명한다.
CNN 기반 인루프 필터(150c)는 예측 정보에 필터링을 수행하여 복원 정보를 생성할 수 있다. CNN 기반 인루프 필터(150c)는 가산기로부터 예비 복원 블록(
Figure PCTKR2017001512-appb-I000111
)을 수신할 수 있다. CNN 기반 인루프 필터(150c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000112
)에 필터링을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000113
)을 생성할 수 있다.
즉, CNN 기반 인루프 필터(150c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000114
)에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000115
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(150c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000116
) 및 잔차 블록
Figure PCTKR2017001512-appb-I000117
에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000118
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(150c)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000119
)을 가산기에 전송할 수 있다.
가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000120
) 및 예측 블록(
Figure PCTKR2017001512-appb-I000121
)을 가산하여 복원 블록(
Figure PCTKR2017001512-appb-I000122
)을 생성할 수 있다. 가산기는 복원 블록(
Figure PCTKR2017001512-appb-I000123
)을 복호화 픽쳐 버퍼(160)에 전송할 수 있다.
도 5는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 5를 참조하면, 부호화 장치(100)는 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 인루프 필터(145), CNN 기반 인루프 필터(150d), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기를 포함한다.
도 5에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 인루프 필터(145), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기는 도 3에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 인루프 필터(145), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(150d)에 대해 설명한다.
CNN 기반 인루프 필터(150d)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. CNN 기반 인루프 필터(150d)는 인루프 필터(145)로부터 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000124
)을 수신할 수 있다. CNN 기반 인루프 필터(150d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000125
)에 필터링을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000126
)을 생성할 수 있다. 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000127
)은 도 4에 도시된 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000128
)보다 0에 더 가까운 값일 수 있다.
즉, CNN 기반 인루프 필터(150d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000129
)에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000130
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(150d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000131
) 및 잔차 블록(e)에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000132
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(150d)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000133
)을 가산기에 전송할 수 있다.
가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000134
)및 예측 블록(
Figure PCTKR2017001512-appb-I000135
)을 가산하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000136
)을 생성할 수 있다. 가산기는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000137
)을 복호화 픽쳐 버퍼(160)에 전송할 수 있다.
도 6은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 6을 참조하면, 부호화 장치(100)는 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), CNN 기반 인루프 필터(150e), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기를 포함한다.
도 6에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기는 도 2a에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(150e)에 대해 설명한다.
CNN 기반 인루프 필터(150e)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. CNN 기반 인루프 필터(150e)는 역양자화 및 역변환부(140)로부터 역양자화 및 역변환된 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000138
)을 수신할 수 있다. CNN 기반 인루프 필터(150e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000139
)에 필터링을 수행하여 복원 정보를 생성할 수 있다. 복원 정보는 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000140
)을 포함할 수 있다.
즉, CNN 기반 인루프 필터(150e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000141
)에 기초하여 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000142
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(150e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000143
) 및 잔차 블록
Figure PCTKR2017001512-appb-I000144
에 기초하여 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000145
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(150e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000146
)을 가산기에 전송할 수 있다.
가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000147
) 및 예측 블록(
Figure PCTKR2017001512-appb-I000148
)을 가산하여 복원 블록(
Figure PCTKR2017001512-appb-I000149
)을 생성할 수 있다. 가산기는 복원 블록(
Figure PCTKR2017001512-appb-I000150
)을 복호화 픽쳐 버퍼(160)에 전송할 수 있다.
도 7은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 부호화 장치의 블록도의 다른 예를 나타낸다.
도 7을 참조하면, 부호화 장치(100)는 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), CNN 기반 인루프 필터(150e), 인루프 필터(147), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기를 포함한다.
도 7에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), CNN 기반 인루프 필터(150e), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기는 도 6에 도시된 변환 및 양자화부(120), 엔트로피 부호화부(130), 역양자화 및 역변환부(140), CNN 기반 인루프 필터(150e), 복호화 픽쳐 버퍼(160), 예측부(170), 및 복수의 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 인루프 필터(147)에 대해 설명한다.
인루프 필터(147)는 가산기로부터 복원 블록(
Figure PCTKR2017001512-appb-I000151
)을 수신할 수 있다. 복원 블록(
Figure PCTKR2017001512-appb-I000152
)은 1차 복원 블록(
Figure PCTKR2017001512-appb-I000153
)일 수 있다. 인루프 필터(147)는 1차 복원 블록()에 필터링을 수행하여
최종 복원 블록(
Figure PCTKR2017001512-appb-I000155
)을 생성할 수 있다. 인루프 필터(147)는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000156
)을 복호화 픽쳐 버퍼(160)로 전송할 수 있다.
인루프 필터(147)는 도 3에서 상술한 바와 같이, 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
도 8a는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 일 예를 나타내고, 도 8b는 도 8a에 도시된 예측부의 블록도의 일 예를 나타낸다.
도 8a 및 도 8b를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230a), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기를 포함한다.
복호화 장치(200)는 도 2a 내지 도 7에 도시된 부호화 장치(100)에서 수행되는 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응할 수 있다. 즉, 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기는 도 2a에 도시된 엔트로피 부호화부(130), 역양자화 및 역변환부(140), 변환 및 양자화부(120), 복호화 픽쳐 버퍼(160), 예측부(170), 및 가산기에 대응할 수 있다.
엔트로피 복호화부(210)는 부호화된 비트스트림 정보에 파싱을 수행함으로써 복호화를 수행할 수 있다. 엔트로피 복호화부(210)는 복호화를 수행하여 필터링 정보와 예비 예측 정보를 출력할 수 있다. 엔트로피 복호화부(210)는 엔트로피 복호화부(210)는 양자화된 잔차(
Figure PCTKR2017001512-appb-I000157
)를 역양자화 및 역변환부(140) 및/또는 예측부(170)로 전송할 수 있다.
역양자화 및 역변환부(220)는 변환 및/또는 양자화된 잔차(
Figure PCTKR2017001512-appb-I000158
)에 역양자화 및/또는 역변환을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000159
)을 생성할 수 있다. 역양자화 및 역변환부(220)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000160
)을 가산기로 전송할 수 있다.
가산기는 역양자화 및 역변환부(220)로부터 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000161
)을 수신하고, 예측부(170)로부터 예측 블록(
Figure PCTKR2017001512-appb-I000162
)을 수신할 수 있다. 가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000163
) 및 예측 블록(
Figure PCTKR2017001512-appb-I000164
)을 가산하여 예비 복원 블록(
Figure PCTKR2017001512-appb-I000165
)을 생성할 수 있다. 가산기는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000166
)을 CNN 기반 인루프 필터(230a)로 전송할 수 있다.
CNN 기반 인루프 필터(230a)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000167
)을 포함하고, 복원 정보는 복원 블록(
Figure PCTKR2017001512-appb-I000168
)을 포함할 수 있다.
도 2a에서 상술한 바와 같이, CNN 기반 인루프 필터(230a)는 심층 콘볼루션 뉴럴 네트워크를 사용할 수 있다. 즉, CNN 기반 인루프 필터(230a)는 복수의 트레이닝 데이터에 기초하여 훈련될 수 있다. CNN 기반 인루프 필터(230a)는 임의의 입력 영상에 대하여 적절한 출력 영상을 생성하도록 훈련될 수 있다.
즉, CNN 기반 인루프 필터(230a)는 입력 레이어, 은닉 레이어, 및 출력 레이어를 포함할 수 있다. 입력 레이어, 은닉 레이어, 및 출력 레이어는 각각 복수의 노드들을 포함할 수 있다.
CNN 기반 인루프 필터(230a)는 2차 예측 블록(
Figure PCTKR2017001512-appb-I000169
)에 슬라이스 별로, 부호화 블록 별로, 또는 지정된 영역 별로 필터링을 수행할 수 있다. 이에, 복호화 장치(200)는 필터링 결과 생성된 복원 블록(
Figure PCTKR2017001512-appb-I000170
)을 복호화함으로써 복호화 효율과 복잡도를 개선할 수 있다.
CNN 기반 인루프 필터(230a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000171
)에 필터링을 수행하여 복원 블록(
Figure PCTKR2017001512-appb-I000172
)을 생성할 수 있다. 즉, CNN 기반 인루프 필터(230a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000173
)에 기초하여 복원 블록(
Figure PCTKR2017001512-appb-I000174
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(230a)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000175
) 및 픽셀 블록
Figure PCTKR2017001512-appb-I000176
에 기초하여 복원 블록(
Figure PCTKR2017001512-appb-I000177
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(230a)는 복원 블록(
Figure PCTKR2017001512-appb-I000178
)을 부호화 픽쳐 버퍼(240)로 전송할 수 있다.
CNN 기반 인루프 필터(230a)의 구성, 훈련 방법 등에 대해서는 도면을 참조하여 후술하도록 한다.
부호화 픽쳐 버퍼(240)는 복원 블록(
Figure PCTKR2017001512-appb-I000179
)을 저장하거나, 또는 디스플레이 장치 등으로 출력하여 디스플레이할 수 있다.
부호화 픽쳐 버퍼(240)가 복원 블록(
Figure PCTKR2017001512-appb-I000180
)을 저장하는 경우, 부호화 픽쳐 버퍼(240)는 예측부(250)가 예측 블록(
Figure PCTKR2017001512-appb-I000181
)을 생성할 때, 복원 블록(
Figure PCTKR2017001512-appb-I000182
)이 사용되도록 전송할 수 있다. 예를 들어, 예측부(250)는 이후의 화면 내 예측 또는 화면 간 예측 동작 과정에서 복원 블록(
Figure PCTKR2017001512-appb-I000183
)이 사용하여 예측 블록(
Figure PCTKR2017001512-appb-I000184
)을 생성할 수 있다.
예측부(250)는 복원 블록(
Figure PCTKR2017001512-appb-I000185
)에 기초하여 예측 블록(
Figure PCTKR2017001512-appb-I000186
)을 생성할 수 있다. 예측부(250)는 프레임 내 예측부(251), 움직임 보상부(252), 및 예측 영상 생성부(253)을 포함할 수 있다.
프레임 내 예측부(251) 및 움직임 보상부(252)는 부호화 픽쳐 버퍼(240)로부터 복원 블록(
Figure PCTKR2017001512-appb-I000187
)을, 엔트로피 복호화부(210)로부터 양자화된 잔차(
Figure PCTKR2017001512-appb-I000188
)를 수신할 수 있다.
프레임 내 예측부(251)는 인트라 모드에서 양자화된 잔차(
Figure PCTKR2017001512-appb-I000189
) 및 복원 블록(
Figure PCTKR2017001512-appb-I000190
)에 기초하여 화면 내 예측을 수행하고, 결과값을 예측 영상 생성부(253)로 전송할 수 있다.
움직임 보상부(252)는 양자화된 잔차(
Figure PCTKR2017001512-appb-I000191
) 및 복원 블록(
Figure PCTKR2017001512-appb-I000192
)의 움직임 벡터들에 기초하여 화면 내 움직임을 보상할 수 있고, 결과값을 예측 영상 생성부(253)로 전송할 수 있다.
예측 영상 생성부(253)는 프레임 내 예측부(251) 및 움직임 보상부(252)의 결과값에 기초하여 예측 블록(
Figure PCTKR2017001512-appb-I000193
)을 생성할 수 있다. 예측 영상 생성부(253)는 생성한 예측 블록(
Figure PCTKR2017001512-appb-I000194
)을 가산기로 전송할 수 있다.
도 9는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 9를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 인루프 필터(225), CNN 기반 인루프 필터(230b), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기를 포함한다.
도 9에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기는 도 8a에 도시된 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 인루프 필터(225) 및 CNN 기반 인루프 필터(230b)에 대하여 설명한다.
인루프 필터(225)는 가산기로부터 예비 복원 블록(
Figure PCTKR2017001512-appb-I000195
)을 수신할 수 있다. 인루프 필터(225)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000196
)에 필터링을 수행하여 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000197
)을 생성할 수 있다. 인루프 필터(225)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000198
)을 CNN 기반 인루프 필터(230b)로 전송할 수 있다.
인루프 필터(225)는 상술한 바와 같이 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
CNN 기반 인루프 필터(230b)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000199
)을 포함하고, 복워 정보는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000200
)을 포함할 수 있다.
즉, CNN 기반 인루프 필터(230b)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000201
)에 기초하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000202
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(230b)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000203
) 및 픽셀 블록
Figure PCTKR2017001512-appb-I000204
에 기초하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000205
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(230b)는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000206
)을 부호화 픽쳐 버퍼(240)에 전송할 수 있다.
도 10은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 10을 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230c), 부호화 픽쳐 버퍼(240), 예측부(250), 및 복수의 가산기를 포함한다.
도 10에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 복수의 가산기는 도 8a에 도시된 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(230c)에 대해서 설명한다.
CNN 기반 인루프 필터(230c)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000207
)을 포함하고, 복원 정보는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000208
)을 포함할 수 있다. CNN 기반 인루프 필터(230c)는 가산기로부터 예비 복원 블록(
Figure PCTKR2017001512-appb-I000209
)을 수신할 수 있다. CNN 기반 인루프 필터(230c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000210
)에 필터링을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000211
)을 생성할 수 있다.
즉, CNN 기반 인루프 필터(230c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000212
)에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000213
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(230c)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000214
) 및 잔차 블록
Figure PCTKR2017001512-appb-I000215
에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000216
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(230c)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000217
)을 가산기에 전송할 수 있다.
가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000218
) 및 예측 블록(
Figure PCTKR2017001512-appb-I000219
)을 가산하여 복원 블록(
Figure PCTKR2017001512-appb-I000220
)을 생성할 수 있다. 가산기는 복원 블록(
Figure PCTKR2017001512-appb-I000221
)을 부호화 픽쳐 버퍼(240)에 전송할 수 있다.
도 11은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 11을 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 인루프 필터(225), CNN 기반 인루프 필터(230d), 부호화 픽쳐 버퍼(240), 예측부(250), 및 복수의 가산기를 포함한다.
도 11에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 인루프 필터(225), CNN 기반 인루프 필터(230d), 부호화 픽쳐 버퍼(240), 예측부(250), 및 복수의 가산기는 도 9에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 인루프 필터(225), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(230d)에 대하여 설명한다.
CNN 기반 인루프 필터(230d)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000222
)을 포함하고, 복원 정보는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000223
)을 포함할 수 있다. CNN 기반 인루프 필터(230d)는 인루프 필터(225)로부터 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000224
)을 수신할 수 있다. CNN 기반 인루프 필터(230d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000225
)에 필터링을 수행하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000226
)을 생성할 수 있다. 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000227
)은 도 10에 도시된 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000228
)보다 0에 더 가까운 값일 수 있다.
즉, CNN 기반 인루프 필터(230d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000229
)에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000230
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(230d)는 2차 예비 복원 블록(
Figure PCTKR2017001512-appb-I000231
) 및 잔차 블록
Figure PCTKR2017001512-appb-I000232
에 기초하여 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000233
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(230d)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000234
)을 가산기에 전송할 수 있다.
가산기는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000235
)및 예측 블록(
Figure PCTKR2017001512-appb-I000236
)을 가산하여 최종 복원 블록(
Figure PCTKR2017001512-appb-I000237
)을 생성할 수 있다. 가산기는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000238
)을 부호화 픽쳐 버퍼(240)에 전송할 수 있다.
도 12는 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 12를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230e), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기를 포함한다.
도 12에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 복수의 가산기는 도 8a에 도시된 복호화부(210), 역양자화 및 역변환부(220), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 CNN 기반 인루프 필터(230e)에 대해서 설명한다.
CNN 기반 인루프 필터(230e)는 예측 정보에 인루프 필터링을 수행하여 복원 정보를 생성할 수 있다. 예측 정보는 예측 잔차 블록(
Figure PCTKR2017001512-appb-I000239
)을 포함하고, 복원 정보는 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000240
)을 포함할 수 있다. CNN 기반 인루프 필터(230e)는 역양자화 및 역변환부(220)로부터 역양자화 및 역변환된 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000241
)을 수신할 수 있다. CNN 기반 인루프 필터(230e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000242
)에 필터링을 수행하여 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000243
)을 생성할 수 있다.
즉, CNN 기반 인루프 필터(230e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000244
)에 기초하여 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000245
)을 생성하도록 학습할 수 있다. 예를 들어, CNN 기반 인루프 필터(230e)는 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000246
) 및 잔차 블록
Figure PCTKR2017001512-appb-I000247
에 기초하여 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000248
)을 생성하도록 학습할 수 있다.
CNN 기반 인루프 필터(230e)는 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000249
)을 가산기에 전송할 수 있다.
가산기는 2차 복원 잔차 블록(
Figure PCTKR2017001512-appb-I000250
) 및 예측 블록(
Figure PCTKR2017001512-appb-I000251
)을 가산하여 복원 블록(
Figure PCTKR2017001512-appb-I000252
)을 생성할 수 있다. 가산기는 복원 블록(
Figure PCTKR2017001512-appb-I000253
)을 부호화 픽쳐 버퍼(240)에 전송할 수 있다.
도 13은 일 실시예에 따른 CNN 기반 인루프 필터를 포함하는 복호화 장치의 블록도의 다른 예를 나타낸다.
도 13을 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230e), 인루프 필터(227), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기를 포함한다.
도 13에 도시된 엔트로피 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230e), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기는 도 12에 도시된 복호화부(210), 역양자화 및 역변환부(220), CNN 기반 인루프 필터(230e), 부호화 픽쳐 버퍼(240), 예측부(250), 및 가산기와 구성 및 동작이 실질적으로 동일할 수 있다. 이에, 이하에서는 인루프 필터(227)에 대해서 설명한다.
인루프 필터(227)는 가산기로부터
복원 블록(
Figure PCTKR2017001512-appb-I000254
)을 수신할 수 있다. 복원 블록(
Figure PCTKR2017001512-appb-I000255
)은 예비 복원 블록(
Figure PCTKR2017001512-appb-I000256
)일 수 있다. 인루프 필터(227)는 예비 복원 블록(
Figure PCTKR2017001512-appb-I000257
)에 필터링을 수행하여 2차 최종 복원 블록(
Figure PCTKR2017001512-appb-I000258
)을 생성할 수 있다. 인루프 필터(227)는 최종 복원 블록(
Figure PCTKR2017001512-appb-I000259
)을 부호화 픽쳐 버퍼(240)로 전송할 수 있다.
인루프 필터(227)는 도 9에서 상술한 바와 같이, 디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나를 포함할 수 있다.
도 14는 일 실시예에 따른 CNN 기반 인루프 필터의 구조를 설명하기 위한 도면이다.
도 14를 참조하면, CNN 기반 인루프 필터(150)는 입력 레이어(input layer; 151), 은닉 레이어(hidden layer; 152), 및 출력 레이어(output layer; 153)를 포함한다.
입력 레이어(151)는 입력 영상을 수신할 수 잇다. 입력 영상은 열화된 복원 영상을 포함할 수 있다. 예를 들어, 입력 레이어(151)에는 역양자화 및 역변환부(140)에 의해 역양자화 및 역변환이 수행된 복원 영상이 입력될 수 있다. 입력 영상은 블록 경계 왜곡, 너울성 왜곡 및 고주파 흐려짐 블러 왜곡을 포함할 수 있다. 복원 영상은 열화(degradation) 현상을 포함할 수 있다.
입력 레이어(151)는 입력 영상에 이미지 패치(image patch)를 수행하여 은닉 레이어(153)로 추출할 수 있다. 예를 들어, 입력 레이어(151)는 입력 영상을 (f 1 × f 1 )의 크기로 이미지 패치를 수행할 수 있다.
은닉 레이어(152)는 비선형 매핑(non-linear mapping)을 수행할 수 있다. 은닉 레이어(152)는 N 개의 컨볼루션 레이어(convolutional layer)를 포함할 수 있다. 이때, 제1 컨볼루션 레이어(152-1)에서 제N 컨볼루션 레이어(152-N)로 진행할수록 영상의 화질은 향상될 수 있다.
CNN 기반 인루프 필터(150)는 은닉 레이어(152), 출력 레이어(153), 및 손실 함수 (loss function)을 통해 CNN 기반 인루프 필터의 훈련이 수행될 수 있다.
제1 컨볼루션 레이어(152-1)는 수학식 1에 대응될 수 있다.
Figure PCTKR2017001512-appb-I000260
제2 컨볼루션 레이어는 수학식 2에 대응될 수 있다.
Figure PCTKR2017001512-appb-I000261
같은 원리로, 제N 컨볼루션 레이어(152-N)는 수학식 3에 대응될 수 있다.
Figure PCTKR2017001512-appb-I000262
즉, 은닉 레이어(152)는 ReLU(Rectified Linear Unit) 함수를 사용해 훈련의 효율 및 속도를 높일 수 있다.
출력 레이어(153)는 수학식 4에 대응될 수 있다.
Figure PCTKR2017001512-appb-I000263
출력 레이어(153)는 필터링되어 화질이 향상된 출력 영상을 출력할 수 있다.
손실 함수는 수학식 5에 대응될 수 있다.
Figure PCTKR2017001512-appb-I000264
CNN 기반 인루프 필터(150)는 손실 함수를 통해 필터링 오류를 최소화할 수 있도록 훈련될 수 있다.
도 15는 일 실시예에 따른 CNN 기반 인루프 필터의 구간 별 훈련 방법을 설명하기 위한 도면의 일 예이다.
도 15를 참조하면, CNN 기반 인루프 필터(150)는 양자화 구간 별로 훈련을 수행할 수 있다. CNN 기반 인루프 필터(150)는 양자화 파라미터(quantization parameter(QP))에 따라 왜곡값이 상이한 복원 영상을 처리할 수 있다. 이에, CNN 기반 인루프 필터(150)는 양자화 구간 별로 훈련을 수행하여 효과적인 필터링을 수행할 수 있다.
양자화 파라미터(QP)는 0 이상 51 이하의 값일 수 있다. 각 양자화 구간은 적어도 하나의 양자화 파라미터(QP)를 포함할 수 있다. 이때, 복수의 양자화 구간이 공통으로 포함하는 양자화 파라미터(QP)도 있을 수 있다. 예를 들어, 제1 구간과 제2 구간은 양자화 파라미터(QP) 5를 공통으로 포함할 수 있다.
부호화 장치(100)에서 부호화시 사용된 양자화 파라미터(QP)는 복호화 장치(200)에서 확인할 수 있는 값이고, 부호화 장치(100)는 부호화시 사용된 양자화 파라미터(QP)를 복호화 장치(200)로 전송하지 않을 수 있다. 이에, 부호화 장치(100)는 오버헤드(overhead)가 발생하지 않고, 부호화 효율을 높일 수 있다.
부호화 장치(100)는 제N 구간의 양자화 파라미터(QP)를 사용하여 복원 훈련 영상(300)을 생성할 수 있다. 부호화 장치(100)는 복원 훈련 영상(300)을 CNN 기반 인루프 필터(150)로 전송할 수 있다.
CNN 기반 인루프 필터(150)는 복원 훈련 영상(300)에 필터링을 수행하여 출력 영상을 생성하여 가산기로 전송할 수 있다.
가산기는 출력 영상 및 원 입력 훈련 영상(original input image; 400)을 차분하여 CNN 기반 인루프 필터(150)로 전송할 수 있다.
CNN 기반 인루프 필터(150)는 차분에 기초하여 은닉 레이어(152)의 가중치(weight)를 조절할 수 있다. 예를 들어, CNN 기반 인루프 필터(150)는 출력 영상과 입력 훈련 영상(400)의 차이가 없도록 가중치(weights)를 조절할 수 있다. 이때, CNN 기반 인루프 필터(150)의 가중치 보정을 위한 학습은 역전파(back propagation) 방법을 사용할 수 있다.
복원 훈련 영상(300) 및 입력 훈련 영상(400)은 여러 실시예로 구현될 수 있다. 즉, CNN 기반 인루프 필터(150)는 무수히 많은 훈련 방법이 존재할 수 있다. CNN 기반 인루프 필터(150)는 훈련 방법에 따라 상이하게 동작할 수 있다.
일 예로, 복원 훈련 영상(300)은 인루프 필터(140)에서 필터링 적용 이전의 복원 영상(reconstructed frames prior to in-loop filtering)일 수 있다. CNN 기반 인루프 필터(150)는 필터링 적용 이전의 복원 영상에 필터링을 수행하여 입력 훈련 영상(400)에 가까운 출력 영상을 생성할 수 있다. 이 경우, CNN 기반 인루프 필터(150)는 도 2a에 도시된 CNN 기반 인루프 필터(150a)로 동작할 수 있다.
다른 예로, 복원 훈련 영상(300)은 인루프 필터(140)에서 필터링이 적용된 영상(reconstructed frames after in-loop filtering)일 수 있다. 즉, CNN 기반 인루프 필터(150)는 필터링이 적용된 영상에 필터링을 수행하여 원 입력 훈련 영상(400)에 더 가까운 출력 영상을 생성할 수 있다. 이 경우, CNN 기반 인루프 필터(150)는 도 3에 도시된 CNN 기반 인루프 필터(150b)로 동작할 수 있다.
다른 예로, 복원 훈련 영상(300)은 인루프 필터(140)에서 필터링이 적용된 영상이고, 입력 훈련 영상(400)은 잔차 영상(e)일 수 있다. 이때, CNN 기반 인루프 필터(150)는 필터링이 적용된 영상에 필터링을 적용하여 복원 잔차 영상을 생성할 수 있다. 이 경우, CNN 기반 인루프 필터(150)는 도 5에 도시된 CNN 기반 인루프 필터(150d)로 동작할 수 있다.
도 16은 일 실시예에 따른 CNN 기반 인루프 필터의 구간 별 훈련 방법을 설명하기 위한 도면의 다른 예이다.
도 16을 참조하면, CNN 기반 인루프 필터(150)는 왜곡값 구간 별로 훈련을 수행할 수 있다. CNN 기반 인루프 필터(150)는 양자화 파라미터(QP)에 따라 왜곡값이 상이할 수 있다. 이에, CNN 기반 인루프 필터(150)는 왜곡값 구간 별로 훈련을 수행하여 효과적인 필터링을 수행할 수 있다.
부호화 장치(100)에서 부호화시 사용된 왜곡값 구간은 복호화 장치(200)에서 확인할 수 있는 값이고, 부호화 장치(100)는 부호화시 사용된 인덱스(index)를 복호화 장치(200)로 전송하지 않을 수 있다. 이에, 부호화 장치(100)는 오버헤드가 발생하지 않고, 부호화 효율을 높일 수 있다.
왜곡값은 입력 훈련 영상(600) 및 복원 훈련 영상의 차이일 수 있다.
부호화 장치(100)는 제N 구간의 왜곡값에 속하는 복원 훈련 영상(500)을 생성할 수 있다. 부호화 장치(100)는 복원 훈련 영상(500)을 CNN 기반 인루프 필터(150)로 전송할 수 있다.
CNN 기반 인루프 필터(150)는 복원 훈련 영상(500)에 필터링을 수행하여 출력 영상을 생성하여 가산기로 전송할 수 있다. 가산기는 출력 영상 및 원 입력 훈련 영상(600)을 차분하여 CNN 기반 인루프 필터(150)로 전송할 수 있다.
CNN 기반 인루프 필터(150)는 차분에 기초하여 은닉 레이어(152)의 가중치를 조절할 수 있다. 예를 들어, CNN 기반 인루프 필터(150)는 출력 영상과 입력 훈련 영상(600)의 차이가 없도록 가중치(weights)를 조절할 수 있다. 이때, CNN 기반 인루프 필터(150)의 가중치 보정을 위한 학습은 역전파 방법을 사용할 수 있다.
복원 훈련 영상(500)는 복원 잔차 영상일 수 있다. 복원 잔차 영상은 잔차 영상에 변환 및 양자화를 수행하고, 다시 역양자화 및 역변환을 수행한 영상일 수 있다.
입력 훈련 영상(600)은 잔차 영상일 수 있다. 잔차 영상은 입력 영상과 복원 영상을 차분한 영상일 수 있다. 복원 영상은 인루프 필터링이 적용된 영상이거나 또는 인루프 필터링이 적용되지 않은 영상일 수 있다.
즉, CNN 기반 인루프 필터(150)는 복원 잔차 영상에 필터링을 수행하여 잔차 영상에 가까운 출력 영상을 생성할 수 있다. 이 경우, CNN 기반 인루프 필터(150)는 도 6에 도시된 CNN 기반 인루프 필터(150e)로 동작할 수 있다.
또한, CNN 기반 인루프 필터(150)는 영상의 슬라이스 타입(slice type) 별로 필터링을 수행할 수 있다. 이하에서는 CNN 기반 인루프 필터(150)가 슬라이스 타입 별로 필터링을 수행하는 동작에 대하여 설명한다.
도 17은 일 실시예에 따른 CNN 기반 인루프 필터의 훈련 방법을 설명하기 위한 도면의 일 예이다.
도 17을 참조하면, CNN 기반 인루프 필터(150)는 저지연 구조(low delay configuration)의 부호화 또는 복호화 과정에서 복수의 영상에 필터링을 수행할 수 있다.
복수의 영상의 슬라이스 타입은 인트라 슬라이스(intra slice(I slice)), 또는 예측 슬라이스(predictive slice(P slice))일 수 있다.
인트라 슬라이스의 영상(700-1 및 700-N)은 화면 내 예측을 수행할 수 있다. 예측 슬라이스의 영상(700-2~700-4)은 화면 간 예측을 수행할 수 있다.
예를 들어, 예측 슬라이스의 영상(700-2)은 인트라 슬라이스의 영상(700-1)을 참조하여 영상을 예측할 수 있다. 예측 슬라이스의 영상(700-3)은 인트라 슬라이스의 영상(700-1) 및 예측 슬라이스의 영상(700-2)을 참조하여 영상을 예측할 수 있다. 예측 슬라이스의 영상(700-4)은 인트라 슬라이스의 영상(700-1) 및 예측 슬라이스의 영상(700-2~700-3)을 참조하여 영상을 예측할 수 있다.
CNN 기반 인루프 필터(150)는 인트라 슬라이스의 영상(700-1 및 700-N)에 필터링을 수행하여, 왜곡이 적은 영상을 지속적으로 제공할 수 있다. CNN 기반 인루프 필터(150)는 인트라 슬라이스의 영상(700-1 및 700-N)을 주기적으로 제공할 수 있다.
도 18은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 18을 참조하면, CNN 기반 인루프 필터(150)는 저지연 구조(low delay configuration)의 부호화 또는 복호화 과정에서 복수의 영상(800-1~800-3, 800-5, 및 800-5)에 선택적으로 필터링을 수행할 수 있다.
복수의 영상(800-1~800-3, 800-5, 및 800-5)의 슬라이스 타입은 인트라 슬라이스(I slice), 또는 예측 슬라이스(P slice)일 수 있다.
인트라 슬라이스의 영상(800-1)은 화면 내 예측을 수행할 수 있다. 예측 슬라이스의 영상(800-2, 800-3, 800-5, 및 800-7)은 화면 간 예측을 수행할 수 있다.
예를 들어, 예측 슬라이스의 영상(800-2)은 인트라 슬라이스의 영상(800-1)을 참조하여 영상을 예측할 수 있다. 예측 슬라이스의 영상(800-3)은 인트라 슬라이스의 영상(700-1) 및 예측 슬라이스의 영상(800-2)을 참조하여 영상을 예측할 수 있다. 같은 원리로, 예측 슬라이스의 영상(800-5 및 800-7)은 이전 슬라이스의 영상을 참조하여 영상을 예측할 수 있다.
CNN 기반 인루프 필터(150)는 인트라 슬라이스의 영상(800-1) 및 예측 슬라이스의 영상(800-3, 800-5, 및 800-7)에 필터링을 수행하여, 왜곡이 적은 영상을 지속적으로 제공할 수 있다. CNN 기반 인루프 필터(150)는 주기적 또는 선택적으로 필터링을 수행하여 예측 슬라이스의 영상(800-3, 800-5, 및 800-7)을 제공할 수 있다.
CNN 기반 인루프 필터(150)는 저지연 구조 하에서 선택적으로 필터링을 적용할 뿐만 아니라 일련의 각 입력 슬라이스 별로, 또한 입력 슬라이스 내에서 부호화 단위 블록별(Coding Tree Unit(CTU)) 또는 부호화 블록별(Coding Unit(CU)) 또는 지정된 영상 영역별로 선택적으로 적용할 수 있다.
도 19는 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 19를 참조하면, CNN 기반 인루프 필터(150)는 전 화면 내 구조(All intra configuration)의 부호화 또는 복호화 과정에서 복수의 영상(900-1~900-N)에 필터링을 수행할 수 있다.
복수의 영상(900-1~900-N)의 슬라이스 타입은 인트라 슬라이스(I slice)일 수 있다.
인트라 슬라이스의 영상(900-1~900-N)은 화면 내 예측을 수행할 수 있다. 즉, 인트라 슬라이스의 영상(900-1~900-N)의 왜곡값은 다른 영상으로 전달되지 않고, CNN 기반 인루프 필터(150)는 모든 인트라 슬라이스의 영상(900-1~900-N)을 필터링 하여 고화질의 영상을 제공할 수 있다.
CNN 기반 인루프 필터(150)는 저지연 구조 하에서 선택적으로 필터링을 적용할 뿐만 아니라 일련의 각 입력 슬라이스 별로, 또한 입력 슬라이스 내에서 부호화 단위 블록별(CTU) 또는 부호화 블록별(CU) 또는 지정된 영상 영역별로 선택적으로 적용할 수 있다.
도 20은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이고, 도 21은 일 실시예에 따른 CNN 기반 인루프 필터의 적용 방법을 설명하기 위한 도면의 다른 예이다.
도 20 및 도 21을 참조하면, CNN 기반 인루프 필터(150)는 계층적 B 화면 구조(hierarchical B-picture configuration)의 부호화 또는 복호화 과정에서 복수의 영상(1010-1~1010-3, 1020-1~1020-2, 1030-1~1030-4, 1040-1~1040-4)에 필터링을 수행할 수 있다.
계층적 B 화면 구조는 제1 계층 내지 제4 계층을 포함할 수 있다.
제1 계층 영상(1010-1~1010-3)의 슬라이스 타입은 인트라 슬라이스(I slice) 또는 예측 슬라이스(P slice)일 수 있다. 인트라 슬라이스의 영상(1010-1~1010-3)은 화면 내 예측을 수행할 수 있다.
제2 계층 내지 제4 계층 영상(1020-1~1020-2, 1030-1~1030-4, 1040-1~1040-4)의 슬라이스 타입은 양측 예측 슬라이스(bi-predictive slice(B slice))일 수 있다. 양측 예측 슬라이스(B slice)의 영상(1020-1~1020-2, 1030-1~1030-4, 1040-1~1040-4)은 아래 계층의 영상을 참조하여 영상을 예측할 수 있다. 이때, 양측 예측 슬라이스(B slice)의 영상(1020-1~1020-2, 1030-1~1030-4, 1040-1~1040-4)은 아래 계층이 이전의 영상(앞)이든, 또는 이후의 영상(뒤)이든 상관없이 모두 참조할 수 있다. 예를 들어, 제2 계층의 영상(1020-1)은 제1 계층의 영상(1010-1 및 1010-2)를 참조할 수 있다. 제2 계층의 영상(1020-2)은 제1 계층의 영상(1010-2 및 1010-3)를 참조할 수 있다.
같은 원리로, 제4 계층의 영상(1040-1)은 제3 계층의 영상(1030-1) 및 제1 계층의 영상(1010-1)을 참조할 수 있고, 제4 계층의 영상(1040-3)은 제2 계층의 영상(1020-1) 및 제3 계층의 영상(1030-2)을 참조할 수 있다.
CNN 기반 인루프 필터(150)는 특정 계층을 선택하여 필터링을 수행할 수 있다. 일 예로, CNN 기반 인루프 필터(150)는 1 계층의 영상(1010-1~1010-3)에 필터링을 수행할 수 있다.
다른 예로, CNN 기반 인루프 필터(150)는 1 계층의 영상(1010-1~1010-3) 및 2 계층의 영상(1020-1 및 1020-2)에 필터링을 수행할 수 있다. CNN 기반 인루프 필터(150)는 1 계층의 영상(1010-1~1010-3) 및 2 계층의 영상(1020-1 및 1020-2)에 필터링을 수행하는 동작은 도 20에 도시된 바와 같을 수 있다.
다른 예로, CNN 기반 인루프 필터(150)는 1 계층의 영상(1110-1~1110-3), 2 계층의 영상(1120-1 및 1120-2), 및 제3 계층의 영상(1130-1~1130-4)에 필터링을 수행할 수 있다. CNN 기반 인루프 필터(150)는 1 계층의 영상(1110-1~1110-3), 2 계층의 영상(1120-1 및 1120-2), 및 제3 계층의 영상(1130-1~1130-4)에 필터링을 수행하는 동작은 도 21에 도시된 바와 같을 수 있다.
CNN 기반 인루프 필터(150)는 저지연 구조 하에서 선택적으로 필터링을 적용할 뿐만 아니라 일련의 각 입력 슬라이스 별로, 또한 입력 슬라이스 내에서 부호화 단위 블록별(CTU) 또는 부호화 블록별(CU) 또는 지정된 영상 영역별로 선택적으로 적용할 수 있다.
CNN 기반 인루프 필터(150)는 영상 내의 특정 영역에 필터링을 적용할 수 있다. 예를 들어, CNN 기반 인루프 필터(150)는 영상을 복수의 영역으로 분할하고, 복수의 영역 중 일부의 영역만을 선택하여 필터링을 적용할 수 있다. 이때, CNN 기반 인루프 필터(150)는 일부의 영역에 필터링 적용 여부를 시그널링할 수 있다.
또한, CNN 기반 인루프 필터(150)는 영상내의 움직임의 양과 텍스처 복잡도 중 적어도 하나에 기초하여 필터링을 적용할 수도 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (30)

  1. 원본 영상과 예측 영상 사이의 차이에 해당하는 잔차 영상을 필터링함으로써 필터링 정보(filtering information)를 생성하는 단계;
    상기 필터링 정보를 역필터링함으로써 역필터링 정보(inverse filtering information)를 생성하는 단계;
    상기 역필터링 정보를 CNN 기반 인루프 필터(CNN based in-loop filter)에 입력함으로써 복원 정보를 생성하는 단계;
    상기 복원 정보와 상기 원본 영상에 기반한 원본 정보의 차이를 계산하는 단계; 및
    상기 차이에 기초하여 상기 CNN 기반 인루프 필터의 가중치(weight)를 보정하는 단계
    를 포함하고,
    상기 예측 영상은 상기 원본 영상과 상기 복원 정보에 기초하여 생성되는,
    CNN 기반 인루프 필터 학습 방법.
  2. 제1항에 있어서,
    상기 필터링 정보를 생성하는 단계는,
    상기 잔차 영상을 변환 및 양자화함으로써 필터링 정보를 생성하는 단계
    를 포함하고,
    상기 역필터링 정보를 생성하는 단계는,
    상기 필터링 정보를 역양자화 및 역변환함으로써 역필터링 정보를 생성하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  3. 제1항에 있어서,
    상기 필터링 정보를 생성하는 단계는,
    양자화 파라미터(quantization parameter)에 따른 양자화 구간에 기초하여 상기 잔차 영상을 필터링하는 단계
    를 포함하고,
    상기 보정하는 단계는,
    상기 양자화 구간에 대한 가중치를 보정하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  4. 제1항에 있어서,
    상기 필터링 정보를 생성하는 단계는,
    왜곡값에 따른 왜곡값 구간에 기초하여 상기 잔차 영상을 필터링하는 단계
    를 포함하고,
    상기 보정하는 단계는,
    상기 왜곡값 구간에 대한 가중치를 보정하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  5. 제1항에 있어서,
    상기 필터링 정보를 생성하는 단계는,
    영상 특성의 텍스처 복잡도 구간에 기초하여 상기 잔차 영상을 필터링하는 단계
    를 포함하고,
    상기 보정하는 단계는,
    상기 텍스처 복잡도 구간에 대한 가중치를 보정하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  6. 제1항에 있어서,
    상기 필터링 정보를 생성하는 단계는,
    영상 특성의 움직임 복잡도 구간에 기초하여 상기 잔차 영상을 필터링하는 단계
    를 포함하고,
    상기 보정하는 단계는,
    상기 움직임 복잡도 구간에 대한 가중치를 보정하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  7. 제1항에 있어서,
    상기 복원 정보를 생성하는 단계는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계
    를 포함하고,
    상기 복원 정보는,
    상기 원본 영상과 같은 형식인 CNN 기반 인루프 필터 학습 방법.
  8. 제7항에 있어서,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계는,
    상기 예측 정보에 인루프 필터링을 수행하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  9. 제1항에 있어서,
    상기 복원 정보를 생성하는 단계는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계
    를 포함하고,
    상기 복원 정보는,
    상기 잔차 영상과 같은 형식인 CNN 기반 인루프 필터 학습 방법.
  10. 제9항에 있어서,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는 단계는,
    상기 예측 정보에 인루프 필터링을 수행하는 단계
    를 포함하는 CNN 기반 인루프 필터 학습 방법.
  11. 원본 영상과 예측 영상 사이의 차이에 해당하는 잔차 영상을 필터링함으로써 필터링 정보를 생성하는 필터링부;
    상기 필터링 정보를 역필터링함으로써 역필터링 정보를 생성하는 역필터링부;
    상기 원본 영상과 복원 정보에 기초하여 상기 예측 영상을 생성하는 예측부(estimator);
    상기 역필터링 정보와 상기 예측 영상을 입력 받아 상기 복원 정보를 출력하는 CNN 기반 인루프 필터; 및
    상기 필터링 정보와 상기 예측 영상의 정보에 기초하여 부호화를 수행하는 부호화부(encoder)
    를 포함하는 부호화 장치.
  12. 제11항에 있어서,
    상기 필터링부는,
    상기 잔차 영상을 변환 및 양자화함으로써 필터링 정보를 생성하고,
    상기 역필터링부는,
    상기 필터링 정보를 역양자화 및 역변환함으로써 역필터링 정보를 생성하는
    부호화 장치.
  13. 제11항에 있어서,
    상기 복원 정보는,
    상기 원본 영상과 같은 형식이고,
    상기 CNN 기반 인루프 필터는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는
    부호화 장치.
  14. 제13항에 있어서,
    상기 예측 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 부호화 장치.
  15. 제14항에 있어서,
    상기 인루프 필터는,
    디블록킹 필터(deblocking filter(DF)), 샘플 적응형 오프셋 필터(sample adaptive offset(SAO) filter), 및 적응형 루프 필터(adaptive loop filter(ALF)) 중 적어도 하나
    를 포함하는 부호화 장치.
  16. 제11항에 있어서,
    상기 복원 정보는,
    상기 잔차 영상과 같은 형식이고,
    상기 CNN 기반 인루프 필터는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는
    부호화 장치.
  17. 제16항에 있어서,
    상기 예측 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 부호화 장치.
  18. 제11항에 있어서,
    상기 복원 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 부호화 장치.
  19. 부호화된 비트스트림 정보에 복호화를 수행하여 필터링 정보와 예비 예측 정보를 출력하는 엔트로피 복호화부(entropy decoder);
    상기 필터링 정보를 역필터링함으로써 역필터링 정보를 생성하는 역필터링부;
    상기 예비 예측 정보에 기초하여 예측 영상을 생성하는 예측부; 및
    상기 역필터링 정보와 상기 예측 영상을 입력 받아 복원 정보를 출력하는 CNN 기반 인루프 필터
    를 포함하는 복호화 장치.
  20. 제19항에 있어서,
    상기 복원 정보는,
    상기 원본 영상과 같은 형식이고,
    상기 CNN 기반 인루프 필터는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는
    복호화 장치.
  21. 제20항에 있어서,
    상기 역필터링 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 복호화 장치.
  22. 제21항에 있어서,
    상기 인루프 필터는,
    디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나
    를 포함하는 복호화 장치.
  23. 제19항에 있어서,
    상기 복원 정보는,
    상기 잔차 영상과 같은 형식이고,
    상기 CNN 기반 인루프 필터는,
    상기 역필터링 정보 및 상기 예측 영상에 기반한 예측 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 복원 정보를 생성하는
    복호화 장치.
  24. 제23항에 있어서,
    상기 복원 정보와 상기 예측 영상을 더하여 최종 복원 정보를 생성하는 가산기
    를 더 포함하는 복호화 장치.
  25. 제23항에 있어서,
    상기 역필터링 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 복호화 장치.
  26. 제25항에 있어서,
    상기 인루프 필터는,
    디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나
    를 포함하는 복호화 장치.
  27. 제19항에 있어서,
    상기 복원 정보는,
    상기 잔차 영상과 같은 형식이고,
    상기 CNN 기반 인루프 필터는,
    상기 역필터링 정보를 상기 CNN 기반 인루프 필터에 입력함으로써 잔차 복원 정보를 생성하는
    복호화 장치.
  28. 제27항에 있어서,
    상기 잔차 복원 정보와 상기 예측 영상을 더하여 최종 복원 정보를 생성하는 가산기
    를 더 포함하는 복호화 장치.
  29. 제28항에 있어서,
    상기 최종 복원 정보에 인루프 필터링을 수행하는 인루프 필터
    를 더 포함하는 복호화 장치.
  30. 제29항에 있어서,
    상기 인루프 필터는,
    디블록킹 필터(DF), 샘플 적응형 오프셋 필터(SAO filter), 및 적응형 루프 필터(ALF) 중 적어도 하나
    를 포함하는 복호화 장치.
PCT/KR2017/001512 2016-06-24 2017-02-13 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치 WO2017222140A1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201780051305.7A CN109644268B (zh) 2016-06-24 2017-02-13 包括基于cnn的环路滤波器的编码方法与装置及解码方法与装置
JP2018567746A JP6761490B2 (ja) 2016-06-24 2017-02-13 Cnn基盤インループフィルタを含む符号化方法と装置及び復号化方法と装置
US16/313,052 US11095887B2 (en) 2016-06-24 2017-02-13 Encoding and decoding methods and devices including CNN-based in-loop filter
US17/376,162 US11627316B2 (en) 2016-06-24 2021-07-15 Encoding and decoding apparatuses including CNN-based in-loop filter
US18/088,615 US20230134212A1 (en) 2016-06-24 2022-12-26 Image processing apparatuses including cnn-based in-loop filter

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2016-0079240 2016-06-24
KR20160079240 2016-06-24
KR1020170017959A KR101974261B1 (ko) 2016-06-24 2017-02-09 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
KR10-2017-0017959 2017-02-09

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/313,052 A-371-Of-International US11095887B2 (en) 2016-06-24 2017-02-13 Encoding and decoding methods and devices including CNN-based in-loop filter
US17/376,162 Continuation US11627316B2 (en) 2016-06-24 2021-07-15 Encoding and decoding apparatuses including CNN-based in-loop filter

Publications (1)

Publication Number Publication Date
WO2017222140A1 true WO2017222140A1 (ko) 2017-12-28

Family

ID=60784250

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/001512 WO2017222140A1 (ko) 2016-06-24 2017-02-13 Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치

Country Status (1)

Country Link
WO (1) WO2017222140A1 (ko)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108134932A (zh) * 2018-01-11 2018-06-08 上海交通大学 基于卷积神经网络的视频编解码环路内滤波实现方法及系统
CN108174225A (zh) * 2018-01-11 2018-06-15 上海交通大学 基于对抗生成网络的视频编解码环路内滤波实现方法及系统
CN108235058A (zh) * 2018-01-12 2018-06-29 广州华多网络科技有限公司 视频质量处理方法、存储介质和终端
CN108600762A (zh) * 2018-04-23 2018-09-28 中国科学技术大学 结合运动补偿和神经网络算法的递进式视频帧生成方法
WO2019174542A1 (en) * 2018-03-13 2019-09-19 Mediatek Inc. Method and apparatus of loop filtering for vr360 videos
CN110351568A (zh) * 2019-06-13 2019-10-18 天津大学 一种基于深度卷积网络的视频环路滤波器
JP2019201256A (ja) * 2018-05-14 2019-11-21 シャープ株式会社 画像フィルタ装置
CN110971915A (zh) * 2018-09-28 2020-04-07 杭州海康威视数字技术股份有限公司 滤波方法和设备
CN111937392A (zh) * 2018-04-17 2020-11-13 联发科技股份有限公司 视频编解码的神经网络方法和装置
CN112019843A (zh) * 2019-05-30 2020-12-01 富士通株式会社 编码和解码程序、编码和解码设备、编码和解码方法
CN112422993A (zh) * 2019-08-21 2021-02-26 四川大学 一种结合卷积神经网络的hevc视频质量增强算法框架
KR102245682B1 (ko) * 2019-11-11 2021-04-27 연세대학교 산학협력단 영상 압축 장치, 이의 학습 장치 및 방법
CN113596482A (zh) * 2019-03-07 2021-11-02 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
CN113747179A (zh) * 2019-03-07 2021-12-03 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
JP2022105577A (ja) * 2018-05-14 2022-07-14 シャープ株式会社 画像フィルタ装置
WO2023055153A1 (ko) * 2021-09-29 2023-04-06 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2023051223A1 (zh) * 2021-09-28 2023-04-06 腾讯科技(深圳)有限公司 滤波及编解码方法、装置、计算机可读介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140097056A (ko) * 2014-06-19 2014-08-06 에스케이텔레콤 주식회사 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20150024440A (ko) * 2009-07-01 2015-03-06 소니 주식회사 화상 처리 장치 및 방법, 및 학습 장치 및 방법
KR20160015799A (ko) * 2014-07-31 2016-02-15 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
KR20160052780A (ko) * 2008-04-11 2016-05-12 톰슨 라이센싱 변위된 인트라 예측과 템플릿 매칭을 위한 디블록 필터링
KR20160072181A (ko) * 2013-10-14 2016-06-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160052780A (ko) * 2008-04-11 2016-05-12 톰슨 라이센싱 변위된 인트라 예측과 템플릿 매칭을 위한 디블록 필터링
KR20150024440A (ko) * 2009-07-01 2015-03-06 소니 주식회사 화상 처리 장치 및 방법, 및 학습 장치 및 방법
KR20160072181A (ko) * 2013-10-14 2016-06-22 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩 및 디코딩을 위한 인트라 블록 카피 예측 모드의 피쳐
KR20140097056A (ko) * 2014-06-19 2014-08-06 에스케이텔레콤 주식회사 가중치예측을 이용한 영상 부호화/복호화 방법 및 장치
KR20160015799A (ko) * 2014-07-31 2016-02-15 삼성전자주식회사 인루프 필터 파라미터 예측을 사용하는 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108174225B (zh) * 2018-01-11 2021-03-26 上海交通大学 基于对抗生成网络的视频编解码环路内滤波实现方法及系统
CN108174225A (zh) * 2018-01-11 2018-06-15 上海交通大学 基于对抗生成网络的视频编解码环路内滤波实现方法及系统
CN108134932A (zh) * 2018-01-11 2018-06-08 上海交通大学 基于卷积神经网络的视频编解码环路内滤波实现方法及系统
CN108134932B (zh) * 2018-01-11 2021-03-30 上海交通大学 基于卷积神经网络的视频编解码环路内滤波实现方法及系统
CN108235058A (zh) * 2018-01-12 2018-06-29 广州华多网络科技有限公司 视频质量处理方法、存储介质和终端
CN108235058B (zh) * 2018-01-12 2021-09-17 广州方硅信息技术有限公司 视频质量处理方法、存储介质和终端
WO2019174542A1 (en) * 2018-03-13 2019-09-19 Mediatek Inc. Method and apparatus of loop filtering for vr360 videos
CN111937392A (zh) * 2018-04-17 2020-11-13 联发科技股份有限公司 视频编解码的神经网络方法和装置
CN108600762A (zh) * 2018-04-23 2018-09-28 中国科学技术大学 结合运动补偿和神经网络算法的递进式视频帧生成方法
CN108600762B (zh) * 2018-04-23 2020-05-15 中国科学技术大学 结合运动补偿和神经网络算法的递进式视频帧生成方法
JP7332753B2 (ja) 2018-05-14 2023-08-23 シャープ株式会社 画像フィルタ装置
JP2019201256A (ja) * 2018-05-14 2019-11-21 シャープ株式会社 画像フィルタ装置
JP2022105577A (ja) * 2018-05-14 2022-07-14 シャープ株式会社 画像フィルタ装置
JP7073186B2 (ja) 2018-05-14 2022-05-23 シャープ株式会社 画像フィルタ装置
CN110971915A (zh) * 2018-09-28 2020-04-07 杭州海康威视数字技术股份有限公司 滤波方法和设备
CN113747179B (zh) * 2019-03-07 2023-08-08 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
CN113596482B (zh) * 2019-03-07 2023-08-08 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
US11627342B2 (en) 2019-03-07 2023-04-11 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Loop filtering implementation method and apparatus, and computer storage medium
CN113596482A (zh) * 2019-03-07 2021-11-02 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
CN113747179A (zh) * 2019-03-07 2021-12-03 Oppo广东移动通信有限公司 环路滤波实现方法、装置及计算机存储介质
CN112019843B (zh) * 2019-05-30 2022-07-15 富士通株式会社 编码和解码方法、设备、可读存储介质
CN112019843A (zh) * 2019-05-30 2020-12-01 富士通株式会社 编码和解码程序、编码和解码设备、编码和解码方法
CN110351568A (zh) * 2019-06-13 2019-10-18 天津大学 一种基于深度卷积网络的视频环路滤波器
CN112422993B (zh) * 2019-08-21 2021-12-03 四川大学 一种结合卷积神经网络的hevc视频质量增强方法
CN112422993A (zh) * 2019-08-21 2021-02-26 四川大学 一种结合卷积神经网络的hevc视频质量增强算法框架
KR102245682B1 (ko) * 2019-11-11 2021-04-27 연세대학교 산학협력단 영상 압축 장치, 이의 학습 장치 및 방법
WO2023051223A1 (zh) * 2021-09-28 2023-04-06 腾讯科技(深圳)有限公司 滤波及编解码方法、装置、计算机可读介质及电子设备
WO2023055153A1 (ko) * 2021-09-29 2023-04-06 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Similar Documents

Publication Publication Date Title
WO2017222140A1 (ko) Cnn 기반 인루프 필터를 포함하는 부호화 방법과 장치 및 복호화 방법과 장치
WO2014137159A1 (en) Method and apparatus for applying secondary transforms on enhancement-layer residuals
WO2012033373A2 (en) Low complexity transform coding using adaptive dct/dst for intra-prediction
WO2017065525A2 (ko) 영상을 부호화 또는 복호화하는 방법 및 장치
WO2020080698A1 (ko) 영상의 주관적 품질을 평가하는 방법 및 장치
WO2014003421A1 (ko) 비디오 부호화 및 복호화를 위한 방법
WO2017155334A1 (ko) 비디오 코딩 방법 및 장치
WO2014007551A1 (en) Method of multi-view video sequence coding/decoding based on adaptive local correction of illumination of reference frames without transmission of additional parameters (variants)
WO2012044076A2 (ko) 비디오의 부호화 방법 및 장치, 복호화 방법 및 장치
WO2013157825A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018038554A1 (ko) 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
WO2011053021A2 (en) Method and apparatus for encoding and decoding image by using rotational transform
WO2011071325A2 (en) Method and apparatus for encoding and decoding image by using rotational transform
WO2019194568A1 (ko) 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치
WO2016195455A1 (ko) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2020013514A1 (ko) 비디오 신호를 처리하기 위한 방법 및 장치
WO2012150849A2 (ko) 에러에 강인한 인-루프 필터를 이용하는 영상 부호화/복호화 방법과 그에 관한 시그널링 방법
WO2020242260A1 (ko) 전역적 문맥을 이용하는 기계 학습 기반의 이미지 압축을 위한 방법 및 장치
WO2020032609A1 (ko) 영상 코딩 시스템에서 어파인 머지 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2020013569A1 (ko) 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치
WO2009116815A2 (en) Apparatus and method for encoding and decoding using bandwidth extension in portable terminal
WO2020032632A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2016204524A1 (ko) 영상의 부호화/복호화 방법 및 이를 위한 장치
WO2010098556A2 (ko) 영상 부호화/복호화 장치 및 방법
WO2021040251A1 (en) Intra prediction method and device using the same, encoding and decoding method and device using the same based on intra prediction

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018567746

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17815554

Country of ref document: EP

Kind code of ref document: A1