Method and apparatus for video encoding / decoding for triangle prediction

The introduction of a triangle prediction unit in video encoding and decoding addresses the challenge of efficiently compressing high-definition and ultra-high-definition video data by optimizing motion vector prediction, thereby enhancing encoding and decoding efficiency.

JP7717201B2Active Publication Date: 2025-08-01BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024006451
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-03-13
Filing Date
2024-01-19
Publication Date
2025-08-01
Estimated Expiration
2040-03-12

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in efficiently compressing high-definition and ultra-high-definition video data while maintaining image quality, particularly in handling geometric partitions and motion compensation prediction.

Method used

The implementation of a triangle prediction unit (TPU) in video encoding and decoding, which partitions video images into geometric shapes and utilizes a single prediction merge list for motion vectors, enhancing the efficiency of motion compensation prediction.

Benefits of technology

This approach improves the encoding and decoding efficiency by optimizing motion vector prediction, particularly in high-definition and ultra-high-definition video formats, reducing computational complexity and maintaining video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007717201000001
    Figure 0007717201000001
  • Figure 0007717201000002
    Figure 0007717201000002
  • Figure 0007717201000003
    Figure 0007717201000003
Patent Text Reader

Abstract

To provide a method and a device for video encoding and decoding.SOLUTION: The method includes partitioning a video image into a plurality of coding units (CUs), at least one of which is further partitioned into two PUs including at least one geometric shape prediction unit (PU), configuring a first merge list including a plurality of candidates each containing one or more motion vectors, and obtaining a single predictive merge list for the PUs of the geometric shape, including a plurality of single predictive merge candidates, each including a motion vector of one of the corresponding candidates in the first merge list.SELECTED DRAWING: Figure 14
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application was filed on March 12, 2019, and is entitled "Video with Triangle Prediction." U.S. Provisional Application No. 62 / 817,537, filed on March 13, 2019, entitled "Encoding and Decoding Methods for a Digital Signal Processor," and No. 62,492,492, entitled "Video Encoding and Decoding with Triangular Prediction," filed on Dec. 1, 2002. / 817852, the entire specifications of which are hereby incorporated by reference. is incorporated herein by reference. [Technical Field]

[0002] This application relates generally to video encoding, decoding and compression, and in particular, but not exclusively, to video A special case of a triangle prediction unit (i.e., a geometric partition prediction unit) in encoding / decoding The present invention relates to a method and apparatus for motion compensated prediction using a combination of a plurality of image sequences. [Background technology]

[0003] Digital television, laptop or desktop computer, tablet computer Computers, digital cameras, digital recording devices, digital media players, Video game consoles, smartphones, video conferencing equipment, video streaming equipment, etc. Various electronic devices support digital video. These electronic devices are used for video compression / expansion. It performs the development of a computer that receives, transmits, encodes, decodes, and stores digital video data. Digital video equipment uses Versatile Video Coding (VVC), Joint Exploration Test Model (JEM), MPEG-2, MPE G-4, ITU-T H.263, ITU-T H.264 / MPEG-4, Part 10, High - level video coding (AVC: Advanced Video Coding), ITU - T H.265 / High Efficiency Video Coding (HEVC: High Efficiency Video Coding) defined standards and extensions of such standards, and perform video encoding / decoding

[0004] techniques. Video encoding / decoding generally utilizes prediction methods (e.g., inter - prediction, intra - prediction) due to redundancy present in video images or sequences. One of the important goals of video encoding / decoding techniques is to compress video data into a lower - bit - rate form while avoiding or minimizing the degradation of video quality. As evolving video services become available, encoding / decoding techniques with better

[0005] encoding / decoding efficiency are essential. Video compression usually performs spatial (intra - frame) prediction and / or temporal (inter - frame) prediction to reduce or eliminate redundancy inherent in video data. In block - based video coding, a video frame is partitioned into one or more slices containing multiple video blocks called coding tree units (CTUs). Each CTU contains one coding unit (CU) or may be recursively divided into smaller CUs until reaching a predefined minimum CU size. Each CU (also called a leaf CU) contains one or more transform units (TUs) and one or CU can be encoded in Intra, Inter, or IBC mode. Video blocks within an Intra-coded (I) slice in a video frame are encoded by spatial prediction with respect to reference samples in adjacent blocks in the same video frame. Video blocks within an Inter-coded (P or B) slice in a video frame are encoded by spatial prediction with respect to reference samples in adjacent blocks in the same video frame, or by temporal prediction with respect to reference samples in other previous and / or future reference video frames. For spatial or temporal prediction by a previously encoded reference block, e.g., an adjacent block, a prediction block for the current video block to be encoded is obtained. The process of finding the reference block can be realized by a block matching algorithm.

[0006] The residual data indicating the pixel difference between the current block to be encoded and the prediction block is called the residual block or prediction error. An Inter-coded block is encoded according to a motion vector indicating a reference block in the reference frame forming the prediction block and the residual block. The process of determining the motion vector is usually called motion estimation. An Intra-coded block is encoded by an Intra prediction mode and a residual block. For further compression, the residual block is transformed from the pixel domain to a transform domain, e.g., a frequency domain, resulting in residual transform coefficients that are then quantized. And the transform coefficients first arranged and quantized in a two-dimensional matrix are scanned to generate a one-dimensional transform coefficient vector, which is then entropy-coded into the video bitstream to achieve further compression. ​​​​​​​​​​​​​ It is coded.

[0007] And the encoded video bitstream is stored in a computer-readable storage medium (e.g., flash memory) and accessed by another electronic device with digital video capabilities or transmitted directly to this electronic device via wire or wirelessly. And this electronic device, for example, analyzes this encoded video bitstream to obtain syntax elements from this bitstream, and based on at least a part of the syntax elements obtained from this bitstream, reconstructs digital video data from this encoded video stream into the original format, performs video decompression (a process opposite to the above-mentioned video compression), and reproduces this reconstructed digital video data on the display of the electronic device.

[0008] As the quality of digital video advances from high definition to 4K×2K or / and 8K×4K, the amount of video data to be encoded / decoded increases exponentially. Encoding / decoding video data efficiently while maintaining the image quality of the decoded video data has always been a challenge.

[0009] At the Joint Video Experts Team (JVET) meeting, the first draft of Versatile Video Coding (VVC) and the coding method of VVC Test Model 1 (VTM1) were defined. The quadtree with a nested multi-type tree with binary and ternary split coding block structures is included as the first new coding feature of VVC. has been determined. Since then, the reference software VT for executing the encoding / decoding method The M and draft VVC decoding processes were developed during the JVET meetings.

SUMMARY OF THE INVENTION

[0010] The present disclosure generally relates to a special case of geometric partition prediction in video encoding / decoding and describes an example of a technique related to motion compensation prediction by a triangle prediction unit.

[0011] According to a first aspect of the present disclosure, a video image is partitioned into a plurality of coding units (CUs) partitioned into two PUs, at least one of which further includes at least one prediction unit (PU) of a geometric shape, and a first merge list including a plurality of candidates each including one or more motion vectors is configured, and a single prediction merge list for the PU is obtained in a triangle prediction mode, the single prediction merge list including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list. A method for video encoding / decoding is provided. including a plurality of candidates each including one or more motion vectors, and for each of the PUs, a single prediction merge list including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list is obtained in a triangle prediction mode. including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list, and for the PU, a single prediction merge list including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list is obtained in a triangle prediction mode. A method for video encoding / decoding is provided.

[0012] According to a second aspect of the present disclosure, a processor and a memory configured to store instructions executable by the processor are included, and when the processor executes the instructions, the video image is partitioned into a plurality of coding units (CUs) partitioned into two PUs, at least one of which further includes at least one prediction unit (PU) of a geometric shape, and a first merge list including a plurality of candidates each including one or more motion vectors is configured, and for each of the PUs, a single prediction merge list including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list is obtained in a triangle prediction mode. (PU), and a first merge list including a plurality of candidates each including one or more motion vectors is configured, and for each of the PUs, a single prediction merge list including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list is obtained in a triangle prediction mode. each including one motion vector of a corresponding candidate in the first merge list, and Provide a computing device configured to derive a single prediction merge list for the PU, including a single prediction merge candidate, in triangular partitioning mode.

[0013] According to a third aspect of the present disclosure, a non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to partition a video image into a plurality of coding units (CUs) partitioned into two PUs, at least one of which further includes at least one geometric shape prediction unit (PU), and construct a first merge list including a plurality of candidates each including one or more motion vectors, and derive a single prediction merge list for the PU, including a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list, in triangular partitioning mode.

Brief Description of the Drawings

[0014] A more specific description of examples of the present disclosure is given by reference to specific examples shown in the accompanying drawings. These drawings merely illustrate several examples and are therefore considered to be non-limiting in scope, and these examples will be described with additional particularity and detail by using the accompanying drawings.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

[0015] Reference will now be made in detail to the specific embodiments illustrated in the accompanying drawings. In the following detailed description, in order to facilitate understanding of the gist described herein, a plurality of non-limiting specific details will be described. However, it will be apparent to those skilled in the art that various modifications can be implemented. For example, it will be apparent to those skilled in the art that the gist described herein can be implemented in many types of electronic devices having digital video functionality.

[0016] References to "one embodiment", "an embodiment", "an example", "a certain embodiment", " a certain example" or similar expressions in this specification mean that the particular feature, structure or characteristic being described is included in at least one embodiment or example. Features, structures, elements or characteristics described in connection with one or some embodiments are applicable to other embodiments as well, unless expressly stated otherwise.

[0017] Throughout this disclosure, the terms "first", "second", "third", etc. are all used only for the purpose of referring to related elements, for example, devices, components, configurations, steps, etc., and do not mean any spatial or chronological order unless the context clearly indicates otherwise. For example, "a first device" and "a second device" refer to two separately formed devices, or two parts, components, or operating states of the same device, and can be arbitrarily named.

[0018] As used herein, the terms "(if)... then" or "(if)... then", "(if)... and" can be understood to mean "when..." or "in response to...", depending on the context. These terms, when they appear in the claims, mean that the relevant limitation or feature is conditional​ It may not mean being attached or selective.

[0019] The terms "module", "sub-module", "circuit", "sub-circuit", "circuit system", "sub-circuit system", "unit" or "sub-unit" refer to a memory (shared, dedicated, or grouped) that stores code or instructions executable by one or more processors. A module may include one or more circuits that store or do not store code or instructions. A module or circuit may include one or more components that are directly or indirectly connected. These components can be physically connected to each other, adjacent to each other, or not.

[0020] A unit or module may be implemented entirely by software, entirely by hardware, or by a combination of hardware and software. In a complete software implementation, for example, a unit or module may include functionally related code blocks or software components that are directly or indirectly linked to each other to perform a specific function.

[0021] FIG. 1 shows a block diagram of an exemplary block-based hybrid video encoder 100 that can be used in combination with many video encoding / decoding standards based on block-based processing. In encoder 100, a video frame is partitioned into a plurality of video blocks for processing. For each specific video block, prediction is performed using an inter-prediction approach. ​It is formed based on the inter or intra prediction approach. In inter prediction, one or more predictors are formed by motion estimation and compensation based on pixels from previously reconstructed frames. In intra prediction, predictors are formed based on the reconstructed pixels in the current frame. Through mode decision, the optimal predictor for predicting the current block can be selected. The prediction residual representing the difference between the current video block and its predictor is sent to the conversion circuit 102. Then, for entropy reduction, the conversion coefficients are sent from the conversion circuit 102 to the quantization circuit 104. Next, the quantized coefficients are supplied to the entropy encoding circuit 106 to generate a compressed video bitstream. As shown in FIG. 1, prediction-related information 110 such as video block partition information, motion vectors, reference image indexes, and intra prediction modes from the inter prediction circuit and / or the intra prediction circuit 112 is also supplied via the entropy encoding circuit 106 and stored in the compressed video bitstream 114.

[0022]

[0023] In this encoder 100, decoder-related circuits are also required to reconstruct pixels for prediction purposes. First, the prediction residual is reconstructed through inverse quantization 116 and the inverse conversion circuit 118. This reconstructed prediction residual is combined with the block predictor 120 to generate the unfiltered reconstructed pixels of the current video block.

[0024] Spatial prediction (also called "intra prediction") is the same video ​​​​​​​​​​​​​​Samples of already encoded adjacent blocks within a frame (also referred to as reference samples) are used to predict the current video block from the pixels therefrom.

[0025] Temporal prediction (also referred to as "inter prediction") predicts the current block from the reconstructed pixels of already encoded video pictures. Temporal prediction reduces the temporal redundancy inherent in the video signal. The temporal prediction signal for a particular CU is usually signaled by one or more motion vectors (MV: motion vector) indicating the amount and direction of motion between the current CU and its temporal reference. Also, if multiple reference pictures are supported, one reference picture index identifying from which reference picture in the reference picture memory the temporal prediction signal is is additionally transmitted.

[0026] After spatial and / or temporal prediction, the intra / inter mode decision circuit 121 in the encoder 100 selects the optimal prediction mode, for example, based on a rate-distortion optimization method. Next, the block predictor 120 is subtracted from the current video block; the resulting prediction residual is decorrelated by the transform circuit 102 and the quantization circuit 104. The resulting quantized residual coefficients are inverse quantized by the inverse quantization circuit 116 and inverse transformed by the inverse transform circuit 118 to form a reconstruction residual, which is then also added to the prediction block to form the reconstructed signal of this CU. Further, this reconstructed CU is placed in the reference picture memory of the picture buffer 117 and, before being used for encoding / decoding of future video sample adaptive offset), and / or an in-loop filter such as an adaptive in-loop filter (ALF) can be used for this reconfigured CU. To form the output video bitstream 114, the coding mode (inter or intra), prediction mode information, motion information, and the quantized residual coefficients are all sent to the entropy coding unit 106, further compressed and packed to form the bitstream. For example, current versions of AVC, HEVC, and VVC provide a deblocking filter. In HEVC, an additional in-loop filter called SAO (sample adaptive offset) is defined to further improve the coding efficiency. In the current version of the VVC standard, a further different in-loop filter called ALF (adaptive loop filter) is being actively studied and is highly likely to be included in the final standard. These in-loop filter operations are selectable. Performing these operations improves the coding efficiency and visual quality. They can be turned off according to the decision of the encoder 100 to save computational complexity. When these filter options are turned on by the encoder 100, intra prediction is usually based on the non-filtered reconstructed pixels, while inter prediction is based on the filtered reconstructed pixels.

[0027]

[0028]

[0029]

[0030] ​​​​​​​​​​​​​​FIG. 2 is an example that can be used in combination with many video encoding / decoding standards FIG. is a block diagram showing a video decoder 200 based on an exemplary block. This decoder 2 00 is similar to the reconstruction-related part present in the encoder 100 of FIG. 1. In decoder 2 00, the input video bitstream 201 is first decoded through entropy decoding 202 to derive quantized coefficient levels and prediction-related information. Next, the quantized coefficient levels are processed through inverse quantization 204 and inverse transform 206 to obtain a reconstructed prediction residual. The block predictor mechanism implemented in the intra / inter mode selection unit 212 is configured to perform intra prediction 208 or motion compensation 210 based on the decoded prediction information. The reconstructed prediction residual from the inverse transform 206 and the prediction output generated by the block predictor mechanism are added by the adder 214 to obtain a set of unfiltered reconstructed pixels. The reconstructed block can further pass through the in-loop filter 209 before being stored in the image buffer 213 that functions as a reference image memory unit. The reconstructed video in the image buffer 213 can be sent to drive a display device or used to predict future video blocks. When the in-loop filter 2 09 is turned on, a filtering operation is performed on these reconstructed pixels to derive the final reconstructed video output 222. The above-mentioned video codes such as VVC, JEM, HEVC, MPEG-4, Part10 and the prediction output generated by the block predictor mechanism are added by the adder 214 to obtain a set of unfiltered reconstructed pixels. By adding them, a set of unfiltered reconstructed pixels is obtained.

[0031] Before being stored in the image buffer 213 that functions as a reference image memory unit, the reconstructed block can further pass through the in-loop filter 209. The reconstructed video in the image buffer 213 can be sent to drive a display device or used to predict future video blocks. When the in-loop filter 2 09 is turned on, a filtering operation is performed on these reconstructed pixels to derive the final reconstructed video output 222. 09 is turned on, a filtering operation is performed on these reconstructed pixels to derive the final reconstructed video output 222. When the in-loop filter 209 is turned on, a filtering operation is performed on these reconstructed pixels to derive the final reconstructed video output 222. to derive the final reconstructed video output 222.

[0032] Video codes such as VVC, JEM, HEVC, MPEG-4, Part10 The encryption / decryption standards are conceptually similar. For example, all use block-based processing. The block partitioning schemes in some standards will be described in detail below.

[0033] HEVC is based on a motion compensation transform coding method using hybrid blocks. The basic unit for compression is called a coding tree unit (CTU). For the 4:2:0 chroma format, the maximum CTU size is defined as 64×64 luma pixels and two 32×32 chroma pixel blocks. Each CTU contains one coding unit (CU), and is recursively divided into four smaller CUs until reaching a predetermined minimum CU size. Each CU (also called a leaf CU) contains one or more prediction units (PUs) and a tree of one or more transform units (TUs).

[0034] Generally, except for monochromatic content, a CTU contains one luma coding tree block (CTB) and two corresponding chroma CTBs, a CU contains one luma coding block (CB) and two corresponding chroma CBs, a PU contains one luma prediction block (PB) and two corresponding chroma PBs, and a TU may contain one luma transform block (TB) and two corresponding chroma TBs. However, the minimum TB size is 4×4 for both luma and chroma (i.e., 2×2 chroma TBs are not supported in the 4:2:0 color format), and each intra chroma CB always has only one intra chroma PB regardless of the number of intra luma PBs in the corresponding intra luma CB.

[0035] ​​​​​​​​​​​​​​In an intra CU, the luma CB can be predicted by one or four luma PBs, and two chroma CBs are usually predicted by one chroma PB each, where each luma PB has one intra luma prediction mode, and the two chroma PBs share one intra chroma prediction mode. Furthermore, in an intra CU, the TB size cannot be larger than the PB size. For each PB, intra prediction is applied to predict the samples of the TB from the samples of the adjacent reconstructed samples of the TB for each TB within the PB. For each PB, in addition to the 33 directional intra prediction modes, the DC mode and the planar mode are also supported to predict flat regions and gradually changing regions respectively.

[0036] For each inter PU, it is possible to select one of three prediction modes including inter, skip, and merge. Generally speaking, the motion vector competition (MVC) method is introduced to select motion candidates from a certain candidate set including spatial and temporal motion candidates. By multiple references for motion estimation, the optimal reference in two possible reconstructed reference image lists (i.e., List0 and List1) can be found. In the inter mode (referred to as the AMVP mode representing advanced motion vector prediction), the inter prediction indicator (List0, List1, or bi - directional prediction), reference index, motion candidate index, motion vector difference (MVD), and prediction residual are transmitted. For the skip mode and the merge mode, only the merge index is transmitted, and the current PU is the coded merge index. The inter-prediction indicator, reference index, and motion vector from the adjacent PU pointed by the di-index are inherited. For a skipped-coded CU, the residual signal is also omitted. For a skipped-coded CU, the residual signal is also omitted.

[0037] The Joint Exploration Model (JEM) is built on top of the HEVC Test Model. The basic encoding and decoding flow of HEVC has not been changed in JEM. However, the design elements of the most important modules, including the block structure, intra and inter prediction, residue transform, loop filter, and entropy encoding / decoding modules, have been somewhat changed, and additional encoding tools have been added. JEM includes the following new encoding features. The basic encoding and decoding flow of HEVC has not been changed in JEM. However, the design elements of the most important modules, including the block structure, intra and inter prediction, residue transform, loop filter, and entropy encoding / decoding modules, have been somewhat changed, and additional encoding tools have been added. JEM includes the following new encoding features. The basic encoding and decoding flow of HEVC has not been changed in JEM. However, the design elements of the most important modules, including the block structure, intra and inter prediction, residue transform, loop filter, and entropy encoding / decoding modules, have been somewhat changed, and additional encoding tools have been added. JEM includes the following new encoding features. The basic encoding and decoding flow of HEVC has not been changed in JEM. However, the design elements of the most important modules, including the block structure, intra and inter prediction, residue transform, loop filter, and entropy encoding / decoding modules, have been somewhat changed, and additional encoding tools have been added. JEM includes the following new encoding features. The basic encoding and decoding flow of HEVC has not been changed in JEM. However, the design elements of the most important modules, including the block structure, intra and inter prediction, residue transform, loop filter, and entropy encoding / decoding modules, have been somewhat changed, and additional encoding tools have been added. JEM includes the following new encoding features.

[0038] In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs. In HEVC, a CTU is divided into CUs by a quadtree structure shown as an encoding tree to adapt to various local characteristics. The decision of whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode an image region is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU split type. In one PU, the same prediction process is applied, and related information is sent to the decoder based on the PU. After obtaining the residual block by applying the prediction process based on the PU split type, the CU can be partitioned into transform units (TUs) according to another quadtree structure similar to the encoding tree of the CU. One of the main features of the HEVC structure is the existence of multiple partitioning concepts including CUs, PUs, and TUs.

[0039] Figure 3 is a schematic diagram showing a quadtree plus binary tree (QTBT) structure according to an embodiment of the present disclosure.

[0040] ​​ The QTBT structure removes the concept of multiple partition types, that is, the separation of the concepts of CU, PU, and TU, and supports more flexibility in the CU partition shape. In the QTBT block structure, the CU can take a square or rectangular shape. As shown in Figure 3, the Coding Tree Unit (CTU) is first partitioned by a quadtree structure. The quadtree leaf node can be further partitioned by a binary tree structure. There are two types of binary tree partitions: symmetric horizontal partition and symmetric vertical partition. The binary tree leaf node is called the Coding Unit (CU), and its segmentation is used for prediction and transformation processing without further partitioning. This means that CU, PU, and TU have the same block size in the QTBT coding block structure. In JEM, the CU consists of coding blocks (CBs) of different color components. For example, in the case of P slices and B slices in the 4:2:0 chroma format, one CU may contain one luminance CB and two chroma CBs. The CU may consist of a single-component CB. For example, in the case of I slices, one CU may contain only one luminance CB or only two chroma CBs. The following parameters are defined for the QTBT partitioning method. - CTU size: The size of the quadtree root node, which is the same concept as in HEVC; - MinQTSize: The minimum allowable quadtree leaf node size; - MaxBTSize: The maximum allowable binary tree root node size; - MaxBTDepth: The maximum allowable binary tree depth; - MinBTSize: The minimum allowable binary tree leaf node size.

[0041]

[0042] In an example of the QTBT partition structure, the CTU size has two corresponding 64×64 chroma samples with 128×128 luma samples in the luma block (4:2:0 chroma format), MinQTSize is 16×16, MaxBTSize is 64×64, MinBTSize (both width and height) is 4×4, M axBTDepth is set to 4. The quadtree partition is first applied to the CTU, and a quadtree leaf node is generated. The quadtree leaf node can have a size from 16×16 (i.e., MinQTSize) to 1 28×128 (i.e., CTU size). When the quadtree leaf node is 128×128, since its size exceeds MaxBTSize (i.e., 64×64), the quadtree leaf node is not further divided by a binary tree. Otherwise, the quadtree leaf node can be further partitioned by a binary tree. Thus, the quadtree leaf node is also a binary tree root node and has a binary tree depth of 0. When the binary tree depth reaches MaxBTDepth (i.e., 4), no further division is considered. When the binary tree node has a width equal to MinBTSize (i.e., 4), no further horizontal division is considered. Similarly, when the binary tree node has a height equal to MinBTSize, no further vertical division is considered. The binary tree leaf node is further processed by prediction processing and transformation processing without further partitioning. In JEM, the maximum CTU size is 2 56×256 luma samples.

[0043] FIG. 3 shows an example of block partitioning by the QTBT method and the corresponding tree representation. ​This is the case. The solid line indicates a quadtree split, and the dotted line indicates a binary tree split. As shown in FIG. 3, the coding tool The coding tree unit (CTU) 300 is first partitioned by a quadtree structure into four quadtree leaf nodes 302, 304, 306, 308, and three of them are further partitioned by a quadtree structure or a binary tree structure. For example, the quadtree leaf node 306 is further partitioned by a quadtree split. The quadtree leaf node 304 is further partitioned by a binary tree split into two leaf nodes 304a and 304b. Also, the quadtree leaf node 302 is further partitioned by a binary tree split. At each split (i.e., non-leaf) node of the binary tree, one flag indicating the split type (i.e., horizontal or vertical) used is signaled, where 0 indicates a horizontal split and 1 indicates a vertical split. For example, in the case of the quadtree leaf node 304, 0 is signaled to indicate a horizontal split, and in the case of the quadtree leaf node 302, 1 is signaled to indicate a vertical split. In a quadtree split, the block is always split both horizontally and vertically to generate four sub-blocks of the same size, so there is no need to indicate the split type. Moreover, the QTBT method supports the ability to have separate QTBT structures for luminance and chrominance. Currently, for P slices and B slices, the luminance CTB and chrominance CTB within one CTU share the same QTBT structure.

[0044] However, for I slices, the luminance CTB is partitioned into CUs by one QTBT structure, and the chrominance CTB is partitioned into chrominance CUs by another QTBT structure. This is because the CUs within an I slice consist of an encoding block for the luminance component or encoding blocks for two chrominance components, while the CUs within a P slice or a B slice , It means that U consists of coded blocks of all three color components.

[0045] At the meeting of the Joint Video Experts Team (JVET), the JVET defined the first draft of Versatile Video Coding (VVC) and the coding method of VVC Test Model 1 (VTM1). It has been determined that the quadtree with a nested multi-type tree by binary and ternary split coding block structures is included as the first new coding feature of VVC. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different.

[0046] In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. In VVC, due to the picture partition structure, the input video is divided into blocks called Coding Tree Units (CTUs). A CTU is divided into Coding Units (CUs) by a quadtree with a nested multi-type tree structure, where the leaf coding unit (CU) defines a region that shares the same prediction mode (e.g., intra or inter). Here, the term "unit" defines a region of an image that includes all components. The term "block" is for defining a region that includes a specific component (e.g., luminance), and when a chroma sampling format such as 4:2:0 is considered, it may be spatially different. Partitioning of an image into CTUs

[0047] FIG. 4 is a schematic diagram showing an example of an image divided into CTUs according to an embodiment of the present disclosure. In VVC, an image is divided into a series of CTUs, where the concept of CTU is the same as that of CTU in HEVC. In the case of an image with three sample arrays, a CTU consists of an N×N luminance sample block and two corresponding chroma sample blocks. FIG. 4 shows CTU40.

[0048] In VVC, an image is divided into a series of CTUs, where the concept of CTU is the same as that of CTU in HEVC. In the case of an image with three sample arrays, a CTU consists of an N×N luminance sample block and two corresponding chroma sample blocks. FIG. 4 shows CTU40. In VVC, an image is divided into a series of CTUs, where the concept of CTU is the same as that of CTU in HEVC. In the case of an image with three sample arrays, a CTU consists of an N×N luminance sample block and two corresponding chroma sample blocks. FIG. 4 shows CTU40. In VVC, an image is divided into a series of CTUs, where the concept of CTU is the same as that of CTU in HEVC. In the case of an image with three sample arrays, a CTU consists of an N×N luminance sample block and two corresponding chroma sample blocks. FIG. 4 shows CTU40. An example of an image 400 divided into two is shown.

[0049] The maximum allowed size of a luminance block in a CTU is specified as 128x128 ( However, the maximum size of a luminance transformation block is 64x64. Partitioning of CTUs using a tree structure

[0050] FIG. 5 is a schematic diagram illustrating a multi-type tree splitting mode according to an embodiment of the present disclosure. be.

[0051] In HEVC, the CTU is represented as a coding tree to adapt to various local characteristics. The image is divided into CUs by a quadtree structure. Inter-picture (temporal) prediction or intra-picture (spatial) prediction The prediction or coding of an image region is decided at the leaf CU level. The CU is further divided into one, two, or four PUs depending on the PU division type. Within one PU, the same prediction process is applied and the relevant information is decoded on a PU basis. The residual block is obtained by applying the prediction process based on the PU partition type. After that, the leaf CU is assigned to a transform unit according to another quadtree structure similar to the coding tree of this CU. One of the key features of the HEVC structure is the division of CUs, PUs, and , and there are multiple compartment concepts including TU.

[0052] VVC supports multiple types of nesting with binary and ternary segmentation structures. The quadtree with tree replaces the concept of multiple partition unit types, i.e., CU, Removed the separation of PU and TU concepts (in the case of CU, the size of the maximum transformation length is too large). In the coding tree structure, CUs are square. It is possible to take a square or rectangular shape. The coding tree unit (CTU) is initially partitioned by a quadtree structure. Next, the leaf nodes of this quadtree can be further partitioned by a multi-type tree structure. As shown in FIG. 5, the multi-type tree structure has four split types: vertical binary split 502 (SPLIT_BT_VER), horizontal binary split 504 (SPLIT_BT_HOR ), vertical ternary split 506 (SPLIT_TT_VER), and horizontal ternary split 508 (SPLIT_TT_HOR ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ), horizontal binary split 504 (SPLIT_BT_HOR ), vertical ternary split 506 (SPLIT_TT_VER), and horizontal ternary split 508 (SPLIT_TT_HOR ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). ). The leaf nodes of the multi-type tree are called coding units (CUs), and as long as the maximum transform length of the CU is not too large, this segmentation is used for prediction processing and transform processing without further partitioning. This means that in most cases, in a quadtree with a nested multi-type tree coding block structure, the CUs, PUs, and TUs have the same block size. An exception is when the maximum transform support length is smaller than the width or height of the column component of the CU. In VTM1, a CU consists of coding blocks (CBs) of different color components. For example, one CU contains one luminance CB and two chrominance CBs (except when the video is monochrome, i.e., there is only one color component). Partitioning of a CU into multiple prediction units

[0053] In VVC, for each CU partitioned based on the above structure, the prediction of the block content can be performed for the entire CU block or in a sub-block manner described below. Such an operation unit of prediction is called a prediction unit (or PU). In VVC, for each CU partitioned based on the above structure, the prediction of the block content can be performed for the entire CU block or in a sub-block manner described below. Such an operation unit of prediction is called a prediction unit (or PU). In VVC, for each CU partitioned based on the above structure, the prediction of the block content can be performed for the entire CU block or in a sub-block manner described below. Such an operation unit of prediction is called a prediction unit (or PU).

[0054] In the case of intra prediction (or intra-frame prediction), the size of the PU is usually CU In other words, prediction is performed for the entire CU block. In the case of center prediction (or interframe prediction), the size of the PU is equal to or larger than the size of the CU. In other words, when dividing a CU into multiple PUs to be predicted, There is.

[0055] Examples where the PU size is smaller than the CU size include affine prediction mode, advanced temporal level Advanced Temporal Level Motion Vector Prediction (ATMVP) ) mode, and triangular prediction mode.

[0056] In affine prediction mode, a CU can be divided into multiple 4x4 PUs to be predicted. It is possible to derive a motion vector for each 4x4 PU, and then In ATMVP mode, a CU can perform motion compensation on one or more predictions. It is possible to divide the object into 8x8 PUs. For each 8x8 PU, a motion vector is calculated. We can then derive the motion compensation rule and perform motion compensation for this 8x8 PU accordingly. In mode, a CU can be divided into two triangular-shaped prediction units. For each U, we derive a motion vector and perform motion compensation accordingly. , supported for inter prediction. The details of triangle prediction modes are shown below. . Triangle prediction mode (or triangle partitioning mode)

[0057] FIG. 6 illustrates dividing a CU into triangular prediction units according to an embodiment of the present disclosure. FIG.

[0058] The concept of the triangular prediction mode introduces triangular partitions for motion compensation prediction. Triangular prediction mode is also called triangular prediction unit mode or triangular partition mode. As shown in FIG. 6, CU602, or 604, is divided into two triangular prediction units PU1 and PU2 in the diagonal or anti-diagonal direction (i.e., divided from the upper left corner to the lower right corner as shown in CU602, or divided from the upper right corner to the lower left corner as shown in CU604). Each triangular prediction unit within the CU is inter-predicted using its own single prediction motion vector and reference frame index derived from a single prediction candidate list. After predicting these triangular prediction units, an adaptive weighting process is performed on the diagonal edges. Next, transformation processing and quantization processing are applied to the entire CU. Note that this mode is only applicable to the current VVC skip mode and merge mode. As shown in FIG. 6, the CU is shown as a square block, but the triangular prediction mode may also be applied to CUs with non-square (i.e., rectangular) shapes. The single prediction candidate list contains one or more candidates, and each candidate can be a motion vector. Therefore, throughout this disclosure, the terms "single prediction candidate list", "single prediction motion vector candidate list", and "single prediction merge list" are used interchangeably, and the terms "single prediction merge candidate list" and "single prediction motion vector" can be used interchangeably.

[0059] Single prediction motion vector candidate list

[0060] ​​​​​​​​​​​FIG. 7 is a schematic diagram showing the positions of adjacent blocks according to an embodiment of the present disclosure.

[0061] In one example, the single prediction motion vector candidate list can include from 2 to 5 single prediction motion vectors candidates. In another example, other numbers are also possible. It is derived from adjacent blocks. The single prediction motion vector candidate list is as shown in FIG. 7 and is derived from 7 adjacent blocks including 5 spatially adjacent blocks (1 to 5) and 2 blocks at the same temporal position (6 to 7). The motion vectors of these 7 adjacent blocks are collected in the first merge list. Next, a single prediction candidate list is formed based on the motion vectors in the first merge list according to a predetermined order Therein. Based on that order, the single prediction motion vectors from the first merge list are first put into the single prediction motion vector candidate list, then the reference picture list of the bi-prediction motion vector 0 or L0 motion vector, and the reference picture list 1 or L 1 motion vector of the bi-prediction motion vector, and subsequently, the averaged motion vectors of the L0 and L1 motion vectors of the bi-prediction motion vector are successively put into the list. At that point, if the number of candidates is less than the target number (5 in the current VVC), zero motion vectors are added to the list to meet the target number.

[0062] For each of the triangular PUs, a predictor is derived based on its motion vector. Note that the derived predictor covers a wider area than the actual triangular PU such that there is an overlapping area of the two predictors along the shared diagonal edge of the two triangular PUs. The most ... To derive the final prediction, the weighting process is applied to the diagonal edge region between these two predictors. Currently, the weighting coefficients applied to the luminance samples and the chrominance samples are {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8} and {6 / 8, 4 / 8, 2 / 8}, respectively. Normal merge mode motion vector candidate list

[0063] According to the current VVC, in the normal merge mode where the entire CU is predicted without being divided into a plurality of PUs, the motion vector candidate list or the merge candidate list is created by a different procedure from the case of the triangular prediction mode.

[0064] First, as shown in FIG. 8 which is a schematic diagram showing the positions of spatial merge candidates according to an embodiment of the present disclosure, spatial motion vector candidates are selected based on the motion vectors from adjacent blocks. In the derivation of the spatial merge candidates for the current block 802, up to four merge candidates are selected from the candidates at the positions shown in FIG. 8. The derivation order is A1→B1→B0→ A0→(B2). The position B2 is considered only when any of the PUs at the positions A1, B1, B0, and A0 is unavailable or is intra-coded and decoded.

[0065] Next, temporal merge candidates are derived. In the derivation of the temporal merge candidates, scaled motion vectors are derived based on the PUs at the same position belonging to the image with the smallest difference in the picture order count (POC) from the current image in a specific reference image list. The reference image list used for the derivation of the PUs at the same position is explicitly signaled in the slice header. The scaled motion vectors for the temporal merge candidates ​​​​​The motion vector is for a temporal merge candidate according to an embodiment of the present disclosure, and is obtained as indicated by the dotted line in FIG. 9 showing scaling. The scaled motion vector for the temporal merge candidate is scaled from the motion vector of PUcol_PU at the same position using the POC distances tb and td, where tb is defined as the POC difference between the reference picture curr_ref and the current picture curr_pic of the current picture curr_pic, and td is defined as the POC difference between the reference picture col_ref and the picture col_pic at the same position of the picture col_pic at the same position. The reference picture index of the temporal merge candidate is set to 0. The actual realization of the scaling process is described in the HEVC draft specification. In the case of a B slice, two motion vectors are obtained and combined, such as one motion vector for reference picture list 0 and the other motion vector for reference picture list 1, to create a bi-predicted merge candidate. as obtained as indicated by the dotted line in FIG. 9 showing scaling. For the temporal merge candidate The scaled motion vector is scaled from the motion vector of PUcol_PU at the same position using the POC distances tb and td, provided that tb is the reference picture of the current picture curr_pic, and td is defined as the POC difference between the current picture curr_pic and the current picture curr_pic, and td is defined as the POC difference between the reference picture col_ref of the picture col_pic at the same position and the picture col_pic at the same position. The reference picture index of the temporal merge candidate is set to 0. The actual realization of the scaling process is described in the HEVC draft specification. In the case of a B slice one motion vector is for reference picture list 0 and the other motion vector is obtained as for reference picture list 1 and combined to create a bi-predicted merge candidate. For the case of a B slice, one motion vector is for reference picture list 0 and the other motion vector is obtained as for reference picture list 1 and combined to create a bi-predicted merge candidate. create a bi-predicted merge candidate.

[0066] FIG. 10 is a schematic diagram showing candidate positions for temporal merge candidates according to an embodiment of the present disclosure. is a schematic diagram.

[0067] The position of the PU at the same position is selected from two candidate positions C3 and H as shown in FIG. 10. If the PU at position H is not available, is intra-coded / decoded, or is outside the current CTU, then position C3 is used for deriving the temporal merge candidate. Otherwise, position H is used for deriving the temporal merge candidate. CTU, then position C3 is used for deriving the temporal merge candidate. Otherwise, position H is used for deriving the temporal merge candidate. Otherwise, position H is used for deriving the temporal merge candidate.

[0068] As described above, both the spatial motion vector and the temporal motion vector are in the merge candidate list After being inserted, merge candidates based on history are added. So-called merge candidates based on history include motion vectors from previously encoded / decoded CUs that are held in individual motion vector lists and managed based on specific rules.

[0069] After the candidates based on history are inserted, if the merge candidate list is not full, pairwise averaged motion vector candidates are further added to this list. As its name indicates, this type of candidate is composed by averaging the candidates already in the current list. More specifically, based on a certain order or rule, two candidates are retrieved one by one from the merge candidate list, and the averaged motion vector of the two candidates is added to the current list.

[0070] After the pairwise averaged motion vectors are inserted, if the merge candidate list is still not full, zero motion vectors are added until the list is full. Creation of a first merge list for triangle prediction by a normal merge list creation process

[0071] The triangle prediction mode in the current VVC shares some common points with the normal merge prediction mode in the overall procedure of forming predictors. For example, in both prediction modes, it is necessary to create a merge list based on at least the adjacent spatial motion vectors of the current CU and the motion vectors at the same position. On the other hand, the triangle prediction mode also has some differences from the normal merge prediction mode.

[0072] For example, in both the triangle prediction mode and the normal merge prediction mode, it is necessary to create a merge list, but the detailed procedures for obtaining such a list are different.

[0073] These differences require additional logic, resulting in additional costs for codec implementation. The procedure and logic for creating the merge list can be integrated and shared between the triangle prediction mode and the normal merge prediction mode.

[0074] In one example, when forming a unidirectional prediction (also called single prediction) merge list for the triangle prediction mode, before adding a new motion vector to the merge list, the new motion vector is completely truncated with respect to the motion vectors already in the list. That is to say, the new motion vector is compared with each motion vector already in the single prediction merge list, and if it is different from all the motion vectors in the merge list, it is added to this list. Otherwise, the new motion vector is not added to this list.

[0075] According to an example of the present disclosure, in the triangle prediction mode, the unidirectional prediction merge list can be obtained or created from a normal merge mode motion vector candidate list called a normal merge list.

[0076] More specifically, to create a merge candidate list for the triangle prediction mode, first, a first merge list is created based on the merge list creation process for normal merge prediction. The first merge list includes a plurality of candidates each of which is a motion vector. Next, the motion vectors in this first merge list are used to further create or derive a unidirectional prediction merge list for the triangle prediction mode.

[0077] Note that for the first merge list created in this case, a list size different from that for the general merge mode or the normal merge mode can be selected. In an example of the present disclosure, the first merge list has the same size as the list for the general merge mode. In another example of the present disclosure, the created first merge list has a list size different from that of the list for the general merge mode. According to an example of the present disclosure, the unidirectional prediction merge list for the triangle prediction mode can be created or derived from the first merge list based on one of the following methods. In an example of the present disclosure, in order to create or derive this unidirectional prediction merge list, first, the candidate prediction list 0 motion vectors in the first merge list are checked and selected for the unidirectional prediction merge list. After this process, if this unidirectional prediction merge list is not full (for example, the number of candidates in this list is still less than the target number), then the candidate prediction list 1 motion vectors in the first merge list are checked and selected for the unidirectional prediction merge list. If the unidirectional prediction merge list is still not full, the prediction list 0 zero vector is added to this unidirectional prediction merge list. If the unidirectional prediction merge list is still not full, the prediction list 1 zero vector is added to this unidirectional prediction merge list. In another example of the present disclosure, for each candidate in the first merge list, its prediction list 0 motion vector and prediction list 1 motion vector are checked, and the one with the smaller absolute value of the sum of absolute differences (SAD) between the prediction result and the reference block is selected for the unidirectional prediction merge list. Creation of a uni-directional prediction merge list from the first merge list

[0078] According to an example of the present disclosure, the unidirectional prediction merge list for the triangle prediction mode can be created or derived from the first merge list based on one of the following methods. It is possible to be created or derived from the first merge list based on one of the following methods.

[0079] In an example of the present disclosure, to create or derive this unidirectional prediction merge list, first, the candidate prediction list 0 motion vectors in the first merge list are checked and selected for the unidirectional prediction merge list. After this process, if this unidirectional prediction merge list is not full (for example, the number of candidates in this list is still less than the target number), then the candidate prediction list 1 motion vectors in the first merge list are checked and selected for the unidirectional prediction merge list. If the unidirectional prediction merge list is still not full, the prediction list 0 zero vector is added to this unidirectional prediction merge list. If the unidirectional prediction merge list is still not full, the prediction list 1 zero vector is added to this unidirectional prediction merge list.

[0080] In another example of the present disclosure, for each candidate in the first merge list, its prediction list 0 motion ​Vectors and Prediction Lists 1. Add motion vectors to the unidirectional prediction merge list in an interleaved manner. Add to the list. More specifically, for each candidate in the first merge list, if the candidate is a unidirectional prediction motion vector, directly add it to the unidirectional prediction merge list. Otherwise, if the candidate is a bidirectional prediction motion vector in the first merge list, first add its prediction list 0 motion vector to the unidirectional prediction merge list, and then add its prediction list 1 motion vector. After all motion vector candidates in the first merge list have been checked and added, if the unidirectional prediction merge list is not yet full, it is possible to add a unidirectional prediction zero motion vector. For example, for each reference frame index, it is possible to separately add the prediction list 0 zero motion vector and the prediction list 1 zero motion vector to the unidirectional prediction merge list until this list is full.

[0081] In yet another example of the present disclosure, first, unidirectional prediction motion vectors from the first merge list are selected into the unidirectional prediction merge list. After this process, if the unidirectional prediction merge list is not full, for each bidirectional prediction motion vector in the first merge list, first add its prediction list 0 motion vector to the unidirectional prediction merge list, and then add its prediction list 1 motion vector. After this process, if the unidirectional prediction merge list is still not full, it is possible to add a unidirectional prediction zero motion vector. For example, for each reference frame index, until this list is full, separately add the prediction list 0 zero motion vector and the ​It is possible to add to it.

[0082] In the above description, when adding a unidirectional prediction motion vector to the unidirectional prediction merge list, in order to confirm that the newly added motion vector is different from those motion vectors already in the unidirectional prediction merge list, it is possible to execute a motion vector truncation process. This kind of motion vector truncation process can also be executed partially to reduce complexity. For example, check the newly added motion vectors only for some of the motion vectors, not all of those already in the unidirectional prediction merge list. In an extreme case, the motion vector truncation (i.e., the motion vector comparison operation) is not executed in this process. In some examples of the present disclosure, a single prediction merge list can be adaptively created based on whether the current image uses backward prediction. For example, the single prediction merge list can be created in different ways depending on whether the current image uses backward prediction. That all the picture order count (POC) values of the reference images are not greater than the POC value of the current image means that the current image does not use backward prediction. In an example of the present disclosure, when the current image does not use backward prediction or it is determined that the current image does not use backward prediction, first, the candidate prediction list 0 motion vectors in the first merge list are checked and selected into the unidirectional prediction merge list, and then the candidate prediction list 1 motion vectors are selected into this unidirectional prediction merge list. Also, for this unidirectional prediction, Creation of a uni-directional prediction merge list from the first merge list based on an image prediction configuration

[0083]

[0084] If the merge list is not yet full, it is possible to add a single predicted zero motion vector. Otherwise, if the current image uses backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected for the unidirectional prediction merge list in an interleaved manner as described above, i.e., the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. At the end of this process, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero vector. In another example of the present disclosure, if the current image does not use backward prediction, first the predicted list 1 motion vectors of the candidates in the first merge list are checked and selected for the unidirectional prediction merge list, and the predicted list 0 motion vectors of those candidates are selected for the unidirectional prediction merge list. Also, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero motion vector. Otherwise, if the current image uses backward prediction,

[0085] the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected for the unidirectional prediction merge list in an interleaved manner as described above, i.e., the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. In another example of the present disclosure, if the current image does not use backward prediction, first the predicted list 1 motion vectors of the candidates in the first merge list are checked and selected for the unidirectional prediction merge list, and the predicted list 0 motion vectors of those candidates are selected for the unidirectional prediction merge list. Also, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero motion vector. Otherwise, if the current image uses backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected for the unidirectional prediction merge list in an interleaved manner as described above, i.e., the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. is added, then the predicted list 0 motion vector of the second candidate is added, and subsequently the predicted list 1 motion vector of the second candidate is added, and so on. At the end of this process, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero vector .

[0086] In yet another example of the present disclosure, if the current image does not use backward prediction, first only the predicted list 0 motion vectors of the candidates in the first merge list are checked and selected for the unidirectional prediction merge list. Also, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero motion vector. Otherwise, if the current image uses backward prediction, the predicted list 0 motion vectors and the predicted list 1 motion vectors of each candidate in the first merge list are checked and selected for the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added , then the predicted list 0 motion vector of the second candidate is added, and subsequently the predicted list 1 motion vector of the second candidate is added , and so on. At the end of this process, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero vector .

[0087] In yet another example of the present disclosure, if the current image does not use backward prediction, first only the predicted list 1 motion vectors of the candidates in the first merge list are checked and selected for the unidirectional prediction merge list. Also, if the unidirectional prediction merge list is not yet full, it is possible to add a single It is possible to add a predicted zero motion vector. Otherwise, if the current image uses backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. At the end of the process, if the unidirectional prediction merge list is not yet full, it is possible to add a single predicted zero vector. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. For example, when using backward prediction, the predicted list 0 motion vectors and predicted list 1 motion vectors of each candidate in the first merge list are checked and can be selected into the unidirectional prediction merge list in an interleaved manner as described above, that is, the predicted list 0 motion vector of the first candidate in the first merge list is added, then the predicted list 1 motion vector of the first candidate is added, then the predicted list 0 motion vector of the second candidate is added, followed by the predicted list 1 motion vector of the second candidate, and so on. Use of the first merge list for triangle prediction without creating a uni-directional prediction merge list

[0088] In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list. In the above example, the unidirectional prediction merge list for triangular prediction is created by selecting motion vectors from the first merge list into the unidirectional prediction merge list. However, in reality, this method can be implemented in different forms regardless of whether the unidirectional prediction (or single prediction) merge list is physically formed. In one example, the first merge list can be directly used without physically creating the unidirectional prediction merge list. For example, the list 0 and / or list 1 motion vectors of each candidate in the first merge list can be easily indexed based on a certain order and directly accessed from the first merge list.

[0089] For example, the first merge list is obtained from a decoder or other electronic device / component. is possible. In other examples, based on the merge list creation process for normal merge prediction a first merge list containing a plurality of candidates, each of which is one or more motion vectors, is created, and then a unidirectional prediction merge list is not created. Instead, a predetermined index list containing a plurality of reference indices, each of which is a reference to the motion vector of a candidate in the first merge list, is used to derive a unidirectional merge candidate for the triangular prediction mode. The index list can be regarded as a representation of a unidirectional prediction merge list for triangular prediction, and the unidirectional prediction merge list includes at least a subset of the candidates in the first merge list corresponding to the reference indices. Note that the order of the indices can follow any of the selection orders described in the example of creating a unidirectional prediction merge list. In practice, such an index list can be realized in various forms. For example, it may be explicitly realized as a list. In other examples, it may be realized or obtained by a specific logic or program function without explicitly creating any list. In an example of the present disclosure, the index list can be adaptively determined based on whether the current image uses backward prediction. For example, the reference indices in the index list may be arranged according to whether the current image uses backward prediction, that is, based on the comparison result between the picture order count (POC) of the current image and the POC of the reference image. If the POC values of all reference images are below the POC value of the current image, it means that the current image is not using backward prediction. In fact, such an index list can be realized in various forms. For example, it may be explicitly realized as a list. In other examples, it may be realized or obtained by a specific logic or program function without explicitly creating any list.

[0090] In an example of the present disclosure, the index list can be adaptively determined based on whether the current image uses backward prediction. For example, the reference indices in the index list may be arranged according to whether the current image uses backward prediction, that is, based on the comparison result between the picture order count (POC) of the current image and the POC of the reference image. That is, it may be arranged based on the comparison result between the picture order count (POC) of the current image and the POC of the reference image. If the POC values of all reference images are below the POC value of the current image, it means that the current image is not using backward prediction. If the picture order count (POC) values of all reference images are less than the POC value of the current image, it means that the current image is not using backward prediction.

[0091] ​​​In one example of the present disclosure, when the current picture does not use backward prediction, the predicted list 0 motion vectors of the candidates in the first merge list are used as unidirectional prediction merge candidates indexed according to the same index sequence as in the first merge list. That is, if it is determined that the POC of the current picture is greater than each of the POCs of the reference pictures, the reference index is arranged according to the same order as the list 0 motion vectors of the candidates in the first merge list. Otherwise, when the current picture uses backward prediction, the list 0 motion vectors and list 1 motion vectors of each candidate in the first merge list are the list 0 motion vector of the first candidate in the first merge list, the list 1 motion vector of the first candidate, the list 0 motion vector of the second candidate, and then the list 1 motion vector of the second candidate and so on, and are used as unidirectional prediction merge candidates indexed based on an interleaved method. That is, if it is determined that the POC of the current picture is less than at least one of the POCs of the reference pictures, the reference index is arranged according to the interleaved method of the respective list 0 motion vectors and list 1 motion vectors of the candidates that are bidirectional prediction motion vectors in the first merge list. When the candidate in the first merge list is a unidirectional motion vector, the zero motion vector is indexed as a unidirectional prediction merge candidate following the motion vector of that candidate. This provides two unidirectional motion vectors as unidirectional prediction merge candidates regardless of whether each candidate in the first merge list is a bidirectional prediction motion vector or a unidirectional prediction motion vector when the current picture uses backward prediction.

[0092] ​​​​​​​​​​​​In another example of the present disclosure, if the current image does not use backward prediction, the predicted list 0 motion vectors of the candidates in the first merge list are used as unidirectional prediction merge candidates indexed according to the same index order as in the first merge list. Otherwise, if the current image uses backward prediction, the list 0 motion vectors and list 1 motion vectors of each candidate in the first merge list are used as unidirectional prediction merge candidates indexed based on the interleaving method described above, i.e., the list 0 motion vector of the first candidate, the list 1 motion vector of the first candidate, the list 0 motion vector of the second candidate, then the list 1 motion vector of the second candidate, and so on. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector. When checking the new motion vectors to be added to the unidirectional prediction merge list in the above process, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset. In the above process, when checking the new motion vectors to be added to the unidirectional prediction merge list, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector. Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset. When checking the new motion vectors to be added to the unidirectional prediction merge list in the above process, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. In the above process, when checking the new motion vectors to be added to the unidirectional prediction merge list, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector.

[0093] Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset. When the candidate in the first merge list is a unidirectional motion vector, a specific motion offset is added to this motion vector, and it is indexed as a unidirectional prediction merge candidate following this candidate's motion vector. Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset. Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset. Therefore, when the candidate in the first merge list is a unidirectional motion vector and it is determined that the POC of the current image is smaller than at least one of the POCs of the reference images, the reference index is arranged according to the interleaving method of the motion vectors of each candidate in the first merge list and the zero motion vector or the sum of this motion vector and the offset.

[0094] In the above process, when checking the new motion vectors to be added to the unidirectional prediction merge list, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. In the above process, when checking the new motion vectors to be added to the unidirectional prediction merge list, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. In the above process, when checking the new motion vectors to be added to the unidirectional prediction merge list, truncation can be performed completely or partially. If it is performed partially, it means that the new motion vector is already in the single prediction merge list. It means being compared with only a part rather than all of the motion vectors in the block. In an extreme case performs motion vector truncation (i.e., motion vector comparison processing) in this process.

[0095] Also, when forming a single prediction merge list, it is possible to adaptively perform motion vector truncation based on whether the current picture uses backward prediction. For example, in an example of the present disclosure regarding index list determination based on picture prediction configuration, if the current picture does not use backward prediction, motion vector truncation processing is performed completely or partially. If the current picture is using backward prediction, motion vector truncation processing is not performed. Selection of a single prediction merge candidate for the triangle prediction mode

[0096] In addition to the above examples, other methods for creating a single prediction merge list or selecting a single prediction merge candidate are disclosed.

[0097] In an example of the present disclosure, when a first merge list for normal merge mode is created, it is possible to select a single prediction merge candidate for triangular prediction according to the following rules.

[0098] For a motion vector candidate in the first merge list, only one of its list 0 motion vector and list 1 motion vector is used for triangular prediction;

[0099] For a certain motion vector candidate in the first merge list, if the merge index value of this motion vector candidate in the list is an even number, its list 0 motion vector, if available, is used for triangular prediction, and this motion vector candidate is the list 1 motion vector. ​​​​​​​​​​​If there is no torus, the list 0 motion vector is used for triangular prediction; and

[0100] For a certain motion vector candidate in the first merge list, if the merge index value of this motion vector candidate in the list is odd, the list 1 motion vector, if available, is used for triangular prediction, and this motion vector candidate is the list 1 motion vector. If there is no torus, the list 0 motion vector is used for triangular prediction.

[0101] FIG. 11A shows an example of single prediction motion vector (MV) selection (or single prediction merge candidate selection) for the triangular prediction mode. In this example, the first five merge MV candidates derived in the first merge list are indexed from 0 to 4. Each row has two columns representing the list 0 motion vector and the list 1 motion vector of the candidates in the first merge list, respectively. Each candidate in this list can be either a single prediction or a dual prediction. In the case of a single prediction candidate, only one of the list 0 motion vector and the list 1 motion vector can be present, not both. In the case of a dual prediction candidate, both the list 0 motion vector and the list 1 motion vector are present. In FIG. 11A, for each merge index, the motion vector marked with "x" is used for triangular prediction first, if available. If the motion vector marked with "x" is not available, the unmarked motion vector corresponding to the same merge index is used for triangular prediction next.

[0102] The above concept can be extended to other examples. FIG. 11B shows for the triangular prediction ​FIG. 11B shows another example of single-predictor motion vector (MV) selection. The rules for selecting a single prediction merge candidate for the measurement are as follows:

[0103] For the motion vector candidates in the first merge list, the list 0 motion vector and the list 1 motion vector are Only one of the first motion vectors is used for triangle prediction;

[0104] For a particular motion vector candidate in the first merge list, If the merge index value of the candidate vector is even, the list 1 motion vector is If available, it is used for triangle prediction, and this motion vector candidate is used as List 1 motion vector. If there is no list 0 motion vector, then the list 0 motion vector is used for triangle prediction; and

[0105] For a particular motion vector candidate in the first merge list, If the merge index value of a candidate motion vector is odd, its list 0 motion vector is If available, it is used for triangle prediction, and this motion vector candidate is used as the list 0 motion vector. If there is no list 1 motion vector, then the list 1 motion vector is used for triangle prediction.

[0106] In some instances, other different orders are defined and their motion vectors in the first merge list are It is used to select a single prediction merge candidate for triangle prediction from the candidate candidates. Specifically, for a particular motion vector candidate in the first merge list, Deciding whether motion vectors or list 1 motion vectors are used for triangle prediction when available The determination does not necessarily depend on the parity of the index values of the candidates in the first merge list as described above. For example, the following rule may be used:

[0107] For the motion vector candidates in the first merge list, only one of the list 0 motion vector and the list 1 motion vector is used for triangular prediction;

[0108] Based on a certain predefined pattern, for the multiple motion vector candidates in the first merge list, if their list 0 motion vectors are available, they are used for triangular prediction, and if the list 0 motion vectors do not exist, the corresponding list 1 motion vectors are used for triangular prediction;

[0109] Based on the same predefined pattern, for the remaining motion vector candidates in the first merge list, if their list 1 motion vectors are available, they are used for triangular prediction, and if the list 1 motion vectors do not exist, the corresponding list 0 motion vectors are used for triangular prediction;

[0110] Figures 12A to 12D show examples of single prediction motion vector (MV) selection for the triangular prediction mode. For each merge index, the motion vector marked with "x" is used for triangular prediction first if available. If the motion vector marked with "x" is not available, the unmarked motion vector corresponding to the same merge index is then used for triangular prediction. In Figure 12A, for the first three motion vector candidates in the first merge list, first

[0111] their list 0 motion vectors are checked. Only if the list 0 motion vectors are not available, the corresponding list 1 motion vectors are used for triangular prediction. For the first merge only when the list 0 motion vectors are not available, the corresponding list 1 motion vectors are used for triangular prediction. For the first merge For the fourth and fifth motion vector candidates in the list, first, the list 1 motion vector is checked. Only when the list 1 motion vector is not available, the corresponding list 0 motion vector is used for triangular prediction. Figures 12B to 12D show three other patterns when selecting a single prediction merge candidate from the first merge list. The examples shown in the figures are not limiting, and there are further examples. For example, horizontally and / or vertically mirrored versions of those patterns shown in Figures 12A to 12D may be used.

[0112] The selected single prediction merge candidate is indexed and can be directly accessed from the first merge list; or these selected single prediction merge candidates can be put into a single prediction merge list for triangular prediction. The derived single prediction merge list contains multiple single prediction merge candidates, and each single prediction merge candidate contains one motion vector of the corresponding candidate in the first merge list. According to an example of the present disclosure, each candidate in the first merge list contains at least one of the list 0 motion vector and the list 1 motion vector, and each single prediction merge candidate is only one of the list 0 motion vector and the list 1 motion vector of the corresponding candidate in the first merge list. Each single prediction merge candidate is associated with an integer-valued merge index. The list 0 motion vector and the list 1 motion vector are selected based on a preset rule of the single prediction merge

[0113] In one example, for each single prediction merge candidate having an even merge index value, the first A list of corresponding candidates with the same merge index within the merge list 0 movement Select the vector as a single prediction merge candidate; and for each single prediction merge candidate with an odd merge index value Select the corresponding candidate list 1 movement vector with the same merge index within the first merge list. In another example, for each single prediction merge candidate with an even merge index value, select the corresponding candidate list 1 movement vector with the same merge index within the first merge list. ; and for each single prediction merge candidate with an odd merge index value, select the corresponding candidate list 0 movement ve ctor with the same merge index within the first merge list. ; and for each single prediction merge candidate with an odd merge index value, for the first Select the corresponding candidate list 0 movement ve ctor with the same merge index within the merge list.

[0114] In yet another example, for each single prediction merge candidate, if it is determined that the corresponding candidate list 1 movement vector within the first merge list is available, select the list 1 movement ve ctor as the single prediction merge candidate; and if it is determined that the list 1 movement vector is not available , select the corresponding candidate list 0 movement vector within the first merge list. do.

[0115] In yet another example, for each single prediction merge candidate having a merge index value within the first range, select the corresponding candidate list 0 movement vector within the first merge list as the single prediction ma -ge candidate; and for each single prediction merge candidate having a merge index value within the second range, select the corresponding candidate list 1 movement vector within the first merge list. do.

[0116] In the above process, motion vector truncation can be performed as well. Such truncation can be done completely or partially. , the new motion vector is compared to all of the motion vectors already included in the single prediction merge list. This means that only some of the triangles are compared, not all of them. Before being used as a new motion vector, only some, but not all, of the new motion vectors are used for truncation. This also means that the second motion vector needs to be checked. The first motion vector is compared with the second motion vector before being used as a merge candidate for triangle prediction. Only eye motion vectors are checked for truncation, all other motion vectors are truncated. In the extreme case, this process Do not perform motion vector truncation (i.e., motion vector comparison).

[0117] The method for forming a uni-predictive merge list in this disclosure is described with respect to triangular prediction mode. Although the above methods have been described, these methods are applicable to other prediction modes of a similar type. For example, A more general geometrical scheme in which a CU is partitioned into two PUs along a line that is not an exact diagonal. In the partition prediction mode, two PUs have geometric shapes such as triangle, wedge, trapezoid, etc. In such a case, the prediction of each PU is performed in the same manner as the triangular prediction mode. The methods described herein are equally applicable.

[0118] FIG. 13 is a block diagram illustrating an apparatus for video encoding and decoding according to an embodiment of the present disclosure. The device 1300 may be a mobile phone, a tablet computer, a digital broadcast terminal, or the like. It may also be a terminal such as a tablet device or a mobile information terminal.

[0119] As shown in FIG. 13, the device 1300 may include one or more of a processing unit 1302, a memory 1304, a power supply unit 1306, a multimedia unit 1308, an audio unit 1310, an input / output (I / O) interface 1312, a sensor unit 1314, and a communication unit 1316. It may include.

[0120] The processing unit 1302 generally controls the overall operation of the device 1300, such as operations related to display, phone call initiation, data communication, camera operation, and recording operations. The processing unit 1302 may include one or more processors 1320 for executing instructions to implement all or part of the steps of the above-described method. Further, the processing unit 1302 may include one or more modules that contribute to the interaction between the processing unit 1302 and other components. For example, the processing unit 1302 may include a multimedia module for contributing to the interaction between the multimedia unit 1308 and the processing unit 1302. It may include. For example, the processing unit 1302 may include a multimedia module for contributing to the interaction between the multimedia unit 1308 and the processing unit 1302. It may also include.

[0121] The memory 1304 is configured to store different types of data to support the operation of the device 1300. Examples of such data include instructions for any application or method operating on the device 1300, contact data, phone book data, messages, images, videos, etc. The memory 1304 is implemented by any type of volatile or non-volatile storage device or a combination thereof, and the memory 1304 is a static random access memory (SRAM), a dynamic random access memory (DRAM), a flash memory, a hard disk drive (HDD), a solid state drive (SSD), or a combination thereof. access memory (SRAM), a dynamic random access memory (DRAM), a flash memory, a hard disk drive (HDD), a solid state drive (SSD), or a combination thereof. Dam access memory (SRAM: Static Random Access Memory), electrically erasable programmable read-only memory (EEPROM: Electrically Erasable Programm able Read-Only Memory), erasable programmable read-only memory (EPROM: Era sable Programmable Read-Only Memory), programmable read-only memory (PRO M: Programmable Read-Only Memory), read-only memory (ROM: Read-Only Memor y), magnetic memory, flash memory, magnetic disk, or compact disk may be used.

[0122] The power supply unit 1306 supplies power to each component of the device 1300. The power supply unit 1306 may include a power management system, one or more power supplies, and other components related to generating, managing, and distributing power for the device 1300.

[0123] The multimedia unit 1308 includes a screen that provides an output interface between the device 1300 and the user. In one example, the screen may include a liquid crystal display (LCD: Liqu id Crystal Display) and a touch panel (TP: Touch Panel). If the scre en includes a touch panel, the screen may be implemented as a touch screen that receives input signals from the user. This touch panel may include one or more touch sensors for sensing touches, slides, and gestures on this touch panel. The touch sensor not only senses the boundary of a touch or slide operation, but also ​​Durations and pressures associated with touch or slide operations can also be detected. In one example, the multimedia unit 1308 may include a front camera and / or a rear camera. When the device 1300 is in an operating mode such as an imaging mode or a video mode, the front camera and / or the rear camera can receive external multimedia data.

[0124] The audio unit 1310 is configured to output and / or input audio signals. For example, the audio unit 1310 includes a microphone (MIC). The microphone is configured to receive external audio signals when the device 1300 is in operating modes such as a call mode, a recording mode, and a voice recognition mode. The received audio signals may be further stored in the memory 1304 or transmitted via the communication unit 1316. In one example, the audio unit 1310 further includes a speaker for outputting audio signals.

[0125] The I / O interface 1312 provides an interface between the processing unit 1302 and a peripheral interface module. The above-described peripheral interface module may be a keyboard, a click wheel, buttons, etc. These buttons include, but are not limited to, a home button, a volume button, a start button, and a lock button.

[0126] The sensor unit 1314 includes one or more sensors for providing state evaluations in different aspects of the device 1300. For example, the sensor unit 1314 includes the on / off state of the device 1300 and​It is possible to detect the relative positions of the calling and constituent elements. For example, the constituent elements are the display and keypad of the device 1300. The sensor unit 1314 can also detect the positional changes of the device 1300 or the constituent elements of the device 1300, the presence or absence of user contact on the device 1300, the orientation or acceleration / deceleration of the device 130 0, and the temperature change of the device 1300. The sensor unit 1314 may include a proximity sensor configured to detect the presence of nearby objects without physical contact. The sensor unit 1314 may further include an optical sensor such as a CMOS or CCD image sensor used in an imaging application. In one example, the sensor unit 1314 may further include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor 0, and the temperature change of the device 1300. The sensor unit 1314 may include a proximity sensor configured to detect the presence of nearby objects without physical contact. The sensor unit 1314 may further include an optical sensor such as a CMOS or CCD image sensor used in an imaging application. In one example, the sensor unit 1314 may further include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor 0, and the temperature change of the device 1300. The sensor unit 1314 may include a proximity sensor configured to detect the presence of nearby objects without physical contact. The sensor unit 1314 may further include an optical sensor such as a CMOS or CCD image sensor used in an imaging application. In one example, the sensor unit 1314 may further include an acceleration sensor, a gyro sensor, a magnetic sensor, a pressure sensor 0, or a temperature sensor. 0, or a temperature sensor. 0, or a temperature sensor. 0, or a temperature sensor.

[0127] The communication unit 1316 is configured to facilitate wired or wireless communication between the device 1300 and other devices. The device 1300 can access a wireless network based on communication standards such as WiFi, 4G, or a combination thereof. In one example, the communication unit 131 6 can receive a notification signal or notification-related information from an external notification management system via a notification channel. In one example, the communication unit 1316 may further include a near-field communication (NFC) module for facilitating short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, 6 can receive a notification signal or notification-related information from an external notification management system via a notification channel. In one example, the communication unit 1316 may further include a near-field communication (NFC) module for facilitating short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, 6 can receive a notification signal or notification-related information from an external notification management system via a notification channel. In one example, the communication unit 1316 may further include a near-field communication (NFC) module for facilitating short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, 6 can receive a notification signal or notification-related information from an external notification management system via a notification channel. In one example, the communication unit 1316 may further include a near-field communication (NFC) module for facilitating short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology, (RFID) technology, infrared data association (IrDA) technology, ultra-wideband (UWB) technology,

[0128] In one example, the device 1300 is an application-specific integrated circuit (ASIC) for executing the above method. IC), digital signal processor (DSP), digital signal processing device (DSPD), pro grammable logic device (PLD), field programmable gate array (FPGA), controller, microcontroller, microprocessor, or one or more of other electronic elements.

[0129] The non-transitory computer-readable storage medium may be, for example, a hard disk drive (H DD), solid state drive (SSD), flash memory, hybrid drive or solid state hybrid drive (SSHD), read only memory (ROM), compact disk read only memory (CD-ROM), magnetic tape, floppy disk, etc. It may be.

[0130] FIG. 14 is a flowchart showing an exemplary process of video encoding / decoding for motion compensation prediction by triangle prediction according to an embodiment of the present disclosure.

[0131] In step 1402, the processor 1320 partitions the video image into a plurality of coding units (CUs) each of which is further partitioned into at least one and further two prediction units (PUs). These two PUs can include at least one PU of a geometric shape. For example, this geometric shape PU can include a pair of triangular PUs, a pair of trapezoidal PUs, or other geometric shape PUs. For example, this geometric shape PU can include a pair of triangular PUs, a pair of trapezoidal PUs, or other geometric shape PUs.

[0132] In step 1404, the processor 1320 constructs a first merge list including a plurality of candidates each including one or more motion vectors. For example, the processor 13 constructs a first merge list including a plurality of candidates each including one or more motion vectors. For example, the processor 13 20 can configure a first merge list based on a merge list configuration process for normal merge prediction. The processor 1320 can also obtain the first merge list from other electronic devices or a memory unit. In step 1406, the processor 1320 obtains or derives a single prediction merge list for a triangular-shaped PU. Here, the single prediction merge list includes a plurality of single prediction merge candidates, and each single prediction merge candidate includes one motion vector of the corresponding candidate in the first merge list. In one example, a device for video coding is provided. This device includes a processor 1320 and a memory 1304 configured to store instructions executable by the processor. Here, when the processor executes the instructions, it is configured to execute in the manner shown in FIG. 14.

[0133]

[0134]

[0134]

[0135]

[0136]

[0136] The description of the present disclosure is presented for the convenience of illustration and is not intended to be exhaustive or limiting to the present disclosure. Many changes, modifications, and alternative implementations will be apparent to those skilled in the art who have obtained the teachings presented in the foregoing description and the related drawings.

[0137]

[0137] It is selected and described to make the best use of the principles and various implementations suitable for specific applications expected to have various changes. Therefore, it should be understood that the scope of the present disclosure is not limited to specific examples of the disclosed implementations, and changes and other implementations are also included within the scope of the present disclosure. are those selected and described to enable the best use for various implementations to suit specific applications where various changes are expected. Thus, the scope of this disclosure is not limited to specific examples of the disclosed realizations, and changes and other realizations are also to be understood as being within the scope of this disclosure.

Claims

1. obtaining a plurality of blocks partitioned from a video image from a video bitstream; deriving a first merge list for the current block, the first merge list including a plurality of candidates each including one or more motion vectors; directly obtaining from the first merge list a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list without creating a single prediction merge candidate list; obtaining a predictor for the current block using the motion vectors of the plurality of single prediction merge candidates; comprising; each candidate in the first merge list includes at least one of a list 0 motion vector and a list 1 motion vector, and each single prediction merge candidate includes only one of the list 0 motion vector and the list 1 motion vector of the corresponding candidate in the first merge list, a method for video decoding.

2. each single prediction merge candidate is associated with an integer-valued merge index, and the list 0 motion vector and the list 1 motion vector are selected based on a preset rule for the single prediction merge candidate, the method according to claim 1.

3. obtaining a plurality of single prediction merge candidates includes indexing the list 0 motion vector and / or the list 1 motion vector of each candidate in the first merge list based on a specific order, the method according to claim 2.

4. each single prediction merge candidate having a merge index value includes the list 0 motion vector or the list 1 motion vector of the corresponding candidate having the same merge index in the first merge list, the method according to claim 2.

5. each single prediction merge candidate having an even merge index value includes the list 0 motion vector of the corresponding candidate if it is determined that the list 0 motion vector of the corresponding candidate is available, or if it is determined that the list 0 motion vector of the corresponding candidate is not available, includes the list 1 motion vector of the corresponding candidate in the first merge list, the method according to claim 2.

6. Each single prediction merge candidate having an odd merge index value includes the list 1 motion vector of the corresponding candidate in the first merge list if it is determined that the list 1 motion vector of the corresponding candidate in the first merge list is available, or includes the list 0 motion vector of the corresponding candidate in the first merge list if it is determined that the list 1 motion vector of the corresponding candidate is not available, according to the method of claim 2.

7. Each single prediction merge candidate having a merge index value within a first range includes the list 0 motion vector of the corresponding candidate in the first merge list, and each single prediction merge candidate having a merge index value within a second range includes the list 1 motion vector of the corresponding candidate in the first merge list, according to the method of claim 2.

8. One or more processors, A memory configured to store instructions executable by the one or more processors, Comprising, When the one or more processors execute the instructions, a device for video decoding that causes the method according to any one of claims 1 to 7 to be executed.

9. A method for transmitting a video bitstream used in the method according to any one of claims 1 to 7, comprising: Executing an encoding method to generate a bitstream; Transmitting the bitstream, wherein the bitstream is decoded by the method according to any one of claims 1 to 7, The encoding method includes: Dividing a video image into a plurality of blocks; Constructing a first merge list for the current block, the first merge list including a plurality of candidates each including one or more motion vectors; Directly obtaining a plurality of single prediction merge candidates each including one motion vector of the corresponding candidate in the first merge list from the first merge list without creating a single prediction merge candidate list, obtaining a predictor of the current block using the motion vectors of the plurality of single prediction merge candidates, and forming the video bitstream using the predictors of the plurality of blocks.

10. A computer program having instructions for storing a video bitstream The video bitstream includes encoded video data decoded by the method according to any one of claims 1 to 7, The video bitstream is dividing a video image into a plurality of blocks, constructing, for a current block, a first merge list including a plurality of candidates each including one or more motion vectors, directly obtaining, from the first merge list, a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list without creating a single prediction merge candidate list, obtaining a predictor of the current block using the motion vectors of the plurality of single prediction merge candidates, and forming the video bitstream using the predictors of the plurality of blocks, a computer program generated by [

11. ] A method for storing a video bitstream, comprising: executing an encoding method to generate a bitstream; storing the bitstream, wherein the bitstream is decoded by the method according to any one of claims 1 to 7, The encoding method is dividing a video image into a plurality of blocks, constructing, for a current block, a first merge list including a plurality of candidates each including one or more motion vectors, directly obtaining, from the first merge list, a plurality of single prediction merge candidates each including one motion vector of a corresponding candidate in the first merge list without creating a single prediction merge candidate list, obtaining a predictor of the current block using the motion vectors of the plurality of single prediction merge candidates, and forming the video bitstream using the predictors of the plurality of blocks.