WO2021194052A1 - Image decoding method and device - Google Patents

Image decoding method and device Download PDF

Info

Publication number
WO2021194052A1
WO2021194052A1 PCT/KR2020/018466 KR2020018466W WO2021194052A1 WO 2021194052 A1 WO2021194052 A1 WO 2021194052A1 KR 2020018466 W KR2020018466 W KR 2020018466W WO 2021194052 A1 WO2021194052 A1 WO 2021194052A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
transform
block
object block
decoding object
Prior art date
Application number
PCT/KR2020/018466
Other languages
French (fr)
Korean (ko)
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 KR1020200160112A external-priority patent/KR102313731B1/en
Application filed by 주식회사 아틴스 filed Critical 주식회사 아틴스
Priority to BR112022014908A priority Critical patent/BR112022014908A2/en
Priority to EP20927108.9A priority patent/EP4131962A4/en
Priority to JP2022504296A priority patent/JP7446046B2/en
Priority to CN202080050502.9A priority patent/CN114097243A/en
Publication of WO2021194052A1 publication Critical patent/WO2021194052A1/en
Priority to US17/667,444 priority patent/US11516471B2/en
Priority to US18/048,816 priority patent/US11909973B2/en
Priority to US18/408,484 priority patent/US20240155127A1/en
Priority to JP2024025878A priority patent/JP2024057012A/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to video coding technology, and more particularly, to a method of determining the type of a primary transform of a decoding object block during an image decoding process.
  • HD images high definition (HD) images and ultra high definition (UHD) images
  • UHD ultra high definition
  • VVC Very Video Coding
  • ISO/ICE MPEG Motion Picture Experts Group
  • ITU-T VCEG Joint Video Exploration Team
  • JVET Joint Video Exploration Team
  • VVC standardization announced a call for proposal at the 121st MPEG and 9th JVET meeting in Gwangju in January 2018, and a total of 23 organizations proposed video codec technology at the 122nd MPEG and 10th JVET meeting in San Diego. Video standardization has begun. At the 122nd MPEG and 10th JVET meeting, technical review on video codec technologies proposed by each institution and objective compression performance and subjective quality evaluation were performed. The reference software VTM (VVC Test Mode) 1.0 was released. As for the VVC standard, the Committee Draft (CD) was completed after the end of the 127th MPEG and 15th JVET meeting in July 2019, and standardization is in progress with the goal of enacting the Final Draft International Standard (FDIS) in October 2020.
  • CD Committee Draft
  • FDIS Final Draft International Standard
  • a split block structure that combines QTBT (QuadTree Binary Tree) and TT (Ternary Tree) is adopted in VVC.
  • QTBT QuadTree Binary Tree
  • TT Ternary Tree
  • ALF adaptive loop filter technology
  • AMP Affine Motion Prediction
  • DMVR decoder-side motion vector refinement
  • DCT-II a transform kernel mainly used in existing video codecs
  • the size of the applied block has been changed to apply up to a larger block size.
  • DST-7 kernel which has been applied to small transform blocks such as 4 ⁇ 4 in existing HEVC, has been extended to large transform blocks, and a new transform kernel, DCT-8, has been added as a transform kernel.
  • An object of the present invention is to perform inverse transformation in a predefined method according to specific conditions.
  • Another technical object of the present invention is to perform decoding by applying a transform type optimized to a decoding object block.
  • an image decoding method performed by an image decoding apparatus.
  • the image decoding method includes: obtaining information about a parameter indicating whether multiple transform set (MTS) is applicable to a decoding object block, a width of the decoding object block, and a height of the decoding object block; Based on at least one of a parameter indicating whether multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information about a height of the decoding object block Determining a transform type, at least one of a parameter indicating whether a multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information on a height of the decoding object block setting a zero-out region of the decoding object block based on .
  • MTS multiple transform set
  • the decoding object block in the step of determining the transformation type of the decoding object block, if at least one of a width or a height of the decoding object block has a value greater than 32, the decoding object block uses a default transformation to be considered converted.
  • the width of the decoding object block or The area with a height greater than 32 is set as the zero-out area.
  • a parameter indicating whether multiple transform sets can be applied to the decoding object block is sps_mts_enabled_flag.
  • an image decoding method performed by an image decoding apparatus.
  • the image decoding method includes information on whether a multiple transform set (MTS) is applied to a decoding object block, information on a prediction mode, information on whether to apply a secondary transform, information on whether prediction using a matrix is applied, and the Obtaining at least one of information on the size of the decoding object block, information on whether a multiple transform set is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, whether prediction using a matrix is applied determining whether an implicit multiple transform set is applied to the decoding object block based on at least one of information on obtaining information about a transform type based on information about
  • MTS multiple transform set
  • the determining whether the implicit multiple transform set is applied may include information on whether a multiple transform set (MTS) is applied to the decoding object block, and information on a prediction mode. , it is determined whether the implicit multiple transform set is applied using information on whether or not the quadratic transform is applied and whether or not prediction using a matrix is applied.
  • MTS multiple transform set
  • the set of implicit multiple transforms includes one default transform and at least one extra transform.
  • the step of obtaining information on the transformation type based on the information on the size of the decoding object block may include, when all of the horizontal axis lengths of the decoding object block are 4 or more and 16, the decoding object At least one of an extra transform type is applied to the block in the horizontal axis direction.
  • the step of obtaining information on the transformation type based on the information on the size of the decoding object block may include, when all of the vertical axis lengths of the decoding object block are 4 or more and 16 or less, the decoding At least one of extra transform types is applied to the target block in the vertical direction.
  • the information on whether multiple transform set (MTS) is applied to the decoding object block includes at least one of sps_mts_enabled_flag and sps_explicit_mts_intra_enabled_flag.
  • the information on the prediction mode includes CuPredMode.
  • the information on whether the quadratic transform is applied includes lfnst_idx.
  • information on whether prediction using the matrix is applied includes intra_mip_flag.
  • the information on the transformation type of the decoding object block includes information on a horizontal-axis transformation type and information on a vertical-axis transformation type, respectively.
  • the step of determining whether an implicit multiple transform set is applied to the decoding object block is obtained by additionally checking whether the decoding object block is a luma block.
  • an image decoding apparatus including a memory and at least one processor.
  • the image decoding apparatus includes information on whether a multiple transform set (MTS) is applied to a decoding object block, information on a prediction mode, information on whether a secondary transform is applied, information on whether prediction using a matrix is applied, and the Obtaining at least one of information on the size of the decoding object block, information on whether multiple transform sets are applied to the decoding object block, information on prediction mode, information on whether to apply a secondary transform, and whether or not prediction using a matrix is applied It is determined whether an implicit multiple transform set is applied to the decoding object block based on at least one of information about and at least one processor including an inverse transform unit that obtains information on a transform type based on the information and performs an inverse transform based on the information on the transform type.
  • MTS multiple transform set
  • the inverse transformation can be performed in a predefined method according to specific conditions.
  • an effect of improving compression performance can be expected by performing decoding by applying a transform type optimized to a decoding target block.
  • FIG. 1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention can be applied.
  • FIG. 2 illustrates an example of an image encoding method performed by a video encoding apparatus.
  • FIG. 3 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
  • FIG. 4 shows an example of an image decoding method performed by a decoding apparatus.
  • 5 shows a scan order of sub-blocks and coefficients for a diagonal scan scheme.
  • FIG. 6 shows an example of a 32x32 encoding target block after quantization.
  • FIG. 8 illustrates a method of determining whether to apply an implicit MTS function according to an embodiment of the present invention.
  • FIG 9 shows a method of deriving transformation information according to the width and height of the corresponding block of the implicit MTS according to an embodiment of the present invention.
  • FIG. 10 illustrates a method of performing an inverse transform based on a transform-related parameter according to an embodiment of the present invention.
  • 11 shows a valid MTS area marked with a thick line in a 32x32 decoding object block.
  • FIG. 12 shows a method of determining a valid MTS according to an embodiment of the present invention.
  • FIG. 13 illustrates a method of determining a valid MTS according to another embodiment of the present invention.
  • FIG. 14 illustrates a method of determining a valid MTS according to another embodiment of the present invention.
  • FIG. 15 illustrates a method of determining whether to apply an explicit MTS function according to an embodiment of the present invention.
  • FIG. 16 illustrates a method of performing an inverse transform based on a transform-related parameter according to another embodiment of the present invention.
  • each component in the drawings described in the present invention is shown independently for the convenience of description regarding different characteristic functions, and does not mean that each component is implemented as separate hardware or separate software.
  • two or more components among each component may be combined to form one component, or one component may be divided into a plurality of components.
  • Embodiments in which each component is integrated and/or separated are also included in the scope of the present invention without departing from the essence of the present invention.
  • the present invention relates to video/image coding.
  • the method/embodiment disclosed in the present invention may be a versatile video coding (VVC) standard, an Essential Video Coding (EVC) standard, an AOMedia Video 1 (AV1) standard, a 2nd generation of audio video coding standard (AVS2) or a next-generation video It can be applied to methods disclosed in /image coding standards (eg, H.267, H.268, etc.).
  • a picture generally refers to a unit representing one image in a specific time period
  • a slice is a unit constituting a part of a picture in coding.
  • One picture may consist of a plurality of slices, and if necessary, a picture and a slice may be used interchangeably.
  • a pixel or pel may mean a minimum unit constituting one picture (or image). Also, as a term corresponding to a pixel, a 'sample' may be used. A sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
  • a unit represents a basic unit of image processing.
  • the unit may include at least one of a specific region of a picture and information related to the region.
  • a unit may be used interchangeably with terms such as a block or an area in some cases.
  • an MxN block may represent a set of samples or transform coefficients including M columns and N rows.
  • FIG. 1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention can be applied.
  • the video encoding apparatus 100 includes a picture division unit 105 , a prediction unit 110 , a residual processing unit 120 , an entropy encoding unit 130 , an adder 140 , and a filter unit 150 . ) and a memory 160 .
  • the residual processing unit 120 may include a subtraction unit 121 , a transform unit 122 , a quantization unit 123 , a rearrangement unit 124 , an inverse quantization unit 125 , and an inverse transform unit 126 .
  • the picture divider 105 may divide the input picture into at least one processing unit.
  • the processing unit may be referred to as a coding unit (CU).
  • the coding unit may be recursively divided from a coding tree unit (CTU) according to a quad-tree binary-tree (QTBT) structure.
  • CTU coding tree unit
  • QTBT quad-tree binary-tree
  • one coding unit may be divided into a plurality of coding units having a lower depth based on a quad tree structure and/or a binary tree structure.
  • a quad tree structure may be applied first and a binary tree structure may be applied later.
  • the binary tree structure may be applied first.
  • the coding procedure according to the present invention may be performed based on the final coding unit that is no longer divided.
  • the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary.
  • a coding unit of the size of may be used as the final coding unit.
  • the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
  • the processing unit may include a coding unit (CU), a prediction unit (PU), or a transform unit (TU).
  • a coding unit may be split from a largest coding unit (LCU) into coding units of a lower depth along a quad tree structure.
  • LCU largest coding unit
  • the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary.
  • a coding unit of the size of may be used as the final coding unit.
  • SCU smallest coding unit
  • the coding unit cannot be divided into a coding unit smaller than the smallest coding unit.
  • the final coding unit means a coding unit that is a base that is partitioned or divided into a prediction unit or a transform unit.
  • a prediction unit is a unit partitioned from a coding unit, and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub-blocks.
  • a transform unit may be divided along a quad tree structure from a coding unit, and may be a unit deriving a transform coefficient and/or a unit deriving a residual signal from the transform coefficient.
  • the coding unit may be referred to as a coding block (CB)
  • the prediction unit may be referred to as a prediction block (PB)
  • the transform unit may be referred to as a transform block (TB).
  • a prediction block or a prediction unit may mean a specific area in the form of a block within a picture, and may include an array of prediction samples.
  • a transform block or transform unit may mean a specific block-shaped region within a picture, and may include transform coefficients or an array of residual samples.
  • the prediction unit 110 may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block.
  • a unit of prediction performed by the prediction unit 110 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 110 may determine whether intra prediction or inter prediction is applied to the current block. For example, the prediction unit 110 may determine whether intra prediction or inter prediction is applied in units of CUs.
  • the prediction unit 110 may derive a prediction sample for the current block based on a reference sample outside the current block in a picture to which the current block belongs (hereinafter, referred to as a current picture).
  • the prediction unit 110 may (i) derive a prediction sample based on an average or interpolation of neighboring reference samples of the current block, and (ii) a neighboring reference of the current block.
  • the prediction sample may be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the samples.
  • the case of (i) may be called a non-directional mode or a non-angular mode, and the case of (ii) may be called a directional mode or an angular mode.
  • a prediction mode may have, for example, 33 directional prediction modes and at least two or more non-directional modes.
  • the non-directional mode may include a DC prediction mode and a planar mode (Planar mode).
  • the prediction unit 110 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
  • the prediction unit 110 may derive a prediction sample for the current block based on a sample specified by a motion vector on a reference picture.
  • the prediction unit 110 may derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode.
  • the prediction unit 110 may use motion information of a neighboring block as motion information of the current block.
  • the skip mode unlike the merge mode, the difference (residual) between the predicted sample and the original sample is not transmitted.
  • the motion vector of the current block may be derived by using the motion vector of the neighboring block as a motion vector predictor of the current block.
  • a neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in a reference picture.
  • the reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic).
  • Motion information may include a motion vector and a reference picture index.
  • Information such as prediction mode information and motion information may be (entropy) encoded and output in the form of a bitstream.
  • the highest picture on a reference picture list may be used as a reference picture.
  • Reference pictures included in the reference picture list may be sorted based on a picture order count (POC) difference between the current picture and the corresponding reference picture.
  • POC picture order count
  • the subtraction unit 121 generates a residual sample that is a difference between an original sample and a predicted sample.
  • the residual sample may not be generated as described above.
  • the transform unit 122 generates transform coefficients by transforming residual samples in units of transform blocks.
  • the transform unit 122 may perform transform according to the size of the corresponding transform block and the prediction mode applied to the coding block or prediction block spatially overlapping the corresponding transform block. For example, if intra prediction is applied to the coding block or the prediction block overlapping the transform block, and the transform block is a 4 ⁇ 4 residual array, the residual sample is a Discrete Sine Transform (DST) transform kernel. In other cases, the residual sample may be transformed using a DCT (Discrete Cosine Transform) transformation kernel.
  • DST Discrete Sine Transform
  • the quantizer 123 may quantize the transform coefficients to generate a quantized transform coefficient.
  • the rearrangement unit 124 rearranges the quantized transform coefficients.
  • the reordering unit 124 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form through a coefficient scanning method.
  • the rearrangement unit 124 has been described as a separate configuration, the rearrangement unit 124 may be a part of the quantization unit 123 .
  • the entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients.
  • Entropy encoding may include, for example, an encoding method such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC).
  • the entropy encoding unit 130 may encode information necessary for video reconstruction (eg, a value of a syntax element, etc.) other than the quantized transform coefficient together or separately.
  • Entropy-encoded information may be transmitted or stored in a network abstraction layer (NAL) unit unit in the form of a bitstream.
  • NAL network abstraction layer
  • the inverse quantization unit 125 inversely quantizes the values (quantized transform coefficients) quantized by the quantization unit 123 , and the inverse transform unit 126 inversely transforms the values inversely quantized by the inverse quantization unit 125 to obtain a residual sample. create
  • the adder 140 reconstructs a picture by combining the residual sample and the prediction sample.
  • a reconstructed block may be generated by adding the residual sample and the prediction sample in units of blocks.
  • the adder 140 has been described as a separate configuration, but the adder 140 may be a part of the prediction unit 110 .
  • the adder 140 may be referred to as a restoration unit or a restoration block generator.
  • the filter unit 150 may apply a deblocking filter and/or a sample adaptive offset to a reconstructed picture. Artifacts of block boundaries in the reconstructed picture or distortion in the quantization process may be corrected through deblocking filtering and/or sample adaptive offset.
  • the sample adaptive offset may be applied in units of samples, and may be applied after the process of deblocking filtering is completed.
  • the filter unit 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. ALF may be applied to the reconstructed picture after the deblocking filter and/or sample adaptive offset is applied.
  • ALF adaptive loop filter
  • the memory 160 may store a reconstructed picture (a decoded picture) or information required for encoding/decoding.
  • the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 150 .
  • the stored reconstructed picture may be used as a reference picture for (inter) prediction of another picture.
  • the memory 160 may store (reference) pictures used for inter prediction.
  • pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
  • the image encoding method may include block partitioning, intra/inter prediction, transform, quantization, and entropy encoding.
  • the current picture may be divided into a plurality of blocks, a prediction block of the current block may be generated through intra/inter prediction, and the input block of the current block may be subtracted from the prediction block.
  • a residual block of the current block may be generated.
  • a coefficient block ie, transform coefficients of the current block, may be generated by transforming the residual block.
  • the transform coefficients may be quantized and entropy encoded and stored in a bitstream.
  • FIG. 3 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
  • the video decoding apparatus 300 includes an entropy decoding unit 310 , a residual processing unit 320 , a prediction unit 330 , an adder 340 , a filter unit 350 and a memory 360 .
  • the residual processing unit 320 may include a rearrangement unit 321 , an inverse quantization unit 322 , and an inverse transform unit 323 .
  • the video decoding apparatus 300 may reconstruct a video corresponding to a process in which the video information is processed by the video encoding apparatus.
  • the video decoding apparatus 300 may perform video decoding using a processing unit applied in the video encoding apparatus.
  • a processing unit block of video decoding may be, as an example, a coding unit, and may be a coding unit, a prediction unit, or a transform unit, as another example.
  • a coding unit may be partitioned from the largest coding unit along a quad tree structure and/or a binary tree structure.
  • a prediction unit and a transform unit may be further used depending on the case, in which case a prediction block is a block derived or partitioned from a coding unit, and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub-blocks.
  • a transform unit may be divided along a quad tree structure from a coding unit, and may be a unit deriving a transform coefficient or a unit deriving a residual signal from a transform coefficient.
  • the entropy decoding unit 310 may parse the bitstream and output information necessary for video or picture restoration. For example, the entropy decoding unit 310 decodes information in a bitstream based on a coding method such as exponential Golomb encoding, CAVLC or CABAC, and a value of a syntax element required for video reconstruction, and a quantized value of a transform coefficient related to a residual can be printed out.
  • a coding method such as exponential Golomb encoding, CAVLC or CABAC
  • the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes the syntax element information to be decoded and the decoding information of the surrounding and decoding target blocks or the symbol/bin information decoded in the previous step.
  • a context model is determined using the context model, and the probability of occurrence of a bin is predicted according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated by performing arithmetic decoding of the bin. have.
  • the CABAC entropy decoding method may update the context model by using the decoded symbol/bin information for the context model of the next symbol/bin after determining the context model.
  • Prediction-related information among the information decoded by the entropy decoding unit 310 is provided to the prediction unit 330, and the residual value on which the entropy decoding is performed in the entropy decoding unit 310, that is, the quantized transform coefficient is a rearrangement unit ( 321) can be entered.
  • the reordering unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form.
  • the reordering unit 321 may perform reordering in response to coefficient scanning performed by the encoding apparatus.
  • the rearrangement unit 321 has been described as a separate configuration, the rearrangement unit 321 may be a part of the inverse quantization unit 322 .
  • the inverse quantizer 322 may inverse quantize the quantized transform coefficients based on the (inverse) quantization parameter to output the transform coefficients.
  • information for deriving the quantization parameter may be signaled from the encoding device.
  • the inverse transform unit 323 may inverse transform the transform coefficients to derive residual samples.
  • the prediction unit 330 may perform prediction on the current block and generate a predicted block including prediction samples for the current block.
  • a unit of prediction performed by the prediction unit 330 may be a coding block, a transform block, or a prediction block.
  • the prediction unit 330 may determine whether to apply intra prediction or inter prediction based on the information on the prediction.
  • a unit for determining which one of intra prediction and inter prediction is applied and a unit for generating a prediction sample may be different.
  • units for generating prediction samples in inter prediction and intra prediction may also be different.
  • which one of inter prediction and intra prediction is to be applied may be determined in units of CUs.
  • a prediction mode may be determined in units of PUs and a prediction sample may be generated
  • intra prediction a prediction mode may be determined in units of PUs and prediction samples may be generated in units of TUs.
  • the prediction unit 330 may derive a prediction sample for the current block based on neighboring reference samples in the current picture.
  • the prediction unit 330 may derive a prediction sample for the current block by applying a directional mode or a non-directional mode based on the neighboring reference samples of the current block.
  • a prediction mode to be applied to the current block may be determined by using the intra prediction mode of the neighboring block.
  • Matrix-based Intra Prediction MIP that performs prediction based on a matrix trained in advance may be used.
  • MIP Matrix-based Intra Prediction
  • the number of MIP modes and the size of the matrix are defined for each block size, and reference samples are used. After downsampling according to the size of the matrix, the matrix determined by the mode number is multiplied and interpolated to fit the prediction block size to generate a predicted value.
  • the prediction unit 330 may derive a prediction sample for the current block based on a sample specified on the reference picture by a motion vector on the reference picture.
  • the prediction unit 330 may derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP mode.
  • motion information necessary for inter prediction of the current block provided by the video encoding apparatus for example, information about a motion vector, a reference picture index, etc., may be obtained or derived based on the information about the prediction.
  • motion information of a neighboring block may be used as motion information of the current block.
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • the prediction unit 330 may construct a merge candidate list with motion information of available neighboring blocks, and use information indicated by a merge index on the merge candidate list as a motion vector of the current block.
  • the merge index may be signaled from the encoding device.
  • the motion information may include a motion vector and a reference picture. When motion information of a temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
  • the difference (residual) between the predicted sample and the original sample is not transmitted.
  • the motion vector of the current block may be derived by using the motion vector of the neighboring block as a motion vector predictor.
  • the neighboring block may include a spatial neighboring block and a temporal neighboring block.
  • a merge candidate list may be generated using a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a Col block that is a temporal neighboring block.
  • the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block.
  • the prediction information may include a merge index indicating a candidate block having an optimal motion vector selected from among candidate blocks included in the merge candidate list.
  • the prediction unit 330 may derive the motion vector of the current block by using the merge index.
  • a motion vector predictor candidate list is generated using a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a col block that is a temporal neighboring block.
  • a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a col block that is a temporal neighboring block may be used as a motion vector candidate.
  • the prediction information may include a prediction motion vector index indicating an optimal motion vector selected from motion vector candidates included in the list.
  • the prediction unit 330 may select a prediction motion vector of the current block from among motion vector candidates included in the motion vector candidate list by using the motion vector index.
  • the prediction unit of the encoding apparatus may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode it and output it in the form of a bitstream. That is, the MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block.
  • the prediction unit 330 may obtain a motion vector difference included in the prediction-related information, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor.
  • the prediction unit may also obtain or derive a reference picture index indicating a reference picture from the information about the prediction.
  • the adder 340 may reconstruct the current block or the current picture by adding the residual sample and the prediction sample.
  • the adder 340 may reconstruct the current picture by adding the residual sample and the prediction sample in units of blocks.
  • the prediction sample may be the reconstructed sample.
  • the adder 340 is described as a separate configuration, but the adder 340 may be a part of the predictor 330 . Meanwhile, the adder 340 may be referred to as a restoration unit or a restoration block generator.
  • the filter unit 350 may apply a deblocking filtering sample adaptive offset and/or ALF to the reconstructed picture.
  • the sample adaptive offset may be applied in units of samples or may be applied after deblocking filtering.
  • ALF may be applied after deblocking filtering and/or sample adaptive offset.
  • the memory 360 may store a reconstructed picture (a decoded picture) or information necessary for decoding.
  • the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 350 .
  • the memory 360 may store pictures used for inter prediction.
  • pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
  • the reconstructed picture may be used as a reference picture for other pictures.
  • the memory 360 may output the restored pictures according to the output order.
  • the image decoding method may include entropy decoding, inverse quantization, inverse transform, and intra/inter prediction processes.
  • the reverse process of the encoding method may be performed.
  • quantized transform coefficients may be obtained through entropy decoding of the bitstream, and a coefficient block of the current block, ie, transform coefficients, may be obtained through an inverse quantization process for the quantized transform coefficients.
  • a residual block of the current block may be derived through inverse transform on the transform coefficients, and the prediction block of the current block derived through intra/inter prediction is added to the residual block of the current block
  • a reconstructed block may be derived.
  • Floor(x) may represent a maximum integer value less than or equal to x
  • Log2(u) may represent a log value based on 2 of u
  • Ceil(x) is greater than or equal to x It can represent the minimum integer value. For example, in the case of Floor(5.93), since the maximum integer value less than or equal to 5.93 is 5, it can represent 5.
  • x>>y may represent an operator for right shifting x y times
  • x ⁇ y may represent an operator for left shifting x y times.
  • the HEVC standard generally uses one transform type, DCT (discrete cosine transform). Accordingly, there is no need to transmit a separate determination process for a transform type and information on the determined transform type. However, when the size of the current luma block is 4x4 and intra prediction is performed, a DST (discrete sine transform) transform type is exceptionally used.
  • DCT discrete cosine transform
  • Information representing the position of a non-zero coefficient among quantized coefficients that have undergone transformation and quantization can be roughly classified into three types.
  • Position (x,y) of the last significant coefficient the position of the lowest non-zero coefficient in the scan order in the encoding object block (hereinafter, the last position) (defined as last position)
  • coded sub-block flag A block to be coded is divided into a plurality of sub-blocks, so that each sub-block has a non-zero coefficient A flag indicating whether or not it contains one or more zero coefficients (or a flag indicating whether it is all zero coefficients)
  • the position of the last significant coefficient is expressed by dividing it into an x-axis component and a y-axis component, and each component is expressed by dividing it into a prefix and a suffix. That is, the syntax indicating the non-zero positions of the quantized coefficients includes a total of six syntaxes below.
  • last_sig_coeff_x_prefix indicates the prefix of the x-axis component indicating the position of the last significant coefficient
  • last_sig_coeff_y_prefix indicates the prefix of the y-axis component indicating the position of the last significant coefficient
  • last_sig_coeff_x_suffix indicates the suffix of the x component indicating the position of the last significant coefficient
  • last_sig_coeff_y_suffix indicates the suffix of the y component indicating the position of the last significant coefficient.
  • coded_sub_block_flag indicates "0” if all coefficients in the corresponding sub-block are all zeros, and "1” if one or more non-zero coefficients exist.
  • sig_coeff_flag is expressed as "0” in the case of a zero coefficient, and expressed as "1” in the case of a non-zero coefficient.
  • a coded_sub_block_flag syntax is transmitted only for sub-blocks that exist before in a scan order in consideration of the position of the last significant coefficient in the block to be coded. When coded_sub_block_flag is “1”, that is, when one or more non-zero coefficients exist, a sig_coeff_flag syntax for each of all coefficients in a corresponding sub-block is transmitted.
  • the HEVC standard supports the following three types of scans for coefficients.
  • the coefficients of the corresponding block are scanned in an up-right diagonal method, and when the block is encoded using the intra prediction method, the intra prediction mode Accordingly, one of the three types is selected and the coefficients of the corresponding block are scanned.
  • the image encoding apparatus scans the coefficients of the corresponding block by selecting one of the three types according to the intra prediction mode.
  • the scanning may be performed by the reordering unit 124 in the image encoding apparatus of FIG. 1 , and a two-dimensional block shape coefficient may be changed into a one-dimensional vector form through scanning.
  • 5 shows a scan order of sub-blocks and coefficients for a diagonal scan scheme.
  • the block of FIG. 5 when the block of FIG. 5 is scanned in a diagonal scan method by the rearrangement unit 124 of the image encoding apparatus, the block of FIG. 5 is scanned in a downward direction and The scan is performed in the diagonal upper direction, and the last scan is performed for sub-block 16 at the lower right. That is, the rearrangement unit 124 is 1, 2, 3, ... , 14, 15, and 16 sub-blocks are scanned in order to rearrange the quantized transform coefficients in the form of a two-dimensional block into a form of a one-dimensional vector. Similarly, the reordering unit 124 of the image encoding apparatus scans coefficients in each sub-block in the same diagonal scan method as that of the sub-block. For example, in subblock 1, 0, 1, 2, ... , 13, 14, and 15 in the order of the scans are performed.
  • the stored order is the reverse of the scan order. That is, when the block of FIG. 10 is scanned by the reordering unit 124 of the image encoding apparatus, scans are performed in the order of coefficient 0 to 255, but the order in which each pixel is stored in the bitstream is at position 255 It is stored in the bitstream in order from the pixel at position 0 to the pixel at position 0.
  • FIG. 6 shows an example of a 32x32 encoding target block after being quantized by the video encoding apparatus.
  • a diagonal method is arbitrarily used.
  • a pixel indicated by a diagonal hatch indicates a non-zero coefficient
  • a pixel indicated by an x indicates a last significant coefficient. All other white coefficients have a value of zero.
  • the coded_sub_block_flag syntax is substituted into the block of FIG. 6, 24 sub-blocks existing before the last position in the scan order among a total of 64 sub-blocks, that is, the thick line in FIG.
  • the coded_sub_block_flag value for the first sub-block including the DC value and the 24th sub-block including the last position coefficient among the 24 sub-blocks is " 1" and coded_sub_block_flag values for the remaining 22 sub-blocks are transmitted to the video decoding apparatus through a bitstream.
  • the coded_sub_block_flag value is " set to 1".
  • the coded_sub_block_flag value of the 4th, 5th, 11th, and 18th sub-blocks that are sub-blocks including gray-marked pixels among 22 sub-blocks excluding the first sub-block and the 24th sub-block is "1 " is set to
  • the present specification discloses a method of determining a type of a primary transform of a decoding object block during an image decoding process. That is, when a decoding object block is decoded by an image decoding apparatus, a process of determining whether the image encoding apparatus has primary transformed and coded into what type of transformation is required in the transformation process by the image encoding apparatus.
  • a primary transform type consists of one default transform and a plurality of extra transforms.
  • the decoding target block uses a default transform or a multiple transform set (MTS) including a default transform and extra transforms according to a condition. That is, the decoding object block may be transformed by using only the default transform or by using a multiple transform set including the default transform and the additional transform in the transform process.
  • MTS multiple transform set
  • decoding may be performed by determining whether a decoding object block uses only a default transform or a multiple transform set (MTS) including a default transform and an additional transform.
  • MTS multiple transform set
  • the decoding object block uses the MTS, information about a transform actually used among a plurality of transforms is transmitted or derived.
  • a horizontal axis transformation type and a vertical axis transformation type may exist separately. That is, when the decoding object block is transformed using MTS, the image decoding apparatus may perform decoding by receiving or determining which transform type is used and transformed among a plurality of transform types.
  • DCT-II may be set as a default transform
  • DST-7 and DCT-8 may be set as extra transforms
  • the maximum size of DCT-II which is a default transform
  • the maximum size of DST-7 and DCT-8 which are extra transforms, is supported up to 32 ⁇ 32.
  • the size of the decoding object block is 64 ⁇ 64
  • one 64 ⁇ 64 DCT-II is applied to a transform process. That is, when at least one of the width and height of the decoding target block is greater than 32 (greater than 32), a default transform (*) is directly applied without applying the MTS.
  • the transform type value of DCT-II is set to “0”, the transform type value of DST-7 is set to “1”, and the transform type value of DCT-8 is set to “2”.
  • Table 2 below defines the transform type assigned to each value of the trType syntax.
  • Tables 3 and 4 show examples of transform kernels of DST-7 and DST-8 when the size of the decoding and target blocks is 4x4.
  • Table 3 shows the coefficient values of the corresponding transform kernel when the tyType is "1" (DST-7) and the size of the decoding target block is 4x4, and Table 4 shows the coefficient values of the corresponding transform kernel when the tyType is "2" (DCT-8) and represents the coefficient value of the corresponding transform kernel when the size of the decoding target block is 4x4.
  • a zero-out area may be included in the entire transform area of the decoding object block.
  • Transform transforms pixel domain values into frequency domain values.
  • an upper-left frequency region is referred to as a low-frequency region and a lower-right frequency region is referred to as a high-frequency region.
  • the low frequency component reflects the general (average) characteristics of the corresponding block
  • the high frequency component reflects the sharp (unique) characteristic of the corresponding block. Therefore, the low frequency component has a plurality of large values, and the high frequency component has a few small values. Through the quantization process after transformation, a small number of small values in the high-frequency region mostly have zero values.
  • the remaining region having most of the zero values is referred to as a zero-out region, and the zero-out region may be excluded from the signaling process.
  • a region excluding the zero-out region in the decoding object block is referred to as a valid region.
  • the upper left gray area represents the low frequency area
  • the white area represents the high frequency zero-out.
  • the decoding object block is 64x64
  • the upper left 32x32 area becomes a valid area, and the remaining areas except for this become a zero-out area, so that no signaling is performed.
  • the size of the decoding object block is one of 64x64, 64x32, and 32x64
  • the upper left 32x32 area becomes an effective area, and the remaining part becomes a zero-out area except for the coefficients quantized by the decoder. Since the size of the block is known when parsing the syntax for , the zero-out region is not signaled. That is, an area in which the width or height of the decoding object block is greater than 32 is set as the zero-out area.
  • the transform used is DCT-II, which is the default transform. Since the maximum size of DST-7 and DCT-8, which are extra transforms, is supported up to 32 ⁇ 32, MTS is not applied to the target block of this size.
  • the size of the decoding object block is one of 32x32, 32x16, and 16x32 and MTS is applied to the decoding object block (for example, when DST-7 or DCT-8 is used)
  • the upper left 16x16 area becomes an effective area
  • the remaining part is set as a zero-out area.
  • the zero-out region may be signaled according to the location of the last significant coefficient and the scanning method. This is because, since the encoder signals the MTS index (mts_idx) value after signaling the quantized coefficient-related syntax, information on the transform type cannot be known when the decoder parses the syntax for the quantized coefficient.
  • the decoder can perform transformation only on the effective region after ignoring or removing quantized coefficients corresponding to the zero-out region.
  • the information on the actually used transformation type may have a horizontal axis transformation type and a vertical axis transformation type separately.
  • the horizontal axis transformation type of the decoding object block is DST-7 or DCT-8
  • the horizontal axis (width) effective area of the decoding object block becomes 16
  • the vertical axis transformation type of the decoding object block is DST-7 or DCT- In the case of 8
  • the effective area of the vertical axis (height) of the decoding object block is 16.
  • the size of the decoding object block is one of 32x32, 32x16, and 16x32 and MTS is not applied to the decoding object block (eg, when DCT-II, which is a default transform, is used)
  • all regions are valid regions.
  • a zero-out region does not exist and is transformed using the default transformation DCT-II.
  • a horizontal axis transformation type and a vertical axis transformation type may exist separately.
  • the effective area of the horizontal axis (width) of the decoding object block becomes the width of the corresponding block
  • the vertical axis transformation type of the decoding object block is DCT-II
  • the vertical axis (height) effective area of the decoding target block becomes the height of the corresponding block. That is, all areas (width x height) of the decoding object block become effective areas.
  • the decoding object block has a size smaller than 16, which is not defined above, all regions become valid regions, and there is no zero-out region. Whether MTS is applied to the decoding object block and the transform type value are determined by implicit and/or explicit embodiments.
  • syntax content for expressing the position of a non-zero coefficient among quantized coefficients that have undergone transformation and quantization is the same as that of the HEVC method.
  • the coded_sub_block_flag syntax name is changed to sb_coded_flag and used.
  • a method of scanning the quantized coefficients uses an up-right diagonal method.
  • MTS may be applied to a luma block (not applied to a chroma block).
  • the MTS function may be turned on/off using a flag indicating whether MTS is used, that is, sps_mts_enabled_flag.
  • sps_mts_enabled_flag on is set, and it is possible to set whether to explicitly use the MTS function for intra prediction and inter prediction, respectively.
  • a flag sps_explicit_mts_intra_enabled_flag indicating whether MTS is used in intra prediction and a flag sps_explicit_mts_inter_enabled_flag indicating whether MTS is used in inter prediction may be separately set.
  • the values of the three flags sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, and sps_explicit_mts_inter_enabled_flag indicating whether to use the MTS are described as being located in a sequence parameter set (SPS), but is not limited thereto.
  • SPS sequence parameter set
  • the three flags are at least one of decoding capability information (DCI), video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), picture header (PH), and slice header (SH). can be set individually.
  • the flags indicating whether the three MTSs are used may be defined as high level syntax (HLS).
  • MTS can be divided into an explicit method and an implicit method.
  • Explicit use of MTS is defined as MTS-related information (e.g., conversion actually used) when a specific condition is satisfied while a flag value indicating whether MTS is used within and/or between screens is set to on in the SPS. information) is transmitted. That is, the image decoding apparatus may receive the MTS-related information and check which transformation type the decoding object block is transformed using based on the MTS-related information, and may perform decoding based on the received MTS-related information. For example, in an environment where explicit MTS is used, the three flags may be set as follows.
  • MTS-related information eg, actually used conversion information
  • a value of sps_mts_enabled_flag among three flags is set to on in the SPS.
  • the three flags may be set as follows.
  • the implicit MTS described in this embodiment may be used when the decoding object block is encoded using the intra prediction method. That is, when the decoding object block is encoded by the intra prediction method when the decoding object block is encoded by the video encoding apparatus, encoding and/or decoding may be performed by the video encoding apparatus and/or the video decoding apparatus using the implicit MTS. Meanwhile, whether to use the implicit MTS when decoding the decoding object block may be indicated by the implicitMtsEnabled parameter.
  • the image decoding apparatus may determine whether to perform decoding using the implicit MTS by checking the value of the implicitMtsEnabled parameter.
  • the implicitMtsEnable parameter when an implicit MTS is used for decoding, the implicitMtsEnable parameter may have a value of 1, otherwise, the implicitMtsEnable parameter may have a value of 0. Meanwhile, in this specification, the implicitMtsEnabled may be indicated as “implicit_MTS_enabled” in some cases.
  • sps_mts_enabled_flag is a flag indicating whether MTS is applied regardless of whether it is implicit or explicit. Therefore, it is set to "on" to apply the implicit MTS.
  • the implicit MTS is used when the decoding object block is encoded by the video encoding apparatus and encoded by the intra prediction method. Accordingly, the image decoding apparatus may determine whether to use the implicit MTS by checking the sps_explicit_mts_intra_enabled_flag value.
  • sps_explicit_mts_intra_enabled_flag is set to “on” when the decoding object block is encoded by the intra prediction method when the decoding object block is encoded by the video encoding apparatus and explicit MTS is applied. Accordingly, when the decoding object block is encoded as implicit MTS by the video encoding apparatus, sps_explicit_mts_intra_enabled_flag is set to “off”. Meanwhile, as described above, the implicit MTS is used when the decoding object block is encoded by the video encoding apparatus using the intra prediction method.
  • the sps_explicit_mts_inter_enabled_flag value indicating the explicit MTS when the decoding object block is encoded by the intra prediction method by the video encoding apparatus has.
  • the implicit MTS can be used when a decoding object block is encoded by an intra prediction method by an image encoding apparatus, it can be applied when CuPredMode has a MODE_INTRA value.
  • the conditions for the decoding object block to be decoded using the implicit MTS by the image decoding apparatus may be listed as follows.
  • CuPredMode is equal to MODE_INTRA (in-screen prediction method)
  • CuPredMode[ 0 ][ xTbY ][ yTbY ] indicating the prediction mode of the current position in the luma block may have a MODE_INTRA value.
  • intra_mip_flag is equal to 0
  • the present embodiment describes a method of setting a primary transform type (or MTS) for a decoding object block that does not use a secondary transform while predicting with a general intra prediction method.
  • MTS primary transform type
  • FIG. 8 illustrates a method of determining whether to apply an implicit MTS function according to an embodiment of the present invention. Each of the steps of FIG. 8 may be performed in the image decoding apparatus.
  • the video decoding apparatus determines whether sps_mts_enable_flag has a value of 1, sps_explicit_mts_intra_enable_flag has a value of 0, and CuPredMode has a MODE_INTRA value (S810).
  • the image decoding apparatus determines whether lfnst_idx has a value of 0 and intra_mip_flag has a value of 0 (S820), and satisfies both the conditions of S810 and S820.
  • the implicit_MTS_enabled value is set to 1 (S830). Meanwhile, the image decoding apparatus sets the implicit_MTS_enabled value to 0 when none of the conditions of S810 or S820 are satisfied (S840).
  • an MTS value (transform information actually used) is derived according to the width and height of the corresponding block (refer to FIG. 9 ).
  • the transform should not be a sub-block transform (sbt) in which only a part of the target block undergoes a transform process. That is, the cu_sbt_flag value of the target block is “0”.
  • FIG. 9 shows a method of deriving transformation information according to the width and height of the corresponding block of the implicit MTS according to an embodiment of the present invention. Each of the steps of FIG. 9 may be performed in the image decoding apparatus.
  • the image decoding apparatus determines whether the implicit_MTS_enabled value is '1' (S910). At this time, although not shown in the drawing, the image decoding apparatus may additionally check whether the cu_sbt_flag value has a value of “0”. In this case, when cu_sbt_flag has a value of '1', it indicates that the decoding object block is transformed by sub-block transformation in which only a part of the object block undergoes a transformation process. Conversely, when cu_sbt_flag has a value of '0', it indicates that the decoding object block is not transformed by sub-block transformation in which only a part of the object block undergoes a transformation process. Accordingly, the operations according to FIG. 14 may be set to be operated only when the cu_sbt_flag has a value of '0'.
  • nTbW represents the width of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the horizontal axis direction.
  • trTypeHor is set to '1' (S930), and when the value of nTbW does not have a value of 4 or more and 16 or less, trTypeHor is set to ' 0' (S940).
  • the nTbW represents the width of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the horizontal axis direction.
  • tyTypeHor when tyTypeHor is set to '0', it may be determined that the corresponding transform block is transformed using the DCT-II transform that is the default type transform in the horizontal axis direction. Meanwhile, when the trTypeHor is set to '1', it may be determined that the corresponding transform block is transformed using the DST-7 transform, which is one of the additional transform types, in the horizontal axis direction.
  • the image decoding apparatus determines whether the value of nTbH has a value of 4 or more and 16 or less (S950), and sets trTypeVer to '1' when the value of nTbH has a value of 4 or more and 16 or less ( S960), when the value of nTbW does not have a value of 4 or more and 16 or less, trTypeVer is set to '0' (S970).
  • the nTbH represents the height of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the vertical axis direction.
  • trTypeVer when trTypeVer is set to '0', it may be determined that the corresponding transform block is transformed using the DCT-II transform, which is the default type transform in the vertical axis direction. On the other hand, when the trTypeVer is set to '1', it can be determined that the corresponding transform block is transformed using the DST-7 transform, which is one of the additional transform types, in the vertical axis direction.
  • FIG. 10 illustrates a method of performing an inverse transform based on a transform-related parameter according to an embodiment of the present invention.
  • Each of the steps of FIG. 10 may be performed by an image decoding apparatus, for example, by an inverse transform unit of the decoding apparatus.
  • the image decoding apparatus obtains sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0], NTbW, nTbH (S1010).
  • sps_mts_enabled_flag the related parameters of sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0] are described in detail in the description of FIG. Used to determine whether a block can apply implicit MTS.
  • NTbW and nTbH respectively indicate the width and height of the corresponding transform block, and are used to determine whether an additional transform type, DST-7, can be used.
  • the image decoding apparatus sets implicit_MTS_enabled based on values of sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], Lfnst_idx, IntraMipFlag[x0, y0] (S1020).
  • the implicit_MTS_enable may be set by performing the process of FIG. 13 .
  • the image decoding apparatus sets trTypeHor and trTypeVer based on implicit_MTS_enabled, nTbW, and nTbH values (S1030).
  • the trTypeHor and trTypeVer methods may be set by performing the process of FIG. 9 .
  • the image decoding apparatus performs inverse transformation based on trTypeHor and trTypeVer (S1040).
  • An inverse transform applied according to trTypeHor and trTypeVer may be configured according to Table 2. For example, when trTypeHor is “1” and trTypeVer is “0”, DST-7 may be applied in the horizontal axis direction and DST-II may be applied in the vertical axis direction.
  • sps_mts_enabled_flag in order to set whether or not to use implicit MTS from the viewpoint of the video encoding apparatus, sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, nTbHy0], NTbW, n can be set.
  • This embodiment describes a transform method applied to a decoding object block when an MTS function is explicitly activated in high level syntax (HLS).
  • HLS high level syntax
  • sps_mts_enabled_flag is a flag indicating whether MTS is applied regardless of whether it is implicit or explicit, so it is set to "on" for implicit MTS to be applied should be
  • sps_explicit_mts_intra_enabled_flag and/or sps_explicit_mts_intra_enabled_flag are all set to “on”. is set Summarizing this, it can be listed as the condition below.
  • transform_skip_flag is equal to 0
  • intra_subpartitions_mode_flag is equal to 0
  • cu_sbt_flag is equal to 0 (see implicit MTS)
  • the target block has a width and height of 32 or less
  • the intra_subpartitions_mode_flag value indicates that the target block is divided into a plurality of sub-blocks and undergoes prediction, transformation, and quantization processes as one of the intra-picture prediction methods. That is, when the corresponding flag value (intra_subpartitions_mode_flag) is “0”, it means that general intra prediction is performed without dividing the target block into sub-blocks.
  • DST-7 and DCT-8 up to 32x32 support, described above
  • MTS when the width and height of the target block are 32 or less, MTS can be used. That is, if any one of the width and the height exceeds 32 (the use of MTS is not possible), DCT-II, which is a default transform (*), is performed.
  • cu_sbt_flag indicates whether a sub-block transform (sbt) in which only a part of the target block undergoes a transformation process. That is, when the cu_sbt_flag value is “0”, it means that it is not a sub-block transform (sbt) in which only a part of the target block undergoes a transformation process.
  • a valid area (hereinafter, a valid MTS area) will be described in detail.
  • FIG. 11 shows an example of an effective MTS area marked with a thick line in a 32x32 decoding object block.
  • the 16x16 area on the upper left side excluding the DC coefficient becomes the effective MTS area. That is, the upper left 16x16 area excluding the 1x1 (DC) area is an effective MTS area.
  • MTS is applicable, and one or more non-zero coefficients values are in the effective MTS area. If it is out of , MTS cannot be applied, so DCT-II, which is a default transform (*), is performed. This is the same concept as the zero-out area described above.
  • MTS ie, DST-7 or DCT-8
  • the upper left 16x16 becomes a valid area
  • the rest of the 32x32 target block becomes a zero-out area.
  • MTS ie, DST-7 or DCT-8
  • DCT-II which is a default transform (*)
  • the valid MTS area needs to be checked, and the following two conditions need to be checked for the valid MTS area.
  • last position information may be used.
  • the last position refers to the position of the last non-zero coefficient, that is, the last significant coefficient in the scan order in the target block.
  • information about the last sub-block including the last position may be used. For example, if the position of the last sub block is not (0, 0), condition (a) may be satisfied. In other words, if the position of the last sub block in the sub block within the target block is not “0” (greater than 0), the condition (a) may be satisfied. Alternatively, if the position of the last sub-block is "0", information about the last scan position indicating the relative position of the last position in the sub-block may be used.
  • the MTS of the present invention is applied to a luma block.
  • sub-block information including one or more non-zero coefficients may be used.
  • sub-block information including one or more non-zero coefficients can be confirmed with an sb_coded_flag value of the corresponding sub-block.
  • the condition (b) may be satisfied if the positions of all sub-blocks whose sb_coded_flag value is “1” in the target block are located within (0,0) to (3,3). Conversely, if even one of the sub-blocks having the sb_coded_flag value of “1” in the target block is out of position within (0,0) to (3,3), the condition (b) cannot be satisfied. In other words, if even one of the sub-blocks with the sb_coded_flag value of “1” in the target block has a value greater than 3 among the x-coordinate or the y-coordinate of the sub-block, the condition (b) can be satisfied. None (see FIG. 18).
  • FIG. 12 shows a method of determining a valid MTS according to an embodiment of the present invention.
  • the embodiment of FIG. 12 relates to a method of confirming the condition of (a) among the two conditions for checking the valid MTS area described above.
  • Each of the steps of FIG. 12 may be performed in the image decoding apparatus.
  • the image decoding apparatus sets MtsDcOnlyFlag to “1” (S1210).
  • the MtsDcOnlyFlag may indicate whether there is one non-zero coefficient in the block and the position is DC. For example, if there is one non-zero coefficient in the block and the position is DC, the MtsDcOnlyFlag has a value of “1”, and in other cases, the MtsDcOnlyFlag has a value of “0”. In this case, the video decoding apparatus may apply MTS when the MtsDcOnlyFlag value has “0”.
  • step S1210 The reason for setting MtsDcOnlyFlag to “1” in step S1210 is to set MtsDcOnlyFlag to “0” when the corresponding block satisfies the condition that the block is not in the DC position when there is one non-zero coefficient in the block below. reset to , otherwise, MTS is not applied.
  • the image decoding apparatus determines whether the target block is a luma block (S1220).
  • the purpose of determining whether the target block is the luma block is because the MTS is applied only to the luma block as described above.
  • the image decoding apparatus determines whether the last sub-block is greater than 0 (S1230), and when the last sub-block is greater than 0, sets MtsDcOnlyFlag to “0” (S1240), and ends the process do.
  • step S1230 if the last sub-block is not greater than 0, it is determined whether the last scan position is greater than 0 (S1250).
  • step S1250 if the last scan position is greater than 0, MtsDcOnlyFlag is set to “0” (S1240), and the process is terminated.
  • step S1250 if the last scan position is not greater than 0, the process is terminated.
  • MtsDcOnlyFlag is set to “0” if the last sub-block is greater than 0 or the last scan position is greater than 0, otherwise MtsDcOnlyFlag is set to “1”.
  • MtsDcOnlyFlag is checked and, if it has a value of “1”, MTS is not applied and DCT-II, which is a default transformation, may be applied.
  • FIG. 13 illustrates a method of determining an effective MTS area according to another embodiment of the present invention.
  • the embodiment of FIG. 13 specifically shows a method of confirming the condition of (b) among the two conditions for confirming the valid MTS area described above.
  • Each of the steps of FIG. 13 may be performed in the image decoding apparatus.
  • the video decoding apparatus sets MtsZerooutFlag to “1” (S1305).
  • the MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region. For example, if at least one of the non-zero coefficients in the block exists in the zero-out region, MtsZerooutFlag has a value of “0”, and all non-zero coefficients in the block are zero-out (zero-out). If it does not exist in the zero-out) area, MtsZerooutFlag may have a value of “1”.
  • MtsZerooutFlag the initial value of MtsZerooutFlag is set to “1”, and the conditions of the zero-out region and the non-zero coefficients are MtsZerooutFlag can be set to “0” when both conditions are satisfied.
  • explicit MTS may not be applied.
  • the image decoding apparatus sets the initial value of the variable i to the value of the last sub block, and subtracts the value of the variable i by 1 until the value of the variable i becomes 0 in the following step S1325
  • the processes of steps S1350 to S1350 are repeated (S1320).
  • the purpose of repeating the routine of step S1820 is to check the sb_coded_flag values of all sub-blocks from the last sub-block to the first sub-block.
  • the corresponding flag value is “1”, it means that one or more non-zero coefficients exist in the corresponding sub-block, and when the corresponding flag value is “0”, non-zero coefficients exist in the corresponding sub-block. means not Therefore, referring to FIG.
  • the image decoding apparatus determines whether a condition in which the variable i is smaller than the last sub block (i ⁇ last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied (S1325) ). For example, when the routine of step S1320 is first executed, the condition of step S1325 is not satisfied because the initial value of the variable i is set to the same value as that of the last sub block.
  • step S1325 when the condition that the variable i is smaller than the last sub block (i ⁇ last sub block) and the variable i is larger than 0 (i>0) simultaneously meets the conditions, sb_coded_flag is parsed (S1830) ). If both conditions are not satisfied at the same time, sb_coded_flag is set to “1” (S1835).
  • the parsed sb_coded_flag indicates whether one or more non-zero coefficients exist in the corresponding sub-block.
  • sb_coded_flag has a value of “1”
  • sb_coded_flag has a value of “0”.
  • step S1835 is performed only when i indicates the last sub-block and the first sub-block. That is, since the last position coefficient is included in the last sub-block, a value of “1” is parsed for the sb_coded_flag value, and a DC coefficient exists in the first sub-block, so the sb_coded_flag value has a value of “1”. is parsed
  • the image decoding apparatus determines whether the corresponding block is a luma block (S1340).
  • the purpose of determining whether the target block is the luma block is because the MTS is applied only to the luma block as described above.
  • step S1340 if the corresponding block is a luma block, it is determined whether the condition of “sb_coded_flag && ( xSb > 3
  • MtsZerooutFlag is set to “0” to indicate an explicit MTS. It may be judged not applicable.
  • FIG. 14 illustrates a method of determining an effective MTS according to another embodiment of the present invention.
  • the embodiment of FIG. 14 specifically shows a method of confirming the condition of (b) among the two conditions for confirming the valid MTS area described above.
  • the valid MTS area was checked by checking the sb_coded_flag of all sub-blocks, but in the embodiment of FIG. 14 , when the first invalid MTS is found, there is a difference in that the subsequent sb_coded_flag does not need to be checked.
  • Each of the steps of FIG. 14 may be performed in the image decoding apparatus.
  • the image decoding apparatus sets MtsZerooutFlag to “1” (S1405).
  • the MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region. For example, if at least one of the non-zero coefficients in the block exists in the zero-out region, MtsZerooutFlag has a value of “0”, and all non-zero coefficients in the block are zero-out (zero-out). If it does not exist in the zero-out) area, MtsZerooutFlag may have a value of “1”.
  • MtsZerooutFlag the initial value of MtsZerooutFlag is set to “1”, and the conditions of the zero-out region and the non-zero coefficients are MtsZerooutFlag can be set to “0” when both conditions are satisfied.
  • explicit MTS may not be applied.
  • the image decoding apparatus sets the initial value of the variable i to the value of the last sub-block, and subtracts the value of the variable i by 1 until the value of the variable i becomes 0 in the following step S1425
  • the processes of steps S1450 to S1450 are repeatedly performed (S1420).
  • the purpose of repeating the routine of step S1420 is to check the sb_coded_flag values of all sub-blocks from the last sub-block to the first sub-block.
  • the sb_coded_flag value when the sb_coded_flag value is “1”, it means that one or more non-zero coefficients exist in the corresponding sub-block, and when the sb_coded_flag value is “0”, there is no non-zero coefficient in the corresponding sub-block. means Therefore, referring to FIG. 16, when the positions of all sub-blocks having the sb_coded_flag value of “1” in the target block exist only within (0, 0) to (3, 3), that is, 0 to 8 based on variable i If it exists only within, it can be determined that the condition (b) for applying the explicit MTS is satisfied.
  • the image decoding apparatus determines whether a condition in which the variable i is smaller than the last sub block (i ⁇ last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied (S1425) ). For example, when the routine of step S1920 is first executed, the condition of step S1425 is not satisfied because the initial value of the variable i is set to the same value as that of the last sub block.
  • step S1425 when the condition that the variable i is smaller than the last sub block (i ⁇ last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied, the sb_coded_flag is parsed (S1430) ). If both conditions are not satisfied at the same time, sb_coded_flag is set to “1” (S1435).
  • the parsed sb_coded_flag indicates whether one or more non-zero coefficients exist in the corresponding sub-block.
  • sb_coded_flag has a value of “1”
  • sb_coded_flag has a value of “0”.
  • step S1435 is performed only when i indicates the last sub-block and the first sub-block. That is, since the last position coefficient is included in the last sub-block, a value of “1” is parsed for the sb_coded_flag value, and a DC coefficient exists in the first sub-block, so the sb_coded_flag value has a value of “1”. is parsed
  • the video decoding apparatus determines whether a condition of “MtsZerooutFlag && luma block” is satisfied (S1440).
  • step S1440 if the condition of “MtsZerooutFlag && luma block” is satisfied, it is further determined whether the condition of “sb_coded_flag && (xSb > 3
  • step S1440 if the condition of “MtsZerooutFlag && luma block” is not satisfied, the process in the corresponding sub-block is terminated.
  • a false value is derived in step S1940 to set the sb_coded_flag value. No need to check anymore.
  • trTypeHor means a transform type on the horizontal axis
  • trTypeVer means a transform type on the vertical axis.
  • Values of transform types in Table 5 mean trType values in Table 2. For example, when the value of mts_idx is "2", DCT-8 (2) may be used as the horizontal axis transform and DST-7 (1) may be used as the vertical axis transformation (transform).
  • DCT-II in all cases where the aforementioned default transform (*) DCT-II is used/performed/applied, it may be replaced with the expression “derives the mts_idx value to “0””. That is, when the mts_idx value is "0", this is because DCT-II (0) is set for both the horizontal axis and the vertical axis transform.
  • the binarization method of mts_idx uses a truncated rice (TR) method.
  • TR truncated rice
  • the cMax value which is a parameter value for TR, is "4", and the cRiceParam value is "0".
  • Table 6 shows the codewords of the MTS index.
  • FIG. 15 illustrates a method of determining whether to apply an explicit MTS function according to an embodiment of the present invention. Each of the steps of FIG. 15 may be performed in the image decoding apparatus.
  • (sps_explicit_mts_inter_enabled_flag && CuPredMode MODE_INTER)" is satisfied (S1510).
  • sps_explicit_mts_intra_enabled_flag is a flag indicating whether or not to use explicit MTS for intra prediction
  • sps_explicit_mts_intra_enabled_flag is a flag indicating whether to use explicit MTS for inter prediction.
  • sps_explicit_mts_intra_enabled_flag has a value of “1” when explicit MTS is used for intra prediction, and a value of “0” otherwise.
  • sps_explicit_mts_intra_enabled_flag has a value of “1” when explicit MTS is used for inter prediction, and has a value of “0” otherwise.
  • CuPredMode indicates whether the decoding object block is encoded by any prediction method.
  • CuPredMode has a MODE_INTRA value
  • CuPredMode has a MODE_INTER value.
  • step S2010 by checking the values of sps_explicit_mts_intra_enabled_flag, sps_explicit_mts_inter_enabled_flag, and CuPredMode, it may be determined whether the decoding object block uses the explicit MTS.
  • cbW and cbH represent the width and height of the current block, respectively.
  • the maximum size of DCT-II which is the default transform
  • the maximum size of DST-7 and DCT-8 which are extra transforms
  • the size of the decoding object block is 64 ⁇ 64
  • one 64 ⁇ 64 DCT-II is applied to a transform process. That is, when at least one of the width and height of the decoding target block is greater than 32 (greater than 32), a default transform (*) is directly applied without applying the MTS. Therefore, in order for MTS to be applied, both cbW and cbH must have a value of 32 or less.
  • intra_subpartitions_mode_flag indicates whether an intra subpartition mode is applied.
  • the intra sub-partition mode is one of intra-picture prediction methods, and indicates that the target block is divided into a plurality of sub-blocks and subjected to prediction, transformation, and quantization processes. That is, when the corresponding flag value (intra_subpartitions_mode_flag) is “0”, it means that general intra prediction is performed without dividing the target block into sub-blocks.
  • cu_sbt_flag indicates whether sub-block transform (sbt) in which only a part of the target block undergoes a transformation process is applied. That is, when the cu_sbt_flag value is “0”, it means that the sub-block transform (sbt), which undergoes the transformation process of only a part of the target block, is not applied.
  • step S1520 it can be determined whether the decoding object block can apply the explicit MTS through whether the condition of step S1520 is satisfied.
  • step S1510 If the condition of step S1510 is not satisfied, the image decoding apparatus sets the value of mts_idx to “0” (S1530), and ends the process.
  • the MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region.
  • MtsZerooutFlag has a value of “0” when at least one of the non-zero coefficients in the block is in the zero-out region, and all non-zero coefficients in the block are zero-out. If it does not exist in the region, MtsZerooutFlag may have a value of “1”. In this case, the value of MtsZerooutFlag may be determined by performing the process of FIG. 13 or FIG. 14 .
  • MtsDcOnlyFlag indicates whether there is one non-zero coefficient in the block and the position is DC. If there is one non-zero coefficient in the block and the position is DC, the MtsDcOnlyFlag has a value of “1”, and in other cases, MtsDcOnlyFlag has a value of “0”. In this case, the value of MtsDcOnlyFlag may be determined by performing the process of FIG. 17 .
  • step S1520 if the condition of step S1520 is not satisfied, the image decoding apparatus sets the value of mts_idx to “0” (S1530), and ends the process.
  • the image decoding apparatus parses mts_idx ( S1550 ), and ends the process.
  • the transformation type of the horizontal axis and the vertical axis according to the value of mts_idx may be allocated according to Table 5.
  • values of transform type in Table 5 mean trType values in Table 2. For example, when the mts_idx value is “2”, DCT-8 may be applied as a transform on the horizontal axis and DST-7 may be applied as a transform on the vertical axis.
  • step S1540 sets the value of mts_idx to “0” (S1530) and ends the process.
  • FIG. 16 illustrates a method of performing an inverse transform based on a transform-related parameter according to another embodiment of the present invention.
  • Each of the steps of FIG. 16 may be performed by an image decoding apparatus, for example, by an inverse transform unit of the decoding apparatus.
  • the image decoding apparatus acquires values of sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intrafla_subpartitions_mode_flag_flag, cu_sbt (S1610).
  • the image decoding apparatus obtains MtsZeroOutFlag and MtsDcOnlyFlag values (S1620).
  • the MtsZeroOutFlag may be obtained by performing the process of FIG. 13 or 14
  • MtsDcOnlyFlag may be obtained by performing the process of FIG. 12 .
  • the image decoding apparatus obtains an mts_idx value based on the parameters obtained in steps S1610 and S1620 ( S1630 ). That is, the image decoding apparatus obtains the MtsDcTsZeroOutlyFlagx values based on sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, MtsDcOnlyFlag_, MtsDcOnlyFlag_based.
  • mts_idx may be obtained by performing the process of FIG. 15 .
  • the image decoding apparatus performs inverse transform based on mts_idx (S1640).
  • An inverse transform applied according to the mts_idx value may be configured according to Tables 5 and 2. For example, when the mts_idx value is “2”, DCT-8 may be applied in the horizontal axis direction and DST-7 may be applied in the vertical axis direction.
  • Embodiments described in this document may be implemented and performed on a processor, microprocessor, controller, or chip.
  • the functional units shown in each figure may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip.
  • information for implementation (ex. information on instructions) or an algorithm may be stored in a digital storage medium.
  • the decoding device and the encoding device to which the present invention is applied are a multimedia broadcasting transmission/reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication device, and a mobile streaming device.
  • Device storage medium, camcorder, video on demand (VoD) service providing device, OTT video (Over the top video) device, internet streaming service providing device, three-dimensional (3D) video device, videophone video device, vehicle terminal (ex) It may be included in a vehicle terminal, an airplane terminal, a ship terminal, etc.) and a medical video device, and may be used to process a video signal or a data signal.
  • the OTT video (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smart phone, a tablet PC, a digital video recorder (DVR), and the like.
  • a game console a Blu-ray player
  • an Internet-connected TV a home theater system
  • a smart phone a tablet PC
  • DVR digital video recorder
  • the processing method to which the present invention is applied may be produced in the form of a program executed by a computer, and may be stored in a computer-readable recording medium.
  • Multimedia data having a data structure according to the present invention may also be stored in a computer-readable recording medium.
  • the computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored.
  • the computer-readable recording medium is, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical It may include a data storage device.
  • the computer-readable recording medium includes a medium implemented in the form of a carrier wave (eg, transmission through the Internet).
  • the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired/wireless communication network.
  • an embodiment of the present invention may be implemented as a computer program product by program code, and the program code may be executed in a computer according to an embodiment of the present invention.
  • the program code may be stored on a carrier readable by a computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Provided are an image decoding method and device. This specification provides an image decoding method comprising the steps of: acquiring a parameter indicating whether a multiple transform set is applicable to a block to be decoded, as well as information about the width of the block to be decoded and the height of the block to be decoded; determining the transform type of the block to be decoded on the basis of at least one of the parameter indicating whether a multiple transform set is applicable, or the information about the width and height of the block to be decoded, and setting a zero-out region of the block to be decoded; and inverse-transforming the block to be decoded on the basis of the zero-out region of the block to be decoded and the result of determining the transform type.

Description

영상의 복호화 방법 및 장치Video decoding method and apparatus
본 발명은 비디오 코딩 기술에 관한 것으로서 보다 상세하게는 영상의 복호화 과정 중 복호화 대상 블록의 일차 변환(primary transform)의 타입을 결정하는 방법에 관한 것이다.The present invention relates to video coding technology, and more particularly, to a method of determining the type of a primary transform of a decoding object block during an image decoding process.
최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도, 고품질의 영상에 대한 수요가 다양한 분야에서 증가하고 있다. 영상 데이터가 고해상도, 고품질이 될수록 기존의 영상 데이터에 비해 상대적으로 전송되는 정보량 또는 비트량이 증가하기 때문에 기존의 유무선 광대역 회선과 같은 매체를 이용하여 영상 데이터를 저장하는 경우, 전송 비용과 저장 비용이 증가된다.Recently, demand for high-resolution and high-quality images, such as high definition (HD) images and ultra high definition (UHD) images, is increasing in various fields. Since the amount of information or bits to be transmitted increases as the image data becomes high-resolution and high-quality, the transmission and storage costs increase when using a medium such as a conventional wired/wireless broadband line to store image data. do.
2013년 HEVC 비디오 코덱 제정 이후, 4K, 8K를 비디오 영상을 이용한 실감 영상 및 가상 현실 서비스 등이 확대됨에 따라 HEVC 대비 2배 이상 성능개선을 목표로 하는 차세대 비디오 코덱인 VVC(Versatile Video Coding) 표준화 작업을 착수하게 되었고 현재는 표준화 작업이 활발히 진행 중에 있다. VVC는 비디오 부호화 표준화 그룹인 ISO/ICE MPEG(Moving Picture Experts Group)과 ITU-T VCEG(Video Coding Experts Group)이 공동으로 구성한 JVET(Joint Video Exploration Team)에서 HEVC 대비 2배 이상의 부호화 압축 성능 개선을 목표로 개발 중이다. VVC 표준화는 2018년 1월 121차 광주 MPEG, 9차 JVET 회의에서 제안 요청서(Call for proposal)를 발표하였고, 122차 샌디에고 MPEG 및 10차 JVET회의에서 총 23개의 기관들이 비디오 코덱 기술을 제안함으로써 본격적인 비디오 표준화가 시작되었다. 122차 MPEG 및 10차 JVET 회의에서는 각 기관으로부터 제안된 비디오 코덱 기술들에 대한 기술 검토와 객관적 압축 성능 및 주관적 화질 평가를 수행하였으며, 여러 기술들 중에서 일부를 채택하여 Working Draft(WD) 1.0과 비디오 참조 소프트웨어인 VTM(VVC Test Mode) 1.0을 발표하였다. VVC 표준은 2019년 7월 127차 MPEG 및 15차 JVET회의 종료 이후 Committee Draft(CD)가 완성되었으며, 2020년 10 월 Final Draft International Standard(FDIS)를 제정하는 것을 목표로 표준화가 진행 중이다.Since the HEVC video codec was enacted in 2013, as immersive video and virtual reality services using 4K and 8K video images have been expanded, standardization work for VVC (Versatile Video Coding), a next-generation video codec that aims to improve performance by more than twice compared to HEVC standardization work is currently in progress. VVC is a video encoding standardization group ISO/ICE MPEG (Moving Picture Experts Group) and ITU-T VCEG (Joint Video Exploration Team) jointly organized by JVET (Joint Video Exploration Team) to improve encoding compression performance more than twice compared to HEVC. target is being developed. VVC standardization announced a call for proposal at the 121st MPEG and 9th JVET meeting in Gwangju in January 2018, and a total of 23 organizations proposed video codec technology at the 122nd MPEG and 10th JVET meeting in San Diego. Video standardization has begun. At the 122nd MPEG and 10th JVET meeting, technical review on video codec technologies proposed by each institution and objective compression performance and subjective quality evaluation were performed. The reference software VTM (VVC Test Mode) 1.0 was released. As for the VVC standard, the Committee Draft (CD) was completed after the end of the 127th MPEG and 15th JVET meeting in July 2019, and standardization is in progress with the goal of enacting the Final Draft International Standard (FDIS) in October 2020.
기존 HEVC에서 쿼드트리(Quadtree)로 계층적으로 분할하는 부호화 구조에서 VVC에서는 QTBT(QuadTree Binary Tree)와 TT(Ternary Tree)를 결합한 분할 블록 구조를 채택하였다. 이것은 HEVC 대비 보다 유연하게 예측 잔차신호를 발생하거나 처리할 수 있도록 하여, HEVC 대비 보다 향상된 압축 성능을 가져올 수 있었다. 이러한 기본 블록 구조 이외에, 적응적 루프 필터 기술(ALF, Adaptive Loop Filter), 움직임 예측 기술로서 AMP(Affine Motion Prediction), 디코더 움직임 보정 기술(DMVR, Decoder-side Motion Vector Refinement) 등 기존 코덱에서는 사용되지 않았던 새로운 기술들이 표준 기술로 채택되었다. 변환 및 양자화 기술로서는 기존 비디오 코덱에서 주로 사용되었던 변환 커널인 DCT-II가 계속적으로 이용되고 있으며 적용 블록의 크기가 더 큰 블록 크기까지 적용하는 것으로 변경되었다. 또한 기존 HEVC에서 4×4와 같은 작은 변환 블록에 대하여 적용되어 왔던 DST-7 커널을 큰 변환 블록까지 확대되었으며, 새로운 변환 커널인 DCT-8까지 변환 커널로 추가되었다.In the coding structure hierarchically split into quadtrees in HEVC, a split block structure that combines QTBT (QuadTree Binary Tree) and TT (Ternary Tree) is adopted in VVC. This could generate or process the prediction residual signal more flexibly compared to HEVC, resulting in improved compression performance compared to HEVC. In addition to this basic block structure, it is not used in existing codecs such as adaptive loop filter technology (ALF), AMP (Affine Motion Prediction) as a motion prediction technology, and decoder-side motion vector refinement (DMVR). New technologies that did not exist were adopted as standard technologies. As a transform and quantization technique, DCT-II, a transform kernel mainly used in existing video codecs, is continuously used, and the size of the applied block has been changed to apply up to a larger block size. In addition, the DST-7 kernel, which has been applied to small transform blocks such as 4×4 in existing HEVC, has been extended to large transform blocks, and a new transform kernel, DCT-8, has been added as a transform kernel.
한편, HEVC 표준에서는 영상을 인코딩 또는 디코딩하는 경우에 하나의 변환 타입을 사용하여 변환을 수행하기 때문에 영상에 대한 변환 타입에 대한 정보를 전송할 필요가 없었으나, 새로운 기술에서는 DCT-II, DCT-8, DCT-7을 사용하는 다중 변환 선택(Multiple Transform Selection)이 적용될 수 있어, 디코딩 시 MTS를 적용할지 여부 및 어떠한 일차변환 타입이 적용될지 여부를 정의하기 위한 기술이 요구되고 있는 실정이다.Meanwhile, in the HEVC standard, there is no need to transmit information on a transform type for an image because transform is performed using one transform type when encoding or decoding an image. However, in the new technology, DCT-II and DCT-8 , Multiple Transform Selection using DCT-7 can be applied, so a technique for defining whether or not to apply MTS and which type of linear transformation is applied during decoding is required.
본 발명의 기술적 과제는 특정 조건에 따라 미리 정의된 방법으로 역변환을 수행하기 위함에 있다.An object of the present invention is to perform inverse transformation in a predefined method according to specific conditions.
본 발명의 다른 기술적 과제는 복호화 대상 블록에 최적화된 변환 타입을 적용하여 복호화를 수행함에 있다.Another technical object of the present invention is to perform decoding by applying a transform type optimized to a decoding object block.
본 발명의 일 양태에 따르면, 영상 복호화 장치에 의해 수행되는 영상 복호화 방법이 제공된다. 상기 영상 복호화 방법은 복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보를 획득하는 단계, 상기 복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록의 변환 타입을 판단하는 단계, 상기 복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록의 제로-아웃 영역을 설정하는 단계 및 상기 복호화 대상 블록의 제로-아웃 영역 및 변환 타입에 대한 판단 결과에 기반하여 상기 복호화 대상 블록에 대한 역변환을 수행하는 단계를 포함한다.According to an aspect of the present invention, there is provided an image decoding method performed by an image decoding apparatus. The image decoding method includes: obtaining information about a parameter indicating whether multiple transform set (MTS) is applicable to a decoding object block, a width of the decoding object block, and a height of the decoding object block; Based on at least one of a parameter indicating whether multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information about a height of the decoding object block Determining a transform type, at least one of a parameter indicating whether a multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information on a height of the decoding object block setting a zero-out region of the decoding object block based on .
본 발명의 다른 양태에 따르면, 상기 복호화 대상 블록의 변환 타입을 판단하는 단계에서, 상기 복호화 대상 블록의 너비 또는 높이 중 적어도 하나가 32보다 큰 값을 갖는 경우, 상기 복호화 대상 블록은 디폴트 변환을 사용하여 변환된 것으로 판단한다.According to another aspect of the present invention, in the step of determining the transformation type of the decoding object block, if at least one of a width or a height of the decoding object block has a value greater than 32, the decoding object block uses a default transformation to be considered converted.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록의 제로-아웃 영역을 설정하는 단계에서, 상기 복호화 대상 블록의 너비 또는 높이 중 하나가 32보다 큰 값을 갖는 경우, 상기 복호화 대상 블록의 너비 또는 높이가 32 보다 큰 영역을 제로-아웃 영역으로 설정한다.According to another aspect of the present invention, in the step of setting the zero-out area of the decoding object block, when one of the width or the height of the decoding object block has a value greater than 32, the width of the decoding object block or The area with a height greater than 32 is set as the zero-out area.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록에 대한 다중 변환 집합 적용 가능 여부를 지시하는 파라미터는 sps_mts_enabled_flag 이다.According to another aspect of the present invention, a parameter indicating whether multiple transform sets can be applied to the decoding object block is sps_mts_enabled_flag.
본 발명의 또 다른 양태에 따르면, 영상 복호화 장치에 의해 수행되는 영상 복호화 방법이 제공된다. 상기 영상 복호화 방법은 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보, 상기 복호화 대상 블록의 크기에 관한 정보 중 적어도 하나를 획득하는 단계, 상기 복호화 대상 블록의 다중 변환 집합 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계, 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부에 관한 정보 및 상기 복호화 대상 블록의 크기에 관한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계 및 상기 변환 타입에 관한 정보를 기반으로 역변환을 수행하는 단계를 포함한다.According to another aspect of the present invention, there is provided an image decoding method performed by an image decoding apparatus. The image decoding method includes information on whether a multiple transform set (MTS) is applied to a decoding object block, information on a prediction mode, information on whether to apply a secondary transform, information on whether prediction using a matrix is applied, and the Obtaining at least one of information on the size of the decoding object block, information on whether a multiple transform set is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, whether prediction using a matrix is applied determining whether an implicit multiple transform set is applied to the decoding object block based on at least one of information on obtaining information about a transform type based on information about
본 발명의 또 다른 양태에 따르면, 상기 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계는, 상기 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보를 이용하여 상기 묵시적 다중 변환 집합이 적용되는지 여부를 판단한다.According to another aspect of the present invention, the determining whether the implicit multiple transform set is applied may include information on whether a multiple transform set (MTS) is applied to the decoding object block, and information on a prediction mode. , it is determined whether the implicit multiple transform set is applied using information on whether or not the quadratic transform is applied and whether or not prediction using a matrix is applied.
본 발명의 또 다른 양태에 따르면, 상기 묵시적 다중 변환 집합은 하나의 디폴트 변환(default transform) 및 적어도 하나 이상의 추가 변환(extra transform)을 포함한다.According to another aspect of the present invention, the set of implicit multiple transforms includes one default transform and at least one extra transform.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록의 크기에 대한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계는, 상기 복호화 대상 블록의 가로축 길이가 모두 4 이상 16 인 경우, 상기 복호화 대상 블록은 상기 가로축 방향에 대하여 추가 변환 타입(extra transform type) 중 적어도 하나가 적용된다. According to another aspect of the present invention, the step of obtaining information on the transformation type based on the information on the size of the decoding object block may include, when all of the horizontal axis lengths of the decoding object block are 4 or more and 16, the decoding object At least one of an extra transform type is applied to the block in the horizontal axis direction.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록의 크기에 대한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계는, 상기 복호화 대상 블록의 세로축 길이가 모두 4 이상 16 이하 인 경우, 상기 복호화 대상 블록은 상기 세로축 방향에 대하여 추가 변환 타입(extra transform type) 중 적어도 하나가 적용된다.According to another aspect of the present invention, the step of obtaining information on the transformation type based on the information on the size of the decoding object block may include, when all of the vertical axis lengths of the decoding object block are 4 or more and 16 or less, the decoding At least one of extra transform types is applied to the target block in the vertical direction.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보는 sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag 중 적어도 하나를 포함한다.According to another aspect of the present invention, the information on whether multiple transform set (MTS) is applied to the decoding object block includes at least one of sps_mts_enabled_flag and sps_explicit_mts_intra_enabled_flag.
본 발명의 또 다른 양태에 따르면, 상기 예측 모드에 대한 정보는 CuPredMode 를 포함한다.According to another aspect of the present invention, the information on the prediction mode includes CuPredMode.
본 발명의 또 다른 양태에 따르면, 상기 이차 변환 적용 여부에 대한 정보는 lfnst_idx를 포함한다.According to another aspect of the present invention, the information on whether the quadratic transform is applied includes lfnst_idx.
본 발명의 또 다른 양태에 따르면, 상기 행렬을 이용한 예측 적용 여부에 대한 정보는 intra_mip_flag를 포함한다.According to another aspect of the present invention, information on whether prediction using the matrix is applied includes intra_mip_flag.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록의 변환 타입에 대한 정보는 각각 가로축 변환 타입에 대한 정보 및 세로축 변환 타입에 대한 정보를 포함한다.According to another aspect of the present invention, the information on the transformation type of the decoding object block includes information on a horizontal-axis transformation type and information on a vertical-axis transformation type, respectively.
본 발명의 또 다른 양태에 따르면, 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계는 상기 복호화 대상 블록이 루마(luma) 블록인지 여부를 추가로 확인함으로써 획득된다.According to another aspect of the present invention, the step of determining whether an implicit multiple transform set is applied to the decoding object block is obtained by additionally checking whether the decoding object block is a luma block.
본 발명의 또 다른 양태에 따르면, 메모리 및 적어도 하나의 프로세서를 포함하는 영상 복호화 장치가 제공된다. 상기 영상 복호화 장치는 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보, 상기 복호화 대상 블록의 크기에 관한 정보 중 적어도 하나를 획득하고, 상기 복호화 대상 블록의 다중 변환 집합 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하고, 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부에 관한 정보 및 상기 복호화 대상 블록의 크기에 관한 정보를 기반으로 변환 타입에 관한 정보를 획득하고, 상기 변환 타입에 관한 정보를 기반으로 역변환을 수행하는 역변환부를 포함하는 적어도 하나의 프로세서를 포함한다.According to another aspect of the present invention, there is provided an image decoding apparatus including a memory and at least one processor. The image decoding apparatus includes information on whether a multiple transform set (MTS) is applied to a decoding object block, information on a prediction mode, information on whether a secondary transform is applied, information on whether prediction using a matrix is applied, and the Obtaining at least one of information on the size of the decoding object block, information on whether multiple transform sets are applied to the decoding object block, information on prediction mode, information on whether to apply a secondary transform, and whether or not prediction using a matrix is applied It is determined whether an implicit multiple transform set is applied to the decoding object block based on at least one of information about and at least one processor including an inverse transform unit that obtains information on a transform type based on the information and performs an inverse transform based on the information on the transform type.
본 발명에 따르면, 특정 조건에 따라 미리 정의된 방법으로 역변환을 수행할 수 있다.According to the present invention, the inverse transformation can be performed in a predefined method according to specific conditions.
또한, 복호화 대상 블록에 최적화된 변환 타입을 적용하여 복호화를 수행함으로써 압축 성능의 개선 효과를 기대할 수 있다.In addition, an effect of improving compression performance can be expected by performing decoding by applying a transform type optimized to a decoding target block.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention can be applied.
도 2는 비디오 인코딩 장치에 의하여 수행되는 영상 인코딩 방법의 일 예를 나타낸다.2 illustrates an example of an image encoding method performed by a video encoding apparatus.
도 3은 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.3 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
도 4는 디코딩 장치에 의하여 수행되는 영상 디코딩 방법의 일 예를 나타낸다.4 shows an example of an image decoding method performed by a decoding apparatus.
도 5는 대각(diagonal) 스캔 방식에 대한 서브-블록(sub-block) 및 계수들의 스캔 순서를 나타낸다. 5 shows a scan order of sub-blocks and coefficients for a diagonal scan scheme.
도 6은 양자화된 후의 32×32 부호화 대상 블록의 일례를 나타낸다. 6 shows an example of a 32x32 encoding target block after quantization.
도 7은 MxN 복호화 대상 블록의 영역 중 mxn을 제외한 나머지 제로-아웃(zero-out) 영역을 도시한다.7 illustrates the remaining zero-out areas excluding mxn among the areas of the MxN decoding object block.
도 8은 본 발명의 일실시예에 따른 묵시적 MTS 기능 적용 여부의 결정 방법을 나타낸다.8 illustrates a method of determining whether to apply an implicit MTS function according to an embodiment of the present invention.
도 9는 본 발명의 일실시예에 따른 묵시적 MTS의 해당 블록의 너비 및 높이에 따른 변환 정보를 유도하는 방법을 나타낸다.9 shows a method of deriving transformation information according to the width and height of the corresponding block of the implicit MTS according to an embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 변환 관련 파라미터에 기반한 역변환 수행 방법을 나타낸다.10 illustrates a method of performing an inverse transform based on a transform-related parameter according to an embodiment of the present invention.
도 11은 32x32 복호화 대상 블록 내에서 굵은 선으로 마킹한 유효(valid) MTS 영역을 도시한다.11 shows a valid MTS area marked with a thick line in a 32x32 decoding object block.
도 12는 본 발명의 일실시예에 따른 유효(valid) MTS를 판단 방법을 나타낸다.12 shows a method of determining a valid MTS according to an embodiment of the present invention.
도 13은 본 발명의 다른 실시예에 따른 유효(valid) MTS를 판단 방법을 나타낸다.13 illustrates a method of determining a valid MTS according to another embodiment of the present invention.
도 14는 본 발명의 또 다른 실시예에 따른 유효(valid) MTS를 판단 방법을 나타낸다. 14 illustrates a method of determining a valid MTS according to another embodiment of the present invention.
도 15는 본 발명의 일실시예에 따른 명시적 MTS 기능 적용 여부의 결정 방법을 나타낸다.15 illustrates a method of determining whether to apply an explicit MTS function according to an embodiment of the present invention.
도 16은 본 발명의 다른 실시예에 따른 변환 관련 파라미터에 기반한 역변환 수행 방법을 나타낸다.16 illustrates a method of performing an inverse transform based on a transform-related parameter according to another embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정 실시예에 한정하려고 하는 것이 아니다. 본 명세서에서 상용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 기술적 사상을 한정하려는 의도로 사용되는 것은 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 도는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the invention to a specific embodiment. Terms commonly used herein are used only to describe specific embodiments, and are not intended to limit the technical spirit of the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. As used herein, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification is present, and includes one or more other features or It is to be understood that the existence or addition of numbers, steps, operations, components, parts or combinations thereof is not precluded in advance.
한편, 본 발명에서 설명되는 도면상의 각 구성들은 서로 다른 특징적인 기능들에 관한 설명의 편의를 위해 독립적으로 도시된 것으로서, 각 구성들이 서로 별개의 하드웨어나 별개의 소프트웨어로 구현된다는 것을 의미하지는 않는다. 예컨대, 각 구성 중 두 개 이상의 구성이 합쳐져 하나의 구성을 이룰 수도 있고, 하나의 구성이 복수의 구성으로 나뉘어질 수도 있다. 각 구성이 통합 및/또는 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리범위에 포함된다.On the other hand, each component in the drawings described in the present invention is shown independently for the convenience of description regarding different characteristic functions, and does not mean that each component is implemented as separate hardware or separate software. For example, two or more components among each component may be combined to form one component, or one component may be divided into a plurality of components. Embodiments in which each component is integrated and/or separated are also included in the scope of the present invention without departing from the essence of the present invention.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same components in the drawings, and repeated descriptions of the same components are omitted.
한편, 본 발명은 비디오/영상 코딩에 관한 것이다. 예를 들어, 본 발명에서 개시된 방법/실시예는 VVC (versatile video coding) 표준, EVC (Essential Video Coding) 표준, AV1 (AOMedia Video 1) 표준, AVS2 (2nd generation of audio video coding standard) 또는 차세대 비디오/이미지 코딩 표준(예를 들어, H.267, H.268 등)에 개시된 방법에 적용될 수 있다.Meanwhile, the present invention relates to video/image coding. For example, the method/embodiment disclosed in the present invention may be a versatile video coding (VVC) standard, an Essential Video Coding (EVC) standard, an AOMedia Video 1 (AV1) standard, a 2nd generation of audio video coding standard (AVS2) or a next-generation video It can be applied to methods disclosed in /image coding standards (eg, H.267, H.268, etc.).
본 명세서에서 픽처(picture)는 일반적으로 특정 시간대의 하나의 영상을 나타내는 단위를 의미하며, 슬라이스(slice)는 코딩에 있어서 픽처의 일부를 구성하는 단위이다. 하나의 픽처는 복수의 슬라이스로 구성될 수 있으며, 필요에 따라서 픽처 및 슬라이스는 서로 혼용되어 사용될 수 있다.In the present specification, a picture generally refers to a unit representing one image in a specific time period, and a slice is a unit constituting a part of a picture in coding. One picture may consist of a plurality of slices, and if necessary, a picture and a slice may be used interchangeably.
픽셀(pixel) 또는 펠(pel)은 하나의 픽처(또는 영상)을 구성하는 최소의 단위를 의미할 수 있다. 또한, 픽셀에 대응하는 용어로서 '샘플(sample)'이 사용될 수 있다. 샘플은 일반적으로 픽셀 또는 픽셀의 값을 나타낼 수 있으며, 휘도(luma) 성분의 픽셀/픽셀값만을 나타낼 수도 있고, 채도(chroma) 성분의 픽셀/픽셀 값만을 나타낼 수도 있다.A pixel or pel may mean a minimum unit constituting one picture (or image). Also, as a term corresponding to a pixel, a 'sample' may be used. A sample may generally represent a pixel or a value of a pixel, may represent only a pixel/pixel value of a luma component, or may represent only a pixel/pixel value of a chroma component.
유닛(unit)은 영상 처리의 기본 단위를 나타낸다. 유닛은 픽처의 특정 영역 및 해당 영역에 관련된 정보 중 적어도 하나를 포함할 수 있다. 유닛은 경우에 따라서 블록(block) 또는 영역(area) 등의 용어와 혼용하여 사용될 수 있다. 일반적인 경우, MxN 블록은 M개의 열과 N개의 행으로 이루어진 샘플들 또는 변환 계수(transform coefficient)들의 집합을 나타낼 수 있다.A unit represents a basic unit of image processing. The unit may include at least one of a specific region of a picture and information related to the region. A unit may be used interchangeably with terms such as a block or an area in some cases. In general, an MxN block may represent a set of samples or transform coefficients including M columns and N rows.
도 1은 본 발명이 적용될 수 있는 비디오 인코딩 장치의 구성을 개략적으로 설명하는 도면이다.1 is a diagram schematically illustrating a configuration of a video encoding apparatus to which the present invention can be applied.
도 1을 참조하면, 비디오 인코딩 장치(100)는 픽처 분할부(105), 예측부(110), 레지듀얼 처리부(120), 엔트로피 인코딩부(130), 가산부(140), 필터부(150) 및 메모리(160)을 포함할 수 있다. 레지듀얼 처리부(120)는 감산부(121), 변환부(122), 양자화부(123), 재정렬부(124), 역양자화부(125) 및 역변환부(126)를 포함할 수 있다.Referring to FIG. 1 , the video encoding apparatus 100 includes a picture division unit 105 , a prediction unit 110 , a residual processing unit 120 , an entropy encoding unit 130 , an adder 140 , and a filter unit 150 . ) and a memory 160 . The residual processing unit 120 may include a subtraction unit 121 , a transform unit 122 , a quantization unit 123 , a rearrangement unit 124 , an inverse quantization unit 125 , and an inverse transform unit 126 .
픽처 분할부(105)는 입력된 픽처를 적어도 하나의 처리 유닛(processing unit)으로 분할할 수 있다.The picture divider 105 may divide the input picture into at least one processing unit.
일 예로, 처리 유닛은 코딩 유닛(coding unit, CU)이라고 불릴 수 있다. 이 경우 코딩 유닛은 코딩 트리 유닛(coding tree unit, CTU)으로부터 QTBT (Quad-tree binary-tree) 구조에 따라 재귀적으로(recursively) 분할될 수 있다. 예를 들어, 하나의 코딩 유닛은 쿼드 트리 구조 및/또는 바이너리 트리 구조를 기반으로 하위(deeper) 뎁스의 복수의 코딩 유닛들로 분할될 수 있다. 이 경우 예를 들어 쿼드 트리 구조가 먼저 적용되고 바이너리 트리 구조가 나중에 적용될 수 있다. 또는 바이너리 트리 구조가 먼저 적용될 수도 있다. 더 이상 분할되지 않는 최종 코딩 유닛을 기반으로 본 발명에 따른 코딩 절차가 수행될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 여기서 코딩 절차라 함은 후술하는 예측, 변환, 및 복원 등의 절차를 포함할 수 있다.As an example, the processing unit may be referred to as a coding unit (CU). In this case, the coding unit may be recursively divided from a coding tree unit (CTU) according to a quad-tree binary-tree (QTBT) structure. For example, one coding unit may be divided into a plurality of coding units having a lower depth based on a quad tree structure and/or a binary tree structure. In this case, for example, a quad tree structure may be applied first and a binary tree structure may be applied later. Alternatively, the binary tree structure may be applied first. The coding procedure according to the present invention may be performed based on the final coding unit that is no longer divided. In this case, the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary. A coding unit of the size of may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later.
다른 예로, 처리 유닛은 코딩 유닛(coding unit, CU) 예측 유닛(prediction unit, PU) 또는 변환 유닛(transform unit, TU)을 포함할 수도 있다. 코딩 유닛은 최대 코딩 유닛(largest coding unit, LCU)으로부터 쿼드 트리 구조를 따라서 하위(deeper) 뎁스의 코딩 유닛들로 분할(split)될 수 있다. 이 경우 영상 특성에 따른 코딩 효율 등을 기반으로, 최대 코딩 유닛이 바로 최종 코딩 유닛으로 사용될 수 있고, 또는 필요에 따라 코딩 유닛은 재귀적으로(recursively) 보다 하위 뎁스의 코딩 유닛들로 분할되어 최적의 사이즈의 코딩 유닛이 최종 코딩 유닛으로 사용될 수 있다. 최소 코딩 유닛(smallest coding unit, SCU)이 설정된 경우 코딩 유닛은 최소 코딩 유닛보다 더 작은 코딩 유닛으로 분할될 수 없다. 여기서 최종 코딩 유닛이라 함은 예측 유닛 또는 변환 유닛으로 파티셔닝 또는 분할되는 기반이 되는 코딩 유닛을 의미한다. 예측 유닛은 코딩 유닛으로부터 파티셔닝(partitioning)되는 유닛으로서, 샘플 예측의 유닛일 수 있다. 이 때, 예측 유닛은 서브 블록(sub block)으로 나뉠 수도 있다. 변환 유닛은 코딩 유닛으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 유닛 및/또는 변환 계수로부터 레지듀얼 신호(residual signal)를 유도하는 유닛일 수 있다. 이하, 코딩 유닛은 코딩 블록(coding block, CB), 예측 유닛은 예측 블록(prediction block, PB), 변환 유닛은 변환 블록(transform block, TB) 으로 불릴 수 있다. 예측 블록 또는 예측 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수 있고, 예측 샘플의 어레이(array)를 포함할 수 있다. 또한, 변환 블록 또는 변환 유닛은 픽처 내에서 블록 형태의 특정 영역을 의미할 수 있고, 변환 계수 또는 레지듀얼 샘플의 어레이를 포함할 수 있다.As another example, the processing unit may include a coding unit (CU), a prediction unit (PU), or a transform unit (TU). A coding unit may be split from a largest coding unit (LCU) into coding units of a lower depth along a quad tree structure. In this case, the maximum coding unit may be directly used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units having a lower depth than the optimal coding unit if necessary. A coding unit of the size of may be used as the final coding unit. When a smallest coding unit (SCU) is set, the coding unit cannot be divided into a coding unit smaller than the smallest coding unit. Herein, the final coding unit means a coding unit that is a base that is partitioned or divided into a prediction unit or a transform unit. A prediction unit is a unit partitioned from a coding unit, and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub-blocks. A transform unit may be divided along a quad tree structure from a coding unit, and may be a unit deriving a transform coefficient and/or a unit deriving a residual signal from the transform coefficient. Hereinafter, the coding unit may be referred to as a coding block (CB), the prediction unit may be referred to as a prediction block (PB), and the transform unit may be referred to as a transform block (TB). A prediction block or a prediction unit may mean a specific area in the form of a block within a picture, and may include an array of prediction samples. In addition, a transform block or transform unit may mean a specific block-shaped region within a picture, and may include transform coefficients or an array of residual samples.
예측부(110)는 처리 대상 블록(이하, 현재 블록이라 함)에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(110)에서 수행되는 예측의 단위는 코딩 블록일 수 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.The prediction unit 110 may perform prediction on a processing target block (hereinafter, referred to as a current block) and generate a predicted block including prediction samples for the current block. A unit of prediction performed by the prediction unit 110 may be a coding block, a transform block, or a prediction block.
예측부(110)는 현재 블록에 인트라 예측이 적용되는지 인터 예측이 적용되는지를 결정할 수 있다. 일 예로, 예측부(110)는 CU 단위로 인트라 예측 또는 인터 예측이 적용되는지를 결정할 수 있다.The prediction unit 110 may determine whether intra prediction or inter prediction is applied to the current block. For example, the prediction unit 110 may determine whether intra prediction or inter prediction is applied in units of CUs.
인트라 예측의 경우에, 예측부(110)는 현재 블록이 속하는 픽처(이하, 현재 픽처) 내의 현재 블록 외부의 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이 때, 예측부(110)는 (i) 현재 블록의 주변(neighboring) 참조 샘플들의 평균(average) 혹은 인터폴레이션(interpolation)을 기반으로 예측 샘플을 유도할 수 있고, (ii) 현재 블록의 주변 참조 샘플들 중 예측 샘플에 대하여 특정 (예측) 방향에 존재하는 참조 샘플을 기반으로 상기 예측 샘플을 유도할 수도 있다. (i)의 경우는 비방향성 모드 또는 비각도 모드, (ii)의 경우는 방향성(directional) 모드 또는 각도(angular) 모드라고 불릴 수 있다. 인트라 예측에서 예측 모드는 예를 들어 33개의 방향성 예측 모드와 적어도 2개 이상의 비방향성 모드를 가질 수 있다. 비방향성 모드는 DC 예측 모드 및 플래너 모드(Planar 모드)를 포함할 수 있다. 예측부(110)는 주변 블록에 적용된 예측 모드를 이용하여, 현재 블록에 적용되는 예측 모드를 결정할 수도 있다.In the case of intra prediction, the prediction unit 110 may derive a prediction sample for the current block based on a reference sample outside the current block in a picture to which the current block belongs (hereinafter, referred to as a current picture). In this case, the prediction unit 110 may (i) derive a prediction sample based on an average or interpolation of neighboring reference samples of the current block, and (ii) a neighboring reference of the current block. The prediction sample may be derived based on a reference sample existing in a specific (prediction) direction with respect to the prediction sample among the samples. The case of (i) may be called a non-directional mode or a non-angular mode, and the case of (ii) may be called a directional mode or an angular mode. In intra prediction, a prediction mode may have, for example, 33 directional prediction modes and at least two or more non-directional modes. The non-directional mode may include a DC prediction mode and a planar mode (Planar mode). The prediction unit 110 may determine the prediction mode applied to the current block by using the prediction mode applied to the neighboring block.
인터 예측의 경우에, 예측부(110)는 참조 픽처 상에서 움직임 벡터에 의해 특정되는 샘플을 기반으로, 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(110)는 스킵(skip) 모드, 머지(merge) 모드, 및 MVP(motion vector prediction) 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 스킵 모드와 머지 모드의 경우에, 예측부(110)는 주변 블록의 움직임 정보를 현재 블록의 움직임 정보로 이용할 수 있다. 스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차(레지듀얼)가 전송되지 않는다. MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(Motion Vector Predictor)로 이용하여 현재 블록의 움직임 벡터 예측자로 이용하여 현재 블록의 움직임 벡터를 유도할 수 있다.In the case of inter prediction, the prediction unit 110 may derive a prediction sample for the current block based on a sample specified by a motion vector on a reference picture. The prediction unit 110 may derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and a motion vector prediction (MVP) mode. In the skip mode and merge mode, the prediction unit 110 may use motion information of a neighboring block as motion information of the current block. In the skip mode, unlike the merge mode, the difference (residual) between the predicted sample and the original sample is not transmitted. In the MVP mode, the motion vector of the current block may be derived by using the motion vector of the neighboring block as a motion vector predictor of the current block.
인터 예측의 경우에, 주변 블록은 현재 픽처 내에 존재하는 공간적 주변 블록(spatial neighboring block)과 참조 픽처(reference picture)에 존재하는 시간적 주변 블록(temporal neighboring block)을 포함할 수 있다. 상기 시간적 주변 블록을 포함하는 참조 픽처는 동일 위치 픽처(collocated picture, colPic)라고 불릴 수도 있다. 움직임 정보(motion information)는 움직임 벡터와 참조 픽처 인덱스를 포함할 수 있다. 예측 모드 정보와 움직임 정보 등의 정보는 (엔트로피) 인코딩되어 비트스트림 형태로 출력될 수 있다.In the case of inter prediction, a neighboring block may include a spatial neighboring block existing in the current picture and a temporal neighboring block present in a reference picture. The reference picture including the temporal neighboring block may be referred to as a collocated picture (colPic). Motion information may include a motion vector and a reference picture index. Information such as prediction mode information and motion information may be (entropy) encoded and output in the form of a bitstream.
스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트(reference picture list) 상의 최상위 픽처가 참조 픽처로서 이용될 수도 있다. 참조 픽처 리스트에 포함되는 참조 픽처들은 현재 픽처와 해당 참조 픽처 간의 POC(Picture order count) 차이 기반으로 정렬될 수 있다. POC는 픽처의 디스플레이 순서에 대응하며, 코딩 순서와 구분될 수 있다.When motion information of a temporal neighboring block is used in the skip mode and the merge mode, the highest picture on a reference picture list may be used as a reference picture. Reference pictures included in the reference picture list may be sorted based on a picture order count (POC) difference between the current picture and the corresponding reference picture. The POC corresponds to the display order of the picture and may be distinguished from the coding order.
감산부(121)는 원본 샘플과 예측 샘플 간의 차이인 레지듀얼 샘플을 생성한다. 스킵 모드가 적용되는 경우에는, 상술한 바와 같이 레지듀얼 샘플을 생성하지 않을 수 있다.The subtraction unit 121 generates a residual sample that is a difference between an original sample and a predicted sample. When the skip mode is applied, the residual sample may not be generated as described above.
변환부(122)는 변환 블록 단위로 레지듀얼 샘플을 변환하여 변환 계수(transform coefficient)를 생성한다. 변환부(122)는 해당 변환 블록의 사이즈와, 해당 변환 블록과 공간적으로 겹치는 코딩 블록 또는 예측 블록에 적용된 예측 모드에 따라서 변환을 수행할 수 있다. 예컨대, 상기 변환 블록과 겹치는 상기 코딩 블록 또는 상기 예측 블록에 인트라 예측이 적용되었고, 상기 변환 블록이 4×4의 레지듀얼 어레이(array)라면, 레지듀얼 샘플은 DST(Discrete Sine Transform) 변환 커널을 이용하여 변환되고, 그 외의 경우라면 레지듀얼 샘플은 DCT(Discrete Cosine Transform) 변환 커널을 이용하여 변환할 수 있다.The transform unit 122 generates transform coefficients by transforming residual samples in units of transform blocks. The transform unit 122 may perform transform according to the size of the corresponding transform block and the prediction mode applied to the coding block or prediction block spatially overlapping the corresponding transform block. For example, if intra prediction is applied to the coding block or the prediction block overlapping the transform block, and the transform block is a 4×4 residual array, the residual sample is a Discrete Sine Transform (DST) transform kernel. In other cases, the residual sample may be transformed using a DCT (Discrete Cosine Transform) transformation kernel.
양자화부(123)는 변환 계수들을 양자화하여, 양자화된 변환 계수를 생성할 수 있다.The quantizer 123 may quantize the transform coefficients to generate a quantized transform coefficient.
재정렬부(124)는 양자화된 변환 계수를 재정렬한다. 재정렬부(124)는 계수들 스캐닝(scanning) 방법을 통해 블록 형태의 양자화된 변환 계수들을 1차원 벡터 형태로 재정렬할 수 있다. 여기서 재정렬부(124)는 별도의 구성으로 설명하였으나, 재정렬부(124)는 양자화부(123)의 일부일 수 있다.The rearrangement unit 124 rearranges the quantized transform coefficients. The reordering unit 124 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form through a coefficient scanning method. Here, although the rearrangement unit 124 has been described as a separate configuration, the rearrangement unit 124 may be a part of the quantization unit 123 .
엔트로피 인코딩부(130)는 양자화된 변환 계수들에 대한 엔트로피 인코딩을 수행할 수 있다. 엔트로피 인코딩은 예를 들어 지수 골롬(exponential Golomb), CAVLC(context-adaptive variable length coding), CABAC(context-adaptive binary arithmetic coding) 등과 같은 인코딩 방법을 포함할 수 있다. 엔트로피 인코딩부(130)는 양자화된 변환 계수 외 비디오 복원에 필요한 정보들(예컨대 신택스 요소(syntax element)의 값 등)을 함께 또는 별도로 인코딩할 수도 있다. 엔트로피 인코딩된 정보들은 비트스트림 형태로 NAL(network abstraction layer) 유닛 단위로 전송 또는 저장될 수 있다.The entropy encoding unit 130 may perform entropy encoding on the quantized transform coefficients. Entropy encoding may include, for example, an encoding method such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoding unit 130 may encode information necessary for video reconstruction (eg, a value of a syntax element, etc.) other than the quantized transform coefficient together or separately. Entropy-encoded information may be transmitted or stored in a network abstraction layer (NAL) unit unit in the form of a bitstream.
역양자화부(125)는 양자화부(123)에서 양자화된 값(양자화된 변환 계수)들을 역양자화하고, 역변환부(126)는 역양자화부(125)에서 역양자화된 값들을 역변환하여 레지듀얼 샘플을 생성한다.The inverse quantization unit 125 inversely quantizes the values (quantized transform coefficients) quantized by the quantization unit 123 , and the inverse transform unit 126 inversely transforms the values inversely quantized by the inverse quantization unit 125 to obtain a residual sample. create
가산부(140)는 레지듀얼 샘플과 예측 샘플을 합쳐서 픽처를 복원한다. 레지듀얼 샘플과 예측 샘플은 블록 단위로 더해져서 복원 블록이 생성될 수 있다. 여기서 가산부(140)는 별도의 구성으로 설명하였으나, 가산부(140)는 예측부(110)의 일부일 수 있다. 한편, 가산부(140)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.The adder 140 reconstructs a picture by combining the residual sample and the prediction sample. A reconstructed block may be generated by adding the residual sample and the prediction sample in units of blocks. Here, the adder 140 has been described as a separate configuration, but the adder 140 may be a part of the prediction unit 110 . Meanwhile, the adder 140 may be referred to as a restoration unit or a restoration block generator.
복원된 픽처(reconstructed picture)에 대하여 필터부(150)는 디블록킹 필터 및/또는 샘플 적응적 오프셋(sample adaptive offset)을 적용할 수 있다. 디블록킹 필터링 및/또는 샘플 적응적 오프셋을 통해, 복원 픽처 내 블록 경계의 아티팩트나 양자화 과정에서의 왜곡이 보정될 수 있다. 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링의 과정이 완료된 후 적용될 수 있다. 필터부(150)는 ALF(Adaptive Loop Filter)를 복원된 픽처에 적용할 수도 있다. ALF는 디블록킹 필터 및/또는 샘플 적응적 오프셋이 적용된 후의 복원된 픽처에 대하여 적용될 수 있다.The filter unit 150 may apply a deblocking filter and/or a sample adaptive offset to a reconstructed picture. Artifacts of block boundaries in the reconstructed picture or distortion in the quantization process may be corrected through deblocking filtering and/or sample adaptive offset. The sample adaptive offset may be applied in units of samples, and may be applied after the process of deblocking filtering is completed. The filter unit 150 may apply an adaptive loop filter (ALF) to the reconstructed picture. ALF may be applied to the reconstructed picture after the deblocking filter and/or sample adaptive offset is applied.
메모리(160)는 복원 픽처(디코딩된 픽처) 또는 인코딩/디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(150)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 상기 저장된 복원 픽처는 다른 픽처의 (인터) 예측을 위한 참조 픽처로 활용될 수 있다. 예컨대, 메모리(160)는 인터 예측에 사용되는 (참조) 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트(reference picture set) 혹은 참조 픽처 리스트(reference picture list)에 의해 지정될 수 있다.The memory 160 may store a reconstructed picture (a decoded picture) or information required for encoding/decoding. Here, the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 150 . The stored reconstructed picture may be used as a reference picture for (inter) prediction of another picture. For example, the memory 160 may store (reference) pictures used for inter prediction. In this case, pictures used for inter prediction may be designated by a reference picture set or a reference picture list.
도 2는 비디오 인코딩 장치에 의하여 수행되는 영상 인코딩 방법의 일 예를 나타낸다. 도 2를 참조하면 상기 영상 인코딩 방법은 블록 파티셔닝(block partitioning), 인트라/인터 예측, 변환(transform), 양자화(quantization) 및 엔트로피 인코딩(entropy encoding) 과정을 포함할 수 있다. 예를 들어, 현재 픽처는 복수의 블록들로 분할될 수 있고, 인트라/인터 예측을 통하여 현재 블록의 예측 블록이 생성될 수 있고, 상기 현재 블록의 입력 블록과 상기 예측 블록과의 감산을 통하여 상기 현재 블록의 레지듀얼 블록이 생성될 수 있다. 이 후, 상기 레지듀얼 블록에 대한 변환을 통하여 계수(coefficent) 블록, 즉, 상기 현재 블록의 변환 계수들이 생성될 수 있다. 상기 변환 계수들은 양자화 및 엔트로피 인코딩되어 비트스트림에 저장될 수 있다.2 illustrates an example of an image encoding method performed by a video encoding apparatus. Referring to FIG. 2 , the image encoding method may include block partitioning, intra/inter prediction, transform, quantization, and entropy encoding. For example, the current picture may be divided into a plurality of blocks, a prediction block of the current block may be generated through intra/inter prediction, and the input block of the current block may be subtracted from the prediction block. A residual block of the current block may be generated. Thereafter, a coefficient block, ie, transform coefficients of the current block, may be generated by transforming the residual block. The transform coefficients may be quantized and entropy encoded and stored in a bitstream.
도 3은 본 발명이 적용될 수 있는 비디오 디코딩 장치의 구성을 개략적으로 설명하는 도면이다.3 is a diagram schematically illustrating a configuration of a video decoding apparatus to which the present invention can be applied.
도 3을 참조하면, 비디오 디코딩 장치(300)는 엔트로피 디코딩부(310), 레지듀얼 처리부(320), 예측부(330), 가산부(340), 필터부(350) 및 메모리(360)를 포함할 수 있다. 여기서 레지듀얼 처리부(320)는 재정렬부(321), 역양자화부(322), 역변환부(323)을 포함할 수 있다.Referring to FIG. 3 , the video decoding apparatus 300 includes an entropy decoding unit 310 , a residual processing unit 320 , a prediction unit 330 , an adder 340 , a filter unit 350 and a memory 360 . may include Here, the residual processing unit 320 may include a rearrangement unit 321 , an inverse quantization unit 322 , and an inverse transform unit 323 .
비디오 정보를 포함하는 비트스트림이 입력되면, 비디오 디코딩 장치(300)는 비디오 인코딩 장치에서 비디오 정보가 처리된 프로세스에 대응하여 비디오를 복원할 수 있다.When a bitstream including video information is input, the video decoding apparatus 300 may reconstruct a video corresponding to a process in which the video information is processed by the video encoding apparatus.
예컨대, 비디오 디코딩 장치(300)는 비디오 인코딩 장치에서 적용된 처리 유닛을 이용하여 비디오 디코딩을 수행할 수 있다. 따라서 비디오 디코딩의 처리 유닛 블록은 일 예로 코딩 유닛일 수 있고, 다른 예로 코딩 유닛, 예측 유닛 또는 변환 유닛일 수 있다. 코딩 유닛은 최대 코딩 유닛으로부터 쿼드 트리 구조 및/또는 바이너리 트리 구조를 따라서 분할될 수 있다.For example, the video decoding apparatus 300 may perform video decoding using a processing unit applied in the video encoding apparatus. Accordingly, a processing unit block of video decoding may be, as an example, a coding unit, and may be a coding unit, a prediction unit, or a transform unit, as another example. A coding unit may be partitioned from the largest coding unit along a quad tree structure and/or a binary tree structure.
예측 유닛 및 변환 유닛이 경우에 따라 더 사용될 수 있으며, 이 경우 예측 블록은 코딩 유닛으로부터 도출 또는 파티셔닝되는 블록으로서, 샘플 예측의 유닛일 수 있다. 이 때, 예측 유닛은 서브 블록으로 나뉠 수도 있다. 변환 유닛은 코딩 유닛으로부터 쿼드 트리 구조를 따라서 분할 될 수 있으며, 변환 계수를 유도하는 유닛 또는 변환 계수로부터 레지듀얼 신호를 유도하는 유닛일 수 있다.A prediction unit and a transform unit may be further used depending on the case, in which case a prediction block is a block derived or partitioned from a coding unit, and may be a unit of sample prediction. In this case, the prediction unit may be divided into sub-blocks. A transform unit may be divided along a quad tree structure from a coding unit, and may be a unit deriving a transform coefficient or a unit deriving a residual signal from a transform coefficient.
엔트로피 디코딩부(310)는 비트스트림을 파싱하여 비디오 복원 또는 픽처 복원에 필요한 정보를 출력할 수 있다. 예컨대, 엔트로피 디코딩부(310)는 지수 골롬 부호화, CAVLC 또는 CABAC 등의 코딩 방법을 기초로 비트스트림 내 정보를 디코딩하고, 비디오 복원에 필요한 신택스 엘리먼트의 값, 레지듀얼에 관한 변환 계수의 양자화된 값 들을 출력할 수 있다.The entropy decoding unit 310 may parse the bitstream and output information necessary for video or picture restoration. For example, the entropy decoding unit 310 decodes information in a bitstream based on a coding method such as exponential Golomb encoding, CAVLC or CABAC, and a value of a syntax element required for video reconstruction, and a quantized value of a transform coefficient related to a residual can be printed out.
보다 상세하게, CABAC 엔트로피 디코딩 방법은, 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼/빈의 정보를 이용하여 문맥(context) 모델을 결정하고, 결정된 문맥 모델에 따라 빈(bin)의 발생 확률을 예측하여 빈의 산술 디코딩(arithmetic decoding)를 수행하여 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 이때, CABAC 엔트로피 디코딩 방법은 문맥 모델 결정 후 다음 심볼/빈의 문맥 모델을 위해 디코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.In more detail, the CABAC entropy decoding method receives a bin corresponding to each syntax element in a bitstream, and decodes the syntax element information to be decoded and the decoding information of the surrounding and decoding target blocks or the symbol/bin information decoded in the previous step. A context model is determined using the context model, and the probability of occurrence of a bin is predicted according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated by performing arithmetic decoding of the bin. have. In this case, the CABAC entropy decoding method may update the context model by using the decoded symbol/bin information for the context model of the next symbol/bin after determining the context model.
엔트로피 디코딩부(310)에서 디코딩된 정보 중 예측에 관한 정보는 예측부(330)로 제공되고, 엔트로피 디코딩부(310)에서 엔트로피 디코딩이 수행된 레지듀얼 값, 즉 양자화된 변환 계수는 재정렬부(321)로 입력될 수 있다.Prediction-related information among the information decoded by the entropy decoding unit 310 is provided to the prediction unit 330, and the residual value on which the entropy decoding is performed in the entropy decoding unit 310, that is, the quantized transform coefficient is a rearrangement unit ( 321) can be entered.
재정렬부(321)는 양자화되어 있는 변환 계수들을 2차원의 블록 형태로 재정렬할 수 있다. 재정렬부(321)는 인코딩 장치에서 수행된 계수 스캐닝에 대응하여 재정렬을 수행할 수 있다. 여기서 재정렬부(321)는 별도의 구성으로 설명하였으나, 재정렬부(321)는 역양자화부(322)의 일부일 수 있다.The reordering unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. The reordering unit 321 may perform reordering in response to coefficient scanning performed by the encoding apparatus. Here, although the rearrangement unit 321 has been described as a separate configuration, the rearrangement unit 321 may be a part of the inverse quantization unit 322 .
역양자화부(322)는 양자화되어 있는 변환 계수들을 (역)양자화 파라미터를 기반으로 역양자화하여 변환 계수를 출력할 수 있다. 이 때, 양자화 파라미터를 유도하기 위한 정보는 인코딩 장치로부터 시그널링될 수 있다.The inverse quantizer 322 may inverse quantize the quantized transform coefficients based on the (inverse) quantization parameter to output the transform coefficients. In this case, information for deriving the quantization parameter may be signaled from the encoding device.
역변환부(323)는 변환 계수들을 역변환하여 레지듀얼 샘플들을 유도할 수 있다.The inverse transform unit 323 may inverse transform the transform coefficients to derive residual samples.
예측부(330)는 현재 블록에 대한 예측을 수행하고, 상기 현재 블록에 대한 예측 샘플들을 포함하는 예측된 블록(predicted block)을 생성할 수 있다. 예측부(330)에서 수행되는 예측의 단위는 코딩 블록일 수도 있고, 변환 블록일 수도 있고, 예측 블록일 수도 있다.The prediction unit 330 may perform prediction on the current block and generate a predicted block including prediction samples for the current block. A unit of prediction performed by the prediction unit 330 may be a coding block, a transform block, or a prediction block.
예측부(330)는 상기 예측에 관한 정보를 기반으로 인트라 예측을 적용할 것인지 인터 예측을 적용할 것인지를 결정할 수 있다. 이 때, 인트라 예측과 인터 예측 중 어느 것을 적용할 것인지를 결정하는 단위와 예측 샘플을 생성하는 단위는 상이할 수 있다. 아울러, 인터 예측과 인트라 예측에 있어서 예측 샘플을 생성하는 단위 또한 상이할 수 있다. 예를 들어, 인터 예측과 인트라 예측 중 어느 것을 적용할 것인지는 CU 단위로 결정할 수 있다. 또한, 예를 들어, 인터 예측에 있어서 PU 단위로 예측 모드를 결정하고 예측 샘플을 생성할 수 있고, 인트라 예측에 있어서 PU 단위로 예측 모드를 결정하고 TU 단위로 예측 샘플을 생성할 수도 있다.The prediction unit 330 may determine whether to apply intra prediction or inter prediction based on the information on the prediction. In this case, a unit for determining which one of intra prediction and inter prediction is applied and a unit for generating a prediction sample may be different. In addition, units for generating prediction samples in inter prediction and intra prediction may also be different. For example, which one of inter prediction and intra prediction is to be applied may be determined in units of CUs. Also, for example, in inter prediction, a prediction mode may be determined in units of PUs and a prediction sample may be generated, and in intra prediction, a prediction mode may be determined in units of PUs and prediction samples may be generated in units of TUs.
인트라 예측의 경우에, 예측부(330)는 현재 픽처 내의 주변 참조 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(330)는 현재 블록의 주변 참조 샘플을 기반으로 방향성 모드 또는 비방향성 모드를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 주변 블록의 인트라 예측 모드를 이용하여 현재 블록에 적용할 예측 모드가 결정될 수도 있다. 한편, 사전에 트레이닝된 행렬을 기반으로 예측을 수행하는 MIP(Matrix-based Intra Prediction)가 이용될 수 있으며, 이 경우 각각의 블록 크기별로 MIP모드의 수와 행렬의 크기가 정의되어 있으며 참조 샘플을 행렬의 크기에 맞게 다운 샘플링한 뒤 모드 번호에 의해 결정된 행렬을 곱하고 예측 블록 크기에 맞도록 보간하여 예측 값을 생성한다.In the case of intra prediction, the prediction unit 330 may derive a prediction sample for the current block based on neighboring reference samples in the current picture. The prediction unit 330 may derive a prediction sample for the current block by applying a directional mode or a non-directional mode based on the neighboring reference samples of the current block. In this case, a prediction mode to be applied to the current block may be determined by using the intra prediction mode of the neighboring block. Meanwhile, Matrix-based Intra Prediction (MIP) that performs prediction based on a matrix trained in advance may be used. In this case, the number of MIP modes and the size of the matrix are defined for each block size, and reference samples are used. After downsampling according to the size of the matrix, the matrix determined by the mode number is multiplied and interpolated to fit the prediction block size to generate a predicted value.
인터 예측의 경우에, 예측부(330)는 참조 픽처 상에서 움직임 벡터에 의해 참조 픽처 상에서 특정되는 샘플을 기반으로 현재 블록에 대한 예측 샘플을 유도할 수 있다. 예측부(330)는 스킵(skip) 모드, 머지(merge) 모드 및 MVP 모드 중 어느 하나를 적용하여 현재 블록에 대한 예측 샘플을 유도할 수 있다. 이때, 비디오 인코딩 장치에서 제공된 현재 블록의 인터 예측에 필요한 움직임 정보, 예컨대 움직임 벡터, 참조 픽처 인덱스 등에 관한 정보는 상기 예측에 관한 정보를 기반으로 획득 또는 유도될 수 있다In the case of inter prediction, the prediction unit 330 may derive a prediction sample for the current block based on a sample specified on the reference picture by a motion vector on the reference picture. The prediction unit 330 may derive a prediction sample for the current block by applying any one of a skip mode, a merge mode, and an MVP mode. In this case, motion information necessary for inter prediction of the current block provided by the video encoding apparatus, for example, information about a motion vector, a reference picture index, etc., may be obtained or derived based on the information about the prediction.
스킵 모드와 머지 모드의 경우에, 주변 블록의 움직임 정보가 현재 블록의 움직임 정보로 이용될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.In the case of the skip mode and the merge mode, motion information of a neighboring block may be used as motion information of the current block. In this case, the neighboring block may include a spatial neighboring block and a temporal neighboring block.
예측부(330)는 가용한 주변 블록의 움직임 정보로 머지 후보 리스트를 구성하고, 머지 인덱스가 머지 후보 리스트 상에서 지시하는 정보를 현재 블록의 움직임 벡터로 사용할 수 있다. 머지 인덱스는 인코딩 장치로부터 시그널링될 수 있다. 움직임 정보는 움직임 벡터와 참조 픽처를 포함할 수 있다. 스킵 모드와 머지 모드에서 시간적 주변 블록의 움직임 정보가 이용되는 경우에, 참조 픽처 리스트 상의 최상위 픽처가 참조 픽처로서 이용될 수 있다.The prediction unit 330 may construct a merge candidate list with motion information of available neighboring blocks, and use information indicated by a merge index on the merge candidate list as a motion vector of the current block. The merge index may be signaled from the encoding device. The motion information may include a motion vector and a reference picture. When motion information of a temporal neighboring block is used in the skip mode and the merge mode, the highest picture on the reference picture list may be used as the reference picture.
스킵 모드의 경우, 머지 모드와 달리 예측 샘플과 원본 샘플 사이의 차이(레지듀얼)이 전송되지 않는다.In the skip mode, unlike the merge mode, the difference (residual) between the predicted sample and the original sample is not transmitted.
MVP 모드의 경우, 주변 블록의 움직임 벡터를 움직임 벡터 예측자(motion vector predictor)로 이용하여 현재 블록의 움직임 벡터가 유도될 수 있다. 이 때, 주변 블록은 공간적 주변 블록과 시간적 주변 블록을 포함할 수 있다.In the MVP mode, the motion vector of the current block may be derived by using the motion vector of the neighboring block as a motion vector predictor. In this case, the neighboring block may include a spatial neighboring block and a temporal neighboring block.
일 예로, 머지 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 머지 후보 리스트가 생성될 수 있다. 머지 모드에서는 머지 후보 리스트에서 선택된 후보 블록의 움직임 벡터가 현재 블록의 움직임 벡터로 사용된다. 상기 예측에 관한 정보는 상기 머지 후보 리스트에 포함된 후보 블록들 중에서 선택된 최적의 움직임 벡터를 갖는 후보 블록을 지시하는 머지 인덱스를 포함할 수 있다. 이 때, 예측부(330)는 상기 머지 인덱스를 이용하여, 현재 블록의 움직임 벡터를 도출할 수 있다.For example, when the merge mode is applied, a merge candidate list may be generated using a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a Col block that is a temporal neighboring block. In the merge mode, the motion vector of the candidate block selected from the merge candidate list is used as the motion vector of the current block. The prediction information may include a merge index indicating a candidate block having an optimal motion vector selected from among candidate blocks included in the merge candidate list. In this case, the prediction unit 330 may derive the motion vector of the current block by using the merge index.
다른 예로, MVP(Motion Vector Prediction) 모드가 적용되는 경우, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터를 이용하여, 움직임 벡터 예측자 후보 리스트가 생성될 수 있다. 즉, 복원된 공간적 주변 블록의 움직임 벡터 및/또는 시간적 주변 블록인 Col 블록에 대응하는 움직임 벡터는 움직임 벡터 후보로 사용될 수 있다. 상기 예측에 관한 정보는 상기 리스트에 포함된 움직임 벡터 후보 중에서 선택된 최적의 움직임 벡터를 지시하는 예측 움직임 벡터 인덱스를 포함할 수 있다. 이 때, 예측부(330)는 상기 움직임 벡터 인덱스를 이용하여, 움직임 벡터 후보 리스트에 포함된 움직임 벡터 후보 중에서, 현재 블록의 예측 움직임 벡터를 선택할 수 있다. 인코딩 장치의 예측부는 현재 블록의 움직임 벡터와 움직임 벡터 예측자 간의 움직임 벡터 차분(MVD)을 구할 수 있고, 이를 인코딩하여 비트스트림 형태로 출력할 수 있다. 즉, MVD는 현재 블록의 움직임 벡터에서 상기 움직임 벡터 예측자를 뺀 값으로 구해질 수 있다. 이 때, 예측부(330)는 상기 예측에 관한 정보에 포함된 움직임 벡터 차분을 획득하고, 상기 움직임 벡터 차분과 상기 움직임 벡터 예측자의 가산을 통해 현재 블록의 상기 움직임 벡터를 도출할 수 있다. 예측부는 또한 참조 픽처를 지시하는 참조 픽처 인덱스 등을 상기 예측에 관한 정보로부터 획득 또는 유도할 수 있다.As another example, when the Motion Vector Prediction (MVP) mode is applied, a motion vector predictor candidate list is generated using a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a col block that is a temporal neighboring block. can That is, a motion vector of a reconstructed spatial neighboring block and/or a motion vector corresponding to a col block that is a temporal neighboring block may be used as a motion vector candidate. The prediction information may include a prediction motion vector index indicating an optimal motion vector selected from motion vector candidates included in the list. In this case, the prediction unit 330 may select a prediction motion vector of the current block from among motion vector candidates included in the motion vector candidate list by using the motion vector index. The prediction unit of the encoding apparatus may obtain a motion vector difference (MVD) between the motion vector of the current block and the motion vector predictor, encode it and output it in the form of a bitstream. That is, the MVD may be obtained by subtracting the motion vector predictor from the motion vector of the current block. In this case, the prediction unit 330 may obtain a motion vector difference included in the prediction-related information, and derive the motion vector of the current block by adding the motion vector difference and the motion vector predictor. The prediction unit may also obtain or derive a reference picture index indicating a reference picture from the information about the prediction.
가산부(340)는 레지듀얼 샘플과 예측 샘플을 더하여 현재 블록 혹은 현재 픽처를 복원할 수 있다. 가산부(340)는 레지듀얼 샘플과 예측 샘플을 블록 단위로 더하여 현재 픽처를 복원할 수도 있다. 스킵 모드가 적용된 경우에는 레지듀얼이 전송되지 않으므로, 예측 샘플이 복원 샘플이 될 수 있다. 여기서는 가산부(340)를 별도의 구성으로 설명하였으나, 가산부(340)는 예측부(330)의 일부일 수도 있다. 한편, 가산부(340)는 복원부 또는 복원 블록 생성부로 불릴 수도 있다.The adder 340 may reconstruct the current block or the current picture by adding the residual sample and the prediction sample. The adder 340 may reconstruct the current picture by adding the residual sample and the prediction sample in units of blocks. When the skip mode is applied, since the residual is not transmitted, the prediction sample may be the reconstructed sample. Here, the adder 340 is described as a separate configuration, but the adder 340 may be a part of the predictor 330 . Meanwhile, the adder 340 may be referred to as a restoration unit or a restoration block generator.
필터부(350)는 복원된 픽처에 디블록킹 필터링 샘플 적응적 오프셋, 및/또는 ALF 등을 적용할 수 있다. 이 때, 샘플 적응적 오프셋은 샘플 단위로 적용될 수 있으며, 디블록킹 필터링 이후 적용될 수도 있다. ALF는 디블록킹 필터링 및/또는 샘플 적응적 오프셋 이후 적용될 수도 있다.The filter unit 350 may apply a deblocking filtering sample adaptive offset and/or ALF to the reconstructed picture. In this case, the sample adaptive offset may be applied in units of samples or may be applied after deblocking filtering. ALF may be applied after deblocking filtering and/or sample adaptive offset.
메모리(360)는 복원 픽처(디코딩된 픽처) 또는 디코딩에 필요한 정보를 저장할 수 있다. 여기서 복원 픽처는 상기 필터부(350)에 의하여 필터링 절차가 완료된 복원 픽처일 수 있다. 예컨대, 메모리(360)는 인터 예측에 사용되는 픽처들을 저장할 수 있다. 이 때, 인터 예측에 사용되는 픽처들은 참조 픽처 세트 혹은 참조 픽처 리스트에 의해 지정될 수도 있다. 복원된 픽처는 다른 픽처에 대한 참조 픽처로서 이용될 수 있다. 또한, 메모리(360)는 복원된 픽처를 출력 순서에 따라서 출력할 수도 있다.The memory 360 may store a reconstructed picture (a decoded picture) or information necessary for decoding. Here, the reconstructed picture may be a reconstructed picture whose filtering procedure has been completed by the filter unit 350 . For example, the memory 360 may store pictures used for inter prediction. In this case, pictures used for inter prediction may be designated by a reference picture set or a reference picture list. The reconstructed picture may be used as a reference picture for other pictures. Also, the memory 360 may output the restored pictures according to the output order.
도 4는 디코딩 장치에 의하여 수행되는 영상 디코딩 방법의 일 예를 나타낸다. 도 4를 참조하면 상기 영상 디코딩 방법은 엔트로피 디코딩(entropy decoding), 역양자화(inverse quantization), 역변환(inverse transform) 및 인트라/인터 예측 과정을 포함할 수 있다. 예를 들어, 디코딩 장치에서는 상기 인코딩 방법의 역과정이 수행될 수 있다. 구체적으로, 비트스트림에 대한 엔트로피 디코딩을 통하여 양자화된 변환 계수들이 획득될 수 있고, 상기 양자화된 변환 계수들에 대한 역양자화 과정을 통하여 현재 블록의 계수 블록, 즉, 변환 계수들이 획득될 수 있다. 상기 변환 계수들에 대한 역변환을 통하여 상기 현재 블록의 레지듀얼 블록이 도출될 수 있고, 인트라/인터 예측을 통하여 도출된 상기 현재 블록의 예측 블록과 상기 레지듀얼 블록과의 가산을 통하여 상기 현재 블록의 복원 블록(reconstructed block)이 도출될 수 있다.4 shows an example of an image decoding method performed by a decoding apparatus. Referring to FIG. 4 , the image decoding method may include entropy decoding, inverse quantization, inverse transform, and intra/inter prediction processes. For example, in the decoding apparatus, the reverse process of the encoding method may be performed. Specifically, quantized transform coefficients may be obtained through entropy decoding of the bitstream, and a coefficient block of the current block, ie, transform coefficients, may be obtained through an inverse quantization process for the quantized transform coefficients. A residual block of the current block may be derived through inverse transform on the transform coefficients, and the prediction block of the current block derived through intra/inter prediction is added to the residual block of the current block A reconstructed block may be derived.
한편, 후술하는 실시예들에서의 오퍼레이터들은 다음의 표와 같이 정의될 수 있다.Meanwhile, operators in the embodiments described below may be defined as shown in the following table.
Figure PCTKR2020018466-appb-img-000001
Figure PCTKR2020018466-appb-img-000001
표 1을 참조하면 Floor(x) 는 x 이하의 최대 정수값을 나타낼 수 있고, Log2(u) 는 u의 2를 밑(base)으로 하는 로그값을 나타낼 수 있고, Ceil(x) 는 x 이상의 최소 정수값을 나타낼 수 있다. 예를 들어, Floor(5.93) 의 경우, 5.93 이하의 최대 정수값은 5이므로, 5를 나타낼 수 있다.Referring to Table 1, Floor(x) may represent a maximum integer value less than or equal to x, Log2(u) may represent a log value based on 2 of u, and Ceil(x) is greater than or equal to x It can represent the minimum integer value. For example, in the case of Floor(5.93), since the maximum integer value less than or equal to 5.93 is 5, it can represent 5.
또한, 표 1을 참조하면 x>>y 는 x 를 y 번 우측 쉬프트(right shift)하는 연산자를 나타낼 수 있고, x<<y 는 x 를 y 번 좌측 쉬프트(left shift)하는 연산자를 나타낼 수 있다.In addition, referring to Table 1, x>>y may represent an operator for right shifting x y times, and x<<y may represent an operator for left shifting x y times. .
<도입><Introduction>
HEVC 표준은 일반적으로 하나의 변환 타입(transform type)인 DCT(discrete cosine transform)을 사용한다. 따라서, 변환 타입(transform type)에 대한 별도의 결정 과정 및 결정된 변환 타입(transform type)에 대한 정보가 전송될 필요가 없다. 다만, 현재 루마 블록의 크기가 4x4 이면서, 인트라 예측을 수행하는 경우, 예외적으로 DST(discrete sine transform) 변환 타입을 사용한다.The HEVC standard generally uses one transform type, DCT (discrete cosine transform). Accordingly, there is no need to transmit a separate determination process for a transform type and information on the determined transform type. However, when the size of the current luma block is 4x4 and intra prediction is performed, a DST (discrete sine transform) transform type is exceptionally used.
변환 및 양자화 과정을 거친 양자화된 계수(quantized coefficient)들 중 넌-제로(non-zero) 계수의 위치를 표현하는 정보는 크게 세가지로 분류할 수 있다. Information representing the position of a non-zero coefficient among quantized coefficients that have undergone transformation and quantization can be roughly classified into three types.
1. 마지막 유효 계수(Last significant coefficient)의 위치 (x,y): 부호화 대상 블록 내 스캔 순서(scan order) 상 가장 후순위 넌-제로(non-zero) 계수(coefficient)의 위치 (이하, 마지막 위치(last position)로 정의됨)1. Position (x,y) of the last significant coefficient: the position of the lowest non-zero coefficient in the scan order in the encoding object block (hereinafter, the last position) (defined as last position)
2. 코딩된 서브-블록 플래그(Coded sub-block flag): 부호화 대상 블록을 다수 개의 서브-블록(sub-block)으로 분할하여 각 서브-블록(sub-block)이 넌-제로 계수(non-zero coefficient)를 하나 이상 포함하고 있는지를 알리는 플래그(혹은 올-제로 계수들(all zero coefficients)인지 알리는 플래그)2. Coded sub-block flag: A block to be coded is divided into a plurality of sub-blocks, so that each sub-block has a non-zero coefficient A flag indicating whether or not it contains one or more zero coefficients (or a flag indicating whether it is all zero coefficients)
3. 유효 계수 플래그(Significant coefficient flag): 하나의 서브-블록(sub-block) 내 각 계수(coefficient)가 넌-제로(non-zero) 인지 제로(zero) 인지를 알리는 플래그3. Significant coefficient flag: a flag indicating whether each coefficient in one sub-block is non-zero or zero
여기서, 마지막 유효 계수(last significant coefficient)의 위치는 x축 성분, y축 성분으로 나뉘어 표시되고, 각 성분은 프리픽스(prefix) 및 서픽스(suffix)로 나누어서 표현된다. 즉, 양자화된 계수들의 넌-제로(non-zero) 위치를 알리는 신택스(syntax)는 아래의 총 6개의 신택스(syntax)를 포함한다.Here, the position of the last significant coefficient is expressed by dividing it into an x-axis component and a y-axis component, and each component is expressed by dividing it into a prefix and a suffix. That is, the syntax indicating the non-zero positions of the quantized coefficients includes a total of six syntaxes below.
1. last_sig_coeff_x_prefix, 1. last_sig_coeff_x_prefix,
2. last_sig_coeff_y_prefix2. last_sig_coeff_y_prefix
3. last_sig_coeff_x_suffix, 3. last_sig_coeff_x_suffix,
4. last_sig_coeff_y_suffix4. last_sig_coeff_y_suffix
5. coded_sub_block_flag5. coded_sub_block_flag
6. sig_coeff_flag6. sig_coeff_flag
상기 last_sig_coeff_x_prefix는 마지막 유효 계수의 위치를 나타내는 x축 성분의 프리픽스를 나타내고, last_sig_coeff_y_prefix는 마지막 유효 계수의 위치를 나타내는 y축 성분의 프리픽스를 나타낸다. 또한, last_sig_coeff_x_suffix는 마지막 유효 계수의 위치를 나타내는 x 성분의 서픽스를 나타내고, last_sig_coeff_y_suffix는 마지막 유효 계수의 위치를 나타내는 y 성분의 서픽스를 나타낸다.The last_sig_coeff_x_prefix indicates the prefix of the x-axis component indicating the position of the last significant coefficient, and last_sig_coeff_y_prefix indicates the prefix of the y-axis component indicating the position of the last significant coefficient. In addition, last_sig_coeff_x_suffix indicates the suffix of the x component indicating the position of the last significant coefficient, and last_sig_coeff_y_suffix indicates the suffix of the y component indicating the position of the last significant coefficient.
한편, coded_sub_block_flag는 해당 서브-블록(sub-block) 내 모든 계수들이 올 제로(all zero) 면 "0", 하나 이상의 넌-제로(non-zero) 계수가 존재하면 "1" 로 표시한다. sig_coeff_flag는 제로(zero) 계수의 경우 "0"으로 표시하고, 넌-제로(non-zero) 계수이면 "1"로 표시한다. 부호화 대상 블록 내 마지막 유효(last significant) 계수 위치를 고려하여 스캔 순서(scan order) 상 이전에 존재하는 서브-블록(sub-block)에 한해서 coded_sub_block_flag 구문(syntax)를 전송한다. coded_sub_block_flag가 "1"인 경우에, 즉, 하나 이상의 넌-제로(non-zero) 계수가 존재하는 경우에, 해당 서브-블록(sub-block) 내 모든 계수들 각각에 대한 sig_coeff_flag 신택스를 전송한다. On the other hand, coded_sub_block_flag indicates "0" if all coefficients in the corresponding sub-block are all zeros, and "1" if one or more non-zero coefficients exist. sig_coeff_flag is expressed as "0" in the case of a zero coefficient, and expressed as "1" in the case of a non-zero coefficient. A coded_sub_block_flag syntax is transmitted only for sub-blocks that exist before in a scan order in consideration of the position of the last significant coefficient in the block to be coded. When coded_sub_block_flag is “1”, that is, when one or more non-zero coefficients exist, a sig_coeff_flag syntax for each of all coefficients in a corresponding sub-block is transmitted.
HEVC 표준은 계수를 위한 아래 세 가지 형태의 스캔을 지원한다. The HEVC standard supports the following three types of scans for coefficients.
1) 업-라이트 대각(up-right diagonal)1) up-right diagonal
2) 수평(horizontal)2) horizontal
3) 수직(vertical)3) vertical
부호화 대상 블록이 화면간 예측 방식을 사용하여 부호화하는 경우, 해당 블록의 계수들은 업-라이트 대각(up-right diagonal) 방식으로 스캐닝되고, 블록이 화면내 예측 방식으로 부호화한 경우는 화면내 예측 모드에 따라서 상기 세 가지 형태 중 하나를 선택하여 해당 블록의 계수들을 스캐닝하게 된다.When the encoding target block is encoded using the inter prediction method, the coefficients of the corresponding block are scanned in an up-right diagonal method, and when the block is encoded using the intra prediction method, the intra prediction mode Accordingly, one of the three types is selected and the coefficients of the corresponding block are scanned.
즉, 영상 부호화 장치에 의해 부호화 대상 블록이 부호화될 때 화면간 예측 방식이 사용된 경우, 해당 블록의 계수들은 업-라이트 대각(up-right diagonal) 방식으로 스캐닝되고, 상기 부호화 대상 블록의 부호화에 화면내 예측 방식이 사용되는 경우에는 영상 부호화 장치는 화면내 예측 모드에 따라서 상기 세 가지 형태 중 하나를 선택하여 해당 블록의 계수들을 스캐닝한다. 상기 스캐닝은 도 1의 영상 부호화 장치에서 재정렬부(124)에 의해 수행될 수 있으며, 스캐닝을 통하여 2차원의 블록 형태 계수를 1차원의 벡터 형태로 변경할 수 있다.That is, if the inter prediction method is used when the encoding object block is encoded by the image encoding apparatus, coefficients of the corresponding block are scanned in an up-right diagonal method, and the encoding object block is encoded. When the intra prediction method is used, the image encoding apparatus scans the coefficients of the corresponding block by selecting one of the three types according to the intra prediction mode. The scanning may be performed by the reordering unit 124 in the image encoding apparatus of FIG. 1 , and a two-dimensional block shape coefficient may be changed into a one-dimensional vector form through scanning.
도 5는 대각(diagonal) 스캔 방식에 대한 서브-블록(sub-block) 및 계수들의 스캔 순서를 나타낸다. 5 shows a scan order of sub-blocks and coefficients for a diagonal scan scheme.
도 5를 참조하면, 도 5의 블록이 영상 부호화 장치의 재정렬부(124)에 의해 대각(diagonal) 스캔 방식으로 스캔될 때, 가장 좌측 상단의 서브-블록인 1번 서브-블록으로부터 아래방향 및 대각 상단 방향으로 스캔이 수행되어, 우측 하단의 16번 서브-블록에 대해서 마지막으로 스캔이 수행된다. 즉, 재정렬부(124)는 1, 2, 3, …, 14, 15, 16번 서브-블록의 순으로 스캔을 수행하여 2차원 블록 형태의 양자화된 변환 계수들을 1차원의 벡터 형태로 재정렬한다. 마찬가지로, 영상 부호화 장치의 재정렬부(124)는 각각의 서브-블록 내의 계수들에 대해서도 서브-블록의 스캔 방식과 동일한 대각 스캔 방식으로 스캔을 수행한다. 예를 들어, 1번 서브블록 내에서는 0, 1, 2, …, 13, 14, 15번 계수의 순으로 스캔을 수행한다.Referring to FIG. 5 , when the block of FIG. 5 is scanned in a diagonal scan method by the rearrangement unit 124 of the image encoding apparatus, the block of FIG. 5 is scanned in a downward direction and The scan is performed in the diagonal upper direction, and the last scan is performed for sub-block 16 at the lower right. That is, the rearrangement unit 124 is 1, 2, 3, ... , 14, 15, and 16 sub-blocks are scanned in order to rearrange the quantized transform coefficients in the form of a two-dimensional block into a form of a one-dimensional vector. Similarly, the reordering unit 124 of the image encoding apparatus scans coefficients in each sub-block in the same diagonal scan method as that of the sub-block. For example, in subblock 1, 0, 1, 2, ... , 13, 14, and 15 in the order of the scans are performed.
다만, 스캔이 수행된 계수들이 비트스트림에 저장될 때, 저장되는 순서는 스캔 순서의 역순으로 저장이 된다. 즉, 도 10의 블록이 영상 부호화 장치의 재정렬부(124)에 의해 스캔될 때에는 0번 계수부터 255번 계수의 순으로 스캔이 수행되었으나, 각각의 화소가 비트스트림에 저장되는 순서는 255번 위치의 화소부터 0번 위치의 화소 순으로 비트스트림에 저장된다.However, when the scanned coefficients are stored in the bitstream, the stored order is the reverse of the scan order. That is, when the block of FIG. 10 is scanned by the reordering unit 124 of the image encoding apparatus, scans are performed in the order of coefficient 0 to 255, but the order in which each pixel is stored in the bitstream is at position 255 It is stored in the bitstream in order from the pixel at position 0 to the pixel at position 0.
도 6은 영상 부호화 장치에 의해 양자화된 후의 32×32 부호화 대상 블록의 일례를 나타낸다. 여기서, 도 6에 도시된 32×32 블록은 영상 부호화 장치에 의해 스캔이 수행될 때, 임의로 대각(diagonal) 방식을 사용하였다. 도 6에서, 대각선 빗금으로 표시한 픽셀은 넌-제로(non-zero) 계수를 나타내고, x표시된 픽셀은 마지막 유효(last significant) 계수를 나타낸다. 그 이외의 흰색 계수들은 모두 제로(zero) 값을 갖는다. 여기서, coded_sub_block_flag 신택스를 도 6의 블록에 대입하면, 총 64개 서브-블록(sub-block) 중 스캔 순서 상 마지막 위치(last position) 이전에 존재하는 24개의 서브블록, 즉, 도 6에서 굵은선으로 표시한 서브-블록(sub-block)에 대한 coded_sub_block_flag 정보가 필요하다. 24개의 서브-블록(sub-blocks) 중 DC 값을 포함한 첫번째 서브-블록(sub-block) 및 마지막 위치(last position) 계수를 포함한 24번째 서브-블록(sub-block)을 위한 coded_sub_block_flag 값은 "1"으로 유도되고, 나머지 22개의 서브-블록(sub-blocks)을 위한 coded_sub_block_flag 값은 비트스트림을 통해 영상 복호화 장치로 전송된다. 이 때, 22개의 서브-블록(sub-block) 중 하나 이상의 넌-제로 계수(non-zero coefficient)를 포함하고 있는 서브-블록(sub-block)의 경우, coded_sub_block_flag 값이 영상 부호화 장치에 의해 "1"로 설정된다. 도 6에서는 첫번째 서브-블록 및 24번째 서브블록을 제외한 22개의 서브-블록 중에서 회색으로 마킹된 픽셀을 포함하고 있는 서브-블록인 4, 5, 11, 18번째 서브-블록의 coded_sub_block_flag 값이 "1"로 설정된다.6 shows an example of a 32x32 encoding target block after being quantized by the video encoding apparatus. Here, when the 32×32 block shown in FIG. 6 is scanned by the image encoding apparatus, a diagonal method is arbitrarily used. In FIG. 6 , a pixel indicated by a diagonal hatch indicates a non-zero coefficient, and a pixel indicated by an x indicates a last significant coefficient. All other white coefficients have a value of zero. Here, if the coded_sub_block_flag syntax is substituted into the block of FIG. 6, 24 sub-blocks existing before the last position in the scan order among a total of 64 sub-blocks, that is, the thick line in FIG. coded_sub_block_flag information for a sub-block indicated by . The coded_sub_block_flag value for the first sub-block including the DC value and the 24th sub-block including the last position coefficient among the 24 sub-blocks is " 1" and coded_sub_block_flag values for the remaining 22 sub-blocks are transmitted to the video decoding apparatus through a bitstream. At this time, in the case of a sub-block including one or more non-zero coefficients among 22 sub-blocks, the coded_sub_block_flag value is " set to 1". In FIG. 6, the coded_sub_block_flag value of the 4th, 5th, 11th, and 18th sub-blocks that are sub-blocks including gray-marked pixels among 22 sub-blocks excluding the first sub-block and the 24th sub-block is "1 " is set to
1. 복호화 대상 블록의 일차 변환(primary transform) 타입(type)의 결정 방법1. Determination method of a primary transform type of a decoding target block
본 명세서는 영상의 복호화 과정 중 복호화 대상 블록의 일차 변환(primary transform)의 타입(type)을 결정하는 방법을 개시한다. 즉, 복호화 대상 블록이 영상 복호화 장치에 의해 복호화될 때에는 영상 부호화 장치에 의한 변환 과정에서 어떠한 변환 타입(type)으로 일차 변환되어 부호화되었는지 여부를 판단하는 과정이 필요하다. 일차 변환 타입(Primary transform type)은 하나의 디폴트 변환(default transform) 및 복수의 추가 변환들(extra transforms)로 구성된다. 복호화 대상 블록은 조건에 따라, 디폴트 변환(default transform)을 사용하거나 혹은 디폴트 변환(default transform) 및 추가 변환(extra transforms)을 포함한 다중 변환 집합(multiple transform set; MTS)를 사용한다. 즉, 복호화 대상 블록은 변환 과정에서 디폴트 변환만이 사용되어 변환되었거나 디폴트 변환 및 추가 변환을 포함한 다중 변환 집합이 사용되어 변환되었을 수 있다. 영상 복호화 장치의 관점에서는 반대로 복호화 대상 블록이 디폴트 변환만을 사용하였는지 아니면 디폴트 변환 및 추가 변환을 포함한 다중 변환 집합(MTS)을 사용하였는지를 파악하여 복호화를 수행할 수 있다. 복호화 대상 블록이 MTS를 사용하면, 복수의 변환(transform) 중 실제 사용되는 변환(transform)에 관한 정보를 전송 또는 유도한다. 여기서, 실제 사용되는 변환(transform)에 관한 정보는 가로축 변환 타입(transform type) 및 세로축 변환 타입(transform type)이 별도로 존재할 수 있다. 즉, 영상 복호화 장치는 복호화 대상 블록이 MTS를 사용하여 변환된 경우 복수의 변환 타입 중에서 어떠한 변환 타입이 사용되어 변환되었는지를 수신하거나 판단하여 복호화를 수행할 수 있다. The present specification discloses a method of determining a type of a primary transform of a decoding object block during an image decoding process. That is, when a decoding object block is decoded by an image decoding apparatus, a process of determining whether the image encoding apparatus has primary transformed and coded into what type of transformation is required in the transformation process by the image encoding apparatus. A primary transform type consists of one default transform and a plurality of extra transforms. The decoding target block uses a default transform or a multiple transform set (MTS) including a default transform and extra transforms according to a condition. That is, the decoding object block may be transformed by using only the default transform or by using a multiple transform set including the default transform and the additional transform in the transform process. Conversely, from the viewpoint of the image decoding apparatus, decoding may be performed by determining whether a decoding object block uses only a default transform or a multiple transform set (MTS) including a default transform and an additional transform. When the decoding object block uses the MTS, information about a transform actually used among a plurality of transforms is transmitted or derived. Here, as for the information about the transform actually used, a horizontal axis transformation type and a vertical axis transformation type may exist separately. That is, when the decoding object block is transformed using MTS, the image decoding apparatus may perform decoding by receiving or determining which transform type is used and transformed among a plurality of transform types.
일 실시예에 따르면, DCT-II가 디폴트 변환(default transform)으로 설정되고, DST-7 및 DCT-8이 추가 변환들(extra transforms)로 설정될 수 있다. 이 때, 디폴트 변환(default transform) 인 DCT-II의 최대 크기는 64×64까지 지원되고, 추가 변환들(extra transforms) 인 DST-7 및 DCT-8의 최대 크기는 32×32까지 지원된다. 예컨대, 복호화 대상 블록의 크기가 64×64 인 경우, 1개의 64×64 DCT-II를 변환(transform) 과정에 적용한다. 즉, 복호화 대상 블록의 너비 및 높이 중 하나 이상이 32보다 큰(32를 초과하는) 경우, MTS 적용 없이 바로 디폴트 변환(default transform)(*)을 적용한다. 즉, 영상 복호화 장치의 관점에서는 복호화 대상 블록의 가로 및 세로의 크기가 모두 32 이하인 경우에만 MTS가 사용되어 변환되었는지 여부를 판단하면 된다. 반대로, 복호화 대상 블록의 가로 또는 세로의 크기 중 하나가 32보다 큰 경우에는 디폴트 변환이 적용되어 변환된 것으로 판단될 수 있다. 이와 같이 복호화 대상 블록이 디폴트 변환에 의해 변환된 경우, MTS 관련 전송되는 신택스 정보는 존재하지 않는다. 본 발명에서는 편의상, DCT-II의 변환 타입(transform type) 값을 "0"으로 설정하고, DST-7의 변환 타입 값은 "1"로, DCT-8의 변환 타입 값을 "2"로 설정하나, 이에 한정하지는 않는다. 아래 표 2는 trType 신택스의 각 값들에 할당되는 변환 타입을 정의한다.According to an embodiment, DCT-II may be set as a default transform, and DST-7 and DCT-8 may be set as extra transforms. In this case, the maximum size of DCT-II, which is a default transform, is supported up to 64×64, and the maximum size of DST-7 and DCT-8, which are extra transforms, is supported up to 32×32. For example, when the size of the decoding object block is 64×64, one 64×64 DCT-II is applied to a transform process. That is, when at least one of the width and height of the decoding target block is greater than 32 (greater than 32), a default transform (*) is directly applied without applying the MTS. That is, from the viewpoint of the video decoding apparatus, it is only necessary to determine whether the MTS is used and transformed only when both the width and length of the decoding object block are 32 or less. Conversely, when one of the horizontal and vertical sizes of the decoding target block is greater than 32, it may be determined that the default transformation is applied and transformed. In this way, when the decoding object block is transformed by default transformation, there is no MTS-related transmitted syntax information. In the present invention, for convenience, the transform type value of DCT-II is set to “0”, the transform type value of DST-7 is set to “1”, and the transform type value of DCT-8 is set to “2”. However, the present invention is not limited thereto. Table 2 below defines the transform type assigned to each value of the trType syntax.
Figure PCTKR2020018466-appb-img-000002
Figure PCTKR2020018466-appb-img-000002
표 3 및 표 4는 복호와 대상 블록의 크기가 4x4 일 때, DST-7 및 DST-8 의 변환 커널(transform kernel)의 일례를 나타낸다.Tables 3 and 4 show examples of transform kernels of DST-7 and DST-8 when the size of the decoding and target blocks is 4x4.
표 3은 tyType이 "1"(DST-7)이고 복호화 대상 블록의 크기가 4x4 인 경우의 해당 변환 커널(transform kernel)의 계수 값을 나타내고, 표 4는 tyType이 "2" (DCT-8)이고 복호화 대상 블록의 크기가 4x4 인 경우의 해당 변환 커널(transform kernel)의 계수 값을 나타낸다.Table 3 shows the coefficient values of the corresponding transform kernel when the tyType is "1" (DST-7) and the size of the decoding target block is 4x4, and Table 4 shows the coefficient values of the corresponding transform kernel when the tyType is "2" (DCT-8) and represents the coefficient value of the corresponding transform kernel when the size of the decoding target block is 4x4.
Figure PCTKR2020018466-appb-img-000003
Figure PCTKR2020018466-appb-img-000003
Figure PCTKR2020018466-appb-img-000004
Figure PCTKR2020018466-appb-img-000004
복호화 대상 블록의 전체 변환(transform) 영역에는 제로-아웃(zero-out) 영역이 포함될 수 있다. 변환(Transform)은 픽셀 도메인의 값들을 주파수 도메인(frequency domain) 값들로 변환하는데, 이때, 좌상측 주파수(frequency) 영역을 저주파 영역, 우하측 주파수(frequency) 영역을 고주파 영역이라 칭한다. 저주파 성분은 해당 블록의 일반적인(평균적인) 특성을 반영하고, 고주파 성분은 해당 블록의 날카로운(특이한) 특성을 반영한다. 그러므로, 저주파 성분은 다수 개의 큰 값들이 존재하고, 고주파 성분은 소수 개의 작은 값들이 존재한다. 변환 후의 양자화 과정을 통해 고주파 영역 내 소수 개의 작은 값들은 대부분 영(zero) 값을 가지게 된다. 여기서, 좌상측에 속하는 저주파 영역 외에 대부분의 영(zero) 값을 가지는 나머지 영역을 제로-아웃(zero-out) 영역이라고 지칭하고, 제로-아웃 영역은 시그널링 과정에서 제외될 수 있다. 복호화 대상 블록 내 제로-아웃 영역을 제외한 영역을 유효 (valid) 영역이라 지칭한다. A zero-out area may be included in the entire transform area of the decoding object block. Transform transforms pixel domain values into frequency domain values. In this case, an upper-left frequency region is referred to as a low-frequency region and a lower-right frequency region is referred to as a high-frequency region. The low frequency component reflects the general (average) characteristics of the corresponding block, and the high frequency component reflects the sharp (unique) characteristic of the corresponding block. Therefore, the low frequency component has a plurality of large values, and the high frequency component has a few small values. Through the quantization process after transformation, a small number of small values in the high-frequency region mostly have zero values. Here, in addition to the low frequency region belonging to the upper left, the remaining region having most of the zero values is referred to as a zero-out region, and the zero-out region may be excluded from the signaling process. A region excluding the zero-out region in the decoding object block is referred to as a valid region.
도 7은 MxN 복호화 대상 블록의 영역 중 mxn을 제외한 나머지 제로-아웃(zero-out) 영역을 도시한다.7 illustrates the remaining zero-out areas excluding mxn among the areas of the MxN decoding object block.
도 7을 참조하면, 좌상측의 회색 영역은 저주파 영역을 나타내고, 흰색 영역은 고주파의 제로-아웃을 나타낸다.Referring to FIG. 7 , the upper left gray area represents the low frequency area, and the white area represents the high frequency zero-out.
다른 예시로서, 복호화 대상 블록이 64x64인 경우, 좌상측 32x32 영역은 유효 영역이 되고, 이를 제외한 나머지 영역이 제로-아웃(zero-out) 영역이 되어, 시그널링 되지 않는다. As another example, when the decoding object block is 64x64, the upper left 32x32 area becomes a valid area, and the remaining areas except for this become a zero-out area, so that no signaling is performed.
또한, 복호화 대상 블록의 크기가 64x64, 64x32, 32x64 중 하나인 경우, 좌상측 32x32 영역은 유효 영역이 되고, 이를 제외한 나머지 부분은 제로-아웃(zero-out) 영역이 되며, 복호화기가 양자화된 계수에 대한 신택스를 파싱할 때 블록의 크기를 알고 있기 때문에 제로-아웃 영역은 시그널링 되지 않는다. 즉, 상기 복호화 대상 블록의 너비 또는 높이가 32보다 큰 영역이 제로-아웃 영역으로 설정된다. 이때, 복호화 대상 블록의 가로 또는 세로의 크기가 32보다 큰 경우에 해당하므로 사용되는 변환(transform)은 디폴트 변환인 DCT-II가 된다. 추가 변환들(extra transforms) 인 DST-7 및 DCT-8의 최대 크기는 32×32까지 지원되므로, 이러한 크기의 대상 블록에서는 MTS가 적용되지 않는다.In addition, when the size of the decoding object block is one of 64x64, 64x32, and 32x64, the upper left 32x32 area becomes an effective area, and the remaining part becomes a zero-out area except for the coefficients quantized by the decoder. Since the size of the block is known when parsing the syntax for , the zero-out region is not signaled. That is, an area in which the width or height of the decoding object block is greater than 32 is set as the zero-out area. In this case, since it corresponds to a case where the size of the block to be decoded is greater than 32 in width or length, the transform used is DCT-II, which is the default transform. Since the maximum size of DST-7 and DCT-8, which are extra transforms, is supported up to 32×32, MTS is not applied to the target block of this size.
또한, 복호화 대상 블록의 크기가 32x32, 32x16, 16x32 중 하나이면서 상기 복호화 대상 블록에 MTS가 적용되는 경우 (예컨대, DST-7 또는 DCT-8를 사용한 경우), 좌상측 16x16 영역은 유효 영역이 되고, 이를 제외한 나머지 부분은 제로-아웃(zero-out) 영역으로 설정된다. 여기서, 제로-아웃 영역은 마지막 유효 계수의 위치 및 스캐닝 방법에 따라 시그널링 될 수도 있다. 이는, 부호화기는 양자화된 계수 관련 신택스들의 시그널링을 마친 후 MTS 인덱스 (mts_idx) 값을 시그널링 하므로, 복호화기가 양자화된 계수에 대한 신택스를 파싱할 때에는 변환 타입에 대한 정보를 알 수 없기 때문이다. 위와 같이 제로-아웃 영역이 시그널링되는 경우, 복호화기는 제로-아웃 영역에 해당하는 양자화된 계수들을 무시 또는 제거한 후 유효 영역에 대해서만 변환을 수행할 수 있다. 여기서, 실제 사용되는 변환 타입에 관한 정보는 가로축 변환 타입 및 세로축 변환 타입이 별도로 존재할 수 있다. 예컨대, 복호화 대상 블록의 가로축 변환 타입이 DST-7 또는 DCT-8 인 경우, 상기 복호화 대상 블록의 가로축 (너비) 유효 영역은 16이 되고, 복호화 대상 블록의 세로축 변환 타입이 DST-7 또는 DCT-8 인 경우, 상기 복호화 대상 블록의 세로축 (높이) 유효 영역은 16이 된다.In addition, when the size of the decoding object block is one of 32x32, 32x16, and 16x32 and MTS is applied to the decoding object block (for example, when DST-7 or DCT-8 is used), the upper left 16x16 area becomes an effective area , and the remaining part is set as a zero-out area. Here, the zero-out region may be signaled according to the location of the last significant coefficient and the scanning method. This is because, since the encoder signals the MTS index (mts_idx) value after signaling the quantized coefficient-related syntax, information on the transform type cannot be known when the decoder parses the syntax for the quantized coefficient. When the zero-out region is signaled as described above, the decoder can perform transformation only on the effective region after ignoring or removing quantized coefficients corresponding to the zero-out region. Here, the information on the actually used transformation type may have a horizontal axis transformation type and a vertical axis transformation type separately. For example, when the horizontal axis transformation type of the decoding object block is DST-7 or DCT-8, the horizontal axis (width) effective area of the decoding object block becomes 16, and the vertical axis transformation type of the decoding object block is DST-7 or DCT- In the case of 8, the effective area of the vertical axis (height) of the decoding object block is 16.
반면에, 복호화 대상 블록의 크기가 32x32, 32x16, 16x32 중 하나이면서 상기 복호화 대상 블록에 MTS가 적용되지 않은 경우(예컨대, 디폴트 변환인 DCT-II를 사용한 경우), 모든 영역이 유효한 영역으로 제로-아웃(zero-out) 영역은 존재하지 않고, 디폴트 변환인 DCT-II를 사용하여 변환된다. 여기서, 실제 사용되는 변환(transform)에 관한 정보는 가로축 변환 타입(transform type) 및 세로축 변환 타입(transform type)이 별도로 존재할 수 있다. 예를 들어, 복호화 대상 블록의 가로축 변환 타입이 DCT-II 인 경우 상기 복호화 대상 블록의 가로축 (너비) 유효 영역은 해당 블록의 너비가 되고, 복호화 대상 블록의 세로축 변환 타입이 DCT-II 인 경우 상기 복호화 대상 블록의 세로축 (높이) 유효 영역은 해당 블록의 높이가 된다. 즉, 상기 복호화 대상 블록의 모든 영역 (너비 x 높이)이 유효 영역이 된다.On the other hand, when the size of the decoding object block is one of 32x32, 32x16, and 16x32 and MTS is not applied to the decoding object block (eg, when DCT-II, which is a default transform, is used), all regions are valid regions. A zero-out region does not exist and is transformed using the default transformation DCT-II. Here, as for the information about the transform actually used, a horizontal axis transformation type and a vertical axis transformation type may exist separately. For example, when the horizontal axis transformation type of the decoding object block is DCT-II, the effective area of the horizontal axis (width) of the decoding object block becomes the width of the corresponding block, and when the vertical axis transformation type of the decoding object block is DCT-II, The vertical axis (height) effective area of the decoding target block becomes the height of the corresponding block. That is, all areas (width x height) of the decoding object block become effective areas.
한편, 복호화 대상 블록이 위에서 정의되지 않은 16보다 작은 크기를 갖는 경우, 모든 영역이 유효 영역이 되어, 제로-아웃 영역은 존재하지 않는다. 복호화 대상 블록의 MTS 적용 여부 및 변환 타입 값은 묵시적 및/또는 명시적 실시예에 의해 결정된다.On the other hand, when the decoding object block has a size smaller than 16, which is not defined above, all regions become valid regions, and there is no zero-out region. Whether MTS is applied to the decoding object block and the transform type value are determined by implicit and/or explicit embodiments.
본 발명에서는 변환 및 양자화 과정을 거친 양자화된 계수(quantized coefficient)들 중 넌-제로(non-zero) 계수의 위치를 표현하는 신택스 내용은 HEVC 방식과 동일하다. 다만, coded_sub_block_flag 신택스 명을 sb_coded_flag로 변경하여 사용한다. 또한, 양자화된 계수들을 스캔하는 방식은 업-라이트 대각(up-right diagonal) 방식을 사용한다. In the present invention, syntax content for expressing the position of a non-zero coefficient among quantized coefficients that have undergone transformation and quantization is the same as that of the HEVC method. However, the coded_sub_block_flag syntax name is changed to sb_coded_flag and used. In addition, a method of scanning the quantized coefficients uses an up-right diagonal method.
본 발명에서 MTS는 루마(luma) 블록에 적용될 수 있다(크로마(chroma) 블록에는 적용되지 않음). 또한, MTS의 사용 여부를 나타내는 플래그, 즉, sps_mts_enabled_flag를 이용하여 MTS 기능을 온/오프(on/off) 할 수 있다. MTS 기능을 사용하는 경우 sps_mts_enabled_flag = on으로 설정되고, 화면 내 예측 및 화면 간 예측 각각에 대한 명시적인 MTS 기능의 사용 여부를 설정할 수 있다. 즉, 화면 내 예측 시의 MTS 사용 여부를 나타내는 플래그 sps_explicit_mts_intra_enabled_flag 및 화면 간 예측 시의 MTS 사용 여부를 나타내는 플래그 sps_explicit_mts_inter_enabled_flag를 별도로 설정할 수 있다. 본 명세서에서는 편의상 세 가지의 MTS 사용 여부를 나타내는 플래그 sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, 및 sps_explicit_mts_inter_enabled_flag 값이 SPS(sequence parameter set) 내에 위치하는 것으로 기술하나, 이에 한정되지 않는다. 즉, 상기 세 개의 플래그들은 DCI(decoding capability information), VPS(video parameter set), SPS(sequence parameter set), PPS(picture parameter set), PH(picture header), SH(slice header) 중 하나 이상의 위치에서 각각 설정될 수 있다. 또한, 상기 3개의 MTS 사용 여부를 나타내는 플래그들은 HLS(high level syntax)라 정의될 수 있다. In the present invention, MTS may be applied to a luma block (not applied to a chroma block). In addition, the MTS function may be turned on/off using a flag indicating whether MTS is used, that is, sps_mts_enabled_flag. When the MTS function is used, sps_mts_enabled_flag = on is set, and it is possible to set whether to explicitly use the MTS function for intra prediction and inter prediction, respectively. That is, a flag sps_explicit_mts_intra_enabled_flag indicating whether MTS is used in intra prediction and a flag sps_explicit_mts_inter_enabled_flag indicating whether MTS is used in inter prediction may be separately set. In the present specification, for convenience, the values of the three flags sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, and sps_explicit_mts_inter_enabled_flag indicating whether to use the MTS are described as being located in a sequence parameter set (SPS), but is not limited thereto. That is, the three flags are at least one of decoding capability information (DCI), video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), picture header (PH), and slice header (SH). can be set individually. In addition, the flags indicating whether the three MTSs are used may be defined as high level syntax (HLS).
MTS의 사용에는 명시적 방법과 묵시적 방법으로 구분할 수 있다. 명시적인 MTS의 사용은 SPS 내에서 화면 내 및/또는 화면 간 MTS 사용 여부를 나타내는 플래그 값이 온(on)으로 설정되면서 특정 조건을 만족하는 경우, MTS 관련 정보(예를 들어, 실제 사용되는 변환 정보)를 전송한다. 즉, 영상 복호화 장치는 MTS 관련 정보를 수신하여 이를 기반으로 복호화 대상 블록이 어떠한 변환 타입을 사용하여 변환되었는지를 확인할 수 있고, 이를 기반으로 복호화를 수행할 수 있다. 예를 들어, 명시적인 MTS가 사용되는 환경에서는 상기 세 개의 플래그들이 아래와 같이 설정될 수 있다.The use of MTS can be divided into an explicit method and an implicit method. Explicit use of MTS is defined as MTS-related information (e.g., conversion actually used) when a specific condition is satisfied while a flag value indicating whether MTS is used within and/or between screens is set to on in the SPS. information) is transmitted. That is, the image decoding apparatus may receive the MTS-related information and check which transformation type the decoding object block is transformed using based on the MTS-related information, and may perform decoding based on the received MTS-related information. For example, in an environment where explicit MTS is used, the three flags may be set as follows.
1. sps_mts_enabled_flag = on1. sps_mts_enabled_flag = on
2. sps_explicit_mts_intra_enabled_flag = on2. sps_explicit_mts_intra_enabled_flag = on
3. sps_explicit_mts_inter_enabled_flag = on3. sps_explicit_mts_inter_enabled_flag = on
묵시적인 MTS의 사용은 SPS 내에서 세 개의 플래그 중 sps_mts_enabled_flag 값이 on으로 설정되면서 특정 조건을 만족하는 경우, MTS 관련 정보(예를 들어, 실제 사용되는 변환 정보)를 유도한다. 예를 들어, 묵시적인 MTS가 사용되는 환경에서는 상기 세 개의 플래그들이 아래와 같이 설정될 수 있다.The implicit use of MTS induces MTS-related information (eg, actually used conversion information) when a specific condition is satisfied while a value of sps_mts_enabled_flag among three flags is set to on in the SPS. For example, in an environment in which implicit MTS is used, the three flags may be set as follows.
1. sps_mts_enabled_flag = on1. sps_mts_enabled_flag = on
2. sps_explicit_mts_intra_enabled_flag = off2. sps_explicit_mts_intra_enabled_flag = off
3. sps_explicit_mts_inter_enabled_flag = off(on, off 상관 없음)3. sps_explicit_mts_inter_enabled_flag = off (on, off doesn't matter)
이하에서는 여러 개의 실시 예를 통해 묵시적 MTS 방법 및 명시적 MTS 방법에 대해서 기술하고자 한다. Hereinafter, an implicit MTS method and an explicit MTS method will be described through several embodiments.
2. 제1 실시예(묵시적 MTS)2. Example 1 (Implicit MTS)
본 실시예에서 설명하는 묵시적인 MTS는 복호화 대상 블록이 화면 내 예측 방법으로 부호화된 경우 사용될 수 있다. 즉, 복호화 대상 블록이 영상 부호화 장치에 의해 부호화될 때 화면 내 예측 방법으로 부호화된 경우 영상 부호화 장치 및/또는 영상 복호화 장치에 의해 묵시적인 MTS를 사용하여 부호화 및/또는 복호화가 수행될 수 있다. 한편, 복호화 대상 블록을 복호화할 때 묵시적인 MTS를 사용할지 여부는 implicitMtsEnabled 파라미터에 의해 지시될 수 있다. 영상 복호화 장치는 implicitMtsEnabled 파라미터의 값을 확인하여 묵시적인 MTS를 사용하여 복호화를 수행할 지 여부를 결정할 수 있다. 예를 들어, 복호화에 묵시적인 MTS가 사용되는 경우 implicitMtsEnable 파라미터는 1의 값을 가질 수 있으며, 그렇지 않은 경우에 implicitMtsEnable 파라미터는 0의 값을 가질 수 있다. 한편, 본 명세서에서 상기 implicitMtsEnabled 는 경우에 따라 “implicit_MTS_enabled”로 표시될 수도 있다.The implicit MTS described in this embodiment may be used when the decoding object block is encoded using the intra prediction method. That is, when the decoding object block is encoded by the intra prediction method when the decoding object block is encoded by the video encoding apparatus, encoding and/or decoding may be performed by the video encoding apparatus and/or the video decoding apparatus using the implicit MTS. Meanwhile, whether to use the implicit MTS when decoding the decoding object block may be indicated by the implicitMtsEnabled parameter. The image decoding apparatus may determine whether to perform decoding using the implicit MTS by checking the value of the implicitMtsEnabled parameter. For example, when an implicit MTS is used for decoding, the implicitMtsEnable parameter may have a value of 1, otherwise, the implicitMtsEnable parameter may have a value of 0. Meanwhile, in this specification, the implicitMtsEnabled may be indicated as “implicit_MTS_enabled” in some cases.
이러한 묵시적인 MTS가 적용되기 위한 HLS(high level syntax)의 조건에 대해서 살펴보면, sps_mts_enabled_flag 는 묵시적 또는 명시적 여부에 관계없이 MTS 가 적용되는지 여부를 나타내는 플래그이므로, 묵시적 MTS가 적용되기 위해서는 "on"으로 설정되어야 한다. 한편, 묵시적인 MTS는 복호화 대상 블록이 영상 부호화 장치에 의하여 부호화될 때, 화면 내 예측 방법으로 부호화된 경우 사용된다. 따라서, 영상 복호화 장치는 sps_explicit_mts_intra_enabled_flag 값의 확인을 통하여 묵시적인 MTS 사용 여부를 결정할 수 있다. 다만, sps_explicit_mts_intra_enabled_flag는 복호화 대상 블록이 영상 부호화 장치에 의해 부호화될 때 화면 내 예측 방법으로 부호화되고 명시적인 MTS 가 적용되는 경우에 “on”으로 설정된다. 따라서, 복호화 대상 블록이 영상 부호화 장치에 의해 묵시적인 MTS로 부호화된 경우에 sps_explicit_mts_intra_enabled_flag는 “off”로 설정된다. 한편, 앞서 설명된 바와 같이 묵시적인 MTS는 복호화 대상 블록이 영상 부호화 장치에 의해 화면 내 예측 방법으로 부호화된 경우 사용된다. 따라서, 복호화 대상 블록이 영상 부호화 장치에 의해 화면 내 예측 방법으로 부호화된 경우의 명시적인 MTS를 나타내는 sps_explicit_mts_inter_enabled_flag 값은 어떠한 값을 갖는지 여부는 중요하지 않다. 한편, 묵시적인 MTS는 복호화 대상 블록이 영상 부호화 장치에 의해 화면 내 예측 방법으로 부호화된 경우 사용될 수 있기 때문에 CuPredMode가 MODE_INTRA 값을 갖는 경우 적용될 수 있다. Looking at the conditions of high level syntax (HLS) for applying this implicit MTS, sps_mts_enabled_flag is a flag indicating whether MTS is applied regardless of whether it is implicit or explicit. Therefore, it is set to "on" to apply the implicit MTS. should be On the other hand, the implicit MTS is used when the decoding object block is encoded by the video encoding apparatus and encoded by the intra prediction method. Accordingly, the image decoding apparatus may determine whether to use the implicit MTS by checking the sps_explicit_mts_intra_enabled_flag value. However, sps_explicit_mts_intra_enabled_flag is set to “on” when the decoding object block is encoded by the intra prediction method when the decoding object block is encoded by the video encoding apparatus and explicit MTS is applied. Accordingly, when the decoding object block is encoded as implicit MTS by the video encoding apparatus, sps_explicit_mts_intra_enabled_flag is set to “off”. Meanwhile, as described above, the implicit MTS is used when the decoding object block is encoded by the video encoding apparatus using the intra prediction method. Therefore, it does not matter what value the sps_explicit_mts_inter_enabled_flag value indicating the explicit MTS when the decoding object block is encoded by the intra prediction method by the video encoding apparatus has. Meanwhile, since the implicit MTS can be used when a decoding object block is encoded by an intra prediction method by an image encoding apparatus, it can be applied when CuPredMode has a MODE_INTRA value.
이를 정리하면, 복호화 대상 블록이 영상 복호화 장치에 의해 묵시적인 MTS를 사용하여 복호화되기 위한 조건은 아래 조건과 같이 나열될 수 있다.In summary, the conditions for the decoding object block to be decoded using the implicit MTS by the image decoding apparatus may be listed as follows.
1) sps_mts_enabled_flag is equal to 11) sps_mts_enabled_flag is equal to 1
2) sps_explicit_mts_intra_enabled_flag is equal to 02) sps_explicit_mts_intra_enabled_flag is equal to 0
3) CuPredMode is equal to MODE_INTRA(화면 내 예측 방법)3) CuPredMode is equal to MODE_INTRA (in-screen prediction method)
한편, luma 블록에서 현재 위치의 예측 모드를 나타내는 CuPredMode[ 0 ][ xTbY ][ yTbY ]는 MODE_INTRA 값을 가질 수 있다.Meanwhile, CuPredMode[ 0 ][ xTbY ][ yTbY ] indicating the prediction mode of the current position in the luma block may have a MODE_INTRA value.
묵시적 MTS 사용이 가능한 추가적인 조건은 다음과 같다. Additional conditions for using implicit MTS are as follows.
4) lfnst_idx is equal to 04) lfnst_idx is equal to 0
5) intra_mip_flag is equal to 05) intra_mip_flag is equal to 0
여기서, lfnst_idx 값은 이차 변환(secondary transform)을 나타내며, lfnst_idx = 0인 경우 이차 변환(secondary transform)을 사용하지 않았음을 의미한다. intra_mip_flag 값은 화면 내 예측 방법 중 하나인 행렬(matrix)을 이용한 예측 방법 (matrix-based intra prediction: mip)을 사용하였는지 여부를 지시한다. intra_mip_flag = 0인 경우, 행렬(matrix)을 이용한 예측을 사용하지 않았음을 의미하고, intra_mip_flag = 1인 경우, 행렬을 이용한 예측을 사용하였음을 의미한다. Here, the lfnst_idx value represents a secondary transform, and when lfnst_idx = 0, it means that the secondary transform is not used. The intra_mip_flag value indicates whether a prediction method using a matrix (matrix-based intra prediction: mip), which is one of the intra prediction methods, is used. When intra_mip_flag = 0, it means that prediction using a matrix is not used, and when intra_mip_flag = 1, it means that prediction using a matrix is used.
즉, 본 실시예는 일반적인 화면 내 예측 방법으로 예측하면서 이차 변환(secondary transform)을 사용하지 않는 복호화 대상 블록을 위한 일차 변환 타입(primary transform type)(혹은, MTS)을 설정하는 방법에 대해 기술한다. 상기 다섯 가지 조건을 모두 만족하는 경우, 묵시적 MTS 기능이 활성화될 수 있다(도 13 참고).That is, the present embodiment describes a method of setting a primary transform type (or MTS) for a decoding object block that does not use a secondary transform while predicting with a general intra prediction method. . When all of the above five conditions are satisfied, the implicit MTS function may be activated (refer to FIG. 13 ).
도 8은 본 발명의 일실시예에 따른 묵시적 MTS 기능 적용 여부의 결정 방법을 나타낸다. 도 8의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.8 illustrates a method of determining whether to apply an implicit MTS function according to an embodiment of the present invention. Each of the steps of FIG. 8 may be performed in the image decoding apparatus.
도 8을 참조하면, 영상 복호화 장치는 sps_mts_enable_flag가 1의 값을 갖고, sps_explicit_mts_intra_enable_flag가 0의 값을 갖고, CuPredMode 가 MODE_INTRA 값을 갖는지 여부를 판단한다(S810). 판단 결과 상기 S810의 조건을 모두 만족하는 경우, 영상 복호화 장치는 lfnst_idx 가 0의 값을 갖고, intra_mip_flag가 0의 값을 갖는지 여부를 판단하여(S820), S810의 조건과 S820의 조건을 모두 만족하는 경우 implicit_MTS_enabled 값을 1로 설정한다(S830). 한편, 영상 복호화 장치는 상기 S810 또는 S820의 조건을 하나라도 만족하지 못하는 경우 implicit_MTS_enabled 값을 0으로 설정한다(S840).Referring to FIG. 8 , the video decoding apparatus determines whether sps_mts_enable_flag has a value of 1, sps_explicit_mts_intra_enable_flag has a value of 0, and CuPredMode has a MODE_INTRA value (S810). As a result of the determination, when all of the conditions of S810 are satisfied, the image decoding apparatus determines whether lfnst_idx has a value of 0 and intra_mip_flag has a value of 0 (S820), and satisfies both the conditions of S810 and S820. In this case, the implicit_MTS_enabled value is set to 1 (S830). Meanwhile, the image decoding apparatus sets the implicit_MTS_enabled value to 0 when none of the conditions of S810 or S820 are satisfied (S840).
복호화 대상 블록에 대한 묵시적 MTS 기능이 활성화되면 (implicit_MTS_enabled = on), 해당 블록의 너비 및 높이에 따라 MTS 값(실제 사용되는 변환(transform) 정보)를 유도한다(도 9 참고). 이때, 변환(transform)은 대상 블록의 일부만 변환(transform) 과정을 거치는 서브-블록 변환(sub-block transform; sbt)은 아니어야 한다. 즉, 대상 블록의 cu_sbt_flag 값은 "0"이다.When the implicit MTS function for the decoding object block is activated (implicit_MTS_enabled = on), an MTS value (transform information actually used) is derived according to the width and height of the corresponding block (refer to FIG. 9 ). In this case, the transform should not be a sub-block transform (sbt) in which only a part of the target block undergoes a transform process. That is, the cu_sbt_flag value of the target block is “0”.
도 9는 본 발명의 일실시예에 따른 묵시적 MTS의 해당 블록의 너비 및 높이에 따른 변환 정보를 유도하는 방법을 나타낸다. 도 9의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.9 shows a method of deriving transformation information according to the width and height of the corresponding block of the implicit MTS according to an embodiment of the present invention. Each of the steps of FIG. 9 may be performed in the image decoding apparatus.
도 9를 참조하면, 영상 복호화 장치는 implicit_MTS_enabled 값이 '1' 인지 여부를 판단한다(S910). 이 때, 도면에는 도시되지 않았지만, 영상 복호화 장치는 cu_sbt_flag 값이 “0”의 값을 갖는지 추가적으로 확인할 수 있다. 이 때, cu_sbt_flag가 '1'의 값을 갖는 경우에는 복호화 대상 블록이 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환에 의해 변환된 것을 나타낸다. 반대로, cu_sbt_flag가 '0'의 값을 갖는 경우에는 복호화 대상 블록이 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환에 의해 변환되지 않은 것을 나타낸다. 따라서, 도 14에 따른 동작들은 상기 cu_sbt_flag가 '0'의 값을 갖는 경우에만 동작되도록 설정될 수 있다.Referring to FIG. 9 , the image decoding apparatus determines whether the implicit_MTS_enabled value is '1' (S910). At this time, although not shown in the drawing, the image decoding apparatus may additionally check whether the cu_sbt_flag value has a value of “0”. In this case, when cu_sbt_flag has a value of '1', it indicates that the decoding object block is transformed by sub-block transformation in which only a part of the object block undergoes a transformation process. Conversely, when cu_sbt_flag has a value of '0', it indicates that the decoding object block is not transformed by sub-block transformation in which only a part of the object block undergoes a transformation process. Accordingly, the operations according to FIG. 14 may be set to be operated only when the cu_sbt_flag has a value of '0'.
implicit_MTS_enabled 값이 1인 경우, nTbW의 값이 4 이상, 16 이하의 값을 갖는지 여부를 판단하고(S920), implicit_MTS_enabled 값이 '1' 이 아닌 경우 동작을 종료한다. nTbW는 해당 변환 블록의 너비를 나타내며, 가로축 방향으로 추가 변환 타입인 DST-7이 사용될 수 있는지 여부를 판단하기 위하여 사용된다.When the implicit_MTS_enabled value is 1, it is determined whether the value of nTbW has a value of 4 or more and 16 or less (S920), and when the implicit_MTS_enabled value is not '1', the operation is terminated. nTbW represents the width of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the horizontal axis direction.
단계 S920의 판단 결과, nTbW의 값이 4 이상, 16 이하의 값을 갖는 경우 trTypeHor을 '1'로 설정하고(S930), nTbW의 값이 4 이상, 16 이하의 값을 갖지 않는 경우 trTypeHor을 '0'으로 설정한다(S940). 이 때, 상기 nTbW는 해당 변환 블록의 너비를 나타내며, 가로축 방향으로 추가 변환 타입인 DST-7이 사용될 수 있는지 여부를 판단하기 위하여 사용된다. 이 때, tyTypeHor이 '0'으로 설정된 경우에는 해당 변환 블록이 가로축 방향으로 디폴트 타입 변환인 DCT-II 변환을 사용하여 변환된 것으로 판단할 수 있다. 한편, 상기 trTypeHor이 '1'로 설정된 경우에는 해당 변환 블록이 가로축 방향으로 추가 변환 타입 중 하나인 DST-7 변환을 사용하여 변환된 것으로 판단할 수 있다.As a result of the determination in step S920, when the value of nTbW has a value of 4 or more and 16 or less, trTypeHor is set to '1' (S930), and when the value of nTbW does not have a value of 4 or more and 16 or less, trTypeHor is set to ' 0' (S940). In this case, the nTbW represents the width of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the horizontal axis direction. In this case, when tyTypeHor is set to '0', it may be determined that the corresponding transform block is transformed using the DCT-II transform that is the default type transform in the horizontal axis direction. Meanwhile, when the trTypeHor is set to '1', it may be determined that the corresponding transform block is transformed using the DST-7 transform, which is one of the additional transform types, in the horizontal axis direction.
또한, 영상 복호화 장치는 nTbH의 값이 4 이상, 16 이하의 값을 갖는지 여부를 판단하여(S950), nTbH의 값이 4 이상, 16 이하의 값을 갖는 경우 trTypeVer를 '1'로 설정하고(S960), nTbW의 값이 4 이상, 16 이하의 값을 갖지 않는 경우 trTypeVer를 '0'으로 설정한다(S970). 상기 nTbH는 해당 변환 블록의 높이를 나타내며, 세로축 방향으로 추가 변환 타입인 DST-7이 사용될 수 있는지 여부를 판단하기 위하여 사용된다. 이 때, trTypeVer이 '0'으로 설정된 경우에는 해당 변환 블록이 세로축 방향으로 디폴트 타입 변환인 DCT-II 변환을 사용하여 변환된 것으로 판단할 수 있다. 한편, 상기 trTypeVer이 '1'로 설정된 경우에는 해당 변환 블록이 세로축 방향으로 추가 변환 타입 중 하나인 DST-7 변환을 사용하여 변환된 것으로 판단할 수 있다.In addition, the image decoding apparatus determines whether the value of nTbH has a value of 4 or more and 16 or less (S950), and sets trTypeVer to '1' when the value of nTbH has a value of 4 or more and 16 or less ( S960), when the value of nTbW does not have a value of 4 or more and 16 or less, trTypeVer is set to '0' (S970). The nTbH represents the height of the corresponding transform block, and is used to determine whether an additional transform type, DST-7, can be used in the vertical axis direction. In this case, when trTypeVer is set to '0', it may be determined that the corresponding transform block is transformed using the DCT-II transform, which is the default type transform in the vertical axis direction. On the other hand, when the trTypeVer is set to '1', it can be determined that the corresponding transform block is transformed using the DST-7 transform, which is one of the additional transform types, in the vertical axis direction.
도 10은 본 발명의 일 실시예에 따른 변환 관련 파라미터에 기반한 역변환 수행 방법을 나타낸다. 도 10의 각 단계들은 영상 복호화 장치에서 수행될 수 있으며, 예를 들어 복호화 장치의 역변환부에서 수행될 수 있다.10 illustrates a method of performing an inverse transform based on a transform-related parameter according to an embodiment of the present invention. Each of the steps of FIG. 10 may be performed by an image decoding apparatus, for example, by an inverse transform unit of the decoding apparatus.
도 10을 참조하면, 영상 복호화 장치는 sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0], NTbW, nTbH를 획득한다(S1010). 이 때, sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0] 가 각각 무엇을 나타내는지에 관해서는 도 8의 관련 설명에서 상세히 설명되어 있으며, 상기 파라미터들은 복호화 대상 블록이 묵시적 MTS를 적용할 수 있는지 여부를 판단하기 위해 사용된다. 또한, NTbW, nTbH는 각각 해당 변환 블록의 너비 및 높이를 나타내며, 추가 변환 타입인 DST-7이 사용될 수 있는지 여부를 판단하기 위하여 사용된다.Referring to FIG. 10 , the image decoding apparatus obtains sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0], NTbW, nTbH (S1010). At this time, the related parameters of sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0] are described in detail in the description of FIG. Used to determine whether a block can apply implicit MTS. In addition, NTbW and nTbH respectively indicate the width and height of the corresponding transform block, and are used to determine whether an additional transform type, DST-7, can be used.
다음으로, 영상 복호화 장치는 sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], Lfnst_idx, IntraMipFlag[x0, y0] 값을 기반으로 implicit_MTS_enabled 를 설정한다(S1020). 이 때, 상기 implicit_MTS_enable는 도 13의 프로세스를 수행함으로써 설정될 수 있다.Next, the image decoding apparatus sets implicit_MTS_enabled based on values of sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], Lfnst_idx, IntraMipFlag[x0, y0] (S1020). In this case, the implicit_MTS_enable may be set by performing the process of FIG. 13 .
다음으로, 영상 복호화 장치는 implicit_MTS_enabled, nTbW, nTbH 값을 기반으로 trTypeHor 및 trTypeVer를 설정한다(S1030). 이 때, 상기 trTypeHor 및 trTypeVer는 방법은 도 9의 프로세스를 수행함으로써 설정될 수 있다.Next, the image decoding apparatus sets trTypeHor and trTypeVer based on implicit_MTS_enabled, nTbW, and nTbH values (S1030). In this case, the trTypeHor and trTypeVer methods may be set by performing the process of FIG. 9 .
다음으로, 영상 복호화 장치는 trTypeHor, trTypeVer을 기반으로 역변환을 수행한다(S1040). trTypeHor 및 trTypeVer에 따른 적용되는 역변환은 표 2에 따라 구성될 수 있다. 예를 들어, trTypeHor 이 “1” 이고 trTypeVer이 “0”인 경우, 가로축 방향으로는 DST-7이 적용되고, 세로축 방향으로는 DST-II가 적용될 수 있다.Next, the image decoding apparatus performs inverse transformation based on trTypeHor and trTypeVer (S1040). An inverse transform applied according to trTypeHor and trTypeVer may be configured according to Table 2. For example, when trTypeHor is “1” and trTypeVer is “0”, DST-7 may be applied in the horizontal axis direction and DST-II may be applied in the vertical axis direction.
한편, 도면에는 도시되지 않았으나, 영상 부호화 장치의 관점에서는 묵시적 MTS 사용 여부를 설정하기 위하여, sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, y0], NTbW, nTbH를 설정할 수 있다.Meanwhile, although not shown in the drawing, in order to set whether or not to use implicit MTS from the viewpoint of the video encoding apparatus, sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag, CuPredMode[0][xTbY][yTbY], lfnst_idx, IntraMipFlag[x0, nTbHy0], NTbW, n can be set.
3. 제2 실시예(명시적 MTS)3. Second embodiment (explicit MTS)
본 실시예에서는 HLS(high level syntax)에서 명시적으로 MTS 기능을 활성화하는 경우 복호화 대상 블록에 적용되는 변환(transform) 방법을 설명한다. 명시적인 MTS가 적용되기 위한 HLS(high level syntax)의 조건에 대해서 살펴보면, sps_mts_enabled_flag는 묵시적 또는 명시적 여부에 관계없이 MTS 가 적용되는지 여부를 나타내는 플래그이므로, 묵시적 MTS가 적용되기 위해서는 "on"으로 설정되어야 한다. 한편, 명시적인 MTS는 복호화 대상 블록이 화면 내 예측 방법으로 부호화된 경우와 화면 간 예측 방법으로 부호화된 경우에 모두 적용될 수 있으므로 명시적인 MTS가 적용되는 경우 sps_explicit_mts_intra_enabled_flag 및/또는 sps_explicit_mts_intra_enabled_flag 가 모두 “on”으로 설정된다. 이를 정리하면, 아래 조건과 같이 나열될 수 있다.This embodiment describes a transform method applied to a decoding object block when an MTS function is explicitly activated in high level syntax (HLS). Looking at the conditions of high level syntax (HLS) for applying explicit MTS, sps_mts_enabled_flag is a flag indicating whether MTS is applied regardless of whether it is implicit or explicit, so it is set to "on" for implicit MTS to be applied should be Meanwhile, since the explicit MTS can be applied to both the case where the decoding object block is encoded by the intra prediction method and the case where the decoding method is encoded by the inter prediction method, when the explicit MTS is applied, sps_explicit_mts_intra_enabled_flag and/or sps_explicit_mts_intra_enabled_flag are all set to “on”. is set Summarizing this, it can be listed as the condition below.
1) sps_mts_enabled_flag = on1) sps_mts_enabled_flag = on
2) sps_explicit_mts_intra_enabled_flag = on2) sps_explicit_mts_intra_enabled_flag = on
3) sps_explicit_mts_inter_enabled_flag = on3) sps_explicit_mts_inter_enabled_flag = on
여기서, 복호화 대상 블록이 화면 내 예측 방법으로 부호화된 경우, sps_explicit_mts_intra_enabled_flag = "on" 조건을 확인하고, 복호화 대상 블록이 화면 간 예측 방법으로 부호화된 경우, sps_explicit_mts_inter_enabled_flag = "on" 조건을 확인한다. Here, when the decoding object block is encoded by the intra prediction method, the condition sps_explicit_mts_intra_enabled_flag = "on" is checked, and when the decoding object block is encoded by the inter prediction method, the sps_explicit_mts_inter_enabled_flag = "on" condition is checked.
명시적 MTS 사용이 가능한 추가적인 조건은 다음과 같다.Additional conditions for using explicit MTS are as follows.
4) lfnst_idx is equal to 0 (묵시적 MTS 참고)4) lfnst_idx is equal to 0 (see implicit MTS)
5) transform_skip_flag is equal to 05) transform_skip_flag is equal to 0
6) intra_subpartitions_mode_flag is equal to 06) intra_subpartitions_mode_flag is equal to 0
7) cu_sbt_flag is equal to 0 (묵시적 MTS 참고)7) cu_sbt_flag is equal to 0 (see implicit MTS)
8) valid MTS 영역8) valid MTS area
9) 대상 블록의 너비 및 높이가 32 이하9) The target block has a width and height of 32 or less
여기서, lfnst_idx 값은 이차 변환(secondary transform)을 나타내며, lfnst_idx = 0인 경우 이차 변환(secondary transform)을 사용하지 않았음을 의미한다. Here, the lfnst_idx value represents a secondary transform, and when lfnst_idx = 0, it means that the secondary transform is not used.
transform_skip_flag 값은 변환(transform) 과정을 생략함을 지시하며, transform_skip_flag = 0 인 경우 변환(transform) 과정의 생략없이 정상적으로 변환(transform)을 진행함을 나타낸다. intra_subpartitions_mode_flag 값은 화면 내 예측 방법 중 하나로써 대상 블록을 다수 개의 서브-블록(sub-block)으로 나누어서 예측, 변환, 양자화 과정을 거침을 지시한다. 즉, 해당 플래그 값(intra_subpartitions_mode_flag)이 "0"인 경우, 대상 블록을 서브-블록(sub-block)으로 나누지 않고, 일반적인 화면 내 예측을 수행하였음을 의미한다. 한편, 추가 변환(extra transforms)(DST-7 및 DCT-8)의 지원되는 크기에 의하여(최대 32x32까지 지원, 앞서 설명함), MTS 사용이 제한될 수 있다. 즉, 대상 블록의 너비 및 높이가 32 이하여야 MTS 사용이 가능해진다. 즉, 너비 및 높이 중 하나라도 32를 초과하면, (MTS의 사용이 불가) 디폴트 변환(default transform)(*)인 DCT-II가 수행된다.The transform_skip_flag value indicates that the transform process is omitted, and when transform_skip_flag = 0, it indicates that the transform is normally performed without omitting the transform process. The intra_subpartitions_mode_flag value indicates that the target block is divided into a plurality of sub-blocks and undergoes prediction, transformation, and quantization processes as one of the intra-picture prediction methods. That is, when the corresponding flag value (intra_subpartitions_mode_flag) is “0”, it means that general intra prediction is performed without dividing the target block into sub-blocks. On the other hand, by the supported size of the extra transforms (DST-7 and DCT-8) (up to 32x32 support, described above), MTS use may be limited. That is, when the width and height of the target block are 32 or less, MTS can be used. That is, if any one of the width and the height exceeds 32 (the use of MTS is not possible), DCT-II, which is a default transform (*), is performed.
cu_sbt_flag는 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환(sub-block transform, sbt)인지 여부를 지시한다. 즉, cu_sbt_flag 값이 “0” 인 경우, 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환(sub-block transform, sbt)이 아님을 의미한다. cu_sbt_flag indicates whether a sub-block transform (sbt) in which only a part of the target block undergoes a transformation process. That is, when the cu_sbt_flag value is “0”, it means that it is not a sub-block transform (sbt) in which only a part of the target block undergoes a transformation process.
이하에서는 유효(valid) 영역 (이하, 유효 MTS 영역)에 대해 자세히 설명한다. Hereinafter, a valid area (hereinafter, a valid MTS area) will be described in detail.
도 11은 32x32 복호화 대상 블록 내에서 굵은 선으로 마킹한 유효 MTS 영역의 일례를 도시한다.11 shows an example of an effective MTS area marked with a thick line in a 32x32 decoding object block.
도 11을 참조하면, DC 계수를 제외한 좌상측의 16x16 영역이 유효MTS 영역이 된다. 즉, 1x1(DC) 영역을 제외한 좌상측 16x16 영역이 유효 MTS 영역이다. 예컨대, 대상 블록 내 모든 넌-제로 계수들(non-zero coefficients)의 위치가 유효 MTS 영역에 속하면 MTS가 적용 가능하며, 하나 이상의 넌-제로 계수들(non-zero coefficients) 값이 유효 MTS 영역을 벗어나면 MTS 적용이 불가하여 디폴트 변환(default transform)(*)인 DCT-II가 수행된다. 이는 앞서 설명한 제로-아웃(zero-out) 영역과 동일 개념이다. 즉, 32x32 대상 블록이 MTS (즉, DST-7 또는 DCT-8)를 사용하면, 좌상측 16x16은 유효 영역이 되고, 나머지 부분은 제로-아웃(zero-out) 영역이 되는 것처럼, 32x32 대상 블록 내 모든 넌-제로 계수들(non-zero coefficients)이 좌상측 16x16 영역에 위치하면, MTS (즉, DST-7 또는 DCT-8)적용이 가능하다. 다만, 예외적으로 블록 내 넌-제로 계수(non-zero coefficient)가 하나이고, 그 위치가 DC (1x1)라면, MTS 적용이 불가하여 디폴트 변환(default transform)(*)인 DCT-II가 수행된다.Referring to FIG. 11 , the 16x16 area on the upper left side excluding the DC coefficient becomes the effective MTS area. That is, the upper left 16x16 area excluding the 1x1 (DC) area is an effective MTS area. For example, if the positions of all non-zero coefficients in the target block belong to the effective MTS area, MTS is applicable, and one or more non-zero coefficients values are in the effective MTS area. If it is out of , MTS cannot be applied, so DCT-II, which is a default transform (*), is performed. This is the same concept as the zero-out area described above. That is, if a 32x32 target block uses MTS (ie, DST-7 or DCT-8), the upper left 16x16 becomes a valid area, and the rest of the 32x32 target block becomes a zero-out area. If all my non-zero coefficients are located in the upper left 16x16 region, MTS (ie, DST-7 or DCT-8) can be applied. However, exceptionally, if there is only one non-zero coefficient in the block and the position is DC (1x1), MTS cannot be applied and DCT-II, which is a default transform (*), is performed. .
결과적으로, 본 실시예에서는 MTS 적용 가능 여부를 결정하기 위해, 유효 MTS 영역을 확인해야 하고, 유효 MTS 영역의 확인을 위해서는 아래의 두 조건을 확인하여야 한다.As a result, in this embodiment, in order to determine whether the MTS is applicable or not, the valid MTS area needs to be checked, and the following two conditions need to be checked for the valid MTS area.
(a) 블록 내 넌-제로 계수(non-zero coefficient)가 하나일 때, 그 위치가 DC (1x1) 인지(a) When the non-zero coefficient in the block is one, the position is DC (1x1)
(b) 블록 내 모든 넌-제로 계수들(non-zero coefficients)이 좌상측 16x16 영역에 위치하는지(b) whether all non-zero coefficients in the block are located in the upper left 16x16 region
상기 (a) 조건을 확인하기 위해서, 마지막 위치(last position) 정보를 활용할 수 있다. 여기서, 마지막 위치(last position)란 대상 블록 내 스캔 순서 상 마지막에 위치하는 넌-제로 계수(non-zero coefficient), 즉, 마지막 유효 계수 (last significant coefficient)의 위치를 뜻한다. 일례로, 마지막 위치(last position), 즉, 마지막 넌-제로 계수(last non-zero coefficient)를 포함한 마지막 서브 블록(last sub block) 정보를 활용할 수 있다. 예컨대, 마지막 서브 블록(last sub block)의 위치가 (0,0)이 아니라면, (a) 조건을 만족할 수 있다. 다시 말해, 대상 블록 내 서브 블록(sub block) 스캔 순서 상 마지막 서브 블록(last sub block)의 위치가 "0"이 아니라면(0 보다 크다면), (a) 조건을 만족할 수 있다. 또는, 마지막 서브 블록(last sub block)의 위치가 "0"이라면, 해당 서브 블록(sub block) 내 마지막 위치(last position)의 상대적 위치를 나타내는 마지막 스캔 위치(last scan position) 정보를 활용할 수도 있다. 예컨대, 해당 서브 블록(sub block) 내 계수들(coefficients) 스캔 순서 상 마지막 스캔 위치(last scan position)가 "0"이 아니라면 (0 보다 크다면), (a) 조건을 만족할 수 있다(도 12 참고). 또한, 앞서 언급한 대로 본 발명의 MTS는 루마(luma) 블록에 적용된다.In order to confirm the condition (a), last position information may be used. Here, the last position refers to the position of the last non-zero coefficient, that is, the last significant coefficient in the scan order in the target block. As an example, information about the last sub-block including the last position, that is, the last non-zero coefficient, may be used. For example, if the position of the last sub block is not (0, 0), condition (a) may be satisfied. In other words, if the position of the last sub block in the sub block within the target block is not “0” (greater than 0), the condition (a) may be satisfied. Alternatively, if the position of the last sub-block is "0", information about the last scan position indicating the relative position of the last position in the sub-block may be used. . For example, if the last scan position in the scan order of the coefficients in the sub-block is not “0” (greater than 0), the condition (a) may be satisfied ( FIG. 12 ). reference). In addition, as mentioned above, the MTS of the present invention is applied to a luma block.
상기 (b) 조건을 확인하기 위해서, 하나 이상의 넌-제로 계수들(non-zero coefficients)을 포함한 서브 블록(sub block) 정보를 활용할 수 있다. 여기서, 하나 이상의 넌-제로 계수들(non-zero coefficients)을 포함한 서브 블록(sub block) 정보는 해당 서브 블록(sub block)의 sb_coded_flag 값으로 확인 가능하다. 해당 플래그 값이 "1"인 경우(sb_coded_flag = 1), 해당 서브 블록(sub block) 내에는 하나 이상의 넌-제로 계수들(non-zero coefficients)이 위치함을 의미하고, sb_coded_flag = 0 인 경우, 해당 서브 블록(sub block) 내의 모든 계수들(coefficients)이 올 제로(all zero) 임을 의미한다. 즉, 대상 블록 내 sb_coded_flag 값이 "1"인 모든 서브 블록(sub block)들의 위치가 (0,0)에서 (3,3) 이내에 위치한다면, (b) 조건을 만족할 수 있다. 반대로, 대상 블록 내 sb_coded_flag 값이 "1"인 sub block들 중 하나라도 (0,0)에서 (3,3) 이내의 위치에서 벗어난다면, (b) 조건을 만족할 수 없다. 다시 말해, 대상 블록 내 sb_coded_flag 값이 "1"인 서브 블록(sub block)들 중 하나라도 서브 블록(sub block)의 x 좌표 또는 y 좌표 중 3 보다 큰 값이 있다면, (b) 조건을 만족할 수 없다 (도 18 참고). 다른 실시 예로, 대상 블록 내 서브 블록(sub block) 스캔 순서 상 sb_coded_flag 값이 "1"이면서 sub block의 x 좌표 또는 y 좌표 중 3 보다 큰 값을 가진 첫번째 서브 블록(sub block)이 발견되면, (b) 조건을 거짓(false)으로 설정하고, 스캔 순서 상 이후의 sb_coded_flag 값이 "1"인 서브 블록(sub block)의 확인 과정을 생략할 수도 있다(도 13 참고). 또한, 앞서 언급한 대로 본 발명의 MTS는 루마(luma) 블록에 적용된다.In order to confirm the condition (b), sub-block information including one or more non-zero coefficients may be used. Here, sub-block information including one or more non-zero coefficients can be confirmed with an sb_coded_flag value of the corresponding sub-block. When the corresponding flag value is "1" (sb_coded_flag = 1), it means that one or more non-zero coefficients are located in the corresponding sub block, and when sb_coded_flag = 0, It means that all coefficients in the corresponding sub-block are all zeros. That is, if the positions of all sub-blocks whose sb_coded_flag value is “1” in the target block are located within (0,0) to (3,3), the condition (b) may be satisfied. Conversely, if even one of the sub-blocks having the sb_coded_flag value of “1” in the target block is out of position within (0,0) to (3,3), the condition (b) cannot be satisfied. In other words, if even one of the sub-blocks with the sb_coded_flag value of “1” in the target block has a value greater than 3 among the x-coordinate or the y-coordinate of the sub-block, the condition (b) can be satisfied. None (see FIG. 18). As another embodiment, when the sb_coded_flag value is "1" in the sub block scan order in the target block and the first sub block having a value greater than 3 among the x coordinate or the y coordinate of the sub block is found, ( b) A condition may be set to false, and a process of checking a sub-block having a sb_coded_flag value of “1” after the scan order may be omitted (refer to FIG. 13 ). In addition, as mentioned above, the MTS of the present invention is applied to a luma block.
도 12는 본 발명의 일실시예에 따른 유효(valid) MTS를 판단 방법을 나타낸다. 도 12의 실시예는 앞서 설명된 유효 MTS 영역의 확인을 위한 두가지 조건들 중 (a)의 조건을 확인하는 방법에 관한 것이다. 도 12의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.12 shows a method of determining a valid MTS according to an embodiment of the present invention. The embodiment of FIG. 12 relates to a method of confirming the condition of (a) among the two conditions for checking the valid MTS area described above. Each of the steps of FIG. 12 may be performed in the image decoding apparatus.
도 12를 참조하면, 영상 복호화 장치는 MtsDcOnlyFlag를 “1”로 설정한다 (S1210). 상기 MtsDcOnlyFlag는 블록 내 넌-제로 계수(non-zero coefficient)가 하나이고 그 위치가 DC 인지 여부를 지시할 수 있다. 예를 들어, 블록 내 넌-제로 계수(non-zero coefficient)가 하나이고 그 위치가 DC인 경우 상기 MtsDcOnlyFlag는 “1”의 값을 갖고, 그 밖의 경우에는 MtsDcOnlyFlag는 “0”의 값을 갖는다. 이 때, 영상 복호화 장치는 MtsDcOnlyFlag 값이 “0”을 갖는 경우에 MTS가 적용될 수 있다. 단계 S1210에서 MtsDcOnlyFlag를 “1”로 설정하는 이유는 해당 블록이 이하의 블록 내 넌-제로 계수(non-zero coefficient)가 하나인 경우 DC 위치에 있지 않은 조건을 만족하는 경우에 MtsDcOnlyFlag를 “0”으로 재설정하고, 그렇지 않은 경우에는 MTS를 적용하지 않기 위함이다.Referring to FIG. 12 , the image decoding apparatus sets MtsDcOnlyFlag to “1” (S1210). The MtsDcOnlyFlag may indicate whether there is one non-zero coefficient in the block and the position is DC. For example, if there is one non-zero coefficient in the block and the position is DC, the MtsDcOnlyFlag has a value of “1”, and in other cases, the MtsDcOnlyFlag has a value of “0”. In this case, the video decoding apparatus may apply MTS when the MtsDcOnlyFlag value has “0”. The reason for setting MtsDcOnlyFlag to “1” in step S1210 is to set MtsDcOnlyFlag to “0” when the corresponding block satisfies the condition that the block is not in the DC position when there is one non-zero coefficient in the block below. reset to , otherwise, MTS is not applied.
다음으로, 영상 복호화 장치는 대상 블록이 루마(luma) 블록인지 여부를 판단한다(S1220). 대상 블록이 루마 블록인지 여부를 판단하는 목적은 앞서 설명한 바와 같이 MTS는 루마 블록에서만 적용되기 때문이다.Next, the image decoding apparatus determines whether the target block is a luma block (S1220). The purpose of determining whether the target block is the luma block is because the MTS is applied only to the luma block as described above.
다음으로, 영상 복호화 장치는 마지막 서브 블록(last sub block)이 0 보다 큰지 여부를 판단하여(S1230), 마지막 서브 블록이 0보다 큰 경우 MtsDcOnlyFlag를 “0”으로 설정하고(S1240), 프로세스를 종료한다.Next, the image decoding apparatus determines whether the last sub-block is greater than 0 (S1230), and when the last sub-block is greater than 0, sets MtsDcOnlyFlag to “0” (S1240), and ends the process do.
단계 S1230의 판단 결과, 마지막 서브 블록이 0보다 크지 않은 경우 마지막 스캔 위치(last scan position)가 0보다 큰지 여부를 판단한다(S1250). As a result of the determination in step S1230, if the last sub-block is not greater than 0, it is determined whether the last scan position is greater than 0 (S1250).
단계 S1250의 판단 결과, 마지막 스캔 위치가 0보다 큰 경우 MtsDcOnlyFlag를 “0”으로 설정하고(S1240), 프로세스를 종료한다.As a result of the determination in step S1250, if the last scan position is greater than 0, MtsDcOnlyFlag is set to “0” (S1240), and the process is terminated.
단계 S1250의 판단 결과, 마지막 스캔 위치가 0보다 크지 않은 경우에는 프로세스를 종료한다.As a result of the determination in step S1250, if the last scan position is not greater than 0, the process is terminated.
본 실시예에 따르면, 마지막 서브 블록이 0보다 크거나 마지막 스캔 위치가 0보다 크면 MtsDcOnlyFlag를 “0”으로 설정하고, 그렇지 않은 경우에는 MtsDcOnlyFlag를 “1”로 설정한다. According to this embodiment, MtsDcOnlyFlag is set to “0” if the last sub-block is greater than 0 or the last scan position is greater than 0, otherwise MtsDcOnlyFlag is set to “1”.
이후 MTS를 적용할지 여부를 결정할 때, MtsDcOnlyFlag를 확인하여 “1”의 값을 갖는 경우에는 MTS를 적용하지 않고, 디폴트 변환인 DCT-II가 적용될 수 있다 있다.Thereafter, when determining whether or not to apply MTS, MtsDcOnlyFlag is checked and, if it has a value of “1”, MTS is not applied and DCT-II, which is a default transformation, may be applied.
도 13은 본 발명의 다른 실시예에 따른 유효 MTS 영역을 판단하는 방법을 나타낸다. 도 13의 실시예는 앞서 설명된 유효 MTS 영역의 확인을 위한 두가지 조건들 중 (b)의 조건을 확인하는 방법을 구체적으로 나타낸다. 도 13의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.13 illustrates a method of determining an effective MTS area according to another embodiment of the present invention. The embodiment of FIG. 13 specifically shows a method of confirming the condition of (b) among the two conditions for confirming the valid MTS area described above. Each of the steps of FIG. 13 may be performed in the image decoding apparatus.
도 13을 참조하면, 영상 복호화 장치는 MtsZerooutFlag를 “1”로 설정한다(S1305). 상기 MtsZerooutFlag는 블록 내의 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하는지 여부를 지시한다. 예를 들어, 블록 내의 넌-제로 계수들 중 적어도 하나가 제로-아웃(zero-out) 영역에 존재하는 경우 MtsZerooutFlag는 “0”의 값을 갖고, 블록 내의 모든 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하지 않는 경우 MtsZerooutFlag는 “1”의 값을 가질 수 있다. 본 실시예에서는 블록 내의 모든 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하지 않는다고 가정하여 MtsZerooutFlag의 초기값을 “1”로 설정하고, 제로-아웃 영역의 조건과 넌-제로 계수의 조건을 동시에 충족하는 경우 MtsZerooutFlag를 “0”으로 설정할 수 있다. 이 때, “0”의 값을 갖는 MtsZerooutFlag가 존재하는 경우에는 명시적 MTS를 적용하지 않을 수 있다.Referring to FIG. 13 , the video decoding apparatus sets MtsZerooutFlag to “1” (S1305). The MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region. For example, if at least one of the non-zero coefficients in the block exists in the zero-out region, MtsZerooutFlag has a value of “0”, and all non-zero coefficients in the block are zero-out (zero-out). If it does not exist in the zero-out) area, MtsZerooutFlag may have a value of “1”. In this embodiment, it is assumed that all non-zero coefficients in the block do not exist in the zero-out region, and the initial value of MtsZerooutFlag is set to “1”, and the conditions of the zero-out region and the non-zero coefficients are MtsZerooutFlag can be set to “0” when both conditions are satisfied. In this case, when MtsZerooutFlag having a value of “0” exists, explicit MTS may not be applied.
다음으로, 영상 복호화 장치는 변수 i의 초기값을 마지막 서브 블록(last sub block)의 값으로 설정하되, 상기 변수 i의 값을 1씩을 차감하여 변수 i의 값이 0 이 될때까지 이하의 단계 S1325 내지 단계 S1350 의 프로세스들을 반복 수행한다(S1320). 단계 S1820의 루틴을 반복 수행하는 목적은 마지막 서브 블록으로부터 첫번째 서브 블록까지 모든 서브 블록의 sb_coded_flag 값을 확인하기 위함에 있다. 앞서 살펴본 바와 같이 해당 플래그 값이 “1”인 경우 해당 서브 블록 내에는 하나 이상의 넌-제로 계수가 존재함으로 의미하고, 해당 플래그 값이 “0”인 경우 해당 서브 블록 내에는 넌-제로 계수가 존재하지 않음을 의미한다. 따라서, 도 11을 참조하면 대상 블록 내 sb_coded_flag 값이 “1”인 모든 서브 블록들의 위치가 (0, 0)에서 (3, 3) 내에만 존재하는 경우, 즉, 변수 i 를 기준으로 0 내지 8 이내에만 존재하는 경우에는 명시적 MTS를 적용하기 위한 (b) 조건이 충족된 것으로 판단될 수 있다.Next, the image decoding apparatus sets the initial value of the variable i to the value of the last sub block, and subtracts the value of the variable i by 1 until the value of the variable i becomes 0 in the following step S1325 The processes of steps S1350 to S1350 are repeated (S1320). The purpose of repeating the routine of step S1820 is to check the sb_coded_flag values of all sub-blocks from the last sub-block to the first sub-block. As described above, when the corresponding flag value is “1”, it means that one or more non-zero coefficients exist in the corresponding sub-block, and when the corresponding flag value is “0”, non-zero coefficients exist in the corresponding sub-block. means not Therefore, referring to FIG. 11 , when the positions of all sub-blocks whose sb_coded_flag value is “1” in the target block exist only within (0, 0) to (3, 3), that is, 0 to 8 based on variable i If it exists only within, it can be determined that the condition (b) for applying the explicit MTS is satisfied.
다음으로, 영상 복호화 장치는 변수 i가 마지막 서브 블록(last sub block)보다 작고(i<last sub block), 변수 i가 0보다 큰(i>0) 조건을 동시에 충족하는지 여부를 판단한다(S1325). 예를 들어, 단계 S1320의 루틴이 처음 실행될 때에는 변수 i의 초기값이 마지막 서브 블록(last sub block)과 동일한 값으로 설정되기 때문에 단계 S1325의 조건은 충족되지 않는다. Next, the image decoding apparatus determines whether a condition in which the variable i is smaller than the last sub block (i<last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied (S1325) ). For example, when the routine of step S1320 is first executed, the condition of step S1325 is not satisfied because the initial value of the variable i is set to the same value as that of the last sub block.
단계 S1325의 판단 결과, 변수 i가 마지막 서브 블록(last sub block)보다 작고(i<last sub block), 변수 i가 0보다 큰(i>0) 조건을 동시에 충족하는 경우 sb_coded_flag를 파싱하고(S1830). 두 조건을 동시에 충족하지 않는 경우 sb_coded_flag를 “1”로 설정한다(S1835).As a result of the determination of step S1325, when the condition that the variable i is smaller than the last sub block (i<last sub block) and the variable i is larger than 0 (i>0) simultaneously meets the conditions, sb_coded_flag is parsed (S1830) ). If both conditions are not satisfied at the same time, sb_coded_flag is set to “1” (S1835).
이 때, 파싱되는 sb_coded_flag는 해당 서브 블록 내에 하나 이상의 넌-제로 계수가 존재하는지 여부를 지시한다. 해당 서브 블록 내에 하나 이상의 넌-제로 계수가 존재하는 경우 sb_coded_flag는 “1”의 값을 갖고, 해당 서브 블록 내에 넌-제로 계수가 존재하지 않는 경우 sb_coded_flag는 “0”의 값을 갖는다.At this time, the parsed sb_coded_flag indicates whether one or more non-zero coefficients exist in the corresponding sub-block. When one or more non-zero coefficients exist in the corresponding subblock, sb_coded_flag has a value of “1”, and when there is no non-zero coefficient in the corresponding subblock, sb_coded_flag has a value of “0”.
한편, i가 마지막 서브 블록과 첫번째 서브 블록을 지시하는 경우에만 단계 S1835가 수행된다. 즉, 마지막 서브 블록 내에는 마지막 위치(last position) 계수가 포함되기 때문에 sb_coded_flag 값은 “1”의 값이 파싱되고, 첫번째 서브 블록 내에는 DC 계수가 존재하기 때문에 sb_coded_flag 값은 “1”의 값이 파싱된다.On the other hand, step S1835 is performed only when i indicates the last sub-block and the first sub-block. That is, since the last position coefficient is included in the last sub-block, a value of “1” is parsed for the sb_coded_flag value, and a DC coefficient exists in the first sub-block, so the sb_coded_flag value has a value of “1”. is parsed
다음으로, 영상 복호화 장치는 해당 블록이 루마(luma) 블록인지 여부를 판단한다(S1340). 대상 블록이 루마 블록인지 여부를 판단하는 목적은 앞서 설명한 바와 같이 MTS는 루마 블록에서만 적용되기 때문이다.Next, the image decoding apparatus determines whether the corresponding block is a luma block (S1340). The purpose of determining whether the target block is the luma block is because the MTS is applied only to the luma block as described above.
단계 S1340의 판단 결과, 해당 블록이 루마 블록인 경우 “sb_coded_flag && ( xSb > 3 || ySb > 3 )"의 조건을 충족하는지 여부를 판단하여(S1845), 단계 S1845의 조건을 충족하는 경우 MtsZerooutFlag를 “0”으로 설정한다(S1350).As a result of the determination of step S1340, if the corresponding block is a luma block, it is determined whether the condition of “sb_coded_flag && ( xSb > 3 | | ySb > 3 )” is satisfied (S1845). If the condition of step S1845 is satisfied, MtsZerooutFlag is set It is set to “0” (S1350).
본 실시예에 따르면, 대상 블록 내 서브 블록 (3, 3) 이외의 서브 블록, 즉, 제로-아웃 영역에서 하나라도 넌-제로 계수가 발견되는 경우 MtsZerooutFlag는 “0”으로 설정되어 명시적 MTS를 적용하지 못하는 것으로 판단될 수 있다.According to the present embodiment, when even one non-zero coefficient is found in a sub-block other than sub-blocks (3, 3) in the target block, that is, in the zero-out area, MtsZerooutFlag is set to “0” to indicate an explicit MTS. It may be judged not applicable.
도 14는 본 발명의 또 다른 실시예에 따른 유효 MTS를 판단 방법을 나타낸다. 도 14의 실시예는 앞서 설명된 유효 MTS 영역의 확인을 위한 두가지 조건들 중 (b)의 조건을 확인하는 방법을 구체적으로 나타낸다. 다만, 도 13의 실시예에서는 모든 서브 블록의 sb_coded_flag를 확인함으로써 유효 MTS 영역을 확인하였으나, 도 14의 실시예에서는 첫번째 무효(invalid) MTS가 발견되는 경우 이후의 sb_coded_flag를 확인하지 않아도 된다는 점에서 차이가 있다. 도 14의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.14 illustrates a method of determining an effective MTS according to another embodiment of the present invention. The embodiment of FIG. 14 specifically shows a method of confirming the condition of (b) among the two conditions for confirming the valid MTS area described above. However, in the embodiment of FIG. 13 , the valid MTS area was checked by checking the sb_coded_flag of all sub-blocks, but in the embodiment of FIG. 14 , when the first invalid MTS is found, there is a difference in that the subsequent sb_coded_flag does not need to be checked. there is Each of the steps of FIG. 14 may be performed in the image decoding apparatus.
도 14를 참조하면, 영상 복호화 장치는 MtsZerooutFlag를 “1”로 설정한다(S1405). 상기 MtsZerooutFlag는 블록 내의 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하는지 여부를 지시한다. 예를 들어, 블록 내의 넌-제로 계수들 중 적어도 하나가 제로-아웃(zero-out) 영역에 존재하는 경우 MtsZerooutFlag는 “0”의 값을 갖고, 블록 내의 모든 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하지 않는 경우 MtsZerooutFlag는 “1”의 값을 가질 수 있다. 본 실시예에서는 블록 내의 모든 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하지 않는다고 가정하여 MtsZerooutFlag의 초기값을 “1”로 설정하고, 제로-아웃 영역의 조건과 넌-제로 계수의 조건을 동시에 충족하는 경우 MtsZerooutFlag를 “0”으로 설정할 수 있다. 이 때, “0”의 값을 갖는 MtsZerooutFlag가 존재하는 경우에는 명시적 MTS를 적용하지 않을 수 있다.Referring to FIG. 14 , the image decoding apparatus sets MtsZerooutFlag to “1” (S1405). The MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region. For example, if at least one of the non-zero coefficients in the block exists in the zero-out region, MtsZerooutFlag has a value of “0”, and all non-zero coefficients in the block are zero-out (zero-out). If it does not exist in the zero-out) area, MtsZerooutFlag may have a value of “1”. In this embodiment, it is assumed that all non-zero coefficients in the block do not exist in the zero-out region, and the initial value of MtsZerooutFlag is set to “1”, and the conditions of the zero-out region and the non-zero coefficients are MtsZerooutFlag can be set to “0” when both conditions are satisfied. In this case, when MtsZerooutFlag having a value of “0” exists, explicit MTS may not be applied.
다음으로, 영상 복호화 장치는 변수 i의 초기값을 마지막 서브 블록(last sub block)의 값으로 설정하되, 상기 변수 i의 값을 1씩을 차감하여 변수 i의 값이 0 이 될때까지 이하의 단계 S1425 내지 단계 S1450의 프로세스들을 반복 수행한다(S1420). 단계 S1420의 루틴을 반복 수행하는 목적은 마지막 서브 블록으로부터 첫번째 서브 블록까지 모든 서브 블록의 sb_coded_flag 값을 확인하기 위함에 있다. 앞서 살펴본 바와 같이 sb_coded_flag 값이 “1”인 경우 해당 서브 블록 내에는 하나 이상의 넌-제로 계수가 존재함으로 의미하고, sb_coded_flag 값이 “0”인 경우 해당 서브 블록 내에는 넌-제로 계수가 존재하지 않음을 의미한다. 따라서, 도 16을 참조하면 대상 블록 내 sb_coded_flag 값이 “1”인 모든 서브 블록들의 위치가 (0, 0)에서 (3, 3) 내에만 존재하는 경우, 즉, 변수 i 를 기준으로 0 내지 8 이내에만 존재하는 경우에는 명시적 MTS를 적용하기 위한 (b) 조건이 충족된 것으로 판단될 수 있다.Next, the image decoding apparatus sets the initial value of the variable i to the value of the last sub-block, and subtracts the value of the variable i by 1 until the value of the variable i becomes 0 in the following step S1425 The processes of steps S1450 to S1450 are repeatedly performed (S1420). The purpose of repeating the routine of step S1420 is to check the sb_coded_flag values of all sub-blocks from the last sub-block to the first sub-block. As described above, when the sb_coded_flag value is “1”, it means that one or more non-zero coefficients exist in the corresponding sub-block, and when the sb_coded_flag value is “0”, there is no non-zero coefficient in the corresponding sub-block. means Therefore, referring to FIG. 16, when the positions of all sub-blocks having the sb_coded_flag value of “1” in the target block exist only within (0, 0) to (3, 3), that is, 0 to 8 based on variable i If it exists only within, it can be determined that the condition (b) for applying the explicit MTS is satisfied.
다음으로, 영상 복호화 장치는 변수 i가 마지막 서브 블록(last sub block)보다 작고(i<last sub block), 변수 i가 0보다 큰(i>0) 조건을 동시에 충족하는지 여부를 판단한다(S1425). 예를 들어, 단계 S1920의 루틴이 처음 실행될 때에는 변수 i의 초기값이 마지막 서브 블록(last sub block)과 동일한 값으로 설정되기 때문에 단계 S1425의 조건은 충족되지 않는다. Next, the image decoding apparatus determines whether a condition in which the variable i is smaller than the last sub block (i<last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied (S1425) ). For example, when the routine of step S1920 is first executed, the condition of step S1425 is not satisfied because the initial value of the variable i is set to the same value as that of the last sub block.
단계 S1425의 판단 결과, 변수 i가 마지막 서브 블록(last sub block)보다 작고(i<last sub block), 변수 i가 0보다 큰(i>0) 조건을 동시에 충족하는 경우 sb_coded_flag를 파싱하고(S1430). 두 조건을 동시에 충족하지 않는 경우 sb_coded_flag를 “1”로 설정한다(S1435).As a result of the determination in step S1425, when the condition that the variable i is smaller than the last sub block (i<last sub block) and the variable i is larger than 0 (i>0) is simultaneously satisfied, the sb_coded_flag is parsed (S1430) ). If both conditions are not satisfied at the same time, sb_coded_flag is set to “1” (S1435).
이 때, 파싱되는 sb_coded_flag는 해당 서브 블록 내에 하나 이상의 넌-제로 계수가 존재하는지 여부를 지시한다. 해당 서브 블록 내에 하나 이상의 넌-제로 계수가 존재하는 경우 sb_coded_flag는 “1”의 값을 갖고, 해당 서브 블록 내에 넌-제로 계수가 존재하지 않는 경우 sb_coded_flag는 “0”의 값을 갖는다.At this time, the parsed sb_coded_flag indicates whether one or more non-zero coefficients exist in the corresponding sub-block. When one or more non-zero coefficients exist in the corresponding subblock, sb_coded_flag has a value of “1”, and when there is no non-zero coefficient in the corresponding subblock, sb_coded_flag has a value of “0”.
한편, i가 마지막 서브 블록과 첫번째 서브 블록을 지시하는 경우에만 단계 S1435가 수행된다. 즉, 마지막 서브 블록 내에는 마지막 위치(last position) 계수가 포함되기 때문에 sb_coded_flag 값은 “1”의 값이 파싱되고, 첫번째 서브 블록 내에는 DC 계수가 존재하기 때문에 sb_coded_flag 값은 “1”의 값이 파싱된다.Meanwhile, step S1435 is performed only when i indicates the last sub-block and the first sub-block. That is, since the last position coefficient is included in the last sub-block, a value of “1” is parsed for the sb_coded_flag value, and a DC coefficient exists in the first sub-block, so the sb_coded_flag value has a value of “1”. is parsed
다음으로, 영상 복호화 장치는 “MtsZerooutFlag && luma block”의 조건을 충족하는지 여부를 판단한다(S1440).Next, the video decoding apparatus determines whether a condition of “MtsZerooutFlag && luma block” is satisfied (S1440).
단계 S1440의 판단 결과, “MtsZerooutFlag && luma block”의 조건을 충족하는 경우 “sb_coded_flag && ( xSb > 3 || ySb > 3 )"의 조건을 충족하는지 여부를 추가로 판단하고(S1445), “sb_coded_flag && ( xSb > 3 || ySb > 3 )"의 조건을 충족하는 경우 MtsZerooutFlag를 “0”으로 설정한다(S1450).As a result of the determination of step S1440, if the condition of “MtsZerooutFlag && luma block” is satisfied, it is further determined whether the condition of “sb_coded_flag && (xSb > 3 | ySb > 3 )” is satisfied (S1445), and “sb_coded_flag &&” (xSb > 3 || ySb > 3 )", MtsZerooutFlag is set to “0” (S1450).
단계 S1440의 판단 결과, “MtsZerooutFlag && luma block”의 조건을 충족하지 않는 경우 해당 서브 블록에서의 프로세스를 종료한다.As a result of the determination in step S1440, if the condition of “MtsZerooutFlag && luma block” is not satisfied, the process in the corresponding sub-block is terminated.
본 실시예에 따르면, 해당 변수 i, 즉, 해당 서브 블록에서 한번이라도 MtsZerooutFlag 값이 “0”으로 설정되면 다음의 루틴인 변수 i-1에서는 단계 S1940에서 거짓(False) 값이 도출되어 sb_coded_flag 값을 더 이상 확인할 필요가 없다. According to this embodiment, if the MtsZerooutFlag value is set to “0” at least once in the corresponding variable i, that is, in the corresponding sub-block, in the next routine, variable i-1, a false value is derived in step S1940 to set the sb_coded_flag value. No need to check anymore.
한편, 복호화 대상 블록이 상기 (a) 및 (b)의 조건을 모두 만족하는 경우, 명시적 MTS 사용이 확정되어, 해당 블록에 실제 사용되는 변환(transform) 정보를 인덱스 형태(mts_idx)로 전송한다. 반면, 모든 조건을 만족하지 못한 경우, 디폴트 변환(default transform)(*)인 DCT-II를 사용한다(도 15 참고). 표 5는 mts_idx 값에 따른 가로축 및 세로축의 변환 타입을 나타낸다.On the other hand, when the decoding target block satisfies both the conditions (a) and (b), the explicit MTS use is confirmed, and transform information actually used in the corresponding block is transmitted in the form of an index (mts_idx). . On the other hand, when all conditions are not satisfied, DCT-II, which is a default transform (*), is used (see FIG. 15 ). Table 5 shows the transformation types of the horizontal axis and the vertical axis according to the mts_idx value.
Figure PCTKR2020018466-appb-img-000005
Figure PCTKR2020018466-appb-img-000005
표 5에서 trTypeHor은 가로축 변환 타입(transform type)을 의미하고, trTypeVer은 세로축 변환 타입(transform type)을 의미한다. 표 5 내 변환 타입(transform type)의 값들은 표 2의 trType 값을 의미한다. 예컨대, mts_idx 값이 "2"인 경우, 가로축 변환(transform)으로 DCT-8 (2)을, 세로축 변환 (transform)으로 DST-7 (1)을 사용하면 된다. In Table 5, trTypeHor means a transform type on the horizontal axis, and trTypeVer means a transform type on the vertical axis. Values of transform types in Table 5 mean trType values in Table 2. For example, when the value of mts_idx is "2", DCT-8 (2) may be used as the horizontal axis transform and DST-7 (1) may be used as the vertical axis transformation (transform).
본 발명에서 앞서 언급한 디폴트 변환(default transform)(*) DCT-II를 사용/수행/적용하는 모든 경우에는 "mts_idx 값을 "0"으로 유도한다"라는 표현으로 대체될 수 있다. 즉, mts_idx 값이 "0"인 경우, 가로축 및 세로축 변환(transform)으로 모두 DCT-II (0)가 설정되기 때문이다.In the present invention, in all cases where the aforementioned default transform (*) DCT-II is used/performed/applied, it may be replaced with the expression “derives the mts_idx value to “0””. That is, when the mts_idx value is "0", this is because DCT-II (0) is set for both the horizontal axis and the vertical axis transform.
본 발명에서 mts_idx의 이진화 방법은 TR(truncated rice) 방식을 사용하며, TR을 위한 파라미터 값인 cMax 값은 "4"이고, cRiceParam 값은 "0"이다. 표 6은 MTS 인덱스의 코드워드를 나타낸다.In the present invention, the binarization method of mts_idx uses a truncated rice (TR) method. The cMax value, which is a parameter value for TR, is "4", and the cRiceParam value is "0". Table 6 shows the codewords of the MTS index.
Figure PCTKR2020018466-appb-img-000006
Figure PCTKR2020018466-appb-img-000006
표 6을 참조하면, mts_idx 값이 “0”인 경우 이에 대응하는 코드워드는 “0”이고, mts_idx 값이 “1”인 경우 이에 대응하는 코드워드는 “10”이고, mts_idx 값이 “2”인 경우 이에 대응하는 코드워드는 “110”이고, mts_idx 값이 “3”인 경우 이에 대응하는 코드워드는 “1110”이고, mts_idx 값이 “4”인 경우 이에 대응하는 코드워드는 “1111”임을 확인할 수 있다.Referring to Table 6, when the mts_idx value is “0”, the corresponding codeword is “0”, when the mts_idx value is “1”, the corresponding codeword is “10”, and the mts_idx value is “2” , the corresponding codeword is “110”, when the mts_idx value is “3”, the corresponding codeword is “1110”, and when the mts_idx value is “4”, the corresponding codeword is “1111”. can be checked
도 15는 본 발명의 일실시예에 따른 명시적 MTS 기능 적용 여부의 결정 방법을 나타낸다. 도 15의 각 단계들은 영상 복호화 장치 내에서 수행될 수 있다.15 illustrates a method of determining whether to apply an explicit MTS function according to an embodiment of the present invention. Each of the steps of FIG. 15 may be performed in the image decoding apparatus.
도 15를 참조하면, 영상 복호화 장치는 “(sps_explicit_mts_intra_enabled_flag && CuPredMode = MODE_INTRA)||(sps_explicit_mts_inter_enabled_flag && CuPredMode = MODE_INTER)"의 조건이 충족되는지 여부를 판단한다(S1510).Referring to FIG. 15 , the video decoding apparatus determines whether a condition of "(sps_explicit_mts_intra_enabled_flag && CuPredMode = MODE_INTRA)|(sps_explicit_mts_inter_enabled_flag && CuPredMode = MODE_INTER)" is satisfied (S1510).
sps_explicit_mts_intra_enabled_flag는 화면 내 예측 시의 명시적 MTS 사용 여부를 나타내는 플래그이며, sps_explicit_mts_intra_enabled_flag는 화면 간 예측 시의 명시적 MTS 사용 여부를 나타내는 플래그이다. sps_explicit_mts_intra_enabled_flag는 화면 내 예측 시 명시적 MTS를 사용하는 경우 “1” 값을 갖고, 이외의 경우에는 “0”의 값을 갖는다. sps_explicit_mts_intra_enabled_flag는 화면 간 예측 시 명시적 MTS를 사용하는 경우 “1”의 값을 갖고, 이외의 경우에는 “0”의 값을 갖는다. sps_explicit_mts_intra_enabled_flag is a flag indicating whether or not to use explicit MTS for intra prediction, and sps_explicit_mts_intra_enabled_flag is a flag indicating whether to use explicit MTS for inter prediction. sps_explicit_mts_intra_enabled_flag has a value of “1” when explicit MTS is used for intra prediction, and a value of “0” otherwise. sps_explicit_mts_intra_enabled_flag has a value of “1” when explicit MTS is used for inter prediction, and has a value of “0” otherwise.
CuPredMode는 복호화 대상 블록이 어떠한 예측 방법으로 부호화되었는지 여부를 지시한다. 복호화 대상 블록이 화면 내 예측 방법으로 부호화된 경우 CuPredMode는 MODE_INTRA 값을 가지며, 복호화 대상 블록이 화면 간 예측 방법으로 부호화된 경우 CuPredMode는 MODE_INTER 값을 갖는다. CuPredMode indicates whether the decoding object block is encoded by any prediction method. When the decoding object block is encoded by the intra prediction method, CuPredMode has a MODE_INTRA value, and when the decoding object block is encoded by the inter prediction method, CuPredMode has a MODE_INTER value.
따라서, 복호화 대상 블록이 화면 내 예측 및 명시적 MTS를 사용하는 경우 “sps_explicit_mts_intra_enabled_flag && CuPredMode = MODE_INTRA”는 “1”의 값을 가지며, 복호화 대상 블록이 화면 간 예측 및 명시적 MTS를 사용하는 경우 “sps_explicit_mts_inter_enabled_flag && CuPredMode = MODE_INTER"는 "1"의 값을 갖는다. 따라서, 단계 S2010은 sps_explicit_mts_intra_enabled_flag, sps_explicit_mts_inter_enabled_flag, CuPredMode의 값을 확인함으로써, 복호화 대상 블록이 명시적 MTS를 사용하는지 여부를 판단할 수 있다.Therefore, when the decoding object block uses intra prediction and explicit MTS, “sps_explicit_mts_intra_enabled_flag && CuPredMode = MODE_INTRA” has a value of “1”, and when the decoding object block uses inter prediction and explicit MTS, “sps_explicit_mts_inter_enabled_flag” && CuPredMode = MODE_INTER" has a value of “1.” Accordingly, in step S2010, by checking the values of sps_explicit_mts_intra_enabled_flag, sps_explicit_mts_inter_enabled_flag, and CuPredMode, it may be determined whether the decoding object block uses the explicit MTS.
단계 S1510의 조건이 충족되는 경우, 영상 복호화 장치는 "lfnst_idx=0 && transform_skip_flag=0 && cbW <32 && cbH < 32 && intra_subpartitions_mode_flag = 0 && cu_sbt_flag = 0 "의 조건이 충족되는지 여부를 판단한다(S1520).When the condition of step S1510 is satisfied, the image decoding apparatus determines whether the condition of "lfnst_idx=0 && transform_skip_flag=0 && cbW <32 && cbH < 32 && intra_subpartitions_mode_flag = 0 && cu_sbt_flag = 0 " is satisfied (S1520) .
여기서, lfnst_idx 값은 이차 변환(secondary transform)을 나타내며, lfnst_idx = 0인 경우 이차 변환(secondary transform)을 사용하지 않았음을 의미한다.Here, the lfnst_idx value represents a secondary transform, and when lfnst_idx = 0, it means that the secondary transform is not used.
transform_skip_flag 값은 현재 블록에 변환 스킵(transform skip)이 적용되는지 여부를 지시한다. 즉, 현재 블록에 변환(transform) 과정을 생략하는지 여부를 지시한다. transform_skip_flag = 0 인 경우 현재 블록에 변환 스킵(transform skip)이 적용되지 않음을 나타낸다.The transform_skip_flag value indicates whether transform skip is applied to the current block. That is, it indicates whether to omit the transformation process for the current block. When transform_skip_flag = 0, it indicates that transform skip is not applied to the current block.
cbW 및 cbH는 각각 현재 블록의 너비 및 높이를 나타낸다. 앞서 살펴본 바와 같이, 디폴트 변환(default transform) 인 DCT-II의 최대 크기는 64×64까지 지원되고, 추가 변환들(extra transforms) 인 DST-7 및 DCT-8의 최대 크기는 32×32까지 지원된다. 예컨대, 복호화 대상 블록의 크기가 64×64 인 경우, 1개의 64×64 DCT-II를 변환(transform) 과정에 적용한다. 즉, 복호화 대상 블록의 너비 및 높이 중 하나 이상이 32보다 큰(32를 초과하는) 경우, MTS 적용 없이 바로 디폴트 변환(default transform)(*)을 적용한다. 따라서, MTS가 적용되기 위해서는 cbW 및 cbH의 값이 모두 32 이하의 값을 가져야 한다.cbW and cbH represent the width and height of the current block, respectively. As described above, the maximum size of DCT-II, which is the default transform, is supported up to 64×64, and the maximum size of DST-7 and DCT-8, which are extra transforms, is supported up to 32×32. do. For example, when the size of the decoding object block is 64×64, one 64×64 DCT-II is applied to a transform process. That is, when at least one of the width and height of the decoding target block is greater than 32 (greater than 32), a default transform (*) is directly applied without applying the MTS. Therefore, in order for MTS to be applied, both cbW and cbH must have a value of 32 or less.
intra_subpartitions_mode_flag는 인트라 서브파티션 모드(intra subpartition mode)가 적용되는지 여부를 지시한다. 인트라 서브파티션 모드는 화면 내 예측 방법 중 하나로써 대상 블록을 다수 개의 서브-블록(sub-block)으로 나누어서 예측, 변환, 양자화 과정을 거침을 지시한다. 즉, 해당 플래그 값(intra_subpartitions_mode_flag)이 "0"인 경우, 대상 블록을 서브-블록(sub-block)으로 나누지 않고, 일반적인 화면 내 예측을 수행하였음을 의미한다.intra_subpartitions_mode_flag indicates whether an intra subpartition mode is applied. The intra sub-partition mode is one of intra-picture prediction methods, and indicates that the target block is divided into a plurality of sub-blocks and subjected to prediction, transformation, and quantization processes. That is, when the corresponding flag value (intra_subpartitions_mode_flag) is “0”, it means that general intra prediction is performed without dividing the target block into sub-blocks.
cu_sbt_flag는 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환(sub-block transform, sbt)이 적용되는지 여부를 지시한다. 즉, cu_sbt_flag 값이 “0” 인 경우, 대상 블록의 일부만 변환 과정을 거치는 서브-블록 변환(sub-block transform, sbt)이 적용되지 않음을 의미한다. cu_sbt_flag indicates whether sub-block transform (sbt) in which only a part of the target block undergoes a transformation process is applied. That is, when the cu_sbt_flag value is “0”, it means that the sub-block transform (sbt), which undergoes the transformation process of only a part of the target block, is not applied.
따라서, 단계 S1520의 조건이 충족되는지 여부를 통해서 복호화 대상 블록이 명시적 MTS를 적용할 수 있는지 여부를 판단할 수 있다.Accordingly, it can be determined whether the decoding object block can apply the explicit MTS through whether the condition of step S1520 is satisfied.
단계 S1510의 조건이 충족되지 않는 경우, 영상 복호화 장치는 mts_idx의 값을 “0”으로 설정하고(S1530), 프로세스를 종료한다.If the condition of step S1510 is not satisfied, the image decoding apparatus sets the value of mts_idx to “0” (S1530), and ends the process.
단계 S1520의 조건이 충족되는 경우, 영상 복호화 장치는 “MtsZeroOutFlag=1 && MtsDcOnlyFlag=0”의 조건이 충족되는지 여부를 판단한다(S1540).When the condition of step S1520 is satisfied, the video decoding apparatus determines whether the condition of “MtsZeroOutFlag=1 && MtsDcOnlyFlag=0” is satisfied (S1540).
상기 MtsZerooutFlag는 블록 내의 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하는지 여부를 지시한다. 블록 내의 넌-제로 계수들 중 적어도 하나가 제로-아웃(zero-out) 영역에 존재하는 경우 MtsZerooutFlag는 “0”의 값을 갖고, 블록 내의 모든 넌-제로 계수들이 제로-아웃(zero-out) 영역에 존재하지 않는 경우 MtsZerooutFlag는 “1”의 값을 가질 수 있다. 이 때, MtsZerooutFlag의 값은 도 13 또는 도 14의 프로세스를 수행함으로써 결정될 수 있다.The MtsZerooutFlag indicates whether non-zero coefficients in a block exist in a zero-out region. MtsZerooutFlag has a value of “0” when at least one of the non-zero coefficients in the block is in the zero-out region, and all non-zero coefficients in the block are zero-out. If it does not exist in the region, MtsZerooutFlag may have a value of “1”. In this case, the value of MtsZerooutFlag may be determined by performing the process of FIG. 13 or FIG. 14 .
MtsDcOnlyFlag는 블록 내 넌-제로 계수(non-zero coefficient)가 하나이고 그 위치가 DC 인지 여부를 지시한다. 블록 내 넌-제로 계수(non-zero coefficient)가 하나이고 그 위치가 DC인 경우 상기 MtsDcOnlyFlag는 “1”의 값을 갖고, 그 밖의 경우에는 MtsDcOnlyFlag는 “0”의 값을 갖는다. 이 때, MtsDcOnlyFlag의 값은 도 17의 프로세스를 수행함으로써 결정될 수 있다.MtsDcOnlyFlag indicates whether there is one non-zero coefficient in the block and the position is DC. If there is one non-zero coefficient in the block and the position is DC, the MtsDcOnlyFlag has a value of “1”, and in other cases, MtsDcOnlyFlag has a value of “0”. In this case, the value of MtsDcOnlyFlag may be determined by performing the process of FIG. 17 .
한편, 단계 S1520의 조건이 충족되지 않는 경우, 영상 복호화 장치는 mts_idx의 값을 “0”으로 설정하고(S1530), 프로세스를 종료한다.Meanwhile, if the condition of step S1520 is not satisfied, the image decoding apparatus sets the value of mts_idx to “0” (S1530), and ends the process.
단계 S1540의 조건이 충족되는 경우, 영상 복호화 장치는 mts_idx를 파싱하고(S1550), 프로세스를 종료한다. 이 때, mts_idx의 값에 따른 가로축 및 세로축의 변환 타입은 표 5에 의해 할당될 수 있다. 이 때, 표 5 내 변환 타입(transform type)의 값들은 표 2의 trType 값을 의미한다. 예를 들어, mts_idx 값이 "2"인 경우, 가로축 변환(transform)으로 DCT-8, 세로축 변환 (transform)으로 DST-7이 적용될 수 있다. When the condition of step S1540 is satisfied, the image decoding apparatus parses mts_idx ( S1550 ), and ends the process. In this case, the transformation type of the horizontal axis and the vertical axis according to the value of mts_idx may be allocated according to Table 5. In this case, values of transform type in Table 5 mean trType values in Table 2. For example, when the mts_idx value is “2”, DCT-8 may be applied as a transform on the horizontal axis and DST-7 may be applied as a transform on the vertical axis.
또한, 단계 S1540의 조건이 충족되지 않는 경우에도 영상 복호화 장치는 mts_idx의 값을 “0”으로 설정하고(S1530), 프로세스를 종료한다.Also, even when the condition of step S1540 is not satisfied, the image decoding apparatus sets the value of mts_idx to “0” (S1530) and ends the process.
도 16은 본 발명의 다른 실시예에 따른 변환 관련 파라미터에 기반한 역변환 수행 방법을 나타낸다. 도 16의 각 단계들은 영상 복호화 장치에서 수행될 수 있으며, 예를 들어 복호화 장치의 역변환부에서 수행될 수 있다.16 illustrates a method of performing an inverse transform based on a transform-related parameter according to another embodiment of the present invention. Each of the steps of FIG. 16 may be performed by an image decoding apparatus, for example, by an inverse transform unit of the decoding apparatus.
도 16을 참조하면, 영상 복호화 장치는 sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, cu_sbt_flag 의 값을 획득한다(S1610). 이 때, sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, cu_sbt_flag 가 각각 무엇을 나타내는지에 관해서는 도 15의 관련 설명에서 상세히 설명되어 있으며, 상기 파라미터들은 복호화 대상 블록이 명시적 MTS를 적용할 수 있는지 여부를 판단하기 위해 사용된다. Referring to FIG. 16 , the image decoding apparatus acquires values of sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intrafla_subpartitions_mode_flag_flag, cu_sbt (S1610). At this time, sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, cu_sbt_flag The related MTS flags in detail are described in detail about what the decoding target is, and what parameters are explicitly described in block diagram 15 above. It is used to determine whether it is applicable or not.
다음으로, 영상 복호화 장치는 MtsZeroOutFlag 및 MtsDcOnlyFlag 값을 획득한다(S1620). 이 때, 상기 MtsZeroOutFlag 는 도 13 또는 도 14의 프로세스를 수행함으로써 획득할 수 있으며, MtsDcOnlyFlag 는 도 12의 프로세스를 수행함으로써 획득할 수 있다.Next, the image decoding apparatus obtains MtsZeroOutFlag and MtsDcOnlyFlag values (S1620). In this case, the MtsZeroOutFlag may be obtained by performing the process of FIG. 13 or 14 , and MtsDcOnlyFlag may be obtained by performing the process of FIG. 12 .
다음으로, 영상 복호화 장치는 단계 S1610 및 단계 S1620에서 획득한 파라미터들을 기반으로 mts_idx 값을 획득한다(S1630). 즉, 영상 복호화 장치는 sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, cu_sbt_flag, MtsZeroOutFlag, MtsDcOnlyFlag를 기반으로 mts_idx 값을 획득한다. 이 때, mts_idx 는 도 15의 프로세스를 수행함으로써 획득될 수 있다.Next, the image decoding apparatus obtains an mts_idx value based on the parameters obtained in steps S1610 and S1620 ( S1630 ). That is, the image decoding apparatus obtains the MtsDcTsZeroOutlyFlagx values based on sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, MtsDcOnlyFlag_, MtsDcOnlyFlag_based. In this case, mts_idx may be obtained by performing the process of FIG. 15 .
다음으로, 영상 복호화 장치는 mts_idx를 기반으로 역변환을 수행한다(S1640). mts_idx 값에 따라 적용되는 역변환은 표 5 및 표 2에 따라 구성될 수 있다. 예를 들어, mts_idx 값이 "2"인 경우, 가로축 방향으로 DCT-8이 적용되고, 세로축 방향으로 DST-7이 적용될 수 있다.Next, the image decoding apparatus performs inverse transform based on mts_idx (S1640). An inverse transform applied according to the mts_idx value may be configured according to Tables 5 and 2. For example, when the mts_idx value is “2”, DCT-8 may be applied in the horizontal axis direction and DST-7 may be applied in the vertical axis direction.
한편, 도면에는 도시되지 않았으나, 영상 부호화 장치의 관점에서는 명시적 MTS 사용 여부를 설정하기 위하여, sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flag, cbW, cbH, intra_subpartitions_mode_flag, cu_sbt_flag, MtsZeroOutFlag, MtsDcOnlyFlag를 설정할 수 있다. 상술한 실시예에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타내어진 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.Meanwhile, although not shown in the drawing, from the viewpoint of an image encoding apparatus, sps_explicit_mts_intra_enable_flag, sps_explicit_mts_inter_enable_flag, CuPredMode, lfnst_idx, transform_skip_flagOn, cbW, dts_modeero_flag, Mcu_sbt. In the above embodiment, the methods are described on the basis of a flowchart as a series of steps or blocks, but the present invention is not limited to the order of the steps, and some steps may occur in a different order or concurrently with other steps as described above. have. In addition, those skilled in the art will understand that the steps shown in the flowchart are not exhaustive and that other steps may be included or that one or more steps in the flowchart may be deleted without affecting the scope of the present invention.
본 문서에서 설명한 실시예들은 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 예를 들어, 각 도면에서 도시한 기능 유닛들은 컴퓨터, 프로세서, 마이크로 프로세서, 컨트롤러 또는 칩 상에서 구현되어 수행될 수 있다. 이 경우 구현을 위한 정보(ex. information on instructions) 또는 알고리즘이 디지털 저장 매체에 저장될 수 있다.Embodiments described in this document may be implemented and performed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each figure may be implemented and performed on a computer, a processor, a microprocessor, a controller, or a chip. In this case, information for implementation (ex. information on instructions) or an algorithm may be stored in a digital storage medium.
또한, 본 발명이 적용되는 디코딩 장치 및 인코딩 장치는 멀티미디어 방송 송수신 장치, 모바일 통신 단말, 홈 시네마 비디오 장치, 디지털 시네마 비디오 장치, 감시용 카메라, 비디오 대화 장치, 비디오 통신과 같은 실시간 통신 장치, 모바일 스트리밍 장치, 저장 매체, 캠코더, 주문형 비디오(VoD) 서비스 제공 장치, OTT 비디오(Over the top video) 장치, 인터넷 스트리밍 서비스 제공 장치, 3차원(3D) 비디오 장치, 화상 전화 비디오 장치, 운송 수단 단말 (ex. 차량 단말, 비행기 단말, 선박 단말 등) 및 의료용 비디오 장치 등에 포함될 수 있으며, 비디오 신호 또는 데이터 신호를 처리하기 위해 사용될 수 있다. 예를 들어, OTT 비디오(Over the top video) 장치로는 게임 콘솔, 블루레이 플레이어, 인터넷 접속 TV, 홈시어터 시스템, 스마트폰, 태블릿 PC, DVR(Digital Video Recoder) 등을 포함할 수 있다.In addition, the decoding device and the encoding device to which the present invention is applied are a multimedia broadcasting transmission/reception device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video conversation device, a real-time communication device such as a video communication device, and a mobile streaming device. Device, storage medium, camcorder, video on demand (VoD) service providing device, OTT video (Over the top video) device, internet streaming service providing device, three-dimensional (3D) video device, videophone video device, vehicle terminal (ex) It may be included in a vehicle terminal, an airplane terminal, a ship terminal, etc.) and a medical video device, and may be used to process a video signal or a data signal. For example, the OTT video (Over the top video) device may include a game console, a Blu-ray player, an Internet-connected TV, a home theater system, a smart phone, a tablet PC, a digital video recorder (DVR), and the like.
또한, 본 발명이 적용되는 처리 방법은 컴퓨터로 실행되는 프로그램의 형태로 생산될 수 있으며, 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 또한 컴퓨터가 판독할 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터로 읽을 수 있는 데이터가 저장되는 모든 종류의 저장 장치 및 분산 저장 장치를 포함한다. 상기 컴퓨터가 판독할 수 있는 기록 매체는, 예를 들어, 블루레이 디스크(BD), 범용 직렬 버스(USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크 및 광학적 데이터 저장 장치를 포함할 수 있다. 또한, 상기 컴퓨터가 판독할 수 있는 기록 매체는 반송파(예를 들어, 인터넷을 통한 전송)의 형태로 구현된 미디어를 포함한다. 또한, 인코딩 방법으로 생성된 비트스트림이 컴퓨터가 판독할 수 있는 기록 매체에 저장되거나 유무선 통신 네트워크를 통해 전송될 수 있다.In addition, the processing method to which the present invention is applied may be produced in the form of a program executed by a computer, and may be stored in a computer-readable recording medium. Multimedia data having a data structure according to the present invention may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium is, for example, Blu-ray Disc (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical It may include a data storage device. In addition, the computer-readable recording medium includes a medium implemented in the form of a carrier wave (eg, transmission through the Internet). In addition, the bitstream generated by the encoding method may be stored in a computer-readable recording medium or transmitted through a wired/wireless communication network.
또한, 본 발명의 실시예는 프로그램 코드에 의한 컴퓨터 프로그램 제품으로 구현될 수 있고, 상기 프로그램 코드는 본 발명의 실시예에 의해 컴퓨터에서 수행될 수 있다. 상기 프로그램 코드는 컴퓨터에 의해 판독가능한 캐리어 상에 저장될 수 있다.In addition, an embodiment of the present invention may be implemented as a computer program product by program code, and the program code may be executed in a computer according to an embodiment of the present invention. The program code may be stored on a carrier readable by a computer.

Claims (16)

  1. 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서,An image decoding method performed by an image decoding apparatus, comprising:
    복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보를 획득하는 단계;obtaining information about a parameter indicating whether a multiple transform set (MTS) is applicable to a decoding object block, a width of the decoding object block, and a height of the decoding object block;
    상기 복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록의 변환 타입을 판단하는 단계;The decoding object block based on at least one of a parameter indicating whether multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information on a height of the decoding object block determining a transformation type of ;
    상기 복호화 대상 블록에 대한 다중 변환 집합(multiple transform set; MTS) 적용 가능 여부를 지시하는 파라미터, 상기 복호화 대상 블록의 너비, 상기 복호화 대상 블록의 높이에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록의 제로-아웃 영역을 설정하는 단계; 및The decoding object block based on at least one of a parameter indicating whether multiple transform set (MTS) is applicable to the decoding object block, a width of the decoding object block, and information on a height of the decoding object block setting a zero-out area of ; and
    상기 복호화 대상 블록의 제로-아웃 영역 및 변환 타입에 대한 판단 결과에 기반하여 상기 복호화 대상 블록에 대한 역변환을 수행하는 단계를 포함하는 것을 특징으로 하는 영상 복호화 방법.and performing an inverse transform on the decoding object block based on a result of determining a zero-out region and a transform type of the decoding object block.
  2. 제1항에 있어서, 상기 복호화 대상 블록의 변환 타입을 판단하는 단계에서,The method of claim 1, wherein in the step of determining a transform type of the decoding object block,
    상기 복호화 대상 블록의 너비 또는 높이 중 적어도 하나가 32보다 큰 값을 갖는 경우, 상기 복호화 대상 블록은 디폴트 변환을 사용하여 변환된 것으로 판단하는 것을 특징으로 하는 영상 복호화 방법.When at least one of a width or a height of the decoding object block has a value greater than 32, it is determined that the decoding object block is transformed using a default transform.
  3. 제1항에 있어서, 상기 복호화 대상 블록의 제로-아웃 영역을 설정하는 단계에서,The method of claim 1, wherein in the step of setting a zero-out area of the decoding object block,
    상기 복호화 대상 블록의 너비 또는 높이 중 하나가 32보다 큰 값을 갖는 경우, 상기 복호화 대상 블록의 너비 또는 높이가 32 보다 큰 영역을 제로-아웃 영역으로 설정하는 것을 특징으로 하는 영상 복호화 방법.When one of the width or height of the decoding object block has a value greater than 32, an area in which the width or height of the decoding object block is greater than 32 is set as a zero-out area.
  4. 제1항에 있어서, 상기 복호화 대상 블록에 대한 다중 변환 집합 적용 가능 여부를 지시하는 파라미터는 sps_mts_enabled_flag 인 것을 특징으로 하는 영상 복호화 방법.The method of claim 1 , wherein the parameter indicating whether multiple transform sets can be applied to the decoding object block is sps_mts_enabled_flag.
  5. 영상 복호화 장치에 의해 수행되는 영상 복호화 방법으로서,An image decoding method performed by an image decoding apparatus, comprising:
    복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보, 상기 복호화 대상 블록의 크기에 관한 정보 중 적어도 하나를 획득하는 단계;Information on whether a multiple transform set (MTS) is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, information on whether prediction using a matrix is applied, and the size of the decoding object block obtaining at least one of information about
    상기 복호화 대상 블록의 다중 변환 집합 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계;Implicit multiplication is applied to the decoding object block based on at least one of information on whether a multiple transform set is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, and information on whether prediction using a matrix is applied determining whether a transform set is applied;
    상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부에 관한 정보 및 상기 복호화 대상 블록의 크기에 관한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계; 및obtaining information on a transform type based on information on whether an implicit multiple transform set is applied to the decoding object block and information on a size of the decoding object block; and
    상기 변환 타입에 관한 정보를 기반으로 역변환을 수행하는 단계를 포함하는 영상 복호화 방법.and performing an inverse transform based on the information on the transform type.
  6. 제5항에 있어서, 상기 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계는, The method of claim 5, wherein determining whether the implicit multiple transform set is applied comprises:
    상기 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보를 이용하여 상기 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 것을 특징으로 하는 영상 복호화 방법.Using information on whether multiple transform set (MTS) is applied to the decoding target block, information on a prediction mode, information on whether to apply a secondary transform, and information on whether or not prediction using a matrix is applied, the implicit multiple An image decoding method comprising determining whether a transform set is applied.
  7. 제5항에 있어서, 상기 묵시적 다중 변환 집합은 하나의 디폴트 변환(default transform) 및 적어도 하나 이상의 추가 변환(extra transform)을 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5, wherein the implicit multiple transform set includes one default transform and at least one extra transform.
  8. 제7항에 있어서, 상기 복호화 대상 블록의 크기에 대한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계는,The method of claim 7 , wherein the acquiring information on a transform type based on information on a size of the decoding object block comprises:
    상기 복호화 대상 블록의 가로축 길이가 모두 4 이상 16 인 경우, 상기 복호화 대상 블록은 상기 가로축 방향에 대하여 추가 변환 타입(extra transform type) 중 적어도 하나가 적용된 것을 특징으로 하는 영상 복호화 방법.When the horizontal axis length of the decoding object block is 4 or more and 16, at least one of an extra transform type is applied to the decoding object block in the horizontal axis direction.
  9. 제7항에 있어서, 상기 복호화 대상 블록의 크기에 대한 정보를 기반으로 변환 타입에 관한 정보를 획득하는 단계는,The method of claim 7 , wherein the acquiring information on a transform type based on information on a size of the decoding object block comprises:
    상기 복호화 대상 블록의 세로축 길이가 모두 4 이상 16 이하 인 경우, 상기 복호화 대상 블록은 상기 세로축 방향에 대하여 추가 변환 타입(extra transform type) 중 적어도 하나가 적용된 것을 특징으로 하는 영상 복호화 방법.When all of the vertical axis lengths of the decoding object block are 4 or more and 16 or less, the decoding object block applies at least one of an extra transform type to the vertical axis direction.
  10. 제5항에 있어서, 상기 복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보는 sps_mts_enabled_flag, sps_explicit_mts_intra_enabled_flag 중 적어도 하나를 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5, wherein the information on whether multiple transform set (MTS) is applied to the decoding object block comprises at least one of sps_mts_enabled_flag and sps_explicit_mts_intra_enabled_flag.
  11. 제5항에 있어서, 상기 예측 모드에 대한 정보는 CuPredMode 를 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5 , wherein the information on the prediction mode includes CuPredMode.
  12. 제5항에 있어서, 상기 이차 변환 적용 여부에 대한 정보는 lfnst_idx를 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5, wherein the information on whether the quadratic transform is applied includes lfnst_idx.
  13. 제5항에 있어서, 상기 행렬을 이용한 예측 적용 여부에 대한 정보는 intra_mip_flag를 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5 , wherein the information on whether or not prediction using the matrix is applied includes intra_mip_flag.
  14. 제5항에 있어서, 상기 복호화 대상 블록의 변환 타입에 대한 정보는 각각 가로축 변환 타입에 대한 정보 및 세로축 변환 타입에 대한 정보를 포함하는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5, wherein the information on the transformation type of the decoding object block includes information on a horizontal transformation type and information on a vertical transformation type, respectively.
  15. 제5항에 있어서, 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하는 단계는 상기 복호화 대상 블록이 루마(luma) 블록인지 여부를 추가로 확인함으로써 획득되는 것을 특징으로 하는 영상 복호화 방법.The method of claim 5, wherein the determining whether the implicit multiple transform set is applied to the decoding object block is obtained by additionally checking whether the decoding object block is a luma block. .
  16. 메모리 및 적어도 하나의 프로세서를 포함하는 영상 복호화 장치로서,An image decoding apparatus comprising a memory and at least one processor, comprising:
    상기 적어도 하나의 프로세서는,the at least one processor,
    복호화 대상 블록의 다중 변환 집합(multiple transform set; MTS) 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보, 상기 복호화 대상 블록의 크기에 관한 정보 중 적어도 하나를 획득하고,Information on whether a multiple transform set (MTS) is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, information on whether prediction using a matrix is applied, and the size of the decoding object block obtain at least one of the information regarding
    상기 복호화 대상 블록의 다중 변환 집합 적용 여부에 대한 정보, 예측 모드에 대한 정보, 이차 변환 적용 여부에 대한 정보, 행렬을 이용한 예측 적용 여부에 대한 정보 중 적어도 하나를 기반으로 상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부를 판단하고,Implicit multiplication is applied to the decoding object block based on at least one of information on whether a multiple transform set is applied to the decoding object block, information on a prediction mode, information on whether a secondary transform is applied, and information on whether prediction using a matrix is applied determine whether a transform set is applied;
    상기 복호화 대상 블록에 묵시적 다중 변환 집합이 적용되는지 여부에 관한 정보 및 상기 복호화 대상 블록의 크기에 관한 정보를 기반으로 변환 타입에 관한 정보를 획득하고,obtaining information on a transform type based on information on whether an implicit multiple transform set is applied to the decoding object block and information on a size of the decoding object block;
    상기 변환 타입에 관한 정보를 기반으로 역변환을 수행하는 역변환부를 포함하는 영상 복호화 장치.and an inverse transform unit that performs an inverse transform based on the information on the transform type.
PCT/KR2020/018466 2020-03-27 2020-12-16 Image decoding method and device WO2021194052A1 (en)

Priority Applications (8)

Application Number Priority Date Filing Date Title
BR112022014908A BR112022014908A2 (en) 2020-03-27 2020-12-16 VIDEO DECODING METHODS AND VIDEO DECODING DEVICE
EP20927108.9A EP4131962A4 (en) 2020-03-27 2020-12-16 Image decoding method and device
JP2022504296A JP7446046B2 (en) 2020-03-27 2020-12-16 Video decoding method and device
CN202080050502.9A CN114097243A (en) 2020-03-27 2020-12-16 Image decoding method and device
US17/667,444 US11516471B2 (en) 2020-03-27 2022-02-08 Video decoding method and device
US18/048,816 US11909973B2 (en) 2020-03-27 2022-10-21 Video decoding method and device
US18/408,484 US20240155127A1 (en) 2020-03-27 2024-01-09 Video decoding method and device
JP2024025878A JP2024057012A (en) 2020-03-27 2024-02-22 Video decoding method and device

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20200037703 2020-03-27
KR10-2020-0037703 2020-03-27
KR1020200160112A KR102313731B1 (en) 2020-03-27 2020-11-25 Method and apparatus for video decoding
KR10-2020-0160112 2020-11-25
KR1020200160114A KR102313732B1 (en) 2020-03-27 2020-11-25 Method and apparatus for video decoding
KR10-2020-0160114 2020-11-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/667,444 Continuation US11516471B2 (en) 2020-03-27 2022-02-08 Video decoding method and device

Publications (1)

Publication Number Publication Date
WO2021194052A1 true WO2021194052A1 (en) 2021-09-30

Family

ID=77891943

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/018466 WO2021194052A1 (en) 2020-03-27 2020-12-16 Image decoding method and device

Country Status (1)

Country Link
WO (1) WO2021194052A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230037443A1 (en) * 2020-03-25 2023-02-09 Beijing Bytedance Network Technology Co., Ltd. Coded video processing using enhanced secondary transform

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180018570A (en) * 2015-06-18 2018-02-21 퀄컴 인코포레이티드 Intra prediction and intra mode coding
KR20180041211A (en) * 2015-09-10 2018-04-23 엘지전자 주식회사 Image processing method based on inter-intra merging prediction mode and apparatus therefor
KR20200007671A (en) * 2018-07-13 2020-01-22 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180018570A (en) * 2015-06-18 2018-02-21 퀄컴 인코포레이티드 Intra prediction and intra mode coding
KR20180041211A (en) * 2015-09-10 2018-04-23 엘지전자 주식회사 Image processing method based on inter-intra merging prediction mode and apparatus therefor
KR20200007671A (en) * 2018-07-13 2020-01-22 한국전자통신연구원 Method and apparatus for encoding/decoding image and recording medium for storing bitstream

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS , JIANLE CHEN , SHAN LIU , YE-KUI WANG: "Versatile Video Coding (Draft 8)", 17. JVET MEETING; 20200107 - 20200117; BRUSSELS; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-Q2001-vE, 12 March 2020 (2020-03-12), pages 1 - 510, XP030285390 *
J. CHEN, Y. YE, S. KIM: "Algorithm description for Versatile Video Coding and Test Model 8 (VTM 8)", 17. JVET MEETING; 20200107 - 20200117; BRUSSELS; (THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ), no. JVET-Q2002, 24 March 2020 (2020-03-24), XP030288001 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230037443A1 (en) * 2020-03-25 2023-02-09 Beijing Bytedance Network Technology Co., Ltd. Coded video processing using enhanced secondary transform

Similar Documents

Publication Publication Date Title
WO2017209328A1 (en) Intra-prediction method and apparatus in image coding system
WO2021096172A1 (en) Image coding method based on transform, and device therefor
WO2020060282A1 (en) Conversion factor level coding method and device therefor
WO2020116961A1 (en) Image coding method based on secondary transform, and device therefor
WO2021040400A1 (en) Image or video coding based on palette mode
WO2021040319A1 (en) Method and apparatus for deriving rice parameter in video/image coding system
WO2021137597A1 (en) Image decoding method and device using dpb parameter for ols
WO2021015537A1 (en) Image encoding/decoding method and device for signaling chroma component prediction information according to whether palette mode is applicable, and method for transmitting bitstream
WO2020213945A1 (en) Transform in intra prediction-based image coding
WO2020071879A1 (en) Transform coefficient coding method and device therefor
WO2020167097A1 (en) Derivation of inter-prediction type for inter prediction in image coding system
WO2020141831A2 (en) Image coding method and apparatus using intra block copy prediction
WO2021040398A1 (en) Image or video coding based on palette escape coding
WO2021025526A1 (en) Video coding method on basis of transformation, and device therefor
WO2021040402A1 (en) Image or video coding based on palette coding
WO2020197274A1 (en) Transform-based image coding method and device therefor
WO2021162494A1 (en) Image coding/decoding method and device for selectively signaling filter availability information, and method for transmitting bitstream
WO2020184966A1 (en) Image encoding/decoding method and device, and method for transmitting bitstream
WO2020185039A1 (en) Residual coding method and device
WO2020145798A1 (en) Video encoding method and apparatus using transform skip flag
WO2021194052A1 (en) Image decoding method and device
WO2021071187A1 (en) Method and apparatus for deriving rice parameter in video/image coding system
WO2021091255A1 (en) High level syntax signaling method and device for image/video coding
WO2020185005A1 (en) Transform-based image coding method and device therefor
WO2021086152A1 (en) Transform-based method for coding image, and device therefor

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022504296

Country of ref document: JP

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112022014908

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112022014908

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20220727

WWE Wipo information: entry into national phase

Ref document number: 2020927108

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2020927108

Country of ref document: EP

Effective date: 20221027

NENP Non-entry into the national phase

Ref country code: DE