Abstract: An image decoding method according to the present invention may comprise the steps of: decoding data indicating whether illumination compensation is to be carried out for the current block; determining an illumination compensation parameter for the current block if the data indicates illumination compensation is to be carried out for the current block; acquiring a prediction block by carrying out inter-prediction for the current block; and carrying out illumination compensation on the prediction block by means of the illumination compensation parameter.
1. A method for decoding a video, the method comprising: obtaining (S920) a first prediction block of a current block based on an L0 motion vector and an L0 reference picture of the current block; obtaining (S920) a second prediction block of the current block based on an L1 motion vector and an L1 reference picture of the current block; obtaining (S920) a bi-predicted block of the current block based on a weighted sum operation of the first prediction block and the second prediction block; and reconstructing the current block based on the bi-predicted block, wherein if a size of the current block does not satisfy a pre-defined condition, a first weight applied to the first prediction block and a second weight applied to the second prediction block are determined to be the same, wherein if the size of the current block satisfies the pre-defined condition, the first weight and the second weight are determined based on index information specifying one among a plurality of weight candidates, and wherein a number of the weight candidates is varied depending on temporal directions of the L0 reference picture and the L1 reference picture.
2. The method of claim 1, wherein the first weight applied to the first prediction block is derived by subtracting the second weight from a constant value, and wherein the second weight applied to the second prediction block is determined to be a weight candidate specified by the index information.
3. The method of claim 1, wherein the number of weight candidates is different between when both the temporal directions are subsequent to or previous to a current picture and when one of the temporal directions is subsequent to the current picture while the other is previous to the current picture.
4. The method of claim 1, wherein the obtaining a bi-predicted block of the current block comprise: determining a weight candidate set for the current block based on the temporal directions of the L0 reference picture and the L1 reference picture, and determining the first weight applied to the first prediction block and the second weight applied to the second prediction block using the index information specifying one among the weight candidate set.
5. A method for encoding a video, the method comprising: obtaining (S920) a first prediction block of a current block based on an L0 motion vector an L0 reference picture of the current block; obtaining (S920) a second prediction block of the current block based on an L1 motion vector an L1 reference picture of the current block; obtaining (S920) a bi-predicted block of the current block based on a weighted sum operation of the first prediction block and the second prediction block; and obtaining a residual block by subtracting the bi-predicted block from an original block, wherein if a size of the current block does not satisfy a pre-defined condition, a first weight applied to the first prediction block and a second weight applied to the second prediction block are determined to be the same, wherein if the size of the current block satisfies the pre-defined condition, the first weight and the second weight are determined as one among a plurality of weight candidates and index information is encoded to specify the first weight and the second weight, and wherein a number of the weight candidates is varied depending on temporal directions of the L0 reference picture and the L1 reference picture.
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, the demand for high-resolution and high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images is increasing in various application fields. As the image data becomes higher resolution and higher quality, the amount of data relatively increases compared to the existing image data. 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 with image compression technology, intra-picture prediction technology that predicts pixel values included in the current picture using pixel information in the current picture, Various techniques exist, such as entropy encoding technology in which a short code is assigned to a value with a high frequency of occurrence and a long code is assigned to a value with a low frequency of occurrence.
[4]
Meanwhile, as the demand for high-resolution images increases, the demand for stereoscopic image content as a new image service is also increasing. A video compression technique for effectively providing high-resolution and ultra-high-resolution stereoscopic image content is being discussed.
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 inter prediction on an encoding/decoding target block when encoding/decoding a video signal.
[6]
An object of the present invention is to provide a method and apparatus for compensating for a prediction sample in consideration of a brightness change between images in encoding/decoding a video signal.
[7]
An object of the present invention is to provide a method and apparatus capable of efficiently encoding/decoding a lighting compensation parameter in encoding/decoding a video signal.
[8]
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 art to which the present invention belongs from the description below. will be able
means of solving the problem
[9]
A video signal decoding method and apparatus according to the present invention decodes information indicating whether lighting compensation is performed on a current block, and when the information indicates that lighting compensation is performed on the current block, illumination of the current block A compensation parameter may be determined, inter prediction may be performed on the current block to obtain a prediction block, and illumination compensation may be performed on the prediction block using the illumination compensation parameter.
[10]
A video signal encoding method and apparatus according to the present invention perform inter prediction on a current block to obtain a prediction block, determine a lighting compensation parameter for the current block, and use the lighting compensation parameter to predict the prediction It is possible to perform lighting compensation on a block, and encode information indicating whether lighting compensation is performed on the current block.
[11]
In the video signal encoding/decoding method and apparatus according to the present invention, the illumination compensation parameter is based on a first template area adjacent to the current block and a second template area adjacent to a reference block included in a reference picture of the current block. can be induced to
[12]
In the method and apparatus for encoding/decoding a video signal according to the present invention, when an unavailable sample is included in the second template region, the unusable sample may be replaced with an available sample.
[13]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the available sample may be included in the second template region or the reference block.
[14]
In the method and apparatus for encoding/decoding a video signal according to the present invention, when an unavailable sample is included in the second template region, the unavailable sample may be replaced with an interpolation value of a plurality of available samples.
[15]
In the video signal encoding/decoding method and apparatus according to the present invention, obtaining the prediction block includes obtaining a first prediction block based on a first reference picture of the current block, and obtaining a second reference picture of the current block It may include obtaining a second prediction block based on .
[16]
In the video signal encoding/decoding method and apparatus according to the present invention, the illumination compensation may be performed on at least one of the first prediction block and the second prediction block.
[17]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the prediction block may be obtained by a weighted sum of the first prediction block and the second prediction block. In this case, a weight applied to the first prediction block and the second prediction block may be determined by a weighted prediction parameter of the current block.
[18]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the weighted prediction parameter may be determined based on the illumination compensation parameter.
[19]
In the method and apparatus for encoding/decoding a video signal according to the present invention, the prediction block may be obtained by a weighted sum of the first prediction block and the second prediction block. In this case, the weight applied to any one of the first reference block and the second reference block is determined based on the illumination compensation parameter, and the weight applied to the other one of the first reference block and the second reference block is It may be determined based on the weighted prediction parameter of the current block.
[20]
The features briefly summarized above with respect to the invention are merely exemplary aspects of the detailed description of the invention that follows, and do not limit the scope of the invention.
Effects of the Invention
[21]
According to the present invention, inter prediction can be efficiently performed on an encoding/decoding target block.
[22]
According to the present invention, a prediction sample can be compensated in consideration of a change in brightness between images.
[23]
According to the present invention, it is possible to efficiently encode/decode the illumination compensation parameter.
[24]
The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.
Brief description of the drawing
[25]
1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
[26]
2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
[27]
3 illustrates an example of hierarchically dividing a coding block based on a tree structure as an embodiment to which the present invention is applied.
[28]
4 is a diagram illustrating a partition type in which binary tree-based partitioning is allowed as an embodiment to which the present invention is applied.
[29]
5 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed as an embodiment to which the present invention is applied.
[30]
6 is a diagram for explaining an example in which information related to the allowed number of binary tree divisions is encoded/decoded as an embodiment to which the present invention is applied.
[31]
7 is a diagram illustrating a partition mode applicable to a coding block as an embodiment to which the present invention is applied.
[32]
8 is a flowchart illustrating a process of acquiring a residual sample according to an embodiment to which the present invention is applied.
[33]
9 is a flowchart illustrating an inter prediction method according to an embodiment to which the present invention is applied.
[34]
10 is a diagram illustrating a process of deriving motion information of a current block when a merge mode is applied to the current block.
[35]
11 is a diagram illustrating a process of deriving motion information of the current block when the AMVP mode is applied to the current block.
[36]
12 is a flowchart of a bidirectional weighted prediction method according to an embodiment of the present invention.
[37]
13 is a diagram for explaining the principle of bidirectional weighted prediction.
[38]
14 is a diagram illustrating a scan order between neighboring blocks.
[39]
15 is a flowchart of a lighting compensation prediction method according to the present invention.
[40]
16 is a flowchart of a bidirectional weighted prediction method based on lighting compensation.
[41]
17 is a diagram illustrating an example of performing bidirectional weighted prediction using a reference block to which illumination compensation is applied.
Modes for carrying out the invention
[42]
Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.
[43]
Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. 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 also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.
[44]
When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.
[45]
The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.
[46]
Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same reference numerals are used for the same components in the drawings, and repeated descriptions of the same components are omitted.
[47]
[48]
1 is a block diagram illustrating an image encoding apparatus according to an embodiment of the present invention.
[49]
Referring to FIG. 1 , the image encoding apparatus 100 includes a picture division unit 110 , prediction units 120 and 125 , a transform unit 130 , a quantization unit 135 , a rearrangement unit 160 , and an entropy encoding unit ( 165 ), an inverse quantization unit 140 , an inverse transform unit 145 , a filter unit 150 , and a memory 155 .
[50]
Each of the constituent units shown in FIG. 1 is independently illustrated to represent different characteristic functions in the image encoding apparatus, and does not mean that each constituent unit is composed of separate hardware or one software constituent unit. That is, each component is listed as each component for convenience of description, and at least two components of each component are combined to form one component, or one component can be divided into a plurality of components to perform a function, and each of these components Integrated embodiments and separate embodiments of components are also included in the scope of the present invention without departing from the essence of the present invention.
[51]
In addition, some of the components are not essential components for performing essential functions in the present invention, but may be optional components for merely improving performance. The present invention can be implemented by including only essential components to implement the essence of the present invention, except for 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.
[52]
The picture divider 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, prediction unit, and transformation unit based on a predetermined criterion (eg, a cost function). can be selected to encode the picture.
[53]
For example, one picture may be divided into a plurality of coding units. In order to split a coding unit in a picture, a recursive tree structure such as a quad tree structure can be used. A coding in which one image or a largest coding unit is used as a root and is divided into other coding units. A unit may be divided having as many child nodes as the number of divided coding units. A coding unit that is no longer split according to certain restrictions becomes a leaf node. That is, if 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.
[54]
Hereinafter, in an embodiment of the present invention, a coding unit may be used as a unit for performing encoding or may be used as a meaning for a unit for performing decoding.
[55]
A prediction unit may be split in the form of at least one square or rectangle of the same size within one coding unit, and one prediction unit among the split prediction units within one coding unit is a prediction of another. It may be divided to have a shape and/or size different from that of the unit.
[56]
When a prediction unit for performing intra prediction based on a coding unit is generated, if it is not the minimum coding unit, intra prediction may be performed without dividing the prediction unit into a plurality of prediction units NxN.
[57]
The prediction units 120 and 125 may include an inter prediction unit 120 performing inter prediction and an intra prediction unit 125 performing intra prediction. Whether to use inter prediction or to perform intra prediction for a prediction unit may be determined, and specific information (eg, intra prediction mode, motion vector, reference picture, etc.) according to each prediction method may be determined. In this case, a processing unit in which prediction is performed and a processing unit in which a prediction method and specific content are determined may be different. For example, a prediction method and a prediction mode may be 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 . Also, prediction mode information, motion vector information, etc. used for prediction may be encoded by the entropy encoder 165 together with a residual value and transmitted to a decoder. When a specific encoding mode is used, the original block may be encoded and transmitted to the decoder without generating the prediction block through the predictors 120 and 125 .
[58]
The inter prediction unit 120 may predict a prediction unit based on information on at least one of a picture before or after a picture of the current picture, and in some cases, prediction based on information of a partial region in the current picture for which encoding has been completed Units can also be predicted. The inter prediction unit 120 may include a reference picture interpolator, a motion prediction unit, and a motion compensator.
[59]
The reference picture interpolator may receive reference picture information from the memory 155 and generate pixel information of integer pixels or less in the reference picture. In the case of luminance pixels, a DCT-based 8-tap interpolation filter in which filter coefficients are different to generate pixel information of integer pixels or less in units of 1/4 pixels may be used. In the case of a color difference signal, a DCT-based 4-tap interpolation filter in which filter coefficients are different to generate pixel information of integer pixels or less in units of 1/8 pixels may be used.
[60]
The motion prediction unit may perform motion prediction based on the reference picture interpolated by the reference picture interpolator. As a method for calculating the motion vector, various methods such as Full search-based Block Matching Algorithm (FBMA), Three Step Search (TSS), and New Three-Step Search Algorithm (NTS) may be used. The motion vector may have a motion vector value of 1/2 or 1/4 pixel unit based on the interpolated pixel. The motion prediction unit may predict the current prediction unit by using a different motion prediction method. Various methods, such as a skip method, a merge method, an AMVP (Advanced Motion Vector Prediction) method, an intra block copy method, etc., may be used as the motion prediction method.
[61]
The intra prediction unit 125 may generate a prediction unit based on reference pixel information around the current block, which is pixel information in the current picture. When a neighboring block of the current prediction unit is a block on which inter prediction is performed, and thus a reference pixel is a pixel on which inter prediction is performed, a reference pixel included in the block on which inter prediction is performed is a reference pixel of the block on which intra prediction is performed. information can be used instead. That is, when the reference pixel is not available, the unavailable reference pixel information may be replaced with at least one reference pixel among the available reference pixels.
[62]
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 used for predicting luminance information or predicted luminance signal information may be utilized to predict chrominance information.
[63]
When intra prediction is performed, if the size of the prediction unit and the size of the transformation unit are the same, intra prediction for the prediction unit based on the pixel present at the left side, the pixel present at the upper left corner, and the pixel present at the upper side of the prediction unit can be performed. However, when the size of the prediction unit is different from the size of the transformation unit when intra prediction is performed, intra prediction may be performed using a reference pixel based on the transformation unit. In addition, intra prediction using NxN splitting may be used only for the smallest coding unit.
[64]
The intra prediction method may generate a prediction block after applying an adaptive intra smoothing (AIS) filter to a reference pixel according to a prediction mode. The type of AIS filter applied to the reference pixel 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 the prediction mode of the current prediction unit is predicted using mode information predicted from the neighboring prediction unit, if the intra prediction mode of the current prediction unit and the neighboring prediction unit are the same, the current prediction unit and the neighboring prediction unit are used using predetermined flag information It is possible to transmit information indicating that the prediction modes of , and if the prediction modes of the current prediction unit and the neighboring prediction units are different from each other, entropy encoding may be performed to encode prediction mode information of the current block.
[65]
In addition, a residual block including residual information that is a difference value from the original block of the prediction unit and the prediction unit in which prediction is performed based on the prediction unit generated by the prediction units 120 and 125 may be generated. The generated residual block may be input to the transform unit 130 .
[66]
The transform unit 130 converts the original block and the residual block including residual information of the prediction units generated by the prediction units 120 and 125 to DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT and It can be converted 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.
[67]
The quantization unit 135 may quantize values transformed in the frequency domain by the transform unit 130 . The quantization coefficient may vary according to blocks or the importance of an image. The value calculated by the quantization unit 135 may be provided to the inverse quantization unit 140 and the rearrangement unit 160 .
[68]
The rearrangement unit 160 may rearrange the coefficient values on the quantized residual values.
[69]
The rearranging unit 160 may change the two-dimensional block form coefficient into a one-dimensional vector form through a coefficient scanning method. For example, the rearranging unit 160 may scan from DC coefficients to coefficients in a high frequency region using a zig-zag scan method and may change it into a one-dimensional vector form. A vertical scan for scanning a two-dimensional block shape coefficient in a column direction and a horizontal scan for scanning a two-dimensional block shape coefficient in a row direction may be used instead of the zig-zag scan according to the size of the transform unit and the intra prediction mode. That is, it may be determined whether any of the zig-zag scan, the vertical scan, and the horizontal scan is used according to the size of the transform unit and the intra prediction mode.
[70]
The entropy encoding unit 165 may perform entropy encoding based on the values calculated by the reordering unit 160 . For entropy encoding, various encoding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be used.
[71]
The entropy encoding unit 165 receives the residual value coefficient information and block type information, prediction mode information, division unit information, prediction unit information and transmission unit information, motion of the coding unit from the reordering unit 160 and the prediction units 120 and 125 . Various information such as vector information, reference frame information, interpolation information of a block, and filtering information may be encoded.
[72]
The entropy encoder 165 may entropy-encode the coefficient values of the coding units input from the reordering unit 160 .
[73]
The inverse quantizer 140 and the inverse transform unit 145 inversely quantize the values quantized by the quantizer 135 and inversely transform the values transformed by the transform unit 130 . The residual values generated by the inverse quantizer 140 and the inverse transform unit 145 are combined with the prediction units predicted through the motion estimation unit, the motion compensator, and the intra prediction unit included in the prediction units 120 and 125 and restored. You can create a Reconstructed Block.
[74]
The filter unit 150 may include at least one of a deblocking filter, an offset correcting unit, and an adaptive loop filter (ALF).
[75]
The deblocking filter may 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 a deblocking filter is applied to a block, a strong filter or a weak filter can be applied according to the required deblocking filtering strength. In addition, in applying the deblocking filter, horizontal filtering and vertical filtering may be concurrently processed when performing vertical filtering and horizontal filtering.
[76]
The offset correcting unit may correct an offset from the original image in units of pixels with respect to the image on which the deblocking has been performed. In order to perform offset correction on a specific picture, a method of dividing pixels included in an image into a certain number of regions, determining the region to be offset and applying the offset to the region, or taking edge information of each pixel into account can be used to apply
[77]
Adaptive loop filtering (ALF) may be performed based on a value obtained by comparing the filtered reconstructed image and the original image. After dividing pixels included in an image into a predetermined group, one filter to be applied to the corresponding group is determined, and filtering can be performed differentially for each group. As for information on whether to apply ALF, the luminance signal may be transmitted for each coding unit (CU), and the shape and filter coefficients of the ALF filter to be applied may vary according to each block. Also, the ALF filter of the same type (fixed type) may be applied regardless of the characteristics of the block to be applied.
[78]
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 predictors 120 and 125 when inter prediction is performed.
[79]
[80]
2 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
[81]
Referring to FIG. 2 , the image decoder 200 includes an entropy decoding unit 210, a reordering 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.
[82]
When an image bitstream is input from an image encoder, the input bitstream may be decoded by a procedure opposite to that of the image encoder.
[83]
The entropy decoding unit 210 may perform entropy decoding in a procedure opposite to that performed by the entropy encoding unit of the 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 to the method performed by the image encoder.
[84]
The entropy decoder 210 may decode information related to intra prediction and inter prediction performed by the encoder.
[85]
The reordering unit 215 may perform rearrangement based on a method of rearranging the entropy-decoded bitstream by the entropy decoding unit 210 by the encoder. Coefficients expressed in a one-dimensional vector form may be restored and rearranged in a two-dimensional block form. The reordering unit 215 may receive information related to coefficient scanning performed by the encoder and perform the reordering by performing a reverse scanning method based on the scanning order performed by the corresponding encoder.
[86]
The inverse quantization unit 220 may perform inverse quantization based on the quantization parameter provided by the encoder and the reordered coefficient values of the blocks.
[87]
The inverse transform unit 225 may perform inverse transforms, ie, inverse DCT, inverse DST, and inverse KLT, on the transforms performed by the transform unit, ie, DCT, DST, and KLT, on the quantization result performed by the image encoder. Inverse transform may be performed based on a transmission unit determined by the 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.
[88]
The prediction units 230 and 235 may generate a prediction block based on the prediction block generation related information provided from the entropy decoding unit 210 and previously decoded block or picture information provided from the memory 245 .
[89]
As described above, when intra prediction is performed in the same manner as in the operation of the image encoder, when the size of the prediction unit and the size of the transformation unit are the same, the pixel present at the left side of the prediction unit, the pixel present at the upper left corner, and the upper side exist Intra prediction is performed on the prediction unit based on the pixel can In addition, intra prediction using NxN splitting may be used only for the smallest coding unit.
[90]
The prediction units 230 and 235 may include a prediction unit determiner, an inter prediction unit, and an intra prediction unit. The prediction unit determiner receives various information such as prediction unit information input from the entropy decoder 210, prediction mode information of the intra prediction method, and motion prediction related information of the inter prediction method, and divides the prediction unit from the current coding unit, and predicts It may be determined whether the unit performs inter prediction or intra prediction. The inter prediction unit 230 uses information required for inter prediction of the current prediction unit provided from the image encoder, and predicts the current based on information included in at least one picture before or after the current picture including the current prediction unit. Inter prediction may be performed on a unit. Alternatively, inter prediction may be performed based on information of a pre-restored partial region in the current picture including the current prediction unit.
[91]
In order to perform inter prediction, a motion prediction method of a prediction unit included in a corresponding coding unit based on a coding unit is selected from among skip mode, merge mode, AMVP mode, and intra block copy mode. You can decide which way to go.
[92]
The intra prediction unit 235 may generate a prediction block based on pixel information in the current picture. When the prediction unit is a prediction unit on which intra prediction is performed, intra prediction may be performed based on intra prediction mode information of the prediction unit provided by the image encoder. The intra prediction unit 235 may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolator, and a DC filter. The AIS filter is a part that performs filtering on the reference pixel of the current block, and may be applied by determining whether to apply the filter according to the prediction mode of the current prediction unit. AIS filtering may be performed on the reference pixel of the current block by using the prediction mode and AIS filter information of the prediction unit provided by the image 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.
[93]
When the prediction mode of the prediction unit is a prediction unit that performs intra prediction based on a pixel value obtained by interpolating the 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 that generates a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated. The DC filter may generate the prediction block through filtering when the prediction mode of the current block is the DC mode.
[94]
The reconstructed block or picture may be provided to the filter unit 240 . The filter unit 240 may include a deblocking filter, an offset correcting unit, and an ALF.
[95]
Information on whether a deblocking filter is applied to a corresponding block or picture and information on whether a strong filter or a weak filter is applied when the deblocking filter is applied may be provided from the video encoder. The deblocking filter of the image decoder may receive deblocking filter-related information provided from the image encoder, and the image decoder may perform deblocking filtering on the corresponding block.
[96]
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.
[97]
ALF may be applied to a coding unit based on information on whether ALF is applied, ALF coefficient information, etc. provided from the encoder. Such ALF information may be provided by being included in a specific parameter set.
[98]
The memory 245 may store the reconstructed picture or block to be used as a reference picture or reference block, and may also provide the reconstructed picture to an output unit.
[99]
As described above, hereinafter, in the embodiment of the present invention, a coding unit is used as a term for a coding unit for convenience of description, but it may also be a unit for performing decoding as well as coding.
[100]
In addition, the current block denotes an encoding/decoding target block, and depending on the encoding/decoding step, a coding tree block (or coding tree unit), a coding block (or a coding unit), a transform block (or a transform unit), or a prediction block (or prediction unit) and the like.
[101]
[102]
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. A coding tree unit may be defined as a coding unit having the largest size allowed in a sequence or a slice. 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, a slice header, or the like. A coding tree unit may be divided into smaller-sized partitions. In this case, when a partition generated by dividing a coding tree unit is referred to as a depth 1, a partition generated by dividing a partition having a depth 1 may be defined as a 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.
[103]
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 divided recursively or divided into basic units for performing prediction, quantization, transform, in-loop filtering, or the like. For example, a partition of an arbitrary size generated as a coding unit is divided may be defined as a coding unit or a transform unit or a prediction unit that is a basic unit for performing prediction, quantization, transform, or in-loop filtering.
[104]
Partitioning of the coding tree unit or the coding unit may be performed based on at least one of a vertical line and a horizontal line. In addition, the number of vertical or horizontal lines partitioning the coding tree unit or coding unit may be at least one. For example, by using one vertical line or one horizontal line, the coding tree unit or coding unit is divided into two partitions, or by using two vertical lines or two horizontal lines, the coding tree unit or the coding unit is divided into three partitions. can be divided Alternatively, by using one vertical line and one horizontal line, the coding tree unit or coding unit may be divided into four partitions having a length and a width of 1/2.
[105]
When a coding tree unit or a 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 or different sizes. Alternatively, one partition may have a size different from that of the other partitions.
[106]
In the embodiments described below, it is assumed that a coding tree unit or a coding unit is divided into a quad tree or binary tree structure. However, it is also possible to divide the coding tree unit or coding unit using a larger number of vertical lines or a larger number of horizontal lines.
[107]
3 illustrates an example of hierarchically dividing a coding block based on a tree structure as an embodiment to which the present invention is applied.
[108]
The input image signal is decoded in units of a predetermined block, and a basic unit for decoding the input image signal as described above is called a coding block. A coding block may be a unit for performing intra/inter prediction, transformation, and quantization. Also, a prediction mode (eg, an intra prediction mode or an inter prediction mode) may be 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 any size in the range of 8x8 to 64x64, and may be a square or non-square block having a size of 128x128, 256x256 or more.
[109]
Specifically, the coding block may be hierarchically divided based on at least one of a quad tree and a binary tree. Here, the quad-tree-based splitting may refer to a method in which a 2Nx2N coding block is split into four NxN coding blocks, and the binary tree-based splitting may refer to a method in which one coding block is split into two coding blocks. Even if binary tree-based division is performed, a square coding block may exist at a lower depth.
[110]
Binary tree-based partitioning may be performed symmetrically or asymmetrically. The coding block divided based on the binary tree may be a square block or a non-square block such as a rectangle. As an example, the partition type in which binary tree-based partitioning is allowed is 2NxN (horizontal non-square coding unit) or Nx2N (vertical non-square coding unit), which is symmetric, as in the example shown in FIG. 4 , asymmetric It may include at least one of asymmetric nLx2N, nRx2N, 2NxnU, or 2NxnD.
[111]
In binary tree-based partitioning, either one of a symmetrical or an asymmetrical partition may be allowed limitedly. In this case, configuring the coding tree unit as a square block may correspond to quad tree CU partitioning, and configuring the coding tree unit as a symmetric non-square block may correspond to binary tree partitioning. Configuring the coding tree unit into a square block and a symmetric non-square block may correspond to quad and binary tree CU partitioning.
[112]
Binary tree-based partitioning may be performed on a coding block for which quad-tree-based partitioning is no longer performed. The quad-tree-based partitioning may not be performed any more for the coding block partitioned on the binary tree-based basis.
[113]
In addition, the division of the lower depth may be determined depending on the division type of the upper depth. For example, when binary tree-based splitting is permitted in two or more depths, only binary tree-based splitting in the same form as that of binary tree splitting of an upper depth may be allowed in a lower depth. For example, when binary tree-based division in the form of 2NxN is performed at the upper depth, the division based on the binary tree of the form of 2NxN may be performed also at the lower depth. Alternatively, when the binary tree-based division in the Nx2N form is performed at the upper depth, the Nx2N binary tree-based segmentation may be allowed at the lower depth as well.
[114]
Conversely, in the lower depth, it is also possible to allow only the binary tree-based split in a form different from that of the upper depth binary tree.
[115]
For a sequence, slice, coding tree unit or coding unit, it may be limited to use only a specific type of binary tree-based partitioning. As an example, it may be limited to allow only binary tree-based splitting in the form of 2NxN or Nx2N for the coding tree unit. The allowed partition type may be predefined in the encoder or decoder, or information about the allowed or disallowed partition type may be encoded and signaled through a bitstream.
[116]
5 is a diagram illustrating an example in which only a specific type of binary tree-based partitioning is allowed. Fig. 5(a) shows an example in which only Nx2N binary tree-based partitioning is allowed, and Fig. 5(b) shows a limited example in which only 2NxN binary tree-based partitioning is allowed. Information indicating quad-tree-based partitioning to implement the quad-tree or binary tree-based adaptive partitioning, information about the size/depth of a coding block allowing quad-tree-based partitioning, and binary tree-based partitioning information, information on the size/depth of the coding block in which binary tree-based division is allowed, information on the size/depth of the coding block in which binary tree-based division is not allowed, or whether the binary tree-based division is in the vertical direction; Information on whether it is in a horizontal direction and the like may be used.
[117]
In addition, for a coding tree unit or a predetermined coding unit, the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths at which binary tree division is allowed, etc. may be obtained. The information may be encoded in a coding tree unit or a coding unit unit and transmitted to a decoder through a bitstream.
[118]
For example, through the bitstream, a syntax 'max_binary_depth_idx_minus1' indicating the maximum depth at which binary tree splitting is allowed may be encoded/decoded through the bitstream. In this case, max_binary_depth_idx_minus1+1 may indicate the maximum depth allowed for binary tree splitting.
[119]
Referring to the example illustrated in FIG. 6 , in FIG. 6 , it is illustrated that binary tree splitting 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 (twice) the binary tree division within the coding tree unit is performed, information indicating the maximum depth (depth 3) allowed for binary tree division within the coding tree unit, or binary tree division within the coding tree unit At least one piece of information indicating the allowed number of depths (two, depth 2, and depth 3) may be encoded/decoded through a bitstream.
[120]
As another example, at least one of the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths where binary tree division is allowed may be obtained for each sequence and slice. For example, the information may be encoded in units of sequences, pictures, or slices and transmitted through a bitstream. Accordingly, at least one of the number of binary tree splitting times, the maximum depth allowed for binary tree splitting, or the number of depths allowed for binary tree splitting of the first slice and the second slice may be different. For example, in the first slice, binary tree splitting may be allowed at only one depth, whereas in the second slice, binary tree splitting may be allowed at two depths.
[121]
As another example, according to the temporal level identifier (TemporalID) of a slice or picture, at least one of the number of times binary tree division is allowed, the depth at which binary tree division is allowed, or the number of depths at which binary tree division is allowed may be set differently. have. Here, the temporal level identifier TemporalID is for identifying each of a plurality of layers of an image having scalability of at least one of a view, a spatial, a temporal, and a quality. will be.
[122]
3 , a 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 division depth of the second coding block may be increased to k+1.
[123]
The second coding block 310 having a division depth of k+1 may be divided into a plurality of third coding blocks having a division depth of k+2. The division of the second coding block 310 may be performed by selectively using either a quote tree or a binary tree according to a division method. Here, the division method may be determined based on at least one of information indicating division based on a quad tree or information indicating division based on a binary tree.
[124]
When the second coding block 310 is divided based on a quote 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 The division depth may 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 a non-square block in which any one of a width and a height of the second coding block is half the size, and the division depth may be increased to k+2. The second coding block may be determined as a horizontal or vertical non-square block according to a division direction, and the division direction may be determined based on information regarding whether binary tree-based division is a vertical direction or a horizontal direction.
[125]
Meanwhile, the second coding block 310 may be determined as an end coding block that is not further 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.
[126]
The third coding block 310a may be determined as an end coding block similarly to the division of the second coding block 310, or may be additionally divided based on a quad tree or a binary tree.
[127]
On the other hand, the third coding block 310b divided based on the binary tree may be further divided into the coding block 310b-2 in the vertical direction or the coding block 310b-3 in the horizontal direction based on the binary tree. The division depth of a block may be increased to k+3. Alternatively, the third coding block 310b may be determined as the end coding block 310b-1 that is not further divided based on the binary tree, and in this case, the corresponding coding block 310b-1 is to be used as a prediction block or a transform block. can However, in the above-described partitioning process, information on the size/depth of a coding block in which quad-tree-based partitioning is allowed, information on the size/depth of a coding block in which binary tree-based partitioning is allowed, or binary tree-based partitioning is allowed. It may be limitedly performed based on at least one of information on the size/depth of the coding block that is not.
[128]
The size of the coding block may be limited to a predetermined number, or the size of the coding block within a predetermined unit may have a fixed value. As an example, the size of a coding block in a sequence or a size of a coding block in a picture may be limited to 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.
[129]
As a result of the division based on the quad tree and the binary tree, the coding unit may have a square shape or a rectangle of any size.
[130]
[131]
The coding block is coded using at least one of a skip mode, an intra prediction, an inter prediction, or a skip method. When the coding block is determined, a prediction block may be determined through prediction division of the coding block. Predictive division of a coding block may be performed by a partition mode (Part_mode) indicating a division form of the coding block. The size or shape of the prediction block may be determined according to the partition mode of the coding block. As an example, the size of the prediction block determined according to the partition mode may have a value equal to or smaller than the size of the coding block.
[132]
7 is a diagram illustrating a partition mode that can be applied to a coding block when the coding block is encoded by inter prediction.
[133]
When the coding block is encoded by inter prediction, as in the example shown in FIG. 7 , any one of eight partition modes may be applied to the coding block.
[134]
When the coding block is encoded by intra prediction, a partition mode PART_2Nx2N or PART_NxN may be applied to the coding block.
[135]
PART_NxN may be applied when the coding block has a minimum size. Here, the minimum size of the coding block may be predefined in the encoder and the decoder. Alternatively, information about the minimum size of the coding block may be signaled through a bitstream. As an example, the minimum size of the coding block is signaled through a slice header, and accordingly, the minimum size of the coding block may be defined for each slice.
[136]
In general, the size of the prediction block may range from 64x64 to 4x4. However, when the coding block is encoded by inter prediction, the prediction block may not have a size of 4x4 in order to reduce memory bandwidth when motion compensation is performed.
[137]
[138]
8 is a flowchart illustrating a process of acquiring a residual sample according to an embodiment to which the present invention is applied.
[139]
First, a residual coefficient of the current block may be obtained ( S810 ). The decoder may obtain residual coefficients through a coefficient scanning method. For example, the decoder may perform coefficient scanning using a zig-zag scan, a vertical scan, or a horizontal scan, and as a result, may obtain a residual coefficient in the form of a 2D block.
[140]
Inverse quantization may be performed on the residual coefficients of the current block (S820).
[141]
Inverse transform may be selectively performed according to whether to skip the inverse transform on the inverse quantized residual coefficient of the current block (S830). Specifically, the decoder may determine whether to skip the inverse transform in at least one of a horizontal direction and a vertical direction of the current block. When it is determined to apply the inverse transform to at least one of the vertical or horizontal direction of the current block, the residual sample of the current block may be obtained by inverse transforming the inverse quantized residual coefficient of the current block. Here, the inverse transform may be performed using at least one of DCT, DST, and KLT.
[142]
When the inverse transform is skipped in both the horizontal and vertical directions of the current block, the inverse transform is not performed in the horizontal and vertical directions of the current block. In this case, the residual sample of the current block may be obtained by scaling the dequantized residual coefficient to a preset value.
[143]
Omitting the inverse transform in the horizontal direction means that the inverse transform is not performed in the horizontal direction and the inverse transform is performed in the vertical direction. In this case, scaling may be performed in the horizontal direction.
[144]
Omitting the inverse transform in the vertical direction means that the inverse transform is not performed in the vertical direction and the inverse transform is performed in the horizontal direction. In this case, scaling may be performed in the vertical direction.
[145]
Whether the inverse transform skip technique can be used for the current block may be determined according to the partition type of the current block. As an example, when the current block is generated through binary tree-based division, it is possible to restrict the use of the inverse transform skip technique for the current block. Accordingly, when the current block is generated through binary tree-based division, the residual sample of the current block may be obtained by inversely transforming the current block. In addition, when the current block is generated through binary tree-based division, encoding/decoding of information indicating whether inverse transform is skipped (eg, transform_skip_flag) may be omitted.
[146]
Alternatively, when the current block is generated through binary tree-based division, the inverse transform skip technique may be restricted in at least one of a horizontal direction and a vertical direction. Here, the direction in which the inverse transform skip technique is restricted may be determined based on information decoded from the bitstream or adaptively determined based on at least one of the size of the current block, the shape of the current block, or the intra prediction mode of the current block. have.
[147]
For example, when the current block is a non-square block having a width greater than a height, the inverse transform skip technique may be allowed only in the vertical direction, and use of the inverse transform skip technique may be restricted in the horizontal direction. That is, when the current block is 2NxN, inverse transform may be performed in a horizontal direction of the current block, and inverse transform may be selectively performed in a vertical direction.
[148]
On the other hand, when the height of the current block is a non-square block having a height greater than the width, the inverse transform skip technique may be allowed only in the horizontal direction, and the use of the inverse transform skip technique may be restricted in the vertical direction. That is, when the current block is Nx2N, inverse transform may be performed in a vertical direction of the current block, and inverse transform may be selectively performed in a horizontal direction.
[149]
Contrary to the above example, when the current block is a non-square block with a width greater than the height, the inverse transform skip technique is allowed only in the horizontal direction. A skip technique may be allowed.
[150]
Information indicating whether to skip the inverse transform for the horizontal direction or information indicating whether to skip the inverse transform for the vertical direction may be signaled through a bitstream. As an example, information indicating whether to skip the inverse transform for the horizontal direction is a 1-bit flag, 'hor_transform_skip_flag', and the information indicating whether to skip the inverse transform for the vertical direction is a 1-bit flag, 'ver_transform_skip_flag' ' can be The encoder may encode at least one of 'hor_transform_skip_flag' and 'ver_transform_skip_flag' according to the shape of the current block. Also, the decoder may determine whether the inverse transform in the horizontal direction or the vertical direction is skipped using at least one of 'hor_transform_skip_flag' and 'ver_transform_skip_flag'.
I/We Claim:
1. A method for decoding a video, the method comprising:
obtaining (S920) a first prediction block of a current block based on an L0
motion vector and an L0 reference picture of the current block;
obtaining (S920) a second prediction block of the current block based on
an L1 motion vector and an L1 reference picture of the current block;
obtaining (S920) a bi-predicted block of the current block based on a
weighted sum operation of the first prediction block and the second prediction
block; and
reconstructing the current block based on the bi-predicted block,
wherein if a size of the current block does not satisfy a pre-defined
condition, a first weight applied to the first prediction block and a second weight
applied to the second prediction block are determined to be the same,
wherein if the size of the current block satisfies the pre-defined condition,
the first weight and the second weight are determined based on index information
specifying one among a plurality of weight candidates, and
wherein a number of the weight candidates is varied depending on temporal
directions of the L0 reference picture and the L1 reference picture.
2. The method of claim 1, wherein the first weight applied to the first
prediction block is derived by subtracting the second weight from a constant value,
and
wherein the second weight applied to the second prediction block is
determined to be a weight candidate specified by the index information.
3. The method of claim 1, wherein the number of weight candidates is
different between when both the temporal directions are subsequent to or previous
to a current picture and when one of the temporal directions is subsequent to the
current picture while the other is previous to the current picture.
4. The method of claim 1, wherein the obtaining a bi-predicted block of the
current block comprise:
determining a weight candidate set for the current block based on the
temporal directions of the L0 reference picture and the L1 reference picture, and
determining the first weight applied to the first prediction block and the
second weight applied to the second prediction block using the index information
specifying one among the weight candidate set.
5. A method for encoding a video, the method comprising:
obtaining (S920) a first prediction block of a current block based on an L0
motion vector an L0 reference picture of the current block;
obtaining (S920) a second prediction block of the current block based on
an L1 motion vector an L1 reference picture of the current block;
obtaining (S920) a bi-predicted block of the current block based on a
weighted sum operation of the first prediction block and the second prediction
block; and
obtaining a residual block by subtracting the bi-predicted block from an
original block,
wherein if a size of the current block does not satisfy a pre-defined
condition, a first weight applied to the first prediction block and a second weight
applied to the second prediction block are determined to be the same,
wherein if the size of the current block satisfies the pre-defined condition,
the first weight and the second weight are determined as one among a plurality of
weight candidates and index information is encoded to specify the first weight and
the second weight, and
wherein a number of the weight candidates is varied depending on temporal
directions of the L0 reference picture and the L1 reference picture.
| # | Name | Date |
|---|---|---|
| 1 | 202118036119-STATEMENT OF UNDERTAKING (FORM 3) [10-08-2021(online)].pdf | 2021-08-10 |
| 2 | 202118036119-REQUEST FOR EXAMINATION (FORM-18) [10-08-2021(online)].pdf | 2021-08-10 |
| 3 | 202118036119-FORM 18 [10-08-2021(online)].pdf | 2021-08-10 |
| 4 | 202118036119-FORM 1 [10-08-2021(online)].pdf | 2021-08-10 |
| 5 | 202118036119-DRAWINGS [10-08-2021(online)].pdf | 2021-08-10 |
| 6 | 202118036119-DECLARATION OF INVENTORSHIP (FORM 5) [10-08-2021(online)].pdf | 2021-08-10 |
| 7 | 202118036119-COMPLETE SPECIFICATION [10-08-2021(online)].pdf | 2021-08-10 |
| 8 | 202118036119-FORM-26 [05-10-2021(online)].pdf | 2021-10-05 |
| 9 | 202118036119-FORM 3 [01-02-2022(online)].pdf | 2022-02-01 |
| 10 | 202118036119-FER.pdf | 2022-11-30 |
| 11 | 202118036119-certified copy of translation [08-12-2022(online)].pdf | 2022-12-08 |
| 12 | 202118036119-GPA-091222.pdf | 2022-12-12 |
| 13 | 202118036119-Correspondence-091222.pdf | 2022-12-12 |
| 14 | 202118036119-PETITION UNDER RULE 137 [11-04-2023(online)].pdf | 2023-04-11 |
| 15 | 202118036119-FORM 3 [11-04-2023(online)].pdf | 2023-04-11 |
| 16 | 202118036119-OTHERS [16-05-2023(online)].pdf | 2023-05-16 |
| 17 | 202118036119-FER_SER_REPLY [16-05-2023(online)].pdf | 2023-05-16 |
| 18 | 202118036119-DRAWING [16-05-2023(online)].pdf | 2023-05-16 |
| 19 | 202118036119-CLAIMS [16-05-2023(online)].pdf | 2023-05-16 |
| 1 | SearchStrategyE_06-05-2022.pdf |