Candidate list sharing method and device using such method - Patents.com

By generating a single merging candidate list for interscreen predictions on video data, the method addresses the challenges of high-resolution video compression, reducing complexity and increasing processing speed for encoding and decoding.

JP7669466B2Active Publication Date: 2025-04-28ELECTRONICS & TELECOMM RES INST +1
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023223658
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2012-11-08
Filing Date
2023-12-28
Publication Date
2025-04-28
Estimated Expiration
2032-11-08

AI Technical Summary

Technical Problem

Existing video compression techniques face challenges in efficiently compressing high-resolution and high-quality video data, leading to increased transfer and storage costs.

Method used

A method and apparatus for generating a single merging candidate list to perform interscreen predictions on prediction blocks in parallel, by calculating spatial and temporal merging candidates based on encoded blocks and determining whether predicted blocks can perform a parallel merge process.

Benefits of technology

This approach reduces the complexity of interscreen prediction and increases processing speed for encoding and decoding by allowing multiple prediction blocks to share a single candidate list and perform parallel predictions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007669466000007
    Figure 0007669466000007
  • Figure 0007669466000008
    Figure 0007669466000008
  • Figure 0007669466000009
    Figure 0007669466000009
Patent Text Reader

Abstract

To provide a candidate list sharing method and a device using such a method.SOLUTION: A method for generating a merging candidate list for predicted blocks includes calculating at least one merging candidate on the basis of the encoded block including the prediction block among the spatial merging candidates 610, 615, 620, 625 and the temporal merging candidates 660, 670 of the prediction blocks 600, 650 on which the parallel merging process is performed, and generating a single merging candidate list for the coded block on the basis of the calculated merging candidates. The encoding and decoding processing speeds can be increased by performing inter-screen prediction on multiple prediction blocks in parallel.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a video processing method and apparatus, and more particularly to an inter-picture prediction method and an apparatus using such a method. [Background technology]

[0002] Recently, the demand for high-resolution, high-quality images such as HD (High Definition) images and UHD (Ultra High Definition) images is increasing in various application fields. As the image data becomes higher in resolution and quality, the amount of data increases relatively compared to existing image data. Therefore, when the image data is transmitted using a medium such as an existing wired or wireless broadband line or stored using an existing storage medium, the transmission and storage costs increase. To solve these problems that arise as the image data becomes higher in resolution and quality, highly efficient image compression technology can be used.

[0003] There are various video compression technologies, such as inter-frame prediction technology that predicts pixel values ​​contained in a current picture from pictures before or after the current picture, intra-frame prediction technology that predicts pixel values ​​contained in a current picture using pixel information within the current picture, and entropy coding technology that assigns short codes to values ​​that occur frequently and long codes to values ​​that occur less frequently. Using these video compression technologies, video data can be effectively compressed and transmitted or stored. Summary of the Invention [Problem to be solved by the invention]

[0004] SUMMARY OF THE PRESENT EMBODIMENT An object of the present invention is to provide a method for generating a single candidate list and performing inter-picture prediction on prediction blocks in parallel.

[0005] It is yet another object of the present invention to provide an apparatus for generating a single candidate list and performing inter-picture prediction on prediction blocks in parallel. [Means for solving the problem]

[0006] A method for generating a merging candidate list for a prediction block according to an aspect of the present invention for achieving the above-mentioned object of the present invention may include the steps of: calculating at least one merging candidate among spatial merging candidates and temporal merging candidates of the prediction block for which a parallel merging process is performed based on a coding block including the prediction block; and generating a single merging candidate list for the coding block based on the calculated merging candidates. The step of calculating at least one merging candidate among spatial merging candidates and temporal merging candidates of the prediction block for which a parallel merging process is performed based on a coding block including the prediction block may include the steps of inducing a spatial merging candidate block and a temporal merging candidate block based on a pixel position of the coding block and a size of the coding block; and calculating motion prediction related information of a usable merging candidate block among the derived spatial merging candidate block and the temporal merging candidate block as the merging candidate. The method for generating a merging candidate list for the prediction block may further include a step of determining whether the prediction block is a block for which a parallel merging process can be performed, and the step of determining whether the prediction block is a block for which a parallel merging process can be performed may include a step of decoding size information of the block for which a parallel merging process can be performed, and a step of determining whether the prediction block is a block for which a parallel merging process can be performed based on the size information of the block for which the parallel merging process can be performed and the size information of the coding block.The step of calculating motion prediction related information of a usable merging candidate block among the derived spatial merging candidate block and the temporal merging candidate block as the merging candidate may include a step of determining whether the coding block and the spatial merging candidate block derived based on the coding block are located inside a block for which the parallel merging process is possible, and a step of determining the spatial merging candidate block as an unavailable spatial merging candidate block if the coding block and the spatial merging candidate block derived based on the coding block are located inside a block for which the parallel merging process is possible. The step of determining whether the prediction block is a block for which the parallel merging process is possible based on size information of the block for which the parallel merging process is possible and size information of the coding block may include a step of determining whether a size of the block for which the parallel merging process is possible is equal to or larger than a predetermined specific size, a step of determining whether the coding block is a specific size, and a step of determining that the prediction block is to be merged using the single merging candidate list if a size of the block for which the parallel merging process is possible is equal to or larger than the predetermined specific size and the coding block is the specific size. The method for generating a merging candidate list for the prediction block may further include, if the prediction block is not a block for which a parallel merging process can be performed, a step of deriving the spatial merging candidate block and the temporal merging candidate block based on a pixel position of the prediction block and a size of the prediction block, and a step of calculating motion prediction related information of a usable merging candidate block among the derived spatial merging candidate block and the temporal merging candidate block as a merging candidate.The step of calculating motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as a merging candidate may include a step of determining whether the prediction block is a block divided into one of Nx2N, nLx2N, and nRx2N types and the prediction block is a second prediction block, and a step of determining that the spatial merging candidate block included in the first prediction block is not usable if the prediction block is a block divided into one of Nx2N, nLx2N, and nRx2N types and the prediction block is the second prediction block. The step of calculating motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as a merging candidate may include a step of determining whether the prediction block is a block divided into one of 2NxN, 2NxnU, and 2NxnD types and the prediction block is a second prediction block, and a step of determining that the spatial merging candidate block included in the first prediction block is not usable if the prediction block is a block divided into one of 2NxN, 2NxnU, and 2NxnD types and the prediction block is the second prediction block.

[0007] According to an aspect of the present invention, a video decoding apparatus includes a prediction unit, the prediction unit may be configured to calculate at least one merging candidate among spatial merging candidates and temporal merging candidates of the prediction block on which the parallel merging process is performed based on a coding block including the prediction block, and generate a single merging candidate list for the coding block based on the calculated merging candidates. The prediction unit may be configured to derive a spatial merging candidate block and a temporal merging candidate block based on a pixel position of the coding block and a size of the coding block in order to calculate at least one merging candidate among spatial merging candidates and temporal merging candidates of the prediction block on which the parallel merging process is performed based on a coding block including the prediction block, and to calculate motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as the merging candidate. The prediction unit may be configured to determine whether the prediction block is a block on which a parallel merging process is possible, and may be configured to determine whether the prediction block is a block on which a parallel merging process is possible based on size information of a block on which a parallel merging process is possible and size information of the coding block, which are decoded to determine whether the prediction block is a block on which a parallel merging process is possible. The prediction unit may be configured to determine whether the coding block and a spatial merging candidate block induced based on the coding block are located inside a block on which the parallel merging process is possible, in order to calculate motion prediction related information of a usable merging candidate block among the derived spatial merging candidate block and the temporal merging candidate block as the merging candidate, and to determine the spatial merging candidate block as an unusable spatial merging candidate block when the coding block and the spatial merging candidate block induced based on the coding block are located inside a block on which the parallel merging process is possible.The prediction unit may be embodied to determine whether a size of a block on which a parallel merging process can be performed in parallel is equal to or larger than a predetermined specific size to determine whether the prediction block is a block on which a parallel merging process can be performed based on size information of the block on which the parallel merging process can be performed and size information of the coding block, determine whether the coding block is a specific size, and determine to perform merging of the prediction block using the single merging candidate list if the size of the block on which a parallel merging process can be performed in parallel is equal to or larger than the predetermined specific size and the coding block is the specific size. If the prediction block is not a block on which a parallel merging process can be performed, the prediction unit may be embodied to derive the spatial merging candidate block and the temporal merging candidate block based on a pixel position of the prediction block and a size of the prediction block, and calculate motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as a merging candidate. In order to calculate motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as a merging candidate, the prediction unit can be embodied to determine whether the prediction block is a block divided into one of Nx2N, nLx2N, and nRx2N types and the prediction block is a second prediction block, and if the prediction block is a block divided into one of Nx2N, nLx2N, and nRx2N types and the prediction block is the second prediction block, determine that the spatial merging candidate block included in the first prediction block cannot be used.In order to calculate motion prediction related information of a usable merging candidate block among the induced spatial merging candidate block and the temporal merging candidate block as a merging candidate, the prediction unit can be embodied to determine whether the prediction block is a block divided into one of 2NxN, 2NxnU, and 2NxnD types and the prediction block is a second prediction block, and if the prediction block is a block divided into one of 2NxN, 2NxnU, and 2NxnD types and the prediction block is a second prediction block, determine that the spatial merging candidate block included in the first prediction block is not usable. Effect of the Invention

[0008] As described above, according to the candidate list sharing method and the apparatus using such method according to the embodiment of the present invention, a plurality of prediction blocks divided from one coding block share a single candidate list to perform inter prediction, thereby reducing the complexity of inter prediction. Also, by performing inter prediction on a plurality of prediction blocks in parallel, the processing speed of encoding and decoding can be increased. [Brief description of the drawings]

[0009] [Figure 1] 1 is a block diagram showing a configuration of a video encoding device according to an embodiment of the present invention. [Diagram 2] FIG. 13 is a block diagram showing a configuration of a video decoding device according to still another embodiment of the present invention. [Diagram 3] FIG. 2 is a conceptual diagram illustrating an inter-picture prediction method using merging according to an embodiment of the present invention. [Figure 4] FIG. 1 is a conceptual diagram showing a case where one coding block is divided into two prediction blocks. [Diagram 5] FIG. 2 is a conceptual diagram illustrating inter prediction using temporal merging candidates and reference picture indexes of the temporal merging candidates according to an embodiment of the present invention. [Figure 6]FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing all spatial and temporal merging candidates for multiple prediction blocks according to an embodiment of the present invention. [Figure 7] FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing only spatial merging candidates for multiple prediction blocks according to an embodiment of the present invention. [Figure 8] FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing only temporal merging candidates for multiple prediction blocks according to an embodiment of the present invention. [Figure 9] FIG. 1 is a conceptual diagram for explaining an inter-screen prediction mode using AMVP. [Figure 10] 1 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing all spatial candidate prediction blocks and temporal candidate prediction blocks among multiple prediction blocks according to an embodiment of the present invention. [Figure 11] FIG. 2 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing only spatial candidate prediction blocks among multiple prediction blocks according to an embodiment of the present invention. [Figure 12] FIG. 2 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing only a temporal candidate prediction block among multiple prediction blocks according to an embodiment of the present invention. [Figure 13] FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list according to an embodiment of the present invention. [Figure 14] FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list according to an embodiment of the present invention. [Figure 15] FIG. 2 is a conceptual diagram illustrating a method for generating a single merging candidate list according to an embodiment of the present invention. [Figure 16] FIG. 2 is a conceptual diagram illustrating a method for generating a merging candidate list according to an embodiment of the present invention. [Figure 17] FIG. 2 is a conceptual diagram illustrating the location of spatial merging candidates according to the division form of a coding block according to an embodiment of the present invention. [Figure 18]FIG. 2 is a conceptual diagram illustrating a method for generating a merging candidate list according to an embodiment of the present invention. [Figure 19] FIG. 2 is a conceptual diagram illustrating the location of spatial merging candidates according to the division form of a coding block according to an embodiment of the present invention. [Figure 20] FIG. 2 is a conceptual diagram illustrating the location of spatial merging candidates according to the division form of a coding block according to an embodiment of the present invention. [Figure 21] FIG. 2 is a conceptual diagram illustrating the location of spatial merging candidates according to the division form of a coding block according to an embodiment of the present invention. [Figure 22] FIG. 13 is a conceptual diagram illustrating the location of spatial merging candidates according to a division form of a coding block according to an embodiment of the present invention. [Diagram 23] 1 is a conceptual diagram illustrating a process in which multiple prediction blocks are decoded and encoded in parallel when a single candidate list generation method according to an embodiment of the present invention is used. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments of the present invention will be described in detail with reference to the drawings. In describing the embodiments of the present specification, if it is determined that a detailed description of related known configurations or functions may obscure the gist of the specification, the detailed description will be omitted.

[0011] When a component is said to be "coupled" or "connected" to another component, it may be directly coupled or connected to the other component, but it should be understood that there may be other components in between. In addition, in the present invention, the content described as "including" a specific component does not exclude components other than the relevant component, but means that additional components are included in the implementation of the present invention or within the scope of the technical idea of ​​the present invention.

[0012] Terms such as "first" and "second" may be used to describe various components, but the components should not be limited by the terms. The terms are used only to distinguish one component from another. For example, a first component may be named a second component, and similarly, a second component may be named a first component, without departing from the scope of the present invention.

[0013] In addition, components shown in the embodiments of the present invention are illustrated independently to show different characteristic functions, and do not mean that each component is a separate hardware or software component unit. That is, each component is listed and included in each component for convenience of explanation, and at least two components among each component can be combined to form one component, or one component can be divided into multiple components to perform a function, and such integrated and separated embodiments of each component are included in the scope of the present invention as long as they do not deviate from the essence of the present invention.

[0014] In addition, some components may not be essential components for performing essential functions in the present invention, but may be optional components for merely improving performance. The present invention may be embodied including only components essential for embodying the essence of the present invention, excluding components used merely for improving performance, and a structure including only essential components, excluding optional components used merely for improving performance, is also included in the scope of the present invention.

[0015] FIG. 1 is a block diagram showing a configuration of a video encoding device according to an embodiment of the present invention.

[0016] Referring to FIG. 1, the video encoding device 100 includes a motion prediction unit 111, a motion compensation unit 112, an intra prediction unit 120, a switch 115, a subtractor 125, a transform unit 130, a quantization unit 140, an entropy encoding unit 150, an inverse quantization unit 160, an inverse transform unit 170, an adder 175, a filter unit 180, and a reference video buffer 190.

[0017] The video encoding device 100 may perform encoding in an intra mode or an inter mode on an input image and output a bitstream. In the intra mode, the switch 115 is switched to intra, and in the inter mode, the switch 115 is switched to inter. The video encoding device 100 may calculate a prediction block for an input block of an input image, and then encode a residual between the input block and the prediction block.

[0018] The intra mode is an intra prediction mode, the inter mode is an inter prediction mode, the intra prediction unit 120 is an intra prediction unit, and the motion prediction unit 111 and the motion compensation unit 112 are each defined as an inter prediction unit.

[0019] In the case of the intra mode, the intra prediction unit 120 can calculate a predicted block by performing spatial prediction using pixel values ​​of previously encoded blocks surrounding the current block.

[0020] In the case of the inter mode, the motion prediction unit 111 may obtain a motion vector by searching for an area that best matches an input block in a reference image stored in the reference image buffer 190 during the motion prediction process. The motion compensation unit 112 may calculate a prediction block by performing motion compensation using the motion vector.

[0021] The subtractor 125 may calculate a residual block based on a difference between an input block and the calculated prediction block. The transform unit 130 may perform a transform on the residual block to output a transform coefficient. Herein, the transform coefficient may refer to a coefficient value calculated by performing a transform on the residual block and / or the residual signal. Hereinafter, in this specification, a quantized transform coefficient level calculated by applying quantization to the transform coefficient may also be referred to as a transform coefficient.

[0022] The quantization unit 140 may quantize the input transform coefficients according to a quantization parameter and output a quantized transform coefficient level.

[0023] The entropy coding unit 150 may perform entropy coding based on the value calculated by the quantization unit 140 or coding parameter values ​​calculated during the coding process, and output a bit stream.

[0024] When entropy coding is applied, a smaller number of bits are assigned to symbols having a higher occurrence probability, and a larger number of bits are assigned to symbols having a lower occurrence probability to represent the symbols, thereby reducing the size of the bit string for the symbols to be coded. Therefore, the compression performance of the video coding can be improved through entropy coding. The entropy coding unit 150 can use coding methods such as exponential golomb, CAVLC (Context-Adaptive Variable Length Coding), and CABAC (Context-Adaptive Binary Arithmetic Coding) for entropy coding.

[0025] 1 performs inter-prediction coding, i.e., inter-frame predictive coding, so that a currently coded image needs to be decoded and stored in order to be used as a reference image. Therefore, the quantized coefficients are inverse quantized by the inverse quantization unit 160 and inverse transformed by the inverse transform unit 170. The inverse quantized and inverse transformed coefficients are added to the predicted block through an adder 175 to calculate a reconstructed block.

[0026] The reconstructed block passes through a filter unit 180, which can apply at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the reconstructed block or the reconstructed picture. The reconstructed block that has passed through the filter unit 180 can be stored in a reference picture buffer 190.

[0027] FIG. 2 is a block diagram showing a configuration of a video decoding device according to still another embodiment of the present invention.

[0028] 2, the video decoding apparatus 200 includes an entropy decoding unit 210, an inverse quantization unit 220, an inverse transform unit 230, an intra prediction unit 240, a motion compensation unit 250, an adder 255, a filter unit 260, and a reference video buffer 270.

[0029] The video decoding apparatus 200 may receive a bitstream output from an encoder, perform decoding in an intra mode or an inter mode, and output a reconstructed image, i.e., a restored image. In the intra mode, a switch is switched to intra, and in the inter mode, a switch is switched to inter. The video decoding apparatus 200 may obtain a reconstructed residual block from the input bitstream, calculate a prediction block, and then calculate a reconstructed block, i.e., a restored block, by adding the reconstructed residual block and the prediction block.

[0030] The entropy decoding unit 210 may perform entropy decoding on the input bit stream according to a probability distribution to generate symbols including symbols in the form of quantized coefficients. The entropy decoding method is similar to the entropy coding method described above.

[0031] When the entropy decoding method is applied, a smaller number of bits are assigned to symbols having a higher occurrence probability, and a larger number of bits are assigned to symbols having a lower occurrence probability to represent the symbols, thereby reducing the size of the bit string for each symbol. Therefore, the entropy decoding method can improve the compression performance of video decoding.

[0032] The quantized coefficients are inversely quantized by the inverse quantization unit 220 and inversely transformed by the inverse transformation unit 230. As a result of the inverse quantization / inverse transformation of the quantized coefficients, a reconstructed residual block can be calculated.

[0033] In the case of the intra mode, the intra prediction unit 240 can calculate a prediction block by performing spatial prediction using pixel values ​​of already decoded blocks around the current block. In the case of the inter mode, the motion compensation unit 250 can calculate a prediction block by performing motion compensation using a motion vector and a reference image stored in the reference image buffer 270.

[0034] The reconstructed residual block and the prediction block are added through an adder 255, and the added block may pass through a filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture. The filter unit 260 may output a reconstructed image, i.e., a reconstructed image. The reconstructed image may be stored in a reference image buffer 270 and used for inter prediction.

[0035] Methods for improving prediction performance of an encoding / decoding device include a method for increasing the accuracy of an interpolation image and a method for predicting a difference signal. Here, the difference signal is a signal indicating the difference between an original image and a predicted image. In the present invention, the "difference signal" may be replaced with a "difference signal", a "residual block", or a "difference block" according to the context, and a person skilled in the art may distinguish between them within a scope that does not affect the idea and essence of the invention.

[0036] In an embodiment of the present invention, the terms coding unit (CU), prediction unit (PU), and transform unit (TU) may be used to indicate a unit for processing an image.

[0037] A coding unit is an image processing unit that performs encoding / decoding, and can include a coding block, which is a block-based collection of luma samples or chroma samples on which encoding / decoding is performed, and information used to encode or decode the samples of the coding block.

[0038] A prediction unit is an image processing unit for performing prediction, and may include a prediction block, which is a block-unit set of luminance samples or chrominance samples on which prediction is performed, and information used to predict samples of the prediction block. A coding block is divided into a plurality of prediction blocks.

[0039] A transform unit is an image processing unit that performs transform, and may include a transform block, which is a block-based collection of luma samples or chroma samples on which transform is performed, and information used to transform samples of the transform block. A coding block is divided into a plurality of transform blocks.

[0040] Hereinafter, in the embodiments of the present invention, unless otherwise specified, a block and a unit may be interpreted as having the same meaning.

[0041] In addition, a current block may refer to a block on which a specific image process is performed, such as a prediction block on which current prediction is performed, or a coding block on which current coding is performed. For example, when one coding block is divided into two prediction blocks, the block on which prediction is performed among the divided prediction blocks may be referred to as the current block.

[0042] In an embodiment of the present invention, a video encoding method and a video decoding method described below may be performed by each component included in the video encoder and the video decoder described above in Figures 1 and 2. The components may include not only hardware components but also software processing units that can be performed through an algorithm.

[0043] The merging candidate list generating method disclosed in the embodiment of the present invention can be used in both the SKIP mode and one of the inter-frame prediction methods among the image processing methods. The SKIP mode is an image processing method that does not generate a residual block, but outputs a predicted block based on motion prediction information derived from a surrounding block to a reconstructed block. The merging, which is one of the inter-frame prediction methods, is the same as the SKIP mode in that it generates a predicted block based on motion prediction information derived from a surrounding block, but is an image processing method that additionally encodes and decodes residual block information to output a reconstructed block obtained by combining the residual block and the predicted block. An in-loop filtering method such as deblocking filtering and sample adaptive offset can be further applied to the output reconstructed block.

[0044] FIG. 3 is a conceptual diagram for explaining the inter-picture prediction method using merging according to an embodiment of the present invention.

[0045] Referring to FIG. 3, inter-prediction using merging can be performed in the following manner.

[0046] Inter prediction using merging refers to a method of deriving merging candidates from neighboring blocks of a current block and performing inter prediction using the induced merging candidates. The neighboring blocks used to derive merging candidates can be classified into blocks adjacent to the current block while existing in the same picture as the current block, and blocks collocated with the current block while existing in a different picture from the current block.

[0047] Hereinafter, in the embodiment of the present invention, among the neighboring blocks used to derive a merging candidate, a block that exists in the same picture as the current block and is adjacent to the current block is defined as a spatial merging candidate block, and motion prediction related information derived from the spatial merging candidate block is defined and used as a term of spatial merging candidate.Further, among the neighboring blocks used to derive a merging candidate, a block that exists in a different picture from the current block and is collocated with the current block is defined as a temporal merging candidate block, and motion prediction related information derived from the temporal merging candidate block is defined and used as a term of temporal merging candidate.

[0048] That is, the inter-frame prediction method using merging is an inter-frame prediction method that predicts a current block using motion prediction related information of a spatial merging candidate block (spatial merging candidate) or motion prediction related information of a temporal merging candidate block (temporal merging candidate) described later.

[0049] For example, the motion vector (mvL0 / L1), the reference picture index (refIdxL0 / L1), and the reference picture list utilization information (pred FlagL0 / L1) can be used as the motion prediction related information. (A) of FIG. 3 shows the motion vector (mvL0 / L1), the reference picture index (refIdxL0 / L1), and the reference picture list utilization information (pred FlagL0 / L1).

[0050] The motion vector 304 is directional information that can be used to guide pixel information at a specific position in a reference picture for a prediction block when performing inter prediction. When inter prediction is performed using multiple pieces of directional information in a prediction block, a motion vector for each direction can be indicated using mvL0 and mvL1.

[0051] The reference picture index 306 is index information for a picture to be referenced when the prediction block performs inter prediction. When performing inter prediction using multiple reference pictures, the reference picture index may also index each reference picture to be used using refIdxL0 and refIdxL1.

[0052] The reference picture list utilization information may indicate from which reference picture list 308 the reference picture is derived. For example, pictures i, j, and k may be stored and used in reference picture list 0 308. When there are two lists in which reference pictures are stored, predFlagL0 and predFlagL1 may be used to indicate information on which reference picture list the reference picture is derived from.

[0053] In order to perform the inter prediction method using merging, first, spatial merging candidates can be obtained through the following step (1): FIG. 3B shows spatial merging candidates and temporal merging candidates.

[0054] (1) Derive spatial merging candidates from neighboring blocks for the current block (block to be predicted).

[0055] As described above, the spatial merging candidate is motion prediction related information derived from the spatial merging candidate block. The spatial merging candidate block can be calculated based on the position of the current block.

[0056] Referring to FIG. 3B, existing spatial merging candidate blocks 300, 310, 320, 330, and 340 are calculated based on a predicted block. Assuming that the position of the pixel at the upper left corner of the prediction block is (xP, yP), the width of the prediction block is nPbW, the height of the block to be predicted is nPbH, and MinPbSize indicates the size of the smallest prediction block, in the following embodiment of the present invention, the spatial merging candidate blocks of the prediction block can be a block including a pixel at (xP-1, yP+nPbH) as the first left block (or A0 block) 300, a block including a pixel at (xP-1, yP+nPbH-1) as the second left block (or A1 block) 310, a block including a pixel located at (xP+nPbW, yP-1) as the first top block (or B0 block) 320, a block including a pixel located at (xP+nPbW-1, yP-1) as the second top block (B1 block) 330, and a block including a pixel located at (xP-1, yP-1) as the third top block (B2 block) 340. Other values, such as "MinPbSize", may be used instead of 1, and in this case, blocks at the same location may still be indicated. The coordinates used to indicate blocks at specific locations above are arbitrary, and blocks at the same location may be indicated by various other methods of expression.

[0057] The positions and number of the spatial merging candidate blocks 300, 310, 320, 330, 340 and the positions and number of the temporal merging candidate blocks 360, 370 disclosed in Fig. 3 are arbitrary, and the positions and number of the spatial merging candidate blocks and the positions and number of the temporal merging candidate blocks may be changed without departing from the essence of the present invention. In addition, the order of the merging candidate blocks that are preferentially scanned when constructing a merging candidate list may also be changed. That is, the positions, number, scanning order, candidate prediction groups, etc. of the candidate prediction blocks used when constructing a candidate prediction motion vector list described in the following embodiment of the present invention are one embodiment, and may be changed without departing from the essence of the present invention.

[0058] It is possible to determine whether the spatial merging candidate blocks 300, 310, 320, 330, and 340 are available, and to derive a spatial merging candidate from the available spatial merging candidate block. Information indicating whether a spatial merging candidate can be derived from a spatial merging candidate is availability information. For example, if a spatial merging candidate block is located outside a slice, tile, or picture to which a current block belongs, or if the block is a block on which intra-screen prediction is performed, a spatial merging candidate, which is motion prediction-related information, cannot be derived, and in this case, it can be determined that the spatial merging candidate block is not available. Various determination methods can be used to determine availability information of a spatial merging candidate. This embodiment will be described in further detail.

[0059] For the available spatial merging candidate blocks, motion prediction related information can be derived and used to predict the current block.

[0060] A coding block may be divided into at least one predictive block. That is, a coding block may include one or more predictive blocks. When a coding block includes a plurality of predictive blocks, the predictive blocks may be indicated using specific index information. For example, when a coding block is divided into two predictive blocks, the partition index of one predictive block may be set to 0 and the partition index of the remaining predictive block may be set to 1 to indicate the two predictive blocks. Different terms may be used to define the first predictive block when the partition index is 0 and the second predictive block when the partition index is 1. When a coding block is further divided into additional predictive blocks, the index value indicating the predictive block may be increased. The terms defined to refer to predictive blocks are arbitrary and may be used and interpreted differently.

[0061] A partition index of a prediction block can also be used as information indicating an order in which the prediction block is processed when performing image processing such as encoding and decoding. In addition, in the single candidate list sharing method according to an embodiment of the present invention, a block on which parallel merge processing can be performed is newly defined, and parallel merge processing will be described. A block on which parallel merge processing can be performed can be defined as a unit including at least one coding block or a plurality of prediction blocks, which will be described in more detail below.

[0062] If a spatial merging candidate is calculated for each prediction block, if one coding block is divided into two prediction blocks, a spatial merging candidate for each block must be calculated. In this case, it is necessary to wait until the encoding or decoding of one prediction block included in one coding block is completed before calculating a spatial merging candidate for another prediction block. This is because, in the case of some spatial merging candidate blocks 310, if the corresponding prediction block included in another prediction block is not encoded or decoded, the spatial merging candidate block cannot be derived, and there are also cases where the spatial merging candidate block 300 at some positions has not yet been encoded or decoded. That is, in the case of a coding block including a plurality of prediction units, there is a problem that parallel encoding or decoding of each prediction block cannot be performed. FIG. 4 discloses such a problem.

[0063] FIG. 4 is a conceptual diagram showing a case where one coding block is divided into two prediction blocks.

[0064] 4, one coding block is divided into a first prediction block 400 and a second prediction block 420 of Nx2N format. A spatial merging candidate block for the first prediction block 400 is calculated based on the position of the first prediction block 400 as shown in Fig. 4A, and a spatial merging candidate block for the second prediction block 420 is calculated based on the position of the second prediction block 420 as shown in Fig. 4B. Although a temporal merging candidate block is not shown, the temporal merging candidate block is also calculated based on the position of each prediction block.

[0065] A spatial merging candidate block of the first prediction block 400 is a block that exists outside the first prediction block 400 and exists at a position where encoding or decoding has already been completed.

[0066] However, among the spatial merging candidate blocks of the second predicted block 420, the A1 block 430 is a block present inside the first predicted block 400. Therefore, motion prediction related information of the A1 block 430 is known after prediction of the first predicted block 400 is performed. That is, a merging candidate list generation process for the second predicted block 420 is performed after the merging candidate list of the first predicted block 400 is generated.

[0067] FIG. 4C shows the order in which the merge candidate list is generated when one coding block is divided into two prediction blocks.

[0068] Referring to (C) of Figure 4, when one coding block is divided into multiple predictive blocks during the encoding and decoding processes, it can be seen that the process of generating merge candidate lists for the multiple predictive blocks cannot be performed in parallel, and the process of generating merge candidate lists for the multiple predictive blocks is performed sequentially for each predictive block.

[0069] In a candidate list sharing method and an apparatus using such a method according to an embodiment of the present invention, a method is disclosed in which a plurality of prediction units divided into one coding block share a merging candidate list when deriving spatial merging candidates and temporal merging candidates. A merging candidate list shared by a plurality of prediction units can be defined and used as a term called a single merging candidate list.

[0070] That is, the present invention discloses a method for performing inter-frame prediction using merging of a plurality of prediction blocks by using a single merging candidate list for a plurality of prediction blocks included in a coding block that is divided into the coding block. By using a single merging candidate list, it is possible to reduce the complexity caused by generating a merging candidate list multiple times for each prediction block. In addition, a plurality of prediction blocks divided in one coding block that performs inter-frame prediction using merging can be encoded or decoded in parallel.

[0071] A method for generating a single merging candidate list will be further disclosed in the following embodiments of the present invention.

[0072] (2) Setting reference picture indexes of temporal merging candidates.

[0073] The temporal merging candidate is motion prediction related information derived from a temporal merging candidate block existing in a picture different from the picture including the current block. The temporal merging candidate block is a block calculated based on a block existing in a position collocated with the position of the current block. The term "co-block" can also be used to mean the same as the temporal merging candidate block.

[0074] 3, the temporal merging candidate block 360, 370 may be a block including a pixel at (xP+nPSW, yP+nPSH) position in the call picture of the current prediction block based on a pixel position (xP, yP) in the picture including the prediction block, or a block including a pixel at (xP+(nPSW>>1), yP+(nPSH>>1)) position if a block including a pixel at (xP+nPSW, yP+nPSH) position is not available. The prediction block including a pixel at (xP+nPSW, yP+nPSH) position in the call picture may be referred to as the first temporal merging candidate block (or the first colocated block) 360, and the prediction block including a pixel at (xP+(nPSW>>1), yP+(nPSH>>1)) position in the call picture may be referred to as the second temporal merging candidate block 370. Finally, the position of the final temporal merging candidate block used to calculate the temporal merging candidate (motion prediction related information) may be a block located at a position partially moved based on the positions of the first temporal merging candidate block 360 and the second temporal merging candidate block 370. For example, when only motion prediction related information of some prediction blocks present in the call picture is stored in the memory, a block located at a position partially moved based on the positions of the first temporal merging candidate block 360 and the second temporal merging candidate block 370 can be used as the final temporal merging candidate block for deriving the final motion prediction related information. As with the spatial merging candidate block, the position of the temporal merging candidate block may be changed or added, unlike that of FIG. 3, and such an embodiment will be described below.

[0075] The reference picture index of the temporal merging candidate is information indicating a picture to be referenced in order to perform inter prediction on the current block based on a motion vector (mvLXCol) calculated from the temporal merging candidate.

[0076] FIG. 5 is a conceptual diagram illustrating inter prediction using temporal merging candidates and reference picture indexes of the temporal merging candidates according to an embodiment of the present invention.

[0077] Referring to FIG. 5, a current block 500, a picture 510 in which the current block is included, a temporal merging candidate block 520, and a call picture 530 in which the call block is included can be defined.

[0078] From the perspective of the temporal merging candidate block 520, there is a picture 540 that the temporal merging candidate block used for inter prediction in order to perform inter prediction on the temporal merging candidate block 520. Such a picture is defined as a reference picture 540 of the call picture 530. In addition, a motion vector used by the temporal merging candidate block 520 to perform inter prediction from the reference picture 540 of the call picture can be defined as mvCol 570.

[0079] From the perspective of the current block 500, a reference picture 560 to be used for inter prediction of the current block 500 must be defined based on the calculated mvCol 570. The reference picture defined to be used for inter prediction of the current block 500 may be referred to as a reference picture 560 of a temporal merging candidate. That is, the index of the reference picture 560 of the temporal merging candidate is a value for indicating a reference picture to be used for temporal motion prediction of the current block 500. In step (2), such a reference picture index of the temporal merging candidate may be derived.

[0080] The motion vector mvCol 570 derived from the temporal merging candidate block 520 can be scaled and transformed into other values ​​depending on the relationship between the distance between the call picture 530 and the call picture's reference picture 540 and the distance between the picture 510 containing the current block and the temporal merging candidate's reference picture 560 calculated through step (2).

[0081] That is, inter prediction of the current block 500 through the temporal merging candidate can be performed through the temporal merging candidate reference picture index 560 calculated through (2) and the mvLXCol 580 derived through step (3) described below based on the temporal merging candidate reference picture index 560. The mvLXCol can be defined as a temporal motion vector.

[0082] (3) Derive motion prediction related information for temporal merging candidates.

[0083] In step (3), in order to perform motion prediction based on the temporal merging candidate, a temporal merging candidate such as information on whether the temporal merging candidate block is available (availableFlagCol), reference picture list utilization information (PredFlagLXCol), and motion vector information (mvLXCol) of the temporal merging candidate can be derived. Availability information of the temporal merging candidate block is information on whether the temporal merging candidate can be derived from the temporal merging candidate block. The temporal merging candidate can be included in the merging candidate list based on the availability information of the temporal merging candidate block.

[0084] (4) Calculate a merging candidate list.

[0085] The merging candidate list may include information on merging candidates that can be used for inter-frame prediction using merging based on availability information of merging candidate blocks (spatial merging candidate blocks, temporal merging candidate blocks). One merging candidate included in the merging candidate list may be used to predict the current block. Information on which merging candidate is used to predict the current block (merge index) may be coded in the coding step and transmitted to the decoder.

[0086] The merging candidate list can be generated with the following priorities: 1) If the A1 block is available, merging candidates derived from the A1 block 2) If the B1 block is available, the merging candidates derived from the B1 block 3) If the B0 block is available, the merging candidates derived from the B0 block 4) If the A0 block is available, the merging candidates derived from the A0 block 5) If the B2 block is available, the merging candidates derived from the B2 block 6) If the Col block is available, the merging candidates derived from the Col block

[0087] The merging candidate list may include, for example, 0 to 5 merging candidates depending on the number of available blocks. If there are more blocks that can be used to derive merging candidates, more merging candidates may be included in the merging candidate list.

[0088] (5) If the number of merging candidates included in the merging candidate list is less than the maximum number of merging candidates that can be included in the merging candidate list, additional merging candidates are derived.

[0089] The additional merging candidate may be a candidate generated by combining motion prediction related information of existing merging candidates (combined merging candidate), or a zero vector merging candidate (zero merging candidate), where the zero vector merging candidate refers to a merging candidate whose motion vector is (0,0).

[0090] (6) Among the merging candidates included in the merging candidate list, a merging candidate to be applied to the inter prediction of the current block is determined, and motion prediction related information of the merging candidate is set as motion prediction related information of the current block.

[0091] During the decoding process, inter-frame prediction using merging can be performed on the current block based on a merge index (merge_idx[xP][yP]), which is information regarding which candidate among the candidates included in the merging candidate list is used for inter-frame prediction of the current block.

[0092] Through the above-mentioned steps (1) to (6), motion prediction related information for the current block is derived, and inter prediction for the current block can be performed using the derived information.

[0093] In the following embodiment of the present invention, when using the method of deriving spatial merging candidates from spatial merging candidate blocks of a current block (a block to be predicted) in step (1), a method of deriving a single merging candidate list for at least one prediction block included in one coding block and performing parallel merging processing for at least one prediction block is additionally disclosed. For convenience of explanation, the following embodiment of the present invention will be described assuming that one coding block is divided into multiple prediction blocks, but it can also be applied to a case where one coding block is not divided and the size of the coding block is the same as the size of one prediction block.

[0094] In the following embodiments, a method for constructing a single merging candidate list focusing on spatial merging candidates and temporal merging candidates will be described. However, even when a candidate (combined merging candidate) generated by combining motion prediction related information of spatial merging candidates and / or temporal merging candidates is added to the merging candidate list, or a zero vector merging candidate is added to the merging candidate list, it is possible to apply the same method as in the case of spatial merging candidates and temporal merging candidates, in which multiple prediction blocks divided from one coding block use a single merging candidate list determined based on the coding block.

[0095] To construct a single merging candidate list, multiple prediction blocks can 1) share all spatial and temporal merging candidates, 2) share only spatial merging candidates, or 3) share only temporal merging candidates. In the cases of 2) and 3), the merging candidate lists for the prediction blocks may be different from each other, but some candidates are shared, so for convenience, the term "single merging candidate list" is used as a general definition.

[0096] For more information, (1) A method in which multiple prediction blocks divided from one coding block share all spatial merging candidates and temporal merging candidates determined based on the coding block to generate a single merging candidate list.

[0097] (2) A method in which multiple prediction blocks divided from one coding block share only spatial merging candidates determined based on the coding block, and temporal merging candidates generate a single merging candidate list using blocks calculated based on each prediction block.

[0098] (3) Multiple prediction blocks divided from one coding block share only temporal merging candidates determined based on the coding block, and spatial merging candidates can share merging candidate lists between different prediction blocks through a method of generating a single merging candidate list using blocks calculated based on each prediction block.

[0099] FIG. 6 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing all spatial and temporal merging candidates for multiple prediction blocks according to an embodiment of the present invention.

[0100] FIG. 6 discloses a method for generating a single merging candidate list by sharing all spatial merging candidates and temporal merging candidates determined based on a single coding block for multiple prediction blocks divided from the coding block.

[0101] 6, a first prediction block 600 and a second prediction block 650 may share spatial merging candidates by calculating spatial merging candidates from the same spatial merging candidate block. The spatial merging candidate blocks for the first prediction block 600 and the second prediction block 650 are blocks determined based on the coding block, and an A0 block 605, an A1 block 610, a B0 block 615, a B1 block 620, and a B2 block 625 may be used as spatial merging candidate blocks.

[0102] The position of each spatial merging candidate block may be a position including the pixels shown in the drawing based on the upper left corner position (xC, yC) of the coding block and nCS (the size of the coding block).

[0103] A0 block 605 can be a block containing pixels located at (xC-1, yC+nCS), A1 block 610 can be a block containing pixels located at (xC-1, yC+nCS-1), B0 block 615 can be a block containing pixels located at (xC+nCS, yC-1), B1 block 620 can be a block containing pixels located at (xC+nCS-1, yC-1), and B2 block 625 can be a block containing pixels located at (xC-1, yC-1).

[0104] In addition, the first prediction block 600 and the second prediction block 650 may share a temporal merging candidate. The temporal merging candidate blocks 660 and 670 for deriving the temporal merging candidate shared by the first prediction block 600 and the second prediction block 650 may also be derived to a block existing at a position calculated based on the upper left corner position (xC, yC) of the coding block and the size (nCS) of the coding block.

[0105] For example, the temporal merging candidate blocks 660, 670 can be a prediction block 660 including a pixel at a position (xC+nCS, yC+nCS) in the colocated picture of the current prediction block based on a pixel position (xC, yC) in a picture including the prediction block, or a prediction block 670 including a pixel at a position (xC+(nCS>>1), yC+(nCS>>1)) if a prediction block including a pixel at a position (xC+nCS, yC+nCS) is not available.

[0106] By using the method of deriving a single merging candidate list, it is possible to perform parallel merge processing for each prediction block to perform inter-frame prediction, and it is not necessary to derive a separate merging candidate list for each prediction block. Therefore, by using a single merging candidate list according to an embodiment of the present invention, it is possible to improve the image processing speed in devices such as UHDTV (ultra-high definition television) that require a high amount of data processing.

[0107] Although FIG. 6 only illustrates a first Nx2N prediction block 600 and a second Nx2N prediction block 650 partitioned into an Nx2N form, the method can also be applied to blocks having other partition forms (e.g., prediction blocks partitioned into various forms such as 2NxN, 2NxnU, 2NxnD, nLx2N, nRx2N, or NxN).

[0108] In addition, this method may determine whether to apply a single merging candidate list depending on the size or division depth of a block. For example, information on whether a specific block is a block for which a single merging candidate list is used may be derived based on the size of blocks for which a merging process can be performed in parallel and the size information of a coding block. For example, information on whether a specific block is a block for which a single merging candidate list is used may be expressed as flag information. A flag on whether a specific block is a block for which a single merging candidate list is used may be defined as singleMCLflag (single merge candidate list flag). For example, when singleMCLflag is 0, it indicates that the block does not use a single merge candidate list, and when singleMCLflag is 1, it indicates that the block uses a single merge candidate list. Based on the value of singleMCLflag, a spatial merging candidate for a prediction block may be derived based on a coding block.

[0109] For example, based on information that the size of a block for which the merging process can be performed in parallel is greater than 4×4 size and information that the current block size is 8×8, flag information indicating that a single merging candidate list is used for a prediction block divided from an 8×8 coding block can be derived. The induced flag can be used to subsequently derive spatial merging candidates and temporal merging candidates for the prediction block on a coding block basis.

[0110] Such an embodiment of the present invention will be described in more detail below.

[0111] FIG. 7 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing only spatial merging candidates for multiple prediction blocks according to an embodiment of the present invention.

[0112] FIG. 7 discloses a method in which multiple prediction blocks divided from one coding block share only spatial merging candidates determined based on the coding block, and temporal merging candidates are calculated based on each prediction block to generate a single merging candidate list.

[0113] 7, a first prediction block 700 and a second prediction block 750 may share the same spatial merging candidate. The spatial merging candidate blocks for the first prediction block 700 and the second prediction block 750 are blocks determined based on the coding block, and blocks A0 705, A1 710, B0 715, B1 720, and B2 725 can be used as spatial merging candidate blocks. Each block may be located at a position calculated based on the coding block, as in FIG. 6.

[0114] The temporal merging candidate blocks (or call blocks) of the first predicted block 700 and the second predicted block 750 can be calculated based on the positions of each predicted block.

[0115] The first prediction block 700 can use at least one of the Hpu0 block 755 and the Mpu0 block 760, which are temporal merging candidate blocks determined based on the block position of the first prediction block 700, as a temporal merging candidate. The second prediction block 750 can use at least one of the Hpu1 block 765 and the Mpu1 block 770, which are call blocks determined based on the block position of the second prediction block 750, as a temporal merging candidate. As described above, the position of the temporal merging candidate block for finally calculating the motion prediction related information may be a block corresponding to a position partially moved based on the positions of the Hpu0 block 755, the Mpu0 block 760, the Hpu1 block 765, and the Mpu1 block 770.

[0116] The temporal merging candidate blocks 755, 760, 765, and 770 are blocks that exist in previously encoded or decoded pictures, and even if the first prediction block 700 and the second prediction block 750 do not share a temporal call block, they can generate merge candidate lists in parallel to perform inter-picture prediction.

[0117] FIG. 8 is a conceptual diagram illustrating a method for generating a single merging candidate list by sharing only temporal merging candidates for multiple prediction blocks according to an embodiment of the present invention.

[0118] FIG. 8 discloses a method in which multiple prediction blocks divided from one coding block share only temporal merging candidates determined based on the coding block, and spatial merging candidates are calculated based on each prediction block to generate a single merging candidate list.

[0119] Referring to FIG. 8, a first prediction block 800 and a second prediction block 850 may derive different spatial merging candidates from spatial merging candidate blocks according to their block positions and sizes.

[0120] The spatial merging candidate blocks for the first prediction block 800 are A0 block 805, A1 block 810, B0 block 813, B1 block 815, and B2 block 820, and the position of each block can be derived based on the top left pixel position of the first prediction block 800 and the size (width and height) of the first prediction block 800.

[0121] For example, if the top left pixel of the first prediction block is (xP, yP), the spatial merging candidate blocks of the prediction block can be a block including a pixel located at (xP-1, yP+nPbH) called the first left block (or A0 block) 805, a block including a pixel located at (xP-1, yP+nPbH-1) called the second left block (or A1 block) 810, a block including a pixel located at (xP+nPbW, yP-1) called the first top block (or B0 block) 813, a block including a pixel located at (xP+nPbW-1, yP-1) called the second top block (B1 block) 815, and a block including a pixel located at (xP-1, yP-1) called the third top block (B2 block) 820.

[0122] The spatial merging candidate blocks for the second prediction block 850 are A0' block 825, A1' block 830, B0' block 835, B1' block 840, and B2' block 815, and the position of each block can be derived based on the top left pixel position of the second prediction block 850 and the size (width and height) of the second prediction block 850.

[0123] For example, if the top left pixel of the second prediction block is (xP', yP'), the spatial merging candidate blocks of the prediction block may be a block including pixels located at (xP'-1, yP'+nPbH) as the first left block (or A0' block) 825, a block including pixels located at (xP'-1, yP'+nPbH-1) as the second left block (or A1' block) 830, a block including pixels located at (xP'+nPbW, yP'-1) as the first top block (or B0' block) 835, a block including pixels located at (xP'+nPbW-1, yP'-1) as the second top block (B1' block) 840, and a block including pixels located at (xP'-1, yP'-1) as the third top block (B2' block) 815.

[0124] That is, spatial merging candidates can be calculated based on the positions and sizes of the respective prediction blocks 800 and 850.

[0125] The temporal merging candidate blocks (or call blocks) 860 and 870 of the first prediction block 800 and the second prediction block 850 are calculated based on the coding block, and the two prediction blocks can share the same temporal merging candidate.

[0126] The above-described single merge candidate list calculation method can also be used to generate an advanced motion vector prediction (AMVP) list (or a motion vector predictor candidate list) in an inter-frame prediction mode using AMVP.

[0127] FIG. 9 is a conceptual diagram for explaining the inter-frame prediction mode using AMVP.

[0128] Briefly describing the inter-frame prediction mode using AMVP with reference to FIG. 9, the spatial candidate prediction block used in the inter-frame prediction mode using AMVP can include the first left block (A0) 900, the second left block (A1) 910, the first top block (B0) 920, the second top block (B1) 930, and the third top block (B2) 940. Such spatial candidate prediction blocks can be divided into two spatial candidate prediction groups, and the group including the first left block 900 and the second left block 910 can be defined as the first spatial candidate prediction group, and the group including the first top block 920, the second top block 930, and the third top block 940 can be defined as the second spatial candidate prediction group.

[0129] In addition, the temporal candidate prediction block may include a prediction block 950 including a pixel at a position (xP+nPbW, yP+nPbH) in the colocated picture of the current prediction block based on a pixel position (xP, yP) in the picture including the current prediction block, or a prediction block 960 including a pixel at a position (xP+(nPbW>>1), yP+(nPbH>>1)) if a prediction block including a pixel at a position (xP+nPbW, yP+nPbH) is not available. In the same manner as merging, the final temporal merging candidate used to finally calculate motion prediction related information in AMVP may be a block located at a position that is partially moved based on the positions of the first temporal merging candidate 950 and the second temporal merging candidate 960.

[0130] The inter prediction method using AMVP can generate a motion vector prediction candidate list based on the motion vector calculated in each spatial candidate prediction group and the motion vector calculated in the temporal candidate prediction block. The motion vectors in the calculated motion vector prediction candidate list can be used to perform inter prediction on the current block.

[0131] A method of calculating a motion vector in a candidate prediction block (spatial candidate prediction block or temporal candidate prediction block) can be performed in parallel. For example, when deriving a candidate prediction motion vector, if one candidate prediction motion vector is derived from each of two spatial candidate prediction groups (first spatial candidate prediction group, second spatial candidate prediction group) and one candidate prediction motion vector is derived from a temporal candidate prediction block, an operation of calculating a candidate prediction motion vector in the first spatial candidate prediction group, the second spatial candidate prediction group, and the temporal candidate prediction block can be performed in parallel. The fact that the candidate prediction motion vector deriving process is performed in parallel means that the complexity of the candidate prediction motion vector deriving process can be reduced. That is, a step of calculating a first spatial candidate prediction motion vector in the first spatial candidate prediction group, a step of calculating a spatial candidate prediction motion vector in the second spatial candidate prediction group, and a step of calculating a temporal candidate prediction motion vector in the temporal candidate prediction block can be performed in parallel.

[0132] According to an embodiment of the present invention, inter-picture prediction using AMVP for each prediction block divided from a coding block can also be performed in parallel.

[0133] In AMVP, when one coding block is divided into multiple prediction units in the same way as merging, a motion vector prediction candidate list is generated for each prediction block. In this case, it is necessary to wait until the spatial candidate prediction block of a particular prediction block is included in another prediction block and prediction is completed. Therefore, when a motion vector prediction candidate list is generated or when a spatial candidate prediction block of a particular prediction block is located in a position that has not yet been coded or decoded, there are cases where a motion vector cannot be derived from the corresponding block.

[0134] To solve this problem, in order to configure a motion vector prediction candidate list, a plurality of prediction blocks may 1) share all spatial candidate prediction blocks and temporal candidate prediction blocks, 2) share only spatial candidate prediction blocks, or 3) share only temporal candidate prediction blocks to calculate a spatial candidate prediction motion vector or a temporal candidate prediction motion vector. In the cases of 2) and 3), although the motion vector prediction candidate lists for the prediction blocks may be different from each other, some candidates are shared, so for convenience, the term "single motion vector prediction candidate list" is used as a general definition.

[0135] For more information, (1) A method in which multiple prediction blocks divided from one coding block share all of the spatial candidate prediction blocks and temporal candidate prediction blocks derived based on the coding block to generate a single motion vector prediction candidate list.

[0136] (2) A method in which multiple prediction blocks divided from one coding block share only spatial candidate prediction blocks derived based on the coding block, and the temporal candidate prediction blocks generate a single motion vector prediction candidate list using blocks calculated based on each prediction block.

[0137] (3) A plurality of prediction blocks divided from one coding block share only a temporal candidate prediction block derived based on the coding block, and the spatial candidate prediction blocks can share a motion vector prediction candidate list between different prediction blocks through a method of generating a single motion vector prediction candidate list using blocks calculated based on each prediction block.

[0138] FIG. 10 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing all spatial candidate prediction blocks and temporal candidate prediction blocks among a plurality of prediction blocks according to an embodiment of the present invention.

[0139] 10 discloses a method for generating a single motion vector prediction candidate list by sharing all spatial candidate prediction blocks and temporal candidate prediction blocks determined based on a single coding block for multiple prediction blocks divided from one coding block. In the following embodiment, it is assumed that all motion vector prediction candidates derived from the candidate prediction blocks are usable.

[0140] 10, a first prediction block 1000 and a second prediction block 1050 may share the same spatial candidate prediction block. The spatial candidate prediction blocks for the first prediction block 1000 and the second prediction block 1050 are blocks determined based on the coding block, and may be A0 block 1005, A1 block 1010, B0 block 1015, B1 block 1020, and B2 block 1025.

[0141] The first prediction block 1000 and the second prediction block 1050 can calculate one motion vector prediction candidate based on the shared A0 block 1005 and A1 block 1010, and can calculate one motion vector prediction candidate based on the B0 block 1015, B1 block 1020, and B2 block 1025.

[0142] In addition, the first prediction block 1000 and the second prediction block 1050 may share a temporal candidate prediction block (or a Cole block) 1050, 1060. The first prediction block 1000 and the second prediction block 1050 may calculate a motion vector prediction candidate from the shared temporal candidate prediction block (or a Cole block) 1050, 1060.

[0143] That is, the first prediction block 1000 and the second prediction block 1050 can generate a single motion vector prediction candidate list using motion vector prediction candidates calculated based on the spatial candidate prediction blocks 1005, 1010, 1015, 1020, 1025 and the temporal candidate prediction blocks 1050, 1060.

[0144] FIG. 11 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing only spatial candidate prediction blocks among a plurality of prediction blocks according to an embodiment of the present invention.

[0145] 11 discloses a method for calculating a motion vector prediction candidate by sharing only a spatial candidate prediction block determined based on a plurality of prediction blocks divided from one coding block, that is, a method for calculating a motion vector prediction candidate from a block calculated based on each temporal candidate prediction block to generate a single motion vector prediction candidate list.

[0146] 11, a first prediction block 1100 and a second prediction block 1150 may share the same spatial candidate prediction block. The spatial candidate prediction block for the first prediction block 1100 and the second prediction block 1150 is a block determined based on the coding block, and A0 block 1105, A1 block 1110, B0 block 1115, B1 block 1120, and B2 block 1125 are shared, and each block can be used as a spatial candidate prediction block.

[0147] Temporal candidate prediction blocks (or call blocks) 1155, 1160, 1165, and 1170 of the first prediction block 1100 and the second prediction block 1150 can be calculated based on the positions of the respective prediction blocks.

[0148] The first prediction block 1100 can use at least one of the Hpu0 block 1155 and the Mpu0 block 1160, which are call blocks determined based on its own position, as a temporal candidate prediction block.

[0149] The second prediction block 1150 can use at least one of the Hpu1 block 1165 and the Mpu1 block 1170, which are call blocks determined based on its own position, as a temporal candidate prediction block.

[0150] In the case of temporal candidate prediction blocks 1155, 1160, 1165, and 1170, even if the temporal candidate prediction block is not shared with a block existing in a previously encoded or decoded picture, the first prediction block 1100 and the second prediction block 1150 can generate a motion vector prediction candidate list in parallel and perform inter-frame prediction.

[0151] FIG. 12 is a conceptual diagram illustrating a method for generating a single motion vector prediction candidate list by sharing only a temporal candidate prediction block among multiple prediction blocks according to an embodiment of the present invention.

[0152] FIG. 12 discloses a method in which multiple prediction blocks divided from one coding block share only a temporal candidate prediction block determined based on the coding block, and a single motion vector prediction candidate list is generated using a spatial candidate prediction block calculated based on each prediction block.

[0153] 12, a first prediction block 1200 and a second prediction block 1250 may use different spatial candidate prediction blocks based on the position of each prediction block. That is, the spatial candidate prediction blocks for the first prediction block 1200 may be A0 block 1205, A1 block 1210, B0 block 1213, B1 block 1215, and B2 block 1220, and the spatial candidate prediction blocks for the second prediction block 1250 may be A0' block 1225, A1' block 1230, B0' block 1235, B1' block 1240, and B2' block 1215.

[0154] The temporal candidate prediction blocks (or call blocks) 1260, 1270 of the first prediction block 1200 and the second prediction block 1250 are calculated based on the coding block, and the two prediction blocks may share the same temporal candidate prediction block.

[0155] In the inter prediction mode using AMVP, the single motion vector prediction candidate list can be generated differently for each reference picture index that a block refers to. For example, if the current picture (or slice) has '4' reference pictures, there can be up to '4' reference picture indexes. In this case, a single motion vector prediction candidate list can be provided for each reference picture index, so that a total of '4' single motion vector prediction candidate lists can be generated and used for the prediction target block.

[0156] Also, the same reference picture index may be used for all prediction blocks in the current coding block to perform coding or decoding. In this case, since all prediction blocks in the current coding block have the same reference picture index, only one single motion vector prediction candidate list may be present. Whether or not to apply this method may be determined differently depending on the size or depth of the coding block.

[0157] In addition to the above-mentioned method, various methods can be used to generate a single merging candidate list and a single motion vector prediction candidate list. Various methods for generating candidate lists (single merging candidate list, single motion vector prediction candidate list) will be disclosed below.

[0158] FIG. 13 is a conceptual diagram illustrating a method for generating a single merging candidate list according to an embodiment of the present invention.

[0159] For convenience of explanation, FIG. 13 discloses a method for generating a single merging candidate list, but the present invention can also be applied to a method for generating a single motion vector prediction candidate list (AMVP List).

[0160] As described above, the positions of the temporal merging candidates and the spatial merging candidates may be changed to arbitrary positions, and the number of the temporal merging candidates and the spatial merging candidates may also be changed.

[0161] Referring to FIG. 13(A) and FIG. 13(B), the spatial merging candidate block positions and the temporal merging candidate block positions for generating a single merging candidate list can be newly defined.

[0162] In FIG. 13A, among the spatial merging candidate blocks, the positions of A1 block 1300 and B1 block 1305 can be newly defined as positions including the pixel (xC-1, yC+nCS / 2) for A1 block 1300, and the pixel (xC+nCS / 2, yC-1) for B1 block 1305.

[0163] In addition, positions where the temporal merging candidate blocks can be induced can be added to existing positions, and an H1 block 1310, an H2 block 1320, an H3 block 1330, and an H4 block 1340 can be added. In a call picture, the H1 block 1310 can be a block including (xC+nCS / 2, yC+nCS) pixels, the H2 block 1320 can be a block including (xC+nCS, yC+nCS / 2) pixels, the H3 block 1330 can be a block including (xC, yC+nCS) pixels, and the H4 block 1340 can be a block including (xC+nCS, yC) pixels.

[0164] In FIG. 13B, among the spatial merging candidate blocks, the positions of A1 block 1350 and B1 block 1355 can be newly defined as positions including the pixel (xC-1, yC+nCS / 2-1) for A1 block 1350, and the pixel (xC+nCS / 2-1, yC-1) for B1 block 1355.

[0165] Furthermore, the positions of the temporal merging candidate blocks can be added to existing positions to define H1 block 1360, H2 block 1370, H3 block 1380, and H4 block 1390. In a call picture, H1 block 1360 can be a block including (xC+nCS / 2, yC+nCS) pixels, H2 block 1370 can be a block including (xC+nCS, yC+nCS / 2) pixels, H3 block 1380 can be a block including (xC, yC+nCS) pixels, and H4 block 1390 can be a block including (xC+nCS, yC) pixels.

[0166] In the above-mentioned method for generating a single merging candidate list and a single motion vector prediction candidate list, a method for generating a single merging candidate list and a single motion vector prediction candidate list based on a coding block has been disclosed, and a possibility that a size of a coding block for which a single merging candidate list and a single motion vector prediction candidate list are generated is limited has been disclosed. A concept of a single candidate list can be used as a concept for integrating a single merging candidate list and a single motion vector prediction candidate list.

[0167] Also, according to an embodiment of the present invention, a single candidate list may be generated based on a general block (e.g., a block including at least one coding block or at least one prediction block as a block of a specific size) rather than on a coding block basis. Also, such a single candidate list generation method may be applied to only one of the inter prediction modes of merge and AMVP.

[0168] These matters can be summarized as shown in Table 1 below. [Table 1]

[0169] As described above, Table 1 is a table classified according to which block the single candidate list is based on, which block size is based on, and which inter-frame prediction method, merging or AMVP, is applied to generate the single merging candidate list.

[0170] FIG. 14 is a conceptual diagram illustrating a method for generating a single candidate list according to an embodiment of the present invention.

[0171] FIG. 14 discloses a method for sharing a single merging candidate list on a block basis in inter prediction using merging.

[0172] Referring to FIG. 14, the solid lines indicate coding blocks, and the dotted lines indicate prediction blocks divided from the corresponding coding blocks. FIG. 14 shows that one larger block unit including a plurality of coding blocks is a unit in which spatial merging candidate blocks 1400, 1405, 1410, 1415, 1420 and temporal merging candidate blocks 1450 to 1480 can be calculated. That is, a single merging candidate list can be generated in a unit larger than the coding unit. Such information can be encoded and decoded as information on blocks on which a parallel merging process can be performed. According to an embodiment of the present invention, it can be determined whether a prediction block included in a specific coding block performs merging using a single merging candidate list based on information on blocks on which a parallel merging process can be performed and information on a coding block including a prediction block.

[0173] Among the spatial merging candidate blocks derived from the coding blocks present inside the blocks where parallel merge processing is possible, the spatial merging candidate blocks present inside the blocks where parallel merge processing is possible may be unusable blocks and may not be used to derive spatial merging candidates. On the other hand, the spatial merging candidate blocks present outside the blocks where parallel merge processing is possible may be used to derive spatial merging candidates in inter-frame prediction using merging. That is, the spatial merging candidate blocks located inside the blocks where parallel merge processing is possible may be determined as unusable spatial merging candidate blocks and may not be used to derive spatial merging candidates.

[0174] In order to perform this determination, it may be determined whether the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed. If the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed, the corresponding block may be set as unavailable and not used to configure the merging candidate list.

[0175] Temporal merging candidate blocks for blocks that satisfy the above conditions can also be calculated based on blocks on which parallel merging processing can be performed. That is, when a prediction block included in a particular coding block performs merging using a single merging candidate list, the same temporal merging candidate can be shared and used for the prediction block.

[0176] FIG. 15 is a conceptual diagram illustrating a method for generating a single candidate list according to an embodiment of the present invention.

[0177] FIG. 15 illustrates a method in which prediction blocks within the same coding block share spatial and temporal merging candidates in inter prediction using merging when the size of the coding block is equal to or smaller than a specific size, or only when the size is a specific size.

[0178] In order to use a method of sharing a single merging candidate list only among blocks that satisfy a specific condition, various information can be used. For example, information on the size of blocks on which parallel merging processing can be performed and information on the size of a currently encoded block can be derived as to whether the current block uses a single merging candidate list. Based on the derived information, spatial merging candidates and temporal merging candidates for a predicted block can be calculated based on encoded blocks that satisfy a specific condition.

[0179] Referring to FIG. 15, for example, the size of a block on which parallel merge processing can be performed is 8×8 or more, and only when the size of the coding block satisfies the condition of 8×8 can a prediction block split from the coding block share a single merging candidate list.

[0180] It is assumed that the first coding block (CU0) 1500 is a block having a size of 32x32, the second coding block (CU1) 1510 is a block having a size of 16x16, the third coding block (CU2) 1520 is a block having a size of 32x32, the fourth coding block (CU3) 1530 is a block having a size of 16x16, and the fifth coding block (CU4) 1540 is a block having a size of 8x8.

[0181] FIG. 15B is a conceptual diagram showing only spatial merging candidate blocks for some of the coding blocks.

[0182] Referring to FIG. 15B, the second coding block 1510 can be divided into two prediction blocks 1515 and 1518 of nLx2N size, and the fifth coding block 1540 can be divided into two prediction blocks 1545 and 1550 of Nx2N size. FIG. 15B assumes that a single merging candidate list is generated only for the coding block 1540 of 8x8 size.

[0183] The first prediction block 1515 and the second prediction block 1518 of the second encoding block 1510 may individually derive spatial merging candidates for each prediction block to generate a merging candidate list for each prediction block.

[0184] The size of the fifth coding block 1540 is 8×8, and thus the conditions for the size of a block on which parallel merging processing can be performed and the conditions for the size of a currently coded block can be satisfied. In this case, the third prediction block 1545 and the fourth prediction block 1550 included in the fifth coding block 1540 can generate a single merging candidate list based on the spatial merging candidates and the temporal merging candidates calculated based on the position and size of the coding block.

[0185] In other words, it is possible to determine whether the size of the blocks defined to be able to perform the merge process in parallel is equal to or larger than a predetermined specific size, and to determine whether the coding block is of a specific size. If the size of the blocks defined to be able to perform the merge process in parallel is equal to or larger than a predetermined specific size and the coding block is of a specific size, it is possible to determine that the prediction unit performs merging using the single merging candidate list.

[0186] Among the spatial merging candidate blocks derived from the coding blocks inside the block where parallel merge processing is possible, the spatial merging candidate block existing inside the block where parallel merge processing is possible may not be used for inter-picture prediction. On the other hand, the spatial merging candidate block existing outside the block where parallel merge processing is possible can be used in inter-picture prediction using merging. That is, the spatial merging candidate block located inside the block where parallel merge processing is possible may be determined as an unusable spatial merging candidate block and may not be used to derive a spatial merging candidate.

[0187] For example, to perform this determination, it may be determined whether the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed. If the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed, the corresponding spatial merging candidate block may be set as unavailable, and a spatial merging code may not be derived from the spatial merging candidate block.

[0188] As described above, in order to generate a single merging candidate list for a coding block of a particular size, a single merging candidate list flag (singleMCLflag) indicating that the corresponding block generates a single merging candidate list can be derived based on 1) information related to the size of a block for which parallel merge processing can be performed in inter prediction using merge, and 2) size information of a current block. In addition, since it is known which spatial merging candidate block is a block that cannot be used to derive a spatial merging candidate based on 1) information related to the size of a block for which parallel merge processing can be performed in inter prediction using merge, a spatial merging candidate may not be derived from the corresponding block.

[0189] For example, assuming that the block on which the parallel merging process can be performed is an 8×8 block and the size of the current coding block is 8×8, if the coding block and a spatial merging candidate block calculated based on the coding block are located inside a block on which the same parallel merging process can be performed, the spatial merging candidate block can be determined as an unusable spatial merging candidate block. In other words, if the coding block and a spatial merging candidate block calculated based on the coding block are located inside blocks on which different parallel merging processes can be performed, the corresponding spatial merging candidate block can be used to derive a spatial merging candidate.

[0190] The induced single merging candidate list flag (singleMCLflag) can then be used in the steps of deriving spatial merging candidates and temporal merging candidates to generate a single merging candidate list in which prediction blocks divided from a coding block of a particular size share the same merging candidate.

[0191] In the following, in an embodiment of the present invention, information related to blocks on which parallel merge processing can be performed in inter-frame prediction using merge is disclosed using the following <Tables 2> to , and a syntax structure used to encode such information into a bitstream or decode such information from the bitstream. [Table 2] [Table 3] [Table 4] [Table 5]

[0192] The semantics "parallel_merge_enabled_flag" included in the syntax disclosed in Tables 2 to 5 can be used as information indicating whether a single merging candidate list is used based on a coding block. In addition, "parallel_merge_enabled_flag" can also include information on whether parallel merge processing is performed.

[0193] For example, when "parallel_merge_enabled_flag" is '1', it indicates that a method of generating a single merging candidate list based on a coding block is applied, and it may indicate that parallel merge processing is performed. When "parallel_merge_enabled_flag" is '0', it may indicate that a single merging candidate list is not applied, and it may indicate that parallel merge processing is not possible. The opposite is also possible. In addition, "parallel_merge_enabled_flag" may be used as information indicating whether all predictive blocks in a coding block are coded or decoded in parallel, and may be used as information indicating whether merging candidate lists of all predictive blocks in a coding block are constructed in parallel.

[0194] In addition, "parallel_merge_disabled_depth_info" is a semantic that is activated when a method of generating a single merging candidate list based on a coding block is applied (e.g., when "parallel_merge_enabled_flag" has a true value), and indicates whether to apply a single merging candidate list according to the depth of the coding block or the size of the coding block.

[0195] For example, when "parallel_merge_disabled_depth_info" is '0', the method may not be applied if the coding block depth is '0' (the largest coding block, e.g., 64x64 size). Also, when "parallel_merge_disabled_depth_info" is '1', the method may not be applied if the coding block depth is '1' (one size smaller than the largest coding block, e.g., 32x32 size).

[0196] As another example, when "parallel_merge_disabled_depth_info" is '0', the method may not be applied if the coding block depth is '0' or more (the largest size coding block). Also, when "parallel_merge_disabled_depth_info" is '1', the method may not be applied if the coding block depth is '1' or more (the coding block size excluding the largest size coding block, for example, when the largest size coding block is 64x64, this corresponds to coding block sizes of 32x32, 16x16, and 8x8).

[0197] As yet another example, when "parallel_merge_disabled_depth_info" is '1', the corresponding method can be applied when the depth of the coding block is '1' or greater (coding block size excluding the largest size coding block).

[0198] Such "parallel_merge_disabled_depth_info" is an example of information related to a block for which parallel merge processing can be performed in inter-frame prediction using merge, and other syntax elements may also be used to indicate parallel merge processing in inter-frame prediction using merge, and such embodiments are also within the scope of the present invention.

[0199] Also, information on whether parallel merge processing is possible may be expressed using only "parallel_merge_disabled_depth_info" without using information such as "parallel_merge_enabled_flag". For example, when "parallel_merge_disabled_depth_info" corresponds to a specific value, it may be expressed that parallel merge processing is not possible. Such an embodiment is also within the scope of the present invention.

[0200] As yet another example, log2_parallel_merge_level_minus2 can be defined. Log2_parallel_merge_level_minus2 means a level at which parallel merge processing can be performed. For example, if the value of log2_parallel_merge_level_minus2 is '0', it indicates that the size of the block (or coding block) on which parallel merge processing can be performed is 4×4. Assuming that a 4×4 block is the minimum size coding block, ultimately, if the value of log2_parallel_merge_level_minus2 is '0', it indicates that parallel merge processing is not performed. As yet another example, if the value of log2_parallel_merge_level_minus2 is '1', it can indicate that parallel merge processing can be performed for all prediction blocks within a block of 8×8 size. And, if the value of log2_parallel_merge_level_minus2 is '2', it can indicate that parallel merge processing can be performed for all prediction blocks within a block of 16×16 size. If the value of log2_parallel_merge_level_minus2 is '3', parallel merge processing can be performed on all prediction blocks in a block of 32x32 size. If the value of log2_parallel_merge_level_minus2 is '4', parallel merge processing can be performed on all prediction blocks in a block of 64x64 size. That is, the size of a block on which a specific parallel merge processing can be performed can be represented using such a syntax element. As described above, it is possible to determine whether inter prediction using a single merge candidate list is performed on at least one prediction block included in the current block by using information on a block on which parallel merge processing can be performed calculated through log2_parallel_merge_level_minus2 and information on the current block (e.g., size information). In order to calculate spatial merging candidates to be included in the single merge candidate list, the coding block It may be determined whether the spatial merging candidate block calculated based on the block is located inside a block in which the parallel merging process is executable. For example, assuming that the block in which the parallel merging process is executable is a block of 8×8 size and the size of the current coding block is 8×8, if the coding block and the spatial merging candidate block calculated based on the coding block are located inside a block in which the same parallel merging process is executable, the spatial merging candidate block may be determined as an unusable spatial merging candidate. That is, if the coding block and the spatial merging candidate block calculated based on the coding block are located in blocks in which different parallel merging processes are executable, the corresponding spatial merging candidate block may be used to induce a spatial merging candidate.

[0201] Hereinafter, in the embodiment of the present invention, a method for performing parallel encoding or decoding on prediction blocks divided from one coding block using a single candidate list according to another embodiment of the present invention will be described. In this method, a single merging candidate list can be generated by sharing some spatial candidates for multiple prediction blocks in a coding block.

[0202] Even if some spatial candidates are shared, the search positions of spatial merging candidate blocks of all prediction blocks in a coding block are always set to positions outside the coding block, so that inter-picture prediction can be performed in parallel on prediction blocks in the coding block. Alternatively, a merging candidate list can be generated using spatial merging candidate blocks that are located at fixed positions according to the block division form.

[0203] For example, in inter prediction using merging, some spatial merging candidates may be shared by each prediction block, thereby reducing the complexity of the process of calculating merging candidates.

[0204] For example, when the search position of the spatial merging candidate block of the predicted block is selected to be an outer position of the coding block, the spatial merging candidate block at the left position among the outer positions of the coding block may be shared between the predicted blocks divided vertically (e.g., Nx2N type).The spatial merging candidate block at the top position among the outer positions of the coding block may be shared between the predicted blocks divided horizontally (e.g., 2NxN type).That is, the number of times of deriving the spatial merging candidate may be significantly reduced compared to a method in which the merging candidate is not shared.

[0205] Next, an embodiment of such a system will be described in more detail with reference to the drawings.

[0206] In the following embodiment, it is assumed that inter-prediction using merging is used, but the method described below can also be used for inter-prediction using AMVP. The spatial merging candidate block and the temporal merging candidate block used in the following merging method are multiple prediction blocks for forming a motion vector prediction candidate list for a prediction block in AMVP, and can be interpreted as a spatial candidate prediction block and a temporal candidate prediction block.

[0207] Hereinafter, in an embodiment of the present invention, the partitioned blocks may be classified using partition indexes, where a partition index of 0 may be a first predicted block, and a partition index of 1 may be a second predicted block.

[0208] FIG. 16 is a conceptual diagram illustrating a method for generating a merging candidate list according to an embodiment of the present invention.

[0209] (A) of Figure 16 shows the case where a coding block is divided into prediction blocks of Nx2N type, and in the case of a first prediction block 1600, a merging candidate list can be generated using A0 block 1605, A1 block 1610, B0 block 1615, B1 block 1620, and B2 block 1625 as spatial merging candidate blocks based on the position of the first prediction block 1600.

[0210] However, in the case of the second predicted block 1650, when the spatial merging candidate block is derived based on the position of the second predicted block, the A0 block 1630 and the A1 block 1635, which are some blocks of the spatial merging candidate block, may be included in the position included in the first predicted block or may be included in the position of a coding block that has not yet been coded. If the spatial merging candidate block is in such a position, the inter prediction using merging for the first predicted block 1600 and the second predicted block 1650 cannot be performed in parallel. Therefore, the positions of the A0 block 1630 and the A1 block 1635 used as the spatial merging candidate block are changed to the A0' block 1605 and the A1' block 1610, which are block positions located outside the coding block, and a merging candidate list for the second predicted block 1650 is calculated to perform the inter prediction using merging. The A0' block 1605 and the A1' block 1610 may be in the same position as the spatial merging candidate block position of the first predicted block 1600.

[0211] Figure 16 (B) shows a case where a coding block is divided into prediction blocks of 2NxN type, in the case of the first prediction block 1660, a merging candidate list can be generated using A0 block 1665, A1 block 1667, B0 block 1673, B1 block 1675, and B2 block 1679 as spatial merging candidate blocks based on the position of the first prediction block 1660.

[0212] However, in the case of the second prediction block 1690, when the spatial merging candidate block is calculated based on the position of the second prediction block 1690, the B0 block 1685 and the B1 block 1687, which are some blocks of the spatial merging candidate block, may be located in a position included in the first prediction block 1660 or may be included in a position of a coding block that has not yet been coded. If the blocks are located in such positions, the inter prediction using merging for the first prediction block 1660 and the second prediction block 1690 cannot be performed in parallel. Therefore, the positions of the B0 block 1685 and the B1 block 1687 may be changed to the B0′ block 1673 and the B1′ block 1675, which are block positions located outside the coding block, to calculate the merging candidate list for the second prediction block 1690, and perform the inter prediction using merging. The B0′ block 1673 and the B1′ block 1675 may be positions of the spatial merging candidate block used by the first prediction block 1660.

[0213] In order to change the position of the spatial merging candidate block, it may be determined whether the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed. If the current block (block to be predicted) and the spatial merging candidate block of the current block are included in blocks for which the same parallel merge processing can be performed, the corresponding block may be set as unusable and may not be used to construct the merging candidate list. The unusable block may be replaced with another block to calculate the spatial merging candidate.

[0214] FIG. 17 is a conceptual diagram showing the locations of spatial merging candidates according to the division form of a coding block according to an embodiment of the present invention.

[0215] Referring to Fig. 17, spatial merging candidates can be calculated by inducing spatial merging candidate blocks at different positions according to the block division form. That is, the spatial merging candidate blocks of all prediction blocks are positioned outside the coding block that has already been coded, so that inter-frame prediction using merging can be performed in parallel on a plurality of prediction blocks divided from one coding block. In addition, the complexity of the process of inducing a merging candidate list can be reduced by sharing some spatial merging candidate blocks for inducing spatial merging candidates.

[0216] FIG. 18 is a conceptual diagram illustrating a method for generating a merging candidate list according to an embodiment of the present invention.

[0217] (A) of Figure 18 shows a case where a coding block is divided into prediction blocks of Nx2N type. In the case of a first prediction block 1800, a merging candidate list can be generated using A0 block 1805, A1 block 1810, B0 block 1815, B1 block 1820, and B2 block 1825 as spatial merging candidate blocks based on the position of the first prediction block 1800.

[0218] However, in the case of the second predicted block 1850, the spatial merging candidate block may be calculated based on the position of the coding block including the second predicted block 1850. When the spatial merging candidate block is calculated based on the second predicted block 1850, inter-frame prediction using merging for the first predicted block 1800 and the second predicted block 1850 cannot be performed in parallel. Therefore, the merging candidate list may be calculated using blocks 1805, 1810, 1830, 1835, and 1825 that are located outside the coding block including the second predicted block 1850 and that are already encoded or decoded as spatial merging candidate blocks.

[0219] (B) of Figure 18 shows the case where a coding block is divided into prediction blocks of 2NxN type. In the case of the first prediction block 1860, a merging candidate list can be generated using A0 block 1865, A1 block 1870, B0 block 1875, B1 block 1880, and B2 block 1885 as spatial merging candidate blocks based on the position of the first prediction block 1860.

[0220] However, in the case of the second prediction block 1895, blocks located outside the coding block and existing at block positions where coding or decoding has already been performed can be changed to spatial merging candidate blocks 1887, 1889, 1875, 1880, 1885 to calculate a merging candidate list for the second prediction block, and inter-frame prediction using merging can be performed.

[0221] FIG. 19 is a conceptual diagram showing the positions of spatial merging candidate blocks according to the division form of a coding block according to an embodiment of the present invention.

[0222] 19, spatial merging candidate blocks at different positions can be calculated and used according to the block division form. That is, by positioning the spatial merging candidate blocks of all prediction blocks outside the coding block that has already been coded, inter prediction using merging can be performed in parallel on multiple prediction blocks divided from one coding block.

[0223] FIG. 20 is a conceptual diagram showing the positions of spatial merging candidate blocks according to the division form of a coding block according to an embodiment of the present invention.

[0224] Referring to (A) of Figure 20, for horizontal division types (2NxnU, 2NxnD, 2NxN), by using spatial merging candidate blocks A0 block, A1 block, B0 block, B1 block, and B2 block at the same position as the second prediction block, it is possible to use spatial merging candidate blocks at the same position regardless of the division type.

[0225] Referring to (B) of Figure 20, in the case of a vertical division type (nLx2N, nRx2N, Nx2N), by using spatial merging candidate blocks A0 block, A1 block, B0 block, B1 block, and B2 block at the same position as the second prediction block, it is possible to use spatial merging candidate blocks at the same position regardless of the division type.

[0226] The fixed position in Figure 20 is just an example showing the use of a spatial merging candidate block at a fixed position in one coding block, that is, the position of the fixed spatial merging candidate block may change, and such an embodiment is also within the scope of the present invention.

[0227] FIG. 21 is a conceptual diagram showing the positions of spatial merging candidate blocks according to the division form of a coding block according to an embodiment of the present invention.

[0228] 21 is a conceptual diagram showing a case where a coding block of a specific size is divided into a plurality of coding blocks. When sharing the same merging candidate list based on a block of a specific size, the spatial merging candidate block may be derived based on the position of the block of the specific size, and a single merging candidate list may be formed using the spatial merging candidates calculated from the calculated spatial merging candidates. In the case of a coding block located at the upper left corner among the coding blocks included in the block of a specific size, even if a spatial merging candidate block is calculated based on the corresponding coding block, all of them are located at positions where coding has already been performed, so only the coding block located at the upper left corner can generate and use a different merging candidate list.

[0229] Referring to FIG. 21, among the prediction blocks included in a block of a particular size, the remaining prediction blocks excluding the prediction block included in the coding block 2100 located at the upper left corner may share the same spatial merging candidate block (A0, A1, B0, B1, B2) calculated based on the position of the block of a particular size.

[0230] However, in the case of the coding block 2100 located at the upper left corner of a block of a particular size, inter prediction using merging can be performed using spatial merging candidate blocks calculated based on the corresponding coding block. Because, in the case of the coding block 2100 located at the upper left corner, all spatial merging candidate blocks calculated based on the corresponding block are present at available positions, the coding block located at the upper left corner can perform inter prediction using spatial merging candidates calculated from spatial merging candidate blocks induced based on its own position.

[0231] Like spatial merging candidates, temporal merging candidates can be calculated based on the position of a block of a particular size. Temporal merging candidates can determine available blocks in the order of H0 block, H1 block, H2 block, H3 block, and H4 block, and include the available blocks in a merging candidate list for use. Temporal merging candidates can be scaled according to the picture number of the reference picture for use. Temporal merging candidates can use not only blocks located on the boundary of the block (X') corresponding to Figure 21, but also blocks located inside (M, N, O, P, Q).

[0232] FIG. 22 is a conceptual diagram showing the positions of spatial merging candidate blocks according to the division form of a coding block according to an embodiment of the present invention.

[0233] Figure 22 is a conceptual diagram showing a method for generating a merging candidate list using only temporal merging candidates, without using spatial merging candidates calculated from the spatial merging candidate block induced based on the size of a specific block, in the case of a coding block that is far away from the spatial merging candidate block when calculating spatial merging candidates based on the size of a specific block.

[0234] 22, for example, a merging candidate list can be generated using only temporal merging candidates for blocks included in a size designated as 1 (2200). That is, a block unit for which a merging candidate list is generated using only temporal candidates can be designated by a specific indicator.

[0235] The temporal merging candidates can be used by determining available blocks in the order of H0 block, H1 block, H2 block, H3 block, and H4 block, and including the temporal merging candidates calculated from the available blocks in a merging candidate list. The motion vectors calculated by the temporal merging candidates can be scaled according to the picture number of the reference picture and used. The temporal merging candidates can be used not only for blocks located on the boundary of the block (X') corresponding to FIG. 22, but also for blocks (M, N, O, P, Q) located inside the block.

[0236] All of the above methods can vary the scope of application depending on the coding block size or the coding block depth, etc. The variables (i.e., block size or block depth information) that determine the scope of application can be set so that the encoder and decoder use predetermined values, or can use values ​​determined according to the profile or level of the video coding method. Also, if the encoder writes the variable value in the bitstream, the decoder can obtain and use this value from the bitstream.

[0237] When the scope of application varies depending on the depth of the coding block, there may be method A) that applies only to depths equal to or greater than a given depth, method B) that applies only to depths equal to or less than a given depth, or method C) that applies only to a given depth, as shown in Table 6 below.

[0238] shows an example of a method for determining the range to apply method A), method B), or method C) of the present invention when the depth of a given coding block is 2. (O: Applies to the corresponding depth, X: Does not apply to the corresponding depth) [Table 6]

[0239] When the method of the present invention is not applied to all depths, it can be expressed by using an indicator such as parallel_merge_enabled_flag as shown in Tables 2 to 5, or the corresponding information can be included in a syntax element indicating the depth information to be applied and transmitted. It can also be expressed by signaling a value one greater than the maximum value of the coding block depth to the coding block depth value indicating the application range.

[0240] FIG. 23 is a conceptual diagram illustrating a process in which a plurality of prediction blocks are encoded and decoded in parallel when a single candidate list generation method according to an embodiment of the present invention is used.

[0241] In (A) of FIG. 23, it is assumed that one coding block is divided into two prediction blocks. For example, if the coding block satisfies a certain condition, two prediction blocks included in the coding block can be merged in parallel using a single merge candidate list. For example, if the size of the coding block is a certain value and is included in the block size that allows parallel merge processing, spatial merging candidates and temporal merging candidates can be calculated based on the coding block to perform inter-picture prediction using merging. This method can be applied to blocks of various types.

[0242] FIG. 23B shows performing coding using a single merge candidate list for coding blocks divided into various types. One coding block can be divided into blocks of various types as shown in the figure. The divided prediction blocks can share a merge candidate list, and inter prediction using merge can be performed in parallel using the shared merge candidate list. That is, parallel coding is possible for multiple prediction blocks included in one coding block. This method can also be applied to the decoding step.

[0243] By using this method, it is possible to reduce the complexity caused by generating a merge candidate list for each prediction block, and to increase the image processing speed. In the future, parallel processing will be important in performing image processing for high resolution images such as UHDTV, and parallel image processing is possible by using the method disclosed in the present invention.

[0244] The above-described video encoding and decoding methods can be implemented by the components of the video encoder and video decoder devices described above with reference to FIGS.

[0245] Although the above description has been given with reference to the embodiments, it will be understood that those skilled in the art can make various modifications and variations of the present invention without departing from the spirit and scope of the present invention as set forth in the claims.

Claims

1. 1. A method for decoding a video signal, comprising: determining whether a first sub-block of the block and a second sub-block of the block share a single merging candidate list based on a size of the block, the block comprising the first sub-block of the block and the second sub-block of the block; deriving at least one merging candidate associated with the first sub-block of the block based on pixel positions and the size of the block when the first sub-block of the block and the second sub-block of the block share the single merging candidate list; generating a first merging candidate list for the first sub-block of the block based on the availability of the merging candidates; determining motion information of the first sub-block based on the first merging candidate list; using the motion information to obtain a prediction sample for the block; using the predicted samples of the block to obtain reconstructed samples of the block; Equipped with determining whether the first sub-block of the block and the second sub-block of the block share the single merging candidate list based on a comparison of the size of the block to a predetermined size; the predetermined size is 8×8, 13. A method for decoding a video signal, comprising: deriving the usability of the merging candidate based on a pixel location of the merging candidate.

2. 1. A method for encoding a video signal, comprising the steps of: determining whether a first sub-block of the block and a second sub-block of the block share a single merging candidate list based on a size of the block, the block comprising the first sub-block of the block and the second sub-block of the block; deriving at least one merging candidate associated with the first sub-block of the block based on pixel positions and the size of the block when the first sub-block of the block and the second sub-block of the block share the single merging candidate list; generating a first merging candidate list for the first sub-block of the block based on availability of the merging candidates; determining motion information of the first sub-block based on the first merging candidate list; using the motion information to obtain a prediction sample for the block; using the predicted samples of the block to obtain reconstructed samples of the block; Equipped with determining whether the first sub-block of the block and the second sub-block of the block share the single merging candidate list based on a comparison of the size of the block to a predetermined size; the predetermined size is 8×8, 13. A method for encoding a video signal, comprising: deriving the usability of the merging candidate based on a pixel location of the merging candidate.

3. 1. A method for decoding a video signal, comprising: determining a spatial candidate block for a first prediction block based on a position and a size of a coding block, the coding block comprising a plurality of prediction blocks, the first prediction block being one of the plurality of prediction blocks; determining a usability of the spatial candidate block based on a position of the spatial candidate block; deriving at least one motion information candidate from the spatial candidate block based on the availability of the spatial candidate block; generating a motion information candidate list for the first prediction block based on the motion information candidates; generating a prediction block on the coding block based on the motion information candidate; generating a residual block on the coding block; generating a reconstructed block on the coding block based on the prediction block and the residual block; Equipped with the motion information candidate list for the first prediction block is equal to a motion information candidate list for a prediction block other than the first prediction block among the plurality of prediction blocks; 20. A method for decoding a video signal, wherein said size of said coding block is 8x8.

4. 1. A method for encoding a video signal, comprising the steps of: determining a spatial candidate block for a first prediction block based on a position and a size of a coding block, the coding block comprising a plurality of prediction blocks, the first prediction block being one of the plurality of prediction blocks; determining a usability of the spatial candidate block based on a position of the spatial candidate block; deriving at least one motion information candidate from the spatial candidate block based on the availability of the spatial candidate block; generating a motion information candidate list for the first prediction block based on the motion information candidates; generating a prediction block on the coding block based on the motion information candidate; generating a residual block on the coding block; generating a reconstructed block on the coding block based on the prediction block and the residual block; Equipped with the motion information candidate list for the first prediction block is equal to a motion information candidate list for a prediction block other than the first prediction block among the plurality of prediction blocks; 11. A method for encoding a video signal, wherein said size of said coding block is 8x8.

Citation Information

Patent Citations

  • Parallelization friendly merge candidates for video coding

    WO2012177644A1

  • Inter prediction method and apparatus therefor

    WO2013036071A2

  • Motion vector determination for video coding

    WO2013039639A1

  • Method for inducing a merge candidate block and device using same

    WO2013042888A2

  • Method of constructing merge list

    WO2013067938A1