Inter prediction method and apparatus therefor
The method addresses the complexity and efficiency challenges in video encoding and decoding by optimizing merge candidate list generation and motion information derivation in inter prediction, resulting in improved video processing performance.
Patent Information
- Application Number
- JP2025043589
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2012-01-12
- Filing Date
- 2025-03-18
- Publication Date
- 2025-05-30
- Estimated Expiration
- 2032-09-07
AI Technical Summary
Existing video encoding and decoding methods face challenges in reducing complexity and improving encoding/decoding efficiency, particularly in inter prediction and merge candidate list generation.
The proposed method involves generating a merge candidate list for a prediction target block, deriving motion information from selected merge candidates, and using this information to generate a prediction block. This method selectively generates either a first or second merge candidate list based on the merge candidate sharing unit, optimizing motion information usage.
This approach reduces complexity and enhances encoding/decoding efficiency by optimizing the generation of merge candidate lists and the derivation of motion information, thereby improving the overall video processing performance.
Smart Images

Figure 2025083570000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to video processing, and more particularly to an inter prediction method and apparatus.
Background Art
[0002] In recent years, the demand for high-resolution and high-quality video such as high-definition (HD) video and ultra-high-definition (UHD) video has been increasing in various fields. As the video data becomes higher in resolution and quality, the amount of information or bits transmitted relatively increases compared to existing video data. Therefore, when transmitting video data using a medium such as an existing wired or wireless broadband network, or when storing video data using an existing storage medium, the transmission cost and storage cost increase. To solve such problems, high-efficiency video compression technology is used.
[0003] As video compression technologies, there are various technologies such as an inter prediction technology that predicts pixel values included in a current picture from pictures before and / or after the current picture, an intra prediction technology that predicts pixel values included in the current picture using pixel information within the current picture, and an entropy coding technology that assigns short codewords to frequently occurring values and long codewords to infrequently occurring values. Video data can be effectively compressed, transmitted, or stored using such video compression technologies.
Summary of the Invention
Problems to be Solved by the Invention
[0004] A technical problem of the present invention is to provide a video encoding method and apparatus capable of reducing complexity and improving encoding / decoding efficiency.
[0005] Another technical problem of the present invention is to provide a video decoding method and apparatus capable of reducing complexity and improving encoding / decoding efficiency.
[0006] Another technical problem of the present invention is to provide an inter prediction method and apparatus that can reduce complexity and improve encoding / decoding efficiency.
[0007] Still another technical problem of the present invention is to provide a merge candidate list generation method and apparatus that can reduce complexity and improve encoding / decoding efficiency.
Means for Solving the Problems
[0008] One embodiment of the present invention is an inter prediction method. This method includes generating a merge candidate list for a prediction target block corresponding to a current prediction unit (current PU), deriving motion information of the prediction target block based on one of a plurality of merge candidates constituting the merge candidate list, and generating a prediction block corresponding to the current prediction unit by performing a prediction on the prediction target block based on the derived motion information. The current prediction unit is a prediction unit belonging to a merge candidate sharing unit. In the merge candidate list generation step, one of a first merge candidate list composed of a plurality of first merge candidates and a second merge candidate list composed of a plurality of second merge candidates is selectively generated. The plurality of first merge candidates are motion information of a plurality of first blocks determined based on the position and size of the prediction target block, and the plurality of second merge candidates are motion information of a plurality of second blocks determined based on the position and size of the block corresponding to the merge candidate sharing unit.
[0009] In the merge candidate list generation step, whether the first merge candidate list is generated or the second merge candidate list is generated is determined by the merge candidate sharing unit. When it is determined that the second merge candidate list is generated, all prediction units within the merge candidate sharing unit share the second merge candidate list.
[0010] The merge candidate sharing unit is the current coding unit (current CU) to which the current prediction unit belongs, and the plurality of second merge candidates are motion information of a plurality of second blocks determined based on the position and size of the block to be decoded corresponding to the current coding unit.
[0011] The plurality of first blocks include the block closest to the lower left corner outside the block to be predicted, the block at the lowest end among the blocks adjacent to the left side of the block to be predicted, the block closest to the upper left corner outside the block to be predicted, the block at the rightmost end among the blocks adjacent to the upper end of the block to be predicted, and the block closest to the upper right corner of the block to be predicted. The plurality of second blocks include the block closest to the lower left corner outside the block to be decoded, the block at the lowest end among the blocks adjacent to the left side of the block to be decoded, the block closest to the upper left corner outside the block to be decoded, the block at the rightmost end among the blocks adjacent to the upper end of the block to be decoded, and the block closest to the upper right corner of the block to be decoded.
[0012] In the merge candidate list generation step, when it is determined that the first merge candidate list is generated, the motion information of the blocks located within the block to be decoded among the plurality of first blocks is not used as the first merge candidate.
[0013] In the merge candidate list generation step, when it is determined that the first merge candidate list is generated, and the split mode of the current prediction unit is 2N×N, 2N×nU or 2N×nD, and the current prediction unit is the prediction unit located at the lower end within the current coding unit, the motion information of the block at the rightmost end among the blocks adjacent to the upper end of the block to be predicted is not used as the first merge candidate.
[0014] In the merge candidate list generation step, when it is determined that the first merge candidate list is to be generated, and the split mode of the current prediction unit is N×2N, nL×2N, or nR×2N, and the current prediction unit is a prediction unit located on the right side within the current coding unit, the motion information of the block located at the lowermost position among the blocks adjacent to the left side of the block to be predicted is not used as the first merge candidate.
[0015] The merge candidate list generation step and the motion information derivation step are performed in parallel for all prediction units within the parallel processing unit to which the current prediction unit belongs. The parallel processing unit is determined based on the parallel processing level indicating the size of the parallel processing unit. Information regarding the parallel processing level is included in the picture parameter set (PPS) and transmitted from the encoder to the decoder.
[0016] In the merge candidate list generation step, whether the first merge candidate list is to be generated or the second merge candidate list is to be generated is determined based on the size of the block to be decoded and the parallel processing level.
[0017] In the merge candidate list generation step, when the size of the block to be decoded is 8×8 and the size of the parallel processing unit is larger than 4×4, the second merge candidate list is generated.
[0018] Another embodiment of the present invention is a video decoding method. This method includes the steps of generating a merge candidate list for a prediction target block corresponding to a current prediction unit, deriving motion information of the prediction target block based on one of a plurality of merge candidates constituting the merge candidate list, generating a prediction block corresponding to the current prediction unit by performing prediction on the prediction target block based on the derived motion information, and generating a restored block based on the generated prediction block. The current prediction unit is a prediction unit belonging to a merge candidate sharing unit. In the merge candidate list generation step, one of a first merge candidate list composed of a plurality of first merge candidates and a second merge candidate list composed of a plurality of second merge candidates is selectively generated. The plurality of first merge candidates are motion information of a plurality of first blocks determined based on the position and size of the prediction target block, and the plurality of second merge candidates are motion information of a plurality of second blocks determined based on the position and size of a block corresponding to the merge candidate sharing unit.
[0019] In the merge candidate list generation step, whether the first merge candidate list or the second merge candidate list is generated is determined by the merge candidate sharing unit. When it is determined that the second merge candidate list is generated, all prediction units within the merge candidate sharing unit share the second merge candidate list.
[0020] The merge candidate sharing unit is the current encoding unit to which the current prediction unit belongs, and the plurality of second merge candidates are motion information of a plurality of second blocks determined based on the position and size of a decoding target block corresponding to the current encoding unit.
[0021] The plurality of first blocks includes the block closest to the lower left corner outside the block to be predicted, the block at the lowest end among the blocks adjacent to the left side of the block to be predicted, the block closest to the upper left corner outside the block to be predicted, the block at the rightmost side among the blocks adjacent to the upper end of the block to be predicted, and the block closest to the upper right corner of the block to be predicted. The plurality of second blocks includes the block closest to the lower left corner outside the block to be decoded, the block at the lowest end among the blocks adjacent to the left side of the block to be decoded, the block closest to the upper left corner outside the block to be decoded, the block at the rightmost side among the blocks adjacent to the upper end of the block to be decoded, and the block closest to the upper right corner of the block to be decoded.
[0022] In the merge candidate list generation step, when it is determined that the first merge candidate list is generated, the motion information of the blocks located within the block to be decoded among the plurality of first blocks is not used as the first merge candidate.
[0023] In the merge candidate list generation step, when it is determined that the first merge candidate list is generated, the split mode of the current prediction unit is 2N×N, 2N×nU or 2N×nD, and when the current prediction unit is a prediction unit located at the lower end within the current coding unit, the motion information of the block at the rightmost side among the blocks adjacent to the upper end of the block to be predicted is not used as the first merge candidate.
[0024] In the merge candidate list generation step, when it is determined that the first merge candidate list is generated, the split mode of the current prediction unit is N×2N, nL×2N or nR×2N, and when the current prediction unit is a prediction unit located on the right side within the current coding unit, the motion information of the block at the lowest end among the blocks adjacent to the left side of the block to be predicted is not used as the first merge candidate.
[0025] The merge candidate list generation step and the motion information derivation step are performed in parallel for all prediction units within the parallel processing unit to which the current prediction unit belongs. The parallel processing unit is determined based on the parallel processing level indicating the size of the parallel processing unit, and information regarding the parallel processing level is included in the PPS and transmitted from the encoder to the decoder.
[0026] In the merge candidate list generation step, whether the first merge candidate list is generated or the second merge candidate list is generated is determined based on the size of the block to be decoded and the parallel processing level.
[0027] In the merge candidate list generation step, when the size of the block to be decoded is 8×8 and the size of the parallel processing unit is larger than 4×4, the second merge candidate list is generated.
Advantages of the Invention
[0028] According to the video encoding method of the present invention, the complexity can be reduced, and the encoding / decoding efficiency can be improved.
[0029] According to the video decoding method of the present invention, the complexity can be reduced, and the encoding / decoding efficiency can be improved.
[0030] According to the inter prediction method of the present invention, the complexity can be reduced, and the encoding / decoding efficiency can be improved.
[0031] According to the merge candidate list generation method of the present invention, the complexity can be reduced, and the encoding / decoding efficiency can be improved.
Brief Description of the Drawings
[0032]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
DETAILED DESCRIPTION OF THE INVENTION
[0033] The present invention can be subjected to various modifications and can have various embodiments, but specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments. The terms used in this specification are merely used to describe specific embodiments and are not intended to limit the technical idea of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. Terms such as "including" or "having" in this specification are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and one or more other features or numbers, steps, operations, components, parts, or combinations thereof, etc. It should be understood that the possibility of the presence or addition is not precluded in advance.
[0034] On the one hand, each component in the drawings described in the present invention is shown independently for the convenience of explaining the distinct characteristic functions in the video encoding / decoding device, and it does not mean that each component is realized by separate hardware or separate software. For example, two or more of these components can be combined to form one component, and one component can also be divided into multiple components. As long as the embodiments where each component is integrated and / or separated do not deviate from the essence of the present invention, they are included in the scope of the rights of the present invention.
[0035] In addition, some components may not be essential components that perform essential functions in the present invention, but may be merely optional components for performance improvement. The present invention can be realized by including only the essential components necessary to realize the essence of the present invention, excluding the components used merely for performance improvement, and the structure including only the essential components excluding the optional components used merely for performance improvement is also included in the scope of the rights of the present invention.
[0036] Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in more detail. Hereinafter, the same reference numerals will be used for the same components in the drawings, and redundant descriptions for the same components will be omitted.
[0037] FIG. 1 is a block diagram schematically showing a video encoding device according to an embodiment of the present invention.
[0038] Referring to FIG. 1, the video encoding device 100 includes a picture splitting unit 105, a prediction unit 110, a conversion unit 115, a quantization unit 120, a reordering unit 125, an entropy encoding unit 130, an inverse quantization unit 135, an inverse conversion unit 140, a filter unit 145, and a memory 150.
[0039] The picture splitting unit 105 can split the input picture into at least one processing unit. At this time, the processing unit may be a prediction unit (PU), a conversion unit (TU), or an encoding unit (CU).
[0040] As will be described later, the prediction unit 110 can include an inter-prediction unit that performs inter-prediction and an intra-prediction unit that performs intra-prediction. The prediction unit 110 can perform prediction on the processing unit of the picture in the picture division unit 105 to generate a prediction block. The processing unit of the picture in the prediction unit 110 may be an encoding unit, a conversion unit, or a prediction unit. Also, it is possible to determine whether the prediction performed on the corresponding processing unit is inter-prediction or intra-prediction, and to determine the specific content (for example, prediction mode, etc.) of each prediction method. At this time, the processing unit on which the prediction is performed and the processing unit on which the prediction method and specific content are determined may be different. For example, the prediction method and prediction mode, etc. can be determined in units of prediction units, and the execution of prediction can also be performed in units of conversion units. The residual value (residual block) between the generated prediction block and the original block can be input to the conversion unit 115. Also, the prediction mode information, motion vector information, etc. used for prediction can be encoded by the entropy encoding unit 130 together with the residual value and transmitted to the decoder.
[0041] The conversion unit 115 performs conversion on the residual block in units of conversion to generate conversion coefficients. The conversion unit in the conversion unit 115 is a conversion unit and can have a quadtree structure. At this time, the size of the conversion unit can be determined within a range of a predetermined maximum and minimum size. The conversion unit 115 can perform conversion on the residual block using a discrete cosine transform (DCT) and / or a discrete sine transform (DST).
[0042] The quantization unit 120 can quantize the residual value converted by the conversion unit 115 to generate quantization coefficients. The value calculated by the quantization unit 120 is provided to the inverse quantization unit 135 and the rearrangement unit 125.
[0043] The reordering unit 125 can reorder the quantization coefficients provided by the quantization unit 120. By reordering the quantization coefficients, the encoding efficiency in the entropy encoding unit 130 can be improved. The reordering unit 125 can reorder the quantization coefficients in two-dimensional block form into a one-dimensional vector form through the coefficient scanning method. In the reordering unit 125, the entropy encoding efficiency in the entropy encoding unit 130 can also be improved by changing the coefficient scanning order based on the probabilistic statistics of the coefficients transmitted to the quantization unit.
[0044] The entropy encoding unit 130 can perform entropy encoding on the quantization coefficients reordered by the reordering unit 125. The entropy encoding unit 130 can encode various information such as quantization coefficient information, block type information, prediction mode information, division unit information, prediction unit information, transmission unit information, motion vector information, reference picture information, block interpolation information, filter information, etc. transmitted from the reordering unit 125 and the prediction unit 110.
[0045] For entropy encoding, encoding methods such as exponential Golomb, context-adaptive variable length coding (CAVLC) and / or context-adaptive binary arithmetic coding (CABAC) can be used. For example, the entropy encoding unit 130 can store a table for performing entropy encoding, such as a variable length coding (hereinafter referred to as "VLC") table, and the entropy encoding unit 130 can perform entropy encoding using the stored VLC table. As another example, in the CABAC entropy encoding method, the entropy encoding unit 130 can also generate a bitstream by converting a symbol into a bin (binary digit) and then performing arithmetic encoding on the bin according to the occurrence probability of the bin.
[0046] When entropy encoding is applied, symbols with a high occurrence probability are assigned low-index values and corresponding short codewords, while symbols with a low occurrence probability are assigned high-index values and corresponding long codewords. Therefore, the amount of bits for the symbol to be encoded can be reduced, and the video compression performance can be improved by entropy encoding.
[0047] The inverse quantization unit 135 can inverse-quantize the value quantized by the quantization unit 120, and the inverse transform unit 140 can inverse-transform the value inverse-quantized by the inverse quantization unit 135. The residual value (Residual) generated by the inverse quantization unit 135 and the inverse transform unit 140 can be combined with the predicted block predicted by the prediction unit 110 to generate a reconstructed block (Reconstructed Block).
[0048] The filter unit 145 can apply an in-loop filter to the restored block and / or picture. The in-loop filter can include a deblocking filter, a Sample Adaptive Offset (SAO), and / or an Adaptive Loop Filter (ALF), etc.
[0049] The deblocking filter can remove the block distortion generated at the boundary between blocks in the restored picture. SAO can add an appropriate offset value to the pixel value to compensate for the coding error. The ALF can perform a filter operation based on the value obtained by comparing the restored video with the original video after the block has been removed through the deblocking filter.
[0050] On the other hand, for the reconstructed block used for intra prediction, the filter unit 145 may not need to apply a filter operation.
[0051] The memory 150 can store the restored block or picture calculated through the filter unit 145. The restored block or picture stored in the memory 150 can be provided to the prediction unit 110 that performs inter prediction.
[0052] FIG. 2 is a conceptual diagram schematically showing a prediction unit according to an embodiment of the present invention.
[0053] Referring to FIG. 2, the prediction unit 200 can include an inter prediction unit 210 and an intra prediction unit 220.
[0054] The inter prediction unit 210 can perform prediction based on information of at least one of a previous picture or a subsequent picture of the current picture to generate a prediction block. Also, the intra prediction unit 220 can perform prediction based on pixel information within the current picture to generate a prediction block.
[0055] The inter prediction unit 210 can select a reference picture for the prediction unit and select a reference block of the same size as the prediction unit in units of integer pixel samples. Next, the inter prediction unit 210 can generate a prediction block that is most similar to the current prediction unit, minimizes the residual signal, and can also minimize the magnitude of the motion vector to be encoded in units of samples less than an integer, such as 1 / 2 pixel sample unit and 1 / 4 pixel sample unit. At this time, the motion vector can be expressed in units less than an integer pixel.
[0056] Information regarding the index of the reference picture and the motion vector selected by the inter prediction unit 210 can be encoded and transmitted to the decoder.
[0057] FIG. 3 is a block diagram schematically showing a video decoder according to an embodiment of the present invention.
[0058] Referring to FIG. 3, the video decoder 300 can include an entropy decoding unit 310, a rearrangement unit 315, an inverse quantization unit 320, an inverse transform unit 325, a prediction unit 330, a filter unit 335, and a memory 340.
[0059] When a video bitstream is input to the video decoder, the input bitstream can be decoded according to the procedure by which the video information was processed by the video encoder.
[0060] The entropy decoding unit 310 can perform entropy decoding on the input bitstream, and the entropy decoding method is similar to the above-described entropy encoding method. When entropy decoding is applied, a symbol with a high occurrence probability is assigned a low-index value and a corresponding short codeword, and a symbol with a low occurrence probability is assigned a high-index value and a corresponding long codeword. Therefore, the amount of bits for the symbol to be encoded is reduced, and the video compression performance can be improved by entropy encoding.
[0061] Among the information decoded by the entropy decoding unit 310, the information for generating the prediction block is provided to the prediction unit 330, and the residual value obtained by performing entropy decoding in the entropy decoding unit is input to the rearrangement unit 315.
[0062] The rearrangement unit 315 can rearrange the bitstream entropy decoded by the entropy decoding unit 310 based on the method rearranged by the video encoder. The rearrangement unit 315 can further restore and rearrange the coefficients represented in the form of a one-dimensional vector into coefficients in the form of a two-dimensional block. The rearrangement unit 315 can rearrange the information related to the coefficient scanning performed by the encoder by scanning in reverse based on the scanning order performed by the encoding unit.
[0063] The inverse quantization unit 320 can perform inverse quantization based on the quantization parameter supplied from the encoder and the coefficient values of the rearranged block.
[0064] The inverse transformation unit 325 can perform inverse DCT and / or inverse DST on the DCT and DST performed by the transformation unit of the encoder on the quantization result performed by the video encoder. The inverse transformation can be performed based on the transmission unit determined by the encoder or the division unit of the video. The DCT and / or DST in the transformation unit of the encoder can be selectively performed by a plurality of pieces of information such as a prediction method, the size of the current block, and / or a prediction direction, and the inverse transformation unit 325 of the decoder can perform an inverse transformation based on the transformation information performed by the transformation unit of the encoder.
[0065] The prediction unit 330 can generate a prediction block based on the prediction block generation related information provided from the entropy decoding unit 310 and the previously decoded block and / or picture information provided from the memory 340. The restored block can be generated using the prediction block generated by the prediction unit 330 and the residual block provided from the inverse transformation unit 325.
[0066] The restored block and / or picture can be provided to the filter unit 335. The filter unit 335 can apply an in-loop filter to the restored block and / or picture. The in-loop filter can include a block removal filter, SAO, and / or ALF, etc.
[0067] The memory 340 can store the restored picture or block so that it can be used as a reference picture or reference block, and can also provide the restored picture to the output unit.
[0068] FIG. 4 is a conceptual diagram schematically showing the prediction unit of the video decoding apparatus according to an embodiment of the present invention.
[0069] Referring to FIG. 4, the prediction unit 400 can include an intra prediction unit 420 and an inter prediction unit 410.
[0070] When the prediction mode for the corresponding prediction unit is the intra prediction mode (intra-picture prediction mode), the intra prediction unit 420 can generate a prediction block based on the pixel information within the current picture.
[0071] When the prediction mode for the corresponding prediction unit is the inter prediction mode (inter-picture prediction mode), the inter prediction unit 410 uses information necessary for the inter prediction of the current prediction unit provided from the video encoder, such as information regarding a motion vector, a reference picture index, etc., and performs inter prediction for the current prediction unit based on the information included in at least one of the pictures before or after the current picture in which the current prediction unit is included.
[0072] At this time, when the skip flag, merge flag, etc. of the coding unit received from the encoder are confirmed, the motion information can be derived therefrom.
[0073] Hereinafter, when "video" or "screen" represents the same meaning as "picture" according to the configuration or expression of the invention, "picture" may be referred to as "video" or "screen". Also, inter prediction and inter-picture prediction have the same meaning, and intra prediction and intra-picture prediction have the same meaning.
[0074] FIG. 5 is a conceptual diagram schematically showing an example related to the quadtree structure of the processing unit in the system to which the present invention is applied.
[0075] The coding unit (CU) means the unit in which coding / decoding of a picture is performed. One coding block within the picture to be coded has a depth based on the quadtree structure and can be repeatedly divided. At this time, the coding block that is not further divided corresponds to the coding unit, and the encoder can perform coding processing on the coding unit. The coding unit can have a plurality of sizes such as 64×64, 32×32, 16×16, 8×8.
[0076] Here, the coding block repeatedly divided based on the quadtree structure can be called a coding tree block (CTB). A coding tree block may not be further divided. In this case, the coding tree block itself corresponds to one coding unit. Therefore, the coding tree block may correspond to the largest coding unit (LCU), which is the coding unit of the largest size. On the other hand, the coding unit with the smallest size within the coding tree block may be called the smallest coding unit (SCU).
[0077] Referring to FIG. 5, the coding tree block 500 can have a hierarchical structure composed of smaller coding units 510 through division. The hierarchical structure of the coding tree block 500 can be specified based on size information, depth information, split flag information, etc. Information related to the size of the coding tree block, split depth information, split flag information, etc. can be included in the sequence parameter set (SPS) on the bitstream and transmitted from the encoder to the decoder.
[0078] On the other hand, which prediction of inter prediction and intra prediction is performed can be determined in units of coding units. When inter prediction is performed, the inter prediction mode, motion information, etc. can be determined in units of prediction units. When intra prediction is performed, the intra prediction mode can be determined in units of prediction units. At this time, as described above, the processing unit for performing prediction and the processing unit for determining the prediction method and specific content may be the same or different from each other. For example, the prediction method and prediction mode, etc. can be determined in units of prediction units, and the execution of prediction can also be performed in units of transform units.
[0079] Referring to FIG. 5, one encoding unit 510 may be used as one prediction unit, or may be divided into a plurality of prediction units. In the case of intra prediction 520, the partitioning mode of the encoding unit (and / or prediction unit) is 2N×2N or N×N (N is an integer). Here, in the 2N×2N mode, the prediction unit can have a size of 2N×2N, and in the N×N mode, the prediction unit can have a size of N×N. In the case of inter prediction 530, the partitioning mode of the encoding unit (and / or prediction unit) is 2N×2N, 2N×N, N×2N, N×N, 2N×nU, 2N×nD, nL×2N, or nR×2N (N is an integer). Here, in the 2N×N mode, the prediction unit can have a size of 2N×N, and in the N×2N mode, the prediction unit can have a size of N×2N. Also, in the 2N×nU mode, one encoding unit can be divided into a prediction unit of size 2N×(1 / 2)N and a prediction unit of size 2N×(3 / 2)N. At this time, the prediction unit of size 2N×(1 / 2)N can be located at the upper end of the prediction unit of size 2N×(3 / 2)N. In the 2N×nD mode, one encoding unit can be divided into a prediction unit of size 2N×(3 / 2)N and a prediction unit of size 2N×(1 / 2)N. At this time, the prediction unit of size 2N×(1 / 2)N can be located at the lower end of the prediction unit of size 2N×(3 / 2)N. Also, in the nL×2N mode, one encoding unit can be divided into a prediction unit of size (1 / 2)N×2N and a prediction unit of size (3 / 2)N×2N. At this time, the prediction unit of size (1 / 2)N×2N can be located on the left side of the prediction unit of size (3 / 2)N×2N. In the nR×2N mode, one encoding unit can be divided into a prediction unit of size (3 / 2)N×2N and a prediction unit of size (1 / 2)N×2N. At this time, the prediction unit of size (1 / 2)N×2N can be located on the right side of the prediction unit of size (3 / 2)N×2N.
[0080] The above-described splitting mode corresponds to one embodiment, and the method in which the encoding unit is split into prediction units is not limited to the embodiment. For example, in the case of inter prediction 530, only four splitting modes of 2N×2N, 2N×N, N×2N, and N×N may be used for the splitting mode of the encoding unit (and / or prediction unit), or other splitting modes other than the above-described eight splitting modes may be further used.
[0081] The splitting mode applied to the current encoding unit (and / or prediction unit) can be determined by the encoder. Information regarding the splitting mode determined by the encoder can be encoded and transmitted to the decoder, and the decoder can determine the splitting mode of the current encoding unit (and / or prediction unit) based on the transmitted splitting mode information. As an example, the splitting mode information can be transmitted to the decoder through the part_mode syntax.
[0082] On the other hand, the numbers assigned to each prediction unit shown in 520 and 530 of FIG. 5 indicate the splitting index of the prediction unit. Here, the splitting index means an index indicating which prediction unit among the prediction units belonging to the current encoding unit the current prediction unit corresponds to. The splitting index is represented by partIdx as an example.
[0083] Referring to FIG. 5, as an example, in the N×N splitting mode of 520 in FIG. 5, the splitting index of the prediction unit located in the upper right within the encoding unit corresponds to 1. Therefore, when 1 is assigned to the splitting index of the current prediction unit, the value of the splitting index indicates that the current prediction unit is the prediction unit located in the upper right within the current encoding unit. As another example, in the 2N×nU splitting mode of 530 in FIG. 5, the splitting index of the prediction unit located on the left side within the encoding unit corresponds to 0. Therefore, when 0 is assigned to the splitting index of the current prediction unit, the value of the splitting index indicates that the current prediction unit is the prediction unit located on the left side within the current encoding unit.
[0084] The method for allocating the split index in each split mode shown in FIG. 5 is only one example, and the presence or absence of allocation of the split index and the allocation method may be different from those in the above-described examples. As an example, in the 2N×nU split mode of 530 in FIG. 5, the split index of the prediction unit located on the left side within the coding unit may correspond to 1. As another example, in the 2N×2N split mode, since the coding unit is not split into a plurality of prediction units, the split index may not be allocated to the prediction unit. Hereinafter, in the examples described later in this specification, for convenience of explanation, it is assumed that the split mode and the split index shown in FIG. 5 are applied during coding and decoding.
[0085] Hereinafter, in this specification, the current block means a block in which current encoding, decoding, and / or prediction processing is being performed, and corresponds to the processing unit when encoding, decoding, and / or prediction processing is performed. As an example, when prediction processing is performed on the current block, the current block corresponds to the prediction target block corresponding to the current prediction unit. And in this specification, the block generated by prediction is called a prediction block.
[0086] Since the "unit" means a processing unit when encoding and decoding are performed, etc., it may be distinguished from the "block" indicating a combination of pixels and / or samples, but in this specification, for convenience of explanation, the "unit" may sometimes refer to the "block" corresponding to the "unit". As an example, hereinafter, in this specification, the prediction target block corresponding to one prediction unit may sometimes be called a prediction unit, and the encoding / decoding target block corresponding to one encoding unit may sometimes be called an encoding unit. Such a distinction should be clearly understood by those having ordinary knowledge in the relevant technical field.
[0087] On one hand, when an inter prediction is performed on a current block, in order to reduce the amount of transmission information by prediction, prediction modes such as Advanced Motion Vector Prediction (AMVP), merge mode, and / or skip mode are used.
[0088] In the merge mode, the current block can be merged with other blocks (e.g., neighboring blocks. Here, the neighboring blocks include blocks adjacent to the current block and / or blocks closest to the outer corners of the current block) in the current picture and / or reference pictures. At this time, merging means obtaining motion information from the motion information of other blocks in the current picture and / or reference pictures in the inter prediction of the current block.
[0089] The merge-related information of the current block includes information indicating whether the prediction mode for the current block is the merge mode, information indicating which merge candidate among the merge candidates included in the merge candidate list the current block is merged with, and the like. Hereinafter, the information indicating whether the prediction mode for the current block is the merge mode is referred to as a merge flag, and the information indicating which merge candidate among the merge candidates included in the merge candidate list the current block is merged with is referred to as a merge index. For example, the merge flag is represented by merge_flag, and the merge index is represented by merge_idx. At this time, the merge index can also be obtained only when the merge flag indicates that the prediction mode for the current block is the merge mode (e.g., merge_flag = 1).
[0090] The skip mode is a prediction mode in which the transmission of the residual signal, which is the difference between the predicted block and the current block, is omitted. In the skip mode, the value of the residual signal between the predicted block and the current block is 0. Therefore, in the skip mode, the encoder does not transmit the residual signal to the decoder, and the decoder can generate the predicted block using only the motion information out of the residual signal and the motion information. In the skip mode, the encoder can transmit the motion information to the decoder. At this time, the motion information can also be transmitted by a method of designating any one of the surrounding blocks of the current block and using the motion information of the block for the current block.
[0091] In the above-described skip mode, in order to obtain the motion information of the current block, the same method as that used in the merge mode can be used. At this time, in the skip mode and the merge mode, the same surrounding block can be used as a candidate block for deriving the motion information. For example, also in the skip mode, the motion information of the merge candidate block indicated by the merge index among the merge candidates included in the merge candidate list can be directly used as the motion information of the current block. The skip mode in such a case is also called the merge skip mode. Hereinafter, in this specification, the skip mode means the above-described merge skip mode. Specific examples of the inter prediction method in the merge mode will be described later in relation to FIG. 6.
[0092] FIG. 6 is a flowchart schematically showing an embodiment of the inter prediction method in the merge mode.
[0093] The embodiment of FIG. 6 can be applied to the encoder and the decoder. Hereinafter, for convenience, the embodiment of FIG. 6 will be described centering on the decoder.
[0094] Referring to FIG. 6, the decoder can generate a merge candidate list composed of a plurality of merge candidates (S610). The decoder can derive a plurality of merge candidates through a predetermined process, and can generate a merge candidate list based on the derived merge candidates. At this time, motion information included in a block in the current picture and / or a same-position block (col block) in a reference picture that is not the current picture can be used as a merge candidate and / or can be used for deriving a merge candidate. Hereinafter, for convenience of explanation in this specification, a block including motion information used as a merge candidate is referred to as a "merge candidate block". Examples of merge candidates used for generating a merge candidate list will be described later.
[0095] Referring further to FIG. 6, the decoder can derive the motion information of the current block based on the generated merge candidate list (S620).
[0096] Specifically, the decoder can select a merge candidate used for deriving the motion information of the current block among the merge candidates constituting the merge candidate list. As an example, the decoder can select the merge candidate indicated by the merge index transmitted from the encoder as the merge candidate used for deriving the motion information of the current block. At this time, the decoder can derive the motion information of the current block based on the selected merge candidate. For example, the decoder can use the motion information of the selected merge candidate as the motion information of the current block as it is.
[0097] Once the motion information of the current block is derived, the encoder can generate a predicted block for the current block based on the derived motion information (S630).
[0098] FIG. 7 is a diagram schematically showing an example of a merge candidate used for generating a merge candidate list.
[0099] When the merge mode is applied as described above, the motion information of the current block can be derived based on the motion information of any one of the merge candidates included in the merge candidate list. For example, the motion information of any one of the merge candidates included in the merge candidate list can be used as the motion information of the current block. At this time, the residual signal may be transmitted together with the motion information, or when the pixel value of the predicted block is directly used as the pixel value of the current block, the residual signal may not be transmitted.
[0100] 710 in FIG. 7 shows an example of a merge candidate used for generating the merge candidate list. Referring to 710 in FIG. 7, the left adjacent block A of the current block and / or the upper adjacent block B of the current block are used as merge candidate blocks. At this time, as shown in the figure, the left adjacent block of the current block may be the uppermost block among the blocks adjacent to the left side of the current block, or the upper adjacent block of the current block may be the leftmost block among the blocks adjacent to the upper side of the current block. Then, the lower left corner block C and / or the upper right corner block D are used as merge candidate blocks. The above-mentioned left adjacent block A, upper adjacent block B, lower left corner block C, and upper right corner block D correspond to the adjacent blocks of the current block located within the current picture. Therefore, the merge candidates derived from the merge candidate blocks can be called spatial merge candidates. From another perspective, since the spatial merge candidates can be used for predicting the motion vector of the current block, they may also be called a Spatial Motion Vector Predictor (SMVP).
[0101] Also, in 710 of FIG. 7, the same-position block (col) is used as a merge candidate block. The same-position block corresponds to a block in a reference picture that is not the current picture. Specifically, the encoder and decoder can select, as the same-position block, a block at a predetermined position in the reference picture and / or a block at a position determined by a predetermined process. Here, the position of the same-position block can be derived based on the current block and / or a block in the reference picture co-located with the current block (hereinafter referred to as the "same-position block" for convenience of explanation). The same-position block described above is a block derived from the reference picture. Therefore, a merge candidate derived from the same-position block may be called a temporal merge candidate. From another perspective, since the temporal merge candidate can be used for predicting the motion vector of the current block, it may also be called a Temporal Motion Vector Predictor (TMVP).
[0102] 720 in FIG. 7 shows another example of a merge candidate used for generating a merge candidate list. Referring to 720 in FIG. 7, the merge candidate list includes the motion information of the bottom-left block A 0 , the top-right block B 0 and / or the top-left block B 2 as merge candidates. The merge candidate list also includes the motion information of the left neighboring block A 1 of the current block and / or the upper neighboring block B 1 of the current block as merge candidates. At this time, the left neighboring block A 1 is the lowermost block among the blocks adjacent to the left side of the current block, and the upper neighboring block B 1 is the rightmost block among the blocks adjacent to the upper side of the current block. The bottom-left block A 0 , the left neighboring block A 1 , the top-right block B 0 , the upper neighboring block B 1 and the top-left block B 2corresponds to the neighboring blocks of the current block located within the current picture. Therefore, the merge candidates derived from the merge candidate blocks may be referred to as spatial merge candidates. From another perspective, since the spatial merge candidates can be used for predicting the motion vector of the current block, they may also be referred to as a spatial motion vector predictor (SMVP).
[0103] Also, in 720 of FIG. 7, similar to 710 of FIG. 7, the motion information of the same-position blocks is used as the merge candidates included in the merge candidate list. As described above, the same-position blocks correspond to the blocks in the reference picture that is not the current picture. Here, the position of the same-position blocks can be derived based on the current block and / or the same-position blocks. The same-position blocks described above are the blocks derived from the reference picture. Therefore, the merge candidates derived from the same-position blocks may be referred to as temporal merge candidates. From another perspective, since the temporal merge candidates can be used for predicting the motion vector of the current block, they may also be referred to as a temporal motion vector predictor (TMVP).
[0104] The merge candidates used for generating the merge candidate list in this specification are not limited to the above-described embodiments, and if necessary, the merge candidates can also be derived in a manner different from the above-described embodiments. However, hereinafter, unless otherwise specified in this specification, it is assumed that the merge candidates at the positions shown in 720 of FIG. 7 are used for the prediction of the merge mode based on the block to be predicted (and / or the current block). Also, hereinafter, when the content regarding the merge candidates of the prediction unit to be merged / skipped is described in this specification, the block closest to the lower left corner outside the prediction unit is A 0 and the block located at the lowest end among the blocks adjacent to the left side of the prediction unit is A 1 and the block closest to the upper right corner outside the prediction unit is B 0 and the block located at the rightmost side among the blocks adjacent to the upper end of the prediction unit is B 1 and the block closest to the upper left corner outside the prediction unit is B 2and display it.
[0105] Referring to the embodiment of FIG. 7, the method for selecting merge candidates that make up the merge candidate list can be extended in various ways. The encoder and decoder can select merge candidates according to the embodiment of FIG. 7 described above to form a merge candidate list. At this time, when a merge candidate is selected, the encoder and decoder can also eliminate duplicate candidates to reduce redundancy and form a merge candidate list.
[0106] Also, in the embodiment of FIG. 7 described above, the number of merge candidates that make up the merge candidate list can be limited to a predetermined fixed number. For example, in the 720 embodiment of FIG. 7, the number of merge candidates is limited to 5, and the merge candidates in the merge candidate list are {A 1 , B 1 , B 0 , A 0 , B 2 , col} are added and / or inserted in this order. At this time, assuming that A 1 , B 1 , B 0 , A 0 , B 2 , col blocks are all available, only the motion information of A 1 , B 1 , B 0 , A 0 , col blocks can be determined as the merge candidates included in the merge candidate list. As another example, among A 1 , B 1 , B 0 , A 0 , B 2 , col blocks, the number of available blocks may be less than 5. In this case, the encoder and decoder can derive new merge candidates through a predetermined process based on the available merge candidates, so that the finally derived number of merge candidates becomes 5.
[0107] On one hand, as an example, when performing inter prediction in the merge mode and / or skip mode, the encoder and decoder can perform motion estimation (ME) for each prediction unit in sequence. However, as another example, in order to improve the encoding / decoding performance, the encoder and decoder can also perform motion estimation for a plurality of prediction units simultaneously. That is, the motion estimation in the merge mode and / or skip mode can be performed in parallel for a plurality of prediction units, and the motion estimation in such a case can be called parallel motion estimation. Hereinafter, in this specification, the merge mode to which parallel motion estimation is applied is called parallel merge mode and / or parallel merge provisionally, and the skip mode to which parallel motion estimation is applied is called parallel skip mode and / or parallel skip.
[0108] The embodiments described below are centered around the parallel merge mode for the sake of convenience of explanation. However, the embodiments described below are not limited to the parallel merge mode and can be applied to the parallel skip mode in the same or similar manner.
[0109] FIG. 8 is a diagram schematically showing an embodiment of a parallel processing unit in the merge mode and skip mode.
[0110] The overall block shown in FIG. 8 represents one coding tree block (CTB), and the coding tree block can correspond to the largest coding unit (LCU). As described above, the coding tree block can have a hierarchical structure composed of smaller coding units through division, and each coding unit can be used as one prediction unit or divided into a plurality of prediction units. Therefore, the square blocks and rectangular blocks constituting the coding tree block in FIG. 8 each correspond to one prediction unit.
[0111] On one hand, the square blocks 810, 820, 830, and 840 shown in FIG. 8 each represent a parallel processing unit for which parallel motion prediction is performed. That is, a largest coding unit (LCU) can be divided into a plurality of non-overlapping parallel processing units. Here, as an example, the plurality of parallel processing units can have the same size. At this time, the encoder and decoder can perform motion prediction simultaneously for all prediction units within one parallel processing unit. For example, motion prediction can be performed in parallel for prediction unit A and prediction unit B included in parallel processing unit 810. Since the parallel processing unit corresponds to a region to which parallel motion prediction is applied, it may also be referred to as a motion estimation region (MER). Hereinafter, for convenience of explanation in this specification, the parallel processing unit for which parallel motion prediction is performed is referred to as MER.
[0112] When parallel motion prediction is applied in the merge mode and / or skip mode, the encoder needs to transmit information related to the parallel motion prediction to the decoder. As described above, since parallel motion prediction may be applied to all prediction units within the MER, the information transmitted from the encoder to the decoder corresponds to the parallel processing level in the merge mode and / or skip mode. Here, the parallel processing level corresponds to the size of the parallel processing unit for which parallel motion prediction is performed, and thus also corresponds to the size of the MER. For example, when parallel motion prediction is performed in block units of a size of 32×32, that is, when the size of the MER corresponds to 32×32, it can be said that the parallel motion prediction is performed at the 32×32 parallel processing level. Since the parallel processing level indicates the parallel processing level in the merge mode and / or merge skip mode, it may also be referred to as the parallel merge level.
[0113] Here, the parallel processing level may be restricted within a certain range. For example, the parallel processing level may be restricted to a size of 4×4 or less than the size of the LCU. At this time, the MER may have a size less than or equal to the size of the LCU and / or the CTB.
[0114] The information regarding the above-described parallel processing level can be transmitted from an encoder to a decoder by including it in a sequence parameter set (SPS) or a picture parameter set (PPS) on a bitstream. The parallel processing level-related information included in the PPS can be defined, as an example, by syntax elements as shown in Table 1 below.
[0115] [Table 1]
[0116] Here, log2_parallel_merge_level_minus2 indicates the parallel processing level in the merge mode and / or skip mode. Specifically, the value assigned to log2_parallel_merge_level_minus2 corresponds to the logarithmic value of the actual parallel processing level, that is, the value obtained by subtracting 2 from the logarithmic value of the actual MER size. When the minimum size of the prediction unit is 4×4, the minimum value of the logarithmic value of the parallel processing level corresponds to 2. Therefore, in order to reduce the amount of transmitted information, the value obtained by subtracting 2 from the logarithmic value of the actual parallel processing level is assigned to log2_parallel_merge_level_minus2.
[0117] The parallel processing level information defined in the PPS is not limited to the above-described example. In the example of Table 1, the syntax indicating other information excluding the information regarding the parallel processing level may be applied differently as needed.
[0118] On the other hand, log2_parallel_merge_level_minus2 in Table 1 can have a meaning as in the example of Table 2 below depending on the assigned value.
[0119] [Table 2]
[0120] Referring to Table 2, when a value of 0 is assigned to log2_parallel_merge_level_minus2, the size of the MER corresponds to 4×4. In this case, since the size of the minimum prediction unit is 4×4, the encoder and decoder can perform motion prediction in order for all prediction units within the LCU. As another example, when a value of 2 is assigned to log2_parallel_merge_level_minus2, the size of the MER corresponds to 16×16. In this case, the encoder and decoder can perform parallel motion prediction at the 16×16 parallel processing level. That is, the encoder and decoder can perform motion prediction in parallel for all prediction units within the 16×16 block. Similarly, when other values are assigned to log2_parallel_merge_level_minus2, the encoder and decoder can perform parallel motion prediction in a similar manner according to the assigned values.
[0121] On the other hand, one coding tree block can include a plurality of coding units (CUs). At this time, one parallel processing unit, that is, one MER can also include one prediction unit (PU), and can have the same size as one coding unit. Also, one MER can include a plurality of coding units.
[0122] For example, referring to FIG. 8, MER810 has the same size as one encoding unit composed of prediction unit A and prediction unit B. Also, MER830 and MER840 each have the same size as encoding unit G and encoding unit H, respectively. Thus, when one encoding unit has the same size as MER, the parallel motion prediction for that encoding unit can also be regarded as being performed in units of the encoding unit. On the other hand, MER820 can include encoding unit C (encoding unit C corresponds to prediction unit C), encoding unit D (encoding unit D includes prediction unit D1 and prediction unit D2), encoding unit E (encoding unit E corresponds to prediction unit E), and encoding unit F (encoding unit F includes prediction unit F1 and prediction unit F2). At this time, the motion prediction in the merge mode and / or skip mode can be performed in parallel for all of prediction units C, D1, D2, E, F1, and F2 within MER820.
[0123] On the other hand, as in the embodiment of FIG. 8 described above, in order for parallel motion prediction to be performed in the merge mode and / or skip mode, independent inter-prediction and / or motion prediction must be executable for each of the parallel processing units, that is, all the prediction units within MER. However, in the merge mode and / or skip mode described above, problems may also occur in relation to parallel motion prediction.
[0124] FIG. 9 is a diagram for schematically explaining the problems that occur during parallel motion execution in the merge mode. 910, 920, 930, and 940 in FIG. 9 each represent one encoding unit.
[0125] As described with reference to FIG. 8, the parallel processing unit, i.e., the MER, may or may not have the same size as the current encoding unit. In the example of FIG. 9, it is assumed that the size of the MER is the same as that of the current encoding unit. At this time, each encoding unit shown in FIG. 9 corresponds to a parallel processing unit, and in this case, parallel motion prediction may be performed on a per-encoding unit basis. However, the problems described later with reference to FIG. 9 may occur identically or similarly even when the size of the MER is larger than that of the current encoding unit.
[0126] In 910 of FIG. 9, the splitting mode of the encoding unit (and / or prediction unit) is 2N×2N. Therefore, since one encoding unit can be used as prediction unit A without being split, problems due to parallel motion prediction do not occur.
[0127] In 920 of FIG. 9, the splitting mode of the encoding unit (and / or prediction unit) is 2N×N. In this case, for parallel motion prediction, motion prediction for the upper prediction unit B1 and the lower prediction unit B2 must be performed simultaneously. However, among the merge candidates for the lower prediction unit B2, the motion information of the block 925 located most to the right adjacent to the upper end of the lower prediction unit B2 can be used as a merge candidate for the lower prediction unit B2 only when the encoding / decoding of the upper prediction unit B1 is completed. Thus, since the lower prediction unit B2 uses the motion information belonging to the upper prediction unit B1, motion prediction cannot be performed simultaneously for the prediction units belonging to the encoding unit of 920 in FIG. 9.
[0128] In 930 of FIG. 9, the splitting mode of the encoding unit (and / or prediction unit) is N×2N. In this case, for parallel motion prediction, motion prediction for the left prediction unit C1 and the right prediction unit C2 must be performed simultaneously. However, among the merge candidates for the right prediction unit C2, the motion information of the block 935 located at the lowermost end adjacent to the left side of the right prediction unit C2 can be used as a merge candidate for the right prediction unit C2 only when the encoding / decoding of the left prediction unit C1 is completed. Thus, since the right prediction unit C2 uses the motion information belonging to the left prediction unit C1, motion prediction cannot be performed simultaneously for the prediction units belonging to the encoding unit of 930 in FIG. 9.
[0129] In 940 of FIG. 9, the splitting mode of the encoding unit (and / or prediction unit) is N×N. In this case, for parallel motion prediction, motion prediction for the upper left prediction unit D1, the upper right prediction unit D2, the lower left prediction unit D3, and the lower right prediction unit D4 must be performed simultaneously. However, as an example, among the merge candidates for the lower right prediction unit D4, the motion information of the block 941 located at the upper left corner of the lower right prediction unit D4, the block 943 located at the rightmost side adjacent to the upper end of the lower right prediction unit D4, and the block 945 located at the lowermost end in contact with the left side of the lower right prediction unit D4 can be used as merge candidates for the lower right prediction unit D4 only when the encoding / decoding of the upper left prediction unit D1, the upper right prediction unit D2, and the lower left prediction unit D3 is completed. Also, in 940 of FIG. 9, similar problems to those of the lower right prediction unit D4 described above may occur in the upper right prediction unit D2 and the lower left prediction unit D3. Thus, since the prediction units other than the upper left prediction unit D1 use the motion information belonging to other prediction units, motion prediction cannot be performed simultaneously for the prediction units belonging to the encoding unit of 940 in FIG. 9.
[0130] In the above-described embodiments, only the problems in the case where the partitioning modes of the encoding unit (and / or prediction unit) are 2N×2N, 2N×N, N×2N, and N×N are described. However, such problems may occur similarly or analogously in other partitioning modes (for example, 2N×nU, 2N×nD, nL×2N, or nR×2N). Hereinafter, embodiments of a merge candidate derivation method and a merge candidate list configuration method for solving the problems described with reference to FIG. 9 will be described.
[0131] FIG. 10 is a diagram schematically showing an embodiment of a merge candidate derivation method for enabling parallel motion prediction.
[0132] 1010 to 1060 in FIG. 10 each represent one encoding unit, and the numbers displayed for each prediction unit belonging to each encoding unit indicate partitioning indices.
[0133] In the embodiment of FIG. 10, for convenience of explanation, it is assumed that the size of the MER is the same as that of the current encoding unit. At this time, each encoding unit shown in FIG. 10 corresponds to a parallel processing unit, and in this case, parallel motion prediction may be performed in units of encoding units. However, the embodiment of FIG. 10 described below may also be equally applied to each encoding unit belonging to the parallel processing level even when the size of the MER, that is, the parallel processing level, is larger than the encoding unit.
[0134] On the other hand, as described with reference to FIG. 9, there may be a prediction unit within the MER where parallel motion prediction is performed that uses motion information of other blocks (and / or prediction units) for which encoding / decoding has not been completed yet. In such a case, motion prediction cannot be performed simultaneously for the prediction units belonging to the MER. Therefore, in order to solve such a problem, the encoder and decoder do not use a block for which motion information is not available as a merge candidate block. That is, the encoder and decoder process a block as being unavailable during the merge candidate derivation process and do not add the motion information of the block to the merge candidate list.
[0135] In 1010 of FIG. 10, the division mode of the encoding unit (and / or prediction unit) is 2N×N, and the merge candidates of the lower-end prediction unit with a division index of 1 are shown. At this time, block A used as the merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block B 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block B 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as the merge candidate block for the lower-end prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0136] Also, when predicting the motion of the lower-end prediction unit with a division index of 1, the motion information of block A 0 and block B 0 may also be unavailable. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 and block B 0 are blocks that cannot be used during parallel motion prediction, they are processed as unavailable and not used as the merge candidate block for the lower-end prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0137] As in the embodiment of 1010 of FIG. 10, when blocks that cannot be used during parallel motion prediction are processed as unavailable, the number of spatial merge candidates derived for the lower-end prediction unit with a division index of 1 is 2. At this time, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the lower-end prediction unit is 3.
[0138] In 1020 of FIG. 10, the splitting mode of the encoding unit (and / or prediction unit) is 2N×nU, and the merge candidates of the lower prediction unit with a splitting index of 1 are shown. At this time, block A used as the merge candidate block 0 , A 1 , B 0 , B 1 and B 2 among them, block B 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block B 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as the merge candidate block for the lower prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0139] Also, when predicting the motion of the lower prediction unit with a splitting index of 1, the motion information of block A 0 and block B 0 may also be unavailable. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 and block B 0 are blocks that cannot be used during parallel motion prediction, they are processed as unavailable and not used as the merge candidate block for the lower prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0140] As in the embodiment of 1020 in FIG. 10, when a block that cannot be used during parallel motion prediction is processed as unavailable, the number of spatial merge candidates derived for the lower prediction unit with a splitting index of 1 is 2. In this case, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the lower prediction unit is 3.
[0141] In 1030 of FIG. 10, the division mode of the encoding unit (and / or prediction unit) is 2N×nD, and the merge candidates of the lower prediction unit with a division index of 1 are shown. At this time, block A used as the merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block B 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block B 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as the merge candidate block for the lower prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0142] Also, when predicting the motion of the lower prediction unit with a division index of 1, the motion information of block A 0 and block B 0 may not be available. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 and block B 0 are blocks that cannot be used during parallel motion prediction, they are processed as unavailable and not used as the merge candidate block for the lower prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0143] As in the embodiment of 1030 in FIG. 10, when a block that cannot be used during parallel motion prediction is processed as unavailable, the number of spatial merge candidates derived for the lower prediction unit with a division index of 1 is 2. In this case, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the lower prediction unit is 3.
[0144] In 1040 of FIG. 10, the partitioning mode of the encoding unit (and / or prediction unit) is N×2N, and the merge candidates of the right prediction unit with a partitioning index of 1 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 among them, block A 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block A 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0145] Also, during motion prediction of the right prediction unit with a partitioning index of 1, the motion information of block A 0 may not be available. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0146] As in the embodiment of 1040 in FIG. 10, when a block that cannot be used during parallel motion prediction is processed as unavailable, the number of spatial merge candidates derived for the right prediction unit with a partitioning index of 1 is 3. In this case, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the right prediction unit is 4.
[0147] In 1050 of FIG. 10, the division mode of the encoding unit (and / or prediction unit) is nL×2N, and the merge candidates of the right prediction unit with a division index of 1 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 among them, block A 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block A 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0148] Also, when predicting the motion of the right prediction unit with a division index of 1, the motion information of block A 0 may not be available. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0149] As in the embodiment of 1050 of FIG. 10, when a block that cannot be used during parallel motion prediction is processed as unavailable, the number of spatial merge candidates derived for the right prediction unit with a division index of 1 is 3. In this case, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the right prediction unit is 4.
[0150] In 1060 of FIG. 10, the division mode of the encoding unit (and / or prediction unit) is nR×2N, and the merge candidates of the right prediction unit with a division index of 1 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block A 1 is a block belonging to another prediction unit within the same encoding unit. Therefore, since block A 1 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0151] Also, during the motion prediction of the right prediction unit with a division index of 1, the motion information of block A 0 may not be available. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of the block may not be completed. At this time, since block A 0 is a block that cannot be used during parallel motion prediction, it is processed as unavailable and not used as a merge candidate block for the right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0152] As in the embodiment of 1060 in FIG. 10, when a block that cannot be used during parallel motion prediction is processed as unavailable, the number of spatial merge candidates derived for the right prediction unit with a division index of 1 is 3. In this case, when 1 is added to the number of spatial merge candidates considering the temporal merge candidates, the maximum number of available merge candidates derived for the right prediction unit is 4.
[0153] According to the above-described embodiment, in the process of deriving spatial merge candidates, the encoder and decoder can process the peripheral blocks of the prediction unit as unavailable according to predetermined conditions. This is expressed as follows.
[0154] [Number]
[0155] Here, availableFlagN is a flag indicating whether block N (where N is one of A 0 , A 1 , B 0 , B 1 and B 2 ) can be used as a merge candidate block. Also, mvLXN indicates the motion vector of block N, and refIdxLXN indicates the reference picture index of block N. Here, X can have a value of 0 or 1. And predFlagLXN corresponds to a flag indicating whether LX prediction is performed for block N.
[0156] There can be various conditions for processing the surrounding blocks of the prediction unit as unavailable. As an example, when block N is block B 2 and blocks A 0 , A 1 , B 0 , B 1 are all available, in order to maintain five merge candidate counts including the same-position block, block B 2 is processed as unavailable. Also, when the prediction mode of the surrounding block is the intra mode, that block is also processed as unavailable. This is expressed as follows.
[0157] [Number]
[0158] Also, as in the above-described embodiment, when the split mode of the current coding unit (and / or prediction unit) is 2N×N, 2N×nU, or 2N×nD, and the split index of the current prediction unit is 1, block B 1is processed as unavailable. When the split mode of the current encoding unit (and / or prediction unit) is N×2N, nL×2N, or nR×2N, and the split index of the current prediction unit is 1, block A 1 is processed as unavailable. This is expressed as follows.
[0159] [Number]
[0160] The last two conditions described above enable parallel motion prediction for all prediction units belonging to the same encoding unit by preventing the prediction units belonging to the same encoding unit from being dependent on each other. Also, when one prediction unit uses the motion information belonging to another prediction unit within the same encoding unit, the rectangular prediction units within the same encoding unit have the same motion information, and as a result, they have the same motion information as the 2N×2N split mode. At this time, the last two conditions described above can prevent the rectangular prediction units within the same encoding unit from having the same motion information as the 2N×2N split mode.
[0161] FIG. 11 is a diagram schematically showing another embodiment of a merge candidate derivation method for enabling parallel motion prediction. 1110 to 1130 in FIG. 11 each represent one encoding unit, and the numbers displayed for each prediction unit belonging to each encoding unit indicate the split index.
[0162] In the embodiment of FIG. 11, for convenience of explanation, it is assumed that the size of the MER is the same as that of the current encoding unit. At this time, each encoding unit shown in FIG. 11 corresponds to a parallel processing unit, and in this case, parallel motion prediction can be performed in units of encoding units. However, the embodiment of FIG. 11 described later can also be applied identically to each encoding unit belonging to the parallel processing level even when the size of the MER, that is, the parallel processing level, is larger than the encoding unit.
[0163] On the other hand, in the embodiment of FIG. 10, embodiments in which the partitioning mode of the encoding unit (and / or prediction unit) is 2N×N, 2N×nU, 2N×nD, N×2N, nL×2N, and nR×2N were described. However, even in the MER where parallel motion prediction is performed when the partitioning mode of the encoding unit (and / or prediction unit) is N×N, there may be a prediction unit that uses the motion information of other blocks (and / or prediction units) for which encoding / decoding has not been completed yet. In such a case, motion prediction cannot be performed simultaneously for the prediction units belonging to the MER. Therefore, in order to solve such problems, the encoder and decoder do not use the motion information of blocks for which the motion information is not available as merge candidates. That is, the encoder and decoder process the blocks as unavailable during the process of deriving merge candidates and do not add the motion information of the blocks to the merge candidate list.
[0164] In 1110 of FIG. 11, the partitioning mode of the encoding unit (and / or prediction unit) is N×N, and the merge candidates of the upper-right prediction unit with a partitioning index of 1 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block A 0 and block A 1 are blocks belonging to other prediction units within the same encoding unit. In this case, the upper-right prediction unit is subordinate to other prediction units within the same encoding unit. Therefore, since block A 0 and block A 1 are blocks that cannot be used during parallel motion prediction, they are processed as unavailable and are not used as merge candidate blocks for the upper-right prediction unit. In this case, the motion information of the blocks is not added to the merge candidate list.
[0165] As in the example of 1110 in FIG. 11, when a block that cannot be used during parallel motion prediction is processed as being unavailable, the number of spatial merge candidates derived for the upper right prediction unit with a split index of 1 is three. In this case, when 1 is added to the number of spatial merge candidates in consideration of the temporal merge candidates, the maximum number of available merge candidates derived for the upper right prediction unit is four.
[0166] In 1120 of FIG. 11, the split mode of the coding unit (and / or prediction unit) is N×N, and the merge candidates of the lower left prediction unit with a split index of 2 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block B 0 and block B 1 are blocks belonging to other prediction units within the same coding unit. In this case, the lower left prediction unit is subordinate to other prediction units within the same coding unit. Therefore, since block B 0 and block B 1 are blocks that cannot be used during parallel motion prediction, they are processed as being unavailable and are not used as merge candidate blocks for the lower left prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0167] Also, when predicting the motion of the lower left prediction unit with a split index of 2, the motion information of block A 0 may not be available. This is because, depending on the coding / decoding procedure, the coding and / or decoding of the block may not be completed. At this time, since block A 0 is a block that cannot be used during parallel motion prediction, it is processed as being unavailable and is not used as a merge candidate block for the lower left prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0168] As in the example of 1120 in FIG. 11, when a block that cannot be used during parallel motion prediction is processed as being unavailable, the number of spatial merge candidates derived for the lower left prediction unit with a split index of 2 is two. At this time, when considering temporal merge candidates and adding 1 to the number of spatial merge candidates, the maximum number of available merge candidates derived for the lower left prediction unit is three.
[0169] In FIG. 11's 1130, the split mode of the coding unit (and / or prediction unit) is N×N, and the merge candidates of the lower right prediction unit with a split index of 3 are shown. At this time, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 Among them, block A 1 , block B 1 and block B 2 belong to other prediction units within the same coding unit. In this case, the lower right prediction unit is subordinate to other prediction units within the same coding unit. Therefore, block A 1 , block B 1 and block B 2 are blocks that cannot be used during parallel motion prediction, so they are processed as being unavailable and are not used as merge candidate blocks for the lower right prediction unit. In this case, the motion information of the blocks is not added to the merge candidate list.
[0170] Also, during motion prediction of the lower right prediction unit with a split index of 3, the motion information of block A 0 and block B 0 may also be unavailable. This is because, in terms of the encoding / decoding procedure, the encoding and / or decoding of the blocks may not be completed. At this time, block A 0 and block B 0Since it is a block that cannot be used during parallel motion prediction, it is treated as unavailable and is not used as a merge candidate block for the lower right prediction unit. In this case, the motion information of the block is not added to the merge candidate list.
[0171] As in the embodiment of 1130 in FIG. 11, when a block that cannot be used during parallel motion prediction is treated as unavailable, the number of spatial merge candidates derived for the lower right prediction unit with a split index of 3 is 0. In this case, when 1 is added to the number of spatial merge candidates in consideration of temporal merge candidates, the maximum number of available merge candidates derived for the lower right prediction unit is 1.
[0172] According to the above-described embodiment, in the process of deriving spatial merge candidates, the encoder and decoder can treat the peripheral blocks of the prediction unit as unavailable according to predetermined conditions. As described with reference to FIG. 10, there can be various conditions for treating the peripheral blocks of the prediction unit as unavailable.
[0173] According to the embodiment of FIG. 11, when the split mode of the current encoding unit (and / or prediction unit) is N×N and the split index of the current prediction unit is 1, block A 0 and block A 1 are treated as unavailable. When the split mode of the current encoding unit (and / or prediction unit) is N×N and the split index of the current prediction unit is 2, block B 0 and block B 1 are treated as unavailable. Also, when the split mode of the current encoding unit (and / or prediction unit) is N×N and the split index of the current prediction unit is 3, block A 1 block B 1 and block B 2 are treated as unavailable. The three conditions can be added as follows to the embodiment described in FIG. 10.
[0174]
Number
[0175] According to the three conditions added to the above-described embodiments, it is possible to prevent one prediction unit belonging to an encoding unit from referring to the motion information of other prediction units belonging to the same encoding unit. Therefore, according to the above-described embodiments, it is possible to perform parallel derivation of spatial merge candidates for all prediction units belonging to the same encoding unit.
[0176] On the other hand, in the parallel merge mode and / or the parallel skip mode, when the embodiments of FIGS. 10 and 11 described above are applied, it is possible to estimate the maximum number of available merge candidates that can be derived for each prediction unit according to the split mode and the split index. The maximum number of available merge candidates for each prediction unit is estimated by adding the number of temporal merge candidates (for example, 1) to the number of available spatial merge candidates that can be used for parallel motion prediction. For example, in each split mode shown in FIGS. 10 and 11, up to 5 available merge candidates can be derived for a prediction unit with a split index value of 0. As another example, in a 2N×N split mode such as 1010 in FIG. 10, up to 3 available merge candidates can be derived for a prediction unit with a split index of 1. The maximum number of available merge candidates derived for each prediction unit according to the split mode and the split index is represented as shown in Table 3 below as one embodiment.
[0177]
Table 3
[0178] Here, PartMode indicates the split mode of the encoding unit (and / or prediction unit), and partIdx indicates the split index of the prediction unit. And maxNumMergeCand indicates the maximum number of available merge candidates derived for the corresponding prediction unit.
[0179] On the one hand, as described with reference to FIG. 7, when the number of merge candidates is limited to 5, the merge index is to indicate one of the 5 merge candidates. In this case, the amount of bits corresponding to the 5 merge candidates can be used for transmitting the merge index. However, as described above, the maximum number of available merge candidates derived for the prediction unit may be less than 5. In this case, the amount of bits required for transmitting the merge index is less than the amount of bits corresponding to the 5 merge candidates. That is, the larger the number of blocks processed as unavailable, the smaller the actual amount of bits required for transmitting the merge index. At this time, the bits used in excess of the actual amount of bits required for transmitting the merge index can be regarded as wasted bits for the merge index.
[0180] To solve the above problems, the encoder and decoder can reduce or save the amount of bits used for transmitting the merge index by encoding / decoding the merge index by applying the number of merge candidates optimized by the split mode and split index.
[0181] As an example, the encoder and the decoder can store the same table as shown in Table 3. At this time, the encoder can determine the maximum number of available merge candidates derived for any prediction unit according to the split mode and the split index based on the table. Then, the encoder can encode the merge index for the prediction unit based on the maximum number and transmit it to the decoder. In this case, since only the amount of bits corresponding to the maximum number is used for the transmission of the merge index, the amount of bits used for the transmission of the merge index can be reduced. Since the same table is stored in the decoder, the maximum number of available merge candidates derived for any prediction unit can be determined in the same way as the encoder. At this time, the decoder can decode the merge index transmitted from the encoder based on the maximum number.
[0182] On the other hand, referring to 1130 in FIG. 11 and Table 3, when the split mode of the encoding unit (and / or prediction unit) is N×N and the split index value of the prediction unit belonging to the encoding unit is 3, only one temporal merge candidate corresponds to the available merge candidates for the prediction unit. At this time, the maximum number of available merge candidates derived for the prediction unit is one. When the maximum number of available merge candidates is one, the decoder can know which merge candidate is used for deriving the motion information of the prediction unit even without a merge index. Therefore, when the split mode of the encoding unit (and / or prediction unit) is N×N and the split index value of the prediction unit belonging to the encoding unit is 3, the encoder does not transmit the merge index for the corresponding prediction unit to the decoder.
[0183] FIG. 12 is a diagram schematically showing still another embodiment of a merge candidate derivation method for enabling parallel motion prediction. 1210 in FIG. 12 shows one encoding unit, and the numbers displayed for each of the prediction units belonging to the encoding unit indicate split indexes.
[0184] In the embodiment of FIG. 12, for the sake of convenience of explanation, it is assumed that the size of the MER is the same as that of the current encoding unit. At this time, the encoding unit shown in FIG. 12 corresponds to the parallel processing unit, and in this case, parallel motion prediction can be performed in units of encoding units. However, in the embodiment of FIG. 12 described later, even when the size of the MER, that is, the parallel processing level, is larger than the encoding unit, a similar method can be applied to each of the encoding units belonging to the parallel processing level.
[0185] In the embodiments of FIGS. 10 and 11 described above, merge candidates corresponding to blocks for which motion information is not available during the execution of parallel motion prediction are processed as not available and are not added to the merge candidate list. At this time, the merge candidates processed as not available can be replaced with the merge candidates used when the split mode of the current encoding unit (and / or prediction unit) is 2N×2N.
[0186] In 1210 of FIG. 12, the split mode of the current encoding unit (and / or prediction unit) is 2N×N, and the prediction unit currently targeted for motion prediction is the lower-end prediction unit with a split index of 1. In this case, as described with reference to FIG. 10, block A used as a merge candidate block 0 , A 1 , B 0 , B 1 and B 2 among them, block A 0 , block B 0 and block B 1 are blocks that cannot be used during parallel motion prediction, and are therefore processed as not available.
[0187] However, block B' (the block closest to the upper right corner outside the current encoding unit) and block B used as merge candidate blocks when the split mode of the current encoding unit (and / or prediction unit) is 2N×2N 0 (the block closest to the upper right corner outside the current encoding unit) and block B 1’(the rightmost block among the blocks adjacent to the upper end of the current encoding unit) may have motion information available during the execution of parallel motion prediction. Therefore, the encoder and decoder use block B 0 instead of block B 0 ’ as a merge candidate block for the lower prediction unit, and use block B 1 instead of block B 1 ’ as a merge candidate block for the lower prediction unit.
[0188] The above-described embodiments have been described by being limited to the case where the split mode of the current encoding unit (and / or prediction unit) is 2N×N, but the present invention is not limited thereto. That is, the above-described merge candidate derivation method can apply a similar method also in the case where the split mode of the current encoding unit is N×2N, N×N, 2N×nU, 2N×nD, nL×2N, or nR×2N.
[0189] On the other hand, the encoder and decoder can also enable parallel motion prediction by deriving and using a common merge candidate and / or a common merge candidate list for a plurality of prediction units for which parallel motion prediction is performed. The parallel motion prediction method based on the common merge candidate and / or the common merge candidate list can be applied independently separately from the embodiments of FIGS. 10 and / or 11 described above, but can also be applied together to the encoder / decoder in combination with the embodiments of FIGS. 10 and / or 11. Hereinafter, the merge candidate commonly used for a plurality of prediction units in this specification is called a "common merge candidate", and the merge candidate list commonly used for a plurality of prediction units is called a "single merge candidate list".
[0190] At this time, the unit from which the common merge candidate and / or single merge candidate list is derived may be a predetermined unit defined in advance. Here, the predetermined unit may be defined by a number, or may be a CU, MER, and / or LCU unit. Also, the unit from which the common merge candidate and / or single merge candidate list is derived may be determined by the encoder. In this case, the encoder can encode information about the unit and transmit it to the decoder. At this time, the decoder can determine the unit from which the common merge candidate and / or single merge candidate list is derived based on the transmitted information. Hereinafter, in this specification, the unit from which the above-described common merge candidate and / or single merge candidate list is derived is referred to as a "merge candidate sharing unit".
[0191] For example, when the merge candidate sharing unit is a CU, all prediction units (prediction units having a merge mode and / or a skip mode) within one CU can share the common merge candidate for the CU and / or the single merge candidate list for the CU. At this time, the single merge candidate list may be the same as the merge candidate list that the prediction units belonging to the CU have when the split mode of the CU (and / or the PU belonging to the CU) is 2N×2N. As another example, when the merge candidate sharing unit is an LCU, all prediction units (prediction units having a merge mode and / or a skip mode) within one LCU can share the common merge candidate for the LCU and / or the single merge candidate list for the LCU. As still another example, when the merge candidate sharing unit is a MER, all prediction units (prediction units having a merge mode and / or a skip mode) within one MER can share the common merge candidate for the MER and / or the single merge candidate list for the MER.
[0192] If all prediction units within a merge candidate sharing unit share a common merge candidate and / or a single merge candidate list, some encoding loss may occur. Therefore, the encoder and decoder can also selectively determine the merge candidate derivation method and / or the merge candidate list derivation method based on the merge candidate sharing flag. Here, the merge candidate sharing flag corresponds to a flag that indicates whether a single merge candidate list is derived and used for all prediction units within the merge candidate sharing unit, or whether separate merge candidate lists are derived and used for each prediction unit. The merge candidate sharing flag is represented, for example, by parallel_merge_cand_flag, parallel_merge_derivation_flag, or singleMCLFlag.
[0193] As an example, when the value of the merge candidate sharing flag is 1, the flag indicates that all prediction units within the merge candidate sharing unit share a common merge candidate and / or a single merge candidate list. That is, in this case, the flag indicates that the positions of the merge candidates (spatial merge candidates and / or temporal merge candidates) are the same for all prediction units within the merge candidate sharing unit. Also, when the value of the merge candidate sharing flag is 0, the flag indicates that separate merge candidate lists are derived and used for each prediction unit.
[0194] The above-mentioned merge candidate sharing flag is, as an example, a flag encoded by the encoder and transmitted to the decoder. At this time, the merge candidate sharing flag can be defined in the SPS, PPS, adaptation parameter set (APS), or slice header. That is, the merge candidate sharing flag can be included in the SPS, PPS, APS, or slice header on the bitstream and transmitted from the encoder to the decoder. In this case, the decoder can determine the merge candidate derivation method and / or the merge candidate list derivation method based on the transmitted flag.
[0195] As another example, the value assigned to the merge candidate sharing flag can also be derived in the same manner by the encoder and the decoder. In this case, the encoder does not transmit information regarding the merge candidate sharing flag to the decoder.
[0196] As an example, assume that the merge candidate sharing unit is a CU. At this time, the value assigned to the merge candidate sharing flag can be determined based on the size of the MER and / or the size of the current CU. For example, the encoder and the decoder can assign a value of 1 to the merge candidate sharing flag only when the size of the MER, that is, the parallel processing level is larger than 4×4 and the size of the current encoding unit is 8×8. Here, when the value of the merge candidate sharing flag is 1, the flag indicates that all prediction units within the merge candidate sharing unit share a common merge candidate and / or a single merge candidate list. That is, the encoder and the decoder enable all prediction units within the current encoding unit to share a common merge candidate and / or a single merge candidate list only when the parallel processing level is larger than 4×4 and the size of the current encoding unit is 8×8. At this time, when the parallel processing level is 4×4 or the size of the current encoding unit is not 8×8, a value of 0 is assigned to the merge candidate sharing flag. Here, when the value of the merge candidate sharing flag is 0, the flag indicates that a separate merge candidate list is derived and used for each prediction unit.
[0197] Hereinafter, an example of a method for deriving a common merge candidate for prediction units within a merge candidate sharing unit will be described.
[0198] FIG. 13 is a diagram schematically showing an example of a method for deriving a common merge candidate for prediction units within a merge candidate sharing unit.
[0199] 1310 to 1330 in FIG. 13 indicate the same encoding unit, and the splitting mode of the encoding unit (and / or prediction unit) corresponds to N×2N. Also, PartIdx indicates the splitting index, PU0 indicates the prediction unit with a splitting index value of 0, and PU1 indicates the prediction unit with a splitting index value of 1.
[0200] On the other hand, in the example of FIG. 13, for convenience of explanation, it is assumed that the merge candidate sharing unit is a CU. At this time, each encoding unit shown in FIG. 13 corresponds to the merge candidate sharing unit. The size of the merge candidate sharing unit may be the same as MER, that is, the size of the parallel processing unit, or may be different.
[0201] 1310 in FIG. 13 indicates the merge candidate of the left prediction unit with a splitting index of 0. Also, 1320 in FIG. 13 indicates the merge candidate of the right prediction unit with a splitting index of 1. Referring to 1310 and 1320 in FIG. 13, each prediction unit within the encoding unit (merge candidate sharing unit) can independently have a merge candidate list.
[0202] In this case, block A of 1320 in FIG. 13 1 is a block belonging to the right prediction unit. Therefore, since the right prediction unit uses the motion information belonging to the left prediction unit, motion prediction cannot be performed simultaneously for the left prediction unit and the right prediction unit. At this time, the encoder and decoder can also process block A 1 as unavailable to enable parallel motion prediction, or parallel motion prediction can also be enabled by using the motion information of the block with available motion information as a common merge candidate.
[0203] Referring to 1330 in FIG. 13, the prediction units within the encoding unit (merge candidate sharing unit) have a common merge candidate (and / or a common merge candidate list). That is, in 1330 of FIG. 13, all the prediction units within the encoding unit can share a common merge candidate (and / or a single merge candidate list).
[0204] Here, as an example, the common merge candidate may be the same as the merge candidate derived when the split mode of the current encoding unit 1330 is 2N×2N. Specifically, the encoder and decoder are the block A that is located closest to the lower left corner outside the encoding unit 1330 0 and the block A that is located at the lowermost end among the blocks adjacent to the left side of the encoding unit 1330 1 and the block B that is located closest to the upper right corner outside the encoding unit 1330 0 and the block B that is located at the rightmost side among the blocks adjacent to the upper end of the encoding unit 1330 1 and the block B that is located closest to the upper left corner outside the encoding unit 1330 2 and the motion information thereof can be used as the common merge candidate for the left prediction unit PU0 and the right prediction unit PU1.
[0205] In the embodiment of 1330 described above, all prediction units within one encoding unit (merge candidate sharing unit) can share the common merge candidate (the merge candidate derived when the split mode of the current encoding unit 1330 is 2N×2N) and / or the single merge candidate list. That is, all prediction units within the encoding unit (merge candidate sharing unit) can use the merge candidate at the same position. Therefore, the common merge candidate derivation method described above can reduce the encoding complexity and facilitate parallel motion prediction.
[0206] The above-mentioned common merge candidate derivation method is only one example, and the splitting mode to which the common merge candidate derivation method is applied is not limited to N×2N. The above-mentioned common merge candidate derivation method can also apply the same or similar method when the splitting mode of the current coding unit (and / or prediction unit) is 2N×2N mode, 2N×N mode, N×N mode, 2N×nU mode, 2N×nD mode, nL×2N mode or nR×2N mode, etc. That is, all prediction units within one coding unit can share the common merge candidate and / or single merge candidate list regardless of the splitting mode of the coding unit (and / or prediction unit). At this time, the encoder and decoder can use the block at the same position as the merge candidate used when the splitting mode of the coding unit (and / or prediction unit) is 2N×2N as the common merge candidate.
[0207] For example, even when the splitting mode of the current coding unit (and / or prediction unit) is N×N mode, all prediction units within the current coding unit (the prediction unit with splitting index 0, the prediction unit with splitting index 1, the prediction unit with splitting index 2, and the prediction unit with splitting index 3) can share the common merge candidate and / or single merge candidate list. Also, at this time, the motion information of the block existing at the same position as the merge candidate block used when the splitting mode of the current coding unit (and / or prediction unit) is 2N×2N can be derived as the common merge candidate.
[0208] Generally, the merge candidate block and / or merge candidate of the prediction unit can be specified by the relative position with respect to the prediction unit. Therefore, the merge candidate of one prediction unit can be determined based on the coordinates of the pixel located at the top left in the prediction unit (for example, (xP, yP)), the width of the prediction unit (for example, nPbW), and the height of the prediction unit (for example, nPbH).
[0209] However, when a common merge candidate and / or a single merge candidate list is used, since the common merge candidate is the same as the merge candidate derived when the split mode of the coding unit (and / or prediction unit) is 2N×2N, it can be specified by the relative position with respect to the coding unit. Therefore, when a common merge candidate and / or a single merge candidate list is used, the encoder and decoder can reset the coordinates of the pixel located at the top left most in the prediction unit to the coordinates of the pixel located at the top left most in the coding unit to which the prediction unit belongs (for example, (xC, yC)). Also, the encoder and decoder can reset the width of the prediction unit and the height of the prediction unit to the width of the coding unit (for example, nCS) and the height of the coding unit (for example, nCS). At this time, the encoder and decoder make it possible for the prediction unit to use the common merge candidate during parallel motion prediction by determining the merge candidate of the prediction unit based on the reset values.
[0210] On the other hand, as described above, when all the prediction units within one merge candidate sharing unit share a common merge candidate and / or a single merge candidate list, a slight coding loss may occur. Therefore, the encoder and decoder can also selectively determine the merge candidate derivation method and / or the merge candidate list derivation method based on the merge candidate sharing flag.
[0211] As an example, when the value of the merge candidate sharing flag is 1, the flag indicates that all the prediction units within the merge candidate sharing unit share a common merge candidate and / or a single merge candidate list. This corresponds to the common merge candidate derivation method shown in 1330 of FIG. 13. Also, when the value of the merge candidate sharing flag is 0, the flag indicates that a separate merge candidate list is derived and used for each prediction unit. This corresponds to the merge candidate derivation methods shown in 1310 and 1320 of FIG. 13.
[0212] Since the specific content regarding the merge candidate sharing flag has been described above, it is omitted here.
[0213] FIG. 14 schematically shows another embodiment of a common merge candidate derivation method for prediction units within a merge candidate sharing unit.
[0214] 1410 and 1430 in FIG. 14 each represent one LCU (and / or coding tree block). Since 1430 in FIG. 14 further represents the same LCU as the LCU shown in 1410 of FIG. 14, hereinafter, the same components in 1410 and 1430 of FIG. 14 are denoted by the same reference numerals.
[0215] On the other hand, in the embodiment of FIG. 14, for the sake of convenience of explanation, it is assumed that one LCU is composed of four square MERs of the same size, and the merge candidate sharing unit for the prediction units within the LCU is the same as the MER unit. At this time, the MER may have the same size as the coding unit according to the size of each coding unit constituting the coding tree block, or may have a size different from that of the coding unit. Since the MER in the embodiment of FIG. 14 corresponds to the merge candidate sharing unit, when the coding unit has the same size as the MER, the coding unit can also correspond to the merge candidate sharing unit. For example, when the size of the MER is 8×8, if the size of the current coding unit is 8×8, the current coding unit can also correspond to the merge candidate sharing unit. The embodiment of FIG. 14 is described based on the case where the merge candidate sharing unit is the MER unit, but the same or similar method can also be applied when the merge candidate sharing unit is the coding unit.
[0216] Referring to 1410 in FIG. 14, the current prediction unit 1415 to be motion predicted is included in one MER 1413. Hereinafter, in the embodiment of FIG. 14, the MER to which the current prediction unit 1415 belongs is referred to as the current MER 1413. In 1410 of FIG. 14, the merge candidates 1421, 1423, 1425, 1427, and 1429 of the current prediction unit 1415 are shown.
[0217] Among blocks 1421, 1423, 1425, 1427, and 1429 used as merge candidate blocks, blocks 1423, 1425, and 1427 belong to the current MER1413, and are blocks belonging to the current prediction unit 1415 and the same MER. Therefore, since blocks 1423, 1425, and 1427 correspond to blocks for which encoding / decoding has not been completed during parallel motion prediction, they are not used for the parallel motion prediction of the current prediction unit 1415. Also, during motion prediction of the current prediction unit 1415, the motion information of blocks 1421 and 1429 may not be available. This is because, depending on the encoding / decoding procedure, the encoding and / or decoding of a block may not be completed. Therefore, when merge mode (and / or skip mode) motion prediction is performed for the current prediction unit, the above-described merge candidate blocks (blocks belonging to the same MER as the current prediction unit 1415 and / or blocks for which encoding / decoding has not been completed during parallel motion prediction) are treated as unavailable.
[0218] Also, as described above, the encoder and decoder enable parallel motion prediction by deriving and using a common merge candidate and / or a single merge candidate list for a plurality of prediction units within a merge candidate sharing unit.
[0219] Referring to 1430 in FIG. 14, the prediction units within the MER (merge candidate sharing unit) have a common merge candidate (and / or a single merge candidate list). That is, in 1430 of FIG. 14, all the prediction units within the MER can share a common merge candidate (for example, blocks 1441, 1443, 1445, 1447, and 1449). At this time, the current prediction unit 1415 can use the common merge candidate instead of the merge candidates 1421, 1423, 1425, 1427, and 1429 shown in 1410 of FIG. 14.
[0220] Here, as an example, the common merge candidate may be the same as the merge candidate derived when the encoding unit (and / or the prediction unit belonging to the encoding unit) having the same size as the current MER1413 has a 2N×2N split mode. That is, the encoder and the decoder can use the blocks located outside the current MER1413 as common merge candidates, and the common merge candidates can be specified by the relative position with respect to the current MER1413.
[0221] As an example, the encoder and the decoder can use the motion information of block 1441 which is located closest to the lower left corner outside the current MER1413, block 1443 which is located at the lowest end among the blocks adjacent to the left side of the current MER1413, block 1449 which is located closest to the upper right corner outside the current MER1413, block 1447 which is located at the rightmost side among the blocks adjacent to the upper end of the current MER1413, and block 1445 which is located closest to the upper left corner outside the current MER1413, as the merge candidates (common merge candidates) of the current prediction unit 1415. At this time, if there is a block without available motion information among the blocks (for example, block 1449 which is located closest to the upper right corner outside the current MER1413), the encoder and the decoder can process the block as unavailable or not use it as a merge candidate block of the current prediction unit 1415. As another example, the encoder and the decoder can also use block 1444 adjacent to the left side of the current MER1413 as the merge candidate block of the current prediction unit 1415 instead of block 1445 which is located closest to the upper left corner outside the current MER1413. At this time, block 1444 may be the block located in the middle among the blocks adjacent to the left side of the current MER1413, and if the number of blocks located in the middle is two, it may be the block located at the upper end among the two blocks.
[0222] As in the embodiment of 1430 in FIG. 14, when a common merge candidate (and / or a single merge candidate list) is used for all prediction units within one merge candidate sharing unit, instead of blocks that are treated as unavailable, blocks including available motion information can be used as merge candidate blocks. Thus, in such a case, the encoding / decoding performance can be improved compared to the case where a common merge candidate (and / or a single merge candidate list) is not used.
[0223] As described above, the encoder and decoder can use, as the merge candidate blocks of the prediction unit, blocks located outside the MER to which the prediction unit belongs, instead of blocks located around the prediction unit (for example, the block closest to the lower left corner outside the prediction unit, the lowermost block among the blocks adjacent to the left side of the prediction unit, the block closest to the upper right corner outside the prediction unit, the rightmost block among the blocks adjacent to the upper end of the prediction unit, and the block closest to the upper left corner outside the prediction unit). Hereinafter, in this specification, in order to replace the merge candidates derived from the blocks located around the prediction unit, the merge candidates derived from the blocks located outside the MER to which the prediction unit belongs are referred to as MER merge candidates.
[0224] The embodiment of FIG. 14 can also be regarded as an embodiment of a method for deriving MER merge candidates. In the embodiment of FIG. 14, all prediction units within one merge candidate sharing unit can share a common merge candidate (and / or a single merge candidate list). Thus, in FIG. 14, all prediction units within one MER (merge candidate sharing unit) can have the same MER merge candidate. The MER merge candidate can be derived as a common merge candidate for all prediction units within one MER as in the embodiment of FIG. 14, or can be derived separately for each prediction unit included in one MER. In this regard, hereinafter, embodiments of a method for deriving MER merge candidates will be further described.
[0225] FIG. 15 is a diagram schematically showing an embodiment of a MER merge candidate derivation method. 1510 and 1520 in FIG. 15 each represent one MER.
[0226] Referring to 1510 in FIG. 15, the current prediction unit 1515 included in the current MER 1510 can have five spatial merge candidates A 0 ,A 1 ,B 0 ,B 1 and B 2 . However, as described with reference to FIG. 14, the blocks corresponding to the spatial merge candidates may not contain motion information available during parallel motion prediction, and thus are processed as unavailable. At this time, the spatial merge candidates A 0 ,A 1 ,B 0 ,B 1 and B 2 can be replaced by the MER merge candidates A 0 ’,A 1 ’,B 0 ’,B 1 ’and B 2 ’ shown in 1510 of FIG. 15, respectively. That is, the encoder and decoder can use the MER merge candidates A 0 ’,A 1 ’,B 0 ’,B 1 ’and B 2 ’ as the merge candidates of the current prediction unit 1515. Since the positions of the MER merge candidates shown in 1510 of FIG. 15 are substantially the same as those in the embodiment of FIG. 14, specific description thereof is omitted.
[0227] Referring to 1520 in FIG. 15, the current prediction unit 1525 included in the current MER 1520 has five spatial merge candidates A 0 ,A 1 ,B 0 ,B 1 and B 2 as in 1510 of FIG. 15. At this time, the merge candidates A 0 ,A 1 ,B 0 and B 1The position is specified, i.e., represented, by the following coordinates.
[0228] A 0 :(x - 1, y + nPSH - 1) A 1 :(x - 1, y + nPSH) B 0 :(x + nPSW - 1, y - 1) B 1 :(x + nPSW, y - 1) Here, (x, y) indicates the coordinates of the pixel located at the uppermost left within the current prediction unit 1525, and the coordinates are determined based on the uppermost left position of the picture to which the current prediction unit 1525 belongs. Also, nPSH indicates the height of the current prediction unit 1525, and nPSW indicates the width of the current prediction unit 1525.
[0229] On the other hand, as in 1510 of FIG. 15, a block corresponding to a spatial merge candidate may not include motion information available during parallel motion prediction, and thus is processed as not available. At this time, the spatial merge candidates A 0 , A 1 , B 0 , B 1 and B 2 can be replaced by MER merge candidates A 0 ’, A 1 ’, B 0 ’, B 1 ’ and B 2 ’ shown in 1510 of FIG. 15, respectively. That is, the encoder and decoder can use MER merge candidates A 0 ’, A 1 ’, B 0 ’, B 1 ’ and B 2 ’ as merge candidates for the current prediction unit 1515.
[0230] Here, the MER merge candidate A 0 ’ is derived based on block A 0 having the same horizontal position as block A 0 ’ among the blocks adjacent to the left side of the current MER1520, and the MER merge candidate A 1’ is block A among the blocks adjacent to the left side of the current MER1520 1 with the same horizontal position as block A 1 ’ is derived based on it. Also, MER merge candidate B 1 ’ is block B among the blocks adjacent to the upper end of the current MER1520 0 with the same vertical position as block B 1 ’ is derived based on it, and MER merge candidate B 0 ’ is block B 1 ’ is derived based on the block B 0 ’ adjacent to the right side of it. At this time, the positions of MER merge candidates A 0 ’, A 1 ’, B 0 ’ and B 1 ’ are specified, that is, represented by the following coordinates.
[0231] A 0 ’: (((x >> nMER) << nMER) - 1, y + nPSH - 1) A 1 ’: (((x >> nMER) << nMER) - 1, y + nPSH) B 0 ’: (x + nPSW - 1, ((y >> nMER) << nMER) - 1) B 1 ’: (x + nPSW, ((y >> nMER) << nMER) - 1) Here, nMER represents the logarithmic value of the size (width / height) of MER.
[0232] Also, in 1520 of FIG. 15, the encoder and decoder may be processed as not being able to use merge candidate B 2 and may not be used, or may be replaced with MER merge candidate B 2 ’. When MER merge candidate B 2 ’ is used as the merge candidate of the current prediction unit 1525, MER merge candidate B 2 ’ is block B among the blocks adjacent to the left side of the current MER1520 2The left block 1531 having the same horizontal position as, or block B among the blocks adjacent to the upper end of the current MER1520 2 It can be derived based on the upper block 1533 having the same vertical position as. As an example, the encoder and decoder can check whether the left block 1531 is available. At this time, when the left block 1531 is available, the encoder and decoder derive the MER merge candidate B 2 ' based on the left block 1531, and when the left block 1531 is not available, the MER merge candidate B 2 ' can be derived based on the upper block 1533.
[0233] In the embodiment of 1520 in FIG. 15, compared with the embodiment of 1510 in FIG. 15, the blocks located closer to the current prediction unit 1520 can be used as merge candidate blocks, so the encoding efficiency can be improved.
[0234] On the other hand, when the MER merge candidate of the current prediction unit 1525 is derived, the encoder and decoder can generate a merge candidate list based on the derived MER merge candidate. At this time, a plurality of MER merge candidates can be added to and / or inserted into the merge candidate list in a predetermined order. Since a smaller value of the merge index is assigned to the MER merge candidate added to the merge candidate list first, by preferentially adding the MER merge candidate that is likely to be used for the motion derivation of the current prediction unit to the merge candidate list, the amount of information transmitted from the encoder to the decoder can be reduced. Therefore, the encoder and decoder preferentially add the MER merge candidate corresponding to the block located closer to the current prediction unit 1520 to the merge candidate list.
[0235] The horizontal distance from the current prediction unit 1520 to the MER is represented by the distance from the pixel located at the uppermost left in the current prediction unit 1520 to the left boundary of the MER. Also, the vertical distance from the current prediction unit 1520 to the MER is represented by the distance from the pixel located at the uppermost left in the current prediction unit 1520 to the upper boundary of the MER. Therefore, the horizontal distance and the vertical distance from the current prediction unit 1520 to the MER are represented, as an example, by the following Equation 1.
[0236] (Equation 1) distX = x % nMER distY = y % nMER Here, distX indicates the horizontal distance from the current prediction unit 1520 to the MER, and distY indicates the horizontal distance from the current prediction unit 1520 to the MER. (x, y) indicates the coordinates of the pixel located at the uppermost left in the current prediction unit 1520, and nM ER indicates the size of the MER.
[0237] For example, when the value of distX is smaller than the value of distY, since the block adjacent to the left side of the MER is closer to the current prediction unit 1520 than the block adjacent to the upper side of the MER, the encoder and the decoder use the MER merge candidates A 1 ’ and A 0 ’ as B 1 ’ and B 0 ’ and add them to the merge candidate list earlier than B 1 ’, A 0 ’, B 1 ’, B 0 ’ in this order. As an example, when the value of distX is smaller than the value of distY, the MER merge candidates are added to the merge candidate list in the order of A 1 ’, B 0 ’, A 1 ’, A 0 ’. Otherwise (when the value of distX is greater than or equal to the value of distY), the MER merge candidates are added to the merge candidate list in the order of B 1 ’, B 0 ’, A 1 ’, A 0 ’. As another example, when the value of distX is smaller than the value of distY, the MER merge candidates are A 1 ’, B 1 ’, A0 ’,B 0 is added to the merge candidate list in the order of ’,B. Otherwise (when the value of distX is greater than or equal to the value of distY), the MER merge candidate is B 1 ’,A 1 ’,B 0 ’,A 0 is added to the merge candidate list in the order of ’,A’,B’,A’.
[0238] FIG. 16 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 1610 in FIG. 16 represents one MER.
[0239] Referring to FIG. 16, one MER 1610 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 16, the pixel located at the uppermost left in the prediction unit is called the upper left pixel, the pixel located at the uppermost right in the prediction unit is called the upper right pixel, and the pixel located at the lowermost left in the prediction unit is called the lower left pixel. In the embodiment of FIG. 16, four MER merge candidates can be derived for each of the plurality of prediction units belonging to MER 1610.
[0240] In FIG. 16, the motion information of two blocks adjacent to the upper end of the MER and the motion information of two blocks adjacent to the left side of the MER can be used as MER merge candidates for one prediction unit. Here, the two blocks adjacent to the upper end of the MER are respectively a block including pixels located on the same vertical line as the upper left pixel of the prediction unit and a block including pixels located on the same vertical line as the upper right pixel of the prediction unit. Also, the two blocks adjacent to the left side of the MER are respectively a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit and a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit.
[0241] Referring to FIG. 16, the prediction unit PU0 can use the motion information of two blocks T0 and T1 adjacent to the upper end of the MER and the motion information of two blocks L0 and L1 adjacent to the left side of the MER as MER merge candidates. Here, block T0 is a block including pixels located on the same vertical line as the upper left pixel of the prediction unit PU0, and block T1 is a block including pixels located on the same vertical line as the upper right pixel of the prediction unit PU0. Also, block L0 is a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit PU0, and block L1 is a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit PU0.
[0242] Further referring to FIG. 16, the prediction unit PU1 can use the motion information of two blocks T2 and T3 adjacent to the upper end of the MER and the motion information of two blocks L2 and L3 adjacent to the left side of the MER as MER merge candidates. Here, block T2 is a block including pixels located on the same vertical line as the upper left pixel of the prediction unit PU1, and block T3 is a block including pixels located on the same vertical line as the upper right pixel of the prediction unit PU1. Also, block L2 is a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit PU1, and block L3 is a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit PU1.
[0243] FIG. 17 is a diagram schematically showing still another embodiment of the MER merge candidate derivation method. 1710 in FIG. 17 shows one MER.
[0244] Referring to FIG. 17, one MER1710 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 17, the pixel located at the uppermost left in the prediction unit is called the upper left pixel, the pixel located at the uppermost right in the prediction unit is called the upper right pixel, and the pixel located at the lowermost left in the prediction unit is called the lower left pixel. In the embodiment of FIG. 17, similar to the embodiment of FIG. 16, for each of the plurality of prediction units belonging to MER1710, four MER merge candidates can be derived.
[0245] In FIG. 17, the motion information of two blocks adjacent to the upper end of the MER (where the two blocks are respectively the block closest to the upper left corner outside the MER or the block closest to the upper right corner outside the MER. The same applies hereinafter.) and the motion information of two blocks adjacent to the left side of the MER (where the two blocks are respectively the block closest to the upper left corner outside the MER or the block closest to the lower left corner outside the MER. The same applies hereinafter.) can be used as MER merge candidates for one prediction unit. Here, the two blocks adjacent to the upper end of the MER respectively include a block including pixels located on the same vertical line as the pixel adjacent to the left side of the upper left pixel (the pixel in the prediction unit), and a block including pixels located on the same vertical line as the pixel adjacent to the right side of the upper right pixel (the pixel in the prediction unit). Also, the two blocks adjacent to the left side of the MER respectively include a block including pixels located on the same horizontal line as the pixel adjacent to the upper end of the upper left pixel (the pixel in the prediction unit), and a block including pixels located on the same horizontal line as the pixel adjacent to the lower end of the lower left pixel (the pixel in the prediction unit).
[0246] Referring to FIG. 17, the prediction unit PU0 can use the motion information of two blocks T0 and T1 adjacent to the upper end of the MER and the motion information of two blocks L0 and L1 adjacent to the left side of the MER as MER merge candidates. Here, block T0 is a block including pixels located on the same vertical line as the pixels adjacent to the left side of the upper left pixel (the pixel within the prediction unit PU0). Block T1 is a block including pixels located on the same vertical line as the pixels adjacent to the right side of the upper right pixel (the pixel within the prediction unit PU0). Also, block L0 is a block including pixels located on the same horizontal line as the pixels adjacent to the upper end of the upper left pixel (the pixel within the prediction unit PU0). And block L1 is a block including pixels located on the same horizontal line as the pixels adjacent to the lower end of the lower left pixel (the pixel within the prediction unit PU0).
[0247] FIG. 18 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 1810 in FIG. 18 shows one MER.
[0248] Referring to FIG. 18, one MER 1810 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 18, the pixel located at the upper leftmost within the prediction unit is called the upper left pixel. In the embodiment of FIG. 18, for each of the plurality of prediction units belonging to MER 1810, two MER merge candidates can be derived.
[0249] In the embodiment of FIG. 18, the motion information of one block adjacent to the upper end of the MER and the motion information of one block adjacent to the left side of the MER can be used as the MER merge candidate for one prediction unit. Here, the block adjacent to the upper end of the MER is a block including pixels located on the same vertical line as the upper left pixel of the prediction unit. Also, the block adjacent to the left side of the MER is a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit.
[0250] Referring to FIG. 18, the prediction unit PU0 can use the motion information of one block T adjacent to the upper end of the MER and the motion information of one block L adjacent to the left side of the MER as MER merge candidates. Here, the block T is a block including pixels located on the same vertical line as the upper left pixel of the prediction unit PU0. Also, the block L is a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit PU0.
[0251] FIG. 19 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 1910 in FIG. 19 shows one MER.
[0252] Referring to FIG. 19, one MER 1910 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 19, the pixel located at the uppermost right in the prediction unit is called the upper right pixel, and the pixel located at the lowermost left in the prediction unit is called the lower left pixel. In the embodiment of FIG. 19, similar to the embodiment of FIG. 18, two MER merge candidates can be derived for each of the plurality of prediction units belonging to the MER 1910.
[0253] In the embodiment of FIG. 19, the motion information of one block adjacent to the upper end of the MER and the motion information of one block adjacent to the left side of the MER can be used as MER merge candidates for one prediction unit. Here, the block adjacent to the upper end of the MER is a block including pixels located on the same vertical line as the upper right pixel of the prediction unit. Also, the block adjacent to the left side of the MER is a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit.
[0254] Referring to FIG. 19, the prediction unit PU0 can use the motion information of one block T adjacent to the upper end of the MER and the motion information of one block L adjacent to the left side of the MER as MER merge candidates. Here, the block T is a block including pixels located on the same vertical line as the upper right pixel of the prediction unit PU0. Also, the block L is a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit PU0.
[0255] FIG. 20 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 2010 in FIG. 20 shows one MER.
[0256] Referring to FIG. 20, one MER 2010 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 20, the pixel located at the uppermost left in the prediction unit is called the upper left pixel, the pixel located at the uppermost right in the prediction unit is called the upper right pixel, and the pixel located at the lowermost left in the prediction unit is called the lower left pixel. In the embodiment of FIG. 20, four MER merge candidates can be derived for each of the plurality of prediction units belonging to the MER 2010.
[0257] In FIG. 20, based on the position of the prediction unit in the MER, the MER merge candidate of the prediction unit can be derived. That is, the MER merge candidate of the prediction unit can be derived based on the horizontal distance and the vertical distance from the prediction unit to the MER. Here, the horizontal distance from the prediction unit to the MER means the distance from the upper left pixel of the prediction unit to the left boundary of the MER. Also, the vertical distance from the prediction unit to the MER means the distance from the upper left pixel of the prediction unit to the upper boundary of the MER.
[0258] As an example, when the horizontal distance from the prediction unit to the MER is closer than the vertical distance, the motion information of the four blocks adjacent to the left side of the MER (where two of the four blocks are the blocks closest to the upper left corner outside the MER or the blocks closest to the lower left corner outside the MER, respectively. The same applies hereinafter) can be used as the MER merge candidate of the prediction unit. The four blocks adjacent to the left side of the MER are respectively a block including pixels located on the same horizontal line as the pixels adjacent to the upper end of the upper left pixel (the pixel within the prediction unit), a block including pixels located on the same horizontal line as the upper left pixel (the pixel within the prediction unit), a block including pixels located on the same horizontal line as the lower left pixel (the pixel within the prediction unit), and a block including pixels located on the same horizontal line as the pixels adjacent to the lower end of the lower left pixel (the pixel within the prediction unit).
[0259] Alternatively, the motion information of the four blocks adjacent to the upper end of the MER (where two of the four blocks are the blocks closest to the upper left corner outside the MER or the blocks closest to the upper right corner outside the MER, respectively. The same applies hereinafter) can be used as the MER merge candidate of the prediction unit. Here, the four blocks adjacent to the upper end of the MER are respectively a block including pixels located on the same vertical line as the pixels adjacent to the left side of the upper left pixel (the pixel within the prediction unit), a block including pixels located on the same vertical line as the upper left pixel (the pixel within the prediction unit), a block including pixels located on the same vertical line as the upper right pixel (the pixel within the prediction unit), and a block including pixels located on the same vertical line as the pixels adjacent to the right side of the upper right pixel (the pixel within the prediction unit).
[0260] Referring to FIG. 20, for prediction unit PU0, the vertical distance to MER is closer than the horizontal distance. Therefore, prediction unit PU0 can use the motion information of the four blocks T0, T1, T2, T3 adjacent to the upper end of MER as MER merge candidates. Here, block T0 is a block including pixels located on the same vertical line as the pixel adjacent to the left of the upper left pixel (the pixel within prediction unit PU0). Block T1 is a block including pixels located on the same vertical line as the upper left pixel (the pixel within prediction unit PU0). Also, block T2 is a block including pixels located on the same vertical line as the upper right pixel (the pixel within prediction unit PU0). And block T3 is a block including pixels located on the same vertical line as the pixel adjacent to the right of the upper right pixel (the pixel within prediction unit PU0).
[0261] Referring further to FIG. 20, for prediction unit PU1, the horizontal distance to MER is closer than the vertical distance. Therefore, prediction unit PU1 can use the motion information of the four blocks L0, L1, L2, L3 adjacent to the left side of MER as MER merge candidates. Here, block L0 is a block including pixels located on the same horizontal line as the pixel adjacent to the upper end of the upper left pixel (the pixel within prediction unit PU1). Block L1 is a block including pixels located on the same horizontal line as the upper left pixel (the pixel within prediction unit PU1). Also, block L2 is a block including pixels located on the same horizontal line as the lower left pixel (the pixel within prediction unit PU1). And block L3 is a block including pixels located on the same vertical line as the pixel adjacent to the lower end of the lower left pixel (the pixel within prediction unit PU1).
[0262] FIG. 21 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 2110 in FIG. 21 shows one MER.
[0263] Referring to FIG. 21, one MER2110 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 21, the pixel located at the uppermost left in the prediction unit is called the upper left pixel, the pixel located at the uppermost right in the prediction unit is called the upper right pixel, and the pixel located at the lowermost left in the prediction unit is called the lower left pixel. In the embodiment of FIG. 21, for each of the plurality of prediction units belonging to MER2110, two MER merge candidates can be derived.
[0264] In FIG. 21, based on the position of the prediction unit in the MER, the MER merge candidate of the prediction unit can be derived. That is, the MER merge candidate of the prediction unit can be derived based on the horizontal distance and the vertical distance from the prediction unit to the MER. Here, the horizontal distance from the prediction unit to the MER means the distance from the upper left pixel of the prediction unit to the left boundary of the MER. Also, the vertical distance from the prediction unit to the MER means the distance from the upper left pixel of the prediction unit to the upper boundary of the MER.
[0265] As an example, when the horizontal distance from the prediction unit to the MER is closer than the vertical distance, the motion information of two blocks adjacent to the left side of the MER (here, the two blocks are respectively the block closest to the upper left corner outside the MER or the block closest to the lower left corner outside the MER. The same applies hereinafter) can be used as the MER merge candidate of the prediction unit. The two blocks adjacent to the left side of the MER are respectively a block including pixels located on the same horizontal line as the upper left pixel of the prediction unit and a block including pixels located on the same horizontal line as the lower left pixel of the prediction unit.
[0266] Alternatively, the motion information of two blocks adjacent to the upper end of the MER (where the two blocks are the block closest to the upper left corner outside the MER or the block closest to the upper right corner outside the MER, respectively. The same applies hereinafter) can be used as the MER merge candidate of the prediction unit. Here, the two blocks adjacent to the upper end of the MER are the block including pixels located on the same vertical line as the upper left pixel of the prediction unit and the block including pixels located on the same vertical line as the upper right pixel of the prediction unit, respectively.
[0267] Referring to FIG. 21, for the prediction unit PU0, the vertical distance to the MER may be closer than the horizontal distance. Therefore, the prediction unit PU0 can use the motion information of two blocks T0 and T1 adjacent to the upper end of the MER as the MET merge candidate. Here, the block T0 is the block including pixels located on the same vertical line as the upper left pixel of the prediction unit PU0. Also, the block T1 is the block including pixels located on the same vertical line as the upper right pixel of the prediction unit PU0.
[0268] Further referring to FIG. 21, for the prediction unit PU1, the horizontal distance to the MER may be closer than the vertical distance. Therefore, the prediction unit PU1 can use the motion information of two blocks L0 and L1 adjacent to the left side of the MER as the MER merge candidate. Here, the block L0 is the block including pixels located on the same horizontal line as the upper left pixel of the prediction unit PU1. Also, the block L1 is the block including pixels located on the same horizontal line as the lower left pixel of the prediction unit PU1.
[0269] FIG. 22 is a diagram schematically showing another embodiment of the MER merge candidate derivation method. 2210 in FIG. 22 shows one MER.
[0270] Referring to FIG. 22, one MER2210 can include a plurality of prediction units. Hereinafter, limited to the embodiment of FIG. 22, the pixel located at the uppermost right in the prediction unit is referred to as the upper right pixel, and the pixel located at the lowermost left in the prediction unit is referred to as the lower left pixel.
[0271] Referring further to FIG. 22, the prediction unit PU0 can have five spatial merge candidates A 0 ,A 1 ,B 0 ,B 1 and B 2 . However, as described above, the spatial merge candidates may not be available during parallel motion prediction in the merge mode and / or skip mode. As an example, when the block used as a merge candidate is included in the same MER as the prediction unit PU0, the block corresponds to a block for which encoding / decoding has not been completed during motion prediction, and thus cannot be used for the parallel motion prediction of the prediction unit PU0. Also, the block used as a merge candidate may not have completed encoding and / or decoding during the parallel motion prediction of the prediction unit PU0 due to the encoding / decoding procedure.
[0272] On the other hand, in the embodiment of FIG. 22, up to four MER merge candidates can be derived for the prediction unit PU0 belonging to MER2210. The four MER merge candidates are the motion information of two blocks T0 and T1 adjacent to the upper end of the MER (where one of the two blocks is the block closest to the upper right corner outside the MER; the same applies hereinafter), and the motion information of two blocks L0 and L1 adjacent to the left side of the MER (where one of the two blocks is the block closest to the lower left corner outside the MER; the same applies hereinafter). Here, the two blocks adjacent to the upper end of the MER are the block T0 located on the same vertical line as the upper right pixel (a pixel within the prediction unit PU0) and the block T1 including the pixel located on the same vertical line as the pixel adjacent to the right side of the upper right pixel (a pixel within the prediction unit PU0), respectively. Also, the two blocks adjacent to the left side of the MER are the block L0 located on the same horizontal line as the lower left pixel (a pixel within the prediction unit PU0) and the block L1 including the pixel located on the same horizontal line as the pixel adjacent to the lower end of the lower left pixel (a pixel within the prediction unit PU0), respectively.
[0273] At this time, the encoder and decoder derive the corresponding MER merge candidates only for the merge candidates A 0 , A 1 , B 0 and B 1 among those that are not available. Since whether each of the spatial merge candidates of the prediction unit within the MER is available during parallel motion prediction is determined by the position of the prediction unit, in this case, it can also be considered that the MER merge candidates derived for the prediction unit PU0 are determined based on the position of the prediction unit.
[0274] Referring to FIG. 22, when the merge candidate A 1 of the prediction unit PU0 is not available during parallel merge mode / parallel skip mode motion prediction, the motion information of the L0 block can be used as the MER merge candidate of the prediction unit PU0. Also, when the merge candidate A0 When it is not available for use during parallel merge mode / parallel skip mode motion prediction, the motion information of the L1 block can be used as a merge candidate of the prediction unit PU0's MER. And the merge candidate B of the prediction unit PU0 1 When it is not available for use during parallel merge mode / parallel skip mode motion prediction, the motion information of the T0 block is used as a merge candidate of the prediction unit PU0's MER, and the merge candidate B of the prediction unit PU0 0 When it is not available for use during parallel merge mode / parallel skip mode motion prediction, the motion information of the T1 block can be used as a merge candidate of the prediction unit PU0's MER.
[0275] FIG. 23 is a diagram schematically showing still another embodiment of a method for deriving a MER merge candidate. 2310 in FIG. 23 indicates one MER.
[0276] Referring to FIG. 23, the prediction unit PU0 2320 included in MER2310 has five spatial merge candidates A 0 , A 1 , B 0 , B 1 and B 2 can have. Although not shown in FIG. 23, as described in FIG. 7, the prediction unit PU0 2320 can also have temporal merge candidates.
[0277] As described with reference to FIG. 22, the spatial merge candidates of any prediction unit in the MER may not be available during parallel motion prediction in the merge mode and / or skip mode. In the embodiment of FIG. 23, since all the blocks used for deriving the spatial merge candidates of the prediction unit PU0 2320 are included in the same MER as the prediction unit PU0 2320, the spatial merge candidates of the prediction unit PU0 2320 are treated as not available and not included in the merge candidate list.
[0278] On the one hand, as described above, the number of merge candidates that make up the merge candidate list can be limited to a predetermined fixed number. In the embodiment of FIG. 23, for the sake of convenience of explanation, it is assumed that the number of merge candidates that make up the merge candidate list is limited to 5. At this time, the number of available merge candidates (spatial merge candidates and temporal merge candidates) derived for the prediction unit may be less than 5 for the reasons described above, and even if all the available spatial merge candidates and temporal merge candidates are added to the merge candidate list, the merge candidate list may not be completely filled. At this time, after the temporal merge candidate is finally added to the merge candidate list, the encoder and decoder can derive the MER merge candidate and insert it into the merge candidate list in a predetermined procedure so that the number of merge candidates that make up the merge candidate list becomes 5. That is, the encoder and decoder can add or insert the MER merge candidate into the merge candidate list until the number of merge candidates that make up the merge candidate list becomes 5.
[0279] Referring to FIG. 23, the motion information of blocks L0, L1, T0, and T1 can be used as MER merge candidates to be additionally inserted into the merge candidate list of the prediction unit PU02320. Here, block L0 is the uppermost block among the blocks adjacent to the left side of MER, and block L1 is the lowermost block among the blocks adjacent to the left side of MER. Also, block T0 is the leftmost block among the blocks adjacent to the upper side of MER, and block T1 is the rightmost block among the blocks adjacent to the upper side of MER.
[0280] In order to make the number of merge candidates that make up the merge candidate list five, the number of MER merge candidates additionally inserted into the merge candidate list may be changed depending on the position of the prediction unit or the like. Therefore, the order in which the above-described MER merge candidates are inserted into the merge candidate list may be predetermined. As an example, the encoder and decoder can insert the MER merge candidates into the merge candidate list additionally in the order of the MER merge candidate corresponding to block L1, the MER merge candidate corresponding to block T1, the MER merge candidate corresponding to block L0, and the MER merge candidate corresponding to block T0.
[0281] FIG. 24 is a diagram schematically showing still another embodiment of the MER merge candidate derivation method. 2410 in FIG. 24 indicates one MER.
[0282] Referring to FIG. 24, the prediction unit PU02420 included in MER2410 can have five spatial merge candidates A 0 , A 1 , B 0 , B 1 and B 2 . Also, although not shown in FIG. 24, as described with reference to FIG. 7, the prediction unit PU02420 can also have temporal merge candidates. However, as described with reference to FIG. 23, the spatial merge candidates of any prediction unit in the MER are processed as not being available during parallel motion prediction in the merge mode and / or skip mode and are not included in the merge candidate list.
[0283] At this time, the encoder and decoder can derive MER merge candidates in the same manner as in the embodiment of FIG. 23 and insert them into the merge candidate list additionally in a predetermined order. For example, when the number of merge candidates that make up the merge candidate list is limited to five, the encoder and decoder can add or insert MER merge candidates into the merge candidate list until the number of merge candidates that make up the merge candidate list becomes five.
[0284] Referring to FIG. 24, the motion information of blocks L1 and T1 can be used as MER merge candidates that are additionally inserted into the merge candidate list of prediction unit PU02420. Here, block L1 is the block located at the lowermost end among the blocks adjacent to the left side of MER. Also, block T1 is the block located at the rightmost side among the blocks adjacent to the upper end of MER.
[0285] Also, as described in FIG. 23, the number of MER merge candidates that are additionally inserted into the merge candidate list may vary depending on the position of the prediction unit and the like. Thus, in the embodiment of FIG. 24, the order in which the MER merge candidates are inserted into the merge candidate list may be predetermined. As one embodiment, the encoder and decoder can additionally insert the MER merge candidates into the merge candidate list in the order of the MER merge candidate corresponding to block L1 and the MER merge candidate corresponding to block T1.
[0286] On the other hand, when common merge candidates and / or MER merge candidates are derived for one prediction unit as in the embodiments of FIGS. 13 to 24 described above, the derived common merge candidates and / or MER merge candidates can be added to or inserted into the merge candidate list of the prediction unit. Hereinafter, in the embodiments described later, for convenience of explanation, the common merge candidates and MER merge candidates are collectively referred to as parallel merge candidates.
[0287] When parallel merge candidates are not applied, the spatial merge candidates of the prediction unit can be derived from the blocks adjacent to the prediction unit and the blocks located closest to the outer corners of the current block as described in FIG. 7. Also, the temporal merge candidates of the prediction unit can be derived from the blocks at the same position included in the reference picture. Hereinafter, when parallel merge candidates are not applied as in the embodiment of FIG. 7, the merge candidates used for the prediction unit are called PU merge candidates.
[0288] As described above, among the spatial candidates corresponding to the PU merge candidates of one prediction unit, there may be merge candidates included in the same MER as the prediction unit. At this time, the merge candidates included in the same MER as the prediction unit may not include motion information available during parallel motion prediction. Therefore, the number of available PU merge candidates derived for a prediction unit may be less than the number of merge candidates required to construct a merge candidate list. Here, the number of merge candidates required to construct a merge candidate list may be a predetermined value. For example, the number of merge candidates constituting the merge candidate list may be five.
[0289] In this case, the encoder and decoder can add and insert parallel merge candidates into the merge candidate list in a predetermined order. At this time, the parallel merge candidates added and inserted into the merge candidate list are located after the available PU merge candidates in the merge candidate list. That is, the merge candidates can be inserted into the merge candidate list in the order of PU merge candidates and parallel merge candidates.
[0290] For example, assume that PU merge candidates such as 720 in FIG. 7 are applied to the current prediction unit. At this time, the encoder and decoder use block A that is closest to the lower left corner outside the current prediction unit 0 and block A that is located at the lowest end among the blocks adjacent to the left side of the current prediction unit 1 and block B that is closest to the upper right corner outside the current prediction unit 0 and block B that is located at the rightmost side among the blocks adjacent to the upper side of the current prediction unit 1 and block B that is closest to the upper left corner outside the current prediction unit 2 and the motion information of the same-position block COL as the PU merge candidates of the current prediction unit. At this time, as an example, the PU merge candidates A 1 , B 1 , B 0 , A 0 , B 2 , COL can be added and / or inserted into the merge candidate list in this order.
[0291] However, when the current prediction unit is inside the MER, when executing the merge mode and / or skip mode parallel motion prediction, the spatial merge candidate A corresponding to the PU merge candidate 1 , B 1 , B 0 , A 0 , B 2 may not be available. In this case, only the temporal merge candidate COL corresponding to the PU merge candidate is added to the merge candidate list.
[0292] At this time, the encoder and decoder can insert parallel merge candidates after the PU merge candidates added to the merge candidate list. For example, the parallel merge candidates derived for the current prediction unit are A 1 ’, B 1 ’, B 0 ’, A 0 ’ and B 2 ’ respectively. At this time, the temporal merge candidates and parallel merge candidates corresponding to the PU merge candidate are COL, A 1 ’, B 1 ’, B 0 ’, A 0 ’ and B 2 ’ are added to the merge candidate list in this order, and / or can be inserted. At this time, the encoder and decoder can add parallel merge candidates until the number of merge candidates constituting the merge candidate list reaches the maximum number (for example, 5).
[0293] On the other hand, even when all available PU merge candidates and available parallel merge candidates are added to the merge candidate list, the merge candidate list may not be completely filled. In such a case, the encoder and decoder can derive new merge candidates based on the merge candidates already added to the merge candidate list and add them to the merge candidate list. At this time, the encoder can use not only the PU merge candidates but also the parallel merge candidates to derive new merge candidates.
[0294] New merge candidates derived based on merge candidates already added to the merge candidate list include a combined bi-predictive candidate (CB), a non-scaled bi-predictive candidate (NB), and / or a zero motion candidate (Zero). Here, CB can be derived based on two of the merge candidates already added to the merge candidate list. For example, the L0 motion information of CB is derived based on one of the two merge candidates, and the L1 motion information of CB can be derived based on the other of the two merge candidates. That is, CB can be derived by combining the motion information of each of the two merge candidates. Also, the L0 motion information and L1 motion information of NB can be derived through predetermined conditions and operations based on one of the merge candidates already added to the merge candidate list. And Zero means motion information including a zero vector (0,0).
[0295] The merge candidates CB, NB, and Zero newly derived and inserted into the merge candidate list can be positioned after the available PU merge candidates and available parallel merge candidates in the merge candidate list. That is, the merge candidates can be inserted into the merge candidate list in the order of PU merge candidates, parallel merge candidates, and CB, NB, Zero derived based on the PU merge candidates and parallel merge candidates. For example, assuming that three CBs (CB0, CB1, CB2), one NB (NB0), and one Zero are derived for one prediction unit, the merge candidates in the merge candidate list are COL, A 1 ’, B 1 ’, B 0 ’, A 0 ’, B 2 ’, CB0, CB1, CB2, NB0, and Zero can be added and / or inserted in this order. At this time, the encoder and decoder can add parallel merge candidates until the number of merge candidates constituting the merge candidate list reaches the maximum number (for example, 5).
[0296] In the above-described embodiments, the method has been described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of the steps, and any step can occur in a different order from the steps described above or simultaneously with different steps. Also, those skilled in the art will understand that the steps shown in the flowchart are not exclusive and that other steps can be included or one or more steps of the flowchart can be deleted without affecting the scope of the present invention.
[0297] The above-described embodiments include examples of various aspects. Although it is not possible to describe all possible combinations for showing the various aspects, those having ordinary knowledge in the art will recognize that other combinations are possible. Therefore, the present invention is intended to include all other alternatives, modifications, and variations that fall within the scope of the following claims.
Claims
1. 1. A video decoding method performed by a decoder, comprising: receiving information about a parallel merge level representing a size of a parallel merge unit area; obtaining merge flag information indicating whether a merge mode is applied to the current block; deriving a plurality of spatial merge candidates for the current block based on the merge flag information indicating that the merge mode is applied to the current block; constructing a merge candidate list including the plurality of spatial merge candidates for the current block; deriving motion information of the current block based on one of the spatial merge candidates in the merge candidate list; deriving prediction samples for the current block based on the derived motion information; generating a reconstructed picture based on the predicted samples; a size of the parallel merge unit region is derived based on information about the parallel merge level; The current block belongs to the parallel merge unit region, The current block is associated with a prediction unit (PU), the prediction unit (PU) being one of a plurality of PUs divided from a coding unit; For the PU having a size smaller than a size of the parallel merge unit region and located within the parallel merge unit region, the plurality of spatial merge candidates are the same as the plurality of spatial merge candidates of a 2N×2N PU having the same size as the parallel merge unit region; The spatial merging candidates of the 2N×2N PU having the same size as the parallel merging unit region are derived from a block located closest to a lower left corner, a block adjacent to the left side, a block located closest to a upper right corner, a block adjacent to the top side, and a block located closest to a upper left corner of the parallel merging unit region; The method of video decoding, wherein the information about the parallel merging level is received via a picture parameter set.
2. The video decoding method of claim 1 , wherein based on a value of the information about the parallel merge level being 0, the size of the parallel merge unit region is 4×4.
3. The video decoding method of claim 1 , further comprising: deriving motion information for each of the plurality of PUs included in the parallel merging unit region in parallel based on a value of the information on the parallel merging level being greater than 0.
4. Based on the value of the information about the parallel merge level being 1, the size of the parallel merge unit area is 8×8; The video decoding method of claim 1 , wherein a size of the parallel merging unit area is 16×16 based on a value of the information about the parallel merging level being 2.
5. based on the value of the information about the parallel merge level being 3, the size of the parallel merge unit area is 32×32; The video decoding method of claim 1 , wherein the size of the parallel merging unit region is 64×64 based on the information about the parallel merging level being a value of 4.
6. The video decoding method of claim 1 , wherein the plurality of PUs share the plurality of spatial merging candidates based on a size of the coding unit being 8×8 and a size of the parallel merging unit region being greater than 4×4.
7. 1. A video encoding method performed by an encoder, comprising: generating merge flag information based on whether a merge mode is applied to the current block; deriving a plurality of spatial merge candidates for the current block based on the merge flag information indicating that the merge mode is applied to the current block; constructing a merge candidate list indicating the plurality of spatial merge candidates for the current block; selecting a merge candidate from the list of merge candidates; generating merge index information indicative of the selected merge candidate from the merge candidate list; deriving a parallel merge level indicating a size of a parallel merge unit area; generating information about the parallel merge level; encoding video information including the merge flag information, the merge index information, and information about the parallel merge level; a size of the parallel merge unit region is represented based on information about the parallel merge level; The current block belongs to the parallel merge unit region, The current block is associated with a prediction unit (PU), the PU being one of a plurality of PUs divided from a coding unit (CU); For the PU having a size smaller than a size of the parallel merge unit region and located within the parallel merge unit region, the plurality of spatial merge candidates are identical to the plurality of spatial merge candidates of 2N×2N PUs having the same size as the parallel merge unit region; A plurality of spatial merging candidates of 2N×2N PUs having a size equal to a size of the parallel merging unit region are derived from a block located closest to a lower left corner, a block adjacent to the left side, a block located closest to a upper right corner, a block adjacent to the top side, and a block located closest to a upper left corner of the parallel merging unit region; The video coding method, wherein information about the parallel merging level is signaled via a picture parameter set.
Citation Information
Patent Citations
Inter prediction method and device
JP6764507B2
Motion Prediction Method and Video Encoding Method
US20110176613A1
Parallel Motion Estimation in Video Coding
US20120257678A1
Parallelization friendly merge candidates for video coding
WO2012177644A1