Sign In to Follow Application
View All Documents & Correspondence

Method And Apparatus For Processing Video Signal

Abstract: A method for decoding an image according to the present invention comprises the steps of: deriving an intra prediction mode of a current block; and changing the intra prediction mode to a wide angle intra prediction mode when the intra prediction mode is less than or equal to a threshold value and the current block is a non-square having a width greater than a height.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
11 November 2020
Publication Number
07/2021
Publication Type
INA
Invention Field
ELECTRONICS
Status
Email
IPRDEL@LAKSHMISRI.COM
Parent Application
Patent Number
Legal Status
Grant Date
2025-10-15
Renewal Date

Applicants

KT CORPORATION
90, Buljeong-ro, Bundang-gu Seongnam-si Gyeonggi-do 13606

Inventors

1. LEE, Bae Keun
90, Buljeong-ro, Bundang-gu Seongnam-si Gyeonggi-do 13606

Specification

Title of invention: Video signal processing method and apparatus
Technical field
[One]
The present invention relates to a video signal processing method and apparatus.
Background
[2]
Recently, demand for high-resolution and high-quality images such as high definition (HD) images and ultra high definition (UHD) images is increasing in various application fields. The higher the resolution and quality of the video data, the higher the amount of data is compared to the existing video data. Therefore, when the video data is transmitted using a medium such as a wired or wireless broadband line or stored using an existing storage medium, the transmission cost and The storage cost will increase. High-efficiency image compression techniques can be used to solve these problems that occur as image data becomes high-resolution and high-quality.
[3]
Inter-screen prediction technology that predicts pixel values ​​included in the current picture from pictures before or after the current picture using image compression technology, intra-screen prediction technology that predicts pixel values ​​included in the current picture using pixel information in the current picture, Various technologies exist, such as an entropy encoding technology that allocates a short code to a value with a high frequency of appearance and a long code to a value with a low frequency of appearance, and by using such an image compression technology, image data can be effectively compressed and transmitted or stored.
[4]
Meanwhile, as the demand for high-resolution images increases, the demand for 3D image contents as a new image service is also increasing. Discussions are underway on video compression techniques for effectively providing 3D image contents of high resolution and ultra high resolution.
Detailed description of the invention
Technical challenge
[5]
An object of the present invention is to provide a method and apparatus capable of efficiently performing intra prediction on an encoding/decoding object block in encoding/decoding a video signal.
[6]
An object of the present invention is to provide a method and apparatus for performing intra prediction using a wide-angle intra prediction mode in encoding/decoding a video signal.
[7]
An object of the present invention is to provide a method and apparatus for performing intra prediction using right and lower reference samples in encoding/decoding a video signal.
[8]
An object of the present invention is to provide a method and apparatus for performing intra prediction that considers both forward and reverse directions of an intra prediction mode in encoding/decoding a video signal.
[9]
The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those of ordinary skill in the technical field to which the present invention belongs from the following description. I will be able to
Means of solving the task
[10]
In the method and apparatus for decoding a video signal according to the present invention, when an intra prediction mode of a current block is derived, and the intra prediction mode is less than or equal to a threshold value, and the current block is an amorphous type having a width greater than a height, the intra prediction mode Can be changed to the wide-angle intra prediction mode. In this case, the wide angle intra prediction mode may have an angle greater than 135 degrees.
[11]
In the method and apparatus for encoding a video signal according to the present invention, when an intra prediction mode of a current block is derived, the intra prediction mode is less than or equal to a threshold value, and the current block is an amorphous type having a width greater than a height, the intra prediction mode Can be changed to the wide-angle intra prediction mode. In this case, the wide angle intra prediction mode may have an angle greater than 135 degrees.
[12]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the threshold value may be determined based on a width and height ratio of the current block.
[13]
In the video signal encoding/decoding method and apparatus according to the present invention, the wide-angle intra prediction mode is derived by adding a predefined value to the intra prediction mode, and the predefined value is the number of directional intra prediction modes. have.
[14]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the number of wide-angle intra prediction modes that can be used by the current block may be determined based on a width and height ratio of the current block.
[15]
In the method and apparatus for encoding/decoding a video signal according to the present invention, when a multiple intra prediction method is applied to the current block, a non-wide angle intra prediction mode is applied to a first subblock of the current block, and a second The wide-angle intra prediction mode may be applied to the sub-block.
[16]
In the video signal encoding/decoding method and apparatus according to the present invention, a sample positioned at a boundary of the first sub-block may be modified to a value calculated by a smoothing filter.
[17]
In the video signal encoding/decoding method and apparatus according to the present invention, the filtering based on the smoothing filter includes a sample positioned at a boundary of the first sub-block and a first neighboring sample of the sample included in the first sub-block and It may be performed based on a second neighboring sample of the sample included in the second sub-block.
[18]
The features briefly summarized above with respect to the present invention are merely exemplary aspects of the detailed description of the present invention to be described later, and do not limit the scope of the present invention.
Effects of the Invention
[19]
According to the present invention, intra prediction can be efficiently performed on an encoding/decoding target block.
[20]
According to the present invention, there is an advantage that the efficiency of intra prediction can be improved by using the wide-angle intra prediction mode.
[21]
According to the present invention, there is an advantage of improving the efficiency of intra prediction by using the right and lower reference samples.
[22]
According to the present invention, there is an advantage in that the efficiency of intra prediction can be improved by considering both the forward and reverse directions of the intra prediction mode.
[23]
The effects that can be obtained in the present invention are not limited to the above-mentioned effects, and other effects that are not mentioned can be clearly understood by those of ordinary skill in the art from the following description. will be.
Brief description of the drawing
[24]
1 is a block diagram showing an image encoding apparatus according to an embodiment of the present invention.
[25]
2 is a block diagram showing an image decoding apparatus according to an embodiment of the present invention.
[26]
3 is a diagram illustrating a partition mode candidate that can be applied to the coding block when the coding block is coded by inter prediction.
[27]
4 illustrates an example of hierarchically partitioning a coding block based on a tree structure as an embodiment to which the invention is applied.
[28]
5 is a diagram showing a partition type in which partitioning based on a binary tree is allowed as an embodiment to which the present invention is applied.
[29]
6 shows a triple tree division type.
[30]
7 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed.
[31]
FIG. 8 is a diagram for explaining an example in which information related to an allowable number of binary tree divisions is encoded/decoded as an embodiment to which the present invention is applied.
[32]
9 is a diagram illustrating types of intra prediction modes pre-defined in an image encoder/decoder as an embodiment to which the present invention is applied.
[33]
10 is a diagram illustrating intra prediction modes available under an extended intra mode.
[34]
11 is a diagram illustrating intra prediction modes including wide angle intra prediction modes.
[35]
12 is a diagram illustrating an application aspect of a wide-angle intra prediction mode according to a shape of a current block.
[36]
13 is a flowchart schematically illustrating an intra prediction method according to an embodiment to which the present invention is applied.
[37]
14 is a diagram illustrating reference sample line candidates.
[38]
15 illustrates a method of correcting a prediction sample of a current block based on difference information of neighboring samples in an embodiment to which the present invention is applied.
[39]
16 and 17 are diagrams illustrating a one-dimensional reference sample group in which reference samples are rearranged in a line.
[40]
18 is a diagram illustrating an example of inducing a right reference sample or a lower reference sample by using multiple reference samples.
[41]
19 and 20 are diagrams for explaining determining a right reference sample and a lower reference sample for an amorphous block according to an embodiment of the present invention.
[42]
21 is a diagram for describing an example of deriving a second reference sample by using a first reference sample.
[43]
22 is a diagram illustrating an example of deriving a right reference sample and a lower reference sample by using a temporary prediction sample obtained based on a planner mode.
[44]
23 is a diagram illustrating reference samples constituting a one-dimensional reference sample group.
[45]
24 and 25 are diagrams showing positions of a first reference target sample and a second reference target sample.
[46]
26 is a diagram illustrating an example of obtaining a prediction sample based on a weighted sum operation of a first reference target sample and a second reference reference target sample.
[47]
27 is a diagram illustrating a region to which bidirectional intra prediction is applied.
[48]
28 is an identification and display of a directional prediction mode in which bidirectional intra prediction is allowed.
[49]
29 is a flowchart illustrating a process of determining whether to apply a bidirectional intra prediction mode according to the present invention.
[50]
30 illustrates an exemplary embodiment to which a multiple intra prediction method is applied.
[51]
31 is a diagram illustrating an example in which a smoothing filter is applied.
Mode for carrying out the invention
[52]
In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it is to be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals have been used for similar elements.
[53]
Terms such as first and second may be used to describe various elements, but the elements should not be limited by the terms. These terms are used only for the purpose of distinguishing one component from another component. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component. The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
[54]
When a component is referred to as being "connected" or "connected" to another component, it is understood that it is directly connected to or may be connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle.
[55]
The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or a combination thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements, numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance the possibility.
[56]
Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same elements in the drawings, and duplicate descriptions for the same elements are omitted.
[57]
[58]
1 is a block diagram showing an image encoding apparatus according to an embodiment of the present invention.
[59]
Referring to FIG. 1, the image encoding apparatus 100 includes a picture splitter 110, a prediction unit 120, 125, a transform unit 130, a quantization unit 135, a rearrangement unit 160, and an entropy encoder ( 165, an inverse quantization unit 140, an inverse transform unit 145, a filter unit 150, and a memory 155.
[60]
Each of the components shown in FIG. 1 is independently shown to represent different characteristic functions in the image encoding apparatus, and does not mean that each component is formed of separate hardware or a single software component. That is, each constituent part is listed and included as a respective constituent part for convenience of explanation, and at least two of the constituent parts are combined to form one constituent part, or one constituent part is divided into a plurality of constituent parts to perform a function Integrated embodiments and separate embodiments of the components are also included in the scope of the present invention unless departing from the essence of the present invention.
[61]
In addition, some of the components are not essential components that perform essential functions in the present invention, but may be optional components only for improving performance. The present invention can be implemented by including only components essential to implement the essence of the present invention excluding components used for performance improvement, and a structure including only essential components excluding optional components used for performance improvement Also included in the scope of the present invention.
[62]
The picture dividing unit 110 may divide the input picture into at least one processing unit. In this case, the processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The picture splitter 110 divides one picture into a combination of a plurality of coding units, prediction units, and transformation units, and combines one coding unit, a prediction unit, and a transformation unit based on a predetermined criterion (for example, a cost function). Select to encode the picture.
[63]
For example, one picture may be divided into a plurality of coding units. In order to split the coding units in a picture, a recursive tree structure such as a quad tree structure can be used. Encoding that is split into other coding units based on one image or the largest coding unit as a root. A unit may be divided with as many child nodes as the number of divided coding units. Coding units that are no longer split according to certain restrictions become leaf nodes. That is, when it is assumed that only square splitting is possible for one coding unit, one coding unit may be split into up to four different coding units.
[64]
Hereinafter, in an embodiment of the present invention, a coding unit may be used as a unit that performs encoding or a unit that performs decoding.
[65]
The prediction unit may be split in a shape such as at least one square or rectangle of the same size within one coding unit, or one prediction unit among prediction units split within one coding unit is another prediction. It may be divided to have a shape and/or size different from the unit.
[66]
When a prediction unit that performs intra prediction based on a coding unit is not a minimum coding unit, intra prediction may be performed without dividing into a plurality of prediction units NxN.
[67]
The prediction units 120 and 125 may include an inter prediction unit 120 that performs inter prediction and an intra prediction unit 125 that performs intra prediction. It is possible to determine whether to use inter prediction or to perform intra prediction for the prediction unit, and determine specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method. In this case, a processing unit in which prediction is performed may be different from a processing unit in which a prediction method and specific content are determined. For example, a prediction method and a prediction mode are determined in a prediction unit, and prediction may be performed in a transformation unit. A residual value (residual block) between the generated prediction block and the original block may be input to the transform unit 130. In addition, prediction mode information, motion vector information, and the like used for prediction may be encoded by the entropy encoder 165 together with a residual value and transmitted to a decoder. In the case of using a specific encoding mode, it is possible to encode an original block as it is and transmit it to a decoder without generating a prediction block through the prediction units 120 and 125.
[68]
The inter prediction unit 120 may predict a prediction unit based on information of at least one picture of a picture before or after a current picture, and in some cases, predict based on information of a partial region in the current picture that has been encoded. You can also predict the unit. The inter prediction unit 120 may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.
[69]
The reference picture interpolation unit may receive reference picture information from the memory 155 and may generate pixel information of an integer number of pixels or less from the reference picture. In the case of a luminance pixel, a DCT-based 8-tap interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/4 pixels. In the case of a color difference signal, a DCT-based interpolation filter with different filter coefficients may be used to generate pixel information of an integer pixel or less in units of 1/8 pixels.
[70]
The motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit. Various methods, such as a full search-based block matching algorithm (FBMA), three step search (TSS), and a new three-step search algorithm (NTS), can be used as a method for calculating a motion vector. The motion vector may have a motion vector value in units of 1/2 or 1/4 pixels based on the interpolated pixels. The motion prediction unit may predict the current prediction unit by differently predicting motion. Various methods such as a skip method, a merge method, an advanced motion vector prediction (AMVP) method, and an intra block copy method may be used as the motion prediction method.
[71]
The intra predictor 125 may generate a prediction unit based on reference pixel information around a current block, which is pixel information in the current picture. If the neighboring block of the current prediction unit is a block that has performed inter prediction and the reference pixel is a pixel that has performed inter prediction, the reference pixel included in the block that has performed inter prediction is a reference pixel of the block that has performed intra prediction Can be used in place of information. That is, when the reference pixel is not available, information on the reference pixel that is not available may be replaced with at least one reference pixel among the available reference pixels.
[72]
In intra prediction, the prediction mode may have a directional prediction mode in which reference pixel information is used according to a prediction direction and a non-directional mode in which directional information is not used when prediction is performed. A mode for predicting luminance information and a mode for predicting chrominance information may be different, and intra prediction mode information or predicted luminance signal information used to predict luminance information may be used to predict chrominance information.
[73]
When performing intra prediction, if the size of the prediction unit and the size of the transformation unit are the same, intra prediction for the prediction unit is based on a pixel on the left, a pixel on the top left, and a pixel on the top of the prediction unit. Can be done. However, when the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, intra prediction may be performed using a reference pixel based on the transformation unit. In addition, intra prediction using NxN splitting may be used for only the smallest coding unit.
[74]
The intra prediction method may generate a prediction block after applying an AIS (Adaptive Intra Smoothing) filter to a reference pixel according to a prediction mode. The types of AIS filters applied to the reference pixels may be different. In order to perform the intra prediction method, the intra prediction mode of the current prediction unit may be predicted from the intra prediction mode of the prediction unit existing around the current prediction unit. When predicting the prediction mode of the current prediction unit using the mode information predicted from the surrounding prediction units, if the intra prediction modes of the current prediction unit and the surrounding prediction units are the same, the current prediction unit and the surrounding prediction units are used using predetermined flag information. Information indicating that the prediction mode of is the same can be transmitted, and if the prediction modes of the current prediction unit and the neighboring prediction units are different, entropy encoding is performed to encode prediction mode information of the current block.
[75]
In addition, a residual block including a prediction unit that performs prediction based on a prediction unit generated by the prediction units 120 and 125 and residual information that is a difference value from the original block of the prediction unit may be generated. The generated residual block may be input to the transform unit 130.
[76]
In the transform unit 130, the original block and the residual block including residual information of the prediction unit generated through the prediction units 120 and 125 are converted to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), and KLT. You can convert it using the same conversion method. Whether to apply DCT, DST, or KLT to transform the residual block may be determined based on intra prediction mode information of a prediction unit used to generate the residual block.
[77]
The quantization unit 135 may quantize values ​​converted into the frequency domain by the transform unit 130. Quantization coefficients may vary depending on the block or the importance of the image. The value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the rearrangement unit 160.
[78]
The reordering unit 160 may rearrange coefficient values ​​on the quantized residual values.
[79]
The rearrangement unit 160 may change the two-dimensional block shape coefficient into a one-dimensional vector shape through a coefficient scanning method. For example, the rearrangement unit 160 may scan from a DC coefficient to a coefficient in a high frequency region using a Zig-Zag Scan method, and change it into a one-dimensional vector form. Depending on the size of the transform unit and the intra prediction mode, instead of zig-zag scan, a vertical scan that scans a two-dimensional block shape coefficient in a column direction and a horizontal scan that scans a two-dimensional block shape coefficient in a row direction may be used. That is, according to the size of the transformation unit and the intra prediction mode, it is possible to determine which scan method is to be used among zig-zag scan, vertical direction scan, and horizontal direction scan.
[80]
The entropy encoding unit 165 may perform entropy encoding based on values ​​calculated by the rearrangement unit 160. Entropy coding may use various coding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC).
[81]
The entropy encoder 165 includes residual value coefficient information and block type information of a coding unit, prediction mode information, division unit information, prediction unit information and transmission unit information, and motion from the reordering unit 160 and the prediction units 120 and 125. Various information such as vector information, reference frame information, block interpolation information, and filtering information may be encoded.
[82]
The entropy encoder 165 may entropy-encode a coefficient value of a coding unit input from the reordering unit 160.
[83]
The inverse quantization unit 140 and the inverse transform unit 145 inverse quantize values ​​quantized by the quantization unit 135 and inverse transform the values ​​transformed by the transform unit 130. The residual generated by the inverse quantization unit 140 and the inverse transform unit 145 is reconstructed by combining the prediction units predicted through the motion estimation unit, motion compensation unit, and intra prediction unit included in the prediction units 120 and 125 Blocks (Reconstructed Block) can be created.
[84]
The filter unit 150 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
[85]
The deblocking filter can remove block distortion caused by the boundary between blocks in the reconstructed picture. In order to determine whether to perform deblocking, it may be determined whether to apply the deblocking filter to the current block based on pixels included in several columns or rows included in the block. When applying a deblocking filter to a block, a strong filter or a weak filter may be applied according to the required deblocking filtering strength. In addition, in applying the deblocking filter, horizontal filtering and vertical filtering may be processed in parallel when performing vertical filtering and horizontal filtering.
[86]
The offset correction unit may correct an offset from the original image in pixel units of the deblocking image. In order to perform offset correction for a specific picture, the pixels included in the image are divided into a certain number of areas, and then the area to be offset is determined and the offset is applied to the area, or offset by considering the edge information of each pixel. You can use the method of applying.
[87]
Adaptive Loop Filtering (ALF) may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing the pixels included in the image into predetermined groups, one filter to be applied to the corresponding group may be determined, and filtering may be performed differentially for each group. Information related to whether to apply the ALF may be transmitted for each coding unit (CU) of the luminance signal, and the shape and filter coefficient of an ALF filter to be applied may vary according to each block. Also, the same type (fixed type) ALF filter may be applied regardless of the characteristics of the block to be applied.
[88]
The memory 155 may store the reconstructed block or picture calculated through the filter unit 150, and the stored reconstructed block or picture may be provided to the prediction units 120 and 125 when performing inter prediction.
[89]
[90]
2 is a block diagram showing an image decoding apparatus according to an embodiment of the present invention.
[91]
Referring to FIG. 2, the image decoder 200 includes an entropy decoder 210, a rearrangement unit 215, an inverse quantization unit 220, an inverse transform unit 225, prediction units 230 and 235, and a filter unit. 240) and a memory 245 may be included.
[92]
When an image bitstream is input from the image encoder, the input bitstream may be decoded in a procedure opposite to that of the image encoder.
[93]
The entropy decoder 210 may perform entropy decoding in a procedure opposite to that of performing entropy encoding in an entropy encoder of an image encoder. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied in response to the method performed by the image encoder.
[94]
The entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
[95]
The rearrangement unit 215 may perform rearrangement based on a method of rearranging the bitstream entropy-decoded by the entropy decoder 210 by the encoder. The coefficients expressed in the form of a one-dimensional vector may be reconstructed into coefficients in the form of a two-dimensional block and rearranged. The reordering unit 215 may perform reordering through a method of receiving information related to coefficient scanning performed by the encoder and performing reverse scanning based on the scanning order performed by the corresponding encoder.
[96]
The inverse quantization unit 220 may perform inverse quantization based on a quantization parameter provided by an encoder and a coefficient value of a rearranged block.
[97]
The inverse transform unit 225 may perform an inverse transform, that is, an inverse DCT, an inverse DST, and an inverse KLT, for transforms, that is, DCT, DST, and KLT, performed by the transform unit on the quantization result performed by the image encoder. Inverse transformation may be performed based on a transmission unit determined by an image encoder. The inverse transform unit 225 of the image decoder may selectively perform a transformation technique (eg, DCT, DST, KLT) according to a plurality of pieces of information such as a prediction method, a size of a current block, and a prediction direction.
[98]
The prediction units 230 and 235 may generate a prediction block based on information related to generation of a prediction block provided from the entropy decoder 210 and information on a previously decoded block or picture provided from the memory 245.
[99]
As described above, if the size of the prediction unit and the size of the transformation unit are the same when intra prediction is performed in the same manner as the operation of the image encoder, a pixel on the left side of the prediction unit, a pixel on the top left side, and a pixel on the top side. If the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, but the size of the prediction unit and the size of the transformation unit are different when performing intra prediction, intra prediction is performed using a reference pixel based on the transformation unit I can. In addition, intra prediction using NxN splitting for only the smallest coding unit may be used.
[100]
The prediction units 230 and 235 may include a prediction unit determination unit, an inter prediction unit, and an intra prediction unit. The prediction unit determining unit receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It can be determined whether the unit performs inter prediction or intra prediction. The inter prediction unit 230 uses information necessary for inter prediction of the current prediction unit provided from the video encoder, and predicts the current based on information included in at least one picture of a previous picture or a subsequent picture of the current picture including the current prediction unit. Inter prediction for a unit can be performed. Alternatively, inter prediction may be performed based on information on a partial region previously-restored in the current picture including the current prediction unit.
[101]
In order to perform inter prediction, the motion prediction method of the prediction unit included in the coding unit based on the coding unit is among the skip mode, merge mode, AMVP mode, and intra block copy mode. You can determine whether or not this is any way.
[102]
The intra prediction unit 235 may generate a prediction block based on pixel information in the current picture. If the prediction unit is a prediction unit that has performed intra prediction, intra prediction may be performed based on intra prediction mode information of the prediction unit provided from the image encoder. The intra prediction unit 235 may include an AIS (Adaptive Intra Smoothing) filter, a reference pixel interpolation unit, and a DC filter. The AIS filter is a part that performs filtering on a reference pixel of the current block, and may determine whether to apply the filter according to the prediction mode of the current prediction unit and apply it. AIS filtering may be performed on a reference pixel of a current block by using the prediction mode and AIS filter information of the prediction unit provided by the video encoder. When the prediction mode of the current block is a mode in which AIS filtering is not performed, the AIS filter may not be applied.
[103]
When the prediction mode of the prediction unit is a prediction unit that performs intra prediction based on a pixel value obtained by interpolating a reference pixel, the reference pixel interpolator may interpolate the reference pixel to generate a reference pixel of a pixel unit having an integer value or less. When the prediction mode of the current prediction unit is a prediction mode in which a prediction block is generated without interpolating a reference pixel, the reference pixel may not be interpolated. The DC filter may generate a prediction block through filtering when the prediction mode of the current block is the DC mode.
[104]
The reconstructed block or picture may be provided to the filter unit 240. The filter unit 240 may include a deblocking filter, an offset correction unit, and an ALF.
[105]
Information on whether a deblocking filter is applied to a corresponding block or picture from the video encoder, and when a deblocking filter is applied, information on whether a strong filter or a weak filter is applied may be provided. The deblocking filter of the image decoder may receive information related to the deblocking filter provided from the image encoder, and the image decoder may perform deblocking filtering on a corresponding block.
[106]
The offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction applied to the image during encoding and information on the offset value.
[107]
The ALF may be applied to a coding unit based on information on whether to apply ALF and information on ALF coefficients provided from the encoder. Such ALF information may be provided by being included in a specific parameter set.
[108]
The memory 245 can store the reconstructed picture or block so that it can be used as a reference picture or a reference block, and can provide the reconstructed picture to an output unit.
[109]
As described above, in an embodiment of the present invention, for convenience of description, a coding unit is used as a coding unit, but it may be a unit that performs not only encoding but also decoding.
[110]
In addition, the current block represents a block to be encoded/decoded, and according to an encoding/decoding step, a coding tree block (or coding tree unit), a coding block (or coding unit), a transform block (or transform unit), or a prediction block (Or a prediction unit) or the like. In this specification,'unit' denotes a basic unit for performing a specific encoding/decoding process, and'block' may denote a sample array of a predetermined size. Unless otherwise specified,'block' and'unit' may be used interchangeably. For example, in an embodiment to be described later, it may be understood that the coding block (coding block) and the coding unit (coding unit) have the same meaning as each other.
[111]
[112]
One picture may be divided into square or non-square basic blocks and encoded/decoded. In this case, the basic block may be referred to as a coding tree unit. The coding tree unit may be defined as a coding unit having the largest size allowed in a sequence or slice. Information indicating whether the coding tree unit is square or non-square or information related to the size of the coding tree unit may be signaled through a sequence parameter set, a picture parameter set, or a slice header. The coding tree unit can be divided into smaller sized partitions. In this case, when the partition generated by dividing the coding tree unit is referred to as depth 1, the partition generated by dividing the partition having depth 1 may be defined as depth 2. That is, a partition generated by dividing a partition having a depth k in a coding tree unit may be defined as having a depth k+1.
[113]
A partition of an arbitrary size generated as the coding tree unit is divided may be defined as a coding unit. The coding unit may be recursively divided, or may be divided into basic units for performing prediction, quantization, transformation, or in-loop filtering. For example, a partition of an arbitrary size generated as the coding unit is divided may be defined as a coding unit, or as a transform unit or a prediction unit, which is a basic unit for performing prediction, quantization, transformation, or in-loop filtering.
[114]
Alternatively, a prediction block having the same size as the coding block or smaller than the coding block may be determined through prediction division of the coding block. For predictive partitioning of a coding block, any one of partition mode (Part_mode) candidates indicating a partitioning type of the coding block may be specified. Information for determining a partition index indicating any one of the partition mode candidates may be signaled through a bitstream. Alternatively, the partition index of the coding block may be determined based on at least one of the size, shape, or coding mode of the coding block. The size or shape of the prediction block may be determined based on the partition mode specified by the partition index. The partition mode candidate may include an asymmetric partition type (eg, nLx2N, nRx2N, 2NxnU, 2NxnD). The number or type of asymmetric partition mode candidates that can be used by the coding block may be determined based on at least one of the size, shape, or coding mode of the coding block.
[115]
3 is a diagram illustrating a partition mode candidate that can be applied to the coding block when the coding block is coded by inter prediction.
[116]
When the coding block is coded by inter prediction, any one of the eight partition mode candidates shown in FIG. 3 may be applied to the coding block.
[117]
On the other hand, when the coding block is encoded by intra prediction, only square partition division can be applied to the coding block. That is, when the coding block is encoded by intra prediction, the partition mode PART_2Nx2N or PART_NxN may be applied to the coding block.
[118]
PART_NxN can be applied when a coding block has a minimum size. Here, the minimum size of the coding block may be predefined by an encoder and a decoder. Alternatively, information on the minimum size of the coding block may be signaled through the bitstream. As an example, the minimum size of the coding block may be signaled through a slice header. Accordingly, the minimum size of the coding block may be determined differently for each slice.
[119]
As another example, the partition mode candidate that the coding block can use may be differently determined according to at least one of the size or shape of the coding block. For example, the number or type of partition mode candidates that the coding block can use may be differently determined according to at least one of the size or shape of the coding block.
[120]
Alternatively, the type or number of asymmetric partition mode candidates that can be used by the coding block may be determined based on the size or shape of the coding block. The number or type of asymmetric partition mode candidates that can be used by the coding block may be differently determined according to at least one of the size or shape of the coding block. For example, when a coding block has an amorphous shape having a width greater than a height, at least one of PART_2NxN, PART_2NxnU, and PART_2NxnD may not be used as a partition mode candidate of the coding block. When the coding block has an amorphous shape whose height is greater than the width, at least one of PART_Nx2N, PART_nLx2N, and PART_nRx2N may not be used as a partition mode candidate of the coding block.
[121]
In general, the size of the prediction block may range from 64x64 to 4x4. However, when the coding block is encoded by inter prediction, in order to reduce a memory bandwidth when performing motion compensation, the prediction block may not have a 4x4 size.
[122]
It is also possible to recursively partition the coding block based on the partition mode. That is, based on the partition mode determined by the partition index, the coding block may be partitioned, and each partition generated as a result of the partitioning of the coding block may be defined as a coding block.
[123]
Hereinafter, a method of dividing the coding unit will be described in more detail. In an embodiment described below, the coding unit may mean a coding tree unit or a coding unit included in a coding tree unit. In addition, a'partition' generated as a coding block is divided may mean a'coding block'. The partitioning method described below may be applied to partitioning a coding block into a plurality of prediction blocks or a plurality of transform blocks.
[124]
The coding unit may be divided by at least one line. In this case, the angle of the line dividing the coding unit may be a value within the range of 0 degrees to 360 degrees. For example, an angle of a horizontal line may be 0 degrees, an angle of a vertical line may be 90 degrees, an angle of a diagonal line in the upper right direction may be 45 degrees, and an angle of a diagonal line in the upper left corner may be 135 degrees.
[125]
When the coding unit is divided by a plurality of lines, all of the plurality of lines may have the same angle. Alternatively, at least one of the plurality of lines may have a different angle from the other lines. Alternatively, the coding tree unit or a plurality of lines dividing the coding unit may have a predefined angle difference (eg, 90 degrees).
[126]
Information about a line dividing a coding unit may be determined by a partition mode. Alternatively, information on at least one of the number, direction, angle, or position of a line within a block may be encoded.
[127]
For convenience of explanation, in an embodiment to be described later, it is assumed that the coding unit is divided into a plurality of coding units using at least one of a vertical line or a horizontal line.
[128]
The number of vertical lines or horizontal lines for partitioning the coding unit may be at least one or more. For example, the coding unit may be divided into two partitions using one vertical line or one horizontal line. Alternatively, the coding unit may be divided into three partitions by using two vertical lines or two horizontal lines. Alternatively, one vertical line and one horizontal line may be used to divide the coding unit into four partitions whose width and height are 1/2 smaller than that of the coding unit.
[129]
When the coding unit is divided into a plurality of partitions using at least one vertical line or at least one horizontal line, the partitions may have a uniform size. Alternatively, one partition may have a different size from the other partitions, or each partition may have a different size. For example, when the coding unit is divided into two horizontal lines or two vertical lines, the coding unit may be divided into three partitions. In this case, the width ratio or height ratio of the three partitions may be n:2n:n, 2n:n:n, or n:n:2n.
[130]
In embodiments to be described later, the division of the coding unit into four partitions will be referred to as quad-tree-based division. In addition, the division of the coding unit into two partitions will be referred to as binary tree-based division. In addition, division of the coding unit into three partitions is referred to as a triple tree-based division.
[131]
In the drawings to be described later, it will be shown that one vertical line and/or one horizontal line is used to divide the coding unit, but by using a larger number of vertical lines and/or a larger number of horizontal lines than that shown, It will be said that dividing a coding unit into a larger number of partitions than shown or a smaller number of partitions than shown is also included in the scope of the present invention.
[132]
4 illustrates an example of hierarchically partitioning a coding block based on a tree structure as an embodiment to which the present invention is applied.
[133]
The input video signal is decoded in units of a predetermined block, and a basic unit for decoding the input video signal in this way is called a coding block. The coding block may be a unit that performs intra/inter prediction, transform, and quantization. In addition, a prediction mode (eg, an intra prediction mode or an inter prediction mode) is determined for each coding block, and prediction blocks included in the coding block may share the determined prediction mode. The coding block may be a square or non-square block having an arbitrary size in the range of 8x8 to 64x64, and may be a square or non-square block having a size of 128x128, 256x256 or higher.
[134]
Specifically, the coding block may be hierarchically partitioned based on at least one of a quad tree partitioning method, a binary tree partitioning method, or a triple tree partitioning method. The quad-tree-based division may mean a method in which a 2Nx2N coding block is divided into four NxN coding blocks. The binary tree-based partitioning may mean a method in which one coding block is divided into two coding blocks. The triple tree-based partitioning may mean a method in which one coding block is divided into three coding blocks. Even if division based on a binary tree or a triple tree is performed, a coding block having a square shape may exist in a lower depth.
[135]
Partitions created due to binary tree-based partitioning may be symmetric or asymmetric. Further, the coding block divided based on the binary tree may be a square block or a non-square block (eg, a rectangle).
[136]
5 is a diagram showing a partitioning form of a coding block based on binary tree partitioning. The partition type of a coding block based on binary tree partitioning is a symmetric type such as 2NxN (horizontal non-square coding unit) or Nx2N (vertical amorphous coding unit), or asymmetric type such as nLx2N, nRx2N, 2NxnU or 2NxnD. It may include an (asymmetric) type. Only one of a symmetric type or an asymmetric type may be allowed in the form of division of the coding block.
[137]
The triple tree division type may include at least one of a type of dividing a coding block into two vertical lines or a type of dividing a coding block into two horizontal lines. Three non-square partitions can be created by triple tree partitioning.
[138]
6 shows a triple tree division type.
[139]
The triple-tree division type may include a type of dividing a coding block into two horizontal lines or a type of dividing a coding block into two vertical lines. The width or height ratio of partitions generated as a result of dividing the coding block may be n:2n:n, 2n:n:n, or n:n:2n.
[140]
The position of the partition having the largest width or height among the three partitions may be predefined in the encoder and decoder. Alternatively, information indicating a partition having the largest width or height among the three partitions may be signaled through a bitstream.
[141]
It is possible to allow only the division of the square shape or the asymmetric shape of the coding unit. In this case, dividing the coding unit into square-shaped partitions corresponds to quad-tree CU partitioning, and dividing the coding unit into symmetrical non-square partitions corresponds to binary tree partitioning. have. Dividing the coding tree unit into square partitions and symmetric non-square partitions may correspond to Quad Tree and Binary Tree CU Partitioning (QTBT).
[142]
Partitioning based on a binary tree or a triple tree may be performed on a coding block for which partitioning based on a quad tree is no longer performed. A coding block generated as a result of dividing based on a binary tree or a triple tree may be divided into smaller coding blocks. In this case, the coding block may be set so that at least one of quad-tree division, triple-tree division, and binary tree division is not applied to the coding block. Alternatively, binary tree division in a predetermined direction or triple tree division in a predetermined direction may not be allowed in the coding block. For example, quad-tree division and triple-tree division may not be allowed in a coding block generated as a result of division based on a binary tree or a triple tree. Only binary tree division may be allowed in the coding block.
[143]
Alternatively, only the coding block having the largest size among the three coding blocks generated as a result of splitting based on the triple tree may be divided into coding blocks having a smaller size. Alternatively, binary tree-based division or triple tree-based division may be allowed only for a coding block having the largest size among the three coding blocks generated as a result of the triple tree-based division.
[144]
The division type of the lower depth partition may be determined dependently on the division type of the upper depth partition. For example, when an upper partition and a lower partition are partitioned based on a binary tree, only a binary tree based partition having the same type as the binary tree partition type of the upper depth partition may be allowed in the lower depth partition. For example, when the binary tree division type of the upper depth partition is a 2NxN type, the binary tree division type of the lower depth partition may also be set to the 2NxN type. Alternatively, when the binary tree division type of the upper depth partition is an Nx2N type, the division type of the lower depth partition may also be set to an Nx2N type.
[145]
Alternatively, the partition with the largest size among the partitions generated as a result of partitioning based on the triple tree may be configured not to allow binary tree partitioning in the same direction as the partitioning direction of the upper depth partition or triple-tree partitioning in the same direction as the partitioning direction of the upper depth partition. have.
[146]
Alternatively, the partition type of the lower depth partition may be determined in consideration of the partition type of the upper depth partition and the partition type of the neighboring lower depth partition. Specifically, if the upper depth partition is partitioned based on the binary tree, the partitioning type of the lower depth partition may be determined so that the same result as the partitioning of the upper depth partition based on the quad tree does not occur. As an example, when the partition type of the upper depth partition is 2NxN and the partition type of the neighboring lower depth partition is Nx2N, the current partition type of the lower depth partition cannot be set to Nx2N. This is because, when the current sub-depth partition has an Nx2N partition type, the same result as that of dividing the upper depth partition into an NxN type quad tree occurs. If the partition type of the upper depth partition is Nx2N and the partition type of the neighboring lower depth partition is 2NxN, the current partition type of the lower depth partition cannot be set to 2NxN. That is, when the binary tree division type of the upper depth partition and the binary tree division type of the neighboring lower depth partition are different, the current binary tree division type of the lower depth partition may be set to be the same as the binary tree division type of the upper depth partition.
[147]
Alternatively, the binary tree division type of the lower depth partition may be set to be different from the binary tree division type of the upper depth partition.
[148]
In units of sequence, slice, or coding unit, an allowable binary tree division type may be determined. For example, a binary tree division type allowed for a coding tree unit may be limited to a 2NxN or Nx2N type. The allowable split type may be predefined in the encoder or decoder. Alternatively, information on an allowable or disallowed partition may be encoded and signaled through a bitstream.
[149]
7 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed.
[150]
FIG. 7A shows an example in which only Nx2N-type binary tree-based division is allowed, and FIG. 7B shows an example in which only 2NxN-type binary tree-based division is allowed.
[151]
In order to represent various types of division, information on quad-tree division, information on binary tree division, or information on triple-tree division may be used. The information on quad-tree division may include at least one of information indicating whether quad-tree-based division is performed or information on a size/depth of a coding block in which quad-tree-based division is allowed. Information on binary tree division includes information indicating whether or not binary tree-based division is performed, information indicating whether binary tree-based division is vertical or horizontal, and coding blocks in which binary tree-based division is allowed. It may include at least one of information on the size/depth of and information on the size/depth of a coding block in which binary tree-based division is not allowed. The information on triple-tree partitioning includes information indicating whether triple-tree-based partitioning is performed, information indicating whether the triple-tree-based partitioning is in the vertical direction or the horizontal direction, and a coding block in which triple-tree-based partitioning is allowed. It may include at least one of information on the size/depth of the triple tree or information on the size/depth of a coding block in which the triple tree-based division is not allowed. The information on the size of the coding block may indicate a minimum value or a maximum value of at least one of a width, a height, a product of a width and a height, or a width and a height ratio of the coding block.
[152]
For example, when the width or height of the coding block is less than the minimum size allowed for binary tree division, or the division depth of the coding block is greater than the maximum depth allowed for binary tree division, the coding block Splitting may not be allowed.
[153]
For example, when the width or height of the coding block is less than the minimum size allowed for triple tree splitting, or the splitting depth of the coding block is greater than the maximum depth allowed for triple tree splitting, the coding block Splitting may not be allowed.
[154]
Information on the partitioning allowance condition based on a binary tree or a triple tree may be signaled through a bitstream. The information may be encoded in units of a sequence, picture, or fragment image. The fragment image may mean at least one of a slice, a tile group, a tile, a brick, a coding block, a prediction block, or a transform block.
[155]
For example, through the bitstream, the syntax'max_mtt_depth_idx_minus1' indicating the maximum depth in which binary tree/triple tree division is allowed may be encoded/decoded through the bitstream. In this case, max_mtt_depth_idx_minus1+1 may indicate a maximum depth in which binary tree/triple tree division is allowed.
[156]
For example, at least one of the number of times the binary tree/triple tree division is allowed, the maximum depth that the binary tree/triple tree division is allowed, or the depth of the binary tree/triple tree division is allowed is signaled at the sequence or slice level. I can. Accordingly, at least one of the number of binary tree/triple tree division times, the maximum depth allowed for binary tree/triple tree division, or the number of depths allowed for binary tree/triple tree division of the first slice and the second slice may be different. I can. For example, in the first slice, binary tree/triple tree division may be allowed in only one depth, whereas in the second slice, binary tree/triple tree division may be allowed in two depths.
[157]
Referring to the example shown in FIG. 8, in FIG. 8, it is shown that binary tree division is performed on a coding unit having a depth of 2 and a coding unit having a depth of 3. Accordingly, information indicating the number of times (2 times) that the binary tree division in the coding tree unit is performed, information indicating the maximum depth (depth 3) of the partition generated by the binary tree division in the coding tree unit, or the binary tree in the coding tree unit At least one of information indicating the number of partition depths (2, depth 2 and depth 3) to which the division is applied may be encoded/decoded through a bitstream.
[158]
Alternatively, the number of times the binary tree/triple tree division is allowed in the encoder and the decoder, the depth at which the binary tree/triple tree division is allowed, or the number of depths in which the binary tree/triple tree division is allowed may be predefined. Alternatively, based on at least one of the index of the sequence or slice or the size/type of the coding unit, the number of times the binary tree/triple tree division is allowed, the depth at which the binary tree/triple tree division is allowed, or the binary tree/triple tree division is The number of allowed depths may be determined. For example, in a first slice, a binary tree/triple tree division may be allowed in one depth, and a binary tree/triple tree division may be allowed in two depths in a second slice.
[159]
As another example, according to the temporal level identifier (TemporalID) of a slice or picture, at least one of the number of times the binary tree is allowed to be divided, the depth at which the binary tree is allowed to be divided, or the number of depths that the binary tree is allowed to be divided may be differently set. Here, the temporal level identifier (TemporalID) is for identifying each of a plurality of layers of an image having at least one scalability of view, spatial, temporal, or quality. will be.
[160]
As shown in FIG. 4, the first coding block 300 having a split depth of k may be divided into a plurality of second coding blocks based on a quad tree. For example, the second coding blocks 310 to 340 are square blocks having half the width and height of the first coding block, and the dividing depth of the second coding block may be increased to k+1.
[161]
The second coding block 310 having a splitting depth of k+1 may be split into a plurality of third coding blocks having a splitting depth of k+2. The division of the second coding block 310 may be performed by selectively using either a quart tree or a binary tree according to a division method. Here, the partitioning method may be determined based on at least one of information indicating partitioning based on a quad tree or information indicating partitioning based on a binary tree.
[162]
When the second coding block 310 is divided based on a quart tree, the second coding block 310 is divided into four third coding blocks 310a having half the width and height of the second coding block, and the third coding block 310a is The splitting depth can be increased to k+2. On the other hand, when the second coding block 310 is divided based on a binary tree, the second coding block 310 may be divided into two third coding blocks. In this case, each of the two third coding blocks is an amorphous block in which one of the width and height of the second coding block is half the size, and the splitting depth may be increased to k+2. The second coding block may be determined as an amorphous block in a horizontal direction or a vertical direction according to the division direction, and the division direction may be determined based on information on whether the binary tree-based division is in the vertical direction or the horizontal direction.
[163]
Meanwhile, the second coding block 310 may be determined as a terminal coding block that is no longer divided based on a quad tree or a binary tree, and in this case, the corresponding coding block may be used as a prediction block or a transform block.
[164]
Like the division of the second coding block 310, the third coding block 310a may be determined as a terminal coding block, or may be additionally divided based on a quad tree or a binary tree.
[165]
Meanwhile, the third coding block 310b divided based on the binary tree may be further divided into a coding block 310b-2 in a vertical direction or a coding block 310b-3 in a horizontal direction based on the binary tree, and the corresponding coding The division depth of a block can be increased to k+3. Alternatively, the third coding block 310b may be determined as a terminal coding block 310b-1 that is no longer divided based on a binary tree, and in this case, the corresponding coding block 310b-1 is used as a prediction block or a transform block. I can. However, in the above-described partitioning process, information on the size/depth of a coding block in which quad-tree-based division is allowed, information on the size/depth of a coding block in which binary tree-based division is allowed, or binary tree-based division is allowed. It may be limitedly performed based on at least one of information on the size/depth of a coding block that is not not used.
[166]
The size candidates that a coding block can have may be limited to a predetermined number, or a size of a coding block within a predetermined unit may have a fixed value. For example, the size of a coding block within a sequence or a size of a coding block within a picture may be limited to have any one of 256x256, 128x128, or 32x32. Information indicating the size of a coding block in a sequence or picture may be signaled through a sequence header or a picture header.
[167]
As a result of the division based on the quad tree and the binary tree, the coding unit may take a square or a rectangle of any size.
[168]
As shown in FIG. 4, the first coding block 300 having a split depth of k may be divided into a plurality of second coding blocks based on a quad tree. For example, the second coding blocks 310 to 340 are square blocks having half the width and height of the first coding block, and the dividing depth of the second coding block may be increased to k+1.
[169]
The second coding block 310 having a splitting depth of k+1 may be split into a plurality of third coding blocks having a splitting depth of k+2. The division of the second coding block 310 may be performed by selectively using either a quart tree or a binary tree according to a division method. Here, the partitioning method may be determined based on at least one of information indicating partitioning based on a quad tree or information indicating partitioning based on a binary tree.
[170]
When the second coding block 310 is divided based on a quart tree, the second coding block 310 is divided into four third coding blocks 310a having half the width and height of the second coding block, and the third coding block 310a is The splitting depth can be increased to k+2. On the other hand, when the second coding block 310 is divided based on a binary tree, the second coding block 310 may be divided into two third coding blocks. In this case, each of the two third coding blocks is an amorphous block in which one of the width and height of the second coding block is half the size, and the splitting depth may be increased to k+2. The second coding block may be determined as an amorphous block in a horizontal direction or a vertical direction according to the division direction, and the division direction may be determined based on information on whether the binary tree-based division is in the vertical direction or the horizontal direction.
[171]
Meanwhile, the second coding block 310 may be determined as a terminal coding block that is no longer divided based on a quad tree or a binary tree, and in this case, the corresponding coding block may be used as a prediction block or a transform block.
[172]
Like the division of the second coding block 310, the third coding block 310a may be determined as a terminal coding block, or may be additionally divided based on a quad tree or a binary tree.
[173]
Meanwhile, the third coding block 310b divided based on the binary tree may be further divided into a coding block 310b-2 in a vertical direction or a coding block 310b-3 in a horizontal direction based on the binary tree, and the corresponding coding The division depth of a block can be increased to k+3. Alternatively, the third coding block 310b may be determined as a terminal coding block 310b-1 that is no longer divided based on a binary tree, and in this case, the corresponding coding block 310b-1 is used as a prediction block or a transform block. I can. However, in the above-described partitioning process, information on the size/depth of a coding block in which quad-tree-based division is allowed, information on the size/depth of a coding block in which binary tree-based division is allowed, or binary tree-based division is allowed. It may be limitedly performed based on at least one of information on the size/depth of a coding block that is not not used.
[174]
The size candidates that a coding block can have may be limited to a predetermined number, or a size of a coding block within a predetermined unit may have a fixed value. For example, the size of a coding block within a sequence or a size of a coding block within a picture may be limited to have any one of 256x256, 128x128, or 32x32. Information indicating the size of a coding block in a sequence or picture may be signaled through a sequence header or a picture header.
[175]
As a result of the division based on the quad tree and the binary tree, the coding unit may take a square or a rectangle of any size.
[176]
Transform skip may be set not to be used in a coding unit generated as a result of division based on binary tree or division based on triple tree. Alternatively, the non-square coding unit may be set so that the transform skip is applicable only in at least one of a vertical direction or a horizontal direction. For example, when transform skip is applied in the horizontal direction, it indicates that only scaling is performed without transform/inverse transform in the horizontal direction, and transform/inverse transform using DCT or DST is performed in the vertical direction. When the transform skip is applied in the vertical direction, it indicates that only scaling is performed without transform/inverse transform in the vertical direction and transform/inverse transform using DCT or DST is performed in the horizontal direction.
[177]
Information on whether to skip the inverse transformation in the horizontal direction or information indicating whether to skip the inverse transformation in the vertical direction may be signaled through a bitstream. As an example, the information indicating whether to skip the inverse transformation in the horizontal direction is a 1-bit flag and is'hor_transform_skip_flag', and the information indicating whether to skip the inverse transformation in the vertical direction is a 1-bit flag, and'ver_transform_skip_flag' 'Can be.
[178]
The encoder may determine whether to encode'hor_transform_skip_flag' or'ver_transform_skip_flag' according to the size and/or shape of the current block. For example, when the current block is in the form of Nx2N, hor_transform_skip_flag may be encoded, and encoding of ver_transform_skip_flag may be omitted. When the current block has a 2NxN type, ver_transform_skip_flag may be encoded and hor_transform_skip_flag may be omitted.
[179]
Alternatively, based on the size and/or shape of the current block, whether to skip the transformation in the horizontal direction or the transformation in the vertical direction may be determined. For example, when the current block is in the form of Nx2N, transform skip may be applied in the horizontal direction and transform/inverse transform may be performed in the vertical direction. When the current block has a 2NxN type, a transform skip may be applied in a vertical direction and transform/inverse transform may be performed in a horizontal direction. Transformation/inverse transformation may be performed based on at least one of DCT and DST.
[180]
As a result of partitioning based on a quad tree, a binary tree, or a triple tree, a coding block that is no longer partitioned may be used as a prediction block or a transform block. That is, it can be used as a coding block, a prediction block, or a transform block generated as a result of quad-tree partitioning or binary tree partitioning. For example, a prediction image may be generated in units of coding blocks, and a residual signal, which is a difference between the original image and the prediction image, may be transformed in units of coding blocks. In order to generate a prediction image in units of coding blocks, motion information may be determined based on a coding block or an intra prediction mode may be determined based on a coding block. Accordingly, the coding block may be encoded using at least one of skip mode, intra prediction, and inter prediction.
[181]
Alternatively, a plurality of coding blocks generated by dividing the coding block may be configured to share at least one of motion information, merge candidate, reference sample, reference sample line, and intra prediction mode. As an example, when a coding block is divided into a triple tree, partitions generated by dividing the coding block may select at least one of motion information, merge candidate, reference sample, reference sample line, or intra prediction mode according to the size or shape of the coding block. You can share. Alternatively, only some of the plurality of coding blocks may share the information, and the remaining coding blocks may be set not to share the information.
[182]
As another example, it is possible to divide the coding block and use a prediction block or a transform block having a size smaller than that of the coding block.
[183]
Hereinafter, a method of performing intra prediction on a prediction block or transform block generated by dividing a coding block or a coding block will be described in detail.
[184]
9 is a diagram illustrating types of intra prediction modes pre-defined in an image encoder/decoder as an embodiment to which the present invention is applied.
[185]
The video encoder/decoder may perform intra prediction using any one of pre-defined intra prediction modes. The pre-defined intra prediction mode for intra prediction may include a non-directional prediction mode (eg, Planar mode, DC mode) and 33 directional prediction modes.
[186]
Alternatively, more than 33 directional prediction modes may be defined in order to increase the accuracy of intra prediction. That is, M extended directional prediction modes may be defined by further subdividing the angle of the directional prediction mode (M>33). A directional prediction mode different from the existing 33 directional prediction modes may be derived based on at least one of the existing 33 directional prediction modes.
[187]
Accordingly, a greater number of intra prediction modes than the 35 intra prediction modes shown in FIG. 9 may be defined. If the number of available intra prediction modes is more than 35 shown in FIG. 9, it may be referred to as an extended intra mode.
[188]
10 is a diagram illustrating intra prediction modes available under an extended intra mode. Under the extended intra mode, the available intra prediction modes may consist of two non-directional prediction modes and 65 extended directional prediction modes.
[189]
The number of usable intra prediction modes may be set equally for the luminance component and the color difference component. Alternatively, the number of intra prediction modes available for each color component may be different. For example, one of 67 intra prediction modes may be selected and used for the luminance component, and any one of 35 intra prediction modes may be selected and used for the color difference component.
[190]
Alternatively, the number of available intra prediction modes may differ according to the color difference format. For example, under the 4:2:0 format, 67 intra prediction modes may be set to be available for a luminance component, and 35 intra prediction modes may be set to be available for a color difference component. Under the 4:4:4 format, for both the luminance component and the color difference component, 67 intra prediction modes can be set to be available.
[191]
Alternatively, the number of available intra prediction modes may differ according to the size and/or shape of the block. Specifically, the number of available intra prediction modes may be determined as 35 or 67 according to the size and/or shape of the PU, TU, or CU. For example, when the size of the CU, TU, or PU is less than 64x64, or when the CU, TU, or PU is an asymmetric partition, the number of available intra prediction modes may be 35. On the other hand, when the size of the CU, TU, or PU is 64x64 or more, or when the CU, TU, or PU is a symmetric partition, the number of available intra prediction modes may be set to 67.
[192]
Alternatively, for the Intra_2Nx2N partition, the number of available directional intra prediction modes may be set to 65. On the other hand, for Intra_NxN partitions, the number of available directional intra prediction modes may be set to 33.
[193]
Whether the extended intra mode is applied may be determined based on at least one of a size, shape, or color component of a block. In this case, information indicating the size or shape of a block to which the extended intra mode is applied may be signaled through a bitstream. The information may be signaled at the sequence, picture, or slice level. Accordingly, the size of the block to which the extended intra mode is applied may be different for each sequence, picture, or slice. For example, in the first slice, the extended intra mode is set to be applied to a block larger than 64x64 (eg, CU, TU or PU), and in the second slice, the extended intra mode is set to be applied to a block larger than 32x32 Can be.
[194]
The information indicating the size of the block to which the extended intra mode is applied may be obtained by subtracting a predetermined value after taking a log value from the size of the reference block. For example,'log2_extended_intra_mode_size_minus4' obtained by subtracting an integer 4 from a value obtained by taking a log value from the size of the reference block may be encoded. For example, when the value of log2_extended_intra_mode_size_minus4 is 0, it indicates that the extended intra mode is applied to a block having a size of 16x16 or more or a block having a size larger than 16x16, and the value of log2_extended_intra_mode_size_minus4 is 1, a block having a size of 32x32 or more, or It may indicate that the extended intra mode is applied to a block having a size larger than 32x32.
[195]
As described above, the number of available intra prediction modes may be determined based on at least one of a color difference component, a color difference format, and a size or shape of a block. Intra prediction for the current block may be performed based on at least one of available intra prediction modes.
[196]
Not limited to the example described, the intra prediction mode candidates (eg, the number of MPMs), which are used to determine the intra prediction mode of the encoding/decoding target block, also depend on at least one of a color difference component, a color difference format, and the size or shape of a block. It may be decided accordingly. It is also possible to use a larger number of intra prediction modes than that shown in FIG. 9. For example, it is possible to further subdivide the directional prediction mode shown in FIG. 9 to use 129 directional prediction modes and two non-directional prediction modes. Whether to use a larger number of intra prediction modes than those shown in FIG. 9 may be determined in consideration of at least one of a color difference component, a color difference component, and a size or shape of a block, as in the above-described example.
[197]
[198]
Assuming that the angle of the horizontal prediction mode is 0 degrees and the angle of the vertical prediction mode is 90 degrees, the directional prediction modes shown in FIGS. 9 and 10 have an angle between -45 degrees and 135 degrees. That is, in general, intra prediction based on a directional intra prediction mode within the angular range may be performed. However, when an angle formed by an object existing between a current block and a neighboring block is out of the angle range, the accuracy of intra prediction may decrease. Accordingly, when the current block is square, intra prediction is performed using a directional prediction mode between -45 degrees and 135 degrees, whereas when the current block is amorphous, an intra prediction mode not included in the angular range is used. Thus, it may be allowed to perform intra prediction. A directional prediction mode outside the range of -45 degrees to 135 degrees may be referred to as a wide angle intra prediction mode. In addition, intra prediction based on the wide angle intra prediction mode may be referred to as wide angle intra prediction.
[199]
11 is a diagram illustrating intra prediction modes including wide angle intra prediction modes. As in the example shown in FIG. 11, wide-angle intra prediction modes in the range of -45 degrees to -90 degrees (intra prediction mode indexes -1 to -14) or wide-angle intra prediction modes in the range of 135 degrees to 180 degrees ( Intra prediction mode indexes 67 to 80) may be defined.
[200]
A smaller number of wide angle intra prediction modes may be defined than that shown, or a larger number of wide angle intra prediction modes may be defined. As an example, only wide angle intra prediction modes between -45 degrees and -67 degrees and wide angle intra prediction modes between 135 degrees and 157 degrees may be defined.
[201]
Alternatively, a range of available wide angle intra prediction modes may be determined based on the size or shape of the current block. For example, when the current block is in the form of Nx2N or 2NxN, wide angle intra prediction modes between -45 degrees and -55 degrees or wide angle intra prediction modes between 135 degrees and 145 degrees may be used. On the other hand, when the current block is in the form of NxkN or kNxN (where k is an integer greater than or equal to 4), wide angle intra prediction modes between -45 degrees and -67 degrees or wide angle intra prediction modes between 135 degrees and 157 degrees are used. Can be used.
[202]
Wide-angle intra prediction modes with an angle less than -45 degrees can be used when the current block is amorphous with a height smaller than the width, and wide-angle intra prediction modes with an angle greater than 135 degrees have a height of the current block. It can be used when it has a larger irregular shape.
[203]
12 is a diagram illustrating an application aspect of a wide-angle intra prediction mode according to a shape of a current block.
[204]
As in the example illustrated in FIG. 12A, when the current block has an amorphous shape having a height greater than a width, intra prediction using a wide-angle intra prediction mode having an angle greater than 135 degrees may be performed.
[205]
On the other hand, as in the example shown in (b) of FIG. 12, when the current block has an amorphous shape with a width greater than the height, intra prediction using a wide-angle intra prediction mode having an angle less than -45 degrees is performed. I can.
[206]
Whether to allow wide-angle intra prediction may be determined based on predetermined encoding information. The encoding information may include at least one of the size, shape, or split type of the current block. As an example, wide-angle intra prediction may be allowed when the size of the current block is larger than the threshold value or when the size of the current block is smaller than the threshold value. The threshold value may represent a maximum size or minimum size allowing wide-angle intra prediction. The threshold value may be predefined by an encoder and a decoder. Alternatively, information for determining the threshold value may be signaled through a bitstream.
[207]
As another example, wide-angle intra prediction may be allowed when the split type of the upper node is the first type, and may not be allowed when the split type of the upper node is the second type. The first type includes at least one of quad-tree division, binary tree division, and triple tree division, and the second type includes a division type other than the first type.
[208]
As another example, wide-angle intra prediction may be allowed only when the height and width ratio of the current block is greater than or equal to the first threshold or less than or equal to the second threshold. The first threshold value and the second threshold value may represent a maximum size or a minimum size allowing wide-angle intra prediction. The first threshold value and the second threshold value may be predefined by an encoder and a decoder. Alternatively, information for determining the first threshold value and the second threshold value may be signaled through a bitstream.
[209]
As another example, information indicating whether wide-angle intra prediction is allowed may be signaled through a bitstream.
[210]
A method of determining an intra prediction mode of an encoding/decoding object block and a method of performing intra prediction using the determined intra prediction mode will be described with reference to the drawings to be described later.
[211]
[212]
A method of determining an intra prediction mode of an encoding/decoding object block and a method of performing intra prediction using the determined intra prediction mode will be described with reference to the drawings to be described later.
[213]
13 is a flowchart schematically illustrating an intra prediction method according to an embodiment to which the present invention is applied.
[214]
First, a reference sample line index of the current block may be determined (S1110). The reference sample line index may be used to determine a reference sample line used to perform intra prediction of the current block. At least one reference sample line indicated by the reference sample line index among the plurality of reference sample lines may be used to perform intra prediction of the current block.
[215]
14 is a diagram illustrating reference sample line candidates.
[216]
The Nth reference sample line may include an upper reference sample whose y coordinate is smaller by N than the uppermost row of the current block and a left reference sample whose x coordinate is smaller than the leftmost column of the current block by N. Here, the N-th reference sample line indicates a reference sample line having an index of N-1 in the example shown in FIG. 14. The Nth reference sample line is the upper reference samples from P(-N, -N) to P(2W+N-1, -N) and P(-N, -N) to P(-N, 2H+). Left reference samples up to N-1) may be included. For example, reference sample line 1 is the upper reference samples from P(-2, _2) to P(2W+1, -2) and P(-2, -2) to P(-2, 2H+1) It may contain reference samples to the left.
[217]
The number of reference sample lines that can be used as reference sample line candidates may be 1, 2, 3, 4 or more. For example, in the example shown in FIG. 14, reference sample line 0, reference sample line 1, and reference sample line 3 may be used as reference sample line candidates.
[218]
The number of reference sample lines or the location of the reference sample lines that can be used as reference sample line candidates may be determined based on at least one of the size, shape, intra prediction mode, or location of the current block. For example, when the current block is located adjacent to the boundary of the CTU or the boundary of the tile, the number of reference sample line candidates may be one (eg, reference sample line 0). When the current block is not located adjacent to the boundary of the CTU or the boundary of the tile, the number of reference sample line candidates may be three (eg, reference sample line 0, reference sample line 1, reference sample line 3). For example, when the intra prediction mode of the current block falls within the first range, reference sample line 0, reference sample line 1, and reference sample line 3 may be used as reference sample line candidates. When the intra prediction mode of the current block falls within the second range, reference sample line 0, reference sample line 2, and reference sample line 2 may be used as reference sample line candidates.
[219]
Information specifying at least one of the reference sample line candidates may be signaled through a bitstream. When the number of available reference sample line candidates is one, encoding of the index information may be omitted. When the index information is not encoded, it may be considered that the reference sample line 0 adjacent to the current block is selected.
[220]
Alternatively, at least one of the reference sample line candidates may be selected based on at least one of the size, shape, location, or intra prediction mode of the current block. For example, when at least one of the width, height, and size of the current block is smaller than a predefined value, the reference sample line 0 may be selected. For example, when the current block contacts the upper boundary of the CTU or tile, reference sample line 0 may be selected.
[221]
Alternatively, a reference sample line may be selected based on whether the current block is divided into sub-blocks. For example, when the current block is divided into sub-blocks, reference sample line 0 may be selected.
[222]
Alternatively, when the current block is divided into a plurality of sub-blocks, a reference sample line may be determined for each sub-block. Alternatively, all sub-blocks may be defined to have the same reference sample line index.
[223]
When the current block is divided into a plurality of subblocks, intra prediction may be performed in units of subblocks.
[224]
Multiple reference sample lines may be selected for the current block. Whether to perform intra prediction using a plurality of reference sample lines may be adaptively determined according to the size, shape, or intra prediction mode of the current block. For example, when the intra prediction mode of the current block is a non-directional prediction mode or a predefined directional intra prediction mode, multiple reference sample lines may not be used. The predefined directional intra prediction mode may include at least one of a vertical intra prediction mode, a horizontal intra prediction mode, and a diagonal intra prediction mode.
[225]
The plurality of reference sample lines may include a reference sample line selected by index information and a reference sample line obtained by adding or subtracting a predefined value to the index of the reference sample line. Here, the predefined value may be 1 or 2.
[226]
Alternatively, a plurality of index information may be signaled through a visstream. Each of the plurality of index information indicates a different reference sample line.
[227]
The predicted sample may be obtained based on at least one of a weighted sum operation, an average operation, a minimum value operation, or a maximum value operation of the plurality of reference samples. Here, the index of the reference sample line including at least one of the plurality of reference samples may be different from the index of the reference sample line including the rest.
[228]
Next, an intra prediction mode of the current block may be determined (S1220).
[229]
In order to determine the intra prediction mode of the current block, a Most Probable Mode (MPM) candidate may be derived based on the intra prediction mode of a neighboring block adjacent to the current block. Here, the neighboring block may include at least one of a block adjacent to an upper, lower, left, right, or corner of the current block. For example, an MPM candidate may be derived based on the intra prediction mode of the upper neighboring block and the intra prediction mode of the left neighboring block. The upper neighboring block may include an upper neighboring sample at a predefined location whose y-coordinate value is smaller than the uppermost row of the current block. The predefined position may be (0, -1), (W/2, -1), (W-1, -1) or (W, -1). (0, 0) indicates the position of the upper left sample included in the current block, and W indicates the width of the current block. A left neighboring sample at a predefined position having a smaller x-coordinate value than the leftmost column of the current block of the left neighboring block may be included. The predefined position may be (-1, 0), (-1, H/2), (-1, H-1) or (-1, H). H represents the height of the current block. If a neighboring block is encoded by inter prediction, an MPM candidate may be included using an intra prediction mode of a neighboring block or a collocated block of the current block.
[230]
The number of MPM (Most Probable Mode) candidates included in the candidate list may be 3, 4, 5, 6 or more. The maximum number of MPM candidates may be a fixed value pre-set in the video encoder/decoder. Alternatively, the maximum number of MPM candidates may be determined based on the property of the current block. The attributes include the location/size/type of the current block, the number/type of intra prediction modes that the current block can use, the color type of the current block (luma/chroma), the color difference format of the current block, and the current block is a plurality of subblocks. It may include at least one of whether or not divided into. Alternatively, information indicating the maximum number of MPM candidates may be signaled through a bitstream. The information indicating the maximum number may be signaled at at least one of a sequence level, a picture level, a slice level, and a block level.
[231]
An intra prediction mode of a neighboring block, a directional intra prediction mode similar to a neighboring block, or a default mode may be set as the MPM candidate. The directional intra prediction mode similar to the neighboring block may be derived by adding or subtracting a predetermined value to the intra prediction mode of the neighboring block. The predefined value may be an integer of 1, 2 or more. The predefined value may be adaptively determined according to the number of available intra prediction modes. For example, when the number of usable intra prediction modes is 35, a predefined value may be set to 1, and when the number of usable intra prediction modes is 67, the predefined value may be set to 2. Furthermore, when the number of usable intra prediction modes is 131, a predefined value may be set to 4. When both the intra prediction mode of the first neighboring block and the intra prediction mode of the second neighboring block are directional prediction modes, based on the maximum value of the intra prediction mode of the first neighboring block and the intra prediction mode of the second neighboring block, Directional intra prediction mode can be derived. The default mode may include at least one of a DC mode, a planar mode, a horizontal prediction mode, a vertical prediction mode, an upper right diagonal mode, a lower left diagonal mode, and an upper left diagonal mode. When the number of MPM candidates included in the MPM candidate list is less than the maximum number, a default mode different from the previously inserted MPM candidates in the MPM candidate list may be inserted into the MPM candidate list. The number, type, or priority of the default mode is the reference sample line index of the current block,
[232]
The MPM candidate index may be determined according to a predefined order. For example, when the intra prediction mode of the left neighboring block and the intra prediction mode of the upper neighboring block are different, the intra prediction mode of the left neighboring block may have an index value smaller than that of the upper neighboring block.
[233]
Alternatively, the MPM candidate index may be determined according to the size/type of the current block. For example, when the current block has an amorphous shape whose height is greater than the width, the intra prediction mode of the upper neighboring block may have an index value smaller than that of the left neighboring block. When the current block has an amorphous shape whose width is greater than the height, the intra prediction mode of the left neighboring block may have a smaller index value than the intra prediction mode of the upper neighboring block.
[234]
Alternatively, only N predefined intra prediction modes may be used as MPM candidates. When the intra prediction mode of the neighboring block is different from the predefined N intra prediction modes, the intra prediction mode of the neighboring block is transformed into one of the predefined N intra prediction modes, and the transformed intra prediction mode is converted into an MPM candidate. Can be set. A pre-defined table may be used for transformation of the intra prediction mode, or a scaling operation based on a predetermined value may be used. Here, the pre-defined table may define a mapping relationship between intra prediction modes.
[235]
For example, neighboring blocks are encoded in a non-extended intra mode (ie, available intra prediction modes are 35), and the current block is encoded in an extended intra mode (ie, available intra prediction modes are 67). In this case, the intra prediction mode index of the neighboring block may be converted into an intra prediction mode index under the extended intra mode. For example, when the intra prediction mode of the left neighboring block is 10 (horizontal mode), it may be converted into an index 18 corresponding to the horizontal mode under the extended intra mode.
[236]
Alternatively, when a neighboring block is encoded in an extended intra mode and a current block is encoded in a non-extended intra mode, the intra prediction mode index of the neighboring block may be transformed into an intra prediction mode index under the non-extended intra mode. have. For example, when the intra prediction mode index of the upper neighboring block is 50 (vertical mode), it may be converted to index 26 corresponding to the vertical mode under the non-extended intra mode.
[237]
When the index of the reference sample line selected through operation S1110 is greater than or equal to a predefined value, the candidate list may be set not to include the DC mode and/or the planner mode. The predefined value may be an integer of 1 or more.
[238]
When the current block is divided into a plurality of sub-blocks, the current candidate list may be set to not include the DC mode and/or the planner mode. Also, a default mode may be included in the candidate list. In this case, the number or type of default modes may be different according to the division type of the current block.
[239]
Information indicating whether the same MPM candidate as the intra prediction mode of the current block is included in the candidate list may be signaled through the bitstream. For example, the MPM flag may be signaled through a bitstream. When the value of the MPM flag is 0, it indicates that the same MPM candidate as the intra prediction mode of the current block is not included in the candidate list. When the value of the MPM flag is 1, it indicates that the same MPM candidate as the intra prediction mode of the current block is included in the candidate list.
[240]
When the MPM flag indicates that the same MPM candidate as the intra prediction mode of the current block exists, index information specifying any one of the MPM candidates included in the candidate list may be signaled through a bitstream. The MPM candidate specified by the index information may be set as the intra prediction mode of the current block. When encoding/signaling of the MPM flag is omitted, it may be determined that an MPM candidate identical to the intra prediction mode of the current block is included in the candidate list.
[241]
On the other hand, when the MPM flag indicates that the same MPM candidate as the intra prediction mode of the current block does not exist, residual mode information may be signaled through a bitstream. The residual mode information is used to specify any one of the residual intra prediction modes excluding MPM candidates included in the candidate list. Using the residual mode information, an intra prediction mode of the current block may be determined. When the MPM flag indicates that the same MPM candidate as the intra prediction mode of the current block does not exist, the MPM candidates may be rearranged in ascending order. Thereafter, the mode value indicated by the residual mode information may be sequentially compared with the rearranged MPM candidates to induce an intra prediction mode of the current block. For example, when the mode value indicated by the residual mode information is less than or equal to the rearranged MPM candidate, 1 may be added to the mode value. When there is no MPM candidate less than the updated mode value, the updated mode value may be determined as the intra prediction mode of the current block.
[242]
When the index of the reference sample line selected through step S1110 is greater than or equal to a predefined value, encoding of the MPM flag may be omitted. Accordingly, when the index of the reference sample line is greater than or equal to a predefined value, the intra prediction mode of the current block may be set as an MPM candidate indicated by the index information.
[243]
As described above, when the index of the reference sample line is greater than or equal to a predefined value, the candidate list may be set not to include the DC mode and/or the planner mode. Accordingly, when the reference sample line index is greater than or equal to a predefined value, the DC mode and/or the planner mode may be unavailable for the current block.
[244]
Information indicating whether the intra prediction mode of the current block is a default mode may be signaled through a bitstream. The default mode may include at least one of DC, planar, horizontal mode, vertical mode, and diagonal mode. For example, a default mode flag indicating whether the intra prediction mode of the current block is the same as the default mode may be signaled through the bitstream. The default mode flag is a flag indicating whether the intra prediction mode of the current block is a planar mode, a flag indicating whether the intra prediction mode of the current block is a DC mode, and a flag indicating whether the intra prediction mode of the current block is a vertical direction mode. It may include at least one of a flag, a flag indicating whether the intra prediction mode of the current block is a horizontal direction mode, or a flag indicating whether the intra prediction mode of the current block is a diagonal direction mode.
[245]
For example, is_planar_not_flag may be signaled through a bitstream. When the value of the flag is 0, it indicates that the intra prediction mode of the current block is a planar mode. When the value of the flag is 1, it indicates that the intra prediction mode of the current block is not the planar mode.
[246]
The default mode flag may be signaled when the MPM flag indicates that the same MPM candidate as the intra prediction mode of the current block exists. When the default mode flag indicates that the intra prediction mode of the current block is not the default mode, an MPM candidate specified by index information may be set as the intra prediction mode of the current block.
[247]
When the index of the intra prediction mode of the current block is less than or equal to the first threshold value, and the current block has an amorphous shape whose width is greater than the height, the intra prediction mode may be converted into a wide angle intra prediction mode. Here, the first threshold value may be determined based on the shape of the current block. For example, the first threshold value may be derived by adding a width and height ratio to a predefined index. Accordingly, as the width and height ratio of the current block increases, the number of available wide-angle intra prediction modes may increase. The predefined index may be 8. When the above condition is satisfied, the intra prediction mode may be converted into a wide-angle intra prediction mode by adding a predefined value to the index of the intra prediction mode. The transformed wide angle intra prediction mode may have an angle greater than 135 degrees. The predefined value may be the number of directional prediction modes excluding wide-angle intra prediction modes. For example, when the example shown in FIG. 9 is followed, the predefined value may be set to 33, and when the example shown in FIG. 10 is followed, the predefined value may be set to 65.
[248]
When the index of the intra prediction mode of the current block is equal to or greater than the second threshold value, and the current block is an amorphous type whose height is greater than the width, the intra prediction mode may be converted into a wide-angle intra prediction mode. Here, the second threshold value may be determined based on the shape of the current block. For example, the second threshold value may be derived by subtracting a height and width ratio from a predefined index. Accordingly, as the height and width ratio of the current block increases, the number of available wide-angle intra prediction modes may increase. The predefined index may be 60. When the above condition is satisfied, the intra prediction mode may be transformed into a wide-angle intra prediction mode by subtracting a predefined value from the index of the intra prediction mode. The transformed wide angle intra prediction mode may have an angle smaller than -45 degrees. The predefined value may be the number of intra prediction modes excluding the wide angle intra prediction mode. For example, when the example shown in FIG. 9 is followed, the predefined value may be set to 35, and when the example shown in FIG. 10 is followed, the predefined value may be set to 67.
[249]
When the current block is divided into a plurality of subblocks, the plurality of subblocks may share an intra prediction mode of the current block. Alternatively, an intra prediction mode may be determined for each subblock. For example, the information and/or the residual mode may be encoded/decoded for each sub-block. Alternatively, information indicating whether the intra prediction mode of the sub-block is the same as the sub-block on which the previous encoding/decoding has been completed may be signaled through the bitstream. Alternatively, the intra prediction mode of the current subblock may be derived by adding/subtracting an offset to the intra prediction mode of the subblock on which the previous encoding/decoding has been completed.
[250]
When the current block is divided into a plurality of subblocks, encoding of the MPM flag may be omitted. Accordingly, when the current blocks are divided into a plurality of subblocks, the intra prediction mode of the current block may be set as an MPM candidate indicated by the index information.
[251]
The plurality of sub-blocks may share the intra prediction mode of the current block.
[252]
Intra prediction modes of each of the luminance component and the color difference component may be independently determined from each other. Alternatively, the intra prediction mode of the color difference component may be determined depending on the intra prediction mode of the luminance component.
[253]
Specifically, the intra prediction mode of the color difference component may be determined based on the intra prediction mode of the luminance component as shown in Table 1 below.
[254]
[Table 1]
Intra_chroma_pred_mode [xCb][yCb] IntraPredModeY[xCb][yCb]
0 26 10 One X(0<=X<=34)
0 34 0 0 0 0
One 26 34 26 26 26
2 10 10 34 10 10
3 One One One 34 One
4 0 26 10 One X
[255]
In Table 1, intra_chroma_pred_mode indicates information signaled to specify an intra prediction mode of a color difference component, and IntraPredModeY indicates an intra prediction mode of a luminance component.
[256]
[257]
Next, a reference sample for the current block may be derived (S1130). For example, when the N-th reference sample line is selected through step S1110, the upper reference samples from P(-N, -N) to P(2W+N-1, -N) and P(-N, -N) The left reference sample from to P(-N, 2H+N-1) can be derived.
[258]
The reference sample may be derived from a reconstructed sample that has been encoded/decoded before the current block. The reconstructed sample may mean a state before the in-loop filter is applied or a state after the in-loop filter is applied.
[259]
A predetermined intra filter may be applied to the reference samples. Filtering the reference samples using an intra filter may be referred to as reference sample smoothing. The intra filter may include at least one of a first intra filter applied in a horizontal direction or a second intra filter applied in a vertical direction. One of the first intra filter or the second intra filter may be selectively applied according to the position of the reference sample. Alternatively, two intra filters may be repeatedly applied to one reference sample. At least one filter coefficient among the first intra filter and the second intra filter may be (1, 2, 1), but is not limited thereto.
[260]
The filtering may be adaptively performed based on at least one of an intra prediction mode of a current block or a size of a transform block related to the current block. For example, when the intra prediction mode of the current block is a DC mode, a vertical mode, or a horizontal mode, filtering may not be performed. When the size of the transform block is NxM, filtering may not be performed. Here, N and M may be the same or different values, and may be any one of 4, 8, 16 or more values. For example, when the size of the transform block is 4x4, filtering may not be performed. Alternatively, it may be determined whether to perform filtering based on a difference between the intra prediction mode of the current block and the vertical mode (or horizontal mode) and a comparison result between a predefined threshold. For example, filtering may be performed only when the difference between the intra prediction mode and the vertical mode of the current block is greater than a threshold value. As shown in Table 2, the threshold may be defined for each size of a transform block.
[261]
[Table 2]
8x8 transform 16x16 transform 32x32 transform
Threshold 7 One 0
[262]
The intra filter may be determined as one of a plurality of intra filter candidates pre-defined in an image encoder/decoder. To this end, a separate index specifying an intra filter of the current block among the plurality of intra filter candidates may be signaled. Alternatively, the intra filter may be determined based on at least one of a size/shape of a current block, a size/shape of a transform block, information on a filter strength, or a variation of surrounding samples.
[263]
Next, intra prediction may be performed using an intra prediction mode of the current block and a reference sample (S1140).
[264]
A prediction sample may be obtained using an intra prediction mode and a reference sample of the current block. When multiple reference sample lines are selected, prediction samples may be obtained based on a weighted sum operation or an average operation of reference samples belonging to different reference sample lines. As an example, a prediction sample may be derived based on a weighted sum operation of a first reference sample belonging to the first reference sample line and a second reference sample belonging to the second reference sample line. In this case, the weights applied to the first reference sample and the second reference sample may have the same value. Alternatively, a weight applied to each reference sample may be determined based on a distance between the prediction target sample and reference samples. For example, among the first reference sample and the second reference sample, a weight applied to a reference sample having a close distance to a prediction target sample may have a greater value than a weight applied to other reference samples.
[265]
However, in the case of intra prediction, since boundary samples of neighboring blocks are used, a problem of deteriorating the quality of the prediction image may occur. Accordingly, a correction process for the prediction sample generated through the above-described prediction process may be further involved, and will be described in detail below with reference to FIG. 15. However, the correction process to be described later is not limited to being applied only to an intra prediction sample, and may be applied to an inter prediction sample or a reconstructed sample.
[266]
[267]
15 illustrates a method of correcting a prediction sample of a current block based on difference information of neighboring samples in an embodiment to which the present invention is applied.
[268]
A prediction sample of the current block may be corrected based on difference information between a plurality of neighboring samples with respect to the current block. The correction may be performed on all prediction samples included in the current block, or may be performed only on prediction samples included in a predetermined partial region. Some areas may be one row/column or a plurality of rows/columns, and this may be a pre-set area for correction in an image encoder/decoder. For example, correction may be performed on one row/column located at the boundary of the current block or a plurality of rows/columns from the boundary of the current block. Alternatively, some regions may be variably determined based on at least one of the size/shape of the current block or the intra prediction mode.
[269]
The neighboring samples may belong to at least one of neighboring blocks located at the upper, left, and upper left corner of the current block. The number of peripheral samples used for correction may be 2, 3, 4 or more. Locations of surrounding samples may be variably determined according to the location of a prediction sample to be corrected in the current block. Alternatively, some of the surrounding samples may have a fixed position regardless of the position of the prediction sample to be corrected, and the rest may have a variable position according to the position of the prediction sample to be corrected.
[270]
The difference information of the surrounding samples may mean a difference sample between the surrounding samples, or a value obtained by scaling the difference sample to a predetermined constant value (eg, 1, 2, 3, etc.). Here, the predetermined constant value may be determined in consideration of the position of the prediction sample to be corrected, the position of the column or row to which the prediction sample to be corrected belongs, and the position of the prediction sample within the column or row.
[271]
For example, when the intra prediction mode of the current block is the vertical mode, a difference sample between the neighboring samples p(-1,y) adjacent to the left boundary of the current block and the upper left peripheral sample p(-1,-1) is used. A final prediction sample may be obtained as shown in Equation 1 below.
[272]
[Equation 1]

[273]
For example, if the intra prediction mode of the current block is the horizontal mode, a difference sample between the neighboring samples p(x,-1) adjacent to the upper boundary of the current block and the upper left peripheral sample p(-1,-1) is used. A final prediction sample may be obtained as shown in Equation 2 below.
[274]
[Equation 2]

[275]
For example, when the intra prediction mode of the current block is the vertical mode, a difference sample between the neighboring samples p(-1,y) adjacent to the left boundary of the current block and the upper left peripheral sample p(-1,-1) is used. A final prediction sample can be obtained. In this case, the difference sample may be added to the prediction sample, or the difference sample may be scaled by a predetermined constant value and then added to the prediction sample. The predetermined constant value used for scaling may be determined differently according to columns and/or rows. For example, the predicted sample may be corrected as shown in Equations 3 and 4 below.
[276]
[Equation 3]

[277]
[Equation 4]

[278]
For example, if the intra prediction mode of the current block is the horizontal mode, a difference sample between the neighboring samples p(x,-1) adjacent to the upper boundary of the current block and the upper left peripheral sample p(-1,-1) is used. A final prediction sample can be obtained, as described above in the vertical mode. As an example, the prediction sample may be corrected as shown in Equations 5 and 6 below.
[279]
[Equation 5]

[280]
[Equation 6]

[281]
When the intra prediction mode of the current block is the directional prediction mode, intra prediction of the current block may be performed based on the directionality of the directional prediction mode. As an example, Table 3 shows intra-direction parameters (intraPredAng) from Mode 2 to Mode 34, which are directional intra prediction modes shown in FIG. 9.
[282]
[Table 3]
predModeIntra One 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
intraPredAng - 32 26 21 17 13 9 5 2 0 -2 -5 -9 -13 -17 -21
predModeIntra 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
intraPredAng -32 -26 -21 -17 -13 -9 -5 -2 0 2 5 9 13 17 21 26
[283]
In Table 3, 33 directional intra prediction modes have been exemplified and described. However, it is possible to define a larger number or a smaller number of directional intra prediction modes. An intra direction parameter for a current block may be determined based on a lookup table defining a mapping relationship between the directional intra prediction mode and the intra direction parameter. Alternatively, the intra direction parameter for the current block may be determined based on information signaled through the bitstream.
[284]
Intra prediction of the current block may be performed using at least one of a left reference sample and an upper reference sample, depending on the direction of the directional intra prediction mode. Here, the upper reference sample is reference samples (e.g., (-1, -1) to (2W-1, -) having a smaller y-axis coordinate than the prediction target sample (x, 0) included in the top row of the current block. 1)), and the left reference sample is from reference samples (e.g., (-1, -1) to ()) with an x-axis coordinate smaller than the prediction target sample (0, y) included in the leftmost column in the current block. -1, 2H-1)).
[285]
The reference samples of the current block may be arranged in one dimension according to the direction of the intra prediction mode. Specifically, when it is necessary to use both the upper reference sample and the left reference sample during intra prediction of the current block, it is assumed that they are arranged in a line along a vertical or horizontal direction, and a reference sample of each prediction target sample can be selected. .
[286]
For example, when the intra direction parameter is negative (for example, in the case of the intra prediction mode corresponding to Mode 11 to Mode 25 in Table 3), the upper reference samples and the left reference samples are rearranged along the horizontal or vertical direction to be one-dimensional. A reference sample group (P_ref_1D) can be configured.
[287]
16 and 17 are diagrams illustrating a one-dimensional reference sample group in which reference samples are rearranged in a line.
[288]
Whether to rearrange the reference samples in the vertical direction or the horizontal direction may be determined according to the direction of the intra prediction mode. For example, when the intra prediction mode is to the left (eg, the index of the intra prediction mode is between 11 to 18 of the example shown in FIG. 9), as in the example shown in FIG. 16, the upper reference samples of the current block are By rotating in a clockwise direction, a one-dimensional reference sample group in which left reference samples and upper reference samples are arranged in a vertical direction may be generated.
[289]
On the other hand, when the intra prediction mode faces upward (eg, the index of the intra prediction mode is between 19 and 25 of the example shown in FIG. 9), as in the example shown in FIG. 17, the left reference samples of the current block are referred to the left. By rotating the samples in a clockwise direction, a one-dimensional reference sample group in which left reference samples and upper reference samples are arranged in a horizontal direction may be generated.
[290]
When the intra direction parameter of the current block is not negative, intra prediction for the current block may be performed using only left reference samples or upper reference samples. Accordingly, for intra prediction modes in which the intra direction parameter is not negative, a one-dimensional reference sample group may be configured by using only the left reference sample or the upper reference samples.
[291]
A reference sample determination index iIdx for specifying at least one reference sample used to predict a prediction target sample may be derived based on the intra direction parameter. In addition, it is possible to derive a weight-related parameter i fact used to determine a weight applied to each reference sample based on the intra direction parameter . As an example, Equation 7 below shows an example of deriving a reference sample determination index and a weight related parameter.
[292]
[Equation 7]

[293]

[294]
As shown in Equation 7, iIdx and i fact are variably determined according to the slope of the directional intra prediction mode. In this case, the reference sample specified by iIdx may correspond to an integer pel.
[295]
At least one reference sample may be specified for each prediction target sample based on the reference sample determination index. For example, based on the reference sample determination index, a position of a reference sample within a one-dimensional reference sample group for predicting a prediction target sample within a current block may be specified. A prediction image (ie, a prediction sample) for a prediction target sample may be generated based on a reference sample at a specified location.
[296]
[297]
A prediction image for a prediction target sample may be generated based on one or a plurality of reference samples according to the intra prediction mode of the current block.
[298]
For example, when a virtual angular line extending from the prediction target sample passes an integer pel position (ie, a reference sample at an integer position) in a one-dimensional reference sample group, a reference sample at the integer pel position A prediction image for the prediction target sample may be generated by copying or scaling the reference sample in consideration of a position between the reference sample at the integer pel position and the prediction target sample. The virtual angle line may mean a line extending in one direction or both directions along the angle of the intra prediction mode of the current block or the slope of the intra prediction mode. As an example, the following Equation 8 copies the reference sample P_ref_1D(x+iIdx+1) specified by the intra prediction mode of the current block, It shows an example of generating y).
[299]
[Equation 8]

[300]
On the other hand, when the virtual angle line extending from the prediction target sample does not pass through the integer pel position, a prediction image for the prediction target sample may be obtained using a plurality of reference samples. The prediction image for the prediction target sample may be generated by linearly interpolating a reference sample adjacent to a position where the virtual angle line passes and at least one neighboring reference sample adjacent to the reference sample. Alternatively, the prediction image for the prediction target sample may be obtained by performing a tap filter-based interpolation on the reference sample and the at least one neighboring reference sample. The number of taps of the interpolation filter may be a natural number of 2 or more. Specifically, depending on the number of reference samples to be interpolated, the number of taps of the tap filter may be an integer of 2, 3, 4, 5, 6 or more.
[301]
As an example, when a virtual angle line extending from a prediction target sample passes between two integer pel positions, at least one of the reference samples at both positions where the virtual angle line passes or the reference samples at the two integer pel positions, and A prediction image for a prediction target sample may be generated by using at least one neighboring reference samples. Here, the neighboring reference sample may include at least one of reference samples adjacent to the left/right or upper/lower of the reference sample. As an example, Equation 9 below shows an example of generating a prediction sample P(x, y) for a prediction target sample by interpolating two or more reference samples.
[302]
[Equation 9]

[303]
The coefficient of the interpolation filter may be determined based on a weight-related parameter i fact . For example, the coefficient of the interpolation filter may be determined based on a distance between a fractional pel located on an angular line and an integer pel (ie, an integer position of each reference sample).
[304]
Equation 10 below illustrates a case where the number of taps of the tap filter is 4.
[305]
[Equation 10]

[306]
As in the example shown in Equation 10, a prediction image for a prediction target sample may be obtained by interpolating a plurality of consecutive reference samples. In this case, when at least one or more of the N consecutive reference samples is not included in the one-dimensional reference sample group, the value of the reference sample may be replaced with a predefined value or a value of a neighboring reference sample. For example, when the sample at the (x+iIdx-1) position is not included in the one-dimensional reference sample group, the reference sample value at the position is a predefined value or the value of the adjacent reference sample (e.g., P_ref_1D(x+ iIdx)). Alternatively, when the sample at the (x+iIdx+2) position is not included in the one-dimensional reference sample group, the value of the reference sample at the position is a predefined value, or a value of a pre-calculated or adjacent reference sample (e.g., P_ref It can be replaced with (x+iIdx+1)). Here, the predefined value may be an integer including 0. The previously calculated value may be a value determined by a bit depth. Alternatively, a predefined value may be calculated based on an average value, a minimum value, or a maximum value of at least one reference sample.
[307]
The multi-tap filter may have a linear shape. As an example, a linear multi-tap filter using a plurality of reference samples consecutive in a horizontal or vertical direction may be applied. Alternatively, the multi-tap filter may have a polygonal shape such as a square or cross shape. As an example, a cross-shaped multi-tap filter using a reference sample and reference samples adjacent to all four sides of the reference sample may be used. The shape of the multi-tap filter may be variably determined based on the size, shape, or intra prediction mode of the current block.
[308]
As shown in Equations 8 to 10, generating a prediction sample by interpolating a reference sample using the direction of intra prediction may be referred to as an intra prediction sample interpolation technique.
[309]
In using the intra prediction sample interpolation technique, a large number of taps of a tap filter does not necessarily guarantee improvement in prediction accuracy. For example, if the size of the current block is an asymmetric coding unit that is significantly larger than one having a height or width such as 2x16, or a block of a small size such as 4x4, using a tap filter of 4 or more taps rather smooths the predicted image excessively. It can have consequences. Accordingly, the type of the tap filter may be adaptively determined according to the size, shape or intra prediction mode of the current block. Here, the type of the tap filter may be defined by at least one of the number of taps, filter coefficients, filter strength (strong/weak), filtering direction, and filter type. The number of filter taps or filter coefficients may be variably determined according to the filter strength. Also, according to the type of the tap filter, a direction in which the tap filter is applied may be determined, such as horizontal interpolation, vertical interpolation, or horizontal and vertical interpolation. The application direction of the tap filter may be variably set in units of lines (rows or columns) or samples in the current block.
[310]
Specifically, the type of tap filter to be used may be determined based on the width or height of the current block. For example, when at least one of the width or height of the current block is smaller than a predefined value, an intra prediction sample interpolation technique may be performed using a 2-tap filter instead of a 4-tap filter. On the other hand, when both the width and height of the current block are equal to or greater than a predefined value, the intra prediction sample interpolation technique may be performed using a 4-tap filter. Here, the predefined value may represent a value such as 4, 8, or 16.
[311]
Alternatively, the type of tap filter to be used may be determined according to whether the width and height of the current block are the same value. For example, when the width and height of the current block are different values, the intra prediction sample interpolation technique may be performed using a 2-tap filter instead of a 4-tap filter. On the other hand, when the width and height of the current block have the same value, the intra prediction sample interpolation technique may be performed using a 4-tap filter.
[312]
Alternatively, the type of tap filter to be used may be determined according to the ratio of the width and height of the current block. For example, if the ratio of the width (w) and height (h) of the current block (ie, w/h or h/w) is less than a predefined threshold, intra prediction using a 2-tap filter instead of a 4-tap filter Sample interpolation techniques can be performed. On the other hand, when the ratio of the width and height of the current block is greater than or equal to a predefined threshold, an intra prediction sample interpolation technique may be performed using a 4-tap filter.
[313]
Alternatively, the type of the tap filter may be determined according to the intra prediction mode, shape, or size of the current block. As an example, when the current block is a 2x16 coding unit and the intra prediction mode of the current block is an intra prediction mode belonging to a horizontal direction range, an intra prediction sample interpolation technique may be performed using a tap filter having n taps. . On the other hand, when the current block is a 2x16 coding unit and the intra prediction mode of the current block is an intra prediction mode belonging to a vertical direction range, an intra prediction sample interpolation technique may be performed using a tap filter having a number of taps m.
[314]
On the other hand, when the current block is a 16x2 coding unit and the intra prediction mode of the current block is an intra prediction mode belonging to a horizontal direction range, an intra prediction sample interpolation technique may be performed using a tap filter having n taps. On the other hand, when the current block is a 16x2 coding unit and the intra prediction mode of the current block is an intra prediction mode belonging to a vertical direction range, an intra prediction sample interpolation technique may be performed using a tap filter having a number of taps m.
[315]
Here, the horizontal direction range may indicate a predetermined range including intra prediction modes in the horizontal direction, and the vertical direction range may indicate a predetermined range including the vertical direction intra prediction mode. For example, when 35 intra prediction modes are based, the horizontal range indicates intra prediction modes between modes 11 and 18, and the vertical range indicates intra prediction modes between modes 19 and 27.
[316]
Further, n and m are constants greater than 0, and n and m may have different values. Alternatively, n and m may be set to have the same value, but at least one of filter coefficients or filter strengths of the n-tap filter and the m-tap filter may be differently set.
[317]
When intra prediction is performed based on the directional prediction mode or the DC mode, there is a fear that picture quality may deteriorate at a block boundary. On the other hand, when intra prediction is performed based on the planar mode, there is an advantage that image quality deterioration at a block boundary is relatively small compared to the prediction modes.
[318]
In intra prediction based on the planar mode, the prediction image may be obtained by weighted prediction of the first prediction image in the horizontal direction and the second prediction image in the vertical direction.
[319]
Here, the first prediction image may be generated based on a prediction target sample and reference samples placed in a horizontal direction. As an example, the first prediction image may be generated based on a weighted sum of reference samples placed in the horizontal direction of the prediction target sample. In this case, the weight applied to each of the reference samples may be determined based on at least one of a distance to a prediction target sample or a size of a current block. Reference samples positioned in the horizontal direction of the prediction target sample may include a left reference sample having the same y coordinate as the prediction target sample and a right reference sample having the same y coordinate as the prediction target sample. The right reference sample may be derived from the upper reference sample of the current block. As an example, the right reference sample may be derived by copying a value of an upper reference sample placed on the same vertical line as the right reference sample. Alternatively, the right reference sample may be derived as a weighted sum or average value of a plurality of upper reference samples. Here, the upper reference sample placed on the same vertical line as the right reference sample may include a reference sample adjacent to the upper right corner of the current block. The reference sample adjacent to the upper right corner may have the same x-coordinate as the right reference sample. Alternatively, the location of the upper reference sample used to induce the right reference sample may be variably determined according to the shape, size of the current block, or the location of the prediction target sample.
[320]
The second prediction image may be generated based on reference samples placed in the vertical direction of the prediction target sample. As an example, the second prediction image may be generated based on a weighted sum of reference samples placed in a vertical direction of the prediction target sample. In this case, the weight applied to each of the reference samples may be determined in consideration of the distance to the prediction target sample or the size of the current block. Reference samples placed in the vertical direction of the prediction target sample may include an upper reference sample having the same x coordinate as the prediction target sample and a lower reference sample having the same x coordinate as the prediction target sample. The lower reference sample may be derived from the left reference sample of the current block. As an example, the lower reference sample may be derived by copying the value of the left reference sample placed on the same horizontal line as the lower reference sample. Alternatively, the lower reference sample may be derived as a weighted sum or average value of a plurality of left reference samples. Here, the left reference sample placed on the same horizontal line as the lower reference sample may include a reference sample adjacent to the lower left corner of the current block. The reference sample adjacent to the lower left corner may have the same y-coordinate as the lower reference sample. Alternatively, the location of the upper reference sample used to induce the lower reference sample may be variably determined according to the size, shape of the current block, or the location of the prediction target sample.
[321]
Alternatively, at least one of the right reference sample and the lower reference sample may be derived using both the left reference sample and the upper reference sample.
[322]
As an example, the weighted sum or average of the upper reference sample and the left reference sample of the current block may be determined as at least one of a right reference sample and a lower reference sample.
[323]
Alternatively, the lower right reference sample and the lower right reference sample are derived using the lower left reference sample and the upper right reference sample, and then the lower right reference sample is derived using the derived lower right reference sample. You may. The lower right reference sample may be derived based on a weighted sum or average of the upper right reference sample and the left reference sample of the current block. In this case, the weight applied to the upper right reference sample and the left reference sample may have the same value or may be determined based on the width/height of the current block.
[324]
When the lower right reference sample is determined, the lower right reference sample and the upper right reference sample are interpolated to derive the right reference sample, and the lower right reference sample and the lower left reference sample are interpolated to derive the lower reference sample. I can. In this case, the coefficient of the interpolation filter may be determined based on the size of the current block, the shape of the current block, the distance to the lower right reference sample, the distance to the upper right reference sample, or the distance to the lower left reference sample.
[325]
In order to derive the right reference sample or the left reference sample, a reference sample at a fixed position may be used, or a reference sample adaptively selected according to the position of the prediction target sample may be used. For example, the right reference sample is derived using the upper right reference sample regardless of the location of the prediction target sample, or a left reference sample selected according to the location of the prediction target sample (e.g., having the same y-axis coordinate as the prediction target sample) A reference sample) or an upper reference sample (eg, a reference sample having the same x-axis coordinate as the prediction target sample) may be used. Alternatively, the lower reference sample is derived using the lower left reference sample regardless of the position of the prediction target sample, or a left reference sample selected according to the position of the prediction target sample (e.g., a reference having the same y-axis coordinate as the prediction target sample) Sample) or an upper reference sample (eg, a reference sample having the same x-axis coordinate as the prediction target sample).
[326]
18 is a diagram illustrating an example of inducing a right reference sample or a lower reference sample by using multiple reference samples. It is assumed that the current block is a block having a size of WxH.
[327]
Referring to FIG. 18A, first, based on the weighted sum or average value of the upper right reference sample P(W, -1) and the lower left sample P(-1, H) of the current block, the lower right reference sample P(W, H) can be generated. In this case, the weight applied to the upper right reference sample and the left reference sample may be set to be the same, or may be determined based on the width (W) and height (H) of the current block. For example, when the current block is amorphous, the weight applied to the upper right reference sample may be determined as W/(W+H), and the weight applied to the lower left reference sample may be determined as H/(W+H). have.
[328]
And, based on the lower right reference sample P(W, H) and the upper right reference sample P(W, -1), the right reference sample P(W, y) for the target prediction sample (x, y) is generated. I can. As an example, the right prediction sample P(W, y) may be calculated as a weighted sum or average value of the lower right reference sample P(W, H) and the upper right reference sample P(W, -1). In addition, a lower reference sample P(x, H) for the target prediction sample (x, y) can be generated based on the lower right reference sample P(W, H) and the lower left reference sample P(-1, H). have. As an example, the lower reference sample P(x, H) may be calculated as a weighted sum or average value of the lower right reference sample P(W, H) and the left reference sample P(-1, H).
[329]
As shown in (b) of FIG. 18, when the right reference sample and the lower reference sample are generated, the first prediction sample P h (x, y) and the second prediction target sample are used using the generated reference sample. A prediction sample P v (x, y) can be generated. At this time, the first prediction sample P h (x, y) is generated based on the weighted sum of the left reference sample P(-1, y) and the right reference sample P(W, y), and the second prediction sample P v ( x, y) may be generated based on a weighted sum of the upper reference sample P(x, -1) and the lower reference sample P(x, H).
[330]
19 and 20 are diagrams for explaining determining a right reference sample and a lower reference sample for an amorphous block according to an embodiment of the present invention.

Claims
[Claim 1]
Deriving an intra prediction mode of the current block; And changing the intra prediction mode to a wide-angle intra prediction mode when the intra prediction mode is less than or equal to the threshold value, and the current block is an amorphous type having a width greater than a height, wherein the wide-angle intra prediction mode is An image decoding method, characterized in that it has an angle greater than 135 degrees.
[Claim 2]
The image decoding method of claim 1, wherein the threshold value is determined based on a width and height ratio of the current block.
[Claim 3]
The method of claim 2, wherein the wide-angle intra prediction mode is derived by adding a predefined value to the intra prediction mode, and the predefined value is the number of directional intra prediction modes.
[Claim 4]
The image decoding method of claim 1, wherein the number of wide-angle intra prediction modes that the current block can use is determined based on a width and height ratio of the current block.
[Claim 5]
The method of claim 1, wherein when a multiple intra prediction method is applied to the current block, a non-wide angle intra prediction mode is applied to a first subblock of the current block, and the wide angle intra prediction mode is applied to a second subblock. A video decoding method, characterized in that applied.
[Claim 6]
The image decoding method of claim 5, wherein a sample located at a boundary of the first sub-block is modified to a value calculated by a smoothing filter.
[Claim 7]
The method of claim 6, wherein the filtering based on the smoothing filter includes a sample positioned at a boundary of the first sub-block and a first neighboring sample of the sample included in the first sub-block and the second sub-block. A method of decoding an image, characterized in that it is performed based on a second neighboring sample of the sample.
[Claim 8]
Deriving an intra prediction mode of the current block; And changing the intra prediction mode to a wide-angle intra prediction mode when the intra prediction mode is less than or equal to the threshold value, and the current block is an amorphous type having a width greater than a height, wherein the wide angle intra prediction mode is An image encoding method, characterized in that it has an angle greater than 135 degrees.
[Claim 9]
The method of claim 8, wherein the threshold value is determined based on a width and height ratio of the current block.
[Claim 10]
The image encoding method of claim 9, wherein the wide-angle intra prediction mode is derived by adding a predefined value to the intra prediction mode, and the predefined value is the number of directional intra prediction modes.
[Claim 11]
The method of claim 8, wherein the number of wide-angle intra prediction modes that the current block can use is determined based on a width and height ratio of the current block.
[Claim 12]
The method of claim 8, wherein when a multiple intra prediction method is applied to the current block, a non-wide angle intra prediction mode is applied to a first subblock of the current block, and the wide angle intra prediction mode is applied to a second subblock. A video encoding method, characterized in that applied.
[Claim 13]
The video encoding method of claim 12, wherein a sample positioned at a boundary of the first sub-block is modified to a value calculated by a smoothing filter.
[Claim 14]
The method of claim 13, wherein the filtering based on the smoothing filter comprises a sample positioned at a boundary of the first sub-block and a first neighboring sample of the sample included in the first sub-block and the second sub-block. An image encoding method, characterized in that it is performed based on a second neighboring sample of the sample.
[Claim 15]
An intra prediction unit for inducing an intra prediction mode of a current block, changing the intra prediction mode to a wide angle intra prediction mode when the intra prediction mode is less than a threshold value and the current block is an amorphous type having a width greater than a height Including, wherein the wide-angle intra prediction mode, characterized in that the angle has a larger angle than 135 degrees, video decoding apparatus.

Documents

Application Documents

# Name Date
1 202017049351-ABSTRACT [17-03-2023(online)].pdf 2023-03-17
1 202017049351-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [11-11-2020(online)].pdf 2020-11-11
2 202017049351-CLAIMS [17-03-2023(online)].pdf 2023-03-17
2 202017049351-STATEMENT OF UNDERTAKING (FORM 3) [11-11-2020(online)].pdf 2020-11-11
3 202017049351-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [11-11-2020(online)].pdf 2020-11-11
3 202017049351-FER_SER_REPLY [17-03-2023(online)].pdf 2023-03-17
4 202017049351-OTHERS [17-03-2023(online)].pdf 2023-03-17
4 202017049351-FORM 1 [11-11-2020(online)].pdf 2020-11-11
5 202017049351-DRAWINGS [11-11-2020(online)].pdf 2020-11-11
5 202017049351-AMMENDED DOCUMENTS [16-03-2023(online)].pdf 2023-03-16
6 202017049351-FORM 13 [16-03-2023(online)].pdf 2023-03-16
6 202017049351-DECLARATION OF INVENTORSHIP (FORM 5) [11-11-2020(online)].pdf 2020-11-11
7 202017049351-MARKED COPIES OF AMENDEMENTS [16-03-2023(online)].pdf 2023-03-16
7 202017049351-COMPLETE SPECIFICATION [11-11-2020(online)].pdf 2020-11-11
8 202017049351-Proof of Right [24-11-2020(online)].pdf 2020-11-24
8 202017049351-FORM 3 [14-03-2023(online)].pdf 2023-03-14
9 202017049351-FORM-26 [24-11-2020(online)].pdf 2020-11-24
9 202017049351-Information under section 8(2) [14-03-2023(online)]-1.pdf 2023-03-14
10 202017049351-certified copy of translation [24-11-2020(online)].pdf 2020-11-24
10 202017049351-Information under section 8(2) [14-03-2023(online)].pdf 2023-03-14
11 202017049351-FORM 3 [07-04-2021(online)].pdf 2021-04-07
11 202017049351-PETITION UNDER RULE 137 [14-03-2023(online)].pdf 2023-03-14
12 202017049351-certified copy of translation [09-12-2022(online)].pdf 2022-12-09
12 202017049351.pdf 2021-10-19
13 202017049351-FER.pdf 2022-09-30
13 202017049351-FORM 18 [16-06-2022(online)].pdf 2022-06-16
14 202017049351-FER.pdf 2022-09-30
14 202017049351-FORM 18 [16-06-2022(online)].pdf 2022-06-16
15 202017049351-certified copy of translation [09-12-2022(online)].pdf 2022-12-09
15 202017049351.pdf 2021-10-19
16 202017049351-FORM 3 [07-04-2021(online)].pdf 2021-04-07
16 202017049351-PETITION UNDER RULE 137 [14-03-2023(online)].pdf 2023-03-14
17 202017049351-Information under section 8(2) [14-03-2023(online)].pdf 2023-03-14
17 202017049351-certified copy of translation [24-11-2020(online)].pdf 2020-11-24
18 202017049351-FORM-26 [24-11-2020(online)].pdf 2020-11-24
18 202017049351-Information under section 8(2) [14-03-2023(online)]-1.pdf 2023-03-14
19 202017049351-FORM 3 [14-03-2023(online)].pdf 2023-03-14
19 202017049351-Proof of Right [24-11-2020(online)].pdf 2020-11-24
20 202017049351-COMPLETE SPECIFICATION [11-11-2020(online)].pdf 2020-11-11
20 202017049351-MARKED COPIES OF AMENDEMENTS [16-03-2023(online)].pdf 2023-03-16
21 202017049351-DECLARATION OF INVENTORSHIP (FORM 5) [11-11-2020(online)].pdf 2020-11-11
21 202017049351-FORM 13 [16-03-2023(online)].pdf 2023-03-16
22 202017049351-AMMENDED DOCUMENTS [16-03-2023(online)].pdf 2023-03-16
22 202017049351-DRAWINGS [11-11-2020(online)].pdf 2020-11-11
23 202017049351-FORM 1 [11-11-2020(online)].pdf 2020-11-11
23 202017049351-OTHERS [17-03-2023(online)].pdf 2023-03-17
24 202017049351-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [11-11-2020(online)].pdf 2020-11-11
24 202017049351-FER_SER_REPLY [17-03-2023(online)].pdf 2023-03-17
25 202017049351-STATEMENT OF UNDERTAKING (FORM 3) [11-11-2020(online)].pdf 2020-11-11
25 202017049351-CLAIMS [17-03-2023(online)].pdf 2023-03-17
26 202017049351-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [11-11-2020(online)].pdf 2020-11-11
26 202017049351-ABSTRACT [17-03-2023(online)].pdf 2023-03-17
27 202017049351-US(14)-HearingNotice-(HearingDate-06-03-2025).pdf 2025-02-19
28 202017049351-Correspondence to notify the Controller [19-02-2025(online)].pdf 2025-02-19
29 202017049351-US(14)-ExtendedHearingNotice-(HearingDate-13-03-2025)-1700.pdf 2025-02-20
30 202017049351-Correspondence to notify the Controller [20-02-2025(online)].pdf 2025-02-20
31 202017049351-FORM-26 [07-03-2025(online)].pdf 2025-03-07
32 202017049351-Written submissions and relevant documents [28-03-2025(online)].pdf 2025-03-28
33 202017049351-PETITION UNDER RULE 137 [02-04-2025(online)].pdf 2025-04-02
34 202017049351-FORM 3 [02-04-2025(online)].pdf 2025-04-02
35 202017049351-PatentCertificate15-10-2025.pdf 2025-10-15
36 202017049351-IntimationOfGrant15-10-2025.pdf 2025-10-15

Search Strategy

1 SearchE_28-09-2022.pdf
2 NPLE_28-09-2022.pdf

ERegister / Renewals

3rd: 10 Nov 2025

From 27/06/2021 - To 27/06/2022

4th: 10 Nov 2025

From 27/06/2022 - To 27/06/2023

5th: 10 Nov 2025

From 27/06/2023 - To 27/06/2024

6th: 10 Nov 2025

From 27/06/2024 - To 27/06/2025

7th: 10 Nov 2025

From 27/06/2025 - To 27/06/2026

8th: 10 Nov 2025

From 27/06/2026 - To 27/06/2027