WO2024215185A1 - Method for processing video signal and device therefor - Google Patents
Method for processing video signal and device therefor Download PDFInfo
- Publication number
- WO2024215185A1 WO2024215185A1 PCT/KR2024/095711 KR2024095711W WO2024215185A1 WO 2024215185 A1 WO2024215185 A1 WO 2024215185A1 KR 2024095711 W KR2024095711 W KR 2024095711W WO 2024215185 A1 WO2024215185 A1 WO 2024215185A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mode
- prediction
- current block
- block
- intra prediction
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 446
- 238000012545 processing Methods 0.000 title description 366
- 238000012935 Averaging Methods 0.000 claims description 23
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 description 156
- 230000033001 locomotion Effects 0.000 description 153
- 239000000523 sample Substances 0.000 description 139
- 230000008569 process Effects 0.000 description 122
- 239000013598 vector Substances 0.000 description 91
- 238000001914 filtration Methods 0.000 description 69
- 238000013139 quantization Methods 0.000 description 49
- 238000010586 diagram Methods 0.000 description 47
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 40
- 239000011159 matrix material Substances 0.000 description 40
- 230000011664 signaling Effects 0.000 description 23
- 239000013074 reference sample Substances 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000005192 partition Methods 0.000 description 13
- 230000002457 bidirectional effect Effects 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000000638 solvent extraction Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000004927 fusion Effects 0.000 description 9
- 241000023320 Luma <angiosperm> Species 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 8
- 230000001174 ascending effect Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000009795 derivation Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 230000007423 decrease Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 230000001131 transforming effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 101150089388 dct-5 gene Proteins 0.000 description 3
- 101150090341 dst1 gene Proteins 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000009499 grossing Methods 0.000 description 3
- 230000012447 hatching Effects 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000011426 transformation method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100278585 Dictyostelium discoideum dst4 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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 a method and device for processing a video signal, and more particularly, to a video signal processing method and device for encoding or decoding a video signal.
- Compression coding refers to a series of signal processing technologies for transmitting digitized information through communication lines or storing it in a form suitable for storage media.
- the targets of compression coding include objects such as voice, image, and text, and the technology for performing compression coding on images in particular is called video image compression.
- Compression coding for video signals is performed by removing redundant information by considering spatial correlation, temporal correlation, and probabilistic correlation.
- spatial correlation e.g., temporal correlation, and probabilistic correlation.
- the purpose of this specification is to provide a video signal processing method and a device therefor to improve the coding efficiency of a video signal.
- the present specification provides a video signal processing method and a device therefor.
- a video signal decoding device includes a processor, wherein the processor obtains a plurality of pairs each composed of one reference line and one intra prediction mode, the plurality of pairs including a first pair and a second pair, and obtains a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair, and can reconstruct a current block based on one integrated pair in the list.
- the processor obtains a first prediction block based on a first reference line and a first intra prediction mode of the first pair, obtains a second prediction block based on a second reference line and a second intra prediction mode of the second pair, obtains a final prediction block by performing a weighted average of the first prediction block and the second prediction block, and can reconstruct the current block based on the final prediction block.
- a video signal encoding device includes a processor, and the processor can obtain a bitstream to be decoded by a decoding method.
- a computer-readable non-transitory storage medium can store a bitstream decoded by a decoding method.
- a decoding method may include the steps of: obtaining a plurality of pairs each composed of one reference line and one intra prediction mode; obtaining a list composed of a plurality of integrated pairs, wherein the plurality of pairs include a first pair and a second pair, and including a first integrated pair that integrates the first pair and the second pair; and reconstructing a current block based on one integrated pair in the list.
- the decoding method may further include the steps of: obtaining a first prediction block based on a first reference line and a first intra prediction mode of the first pair; obtaining a second prediction block based on a second reference line and a second intra prediction mode of the second pair; obtaining a final prediction block by weighting and averaging the first prediction block and the second prediction block; and reconstructing the current block based on the final prediction block.
- each of the plurality of pairs may be composed of a combination of different reference lines and intra prediction modes.
- the one integrated pair in the list can be indicated based on a syntax element included in a bitstream.
- the plurality of integrated pairs constituting the list can be sorted based on the cost of each of the plurality of integrated pairs.
- the plurality of integrated pairs can be sorted in order of their corresponding costs.
- This specification provides a method for efficiently processing a video signal.
- FIG. 1 is a schematic block diagram of a video signal encoding device according to one embodiment of the present invention.
- FIG. 2 is a schematic block diagram of a video signal decoding device according to one embodiment of the present invention.
- Figure 3 illustrates an embodiment in which a coding tree unit within a picture is divided into coding units.
- Figure 4 illustrates one embodiment of a method for signaling splitting of a quad tree and a multi-type tree.
- FIGS. 5 and 6 illustrate an intra prediction method according to an embodiment of the present invention in more detail.
- Figure 7 is a diagram showing the locations of surrounding blocks used to construct a motion candidate list in inter prediction.
- FIG. 8 is a diagram illustrating a process of generating a prediction block using DIMD according to one embodiment of the present invention.
- FIG. 9 is a diagram showing the locations of surrounding pixels used to derive directional information according to one embodiment of the present invention.
- FIG. 10 is a diagram illustrating a method for mapping directional modes according to one embodiment of the present invention.
- FIG. 11 is a diagram showing a histogram for deriving an intra prediction directional mode according to one embodiment of the present invention.
- FIG. 12 is a diagram illustrating a method for signaling a DIMD mode according to one embodiment of the present invention.
- FIG. 13 is a diagram illustrating a method for signaling syntax elements related to intra prediction modes depending on whether DIMD mode is used according to one embodiment of the present invention.
- FIG. 14 is a diagram illustrating a method for generating a prediction sample for restoring a current block according to one embodiment of the present invention.
- FIG. 15 is a diagram illustrating a method for determining an intra prediction mode according to one embodiment of the present invention.
- FIG. 16 illustrates a syntax structure including syntax elements related to DIMD according to one embodiment of the present invention.
- FIG. 17 is a diagram showing intra prediction directional mode and weight information for surrounding blocks of a current block according to one embodiment of the present invention.
- FIG. 18 is a diagram illustrating a method for determining DIMD combination information according to one embodiment of the present invention.
- FIG. 19 is a diagram illustrating a method for generating a prediction sample using intra prediction directional mode information and weights according to one embodiment of the present invention.
- FIGS. 20 and 21 are diagrams showing pixel values of surrounding blocks used when deriving an intra prediction directional mode according to one embodiment of the present invention.
- FIG. 22 is a diagram illustrating a method for constructing an MPM list including an intra prediction directional mode of a current block according to one embodiment of the present invention.
- FIGS. 23 and 24 are diagrams showing templates used to derive an intra prediction mode of a current block according to one embodiment of the present invention.
- FIGS. 25 to 28 are diagrams illustrating a method for generating prediction samples (pixels) based on a plurality of reference pixel lines according to one embodiment of the present invention.
- FIG. 29 illustrates a method for predicting a sample using multiple reference pixel lines according to one embodiment of the present invention.
- FIG. 30 illustrates a method for determining a reference pixel line based on a template according to one embodiment of the present invention.
- FIG. 31 illustrates a method for setting a template for testing a reference pixel line adjacent to a current block according to one embodiment of the present invention.
- FIG. 32 is a structural diagram illustrating a method for determining an optimal reference pixel line using a plurality of reference pixel lines based on a template according to one embodiment of the present invention.
- FIG. 33 illustrates a method for generating prediction samples using planar mode according to one embodiment of the present invention.
- Figure 34 shows a transformation set table for LFNST and NSPT transformations according to one embodiment of the present invention.
- Figure 35 shows a low frequency region of a current block according to one embodiment of the present invention.
- FIG. 36 illustrates a method for deriving a multi-transform set and a LFNST/NSPT set according to one embodiment of the present invention.
- FIG. 37 illustrates a method for deriving a multi-transform set and an LFNST set for a vertical planar mode or a horizontal planar mode according to one embodiment of the present invention.
- Figure 38 shows a mapping table according to one embodiment of the present invention.
- Figure 39 illustrates a conversion type set table according to one embodiment of the present invention.
- Figure 40 shows a conversion type combination table according to one embodiment of the present invention.
- Figure 41 shows a threshold value table for an IDT conversion type according to one embodiment of the present invention.
- Figure 42 shows samples at a block boundary and around the boundary in a deblocking filtering process according to one embodiment of the present invention.
- FIG. 43 illustrates a method for a video signal processing device according to one embodiment of the present invention to derive a first or second transform matrix.
- Figure 44 illustrates a DC prediction method for vertical or horizontal line units according to one embodiment of the present invention.
- Figure 45 illustrates a method for predicting a plane in units of vertical or horizontal lines according to one embodiment of the present invention.
- Figure 46 illustrates a sub-block unit prediction method using a planar mode according to one embodiment of the present invention.
- Figure 47 illustrates an intra prediction method based on bidirectional prediction according to one embodiment of the present invention.
- Figure 48 shows types of transform kernels that can be used for video coding according to one embodiment of the present invention.
- Figures 49 and 50 illustrate a part of a sequence parameter set according to one embodiment of the present invention.
- FIG. 51 illustrates a portion of the general_constraint_info() syntax structure according to one embodiment of the present invention.
- FIG. 52 illustrates a method of constructing an MPM list using a multi-prediction mode according to one embodiment of the present invention.
- FIG. 53 shows the locations of reference pixels used when a prediction block is generated using a multi-prediction mode according to one embodiment of the present invention.
- FIG. 54 illustrates a method for a video signal processing device according to an embodiment of the present invention to parse planar mode selection information and DC mode selection information from a bitstream.
- FIG. 55 illustrates binarization or bin strings for planar mode selection information and DC mode selection information according to one embodiment of the present invention.
- FIG. 56 illustrates a method for generating a prediction block for a current block according to a DC prediction mode according to one embodiment of the present invention.
- Figure 57 illustrates a method for determining DC mode selection information according to one embodiment of the present invention.
- FIG. 58 illustrates a method for generating a prediction block for a current block according to DC mode selection information according to one embodiment of the present invention.
- FIG. 59 illustrates a method for generating a prediction block for a current block according to an integrated direction mode according to one embodiment of the present invention.
- FIG. 60 illustrates a binarization or empty string for an integrated direction mode according to one embodiment of the present invention.
- FIG. 61 illustrates reference pixels for generating a prediction block for a current block according to one embodiment of the present invention.
- FIG. 62 illustrates a method for a video signal processing device according to one embodiment of the present invention to configure a reference pixel line list.
- Figure 63 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
- Figure 64 illustrates a method of combining new candidates according to one embodiment of the present invention.
- Figure 65 shows a combination table for reference pixel lines and intra prediction modes according to one embodiment of the present invention.
- Figure 66 illustrates a method of using a candidate list based on multiple prediction modes according to one embodiment of the present invention.
- FIG. 67 is a diagram showing a block vector related to an IBC encoding method according to one embodiment of the present invention.
- Figure 68 is a diagram illustrating a method for predicting the current block using RRIBC in the horizontal direction.
- Figure 69 is a diagram illustrating a method for predicting the current block using RRIBC in the vertical direction.
- Fig. 70 shows a block vector of a block encoded in Intra TMP mode according to one embodiment of the present invention.
- Figure 71 illustrates a case where a current block is divided by the GPM mode according to one embodiment of the present invention and the divided area is encoded in the IBC mode.
- Figure 72 shows how a current block is encoded in IBC-CIIP mode according to one embodiment of the present invention.
- FIG. 73 shows an example of a reference region and filter shape used to derive CCCM parameters according to one embodiment of the present invention.
- Figure 74 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
- 'A and/or B' may be interpreted to mean 'including at least one of A or B'.
- Coding may be interpreted as encoding or decoding, as the case may be.
- a device that encodes a video signal to generate a video signal bitstream is referred to as an encoding device or an encoder
- a device that decodes a video signal bitstream to restore a video signal is referred to as a decoding device or a decoder.
- a video signal processing device is used as a term that includes both an encoder and a decoder.
- Information is a term that includes values, parameters, coefficients, elements, etc., and since the meaning may be interpreted differently depending on the case, the present invention is not limited thereto.
- 'Unit' is used to mean a basic unit of image processing or a specific location of a picture, and refers to an image area that includes at least one of a luminance (luma) component and a chroma component.
- 'block' refers to an image area including specific components among luminance components and chrominance components (i.e., Cb and Cr).
- terms such as 'unit', 'block', 'partition', 'signal', and 'area' may be used interchangeably.
- 'current block' means a block that is currently scheduled to be encoded
- 'reference block' means a block that has already been encoded or decoded and is used as a reference in the current block.
- terms such as 'luma', 'luminance', and 'Y' may be used interchangeably.
- terms such as 'chroma', 'chroma', 'color difference', and 'Cb or Cr' may be used interchangeably, and since chrominance components are divided into two, Cb and Cr, each chrominance component may be used separately.
- a unit may be used as a concept including all of a coding unit, a prediction unit, and a transformation unit.
- a picture refers to a field or a frame, and the terms may be used interchangeably depending on the embodiment. Specifically, if the captured image is an interlace image, one frame is divided into an odd (or odd, top) field and an even (or even, bottom) field, and each field is configured as one picture unit and can be encoded or decoded. If the captured image is a progressive image, one frame is configured as a picture and can be encoded or decoded.
- the terms 'error signal', 'residual signal', 'residual signal', 'residual signal', and 'differential signal' may be used interchangeably.
- the terms 'intra prediction mode', 'intra prediction directional mode', 'intra-screen prediction mode', and 'intra-screen prediction directional mode' may be used interchangeably.
- the terms 'motion', 'movement', and the like may be used interchangeably.
- POC Picture Order Count
- FIG. 1 is a schematic block diagram of a video signal encoding device (100) according to one embodiment of the present invention.
- the encoding device (100) of the present invention includes a transformation unit (110), a quantization unit (115), an inverse quantization unit (120), an inverse transformation unit (125), a filtering unit (130), a prediction unit (150), and an entropy coding unit (160).
- the transform unit (110) obtains a transform coefficient value by transforming the residual signal, which is the difference between the input video signal and the prediction signal generated by the prediction unit (150).
- a discrete cosine transform DCT
- DST discrete sine transform
- the discrete cosine transform and the discrete sine transform divide the input picture signal into blocks and perform the transform.
- the coding efficiency may vary depending on the distribution and characteristics of the values in the transform domain during the transform.
- the transform kernel used for the transform for the residual block may be a transform kernel having the separable characteristics of vertical transform and horizontal transform. In this case, the transform for the residual block may be performed by separating it into vertical transform and horizontal transform.
- the encoder may perform vertical transform by applying the transform kernel in the vertical direction of the residual block.
- the encoder can perform horizontal transform by applying a transform kernel in the horizontal direction of the residual block.
- the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, and a transform.
- the transform kernel may be any one of a plurality of available kernels. Additionally, transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform.
- the transformation coefficients are distributed with higher coefficients toward the upper left of the block, and closer to '0' toward the lower right of the block. As the current block size increases, there is a possibility that there will be many '0' coefficients in the lower right area. In order to reduce the transformation complexity of large blocks, only the arbitrary upper left area can be left, and the remaining areas can be reset to '0'.
- error signals may exist only in some regions in a coding block.
- the conversion process may be performed only on some arbitrary regions.
- an error signal may exist only in the first 2NxN block, and the conversion process may be performed only on the first 2NxN block, but the conversion process may not be performed on the second 2NxN block and may not be encoded or decoded.
- N may be any positive integer.
- the encoder may perform an additional transform before the transform coefficients are quantized.
- the transform method described above may be referred to as a primary transform, and the additional transform may be referred to as a secondary transform.
- the secondary transform may be optional for each residual block.
- the encoder may perform the secondary transform for a region where it is difficult to concentrate energy in a low-frequency region with only the primary transform, thereby improving coding efficiency.
- the secondary transform may be additionally performed for a block where residual values appear largely in a direction other than the horizontal or vertical direction of the residual block.
- the secondary transform may not be performed separately into a vertical transform and a horizontal transform. This secondary transform may be referred to as a low-frequency non-separable transform (LFNST).
- LNNST low-frequency non-separable transform
- the quantization unit (115) quantizes the transform coefficient values output from the transform unit (110).
- a method is used in which a picture is predicted using an already coded area through a prediction unit (150), and a residual value between the original picture and the predicted picture is added to the predicted picture to obtain a restored picture.
- a prediction unit 150
- the encoder performs prediction, information that is also available in the decoder must be used. To this end, the encoder performs a process of restoring the encoded current block again.
- the inverse quantization unit (120) inverse quantizes the transform coefficient value, and the inverse transform unit (125) restores the residual value using the inverse quantized transform coefficient value.
- the filtering unit (130) performs a filtering operation to improve the quality of the restored picture and enhance the coding efficiency.
- a deblocking filter For example, a sample adaptive offset (SAO), and an adaptive loop filter may be included.
- the filtered picture is stored in the Decoded Picture Buffer (DPB, 156) for output or use as a reference picture.
- DPB Decoded Picture Buffer
- a deblocking filter is a filter for removing distortion within a block generated at the boundary between blocks in a restored picture.
- the encoder can determine whether to apply a deblocking filter to a boundary based on the distribution of pixels included in several columns or rows based on an arbitrary boundary (edge) within a block.
- the encoder can apply a long filter, a strong filter, or a weak filter depending on the strength of the deblocking filtering.
- horizontal filtering and vertical filtering can be processed in parallel.
- Sample adaptive offset (SAO) can be used to correct the offset from the original image on a pixel basis for a residual block to which a deblocking filter is applied.
- the encoder can divide the pixels included in the image into a certain number of areas, determine the area to perform offset correction, and use a method (Band Offset) to apply the offset to the area.
- the encoder can use a method (Edge Offset) that applies an offset by considering edge information of each pixel.
- Adaptive Loop Filter is a method that divides pixels included in an image into a predetermined group, determines one filter to be applied to the group, and performs filtering differently for each group.
- Information related to whether to apply ALF can be signaled in units of coding units, and the shape and filter coefficients of the ALF filter to be applied can vary depending on each block.
- an ALF filter of the same shape (fixed shape) can be applied regardless of the characteristics of the target block to which it is applied.
- the prediction unit (150) includes an intra prediction unit (152) and an inter prediction unit (154).
- the intra prediction unit (152) performs intra prediction within a current picture
- the inter prediction unit (154) performs inter prediction to predict the current picture using a reference picture stored in a decoded picture buffer (156).
- the intra prediction unit (152) performs intra prediction from reconstructed areas within the current picture and transfers intra encoding information to the entropy coding unit (160).
- the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, an MPM index, and information about a reference sample.
- the inter prediction unit (154) may be configured to include a motion estimation unit (154a) and a motion compensation unit (154b).
- the motion estimation unit (154a) refers to a specific area of the restored reference picture to find the most similar part to the current area and obtains a motion vector value, which is the distance between the areas.
- the motion information (reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the reference area obtained by the motion estimation unit (154a) is transferred to the entropy coding unit (160) so that it can be included in the bitstream.
- the motion compensation unit (154b) uses the motion information transferred from the motion estimation unit (154a), performs inter motion compensation to generate a prediction block for the current block.
- the inter prediction unit (154) transfers inter encoding information including motion information for the reference area to the entropy coding unit (160).
- the prediction unit (150) may include an intra block copy (IBC) prediction unit (not shown).
- the IBC prediction unit performs IBC prediction from reconstructed samples in the current picture and transfers IBC encoding information to the entropy coding unit (160).
- the IBC prediction unit obtains a block vector value indicating a reference region used for prediction of the current region by referring to a specific region in the current picture.
- the IBC prediction unit may perform IBC prediction using the obtained block vector value.
- the IBC prediction unit transfers the IBC encoding information to the entropy coding unit (160).
- the IBC encoding information may include at least one of size information of the reference region, block vector information (index information for block vector prediction of the current block in the motion candidate list, block vector differential information).
- the transformation unit (110) transforms the residual value between the original picture and the predicted picture to obtain a transformation coefficient value.
- the transformation can be performed in units of specific blocks within the picture, and the size of the specific block can be varied within a preset range.
- the quantization unit (115) quantizes the transformation coefficient value generated by the transformation unit (110) and transfers the quantized transformation coefficient to the entropy coding unit (160).
- the above quantized transform coefficients in the form of a two-dimensional array can be rearranged into a one-dimensional array for entropy coding.
- the method of scanning the quantized transform coefficients can be determined by which scan method is used depending on the size of the transform block and the prediction mode within the screen. As an example of implementation, diagonal, vertical, and horizontal scans can be applied. Such scan information can be signaled on a block-by-block basis and can be derived according to a previously determined rule.
- the entropy coding unit (160) entropy-codes information representing quantized transform coefficients, intra-coding information, and inter-coding information to generate a video signal bitstream.
- the entropy coding unit (160) may use a variable length coding (VLC) method and an arithmetic coding method.
- VLC variable length coding
- the variable length coding (VLC) method converts input symbols into continuous codewords, and the length of the codewords may be variable. For example, frequently occurring symbols are expressed as short codewords, and infrequently occurring symbols are expressed as long codewords.
- a context-based adaptive variable length coding (CAVLC) method may be used as a variable length coding method.
- Arithmetic coding converts continuous data symbols into a single prime number by using the probability distribution of each data symbol, and arithmetic coding can obtain the optimal prime number bits required to express each symbol.
- Context-based Adaptive Binary Arithmetic Code (CABAC) can be used as an arithmetic coding.
- CABAC is a method of binary arithmetic coding using several context models generated based on the probability obtained through experiments.
- the context model can also be called a context model.
- the binarized 0 or 1 can be described as a bin.
- the CABAC initialization process is divided into context initialization and arithmetic coding initialization.
- Context initialization is a process of initializing the occurrence probability of each symbol, and is determined according to the type of symbol, quantization parameter (QP), and slice type (I, P, B).
- QP quantization parameter
- I, P, B slice type
- the context model provides the occurrence probability of the Least Probable Symbol (LPS) or the Most Probable Symbol (MPS) for the symbol to be currently coded, and information (valMPS) on which bin value corresponds to the MPS among 0 and 1.
- LPS Least Probable Symbol
- MPS Most Probable Symbol
- valMPS information on which bin value corresponds to the MPS among 0 and 1.
- One of several context models is selected through the context index (ctxIdx), and the context index can be derived from information about the current block to be encoded or information about the surrounding blocks. Initialization for binary arithmetic coding is performed based on the probability model selected from the context model.
- Binary arithmetic coding is encoded through a process in which the probability interval corresponding to the bin to be processed is divided into probability intervals through the occurrence probability of 0 and 1, and then the probability interval becomes the entire probability interval for the bin to be processed next.
- the location information within the probability interval in which the last bin is processed is output.
- a renormalization process is performed to expand the probability interval and the corresponding location information is output.
- a probability update process can be performed in which the probability for the next bin to be processed is newly set through the information of the processed bin.
- the above generated bitstream is encapsulated into NAL (Network Abstraction Layer) units as basic units.
- the NAL unit is divided into a VCL (Video Coding Layer) NAL unit containing video data and a non-VCL NAL unit containing parameter information for decoding the video data, and there are various types of VCL or non-VCL NAL units.
- the NAL unit consists of NAL header information and RBSP (Raw Byte Sequence Payload) data, and the NAL header information includes summary information about the RBSP.
- the RBSP of the VCL NAL unit includes an integer number of encoded coding tree units.
- VPS Video Parameter Set
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- APS Adaptation Parameter Set
- An RBSP of a VCL NAL unit may include an integer number of coding tree units.
- a VPS is a parameter set configured with a common syntax by extracting duplicate parameters from an SPS parameter set signaled for each layer in a bitstream supporting image quality, resolution, and frame rate scalability or a bitstream supporting multi-view.
- SPS is a parameter set including at least one of a Profile containing information on allowable coding tools (or algorithms) and image formats, a Level containing information on the processing capability of a decoder such as processable image resolution and frame rate and allowable memory size, a Tier containing information on the maximum processable bit rate, and information on image resolution, bit depth, and whether or not to enable a function.
- PPS is a parameter set including at least one of image resolution, tile division information, whether or not to enable weight prediction, quantization parameters, and filtering-related information.
- APS is a parameter set including one of ALF filter coefficient information, LMCS-related parameters, and quantization scale parameters depending on the APS type.
- APS is divided into prefix APS, which is signaled before the VCL NAL unit, and suffix APS, which is signaled after the VCL NAL unit.
- prefix APS which is signaled before the VCL NAL unit
- suffix APS which is signaled after the VCL NAL unit.
- FIG. 1 illustrates an encoding device (100) according to one embodiment of the present invention, and the blocks shown separately illustrate elements of the encoding device (100) by logically distinguishing them. Accordingly, the elements of the encoding device (100) described above may be mounted as one chip or as multiple chips depending on the design of the device. According to one embodiment, the operation of each element of the encoding device (100) described above may be performed by a processor (not shown).
- FIG. 2 is a schematic block diagram of a video signal decoding device (200) according to one embodiment of the present invention.
- the decoding device (200) of the present invention includes an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (225), a filtering unit (230), and a prediction unit (250).
- the entropy decoding unit (210) entropy decodes the video signal bitstream to extract transform coefficient information, intra-coding information, inter-coding information, etc. for each region. For example, the entropy decoding unit (210) can obtain a binarization code for transform coefficient information of a specific region from the video signal bitstream. In addition, the entropy decoding unit (210) inversely binarizes the binarization code to obtain quantized transform coefficients. The inverse quantization unit (220) inversely quantizes the quantized transform coefficients, and the inverse transform unit (225) restores the residual value using the inverse quantized transform coefficients. The video signal processing device (200) restores the original pixel value by adding the residual value obtained by the inverse transform unit (225) with the prediction value obtained by the prediction unit (250).
- the filtering unit (230) performs filtering on the picture to improve the image quality.
- This may include a deblocking filter for reducing block distortion and/or an adaptive loop filter for removing distortion of the entire picture.
- the filtered picture is output or stored in the decoded picture buffer (DPB, 256) to be used as a reference picture for the next picture.
- the prediction unit (250) includes an intra prediction unit (252) and an inter prediction unit (254).
- the prediction unit (250) generates a prediction picture by utilizing the encoding type decoded through the entropy decoding unit (210) described above, the transform coefficients for each region, intra/inter encoding information, etc.
- the decoded region of the current picture or other pictures including the current block may be used.
- a picture (or tile/slice) that uses only the current picture for restoration, that is, performs intra prediction or intra BC prediction, is called an intra picture or I picture (or tile/slice), and a picture (or tile/slice) that can perform all of intra prediction, inter prediction, and intra BC prediction is called an inter picture (or tile/slice).
- a picture (or tile/slice) that uses at most one motion vector and reference picture index to predict sample values of each block among inter-pictures (or tiles/slices) is called a predictive picture or P-picture (or tile/slice), and a picture (or tile/slice) that uses at most two motion vectors and reference picture indices is called a bi-predictive picture or B-picture (or tile/slice).
- a P-picture (or tile/slice) uses at most one motion information set to predict each block
- a B-picture (or tile/slice) uses at most two motion information sets to predict each block.
- a motion information set includes one or more motion vectors and one reference picture index.
- the intra prediction unit (252) generates a prediction block using intra encoding information and reconstructed samples in the current picture.
- the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, and an MPM index.
- the intra prediction unit (252) predicts sample values of the current block using reconstructed samples located on the left and/or above the current block as reference samples.
- the reconstructed samples, the reference samples, and the samples of the current block may represent pixels.
- the sample values may represent pixel values.
- the reference samples may be samples included in a neighboring block of the current block.
- the reference samples may be samples adjacent to a left boundary of the current block and/or samples adjacent to an upper boundary.
- the reference samples may be samples located on a line within a preset distance from a left boundary of the current block and/or samples located on a line within a preset distance from an upper boundary of the current block among samples of neighboring blocks of the current block.
- the neighboring blocks of the current block may include at least one of a left (L) block, an upper (A) block, a lower left (BL) block, an above right (AR) block, or an above left (AL) block adjacent to the current block.
- the inter prediction unit (254) generates a prediction block using the reference picture and inter encoding information stored in the decoded picture buffer (256).
- the inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block.
- Inter prediction may include L0 prediction, L1 prediction, and bi-prediction.
- L0 prediction is prediction using one reference picture included in the L0 picture list
- L1 prediction means prediction using one reference picture included in the L1 picture list.
- one set of motion information e.g., motion vector and reference picture index
- up to two reference areas can be used, and these two reference areas may exist in the same reference picture or may exist in different pictures, respectively.
- the bi-prediction method up to two sets of motion information (e.g., motion vectors and reference picture indices) can be used, and the two motion vectors may correspond to the same reference picture index or may correspond to different reference picture indices.
- the reference pictures are pictures that are located temporally before or after the current picture and may be completed pictures that have already been restored.
- the two reference areas used in the bi-prediction method may be areas selected from each of the L0 picture list and the L1 picture list.
- a prediction method that uses only reference pictures having a POC smaller than that of the current picture or uses only reference pictures having a POC larger than that of the current picture based on the POC (picture order count) indicating the display order of the current picture may be called uni-directional prediction.
- a prediction method that uses both a reference picture with a POC smaller than that of the current picture and a reference picture with a POC larger than that of the current picture based on the picture order count (POC) that indicates the display order of the current picture can be called bi-directional prediction.
- a prediction method that uses only one reference picture in uni-directional prediction can be called uni-prediction
- a prediction method that uses two reference pictures in uni-directional prediction can be called bi-prediction or pair prediction.
- the inter prediction unit (254) can obtain a reference block of the current block using a motion vector and a reference picture index.
- the reference block exists in a reference picture corresponding to the reference picture index.
- a sample value of a block specified by a motion vector or an interpolated value thereof can be used as a predictor of the current block.
- an 8-tap interpolation filter can be used for a luminance signal and a 4-tap interpolation filter can be used for a chrominance signal.
- the interpolation filter for motion prediction in sub-pel units is not limited thereto.
- the inter prediction unit (254) performs motion compensation to predict a texture of a current unit from a previously restored picture. At this time, the inter prediction unit can use a motion information set.
- the prediction unit (250) may include an IBC prediction unit (not shown).
- the IBC prediction unit may reconstruct the current region by referring to a specific region including reconstructed samples in the current picture.
- the IBC prediction unit may perform IBC prediction using IBC encoding information obtained from the entropy decoding unit (210).
- the IBC encoding information may include block vector information.
- a restored video picture is generated by adding the prediction value output from the intra prediction unit (252) or inter prediction unit (254) and the residual value output from the inverse transformation unit (225). That is, the video signal decoding device (200) restores the current block using the prediction block generated from the prediction unit (250) and the residual obtained from the inverse transformation unit (225).
- FIG. 2 illustrates a decoding device (200) according to one embodiment of the present invention, and the blocks shown separately illustrate elements of the decoding device (200) by logically distinguishing them. Accordingly, the elements of the decoding device (200) described above may be mounted as one chip or as multiple chips depending on the design of the device. According to one embodiment, the operation of each element of the decoding device (200) described above may be performed by a processor (not shown).
- signaling can be described as encoding each syntax from the perspective of the encoder
- parsing can be described as interpreting each syntax from the perspective of the decoder. That is, each syntax can be included in the bitstream from the encoder and signaled, and the decoder can parse the syntax and use it in the restoration process.
- the sequence of bits for each syntax listed according to the prescribed hierarchical configuration can be called a bitstream.
- a picture can be encoded by being divided into sub-pictures, slices, tiles, etc.
- a sub-picture can include one or more slices or tiles. When a picture is encoded by being divided into multiple slices or tiles, all slices or tiles in the picture must be decoded before it can be displayed on the screen. On the other hand, when a picture is encoded into multiple sub-pictures, only any sub-picture can be decoded and displayed on the screen.
- a slice can include multiple tiles or sub-pictures. Or, a tile can include multiple sub-pictures or slices. Since sub-pictures, slices, and tiles can be encoded or decoded independently of each other, it is effective for parallel processing and processing speed improvement.
- a sub-picture, slice, or tile can be encoded by being divided into multiple coding tree units (CTUs).
- FIG. 3 illustrates an embodiment in which a Coding Tree Unit (CTU) in a picture is divided into Coding Units (CUs).
- CTU Coding Tree Unit
- CU Coding Unit
- a Coding Tree Unit may be composed of a luminance (luma) Coding Tree Block (CTB), two chroma (chroma) Coding Tree Blocks, and their encoded syntax information.
- CB luminance Coding Tree Block
- chroma chroma Coding Tree Blocks
- One Coding Tree Unit may be composed of one Coding Unit, or one Coding Tree Unit may be split into multiple Coding Units.
- One Coding Unit may be composed of a luminance Coding Block (CB), two chroma Coding Blocks, and their encoded syntax information.
- CB luminance Coding Block
- One Coding Block may be split into multiple sub-Coding Blocks.
- One Coding Unit may be composed of one Transform Unit (TU), or one Coding Unit may be split into multiple Transform Units.
- a transform unit may be composed of a luminance transform block (Transform Block, TB), two chrominance transform blocks, and its encoded syntax information.
- a coding tree unit may be divided into multiple coding units.
- a coding tree unit may not be divided and may be a leaf node. In this case, the coding tree unit itself may be a coding unit.
- a coding unit refers to a basic unit for processing a picture in the processing of a video signal described above, that is, a process such as intra/inter prediction, transformation, quantization, and/or entropy coding.
- the size and shape of a coding unit within a picture may not be constant.
- a coding unit may have a square or rectangular shape.
- a rectangular coding unit (or rectangular block) includes a vertical coding unit (or vertical block) and a horizontal coding unit (or horizontal block).
- a vertical block is a block whose height is greater than its width
- a horizontal block is a block whose width is greater than its height.
- a non-square block in this specification may refer to a rectangular block, but the present invention is not limited thereto.
- the coding tree unit is first divided into a Quad Tree (QT) structure. That is, in the Quad Tree structure, one node having a size of 2NX2N can be divided into four nodes having a size of NXN.
- the Quad Tree may also be referred to as a quaternary tree.
- the Quad Tree division can be performed recursively, and not all nodes need to be divided to the same depth.
- the leaf node of the aforementioned quad tree can be further split into a Multi-Type Tree (MTT) structure.
- MTT Multi-Type Tree
- one node can be split into a binary or ternary tree structure of horizontal or vertical splitting. That is, the Multi-Type Tree structure has four split structures: vertical binary splitting, horizontal binary splitting, vertical ternary splitting, and horizontal ternary splitting.
- the width and height of the node can both have a power of 2 value.
- a node of 2NX2N size can be split into two NX2N nodes by vertical binary splitting, and can be split into two 2NXN nodes by horizontal binary splitting.
- a node of size 2NX2N can be split into nodes of size (N/2)X2N, NX2N, and (N/2)X2N by vertical ternary splitting, and into nodes of size 2NX(N/2), 2NXN, and 2NX(N/2) by horizontal ternary splitting.
- This multi-type tree splitting can be performed recursively.
- a leaf node of a multi-type tree can be a coding unit. If the coding unit is not larger than the maximum transform length, the coding unit can be used as a unit of prediction and/or transformation without further splitting. In one embodiment, if the width or height of the current coding unit is larger than the maximum transform length, the current coding unit can be split into a plurality of transform units without explicit signaling regarding the splitting. Meanwhile, in the quad tree and multi-type tree described above, at least one of the following parameters can be defined in advance or transmitted via an RBSP of a higher level set, such as a PPS, an SPS, a VPS, etc.
- FIG. 4 illustrates an embodiment of a method for signaling splitting of a quad tree and a multi-type tree.
- Pre-configured flags may be used to signal splitting of the quad tree and the multi-type tree described above.
- a flag 'split_cu_flag' indicating whether a current node is split may be signaled first. If the value of 'split_cu_flag' is 0, it indicates that the current node is not split, and the current node becomes a coding unit. If the current node is a coding tree unit, the coding tree unit includes one coding unit that is not split. If the current node is a quad tree node 'QT node', the current node is a leaf node 'QT leaf node' of the quad tree and becomes a coding unit. If the current node is a multi-type tree node 'MTT node', the current node is a leaf node 'MTT leaf node' of the multi-type tree and becomes a coding unit.
- the current node can be split into nodes of a quad tree or a multi-type tree depending on the value of 'split_qt_flag'.
- the coding tree unit is a root node of the quad tree and can be first split into a quad tree structure. In the quad tree structure, 'split_qt_flag' is signaled for each node 'QT node'.
- the quad tree splitting may be limited depending on the type of the current node.
- a quad-tree split may be allowed if the current node is a coding tree unit (a root node of a quad-tree) or a quad-tree node, and a quad-tree split may not be allowed if the current node is a multi-type tree node.
- Each quad-tree leaf node 'QT leaf node' may be further split into a multi-type tree structure. As described above, if 'split_qt_flag' is 0, the current node may be split into multi-type nodes. To indicate the splitting direction and the splitting shape, 'mtt_split_cu_vertical_flag' and 'mtt_split_cu_binary_flag' may be signaled.
- 'mtt_split_cu_vertical_flag' a vertical split of the node 'MTT node' is indicated, and if the value of 'mtt_split_cu_vertical_flag' is 0, a horizontal split of the node 'MTT node' is indicated. Also, if the value of 'mtt_split_cu_binary_flag' is 1, the node 'MTT node' is split into two rectangular nodes, and if the value of 'mtt_split_cu_binary_flag' is 0, the node 'MTT node' is split into three rectangular nodes.
- the tree partition structure can be partitioned into luminance blocks and chrominance blocks in the same form. That is, the chrominance block can be partitioned into chrominance blocks by referring to the partition form of the luminance block. If the current chrominance block is smaller than an arbitrary set size, the chrominance block may not be partitioned even if the luminance block is partitioned.
- the tree partition structure may have different forms for luminance blocks and chrominance blocks.
- partition information for the luminance block and partition information for the chrominance block may be signaled separately.
- not only the partition information but also the encoding information for the luminance block and the chrominance block may be different.
- at least one or more intra encoding modes for the luminance block and the chrominance block, encoding information for the motion information, etc. may be different.
- the node to be divided into the smallest unit can be processed as one coding block.
- the coding block can be divided into several sub-blocks (sub-coding blocks), and the prediction information of each sub-block can be the same or different.
- the prediction information of each sub-block can be the same or different.
- the coding unit is an intra mode
- the intra prediction modes of each sub-block can be the same or different.
- the motion information of each sub-block can be the same or different.
- each sub-block can be encoded or decoded independently of each other.
- Each sub-block can be distinguished through a sub-block index (sbIdx).
- the coding unit when it is divided into sub-blocks, it can be divided horizontally or vertically or diagonally.
- ISP Intra Sub Partitions
- GPM Gaometric partitioning mode
- the position and direction of the diagonal line are derived using a predefined angle table, and the index information of the angle table is signaled.
- Motion information may include one or more of reference direction indication information, reference picture information, motion vector, motion resolution, affine model, CPMV (control point motion vector), block vector, block vector resolution, MHP information, LIC information, filtering information, BCW information, and RRIBC information.
- the reference direction indication information consists of L0 prediction, L1 prediction, L0 and L1 prediction, and L0 prediction and L1 prediction are unidirectional prediction and unidirectional prediction, and L0 and L1 prediction are bidirectional prediction. And L0 and L1 prediction can be unidirectional prediction or bidirectional prediction.
- L0 prediction is predicted using reference pictures in the L0 reference picture list
- L1 prediction can be predicted using reference pictures in the L1 reference picture list.
- a reference picture having a POC smaller than the POC of the current picture can be added to the reference picture list based on the POC of the current picture.
- the L0 reference picture list can be composed in order from a reference picture having a POC closer than the POC of the current picture to a reference picture having a POC farther from the POC of the current picture.
- a reference picture having a POC larger than the POC of the current picture can be added to the reference picture list based on the POC of the current picture.
- the L1 reference picture list can be organized in the order of reference pictures whose POC is closer to the current picture's POC and reference pictures whose POC is farther away.
- the L0 and L1 reference picture lists can be different for each slice, subpicture, and picture.
- the L0 reference picture list can include reference pictures of the L1 reference picture list.
- the L1 reference picture list can include reference pictures of the L0 reference picture list.
- Reference picture information may vary from block to block, and may be index information indicating which reference picture in the L0 reference picture list and/or the L1 reference picture list is used to predict the current block.
- the reference picture information may include at least one of L0 reference picture information and L1 reference picture information.
- a motion vector is information that indicates the block in a reference picture that best matches the current block. It is a value that represents the distance to the reference block in horizontal and vertical coordinates based on the upper left position of the current block in the picture.
- Motion resolution represents the resolution of the motion vector, and motion resolution can be expressed in units of 4 pixels, 1 pixel (integer pixel), 1/2 pixel, 1/4 pixel, 1/8 pixel, and 1/16 pixel.
- a block vector is information that indicates the block that best matches the current block in the area that has already been restored within the current picture. It is a value that represents the distance to the reference block in horizontal and vertical coordinates based on the upper left position of the current block within the picture.
- Block vector resolution can be expressed in units of 4 pixels, 1 pixel (integer pixel), 1/2 pixel, 1/4 pixel, 1/8 pixel, and 1/16 pixel.
- MHP information may include whether additional motion information is applied and may include additional motion information.
- LIC information may include whether LIC is applied to the current block.
- Filtering information may include filtering type and coefficient information applied according to the motion resolution of the current block.
- CW information may include whether BCW is applied to the current block.
- RRIBC information may include information about whether RRIBC is applied and the RRIBC type if the current block is encoded in IBC mode.
- Picture prediction (motion compensation) for coding is performed on coding units that cannot be divided any further (i.e., leaf nodes of coding tree units).
- the basic unit that performs this prediction is referred to as a prediction unit or prediction block hereinafter.
- the term unit used in this specification may be used as a term to replace the prediction unit, which is a basic unit for performing prediction.
- the present invention is not limited thereto, and may be understood as a concept that includes the coding unit in a broader sense.
- Figures 5 and 6 illustrate an intra prediction method according to an embodiment of the present invention in more detail.
- the intra prediction unit predicts sample values of the current block using reconstructed samples located on the left and/or above the current block as reference samples.
- FIG. 5 illustrates an embodiment of reference samples used for prediction of a current block in an intra prediction mode.
- the reference samples may be samples adjacent to a left boundary of the current block and/or samples adjacent to an upper boundary.
- reference samples may be set using at most 2W+2H+1 surrounding samples located on the left and/or above the current block.
- pixels of multiple reference lines may be used for intra prediction of the current block.
- the multiple reference lines may be composed of n lines located within a preset range from the current block.
- separate index information indicating lines to be set as reference pixels may be signaled, and this may be named a reference line index.
- the intra prediction unit may perform a reference sample padding process to obtain a reference sample.
- the intra prediction unit may perform a reference sample filtering process to reduce an error of intra prediction. That is, filtering may be performed on surrounding samples and/or reference samples obtained by the reference sample padding process to obtain filtered reference samples.
- the intra prediction unit predicts samples of the current block using the reference samples obtained in this manner.
- the intra prediction unit predicts samples of the current block using unfiltered reference samples or filtered reference samples.
- the surrounding samples may include samples on at least one reference line.
- the surrounding samples may include adjacent samples on a line adjacent to a boundary of the current block.
- FIG. 6 illustrates an embodiment of prediction modes used for intra prediction.
- intra prediction mode information indicating an intra prediction direction may be signaled.
- the intra prediction mode information indicates one of a plurality of intra prediction modes constituting an intra prediction mode set. If the current block is an intra prediction block, the decoder receives intra prediction mode information of the current block from the bitstream. The intra prediction unit of the decoder performs intra prediction on the current block based on the extracted intra prediction mode information.
- an intra prediction mode set may include all intra prediction modes used for intra prediction (e.g., a total of 67 intra prediction modes). More specifically, the intra prediction mode set may include a planar mode, a DC mode, and a plurality of (e.g., 65) angular modes (i.e., directional modes). Each intra prediction mode may be indicated by a preset index (i.e., an intra prediction mode index). For example, as illustrated in FIG. 6, an intra prediction mode index 0 indicates a planar mode, and an intra prediction mode index 1 indicates a DC mode. In addition, intra prediction mode indexes 2 to 66 may indicate different angular modes, respectively.
- the angular modes indicate different angles within a preset angular range, respectively.
- an angular mode may indicate an angle within an angular range from 45 degrees to -135 degrees in a clockwise direction (i.e., a first angular range).
- the angular mode may be defined based on the 12 o'clock direction.
- intra prediction mode index 2 indicates horizontal diagonal (HDIA) mode
- intra prediction mode index 18 indicates horizontal (HOR) mode
- intra prediction mode index 34 indicates diagonal (DIA) mode
- intra prediction mode index 50 indicates vertical (VER) mode
- intra prediction mode index 66 indicates vertical diagonal (VDIA) mode.
- the preset angle range may be set differently depending on the shape of the current block. For example, if the current block is a rectangular block, a wide-angle mode indicating an angle exceeding 45 degrees or less than -135 degrees in a clockwise direction may be additionally used. If the current block is a horizontal block, the angle mode may indicate an angle within an angle range (i.e., a second angle range) between (45+offset1) degrees and (-135+offset1) degrees in a clockwise direction. At this time, angle modes 67 to 76 that are outside the first angle range may be additionally used.
- an angle range i.e., a second angle range
- the angle mode may indicate an angle within an angle range (i.e., a third angle range) between (45-offset2) degrees and (-135-offset2) degrees in a clockwise direction.
- angle modes -10 to -1 that are outside the first angle range may be additionally used.
- the values of offset1 and offset2 may be determined differently depending on a ratio between the width and the height of the rectangular block. Also, offset1 and offset2 can be positive.
- the plurality of angular modes constituting the intra prediction mode set may include a basic angular mode and an extended angular mode.
- the extended angular mode may be determined based on the basic angular mode.
- the basic angle mode may be a mode corresponding to an angle used in intra prediction of the existing HEVC (High Efficiency Video Coding) standard
- the extended angle mode may be a mode corresponding to an angle newly added in intra prediction of the next-generation video codec standard.
- the basic angle mode may be an angle mode corresponding to any one of the intra prediction modes ⁇ 2, 4, 6, ..., 66 ⁇
- the extended angle mode may be an angle mode corresponding to any one of the intra prediction modes ⁇ 3, 5, 7, ..., 65 ⁇ . That is, the extended angle mode may be an angle mode between the basic angle modes within the first angle range. Therefore, the angle indicated by the extended angle mode may be determined based on the angle indicated by the basic angle mode.
- the basic angle mode may be a mode corresponding to an angle within a preset first angle range
- the extended angle mode may be a wide-angle mode outside the first angle range. That is, the basic angle mode may be an angle mode corresponding to any one of the intra prediction modes ⁇ 2, 3, 4, ... , 66 ⁇ , and the extended angle mode may be an angle mode corresponding to any one of the intra prediction modes ⁇ -14, -13, -12, ... , -1 ⁇ and ⁇ 67, 68, ... , 80 ⁇ .
- the angle indicated by the extended angle mode may be determined as an opposite angle to the angle indicated by the corresponding basic angle mode. Accordingly, the angle indicated by the extended angle mode may be determined based on the angle indicated by the basic angle mode.
- the number of extended angle modes is not limited thereto, and additional extended angles may be defined according to the size and/or shape of the current block. Meanwhile, the total number of intra prediction modes included in the intra prediction mode set may vary depending on the configuration of the basic angle mode and the extended angle mode described above.
- the interval between the extended angular modes can be set based on the interval between the corresponding basic angular modes.
- the interval between the extended angular modes ⁇ 3, 5, 7, ... , 65 ⁇ can be determined based on the interval between the corresponding basic angular modes ⁇ 2, 4, 6, ... , 66 ⁇ .
- the interval between the extended angular modes ⁇ -14, -13, ... , -1 ⁇ can be determined based on the interval between the corresponding opposite basic angular modes ⁇ 53, 53, ... , 66 ⁇ , and the interval between the extended angular modes ⁇ 67, 68, ... , 80 ⁇ can be determined based on the interval between the corresponding opposite basic angular modes ⁇ 2, 3, 4, ... , 15 ⁇ .
- the angular interval between the extended angular modes can be set to be equal to the angular interval between the corresponding basic angular modes.
- the number of the extended angular modes in the intra prediction mode set can be set to be less than or equal to the number of the basic angular modes.
- the extended angular mode can be signaled based on the base angular mode.
- the wide-angle mode i.e., the extended angular mode
- the base angular mode can replace at least one angular mode (i.e., the base angular mode) within the first angular range.
- the replaced base angular mode can be an angular mode corresponding to the opposite side of the wide-angle mode. That is, the replaced base angular mode is an angular mode corresponding to an angle in the opposite direction to the angle indicated by the wide-angle mode or an angle that is different from the angle in the opposite direction by a preset offset index.
- the preset offset index is 1.
- the intra prediction mode index corresponding to the replaced base angular mode can be remapped to the wide-angle mode to signal the corresponding wide-angle mode.
- the wide-angle modes ⁇ -14, -13, ... , -1 ⁇ can be signaled by the intra prediction mode indices ⁇ 52, 53, ... , 66 ⁇ , respectively
- the wide-angle modes ⁇ 67, 68, ... , 66 ⁇ can be signaled by the intra prediction mode indices ⁇ 52, 53, ... , 66 ⁇ , respectively.
- 80 ⁇ can be signaled by intra prediction mode indices ⁇ 2, 3, ..., 15 ⁇ , respectively.
- the intra prediction mode index for the basic angular mode signal the extended angular mode in this way, even if the configurations of the angular modes used for intra prediction of each block are different, the same set of intra prediction mode indices can be used to signal the intra prediction mode. Therefore, the signaling overhead due to the change in the intra prediction mode configuration can be minimized.
- whether to use the extended angle mode may be determined based on at least one of the shape and the size of the current block.
- the extended angle mode may be used for intra prediction of the current block, otherwise, only the basic angle mode may be used for intra prediction of the current block.
- the extended angle mode may be used for intra prediction of the current block, and if the current block is a square block, only the basic angle mode may be used for intra prediction of the current block.
- the intra prediction unit determines reference samples and/or interpolated reference samples to be used for intra prediction of the current block based on intra prediction mode information of the current block. If the intra prediction mode index indicates a specific angle mode, the reference sample or interpolated reference sample corresponding to the specific angle from the current sample of the current block is used for prediction of the current pixel. Therefore, different sets of reference samples and/or interpolated reference samples can be used for intra prediction depending on the intra prediction mode.
- the decoder restores sample values of the current block by adding a residual signal of the current block obtained from the inverse transform unit to the intra prediction value of the current block.
- Motion information used for inter prediction may include reference direction indication information (inter_pred_idc), reference picture indexes (ref_idx_l0, ref_idx_l1), and motion vectors (mvL0, mvL1).
- Reference picture list utilization information predFlagL0, predFlagL1 may be set according to the reference direction indication information.
- the coding unit may be divided into multiple sub-blocks, and the prediction information of each sub-block may be the same or different. For example, if the coding unit is an intra mode, the intra prediction modes of each sub-block may be the same or different. In addition, if the coding unit is an inter mode, the motion information of each sub-block may be the same or different. In addition, each sub-block may be encoded or decoded independently. Each sub-block may be distinguished through a sub-block index (sbIdx).
- sbIdx sub-block index
- the motion vector of the current block is likely to be similar to the motion vectors of the surrounding blocks. Therefore, the motion vectors of the surrounding blocks can be used as motion vector predictors (mvp), and the motion vector of the current block can be derived using the motion vectors of the surrounding blocks.
- the difference in motion vectors (motion vector difference, mvd) between the optimal motion vector of the current block found from the original image by the encoder and the motion predictor can be signaled.
- Motion vectors can have various resolutions, and the resolution of motion vectors can vary on a block-by-block basis.
- Motion vector resolution can be expressed in integer units, half-pixel units, quarter-pixel units, sixteen-pixel units, and integer-of-four pixel units. Since images such as screen contents are in simple graphical forms such as characters, no interpolation filter needs to be applied, and thus integer units and integer-of-four pixel units can be selectively applied on a block-by-block basis.
- Blocks encoded in an affine mode capable of expressing rotation and scale have significant shape changes, and thus integer units, quarter-pixel units, and sixteen-pixel units can be selectively applied on a block-by-block basis.
- Information on whether to selectively apply motion vector resolution on a block-by-block basis is signaled by amvr_flag. If applied, which motion vector resolution to apply to the current block is signaled by amvr_precision_idx.
- the weights between the two prediction blocks can be applied equally or differently when applying weighted average, and information about the weights is signaled via bcw_idx.
- the Merge or AMVP (advanced motion vector prediction) method can be selectively used on a block-by-block basis.
- the Merge method is a method that configures the motion information of the current block to be the same as the motion information of the adjacent blocks to the current block, and has the advantage of increasing the encoding efficiency of the motion information by spatially propagating the motion information without change in the motion region having homogeneity.
- the AMVP method is a method that predicts motion information in the L0 and L1 prediction directions respectively to express accurate motion information and signals the most optimal motion information. After the decoder derives the motion information for the current block through the AMVP or Merge method, it uses the reference block located in the motion information derived from the reference picture as the prediction block for the current block.
- a method of deriving motion information in Merge or AMVP may be a method in which a motion candidate list is constructed using motion prediction values derived from neighboring blocks of a current block, and then index information for an optimal motion candidate is signaled.
- AMVP since motion candidate lists are derived for each of L0 and L1, optimal motion candidate indices (mvp_l0_flag, mvp_l1_flag) for each of L0 and L1 are signaled.
- one merge index (merge_idx) is signaled.
- the motion candidate lists derived from one coding unit may vary, and a motion candidate index or a merge index may be signaled for each motion candidate list.
- a mode in which there is no information on a residual block in a block encoded in Merge mode may be called a MergeSkip mode.
- Bidirectional motion information for the current block can be derived by combining AMVP and Merge modes.
- motion information in the L0 direction can be derived using the AMVP method
- motion information in the L1 direction can be derived using the Merge method.
- L0 can be applied to Merge
- L1 can be applied to AMVP.
- This encoding mode can be called AMVP-merge mode.
- the motion candidate and the motion information candidate in this specification may have the same meaning.
- the motion candidate list and the motion information candidate list in this specification may have the same meaning.
- SMVD Symmetric MVD
- MVD Motion Vector Difference
- OBMC Overlapped Block Motion Compensation
- OBMC is a method that generates prediction blocks for the current block using the motion information of surrounding blocks when the motion information between blocks is different, and then generates the final prediction block for the current block by weighting and averaging the prediction blocks. This has the effect of reducing the blocking phenomenon that occurs at the block boundaries of a motion compensated image.
- the motion accuracy of the merge motion candidate is low.
- the MMVD (Merge mode with MVD) method can be used.
- the MMVD method is a method of correcting motion information by using one candidate selected from several motion differential value candidates.
- Information on the correction value of the motion information obtained through the MMVD method e.g., an index indicating one candidate selected from the motion differential value candidates, etc.
- the number of bits can be saved by including the information on the correction value of the motion information in the bitstream.
- the TM (Template Matching) method is a method of compiling a template using surrounding pixels of the current block, finding a matching area with the highest similarity to the template, and correcting motion information.
- TM (Template Matching) is a method of performing motion prediction in a decoder without including motion information in the bitstream in order to reduce the size of the encoded bitstream. At this time, since the decoder does not have an original image, it can roughly derive motion information for the current block using the already restored surrounding blocks.
- the DMVR (Decoder-side Motion Vector Refinement) method is a method to correct motion information through the correlation of already restored reference images in order to find slightly more accurate motion information. It is a method to use the best matching point between reference blocks in the reference pictures within an arbitrary set area of two reference pictures as a new bidirectional motion by using the bidirectional motion information of the current block.
- the encoder can correct the motion information by performing DMVR on a block basis, and then divide the block into sub-blocks again and perform DMVR on each sub-block basis to correct the motion information of the sub-block again.
- MP-DMVR Multi-pass DMVR
- the LIC (Local Illumination Compensation) method is a method of compensating for luminance changes between blocks. It derives a linear model using neighboring pixels adjacent to the current block, and then compensates for the luminance information of the current block through the linear model.
- BDOF Bi-Directional Optical Flow
- the motion information derived from BDOF of VVC can be used to compensate for the motion of the current block.
- PROF Prediction refinement with optical flow
- PROF is a technology for improving the accuracy of sub-block unit Affine motion prediction to be similar to the accuracy of pixel unit motion prediction. Similar to BDOF, PROF is a technology that calculates a correction value on a pixel-by-pixel basis for pixel values that have been affine motion compensated on a sub-block-by-subblock basis based on optical flow to obtain a final prediction signal.
- the CIIP (Combined Inter-/Intra-picture Prediction) method is a method of generating a final prediction block by weighting and averaging prediction blocks generated by the intra-picture prediction method and prediction blocks generated by the inter-picture prediction method when generating a prediction block for the current block.
- the IBC (Intra Block Copy) method is a method of finding the most similar part to the current block in the already restored area of the current picture and using the reference block as a prediction block for the current block.
- information related to the block vector which is the distance between the current block and the reference block, can be included in the bitstream.
- the decoder can parse the information related to the block vector included in the BeastStream to calculate or set the block vector for the current block.
- the BCW (Bi-prediction with CU-level Weights) method is a method that performs a weighted average on two motion-compensated prediction blocks by adaptively applying weights on a block-by-block basis, rather than generating a prediction block by averaging two motion-compensated prediction blocks from different reference pictures.
- the Intra TMP (Template Matching Prediction) method is a method in which a video signal processing device constructs a reference template using pixel values of neighboring blocks adjacent to the current block, finds the part most similar to the constructed reference template in an already restored area within the current picture, and then uses the reference block (the part found in the already restored area) as a prediction block for the current block.
- the MHP (Multi-hypothesis prediction) method is a method of performing weighted prediction using various prediction signals by transmitting additional motion information to unidirectional and bidirectional motion information during inter-screen prediction.
- CCLM Cross-component linear model
- MMLM Multi-model Linear mode
- GLM Gradient Linear Model
- the reconstructed coefficient t' k for an input coefficient t k depends only on the associated quantization index q k . That is, the quantization index for any reconstructed coefficient has a different value from the quantization indices for other reconstructed coefficients.
- t' k can be a value that includes quantization error in t k , and can be different or the same depending on the quantization parameter.
- t' k can be named a reconstructed transform coefficient or a dequantized transform coefficient
- the quantization index can also be named a quantized transform coefficient.
- the reconstructed coefficients have the characteristic of being spaced at equal intervals.
- the distance between two adjacent reconstructed values can be called the quantization step size.
- the reconstructed values can include 0, and the entire set of available reconstructed values can be uniquely defined according to the quantization step size.
- the quantization step size can vary depending on the quantization parameter.
- the set of acceptable restored transform coefficients is reduced due to quantization, and the number of elements in this set can be finite. As a result, there is a limit to minimizing the average error between the original image and the restored image.
- Vector quantization can be used as a method to minimize this average error.
- a simple form of vector quantization used in video coding is sign data hiding. This is a method in which the encoder does not encode a sign for a non-zero coefficient, and the decoder determines the sign for the coefficient based on whether the sum of the absolute values of all coefficients is even or odd. To this end, at least one coefficient may be increased or decreased by '1' in the encoder, and at least one coefficient may be selected and adjusted in value such that it is optimal in terms of cost for rate-distortion. As an example, a coefficient having a value close to the boundary of a quantization interval may be selected.
- Trellis-Coded Quantization is utilized as an optimal path search technique to obtain an optimized quantization value in dependent quantization in video coding.
- quantization candidates for all coefficients in a block are arranged in a trellis graph, and an optimal trellis path between the optimized quantization candidates is searched by considering the cost for rate-distortion.
- dependent quantization applied to video coding can be designed so that a set of allowable reconstructed transform coefficients for a transform coefficient depends on the value of the transform coefficient preceding the current transform coefficient in the restoration order. At this time, by selectively using multiple quantizers according to the transform coefficients, there is an effect of minimizing the average error between the original image and the reconstructed image, thereby increasing the coding efficiency.
- the MIP (Matrix Intra Prediction) method is a matrix-based intra prediction method. Unlike the prediction method that has directionality from pixels of neighboring blocks adjacent to the current block, it is a method of obtaining a prediction signal by using a predefined matrix and offset values for pixels on the left and top of neighboring blocks.
- the intra prediction mode for the template derived through the surrounding pixels of the template which is an arbitrary region adjacent to the current block and restored, can be used to restore the current block.
- the decoder generates a prediction template for the template using the surrounding pixels (reference) adjacent to the template, and can use the intra prediction mode that generates the prediction template most similar to the already restored template to restore the current block.
- This method can be called TIMD (Template intra mode derivation).
- an encoder can determine a prediction mode for generating a prediction block and generate a bitstream including information about the determined prediction mode.
- a decoder can set an intra prediction mode by parsing the received bitstream.
- the bit amount of information about the prediction mode can be about 10% of the total bitstream size.
- the encoder may not include information about the intra prediction mode in the bitstream. Accordingly, the decoder can derive (determine) an intra prediction mode for restoring the current block by using the characteristics of the surrounding blocks, and can restore the current block by using the derived intra prediction mode.
- the decoder can use a method of applying a Sobel filter in the horizontal and vertical directions to each of the surrounding pixels adjacent to the current block to infer directional information, and then mapping the directional information to the intra prediction mode in order to derive the intra prediction mode.
- the method by which the decoder derives the intra prediction mode using surrounding blocks can be described as Decoder side intra mode derivation (DIMD).
- Figure 7 is a diagram showing the locations of surrounding blocks used to construct a motion candidate list in inter prediction.
- the neighboring blocks can be blocks of spatial position or blocks of temporal position.
- the neighboring block spatially adjacent to the current block can be at least one of a left (Left, A1) block, a left below (Left Below, A0) block, an above (Above, B1) block, an above right (Above Right, B0) block, or an above left (Above Left, B2) block.
- the neighboring block temporally adjacent to the current block can be a block including an upper left pixel position of a bottom right (BR) block of the current block in a corresponding picture (Collocated picture).
- a block including a horizontal and vertical center (Center, Ctr) pixel position of the current block in the picture corresponding to the current picture (Collocated picture) can be used as a temporal neighboring block.
- the motion candidate information derived from the corresponding picture can be referred to as TMVP (Temporal Motion Vector Predictor). Only one TMVP can be derived from one block, and after dividing one block into several sub-blocks, each TMVP candidate can be derived for each sub-block.
- the method of deriving TMVP in sub-block units can be referred to as sbTMVP (sub-block Temporal Motion Vector Predictor).
- Whether the methods described in this specification are to be applied can be determined based on at least one of information about the slice type (e.g., whether it is an I slice, a P slice, or a B slice), whether it is a tile, whether it is a subpicture, the size of the current block, the depth of the coding unit, whether the current block is a luminance block or a chrominance block, whether it is a reference frame or a non-reference frame, the temporal hierarchy according to the reference order and hierarchy, etc.
- the information used to determine whether the methods described in this specification are to be applied can be information agreed upon in advance between the decoder and the encoder. In addition, such information can be determined according to the profile and level.
- Such information can be expressed as a variable value, and the bitstream can include information about the variable value. That is, the decoder can parse the information about the variable value included in the bitstream to determine whether the above-described methods are to be applied. For example, whether the above-described methods are to be applied can be determined based on the horizontal length or the vertical length of the coding unit. The above-described methods can be applied when the horizontal length or the vertical length is 32 or more (e.g., 32, 64, 128, etc.). Also, the above-described methods can be applied when the horizontal length or the vertical length is less than 32 (e.g., 2, 4, 8, 16). Also, the above-described methods can be applied when the horizontal length or the vertical length is 4 or 8.
- FIG. 8 is a diagram illustrating a process of generating a prediction block using DIMD according to one embodiment of the present invention.
- the decoder can derive a prediction block using surrounding samples (blocks, pixels).
- the surrounding samples can be surrounding blocks (pixels) of the current block.
- the decoder can determine intra prediction modes and weight information for restoring the current block through a histogram for directional information (angle information) using the surrounding samples as input.
- FIG. 9 is a diagram showing the locations of surrounding pixels used to derive directional information according to one embodiment of the present invention.
- Fig. 9(a) shows a case where all neighboring blocks of the current block are available to derive directional information
- Fig. 9(b) shows a case where the upper boundary of the current block is a sub-picture, slice, tile, or CTU boundary
- Fig. 9(c) shows a case where the left boundary of the current block is a sub-picture, slice, tile, or CTU boundary.
- the neighboring blocks and the current block do not belong to the same sub-picture, slice, tile, or CTU, the neighboring blocks may not be used to derive directional information.
- the gray dots in Fig. 9 show the positions of pixels used to actually derive directional information
- the dotted lines show the sub-picture, slice, tile, and CTU boundaries.
- pixels located at the boundary may be padded by one pixel outside the boundary to derive directional information. This padding may allow for more precise directional information to be derived.
- a 3x3 Sobel filter of Equation 1 can be applied in the horizontal and vertical directions, respectively.
- a in Equation 1 can mean pixel information (value) of reconstructed surrounding blocks of the current block of 3x3 size.
- the direction information ( ⁇ ) can be determined using Equation 2.
- the decoder can derive the direction information ( ⁇ ) only by calculating Gy/Gx of Equation 1 without calculating the atan function of Equation 2.
- directional information can be calculated for every gray dot shown in FIG. 9, and the directional information can be mapped to an angle of an intra prediction mode.
- the intra prediction mode set can include a planar mode, a DC mode, and a plurality of (e.g., 65) angular modes (i.e., directional modes).
- the intra prediction modes can be 67 modes, and the directional information (angle, ⁇ ) calculated through mathematical expression 2 can be a value in real units. Therefore, a process of mapping the directional information to a specific intra prediction directional mode is required.
- the directional mode described in this specification can be the same as the angular mode.
- FIG. 10 is a diagram illustrating a method for mapping directional modes according to one embodiment of the present invention.
- the intra prediction directional mode can be divided into four sections based on 0 degrees (index 18), 45 degrees (index 34), 90 degrees (index 50), and 135 degrees (index 66) (see FIG. 6).
- the sections for determining the intra prediction directional mode can be divided into four sections from section 0 to section 3.
- Section 0 can be from -45 degrees to 0 degrees
- section 1 can be from 0 degrees to 45 degrees
- section 2 can be from 45 degrees to 90 degrees
- section 3 can be from 90 degrees to 135 degrees.
- each section can include 16 intra prediction directional modes.
- the directional mode can be determined as one of the four sections by comparing the signs and magnitudes of Gx and Gy calculated through mathematical expression 1.
- interval 1 can be selected.
- the intra prediction directional mode mapped to each interval can be determined through the directional information ( ⁇ ) calculated from mathematical expression 2. Specifically, the decoder extends the value by multiplying the directional information ( ⁇ ) by 2 ⁇ 16. Then, the decoder can compare the extended value with the numbers in the predefined table to find the value closest to the extended value, and determine the intra prediction directional mode based on the closest value. At this time, the number of values in the predefined table can be 17.
- the values of the predefined table can be ⁇ 0, 2048, 4096, 6144, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 47104, 53248, 59392, 65536 ⁇ .
- the difference between the predefined table values can be set differently depending on the difference between the angles of the intra prediction directional mode.
- the difference between the predefined table values may not match the distance between the angles of the intra prediction directional mode.
- atan has a characteristic that the slope gradually decreases as the input value increases. Therefore, the defined table should also be set in numerical value by considering not only the difference between the angles of the intra prediction directional mode but also the nonlinear characteristic of atan. For example, the difference between the defined table values may be set to gradually decrease. Conversely, the difference between the defined table values may be set to gradually increase.
- the available intra prediction directional modes may be different. That is, if the width and height of the current block are different, the interval for deriving the intra prediction directional mode may be different. In other words, the interval for deriving the intra prediction directional mode may be changed based on the width and height of the current block (for example, the ratio of the width and height). For example, if the width of the current block is longer than the height, the intra prediction mode may be remapped to 67 to 80, and the intra prediction modes in the opposite direction may be excluded to 2 to 15.
- the intra prediction modes ⁇ 3, 4, 5, 6, 7, 8 ⁇ may be reset (mapped) to ⁇ 67, 68, 69, 70, 71, 72 ⁇ , respectively.
- the intra prediction mode may be reset to a value that adds '65' to the intra prediction mode.
- the intra prediction mode may be reset to a value that subtracts '67' from the intra prediction mode.
- a histogram may be used to derive an intra prediction directional mode for restoration of the current block. If there are more blocks without directionality than blocks with directionality as a result of obtaining directional information for surrounding blocks, the prediction mode for the block without directionality may have the highest cumulative value in the histogram. However, since the directional mode must be derived for restoration of the current block, the prediction mode for the block without directionality may be excluded even if the cumulative value in the histogram is the highest. That is, a smooth area with no gradient between surrounding pixels or no directionality may not be used to derive an intra prediction directional mode. For example, the prediction mode for the block without directionality may be a planar mode or a DC mode.
- the left surrounding block may not be used to derive directional information, and directional information may be derived using only the upper surrounding block.
- the decoder can generate a histogram using the G value calculated as in Equation 3 to emphasize the directionality.
- the histogram may be an accumulated value to which the calculated G value is added for each generated intra prediction directional mode, rather than a frequency-based one in which '1' is added for each generated intra prediction directional mode.
- FIG. 11 is a diagram showing a histogram for deriving an intra prediction directional mode according to one embodiment of the present invention.
- the X-axis of Fig. 11 represents an intra prediction directional mode
- the Y-axis represents an accumulated value of G values.
- the decoder can select an intra prediction directional mode having the largest accumulated value of G values among the intra prediction directional modes. In other words, the decoder can select an intra prediction directional mode for the current block based on the accumulated value. Referring to Fig. 11, modeA having the largest accumulated value and modeB having the second largest accumulated value can be selected as intra prediction directional modes.
- the decoder can generate a final prediction block by weighting the prediction block generated by modeA, the prediction block generated by modeB, and finally the prediction block generated by the planar mode to generate a prediction block for the current block.
- the weight of each prediction block can be determined using the accumulated value of modeA and modeB.
- the weight for the prediction block generated by the planar mode can be set to 1/3 of the total weight.
- the weight for the prediction block generated by modeA can be set to a weight corresponding to the value obtained by dividing the modeA accumulated value by the sum of the accumulated values of modeA and modeB.
- the weight for the prediction block generated by modeB can be determined as a difference value between the modeA weight and 1/3 of the total weight.
- the decoder can expand the range of the weight by multiplying the weight for the prediction block generated by modeA by an arbitrary value.
- the weight for the prediction block generated by modeB and the weight for the prediction block generated in the planar mode can also be expanded in the same way.
- FIG. 12 is a diagram illustrating a method for signaling DIMD mode according to one embodiment of the present invention.
- FIG. 12 illustrates a signaling method used to store a syntax element for whether the DIMD mode is applied in a bitstream and transmit it to a decoder.
- a syntax element (cu_dimd_flag) for whether the DIMD mode is used to generate a prediction block for a current block can be parsed when the coding mode of the current block is an intra mode and a syntax element (sps_dimd_enabled_flag) for whether the DIMD mode set in SPS is enabled indicates that the DIMD mode is enabled (e.g., when the value of sps_dimd_enabled_flag is 1), the coding mode of the current block is not a SKIP mode, the current block is a luminance block, and the current block is not an inter coding mode.
- cu_dimd_flag is '1', it can indicate that the current block is decrypted in DIMD mode, and if cu_dimd_flag is '0', it can indicate that the current block is not decrypted in DIMD mode. Meanwhile, if cu_dimd_flag is not parsed, the value of cu_dimd_flag can be set to '0'.
- sps_dimd_enabled_flag can be controlled by syntax elements included in profile, tier and level syntax.
- sps_dimd_enabled_flag can be controlled by gci_no_dimd_constraint_flag, which is a syntax element included in general_conatraints_info() syntax.
- gci_no_dimd_constraint_flag is a syntax element included in general_conatraints_info() syntax. The following behavior can be defined. If the value of gci_no_dimd_constraint_flag is 1, the value of sps_dimd_enabled_flag for all pictures in OlsInScope can be 0. If the value of gci_no_dimd_constraint_flag is 0, there can be no separate constraint.
- gci_no_dimd_constraint_flag 1 specifies that sps_dimd_enabled_flag for all pictures in OlsInScope shall be equal to 0.
- gci_no_dimd_constraint_flag 0 does not impose such a constraint.
- FIG. 13 is a diagram illustrating a method for signaling syntax elements related to intra prediction modes depending on whether DIMD mode is used according to one embodiment of the present invention.
- additional information related to the encoding mode may not be parsed.
- additional information related to the encoding mode of the current block e.g., intra_mip_flag, intra_subpartitions_mode_flag, intra_luma_mpm_flag, intra_luma_not_planar_flag, intra_luma_mpm_idx, intra_luma_mpm_remainder, etc.
- intra_mip_flag intra_subpartitions_mode_flag
- intra_luma_mpm_flag intra_luma_not_planar_flag
- intra_luma_mpm_idx intra_luma_mpm_remainder, etc.
- FIG. 14 is a diagram illustrating a method for generating a prediction sample for restoring a current block according to one embodiment of the present invention.
- FIG. 14 is a structural diagram showing a process of generating a prediction sample using the derived intra prediction mode by more effectively deriving an intra prediction mode to improve encoding performance.
- the decoder can derive an intra prediction directional mode for the current block using neighboring samples of neighboring blocks adjacent to the current block.
- the decoder can derive at least one intra prediction directional mode and derive a weight for each mode.
- the decoder can use a histogram-based method that derives directional information of neighboring block samples through an arbitrary filter and determines frequently occurring directional information as the intra prediction directional mode.
- a method for deriving the intra prediction directional mode a method can be used that generates an intra prediction pixel for a left pixel adjacent to the current block using only upper pixels adjacent to the current block and determines the intra prediction mode with the least distortion as the intra prediction directional mode for the current block.
- prediction blocks for the current block can be generated using the intra prediction directional modes and weights derived from the 'prediction mode generator' process.
- the number of prediction blocks can be determined according to the number of intra prediction directional modes derived from the prediction mode generator process. For example, if the number of derived intra prediction directional modes is 2, there can be 2 prediction blocks for the current block.
- the prediction blocks generated in the 'intra prediction' process can be subjected to PDPC (Position dependent intra prediction combination) filtering using the method described below.
- PDPC (Position dependent intra prediction combination) filtering may be applied to each prediction block generated in the 'intra prediction' process. If PDPC filtering is applied to each prediction block, complexity may increase in terms of the decoder, so if the prediction block is predicted in DIMD mode, PDPC filtering may not be applied to the prediction block. In addition, PDPC filtering may be applied only to either modeA with the largest accumulated value or modeB with the second largest accumulated value. For example, PDPC filtering may be applied only to modeA. In addition, whether PDPC filtering is applied may be determined based on the weight of each directional mode.
- whether PDPC is applied to all or part of modeA and modeB may be determined based on the difference between the weight for modeA and the weight for modeB. For example, if the difference between the weight for modeA and the weight for modeB is smaller than a specific value, PDPC filtering may be applied to both modeA and modeB. In addition, whether PDPC filtering is applied to modeA and modeB can be determined by comparing the weight for modeA and the weight for modeB respectively with a specific value. If the weight is greater than a specific value, PDPC filtering can be applied to the directional mode of the corresponding weight.
- PDPC filtering can be applied to modeA and PDPC filtering can not be applied to modeB.
- PDPC filtering of a preset form can be applied only to the final prediction block to which the weighted average is applied through the weighted prediction process (see Fig. 14).
- PDPC filtering can be applied to the final prediction block to which the weighted average is applied using modeA in the 'weighted prediction' process.
- PDPC filtering can be applied to the final prediction block to which the weighted average is applied using modeB in the 'weighted prediction' process.
- the decoder can additionally generate a prediction block for the current block.
- the decoder can generate an intra prediction block using at least one of a planar mode, a DC mode, and a MIP (Matrix Intra Prediction).
- Whether the 'other prediction' process is performed can be determined using at least one of the intra prediction directional modes induced in the 'prediction mode generator' process and weight information for each prediction direction, quantization parameter information of the current block, the horizontal or vertical length of the current block, information on whether the current block is luminance or chrominance, intra prediction modes around the current block, and information on the presence or absence of transform coefficients around the current block (which may correspond to Additional information A, B, and C of FIG. 14).
- a method for determining whether the 'other prediction' process is performed will be described below.
- the decoder can determine the mode based on a syntax element (sps_dimd_default_mode) indicating which mode to use.
- the decoder can determine which mode to use among the planar mode, the DC mode, and the MIP mode depending on the value of sps_dimd_default_mode.
- the decoder can be instructed to use the planar mode
- the decoder can be instructed to use the DC mode
- the decoder can be instructed to use the DC mode
- the decoder can be instructed to use the MIP mode.
- the decoder can generate a prediction block using at least one of the planar mode, the DC mode, and the MIP mode.
- the prediction block can be generated using at least one of the planar mode, the DC mode, and the MIP mode.
- the weights of the intra prediction directional modes derived in the 'prediction mode generator' process are similar to each other (for example, if the difference between the weights of each directional mode is smaller than a specific threshold value), the 'other prediction' process may not be performed.
- the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode (i.e., the 'other prediction' process is performed). If the difference between the weights of the intra prediction directional modes derived in the 'prediction mode generator' process is large (for example, if the difference between the weights of each directional mode is larger than a specific threshold value), it means that there is a lot of change between pixels of the surrounding block, and therefore the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode.
- the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode. Conversely, if the width and height of the current block are the same, the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode.
- the decoder can generate a single prediction sample by weighting and averaging multiple intra prediction blocks generated in the 'intra prediction' and 'other prediction' processes.
- the weight for each intra prediction block can be determined based on at least one of the intra prediction directional mode and weight information derived in the 'prediction mode generator' process, quantization parameter information of the current block, the horizontal or vertical length of the current block, information on whether the current block is luminance or chrominance, intra prediction modes around the current block, and information on whether there are transform coefficients around the current block.
- FIG. 15 is a diagram illustrating a method for determining an intra prediction mode according to one embodiment of the present invention.
- Fig. 15 illustrates the 'prediction mode generator' process of Fig. 14 in more detail.
- the 'prediction mode generator' process of Fig. 14 can derive intra prediction directionality through histogram analysis.
- the decoder can derive intra prediction directionality by analyzing a histogram obtained using neighboring samples adjacent to the current block.
- the decoder can derive the intra prediction directionality mode and weight for the current block by using at least one of the horizontal length and vertical length of the current block, quantization parameter information, possible intra prediction directionality mode information among neighboring blocks of the current block, information on whether a residual signal exists in neighboring blocks of the current block, and information on whether the current block is a luminance block or a chrominance block.
- quantization parameter information possible intra prediction directionality mode information among neighboring blocks of the current block
- information on whether a residual signal exists in neighboring blocks of the current block information on whether the current block is a luminance block or a chrominance block.
- the intra prediction directional mode can be set based on the frequency.
- the decoder can obtain a histogram for the intra prediction directional mode for the surrounding block, analyze the histogram, and select a frequently occurring intra prediction directional mode and a second frequently occurring mode as the prediction directional mode.
- the intra prediction directional mode can be set based on an accumulated value (e.g., a G value in FIG. 11).
- the decoder can analyze a histogram obtained as an accumulated value in which a G value is added to each intra prediction directional mode, and select an intra prediction directional mode having the highest weight and a mode having the second largest weight as the prediction directional mode.
- the decoder can select an intra prediction directional mode based on a distance between intra prediction directional modes of the surrounding block and an accumulated value in which a G value is added.
- the distance between directional modes can mean a difference in the indexes of the directional modes.
- the difference in the distance between the directional mode of index 66 and the directional mode of index 2 can be 64.
- the distance difference between the directional mode of index 66 and the directional mode of index 2 can be 2.
- the decoder can obtain a histogram with the accumulated value in which the G value is added to each of the intra prediction directional modes for the surrounding blocks, analyze the histogram, and first select the intra prediction directional mode with the highest accumulated value. Next, the decoder can use the mode with the smallest distance between the mode with the highest accumulated value and the directional mode (the closest mode) among the modes corresponding to the remaining accumulated values except for the highest accumulated value (for example, the mode with the second highest accumulated value, the mode with the third highest accumulated value, the mode with the fourth highest accumulated value, etc.).
- the decoder first selects the intra prediction directional mode having the highest accumulation value, and the decoder can use the mode having the highest accumulation value and the directional mode having the largest distance (the farthest distance) among the modes corresponding to the remaining accumulation values except for the highest accumulation value (for example, the mode having the second highest accumulation value, the mode having the third highest accumulation value, the mode having the fourth highest accumulation value, etc.).
- the accumulation value for each of the intra prediction directional modes can be used when determining weights for the intra prediction directional modes finally determined in the 'Histogram analysis' process.
- the decoder of Fig. 15 may have two or more intra prediction directional modes for the current block derived from the 'Histogram analysis' process.
- the distances between the intra prediction directional modes may be similar or different.
- the accumulated values between the intra prediction directional modes may also be similar or different. Therefore, in order to derive an optimal prediction sample for the current block, the most optimal combination among various mode combinations should be selected.
- the decoder may combine not only the intra prediction directional modes derived from the 'prediction mode generator' process of Fig. 14 but also the encoding modes derived from 'other prediction' in order to derive an optimal prediction sample for the current block. Information about such combinations may be included in the bitstream.
- the mode combination described in this specification may mean using one of mode A, mode B, planar mode, DC mode, and MIP mode, or combining some or all of them.
- the decoder can select an optimal combination for deriving an optimal prediction sample for the current block by using the intra prediction modes determined in the 'Histogram analysis' process and the weight information corresponding to the derived intra prediction modes in the 'Prediction mode analysis' process. Specifically, the decoder can determine information on whether to use a weighted average to generate a prediction sample for the current block, which intra prediction mode to use, and how to set the weight for the intra prediction mode by using the derived intra prediction modes and the weight information corresponding thereto.
- the decoder can select an optimal combination for deriving a prediction sample for the current block by using the intra prediction modes determined in the 'Histogram analysis' process and the weight information corresponding to the determined intra prediction modes and at least one of the intra prediction modes of the neighboring blocks in the 'Prediction mode analysis' process. Specifically, the decoder can determine information on whether to use weighted average to generate a prediction sample for the current block, which intra prediction mode to use, and how to set weights for the intra prediction modes.
- the decoder can derive optimal combination information (Combination information for prediction modes) for generating a prediction sample for the current block by using at least one or more of the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among the neighboring blocks of the current block, information on whether residual signals exist in the neighboring blocks of the current block, and information on whether the current block is a luminance block or a chrominance block.
- the combination information can include intra prediction directional mode information and weights for the intra prediction directional modes.
- the decoder can generate a prediction block for the current block without applying weighted average, but using only one intra prediction directional mode with the highest weight.
- the arbitrary value is an integer greater than or equal to 1, and can be 10.
- the decoder can generate the prediction block for the current block by using only the intra prediction directional mode with the highest weight, without applying the weighted average, when generating the prediction block for the current block.
- the decoder can apply the weighted average when generating the prediction block for the current block.
- FIG. 16 illustrates a syntax structure including syntax elements related to DIMD according to one embodiment of the present invention.
- the decoder can additionally parse a syntax element (cu_dimd_mode) for DIMD combination information (information on modes combined for obtaining prediction samples, mode combination information).
- cu_dimd_mode may be parsed differently depending on the number of prediction modes to be combined. For example, if the number of combinations is '2', the decoder can parse only 1 bin. At this time, if the value of cu_dimd_mode is '0', the decoder can generate a prediction sample using modeA and modeB.
- the decoder can generate a prediction sample using modeA, modeB, and the planar mode, or generate a prediction sample using modeA and the planar mode, or generate a prediction sample using modeB and the planar mode.
- the decoder can parse 2 bins.
- the decoder can generate prediction samples using modeA and modeB.
- the decoder can generate prediction samples using modeA, modeB, and the flat mode.
- the decoder can generate prediction samples using modeA and the flat mode.
- the decoder can generate prediction samples using modeB and the flat mode.
- the syntax element for DIMD combination information is included in the bitstream, there may be a problem that the bit quantity increases.
- the syntax element for DIMD combination information is not included in the bitstream, and the decoder can derive combination information through information of the current block and surrounding blocks. As described above, the decoder can derive optimal combination information for generating a prediction sample for the current block.
- FIG. 17 is a diagram showing intra prediction directional mode and weight information for surrounding blocks of a current block according to one embodiment of the present invention.
- FIG. 17 shows weight information corresponding to the intra prediction directional mode for each block derived in the 'Histogram analysis' step described through FIG. 15.
- the size of the weight (WeightX) can be expressed in alphabetical order.
- the highest weight can be expressed as 'WeightA'
- the second highest weight can be expressed as 'WeightB'.
- the weight information can exist as many as the number (X) of derived intra prediction directional modes.
- the intra prediction mode corresponding to the WeightA weight can be modeA.
- the characteristics of the weight information corresponding to the intra prediction directional mode can be different depending on the characteristics of the surrounding blocks adjacent to the current block. Referring to FIG.
- Case 1 shows a case where the intra prediction directional modes of modeA and modeB and the weight information corresponding thereto are similar to each other.
- Case 2 shows a case where the difference between the intra prediction directional modes of modeA and modeB and the weight information corresponding thereto is greatly different.
- Case 3 shows a case where the intra prediction directional modes of modeA and modeB are similar, but the differences between the corresponding weight information are significantly different.
- Case 4 shows a case where the intra prediction directional modes of modeA and modeB are significantly different, but the corresponding weight information is similar to each other.
- FIG. 18 is a diagram illustrating a method for determining DIMD combination information according to one embodiment of the present invention.
- Fig. 18 shows a method for determining optimal DIMD combination information through the difference between the intra prediction directional modes (modeA, modeB) and corresponding weights (WeightA, WeightB) induced in the 'prediction mode generator' process.
- the DIMD optimal combination for the current block may be a combination of modeA and modeB, and the decoder may generate a prediction sample by combining modeA and modeB.
- Tmode1 an arbitrary threshold value
- Tweight1 an arbitrary threshold value
- the DIMD optimal combination for the current block may be a combination of only modeA, and the decoder may generate a prediction sample by using only modeA.
- the optimal DIMD combination for the current block may be a combination of modeA and some or all of the coding modes derived in the 'other Prediction' process (for example, planar mode, DC mode, MIP mode), and the decoder may generate prediction samples by combining some or all of the coding modes derived in the modeA and 'other Prediction' process (for example, planar mode, DC mode, MIP mode).
- the optimal DIMD combination for the current block may be a combination of modeA and modeB and some or all of the coding modes derived in the 'other Prediction' process (e.g., planar mode, DC mode, MIP mode), and the decoder may generate prediction samples by combining some or all of the coding modes derived in the 'other Prediction' process (e.g., planar mode, DC mode, MIP mode).
- the coding modes derived in the 'other Prediction' process e.g., planar mode, DC mode, MIP mode
- the decoder can obtain DIMD combination information by comparing the weights of modeA and modeB with the sum of all weights of the histogram (see Fig. 11). Specifically, the DIMD combination information can be obtained by comparing the weights of the directional information for the surrounding blocks of the current block (including the weights of modeA and modeB) (e.g., the sum of the weights) with the weights of modeA and modeB.
- the corresponding prediction directional mode may be selected.
- the DIMD combination information may be a combination of at least one of the induced intra prediction directional mode, the planar mode, the DC mode, and the MIP mode.
- the specific ratio may be 1/2, 2/3, 3/4, 3/8, etc.
- the DIMD combination information can select at least one of the induced intra prediction directional modes, the planar mode, the DC mode, and the MIP mode.
- modeA, modeB, and the planar mode can be selected.
- modeA and modeB can be selected.
- the specific ratio can be 1/2, 2/3, 3/4, 3/8, etc.
- FIG. 19 is a diagram illustrating a method for generating a prediction sample using intra prediction directional mode information and weights according to one embodiment of the present invention.
- FIG. 19 shows the 'Intra prediction' and 'weighted prediction' processes of FIG. 14.
- the decoder can perform weighted prediction using the weight information of each of the multiple intra prediction directional modes to obtain a prediction sample.
- the weight information can be reset based on at least one of the horizontal length of the current block, the vertical length, the quantization parameter information, and the information on whether the current block is luminance or chrominance (Additional information).
- FIG. 20 and FIG. 21 are diagrams showing pixel values of surrounding blocks used when deriving an intra prediction directional mode according to one embodiment of the present invention.
- Figures 20 and 21 show pixel (pixel) values of surrounding blocks used when deriving an intra prediction directional mode in the 'histogram analysis' process of Figure 14.
- filtering calculation is required for all surrounding pixels located on the left and upper sides of the current block.
- the surrounding pixels may be pixels on a line adjacent to or separated from the boundary of the current block. That is, in order to deriv an intra prediction directional mode, filtering calculation must be performed on all surrounding pixels on a line adjacent to or separated from the left and upper boundaries of the current block, so there is a problem that delay due to computational complexity may occur.
- the decoder can separate the filtering calculation for the surrounding pixels located on the left and upper sides of the current block and derive the intra prediction directional mode for the surrounding pixels located on the left and upper sides in parallel.
- the decoder can also derive directional information by performing filtering calculation only on the surrounding pixels corresponding to an arbitrary set position.
- Figures 20(a) and (c) show the surrounding pixels located on the left side of the current block used in the filtering calculation for deriving the intra prediction directional mode.
- Figures 20(b) and (d) show the surrounding pixels located on the upper side of the current block used in the filtering calculation for deriving the intra prediction directional mode.
- the mappable intra directional information may vary depending on the location of the reference pixel that the decoder uses to obtain the histogram described in Fig. 11.
- the horizontal and vertical lengths of the current block may be the same.
- the mapped intra prediction directional mode can be used only for indices -14 to 34.
- the mapped intra prediction directional mode can be used only for indices 34 to 80.
- the horizontal and vertical lengths of the current block may be different, and the positions of the surrounding pixels used when deriving direction information may vary depending on the horizontal and vertical lengths of the current block. For example, if the vertical length of the current block is longer than the horizontal length, the decoder may not use the surrounding pixels located above the current block, but may use only the surrounding pixels located on the left side to derive direction information. This has the effect of reducing computational complexity by using only the surrounding pixels located on the left side, not the surrounding pixels located above. If the horizontal length of the current block is longer than the vertical length, the decoder may apply a greater weight to the surrounding pixels located above the current block than to the surrounding pixels located on the left side to derive direction information. The weights may use specific values agreed upon in advance.
- a weight of 1 may be used for the surrounding pixels located on the left side of the current block, and a weight of 2 may be used for the surrounding pixels located above the current block.
- the current block since the current block is longer horizontally than vertically, it is more effective to derive the intra prediction directional mode by using directional information about the surrounding pixels located above the current block rather than the surrounding pixels located to the left of the current block.
- the decoder can perform filtering calculation only on a specific number of pixels among the surrounding pixels located around the current block.
- the specific number can be a multiple of N, and N can be 2, 3, 4, etc.
- Information about N can be included in the picture header information.
- the decoder can perform filtering calculation and derive directionality information only on a position that is a multiple of '2' based on a position moved from the upper left of the current block to (-2, -2) in the x and y axes.
- the decoder can derive directionality information if the current block is a luminance block, and not derive directionality information if the current block is a chrominance block.
- the decoder can apply the directionality information found in the luminance block to the chrominance block. Meanwhile, the directionality information for the luminance block and the directionality information for the chrominance block can be obtained respectively.
- the chrominance block can utilize information obtained using at least one of the following modes: planar mode, DC mode, horizontal mode, vertical mode, and MIP mode, without using the directional information found in the luminance block.
- the intra prediction directional mode of the current block is likely to be similar to the intra prediction directional modes of the neighboring blocks. Therefore, in order to encode the intra prediction directional mode of the current block, an MPM (Most Probable Mode) list is constructed using the intra prediction directional modes of the neighboring blocks, and information about whether the intra prediction directional mode of the current block exists in the MPM list and information about the position at which it exists can be included in the bitstream. That is, information about the intra prediction directional mode of the current block may not be separately included in the bitstream.
- MPM Most Probable Mode
- the intra prediction directional mode of the current block is determined based on the information about whether the intra prediction directional mode of the current block exists in the MPM list and the information about the position at which it exists, information (i.e., the amount of bits) for deriving the intra prediction directional mode of the current block may vary depending on whether the MPM list is constructed effectively.
- the method of deriving an intra prediction directional mode using the directional characteristics of surrounding pixels of the current block can also be used in the process of constructing an MPM list.
- the decoder can use the intra prediction directional mode for the current block, which is derived using the directional characteristics of surrounding pixels of the current block, to encode the intra prediction directional mode for the current block by adding it to the MPM list. This can be used when the surrounding blocks of the current block are not encoded with an intra prediction mode or do not have an intra prediction directional mode, such as the MIP (Matrix intra prediction) mode.
- the neighboring blocks adjacent to the current block may include blocks without intra-prediction directional modes and blocks with intra-prediction directional modes. If the neighboring block located on the left side of the current block does not have an intra-prediction directional mode, the decoder can calculate directional characteristics using only the neighboring pixels located on the upper side of the current block and derive the intra-prediction directional mode of the current block.
- the decoder can include the intra-prediction directional mode of the neighboring block located on the upper side in the MPM list and the intra-prediction directional mode derived from the directional characteristics of the neighboring pixels located on the left side in the MPM list.
- FIG. 22 is a diagram illustrating a method for constructing an MPM list including an intra prediction directional mode of a current block according to one embodiment of the present invention.
- the DIMD mode may be preferentially included in the MPM list.
- the intra prediction directional mode of a block having an intra prediction directional mode among the surrounding blocks of the current block may be added to the MPM list. If there is a blank space in the MPM list, a mode modified by +1 or -1 in modeA may be added to the list, and a DC mode, a horizontal mode, a vertical mode, and a MIP mode may be added.
- the TIMD Tempolate based Intra Mode Derivation
- the MPM list may be preferentially included in the MPM list.
- both DIMD and TIMD modes may be included in the MPM list.
- at least one of the two intra directional prediction modes derived using the DIMD mode and the two intra directional prediction modes derived using the TIMD mode may be included in the MPM list.
- the MPM list may be used to derive the intra prediction directional mode for the first region.
- the MPM list may include at least one of the two intra prediction directional modes derived using the DIMD mode and the two intra prediction directional modes derived using the TIMD mode.
- the MPM list includes the DIMD mode, information about whether the current block is encoded in the DIMD mode can be derived through the syntax element (mpm_idx). Therefore, additional information related to DIMD may not need to be signaled.
- the reference line index may be 0 (mrl_ref_idx may be 0).
- mrl_ref_idx may not be parsed and the value of mrl_ref_idx may be inferred as 0.
- the MPM list may include an intra prediction directional mode derived using the DIMD mode.
- mrl_ref_idx may be reset.
- the value of mrl_ref_idx may be reset to any one of 0, 1, 2, ...
- the decoder can determine whether to add an intra prediction directional mode derived using the DIMD mode in the MPM list based on the value of mrl_ref_idx obtained by parsing mrl_ref_idx, and the priority of the intra prediction directional mode derived using the DIMD mode in the MPM list. For example, if the value of mrl_ref_idx is not 0, the decoder may not include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the decoder may not include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list.
- the intra prediction directional mode derived by the DIMD mode can be used to reorder intra prediction mode candidates in the MPM list.
- the decoder can derive the intra prediction directional mode using the DIMD mode after constructing an MPM list from neighboring blocks of the current block.
- the decoder can reorder the intra prediction mode candidates in the MPM list using the derived intra prediction directional mode.
- the decoder can reorder the MPM list using one or more of the derived intra prediction directional mode, the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among neighboring blocks of the current block, information on whether a residual signal of neighboring blocks of the current block exists, and information on whether the current block is a luminance block or a chrominance block.
- the decoder can reorder the MPM list by using the difference between the intra prediction mode candidates in the MPM list and the derived intra prediction directional mode. For example, the decoder can calculate the difference between the derived intra prediction directional mode and each of the intra prediction mode candidates in the MPM list and sort the MPM list in order of the smallest difference (including 0).
- the intra prediction mode candidate with the smallest difference in the MPM list can be set to have the smallest index value in the MPM list.
- the derived intra prediction directional mode can be set to have the highest priority in the MPM list and can be set to have the smallest index value.
- the decoder can sort the MPM list after the derived intra prediction directional mode by calculating the difference between the derived intra prediction directional mode and each of the intra prediction mode candidates in the MPM list in order of the smallest difference (including 0).
- the first MPM list can be composed of intra prediction mode candidates similar to the derived intra prediction directional mode in order of the smallest difference.
- the derived intra prediction directional mode and the intra prediction mode candidates in the MPM list can be organized in order of the smallest difference.
- the second MPM list can be organized using candidates that are not highly similar to the derived intra prediction directional mode.
- the second MPM list can be organized in order of the largest difference between the derived intra prediction directional mode and the intra prediction mode candidates in the MPM list.
- the size of the MPM list is fixed, there may be an unfilled empty space in the MPM list.
- a new prediction candidate derived using one or more of the candidates already included in the MPM list or frequently occurring candidates can be added to the empty space.
- the new prediction candidate can be a candidate corresponding to a number that is increased or decreased by an arbitrary size in the '+' or '-' direction from the mode number (index) of the candidate already included.
- the arbitrary size can be a natural number such as '1', '2', '3', ..., and information about the arbitrary size can be included in the picture header information.
- the first MPM list may be composed of prediction modes obtained by referring to prediction modes of neighboring blocks of the current block
- the second MPM list may be composed of prediction modes derived by DIMD.
- the intra prediction directional mode derived by the DIMD mode can be used to reorganize intra prediction mode candidates in the MPM list.
- the decoder can derive the intra prediction directional mode through the DIMD mode after constructing the MPM list based on the prediction modes of the surrounding blocks of the current block. Then, the decoder can reorganize the intra prediction mode candidates in the MPM list using the derived intra prediction directional mode to reconstruct multiple prediction candidates.
- the decoder can reorganize the MPM list using one or more of the derived intra prediction directional mode, the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among the surrounding blocks of the current block, information on whether a residual signal of the surrounding blocks of the current block exists, and information on whether the current block is a luminance block or a chrominance block.
- a method for reorganizing the MPM list is described below.
- the decoder can reassemble the MPM list by using the difference between the derived intra prediction directional mode and the intra prediction mode candidates in the MPM list. For example, the decoder can select candidates whose difference is less than or equal to an arbitrary value, and include multiple prediction candidates composed by combining the derived intra prediction directional mode and the candidates (existing intra prediction modes in the MPM list) in the MPM list. At this time, the decoder can include the candidates in order of the smallest difference to the largest difference in the MPM list. Next, the decoder can insert the candidates whose difference is greater than the arbitrary value into the MPM list in order. At this time, the arbitrary value can be a natural number such as 1, 2, 3, ...
- the index of the derived intra prediction mode is '18'
- the indices of the candidates in the MPM list are '16', '21', '34', '1', '66'
- the arbitrary value is 5.
- the indices '16' and '21' which have a difference of less than '5' from the induced intra prediction mode, can be changed to multiple prediction candidates, and the candidates in the MPM list can be changed to the prediction modes of indices '16, 18', '21, 18', '34', '1', and '66'. That is, '16, 18' and '21, 18' can be multiple prediction candidates.
- the decoder can generate the final prediction block by weighting and averaging the prediction samples generated with the prediction mode of index 16 and the prediction samples generated with the prediction mode of index 18.
- the MPM list can be '16, 18', '21, 18', '16', '21', '34'.
- the first MPM list may be composed of candidates that are recombined using candidates that are similar to the derived intra prediction directional mode.
- the second MPM list may be composed of candidates that are not highly similar to the candidates of the first MPM list and the derived intra prediction directional mode. Accordingly, the first MPM list may be composed of multiple prediction candidates, and the second MPM candidates may be composed of single prediction candidates. Alternatively, the first MPM list may be composed of both single prediction candidates and multiple prediction candidates, and the second MPM candidates may be composed of only single prediction candidates.
- the derived intra prediction mode may have index '18'
- the prediction mode candidates in the first MPM list may have indexes '16', '21', '34', '1', '66'
- the prediction mode candidates in the second MPM list may have indexes '50', '2', '8', '30', '40', and an arbitrary value may be 5.
- the indices '16' and '21' which have a difference of less than 5 from the derived intra prediction mode index 18, can be changed to multiple prediction candidates.
- the first MPM list can be composed of the indices '16, 18', '21, 18', '16', '18', '34'
- the second MPM list can be composed of the indices '1', '66', '50', '2', '8', '30', '40'.
- An intra prediction directional mode can be encoded based on whether it is in the MPM list and, if so, where it is located. If the intra prediction directional mode does not exist in the MPM list, the intra prediction directional mode can be encoded based on the total number of intra prediction directional modes minus the total number of prediction modes in the MPM list. Specifically, there are a total of 67 intra prediction directional modes, and encoding can be performed for 61 of them, excluding the total number of 5 prediction modes in the MPM list and the planar mode. In this case, since the 61 intra prediction directional modes can be encoded using fixed length coding, encoding for a total of 6 bins is required.
- FIGS. 23 and 24 are diagrams showing templates used to derive an intra prediction mode of a current block according to one embodiment of the present invention.
- the decoder can use a template, which is a reconstructed arbitrary region (pixel(s)) adjacent to the current block, to derive an intra prediction mode of the current block.
- the decoder can generate a prediction template for the template using neighboring pixels (reference) adjacent to the template. Then, the decoder can use the intra prediction mode for the prediction template that is most similar to the already reconstructed template to reconstruct the current block.
- TIMD Temporal intra mode derivation
- the intra prediction mode can be a mode of index 0 to 67, and may only correspond to an intra prediction mode in the MPM list derived from the neighboring blocks of the current block.
- the intra prediction mode can be an intra prediction mode in the MPM list derived from the neighboring blocks of the current block and modes that differ from the corresponding intra prediction mode by an arbitrary number.
- the arbitrary number can be 1, 2, 3, ...
- the intra prediction mode for the template may only correspond to a directional mode, and may not correspond to a non-directional mode (planar mode, DC mode).
- the decoder can set the size of the template.
- the horizontal or vertical size (length) of the template can be 4, and if the horizontal or vertical size (length) of the current block is 8 or less, the horizontal or vertical size of the template can be set to 2.
- the decoder can set the type of the template.
- the type of the template can be classified into a type that uses only left samples, a type that uses only upper samples, and a type that uses all of the left, upper, and upper-left samples.
- the decoder can determine the type of the template according to whether the neighboring block is valid or whether the neighboring block can be used to induce the intra prediction directional mode.
- the TIMD mode can be set to the planar mode, and the weighted averaging may not be performed.
- the decoder can configure a template for the current block.
- the decoder can derive intra prediction directional modes for neighboring blocks located on the left, above, upper-left, upper-right, and lower-left of the current block to determine whether the current block has directionality. v) If none of the neighboring blocks of the current block have directionality (for example, non-directional mode (DC mode, planar mode, MIP mode, etc.)), the decoder can select one intra prediction directional mode with the minimum cost and not perform the TIMD mode.
- weighted averaging using multiple prediction blocks may not be performed.
- the process described below can be performed based on the intra prediction directional modes existing in the MPM list. This is because complexity can increase if all 67 intra prediction directional modes are checked. a.
- the decoder can construct an MPM list.
- the decoder can modify the MPM list by adding DC mode, horizontal mode, and vertical mode into the MPM list if they do not exist in the MPM list.
- the decoder can perform an evaluation for all intra prediction directional modes in the modified list to compare costs.
- the decoder can select a first mode having a smallest cost and a second mode having a second smallest cost.
- the decoder can additionally perform an evaluation for an intra prediction directional mode corresponding to an index that is 1 less than or greater than an intra prediction directional mode index of the first mode and an intra prediction directional mode index of the second mode to increase accuracy.
- the decoder can perform an additional evaluation and reselect a third mode having a smallest cost and a fourth mode having a second smallest cost. Meanwhile, the first mode and the third mode can be the same, and the second mode and the fourth mode can be the same.
- the decoder can determine whether to perform weighted averaging based on the costs of the third mode and the fourth mode.
- the decoder can perform weighted averaging, and the weights of the third mode and the fourth mode can be determined based on the costs of the third mode and the fourth mode. If the difference between the cost of the third mode and the cost of the fourth mode is greater than a specific value, the decoder can generate the prediction block using only the third mode without performing weighted averaging.
- the specific value can be a pre-agreed value.
- the size of the template may vary depending on the horizontal length or vertical length of the current block.
- an above template longer than the horizontal length of the current block may be configured.
- the vertical length of the above template may be a predetermined length.
- a left template longer than the vertical length of the current block may be configured.
- the horizontal length of the left template may be a predetermined length.
- the predetermined length may be 1, 2, 3, ...
- the reference pixel for deriving/predicting the template used for the TIMD mode can be changed.
- the decoder can perform the TIMD mode by configuring only the left template of the current block, without configuring the upper template of the current block.
- the reference pixels for predicting the left template can be the upper reference pixel (above reference) and the left reference pixel (left reference) of the current block.
- the height of the left template can be the same as the height of the current block, as shown in Fig. 24(a).
- the decoder can check whether the block adjacent to the left of the current block is a block that has already been restored, and if it is a block that has been restored, the height of the left template can be configured to be greater than the height of the current block.
- the accuracy of the prediction sample for the current block can be increased as the decoder refers to many adjacent pixels of the current block.
- referring to many adjacent pixels increases the required memory.
- the length of the upper template can be set to be the same as the horizontal length of the current block
- the length of the left template can be set to be the same as the vertical length of the current block.
- the decoder can use an intra prediction mode derived from a template to obtain a prediction sample for the current block.
- the decoder can generate a prediction sample using neighboring pixels adjacent to the current block, and can adaptively select which neighboring pixels to use to generate the prediction sample.
- the decoder can use multiple reference lines to generate the prediction sample, and in this case, index information of the multiple reference lines can be included in the bitstream.
- a context for the index of multiple reference lines for TIMD mode can be newly defined.
- the increase in the type of context may be related to memory and context switching complexity. Therefore, the context used for coding and decoding the index of multiple reference lines used in TIMD mode may be a reuse of the context for the index of existing multiple reference lines.
- the transformation of the residual signal of the current block can be performed in two steps.
- the first transform can be a transform such as DCT-II, DST-VII, DCT-VIII, DCT5, DST4, DST1, identity transformation (IDT) that is adaptively applied horizontally and vertically, respectively.
- the second transform can be additionally applied to the transform coefficients for which the first transform is completed, and the second transform can be computed as a matrix multiplication between the first-transformed transform coefficients and a predefined matrix.
- the second transform can be described as a low frequency non-separable transform (LFNST).
- the matrix transform set for the second transform can vary depending on the intra prediction mode of the current block. Coefficient information of the transform matrix used for the second transform can be included in the bitstream.
- a transform set for the secondary transform can be determined based on an intra prediction mode derived from the DIMD mode or the TIMD mode.
- Coefficient information of a transform matrix used for the secondary transform can be included in a bitstream.
- a decoder can set matrix coefficient information of a secondary transform for the DIMD mode or the TIMD mode by parsing the coefficient information included in the bitstream.
- one of the two intra prediction modes derived from the TIMD mode can be used to select the primary transform or the secondary transform set.
- the intra prediction directional mode having the smallest cost by comparing the costs of each of the two intra prediction directional modes can be used to select the primary transform or the secondary transform set.
- one of the two intra prediction directional modes derived from the DIMD can be used to select the primary transform or the secondary transform set.
- the intra prediction directional mode with the highest weight can be used to select the first or second transform set.
- the TIMD mode has high complexity because it predicts the template of the current block and uses the intra prediction mode derived from the template to generate the prediction block of the current block. Therefore, when the decoder generates the prediction template for the template region, the existing reference sample filtering process may not be performed.
- the TIMD mode may not be applied when the ISP mode is applied to the current block or when the CIIP mode is applied to the current block.
- the ISP mode or the CIIP mode may not be applied to the current block to which the TIMD mode is applied, or the syntax related to the ISP or CIIP may not be parsed. In this case, the value of the syntax related to the ISP or CIIP that is not parsed can be inferred as a predefined value.
- Template prediction can be performed by dividing into a left template region and an upper template region adjacent to the current block, and an intra prediction mode can be derived for each template.
- two or more intra prediction modes can be derived for each template, and there can be four or more intra prediction modes for the current block.
- a prediction sample for the current block can be generated using all of the derived intra prediction modes, and the decoder can generate a final prediction block for the current block by weighting and averaging the generated prediction samples.
- at least three or more of two or more intra prediction modes derived from template prediction, a planar mode, a DC mode, and a MIP mode can be used to generate the prediction sample.
- the decoder when the decoder generates (obtains) a prediction sample for the current block, the decoder can generate a final prediction sample by weighting and averaging the prediction samples generated using the intra prediction modes derived from template prediction and the planar mode.
- the CIIP mode is a method that uses both intra prediction and inter prediction when generating prediction samples (blocks) for the current block.
- the prediction sample for the current block can be generated as a weighted average between the intra prediction samples and the inter prediction samples.
- the DIMD mode or the TIMD mode can be used.
- the intra prediction sample can be generated based on the DIMD combination information.
- the decoder can generate the first prediction sample using the intra prediction mode with the highest weight and generate the second prediction sample using the intra prediction mode with the second highest weight.
- the decoder can generate the final intra prediction block by performing a weighted average of the first prediction sample and the second prediction sample.
- the decoder can generate the final intra prediction block by performing a weighted average of three prediction samples, including the sample predicted in the planar mode and the first prediction sample and the second prediction sample among the neighboring blocks of the current block.
- the intra prediction sample can be generated based on the TIMD combination information.
- the decoder can generate two prediction samples using each of the two intra prediction modes. And, the decoder can generate a final intra prediction sample by weighting the two prediction samples. At this time, the decoder can generate a final intra prediction sample by weighting the two prediction samples and the sample predicted in the planar mode.
- Intra prediction samples may have different accuracy depending on their location. That is, pixels at locations far from surrounding pixels used for prediction in the prediction sample may include more residual signals than pixels at locations close to the pixels. Therefore, the decoder may divide the prediction sample into vertical, horizontal, and diagonal directions according to the direction of the intra prediction mode, and may set different weights according to the distances from surrounding pixels used for prediction. This may be applied to intra prediction blocks generated using the CIIP mode or intra prediction blocks generated using two or more intra prediction modes, and may set different weights for each pixel in the prediction block according to the distance between the location of the reference pixel and the pixel location in the prediction block.
- the intra prediction mode of the current block is a mode having a vertical direction or a direction similar to the vertical direction
- a higher weight may be set for each pixel location as the pixel location of the prediction block is closer to the upper pixel
- a lower weight may be set for each pixel location as the pixel location is farther from the upper pixel.
- the decoder can generate a final prediction block by weighting the intra prediction sample and the inter prediction sample.
- the pixel-wise weight in the inter prediction sample can be set by considering the pixel-wise weight of the intra prediction sample.
- the pixel-wise weight of the inter prediction sample can be a value obtained by subtracting the pixel-wise weight of the intra prediction sample from the sum of all weights.
- the sum of all weights can be a value obtained by adding the weight of the intra prediction sample and the weight of the inter prediction sample at the pixel level.
- the decoder can generate prediction samples based on each intra prediction mode, and perform a weighted average on the generated prediction samples to generate a final prediction sample.
- a pixel-wise weight according to the intra prediction mode can be applied.
- the pixel-wise weights may be set based on at least one of the following: an intra prediction mode, the width and height of the current block, a quantization parameter, information about whether the current block is luminance or chrominance, whether the surrounding block is intra coded, and information about the presence or absence of residual transform coefficients of the surrounding block.
- FIGS. 25 to 28 are diagrams illustrating a method for generating prediction samples (pixels) based on a plurality of reference pixel lines according to one embodiment of the present invention.
- the video signal processing device can generate a prediction sample (2502) within the current block based on a first reference pixel line (reference line 1) adjacent to the current block (2501) and a second reference pixel line (reference line 2) adjacent above the first reference pixel line.
- the prediction sample (2502) of FIG. 25(a) is only a sample corresponding to a position according to an embodiment of the present invention, and the position of the pixel is not limited thereto.
- the meaning that the video signal processing device generates may be the same as the meaning that the video signal processing device acquires.
- FIG. 25(b) is a drawing showing FIG. 25(a) in more detail.
- the video signal processing device can generate a first prediction pixel (2503) by using a smoothing filter, a cubic filter, or a Gaussian filter according to an intra prediction mode through six reference pixels of the first reference pixel line.
- the video signal processing device can generate a second prediction pixel (2504) by using a smoothing filter, a cubic filter, or a Gaussian filter according to the intra prediction mode through the six reference pixels of the second reference pixel line.
- the video signal processing device can generate a third prediction pixel (2505) by performing a weighted average through an arbitrarily determined weight on the generated first prediction pixel (2503) and the second prediction pixel (2504).
- the six reference pixels of the second reference pixel line may be reference pixels at a position moved by one pixel to the right compared to each pixel of the first reference pixel line, considering the intra prediction mode of the current block, the position of the pixel to be generated, the position of the reference pixel line, etc.
- the video signal processing device can generate a prediction sample (2502) within the current block based on the third prediction pixel (2505).
- the video signal processing device may generate the prediction sample (2502) within the current block based on the third prediction pixel (2505) and the distance between the third prediction pixel (2505) and the prediction sample (2502) within the current block.
- the weight used by the video signal processing device to generate the third prediction pixel (2505) may be an integer greater than or equal to 0.
- the weight of the first prediction pixel (2503) may be 3, and the weight of the second prediction pixel (2504) may be 1.
- the positions of reference pixels used to generate the prediction sample may vary based on at least one of the following: the intra prediction mode of the current block, the positions of pixels to be generated (for example, the positions of the first prediction pixel (2503), the second prediction pixel (2504), and the third prediction pixel (2505) in FIG. 25), the positions of reference pixel lines (for example, the positions of the first reference pixel line and the second reference pixel line in FIG. 25).
- the video signal processing device can generate a prediction sample (2601) within the current block by using reference pixels at the same positions in the vertical direction of two reference pixel lines. That is, each of the six pixels of the first reference pixel line (Reference line 1) and each of the six pixels of the second reference pixel line (Reference line 2) used to generate the prediction sample within the current block can have the same position in the vertical direction. The positions of the respective pixels can be determined regardless of the positions of the reference pixel lines.
- the video signal processing device can generate a first prediction pixel (2602) by using six pixels of the first reference line.
- the video signal processing device can obtain a second prediction pixel (2603) by using six pixels (2607) of the second reference line.
- the video signal processing device can configure the right pixel (2606) of the second reference line by copying (padding) the pixel (2605) to the right pixel (2606) of the second reference line, and then use the right pixel (2606) of the second reference line to generate the second prediction pixel (2603).
- the video signal processing device can obtain the third prediction pixel (2604) by using the first prediction pixel (2602) and the second prediction pixel (2603).
- the video signal processing device can generate the prediction sample (2601) within the current block by using the third prediction pixel (2604). Only the pixels of the first and second reference pixel lines used to generate the prediction sample within the current block are different from those of FIG. 25 in FIG. 26, and the method for generating the prediction sample within the current block may be the same as that of FIG. 25.
- the video signal processing device can include a DIMD mode that induces an intra prediction directional mode from a reconstructed neighboring block adjacent to a current block in the MPM list. At this time, if there are two intra prediction directional modes induced by the DIMD mode, the video signal processing device can include both intra prediction directional modes in the MPM list.
- a DIMD mode included in the MPM list is such that pixels adjacent to the current block are not used, and the video signal processing device can derive an intra prediction directional mode by performing the DIMD method at pixel positions indicated by the reference pixel lines. Then, the derived intra prediction directional mode can be included in the MPM list.
- the video signal processing device can derive an intra prediction directional mode using DIMD for each reference pixel line, and then add the derived intra prediction directional mode to the MPM list.
- the reference pixel line may be a line located at a position spaced apart by 1, 3, 5, 7, or 12 pixels from the upper left position of the current block.
- the reference pixel line may be a reference pixel line located at an upper adjacent position to the current block.
- the intra prediction directional mode derived by the video signal processing device using DIMD for each reference pixel line may be added to the MPM list. If the derived intra prediction directional modes are duplicated, the duplicated intra prediction directional modes may be excluded from the MPM list.
- a reference pixel line may be indexed.
- a reference pixel line adjacent to the current block may be indexed and referred to as reference pixel line 0, and reference pixel lines spaced 1 pixel, 2 pixels, ..., n pixels away from the current block may be indexed and referred to as reference pixel line 1, reference pixel line 2, ..., reference pixel line n, respectively.
- the reference pixel lines for performing DIMD may vary depending on the reference pixel lines used for the current block. For example, if the reference pixel lines for the current block are 1 and 3, the video signal processing device may perform DIMD using reference pixel lines 0, 1, and 2 and derive an intra prediction directional mode. In addition, if the reference pixel lines for the current block are 5 and 7, the video signal processing device may perform DIMD using reference pixel lines 5, 6, and 7 and derive an intra prediction directional mode. In addition, if the reference pixel lines for the current block are 12, the video signal processing device may perform DIMD using reference pixel lines 11, 12, and 13 and derive an intra prediction directional mode.
- the encoder can generate and signal a bitstream including information related to reference pixel lines to be used for deriving an intra prediction directional mode. Then, the encoder can generate an intra prediction block using the reference pixel lines on which DIMD is performed and the intra prediction directional mode derived from the DIMD. If the current block is decoded in the DIMD mode, the decoder can parse the information related to the reference pixel lines, and then derive an intra prediction directional mode using the reference pixel lines corresponding to the information related to the reference pixel lines. Then, the decoder can generate an intra prediction block using the reference pixel line information and the intra prediction directional mode derived from the DIMD.
- a video signal processing device can generate a virtual new reference pixel line using a plurality of reference pixel lines, and generate a prediction sample within a current block based on the new reference pixel line.
- Circles in the same horizontal row in Fig. 27 may mean pixels located on the same reference pixel line.
- Fig. 27(a) shows that the positions of reference pixels used when generating prediction samples using at least one of the intra prediction mode of the current block, the positions of pixels to be generated, and the positions of reference pixel lines vary for each reference pixel line.
- the video signal processing device may generate samples (2701-a to 2701-d) at the '1' position for each reference pixel line using a smoothing filter, a cubic filter, or a Gaussian filter according to the intra prediction mode, and may generate a virtual new reference pixel line (2702) using multiple samples at the '1' positions.
- a virtual new reference pixel line (2702) may be generated using integer unit reference pixels closest to the '1' position.
- the video signal processing device may generate prediction samples in the current block using the virtual new reference pixel line.
- the video signal processing device can use four reference pixels at the same position in the vertical direction to generate a virtual new reference pixel line (2705). That is, the pixels for generating the virtual new reference pixel line (2705) may be pixels at the same position in the vertical direction, respectively, for each of the six reference pixels of the first reference pixel line and each of the six reference pixels of the second reference pixel line.
- the video signal processing device can obtain the first prediction pixel (2703) using at least one of the virtual new reference pixel line and position, the intra prediction mode of the current block, and the pixel position to be generated.
- the video signal processing device can generate the prediction sample (2704) of the current block using the first prediction pixel (2703).
- the number of reference pixel lines used to generate the virtual new reference pixel line may be a plurality of 2 or more. For example, 2 to 5 reference pixel lines may be used.
- a video signal processing device may use four reference pixels close to the position of a new reference pixel (2801) to be generated to generate a virtual new reference pixel line.
- the position of the new reference pixel may be the same as the reference pixel line in the vertical direction.
- the position of the new reference pixel may be a position adjacent to the direction of the intra prediction mode of the current block.
- FIG. 29 illustrates a method for predicting a sample using multiple reference pixel lines according to one embodiment of the present invention.
- a video signal processing device may receive a plurality of reference pixel lines and perform intra prediction to generate a prediction block within a current block. Depending on which reference pixel line is used, a different prediction block may be generated, and the video signal processing device may generate a final prediction block by performing a weighted average according to the weights input for each prediction block.
- the weights may be preset values. For example, the weight of a sample predicted by a main reference pixel line may be 3, and the weight of a sample predicted by a sub-reference pixel line may be 1.
- the weights may be determined based on at least one or more of the size of the current block, the horizontal or vertical size of the current block, the intra prediction mode of the current block, quantization parameter information, and the distance (or difference) between the main reference pixel line and the sub-reference pixel line.
- the reference pixel line may be determined based on at least one or more of the size of the current block, the horizontal or vertical size of the current block, the intra prediction mode of the current block, quantization parameter information, and MRL information.
- the main reference pixel line may be a reference pixel line adjacent to the current block
- the sub-reference pixel line may be a reference pixel line indicated by the MRL.
- the main reference pixel line may be a reference pixel line indicated by the MRL
- the sub-reference pixel line may be a reference pixel line that is located at an arbitrary fixed position away from the reference pixel line indicated by the MRL, and the arbitrary fixed position may be an integer from -N to +N, and N may be an integer greater than 0.
- the intra prediction mode used may be the same for each reference pixel line. Or, conversely, in the method for generating prediction samples within the current block described above, the intra prediction mode used may be different for each reference pixel line. That is, a signaled intra prediction mode may be used for the main reference pixel line, and in the sub-reference pixel line, a prediction mode (corresponding to the index) added or subtracted by an arbitrary value from (the index of) the intra prediction mode used in the main reference pixel line may be used. At this time, the arbitrary value may be an integer greater than or equal to 1.
- the video signal processing device may determine whether to increase or decrease the arbitrary value according to the value of the intra prediction mode used in the main reference pixel line. For example, the video signal processing device may increase the intra prediction mode by an arbitrary value when the angle is negative, and may decrease the intra prediction mode by an arbitrary value when the angle is positive.
- FIG. 30 illustrates a method for determining a reference pixel line based on a template according to one embodiment of the present invention.
- a video signal processing device can configure a reference template using reference pixel lines adjacent to a current block.
- the video signal processing device can generate a prediction sample for the location of the reference template using reference pixel lines 1, 2, 3, etc.
- the video signal processing device can calculate a cost between the generated prediction sample and samples of the reference template.
- the cost can be calculated using a method such as SAD (Sum of Absolute Differences) or MRSAD (Mean-Removed SAD).
- a reference pixel corresponding to the minimum cost can be an optimal reference pixel.
- the encoder can rearrange the calculated cost in ascending order, configure a list for reference pixel lines, and then generate and signal a bitstream including information on an index for the optimal reference pixel line.
- the decoder can configure a list for reference pixel lines using the above-described method, parse the index for the optimal reference pixel line included in the bitstream, and generate a prediction sample using the reference pixel line indicated by the index.
- a method for a video signal processing device to determine a reference pixel line based on a template can be described as a Template-based Multiple Reference Line (TMRL) method or a TMRL intra prediction method.
- TMRL Template-based Multiple Reference Line
- the optimal reference pixel line may not be used for all intra prediction modes, but may be used only for the intra prediction modes included in the MPM list. That is, the encoder may construct a list for the reference pixel lines by combining the intra prediction modes included in the MPM list and a plurality of reference pixel lines, and may calculate the cost between the prediction sample generated using each candidate in the list for the reference pixel line and the reference template. Then, the encoder may rearrange the list in ascending order based on the cost, and may reconstruct the list using only a few combinations with low costs.
- the encoder may generate and signal a bitstream including information about an index for the optimal combination information among the combination information (any intra prediction mode and any reference pixel lines) in the reconstructed list.
- the decoder may construct a list for the same reference pixel line using the above-described method, and then parse the index for the optimal combination information included in the bitstream to generate the prediction sample using the optimal combination information indicated by the index.
- the encoder may construct a list for reference pixel lines by combining intra prediction modes included in the MPM list, multiple reference pixel lines, and weights (for example, one of 3:1 and 2:2) for samples predicted by each reference pixel line, and may calculate a cost between a prediction sample generated using each candidate in the list for the reference pixel lines and a reference template. Then, the video signal processing device may rearrange the MPM list in ascending order based on the cost, and then reconstruct the MPM list by using only a few combinations with low costs.
- the encoder can generate and signal a bitstream including information about an index for an optimal combination information among combination information within the reconstructed list (any intra prediction mode, any reference pixel lines, and a weight (for example, one of 3:1 or 2:2) for samples predicted by each reference pixel line).
- the decoder can parse the index for the optimal combination information included in the bitstream and generate a prediction sample using the optimal combination information indicated by the index.
- a reference pixel line adjacent to a current block can be used to construct a template. Accordingly, a reference pixel line determined based on a template can be determined using reference pixel lines that are not adjacent to the current block.
- a method in which a reference pixel line adjacent to a current block can also be used to determine a reference pixel line based on a template will be described.
- FIG. 31 illustrates a method for setting a template for testing a reference pixel line adjacent to a current block according to one embodiment of the present invention.
- a reference pixel line adjacent to a current block can also be used to determine a reference pixel line based on the template.
- a reference template including only reference pixels adjacent to the left side of the current block can be configured.
- the encoder can generate a prediction sample for the reference template using at least one of the reference pixel line 0 on the upper side of the current block and/or the reference pixel line 1 on the left side of the current block, and calculate a cost between the reference template and the prediction sample.
- the encoder can generate a prediction sample for the reference template using reference pixel lines 1, 2, 3 ..., and calculate a cost between the reference template and the prediction sample.
- the encoder can generate a prediction sample for the reference template using at least one of the reference pixel line 0 on the left side of the current block and/or the reference pixel line 1 on the upper side of the current block, and compute a cost between the reference template and the prediction sample.
- the encoder can generate a prediction sample for the reference template using reference pixel lines 1, 2, 3, ..., and compute a cost between the reference template and the prediction sample.
- the encoder can construct a list of reference pixel lines by rearranging the computed costs in ascending order, and then generate and signal a bitstream including information about the index of the optimal reference pixel line.
- the decoder can construct a list of reference pixel lines using the above-described method, and then generate a prediction sample using the optimal reference pixel line determined by parsing the information about the index of the optimal reference pixel line included in the bitstream.
- FIG. 32 is a structural diagram illustrating a method for determining an optimal reference pixel line using a plurality of reference pixel lines based on a template according to one embodiment of the present invention.
- an encoder may receive multiple reference pixel lines and perform intra prediction to generate prediction blocks for a template. Depending on which reference pixel line is used, a different prediction block may be generated. The encoder may perform a weighted average according to various weight information input to each of the prediction blocks to finally generate a prediction block for the template. Depending on which reference pixel lines are used and which weights are used, multiple prediction blocks may be generated. After calculating a cost between each prediction block and a reference template, the encoder may rearrange the prediction blocks in ascending order based on the cost corresponding to each prediction block, and may configure a separate list using only a predetermined number of top candidates. At this time, the predetermined number may be an integer greater than or equal to 2, and may be 10.
- the encoder may generate a prediction block for the current block using the combination information used to generate the prediction block in the separate list. And the encoder can select the optimal candidate from the list in terms of image quality and bit rate, and then generate and signal a bitstream including information about the index of the optimal candidate.
- the decoder can construct the same separate list through the above-described method, and generate a prediction sample using the optimal combination information indicated by the index of the optimal candidate determined by parsing the information about the index of the optimal candidate included in the bitstream.
- the encoded intra prediction mode can be any one of the angular mode, the planar mode, the DC mode, and the MIP mode.
- the prediction according to the angular mode can be a prediction performed according to 65 angles, and the prediction according to the MIP mode can be a prediction performed based on a predefined matrix.
- the angular mode can be effective in a block having a characteristic such as an edge in the current block.
- a block predicted using the angular mode can generate a discontinuous edge at the boundary between blocks or a visible outline inside the block. This can be a factor that reduces the encoding efficiency.
- the DC mode can have a disadvantage of generating a visible edge at the boundary between blocks at a low bit rate.
- the planar mode can improve the edge problem caused by the angular mode and the DC mode, and can generate a prediction block without discontinuity.
- FIG. 33 illustrates a method for generating prediction samples using planar mode according to one embodiment of the present invention.
- the video signal processing device can generate a linearly predicted value in the vertical direction and a linearly predicted value in the horizontal direction to generate a prediction sample within the current block.
- the video signal processing device can generate a prediction sample (value) within the current block by weighting the linearly predicted value in the vertical direction and the linearly predicted value in the horizontal direction.
- a linearly predicted value in the vertical direction (predV (x, y)) can be generated based on Equation 4, and a linearly predicted value in the horizontal direction (predH (x, y)) can be generated based on Equation 5.
- a new predicted value (pred (x, y)) can be generated based on Equation 6.
- W may be a horizontal size (width) of a current block
- H may be a vertical size (height) of the current block.
- rec(x, y) may mean a pixel value at the (x, y) coordinate.
- the predicted value (predV(x, y), predH(x, y), pred(x, y)) may mean a predicted pixel value at the (x, y) coordinate.
- a video signal processing device may use only vertical linear prediction when performing prediction related to a current block according to a planar mode.
- the video signal processing device may use only horizontal linear prediction when performing prediction related to a current block according to a planar mode.
- the planar mode may be divided into three modes. That is, in addition to a method of weighting and averaging prediction blocks generated using conventional vertical and horizontal linear predictions, it may be divided into a vertical planar mode that uses only vertical linear prediction, and a horizontal planar mode that uses only horizontal linear prediction.
- An encoder may generate and signal a bitstream including information on which prediction mode among the three planar modes a current block used.
- a decoder may generate a prediction block for a current block based on a planar mode determined by parsing information included in the bitstream on which prediction mode was used.
- An explicit method of signaling the information about which planar mode was used by including it in the bitstream may have a problem of increasing bit volume.
- the decoder can implicitly derive the information about which planar mode was used by using at least one of the following: the size of the current block, the width or height of the current block, the width and height size ratio of the current block, the number of pixels in the current block, whether the current block is a luminance signal or a chrominance signal, intra prediction directional mode information of adjacent blocks to the current block, MPM list information for the current block, and intra prediction directional mode information derived from DIMD or TIMD.
- the vertical planar mode and the horizontal planar mode can be more effective when the shape of the current block is rectangular rather than square. Therefore, the vertical planar mode and the horizontal planar mode can be applied (activated) only when the horizontal and vertical sizes of the current block are different from each other.
- the encoder can generate and signal a bitstream including planar mode selection information on whether the vertical planar mode, the horizontal planar mode, or the conventional planar mode is applied only when the horizontal and vertical sizes of the current block are different after comparing the horizontal and vertical sizes of the current block.
- the decoder can parse the planar mode selection information only when the horizontal and vertical sizes of the current block are different.
- the conventional planar mode can be applied when the horizontal and vertical sizes of the current block are the same.
- planar mode selection information information about which prediction mode among the three planar modes the current block used may be described as planar mode selection information.
- the planar mode selection information can be signaled for each coding unit. However, since the amount of bits may increase if the planar mode selection information is signaled for all coding units, the encoder may generate and signal a bitstream including the planar mode selection information only when a specific condition is satisfied.
- the decoder may determine an intra prediction directional mode for the current block by parsing the planar mode selection information when the specific condition is satisfied, and may generate a prediction block for the current block using the determined intra prediction directional mode.
- the specific condition may be a condition related to the horizontal and vertical sizes of the current block, a ratio of the horizontal and vertical sizes of the current block, whether the intra prediction directional mode of the current block is a specific mode (for example, whether the planar mode, DC mode, vertical mode, or horizontal mode is recognized), whether the coding mode of the current block is DIMD, TIMD, IntraTMP, IBC, ISP, or MIP coding mode, and index information of a reference pixel line used when generating the prediction block for the current block.
- Whether to encode and decode the plane selection information may be determined based on whether at least one of the specific conditions is satisfied.
- the specific conditions may be 1) when the intra prediction directional mode of the current block is the conventional plane mode (i.e., when the index of the intra prediction directional mode is 0), 2) when the horizontal and vertical sizes of the current block are equal to or smaller than the maximum transform block size, and the product of the horizontal and vertical sizes of the current block is greater than the product of the minimum transform block size and the minimum transform block size, and 3) when the horizontal and vertical sizes of the current block are different from each other.
- the size of the minimum transform block may be an integer, such as 4 or 8
- the size of the maximum transform block may be an integer, such as 64, 128, 256, etc.
- the vertical direction planar mode and the horizontal direction planar mode are not applied, and only the conventional planar mode can be applied. That is, if the current block is a chrominance component block, the video signal processing device can generate a prediction block using the conventional planar mode. Therefore, if the current block is a chrominance component block, the video signal processing device may not signal or parse the planar mode selection information. Meanwhile, even if the current block is a chrominance component block, the vertical direction planar mode or the horizontal direction planar mode can be applied in the same way as the luminance component block. For example, if the vertical direction planar mode is applied to the current block, the decoder can generate a prediction block for the luminance component block and the chrominance component block of the current block using the vertical direction planar mode.
- the decoder can generate a prediction block for the current block using the vertical planar mode. If the vertical size of the current block is greater than the horizontal size, the number of pixels adjacent to the left side of the current block is greater than the number of pixels adjacent to the upper side of the current block, so the decoder can generate a prediction block for the current block using the horizontal planar mode. If the horizontal and vertical sizes of the current block are the same, the decoder can generate a prediction block for the current block using the conventional planar mode.
- the encoder Since the planar mode is implicitly determined according to the horizontal and vertical sizes of the current block, the encoder does not need to generate a bitstream including the planar mode selection information.
- the decoder can generate a prediction block for the current block according to the planar mode determined according to the horizontal and vertical sizes of the current block.
- the vertical planar mode and the horizontal planar mode may not be applied in the ISP mode.
- the encoder may not signal planar mode selection information (i.e., the bitstream may not include the planar mode selection information) if the current block is encoded in the ISP mode and the current block is encoded in the planar mode.
- the decoder may not parse the planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode.
- the vertical planar mode and the horizontal planar mode may be applied in the ISP mode.
- the encoder may generate and signal a bitstream including planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode.
- the decoder may generate a prediction block for the current block using the planar mode determined by parsing the planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode.
- a video signal processing device can replace the horizontal mode (the 18th angle mode in FIG. 6) among the conventional intra prediction directional modes with the horizontal plane mode.
- the video signal processing device can replace the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes with the vertical plane mode.
- the video signal processing device can use the horizontal plane mode and the vertical plane mode instead of the horizontal mode (the 18th angle mode in FIG. 6) and the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes.
- the video signal processing device can replace the horizontal mode (the 18th angle mode in FIG. 6) and the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes with the horizontal plane mode and the vertical plane mode only when the horizontal size and the vertical size of the current block are different.
- the vertical planar mode and the horizontal planar mode can be effective for small blocks. Therefore, the video signal processing device can apply the vertical planar mode and the horizontal planar mode only when the size of the current block is smaller than an arbitrary size.
- the arbitrary size can be 16 or 32 in width or height. That is, the video signal processing device can apply the vertical planar mode and the horizontal planar mode to the current block when the width or height of the current block is smaller than or equal to 32.
- the video signal processing device may not apply the vertical planar mode and the horizontal planar mode to the current block when either the width or height of the current block is larger than 32.
- the encoder may not include planar mode selection information in the bitstream when either the width or height of the current block is larger than 32.
- the decoder may perform prediction of the current block using the conventional planar mode without parsing the planar mode selection information when the encoding mode of the current block is the planar mode and either the width or height of the current block is larger than 32.
- the DIMD and TIMD modes are modes for generating a predicted block by weighting averages of blocks predicted from various intra prediction modes. At this time, a block predicted using the planar mode can be used for the DIMD and TIMD modes.
- a video signal processing device When a video signal processing device generates a predicted block using the planar mode used in the DIMD and TIMD modes, any one of a vertical planar mode, a horizontal planar mode, and a conventional planar mode can be used.
- Planar mode selection information can be signaled by being included in a bitstream.
- a decoder can parse the planar mode selection information to determine which of the three planar modes to use. For example, when the planar mode selection information indicates a vertical planar mode, a prediction block used for the DIMD and TIMD modes can be a block predicted using the vertical planar mode.
- the MIP mode can be an effective mode for complex areas.
- a multi-prediction based MIP mode can be used. That is, the multi-prediction based MIP mode is a method of generating a final prediction block for a current block by weighting and averaging a prediction block generated by the MIP method and a prediction block generated based on an intra-prediction directional mode.
- An encoder can generate and signal a bitstream including both encoding information for the MIP mode and encoding information for the intra-prediction directional mode.
- a decoder can parse both encoding information for the MIP mode and encoding information for the intra-prediction directional mode to generate a prediction block to which the MIP mode is applied and a prediction block to which the intra-prediction directional mode is applied, and then generate a final prediction block for the current block by weighting and averaging the two prediction blocks.
- the MIP mode can be adaptively performed on a block-by-block basis.
- the encoder can generate and signal a bitstream including information on whether the multi-prediction-based MIP mode is used.
- the decoder can parse the information on whether the multi-prediction-based MIP mode is used to determine whether the multi-prediction-based MIP mode or the single-prediction-based MIP mode is used when generating a prediction block for the current block.
- the single-prediction-based MIP mode is a method of generating a prediction block using only the MIP mode.
- the encoder may additionally include and signal in the bitstream information about whether a multi-prediction based MIP mode is used, if the intra prediction mode of the current block is MIP.
- the encoder may additionally include and signal in the bitstream information about an intra-prediction directional mode, if the multi-prediction based MIP mode is used, if the current block is.
- the decoder may additionally parse information about whether a multi-prediction based MIP mode is used, if the intra-prediction mode of the current block is MIP, and additionally parse information about an intra-prediction directional mode, if the multi-prediction based MIP mode is used.
- an intra prediction directional mode is additionally signaled, the bit amount may increase and the compression efficiency may decrease.
- a multi-prediction-based MIP mode is used for the current block, only an arbitrary determined intra prediction directional mode may be used.
- the arbitrary determined intra prediction directional mode may be one of the MPM lists, and the encoder may signal the bitstream by including index information about the intra prediction directional mode to be used in the multi-prediction-based MIP mode among the MPM lists.
- the decoder may parse the index information to determine an intra prediction directional mode to be used in the multi-prediction-based MIP mode among the MPM lists.
- the vertical planar mode, the horizontal planar mode, and the conventional planar mode can be used to generate a prediction block based on the intra prediction directional mode. That is, the encoder can generate and signal a bitstream including the planar mode selection information.
- the decoder can parse the planar mode selection information to determine the intra prediction directional mode to be used in the multi-prediction based MIP mode.
- the video signal processing device can determine which of the three planar modes to use by using the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block. For example, when the multi-prediction based MIP mode is used for the current block, the video signal processing device can apply the horizontal planar mode to the current block to generate a prediction block based on the intra prediction directional mode if the DIMD (or TIMD) mode of the current block is less than 34. Alternatively, when the DIMD (or TIMD) mode of the current block is equal to or greater than 34, the vertical planar mode can be applied to the current block to generate a prediction block based on the intra prediction directional mode.
- the video signal processing device may generate prediction blocks for each mode using the vertical planar mode and the horizontal planar mode when the planar mode is used for the current block, and may apply weights to each prediction block to generate a final prediction block.
- the weights for each prediction block may be the same or different depending on the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to a certain value, the largest weight may be applied to the block predicted using the vertical planar mode. For example, the weight for the block predicted using the vertical planar mode may be 3, and the weight for the block predicted using the horizontal planar mode may be 1.
- the largest weight may be applied to the block predicted using the horizontal planar mode.
- a weight for a block predicted using a horizontal plane mode may be 3
- a weight for a block predicted using a vertical plane mode may be 1. Any value is an integer, and may be 34 (angle mode 34 in FIG. 6).
- DIMD information derived from surrounding pixels of a current block may include information about a first intra prediction directional mode, a second intra prediction directional mode, and whether to perform weighted prediction. If weighted prediction is not performed among the DIMD information of surrounding pixels of the current block, the video signal processing device may generate a prediction block by applying the same weight.
- the prediction block of the current block can be generated by weighting and averaging the prediction block (intra prediction block) using the intra prediction mode and the prediction block (inter prediction block) using the inter prediction mode.
- the encoder can generate and signal a bitstream including planar mode selection information.
- the decoder can parse the planar mode selection information to determine the intra prediction mode used to generate the intra prediction block.
- PDPC ition dependent intra prediction combination
- the vertical planar mode is used to generate the prediction block of the current block
- PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the horizontal angle mode (for example, the 18-degree angle mode in FIG. 6) may be performed.
- PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the vertical angle mode (for example, the 50-degree angle mode in FIG. 6) may be performed.
- PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the vertical angle mode (for example, the 50-degree angle mode in FIG. 6) may be performed.
- PDPC filtering based on the plane mode may not be performed, but PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6) may be performed.
- the meaning that the current block is predicted may be the same as the meaning that the prediction block of the current block is generated.
- the prediction block of the current block when the vertical plane mode is used to generate the prediction block of the current block, the prediction block of the current block can be generated based on the pixel value of rec(-1, H) which is a fixed position and the pixel value of rec(x, -1) which changes dynamically according to the x-axis coordinate.
- the prediction block of the current block when the horizontal plane mode is used to generate the prediction block of the current block, the prediction block of the current block can be generated based on the pixel value of rec(W, -1) which is a fixed position and the pixel value of rec(-1, y) which changes dynamically according to the y-axis coordinate. That is, since the prediction block can be generated so that the continuity of pixel values is maintained at the boundary portion between the neighboring blocks, PDPC may not be performed when the prediction block of the current block is generated using the vertical plane mode or the horizontal plane mode.
- the PDPC filtering for the above-described planar mode can also be applied when the current block is encoded in CIIP mode.
- a video signal processing device configures an MPM list for a current block
- the video signal processing device may set the intra prediction directionality mode of the neighboring block to the planar mode and include it in the MPM list.
- the intra prediction directionality mode of the neighboring block may be set to the DC mode and included in the MPM list.
- the intra prediction directionality mode of the neighboring block may be set to the horizontal angle mode (angle mode 18 in FIG. 6) and included in the MPM list.
- the intra prediction directionality mode of the neighboring block may be set to the vertical angle mode (angle mode no. 50 in FIG. 6) and included in the MPM list.
- the horizontal plane mode may have a vertical characteristic
- the video signal processing device when the video signal processing device configures the MPM list for the current block, if a neighboring block adjacent to the current block is predicted in the horizontal plane mode, the video signal processing device may set the intra prediction directionality mode of the neighboring block to the vertical angle mode (angle mode no. 50 in FIG. 6) and include it in the MPM list.
- the video signal processing device when the video signal processing device configures the MPM list for the current block, if a neighboring block adjacent to the current block is predicted in the vertical plane mode, the video signal processing device may set the intra prediction directionality mode of the neighboring block to the horizontal angle mode (angle mode no. 18 in FIG. 6) and include it in the MPM list.
- the vertical plane mode and the horizontal plane mode proposed in this specification are not signaled as any specific mode, but can be signaled as included in any one of the intra prediction directional modes.
- FIG. 6 there are a total of 67 intra prediction directional modes, among which 0 (plane mode) and 1 (DC mode) are non-directional modes, and 2 to 66 are directional modes (angular modes).
- the intra prediction directional modes can be extended, including the newly defined vertical plane mode and horizontal plane mode.
- mode 2 can be set as the vertical plane mode
- mode 3 can be set as the horizontal plane mode.
- modes 0 plane mode
- 1 DC mode
- 2 vertical plane mode
- 3 horizontal plane mode
- modes 4 to 68 can be set to be the same as the existing directional modes 2 to 66.
- the transform is calculated by applying the transform kernel to the vertical and horizontal directions of the error block respectively, so it can be said to be a separable transform method.
- the transform is calculated by applying the transform kernel only once without applying the transform kernel to the vertical and horizontal directions respectively, so it can be said to be a non-separable transform method.
- the second transform described above is additionally applied to the first transformed transform coefficients of the block to which the DCT-2 transform is applied, it can be said to be a two-step transform technique.
- the second transform described above has high encoding efficiency, but it has the disadvantage of being complicated because the transform kernel is applied a total of three times.
- the NSPT (Non-separable primary transform) method which is a method of applying the transform using only the second transform method, can be applied.
- the NSPT transform method is a non-separable transform method, and is calculated by applying the transform kernel only once to the vertical and horizontal directions of the error block without applying the transform kernel separately.
- the error block of the current block can be transformed or inversely transformed using one of the transform methods among MTS, DCT2 + LFNST, and NSPT transform methods.
- Figure 34 shows a transformation set table for LFNST and NSPT transformations according to one embodiment of the present invention.
- LFNST and NSPT transforms There can be 35 transform sets used in LFNST and NSPT transforms, and they can vary depending on the intra prediction mode (see FIG. 6). That is, the video signal processing device can derive a transform set index of LFNST and NSPT transforms corresponding to the intra prediction mode (see FIG. 6) by referring to the transform set table of FIG. 50.
- the LFNST and NSPT transform sets can vary depending on the intra prediction mode, information on whether the current block is a luminance block or a chrominance block, the horizontal and vertical sizes of the current block, and whether the intra prediction directional mode of the current block is an extended angle mode.
- the arbitrary number can be an integer greater than or equal to 1, and can be 3.
- the encoder can signal the index information for the optimal transform matrix among multiple transform matrices in the transform set by including it in the bitstream.
- the inverse transformation can be applied using the transformation matrix corresponding to the index in the transformation set.
- the video signal processing device can apply three types of transform kernels, LFNST4, LFNST8, and LFNST16, depending on the size of the transform block. If the horizontal and vertical sizes of the current block (e.g., the transform block) are greater than or equal to 16, the video signal processing device can apply the LFNST16 transform kernel to the current block. If the horizontal and vertical sizes of the current block are greater than or equal to 8 and less than 16, the video signal processing device can apply the LFNST8 transform kernel to the current block. If the horizontal and vertical sizes of the current block are less than 8, the video signal processing device can apply the LFNST4 transform kernel to the current block.
- LFNST4 transform kernel the current block.
- Figure 35 shows a low frequency region of a current block according to one embodiment of the present invention.
- the gray area can be a low-frequency area after LFNST conversion, and the gray area can be described as a Region of Interest (ROI).
- ROI Region of Interest
- a portion other than a pre-designated ROI can be zeroed out as 0.
- LFNST16 since only 96 samples are required, the remaining white sub-blocks except for 6 sub-blocks (gray area) as in Fig. 35(a) can be zeroed out.
- LFNST8 since only 64 samples are required, the remaining white sub-blocks except for 4 sub-blocks (gray area) as in Fig. 35(b) can be zeroed out.
- the size of the sub-blocks in Fig. 35 can be N x N, where N is a positive integer, such as 4.
- NSPT transform can be a transform method that replaces the existing DCT2 + LFNST transform method.
- NSPT4x4 (16x16 kernel), NSPT4x8 (32x20 kernel), NSPT8x4 (32x20 kernel), NSPT8x8 (64x32 kernel), NSPT4x16 (64x24 kernel), NSPT16x4 (64x24 kernel), NSPT8x16 (128x40 kernel), NSPT16x8 (128x40 kernel), NSPT4x32 (128x20 kernel), NSPT32x4 (128x20 kernel), NSPT8x32 (256x24 kernel), NSPT32x8 (256x24 kernel).
- NSPT similar to LFNST, consists of 35 sets of transform kernels, and each set can consist of three candidates.
- the encoder can derive a set of transform kernels according to the intra prediction mode, and then generate and signal a bitstream including information about an index of an optimal candidate among the three candidates.
- the decoder can parse the information about the signaled index, and then use the transform kernel candidate indicated by the index information among the set of transform kernels derived using the intra prediction mode to inversely transform the current transform coefficients and obtain a residual block.
- Zero-out may not be performed on a 4x4 block to which NSPT is applied.
- the number of coefficients to be zeroed out may vary depending on the size of the kernel of NSPT. For example, NSPT of size 32x20 may be applied to a 4x8 block or an 8x4 block. Accordingly, out of 32 transform coefficients, only 20 transform coefficients may be zeroed out, while the remaining 12 transform coefficients may be zeroed out.
- FIG. 36 illustrates a method for deriving a multi-transform set and a LFNST/NSPT set according to one embodiment of the present invention.
- the encoder can select which one of MTS, DCT2 + LFNST, and NSPT to apply to the residual block, and can transform the residual block and obtain transform coefficients based on the selected transform method.
- the encoder can signal information on which transform method was applied by including it in the bitstream. If the MTS transform is applied to the residual block, the transform coefficients of the residual block can be obtained by applying the MTS transform, and LFNST and NSPT transforms may not be applied. If the DCT2 + LFNST transform is applied to the residual block, the encoder can apply the DCT2 transform to the residual block to obtain the first transform coefficients, and apply the LFNST transform to the first transform coefficients to obtain the second transform coefficients.
- the MTS and NSPT transforms may not be applied.
- the video encoder can output transform coefficients by applying the NSPT transform to the residual block, and at this time, the MTS and DCT2 + LFNST transforms may not be applied to the residual block.
- the decoder can parse information about which transform method is applied from the bitstream, and determine whether one of the inverse transform methods among MTS, DCT2 + LFNST, and NSPT is applied to the current transform coefficient based on the parsed information. Then, the decoder can perform an inverse transform on the transform coefficient based on the determined transform method, and obtain a residual block. If the MTS transform is applied to the current transform coefficient, the decoder can perform an inverse MTS transform on the transform coefficient to obtain a residual block, and at this time, LFNST and NSPT inverse transforms may not be applied.
- the decoder can perform an inverse LFNST transform on the second transform coefficient to output a first transform coefficient, and perform an inverse DCT2 transform on the first transform coefficient to obtain a residual block, and at this time, MTS and NSPT transforms may not be applied. If the NSPT transform is applied to the current transform coefficients, the decoder can perform the NSPT inverse transform on the current transform coefficients to obtain a residual block, and at this time, the MTS and DCT2 + LFNST transforms may not be applied.
- a video signal processing device can derive a transform kernel for each of MTS, LFNST, and NSPT transforms (or inverse transforms) using an intra prediction mode.
- the video signal processing device can determine which transform (or inverse transform) is applied among MTS, DCT2 + LFNST, and NSPT.
- IBC Intra TMP
- Merge e.g., AMVP, GPM, SGPM, CCLM, CCCM
- FIG. 37 illustrates a method for deriving a multi-transform set and an LFNST set for a vertical planar mode or a horizontal planar mode according to one embodiment of the present invention.
- Figure 38 shows a mapping table according to one embodiment of the present invention.
- Figure 39 illustrates a conversion type set table according to one embodiment of the present invention.
- Figure 40 shows a conversion type combination table according to one embodiment of the present invention.
- Figure 41 shows a threshold value table for an IDT conversion type according to one embodiment of the present invention.
- the characteristics of the error (residual) signal (block) may be similar to the characteristics of the error signal of the vertical angle mode (the 50-degree angle mode in Fig. 6).
- the multiple transform set (MTS) applied to the error signal may vary based on the intra prediction directional mode of the current block. That is, when the vertical plane mode is used to generate the prediction block of the current block, the encoder may perform the first transform process based on the multiple transform set by using the set of transform matrices of the vertical angle mode (the 50-degree angle mode in Fig. 6) instead of the set of transform matrices of the plane mode for the error signal.
- the encoder may perform the first transform using a predetermined transform set regardless of the multiple transform set.
- the encoder may perform the second transform through LFNST on the first-transformed transform coefficients by using the multiple transform set or the predetermined transform set.
- the transformation matrix used when performing LFNST may vary depending on the intra prediction directional mode. That is, if the vertical planar mode is used to generate the prediction block of the current block, the encoder may perform the transformation process using the set of secondary LFNST transformation matrices of the vertical angular mode (the 50-angle mode in Fig. 6) instead of the set of secondary LFNST transformation matrices for the planar mode for the error signal.
- the encoder may derive the primary or secondary transformation matrix (or the set of matrices, the set of matrices, the set of kernels) using the horizontal angular mode (the 18-angle mode in Fig. 6) instead of the planar mode.
- the decoder can perform the transformation process by using the set of first LFNST transformation matrices of the vertical angle mode (the 50-degree mode in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal.
- the decoder can perform the second transformation process based on the multiple transformation set by using the set of transformation matrices of the vertical angle mode (the 50-degree mode in FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal.
- the encoder can perform the second transformation after the first transformation in the encoding process, which correspond to the first transformation and the second transformation in the decoding process of the decoder, respectively.
- the first transformation performed by the encoder corresponds to the second transformation performed by the decoder (the inverse transformation of the first transformation performed by the encoder)
- the second transformation performed by the encoder corresponds to the first transformation performed by the decoder (the inverse transformation of the second transformation performed by the encoder).
- the prediction block when the vertical direction planar mode is used to generate the prediction block of the current block, the prediction block can be generated based on the pixel value of rec(-1, H), which is a fixed position, and the pixel value of rec(x, -1) that changes dynamically according to the x-axis coordinate. That is, when the vertical direction planar mode is used, since the pixel value changes in the x-axis, the characteristic of the error signal can be similar to the characteristic of the error signal of the horizontal angle mode (angle mode 50 of FIG. 6).
- the multiple transformation set applied to the error signal can vary based on the intra prediction directionality mode of the current block.
- the encoder can perform the first transformation process based on the multiple transformation set by using the set of transformation matrices of the horizontal angle mode (angle mode 18 of FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal.
- the encoder can perform the first transform using a predetermined transform set regardless of the multiple transform set.
- the encoder can perform the second transform through LFNST on the first transformed transform coefficients using the multiple transform set or the predetermined transform set.
- the transform matrix used when performing LFNST can vary depending on the intra prediction directional mode.
- the encoder can perform the transform process using the set of second LFNST transform matrices of the horizontal angular mode (the 18th angular mode in FIG. 6) instead of the set of second LFNST transform matrices for the planar mode for the error signal. If the horizontal direction planar mode is used to generate the prediction block of the current block, the encoder can derive the first or second transform matrix (or the set of matrices, the set of matrices, the set of kernels) using the vertical angular mode (for example, the 50th angular mode in FIG. 6) instead of the planar mode.
- the decoder can perform the transformation process by using the set of first LFNST transformation matrices of the horizontal angular mode (angle mode 18 in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal.
- the decoder can perform the second transformation process based on the multi-transform set by using the set of transformation matrices of the horizontal angular mode (angle mode 18 in FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal.
- the encoder can derive the first or second transformation matrix (or the set of matrices, the set of matrices, the set of kernels) by using the vertical angular mode (angle mode 50 in FIG. 6) instead of the planar mode.
- the decoder can perform the transformation process by using the set of first LFNST transformation matrices for the vertical angular mode (the 50-degree angular mode in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal.
- the decoder can perform the second transformation process based on the multiple transformation set by using the set of transformation matrices for the vertical angular mode (the 50-degree angular mode in FIG. 6) instead of the set of transformation matrices for the planar mode for the error signal.
- a method for selecting a set of multiple transforms available for a current block in a video signal processing device is described when a prediction block of a current block is generated using a vertical planar mode, a horizontal planar mode, or a conventional planar mode.
- the video signal processing device can derive the nSzIdxW and nSzIdxH values based on the size of the current block to map the horizontal and vertical sizes of the current block into a single variable.
- nSzIdxW can be the minimum value among 3 and the difference between 2 and the logarithm of 2 calculated by the width of the current block, then discarding the decimal places.
- nSzIdxH can be the minimum value among 3 and the difference between 2 and the logarithm of 2 calculated by the height of the current block, then discarding the decimal places.
- the video signal processing device can derive the intra directional mode (predMode) of the current block.
- predMode intra directional mode
- the intra prediction modes expanded from the existing 67 to 131 can be used, thereby reducing the precision to the existing 67 modes.
- the video signal processing device can derive the ucMode, nMdIdx, and isTrTransposed values.
- ucMode can be set to '0'
- nMdIdx can be set to '35'
- isTrTransposed can be set to a value derived from MIP.
- ucMode can be set to the intra directional mode (predMode) of the current block.
- predMode can mean an index value of the intra directional mode.
- predMode can be determined through the extended angle mode according to the aspect ratio of the current block.
- the video signal processing device can clip predMode to a value between 2 and 66. If the prediction block of the current block is generated using the vertical plane mode, the video signal processing device can reset predMode to the horizontal prediction mode (angle mode 18 in FIG. 6). If the prediction block of the current block is generated using the horizontal plane mode, the video signal processing device can reset predMode to the vertical prediction mode (angle mode 50 in FIG. 6).
- the isTrTransposed value can be set to 1, and when predMode is equal to or less than 34, the isTrTransposed value can be set to 0.
- predMode is greater than 34, the video signal processing device resets the value of predMode to a value that is a difference of 67 (the maximum value of the intra directional mode index) plus 1. For example, when predMode is 35, the video signal processing device can reset the 35th angular mode to the 33rd angular mode (67+1-35(predMode)).
- the video signal processing device can reset the 66th angular mode to the 2nd angular mode (67+1-66(predMode)). That is, by making it symmetrical with respect to the 34th angular mode which is a diagonal mode, there is an effect of reducing the size of the transformation mapping table of FIG. 35 by about half.
- the video signal processing device can derive the nSzIdx value through the nSzIdxW, nSzIdxH, and isTrTransposed values. If the isTrTransposed value is '1', the value obtained by multiplying nSzIdxH by 4 and adding nSzIdxW can be set as nSzIdx. If the isTrTransposed value is '0', the value obtained by multiplying nSzIdxW by 4 and adding nSzIdxH can be set as nSzIdx.
- the video signal processing device can derive nTrSet, which is an index of an available transformation type set, according to the predefined table of FIG. 38 by using nSzIdx, which is the size information of the current block, and nMdIdx, which is the intra-directional mode information of the current block.
- FIG. 38 defines an index of a transformation type set according to the intra-directional mode (0 to 34 and MIP) of the current block and the size index (0 to 15) of the current block.
- nTrSet can be 80, and if the size of the current block is 4x8 and the intra-directional mode of the current block is 13, nTrSet can be '7'.
- the video signal processing device can derive a transformation type set corresponding to nTrSet from the table of FIG. 39 by parsing mts_idx included in the bitstream.
- the transformation types in the vertical and horizontal directions are set differently depending on whether predMode is a value greater than the 34th angle mode, which is a diagonal mode.
- 0 to 79 of the gray-shaded vertical columns of FIG. 39 may correspond to nTrSet, and 0 to 3 of the gray-shaded horizontal columns may correspond to mts_idx. Referring to FIG. 36, if nTrSet is 7 and the value of mts_idx is 3, 22 may be selected from (2, 17, 18, 22).
- DST1 and DCT5 corresponding to index 22 of the transformation type combination table of FIG. 40 are selected, and the vertical transformation type of the current block may be set to DST1 and the horizontal transformation type may be set to DCT5.
- 0 to 24 of the gray-shaded horizontal columns in Fig. 40 are indices selected through Fig. 39, and 0 to 1 of the gray-shaded vertical columns may represent vertical transformation types and horizontal transformation types, respectively. If the predicted directionality mode within the screen of the current block is greater than 34, which is a diagonal mode, the vertical and horizontal transformation types may be interchanged.
- the vertical or horizontal transformation type can be reset to the IDT transformation type through the process described below.
- the vertical transformation type may be reset to the IDT transformation type. If the absolute difference between the index of the screen prediction directionality mode of the current block and the index of the horizontal direction mode, 50, is less than any predetermined value, the horizontal transformation type may be reset to the IDT transformation type.
- the predetermined value may be an integer and may be determined based on the horizontal or vertical size of the current block. For example, the predetermined value may be determined through the table of Fig. 38.
- the table of Fig. 41(a) represents a case where the threshold value is set differently whenever the horizontal or vertical size differs by 4, and the table of Fig.
- 41(b) represents a case where the threshold value is set differently whenever the horizontal or vertical size differs by 2 times. If the size of the current block is 16x16, the vertical transformation type may not be reset to the IDT transformation type, but the existing transformation type may be maintained as is.
- the number of transform type sets can be adaptively changed for each block.
- the number of transform type sets can be adaptively determined according to the sum of the absolute values of the transform coefficients of the current transform block. For example, the number of transform type sets can be adaptively determined to 1, 4, or 6. If the number of transform type sets is different, the maximum number of bins (bin_) for signaling mts_idx may be different. If the sum of the absolute values of the transform coefficients is less than or equal to 6, the number of transform type sets may be one.
- the encoder may not include (i.e., may not signal) mts_idx in the bitstream, and the decoder may not parse mts_idx. If the sum of the absolute values of the transform coefficients is greater than 6 and less than or equal to 32, the number of transform type sets may be four, and if the sum of the absolute values of the transform coefficients is greater than 32, the number of transform type sets may be six.
- Transform Kernel In this case, if the number of transform type sets is plural (e.g., four or six), the encoder may generate and signal a bitstream including mts_idx based on the maximum number of transform type sets, The decoder can parse mts_idx based on a maximum number of transformation type sets, where transformation type sets can be used in the same sense as transformation kernel candidates.
- the transform kernel set for the current block can be any one of the four combinations of transform kernel sets.
- the four combinations can be ⁇ (DST7, DST7), (DST7, DCT8), (DCT8, DST7), (DCT8, DCT8) ⁇ .
- the encoder can signal an index indicating the transform kernel set used among the four combinations by including it in the bitstream.
- the decoder can parse the index to determine the transform kernel set for the current block. For example, if the determined transform kernel set is (DST7, DCT8), DST7 can be applied to the current block in the horizontal direction and DCT8 can be applied in the vertical direction to perform transform/inverse transform.
- the maximum CU size to which inter MTS can be applied can be set to 32x32.
- the maximum CU size to which Inter MTS can be applied can be 16x16 for resolutions other than 1920x1080. Therefore, if the size of the current block is larger than 32x32 or 16x16, Inter MTS may not be applied to the current block, and DCT2 transform may be applied in the horizontal and vertical directions.
- DST7 and DCT8, which are transform kernels for the current block whose size is equal to or smaller than 16x16, may be replaced with a separable KLT (Karhunen-Loeve Transform).
- Figure 42 shows samples at a block boundary and around the boundary in a deblocking filtering process according to one embodiment of the present invention.
- the part indicated by the dotted line between the P block and the Q block may indicate a block boundary.
- the block boundary may exist at any fixed size, and a block boundary may exist at every size of 4.
- Fig. 42(b) shows samples on which filtering is performed based on block boundaries.
- the video signal processing device can perform a process of alleviating blocking artifacts occurring at block boundaries by performing deblocking filtering on the currently restored block.
- the deblocking filtering process can include a process of determining a transform block boundary, determining a sub-block boundary, determining a length of a filter to perform filtering, determining a filtering strength (bS), determining a filtering parameter, determining whether to perform filtering, and determining a type of filtering.
- FIG. 43 illustrates a method for a video signal processing device according to one embodiment of the present invention to derive a first or second transform matrix.
- FIG. 43 illustrates a flowchart of a method for a video signal processing device to derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) when a current block is predicted using a vertical planar mode, a horizontal planar mode, or a conventional planar mode.
- a first or second transformation matrix a set of matrices, a set of matrices, a set of kernels
- a video signal processing device can receive an intra prediction mode and determine whether the prediction mode of a current block is a planar mode. If the prediction mode is not a planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on the input intra prediction directional mode. If the prediction mode is a planar mode, the video signal processing device can determine whether the prediction mode is a vertical planar mode.
- a first or second transformation matrix a set of matrices, a set of matrices, a set of kernels
- the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a horizontal angle mode (angle mode 18 of FIG. 6). If the prediction mode is not a vertical planar mode, the video signal processing device can determine whether the prediction mode is a horizontal planar mode. When the prediction mode is a horizontal planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a vertical angle mode (a 50-degree angle mode in FIG. 6). When the prediction mode is not a horizontal planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a conventional planar mode.
- a first or second transformation matrix a set of matrices, a set of matrices, a set
- the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) using the intra prediction directional mode derived by using the DIMD method.
- a first or second transformation matrix a set of matrices, a set of matrices, a set of kernels
- the video signal processing device can perform a first transformation process based on a multi-transform set by using the set of transformation matrices of the intra prediction directional mode derived by using the DIMD method.
- the video signal processing device can perform a second transformation process based on LFNST by using the set of transformation matrices of the intra prediction directional mode derived by using the DIMD method.
- the DIMD information derived from the surrounding pixels of the current block may include the first intra prediction directional mode, the second intra prediction directional mode, and information on whether to perform weighted prediction.
- the existing Planar prediction mode can be used to derive the first or second transformation matrix (or a set of matrices, a set of matrices, a set of kernels).
- the encoder can implicitly apply the DCT2 transform method without performing the first transform process based on the multiple transform set.
- the decoder can apply the DCT2 transform method if the current block is predicted in the planar mode. If the current block is predicted in the conventional planar mode, the video signal processing device can implicitly apply the DCT2 transform method without performing the first transform process based on the multiple transform set. If the current block is predicted in the vertical direction planar mode or the horizontal direction planar mode, the video signal processing device can apply the first transform process based on the multiple transform set.
- the video signal processing device can implicitly apply the DCT2 transform method without applying the first transform process based on the multiple transform set. If the current block is predicted in the conventional planar mode, the video signal processing device can apply the first transform process based on the multiple transform set.
- the size of the current block is an arbitrary size
- the DST7 transform method may be applied instead of the DCT2 transform method.
- the arbitrary size may be a case where the horizontal or vertical size of the current block is greater than or equal to 4 or less than or equal to 16. For example, if the current block is predicted based on the vertical planar mode or the horizontal planar mode, and the horizontal size of the current block is 32 and the vertical size is 16, the video signal processing device may apply DCT2 for horizontal transform and DST7 for vertical transform.
- the DC mode can also be classified into three prediction modes (three DC modes, three-directional DC prediction modes, or three DC prediction modes can be used interchangeably). Specifically, the DC mode can be classified into a mode according to an average between upper pixels of the current block, an average between left pixels of the current block, and an average between upper and left pixels of the current block. If the horizontal size of the current block is greater than the vertical size, the video signal processing device can generate a prediction block of the current block using an average value between upper pixels of the current block. If the vertical size of the current block is greater than the horizontal size, the video signal processing device can generate a prediction block of the current block using an average value between left pixels of the current block.
- the video signal processing device can generate a prediction block of the current block using an average value between upper and left pixels.
- the encoder can explicitly signal information indicating which of the three DC prediction modes (i.e., the mode according to the average between the upper pixels of the current block, the average between the left pixels of the current block, and the average between the upper and left pixels of the current block) is used. That is, the encoder can generate and signal a bitstream including information (DC mode selection information) on the basis of which one of the three DC modes the current block is predicted.
- the method by which the encoder signals the DC mode selection information can be described as an explicit directional DC mode.
- the decoder can generate a prediction block for the current block based on the mode determined by parsing the DC mode selection information.
- the encoder can generate and signal a bitstream including information on in which mode the current block was encoded if the prediction mode of the current block is the DC mode.
- the decoder can determine a final DC mode for the current block by parsing the DC mode selection information if the prediction mode of the current block is the DC mode. For example, if the current block is predicted in DC mode using the average between the left pixels, the encoder can signal that the current block is in DC mode and can signal that the current block is predicted via DC mode using the average between the left pixels using an additional flag bit.
- the decoder can parse the additional flag bit to determine which mode is applied to the current block.
- the encoder can signal that the coding mode of the current block is DC mode.
- the decoder can use the MPM list to determine whether the coding mode of the current block is DC mode.
- the decoder can parse the information (syntax element) indicating whether the coding mode of the current block is DC mode using the MPM list.
- the DC mode using the average between the upper pixels of the current block can be described as the Vertical DC mode or the above DC mode
- the DC mode using the average between the left pixels of the current block can be described as all Horizontal DC modes or the left DC mode.
- the above three DC prediction modes may not be used in ISP mode.
- the encoder may not signal a flag bit indicating whether the current block is in DC mode using the average between left pixels or in DC mode using the average between top pixels, if the current block is encoded in ISP mode and the current block is encoded in DC mode.
- the decoder may not parse a flag bit indicating whether the current block is in DC mode using the average between left pixels or in DC mode using the average between top pixels, if the current block is in ISP mode and the current block is in DC mode.
- the encoder can signal a flag bit indicating which of the three DC prediction modes the prediction mode of the current block is, and include it in the bitstream, if the current block is encoded in the ISP mode and the current block is encoded in the DC mode.
- the decoder can parse the flag bit to set the final DC mode for the current block, if the current block is encoded in the ISP mode and the current block is encoded in the DC mode.
- Whether to apply the above three DC prediction modes can be determined based on the color component of the current block. If the current block is a luminance component block, the above three DC prediction modes can be used. Or, if the current block is a chrominance component block, only the DC prediction mode using the average between the upper and left pixels among the above three DC prediction modes can be used. Therefore, if the current block is a chrominance component block and the DC mode is applied, the encoder may not include a flag bit indicating which of the three DC modes is used in the bitstream.
- the decoder may not parse the flag bit indicating which of the three DC modes is used, and may set the DC mode for the current block to the DC prediction mode using the average between the upper and left pixels.
- the current block When the ISP mode is applied, the current block can be divided horizontally or vertically. Depending on the horizontal or vertical size of the current block, one block can be divided into two or four blocks.
- the prediction mode can be determined according to the division shape of the block.
- the horizontal planar mode among the three planar modes can be used.
- the vertical planar mode among the three planar modes can be used.
- a mode using the average between the left pixels among the three DC modes can be used. If the current block is encoded in ISP mode and the division type according to the ISP mode is horizontal division, a mode that uses the average between upper pixels among the three DC modes can be used.
- the partitioning shape of the ISP mode can be determined based on the intra prediction directional mode derived from DIMD or the intra prediction directional mode derived from TIMD. If the DIMD (or TIMD) mode of the current block is less than 34, the ISP partitioning shape of the current block can be horizontal partitioning. If the DIMD (or TIMD) mode of the current block is greater than or equal to 34, the ISP partitioning shape of the current block can be vertical partitioning. Conversely, if the DIMD (or TIMD) mode of the current block is less than 34, the ISP partitioning shape of the current block can be vertical partitioning.
- the ISP partitioning shape of the current block can be horizontal partitioning. If the partition shape of the ISP mode is determined based on the intra prediction directional mode derived from DIMD (or TIMD), the partition shape is determined implicitly, so the encoder may not include information about the ISP partition shape in the bitstream, and the decoder may not parse information about the ISP partition shape.
- the video signal processing device can generate prediction blocks for each mode using all three DC modes, and can generate a final prediction block through a weighted average by applying the same or different weights to each prediction block.
- the largest weight can be applied to the predicted block using the average between the upper pixels.
- the horizontal size of the current block is smaller than the vertical size, the largest weight can be applied to the predicted block using the average between the left pixels.
- the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to an arbitrary value, the largest weight can be applied to the predicted block using the average between the upper pixels.
- the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is smaller than an arbitrary value, the largest weight can be applied to the predicted block using the average between the left pixels.
- the arbitrary value can be an integer, and can be 34, which is an index of the diagonal mode (angle mode 34 in FIG. 6).
- the DIMD information derived from the surrounding pixels of the current block may include the first intra prediction directional mode, the second intra prediction directional mode, and information on whether to perform weighted prediction. If weighted prediction is not applied among the DIMD information derived from the surrounding pixels of the current block, the largest weight may be applied to the predicted block using the average of all pixels on the upper and left sides.
- the encoder can perform a transform on the error signal (residual signal) using a predetermined transform set, regardless of the multiple transform set. For example, if a prediction block is generated based on any one of the three DC prediction modes explicitly signaled by the encoder, the encoder can perform a transform process based on a Multiple Transform Set (MTS) using a conventional DC mode (or a planar mode) on the error signal to obtain (output) transform coefficients.
- MTS Multiple Transform Set
- the decoder can perform an inverse transform on the transform coefficients using a predetermined transform set, regardless of the multiple transform set. For example, if the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an inverse transform based on MTS using the conventional DC mode (or planar mode) on the transform coefficients and obtain (output) the error signal.
- the encoder can perform a secondary transform on the primary transformed coefficients based on the MTS or a predetermined transform set.
- the secondary transform can be LFNST.
- the transform matrix used by the encoder when performing the LFNST can vary depending on the intra prediction directional mode. For example, if the encoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the primary transformed transform coefficients can be subjected to a secondary transform through LFNST. In this case, the encoder can perform the LFNST transform using the existing DC mode (or planar mode), and obtain (output) the secondary transform coefficients by performing the LFNST transform.
- the transform matrix used can vary depending on the intra prediction directional mode. For example, if the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an LFNST inverse transform using the conventional DC mode (or planar mode) on the secondary transform coefficients to obtain (output) the primary transform coefficients. Then, the decoder can perform an inverse transform process based on a multiple transform set (MTS) using the conventional DC mode on the primary transform coefficients to obtain (output) an error signal.
- MTS multiple transform set
- the video signal processing device may derive a first or second transformation matrix (or a set of matrices, a set of matrices, a set of kernels) using a mode other than the conventional DC prediction mode.
- the encoder can perform a first transform process based on MTS by using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of transform matrices of the existing DC prediction mode for the error signal, and obtain first transform coefficients.
- the encoder can perform a transform process by using a set of second transform (e.g., LFNST) matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG.
- the decoder can perform an inverse transform process by using a set of second transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of second transform (e.g., LFNST) matrices of the existing DC prediction mode for the second transform coefficients, and obtain a first transform coefficient.
- a set of second transform matrices of the horizontal angle mode e.g., the 18th angle mode in FIG. 6
- LFNST second transform
- the decoder can perform an inverse transform process based on MTS by using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of transform matrices of the existing DC prediction mode for the first transform coefficients, and obtain an error signal.
- a set of transform matrices of the horizontal angle mode e.g., the 18th angle mode in FIG. 6
- the decoder can perform an inverse transform process based on MTS by using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of transform matrices of the existing DC prediction mode for the first transform coefficients, and obtain an error signal.
- the decoder can perform an inverse transformation process using a set of secondary transformation (e.g., LFNST) matrices of the vertical angle mode (e.g., the 50-degree angle mode in FIG. 6) and output a first transformation coefficient.
- the decoder can perform an MTS-based inverse transformation process using a set of transformation matrices of the vertical angle mode (e.g., the 50-degree angle mode in FIG. 6) without using a set of transformation matrices of the existing DC prediction mode for the first transformation coefficient, and obtain an error signal.
- the decoder can perform an inverse transformation process using a set of secondary transform (e.g., LFNST) matrices of the horizontal angle mode (e.g., the 18th angle mode in Fig. 6) and output a first transform coefficient.
- the decoder can perform an inverse transformation process based on MTS using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in Fig. 6) without using a set of transform matrices of the existing DC prediction mode for the first transform coefficient, and obtain an error signal.
- the video signal processing device can derive the first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) using the intra prediction directional mode derived using the DIMD method.
- the video signal processing device can perform a transformation process or an inverse transformation process based on MTS using the set of transformation matrices of the intra prediction directional mode derived using the DIMD method.
- the video signal processing device can perform a transformation process or an inverse transformation process based on LFNST using the set of transformation matrices of the intra prediction directional mode derived using the DIMD method.
- the video signal processing device may use one of the IDTR and MTS-based transforms for the horizontal or vertical transform.
- the encoder can obtain transform coefficients by performing a transform using IDTR in at least one of the horizontal direction and the vertical direction on the error signal, regardless of the multiple transform sets. If the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an inverse transform using IDTR in at least one of the horizontal direction and the vertical direction on the transform coefficients, regardless of the multiple transform sets, and obtain an error signal.
- the encoder can apply the IDTR transform for the horizontal direction of the error signal, perform the MTS-based transform using the conventional DC mode for the vertical direction, and obtain the transform coefficients. If the decoder uses the DC mode that uses the average of the upper pixel values to generate the prediction block of the current block, the decoder can apply the IDTR inverse transform for the horizontal direction of the transform coefficients, and perform the MTS-based inverse transform using the conventional DC mode for the vertical direction, and obtain the error signal.
- the IDTR transform can be applied to the vertical direction of the error signal, and the MTS-based transform can be performed using the conventional DC mode for the horizontal direction to obtain the transform coefficients. If the decoder generates a prediction block of the current block using the DC mode that uses the average of the upper pixel values, the IDTR inverse transform can be applied to the vertical direction of the transform coefficients, and the MTS-based inverse transform can be performed using the conventional DC mode for the horizontal direction to output the error signal.
- the IDTR transform can be applied only when the width and/or height of the current block is greater than or equal to a specific value. At this time, the specific value can be 8, 16, or 32.
- the video signal processing device can generate the prediction block of the current block through a weighted average between the planar mode and the DC mode.
- the video signal processing device can generate the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the upper pixel values.
- the video signal processing device can generate the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the left pixel values.
- the video signal processing device can apply the above-described transformation methods to the error signal of the generated prediction block.
- the decoder when the decoder generates the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the left pixel values, the decoder can perform an inverse transformation process using a set of secondary transform (e.g., LFNST) matrices of the horizontal angular mode (e.g., the 18th angular mode of FIG. 6) and output primary transform coefficients.
- the decoder can perform an inverse transformation process based on MTS by using a set of transformation matrices of a horizontal angle mode (e.g., the 18th angle mode in Fig.
- planar mode may be described as a planar prediction mode
- DC mode may be described as a DC prediction mode
- Figure 44 illustrates a DC prediction method for vertical or horizontal line units according to one embodiment of the present invention.
- the DC mode is a prediction method that generates a prediction block for a current block using only one average value, and has the characteristic that all pixels in the prediction block have the same value.
- a video signal processing device can generate a prediction block so that the average value changes according to the vertical or horizontal position in the block, and this is described as a gradient-based DC prediction mode. Referring to FIG. 44, when a prediction block for a current block is generated using the DC mode in the vertical direction, the video signal processing device can calculate an average value of pixels adjacent to the current block upwardly (e.g., hatched pixels in FIG.
- the video signal processing device can generate a prediction sample by applying the recalculated average value to the second horizontal line of the current block (for example, pixels indicated by 2 in FIG. 44).
- the method of recalculating the average value for the second horizontal line can be calculated through an interpolation method using the distance (L) between the reference pixel (A) and the reference pixel (B), the distance (M) between the reference pixel (A) and the reference pixel (E), and the difference (X) between the pixel values between the reference pixel (A) and the pixel (E) at the position (-1, -1) with respect to the lower left position of the current block.
- the average value can be recalculated by multiplying the value obtained by dividing L by M by X and adding it to the average value. The same is performed for the next horizontal line, so that a prediction sample for the current block can be generated.
- the prediction block of the current block can be generated such that the average value for each horizontal (or vertical) line changes according to the gradient of the reference pixels adjacent to the left (or upper) of the current block.
- the pixel values of the samples in each horizontal (or vertical) direction are configured to be the same, and the prediction block of the current block can be generated such that at least one vertical (or horizontal) pixel value is different.
- the line-wise DC prediction mode can be divided into the line-wise DC prediction mode in the vertical direction and the line-wise DC prediction mode in the horizontal direction. If the horizontal size of the current block is larger than the vertical size, since there are many pixels adjacent to the upper side of the current block, the prediction block for the current block can be generated using the line-wise DC prediction mode in the vertical direction. Alternatively, if the horizontal and vertical sizes of the current block are the same, the prediction block for the current block can be generated using the conventional DC prediction mode.
- Figure 45 illustrates a plane prediction method in vertical or horizontal line units according to one embodiment of the present invention.
- the position of the reference reference pixel used may vary for each horizontal line.
- the first horizontal line of the current block (pixels indicated as 1 in Fig. 45(a)) can be predicted using pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 45) and the A pixel.
- the second horizontal line of the current block (pixels indicated as 2 in Fig. 45(a)) can be predicted using pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 45) and the B pixel.
- the line-by-line planar prediction mode can be divided into a vertical direction planar mode, a horizontal direction planar mode, and a mode that weights the average of prediction blocks in the vertical and horizontal directions. If the horizontal size of the current block is larger than the vertical size, since the number of pixels adjacent to the current block upwardly is larger, the video signal processing device can generate a prediction block for the current block using the vertical direction planar mode. If the vertical size of the current block is larger than the horizontal size, since there are more pixels adjacent to the left side of the current block, the video signal processing device can generate a prediction block for the current block using the planar mode in the vertical direction. If the horizontal and vertical sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the conventional planar mode.
- Figure 46 illustrates a sub-block unit prediction method using a planar mode according to one embodiment of the present invention.
- a video signal processing device can divide a current block into sub-blocks of an arbitrary designated size (MxN), and then perform prediction on a sub-block basis using a planar mode.
- positions of reference pixels for prediction (1, 2, 3, 4 in Fig. 46) may vary for each sub-block.
- a current block may be divided into four sub-blocks of MxN size.
- Positions of reference pixels may be determined based on the upper left position of the current sub-block and/or the horizontal and vertical sizes of the current sub-block.
- positions of reference reference pixels of the upper left sub-block may be 1 and 3
- positions of reference reference pixels of the upper right sub-block may be 2 and 3
- positions of reference reference pixels of the lower left sub-block may be 1 and 4
- positions of reference reference pixels of the lower right sub-block may be 2 and 4.
- the video signal processing device can generate a prediction value for the pixel indicated by X by performing a weighted average of a value generated using the V pixel value and the reference reference pixel 3 and a value generated using the H pixel value and the reference reference pixel 2.
- FIG. 46(b) shows prediction in the horizontal direction planar mode in units of sub-blocks. For example, when a prediction block for the lower left sub-block of Fig. 46(b) is generated, if the horizontal direction planar mode is used, the video signal processing device can generate a prediction value for the pixel indicated by X by performing a weighted average of a value generated using the H pixel value and the reference reference pixel 1.
- Fig. 46(c) shows prediction in the vertical direction planar mode in units of sub-blocks. For example, when a prediction block for the upper right sub-block of Fig. 46(c) is generated, if the vertical plane mode is used, the video signal processing device can generate a prediction value for the pixel indicated by X by weighting and averaging the values generated using the V pixel value and the reference reference pixel 3.
- a video signal processing device can determine which planar mode among a horizontal planar mode, a vertical planar mode, and a conventional planar mode is applied to each sub-block based on at least one of: a horizontal or vertical size of a current block, a ratio of the horizontal and vertical sizes of the current block, whether the current block is a luminance component block or a chrominance component block, quantization parameter information, intra prediction directional mode information of blocks surrounding the current block, a position of a sub-block, and intra prediction directional mode information derived from pixels surrounding the current block using DIMD.
- the video signal processing device can generate a prediction block of the sub-block by applying a vertical planar mode. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is less than an arbitrary value, the video signal processing device can generate a prediction block of the sub-block by applying a horizontal planar mode.
- the arbitrary value can be an integer and can be 34, which is an index of a diagonal mode (angle mode 34 of FIG. 6).
- the DIMD information derived from the surrounding pixels of the current block can include a first intra prediction directional mode, a second intra prediction directional mode, and information on whether to perform weighted prediction. If the DIMD information derived from the surrounding pixels of the current block indicates that weighted prediction is not performed, the video signal processing device can generate a prediction block of each sub-block by using a conventional planar mode.
- a planar mode used to generate a prediction block of each sub-block can be determined.
- the video signal processing device can generate a prediction block of an upper-left sub-block using a conventional planar mode, can generate a prediction block of an upper-right sub-block using a vertical planar mode, can generate a prediction block of a lower-left sub-block using a horizontal planar mode, and can generate a prediction block of a lower-right sub-block using a conventional flat mode.
- a planar mode prediction method per sub-block can be applied only when a vertical or horizontal planar mode is applied to the current block.
- a video signal processing device can generate a prediction block of the current block using the conventional planar mode.
- a vertical or horizontal planar mode is used for the current block, a video signal processing device can divide the current block into sub-blocks and generate a prediction block of each sub-block using the vertical or horizontal planar mode.
- the first horizontal line of the current block (pixels indicated as 1 in Fig. 44(a)) can be predicted using the pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 44) and the A pixel.
- the second horizontal line of the current block (pixels indicated as 2 in Fig. 44(a)) can be predicted using the pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 44) and the B pixel.
- the line-by-line planar mode can be divided into a vertical planar mode, a horizontal planar mode, and a weighted-average prediction mode of prediction blocks in the vertical and horizontal directions.
- the video signal processing device can generate a prediction block for the current block using the vertical planar mode. If the vertical size of the current block is larger than the horizontal size, since there are more pixels adjacent to the left side of the current block, the video signal processing device can generate a prediction block for the current block using the horizontal planar mode. If the horizontal and vertical sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the conventional planar mode.
- the video signal processing device may generate the prediction block using the vertical planar mode, generate the prediction block using the horizontal planar mode, and generate the final prediction block by weighting and averaging the respective prediction blocks.
- the weights may be the same or different. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to an arbitrary value, the weight of the block predicted using the vertical planar mode may be the largest. The weight of the block predicted using the vertical planar mode may be 3, and the weight of the block predicted using the horizontal planar mode may be 1.
- the weight of the block predicted using the horizontal planar mode may be the largest.
- the weight of the block predicted by the horizontal planar mode may be 3, and the weight of the block predicted by the vertical planar mode may be 1.
- any value is an integer, and may be 34, which is an index of the diagonal mode (angle mode 34 in FIG. 6).
- DIMD information derived from surrounding pixels of the current block may include a first intra prediction directional mode, a second intra prediction directional mode, and information on whether to perform weighted prediction. If the DIMD information derived from surrounding pixels of the current block indicates that weighted prediction is not applied, the video signal processing device may apply the same weight to each prediction block.
- the prediction block generated using the vertical direction planar mode and the prediction block generated using the horizontal direction planar mode may be generated using a sub-block-based planar mode prediction method.
- Prediction using the DC mode has a problem of generating discontinuous edges at the boundary between blocks at low bit rates.
- a video signal processing device can perform compensation on a prediction block of a current block generated using the DC mode by adding an arbitrary offset value.
- information on the arbitrary offset value can be explicitly signaled by being included in a bitstream or can be implicitly derived from neighboring pixel values adjacent to the current block.
- a decoder can perform compensation on a prediction block of the current block based on an offset value obtained by parsing information on the arbitrary offset value.
- the decoder can perform compensation on a prediction block of the current block by deriving an offset value from neighboring pixel values adjacent to the current block.
- a prediction block of the current block can be generated by weighting an average of a block predicted using the planar mode and a block predicted using the DC mode.
- the three planar modes or the three DC modes can be derived based on the templates.
- the video signal processing device can construct a reference template including reconstructed neighboring blocks adjacent to the current block (see FIG. 23). Then, the video signal processing device can construct a prediction template for the three planar modes using reference pixels around the reference template. After calculating a cost between the reference template and the prediction template, the video signal processing device can generate a prediction block of the current block using the planar prediction mode indicating the minimum cost.
- the video signal processing device can configure a reference template including reconstructed surrounding blocks adjacent to the current block (see FIG. 23). And the video signal processing device can configure a prediction template for three planar modes using reference pixels around the reference template. The video signal processing device can calculate a cost between the reference template and the prediction template, and then configure a list for planar modes based on the cost. At this time, a planar mode with the smallest cost can be located at the beginning of the list, and the list can be configured in ascending order according to the cost.
- the encoder can generate and signal a bitstream including index information on an optimal planar mode for generating a prediction block of the current block among the planar modes in the list.
- the decoder can generate a prediction block of the current block using the planar mode determined by parsing the index information.
- the above-described template-based planar mode induction method can be equally applied to the three DC modes.
- Figure 47 illustrates an intra prediction method based on bidirectional prediction according to one embodiment of the present invention.
- pixels on the left or upper side of the current block can be effectively predicted because they are adjacent to the surrounding pixels of the restored current block.
- pixels on the right or lower side of the current block have low prediction efficiency because the surrounding pixels have not yet been restored.
- the distance from the reference pixel increases as the pixel is located at the lower right of the current block, so the error signal increases.
- the video signal processing device can restore only one pixel located at the lower right of the current block in advance, and then generate a prediction block of the current block based on the restored lower right pixel and the surrounding pixels adjacent to the current block.
- the pixel located at the lower right of the current block can be predicted and encoded from the pixels adjacent to the current block, and information on the difference value, which is the difference between the pixel value located at the lower right of the current block and the predicted value, can be included in the bitstream and signaled.
- the decoder can reconstruct the pixel located at the lower right of the current block by using the differential value determined by parsing the information about the differential value.
- the video signal processing device can generate a prediction block of the current block by using the pixels adjacent to the current block and one pixel located at the lower right of the current block.
- the video signal processing device can predict the right pixels (pixels indicated by 1 in FIG. 47) and lower pixels (pixels indicated by 2 in FIG. 47) of the current block by using the pixels adjacent to the current block and one pixel located at the lower right of the current block, and then generate a prediction block of the current block by using the pixels adjacent to the current block and the lower pixels and right pixels in the current block.
- a method of quantizing the transform coefficient values obtained by transforming the residual signal and coding the quantized transform coefficients can be used.
- the transform unit can obtain the transform coefficient values by transforming the residual signal.
- the residual signal of a specific block can be distributed over the entire area of the current block. Accordingly, the coding efficiency can be improved by concentrating energy in the low-frequency area through frequency domain transformation of the residual signal.
- the encoder can obtain at least one residual block containing a residual signal for the current block.
- the residual block can be either the current block or one of the blocks split from the current block.
- the residual block can be described as a residual array or a residual matrix containing residual samples of the current block.
- the residual block can represent a block having the same size as the size of a transform unit or a transform block.
- the encoder can transform the residual block using a transform kernel.
- the transform kernel used for transforming the residual block can be a transform kernel having separable characteristics of vertical transform and horizontal transform.
- the transform for the residual block can be performed separately as vertical transform and horizontal transform.
- the encoder can perform vertical transform by applying the transform kernel in the vertical direction of the residual block.
- the encoder can perform horizontal transform by applying the transform kernel in the horizontal direction of the residual block.
- the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, and a transform.
- the transform kernel may be any one of a plurality of available kernels.
- transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform. That is, before performing the first transformation, the transformation method for the vertical and horizontal directions can be derived using at least one or more of the intra prediction mode of the current block, the encoding mode, the transformation method parsed from the bitstream, and the size information of the current block.
- a process of leaving only the low-frequency region and processing the high-frequency region as '0' can be performed. This process is called high-frequency zeroing, and the transformation size at the time of the actual first transformation can be set for this zeroing.
- the low-frequency region can be set to an arbitrary fixed size, and for example, the horizontal or vertical sizes can be a combination of 4, 8, 16, 32, etc.
- the encoder can quantize the transform block transformed from the residual block by transferring it to the quantization unit.
- the transform block can include a plurality of transform coefficients.
- the transform block can be composed of a plurality of transform coefficients arranged in two dimensions.
- the size of the transform block can be the same as that of the current block or one of the blocks split from the current block, similar to the residual block.
- the transform coefficients transferred to the quantization unit can be expressed as quantized values.
- the encoder may perform an additional transform before the transform coefficients are quantized.
- the above-described transform method may be referred to as a primary transform, and the additional transform may be referred to as a secondary transform.
- the secondary transform may be optional for each residual block.
- the encoder may perform the secondary transform for a region where it is difficult to concentrate energy in a low-frequency region with only the primary transform, thereby improving coding efficiency.
- the secondary transform may be added for a block in which the residual values appear largely in a direction other than the horizontal or vertical direction of the residual block.
- the residual values of the intra-predicted block may have a higher probability of changing in a direction other than the horizontal or vertical direction compared to the residual values of the inter-predicted block.
- the encoder may additionally perform the secondary transform on the residual signal of the intra-predicted block.
- the encoder may omit the secondary transform on the residual signal of the inter-predicted block. High-frequency zeroing in the first conversion can also be performed in the second conversion process.
- whether to perform a secondary transform may be determined based on the size of the current block or the remaining block.
- different sizes of transform kernels may be used based on the size of the current block or the remaining block.
- an 8X8 secondary transform may be applied to a block whose shorter side among the width or the height is greater than or equal to a first preset length.
- a 4X4 secondary transform may be applied to a block whose shorter side among the width or the height is greater than or equal to a second preset length and less than the first preset length.
- the first preset length may be a value greater than the second preset length, but the present disclosure is not limited thereto.
- the secondary transform may not be performed separately into a vertical transform and a horizontal transform.
- Such a secondary transform may be referred to as a low frequency non-separable transform (LFNST).
- the transform for the residual signal of the specific area may be omitted.
- the syntax element may include transform skip information.
- the transform skip information may be a transform skip flag. If the transform skip information for the residual block indicates a transform skip, the transform for the corresponding residual block is not performed. In this case, the encoder can immediately quantize the residual signal for which the transform of the corresponding area is not performed.
- transformation-related syntax elements may be information parsed from a video signal bitstream.
- a decoder may entropy decode a video signal bitstream to obtain transformation-related syntax elements.
- an encoder may entropy code transformation-related syntax elements to generate a video signal bitstream.
- the decoder can obtain encoding information necessary for decoding by parsing the transmitted bitstream.
- information related to the transformation process includes index information for the first and second transformation types and quantized transformation coefficients.
- the inverse transformation unit can obtain a residual signal by inversely transforming the inverse quantized transformation coefficients.
- the inverse transformation unit can detect whether inverse transformation is performed for a specific region from a transformation-related syntax element of the specific region. According to one embodiment, if a transformation-related syntax element for a specific transformation block indicates transformation skip, transformation for the corresponding transformation block can be omitted. In this case, both the first inverse transformation and the second inverse transformation can be omitted for the transformation block.
- the inverse quantized transformation coefficients can be used as a residual signal.
- the decoder can restore the current block by using the inverse quantized transformation coefficients as a residual signal.
- the second inverse transform may be performed and the first inverse transform may be omitted, and the second inverse transformed value may be used as the residual signal.
- the first inverse transform described above represents an inverse transform for the first transform and may be referred to as an inverse primary transform.
- the second inverse transform represents an inverse transform for the second transform and may be referred to as an inverse secondary transform or inverse LFNST.
- the first (inverse) transform may be referred to as a first (inverse) transform
- the second (inverse) transform may be referred to as a second (inverse) transform.
- Figure 48 shows types of transform kernels that can be used for video coding according to one embodiment of the present invention.
- Fig. 48 shows formulas of DCT-II, DCT-V (discrete cosine transform type-V), DCT-VIII (discrete cosine transform type-VIII), DST-I (discrete sine transform type-I), and DST-VII kernels applied to MTS.
- DCT and DST can be expressed as functions of cosine and sine, respectively, and when the basis function of the transform kernel for the number of samples N is expressed as Ti(j), the index i represents an index in the frequency domain, and the index j represents an index within the basis function. That is, as i becomes smaller, it represents a low-frequency basis function, and as i becomes larger, it represents a high-frequency basis function.
- the basis function Ti(j) When the basis function Ti(j) is expressed as a two-dimensional matrix, it can represent the j-th element of the i-th row, and since the transform kernels illustrated in Fig. 48 all have a separable characteristic, they can perform transformations in the horizontal and vertical directions respectively for the residual signal X. That is, when the residual signal block is X and the transform kernel matrix is T, the transform for the residual signal X can be expressed as TXT'.
- T' means the transpose of the transform kernel matrix T. Since DCT and DST are in decimal form, not integer form, it is burdensome to implement them as they are in the hardware encoder and decoder. Therefore, the decimal form transform kernel must be approximated to an integer form transform kernel through scaling and rounding.
- IDTR Identity Transform
- identity transformation constructs a transformation matrix by setting '1' at positions where rows and columns have the same value.
- identity transformation uses an arbitrary fixed value, not the value '1', to increase or decrease the value of the input residual signal equally.
- a bitstream consists of one or more coded video sequences (CVSs), and a CVS is encoded independently of other CVSs.
- CVS consists of one or more layers, and each layer can represent a specific quality, a specific resolution, or a general image, a depth map, or a transparency map.
- a coded layer video sequence means a layer-wise CVS composed of consecutive (in decoding order) PUs within the same layer. For example, there may be a CLVS for a specific quality layer, and there may be a CLVS for a depth map.
- Figures 49 and 50 illustrate a portion of a sequence parameter set according to one embodiment of the present invention.
- Figure 49 illustrates how to signal in SPS a syntax element indicating whether vertical plane mode and horizontal plane mode are enabled. Also, Figure 45 illustrates how to signal in SPS whether the method of explicitly signaling three DC prediction modes is enabled.
- sps_directional_planar_enabled_flag When the value of sps_directional_planar_enabled_flag in Fig. 49 is 1 (true), it can indicate that the vertical planar mode and the horizontal planar mode are enabled. When the value of sps_directional_planar_enabled_flag is 0 (false), it can indicate that the vertical planar mode and the horizontal planar mode are disabled. That is, the vertical planar mode and the horizontal planar mode are not used for all blocks. When sps_directional_planar_enabled_flag is not parsed (not included in the bitstream), the value of sps_directional_planar_enabled_flag can be inferred as 0.
- sps_directional_planar_enabled_flag 1 specifies that the vertical planar and the horizontal planar mode is enabled for the CLVS.
- sps_directional_planar_enabled_flag 0 specifies that the vertical planar and the horizontal planar mode is disabled for the CLVS.
- sps_directional_planar_enabled_flag not present, it is inferred to be equal to 0.
- syntax elements indicating whether the vertical planar mode and the horizontal planar mode are enabled can also be signaled in the PPS. That is, whether the vertical planar mode and the horizontal planar mode are enabled can vary for each picture and/or frame depending on the syntax elements signaled in the PPS (e.g., pps_directional_planar_enabled_flag).
- sps_directional_DC_enabled_flag When the value of sps_directional_DC_enabled_flag in FIG. 49 is 1 (true), it can indicate that a method of explicitly signaling the three DC prediction modes is enabled. When the value of sps_directional_DC_enabled_flag is 0 (false), it can indicate that a method of explicitly signaling the three DC prediction modes is not enabled. When sps_directional_DC_enabled_flag is not parsed (not included in the bitstream), the value of sps_directional_DC_enabled_flag can be inferred to be 0.
- sps_directional_DC_enabled_flag 1 specifies that the explicit vertical DC and the explicit horizontal DC mode is enabled for the CLVS.
- sps_directional_DC_enabled_flag 0 specifies that the explicit vertical DC and the explicit horizontal DC mode is disabled for the CLVS.
- sps_directional_DC_enabled_flag not present, it is inferred to be equal to 0.
- FIG. 50 illustrates a method of signaling in an SPS a syntax element indicating whether a method of generating a prediction block using multiple reference pixel lines described through FIGS. 25 to 29 is activated.
- the method of generating a prediction block using multiple reference pixel lines may be described as intra fusion.
- sps_intra_fusion_enabled_flag If the value of sps_intra_fusion_enabled_flag in FIG. 50 is 1 (true), it can indicate that intra fusion is enabled. If the value of sps_intra_fusion_enabled_flag is 0 (false), it can indicate that intra fusion is disabled. That is, intra fusion is not performed on any blocks. If sps_intra_fusion_enabled_flag is not parsed (not included in the bitstream), the value of sps_intra_fusion_enabled_flag can be inferred as 0.
- sps_intra_fusion_enabled_flag 1 specifies that the intra fusion method is enabled for the CLVS.
- sps_intra_fusion_enabled_flag 0 specifies that intra fusion method is disabled for the CLVS.
- sps_intra_fusion_enabled_flag not present, it is inferred to be equal to 0.
- a syntax element indicating whether intra fusion is enabled can also be signaled in the PPS. That is, whether intra fusion is enabled can vary for each picture and/or frame depending on the syntax element signaled in the PPS (e.g., pps_intra_fusion_enabled_flag).
- FIG. 51 illustrates a portion of the general_constraint_info() syntax structure according to one embodiment of the present invention.
- FIG. 51 shows constraint flags related to vertical plane mode, horizontal plane mode, intra fusion, and explicit directional DC mode.
- the general_constraint_info() syntax of FIG. 51 can be called from the profile_tier_level() syntax.
- the profile_tier_level() syntax can be called from the sequence parameter set RBSP syntax, the video parameter set RBSP syntax, and the decoding capability information RBSP syntax.
- Individual syntax elements of the general_constraint_info() syntax may have corresponding syntax elements in the sequence parameter set RBSP, and whether the corresponding sequence parameter set RBSP syntax element is activated/deactivated may be constrained by the definition of the corresponding flag.
- Constraint flags related to vertical planar mode and horizontal planar mode can be gci_no_directional_planar_constraint_flag.
- gci_no_directional_planar_constraint_flag If the value of gci_no_directional_planar_constraint_flag is equal to 1, the value of sps_directional_planar_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, disabling of vertical planar mode and horizontal planar mode can be constrained (forced). If the value of gci_no_directional_planar_constraint_flag is equal to 0, the value of sps_directional_planar_enabled_flag is not constrained.
- gci_no_directional_planar_constraint_flag 1 specifies that sps_directional_planar_enabled_flag for all pictures in OlsInScope shall be equal to 0.
- gci_no_directional_planar_constraint_flag 0 does not impose such a constraint.
- the constraint flag associated with explicit directional DC mode can be gci_no_directional_DC_constraint_flag.
- gci_no_directional_DC_constraint_flag If the value of gci_no_directional_DC_constraint_flag is equal to 1, the value of sps_directional_DC_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, the disabling of explicit directional DC mode can be constrained (forced). If the value of gci_no_directional_DC_constraint_flag is equal to 0, the value of sps_directional_DC_enabled_flag is not constrained.
- gci_no_directional_DC_constraint_flag 1 specifies that sps_directional_DC_enabled_flag for all pictures in OlsInScope shall be equal to 0.
- gci_no_directional_DC_constraint_flag 0 does not impose such a constraint.
- the constraint flag related to intra fusion can be gci_no_intra_fusion_constraint_flag.
- gci_no_intra_fusion_constraint_flag If the value of gci_no_intra_fusion_constraint_flag is equal to 1, the value of sps_intra_fusion_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, disabling of intra fusion can be constrained (forced). If the value of gci_no_intra_fusion_constraint_flag is equal to 0, the value of sps_intra_fusion_enabled_flag is not constrained to 0.
- gci_no_intra_fusion_constraint_flag 1 specifies that sps_intra_fusion_enabled_flag for all pictures in OlsInScope shall be equal to 0.
- gci_no_intra_fusion_constraint_flag 0 does not impose such a constraint.
- a video signal processing device When a video signal processing device generates a prediction block for a current block, it can use a multi-prediction mode that weights and averages two or more intra prediction blocks.
- the two intra prediction directional modes can be implicitly determined from a neighboring block or an MPM list. In a block that is not in the DIMD or TIMD mode, the two intra prediction directional modes can be signaled from the bitstream, but this may increase the bit amount and lower the compression efficiency.
- the intra prediction directional mode to be included in each item of the list may be set to two or more instead of one.
- FIG. 52 illustrates a method of constructing an MPM list using a multi-prediction mode according to one embodiment of the present invention.
- A, B, C, ..., F, G can represent any intra prediction directional mode, one of MIP, Intra TMP, IBC, DIMD, TIMD, and “N/A” indicates that it is not used, and the 4th and 5th in the MPM list can be configured with only one intra prediction directional mode, not a multi-prediction mode.
- a single prediction mode can be added first to the MPM list and then a multi-prediction mode can be added next, and “N/A” indicates that it is not used, and the 1st and 2nd in the MPM list can be configured with only one intra prediction directional mode, not a multi-prediction mode.
- An encoder can adaptively signal, on a block-by-block basis, in the bitstream information on whether to use an MPM list consisting of only one intra-prediction directional mode (a single-prediction-based MPM list) or a multi-prediction-based MPM list.
- a decoder can parse the information on whether to use an MPM list consisting of only one intra-prediction directional mode (a single-prediction-based MPM list) or a multi-prediction-based MPM list to determine which MPM list is used to generate a prediction block for the current block.
- the video signal processing device can determine whether to use a multi-prediction-based MPM list by using at least one of the horizontal or vertical size of the current block, the ratio of the horizontal and vertical sizes of the current block, whether the current block is a luminance block or a chrominance block, quantization parameter information, intra prediction directional mode information of blocks surrounding the current block, and encoding mode information of the current block.
- the encoding efficiency can vary, and various methods can be applied, as follows.
- the video signal processing device can first configure a single prediction-based MPM list, and then configure a multi-prediction-based MPM list using the single prediction-based MPM list. For example, the video signal processing device can configure a multi-prediction-based MPM list by combining each intra-prediction directional mode in the single prediction-based MPM list. At this time, the video signal processing device can reorder the single prediction-based MPM list using a template cost-based reordering method used in the TIMD method. The video signal processing device can configure the multi-prediction-based MPM list only by using a combination of a first intra-prediction directional mode and intra-prediction directional modes other than the first of the reordered single prediction-based MPM list.
- the video signal processing device can construct a multi-prediction-based MPM list by using combinations of intra-prediction directional modes derived from DIMD and single-prediction-based MPM lists. For example, the video signal processing device can combine a first intra-prediction directional mode derived from DIMD with a first intra-prediction directional mode within a single-prediction-based MPM list and add it to a first of the multi-prediction-based MPM list. Further, the video signal processing device can combine a second intra-prediction directional mode derived from DIMD with the first intra-prediction directional mode within a single-prediction-based MPM list and add it to a second of the multi-prediction-based MPM list.
- the video signal processing device can combine a first intra-prediction directional mode derived from DIMD with a second intra-prediction directional mode within a single-prediction-based MPM list and add it to a third of the multi-prediction-based MPM list. In this way, the video signal processing device can construct a multi-prediction-based MPM list by using all possible combinations.
- the video signal processing device can configure a multi-prediction-based MPM list by using multiple predefined multi-prediction modes.
- the multiple predefined multi-prediction modes can be (18, 0), (50, 0), (34, 0), (2, 0), (66, 0), (18, 1), (50, 1), (34, 1), (2, 1), (66, 1), etc., and X and Y in "(X, Y)" can be the intra prediction directional mode (indices) of FIG. 6.
- a video signal processing device can reorder a multi-prediction-based MPM list using a TIMD-based reordering method.
- the video signal processing device can reorder a multi-prediction-based MPM list using only a few low-cost items.
- the intra prediction mode used to generate each prediction block can be signaled based on the Primary MPM and the Secondary MPM.
- the Primary MPM can include six intra prediction directional modes
- the Secondary MPM can include 16 intra prediction directional modes.
- the Secondary MPM can be configured using several predefined intra prediction modes. For example, if the prediction modes of DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16 (see the intra prediction mode of FIG.
- the video signal processing device can configure the list of Secondary MPMs by sequentially adding the prediction modes of DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16 until the list of Secondary MPMs is completely configured.
- a video signal processing device can determine an intra prediction directional mode used for generating a prediction block of the current block by deriving one intra prediction directional mode from a Primary MPM and another intra prediction directional mode from a Secondary MPM, when multiple prediction modes are used for the current block.
- an encoder can signal which intra prediction directional mode is used in the Primary MPM and the Secondary MPM by including index information in a bitstream.
- a decoder can determine the intra prediction directional modes used for generating the prediction blocks for the current block, within a Primary MPM and a Secondary MPM list, after parsing the index information.
- the video signal processing device can determine intra prediction directional modes used to generate prediction blocks of the current block using the intra prediction directional mode derived from the DIMD, the Primary MPM, and the Secondary MPM.
- the encoder can signal by including information on whether the intra prediction directional mode derived from the DIMD is used and index information indicating which intra prediction directional mode is used within the Primary MPM and the Secondary MPM in a bitstream.
- the decoder can determine intra prediction directional modes used to generate prediction blocks for the current block by parsing information on whether the intra prediction directional mode derived from the DIMD is used and index information indicating which intra prediction directional mode is used within the Primary MPM and the Secondary MPM.
- the video signal processing device can configure a secondary MPM list as a multi-prediction-based MPM list using the primary MPM list. For example, if the primary MPM modes generated from the surrounding blocks are Planar, 18, 54, 30, 45, 17, modes such as Planar+18, Planard+54, etc. can be added to the secondary MPM list to configure a multi-prediction-based MPM list.
- the encoder can configure a secondary MPM list as a multi-prediction-based MPM list using the primary MPM list, and then determine a multi-prediction mode used to generate a prediction block of the current block from the secondary MPM list, and signal it by including index information for the determined secondary MPM list in the bitstream.
- the decoder can parse the index information to determine a multi-prediction mode used to generate a prediction block of the current block from the secondary MPM list.
- the video signal processing device can configure a secondary MPM list as a multi-prediction-based MPM list by using the intra-prediction directional mode derived from DIMD and the primary MPM list.
- the primary MPM modes generated from the surrounding blocks are Planar, 18, 54, 30, 45, 17, the list of secondary MPMs can be configured as a multi-prediction-based MPM list by adding modes such as Planar+18, Planard+54, etc.
- the encoder can configure a secondary MPM list as a multi-prediction-based MPM list by using the intra-prediction directional mode derived from DIMD and the primary MPM list.
- the encoder can determine a multi-prediction mode used for generating a prediction block of the current block from the list of secondary MPMs, and can signal index information for the determined list of secondary MPMs by including it in a bitstream.
- the decoder can determine the multiple prediction modes to be used to generate the prediction block of the current block from the list of Secondary MPMs by parsing the index information.
- the video signal processing device can determine the positions of reference pixels used to generate each prediction block, respectively. That is, the video signal processing device can designate a left reference pixel line and an upper reference pixel line used to generate each prediction block, respectively, from among various reference pixel lines (see FIG. 31).
- the encoder can include position information of the left reference pixel line and the upper reference pixel line in a bitstream and signal them.
- the decoder can parse each position information to determine the positions of the left reference pixel line and the upper reference pixel line used to generate each prediction block, respectively.
- FIG. 53 shows the locations of reference pixels used when a prediction block is generated using a multi-prediction mode according to one embodiment of the present invention.
- the video signal processing device when a prediction block is generated by using the first intra prediction directional mode among the multiple prediction modes, the video signal processing device can generate the prediction block by using only the left reference pixel of the current block.
- the video signal processing device when a prediction block is generated by using the second intra prediction directional mode among the multiple prediction modes, the video signal processing device can generate the prediction block by using only the upper reference pixel of the current block.
- the first intra prediction directional mode can only use modes with numbers less than 34 among the intra prediction directional modes of FIG. 6, and the second intra prediction directional mode can only use modes with numbers greater than or equal to 34 among the intra prediction directional modes of FIG. 6. Accordingly, when a multiple prediction-based MPM list is configured, the first intra prediction directional mode can only use modes with numbers less than 34, and the second intra prediction directional mode can only use modes with numbers greater than or equal to 34.
- the video signal processing device can designate a left reference pixel line and an upper reference pixel line used for generating each prediction block, respectively.
- the encoder can include the position information of the left reference pixel line and the position information of the upper reference pixel line in the bitstream and signal them.
- the decoder can parse each position information to determine the positions of the left reference pixel line and the upper reference pixel line used for generating each prediction block.
- the position information of the upper reference pixel line can be derived from the position information of the left reference pixel line, and the position information of the upper reference pixel line and the position information of the left reference pixel line can be the same.
- the encoder can include only the difference value with the position information of the left reference pixel line in the bitstream and signal it.
- the decoder can parse the position information of the left reference pixel line, parse the difference value with respect to the position information of the upper reference pixel line, and then determine the position information of the upper reference pixel line through the difference value with respect to the position information of the left reference pixel line and the position information of the upper reference pixel line.
- a transform set for the secondary transform can be determined based on two intra prediction directional modes.
- one of the two intra prediction directional modes can be used to select the primary transform or the secondary transform set, and the first intra prediction directional mode can be used.
- the encoder can signal information about which of the two intra prediction directional modes is to be used to derive the primary transform or the secondary transform set by including it in the bitstream.
- the decoder can parse the information about which of the two intra prediction directional modes is to be used to derive the primary transform or the secondary transform set, and determine the intra prediction directional mode used to derive the primary inverse transform or the secondary inverse transform set for the current error block.
- the video signal processing device may determine the intra prediction directional mode used to derive the first transform (inverse transform) or second transform (inverse transform) set as a predefined mode.
- the predefined mode may be a Planar mode, a DC mode, etc.
- the video signal processing device may not perform PDPC on a prediction block to which the multi-prediction mode is applied.
- the video signal processing device may perform PDPC on a prediction block to which the multi-prediction mode is applied based on a first intra-prediction directional mode among two intra-prediction directional modes.
- the video signal processing device may perform a first PDPC on a prediction block to which the multi-prediction mode is applied based on the first intra-prediction directional mode among two intra-prediction directional modes, and then perform a second PDPC on a prediction block to which the multi-prediction mode is applied based on the second intra-prediction directional mode.
- a video signal processing device can signal DC selection information indicating which DC prediction mode among three DC prediction modes is used by integrating it with plane selection information. That is, DC prediction modes in three directions can be explicitly signaled.
- An encoder can signal the plane selection information by including it in a bitstream only under certain conditions, and a decoder can set an intra prediction directional mode for a current block by parsing the plane selection information only under certain conditions, and can generate a prediction block for the current block using the set intra prediction directional mode.
- the certain conditions can be conditions related to the horizontal and vertical sizes of the current block, the ratio of the horizontal and vertical sizes of the current block, whether the horizontal and vertical sizes of the current block are the same, whether the intra prediction directional mode of the current block is a certain mode (e.g., whether it is a planar mode, DC, HOR, VER, etc.), whether the coding mode of the current block is a DIMD, TIMD, IntraTMP, IBC, ISP, or MIP coding mode, and conditions related to index information of a reference pixel line used when generating a prediction block for the current block.
- a video signal processing device can determine whether to encode and decode at least one of the plane selection information and the DC selection information in various ways by using at least one of specific conditions as follows.
- the encoder can additionally include information about at least one of the plane selection information and the DC selection information in a bitstream and signal it, and the decoder can additionally parse information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block.
- the encoder may additionally signal at least one of the plane selection information and the DC selection information in the bitstream, and the decoder may additionally parse the information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block.
- the size of the minimum transform block may be an integer, such as 4 or 8.
- the size of the maximum transform block may be an integer, such as 64, 128, 256, and so on.
- the encoder may additionally signal at least one of the plane selection information and the DC selection information in the bitstream, and the decoder may additionally parse the information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block.
- FIG. 54 illustrates a method for a video signal processing device according to an embodiment of the present invention to parse planar mode selection information and DC mode selection information from a bitstream.
- b in Fig. 54 is a variable that is initially set to 0, and 'decodeBinX()' can be a function that outputs one bin value after entropy decoding the bitstream using CABAC. 'decodeBinX()' can output a value of 0 or 1.
- the decoder can perform the parsing process described in Fig. 50 only when the intra prediction directional mode of the current block is the planar mode (the existing planar prediction mode, when the index of the intra prediction directional mode is '0').
- plIdx in Fig. 54 is a variable indicating the planar prediction mode
- dcIdx may be a variable indicating the DC prediction mode. If the value of plIdx is 0, it may indicate the existing planar prediction mode. If the value of plIdx is 1, it may indicate a horizontal linear planar prediction mode (Horizontal Planar), and if the value of plIdx is 2, it may indicate a vertical linear planar prediction mode (Vertical Planar).
- the value of dcIdx is 0, it may indicate the existing DC mode (a mode selected from among the DC mode using the average of the left pixel values according to the horizontal and vertical sizes of the current block, the DC mode using the average of the upper pixel values, and the DC mode using the average of the left and upper pixel values). If the value of dcIdx is 1, it can indicate the DC mode (Horizontal DC mode or left DC mode) that uses the average of the left pixel values. If the value of dcIdx is 2, it can indicate the DC mode (Vertical DC mode or above DC mode) that uses the average of the upper pixel values.
- the existing DC mode indicated when the value of dcIdx is 0 can be signaled using the existing method via the MPM list.
- the video signal processing device can repeatedly use CABAC, perform entropy decoding (decodeBin()), add the obtained (output) value to the temporary variable 'b', and then set the intra prediction mode for the current block according to the value of 'b'. If the value of 'b' decoded by decodeBin1() for the first time is 0, the video signal processing device can set the intra prediction mode for the current block to the existing planar prediction mode.
- the decoder adds the value decoded by the next decodeBin2() to 'b', and if the value of 'b' is 1, the intra prediction mode for the current block can be set to the horizontal planar linear prediction mode (Horizontal Planar).
- the video signal processing device can set the intra prediction mode for the current block to a vertical planar linear prediction mode (Vertical Planar) after adding the value decoded by decodeBin3() to 'b' if the value of the decoded 'b' is greater than 1, and if the value of 'b' is 2, the video signal processing device can set the intra prediction mode for the current block to a DC mode (Horizontal DC, dcIdx set to '1') using the average of the left pixel values if the value of 'b' is greater than 2, and if the value of 'b' is added to 'b' if the value of b is '3'.
- the video signal processing device can set the intra prediction mode for the current block to a DC mode (Vertical DC, dcIdx set to '2') using the average of the upper pixel values if the value of 'b' is greater than 3.
- the video signal processing device can set the value of dcIdx for the DC mode (Vertical DC) that uses the average of the upper pixel values to 1, and can set the value of dcIdx for the DC mode (Horizontal DC) that uses the average of the left pixel values to 2. If the dcIdx value is changed, the method of setting the intra prediction mode by the parsing process of Fig. 54 can also be changed as follows.
- the video signal processing device can set the intra prediction mode for the current block to the DC mode (Vertical DC, dcIdx set to '1') that uses the average of the upper pixel values after adding the value decoded by the next decodeBin4() to 'b' if the value of 'b' is 3.
- the video signal processing device can set the intra prediction mode for the current block to the DC mode (Horizontal DC, dcIdx set to '2') that uses the average of the left pixel values when the value of 'b' is greater than 3.
- the probability models used in the entropy decoding (decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4()) of Fig. 54 may be different from each other.
- entropy decoding for decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4() may be performed using a single probability model.
- FIG. 55 illustrates binarization or bin strings for planar mode selection information and DC mode selection information according to one embodiment of the present invention.
- Binarization and bin string can be used interchangeably, and can be used to convert each syntax into a binary code in the entropy coding and decoding process of CABAC.
- the binarization method can be different for each syntax.
- a variable length method or a fixed length method can be used to generate a binarized bin string.
- the variable length method or the fixed length method can be selected and used. If the probability that an arbitrary symbol of the syntax occurs is the same as the probability that another symbol occurs, the fixed length method can be used. If the probability that an arbitrary symbol of the syntax occurs is significantly higher than the probability that another symbol occurs, the variable length method can be used.
- Fig. 55(a) shows an bin string binarized by a variable length method
- Fig. 55(b) shows an bin string binarized by a fixed length method.
- the binarized bitstream for the planar mode selection information and DC mode selection information used in the method of Fig. 54 may be that used in Fig. 55(a).
- FIG. 56 illustrates a method for generating a prediction block for a current block according to a DC prediction mode according to one embodiment of the present invention.
- the video signal processing device can perform the existing DC prediction method. If the vertical and horizontal sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the average value of all reference pixels on the top and left sides of the current block. If the horizontal size of the current block is larger than the vertical size, the video signal processing device can generate a prediction block for the current block using the average value of the upper reference pixels of the current block. If the vertical size of the current block is larger than the horizontal size, the video signal processing device can generate a prediction block for the current block using the average value of the left reference pixels of the current block.
- a method for generating a prediction block for a current block when the value of dcIdx is not 0 is as follows (5610).
- the video signal processing device can generate a prediction block for the current block using an average value of left reference pixels of the current block.
- the video signal processing device can generate a prediction block for the current block using an average value of upper reference pixels of the current block.
- Figure 57 illustrates a method for determining DC mode selection information according to one embodiment of the present invention.
- An encoder can generate and signal a bitstream including DC mode selection information only when the width and height of the current block are the same.
- a decoder can parse the DC mode selection information included in the bitstream only when the width and height of the current block are the same, and set an intra prediction mode for the current block based on the parsing result.
- the decoder can parse the planar mode selection information and the DC mode selection information based on at least one of the 'b' values and the result of comparing the horizontal size and the vertical size of the current block (e.g., whether they are the same).
- the decoder can set the intra prediction mode for the current block using the 'b' value obtained through the process of Fig. 57(a).
- the value of plIdx may be set to 0 (i.e., the existing planar prediction mode)
- the value of plIdx may be set to 1 (i.e., the linear planar prediction mode in the horizontal direction)
- the value of plIdx may be set to 2 (i.e., the linear planar prediction mode in the vertical direction).
- FIG. 58 illustrates a method for generating a prediction block for a current block according to DC mode selection information according to one embodiment of the present invention.
- the video signal processing device can additionally check DC mode selection information (dcIdx) (5810). If the value of dcIdx is 0, the video signal processing device can generate a prediction block for the current block using the average value of all reference pixels on the top and left of the current block. If the value of dcIdx is 1, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels on the left of the current block. If the value of dcIdx is 2, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels on the top of the current block.
- DC mode selection information dcIdx
- the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the top of the current block. If the vertical size of the current block is greater than the horizontal size, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the left side of the current block.
- planar mode selection information and DC mode selection information can be integrated and described as a unified directional mode in this specification.
- FIG. 59 illustrates a method for generating a prediction block for a current block according to an integrated direction mode according to one embodiment of the present invention.
- the video signal processing device can generate a prediction block for the current block by using the average value of the upper reference pixels of the current block when the integrated direction mode is the DC mode (Above DC mode) or the Vertical DC mode that uses the average of the reference pixel values at the top of the current block.
- the video signal processing device can generate a prediction block for the current block by using the average value of the left reference pixels of the current block when the integrated direction mode is the DC mode (Left DC mode) or the Horizontal DC mode that uses the average of the reference pixel values at the left of the current block (5910).
- the video signal processing device can generate the prediction block for the current block in the conventional DC mode. At this time, if the vertical and horizontal sizes of the current block are the same, the video signal processing device can generate the prediction block for the current block using the average value of all reference pixels on the top and the left side of the current block. If the horizontal size of the current block is larger than the vertical size, the video signal processing device can generate the prediction block for the current block using the average value of the upper reference pixels of the current block. If the vertical size of the current block is larger than the horizontal size, the video signal processing device can generate the prediction block for the current block using the average value of the reference pixels on the left side of the current block.
- FIG. 60 illustrates a binarization or empty string for an integrated direction mode according to one embodiment of the present invention.
- Fig. 60(a) is similar to Fig. 55(a) described above, except that the Horizontal DC mode of Fig. 55(a) is changed to Above DC mode, and the Vertical DC mode of Fig. 55(a) is changed to Left DC mode to represent a binarized empty string.
- the Above DC mode can be implicitly used for generating the prediction block of the current block.
- the encoder may not signal which mode the current block uses among the Above DC mode and the Left DC mode.
- the encoder may only signal information about whether the explicit DC mode is applied when the width of the current block is greater than its height.
- the decoder parses the information about whether the explicit DC mode is applied when the width of the current block is greater than its height, and if the explicit DC mode is applied, it may use the Left DC mode among the Above DC mode and the Left DC mode.
- the encoder can apply both signaling methods for the Above DC and Left DC modes, as shown in Fig. 60(a). If the horizontal and vertical lengths of the current block are the same, the decoder can parse the integrated direction mode, as shown in Fig. 60(a), and set which mode among the Above DC and Left DC modes is applied to the current block.
- FIG. 61 illustrates reference pixels for generating a prediction block for a current block according to one embodiment of the present invention.
- FIG. 61 illustrates a prediction method that is enabled by the Above DC mode and the Left DC mode.
- the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the top of the current block (6110).
- the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the left side of the current block (6120).
- the horizontal length of the current block is greater than the vertical length, the video signal processing device can generate a prediction block for the current block using the average value of the pixels at the left side of the current block (6130).
- the horizontal length of the current block is less than the vertical length, the video signal processing device can generate a prediction block for the current block using the average value of the pixels at the top of the current block (6140).
- the encoder can signal the new DC mode (Above DC mode, Left DC mode) as a sub-mode of the planar mode.
- the decoder can also parse the new DC mode as a sub-mode of the planar mode.
- the prediction mode for the prediction block for the current block can be set to the planar mode.
- the prediction mode for the prediction block can be the new DC mode.
- the video signal processing device derives the transform kernel, if the new DC mode is applied to the current block, the video signal processing device can change the prediction mode to the DC mode when deriving the transform kernel.
- the video signal processing device can use the vertical transform kernel derivation method, and when the prediction mode is the Left DC mode, the video signal processing device can use the horizontal transform kernel derivation method.
- the prediction mode is the Above DC mode
- the video signal processing device can use the horizontal transform kernel derivation method.
- the prediction mode is Left DC mode
- the video signal processing device can use a vertical direction transform kernel derivation method.
- the transform kernel can be a first-order transform kernel and a second-order transform kernel.
- the video signal processing device may obtain filtered reference samples by performing filtering on surrounding samples of the current block and/or reference samples obtained by the reference sample padding process when a new DC mode is applied to the current block. Then, the video signal processing device may predict samples of the current block using the obtained reference samples. Alternatively, filtering on the reference samples may be performed only when the current block is larger than a predetermined size. Alternatively, filtering on the reference samples may be performed only when the current block is smaller than a predetermined size.
- the predetermined size may be expressed as the product of the width and height of the current block, and the predetermined size may be, for example, 32.
- the video signal processing device may predict samples of the current block using reference samples obtained by the surrounding samples of the current block and/or reference samples obtained by the reference sample padding process when a new DC mode is applied to the current block.
- the surrounding samples may include samples on at least one reference line.
- the surrounding samples may include adjacent samples on a line adjacent to a boundary of the current block.
- the intra prediction mode for the neighboring block may be changed from a planar mode to a DC mode and added to the MPM list.
- the video signal processing device derives an MPM list for a current block if a new DC mode is applied to a neighboring block, a DIMD mode derived using the neighboring block may be added to the MPM list.
- the video signal processing device can perform PDPC filtering on the prediction block to generate a filtered prediction block.
- the video signal processing device may not perform PDPC filtering on the prediction block.
- the video signal processing device may perform PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6) or the vertical angle mode (e.g., the 50-degree angle mode of FIG. 6) instead of performing PDPC filtering based on the conventional DC prediction mode.
- the video signal processing device may perform PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6).
- the video signal processing device may perform PDPC filtering based on the vertical angle mode (e.g., the 50-degree angle mode of FIG. 6).
- the encoder can signal only the information (e.g., a flag) about whether the new DC mode is applied to the current block in the bitstream.
- the decoder can parse the information about whether the new DC mode is applied to the current block to check and set whether the new DC mode is applied to the current block. If the new DC mode is applied to the current block, the video signal processing unit can implicitly select which of the two DC modes (i.e., Above DC mode and Left DC mode) to apply to the current block.
- the video signal processing device can determine which of the two DC modes (Above DC mode, Left DC mode) to apply to the current block by using at least one of the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD, whether to blend the DIMD modes derived from the surrounding pixels of the current block, the intra prediction directional mode of the surrounding blocks of the current block, the encoding mode of the surrounding blocks of the current block, whether the horizontal size of the current block is the same as the vertical size of the current block, and a comparison of the horizontal size of the current block and the vertical size of the current block.
- the two DC modes Above DC mode, Left DC mode
- the video signal processing device can generate the prediction block by applying the Above DC mode to the current block if the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to an arbitrary value.
- the video signal processing device can generate the prediction block by applying the Left DC mode to the current block if the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is less than the arbitrary value.
- Any value can be an integer, for example, 34, which is the value of the diagonal mode in Fig. 6.
- the method by which the video signal processing device implicitly selects which of the two DC modes (i.e., Above DC mode and Left DC mode) to apply to the current block can be applied when the horizontal and vertical sizes of the current block are the same.
- the DIMD mode derived from the surrounding pixels of the current block is a planar mode or a DC mode
- the DIMD mode can be a DIMD mode without blending, in which case there can be only one intra prediction directional mode in the DIMD mode derived from the surrounding pixels of the current block.
- the DIMD mode derived from the surrounding pixels of the current block is not a planar mode or a DC mode
- the DIMD mode is a DIMD mode with blending, in which case there can be two or more DIMD modes derived from the surrounding pixels of the current block.
- the Above DC mode is the existing DC mode, so the video signal processing device can apply the Left DC mode to generate a prediction block for the current block. If a new DC mode is applied to the current block and the vertical size of the current block is larger than the horizontal size, the video signal processing device can apply the Above DC mode to generate a prediction block for the current block.
- the video signal processing device may determine which of the three DC modes to apply to the current block by using at least one of: an intra prediction directional mode derived using DIMD from surrounding pixels of the current block, an intra prediction directional mode of a surrounding block of the current block, whether to blend DIMD modes derived from surrounding pixels of the current block, an encoding mode of a surrounding block of the current block, whether the horizontal length and the vertical length of the current block are the same, and a comparison of the horizontal length of the current block and the vertical length of the current block.
- the video signal processing device can apply the Left DC mode to generate a prediction block for the current block. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to the second arbitrary value and less than the third arbitrary value (case b), the video signal processing device can apply the Above DC mode and the Left DC mode to generate a prediction block for the current block.
- the video signal processing device can apply the Above DC mode to generate a prediction block for the current block.
- These methods (cases a, b, and c) can be applied when the horizontal and vertical sizes of the current block are the same.
- this method can be applied when no blending is applied to the DIMD mode derived from the surrounding pixels of the current block (when the DIMD mode derived from the surrounding pixels of the current block has only one intra prediction directional mode).
- the first random value, the second random value, and the third random value are integer values that can vary depending on the horizontal and vertical sizes of the current block, for example, 2, 26, and 42, respectively.
- the TMRL method described above with reference to FIG. 30 can be extended and used to determine the optimal intra directional mode, whether to apply the ISP mode, whether to apply the Intra TMP and IBC modes, whether to apply the SGPM mode, and whether to apply the weighted average method of multiple intra directional modes.
- the video signal processing device can configure a reference template (e.g., the template of FIG. 30) using a reference pixel line adjacent to the current block.
- the size of the reference template can be set based on the horizontal and vertical sizes of the current block.
- the width of the upper reference template can be the same as the width of the current block. Or, the width of the upper reference template can be larger or smaller than the width of the current block.
- the height of the upper reference template can be an arbitrary size, M.
- the height of the left reference template can be the same as the height of the current block. Or, the height of the left reference template can be larger or smaller than the height of the current block.
- the width of the left reference template can be an arbitrary size, N.
- M and N can be integers greater than or equal to 1, and can be set to the same or different values.
- the video signal processing device can set the width of the upper reference template (or the height of the left reference template) to be larger than the width of the current block by J (or larger than the height of the current block by K) when the horizontal and vertical sizes of the current block are within the arbitrary size.
- any size can be 4x4, 4x8, 8x4, 8x8, etc.
- J and K can be integers greater than or equal to 1.
- FIG. 62 illustrates a method for a video signal processing device according to one embodiment of the present invention to configure a reference pixel line list.
- a video signal processing device can configure a reference pixel line list for a current block.
- the reference pixel line list can be configured based on the position of the current block and the maximum size of the CTU.
- the video signal processing device can determine an allowable reference pixel line based on how far the y value is from the upper boundary of the CTU, and configure a reference pixel line list within the allowable reference pixel lines.
- the video signal processing device can include a reference pixel line whose index of the reference pixel line is 4 or less in the reference pixel line list.
- the indices of the reference pixel lines are 1, 3, 5, 7, and 12. Since the indices of the reference pixel lines are 4 or less and the index 0 of the reference pixel line used as the reference template is excluded from the reference pixel list, the reference pixel list can be composed only of reference pixel lines corresponding to indices 1 and 3. Referring to FIG.
- the video signal processing device can use three reference pixel lines when the y value is 4, and the reference pixel line list can be composed of reference pixel lines corresponding to indices 1, 2, 3, and 4.
- the video signal processing device can configure the reference pixel line list with reference pixel lines corresponding to indices 1, 2, and 3, excluding the reference pixel line corresponding to index 4 when the y value is 4.
- the video signal processing device can use reference pixel lines corresponding to indices 1, 3, 5, 7, and 12.
- the video signal processing device can use reference pixel lines corresponding to indices 1, 3, 5, 7, and 12.
- the video signal processing device can configure a reference pixel line list differently from a reference pixel line list used in another encoding mode.
- the video signal processing device can configure a reference pixel line list composed of reference pixel lines corresponding to indices 2, 4, 6, 8, 9, 10, and 11.
- the video signal processing device can configure an intra prediction mode list for the current block.
- the intra prediction mode list can be configured based on the MPM list.
- the video signal processing device can configure the intra prediction mode list including three DC prediction modes. If the DC mode exists in the intra prediction mode list, the video signal processing device can selectively add the three DC prediction modes to the intra prediction mode list according to the horizontal and vertical sizes of the current block. For example, if the DC mode exists in the intra prediction mode list and the horizontal size of the current block is larger than the vertical size, the video signal processing device can add the DC mode using the average of the left pixel values to the intra prediction mode list.
- the video signal processing device can add the DC mode using the average of the left pixel values and the DC mode using the average of the upper pixel values to the intra prediction mode list.
- the video signal processing device can add three directional planar prediction modes to the intra prediction mode list.
- a general MPM list can be composed of a primary MPM including 6 intra prediction modes and a secondary MPM including 16 intra prediction modes, and the size of the MPM list used in the intra prediction mode list can be different from the size of the general MPM list. That is, the size of the MPM list used in the intra prediction mode list can be X, and X is an integer greater than or equal to 1, such as 10.
- the video signal processing device can configure the intra prediction mode list through an MPM list having a size of 10. Alternatively, the video signal processing device can add 10 intra prediction modes to the intra prediction mode list from the general MPM list.
- Each candidate of the intra prediction mode list may be composed of only one intra prediction mode.
- each candidate of the intra prediction mode list may be composed of two or more intra prediction modes as one candidate.
- the video signal processing device may select N intra prediction modes of neighboring blocks adjacent to the current block, and then combine the N intra prediction modes to generate a new candidate and add the candidate to the intra prediction mode list.
- candidates in the order of low to high template costs may be combined to generate a new candidate, and the new candidate may be added to the intra prediction mode list.
- the video signal processing device may add an intra prediction mode derived by the DIMD method to the intra prediction mode list.
- the video signal processing device may configure the derived intra prediction mode as one candidate of the intra prediction mode list. Additionally, the video signal processing device can add an intra prediction mode derived by the TIMD method to the intra prediction mode list, and when there are two or more intra prediction modes derived by the TIMD method, the derived intra prediction mode can be configured as one candidate of the intra prediction mode list.
- a video signal processing device can construct an integrated list using a reference pixel line list and an intra prediction mode list, and candidates of the integrated list can be constructed with reference pixel lines and intra prediction modes.
- the size of the integrated list can be an integer value of 20. Since the size of the integrated list is limited, the video signal processing device can construct the integrated list using only the top 20 candidates having high costs based on template costs.
- the template cost can be calculated based on the cost between the reference template and the prediction template.
- the prediction template can be obtained through a prediction sample for a reference template generated using any reference pixel line among the reference pixel line list and any intra prediction mode among the intra prediction mode list.
- the cost can be calculated using a method such as SAD or MR-SAD.
- a reference pixel line and an intra prediction mode having a minimum cost can be used to construct a prediction sample for a current block.
- the encoder can signal information indicating an index of a candidate indicating an optimal reference pixel line and an intra prediction mode by including it in the bitstream after reordering the unified list in ascending order of template cost, and the decoder can generate a prediction sample for the current block based on the optimal reference pixel line and intra prediction mode obtained by parsing the information.
- the video signal processing device Since the video signal processing device performs template-based reordering when applying the TMRL method, it may not perform the MPM list reordering process based on the template cost performed during the construction of the MPM list.
- the method of rearranging the integrated list based on the template cost may have different encoding efficiency depending on how similar the template is to the characteristics of the current block. That is, due to the template having low similarity, the video signal processing device may have to encode a high index indicating an optimal candidate in the rearranged integrated list rather than a low index, and thus, there may be a problem that the amount of encoded bits increases. Therefore, the video signal processing device may rearrange the integrated list using at least one of a comparison between template costs for each candidate, a comparison between intra prediction modes of each candidate, and the width and height of the current block. For example, if the difference between the template cost values of two candidates is within a first value, the video signal processing device may delete one of the two candidates from the integrated list.
- the video signal processing device may delete one of the two candidates from the integrated list.
- the first value and the second value can be integers greater than or equal to 1, for example, the first value can be 20 and the second value can be 5.
- the video signal processing device can configure the integrated list by prioritizing the intra prediction mode. For example, the video signal processing device can rearrange the intra prediction mode list based on the template cost, bring the intra prediction mode candidates one by one in order from the candidate with the lowest template cost to the candidate with the highest template cost, and configure the integrated list by combining them with the reference pixel list. Accordingly, the integrated list can be configured in a form in which candidates using the same intra prediction mode form a group, and candidates within a group having the same intra prediction mode can be configured to have different reference pixel lines.
- the video signal processing device can configure the unified list by prioritizing the reference pixel line.
- the video signal processing device can configure the unified list in a form in which candidates using the same reference pixel line form a group, and the candidates within the group having the same reference pixel line can be configured to have different intra prediction modes.
- the video signal processing device can use at least one of the horizontal and vertical sizes of the current block and information (encoding mode, reference pixel line information, intra prediction mode, etc.) of the surrounding blocks to determine which reference pixel line to add to the unified list by prioritizing it.
- the video signal processing device can reorder the unified list with the intra prediction mode as the priority.
- the video signal processing device can further reorder the unified list reordered based on the template cost using at least one of the intra prediction mode, the reference pixel line, and the template cost difference between each candidate.
- the video signal processing device can reorder the unified list based on the reference pixel line, and can change the order of candidates using a specific reference pixel line to an upper part of the unified list to increase the priority of the corresponding candidate.
- the specific reference pixel line can be determined based on the template cost.
- the video signal processing device can determine the reference pixel line of a candidate having the lowest template cost in the unified list as the specific reference pixel line.
- the video signal processing device can configure a second unified list by adding a new candidate to the first unified list (the unified list described above).
- the new candidate to be added may be a candidate composed of Intra TMP, IBC, SGPM, TIMD, DIMD, MIP, an arbitrary reference pixel line and an arbitrary intra prediction mode, three DC prediction modes, and three planar prediction modes.
- the video signal processing device can determine an arbitrary reference pixel line and an arbitrary intra prediction mode by using surrounding block information and at least one or more of the candidates of the first unified list.
- the video signal processing device can configure a new candidate by using the intra prediction mode of the candidate having the lowest template cost, but setting the reference pixel line to a reference pixel line corresponding to index 0, and then add the new candidate to the second unified list.
- the video signal processing device can generate a new candidate by combining an intra prediction mode that does not exist in the unified list with an arbitrary reference pixel line, and then add the new candidate to the second unified list.
- the encoder can signal in the bitstream information indicating an index for a best candidate in the second unified list, and the decoder can parse the information to generate a prediction block for the current block using the best candidate for the index indicated by the information.
- a video signal processing device can generate a new candidate by using a first unified list rearranged based on a template cost and add the new candidate to the unified list. Furthermore, the video signal processing device can perform a reordering based on the template cost for the newly added candidate to generate a reordered second unified list. At this time, the video signal processing device can generate a new candidate by combining two or more candidates from among the candidates of the first unified list. If the new candidate is composed of a combination of two candidates, the new candidate can be composed of a first reference pixel line and a first intra prediction mode, a second reference pixel line and a second intra prediction mode.
- the new candidate can be composed of a first reference pixel line and a first intra prediction mode, a second reference pixel line and a second intra prediction mode, and a third reference pixel line and a third intra prediction mode.
- the video signal processing device can generate a final prediction block through a weighted average between a first prediction block predicted in a first intra prediction mode by referring to a first reference pixel line and a second prediction block predicted in a second intra prediction mode by referring to a second reference pixel line.
- Figure 63 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
- Fig. 63(a) may represent the first integrated list described above, and Fig. 63(b) may represent the second integrated list.
- the first candidate of Fig. 63(b) may be configured as a combination between the first candidate and the second candidate of the first integrated list.
- the first candidate of Fig. 63(b) may be configured as a combination between the first candidate and the second candidate of the first integrated list. That is, the first candidate of Fig. 63(b) may be configured as L0 for the first pixel line, A for the first intra prediction mode, L1 for the second reference pixel line, and B for the second intra prediction mode.
- Figure 64 illustrates a method of combining new candidates according to one embodiment of the present invention.
- Index 1 and index 2 corresponding to the rows of Fig. 64(a) and (b) can represent the candidate order of the first unified list, and can be configured so as not to overlap each other.
- the order of the columns of Fig. 64(a) and (b) represents the combination order, and a new candidate can be configured (generated, obtained) according to the combination order, and the video signal processing device can add the new candidate configured according to the combination order to the second unified list.
- Fig. 64(a) is a method for giving priority to a combination for the first candidate in the first unified list
- Fig. 64(b) can represent a method for giving priority to a combination having a lower sum of template costs.
- the video signal processing device may determine whether to add the new candidate to the second unified list by using at least one of the intra prediction mode and the reference pixel line of the new candidate. For example, if two intra prediction modes of the candidates combined to form the new candidate are the same or the two intra prediction modes differ by a value within a certain range, the video signal processing device may not add the new candidate to the second unified list. At this time, the certain value may be an integer greater than or equal to 1, such as 5.
- the reference pixel line and the intra prediction mode can be signaled separately. However, even if the reference pixel line and the intra prediction mode are different, similar prediction blocks can be generated in certain situations.
- the video signal processing device can configure a combination table for the reference pixel line and the intra prediction mode.
- the size of the combination table can be set to a maximum size as an integer greater than or equal to 1.
- Figure 65 shows a combination table for reference pixel lines and intra prediction modes according to one embodiment of the present invention.
- a combination table can have 10 candidates, and one candidate can be composed of 3 combination items.
- One candidate in the combination table can have multiple combinations of reference pixel lines and intra prediction modes that can generate similar prediction blocks. That is, one candidate in the combination table can have multiple combinations.
- an encoder can signal information on whether a combination table is applied to a current block by including it in a bitstream.
- the encoder can signal index information indicating optimal combination candidates based on the combination table by including it in a bitstream.
- a decoder can parse information on whether a combination table is applied to a current block, and if a combination table is used in the current block, parse index information indicating optimal combination candidates, and generate a prediction block for the current block by using a reference pixel line and intra prediction mode of a combination with the lowest template cost among combination items indicated by the index information.
- the index information indicating optimal combination candidates can indicate one of the indices (6510) of FIG. 65.
- the encoder can signal information on whether the combination table is applied to the current block by including it in the bitstream. Furthermore, the encoder can signal index information indicating optimal combination candidates based on the combination table and index information on optimal combination items within the optimal combination candidates by including it in the bitstream.
- the decoder parses information on whether the combination table is applied to the current block, and if the combination table is used for the current block, generates a prediction block for the current block by using reference pixel lines and intra prediction modes determined by parsing the index information indicating optimal combination candidates and the index information on optimal combination items within the optimal combination candidates.
- the index information indicating optimal combination candidates may indicate any one of the indices (6510) of FIG. 65
- the index information on optimal combination items within the optimal combination candidates may indicate any one of the combination items (6520) of FIG. 65.
- the three DC prediction modes and the three planar prediction modes can also be included as candidates for the TIMD intra prediction mode, and the optimal intra prediction mode can be derived based on the template cost.
- the three DC prediction modes and the three planar prediction modes can be included in the MPM list.
- Figure 66 illustrates a method of using a candidate list based on multiple prediction modes according to one embodiment of the present invention.
- a video signal processing device can generate a prediction block of a current block using a candidate list based on a multi-prediction mode.
- the video signal processing device can configure a multi-prediction mode candidate list for the current block.
- the video signal processing device can configure the multi-prediction mode candidate list using at least one of surrounding block information, DIMD information of the current block, TIMD information of the current block, MPM list of the current block, and Non-MPM list of the current block.
- the surrounding block information may be a block adjacent to the current block, a block that is not adjacent to the current block and is separated by a predetermined distance, a surrounding block stored in a separate memory, etc.
- the surrounding block information may be intra-prediction directional mode information of the surrounding block and a weight value for each mode.
- the predetermined distance may be determined based on at least one of the upper left sample position of the current block, the horizontal and vertical sizes of the current block, and the predetermined horizontal and vertical sizes. For example, a video signal processing device can derive a surrounding block based on a position shifted horizontally to the left by the width of the current block based on the upper left sample position of the current block and a position shifted vertically upward based on the upper left sample position of the current block.
- a method for a video signal processing device to configure a candidate list based on a multi-prediction mode is described.
- the video signal processing device can generate a multi-prediction mode candidate by using at least one of neighboring block information, DIMD information of a current block, TIMD information of a current block, an MPM list of a current block, a Non-MPM list of a current block, DIMD information derived from a cumulative histogram of several histograms used to derive DIMD from a neighboring block, and top N (a predetermined number) intra-prediction modes with a high occurrence frequency among intra-prediction modes used in the neighboring block.
- the predetermined number can be an integer of 5.
- a multi-prediction mode candidate based on occurrence frequency can include five intra-prediction modes.
- the multi-prediction mode can be composed of two or more intra-prediction directional modes, and the intra-prediction directional modes of one multi-prediction mode candidate can be different from each other.
- the multi-prediction mode can include only an intra-prediction directional mode having directionality.
- the multi-prediction mode may not include a planar mode, which is a non-directional mode. If the intra prediction directional mode derived from the surrounding block is a planar mode, the intra prediction directional mode derived from the surrounding block may be excluded from the multi-prediction mode.
- the multi-prediction mode may not include the DC mode, which is a non-directional mode. If the intra prediction directional mode derived from the surrounding block is a DC mode, the intra prediction directional mode derived from the surrounding block may be excluded from the multi-prediction mode.
- the multi-prediction mode candidate generated by the above-described method may be added to the multi-prediction mode candidate list.
- the video signal processing device may determine whether the same multi-prediction mode candidate exists in the multi-prediction mode candidate list, and may add the generated multi-prediction mode candidate to the multi-prediction mode candidate list only if there is no such multiple prediction mode candidate.
- the maximum size of the multi-prediction mode candidate list may be a pre-specified number, and the pre-specified number may be an integer, such as 25. If the maximum size of the multi-prediction mode candidate list is a pre-specified number, the video signal processing device may not add any more multi-prediction mode candidates.
- the video signal processing device can generate a reordered multi-prediction mode candidate list by performing reordering of a multi-prediction mode candidate list based on a template cost. Meanwhile, the reordering process may not be performed. The reordering based on the template cost may be performed by the method described above through FIG. 30.
- the video signal processing device can configure a reference template using reconstructed surrounding samples adjacent to a current block.
- the video signal processing device can generate a prediction template for the reference template by using a multi-prediction mode candidate in the multi-prediction mode candidate list and a pre-designated reference sample line (Reference line 1, 2, 3, ... of FIG. 30).
- the pre-designated reference sample line may be Reference line 1 (e.g., a line adjacent to the current block template).
- the video signal processing device can calculate a cost between the reference template and the prediction template.
- the cost may be the sum of the absolute values of the differences (SAD) between samples.
- the cost may be the sum of the absolute values of the differences (MR-SAD) between the average difference sample values obtained by subtracting the average of each template from each sample value.
- the intra prediction directional mode of the multiple prediction mode candidate used to generate the prediction template may be converted to a range of the intra prediction mode that is extended beyond the range of the existing intra prediction mode, and then used to generate the prediction template.
- the extended intra prediction directional mode M may be (N *2) -2.
- the prediction templates generated using each intra prediction directional mode may be weighted averaged by applying a pre-specified weight, and the video signal processing device may generate the weighted averaged prediction template.
- the weight may be a pre-specified value, and the weights for each intra prediction directional mode may be the same or different from each other.
- the list of multiple prediction mode candidates may be re-sorted based on the calculated cost, and may be re-sorted in ascending order.
- a video signal processing device can reconstruct a prediction mode candidate list using the MPM list and the rearranged multiple prediction mode candidate list.
- the video signal processing device can construct the prediction mode candidate list using a part of the MPM list and a part of the rearranged multiple prediction mode candidate list.
- Candidates from a first candidate of the MPM list to a pre-specified number of candidates can be added to the prediction mode candidate list, and the pre-specified number can be 5.
- Candidates from among the multiple prediction mode candidates of the rearranged multiple prediction mode candidate list can be added to the prediction mode candidate list in a pre-specified number in order from a low cost to a high cost, and the pre-specified number can be an integer and can be 16.
- the encoder can determine an optimal prediction mode candidate for the current block from the derived prediction mode candidate list (or a multiple prediction mode candidate list if the prediction mode candidate list reconstruction process is not performed), and then generate and signal a bitstream including index information for the optimal prediction mode candidate.
- the decoder can parse the index information for the optimal prediction mode candidate from the bitstream, and obtain a prediction block for the current block using the determined optimal prediction mode candidate.
- the video signal processing device can obtain a final prediction block of the current block through a weighted average between a prediction block obtained based on a planar mode (or a DC mode) and a prediction block obtained with the optimal prediction mode candidate.
- Whether a method for generating a prediction block using a candidate list based on multiple prediction modes is activated may be determined based on at least one of whether the current block is a luminance block or a chrominance block, whether an intra prediction mode is applied to the current block, whether one of the DIMD, TIMD, SGPM, ISP, MIP, Intra TMP, and TMRL modes is applied to the current block, reference pixel line information of the current block, horizontal and vertical sizes of the current block, and whether the current block is located at the upper boundary of a CTU including the current block.
- the method for generating a prediction block using a candidate list based on multiple prediction modes may not be activated, and the video signal processing device may not signal or parse syntax related to the method for generating a prediction block using a candidate list based on multiple prediction modes.
- the candidate list based on the derived multiple prediction modes can be used when the coding mode of the current block is one of DIMD, TIMD, SGPM, MIP, Intra TMP, and TMRL.
- the video signal processing device can add the prediction mode derived by using DIMD to the candidate list based on the derived multiple prediction mode.
- the candidate list based on the derived multiple prediction mode can be re-ordered based on the template cost.
- the encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and the decoder can parse the index information to determine a prediction mode for the current block in the candidate list based on the derived multiple prediction mode.
- the video signal processing device can add the prediction mode derived using TIMD to the candidate list based on the derived multiple prediction mode, and the candidate list based on the derived multiple prediction mode can be reordered based on the template cost.
- the encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and the decoder can parse the index information for the optimal prediction mode to determine the optimal prediction mode in the candidate list based on the derived multiple prediction mode.
- the video signal processing device can use the candidate list based on the derived multiple prediction modes to derive intra prediction modes of the two divided regions, the encoder can generate and signal a bitstream including index information on an optimal prediction mode for one or more regions among the two divided regions, and the decoder can parse the index information to determine the prediction mode for one or more regions among the two divided regions from the list.
- a video signal processing device can add block vector candidates derived using Intra TMP to a candidate list based on the derived multiple prediction mode, and the candidate list based on the derived multiple prediction mode can be reordered based on a template cost.
- An encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and a decoder can parse the index information to determine an optimal prediction mode in the candidate list based on the derived multiple prediction mode.
- the video signal processing device can construct a unified candidate list using the candidate list based on the induced multiple prediction mode and the reference sample line.
- the unified list can be reordered based on the template cost.
- the encoder can generate and signal a bitstream including index information for an optimal prediction mode and reference sample line in the candidate list based on the induced multiple prediction mode, and the decoder can parse the information for the corresponding index to determine an optimal prediction mode reference sample line in the candidate list based on the induced multiple prediction mode from the unified list.
- the Non-MPM list can be reordered based on template cost using templates, and the Non-MPM list can be used to signal or parse the optimal intra prediction mode.
- the MPM list for the current block can be organized or rearranged according to the occurrence frequency of intra prediction modes used in the surrounding blocks.
- the intra prediction modes used in the surrounding blocks can be at most J intra prediction modes if the surrounding blocks are DIMD, at most K intra prediction modes if the surrounding blocks are TIMD mode, at most L intra prediction modes if the surrounding blocks are SGPM mode, and at most L intra prediction modes if the surrounding blocks are Intra TMP or IBC mode, and can be intra prediction modes stored in a block to which Intra TMP or IBC mode is applied (or intra prediction modes of a block indicated by a block vector of a block to which Intra TMP or IBC mode is applied).
- Information about the surrounding blocks can include blocks adjacent to the current block, blocks not adjacent to the current block but separated by a predetermined distance, and surrounding blocks stored in a separate memory.
- information about the surrounding blocks can include intra prediction directionality of the surrounding blocks. It may include mode information and a weight value for each mode.
- the video signal processing device may generate a histogram for the intra prediction mode using the intra prediction mode derived from the surrounding block. At this time, J, K, and L may be integers and may be 5, 2, 2, respectively.
- the video signal processing device may configure an MPM list for the current block using the histogram for the intra prediction mode.
- the MPM list may be added in order from the highest occurrence frequency to the lowest occurrence frequency, and if the primary MPM list is filled up to a pre-specified maximum number, the MPM list may be added in order of the next occurrence frequency. If the secondary MPM list is filled up to a pre-specified maximum number, the MPM list may be added in order of the next occurrence frequency to the Non-MPM list.
- the histogram for the intra prediction mode may be updated for each block and used to configure the MPM list or the Non-MPM list of the block.
- the video signal processing device can first configure the MPM list of the current block, and then perform reordering of the MPM list or the Non-MPM list using the histogram for the intra prediction mode. Specifically, the video signal processing device can sequentially set reference intra prediction modes in order from a high occurrence frequency to a low occurrence frequency in the histogram for the intra prediction mode, and then reorder the MPM list or the Non-MPM list based on the reference intra prediction mode. Then, the video signal processing device can change the order of the intra prediction mode that is the same as the reference intra prediction mode or has a difference by a predetermined value in the MPM list or the Non-MPM list to a higher order in the MPM list or the Non-MPM list.
- the predetermined value can be an integer of 3.
- the order in which the video signal processing device adds the intra prediction mode to the Non-MPM list may vary based on the horizontal and vertical sizes of the current block. For example, if the horizontal size of the current block is larger than the vertical size, the intra prediction modes (e.g., the prediction modes of FIG. 6) may be added in the order of a pre-specified first intra prediction mode to a pre-specified second intra prediction mode.
- the first intra prediction mode may be a prediction mode of index 66
- the second intra may be a prediction mode of index 2.
- the intra prediction modes may be added in the order of a pre-designated first intra prediction mode to a pre-designated second intra prediction mode, and then in the order of a pre-designated third intra prediction mode to a pre-designated fourth intra prediction mode.
- the first intra prediction mode may be a prediction mode of index 34
- the second intra prediction mode may be a prediction mode of index 66
- the third intra prediction mode may be a prediction mode of index 33
- the fourth intra prediction mode may be a prediction mode of index 2.
- FIG. 67 is a diagram showing a block vector related to an IBC encoding method according to one embodiment of the present invention.
- the IBC coding method is a method of finding the most similar part (reference block) to the current block in the already restored area of the current picture and using the reference block as a prediction block for the current block.
- the encoder can generate a bitstream including information related to a block vector, which is a distance between the current block and the reference block.
- the decoder can parse information related to the block vector included in the BeastStream to calculate or set a block vector for the current block.
- the IBC coding method can be applied to a chrominance block.
- the block vector of the luminance block corresponding to the chrominance block can be used as the block vector of the chrominance block without finding a new block vector, and this coding method can be called the DBV (Direct Block Vector) mode.
- DBV Direct Block Vector
- the RRIBC (Reconstruction-Reordered IBC) encoding mode can be used in an IBC block (a block to which the IBC encoding method is applied).
- RRIBC can be composed of a vertical flip and a horizontal flip.
- a block to which RRIBC is applied is flipped when reconstructed according to the RRIBC type of the current block.
- the encoder can flip the original block to be encoded before finding the most similar part to the current block from the reference picture. That is, the most similar part from the reference picture is found using the flipped original block. Therefore, a block that is not flipped is used as the prediction block, and the residual block can also be a block that is not flipped.
- the decoder can flip the final reconstructed block according to the RRIBC type of the current block.
- Figure 68 is a diagram illustrating a method for predicting the current block using RRIBC in the horizontal direction.
- Figure 69 is a diagram illustrating a method for predicting the current block using RRIBC in the vertical direction.
- (Xn, Yn) represents the center position of the surrounding blocks
- (Xc, Yc) represents the center position of the current block
- BVnh and BVnv represent a horizontal block vector and a vertical block vector of the surrounding blocks, respectively
- BVCh and BVCv represent a horizontal block vector and a vertical block vector of the current block, respectively.
- BVCh can be calculated as 2 * (Xn - Xc) + BVnh, and as shown in FIG.
- BVCv can be calculated as 2 * (yn - yc) + BVnv.
- BVnh and BVnv use the restored block, the signs of BVnh and BVnv can only be negative.
- the video signal processing device can determine an optimal block vector by constructing a block vector candidate list. At this time, the video signal processing device can construct the block vector candidate list according to the RRIBC type of the current block. For example, if the RRIBC type of the current block is horizontal, the video signal processing device can construct the block vector candidate list using only the neighboring blocks of the current block encoded with RRIBC in the horizontal direction. In addition, the video signal processing device can construct the block vector candidate list regardless of the RRIBC type of the current block.
- the block vector candidate list can be constructed using not only the neighboring blocks of the current block encoded with RRIBC in the horizontal direction, but also the neighboring blocks of the current block encoded with RRIBC in the vertical direction and/or blocks encoded with general motion and/or blocks encoded with block vectors.
- the video signal processing device can construct a motion candidate list depending on whether the neighboring blocks of the current block are encoded in the IBC mode or the RRIBC mode.
- the video signal processing device can construct a motion candidate list by additionally considering the RRIBC type. For example, when the video signal processing device constructs a motion candidate list for the current block, when the encoding mode of the neighboring blocks of the current block is the RRIBC mode and the RRIBC type is the vertical direction or the horizontal direction, the block vector of the neighboring blocks may not be included in the motion candidate list.
- the video signal processing device when the video signal processing device predicts the current block using general motion, the video signal processing device can construct a motion candidate list regardless of the encoding mode of the neighboring blocks of the current block. That is, the video signal processing device can construct a motion candidate list regardless of whether the neighboring blocks of the current block are encoded in the IBC mode or the RRIBC mode.
- a video signal processing device configures a motion candidate list for a current block, it may include block vectors of surrounding blocks of the current block in the motion candidate list even if the encoding mode of the surrounding blocks is the IBC mode and the RRIBC type is the vertical direction or the horizontal direction.
- the RRIBC encoding method is effective for images having symmetrical characteristics.
- the symmetrical characteristics may mean perfect horizontal (or vertical) symmetry with the same distance apart from one central axis between the current block and the reference block.
- the vertical (or horizontal) direction (symmetry axis) of the current block may be located on the same line as the vertical (or horizontal) direction (symmetry axis) of the reference block.
- the block vector in the vertical (or horizontal) direction may be set to '0', and the block vector in the horizontal direction may be set to any negative value other than '0'.
- the current block and the reference block may be configured to be symmetrical with different distances apart from one central axis between the current block and the reference block, and the current block and the reference block may be located on different vertical lines.
- the block vector in the vertical direction may be set to any negative value other than '0'. That is, the video signal processing device can encode or decode the current block using a symmetric block having a block vector value of an arbitrary negative value other than '0' in both the horizontal and vertical directions.
- Fig. 70 shows a block vector of a block encoded in Intra TMP mode according to one embodiment of the present invention.
- the Intra TMP method is a method in which a video signal processing device constructs a reference template using pixel values of neighboring blocks adjacent to a current block, and then finds a part most similar to the reference template in an already restored area (reference block) within the current picture, and then uses the reference block (Ref. luma block of FIG. 70) as a prediction block for the current block.
- the reference block Ref. luma block of FIG. 70
- the video signal processing device can generate a prediction block for the luminance block by weighting and averaging reference blocks predicted from two block vectors of the current luminance block.
- the video signal processing device can derive a block vector from a luminance block corresponding to the chrominance block, and then generate a chrominance prediction block using the block vector.
- the block vector of the chrominance block may be the same as or different from the block vector derived from the luminance block.
- Figure 71 illustrates a case where a current block is divided by the GPM mode according to one embodiment of the present invention and the divided area is encoded in the IBC mode.
- the current block can be encoded or decoded in the IBC-GPM mode.
- the IBC-GPM mode may mean a mode in which the current block is divided using the GPM mode, and the divided region is encoded in the intra prediction mode or the IBC prediction mode.
- the current block can be divided into two regions based on the dotted line.
- one of the divided regions can be encoded in the intra prediction mode, and the other can be encoded in the IBC prediction mode.
- the left region among the divided regions can be encoded in the intra prediction mode, and the right region can be encoded in the IBC prediction mode.
- the region encoded in the IBC prediction mode can be encoded in the Intra TMP prediction mode, and this can be described as the IntraTMP-GPM mode.
- Figure 72 shows how a current block is encoded in IBC-CIIP mode according to one embodiment of the present invention.
- a video signal processing device can predict a current block using a weighted average between a block predicted in the intra mode and a block predicted in the IBC mode, and this can be called the IBC-CIIP mode.
- a block predicted in the Intra TMP mode can be used instead of a block predicted in the IBC mode, and this can be called the IntraTMP-CIIP mode.
- a video signal processing device can obtain a reconstructed luminance block by adding a residual signal for a luminance prediction block of a current block and a luminance block, and can configure a CCP model by using a correlation between the reconstructed luminance block and the luminance prediction block.
- the CCP model can be one of CCLM, MMLM, GLM, CCCM, MM-CCCM, GL-CCCM, CCCM-ND, and CCCM-MDF.
- the CCP model derived from the luminance block can be applied to a chrominance prediction block to generate a first chrominance prediction block to which the CCP model is applied.
- a final chrominance block can be generated by adding an error signal for the first chrominance prediction block and the chrominance block.
- FIG. 73 shows an example of a reference region and filter shape used to derive CCCM parameters according to one embodiment of the present invention.
- CCCM Convolutional cross-component intra prediction model
- a nonlinear model that is constructed by utilizing a high correlation between a luminance signal and a chrominance signal at the same location as the luminance signal.
- Fig. 73(a) shows the positional relationship between reference samples (vertical hatching, 7320) for applying CCCM to a current prediction block (diagonal hatching, 7310) and side samples (horizontal hatching) required when applying a cross-shaped filter.
- the current prediction block (MxN) can be composed of reference samples in the upper 6 rows (2Mx6), reference samples in the left 6 rows (6x2N), and 6x6 reference samples in the upper left, where the ratio of the number of chroma to luma samples is 1:1.
- a video signal processing device applies a cross-shaped sample (Fig. 73(b)) filter to a chroma sample prediction relationship (Fig. 73(c)) for CCCM, there are cases where the reference sample area is out of the range. At this time, additionally required samples may be side samples.
- the chroma sample prediction relation of Fig. 73(c) may be applied to each chroma component (i.e., Cb, Cr). The sample at the C (Center) position in Fig.
- 73(b) may be a luma sample corresponding to the Cb and Cr chroma samples, and N (North), E (East), S (South), and W (West) may be luma samples adjacent to the luma sample at the C position. Side samples may additionally require one sample each for an area other than the reference sample depending on the position of the C sample. If the sample value existing at the position of the side sample is not available, the sample value at the unavailable position may be padded with the C sample value.
- the B value can be an integer offset value as a bias value.
- the B value can be an intermediate value of bitDepth (bit depth). In case of 10-bit content, the B value can be 512.
- MM-CCCM (multi-model CCCM) is a method that derives two CCCM parameters based on the average value of the reference area (or the reconstructed current luminance block).
- GL-CCCM Gradient and location based convolutional cross-component model
- the video signal processing device can derive the chrominance sample for the current block by using the luminance sample at the corresponding position from the predicted chrominance sample location, four samples around the luminance sample, and coefficient information.
- the video signal processing device can derive the chrominance sample for the current block by reflecting the vertical and horizontal differences for the luminance sample at the corresponding position from the predicted chrominance sample location and eight samples around the luminance sample, and also by using the position value of the current luminance sample and its coefficient information.
- the video signal processing device can apply a downsampling filter to match the resolution difference between the luminance block and the chrominance block. This is to reduce the resolution of the luminance block to that of the chrominance block.
- the mode for applying the downsampling filter can be described as CCCM-MDF (CCCM with multiple downsampling filters).
- the video signal processing device can derive linear and nonlinear models between a luminance prediction block (Y') derived using motion information of the current block and a first chrominance prediction block (Cb', Cr') derived using motion information of the current block (Derive filter), generate a reconstructed luminance block of the current block using a luminance residual block of the current block, and apply the derived linear and nonlinear models to the reconstructed luminance block of the current block (Apply filter) to generate a second chrominance prediction block of the current block.
- Y' luminance prediction block
- Cr' first chrominance prediction block
- the video signal processing device can add the chrominance residual block to the second chrominance prediction block of the current block predicted using the linear and nonlinear models to finally generate the chrominance block (Cb, Cr) of the current block.
- This method can be described as a cross-component residual model (CCRM).
- Figure 74 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
- FIG. 74 a method of constructing the integrated list described above through FIGS. 1 to 73 is described.
- a video signal decoding device e.g., a decoder
- the plurality of pairs can include a first pair and a second pair.
- a video signal decoding device can obtain a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair (S7420).
- the video signal decoding device can restore the current block based on one integrated pair in the above list (S7430).
- Each of the above multiple pairs may be composed of different combinations of reference lines and intra prediction modes.
- a video signal decoding device can obtain a first prediction block based on a first reference line and a first intra prediction mode of the first pair, obtain a second prediction block based on a second reference line and a second intra prediction mode of the second pair, and obtain a final prediction block by performing a weighted average on the first prediction block and the second prediction block. And the video signal decoding device can reconstruct the current block based on the final prediction block.
- the one integrated pair in the above list can be indicated based on a syntax element included in the bitstream.
- the plurality of integrated pairs constituting the above list can be sorted based on the cost of each of the plurality of integrated pairs.
- the above multiple integrated pairs can be sorted in order of their corresponding costs.
- the methods described herein may be performed by a processor of a decoder or an encoder.
- the encoder may generate a bitstream that is decoded by the methods described above.
- the bitstream generated by the encoder may be stored in a computer-readable, non-transitory storage medium (recording medium).
- parsing in this specification is described with a focus on the process of obtaining information from a bitstream, but in terms of the encoder, it can be interpreted as configuring the corresponding information in the bitstream. Therefore, the term parsing is not limited to the decoder's operation, but can be interpreted as the act of configuring a bitstream in the encoder. In addition, such a bitstream can be stored and configured in a computer-readable recording medium.
- the embodiments of the present invention described above can be implemented through various means.
- the embodiments of the present invention can be implemented by hardware, firmware, software, or a combination thereof.
- the method according to embodiments of the present invention can be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, and the like.
- ASICs Application Specific Integrated Circuits
- DSPs Digital Signal Processors
- DSPDs Digital Signal Processing Devices
- PLDs Programmable Logic Devices
- FPGAs Field Programmable Gate Arrays
- processors controllers, microcontrollers, microprocessors, and the like.
- the method according to the embodiments of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above.
- the software code may be stored in a memory and may be driven by a processor.
- the memory may be located inside or outside the processor, and may exchange data with the processor by various means already known.
- Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Additionally, computer-readable media can include both computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data.
- Communication media typically includes computer-readable instructions, data structures, or other data in a modulated data signal, such as program modules, or other transport mechanisms, and includes any information delivery media.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
This video signal decoding device comprises a processor, wherein the processor can: obtain a plurality of pairs consisting of one reference line and one intra prediction mode, the plurality of pairs including a first pair and a second pair; obtain a list consisting of a plurality of combined pairs including a first combined pair in which the first pair and the second pair have been combined; and restore a current block on the basis of one combined pair in the list.
Description
본 발명은 비디오 신호의 처리 방법 및 장치에 관한 것으로, 보다 상세하게는 비디오 신호를 인코딩하거나 디코딩하는 비디오 신호 처리 방법 및 장치에 관한 것이다.The present invention relates to a method and device for processing a video signal, and more particularly, to a video signal processing method and device for encoding or decoding a video signal.
압축 부호화란 디지털화한 정보를 통신 회선을 통해 전송하거나, 저장 매체에 적합한 형태로 저장하기 위한 일련의 신호 처리 기술을 의미한다. 압축 부호화의 대상에는 음성, 영상, 문자 등의 대상이 존재하며, 특히 영상을 대상으로 압축 부호화를 수행하는 기술을 비디오 영상 압축이라고 일컫는다. 비디오 신호에 대한 압축 부호화는 공간적인 상관관계, 시간적인 상관관계, 확률적인 상관관계 등을 고려하여 잉여 정보를 제거함으로써 이루어진다. 그러나 최근의 다양한 미디어 및 데이터 전송 매체의 발전으로 인해, 더욱 고효율의 비디오 신호 처리 방법 및 장치가 요구되고 있다.Compression coding refers to a series of signal processing technologies for transmitting digitized information through communication lines or storing it in a form suitable for storage media. The targets of compression coding include objects such as voice, image, and text, and the technology for performing compression coding on images in particular is called video image compression. Compression coding for video signals is performed by removing redundant information by considering spatial correlation, temporal correlation, and probabilistic correlation. However, due to the recent development of various media and data transmission media, more highly efficient video signal processing methods and devices are required.
본 명세서는 비디오 신호 처리 방법 및 이를 위한 장치를 제공하여 비디오 신호의 코딩 효율을 높이기 위한 목적이 있다.The purpose of this specification is to provide a video signal processing method and a device therefor to improve the coding efficiency of a video signal.
본 명세서는 비디오 신호 처리 방법 및 이를 위한 장치를 제공한다. The present specification provides a video signal processing method and a device therefor.
본 명세서에 있어서, 비디오 신호 디코딩 장치는 프로세서를 포함하며, 상기 프로세서는 하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득하고, 상기 복수 개의 페어는 제1 페어와 제2 페어를 포함하고, 상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득하고, 상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원할 수 있다. 또한, 상기 프로세서는 상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하고, 상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하고, 상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득하고, 상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원할 수 있다.In the present specification, a video signal decoding device includes a processor, wherein the processor obtains a plurality of pairs each composed of one reference line and one intra prediction mode, the plurality of pairs including a first pair and a second pair, and obtains a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair, and can reconstruct a current block based on one integrated pair in the list. In addition, the processor obtains a first prediction block based on a first reference line and a first intra prediction mode of the first pair, obtains a second prediction block based on a second reference line and a second intra prediction mode of the second pair, obtains a final prediction block by performing a weighted average of the first prediction block and the second prediction block, and can reconstruct the current block based on the final prediction block.
본 명세서에 있어서, 비디오 신호 인코딩 장치는 프로세서를 포함하며, 상기 프로세서는 디코딩 방법에 의해 디코딩되는 비트스트림을 획득할 수 있다.In this specification, a video signal encoding device includes a processor, and the processor can obtain a bitstream to be decoded by a decoding method.
본 명세서에 있어서, 컴퓨터 판독 가능한 비 일시적 저장 매체는 디코딩 방법에 의해 디코딩되는 비트스트림을 저장할 수 있다.In the present specification, a computer-readable non-transitory storage medium can store a bitstream decoded by a decoding method.
본 명세서에 있어서, 디코딩 방법은 하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득하는 단계; 상기 복수 개의 페어는 제1 페어와 제2 페어를 포함하고, 상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득하는 단계; 및 상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원하는 단계를 포함할 수 있다. 또한, 디코딩 방법은 상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하는 단계; 상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하는 단계; 상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득하는 단계; 및 상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원하는 단계를 더 포함할 수 있다.In the present specification, a decoding method may include the steps of: obtaining a plurality of pairs each composed of one reference line and one intra prediction mode; obtaining a list composed of a plurality of integrated pairs, wherein the plurality of pairs include a first pair and a second pair, and including a first integrated pair that integrates the first pair and the second pair; and reconstructing a current block based on one integrated pair in the list. In addition, the decoding method may further include the steps of: obtaining a first prediction block based on a first reference line and a first intra prediction mode of the first pair; obtaining a second prediction block based on a second reference line and a second intra prediction mode of the second pair; obtaining a final prediction block by weighting and averaging the first prediction block and the second prediction block; and reconstructing the current block based on the final prediction block.
본 명세서에 있어서, 상기 복수 개의 페어는 각각 서로 다른 참조 라인과 인트라 예측 모드의 조합으로 구성될 수 있다.In the present specification, each of the plurality of pairs may be composed of a combination of different reference lines and intra prediction modes.
본 명세서에 있어서, 상기 리스트 내 상기 하나의 통합 페어는 비트스트림에 포함된 신택스 요소에 기초하여 지시될 수 있다.In this specification, the one integrated pair in the list can be indicated based on a syntax element included in a bitstream.
본 명세서에 있어서, 상기 리스트를 구성하는 상기 복수의 통합 페어는 상기 복수의 통합 페어 각각의 코스트에 기초하여 정렬될 수 있다.In the present specification, the plurality of integrated pairs constituting the list can be sorted based on the cost of each of the plurality of integrated pairs.
본 명세서에 있어서, 상기 복수의 통합 페어는 대응되는 코스트가 낮은 순으로 정렬될 수 있다.In this specification, the plurality of integrated pairs can be sorted in order of their corresponding costs.
본 명세서는 효율적으로 비디오 신호를 처리하기 위한 방법을 제공한다.This specification provides a method for efficiently processing a video signal.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained from this specification are not limited to the effects mentioned above, and other effects that are not mentioned will be clearly understood by those skilled in the art to which the present invention belongs from the description below.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치의 개략적인 블록도이다.FIG. 1 is a schematic block diagram of a video signal encoding device according to one embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치의 개략적인 블록도이다.FIG. 2 is a schematic block diagram of a video signal decoding device according to one embodiment of the present invention.
도 3은 픽쳐 내에서 코딩 트리 유닛이 코딩 유닛들로 분할되는 실시예를 도시한다. Figure 3 illustrates an embodiment in which a coding tree unit within a picture is divided into coding units.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다.Figure 4 illustrates one embodiment of a method for signaling splitting of a quad tree and a multi-type tree.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 더욱 구체적으로 도시한다.FIGS. 5 and 6 illustrate an intra prediction method according to an embodiment of the present invention in more detail.
도 7은 인터 예측에서 움직임 후보 리스트를 구성하기 위해 사용되는 주변 블록들의 위치를 나타낸 도면이다. Figure 7 is a diagram showing the locations of surrounding blocks used to construct a motion candidate list in inter prediction.
도 8은 본 발명의 일 실시예에 따른 DIMD를 이용하여 예측 블록을 생성하는 과정을 나타낸 도면이다.FIG. 8 is a diagram illustrating a process of generating a prediction block using DIMD according to one embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따른 방향성 정보를 유도하기 위해 사용되는 주변 픽셀의 위치를 나타낸 도면이다.FIG. 9 is a diagram showing the locations of surrounding pixels used to derive directional information according to one embodiment of the present invention.
도 10은 본 발명의 일 실시예에 따른 방향성 모드를 매핑하는 방법을 나타낸 도면이다.FIG. 10 is a diagram illustrating a method for mapping directional modes according to one embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드를 유도하기 위한 히스토그램을 나타낸 도면이다.FIG. 11 is a diagram showing a histogram for deriving an intra prediction directional mode according to one embodiment of the present invention.
도 12는 본 발명의 일 실시예에 따른 DIMD 모드를 시그널링하는 방법을 나타낸 도면이다.FIG. 12 is a diagram illustrating a method for signaling a DIMD mode according to one embodiment of the present invention.
도 13은 본 발명의 일 실시예에 따른 DIMD 모드의 사용 여부에 따른 인트라 예측 모드와 관련된 신택스 요소를 시그널링하는 방법을 나타낸 도면이다.FIG. 13 is a diagram illustrating a method for signaling syntax elements related to intra prediction modes depending on whether DIMD mode is used according to one embodiment of the present invention.
도 14는 본 발명의 일 실시예에 따른 현재 블록을 복원하기 위한 예측 샘플을 생성하는 방법을 나타낸 도면이다.FIG. 14 is a diagram illustrating a method for generating a prediction sample for restoring a current block according to one embodiment of the present invention.
도 15는 본 발명의 일 실시예에 따른 인트라 예측 모드를 결정하는 방법을 나타낸 도면이다.FIG. 15 is a diagram illustrating a method for determining an intra prediction mode according to one embodiment of the present invention.
도 16은 본 발명의 일 실시예에 따른 DIMD와 관련된 신택스 요소들이 포함된 신택스 구조를 나타낸다.FIG. 16 illustrates a syntax structure including syntax elements related to DIMD according to one embodiment of the present invention.
도 17은 본 발명의 일 실시예에 따른 현재 블록의 주변 블록에 대한 인트라 예측 방향성 모드 및 가중치 정보를 나타낸 도면이다.FIG. 17 is a diagram showing intra prediction directional mode and weight information for surrounding blocks of a current block according to one embodiment of the present invention.
도 18은 본 발명의 일 실시예에 따른 DIMD 조합 정보를 결정하는 방법을 나타낸 도면이다.FIG. 18 is a diagram illustrating a method for determining DIMD combination information according to one embodiment of the present invention.
도 19는 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드 정보와 가중치를 이용하여 예측 샘플을 생성하는 방법을 나타낸 도면이다.FIG. 19 is a diagram illustrating a method for generating a prediction sample using intra prediction directional mode information and weights according to one embodiment of the present invention.
도 20 및 도 21은 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드를 유도할 때 사용되는 주변 블록의 픽셀 값을 나타낸 도면이다.FIGS. 20 and 21 are diagrams showing pixel values of surrounding blocks used when deriving an intra prediction directional mode according to one embodiment of the present invention.
도 22는 본 발명의 일 실시예에 따른 현재 블록의 인트라 예측 방향성 모드를 포함한 MPM 리스트를 구성하는 방법을 나타낸 도면이다.FIG. 22 is a diagram illustrating a method for constructing an MPM list including an intra prediction directional mode of a current block according to one embodiment of the present invention.
도 23 및 도 24는 본 발명의 일 실시예에 따른 현재 블록의 인트라 예측 모드를 유도하기 위해 사용되는 템플릿(template)을 나타낸 도면이다.FIGS. 23 and 24 are diagrams showing templates used to derive an intra prediction mode of a current block according to one embodiment of the present invention.
도 25 내지 도 28은 본 발명의 일 실시예에 따른 복수의 참조 픽셀 라인에 기초하여 예측 샘플(픽셀)을 생성하는 방법을 나타내는 도면이다.FIGS. 25 to 28 are diagrams illustrating a method for generating prediction samples (pixels) based on a plurality of reference pixel lines according to one embodiment of the present invention.
도 29는 본 발명의 일 실시예에 따른 복수의 참조 픽셀 라인을 사용하여 샘플을 예측하는 방법을 나타낸다.FIG. 29 illustrates a method for predicting a sample using multiple reference pixel lines according to one embodiment of the present invention.
도 30은 본 발명의 일 실시예에 따른 템플릿에 기초하여 참조 픽셀 라인을 결정하는 방법을 나타낸다.FIG. 30 illustrates a method for determining a reference pixel line based on a template according to one embodiment of the present invention.
도 31은 본 발명의 일 실시예에 따른 현재 블록에 인접한 참조 픽셀 라인을 테스트하기 위한 템플릿을 설정하는 방법을 나타낸다.FIG. 31 illustrates a method for setting a template for testing a reference pixel line adjacent to a current block according to one embodiment of the present invention.
도 32는 본 발명의 일 실시예에 따른 템플릿에 기초한 복수의 참조 픽셀 라인을 사용하여 최적의 참조 픽셀 라인을 결정하는 방법을 나타낸 구조도이다.FIG. 32 is a structural diagram illustrating a method for determining an optimal reference pixel line using a plurality of reference pixel lines based on a template according to one embodiment of the present invention.
도 33은 본 발명의 일 실시예에 따른 평면 모드를 사용하여 예측 샘플을 생성하는 방법을 나타낸다.FIG. 33 illustrates a method for generating prediction samples using planar mode according to one embodiment of the present invention.
도 34는 본 발명의 일 실시예에 따른 LFNST 및 NSPT 변환에 대한 변환 세트 테이블을 나타낸다.Figure 34 shows a transformation set table for LFNST and NSPT transformations according to one embodiment of the present invention.
도 35는 본 발명의 일 실시예에 따른 현재 블록의 저주파 영역을 나타낸다.Figure 35 shows a low frequency region of a current block according to one embodiment of the present invention.
도 36은 본 발명의 일 실시예에 따른 다중 변환 세트 및 LFNST/NSPT 세트를 유도하는 방법을 나타낸다.FIG. 36 illustrates a method for deriving a multi-transform set and a LFNST/NSPT set according to one embodiment of the present invention.
도 37은 본 발명의 일 실시예에 따른 수직 방향 평면 모드 또는 수평 방향 평면 모드를 위한 다중 변환 세트 및 LFNST 세트를 유도하는 방법을 나타낸다.FIG. 37 illustrates a method for deriving a multi-transform set and an LFNST set for a vertical planar mode or a horizontal planar mode according to one embodiment of the present invention.
도 38은 본 발명의 일 실시예에 따른 매핑 테이블을 나타낸다.Figure 38 shows a mapping table according to one embodiment of the present invention.
도 39는 본 발명의 일 실시예에 따른 변환 타입 세트 테이블을 나타낸다.Figure 39 illustrates a conversion type set table according to one embodiment of the present invention.
도 40은 본 발명의 일 실시예에 따른 변환 타입 조합 테이블을 나타낸다.Figure 40 shows a conversion type combination table according to one embodiment of the present invention.
도 41은 본 발명의 일 실시예에 따른 IDT 변환 타입에 대한 임계 값 테이블을 나타낸다.Figure 41 shows a threshold value table for an IDT conversion type according to one embodiment of the present invention.
도 42는 본 발명의 일 실시예에 따른 디블록킹 필터링 과정에서의 블록 경계 및 경계 주변의 샘플들을 나타낸다.Figure 42 shows samples at a block boundary and around the boundary in a deblocking filtering process according to one embodiment of the present invention.
도 43은 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 1차 또는 2차 변환 매트릭스를 유도하는 방법을 나타낸다.FIG. 43 illustrates a method for a video signal processing device according to one embodiment of the present invention to derive a first or second transform matrix.
도 44는 본 발명의 일 실시예에 따른 수직 또는 수평 라인 단위의 DC 예측 방법을 나타낸다.Figure 44 illustrates a DC prediction method for vertical or horizontal line units according to one embodiment of the present invention.
도 45는 본 발명의 일 실시예에 따른 수직 또는 수평 라인(line) 단위의 평면 예측 방법을 나타낸다.Figure 45 illustrates a method for predicting a plane in units of vertical or horizontal lines according to one embodiment of the present invention.
도 46은 본 발명의 일 실시예에 따른 평면 모드를 사용한 서브 블록 단위의 예측 방법을 나타낸다.Figure 46 illustrates a sub-block unit prediction method using a planar mode according to one embodiment of the present invention.
도 47은 본 발명의 일 실시예에 따른 양방향 예측 기반의 인트라 예측 방법을 나타낸다.Figure 47 illustrates an intra prediction method based on bidirectional prediction according to one embodiment of the present invention.
도 48은 본 발명의 일 실시예에 따른 비디오 코딩에 사용될 수 있는 변환 커널 종류를 나타낸다.Figure 48 shows types of transform kernels that can be used for video coding according to one embodiment of the present invention.
도 49, 도 50은 본 발명의 일 실시예에 따른 시퀀스 파라미터 세트의 일부를 나타낸다.Figures 49 and 50 illustrate a part of a sequence parameter set according to one embodiment of the present invention.
도 51은 본 발명의 일 실시예에 따른 general_constraint_info() 신택스 구조의 일부를 나타낸다.FIG. 51 illustrates a portion of the general_constraint_info() syntax structure according to one embodiment of the present invention.
도 52는 본 발명의 일 실시예에 따른 다중 예측 모드를 사용하여 MPM 리스트를 구성하는 방법을 나타낸다. FIG. 52 illustrates a method of constructing an MPM list using a multi-prediction mode according to one embodiment of the present invention.
도 53은 본 발명의 일 실시예에 따른 다중 예측 모드를 사용하여 예측 블록이 생성될 때 사용되는 참조 픽셀의 위치를 나타낸다.FIG. 53 shows the locations of reference pixels used when a prediction block is generated using a multi-prediction mode according to one embodiment of the present invention.
도 54는 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 비트스트림으로부터 평면 모드 선택 정보와 DC 모드 선택 정보를 파싱하는 방법을 나타낸다.FIG. 54 illustrates a method for a video signal processing device according to an embodiment of the present invention to parse planar mode selection information and DC mode selection information from a bitstream.
도 55는 본 발명의 일 실시예에 따른 평면 모드 선택 정보 및 DC 모드 선택 정보에 대한 이진화(binarization) 또는 빈 스트링(bin string)을 나타낸다.FIG. 55 illustrates binarization or bin strings for planar mode selection information and DC mode selection information according to one embodiment of the present invention.
도 56은 본 발명의 일 실시예에 따른 DC 예측 모드에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 56 illustrates a method for generating a prediction block for a current block according to a DC prediction mode according to one embodiment of the present invention.
도 57은 본 발명의 일 실시예에 따른 DC 모드 선택 정보를 결정하는 방법을 나타낸다.Figure 57 illustrates a method for determining DC mode selection information according to one embodiment of the present invention.
도 58은 본 발명의 일 실시예에 따른 DC 모드 선택 정보에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 58 illustrates a method for generating a prediction block for a current block according to DC mode selection information according to one embodiment of the present invention.
도 59는 본 발명의 일 실시예에 따른 통합 방향 모드에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 59 illustrates a method for generating a prediction block for a current block according to an integrated direction mode according to one embodiment of the present invention.
도 60은 본 발명의 일 실시예에 따른 통합 방향 모드에 대한 이진화 또는 빈 스트링을 나타낸다.FIG. 60 illustrates a binarization or empty string for an integrated direction mode according to one embodiment of the present invention.
도 61은 본 발명의 일 실시예에 따른 현재 블록에 대한 예측 블록을 생성하기 위한 참조 화소들을 나타낸다.FIG. 61 illustrates reference pixels for generating a prediction block for a current block according to one embodiment of the present invention.
도 62는 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 참조 픽셀 라인 리스트를 구성하는 방법을 나타낸다.FIG. 62 illustrates a method for a video signal processing device according to one embodiment of the present invention to configure a reference pixel line list.
도 63은 본 발명의 일 실시예에 따른 통합 리스트를 구성하는 방법을 나타낸다.Figure 63 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
도 64는 본 발명의 일 실시예에 따른 새로운 후보를 조합하는 방법을 나타낸다.Figure 64 illustrates a method of combining new candidates according to one embodiment of the present invention.
도 65는 본 발명의 일 실시예에 따른 참조 픽셀 라인과 인트라 예측 모드에 대한 조합 테이블을 나타낸다.Figure 65 shows a combination table for reference pixel lines and intra prediction modes according to one embodiment of the present invention.
도 66은 본 발명의 일 실시예에 따른 다중 예측 모드 기반의 후보 리스트를 사용하는 방법을 나타낸다.Figure 66 illustrates a method of using a candidate list based on multiple prediction modes according to one embodiment of the present invention.
도 67은 본 발명의 일 실시예에 따른 IBC 부호화 방법과 관련된 블록 벡터를 나타낸 도면이다.FIG. 67 is a diagram showing a block vector related to an IBC encoding method according to one embodiment of the present invention.
도 68은 수평 방향으로의 RRIBC를 사용하여 현재 블록을 예측하는 방법을 나타내는 도면이다.Figure 68 is a diagram illustrating a method for predicting the current block using RRIBC in the horizontal direction.
도 69는 수직 방향으로의 RRIBC를 사용하여 현재 블록을 예측하는 방법을 나타내는 도면이다.Figure 69 is a diagram illustrating a method for predicting the current block using RRIBC in the vertical direction.
도 70은 본 발명의 일 실시예에 따른 Intra TMP 모드로 부호화된 블록의 블록 벡터를 나타낸다.Fig. 70 shows a block vector of a block encoded in Intra TMP mode according to one embodiment of the present invention.
도 71은 본 발명의 일 실시예에 따른 GPM 모드에 의해 현재 블록이 분할된 경우, 분할된 영역이 IBC 모드로 부호화되는 경우를 나타낸다.Figure 71 illustrates a case where a current block is divided by the GPM mode according to one embodiment of the present invention and the divided area is encoded in the IBC mode.
도 72는 본 발명의 일 실시예에 따른 현재 블록이 IBC-CIIP 모드로 부호화되는 방법을 나타낸다.Figure 72 shows how a current block is encoded in IBC-CIIP mode according to one embodiment of the present invention.
도 73은 본 발명의 일 실시예에 따른 15는 CCCM 파라미터를 유도하기 위해 사용되는 참조 영역 및 필터 형태의 일 예를 나타낸다.FIG. 73 shows an example of a reference region and filter shape used to derive CCCM parameters according to one embodiment of the present invention.
도 74는 본 발명의 일 실시예에 따른 통합 리스트를 구성하는 방법을 나타낸다.Figure 74 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도, 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한 특정 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가진 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.The terms used in this specification are selected from the most widely used and general terms possible while considering the functions of the present invention, but they may vary depending on the intentions of engineers in the field, customs, or the emergence of new technologies. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in such cases, their meanings will be described in the description of the relevant invention. Therefore, it should be noted that the terms used in this specification should be interpreted based on the actual meaning of the terms and the overall contents of this specification, not simply the names of the terms.
본 명세서에서 'A 및/또는 B'는 'A 또는 B 중 적어도 하나를 포함하는'과 같은 의미로 해석될 수 있다.In this specification, 'A and/or B' may be interpreted to mean 'including at least one of A or B'.
본 명세서에서 일부 용어들은 다음과 같이 해석될 수 있다. 코딩은 경우에 따라 인코딩 또는 디코딩으로 해석될 수 있다. 본 명세서에서 비디오 신호의 인코딩(부호화)을 수행하여 비디오 신호 비트스트림을 생성하는 장치는 인코딩 장치 또는 인코더로 지칭되며, 비디오 신호 비트스트림의 디코딩(복호화)을 수행하여 비디오 신호를 복원하는 장치는 디코딩 장치 또는 디코더로 지칭된다. 또한, 본 명세서에서 비디오 신호 처리 장치는 인코더 및 디코더를 모두 포함하는 개념의 용어로 사용된다. 정보(information)는 값(values), 파라미터(parameter), 계수(coefficients), 성분(elements) 등을 모두 포함하는 용어로서, 경우에 따라 의미는 달리 해석될 수 있으므로 본 발명은 이에 한정되지 아니한다. '유닛'은 영상 처리의 기본 단위 또는 픽쳐의 특정 위치를 지칭하는 의미로 사용되며, 휘도(luma) 성분 및 색차(chroma) 성분 중 적어도 하나를 포함하는 이미지 영역을 가리킨다. 또한, '블록'은 휘도 성분 및 색차 성분들(즉, Cb 및 Cr) 중 특정 성분을 포함하는 이미지 영역을 가리킨다. 다만, 실시예에 따라서 '유닛', '블록', '파티션', '신호' 및 '영역' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 '현재 블록'은 현재 부호화를 진행할 예정인 블록을 의미하며, '참조 블록'은 이미 부호화 또는 복호화가 완료된 블록으로 현재 블록에서 참조로 사용되는 블록을 의미한다. 또한, 본 명세서에서 '루마', 'luma', '휘도', 'Y' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 '크로마', 'chroma' '색차', 'Cb 또는 Cr' 등의 용어는 서로 혼용하여 사용될 수 있으며, 색차 성분은 Cb와 Cr 2가지로 나누어지므로 각 색차 성분은 구분되어 사용될 수 있다. 또한, 본 명세서에서 유닛은 코딩 유닛, 예측 유닛, 변환 유닛을 모두 포함하는 개념으로 사용될 수 있다. 픽쳐는 필드 또는 프레임을 가리키며, 실시예에 따라 상기 용어들은 서로 혼용하여 사용될 수 있다. 구체적으로 촬영된 영상이 비월주사식(interlace) 영상일 경우, 하나의 프레임은 홀수(또는 기수, top) 필드와 짝수(또는 우수, bottom) 필드로 분리되어, 각 필드는 하나의 픽쳐 단위로 구성되어 부호화 또는 복호화 될 수 있다. 만일 촬영된 영상이 순차주사(progressive) 영상일 경우, 하나의 프레임이 픽쳐로서 구성되어 부호화 또는 복호화 될 수 있다. 또한, 본 명세서에서 '오차 신호', '레지듀얼 신호', '잔차 신호', '잔여 신호' 및 '차분 신호' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 '인트라 예측 모드', '인트라 예측 방향성 모드', '화면 내 예측 모드' 및 '화면 내 예측 방향성 모드' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 '모션', '움직임' 등의 용어는 서로 혼용하여 사용될 수 있다. 또한, 본 명세서에서 '좌측', '좌상측', '상측', '우상측', '우측', '우하측', '하측', '좌하측'은 '좌단', '좌상단', '상단', '우상단', '우단', '우하단', '하단', '좌하단'와 서로 혼용하여 사용될 수 있다. 또한, 원소(element), 멤버(member)는 서로 혼용하여 사용될 수 있다. POC(Picture Order Count)는 픽쳐(또는 프레임)의 시간적 위치 정보를 나타내며, 화면에 출력되는 재생 순서가 될 수 있으며, 픽쳐마다 고유의 POC를 가질 수 있다.In this specification, some terms may be interpreted as follows. Coding may be interpreted as encoding or decoding, as the case may be. In this specification, a device that encodes a video signal to generate a video signal bitstream is referred to as an encoding device or an encoder, and a device that decodes a video signal bitstream to restore a video signal is referred to as a decoding device or a decoder. In addition, in this specification, a video signal processing device is used as a term that includes both an encoder and a decoder. Information is a term that includes values, parameters, coefficients, elements, etc., and since the meaning may be interpreted differently depending on the case, the present invention is not limited thereto. 'Unit' is used to mean a basic unit of image processing or a specific location of a picture, and refers to an image area that includes at least one of a luminance (luma) component and a chroma component. In addition, 'block' refers to an image area including specific components among luminance components and chrominance components (i.e., Cb and Cr). However, depending on the embodiment, terms such as 'unit', 'block', 'partition', 'signal', and 'area' may be used interchangeably. In addition, in this specification, 'current block' means a block that is currently scheduled to be encoded, and 'reference block' means a block that has already been encoded or decoded and is used as a reference in the current block. In addition, in this specification, terms such as 'luma', 'luminance', and 'Y' may be used interchangeably. In addition, in this specification, terms such as 'chroma', 'chroma', 'color difference', and 'Cb or Cr' may be used interchangeably, and since chrominance components are divided into two, Cb and Cr, each chrominance component may be used separately. In addition, in this specification, a unit may be used as a concept including all of a coding unit, a prediction unit, and a transformation unit. A picture refers to a field or a frame, and the terms may be used interchangeably depending on the embodiment. Specifically, if the captured image is an interlace image, one frame is divided into an odd (or odd, top) field and an even (or even, bottom) field, and each field is configured as one picture unit and can be encoded or decoded. If the captured image is a progressive image, one frame is configured as a picture and can be encoded or decoded. In addition, in this specification, the terms 'error signal', 'residual signal', 'residual signal', 'residual signal', and 'differential signal' may be used interchangeably. In addition, in this specification, the terms 'intra prediction mode', 'intra prediction directional mode', 'intra-screen prediction mode', and 'intra-screen prediction directional mode' may be used interchangeably. In addition, in this specification, the terms 'motion', 'movement', and the like may be used interchangeably. In addition, in this specification, 'left', 'upper left', 'upper right', 'right', 'lower right', 'lower', and 'lower left' can be used interchangeably with 'left', 'upper left', 'top', 'upper right', 'right', 'lower right', 'bottom', and 'lower left'. In addition, element and member can be used interchangeably with each other. POC (Picture Order Count) indicates temporal position information of a picture (or frame), can be the playback order displayed on the screen, and can have a unique POC for each picture.
도 1은 본 발명의 일 실시예에 따른 비디오 신호 인코딩 장치(100)의 개략적인 블록도이다. 도 1을 참조하면, 본 발명의 인코딩 장치(100)는 변환부(110), 양자화부(115), 역양자화부(120), 역변환부(125), 필터링부(130), 예측부(150) 및 엔트로피 코딩부(160)를 포함한다.FIG. 1 is a schematic block diagram of a video signal encoding device (100) according to one embodiment of the present invention. Referring to FIG. 1, the encoding device (100) of the present invention includes a transformation unit (110), a quantization unit (115), an inverse quantization unit (120), an inverse transformation unit (125), a filtering unit (130), a prediction unit (150), and an entropy coding unit (160).
변환부(110)는 입력 받은 비디오 신호와 예측부(150)에서 생성된 예측 신호의 차이인 레지듀얼 신호를 변환하여 변환 계수 값을 획득한다. 예를 들어, 이산 코사인 변환(Discrete Cosine Transform, DCT), 이산 사인 변환(Discrete Sine Transform, DST) 또는 웨이블릿 변환(Wavelet Transform) 등이 사용될 수 있다. 이산 코사인 변환 및 이산 사인 변환은 입력된 픽쳐 신호를 블록 형태로 나누어 변환을 수행하게 된다. 변환에 있어서 변환 영역 내의 값들의 분포와 특성에 따라서 코딩 효율이 달라질 수 있다. 레지듀얼 블록에 대한 변환에 사용되는 변환 커널은 수직 변환 및 수평 변환의 분리 가능한 특성을 가지는 변환 커널일 수 있다. 이 경우, 레지듀얼 블록에 대한 변환은 수직 변환 및 수평 변환으로 분리되어 수행될 수 있다. 예를 들어, 인코더는 레지듀얼 블록의 수직 방향으로 변환 커널을 적용하여 수직 변환을 수행할 수 있다. 또한, 인코더는 레지듀얼 블록의 수평 방향으로 변환 커널을 적용하여 수평 변환을 수행할 수 있다. 본 개시에서, 변환 커널은 변환 매트릭스, 변환 어레이, 변환 함수, 변환과 같이 레지듀얼 신호의 변환에 사용되는 파라미터 세트를 지칭하는 용어로 사용될 수 있다. 예를 들어, 변환 커널은 복수의 사용 가능한 커널들 중 어느 하나일 수 있다. 또한, 수직 변환 및 수평 변환 각각에 대해 서로 다른 변환 타입에 기반한 변환 커널이 사용될 수도 있다.The transform unit (110) obtains a transform coefficient value by transforming the residual signal, which is the difference between the input video signal and the prediction signal generated by the prediction unit (150). For example, a discrete cosine transform (DCT), a discrete sine transform (DST), or a wavelet transform may be used. The discrete cosine transform and the discrete sine transform divide the input picture signal into blocks and perform the transform. The coding efficiency may vary depending on the distribution and characteristics of the values in the transform domain during the transform. The transform kernel used for the transform for the residual block may be a transform kernel having the separable characteristics of vertical transform and horizontal transform. In this case, the transform for the residual block may be performed by separating it into vertical transform and horizontal transform. For example, the encoder may perform vertical transform by applying the transform kernel in the vertical direction of the residual block. Additionally, the encoder can perform horizontal transform by applying a transform kernel in the horizontal direction of the residual block. In the present disclosure, the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, and a transform. For example, the transform kernel may be any one of a plurality of available kernels. Additionally, transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform.
변환계수는 블록의 좌상단으로 갈수록 높은 계수가 분포하고, 블록의 우하단으로 갈수록 '0'에 가까운 계수가 분포한다. 현재 블록의 크기가 커질수록 우하단 영역에서 계수 '0'이 많이 존재할 가능성이 있다. 크기가 큰 블록의 변환 복잡도를 감소시키기 위해서, 임의의 좌상단 영역만을 남기고 나머지 영역은 '0'으로 재설정될 수 있다.The transformation coefficients are distributed with higher coefficients toward the upper left of the block, and closer to '0' toward the lower right of the block. As the current block size increases, there is a possibility that there will be many '0' coefficients in the lower right area. In order to reduce the transformation complexity of large blocks, only the arbitrary upper left area can be left, and the remaining areas can be reset to '0'.
또한, 코딩 블록에서 일부 영역에만 오차 신호가 존재할 수 있다. 이 경우, 임의의 일부 영역에 대해서만 변환 과정이 수행될 수 있다. 실시 일 예로, 2Nx2N 크기의 블록에서 첫번째 2NxN 블록에만 오차 신호가 존재할 수 있으며, 첫번째 2NxN블록에만 변환과정이 수행되지만 두번째 2NxN 블록은 변환과정이 수행되지 않고 인코딩 또는 디코딩되지 않을 수 있다. 여기서 N은 임의의 양의 정수가 될 수 있다.In addition, error signals may exist only in some regions in a coding block. In this case, the conversion process may be performed only on some arbitrary regions. For example, in a block of size 2Nx2N, an error signal may exist only in the first 2NxN block, and the conversion process may be performed only on the first 2NxN block, but the conversion process may not be performed on the second 2NxN block and may not be encoded or decoded. Here, N may be any positive integer.
인코더는 변환 계수가 양자화되기 전에 추가적인 변환을 수행할 수 있다. 전술한 변환 방법은 1차 변환(primary transform)으로 지칭되고, 추가적인 변환은 2차 변환(secondary transform)으로 지칭될 수 있다. 2차 변환은 레지듀얼 블록 별로 선택적일 수 있다. 일 실시예에 따라, 인코더는 1차 변환만으로 저주파 영역에 에너지를 집중시키기 어려운 영역에 대해 2차 변환을 수행하여 코딩 효율을 향상시킬 수 있다. 예를 들어, 레지듀얼 값들이 레지듀얼 블록의 수평 또는 수직 방향 이외의 방향에서 크게 나타나는 블록에 대해 2차 변환이 추가로 수행될 수 있다. 2차 변환은 1차 변환과 달리 수직 변환 및 수평 변환으로 분리되어 수행되지 않을 수 있다. 이러한 2차 변환은 저대역 비-분리 변환(Low Frequency Non-Separable Transform, LFNST)으로 지칭될 수 있다.The encoder may perform an additional transform before the transform coefficients are quantized. The transform method described above may be referred to as a primary transform, and the additional transform may be referred to as a secondary transform. The secondary transform may be optional for each residual block. According to one embodiment, the encoder may perform the secondary transform for a region where it is difficult to concentrate energy in a low-frequency region with only the primary transform, thereby improving coding efficiency. For example, the secondary transform may be additionally performed for a block where residual values appear largely in a direction other than the horizontal or vertical direction of the residual block. Unlike the primary transform, the secondary transform may not be performed separately into a vertical transform and a horizontal transform. This secondary transform may be referred to as a low-frequency non-separable transform (LFNST).
양자화부(115)는 변환부(110)에서 출력된 변환 계수 값을 양자화한다.The quantization unit (115) quantizes the transform coefficient values output from the transform unit (110).
코딩 효율을 높이기 위하여 픽쳐 신호를 그대로 코딩하는 것이 아니라, 예측부(150)를 통해 이미 코딩된 영역을 이용하여 픽쳐를 예측하고, 예측된 픽쳐에 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 더하여 복원 픽쳐를 획득하는 방법이 사용된다. 인코더와 디코더에서 미스매치가 발생되지 않도록 하기 위해, 인코더에서 예측을 수행할 때에는 디코더에서도 사용 가능한 정보를 사용해야 한다. 이를 위해, 인코더에서는 부호화한 현재 블록을 다시 복원하는 과정을 수행한다. 역양자화부(120)에서는 변환 계수 값을 역양자화하고, 역변환부(125)에서는 역양자화된 변환 계수값을 이용하여 레지듀얼 값을 복원한다. 한편, 필터링부(130)는 복원된 픽쳐의 품질 개선 및 부호화 효율 향상을 위한 필터링 연산을 수행한다. 예를 들어, 디블록킹 필터, 샘플 적응적 오프셋(Sample Adaptive Offset, SAO) 및 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(Decoded Picture Buffer, DPB, 156)에 저장된다.In order to increase coding efficiency, instead of coding the picture signal as it is, a method is used in which a picture is predicted using an already coded area through a prediction unit (150), and a residual value between the original picture and the predicted picture is added to the predicted picture to obtain a restored picture. In order to prevent mismatches from occurring in the encoder and the decoder, when the encoder performs prediction, information that is also available in the decoder must be used. To this end, the encoder performs a process of restoring the encoded current block again. The inverse quantization unit (120) inverse quantizes the transform coefficient value, and the inverse transform unit (125) restores the residual value using the inverse quantized transform coefficient value. Meanwhile, the filtering unit (130) performs a filtering operation to improve the quality of the restored picture and enhance the coding efficiency. For example, a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter may be included. The filtered picture is stored in the Decoded Picture Buffer (DPB, 156) for output or use as a reference picture.
디블록킹 필터(deblocking filter)는 복원된 픽쳐에서 블록 간의 경계에 생성된 블록 내의 왜곡을 제거하기 위한 필터이다. 인코더는 블록 내의 임의 경계(edge)를 기준으로 몇 개의 열 또는 행에 포함된 픽셀들의 분포를 통해, 해당 경계에 디블록킹 필터를 적용할지 여부를 판단할 수 있다. 블록에 디블록킹 필터를 적용되는 경우, 인코더는 디블록킹 필터링 강도에 따라 긴 필터(Long Filter), 강한 필터(Strong Filter) 또는 약한 필터(Weak Filter)를 적용할 수 있다. 또한, 수평 방향 필터링 및 수직 방향 필터링이 병렬적으로 처리될 수 있다. 샘플 적응적 오프셋(SAO)은 디블록킹 필터가 적용된 레지듀얼 블록에 대하여, 픽셀 단위로 원본 영상과의 오프셋을 보정하는데 사용될 수 있다. 인코더는 특정 픽쳐에 대한 오프셋을 보정하기 위하여 영상에 포함된 픽셀을 일정한 수의 영역으로 구분한 후, 오프셋 보정을 수행할 영역을 결정하고, 해당 영역에 오프셋을 적용하는 방법(Band Offset)을 사용할 수 있다. 또는 인코더는 각 픽셀의 에지 정보를 고려하여 오프셋을 적용하는 방법(Edge Offset)을 사용할 수 있다. 적응적 루프 필터(Adaptive Loop Filter, ALF)는 영상에 포함된 픽셀을 소정의 그룹으로 나눈 후, 해당 그룹에 적용될 하나의 필터를 결정하여 그룹마다 차별적으로 필터링을 수행하는 방법이다. ALF를 적용할지 여부에 관련된 정보는 코딩 유닛 단위로 시그널링될 수 있고, 각각의 블록에 따라 적용될 ALF 필터의 모양 및 필터 계수가 달라질 수 있다. 또한, 적용할 대상 블록의 특성에 관계없이 동일한 형태(고정된 형태)의 ALF 필터가 적용될 수도 있다.A deblocking filter is a filter for removing distortion within a block generated at the boundary between blocks in a restored picture. The encoder can determine whether to apply a deblocking filter to a boundary based on the distribution of pixels included in several columns or rows based on an arbitrary boundary (edge) within a block. When a deblocking filter is applied to a block, the encoder can apply a long filter, a strong filter, or a weak filter depending on the strength of the deblocking filtering. In addition, horizontal filtering and vertical filtering can be processed in parallel. Sample adaptive offset (SAO) can be used to correct the offset from the original image on a pixel basis for a residual block to which a deblocking filter is applied. In order to correct the offset for a specific picture, the encoder can divide the pixels included in the image into a certain number of areas, determine the area to perform offset correction, and use a method (Band Offset) to apply the offset to the area. Alternatively, the encoder can use a method (Edge Offset) that applies an offset by considering edge information of each pixel. Adaptive Loop Filter (ALF) is a method that divides pixels included in an image into a predetermined group, determines one filter to be applied to the group, and performs filtering differently for each group. Information related to whether to apply ALF can be signaled in units of coding units, and the shape and filter coefficients of the ALF filter to be applied can vary depending on each block. In addition, an ALF filter of the same shape (fixed shape) can be applied regardless of the characteristics of the target block to which it is applied.
예측부(150)는 인트라 예측부(152)와 인터 예측부(154)를 포함한다. 인트라 예측부(152)에서는 현재 픽쳐 내에서 인트라(intra) 예측을 수행하며, 인터 예측부(154)에서는 복호 픽쳐 버퍼(156)에 저장된 참조 픽쳐를 이용하여 현재 픽쳐를 예측하는 인터(inter) 예측을 수행한다. 인트라 예측부(152)는 현재 픽쳐 내의 복원된 영역들로부터 인트라 예측을 수행하여, 인트라 부호화 정보를 엔트로피 코딩부(160)에 전달한다. 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스, 참조 샘플에 관한 정보 중 적어도 하나를 포함할 수 있다. 인터 예측부(154)는 다시 모션 추정부(154a) 및 모션 보상부(154b)를 포함하여 구성될 수 있다. 모션 추정부(154a)에서는 복원된 참조 픽쳐의 특정 영역을 참조하여 현재 영역과 가장 유사한 부분을 찾고 영역 간의 거리인 모션 벡터 값을 획득한다. 모션 추정부(154a)에서 획득한 참조 영역에 대한 모션 정보(참조 방향 지시 정보(L0 예측, L1 예측, 양방향 예측), 참조 픽쳐 인덱스, 모션 벡터 정보 등) 등을 엔트로피 코딩부(160)로 전달하여 비트스트림에 포함될 수 있도록 한다. 모션 추정부(154a)에서 전달된 모션 정보를 이용하여 모션 보상부(154b)에서는 인터 모션 보상을 수행하여 현재 블록을 위한 예측 블록을 생성한다. 인터 예측부(154)는 참조 영역에 대한 모션 정보를 포함하는 인터 부호화 정보를 엔트로피 코딩부(160)에 전달한다.The prediction unit (150) includes an intra prediction unit (152) and an inter prediction unit (154). The intra prediction unit (152) performs intra prediction within a current picture, and the inter prediction unit (154) performs inter prediction to predict the current picture using a reference picture stored in a decoded picture buffer (156). The intra prediction unit (152) performs intra prediction from reconstructed areas within the current picture and transfers intra encoding information to the entropy coding unit (160). The intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, an MPM index, and information about a reference sample. The inter prediction unit (154) may be configured to include a motion estimation unit (154a) and a motion compensation unit (154b). The motion estimation unit (154a) refers to a specific area of the restored reference picture to find the most similar part to the current area and obtains a motion vector value, which is the distance between the areas. The motion information (reference direction indication information (L0 prediction, L1 prediction, bidirectional prediction), reference picture index, motion vector information, etc.) for the reference area obtained by the motion estimation unit (154a) is transferred to the entropy coding unit (160) so that it can be included in the bitstream. Using the motion information transferred from the motion estimation unit (154a), the motion compensation unit (154b) performs inter motion compensation to generate a prediction block for the current block. The inter prediction unit (154) transfers inter encoding information including motion information for the reference area to the entropy coding unit (160).
추가적인 실시예에 따라, 예측부(150)는 인트라 블록 카피(Intra block copy, IBC) 예측부(미도시)를 포함할 수 있다. IBC 예측부는 현재 픽쳐 내의 복원된 샘플들로부터 IBC 예측을 수행하여, IBC 부호화 정보를 엔트로피 코딩부(160)에 전달한다. IBC 예측부는 현재 픽쳐 내의 특정 영역을 참조하여 현재 영역의 예측에 이용되는 참조 영역을 지시하는 블록 벡터값을 획득한다. IBC 예측부는 획득된 블록 벡터값을 이용하여 IBC 예측을 수행할 수 있다. IBC 예측부는 IBC 부호화 정보를 엔트로피 코딩부(160)로 전달한다. IBC 부호화 정보는 참조 영역의 크기 정보, 블록 벡터 정보(움직임 후보 리스트 내에서 현재 블록의 블록 벡터 예측을 위한 인덱스 정보, 블록 벡터 차분 정보) 중에서 적어도 하나를 포함할 수 있다.According to an additional embodiment, the prediction unit (150) may include an intra block copy (IBC) prediction unit (not shown). The IBC prediction unit performs IBC prediction from reconstructed samples in the current picture and transfers IBC encoding information to the entropy coding unit (160). The IBC prediction unit obtains a block vector value indicating a reference region used for prediction of the current region by referring to a specific region in the current picture. The IBC prediction unit may perform IBC prediction using the obtained block vector value. The IBC prediction unit transfers the IBC encoding information to the entropy coding unit (160). The IBC encoding information may include at least one of size information of the reference region, block vector information (index information for block vector prediction of the current block in the motion candidate list, block vector differential information).
위와 같은 픽쳐 예측이 수행될 경우, 변환부(110)는 원본 픽쳐와 예측 픽쳐 간의 레지듀얼 값을 변환하여 변환 계수 값을 획득한다. 이때, 변환은 픽쳐 내에서 특정 블록 단위로 수행될 수 있으며, 특정 블록의 크기는 기 설정된 범위 내에서 가변할 수 있다. 양자화부(115)는 변환부(110)에서 생성된 변환 계수 값을 양자화하여 양자화된 변환 계수를 엔트로피 코딩부(160)로 전달한다.When the picture prediction as above is performed, the transformation unit (110) transforms the residual value between the original picture and the predicted picture to obtain a transformation coefficient value. At this time, the transformation can be performed in units of specific blocks within the picture, and the size of the specific block can be varied within a preset range. The quantization unit (115) quantizes the transformation coefficient value generated by the transformation unit (110) and transfers the quantized transformation coefficient to the entropy coding unit (160).
상기 2차원 배열 형태의 양자화된 변환 계수는 엔트로피 코딩을 위해 1차원의 배열 형태로 재정렬될 수 있다. 양자화된 변환 계수를 스캐닝하는 방법은 변환 블록의 크기 및 화면 내 예측 모드에 따라 어떠한 스캔 방법이 사용될지 여부가 결정될 수 있다. 실시 일 예로, 대각(Diagonal), 수직(vertical), 수평(horizontal) 스캔이 적용될 수 있다. 이러한 스캔 정보는 블록 단위로 시그널링될 수 있으며, 이미 정해진 규칙에 따라 유도될 수 있다.The above quantized transform coefficients in the form of a two-dimensional array can be rearranged into a one-dimensional array for entropy coding. The method of scanning the quantized transform coefficients can be determined by which scan method is used depending on the size of the transform block and the prediction mode within the screen. As an example of implementation, diagonal, vertical, and horizontal scans can be applied. Such scan information can be signaled on a block-by-block basis and can be derived according to a previously determined rule.
엔트로피 코딩부(160)는 양자화된 변환 계수를 나타내는 정보, 인트라 부호화 정보, 및 인터 부호화 정보 등을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성한다. 엔트로피 코딩부(160)에서는 가변 길이 코딩(Variable Length Coding, VLC) 방식과 산술 코딩(arithmetic coding) 방식 등이 사용될 수 있다. 가변 길이 코딩(VLC) 방식은 입력되는 심볼들을 연속적인 코드워드로 변환하는데, 코드워드의 길이는 가변적일 수 있다. 예를 들어, 자주 발생하는 심볼들을 짧은 코드워드로, 자주 발생하지 않은 심볼들은 긴 코드워드로 표현하는 것이다. 가변 길이 코딩 방식으로서 컨텍스트 기반 적응형 가변 길이 코딩(Context-based Adaptive Variable Length Coding, CAVLC) 방식이 사용될 수 있다. 산술 코딩은 각 데이터 심볼들의 확률 분포를 이용하여 연속적인 데이터 심볼들을 하나의 소수로 변환하는데, 산술 코딩은 각 심볼을 표현하기 위하여 필요한 최적의 소수 비트를 얻을 수 있다. 산술 코딩으로서 컨텍스트 기반 적응형 산술 부호화(Context-based Adaptive Binary Arithmetic Code, CABAC)가 이용될 수 있다. The entropy coding unit (160) entropy-codes information representing quantized transform coefficients, intra-coding information, and inter-coding information to generate a video signal bitstream. The entropy coding unit (160) may use a variable length coding (VLC) method and an arithmetic coding method. The variable length coding (VLC) method converts input symbols into continuous codewords, and the length of the codewords may be variable. For example, frequently occurring symbols are expressed as short codewords, and infrequently occurring symbols are expressed as long codewords. A context-based adaptive variable length coding (CAVLC) method may be used as a variable length coding method. Arithmetic coding converts continuous data symbols into a single prime number by using the probability distribution of each data symbol, and arithmetic coding can obtain the optimal prime number bits required to express each symbol. Context-based Adaptive Binary Arithmetic Code (CABAC) can be used as an arithmetic coding.
CABAC은 실험을 통해 얻은 확률을 기반으로 생성된 여러 개의 문맥 모델(context model)을 통해 이진 산술 부호화하는 방법이다. 문맥 모델은 컨텍스트 모델이라고 할 수도 있다. 먼저, 심볼이 이진 형태가 아닐 경우, 인코더는 exp-Golomb 등을 사용하여 각 심볼을 이진화한다. 이진화된 0 또는 1은 빈(bin)으로 기술될 수 있다. CABAC 초기화 과정은 문맥 초기화와 산술 코딩 초기화로 구분된다. 문맥 초기화는 각 심볼의 발생 확률을 초기화하는 과정으로, 심볼의 종류, 양자화 파라미터(QP), 슬라이스 타입(I, P, B 인지)에 따라 결정된다. 이러한 초기화 정보를 가지는 문맥 모델은 실험을 통해 얻은 확률 기반 값을 사용할 수 있다. 문맥 모델은 현재 코딩하려는 심볼에 대한 LPS(Least Probable Symbol) 또는 MPS(Most Probable Symbol)의 발생 확률과 0과 1중에서 어떤 빈 값이 MPS에 해당되는지에 대한 정보(valMPS)를 제공한다. 문맥 인덱스(Context index, ctxIdx)를 통해 여러 개의 문맥 모델 중에서 하나가 선택되며, 문맥 인덱스는 현재 부호화할 블록의 정보 또는 주변 블록의 정보를 통해 유도될 수 있다. 문맥 모델에서 선택된 확률 모델을 기반으로 이진 산술 코딩을 위한 초기화가 수행된다. 이진 산술 부호화는 0과 1의 발생 확률을 통해 확률 구간으로 분할한 후, 처리할 빈에 해당하는 확률 구간이 다음에 처리될 빈에 대한 전체 확률 구간이 되는 과정을 통해 부호화가 진행된다. 마지막 빈이 처리된 확률 구간 안의 위치 정보가 출력된다. 단, 확률 구간이 무한정 분할될 수 없으므로, 일정 크기 이내로 줄어들 경우에는 재규격화(renormalization)과정이 수행되어 확률 구간이 넓어지고 해당 위치 정보가 출력된다. 또한, 각 빈이 처리된 후, 처리된 빈의 정보를 통해 다음 처리될 빈에 대한 확률이 새롭게 설정되는 확률 업데이트 과정이 수행될 수 있다.CABAC is a method of binary arithmetic coding using several context models generated based on the probability obtained through experiments. The context model can also be called a context model. First, if the symbol is not in binary form, the encoder binarizes each symbol using exp-Golomb, etc. The binarized 0 or 1 can be described as a bin. The CABAC initialization process is divided into context initialization and arithmetic coding initialization. Context initialization is a process of initializing the occurrence probability of each symbol, and is determined according to the type of symbol, quantization parameter (QP), and slice type (I, P, B). The context model with this initialization information can use the probability-based value obtained through experiments. The context model provides the occurrence probability of the Least Probable Symbol (LPS) or the Most Probable Symbol (MPS) for the symbol to be currently coded, and information (valMPS) on which bin value corresponds to the MPS among 0 and 1. One of several context models is selected through the context index (ctxIdx), and the context index can be derived from information about the current block to be encoded or information about the surrounding blocks. Initialization for binary arithmetic coding is performed based on the probability model selected from the context model. Binary arithmetic coding is encoded through a process in which the probability interval corresponding to the bin to be processed is divided into probability intervals through the occurrence probability of 0 and 1, and then the probability interval becomes the entire probability interval for the bin to be processed next. The location information within the probability interval in which the last bin is processed is output. However, since the probability interval cannot be divided infinitely, when it is reduced to a certain size, a renormalization process is performed to expand the probability interval and the corresponding location information is output. In addition, after each bin is processed, a probability update process can be performed in which the probability for the next bin to be processed is newly set through the information of the processed bin.
상기 생성된 비트스트림은 NAL(Network Abstraction Layer) 유닛을 기본 단위로 캡슐화 된다. NAL 유닛은 영상 데이터를 포함하는 VCL(Video Coding Layer) NAL 유닛과 영상 데이터를 디코딩하기 위한 파라미터 정보를 포함하는 non-VCL NAL 유닛으로 구분되며, 다양한 종류의 VCL 또는 non-VCL NAL 유닛이 존재한다. NAL 유닛은 NAL 헤더 정보와 데이터인 RBSP(Raw Byte Sequence Payload)로 구성되며, NAL 헤더 정보에는 RBSP에 대한 요약 정보가 포함된다. VCL NAL 유닛의 RBSP에는 부호화된 정수 개의 코딩 트리 유닛(coding tree unit)을 포함한다. 비디오 디코더에서 비트스트림을 복호화하기 위해서는 먼저 비트스트림을 NAL 유닛 단위로 분리한 후, 분리된 각각의 NAL 유닛을 복호화해야 한다. 한편, 비디오 신호 비트스트림의 복호화를 위해 필요한 정보들은비디오 파라미터 세트(Video Parameter Set, VPS), 시퀀스 파라미터 세트(Sequence Parameter Set, SPS), 픽쳐 파라미터 세트(Picture Parameter Set, PPS), 적응 파라미터 세트(Adaptation Parameter Set, APS) 등에 포함되어 전송될 수 있다. VCL NAL 유닛의 RBSP에는 정수 개의 코딩 트리 유닛(coding tree unit)이 포함될 수 있다. VPS는 화질, 해상도, 프레임 율 스케일러빌러티를 지원하는 비트스트림 또는 멀티뷰를 지원하는 비트스트림에서 각 레이어마다 시그널링되는 SPS 파라미터 세트에서 중복된 파라미터를 추출하여 공통의 신택스로 구성한 파라미터 세트이다. SPS는 허용가능한 코딩 툴(혹은 알고리즘) 및 영상 포맷에 대한 정보를 포함하고 있는 프로파일(Profile), 처리 가능한 영상의 해상도와 프레임율 그리고 허용가능한 메모리 크기 등에 대한 디코더의 처리 능력에 대한 정보를 포함하고 있는 레벨(Level), 처리 가능한 최대 비트율에 대한 정보를 포함하고 있는 티어(Tier), 영상의 해상도, 비트 깊이(bit depth), 기능에 대한 활성화 여부 정보 중에서 적어도 하나 이상을 포함하는 파라미터 세트이다. PPS는 영상의 해상도, 타일 분할 정보, 가중치 예측에 대한 활성화 여부 정보, 양자화 파라미터, 필터링 관련 정보 중에서 적어도 하나 이상을 포함하는 파라미터 세트이다. APS는 APS 타입에 따라 ALF 필터 계수 정보, LMCS 관련 파라미터, 양자화 스케일 파라미터 중에서 하나의 정보를 포함하는 파라미터 세트이다. APS는 VCL NAL 유닛보다 먼저 시그널링되는 프리픽스(prefix) APS와 VCL NAL 유닛 이후에 시그널링되는 서픽스(suffix) APS로 구분되며, ALF APS의 경우에는 이전 픽쳐에서 유도된 ALF 필터 계수를 다음 픽쳐에 적용하는 것이 효율적이므로, suffix APS로 시그널링될 수 있다.The above generated bitstream is encapsulated into NAL (Network Abstraction Layer) units as basic units. The NAL unit is divided into a VCL (Video Coding Layer) NAL unit containing video data and a non-VCL NAL unit containing parameter information for decoding the video data, and there are various types of VCL or non-VCL NAL units. The NAL unit consists of NAL header information and RBSP (Raw Byte Sequence Payload) data, and the NAL header information includes summary information about the RBSP. The RBSP of the VCL NAL unit includes an integer number of encoded coding tree units. In order to decode the bitstream in a video decoder, the bitstream must first be divided into NAL unit units, and then each divided NAL unit must be decoded. Meanwhile, information required for decoding a video signal bitstream may be transmitted as included in a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), an Adaptation Parameter Set (APS), etc. An RBSP of a VCL NAL unit may include an integer number of coding tree units. A VPS is a parameter set configured with a common syntax by extracting duplicate parameters from an SPS parameter set signaled for each layer in a bitstream supporting image quality, resolution, and frame rate scalability or a bitstream supporting multi-view. SPS is a parameter set including at least one of a Profile containing information on allowable coding tools (or algorithms) and image formats, a Level containing information on the processing capability of a decoder such as processable image resolution and frame rate and allowable memory size, a Tier containing information on the maximum processable bit rate, and information on image resolution, bit depth, and whether or not to enable a function. PPS is a parameter set including at least one of image resolution, tile division information, whether or not to enable weight prediction, quantization parameters, and filtering-related information. APS is a parameter set including one of ALF filter coefficient information, LMCS-related parameters, and quantization scale parameters depending on the APS type. APS is divided into prefix APS, which is signaled before the VCL NAL unit, and suffix APS, which is signaled after the VCL NAL unit. In the case of ALF APS, it is efficient to apply the ALF filter coefficients derived from the previous picture to the next picture, so it can be signaled as suffix APS.
한편, 도 1의 블록도는 본 발명의 일 실시예에 따른 인코딩 장치(100)를 나타낸 것으로서, 분리하여 표시된 블록들은 인코딩 장치(100)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 인코딩 장치(100)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 인코딩 장치(100)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.Meanwhile, the block diagram of FIG. 1 illustrates an encoding device (100) according to one embodiment of the present invention, and the blocks shown separately illustrate elements of the encoding device (100) by logically distinguishing them. Accordingly, the elements of the encoding device (100) described above may be mounted as one chip or as multiple chips depending on the design of the device. According to one embodiment, the operation of each element of the encoding device (100) described above may be performed by a processor (not shown).
도 2는 본 발명의 일 실시예에 따른 비디오 신호 디코딩 장치(200)의 개략적인 블록도이다. 도 2를 참조하면 본 발명의 디코딩 장치(200)는 엔트로피 디코딩부(210), 역양자화부(220), 역변환부(225), 필터링부(230) 및 예측부(250)를 포함한다.FIG. 2 is a schematic block diagram of a video signal decoding device (200) according to one embodiment of the present invention. Referring to FIG. 2, the decoding device (200) of the present invention includes an entropy decoding unit (210), an inverse quantization unit (220), an inverse transformation unit (225), a filtering unit (230), and a prediction unit (250).
엔트로피 디코딩부(210)는 비디오 신호 비트스트림을 엔트로피 디코딩하여, 각 영역에 대한 변환 계수 정보, 인트라 부호화 정보, 인터 부호화 정보 등을 추출한다. 예를 들어, 엔트로피 디코딩부(210)는 비디오 신호 비트스트림으로부터 특정 영역의 변환 계수 정보에 대한 이진화 코드를 획득할 수 있다. 또한, 엔트로피 디코딩부(210)는 이진화 코드를 역 이진화하여 양자화된 변환 계수를 획득한다. 역양자화부(220)는 양자화된 변환 계수를 역양자화하고, 역변환부(225)는 역양자화된 변환 계수를 이용하여 레지듀얼 값을 복원한다. 비디오 신호 처리 장치(200)는 역변환부(225)에서 획득된 레지듀얼 값을 예측부(250)에서 획득된 예측 값과 합산하여 원래의 화소값을 복원한다.The entropy decoding unit (210) entropy decodes the video signal bitstream to extract transform coefficient information, intra-coding information, inter-coding information, etc. for each region. For example, the entropy decoding unit (210) can obtain a binarization code for transform coefficient information of a specific region from the video signal bitstream. In addition, the entropy decoding unit (210) inversely binarizes the binarization code to obtain quantized transform coefficients. The inverse quantization unit (220) inversely quantizes the quantized transform coefficients, and the inverse transform unit (225) restores the residual value using the inverse quantized transform coefficients. The video signal processing device (200) restores the original pixel value by adding the residual value obtained by the inverse transform unit (225) with the prediction value obtained by the prediction unit (250).
한편, 필터링부(230)는 픽쳐에 대한 필터링을 수행하여 화질을 향상시킨다. 여기에는 블록 왜곡 현상을 감소시키기 위한 디블록킹 필터 및/또는 픽쳐 전체의 왜곡 제거를 위한 적응적 루프 필터 등이 포함될 수 있다. 필터링을 거친 픽쳐는 출력되거나 다음 픽쳐에 대한 참조 픽쳐로 이용하기 위하여 복호 픽쳐 버퍼(DPB, 256)에 저장된다.Meanwhile, the filtering unit (230) performs filtering on the picture to improve the image quality. This may include a deblocking filter for reducing block distortion and/or an adaptive loop filter for removing distortion of the entire picture. The filtered picture is output or stored in the decoded picture buffer (DPB, 256) to be used as a reference picture for the next picture.
예측부(250)는 인트라 예측부(252) 및 인터 예측부(254)를 포함한다. 예측부(250)는 전술한 엔트로피 디코딩부(210)를 통해 복호화된 부호화 타입, 각 영역에 대한 변환 계수, 인트라/인터 부호화 정보 등을 활용하여 예측 픽쳐를 생성한다. 복호화가 수행되는 현재 블록을 복원하기 위해서, 현재 블록이 포함된 현재 픽쳐 또는 다른 픽쳐들의 복호화된 영역이 이용될 수 있다. 복원에 현재 픽쳐만을 이용하는, 즉 인트라 예측 또는 인트라 BC 예측을 수행하는 픽쳐(또는, 타일/슬라이스)를 인트라 픽쳐 또는 I 픽쳐(또는, 타일/슬라이스), 인트라 예측, 인터 예측 및 인트라 BC 예측을 모두 수행할 수 있는 픽쳐(또는, 타일/슬라이스)를 인터 픽쳐(또는, 타일/슬라이스)라고 한다. 인터 픽쳐(또는, 타일/슬라이스) 중 각 블록의 샘플값들을 예측하기 위하여 최대 하나의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 예측 픽쳐(predictive picture) 또는 P 픽쳐(또는, 타일/슬라이스)라고 하며, 최대 두 개의 모션 벡터 및 참조 픽쳐 인덱스를 이용하는 픽쳐(또는, 타일/슬라이스)를 쌍예측 픽쳐(Bi-predictive picture) 또는 B 픽쳐(또는, 타일/슬라이스) 라고 한다. 다시 말해서, P 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 하나의 모션 정보 세트를 이용하고, B 픽쳐(또는, 타일/슬라이스)는 각 블록을 예측하기 위해 최대 두 개의 모션 정보 세트를 이용한다. 여기서, 모션 정보 세트는 하나 이상의 모션 벡터와 하나의 참조 픽쳐 인덱스를 포함한다.The prediction unit (250) includes an intra prediction unit (252) and an inter prediction unit (254). The prediction unit (250) generates a prediction picture by utilizing the encoding type decoded through the entropy decoding unit (210) described above, the transform coefficients for each region, intra/inter encoding information, etc. In order to restore the current block on which decoding is performed, the decoded region of the current picture or other pictures including the current block may be used. A picture (or tile/slice) that uses only the current picture for restoration, that is, performs intra prediction or intra BC prediction, is called an intra picture or I picture (or tile/slice), and a picture (or tile/slice) that can perform all of intra prediction, inter prediction, and intra BC prediction is called an inter picture (or tile/slice). A picture (or tile/slice) that uses at most one motion vector and reference picture index to predict sample values of each block among inter-pictures (or tiles/slices) is called a predictive picture or P-picture (or tile/slice), and a picture (or tile/slice) that uses at most two motion vectors and reference picture indices is called a bi-predictive picture or B-picture (or tile/slice). In other words, a P-picture (or tile/slice) uses at most one motion information set to predict each block, and a B-picture (or tile/slice) uses at most two motion information sets to predict each block. Here, a motion information set includes one or more motion vectors and one reference picture index.
인트라 예측부(252)는 인트라 부호화 정보 및 현재 픽쳐 내의 복원된 샘플들을 이용하여 예측 블록을 생성한다. 전술한 바와 같이, 인트라 부호화 정보는 인트라 예측 모드, MPM(Most Probable Mode) 플래그, MPM 인덱스 중 적어도 하나를 포함할 수 있다. 인트라 예측부(252)는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 샘플들을 참조 샘플들로 이용하여 현재 블록의 샘플 값들을 예측한다. 본 개시에서, 복원된 샘플들, 참조 샘플들 및 현재 블록의 샘플들은 픽셀들을 나타낼 수 있다. 또한, 샘플 값(sample value)들은 픽셀 값들을 나타낼 수 있다.The intra prediction unit (252) generates a prediction block using intra encoding information and reconstructed samples in the current picture. As described above, the intra encoding information may include at least one of an intra prediction mode, an MPM (Most Probable Mode) flag, and an MPM index. The intra prediction unit (252) predicts sample values of the current block using reconstructed samples located on the left and/or above the current block as reference samples. In the present disclosure, the reconstructed samples, the reference samples, and the samples of the current block may represent pixels. In addition, the sample values may represent pixel values.
일 실시예에 따르면, 참조 샘플들은 현재 블록의 주변 블록에 포함된 샘플들일 수 있다. 예를 들어, 참조 샘플들은 현재 블록의 좌측 경계에 인접한 샘플들 및/또는 상측 경계에 인접한 샘플들일 수 있다. 또한, 참조 샘플들은 현재 블록의 주변 블록의 샘플들 중 현재 블록의 좌측 경계로부터 기 설정된 거리 이내의 라인 상에 위치하는 샘플들 및/또는 현재 블록의 상측 경계로부터 기 설정된 거리 이내의 라인 상에 위치하는 샘플들일 수 있다. 이때, 현재 블록의 주변 블록은 현재 블록에 인접한 좌측(L) 블록, 상측(A) 블록, 하좌측(Below Left, BL) 블록, 상우측(Above Right, AR) 블록 또는 상좌측(Above Left, AL) 블록 중 적어도 하나를 포함할 수 있다.According to one embodiment, the reference samples may be samples included in a neighboring block of the current block. For example, the reference samples may be samples adjacent to a left boundary of the current block and/or samples adjacent to an upper boundary. In addition, the reference samples may be samples located on a line within a preset distance from a left boundary of the current block and/or samples located on a line within a preset distance from an upper boundary of the current block among samples of neighboring blocks of the current block. In this case, the neighboring blocks of the current block may include at least one of a left (L) block, an upper (A) block, a lower left (BL) block, an above right (AR) block, or an above left (AL) block adjacent to the current block.
인터 예측부(254)는 복호 픽쳐 버퍼(256)에 저장된 참조 픽쳐 및 인터 부호화 정보를 이용하여 예측 블록을 생성한다. 인터 부호화 정보는 참조 블록에 대한 현재 블록의 모션 정보 세트(참조 픽쳐 인덱스, 모션 벡터 정보 등)를 포함할 수 있다. 인터 예측에는 L0 예측, L1 예측 및 쌍예측(Bi-prediction)이 있을 수 있다. L0 예측은 L0 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측이고, L1 예측은 L1 픽쳐 리스트에 포함된 1개의 참조 픽쳐를 이용한 예측을 의미한다. 이를 위해서는 1세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 필요할 수 있다. 쌍예측 방식에서는 최대 2개의 참조 영역을 이용할 수 있는데, 이 2개의 참조 영역은 동일한 참조 픽쳐에 존재할 수도 있고, 서로 다른 픽쳐에 각각 존재할 수도 있다. 즉, 쌍예측 방식에서는 최대 2세트의 모션 정보(예를 들어, 모션 벡터 및 참조 픽쳐 인덱스)가 이용될 수 있는데, 2개의 모션 벡터가 동일한 참조 픽쳐 인덱스에 대응될 수도 있고 서로 다른 참조 픽쳐 인덱스에 대응될 수도 있다. 이때, 참조 픽쳐들은 현재 픽쳐를 기준으로 시간적으로 이전 또는 이후에 위치하는 픽쳐로서, 이미 복원된 완료된 픽쳐가 될 수 있다. 일 실시예에 따라, 쌍예측 방식에서는 사용되는 2개의 참조 영역은 L0 픽쳐 리스트 및 L1 픽쳐 리스트 각각에서 선택된 영역일 수 있다. 또한, 현재 픽쳐의 표시 순서를 나타내는 POC(picture order count)를 기준으로 현재 픽쳐의 POC 보다 POC가 작은 참조 픽쳐만을 사용하거나 현재 픽쳐의 POC 보다 POC가 큰 참조 픽쳐만을 사용하는 예측 방법을 단방향 (uni-directional prediction) 예측이라고 할 수 있다. 또한, 현재 픽쳐의 표시 순서를 나타내는 POC(picture order count)를 기준으로 현재 픽쳐의 POC 보다 POC가 작은 참조 픽쳐와 현재 픽쳐의 POC 보다 POC가 큰 참조 픽쳐를 모두 사용하는 예측 방법을 양방향 (bi-directional prediction) 예측이라고 할 수 있다. 단방향 예측에서 하나의 참조 픽쳐만을 사용하는 예측 방법을 단예측(uni-prediction)이라고 할 수 있으며, 단 방향 예측에서 2개의 참조 픽쳐를 사용하는 예측 방법을 양예측(Bi-prediction) 또는 쌍예측이라고 할 수 있다.The inter prediction unit (254) generates a prediction block using the reference picture and inter encoding information stored in the decoded picture buffer (256). The inter encoding information may include a set of motion information (reference picture index, motion vector information, etc.) of the current block for the reference block. Inter prediction may include L0 prediction, L1 prediction, and bi-prediction. L0 prediction is prediction using one reference picture included in the L0 picture list, and L1 prediction means prediction using one reference picture included in the L1 picture list. For this, one set of motion information (e.g., motion vector and reference picture index) may be required. In the bi-prediction method, up to two reference areas can be used, and these two reference areas may exist in the same reference picture or may exist in different pictures, respectively. That is, in the bi-prediction method, up to two sets of motion information (e.g., motion vectors and reference picture indices) can be used, and the two motion vectors may correspond to the same reference picture index or may correspond to different reference picture indices. At this time, the reference pictures are pictures that are located temporally before or after the current picture and may be completed pictures that have already been restored. According to one embodiment, the two reference areas used in the bi-prediction method may be areas selected from each of the L0 picture list and the L1 picture list. In addition, a prediction method that uses only reference pictures having a POC smaller than that of the current picture or uses only reference pictures having a POC larger than that of the current picture based on the POC (picture order count) indicating the display order of the current picture may be called uni-directional prediction. Also, a prediction method that uses both a reference picture with a POC smaller than that of the current picture and a reference picture with a POC larger than that of the current picture based on the picture order count (POC) that indicates the display order of the current picture can be called bi-directional prediction. A prediction method that uses only one reference picture in uni-directional prediction can be called uni-prediction, and a prediction method that uses two reference pictures in uni-directional prediction can be called bi-prediction or pair prediction.
인터 예측부(254)는 모션 벡터 및 참조 픽쳐 인덱스를 이용하여 현재 블록의 참조 블록을 획득할 수 있다. 상기 참조 블록은 참조 픽쳐 인덱스에 대응하는 참조 픽쳐 내에 존재한다. 또한, 모션 벡터에 의해서 특정된 블록의 샘플 값 또는 이의 보간(interpolation)된 값이 현재 블록의 예측자(predictor)로 이용될 수 있다. 서브펠(sub-pel) 단위의 픽셀 정확도를 갖는 모션 예측을 위하여 이를 테면, 휘도 신호에 대하여 8-탭 보간 필터가, 색차 신호에 대하여 4-탭 보간 필터가 사용될 수 있다. 다만, 서브펠 단위의 모션 예측을 위한 보간 필터는 이에 한정되지 않는다. 이와 같이 인터 예측부(254)는 이전에 복원된 픽쳐로부터 현재 유닛의 텍스쳐를 예측하는 모션 보상(motion compensation)을 수행한다. 이때, 인터 예측부는 모션 정보 세트를 이용할 수 있다.The inter prediction unit (254) can obtain a reference block of the current block using a motion vector and a reference picture index. The reference block exists in a reference picture corresponding to the reference picture index. In addition, a sample value of a block specified by a motion vector or an interpolated value thereof can be used as a predictor of the current block. For motion prediction with pixel accuracy in sub-pel units, for example, an 8-tap interpolation filter can be used for a luminance signal and a 4-tap interpolation filter can be used for a chrominance signal. However, the interpolation filter for motion prediction in sub-pel units is not limited thereto. In this way, the inter prediction unit (254) performs motion compensation to predict a texture of a current unit from a previously restored picture. At this time, the inter prediction unit can use a motion information set.
추가적인 실시예에 따라, 예측부(250)는 IBC 예측부(미도시)를 포함할 수 있다. IBC 예측부는 현재 픽쳐 내의 복원된 샘플들을 포함하는 특정 영역을 참조하여 현재 영역을 복원할 수 있다. IBC 예측부는 엔트로피 디코딩부(210)로부터 획득된 IBC 부호화 정보를 이용하여 IBC 예측을 수행할 수 있다. IBC 부호화 정보는 블록 벡터 정보를 포함할 수 있다.According to an additional embodiment, the prediction unit (250) may include an IBC prediction unit (not shown). The IBC prediction unit may reconstruct the current region by referring to a specific region including reconstructed samples in the current picture. The IBC prediction unit may perform IBC prediction using IBC encoding information obtained from the entropy decoding unit (210). The IBC encoding information may include block vector information.
상기 인트라 예측부(252) 또는 인터 예측부(254)로부터 출력된 예측값, 및 역변환부(225)로부터 출력된 레지듀얼 값이 더해져서 복원된 비디오 픽쳐가 생성된다. 즉, 비디오 신호 디코딩 장치(200)는 예측부(250)에서 생성된 예측 블록과 역변환부(225)로부터 획득된 레지듀얼을 이용하여 현재 블록을 복원한다.A restored video picture is generated by adding the prediction value output from the intra prediction unit (252) or inter prediction unit (254) and the residual value output from the inverse transformation unit (225). That is, the video signal decoding device (200) restores the current block using the prediction block generated from the prediction unit (250) and the residual obtained from the inverse transformation unit (225).
한편, 도 2의 블록도는 본 발명의 일 실시예에 따른 디코딩 장치(200)를 나타낸 것으로서, 분리하여 표시된 블록들은 디코딩 장치(200)의 엘리먼트들을 논리적으로 구별하여 도시한 것이다. 따라서 전술한 디코딩 장치(200)의 엘리먼트들은 디바이스의 설계에 따라 하나의 칩으로 또는 복수의 칩으로 장착될 수 있다. 일 실시예에 따르면, 전술한 디코딩 장치(200)의 각 엘리먼트의 동작은 프로세서(미도시)에 의해 수행될 수 있다.Meanwhile, the block diagram of FIG. 2 illustrates a decoding device (200) according to one embodiment of the present invention, and the blocks shown separately illustrate elements of the decoding device (200) by logically distinguishing them. Accordingly, the elements of the decoding device (200) described above may be mounted as one chip or as multiple chips depending on the design of the device. According to one embodiment, the operation of each element of the decoding device (200) described above may be performed by a processor (not shown).
한편, 본 명세서에서 제안된 기술은 인코더와 디코더의 방법 및 장치에 모두 적용 가능한 기술이며, 시그널링과 파싱으로 기술된 부분은 설명의 편의를 위해 기술한 것일 수 있다. 일반적으로 시그널링은 인코더 관점에서 각 신택스(syntax)를 부호화하기 위한 것이고, 파싱은 디코더 관점에서 각 신택스의 해석을 위한 것으로 설명될 수 있다. 즉, 각 신택스는 인코더로부터 비트스트림에 포함되어 시그널링될 수 있으며, 디코더에서는 신택스를 파싱하여 복원과정에서 사용할 수 있다. 이때, 규정된 계층적 구성대로 나열한 각 신택스에 대한 비트의 시퀀스를 비트스트림이라고 할 수 있다.Meanwhile, the technology proposed in this specification is applicable to both the method and device of the encoder and the decoder, and the parts described as signaling and parsing may be described for the convenience of explanation. In general, signaling can be described as encoding each syntax from the perspective of the encoder, and parsing can be described as interpreting each syntax from the perspective of the decoder. That is, each syntax can be included in the bitstream from the encoder and signaled, and the decoder can parse the syntax and use it in the restoration process. At this time, the sequence of bits for each syntax listed according to the prescribed hierarchical configuration can be called a bitstream.
하나의 픽쳐는 서브 픽쳐(sub-picture), 슬라이스(slice), 타일(tile) 등으로 분할되어 부호화될 수 있다. 서브 픽쳐는 하나 이상의 슬라이스 또는 타일을 포함할 수 있다. 하나의 픽쳐가 여러 개의 슬라이스 또는 타일로 분할되어 부호화되었을 경우, 픽쳐 내의 모든 슬라이스 또는 타일이 디코딩이 완료되어야만 화면에 출력이 가능하다. 반면에, 하나의 픽쳐가 여러 개의 서브 픽쳐로 부호화되었을 경우, 임의의 서브 픽쳐만 디코딩되어 화면에 출력될 수 있다. 슬라이스는 여러 개의 타일 또는 서브 픽쳐를 포함할 수 있다. 또는 타일은 여러 개의 서브 픽쳐 또는 슬라이스를 포함할 수 있다. 서브 픽쳐, 슬라이스, 타일은 서로 독립적으로 인코딩 또는 디코딩이 가능하므로 병렬처리 및 처리 속도 향상에 효과적이다. 하지만, 인접한 다른 서브 픽쳐, 다른 슬라이스, 다른 타일의 부호화된 정보를 이용할 수 없으므로 비트량이 증가되는 단점이 있다. 서브 픽쳐, 슬라이스, 타일은 여러 개의 코딩 트리 유닛(Coding Tree Unit, CTU)으로 분할되어 부호화될 수 있다.A picture can be encoded by being divided into sub-pictures, slices, tiles, etc. A sub-picture can include one or more slices or tiles. When a picture is encoded by being divided into multiple slices or tiles, all slices or tiles in the picture must be decoded before it can be displayed on the screen. On the other hand, when a picture is encoded into multiple sub-pictures, only any sub-picture can be decoded and displayed on the screen. A slice can include multiple tiles or sub-pictures. Or, a tile can include multiple sub-pictures or slices. Since sub-pictures, slices, and tiles can be encoded or decoded independently of each other, it is effective for parallel processing and processing speed improvement. However, since encoded information of adjacent other sub-pictures, other slices, and other tiles cannot be used, there is a disadvantage in that the bit amount increases. A sub-picture, slice, or tile can be encoded by being divided into multiple coding tree units (CTUs).
도 3은 픽쳐 내에서 코딩 트리 유닛(Coding Tree Unit, CTU)이 코딩 유닛들(Coding Units, CUs)로 분할되는 실시예를 도시한다. 비디오 신호의 코딩 과정에서, 픽쳐는 코딩 트리 유닛(CTU)들의 시퀀스로 분할될 수 있다. 코딩 트리 유닛은 휘도(luma) 코딩 트리 블록(Coding Tree Block, CTB)와 2개의 색차(chroma) 코딩 트리 블록들, 그리고 그것의 부호화된 신택스(syntax) 정보로 구성될 수 있다. 하나의 코딩 트리 유닛은 하나의 코딩 유닛으로 구성될 수 있으며, 또는 하나의 코딩 트리 유닛은 여러 개의 코딩 유닛으로 분할될 수 있다. 하나의 코딩 유닛은 휘도 코딩 블록(Coding Block, CB)과 2개의 색차 코딩 블록들, 그리고 그것의 부호화된 신택스 정보로 구성될 수 있다. 하나의 코딩 블록은 여러 개의 서브 코딩 블록으로 분할될 수 있다. 하나의 코딩 유닛은 하나의 변환 유닛(Transform Unit, TU)으로 구성될 수 있으며, 또는 하나의 코딩 유닛은 여러 개의 변환 유닛으로 분할될 수 있다. 하나의 변환 유닛은 휘도 변환 블록(Transform Block, TB)과 2개의 색차 변환 블록들, 그리고 그것의 부호화된 신택스 정보로 구성될 수 있다. 코딩 트리 유닛은 복수의 코딩 유닛들로 분할될 수 있다. 코딩 트리 유닛은 분할되지 않고 리프 노드가 될 수도 있다. 이 경우, 코딩 트리 유닛 자체가 코딩 유닛이 될 수 있다. FIG. 3 illustrates an embodiment in which a Coding Tree Unit (CTU) in a picture is divided into Coding Units (CUs). In the process of coding a video signal, a picture may be divided into a sequence of Coding Tree Units (CTUs). A Coding Tree Unit may be composed of a luminance (luma) Coding Tree Block (CTB), two chroma (chroma) Coding Tree Blocks, and their encoded syntax information. One Coding Tree Unit may be composed of one Coding Unit, or one Coding Tree Unit may be split into multiple Coding Units. One Coding Unit may be composed of a luminance Coding Block (CB), two chroma Coding Blocks, and their encoded syntax information. One Coding Block may be split into multiple sub-Coding Blocks. One Coding Unit may be composed of one Transform Unit (TU), or one Coding Unit may be split into multiple Transform Units. A transform unit may be composed of a luminance transform block (Transform Block, TB), two chrominance transform blocks, and its encoded syntax information. A coding tree unit may be divided into multiple coding units. A coding tree unit may not be divided and may be a leaf node. In this case, the coding tree unit itself may be a coding unit.
코딩 유닛은 상기에서 설명한 비디오 신호의 처리 과정, 즉 인트라/인터 예측, 변환, 양자화 및/또는 엔트로피 코딩 등의 과정에서 픽쳐를 처리하기 위한 기본 단위를 가리킨다. 하나의 픽쳐 내에서 코딩 유닛의 크기 및 모양은 일정하지 않을 수 있다. 코딩 유닛은 정사각형 또는 직사각형의 모양을 가질 수 있다. 직사각형 코딩 유닛(또는, 직사각형 블록)은 수직 코딩 유닛(또는, 수직 블록)과 수평 코딩 유닛(또는, 수평 블록)을 포함한다. 본 명세서에서, 수직 블록은 높이가 너비보다 큰 블록이며, 수평 블록은 너비가 높이보다 큰 블록이다. 또한, 본 명세서에서 정사각형이 아닌(non-square) 블록은 직사각형 블록을 가리킬 수 있지만, 본 발명은 이에 한정되지 않는다.A coding unit refers to a basic unit for processing a picture in the processing of a video signal described above, that is, a process such as intra/inter prediction, transformation, quantization, and/or entropy coding. The size and shape of a coding unit within a picture may not be constant. A coding unit may have a square or rectangular shape. A rectangular coding unit (or rectangular block) includes a vertical coding unit (or vertical block) and a horizontal coding unit (or horizontal block). In this specification, a vertical block is a block whose height is greater than its width, and a horizontal block is a block whose width is greater than its height. In addition, a non-square block in this specification may refer to a rectangular block, but the present invention is not limited thereto.
도 3을 참조하면, 코딩 트리 유닛은 먼저 쿼드 트리(Quad Tree, QT) 구조로 분할된다. 즉, 쿼드 트리 구조에서 2NX2N 크기를 가지는 하나의 노드는 NXN 크기를 가지는 네 개의 노드들로 분할될 수 있다. 본 명세서에서 쿼드 트리는 4진(quaternary) 트리로도 지칭될 수 있다. 쿼드 트리 분할은 재귀적으로 수행될 수 있으며, 모든 노드들이 동일한 깊이로 분할될 필요는 없다.Referring to FIG. 3, the coding tree unit is first divided into a Quad Tree (QT) structure. That is, in the Quad Tree structure, one node having a size of 2NX2N can be divided into four nodes having a size of NXN. In this specification, the Quad Tree may also be referred to as a quaternary tree. The Quad Tree division can be performed recursively, and not all nodes need to be divided to the same depth.
한편, 전술한 쿼드 트리의 리프 노드(leaf node)는 멀티-타입 트리(Multi-Type Tree, MTT) 구조로 더욱 분할될 수 있다. 본 발명의 실시예에 따르면, 멀티 타입 트리 구조에서는 하나의 노드가 수평 또는 수직 분할의 2진(binary, 바이너리) 또는 3진(ternary, 터너리) 트리 구조로 분할될 수 있다. 즉, 멀티-타입 트리 구조에는 수직 바이너리 분할, 수평 바이너리 분할, 수직 터너리 분할 및 수평 터너리 분할의 4가지 분할 구조가 존재한다. 본 발명의 실시예에 따르면, 상기 각 트리 구조에서 노드의 너비 및 높이는 모두 2의 거듭제곱 값을 가질 수 있다. 예를 들어, 바이너리 트리(Binary Tree, BT) 구조에서, 2NX2N 크기의 노드는 수직 바이너리 분할에 의해 2개의 NX2N 노드들로 분할되고, 수평 바이너리 분할에 의해 2개의 2NXN 노드들로 분할될 수 있다. 또한, 터너리 트리(Ternary Tree, TT) 구조에서, 2NX2N 크기의 노드는 수직 터너리 분할에 의해 (N/2)X2N, NX2N 및 (N/2)X2N의 노드들로 분할되고, 수평 터너리 분할에 의해 2NX(N/2), 2NXN 및 2NX(N/2)의 노드들로 분할될 수 있다. 이러한 멀티-타입 트리 분할은 재귀적으로 수행될 수 있다.Meanwhile, the leaf node of the aforementioned quad tree can be further split into a Multi-Type Tree (MTT) structure. According to an embodiment of the present invention, in the Multi-Type Tree structure, one node can be split into a binary or ternary tree structure of horizontal or vertical splitting. That is, the Multi-Type Tree structure has four split structures: vertical binary splitting, horizontal binary splitting, vertical ternary splitting, and horizontal ternary splitting. According to an embodiment of the present invention, in each of the above tree structures, the width and height of the node can both have a power of 2 value. For example, in the Binary Tree (BT) structure, a node of 2NX2N size can be split into two NX2N nodes by vertical binary splitting, and can be split into two 2NXN nodes by horizontal binary splitting. Also, in the Ternary Tree (TT) structure, a node of size 2NX2N can be split into nodes of size (N/2)X2N, NX2N, and (N/2)X2N by vertical ternary splitting, and into nodes of size 2NX(N/2), 2NXN, and 2NX(N/2) by horizontal ternary splitting. This multi-type tree splitting can be performed recursively.
멀티-타입 트리의 리프 노드는 코딩 유닛이 될 수 있다. 코딩 유닛이 최대 변환 길이에 비해 크지 않은 경우, 해당 코딩 유닛은 더 이상의 분할 없이 예측 및/또는 변환의 단위로 사용될 수 있다. 일 실시예로서, 현재 코딩 유닛의 너비 또는 높이가 최대 변환 길이보다 큰 경우, 현재 코딩 유닛은 분할에 관한 명시적 시그널링 없이 복수의 변환 유닛으로 분할될 수 있다. 한편, 전술한 쿼드 트리 및 멀티-타입 트리에서 다음의 파라메터들 중 적어도 하나가 사전에 정의되거나 PPS, SPS, VPS 등과 같은 상위 레벨 세트의 RBSP를 통해 전송될 수 있다. 1) CTU 크기: 쿼드 트리의 루트 노드(root node) 크기, 2) 최소 QT 크기(MinQtSize): 허용된 최소 QT 리프 노드 크기, 3) 최대 BT 크기(MaxBtSize): 허용된 최대 BT 루트 노드 크기, 4) 최대 TT 크기(MaxTtSize): 허용된 최대 TT 루트 노드 크기, 5) 최대 MTT 깊이(MaxMttDepth): QT의 리프 노드로부터의 MTT 분할의 최대 허용 깊이, 6) 최소 BT 크기(MinBtSize): 허용된 최소 BT 리프 노드 크기, 7) 최소 TT 크기(MinTtSize): 허용된 최소 TT 리프 노드 크기.A leaf node of a multi-type tree can be a coding unit. If the coding unit is not larger than the maximum transform length, the coding unit can be used as a unit of prediction and/or transformation without further splitting. In one embodiment, if the width or height of the current coding unit is larger than the maximum transform length, the current coding unit can be split into a plurality of transform units without explicit signaling regarding the splitting. Meanwhile, in the quad tree and multi-type tree described above, at least one of the following parameters can be defined in advance or transmitted via an RBSP of a higher level set, such as a PPS, an SPS, a VPS, etc. 1) CTU Size: The size of the root node of the quad tree, 2) Minimum QT Size (MinQtSize): The minimum allowed size of a QT leaf node, 3) Maximum BT Size (MaxBtSize): The maximum allowed size of a BT root node, 4) Maximum TT Size (MaxTtSize): The maximum allowed size of a TT root node, 5) Maximum MTT Depth (MaxMttDepth): The maximum allowed depth of an MTT partition from a leaf node of a QT, 6) Minimum BT Size (MinBtSize): The minimum allowed size of a BT leaf node, 7) Minimum TT Size (MinTtSize): The minimum allowed size of a TT leaf node.
도 4는 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하는 방법의 일 실시예를 도시한다. 전술한 쿼드 트리 및 멀티-타입 트리의 분할을 시그널링하기 위해 기 설정된 플래그들이 사용될 수 있다. 도 4를 참조하면, 노드의 분할 여부를 지시하는 플래그 'split_cu_flag', 쿼드 트리 노드의 분할 여부를 지시하는 플래그 'split_qt_flag', 멀티-타입 트리 노드의 분할 방향을 지시하는 플래그 'mtt_split_cu_vertical_flag' 또는 멀티-타입 트리 노드의 분할 모양을 지시하는 플래그 'mtt_split_cu_binary_flag' 중 적어도 하나가 사용될 수 있다.FIG. 4 illustrates an embodiment of a method for signaling splitting of a quad tree and a multi-type tree. Pre-configured flags may be used to signal splitting of the quad tree and the multi-type tree described above. Referring to FIG. 4, at least one of a flag 'split_cu_flag' indicating whether a node is split, a flag 'split_qt_flag' indicating whether a quad tree node is split, a flag 'mtt_split_cu_vertical_flag' indicating a splitting direction of a multi-type tree node, or a flag 'mtt_split_cu_binary_flag' indicating a splitting shape of a multi-type tree node may be used.
본 발명의 실시예에 따르면, 현재 노드의 분할 여부를 지시하는 플래그인 'split_cu_flag'가 먼저 시그널링될 수 있다. 'split_cu_flag'의 값이 0인 경우, 현재 노드가 분할되지 않는 것을 나타내며, 현재 노드는 코딩 유닛이 된다. 현재 노드가 코팅 트리 유닛인 경우, 코딩 트리 유닛은 분할되지 않은 하나의 코딩 유닛을 포함한다. 현재 노드가 쿼드 트리 노드 'QT node'인 경우, 현재 노드는 쿼드 트리의 리프 노드 'QT leaf node'이며 코딩 유닛이 된다. 현재 노드가 멀티-타입 트리 노드 'MTT node'인 경우, 현재 노드는 멀티-타입 트리의 리프 노드 'MTT leaf node'이며 코딩 유닛이 된다.According to an embodiment of the present invention, a flag 'split_cu_flag' indicating whether a current node is split may be signaled first. If the value of 'split_cu_flag' is 0, it indicates that the current node is not split, and the current node becomes a coding unit. If the current node is a coding tree unit, the coding tree unit includes one coding unit that is not split. If the current node is a quad tree node 'QT node', the current node is a leaf node 'QT leaf node' of the quad tree and becomes a coding unit. If the current node is a multi-type tree node 'MTT node', the current node is a leaf node 'MTT leaf node' of the multi-type tree and becomes a coding unit.
'split_cu_flag'의 값이 1인 경우, 현재 노드는 'split_qt_flag'의 값에 따라 쿼드 트리 또는 멀티-타입 트리의 노드들로 분할될 수 있다. 코딩 트리 유닛은 쿼드 트리의 루트 노드이며, 쿼드 트리 구조로 우선 분할될 수 있다. 쿼드 트리 구조에서는 각각의 노드 'QT node' 별로 'split_qt_flag'가 시그널링된다. 'split_qt_flag'의 값이 1인 경우 해당 노드는 4개의 정사각형 노드들로 분할되며, 'split_qt_flag'의 값이 0인 경우 해당 노드는 쿼드 트리의 리프 노드 'QT leaf node'가 되며, 해당 노드는 멀티-타입 노드들로 분할된다. 본 발명의 실시예에 따르면, 현재 노드의 종류에 따라서 쿼드 트리 분할은 제한될 수 있다. 현재 노드가 코딩 트리 유닛(쿼트 트리의 루트 노드) 또는 쿼트 트리 노드인 경우에 쿼드 트리 분할이 허용될 수 있으며, 현재 노드가 멀티-타입 트리 노드인 경우 쿼트 트리 분할은 허용되지 않을 수 있다. 각각의 쿼드 트리 리프 노드 'QT leaf node'는 멀티-타입 트리 구조로 더 분할될 수 있다. 상술한 바와 같이, 'split_qt_flag'가 0인 경우 현재 노드는 멀티-타입 노드들로 분할될 수 있다. 분할 방향 및 분할 모양을 지시하기 위하여, 'mtt_split_cu_vertical_flag' 및 'mtt_split_cu_binary_flag'가 시그널링될 수 있다. 'mtt_split_cu_vertical_flag'의 값이 1인 경우 노드 'MTT node'의 수직 분할이 지시되며, 'mtt_split_cu_vertical_flag'의 값이 0인 경우 노드 'MTT node'의 수평 분할이 지시된다. 또한, 'mtt_split_cu_binary_flag'의 값이 1인 경우 노드 'MTT node'는 2개의 직사각형 노드들로 분할되며, 'mtt_split_cu_binary_flag'의 값이 0인 경우 노드 'MTT node'는 3개의 직사각형 노드들로 분할된다.When the value of 'split_cu_flag' is 1, the current node can be split into nodes of a quad tree or a multi-type tree depending on the value of 'split_qt_flag'. The coding tree unit is a root node of the quad tree and can be first split into a quad tree structure. In the quad tree structure, 'split_qt_flag' is signaled for each node 'QT node'. When the value of 'split_qt_flag' is 1, the node is split into four square nodes, and when the value of 'split_qt_flag' is 0, the node becomes a leaf node 'QT leaf node' of the quad tree and the node is split into multi-type nodes. According to an embodiment of the present invention, the quad tree splitting may be limited depending on the type of the current node. A quad-tree split may be allowed if the current node is a coding tree unit (a root node of a quad-tree) or a quad-tree node, and a quad-tree split may not be allowed if the current node is a multi-type tree node. Each quad-tree leaf node 'QT leaf node' may be further split into a multi-type tree structure. As described above, if 'split_qt_flag' is 0, the current node may be split into multi-type nodes. To indicate the splitting direction and the splitting shape, 'mtt_split_cu_vertical_flag' and 'mtt_split_cu_binary_flag' may be signaled. If the value of 'mtt_split_cu_vertical_flag' is 1, a vertical split of the node 'MTT node' is indicated, and if the value of 'mtt_split_cu_vertical_flag' is 0, a horizontal split of the node 'MTT node' is indicated. Also, if the value of 'mtt_split_cu_binary_flag' is 1, the node 'MTT node' is split into two rectangular nodes, and if the value of 'mtt_split_cu_binary_flag' is 0, the node 'MTT node' is split into three rectangular nodes.
트리 분할 구조는 휘도 블록과 색차 블록이 동일한 형태로 분할될 수 있다. 즉, 색차 블록은 휘도 블록의 분할 형태를 참조하여 색차 블록을 분할할 수 있다. 현재 색차 블록이 임의의 정해진 크기보다 적다면, 휘도 블록이 분할되었더라도 색차 블록은 분할되지 않을 수 있다.The tree partition structure can be partitioned into luminance blocks and chrominance blocks in the same form. That is, the chrominance block can be partitioned into chrominance blocks by referring to the partition form of the luminance block. If the current chrominance block is smaller than an arbitrary set size, the chrominance block may not be partitioned even if the luminance block is partitioned.
트리 분할 구조는 휘도 블록과 색차 블록이 서로 다른 형태를 가질 수 있다. 이때, 휘도 블록에 대한 분할 정보와 색차 블록에 대한 분할 정보가 각각 시그널링될 수 있다. 또한, 분할 정보 뿐만 아니라 휘도 블록과 색차 블록의 부호화 정보도 다를 수 있다. 실시 일 예로, 휘도 블록과 색차 블록의 인트라 부호화 모드, 움직임 정보에 대한 부호화 정보 등이 적어도 하나 이상 다를 수 있다.The tree partition structure may have different forms for luminance blocks and chrominance blocks. At this time, partition information for the luminance block and partition information for the chrominance block may be signaled separately. In addition, not only the partition information but also the encoding information for the luminance block and the chrominance block may be different. As an example of implementation, at least one or more intra encoding modes for the luminance block and the chrominance block, encoding information for the motion information, etc. may be different.
가장 작은 단위로 분할될 노드는 하나의 코딩 블록으로 처리될 수 있다. 현재 블록이 코딩 블록일 경우, 코딩 블록은 여러 개의 서브 블록(서브 코딩 블록)으로 분할될 수 있으며, 각 서브 블록의 예측 정보는 서로 같거나 또는 다를 수 있다. 실시 일 예로, 코딩 유닛이 인트라 모드일 경우, 각 서브 블록의 인트라 예측 모드는 서로 같거나 또는 다를 수 있다. 또한, 코딩 유닛이 인터 모드일 경우, 각 서브 블록의 움직임 정보는 서로 같거나 또는 다를 수 있다. 또한, 각 서브 블록은 서로 독립적으로 인코딩 또는 디코딩이 가능할 수 있다. 각각의 서브 블록은 서브 블록 인덱스(sub-block index, sbIdx)를 통해 구분될 수 있다. 또한 코딩 유닛이 서브 블록으로 분할될 때, 수평 또는 수직 방향으로 분할되거나 사선으로 분할될 수 있다. 인트라 모드에서 현재 코딩 유닛을 수평 또는 수직 방향으로 2개 또는 4개의 서브 블록으로 분할하는 모드를 ISP(Intra Sub Partitions)이라 한다. 인터 모드에서 현재 코딩 블록을 사선으로 분할하는 모드를 GPM(Geometric partitioning mode)이라 한다. GPM모드에서 사선의 위치와 방향은 미리 정해진 각도 테이블을 사용하여 유도하고, 각도 테이블의 인덱스 정보가 시그널링된다. The node to be divided into the smallest unit can be processed as one coding block. When the current block is a coding block, the coding block can be divided into several sub-blocks (sub-coding blocks), and the prediction information of each sub-block can be the same or different. For example, when the coding unit is an intra mode, the intra prediction modes of each sub-block can be the same or different. In addition, when the coding unit is an inter mode, the motion information of each sub-block can be the same or different. In addition, each sub-block can be encoded or decoded independently of each other. Each sub-block can be distinguished through a sub-block index (sbIdx). In addition, when the coding unit is divided into sub-blocks, it can be divided horizontally or vertically or diagonally. In the intra mode, the mode that divides the current coding unit into two or four sub-blocks horizontally or vertically is called ISP (Intra Sub Partitions). In the inter mode, the mode that divides the current coding block diagonally is called GPM (Geometric partitioning mode). In GPM mode, the position and direction of the diagonal line are derived using a predefined angle table, and the index information of the angle table is signaled.
움직임 정보는 참조 방향 지시 정보, 참조 픽쳐 정보, 움직임 벡터, 움직임 해상도, affine 모델, CPMV(control point motion vector), 블록 벡터, 블록 벡터 해상도, MHP 정보, LIC 정보, 필터링 정보, BCW 정보, RRIBC 정보 중에서 하나 이상을 포함할 수 있다. Motion information may include one or more of reference direction indication information, reference picture information, motion vector, motion resolution, affine model, CPMV (control point motion vector), block vector, block vector resolution, MHP information, LIC information, filtering information, BCW information, and RRIBC information.
참조 방향 지시 정보는 L0 예측, L1 예측, L0 및 L1 예측으로 구성되며, L0 예측과 L1 예측은 단예측 및 단방향 예측이며, L0 및 L1 예측은 양예측이다. 그리고 L0 및 L1 예측은 단방향 예측 혹은 양방향 예측이 될 수 있다. 여기서 L0 예측은 L0 참조 픽쳐 리스트 내의 참조 픽쳐를 사용하여 예측하며, L1 예측은 L1 참조 픽쳐 리스트 내의 참조 픽쳐를 사용하여 예측할 수 있다. L0 참조 픽쳐 리스트에는 현재 픽쳐의 POC를 기준으로 현재 픽쳐의 POC 보다 POC가 작은 참조 픽쳐가 참조 픽쳐 리스트에 추가될 수 있다. 또한, L0 참조 픽쳐 리스트는 현재 픽쳐의 POC보다 POC가 가까운 참조 픽쳐부터 POC가 먼 참조 픽쳐 순으로 구성될 수 있다. L1 참조 픽쳐 리스트는 현재 픽쳐의 POC를 기준으로 현재 픽쳐의 POC 보다 POC가 큰 참조 픽쳐가 참조 픽쳐 리스트에 추가될 수 있다. 또한, L1 참조 픽쳐 리스트는 현재 픽쳐의 POC보다 POC가 가까운 참조 픽쳐부터 POC가 먼 참조 픽쳐 순으로 구성될 수 있다. L0 및 L1 참조 픽쳐 리스트는 슬라이스, 서브 픽쳐, 픽쳐마다 달라질 수 있다. 또한, L0 참조 픽쳐 리스트에는 L1 참조 픽쳐 리스트의 참조 픽쳐가 포함될 수 있다. 그리고 L1 참조 픽쳐 리스트에는 L0 참조 픽쳐 리스트의 참조 픽쳐가 포함될 수 있다. The reference direction indication information consists of L0 prediction, L1 prediction, L0 and L1 prediction, and L0 prediction and L1 prediction are unidirectional prediction and unidirectional prediction, and L0 and L1 prediction are bidirectional prediction. And L0 and L1 prediction can be unidirectional prediction or bidirectional prediction. Here, L0 prediction is predicted using reference pictures in the L0 reference picture list, and L1 prediction can be predicted using reference pictures in the L1 reference picture list. In the L0 reference picture list, a reference picture having a POC smaller than the POC of the current picture can be added to the reference picture list based on the POC of the current picture. In addition, the L0 reference picture list can be composed in order from a reference picture having a POC closer than the POC of the current picture to a reference picture having a POC farther from the POC of the current picture. In the L1 reference picture list, a reference picture having a POC larger than the POC of the current picture can be added to the reference picture list based on the POC of the current picture. In addition, the L1 reference picture list can be organized in the order of reference pictures whose POC is closer to the current picture's POC and reference pictures whose POC is farther away. The L0 and L1 reference picture lists can be different for each slice, subpicture, and picture. In addition, the L0 reference picture list can include reference pictures of the L1 reference picture list. And the L1 reference picture list can include reference pictures of the L0 reference picture list.
참조 픽쳐 정보는 블록마다 달라질 수 있으며, 현재 블록이 L0 참조 픽쳐 리스트 및/또는 L1 참조 픽쳐 리스트에서 어떤 참조 픽쳐를 사용하여 예측되는지를 지시하는 인덱스 정보일 수 있다. 참조 픽쳐 정보는 L0 참조 픽쳐 정보, L1 참조 픽쳐 정보 중에서 하나 이상 포함할 수 있다.Reference picture information may vary from block to block, and may be index information indicating which reference picture in the L0 reference picture list and/or the L1 reference picture list is used to predict the current block. The reference picture information may include at least one of L0 reference picture information and L1 reference picture information.
움직임 벡터는 참조 픽쳐에서 현재 블록과 가장 매칭이 잘 되는 블록을 지시하는 정보로써, 픽쳐 내에서 현재 블록의 좌상단 위치를 기준으로 참조 블록까지의 거리를 수평 및 수직 좌표로 나타낸 값이다.A motion vector is information that indicates the block in a reference picture that best matches the current block. It is a value that represents the distance to the reference block in horizontal and vertical coordinates based on the upper left position of the current block in the picture.
움직임 해상도는 움직임 벡터의 해상도를 나타내며, 움직임 해상도는 4 화소 단위, 1 화소(정수 화소) 단위, 1/2 화소 단위, 1/4 화소 단위, 1/8 화소 단위, 1/16 화소 단위 등으로 나타낼 수 있다.Motion resolution represents the resolution of the motion vector, and motion resolution can be expressed in units of 4 pixels, 1 pixel (integer pixel), 1/2 pixel, 1/4 pixel, 1/8 pixel, and 1/16 pixel.
블록 벡터는 현재 픽쳐 내 이미 복원된 영역에서 현재 블록과 가장 매칭이 잘 되는 블록을 지시하는 정보로써, 픽쳐 내에서 현재 블록의 좌상단 위치를 기준으로 참조 블록까지의 거리를 수평 및 수직 좌표로 나타낸 값이다.A block vector is information that indicates the block that best matches the current block in the area that has already been restored within the current picture. It is a value that represents the distance to the reference block in horizontal and vertical coordinates based on the upper left position of the current block within the picture.
블록 벡터 해상도는 4 화소 단위, 1 화소(정수 화소) 단위, 1/2 화소 단위, 1/4 화소 단위, 1/8 화소 단위, 1/16 화소 단위 등으로 나타낼 수 있다.Block vector resolution can be expressed in units of 4 pixels, 1 pixel (integer pixel), 1/2 pixel, 1/4 pixel, 1/8 pixel, and 1/16 pixel.
MHP 정보에는 추가적인 움직임 정보의 적용 여부 및 추가적인 움직임 정보를 포함할 수 있다.MHP information may include whether additional motion information is applied and may include additional motion information.
LIC 정보는 현재 블록에 대한 LIC 적용 여부를 포함할 수 있다.LIC information may include whether LIC is applied to the current block.
필터링 정보는 현재 블록의 움직임 해상도에 따라 적용되는 필터링 타입 및 계수 정보를 포함할 수 있다.Filtering information may include filtering type and coefficient information applied according to the motion resolution of the current block.
CW 정보는 현재 블록에 대한 BCW 적용 여부를 포함할 수 있다.CW information may include whether BCW is applied to the current block.
RRIBC 정보는 현재 블록이 IBC 모드로 부호화된 경우, RRIBC 적용 여부 및 RRIBC 타입에 대한 정보를 포함할 수 있다.RRIBC information may include information about whether RRIBC is applied and the RRIBC type if the current block is encoded in IBC mode.
코딩을 위한 픽쳐 예측(모션 보상)은 더 이상 나누어지지 않는 코딩 유닛(즉 코딩 트리 유닛의 리프 노드)을 대상으로 이루어진다. 이러한 예측을 수행하는 기본 단위를 이하에서는 예측 유닛(prediction unit) 또는 예측 블록(prediction block)이라고 한다.Picture prediction (motion compensation) for coding is performed on coding units that cannot be divided any further (i.e., leaf nodes of coding tree units). The basic unit that performs this prediction is referred to as a prediction unit or prediction block hereinafter.
이하, 본 명세서에서 사용되는 유닛이라는 용어는 예측을 수행하는 기본 단위인 상기 예측 유닛을 대체하는 용어로 사용될 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니며, 더욱 광의적으로는 상기 코딩 유닛을 포함하는 개념으로 이해될 수 있다.Hereinafter, the term unit used in this specification may be used as a term to replace the prediction unit, which is a basic unit for performing prediction. However, the present invention is not limited thereto, and may be understood as a concept that includes the coding unit in a broader sense.
도 5 및 도 6은 본 발명의 실시예에 따른 인트라 예측 방법을 더욱 구체적으로 도시한다. 전술한 바와 같이, 인트라 예측부는 현재 블록의 좌측 및/또는 상측에 위치한 복원된 샘플들을 참조 샘플들로 이용하여 현재 블록의 샘플 값들을 예측한다.Figures 5 and 6 illustrate an intra prediction method according to an embodiment of the present invention in more detail. As described above, the intra prediction unit predicts sample values of the current block using reconstructed samples located on the left and/or above the current block as reference samples.
먼저, 도 5는 인트라 예측 모드에서 현재 블록의 예측을 위해 사용되는 참조 샘플들의 일 실시예를 도시한다. 일 실시예에 따르면, 참조 샘플들은 현재 블록의 좌측 경계에 인접한 샘플들 및/또는 상측 경계에 인접한 샘플들일 수 있다. 도 5에 도시된 바와 같이, 현재 블록의 크기가 WXH이고 현재 블록에 인접한 단일 참조 라인(line)의 샘플들이 인트라 예측에 사용될 경우, 현재 블록의 좌측 및/또는 상측에 위치한 최대 2W+2H+1개의 주변 샘플들을 사용하여 참조 샘플들이 설정될 수 있다.First, FIG. 5 illustrates an embodiment of reference samples used for prediction of a current block in an intra prediction mode. According to an embodiment, the reference samples may be samples adjacent to a left boundary of the current block and/or samples adjacent to an upper boundary. As illustrated in FIG. 5, when the size of the current block is WXH and samples of a single reference line adjacent to the current block are used for intra prediction, reference samples may be set using at most 2W+2H+1 surrounding samples located on the left and/or above the current block.
한편, 현재 블록의 인트라 예측을 위해 다중 참조 라인의 픽셀들이 사용될 수 있다. 다중 참조 라인은 현재 블록으로부터 기 설정된 범위 이내에 위치한 n개의 라인들로 구성될 수 있다. 일 실시예에 따르면, 인트라 예측을 위해 다중 참조 라인의 픽셀들이 사용될 경우, 참조 픽셀들로 설정될 라인들을 지시하는 별도의 인덱스 정보가 시그널링될 수 있으며, 이를 참조 라인 인덱스라고 명명할 수 있다.Meanwhile, pixels of multiple reference lines may be used for intra prediction of the current block. The multiple reference lines may be composed of n lines located within a preset range from the current block. According to one embodiment, when pixels of multiple reference lines are used for intra prediction, separate index information indicating lines to be set as reference pixels may be signaled, and this may be named a reference line index.
또한, 참조 샘플로 사용될 적어도 일부의 샘플이 아직 복원되지 않은 경우, 인트라 예측부는 참조 샘플 패딩 과정을 수행하여 참조 샘플을 획득할 수 있다. 또한, 인트라 예측부는 인트라 예측의 오차를 줄이기 위해 참조 샘플 필터링 과정을 수행할 수 있다. 즉, 주변 샘플들 및/또는 참조 샘플 패딩 과정에 의해 획득된 참조 샘플들에 필터링을 수행하여 필터링된 참조 샘플들을 획득할 수 있다. 인트라 예측부는 이와 같이 획득된 참조 샘플들을 이용하여 현재 블록의 샘플들을 예측한다. 인트라 예측부는 필터링되지 않은 참조 샘플들 또는 필터링된 참조 샘플들을 이용하여 현재 블록의 샘플들을 예측한다. 본 개시에서, 주변 샘플들은 적어도 하나의 참조 라인 상의 샘플들을 포함할 수 있다. 예를 들어, 주변 샘플들은 현재 블록의 경계에 인접한 라인 상의 인접 샘플들을 포함할 수 있다.In addition, if at least some of the samples to be used as reference samples have not yet been restored, the intra prediction unit may perform a reference sample padding process to obtain a reference sample. In addition, the intra prediction unit may perform a reference sample filtering process to reduce an error of intra prediction. That is, filtering may be performed on surrounding samples and/or reference samples obtained by the reference sample padding process to obtain filtered reference samples. The intra prediction unit predicts samples of the current block using the reference samples obtained in this manner. The intra prediction unit predicts samples of the current block using unfiltered reference samples or filtered reference samples. In the present disclosure, the surrounding samples may include samples on at least one reference line. For example, the surrounding samples may include adjacent samples on a line adjacent to a boundary of the current block.
다음으로, 도 6은 인트라 예측에 사용되는 예측 모드들의 일 실시예를 도시한다. 인트라 예측을 위해, 인트라 예측 방향을 지시하는 인트라 예측 모드 정보가 시그널링될 수 있다. 인트라 예측 모드 정보는 인트라 예측 모드 세트를 구성하는 복수의 인트라 예측 모드들 중 어느 하나를 지시한다. 현재 블록이 인트라 예측 블록일 경우, 디코더는 비트스트림으로부터 현재 블록의 인트라 예측 모드 정보를 수신한다. 디코더의 인트라 예측부는 추출된 인트라 예측 모드 정보에 기초하여 현재 블록에 대한 인트라 예측을 수행한다.Next, FIG. 6 illustrates an embodiment of prediction modes used for intra prediction. For intra prediction, intra prediction mode information indicating an intra prediction direction may be signaled. The intra prediction mode information indicates one of a plurality of intra prediction modes constituting an intra prediction mode set. If the current block is an intra prediction block, the decoder receives intra prediction mode information of the current block from the bitstream. The intra prediction unit of the decoder performs intra prediction on the current block based on the extracted intra prediction mode information.
본 발명의 실시예에 따르면, 인트라 예측 모드 세트는 인트라 예측에 사용되는 모든 인트라 예측 모드들(예, 총 67개의 인트라 예측 모드들)을 포함할 수 있다. 더욱 구체적으로, 인트라 예측 모드 세트는 평면 모드, DC 모드 및 복수의(예, 65개의) 각도 모드들(즉, 방향 모드들)을 포함할 수 있다. 각각의 인트라 예측 모드는 기 설정된 인덱스(즉, 인트라 예측 모드 인덱스)를 통해 지시될 수 있다. 예를 들어, 도 6에 도시된 바와 같이 인트라 예측 모드 인덱스 0은 평면(planar) 모드를 지시하고, 인트라 예측 모드 인덱스 1은 DC 모드를 지시한다. 또한, 인트라 예측 모드 인덱스 2 내지 66은 서로 다른 각도 모드들을 각각 지시할 수 있다. 각도 모드들은 기 설정된 각도 범위 이내의 서로 다른 각도들을 각각 지시한다. 예를 들어, 각도 모드는 시계 방향으로 45도에서 -135도 사이의 각도 범위(즉, 제1 각도 범위) 이내의 각도를 지시할 수 있다. 상기 각도 모드는 12시 방향을 기준으로 정의될 수 있다. 이때, 인트라 예측 모드 인덱스 2는 수평 대각(Horizontal Diagonal, HDIA) 모드를 지시하고, 인트라 예측 모드 인덱스 18은 수평(Horizontal, HOR) 모드를 지시하고, 인트라 예측 모드 인덱스 34는 대각(Diagonal, DIA) 모드를 지시하고, 인트라 예측 모드 인덱스 50은 수직(Vertical, VER) 모드를 지시하며, 인트라 예측 모드 인덱스 66은 수직 대각(Vertical Diagonal, VDIA) 모드를 지시한다.According to an embodiment of the present invention, an intra prediction mode set may include all intra prediction modes used for intra prediction (e.g., a total of 67 intra prediction modes). More specifically, the intra prediction mode set may include a planar mode, a DC mode, and a plurality of (e.g., 65) angular modes (i.e., directional modes). Each intra prediction mode may be indicated by a preset index (i.e., an intra prediction mode index). For example, as illustrated in FIG. 6, an intra prediction mode index 0 indicates a planar mode, and an intra prediction mode index 1 indicates a DC mode. In addition, intra prediction mode indexes 2 to 66 may indicate different angular modes, respectively. The angular modes indicate different angles within a preset angular range, respectively. For example, an angular mode may indicate an angle within an angular range from 45 degrees to -135 degrees in a clockwise direction (i.e., a first angular range). The angular mode may be defined based on the 12 o'clock direction. At this time, intra prediction mode index 2 indicates horizontal diagonal (HDIA) mode, intra prediction mode index 18 indicates horizontal (HOR) mode, intra prediction mode index 34 indicates diagonal (DIA) mode, intra prediction mode index 50 indicates vertical (VER) mode, and intra prediction mode index 66 indicates vertical diagonal (VDIA) mode.
한편, 기 설정된 각도 범위는 현재 블록의 모양에 따라 서로 다르게 설정될 수 있다. 예를 들어, 현재 블록이 직사각형 블록일 경우 시계 방향으로 45도를 초과하거나 -135도 미만 각도를 지시하는 광각 모드가 추가적으로 사용될 수 있다. 현재 블록이 수평 블록일 경우, 각도 모드는 시계 방향으로 (45+offset1)도에서 (-135+offset1)도 사이의 각도 범위(즉, 제2 각도 범위) 이내의 각도를 지시할 수 있다. 이때, 제1 각도 범위를 벗어나는 각도 모드 67 내지 76이 추가적으로 사용될 수 있다. 또한, 현재 블록이 수직 블록일 경우, 각도 모드는 시계 방향으로 (45-offset2)도에서 (-135-offset2)도 사이의 각도 범위(즉, 제3 각도 범위) 이내의 각도를 지시할 수 있다. 이때, 제1 각도 범위를 벗어나는 각도 모드 -10 내지 -1이 추가적으로 사용될 수 있다. 본 발명의 실시예에 따르면, offset1 및 offset2의 값은 직사각형 블록의 너비와 높이 간의 비율에 따라 서로 다르게 결정될 수 있다. 또한, offset1 및 offset2는 양수일 수 있다.Meanwhile, the preset angle range may be set differently depending on the shape of the current block. For example, if the current block is a rectangular block, a wide-angle mode indicating an angle exceeding 45 degrees or less than -135 degrees in a clockwise direction may be additionally used. If the current block is a horizontal block, the angle mode may indicate an angle within an angle range (i.e., a second angle range) between (45+offset1) degrees and (-135+offset1) degrees in a clockwise direction. At this time, angle modes 67 to 76 that are outside the first angle range may be additionally used. In addition, if the current block is a vertical block, the angle mode may indicate an angle within an angle range (i.e., a third angle range) between (45-offset2) degrees and (-135-offset2) degrees in a clockwise direction. At this time, angle modes -10 to -1 that are outside the first angle range may be additionally used. According to an embodiment of the present invention, the values of offset1 and offset2 may be determined differently depending on a ratio between the width and the height of the rectangular block. Also, offset1 and offset2 can be positive.
본 발명의 추가적인 실시예에 따르면, 인트라 예측 모드 세트를 구성하는 복수의 각도 모드들은 기본 각도 모드와 확장 각도 모드를 포함할 수 있다. 이때, 확장 각도 모드는 기본 각도 모드에 기초하여 결정될 수 있다.According to an additional embodiment of the present invention, the plurality of angular modes constituting the intra prediction mode set may include a basic angular mode and an extended angular mode. In this case, the extended angular mode may be determined based on the basic angular mode.
일 실시예에 따르면, 기본 각도 모드는 기존 HEVC(High Efficiency Video Coding) 표준의 인트라 예측에서 사용되는 각도에 대응하는 모드이고, 확장 각도 모드는 차세대 비디오 코덱 표준의 인트라 예측에서 새롭게 추가되는 각도에 대응하는 모드일 수 있다. 더욱 구체적으로, 기본 각도 모드는 인트라 예측 모드 {2, 4, 6, …, 66} 중 어느 하나에 대응하는 각도 모드이고, 확장 각도 모드는 인트라 예측 모드 {3, 5, 7, …, 65} 중 어느 하나에 대응하는 각도 모드일 수 있다. 즉, 확장 각도 모드는 제1 각도 범위 내에서 기본 각도 모드들 사이의 각도 모드일 수 있다. 따라서, 확장 각도 모드가 지시하는 각도는 기본 각도 모드가 지시하는 각도에 기초하여 결정될 수 있다.According to one embodiment, the basic angle mode may be a mode corresponding to an angle used in intra prediction of the existing HEVC (High Efficiency Video Coding) standard, and the extended angle mode may be a mode corresponding to an angle newly added in intra prediction of the next-generation video codec standard. More specifically, the basic angle mode may be an angle mode corresponding to any one of the intra prediction modes {2, 4, 6, …, 66}, and the extended angle mode may be an angle mode corresponding to any one of the intra prediction modes {3, 5, 7, …, 65}. That is, the extended angle mode may be an angle mode between the basic angle modes within the first angle range. Therefore, the angle indicated by the extended angle mode may be determined based on the angle indicated by the basic angle mode.
다른 실시예에 따르면, 기본 각도 모드는 기 설정된 제1 각도 범위 이내의 각도에 대응하는 모드이고, 확장 각도 모드는 상기 제1 각도 범위를 벗어나는 광각 모드일 수 있다. 즉, 기본 각도 모드는 인트라 예측 모드 {2, 3, 4, …, 66} 중 어느 하나에 대응하는 각도 모드이고, 확장 각도 모드는 인트라 예측 모드 {-14, -13, -12, …, -1} 및 {67, 68, …, 80} 중 어느 하나에 대응하는 각도 모드일 수 있다. 확장 각도 모드가 지시하는 각도는 대응하는 기본 각도 모드가 지시하는 각도의 반대편 각도로 결정될 수 있다. 따라서, 확장 각도 모드가 지시하는 각도는 기본 각도 모드가 지시하는 각도에 기초하여 결정될 수 있다. 한편, 확장 각도 모드들의 개수는 이에 한정되지 않으며, 현재 블록의 크기 및/또는 모양에 따라 추가적인 확장 각도들이 정의될 수 있다. 한편, 인트라 예측 모드 세트에 포함되는 인트라 예측 모드들의 총 개수는 전술한 기본 각도 모드와 확장 각도 모드의 구성에 따라 가변할 수 있다.According to another embodiment, the basic angle mode may be a mode corresponding to an angle within a preset first angle range, and the extended angle mode may be a wide-angle mode outside the first angle range. That is, the basic angle mode may be an angle mode corresponding to any one of the intra prediction modes {2, 3, 4, … , 66}, and the extended angle mode may be an angle mode corresponding to any one of the intra prediction modes {-14, -13, -12, … , -1} and {67, 68, … , 80}. The angle indicated by the extended angle mode may be determined as an opposite angle to the angle indicated by the corresponding basic angle mode. Accordingly, the angle indicated by the extended angle mode may be determined based on the angle indicated by the basic angle mode. Meanwhile, the number of extended angle modes is not limited thereto, and additional extended angles may be defined according to the size and/or shape of the current block. Meanwhile, the total number of intra prediction modes included in the intra prediction mode set may vary depending on the configuration of the basic angle mode and the extended angle mode described above.
상기 실시예에서, 확장 각도 모드들 간의 간격은 대응하는 기본 각도 모드들 간의 간격에 기초하여 설정될 수 있다. 예를 들어, 확장 각도 모드들 {3, 5, 7, …, 65} 간의 간격은 대응하는 기본 각도 모드들 {2, 4, 6, …, 66} 간의 간격에 기초하여 결정될 수 있다. 또한, 확장 각도 모드들 {-14, -13, …, -1} 간의 간격은 대응하는 반대편의 기본 각도 모드들 {53, 53, …, 66} 간의 간격에 기초하여 결정되고, 확장 각도 모드들 {67, 68, …, 80} 간의 간격은 대응하는 반대편의 기본 각도 모드들 {2, 3, 4, …, 15} 간의 간격에 기초하여 결정될 수 있다. 확장 각도 모드들 간의 각도 간격은 대응하는 기본 각도 모드들 간의 각도 간격과 동일하도록 설정될 수 있다. 또한, 인트라 예측 모드 세트에서 확장 각도 모드들의 개수는 기본 각도 모드들의 개수 이하로 설정될 수 있다.In the above embodiment, the interval between the extended angular modes can be set based on the interval between the corresponding basic angular modes. For example, the interval between the extended angular modes {3, 5, 7, … , 65} can be determined based on the interval between the corresponding basic angular modes {2, 4, 6, … , 66}. In addition, the interval between the extended angular modes {-14, -13, … , -1} can be determined based on the interval between the corresponding opposite basic angular modes {53, 53, … , 66}, and the interval between the extended angular modes {67, 68, … , 80} can be determined based on the interval between the corresponding opposite basic angular modes {2, 3, 4, … , 15}. The angular interval between the extended angular modes can be set to be equal to the angular interval between the corresponding basic angular modes. In addition, the number of the extended angular modes in the intra prediction mode set can be set to be less than or equal to the number of the basic angular modes.
본 발명의 실시예에 따르면, 확장 각도 모드는 기본 각도 모드를 기초로 시그널링될 수 있다. 예를 들어, 광각 모드(즉, 확장 각도 모드)는 제1 각도 범위 이내의 적어도 하나의 각도 모드(즉, 기본 각도 모드)를 대체할 수 있다. 대체되는 기본 각도 모드는 광각 모드의 반대편에 대응하는 각도 모드일 수 있다. 즉, 대체되는 기본 각도 모드는 광각 모드가 지시하는 각도의 반대 방향의 각도에 대응하거나 또는 상기 반대 방향의 각도로부터 기 설정된 오프셋 인덱스만큼 차이 나는 각도에 대응하는 각도 모드이다. 본 발명의 실시예에 따르면, 기 설정된 오프셋 인덱스는 1이다. 대체되는 기본 각도 모드에 대응하는 인트라 예측 모드 인덱스는 광각 모드에 다시 매핑되어 해당 광각 모드를 시그널링할 수 있다. 예를 들어, 광각 모드 {-14, -13, …, -1}은 인트라 예측 모드 인덱스 {52, 53, …, 66}에 의해 각각 시그널링될 수 있고, 광각 모드 {67, 68, …, 80}은 인트라 예측 모드 인덱스 {2, 3, …, 15}에 의해 각각 시그널링될 수 있다. 이와 같이 기본 각도 모드를 위한 인트라 예측 모드 인덱스가 확장 각도 모드를 시그널링하도록 함으로, 각 블록의 인트라 예측에 사용되는 각도 모드들의 구성이 서로 다르더라도 동일한 세트의 인트라 예측 모드 인덱스들이 인트라 예측 모드의 시그널링에 사용될 수 있다. 따라서, 인트라 예측 모드 구성의 변화에 따른 시그널링 오버헤드가 최소화될 수 있다.According to an embodiment of the present invention, the extended angular mode can be signaled based on the base angular mode. For example, the wide-angle mode (i.e., the extended angular mode) can replace at least one angular mode (i.e., the base angular mode) within the first angular range. The replaced base angular mode can be an angular mode corresponding to the opposite side of the wide-angle mode. That is, the replaced base angular mode is an angular mode corresponding to an angle in the opposite direction to the angle indicated by the wide-angle mode or an angle that is different from the angle in the opposite direction by a preset offset index. According to an embodiment of the present invention, the preset offset index is 1. The intra prediction mode index corresponding to the replaced base angular mode can be remapped to the wide-angle mode to signal the corresponding wide-angle mode. For example, the wide-angle modes {-14, -13, ... , -1} can be signaled by the intra prediction mode indices {52, 53, ... , 66}, respectively, and the wide-angle modes {67, 68, ... , 66} can be signaled by the intra prediction mode indices {52, 53, ... , 66}, respectively. , 80} can be signaled by intra prediction mode indices {2, 3, …, 15}, respectively. By having the intra prediction mode index for the basic angular mode signal the extended angular mode in this way, even if the configurations of the angular modes used for intra prediction of each block are different, the same set of intra prediction mode indices can be used to signal the intra prediction mode. Therefore, the signaling overhead due to the change in the intra prediction mode configuration can be minimized.
한편, 확장 각도 모드의 사용 여부는 현재 블록의 모양 및 크기 중 적어도 하나에 기초하여 결정될 수 있다. 일 실시예에 따르면, 현재 블록의 크기가 기 설정된 크기보다 클 경우 확장 각도 모드가 현재 블록의 인트라 예측을 위해 사용되고, 그렇지 않을 경우 기본 각도 모드만 현재 블록의 인트라 예측을 위해 사용될 수 있다. 다른 실시예에 따르면, 현재 블록이 정사각형이 아닌 블록인 경우 확장 각도 모드가 현재 블록의 인트라 예측을 위해 사용되고, 현재 블록이 정사각형 블록인 경우 기본 각도 모드만 현재 블록의 인트라 예측을 위해 사용될 수 있다.Meanwhile, whether to use the extended angle mode may be determined based on at least one of the shape and the size of the current block. According to one embodiment, if the size of the current block is larger than a preset size, the extended angle mode may be used for intra prediction of the current block, otherwise, only the basic angle mode may be used for intra prediction of the current block. According to another embodiment, if the current block is a non-square block, the extended angle mode may be used for intra prediction of the current block, and if the current block is a square block, only the basic angle mode may be used for intra prediction of the current block.
인트라 예측부는 현재 블록의 인트라 예측 모드 정보에 기초하여, 현재 블록의 인트라 예측에 사용될 참조 샘플들 및/또는 보간된 참조 샘플들을 결정한다. 인트라 예측 모드 인덱스가 특정 각도 모드를 지시할 경우, 현재 블록의 현재 샘플로부터 상기 특정 각도에 대응하는 참조 샘플 또는 보간된 참조 샘플이 현재 픽셀의 예측에 사용된다. 따라서, 인트라 예측 모드에 따라 서로 다른 세트의 참조 샘플들 및/또는 보간된 참조 샘플들이 인트라 예측에 사용될 수 있다. 참조 샘플들 및 인트라 예측 모드 정보를 이용하여 현재 블록의 인트라 예측이 수행되고 나면, 디코더는 역변환부로부터 획득된 현재 블록의 잔차 신호를 현재 블록의 인트라 예측 값과 더하여 현재 블록의 샘플 값들을 복원한다.The intra prediction unit determines reference samples and/or interpolated reference samples to be used for intra prediction of the current block based on intra prediction mode information of the current block. If the intra prediction mode index indicates a specific angle mode, the reference sample or interpolated reference sample corresponding to the specific angle from the current sample of the current block is used for prediction of the current pixel. Therefore, different sets of reference samples and/or interpolated reference samples can be used for intra prediction depending on the intra prediction mode. After intra prediction of the current block is performed using the reference samples and intra prediction mode information, the decoder restores sample values of the current block by adding a residual signal of the current block obtained from the inverse transform unit to the intra prediction value of the current block.
인터 예측에 사용되는 움직임(모션) 정보에는 참조 방향 지시 정보(inter_pred_idc), 참조 픽쳐 인덱스(ref_idx_l0, ref_idx_l1), 움직임(모션) 벡터(mvL0, mvL1)이 포함될 수 있다. 참조 방향 지시 정보에 따라 참조 픽쳐 리스트 활용 정보(predFlagL0, predFlagL1)가 설정될 수 있다. 실시 일 예로, L0 참조 픽쳐를 사용하는 단방향 예측인 경우, predFlagL0=1, predFlagL1=0로 설정될 수 있다. L1 참조 픽쳐를 사용하는 단방향 예측인 경우, predFlagL0=0, predFlagL1=1로 설정될 수 있다. L0와 L1 참조 픽쳐를 모두 사용하는 양방향 예측인 경우, predFlagL0=1, predFlagL1=1로 설정될 수 있다.Motion information used for inter prediction may include reference direction indication information (inter_pred_idc), reference picture indexes (ref_idx_l0, ref_idx_l1), and motion vectors (mvL0, mvL1). Reference picture list utilization information (predFlagL0, predFlagL1) may be set according to the reference direction indication information. As an example, in case of unidirectional prediction using an L0 reference picture, predFlagL0=1, predFlagL1=0 may be set. In case of unidirectional prediction using an L1 reference picture, predFlagL0=0, predFlagL1=1 may be set. In case of bidirectional prediction using both L0 and L1 reference pictures, predFlagL0=1, predFlagL1=1 may be set.
현재 블록이 코딩 유닛일 경우, 코딩 유닛은 여러 개의 서브 블록으로 분할될 수 있으며, 각 서브 블록의 예측 정보는 서로 같거나 또는 다를 수 있다. 실시 일 예로, 코딩 유닛이 인트라 모드일 경우, 각 서브 블록의 인트라 예측 모드는 서로 같거나 또는 다를 수 있다. 또한, 코딩 유닛이 인터 모드일 경우, 각 서브 블록의 움직임 정보는 서로 같거나 또는 다를 수 있다. 또한, 각 서브 블록은 서로 독립적으로 인코딩 또는 디코딩이 가능할 수 있다. 각각의 서브 블록은 서브 블록 인덱스(sub-block index, sbIdx)를 통해 구분될 수 있다.If the current block is a coding unit, the coding unit may be divided into multiple sub-blocks, and the prediction information of each sub-block may be the same or different. For example, if the coding unit is an intra mode, the intra prediction modes of each sub-block may be the same or different. In addition, if the coding unit is an inter mode, the motion information of each sub-block may be the same or different. In addition, each sub-block may be encoded or decoded independently. Each sub-block may be distinguished through a sub-block index (sbIdx).
현재 블록의 움직임 벡터는 주변 블록의 움직임 벡터와 유사할 가능성이 높다. 따라서, 주변 블록의 움직임 벡터는 움직임 예측 값(motion vector predictor, mvp)으로 사용될 수 있고, 현재 블록의 움직임 벡터는 주변 블록의 움직임 벡터를 이용하여 유도될 수 있다. 또한, 움직임 벡터의 정확성을 높이기 위해서, 인코더에서 원본 영상으로 찾은 현재 블록의 최적의 움직임 벡터와 움직임 예측 값 간의 움직임 벡터의 차이(motion vector difference, mvd)가 시그널링될 수 있다.The motion vector of the current block is likely to be similar to the motion vectors of the surrounding blocks. Therefore, the motion vectors of the surrounding blocks can be used as motion vector predictors (mvp), and the motion vector of the current block can be derived using the motion vectors of the surrounding blocks. In addition, in order to improve the accuracy of the motion vector, the difference in motion vectors (motion vector difference, mvd) between the optimal motion vector of the current block found from the original image by the encoder and the motion predictor can be signaled.
움직임 벡터는 다양한 해상도를 가질 수 있으며, 블록 단위로 움직임 벡터의 해상도가 달라질 수 있다. 움직임 벡터 해상도는 정수 단위, 반화소 단위, 1/4 화소 단위, 1/16 화소 단위, 4의 정수 화소 단위 등으로 표현될 수 있다. 스크린 콘텐츠와 같은 영상은 문자와 같은 단순한 그래픽 형태이므로 보간(interpolation) 필터를 적용하지 않아도 되므로, 정수 단위와 4의 정수 화소 단위가 블록 단위 선택적으로 적용될 수 있다. 회전 및 스케일을 표현할 수 있는 어파인(Affine) 모드로 부호화된 블록은 형태의 변화가 심하므로, 정수 단위, 1/4 화소 단위, 1/16 화소 단위가 블록 기반 선택적으로 적용될 수 있다. 블록 단위로 움직임 벡터 해상도를 선택적으로 적용할 지에 대한 여부 정보는 amvr_flag으로 시그널링된다. 만일 적용되는 경우, 어떠한 움직임 벡터 해상도를 현재 블록에 적용할지는 amvr_precision_idx으로 시그널링된다.Motion vectors can have various resolutions, and the resolution of motion vectors can vary on a block-by-block basis. Motion vector resolution can be expressed in integer units, half-pixel units, quarter-pixel units, sixteen-pixel units, and integer-of-four pixel units. Since images such as screen contents are in simple graphical forms such as characters, no interpolation filter needs to be applied, and thus integer units and integer-of-four pixel units can be selectively applied on a block-by-block basis. Blocks encoded in an affine mode capable of expressing rotation and scale have significant shape changes, and thus integer units, quarter-pixel units, and sixteen-pixel units can be selectively applied on a block-by-block basis. Information on whether to selectively apply motion vector resolution on a block-by-block basis is signaled by amvr_flag. If applied, which motion vector resolution to apply to the current block is signaled by amvr_precision_idx.
양방향 예측이 적용되는 블록의 경우, 가중치 평균을 적용할 때 2개의 예측 블록 간의 가중치를 같거나 또는 다르게 적용할 수 있으며, 가중치에 대한 정보는 bcw_idx를 통해 시그널링된다. For blocks to which bidirectional prediction is applied, the weights between the two prediction blocks can be applied equally or differently when applying weighted average, and information about the weights is signaled via bcw_idx.
움직임 예측 값의 정확도를 높이기 위해서, 머지(Merge) 또는 AMVP(dvanced motion vector prediction) 방법이 블록 단위 선택적으로 사용될 수 있다. Merge 방법은 현재 블록의 움직임 정보를 현재 블록에 인접한 주변 블록의 움직임 정보와 동일하게 구성하는 방법으로, 동질성을 갖는 움직임 영역에서 움직임 정보가 변화없이 공간적으로 전파됨으로써 움직임 정보의 부호화 효율을 증가시키는 장점이 있다. 반면에 AMVP 방법은 정확한 움직임 정보를 표현하기 위해 L0 및 L1 예측 방향으로 각각 움직임 정보를 예측하고 가장 최적의 움직임 정보를 시그널링하는 방법이다. 디코더는 AMVP 또는 Merge 방법을 통해 현재 블록에 대한 움직임 정보를 유도한 후, 참조 픽쳐(reference picture)에서 유도한 움직임 정보에 위치한 참조 블록을 현재 블록을 위한 예측 블록으로 사용한다. In order to improve the accuracy of the motion prediction value, the Merge or AMVP (advanced motion vector prediction) method can be selectively used on a block-by-block basis. The Merge method is a method that configures the motion information of the current block to be the same as the motion information of the adjacent blocks to the current block, and has the advantage of increasing the encoding efficiency of the motion information by spatially propagating the motion information without change in the motion region having homogeneity. On the other hand, the AMVP method is a method that predicts motion information in the L0 and L1 prediction directions respectively to express accurate motion information and signals the most optimal motion information. After the decoder derives the motion information for the current block through the AMVP or Merge method, it uses the reference block located in the motion information derived from the reference picture as the prediction block for the current block.
Merge 또는 AMVP에서 움직임 정보를 유도하는 방법은 현재 블록의 주변 블록으로부터 유도된 움직임 예측 값을 사용하여 움직임 후보 리스트를 구성한 후, 최적의 움직임 후보에 대한 인덱스 정보가 시그널링되는 방법일 수 있다. AMVP의 경우, L0와 L1 각각 움직임 후보 리스트가 유도되므로, L0와 L1 각각에 대한 최적의 움직임 후보 인덱스(mvp_l0_flag, mvp_l1_flag)가 시그널링된다. Merge의 경우, 하나의 움직임 후보 리스트가 유도되므로, 하나의 머지 인덱스(merge_idx)가 시그널링된다. 하나의 코딩 유닛에서 유도되는 움직임 후보 리스트는 다양할 수 있으며, 각 움직임 후보 리스트마다 움직임 후보 인덱스 또는 머지 인덱스가 시그널링될 수 있다. 이때, Merge 모드로 부호화된 블록에서 잔여 블록에 대한 정보가 없는 모드를 머지 스킵(MergeSkip) 모드라고 할 수 있다. A method of deriving motion information in Merge or AMVP may be a method in which a motion candidate list is constructed using motion prediction values derived from neighboring blocks of a current block, and then index information for an optimal motion candidate is signaled. In the case of AMVP, since motion candidate lists are derived for each of L0 and L1, optimal motion candidate indices (mvp_l0_flag, mvp_l1_flag) for each of L0 and L1 are signaled. In the case of Merge, since one motion candidate list is derived, one merge index (merge_idx) is signaled. The motion candidate lists derived from one coding unit may vary, and a motion candidate index or a merge index may be signaled for each motion candidate list. In this case, a mode in which there is no information on a residual block in a block encoded in Merge mode may be called a MergeSkip mode.
현재 블록에 대한 양방향 움직임 정보는 AMVP와 Merge 모드가 혼용되어 유도될 수 있다. 예를 들어, L0 방향의 움직임 정보는 AMVP 방법을 사용하여 유도하고, L1 방향의 움직임 정보는 Merge 방법을 사용하여 유도될 수 있다. 반대로, L0는 Merge, L1은 AMVP를 적용할 수 있다. 이러한 부호화 모드를 AMVP-merge 모드라고 할 수 있다.Bidirectional motion information for the current block can be derived by combining AMVP and Merge modes. For example, motion information in the L0 direction can be derived using the AMVP method, and motion information in the L1 direction can be derived using the Merge method. Conversely, L0 can be applied to Merge, and L1 can be applied to AMVP. This encoding mode can be called AMVP-merge mode.
본 명세서의 움직임 후보와 움직임 정보 후보는 서로 동일한 의미일 수 있다. 또한, 본 명세서의 움직임 후보 리스트와 움직임 정보 후보 리스트는 서로 동일한 의미일 수 있다.The motion candidate and the motion information candidate in this specification may have the same meaning. In addition, the motion candidate list and the motion information candidate list in this specification may have the same meaning.
SMVD(Symmetric MVD)는 양방향 예측(bi-directional prediction)의 경우에, L0 방향과 L1 방향의 MVD(Motion Vector Difference) 값이 대칭을 이루도록 하여 전송되는 움직임 정보의 비트량을 줄이는 방법이다. L0 방향과 대칭을 이루는 L1 방향의 MVD 정보는 전송되지 않으며, L0 및 L1 방향의 참조 픽쳐 정보도 전송되지 않고 복호화 과정에서 유도될 수 있다.SMVD (Symmetric MVD) is a method for reducing the bit amount of transmitted motion information by making the MVD (Motion Vector Difference) values in the L0 and L1 directions symmetrical in the case of bi-directional prediction. The MVD information in the L1 direction that is symmetrical to the L0 direction is not transmitted, and the reference picture information in the L0 and L1 directions is also not transmitted and can be derived during the decoding process.
OBMC(Overlapped Block Motion Compensation)는 블록 간의 움직임 정보가 서로 다른 경우, 주변 블록들의 움직임 정보를 사용하여 현재 블록에 대한 예측 블록들을 생성한 후, 예측 블록들을 가중치 평균하여 현재 블록에 대한 최종 예측 블록을 생성하는 방법이다. 이는 움직임 보상된 영상의 블록 경계에서 발생되는 블록킹 현상을 줄여주는 효과가 있다.OBMC (Overlapped Block Motion Compensation) is a method that generates prediction blocks for the current block using the motion information of surrounding blocks when the motion information between blocks is different, and then generates the final prediction block for the current block by weighting and averaging the prediction blocks. This has the effect of reducing the blocking phenomenon that occurs at the block boundaries of a motion compensated image.
일반적으로 머지 움직임 후보는 움직임의 정확도가 낮다. 이러한 머지 움직임 후보의 정확도를 높이기 위해서, MMVD(Merge mode with MVD) 방법이 사용될 수 있다. MMVD 방법은 몇 개의 움직임 차분 값 후보들 중에서 선택된 하나의 후보를 이용하여 움직임 정보를 보정하는 방법이다. MMVD 방법을 통해 획득되는 움직임 정보의 보정 값에 대한 정보(예를 들어, 움직임 차분 값 후보들 중에서 선택된 하나의 후보를 지시하는 인덱스 등)은 비트스트림에 포함되어 디코더로 전송될 수 있다. 기존의 움직임 정보 차분 값이 비트스트림에 포함되는 것에 비해 움직임 정보의 보정 값에 대한 정보가 비트스트림에 포함됨으로써 비트량은 절약될 수 있다.In general, the motion accuracy of the merge motion candidate is low. In order to improve the accuracy of such a merge motion candidate, the MMVD (Merge mode with MVD) method can be used. The MMVD method is a method of correcting motion information by using one candidate selected from several motion differential value candidates. Information on the correction value of the motion information obtained through the MMVD method (e.g., an index indicating one candidate selected from the motion differential value candidates, etc.) can be included in the bitstream and transmitted to the decoder. Compared to the conventional method of including the motion information difference value in the bitstream, the number of bits can be saved by including the information on the correction value of the motion information in the bitstream.
TM(Template Matching) 방법은 현재 블록의 주변 화소를 통해 템플릿을 구성하여 템플릿과 가장 유사도가 높은 매칭 영역을 찾아서 움직임 정보를 보정하는 방법이다. TM(Template matching)은 부호화되는 비트스트림의 크기를 줄이기 위해서, 움직임 정보를 비트스트림에 포함하지 않고 디코더에서 움직임 예측을 수행하는 방법이다. 이때, 디코더는 원본 영상이 없으므로 이미 복원된 주변 블록을 사용하여 현재 블록에 대한 움직임 정보를 개략적으로 유도할 수 있다.The TM (Template Matching) method is a method of compiling a template using surrounding pixels of the current block, finding a matching area with the highest similarity to the template, and correcting motion information. TM (Template Matching) is a method of performing motion prediction in a decoder without including motion information in the bitstream in order to reduce the size of the encoded bitstream. At this time, since the decoder does not have an original image, it can roughly derive motion information for the current block using the already restored surrounding blocks.
DMVR(Decoder-side Motion Vector Refinement) 방법은 조금 더 정확한 움직임 정보를 찾기 위해 이미 복원된 참조 영상들의 상관성을 통해 움직임 정보를 보정하는 방법으로써, 현재 블록의 양방향 움직임 정보를 사용하여 2개의 참조 픽쳐의 임의의 정해진 영역 내에서 참조 픽쳐 내의 참조 블록 간의 가장 매칭이 잘되는 지점을 새로운 양방향 움직임으로 사용하는 방법이다. 이러한 DMVR이 수행될 때, 인코더는 하나의 블록 단위에서 DMVR을 수행하여 움직임 정보를 보정한 후, 다시 블록을 서브 블록으로 분할하여 각 서브 블록 단위에서 DMVR을 수행하여 서브 블록의 움직임 정보를 다시 보정할 수 있으며, 이를 MP-DMVR(Multi-pass DMVR)이라 할 수 있다. The DMVR (Decoder-side Motion Vector Refinement) method is a method to correct motion information through the correlation of already restored reference images in order to find slightly more accurate motion information. It is a method to use the best matching point between reference blocks in the reference pictures within an arbitrary set area of two reference pictures as a new bidirectional motion by using the bidirectional motion information of the current block. When this DMVR is performed, the encoder can correct the motion information by performing DMVR on a block basis, and then divide the block into sub-blocks again and perform DMVR on each sub-block basis to correct the motion information of the sub-block again. This can be called MP-DMVR (Multi-pass DMVR).
LIC(Local Illumination Compensation) 방법은 블록 간의 휘도 변화를 보상하는 방법으로, 현재 블록에 인접한 주변 화소들을 사용하여 선형 모델을 유도한 후, 선형 모델을 통해 현재 블록의 휘도 정보를 보상하는 방법이다.The LIC (Local Illumination Compensation) method is a method of compensating for luminance changes between blocks. It derives a linear model using neighboring pixels adjacent to the current block, and then compensates for the luminance information of the current block through the linear model.
기존 비디오 부호화 방법들은 상하좌우의 평행 이동만을 고려한 움직임 보상을 수행하기 때문에, 현실에서 일반적으로 접하는 확대, 축소, 회전 등과 같은 움직임 포함하고 있는 비디오들의 부호화 시 부호화 효율이 저하된다. 이러한 확대, 축소, 회전에 대한 움직임을 표현하기 위하여, 4개(회전) 또는 6개(확대, 축소, 회전) 파라미터 모델을 이용하는 Affine 모델 기반 움직임 예측 기술이 적용될 수 있다.Existing video encoding methods perform motion compensation that only considers parallel movements in the up, down, left, and right directions, so encoding efficiency is reduced when encoding videos that contain motions such as enlargement, reduction, and rotation that are commonly encountered in reality. In order to express such motions for enlargement, reduction, and rotation, an Affine model-based motion prediction technology using a 4 (rotation) or 6 (enlargement, reduction, rotation) parameter model can be applied.
BDOF(Bi-Directional Optical Flow)는 양방향 움직임으로 구성된 블록의 참조 블록으로부터 광-흐름(optical-flow) 기반으로 화소의 변화량을 추정하여 예측 블록을 보정하는데 사용된다. 이러한 VVC의 BDOF에서 유도된 움직임 정보를 이용하여 현재 블록의 움직임을 보정할 수 있다.BDOF (Bi-Directional Optical Flow) is used to compensate for predicted blocks by estimating the amount of pixel change based on optical flow from a reference block of a block composed of bidirectional motion. The motion information derived from BDOF of VVC can be used to compensate for the motion of the current block.
PROF(Prediction refinement with optical flow)는 서브 블록 단위 Affine 움직임 예측의 정확도를 픽셀 단위 움직임 예측의 정확도와 유사하도록 개선하기 위한 기술이다. PROF는 BDOF와 유사하게 광-흐름(optical-flow)에 기반하여 서브 블록 단위로 Affine 움직임 보상된 픽셀 값들에 대해 픽셀 단위로 보정 값을 계산하여 최종 예측 신호를 획득하는 기술이다.PROF (Prediction refinement with optical flow) is a technology for improving the accuracy of sub-block unit Affine motion prediction to be similar to the accuracy of pixel unit motion prediction. Similar to BDOF, PROF is a technology that calculates a correction value on a pixel-by-pixel basis for pixel values that have been affine motion compensated on a sub-block-by-subblock basis based on optical flow to obtain a final prediction signal.
CIIP(Combined Inter-/Intra-picture Prediction)방법은 현재 블록에 대한 예측 블록을 생성할 때, 화면 내 예측 방법으로 생성한 예측 블록과 화면 간 예측 방법으로 생성한 예측 블록들을 가중치 평균하여 최종 예측 블록을 생성하는 방법이다.The CIIP (Combined Inter-/Intra-picture Prediction) method is a method of generating a final prediction block by weighting and averaging prediction blocks generated by the intra-picture prediction method and prediction blocks generated by the inter-picture prediction method when generating a prediction block for the current block.
IBC(Intra Block Copy) 방법은 현재 블록과 가장 유사한 부분을 현재 픽쳐 내의 이미 복원된 영역에서 찾아서, 해당 참조 블록을 현재 블록에 대한 예측 블록으로 사용하는 방법이다. 이때, 현재 블록과 참조 블록 간의 거리인 블록 벡터(Block Vector)와 관련된 정보는 비트스트림에 포함될 수 있다. 디코더는 비스트스림에 포함된 블록 벡터와 관련된 정보를 파싱하여 현재 블록을 위한 블록 벡터를 계산하거나 설정할 수 있다.The IBC (Intra Block Copy) method is a method of finding the most similar part to the current block in the already restored area of the current picture and using the reference block as a prediction block for the current block. At this time, information related to the block vector, which is the distance between the current block and the reference block, can be included in the bitstream. The decoder can parse the information related to the block vector included in the BeastStream to calculate or set the block vector for the current block.
BCW(Bi-prediction with CU-level Weights) 방법은 서로 다른 참조 픽쳐로 부터 움직임 보상된 두 개의 예측 블록에 대하여, 평균으로 예측 블록을 생성하지 않고, 블록 단위로 적응적으로 가중치를 적용하여 움직임 보상된 두 개의 예측 블록에 가중치 평균을 수행하는 방법이다.The BCW (Bi-prediction with CU-level Weights) method is a method that performs a weighted average on two motion-compensated prediction blocks by adaptively applying weights on a block-by-block basis, rather than generating a prediction block by averaging two motion-compensated prediction blocks from different reference pictures.
Intra TMP(Template Matching Prediction) 방법은, 비디오 신호 처리 장치가 현재 블록에 인접한 주변 블록의 화소 값들을 사용하여 기준 템플릿이 구성하고, 구성된 기준 템플릿과 가장 유사한 부분을 현재 픽쳐 내의 이미 복원된 영역에서 찾은 후, 해당 참조 블록(이미 복원된 영역에서 찾은 부분)을 현재 블록에 대한 예측 블록으로 사용하는 방법이다The Intra TMP (Template Matching Prediction) method is a method in which a video signal processing device constructs a reference template using pixel values of neighboring blocks adjacent to the current block, finds the part most similar to the constructed reference template in an already restored area within the current picture, and then uses the reference block (the part found in the already restored area) as a prediction block for the current block.
MHP(Multi-hypothesis prediction) 방법은 화면 간 예측 시 단방향 및 양방향 움직임 정보에 추가적인 움직임 정보를 전송함으로써, 다양한 예측 신호를 통한 가중치 예측을 수행하는 방법이다.The MHP (Multi-hypothesis prediction) method is a method of performing weighted prediction using various prediction signals by transmitting additional motion information to unidirectional and bidirectional motion information during inter-screen prediction.
CCLM(Cross-component linear model)은 휘도 신호와 해당 휘도 신호와 동일한 위치에 있는 색차 신호 간의 높은 상관성을 이용하여 선형 모델을 구성한 후, 해당 선형 모델을 통해 색차 신호를 예측하는 방법이다. 현재 블록에 인접한 주변 블록 중에서 복원이 완료된 블록을 사용하여 템플릿을 구성한 후, 템플릿을 통해 선형 모델에 대한 파라미터가 유도된다. 다음으로, 영상 포맷에 따라 선택적으로 색차 블록의 크기에 맞게 복원된 현재 휘도 블록이 다운 샘플링된다. 마지막으로, 다운 샘플링된 휘도 블록과 해당 선형 모델을 이용하여 현재 블록의 색차 블록을 예측한다. 이때, 2개 이상의 선형 모델을 사용하는 방법을 MMLM(Multi-model Linear mode)이라고 한다.CCLM(Cross-component linear model) is a method of constructing a linear model by utilizing the high correlation between a luminance signal and a chrominance signal at the same location as the luminance signal, and then predicting a chrominance signal through the linear model. A template is constructed using a block adjacent to the current block whose restoration has been completed, and parameters for the linear model are derived through the template. Next, the current luminance block, which has been restored to the size of the chrominance block, is selectively down-sampled according to the image format. Finally, the chrominance block of the current block is predicted using the down-sampled luminance block and the linear model. At this time, a method of using two or more linear models is called MMLM(Multi-model Linear mode).
GLM(Gradient Linear Model)은 CCLM과 같은 선형 모델에서 색차 샘플에 대응되는 휘도 샘플과 그 휘도 샘플에 인접한 주변의 휘도 샘플들 간의 기울기를 추가로 반영하여 모델을 구성한 후, 해당 모델을 통해 색차 신호를 예측하는 방법이다.GLM (Gradient Linear Model) is a method of predicting a color difference signal by constructing a model by additionally reflecting the gradient between the luminance sample corresponding to the color difference sample and the surrounding luminance samples adjacent to that luminance sample in a linear model such as CCLM.
독립 스칼라 양자화(independent scalar quantization)에서, 입력된 계수 tk에 대한 복원된 계수 t'k는 관련된 양자화 인덱스(quantization index) qk에만 의존적이다. 즉, 임의의 복원된 계수에 대한 양자화 인덱스(quantization index)는 다른 복원된 계수들에 대한 양자화 인덱스들과는 다른 값을 가진다. 이때 t'k는 tk에서 양자화 오차가 포함된 값일 수 있으며, 양자화 파라미터에 따라 서로 다르거나 또는 같을 수 있다. 여기서, t'k는 복원된 변환 계수 또는 역양자화된 변환계수라고 명명할 수 있으며, 양자화 인덱스를 양자화된 변환 계수라고 명명할 수도 있다.In independent scalar quantization, the reconstructed coefficient t' k for an input coefficient t k depends only on the associated quantization index q k . That is, the quantization index for any reconstructed coefficient has a different value from the quantization indices for other reconstructed coefficients. At this time, t' k can be a value that includes quantization error in t k , and can be different or the same depending on the quantization parameter. Here, t' k can be named a reconstructed transform coefficient or a dequantized transform coefficient, and the quantization index can also be named a quantized transform coefficient.
균일 복원 양자화(URQ; Uniform Reconstruction Quantizers)에서, 복원된 계수들은 동일한 간격으로 배치되는 특성을 지닌다. 이때 인접하는 두 복원 값들 사이의 거리를 양자화 단계 크기(quantization step size)라고 할 수 있다. 복원된 값 중에는 0을 포함할 수 있으며, 사용 가능한 복원 값들의 전체 집합(set)은 양자화 단계 크기에 따라 고유하게 정의될 수 있다. 양자화 단계 크기는 양자화 파라미터에 따라 달라질 수 있다.In Uniform Reconstruction Quantizers (URQ), the reconstructed coefficients have the characteristic of being spaced at equal intervals. The distance between two adjacent reconstructed values can be called the quantization step size. The reconstructed values can include 0, and the entire set of available reconstructed values can be uniquely defined according to the quantization step size. The quantization step size can vary depending on the quantization parameter.
기존 방법에서는 양자화로 인해 허용 가능한 복원된 변환 계수들의 집합(세트)이 감소하며, 이러한 집합의 원소(element)는 유한 개일 수 있다. 이로 인해, 원본 영상과 복원된 영상 간의 평균적인 오차를 최소화하는데 한계가 존재한다. 이러한 평균적인 오차를 최소화하기 위한 방법으로 벡터 양자화(Vector Quantization)를 사용할 수 있다.In the existing method, the set of acceptable restored transform coefficients is reduced due to quantization, and the number of elements in this set can be finite. As a result, there is a limit to minimizing the average error between the original image and the restored image. Vector quantization can be used as a method to minimize this average error.
비디오 부호화에서 사용되는 간단한 형태의 벡터 양자화 방법에는 부호 데이터 은닉(sign data hiding)이 있다. 이는 인코더에서 0이 아닌 하나의 계수에 대한 부호를 부호화하지 않고, 디코더에서는 해당 계수에 대한 부호를 모든 계수들에 대한 절대값의 합이 짝수인지 또는 홀수인지에 따라 결정하는 방법이다. 이를 위해 인코더에서는 적어도 하나의 계수가 '1'이 증가되거나 또는 감소될 수 있으며, 이는 율-왜곡(rate-distortion)에 대한 비용(Cost) 관점에서 최적이 되도록 적어도 하나의 계수가 선택되어 값이 조정될 수 있다. 실시 일 예로, 양자화 간격의 경계에 가까운 값을 가지는 계수가 선택될 수 있다.A simple form of vector quantization used in video coding is sign data hiding. This is a method in which the encoder does not encode a sign for a non-zero coefficient, and the decoder determines the sign for the coefficient based on whether the sum of the absolute values of all coefficients is even or odd. To this end, at least one coefficient may be increased or decreased by '1' in the encoder, and at least one coefficient may be selected and adjusted in value such that it is optimal in terms of cost for rate-distortion. As an example, a coefficient having a value close to the boundary of a quantization interval may be selected.
또 다른 벡터 양자화 방법에는 트렐리스 부호화된 양자화(Trellis-Coded Quantization)가 있으며, 비디오 부호화에서는 종속 양자화(dependent quantization)에서 최적화된 양자화 값을 얻기 위한 최적의 경로 탐색 기법으로 활용된다. 블록 단위로, 블록 내 모든 계수들에 대한 양자화 후보들을 트렐리스 그래프에 배치하고, 최적화된 양자화 후보들 간의 최적의 트렐리스 경로를 율-왜곡(rate-distortion)에 대한 비용(Cost)을 고려하여 탐색한다. 구체적으로, 비디오 부호화에 적용된 종속 양자화는 변환 계수에 대한 허용 가능한 복원된 변환 계수들의 집합이 복원 순서에서 현재 변환 계수에 선행하는 변환 계수의 값에 의존하도록 설계될 수 있다. 이때, 여러 개의 양자화기를 변환 계수에 따라 선택적으로 사용하게 함으로써, 원본 영상과 복원된 영상 간의 평균적인 오차를 최소화하여 부호화 효율을 높이는 효과가 있다. Another vector quantization method is Trellis-Coded Quantization, which is utilized as an optimal path search technique to obtain an optimized quantization value in dependent quantization in video coding. In units of blocks, quantization candidates for all coefficients in a block are arranged in a trellis graph, and an optimal trellis path between the optimized quantization candidates is searched by considering the cost for rate-distortion. Specifically, dependent quantization applied to video coding can be designed so that a set of allowable reconstructed transform coefficients for a transform coefficient depends on the value of the transform coefficient preceding the current transform coefficient in the restoration order. At this time, by selectively using multiple quantizers according to the transform coefficients, there is an effect of minimizing the average error between the original image and the reconstructed image, thereby increasing the coding efficiency.
인트라 예측 부호화 기술 중에서 MIP(Matrix Intra Prediction) 방법은 행렬 기반 인트라 예측 방법으로 현재 블록에 인접한 주변 블록의 픽셀로부터 방향성을 가지는 예측 방법과 달리, 주변 블록의 좌측 및 상단의 픽셀들을 미리 정의된 행렬 매트릭스와 오프셋 값을 이용하여 예측 신호를 구하는 방법이다.Among intra prediction encoding techniques, the MIP (Matrix Intra Prediction) method is a matrix-based intra prediction method. Unlike the prediction method that has directionality from pixels of neighboring blocks adjacent to the current block, it is a method of obtaining a prediction signal by using a predefined matrix and offset values for pixels on the left and top of neighboring blocks.
현재 블록의 인트라 예측 모드를 유도하기 위해서, 현재 블록에 인접하면서 복원된 임의의 영역인 템플릿(template)을 기반으로, 해당 템플릿의 주변 픽셀을 통해 유도된 템플릿에 대한 인트라 예측 모드가 현재 블록의 복원을 위해 이용할 수 있다. 우선, 디코더는 템플릿에 인접한 주변 픽셀(reference)을 이용하여 템플릿에 대한 예측 템플릿을 생성하고, 이미 복원된 템플릿과 가장 유사한 예측 템플릿을 생성한 인트라 예측 모드를 현재 블록의 복원을 위해 사용할 수 있다. 이러한 방법을 TIMD(Template intra mode derivation)이라고 할 수 있다.In order to derive the intra prediction mode of the current block, the intra prediction mode for the template derived through the surrounding pixels of the template, which is an arbitrary region adjacent to the current block and restored, can be used to restore the current block. First, the decoder generates a prediction template for the template using the surrounding pixels (reference) adjacent to the template, and can use the intra prediction mode that generates the prediction template most similar to the already restored template to restore the current block. This method can be called TIMD (Template intra mode derivation).
일반적으로 인코더는 예측 블록을 생성하기 위한 예측 모드를 결정하여 결정된 예측 모드에 대한 정보가 포함된 비트스트림을 생성할 수 있다. 디코더는 수신한 비트스트림을 파싱하여 인트라 예측 모드를 설정할 수 있다. 이때, 예측 모드에 대한 정보의 비트량은 전체 비트스트림 크기의 10% 정도일 수 있다. 예측 모드에 대한 정보의 비트량을 감소시키기 위해 인코더는 비트스트림에 인트라 예측 모드에 대한 정보를 포함하지 않을 수 있다. 이에, 디코더는 주변 블록의 특성을 이용하여 현재 블록의 복원을 위한 인트라 예측 모드를 유도(결정)할 수 있고, 유도된 인트라 예측 모드를 이용하여 현재 블록을 복원할 수 있다. 이때, 디코더는 인트라 예측 모드를 유도하기 위해 현재 블록에 인접한 주변 화소(픽셀)들마다 소벨(Sobel) 필터를 가로 및 세로 방향으로 적용하여 방향성 정보를 유추한 후, 해당 방향성 정보를 인트라 예측 모드로 매핑하는 방법을 이용할 수 있다. 디코더가 주변 블록을 이용하여 인트라 예측 모드를 유도하는 방법은 DIMD(Decoder side intra mode derivation)로 기술될 수 있다.In general, an encoder can determine a prediction mode for generating a prediction block and generate a bitstream including information about the determined prediction mode. A decoder can set an intra prediction mode by parsing the received bitstream. At this time, the bit amount of information about the prediction mode can be about 10% of the total bitstream size. In order to reduce the bit amount of information about the prediction mode, the encoder may not include information about the intra prediction mode in the bitstream. Accordingly, the decoder can derive (determine) an intra prediction mode for restoring the current block by using the characteristics of the surrounding blocks, and can restore the current block by using the derived intra prediction mode. At this time, the decoder can use a method of applying a Sobel filter in the horizontal and vertical directions to each of the surrounding pixels adjacent to the current block to infer directional information, and then mapping the directional information to the intra prediction mode in order to derive the intra prediction mode. The method by which the decoder derives the intra prediction mode using surrounding blocks can be described as Decoder side intra mode derivation (DIMD).
도 7은 인터 예측에서 움직임 후보 리스트를 구성하기 위해 사용되는 주변 블록들의 위치를 나타낸 도면이다. Figure 7 is a diagram showing the locations of surrounding blocks used to construct a motion candidate list in inter prediction.
주변 블록들은 공간적인 위치의 블록이거나 시간적인 위치의 블록일 수 있다. 현재 블록에 공간적으로 인접한 주변 블록은 좌측(Left, A1) 블록, 좌하측(Left Below, A0) 블록, 상측(Above, B1) 블록, 상우측(Above Right, B0) 블록 또는 상좌측(Above Left, B2) 블록 중 적어도 하나가 될 수 있다. 현재 블록에 시간적으로 인접한 주변 블록은 대응되는 픽쳐(Collocated picture)에서 현재 블록의 하우측(bottom Right, BR) 블록의 좌상단 픽셀 위치를 포함하는 블록이 될 수 있다. 상기 현재 블록에 시간적으로 인접한 주변 블록이 인트라 모드로 부호화되거나 상기 현재 블록에 시간적으로 인접한 주변 블록이 사용할 수 없는 위치에 존재하면, 현재 픽쳐에 대응되는 픽쳐(Collocated picture)에서 현재 블록의 가로 및 세로의 중앙(Center, Ctr) 픽셀 위치를 포함하는 블록이 시간적 주변 블록으로 사용될 수 있다. 대응되는 픽쳐에서 유도된 움직임 후보 정보는 TMVP(Temporal Motion Vector Predictor)라 지칭될 수 있다. TMVP는 하나의 블록에서 하나만 유도될 수 있고, 하나의 블록을 여러 개의 서브 블록으로 분할한 후, 각 서브 블록마다 각각의 TMVP 후보가 유도될 수 있다. 서브 블록 단위의 TMVP 유도 방법은 sbTMVP(sub-block Temporal Motion Vector Predictor)로 지칭될 수 있다.The neighboring blocks can be blocks of spatial position or blocks of temporal position. The neighboring block spatially adjacent to the current block can be at least one of a left (Left, A1) block, a left below (Left Below, A0) block, an above (Above, B1) block, an above right (Above Right, B0) block, or an above left (Above Left, B2) block. The neighboring block temporally adjacent to the current block can be a block including an upper left pixel position of a bottom right (BR) block of the current block in a corresponding picture (Collocated picture). If the neighboring block temporally adjacent to the current block is encoded in intra mode or the neighboring block temporally adjacent to the current block exists in an unusable position, a block including a horizontal and vertical center (Center, Ctr) pixel position of the current block in the picture corresponding to the current picture (Collocated picture) can be used as a temporal neighboring block. The motion candidate information derived from the corresponding picture can be referred to as TMVP (Temporal Motion Vector Predictor). Only one TMVP can be derived from one block, and after dividing one block into several sub-blocks, each TMVP candidate can be derived for each sub-block. The method of deriving TMVP in sub-block units can be referred to as sbTMVP (sub-block Temporal Motion Vector Predictor).
본 명세서에서 설명하는 방법들이 적용될 것인지 여부는 슬라이스 타입 정보 (예, I 슬라이스, P 슬라이스, B 슬라이스 인지 여부), 타일인지 여부, 서브 픽쳐인지 여부, 현재 블록의 크기, 코딩 유닛의 깊이, 현재 블록이 휘도 블록인지 색차 블록인지 여부, 참조 프레임인지 비참조 프레임인지 여부, 참조 순서 및 계층에 따른 시간적인 계층 등에 대한 정보들 중 적어도 어느 하나에 기초하여 결정될 수 있다. 본 명세서에서 설명하는 방법들이 적용될 것인지 여부를 결정하기 위해 사용되는 정보들은 디코더 및 인코더 간 미리 약속된 정보일 수 있다. 또한, 이러한 정보들은 프로파일 및 레벨에 따라 결정되어 있을 수 있다. 이러한 정보들은 변수 값으로 표현될 수 있고, 비트스트림에는 변수 값에 대한 정보가 포함될 수 있다. 즉, 디코더는 비트스트림에 포함된 변수 값에 대한 정보를 파싱하여 상술한 방법들이 적용되는지 여부를 결정할 수 있다. 예를 들어, 코딩 유닛의 가로의 길이 또는 세로의 길이에 기초하여 상술한 방법들이 적용될 것인지 여부가 결정될 수 있다. 가로의 길이 또는 세로의 길이가 32 이상(예, 32, 64, 128 등)이면 상술한 방법들은 적용될 수 있다. 또한 가로의 길이 또는 세로의 길이가 32 보다 작은 경우(예, 2, 4, 8, 16)에 상술한 방법들은 적용될 수 있다. 또한 가로의 길이 또는 세로의 길이가 4 또는 8인 경우 상술한 방법들은 적용될 수 있다.Whether the methods described in this specification are to be applied can be determined based on at least one of information about the slice type (e.g., whether it is an I slice, a P slice, or a B slice), whether it is a tile, whether it is a subpicture, the size of the current block, the depth of the coding unit, whether the current block is a luminance block or a chrominance block, whether it is a reference frame or a non-reference frame, the temporal hierarchy according to the reference order and hierarchy, etc. The information used to determine whether the methods described in this specification are to be applied can be information agreed upon in advance between the decoder and the encoder. In addition, such information can be determined according to the profile and level. Such information can be expressed as a variable value, and the bitstream can include information about the variable value. That is, the decoder can parse the information about the variable value included in the bitstream to determine whether the above-described methods are to be applied. For example, whether the above-described methods are to be applied can be determined based on the horizontal length or the vertical length of the coding unit. The above-described methods can be applied when the horizontal length or the vertical length is 32 or more (e.g., 32, 64, 128, etc.). Also, the above-described methods can be applied when the horizontal length or the vertical length is less than 32 (e.g., 2, 4, 8, 16). Also, the above-described methods can be applied when the horizontal length or the vertical length is 4 or 8.
도 8은 본 발명의 일 실시예에 따른 DIMD를 이용하여 예측 블록을 생성하는 과정을 나타낸 도면이다.FIG. 8 is a diagram illustrating a process of generating a prediction block using DIMD according to one embodiment of the present invention.
도 8을 참조하면 디코더는 주변 샘플(블록, 픽셀)을 이용하여 예측 블록을 유도할 수 있다. 이때, 주변 샘플은 현재 블록의 주변 블록(픽셀)일 수 있다. 구체적으로, 디코더는 주변 샘플을 입력으로 하여 방향성 정보(각도 정보)에 대한 히스토그램을 통해 현재 블록의 복원을 위한 인트라 예측 모드들 및 가중치 정보를 결정할 수 있다.Referring to Fig. 8, the decoder can derive a prediction block using surrounding samples (blocks, pixels). At this time, the surrounding samples can be surrounding blocks (pixels) of the current block. Specifically, the decoder can determine intra prediction modes and weight information for restoring the current block through a histogram for directional information (angle information) using the surrounding samples as input.
도 9는 본 발명의 일 실시예에 따른 방향성 정보를 유도하기 위해 사용되는 주변 픽셀의 위치를 나타낸 도면이다.FIG. 9 is a diagram showing the locations of surrounding pixels used to derive directional information according to one embodiment of the present invention.
도 9(a)는 방향성 정보를 유도하기 위해 현재 블록의 주변 블록이 모두 사용 가능할 때를 나타내고, 도 9(b)는 현재 블록의 상측 경계가 서브 픽쳐(Sub-picture), 슬라이스(Slice), 타일(tile), CTU 경계일 때를 나타내고, 도 9(c)는 현재 블록의 좌측 경계가 서브 픽쳐(Sub-picture), 슬라이스(Slice), 타일(tile), CTU 경계일 때를 나타낸다. 한편 주변 블록과 현재 블록이 동일한 서브 픽쳐(Sub-picture), 슬라이스(Slice), 타일(tile), CTU에 속해 있지 않다면, 주변 블록은 방향성 정보를 유도하는데 사용되지 않을 수 있다. 도 9의 회색 점은 실제 방향성 정보를 유도하기 위해 사용되는 픽셀의 위치를 나타내고, 점선은 서브 픽쳐(Sub-picture), 슬라이스(Slice), 타일(tile), CTU 경계를 나타낸다. 또한, 도 9(d) 내지 (f)를 참조하면 방향성 정보를 유도하기 위해서, 경계에 위치한 픽셀은 경계 밖으로 한 픽셀씩 패딩(padding)될 수 있다. 이러한 패딩을 통해 보다 더 정확한 방향성 정보의 유도가 가능할 수 있다.Fig. 9(a) shows a case where all neighboring blocks of the current block are available to derive directional information, Fig. 9(b) shows a case where the upper boundary of the current block is a sub-picture, slice, tile, or CTU boundary, and Fig. 9(c) shows a case where the left boundary of the current block is a sub-picture, slice, tile, or CTU boundary. Meanwhile, if the neighboring blocks and the current block do not belong to the same sub-picture, slice, tile, or CTU, the neighboring blocks may not be used to derive directional information. The gray dots in Fig. 9 show the positions of pixels used to actually derive directional information, and the dotted lines show the sub-picture, slice, tile, and CTU boundaries. In addition, referring to Figs. 9(d) to (f), pixels located at the boundary may be padded by one pixel outside the boundary to derive directional information. This padding may allow for more precise directional information to be derived.
특정 위치의 픽셀에 대한 방향성 정보를 유도하기 위해, 수학식 1의 3x3 크기의 소벨(Sobel) 필터가 가로 및 세로 방향으로 각각 적용될 수 있다. 수학식 1의 A는 3x3 크기의 현재 블록의 복원된 주변 블록들의 픽셀 정보(값)을 의미할 수 있다. 그리고 방향성 정보(θ)는 수학식 2를 이용하여 결정될 수 있다. 방향성 정보 유도를 위한 계산 복잡도를 감소시키기 위해, 디코더는 수학식 2의 atan 함수를 계산하지 않고 수학식 1의 Gy/Gx에 대한 계산만으로 방향성 정보(θ)를 유도할 수 있다.In order to derive direction information for a pixel at a specific location, a 3x3 Sobel filter of Equation 1 can be applied in the horizontal and vertical directions, respectively. A in Equation 1 can mean pixel information (value) of reconstructed surrounding blocks of the current block of 3x3 size. And the direction information (θ) can be determined using Equation 2. In order to reduce the computational complexity for deriving direction information, the decoder can derive the direction information (θ) only by calculating Gy/Gx of Equation 1 without calculating the atan function of Equation 2.
도 9를 참조하면 방향성 정보는 도 9에 표시된 모든 회색 점마다 계산될 수 있고, 방향성 정보는 인트라 예측 모드의 각도에 매핑될 수 있다. 인트라 예측 모드 세트는 평면(Planar) 모드, DC 모드 및 복수의(예, 65개의) 각도 모드들(즉, 방향 모드들)을 포함할 수 있다. 인트라 예측 모드는 67가지의 모드들일 수 있는데, 수학식 2를 통해 계산된 방향성 정보(각도, θ)는 실수 단위의 값일 수 있다. 따라서, 방향성 정보를 특정 인트라 예측 방향성 모드에 매핑하는 과정이 필요하다. 본 명세서에서 기술하는 방향성 모드는 각도 모드와 동일할 수 있다.Referring to FIG. 9, directional information can be calculated for every gray dot shown in FIG. 9, and the directional information can be mapped to an angle of an intra prediction mode. The intra prediction mode set can include a planar mode, a DC mode, and a plurality of (e.g., 65) angular modes (i.e., directional modes). The intra prediction modes can be 67 modes, and the directional information (angle, θ) calculated through mathematical expression 2 can be a value in real units. Therefore, a process of mapping the directional information to a specific intra prediction directional mode is required. The directional mode described in this specification can be the same as the angular mode.
도 10은 본 발명의 일 실시예에 따른 방향성 모드를 매핑하는 방법을 나타낸 도면이다.FIG. 10 is a diagram illustrating a method for mapping directional modes according to one embodiment of the present invention.
도 10을 참조하면 인트라 예측 방향성 모드는 0도(인덱스 18), 45도(인덱스 34), 90도(인덱스 50), 135도(인덱스 66)를 기준으로 4개의 구간으로 나누어질 수 있다(도 6 참조). 도 10을 참조하면 인트라 예측 방향성 모드를 결정하기 위한 구간은 0번 구간부터 3번 구간까지 4개의 구간으로 나누어질 수 있다. 0번 구간은 -45도에서 0도까지이고, 1번 구간은 0도에서 45도까지이고, 2번 구간은 45도에서 90도까지이고, 3번 구간은 90도에서 135도까지일 수 있다. 이때, 각 구간은 16개의 인트라 예측 방향성 모드를 포함할 수 있다. 방향성 모드는 수학식 1을 통해 계산된 Gx, Gy의 부호 및 크기를 비교하여 4개 구간 중 어느 하나의 구간이 결정될 수 있다. 예를 들어, Gx 및 Gy가 양수이고, Gx의 절대값이 Gy의 절대값보다 크다면 1번 구간이 선택될 수 있다. 각 구간에 매핑되는 인트라 예측 방향성 모드는 수학식 2로부터 계산된 방향성 정보(θ)를 통해 결정될 수 있다. 구체적으로, 디코더는 방향성 정보(θ)에 2^16을 곱하여 값을 확장한다. 그리고 디코더는 확장된 값을 미리 정의된 테이블의 수치와 비교하여 확장된 값과 가장 가까운 값을 찾고 가장 가까운 값에 기초하여 인트라 예측 방향성 모드를 결정할 수 있다. 이때 미리 정의된 테이블의 값은 17개 일 수 있다. 구체적으로, 미리 정의된 테이블의 값은 {0, 2048, 4096, 6144, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 47104, 53248, 59392, 65536}일 수 있다. 이때, 미리 정의된 테이블 값들 간 차이는 인트라 예측 방향성 모드의 각도 간의 차이에 따라 다르게 설정될 수 있다. Referring to FIG. 10, the intra prediction directional mode can be divided into four sections based on 0 degrees (index 18), 45 degrees (index 34), 90 degrees (index 50), and 135 degrees (index 66) (see FIG. 6). Referring to FIG. 10, the sections for determining the intra prediction directional mode can be divided into four sections from section 0 to section 3. Section 0 can be from -45 degrees to 0 degrees, section 1 can be from 0 degrees to 45 degrees, section 2 can be from 45 degrees to 90 degrees, and section 3 can be from 90 degrees to 135 degrees. In this case, each section can include 16 intra prediction directional modes. The directional mode can be determined as one of the four sections by comparing the signs and magnitudes of Gx and Gy calculated through mathematical expression 1. For example, if Gx and Gy are positive, and the absolute value of Gx is greater than the absolute value of Gy, interval 1 can be selected. The intra prediction directional mode mapped to each interval can be determined through the directional information (θ) calculated from mathematical expression 2. Specifically, the decoder extends the value by multiplying the directional information (θ) by 2^16. Then, the decoder can compare the extended value with the numbers in the predefined table to find the value closest to the extended value, and determine the intra prediction directional mode based on the closest value. At this time, the number of values in the predefined table can be 17. Specifically, the values of the predefined table can be {0, 2048, 4096, 6144, 8192, 12288, 16384, 20480, 24576, 28672, 32768, 36864, 40960, 47104, 53248, 59392, 65536}. At this time, the difference between the predefined table values can be set differently depending on the difference between the angles of the intra prediction directional mode.
한편, 계산 복잡도를 감소시키기 위해 atan 계산이 수행되지 않고 Gy/Gx만을 사용하여 방향성 각도를 구하는 경우, 미리 정의된 테이블 값들 간 차이는 인트라 예측 방향성 모드의 각도간 거리와 서로 불일치할 수 있다. atan는 입력 값이 증가할수록 기울기가 점점 낮아지는 특성이 있다. 따라서, 상기 정의된 테이블도 인트라 예측 방향성 모드의 각도 간의 차이뿐만 아니라 atan의 비선형 특성을 모두 고려하여 수치가 설정되어야 한다. 예를 들어, 상기 정의된 테이블 값들 간 차이는 점점 낮아지도록 설정될 수 있다. 반대로, 상기 정의된 테이블 값들 간 차이는 점점 높아지도록 설정될 수 있다.Meanwhile, if the atan calculation is not performed to reduce the computational complexity and only Gy/Gx is used to obtain the directional angle, the difference between the predefined table values may not match the distance between the angles of the intra prediction directional mode. atan has a characteristic that the slope gradually decreases as the input value increases. Therefore, the defined table should also be set in numerical value by considering not only the difference between the angles of the intra prediction directional mode but also the nonlinear characteristic of atan. For example, the difference between the defined table values may be set to gradually decrease. Conversely, the difference between the defined table values may be set to gradually increase.
현재 블록의 가로와 세로의 길이가 다르다면, 사용할 수 있는 인트라 예측 방향성 모드가 달라질 수 있다. 즉, 현재 블록의 가로와 세로의 길이가 다르다면, 인트라 예측 방향성 모드를 유도하기 위한 구간이 달라질 수 있다. 다시 말하면 인트라 예측 방향성 모드를 유도하기 위한 구간은 현재 블록의 가로와 세로의 길이에 기초(예를 들어, 가로의 길이와 세로의 길이의 비율 등)하여 변경될 수 있다. 예를 들어, 현재 블록의 가로가 세로보다 긴 경우, 인트라 예측 모드는 67~80까지 재매핑될 수 있으며, 반대 방향의 인트라 예측 모드는 2~15까지 제외될 수 있다. 예를 들어, 현재 블록의 가로의 길이가 세로의 길이보다 n(정수)배 만큼 길다면(예를 들어 2배), 인트라 예측 모드 {3, 4, 5, 6, 7, 8}은 {67, 68, 69, 70, 71, 72}으로 각각 재설정(매핑)될 수 있다. 또한, 현재 블록의 가로의 길이가 세로의 길이보다 길다면, 인트라 예측 모드에 '65'를 더한 값으로 인트라 예측 모드가 재설정될 수 있다. 한편, 현재 블록의 가로의 길이가 세로의 길이보다 짧다면, 인트라 예측 모드에 '67'을 뺀 값으로 인트라 예측 모드가 재설정될 수 있다.If the width and height of the current block are different, the available intra prediction directional modes may be different. That is, if the width and height of the current block are different, the interval for deriving the intra prediction directional mode may be different. In other words, the interval for deriving the intra prediction directional mode may be changed based on the width and height of the current block (for example, the ratio of the width and height). For example, if the width of the current block is longer than the height, the intra prediction mode may be remapped to 67 to 80, and the intra prediction modes in the opposite direction may be excluded to 2 to 15. For example, if the width of the current block is n (integer) times longer than the height (for example, 2), the intra prediction modes {3, 4, 5, 6, 7, 8} may be reset (mapped) to {67, 68, 69, 70, 71, 72}, respectively. In addition, if the horizontal length of the current block is longer than the vertical length, the intra prediction mode may be reset to a value that adds '65' to the intra prediction mode. On the other hand, if the horizontal length of the current block is shorter than the vertical length, the intra prediction mode may be reset to a value that subtracts '67' from the intra prediction mode.
현재 블록의 복원을 위한 인트라 예측 방향성 모드를 유도하기 위해 히스토그램이 사용될 수 있다. 주변 블록들에 대한 방향성 정보를 획득한 결과, 방향성이 존재하는 블록보다 방향성이 존재하지 않는 블록이 많은 경우, 방향성이 존재하지 않는 블록에 대한 예측 모드가 히스토그램상 누적 값이 가장 높을 수 있다. 그러나, 현재 블록의 복원을 위해서는 방향성 모드를 유도하여야 하므로, 히스토그램상 누적 값이 가장 높더라도 방향성이 존재하지 않는 블록에 대한 예측 모드는 제외될 수 있다. 즉, 주변 픽셀 간 변화도가 없거나 방향성이 없는 완만한 영역은 인트라 예측 방향성 모드를 유도하기 위해 사용되지 않을 수 있다. 예를 들어 방향성이 존재하지 않는 블록에 대한 예측 모드는 평면 모드, DC 모드 일 수 있다. 만일 좌측 주변 블록이 평면 모드 또는 DC 모드인 경우, 좌측 주변 블록은 방향성 정보를 유도하는데 사용되지 않을 수 있으며, 상측 주변 블록만을 사용하여 방향성 정보는 유도될 수 있다. 현재 블록의 주변 블록들에 완만한 영역과 방향성이 존재하는 영역이 혼재하는 경우, 디코더는 방향성을 강조하기 위해 수학식 3과 같이 계산된 G 값을 이용하여 히스토그램을 생성할 수 있다. 이때 히스토그램은 발생된 인트라 예측 방향성 모드마다 '1'만큼 더해지는 빈도수 기반이 아닌, 발생된 인트라 예측 방향성 모드마다 상기 계산된 G 값이 더해지는 누적 값일 수 있다. A histogram may be used to derive an intra prediction directional mode for restoration of the current block. If there are more blocks without directionality than blocks with directionality as a result of obtaining directional information for surrounding blocks, the prediction mode for the block without directionality may have the highest cumulative value in the histogram. However, since the directional mode must be derived for restoration of the current block, the prediction mode for the block without directionality may be excluded even if the cumulative value in the histogram is the highest. That is, a smooth area with no gradient between surrounding pixels or no directionality may not be used to derive an intra prediction directional mode. For example, the prediction mode for the block without directionality may be a planar mode or a DC mode. If the left surrounding block is a planar mode or a DC mode, the left surrounding block may not be used to derive directional information, and directional information may be derived using only the upper surrounding block. In the case where the surrounding blocks of the current block contain both gentle regions and directional regions, the decoder can generate a histogram using the G value calculated as in Equation 3 to emphasize the directionality. In this case, the histogram may be an accumulated value to which the calculated G value is added for each generated intra prediction directional mode, rather than a frequency-based one in which '1' is added for each generated intra prediction directional mode.
도 11은 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드를 유도하기 위한 히스토그램을 나타낸 도면이다.FIG. 11 is a diagram showing a histogram for deriving an intra prediction directional mode according to one embodiment of the present invention.
도 11의 X축은 인트라 예측 방향성 모드를 나타내고, Y축은 G 값들의 누적 값을 나타낸다. 디코더는 인트라 예측 방향성 모드들 중에서 G 값들의 누적 값이 가장 큰 인트라 예측 방향성 모드를 선택할 수 있다. 다시 말하면, 디코더는 누적 값에 기초하여 현재 블록에 대한 인트라 예측 방향성 모드를 선택할 수 있다. 도 11을 참조하면 누적 값이 가장 큰 modeA와 두 번째로 큰 modeB가 인트라 예측 방향성 모드로 선택될 수 있다. 디코더는 현재 블록에 대한 예측 블록을 생성하기 위해, modeA로 생성한 예측 블록과 modeB로 생성한 예측 블록, 마지막으로 평면 모드로 생성한 예측 블록들을 가중치 평균하여 최종 예측 블록을 생성할 수 있다. 이때, 각 예측 블록의 가중치는 modeA와 modeB의 누적 값을 이용하여 결정될 수 있다. 예를 들어, 평면 모드로 생성한 예측 블록에 대한 가중치는 전체 가중치의 1/3로 설정될 수 있다. modeA로 생성한 예측 블록에 대한 가중치는 modeA와 modeB의 누적 값을 더한 것에서 modeA 누적 값을 나눈 값에 해당하는 가중치로 설정될 수 있다. modeB로 생성한 예측 블록에 대한 가중치는 전체 가중치에서 modeA 가중치와 전체 가중치의 1/3값을 차분한 값으로 결정될 수 있다. 가중치에 대한 계산을 보다 정확하게 하기 위해 디코더는 modeA로 생성한 예측 블록에 대한 가중치에 임의의 값을 곱하여 가중치의 범위를 확장할 수 있다. modeB로 생성한 예측 블록에 대한 가중치 및 평면 모드로 생성한 예측 블록에 대한 가중치도 동일하게 확장될 수 있다.The X-axis of Fig. 11 represents an intra prediction directional mode, and the Y-axis represents an accumulated value of G values. The decoder can select an intra prediction directional mode having the largest accumulated value of G values among the intra prediction directional modes. In other words, the decoder can select an intra prediction directional mode for the current block based on the accumulated value. Referring to Fig. 11, modeA having the largest accumulated value and modeB having the second largest accumulated value can be selected as intra prediction directional modes. The decoder can generate a final prediction block by weighting the prediction block generated by modeA, the prediction block generated by modeB, and finally the prediction block generated by the planar mode to generate a prediction block for the current block. At this time, the weight of each prediction block can be determined using the accumulated value of modeA and modeB. For example, the weight for the prediction block generated by the planar mode can be set to 1/3 of the total weight. The weight for the prediction block generated by modeA can be set to a weight corresponding to the value obtained by dividing the modeA accumulated value by the sum of the accumulated values of modeA and modeB. The weight for the prediction block generated by modeB can be determined as a difference value between the modeA weight and 1/3 of the total weight. In order to make the calculation of the weight more accurate, the decoder can expand the range of the weight by multiplying the weight for the prediction block generated by modeA by an arbitrary value. The weight for the prediction block generated by modeB and the weight for the prediction block generated in the planar mode can also be expanded in the same way.
도 12는 본 발명의 일 실시예에 따른 DIMD 모드를 시그널링하는 방법을 나타낸 도면이다.FIG. 12 is a diagram illustrating a method for signaling DIMD mode according to one embodiment of the present invention.
구체적으로 도 12는 DIMD 모드의 적용 여부에 대한 신택스 요소를 비트스트림에 저장하여 디코더로 전달하는데 사용하는 시그널링 방법을 나타낸다. 도 12를 참조하면, 현재 블록에 대한 예측 블록을 생성하기 위해 DIMD 모드가 사용되는지 여부에 대한 신택스 요소(cu_dimd_flag)는, 현재 블록의 부호화 모드가 인트라 모드이고 SPS에서 설정되는 DIMD 모드의 활성화 여부에 대한 신택스 요소(sps_dimd_enabled_flag)가 DIMD 모드가 활성화됨을 나타내고(예, sps_dimd_enabled_flag의 값이 1인 경우), 현재 블록의 부호화 모드가 SKIP모드가 아니고 현재 블록이 휘도 블록이고 현재 블록이 인터 부호화 모드가 아닌 경우 파싱될 수 있다. 이때, cu_dimd_flag가 '1'이면 현재 블록은 DIMD 모드로 복호화됨을 나타낼 수 있고, cu_dimd_flag가 '0'이면 현재 블록은 DIMD 모드로 복호화 되지 않음을 나타낼 수 있다. 한편, cu_dimd_flag가 파싱되지 않는다면 cu_dimd_flag의 값은 '0'으로 설정될 수 있다. sps_dimd_enabled_flag는 프로파일, 티어 및 레벨 신택스(profile, tier and level syntax)에 포함되는 신택스 요소에 의해 제어될 수 있다. 예를 들어, sps_dimd_enabled_flag는 general_conatraints_info() syntax에 포함되는 신택스 요소인 gci_no_dimd_constraint_flag에 의해 제어될 수 있다. 다음과 같은 동작을 하도록 정의할 수 있다. gci_no_dimd_constraint_flag의 값이 1이면 OlsinScope 내의 모든 픽쳐들에 대한 sps_dimd_enabled_flag 값은 0일 수 있다. gci_no_dimd_constraint_flag의 값이 0이면 별도의 제약이 없을 수 있다 (gci_no_dimd_constraint_flag equal to 1 specifies that sps_dimd_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_dimd_constraint_flag equal to 0 does not impose such a constraint.).Specifically, FIG. 12 illustrates a signaling method used to store a syntax element for whether the DIMD mode is applied in a bitstream and transmit it to a decoder. Referring to FIG. 12, a syntax element (cu_dimd_flag) for whether the DIMD mode is used to generate a prediction block for a current block can be parsed when the coding mode of the current block is an intra mode and a syntax element (sps_dimd_enabled_flag) for whether the DIMD mode set in SPS is enabled indicates that the DIMD mode is enabled (e.g., when the value of sps_dimd_enabled_flag is 1), the coding mode of the current block is not a SKIP mode, the current block is a luminance block, and the current block is not an inter coding mode. At this time, if cu_dimd_flag is '1', it can indicate that the current block is decrypted in DIMD mode, and if cu_dimd_flag is '0', it can indicate that the current block is not decrypted in DIMD mode. Meanwhile, if cu_dimd_flag is not parsed, the value of cu_dimd_flag can be set to '0'. sps_dimd_enabled_flag can be controlled by syntax elements included in profile, tier and level syntax. For example, sps_dimd_enabled_flag can be controlled by gci_no_dimd_constraint_flag, which is a syntax element included in general_conatraints_info() syntax. The following behavior can be defined. If the value of gci_no_dimd_constraint_flag is 1, the value of sps_dimd_enabled_flag for all pictures in OlsInScope can be 0. If the value of gci_no_dimd_constraint_flag is 0, there can be no separate constraint. (gci_no_dimd_constraint_flag equal to 1 specifies that sps_dimd_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_dimd_constraint_flag equal to 0 does not impose such a constraint.).
도 13은 본 발명의 일 실시예에 따른 DIMD 모드의 사용 여부에 따른 인트라 예측 모드와 관련된 신택스 요소를 시그널링하는 방법을 나타낸 도면이다.FIG. 13 is a diagram illustrating a method for signaling syntax elements related to intra prediction modes depending on whether DIMD mode is used according to one embodiment of the present invention.
현재 블록이 DIMD 모드로 복호화되는 경우, 부호화 모드와 관련된 추가적인 정보(신택스 요소)들은 파싱되지 않을 수 있다. 도 13을 참조하면, cu_dimd_flag의 값이 1인 경우, 현재 블록의 부호화 모드와 관련된 추가적인 정보(예, intra_mip_flag, intra_subpartitions_mode_flag, intra_luma_mpm_flag, intra_luma_not_planar_flag, intra_luma_mpm_idx, intra_luma_mpm_remainder 등)는 파싱되지 않을 수 있다. 이후 잔차 신호가 존재하는 경우, 잔차 신호에 대한 변환 계수가 존재하는지 여부 및 잔차 신호와 관련된 신택스 요소들이 파싱될 수 있다.If the current block is decoded in DIMD mode, additional information (syntax elements) related to the encoding mode may not be parsed. Referring to FIG. 13, if the value of cu_dimd_flag is 1, additional information related to the encoding mode of the current block (e.g., intra_mip_flag, intra_subpartitions_mode_flag, intra_luma_mpm_flag, intra_luma_not_planar_flag, intra_luma_mpm_idx, intra_luma_mpm_remainder, etc.) may not be parsed. Afterwards, if a residual signal exists, whether a transform coefficient for the residual signal exists and syntax elements related to the residual signal can be parsed.
도 14는 본 발명의 일 실시예에 따른 현재 블록을 복원하기 위한 예측 샘플을 생성하는 방법을 나타낸 도면이다.FIG. 14 is a diagram illustrating a method for generating a prediction sample for restoring a current block according to one embodiment of the present invention.
구체적으로, 도 14는 부호화 성능을 개선하기 위해 인트라 예측 모드를 보다 효과적으로 유도하여, 유도된 인트라 예측 모드를 이용하여 예측 샘플을 생성하는 과정을 나타낸 구조도이다. Specifically, FIG. 14 is a structural diagram showing a process of generating a prediction sample using the derived intra prediction mode by more effectively deriving an intra prediction mode to improve encoding performance.
도 14를 참조하면, 'prediction mode generator' 과정에서 디코더는 현재 블록에 인접한 주변 블록의 샘플(neighboring sample)들을 이용하여 현재 블록에 대한 인트라 예측 방향성 모드를 유도할 수 있다. 이때, 디코더는 인트라 예측 방향성 모드를 적어도 하나 이상 유도할 수 있으며, 각 모드에 대한 가중치를 유도할 수 있다. 예를 들어, 인트라 예측 방향성 모드를 유도하기 위해 디코더는 임의의 필터를 통해 주변 블록 샘플들의 방향성 정보를 유도하고 빈번하게 발생하는 방향성 정보들을 인트라 예측 방향성 모드로 결정하도록 하는 히스토그램 기반 방법을 사용할 수 있다. 또한, 인트라 예측 방향성 모드를 유도하기 위한 방법으로 현재 블록에 인접한 위쪽 픽셀만을 이용하여 현재 블록에 인접한 왼쪽 픽셀에 대한 인트라 예측 픽셀을 생성하여 가장 왜곡이 적은 인트라 예측 모드를 현재 블록을 위한 인트라 예측 방향성 모드로 결정하는 방법이 사용될 수도 있다.Referring to FIG. 14, in the 'prediction mode generator' process, the decoder can derive an intra prediction directional mode for the current block using neighboring samples of neighboring blocks adjacent to the current block. At this time, the decoder can derive at least one intra prediction directional mode and derive a weight for each mode. For example, in order to derive the intra prediction directional mode, the decoder can use a histogram-based method that derives directional information of neighboring block samples through an arbitrary filter and determines frequently occurring directional information as the intra prediction directional mode. In addition, as a method for deriving the intra prediction directional mode, a method can be used that generates an intra prediction pixel for a left pixel adjacent to the current block using only upper pixels adjacent to the current block and determines the intra prediction mode with the least distortion as the intra prediction directional mode for the current block.
도 14를 참조하면 'intra prediction' 과정에서는 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드들과 가중치를 이용하여 현재 블록에 대한 예측 블록들을 생성할 수 있다. 예측 블록들의 개수는 prediction mode generator 과정에서 유도된 인트라 예측 방향성 모드 개수에 따라 결정될 수 있다. 예를 들어, 유도된 인트라 예측 방향성 모드 개수가 2일 경우, 현재 블록에 대한 예측 블록은 2개일 수 있다. 'intra prediction' 과정에서 생성된 예측 블록들은 후술하는 방법을 이용한 PDPC(Position dependent intra prediction combination) 필터링이 적용될 수 있다.Referring to FIG. 14, in the 'intra prediction' process, prediction blocks for the current block can be generated using the intra prediction directional modes and weights derived from the 'prediction mode generator' process. The number of prediction blocks can be determined according to the number of intra prediction directional modes derived from the prediction mode generator process. For example, if the number of derived intra prediction directional modes is 2, there can be 2 prediction blocks for the current block. The prediction blocks generated in the 'intra prediction' process can be subjected to PDPC (Position dependent intra prediction combination) filtering using the method described below.
'intra prediction' 과정에서 생성한 예측 블록들 각각에 PDPC(Position dependent intra prediction combination) 필터링이 적용될 수 있다. 예측 블록마다 PDPC 필터링이 적용되는 경우, 디코더 측면에서 복잡도가 높아질 수 있으므로, 예측 블록이 DIMD 모드로 예측된 경우, 해당 예측 블록에는 PDPC 필터링이 적용되지 않을 수 있다. 또한, 누적 값이 가장 큰 modeA와 두 번째로 큰 modeB 중 어느 하나에 대해서만 PDPC 필터링이 적용될 수 있다. 예를 들어, modeA에 대해서만 PDPC 필터링이 적용될 수 있다. 또한, 각 방향성 모드의 가중치에 따라 PDPC 필터링이 적용될지 여부가 결정될 수 있다. 예를 들어, modeA에 대한 가중치와 modeB에 대한 가중치의 차이에 기초하여 modeA 및 modeB 전부 또는 일부에 PDPC가 적용될 지 여부가 결정될 수 있다. 예를 들어, modeA에 대한 가중치와 modeB에 대한 가중치의 차이가 특정 값보다 작다면, modeA 및 modeB 모두에 PDPC 필터링이 적용될 수 있다. 또한, modeA에 대한 가중치와 modeB에 대한 가중치 각각을 특정 값과 비교하여 modeA 및 modeB에 PDPC 필터링이 적용되는지 여부가 결정될 수 있다. 가중치가 특정 값보다 크다면 해당 가중치의 방향성 모드에 PDPC 필터링이 적용될 수 있다. 예를 들어, modeA에 대한 가중치가 특정 값 이상이고, modeB에 대한 가중치가 특정 값보다 작다면, modeA에는 PDPC 필터링이 적용될 수 있고, modeB에는 PDPC 필터링이 적용되지 않을 수 있다. 또한, 방향성 모드와는 무관하게 weighted prediction 과정(도 14 참조)을 통해 가중치 평균이 적용된 최종 예측 블록에만 기 설정된 형태의 PDPC 필터링이 적용될 수 있다. 또한, 'weighted prediction' 과정에서 가중치 평균이 적용된 최종 예측 블록에 modeA를 사용하여 PDPC 필터링이 적용될 수 있다. 'weighted prediction' 과정에서 가중치 평균이 적용된 최종 예측 블록에 modeB를 사용하여 PDPC 필터링이 적용될 수 있다.PDPC (Position dependent intra prediction combination) filtering may be applied to each prediction block generated in the 'intra prediction' process. If PDPC filtering is applied to each prediction block, complexity may increase in terms of the decoder, so if the prediction block is predicted in DIMD mode, PDPC filtering may not be applied to the prediction block. In addition, PDPC filtering may be applied only to either modeA with the largest accumulated value or modeB with the second largest accumulated value. For example, PDPC filtering may be applied only to modeA. In addition, whether PDPC filtering is applied may be determined based on the weight of each directional mode. For example, whether PDPC is applied to all or part of modeA and modeB may be determined based on the difference between the weight for modeA and the weight for modeB. For example, if the difference between the weight for modeA and the weight for modeB is smaller than a specific value, PDPC filtering may be applied to both modeA and modeB. In addition, whether PDPC filtering is applied to modeA and modeB can be determined by comparing the weight for modeA and the weight for modeB respectively with a specific value. If the weight is greater than a specific value, PDPC filtering can be applied to the directional mode of the corresponding weight. For example, if the weight for modeA is greater than a specific value and the weight for modeB is less than a specific value, PDPC filtering can be applied to modeA and PDPC filtering can not be applied to modeB. In addition, regardless of the directional mode, PDPC filtering of a preset form can be applied only to the final prediction block to which the weighted average is applied through the weighted prediction process (see Fig. 14). In addition, PDPC filtering can be applied to the final prediction block to which the weighted average is applied using modeA in the 'weighted prediction' process. PDPC filtering can be applied to the final prediction block to which the weighted average is applied using modeB in the 'weighted prediction' process.
도 14를 참조하면 'other prediction' 과정에서 디코더는 현재 블록에 대한 예측 블록을 추가적으로 생성할 수 있다. 예를 들어, 디코더는 평면 모드, DC 모드, MIP(Matrix Intra Prediction) 중에서 적어도 하나 이상을 사용하여 인트라 예측 블록을 생성할 수 있다. 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드들 및 예측 방향성 각각에 대한 가중치 정보들, 현재 블록의 양자화 파라미터 정보, 현재 블록의 가로의 길이 또는 세로의 길이, 현재 블록이 휘도인지 색차인지 여부에 대한 정보, 현재 블록 주변의 인트라 예측 모드, 현재 블록 주변의 변환 계수의 존재 여부 정보들(도 14의 Additional information A, B, C에 해당할 수 있음) 중에서 적어도 하나 이상을 사용하여 'other prediction' 과정이 수행될지 여부가 결정될 수 있다. 이하에서 'other prediction' 과정이 수행되는지 여부를 결정하는 방법에 대해 설명한다.Referring to FIG. 14, in the 'other prediction' process, the decoder can additionally generate a prediction block for the current block. For example, the decoder can generate an intra prediction block using at least one of a planar mode, a DC mode, and a MIP (Matrix Intra Prediction). Whether the 'other prediction' process is performed can be determined using at least one of the intra prediction directional modes induced in the 'prediction mode generator' process and weight information for each prediction direction, quantization parameter information of the current block, the horizontal or vertical length of the current block, information on whether the current block is luminance or chrominance, intra prediction modes around the current block, and information on the presence or absence of transform coefficients around the current block (which may correspond to Additional information A, B, and C of FIG. 14). A method for determining whether the 'other prediction' process is performed will be described below.
'other prediction' 과정에서 디코더가 어떠한 모드(예, 평면, DC, MIP 모드 등)를 사용할지에 대한 정보는 미리 약속되어 있거나 SPS를 통해 시그널링 될 수 있다. 예를 들어, 디코더는 어떠한 모드를 사용할 지를 나타내는 신택스 요소(sps_dimd_default_mode)에 기초하여 모드를 결정할 수 있다. 디코더는 sps_dimd_default_mode의 값에 따라 평면 모드, DC 모드, MIP 모드 중 어떠한 모드를 사용할 것인지 결정할 수 있다. 예를 들어, sps_dimd_default_mode의 값이 '0'이면 평면 모드, sps_dimd_default_mode의 값이 '1'이면 DC 모드, sps_dimd_default_mode의 값이 0과 1이 아닌 다른 값이면 MIP 모드를 사용도록 지시할 수 있다. 또한, 현재 블록이 휘도 블록이고 주변 블록의 변환 계수가 존재할 경우, 디코더는 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다. 현재 블록이 색차 블록이고, 주변 블록의 변환 계수가 존재하지 않는 경우, 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다. 또한, 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드들의 가중치가 서로 비슷하다면(예를 들어, 방향성 모드들 각각의 가중치 간 차이가 특정 임계 값보다 작은 경우 등), 'other prediction' 과정은 수행되지 않을 수 있다. 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드들의 가중치가 서로 비슷하다면, 디코더는 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다(즉, 'other prediction' 과정이 수행됨). 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드들의 가중치 간 차이가 크다면(예를 들어, 방향성 모드들 각각의 가중치 간 차이가 특정 임계 값보다 큰 경우) 주변 블록의 픽셀간 변화가 많은 것을 의미하므로, 디코더는 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다. 또한, 현재 블록의 가로와 세로의 길이가 서로 다르다면 디코더는 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다. 반대로, 현재 블록의 가로와 세로의 길이가 동일할 때 디코더는 평면 모드, DC 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 예측 블록을 생성할 수 있다.In the 'other prediction' process, information about which mode (e.g., planar, DC, MIP mode, etc.) the decoder will use can be agreed upon in advance or signaled via SPS. For example, the decoder can determine the mode based on a syntax element (sps_dimd_default_mode) indicating which mode to use. The decoder can determine which mode to use among the planar mode, the DC mode, and the MIP mode depending on the value of sps_dimd_default_mode. For example, if the value of sps_dimd_default_mode is '0', the decoder can be instructed to use the planar mode, if the value of sps_dimd_default_mode is '1', the decoder can be instructed to use the DC mode, and if the value of sps_dimd_default_mode is a value other than 0 and 1, the decoder can be instructed to use the MIP mode. In addition, if the current block is a luminance block and transform coefficients of neighboring blocks exist, the decoder can generate a prediction block using at least one of the planar mode, the DC mode, and the MIP mode. If the current block is a chrominance block and there is no transform coefficient of a surrounding block, the prediction block can be generated using at least one of the planar mode, the DC mode, and the MIP mode. In addition, if the weights of the intra prediction directional modes derived in the 'prediction mode generator' process are similar to each other (for example, if the difference between the weights of each directional mode is smaller than a specific threshold value), the 'other prediction' process may not be performed. If the weights of the intra prediction directional modes derived in the 'prediction mode generator' process are similar to each other, the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode (i.e., the 'other prediction' process is performed). If the difference between the weights of the intra prediction directional modes derived in the 'prediction mode generator' process is large (for example, if the difference between the weights of each directional mode is larger than a specific threshold value), it means that there is a lot of change between pixels of the surrounding block, and therefore the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode. In addition, if the width and height of the current block are different from each other, the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode. Conversely, if the width and height of the current block are the same, the decoder can generate the prediction block using at least one of the planar mode, the DC mode, and the MIP mode.
'weighted prediction' 과정에서 디코더는 'intra prediction', 'other prediction' 과정에서 생성된 여러 개의 인트라 예측 블록들을 가중치 평균하여 하나의 예측 샘플을 생성할 수 있다. 인트라 예측 블록들 각각에 대한 가중치는 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드 및 가중치 정보, 현재 블록의 양자화 파라미터 정보, 현재 블록의 가로 또는 세로의 길이, 현재 블록이 휘도 또는 색차인지 여부 정보, 현재 블록 주변의 인트라 예측 모드, 현재 블록 주변의 변환 계수의 존재 여부 정보들 중에서 적어도 하나 이상에 기초하여 결정될 수 있다.In the 'weighted prediction' process, the decoder can generate a single prediction sample by weighting and averaging multiple intra prediction blocks generated in the 'intra prediction' and 'other prediction' processes. The weight for each intra prediction block can be determined based on at least one of the intra prediction directional mode and weight information derived in the 'prediction mode generator' process, quantization parameter information of the current block, the horizontal or vertical length of the current block, information on whether the current block is luminance or chrominance, intra prediction modes around the current block, and information on whether there are transform coefficients around the current block.
도 15는 본 발명의 일 실시예에 따른 인트라 예측 모드를 결정하는 방법을 나타낸 도면이다.FIG. 15 is a diagram illustrating a method for determining an intra prediction mode according to one embodiment of the present invention.
도 15는 도 14의 'prediction mode generator' 과정을 보다 자세히 나타낸다. 도 15를 참조하면 도 14의 'prediction mode generator' 과정은 히스토그램 분석을 통해 인트라 예측 방향성을 유도할 수 있다. 구체적으로 도 15의 'Histogram analysis' 과정에서 디코더는 현재 블록에 인접한 주변 샘플들을 이용하여 획득되는 히스토그램 분석하여 인트라 예측 방향성을 유도할 수 있다. 이때, 디코더는 현재 블록의 가로의 길이, 세로의 길이, 양자화 파라미터 정보, 현재 블록의 주변 블록들 중에서 가능한 인트라 예측 방향성 모드 정보, 현재 블록의 주변 블록의 잔차 신호의 존재 여부 정보, 현재 블록이 휘도 블록인지 색차 블록인지에 대한 정보들 중에서 적어도 하나 이상을 사용하여 현재 블록에 대한 인트라 예측 방향성 모드와 가중치를 유도할 수 있다. 이하에서 현재 블록에 대한 인트라 예측 방향성 모드와 가중치를 유도하는 방법에 대해 설명한다.Fig. 15 illustrates the 'prediction mode generator' process of Fig. 14 in more detail. Referring to Fig. 15, the 'prediction mode generator' process of Fig. 14 can derive intra prediction directionality through histogram analysis. Specifically, in the 'histogram analysis' process of Fig. 15, the decoder can derive intra prediction directionality by analyzing a histogram obtained using neighboring samples adjacent to the current block. At this time, the decoder can derive the intra prediction directionality mode and weight for the current block by using at least one of the horizontal length and vertical length of the current block, quantization parameter information, possible intra prediction directionality mode information among neighboring blocks of the current block, information on whether a residual signal exists in neighboring blocks of the current block, and information on whether the current block is a luminance block or a chrominance block. A method for deriving the intra prediction directionality mode and weight for the current block will be described below.
인트라 예측 방향성 모드는 빈도수에 기초하여 설정될 수 있다. 디코더는 주변 블록에 대한 인트라 예측 방향성 모드에 대한 히스토그램을 획득하고, 히스토그램을 분석하여 빈번하게 발생하는 인트라 예측 방향성 모드와 두 번째로 빈번하게 발생하는 모드를 예측 방향성 모드로 선택할 수 있다. 또한, 인트라 예측 방향성 모드는 누적 값(예, 도 11의 G 값)에 기초하여 설정될 수 있다. 디코더는 인트라 예측 방향성 모드 각각에 G값이 더해진 누적 값으로 획득되는 히스토그램을 분석하여 가장 높은 가중치를 가지는 인트라 예측 방향성 모드와 두 번째로 큰 가중치를 가지는 모드를 예측 방향성 모드로 선택할 수 있다. 또한, 디코더는 주변 블록의 인트라 예측 방향성 모드간 거리 및 G값이 더해진 누적 값 기반으로 인트라 예측 방향성 모드를 선택할 수 있다. 방향성 모드간 거리는 방향성 모드의 인덱스 차이를 의미할 수 있다. 예를 들어, 인덱스 66의 방향성 모드와 인덱스 2의 방향성 모드간 거리 차이는 64가 될 수 있다. 또는 방향성 모드의 인덱스는 66이 마지막 인덱스이므로, 인덱스 66의 방향성 모드와 인덱스 2의 방향성 모드간 거리 차이는 2일 수 있다. 디코더는 주변 블록에 대한 인트라 예측 방향성 모드들 각각에 G값이 더해진 누적 값으로 히스토그램을 획득하고 히스토그램을 분석하여, 가장 높은 누적 값을 가지는 인트라 예측 방향성 모드를 먼저 선택할 수 있다. 다음으로 디코더는 가장 높은 누적 값을 제외한 나머지 누적 값에 대응되는 모드들(예를 들어, 두 번째로 높은 누적 값을 가지는 모드, 세 번째로 높은 누적 값을 가지는 모드, 네 번째로 높은 누적 값을 가지는 모드 등) 중에서 가장 높은 누적 값을 가지는 모드와 방향성 모드간 거리가 가장 적은 모드(가장 가까운 모드)를 사용할 수 있다. 한편, 디코더는 가장 높은 누적 값을 가지는 인트라 예측 방향성 모드를 먼저 선택하고, 디코더는 가장 높은 누적 값을 제외한 나머지 누적 값에 대응되는 모드들(예를 들어, 두 번째로 높은 누적 값을 가지는 모드, 세 번째로 높은 누적 값을 가지는 모드, 네 번째로 높은 누적값을 가지는 모드 등) 중에서 가장 높은 누적 값을 가지는 모드와 방향성 모드간 거리가 가장 큰 모드(가장 멀리 떨어진 모드)를 사용할 수 있다. 상기 각각의 인트라 예측 방향성 모드에 대한 누적 값은 'Histogram analysis' 과정에서 최종적으로 결정된 인트라 예측 방향성 모드들에 대한 가중치를 결정할 때 사용될 수 있다.The intra prediction directional mode can be set based on the frequency. The decoder can obtain a histogram for the intra prediction directional mode for the surrounding block, analyze the histogram, and select a frequently occurring intra prediction directional mode and a second frequently occurring mode as the prediction directional mode. In addition, the intra prediction directional mode can be set based on an accumulated value (e.g., a G value in FIG. 11). The decoder can analyze a histogram obtained as an accumulated value in which a G value is added to each intra prediction directional mode, and select an intra prediction directional mode having the highest weight and a mode having the second largest weight as the prediction directional mode. In addition, the decoder can select an intra prediction directional mode based on a distance between intra prediction directional modes of the surrounding block and an accumulated value in which a G value is added. The distance between directional modes can mean a difference in the indexes of the directional modes. For example, the difference in the distance between the directional mode of index 66 and the directional mode of index 2 can be 64. Or, since the index of the directional mode is the last index, 66, the distance difference between the directional mode of index 66 and the directional mode of index 2 can be 2. The decoder can obtain a histogram with the accumulated value in which the G value is added to each of the intra prediction directional modes for the surrounding blocks, analyze the histogram, and first select the intra prediction directional mode with the highest accumulated value. Next, the decoder can use the mode with the smallest distance between the mode with the highest accumulated value and the directional mode (the closest mode) among the modes corresponding to the remaining accumulated values except for the highest accumulated value (for example, the mode with the second highest accumulated value, the mode with the third highest accumulated value, the mode with the fourth highest accumulated value, etc.). Meanwhile, the decoder first selects the intra prediction directional mode having the highest accumulation value, and the decoder can use the mode having the highest accumulation value and the directional mode having the largest distance (the farthest distance) among the modes corresponding to the remaining accumulation values except for the highest accumulation value (for example, the mode having the second highest accumulation value, the mode having the third highest accumulation value, the mode having the fourth highest accumulation value, etc.). The accumulation value for each of the intra prediction directional modes can be used when determining weights for the intra prediction directional modes finally determined in the 'Histogram analysis' process.
도 15의 디코더가 'Histogram analysis' 과정에서 유도한 현재 블록에 대한 인트라 예측 방향성 모드는 2개 이상일 수 있다. 'Histogram analysis'에서 유도된 인트라 예측 방향성 모드가 2개 이상인 경우, 각 인트라 예측 방향성 모드간 거리는 서로 비슷하거나 다를 수 있다. 또한, 인트라 예측 방향성 모드간 누적 값들도 각각 서로 비슷하거나 다를 수 있다. 따라서, 현재 블록에 대한 최적의 예측 샘플을 유도하기 위해서는 다양한 모드 조합 중에서 가장 최적의 조합이 선택되어야 한다. 또한, 디코더는 현재 블록에 대한 최적의 예측 샘플을 유도하기 위해 도 14의 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드뿐만 아니라 'other prediction'에서 유도된 부호화 모드도 조합할 수 있다. 이러한 조합에 대한 정보는 비트스트림에 포함될 수 있다. 본 명세서에서 기술하는 모드 조합은 mode A, mode B, 평면 모드, DC 모드, MIP 모드 중 하나를 사용하거나 일부 또는 전부를 조합하는 것을 의미할 수 있다.The decoder of Fig. 15 may have two or more intra prediction directional modes for the current block derived from the 'Histogram analysis' process. When there are two or more intra prediction directional modes derived from the 'Histogram analysis' process, the distances between the intra prediction directional modes may be similar or different. In addition, the accumulated values between the intra prediction directional modes may also be similar or different. Therefore, in order to derive an optimal prediction sample for the current block, the most optimal combination among various mode combinations should be selected. In addition, the decoder may combine not only the intra prediction directional modes derived from the 'prediction mode generator' process of Fig. 14 but also the encoding modes derived from 'other prediction' in order to derive an optimal prediction sample for the current block. Information about such combinations may be included in the bitstream. The mode combination described in this specification may mean using one of mode A, mode B, planar mode, DC mode, and MIP mode, or combining some or all of them.
다음으로, 도 15를 참조하면 디코더는 'Prediction mode analysis' 과정에서 'Histogram analysis' 과정에서 결정된 인트라 예측 모드들과 유도된 인트라 예측 모드들에 대응되는 가중치 정보를 이용하여, 현재 블록에 대한 최적의 예측 샘플을 유도하기 위한 최적의 조합을 선택할 수 있다. 구체적으로, 디코더는 유도된 인트라 예측 모드들과 이에 대응되는 가중치 정보를 이용하여 현재 블록에 대한 예측 샘플을 생성하기 위해 가중치 평균을 사용할지 여부, 어떠한 인트라 예측 모드를 사용할 것인지, 인트라 예측 모드에 대한 가중치를 어떻게 설정할 것인지에 대한 정보를 결정할 수 있다. 또한, 디코더는 'Prediction mode analysis' 과정에 있어, 'Histogram analysis' 과정에서 결정된 인트라 예측 모드들과 결정된 인트라 예측 모드들에 대응되는 가중치 정보 및 주변 블록의 인트라 예측 모드들 중에서 적어도 어느 하나를 이용하여 현재 블록에 대한 예측 샘플을 유도하기 위한 최적의 조합을 선택할 수 있다. 구체적으로, 디코더는 현재 블록에 대한 예측 샘플을 생성하기 위해 가중치 평균을 사용할지 여부, 어떠한 인트라 예측 모드를 사용할 것인지, 인트라 예측 모드에 대한 가중치를 어떻게 설정할 것인지에 대한 정보를 결정할 수 있다. 이때, 현재 블록의 가로의 길이 또는 세로의 길이, 양자화 파라미터 정보, 현재 블록의 주변 블록들 중에서 사용 가능한 인트라 예측 모드 정보, 현재 블록의 주변 블록의 잔차 신호의 존재 여부 정보, 현재 블록이 휘도 블록인지 색차 블록인지에 대한 정보들 중에서 적어도 하나 이상을 사용하여 현재 블록에 대한 예측 샘플을 생성하기 위한 최적의 조합 정보(Combination information for prediction modes)를 유도할 수 있다. 조합 정보에는 인트라 예측 방향성 모드 정보들과 인트라 예측 방향성 모드에 대한 가중치가 포함될 수 있다. 예를 들어, 유도된 2개의 인트라 예측 방향성 모드 중에서 가중치가 2번째 높은 모드의 가중치가 '0' 이거나 임의의 값 이내이면, 디코더는 현재 블록에 대한 예측 블록을 생성할 때 가중치 평균을 적용하지 않고, 가중치가 가장 높은 하나의 인트라 예측 방향성 모드만을 사용하여 예측 블록을 생성할 수 있다. 이때, 임의의 값은 1 이상의 정수로, 10일 수 있다. 또한, 유도된 2개의 인트라 예측 방향성 모드 중에서 적어도 하나가 DC 모드, Planar 모드 또는 MIP 모드인 경우(즉, 방향성 모드가 아닌 경우), 디코더는 현재 블록에 대한 예측 블록을 생성할 때 가중치 평균을 적용하지 않고, 가중치가 가장 높은 하나의 인트라 예측 방향성 모드만을 사용하여 예측 블록을 생성할 수 있다. 또한, 유도된 2개의 인트라 예측 모드 중에서 적어도 하나가 DC 모드, Planar 모드, MIP 모드인 경우(즉, 방향성 모드가 아닌 경우), 디코더는 현재 블록에 대한 예측 블록을 생성할 때 가중치 평균을 적용할 수 있다.Next, referring to FIG. 15, the decoder can select an optimal combination for deriving an optimal prediction sample for the current block by using the intra prediction modes determined in the 'Histogram analysis' process and the weight information corresponding to the derived intra prediction modes in the 'Prediction mode analysis' process. Specifically, the decoder can determine information on whether to use a weighted average to generate a prediction sample for the current block, which intra prediction mode to use, and how to set the weight for the intra prediction mode by using the derived intra prediction modes and the weight information corresponding thereto. In addition, the decoder can select an optimal combination for deriving a prediction sample for the current block by using the intra prediction modes determined in the 'Histogram analysis' process and the weight information corresponding to the determined intra prediction modes and at least one of the intra prediction modes of the neighboring blocks in the 'Prediction mode analysis' process. Specifically, the decoder can determine information on whether to use weighted average to generate a prediction sample for the current block, which intra prediction mode to use, and how to set weights for the intra prediction modes. At this time, the decoder can derive optimal combination information (Combination information for prediction modes) for generating a prediction sample for the current block by using at least one or more of the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among the neighboring blocks of the current block, information on whether residual signals exist in the neighboring blocks of the current block, and information on whether the current block is a luminance block or a chrominance block. The combination information can include intra prediction directional mode information and weights for the intra prediction directional modes. For example, if the weight of the mode with the second highest weight among the two derived intra prediction directional modes is '0' or within an arbitrary value, the decoder can generate a prediction block for the current block without applying weighted average, but using only one intra prediction directional mode with the highest weight. At this time, the arbitrary value is an integer greater than or equal to 1, and can be 10. In addition, if at least one of the two derived intra prediction directional modes is the DC mode, the Planar mode, or the MIP mode (i.e., if it is not a directional mode), the decoder can generate the prediction block for the current block by using only the intra prediction directional mode with the highest weight, without applying the weighted average, when generating the prediction block for the current block. In addition, if at least one of the two derived intra prediction modes is the DC mode, the Planar mode, or the MIP mode (i.e., if it is not a directional mode), the decoder can apply the weighted average when generating the prediction block for the current block.
도 16은 본 발명의 일 실시예에 따른 DIMD와 관련된 신택스 요소들이 포함된 신택스 구조를 나타낸다.FIG. 16 illustrates a syntax structure including syntax elements related to DIMD according to one embodiment of the present invention.
도 16을 참조하면, 현재 블록이 DIMD로 부호화 되었다면(즉, cu_dimd_flag의 값이 1인 경우), 디코더는 DIMD 조합 정보(예측 샘플 획득을 위해 조합되는 모드에 대한 정보, 모드 조합 정보)에 대한 신택스 요소(cu_dimd_mode)를 추가적으로 파싱할 수 있다. 이때, cu_dimd_mode는 조합되는 예측 모드의 개수에 따라 파싱되는 방법이 상이할 수 있다. 예를 들어, 디코더는 조합되는 개수가 '2'개일 경우, 1개의 빈(bin)만을 파싱할 수 있다. 이때, cu_dimd_mode의 값이 '0'일 경우, 디코더는 modeA와 modeB를 사용하여 예측 샘플을 생성할 수 있다. cu_dimd_mode의 값이 '1'일 경우, 디코더는 modeA와 modeB 그리고 평면 모드를 사용하여 예측 샘플을 생성하거나 modeA와 평면 모드를 사용하여 예측 샘플을 생성하거나 modeB와 평면 모드를 사용하여 예측 샘플을 생성할 수 있다. 조합되는 개수가 '4'개일 경우, 디코더는 2개의 빈(bin)을 파싱할 수 있다. 이때, cu_dimd_mode의 값이 '0'일 경우, 디코더는 modeA와 modeB를 사용하여 예측 샘플을 생성할 수 있다. cu_dimd_mode값이 '1'일 경우, modeA와 modeB 그리고 평면 모드를 사용하여 예측 샘플을 생성할 수 있다. cu_dimd_mode의 값이 '2'일 경우, 디코더는 modeA와 평면 모드를 사용하여 예측 샘플을 생성할 수 있다. cu_dimd_mode의 값이 '3'일 경우, 디코더는 modeB와 평면 모드를 사용하여 예측 샘플을 생성할 수 있다.Referring to FIG. 16, if the current block is encoded with DIMD (i.e., if the value of cu_dimd_flag is 1), the decoder can additionally parse a syntax element (cu_dimd_mode) for DIMD combination information (information on modes combined for obtaining prediction samples, mode combination information). At this time, cu_dimd_mode may be parsed differently depending on the number of prediction modes to be combined. For example, if the number of combinations is '2', the decoder can parse only 1 bin. At this time, if the value of cu_dimd_mode is '0', the decoder can generate a prediction sample using modeA and modeB. If the value of cu_dimd_mode is '1', the decoder can generate a prediction sample using modeA, modeB, and the planar mode, or generate a prediction sample using modeA and the planar mode, or generate a prediction sample using modeB and the planar mode. When the number of combinations is '4', the decoder can parse 2 bins. At this time, when the value of cu_dimd_mode is '0', the decoder can generate prediction samples using modeA and modeB. When the value of cu_dimd_mode is '1', the decoder can generate prediction samples using modeA, modeB, and the flat mode. When the value of cu_dimd_mode is '2', the decoder can generate prediction samples using modeA and the flat mode. When the value of cu_dimd_mode is '3', the decoder can generate prediction samples using modeB and the flat mode.
DIMD 조합 정보에 대한 신택스 요소가 비트스트림에 포함될 경우, 비트량이 증가한다는 문제점이 있을 수 있다. 이러한 문제점을 해소하기 위해 DIMD 조합 정보에 대한 신택스 요소는 비트스트림에 포함되지 않고, 디코더가 현재 블록 및 주변 블록의 정보를 통해 조합 정보를 유도할 수 있다. 상술한대로, 디코더는 현재 블록에 대한 예측 샘플을 생성하기 위한 최적의 조합 정보를 유도할 수 있다.If the syntax element for DIMD combination information is included in the bitstream, there may be a problem that the bit quantity increases. To solve this problem, the syntax element for DIMD combination information is not included in the bitstream, and the decoder can derive combination information through information of the current block and surrounding blocks. As described above, the decoder can derive optimal combination information for generating a prediction sample for the current block.
도 17은 본 발명의 일 실시예에 따른 현재 블록의 주변 블록에 대한 인트라 예측 방향성 모드 및 가중치 정보를 나타낸 도면이다.FIG. 17 is a diagram showing intra prediction directional mode and weight information for surrounding blocks of a current block according to one embodiment of the present invention.
구체적으로 도 17은, 도 15을 통해 설명한 'Histogram analysis' 단계에서 유도되는 각 블록에 대한 인트라 예측 방향성 모드와 대응되는 가중치 정보를 나타낸다. 도 17을 참조하면 가중치의 크기(WeightX)는 알파벳 순으로 표현할 수 있다. 예를 들어, 가장 높은 가중치는 'WeightA'로, 두번째로 높은 가중치는 'WeightB'로 표현될 수 있다. 가중치 정보는 유도된 인트라 예측 방향성 모드의 개수(X) 만큼 존재할 수 있다. 또한, WeightA가중치에 대응되는 인트라 예측 모드는 modeA일 수 있다. 현재 블록에 인접한 주변 블록의 특성에 따라 인트라 예측 방향성 모드와 대응되는 가중치 정보의 특성은 상이할 수 있다. 도 17을 참조하면, Case 1은 modeA와 modeB의 인트라 예측 방향성 모드와 이에 대응되는 가중치 정보가 서로 유사한 경우를 나타낸다. Case 2는 modeA와 modeB의 인트라 예측 방향성 모드와 이에 대응되는 가중치 정보간 차이가 크게 상이한 경우를 나타낸다. Case 3은 modeA와 modeB의 인트라 예측 방향성 모드는 유사하지만 대응되는 가중치 정보간 차이가 크게 상이한 경우를 나타낸다. Case 4는 modeA와 modeB의 인트라 예측 방향성 모드는 크게 상이하지만 대응되는 가중치 정보는 서로 유사한 경우를 나타낸다.Specifically, FIG. 17 shows weight information corresponding to the intra prediction directional mode for each block derived in the 'Histogram analysis' step described through FIG. 15. Referring to FIG. 17, the size of the weight (WeightX) can be expressed in alphabetical order. For example, the highest weight can be expressed as 'WeightA', and the second highest weight can be expressed as 'WeightB'. The weight information can exist as many as the number (X) of derived intra prediction directional modes. In addition, the intra prediction mode corresponding to the WeightA weight can be modeA. The characteristics of the weight information corresponding to the intra prediction directional mode can be different depending on the characteristics of the surrounding blocks adjacent to the current block. Referring to FIG. 17, Case 1 shows a case where the intra prediction directional modes of modeA and modeB and the weight information corresponding thereto are similar to each other. Case 2 shows a case where the difference between the intra prediction directional modes of modeA and modeB and the weight information corresponding thereto is greatly different. Case 3 shows a case where the intra prediction directional modes of modeA and modeB are similar, but the differences between the corresponding weight information are significantly different. Case 4 shows a case where the intra prediction directional modes of modeA and modeB are significantly different, but the corresponding weight information is similar to each other.
도 18은 본 발명의 일 실시예에 따른 DIMD 조합 정보를 결정하는 방법을 나타낸 도면이다.FIG. 18 is a diagram illustrating a method for determining DIMD combination information according to one embodiment of the present invention.
구체적으로, 도 18은 'prediction mode generator' 과정에서 유도된 인트라 예측 방향성 모드(modeA, modeB)와 대응되는 가중치(WeightA, WeightB)간의 차이를 통해 최적의 DIMD 조합 정보를 결정하는 방법을 나타낸다. Specifically, Fig. 18 shows a method for determining optimal DIMD combination information through the difference between the intra prediction directional modes (modeA, modeB) and corresponding weights (WeightA, WeightB) induced in the 'prediction mode generator' process.
도 18을 참조하면 i) ModeA와 ModeB 간의 절대값의 차이가 임의의 임계 값(Tmode1, 예를 들어, 10) 미만이고, WeightA가 임의의 임계 값(Tweight1, 예를 들어, 0.7) 미만일 경우, 현재 블록에 대한 DIMD 최적의 조합은 modeA와 modeB를 조합하는 것일 수 있고, 디코더는 modeA와 modeB를 조합하여 예측 샘플을 생성할 수 있다. ii) i)에 해당하지 않고 WeightA가 임의의 임계치(Tweight2, 예를 들어, 0.85)이상일 경우, 현재 블록에 대한 DIMD 최적의 조합은 modeA만을 사용하는 것일 수 있고, 디코더는 modeA만을 사용하여 예측 샘플을 생성할 수 있다. iii) ii)에 해당하지 않고 modeA와 modeB 간의 절대값의 차이가 임의의 임계치(Tmode2, 예를 들어, 15) 이상일 경우, 현재 블록에 대한 DIMD 최적의 조합은 modeA 및 'other Prediction' 과정에서 유도된 부호화 모드(예를 들어, 평면 모드, DC 모드, MIP 모드) 중 일부 또는 전부를 조합하는 것일 수 있고, 디코더는 modeA 및 'other Prediction' 과정에서 유도된 부호화 모드(예를 들어, 평면 모드, DC 모드, MIP 모드) 중 일부 또는 전부를 조합하여 예측 샘플을 생성할 수 있다. iv) iii)에 해당하지 않으면 현재 블록에 대한 DIMD 최적의 조합은 modeA와 modeB 및 'other Prediction' 과정에서 유도된 부호화 모드(예를 들어, 평면 모드, DC 모드, MIP 모드) 중 일부 또는 전부를 조합하는 것일 수 있고, 디코더는 modeA와 modeB 및 'other Prediction' 과정에서 유도된 부호화 모드(예를 들어, 평면 모드, DC 모드, MIP 모드) 중 일부 또는 전부를 조합하여 예측 샘플을 생성할 수 있다.Referring to FIG. 18, i) if the difference in absolute value between ModeA and ModeB is less than an arbitrary threshold value (Tmode1, for example, 10) and WeightA is less than an arbitrary threshold value (Tweight1, for example, 0.7), the DIMD optimal combination for the current block may be a combination of modeA and modeB, and the decoder may generate a prediction sample by combining modeA and modeB. ii) if i) is not applicable and WeightA is greater than or equal to an arbitrary threshold value (Tweight2, for example, 0.85), the DIMD optimal combination for the current block may be a combination of only modeA, and the decoder may generate a prediction sample by using only modeA. iii) If ii) does not apply and the difference in absolute values between modeA and modeB is greater than or equal to an arbitrary threshold (Tmode2, for example, 15), the optimal DIMD combination for the current block may be a combination of modeA and some or all of the coding modes derived in the 'other Prediction' process (for example, planar mode, DC mode, MIP mode), and the decoder may generate prediction samples by combining some or all of the coding modes derived in the modeA and 'other Prediction' process (for example, planar mode, DC mode, MIP mode). iv) If iii) is not applicable, the optimal DIMD combination for the current block may be a combination of modeA and modeB and some or all of the coding modes derived in the 'other Prediction' process (e.g., planar mode, DC mode, MIP mode), and the decoder may generate prediction samples by combining some or all of the coding modes derived in the 'other Prediction' process (e.g., planar mode, DC mode, MIP mode).
이하에서 디코더가 유도한 인트라 예측 방향성 모드(modeA, modeB)와 이에 대응하는 가중치(WeightA, WeightB) 간의 차이를 통해 최적의 DIMD 조합 정보를 결정하는 방법에 대해 설명한다. Below, we describe a method for determining optimal DIMD combination information through the difference between the intra prediction directional modes (modeA, modeB) induced by the decoder and their corresponding weights (WeightA, WeightB).
modeA와 modeB의 가중치와 히스토그램(도 11 참조)의 모든 가중치의 합을 비교하여 디코더는 DIMD 조합 정보를 획득할 수 있다. 구체적으로, 현재 블록의 주변 블록에 대한 방향성 정보의 가중치들(modeA 및 modeB의 가중치 포함) 전체(예를 들어, 가중치들 합)와 modeA 및 modeB의 가중치를 비교하여 DIMD 조합 정보는 획득될 수 있다. The decoder can obtain DIMD combination information by comparing the weights of modeA and modeB with the sum of all weights of the histogram (see Fig. 11). Specifically, the DIMD combination information can be obtained by comparing the weights of the directional information for the surrounding blocks of the current block (including the weights of modeA and modeB) (e.g., the sum of the weights) with the weights of modeA and modeB.
예를 들어, 유도된 인트라 예측 방향성 모드가 1개(modeA 또는 modeB)인 경우 전체 가중치들 중에서 해당하는 예측 방향성 모드의 가중치가 차지하는 비율이 특정 비율보다 큰 경우, 해당하는 예측 방향성 모드가 선택될 수 있다. 한편, 전체 가중치들 중에서 유도된 인트라 예측 방향성 모드의 가중치가 차지하는 비율이 특정 비율보다 같거나 작은 경우, DIMD 조합 정보는 유도된 인트라 예측 방향성 모드, 평면 모드, DC 모드 MIP 모드 중에서 적어도 하나 이상을 조합하는 것일 수 있다. 이때 특정 비율은 1/2, 2/3, 3/4, 3/8 등일 수 있다.For example, if there is one induced intra prediction directional mode (modeA or modeB), and if the ratio of the weight of the corresponding prediction directional mode among the total weights is greater than a specific ratio, the corresponding prediction directional mode may be selected. Meanwhile, if the ratio of the weight of the induced intra prediction directional mode among the total weights is equal to or less than a specific ratio, the DIMD combination information may be a combination of at least one of the induced intra prediction directional mode, the planar mode, the DC mode, and the MIP mode. In this case, the specific ratio may be 1/2, 2/3, 3/4, 3/8, etc.
또 다른 예로, 유도된 인트라 예측 방향성 모드가 2개(modeA 및 modeB)인 경우 전체 가중치들 중에서 인트라 예측 방향성 모드 각각의 가중치들 합이 차지하는 비율이 특정 비율보다 큰 경우, 해당하는 2개의 인트라 예측 방향성 모드가 선택될 수 있다. 한편, 전체 가중치들 중에서 유도된 2개의 인트라 예측 방향성 모드의 가중치들 합이 차지하는 비율이 특정 비율보다 같거나 작은 경우, DIMD 조합 정보는 유도된 인트라 예측 방향성 모드, 평면 모드, DC 모드 MIP 모드 중에서 적어도 하나 이상이 선택될 수 있다. 예를 들어, modeA, modeB 및 평면 모드가 선택될 수 있다. 또는 modeA 및 modeB가 선택될 수 있다. 이때 특정 비율은 1/2, 2/3, 3/4, 3/8 등일 수 있다.As another example, if there are two induced intra prediction directional modes (modeA and modeB), and the ratio of the sum of the weights of each of the intra prediction directional modes among the total weights is greater than a specific ratio, the corresponding two intra prediction directional modes can be selected. Meanwhile, if the ratio of the sum of the weights of the two induced intra prediction directional modes among the total weights is equal to or less than a specific ratio, the DIMD combination information can select at least one of the induced intra prediction directional modes, the planar mode, the DC mode, and the MIP mode. For example, modeA, modeB, and the planar mode can be selected. Or modeA and modeB can be selected. In this case, the specific ratio can be 1/2, 2/3, 3/4, 3/8, etc.
도 19는 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드 정보와 가중치를 이용하여 예측 샘플을 생성하는 방법을 나타낸 도면이다.FIG. 19 is a diagram illustrating a method for generating a prediction sample using intra prediction directional mode information and weights according to one embodiment of the present invention.
구체적으로, 도 19는 도 14의 'Intra prediction'과 'weighted prediction' 과정을 나타낸다. 도 19를 참조하면 디코더가 유도한 인트라 예측 방향성 모드가 복수 개인 경우, 디코더는 복수 개의 인트라 예측 방향성 모드 각각의 가중치 정보를 이용하여 그것들의 가중치 정보를 이용한 가중치 예측(weighted prediction)을 수행하여 예측 샘플을 획득할 수 있다. 가중치 정보는 현재 블록의 가로의 길이, 세로의 길이, 양자화 파라미터 정보, 현재 블록이 휘도인지 색차인지 여부에 대한 정보 중 적어도 하나 이상에 기초하여 재설정될 수 있다(Additional information).Specifically, FIG. 19 shows the 'Intra prediction' and 'weighted prediction' processes of FIG. 14. Referring to FIG. 19, when there are multiple intra prediction directional modes induced by the decoder, the decoder can perform weighted prediction using the weight information of each of the multiple intra prediction directional modes to obtain a prediction sample. The weight information can be reset based on at least one of the horizontal length of the current block, the vertical length, the quantization parameter information, and the information on whether the current block is luminance or chrominance (Additional information).
도 20 및 도 21은 본 발명의 일 실시예에 따른 인트라 예측 방향성 모드를 유도할 때 사용되는 주변 블록의 픽셀 값을 나타낸 도면이다.FIG. 20 and FIG. 21 are diagrams showing pixel values of surrounding blocks used when deriving an intra prediction directional mode according to one embodiment of the present invention.
도 20 및 도 21은 도 14의 'histogram analysis' 과정에서 인트라 예측 방향성 모드를 유도할 때 사용되는 주변 블록의 픽셀(화소) 값을 나타낸다. 인트라 예측 방향성 모드를 유도할 때 현재 블록의 좌측 및 상측에 위치한 주변 픽셀들 전부에 대해 필터링 계산이 필요하다. 이때, 주변 픽셀들은 현재 블록의 경계와 인접하거나 이격된 라인 상의 픽셀들일 수 있다. 즉, 인트라 예측 방향성 모드를 유도하기 위해 현재 블록의 좌측 및 상측 경계에 인접하거나 이격된 라인 상의 주변 픽셀들 전부에 대해 필터링 계산을 수행해야 하므로 계산 복잡도로 인한 지연이 발생할 수 있다는 문제점이 있다. 이러한 문제점을 해결하기 위해, 디코더는 현재 블록의 좌측 및 상측에 위치한 주변 픽셀들에 대한 필터링 계산을 분리하여 병렬적으로 좌측 및 상측에 위치한 주변 픽셀에 대한 인트라 예측 방향성 모드를 유도할 수 있다. 또한 디코더는 임의의 정해진 위치에 해당하는 주변 픽셀에 대해서만 필터링 계산을 수행하여 방향성 정보를 유도할 수도 있다. Figures 20 and 21 show pixel (pixel) values of surrounding blocks used when deriving an intra prediction directional mode in the 'histogram analysis' process of Figure 14. When deriving an intra prediction directional mode, filtering calculation is required for all surrounding pixels located on the left and upper sides of the current block. At this time, the surrounding pixels may be pixels on a line adjacent to or separated from the boundary of the current block. That is, in order to deriv an intra prediction directional mode, filtering calculation must be performed on all surrounding pixels on a line adjacent to or separated from the left and upper boundaries of the current block, so there is a problem that delay due to computational complexity may occur. To solve this problem, the decoder can separate the filtering calculation for the surrounding pixels located on the left and upper sides of the current block and derive the intra prediction directional mode for the surrounding pixels located on the left and upper sides in parallel. In addition, the decoder can also derive directional information by performing filtering calculation only on the surrounding pixels corresponding to an arbitrary set position.
도 20(a) 및 (c)는 인트라 예측 방향성 모드를 유도하기 위한 필터링 계산에 사용되는 현재 블록의 좌측에 위치한 주변 픽셀을 나타낸다. 도 20(b), (d)는 인트라 예측 방향성 모드를 유도하기 위한 필터링 계산에 사용되는 현재 블록의 상측에 위치한 주변 픽셀을 나타내다. Figures 20(a) and (c) show the surrounding pixels located on the left side of the current block used in the filtering calculation for deriving the intra prediction directional mode. Figures 20(b) and (d) show the surrounding pixels located on the upper side of the current block used in the filtering calculation for deriving the intra prediction directional mode.
디코더가 도 11에서 설명한 히스토그램을 획득하기 위해 사용하는 참조 픽셀의 위치에 따라 매핑 가능한 인트라 방향성 정보는 달라질 수 있다. The mappable intra directional information may vary depending on the location of the reference pixel that the decoder uses to obtain the histogram described in Fig. 11.
예를 들어, 현재 블록의 가로 및 세로의 길이는 동일할 수 있다. 이때, 도 20 (a)에서 현재 블록의 좌측에 위치한 주변 픽셀에 대한 방향성 정보를 유도할 때 매핑되는 인트라 예측 방향성 모드는 인덱스 -14 내지 34 까지만 사용될 수 있다. 도 20 (b)에서 현재 블록의 상측에 위치한 주변 픽셀에 대한 방향성 정보를 유도할 때 매핑되는 인트라 예측 방향성 모드는 인덱스 34 내지 80 까지만 사용될 수 있다. For example, the horizontal and vertical lengths of the current block may be the same. In this case, when deriving directionality information for surrounding pixels located on the left side of the current block in Fig. 20 (a), the mapped intra prediction directional mode can be used only for indices -14 to 34. When deriving directionality information for surrounding pixels located on the upper side of the current block in Fig. 20 (b), the mapped intra prediction directional mode can be used only for indices 34 to 80.
한편, 현재 블록의 가로의 길이와 세로의 길이가 다른 경우가 있을 수 있으며, 현재 블록의 가로의 길이와 세로의 길이에 따라 방향성 정보를 유도할 때 사용되는 주변 픽셀의 위치가 달라질 수 있다. 예를 들어, 현재 블록의 세로의 길이가 가로의 길이보다 길다면, 디코더는 현재 블록의 상측에 위치한 주변 픽셀은 사용하지 않고, 좌측에 위치한 주변 픽셀만을 사용하여 방향성 정보를 유도할 수 있다. 이는 상측에 위치한 주변 픽셀을 사용하지 않고 좌측에 위치한 주변 픽셀만을 사용함으로써 계산 복잡도가 줄어든다는 효과가 있다. 현재 블록의 가로의 길이가 세로의 길이보다 길다면, 디코더는 현재 블록의 좌측에 위치한 주변 픽셀보다 상측에 위치한 주변 픽셀에 더 큰 가중치를 적용하여 방향성 정보를 유도할 수 있다. 가중치는 미리 약속된 특정 값을 사용할 수 있다. 예를 들어, 현재 블록의 세로의 길이보다 가로의 길이가 더 크다면, 현재 블록의 좌측에 위치한 주변 픽셀에는 1의 가중치를, 상측에 위치한 주변 픽셀에는 2의 가중치가 사용될 수 있다. 다시 말해서, 현재 블록은 세로의 길이보다 가로의 길이가 더 길기 때문에, 현재 블록의 좌측에 위치한 주변 픽셀보다 상측에 위치한 주변 픽셀에 대한 방향성 정보를 이용하여 인트라 예측 방향성 모드를 유도하는 것이 더 효과적이기 때문이다.Meanwhile, the horizontal and vertical lengths of the current block may be different, and the positions of the surrounding pixels used when deriving direction information may vary depending on the horizontal and vertical lengths of the current block. For example, if the vertical length of the current block is longer than the horizontal length, the decoder may not use the surrounding pixels located above the current block, but may use only the surrounding pixels located on the left side to derive direction information. This has the effect of reducing computational complexity by using only the surrounding pixels located on the left side, not the surrounding pixels located above. If the horizontal length of the current block is longer than the vertical length, the decoder may apply a greater weight to the surrounding pixels located above the current block than to the surrounding pixels located on the left side to derive direction information. The weights may use specific values agreed upon in advance. For example, if the horizontal length of the current block is longer than the vertical length, a weight of 1 may be used for the surrounding pixels located on the left side of the current block, and a weight of 2 may be used for the surrounding pixels located above the current block. In other words, since the current block is longer horizontally than vertically, it is more effective to derive the intra prediction directional mode by using directional information about the surrounding pixels located above the current block rather than the surrounding pixels located to the left of the current block.
디코더는 현재 블록의 주변에 위치한 주변 픽셀들 중에서 특정 개수에 해당하는 픽셀들에 대해서만 필터링 계산을 수행할 수 있다. 이때 특정 개수는 N의 배수일 수 있고, N은 2, 3, 4 등일 수 있다. N에 대한 정보는 픽쳐 헤더 정보에 포함될 수 있다. 도 21을 참조하면, 현재 블록의 좌상단에서 x, y 축으로 (-2, -2)로 이동한 위치를 기준으로 하여, '2'의 배수에 해당하는 위치에서만 디코더는 필터링 계산을 수행하고, 방향성 정보를 유도할 수 있다. 또한, 디코더는 현재 블록이 휘도 블록이면 방향성 정보를 유도하고, 색차 블록이면 방향성 정보를 유도하지 않을 수 있다. 디코더는 휘도 블록에서 찾은 방향성 정보를 색차 블록에 적용할 수 있다. 한편, 휘도 블록에 대한 방향성 정보와 색차 블록에 대한 방향성 정보는 각각 획득될 수 있다. 색차 블록은 휘도 블록에서 찾은 방향성 정보를 사용하지 않고, 평면 모드, DC 모드, 수평 모드, 수직 모드, MIP 모드 중에서 적어도 하나 이상을 사용하여 획득된 정보를 이용할 수 있다. The decoder can perform filtering calculation only on a specific number of pixels among the surrounding pixels located around the current block. In this case, the specific number can be a multiple of N, and N can be 2, 3, 4, etc. Information about N can be included in the picture header information. Referring to Fig. 21, the decoder can perform filtering calculation and derive directionality information only on a position that is a multiple of '2' based on a position moved from the upper left of the current block to (-2, -2) in the x and y axes. In addition, the decoder can derive directionality information if the current block is a luminance block, and not derive directionality information if the current block is a chrominance block. The decoder can apply the directionality information found in the luminance block to the chrominance block. Meanwhile, the directionality information for the luminance block and the directionality information for the chrominance block can be obtained respectively. The chrominance block can utilize information obtained using at least one of the following modes: planar mode, DC mode, horizontal mode, vertical mode, and MIP mode, without using the directional information found in the luminance block.
현재 블록의 인트라 예측 방향성 모드는 주변 블록의 인트라 예측 방향성 모드와 유사할 가능성이 높다. 따라서, 현재 블록의 인트라 예측 방향성 모드를 부호화하기 위해서 주변 블록의 인트라 예측 방향성 모드를 이용하여 MPM(Most Probable Mode) 리스트를 구성하고 현재 블록의 인트라 예측 방향성 모드가 MPM 리스트에 존재하는지에 대한 정보 및 존재하는 위치에 대한 정보가 비트스트림에 포함될 수 있다. 즉, 현재 블록의 인트라 예측 방향성 모드에 대한 정보는 별도로 비트스트림에 포함되지 않을 수 있다. 따라서 현재 블록의 인트라 예측 방향성 모드가 MPM 리스트에 존재하는지에 대한 정보 및 존재하는 위치에 대한 정보에 기초하여 현재 블록의 인트라 예측 방향성 모드가 결정되므로, MPM 리스트가 효과적으로 구성되는지에 따라 현재 블록의 인트라 예측 방향성 모드를 유도하기 위한 정보(즉, 비트량)는 달라질 수 있다. The intra prediction directional mode of the current block is likely to be similar to the intra prediction directional modes of the neighboring blocks. Therefore, in order to encode the intra prediction directional mode of the current block, an MPM (Most Probable Mode) list is constructed using the intra prediction directional modes of the neighboring blocks, and information about whether the intra prediction directional mode of the current block exists in the MPM list and information about the position at which it exists can be included in the bitstream. That is, information about the intra prediction directional mode of the current block may not be separately included in the bitstream. Therefore, since the intra prediction directional mode of the current block is determined based on the information about whether the intra prediction directional mode of the current block exists in the MPM list and the information about the position at which it exists, information (i.e., the amount of bits) for deriving the intra prediction directional mode of the current block may vary depending on whether the MPM list is constructed effectively.
현재 블록의 주변 픽셀들의 방향성 특성을 이용하여 인트라 예측 방향성 모드를 유도하는 방법은 MPM 리스트를 구성하는 과정에서도 사용될 수 있다. 디코더는 현재 블록의 주변 픽셀들의 방향성 특성을 이용하여 유도된 현재 블록에 대한 인트라 예측 방향성 모드를 MPM 리스트에 추가하여 현재 블록에 대한 인트라 예측 방향성 모드를 부호화하는데 사용할 수 있다. 이는 현재 블록의 주변 블록이 인트라 예측 모드로 부호화되지 않았거나 MIP(Matrix intra prediction) 모드와 같이 인트라 예측 방향성 모드가 없는 경우 사용될 수 있다.The method of deriving an intra prediction directional mode using the directional characteristics of surrounding pixels of the current block can also be used in the process of constructing an MPM list. The decoder can use the intra prediction directional mode for the current block, which is derived using the directional characteristics of surrounding pixels of the current block, to encode the intra prediction directional mode for the current block by adding it to the MPM list. This can be used when the surrounding blocks of the current block are not encoded with an intra prediction mode or do not have an intra prediction directional mode, such as the MIP (Matrix intra prediction) mode.
현재 블록에 인접한 주변 블록들에는 인트라 예측 방향성 모드가 없는 블록과 인트라 예측 방향성 모드가 존재하는 블록이 혼재할 수 있다. 현재 블록의 좌측에 위치한 주변 블록이 인트라 예측 방향성 모드가 없는 블록이라면, 디코더는 현재 블록의 상측에 위치한 주변 픽셀들만을 이용하여 방향성 특성을 계산하고, 현재 블록의 인트라 예측 방향성 모드를 유도할 수 있다. 또는 현재 블록의 상측에 위치한 주변 블록에는 인트라 예측 방향성 모드가 존재하고, 현재 블록의 좌측에 위치한 주변 블록에는 인트라 예측 방향성 모드가 존재하지 않을 경우, 디코더는 상측에 위치한 주변 블록의 인트라 예측 방향성 모드를 MPM 리스트에 포함하고, 좌측에 위치한 주변 픽셀들의 방향성 특성을 통해 유도된 인트라 예측 방향성 모드를 MPM 리스트에 포함시킬 수 있다.The neighboring blocks adjacent to the current block may include blocks without intra-prediction directional modes and blocks with intra-prediction directional modes. If the neighboring block located on the left side of the current block does not have an intra-prediction directional mode, the decoder can calculate directional characteristics using only the neighboring pixels located on the upper side of the current block and derive the intra-prediction directional mode of the current block. Alternatively, if the neighboring block located on the upper side of the current block has an intra-prediction directional mode and the neighboring block located on the left side of the current block does not have an intra-prediction directional mode, the decoder can include the intra-prediction directional mode of the neighboring block located on the upper side in the MPM list and the intra-prediction directional mode derived from the directional characteristics of the neighboring pixels located on the left side in the MPM list.
도 22는 본 발명의 일 실시예에 따른 현재 블록의 인트라 예측 방향성 모드를 포함한 MPM 리스트를 구성하는 방법을 나타낸 도면이다.FIG. 22 is a diagram illustrating a method for constructing an MPM list including an intra prediction directional mode of a current block according to one embodiment of the present invention.
도 22를 참조하면 DIMD 모드가 MPM 리스트에 우선하여 포함될 수 있다. DIMD 모드를 통해 유도되는 현재 블록의 인트라 예측 방향성 모드는 복수 개일 수 있다. 따라서 디코더는 다중 예측(multiple prediction)을 통해 예측 샘플을 획득할 수 있다. 현재 블록의 주변 블록들 중에서 인트라 예측 방향성 모드가 있는 블록의 인트라 예측 방향성 모드가 MPM 리스트에 추가될 수 있다. MPM 리스트에 빈 곳이 있다면 modeA에서 +1 또는 -1만큼 수정된 모드가 리스트에 추가될 수 있으며, DC 모드, 수평 모드, 수직 모드, MIP 모드가 추가될 수 있다. DIMD 모드 대신에 TIMD(Template based Intra Mode Derivation) 모드가 MPM 리스트에 우선하여 포함될 수 있다. 또한, DIMD 및 TIMD 모드가 MPM 리스트에 모두 포함될 수 있다. 또한, DIMD 모드를 이용하여 유도된 2개의 인트라 방향성 예측 모드들과 TIMD 모드를 이용하여 유도된 2개의 인트라 방향성 예측 모드들 중에서 적어도 하나 이상이 MPM 리스트에 포함될 수 있다. 또한, 2개의 영역으로 분할된 GPM 블록들 중 하나의 제1 영역에 인트라 예측 방향성 모드가 사용되었다면, 제1 영역에 대한 인트라 예측 방향성 모드를 유도하기 위해 MPM 리스트가 사용될 수 있다. MPM 리스트에는 DIMD 모드를 이용하여 유도된 2개의 인트라 예측 방향성 모드와 TIMD 모드를 이용하여 유도된 2개의 인트라 예측 방향성 모드들 중 적어도 하나 이상이 포함될 수 있다.Referring to FIG. 22, the DIMD mode may be preferentially included in the MPM list. There may be multiple intra prediction directional modes of the current block derived through the DIMD mode. Therefore, the decoder may obtain prediction samples through multiple prediction. The intra prediction directional mode of a block having an intra prediction directional mode among the surrounding blocks of the current block may be added to the MPM list. If there is a blank space in the MPM list, a mode modified by +1 or -1 in modeA may be added to the list, and a DC mode, a horizontal mode, a vertical mode, and a MIP mode may be added. Instead of the DIMD mode, the TIMD (Template based Intra Mode Derivation) mode may be preferentially included in the MPM list. In addition, both DIMD and TIMD modes may be included in the MPM list. In addition, at least one of the two intra directional prediction modes derived using the DIMD mode and the two intra directional prediction modes derived using the TIMD mode may be included in the MPM list. In addition, if the intra prediction directional mode is used in a first region of one of the GPM blocks divided into two regions, the MPM list may be used to derive the intra prediction directional mode for the first region. The MPM list may include at least one of the two intra prediction directional modes derived using the DIMD mode and the two intra prediction directional modes derived using the TIMD mode.
MPM리스트에 DIMD 모드가 포함되는 경우, 현재 블록이 DIMD 모드로 부호화되었는지에 대한 정보는 신택스 요소(mpm_idx)를 통해 유도될 수 있다. 따라서, DIMD와 관련된 추가적인 정보는 시그널링될 필요가 없을 수 있다. 이때, 현재 블록이 DIMD 모드로 부호화된 경우, 참조 라인 인덱스는 0(mrl_ref_idx는 0)일 수 있다. 또한, DIMD 모드가 사용된 경우, mrl_ref_idx는 파싱되지 않고 mrl_ref_idx의 값은 0으로 추론(infer)될 수 있다. 또한 MPM 리스트에는 DIMD 모드를 사용하여 유도된 인트라 예측 방향성 모드가 포함될 수 있다. DIMD로부터 유도된 인트라 예측 방향성 모드가 선택되는 경우, mrl_ref_idx는 재설정될 수 있다. 예를 들어, mrl_ref_idx의 값은 0, 1, 2 ... 중 어느 하나로 재설정될 수 있다. 디코더는 mrl_ref_idx를 파싱하여 획득된 mrl_ref_idx의 값에 기초하여 MPM 리스트 내 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 추가할 것인지 MPM 리스트 내 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드의 우선 순위를 결정할 수 있다. 예를 들어, mrl_ref_idx의 값이 0이 아닌 경우, 디코더는 MPM 리스트에 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 포함하지 않을 수 있다. 또는, mrl_ref_idx의 값이 0인 경우에만, 디코더는 MPM 리스트에 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 포함할 수 있다. 또는, mrl_ref_idx의 값으로부터 결정되는 참조 픽셀 라인이 0, 1, 2, 3인 경우에만, 디코더는 MPM 리스트에 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 포함할 수 있다. 또는, mrl_ref_idx의 값으로부터 결정되는 참조 픽셀 라인이 3보다 큰 경우, 디코더는 MPM 리스트에 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 포함하지 않을 수 있다. 또는, mrl_ref_idx의 값이 0이 아닌 경우, 디코더는 MPM 리스트에 DIMD 모드를 이용하여 유도되는 인트라 예측 방향성 모드를 포함할 수 있다. If the MPM list includes the DIMD mode, information about whether the current block is encoded in the DIMD mode can be derived through the syntax element (mpm_idx). Therefore, additional information related to DIMD may not need to be signaled. At this time, if the current block is encoded in the DIMD mode, the reference line index may be 0 (mrl_ref_idx may be 0). In addition, if the DIMD mode is used, mrl_ref_idx may not be parsed and the value of mrl_ref_idx may be inferred as 0. In addition, the MPM list may include an intra prediction directional mode derived using the DIMD mode. If the intra prediction directional mode derived from DIMD is selected, mrl_ref_idx may be reset. For example, the value of mrl_ref_idx may be reset to any one of 0, 1, 2, ... The decoder can determine whether to add an intra prediction directional mode derived using the DIMD mode in the MPM list based on the value of mrl_ref_idx obtained by parsing mrl_ref_idx, and the priority of the intra prediction directional mode derived using the DIMD mode in the MPM list. For example, if the value of mrl_ref_idx is not 0, the decoder may not include the intra prediction directional mode derived using the DIMD mode in the MPM list. Or, only when the value of mrl_ref_idx is 0, the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list. Or, only when the reference pixel line determined from the value of mrl_ref_idx is 0, 1, 2, or 3, the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list. Alternatively, if the reference pixel line determined from the value of mrl_ref_idx is greater than 3, the decoder may not include the intra prediction directional mode derived using the DIMD mode in the MPM list. Alternatively, if the value of mrl_ref_idx is not 0, the decoder may include the intra prediction directional mode derived using the DIMD mode in the MPM list.
DIMD 모드로 유도되는 인트라 예측 방향성 모드는 MPM 리스트 내의 인트라 예측 모드 후보들을 재정렬하는데 사용될 수 있다. 디코더는 현재 블록의 주변 블록들부터 MPM 리스트를 구성한 후, DIMD 모드를 이용하여 인트라 예측 방향성 모드를 유도할 수 있다. 디코더는 유도된 인트라 예측 방향성 모드를 이용하여 MPM 리스트 내의 인트라 예측 모드 후보들을 재정렬할 수 있다. 이때, 디코더는 유도된 인트라 예측 방향성 모드, 현재 블록의 가로의 길이 또는 세로의 길이, 양자화 파라미터 정보, 현재 블록의 주변 블록들 중에서 사용 가능한 인트라 예측 모드 정보, 현재 블록의 주변 블록의 잔차 신호의 존재 여부 정보, 현재 블록이 휘도 블록인지 색차 블록인지에 대한 정보 중 어느 하나 이상을 사용하여 MPM 리스트를 재정렬할 수 있다.The intra prediction directional mode derived by the DIMD mode can be used to reorder intra prediction mode candidates in the MPM list. The decoder can derive the intra prediction directional mode using the DIMD mode after constructing an MPM list from neighboring blocks of the current block. The decoder can reorder the intra prediction mode candidates in the MPM list using the derived intra prediction directional mode. At this time, the decoder can reorder the MPM list using one or more of the derived intra prediction directional mode, the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among neighboring blocks of the current block, information on whether a residual signal of neighboring blocks of the current block exists, and information on whether the current block is a luminance block or a chrominance block.
디코더는 MPM 리스트 내의 인트라 예측 모드 후보들과 유도된 인트라 예측 방향성 모드간 차이를 이용하여 MPM 리스트를 재정렬할 수 있다. 예를 들어, 디코더는 유도된 인트라 예측 방향성 모드와 MPM 리스트 내 인트라 예측 모드 후보들 각각의 차이를 계산하여 차이가 작은 순(0 포함)으로 MPM 리스트를 정렬할 수 있다. MPM 리스트에서 차이가 가장 작은 인트라 예측 모드 후보는 MPM 리스트 내 가장 작은 인덱스 값을 가지도록 설정될 수 있다. 또한, 유도된 인트라 예측 방향성 모드가 MPM 리스트 내에서 가장 높은 우선 순위를 갖도록 설정될 수 있고, 가장 작은 인덱스 값을 가지도록 설정될 수 있다. 그리고 디코더는 유도된 인트라 예측 방향성 모드 이후 MPM 리스트를 유도된 인트라 예측 방향성 모드와 MPM 리스트 내 인트라 예측 모드 후보들 각각의 차이를 계산하여 차이가 작은 순(0 포함)으로 정렬할 수 있다. 또한, 2개의 MPM 리스트를 사용되는 경우, 첫번째 MPM 리스트는 유도된 인트라 예측 방향성 모드와 유사한 인트라 예측 모드 후보 순으로 구성될 수 있다. 유도된 인트라 예측 방향성 모드와 MPM 리스트 내 인트라 예측 모드 후보들 간 차이가 작은 순으로 구성될 수 있다. 두번째 MPM 리스트는 유도된 인트라 예측 방향성 모드와 유사도가 높지 않은 후보들을 사용하여 구성될 수 있다. 예를 들어, 두번째 MPM 리스트는 유도된 인트라 예측 방향성 모드와 MPM 리스트 내 인트라 예측 모드 후보들 간 차이가 큰 순으로 구성될 수 있다. MPM 리스트의 크기가 고정되는 경우, MPM 리스트 내 채워지지 않은 빈 공간이 존재할 수 있다. 이때, 빈 공간에는 MPM 리스트에 이미 포함된 후보들 또는 자주 발생하는 후보들 중에서 하나 이상을 이용하여 유도된 새로운 예측 후보가 추가될 수 있다. 예를 들어, 새로운 예측 후보는 이미 포함된 후보의 모드 번호(인덱스)에서 '+' 또는 '-' 방향으로 임의의 크기만큼 가감된 번호에 대응되는 후보일 수 있다. 이때, 임의의 크기는 '1', '2', '3', … 등의 자연수일 수 있고, 임의의 크기에 대한 정보는 픽쳐 헤더 정보에 포함될 수 있다. 또한, 2개의 MPM 리스트가 사용되는 경우, 첫번째 MPM 리스트는 현재 블록의 이웃 블록의 예측 모드를 참조하여 획득되는 예측 모드들로 구성될 수 있고, 두번째 MPM리스트는 DIMD로 유도된 예측 모드들로 구성될 수 있다. 이때, MPM 리스트에 포함된 예측 모드들의 수가 미리 정의된 MPM 리스트에 포함될 수 있는 예측 모드들의 수보다 작으면 MPM 리스트에 포함된 예측 모드들에 오프셋을 적용하여 유도되는 예측 모드들이 추가될 수도 있다. The decoder can reorder the MPM list by using the difference between the intra prediction mode candidates in the MPM list and the derived intra prediction directional mode. For example, the decoder can calculate the difference between the derived intra prediction directional mode and each of the intra prediction mode candidates in the MPM list and sort the MPM list in order of the smallest difference (including 0). The intra prediction mode candidate with the smallest difference in the MPM list can be set to have the smallest index value in the MPM list. In addition, the derived intra prediction directional mode can be set to have the highest priority in the MPM list and can be set to have the smallest index value. Then, the decoder can sort the MPM list after the derived intra prediction directional mode by calculating the difference between the derived intra prediction directional mode and each of the intra prediction mode candidates in the MPM list in order of the smallest difference (including 0). In addition, when two MPM lists are used, the first MPM list can be composed of intra prediction mode candidates similar to the derived intra prediction directional mode in order of the smallest difference. The derived intra prediction directional mode and the intra prediction mode candidates in the MPM list can be organized in order of the smallest difference. The second MPM list can be organized using candidates that are not highly similar to the derived intra prediction directional mode. For example, the second MPM list can be organized in order of the largest difference between the derived intra prediction directional mode and the intra prediction mode candidates in the MPM list. When the size of the MPM list is fixed, there may be an unfilled empty space in the MPM list. At this time, a new prediction candidate derived using one or more of the candidates already included in the MPM list or frequently occurring candidates can be added to the empty space. For example, the new prediction candidate can be a candidate corresponding to a number that is increased or decreased by an arbitrary size in the '+' or '-' direction from the mode number (index) of the candidate already included. At this time, the arbitrary size can be a natural number such as '1', '2', '3', ..., and information about the arbitrary size can be included in the picture header information. In addition, when two MPM lists are used, the first MPM list may be composed of prediction modes obtained by referring to prediction modes of neighboring blocks of the current block, and the second MPM list may be composed of prediction modes derived by DIMD. At this time, if the number of prediction modes included in the MPM list is smaller than the number of prediction modes that can be included in a predefined MPM list, prediction modes derived by applying an offset to the prediction modes included in the MPM list may be added.
DIMD 모드로 유도된 인트라 예측 방향성 모드는 MPM 리스트 내의 인트라 예측 모드 후보들을 재조합하는데 사용될 수 있다. 디코더는, 현재 블록의 주변 블록들의 예측 모드에 기초하여 MPM 리스트를 구성한 후, DIMD 모드를 통해 인트라 예측 방향성 모드를 유도할 수 있다. 그리고, 디코더는 유도한 인트라 예측 방향성 모드를 이용하여 MPM 리스트 내의 인트라 예측 모드 후보들을 재조합하여 다중 예측 후보(multiple prediction)들로 재구성할 수 있다. 이때, 디코더는 유도된 인트라 예측 방향성 모드, 현재 블록의 가로의 길이 또는 세로의 길이, 양자화 파라미터 정보, 현재 블록의 주변 블록들 중에서 사용 가능한 인트라 예측 모드 정보, 현재 블록의 주변 블록의 잔차 신호의 존재 여부 정보, 현재 블록이 휘도 블록인지 색차 블록인지에 대한 정보 중 어느 하나 이상을 사용하여 MPM 리스트를 재조합할 수 있다. 이하에서 MPM 리스트 재조합 방법에 대해 설명한다.The intra prediction directional mode derived by the DIMD mode can be used to reorganize intra prediction mode candidates in the MPM list. The decoder can derive the intra prediction directional mode through the DIMD mode after constructing the MPM list based on the prediction modes of the surrounding blocks of the current block. Then, the decoder can reorganize the intra prediction mode candidates in the MPM list using the derived intra prediction directional mode to reconstruct multiple prediction candidates. At this time, the decoder can reorganize the MPM list using one or more of the derived intra prediction directional mode, the horizontal or vertical length of the current block, quantization parameter information, available intra prediction mode information among the surrounding blocks of the current block, information on whether a residual signal of the surrounding blocks of the current block exists, and information on whether the current block is a luminance block or a chrominance block. A method for reorganizing the MPM list is described below.
유도된 인트라 예측 방향성 모드와 MPM 리스트 내의 인트라 예측 모드 후보들 간의 차이를 이용하여 디코더는 MPM 리스트를 재조합 할 수 있다. 예를 들어, 디코더는 차이가 임의의 값 이하인 후보들을 선택하여 유도된 인트라 예측 방향성 모드와 상기 후보(MPM 리스트 내 기존의 인트라 예측 모드)들을 조합하여 구성한 다중 예측 후보를 MPM 리스트에 포함할 수 있다. 이때, 디코더는 차이가 작은 순서부터 큰 순서로 해당하는 후보들을 MPM 리스트에 포함할 수 있다. 다음으로, 디코더는 차이가 임의의 값보다 큰 후보들을 차례대로 MPM 리스트에 삽입할 수 있다. 이때, 임의의 값은 1, 2, 3, … 등의 자연수일 수 있다. 예를 들어, 유도된 인트라 예측 모드의 인덱스가 '18'이고, MPM 리스트내에 후보들의 인덱스는 '16', '21', '34', '1', '66'이고 임의의 값은 5로 가정할 수 있다. 이때, 유도된 인트라 예측 모드와 차이가 '5'이내인, 인덱스 '16', '21'이 다중 예측 후보로 변경될 수 있고, MPM 리스트 내 후보들은 인덱스 '16, 18', '21, 18', '34', '1', '66'의 예측 모드로 변경될 수 있다. 즉, '16, 18' 및 '21, 18'이 다중 예측 후보일 수 있다. 예를 들어, 디코더가 MPM 리스트 내 다중 예측 후보인 '16, 18'을 선택하는 경우 디코더는 인덱스 16의 예측 모드로 생성한 예측 샘플과 인덱스 18의 예측 모드로 생성한 예측 샘플을 가중치 평균하여 최종 예측 블록을 생성할 수 있다. 이때, MPM 리스트의 개수가 5로 제한되어 있다면 MPM 리스트는 '16, 18', '21, 18', '16', '21', '34' 가 될 수 있다. 또한, 2개의 MPM 리스트가 사용되는 경우, 경우, 첫번째 MPM 리스트는 유도된 인트라 예측 방향성 모드와 유사한 후보들을 사용하여 재조합되는 후보들로 구성될 수 있다. 두번째 MPM 리스트는 첫번째 MPM 리스트의 후보들 및 유도된 인트라 예측 방향성 모드와 유사도가 높지 않은 후보들로 구성될 수 있다. 따라서, 첫번째 MPM리스트는 다중 예측 후보들로 구성되고, 두 번째 MPM 후보들은 단일 예측 후보들로 구성될 수 있다. 또는 첫번째 MPM리스트는 단일 예측 후보들과 다중 예측 후보들을 모두 포함하여 구성될 수 있고, 두 번째 MPM 후보들은 단일 예측 후보로만 구성될 수 있다. 예를 들어, 유도된 인트라 예측 모드가 인덱스 '18'이고, 첫번째 MPM 리스트내 예측 모드 후보들이 인덱스 '16', '21', '34', '1', '66'이고, 두번째 MPM 리스트내에 예측 모드 후보들이 인덱스 '50', '2', '8', '30', '40'이고, 임의의 값이 5일 수 있다. 이때, 유도된 인트라 예측 모드 인덱스 18과 차이가 5 이내인 인덱스 '16', '21'이 다중 예측 후보로 변경될 수 있다. 이때, 첫번째 MPM리스트는 인덱스 '16, 18', '21, 18', '16', '18', '34'으로 구성될 수 있고, 두번째 MPM 리스트는 인덱스 '1', '66', '50', '2', '8', '30', '40'으로 구성될 수 있다.The decoder can reassemble the MPM list by using the difference between the derived intra prediction directional mode and the intra prediction mode candidates in the MPM list. For example, the decoder can select candidates whose difference is less than or equal to an arbitrary value, and include multiple prediction candidates composed by combining the derived intra prediction directional mode and the candidates (existing intra prediction modes in the MPM list) in the MPM list. At this time, the decoder can include the candidates in order of the smallest difference to the largest difference in the MPM list. Next, the decoder can insert the candidates whose difference is greater than the arbitrary value into the MPM list in order. At this time, the arbitrary value can be a natural number such as 1, 2, 3, ... For example, it can be assumed that the index of the derived intra prediction mode is '18', the indices of the candidates in the MPM list are '16', '21', '34', '1', '66', and the arbitrary value is 5. At this time, the indices '16' and '21', which have a difference of less than '5' from the induced intra prediction mode, can be changed to multiple prediction candidates, and the candidates in the MPM list can be changed to the prediction modes of indices '16, 18', '21, 18', '34', '1', and '66'. That is, '16, 18' and '21, 18' can be multiple prediction candidates. For example, if the decoder selects '16, 18' which is a multiple prediction candidate in the MPM list, the decoder can generate the final prediction block by weighting and averaging the prediction samples generated with the prediction mode of index 16 and the prediction samples generated with the prediction mode of index 18. At this time, if the number of MPM lists is limited to 5, the MPM list can be '16, 18', '21, 18', '16', '21', '34'. In addition, when two MPM lists are used, in this case, the first MPM list may be composed of candidates that are recombined using candidates that are similar to the derived intra prediction directional mode. The second MPM list may be composed of candidates that are not highly similar to the candidates of the first MPM list and the derived intra prediction directional mode. Accordingly, the first MPM list may be composed of multiple prediction candidates, and the second MPM candidates may be composed of single prediction candidates. Alternatively, the first MPM list may be composed of both single prediction candidates and multiple prediction candidates, and the second MPM candidates may be composed of only single prediction candidates. For example, the derived intra prediction mode may have index '18', the prediction mode candidates in the first MPM list may have indexes '16', '21', '34', '1', '66', and the prediction mode candidates in the second MPM list may have indexes '50', '2', '8', '30', '40', and an arbitrary value may be 5. At this time, the indices '16' and '21', which have a difference of less than 5 from the derived intra prediction mode index 18, can be changed to multiple prediction candidates. At this time, the first MPM list can be composed of the indices '16, 18', '21, 18', '16', '18', '34', and the second MPM list can be composed of the indices '1', '66', '50', '2', '8', '30', '40'.
인트라 예측 방향성 모드는 MPM 리스트에 있는지 여부와 MPM 리스트에 있다면 어디에 위치하는지에 기초하여 부호화될 수 있다. 인트라 예측 방향성 모드가 MPM 리스트에 존재하지 않는 경우, 인트라 예측 방향성 모드는 전체 인트라 예측 방향성 모드 개수에서 MPM 리스트 내 예측 모드의 전체 개수를 뺀 값에 기초하여 부호화될 수 있다. 구체적으로 인트라 예측 방향성 모드는 총 67가지가 존재하며 그 중에서 MPM 리스트 내 예측 모드의 전체 개수 5개와 평면 모드를 제외한 61가지에 대하여 부호화가 수행될 수 있다. 이때 61가지의 인트라 예측 방향성 모드는 고정 길이 부호화(fixed length coding)를 사용하여 부호화될 수 있으므로, 총 6개 빈(bin)에 대한 부호화가 필요하다.An intra prediction directional mode can be encoded based on whether it is in the MPM list and, if so, where it is located. If the intra prediction directional mode does not exist in the MPM list, the intra prediction directional mode can be encoded based on the total number of intra prediction directional modes minus the total number of prediction modes in the MPM list. Specifically, there are a total of 67 intra prediction directional modes, and encoding can be performed for 61 of them, excluding the total number of 5 prediction modes in the MPM list and the planar mode. In this case, since the 61 intra prediction directional modes can be encoded using fixed length coding, encoding for a total of 6 bins is required.
도 23 및 도 24는 본 발명의 일 실시예에 따른 현재 블록의 인트라 예측 모드를 유도하기 위해 사용되는 템플릿(template)을 나타낸 도면이다.FIGS. 23 and 24 are diagrams showing templates used to derive an intra prediction mode of a current block according to one embodiment of the present invention.
도 23을 참조하면, 디코더는 현재 블록의 인트라 예측 모드를 유도하기 위해 현재 블록에 인접한 복원된 임의의 영역(픽셀(들))인 템플릿을 사용할 수 있다. 먼저, 디코더는 템플릿에 인접한 주변 픽셀(reference)을 이용하여 템플릿에 대한 예측 템플릿을 생성할 수 있다. 그리고, 디코더는 이미 복원된 템플릿과 가장 유사한 예측 템플릿에 대한 인트라 예측 모드를 현재 블록의 복원을 위해 사용할 수 있다. 상술한 템플릿을 사용하여 현재 블록의 인트라 예측 모드를 유도하는 방법은 TIMD(Template intra mode derivation)라고 기술될 수 있다. 이때, 인트라 예측 모드는 인덱스 0 내지 67의 모드일 수 있고, 현재 블록의 주변 블록으로부터 유도된 MPM 리스트 내에 있는 인트라 예측 모드만 해당될 수도 있다. 이때, 인트라 예측 모드는 현재 블록의 주변 블록으로부터 유도된 MPM 리스트 내에 있는 인트라 예측 모드와 해당 인트라 예측 모드와 임의의 수만큼 차이가 나는 모드들일 수 있다. 임의의 수는 1, 2, 3, ... 일 수 있다. 또는 템플릿에 대한 인트라 예측 모드에는 방향성 모드만 해당할 수 있고, 비방향성 모드(평면 모드, DC 모드)는 해당하지 않을 수 있다.Referring to FIG. 23, the decoder can use a template, which is a reconstructed arbitrary region (pixel(s)) adjacent to the current block, to derive an intra prediction mode of the current block. First, the decoder can generate a prediction template for the template using neighboring pixels (reference) adjacent to the template. Then, the decoder can use the intra prediction mode for the prediction template that is most similar to the already reconstructed template to reconstruct the current block. The method of deriving the intra prediction mode of the current block using the above-described template can be described as TIMD (Template intra mode derivation). At this time, the intra prediction mode can be a mode of index 0 to 67, and may only correspond to an intra prediction mode in the MPM list derived from the neighboring blocks of the current block. At this time, the intra prediction mode can be an intra prediction mode in the MPM list derived from the neighboring blocks of the current block and modes that differ from the corresponding intra prediction mode by an arbitrary number. The arbitrary number can be 1, 2, 3, ... Alternatively, the intra prediction mode for the template may only correspond to a directional mode, and may not correspond to a non-directional mode (planar mode, DC mode).
이하 TIMD 모드를 이용하여 인트라 예측 방향성 모드를 유도하는 방법에 대해 설명한다. Below, we describe a method for deriving an intra prediction directional mode using the TIMD mode.
i) 디코더는 템플릿의 크기를 설정할 수 있다. 템플릿의 가로 또는 세로의 크기(길이)는 4일 수 있고, 현재 블록의 가로 또는 세로의 크기(길이)가 8 이하인 경우, 템플릿의 가로 또는 세로의 크기는 2로 설정될 수 있다. ii) 디코더는 템플릿의 타입을 설정할 수 있다. 템플릿의 타입은 좌측 샘플만 사용하는 타입, 상측 샘플만 사용하는 타입, 좌측, 상측 및 좌상측 샘플을 모두 사용하는 타입으로 구분될 수 있다. 디코더는 주변 블록이 유효한지 또는 주변 블록이 인트라 예측 방향성 모드를 유도하는데 사용될 수 있는지 여부에 따라 템플릿의 타입을 결정할 수 있다. 한편, 주변 블록이 인트라 예측 방향성 모드를 유도하는데 사용될 수 없는 경우, TIMD 모드는 평면 모드로 설정될 수 있고, 가중치 평균은 수행되지 않을 수 있다. iii) 디코더는 현재 블록에 대한 템플릿을 구성할 수 있다. iv) 디코더는, 현재 블록이 방향성을 가지는지 판단하기 위해 현재 블록의 좌측, 상측, 좌상측, 우상측, 좌하측에 위치한 주변 블록들에 대한 인트라 예측 방향성 모드를 유도할 수 있다. v) 현재 블록의 주변 블록들이 모두 방향성을 가지지 않는 경우(예를 들어, 비방향성 모드(DC 모드, 평면 모드, MIP 모드 등)), 디코더는 최소 코스트(Cost)를 가지는 하나의 인트라 예측 방향성 모드를 선택하고, TIMD 모드를 수행하지 않을 수 있다. 이때, 여러 개의 예측 블록을 이용하는 가중치 평균은 수행되지 않을 수 있다. vi) 현재 블록의 주변 블록들 중 방향성을 가지는 블록이 하나 이상 존재한다면, 후술하는 과정이 수행될 수 있다. 후술하는 과정은 MPM 리스트 내에 존재하는 인트라 예측 방향성 모드에 기초하여 수행될 수 있다. 67가지의 인트라 예측 방향성 모드를 모두 확인하는 경우 복잡도가 증가할 수 있기 때문이다. a. 디코더는 MPM 리스트를 구성할 수 있다. b. 다음으로, 디코더는 MPM 리스트 내에 DC 모드, 수평 모드, 수직 모드가 존재하지 않으면 MPM 리스트 내에 추가하여 MPM 리스트를 수정할 수 있다. c. 디코더는 수정된 리스트 내의 모든 인트라 예측 방향성 모드들에 대한 평가를 수행하여 코스트를 비교할 수 있다. 디코더는 가장 작은 코스트를 가지는 제1 모드와 두번째로 작은 코스트를 가지는 제2 모드를 선택할 수 있다. d. 디코더는, 정확도를 높이기 위해 제1 모드의 인트라 예측 방향성 모드 인덱스와 제2 모드의 인트라 예측 방향성 모드의 인덱스보다 1만큼 적거나 큰 인덱스에 대응되는 인트라 예측 방향성 모드에 대한 평가를 추가적으로 수행할 수 있다. 디코더는 추가적인 평가를 수행하고 가장 작은 코스트를 가지는 제3모드와 2번째로 작은 코스트를 가지는 제4 모드를 다시 선택할 수 있다. 한편, 제1 모드와 제3 모드는 서로 동일할 수 있고, 제2 모드와 제4 모드는 동일할 수 있다. e. 디코더는 제3 모드와 제4 모드의 코스트에 기초하여 가중치 평균을 수행할지 여부를 결정할 수 있다. 제3 모드의 코스트와 제4 모드의 코스트 간 차이가 특정 값보다 작다면 디코더는 가중치 평균을 수행할 수 있고, 제3 모드와 제4 모드의 가중치는 제3 모드와 제4 모드의 코스트를 기반으로 결정될 수 있다. 제3 모드의 코스트와 제4 모드의 코스트 간 차이가 특정 값보다 크다면 디코더는 가중치 평균을 수행하지 않고 제3 모드만을 사용하여 예측 블록을 생성할 수 있다. 이때 특정 값은 미리 약속된 값일 수 있다.i) The decoder can set the size of the template. The horizontal or vertical size (length) of the template can be 4, and if the horizontal or vertical size (length) of the current block is 8 or less, the horizontal or vertical size of the template can be set to 2. ii) The decoder can set the type of the template. The type of the template can be classified into a type that uses only left samples, a type that uses only upper samples, and a type that uses all of the left, upper, and upper-left samples. The decoder can determine the type of the template according to whether the neighboring block is valid or whether the neighboring block can be used to induce the intra prediction directional mode. Meanwhile, if the neighboring block cannot be used to induce the intra prediction directional mode, the TIMD mode can be set to the planar mode, and the weighted averaging may not be performed. iii) The decoder can configure a template for the current block. iv) The decoder can derive intra prediction directional modes for neighboring blocks located on the left, above, upper-left, upper-right, and lower-left of the current block to determine whether the current block has directionality. v) If none of the neighboring blocks of the current block have directionality (for example, non-directional mode (DC mode, planar mode, MIP mode, etc.)), the decoder can select one intra prediction directional mode with the minimum cost and not perform the TIMD mode. In this case, weighted averaging using multiple prediction blocks may not be performed. vi) If at least one block has directionality among the neighboring blocks of the current block, the process described below can be performed. The process described below can be performed based on the intra prediction directional modes existing in the MPM list. This is because complexity can increase if all 67 intra prediction directional modes are checked. a. The decoder can construct an MPM list. b. Next, the decoder can modify the MPM list by adding DC mode, horizontal mode, and vertical mode into the MPM list if they do not exist in the MPM list. c. The decoder can perform an evaluation for all intra prediction directional modes in the modified list to compare costs. The decoder can select a first mode having a smallest cost and a second mode having a second smallest cost. d. The decoder can additionally perform an evaluation for an intra prediction directional mode corresponding to an index that is 1 less than or greater than an intra prediction directional mode index of the first mode and an intra prediction directional mode index of the second mode to increase accuracy. The decoder can perform an additional evaluation and reselect a third mode having a smallest cost and a fourth mode having a second smallest cost. Meanwhile, the first mode and the third mode can be the same, and the second mode and the fourth mode can be the same. e. The decoder can determine whether to perform weighted averaging based on the costs of the third mode and the fourth mode. If the difference between the cost of the third mode and the cost of the fourth mode is less than a specific value, the decoder can perform weighted averaging, and the weights of the third mode and the fourth mode can be determined based on the costs of the third mode and the fourth mode. If the difference between the cost of the third mode and the cost of the fourth mode is greater than a specific value, the decoder can generate the prediction block using only the third mode without performing weighted averaging. In this case, the specific value can be a pre-agreed value.
템플릿의 크기는 현재 블록의 가로의 길이 또는 세로의 길이에 따라 달라질 수 있다. 예를 들어, 도 23(a)와 같이 현재 블록의 가로의 길이보다 긴 상측 템플릿(Above template)이 구성될 수 있다. 이때, 상측 템플릿의 세로 길이는 미리 약속된 길이일 수 있다. 마찬가지로, 현재 블록의 세로의 길이보다 긴 좌측 템플릿(Left template)이 구성될 수 있다. 이때, 좌측 템플릿의 가로 길이는 미리 약속된 길이일 수 있다. 미리 약속된 길이는 1, 2, 3, ... 일 수 있다.The size of the template may vary depending on the horizontal length or vertical length of the current block. For example, as in Fig. 23(a), an above template longer than the horizontal length of the current block may be configured. At this time, the vertical length of the above template may be a predetermined length. Similarly, a left template longer than the vertical length of the current block may be configured. At this time, the horizontal length of the left template may be a predetermined length. The predetermined length may be 1, 2, 3, ...
현재 블록이 CTU 경계에 위치해 있는 경우(현재 블록의 상하좌우 중 어느 경계가 CTU의 경계에 포함되는 경우), TIMD 모드를 위해 사용되는 템플릿을 유도/예측하기 위한 참조 픽셀은 변경될 수 있다. 도 24를 참조하면 현재 블록의 상측 경계가 CTU의 경계에 포함되는 경우, 템플릿 구성을 위해 사용되는 현재 블록의 상측에 위치한 참조 라인은 1개일 수 있다. 이는 라인 버퍼(line buffer) 메모리 사용량을 최소화하기 위함이다. 따라서, 디코더는 현재 블록의 상측 템플릿을 구성하지 않고, 현재 블록의 좌측 템플릿만 구성하여 TIMD 모드를 수행할 수 있다. 이때, 좌측 템플릿을 예측하기 위한 참조 픽셀은 현재 블록의 상측 참조 픽셀(above reference)와 좌측 참조 픽셀(left reference)이 사용될 수 있다. 이때, 좌측 템플릿의 높이는 도 24(a)와 같이 현재 블록의 높이와 동일할 수 있다. 또한, 도 24(b)와 같이 디코더는 현재 블록의 좌측에 이웃하는 블록이 이미 복원이 완료된 블록인지를 확인한 후, 만일 복원이 완료된 블록일 경우, 좌측 템플릿의 높이를 현재 블록의 높이보다 크게 구성할 수 있다.If the current block is located at the CTU boundary (if any of the upper, lower, left, and right boundaries of the current block is included in the boundary of the CTU), the reference pixel for deriving/predicting the template used for the TIMD mode can be changed. Referring to Fig. 24, if the upper boundary of the current block is included in the boundary of the CTU, the number of reference lines located at the upper side of the current block used for configuring the template can be only one. This is to minimize the usage of the line buffer memory. Therefore, the decoder can perform the TIMD mode by configuring only the left template of the current block, without configuring the upper template of the current block. At this time, the reference pixels for predicting the left template can be the upper reference pixel (above reference) and the left reference pixel (left reference) of the current block. At this time, the height of the left template can be the same as the height of the current block, as shown in Fig. 24(a). In addition, as shown in Fig. 24(b), the decoder can check whether the block adjacent to the left of the current block is a block that has already been restored, and if it is a block that has been restored, the height of the left template can be configured to be greater than the height of the current block.
일반적으로 현재 블록에 대한 예측 샘플의 정확도는 디코더가 현재 블록의 인접한 주변 픽셀을 많이 참조할수록 높아질 수 있다. 반면에, 주변 픽셀을 많이 참조하게 되면 요구되는 메모리가 증가하게 된다. 또한, 현재 블록에 인접한 주변 블록 중 아직 복원되지 않은 블록이 존재할 경우, 해당 영역은 템플릿으로 사용할 수 없다. 이러한 메모리 증가 및 복원되지 않은 영역에 대한 효과적인 처리를 위해, 도 23(b)와 같이 상측 템플릿의 길이는 현재 블록의 가로의 길이와 동일하게 좌측 템플릿의 길이는 현재 블록의 세로의 길이와 동일하게 설정될 수 있다.In general, the accuracy of the prediction sample for the current block can be increased as the decoder refers to many adjacent pixels of the current block. On the other hand, referring to many adjacent pixels increases the required memory. In addition, if there is a block among the adjacent blocks of the current block that has not been restored yet, the corresponding area cannot be used as a template. In order to effectively process this increased memory and the area that has not been restored, as shown in Fig. 23(b), the length of the upper template can be set to be the same as the horizontal length of the current block, and the length of the left template can be set to be the same as the vertical length of the current block.
디코더는 현재 블록에 대한 예측 샘플을 획득하는데 템플릿을 이용하여 유도되는 인트라 예측 모드를 사용할 수 있다. 디코더는 현재 블록에 인접한 주변 픽셀을 이용하여 예측 샘플을 생성할 수 있고, 예측 샘플을 생성하기 위해 어떠한 주변 픽셀을 사용할 것인지 적응적으로 선택할 수 있다. 또한, 디코더는 예측 샘플을 생성하기 위해 다중 참조 라인을 사용할 수 있는데, 이때 다중 참조 라인의 인덱스 정보는 비트스트림에 포함될 수 있다. The decoder can use an intra prediction mode derived from a template to obtain a prediction sample for the current block. The decoder can generate a prediction sample using neighboring pixels adjacent to the current block, and can adaptively select which neighboring pixels to use to generate the prediction sample. In addition, the decoder can use multiple reference lines to generate the prediction sample, and in this case, index information of the multiple reference lines can be included in the bitstream.
엔트로피 코딩을 위해서, TIMD 모드를 위한 다중 참조 라인의 인덱스에 대한 컨텍스트(context)가 새롭게 정의될 수 있다. 컨텍스트 종류의 증가는 메모리 및 컨텍스트 스위칭 복잡도와 관련될 수 있다. 따라서, TIMD 모드에서 사용되는 다중 참조 라인의 인덱스를 코딩 및 디코딩하기 위해 사용되는 컨텍스트는 기존의 다중 참조 라인의 인덱스에 대한 컨텍스트를 재사용한 것일 수 있다.For entropy coding, a context for the index of multiple reference lines for TIMD mode can be newly defined. The increase in the type of context may be related to memory and context switching complexity. Therefore, the context used for coding and decoding the index of multiple reference lines used in TIMD mode may be a reuse of the context for the index of existing multiple reference lines.
현재 블록의 잔차 신호에 대한 변환은 2단계로 진행될 수 있다. 1차 변환은 DCT-II, DST-VII, DCT-VIII, DCT5, DST4, DST1, identity transformation (IDT) 등의 변환을 수평 그리고 수직에 각각 적응적으로 적용되는 것일 수 있다. 1차 변환이 완료된 변환 계수에 2차 변환이 추가적으로 적용될 수 있고, 2차 변환은 1차 변환된 변환 계수와 미리 정의된 매트릭스(matrix) 간의 행렬 곱으로 계산될 수 있다. 2차 변환은 저대역 비분리 변환(Low Frequency Non-Separable Transform, LFNST)로 기술될 수 있다. 2차 변환을 위한 매트릭스 변환 세트는 현재 블록의 인트라 예측 모드에 따라 달라질 수 있다. 2차 변환에 사용되는 변환 매트릭스의 계수 정보는 비트스트림에 포함될 수 있다.The transformation of the residual signal of the current block can be performed in two steps. The first transform can be a transform such as DCT-II, DST-VII, DCT-VIII, DCT5, DST4, DST1, identity transformation (IDT) that is adaptively applied horizontally and vertically, respectively. The second transform can be additionally applied to the transform coefficients for which the first transform is completed, and the second transform can be computed as a matrix multiplication between the first-transformed transform coefficients and a predefined matrix. The second transform can be described as a low frequency non-separable transform (LFNST). The matrix transform set for the second transform can vary depending on the intra prediction mode of the current block. Coefficient information of the transform matrix used for the second transform can be included in the bitstream.
DIMD 모드 또는 TIMD 모드가 적용되는 현재 블록에 2차 변환이 적용되는 경우, 2차 변환에 대한 변환 세트는 DIMD 모드 또는 TIMD 모드로 유도된 인트라 예측 모드에 기초하여 결정될 수 있다. 2차 변환에 사용되는 변환 매트릭스의 계수 정보는 비트스트림에 포함될 수 있다. 디코더는 비트스트림에 포함된 계수 정보를 파싱하여 DIMD 모드 또는 TIMD 모드를 위한 2차 변환의 매트릭스 계수 정보를 설정할 수 있다. 이때, TIMD 모드로부터 유도된 2개의 인트라 예측 모드들 중에서 하나가 1차 변환 또는 2차 변환 세트를 선택하는데 사용될 수 있다. 2개의 인트라 예측 방향성 모드 각각의 코스트를 비교하여 가장 작은 코스트를 가지는 인트라 예측 방향성 모드가 1차 변환 또는 2차 변환 세트를 선택하는데 사용될 수 있다. 또한, DIMD로부터 유도된 2개의 인트라 예측 방향성 모드들 중에서 하나가 1차 변환 또는 2차 변환 세트를 선택하는데 사용될 수 있다. 2개의 인트라 예측 모드 각각의 가중치를 비교하여 가장 높은 가중치를 가지는 인트라 예측 방향성 모드가 1차 변환 또는 2차 변환 세트를 선택하는데 사용될 수 있다.When a secondary transform is applied to a current block to which the DIMD mode or the TIMD mode is applied, a transform set for the secondary transform can be determined based on an intra prediction mode derived from the DIMD mode or the TIMD mode. Coefficient information of a transform matrix used for the secondary transform can be included in a bitstream. A decoder can set matrix coefficient information of a secondary transform for the DIMD mode or the TIMD mode by parsing the coefficient information included in the bitstream. At this time, one of the two intra prediction modes derived from the TIMD mode can be used to select the primary transform or the secondary transform set. The intra prediction directional mode having the smallest cost by comparing the costs of each of the two intra prediction directional modes can be used to select the primary transform or the secondary transform set. In addition, one of the two intra prediction directional modes derived from the DIMD can be used to select the primary transform or the secondary transform set. By comparing the weights of each of the two intra prediction modes, the intra prediction directional mode with the highest weight can be used to select the first or second transform set.
TIMD 모드는 현재 블록의 템플릿을 예측하고, 템플릿으로부터 유도된 인트라 예측 모드를 현재 블록의 예측 블록을 생성하는데 사용하는 모드이므로 복잡도가 높다. 따라서, 디코더가 템플릿 영역에 대한 예측 템플릿을 생성할 때, 기존의 참조 샘플 필터링 과정을 수행하지 않을 수 있다. 또한, 현재 블록에 ISP 모드가 적용되는 경우 또는 현재 블록이 CIIP 모드로 적용되는 경우, TIMD 모드가 적용되지 않을 수 있다. TIMD 모드가 적용된 현재 블록에는 ISP 모드 또는 CIIP 모드가 적용되지 않을 수 있거나 ISP 또는 CIIP와 관련된 신택스가 파싱되지 않을 수 있다. 이때 파싱되지 않는 ISP 또는 CIIP와 관련된 신택스의 값은 미리 지정된 값으로 추론(infer)될 수 있다.The TIMD mode has high complexity because it predicts the template of the current block and uses the intra prediction mode derived from the template to generate the prediction block of the current block. Therefore, when the decoder generates the prediction template for the template region, the existing reference sample filtering process may not be performed. In addition, the TIMD mode may not be applied when the ISP mode is applied to the current block or when the CIIP mode is applied to the current block. The ISP mode or the CIIP mode may not be applied to the current block to which the TIMD mode is applied, or the syntax related to the ISP or CIIP may not be parsed. In this case, the value of the syntax related to the ISP or CIIP that is not parsed can be inferred as a predefined value.
템플릿 예측은 현재 블록에 인접한 좌측 템플릿 영역과 상측 템플릿 영역으로 나누어져 수행될 수 있고, 각 템플릿마다 인트라 예측 모드가 유도될 수 있다. 또한 각 템플릿마다 인트라 예측 모드가 2개 이상 유도될 수 있고, 현재 블록에 대한 인트라 예측 모드는 4개 이상이 될 수 있다. 인트라 예측 모드가 2개 이상인 경우, 현재 블록에 대한 예측 샘플은 유도된 인트라 예측 모드들을 모두 사용하여 생성될 수 있고, 디코더는 생성된 예측 샘플들을 가중치 평균하여 현재 블록에 대한 최종 예측 블록을 생성할 수 있다. 이때, 예측 샘플을 생성하기 위해 템플릿 예측으로부터 유도된 2개 이상의 인트라 예측 모드들, 평면 모드, DC 모드, MIP 모드 중에서 적어도 3개 이상이 사용될 수 있다. 예를 들어, 디코더가 현재 블록에 대한 예측 샘플을 생성(획득)할 때, 디코더는 템플릿 예측으로 유도된 인트라 예측 모드들과 평면 모드를 사용하여 생성한 예측 샘플들을 가중치 평균하여 최종 예측 샘플을 생성할 수 있다.Template prediction can be performed by dividing into a left template region and an upper template region adjacent to the current block, and an intra prediction mode can be derived for each template. In addition, two or more intra prediction modes can be derived for each template, and there can be four or more intra prediction modes for the current block. When there are two or more intra prediction modes, a prediction sample for the current block can be generated using all of the derived intra prediction modes, and the decoder can generate a final prediction block for the current block by weighting and averaging the generated prediction samples. At this time, at least three or more of two or more intra prediction modes derived from template prediction, a planar mode, a DC mode, and a MIP mode can be used to generate the prediction sample. For example, when the decoder generates (obtains) a prediction sample for the current block, the decoder can generate a final prediction sample by weighting and averaging the prediction samples generated using the intra prediction modes derived from template prediction and the planar mode.
CIIP 모드가 적용되는 경우에도 상술한 방법들을 이용하여 예측 샘플은 생성될 수 있다. CIIP 모드는 현재 블록에 대한 예측 샘플(블록)을 생성할 때, 인트라 예측과 인터 예측을 모두 사용하는 방법이다. 현재 블록에 대한 예측 샘플은 인트라 예측 샘플과 인터 예측 샘플 간의 가중치 평균으로 생성될 수 있다.Even when the CIIP mode is applied, prediction samples can be generated using the methods described above. The CIIP mode is a method that uses both intra prediction and inter prediction when generating prediction samples (blocks) for the current block. The prediction sample for the current block can be generated as a weighted average between the intra prediction samples and the inter prediction samples.
CIIP 모드를 적용하여 인트라 예측 샘플이 생성되는 경우, DIMD 모드 또는 TIMD 모드가 사용될 수 있다. 이때 DIMD 모드가 사용되는 경우, 인트라 예측 샘플은 DIMD 조합 정보에 기초하여 생성될 수 있다. 예를 들어, 디코더는 가중치가 가장 높은 인트라 예측 모드를 사용하여 제1 예측 샘플을 생성하고 2번째로 가중치가 높은 인트라 예측 모드를 사용하여 제2 예측 샘플을 생성할 수 있다. 그리고, 디코더는 제1 예측 샘플과 제2 예측 샘플을 가중치 평균하여 최종 인트라 예측 블록을 생성할 수 있다. 이때, 디코더는 현재 블록의 주변 블록들 중 평면 모드로 예측된 샘플과 제1 예측 샘플, 제2 예측 샘플 총 3개의 예측 샘플들을 가중치 평균하여 최종 인트라 예측 블록을 생성할 수 있다. TIMD 모드가 사용되는 경우, 인트라 예측 샘플은 TIMD 조합 정보에 기초하여 생성될 수 있다. 예를 들어, 디코더는 2개의 인트라 예측 모드 각각을 사용하여 2개의 예측 샘플을 생성할 수 있다. 그리고, 디코더는 2개의 예측 샘플을 가중치 평균하여 최종 인트라 예측 샘플을 생성할 수 있다. 이때, 디코더는 2개의 예측 샘플과 평면 모드로 예측된 샘플을 가중치 평균하여 최종 인트라 예측 샘플을 생성할 있다.When the CIIP mode is applied to generate intra prediction samples, the DIMD mode or the TIMD mode can be used. In this case, when the DIMD mode is used, the intra prediction sample can be generated based on the DIMD combination information. For example, the decoder can generate the first prediction sample using the intra prediction mode with the highest weight and generate the second prediction sample using the intra prediction mode with the second highest weight. Then, the decoder can generate the final intra prediction block by performing a weighted average of the first prediction sample and the second prediction sample. In this case, the decoder can generate the final intra prediction block by performing a weighted average of three prediction samples, including the sample predicted in the planar mode and the first prediction sample and the second prediction sample among the neighboring blocks of the current block. In this case, the intra prediction sample can be generated based on the TIMD combination information. For example, the decoder can generate two prediction samples using each of the two intra prediction modes. And, the decoder can generate a final intra prediction sample by weighting the two prediction samples. At this time, the decoder can generate a final intra prediction sample by weighting the two prediction samples and the sample predicted in the planar mode.
인트라 예측 샘플은 위치에 따라 정확도가 달라질 수 있다. 즉, 예측 샘플 내 예측에 사용된 주변 픽셀과 거리가 먼 위치의 픽셀은 거리가 가까운 위치의 픽셀보다 더 많은 잔차 신호를 포함할 수 있다. 따라서, 디코더는 인트라 예측 모드의 방향에 따라 예측 샘플을 수직, 수평, 대각선 방향으로 분할하고, 예측에 사용된 주변 픽셀과의 거리에 따라 가중치를 다르게 설정할 수 있다. 이는 CIIP 모드를 사용하여 생성한 인트라 예측 블록 또는 2개 이상의 인트라 예측 모드를 사용하여 생성한 인트라 예측 블록에 적용될 수 있으며, 참조 픽셀의 위치와 예측 블록 내 픽셀 위치 간의 거리에 따라 예측 블록 내 픽셀마다 가중치를 다르게 설정할 수 있다. 실시 일 예로, 현재 블록의 인트라 예측 모드가 수직 방향 또는 수직과 유사한 방향을 가지는 모드일 경우, 예측 블록의 픽셀 위치가 상단 픽셀과 거리가 가까울수록 높은 가중치가 설정되고 상단 픽셀과 거리가 먼 픽셀 위치일수록 낮은 가중치가 각 픽셀 위치마다 설정될 수 있다. Intra prediction samples may have different accuracy depending on their location. That is, pixels at locations far from surrounding pixels used for prediction in the prediction sample may include more residual signals than pixels at locations close to the pixels. Therefore, the decoder may divide the prediction sample into vertical, horizontal, and diagonal directions according to the direction of the intra prediction mode, and may set different weights according to the distances from surrounding pixels used for prediction. This may be applied to intra prediction blocks generated using the CIIP mode or intra prediction blocks generated using two or more intra prediction modes, and may set different weights for each pixel in the prediction block according to the distance between the location of the reference pixel and the pixel location in the prediction block. As an example of implementation, if the intra prediction mode of the current block is a mode having a vertical direction or a direction similar to the vertical direction, a higher weight may be set for each pixel location as the pixel location of the prediction block is closer to the upper pixel, and a lower weight may be set for each pixel location as the pixel location is farther from the upper pixel.
현재 블록이 CIIP 모드로 부호화되는 경우, 디코더는 인트라 예측 샘플과 인터 예측 샘플을 가중치 평균하여 최종 예측 블록을 생성할 수 있다. 인터 예측 샘플에서의 픽셀 단위 가중치는 인트라 예측 샘플의 픽셀 단위 가중치를 고려하여 설정될 수 있다. 예를 들어, 인터 예측 샘플의 픽셀 단위 가중치는 전체 가중치의 합에서 인트라 예측 샘플의 픽셀 단위 가중치를 뺀 값이 될 수 있다. 이때, 전체 가중치의 합은 픽셀 단위에서 인트라 예측 샘플의 가중치와 인터 예측 샘플의 가중치가 더해진 값일 수 있다.If the current block is encoded in the CIIP mode, the decoder can generate a final prediction block by weighting the intra prediction sample and the inter prediction sample. The pixel-wise weight in the inter prediction sample can be set by considering the pixel-wise weight of the intra prediction sample. For example, the pixel-wise weight of the inter prediction sample can be a value obtained by subtracting the pixel-wise weight of the intra prediction sample from the sum of all weights. In this case, the sum of all weights can be a value obtained by adding the weight of the intra prediction sample and the weight of the inter prediction sample at the pixel level.
예측 샘플 생성을 위해 2개 이상의 인트라 예측 모드가 사용되는 경우, 디코더는 각 인트라 예측 모드에 기초하여 예측 샘플을 각각 생성하고, 생성된 예측 샘플들을 가중치 평균하여 최종 예측 샘플을 생성할 수 있다. 각 인트라 예측 모드에 대한 예측 샘플을 생성할 때, 인트라 예측 모드에 따른 픽셀 단위 가중치가 적용될 수 있다.When two or more intra prediction modes are used to generate prediction samples, the decoder can generate prediction samples based on each intra prediction mode, and perform a weighted average on the generated prediction samples to generate a final prediction sample. When generating prediction samples for each intra prediction mode, a pixel-wise weight according to the intra prediction mode can be applied.
픽셀 단위 가중치는 인트라 예측 모드, 현재 블록의 가로의 길이, 세로의 길이, 양자화 파라미터, 현재 블록이 휘도 인지 또는 색차 인지에 대한 정보, 주변 블록의 인트라 코딩 여부, 주변 블록의 잔여 변환 계수에 대한 존재 유무 정보 등 적어도 어느 하나에 기초하여 설정될 수 있다.The pixel-wise weights may be set based on at least one of the following: an intra prediction mode, the width and height of the current block, a quantization parameter, information about whether the current block is luminance or chrominance, whether the surrounding block is intra coded, and information about the presence or absence of residual transform coefficients of the surrounding block.
도 25 내지 도 28은 본 발명의 일 실시예에 따른 복수의 참조 픽셀 라인에 기초하여 예측 샘플(픽셀)을 생성하는 방법을 나타내는 도면이다.FIGS. 25 to 28 are diagrams illustrating a method for generating prediction samples (pixels) based on a plurality of reference pixel lines according to one embodiment of the present invention.
도 25(a)를 참조하면, 비디오 신호 처리 장치는 현재 블록(2501)에 인접한 제1 참조 픽셀 라인 (reference line 1)과 제1 참조 픽셀 라인에 상측으로 인접한 제2 참조 픽셀 라인(reference line 2)에 기초하여 현재 블록 내 예측 샘플(2502)을 생성할 수 있다. 도 25(a)의 예측 샘플 샘플 (2502)은 본 발명의 일 실시예에 따른 위치에 대응되는 샘플일 뿐, 픽셀의 위치는 이에 한정되지 않는다. 본 명세서에서 비디오 신호 처리 장치가 생성한다는 의미는 비디오 신호 처리 장치가 획득한다는 의미와 동일할 수 있다. 도 25(b)는 도 25(a)를 보다 자세하게 나타낸 도면이다. 예를 들어, 비디오 신호 처리 장치는 제1 참조 픽셀 라인의 6개의 참조 픽셀들을 통해, 인트라 예측 모드에 따라 스무딩(smoothing) 필터, 큐빅(cubic) 또는 가우시안(gaussian) 필터를 사용하여 제1 예측 픽셀(2503)을 생성할 수 있다. 그리고, 비디오 신호 처리 장치는 제2 참조 픽셀 라인의 6개의 참조 픽셀들을 통해, 인트라 예측 모드에 따라 스무딩(smoothing) 필터, 큐빅(cubic) 또는 가우시안(gaussian) 필터를 사용하여 제2 예측 픽셀(2504)을 생성할 수 있다. 비디오 신호 처리 장치는 생성한 제1 예측 픽셀(2503)과 제2 예측 픽셀(2504)에 대해 임의의 정해진 가중치를 통해 가중치 평균을 수행하여 제3 예측 픽셀(2505)을 생성할 수 있다. 이때, 제2 참조 픽셀 라인의 6개의 참조 픽셀들은, 현재 블록의 인트라 예측 모드, 생성할 픽셀 위치, 참조 픽셀 라인의 위치 등을 고려하여 제1 참조 픽셀 라인의 각 픽셀들보다 오른쪽으로 한 픽셀만큼 이동한 위치의 참조 픽셀들일 수 있다. 비디오 신호 처리 장치는 제3 예측 픽셀(2505)에 기초하여 현재 블록 내 예측 샘플(2502)을 생성할 수 있다. 또는 비디오 신호 처리 장치는 제3 예측 픽셀(2505) 및, 제3 예측 픽셀(2505)과 현재 블록 내 예측 샘플(2502)간의 거리에 기초하여 현재 블록 내 예측 샘플(2502)을 생성할 수 있다. 비디오 신호 처리 장치가 제3 예측 픽셀(2505)을 생성하기 위해 사용하는 가중치는 0이상의 정수 일 수 있다. 예를 들어, 제1 예측 픽셀(2503)의 가중치는 3일 수 있고, 제2 예측 픽셀(2504)의 가중치는 1일 수 있다. 이때, 현재 블록의 인트라 예측 모드, 생성되는 픽셀의 위치(예를 들어, 도 25의 제1 예측 픽셀(2503)의 위치, 제2 예측 픽셀(2504)의 위치 제3 예측 픽셀(2505)의 위치), 참조 픽셀 라인의 위치(예를 들어, 도 25의 제1 참조 픽셀 라인, 제2 참조 픽셀 라인의 위치) 등 적어도 하나 이상에 기초하여 예측 샘플을 생성하기 위해 사용되는 참조 픽셀의 위치(도 25의 제1 참조 픽셀 라인의 6개의 참조 픽셀의 위치, 제2 참조 픽셀 라인의 6개의 참조 픽셀의 위치)는 달라질 수 있다.Referring to FIG. 25(a), the video signal processing device can generate a prediction sample (2502) within the current block based on a first reference pixel line (reference line 1) adjacent to the current block (2501) and a second reference pixel line (reference line 2) adjacent above the first reference pixel line. The prediction sample (2502) of FIG. 25(a) is only a sample corresponding to a position according to an embodiment of the present invention, and the position of the pixel is not limited thereto. In this specification, the meaning that the video signal processing device generates may be the same as the meaning that the video signal processing device acquires. FIG. 25(b) is a drawing showing FIG. 25(a) in more detail. For example, the video signal processing device can generate a first prediction pixel (2503) by using a smoothing filter, a cubic filter, or a Gaussian filter according to an intra prediction mode through six reference pixels of the first reference pixel line. And, the video signal processing device can generate a second prediction pixel (2504) by using a smoothing filter, a cubic filter, or a Gaussian filter according to the intra prediction mode through the six reference pixels of the second reference pixel line. The video signal processing device can generate a third prediction pixel (2505) by performing a weighted average through an arbitrarily determined weight on the generated first prediction pixel (2503) and the second prediction pixel (2504). At this time, the six reference pixels of the second reference pixel line may be reference pixels at a position moved by one pixel to the right compared to each pixel of the first reference pixel line, considering the intra prediction mode of the current block, the position of the pixel to be generated, the position of the reference pixel line, etc. The video signal processing device can generate a prediction sample (2502) within the current block based on the third prediction pixel (2505). Alternatively, the video signal processing device may generate the prediction sample (2502) within the current block based on the third prediction pixel (2505) and the distance between the third prediction pixel (2505) and the prediction sample (2502) within the current block. The weight used by the video signal processing device to generate the third prediction pixel (2505) may be an integer greater than or equal to 0. For example, the weight of the first prediction pixel (2503) may be 3, and the weight of the second prediction pixel (2504) may be 1. At this time, the positions of reference pixels used to generate the prediction sample (positions of six reference pixels of the first reference pixel line and six reference pixels of the second reference pixel line in FIG. 25) may vary based on at least one of the following: the intra prediction mode of the current block, the positions of pixels to be generated (for example, the positions of the first prediction pixel (2503), the second prediction pixel (2504), and the third prediction pixel (2505) in FIG. 25), the positions of reference pixel lines (for example, the positions of the first reference pixel line and the second reference pixel line in FIG. 25).
도 26(a)를 참조하면, 비디오 신호 처리 장치는 2개의 참조 픽셀 라인이 수직 방향으로 동일한 위치의 참조 픽셀들을 이용하여 현재 블록 내 예측 샘플(2601)을 생성할 수 있다. 즉, 현재 블록 내 예측 샘플을 생성하기 위해 사용되는 제1 참조 픽셀 라인(Reference line 1)의 6개의 픽셀 각각과 제2 참조 픽셀 라인(Reference line 2)의 6개의 픽셀 각각은 수직 방향의 위치가 동일할 수 있다. 참조 픽셀 라인의 위치에 상관없이 각 픽셀들의 위치는 결정될 수 있다. 도 26(b)를 참조하면 비디오 신호 처리 장치는 제1 참조 라인의 6개의 픽셀을 이용하여 제1 예측 픽셀(2602)를 생성할 수 있다. 비디오 신호 처리 장치는 제2 참조 라인의 6개의 픽셀(2607)을 이용하여 제2 예측 픽셀(2603)을 획득할 수 있다. 이때, 제1 참조 라인과 수직 방향으로 동일한 제2 참조 라인의 샘플이 사용되는 경우, 제2 참조 라인의 오른쪽 픽셀(2606)은 사용되지 않을 수 있다. 따라서, 비디오 신호 처리 장치는 제2 참조 라인의 오른쪽 픽셀(2606)을 픽셀(2605)을 복사(패딩)하여 제2 참조 라인의 오른쪽 픽셀(2606)을 구성한 다음, 제2 참조 라인의 오른쪽 픽셀(2606)을 제2 예측 픽셀(2603)을 생성하는데 사용할 수 있다. 비디오 신호 처리 장치는 제1 예측 픽셀(2602)와 제2 예측 픽셀(2603)을 이용하여 제3 예측 픽셀(2604)를 획득할 수 있다. 비디오 신호 처리 장치는 제3 예측 픽셀(2604)를 이용하여 현재 블록 내 예측 샘플(2601)을 생성 할 수 있다. 도 26은 현재 블록 내 예측 샘플을 생성하기 위해 사용되는 제1, 제2 참조 픽셀 라인의 픽셀들만 도 25와 상이할 뿐, 현재 블록 내 예측 샘플을 생성하는 방법은 도 25와 동일할 수 있다.Referring to FIG. 26(a), the video signal processing device can generate a prediction sample (2601) within the current block by using reference pixels at the same positions in the vertical direction of two reference pixel lines. That is, each of the six pixels of the first reference pixel line (Reference line 1) and each of the six pixels of the second reference pixel line (Reference line 2) used to generate the prediction sample within the current block can have the same position in the vertical direction. The positions of the respective pixels can be determined regardless of the positions of the reference pixel lines. Referring to FIG. 26(b), the video signal processing device can generate a first prediction pixel (2602) by using six pixels of the first reference line. The video signal processing device can obtain a second prediction pixel (2603) by using six pixels (2607) of the second reference line. At this time, if a sample of the second reference line, which is the same as the sample of the first reference line in the vertical direction, is used, the right pixel (2606) of the second reference line may not be used. Accordingly, the video signal processing device can configure the right pixel (2606) of the second reference line by copying (padding) the pixel (2605) to the right pixel (2606) of the second reference line, and then use the right pixel (2606) of the second reference line to generate the second prediction pixel (2603). The video signal processing device can obtain the third prediction pixel (2604) by using the first prediction pixel (2602) and the second prediction pixel (2603). The video signal processing device can generate the prediction sample (2601) within the current block by using the third prediction pixel (2604). Only the pixels of the first and second reference pixel lines used to generate the prediction sample within the current block are different from those of FIG. 25 in FIG. 26, and the method for generating the prediction sample within the current block may be the same as that of FIG. 25.
비디오 신호 처리 장치는 MPM 리스트를 구성할 때, 현재 블록에 인접한 복원된 주변 블록으로부터 인트라 예측 방향성 모드를 유도하는 DIMD 모드를 MPM 리스트에 포함시킬 수 있다. 이때, DIMD 모드로 유도된 인트라 예측 방향성 모드가 2개인 경우, 비디오 신호 처리 장치는 2개의 인트라 예측 방향성 모드를 MPM 리스트에 모두 포함시킬 수 있다.When configuring an MPM list, the video signal processing device can include a DIMD mode that induces an intra prediction directional mode from a reconstructed neighboring block adjacent to a current block in the MPM list. At this time, if there are two intra prediction directional modes induced by the DIMD mode, the video signal processing device can include both intra prediction directional modes in the MPM list.
비디오 신호 처리 장치가 복수의 참조 픽셀 라인을 사용하여 현재 블록에 대한 예측 샘플을 생성(도 25, 26의 방법)하는 경우, MPM 리스트 내에 포함되는 DIMD 모드는 현재 블록에 인접한 픽셀이 사용되지 않고, 비디오 신호 처리 장치는 참조 픽셀 라인이 지시하는 픽셀 위치에서 DIMD 방법을 수행하여 인트라 예측 방향성 모드를 유도할 수 있다. 그리고 유도된 인트라 예측 방향성 모드가 MPM 리스트에 포함될 수 있다.When a video signal processing device generates a prediction sample for a current block by using a plurality of reference pixel lines (methods of FIGS. 25 and 26), a DIMD mode included in the MPM list is such that pixels adjacent to the current block are not used, and the video signal processing device can derive an intra prediction directional mode by performing the DIMD method at pixel positions indicated by the reference pixel lines. Then, the derived intra prediction directional mode can be included in the MPM list.
또한, 비디오 신호 처리 장치는 참조 픽셀 라인마다 DIMD를 사용하여 인트라 예측 방향성 모드를 유도한 후, 유도된 인트라 예측 방향성 모드를 MPM 리스트에 추가할 수 있다. 참조 픽셀 라인은 현재 블록의 좌상단 위치로부터 1, 3, 5, 7, 12의 픽셀만큼 이격된 위치의 라인일 수 있다. 또는 참조 픽셀 라인은 현재 블록에 상측으로 인접한 위치인 참조 픽셀 라인일 수 있다. 이때, 비디오 신호 처리 장치가 각 참조 픽셀 라인마다 DIMD를 사용하여 유도한 인트라 예측 방향성 모드는 MPM 리스트에 추가될 수 있다. 유도된 인트라 예측 방향성 모드가 중복되면, 중복된 인트라 예측 방향성 모드는 MPM 리스트에서 제외될 수 있다. 본 명세서에서 참조 픽셀 라인은 인덱싱될 수 있다. 예를 들어, 현재 블록과 인접한 참조 픽셀 라인은 참조 픽셀 라인 0으로, 현재 블록과 1 픽셀만큼, 2픽셀만큼, ... n 픽셀만큼 이격된 참조 픽셀 라인은 각각 참조 픽셀 라인 1로, 참조 픽셀 라인 2, ... 참조 픽셀 라인 n으로 인덱싱되고, 지칭될 수 있다.In addition, the video signal processing device can derive an intra prediction directional mode using DIMD for each reference pixel line, and then add the derived intra prediction directional mode to the MPM list. The reference pixel line may be a line located at a position spaced apart by 1, 3, 5, 7, or 12 pixels from the upper left position of the current block. Alternatively, the reference pixel line may be a reference pixel line located at an upper adjacent position to the current block. At this time, the intra prediction directional mode derived by the video signal processing device using DIMD for each reference pixel line may be added to the MPM list. If the derived intra prediction directional modes are duplicated, the duplicated intra prediction directional modes may be excluded from the MPM list. In the present specification, a reference pixel line may be indexed. For example, a reference pixel line adjacent to the current block may be indexed and referred to as reference pixel line 0, and reference pixel lines spaced 1 pixel, 2 pixels, ..., n pixels away from the current block may be indexed and referred to as reference pixel line 1, reference pixel line 2, ..., reference pixel line n, respectively.
DIMD를 수행하는 참조 픽셀 라인은 현재 블록에 사용된 참조 픽셀 라인에 따라 달라질 수 있다. 예를 들어, 비디오 신호 처리 장치는 현재 블록에 대한 참조 픽셀 라인이 1, 3 인 경우, 참조 픽셀 라인 0, 1, 2를 사용하여 DIMD를 수행하고, 인트라 예측 방향성 모드를 유도할 수 있다. 또한, 비디오 신호 처리 장치는 현재 블록에 대한 참조 픽셀 라인이 5, 7 인 경우, 참조 픽셀 라인 5, 6, 7을 사용하여 DIMD를 수행하고, 인트라 예측 방향성 모드를 유도할 수 있다. 또한, 비디오 신호 처리 장치는 현재 블록에 대한 참조 픽셀 라인이 12 인 경우, 참조 픽셀 라인 11, 12, 13을 사용하여 DIMD가 수행하고 인트라 예측 방향성 모드를 유도할 수 있다.The reference pixel lines for performing DIMD may vary depending on the reference pixel lines used for the current block. For example, if the reference pixel lines for the current block are 1 and 3, the video signal processing device may perform DIMD using reference pixel lines 0, 1, and 2 and derive an intra prediction directional mode. In addition, if the reference pixel lines for the current block are 5 and 7, the video signal processing device may perform DIMD using reference pixel lines 5, 6, and 7 and derive an intra prediction directional mode. In addition, if the reference pixel lines for the current block are 12, the video signal processing device may perform DIMD using reference pixel lines 11, 12, and 13 and derive an intra prediction directional mode.
현재 블록이 DIMD 모드로 부호화되는 경우, 인코더는 인트라 예측 방향성 모드를 유도하기 위해 사용되어야 할 참조 픽셀 라인과 관련된 정보를 포함하여 비트스트림을 생성하고, 시그널링할 수 있다. 그리고 인코더는 DIMD가 수행된 참조 픽셀 라인과 DIMD로부터 유도된 인트라 예측 방향성 모드를 사용하여 인트라 예측 블록을 생성할 수 있다. 디코더는 현재 블록이 DIMD 모드로 복호화되는 경우, 참조 픽셀 라인과 관련된 정보를 파싱한 후, 참조 픽셀 라인과 관련된 정보에 대응되는 참조 픽셀 라인을 사용하여 인트라 예측 방향성 모드를 유도할 수 있다. 그리고 디코더는 참조 픽셀 라인 정보와 DIMD로부터 유도된 인트라 예측 방향성 모드를 사용하여 인트라 예측 블록을 생성할 수 있다.If the current block is encoded in the DIMD mode, the encoder can generate and signal a bitstream including information related to reference pixel lines to be used for deriving an intra prediction directional mode. Then, the encoder can generate an intra prediction block using the reference pixel lines on which DIMD is performed and the intra prediction directional mode derived from the DIMD. If the current block is decoded in the DIMD mode, the decoder can parse the information related to the reference pixel lines, and then derive an intra prediction directional mode using the reference pixel lines corresponding to the information related to the reference pixel lines. Then, the decoder can generate an intra prediction block using the reference pixel line information and the intra prediction directional mode derived from the DIMD.
도 27을 참조하면 비디오 신호 처리 장치는 복수 개의 참조 픽셀 라인을 이용하여 가상의 새로운 참조 픽셀 라인을 생성하고, 새로운 참조 픽셀 라인에 기초하여 현재 블록 내 예측 샘플을 생성할 수 있다.Referring to FIG. 27, a video signal processing device can generate a virtual new reference pixel line using a plurality of reference pixel lines, and generate a prediction sample within a current block based on the new reference pixel line.
도 27의 같은 가로 열의 원은 동일한 참조 픽셀 라인 상에 위치한 픽셀을 의미할 수 있다. 도 27(a)는 현재 블록의 인트라 예측 모드, 생성할 픽셀 위치, 참조 픽셀 라인의 위치 등 적어도 하나 이상을 사용하여 예측 샘플을 생성할 때 사용되는 참조 픽셀의 위치가 참조 픽셀 라인마다 달라지는 것을 보여준다. 비디오 신호 처리 장치는 인트라 예측 모드에 따라 스무딩 필터, 큐빅 필터 또는 가우시안 필터를 사용하여 각 참조 픽셀 라인마다 '1' 위치의 샘플들(2701-a 내지 2701-d)을 각각 생성하고, 여러 개의 '1' 위치의 샘플들을 사용하여 가상의 새로운 참조 픽셀 라인(2702)을 생성할 수 있다. 한편, 복잡도를 낮추기 위해서, '1' 위치의 샘플들이 생성되지 않고, '1' 위치에 가장 가까운 곳에 인접한 정수 단위 참조 픽셀들을 사용하여 가상의 새로운 참조 픽셀 라인(2702)이 생성될 수 있다. 비디오 신호 처리 장치는 가상의 새로운 참조 픽셀 라인을 사용하여 현재 블록 내 예측 샘플을 생성할 수 있다. 도 27(b)를 참조하면 비디오 신호 처리 장치는 가상의 새로운 참조 픽셀 라인(2705)을 생성하기 위해서 수직 방향으로 동일한 위치의 4개 참조 픽셀들을 사용할 수 있다. 즉, 가상의 새로운 참조 픽셀 라인(2705)을 생성하기 위한 픽셀들은 제1 참조 픽셀 라인의 6개의 참조 픽셀들 각각과 제2 참조 픽셀 라인의 6개의 참조 픽셀들은 각각 수직 방향으로 동일한 위치의 픽셀들일 수 있다. 비디오 신호 처리 장치는 가상의 새로운 참조 픽셀 라인 및 위치, 현재 블록의 인트라 예측 모드, 생성할 픽셀 위치 등 적어도 하나 이상을 사용하여 제1 예측 픽셀(2703)를 획득할 수 있다. 비디오 신호 처리 장치는 제1 예측 픽셀(2703)를 이용하여 현재 블록의 예측 샘플(2704)을 생성할 수 있다. 가상의 새로운 참조 픽셀 라인을 생성하기 위해 사용되는 참조 픽셀 라인의 수는 2이상의 복수 개일 수 있다. 예를 들어, 2 내지 5개의 참조 픽셀 라인이 사용될 수 있다.Circles in the same horizontal row in Fig. 27 may mean pixels located on the same reference pixel line. Fig. 27(a) shows that the positions of reference pixels used when generating prediction samples using at least one of the intra prediction mode of the current block, the positions of pixels to be generated, and the positions of reference pixel lines vary for each reference pixel line. The video signal processing device may generate samples (2701-a to 2701-d) at the '1' position for each reference pixel line using a smoothing filter, a cubic filter, or a Gaussian filter according to the intra prediction mode, and may generate a virtual new reference pixel line (2702) using multiple samples at the '1' positions. Meanwhile, in order to reduce complexity, samples at the '1' position may not be generated, and a virtual new reference pixel line (2702) may be generated using integer unit reference pixels closest to the '1' position. The video signal processing device may generate prediction samples in the current block using the virtual new reference pixel line. Referring to FIG. 27(b), the video signal processing device can use four reference pixels at the same position in the vertical direction to generate a virtual new reference pixel line (2705). That is, the pixels for generating the virtual new reference pixel line (2705) may be pixels at the same position in the vertical direction, respectively, for each of the six reference pixels of the first reference pixel line and each of the six reference pixels of the second reference pixel line. The video signal processing device can obtain the first prediction pixel (2703) using at least one of the virtual new reference pixel line and position, the intra prediction mode of the current block, and the pixel position to be generated. The video signal processing device can generate the prediction sample (2704) of the current block using the first prediction pixel (2703). The number of reference pixel lines used to generate the virtual new reference pixel line may be a plurality of 2 or more. For example, 2 to 5 reference pixel lines may be used.
도 28을 참조하면 비디오 신호 처리 장치는 가상의 새로운 참조 픽셀 라인을 생성하기 위해 생성할 새로운 참조 픽셀(2801)의 위치와 가까운 4개의 참조 픽셀이 사용될 수 있다. 이때 새로운 참조 픽셀의 위치는 참조 픽셀 라인과 수직 방향으로 동일할 수 있다. 또한 새로운 참조 픽셀의 위치는 현재 블록의 인트라 예측 모드의 방향에 인접한 위치일 수 있다.Referring to FIG. 28, a video signal processing device may use four reference pixels close to the position of a new reference pixel (2801) to be generated to generate a virtual new reference pixel line. At this time, the position of the new reference pixel may be the same as the reference pixel line in the vertical direction. In addition, the position of the new reference pixel may be a position adjacent to the direction of the intra prediction mode of the current block.
도 29는 본 발명의 일 실시예에 따른 복수의 참조 픽셀 라인을 사용하여 샘플을 예측하는 방법을 나타낸다.FIG. 29 illustrates a method for predicting a sample using multiple reference pixel lines according to one embodiment of the present invention.
도 29를 참조하면 비디오 신호 처리 장치는 복수의 참조 픽셀 라인을 입력 받아 인트라 예측을 수행하여 현재 블록 내 예측 블록을 생성할 수 있다. 어떠한 참조 픽셀 라인이 사용되는지에 따라 다른 예측 블록이 생성될 수 있고, 비디오 신호 처리 장치는 각 예측 블록에 대해 입력된 가중치에 따라 가중치 평균하여 최종 예측 블록을 생성할 수 있다. 이때 가중치는 기 설정된 값일 수 있다. 예를 들어, 메인 참조 픽셀 라인으로 예측된 샘플의 가중치는 3이고, 서브 참조 픽셀 라인으로 예측된 샘플의 가중치는 1일 수 있다. 이때, 가중치는 현재 블록의 크기, 현재 블록의 가로 또는 세로의 크기, 현재 블록의 인트라 예측 모드, 양자화 파라미터 정보, 메인 참조 픽셀 라인과 서브 참조 픽셀 라인 간의 거리(또는 차이) 등 적어도 하나 이상에 기초하여 결정될 수 있다. 또한, 참조 픽셀 라인은 현재 블록의 크기, 현재 블록의 가로 또는 세로의 크기, 현재 블록의 인트라 예측 모드, 양자화 파라미터 정보, MRL 정보 등 적어도 하나 이상에 기초하여 결정될 수 있다. 예를 들어, 메인 참조 픽셀 라인은 현재 블록에 인접한 참조 픽셀 라인일 수 있고, 서브 참조 픽셀 라인은 MRL이 지시하는 참조 픽셀 라인일 수 있다. 또 다른 예로, 메인 참조 픽셀 라인은 MRL이 지시하는 참조 픽셀 라인일 수 있고, 서브 참조 픽셀 라인은 MRL이 지시하는 참조 픽셀 라인보다 임의의 정해진 위치만큼 떨어진 참조 픽셀 라인일 수 있으며, 임의의 정해진 위치는 -N ~ +N까지의 정수일 수 있으며, N은 0보다 큰 정수일 수 있다.Referring to FIG. 29, a video signal processing device may receive a plurality of reference pixel lines and perform intra prediction to generate a prediction block within a current block. Depending on which reference pixel line is used, a different prediction block may be generated, and the video signal processing device may generate a final prediction block by performing a weighted average according to the weights input for each prediction block. At this time, the weights may be preset values. For example, the weight of a sample predicted by a main reference pixel line may be 3, and the weight of a sample predicted by a sub-reference pixel line may be 1. At this time, the weights may be determined based on at least one or more of the size of the current block, the horizontal or vertical size of the current block, the intra prediction mode of the current block, quantization parameter information, and the distance (or difference) between the main reference pixel line and the sub-reference pixel line. In addition, the reference pixel line may be determined based on at least one or more of the size of the current block, the horizontal or vertical size of the current block, the intra prediction mode of the current block, quantization parameter information, and MRL information. For example, the main reference pixel line may be a reference pixel line adjacent to the current block, and the sub-reference pixel line may be a reference pixel line indicated by the MRL. As another example, the main reference pixel line may be a reference pixel line indicated by the MRL, and the sub-reference pixel line may be a reference pixel line that is located at an arbitrary fixed position away from the reference pixel line indicated by the MRL, and the arbitrary fixed position may be an integer from -N to +N, and N may be an integer greater than 0.
상술한 현재 블록 내 예측 샘플을 생성하는 방법에서 사용되는 인트라 예측 모드는 참조 픽셀 라인마다 동일할 수 있다. 또는, 반대로 상술한 현재 블록 내 예측 샘플을 생성하는 방법에서 사용되는 인트라 예측 모드는 참조 픽셀 라인마다 상이할 수 있다. 즉, 메인 참조 픽셀 라인에서는 시그널링된 인트라 예측 모드가 사용될 수 있고, 서브 참조 픽셀 라인에서는 메인 참조 픽셀 라인에서 사용된 인트라 예측 모드(의 인덱스)에서 임의의 값만큼 더해지거나 빼진 (인덱스에 대응되는)예측 모드가 사용될 수 있다. 이때, 임의의 값은 1이상의 정수 일 수 있다. 또한, 비디오 신호 처리 장치는 메인 참조 픽셀 라인에서 사용된 인트라 예측 모드의 값에 따라 임의의 값을 증가시킬 지 혹은 감소시킬 지를 결정할 수 있다. 예를 들어, 비디오 신호 처리 장치는 인트라 예측 모드의 각도가 음수일 경우에는 임의의 값만큼 증가시키고, 양수일 경우에는 임의의 값만큼 감소시킬 수 있다.In the method for generating prediction samples within the current block described above, the intra prediction mode used may be the same for each reference pixel line. Or, conversely, in the method for generating prediction samples within the current block described above, the intra prediction mode used may be different for each reference pixel line. That is, a signaled intra prediction mode may be used for the main reference pixel line, and in the sub-reference pixel line, a prediction mode (corresponding to the index) added or subtracted by an arbitrary value from (the index of) the intra prediction mode used in the main reference pixel line may be used. At this time, the arbitrary value may be an integer greater than or equal to 1. In addition, the video signal processing device may determine whether to increase or decrease the arbitrary value according to the value of the intra prediction mode used in the main reference pixel line. For example, the video signal processing device may increase the intra prediction mode by an arbitrary value when the angle is negative, and may decrease the intra prediction mode by an arbitrary value when the angle is positive.
도 30은 본 발명의 일 실시예에 따른 템플릿에 기초하여 참조 픽셀 라인을 결정하는 방법을 나타낸다.FIG. 30 illustrates a method for determining a reference pixel line based on a template according to one embodiment of the present invention.
이하 템플릿에 기초하여 현재 블록을 위한(현재 블록의 복원을 위한) 최적의 참조 픽셀 라인을 결정하는 방법에 대해 설명한다.Below we describe a method for determining the optimal reference pixel line for the current block (for restoration of the current block) based on the template.
도 30을 참조하면 비디오 신호 처리 장치는 현재 블록에 인접한 참조 픽셀 라인을 사용하여 기준 템플릿을 구성할 수 있다. 비디오 신호 처리 장치는 참조 픽셀 라인 1, 2, 3...(Reference line 1, 2, 3 ...) 등을 사용하여 기준 템플릿의 위치에 대한 예측 샘플을 생성할 수 있다. 비디오 신호 처리 장치는 생성된 예측 샘플과 기준 템플릿의 샘플들 간 코스트를 계산할 수 있다. 이때 코스트는 SAD(Sum of Absolute Differences) 또는 MRSAD(Mean-Removed SAD) 등의 방법을 통해 계산될 수 있다. 최소 코스트에 대응되는 참조 픽셀이 최적의 참조 픽셀일 수 있다. 또한, 인코더는 계산된 코스트를 오름차순으로 재정렬하고, 참조 픽셀 라인에 대한 리스트를 구성한 후, 최적의 참조 픽셀 라인에 대한 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 상술한 방법을 통해 참조 픽셀 라인에 대한 리스트를 구성하고, 비트스트림에 포함된 최적의 참조 픽셀 라인에 대한 인덱스를 파싱하여 인덱스가 지시하는 참조 픽셀 라인을 이용하여 예측 샘플을 생성할 수 있다. 본 명세서에서 설명하는 바와 같이, 비디오 신호 처리 장치가 템플릿에 기초하여 참조 픽셀 라인을 결정하는 방법은 TMRL(Template-based Multiple Reference Line) 방법 또는 TMRL 인트라 예측 방법으로 기술될 수 있다.Referring to FIG. 30, a video signal processing device can configure a reference template using reference pixel lines adjacent to a current block. The video signal processing device can generate a prediction sample for the location of the reference template using reference pixel lines 1, 2, 3, etc. The video signal processing device can calculate a cost between the generated prediction sample and samples of the reference template. At this time, the cost can be calculated using a method such as SAD (Sum of Absolute Differences) or MRSAD (Mean-Removed SAD). A reference pixel corresponding to the minimum cost can be an optimal reference pixel. In addition, the encoder can rearrange the calculated cost in ascending order, configure a list for reference pixel lines, and then generate and signal a bitstream including information on an index for the optimal reference pixel line. The decoder can configure a list for reference pixel lines using the above-described method, parse the index for the optimal reference pixel line included in the bitstream, and generate a prediction sample using the reference pixel line indicated by the index. As described in this specification, a method for a video signal processing device to determine a reference pixel line based on a template can be described as a Template-based Multiple Reference Line (TMRL) method or a TMRL intra prediction method.
최적의 참조 픽셀 라인을 결정함에 있어 복잡도를 낮추기 위해 모든 인트라 예측 모드에 대해 최적의 참조 픽셀 라인이 사용되는 것이 아니라, MPM 리스트에 포함된 인트라 예측 모드에 대해서만 최적의 참조 픽셀 라인이 사용될 수 있다. 즉, 인코더는 MPM 리스트에 포함된 인트라 예측 모드들과 복수의 참조 픽셀 라인 간의 조합으로 참조 픽셀 라인에 대한 리스트를 구성하고, 참조 픽셀 라인에 대한 리스트 내 각각의 후보를 사용하여 생성된 예측 샘플과 기준 템플릿 간의 코스트를 계산할 수 있다. 그리고, 인코더는 코스트를 기준으로 리스트를 오름차순으로 재정렬한 후, 코스트가 낮은 몇 개의 조합만을 사용하여 리스트를 재구성할 수 있다. 인코더는 재구성된 리스트 내의 조합 정보(임의의 인트라 예측 모드와 임의의 참조 픽셀 라인들) 중에서 최적의 조합 정보에 대한 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 상술한 방법을 통해 동일한 참조 픽셀 라인에 대한 리스트를 구성한 후 비트스트림에 포함된 최적의 조합 정보에 대한 인덱스를 파싱하여 인덱스가 지시하는 최적의 조합 정보를 사용하여 예측 샘플을 생성할 수 있다. In order to reduce the complexity in determining the optimal reference pixel line, the optimal reference pixel line may not be used for all intra prediction modes, but may be used only for the intra prediction modes included in the MPM list. That is, the encoder may construct a list for the reference pixel lines by combining the intra prediction modes included in the MPM list and a plurality of reference pixel lines, and may calculate the cost between the prediction sample generated using each candidate in the list for the reference pixel line and the reference template. Then, the encoder may rearrange the list in ascending order based on the cost, and may reconstruct the list using only a few combinations with low costs. The encoder may generate and signal a bitstream including information about an index for the optimal combination information among the combination information (any intra prediction mode and any reference pixel lines) in the reconstructed list. The decoder may construct a list for the same reference pixel line using the above-described method, and then parse the index for the optimal combination information included in the bitstream to generate the prediction sample using the optimal combination information indicated by the index.
여러 개의 참조 픽셀 라인을 사용하여 예측 샘플이 생성될 때 각 참조 픽셀 라인을 통해 생성된 예측 샘플마다 서로 다른 가중치가 적용될 수 있다. 이때, 최적의 가중치를 유도하기 위해서 템플릿 기반 방법이 사용될 수 있다. 즉, 인코더는 MPM 리스트에 포함된 인트라 예측 모드들, 복수의 참조 픽셀 라인, 각 참조 픽셀 라인으로 예측된 샘플들에 대한 가중치 (예를 들어, 3:1, 2:2 중에서 하나) 간의 조합으로 참조 픽셀 라인에 대한 리스트를 구성하고, 참조 픽셀 라인에 대한 리스트 내 각각의 후보를 사용하여 생성된 예측 샘플과 기준 템플릿 간의 코스트를 계산할 수 있다 그리고, 비디오 신호 처리 장치는 MPM 리스트를 코스트를 기준으로 오름차순으로 재정렬한 후, 코스트가 낮은 몇 개의 조합만을 사용하여 MPM 리스트를 재구성할 수 있다. 인코더는 재구성된 리스트 내의 조합 정보(임의의 인트라 예측 모드, 임의의 참조 픽셀 라인들, 각 참조 픽셀 라인으로 예측된 샘플들에 대한 가중치 (예를 들어, 3:1, 2:2 중에서 하나) 중에서 최적의 조합 정보에 대한 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 상술한 방법을 통해 동일한 참조 픽셀 라인에 대한 리스트를 구성한 후 비트스트림에 포함된 최적의 조합 정보에 대한 인덱스를 파싱하여 인덱스가 지시하는 최적의 조합 정보를 사용하여 예측 샘플을 생성할 수 있다. When prediction samples are generated using multiple reference pixel lines, different weights may be applied to each prediction sample generated through each reference pixel line. At this time, a template-based method may be used to derive an optimal weight. That is, the encoder may construct a list for reference pixel lines by combining intra prediction modes included in the MPM list, multiple reference pixel lines, and weights (for example, one of 3:1 and 2:2) for samples predicted by each reference pixel line, and may calculate a cost between a prediction sample generated using each candidate in the list for the reference pixel lines and a reference template. Then, the video signal processing device may rearrange the MPM list in ascending order based on the cost, and then reconstruct the MPM list by using only a few combinations with low costs. The encoder can generate and signal a bitstream including information about an index for an optimal combination information among combination information within the reconstructed list (any intra prediction mode, any reference pixel lines, and a weight (for example, one of 3:1 or 2:2) for samples predicted by each reference pixel line). After constructing a list for the same reference pixel lines through the above-described method, the decoder can parse the index for the optimal combination information included in the bitstream and generate a prediction sample using the optimal combination information indicated by the index.
도 30을 통해 설명한 템플릿에 기초하여 참조 픽셀 라인을 결정하는 방법에 있어서, 현재 블록에 인접한 참조 픽셀 라인은 템플릿을 구성하는데 사용될 수 있다. 따라서, 현재 블록에 인접하지 않은 참조 픽셀 라인들을 사용하여 템플릿에 기초하여 결정되는 참조 픽셀 라인이 결정될 수 있다. 이하에서 현재 블록에 인접한 참조 픽셀 라인도 템플릿에 기초하여 참조 픽셀 라인을 결정하기 위해 사용될 수 있는 방법에 대해 설명한다.In the method for determining a reference pixel line based on a template described through Fig. 30, a reference pixel line adjacent to a current block can be used to construct a template. Accordingly, a reference pixel line determined based on a template can be determined using reference pixel lines that are not adjacent to the current block. Hereinafter, a method in which a reference pixel line adjacent to a current block can also be used to determine a reference pixel line based on a template will be described.
도 31은 본 발명의 일 실시예에 따른 현재 블록에 인접한 참조 픽셀 라인을 테스트하기 위한 템플릿을 설정하는 방법을 나타낸다.FIG. 31 illustrates a method for setting a template for testing a reference pixel line adjacent to a current block according to one embodiment of the present invention.
도 31에 도시된 바와 같이 기준 템플릿이 구성되면, 현재 블록에 인접한 참조 픽셀 라인도 상기 템플릿에 기초하여 참조 픽셀 라인을 결정하기 위해 사용될 수 있다. 도 31(a)를 참조하면 현재 블록의 좌측에 인접한 참조 픽셀들만을 포함하는 기준 템플릿이 구성될 수 있다. 인코더는 현재 블록의 상측의 참조 픽셀 라인 0(Reference line 0) 및/또는 현재 블록의 좌측의 참조 픽셀 라인 1(Reference line 1) 중 적어도 하나 이상을 사용하여, 기준 템플렛에 대한 예측 샘플을 생성하고, 기준 템플릿과 예측 샘플 간의 코스트를 계산할 수 있다. 인코더는 참조 픽셀 라인 1, 2, 3 ...(Reference line 1, 2, 3 ...)를 사용하여 기준 템플릿에 대한 예측 샘플을 생성하고, 기준 템플릿과 예측 샘플 간의 코스트를 계산할 수 있다. 도 31(b)는 기준 템플릿이 현재 블록의 상측에 인접한 참조 픽셀들만을 포함하는 경우를 나타낸다. 마찬가지로, 인코더는 현재 블록의 좌측의 참조 픽셀 라인 0(Reference line 0) 및/또는 현재 블록의 상측의 참조 픽셀 라인 1(Reference line 1) 중 적어도 하나 이상을 사용하여, 기준 템플렛에 대한 예측 샘플을 생성하고, 기준 템플릿과 예측 샘플 간의 코스트를 계산할 수 있다. 인코더는 참조 픽셀 라인 1, 2, 3 ...(Reference line 1, 2, 3 ...)를 사용하여 기준 템플릿에 대한 예측 샘플을 생성하고, 기준 템플릿과 예측 샘플 간의 코스트를 계산할 수 있다.As illustrated in FIG. 31, when a reference template is configured, a reference pixel line adjacent to a current block can also be used to determine a reference pixel line based on the template. Referring to FIG. 31(a), a reference template including only reference pixels adjacent to the left side of the current block can be configured. The encoder can generate a prediction sample for the reference template using at least one of the reference pixel line 0 on the upper side of the current block and/or the reference pixel line 1 on the left side of the current block, and calculate a cost between the reference template and the prediction sample. The encoder can generate a prediction sample for the reference template using reference pixel lines 1, 2, 3 ..., and calculate a cost between the reference template and the prediction sample. FIG. 31(b) illustrates a case where the reference template includes only reference pixels adjacent to the upper side of the current block. Similarly, the encoder can generate a prediction sample for the reference template using at least one of the reference pixel line 0 on the left side of the current block and/or the reference pixel line 1 on the upper side of the current block, and compute a cost between the reference template and the prediction sample. The encoder can generate a prediction sample for the reference template using reference pixel lines 1, 2, 3, ..., and compute a cost between the reference template and the prediction sample.
인코더는 계산된 코스트를 오름차순으로 재정렬하여 참조 픽셀 라인에 대한 리스트를 구성한 후, 최적의 참조 픽셀 라인의 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는, 상술한 방법을 통해 참조 픽셀 라인에 대한 리스트를 구성한 후, 비트스트림에 포함된 최적의 참조 픽셀 라인의 인덱스에 대한 정보를 파싱하여 결정되는 최적의 참조 픽셀 라인을 이용하여 예측 샘플을 생성할 수 있다. The encoder can construct a list of reference pixel lines by rearranging the computed costs in ascending order, and then generate and signal a bitstream including information about the index of the optimal reference pixel line. The decoder can construct a list of reference pixel lines using the above-described method, and then generate a prediction sample using the optimal reference pixel line determined by parsing the information about the index of the optimal reference pixel line included in the bitstream.
도 32는 본 발명의 일 실시예에 따른 템플릿에 기초한 복수의 참조 픽셀 라인을 사용하여 최적의 참조 픽셀 라인을 결정하는 방법을 나타낸 구조도이다.FIG. 32 is a structural diagram illustrating a method for determining an optimal reference pixel line using a plurality of reference pixel lines based on a template according to one embodiment of the present invention.
도 32를 참조하면 인코더는 복수의 참조 픽셀 라인을 입력 받아 인트라 예측을 수행하여 템플릿에 대한 예측 블록들을 생성할 수 있다. 어떠한 참조 픽셀 라인이 사용되었는지에 따라 다른 예측 블록이 생성될 수 있다. 인코더는 예측 블록들 각각에 입력된 다양한 가중치 정보에 따라 가중치 평균을 수행하여 최종적으로 템플릿에 대한 예측 블록을 생성할 수 있다. 어떠한 참조 픽셀 라인들이 사용되었는지, 어떠한 가중치가 사용되었는지에 따라 복수의 예측 블록이 생성될 수 있다. 인코더는 각 예측 블록과 기준 템플릿 간의 코스트를 계산한 후, 각 예측 블록에 대응되는 코스트를 기반으로 오름차순으로 재정렬하고, 미리 정해진 개수의 상위 몇 개의 후보만을 사용하여 별도의 리스트를 구성할 수 있다. 이때, 미리 정해진 개수는 2이상의 정수일 수 있으며, 10일 수 있다. 인코더는 별도의 리스트 내 예측 블록을 생성하는데 사용된 조합 정보를 통해 현재 블록에 대한 예측 블록을 생성할 수 있다. 그리고 인코더는 화질 및 비트량 관점에서 최적의 후보를 리스트에서 선택한 후 최적의 후보의 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 상술한 방법을 통해 동일한 별도의 리스트를 구성하고, 비트스트림에 포함된 최적의 후보의 인덱스에 대한 정보를 파싱하여 결정되는 최적의 후보의 인덱스가 지시하는 최적의 조합 정보를 사용하여 예측 샘플을 생성할 수 있다.Referring to FIG. 32, an encoder may receive multiple reference pixel lines and perform intra prediction to generate prediction blocks for a template. Depending on which reference pixel line is used, a different prediction block may be generated. The encoder may perform a weighted average according to various weight information input to each of the prediction blocks to finally generate a prediction block for the template. Depending on which reference pixel lines are used and which weights are used, multiple prediction blocks may be generated. After calculating a cost between each prediction block and a reference template, the encoder may rearrange the prediction blocks in ascending order based on the cost corresponding to each prediction block, and may configure a separate list using only a predetermined number of top candidates. At this time, the predetermined number may be an integer greater than or equal to 2, and may be 10. The encoder may generate a prediction block for the current block using the combination information used to generate the prediction block in the separate list. And the encoder can select the optimal candidate from the list in terms of image quality and bit rate, and then generate and signal a bitstream including information about the index of the optimal candidate. The decoder can construct the same separate list through the above-described method, and generate a prediction sample using the optimal combination information indicated by the index of the optimal candidate determined by parsing the information about the index of the optimal candidate included in the bitstream.
현재 블록이 인트라 예측 모드로 부호화되는 경우, 부호화되는 인트라 예측 모드는 각도 모드, 평면(Planar) 모드, DC 모드, MIP 모드 중 어느 하나의 모드일 수 있다. 각도 모드에 따른 예측은 65가지의 각도에 따라 수행되는 예측일 수 있고, MIP 모드에 따른 예측은 미리 정의된 매트릭스를 기반으로 수행되는 예측일 수 있다. 각도 모드는 현재 블록 내에 에지와 같은 특성이 존재하는 블록에서 효과적일 수 있다. 하지만, 현재 블록이 완만한 특성을 가질 경우, 각도 모드를 사용하여 예측된 블록에는 블록 간 경계 부분의 불연속적인 에지가 생성되거나 블록 내부에 가시적인 윤곽선이 생성될 수 있다. 이는 부호화 효율을 감소시키는 요인이 될 수 있다. 또한, DC 모드는 낮은 비트율에서 블록 간 경계 부분에서 가시적인 에지를 생성하는 단점이 있을 수 있다. 평면 모드는 각도 모드와 DC 모드로 발생되는 에지 문제를 개선하여 불연속성이 없는 예측 블록을 생성할 수 있다.When the current block is encoded in the intra prediction mode, the encoded intra prediction mode can be any one of the angular mode, the planar mode, the DC mode, and the MIP mode. The prediction according to the angular mode can be a prediction performed according to 65 angles, and the prediction according to the MIP mode can be a prediction performed based on a predefined matrix. The angular mode can be effective in a block having a characteristic such as an edge in the current block. However, when the current block has a gentle characteristic, a block predicted using the angular mode can generate a discontinuous edge at the boundary between blocks or a visible outline inside the block. This can be a factor that reduces the encoding efficiency. In addition, the DC mode can have a disadvantage of generating a visible edge at the boundary between blocks at a low bit rate. The planar mode can improve the edge problem caused by the angular mode and the DC mode, and can generate a prediction block without discontinuity.
도 33은 본 발명의 일 실시예에 따른 평면 모드를 사용하여 예측 샘플을 생성하는 방법을 나타낸다.FIG. 33 illustrates a method for generating prediction samples using planar mode according to one embodiment of the present invention.
도 33을 참조하면 평면 모드에 따르면 비디오 신호 처리 장치는 현재 블록 내 예측 샘플을 생성하기 위해 수직 방향으로 선형 예측된 값을 생성하고, 수평 방향으로 선형 예측된 값을 생성할 수 있다. 비디오 신호 처리 장치는 수직 방향으로 선형 예측된 값과 수평 방향으로 선형 예측된 값을 가중치 평균하여 현재 블록 내 예측 샘플(값)을 생성할 수 있다.Referring to FIG. 33, according to the planar mode, the video signal processing device can generate a linearly predicted value in the vertical direction and a linearly predicted value in the horizontal direction to generate a prediction sample within the current block. The video signal processing device can generate a prediction sample (value) within the current block by weighting the linearly predicted value in the vertical direction and the linearly predicted value in the horizontal direction.
수직 방향으로 선형 예측된 값(predV (x, y)은 수학식 4에 기초하여 생성될 수 있고, 수평 방향으로 선형 예측된 값(predH (x, y)은 수학식 5에 기초하여 생성될 수 있다. 그리고, 새로운 예측 값(pred (x, y)은 수학식 6에 기초하여 생성될 수 있다. 수학식 4 내지 6에서 W는 현재 블록의 가로의 크기(너비)이고, H는 현재 블록의 세로의 크기(높이)일 수 있다. rec(x, y)는 (x, y)좌표에서의 픽셀 값을 의미할 수 있다. 예측 값(predV(x, y), predH(x, y), pred(x, y))는 (x, y)좌표에서의 예측된 픽셀 값을 의미할 수 있다.A linearly predicted value in the vertical direction (predV (x, y)) can be generated based on Equation 4, and a linearly predicted value in the horizontal direction (predH (x, y)) can be generated based on Equation 5. In addition, a new predicted value (pred (x, y)) can be generated based on Equation 6. In Equations 4 to 6, W may be a horizontal size (width) of a current block, and H may be a vertical size (height) of the current block. rec(x, y) may mean a pixel value at the (x, y) coordinate. The predicted value (predV(x, y), predH(x, y), pred(x, y)) may mean a predicted pixel value at the (x, y) coordinate.
비디오 신호 처리 장치는 평면 모드에 따라 현재 블록과 관련된 예측을 수행할 때 수직 방향으로의 선형 예측만을 사용할 수 있다. 또는 비디오 신호 처리 장치는 평면 모드에 따라 현재 블록과 관련된 예측을 수행할 때 수평 방향으로의 선형 예측만을 사용할 수 있다. 따라서, 평면 모드는 3가지 모드로 구분될 수 있다. 즉, 종래의 수직 방향 및 수평 방향으로의 선형 예측을 이용하여 생성되는 예측 블록을 가중치 평균하는 방법에 더하여, 수직 방향으로의 선형 예측만을 사용하는 수직 방향 평면 모드, 수평 방향으로의 선형 예측만을 사용하는 수평 방향 평면 모드로 구분될 수 있다. 인코더는 현재 블록이 3가지 평면 모드 중 어떠한 예측 모드를 사용했는지에 대한 정보를 포함하는 비트스트림을 생성하고, 시그널링할 수 있다. 디코더는 비트스트림에 포함된 어떠한 예측 모드를 사용했는지에 대한 정보를 파싱하여 결정되는 평면 모드에 기초하여 현재 블록에 대한 예측 블록을 생성할 수 있다.A video signal processing device may use only vertical linear prediction when performing prediction related to a current block according to a planar mode. Alternatively, the video signal processing device may use only horizontal linear prediction when performing prediction related to a current block according to a planar mode. Accordingly, the planar mode may be divided into three modes. That is, in addition to a method of weighting and averaging prediction blocks generated using conventional vertical and horizontal linear predictions, it may be divided into a vertical planar mode that uses only vertical linear prediction, and a horizontal planar mode that uses only horizontal linear prediction. An encoder may generate and signal a bitstream including information on which prediction mode among the three planar modes a current block used. A decoder may generate a prediction block for a current block based on a planar mode determined by parsing information included in the bitstream on which prediction mode was used.
어떠한 평면 모드를 사용했는지에 대한 정보를 비트스트림에 포함하여 시그널링하는 명시적인 방법은 비트량이 증가하는 문제가 있을 수 있다. 비트량을 절약하기 위해서, 디코더는 현재 블록의 크기, 현재 블록의 가로 또는 세로의 크기, 현재 블록의 가로 및 세로의 크기 비율, 현재 블록의 화소(픽셀) 개수, 현재 블록이 휘도 신호인지 색차 신호인지, 현재 블록에 인접한 주변 블록의 인트라 예측 방향성 모드 정보들, 현재 블록에 대한 MPM 리스트 정보, DIMD 혹은 TIMD로 부터 유도된 인트라 예측 방향성 모드 정보들 중에서 적어도 하나 이상을 사용하여 어떠한 평면 모드를 사용했는지 암묵적으로 유도할 수 있다.An explicit method of signaling the information about which planar mode was used by including it in the bitstream may have a problem of increasing bit volume. To save bit volume, the decoder can implicitly derive the information about which planar mode was used by using at least one of the following: the size of the current block, the width or height of the current block, the width and height size ratio of the current block, the number of pixels in the current block, whether the current block is a luminance signal or a chrominance signal, intra prediction directional mode information of adjacent blocks to the current block, MPM list information for the current block, and intra prediction directional mode information derived from DIMD or TIMD.
수직 방향 평면 모드, 수평 방향 평면 모드는 현재 블록의 형태가 정사각형일때보다 직사각형인 경우 더욱 효과적일 수 있다. 따라서, 현재 블록의 가로 크기와 세로 크기가 서로 다른 경우에만 수직 방향 평면 모드, 수평 방향 평면 모드가 적용될 수 있다(활성화될 수 있다). 다시 말해, 인코더는 현재 블록의 가로 크기와 세로 크기를 비교한 후, 크기가 서로 다른 경우에만 수직 방향 평면 모드가 적용되는지 수평 방향 평면 모드가 적용되는지 기존의 평면 모드가 적용되는지에 대한 평면 모드 선택 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있다. 디코더는 현재 블록의 가로 크기와 세로 크기를 비교한 후, 크기가 서로 다른 경우에만 평면 모드 선택 정보를 파싱할 수 있다. 한편, 현재 블록의 가로 크기와 세로 크기가 서로 동일한 경우에는 종래의 평면 모드가 적용될 수 있다.The vertical planar mode and the horizontal planar mode can be more effective when the shape of the current block is rectangular rather than square. Therefore, the vertical planar mode and the horizontal planar mode can be applied (activated) only when the horizontal and vertical sizes of the current block are different from each other. In other words, the encoder can generate and signal a bitstream including planar mode selection information on whether the vertical planar mode, the horizontal planar mode, or the conventional planar mode is applied only when the horizontal and vertical sizes of the current block are different after comparing the horizontal and vertical sizes of the current block. The decoder can parse the planar mode selection information only when the horizontal and vertical sizes of the current block are different. On the other hand, the conventional planar mode can be applied when the horizontal and vertical sizes of the current block are the same.
본 명세서에서 설명의 편의상, 현재 블록이 3가지 평면 모드 중 어떠한 예측 모드를 사용했는지에 대한 정보를 평면 모드 선택 정보로 기술할 수 있다.For convenience of explanation in this specification, information about which prediction mode among the three planar modes the current block used may be described as planar mode selection information.
평면 모드 선택 정보는 코딩 유닛마다 시그널링될 수 있다. 하지만, 모든 코딩 유닛에 대응하여 평면 모드 선택 정보가 시그널링되면 비트량이 증가할 수 있으므로, 인코더는 특정 조건을 만족하는 경우에만, 평면 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 특정 조건을 만족하는 경우 평면 모드 선택 정보를 파싱하여 현재 블록에 대한 인트라 예측 방향성 모드를 결정할 수 있고, 결정된 인트라 예측 방향성 모드를 이용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 이때, 특정 조건은 현재 블록의 가로 및 세로 크기, 현재 블록의 가로 및 세로 크기의 비율, 현재 블록의 인트라 예측 방향성 모드가 특정 모드인 경우(예를 들어, 평면 모드, DC 모드, 수직 방향 모드, 수평 방향 모드 인지), 현재 블록의 부호화 모드가 DIMD, TIMD, IntraTMP, IBC, ISP, MIP 부호화 모드인지 여부, 현재 블록에 대한 예측 블록을 생성할 때 사용되는 참조 픽셀 라인의 인덱스 정보와 관련된 조건일 수 있다. 특정 조건들 중에서 적어도 하나 이상이 만족하는지 여부에 따라 평면 선택 정보에 대한 부호화 및 복호화 여부가 결정될 수 있다. 구체적으로 특정 조건은 1) 현재 블록의 인트라 예측 방향성 모드가 종래의 평면 모드인 경우(즉, 인트라 예측 방향성 모드의 인덱스가 0인 경우), 2) 현재 블록의 가로 및 세로 크기가 최대 변환 블록 크기보다 같거나 작고, 현재 블록의 가로 크기와 세로 크기의 곱이 최소 변환 블록 크기와 최소 변환 블록 크기의 곱보다 큰 경우, 3) 현재 블록의 가로 및 세로 크기가 서로 다른 경우일 수 있다. 이때, 최소 변환 블록의 크기는 정수일 수 있으며, 4, 8 등일 수 있고, 최대 변환 블록의 크기는 정수일 수 있으며, 64, 128, 256 등일 수 있다. 상술한 1) 내지 3)의 특정 조건 중 적어도 하나가 만족하는 경우, 인코더는 평면 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있고, 디코더는 평면 모드 선택 정보를 파싱하여, 현재 블록에 대한 인트라 예측 방향성 모드를 결정할 수 있다. The planar mode selection information can be signaled for each coding unit. However, since the amount of bits may increase if the planar mode selection information is signaled for all coding units, the encoder may generate and signal a bitstream including the planar mode selection information only when a specific condition is satisfied. The decoder may determine an intra prediction directional mode for the current block by parsing the planar mode selection information when the specific condition is satisfied, and may generate a prediction block for the current block using the determined intra prediction directional mode. At this time, the specific condition may be a condition related to the horizontal and vertical sizes of the current block, a ratio of the horizontal and vertical sizes of the current block, whether the intra prediction directional mode of the current block is a specific mode (for example, whether the planar mode, DC mode, vertical mode, or horizontal mode is recognized), whether the coding mode of the current block is DIMD, TIMD, IntraTMP, IBC, ISP, or MIP coding mode, and index information of a reference pixel line used when generating the prediction block for the current block. Whether to encode and decode the plane selection information may be determined based on whether at least one of the specific conditions is satisfied. Specifically, the specific conditions may be 1) when the intra prediction directional mode of the current block is the conventional plane mode (i.e., when the index of the intra prediction directional mode is 0), 2) when the horizontal and vertical sizes of the current block are equal to or smaller than the maximum transform block size, and the product of the horizontal and vertical sizes of the current block is greater than the product of the minimum transform block size and the minimum transform block size, and 3) when the horizontal and vertical sizes of the current block are different from each other. In this case, the size of the minimum transform block may be an integer, such as 4 or 8, and the size of the maximum transform block may be an integer, such as 64, 128, 256, etc. When at least one of the specific conditions 1) to 3) described above is satisfied, the encoder may generate and signal a bitstream including the plane mode selection information, and the decoder may parse the plane mode selection information to determine the intra prediction directional mode for the current block.
현재 블록이 색차 성분 블록인 경우, 수직 방향 평면 모드 및 수평 방향 평면 모드는 적용되지 않고, 종래 평면 모드만 적용될 수 있다. 즉, 비디오 신호 처리 장치는 현재 블록이 색차 성분 블록인 경우, 종래 평면 모드를 사용하여 예측 블록을 생성할 수 있다. 따라서, 현재 블록이 색차 성분 블록인 경우, 비디오 신호 처리 장치는 평면 모드 선택 정보를 시그널링하거나 파싱하지 않을 수 있다. 한편, 현재 블록이 색차 성분 블록이더라도 휘도 성분 블록과 동일하게 수직 방향 평면 모드 또는 수평 방향 평면 모드가 적용될 수 있다. 예를 들어, 현재 블록에 수직 방향 평면 모드가 적용되는 경우, 디코더는 현재 블록의 휘도 성분 블록 및 색차 성분 블록을 수직 방향 평면 모드를 사용하여 현재 블록의 휘도 성분 블록 및 색차 성분 블록에 대한 예측 블록을 생성할 수 있다.If the current block is a chrominance component block, the vertical direction planar mode and the horizontal direction planar mode are not applied, and only the conventional planar mode can be applied. That is, if the current block is a chrominance component block, the video signal processing device can generate a prediction block using the conventional planar mode. Therefore, if the current block is a chrominance component block, the video signal processing device may not signal or parse the planar mode selection information. Meanwhile, even if the current block is a chrominance component block, the vertical direction planar mode or the horizontal direction planar mode can be applied in the same way as the luminance component block. For example, if the vertical direction planar mode is applied to the current block, the decoder can generate a prediction block for the luminance component block and the chrominance component block of the current block using the vertical direction planar mode.
현재 블록의 가로의 크기가 세로의 크기보다 크다면, 현재 블록에 좌측으로 인접한 픽셀의 개수보다 상측으로 인접한 픽셀의 개수가 많으므로, 디코더는 수직 방향 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로의 크기보다 크다면, 현재 블록에 상측으로 인접한 픽셀의 개수보다 좌측으로 인접한 픽셀의 개수가 많으므로, 디코더는 수평 방향 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 가로 및 세로의 크기가 같다면, 디코더는 종래의 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 가로 및 세로의 크기에 따라 평면 모드가 묵시적으로 결정되므로, 인코더는 평면 모드 선택 정보를 포함하는 비트스트림을 생성하지 않아도 된다. 디코더는 현재 블록의 가로 및 세로의 크기에 따라 결정되는 평면 모드에 따라 현재 블록의 예측 블록을 생성할 수 있다.If the horizontal size of the current block is greater than the vertical size, the number of pixels adjacent to the upper side of the current block is greater than the number of pixels adjacent to the left side of the current block, so the decoder can generate a prediction block for the current block using the vertical planar mode. If the vertical size of the current block is greater than the horizontal size, the number of pixels adjacent to the left side of the current block is greater than the number of pixels adjacent to the upper side of the current block, so the decoder can generate a prediction block for the current block using the horizontal planar mode. If the horizontal and vertical sizes of the current block are the same, the decoder can generate a prediction block for the current block using the conventional planar mode. Since the planar mode is implicitly determined according to the horizontal and vertical sizes of the current block, the encoder does not need to generate a bitstream including the planar mode selection information. The decoder can generate a prediction block for the current block according to the planar mode determined according to the horizontal and vertical sizes of the current block.
수직 방향 평면 모드 및 수평 방향 평면 모드는 ISP 모드에서는 적용되지 않을 수 있다. 인코더는 현재 블록이 ISP 모드로 부호화되고, 현재 블록이 평면 모드로 부호화된 경우, 평면 모드 선택 정보를 시그널링하지 않을 수 있다(즉, 비트스트림에 평면 모드 선택 정보는 포함되지 않을 수 있다). 디코더는 현재 블록이 ISP 모드로 부호화되고, 현재 블록이 평면 모드로 부호화된 경우, 평면 모드 선택 정보를 파싱하지 않을 수 있다. 반대로, 수직 방향 평면 모드 및 수평 방향 평면 모드는 ISP 모드에서 적용될 수 있다. 인코더는 현재 블록이 ISP 모드로 부호화되고, 현재 블록이 평면 모드로 부호화된 경우, 평면 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 현재 블록이 ISP 모드로 부호화되고, 현재 블록이 평면 모드로 부호화된 경우, 평면 모드 선택 정보를 파싱하여 결정되는 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.The vertical planar mode and the horizontal planar mode may not be applied in the ISP mode. The encoder may not signal planar mode selection information (i.e., the bitstream may not include the planar mode selection information) if the current block is encoded in the ISP mode and the current block is encoded in the planar mode. The decoder may not parse the planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode. Conversely, the vertical planar mode and the horizontal planar mode may be applied in the ISP mode. The encoder may generate and signal a bitstream including planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode. The decoder may generate a prediction block for the current block using the planar mode determined by parsing the planar mode selection information if the current block is encoded in the ISP mode and the current block is encoded in the planar mode.
비디오 신호 처리 장치는 종래의 인트라 예측 방향성 모드들 중에서 수평 방향 모드(도 6의 18번 각도 모드)를 수평 방향 평면 모드로 대체할 수 있다. 또한, 비디오 신호 처리 장치는 종래의 인트라 예측 방향성 모드들 중 수직 방향 모드(도 6의 50번 각도 모드)를 수직 방향 평면 모드로 대체할 수 있다. 다시 말하면 비디오 신호 처리 장치는 종래의 인트라 예측 방향성 모드 중에서 수평 방향 모드(도 6의 18번 각도 모드), 수직 방향 모드(도 6의 50번 각도 모드) 대신 수평 방향 평면 모드, 수직 방향 평면 모드를 사용할 수 있다. 이때, 비디오 신호 처리 장치는 현재 블록의 가로의 크기와 세로의 크기가 상이한 경우에만, 종래의 인트라 예측 방향성 모드 중에서 수평 방향 모드(도 6의 18번 각도 모드), 수직 방향 모드(도 6의 50번 각도 모드)를 수평 방향 평면 모드, 수직 방향 평면 모드로 대체하여 사용할 수 있다.A video signal processing device can replace the horizontal mode (the 18th angle mode in FIG. 6) among the conventional intra prediction directional modes with the horizontal plane mode. In addition, the video signal processing device can replace the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes with the vertical plane mode. In other words, the video signal processing device can use the horizontal plane mode and the vertical plane mode instead of the horizontal mode (the 18th angle mode in FIG. 6) and the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes. At this time, the video signal processing device can replace the horizontal mode (the 18th angle mode in FIG. 6) and the vertical mode (the 50th angle mode in FIG. 6) among the conventional intra prediction directional modes with the horizontal plane mode and the vertical plane mode only when the horizontal size and the vertical size of the current block are different.
수직 방향 평면 모드 및 수평 방향 평면 모드는 크기가 작은 블록에 효과적일 수 있다. 따라서, 비디오 신호 처리 장치는 현재 블록의 크기가 임의의 크기보다 작은 경우에만, 수직 방향 평면 모드 및 수평 방향 평면 모드를 적용할 수 있다. 이때, 임의의 크기는 가로 또는 세로의 크기가 16 또는 32일 수 있다. 즉, 비디오 신호 처리 장치는 현재 블록의 가로 또는 세로의 크기가 32보다 작거나 같은 경우 현재 블록에 수직 방향 평면 모드 및 수평 방향 평면 모드를 적용할 수 있다. 또는 비디오 신호 처리 장치는 현재 블록의 가로 또는 세로의 크기 중 어느 하나라도 32보다 큰 경우, 현재 블록에 수직 방향 평면 모드 및 수평 방향 평면 모드를 적용하지 않을 수 있다. 예를 들어, 인코더는 현재 블록의 가로 또는 세로의 크기 중 어느 하나라도 32보다 큰 경우, 비트스트림에 평면 모드 선택 정보를 포함하지 않을 수 있다. 디코더는 현재 블록의 부호화 모드가 평면 모드이고 현재 블록의 가로 또는 세로의 크기 중 어느 하나라도 32보다 큰 경우, 평면 모드 선택 정보를 파싱하지 않고, 종래의 평면 모드를 사용하여 현재 블록의 예측을 수행할 수 있다.The vertical planar mode and the horizontal planar mode can be effective for small blocks. Therefore, the video signal processing device can apply the vertical planar mode and the horizontal planar mode only when the size of the current block is smaller than an arbitrary size. At this time, the arbitrary size can be 16 or 32 in width or height. That is, the video signal processing device can apply the vertical planar mode and the horizontal planar mode to the current block when the width or height of the current block is smaller than or equal to 32. Alternatively, the video signal processing device may not apply the vertical planar mode and the horizontal planar mode to the current block when either the width or height of the current block is larger than 32. For example, the encoder may not include planar mode selection information in the bitstream when either the width or height of the current block is larger than 32. The decoder may perform prediction of the current block using the conventional planar mode without parsing the planar mode selection information when the encoding mode of the current block is the planar mode and either the width or height of the current block is larger than 32.
DIMD 및 TIMD 모드는 다양한 인트라 예측 모드로부터 예측된 블록들을 가중치 평균하여 예측 블록을 생성하는 모드이다. 이때, 평면 모드를 사용하여 예측된 블록은 DIMD 및 TIMD 모드를 위해 사용될 수 있다. 비디오 신호 처리 장치가 DIMD 및 TIMD 모드에서 사용되는 평면 모드를 사용하여 예측된 블록을 생성할 때, 수직 방향 평면 모드, 수평 방향 평면 모드 및 종래의 평면 모드 중 어느 하나를 사용할 수 있다. 평면 모드 선택 정보는 비트스트림에 포함되어 시그널링될 수 있다. 디코더는 평면 모드 선택 정보를 파싱하여, 3가지 평면 모드 중 사용할 모드를 결정할 수 있다. 예를 들어, 평면 모드 선택 정보가 수직 방향 평면 모드를 나타내는 경우, DIMD 및 TIMD 모드에 사용되는 예측 블록은 수직 방향 평면 모드를 사용하여 예측된 블록일 수 있다.The DIMD and TIMD modes are modes for generating a predicted block by weighting averages of blocks predicted from various intra prediction modes. At this time, a block predicted using the planar mode can be used for the DIMD and TIMD modes. When a video signal processing device generates a predicted block using the planar mode used in the DIMD and TIMD modes, any one of a vertical planar mode, a horizontal planar mode, and a conventional planar mode can be used. Planar mode selection information can be signaled by being included in a bitstream. A decoder can parse the planar mode selection information to determine which of the three planar modes to use. For example, when the planar mode selection information indicates a vertical planar mode, a prediction block used for the DIMD and TIMD modes can be a block predicted using the vertical planar mode.
MIP 모드는 복잡한 영역에 효과적인 모드일 수 있다. MIP 모드의 부호화 성능을 향상시키기 위해서, 다중 예측 기반 MIP 모드가 사용될 수 있다. 즉, 다중 예측 기반 MIP 모드는 MIP 방법으로 생성된 예측 블록과 인트라 예측 방향성 모드를 기반으로 생성된 예측 블록을 가중치 평균하여 현재 블록에 대한 최종 예측 블록을 생성하는 방법이다. 인코더는 MIP 모드에 대한 부호화 정보와 인트라 예측 방향성 모드에 대한 부호화 정보를 모두 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 MIP 모드에 대한 부호화 정보와 인트라 예측 방향성 모드에 대한 부호화 정보를 모두 파싱하여, MIP 모드가 적용된 예측 블록과 인트라 예측 방향성 모드가 적용된 예측 블록을 생성한 후, 2개의 예측 블록을 가중치 평균하여 현재 블록에 대한 최종 예측 블록을 생성할 수 있다.The MIP mode can be an effective mode for complex areas. In order to improve the encoding performance of the MIP mode, a multi-prediction based MIP mode can be used. That is, the multi-prediction based MIP mode is a method of generating a final prediction block for a current block by weighting and averaging a prediction block generated by the MIP method and a prediction block generated based on an intra-prediction directional mode. An encoder can generate and signal a bitstream including both encoding information for the MIP mode and encoding information for the intra-prediction directional mode. A decoder can parse both encoding information for the MIP mode and encoding information for the intra-prediction directional mode to generate a prediction block to which the MIP mode is applied and a prediction block to which the intra-prediction directional mode is applied, and then generate a final prediction block for the current block by weighting and averaging the two prediction blocks.
MIP 모드는 블록 단위로 적응적으로 수행될 수 있다. 인코더는 다중 예측 기반 MIP 모드가 사용되는지 여부에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 다중 예측 기반 MIP 모드가 사용되는지 여부에 대한 정보를 파싱하여 현재 블록에 대한 예측 블록을 생성할 때 다중 예측 기반 MIP 모드가 사용되는지 단일 예측 기반 MIP 모드가 사용되는지를 결정할 수 있다. 단일 예측 기반 MIP 모드는 MIP 모드만을 사용하여 예측 블록을 생성하는 방법이다. The MIP mode can be adaptively performed on a block-by-block basis. The encoder can generate and signal a bitstream including information on whether the multi-prediction-based MIP mode is used. The decoder can parse the information on whether the multi-prediction-based MIP mode is used to determine whether the multi-prediction-based MIP mode or the single-prediction-based MIP mode is used when generating a prediction block for the current block. The single-prediction-based MIP mode is a method of generating a prediction block using only the MIP mode.
복잡도를 감소시키고 시그널링되는 부호화 정보를 감소시키기 위해서, 인코더는 현재 블록의 인트라 예측 모드가 MIP인 경우, 다중 예측 기반 MIP 모드의 사용 여부에 대한 정보를 추가적으로 비트스트림에 포함할 수 있고, 시그널링할 수 있다. 인코더는 현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 인트라 예측 방향성 모드에 대한 정보를 추가적으로 비트스트림에 포함시킬 수 있고, 시그널링할 수 있다. 디코더는 현재 블록의 인트라 예측 모드가 MIP인 경우, 추가적으로 다중 예측 기반 MIP 모드의 사용 여부에 대한 정보를 파싱하고, 다중 예측 기반 MIP 모드가 사용되는 경우, 인트라 예측 방향성 모드에 대한 정보를 추가적으로 파싱할 수 있다.In order to reduce complexity and reduce signaled encoding information, the encoder may additionally include and signal in the bitstream information about whether a multi-prediction based MIP mode is used, if the intra prediction mode of the current block is MIP. The encoder may additionally include and signal in the bitstream information about an intra-prediction directional mode, if the multi-prediction based MIP mode is used, if the current block is. The decoder may additionally parse information about whether a multi-prediction based MIP mode is used, if the intra-prediction mode of the current block is MIP, and additionally parse information about an intra-prediction directional mode, if the multi-prediction based MIP mode is used.
인트라 예측 방향성 모드가 추가적으로 시그널링되는 경우, 비트량이 증가하여 압축 효율이 감소될 수 있다. 현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 임의의 정해진 인트라 예측 방향성 모드만이 사용될 수 있다. 이때, 임의의 정해진 인트라 예측 방향성 모드는 MPM 리스트 중에 하나일 수 있으며, 인코더는 MPM 리스트 중에서 다중 예측 기반 MIP 모드에서 사용될 인트라 예측 방향성 모드에 대한 인덱스 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 인덱스 정보를 파싱하여 MPM 리스트 중에서 다중 예측 기반 MIP 모드에서 사용될 인트라 예측 방향성 모드를 결정할 수 있다.If an intra prediction directional mode is additionally signaled, the bit amount may increase and the compression efficiency may decrease. If a multi-prediction-based MIP mode is used for the current block, only an arbitrary determined intra prediction directional mode may be used. At this time, the arbitrary determined intra prediction directional mode may be one of the MPM lists, and the encoder may signal the bitstream by including index information about the intra prediction directional mode to be used in the multi-prediction-based MIP mode among the MPM lists. If a multi-prediction-based MIP mode is used for the current block, the decoder may parse the index information to determine an intra prediction directional mode to be used in the multi-prediction-based MIP mode among the MPM lists.
현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 인트라 예측 방향성 모드 기반의 예측 블록을 생성하기 위해 수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드가 사용될 수 있다. 즉, 인코더는 평면 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링 할 수 있다. 디코더는 현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 평면 모드 선택 정보를 파싱하여 다중 예측 기반 MIP 모드에서 사용될 인트라 예측 방향성 모드를 결정할 수 있다.When the current block uses the multi-prediction based MIP mode, the vertical planar mode, the horizontal planar mode, and the conventional planar mode can be used to generate a prediction block based on the intra prediction directional mode. That is, the encoder can generate and signal a bitstream including the planar mode selection information. When the current block uses the multi-prediction based MIP mode, the decoder can parse the planar mode selection information to determine the intra prediction directional mode to be used in the multi-prediction based MIP mode.
현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 비디오 신호 처리 장치는 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드를 사용하여 3가지 평면 모드 중 어떠한 평면 모드를 사용할 것인지 결정할 수 있다. 예를 들어, 현재 블록에 다중 예측 기반 MIP 모드가 사용되는 경우, 비디오 신호 처리 장치는 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 작다면, 현재 블록은 인트라 예측 방향성 모드 기반의 예측 블록을 생성하기 위해 수평 방향 평면 모드가 적용될 수 있다. 또는, 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 같거나 크다면, 현재 블록은 인트라 예측 방향성 모드 기반의 예측 블록을 생성하기 위해 수직 방향 평면 모드가 적용될 수 있다.When the multi-prediction based MIP mode is used for the current block, the video signal processing device can determine which of the three planar modes to use by using the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block. For example, when the multi-prediction based MIP mode is used for the current block, the video signal processing device can apply the horizontal planar mode to the current block to generate a prediction block based on the intra prediction directional mode if the DIMD (or TIMD) mode of the current block is less than 34. Alternatively, when the DIMD (or TIMD) mode of the current block is equal to or greater than 34, the vertical planar mode can be applied to the current block to generate a prediction block based on the intra prediction directional mode.
비디오 신호 처리 장치는 현재 블록에 평면 모드가 사용되는 경우, 수직 방향 평면 모드와 수평 방향 평면 모드를 사용하여 각각의 모드에 대한 예측 블록을 생성하고, 각 예측 블록에 대해 가중치를 적용하여 최종 예측 블록을 생성할 수 있다. 이때, 각 예측 블록에 대한 가중치는 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드에 따라 동일하거나 상이할 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 크거나 같다면, 수직 방향 평면 모드를 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 예를 들어, 수직 방향 평면 모드를 사용하여 예측되는 블록에 대한 가중치는 3일 수 있고, 수평 방향 평면 모드를 사용하여 예측되는 블록에 대한 가중치는 1일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 작다면, 수평 방향 평면 모드를 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 예를 들어, 수평 방향 평면 모드를 사용하여 예측되는 블록에 대한 가중치는 3일 수 있고, 수직 방향 평면 모드를 사용하여 예측되는 블록에 대한 가중치는 1일 수 있다. 임의의 값은 정수로, 34(도 6의 34번 각도 모드)일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보에는 첫번째 인트라 예측 방향성 모드, 두번째 인트라 예측 방향성 모드, 가중치 예측을 수행할지 여부에 대한 정보가 포함될 수 있다. 현재 블록의 주변 픽셀의 DIMD 정보 중에서 가중치 예측이 수행되지 않은 경우, 비디오 신호 처리 장치는 동일한 가중치를 적용하여 예측 블록을 생성할 수 있다.The video signal processing device may generate prediction blocks for each mode using the vertical planar mode and the horizontal planar mode when the planar mode is used for the current block, and may apply weights to each prediction block to generate a final prediction block. At this time, the weights for each prediction block may be the same or different depending on the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to a certain value, the largest weight may be applied to the block predicted using the vertical planar mode. For example, the weight for the block predicted using the vertical planar mode may be 3, and the weight for the block predicted using the horizontal planar mode may be 1. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is less than a certain value, the largest weight may be applied to the block predicted using the horizontal planar mode. For example, a weight for a block predicted using a horizontal plane mode may be 3, and a weight for a block predicted using a vertical plane mode may be 1. Any value is an integer, and may be 34 (angle mode 34 in FIG. 6). DIMD information derived from surrounding pixels of a current block may include information about a first intra prediction directional mode, a second intra prediction directional mode, and whether to perform weighted prediction. If weighted prediction is not performed among the DIMD information of surrounding pixels of the current block, the video signal processing device may generate a prediction block by applying the same weight.
CIIP 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 현재 블록의 예측 블록은 인트라 예측 모드가 사용된 예측 블록(인트라 예측 블록)과 인터 예측 모드가 사용된 예측 블록(인터 예측 블록)을 가중치 평균하여 생성될 수 있다. 이때, CIIP 모드에서 인트라 예측 블록을 생성하는데 사용되는 인트라 예측 방향성 모드가 평면 모드인 경우, 인코더는 평면 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 CIIP 모드가 사용되고, 평면 모드가 사용되는 경우, 평면 모드 선택 정보를 파싱하여, 인트라 예측 블록을 생성하기 위해 사용되는 인트라 예측 모드를 결정할 수 있다.When the CIIP mode is used to generate the prediction block of the current block, the prediction block of the current block can be generated by weighting and averaging the prediction block (intra prediction block) using the intra prediction mode and the prediction block (inter prediction block) using the inter prediction mode. At this time, when the intra prediction directional mode used to generate the intra prediction block in the CIIP mode is a planar mode, the encoder can generate and signal a bitstream including planar mode selection information. When the CIIP mode is used and the planar mode is used, the decoder can parse the planar mode selection information to determine the intra prediction mode used to generate the intra prediction block.
현재 블록이 인트라 예측 모드를 사용하여 예측되는 경우, 현재 블록과 주변 블록 간의 경계 부분에 픽셀 값의 연속성이 끊길 수 있다. 이러한 비연속성을 해소하기 위해서 생성된 예측 블록에 PDPC(Position dependent intra prediction combination) 필터링이 적용될 수 있다. 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 평면 모드 기반의 PDPC 필터링이 수행되지 않고, 수평 각도 모드(예를 들어, 도 6의 18번 각도 모드) 기반의 PDPC 필터링이 수행될 수 있다. 또는, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 평면 모드 기반의 PDPC 필터링이 수행되지 않고, 수직 각도 모드(예를 들어, 도 6의 50번 각도 모드) 기반의 PDPC 필터링이 수행될 수 있다. 또한, 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 평면 모드 기반의 PDPC 필터링이 수행되지 않고, 수직 각도 모드(예를 들어, 도 6의 50번 각도 모드)기반의 PDPC 필터링이 수행될 수 있다. 또한, 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 평면 모드 기반의 PDPC 필터링이 수행되지 않고, 수평 각도 모드(예를 들어, 도 6의 18번 각도 모드) 기반의 PDPC 필터링이 수행될 수 있다. 본 명세서에 있어서 현재 블록이 예측된다는 의미는 현재 블록의 예측 블록이 생성된다는 의미와 동일할 수 있다.When the current block is predicted using the intra prediction mode, the continuity of pixel values at the boundary between the current block and the surrounding blocks may be discontinued. To resolve this discontinuity, PDPC (Position dependent intra prediction combination) filtering may be applied to the generated prediction block. When the vertical planar mode is used to generate the prediction block of the current block, PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the horizontal angle mode (for example, the 18-degree angle mode in FIG. 6) may be performed. Alternatively, when the vertical planar mode is used to generate the prediction block of the current block, PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the vertical angle mode (for example, the 50-degree angle mode in FIG. 6) may be performed. In addition, when the horizontal planar mode is used to generate the prediction block of the current block, PDPC filtering based on the planar mode may not be performed, but PDPC filtering based on the vertical angle mode (for example, the 50-degree angle mode in FIG. 6) may be performed. In addition, when the horizontal plane mode is used to generate the prediction block of the current block, PDPC filtering based on the plane mode may not be performed, but PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6) may be performed. In this specification, the meaning that the current block is predicted may be the same as the meaning that the prediction block of the current block is generated.
도 33과 수학식 4를 참조하면, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 고정된 위치인 rec(-1, H)의 화소 값과 x 축 좌표에 따라 유동적으로 변화되는 rec(x, -1)의 화소 값에 기초하여 현재 블록의 예측 블록이 생성될 수 있다. 마찬가지로, 도 33과 수학식 5를 참조하면, 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 고정된 위치인 rec(W, -1)의 화소 값과 y축 좌표에 따라 유동적으로 변화되는 rec(-1, y)의 화소 값에 기초하여 현재 블록의 예측 블록이 생성될 수 있다. 즉, 주변 블록 간의 경계 부분에 픽셀 값의 연속성이 유지되도록 예측 블록이 생성될 수 있으므로, 수직 방향 평면 모드 또는 수평 방향 평면 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, PDPC가 수행되지 않을 수 있다.Referring to FIG. 33 and mathematical expression 4, when the vertical plane mode is used to generate the prediction block of the current block, the prediction block of the current block can be generated based on the pixel value of rec(-1, H) which is a fixed position and the pixel value of rec(x, -1) which changes dynamically according to the x-axis coordinate. Similarly, referring to FIG. 33 and mathematical expression 5, when the horizontal plane mode is used to generate the prediction block of the current block, the prediction block of the current block can be generated based on the pixel value of rec(W, -1) which is a fixed position and the pixel value of rec(-1, y) which changes dynamically according to the y-axis coordinate. That is, since the prediction block can be generated so that the continuity of pixel values is maintained at the boundary portion between the neighboring blocks, PDPC may not be performed when the prediction block of the current block is generated using the vertical plane mode or the horizontal plane mode.
상술한 평면 모드에 대한 PDPC 필터링 수행은 현재 블록이 CIIP 모드로 부호화된 경우에도 적용될 수 있다.The PDPC filtering for the above-described planar mode can also be applied when the current block is encoded in CIIP mode.
비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수직 방향 평면 모드 또는 수평 방향 평면 모드로 예측된 경우, 비디오 신호 처리 장치는 주변 블록의 인트라 예측 방향성 모드를 평면 모드로 설정하여 MPM 리스트에 포함시킬 수 있다. 또는 비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수직 방향 평면 모드 또는 수평 방향 평면 모드로 예측된 경우, 주변 블록의 인트라 예측 방향성 모드를 DC 모드로 설정하여 MPM 리스트에 포함시킬 수 있다. 또는 비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수평 방향 평면 모드로 예측된 경우, 주변 블록의 인트라 예측 방향성 모드를 수평 각도 모드(도 6의 18번 각도 모드)로 설정하여 MPM 리스트에 포함시킬 수 있다. 또는, 비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수직 방향 평면 모드로 예측된 경우, 주변 블록의 인트라 예측 방향성 모드를 수직 각도 모드(도 6의 50번 각도 모드)로 설정하여 MPM 리스트에 포함시킬 수 있다. 반대로, 수평 방향 평면 모드는 수직 특성을 가질 수 있으므로, 비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수평 방향 평면 모드로 예측된 경우, 비디오 신호 처리 장치는 주변 블록의 인트라 예측 방향성 모드를 수직 각도 모드(도 6의 50번 각도 모드)로 설정하여 MPM 리스트에 포함시킬 수 있다. 또는 비디오 신호 처리 장치가 현재 블록에 대한 MPM 리스트를 구성할 때, 현재 블록에 인접한 주변 블록이 수직 방향 평면 모드로 예측된 경우, 비디오 신호 처리 장치는 주변 블록의 인트라 예측 방향성 모드를 수평 각도 모드(도 6의 18번 각도 모드)로 설정하여 MPM 리스트에 포함시킬 수 있다.When a video signal processing device configures an MPM list for a current block, if a neighboring block adjacent to the current block is predicted in a vertical planar mode or a horizontal planar mode, the video signal processing device may set the intra prediction directionality mode of the neighboring block to the planar mode and include it in the MPM list. Alternatively, when the video signal processing device configures an MPM list for a current block, if a neighboring block adjacent to the current block is predicted in a vertical planar mode or a horizontal planar mode, the intra prediction directionality mode of the neighboring block may be set to the DC mode and included in the MPM list. Alternatively, when the video signal processing device configures an MPM list for a current block, if a neighboring block adjacent to the current block is predicted in a horizontal planar mode, the intra prediction directionality mode of the neighboring block may be set to the horizontal angle mode (angle mode 18 in FIG. 6) and included in the MPM list. Alternatively, when the video signal processing device configures the MPM list for the current block, if a neighboring block adjacent to the current block is predicted in the vertical plane mode, the intra prediction directionality mode of the neighboring block may be set to the vertical angle mode (angle mode no. 50 in FIG. 6) and included in the MPM list. Conversely, since the horizontal plane mode may have a vertical characteristic, when the video signal processing device configures the MPM list for the current block, if a neighboring block adjacent to the current block is predicted in the horizontal plane mode, the video signal processing device may set the intra prediction directionality mode of the neighboring block to the vertical angle mode (angle mode no. 50 in FIG. 6) and include it in the MPM list. Alternatively, when the video signal processing device configures the MPM list for the current block, if a neighboring block adjacent to the current block is predicted in the vertical plane mode, the video signal processing device may set the intra prediction directionality mode of the neighboring block to the horizontal angle mode (angle mode no. 18 in FIG. 6) and include it in the MPM list.
본 명세서에서 제안하는 수직 방향 평면 모드, 수평 방향 평면 모드는 임의의 특정 모드로 시그널링되지 않고, 인트라 예측 방향성 모드 중 어느 하나의 모드로 포함되어 시그널링될 수 있다. 도 6을 참조하면, 인트라 예측 방향성 모드는 총 67가지이며, 이 중에서 0번(평면 모드)과 1번(DC 모드)은 비방향성 모드이고 2~66까지는 방향성 모드(각도 모드)이다. 새롭게 정의된 수직 방향 평면 모드 및 수평 방향 평면 모드를 포함하여 인트라 예측 방향성 모드는 확장될 수 있다. 예를 들어, 기존 인트라 예측 방향성 모드에서 2번 모드를 수직 방향 평면 모드, 3번 모드를 수평 방향 평면 모드로 설정할 수 있다. 즉, 0번(평면 모드), 1번(DC 모드), 2번(수직 방향 평면 모드), 3번(수평 방향 평면 모드)은 비방향성 모드로, 4~68번은 기존 2~66까지의 방향성 모드와 동일하게 설정될 수 있다.The vertical plane mode and the horizontal plane mode proposed in this specification are not signaled as any specific mode, but can be signaled as included in any one of the intra prediction directional modes. Referring to Fig. 6, there are a total of 67 intra prediction directional modes, among which 0 (plane mode) and 1 (DC mode) are non-directional modes, and 2 to 66 are directional modes (angular modes). The intra prediction directional modes can be extended, including the newly defined vertical plane mode and horizontal plane mode. For example, in the existing intra prediction directional mode, mode 2 can be set as the vertical plane mode, and mode 3 can be set as the horizontal plane mode. That is, modes 0 (plane mode), 1 (DC mode), 2 (vertical plane mode), and 3 (horizontal plane mode) can be set as non-directional modes, and modes 4 to 68 can be set to be the same as the existing directional modes 2 to 66.
1차 변환인 MTS 변환에서 변환은 오차 블록의 수직 방향과 수평 방향에 대해 각각 변환 커널이 적용되어 계산되므로, 분리가능한 변환(separable transform) 방식이라고 할 수 있다. 반면에 상술한 2차 변환인 LFNST 변환에서 변환은 수직 방향과 수평 방향에 대해 각각 변환 커널을 적용되지 않고 변환 커널은 한번만 적용되어 계산되므로, 비분리 변환(non-separable transform) 방식이라고 할 수 있다. 또한, 상술한 2차 변환은 DCT-2 변환이 적용된 블록의 1차 변환된 변환 계수에 대해 추가로 적용되는 것이므로, 2단계 변환 기법이라고 할 수 있다. 상술한 2차 변환은 부호화 효율은 높지만 총 3번의 변환 커널이 적용되므로, 복잡하다는 단점이 있다. 이러한 복잡도를 줄이기 위해서, 2차 변환 방식만으로 변환을 적용하는 방식인 NSPT(Non-separable primary transform) 방식이 적용될 수 있다. NSPT 변환 방식은 비분리 변환 방식으로, 오차 블록의 수직 방향과 수평 방향에 대해 각각 변환 커널을 적용하지 않고 변환 커널을 한번만 적용하여 계산된다. 비디오 신호 처리 장치에서 현재 블록의 오차 블록은 MTS, DCT2 + LFNST, NSPT 변환 방식 중에서 하나의 변환 방식을 사용하여 변환 또는 역변환이 수행될 수 있다.In the MTS transform, which is the first transform, the transform is calculated by applying the transform kernel to the vertical and horizontal directions of the error block respectively, so it can be said to be a separable transform method. On the other hand, in the LFNST transform, which is the second transform described above, the transform is calculated by applying the transform kernel only once without applying the transform kernel to the vertical and horizontal directions respectively, so it can be said to be a non-separable transform method. In addition, since the second transform described above is additionally applied to the first transformed transform coefficients of the block to which the DCT-2 transform is applied, it can be said to be a two-step transform technique. The second transform described above has high encoding efficiency, but it has the disadvantage of being complicated because the transform kernel is applied a total of three times. In order to reduce this complexity, the NSPT (Non-separable primary transform) method, which is a method of applying the transform using only the second transform method, can be applied. The NSPT transform method is a non-separable transform method, and is calculated by applying the transform kernel only once to the vertical and horizontal directions of the error block without applying the transform kernel separately. In a video signal processing device, the error block of the current block can be transformed or inversely transformed using one of the transform methods among MTS, DCT2 + LFNST, and NSPT transform methods.
도 34는 본 발명의 일 실시예에 따른 LFNST 및 NSPT 변환에 대한 변환 세트 테이블을 나타낸다.Figure 34 shows a transformation set table for LFNST and NSPT transformations according to one embodiment of the present invention.
LFNST 및 NSPT 변환에서 사용되는 변환 세트는 35가지가 존재할 수 있으며, 인트라 예측 모드(도 6 참고)에 따라 달라질 수 있다. 즉, 비디오 신호 처리 장치는 도 50의 변환 세트 테이블을 참고하여, 인트라 예측 모드(도 6 참고)에 대응되는 LFNST 및 NSPT 변환의 변환 세트 인덱스를 유도할 수 있다. 또한, LFNST 및 NSPT 변환 세트는 인트라 예측 모드, 현재 블록이 휘도 블록인지 혹은 색차 블록인지 여부 정보, 현재 블록의 가로 및 세로의 크기, 현재 블록의 인트라 예측 방향성 모드가 확장 각도 모드인지 여부에 따라 달라질 수 있다. 하나의 변환 세트마다 임의의 개수만큼의 변환 매트릭스가 존재할 수 있다. 여기서, 임의의 개수는 1이상의 정수일 수 있으며, 3일 수 있다. 인코더에서는 변환 세트 내의 여러 개의 변환 매트릭스 중에서 최적의 변환 매트릭스에 대한 인덱스 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더에서는 최적의 변환 매트릭스에 대한 인덱스를 파싱한 후, 변환 세트에서 인덱스에 대응되는 변환 매트릭스를 사용하여 역변환을 적용할 수 있다.There can be 35 transform sets used in LFNST and NSPT transforms, and they can vary depending on the intra prediction mode (see FIG. 6). That is, the video signal processing device can derive a transform set index of LFNST and NSPT transforms corresponding to the intra prediction mode (see FIG. 6) by referring to the transform set table of FIG. 50. In addition, the LFNST and NSPT transform sets can vary depending on the intra prediction mode, information on whether the current block is a luminance block or a chrominance block, the horizontal and vertical sizes of the current block, and whether the intra prediction directional mode of the current block is an extended angle mode. There can be an arbitrary number of transform matrices for each transform set. Here, the arbitrary number can be an integer greater than or equal to 1, and can be 3. The encoder can signal the index information for the optimal transform matrix among multiple transform matrices in the transform set by including it in the bitstream. In the decoder, after parsing the index for the optimal transformation matrix, the inverse transformation can be applied using the transformation matrix corresponding to the index in the transformation set.
비디오 신호 처리 장치는 변환 블록의 크기에 따라 LFNST4, LFNST8, LFNST16까지 총 3가지 종류의 변환 커널을 적용할 수 있다. 현재 블록(예, 변환 블록)의 가로 및 세로의 크기가 16보다 크거나 같다면, 비디오 신호 처리 장치는 현재 블록에 LFNST16 변환 커널을 적용할 수 있다. 현재 블록의 가로 및 세로의 크기가 8보다 크거나 같고 16보다 작다면, 비디오 신호 처리 장치는 현재 블록에 LFNST8 변환 커널을 적용할 수 있다. 현재 블록의 가로 및 세로의 크기가 8보다 작다면, 비디오 신호 처리 장치는 현재 블록에 LFNST4 변환 커널을 적용할 수 있다.The video signal processing device can apply three types of transform kernels, LFNST4, LFNST8, and LFNST16, depending on the size of the transform block. If the horizontal and vertical sizes of the current block (e.g., the transform block) are greater than or equal to 16, the video signal processing device can apply the LFNST16 transform kernel to the current block. If the horizontal and vertical sizes of the current block are greater than or equal to 8 and less than 16, the video signal processing device can apply the LFNST8 transform kernel to the current block. If the horizontal and vertical sizes of the current block are less than 8, the video signal processing device can apply the LFNST4 transform kernel to the current block.
도 35는 본 발명의 일 실시예에 따른 현재 블록의 저주파 영역을 나타낸다.Figure 35 shows a low frequency region of a current block according to one embodiment of the present invention.
도 35를 참조하면 회색 영역은 LFNST 변환 후 저주파 영역일 수 있고, 회색 영역은 ROI (Region of Interest)로 기술될 수 있다. 미리 지정된 ROI 이외의 부분은 0으로 제로-아웃(zero-out) 처리될 수 있다. LFNST16의 경우, 96개 샘플만 필요하므로, 도 35(a)와 같이 6개의 서브 블록(회색 영역)을 제외한 나머지 흰색 서브 블록들은 제로-아웃 처리될 수 있다. LFNST8의 경우, 64개 샘플만 필요하므로, 도 35(b)와 같이 4개의 서브 블록(회색 영역)을 제외하고 나머지 흰색 서브 블록들은 제로-아웃 처리될 수 있다. 마지막으로, LFNST4의 경우, 제로-아웃 처리될 수 있다. 여기서, 도 35의 서브 블록의 크기는 N x N일 수 있고, 이때, N은 양의 정수로, 4일 수 있다.Referring to Fig. 35, the gray area can be a low-frequency area after LFNST conversion, and the gray area can be described as a Region of Interest (ROI). A portion other than a pre-designated ROI can be zeroed out as 0. In the case of LFNST16, since only 96 samples are required, the remaining white sub-blocks except for 6 sub-blocks (gray area) as in Fig. 35(a) can be zeroed out. In the case of LFNST8, since only 64 samples are required, the remaining white sub-blocks except for 4 sub-blocks (gray area) as in Fig. 35(b) can be zeroed out. Finally, in the case of LFNST4, zeroed out can be processed. Here, the size of the sub-blocks in Fig. 35 can be N x N, where N is a positive integer, such as 4.
NSPT 변환은 기존의 DCT2 + LFNST 변환 방법을 대체하는 변환 방식일 수 있다. 변환 블록의 크기가 16x16보다 같거나 작은 블록에 대하여, 변환 블록의 크기에 따라 NSPT4x4(16x16 kernel), NSPT4x8(32x20 kernel), NSPT8x4(32x20 kernel), NSPT8x8(64x32 kernel), NSPT4x16(64x24 kernel), NSPT16x4(64x24 kernel), NSPT8x16(128x40 kernel), NSPT16x8(128x40 kernel), NSPT4x32(128x20 kernel), NSPT32x4(128x20 kernel), NSPT8x32(256x24 kernel), NSPT32x8(256x24 kernel) 중 어느 하나의 커널이 적용될 수 있다. NSPT는 LFNST와 유사하게 35 개의 변환 커널 세트로 구성되고, 각 세트당 3개의 후보로 구성될 수 있다. 인코더는 인트라 예측 모드에 따라 변환 커널 세트를 유도한 후, 3개의 후보 중에서 최적의 후보에 대한 인덱스에 대한 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 시그널링된 인덱스에 대한 정보를 파싱한 후, 인트라 예측 모드를 사용하여 유도된 변환 커널 세트 중에서 인덱스 정보가 지시하는 변환 커널 후보를 사용하여 현재 변환 계수를 역변환하고, 잔차 블록을 획득할 수 있다.NSPT transform can be a transform method that replaces the existing DCT2 + LFNST transform method. For a transform block whose size is equal to or smaller than 16x16, one of the following kernels can be applied depending on the size of the transform block: NSPT4x4 (16x16 kernel), NSPT4x8 (32x20 kernel), NSPT8x4 (32x20 kernel), NSPT8x8 (64x32 kernel), NSPT4x16 (64x24 kernel), NSPT16x4 (64x24 kernel), NSPT8x16 (128x40 kernel), NSPT16x8 (128x40 kernel), NSPT4x32 (128x20 kernel), NSPT32x4 (128x20 kernel), NSPT8x32 (256x24 kernel), NSPT32x8 (256x24 kernel). NSPT, similar to LFNST, consists of 35 sets of transform kernels, and each set can consist of three candidates. The encoder can derive a set of transform kernels according to the intra prediction mode, and then generate and signal a bitstream including information about an index of an optimal candidate among the three candidates. The decoder can parse the information about the signaled index, and then use the transform kernel candidate indicated by the index information among the set of transform kernels derived using the intra prediction mode to inversely transform the current transform coefficients and obtain a residual block.
NSPT가 적용된 4x4 블록에는 제로-아웃이 수행되지 않을 수 있다. 또한, NSPT의 커널의 크기에 따라 제로-아웃되는 계수의 개수가 달라질 수 있다. 예를 들어, 4x8 블록 또는 8x4 블록에는 32x20 크기의 NSPT가 적용될 수 있다. 따라서, 32개 변환 계수 중 20개 변환 계수만를 제외한 나머지 12개 변환 계수는 제로-아웃될 수 있다.Zero-out may not be performed on a 4x4 block to which NSPT is applied. Also, the number of coefficients to be zeroed out may vary depending on the size of the kernel of NSPT. For example, NSPT of size 32x20 may be applied to a 4x8 block or an 8x4 block. Accordingly, out of 32 transform coefficients, only 20 transform coefficients may be zeroed out, while the remaining 12 transform coefficients may be zeroed out.
도 36은 본 발명의 일 실시예에 따른 다중 변환 세트 및 LFNST/NSPT 세트를 유도하는 방법을 나타낸다.FIG. 36 illustrates a method for deriving a multi-transform set and a LFNST/NSPT set according to one embodiment of the present invention.
도 36(a)를 참조하면 인코더는 잔차 블록(residual block)에 대하여 MTS, DCT2 + LFNST, NSPT 중에서 어느 하나를 적용할지 선택할 수 있으며, 선택된 변환 방법에 기초하여 잔차 블록을 변환하고 변환 계수를 획득할 수 있다. 이때, 인코더는 어떠한 변환 방법을 적용하였는지에 대한 정보를 비트스트림에 포함하여 시그널링할 수 있다. 잔차 블록에 MTS 변환이 적용된 경우, MTS 변환이 적용되어 잔차 블록의 변환 계수가 획득될 수 있고, LFNST와 NSPT 변환은 적용되지 않을 수 있다. 잔차 블록에 DCT2 + LFNST 변환이 적용된 경우, 인코더는 잔차 블록에 대하여 DCT2 변환을 적용하여 1차 변환 계수를 획득할 수 있으며, 1차 변환 계수에 대하여 LFNST 변환을 적용하여 2차 변환 계수를 획득할 수 있다. 이때, MTS와 NSPT 변환은 적용되지 않을 수 있다. 잔차 블록에 NSPT 변환이 적용된 경우, 비디오 인코더는 잔차 블록에 대하여 NSPT 변환을 적용하여 변환 계수를 출력할 수 있고, 이때, 잔차 블록에 대해 MTS와 DCT2 + LFNST 변환은 적용되지 않을 수 있다.Referring to Fig. 36(a), the encoder can select which one of MTS, DCT2 + LFNST, and NSPT to apply to the residual block, and can transform the residual block and obtain transform coefficients based on the selected transform method. At this time, the encoder can signal information on which transform method was applied by including it in the bitstream. If the MTS transform is applied to the residual block, the transform coefficients of the residual block can be obtained by applying the MTS transform, and LFNST and NSPT transforms may not be applied. If the DCT2 + LFNST transform is applied to the residual block, the encoder can apply the DCT2 transform to the residual block to obtain the first transform coefficients, and apply the LFNST transform to the first transform coefficients to obtain the second transform coefficients. At this time, the MTS and NSPT transforms may not be applied. When the NSPT transform is applied to the residual block, the video encoder can output transform coefficients by applying the NSPT transform to the residual block, and at this time, the MTS and DCT2 + LFNST transforms may not be applied to the residual block.
도 36(b)를 참조하면 디코더는 비트스트림으로부터 어떠한 변환 방법이 적용되었는지에 대한 정보를 파싱하고, 파싱된 정보에 기초하여 현재 변환 계수에 대하여 MTS, DCT2 + LFNST, NSPT 중에서 어느 하나의 역변환 방법을 적용되는지 여부를 결정할 수 있다. 그리고, 디코더는 결정된 변환 방법에 기초하여 변환 계수에 대해 역변환을 수행하고, 잔차 블록을 획득할 수 있다. 현재 변환 계수에 MTS 변환이 적용된 경우, 디코더는 변환 계수에 대하여 MTS 역변환을 수행하여 잔차 블록을 획득할 수 있고, 이때, LFNST와 NSPT 역변환은 적용되지 않을 수 있다. 2차 변환 계수에 DCT2 + LFNST 변환이 적용된 경우, 디코더는 2차 변환 계수에 대하여 LFNST 역변환을 수행하여 1차 변환 계수를 출력할 수 있으며, 1차 변환 계수에 대하여 DCT2 역변환을 수행하여 잔차 블록을 획득할 수 있고, 이때, MTS와 NSPT 변환은 적용되지 않을 수 있다. 현재 변환 계수에 NSPT 변환이 적용된 경우, 디코더는 현재 변환 계수에 대하여 NSPT 역변환을 수행하여 잔차 블록을 획득할수 있고, 이때 MTS와 DCT2 + LFNST 변환은 적용되지 않을 수 있다.Referring to FIG. 36(b), the decoder can parse information about which transform method is applied from the bitstream, and determine whether one of the inverse transform methods among MTS, DCT2 + LFNST, and NSPT is applied to the current transform coefficient based on the parsed information. Then, the decoder can perform an inverse transform on the transform coefficient based on the determined transform method, and obtain a residual block. If the MTS transform is applied to the current transform coefficient, the decoder can perform an inverse MTS transform on the transform coefficient to obtain a residual block, and at this time, LFNST and NSPT inverse transforms may not be applied. If the DCT2 + LFNST transform is applied to the second transform coefficient, the decoder can perform an inverse LFNST transform on the second transform coefficient to output a first transform coefficient, and perform an inverse DCT2 transform on the first transform coefficient to obtain a residual block, and at this time, MTS and NSPT transforms may not be applied. If the NSPT transform is applied to the current transform coefficients, the decoder can perform the NSPT inverse transform on the current transform coefficients to obtain a residual block, and at this time, the MTS and DCT2 + LFNST transforms may not be applied.
비디오 신호 처리 장치는 인트라 예측 모드를 이용하여 MTS, LFNST, NSPT 변환(또는 역변환) 각각에 대한 변환 커널을 유도할 수 있다. 또한, 비디오 신호 처리 장치는 MTS, DCT2 + LFNST, NSPT 중에서 어떤 변환(또는 역변환)이 적용되는지 여부를 결정할 수 있대, 이때, 변환을 결정하기 위해 현재 블록의 가로 및 세로 크기, 현재 블록의 성분이 휘도 성분인지 혹은 색차 성분인지, 현재 블록이 싱글 트리인지 듀얼 트리인지 여부, 현재 블록이 인트라 모드인지 인터 모드로 부호화되었는지 정보, 현재 블록의 부호화 모드(예, IBC, Intra TMP, Merge, AMVP, GPM, SGPM, CCLM, CCCM) 정보, 현재 블록의 양자화 파라미터 정보 중에서 적어도 하나 이상이 사용될 수 있다.A video signal processing device can derive a transform kernel for each of MTS, LFNST, and NSPT transforms (or inverse transforms) using an intra prediction mode. In addition, the video signal processing device can determine which transform (or inverse transform) is applied among MTS, DCT2 + LFNST, and NSPT. At this time, in order to determine the transform, at least one or more of the horizontal and vertical sizes of a current block, information about whether a component of the current block is a luminance component or a chrominance component, information about whether the current block is a single tree or a dual tree, information about whether the current block is encoded in intra mode or inter mode, information about an encoding mode of the current block (e.g., IBC, Intra TMP, Merge, AMVP, GPM, SGPM, CCLM, CCCM), and information about quantization parameters of the current block may be used.
도 37은 본 발명의 일 실시예에 따른 수직 방향 평면 모드 또는 수평 방향 평면 모드를 위한 다중 변환 세트 및 LFNST 세트를 유도하는 방법을 나타낸다.FIG. 37 illustrates a method for deriving a multi-transform set and an LFNST set for a vertical planar mode or a horizontal planar mode according to one embodiment of the present invention.
도 38은 본 발명의 일 실시예에 따른 매핑 테이블을 나타낸다.Figure 38 shows a mapping table according to one embodiment of the present invention.
도 39는 본 발명의 일 실시예에 따른 변환 타입 세트 테이블을 나타낸다.Figure 39 illustrates a conversion type set table according to one embodiment of the present invention.
도 40은 본 발명의 일 실시예에 따른 변환 타입 조합 테이블을 나타낸다.Figure 40 shows a conversion type combination table according to one embodiment of the present invention.
도 41은 본 발명의 일 실시예에 따른 IDT 변환 타입에 대한 임계 값 테이블을 나타낸다.Figure 41 shows a threshold value table for an IDT conversion type according to one embodiment of the present invention.
수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 오차(잔차) 신호(블록)의 특성은 수직 각도 모드(도 6의 50번 각도 모드)의 오차 신호의 특성과 유사할 수 있다. 오차 신호에 적용되는 다중 변환 세트(Multiple Transform Set, MTS)는 현재 블록의 인트라 예측 방향성 모드에 기초하여 달라질 수 있다. 즉, 수직 방향 평면 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 인코더는 오차 신호에 대해 평면 모드의 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 1차 변환과정을 수행할 수 있다. 또는 인코더는 다중 변환 세트와 관계없이 미리 정해진 변환 세트를 사용하여 1차 변환을 수행할 수 있다. 또한, 인코더는 다중 변환 세트를 이용하거나 미리 정해진 변환 세트를 사용하여 1차 변환된 변환 계수에 대해 LFNST를 통한 2차 변환을 수행할 수 있다. LFNST 수행 시 사용되는 변환 매트릭스는 인트라 예측 방향성 모드에 따라 달라질 수 있다. 즉, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 인코더는 오차 신호에 대해 평면 모드에 대한 2차 LFNST 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)의 2차 LFNST 변환 매트릭스의 집합을 사용하여 변환과정을 수행할 수 있다. 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 인코더는 평면 모드가 아닌 수평 각도 모드(도 6의 18번 각도 모드)를 사용하여 1차 또는 2차 변환 매트릭스(또는 매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드에 대한 1차 LFNST 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)의 1차 LFNST 변환 매트릭스의 집합을 사용하여 변환 과정을 수행할 수 있다. 또한, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드의 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 2차 변환과정을 수행할 수 있다. 본 명세서에 있어서 인코더는 부호화 처리 과정에서 1차 변환 수행 후 2차 변환을 수행할 수 있고, 이는 각각 디코더의 복호화 처리 과정에서 1차 변환 및 2차 변환에 대응된다. 즉, 인코더가 수행하는 1차 변환은 디코더가 수행하는 2차 변환(인코더가 수행하는 1차 변환의 역변환)에 대응되고, 인코더가 수행하는 2차 변환은 디코더가 수행하는 1차 변환(인코더가 수행하는 2차 변환의 역변환)에 대응된다.When the vertical plane mode is used to generate the prediction block of the current block, the characteristics of the error (residual) signal (block) may be similar to the characteristics of the error signal of the vertical angle mode (the 50-degree angle mode in Fig. 6). The multiple transform set (MTS) applied to the error signal may vary based on the intra prediction directional mode of the current block. That is, when the vertical plane mode is used to generate the prediction block of the current block, the encoder may perform the first transform process based on the multiple transform set by using the set of transform matrices of the vertical angle mode (the 50-degree angle mode in Fig. 6) instead of the set of transform matrices of the plane mode for the error signal. Alternatively, the encoder may perform the first transform using a predetermined transform set regardless of the multiple transform set. In addition, the encoder may perform the second transform through LFNST on the first-transformed transform coefficients by using the multiple transform set or the predetermined transform set. The transformation matrix used when performing LFNST may vary depending on the intra prediction directional mode. That is, if the vertical planar mode is used to generate the prediction block of the current block, the encoder may perform the transformation process using the set of secondary LFNST transformation matrices of the vertical angular mode (the 50-angle mode in Fig. 6) instead of the set of secondary LFNST transformation matrices for the planar mode for the error signal. If the horizontal planar mode is used to generate the prediction block of the current block, the encoder may derive the primary or secondary transformation matrix (or the set of matrices, the set of matrices, the set of kernels) using the horizontal angular mode (the 18-angle mode in Fig. 6) instead of the planar mode. When the vertical planar mode is used to generate the prediction block of the current block, the decoder can perform the transformation process by using the set of first LFNST transformation matrices of the vertical angle mode (the 50-degree mode in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal. In addition, when the vertical planar mode is used to generate the prediction block of the current block, the decoder can perform the second transformation process based on the multiple transformation set by using the set of transformation matrices of the vertical angle mode (the 50-degree mode in FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal. In the present specification, the encoder can perform the second transformation after the first transformation in the encoding process, which correspond to the first transformation and the second transformation in the decoding process of the decoder, respectively. That is, the first transformation performed by the encoder corresponds to the second transformation performed by the decoder (the inverse transformation of the first transformation performed by the encoder), and the second transformation performed by the encoder corresponds to the first transformation performed by the decoder (the inverse transformation of the second transformation performed by the encoder).
도 33, 수학식 4를 참조하면, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 예측 블록은 고정된 위치인 rec(-1, H)의 화소 값과 x 축 좌표에 따라 유동적으로 변화되는 rec(x, -1)의 화소 값에 기초하여 생성될 수 있다. 즉, 수직 방향 평면 모드가 사용되면, x축으로 화소 값의 변화가 발생하므로, 오차 신호의 특성은 수평 각도 모드(도 6의 50번 각도 모드)의 오차 신호의 특성과 유사할 수 있다. 오차 신호에 적용되는 다중 변환 세트는 현재 블록의 인트라 예측 방향성 모드에 기초하여 달라질 수 있다. 즉, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 인코더는 오차 신호에 대해 평면 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 1차 변환과정을 수행할 수 있다. 또는 인코더는 다중 변환 세트와 관계없이 미리 정해진 변환 세트를 사용하여 1차 변환을 수행할 수 있다. 또한, 인코더는 다중 변환 세트를 이용하거나 미리 정해진 변환 세트를 사용하여 1차 변환된 변환 계수에 대해 LFNST를 통한 2차 변환을 수행할 수 있다. LFNST 수행 시 사용되는 변환 매트릭스는 인트라 예측 방향성 모드에 따라 달라질 수 있다. 즉, 수직 방향 평면 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 인코더는 오차 신호에 대해 평면 모드에 대한 2차 LFNST 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(도 6의 18번 각도 모드)의 2차 LFNST 변환 매트릭스의 집합을 사용하여 변환과정을 수행할 수 있다. 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 인코더는 평면 모드가 아닌 수직 각도 모드(예를 들어, 도 6의 50번 각도 모드)를 사용하여 1차 또는 2차 변환 매트릭스(또는 매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드에 대한 1차 LFNST 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(도 6의 18번 각도 모드) 1차 LFNST 변환 매트릭스의 집합을 사용하여 변환 과정을 수행할 수 있다. 또한, 수직 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 2차 변환과정을 수행할 수 있다. 수평 방향 평면 모드가 사용되어 현재 블록의 예측 모드가 생성되는 경우, 인코더는 평면 모드가 아닌 수직 각도 모드(도 6의 50번 각도 모드)를 사용하여 1차 또는 2차 변환 매트릭스(또는 매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드에 대한 1차 LFNST 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)에 대한 1차 LFNST 변환 매트릭스의 집합을 사용하여 변환 과정을 수행할 수 있다. 또한, 수평 방향 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 디코더는 오차 신호에 대해 평면 모드의 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(도 6의 50번 각도 모드)의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 2차 변환과정을 수행할 수 있다.Referring to FIG. 33 and mathematical expression 4, when the vertical direction planar mode is used to generate the prediction block of the current block, the prediction block can be generated based on the pixel value of rec(-1, H), which is a fixed position, and the pixel value of rec(x, -1) that changes dynamically according to the x-axis coordinate. That is, when the vertical direction planar mode is used, since the pixel value changes in the x-axis, the characteristic of the error signal can be similar to the characteristic of the error signal of the horizontal angle mode (angle mode 50 of FIG. 6). The multiple transformation set applied to the error signal can vary based on the intra prediction directionality mode of the current block. That is, when the vertical direction planar mode is used to generate the prediction block of the current block, the encoder can perform the first transformation process based on the multiple transformation set by using the set of transformation matrices of the horizontal angle mode (angle mode 18 of FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal. Alternatively, the encoder can perform the first transform using a predetermined transform set regardless of the multiple transform set. In addition, the encoder can perform the second transform through LFNST on the first transformed transform coefficients using the multiple transform set or the predetermined transform set. The transform matrix used when performing LFNST can vary depending on the intra prediction directional mode. That is, if the prediction block of the current block is generated using the vertical direction planar mode, the encoder can perform the transform process using the set of second LFNST transform matrices of the horizontal angular mode (the 18th angular mode in FIG. 6) instead of the set of second LFNST transform matrices for the planar mode for the error signal. If the horizontal direction planar mode is used to generate the prediction block of the current block, the encoder can derive the first or second transform matrix (or the set of matrices, the set of matrices, the set of kernels) using the vertical angular mode (for example, the 50th angular mode in FIG. 6) instead of the planar mode. When the vertical planar mode is used to generate the prediction block of the current block, the decoder can perform the transformation process by using the set of first LFNST transformation matrices of the horizontal angular mode (angle mode 18 in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal. In addition, when the vertical planar mode is used to generate the prediction block of the current block, the decoder can perform the second transformation process based on the multi-transform set by using the set of transformation matrices of the horizontal angular mode (angle mode 18 in FIG. 6) instead of the set of transformation matrices of the planar mode for the error signal. When the horizontal planar mode is used to generate the prediction mode of the current block, the encoder can derive the first or second transformation matrix (or the set of matrices, the set of matrices, the set of kernels) by using the vertical angular mode (angle mode 50 in FIG. 6) instead of the planar mode. When the horizontal planar mode is used to generate the prediction block of the current block, the decoder can perform the transformation process by using the set of first LFNST transformation matrices for the vertical angular mode (the 50-degree angular mode in FIG. 6) instead of the set of first LFNST transformation matrices for the planar mode for the error signal. In addition, when the horizontal planar mode is used to generate the prediction block of the current block, the decoder can perform the second transformation process based on the multiple transformation set by using the set of transformation matrices for the vertical angular mode (the 50-degree angular mode in FIG. 6) instead of the set of transformation matrices for the planar mode for the error signal.
수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치에서 현재 블록에 사용 가능한 다중 변환 세트를 선택하는 방법에 대해 설명한다.A method for selecting a set of multiple transforms available for a current block in a video signal processing device is described when a prediction block of a current block is generated using a vertical planar mode, a horizontal planar mode, or a conventional planar mode.
1) 먼저, 비디오 신호 처리 장치는 현재 블록의 가로 및 세로 크기를 하나의 변수로 매핑하기 위해, 현재 블록의 크기를 기반으로 nSzIdxW와 nSzIdxH 값을 유도할 수 있다. nSzIdxW은 현재 블록의 너비에 2의 로그(Log) 값을 계산한 후, 소수점 자리를 버리고 2를 차분한 값과 3 중 최소 값일 수 있다. nSzIdxH는 현재 블록의 높이에 2의 로그(Log) 값을 계산한 후, 소수점 자리를 버리고 2를 차분한 값과 3 중 최소 값일 수 있다.1) First, the video signal processing device can derive the nSzIdxW and nSzIdxH values based on the size of the current block to map the horizontal and vertical sizes of the current block into a single variable. nSzIdxW can be the minimum value among 3 and the difference between 2 and the logarithm of 2 calculated by the width of the current block, then discarding the decimal places. nSzIdxH can be the minimum value among 3 and the difference between 2 and the logarithm of 2 calculated by the height of the current block, then discarding the decimal places.
2) 다음으로, 비디오 신호 처리 장치는 현재 블록의 인트라 방향성 모드(predMode)를 유도할 수 있다. TIMD 모드인 경우에는 기존 67개에서 131개로 확장된 인트라 예측 모드가 사용될 수 있어, 기존 67개 모드로 정밀도(precision)를 감소시킨다.2) Next, the video signal processing device can derive the intra directional mode (predMode) of the current block. In the case of the TIMD mode, the intra prediction modes expanded from the existing 67 to 131 can be used, thereby reducing the precision to the existing 67 modes.
3) 다음으로, 비디오 신호 처리 장치는 ucMode, nMdIdx, isTrTransposed 값을 유도할 수 있다. 3) Next, the video signal processing device can derive the ucMode, nMdIdx, and isTrTransposed values.
A. 현재 블록이 MIP 모드로 부호화되었을 경우, ucMode는 '0', nMdIdx은 '35', isTrTransposed는 MIP에서 유도된 값으로 설정될 수 있다.A. If the current block is encoded in MIP mode, ucMode can be set to '0', nMdIdx can be set to '35', and isTrTransposed can be set to a value derived from MIP.
B. 현재 블록이 MIP 모드로 부호화되지 않았다면, ucMode는 현재 블록의 인트라 방향성 모드(predMode)로 설정될 수 있다. predMode는 인트라 방향성 모드의 인덱스 값을 의미할 수 있다. 현재 블록의 가로 세로 크기 비율에 따라 확장 각도 모드를 통해 predMode는 결정될 수 있다. 비디오 신호 처리 장치는 predMode를 2에서 66사이의 값으로 클리핑(clipping)할 수 있다. 수직 방향 평면 모드를 사용하여 현재 블록의 예측 블록이 생성된 경우, 비디오 신호 처리 장치는 predMode를 수평 방향 예측 모드(도 6의 18번 각도 모드)로 재설정할 수 있다. 수평 방향 평면 모드를 사용하여 현재 블록의 예측 블록이 생성된 경우, 비디오 신호 처리 장치는 predMode를 수직 방향 예측 모드(도 6의 50번 각도 모드)로 재설정할 수 있다. predMode가 대각 모드인 34번 각도 모드 보다 큰 경우, isTrTransposed 값은 1로 설정될 수 있고, predMode가 34보다 같거나 작은 경우 isTrTransposed 값은 0으로 설정될 수 있다. predMode가 34보다 큰 경우, 비디오 신호 처리 장치는 67(인트라 방향성 모드 인덱스의 최대 값)에서 1을 더한 값에서 predMode의 값을 차분한 값으로 predMode의 값을 재설정한다. 예를 들어, predMode가 35라면, 비디오 신호 처리 장치는 35번 각도 모드를 33(67+1-35(predMode))번 각도 모드로 재설정할 수 있다. predMode가 66이라면, 비디오 신호 처리 장치는 66번 각도 모드를 2(67+1-66(predMode))번 각도 모드로 재설정할 수 있다 즉, 대각 모드인 34번 각도 모드를 기준으로 대칭이 되도록 함으로써, 도 35의 변환 매핑 테이블의 크기를 절반 정도로 줄이는 효과가 있다.B. If the current block is not encoded in the MIP mode, ucMode can be set to the intra directional mode (predMode) of the current block. predMode can mean an index value of the intra directional mode. predMode can be determined through the extended angle mode according to the aspect ratio of the current block. The video signal processing device can clip predMode to a value between 2 and 66. If the prediction block of the current block is generated using the vertical plane mode, the video signal processing device can reset predMode to the horizontal prediction mode (angle mode 18 in FIG. 6). If the prediction block of the current block is generated using the horizontal plane mode, the video signal processing device can reset predMode to the vertical prediction mode (angle mode 50 in FIG. 6). When predMode is greater than the 34th angular mode which is a diagonal mode, the isTrTransposed value can be set to 1, and when predMode is equal to or less than 34, the isTrTransposed value can be set to 0. When predMode is greater than 34, the video signal processing device resets the value of predMode to a value that is a difference of 67 (the maximum value of the intra directional mode index) plus 1. For example, when predMode is 35, the video signal processing device can reset the 35th angular mode to the 33rd angular mode (67+1-35(predMode)). When predMode is 66, the video signal processing device can reset the 66th angular mode to the 2nd angular mode (67+1-66(predMode)). That is, by making it symmetrical with respect to the 34th angular mode which is a diagonal mode, there is an effect of reducing the size of the transformation mapping table of FIG. 35 by about half.
4) 비디오 신호 처리 장치는 nSzIdxW와 nSzIdxH, isTrTransposed 값을 통해, nSzIdx값을 유도할 수 있다. isTrTransposed 값이 '1'이면, nSzIdxH에 4를 곱한 후, nSzIdxW를 더한 값이 nSzIdx로 설정될 수 있다. isTrTransposed 값이 '0'이면, nSzIdxW에 4를 곱한 후, nSzIdxH를 더한 값이 nSzIdx로 설정될 수 있다.4) The video signal processing device can derive the nSzIdx value through the nSzIdxW, nSzIdxH, and isTrTransposed values. If the isTrTransposed value is '1', the value obtained by multiplying nSzIdxH by 4 and adding nSzIdxW can be set as nSzIdx. If the isTrTransposed value is '0', the value obtained by multiplying nSzIdxW by 4 and adding nSzIdxH can be set as nSzIdx.
5) 비디오 신호 처리 장치는 현재 블록의 크기 정보인 nSzIdx와 현재 블록의 인트라 방향성 모드 정보인 nMdIdx를 이용하여 도 38의 미리 정의된 테이블에 따라 사용 가능한 변환 타입 세트의 인덱스인 nTrSet을 유도할 수 있다. 도 38은 현재 블록의 화면 내 방향성 모드(0 내지 34 및 MIP)와 현재 블록의 크기 인덱스(0 내지 15)에 따른 변환 타입 세트의 인덱스를 정의한다. 도 38을 참조하면 nTrSet은 80가지가 될 수 있으며, 현재 블록의 크기가 4x8이고, 현재 블록의 화면 내 방향성 모드가 13이라면, nTrSet은 '7'이 될 수 있다.5) The video signal processing device can derive nTrSet, which is an index of an available transformation type set, according to the predefined table of FIG. 38 by using nSzIdx, which is the size information of the current block, and nMdIdx, which is the intra-directional mode information of the current block. FIG. 38 defines an index of a transformation type set according to the intra-directional mode (0 to 34 and MIP) of the current block and the size index (0 to 15) of the current block. Referring to FIG. 38, nTrSet can be 80, and if the size of the current block is 4x8 and the intra-directional mode of the current block is 13, nTrSet can be '7'.
6) 비디오 신호 처리 장치는 비트스트림에 포함된 mts_idx를 파싱하여 nTrSet에 대응되는 변환 타입 세트를 도 39의 테이블로부터 유도할 수 있다. 수직 및 수평 방향의 변환 타입은 predMode 가 대각 모드인 34번 각도 모드보다 큰 값인지 여부에 따라 다르게 설정된다. 도 39의 회색 음영 처리된 세로 열의 0 내지 79는 nTrSet에 대응되고, 회색 음영 처리된 가로 열의 0 내지 3은 mts_idx에 대응될 수 있다. 도 36을 참조하면 nTrSet가 7이고, mts_idx의 값이 3이라면, (2, 17, 18, 22) 중에서 22가 선택될 수 있다. 그리고, 도 40의 변환 타입 조합 테이블의 인덱스 22에 대응되는 DST1, DCT5가 선택되며, 현재 블록의 수직 방향 변환 타입은 DST1로 수평 방향 변환 타입은 DCT5로 설정될 수 있다. 도 40의 회색 음영 처리된 가로 열의 0 내지 24는 도 39을 통해 선택되는 인덱스이고, 회색 음영 처리된 세로 열의 0 내지 1은 각각 수직 방향 변환 타입과 수평 방향 변환 타입을 의미할 수 있다. 현재 블록의 화면 내 예측 방향성 모드가 대각 모드인 34보다 클 경우, 수직 및 수평 방향의 변환 타입이 서로 교체될 수 있다.6) The video signal processing device can derive a transformation type set corresponding to nTrSet from the table of FIG. 39 by parsing mts_idx included in the bitstream. The transformation types in the vertical and horizontal directions are set differently depending on whether predMode is a value greater than the 34th angle mode, which is a diagonal mode. 0 to 79 of the gray-shaded vertical columns of FIG. 39 may correspond to nTrSet, and 0 to 3 of the gray-shaded horizontal columns may correspond to mts_idx. Referring to FIG. 36, if nTrSet is 7 and the value of mts_idx is 3, 22 may be selected from (2, 17, 18, 22). Then, DST1 and DCT5 corresponding to index 22 of the transformation type combination table of FIG. 40 are selected, and the vertical transformation type of the current block may be set to DST1 and the horizontal transformation type may be set to DCT5. 0 to 24 of the gray-shaded horizontal columns in Fig. 40 are indices selected through Fig. 39, and 0 to 1 of the gray-shaded vertical columns may represent vertical transformation types and horizontal transformation types, respectively. If the predicted directionality mode within the screen of the current block is greater than 34, which is a diagonal mode, the vertical and horizontal transformation types may be interchanged.
mts_idx 값이 '3'이고, 현재 블록의 가로 및 세로의 크기가 모두 16 이하이면, 후술하는 과정을 통해 수직 또는 수평 방향의 변환 타입이 IDT 변환 타입으로 재설정될 수 있다.If the mts_idx value is '3' and the width and height of the current block are both 16 or less, the vertical or horizontal transformation type can be reset to the IDT transformation type through the process described below.
현재 블록의 화면 내 예측 방향성 모드의 인덱스와 수평 방향 모드의 인덱스인 18 간의 절대값 차이가 임의의 정해진 값보다 적다면, 수직 방향의 변환 타입은 IDT 변환 타입으로 재설정될 수 있다. 현재 블록의 화면 내 예측 방향성 모드의 인덱스와 수평 방향 모드의 인덱스인 50 간의 절대값 차이가 임의의 정해진 값보다 적다면, 수평 방향의 변환 타입은 IDT 변환 타입으로 재설정될 수 있다. 이때, 임의의 정해진 값은 정수로, 현재 블록의 가로 또는 세로의 크기에 기초하여 결정될 수 있다. 예를 들어, 임의의 정해진 값은 도 38의 테이블을 통해 결정될 수 있다. 도 41(a)의 테이블은 가로 또는 세로의 크기가 4씩 차이가 날때마다 임계 값이 다르게 설정된 경우를 나타내고, 도 41(b)의 테이블은 가로 또는 세로의 크기가 2배씩 차이가 날때마다 임계 값이 다르게 설정된 경우를 나타낸다. 현재 블록의 크기가 16x16 크기인 경우에는 수직 방향의 변환 타입은 IDT 변환 타입으로 재설정되지 않고, 기존의 변환 타입을 그대로 유지될 수 있다.If the absolute difference between the index of the screen prediction directionality mode of the current block and the index of the horizontal direction mode, 18, is less than any predetermined value, the vertical transformation type may be reset to the IDT transformation type. If the absolute difference between the index of the screen prediction directionality mode of the current block and the index of the horizontal direction mode, 50, is less than any predetermined value, the horizontal transformation type may be reset to the IDT transformation type. At this time, the predetermined value may be an integer and may be determined based on the horizontal or vertical size of the current block. For example, the predetermined value may be determined through the table of Fig. 38. The table of Fig. 41(a) represents a case where the threshold value is set differently whenever the horizontal or vertical size differs by 4, and the table of Fig. 41(b) represents a case where the threshold value is set differently whenever the horizontal or vertical size differs by 2 times. If the size of the current block is 16x16, the vertical transformation type may not be reset to the IDT transformation type, but the existing transformation type may be maintained as is.
mts_idx를 부호화하기 위한 비트량을 감소시키기 위해, 변환 타입 세트의 개수는 블록마다 적응적으로 변경될 수 있다. 변환 타입 세트의 개수는 현재 변환 블록의 변환 계수들의 절대 값의 합에 따라 적응적으로 결정될 수 있다. 예를 들어, 변환 타입 세트의 개수는 1, 4, 6개까지 적응적으로 결정될 수 있다. 변환 타입 세트의 개수가 달라지게 되면, mts_idx를 시그널링하기 위한 최대 빈(bin_의 개수가 달라질 수 있다. 변환 계수들의 절대값의 합이 6보다 작거나 같으면, 변환 타입 세트의 개수가 하나일 수 있다. 따라서, 변환 계수들의 절대값의 합이 6보다 작거나 같으면, 인코더는 mts_idx를 비트스트림에 포함시키지 않을 수 있고(즉, 시그널링하지 않을 수 있다), 디코더는 mts_idx를 파싱하지 않을 수 있다. 변환 계수들의 절대값의 합이 6보다 크고 32보다 작거나 같으면, 변환 타입 세트의 개수는 4개일 수 있고, 변환 계수들의 절대값의 합이 32보다 크면 변환 타입 세트의 개수는 6개가 될 수 있다. 변환 커널 이 경우, 변환 타입 세트의 개수가 복수(예, 4개 또는 6개)인 경우, 인코더는 변환 타입 세트의 최대 개수에 기초하여 mts_idx를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더에서는 변환 타입 세트의 최대 개수에 기초하여 mts_idx를 파싱할 수 있다. 여기서, 변환 타입 세트는 변환 커널 후보와 동일한 의미로 사용될 수 있다.In order to reduce the amount of bits for encoding mts_idx, the number of transform type sets can be adaptively changed for each block. The number of transform type sets can be adaptively determined according to the sum of the absolute values of the transform coefficients of the current transform block. For example, the number of transform type sets can be adaptively determined to 1, 4, or 6. If the number of transform type sets is different, the maximum number of bins (bin_) for signaling mts_idx may be different. If the sum of the absolute values of the transform coefficients is less than or equal to 6, the number of transform type sets may be one. Therefore, if the sum of the absolute values of the transform coefficients is less than or equal to 6, the encoder may not include (i.e., may not signal) mts_idx in the bitstream, and the decoder may not parse mts_idx. If the sum of the absolute values of the transform coefficients is greater than 6 and less than or equal to 32, the number of transform type sets may be four, and if the sum of the absolute values of the transform coefficients is greater than 32, the number of transform type sets may be six. Transform Kernel In this case, if the number of transform type sets is plural (e.g., four or six), the encoder may generate and signal a bitstream including mts_idx based on the maximum number of transform type sets, The decoder can parse mts_idx based on a maximum number of transformation type sets, where transformation type sets can be used in the same sense as transformation kernel candidates.
현재 블록이 인터 모드로 부호화된 경우, 현재 블록을 위한 변환 커널 세트는 4가지 조합 중 어느 하나의 변환 커널 세트일 수 있다. 이때, 4가지 조합은 {(DST7, DST7), (DST7, DCT8), (DCT8, DST7), (DCT8, DCT8)} 일 수 있다. 인코더는 4가지 조합 중 사용되는 변환 커널 세트를 나타내는 인덱스를 비트스트림에 포함하여 시그널링할 수 있다. 디코더는 해당 인덱스를 파싱하여 현재 블록에 대한 변환 커널 세트를 결정할 수 있다. 예를 들어, 결정된 변환 커널 세트가 (DST7, DCT8)인 경우, 현재 블록에는 수평 방향으로는 DST7이 적용되고, 수직 방향으로는 DCT8이 적용되어 변환/역변환이 수행될 수 있다. 또한 복잡도 최적화를 위해서, 1920x1080 해상도보다 큰 영상의 경우에는 인터 MTS가 적용될 수 있는 최대 CU 크기는 32x32로 설정될 수 있다. 1920x1080 이외의 해상도에서 인터 MTS가 적용될 수 있는 최대 CU 크기는 16x16일 수 있다. 따라서, 32x32 또는 16x16 보다 현재 블록의 크기가 크다면, 현재 블록에는 인터 MTS가 적용되지 않고, 수평 방향 및 수직 방향으로 DCT2 변환이 적용될 수 있다. 또한, 16x16 크기보다 같거나 작은 현재 블록에 대한 변환 커널인 DST7과 DCT8은 분리형 KLT(Karhunen-Loeve Transform)로 대체될 수 있다.If the current block is encoded in inter mode, the transform kernel set for the current block can be any one of the four combinations of transform kernel sets. In this case, the four combinations can be {(DST7, DST7), (DST7, DCT8), (DCT8, DST7), (DCT8, DCT8)}. The encoder can signal an index indicating the transform kernel set used among the four combinations by including it in the bitstream. The decoder can parse the index to determine the transform kernel set for the current block. For example, if the determined transform kernel set is (DST7, DCT8), DST7 can be applied to the current block in the horizontal direction and DCT8 can be applied in the vertical direction to perform transform/inverse transform. In addition, for complexity optimization, for images larger than 1920x1080 resolution, the maximum CU size to which inter MTS can be applied can be set to 32x32. The maximum CU size to which Inter MTS can be applied can be 16x16 for resolutions other than 1920x1080. Therefore, if the size of the current block is larger than 32x32 or 16x16, Inter MTS may not be applied to the current block, and DCT2 transform may be applied in the horizontal and vertical directions. In addition, DST7 and DCT8, which are transform kernels for the current block whose size is equal to or smaller than 16x16, may be replaced with a separable KLT (Karhunen-Loeve Transform).
도 42는 본 발명의 일 실시예에 따른 디블록킹 필터링 과정에서의 블록 경계 및 경계 주변의 샘플들을 나타낸다.Figure 42 shows samples at a block boundary and around the boundary in a deblocking filtering process according to one embodiment of the present invention.
도 42(a)를 참조하면 P 블록과 Q 블록 중간의 점선으로 표시된 부분이 블록 경계를 의미할 수 있다. 블록 경계는 임의의 정해진 크기마다 존재할 수 있으며, 4의 크기마다 블록 경계가 존재할 수 있다.Referring to Fig. 42(a), the part indicated by the dotted line between the P block and the Q block may indicate a block boundary. The block boundary may exist at any fixed size, and a block boundary may exist at every size of 4.
도 42(b)는 블록 경계를 기준으로 필터링이 수행되는 샘플들을 나타낸다. 비디오 신호 처리 장치는 현재 복원된 블록에 대하여 디블록킹 필터링을 수행하여 블록 경계에서 발생하는 블록킹 현상을 완화시키는 과정을 수행할 수 있다. 디블록킹 필터링 과정은 변환 블록 경계에 대한 결정, 서브 블록 경계에 대한 결정, 필터링을 수행할 필터의 길이에 대한 결정, 필터링의 세기(bS)에 대한 결정, 필터링 파라미터에 대한 결정, 필터링 수행 여부 결정, 필터링의 종류에 대한 결정 과정을 포함할 수 있다. Fig. 42(b) shows samples on which filtering is performed based on block boundaries. The video signal processing device can perform a process of alleviating blocking artifacts occurring at block boundaries by performing deblocking filtering on the currently restored block. The deblocking filtering process can include a process of determining a transform block boundary, determining a sub-block boundary, determining a length of a filter to perform filtering, determining a filtering strength (bS), determining a filtering parameter, determining whether to perform filtering, and determining a type of filtering.
도 43은 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 1차 또는 2차 변환 매트릭스를 유도하는 방법을 나타낸다.FIG. 43 illustrates a method for a video signal processing device according to one embodiment of the present invention to derive a first or second transform matrix.
구체적으로, 도 43은 현재 블록이 수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드를 사용하여 예측된 경우, 비디오 신호 처리 장치가 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도하는 방법에 대한 순서도를 나타낸다.Specifically, FIG. 43 illustrates a flowchart of a method for a video signal processing device to derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) when a current block is predicted using a vertical planar mode, a horizontal planar mode, or a conventional planar mode.
도 43을 참조하면 비디오 신호 처리 장치는 인트라 예측 방향성 모드(intra prediction mode)를 입력 받아서 현재 블록의 예측 모드가 평면 모드인지 여부를 확인할 수 있다. 예측 모드가 평면 모드가 아닌 경우, 비디오 신호 처리 장치는 입력된 인트라 예측 방향성 모드를 기반으로 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 예측 모드가 평면 모드인 경우, 비디오 신호 처리 장치는 예측 모드가 수직 방향 평면 모드인지 여부를 확인할 수 있다. 예측 모드가 수직 방향 평면 모드인 경우, 비디오 신호 처리 장치는 수평 각도 모드(도 6의 18번 각도 모드)를 기반으로 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 예측 모드가 수직 방향 평면 모드가 아닌 경우, 비디오 신호 처리 장치는 예측 모드가 수평 방향 평면 모드인지 여부를 확인할 수 있다. 예측 모드가 수평 방향 평면 모드인 경우, 비디오 신호 처리 장치는 수직 각도 모드(도 6의 50번 각도 모드)를 기반으로 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 예측 모드가 수평 방향 평면 모드가 아닌 경우, 비디오 신호 처리 장치는 종래의 평면 모드를 기반으로 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다.Referring to FIG. 43, a video signal processing device can receive an intra prediction mode and determine whether the prediction mode of a current block is a planar mode. If the prediction mode is not a planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on the input intra prediction directional mode. If the prediction mode is a planar mode, the video signal processing device can determine whether the prediction mode is a vertical planar mode. If the prediction mode is a vertical planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a horizontal angle mode (angle mode 18 of FIG. 6). If the prediction mode is not a vertical planar mode, the video signal processing device can determine whether the prediction mode is a horizontal planar mode. When the prediction mode is a horizontal planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a vertical angle mode (a 50-degree angle mode in FIG. 6). When the prediction mode is not a horizontal planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) based on a conventional planar mode.
수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드 중 어느 하나의 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드를 사용하여 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 다시 말하면, 수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드 중 어느 하나의 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드의 변환 매트릭스의 집합을 사용하여 다중 변환 세트에 기반한 1차 변환과정을 수행할 수 있다. 또한, 수직 방향 평면 모드, 수평 방향 평면 모드, 종래의 평면 모드 중 어느 하나의 모드가 사용되어 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드의 변환 매트릭스의 집합을 사용하여 LFNST에 기반한 2차 변환 과정을 수행할 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보에는 첫번째 인트라 예측 방향성 모드, 두번째 인트라 예측 방향성 모드, 가중치 예측을 수행할지 여부 정보가 포함될 수 있다. 만일 인코더 및 디코더에서 현재 블록의 주변 픽셀로부터 DIMD 정보 중에서 가중치 예측이 적용되지 않았을 경우, 기존 Planar 예측 모드를 사용하여 1차 혹은 2차 변환 매트릭스 (혹은 매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다.If a prediction block of a current block is generated by using any one of the vertical planar mode, the horizontal planar mode, and the conventional planar mode, the video signal processing device can derive a first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) using the intra prediction directional mode derived by using the DIMD method. In other words, if a prediction block of a current block is generated by using any one of the vertical planar mode, the horizontal planar mode, and the conventional planar mode, the video signal processing device can perform a first transformation process based on a multi-transform set by using the set of transformation matrices of the intra prediction directional mode derived by using the DIMD method. In addition, if a prediction block of a current block is generated by using any one of the vertical planar mode, the horizontal planar mode, and the conventional planar mode, the video signal processing device can perform a second transformation process based on LFNST by using the set of transformation matrices of the intra prediction directional mode derived by using the DIMD method. The DIMD information derived from the surrounding pixels of the current block may include the first intra prediction directional mode, the second intra prediction directional mode, and information on whether to perform weighted prediction. If weighted prediction is not applied among the DIMD information from the surrounding pixels of the current block in the encoder and decoder, the existing Planar prediction mode can be used to derive the first or second transformation matrix (or a set of matrices, a set of matrices, a set of kernels).
평면 모드는 평활한 영역에 효과적일 수 있으므로, 복잡도를 감소시키기 위해서, 인코더는 다중 변환 세트에 기반한 1차 변환과정을 수행하지 않고, DCT2 변환 방법을 묵시적으로 적용할 수 있다. 디코더는 현재 블록이 평면 모드로 예측되는 경우, DCT2 변환 방법을 적용할 수 있다. 현재 블록이 종래의 평면 모드로 예측되는 경우, 비디오 신호 처리 장치는 다중 변환 세트에 기반한 1차 변환과정을 수행하지 않고, DCT2 변환 방법을 묵시적으로 적용할 수 있다. 현재 블록이 수직 방향 평면 모드, 수평 방향 평면 모드로 예측되는 경우, 비디오 신호 처리 장치는 다중 변환 세트에 기반한 1차 변환과정을 적용할 수 있다. 한편, 현재 블록이 수직 방향 평면 모드, 수평 방향 평면 모드로 예측되는 경우, 비디오 신호 처리 장치는 다중 변환 세트에 기반한 1차 변환과정을 적용하지 않고, DCT2 변환 방법을 묵시적으로 적용할 수 있다. 현재 블록이 종래의 평면 모드로 예측되는 경우, 비디오 신호 처리 장치는 다중 변환 세트에 기반한 1차 변환 과정을 적용할 수 있다. 또한, 상술한 방법에서 현재 블록의 크기가 임의의 크기인 경우, DCT2 변환 방법이 아닌 DST7 변환 방법이 적용될 수 있다. 이때, 임의의 크기는 현재 블록의 가로 또는 세로의 크기가 4보다 같거나 크고 또는 16보다 작거나 같은 경우일 수 있다. 예를 들어, 수직 방향 평면 모드 또는 수평 방향 평면 모드에 기초하여 현재 블록이 예측되고, 현재 블록의 가로의 크기가 32이고, 세로의 크기가 16인 경우, 비디오 신호 처리 장치는 가로 방향 변환을 위해서는 DCT2를 적용하고, 세로 방향 변환을 위해서는 DST7을 적용할 수 있다.Since the planar mode can be effective in a smooth area, in order to reduce complexity, the encoder can implicitly apply the DCT2 transform method without performing the first transform process based on the multiple transform set. The decoder can apply the DCT2 transform method if the current block is predicted in the planar mode. If the current block is predicted in the conventional planar mode, the video signal processing device can implicitly apply the DCT2 transform method without performing the first transform process based on the multiple transform set. If the current block is predicted in the vertical direction planar mode or the horizontal direction planar mode, the video signal processing device can apply the first transform process based on the multiple transform set. Meanwhile, if the current block is predicted in the vertical direction planar mode or the horizontal direction planar mode, the video signal processing device can implicitly apply the DCT2 transform method without applying the first transform process based on the multiple transform set. If the current block is predicted in the conventional planar mode, the video signal processing device can apply the first transform process based on the multiple transform set. In addition, in the above-described method, if the size of the current block is an arbitrary size, the DST7 transform method may be applied instead of the DCT2 transform method. At this time, the arbitrary size may be a case where the horizontal or vertical size of the current block is greater than or equal to 4 or less than or equal to 16. For example, if the current block is predicted based on the vertical planar mode or the horizontal planar mode, and the horizontal size of the current block is 32 and the vertical size is 16, the video signal processing device may apply DCT2 for horizontal transform and DST7 for vertical transform.
평면 모드와 유사하게 DC 모드도 3가지 예측 모드(3가지 DC 모드, 3가지 방향의 DC 예측 모드 또는 3가지 DC 예측 모드로 혼용 기술될 수 있다)로 구분될 수 있다. 구체적으로, DC 모드는 현재 블록의 상측 화소들 간의 평균, 현재 블록의 좌측 화소들 간의 평균, 현재 블록의 상측 및 좌측 화소들 간의 평균에 따른 모드로 구분될 수 있다. 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 비디오 신호 처리 장치는 현재 블록의 상측 화소들 간의 평균 값을 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로의 크기보다 크다면, 비디오 신호 처리 장치는 현재 블록의 좌측 화소들 간의 평균 값을 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 현재 블록의 가로의 크기와 세로의 크기가 같다면, 비디오 신호 처리 장치는 상측 및 좌측의 화소들 간의 평균 값을 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 인코더는 3가지 DC 예측 모드(즉, 현재 블록의 상측 화소들 간의 평균, 현재 블록의 좌측 화소들 간의 평균, 현재 블록의 상측 및 좌측 화소들 간의 평균에 따른 모드) 중 어떠한 예측 모드가 사용되는지를 나타내는 정보를 명시적으로 시그널링할 수 있다. 즉, 인코더는 3가지 DC 모드 중 어떠한 모드에 기초하여 현재 블록이 예측되었는지에 대한 정보(DC 모드 선택 정보)를 포함하는 비트스트림을 생성하여 시그널링할 수 있다. 인코더가 DC 모드 선택 정보를 시그널링하는 방법은 명시적 방향 DC 모드(explicit directional DC 모드)로 기술될 수 있다. 디코더는 DC 모드 선택 정보를 파싱하여 결정되는 모드에 기초하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 인코더는 현재 블록의 예측 모드가 DC 모드인 경우, 어떠한 모드로 부호화되었는지에 대한 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있다. 디코더는 현재 블록의 예측 모드가 DC 모드인 경우, DC 모드 선택 정보를 파싱하여, 현재 블록에 대한 최종 DC 모드를 결정할 수 있다. 예를 들어, 현재 블록이 좌측 화소들 간의 평균을 사용하는 DC 모드로 예측되는 경우, 인코더는 현재 블록이 DC 모드라는 정보를 시그널링하고 그리고 현재 블록이 좌측 화소들 간의 평균을 사용하는 DC 모드를 통해 예측되었다는 정보를 추가적인 플래그 비트를 사용하여 시그널링할 수 있다. 디코더는 현재 블록이 DC 모드인 경우, 추가적인 플래그 비트를 파싱하여 현재 블록에 어떠한 모드가 적용되었는지를 결정할 수 있다. 인코더는 현재 블록의 부호화 모드가 DC 모드임을 시그널링할 수 있다. 또는 디코더는, MPM 리스트를 이용하여 현재 블록의 부호화 모드가 DC 모드인지 확인할 수 있다. 또는 디코더는 MPM 리스트를 이용하여 현재 블록의 부호화 모드가 DC 모드인지 여부를 지시하는 정보(신택스 요소)를 파싱할 수 있다. 본 명세서에서 3가지 DC 모드 중 현재 블록의 상측 화소들 간의 평균을 사용하는 DC 모드는 Vertical DC 모드 또는 above DC 모드로 기술될 수 있고, 현재 블록의 좌측 화소들 간의 평균을 사용하는 DC 모든 Horizontal DC 모드 또는 left DC 모드로 기술될 수 있다.Similar to the planar mode, the DC mode can also be classified into three prediction modes (three DC modes, three-directional DC prediction modes, or three DC prediction modes can be used interchangeably). Specifically, the DC mode can be classified into a mode according to an average between upper pixels of the current block, an average between left pixels of the current block, and an average between upper and left pixels of the current block. If the horizontal size of the current block is greater than the vertical size, the video signal processing device can generate a prediction block of the current block using an average value between upper pixels of the current block. If the vertical size of the current block is greater than the horizontal size, the video signal processing device can generate a prediction block of the current block using an average value between left pixels of the current block. If the horizontal size and the vertical size of the current block are equal, the video signal processing device can generate a prediction block of the current block using an average value between upper and left pixels. The encoder can explicitly signal information indicating which of the three DC prediction modes (i.e., the mode according to the average between the upper pixels of the current block, the average between the left pixels of the current block, and the average between the upper and left pixels of the current block) is used. That is, the encoder can generate and signal a bitstream including information (DC mode selection information) on the basis of which one of the three DC modes the current block is predicted. The method by which the encoder signals the DC mode selection information can be described as an explicit directional DC mode. The decoder can generate a prediction block for the current block based on the mode determined by parsing the DC mode selection information. The encoder can generate and signal a bitstream including information on in which mode the current block was encoded if the prediction mode of the current block is the DC mode. The decoder can determine a final DC mode for the current block by parsing the DC mode selection information if the prediction mode of the current block is the DC mode. For example, if the current block is predicted in DC mode using the average between the left pixels, the encoder can signal that the current block is in DC mode and can signal that the current block is predicted via DC mode using the average between the left pixels using an additional flag bit. If the current block is in DC mode, the decoder can parse the additional flag bit to determine which mode is applied to the current block. The encoder can signal that the coding mode of the current block is DC mode. Alternatively, the decoder can use the MPM list to determine whether the coding mode of the current block is DC mode. Alternatively, the decoder can parse the information (syntax element) indicating whether the coding mode of the current block is DC mode using the MPM list. In this specification, among the three DC modes, the DC mode using the average between the upper pixels of the current block can be described as the Vertical DC mode or the above DC mode, and the DC mode using the average between the left pixels of the current block can be described as all Horizontal DC modes or the left DC mode.
상기 3가지 DC 예측 모드는 ISP 모드에서 사용되지 않을 수 있다. 인코더는 현재 블록이 ISP 모드로 부호화되었고, 현재 블록이 DC 모드로 부호화된 경우, 현재 블록이 좌측 화소들간의 평균을 사용하는 DC 모드인지 또는 상단 화소들간의 평균을 사용하는 DC 모드인지를 나타내는 플래그 비트를 시그널링 하지 않을 수 있다. 디코더는 현재 블록이 ISP 모드이고, 현재 블록이 DC 모드인 경우, 현재 블록이 좌측 화소들간의 평균을 사용하는 DC 모드인지 또는 상단 화소들간의 평균을 사용하는 DC 모드인지를 나타내는 플래그 비트를 파싱하지 않을 수 있다.The above three DC prediction modes may not be used in ISP mode. The encoder may not signal a flag bit indicating whether the current block is in DC mode using the average between left pixels or in DC mode using the average between top pixels, if the current block is encoded in ISP mode and the current block is encoded in DC mode. The decoder may not parse a flag bit indicating whether the current block is in DC mode using the average between left pixels or in DC mode using the average between top pixels, if the current block is in ISP mode and the current block is in DC mode.
한편 상기 3가지 DC 예측 모드는 ISP 모드에서 사용될수 있다. 인코더는 현재 블록이 ISP 모드로 부호화되었고, 현재 블록이 DC 모드로 부호화된 경우, 현재 블록의 예측 모드가 3가지 DC 예측 모드 중 어떠한 것인지를 나타내는 플래그 비트를 시그널링하여 비트스트림에 포함시킬 수 있다. 디코더는 현재 블록이 ISP 모드이고, 현재 블록이 DC 모드인 경우, 플래그 비트를 파싱하여, 현재 블록에 대한 최종 DC 모드를 설정할 수 있다.Meanwhile, the above three DC prediction modes can be used in the ISP mode. The encoder can signal a flag bit indicating which of the three DC prediction modes the prediction mode of the current block is, and include it in the bitstream, if the current block is encoded in the ISP mode and the current block is encoded in the DC mode. The decoder can parse the flag bit to set the final DC mode for the current block, if the current block is encoded in the ISP mode and the current block is encoded in the DC mode.
상기 3가지 DC 예측 모드의 적용 여부는 현재 블록의 컬러 성분에 기초하여 결정될 수 있다. 현재 블록이 휘도 성분 블록인 경우, 상기 3가지 DC 예측 모드는 사용될 수 있다. 또는 현재 블록이 색차 성분 블록인 경우, 상기 3가지 DC 예측 모드 중에서 상측 및 좌측 화소들 간의 평균을 사용하는 DC 예측 모드만 사용될 수 있다. 따라서, 인코더는 현재 블록이 색차 성분 블록이고 DC 모드가 적용되는 경우, 3가지 DC 모드 중 어떠한 DC 모드가 사용되는지를 나타내는 플래그 비트를 비트스트림에 포함시키지 않을 수 있다. 디코더는 현재 블록이 색차 성분 블록이고 DC 모드가 적용되는 경우, 3가지 DC 모드 중 어떠한 DC 모드가 사용되는지를 나타내는 플래그 비트를 파싱하지 않을 수 있으며, 현재 블록에 대한 DC 모드를 상측 및 좌측 화소들 간의 평균을 사용하는 DC 예측 모드로 설정할 수 있다.Whether to apply the above three DC prediction modes can be determined based on the color component of the current block. If the current block is a luminance component block, the above three DC prediction modes can be used. Or, if the current block is a chrominance component block, only the DC prediction mode using the average between the upper and left pixels among the above three DC prediction modes can be used. Therefore, if the current block is a chrominance component block and the DC mode is applied, the encoder may not include a flag bit indicating which of the three DC modes is used in the bitstream. If the current block is a chrominance component block and the DC mode is applied, the decoder may not parse the flag bit indicating which of the three DC modes is used, and may set the DC mode for the current block to the DC prediction mode using the average between the upper and left pixels.
ISP 모드가 적용되는 경우, 현재 블록은 수평 방향으로 분할되거나 수직 방향으로 분할될 수 있다. 현재 블록의 가로 또는 세로의 크기에 따라 하나의 블록이 2개 또는 4개의 블록으로 분할될 수 있다. ISP 모드로 부호화된 블록에서 상기 3가지 평면 모드 또는 상기 3가지 DC 모드가 사용되는 경우, 블록의 분할 형태에 따라 예측 모드는 결정될 수 있다. 현재 블록이 ISP 모드로 부호화되었고 ISP 모드에 따른 분할 형태가 수평 방향 분할인 경우, 3가지 평면 모드 중 수평 방향 평면 모드가 사용될 수 있다. 현재 블록이 ISP 모드로 부호화되었고 ISP 모드에 따른 분할 형태가 수평 방향 분할인 경우, 3가지 평면 모드 중 수직 방향 평면 모드가 사용될 수 있다. 현재 블록이 ISP 모드로 부호화되었고 ISP 모드에 따른 분할 형태가 수평 방향 분할인 경우 3가지 DC 모드들 중 좌측 화소들 간의 평균을 사용하는 모드가 사용될 수 있다. 현재 블록이 ISP 모드로 부호화되었고 ISP 모드에 따른 분할 형태가 수평 방향 분할인 경우 3가지 DC 모드들 중 상측 화소들 간의 평균을 사용하는 모드가 사용될 수 있다. When the ISP mode is applied, the current block can be divided horizontally or vertically. Depending on the horizontal or vertical size of the current block, one block can be divided into two or four blocks. When the three planar modes or the three DC modes are used in a block encoded in the ISP mode, the prediction mode can be determined according to the division shape of the block. When the current block is encoded in the ISP mode and the division shape according to the ISP mode is horizontal division, the horizontal planar mode among the three planar modes can be used. When the current block is encoded in the ISP mode and the division shape according to the ISP mode is horizontal division, the vertical planar mode among the three planar modes can be used. When the current block is encoded in the ISP mode and the division shape according to the ISP mode is horizontal division, a mode using the average between the left pixels among the three DC modes can be used. If the current block is encoded in ISP mode and the division type according to the ISP mode is horizontal division, a mode that uses the average between upper pixels among the three DC modes can be used.
ISP 모드의 분할 형태는 DIMD로부터 유도된 인트라 예측 방향성 모드 또는 TIMD로부터 유도된 인트라 예측 방향성 모드에 기초하여 결정될 수 있다. 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 작다면, 현재 블록의 ISP 분할 형태는 수평 방향 분할일 수 있다. 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 같거나 크다면 현재 블록의 ISP 분할 형태는 수직 방향 분할일 수 있다. 반대로, 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 작다면, 현재 블록의 ISP 분할 형태는 수직 방향 분할일 수 있다. 현재 블록의 DIMD(또는 TIMD) 모드가 34보다 같거나 크다면 현재 블록의 ISP 분할 형태는 수평 방향 분할일 수 있다. ISP 모드의 분할 형태가 DIMD(또는 TIMD)로부터 유도된 인트라 예측 방향성 모드에 기초하여 결정되는 경우, 분할 형태는 암묵적으로 결정되므로, 인코더는 ISP 분할 형태에 대한 정보를 비트스트림에 포함시키지 않을 수 있고, 디코더는 ISP 분할 형태에 대한 정보를 파싱하지 않을 수 있다.The partitioning shape of the ISP mode can be determined based on the intra prediction directional mode derived from DIMD or the intra prediction directional mode derived from TIMD. If the DIMD (or TIMD) mode of the current block is less than 34, the ISP partitioning shape of the current block can be horizontal partitioning. If the DIMD (or TIMD) mode of the current block is greater than or equal to 34, the ISP partitioning shape of the current block can be vertical partitioning. Conversely, if the DIMD (or TIMD) mode of the current block is less than 34, the ISP partitioning shape of the current block can be vertical partitioning. If the DIMD (or TIMD) mode of the current block is greater than or equal to 34, the ISP partitioning shape of the current block can be horizontal partitioning. If the partition shape of the ISP mode is determined based on the intra prediction directional mode derived from DIMD (or TIMD), the partition shape is determined implicitly, so the encoder may not include information about the ISP partition shape in the bitstream, and the decoder may not parse information about the ISP partition shape.
비디오 신호 처리 장치는 3가지 DC 모드를 모두 사용하여 각각의 모드에 대한 예측 블록을 생성하고, 각 예측 블록 별로 동일하거나 상이한 가중치를 적용하여 가중치 평균을 통한 최종 예측 블록을 생성할 수 있다. 이때, 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 상측 화소들 간의 평균을 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 또한 현재 블록의 가로의 크기가 세로의 크기보다 작다면, 좌측 화소들 간의 평균을 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 또는 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 크거나 같다면, 상측 화소들 간의 평균을 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 작다면, 좌측 화소들 간의 평균을 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다. 여기서 임의의 값은 정수가 될 수 있으며, 대각 모드(도 6의 34번 각도 모드)의 인덱스인 34일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보에는 첫번째 인트라 예측 방향성 모드, 두번째 인트라 예측 방향성 모드, 가중치 예측을 수행할지 여부에 대한 정보가 포함될 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보 중에서 가중치 예측이 적용되지 않았을 경우, 상측 및 좌측 모든 화소들 간의 평균을 사용하여 예측된 블록에 가장 큰 가중치가 적용될 수 있다.The video signal processing device can generate prediction blocks for each mode using all three DC modes, and can generate a final prediction block through a weighted average by applying the same or different weights to each prediction block. At this time, if the horizontal size of the current block is greater than the vertical size, the largest weight can be applied to the predicted block using the average between the upper pixels. Also, if the horizontal size of the current block is smaller than the vertical size, the largest weight can be applied to the predicted block using the average between the left pixels. Or, if the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to an arbitrary value, the largest weight can be applied to the predicted block using the average between the upper pixels. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is smaller than an arbitrary value, the largest weight can be applied to the predicted block using the average between the left pixels. Here, the arbitrary value can be an integer, and can be 34, which is an index of the diagonal mode (angle mode 34 in FIG. 6). The DIMD information derived from the surrounding pixels of the current block may include the first intra prediction directional mode, the second intra prediction directional mode, and information on whether to perform weighted prediction. If weighted prediction is not applied among the DIMD information derived from the surrounding pixels of the current block, the largest weight may be applied to the predicted block using the average of all pixels on the upper and left sides.
인코더가 명시적으로 시그널링하는 3가지 DC 예측 모드 중 어느 하나에 기초하여 예측 블록이 생성되는 경우, 인코더는 다중 변환 세트와 관계없이 미리 정해진 변환 세트를 사용하여 오차 신호(잔차 신호)에 대한 변환을 수행할 수 있다. 예를 들어, 인코더가 명시적으로 시그널링하는 가지 DC 예측 모드 중 어느 하나에 기초하여 예측 블록이 생성되는 경우, 인코더는 오차 신호에 대해 기존의 DC 모드(또는 평면 모드)를 사용하여 다중 변환 세트(Multiple Transform Set, MTS)에 기반한 변환과정을 수행하여 변환 계수를 획득(출력)할 수 있다. 디코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 디코더는 다중 변환 세트와 관계없이 미리 정해진 변환 세트를 사용하여 변환 계수에 대한 역변환을 수행할 수 있다. 예를 들어, 디코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 디코더는 변환 계수에 대해 기존의 DC 모드(또는 평면 모드)를 사용하여 MTS에 기반한 역변환을 수행하고 오차 신호를 획득(출력)할 수 있다.If a prediction block is generated based on any one of the three DC prediction modes explicitly signaled by the encoder, the encoder can perform a transform on the error signal (residual signal) using a predetermined transform set, regardless of the multiple transform set. For example, if a prediction block is generated based on any one of the three DC prediction modes explicitly signaled by the encoder, the encoder can perform a transform process based on a Multiple Transform Set (MTS) using a conventional DC mode (or a planar mode) on the error signal to obtain (output) transform coefficients. If a decoder explicitly uses any one of the three DC prediction modes to generate a prediction block of the current block, the decoder can perform an inverse transform on the transform coefficients using a predetermined transform set, regardless of the multiple transform set. For example, if the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an inverse transform based on MTS using the conventional DC mode (or planar mode) on the transform coefficients and obtain (output) the error signal.
또한, 인코더는 MTS 또는 미리 정해진 변환 세트에 기초하여 1차 변환된 계수에 대한 2차 변환을 수행할 수 있다. 2차 변환은 LFNST일 수 있다. 인코더가 LFNST를 수행할 때 사용하는 변환 매트릭스는 인트라 예측 방향성 모드에 따라 달라질 수 있다. 예를 들어, 인코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 1차 변환된 변환 계수는 LFNST를 통해 2차 변환될 수 있다. 이때, 인코더는 기존의 DC 모드(또는 평면 모드)를 사용하여 LFNST 변환을 수행할 수 있고, LFNST 변환을 수행하여 2차 변환 계수를 획득(출력)할 수 있다. 마찬가지로, 디코더가 LFNST를 이용한 역변환을 수행할 때, 사용하는 변환 매트릭스는 인트라 예측 방향성 모드에 따라 달라질 수 있다. 예를 들어, 디코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 디코더는 2차 변환 계수에 대하 기존의 DC 모드(또는 평면 모드)를 사용하여 LFNST 역변환을 수행하여, 1차 변환 계수를 획득(출력)할 수 있다. 그리고, 디코더는 1차 변환 계수에 대해 기존의 DC 모드를 사용하여 다중 변환 세트(MTS; Multiple Transform Set)에 기반한 역변환과정을 수행하여 오차 신호를 획득(출력)할 수 있다.In addition, the encoder can perform a secondary transform on the primary transformed coefficients based on the MTS or a predetermined transform set. The secondary transform can be LFNST. The transform matrix used by the encoder when performing the LFNST can vary depending on the intra prediction directional mode. For example, if the encoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the primary transformed transform coefficients can be subjected to a secondary transform through LFNST. In this case, the encoder can perform the LFNST transform using the existing DC mode (or planar mode), and obtain (output) the secondary transform coefficients by performing the LFNST transform. Similarly, when the decoder performs the inverse transform using LFNST, the transform matrix used can vary depending on the intra prediction directional mode. For example, if the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an LFNST inverse transform using the conventional DC mode (or planar mode) on the secondary transform coefficients to obtain (output) the primary transform coefficients. Then, the decoder can perform an inverse transform process based on a multiple transform set (MTS) using the conventional DC mode on the primary transform coefficients to obtain (output) an error signal.
비디오 신호 처리 장치가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 비디오 신호 처리 장치는 기존의 DC 예측 모드가 아닌 다른 모드를 사용하여 1차 또는 2차 변환 매트릭스 (또는 매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다.When a video signal processing device explicitly uses one of three DC prediction modes to generate a prediction block of a current block, the video signal processing device may derive a first or second transformation matrix (or a set of matrices, a set of matrices, a set of kernels) using a mode other than the conventional DC prediction mode.
인코더가 3가지 DC 예측 모드 중에서 좌측 화소 값들의 평균을 사용하는 DC 예측 모드를 사용하여 현재 블록의 예측 블록을 생성하는 경우, 인코더는 오차 신호에 대해 기존의 DC 예측 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예를 들어, 도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 MTS에 기반한 1차 변환과정을 수행할 수 있고, 1차 변환 계수를 획득할 수 있다. 또한, 인코더는 획득한 1차 변환 계수에 대해 기존의 DC 예측 모드의 2차 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드)의 2차 변환(예, LFNST) 매트릭스의 집합을 사용하여 변환과정을 수행할 수 있고, 2차 변환 계수를 획득할 수 있다. 디코더가 3가지 DC 예측 모드 중에서 좌측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록을 생성하는 경우, 디코더는 2차 변환 계수에 대해 기존의 DC 예측 모드의 2차 변환(예, LFNST) 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드)의 2차 변환 매트릭스의 집합을 사용하여 역변환과정을 수행할 수 있고, 1차 변환 계수를 획득할 수 있다. 또한, 디코더는 1차 변환 계수에 대해 기존의 DC 예측 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 MTS에 기반한 역변환과정을 수행할 수 있으며, 오차 신호를 획득할 수 있다.When the encoder generates a prediction block of the current block using the DC prediction mode that uses the average of the left pixel values among the three DC prediction modes, the encoder can perform a first transform process based on MTS by using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of transform matrices of the existing DC prediction mode for the error signal, and obtain first transform coefficients. In addition, the encoder can perform a transform process by using a set of second transform (e.g., LFNST) matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of second transform matrices of the existing DC prediction mode for the obtained first transform coefficients, and obtain second transform coefficients. When the decoder generates a prediction block of the current block by using the DC mode that uses the average of the left pixel values among the three DC prediction modes, the decoder can perform an inverse transform process by using a set of second transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of second transform (e.g., LFNST) matrices of the existing DC prediction mode for the second transform coefficients, and obtain a first transform coefficient. In addition, the decoder can perform an inverse transform process based on MTS by using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in FIG. 6) instead of a set of transform matrices of the existing DC prediction mode for the first transform coefficients, and obtain an error signal.
3가지 DC 예측 모드 중에서 상측 화소 값들의 평균을 사용하는 DC 모드에 기초하여 현재 블록의 예측 블록이 생성되는 경우, 디코더는 수직 각도 모드(예, 도 6의 50번 각도 모드)의 2차 변환(예, LFNST) 매트릭스의 집합을 사용하여 역변환과정을 수행할 수 있고, 1차 변환 계수를 출력할 수 있다. 또한, 디코더는 상기 1차 변환 계수에 대해 기존의 DC 예측 모드의 변환 매트릭스의 집합을 사용하지 않고, 수직 각도 모드(예, 도 6의 50번 각도 모드)의 변환 매트릭스의 집합을 사용하여 MTS 기반한 역변환과정을 수행할 수 있고, 오차 신호를 획득할 수 있다.If the prediction block of the current block is generated based on the DC mode that uses the average of the upper pixel values among the three DC prediction modes, the decoder can perform an inverse transformation process using a set of secondary transformation (e.g., LFNST) matrices of the vertical angle mode (e.g., the 50-degree angle mode in FIG. 6) and output a first transformation coefficient. In addition, the decoder can perform an MTS-based inverse transformation process using a set of transformation matrices of the vertical angle mode (e.g., the 50-degree angle mode in FIG. 6) without using a set of transformation matrices of the existing DC prediction mode for the first transformation coefficient, and obtain an error signal.
3가지 DC 예측 모드 중에서 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 디코더는 수평 각도 모드(예, 도 6의 18번 각도 모드)의 2차 변환(예, LFNST) 매트릭스의 집합을 사용하여 역변환과정을 수행할 수 있고, 1차 변환 계수를 출력할 수 있다. 또한, 디코더는 1차 변환 계수에 대해 기존의 DC 예측 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 MTS에 기반한 역변환과정을 수행할 수 있고, 오차 신호를 획득할 수 있다.If the prediction block of the current block is generated using the DC mode that uses the average of the upper pixel values among the three DC prediction modes, the decoder can perform an inverse transformation process using a set of secondary transform (e.g., LFNST) matrices of the horizontal angle mode (e.g., the 18th angle mode in Fig. 6) and output a first transform coefficient. In addition, the decoder can perform an inverse transformation process based on MTS using a set of transform matrices of the horizontal angle mode (e.g., the 18th angle mode in Fig. 6) without using a set of transform matrices of the existing DC prediction mode for the first transform coefficient, and obtain an error signal.
3가지 DC 예측 모드 중에서 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드를 사용하여 1차 또는 2차 변환 매트릭스 (매트릭스의 집합, 매트릭스의 세트, 커널 세트)를 유도할 수 있다. 다시 말해서, 3가지 DC 예측 모드 중에서 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드의 변환 매트릭스의 집합을 사용하여 MTS에 기반한 변환과정 또는 역변환 과정을 수행할 수 있다. 또한, 3가지 DC 예측 모드 중에서 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 DIMD 방법을 사용하여 유도된 인트라 예측 방향성 모드의 변환 매트릭스의 집합을 사용하여 LFNST에 기반한 변환 과정 또는 역변환 과정을 수행할 수 있다.If the prediction block of the current block is generated using the DC mode that uses the average of the upper pixel values among the three DC prediction modes, the video signal processing device can derive the first or second transformation matrix (a set of matrices, a set of matrices, a set of kernels) using the intra prediction directional mode derived using the DIMD method. In other words, if the prediction block of the current block is generated using the DC mode that uses the average of the upper pixel values among the three DC prediction modes, the video signal processing device can perform a transformation process or an inverse transformation process based on MTS using the set of transformation matrices of the intra prediction directional mode derived using the DIMD method. Furthermore, if the prediction block of the current block is generated using the DC mode that uses the average of the upper pixel values among the three DC prediction modes, the video signal processing device can perform a transformation process or an inverse transformation process based on LFNST using the set of transformation matrices of the intra prediction directional mode derived using the DIMD method.
3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 수평 방향 또는 수직 방향의 변환에 대하여 IDTR, MTS에 기반한 변환 중에서 하나를 사용할 수 있다.When a prediction block of a current block is generated by explicitly using one of the three DC prediction modes, the video signal processing device may use one of the IDTR and MTS-based transforms for the horizontal or vertical transform.
인코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 인코더는 오차 신호에 대해 다중 변환 세트와 관계없이 수평 방향, 수직 방향 중에서 어느 하나 이상에 대해 IDTR을 사용한 변환을 수행하여 변환 계수를 획득할 수 있다. 디코더가 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 현재 블록의 예측 블록을 생성하는 경우, 디코더는 변환 계수에 대해 다중 변환 세트와 관계없이 수평 방향, 수직 방향 중에서 어느 하나 이상에 대한 IDTR을 사용하여 역변환을 수행하고, 오차 신호를 획득할 수 있다.If the encoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the encoder can obtain transform coefficients by performing a transform using IDTR in at least one of the horizontal direction and the vertical direction on the error signal, regardless of the multiple transform sets. If the decoder explicitly uses any one of the three DC prediction modes to generate the prediction block of the current block, the decoder can perform an inverse transform using IDTR in at least one of the horizontal direction and the vertical direction on the transform coefficients, regardless of the multiple transform sets, and obtain an error signal.
인코더가 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록을 생성하는 경우, 인코더는 오차 신호의 수평 방향에 대해서는 IDTR 변환을 적용하고 수직 방향에 대해서는 기존의 DC 모드를 사용하여 MTS에 기반한 변환을 수행하고 변환 계수를 획득할 수 있다. 디코더가 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록을 생성하는 경우, 변환 계수의 수평 방향에 대해서는 IDTR 역변환을 적용하고 수직 방향에 대해서는 기존의 DC 모드를 사용하여 MTS에 기반한 역변환을 수행하고 오차 신호를 획득할 수 있다.If the encoder uses the DC mode that uses the average of the upper pixel values to generate the prediction block of the current block, the encoder can apply the IDTR transform for the horizontal direction of the error signal, perform the MTS-based transform using the conventional DC mode for the vertical direction, and obtain the transform coefficients. If the decoder uses the DC mode that uses the average of the upper pixel values to generate the prediction block of the current block, the decoder can apply the IDTR inverse transform for the horizontal direction of the transform coefficients, and perform the MTS-based inverse transform using the conventional DC mode for the vertical direction, and obtain the error signal.
인코더가 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록을 생성하는 경우, 오차 신호의 수직 방향에 대해서는 IDTR 변환을 적용하고 수평 방향에 대해서는 기존의 DC 모드를 사용하여 MTS에 기반한 변환을 수행하고 변환 계수를 획득할 수 있다. 디코더가 현재 블록이 상측 화소 값들의 평균을 사용하는 DC 모드를 사용하여 예측 블록을 생성하는 경우, 변환 계수의 수직 방향에 대해서는 IDTR 역변환을 적용하고 수평 방향에 대해서는 기존의 DC 모드를 사용하여 MTS 에 기반한 역변환을 수행하고 오차 신호를 출력할 수 있다. IDTR 변환은 현재 블록의 가로 및/또는 너비가 특정 값 이상이거나 이하인 경우에만 적용될 수 있다. 이때 특정 값은 8, 16, 32 일 수 있다.If the encoder generates a prediction block of the current block using the DC mode that uses the average of the upper pixel values, the IDTR transform can be applied to the vertical direction of the error signal, and the MTS-based transform can be performed using the conventional DC mode for the horizontal direction to obtain the transform coefficients. If the decoder generates a prediction block of the current block using the DC mode that uses the average of the upper pixel values, the IDTR inverse transform can be applied to the vertical direction of the transform coefficients, and the MTS-based inverse transform can be performed using the conventional DC mode for the horizontal direction to output the error signal. The IDTR transform can be applied only when the width and/or height of the current block is greater than or equal to a specific value. At this time, the specific value can be 8, 16, or 32.
비디오 신호 처리 장치는 평면 모드와 DC 모드 간의 가중치 평균을 통해 현재 블록의 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 수직 방향으로의 선형 평면 예측 모드와 상측 화소 값들의 평균을 사용하는 DC 모드 간의 가중치 평균을 통해 현재 블록의 예측 블록을 생성할 수 있다. 또는, 비디오 신호 처리 장치는 수직 방향으로의 선형 평면 예측 모드와 좌측 화소 값들의 평균을 사용하는 DC 모드 간의 가중치 평균을 통해 현재 블록의 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 생성된 예측 블록의 오차 신호에 대해 상술한 변환 방법들을 적용할 수 있다. 예를 들어, 디코더가 수직 방향으로의 선형 평면 예측 모드와 좌측 화소 값들의 평균을 사용하는 DC 모드 간의 가중치 평균을 통해 현재 블륵의 예측 블록을 생성하는 경우, 디코더는 수평 각도 모드(예, 도 6의 18번 각도 모드)의 2차 변환(예, LFNST) 매트릭스의 집합을 사용하여 역변환과정을 수행할 수 있고, 1차 변환 계수를 출력할 수 있다. 또한, 디코더는 1차 변환 계수에 대해 기존의 DC 예측 모드의 변환 매트릭스의 집합을 사용하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드)의 변환 매트릭스의 집합을 사용하여 MTS에 기반한 역변환과정을 수행할 수 있고, 오차 신호를 획득할 수 있다. 본 명세서에서 평면 모드는 평면 예측 모드로, DC 모드는 DC 예측 모드로 혼용되어 기술될 수 있다.The video signal processing device can generate the prediction block of the current block through a weighted average between the planar mode and the DC mode. The video signal processing device can generate the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the upper pixel values. Alternatively, the video signal processing device can generate the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the left pixel values. The video signal processing device can apply the above-described transformation methods to the error signal of the generated prediction block. For example, when the decoder generates the prediction block of the current block through a weighted average between the linear planar prediction mode in the vertical direction and the DC mode using the average of the left pixel values, the decoder can perform an inverse transformation process using a set of secondary transform (e.g., LFNST) matrices of the horizontal angular mode (e.g., the 18th angular mode of FIG. 6) and output primary transform coefficients. In addition, the decoder can perform an inverse transformation process based on MTS by using a set of transformation matrices of a horizontal angle mode (e.g., the 18th angle mode in Fig. 6) instead of a set of transformation matrices of a conventional DC prediction mode for the first transform coefficients, and obtain an error signal. In this specification, the planar mode may be described as a planar prediction mode, and the DC mode may be described as a DC prediction mode.
도 44는 본 발명의 일 실시예에 따른 수직 또는 수평 라인 단위의 DC 예측 방법을 나타낸다.Figure 44 illustrates a DC prediction method for vertical or horizontal line units according to one embodiment of the present invention.
DC 모드는 하나의 평균 값 만을 사용하여 현재 블록에 대한 예측 블록을 생성하는 예측 방법이고, 예측 블록 내의 모든 픽셀이 동일한 값을 가지는 특징이 있다. 완만한 변화를 가지는 블록에서의 DC 모드를 사용한 예측 효율을 높이기 위해서, 비디오 신호 처리 장치는 블록 내 수직 또는 수평 위치에 따라 평균 값이 변화하도록 예측 블록을 생성할 수 있으며, 이를 변화도 기반 DC 예측 모드라 기술한다. 도 44를 참조하면, 수직 방향으로의 DC 모드를 사용하여 현재 블록에 대한 예측 블록이 생성될 때, 비디오 신호 처리 장치는 현재 블록에 상측으로 인접한 픽셀들(예를 들어, 도 444 빗금 친 픽셀들)의 평균 값을 계산한 후, 현재 블록의 첫 번째 수평 라인에 해당하는 픽셀들(예를 들어, 도 44의 1로 표시된 픽셀들)에 적용하여 예측 샘플을 생성할 수 있다. 다음으로, 현재 블록에 좌측으로 인접한 픽셀들 중 가장 위에 위치하는 참조 픽셀(A)와 다음 수평 라인의 참조 픽셀(B)간의 변화도에 따라 평균 값이 재계산될 수 있다. 비디오 신호 처리 장치는 재계산된 평균 값을 현재 블록의 두번째 수평 라인(예를 들어, 도 44의 2로 표시된 픽셀들)에 적용하여 예측 샘플을 생성할 수 있다. 두번째 수평 라인을 위한 평균값을 재계산하는 방법은 참조 픽셀(A)와 참조 픽셀(B) 간의 거리(L), 참조 픽셀(A)와 참조 픽셀(E) 간의 거리(M), 참조 픽셀(A)와 현재 블록의 좌측 하단 위치를 기준으로 (-1, -1)의 위치에 있는 픽셀(E) 간의 픽셀 값 간의 차이(X)를 사용한 보간법을 통해 계산될 수 있다. 예를 들어, L을 M으로 나눈 값에 X를 곱한 값을 평균값에 더하여 평균값은 재계산될 수 있다. 다음 번째 수평 라인도 동일하게 수행되어, 현재 블록에 대한 예측 샘플이 생성될 수 있다. 즉, 현재 블록에 좌측(또는 상측)으로 인접한 참조 픽셀들의 변화도에 따라 각각의 수평(또는 수직) 라인에 대한 평균 값이 변화되도록 현재 블록의 예측 블록은 생성될 수 있다. 각 수평(또는 수직) 방향의 샘플들의 화소(픽셀)값들은 서로 동일하도록 구성되며, 수직(또는 수평) 화소(픽셀)값들은 적어도 하나 이상이 달라지도록 현재 블록의 예측 블록이 생성될 수 있다. 또한 라인 단위 DC 예측 모드는 수직 방향으로의 라인 단위 DC 예측 모드, 수평 방향으로의 라인 단위 DC 예측 모드로 나누어질 수 있다. 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 현재 블록에 상측으로 인접한 화소(픽셀)의 개수가 많으므로, 수직 방향으로의 라인 단위 DC 예측 모드를 사용하여 현재 블록에 대한 예측 블록은 생성될 수 있다. 또는 현재 블록의 가로 및 세로의 크기가 같다면, 종래의 DC 예측 모드를 사용하여 현재 블록에 대한 예측 블록은 생성될 수 있다.The DC mode is a prediction method that generates a prediction block for a current block using only one average value, and has the characteristic that all pixels in the prediction block have the same value. In order to increase the prediction efficiency using the DC mode in a block with a gentle change, a video signal processing device can generate a prediction block so that the average value changes according to the vertical or horizontal position in the block, and this is described as a gradient-based DC prediction mode. Referring to FIG. 44, when a prediction block for a current block is generated using the DC mode in the vertical direction, the video signal processing device can calculate an average value of pixels adjacent to the current block upwardly (e.g., hatched pixels in FIG. 444) and then apply it to pixels corresponding to the first horizontal line of the current block (e.g., pixels indicated by 1 in FIG. 44) to generate a prediction sample. Next, the average value can be recalculated according to the gradient between the reference pixel (A) located at the topmost position among the pixels adjacent to the left of the current block and the reference pixel (B) of the next horizontal line. The video signal processing device can generate a prediction sample by applying the recalculated average value to the second horizontal line of the current block (for example, pixels indicated by 2 in FIG. 44). The method of recalculating the average value for the second horizontal line can be calculated through an interpolation method using the distance (L) between the reference pixel (A) and the reference pixel (B), the distance (M) between the reference pixel (A) and the reference pixel (E), and the difference (X) between the pixel values between the reference pixel (A) and the pixel (E) at the position (-1, -1) with respect to the lower left position of the current block. For example, the average value can be recalculated by multiplying the value obtained by dividing L by M by X and adding it to the average value. The same is performed for the next horizontal line, so that a prediction sample for the current block can be generated. That is, the prediction block of the current block can be generated such that the average value for each horizontal (or vertical) line changes according to the gradient of the reference pixels adjacent to the left (or upper) of the current block. The pixel values of the samples in each horizontal (or vertical) direction are configured to be the same, and the prediction block of the current block can be generated such that at least one vertical (or horizontal) pixel value is different. In addition, the line-wise DC prediction mode can be divided into the line-wise DC prediction mode in the vertical direction and the line-wise DC prediction mode in the horizontal direction. If the horizontal size of the current block is larger than the vertical size, since there are many pixels adjacent to the upper side of the current block, the prediction block for the current block can be generated using the line-wise DC prediction mode in the vertical direction. Alternatively, if the horizontal and vertical sizes of the current block are the same, the prediction block for the current block can be generated using the conventional DC prediction mode.
도 45는 본 발명의 일 실시예에 따른 수직 또는 수평 라인(line) 단위의 평면 예측 방법을 나타낸다.Figure 45 illustrates a plane prediction method in vertical or horizontal line units according to one embodiment of the present invention.
도 45(a) 내지 (d)를 참조하면, 수직 방향 평면 모드를 사용하여 현재 블록이 예측되는 경우, 사용되는 기준 참조 화소의 위치는 각 수평 라인마다 달라질 수 있다. 구체적으로, 현재 블록의 첫번째 수평 라인(도 45(a)에서 1로 표시된 픽셀들)은 현재 블록에 상측으로 인접한 픽셀들 (예를 들어, 도 45의 빗금 친 픽셀들)과 A 픽셀을 사용하여 예측될 수 있다. 현재 블록의 두번째 수평 라인(도 45(a)의 2로 표시된 픽셀들)은 현재 블록에 상측으로 인접한 픽셀들(예를 들어, 도 45의 빗금 친 픽셀들)과 B 픽셀을 사용하여 예측될 수 있다. 또한 라인 단위 평면 예측 모드는 수직 방향 평면 모드, 수평 방향 평면 모드, 수직 및 수평 방향으로의 예측 블록들을 가중치 평균한 모드로 나누어질 수 있다. 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 현재 블록에 상측으로 인접한 화소(픽셀)의 개수가 많으므로, 비디오 신호 처리 장치는 수직 방향 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로의 크기보다 크다면, 현재 블록에 좌측으로 인접한 화소(픽셀)의 개수가 많으므로, 비디오 신호 처리 장치는 수형 방향 평면 모드를 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 현재 블록의 가로 및 세로의 크기가 같다면, 비디오 신호 처리 장치는 종래의 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.Referring to Figs. 45(a) to (d), when the current block is predicted using the vertical direction planar mode, the position of the reference reference pixel used may vary for each horizontal line. Specifically, the first horizontal line of the current block (pixels indicated as 1 in Fig. 45(a)) can be predicted using pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 45) and the A pixel. The second horizontal line of the current block (pixels indicated as 2 in Fig. 45(a)) can be predicted using pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 45) and the B pixel. In addition, the line-by-line planar prediction mode can be divided into a vertical direction planar mode, a horizontal direction planar mode, and a mode that weights the average of prediction blocks in the vertical and horizontal directions. If the horizontal size of the current block is larger than the vertical size, since the number of pixels adjacent to the current block upwardly is larger, the video signal processing device can generate a prediction block for the current block using the vertical direction planar mode. If the vertical size of the current block is larger than the horizontal size, since there are more pixels adjacent to the left side of the current block, the video signal processing device can generate a prediction block for the current block using the planar mode in the vertical direction. If the horizontal and vertical sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the conventional planar mode.
도 46은 본 발명의 일 실시예에 따른 평면 모드를 사용한 서브 블록 단위의 예측 방법을 나타낸다.Figure 46 illustrates a sub-block unit prediction method using a planar mode according to one embodiment of the present invention.
비디오 신호 처리 장치는 현재 블록을 임의의 지정된 크기(MxN)의 서브 블록으로 분할한 후, 평면 모드를 사용하여 서브 블록 단위로 예측을 수행할 수 있다. 도 46(a) 내지 (c)를 참조하면, 예측을 위한 기준 참조 화소의 위치(도 46의 1, 2, 3, 4)는 각 서브 블록마다 달라질 수 있다. 구체적으로 도 46(a)를 참조하면, 현재 블록은 MxN 크기의 4개의 서브 블록으로 분할될 수 있다. 현재 서브 블록의 좌상단 위치 및/또는 현재 서브 블록의 가로 및 세로의 크기에 기초하여 기준 참조 화소의 위치는 결정될 수 있다. 도 46(a)에서 좌상단 서브 블록의 기준 참조 화소의 위치는 1, 3이 될 수 있고, 우상단 서브 블록의 기준 참조 화소의 위치는 2, 3이 될 수 있고, 좌하단 서브 블록의 기준 참조 화소의 위치는 1, 4가 될 수 있고, 우하단 서브 블록의 기준 참조 화소의 위치는 2, 4가 될 수 있다. 예를 들어, 도 46(a)의 우상단 서브 블록에 대한 예측 블록이 생성될 때, 평면 모드가 사용되는 경우, 비디오 신호 처리 장치는 V 픽셀 값과 기준 참조 화소 3을 사용하여 생성한 값과 H 픽셀 값과 기준 참조 화소 2를 사용하여 생성한 값을 가중치 평균하여 X 표시된 픽셀에 대한 예측 값을 생성할 수 있다. 도 46(b)는 서브 블록 단위의 수평 방향 평면 모드의 예측을 나타낸다. 예를 들어, 도 46(b)의 좌하단 서브 블록에 대한 예측 블록이 생성될 때, 수평 방향 평면 모드가 사용되는 경우, 비디오 신호 처리 장치는 H 픽셀 값과 기준 참조 화소 1을 사용하여 생성한 값을 가중치 평균하여 X 표시된 픽셀에 대한 예측 값을 생성할 수 있다. 도 46(c)는 서브 블록 단위의 수직 방향 평면 모드의 예측을 나타낸다. 예를 들어, 도 46(c)의 우상단 서브 블록에 대한 예측 블록이 생성될 때, 수직 방향 평면 모드가 사용되는 경우, 비디오 신호 처리 장치는 V 픽셀 값과 기준 참조 화소 3을 사용하여 생성한 값을 가중치 평균하여 X 표시된 픽셀에 대한 예측 값을 생성할 수 있다.A video signal processing device can divide a current block into sub-blocks of an arbitrary designated size (MxN), and then perform prediction on a sub-block basis using a planar mode. Referring to Figs. 46(a) to (c), positions of reference pixels for prediction (1, 2, 3, 4 in Fig. 46) may vary for each sub-block. Specifically, referring to Fig. 46(a), a current block may be divided into four sub-blocks of MxN size. Positions of reference pixels may be determined based on the upper left position of the current sub-block and/or the horizontal and vertical sizes of the current sub-block. In Fig. 46(a), positions of reference reference pixels of the upper left sub-block may be 1 and 3, positions of reference reference pixels of the upper right sub-block may be 2 and 3, positions of reference reference pixels of the lower left sub-block may be 1 and 4, and positions of reference reference pixels of the lower right sub-block may be 2 and 4. For example, when a prediction block for the upper right sub-block of Fig. 46(a) is generated, if the planar mode is used, the video signal processing device can generate a prediction value for the pixel indicated by X by performing a weighted average of a value generated using the V pixel value and the reference reference pixel 3 and a value generated using the H pixel value and the reference reference pixel 2. Fig. 46(b) shows prediction in the horizontal direction planar mode in units of sub-blocks. For example, when a prediction block for the lower left sub-block of Fig. 46(b) is generated, if the horizontal direction planar mode is used, the video signal processing device can generate a prediction value for the pixel indicated by X by performing a weighted average of a value generated using the H pixel value and the reference reference pixel 1. Fig. 46(c) shows prediction in the vertical direction planar mode in units of sub-blocks. For example, when a prediction block for the upper right sub-block of Fig. 46(c) is generated, if the vertical plane mode is used, the video signal processing device can generate a prediction value for the pixel indicated by X by weighting and averaging the values generated using the V pixel value and the reference reference pixel 3.
비디오 신호 처리 장치는 현재 블록의 가로 또는 세로 크기, 현재 블록의 가로 및 세로 크기의 비율, 현재 블록이 휘도 성분 블록인지 또는 색차 성분 블록인지 여부, 양자화 파라미터 정보, 현재 블록의 주변 블록들의 인트라 예측 방향성 모드 정보, 서브 블록의 위치, 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드 정보 중에서 적어도 하나 이상에 기초하여, 각 서브 블록에 수평 방향 평면 모드, 수직 방향 평면 모드 및 종래의 평면 모드 중 어떠한 평면 모드가 적용되는지 결정할 수 있다.A video signal processing device can determine which planar mode among a horizontal planar mode, a vertical planar mode, and a conventional planar mode is applied to each sub-block based on at least one of: a horizontal or vertical size of a current block, a ratio of the horizontal and vertical sizes of the current block, whether the current block is a luminance component block or a chrominance component block, quantization parameter information, intra prediction directional mode information of blocks surrounding the current block, a position of a sub-block, and intra prediction directional mode information derived from pixels surrounding the current block using DIMD.
현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 임의의 값보다 크거나 같다면, 비디오 신호 처리 장치는 수직 방향 평면 모드를 적용하여 서브 블록의 예측 블록을 생성할 수 있다. 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 임의의 값보다 작다면, 비디오 신호 처리 장치는 수평 방향 평면 모드를 적용하여 서브 블록의 예측 블록을 생성할 수 있다. 이때, 임의의 값은 정수일 수 있고, 대각 모드(도 6의 34번 각도 모드)의 인덱스인 34일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보에는 첫번째 인트라 예측 방향성 모드, 두번째 인트라 예측 방향성 모드, 가중치 예측을 수행할지 여부에 대한 정보가 포함될 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보가 가중치 예측이 수행되지 않는 것을 나타내는 경우 비디오 신호 처리 장치는 종래의 평면 모드를 사용하여 각 서브 블록의 예측 블록을 생성할 수 있다.If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to an arbitrary value, the video signal processing device can generate a prediction block of the sub-block by applying a vertical planar mode. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is less than an arbitrary value, the video signal processing device can generate a prediction block of the sub-block by applying a horizontal planar mode. At this time, the arbitrary value can be an integer and can be 34, which is an index of a diagonal mode (angle mode 34 of FIG. 6). The DIMD information derived from the surrounding pixels of the current block can include a first intra prediction directional mode, a second intra prediction directional mode, and information on whether to perform weighted prediction. If the DIMD information derived from the surrounding pixels of the current block indicates that weighted prediction is not performed, the video signal processing device can generate a prediction block of each sub-block by using a conventional planar mode.
각 서브 블록의 위치에 기초하여 각 서브 블록의 예측 블록을 생성하기 위해 사용되는 평면 모드가 결정될 수 있다. 비디오 신호 처리 장치는 종래의 평면 모드를 사용하여 좌상단 서브 블록의 예측 블록을 생성할 수 있고, 수직 방향 평면 모드를 사용하여 우상단 서브 블록의 예측 블록을 생성할 수 있고, 수평 방향 평면 모드를 사용하여 좌하단 서브 블록의 예측 블록을 생성할 수 있고, 종래의 펴면 모드를 사용하여 우하단 서브 블록의 예측 블록을 생성할 수 있다.Based on the position of each sub-block, a planar mode used to generate a prediction block of each sub-block can be determined. The video signal processing device can generate a prediction block of an upper-left sub-block using a conventional planar mode, can generate a prediction block of an upper-right sub-block using a vertical planar mode, can generate a prediction block of a lower-left sub-block using a horizontal planar mode, and can generate a prediction block of a lower-right sub-block using a conventional flat mode.
현재 블록에 대해 수직 방향 또는 수평 방향 평면 모드가 적용된 경우에만, 서브 블록 단위의 평면 모드 예측 방법이 적용될 수 있다. 다시 말하면, 현재 블록에 종래의 평면 모드가 적용된 경우, 비디오 신호 처리 장치는 종래의 평면 모드를 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 현재 블록에 수직 방향 또는 수평 방향 평면 모드가 사용된 경우, 비디오 신호 처리 장치는 현재 블록을 서브 블록들로 분할하고, 수직 방향 또는 수평 방향 평면 모드를 사용하여 각 서브 블록의 예측 블록을 생성할 수 있다.A planar mode prediction method per sub-block can be applied only when a vertical or horizontal planar mode is applied to the current block. In other words, when a conventional planar mode is applied to the current block, a video signal processing device can generate a prediction block of the current block using the conventional planar mode. When a vertical or horizontal planar mode is used for the current block, a video signal processing device can divide the current block into sub-blocks and generate a prediction block of each sub-block using the vertical or horizontal planar mode.
현재 블록의 첫번째 수평 라인(도 44(a)에서 1로 표시된 픽셀들)은 현재 블록에 상측으로 인접한 픽셀들 (예를 들어, 도 44의 빗금 친 픽셀들)과 A 픽셀을 사용하여 예측될 수 있다. 마찬가지로 현재 블록의 두번째 수평 라인(도 44(a)에서 2로 표시된 픽셀들)은 현재 블록에 상측으로 인접한 픽셀들 (예를 들어, 도 44의 빗금 친 픽셀들)과 B 픽셀을 사용하여 예측될 수 있다. 또한 라인 단위 평면 모드는 수직 방향 평면 모드, 수평 방향 평면 모드, 수직 및 수평 방향으로의 예측 블록들을 가중치 평균한 예측 모드로 나누어질 수 있다. 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 현재 블록에 인접한 상단 화소(픽셀)의 개수가 많으므로, 비디오 신호 처리 장치는 수직 방향 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로의 크기보다 크다면, 현재 블록에 좌측으로 인접한 화소(픽셀)의 개수가 많으므로, 비디오 신호 처리 장치는 수평 방향 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 가로 및 세로 크기가 같다면, 비디오 신호 처리 장치는 종래의 평면 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.The first horizontal line of the current block (pixels indicated as 1 in Fig. 44(a)) can be predicted using the pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 44) and the A pixel. Similarly, the second horizontal line of the current block (pixels indicated as 2 in Fig. 44(a)) can be predicted using the pixels adjacent to the current block upwardly (e.g., the hatched pixels in Fig. 44) and the B pixel. In addition, the line-by-line planar mode can be divided into a vertical planar mode, a horizontal planar mode, and a weighted-average prediction mode of prediction blocks in the vertical and horizontal directions. If the horizontal size of the current block is larger than the vertical size, since the number of upper pixels adjacent to the current block is larger, the video signal processing device can generate a prediction block for the current block using the vertical planar mode. If the vertical size of the current block is larger than the horizontal size, since there are more pixels adjacent to the left side of the current block, the video signal processing device can generate a prediction block for the current block using the horizontal planar mode. If the horizontal and vertical sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the conventional planar mode.
평면 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 수직 방향 평면 모드를 사용하여 예측 블록을 생성하고, 수평 방향 평면 모드를 사용하여 예측 블록을 생성하고, 각각의 예측 블록을 가중치 평균하여 최종 예측 블록을 생성할 수 있다. 이때, 가중치는 동일하거나 상이할 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 크거나 같다면, 수직 방향 평면 모드를 사용하여 예측되는 블록의 가중치가 가장 클 수 있다. 수직 방향 평면 모드를 사용하여 예측된 블록의 가중치는 3일 수 있고, 수평 방향 평면 모드를 사용하여 예측된 블록의 가중치는 1일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD의 인트라 예측 방향성 모드가 임의의 값보다 작다면, 수평 방향 평면 모드를 사용하여 예측된 블록의 가중치가 가장 클 수 있다. 수평 방향 평면 모드로 예측된 블록의 가중치는 3일 수 있고, 수직 방향 평면 모드로 예측된 블록의 가중치는 1일 수 있다. 여기서 임의의 값은 정수로, 대각 모드(도 6의 34번 각도 모드)의 인덱스인 34일 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보에는 첫번째 인트라 예측 방향성 모드, 두번째 인트라 예측 방향성 모드, 가중치 예측을 수행할지 여부 정보가 포함될 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 정보가 가중치 예측이 적용되지 않음을 나타내는 경우, 비디오 신호 처리 장치는 각 예측 블록에 대해 동일한 가중치를 적용할 수 있다. 여기서 수직 방향 평면 모드를 사용하여 생성되는 예측 블록과 수평 방향 평면 모드를 사용하여 생성되는 예측 블록은 서브 블록 기반의 평면 모드 예측 방법이 사용되어 생성될 수 있다.When the prediction block of the current block is generated using the planar mode, the video signal processing device may generate the prediction block using the vertical planar mode, generate the prediction block using the horizontal planar mode, and generate the final prediction block by weighting and averaging the respective prediction blocks. At this time, the weights may be the same or different. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is greater than or equal to an arbitrary value, the weight of the block predicted using the vertical planar mode may be the largest. The weight of the block predicted using the vertical planar mode may be 3, and the weight of the block predicted using the horizontal planar mode may be 1. If the intra prediction directional mode of the DIMD derived from the surrounding pixels of the current block is less than an arbitrary value, the weight of the block predicted using the horizontal planar mode may be the largest. The weight of the block predicted by the horizontal planar mode may be 3, and the weight of the block predicted by the vertical planar mode may be 1. Here, any value is an integer, and may be 34, which is an index of the diagonal mode (angle mode 34 in FIG. 6). DIMD information derived from surrounding pixels of the current block may include a first intra prediction directional mode, a second intra prediction directional mode, and information on whether to perform weighted prediction. If the DIMD information derived from surrounding pixels of the current block indicates that weighted prediction is not applied, the video signal processing device may apply the same weight to each prediction block. Here, the prediction block generated using the vertical direction planar mode and the prediction block generated using the horizontal direction planar mode may be generated using a sub-block-based planar mode prediction method.
DC 모드를 사용하는 예측은 저비트율에서 블록 간 경계에서 불연속적인 에지를 발생시키는 문제가 있다. 이러한 문제를 개선하기 위해서, 비디오 신호 처리 장치는 DC 모드를 통해 생성된 현재 블록의 예측 블록에 임의의 오프셋 값을 더하여 예측 블록에 대한 보정을 수행할 수 있다. 이때, 임의의 오프셋 값에 대한 정보는 비트스트림에 포함되어 명시적으로 시그널링되거나 묵시적으로 현재 블록에 인접한 주변 화소 값들로부터 유도될 수 있다. 디코더는 임의의 오프셋 값에 대한 정보를 파싱하여 획득되는 오프셋 값에 기초하여 현재 블록의 예측 블록에 대한 보정을 수행할 수 있다. 또는 디코더는 현재 블록에 인접한 주변 화소 값들로부터 오프셋 값을 유도하여 현재 블록의 예측 블록에 대한 보정을 수행할 수 있다. 또는, 현재 블록의 예측 블록은 평면 모드를 사용하여 예측되는 블록과 DC 모드를 사용하여 예측되는 블록을 가중치 평균하여 생성될 수 있다.Prediction using the DC mode has a problem of generating discontinuous edges at the boundary between blocks at low bit rates. To improve this problem, a video signal processing device can perform compensation on a prediction block of a current block generated using the DC mode by adding an arbitrary offset value. At this time, information on the arbitrary offset value can be explicitly signaled by being included in a bitstream or can be implicitly derived from neighboring pixel values adjacent to the current block. A decoder can perform compensation on a prediction block of the current block based on an offset value obtained by parsing information on the arbitrary offset value. Alternatively, the decoder can perform compensation on a prediction block of the current block by deriving an offset value from neighboring pixel values adjacent to the current block. Alternatively, a prediction block of the current block can be generated by weighting an average of a block predicted using the planar mode and a block predicted using the DC mode.
3가지 평면 모드 또는 3가지 DC 모드는 템플릿에 기초하여 유도될 수 있다. 먼저, 비디오 신호 처리 장치는 현재 블록에 인접한 복원된 주변 블록을 포함하는 기준 템플릿을 구성할 수 있다(도 23 참조). 그리고 비디오 신호 처리 장치는 기준 템플릿 주변의 참조 픽셀을 사용하여 3가지 평면 모드들에 대한 예측 템플릿을 구성할 수 있다. 비디오 신호 처리 장치는 기준 템플릿과 예측 템플릿 간의 코스트를 계산한 후, 최소 코스트를 나타내는 평면 예측 모드를 사용하여 현재 블록의 예측 블록을 생성할 수 있다. The three planar modes or the three DC modes can be derived based on the templates. First, the video signal processing device can construct a reference template including reconstructed neighboring blocks adjacent to the current block (see FIG. 23). Then, the video signal processing device can construct a prediction template for the three planar modes using reference pixels around the reference template. After calculating a cost between the reference template and the prediction template, the video signal processing device can generate a prediction block of the current block using the planar prediction mode indicating the minimum cost.
또한, 비디오 신호 처리 장치는 현재 블록에 인접한 복원된 주변 블록을 포함하는 기준 템플릿을 구성할 수 있다(도 23 참조). 그리고 비디오 신호 처리 장치는 기준 템플릿 주변의 참조 픽셀을 사용하여 3가지 평면 모드들에 대한 예측 템플릿을 구성할 수 있다. 비디오 신호 처리 장치는 기준 템플릿과 예측 템플릿 간의 코스트를 계산한 후, 코스트를 기반으로 평면 모드에 대한 리스트를 구성할 수 있다. 이때 가장 작은 코스트를 가지는 평면 모드가 리스트의 가장 처음에 위치할 수 있고, 코스트에 따라 오름차순으로 리스트가 구성될 수 있다. 인코더는 리스트 내의 평면 모드들 중 현재 블록의 예측 블록을 생성하기 위한 최적의 평면 모드에 대한 인덱스 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 인덱스 정보를 파싱하여 결정되는 평면 모드를 사용하여 현재 블록의 예측 블록을 생성할 수 있다.In addition, the video signal processing device can configure a reference template including reconstructed surrounding blocks adjacent to the current block (see FIG. 23). And the video signal processing device can configure a prediction template for three planar modes using reference pixels around the reference template. The video signal processing device can calculate a cost between the reference template and the prediction template, and then configure a list for planar modes based on the cost. At this time, a planar mode with the smallest cost can be located at the beginning of the list, and the list can be configured in ascending order according to the cost. The encoder can generate and signal a bitstream including index information on an optimal planar mode for generating a prediction block of the current block among the planar modes in the list. The decoder can generate a prediction block of the current block using the planar mode determined by parsing the index information.
상술한 템플릿 기반 평면 모드 유도 방법은 3가지 DC 모드에도 동일하게 적용될 수 있다.The above-described template-based planar mode induction method can be equally applied to the three DC modes.
도 47은 본 발명의 일 실시예에 따른 양방향 예측 기반의 인트라 예측 방법을 나타낸다.Figure 47 illustrates an intra prediction method based on bidirectional prediction according to one embodiment of the present invention.
비디오 신호 처리 장치가 현재 블록을 인트라 예측 모드로 부호화하는 경우, 현재 블록의 좌측 또는 상측의 화소들은 복원된 현재 블록의 주변 화소들과 인접해 있으므로, 효과적으로 예측될 수 있다. 그러나, 현재 블록의 우측 또는 하측의 화소들은 주변에 인접한 화소가 아직 복원되지 않았으므로 예측 효율이 낮다. 즉, 현재 블록의 우하단에 위치한 화소일수록 참조 화소(복원된 현재 블록의 주변 화소)와의 거리가 멀어지므로 오차 신호가 많아진다. 이러한 문제를 개선하기 위해서, 도 47과 같이, 비디오 신호 처리 장치는 현재 블록의 우하측에 위치한 하나의 화소만을 미리 복원한 후, 복원된 우하단 화소와 현재 블록에 인접한 주변 화소들을 기반으로 현재 블록의 예측 블록을 생성할 수 있다. 이때, 현재 블록의 우하측에 위치한 화소는 현재 블록에 인접한 화소로부터 예측되어 부호화될 수 있고, 현재 블록의 우하측에 위치한 화소값과 예측값 간의 차이인 차분값에 대한 정보는 비트스트림에 포함되어 시그널링될 수 있다. 디코더는 차분값에 대한 정보를 파싱하여 결정되는 차분값을 사용하여 현재 블록의 우하측에 위치한 화소를 복원할 수 있다. 다음으로, 비디오 신호 처리 장치는 현재 블록에 인접한 화소들과 현재 블록의 우하측에 위치한 하나의 화소를 사용하여 현재 블록의 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 현재 블록에 인접한 화소들과 현재 블록의 우하측에 위치한 하나의 화소를 사용하여 현재 블록의 우측 화소들(도 47의 1로 표시된 화소들)과 하측 화소들 (도 47의 2로 표시된 화소들)을 예측한 후, 현재 블록에 인접한 화소들과 현재 블록 내의 하측 화소들과 우측 화소들을 사용하여 현재 블록의 예측 블록을 생성할 수 있다.When a video signal processing device encodes a current block in an intra prediction mode, pixels on the left or upper side of the current block can be effectively predicted because they are adjacent to the surrounding pixels of the restored current block. However, pixels on the right or lower side of the current block have low prediction efficiency because the surrounding pixels have not yet been restored. In other words, the distance from the reference pixel (the surrounding pixel of the restored current block) increases as the pixel is located at the lower right of the current block, so the error signal increases. In order to improve this problem, as shown in FIG. 47, the video signal processing device can restore only one pixel located at the lower right of the current block in advance, and then generate a prediction block of the current block based on the restored lower right pixel and the surrounding pixels adjacent to the current block. At this time, the pixel located at the lower right of the current block can be predicted and encoded from the pixels adjacent to the current block, and information on the difference value, which is the difference between the pixel value located at the lower right of the current block and the predicted value, can be included in the bitstream and signaled. The decoder can reconstruct the pixel located at the lower right of the current block by using the differential value determined by parsing the information about the differential value. Next, the video signal processing device can generate a prediction block of the current block by using the pixels adjacent to the current block and one pixel located at the lower right of the current block. The video signal processing device can predict the right pixels (pixels indicated by 1 in FIG. 47) and lower pixels (pixels indicated by 2 in FIG. 47) of the current block by using the pixels adjacent to the current block and one pixel located at the lower right of the current block, and then generate a prediction block of the current block by using the pixels adjacent to the current block and the lower pixels and right pixels in the current block.
코딩 효율을 높이기 위하여 전술한 잔여 신호를 그대로 코딩하는 것이 아니라, 잔여 신호를 변환하여 획득된 변환 계수 값을 양자화하고, 양자화된 변환 계수를 코딩하는 방법이 사용될 수 있다. 전술한 바와 같이, 변환부는 잔여 신호를 변환하여 변환 계수 값을 획득할 수 있다. 이때, 특정 블록의 잔여 신호는 현재 블록의 전 영역에 분산되어 있을 수 있다. 이에 따라, 잔여 신호에 대한 주파수 영역 변환을 통해 저주파 영역에 에너지를 집중시켜 코딩 효율을 향상시킬 수 있다. In order to improve coding efficiency, instead of directly coding the aforementioned residual signal, a method of quantizing the transform coefficient values obtained by transforming the residual signal and coding the quantized transform coefficients can be used. As described above, the transform unit can obtain the transform coefficient values by transforming the residual signal. At this time, the residual signal of a specific block can be distributed over the entire area of the current block. Accordingly, the coding efficiency can be improved by concentrating energy in the low-frequency area through frequency domain transformation of the residual signal.
인코더는 현재 블록에 대한 잔여 신호를 포함하는 적어도 하나의 잔여 블록을 획득할 수 있다. 잔여 블록은 현재 블록 또는 현재 블록으로부터 분할된 블록들 중 어느 하나일 수 있다. 본 명세서에서, 잔여 블록은 현재 블록의 잔여 샘플들을 포함하는 잔여 어레이(array) 또는 잔여 매트릭스(matrix)로 기술될 수 있다. 또한 본 명세서에서 잔여 블록은 변환 유닛 또는 변환 블록의 크기와 동일한 크기의 블록을 나타낼 수 있다.The encoder can obtain at least one residual block containing a residual signal for the current block. The residual block can be either the current block or one of the blocks split from the current block. In this specification, the residual block can be described as a residual array or a residual matrix containing residual samples of the current block. In addition, in this specification, the residual block can represent a block having the same size as the size of a transform unit or a transform block.
인코더는 변환 커널을 사용하여 잔여 블록을 변환할 수 있다. 잔여 블록에 대한 변환에 사용되는 변환 커널은 수직 변환 및 수평 변환의 분리 가능한 특성을 가지는 변환 커널일 수 있다. 이 경우, 잔여 블록에 대한 변환은 수직 변환 및 수평 변환으로 분리되어 수행될 수 있다. 예를 들어, 인코더는 잔여 블록의 수직 방향으로 변환 커널을 적용하여 수직 변환을 수행할 수 있다. 또한, 인코더는 잔여 블록의 수평 방향으로 변환 커널을 적용하여 수평 변환을 수행할 수 있다. 본 명세서에서, 변환 커널은 변환 매트릭스, 변환 어레이, 변환 함수, 변환과 같이 잔여 신호의 변환에 사용되는 파라미터 세트를 지칭하는 용어로 사용될 수 있다. 일 실시예에 따라, 변환 커널은 복수의 사용 가능한 커널들 중 어느 하나일 수 있다. 또한, 수직 변환 및 수평 변환 각각에 대해 서로 다른 변환 타입에 기반한 변환 커널이 사용될 수도 있다. 즉, 1차 변환을 수행하기 전에, 현재 블록의 인트라 예측 모드, 부호화 모드, 비트스트림으로부터 파싱된 변환 방법, 현재 블록의 크기 정보 중에서 적어도 하나 이상을 사용하여 수직 및 수평 방향에 대한 변환 방법이 유도될 수 있다. 또한, 크기가 큰 블록에 대하여 변환 과정에서의 계산 복잡도를 감소시키기 위하여 저주파 영역만을 남기고 고주파 영역은 '0'로 처리하는 과정이 수행될 수 있다. 이러한 과정을 고주파 제로화(zeroing)라고 하며, 이러한 제로화를 위해서 실제 1차 변환 시의 변환 크기가 설정될 수 있다. 고주파 제로화 과정에서 저주파 영역은 임의의 정해진 크기로 설정될 수 있으며, 예를 들어, 가로 또는 세로의 크기는 4, 8, 16, 32 등의 조합이 될 수 있다. The encoder can transform the residual block using a transform kernel. The transform kernel used for transforming the residual block can be a transform kernel having separable characteristics of vertical transform and horizontal transform. In this case, the transform for the residual block can be performed separately as vertical transform and horizontal transform. For example, the encoder can perform vertical transform by applying the transform kernel in the vertical direction of the residual block. In addition, the encoder can perform horizontal transform by applying the transform kernel in the horizontal direction of the residual block. In this specification, the transform kernel may be used as a term referring to a set of parameters used for transforming the residual signal, such as a transform matrix, a transform array, a transform function, and a transform. According to one embodiment, the transform kernel may be any one of a plurality of available kernels. In addition, transform kernels based on different transform types may be used for each of the vertical transform and the horizontal transform. That is, before performing the first transformation, the transformation method for the vertical and horizontal directions can be derived using at least one or more of the intra prediction mode of the current block, the encoding mode, the transformation method parsed from the bitstream, and the size information of the current block. In addition, in order to reduce the computational complexity in the transformation process for a large block, a process of leaving only the low-frequency region and processing the high-frequency region as '0' can be performed. This process is called high-frequency zeroing, and the transformation size at the time of the actual first transformation can be set for this zeroing. In the high-frequency zeroing process, the low-frequency region can be set to an arbitrary fixed size, and for example, the horizontal or vertical sizes can be a combination of 4, 8, 16, 32, etc.
인코더는 잔여 블록으로부터 변환된 변환 블록을 양자화부로 전달하여 양자화할 수 있다. 이때, 변환 블록은 복수의 변환 계수들을 포함할 수 있다. 구체적으로, 변환 블록은 2차원 배열된 복수의 변환 계수들로 구성될 수 있다. 변환 블록의 크기는 잔여 블록과 마찬가지로 현재 블록 또는 현재 블록으로부터 분할된 블록 중 어느 하나와 동일할 수 있다. 양자화부로 전달된 변환 계수들은 양자화된 값으로 표현될 수 있다.The encoder can quantize the transform block transformed from the residual block by transferring it to the quantization unit. At this time, the transform block can include a plurality of transform coefficients. Specifically, the transform block can be composed of a plurality of transform coefficients arranged in two dimensions. The size of the transform block can be the same as that of the current block or one of the blocks split from the current block, similar to the residual block. The transform coefficients transferred to the quantization unit can be expressed as quantized values.
또한, 인코더는 변환 계수가 양자화되기 전에 추가적인 변환을 수행할 수 있다. 전술한 변환 방법은 1차 변환(primary transform)으로 지칭되고, 추가적인 변환은 2차 변환(secondary transform)으로 지칭될 수 있다. 2차 변환은 잔여 블록 별로 선택적일 수 있다. 일 실시예에 따라, 인코더는 1차 변환만으로 저주파 영역에 에너지를 집중시키기 어려운 영역에 대해 2차 변환을 수행하여 코딩 효율을 향상시킬 수 있다. 예를 들어, 잔여 값들이 잔여 블록의 수평 또는 수직 방향 이외의 방향에서 크게 나타나는 블록에 대해 2차 변환이 추가될 수 있다. 인트라 예측된 블록의 잔여 값들은 인터 예측된 블록의 잔여 값들에 비해 수평 또는 수직 방향 이외의 방향으로 변화할 확률이 높을 수 있다. 이에 따라, 인코더는 인트라 예측된 블록의 잔여 신호에 대해 2차 변환을 추가적으로 수행할 수 있다. 또한, 인코더는 인터 예측된 블록의 잔여 신호에 대해 2차 변환을 생략할 수 있다. 2차 변환 과정에서도 1차 변환에서의 고주파 제로화가 수행될 수 있다.In addition, the encoder may perform an additional transform before the transform coefficients are quantized. The above-described transform method may be referred to as a primary transform, and the additional transform may be referred to as a secondary transform. The secondary transform may be optional for each residual block. In one embodiment, the encoder may perform the secondary transform for a region where it is difficult to concentrate energy in a low-frequency region with only the primary transform, thereby improving coding efficiency. For example, the secondary transform may be added for a block in which the residual values appear largely in a direction other than the horizontal or vertical direction of the residual block. The residual values of the intra-predicted block may have a higher probability of changing in a direction other than the horizontal or vertical direction compared to the residual values of the inter-predicted block. Accordingly, the encoder may additionally perform the secondary transform on the residual signal of the intra-predicted block. In addition, the encoder may omit the secondary transform on the residual signal of the inter-predicted block. High-frequency zeroing in the first conversion can also be performed in the second conversion process.
다른 예로, 현재 블록 또는 잔여 블록의 크기에 따라, 2차 변환 수행 여부가 결정될 수 있다. 또한, 현재 블록 또는 잔여 블록의 크기에 따라 크기가 서로 다른 변환 커널이 사용될 수 있다. 예를 들어, 너비 또는 높이 중 짧은 변의 길이가 제1 기 설정된 길이 보다 크거나 같은 블록에 대해서는 8X8 2차 변환이 적용될 수 있다. 또한, 너비 또는 높이 중 짧은 변의 길이가 제2 기 설정된 길이 보다 크거나 같고, 제1 기 설정된 길이 보다 작은 블록에 대해서는 4X4 2차 변환이 적용될 수 있다. 이때, 제1 기 설정된 길이는 제2 기 설정된 길이 보다 큰 값일 수 있으나, 본 개시가 이에 제한되는 것은 아니다. 또한, 2차 변환은 1차 변환과 달리 수직 변환 및 수평 변환으로 분리되어 수행되지 않을 수 있다. 이러한 2차 변환은 저대역 비-분리 변환(Low Frequency Non-Separable Transform, LFNST)으로 지칭될 수 있다.As another example, whether to perform a secondary transform may be determined based on the size of the current block or the remaining block. In addition, different sizes of transform kernels may be used based on the size of the current block or the remaining block. For example, an 8X8 secondary transform may be applied to a block whose shorter side among the width or the height is greater than or equal to a first preset length. In addition, a 4X4 secondary transform may be applied to a block whose shorter side among the width or the height is greater than or equal to a second preset length and less than the first preset length. In this case, the first preset length may be a value greater than the second preset length, but the present disclosure is not limited thereto. In addition, unlike the first transform, the secondary transform may not be performed separately into a vertical transform and a horizontal transform. Such a secondary transform may be referred to as a low frequency non-separable transform (LFNST).
또한, 특정 영역의 비디오 신호의 경우, 급격한 밝기 변화로 인해 주파수 변환을 수행하여도 고주파 대역 에너지가 줄어들지 않을 수 있다. 이에 따라, 양자화에 의한 압축 성능이 저하될 수 있다. 또한, 잔여 값이 드물게 존재하는 영역에 대해 변환을 수행하는 경우, 인코딩 시간 및 디코딩 시간이 불필요하게 증가할 수 있다. 이에 따라, 특정 영역의 잔여 신호에 대한 변환은 생략될 수 있다. 특정 영역의 잔여 신호에 대한 변환 수행 여부는 특정 영역의 변환과 관련된 신택스 요소에 의해 결정될 수 있다. 예를 들어, 상기 신택스 요소는 변환 스킵 정보(transform skip information)를 포함할 수 있다. 변환 스킵 정보는 변환 스킵 플래그(transform skip flag)일 수 있다. 잔여 블록에 대한 변환 스킵 정보가 변환 스킵을 나타내는 경우, 해당 잔여 블록에 대한 변환이 수행되지 않는다. 이 경우, 인코더는 해당 영역의 변환이 수행되지 않은 잔여 신호를 곧바로 양자화할 수 있다.In addition, for a video signal of a specific area, even if a frequency transform is performed due to a rapid change in brightness, the high-frequency band energy may not be reduced. Accordingly, the compression performance by quantization may deteriorate. In addition, when a transform is performed on an area where residual values rarely exist, the encoding time and decoding time may unnecessarily increase. Accordingly, the transform for the residual signal of the specific area may be omitted. Whether to perform a transform for the residual signal of the specific area may be determined by a syntax element related to the transform of the specific area. For example, the syntax element may include transform skip information. The transform skip information may be a transform skip flag. If the transform skip information for the residual block indicates a transform skip, the transform for the corresponding residual block is not performed. In this case, the encoder can immediately quantize the residual signal for which the transform of the corresponding area is not performed.
전술한 변환 관련 신택스 요소들은 비디오 신호 비트스트림으로부터 파싱된 정보일 수 있다. 디코더는 비디오 신호 비트스트림을 엔트로피 디코딩하여 변환 관련 신택스 요소들을 획득할 수 있다. 또한, 인코더는 변환 관련 신택스 요소들을 엔트로피 코딩하여 비디오 신호 비트스트림을 생성할 수 있다.The aforementioned transformation-related syntax elements may be information parsed from a video signal bitstream. A decoder may entropy decode a video signal bitstream to obtain transformation-related syntax elements. In addition, an encoder may entropy code transformation-related syntax elements to generate a video signal bitstream.
디코더에서는 전송된 비트스트림을 파싱하여 디코딩하는데 필요한 부호화 정보들을 획득할 수 있다. 이 때 변환 과정과 관련된 정보에는 1차 및 2차 변환 타입에 대한 인덱스 정보 및 양자화된 변환 계수 등이 있다. 역변환부는 역양자화된 변환 계수를 역변환하여 잔여 신호를 획득할 수 있다. 먼저, 역변환부는 특정 영역의 변환 관련 신택스 요소로부터 해당 영역에 대한 역변환이 수행되는지 검출할 수 있다. 일 실시예에 따라, 특정 변환 블록에 대한 변환 관련 신택스 요소가 변환 스킵을 나타내는 경우, 해당 변환 블록에 대한 변환이 생략될 수 있다. 이 경우, 변환 블록에 대해 1차 역변환 및 2차 역변환이 모두 생략될 수 있다. 또한, 역양자화된 변환 계수는 잔여 신호로 사용될 수 있다. 예를 들어, 디코더는 역양자화된 변환 계수를 잔여 신호로 사용하여 현재 블록을 복원할 수 있다. 혹은 2차 역변환은 수행되고 1차 역변환은 생략될 수 있으며, 2차 역변환된 값이 잔여 신호로 사용될 수 있다. 전술한 1차 역변환은 1차 변환에 대한 역변환을 나타내며, 역 1차 변환(inverse primary transform)으로 지칭될 수 있다. 2차 역변환은 2차 변환에 대한 역변환을 나타내며, 역 2차 변환(inverse secondary transform) 또는 inverse LFNST로 지칭될 수 있다. 본 발명에서 1차 (역)변환은 제1 (역)변환으로 지칭될 수 있으며, 2차 (역)변환은 제2 (역)변환으로 지칭될 수 있다.The decoder can obtain encoding information necessary for decoding by parsing the transmitted bitstream. At this time, information related to the transformation process includes index information for the first and second transformation types and quantized transformation coefficients. The inverse transformation unit can obtain a residual signal by inversely transforming the inverse quantized transformation coefficients. First, the inverse transformation unit can detect whether inverse transformation is performed for a specific region from a transformation-related syntax element of the specific region. According to one embodiment, if a transformation-related syntax element for a specific transformation block indicates transformation skip, transformation for the corresponding transformation block can be omitted. In this case, both the first inverse transformation and the second inverse transformation can be omitted for the transformation block. In addition, the inverse quantized transformation coefficients can be used as a residual signal. For example, the decoder can restore the current block by using the inverse quantized transformation coefficients as a residual signal. Alternatively, the second inverse transform may be performed and the first inverse transform may be omitted, and the second inverse transformed value may be used as the residual signal. The first inverse transform described above represents an inverse transform for the first transform and may be referred to as an inverse primary transform. The second inverse transform represents an inverse transform for the second transform and may be referred to as an inverse secondary transform or inverse LFNST. In the present invention, the first (inverse) transform may be referred to as a first (inverse) transform, and the second (inverse) transform may be referred to as a second (inverse) transform.
도 48은 본 발명의 일 실시예에 따른 비디오 코딩에 사용될 수 있는 변환 커널 종류를 나타낸다.Figure 48 shows types of transform kernels that can be used for video coding according to one embodiment of the present invention.
도 48은 MTS에 적용되는 DCT-II, DCT-V (discrete cosine transform type-V), DCT-VIII (discrete cosine transform type-VIII), DST-I (discrete sine transform type-I), DST-VII 커널의 수식을 나타낸 것이다. DCT와 DST는 각각 cosine, sine의 함수로 표현이 가능하며, 샘플 수 N에 대한 변환 커널의 기저 함수를 Ti(j)로 표현할 경우, 인덱스 i는 주파수 도메인에서의 인덱스를 나타내며, 인덱스 j는 기저 함수 내의 인덱스를 나타낸다. 즉, i가 작아질수록 저주파 기저 함수를 나타내며, i가 커질수록 고주파 기저 함수를 나타낸다. 기저 함수 Ti(j)는 2차원 행렬로 표현했을 때, i 번째 행의 j 번째 요소를 나타낼 수 있으며, 도 48에 도시한 변환 커널은 모두 분리 가능한 특성을 가지고 있으므로, 잔차 신호 X에 대하여 가로 방향과 세로 방향에 각각 변환을 수행할 수 있다. 즉, 잔차 신호 블록을 X라 하고, 변환 커널 행렬을 T라 했을 때, 잔차 신호 X에 대한 변환은 TXT'으로 나타낼 수 있다. 이때, T'는 변환 커널 행렬 T의 전치행렬 (transpose)를 의미한다. DCT와 DST는 정수가 아닌 소수 형태이므로, 이를 그대로 하드웨어 부호화기, 복호화기에 구현하기에는 부담이 따른다. 따라서 소수 형태의 변환 커널에 scaling과 rounding을 통해 정수 형태의 변환 커널로 근사화시켜야 한다. 변환 커널의 정수 정밀도는 8-bit 또는 10-bit로 결정될 수 있으나, 정밀도가 떨어질 경우, 부호화 효율이 감소할 수 있다. 근사화에 따라 DCT와 DST의 정규 직교 (orthonormal) 성질은 유지되지 않을 수 있으나, 이에 따른 부호화 효율 손실이 크지 않으므로, 변환 커널을 정수 형태로 근사화 시키는 것이 하드웨어 부호화기, 복호화기 구현 측면에서 유리하다. IDTR(Identity Transform)은 변환의 결과가 변환 전의 자기 자신이 나오는 변환으로, 항등변환이라고 한다. 일반적으로 항등변환은 행과 열이 동일한 값을 가지는 위치에 '1'을 설정하여 변환 매트릭스를 구성한다. 하지만, 여기서 항등변환은 '1'값이 아닌 임의의 고정된 값을 사용하여, 입력된 잔차 신호의 값을 동일하게 높이거나 줄이는데 사용한다.Fig. 48 shows formulas of DCT-II, DCT-V (discrete cosine transform type-V), DCT-VIII (discrete cosine transform type-VIII), DST-I (discrete sine transform type-I), and DST-VII kernels applied to MTS. DCT and DST can be expressed as functions of cosine and sine, respectively, and when the basis function of the transform kernel for the number of samples N is expressed as Ti(j), the index i represents an index in the frequency domain, and the index j represents an index within the basis function. That is, as i becomes smaller, it represents a low-frequency basis function, and as i becomes larger, it represents a high-frequency basis function. When the basis function Ti(j) is expressed as a two-dimensional matrix, it can represent the j-th element of the i-th row, and since the transform kernels illustrated in Fig. 48 all have a separable characteristic, they can perform transformations in the horizontal and vertical directions respectively for the residual signal X. That is, when the residual signal block is X and the transform kernel matrix is T, the transform for the residual signal X can be expressed as TXT'. Here, T' means the transpose of the transform kernel matrix T. Since DCT and DST are in decimal form, not integer form, it is burdensome to implement them as they are in the hardware encoder and decoder. Therefore, the decimal form transform kernel must be approximated to an integer form transform kernel through scaling and rounding. The integer precision of the transform kernel can be determined as 8-bit or 10-bit, but if the precision is low, the encoding efficiency may decrease. Depending on the approximation, the orthonormal property of DCT and DST may not be maintained, but since the encoding efficiency loss due to this is not large, approximating the transform kernel to an integer form is advantageous in terms of implementing the hardware encoder and decoder. IDTR (Identity Transform) is a transform in which the result of the transformation is the same as before the transformation, and is called the identity transform. In general, identity transformation constructs a transformation matrix by setting '1' at positions where rows and columns have the same value. However, here, identity transformation uses an arbitrary fixed value, not the value '1', to increase or decrease the value of the input residual signal equally.
비트스트림은 하나 혹은 그 이상의 CVS(coded video sequences)로 구성되어 있으며, 하나의 CVS는 다른 CVS들과는 독립적으로 부호화된다. 각 CVS는 하나 혹은 그 이상의 layer로 구성되어 있으며, 각 layer는 특정 화질, 특정 해상도를 나타낼 수 있으며, 또는 일반 영상, 깊이정보맵, transparency 맵을 나타낼 수 있다. 또한, CLVS(coded layer video sequence)는 동일 layer 내의 연속된(디코딩 순서상) PU들로 구성된 layer-wise CVS를 의미한다. 예를 들어, 특정 화질 layer에 대한 CLVS가 존재하며, 깊이정보맵에 대한 CLVS가 존재할 수 있다.A bitstream consists of one or more coded video sequences (CVSs), and a CVS is encoded independently of other CVSs. Each CVS consists of one or more layers, and each layer can represent a specific quality, a specific resolution, or a general image, a depth map, or a transparency map. In addition, a coded layer video sequence (CLVS) means a layer-wise CVS composed of consecutive (in decoding order) PUs within the same layer. For example, there may be a CLVS for a specific quality layer, and there may be a CLVS for a depth map.
도 49, 도 50은 본 발명의 일 실시예에 따른 시퀀스 파라미터 세트의 일부를 나타낸다.Figures 49 and 50 illustrate a portion of a sequence parameter set according to one embodiment of the present invention.
도 49는 수직 방향 평면 모드 및 수평 방향 평면 모드의 활성화 여부를 나타내는 신택스 요소를 SPS에서 시그널링하는 방법을 나타낸다. 또한, 도 45는 3가지 DC 예측 모드를 명시적으로 시그널링하는 방법이 활성화되는지 여부를 SPS에서 시그널링하는 방법을 나타낸다. Figure 49 illustrates how to signal in SPS a syntax element indicating whether vertical plane mode and horizontal plane mode are enabled. Also, Figure 45 illustrates how to signal in SPS whether the method of explicitly signaling three DC prediction modes is enabled.
도 49의 sps_directional_planar_enabled_flag의 값이 1(참)인 경우, 수직 방향 평면 모드 및 수평 방향 평면 모드가 활성화됨을 나타낼 수 있다. sps_directional_planar_enabled_flag의 값이 0(거짓)인 경우, 수직 방향 평면 모드 및 수평 방향 평면 모드는 비활성화됨을 나타낼 수 있다. 즉, 모든 블록에 수직 방향 평면 모드 및 수평 방향 평면 모드가 사용되지는 않는다. sps_directional_planar_enabled_flag가 파싱되지 않는 경우(비트스트림에 포함되지 않는 경우), sps_directional_planar_enabled_flag의 값은 0으로 추론될 수 있다.When the value of sps_directional_planar_enabled_flag in Fig. 49 is 1 (true), it can indicate that the vertical planar mode and the horizontal planar mode are enabled. When the value of sps_directional_planar_enabled_flag is 0 (false), it can indicate that the vertical planar mode and the horizontal planar mode are disabled. That is, the vertical planar mode and the horizontal planar mode are not used for all blocks. When sps_directional_planar_enabled_flag is not parsed (not included in the bitstream), the value of sps_directional_planar_enabled_flag can be inferred as 0.
sps_directional_planar_enabled_flag equal to 1 specifies that the vertical planar and the horizontal planar mode is enabled for the CLVS. sps_directional_planar_enabled_flag equal to 0 specifies that the vertical planar and the horizontal planar mode is disabled for the CLVS. When sps_directional_planar_enabled_flag is not present, it is inferred to be equal to 0.sps_directional_planar_enabled_flag equal to 1 specifies that the vertical planar and the horizontal planar mode is enabled for the CLVS. sps_directional_planar_enabled_flag equal to 0 specifies that the vertical planar and the horizontal planar mode is disabled for the CLVS. When sps_directional_planar_enabled_flag is not present, it is inferred to be equal to 0.
상술한 SPS에서 시그널링하는 방법과 동일하게, 수직 방향 평면 모드 및 수평 방향 평면 모드의 활성화 여부를 나타내는 신택스 요소를 PPS에서도 시그널링할 수 있다. 즉, PPS에 시그널링되는 신택스 요소(예를 들어, pps_directional_planar_enabled_flag)에 따라 픽쳐 및/또는 프레임마다 수직 방향 평면 모드 및 수평 방향 평면 모드의 활성화 여부가 달라질 수 있다.Similar to the method of signaling in the SPS described above, syntax elements indicating whether the vertical planar mode and the horizontal planar mode are enabled can also be signaled in the PPS. That is, whether the vertical planar mode and the horizontal planar mode are enabled can vary for each picture and/or frame depending on the syntax elements signaled in the PPS (e.g., pps_directional_planar_enabled_flag).
도 49의 sps_directional_DC_enabled_flag의 값이 1(참)인 경우, 3가지 DC 예측 모드를 명시적으로 시그널링하는 방법이 활성화됨을 나타낼 수 있다. sps_directional_DC_enabled_flag의 값이 0(거짓)인 경우, 3가지 DC 예측 모드를 명시적으로 시그널링하는 방법이 활성화되지 않음을 나타낼 수 있다. sps_directional_DC_enabled_flag가 파싱되지 않는 경우(비트스트림에 포함되지 않는 경우), sps_directional_DC_enabled_flag의 값은 0으로 추론될 수 있다.When the value of sps_directional_DC_enabled_flag in FIG. 49 is 1 (true), it can indicate that a method of explicitly signaling the three DC prediction modes is enabled. When the value of sps_directional_DC_enabled_flag is 0 (false), it can indicate that a method of explicitly signaling the three DC prediction modes is not enabled. When sps_directional_DC_enabled_flag is not parsed (not included in the bitstream), the value of sps_directional_DC_enabled_flag can be inferred to be 0.
sps_directional_DC_enabled_flag equal to 1 specifies that the explicit vertical DC and the explicit horizontal DC mode is enabled for the CLVS. sps_directional_DC_enabled_flag equal to 0 specifies that the explicit vertical DC and the explicit horizontal DC mode is disabled for the CLVS. When sps_directional_DC_enabled_flag is not present, it is inferred to be equal to 0.sps_directional_DC_enabled_flag equal to 1 specifies that the explicit vertical DC and the explicit horizontal DC mode is enabled for the CLVS. sps_directional_DC_enabled_flag equal to 0 specifies that the explicit vertical DC and the explicit horizontal DC mode is disabled for the CLVS. When sps_directional_DC_enabled_flag is not present, it is inferred to be equal to 0.
도 50은 도 25 내지 도 29를 통해 설명한 복수의 참조 픽셀 라인을 사용하여 예측 블록을 생성하는 방법의 활성화 여부를 나타내는 신택스 요소를 SPS에서 시그널링하는 방법을 나타낸다. 복수의 참조 픽셀 라인을 사용하여 예측 블록을 생성하는 방법은 인트라 퓨젼(intra fusion)이라 기술될 수 있다.FIG. 50 illustrates a method of signaling in an SPS a syntax element indicating whether a method of generating a prediction block using multiple reference pixel lines described through FIGS. 25 to 29 is activated. The method of generating a prediction block using multiple reference pixel lines may be described as intra fusion.
도 50의 sps_intra_fusion_enabled_flag의 값이 1(참)인 경우, 인트라 퓨젼이 활성화됨을 나타낼 수 있다. sps_intra_fusion_enabled_flag의 값이 0(거짓)인 경우, 인트라 퓨젼이 비활성화됨을 나타낸다. 즉, 모든 블록에 인트라 퓨젼이 수행되지 않는다. sps_intra_fusion_enabled_flag가 파싱되지 않는 경우(비트스트림에 포함되지 않는 경우), sps_intra_fusion_enabled_flag 의 값은 0으로 추론될 수 있다.If the value of sps_intra_fusion_enabled_flag in FIG. 50 is 1 (true), it can indicate that intra fusion is enabled. If the value of sps_intra_fusion_enabled_flag is 0 (false), it can indicate that intra fusion is disabled. That is, intra fusion is not performed on any blocks. If sps_intra_fusion_enabled_flag is not parsed (not included in the bitstream), the value of sps_intra_fusion_enabled_flag can be inferred as 0.
sps_intra_fusion_enabled_flag equal to 1 specifies that the intra fusion method is enabled for the CLVS. sps_intra_fusion_enabled_flag equal to 0 specifies that intra fusion method is disabled for the CLVS. When sps_intra_fusion_enabled_flag is not present, it is inferred to be equal to 0.sps_intra_fusion_enabled_flag equal to 1 specifies that the intra fusion method is enabled for the CLVS. sps_intra_fusion_enabled_flag equal to 0 specifies that intra fusion method is disabled for the CLVS. When sps_intra_fusion_enabled_flag is not present, it is inferred to be equal to 0.
상술한 SPS에서 시그널링하는 방법과 동일하게, 인트라 퓨젼의 활성화 여부를 나타내는 신택스 요소를 PPS에서도 시그널링할 수 있다. 즉, PPS에 시그널링되는 신택스 요소(예를 들어, pps_intra_fusion_enabled_flag)에 따라 픽쳐 및/또는 프레임마다 인트라 퓨젼의 활성화 여부가 달라질 수 있다.Similar to the signaling method in the SPS described above, a syntax element indicating whether intra fusion is enabled can also be signaled in the PPS. That is, whether intra fusion is enabled can vary for each picture and/or frame depending on the syntax element signaled in the PPS (e.g., pps_intra_fusion_enabled_flag).
도 51은 본 발명의 일 실시예에 따른 general_constraint_info() 신택스 구조의 일부를 나타낸다.FIG. 51 illustrates a portion of the general_constraint_info() syntax structure according to one embodiment of the present invention.
도 51은 수직 방향 평면 모드 및 수평 방향 평면 모드, 인트라 퓨젼, 명시적 방향 DC 모드(explicit directional DC)와 관련된 제약 플래그를 나타낸다. 도 51의 general_constraint_info() 신택스는 profile_tier_level() 신택스에서 호출될 수 있다. profile_tier_level() 신택스는 시퀀스 파라미터 세트 RBSP 신택스, 비디오 파라미터 세트 RBSP 신택스, Decoding capability information RBSP 신택스에서 호출될 수 있다. general_constraint_info() 신택스의 개별 신택스 요소들은 시퀀스 파라미터 세트 RBSP내에 대응되는 신택스 요소들이 있을 수 있으며, 해당 플래그의 정의에 의해 대응되는 시퀀스 파라미터 세트 RBSP 신택스 요소의 활성화/비활성화 여부가 제약 받을 수 있다.FIG. 51 shows constraint flags related to vertical plane mode, horizontal plane mode, intra fusion, and explicit directional DC mode. The general_constraint_info() syntax of FIG. 51 can be called from the profile_tier_level() syntax. The profile_tier_level() syntax can be called from the sequence parameter set RBSP syntax, the video parameter set RBSP syntax, and the decoding capability information RBSP syntax. Individual syntax elements of the general_constraint_info() syntax may have corresponding syntax elements in the sequence parameter set RBSP, and whether the corresponding sequence parameter set RBSP syntax element is activated/deactivated may be constrained by the definition of the corresponding flag.
수직 방향 평면 모드 및 수평 방향 평면 모드와 관련된 제약 플래그는 gci_no_directional_planar_constraint_flag 일 수 있다. Constraint flags related to vertical planar mode and horizontal planar mode can be gci_no_directional_planar_constraint_flag.
gci_no_directional_planar_constraint_flag의 값이 1과 같으면 OlsScope내에 존재하는 모든 픽쳐들에 대해 sps_directional_planar_enabled_flag의 값은 0으로 제약된다. 즉 수직 방향 평면 모드 및 수평 방향 평면 모드의 비활성화는 제약(강제)될 수 있다. gci_no_directional_planar_constraint_flag의 값이 0과 같으면 sps_directional_planar_enabled_flag의 값은 제약되지 않는다.If the value of gci_no_directional_planar_constraint_flag is equal to 1, the value of sps_directional_planar_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, disabling of vertical planar mode and horizontal planar mode can be constrained (forced). If the value of gci_no_directional_planar_constraint_flag is equal to 0, the value of sps_directional_planar_enabled_flag is not constrained.
gci_no_directional_planar_constraint_flag equal to 1 specifies that sps_directional_planar_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_directional_planar_constraint_flag equal to 0 does not impose such a constraint.gci_no_directional_planar_constraint_flag equal to 1 specifies that sps_directional_planar_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_directional_planar_constraint_flag equal to 0 does not impose such a constraint.
명시적 방향 DC 모드와 관련된 제약 플래그는 gci_no_directional_DC_constraint_flag 일 수 있다. The constraint flag associated with explicit directional DC mode can be gci_no_directional_DC_constraint_flag.
gci_no_directional_DC_constraint_flag의 값이 1과 같으면 OlsScope내에 존재하는 모든 픽쳐들에 대해 sps_directional_DC_enabled_flag 의 값은 0으로 제약된다. 즉, 명시적 방향 DC 모드의 비활성화는 제약(강제)될 수 있다. gci_no_directional_DC_constraint_flag의 값이 0과 같으면 sps_directional_DC_enabled_flag 의 값은 제약되지 않는다.If the value of gci_no_directional_DC_constraint_flag is equal to 1, the value of sps_directional_DC_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, the disabling of explicit directional DC mode can be constrained (forced). If the value of gci_no_directional_DC_constraint_flag is equal to 0, the value of sps_directional_DC_enabled_flag is not constrained.
gci_no_directional_DC_constraint_flag equal to 1 specifies that sps_directional_DC_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_directional_DC_constraint_flag equal to 0 does not impose such a constraint.gci_no_directional_DC_constraint_flag equal to 1 specifies that sps_directional_DC_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_directional_DC_constraint_flag equal to 0 does not impose such a constraint.
인트라 퓨젼과 관련된 제약 플래그는 gci_no_intra_fusion_constraint_flag 일 수 있다. The constraint flag related to intra fusion can be gci_no_intra_fusion_constraint_flag.
gci_no_intra_fusion_constraint_flag의 값이 1과 같으면 OlsScope내에 존재하는 모든 픽쳐들에 대해 sps_intra_fusion_enabled_flag 값은 0으로 제약된다. 즉 인트라 퓨젼의 비활성화는 제약(강제)될 수 있다. gci_no_intra_fusion_constraint_flag의 값이 0과 같으면 sps_intra_fusion_enabled_flag의 값은 0으로 제약되지 않는다.If the value of gci_no_intra_fusion_constraint_flag is equal to 1, the value of sps_intra_fusion_enabled_flag is constrained to 0 for all pictures in OlsScope. That is, disabling of intra fusion can be constrained (forced). If the value of gci_no_intra_fusion_constraint_flag is equal to 0, the value of sps_intra_fusion_enabled_flag is not constrained to 0.
gci_no_intra_fusion_constraint_flag equal to 1 specifies that sps_intra_fusion_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_intra_fusion_constraint_flag equal to 0 does not impose such a constraint.gci_no_intra_fusion_constraint_flag equal to 1 specifies that sps_intra_fusion_enabled_flag for all pictures in OlsInScope shall be equal to 0. gci_no_intra_fusion_constraint_flag equal to 0 does not impose such a constraint.
비디오 신호 처리 장치는 현재 블록에 대한 예측 블록을 생성할 때, 2개 이상의 인트라 예측 블록을 가중치 평균하는 다중 예측 모드를 사용할 수 있다. DIMD 혹은 TIMD 모드가 사용되는 경우, 2개 인트라 예측 방향성 모드는 주변 블록 또는 MPM 리스트로부터 암묵적으로 결정될 수 있다. DIMD 혹은 TIMD 모드가 아닌 블록에서 2개 인트라 예측 방향성 모드는 비트스트림으로부터 시그널링될 수 있으나 이는 비트량이 증가되어 압축 효율이 낮아질 수 있다.When a video signal processing device generates a prediction block for a current block, it can use a multi-prediction mode that weights and averages two or more intra prediction blocks. When the DIMD or TIMD mode is used, the two intra prediction directional modes can be implicitly determined from a neighboring block or an MPM list. In a block that is not in the DIMD or TIMD mode, the two intra prediction directional modes can be signaled from the bitstream, but this may increase the bit amount and lower the compression efficiency.
이러한 비트량 증가를 완화시키기 위해서, 비디오 신호 처리 장치가 MPM 리스트를 구성할 때, 리스트의 각 항목에 포함될 인트라 예측 방향성 모드는 1개가 아닌 2개 이상으로 설정될 수 있다.To mitigate this increase in bit volume, when a video signal processing device configures an MPM list, the intra prediction directional mode to be included in each item of the list may be set to two or more instead of one.
도 52는 본 발명의 일 실시예에 따른 다중 예측 모드를 사용하여 MPM 리스트를 구성하는 방법을 나타낸다. FIG. 52 illustrates a method of constructing an MPM list using a multi-prediction mode according to one embodiment of the present invention.
도 52(a)에서 A, B, C, … , F, G는 임의의 인트라 예측 방향성 모드, MIP, Intra TMP, IBC, DIMD, TIMD 중에 하나를 나타낼 수 있으며, "N/A"은 사용되지 않는다는 것으로 MPM 리스트의 4번째와 5번째는 다중 예측 모드가 아닌 하나의 인트라 예측 방향성 모드로만 구성될 수 있다. 도 52(b)와 같이, MPM 리스트에 먼저 단일 예측 모드가 추가된 후, 다음으로 다중 예측 모드가 추가될 수 있으며, "N/A"은 사용되지 않는다는 것으로 MPM 리스트의 1번째와 2번째는 다중 예측 모드가 아닌 하나의 인트라 예측 방향성 모드로만 구성될 수 있다.In Fig. 52(a), A, B, C, …, F, G can represent any intra prediction directional mode, one of MIP, Intra TMP, IBC, DIMD, TIMD, and “N/A” indicates that it is not used, and the 4th and 5th in the MPM list can be configured with only one intra prediction directional mode, not a multi-prediction mode. As in Fig. 52(b), a single prediction mode can be added first to the MPM list and then a multi-prediction mode can be added next, and “N/A” indicates that it is not used, and the 1st and 2nd in the MPM list can be configured with only one intra prediction directional mode, not a multi-prediction mode.
인코더는 하나의 인트라 예측 방향성 모드로만 구성된 MPM 리스트(단일 예측 기반 MPM 리스트)를 사용할지 다중 예측 기반 MPM 리스트를 사용할지 여부에 대한 정보를 블록 단위로 적응적으로 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 하나의 인트라 예측 방향성 모드로만 구성된 MPM 리스트(단일 예측 기반 MPM 리스트)를 사용할지 다중 예측 기반 MPM 리스트를 사용할지 여부에 대한 정보를 파싱하여 현재 블록에 대한 예측 블록을 생성하기 위해 사용되는 MPM 리스트를 결정할 수 있다.An encoder can adaptively signal, on a block-by-block basis, in the bitstream information on whether to use an MPM list consisting of only one intra-prediction directional mode (a single-prediction-based MPM list) or a multi-prediction-based MPM list. A decoder can parse the information on whether to use an MPM list consisting of only one intra-prediction directional mode (a single-prediction-based MPM list) or a multi-prediction-based MPM list to determine which MPM list is used to generate a prediction block for the current block.
비디오 신호 처리 장치는 현재 블록의 가로 혹은 세로 크기, 현재 블록의 가로 및 세로 크기의 비율, 현재 블록이 휘도 블록인지 혹은 색차 블록인지 여부, 양자화 파라미터 정보, 현재 블록의 주변 블록들의 인트라 예측 방향성 모드 정보, 현재 블록의 부호화 모드 정보 중에서 적어도 하나를 사용하여 다중 예측 기반 MPM 리스트의 사용 여부를 결정할 수 있다.The video signal processing device can determine whether to use a multi-prediction-based MPM list by using at least one of the horizontal or vertical size of the current block, the ratio of the horizontal and vertical sizes of the current block, whether the current block is a luminance block or a chrominance block, quantization parameter information, intra prediction directional mode information of blocks surrounding the current block, and encoding mode information of the current block.
다중 예측 기반 MPM 리스트를 어떻게 구성하는지에 따라 부호화 효율이 달라질 수 있으며, 다음과 같이 다양한 방안이 적용될 수 있다.Depending on how the multi-prediction-based MPM list is constructed, the encoding efficiency can vary, and various methods can be applied, as follows.
비디오 신호 처리 장치는 단일 예측 기반 MPM 리스트를 먼저 구성한 후, 단일 예측 기반 MPM 리스트를 이용하여 다중 예측 기반 MPM 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치는 단일 예측 기반 MPM 리스트 내의 각 인트라 예측 방향성 모드들의 조합으로 다중 예측 기반 MPM 리스트를 구성할 수 있다. 이때, 비디오 신호 처리 장치는 단일 예측 기반 MPM 리스트를 TIMD 방법에서 사용하는 템플릿 코스트 기반 재정렬 방법을 사용하여 단일 예측 기반 MPM 리스트를 재정렬할 수 있다. 비디오 신호 처리 장치는 재정렬된 단일 예측 기반 MPM 리스트의 첫 번째 인트라 예측 방향성 모드와 첫 번째가 아닌 인트라 예측 방향성 모드들과의 조합만을 사용하여 다중 예측 기반 MPM 리스트를 구성할 수 있다.The video signal processing device can first configure a single prediction-based MPM list, and then configure a multi-prediction-based MPM list using the single prediction-based MPM list. For example, the video signal processing device can configure a multi-prediction-based MPM list by combining each intra-prediction directional mode in the single prediction-based MPM list. At this time, the video signal processing device can reorder the single prediction-based MPM list using a template cost-based reordering method used in the TIMD method. The video signal processing device can configure the multi-prediction-based MPM list only by using a combination of a first intra-prediction directional mode and intra-prediction directional modes other than the first of the reordered single prediction-based MPM list.
비디오 신호 처리 장치는 DIMD로부터 유도된 인트라 예측 방향성 모드들과 단일 예측 기반 MPM 리스트들과의 조합을 사용하여 다중 예측 기반 MPM 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치는 DIMD로부터 유도된 첫번째 인트라 예측 방향성 모드와 단일 예측 기반 MPM 리스트 내에서 첫번째 인트라 예측 방향성 모드를 조합하여 다중 예측 기반 MPM 리스트의 첫번째에 추가할 수 있다. 그리고 비디오 신호 처리 장치는 DIMD로부터 유도된 두번째 인트라 예측 방향성 모드와 단일 예측 기반 MPM 리스트 내에서 첫번째 인트라 예측 방향성 모드를 조합하여 다중 예측 기반 MPM 리스트의 두번째에 추가할 수 있다. 그리고 비디오 신호 처리 장치는 DIMD로부터 유도된 첫번째 인트라 예측 방향성 모드와 단일 예측 기반 MPM 리스트 내에서 두번째 인트라 예측 방향성 모드를 조합하여 다중 예측 기반 MPM 리스트의 세번째에 추가할 수 있다. 이러한 방법으로 비디오 신호 처리 장치는 모든 가능한 조합을 사용하여 다중 예측 기반 MPM 리스트를 구성할 수 있다.The video signal processing device can construct a multi-prediction-based MPM list by using combinations of intra-prediction directional modes derived from DIMD and single-prediction-based MPM lists. For example, the video signal processing device can combine a first intra-prediction directional mode derived from DIMD with a first intra-prediction directional mode within a single-prediction-based MPM list and add it to a first of the multi-prediction-based MPM list. Further, the video signal processing device can combine a second intra-prediction directional mode derived from DIMD with the first intra-prediction directional mode within a single-prediction-based MPM list and add it to a second of the multi-prediction-based MPM list. Further, the video signal processing device can combine a first intra-prediction directional mode derived from DIMD with a second intra-prediction directional mode within a single-prediction-based MPM list and add it to a third of the multi-prediction-based MPM list. In this way, the video signal processing device can construct a multi-prediction-based MPM list by using all possible combinations.
비디오 신호 처리 장치는 미리 정의된 여러 개의 다중 예측 모드를 사용하여 다중 예측 기반 MPM 리스트를 구성할 수 있다. 여기서 미리 정의된 여러 개의 다중 예측 모드는 (18, 0), (50, 0), (34, 0), (2, 0), (66, 0), (18, 1), (50, 1), (34, 1), (2, 1), (66, 1) 등이 될 수 있으며, "(X, Y)"에서 X, Y는 도 6의 인트라 예측 방향성 모드(의 인덱스)일 수 있다.The video signal processing device can configure a multi-prediction-based MPM list by using multiple predefined multi-prediction modes. Here, the multiple predefined multi-prediction modes can be (18, 0), (50, 0), (34, 0), (2, 0), (66, 0), (18, 1), (50, 1), (34, 1), (2, 1), (66, 1), etc., and X and Y in "(X, Y)" can be the intra prediction directional mode (indices) of FIG. 6.
비디오 신호 처리 장치는 다중 예측 기반 MPM 리스트는 TIMD 기반 재정렬 방법을 통해 재정렬될 수 있다. 비디오 신호 처리 장치는 코스트가 낮은 몇 개의 항목만을 사용하여 다중 예측 기반 MPM 리스트를 재설정할 수 있다.A video signal processing device can reorder a multi-prediction-based MPM list using a TIMD-based reordering method. The video signal processing device can reorder a multi-prediction-based MPM list using only a few low-cost items.
비디오 신호 처리 장치가 다중 예측 모드를 사용하여 예측 블록을 생성할 때, 각 예측 블록을 생성하는데 사용되는 인트라 예측 모드는 Primary MPM과 Secondary MPM을 기반으로 시그널링될 수 있다. Primary MPM에는 6개의 인트라 예측 방향성 모드가 포함될 수 있고, Secondary MPM에는 16개의 인트라 예측 방향성 모드가 포함될 수 있다. Secondary MPM은 미리 정의된 몇 개의 인트라 예측 모드를 사용하여 구성될 수 있다. 예를 들어, 비디오 신호 처리 장치는 DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16의 예측 모드(도 6의 인트라 예측 모드 참조)가 Primary MPM에 존재하지 않는 경우, Secondary MPM의 리스트가 모두 구성될 때까지 DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16의 예측 모드를 순서대로 추가하면서 Secondary MPM의 리스트를 구성할 수 있다. 비디오 신호 처리 장치는 현재 블록에 다중 예측 모드가 사용되는 경우, Primary MPM에서 하나의 인트라 예측 방향성 모드를 유도하고, Secondary MPM에서 또 다른 하나의 인트라 예측 방향성 모드를 유도함으로써, 현재 블록의 예측 블록을 생성하는데 사용되는 인트라 예측 방향성 모드를 결정할 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 인코더는 Primary MPM과 Secondary MPM 내에서 어떠한 인트라 예측 방향성 모드가 사용되었는지를 지시하는 인덱스 정보들을 비트스트림에 포함시켜서 시그널링할 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 디코더는 인덱스 정보들을 파싱한 후, 현재 블록에 대한 예측 블록들을 생성하는데 사용되는 인트라 예측 방향성 모드들을 Primary MPM과 Secondary MPM 리스트 내에서 결정할 수 있다.When a video signal processing device generates a prediction block using multiple prediction modes, the intra prediction mode used to generate each prediction block can be signaled based on the Primary MPM and the Secondary MPM. The Primary MPM can include six intra prediction directional modes, and the Secondary MPM can include 16 intra prediction directional modes. The Secondary MPM can be configured using several predefined intra prediction modes. For example, if the prediction modes of DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16 (see the intra prediction mode of FIG. 6) do not exist in the Primary MPM, the video signal processing device can configure the list of Secondary MPMs by sequentially adding the prediction modes of DC, 50, 18, 46, 54, 14, 22, 42, 58, 10, 26, 38, 62, 6, 30, 34, 66, 2, 48, 52, 16 until the list of Secondary MPMs is completely configured. A video signal processing device can determine an intra prediction directional mode used for generating a prediction block of the current block by deriving one intra prediction directional mode from a Primary MPM and another intra prediction directional mode from a Secondary MPM, when multiple prediction modes are used for the current block. When multiple prediction modes are used for the current block, an encoder can signal which intra prediction directional mode is used in the Primary MPM and the Secondary MPM by including index information in a bitstream. When multiple prediction modes are used for the current block, a decoder can determine the intra prediction directional modes used for generating the prediction blocks for the current block, within a Primary MPM and a Secondary MPM list, after parsing the index information.
현재 블록에 다중 예측 모드가 사용되는 경우, 비디오 신호 처리 장치는 DIMD로부터 유도된 인트라 예측 방향성 모드, Primary MPM, Secondary MPM을 사용하여 현재 블록의 예측 블록을 생성하는데 사용되는 인트라 예측 방향성 모드들을 결정할 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 인코더는 DIMD로부터 유도된 인트라 예측 방향성 모드가 사용되었는지 여부 정보, Primary MPM과 Secondary MPM 내에서 어떠한 인트라 예측 방향성 모드가 사용되었는지를 지시하는 인덱스 정보들을 비트스트림에 포함시켜서 시그널링할 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 디코더는 DIMD로부터 유도된 인트라 예측 방향성 모드가 사용되었는지 여부 정보, Primary MPM과 Secondary MPM 내에서 어떠한 인트라 예측 방향성 모드가 사용되었는지를 지시하는 인덱스 정보들을 파싱하여 현재 블록에 대한 예측 블록들을 생성하는데 사용되는 인트라 예측 방향성 모드들을 결정할 수 있다.When multiple prediction modes are used for the current block, the video signal processing device can determine intra prediction directional modes used to generate prediction blocks of the current block using the intra prediction directional mode derived from the DIMD, the Primary MPM, and the Secondary MPM. When multiple prediction modes are used for the current block, the encoder can signal by including information on whether the intra prediction directional mode derived from the DIMD is used and index information indicating which intra prediction directional mode is used within the Primary MPM and the Secondary MPM in a bitstream. When multiple prediction modes are used for the current block, the decoder can determine intra prediction directional modes used to generate prediction blocks for the current block by parsing information on whether the intra prediction directional mode derived from the DIMD is used and index information indicating which intra prediction directional mode is used within the Primary MPM and the Secondary MPM.
현재 블록에 다중 예측 모드가 사용되는 경우, 비디오 신호 처리 장치는 Primary MPM 리스트를 이용하여 Secondary MPM 리스트를 다중 예측 기반 MPM 리스트로 구성할 수 있다. 예를 들어 주변 블록으로부터 생성된 Primary MPM 모드가 Planar, 18, 54, 30, 45, 17 인 경우, Secondary MPM의 리스트에는 Planar+18, Planard+54,.. 등의 모드들이 추가되어 다중 예측 기반 MPM 리스트로 구성될 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 인코더는 Primary MPM 리스트를 이용하여 Secondary MPM 리스트를 다중 예측 기반 MPM 리스트로 구성한 후, 현재 블록의 예측 블록을 생성하는데 사용되는 다중 예측 모드를 Secondary MPM의 리스트에서 결정할 수 있으며, 결정된 Secondary MPM의 리스트에 대한 인덱스 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 인덱스 정보를 파싱하여 현재 블록의 예측 블록을 생성하는데 사용되는 다중 예측 모드를 Secondary MPM의 리스트에서 결정할 수 있다.If a multi-prediction mode is used in the current block, the video signal processing device can configure a secondary MPM list as a multi-prediction-based MPM list using the primary MPM list. For example, if the primary MPM modes generated from the surrounding blocks are Planar, 18, 54, 30, 45, 17, modes such as Planar+18, Planard+54, etc. can be added to the secondary MPM list to configure a multi-prediction-based MPM list. If a multi-prediction mode is used in the current block, the encoder can configure a secondary MPM list as a multi-prediction-based MPM list using the primary MPM list, and then determine a multi-prediction mode used to generate a prediction block of the current block from the secondary MPM list, and signal it by including index information for the determined secondary MPM list in the bitstream. The decoder can parse the index information to determine a multi-prediction mode used to generate a prediction block of the current block from the secondary MPM list.
또한, 현재 블록에 다중 예측 모드가 사용되는 경우, 비디오 신호 처리 장치는 DIMD로부터 유도된 인트라 예측 방향성 모드와 Primary MPM 리스트를 이용하여 Secondary MPM 리스트를 다중 예측 기반 MPM 리스트로 구성할 수 있다. 예를 들어, 주변 블록으로부터 생성된 Primary MPM 모드가 Planar, 18, 54, 30, 45, 17 인 경우, Secondary MPM의 리스트는 Planar+18, Planard+54,.. 등의 모드들이 추가되어 다중 예측 기반 MPM 리스트로 구성될 수 있다. 현재 블록에 다중 예측 모드가 사용되는 경우, 인코더는 DIMD로부터 유도된 인트라 예측 방향성 모드와 Primary MPM 리스트를 이용하여 Secondary MPM 리스트를 다중 예측 기반 MPM 리스트로 구성할 수 있다. 인코더는 현재 블록의 예측 블록을 생성하는데 사용되는 다중 예측 모드를 Secondary MPM의 리스트에서 결정할 수 있으며, 결정된 Secondary MPM의 리스트에 대한 인덱스 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 인덱스 정보를 파싱하여 현재 블록의 예측 블록을 생성하는데 사용되는 다중 예측 모드를 Secondary MPM의 리스트에서 결정할 수 있다.In addition, when a multi-prediction mode is used for the current block, the video signal processing device can configure a secondary MPM list as a multi-prediction-based MPM list by using the intra-prediction directional mode derived from DIMD and the primary MPM list. For example, when the primary MPM modes generated from the surrounding blocks are Planar, 18, 54, 30, 45, 17, the list of secondary MPMs can be configured as a multi-prediction-based MPM list by adding modes such as Planar+18, Planard+54, etc. When a multi-prediction mode is used for the current block, the encoder can configure a secondary MPM list as a multi-prediction-based MPM list by using the intra-prediction directional mode derived from DIMD and the primary MPM list. The encoder can determine a multi-prediction mode used for generating a prediction block of the current block from the list of secondary MPMs, and can signal index information for the determined list of secondary MPMs by including it in a bitstream. The decoder can determine the multiple prediction modes to be used to generate the prediction block of the current block from the list of Secondary MPMs by parsing the index information.
다중 예측 모드가 사용되어 예측 블록이 생성될 때, 비디오 신호 처리 장치는 각 예측 블록을 생성하는데 사용되는 참조 픽셀의 위치를 각각 결정할 수 있다. 즉, 비디오 신호 처리 장치는 다양한 참조 픽셀 라인 중(도 31 참조)에서 각각의 예측 블록을 생성하는 데 사용되는 좌측 참조 픽셀 라인과 상단 참조 픽셀 라인을 각각 지정할 수 있다. 인코더는 최적의 참조 픽셀 라인을 결정한 후, 좌측 참조 픽셀 라인의 위치 정보와 상단 참조 픽셀 라인의 위치 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 각 위치 정보를 파싱하여, 각각의 예측 블록을 생성하는데 사용되는 좌측 참조 픽셀 라인과 상단 참조 픽셀 라인의 위치를 결정할 수 있다.When a multi-prediction mode is used to generate a prediction block, the video signal processing device can determine the positions of reference pixels used to generate each prediction block, respectively. That is, the video signal processing device can designate a left reference pixel line and an upper reference pixel line used to generate each prediction block, respectively, from among various reference pixel lines (see FIG. 31). After the encoder determines an optimal reference pixel line, the encoder can include position information of the left reference pixel line and the upper reference pixel line in a bitstream and signal them. The decoder can parse each position information to determine the positions of the left reference pixel line and the upper reference pixel line used to generate each prediction block, respectively.
도 53은 본 발명의 일 실시예에 따른 다중 예측 모드를 사용하여 예측 블록이 생성될 때 사용되는 참조 픽셀의 위치를 나타낸다.FIG. 53 shows the locations of reference pixels used when a prediction block is generated using a multi-prediction mode according to one embodiment of the present invention.
도 53을 참조하면, 다중 예측 모드 중에서 첫번째 인트라 예측 방향성 모드가 사용되어 예측 블록이 생성될 때, 비디오 신호 처리 장치는 현재 블록의 좌측 참조 픽셀만을 사용하여 예측 블록을 생성할 수 있다. 또한 다중 예측 모드 중에서 두번째 인트라 예측 방향성 모드가 사용되어 예측 블록을 생성될 때, 비디오 신호 처리 장치는 현재 블록의 상단 참조 픽셀만을 사용하여 예측 블록을 생성할 수 있다. 첫번째 인트라 예측 방향성 모드는 도 6의 인트라 예측 방향성 모드 중에서 34보다 적은 번호의 모드만이 사용될 수 있으며, 두번째 인트라 예측 방향성 모드는 도 6의 인트라 예측 방향성 모드 중에서 34보다 같거나 큰 모드만이 사용될 수 있다. 따라서, 다중 예측 기반 MPM 리스트가 구성될 때, 첫번째 인트라 예측 방향성 모드는 34보다 적은 번호의 모드만 가능하며, 두번째 인트라 예측 방향성 모드는 34보다 같거나 큰 번호의 모드만 가능하도록 구성할 수 있다.Referring to FIG. 53, when a prediction block is generated by using the first intra prediction directional mode among the multiple prediction modes, the video signal processing device can generate the prediction block by using only the left reference pixel of the current block. In addition, when a prediction block is generated by using the second intra prediction directional mode among the multiple prediction modes, the video signal processing device can generate the prediction block by using only the upper reference pixel of the current block. The first intra prediction directional mode can only use modes with numbers less than 34 among the intra prediction directional modes of FIG. 6, and the second intra prediction directional mode can only use modes with numbers greater than or equal to 34 among the intra prediction directional modes of FIG. 6. Accordingly, when a multiple prediction-based MPM list is configured, the first intra prediction directional mode can only use modes with numbers less than 34, and the second intra prediction directional mode can only use modes with numbers greater than or equal to 34.
도 53을 참조하면 비디오 신호 처리 장치는 각각의 예측 블록을 생성하는데 사용되는 좌측 참조 픽셀 라인과 상단 참조 픽셀 라인을 각각 지정할 수 있다. 인코더는 최적의 참조 픽셀 라인을 결정한 후, 좌측 참조 픽셀 라인의 위치 정보와 상단 참조 픽셀 라인의 위치 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 각각의 위치 정보를 파싱하여, 각각의 예측 블록을 생성하는 데 사용되는 좌측 참조 픽셀 라인과 상단 참조 픽셀 라인의 위치를 결정할 수 있다. 또한, 상단 참조 픽셀 라인의 위치 정보는 좌측 참조 픽셀 라인의 위치 정보로부터 유도될 수 있으며, 상단 참조 픽셀 라인의 위치 정보와 좌측 참조 픽셀 라인의 위치 정보가 동일할 수 있다. 인코더는 상단 참조 픽셀 라인의 위치 정보를 시그널링할 때, 좌측 참조 픽셀 라인의 위치 정보와의 차이값만을 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더에서는 좌측 참조 픽셀 라인의 위치 정보를 파싱하고, 상단 참조 픽셀 라인의 위치 정보에 대한 차이값을 파싱한 후, 좌측 참조 픽셀 라인의 위치 정보와 상단 참조 픽셀 라인의 위치 정보에 대한 차이값을 통해 상단 참조 픽셀 라인의 위치 정보를 결정할 수 있다.Referring to FIG. 53, the video signal processing device can designate a left reference pixel line and an upper reference pixel line used for generating each prediction block, respectively. After the encoder determines the optimal reference pixel line, the encoder can include the position information of the left reference pixel line and the position information of the upper reference pixel line in the bitstream and signal them. The decoder can parse each position information to determine the positions of the left reference pixel line and the upper reference pixel line used for generating each prediction block. In addition, the position information of the upper reference pixel line can be derived from the position information of the left reference pixel line, and the position information of the upper reference pixel line and the position information of the left reference pixel line can be the same. When signaling the position information of the upper reference pixel line, the encoder can include only the difference value with the position information of the left reference pixel line in the bitstream and signal it. The decoder can parse the position information of the left reference pixel line, parse the difference value with respect to the position information of the upper reference pixel line, and then determine the position information of the upper reference pixel line through the difference value with respect to the position information of the left reference pixel line and the position information of the upper reference pixel line.
다중 예측 모드가 적용된 현재 블록에 2차 변환이 적용되는 경우, 2차 변환에 대한 변환 세트는 2개의 인트라 예측 방향성 모드에 기초하여 결정될 수 있다. 이때, 2개의 인트라 예측 방향성 모드들 중에서 하나가 1차 변환 또는 2차 변환 세트를 선택하는데 사용될 수 있으며, 첫번째 인트라 예측 방향성 모드가 사용될 수 있다. 인코더는 2개의 인트라 예측 방향성 모드 중에서 어떠한 것을 1차 변환 또는 2차 변환 세트를 유도하는데 사용할지에 대한 정보를 비트스트림에 포함시켜서 시그널링할 수 있다. 디코더는 2개의 인트라 예측 방향성 모드 중에서 어떠한 것을 1차 변환 또는 2차 변환 세트를 유도하는데 사용할지에 대한 정보를 파싱하여, 현재 오차 블록에 대한 1차 역변환 또는 2차 역변환 세트를 유도하는데 사용하는 인트라 예측 방향성 모드를 결정할 수 있다. 또는 현재 블록에 다중 예측 모드가 적용되는 경우, 비디오 신호 처리 장치는 1차 변환(역변환) 또는 2차 변환(역변환) 세트를 유도하는데 사용하는 인트라 예측 방향성 모드를 미리 정의된 모드로 결정할 수 있다. 여기서, 미리 정의된 모드는 Planar, DC 모드 등이 될 수 있다.When a secondary transform is applied to a current block with multiple prediction modes, a transform set for the secondary transform can be determined based on two intra prediction directional modes. At this time, one of the two intra prediction directional modes can be used to select the primary transform or the secondary transform set, and the first intra prediction directional mode can be used. The encoder can signal information about which of the two intra prediction directional modes is to be used to derive the primary transform or the secondary transform set by including it in the bitstream. The decoder can parse the information about which of the two intra prediction directional modes is to be used to derive the primary transform or the secondary transform set, and determine the intra prediction directional mode used to derive the primary inverse transform or the secondary inverse transform set for the current error block. Alternatively, when multiple prediction modes are applied to the current block, the video signal processing device may determine the intra prediction directional mode used to derive the first transform (inverse transform) or second transform (inverse transform) set as a predefined mode. Here, the predefined mode may be a Planar mode, a DC mode, etc.
비디오 신호 처리 장치는 상기 다중 예측 모드가 적용된 예측 블록에는 PDPC를 수행하지 않을 수 있다. 비디오 신호 처리 장치는 상기 다중 예측 모드가 적용된 예측 블록에는 2개의 인트라 예측 방향성 모드 중에서 첫번째 인트라 예측 방향성 모드에 기초하여 PDPC를 수행할 수 있다. 비디오 신호 처리 장치는 상기 다중 예측 모드가 적용된 예측 블록에는 2개의 인트라 예측 방향성 모드 중에서 첫번째 인트라 예측 방향성 모드에 기초하여 첫번째 PDPC를 수행한 후, 두번째 인트라 예측 방향성 모드에 기초하여 두번째 PDPC를 수행할 수 있다.The video signal processing device may not perform PDPC on a prediction block to which the multi-prediction mode is applied. The video signal processing device may perform PDPC on a prediction block to which the multi-prediction mode is applied based on a first intra-prediction directional mode among two intra-prediction directional modes. The video signal processing device may perform a first PDPC on a prediction block to which the multi-prediction mode is applied based on the first intra-prediction directional mode among two intra-prediction directional modes, and then perform a second PDPC on a prediction block to which the multi-prediction mode is applied based on the second intra-prediction directional mode.
비디오 신호 처리 장치는 3가지 DC 예측 모드중에서 어떤 DC 예측 모드가 사용하는지를 나타내는 DC 선택 정보를 평면 선택 정보와 통합하여 시그널링할 수 있다. 즉, 명시적으로 3가지 방향의 DC 예측 모드를 시그널링할 수 있다. 인코더는 특정 조건 하에서만 평면 선택 정보를 비트스트림에 포함하여 시그널링할 수 있고, 디코더는 특정 조건 하에서만 평면 선택 정보를 파싱하여 현재 블록에 대한 인트라 예측 방향성 모드를 설정할 수 있고, 설정된 인트라 예측 방향성 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 여기서 특정 조건은 현재 블록의 가로 및 세로 크기, 현재 블록의 가로 및 세로 크기의 비율, 현재 블록의 가로의 크기와 세로의 크기가 동일한지 여부, 현재 블록의 인트라 예측 방향성 모드가 특정 모드(예를 들어, 평면 모드, DC, HOR, VER 등의 모드인지)인 경우, 현재 블록의 부호화 모드가 DIMD, TIMD, IntraTMP, IBC, ISP, MIP 부호화 모드인지 여부, 현재 블록에 대한 예측 블록을 생성할 때 사용되는 참조 픽셀 라인의 인덱스 정보와 관련된 조건 등이 될 수 있다. 비디오 신호 처리 장치는 특정 조건들 중에서 적어도 하나 이상을 사용하여 다음과 같이 다양하게 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 부호화 및 복호화 여부를 결정할 수 있다. 1) 현재 블록의 인트라 예측 방향성 모드가 평면 모드(기존 평면 예측 모드로써, 인트라 예측 방향성 모드의 인덱스가 '0'인 경우)인 경우에만, 인코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 비트스트림에 포함하여 시그널링 할 수 있고, 디코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 파싱하여 현재 블록에 대한 인트라 예측 방향성 모드를 설정할 수 있다. 2) 현재 블록의 가로 및 세로 크기가 최대 변환 블록 크기보다 같거나 작고, 현재 블록의 가로 크기와 세로 크기의 곱이 최소 변환 블록 크기와 최소 변환 블록 크기의 곱보다 큰 경우에만, 인코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 비트스트림에 포함하여 시그널링 할 수 있고, 디코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 파싱하여 현재 블록에 대한 인트라 예측 방향성 모드를 설정할 수 있다. 여기서 최소 변환 블록의 크기는 정수일 수 있으며, 4, 8 등이 될 수 있다. 여기서 최대 변환 블록의 크기는 정수일 수 있으며, 64, 128, 256 등이 될 수 있다. 3) 현재 블록의 가로 및 세로 크기가 서로 다른 경우에만, 인코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 비트스트림에 포함하여 시그널링할 수 있고, 디코더는 추가적으로 평면 선택 정보, DC 선택 정보 중에서 적어도 하나 이상에 대한 정보를 파싱하여 현재 블록에 대한 인트라 예측 방향성 모드를 설정할 수 있다.A video signal processing device can signal DC selection information indicating which DC prediction mode among three DC prediction modes is used by integrating it with plane selection information. That is, DC prediction modes in three directions can be explicitly signaled. An encoder can signal the plane selection information by including it in a bitstream only under certain conditions, and a decoder can set an intra prediction directional mode for a current block by parsing the plane selection information only under certain conditions, and can generate a prediction block for the current block using the set intra prediction directional mode. Here, the certain conditions can be conditions related to the horizontal and vertical sizes of the current block, the ratio of the horizontal and vertical sizes of the current block, whether the horizontal and vertical sizes of the current block are the same, whether the intra prediction directional mode of the current block is a certain mode (e.g., whether it is a planar mode, DC, HOR, VER, etc.), whether the coding mode of the current block is a DIMD, TIMD, IntraTMP, IBC, ISP, or MIP coding mode, and conditions related to index information of a reference pixel line used when generating a prediction block for the current block. A video signal processing device can determine whether to encode and decode at least one of the plane selection information and the DC selection information in various ways by using at least one of specific conditions as follows. 1) Only when the intra prediction directional mode of the current block is a planar mode (an existing planar prediction mode, in which the index of the intra prediction directional mode is '0'), the encoder can additionally include information about at least one of the plane selection information and the DC selection information in a bitstream and signal it, and the decoder can additionally parse information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block. 2) Only if the horizontal and vertical sizes of the current block are equal to or smaller than the maximum transform block size, and the product of the horizontal and vertical sizes of the current block is greater than the product of the minimum transform block size and the minimum transform block size, the encoder may additionally signal at least one of the plane selection information and the DC selection information in the bitstream, and the decoder may additionally parse the information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block. Here, the size of the minimum transform block may be an integer, such as 4 or 8. Here, the size of the maximum transform block may be an integer, such as 64, 128, 256, and so on. 3) Only if the horizontal and vertical sizes of the current block are different, the encoder may additionally signal at least one of the plane selection information and the DC selection information in the bitstream, and the decoder may additionally parse the information about at least one of the plane selection information and the DC selection information to set the intra prediction directional mode for the current block.
도 54는 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 비트스트림으로부터 평면 모드 선택 정보와 DC 모드 선택 정보를 파싱하는 방법을 나타낸다.FIG. 54 illustrates a method for a video signal processing device according to an embodiment of the present invention to parse planar mode selection information and DC mode selection information from a bitstream.
도 54의 b는 초기에 0으로 설정되는 변수이며, 'decodeBinX()'은 비트스트림을 CABAC을 사용하여 엔트로피 디코딩한 후, 하나의 bin 값을 출력하는 함수일 수 있다. decodeBinX()'는 0 또는 1의 값을 출력할 수 있다.b in Fig. 54 is a variable that is initially set to 0, and 'decodeBinX()' can be a function that outputs one bin value after entropy decoding the bitstream using CABAC. 'decodeBinX()' can output a value of 0 or 1.
디코더는 현재 블록의 인트라 예측 방향성 모드가 평면 모드(기존 평면 예측 모드로써, 인트라 예측 방향성 모드의 인덱스가 '0'인 경우)인 경우에만 도 50에서 설명하는 파싱 과정을 수행할 수 있다. 도 54의 plIdx는 평면 예측 모드를 지시하는 변수이며, dcIdx는 DC 예측 모드를 지시하는 변수일 수 있다. plIdx의 값이 0이면, 기존 평면 예측 모드를 나타낼 수 있다. plIdx의 값이 1이면, 수평 방향으로의 선형 평면 예측 모드(Horizontal Planar)를 나타내고, plIdx의 값이 2이면, 수직 방향으로의 선형 평면 예측 모드(Vertical Planar)를 나타낼 수 있다. dcIdx의 값이 0이면, 기존 DC 모드(현재 블록의 가로 및 세로의 크기에 따라 좌측 화소 값들의 평균을 사용하는 DC 모드, 상측 화소값들의 평균을 사용하는 DC 모드, 좌측과 상측 화소 값들의 평균을 사용하는 DC 모드 중에서 하나의 모드로 선택되는 모드)를 나타낼 수 있다. dcIdx의 값이 1이면, 좌측 화소 값들의 평균을 사용하는 DC 모드(Horizontal DC 모드 또는 left DC 모드)를 나타낼 수 있다. dcIdx의 값이 2이면, 상측 화소 값들의 평균을 사용하는 DC 모드(Vertical DC 모드 또는 above DC 모드)를 나타낼 수 있다. 여기서 dcIdx의 값이 0일 때 나타내는 기존의 DC 모드는 MPM 리스트를 통한 기존의 방법을 그대로 사용하여 시그널링될 수 있다. The decoder can perform the parsing process described in Fig. 50 only when the intra prediction directional mode of the current block is the planar mode (the existing planar prediction mode, when the index of the intra prediction directional mode is '0'). plIdx in Fig. 54 is a variable indicating the planar prediction mode, and dcIdx may be a variable indicating the DC prediction mode. If the value of plIdx is 0, it may indicate the existing planar prediction mode. If the value of plIdx is 1, it may indicate a horizontal linear planar prediction mode (Horizontal Planar), and if the value of plIdx is 2, it may indicate a vertical linear planar prediction mode (Vertical Planar). If the value of dcIdx is 0, it may indicate the existing DC mode (a mode selected from among the DC mode using the average of the left pixel values according to the horizontal and vertical sizes of the current block, the DC mode using the average of the upper pixel values, and the DC mode using the average of the left and upper pixel values). If the value of dcIdx is 1, it can indicate the DC mode (Horizontal DC mode or left DC mode) that uses the average of the left pixel values. If the value of dcIdx is 2, it can indicate the DC mode (Vertical DC mode or above DC mode) that uses the average of the upper pixel values. Here, the existing DC mode indicated when the value of dcIdx is 0 can be signaled using the existing method via the MPM list.
도 54를 참조하여 추가된 DC 모드인 Horizontal DC 모드, Vertical DC 모드에 대한 파싱 방법에 대해 설명한다. 비디오 신호 처리 장치는 반복적으로 CABAC을 사용하고, 엔트로피 디코딩(decodeBin())을 수행하여 획득(출력)된 값을 임시 변수 'b'에 더한 후, 'b'의 값에 따라 현재 블록에 대한 인트라 예측 모드를 설정할 수 있다. 비디오 신호 처리 장치는 처음 decodeBin1()에 의해 디코딩된 'b'의 값이 0인 경우, 현재 블록에 대한 인트라 예측 모드는 기존의 평면 예측 모드로 설할 수 있다. 디코더는 디코딩된 'b'의 값이 0보다 큰 경우, 다음 decodeBin2()에 의해 디코딩된 값을 'b'에 더한 후, 'b'의 값이 1인 경우, 현재 블록에 대한 인트라 예측 모드를 수평 방향으로의 선형 평면 예측 모드(Horizontal Planar)로 설정할 수 있다. 비디오 신호 처리 장치는 디코딩된 'b'의 값이 1보다 큰 경우, 다음 decodeBin3()에 의해 디코딩된 값을 'b'에 더한 후, 'b'의 값이 2인 경우, 현재 블록에 대한 인트라 예측 모드를 수직 방향으로의 선형 평면 예측 모드(Vertical Planar)로 설정할 수 있다. 비디오 신호 처리 장치는 디코딩된 'b'의 값이 2보다 큰 경우, 다음 decodeBin4()에 의해 디코딩된 값을 'b'에 더한 후, b의 값이 '3'인 경우, 현재 블록에 대한 인트라 예측 모드를 좌측 화소 값들의 평균을 사용하는 DC 모드(Horizontal DC, dcIdx를 '1'로 설정)로 설정할 수 있다. 비디오 신호 처리 장치는 'b'의 값이 3보다 큰 경우, 현재 블록에 대한 인트라 예측 모드를 상측 화소 값들의 평균을 사용하는 DC 모드(Vertical DC, dcIdx를 '2'로 설정)로 설정할 수 있다. Referring to FIG. 54, a parsing method for the added DC modes, Horizontal DC mode and Vertical DC mode, is described. The video signal processing device can repeatedly use CABAC, perform entropy decoding (decodeBin()), add the obtained (output) value to the temporary variable 'b', and then set the intra prediction mode for the current block according to the value of 'b'. If the value of 'b' decoded by decodeBin1() for the first time is 0, the video signal processing device can set the intra prediction mode for the current block to the existing planar prediction mode. If the value of the decoded 'b' is greater than 0, the decoder adds the value decoded by the next decodeBin2() to 'b', and if the value of 'b' is 1, the intra prediction mode for the current block can be set to the horizontal planar linear prediction mode (Horizontal Planar). The video signal processing device can set the intra prediction mode for the current block to a vertical planar linear prediction mode (Vertical Planar) after adding the value decoded by decodeBin3() to 'b' if the value of the decoded 'b' is greater than 1, and if the value of 'b' is 2, the video signal processing device can set the intra prediction mode for the current block to a DC mode (Horizontal DC, dcIdx set to '1') using the average of the left pixel values if the value of 'b' is greater than 2, and if the value of 'b' is added to 'b' if the value of b is '3'. The video signal processing device can set the intra prediction mode for the current block to a DC mode (Vertical DC, dcIdx set to '2') using the average of the upper pixel values if the value of 'b' is greater than 3.
비디오 신호 처리 장치는 상측 화소 값들의 평균을 사용하는 DC 모드(Vertical DC)에 대한 dcIdx의 값을 1로 설정할 수 있고, 좌측 화소 값들의 평균을 사용하는 DC 모드(Horizontal DC)에 대한 dcIdx의 값을 2로 설정할 수 있다. dcIdx 값이 변경되는 경우, 도 54의 파싱과정에 의한 인트라 예측 모드를 설정하는 방법도 다음과 같이 변경될 수 있다. 예를 들어, 비디오 신호 처리 장치는 디코딩된 'b'의 값이 2보다 큰 경우, 다음 decodeBin4()에 의해 디코딩된 값을 'b'에 더한 후, 'b'의 값이 3인 경우, 현재 블록에 대한 인트라 예측 모드를 상측 화소 값들의 평균을 사용하는 DC 모드(Vertical DC, dcIdx를 '1'로 설정)로 설정할 수 있다. 비디오 신호 처리 장치는 'b'의 값이 3보다 큰 경우, 현재 블록에 대한 인트라 예측 모드를 좌측 화소 값들의 평균을 사용하는 DC 모드(Horizontal DC, dcIdx를 '2'로 설정)로 설정할 수 있다.The video signal processing device can set the value of dcIdx for the DC mode (Vertical DC) that uses the average of the upper pixel values to 1, and can set the value of dcIdx for the DC mode (Horizontal DC) that uses the average of the left pixel values to 2. If the dcIdx value is changed, the method of setting the intra prediction mode by the parsing process of Fig. 54 can also be changed as follows. For example, the video signal processing device can set the intra prediction mode for the current block to the DC mode (Vertical DC, dcIdx set to '1') that uses the average of the upper pixel values after adding the value decoded by the next decodeBin4() to 'b' if the value of 'b' is 3. The video signal processing device can set the intra prediction mode for the current block to the DC mode (Horizontal DC, dcIdx set to '2') that uses the average of the left pixel values when the value of 'b' is greater than 3.
도 54의 엔트로피 디코딩(decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4())에서 사용되는 확률 모델은 서로 상이할 수 있다. 또는 하나의 확률 모델을 사용하여 decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4()에 대한 엔트로피 디코딩이 수행될 수 있다.The probability models used in the entropy decoding (decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4()) of Fig. 54 may be different from each other. Alternatively, entropy decoding for decodeBin1(), decodeBin2(), decodeBin3(), decodeBin4() may be performed using a single probability model.
도 55는 본 발명의 일 실시예에 따른 평면 모드 선택 정보 및 DC 모드 선택 정보에 대한 이진화(binarization) 또는 빈 스트링(bin string)을 나타낸다.FIG. 55 illustrates binarization or bin strings for planar mode selection information and DC mode selection information according to one embodiment of the present invention.
이진화(binarization)와 빈 스트링(bin string)은 동일한 의미로 사용될 수 있으며, CABAC의 엔트로피 코딩 및 디코딩 과정에서 각 신택스들을 이진 코드로 변환하기 위해 사용될 수 있다. 각 신택스마다 이진화 방법은 달라질 수 있다. 이진화된 빈 스트링(bin string)을 생성하기 위해 가변 길이 방식 또는 고정 길이 방식이 사용될 수 있다. 신택스의 임의의 심볼(symbol)이 발생할 확률의 분포에 따라 가변 길이 방식 또는 고정 길이 방식이 선택되어 사용될 수 있다. 신택스의 임의의 심볼(symbol)이 발생할 확률과 다른 심볼이 발생할 확률이 동일하다면, 고정 길이 방식이 사용될 수 있다. 신택스의 임의의 심볼(symbol)이 발생할 확률이 다른 심볼의 발생 확률보다 크게 높다면, 가변 길이 방식이 사용될 수 있다. 도 55(a)는 가변 길이 방식으로 이진화된 빈 스트링을 나타내고, 도 55(b)는 고정길이 방식으로 이진화된 빈 스트링을 나타낸다. 도 54의 방법에서 사용된 평면 모드 선택 정보 및 DC 모드 선택 정보에 대한 이진화된 비트스트림은 도 55(a)를 사용한 것일 수 있다.Binarization and bin string can be used interchangeably, and can be used to convert each syntax into a binary code in the entropy coding and decoding process of CABAC. The binarization method can be different for each syntax. A variable length method or a fixed length method can be used to generate a binarized bin string. Depending on the distribution of the probability that an arbitrary symbol of the syntax occurs, the variable length method or the fixed length method can be selected and used. If the probability that an arbitrary symbol of the syntax occurs is the same as the probability that another symbol occurs, the fixed length method can be used. If the probability that an arbitrary symbol of the syntax occurs is significantly higher than the probability that another symbol occurs, the variable length method can be used. Fig. 55(a) shows an bin string binarized by a variable length method, and Fig. 55(b) shows an bin string binarized by a fixed length method. The binarized bitstream for the planar mode selection information and DC mode selection information used in the method of Fig. 54 may be that used in Fig. 55(a).
도 56은 본 발명의 일 실시예에 따른 DC 예측 모드에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 56 illustrates a method for generating a prediction block for a current block according to a DC prediction mode according to one embodiment of the present invention.
도 56을 참조하면 DC 예측 모드를 지시하는 변수(정보)인 dcIdx의 값이 0인 경우, 비디오 신호 처리 장치는 기존의 DC 예측 방법을 수행할 수 있다. 현재 블록의 세로와 가로의 크기가 같다면 비디오 신호 처리 장치는 현재 블록의 상단 및 좌측의 모든 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 가로의 크기가 세로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 상단 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 좌측 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. Referring to FIG. 56, if the value of dcIdx, which is a variable (information) indicating a DC prediction mode, is 0, the video signal processing device can perform the existing DC prediction method. If the vertical and horizontal sizes of the current block are the same, the video signal processing device can generate a prediction block for the current block using the average value of all reference pixels on the top and left sides of the current block. If the horizontal size of the current block is larger than the vertical size, the video signal processing device can generate a prediction block for the current block using the average value of the upper reference pixels of the current block. If the vertical size of the current block is larger than the horizontal size, the video signal processing device can generate a prediction block for the current block using the average value of the left reference pixels of the current block.
dcIdx의 값이 0이 아닌 경우 현재 블록에 대한 예측 블록을 생성하는 방법은 다음과 같다(5610). dcIdx의 값이 1인 경우, 비디오 신호 처리 장치는 현재 블록의 좌측 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. dcIdx의 값이 2인 경우, 비디오 신호 처리 장치는 현재 블록의 상단 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.A method for generating a prediction block for a current block when the value of dcIdx is not 0 is as follows (5610). When the value of dcIdx is 1, the video signal processing device can generate a prediction block for the current block using an average value of left reference pixels of the current block. When the value of dcIdx is 2, the video signal processing device can generate a prediction block for the current block using an average value of upper reference pixels of the current block.
도 57은 본 발명의 일 실시예에 따른 DC 모드 선택 정보를 결정하는 방법을 나타낸다.Figure 57 illustrates a method for determining DC mode selection information according to one embodiment of the present invention.
인코더는 현재 블록의 가로의 크기와 세로의 크기가 같은 경우에만, DC 모드 선택 정보를 포함하는 비트스트림을 생성하고 시그널링할 수 있다. 디코더는 현재 블록의 가로의 크기와 세로의 크기가 같은 경우에만, 비트스트림에 포함된 DC 모드 선택 정보를 파싱할 수 있고, 파싱 결과에 기초하여 현재 블록에 대한 인트라 예측 모드를 설정할 수 있다. An encoder can generate and signal a bitstream including DC mode selection information only when the width and height of the current block are the same. A decoder can parse the DC mode selection information included in the bitstream only when the width and height of the current block are the same, and set an intra prediction mode for the current block based on the parsing result.
도 57(a)를 참조하면, 디코더는 현재 블록의 가로의 크기와 세로의 크기를 비교한 결과(예, 동일한지 여부), 'b' 값 중 적어도 어느 하나 이상에 기초하여 평면 모드 선택 정보, DC 모드 선택 정보를 파싱할 수 있다. 도 57(b)를 참조하면 디코더는 도 57(a)의 과정을 통해 획득한 'b'값을 사용하여 현재 블록에 대한 인트라 예측 모드를 설정할 수 있다. 예를 들어, 'b' 값이 0이면 plIdx의 값은 0으로 설정(즉, 기존 평면 예측 모드)되고, 'b' 값이 1이면 plIdx의 값은 1로 설정(즉, 수평 방향으로의 선형 평면 예측 모드)되고, 'b' 값이 2이면 plIdx의 값은 2로 설정(즉, 수직 방향으로의 선형 평면 예측 모드)될 수 있다.Referring to Fig. 57(a), the decoder can parse the planar mode selection information and the DC mode selection information based on at least one of the 'b' values and the result of comparing the horizontal size and the vertical size of the current block (e.g., whether they are the same). Referring to Fig. 57(b), the decoder can set the intra prediction mode for the current block using the 'b' value obtained through the process of Fig. 57(a). For example, if the 'b' value is 0, the value of plIdx may be set to 0 (i.e., the existing planar prediction mode), if the 'b' value is 1, the value of plIdx may be set to 1 (i.e., the linear planar prediction mode in the horizontal direction), and if the 'b' value is 2, the value of plIdx may be set to 2 (i.e., the linear planar prediction mode in the vertical direction).
도 58은 본 발명의 일 실시예에 따른 DC 모드 선택 정보에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 58 illustrates a method for generating a prediction block for a current block according to DC mode selection information according to one embodiment of the present invention.
도 58을 참조하면, 현재 블록의 세로와 가로의 크기가 동일하면, 비디오 신호 처리 장치는 DC 모드 선택 정보(dcIdx)를 추가로 확인할 수 있다(5810). dcIdx의 값이 0인 경우, 비디오 신호 처리 장치는 현재 블록의 상단 및 좌측의 모든 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. dcIdx의 값이 1인 경우, 비디오 신호 처리 장치는 현재 블록의 좌측의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. dcIdx의 값이 2인 경우, 비디오 신호 처리 장치는 현재 블록의 상단의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. Referring to FIG. 58, if the vertical and horizontal sizes of the current block are the same, the video signal processing device can additionally check DC mode selection information (dcIdx) (5810). If the value of dcIdx is 0, the video signal processing device can generate a prediction block for the current block using the average value of all reference pixels on the top and left of the current block. If the value of dcIdx is 1, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels on the left of the current block. If the value of dcIdx is 2, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels on the top of the current block.
현재 블록의 가로의 크기가 세로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 상단의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 좌측의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.If the horizontal size of the current block is greater than the vertical size, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the top of the current block. If the vertical size of the current block is greater than the horizontal size, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the left side of the current block.
인코더는 DC 모드 선택 정보를 평면 모드 선택 정보와 함께 시그널링하고, 디코더는 평면 모드 선택 정보와 DC 모드 선택 정보를 함께 파싱하므로, 본 명세서에서는 평면 모드 선택 정보와 DC 모드 선택 정보를 통합하여 통합 방향 모드(directional mode)로 기술할 수 있다.Since the encoder signals DC mode selection information together with planar mode selection information, and the decoder parses the planar mode selection information and DC mode selection information together, the planar mode selection information and DC mode selection information can be integrated and described as a unified directional mode in this specification.
도 59는 본 발명의 일 실시예에 따른 통합 방향 모드에 따라 현재 블록에 대한 예측 블록을 생성하는 방법을 나타낸다.FIG. 59 illustrates a method for generating a prediction block for a current block according to an integrated direction mode according to one embodiment of the present invention.
도 59를 참조하면 비디오 신호 처리 장치는 통합 방향 모드가 현재 블록의 상단의 참조 화소 값들의 평균을 사용하는 DC 모드(Above DC 모드) 또는 Vertical DC 모드인 경우, 현재 블록의 상단 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 통합 방향 모드가 현재 블록의 좌측의 참조 화소 값들의 평균을 사용하는 DC 모드(Left DC 모드) 또는 Horizontal DC 모드인 경우, 현재 블록의 좌측 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다(5910). Referring to FIG. 59, the video signal processing device can generate a prediction block for the current block by using the average value of the upper reference pixels of the current block when the integrated direction mode is the DC mode (Above DC mode) or the Vertical DC mode that uses the average of the reference pixel values at the top of the current block. The video signal processing device can generate a prediction block for the current block by using the average value of the left reference pixels of the current block when the integrated direction mode is the DC mode (Left DC mode) or the Horizontal DC mode that uses the average of the reference pixel values at the left of the current block (5910).
통합 방향 모드가 Above DC 모드 또는 Vertical DC 모드가 아니고, Left DC 모드 또는 Horizontal DC 모드도 아닌 경우, 비디오 신호 처리 장치는 기존의 DC 모드로 현재 블록에 대한 예측 블록을 생성할 수 있다. 이때, 현재 블록의 세로와 가로의 크기가 동일하다면 비디오 신호 처리 장치는 현재 블록의 상단 및 좌측의 모든 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록의 가로의 크기가 세로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 상단 참조 화소들의 평균값을 사용하여 현재 블록에 대한 예특 블록을 생성할 수 있다. 현재 블록의 세로의 크기가 가로보다 크다면, 비디오 신호 처리 장치는 현재 블록의 좌측의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.If the unified direction mode is neither the Above DC mode nor the Vertical DC mode nor the Left DC mode nor the Horizontal DC mode, the video signal processing device can generate the prediction block for the current block in the conventional DC mode. At this time, if the vertical and horizontal sizes of the current block are the same, the video signal processing device can generate the prediction block for the current block using the average value of all reference pixels on the top and the left side of the current block. If the horizontal size of the current block is larger than the vertical size, the video signal processing device can generate the prediction block for the current block using the average value of the upper reference pixels of the current block. If the vertical size of the current block is larger than the horizontal size, the video signal processing device can generate the prediction block for the current block using the average value of the reference pixels on the left side of the current block.
도 60은 본 발명의 일 실시예에 따른 통합 방향 모드에 대한 이진화 또는 빈 스트링을 나타낸다.FIG. 60 illustrates a binarization or empty string for an integrated direction mode according to one embodiment of the present invention.
도 60(a)는 상술한 도 55(a)와 유사하며, 도 55(a)의 Horizontal DC 모드가 Above DC 모드로 변경되었고, 도 55(a)의 Vertical DC 모드가 Left DC 모드로 변경되어 이진화된 빈 스트링을 나타낸다.Fig. 60(a) is similar to Fig. 55(a) described above, except that the Horizontal DC mode of Fig. 55(a) is changed to Above DC mode, and the Vertical DC mode of Fig. 55(a) is changed to Left DC mode to represent a binarized empty string.
현재 블록의 가로의 길이가 세로의 길이보다 크다면, 현재 블록의 예측 블록 생성을 위해 Above DC 모드가 묵시적으로 사용될 수 있다. 이 경우 인코더는 현재 블록이 Above DC 모드, Left DC 모드 중에 어느 모드를 사용했는지를 시그널링하지 않을 수 있다. 단지 인코더는 현재 블록의 가로의 길이가 세로의 길이보다 큰 경우, 명시적 DC 모드(explicit DC 모드)가 적용되었는지 여부에 대한 정보만을 시그널링할 수 있다. 디코더는 현재 블록의 가로의 길이가 세로의 길이보다 큰 경우, 명시적 DC 모드가 적용되었는지 여부에 대한 정보를 파싱하여, 명시적 DC 모드가 적용되었다면, Above DC 모드 및 Left DC 모드 중에서 Left DC 모드를 사용할 수 있다.If the width of the current block is greater than its height, the Above DC mode can be implicitly used for generating the prediction block of the current block. In this case, the encoder may not signal which mode the current block uses among the Above DC mode and the Left DC mode. The encoder may only signal information about whether the explicit DC mode is applied when the width of the current block is greater than its height. The decoder parses the information about whether the explicit DC mode is applied when the width of the current block is greater than its height, and if the explicit DC mode is applied, it may use the Left DC mode among the Above DC mode and the Left DC mode.
현재 블록의 가로의 길이와 세로의 길이가 동일한 경우, 인코더는 도 60(a)와 같이 Above DC, Left DC 모드에 대한 시그널링 방법을 모두 적용할 수 있다. 디코더는 현재 블록의 가로의 길이와 세로의 길이가 동일한 경우, 도 60(a)와 같이 통합 방향 모드를 파싱할 수 있으며, Above DC, Left DC 모드 중에서 어떠한 모드가 현재 블록에 적용되는지 설정할 수 있다.If the horizontal and vertical lengths of the current block are the same, the encoder can apply both signaling methods for the Above DC and Left DC modes, as shown in Fig. 60(a). If the horizontal and vertical lengths of the current block are the same, the decoder can parse the integrated direction mode, as shown in Fig. 60(a), and set which mode among the Above DC and Left DC modes is applied to the current block.
도 61은 본 발명의 일 실시예에 따른 현재 블록에 대한 예측 블록을 생성하기 위한 참조 화소들을 나타낸다.FIG. 61 illustrates reference pixels for generating a prediction block for a current block according to one embodiment of the present invention.
구체적으로, 도 61은 Above DC 모드, Left DC 모드로 인해, 가능하게 되는 예측 방법을 예시한다. 도 61을 참조하면 현재 블록의 가로의 길이와 세로의 길이가 동일한 경우, 비디오 신호 처리 장치는 현재 블록의 상단의 참조 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다(6110). 또는 현재 블록의 가로의 길이와 세로의 길이가 동일한 경우, 비디오 신호 처리 장치는 현재 블록의 좌측의 참조 화소들의 평균값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다(6120). 또한, 현재 블록의 가로의 길이가 세로의 길이보다 큰 경우, 비디오 신호 처리 장치는 현재 블록의 좌측의 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다(6130). 또한, 현재 블록의 가로의 길이가 세로의 길이보다 작은 경우, 비디오 신호 처리 장치는 현재 블록의 상단의 화소들의 평균 값을 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다(6140).Specifically, FIG. 61 illustrates a prediction method that is enabled by the Above DC mode and the Left DC mode. Referring to FIG. 61, if the horizontal length and the vertical length of the current block are the same, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the top of the current block (6110). Alternatively, if the horizontal length and the vertical length of the current block are the same, the video signal processing device can generate a prediction block for the current block using the average value of the reference pixels at the left side of the current block (6120). In addition, if the horizontal length of the current block is greater than the vertical length, the video signal processing device can generate a prediction block for the current block using the average value of the pixels at the left side of the current block (6130). In addition, if the horizontal length of the current block is less than the vertical length, the video signal processing device can generate a prediction block for the current block using the average value of the pixels at the top of the current block (6140).
인코더는 새로운 DC 모드(Above DC 모드, Left DC 모드)를 평면 모드의 하위 모드로 시그널링 할 수 있다. 디코더도 새로운 DC 모드를 평면 모드의 하위 모드로 파싱할 수 있다. 현재 블록에 새로운 DC 모드가 적용되는 경우, 현재 블록에 대한 예측 블록을 위한 예측 모드는 평면 모드로 설정될 수 있다. 단, 비디오 신호 처리 장치가 현재 블록에 대한 예측 블록을 생성할 때 현재 블록이 새로운 DC 모드인 경우, 예측 블록을 위한 예측 모드는 새로운 DC 모드일 수 있다. 또한, 비디오 신호 처리 장치가 변환 커널을 유도할 때에도 현재 블록에 새로운 DC 모드가 적용되는 경우, 비디오 신호 처리 장치가 변환 커널을 유도할 때, 비디오 신호 처리 장치는 예측 모드를 DC 모드로 변경하여 유도할 수 있다. 예측 모드가 Above DC 모드인 경우 비디오 신호 처리 장치는 수직 방향 변환 커널 유도 방식을 사용할 수 있고, Left DC 모드인 경우 비디오 신호 처리 장치는 수평 방향 변환 커널 유도 방식을 사용할 수 있다. 예측 모드가 Above DC 모드인 경우 비디오 신호 처리 장치는 수평 방향 변환 커널 유도 방식을 사용할 수 있다. 예측 모드가 Left DC 모드인 경우 비디오 신호 처리 장치는 수직 방향 변환 커널 유도 방식을 사용할 수 있다. 변환 커널은 1차 변환과 2차 변환 커널 일 수 있다.The encoder can signal the new DC mode (Above DC mode, Left DC mode) as a sub-mode of the planar mode. The decoder can also parse the new DC mode as a sub-mode of the planar mode. When the new DC mode is applied to the current block, the prediction mode for the prediction block for the current block can be set to the planar mode. However, when the video signal processing device generates the prediction block for the current block, if the current block is in the new DC mode, the prediction mode for the prediction block can be the new DC mode. In addition, when the video signal processing device derives the transform kernel, if the new DC mode is applied to the current block, the video signal processing device can change the prediction mode to the DC mode when deriving the transform kernel. When the prediction mode is the Above DC mode, the video signal processing device can use the vertical transform kernel derivation method, and when the prediction mode is the Left DC mode, the video signal processing device can use the horizontal transform kernel derivation method. When the prediction mode is the Above DC mode, the video signal processing device can use the horizontal transform kernel derivation method. When the prediction mode is Left DC mode, the video signal processing device can use a vertical direction transform kernel derivation method. The transform kernel can be a first-order transform kernel and a second-order transform kernel.
비디오 신호 처리 장치는 현재 블록에 새로운 DC 모드가 적용된 경우, 현재 블록의 주변 샘플들 및/또는 참조 샘플 패딩 과정에 의해 획득된 참조 샘플들에 필터링을 수행하여 필터링된 참조 샘플들을 획득할 수 있다. 그리고 비디오 신호 처리 장치는, 획득된 참조 샘플들을 이용하여 현재 블록의 샘플들을 예측할 수 있다. 또는 참조 샘플들에 대한 필터링은 현재 블록이 임의의 정해진 크기보다 큰 경우에만 수행될 수 있다. 또는 참조 샘플들에 대한 필터링은 현재 블록이 임의의 정해진 크기보다 작은 경우에만 수행될 수 있다. 임의의 정해진 크기는 현재 블록의 가로의 길이와 세로의 길이의 곱으로 나타내어 질 수 있으며, 임의의 정해진 크기는 예를 들어 32일 수 있다. 비디오 신호 처리 장치는 현재 블록에 새로운 DC 모드가 적용되는 경우, 현재 블록의 주변 샘플들 및/또는 참조 샘플 패딩 과정에 의해 획득된 참조 샘플들에 필터링을 수행하지 않은 참조 샘플들을 이용하여 현재 블록의 샘플들을 예측할 수 있다. 주변 샘플들은 적어도 하나의 참조 라인 상의 샘플들을 포함할 수 있다. 예를 들어, 주변 샘플들은 현재 블록의 경계에 인접한 라인 상의 인접 샘플들을 포함할 수 있다. The video signal processing device may obtain filtered reference samples by performing filtering on surrounding samples of the current block and/or reference samples obtained by the reference sample padding process when a new DC mode is applied to the current block. Then, the video signal processing device may predict samples of the current block using the obtained reference samples. Alternatively, filtering on the reference samples may be performed only when the current block is larger than a predetermined size. Alternatively, filtering on the reference samples may be performed only when the current block is smaller than a predetermined size. The predetermined size may be expressed as the product of the width and height of the current block, and the predetermined size may be, for example, 32. The video signal processing device may predict samples of the current block using reference samples obtained by the surrounding samples of the current block and/or reference samples obtained by the reference sample padding process when a new DC mode is applied to the current block. The surrounding samples may include samples on at least one reference line. For example, the surrounding samples may include adjacent samples on a line adjacent to a boundary of the current block.
비디오 신호 처리 장치는 현재 블록에 대한 MPM 리스트를 유도할 때, 주변 블록에 새로운 DC 모드가 적용되는 경우, 주변 블록에 대한 인트라 예측 모드는 평면 모드가 아닌 DC 모드로 변경되어 MPM 리스트에 추가될 수 있다. 비디오 신호 처리 장치는 현재 블록에 대한 MPM 리스트를 유도할 때, 주변 블록에 새로운 DC 모드가 적용되는 경우, 주변 블록을 사용하여 유도된 DIMD 모드가 MPM 리스트에 추가될 수 있다.When the video signal processing device derives an MPM list for a current block, if a new DC mode is applied to a neighboring block, the intra prediction mode for the neighboring block may be changed from a planar mode to a DC mode and added to the MPM list. When the video signal processing device derives an MPM list for a current block, if a new DC mode is applied to a neighboring block, a DIMD mode derived using the neighboring block may be added to the MPM list.
현재 블록이 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 예측 블록에 PDPC 필터링을 수행하여 필터링된 예측 블록을 생성할 수 있다.If the current block is generated as a prediction block by explicitly using any one of the three DC prediction modes, the video signal processing device can perform PDPC filtering on the prediction block to generate a filtered prediction block.
현재 블록이 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 예측 블록에 PDPC 필터링을 수행하지 않을 수 있다.If the current block is generated as a prediction block by explicitly using any one of the three DC prediction modes, the video signal processing device may not perform PDPC filtering on the prediction block.
현재 블록이 3가지 DC 예측 모드 중에서 어느 하나의 예측 모드를 명시적으로 사용하여 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 기존의 DC 예측 모드 기반의 PDPC 필터링을 수행하지 않고, 수평 각도 모드(예, 도 6의 18번 각도 모드) 또는 수직 각도 모드(예, 도 6의 50번 각도 모드) 기반의 PDPC 필터링을 수행할 수 있다. 예를 들어, 현재 블록의 좌측의 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 수평 각도 모드(예, 도 6의 18번 각도 모드) 기반의 PDPC 필터링을 수행할 수 있다. 또는, 현재 블록의 좌측의 화소 값들의 평균을 사용하는 DC 모드를 사용하여 현재 블록의 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 수직 각도 모드(예, 도 6의 50번 각도 모드)기반의 PDPC 필터링을 수행할 수 있다.If the prediction block of the current block is generated by explicitly using one of the three DC prediction modes, the video signal processing device may perform PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6) or the vertical angle mode (e.g., the 50-degree angle mode of FIG. 6) instead of performing PDPC filtering based on the conventional DC prediction mode. For example, if the prediction block of the current block is generated by using the DC mode that uses the average of the pixel values on the left side of the current block, the video signal processing device may perform PDPC filtering based on the horizontal angle mode (e.g., the 18-degree angle mode of FIG. 6). Alternatively, if the prediction block of the current block is generated by using the DC mode that uses the average of the pixel values on the left side of the current block, the video signal processing device may perform PDPC filtering based on the vertical angle mode (e.g., the 50-degree angle mode of FIG. 6).
새로운 DC 모드로 인한 시그널링 비트를 줄이기 위해서, 인코더는 현재 블록에 새로운 DC 모드가 적용되었는지에 대한 정보(예, 플래그)만을 비트스트림에 포함시켜 시그널링할 수 있다. 디코더는 현재 블록에 새로운 DC 모드가 적용되었는지에 대한 정보를 파싱하여 현재 블록에 새로운 DC 모드가 적용되었는지 여부를 확인하고 설정할 수 있다. 현재 블록에 새로운 DC 모드가 적용된 경우, 비디오 신호 처리 장치는 2가지의 DC 모드(즉, Above DC 모드, Left DC 모드) 중에서 어떤 모드를 현재 블록에 적용할지에 대해 묵시적으로 선택할 수 있다. 비디오 신호 처리 장치는 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드, 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드의 블렌딩 여부, 현재 블록의 주변 블록의 인트라 예측 방향성 모드, 현재 블록의 주변 블록의 부호화 모드, 현재 블록의 가로의 크기와 세로의 크기가 동일한지 여부, 현재 블록의 가로의 크기와 현재 블록의 세로의 크기의 비교 중에서 적어도 하나 이상을 사용하여 2가지의 DC 모드(Above DC 모드, Left DC 모드) 중에서 어떤 모드를 현재 블록에 적용할지를 결정할 수 있다. 예를 들어, 비디오 신호 처리 장치는 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 임의의 값보다 크거나 같다면, 현재 블록에 Above DC 모드를 적용하여 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 임의의 값보다 작다면, 현재 블록에 Left DC 모드를 적용하여 예측 블록을 생성할 수 있다. 임의의 값은 정수일 수 있고, 예를 들어, 도 6의 대각 모드의 값인 34가 될 수 있다. 비디오 신호 처리 장치가 2가지의 DC 모드(즉, Above DC 모드, Left DC 모드) 중에서 어떤 모드를 현재 블록에 적용할지에 대해 묵시적으로 선택하는 방법은, 현재 블록의 가로의 크기와 세로의 크기가 동일한 경우에 적용될 수 있다. To reduce signaling bits due to the new DC mode, the encoder can signal only the information (e.g., a flag) about whether the new DC mode is applied to the current block in the bitstream. The decoder can parse the information about whether the new DC mode is applied to the current block to check and set whether the new DC mode is applied to the current block. If the new DC mode is applied to the current block, the video signal processing unit can implicitly select which of the two DC modes (i.e., Above DC mode and Left DC mode) to apply to the current block. The video signal processing device can determine which of the two DC modes (Above DC mode, Left DC mode) to apply to the current block by using at least one of the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD, whether to blend the DIMD modes derived from the surrounding pixels of the current block, the intra prediction directional mode of the surrounding blocks of the current block, the encoding mode of the surrounding blocks of the current block, whether the horizontal size of the current block is the same as the vertical size of the current block, and a comparison of the horizontal size of the current block and the vertical size of the current block. For example, the video signal processing device can generate the prediction block by applying the Above DC mode to the current block if the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to an arbitrary value. The video signal processing device can generate the prediction block by applying the Left DC mode to the current block if the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is less than the arbitrary value. Any value can be an integer, for example, 34, which is the value of the diagonal mode in Fig. 6. The method by which the video signal processing device implicitly selects which of the two DC modes (i.e., Above DC mode and Left DC mode) to apply to the current block can be applied when the horizontal and vertical sizes of the current block are the same.
현재 블록의 주변 픽셀로부터 유도된 DIMD 모드가 평면 모드 또는 DC 모드인 경우, DIMD 모드는 블렌딩이 적용되지 않은 DIMD 모드일 수 있고, 이때에는 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드에는 하나의 인트라 예측 방향성 모드만 존재할 수 있다. 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드가 평면 모드 또는 DC 모드가 아닌 경우, DIMD 모드는 블렌딩이 적용되는 DIMD 모드이고, 이때에는 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드는 2개 이상일 수 있다.If the DIMD mode derived from the surrounding pixels of the current block is a planar mode or a DC mode, the DIMD mode can be a DIMD mode without blending, in which case there can be only one intra prediction directional mode in the DIMD mode derived from the surrounding pixels of the current block. If the DIMD mode derived from the surrounding pixels of the current block is not a planar mode or a DC mode, the DIMD mode is a DIMD mode with blending, in which case there can be two or more DIMD modes derived from the surrounding pixels of the current block.
현재 블록에 새로운 DC 모드가 적용되고, 현재 블록의 가로의 크기가 세로의 크기보다 큰 경우, Above DC 모드는 기존의 DC모드이므로, 비디오 신호 처리 장치는 Left DC 모드를 적용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 현재 블록에 새로운 DC 모드가 적용되고, 현재 블록의 세로의 크기가 가로의 크기보다 큰 경우, 비디오 신호 처리 장치는 Above DC 모드를 적용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. If a new DC mode is applied to the current block and the horizontal size of the current block is larger than the vertical size, the Above DC mode is the existing DC mode, so the video signal processing device can apply the Left DC mode to generate a prediction block for the current block. If a new DC mode is applied to the current block and the vertical size of the current block is larger than the horizontal size, the video signal processing device can apply the Above DC mode to generate a prediction block for the current block.
새로운 DC 모드로 인한 시그널링 비트를 줄이기 위해서, 비디오 신호 처리 장치는 새로운 DC 모드에 대한 시그널링 및 파싱을 수행하지 않고, 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드, 현재 블록의 주변 블록의 인트라 예측 방향성 모드, 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드의 블렌딩 여부, 현재 블록의 주변 블록의 부호화 모드, 현재 블록의 가로의 길이와 세로의 길이가 동일한지 여부, 현재 블록의 가로의 길이와 현재 블록의 세로의 길이의 비교 중에서 적어도 하나 이상을 사용하여 3가지의 DC 모드 중에서 어떤 모드를 현재 블록에 적용할지를 결정할 수 있다. In order to reduce signaling bits due to the new DC mode, the video signal processing device may determine which of the three DC modes to apply to the current block by using at least one of: an intra prediction directional mode derived using DIMD from surrounding pixels of the current block, an intra prediction directional mode of a surrounding block of the current block, whether to blend DIMD modes derived from surrounding pixels of the current block, an encoding mode of a surrounding block of the current block, whether the horizontal length and the vertical length of the current block are the same, and a comparison of the horizontal length of the current block and the vertical length of the current block.
예를 들어, a. 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 제1 임의의 값보다 같거나 크고 제2 임의의 값보다 작은 경우(케이스 a), 비디오 신호 처리 장치는 Left DC 모드를 적용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 케이스 a가 아닌 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 제2 임의의 값보다 같거나 크고 제3 임의의 값보다 작은 경우(케이스 b), 비디오 신호 처리 장치는 Above DC 모드 및 Left DC 모드를 적용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 케이스 b가 아닌 현재 블록의 주변 픽셀로부터 DIMD를 사용하여 유도된 인트라 예측 방향성 모드가 제3 임의의 값보다 같거나 큰 경우(케이스 c), 비디오 신호 처리 장치는 Above DC 모드를 적용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 이러한 방법(케이스 a, b, c)은 현재 블록의 가로의 크기와 세로의 크기가 동일한 경우에 적용될 수 있다. 또한 이러한 방법은 현재 블록의 주변 픽셀로부터 유도된 DIMD 모드에 블렌딩이 적용되지 않는 경우(현재 블록의 주변 픽셀로부터 유도된 DIMD 모드가 하나의 인트라 예측 방향성 모드만 존재하는 경우)에 적용될 수 있다. 이때, 제1 임의의 값, 제2 임의의 값, 제3 임의의 값은 현재 블록의 가로의 크기와 세로의 크기에 따라 달라질 수 있는 정수 값으로 예를 들어, 각각 2, 26, 42일 수 있다.For example, a. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to the first arbitrary value and less than the second arbitrary value (case a), the video signal processing device can apply the Left DC mode to generate a prediction block for the current block. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to the second arbitrary value and less than the third arbitrary value (case b), the video signal processing device can apply the Above DC mode and the Left DC mode to generate a prediction block for the current block. If the intra prediction directional mode derived from the surrounding pixels of the current block using DIMD is greater than or equal to the third arbitrary value (case c), the video signal processing device can apply the Above DC mode to generate a prediction block for the current block. These methods (cases a, b, and c) can be applied when the horizontal and vertical sizes of the current block are the same. Furthermore, this method can be applied when no blending is applied to the DIMD mode derived from the surrounding pixels of the current block (when the DIMD mode derived from the surrounding pixels of the current block has only one intra prediction directional mode). In this case, the first random value, the second random value, and the third random value are integer values that can vary depending on the horizontal and vertical sizes of the current block, for example, 2, 26, and 42, respectively.
도 30을 참조하여 상술한 TMRL 방법은 최적의 인트라 방향성 모드, ISP 모드의 적용 여부, Intra TMP 및 IBC 모드의 적용 여부, SGPM 모드의 적용 여부, 여러 개 인트라 방향성 모드들의 가중치 평균 방법의 적용 여부를 결정하는 방법에 확장되어 사용될 수 있다.The TMRL method described above with reference to FIG. 30 can be extended and used to determine the optimal intra directional mode, whether to apply the ISP mode, whether to apply the Intra TMP and IBC modes, whether to apply the SGPM mode, and whether to apply the weighted average method of multiple intra directional modes.
비디오 신호 처리 장치는 현재 블록에 인접한 참조 픽셀 라인을 사용하여 기준 템플릿(예, 도 30의 템플릿)을 구성할 수 있다. 기준 템플릿의 크기는 현재 블록의 가로 및 세로의 크기에 기초하여 설정될 수 있다. 이때, 상단 기준 템플릿의 너비는 현재 블록의 너비와 동일할 수 있다. 또는 상단 기준 템플릿의 너비는 현재 블록의 너비보다 크거나 작을 수 있다. 상단 기준 템플릿의 높이는 임의의 크기인 M이 될 수 있다. 또한, 좌측 기준 템플릿의 높이는 현재 블록의 높이와 동일할 수 있다. 또는 좌측 기준 템플릿의 높이는 현재 블록의 높이보다 크거나 작을 수 있다. 좌측 기준 템플릿의 너비는 임의의 크기인 N일 수 있다. 이때, M, N은 1이상의 정수 일 수 있고, 서로 같거나 다른 값으로 설정될 수 있다. 비디오 신호 처리 장치는 현재 블록의 가로 및 세로의 크기가 임의의 크기 이내인 경우, 상단 기준 템플릿의 너비(또는 좌측 기준 템플릿의 높이)를 현재 블록의 너비보다 J만큼(또는 현재 블록의 높이보다 K만큼) 크게 설정할 수 있다. 이때, 임의의 크기는 4x4, 4x8, 8x4, 8x8 등일 수 있고, J, K는 1이상의 정수일 수 있다. The video signal processing device can configure a reference template (e.g., the template of FIG. 30) using a reference pixel line adjacent to the current block. The size of the reference template can be set based on the horizontal and vertical sizes of the current block. At this time, the width of the upper reference template can be the same as the width of the current block. Or, the width of the upper reference template can be larger or smaller than the width of the current block. The height of the upper reference template can be an arbitrary size, M. In addition, the height of the left reference template can be the same as the height of the current block. Or, the height of the left reference template can be larger or smaller than the height of the current block. The width of the left reference template can be an arbitrary size, N. At this time, M and N can be integers greater than or equal to 1, and can be set to the same or different values. The video signal processing device can set the width of the upper reference template (or the height of the left reference template) to be larger than the width of the current block by J (or larger than the height of the current block by K) when the horizontal and vertical sizes of the current block are within the arbitrary size. At this time, any size can be 4x4, 4x8, 8x4, 8x8, etc., and J and K can be integers greater than or equal to 1.
도 62는 본 발명의 일 실시예에 따른 비디오 신호 처리 장치가 참조 픽셀 라인 리스트를 구성하는 방법을 나타낸다.FIG. 62 illustrates a method for a video signal processing device according to one embodiment of the present invention to configure a reference pixel line list.
비디오 신호 처리 장치는 현재 블록을 위한 참조 픽셀 라인 리스트를 구성할 수 있다. 이때, 참조 픽셀 라인 리스트는 현재 블록의 위치 및 CTU 최대 크기에 기초하여 구성될 수 있다. 현재 블록의 위치가 (x, y)로 표현되는 경우, 비디오 신호 처리 장치는 y 값이 CTU 상단 경계에서 얼마나 떨어져 있는지에 기초하여 허용 가능한 참조 픽셀 라인을 확인할 수 있으며, 허용 가능한 참조 픽셀 라인 내에서 참조 픽셀 라인 리스트를 구성할 수 있다. 예를 들어, y 값이 4인 경우, y는 CTU 상단 경계에서 4만큼 떨어져 있고 현재 블록의 위치를 기준으로 상단 참조 픽셀로 사용할 수 있는 픽셀의 개수가 4개이므로, 비디오 신호 처리 장치는 참조 픽셀 라인의 인덱스가 4 이하인 참조 픽셀 라인을 참조 픽셀 라인 리스트 포함시킬 수 있다. 참조 픽셀 라인의 인덱스는 1, 3, 5, 7, 12가 있으며, 참조 픽셀 라인의 인덱스가 4 이하이고, 기준 템플릿으로 사용된 참조 픽셀 라인의 인덱스인 0은 참조 픽셀 리스트에서 제외되므로, 침조 픽셀 리스트는 인덱스 1, 3에 대응되는 참조 픽셀 라인으로만 구성될 수 있다. 도 62를 참조하면, 비디오 신호 처리 장치는 y 값이 4인 경우, 3개의 참조 픽셀 라인을 사용할 수 있으며, 참조 픽셀 라인 리스트는 인덱스 1, 2, 3, 4에 대응되는 참조 픽셀 라인으로 구성될 수 있다. 또는, 비디오 신호 처리 장치는 y 값이 4인 경우, 인덱스 4에 대응되는 참조 픽셀 라인을 제외하고, 인덱스 1, 2, 3에 대응되는 참조 픽셀 라인으로 참조 픽셀 라인 리스트를 구성할 수 있다. TIMD 및 일반적인 인트라 예측 모드를 부호화할 때, 비디오 신호 처리 장치는 인덱스 1, 3, 5, 7, 12에 대응하는 참조 픽셀 라인을 사용할 수 있다. TMRL 방법이 사용되는 경우에도, 비디오 신호 처리 장치는 인덱스 1, 3, 5, 7, 12에 대응하는 참조 픽셀 라인을 사용할 수 있다. 또는 비디오 신호 처리 장치는 TMRL 방법이 사용되는 경우, 참조 픽셀 라인 리스트를 다른 부호화 모드에서 사용하는 참조 픽셀 라인 리스트와 다르게 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치는 TMRL 방법이 사용되는 경우, 인덱스 2, 4, 6, 8, 9, 10, 11에 대응되는 참조 픽셀 라인으로 구성되는 참조 픽셀 라인 리스트를 구성할 수 있다.A video signal processing device can configure a reference pixel line list for a current block. At this time, the reference pixel line list can be configured based on the position of the current block and the maximum size of the CTU. When the position of the current block is expressed as (x, y), the video signal processing device can determine an allowable reference pixel line based on how far the y value is from the upper boundary of the CTU, and configure a reference pixel line list within the allowable reference pixel lines. For example, when the y value is 4, since y is 4 away from the upper boundary of the CTU and the number of pixels that can be used as the upper reference pixel based on the position of the current block is 4, the video signal processing device can include a reference pixel line whose index of the reference pixel line is 4 or less in the reference pixel line list. The indices of the reference pixel lines are 1, 3, 5, 7, and 12. Since the indices of the reference pixel lines are 4 or less and the index 0 of the reference pixel line used as the reference template is excluded from the reference pixel list, the reference pixel list can be composed only of reference pixel lines corresponding to indices 1 and 3. Referring to FIG. 62, the video signal processing device can use three reference pixel lines when the y value is 4, and the reference pixel line list can be composed of reference pixel lines corresponding to indices 1, 2, 3, and 4. Alternatively, the video signal processing device can configure the reference pixel line list with reference pixel lines corresponding to indices 1, 2, and 3, excluding the reference pixel line corresponding to index 4 when the y value is 4. When encoding TIMD and the general intra prediction mode, the video signal processing device can use reference pixel lines corresponding to indices 1, 3, 5, 7, and 12. Even when the TMRL method is used, the video signal processing device can use reference pixel lines corresponding to indices 1, 3, 5, 7, and 12. Alternatively, when the TMRL method is used, the video signal processing device can configure a reference pixel line list differently from a reference pixel line list used in another encoding mode. For example, when the TMRL method is used, the video signal processing device can configure a reference pixel line list composed of reference pixel lines corresponding to indices 2, 4, 6, 8, 9, 10, and 11.
비디오 신호 처리 장치는 현재 블록을 위한 인트라 예측 모드 리스트를 구성할 수 있다. 이때, 인트라 예측 모드 리스트는 MPM 리스트를 기반으로 구성될 수 있다. 또한, 비디오 신호 처리 장치는 3가지 DC 예측 모드를 포함하여 인트라 예측 모드 리스트를 구성할 수 있다. 비디오 신호 처리 장치는 인트라 예측 모드 리스트에 DC 모드가 존재하는 경우, 인트라 예측 모드 리스트에 현재 블록의 가로 및 세로의 크기에 따라 3가지 DC 예측 모드를 선택적으로 추가할 수 있다. 예를 들어, 인트라 예측 모드 리스트에 DC 모드가 존재하고, 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 비디오 신호 처리 장치는 인트라 예측 모드 리스트에 좌측 화소 값들의 평균을 사용하는 DC 모드를 추가할 수 있다. 인트라 예측 모드 리스트에 DC 모드가 존재하지 않는다면, 비디오 신호 처리 장치는 좌측 화소 값들의 평균을 사용하는 DC 모드와 상측 화소 값들의 평균을 사용하는 DC 모드를 인트라 예측 모드 리스트에 추가할 수 있다. 또한 비디오 신호 처리 장치는 인트라 예측 모드 리스트에 3가지 방향의 평면 예측 모드를 추가할 수 있다.The video signal processing device can configure an intra prediction mode list for the current block. At this time, the intra prediction mode list can be configured based on the MPM list. In addition, the video signal processing device can configure the intra prediction mode list including three DC prediction modes. If the DC mode exists in the intra prediction mode list, the video signal processing device can selectively add the three DC prediction modes to the intra prediction mode list according to the horizontal and vertical sizes of the current block. For example, if the DC mode exists in the intra prediction mode list and the horizontal size of the current block is larger than the vertical size, the video signal processing device can add the DC mode using the average of the left pixel values to the intra prediction mode list. If the DC mode does not exist in the intra prediction mode list, the video signal processing device can add the DC mode using the average of the left pixel values and the DC mode using the average of the upper pixel values to the intra prediction mode list. In addition, the video signal processing device can add three directional planar prediction modes to the intra prediction mode list.
일반적인 MPM 리스트는 6개의 인트라 예측 모드가 포함된 프라이머리(Primary) MPM과 16개의 인트라 예측 모드가 포함된 세컨더리(Secondary) MPM으로 구성될 수 있고, 인트라 예측 모드 리스트에서 사용되는 MPM 리스트의 크기는 일반적인 MPM 리스트 크기와 다를 수 있다. 즉, 인트라 예측 모드 리스트에서 사용되는 MPM 리스트의 크기는 X일 수 있으며, X는 1 이상의 정수로, 10일 수 있다. 비디오 신호 처리 장치는 크기가 10인 MPM 리스트를 통해 상기 인트라 예측 모드 리스트를 구성할 수 있다. 또는 비디오 신호 처리 장치는 일반적인 MPM 리스트에서 10개의 인트라 예측 모드를 인트라 예측 모드 리스트에 추가할 수 있다.A general MPM list can be composed of a primary MPM including 6 intra prediction modes and a secondary MPM including 16 intra prediction modes, and the size of the MPM list used in the intra prediction mode list can be different from the size of the general MPM list. That is, the size of the MPM list used in the intra prediction mode list can be X, and X is an integer greater than or equal to 1, such as 10. The video signal processing device can configure the intra prediction mode list through an MPM list having a size of 10. Alternatively, the video signal processing device can add 10 intra prediction modes to the intra prediction mode list from the general MPM list.
인트라 예측 모드 리스트의 각 후보는 하나의 인트라 예측 모드만으로 구성될 수 있다. 또는 인트라 예측 모드 리스트의 각 후보는 2개 이상의 인트라 예측 모드가 하나의 후보로 구성될 수 있다. 예를 들어, 비디오 신호 처리 장치는 현재 블록에 인접한 주변 블록의 인트라 예측 모드들 중에서 N개를 선택한 후, N개의 인트라 예측 모드를 조합하여 새로운 후보를 생성하여 인트라 예측 모드 리스트에 추가할 수 있다. 인트라 예측 모드 리스트의 각 후보에 대한 템플릿 코스트를 기반으로 템플릿 코스트가 낮은 순서부터 높은 순서까지의 후보들을 서로 조합하여 새로운 후보를 생성하고, 새로운 후보를 인트라 예측 모드 리스트에 추가할 수 있다. 또한, 비디오 신호 처리 장치는 인트라 예측 모드 리스트에 DIMD 방법으로 유도된 인트라 예측 모드를 추가할 수 있다. 이때, DIMD 방법으로 유도된 인트라 예측 모드가 2개 이상인 경우, 비디오 신호 처리 장치는 유도된 인트라 예측 모드를 인트라 예측 모드 리스트의 하나의 후보로 구성할 수 있다. 또한, 비디오 신호 처리 장치는 인트라 예측 모드 리스트에 TIMD 방법으로 유도된 인트라 예측 모드를 추가할 수 있으며, TIMD 방법으로 유도된 인트라 예측 모드가 2개 이상인 경우, 유도된 인트라 예측 모드를 인트라 예측 모드 리스트의 하나의 후보로 구성할 수 있다.Each candidate of the intra prediction mode list may be composed of only one intra prediction mode. Alternatively, each candidate of the intra prediction mode list may be composed of two or more intra prediction modes as one candidate. For example, the video signal processing device may select N intra prediction modes of neighboring blocks adjacent to the current block, and then combine the N intra prediction modes to generate a new candidate and add the candidate to the intra prediction mode list. Based on the template cost of each candidate of the intra prediction mode list, candidates in the order of low to high template costs may be combined to generate a new candidate, and the new candidate may be added to the intra prediction mode list. In addition, the video signal processing device may add an intra prediction mode derived by the DIMD method to the intra prediction mode list. In this case, if there are two or more intra prediction modes derived by the DIMD method, the video signal processing device may configure the derived intra prediction mode as one candidate of the intra prediction mode list. Additionally, the video signal processing device can add an intra prediction mode derived by the TIMD method to the intra prediction mode list, and when there are two or more intra prediction modes derived by the TIMD method, the derived intra prediction mode can be configured as one candidate of the intra prediction mode list.
비디오 신호 처리 장치는 참조 픽셀 라인 리스트와 인트라 예측 모드 리스트를 사용하여 통합 리스트를 구성할 수 있으며, 통합 리스트의 후보는 참조 픽셀 라인과 인트라 예측 모드로 구성될 수 있다. 이때, 통합 리스트의 크기는 정수 값으로 20일 수 있다. 통합 리스트의 크기가 한정적이므로, 비디오 신호 처리 장치는 템플릿 코스트에 기초하여 코스트가 높은 상위 20개의 후보만을 사용하여 통합 리스트가 구성할 수 있다. 이때 템플릿 코스트는 기준 템플릿과 예측 템플릿 간의 코스트에 기초하여 계산될 수 있다. 예측 템플릿은 참조 픽셀 라인 리스트 중 임의의 참조 픽셀 라인과 인트라 예측 모드 리스트 중 임의의 인트라 예측 모드를 사용하여 생성되는 기준 템플릿에 대한 예측 샘플을 통해 획득될 수 있다. 이때 코스트는 SAD, MR-SAD 등의 방법을 통해 계산될 수 있다. 템플릿 코스트를 기반으로 최소 코스트를 가지는 참조 픽셀 라인과 인트라 예측 모드가 현재 블록에 대한 예측 샘플을 구성하는데 사용될 수 있다. 인코더는 템플릿 코스트의 오름차순으로 통합 리스트를 재정렬 한 후, 최적의 참조 픽셀 라인과 인트라 예측 모드를 지시하는 후보의 인덱스를 지시하는 정보를 비트스트림에 포함하여 시그널링할 수 있고, 디코더는 해당 정보를 파싱하여 획득되는 최적의 참조 픽셀 라인과 인트라 예측 모드에 기초하여 현재 블록에 대한 예측 샘플을 생성할 수 있다.A video signal processing device can construct an integrated list using a reference pixel line list and an intra prediction mode list, and candidates of the integrated list can be constructed with reference pixel lines and intra prediction modes. At this time, the size of the integrated list can be an integer value of 20. Since the size of the integrated list is limited, the video signal processing device can construct the integrated list using only the top 20 candidates having high costs based on template costs. At this time, the template cost can be calculated based on the cost between the reference template and the prediction template. The prediction template can be obtained through a prediction sample for a reference template generated using any reference pixel line among the reference pixel line list and any intra prediction mode among the intra prediction mode list. At this time, the cost can be calculated using a method such as SAD or MR-SAD. Based on the template cost, a reference pixel line and an intra prediction mode having a minimum cost can be used to construct a prediction sample for a current block. The encoder can signal information indicating an index of a candidate indicating an optimal reference pixel line and an intra prediction mode by including it in the bitstream after reordering the unified list in ascending order of template cost, and the decoder can generate a prediction sample for the current block based on the optimal reference pixel line and intra prediction mode obtained by parsing the information.
비디오 신호 처리 장치는 TMRL 방법을 적용함에 있어 템플릿에 기반한 재정렬을 수행하므로, MPM 리스트를 구성하는 중에 수행되는 템플릿 코스트에 기반한 MPM 리스트를 재정렬 과정을 수행하지 않을 수 있다.Since the video signal processing device performs template-based reordering when applying the TMRL method, it may not perform the MPM list reordering process based on the template cost performed during the construction of the MPM list.
템플릿 코스트에 기반한 통합 리스트를 재정렬하는 방법은 템플릿이 현재 블록의 특성과 얼마나 유사한지에 따라 부호화 효율이 달라질 수 있다. 즉, 유사도가 낮은 템플릿으로 인해, 비디오 신호 처리 장치는 재정렬된 통합 리스트 내의 최적의 후보를 지시하는 인덱스가 낮은 인덱스가 아닌 높은 인덱스를 부호화해야 할 수 있고, 이에 따라 부호화되는 비트량이 증가하는 문제가 있을 수 있다. 따라서, 비디오 신호 처리 장치는 각 후보에 대한 템플릿 코스트 간의 비교, 각 후보의 인트라 예측 모드 간의 비교, 현재 블록의 가로 및 세로의 크기 중에서 적어도 하나 이상을 사용하여 통합 리스트를 재정렬할 수 있다. 예를 들어, 2개 후보의 템플릿 코스트 값 간의 차이가 제1 값 이내인 경우, 비디오 신호 처리 장치는 2개의 후보 중 하나의 후보를 통합 리스트에서 삭제할 수 있다. 또 다른 실시 일 예로, 2개 후보의 인트라 예측 모드 간의 차이가 제2 값 이내인 경우, 비디오 신호 처리 장치는 2개 후보 중 하나의 후보를 통합 리스트에서 삭제할 수 있다. 이때, 제1 값, 제2 값은 1 이상의 정수일 수 있고, 예를 들어, 제1 값은 20이고, 제2 값은 5일 수 있다.The method of rearranging the integrated list based on the template cost may have different encoding efficiency depending on how similar the template is to the characteristics of the current block. That is, due to the template having low similarity, the video signal processing device may have to encode a high index indicating an optimal candidate in the rearranged integrated list rather than a low index, and thus, there may be a problem that the amount of encoded bits increases. Therefore, the video signal processing device may rearrange the integrated list using at least one of a comparison between template costs for each candidate, a comparison between intra prediction modes of each candidate, and the width and height of the current block. For example, if the difference between the template cost values of two candidates is within a first value, the video signal processing device may delete one of the two candidates from the integrated list. In another embodiment, if the difference between the intra prediction modes of two candidates is within a second value, the video signal processing device may delete one of the two candidates from the integrated list. At this time, the first value and the second value can be integers greater than or equal to 1, for example, the first value can be 20 and the second value can be 5.
비디오 신호 처리 장치는 인트라 예측 모드를 우선으로 통합 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치는 인트라 예측 모드 리스트를 템플릿 코스트에 기반하여 재정렬하고, 템플릿 코스트가 낮은 후보부터 높은 후보까지 순서대로 하나씩 인트라 예측 모드 후보를 가져온 후, 참조 픽셀 리스트와의 조합을 통해 통합 리스트를 구성할 수 있다. 따라서, 통합 리스트는 동일한 인트라 예측 모드를 사용한 후보들이 그룹을 형성하는 형태로 구성될 수 있으며, 동일한 인트라 예측 모드를 가지는 그룹 내의 후보들은 서로 다른 참조 픽셀 라인을 가지도록 구성될 수 있다.The video signal processing device can configure the integrated list by prioritizing the intra prediction mode. For example, the video signal processing device can rearrange the intra prediction mode list based on the template cost, bring the intra prediction mode candidates one by one in order from the candidate with the lowest template cost to the candidate with the highest template cost, and configure the integrated list by combining them with the reference pixel list. Accordingly, the integrated list can be configured in a form in which candidates using the same intra prediction mode form a group, and candidates within a group having the same intra prediction mode can be configured to have different reference pixel lines.
비디오 신호 처리 장치는 참조 픽셀 라인을 우선으로 통합 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 장치는 통합 리스트를 동일한 참조 픽셀 라인을 사용한 후보들이 그룹을 형성하는 형태로 구성할 수 있으며, 동일한 참조 픽셀 라인을 가지는 그룹 내의 후보들은 서로 다른 인트라 예측 모드를 가지도록 구성할 수 있다. 이때, 비디오 신호 처리 장치는 현재 블록의 가로 및 세로의 크기, 주변 블록의 정보(부호화 모드, 참조 픽셀 라인 정보, 인트라 예측 모드 등) 중에서 적어도 하나 이상을 사용하여 어떠한 참조 픽셀 라인을 우선으로 통합 리스트에 추가할 지 결정할 수 있다.The video signal processing device can configure the unified list by prioritizing the reference pixel line. For example, the video signal processing device can configure the unified list in a form in which candidates using the same reference pixel line form a group, and the candidates within the group having the same reference pixel line can be configured to have different intra prediction modes. At this time, the video signal processing device can use at least one of the horizontal and vertical sizes of the current block and information (encoding mode, reference pixel line information, intra prediction mode, etc.) of the surrounding blocks to determine which reference pixel line to add to the unified list by prioritizing it.
비디오 신호 처리 장치는 인트라 예측 모드를 우선으로 통합 리스트를 재정렬할 수 있다. 비디오 신호 처리 장치는 템플릿 코스트에 기반하여 재정렬된 통합 리스트를 인트라 예측 모드, 참조 픽셀 라인, 각 후보들간의 템플릿 코스트 차이 중에서 적어도 하나 이상을 사용하여 추가적으로 재정렬할 수 있다. 예를 들어, 비디오 신호 처리 장치는 통합 리스트를 참조 픽셀 라인을 기반으로 재정렬할 수 있으며, 특정 참조 픽셀 라인을 사용하는 후보들을 통합 리스트의 상위 부분으로 순서를 변경하여 해당 후보의 우선 순위를 높일 수 있다. 이때, 특정 참조 픽셀 라인은 템플릿 코스트를 기반으로 결정될 수 있다. 예를 들어, 비디오 신호 처리 장치는 통합 리스트에서 가장 낮은 템플릿 코스트를 갖는 후보의 참조 픽셀 라인을 특정 참조 픽셀 라인으로 결정할 수 있다.The video signal processing device can reorder the unified list with the intra prediction mode as the priority. The video signal processing device can further reorder the unified list reordered based on the template cost using at least one of the intra prediction mode, the reference pixel line, and the template cost difference between each candidate. For example, the video signal processing device can reorder the unified list based on the reference pixel line, and can change the order of candidates using a specific reference pixel line to an upper part of the unified list to increase the priority of the corresponding candidate. At this time, the specific reference pixel line can be determined based on the template cost. For example, the video signal processing device can determine the reference pixel line of a candidate having the lowest template cost in the unified list as the specific reference pixel line.
비디오 신호 처리 장치는 제1 통합 리스트(상술한 통합 리스트)에 새로운 후보를 추가하여 제2 통합 리스트를 구성할 있다. 이때, 추가되는 새로운 후보는, Intra TMP, IBC, SGPM, TIMD, DIMD, MIP, 임의의 참조 픽셀 라인과 임의의 인트라 예측 모드로 구성된 후보, 3가지 DC 예측 모드, 3가지 평면 예측 모드일 수 있다. 이때, 비디오 신호 처리 장치는 주변 블록 정보, 제1 통합 리스트의 후보 중에서 적어도 하나 이상을 사용하여 임의의 참조 픽셀 라인과 임의의 인트라 예측 모드를 결정할 수 있다. 비디오 신호 처리 장치는 템플릿 코스트가 가장 낮은 후보의 인트라 예측 모드를 사용하되 참조 픽셀 라인은 인덱스 0에 대응되는 참조 픽셀 라인으로 설정한 후 새로운 후보를 구성하여 새로운 후보를 제2 통합 리스트에 추가할 수 있다. 비디오 신호 처리 장치는 통합 리스트에 존재하지 않는 인트라 예측 모드를 임의의 참조 픽셀 라인과 조합하여 새로운 후보를 생성한 후, 새로운 후보를 제2 통합 리스트에 추가할 수 있다. 인코더는 제2 통합 리스트에서 최적의 후보에 대한 인덱스를 나타내는 정보를 비트스트림에 포함하여 시그널랑할 수 있고, 디코더는 해당 정보를 파싱하여, 해당 정보가 나타내는 인덱스의 최적의 후보를 이용하여 현재 블록에 대한 예측 블록을 생성할 수 있다.The video signal processing device can configure a second unified list by adding a new candidate to the first unified list (the unified list described above). At this time, the new candidate to be added may be a candidate composed of Intra TMP, IBC, SGPM, TIMD, DIMD, MIP, an arbitrary reference pixel line and an arbitrary intra prediction mode, three DC prediction modes, and three planar prediction modes. At this time, the video signal processing device can determine an arbitrary reference pixel line and an arbitrary intra prediction mode by using surrounding block information and at least one or more of the candidates of the first unified list. The video signal processing device can configure a new candidate by using the intra prediction mode of the candidate having the lowest template cost, but setting the reference pixel line to a reference pixel line corresponding to index 0, and then add the new candidate to the second unified list. The video signal processing device can generate a new candidate by combining an intra prediction mode that does not exist in the unified list with an arbitrary reference pixel line, and then add the new candidate to the second unified list. The encoder can signal in the bitstream information indicating an index for a best candidate in the second unified list, and the decoder can parse the information to generate a prediction block for the current block using the best candidate for the index indicated by the information.
비디오 신호 처리 장치는 템플릿 코스트에 기반하여 재정렬된 제1 통합 리스트를 사용하여 새로운 후보를 생성하여 통합 리스트에 추가할 수 있다. 그리고 비디오 신호 처리 장치는, 새롭게 추가된 후보에 대해서도 템플릿 코스트에 기반한 재정렬을 수행하여 재정렬된 제2 통합 리스트를 생성할 수 있다. 이때, 비디오 신호 처리 장치는 제1 통합 리스트의 후보들 중에서 2개 이상의 후보를 조합하여 새로운 후보를 생성할 수 있다. 새로운 후보가 2개 후보의 조합으로 구성될 경우, 새로운 후보는 제1 참조 픽셀 라인과 제1 인트라 예측 모드, 제2 참조 픽셀 라인과 제2 인트라 예측 모드로 구성될 수 있다. 새로운 후보가 3개 후보의 조합으로 구성될 경우, 새로운 후보는 제1 참조 픽셀 라인과 제1 인트라 예측 모드, 제2 참조 픽셀 라인과 제2 인트라 예측 모드, 제3 참조 픽셀 라인과 제3 인트라 예측 모드로 구성될 수 있다. 2개 후보의 조합으로 구성된 새로운 후보를 사용하여 예측 블록이 생성되는 경우, 비디오 신호 처리 장치는 제1 참조 픽셀 라인을 참조하여 제1 인트라 예측 모드로 예측된 제1 예측 블록과 제2 참조 픽셀 라인을 참조하여 제2 인트라 예측 모드로 예측된 제2 예측 블록 간의 가중치 평균을 통해 최종 예측 블록을 생성할 수 있다. A video signal processing device can generate a new candidate by using a first unified list rearranged based on a template cost and add the new candidate to the unified list. Furthermore, the video signal processing device can perform a reordering based on the template cost for the newly added candidate to generate a reordered second unified list. At this time, the video signal processing device can generate a new candidate by combining two or more candidates from among the candidates of the first unified list. If the new candidate is composed of a combination of two candidates, the new candidate can be composed of a first reference pixel line and a first intra prediction mode, a second reference pixel line and a second intra prediction mode. If the new candidate is composed of a combination of three candidates, the new candidate can be composed of a first reference pixel line and a first intra prediction mode, a second reference pixel line and a second intra prediction mode, and a third reference pixel line and a third intra prediction mode. When a prediction block is generated using a new candidate composed of a combination of two candidates, the video signal processing device can generate a final prediction block through a weighted average between a first prediction block predicted in a first intra prediction mode by referring to a first reference pixel line and a second prediction block predicted in a second intra prediction mode by referring to a second reference pixel line.
도 63은 본 발명의 일 실시예에 따른 통합 리스트를 구성하는 방법을 나타낸다.Figure 63 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
도 63(a)는 상술한 제1 통합 리스트를 나타낼 수 있고, 도 63(b)는 제2 통합 리스트를 나타낼 수 있다. 도 63(b)의 첫번째 후보는 제1 통합 리스트의 첫번째 후보와 두번째 후보 간 조합으로 구성될 수 있다. 도 63(b)의 첫번째 후보는 제1 통합 리스트의 첫번째 후보와 두번째 후보 간의 조합으로 구성될 수 있다. 즉, 도 63(b)의 첫번째 후보는 제1 픽셀 라인은 L0, 제1 인트라 예측 모드는 A, 제2 참조 픽셀 라인은 L1, 제2 인트라 예측 모드는 B로 구성될 수 있다.Fig. 63(a) may represent the first integrated list described above, and Fig. 63(b) may represent the second integrated list. The first candidate of Fig. 63(b) may be configured as a combination between the first candidate and the second candidate of the first integrated list. The first candidate of Fig. 63(b) may be configured as a combination between the first candidate and the second candidate of the first integrated list. That is, the first candidate of Fig. 63(b) may be configured as L0 for the first pixel line, A for the first intra prediction mode, L1 for the second reference pixel line, and B for the second intra prediction mode.
도 64는 본 발명의 일 실시예에 따른 새로운 후보를 조합하는 방법을 나타낸다.Figure 64 illustrates a method of combining new candidates according to one embodiment of the present invention.
도 64(a), (b)의 행에 해당하는 index 1과 index 2는 제1 통합 리스트의 후보 순서를 나타낼 수 있고, 서로 중복되지 않도록 구성될 수 있다. 도 64(a), (b)의 열의 순서는 조합 순서를 나타내며, 조합 순서에 따라 새로운 후보가 구성(생성, 획득)될 수 있고, 비디오 신호 처리 장치는 조합 순서에 따라 구성된 새로운 후보를 제2 통합 리스트에 추가할 수 있다. 도 64(a)는 제1 통합 리스트에서 첫 번째 후보에 대한 조합을 우선하는 방법이고, 도 64(b)는 템플릿 코스트의 합이 낮은 조합이 우선하는 방법을 나타낼 수 있다. Index 1 and index 2 corresponding to the rows of Fig. 64(a) and (b) can represent the candidate order of the first unified list, and can be configured so as not to overlap each other. The order of the columns of Fig. 64(a) and (b) represents the combination order, and a new candidate can be configured (generated, obtained) according to the combination order, and the video signal processing device can add the new candidate configured according to the combination order to the second unified list. Fig. 64(a) is a method for giving priority to a combination for the first candidate in the first unified list, and Fig. 64(b) can represent a method for giving priority to a combination having a lower sum of template costs.
비디오 신호 처리 장치는 새로운 후보의 인트라 예측 모드, 참조 픽셀 라인 중에서 적어도 하나 이상을 사용하여 새로운 후보를 제2 통합 리스트에 추가할 지 여부를 결정할 수 있다. 예를 들어, 새로운 후보를 구성하기 위해 조합되는 후보의 2개의 인트라 예측 모드가 동일하거나 2개의 인트라 예측 모드가 임의의 값 이내만큼 차이가 나는 경우, 비디오 신호 처리 장치는 새로운 후보를 제2 통합 리스트에 추가하지 않을 수 있다. 이때, 임의의 값은 1 이상의 정수로 5일 수 있다. The video signal processing device may determine whether to add the new candidate to the second unified list by using at least one of the intra prediction mode and the reference pixel line of the new candidate. For example, if two intra prediction modes of the candidates combined to form the new candidate are the same or the two intra prediction modes differ by a value within a certain range, the video signal processing device may not add the new candidate to the second unified list. At this time, the certain value may be an integer greater than or equal to 1, such as 5.
참조 픽셀 라인과 인트라 예측 모드는 각각 시그널링 될 수 있다. 하지만, 참조 픽셀 라인과 인트라 예측 모드가 다르더라도, 특정 상황에서는 유사한 예측 블록이 생성될 수 있다. 비디오 신호 처리 장치는 참조 픽셀 라인과 인트라 예측 모드에 대한 조합 테이블을 구성할 수 있다. 조합 테이블의 크기는 1 이상의 정수로 최대 크기가 정해져 있을 수 있다. The reference pixel line and the intra prediction mode can be signaled separately. However, even if the reference pixel line and the intra prediction mode are different, similar prediction blocks can be generated in certain situations. The video signal processing device can configure a combination table for the reference pixel line and the intra prediction mode. The size of the combination table can be set to a maximum size as an integer greater than or equal to 1.
도 65는 본 발명의 일 실시예에 따른 참조 픽셀 라인과 인트라 예측 모드에 대한 조합 테이블을 나타낸다.Figure 65 shows a combination table for reference pixel lines and intra prediction modes according to one embodiment of the present invention.
도 65를 참조하면 조합 테이블은 10개의 후보를 가질 수 있고, 하나의 후보는 3개의 조합 항목으로 구성될 수 있다. 조합 테이블 내의 하나의 후보에는 유사한 예측 블록을 생성할 수 있는 여러 개의 참조 픽셀 라인과 인트라 예측 모드의 조합이 존재할 수 있다. 즉, 조합 테이블 내의 하나의 후보에는 여러 개의 조합이 존재할 수 있다. 예를 들어, 인코더는 현재 블록에 조합 테이블이 적용되는지 여부에 대한 정보를 비트스트림에 포함하여 시그널링할 수 있다. 또한, 인코더는 조합 테이블에 기초하여 최적의 조합 후보들을 나타내는 인덱스 정보를 비트스트림에 포함하여 시그널링할 수 있다. 디코더는 현재 블록에 조합 테이블이 적용되는지 여부에 대한 정보를 파싱하고, 현재 블록에 조합 테이블이 사용되는 경우, 최적의 조합 후보들을 나타내는 인덱스 정보를 파싱하여, 인덱스 정보가 지시하는 조합 항목들 중에서 템플릿 코스트가 가장 낮은 조합의 참조 픽셀 라인과 인트라 예측 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 최적의 조합 후보들을 나타내는 인덱스 정보는 도 65의 인덱스들(6510) 중 어느 하나를 나타낼 수 있다. Referring to FIG. 65, a combination table can have 10 candidates, and one candidate can be composed of 3 combination items. One candidate in the combination table can have multiple combinations of reference pixel lines and intra prediction modes that can generate similar prediction blocks. That is, one candidate in the combination table can have multiple combinations. For example, an encoder can signal information on whether a combination table is applied to a current block by including it in a bitstream. In addition, the encoder can signal index information indicating optimal combination candidates based on the combination table by including it in a bitstream. A decoder can parse information on whether a combination table is applied to a current block, and if a combination table is used in the current block, parse index information indicating optimal combination candidates, and generate a prediction block for the current block by using a reference pixel line and intra prediction mode of a combination with the lowest template cost among combination items indicated by the index information. The index information indicating optimal combination candidates can indicate one of the indices (6510) of FIG. 65.
또는, 인코더는 현재 블록에 조합 테이블이 적용되는지 여부에 대한 정보를 비트스트림에 포함하여 시그널링할 수 있다. 또한, 인코더는 조합 테이블에 기초하여 최적의 조합 후보들을 나타내는 인덱스 정보와 최적의 조합 후보 내 최적의 조합 항목에 대한 인덱스 정보를 비트스트림에 포함하여 시그널링할 수 있다. 디코더는 현재 블록에 조합 테이블이 적용되는지 여부에 대한 정보를 파싱하고, 현재 블록에 조합 테이블이 사용되는 경우, 최적의 조합 후보들을 나타내는 인덱스 정보와 최적의 조합 후보 내 최적의 조합 항목에 대한 인덱스 정보를 파싱하여 결정되는 참조 픽셀 라인과 인트라 예측 모드를 사용하여 현재 블록에 대한 예측 블록을 생성할 수 있다. 최적의 조합 후보들을 나타내는 인덱스 정보는 도 65의 인덱스들(6510) 중 어느 하나를 나타낼 수 있고, 최적의 조합 후보 내 최적의 조합 항목에 대한 인덱스 정보는 도 65의 조합 항목들(6520) 중 어느 하나를 나타낼 수 있다.Alternatively, the encoder can signal information on whether the combination table is applied to the current block by including it in the bitstream. Furthermore, the encoder can signal index information indicating optimal combination candidates based on the combination table and index information on optimal combination items within the optimal combination candidates by including it in the bitstream. The decoder parses information on whether the combination table is applied to the current block, and if the combination table is used for the current block, generates a prediction block for the current block by using reference pixel lines and intra prediction modes determined by parsing the index information indicating optimal combination candidates and the index information on optimal combination items within the optimal combination candidates. The index information indicating optimal combination candidates may indicate any one of the indices (6510) of FIG. 65, and the index information on optimal combination items within the optimal combination candidates may indicate any one of the combination items (6520) of FIG. 65.
TIMD 방법을 사용하여 인트라 예측 모드를 유도하는 방법에 있어서, 3가지 DC 예측 모드와 상기 3가지 평면 예측 모드도 TIMD 인트라 예측 모드 후보 중에 하나로 포함될 수 있으며, 템플릿 코스트 기반으로 최적의 인트라 예측 모드가 유도될 수 있다. 또한, MPM 리스트에 3가지 DC 예측 모드, 3가지 평면 예측 모드가 포함될 수 있다.In a method for deriving an intra prediction mode using the TIMD method, the three DC prediction modes and the three planar prediction modes can also be included as candidates for the TIMD intra prediction mode, and the optimal intra prediction mode can be derived based on the template cost. In addition, the three DC prediction modes and the three planar prediction modes can be included in the MPM list.
도 66은 본 발명의 일 실시예에 따른 다중 예측 모드 기반의 후보 리스트를 사용하는 방법을 나타낸다.Figure 66 illustrates a method of using a candidate list based on multiple prediction modes according to one embodiment of the present invention.
도 66을 참조하면 비디오 신호 처리 장치는 다중 예측 모드 기반의 후보 리스트를 이용하여 현재 블록의 예측 블록을 생성할 수 있다. 비디오 신호 처리 장치는 현재 블록을 위한 다중 예측 모드 후보 리스트를 구성할 수 있다. 이때, 비디오 신호 처리 장치는 주변 블록 정보, 현재 블록의 DIMD 정보, 현재 블록의 TIMD 정보, 현재 블록의 MPM 리스트, 현재 블록의 Non-MPM 리스트 중에서 적어도 하나 이상을 사용하여 다중 예측 모드 후보 리스트를 구성할 수 있다. 주변 블록 정보는 현재 블록에 인접한 블록, 현재 블록에 인접하지 않고 미리 지정된 거리만큼 떨어진 블록, 별도의 메모리에 저장된 주변 블록 등이 될 수 있다. 주변 블록 정보는 주변 블록의 인트라 예측 방향성 모드 정보 및 각 모드에 대한 가중치 값일 수 있다. 미리 지정된 거리는 현재 블록의 좌상단 샘플 위치, 현재 블록의 가로 및 세로의 크기, 미리 지정된 가로 및 세로의 크기 중에 적어도 하나 이상에 기초하여 결정될 수 있다. 예를 들어, 비디오 신호 처리 장치는 현재 블록의 좌상단 샘플 위치를 기반으로 현재 블록의 가로의 크기만큼 수평 방향으로 왼쪽으로 이동된 위치와 현재 블록의 좌상단 샘플 위치를 기반으로 수직 방향으로 위쪽으로 이동된 위치를 기반으로 주변 블록을 유도할 수 있다.Referring to FIG. 66, a video signal processing device can generate a prediction block of a current block using a candidate list based on a multi-prediction mode. The video signal processing device can configure a multi-prediction mode candidate list for the current block. At this time, the video signal processing device can configure the multi-prediction mode candidate list using at least one of surrounding block information, DIMD information of the current block, TIMD information of the current block, MPM list of the current block, and Non-MPM list of the current block. The surrounding block information may be a block adjacent to the current block, a block that is not adjacent to the current block and is separated by a predetermined distance, a surrounding block stored in a separate memory, etc. The surrounding block information may be intra-prediction directional mode information of the surrounding block and a weight value for each mode. The predetermined distance may be determined based on at least one of the upper left sample position of the current block, the horizontal and vertical sizes of the current block, and the predetermined horizontal and vertical sizes. For example, a video signal processing device can derive a surrounding block based on a position shifted horizontally to the left by the width of the current block based on the upper left sample position of the current block and a position shifted vertically upward based on the upper left sample position of the current block.
비디오 신호 처리 장치가 다중 예측 모드 기반의 후보 리스트를 구성하는 방법에 대해 설명한다. 비디오 신호 처리 장치는 주변 블록 정보, 현재 블록의 DIMD 정보, 현재 블록의 TIMD 정보, 현재 블록의 MPM 리스트, 현재 블록의 Non-MPM 리스트, 주변 블록에서 DIMD를 유도하기 위해 사용한 여러 개의 히스토그램들의 누적 히스토그램으로부터 유도된 DIMD 정보, 주변 블록에서 사용된 인트라 예측 모드들 중에서 발생 빈도가 높은 상위 N(미리 정해진 개수)개의 인트라 예측 모드들 중에서 적어도 하나를 사용하여 다중 예측 모드 후보를 생성할 수 있다. 미리 정해진 개수는 정수로 5일 수 있다. 예를 들어, 발생 빈도에 기초한 다중 예측 모드 후보에는 5개의 인트라 예측 모드가 포함될 수 있다. 이때, 다중 예측 모드는 2개 이상의 인트라 예측 방향성 모드로 구성될 수 있으며, 하나의 다중 예측 모드 후보의 인트라 예측 방향성 모드는 서로 다를 수 있다. 또한, 다중 예측 모드에는 방향성을 가진 인트라 예측 방향성 모드만 포함될 수 있다. 또한, 다중 예측 모드에는 비방향성 모드인 평면 모드가 포함되지 않을 수 있다. 주변 블록으로부터 유도된 인트라 예측 방향성 모드가 평면 모드인 경우에는 주변 블록으로부터 유도된 인트라 예측 방향성 모드는 다중 예측 모드에서 제외될 수 있다. 또한, 다중 예측 모드에는 비방향성 모드인 DC 모드가 포함되지 않을 수 있다. 주변 블록으로부터 유도된 인트라 예측 방향성 모드가 DC 모드인 경우에는 주변 블록으로부터 유도된 인트라 예측 방향성 모드는 다중 예측 모드에서 제외될 수 있다. 상술한 방법으로 생성된 다중 예측 모드 후보는 다중 예측 모드 후보 리스트에 추가될 수 있다. 비디오 신호 처리 장치는 다중 예측 모드 후보 리스트에 동일한 다중 예측 모드 후보가 존재하는지 판단한 후, 존재하지 않는 경우에만 생성된 다중 예측 모드 후보를 다중 예측 모드 후보 리스트에 추가할 수 있다. 다중 예측 모드 후보 리스트의 최대 크기는 미리 지정된 개수일 수 있으며, 미리 지정된 개수는 정수로, 25일 수 있다. 다중 예측 모드 후보 리스트의 최대 크기가 미리 지정된 개수인 경우, 비디오 신호 처리 장치는 더 이상 다중 예측 모드 후보를 추가하지 않을 수 있다.A method for a video signal processing device to configure a candidate list based on a multi-prediction mode is described. The video signal processing device can generate a multi-prediction mode candidate by using at least one of neighboring block information, DIMD information of a current block, TIMD information of a current block, an MPM list of a current block, a Non-MPM list of a current block, DIMD information derived from a cumulative histogram of several histograms used to derive DIMD from a neighboring block, and top N (a predetermined number) intra-prediction modes with a high occurrence frequency among intra-prediction modes used in the neighboring block. The predetermined number can be an integer of 5. For example, a multi-prediction mode candidate based on occurrence frequency can include five intra-prediction modes. In this case, the multi-prediction mode can be composed of two or more intra-prediction directional modes, and the intra-prediction directional modes of one multi-prediction mode candidate can be different from each other. In addition, the multi-prediction mode can include only an intra-prediction directional mode having directionality. In addition, the multi-prediction mode may not include a planar mode, which is a non-directional mode. If the intra prediction directional mode derived from the surrounding block is a planar mode, the intra prediction directional mode derived from the surrounding block may be excluded from the multi-prediction mode. In addition, the multi-prediction mode may not include the DC mode, which is a non-directional mode. If the intra prediction directional mode derived from the surrounding block is a DC mode, the intra prediction directional mode derived from the surrounding block may be excluded from the multi-prediction mode. The multi-prediction mode candidate generated by the above-described method may be added to the multi-prediction mode candidate list. The video signal processing device may determine whether the same multi-prediction mode candidate exists in the multi-prediction mode candidate list, and may add the generated multi-prediction mode candidate to the multi-prediction mode candidate list only if there is no such multiple prediction mode candidate. The maximum size of the multi-prediction mode candidate list may be a pre-specified number, and the pre-specified number may be an integer, such as 25. If the maximum size of the multi-prediction mode candidate list is a pre-specified number, the video signal processing device may not add any more multi-prediction mode candidates.
비디오 신호 처리 장치는 다중 예측 모드 후보 리스트를 템플릿 코스트에 기반한 재정렬을 수행하여 재정렬된 다중 예측 모드 후보 리스트를 생성할 수 있다. 한편, 재정렬 과정은 수행되지 않을 수 있다. 템플릿 코스트에 기반한 재정렬은 도 30을 통해 상술한 방법으로 수행될 수 있다. 비디오 신호 처리 장치는 현재 블록에 인접한 복원된 주변 샘플을 사용하여 기준 템플릿을 구성할 수 있다. 비디오 신호 처리 장치는 다중 예측 모드 후보 리스트 내의 다중 예측 모드 후보와 미리 지정된 참조 샘플 라인(도 30의 Reference line 1, 2, 3, …)을 사용하여 기준 템플릿에 대한 예측 템플릿을 생성할 수 있다. 미리 지정된 참조 샘플 라인은 Reference line 1(예, 현재 블록 템플릿과 인접한 라인)일 수 있다. 비디오 신호 처리 장치는 기준 템플릿과 예측 템플릿 간의 코스트를 계산할 수 있다. 여기서 코스트는 샘플 간의 차이의 절대값(SAD)의 합일 수 있다. 또한, 코스트는 각 샘플 값에서 각 템플릿의 평균을 뺀 평균 차이 샘플 값 간의 차이의 절대값(MR-SAD)의 합일 수 있다. 예측 템플릿을 생성하는데 사용되는 다중 예측 모드 후보의 인트라 예측 방향성 모드는 기존 인트라 예측 모드의 범위보다 확장된 인트라 예측 모드의 범위로 변환된 후, 예측 템플릿을 생성하는데 사용될 수 있다. 예를 들어, 다중 예측 모드 후보의 인트라 예측 방향성 모드가 N이라면, 확장된 인트라 예측 방향성 모드 M = (N *2) -2 일 수 있다. 또한, 다중 예측 모드 후보는 2개 이상의 인트라 예측 방향성 모드로 구성되어 있으므로, 각 인트라 예측 방향성 모드를 사용하여 생성된 예측 템플릿들은 미리 지정된 가중치를 적용하여 가중치 평균될 수 있으며, 비디오 신호 처리 장치는 가중치 평균된 예측 템플릿을 생성할 수 있다. 이때, 가중치는 미리 지정된 값일 수 있으며, 각 인트라 예측 방향성 모드에 대한 가중치는 서로 동일하거나 혹은 서로 다를 수 있다. 상기 계산된 코스트를 기반으로 다중 예측 모드 후보 리스트가 재정렬 될 수 있으며, 오름차순으로 재정렬될 수 있다.The video signal processing device can generate a reordered multi-prediction mode candidate list by performing reordering of a multi-prediction mode candidate list based on a template cost. Meanwhile, the reordering process may not be performed. The reordering based on the template cost may be performed by the method described above through FIG. 30. The video signal processing device can configure a reference template using reconstructed surrounding samples adjacent to a current block. The video signal processing device can generate a prediction template for the reference template by using a multi-prediction mode candidate in the multi-prediction mode candidate list and a pre-designated reference sample line ( Reference line 1, 2, 3, ... of FIG. 30). The pre-designated reference sample line may be Reference line 1 (e.g., a line adjacent to the current block template). The video signal processing device can calculate a cost between the reference template and the prediction template. Here, the cost may be the sum of the absolute values of the differences (SAD) between samples. In addition, the cost may be the sum of the absolute values of the differences (MR-SAD) between the average difference sample values obtained by subtracting the average of each template from each sample value. The intra prediction directional mode of the multiple prediction mode candidate used to generate the prediction template may be converted to a range of the intra prediction mode that is extended beyond the range of the existing intra prediction mode, and then used to generate the prediction template. For example, if the intra prediction directional mode of the multiple prediction mode candidate is N, the extended intra prediction directional mode M may be (N *2) -2. In addition, since the multiple prediction mode candidate is composed of two or more intra prediction directional modes, the prediction templates generated using each intra prediction directional mode may be weighted averaged by applying a pre-specified weight, and the video signal processing device may generate the weighted averaged prediction template. At this time, the weight may be a pre-specified value, and the weights for each intra prediction directional mode may be the same or different from each other. The list of multiple prediction mode candidates may be re-sorted based on the calculated cost, and may be re-sorted in ascending order.
비디오 신호 처리 장치는 MPM 리스트와 재정렬된 다중 예측 모드 후보 리스트를 사용하여 예측 모드 후보 리스트를 재구성할 수 있다. 이때, 비디오 신호 처리 장치는 MPM 리스트의 일부와 재정렬된 다중 예측 모드 후보 리스트의 일부를 사용하여 예측 모드 후보 리스트를 구성할 수 있다. MPM 리스트의 첫번째 후보부터 미리 지정된 개수의 후보까지 예측 모드 후보 리스트에 추가될 수 있으며, 미리 지정된 개수는 5일 수 있다. 재정렬된 다중 예측 모드 후보 리스트의 다중 예측 모드 후보 중에서 코스트가 낮은 순부터 높은 순으로 미리 지정된 개수만큼 예측 모드 후보 리스트에 추가될 수 있으며, 미리 지정된 개수는 정수 일 수 있으며, 16일 수 있다.A video signal processing device can reconstruct a prediction mode candidate list using the MPM list and the rearranged multiple prediction mode candidate list. At this time, the video signal processing device can construct the prediction mode candidate list using a part of the MPM list and a part of the rearranged multiple prediction mode candidate list. Candidates from a first candidate of the MPM list to a pre-specified number of candidates can be added to the prediction mode candidate list, and the pre-specified number can be 5. Candidates from among the multiple prediction mode candidates of the rearranged multiple prediction mode candidate list can be added to the prediction mode candidate list in a pre-specified number in order from a low cost to a high cost, and the pre-specified number can be an integer and can be 16.
인코더는 유도된 예측 모드 후보 리스트(또는 예측 모드 후보 리스트 재구성 과정이 수행되지 않은 경우에는 다중 예측 모드 후보 리스트)에서 현재 블록을 위한 최적의 예측 모드 후보를 결정한 후, 최적의 예측 모드 후보에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있다. 디코더는 최적의 예측 모드 후보에 대한 인덱스 정보를 비트스트림으로부터 파싱하여, 결정된 최적의 예측 모드 후보를 사용하여 현재 블록에 대한 예측 블록을 획득할 수 있다. 비디오 신호 처리 장치는 평면 모드(또는 DC 모드)에 기초하여 획득되는 예측 블록과 상기 최적의 예측 모드 후보로 획득되는 예측 블록 간 가중치 평균을 통해 현재 블록의 최종 예측 블록을 획득할 수 있다.The encoder can determine an optimal prediction mode candidate for the current block from the derived prediction mode candidate list (or a multiple prediction mode candidate list if the prediction mode candidate list reconstruction process is not performed), and then generate and signal a bitstream including index information for the optimal prediction mode candidate. The decoder can parse the index information for the optimal prediction mode candidate from the bitstream, and obtain a prediction block for the current block using the determined optimal prediction mode candidate. The video signal processing device can obtain a final prediction block of the current block through a weighted average between a prediction block obtained based on a planar mode (or a DC mode) and a prediction block obtained with the optimal prediction mode candidate.
다중 예측 모드 기반의 후보 리스트를 사용하여 예측 블록을 생성하는 방법이 활성화되는지 여부는 현재 블록이 휘도 블록인지 색차 블록인지, 현재 블록에 인트라 예측 모드가 적용되었는지, 현재 블록에 DIMD, TIMD, SGPM, ISP, MIP, Intra TMP, TMRL 모드 중에 하나가 적용되었는지, 현재 블록의 참조 픽셀 라인 정보, 현재 블록의 가로 및 세로의 크기, 현재 블록이 현재 블록을 포함하는 CTU 상단 경계에서 위치해 있는지 중에서 적어도 하나 이상에 기초하여 결정될 수 있다. 예를 들어, 현재 블록에 DIMD, TIMD, SGPM, ISP, MIP, Intra TMP, TMRL 모드 중 어느 하나가 적용된 경우, 다중 예측 모드 기반의 후보 리스트를 사용하여 예측 블록을 생성하는 방법은 활성화되지 않을 수 있고, 비디오 신호 처리 장치는 다중 예측 모드 기반의 후보 리스트를 사용하여 예측 블록을 생성하는 방법과 관련된 신택스를 시그널링하거나 파싱하지 않을 수 있다.Whether a method for generating a prediction block using a candidate list based on multiple prediction modes is activated may be determined based on at least one of whether the current block is a luminance block or a chrominance block, whether an intra prediction mode is applied to the current block, whether one of the DIMD, TIMD, SGPM, ISP, MIP, Intra TMP, and TMRL modes is applied to the current block, reference pixel line information of the current block, horizontal and vertical sizes of the current block, and whether the current block is located at the upper boundary of a CTU including the current block. For example, when one of the DIMD, TIMD, SGPM, ISP, MIP, Intra TMP, and TMRL modes is applied to the current block, the method for generating a prediction block using a candidate list based on multiple prediction modes may not be activated, and the video signal processing device may not signal or parse syntax related to the method for generating a prediction block using a candidate list based on multiple prediction modes.
유도된 다중 예측 모드 기반의 후보 리스트는 현재 블록의 부호화 모드가 DIMD, TIMD, SGPM, MIP, Intra TMP, TMRL 중에 어느 하나의 모드인 경우, 사용될 수 있다. The candidate list based on the derived multiple prediction modes can be used when the coding mode of the current block is one of DIMD, TIMD, SGPM, MIP, Intra TMP, and TMRL.
현재 블록에 DIMD가 적용된 경우, 비디오 신호 처리 장치는 DIMD를 사용하여 유도된 예측 모드를 유도된 다중 예측 모드 기반의 후보 리스트에 추가할 수 있다. 이때, 유도된 다중 예측 모드 기반의 후보 리스트는 템플릿 코스트에 기반하여 재정렬될 수 있다. 인코더는 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더는 인덱스 정보를 파싱하여 유도된 다중 예측 모드 기반의 후보 리스트 내에서 현재 블록을 위한 예측 모드를 결정할 수 있다. When DIMD is applied to the current block, the video signal processing device can add the prediction mode derived by using DIMD to the candidate list based on the derived multiple prediction mode. At this time, the candidate list based on the derived multiple prediction mode can be re-ordered based on the template cost. The encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and the decoder can parse the index information to determine a prediction mode for the current block in the candidate list based on the derived multiple prediction mode.
현재 블록에 TIMD가 적용된 경우, 비디오 신호 처리 장치는 TIMD를 사용하여 유도된 예측 모드를 유도된 다중 예측 모드 기반의 후보 리스트에 추가할 수 있고, 유도된 다중 예측 모드 기반의 후보 리스트는 템플릿 코스트에 기반하여 재정렬될 수 있다. 인코더는 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더는 최적의 예측 모드에 대한 인덱스 정보를 파싱하여 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드를 결정할 수 있다. When TIMD is applied to the current block, the video signal processing device can add the prediction mode derived using TIMD to the candidate list based on the derived multiple prediction mode, and the candidate list based on the derived multiple prediction mode can be reordered based on the template cost. The encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and the decoder can parse the index information for the optimal prediction mode to determine the optimal prediction mode in the candidate list based on the derived multiple prediction mode.
현재 블록에 SGPM이 적용된 경우, 비디오 신호 처리 장치는 분할된 2개 영역의 인트라 예측 모드를 유도하는데 유도된 다중 예측 모드 기반의 후보 리스트를 사용할 수 있고, 인코더는 분할된 2개 영역 중에서 하나 이상의 영역에 대한 최적의 예측 모드에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더는 인덱스 정보를 파싱하여 분할된 2개 영역 중에서 하나 이상의 영역에 대한 예측 모드를 상기 리스트로부터 결정할 수 있다. When SGPM is applied to the current block, the video signal processing device can use the candidate list based on the derived multiple prediction modes to derive intra prediction modes of the two divided regions, the encoder can generate and signal a bitstream including index information on an optimal prediction mode for one or more regions among the two divided regions, and the decoder can parse the index information to determine the prediction mode for one or more regions among the two divided regions from the list.
현재 블록에 DIMD가 적용된 경우, 비디오 신호 처리 장치는 Intra TMP를 사용하여 유도된 블록 벡터 후보들을 유도된 다중 예측 모드 기반의 후보 리스트에 추가할 수 있고, 유도된 다중 예측 모드 기반의 후보 리스트는 템플릿 코스트에 기반하여 재정렬될 수 있다. 인코더는 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더는 해당 인덱스 정보를 파싱하여 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드를 결정할 수 있다. When DIMD is applied to a current block, a video signal processing device can add block vector candidates derived using Intra TMP to a candidate list based on the derived multiple prediction mode, and the candidate list based on the derived multiple prediction mode can be reordered based on a template cost. An encoder can generate and signal a bitstream including index information for an optimal prediction mode in the candidate list based on the derived multiple prediction mode, and a decoder can parse the index information to determine an optimal prediction mode in the candidate list based on the derived multiple prediction mode.
현재 블록에 TMRL이 적용된 경우, 비디오 신호 처리 장치는 유도된 다중 예측 모드 기반의 후보 리스트와 참조 샘플 라인을 사용하여 통합 후보 리스트를 구성할 수 있다. 통합 리스트는 템플릿 코스트를 기반으로 재정렬될 수 있다. 인코더는 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드와 참조 샘플 라인에 대한 인덱스 정보를 포함하는 비트스트림을 생성하여 시그널링할 수 있고, 디코더는 해당 인덱스에 대한 정보를 파싱하여 유도된 다중 예측 모드 기반의 후보 리스트 내 최적의 예측 모드 참조 샘플 라인을 통합 리스트로부터 결정할 수 있다.When TMRL is applied to the current block, the video signal processing device can construct a unified candidate list using the candidate list based on the induced multiple prediction mode and the reference sample line. The unified list can be reordered based on the template cost. The encoder can generate and signal a bitstream including index information for an optimal prediction mode and reference sample line in the candidate list based on the induced multiple prediction mode, and the decoder can parse the information for the corresponding index to determine an optimal prediction mode reference sample line in the candidate list based on the induced multiple prediction mode from the unified list.
Non-MPM 리스트는 템플릿을 이용하여 템플릿 코스트에 기초하여 재정렬될 수 있고, Non-MPM 리스트는 최적의 인트라 예측 모드를 시그널링하거나 파싱하는데 사용될 수 있다.The Non-MPM list can be reordered based on template cost using templates, and the Non-MPM list can be used to signal or parse the optimal intra prediction mode.
현재 블록을 위한 MPM 리스트(예, 프라미어리(Primary) MPM 리스트, 세컨더리(Secondary_ MPM 리스트) 또는 Non-MPM 리스트는 주변 블록에서 사용된 인트라 예측 모드들의 발생 빈도에 따라 구성되거나 재정렬될 수 있다. 주변 블록에 사용된 인트라 예측 모드는 주변 블록이 DIMD인 경우에는 최대 J개의 인트라 예측 모드일 수 있으며, 주변 블록이 TIMD 모드인 경우에는 최대 K개의 인트라 예측 모드일 수 있으며, 주변 블록이 SGPM 모드인 경우에는 최대 L개의 인트라 예측 모드일 수 있으며, 주변 블록이 Intra TMP 또는 IBC 모드인 경우에는 Intra TMP 또는 IBC 모드가 적용된 블록에 저장된 인트라 예측 모드(또는 Intra TMP 또는 IBC 모드가 적용된 블록의 블록 벡터가 지시하는 블록의 인트라 예측 모드)일 수 있다. 주변 블록에 대한 정보는 현재 블록에 인접한 블록, 현재 블록에 인접하지 않고 미리 지정된 거리만큼 떨어진 블록, 별도의 메모리에 저장된 주변 블록 등을 포함할 수 있다. 또한, 주변 블록에 대한 정보는 주변 블록의 인트라 예측 방향성 모드 정보 및 각 모드에 대한 가중치 값을 포함할 수 있다. 비디오 신호 처리 장치는 주변 블록으로부터 유도된 인트라 예측 모드를 이용하여 인트라 예측 모드에 대한 히스토그램을 생성할 수 있다. 이때, J, K, L은 정수 일 수 있으며, 각각 5, 2, 2, 일 수 있다. 비디오 신호 처리 장치는 인트라 예측 모드에 대한 히스토그램을 이용하여 현재 블록에 대한 MPM 리스트를 구성할 수 있다. 발생 빈도가 높은 순부터 낮은 순으로 프라이머리 MPM 리스트에 추가될 수 있으며, 프라이머리 MPM 리스트가 미리 지정된 최대 개수만큼 채워졌다면, 다음 발생 빈도 순으로 세컨더리 MPM 리스트에 추가될 수 있다. 세컨더리 MPM 리스트가 미리 지정된 최대 개수만큼 채워졌다면, 다음 발생 빈도 순으로 Non-MPM 리스트에 추가될 수 있다. 인트라 예측 모드에 대한 히스토그램은 블록마다 갱신되어 블록의 MPM 리스트 혹은 Non-MPM 리스트를 구성하는데 사용될 수 있다. The MPM list for the current block (e.g., Primary MPM list, Secondary_ MPM list, or Non-MPM list) can be organized or rearranged according to the occurrence frequency of intra prediction modes used in the surrounding blocks. The intra prediction modes used in the surrounding blocks can be at most J intra prediction modes if the surrounding blocks are DIMD, at most K intra prediction modes if the surrounding blocks are TIMD mode, at most L intra prediction modes if the surrounding blocks are SGPM mode, and at most L intra prediction modes if the surrounding blocks are Intra TMP or IBC mode, and can be intra prediction modes stored in a block to which Intra TMP or IBC mode is applied (or intra prediction modes of a block indicated by a block vector of a block to which Intra TMP or IBC mode is applied). Information about the surrounding blocks can include blocks adjacent to the current block, blocks not adjacent to the current block but separated by a predetermined distance, and surrounding blocks stored in a separate memory. In addition, information about the surrounding blocks can include intra prediction directionality of the surrounding blocks. It may include mode information and a weight value for each mode. The video signal processing device may generate a histogram for the intra prediction mode using the intra prediction mode derived from the surrounding block. At this time, J, K, and L may be integers and may be 5, 2, 2, respectively. The video signal processing device may configure an MPM list for the current block using the histogram for the intra prediction mode. The MPM list may be added in order from the highest occurrence frequency to the lowest occurrence frequency, and if the primary MPM list is filled up to a pre-specified maximum number, the MPM list may be added in order of the next occurrence frequency. If the secondary MPM list is filled up to a pre-specified maximum number, the MPM list may be added in order of the next occurrence frequency to the Non-MPM list. The histogram for the intra prediction mode may be updated for each block and used to configure the MPM list or the Non-MPM list of the block.
또한, 비디오 신호 처리 장치는 현재 블록의 MPM 리스트를 먼저 구성한 후, 인트라 예측 모드에 대한 히스토그램을 이용하여 MPM 리스트 또는 Non-MPM 리스트에 대한 재정렬을 수행할 수 있다. 구체적으로, 비디오 신호 처리 장치는 인트라 예측 모드에 대한 히스토그램에서 발생 빈도가 높은 순서부터 낮은 순서대로 기준 인트라 예측 모드를 차례로 설정한 후, 기준 인트라 예측 모드에 기초하여 MPM 리스트 또는 Non-MPM 리스트를 재정렬할 수 있다. 그리고, 비디오 신호 처리 장치는 MPM 리스트 또는 Non-MPM 리스트에서 기준 인트라 예측 모드와 동일하거나 미리 지정된 값만큼의 차이를 가진 인트라 예측 모드를 MPM 리스트 또는 Non-MPM 리스트의 상위 순서로 순서를 변경할 수 있다. 미리 지정된 값은 정수로 3일 수 있다.In addition, the video signal processing device can first configure the MPM list of the current block, and then perform reordering of the MPM list or the Non-MPM list using the histogram for the intra prediction mode. Specifically, the video signal processing device can sequentially set reference intra prediction modes in order from a high occurrence frequency to a low occurrence frequency in the histogram for the intra prediction mode, and then reorder the MPM list or the Non-MPM list based on the reference intra prediction mode. Then, the video signal processing device can change the order of the intra prediction mode that is the same as the reference intra prediction mode or has a difference by a predetermined value in the MPM list or the Non-MPM list to a higher order in the MPM list or the Non-MPM list. The predetermined value can be an integer of 3.
비디오 신호 처리 장치가 Non-MPM 리스트에 인트라 예측 모드를 추가하는 순서는 현재 블록의 가로 및 세로 크기에 기초하여 달라질 수 있다. 예를 들어, 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 인트라 예측 모드(예, 도 6의 예측 모드) 중에서 미리 지정된 제1 인트라 예측 모드부터 미리 지정된 제2 인트라 예측 모드 순으로 추가될 수 있다. 제1 인트라 예측 모드는 66번 인덱스의 예측 모드일 수 있고, 제2 인트라 2번 인덱스의 예측 모드일 수 있다. The order in which the video signal processing device adds the intra prediction mode to the Non-MPM list may vary based on the horizontal and vertical sizes of the current block. For example, if the horizontal size of the current block is larger than the vertical size, the intra prediction modes (e.g., the prediction modes of FIG. 6) may be added in the order of a pre-specified first intra prediction mode to a pre-specified second intra prediction mode. The first intra prediction mode may be a prediction mode of index 66, and the second intra may be a prediction mode of index 2.
또한, 현재 블록의 가로의 크기가 세로의 크기보다 크다면, 인트라 예측 모드 중에서 미리 지정된 제1 인트라 예측 모드부터 미리 지정된 제2 인트라 예측 모드 순으로 추가된 후, 미리 지정된 제3 인트라 예측 모드부터 미리 지정된 제4 인트라 예측 모드 순으로 추가될 수 있다. 제1 인트라 예측 모드는 34번 인덱스의 예측 모드일 수 있고, 제2 인트라 예측 모드는 66번 인덱스의 예측 모드일 수 있고, 제3 인트라 예측 모드는 33번 인덱스의 예측 모드일 수 있고, 제4 인트라 예측 모드는 2번 인덱스의 예측 모드일 수 있다.In addition, if the horizontal size of the current block is larger than the vertical size, the intra prediction modes may be added in the order of a pre-designated first intra prediction mode to a pre-designated second intra prediction mode, and then in the order of a pre-designated third intra prediction mode to a pre-designated fourth intra prediction mode. The first intra prediction mode may be a prediction mode of index 34, the second intra prediction mode may be a prediction mode of index 66, the third intra prediction mode may be a prediction mode of index 33, and the fourth intra prediction mode may be a prediction mode of index 2.
도 67은 본 발명의 일 실시예에 따른 IBC 부호화 방법과 관련된 블록 벡터를 나타낸 도면이다.FIG. 67 is a diagram showing a block vector related to an IBC encoding method according to one embodiment of the present invention.
IBC 부호화 방법(IBC 모드)은 현재 블록과 가장 유사한 부분(참조 블록)을 현재 픽쳐 내의 이미 복원된 영역에서 찾아서, 참조 블록을 현재 블록에 대한 예측 블록으로 사용하는 방법이다. 이때, 인코더는 현재 블록과 참조 블록 간의 거리인 블록 벡터(Block Vector)와 관련된 정보를 포함하는 비트스트림을 생성할 수 있다. 디코더는 비스트스림에 포함된 블록 벡터와 관련된 정보를 파싱하여 현재 블록을 위한 블록 벡터를 계산하거나 설정할 수 있다. 색차 블록에서 IBC 부호화 방법이 적용될 수 있다. 색차 블록에서는 블록 벡터를 새롭게 찾지 않고, 색차 블록에 대응되는 휘도 블록의 블록 벡터를 색차 블록의 블록 벡터로 사용할 수 있으며, 이러한 부호화 방법을 DBV(Direct Block Vector) 모드라고 할 수 있다.The IBC coding method (IBC mode) is a method of finding the most similar part (reference block) to the current block in the already restored area of the current picture and using the reference block as a prediction block for the current block. At this time, the encoder can generate a bitstream including information related to a block vector, which is a distance between the current block and the reference block. The decoder can parse information related to the block vector included in the BeastStream to calculate or set a block vector for the current block. The IBC coding method can be applied to a chrominance block. In the chrominance block, the block vector of the luminance block corresponding to the chrominance block can be used as the block vector of the chrominance block without finding a new block vector, and this coding method can be called the DBV (Direct Block Vector) mode.
RRIBC(Reconstruction-Reordered IBC) 부호화 모드는 IBC 블록(IBC 부호화 방법이 적용된 블록)에서 사용할 수 있다. RRIBC는 수직 방향 플립(flip)과 수평 방향 플립으로 구성될 수 있다. RRIBC가 적용된 블록은 현재 블록의 RRIBC 타입에 따라 복원된 블록이 뒤집히게 된다. 인코더는 현재 블록과 가장 유사한 부분을 참조 픽쳐로부터 찾기 전에 현재 부호화할 원본 블록을 플립할 수 있다. 즉, 플립된 원본 블록을 이용하여 참조 픽쳐로부터 가장 유사한 부분을 찾는다. 따라서, 예측 블록은 플립 되지 않은 블록이 사용되며, 잔차 블록도 플립되지 않은 블록일 수 있다. 디코더는 최종 복원된 블록을 현재 블록의 RRIBC 타입에 따라 플립할 수 있다.The RRIBC (Reconstruction-Reordered IBC) encoding mode can be used in an IBC block (a block to which the IBC encoding method is applied). RRIBC can be composed of a vertical flip and a horizontal flip. A block to which RRIBC is applied is flipped when reconstructed according to the RRIBC type of the current block. The encoder can flip the original block to be encoded before finding the most similar part to the current block from the reference picture. That is, the most similar part from the reference picture is found using the flipped original block. Therefore, a block that is not flipped is used as the prediction block, and the residual block can also be a block that is not flipped. The decoder can flip the final reconstructed block according to the RRIBC type of the current block.
도 68은 수평 방향으로의 RRIBC를 사용하여 현재 블록을 예측하는 방법을 나타내는 도면이다.Figure 68 is a diagram illustrating a method for predicting the current block using RRIBC in the horizontal direction.
도 69는 수직 방향으로의 RRIBC를 사용하여 현재 블록을 예측하는 방법을 나타내는 도면이다.Figure 69 is a diagram illustrating a method for predicting the current block using RRIBC in the vertical direction.
도 68과 도 69의 (Xn, Yn)은 주변 블록의 중앙 위치를 나타내며, (Xc, Yc)은 현재 블록의 중앙 위치를 나타낸다. BVnh, BVnv 는 각각 주변 블록의 수평 방향 블록 벡터, 수직 방향 블록 벡터를 나타내고, BVCh, BVCv는 각각 현재 블록의 수평 방향 블록 벡터, 수직 방향 블록 벡터를 나타낸다. 도 53과 같이, 현재 블록의 RRIBC 타입이 수평 방향인 경우, BVCh는 2 * (Xn - Xc) + BVnh으로 계산될 수 있고, 도 53과 같이, 현재 블록의 RRIBC 타입이 수직 방향인 경우, BVCv는 2 * (yn - yc) + BVnv로 계산될 수 있다. 이때, BVnh, BVnv는 복원된 블록을 사용하므로, BVnh, BVnv의 부호는 음수만 가능하다.In FIG. 68 and FIG. 69, (Xn, Yn) represents the center position of the surrounding blocks, and (Xc, Yc) represents the center position of the current block. BVnh and BVnv represent a horizontal block vector and a vertical block vector of the surrounding blocks, respectively, and BVCh and BVCv represent a horizontal block vector and a vertical block vector of the current block, respectively. As shown in FIG. 53, if the RRIBC type of the current block is in the horizontal direction, BVCh can be calculated as 2 * (Xn - Xc) + BVnh, and as shown in FIG. 53, if the RRIBC type of the current block is in the vertical direction, BVCv can be calculated as 2 * (yn - yc) + BVnv. At this time, since BVnh and BVnv use the restored block, the signs of BVnh and BVnv can only be negative.
현재 블록이 RRIBC로 부호화되는 경우, 비디오 신호 처리 장치는 블록 벡터 후보 리스트를 구성하여 최적의 블록 벡터를 결정할 수 있다. 이때, 비디오 신호 처리 장치는 현재 블록의 RRIBC 타입에 따라 블록 벡터 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 RRIBC 타입이 수평 방향인 경우, 비디오 신호 처리 장치는 수평 방향의 RRIBC로 부호화된 현재 블록의 주변 블록만을 사용하여 블록 벡터 후보 리스트를 구성할 수 있다. 또한, 비디오 신호 처리 장치는 현재 블록의 RRIBC 타입에 상관없이 블록 벡터 후보 리스트를 구성할 수 있다. 예를 들어, 현재 블록의 RRIBC 타입이 수평 방향인 경우, 수평 방향의 RRIBC로 부호화된 현재 블록의 주변 블록뿐만 아니라 수직 방향의 RRIBC로 부호화된 현재 블록의 주변 블록 및/또는 일반적인 움직임으로 부호화된 블록 및/또는 블록 벡터로 부호화된 블록을 모두 사용하여 블록 벡터 후보 리스트를 구성할 수 있다.If the current block is encoded with RRIBC, the video signal processing device can determine an optimal block vector by constructing a block vector candidate list. At this time, the video signal processing device can construct the block vector candidate list according to the RRIBC type of the current block. For example, if the RRIBC type of the current block is horizontal, the video signal processing device can construct the block vector candidate list using only the neighboring blocks of the current block encoded with RRIBC in the horizontal direction. In addition, the video signal processing device can construct the block vector candidate list regardless of the RRIBC type of the current block. For example, if the RRIBC type of the current block is horizontal, the block vector candidate list can be constructed using not only the neighboring blocks of the current block encoded with RRIBC in the horizontal direction, but also the neighboring blocks of the current block encoded with RRIBC in the vertical direction and/or blocks encoded with general motion and/or blocks encoded with block vectors.
비디오 신호 처리 장치가 현재 블록을 일반적인 움직임을 사용하여 예측하는 경우, 비디오 신호 처리 장치는 현재 블록의 주변 블록이 IBC 모드로 부호화되었는지, RRIBC 모드로 부호화되었는지에 따라 움직임 후보 리스트를 구성할 수 있다. 이때, 비디오 신호 처리 장치는 현재 블록의 주변 블록이 RRIBC 모드로 부호화된 경우, RRIBC 타입을 추가적으로 고려하여 움직임 후보 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치가 현재 블록에 대한 움직임 후보 리스트를 구성할 때, 현재 블록의 주변 블록의 부호화 모드가 RRIBC 모드이고 RRIBC 타입이 수직 방향 또는 수평 방향인 경우, 주변 블록의 블록 벡터는 움직임 후보 리스트에 포함되지 않을 수 있다. 또는 비디오 신호 처리 장치가 현재 블록을 일반적인 움직임을 사용하여 예측하는 경우, 비디오 신호 처리 장치는 현재 블록의 주변 블록의 부호화 모드와 무관하게 움직임 후보 리스트를 구성할 수 있다. 즉, 비디오 신호 처리 장치는 현재 블록의 주변 블록이 IBC 모드로 부호화되었는지, RRIBC 모드로 부호화되었는지와 상관없이 움직임 후보 리스트를 구성할 수 있다. 예를 들어, 비디오 신호 처리 장치는 현재 블록에 대한 움직임 후보 리스트를 구성할 때, 현재 블록의 주변 블록의 부호화 모드가 IBC 모드이고 RRIBC 타입이 수직 방향 또는 수평 방향인 경우에도 주변 블록의 블록 벡터를 움직임 후보 리스트에 포함시킬 수 있다.When a video signal processing device predicts a current block using general motion, the video signal processing device can construct a motion candidate list depending on whether the neighboring blocks of the current block are encoded in the IBC mode or the RRIBC mode. At this time, when the neighboring blocks of the current block are encoded in the RRIBC mode, the video signal processing device can construct a motion candidate list by additionally considering the RRIBC type. For example, when the video signal processing device constructs a motion candidate list for the current block, when the encoding mode of the neighboring blocks of the current block is the RRIBC mode and the RRIBC type is the vertical direction or the horizontal direction, the block vector of the neighboring blocks may not be included in the motion candidate list. Alternatively, when the video signal processing device predicts the current block using general motion, the video signal processing device can construct a motion candidate list regardless of the encoding mode of the neighboring blocks of the current block. That is, the video signal processing device can construct a motion candidate list regardless of whether the neighboring blocks of the current block are encoded in the IBC mode or the RRIBC mode. For example, when a video signal processing device configures a motion candidate list for a current block, it may include block vectors of surrounding blocks of the current block in the motion candidate list even if the encoding mode of the surrounding blocks is the IBC mode and the RRIBC type is the vertical direction or the horizontal direction.
RRIBC 부호화 방법은 대칭적인 특성을 지니는 영상에 효과적이다. 대칭적인 특성은 현재 블록과 참조 블록 사이의 하나의 중심축을 기준으로 동일한 거리만큼 떨어진 완전한 수평(또는 수직) 방향의 대칭을 의미할 수 있다. 현재 블록의 수직(또는 수평) 방향(대칭축)은 참조 블록의 수직(또는 수평) 방향(대칭축)과 동일한 선 상에 위치할 수 있다. 이 경우, 수직(또는 수평) 방향의 블록 벡터는 '0'으로 설정될 수 있으며, 수평 방향의 블록 벡터에는 '0'이 아닌 임의의 음수 값이 설정될 수 있다. 현재 블록과 참조 블록은 현재 블록과 참조 블록 사이의 하나의 중심축을 기준으로 서로 다른 거리만큼의 차이를 갖는 대칭으로 구성될 수 있으며, 현재 블록과 참조 블록은 서로 다른 수직선 상에 위치할 수 있다. 이 경우, 수직 방향의 블록 벡터는 '0'이 아닌 임의의 음수 값으로 설정될 수 있다. 즉, 비디오 신호 처리 장치는 수평 및 수직 방향이 모두 '0'이 아닌 임의의 음수 값의 블록 벡터 값을 가지는 대칭 블록을 사용하여 현재 블록을 부호화 또는 복호화 할 수 있다.The RRIBC encoding method is effective for images having symmetrical characteristics. The symmetrical characteristics may mean perfect horizontal (or vertical) symmetry with the same distance apart from one central axis between the current block and the reference block. The vertical (or horizontal) direction (symmetry axis) of the current block may be located on the same line as the vertical (or horizontal) direction (symmetry axis) of the reference block. In this case, the block vector in the vertical (or horizontal) direction may be set to '0', and the block vector in the horizontal direction may be set to any negative value other than '0'. The current block and the reference block may be configured to be symmetrical with different distances apart from one central axis between the current block and the reference block, and the current block and the reference block may be located on different vertical lines. In this case, the block vector in the vertical direction may be set to any negative value other than '0'. That is, the video signal processing device can encode or decode the current block using a symmetric block having a block vector value of an arbitrary negative value other than '0' in both the horizontal and vertical directions.
도 70은 본 발명의 일 실시예에 따른 Intra TMP 모드로 부호화된 블록의 블록 벡터를 나타낸다.Fig. 70 shows a block vector of a block encoded in Intra TMP mode according to one embodiment of the present invention.
도 70을 참조하면 Intra TMP 방법(Intra TMP 부호화 모드)은 비디오 신호 처리 장치가 현재 블록에 인접한 주변 블록의 화소 값들을 사용하여 기준 템플릿을 구성한 후, 기준 템플릿과 가장 유사한 부분을 현재 픽쳐 내의 이미 복원된 영역(참조 블록)에서 찾은 후, 참조 블록(도 70의 Ref. luma block)을 현재 블록에 대한 예측 블록으로 사용하는 방법이다. 이때, 현재 휘도 블록에 대한 예측 블록을 생성하는 데 사용되는 블록 벡터는 하나 이상일 수 있으며, 도 70은 블록 벡터가 2개인 경우를 보여준다. 비디오 신호 처리 장치는 현재 휘도 블록의 2개의 블록 벡터로부터 예측된 참조 블록들을 가중치 평균하여 휘도 블록에 대한 예측 블록을 생성할 수 있다. 색차 블록의 경우, 비디오 신호 처리 장치는 색차 블록에 대응되는 휘도 블록으로부터 블록 벡터를 유도한 후, 블록 백터를 사용하여 색차 예측 블록을 생성할 수 있다. 현재 색차 블록에 대한 예측 블록을 생성하는 데 사용되는 블록 벡터는 하나 이상일 수 있으며, 도 70은 색차 블록을 위한 블록 벡터가 2개인 경우를 보여준다. 이때 색차 블록의 블록 벡터는 휘도 블록으로부터 유도된 블록 벡터와 같거나 다를 수 있다.Referring to FIG. 70, the Intra TMP method (Intra TMP encoding mode) is a method in which a video signal processing device constructs a reference template using pixel values of neighboring blocks adjacent to a current block, and then finds a part most similar to the reference template in an already restored area (reference block) within the current picture, and then uses the reference block (Ref. luma block of FIG. 70) as a prediction block for the current block. At this time, there may be one or more block vectors used to generate a prediction block for the current luminance block, and FIG. 70 shows a case in which there are two block vectors. The video signal processing device can generate a prediction block for the luminance block by weighting and averaging reference blocks predicted from two block vectors of the current luminance block. In the case of a chrominance block, the video signal processing device can derive a block vector from a luminance block corresponding to the chrominance block, and then generate a chrominance prediction block using the block vector. There may be more than one block vector used to generate a prediction block for the current chrominance block, and Fig. 70 shows a case where there are two block vectors for the chrominance block. In this case, the block vector of the chrominance block may be the same as or different from the block vector derived from the luminance block.
도 71은 본 발명의 일 실시예에 따른 GPM 모드에 의해 현재 블록이 분할된 경우, 분할된 영역이 IBC 모드로 부호화되는 경우를 나타낸다.Figure 71 illustrates a case where a current block is divided by the GPM mode according to one embodiment of the present invention and the divided area is encoded in the IBC mode.
현재 블록은 IBC-GPM 모드로 부호화 혹은 복호화 될 수 있다. IBC-GPM 모드는 현재 블록이 GPM 모드를 사용하여 분할되고, 분할된 영역이 인트라 예측 모드 혹은 IBC 예측 모드로 부호화되는 모드를 의미할 수 있다. 도 71을 참조하면 현재 블록은 점선을 기준으로 2개 영역으로 분할될 수 있다. 이때, 분할된 영역 중 어느 하나는 인트라 예측 모드로 부호화될 수 있고, 나머지 하나는 IBC 예측 모드로 부호화될 수 있다. 예를 들어, 분할된 영역 중 왼쪽 영역은 인트라 예측 모드로 부호화되고, 오른쪽 영역은 IBC 예측 모드로 부호화될 수 있다. 이때, IBC 예측 모드로 부호화된 영역은 Intra TMP 예측 모드로 부호화될 수 있고, 이를 IntraTMP-GPM 모드라 기술할 수 있다.The current block can be encoded or decoded in the IBC-GPM mode. The IBC-GPM mode may mean a mode in which the current block is divided using the GPM mode, and the divided region is encoded in the intra prediction mode or the IBC prediction mode. Referring to FIG. 71, the current block can be divided into two regions based on the dotted line. At this time, one of the divided regions can be encoded in the intra prediction mode, and the other can be encoded in the IBC prediction mode. For example, the left region among the divided regions can be encoded in the intra prediction mode, and the right region can be encoded in the IBC prediction mode. At this time, the region encoded in the IBC prediction mode can be encoded in the Intra TMP prediction mode, and this can be described as the IntraTMP-GPM mode.
도 72는 본 발명의 일 실시예에 따른 현재 블록이 IBC-CIIP 모드로 부호화되는 방법을 나타낸다.Figure 72 shows how a current block is encoded in IBC-CIIP mode according to one embodiment of the present invention.
비디오 신호 처리 장치는 인트라 모드로 예측된 블록과 IBC 모드로 예측된 블록 간의 가중치 평균을 이용하여 현재 블록을 예측할 수 있고, 이를 IBC-CIIP 모드라고 할 수 있다. 이때, IBC 모드로 예측된 블록 대신 Intra TMP 모드로 예측된 블록이 사용될 수 있고, 이를 IntraTMP-CIIP 모드라고 할 수 있다.A video signal processing device can predict a current block using a weighted average between a block predicted in the intra mode and a block predicted in the IBC mode, and this can be called the IBC-CIIP mode. At this time, a block predicted in the Intra TMP mode can be used instead of a block predicted in the IBC mode, and this can be called the IntraTMP-CIIP mode.
비디오 신호 처리 장치는 현재 블록의 휘도 예측 블록과 휘도 블록에 대한 잔차 신호를 더하여 복원되는 휘도 블록을 획득하고, 복원된 휘도 블록과 휘도 예측 블록 간의 상관성을 이용하여 CCP 모델을 구성할 수 있다. 이때 CCP 모델은 CCLM, MMLM, GLM, CCCM, MM-CCCM, GL-CCCM, CCCM-ND, CCCM-MDF 중에 하나가 될 수 있다. 휘도 블록으로부터 유도된 CCP 모델을 색차 예측 블록에 적용하여 CCP 모델이 적용된 제1 색차 예측 블록을 생성할 수 있다. 제1 색차 예측 블록과 색차 블록에 대한 오차 신호를 더하여 최종 색차 블록을 생성할 수 있다.A video signal processing device can obtain a reconstructed luminance block by adding a residual signal for a luminance prediction block of a current block and a luminance block, and can configure a CCP model by using a correlation between the reconstructed luminance block and the luminance prediction block. At this time, the CCP model can be one of CCLM, MMLM, GLM, CCCM, MM-CCCM, GL-CCCM, CCCM-ND, and CCCM-MDF. The CCP model derived from the luminance block can be applied to a chrominance prediction block to generate a first chrominance prediction block to which the CCP model is applied. A final chrominance block can be generated by adding an error signal for the first chrominance prediction block and the chrominance block.
도 73은 본 발명의 일 실시예에 따른 15는 CCCM 파라미터를 유도하기 위해 사용되는 참조 영역 및 필터 형태의 일 예를 나타낸다.FIG. 73 shows an example of a reference region and filter shape used to derive CCCM parameters according to one embodiment of the present invention.
CCCM(Convolutional cross-component intra prediction model)은 휘도 신호와 휘도 신호와 동일한 위치에 있는 색차 신호 간의 높은 상관성을 이용하여 구성되는 비선형 모델을 모델을 통해 색차 신호를 예측하는 방법이다. 도 73(a)는 현재 예측 블록(사선 빗금, 7310)에 CCCM이 적용되기 위한 참조 샘플들(수직 빗금, 7320)과 십자 모양의 필터를 적용할 때 필요한 사이드(side) 샘플(수평 빗금)의 위치 관계를 나타내고 있다. 현재 예측 블록(MxN)은 크로마 대 루마의 샘플 개수 비율은 1:1 관계에서 상측 6줄의 참조 샘플(2Mx6), 좌측 6줄의 참조 샘플(6x2N) 및 좌-상단의 6x6 참조 샘플들로 구성될 수 있다. 비디오 신호 처리 장치가 CCCM을 위해 십자형 샘플(도 73(b)) 필터를 크로마 샘플 예측 관계식에(도 73(c)) 적용할 때 참조 샘플 영역을 벗어나는 경우가 발생한다. 이때, 추가로 필요한 샘플들이 사이드 샘플일 수 있다. 도 73(c)의 크로마 샘플 예측 관계식은 크로마 성분 각각(즉, Cb, Cr)에 대해 적용될 수 있다. 도 73(b)의 C (Center) 위치의 샘플은 Cb, Cr 크로마 샘플들에 대응되는 루마 샘플 일수 있고, N (North), E (East), S (South), W (West)는 C위치의 루마 샘플과 인접한 루마 샘플들일 수 있다. 사이드 샘플은 C 샘플의 위치에 따라 참조 샘플 이외의 영역에 대해 한 샘플씩 추가로 필요할 수 있다. 사이드 샘플의 위치에 존재하는 샘플 값이 이용가능하지 않은 경우, 이용가능하지 않은 위치의 샘플 값은 C 샘플 값으로 패딩될 수 있다. 도 73(c)의 P 값은 비선형적 항(nonlinear term)일 수 있다. P 값은 P = ( C*C + midVal ) >> bitDepth 으로 계산될 수 있으며, 10 비트 컨텐츠인 경우 P = ( C*C + 512 ) >> 10 일 수 있다. 도 73(c)에서 B 값은 바이어스 값으로 정수 오프셋 값일 수 있다. B 값은 bitDepth(비트 심도)의 중간 값일 수 있다. 10 비트 컨텐츠일 경우, B 값은 512일 수 있다.CCCM(Convolutional cross-component intra prediction model) is a method of predicting a chrominance signal using a nonlinear model that is constructed by utilizing a high correlation between a luminance signal and a chrominance signal at the same location as the luminance signal. Fig. 73(a) shows the positional relationship between reference samples (vertical hatching, 7320) for applying CCCM to a current prediction block (diagonal hatching, 7310) and side samples (horizontal hatching) required when applying a cross-shaped filter. The current prediction block (MxN) can be composed of reference samples in the upper 6 rows (2Mx6), reference samples in the left 6 rows (6x2N), and 6x6 reference samples in the upper left, where the ratio of the number of chroma to luma samples is 1:1. When a video signal processing device applies a cross-shaped sample (Fig. 73(b)) filter to a chroma sample prediction relationship (Fig. 73(c)) for CCCM, there are cases where the reference sample area is out of the range. At this time, additionally required samples may be side samples. The chroma sample prediction relation of Fig. 73(c) may be applied to each chroma component (i.e., Cb, Cr). The sample at the C (Center) position in Fig. 73(b) may be a luma sample corresponding to the Cb and Cr chroma samples, and N (North), E (East), S (South), and W (West) may be luma samples adjacent to the luma sample at the C position. Side samples may additionally require one sample each for an area other than the reference sample depending on the position of the C sample. If the sample value existing at the position of the side sample is not available, the sample value at the unavailable position may be padded with the C sample value. The P value of Fig. 73(c) may be a nonlinear term. The P value may be calculated as P = ( C*C + midVal ) >> bitDepth , and in case of 10-bit content, P = ( C*C + 512 ) >> 10. In Fig. 73(c), the B value can be an integer offset value as a bias value. The B value can be an intermediate value of bitDepth (bit depth). In case of 10-bit content, the B value can be 512.
MM-CCCM(multi-model CCCM)은 참조 영역(또는 복원된 현재 휘도 블록)의 평균값에 기초하여 2개의 CCCM 파라미터를 유도하는 방법이다.MM-CCCM (multi-model CCCM) is a method that derives two CCCM parameters based on the average value of the reference area (or the reconstructed current luminance block).
GL-CCCM(Gradient and location based convolutional cross-component model)은 그래디언트(Gradient) 와 위치(location) 정보를 이용한 추가적인 CCCM 모드이다. 기존의 CCCM 모드의 경우, 비디오 신호 처리 장치는 예측할 색차 샘플 위치에서 대응되는 위치에 있는 휘도 샘플과 그 휘도 샘플 주변의 4개 샘플 그리고 계수 정보를 사용하여 현재 블록에 대한 색차 샘플을 유도할 수 있다. 이때, GL-CCCM 모드의 경우, 비디오 신호 처리 장치는 예측할 색차 샘플 위치에서 대응되는 위치에 있는 휘도 샘플과 그 휘도 샘플 주변의 8개 샘플들에 대한 수직, 수평 차이를 반영하고, 또한 현재 휘도 샘플의 위치 값과 그것의 계수 정보를 사용하여 현재 블록에 대한 색차 샘플을 유도할 수 있다.GL-CCCM (Gradient and location based convolutional cross-component model) is an additional CCCM mode that uses gradient and location information. In the case of the existing CCCM mode, the video signal processing device can derive the chrominance sample for the current block by using the luminance sample at the corresponding position from the predicted chrominance sample location, four samples around the luminance sample, and coefficient information. At this time, in the case of the GL-CCCM mode, the video signal processing device can derive the chrominance sample for the current block by reflecting the vertical and horizontal differences for the luminance sample at the corresponding position from the predicted chrominance sample location and eight samples around the luminance sample, and also by using the position value of the current luminance sample and its coefficient information.
CCCM 모드가 적용될 때, 비디오 신호 처리 장치는 휘도 블록과 색차 블록 간의 해상도 차이를 맞추기 위해서 다운 샘플링 필터를 적용할 수 있다. 휘도 블록을 색차 블록의 해상도로 낮추기 위함이다. 다운 샘플링 필터를 적용하는 모드는 CCCM-MDF(CCCM with multiple downsampling filters)라 기술될 수 있다.When the CCCM mode is applied, the video signal processing device can apply a downsampling filter to match the resolution difference between the luminance block and the chrominance block. This is to reduce the resolution of the luminance block to that of the chrominance block. The mode for applying the downsampling filter can be described as CCCM-MDF (CCCM with multiple downsampling filters).
현재 블록에 인터 부호화 모드가 적용된 경우, 비디오 신호 처리 장치는 현재 블록의 움직임 정보를 사용하여 유도된 휘도 예측 블록(Y')과 현재 블록의 움직임 정보를 사용하여 유도된 제1 색차 예측 블록(Cb', Cr') 간의 선형 및 비선형 모델을 유도한 후(Derive filter), 현재 블록의 휘도 잔차 블록을 이용하여 현재 블록의 복원된 휘도 블록을 생성하고, 상기 유도된 선형 및 비선형 모델을 현재 블록의 복원된 휘도 블록에 적용(Apply filter)하여 현재 블록의 제2 색차 예측 블록을 생성할 수 있다. 이후, 비디오 신호 처리 장치는 선형 및 비선형 모델을 이용하여 예측된 현재 블록의 제2 색차 예측 블록에 색차 잔차 블록을 더하여 최종적으로 현재 블록의 색차 블록(Cb, Cr)을 생성할 수 있다. 이러한 방법은 CCRM(cross-component residual model)이라 기술될 수 있다.When the inter encoding mode is applied to the current block, the video signal processing device can derive linear and nonlinear models between a luminance prediction block (Y') derived using motion information of the current block and a first chrominance prediction block (Cb', Cr') derived using motion information of the current block (Derive filter), generate a reconstructed luminance block of the current block using a luminance residual block of the current block, and apply the derived linear and nonlinear models to the reconstructed luminance block of the current block (Apply filter) to generate a second chrominance prediction block of the current block. Thereafter, the video signal processing device can add the chrominance residual block to the second chrominance prediction block of the current block predicted using the linear and nonlinear models to finally generate the chrominance block (Cb, Cr) of the current block. This method can be described as a cross-component residual model (CCRM).
도 74는 본 발명의 일 실시예에 따른 통합 리스트를 구성하는 방법을 나타낸다.Figure 74 illustrates a method for constructing an integrated list according to one embodiment of the present invention.
도 74를 참조하여 도 1 내지 도 73을 통해 상술한 통합 리스트를 구성하는 방법에 대해 설명한다.Referring to FIG. 74, a method of constructing the integrated list described above through FIGS. 1 to 73 is described.
비디오 신호 디코딩 장치(예, 디코더)는 하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득할 수 있다(S7410). 상기 복수 개의 페어는 제1 페어와 제2 페어를 포함할 수 있다.A video signal decoding device (e.g., a decoder) can obtain a plurality of pairs each consisting of one reference line and one intra prediction mode (S7410). The plurality of pairs can include a first pair and a second pair.
비디오 신호 디코딩 장치는 상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득할 수 있다(S7420).A video signal decoding device can obtain a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair (S7420).
비디오 신호 디코딩 장치는 상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원할 수 있다(S7430).The video signal decoding device can restore the current block based on one integrated pair in the above list (S7430).
상기 복수 개의 페어는 각각 서로 다른 참조 라인과 인트라 예측 모드의 조합으로 구성될 수 있다.Each of the above multiple pairs may be composed of different combinations of reference lines and intra prediction modes.
비디오 신호 디코딩 장치는, 상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하고, 상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하고, 상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득할 수 있다. 그리고 비디오 신호 디코딩 장치는 상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원할 수 있다.A video signal decoding device can obtain a first prediction block based on a first reference line and a first intra prediction mode of the first pair, obtain a second prediction block based on a second reference line and a second intra prediction mode of the second pair, and obtain a final prediction block by performing a weighted average on the first prediction block and the second prediction block. And the video signal decoding device can reconstruct the current block based on the final prediction block.
상기 리스트 내 상기 하나의 통합 페어는 비트스트림에 포함된 신택스 요소에 기초하여 지시될 수 있다.The one integrated pair in the above list can be indicated based on a syntax element included in the bitstream.
상기 리스트를 구성하는 상기 복수의 통합 페어는 상기 복수의 통합 페어 각각의 코스트에 기초하여 정렬될 수 있다.The plurality of integrated pairs constituting the above list can be sorted based on the cost of each of the plurality of integrated pairs.
상기 복수의 통합 페어는 대응되는 코스트가 낮은 순으로 정렬될 수 있다.The above multiple integrated pairs can be sorted in order of their corresponding costs.
본 명세서에서 상술한 방법들은 디코더 또는 인코더의 프로세서를 통해 수행될 수 있다. 또한, 인코더는 상술한 방법들에 의해 디코딩되는 비트스트림을 생성할 수 있다. 또한, 인코더가 생성한 비트스트림은 컴퓨터 판독 가능한 비 일시적 저장 매체(기록 매체)에 저장될 수 있다.The methods described herein may be performed by a processor of a decoder or an encoder. In addition, the encoder may generate a bitstream that is decoded by the methods described above. In addition, the bitstream generated by the encoder may be stored in a computer-readable, non-transitory storage medium (recording medium).
본 명세서는 주로 디코더 관점에서 기술되었으나 인코더에서도 동일하게 동작될 수 있다. 본 명세서의 파싱이라는 용어는 비트스트림으로부터 정보를 획득하는 과정을 중점으로하여 설명되었으나 인코더 측면에서는 비트스트림에 해당 정보를 구성하는 것으로 해석될 수 있다. 따라서 파싱이라는 용어는 디코더 동작으로만 한정되지 않고 인코더에서는 비트스트림을 구성하는 행위로까지 해석될 수 있다. 또한, 이러한 비트스트림은 컴퓨터 판독 가능한 기록 매체에 저장되어 구성될 수 있다.This specification is mainly described from the decoder's perspective, but it can be operated in the same way in the encoder. The term parsing in this specification is described with a focus on the process of obtaining information from a bitstream, but in terms of the encoder, it can be interpreted as configuring the corresponding information in the bitstream. Therefore, the term parsing is not limited to the decoder's operation, but can be interpreted as the act of configuring a bitstream in the encoder. In addition, such a bitstream can be stored and configured in a computer-readable recording medium.
상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.The embodiments of the present invention described above can be implemented through various means. For example, the embodiments of the present invention can be implemented by hardware, firmware, software, or a combination thereof.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.In the case of hardware implementation, the method according to embodiments of the present invention can be implemented by one or more ASICs (Application Specific Integrated Circuits), DSPs (Digital Signal Processors), DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, and the like.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리는 프로세서의 내부 또는 외부에 위치할 수 있으며, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고받을 수 있다.In the case of implementation by firmware or software, the method according to the embodiments of the present invention may be implemented in the form of a module, procedure, or function that performs the functions or operations described above. The software code may be stored in a memory and may be driven by a processor. The memory may be located inside or outside the processor, and may exchange data with the processor by various means already known.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.Some embodiments may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules, that are executed by a computer. Computer-readable media can be any available media that can be accessed by a computer, and includes both volatile and nonvolatile media, removable and non-removable media. Additionally, computer-readable media can include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Communication media typically includes computer-readable instructions, data structures, or other data in a modulated data signal, such as program modules, or other transport mechanisms, and includes any information delivery media.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아는 것으로 해석해야 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustrative purposes, and those skilled in the art will understand that the present invention can be easily modified into other specific forms without changing the technical idea or essential characteristics of the present invention. Therefore, it should be understood that the embodiments described above are exemplary and limited in all respects. For example, each component described as a single component may be implemented in a distributed manner, and likewise, components described as distributed may be implemented in a combined form.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the claims described below rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention.
Claims (18)
- 비디오 신호 디코딩 장치에 있어서,In a video signal decoding device,프로세서를 포함하며,Includes a processor,상기 프로세서는,The above processor,하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득하고,Obtain multiple pairs consisting of one reference line and one intra prediction mode,상기 복수 개의 페어는 제1 페어와 제2 페어를 포함하고,The above plurality of pairs includes a first pair and a second pair,상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득하고,Obtain a list consisting of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair,상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원하는, 비디오 신호 디코딩 장치.A video signal decoding device that restores a current block based on one integrated pair in the above list.
- 제 1항에 있어서,In paragraph 1,상기 복수 개의 페어는 각각 서로 다른 참조 라인과 인트라 예측 모드의 조합으로 구성되는, 비디오 신호 디코딩 장치.A video signal decoding device, wherein each of the above plurality of pairs is composed of a combination of different reference lines and intra prediction modes.
- 제 1항에 있어서,In paragraph 1,상기 프로세서는,The above processor,상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하고,Obtaining a first prediction block based on the first reference line and the first intra prediction mode of the first pair,상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하고,Obtaining a second prediction block based on the second reference line of the second pair and the second intra prediction mode,상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득하고,The final prediction block is obtained by weighting and averaging the first prediction block and the second prediction block,상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원하는 비디오 신호 디코딩 장치.A video signal decoding device for restoring the current block based on the final prediction block.
- 제 1항에 있어서,In paragraph 1,상기 리스트 내 상기 하나의 통합 페어는 비트스트림에 포함된 신택스 요소에 기초하여 지시되는, 비디오 신호 디코딩 장치. A video signal decoding device, wherein said one integrated pair in said list is indicated based on a syntax element included in a bitstream.
- 제 1항에 있어서,In paragraph 1,상기 리스트를 구성하는 상기 복수의 통합 페어는 상기 복수의 통합 페어 각각의 코스트에 기초하여 정렬되는, 비디오 신호 디코딩 장치.A video signal decoding device, wherein the plurality of integrated pairs constituting the above list are sorted based on the cost of each of the plurality of integrated pairs.
- 제 5항에 있어서,In paragraph 5,상기 복수의 통합 페어는 대응되는 코스트가 낮은 순으로 정렬되는, 비디오 신호 디코딩 장치.A video signal decoding device, wherein the above plurality of integrated pairs are sorted in order of decreasing corresponding costs.
- 비디오 신호 인코딩 장치에 있어서,In a video signal encoding device,프로세서를 포함하며, Includes a processor,상기 프로세서는 디코딩 방법에 의해 디코딩 되는 비트스트림을 획득하고,The above processor obtains a bitstream decoded by a decoding method,상기 디코딩 방법은,The above decoding method is,하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득하는 단계;A step of obtaining multiple pairs consisting of one reference line and one intra prediction mode;상기 복수 개의 페어는 제1 페어와 제2 페어를 포함하고,The above plurality of pairs includes a first pair and a second pair,상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득하는 단계; 및A step of obtaining a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair; and상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원하는 단계를 포함하는, 비디오 신호 인코딩 장치.A video signal encoding device, comprising a step of restoring a current block based on one integrated pair in the above list.
- 제 7항에 있어서,In Article 7,상기 복수 개의 페어는 각각 서로 다른 참조 라인과 인트라 예측 모드의 조합으로 구성되는, 비디오 신호 인코딩 장치.A video signal encoding device, wherein each of the above plurality of pairs is composed of a combination of different reference lines and intra prediction modes.
- 제 7항에 있어서,In Article 7,상기 디코딩 방법은,The above decoding method is,상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하는 단계;A step of obtaining a first prediction block based on the first reference line and the first intra prediction mode of the first pair;상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하는 단계;A step of obtaining a second prediction block based on the second reference line of the second pair and the second intra prediction mode;상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득하는 단계; 및A step of obtaining a final prediction block by weighting and averaging the first prediction block and the second prediction block; and상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원하는 단계를 더 포함하는, 비디오 신호 인코딩 장치.A video signal encoding device further comprising a step of restoring the current block based on the final prediction block.
- 제 7항에 있어서,In Article 7,상기 리스트 내 상기 하나의 통합 페어는 비트스트림에 포함된 신택스 요소에 기초하여 지시되는, 비디오 신호 인코딩 장치. A video signal encoding device, wherein said one integrated pair in said list is indicated based on a syntax element included in a bitstream.
- 제 7항에 있어서,In Article 7,상기 리스트를 구성하는 상기 복수의 통합 페어는 상기 복수의 통합 페어 각각의 코스트에 기초하여 정렬되는, 비디오 신호 인코딩 장치.A video signal encoding device, wherein the plurality of integrated pairs constituting the above list are sorted based on the cost of each of the plurality of integrated pairs.
- 제 11항에 있어서,In Article 11,상기 복수의 통합 페어는 대응되는 코스트가 낮은 순으로 정렬되는, 비디오 신호 인코딩 장치.A video signal encoding device, wherein the above plurality of integrated pairs are sorted in order of decreasing corresponding costs.
- 비트스트림을 저장하는 컴퓨터 판독 가능한 비 일시적 저장 매체에 있어서, 상기 비트스트림은 디코딩 방법에 의해 디코딩되고,In a computer-readable non-transitory storage medium storing a bitstream, the bitstream is decoded by a decoding method,상기 디코딩 방법은,The above decoding method is,하나의 참조 라인과 하나의 인트라 예측 모드로 구성된 페어를 복수 개 획득하는 단계;A step of obtaining multiple pairs consisting of one reference line and one intra prediction mode;상기 복수 개의 페어는 제1 페어와 제2 페어를 포함하고,The above plurality of pairs includes a first pair and a second pair,상기 제1 페어와 상기 제2 페어를 통합한 제1 통합 페어를 포함하는 복수의 통합 페어로 구성되는 리스트를 획득하는 단계; 및A step of obtaining a list composed of a plurality of integrated pairs including a first integrated pair that integrates the first pair and the second pair; and상기 리스트 내 하나의 통합 페어에 기초하여 현재 블록을 복원하는 단계를 포함하는, 비 일시적 저장 매체.A non-transitory storage medium comprising a step of restoring a current block based on one of the integrated pairs in the above list.
- 제 13항에 있어서,In Article 13,상기 복수 개의 페어는 각각 서로 다른 참조 라인과 인트라 예측 모드의 조합으로 구성되는, 비디오 신호 인코딩 장치.A video signal encoding device, wherein each of the above plurality of pairs is composed of a combination of different reference lines and intra prediction modes.
- 제 13항에 있어서,In Article 13,상기 디코딩 방법은,The above decoding method is,상기 제1 페어의 제1 참조 라인과 제1 인트라 예측 모드에 기초하여 제1 예측 블록을 획득하는 단계;A step of obtaining a first prediction block based on the first reference line and the first intra prediction mode of the first pair;상기 제2 페어의 제2 참조 라인과 제2 인트라 예측 모드에 기초하여 제2 예측 블록을 획득하는 단계;A step of obtaining a second prediction block based on the second reference line of the second pair and the second intra prediction mode;상기 제1 예측 블록과 상기 제2 예측 블록을 가중치 평균하여 최종 예측 블록을 획득하는 단계; 및A step of obtaining a final prediction block by weighting and averaging the first prediction block and the second prediction block; and상기 최종 예측 블록에 기초하여 상기 현재 블록을 복원하는 단계를 더 포함하는, 비 일시적 저장 매체.A non-transitory storage medium further comprising a step of restoring the current block based on the final predicted block.
- 제 13항에 있어서,In Article 13,상기 리스트 내 상기 하나의 통합 페어는 비트스트림에 포함된 신택스 요소에 기초하여 지시되는, 비 일시적 저장 매체. A non-transitory storage medium in which said one integrated pair in said list is indicated based on a syntax element included in the bitstream.
- 제 7항에 있어서,In Article 7,상기 리스트를 구성하는 상기 복수의 통합 페어는 상기 복수의 통합 페어 각각의 코스트에 기초하여 정렬되는, 비 일시적 저장 매체.A non-transitory storage medium, wherein the plurality of integrated pairs constituting the above list are sorted based on the cost of each of the plurality of integrated pairs.
- 제 17항에 있어서,In Article 17,상기 복수의 통합 페어는 대응되는 코스트가 낮은 순으로 정렬되는, 비 일시적 저장 매체.A non-transitory storage medium in which the above multiple integrated pairs are sorted in order of their corresponding costs.
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2023-0049012 | 2023-04-13 | ||
KR20230049012 | 2023-04-13 | ||
KR10-2023-0051286 | 2023-04-19 | ||
KR20230051286 | 2023-04-19 | ||
KR20230052097 | 2023-04-20 | ||
KR10-2023-0052097 | 2023-04-20 | ||
KR20230091205 | 2023-07-13 | ||
KR10-2023-0091205 | 2023-07-13 | ||
KR10-2024-0011883 | 2024-01-25 | ||
KR20240011883 | 2024-01-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024215185A1 true WO2024215185A1 (en) | 2024-10-17 |
Family
ID=93059890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2024/095711 WO2024215185A1 (en) | 2023-04-13 | 2024-04-15 | Method for processing video signal and device therefor |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024215185A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021058640A1 (en) * | 2019-09-24 | 2021-04-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Efficient implementation of matrix-based intra-prediction |
KR20210058782A (en) * | 2016-10-14 | 2021-05-24 | 세종대학교산학협력단 | Method and apparatus for encoding/decoding an image |
KR20210134347A (en) * | 2019-03-21 | 2021-11-09 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Improved weighting of combined intra-inter prediction |
US20220345692A1 (en) * | 2021-04-26 | 2022-10-27 | Tencent America LLC | Template matching based intra prediction |
KR20230014101A (en) * | 2021-01-28 | 2023-01-27 | 한양대학교 산학협력단 | Method and apparatus for video coding/decoding using intra prediction |
-
2024
- 2024-04-15 WO PCT/KR2024/095711 patent/WO2024215185A1/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210058782A (en) * | 2016-10-14 | 2021-05-24 | 세종대학교산학협력단 | Method and apparatus for encoding/decoding an image |
KR20210134347A (en) * | 2019-03-21 | 2021-11-09 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | Improved weighting of combined intra-inter prediction |
WO2021058640A1 (en) * | 2019-09-24 | 2021-04-01 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Efficient implementation of matrix-based intra-prediction |
KR20230014101A (en) * | 2021-01-28 | 2023-01-27 | 한양대학교 산학협력단 | Method and apparatus for video coding/decoding using intra prediction |
US20220345692A1 (en) * | 2021-04-26 | 2022-10-27 | Tencent America LLC | Template matching based intra prediction |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020076143A1 (en) | Video signal processing method and apparatus using multi-assumption prediction | |
WO2020060376A1 (en) | Method and apparatus for processing video signals using inter prediction | |
WO2020096389A1 (en) | Image signal encoding/decoding method and apparatus therefor | |
WO2018026219A1 (en) | Video signal processing method and device | |
WO2018030773A1 (en) | Method and apparatus for image encoding/decoding | |
WO2020005035A1 (en) | Image encoding/decoding method and apparatus for throughput enhancement, and recording medium storing bitstream | |
WO2019240493A1 (en) | Context adaptive binary arithmetic coding method and device | |
WO2018097590A1 (en) | Image encoding/decoding method and device, and recording medium having bitstream stored thereon | |
WO2020060242A1 (en) | Intra prediction mode encoding/decoding method and device, and recording medium in which bitstream is stored | |
WO2020017910A1 (en) | Method and device for effective video encoding/decoding via local lighting compensation | |
WO2020096426A1 (en) | Method for encoding/decoding image signal, and device for same | |
WO2021040321A1 (en) | Image signal encoding/decoding method and apparatus therefor | |
WO2021101317A1 (en) | Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream | |
WO2021015524A1 (en) | Method and device for processing video signal | |
WO2020004978A1 (en) | Method and apparatus for processing video signal | |
WO2020050600A1 (en) | Video encoding/decoding method and device, and recording medium for storing bitstream | |
WO2020013532A1 (en) | Method and device for image encoding/decoding, and recording medium having bitstream stored thereon | |
WO2020213963A1 (en) | Method for encoding/decoding image signal, and device for same | |
WO2021049890A1 (en) | Image signal encoding/decoding method and device therefor | |
WO2020060317A1 (en) | Method and apparatus for encoding/decoding image, and recording medium for storing bitstream | |
WO2020141904A1 (en) | Image signal encoding/decoding method and device for same | |
WO2020130714A1 (en) | Video signal encoding/decoding method, and device therefor | |
WO2020005046A1 (en) | Image encoding/decoding method and apparatus | |
WO2020067700A1 (en) | Image encoding/decoding method and device | |
WO2020060163A1 (en) | Image encoding/decoding method and apparatus, and recording medium storing bitstream |