专利摘要:
The present invention relates to a video signal processing method and device for increasing prediction accuracy and improving encoding efficiency by using a simplified affine motion model. The video signal processing method according to the present invention induces an affine motion vector by using a plurality of motion vectors related to a current block and performs motion compensation on the basis of the affine motion vector and a location of a current sample.
公开号:ES2692864A2
申请号:ES201890055
申请日:2017-02-24
公开日:2018-12-05
发明作者:Bae Keun Lee
申请人:KT Corp;
IPC主号:
专利说明:

5
10
fifteen
twenty
25
30
35
DESCRIPTION
Method and apparatus for processing video signals Technical field
The present invention relates to a method and device for processing a video signal.
Background of the technique
At present, requests for high resolution and high quality images such as high definition (HD) images and ultra-high definition (UHD) images in various fields of application have increased. However, higher resolution and image quality data have increasing amounts of data compared to conventional image data. Therefore, when image data is transmitted using a medium such as conventional wired and wireless networks, or when image data is stored using a conventional storage medium, the cost of transmission and storage increases. To solve these problems that occur with an increase in the resolution and quality of image data, high efficiency image encoding / decoding techniques can be used.
The image compression technology includes various techniques, including: an inter-prediction technique for predicting a pixel value included in a current instant from a previous or subsequent instant of the current instant; an intra-prediction technique of predicting a pixel value included in a current instant using pixel information in the current instant; an entropic coding technique of assigning a short code to a value with a high frequency of occurrence and assigning a long code to a value with a low frequency of occurrence; etc. Image data can be compressed efficiently using such image compression technology, and can be transmitted or stored.
Meanwhile, with high resolution image requests, requests for stereo image content have also increased, which is a new image service. A video compression technique is being analyzed to effectively provide stereo image content with high resolution and ultra-high resolution.
Divulgation
5
10
fifteen
twenty
25
30
35
Technical problem
An object of the present invention is intended to provide a method and an apparatus for encoding / decoding a video signal, the method and apparatus partitioning a codification block hierarchically.
An object of the present invention is intended to provide a method and apparatus for encoding / decoding a video signal, performing the method and the intra-prediction apparatus of an objective coding / decoding block.
An object of the present invention is intended to provide a method and apparatus for encoding / decoding a video signal, the method and apparatus correcting a prediction sample of an objective coding / decoding block.
An object of the present invention is intended to provide a method and apparatus for encoding / decoding a video signal, the method and apparatus updating the first prediction sample generated through intra-prediction to the second prediction sample using displacement.
An object of the present invention is intended to provide a method and an apparatus for encoding / decoding a video signal, the method and the inter- prediction apparatus based on a motion model.
An object of the present invention is intended to provide a method and apparatus for encoding / decoding a video signal, method and apparatus by filtering reference samples for intra-prediction.
Technical solution
In accordance with the present invention, a method and apparatus for decoding a video signal is provided, including the method: generating a first prediction sample by performing intra-prediction in a current block; determine an intra-prediction pattern that specifies a pattern in which the current block is partitioned into sub-blocks; determine the displacement in sub-block units of the current block based on the intra-prediction pattern; and generate a second prediction sample in sub-block units of the current block using the first prediction sample and displacement.
In the method and apparatus for decoding a video signal in accordance with the present invention, the current block may include multiple sub-blocks, and it may be determined whether or not the offset for each sub-block is established.
In the method and apparatus for decoding a video signal according to the present invention, it can be determined whether or not the displacement for a sub-block is established based on a position of the sub-block.
5
10
fifteen
twenty
25
30
35
In the method and apparatus for decoding a video signal in accordance with the present invention, the current block may include multiple sub-blocks, and the offset may be set to a different value for each sub-block.
In the method and apparatus for decoding a video signal according to the present invention, the displacement can be derived from a reference sample adjacent to the current block.
In accordance with the present invention, a method and apparatus for decoding a video signal is provided, the method comprising: deriving an afln motion vector using a plurality of motion vectors related to a current block; and perform a motion compensation based on the derived afln motion vector and a position of a current sample.
In the method and apparatus for decoding a video signal according to the present invention, the plurality of motion vectors corresponds to a plurality of motion vectors of corner samples included in the current block;
In the method and apparatus for decoding a video signal in accordance with the present invention, the plurality of motion vectors comprises a motion vector of a top left corner sample of the current block and a motion vector of a top corner sample right of the current block.
In the method and apparatus for decoding a video signal according to the present invention, the current block is partitioned into a plurality of sub-blocks, and motion compensation is performed in sub-block units using the afln motion vector derivative.
In the method and apparatus for decoding a video signal in accordance with the present invention, the plurality of motion vectors is derived using a motion vector from a neighboring block of the current block.
Advantageous effects
In accordance with the present invention, it is possible to improve the efficiency of codification through the hierarchical / adaptive partition of a codification block.
In accordance with the present invention, it is possible to effectively determine an intra-prediction mode of an objective coding / decoding block, and improve the accuracy of intra-prediction.
In accordance with the present invention, it is possible to improve the accuracy of interpretation for an objective coding / decoding block.
Description of the drawings
5
10
fifteen
twenty
25
30
35
Figure 1 is a block diagram illustrating a device for encoding a video in accordance with an embodiment of the present invention.
Figure 2 is a block diagram illustrating a device for decoding a video in accordance with an embodiment of the present invention.
Figure 3 is a view illustrating an example of hierarchical partition of a codification block based on a tree structure according to an embodiment of the present invention.
Figure 4 is a view illustrating predefined types of intra-prediction modes for a device for encoding / decoding a video in accordance with an embodiment of the present invention.
Figure 5 is a flowchart that briefly illustrates an intra-prediction method according to an embodiment of the present invention.
Figure 6 is a view illustrating a method of correction of a prediction sample of a current block based on differential information of neighboring samples according to an embodiment of the present invention.
Figures 7 and 8 are views illustrating a method of correcting a prediction sample based on a predetermined correction filter according to an embodiment of the present invention.
Figure 9 is a view illustrating a method of correcting a prediction sample using weight and displacement according to an embodiment of the present invention.
Figures 10 to 15 are views illustrating a method of composition of a template for determining the weight w in accordance with an embodiment of the present invention.
Figure 16 is a view illustrating a method of correcting a prediction sample based on the displacement according to an embodiment of the present invention.
Figures 17 to 21 are views illustrating examples of an intra-prediction pattern of a current block according to an embodiment of the present invention.
Figure 22 is a view illustrating a method of making the prediction using an intra-block copy technique according to an embodiment of the present invention.
Figure 23 is a flow chart illustrating a process of coding a symbol.
5
10
fifteen
twenty
25
30
35
Figure 24 is a view illustrating an example of dividing an interval between [0.1) into sub-intervals based on a probability of occurrence of a symbol.
Figure 25 is a view illustrating an example of setting a Probability Index that depends on a position of a block to be encoded.
Figures 26 and 27 are views illustrating examples of partitioning of parts and segments of cuts.
Figure 28 is a view illustrating an example of determining an initial Probability Index for each piece differently.
Figure 29 shows an example of a movement model as a realization to which the present invention is applied.
Figures 30 to 32 illustrate an inter-prediction process that uses a simplified afln motion model in accordance with an embodiment of the present invention.
Figure 33 shows a method of derivation of a movement vector from a corner sample according to an embodiment to which the present invention is applied.
Figure 34 shows a range of reference samples for intra-prediction according to an embodiment to which the present invention is applied.
Figures 35 to 37 illustrate an example of filtration in reference samples. Better mode
In accordance with the present invention, a method and apparatus for decoding a video signal is provided, including the method: generating a first prediction sample by performing intra-prediction in a current block; determine an intra-prediction pattern that specifies a pattern in which the current block is partitioned into sub-blocks; determine the displacement in sub-block units of the current block based on the intra-prediction pattern; and generate a second prediction sample in sub-block units of the current block using the first prediction sample and displacement.
In the method and apparatus for decoding a video signal in accordance with the present invention, the current block may include multiple sub-blocks, and it may be determined whether or not the offset for each sub-block is established.
In the method and apparatus for decoding a video signal in accordance with the present invention, it can be determined whether or not the displacement for a sub-block is established based on a sub-block position.
5
10
fifteen
twenty
25
30
35
In the method and apparatus for decoding a video signal in accordance with the present invention, the current block may include multiple sub-blocks, and the offset may be set to a different value for each sub-block.
In the method and apparatus for decoding a video signal according to the present invention, the displacement can be derived from a reference sample adjacent to the current block.
In accordance with the present invention, a method and apparatus for decoding a video signal is provided, the method comprising: deriving an afln motion vector using a plurality of motion vectors related to a current block; and perform a motion compensation based on the derived afln motion vector and a position of a current sample.
In the method and apparatus for decoding a video signal according to the present invention, the plurality of motion vectors corresponds to a plurality of motion vectors of corner samples included in the current block;
In the method and apparatus for decoding a video signal in accordance with the present invention, the plurality of motion vectors comprises a motion vector of a top left corner sample of the current block and a motion vector of a top corner sample right of the current block.
In the method and apparatus for decoding a video signal according to the present invention, the current block is partitioned into a plurality of sub-blocks, and motion compensation is performed in sub-block units using the afln motion vector derivative.
In the method and apparatus for decoding a video signal in accordance with the present invention, the plurality of motion vectors is derived using a motion vector from a neighboring block of the current block.
Mode for the invention
Various modifications to the present invention can be made and there are various embodiments of the present invention, examples thereof will be provided and described in detail with reference to the drawings. However, the present invention is not limited thereto, and examples of embodiments may be considered to include all modifications, equivalents or substitutes of a technical concept and a technical scope of the present invention. Similar reference numbers refer to similar elements in the described drawings.
The terms used in the specification, 'first', 'second', etc.,
5
10
fifteen
twenty
25
30
35
they can be used to describe various components, but the components are not to be construed as being limited to these terms. The terms should only be used to differentiate a component from other components. For example, the "first" component may be named the "second" component without departing from the scope of the present invention, and the "second" component may also be similarly named the "first" component. The term ‘and / or’ includes a combination of a plurality of elements and any one of a plurality of terms.
It will be understood that when an element is simply referred to as "connected to" or "coupled to" another element without being "directly connected to" or "directly coupled to" another element in the present description, it may be "directly connected to" or 'directly coupled to' another element or being connected to or coupled to another element, which has the other intermediate element between them. In contrast, it should be understood that when an element is referred to as "directly coupled" or "directly connected" to another element, no intermediate elements are present.
The terms used herein are merely used to describe particular embodiments, and are not intended to limit the present invention. An expression used in the singular encompasses the expression of the plural, unless it obviously means differently in context. In the present specification, it is to be understood that the terms such as "including", "having", etc., are intended to indicate the existence of the characteristics, numbers, stages, actions, elements, parts, or combinations of the same disclosed in the specification, and are not intended to exclude the possibility that one or more characteristics, numbers, stages, actions, elements, parts or combinations thereof may exist or be added.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Hereinafter, the same constituent elements in the drawings are indicated by the same reference numbers, and a repeated description of the same elements will be omitted.
Figure 1 is a block diagram illustrating a device for encoding a video in accordance with an embodiment of the present invention.
Referring to Figure 1, the device for encoding a video 100 may include: an instant partition module 110, prediction modules 120 and 125, a transform module 130, a quantization module 135, a
5
10
fifteen
twenty
25
30
35
reorganization module 160, an entropy coding module 165, a reverse quantization module 140, a reverse transformation module 145, a filter module 150 and a memory 155.
The constitutional parts shown in Figure 1 are shown independently to represent characteristic functions different from each other in the device for encoding a video. Therefore, it does not mean that each constitutional part is constituted in a separate constitutional unit of hardware or software. In other words, each constitutional part includes each of the constitutional parts enumerated conveniently. Therefore, at least two constitutional parts of each constitutional part can be combined to form a constitutional part or a constitutional part can be divided into a plurality of constitutional parts to perform each function. The realization where each constitutional part is combined and the realization where a constitutional part is divided are also included in the scope of the present invention, if they do not depart from the essence of the present invention.
Also, some of the constituents may not be indispensable constituents that perform essential functions of the present invention but may be selective constituents that only improve their performance. The present invention can be implemented including only the constitutional parts essential to implement the essence of the present invention except the constituents used to improve performance. The structure that includes only the essential constituents except the selective constituents used to only improve performance is also included within the scope of the present invention.
The instant partition module 110 can partition an input instant into one or more processing units. At this point, the processing unit may be a prediction unit (PU), a transform unit (TU), or a codification unit (CU). The instant partition module 110 can partition an instant into combinations of multiple coding units, prediction units and transform units, and can encode an instant by selecting a combination of codification units, prediction units, and transform units with a default criteria (for example, cost function).
For example, an instant can be partitioned into multiple codification units. A recursive tree structure, such as a tree structure
5
10
fifteen
twenty
25
30
35
quadruple, can be used to partition a snapshot into encoding units. A coding unit that is partitioned into other coding units with an instant or a larger coding unit such as a root can be partitioned with child nodes that correspond to the number of partitioned coding units. An encoding unit that is no longer partitioned by a certain limitation serves as a leaf node. That is, when it is assumed that only the square partition is possible for a coding unit, a coding unit can be partitioned into a maximum of four other coding units.
Hereinafter, in the realization of the present invention, the coding unit may mean a unit that performs coding or a unit that performs decoding.
A prediction unit can be one of partitioned partitions in a square or rectangular shape that has the same size in a single coding unit, or a prediction unit can be one of partitioned partitions to have a different shape and / or size in A single coding unit.
When an intra-prediction prediction unit is generated based on a coding unit and the coding unit is not the smallest coding unit, intra-prediction can be performed without partitioning the coding unit into multiple NxN prediction units.
The prediction modules 120 and 125 may include an inter-prediction module 120 that performs inter-predictions and an intra-prediction module 125 that performs intra-predictions. It can be determined whether to perform inter-prediction or intra-prediction for the prediction unit, and detailed information (for example, an intra-prediction mode, a motion vector, a reference instantaneous, etc.) can be determined according to each prediction method At this point, the predicted processing unit may be different from the processing unit for which the prediction method and detailed content is determined. For example, the prediction method, the prediction mode, etc., can be determined by the prediction unit, and the prediction can be made by the transformation unit. A residual value (residual block) between the generated prediction block and an original block can be entered into the transformation module 130. Also, prediction mode information, motion vector information, etc., used for prediction can be encoded with the residual value by the entropy coding module 165 and can be transmitted to a device
5
10
fifteen
twenty
25
30
35
To decode a video. When a particular coding mode is used, it is possible to transmit to a device to decode video encoding the current block, as it is without generating, the prediction block through the prediction modules 120 and 125.
The inter-prediction module 120 can predict the prediction unit based on information from at least one of a previous instant or a subsequent instant from the current instant, or it can predict the prediction unit based on information from some regions coded at the instant. current, in some cases. The inter-prediction module 120 may include an instantaneous interpolation reference module, a motion prediction module and a motion compensation module.
The instant reference interpolation module can receive reference instant information from memory 155 and can generate pixel information of an entire pixel or less than the entire pixel from the reference instant. In the case of luminance pixels, an 8-lead DCT based interpolation filter that has different filter coefficients can be used to generate pixel information of an entire pixel or less than an entire pixel in units of 1/4 pixel . In the case of chrominance signals, a 4-lead DCT-based interpolation filter that has a different filter coefficient can be used to generate pixel information of an entire pixel or less than an entire pixel in units of 1/8 pixel .
The motion prediction module can perform motion prediction based on the reference instant interpolated by the interpolation reference instant module. As methods for calculating a motion vector, various methods can be used, such as a full search based block matching algorithm (FBMA), a three stage search (TSS), a new three stage search algorithm (NTS), etc. The motion vector can have a motion vector value in units of a 1/2 pixel or 1/4 pixel based on an interpolated pixel. The motion prediction module can predict a current prediction unit by changing the motion prediction method. As motion prediction methods, various methods can be used, such as a jump method, a binding method, an AMVP (Advanced Motion Vector Prediction) method, an intra-block copy method, etc.
The intra-prediction module 125 can generate a prediction unit
5
10
fifteen
twenty
25
30
35
based on reference pixel information that is a neighbor of a current block that is pixel information in the current instant. When the neighboring block of the current prediction unit is an inter-predicted block and therefore a reference pixel is an inter-prediction pixel, the reference pixel included in the inter-predicted block can be replaced. by reference pixel information of a neighboring block subjected to intra-prediction. That is, when a reference pixel is not available, at least one reference pixel of available reference pixels may be used instead of reference pixel information not available.
Intra-prediction prediction modes may include a directional prediction mode that uses reference pixel information that depends on a prediction direction and a non-directional prediction mode that does not use directional information when making prediction. One way to predict luminance information may be different from one way to predict chrominance information, and to predict chrominance information, intra-prediction mode information used to predict luminance information or expected luminance signal information may be used.
When making intra-prediction, when the size of the prediction unit is the same as the size of the transformation unit, I can make intra-prediction in the prediction unit based on pixels located on the left, top left and top of the prediction unit. However, when making predictions, when the size of the prediction unit is different from the size of the transformation unit, intra-predictions can be made using a reference pixel based on the transformation unit. Also, intra-prediction can be used using N x N partition for only the smallest codification unit.
In the intra-prediction method, a prediction block can be generated after applying an AIS (Adaptive Smoothing Intra) filter to a reference pixel that depends on the prediction modes. The type of AIS filter applied to the reference pixel may vary. To perform the intra-prediction method, an intra-prediction mode of the current prediction unit can be predicted from the intra-intra-prediction mode of the prediction unit that is neighboring the current prediction unit. In prediction of the prediction mode of the current prediction unit using information as expected from the neighboring prediction unit, when the intra-prediction mode of the current prediction unit is the
5
10
fifteen
twenty
25
30
35
same as the intra-prediction mode of the neighboring prediction unit, the information indicating that the prediction modes of the current prediction unit and the prediction unit are equal to each other can be transmitted using predetermined flag information. When the prediction mode of the current prediction unit is different from the prediction mode of the neighboring prediction unit, entropy coding can be performed to encode prediction mode information of the current block.
Also, a residual block can be generated that includes information on a residual value that is a different one between the prediction unit subject to prediction and the original prediction unit block based on prediction units generated by the prediction modules 120 and 125. The generated residual block can be introduced to transformation module 130.
The transformation module 130 can transform the residual block that includes information on the residual value between the original block and the prediction units generated by the prediction modules 120 and 125 using a transform method, such as discrete cosine transform (DCT ), discrete sinus transform (DST) and KLT. Whether applying DCT, DST or KLT to transform the residual block can be determined based on intra-prediction mode information of the prediction unit used to generate the residual block.
The quantization module 135 can quantify values transformed to a frequency domain by the transformation module 130. The quantification coefficients may vary depending on the block or the importance of an instant. The values calculated by the quantization module 135 can be provided to the inverse quantization module 140 and the reorganization module 160.
The reorganization module 160 can reorganize quantified residual value coefficients.
The reorganization module 160 can change a coefficient in the form of a two-dimensional block into a coefficient in the form of a one-dimensional vector through a method of coefficient exploration. For example, the reorganization module 160 can explore from a DC coefficient to a coefficient in a high frequency domain using a zigzag scanning method to change the coefficients so that they are in the form of one-dimensional vectors. Depending on the size of the transform unit and the intra-prediction mode, vertical direction scanning where the block-shaped coefficients can be used
5
10
fifteen
twenty
25
30
35
Two-dimensional are scanned in the column direction or horizontal direction exploration where the coefficients in the form of two-dimensional blocks are scanned in the row direction instead of the zigzag scan. That is, what method of exploration between zigzag exploration, vertical direction exploration and horizontal direction exploration is used can be determined depending on the size of the transformation unit and the intra-prediction mode.
The entropla codification module 165 can perform entropla codification based on the values calculated by the reorganization module 160. Entropic coding can use various coding methods, for example, exponential Golomb coding, adaptive variable length coding according to context (CAVLC), and adaptive arithmetic binary coding according to context (CABAC).
The entropy coding module 165 can encode a variety of information, such as residual value coefficient information and block type information of the coding unit, prediction mode information, partition unit information, unit information prediction, transform unit information, motion vector information, reference frame information, block interpolation information, filtration information, etc., from reorganization module 160 and prediction modules 120 and 125.
The entropy coding module 165 can encode the coding unit coefficients introduced from the reorganization module 160 entropla.
The inverse quantization module 140 can inverse quantify the values quantified by the quantization module 135 and the inverse transformation module 145 can reverse transform the values transformed by the transformation module 130. The residual value generated by the inverse quantization module 140 and the inverse transformation module 145 can be combined with the prediction unit provided by a motion estimation module, a motion compensation module, and the intra-prediction module of the prediction modules 120 and 125 so that a rebuilt block can be generated.
Filter module 150 may include at least one of an unlock filter, a shift correction unit and an adaptive loop filter (ALF).
The unlocking filter can eliminate the block distortion that takes place
5
10
fifteen
twenty
25
30
35
due to the limits between the blocks in the reconstructed instant. To determine whether to perform the unlocking, the pixels included in several rows or columns in the block can be a basis for determining whether to apply the unblocking filter to the current block. When the unblocking filter is applied to the block, an intense filter or a weak filter may be applied depending on the intensity of unblocking filtration required. Also, when applying the unblocking filter, the horizontal direction filtration and the vertical direction filtration can be processed in parallel.
The displacement correction module can correct the displacement with the original instant in units of one pixel in the instant submitted to unlocking. To perform the offset correction at a particular instant, it is possible to use a shift application method taking into account edge information of each pixel or a pixel partition method of an instant in the predetermined number of regions, determining a region for that is submitted to perform displacement, and apply the displacement to the given region.
Adaptive loop filtration (ALF) can be performed based on the value obtained by comparing the reconstructed filtered instantaneous and the original instantaneous. The pixels included in the instant can be divided into predetermined groups, a filter to be applied to each of the groups can be determined, and the filtering can be done individually for each group. Information on whether to apply ALF and a luminance signal can be transmitted by codification units (CU). The shape and filter coefficient of a filter for ALF can vary depending on each block. Also, the filter for ALF in the same form (fixed form) can be applied independently of the characteristics of the target application block.
Memory 155 can store the reconstructed or instantaneous block calculated through filter module 150. The reconstructed block or instant stored can be provided to the prediction modules 120 and 125 when inter-predicting.
Figure 2 is a block diagram illustrating a device for decoding a video in accordance with an embodiment of the present invention.
Referring to Figure 2, the device 200 for decoding a video may include: a module 210 of decoding by entropla, a module 215 of reorganization, a module 220 of inverse quantization, a module 225 of inverse transformation, modules 230 and 235 of prediction, a filter module 240, and a memory 245.
5
10
fifteen
twenty
25
30
35
When a video bit stream is introduced from the device to encode a video, the input bit stream can be decoded according to an inverse process of the device to encode a video.
The entropic decoding module 210 can perform entropy decoding according to an inverse encoding coding process by the entropy coding module of the device for encoding a video. For example, in correspondence with the methods performed by the device for encoding a video, various methods can be applied, such as exponential Golomb coding, adaptive variable length coding according to context (CAVLC) and adaptive arithmetic binary coding according to context (CABAC).
The entropic decoding module 210 can decode information in intra-prediction and inter-prediction made by the device to encode a video.
The reorganization module 215 may perform reorganization in the bit stream decoded by the entropy by the 210 decoding module by the entropy based on the reorganization method used in the device to encode a video. The reorganization module can reconstruct and reorganize the coefficients in the form of one-dimensional vectors for the coefficient in the form of two-dimensional blocks. The reorganization module 215 can receive information related to coefficient exploration performed on the device to encode a video and can reorganize by a method of inverse scanning of the coefficients based on the order of exploration performed on the device to encode a video .
The inverse quantization module 220 can perform inverse quantization based on a quantification parameter received from the device to encode a video and the reorganized coefficients of the block.
The inverse transform module 225 can perform the inverse transform, inverse DCT, inverse DST and inverse KLT, which is the inverse process of the transform, that is, DCT, DST and KLT, performed by the transform module in the quantization result by the device to encode a video. The reverse transform can be performed based on the transform unit determined by the device to encode a video. The inverse transform module 225 of the device for decoding a video can selectively perform transform schemes (eg, DCT, DST and KLT) depending on multiple pieces of information, such as the prediction method, the size of the current block, the prediction direction, etc.
5
10
fifteen
twenty
25
30
35
Prediction modules 230 and 235 can generate a prediction block based on information on the generation of prediction block received from the entropy decoding module 210 and the decoded block or instantaneous information previously received from memory 245.
As described above, such as the operation of the device for encoding a video, when performing intra-prediction, when the size of the prediction unit is the same as the size of the transformed unit, intra-prediction can be performed on the unit. prediction based on the pixels located on the left, top left and top of the prediction unit. When performing intra-prediction, when the size of the prediction unit is different from the size of the transformed unit, it can be performed intra-prediction using a reference pixel based on the transformed unit. Also, intra-prediction can be used using N x N partition for only the smallest codification unit.
Prediction modules 230 and 235 may include a prediction unit determination module, an inter-prediction module and an intra-prediction module. The prediction unit determination module can receive a variety of information, such as prediction unit information, prediction mode information of an intra-prediction method, information on movement prediction of an inter-prediction method, etc. ., from the entropic decoding module 210, you can divide a current codification unit into prediction units, and you can determine whether inter-prediction or intra-prediction is performed on the prediction unit. Using information required in the prediction of the current prediction unit received from the device to encode a video, the inter-prediction module 230 can perform inter-prediction in the current prediction unit based on information from at least one of an instant previous or a later instant of the current instant that includes the current prediction unit. As an alternative, inter-prediction can be performed based on information from some pre-reconstructed regions in the current instant that include the current prediction unit.
To perform inter-prediction, it can be determined for the codification unit which of a jump mode, a union mode, an AMVP mode, and an interblock copy mode is used as the unit movement prediction method of prediction included in the codification unit.
Intra-prediction module 235 can generate a prediction block.
5
10
fifteen
twenty
25
30
35
based on information from plxeies in the current instant. When the prediction unit is a prediction unit subjected to intra-prediction, it can be performed intra-prediction based on intra-prediction mode information of the prediction unit received from the device to encode a video. The intra-prediction module 235 may include an adaptive intra-smoothing filter (AIS), a reference pixel interpolation module, and a DC filter. The AIS filter performs filtration on the reference pixel of the current block, and if applying the filter can be determined depending on the prediction mode of the current prediction unit. AIS filtering can be performed on the reference pixel of the current block using the prediction mode of the AIS prediction and information unit received from the device to encode a video. When the prediction mode of the current block is a mode where AIS filtering is not performed, the AIS filter may not be applied.
When the prediction unit prediction mode is a prediction mode in which intra-prediction is performed based on the pixel value obtained by interpolating the reference pixel, the reference pixel interpolation module can interpolate the reference pixel to generate the reference pixel of an entire pixel or less than an entire pixel. When the prediction mode of the current prediction unit is a prediction mode in which a prediction block is generated without interpolation of the reference pixel, the reference pixel may not be interpolated. The DC filter can generate a prediction block through filtration when the prediction mode of the current block is a CC mode.
The reconstructed block or instant can be provided to filter module 240. The filter module 240 may include the unblocking filter, the offset correction module and the ALF.
Information on whether or not the unblocking filter is applied to the corresponding block or instant and information on which of an intense filter and a weak filter is applied when the unblocking filter is applied can be received from the device to encode a video. The unlocking filter of the device for decoding a video can receive information about the unlocking filter from the device for encoding a video, and can perform an unblocking filtering on the corresponding block.
The offset correction module can perform offset correction in the reconstructed instant based on the type of offset correction and offset value information applied to an instant when coding.
5
10
fifteen
twenty
25
30
35
The ALF can be applied to the coding unit based on information on whether to apply the ALF, ALF coefficient information, etc., received from the device to encode a video. ALF information can be provided as being included in a particular set of parameters.
Memory 245 can store the reconstructed instant or block for use as an instant or reference block and can provide the reconstructed instant to an output module.
As described above, in the embodiment of the present invention, for the sake of explanation, the coding unit is used as a term that represents a unit for encoding, but the coding unit can serve as a unit that performs decoding as well as coding.
Figure 3 is a view illustrating an example of hierarchical partition of a coding block based on a tree structure according to an embodiment of the present invention.
An input video signal is decoded in predetermined block units. A default unit of this type for decoding the input video signal is an encoding block. The coding block can be a unit that performs intra / inter-prediction, transformation and quantification. The coding block can be a square or non-square block that has an arbitrary size in a range of 8x8 to 64x64, or it can be a square or non-square block that has a size of 128x128, 256x256 or greater.
Specifically, the coding block can be partitioned hierarchically based on at least one of a quadruple tree and a binary tree. At this point, the quadruple tree-based partition can mean that a 2Nx2N coding block is partitioned into four NxN coding blocks, and the binary tree-based partition can mean that a coding block is partitioned into two coding blocks . The binary tree-based partition can be done symmetrically or asymmetrically. The partitioned coding block based on the binary tree can be a square block or a non-square block, such as a rectangular shape. The binary tree-based partition can be performed in an encoding block where quadruple-based partition is no longer performed. The quadruple tree-based partition may no longer be performed in the partitioned coding block based on the binary tree.
To implement adaptive partition based on the quadruple tree or binary tree, information indicating tree-based partition can be used
5
10
fifteen
twenty
25
30
35
quadruple, information about the size / depth of the codification block that is allowed in the partition based on quadruple tree, information indicating partition based on binary tree, information about the size / depth of the codification block that is allowed in the partition based on binary tree, information on the size / depth of the codification block that is not allowed in the binary tree-based partition, information on whether a binary tree-based partition is performed in a vertical direction or a horizontal direction, etc.
As shown in Figure 3, the first block 300 encoding with the partition depth of k can be partitioned into multiple second coding blocks based on the quadruple tree. For example, the second coding blocks 310 to 340 may be square blocks that are half the width and half the height of the first coding block, and the partition depth of the second coding block may be increased to k + 1.
The second coding block 310 with the partition depth of k + 1 can be partitioned into multiple third coding blocks with the partition depth of k + 2. The partition of the second coding block 310 can be performed selectively using one of the quadruple tree and the binary tree depending on a partition method. At this point, the partition method can be determined based on at least one of the following: the information indicating partition based on quadruple tree and the information indicating partition based on binary tree.
When the second coding block 310 is partitioned based on the quadruple tree, the second coding block 310 can be partitioned into four third coding blocks 310a that are half the width and half the height of the second coding block, and the depth The partition of the third coding block 310a can be increased to k + 2. In contrast, when the second coding block 310 is partitioned based on the binary tree, the second coding block 310 can be partitioned into two third coding blocks. At this point, each of the two third codification blocks can be a non-square block that is one half the width and half height of the second codification block, and the partition depth can be increased to k + 2. The second coding block can be determined as a non-square block of a horizontal direction or a vertical direction that depends on a direction of partition, and the direction of partition can be determined
5
10
fifteen
twenty
25
30
35
based on the information about whether partition based on binary tree is performed in a vertical direction or a horizontal direction.
Meanwhile, the second coding block 310 can be determined as a sheet coding block that is no longer partitioned based on the quadruple tree or the binary tree. In this case, the sheet codification block can be used as a prediction block or a transform block.
The similar partition of the second coding block 310, the third coding block 310a can be determined as a sheet coding block, or it can be further partitioned based on the quadruple tree or the binary tree.
Meanwhile, the third partitioned coding block 310b based on the binary tree can be further partitioned into coding blocks 310b-2 of a vertical address or 310b-3 blocks of coding of a horizontal address based on the binary tree, and the depth of partition of the relevant codification blocks can be increased to k + 3. Alternatively, the third coding block 310b can be determined as a 310b-1 block of codification sheet that is no longer partitioned based on the binary tree. In this case, the coding block 310b-1 can be used as a prediction block or a transform block. However, the above partition process can be performed on a limited basis based on at least one of the information on the size / depth of the coding block that the quad-tree-based partition is allowed, information on the size / depth of the block codification that the binary tree-based partition is allowed, and the information about the size / depth of the codification block that the binary tree-based partition is not allowed.
Figure 4 is a view illustrating predefined types of intra-prediction modes for a device for encoding / decoding a video in accordance with an embodiment of the present invention.
The device for encoding / decoding a video can perform intra-prediction using one of predefined intra-prediction modes. Predefined intra-prediction modes for intra-prediction can include non-directional prediction modes (for example, a planar mode, a CC mode) and 33 directional prediction modes.
Alternatively, to improve the accuracy of intra-prediction, a greater number of directional prediction modes than the 33 prediction modes can be used. That is, M extended directional prediction modes can be defined by subdividing angles of the directional prediction modes (M> 33), and a mode can be derived from
5
10
fifteen
twenty
25
30
35
directional prediction that has a predetermined angle using at least one of the 33 predefined directional prediction modes.
Figure 4 shows an example of extended intra-prediction modes, and extended intra-prediction modes can include two non-directional prediction modes and 65 extended directional prediction modes. The same numbers of the extended intra-prediction modes can be used for a luminance component and a chrominance component, or a different number of the intra-prediction modes can be used for each component. For example, 67 extended intra-prediction modes can be used for the luminance component, and 35 intra-prediction modes can be used for the chrominance component.
Alternatively, depending on the chrominance format, a different number of intra-prediction modes may be used when performing intra-prediction. For example, in the case of the 4: 2: 0 format, 67 intra-prediction modes can be used for the luminance component to perform intra-prediction and 35 intra-prediction modes can be used for the chrominance component. In the case of the 4: 4: 4 format, 67 intra-prediction modes can be used for both the luminance component and the chrominance component to perform intra-prediction.
Alternatively, depending on the size and / or shape of the block, a different number of intra-prediction modes can be used to perform intra-prediction. That is, depending on the size and / or shape of the PU or CU, 35 intra-prediction modes or 67 intra-prediction modes can be used to perform intra-prediction. For example, when the CU or PU is smaller than 64x64 or is partitioned asymmetrically, 35 intra-prediction modes can be used to perform intra-prediction. When the size of the CU or PU is greater than or equal to 64x64, 67 intra-prediction modes can be used to perform intra-prediction. 65 modes of directional intra-prediction can be allowed for Intra_2Nx2N, and only 35 modes of directional intra-prediction can be allowed for Intra_NxN.
Figure 5 is a flowchart that briefly illustrates an intra-prediction method according to an embodiment of the present invention.
Referring to Figure 5, an intra-prediction mode of the current block can be determined in step S500.
Specifically, the intra-prediction mode of the current block can be derived based on a list of candidates and an Index. At this point, the candidate list contains multiple candidates, and multiple candidates can be determined based on an intra-prediction mode of the neighboring block adjacent to the block
5
10
fifteen
twenty
25
30
35
current. The neighboring block may include at least one of the blocks located at the top, bottom, left, right and corner of the current block. The Index can specify one of the multiple candidates from the list of candidates. The candidate specified by the Index can be set to the intra-prediction mode of the current block.
An intra-prediction mode used for intra-prediction in the neighboring block can be established as a candidate. Also, an intra-prediction mode that has directionality similar to that of the neighboring block's intra-prediction mode can be established as a candidate. At this point, the intra-prediction mode that has similar directionality can be determined by adding or subtracting a predetermined constant value to or from the intra-prediction mode of the neighboring block. The predetermined constant value can be an integer, such as one, two or greater.
The list of candidates may additionally include a default mode. The default mode can include at least one of a planar mode, a CC mode, a vertical mode and a horizontal mode. The default mode can be added adaptively considering the maximum number of candidates that can be included in the list of candidates in the current block.
The maximum number of candidates that can be included in the list of candidates can be three, four, five, six or more. The maximum number of candidates that can be included in the list of candidates can be a fixed value present in the device to encode / decode a video, or it can be determined in a variable way based on a characteristic of the current block. The characteristic can mean the location / size / shape of the block, the number / type of intra-prediction modes that the block can use, etc. Alternatively, the information indicating the maximum number of candidates that can be included in the list of candidates can be signaled separately, and the maximum number of candidates that can be included in the list of candidates can be determined in a variable way using the information. The information indicating the maximum number of candidates can be signaled in at least one of a sequence level, an instantaneous level, a cut level and a block level.
When extended intra-prediction modes and 35 predefined intra-prediction modes are used selectively, the intra-prediction modes of neighboring blocks can be transformed into Indices that correspond to extended intra-prediction modes or Indices which correspond to the 35 modes of intra-prediction, through which candidates can be derived. To transform a
5
10
fifteen
twenty
25
Index, a predefined table, or a scale change operation can be used based on a predetermined value. At this point, the predefined table can define a mapping relationship between different groups of intra-prediction modes (for example, extended intra-prediction modes and 35 intra-prediction modes).
For example, when the left neighbor block uses the 35 intra-prediction modes and the intra-prediction mode of the left neighboring block is 10 (a horizontal mode), it can be transformed into an Index of 16 corresponding to a horizontal mode in the extended intra-prediction modes.
Alternatively, when the upper neighboring block uses the extended intra-prediction modes and the intra-prediction mode of the neighboring block has an Index of 50 (a vertical mode), it can be transformed into an Index of 26 corresponding to a vertical mode in the 35 intra-prediction modes.
Based on the previously described method of determining the intra-prediction mode, the intra-prediction mode can be derived independently for each of the luminance component and the chrominance component, or the intra-prediction mode of the chrominance component can be derived depending on the intra-prediction mode of the luminance component.
Specifically, the intra-prediction mode of the chrominance component can be determined based on the intra-prediction mode of the luminance component as shown in the following table 1.
[Table 1]
 I ntra_chroma_pred_mode [xC b] [yC b]  IntraPredModeY [xCb] [yCb]
 0  26 10 1 X (0 <= X <= 34)
 0  3. 4  0 0 0 0
 one  26 34 26 26 26
 2  10 10 34 10 10
 3  1 1 1 34 1
 4  0 26 10 1 X
In table 1, intra_chroma_pred_mode means signalized information to specify the intra-prediction mode of the chrominance component, and IntraPredModeY indicates the intra-prediction mode of the luminance component.
Referring to Figure 5, a reference sample for intra-prediction of the current block can be derived in step S510.
5
10
fifteen
twenty
25
30
Specifically, a reference sample for intra-prediction can be derived based on a neighboring sample of the current block. The neighboring sample may be a reconstructed sample of the neighboring block, and the reconstructed sample may be a reconstructed sample before a loop filter is applied or a reconstructed sample after the loop filter is applied.
A neighboring sample reconstructed before the current block can be used as the reference sample, and a filtered neighbor sample based on a predetermined intra filter can be used as the reference sample. The intra filter may include at least one of the first intra filter applied to multiple neighboring samples located in the same horizontal line and the second intra filter applied to multiple neighboring samples located in the same vertical line. Depending on the positions of the neighboring samples, one of the first intra filter and the second intra filter can be selectively applied, or both intra filters can be applied.
Filtration can be done adaptively based on at least one of the intra-prediction mode of the current block and the size of the transformed block for the current block. For example, when the intra-prediction mode of the current block is the CC mode, the vertical mode, or the horizontal mode, filtering cannot be performed. When the size of the transform block is NxM, no filtration can be performed. At this point, N and M may be the same or different values, or they may be values of 4, 8, 16 or more. Alternatively, the filtration can be performed selectively based on the result of a predefined threshold comparison and the difference between the intra-prediction mode of the current block and the vertical mode (or the horizontal mode). For example, when the difference between the intra-prediction mode of the current block and the vertical mode is greater than a threshold, filtration can be performed. The threshold can be defined for each size of the transform block as shown in Table 2.
[Table 2]
 transform transform transform transform
 8x8 16x16 32x32
 Threshold  7 1 0
The intra filter can be determined as one of multiple predefined intra filter candidates in the device for encoding / decoding a video. For this purpose, an Index that specifies an intra filter of the current block among the multiple intra filter candidates can be signaled. Alternatively, the intra filter can be determined
5
10
fifteen
twenty
25
30
35
based on at least one of the size / shape of the current block, the size / shape of the transform block, information on the filter intensity and variations of the neighboring samples.
Referring to Figure 5, intra-prediction can be performed using the intra-prediction mode of the current block and the reference sample in step S520.
That is, the prediction sample of the current block can be obtained using the intra-prediction mode determined in step S500 and the reference sample derived in step S510. However, in the case of intra-prediction, a sample of the neighboring block's limit can be used, and therefore the quality of the instant prediction can be reduced. Therefore, a correction process can be performed on the prediction sample generated through the prediction process described above, and will be described in detail with reference to Figures 6 to 15. However, the correction process is not limited to Only one inter-prediction sample is applied, and it can be applied to an inter-prediction sample or to the reconstructed sample.
Figure 6 is a view illustrating a method of correcting a prediction sample of a current block based on differential information from neighboring samples according to an embodiment of the present invention.
The prediction sample of the current block can be corrected based on the differential information of multiple neighboring samples for the current block. The correction can be made on all prediction samples in the current block, or it can be made on prediction samples in some predetermined regions. Some regions may be a row / column or multiple rows / columns, or they may be preset regions for correction in the device to encode / decode a video, or they may be determined in a variable manner based on at least one of the size / shape of the current block and Intra-prediction mode
The neighboring samples may belong to the neighboring blocks located at the top, the left and the upper left corner of the current block. The number of neighboring samples used for correction can be two, three, four or more. The positions of the neighboring samples can be determined in a variable way depending on the position of the prediction sample that is the correction objective in the current block. Alternatively, some of the neighboring samples may have fixed positions regardless of the position of the prediction sample that is the correction objective, and the remaining neighboring samples may
5
10
fifteen
twenty
25
30
have positions that vary depending on the position of the prediction sample that is the objective of correction.
The differential information of the neighboring samples can mean a differential sample between the neighboring samples, or it can mean a value obtained by scaling the differential sample by a predetermined constant value (for example, one, two, three, etc.). At this point, the predetermined constant value can be determined by considering the position of the prediction sample that is the correction objective, the position of the column or row that includes the prediction sample that is the correction objective, the position of the sample of prediction within the column or row, etc.
For example, when the intra-prediction mode of the current block is the vertical mode, differential samples can be used between the upper left neighboring sample p (-1, -1) and neighboring samples p (-1, y) adjacent to the limit of the Current block to obtain the final prediction sample as shown in Equation 1. (y = 0 ... N-1)
[Equation 1]
n0 # P (0,;)% (-!,. y) - /> (- l, -l)) »l
For example, when the intra-prediction mode of the current block is the horizontal mode, differential samples can be used between the upper left neighboring sample p (-1, -1) and neighboring samples p (x, -1) adjacent to the upper limit of the current block to obtain the final prediction sample as shown in Equation 2. (x = 0 ... N-1)
[Equation 2]
For example, when the intra-prediction mode of the current block is the vertical mode, differential samples can be used between the upper left neighbor sample p (-1, -1) and neighboring samples p (-1, y) adjacent to the left limit of the current block to obtain the final prediction sample. At this point, the differential sample can be added to the prediction sample, or the differential sample can be scaled to a predetermined constant value, and then added to the prediction sample. The predetermined constant value used when changing scales can be determined differently depending on the column and / or row. For example, the prediction sample can be corrected as shown in the
5
10
fifteen
twenty
25
30
Equation 3 and Equation 4. (y = 0 ... N-1)
[Equation 3]
P '(0, j) = P (0 # (0, (- l, y) -K-l, -l)) »l
[Equation 4]
P '(0, j) = P (0 # ((^ (- l, y) -K-l, -l)) »l
For example, when the intra-prediction mode of the current block is the horizontal mode, differential samples can be used between the left neighboring sample p (- 1, -1) and neighboring samples p (x, -1) adjacent to the upper limit of the Current block to obtain the final prediction sample, as described in the case of vertical mode. For example, the prediction sample can be corrected as shown in Equation 5 and Equation 6. (x = 0 .... N-1)
[Equation 5]
P xfi) = p {xfi) + ((p (x, -1) - /) (- 11)) »1
[Equation 6]
PU1) = pU1) + ((pU-1) -p (-L-1)) »2
Figures 7 and 8 are views illustrating a correction method of a prediction sample based on a predetermined correction filter in accordance with an embodiment of the present invention.
The prediction sample can be corrected based on the neighboring sample of the prediction sample which is the correction objective and a predetermined correction filter. At this point, the neighboring sample may be specified by an angular line of the directional prediction mode of the current block, or it may be at least one sample located on the same angular line as the prediction sample that is the correction target. Also, the neighboring sample may be a prediction sample in the current block, or it may be a reconstructed sample in a reconstructed neighboring block before the current block.
At least one of the number of leads, intensity and a filter coefficient of the correction filter can be determined based on at least one of the position of the prediction sample that is the correction objective, if the prediction sample that is the objective of correction is located or not at the limit of the current block, the intra-prediction mode of the current block, angle of the directional prediction mode, the prediction mode (inter or intra mode) of the neighboring block, and the
5
10
fifteen
twenty
25
30
35
size / shape of the current block.
Referring to Figure 7, when the directional prediction mode has an Index of 2 or 34, at least one prediction / reconstruction sample located in the lower left of the prediction sample which is the correction target and the filter Default correction can be used to obtain the final prediction sample. At this point, the prediction / reconstructed sample in the lower left may belong to an earlier line of a line that includes the prediction sample that is the correction objective. The prediction / reconstructed sample in the lower left may belong to the same block as the current sample, or neighboring the block adjacent to the current block.
Filtration for the prediction sample can be performed only on the line located in the block limit, or it can be performed on multiple lines. The correction filter can be used where at least one of the number of filter leads and a filter coefficient is different from each of the lines. For example, a filter (1/2, 1/2) can be used for the first left line closest to the block limit, a filter (12/16, 4/16) can be used for the second line, a filter can be used (14/16, 2/16) for the third line and a filter (15/16, 1/16) for the fourth line can be used.
Alternatively, when the directional prediction mode has an Index of 3 to 6 or 30 to 33, the filtration can be performed at the block limit as shown in Figure 8, and a 3 lead correction filter can be used to correct The prediction sample. Filtration can be done using the sample from the bottom left of the prediction sample that is the correction target, the sample from the bottom of the sample from the bottom left, and a 3 lead correction filter that takes as input the prediction sample that is the correction objective. The position of the neighboring sample used by the correction filter can be determined differently based on the directional prediction mode. The filter coefficient of the correction filter can be determined differently depending on the directional prediction mode.
Different correction filters may be applied depending on whether the neighboring block is encoded in the inter-mode or the intra-mode. When the neighboring block is encoded in the intra-mode, a filtration method may be used where more weight is provided to the prediction sample, compared to when the neighboring block is encoded in the inter-mode. For example, in the case that the intra-prediction mode is 34, when the neighboring block is encoded in the inter-mode, a filter can be used
5
10
fifteen
twenty
25
30
35
(1/2, 1/2), and when the neighboring block is encoded in the intra-mode, a filter (4/16, 12/16) can be used.
The number of lines to filter in the current block may vary depending on the size / shape of the current block (for example, the coding block or the prediction block). For example, when the size of the current block is equal to or less than 32x32, only one line can be filtered in the block limit; otherwise, filtration can be performed on multiple lines including the line in the block limit.
Figures 7 and 8 are based on the case where the 35 intra-prediction modes are used in Figure 4, but they can be applied in an equal / similar way to the case where the extended intra-prediction modes are used.
Figure 9 is a view illustrating a correction method of a prediction sample using weight and displacement according to an embodiment of the present invention.
There may be a case in which the coding is not performed in intra-prediction or in inter-prediction, even if the current block is similar to a block located in the previous frame since brightness changes take place between the previous frame and the current frame or that the quality of the instant prediction encoded in intra-prediction or in inter-prediction may be relatively low. In this case, a weight and compensation for brightness compensation can be applied to the prediction sample so that the quality of the instant prediction can be improved.
Referring to Figure 9, at least one of a weight w and a displacement f can be determined in step S900.
At least one of the weight w and displacement f can be marked on at least one of a set of sequence parameters, a set of instantaneous parameters, and a cutting header. Alternatively, at least one of the weight w and displacement f can be signaled in a predetermined block unit, and multiple blocks (for example, CU, PU and TU) included in the predetermined block unit can share a weight w and / or displacement signaled.
At least one of the weight w and displacement f can be signaled regardless of the prediction mode of the current block, or it can be selectively signaled considering the prediction mode. For example, when the prediction mode of the current block is the inter-mode, the weight w and / or displacement f can be signaled; otherwise, it may not be signaled. At this point, the inter-mode
5
10
fifteen
twenty
25
30
35
it can include at least one of the jump mode, the union mode, the AMVP mode and the current instant reference mode. The current instant reference mode can mean a prediction mode that uses a pre-reconstructed region in the current instant that includes the current block. A motion vector for the current instantaneous reference mode can be used to specify the prebuilt region. A flag or Index indicating whether the current block is encoded in the current instantaneous reference mode may be signaled, or it may be derived through a reference instantaneous Index of the current block. The current snapshot for the current snapshot reference mode may exist in a fixed position (for example, the position with refIdx = 0 or the last position) in the reference snapshot list of the current block. As an alternative, the current instantaneously can be placed in a variable way in the list of reference instants, and for this purpose, a separate Reference instantaneous index indicating the position of the current instantaneous can be indicated.
The weight can be derived using the change in brightness between the first template in a particular way adjacent to the current block and the second template corresponding to it adjacent to the previous block. The second template may include a sample not available. In this case, an available sample can be copied to the position of the unavailable sample, or the available sample that is derived through interpolation between multiple available samples can be used. At this point, the available sample can be included in the second template or in the neighboring block. At least one of the coefficient, the shape and number of derivations of the filter used in the interpolation can be determined in a variable way based on the size and / or shape of the template. A method of composing a template will be described in detail with reference to Figures 10 to 15.
For example, when the neighboring sample of the current block is designated by yi (i which varies from 0 to N-1) and the neighboring sample from the co-located block is designated by xi (i which varies from 0 to N-1), The weight w and the displacement f can be derived as follows.
Using a particular shaped template adjacent to the current block, the weight w and the displacement f can be derived to obtain the minimum value of E (w, f) in Equation 7.
[Equation 7]
E (w, f) = + A (w - 1):
Equation 7 to obtain the minimum value can be changed to Equation 8.
[Equation 8]
5
10
fifteen
twenty
25
30
(T.i xtxL + AEi * A / VIA = fZi xLyt + X
V) f) Tiyt)
Equation 9 to derive weight w and Equation 10 to derive displacement f can be obtained from Equation 8.
[Equation 9]
NYiXiyi-YixiY.iyi + ji
W = —---------------------------------------------
N Ei - E- Ei + A
[Equation 10]
image 1
Referring to Figure 9, at least one of the weight and displacement determined in step S900 can be used to correct the prediction sample.
For example, when change of brightness takes place in the entire frames, the weight w and displacement f are applied to the prediction sample p generated through intra-prediction so that a corrected prediction sample p 'can be obtained as shown in Equation 11.
[Equation 11]
p '= wXp + f
At this point, the weight w and displacement f can be applied to the prediction sample generated through inter-prediction, or they can be applied to the reconstructed sample.
Figures 10 to 15 are views illustrating a method of composition of a template for determining the weight w in accordance with an embodiment of the present invention.
Referring to the left of Figure 10, a template may be composed of all neighboring samples adjacent to the current block, or a template may be composed of some subsampled samples from neighboring samples adjacent to the current block. The middle part of Figure 10 shows an example of 1/2 subsampling, and a template can be composed of only gray samples. Instead of 1/2 subsampling, the template can be composed using 1/4 subsampling or 1/8 subsampling. As shown to the right of Figure 10, a template can be composed of all neighboring samples adjacent to the current block except for the sample located in the upper left. It is not shown in Figure 10, considering the position of the current block in the instant or a block of codification tree (larger coding unit), a template composed of only the samples can be used
5
10
fifteen
twenty
25
30
35
located on the left or a template composed of only the samples located at the top.
Referring to Figure 11, the template can be composed by increasing the number of neighboring samples. That is, the template in Figure 11 may be composed of the first neighboring samples adjacent to the limit of the current block and the second neighboring samples adjacent to the first neighboring samples.
As shown to the left of Figure 11, a template can be composed of all neighboring samples that belong to two lines adjacent to the limit of the current block, or as shown in the middle of Figure 11, a template can be composed subsampling the template on the left. As shown to the right of Figure 11, a template can be composed excluding four samples belonging to the upper left. It is not shown in Figure 11, considering the position of the current block in the instant or a block of coding tree (larger coding unit), a template composed of only the samples located on the left or a template composed of Only the samples located at the top.
Alternatively, different templates may be composed depending on the size and / or shape of the current block (if the current block has a square shape or if the current block is partitioned symmetrically). For example, as shown in Figure 12, a template sub-sampling rate may be applied differently depending on the size of the current block. For example, as shown on the left of Figure 12, when the block size is less than or equal to 64x64, a 1/2 sampled template may be composed. As shown to the right of Figure 12, when the block size is greater than or equal to 128x128, a 1/4 sampled template may be composed.
Referring to Figure 13, the template can be composed by increasing the number of neighboring samples adjacent to the current block depending on its size.
Multiple template candidates that can be used in a sequence or cut can be determined, and one of the multiple template candidates can be used selectively. Multiple template candidates may include templates that have a different shape and / or size with each other. Information on the shape and / or size of the template can be indicated in a sequence header or cut header. On the device to encode / decode a video, you can
5
10
fifteen
twenty
25
30
35
Assign an index to each template candidate. To identify a template candidate to be used in the current sequence, instant or cut among multiple template candidates, the type_weight_pred_template_idx syntax can be encoded. The device for decoding a video can selectively use the template candidate based on the type_weight_pred_template_idx syntax.
For example, as shown in Figure 14, the template of the middle part of Figure 10 can be assigned to 0, the template on the right of Figure 10 can be assigned to 1, the template of the middle part of Figure 11 it can be assigned to 2, and the template to the right of Figure 11 can be assigned to 3. The template used in the sequence can be marked.
When weighted prediction is performed using a non-square block, the template can be composed by applying different sub-sampling rates to the long and short sides so that the total number of templates is 2AN. For example, as shown in Figure 15, the template can be composed by performing 1/2 sampling on the short side and 1/4 sampling on the long side.
When intra-prediction is performed in a current block based on an intra-prediction direction mode, a generated prediction sample may not reflect the characteristic of an original instant since a range of the reference samples being used is limited ( for example, intra-prediction is performed only using the neighboring samples adjacent to the current block). For example, when there is a border in a current block or when a new object appears around a limit of the current block, a difference between a prediction sample and an original instant can be large depending on a position of a prediction sample in the current block
In this case, a residual value is relatively large, and therefore the number of bits to be encoded / decoded may increase. In particular, a residual value in a region relatively far from a limit of the current block may include a large number of high frequency components, which may result in degradation of the encoding / decoding efficiency.
To solve the above problems, a method of generating or updating a prediction sample in sub-block units can be used. Accordingly, the prediction accuracy in a region relatively far from a block limit can be improved.
For the sake of explanation, in the following embodiments, a prediction sample generated based on a directional intra-prediction mode is
5
10
fifteen
twenty
25
30
35
called as a first prediction sample. Also, a prediction sample generated based on a non-directional intra-prediction mode or a prediction sample generated by inter-prediction can also be included in a category of the first prediction sample.
A method of correction of the prediction sample based on displacement will be described in detail with reference to Figure 16.
Figure 16 is a view illustrating a method of correction of a prediction sample based on a displacement according to an embodiment of the present invention.
Referring to Figure 16, for a current block, if updating a first prediction sample using a shift can be determined in step S1600. If updating the first prediction sample using the offset can be determined by a decoded flag of a bit stream. For example, a ‘is_sub_block_refinement_flag’ syntax that indicates whether updating the first prediction sample using offset can be signaled through a bit stream. When a value of is_sub_block_refinement_flag is 1, the method of updating the first prediction sample using the offset can be used in the current block. When a value of is_sub_block_refinement_flag is 0, the update method of the first prediction sample using the offset cannot be used in the current block. However, step S1600 is intended to selectively update the first prediction sample, and is not an essential configuration to achieve the end of the present invention, so that step S1600 can be omitted in some cases.
When it is determined that the method of updating the first prediction sample is used using the offset, an intra-prediction pattern of the current block can be determined in step S1610. Through the intra-prediction pattern, all or some regions of the current block to which the displacement is applied, a type of partition of the current block can be determined, whether to apply the displacement to a sub-block including the current block, a size / sign of the offset assigned to each sub-block, etc.
One of multiple predefined patterns in the device for encoding / decoding a video can be used selectively as the intra-prediction pattern of the current block, and for this purpose, an Index specifying the intra-prediction pattern of the current block can be signaled from a bit stream. As another example, the intra-prediction pattern of the current block can be determined
5
10
fifteen
twenty
25
30
35
based on a partition mode of a prediction unit or a codification unit of the current block, a block size / shape, if the directional intra-prediction mode is used, an angle of the directional intra-prediction mode, etc.
If it is determined by predetermined flag information signaled by a bit stream whether or not an Index indicating the intra-prediction pattern of the current block is signaled. For example, when the flag information indicates that the Index indicating the intra-prediction pattern of the current block is signaled from a bit stream, the intra-prediction pattern of the current block can be determined based on an Index decoded from a flow of bits At this point, the flag information can be signaled in at least one of an instantaneous level, a cut level and a block level.
When the flag information indicates that the Index indicating the intra-prediction pattern of the current block is not signaled from a bit stream, the intra-prediction pattern of the current block can be determined based on the partition mode of the unit of prediction or the codification unit of the current block, etc. For example, the pattern in which the current block is partitioned into sub-blocks may be the same as the pattern in which the codification block is partitioned into prediction units.
When the intra-prediction pattern of the current block is determined, the displacement can be obtained in sub-block units in step S1620. The offset can be signaled in units of a cut, a codification unit or a prediction unit. As another example, the offset can be derived from a neighboring sample of the current block. The offset may include at least one of offset value information and offset sign information. At this point, the offset value information can be found in a range of integers greater than or equal to zero.
When the offset is determined, a second prediction sample can be obtained for each sub-block in step S1630. The second prediction sample can be obtained by applying the offset to the first prediction sample. For example, the second prediction sample can be obtained by adding or subtracting the offset to or from the first prediction sample.
Figures 17 to 21 are views illustrating examples of an intra-prediction pattern of a current block according to an embodiment of the present invention.
For example, in the example shown in Figure 17, when the index is ‘0’ or
5
10
fifteen
twenty
25
30
35
‘1’, the current block can be partitioned into upper and lower sub-blocks. The offset may not be set to the upper sub-block, and the offset ‘f may be set to the lower sub-block. Therefore, the first prediction sample (P (i, j)) can be used as it is in the upper sub-block, and the second prediction sample (P (i, j) + fo P (i, j) - f) that is generated by adding or subtracting the offset to or from the first prediction sample can be used in the lower sub-block. In the present invention, "not established" may mean that the offset is not assigned to the block, or the offset that has the value of "0" may be assigned to the block.
When the Index is ‘2’ or ‘3’, the current block is partitioned into the left and right sub-blocks. The offset may not be set for the left sub-block, and the offset ‘f may be set for the right sub-block. Therefore, the first prediction sample (P (i, j)) can be used as it is in the left sub-block, and the second prediction sample (P (i, j) + fo P (i, j) - f) that is generated by adding or subtracting the displacement to or from the first prediction sample can be used in the right sub-block.
The range of available intra-prediction patterns can be limited based on the intra-prediction mode of the current block. For example, when the intra-prediction mode of the current block is a vertical direction intra-prediction mode or a prediction mode in a direction similar to the vertical direction intra-prediction mode (for example, among the 33 modes of directional prediction, when the intra-prediction mode has an Index of 22 to 30), only the intra-prediction pattern that divides the current block in a horizontal direction (for example, Index 0 or Index 1 in Figure 17) It can be applied to the current block.
As another example, when the intra-prediction mode of the current block is an intra-prediction mode of horizontal direction or a prediction mode in a direction similar to the intra-prediction mode of horizontal direction (for example, among the 33 modes directional prediction, when the intra-prediction mode has an Index of 6 to 14), only the intra-prediction pattern that divides the current block into a vertical direction (for example, Index 2 or Index 3 in Figure 17 ) can be applied to the current block.
In Figure 17, the offset is not set for one of the sub-blocks included in the current block, but is set for the other. Whether to set the offset for the sub-block can be determined based on information signaled for each sub-block.
5
10
fifteen
twenty
25
30
35
If setting the offset for the sub-block can be determined based on a sub-block position, an Index to identify the sub-block in the current block, etc. For example, based on a predetermined limit of the current block, the offset may not be set for the sub-block that is adjacent to the predetermined limit, and the offset may be set for the sub-block that is not adjacent to the predetermined limit.
When the default limit is assumed to be the upper limit of the current block, under the intra-prediction pattern that corresponds to the '0' or '1' index, the offset may not be set for the sub-block that is adjacent to the upper limit of the current block, and the offset can be set for the sub-block that is not adjacent to the upper limit of the current block.
When the default limit is assumed to be the left limit of the current block, under the intra-prediction pattern that corresponds to the '2' or '3' index, the offset may not be set for the sub-block that is adjacent to the left limit of the current block, and the offset can be set for the sub-block that is not adjacent to the left limit of the current block.
In Figure 17, it is assumed that the offset is not set for one of the sub-blocks included in the current block and that the offset is set for another. As another example, different offset values can be set for the sub-blocks included in the current block.
An example of where different displacements are established for each sub-block will be described with reference to Figure 18.
Referring to Figure 18, when the index is ‘0’ or ‘1’, the
‘h’ offset can be set for the upper sub-block of the current block, and ‘f offset can be set for the lower sub-block of the current block. Therefore, the second prediction sample (P (i, j) + ho P (i, j) -h) can be generated by adding or subtracting the displacement 'h' to or from the first prediction sample in the upper sub-block , and the second prediction sample (P (i, j) + fo P (i, j) -f) can be generated by adding or subtracting the displacement from the first prediction sample.
Referring to Figure 18, when the index is ‘2’ or ‘3’, the
offset ‘h’ can be set for the left sub-block of the current block, and offset ‘f can be set for the right sub-block of the current block. Therefore, the second prediction sample (P (i, j) + h or P (i, j) -h) can be generated by adding or subtracting the displacement ‘h’ to or from the first sample
5
10
fifteen
twenty
25
30
35
of prediction in the left sub-block, and the second prediction sample (P (i, j) + fo P (i, j) -f) can be generated by adding or subtracting the offset from the first prediction sample in the right sub-block
In Figures 17 and 18, the current block is partitioned into two sub-blocks that have the same size, but the number of sub-blocks and / or the size of the sub-blocks included in the current block is not limited to Examples shown in Figures 17 and 18. The number of sub-blocks included in the current block may be three or more, and the sub-blocks may have different sizes.
When multiple intra-prediction patterns are available, the available intra-prediction patterns can be grouped into multiple categories. In this case, the intra-prediction pattern of the current block can be selected based on a first Index to identify a category and a second Index that identifies an intra-prediction pattern in the category.
An example where the intra-prediction pattern of the current block is determined based on the first Index and the second Index will be described with reference to Figure 19.
In the example shown in Figure 19, 12 intra-prediction patterns can be classified into three categories, each including four intra-prediction patterns. For example, intra-prediction patterns that correspond to Indices 0 to 3 can be classified as a category 0, intra-prediction patterns that correspond to Indices 4 to 7 can be classified as a category 1, and intra-patterns -Prediction corresponding to Indices 8 to 11 can be classified as a category 2.
The device for decoding a video can decode the first Index from a bit stream to specify the category that includes at least one intra-prediction pattern. In the example shown in Figure 19, the first Index can specify one of categories 0, 1 and 2.
When the category is specified based on the first Index, the intra-prediction pattern of the current block can be determined based on the second Index decoded from a bit stream. When category 1 is specified by the first Index, the second Index may specify one of four intra-prediction patterns (ie, from Index 4 to Index 7) of category 1.
In Figure 19, it is shown that the categories include the same numbers of intra-prediction patterns. But there is no need for the categories to include the same numbers of intra-prediction patterns.
5
10
fifteen
twenty
25
30
35
The number of available intra-prediction patterns or the number of categories can be determined in units of a sequence or a cut. Also, at least one of the number of available intra-prediction patterns and the number of categories can be signaled through a sequence heading or a cutting heading.
As another example, the number of available intra-prediction patterns and / or the number of categories can be determined based on a size of a prediction unit or a codification unit of the current block. For example, when the size of the current block (for example, the coding unit of the current block) is greater than or equal to 64x64, the intra-prediction pattern of the current block can be selected from five intra-prediction patterns shown in Figure 20. In contrast, when the size of the current block (for example, the coding unit of the current block) is less than 64x64, the intra-prediction pattern of the current block can be selected from the intra-prediction patterns shown in Figure 17, 18 or 19.
In Figures 17 to 20, it is shown that the sub-blocks included in each intra-prediction pattern have a rectangular shape. As another example, the intra-prediction pattern can be used where at least one of the sizes and shapes of the sub-blocks are different from each other. For example, Figure 22 is a view illustrating an example of an intra-prediction pattern with different sizes and sub-block shapes.
The offset for each sub-block (for example, the offset h, f, g, oi of each sub-block shown in Figures 17 to 21) can be decoded from a bit stream, or it can be derived from the neighboring sample adjacent to the current block
As another example, the sub-block offset can be determined by considering the distance from a sample at a particular position in the current block. For example, the offset can be determined in proportion to a value that represents the distance between a sample in a predetermined position in the current block and a sample in a predetermined position in the sub-block.
As another example, the sub-block offset can be determined by adding or subtracting a given value based on the distance between a sample in a predetermined position in the current block and a sample in a predetermined position in the sub-block to or from a preset value. .
As another example, the offset can be determined based on a relation of a value that represents the size of the current block and a value that
5
10
fifteen
twenty
25
30
35
represents the distance between a sample in a predetermined position in the current block and a sample in a predetermined position in the sub-block.
At this point, the sample in the default position in the current block may include a sample adjacent to the left limit of the current block, a sample located in the upper limit of the current block, a sample adjacent to the upper left corner of the current block, etc. .
Figure 22 is a view illustrating a method of realization of the prediction using an intra-block copy scheme in accordance with an embodiment of the present invention.
The intra-block copy (IBC) is a method where a current block is planned / rebuilt using an already rebuilt block (hereafter referred to as ‘a reference block’) in the same instant as the current block. If a snapshot contains a large number of letters, such as the Korean alphabet, an alphabet, etc., and the letter that is contained in the current block when the current block is rebuilt is contained in an already decoded block, the intra block copy It can improve encoding / decoding performance.
An intra-block copy method can be classified as an intra-prediction method or an inter-prediction method. When the intra-block copy method is classified as the intra-prediction method, an intra-prediction mode can be defined for the intra-block copy method. When the intra-block copy method is classified as the inter-prediction method, a bit stream may include a flag indicating whether to apply the intra-block copy method to the current block. Alternatively, if the current block uses an intra-block copy, it can be confirmed through an instant reference index of the current block. That is, when the Reference instant index of the current block indicates the current instant, inter-prediction can be performed on the current block using intra-block copy. For this purpose, a pre-reconstructed current instance can be added to a list of reference instants for the current block. The current snapshot may exist in a position set in the list of reference snapshots (for example, a position with the Reference snapshot index of 0 or the last position). Alternatively, the current instantaneous may have a variable position in the reference instantaneous list, and for this purpose, a reference instantaneous Index indicating a position of the current instantaneous may be signaled separately.
To specify the reference block of the current block, a difference of
5
10
fifteen
twenty
25
30
35
The position between the current block and the reference block can be defined as a motion vector (hereinafter referred to as a block vector).
The block vector can be derived by a sum of a prediction block vector and a differential block vector. The device for encoding a video can generate a prediction block vector through predictive coding, and can encode the differential block vector indicating the difference between the block vector and the prediction block vector. In this case, the device for decoding a video can derive the block vector from the current block using the derived prediction block vector using pre-decoded information and the decoded differential block vector from a bit stream.
At this point, the prediction block vector can be derived based on the block vector of a neighboring block adjacent to the current block, the block vector in an LCU of the current block, the block vector in a LCU row / column of the current block, etc.
The device for encoding a video can encode the block vector without performing predictive coding of the block vector. In this case, the device for decoding a video can obtain the block vector by decoding the signal vector information signaled through a bit stream. The correction method can be performed on the prediction / reconstructed sample generated through the intra-block copy method. In this case, the correction process described with reference to Figures 6 to 21 may be applied in the same / similar manner, and therefore the detailed description thereof will be omitted.
The device for encoding a video can generate a bit stream by converting to binary in a symbol, such as a transform coefficient, a motion vector difference, a syntax in a cut, etc., and performing arithmetic coding in binary values . At this point, for compression of a symbol, a context can be determined considering the value of the same symbol of the neighboring block, information about the neighboring block, the position of the current block, etc. When a Probability Index is determined based on the selected context, the probability of occurrence of the symbol can be determined based on the determined Probability Index. Next, the compression performance of the symbol can be improved through cumulative statistics of internal symbols, the probability of occurrence recalculated based on the value of the encoded symbol and arithmetic coding. As an example of the arithmetic coding method, CABAC can be used.
An example of encoding a symbol in the device for encoding a video will be described in detail with reference to Figure 23. A detailed description of decoding the symbol in the device for decoding a video is omitted, but decoding of the symbol can be performed by the device for decoding a video through the reverse process of the following embodiments.
Figure 23 is a flow chart illustrating a process of coding a symbol.
The device for encoding a video can convert the symbol in binary step S2300 to binary. When an objective coding symbol is not a binary symbol, the device for encoding a video can convert the symbol to a binary symbol. For example, the device for encoding a video can convert a non-binary symbol, such as a transform coefficient, a motion vector difference, etc., to binary, to a binary symbol consisting of the values of 0 and 1. When the symbol is converted to binary, among the mapped code words, the bit that has 15 '0' or '1' can be referred to as a binary.
The conversion to symbol binary can be done through conversion to uninary binary, conversion to truncated unary binary, etc.
Table 3 shows a uninary binary conversion method, and Table 4 shows a truncated unary binary conversion method when the maximum bit length 20 (cMax) is six.
[Table 3]
 Symbol  Binary Conversion
 0 0
 one  10
 2  110
 3  1110

[Table 4]
 Symbol  Binary Conversion
 0 0
 one  10
 2  110
5
10
fifteen
twenty
25
30
 3  1110
 4  11110
 5  111110
 6  111111
When the conversion to symbol binary is complete, a context model is selected in step S2310. The context model represents a probability model for each symbol. The probability of occurrence of 0 or 1 in the binary may differ for each context model. In the following embodiments, the probability of occurrence of the symbol may indicate the probability of occurrence of 0 or 1 in the binary. In HEVC, there are approximately 400 independent contexts for various symbols.
When the cut coding starts, the Probability Index (pStateldx) for each context can be initialized based on at least one of the quantization parameter (Qp) and the type of cut (I, P or B).
In the case of using a piece, when the coding of the piece starts, the Probability Index for each context can be initialized based on at least one of the quantization parameter (Qp) and the type of cut (I, P or B) .
Then, based on the selected context model, arithmetic coding can be performed for each symbol in step S2320. The arithmetic coding of the symbol can be done for each context model. Therefore, even with the same symbols, when different contexts are used, it may not affect the probability update and bitstream coding. When the probability of occurrence of the symbol is determined, coding can be performed depending on the probability of occurrence of the symbol and the value of each symbol. At this point, the number of coding bits can be determined differently depending on the value of each symbol. That is, when the value of each symbol has a high probability of occurrence, the symbol can be compressed in a small number of bits. For example, when the value of each symbol has a high probability of occurrence, the symbol that has ten binaries can be encoded in less than ten bits.
The interval between [0,1) is divided into subintervals based on the probability of occurrence of the symbol, and among real numbers belonging to the divided subintervals, a number that can be represented by the last number of bits and the coefficient thereof is selected , by which the symbol can be encoded. By dividing
5
10
fifteen
twenty
25
30
35
the interval between [0,1) in subintervals, when the probability of occurrence of the symbol is large, a long subinterval can be assigned, and when the probability of occurrence of the symbol is low, a small subinterval can be assigned.
Figure 24 is a view illustrating an example of dividing the interval between [0.1) into subintervals based on the probability of occurrence of a symbol. The arithmetic coding of the symbol ‘010’ will be described when the probability of occurrence of 1 is 0.2 and the probability of occurrence of 0 is 0.8.
Since the first binary of the symbol ‘010’ is ‘0’ and the probability of occurrence of ‘0’ is 0.8, the interval [0.1) can be updated to [0, 0.8).
Since the second binary of the symbol ‘010’ is ‘1’ and the probability of occurrence of ‘1’ is 0.2, the interval [0, 0.8) can be updated to [0.64, 0.8).
Since the third binary of the symbol ‘010’ is ‘0’ and the probability of occurrence of ‘0’ is 0.8, the interval [0.64, 0.8) can be updated to [0.64, 0.768).
In the range [0.64, 0.768), a number that can be represented by the last number of bits is selected. In the interval [0.64, 0.768), 0.75 = 1x (1/2) + 1x (1.2) A2 so that the symbol ‘010’ can be encoded in binary ‘11’ excluding 0.
A more likely symbol (MPS) means a symbol that has a high frequency of occurrence between 0 and 1, and a less likely symbol (LPS) means a symbol that has a low frequency of occurrence between 0 and 1. Initial probability values The occurrence of the MPS and LPS can be determined based on the context and the quantization parameter value (Qp).
In Figure 24, for each binary, it is assumed that the probabilities of occurrence of 0 and 1 are set, but the probability of occurrence of MPS and the probability of occurrence of LPS of the symbol can be updated depending on whether the current coded binary is the MPS or the LPS.
For example, when a binary conversion value of the current binary of the symbol to be encoded is equal to MPS, a probability value of MPS of the symbol can be increased while a probability value of LPS can be reduced. In contrast, when the binary conversion value of the current binary of the symbol to be coded is equal to LPS, the probability value of MPS of the symbol can be reduced while the probability value of LPS can be increased.
In CABAC, probabilities of occurrence of 64 MPS and probabilities of occurrence of LPS are defined, but a smaller or greater number of probabilities of occurrence of MPS or probabilities of occurrence of LPS can be defined and used. The probabilities of occurrence of MPS and the probabilities of occurrence of
LPS can be specified by an Index (pStateldx) that indicates the probability of occurrence of the symbol. When the value of the Index indicating the probability of occurrence of the symbol is large, the probability of occurrence of MPS is high.
Table 5 is intended to explain an example of updating a Probability Index 5 (pStateldx).
[Table 51
 1 1 1 1 1 1
 pStateldx  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 1 1 1
 transldxLPS  0 0 1 2 2 4 4 5 6 7 8 9 9 1 1 2
 transldxMP  1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1
 S                    0 1 2 3 4 5 6
 pStateldx  1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 6  7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2
 transldxLPS  3 3 5 5 6 6 8 8 9 9 1 1 2 2 3 4
 transldxMP  1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3
 S  7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2
 pStateldx  3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4
 2  3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
 2 2 2 2 2 2 2 2 2 3 3 3 3 2 3 3
 transldxLPS  4 5 6 6 7 7 8 9 9 0 0 0 1 1 2 3
 transldxMP  3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4
 S  3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8
 pStateldx  4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6
 8  9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 6
 transldxLPS  3 3 4 4 5 5 5 6 6 6 7 7 7 8 8 3
 transldxMP  4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6
 S  9 0 1 2 3 4 5 6 7 8 9 0 1 2 2 3
When MPS is encoded, a Probability Index (pStateldx) that indicates the
5
10
fifteen
twenty
25
30
35
Probability value of the current context can be updated to an Index that corresponds to transIdxMPS. For example, when the value of pStateIdx is 16 and the MPS is encoded, pStateIdx can be updated to Index 17 corresponding to transIdxMPS. In contrast, when the value of pStateIdx is 16 and the LPS is encoded, pStateIdx can be updated to Index 13 corresponding to transIdxLPS. When pStateIdx is updated, the probabilities of occurrence of MPS and LPS can be updated.
When the value of pStateIdx is 0, the probability of occurrence of MPS is 0.5. In this state, when LPS is encoded, the frequency of LPS may increase compared to that of MPS. Therefore, when the value of pStateIdx is 0 and LPS is encoded, the MPS and LPS can be exchanged with each other.
The value of the Probability Index for each context can be initialized in units of a cut or piece. Since the Probability Index is initialized in units of cut, the current cut can be decoded regardless of whether the previous cut or the previous frame is encoded. However, when the symbol is encoded using an initialized Probability Index, when the symbol is encoded using an Initialized Probability Index, the probability specified by the Initialized Probability Index does not properly reflect the probability of actual occurrence of the symbol, and therefore both the efficiency of initial cutting coding can be reduced.
To solve the problem, the Accumulated Probability Index at a predetermined point during the encoding / decoding of the previous cut can be set to an initial value of the Probability Index of the current cut. At this point, the predetermined point may indicate a starting point of encoding / decoding a block located in a particular position (for example, the middle position) in the cut in order of scanning. The probability value or Probability Index accumulated in the previous cut can be encoded / decoded directly through the heading of the current cut, etc.
As another example, multiple probability indices can be assigned to a context to determine the initial probability index of the cut differently. For example, when there are multiple Probability Indices that have different values for an arbitrary context (ctx), one of the multiple Probability Indices can be determined as the Initial Probability Index. At this point, the information to select one of the multiple Probability Indices can
5
10
fifteen
twenty
25
be marked through the cut header, etc. For example, the device for decoding a video can select the probability index through information transmitted from the cutting header, and can perform codification using the selected probability index as the initial probability index.
As another example, multiple initial values (InitValue) can be assigned for a context to determine the initial probability index of the cut differently. When the initial value is selected, the m and n variables can be derived using the initial value and a preCtxState variable that indicates the previous context condition can be derived through the derived variable m and n. Based on the preCtxState variable that indicates the previous context condition, the MPS and the initial value of context probability index pStateldx can be derived.
Table 7 shows a process of derivation of the probability index based on the initial value.
[Table 7] ________________________________________________________
slopeldx = initValue >> 4 offsetldx = initValue & 15 (1) m = slopeldx * 5 - 45 n = (offsetldx << 3) -16 (2)
preCtxState = Clip3 (1,126, ((m * Clip3 (0.51, SliceQpY)) >> 4) + n) valMps = (preCtxState <= 63) 0: 1 pStateldx = valMps (preCtxState - 64): (63 - preCtxState) (3)
A code to specify an initial value (lnitValue) to be used in the cut can be signaled through the cut header. The code to specify an initial context value can be defined as a CABAC initialization index (cabac_init_idx). Based on a table that defines a mapping relationship between at least two selected from a group of the CABAC initialization index, a context index (ctxldx) and the initial value, an initial value corresponding to cabac_init_idx can be determined.
Also, a syntax indicating the number of available CABAC initialization indices can be signaled through the cut-off header, the sequence header, the instantaneous header, etc. The syntax that indicates the number of CABAC initialization indexes available can be defined as ‘num_cabac_init_idx_minus1’.
5
10
fifteen
twenty
25
Table 8 and Table 9 are graphs to explain an example of initial value determination based on the CABAC initialization index. Table 8 shows the case where the number of available CABAC initialization indices is five, and Table 9 shows the case where the number of available CABAC initialization indices is six. Table 8 or Table 9 can be used selectively based on the value of num cabac init minusl.
[Table 8]
 cabac_init_idx  0 1 2 3 4
 ctxldx  0 1 0 1 0 1 0 1 0 1
 initValue  111 141 153 111 153 111 168 224 95 79
[Table 9]
 cabac_init_idx  0 1 2 3 4 5
 ctxldx  0 1 0 1 0 1 0 1 0 1 0 1
 initValue  111 141 153 111 153 111 168 224 95 79 63 31
Explaining a ‘cbfjuma’ syntax as an example, the cbf_luma syntax contexts that indicate whether a non-zero transform coefficient exists in the luminance component transform block can have different initial values depending on cabac_init_idx. The probability index (pStateldx) derived based on the initial value can also be determined differently depending on cabac_init_idx.
cabac_init_idx can indicate the displacement to apply to the probability index. For example, the probability index (pStateldx) can be derived based on a quantification parameter (Qp) 'sliceQpY' of an arbitrary cut and an initial value (InitValue) determined for each context, and the offset to be applied to the probability index can determined based on the value of cabac_init_idx. When the displacement is determined, the probability index can be recalculated based on the probability index and the displacement. Therefore, even when the quantization parameters (Qp) of the cut are equal, the context model can have multiple probability indices (i.e., multiple initial pStateldx values).
As another example, the initial value can be determined for each context, and the offset to be applied to the initial value can be determined based on the value of
5
10
fifteen
twenty
25
30
35
cabac_init_idx. The initial value is recalculated based on the determined displacement, and the probability index can be derived based on the initial recalculated value.
In a particular symbol instead of complete symbols, there are multiple probability indices for a context. For example, in a particular symbol, such as the transform coefficient, a residual motion vector (a motion vector difference), a reference instantaneous index (a reference index), etc., there may be multiple indices of probability for a context.
Whether multiple initial values (InitValue) or multiple probability indices (pStateldx) are applied to a context can be determined based on the type of cut or regardless of the type of cut. Also, the initial value may differ for each type of cut.
Figure 25 is a view illustrating an example of setting a probability index that depends on a position of a block to be encoded.
The probability index can be determined depending on the spatial position or the scan order of the block to be encoded. For example, as shown in the example in Figure 25, different probability indices (pStateldx) can be established depending on the scan order in the cut. At this point, the value of the probability index (pStateldx) can be selected to be the same or similar to the value of the probability index (prevPstateldx) of the region co-located in the previous cut.
A spatial region to initialize the probability index can be referred to as ‘a context initialization region’. The context initialization region can be provided in a rectangular form, but is not limited to the same. Also, the context initialization region can be set to have a preset size, but is not limited to the same. Information to specify the context initialization region can be signaled through the cut header, etc.
Assuming that the context initialization region is in a rectangular form, the unit by which the probability index is initialized can be determined based on a 'num_row_ctu_minus1' syntax that indicates the number of rows of codification tree units included in the context initialization region. For example, when the value of ‘num_row_ctu_minus1’ is one, the region that includes the two-column CTUs can be established as an initialization region as shown in the example in Figure 25.
5
10
fifteen
twenty
25
30
35
The cut is a default unit that can perform encoding / decoding by entropy independently. The cut is not necessarily provided in a rectangular shape. The cut can be partitioned into multiple cutting segments, and the cutting segment can be composed of multiple coding tree units (CTU).
The piece is the same as the cut in which it is composed of multiple coding tree units such as the cut, but it differs in that the piece is provided in a rectangular shape. Entropy coding / decoding can be done in pieces units. When entropy coding / decoding is performed in piece units, there is an advantage in which parallelization can be made in which multiple pieces are encoded / decoded simultaneously.
Figures 26 and 27 are views illustrating examples of partitioning of parts and segments of cuts.
As shown in the examples in Figures 26 and 27, the part may include at least one cutting segment and there may be a cutting segment in one piece.
An independent cutting segment, and at least some dependent cutting segments make up a cut. As shown in the examples in Figures 26 and 27, the independent cutting segment is not necessarily included in the part.
It is not shown in the drawings, there may be multiple pieces in the cut, or there may be one piece in a cut.
Figure 28 is a view illustrating an example of determining an initial probability index for each piece differently.
When parts are used, the context model is initialized in units of parts. Different initial values (InitValue) or different probability indices (pStateldx) can be used depending on the position of the piece. That is, even if the contexts are the same, different probability indices (pStateldx) can be used depending on the pieces.
A code to specify the initial value of each piece can be signaled through the cutting segment heading, etc. For example, when the initial value is specified through the ‘tile_cabac_init_idx’ syntax to specify the initial value of the part, the probability index can be derived based on the specified initial value.
The probability index for each content of each piece can be derived based on the initial value or the probability index that corresponds to the context of the co-located piece of the previous frame. As another example, the index of
5
10
fifteen
twenty
25
30
35
Probability for each content of each piece can be derived based on an initial value selected from multiple initial values defined for respective contexts, or it can be determined as a Probability Index selected from multiple Probability Indexes defined for respective contexts. When multiple initial values or multiple Probability Indexes are defined for respective contexts, an Index can be marked to select the initial value or the Probability Index for each piece.
In the example shown in Figure 28, for a symbol related to residual movement information (the difference of motion vector), in the first piece (piece O), the Initial Probability Index is determined as pStateldxO, and in the second time (piezal), the Initial Probability Index is determined as pStateldxl.
Figure 29 shows an example of a movement model as a realization to which the present invention is applied.
As a method of modeling movement, a translational movement model, a rotation movement model or an afln movement model can be used.
The translational motion model can represent a linear motion as shown in Figure 29 (a), and a motion of an object can be represented by a 2D coordinate and / or a motion vector (MVx, MVy). The rotational movement model can represent a movement of an object in a rotation form of a specific angle as shown in Figure 29 (b). Meanwhile, referring to Figure 29 (c), there may be cases where a movement, rotation or size of parts of an object differ from each other since a movement of the object is nonlinear. The afln movement model can represent a movement of an object based on a movement, a rotation, a size adjustment and so on! successively. For example, the afln motion model can be represented using predetermined parameters (a to f) as shown in the following equation 12.
[Equation 12]
x '= ax + by + e, y' = cx + dy + j
In Equation 12, x e y represent a position of a sample included in a current block, and x 'e y' represent a position of a sample included in a reference block. The related motion vectors (Vx, Vy), which represent a difference in position between the current block sample and the block sample
5
10
fifteen
twenty
25
30
35
of reference, can be represented by Equation 13.
[Ecuadon 13]
Vx = x - xVy = y -y '
The related motion vectors (Vx, Vy) can be derived by Equation 14 using Equation 12 and Equation 13.
[Ecuadon 14]
Vx = (1 - a) x - by - e, Vy = (1 - d) y - cx-j
Based on the afln motion model described above, it is possible to derive an afln motion vector that corresponds to a current sample based on a predetermined parameter, and perform motion compensation using the derived afln motion vector.
Figures 30 to 32 illustrate the inter-prediction process using a simplified afln motion model according to an embodiment of the present invention.
Referring to Figure 30, a motion vector afln can be derived using a motion vector corresponding to a corner sample of a current block (S3000).
The corner sample may include at least one of a top left corner sample, a top right corner sample, a bottom left corner sample, or a bottom right corner sample. An afln motion vector can be derived using motion vectors that correspond to n corner samples. At least one of the motion vectors corresponding to n corner samples may have a size and / or a different direction from the rest of the motion vectors.
Where a value of n can be 1, 2, 3, 4 or greater. The value of n can be a predefined fixed value in the encoder / decoder. As an alternative, the encoder can encode and signal a position / number of corner samples used for inter-prediction based on the afln motion model, and the decoder can variably determine the value of n based on the signalized information.
Alternatively, the value of n can be determined in a variable manner based on at least one of a shape or size of the current block.
For example, the value of n may be different depending on whether the current block has a square shape or if the current block is a symmetric partition. When the current block has a square shape (for example, NxN), they can be used
5
10
fifteen
twenty
25
30
35
motion vectors (V0, V1, V2) corresponding to three corner samples. If the current block has a non-square shape (for example, Nx2N), the motion vectors (V0, V1) corresponding to two corner samples can be used.
Alternatively, the value of N may be different according to a comparison result between a size of the current block and a first predetermined threshold value. The size of the current block can be expressed as a width (W), a height (H), sum of a width and a height (W + H), or number of samples (W * H). If the size of the current block is greater than the first threshold value, motion vectors (V0, V1, V2) corresponding to three corner samples in the current block can be used. If the size of the current block is smaller than the first threshold value, motion vectors (V0, V1) corresponding to two corner samples in the current block can be used. The first threshold value may be a predefined value in the encoder / decoder. Alternatively, the encoder can encode and signal an optimal threshold value. The decoder can derive a first threshold value based on the information signaled. The information can be signaled through at least one of a sequence, an instant, a cut, or a block level.
The locations of n corner samples can be predefined fixed locations in the encoder / decoder. For example, if n = 2, then the predetermined fixed locations may include a top left corner sample and a top right corner sample of the current block. When n = 3, the predetermined fixed locations may include a sample of upper left corner, a sample of upper right corner, and a sample of lower left corner of the current block.
Alternatively, the encoder can encode and signal locations of corner samples used for inter-prediction based on the afln motion model, and the decoder can specify the locations of the corner samples based on the signalized information.
Alternatively, corner sample locations can be determined based on at least one of a shape or size of the current block.
For example, the locations of corner samples may be different depending on whether the current block has a square shape or if the current block is a symmetric partition. If the current block is square in shape (for example, NxN), a top left corner sample and a top right corner sample of the current block can be used. If the current block has a non-square shape
5
10
fifteen
twenty
25
30
(for example, Nx2N), a sample of upper left corner and a sample of lower left corner of the current block can be used. Conversely, it is also possible to use a sample of upper left corner and a sample of upper right corner when the current block has a square shape, and use a sample of upper left corner and a sample of lower left corner when the block Current has a non-square shape.
Alternatively, corner sample locations can be determined according to a comparison result between a size of a current block and a second predetermined threshold value. The second threshold value may be a predefined value in the encoder / decoder. Alternatively, the encoder can encode and signal an optimal threshold value. The decoder can derive a second threshold value based on the signalized information. The information can be signaled through at least one of a sequence, an instant, a cut, or a block level.
Hereinafter, with reference to Figure 31, a method of derivation of an afln motion vector using motion vectors corresponding to a plurality of corner samples will be described.
Referring to Figure 31 (a), an afln motion vector can be derived using motion vectors (V0, V1, V2) from a top left corner sample, a top right corner sample, and a bottom left corner sample of the current block. For example, a motion vector afln (Vx, Vy) can be derived as Equation 15.
[Equation 15]
(V2x-V0x)
Tr _ (Vlx-VOx)
Vx ---------------------- x-
w
Vy = (ny-n) y> x.
w
(V2y-V0y)
w
w
y + VOx
-y + VOy
In Equation 15, w can mean a position difference between a reference sample specified by a motion vector V0 and a reference sample specified by a motion vector V1. Alternatively, w can mean a width or height of a reference block specified by the motion vectors V0 and V1.
Alternatively, referring to Figure 31 (b), a motion vector afln can be derived using motion vectors (V0, V1) in a sample of upper left corner and a sample of upper right corner of the current block. In this case, a motion vector of a corner sample
5
10
fifteen
twenty
25
30
lower left can be expressed by Equation 16. [Equation 16]
V2x = VOx + VOy-Vly, V2y = - V0x + VOy + Vlx
Using equations 15 and 16, a motion vector afln can be derived as Equation 17.
[Equation 17]
_ (Vlx-VOx) (Vly-VOy)
Vx = Vy
x--
w w
_ (Vly-VOy) (Vlx-VOx)
x-
w
w
-y + VOx
y + VOy
Referring to Figure 30, a motion compensation can be performed using an afln motion vector derived from S3000 (S3010).
Specifically, a reference sample corresponding to a current sample can be determined using an afln motion vector. The determined reference sample can be established as an expected value of the current sample.
Alternatively, as shown in Figure 32, movement compensation can be made in units of a plurality of sub-blocks including the current block. To do this, a current block can be partitioned into a plurality of sub-blocks, which will be described in detail below.
(1) Partition based on a number
A current block can be partitioned into a plurality of sub-blocks based on a predetermined number m. A value of m can be an integer greater than zero. For example, if the default number m is 4 and the current block is 16x16, the current block can be partitioned evenly into 8x8 sub-block units.
At this time, a predetermined number may be a predefined set number for the encoder / decoder. Alternatively, the encoder can encode and signal a number of sub-blocks that constitute a current block, and the decoder can determine a predetermined number m based on the signalized information. Alternatively, the predetermined number can be determined in a variable manner based on at least one of a size or a shape of a current block. For example, when a size of a current block is 16x16, a motion compensation can be made in units of four 8x8 sub-blocks. If a size of a current block is 64x64 or 32x32, a motion compensation can be made in units of sixteen 16x16 sub-blocks or
5
10
fifteen
twenty
25
30
35
four 16x16 sub-blocks.
(2) Partition based on a size
A current block can be partitioned into units of a sub-block that has a predetermined size (NxM) regardless of a size of the current block. Where N and M are whole numbers greater than zero. N and M can be the same or different from each other. The default size can be a predefined fixed value in the encoder / decoder. Alternatively, the encoder can encode and signal a size of an optimal sub-block, and the decoder can determine a size of a sub-block based on the signalized information. The information can be signaled in at least one of a sequence, an instant, a cut, or a block level.
A current block can be partitioned into a plurality of sub-blocks by combining size-based partition (1) and the size-based partition (2) described above. The partition can be restricted so that a sub-block has a square or non-square shape. Or, the partition can be restricted so that a sub-block has the same or a different shape than a current block.
A motion compensation can be performed based on a specific position of each sub-block that is partitioned and an afln motion vector derived from S3000. At this point, the specific position can mean at least one of four corner positions or a central position of a sub-block. In this case, as shown in Figure 32, each sub-block can have an afln motion vector that is different from each other.
An inter-prediction process based on the afln motion model described above can be implemented by means of a derivation stage of an afln motion vector using motion vectors that correspond to a plurality of corner samples (first stage) and compensation of movement using a motion vector afln (second stage). Or, the process of interpretation can be implemented in one stage.
Meanwhile, inter-prediction based on an afln movement model can be defined as an afln inter-mode. This afln inter-mode can be used selectively based on an identifier (for example, flag, Index) that specifies a type of an inter-mode. Or, an inter-mode afln can be used in a limited or selective manner based on at least one of a size or a form of a codification / prediction block. For example, it is possible to perform inter-prediction using an inter-mode only when a coding / prediction block
5
10
fifteen
twenty
25
30
35
It has a square shape and a block size is larger than 16x16.
Figure 33 shows a method of derivation of a motion vector from a corner sample according to an embodiment to which the present invention is applied.
A motion vector of a corner sample can be derived from a neighboring block of a current block. Referring to Figure 33 (a), a motion vector V0 of a top left corner sample can be derived using at least one of the neighboring blocks A, B and C. A motion vector (V1) of a corner sample upper right can be derived using at least one of the neighboring blocks D and E. Or, V0 can be derived using at least one of the neighboring blocks B, C and F, and V1 can be derived using at least one of the neighboring blocks A, D and E. In this case, a motion vector of a neighboring block can be established as a motion vector of a corner sample, or a motion vector of a corner sample can be derived by adding a differential motion vector to a vector of movement of a neighboring block. For this purpose, the encoder can encode and signal a differential motion vector, which is a difference between a motion vector of a corner sample and a motion vector of a neighboring block.
If the values of V0 and V1 are equal to each other or if V0 and V1 are derived from the same neighboring block, any of V0 or V1 can be derived from a motion vector of another neighboring block. Or, a specific offset can be applied to one of V0 or V1 to derive the other. For example, in Figure 33 (a), if V0 derived from any of the neighboring blocks A, B, and C and V1 derived from any of the neighboring blocks D and E are equal to each other, any of V0 or V1 can be substituted by a motion vector of a neighboring block F. For this purpose, a flag or an Index indicating whether the motion vectors (for example, V0 and V1) of corner samples may be equal to each other can be signaled, and information may be signaled which specifies a position of a corner sample that has the same movement vector with another corner sample.
Either V0 or V1 can be encoded through differential codification based on the other. For example, V1 is not encoded like this, and only a difference motion vector can be encoded with V0. In this case, the decoder can restore V1 using V0 and the encoded differential motion vector. Although, only V0 and V1 are mentioned for the convenience of description, a motion vector V2 corresponding to a
5
10
fifteen
twenty
25
30
35
lower left corner sample and a V3 motion vector corresponding to a lower right corner sample. And, they can be restored in a manner similar to V0 and V1.
Depending on a form of a current block, a list of motion candidates of a corner sample can be configured differently. For example, as shown in Figure 33 (a), when the current block has a square shape, a list of motion candidates from a top-left corner sample is constituted using the neighboring blocks A, B and C, and a List of motion candidates of a sample of upper right corner is constituted using the neighboring blocks D and E. On the other hand, as shown in Figure 33 (b), when the current block has a non-square shape, a list of Motion candidates of a sample of upper left corner is constituted using neighboring blocks C, B and F, and a list of movement candidates of a sample of lower left corner is constituted using neighboring blocks A, D and E.
Figure 34 shows a range of reference samples for intra-prediction according to an embodiment to which the present invention is applied.
Referring to Figure 34, intra-prediction can be performed using the reference samples P (-1, -1), P (-1, y) (0 <= y <= 2N-1) and P (x, - 1) (0 <= x <= 2N-1) located in a limit of a current block. At this time, filtration is performed selectively on reference samples based on at least one of an intra-prediction mode (eg, Index, directionality, angle, etc., of the intra-prediction mode) of the current block or a size of a transformation block related to the current block.
At least one of a plurality of filter candidates may be selected to filter reference samples. At this point, the plurality of intra-filter candidates may differ from each other in at least one of a filter intensity, a filter coefficient or a derivation number (for example, a number of filter coefficients, a filter length ). A plurality of intra-filter candidates may be defined in at least one of a sequence, an instant, a cut, or a block level. That is, a sequence, an instant, a cut, or a block in which the current block is included can use the same plurality of intrafilter candidates.
Hereinafter, for the sake of explanation, it is assumed that a plurality of intra-filter candidates includes a first intra-filter and a second intra-filter. It is also assumed that the first intra-filter is a 3-lead filter (1, 2, 1) and the
5
10
fifteen
twenty
25
30
35
Second intra-filter is a 5 lead filter (2, 3, 6, 3, 2).
When reference samples are filtered by applying a first intra filter, the filtered reference samples can be derived as shown in Equation 18.
[Equation 18]
jP (-1, -1) = (P (-1,0) + 2P (-1, -1) + P (0, -1) +2) »2
P (-1, y) = (P (-1, y + 1) + 2P (-1, y) + P (-1, y-1) +2) »2
P (x-1) = (P (x + 11) + 2P (x, -1) + P (x-11) +2) »2
When reference samples are filtered by applying the second intra-filter, the filtered reference samples can be derived as shown in the following equation 19.
[Equation 19]
P (-11) = (2P (-2.0) + 3P (-1.0) + 6P (-11) + 3P (0, -1) + 2P (0, -2) +8) »4
P (-l, y) = (2P (- 1, y + Z) + 3P (- 1, y + l) + 6P (-l, y) + 3P (- 1, y- 1) + 2P (- l, j / -2) +8) »4
P (x, -l) = (2P (x + 2, -r) + 3P (x + l, -l) + 6P (x, -r) + 3P (x - , - l) + 2P (x -2, -y) +8) »4
Based on a position of a reference sample, one of a plurality of intra-filter candidates can be determined and used to filter the reference sample using the determined one. For example, a first intra-filter can be applied to a reference sample in a current block boundary, and a second intra-filter can be applied to other reference samples. Specifically, as shown in Figure 35, filtration is performed on the reference samples P (-1, -1), P (-1,0), P (-1,1), ..., P (- 1, N-1) and P (0, -1), P (1, -1), ... applying a first intra-filter as shown in Equation 18, and the filtration in the other reference samples is performed by applying a second reference filter as shown in Equation 19.
It is possible to select one of a plurality of intra-filter candidates based on a type of transform used for a current block, and filter on reference samples using the selected one. At this point, the type of transform can mean (1) a transform scheme such as DCT, DST or KLT, (2) a transform mode indicator such as a 2D transform, 1D or non-transformed transform or (3) the number of transformed such as a first transformed and second transformed. Hereinafter, for the convenience of description, it is assumed that the type of transform means the transform scheme such as DCT, DST and KLT.
For example, if a current block is encoded using a DCT, filtration can be performed using a first intra-filter, and if a current block is encoded using a
5
10
fifteen
twenty
25
30
35
DST, filtration can be performed using a second intra-filter. Or, if a current block is encoded using DCT or DST, filtration can be performed using a first intra-filter, and if the current block is encoded using a KLT, filtration can be performed using a second intra-filter.
Filtration can be performed using a selected filter based on a type of transform of a current block and a position of a reference sample. For example, if a current block is encoded using a DCT, filtration can be performed on the reference samples P (-1, -1), P (-1,0), P (-1,1), ..., P (-1, N-1) and P (0, -1), P (1, - 1), ..., P (N-1, -1) using a first intra-filter, and filtration can be performed in other reference samples using a second intra-filter. If a current block is encoded using a DST, filtration can be performed on the reference samples P (-1, -1), P
(-1.0), P (-1.1) ___ P (-1, N-1) and P (0, -1), P (1, -1) ____ P (N-1, -1) using a second
intra-filter, and filtration can be performed on other reference samples using a first intra-filter.
One of a plurality of intra-filter candidates may be selected based on whether a type of transform of a neighboring block that includes a reference sample is the same as a type of transform of a current block, and filtration can be performed using the candidate of selected intra-filter. For example, when a current block and a neighboring block use the same type of transform, filtration is performed using a first intra-filter, and when the transform types of a current block and a neighboring block are different from each other, it can be used the second intra-filter to perform a filtration.
It is possible to select any one of a plurality of intrafilter candidates based on a type of transform of a neighboring block and filter on a reference sample using the selected one. That is, a specific filter can be selected taking into account a type of transform of a block in which a reference sample is included. For example, as shown in Figure 36, if a block adjacent to the left / bottom left of a current block is a block coded using a DCT, and a block adjacent to the top / top right of a current block is a block coded using a DST, filtration is performed on reference samples adjacent to the left / lower left part of a current block by applying a first intra filter and filtration is performed on reference samples adjacent to the upper / upper right part of a block current applying a second intra filter.
In units of a predetermined region, a usable filter can be defined in
5
10
fifteen
twenty
25
30
35
the corresponding region. In the present document, the unit of the predetermined region may be any one of a sequence, an instant, a cut, a group of blocks (for example, a row of coding tree unit) or a block (for example, a tree unit coding). Or, another region that shares one or more filters can be defined. A reference sample can be filtered using a filter mapped to a region in which a current block is included.
For example, as shown in Figure 37, it is possible to filter reference samples using different filters in CTU units. In this case, the information indicating whether the same filter is used in a sequence or an instant, a type of filter used for each CTU, an Index that specifies a filter used in the corresponding CTU among available intrafilter candidates can be signaled. using a set of sequence parameters (SPS) or a set of instantaneous parameters (PPS).
Although the above described embodiments have been described based on a series of stages or flow charts, these do not limit the order of the time series of the invention, and can be performed simultaneously or in different orders as necessary. In addition, each of the components (for example, units, modules, etc.) that constitute the block diagram in the previously described embodiments can be implemented by a hardware or software device, and a plurality of components. Or a plurality of components can be combined and implemented by a single hardware or software device. The above-described embodiments can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer readable recording medium may include one of, or a combination of program commands, data files, data structures, and the like. Examples of computer-readable media include magnetic media such as hard drives, flexible drives and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as optical discs, media, and hardware devices specifically configured for store and execute program instructions such as ROM, RAM, flash memory, and the like. The hardware device may be configured to operate as one or more software modules to perform the process in accordance with the present invention, and vice versa. Industrial applicability
The present invention can be used when encoding / decoding a video signal.
权利要求:
Claims (8)
[1]
5
10
fifteen
twenty
25
30
1. A method of decoding a video, comprising the method:
deriving a motion vector afln using a plurality of motion vectors related to a current block, the plurality of motion vectors corresponding to a plurality of motion vectors of corner samples included in the current block; Y
perform a motion compensation based on the derived afln motion vector and a position of a current sample.
[2]
2. The method of claim 1, wherein the plurality of motion vectors comprises a motion vector of a top left corner sample of the current block and a motion vector of a top right corner sample of the current block.
[3]
3. The method of claim 1, wherein performing motion compensation comprises:
partition the current block into a plurality of sub-blocks; Y
perform motion compensation in sub-block units using the vector
of afln derived movement.
[4]
4. The method of claim 2, wherein the plurality of motion vectors is derived using a motion vector from a neighboring block of the current block.
[5]
5. An apparatus for decoding a video, the apparatus comprising:
an inter-prediction unit to derive a motion vector afln using a plurality of motion vectors related to a current block, and to perform a motion compensation based on the derived afln motion vector and a position of a current sample,
where the plurality of motion vectors corresponds to a plurality of motion vectors of corner samples included in the current block.
10
[6]
6. The apparatus of claim 5, wherein the plurality of motion vectors comprises a motion vector of a top left corner sample of the current block and a motion vector of a top right corner sample of the current block.
[7]
7. The apparatus of claim 5, wherein the inter-prediction unit divides the current block into a plurality of sub-blocks, and performs motion compensation in sub-block units using the derived afln motion vector.
[8]
8. The apparatus of claim 6, wherein the plurality of motion vectors is derived using a motion vector from a neighboring block of the current block.
类似技术:
公开号 | 公开日 | 专利标题
ES2692864B1|2019-10-21|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNS
ES2710807B1|2020-03-27|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS
ES2710234B1|2020-03-09|Procedure and device for processing video signals
ES2703607B2|2021-05-13|Method and apparatus for processing video signals
ES2724568B2|2021-05-19|Method and apparatus for processing a video signal
ES2724570A2|2019-09-12|Method and apparatus for processing video signals |
ES2688624A2|2018-11-05|Method and apparatus for processing video signal
ES2793489T3|2020-11-16|Chrominance block intra-prediction method using a luminance sample and apparatus using the same
ES2737874B2|2020-10-16|METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNAL
ES2711474A2|2019-05-03|Method and device for processing video signal
ES2677193B1|2019-06-19|Procedure and device to process video signals
ES2699749B2|2020-07-06|Method and apparatus for processing a video signal
ES2737845B2|2021-05-19|METHOD AND APPARATUS TO PROCESS VIDEO SIGNAL
ES2711223A2|2019-04-30|Method and device for processing video signal
ES2711230A2|2019-04-30|Method and apparatus for processing video signal
ES2703458A2|2019-03-08|Video signal processing method and device
ES2711473A2|2019-05-03|Method and apparatus for processing video signal
ES2711209A2|2019-04-30|Method and device for processing video signal
同族专利:
公开号 | 公开日
WO2017146526A1|2017-08-31|
EP3422719A1|2019-01-02|
ES2737841A2|2020-01-16|
ES2737841R1|2020-04-16|
ES2737841B1|2021-07-27|
ES2800509A2|2020-12-30|
ES2692864R1|2019-01-02|
ES2800509B1|2021-12-21|
CN108702509A|2018-10-23|
ES2692864B1|2019-10-21|
ES2800509R1|2021-03-02|
US20190068989A1|2019-02-28|
EP3422719A4|2019-10-09|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题

US20090051679A1|2007-08-24|2009-02-26|Simon Robinson|Local motion estimation using four-corner transforms|
US8665958B2|2008-01-29|2014-03-04|Electronics And Telecommunications Research Institute|Method and apparatus for encoding and decoding video signal using motion compensation based on affine transformation|
US9584806B2|2012-04-19|2017-02-28|Futurewei Technologies, Inc.|Using depth information to assist motion compensation-based video coding|
WO2014065547A1|2012-10-22|2014-05-01|휴맥스|Method for inducing disparity vector in predicting inter-view motion vector in 3d picture|
KR102121558B1|2013-03-15|2020-06-10|삼성전자주식회사|Method of stabilizing video image, post-processing device and video encoder including the same|
US9596448B2|2013-03-18|2017-03-14|Qualcomm Incorporated|Simplifications on disparity vector derivation and motion vector prediction in 3D video coding|
US9438910B1|2014-03-11|2016-09-06|Google Inc.|Affine motion prediction in video coding|
KR101589186B1|2014-04-16|2016-01-27|국방과학연구소|Method for image matching using global motion vector compensation|
CN112087630A|2014-09-30|2020-12-15|华为技术有限公司|Image prediction method and related device|
CN104363451B|2014-10-27|2019-01-25|华为技术有限公司|Image prediction method and relevant apparatus|
AU2015385634B2|2015-03-10|2019-07-18|Huawei Technologies Co., Ltd.|Picture prediction method and related apparatus|
CN108600749B|2015-08-29|2021-12-28|华为技术有限公司|Image prediction method and device|
WO2017118409A1|2016-01-07|2017-07-13|Mediatek Inc.|Method and apparatus for affine merge mode prediction for video coding system|
US10798403B2|2016-01-29|2020-10-06|Sharp Kabushiki Kaisha|Prediction image generation device, video decoding device, and video coding device|WO2018070152A1|2016-10-10|2018-04-19|Sharp Kabushiki Kaisha|Systems and methods for performing motion compensation for coding of video data|
US10225578B2|2017-05-09|2019-03-05|Google Llc|Intra-prediction edge filtering|
US10992939B2|2017-10-23|2021-04-27|Google Llc|Directional intra-prediction coding|
WO2019143093A1|2018-01-16|2019-07-25|삼성전자주식회사|Method and device for video decoding, and method and device for video encoding|
US10986354B2|2018-04-16|2021-04-20|Panasonic Intellectual Property Corporation Of America|Encoder, decoder, encoding method, and decoding method|
WO2020002762A1|2018-06-28|2020-01-02|Nokia Technologies Oy|Method and apparatus for motion compensation with non-square sub-blocks in video coding|
US10462488B1|2018-07-13|2019-10-29|Tencent America LLC|Method and apparatus for video coding|
TW202017385A|2018-09-23|2020-05-01|大陸商北京字節跳動網絡技術有限公司|Non-affine blocks predicted from affine motion|
WO2020098810A1|2018-11-17|2020-05-22|Beijing Bytedance Network Technology Co., Ltd.|Merge with motion vector difference in video processing|
CN113170181A|2018-11-29|2021-07-23|北京字节跳动网络技术有限公司|Affine inheritance method in intra-block copy mode|
WO2020140951A1|2019-01-02|2020-07-09|Beijing Bytedance Network Technology Co., Ltd.|Motion vector derivation between color components|
CN109818940B|2019-01-03|2021-06-25|浙江好络维医疗技术有限公司|Electrocardio waveform rapid compression algorithm suitable for realizing real-time transmission in embedded hardware|
US20200228832A1|2019-01-11|2020-07-16|Mediatek Inc.|Method and Apparatus of Subblock Deblocking in Video Coding|
WO2020181474A1|2019-03-11|2020-09-17|Oppo广东移动通信有限公司|Prediction value determination method, encoder and computer storage medium|
AU2020237079A1|2019-03-12|2021-09-23|Tencent America LLC|Method and apparatus for video encoding or decoding|
US11178399B2|2019-03-12|2021-11-16|Qualcomm Incorporated|Probability initialization for video coding|
WO2020252707A1|2019-06-19|2020-12-24|北京大学|Video processing method and device|
CN113905236A|2019-09-24|2022-01-07|Oppo广东移动通信有限公司|Image encoding and decoding method, encoder, decoder, and storage medium|
法律状态:
2018-12-05| BA2A| Patent application published|Ref document number: 2692864 Country of ref document: ES Kind code of ref document: A2 Effective date: 20181205 |
2019-01-02| EC2A| Search report published|Ref document number: 2692864 Country of ref document: ES Kind code of ref document: R1 Effective date: 20181220 |
2019-10-21| FG2A| Definitive protection|Ref document number: 2692864 Country of ref document: ES Kind code of ref document: B1 Effective date: 20191021 |
优先权:
申请号 | 申请日 | 专利标题
KR1020160022476A|KR20170100211A|2016-02-25|2016-02-25|Methdo and apparatus for processing a video signal|
KR10-2016-0022481|2016-02-25|
KR10-2016-0022476|2016-02-25|
KR1020160022481A|KR20170100214A|2016-02-25|2016-02-25|Methdo and apparatus for processing a video signal|
PCT/KR2017/002072|WO2017146526A1|2016-02-25|2017-02-24|Video signal processing method and device|
[返回顶部]