Apparatus and method for inter prediction of triangle partition of coding block

Triangular partitioning of video coding blocks with unidirectional motion compensation addresses inefficiencies in existing video coding schemes, improving coding efficiency and reducing memory bandwidth for video sequences with complex object boundaries.

JP2024174905AActive Publication Date: 2024-12-17HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024145199
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2018-10-08
Filing Date
2024-08-27
Publication Date
2024-12-17
Estimated Expiration
2039-10-08

AI Technical Summary

Technical Problem

Current video coding schemes, such as H.264/AVC and HEVC, face inefficiencies in coding efficiency due to redundancy along object boundaries in video sequences, particularly when object boundaries are not strictly vertical or horizontal, leading to increased memory bandwidth requirements and reduced coding efficiency.

Method used

Implementing triangular or diagonal-based partitioning for video coding blocks, using two triangular prediction units to split coding units, with each unit having its own motion vector and reference frames, and employing unidirectional motion compensation to improve coding efficiency and reduce memory bandwidth.

Benefits of technology

This approach enhances coding efficiency by reducing redundancy and memory bandwidth while maintaining accurate motion compensation, particularly for video sequences with complex object boundaries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2024174905000001_ABST
    Figure 2024174905000001_ABST
Patent Text Reader

Abstract

To provide an apparatus and a method for encoding and decoding a video coding block of a video signal.SOLUTION: A method for deriving a motion vector (MV) is for deriving the MV for a coding block. In particular, when the coding block is enabled for a geometric partition merge mode, a merge candidate list is partitioned into two geometric partitions. The merge candidate list generation comprises deriving spatial merge candidates from neighboring coding units; after the derivation of the candidates, deriving temporal motion vector predictions (MVPs); and then deriving a uni-prediction MV as a motion vector of each geometric partition on the basis of the merge candidate list including uni-prediction MVs and / or bi-prediction MVs. The derivation of the uni-directional MVs is based on the merge candidate list or a uni-directional MV selection rule. Then, the geometric partition of the coding block is predicted on the basis of, at least the uni-prediction MVs to obtain a predicted value of the geometric partition.SELECTED DRAWING: Figure 11
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This patent application claims the benefit of priority to U.S. Provisional Patent Application No. 62 / 742,921, filed October 8, 2018. The above-mentioned patent applications are incorporated herein by reference in their entireties. In general, the present invention relates to the field of video coding. More specifically, the present invention relates to an apparatus and method for encoding and decoding video coding blocks of a video signal using triangular partitioning for inter-prediction of the video coding blocks, such as triangular prediction units, triangular merge modes, motion vector prediction and storage for triangular / geometric prediction units, etc. [Background technology]

[0002] In current video coding schemes such as H.264 / AVC ("Advanced Video Coding") or HEVC ("High Efficiency Video Coding"), motion information in an inter-predicted image (also called a frame) is partitioned into rectangular video coding blocks of configurable size. In H.264 / AVC, motion is partitioned into symmetric video coding blocks (so-called macroblocks) with a maximum size of 16x16 pixels, which can be further subdivided to a minimum of 4x4 pixels, while HEVC replaces macroblocks with coding tree units (CTUs) with a maximum size of 64x64 pixels. CTUs can be partitioned into smaller coding units (CUs) in a quad-tree (QT) decomposition manner as well as larger macroblocks, which can be further subdivided to a minimum size of 8x8 pixels. Furthermore, compared to H.264 / AVC, HEVC additionally supports asymmetric block partitioning (AMP) of coding units (CUs) into prediction units (PUs).

[0003] The decomposition and partitioning decision for each CTU is performed during the encoding process and is based on a rate-distortion optimization criterion. Although AMP already provides improved coding efficiency, issues in coding efficiency can arise along boundaries of moving objects in a video sequence.

[0004] In particular, fine quad-tree decomposition and block partitioning along object boundaries may occur when the boundaries are not strictly vertical or horizontal, as multiple blocks along the boundaries are expected to contain similar motion information, introducing redundancy and reducing coding efficiency.

[0005] A need exists for video coding (i.e., encoding and / or decoding) devices and methods based on triangular or diagonal-based partitioning for inter prediction of video coding blocks that improve coding efficiency while reducing memory bandwidth requirements. Summary of the Invention

[0006] It is an object of the present invention to provide a video coding device and method based on triangular or diagonal-based partitioning for inter prediction of video coding blocks so as to improve coding efficiency. The scope of protection is defined in the claims.

[0007] These and other objects are achieved by the subject matter of the independent claims. Further implementation forms emerge from the dependent claims, the description and the figures.

[0008] Embodiments of the invention are defined by the features of the independent claims and further advantageous implementations of the embodiments by the features of the dependent claims.

[0009] As used herein, a video signal or a video sequence is a set of subsequent frames that show moving pictures. In other words, a video signal or a video sequence is made up of a number of frames (also called pictures or images).

[0010] As used herein, segmentation is the process of partitioning an image or image region, particularly a video coding block, into two or more segments or partitions. Here, we introduce triangular partitioning, which divides a CU into two triangular prediction units in either a diagonal or anti-diagonal direction. Two triangular prediction units can be used to divide a CU in either a diagonal or anti-diagonal direction.

[0011] As used herein, a coding tree unit (CTU) refers to the root of the coding structure of a video sequence of a predefined size that includes a portion of a frame (e.g., 64×64 pixels). A CTU can be partitioned into multiple CUs.

[0012] As used herein, a coding unit (CU) refers to a basic coding structure of a video sequence of a predefined size that includes a portion of a frame that belongs to a CTU. A CU may be partitioned into further CUs.

[0013] As used herein, a prediction unit (PU) refers to a coding structure that is the result of partitioning a CU.

[0014] The devices and methods described herein may be used to represent motion information for segmentation-based block partitioning used in conjunction with rectangular block partitioning, which is useful for inter-prediction in video coding applications.

[0015] The devices and methods described herein may be used for inter-prediction between images to exploit temporal redundancy in natural video sequences.

[0016] In this scenario, the CU can be divided into either diagonal or anti-diagonal directions using two triangular prediction units. Each triangular prediction unit in the CU has its own motion vector and one or more reference frame indexes (such as a first reference index and / or a second reference index) that can be derived from a motion candidate list.

[0017] The overall idea of ​​this disclosure can be summarized as follows: Bi-predictive motion vectors are enabled for at least one 4x4 sub-block of a triangular / geometric partition, but only unidirectional motion compensation is performed.

[0018] These and other objects are achieved by the subject matter of the independent claims. Further implementations are evident from the dependent claims, the description and the figures.

[0019] According to an aspect of the present disclosure, a method for deriving a motion vector (MV) for a coding block (or image block) is provided, the method comprising: generating a merge candidate list for the coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode, the generating of the merge candidate list comprising at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merging candidates; deriving a unidirectional prediction MV as a motion vector for each triangle partition based at least on the merge candidate list; Includes.

[0020] It will be understood that the terms "coding block" and "image block" are interchangeable throughout this application.

[0021] In the example, spatial merge candidates are derived in a manner similar to HEVC, as illustrated in FIG. 8. The spatial merge candidates are referred to as A0, A1, B0, B1, and B2. Up to four merge candidates are selected from the candidates located at the positions shown in FIG. 8. The order of derivation is A1, B1, B0, A0, and B2. Position B2 is considered only when any CU at positions A0, B0, B1, A1 is unavailable (e.g., due to belonging to another slice or tile) or is intra-coded. After the candidate at position A0 is added to the merge candidate list MCL, the addition of the remaining candidates is subject to a redundancy check that ensures that candidates with the same motion information are excluded from the MCL list, thereby improving coding efficiency.

[0022] A temporal motion vector prediction (MVP) is derived based on a co-located CU belonging to a collocated reference picture, such as "6" or "7" in FIG. 9, resulting in a derived MVP.

[0023] Two triangular partitions, e.g., PU0 and PU1, may be the result of partitioning a video coding block along a diagonal or opposite corners, as shown in FIG. 6. Blocks PU0 and PU1 may then refer to the lower-left and upper-right triangular portions and the upper-left and lower-right triangular portions of the video block, respectively. The terms video block and video coding block are used synonymously. The terms "triangle partition," "triangle block," "triangular block," and "triangular partition" are used synonymously.

[0024] A video coding block may be divided into smaller block units, including 4×4 pixel blocks. The term pixel may also refer to a sample. Thus, each of the two triangular blocks PU0 and PU1 of a video block may include multiple 4×4 block units, as shown in FIG.

[0025] The samples of a 4x4 block unit on the diagonal or anti-diagonal of a video block belong to one of the triangular partitions. After predicting each of the triangular partitions (i.e., triangular blocks), the sample values ​​along the edge of the diagonal or anti-diagonal are adjusted using a blending process with adaptive weights. Alternatively, the blending process may be performed over an extended range around the (anti-)diagonal.

[0026] According to aspects of the present disclosure, a unidirectionally predicted MV is derived based on a unidirectionally predicted MV selection rule and a merge candidate list for a triangle merge mode.

[0027] According to aspects of this disclosure, a merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs.

[0028] According to an aspect of the present disclosure, the uni-predictive MV selection rule for triangle merge mode indicates that the first or second MV of the bi-predictive MVs in the merge candidate list is selected as the uni-predictive MV.

[0029] According to an aspect of the present disclosure, the first MV corresponds to the first reference picture list (REF_PIC_LIST0), and the second MV corresponds to the second reference picture list (REF_PIC_LIST1).

[0030] According to an aspect of the present disclosure, a method for generating a merge candidate list for a coding block is provided, the method comprising: generating a merge candidate list for the coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode, the generating of the merge candidate list comprising at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merging candidates; adding the one or more spatial merge candidates and the derived one or more temporal MVPs to a merge candidate list; wherein the one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs.

[0031] Alternatively, after deriving the spatial merge candidates, at most one temporal motion vector prediction (MVP) may be derived directly and immediately, and at most one of the derived temporal MVPs may be added to the merge candidate list. This is illustrated in FIG. 9 through candidates 6 and 7, respectively.

[0032] As shown in Figure 9, the position of the temporal candidate is selected between candidates 6 and 7. If the CU in position 6 is not available, is intra-coded, or is outside the current row of the CTU, position 7 is used. Otherwise, position 6 is used in the derivation of the temporal MVP (i.e., the temporal merge candidate).

[0033] According to an aspect of the present disclosure, a method for inter prediction of a current triangular partition of a coding block is provided, the method comprising: generating a merge candidate list for the coding block if the coding block is enabled for a triangle merge mode, the generating merge candidate list including at least deriving one or more spatial merge candidates from neighboring coding units, and directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merge candidates; deriving a uni-predictive MV as a motion vector for the current triangle partition based on at least the merge candidate list; performing a prediction of the current triangular partition based on the at least one predicted MV to obtain a predicted value of the current triangular partition; Equipped with.

[0034] According to aspects of the present disclosure, the derivation of sub-block based temporal merging candidates is excluded from the generation of the merging candidate list.

[0035] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule is: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, then the average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or If the reference image index of the first MV relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as a uni-predictive MV; or If the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is used as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first and second MVs, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has the smaller magnitude, is used as the uni-predictive MV. Either one of the following.

[0036] According to an aspect of the present disclosure, there is provided an apparatus for deriving a motion vector (MV) for a coding block, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangle merge mode, wherein during generating the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; an inter-prediction processing unit configured to derive a uni-predictive MV as a motion vector for each triangle partition based on at least the merge candidate list; Equipped with.

[0037] According to an aspect of the present disclosure, an apparatus is provided for generating a merge candidate list for a coding block, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangular merge mode, wherein during generation of the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived, and the one or more spatial merge candidates and the derived one or more temporal MVPs are added to the merge candidate list; The one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs.

[0038] According to an aspect of the present disclosure, an apparatus for inter prediction of a current triangular partition of a coding block is provided, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangle merge mode, wherein during generation of the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; an inter-prediction processing unit configured to derive a uni-prediction MV as a motion vector for each triangle partition based on at least the merge candidate list, and perform prediction of the current triangle partition based on the at least uni-prediction MV to obtain a predicted value for the current triangle partition; Equipped with.

[0039] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule is: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, then the average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or If the reference image index of the first MV relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as a uni-predictive MV; or If the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is used as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first and second MVs, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has the smaller magnitude, is used as the uni-predictive MV. Either one of the following.

[0040] According to an aspect of the present disclosure, there is provided a decoding apparatus (200) for decoding a video coding block of a current frame of an encoded video signal, the decoding apparatus (200) comprising: a decoding unit (205, 207) configured to decode the video coding block to provide a residual video coding block; generating a predictive video coding block based on a uni-predictive motion vector (MV) derived for a triangular partition of the video coding block for a triangle merge mode, where a bi-predictive motion vector (MV) is possible for the motion vector storage of at least one 4×4 sub-block for the triangle merge mode; and Performing unidirectional motion compensation an inter prediction unit (215) configured to: a reconstruction unit (209) configured to reconstruct a video coding block based on the filtered prediction video coding block and the residual video coding block; Equipped with.

[0041] The at least one 4x4 sub-block may be one of the 4x4 sub-blocks located along the (anti-)diagonal of a current coding block partitioned into two triangular partitions.

[0042] According to an aspect of the present disclosure, an apparatus is provided for performing unidirectional motion compensation for a triangle merge mode of a coding block, of a current frame of a video signal, which is partitioned into two triangle partitions, comprising: The device is deriving, for each of the two triangle partitions, a uni-predictive motion vector (MV) based on a uni-predictive MV selection rule and a merge candidate list for a triangle merge mode; performing motion compensation for each of the two triangular partitions using a corresponding uni-predictive MV; and Obtaining a predictive coding block based on two motion compensated triangular partitions The device further comprises a processing circuit configured to:

[0043] Using only unidirectional MV for each of the triangular blocks for motion compensation may provide the advantage of efficiently performing motion compensation at low computational cost for the triangular partitioned video coding block. In other words, the coding efficiency is improved. At the same time, the memory bandwidth for motion compensation remains low. This is because, in the triangular mode, each of the two triangular blocks into which the video coding block is partitioned is motion compensated by unidirectional MV. In other words, the video coding block is motion compensated as if the bi-predictive MV for the video coding block was used.

[0044] According to an aspect of the present disclosure, the merge candidate list includes uni-predictive motion vector (MV) candidates and / or bi-predictive motion vector (MV) candidates, where the bi-predictive MV candidates include a first MV and a second MV.

[0045] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: When both the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 relate to the same reference picture, an average motion vector based on the first MV and the second MV is derived as a unidirectionally predicted MV.

[0046] Deriving a unidirectional MV from a bi-predictive MV by averaging the first and second MV when both MVs point to the same reference picture may provide the advantage of performing motion compensation for triangular blocks more accurately.

[0047] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: the first MV from REF_PIC_LIST0 is derived as a uni-predictive MV if its reference image index relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image; or If the second MV relates to a reference picture that has a temporal distance (TD1) to the current picture that is smaller than the temporal distance of the first MV, then the second MV from REF_PIC_LIST1 is derived as a uni-predictive MV. Includes.

[0048] In an implementation, the bi-predictive MVs from the merge candidate list from which the single-predictive MVs can be derived may also be stored. This may provide the advantage of fast access of the bi-predictive MVs stored for a particular triangle block that may be required for further post-processing. Thus, the coding efficiency for the triangle block may be further improved through fast access of the respective bi-predictive MVs.

[0049] Deriving a uni-predictive MV from a bi-predictive MV by using one MV with the smallest temporal distance may provide the advantage of performing motion compensation more accurately. This is because the MV of the bi-predictive MV with the smallest temporal distance has stronger temporal correlation with the reference image. Therefore, the error in motion compensation can be further minimized.

[0050] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: If the temporal distances of the first and second MVs to the current picture are equal, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, shall be derived as a uni-predictive MV. Includes.

[0051] In one exemplary embodiment, the magnitude of the MV, "mag", is calculated by dividing the components mv x and mv y It can be calculated from the sum of the squares of mag(MV)=mv x 2 +mv y 2 Here, MV=(mv x ,mv y ).

[0052] Alternatively, the magnitude may be determined according to a criterion such as the p-norm (p>0). When p=2, the p-norm becomes the common Euclidean norm. Other norms suitable for determining the magnitude of one-component or multi-component vectors, including the motion vectors of the present disclosure, may be used.

[0053] Deriving a uni-predictive MV from a bi-predictive MV by using an MV with a minimum magnitude may provide the advantage of performing motion compensation more accurately in the case where the temporal distances of the first and second MVs are the same. This is because, in addition to the temporal distance of the MV to the reference image, the magnitude of the MV is also an indicator for deriving motion information for the current video block. This means that the motion information of an MV with a smaller magnitude may be more suitable than the motion compensation of a triangular block, because the difference in motion information is smaller than that of an MV with a larger magnitude. Therefore, the motion compensation may be very accurate.

[0054] In the aforementioned aspects of the present disclosure, depending on whether the first and second MVs of the bi-predictive MV (i) refer to the same reference image, (ii) have different temporal distances, and (iii) have different magnitudes, the uni-predictive MV may be derived separately by any of the specified rules.

[0055] Deriving a uni-predictive MV from a bi-predictive MV in the following order: (i) checking whether the first and second MV point to the same reference picture, (ii) checking which temporal distance is smallest, and then finally (iii) checking which magnitude is smallest may provide the advantage of deriving the uni-predictive MV in a hierarchical, step-by-step manner from the bi-predictive MV.

[0056] The hierarchy may be determined in an order in which any of the rules (each specified in terms of an "if condition" for example) may be tested. Here, the hierarchy may be based on (1) reference images, (2) temporal distance, and (3) magnitude. Thus, a particular order of (1) to (3) may provide the advantage of deriving high-quality unidirectional MVs from bi-predictive MVs. This means that motion compensation for triangular blocks may be performed more accurately through the use of such hierarchically derived MVs.

[0057] According to an aspect of the present disclosure, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, the average motion vector based on the first MV and the second MV is derived as a unidirectionally predicted MV; or If the reference image index of the first MV relates to a reference image having a temporal distance (TD0) of the current image that is smaller than the temporal distance (TD1) of the second MV of the current image, then the first MV is derived as a uni-predictive MV; or if the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is derived as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, is derived as the uni-predictive MV candidate. Includes.

[0058] According to an aspect of the present disclosure, there is provided an encoding device (20) for encoding a coding block of a current frame of a video signal, the encoding device (20) comprising: a coding unit (204, 270) configured to code a coding block to provide a residual coding block; an inter prediction unit (244) configured to generate a predictive coding block according to the previous aspect; a reconstruction unit (214) configured to reconstruct a coding block based on the predictive coding block and the residual coding block; Equipped with.

[0059] According to an aspect of the present disclosure, there is provided a decoding device (30) for decoding a coding block of a current frame of a video signal, the decoding device (30) comprising: a decoding unit (304) configured to decode the coding block to provide a residual coding block; An inter prediction unit (344) configured to generate a predictive coding block according to any one of the previous aspects; a reconstruction unit (314) configured to reconstruct a coding block based on the predictive coding block and the residual coding block; Equipped with.

[0060] According to an aspect of the present disclosure, there is provided an encoder comprising processing circuitry for performing a method according to any one of the preceding aspects of the present disclosure.

[0061] According to an aspect of the present disclosure, there is provided a decoder comprising processing circuitry for performing a method according to any one of the preceding aspects of the present disclosure.

[0062] According to an aspect of the present disclosure, there is provided a computer program product comprising program code for performing the method according to any one of the preceding aspects of the present disclosure.

[0063] According to an aspect of the present disclosure, there is provided a decoder, the decoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to a processor and storing a program for execution by the processor, the program, when executed by the processor, configuring a decoder to perform a method according to any one of the preceding aspects of the present disclosure; Equipped with.

[0064] According to an aspect of the present disclosure, an encoder is provided, the encoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to a processor and storing a program for execution by the processor, the program, when executed by the processor, configuring the encoder to perform a method according to any one of the preceding aspects of the present disclosure; Equipped with.

[0065] The decoder and encoder according to any of the above-mentioned aspects of the present disclosure may provide the advantage of more accurate video encoding and decoding without increasing computational complexity and storage requirements. This is particularly true for inter-prediction that utilizes the derivation of unidirectional MV according to any of the above-mentioned aspects of the present disclosure.

[0066] A method of performing motion compensation using a unidirectional MV derived from a bi-predictive MV according to any of the aforementioned aspects of the present disclosure relating to a method step may provide the same advantages as the corresponding aspect relating to the apparatus.

[0067] According to an aspect, the invention relates to an apparatus for decoding a video stream, comprising a processor and a memory, the memory storing instructions for causing the processor to carry out a method according to any one of the aspects of the method described above.

[0068] According to an aspect, the invention relates to an apparatus for encoding a video stream, comprising a processor and a memory, the memory storing instructions for causing the processor to carry out a method according to any one of the aspects of the method described above.

[0069] According to an aspect, a computer-readable storage medium is proposed that stores instructions that, when executed, cause one or more processors to code video data, the instructions causing the one or more processors to perform a method according to any one of the aforementioned aspects or any possible embodiment of any one of the aforementioned aspects.

[0070] According to an aspect, the invention relates to a computer program comprising a program code for performing, when the computer program runs on a computer, the method according to any one of the preceding aspects or any possible embodiment of any one of the preceding aspects.

[0071] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will become apparent from the description, drawings, and claims. The invention may be implemented in hardware and / or software.

[0072] For purposes of clarity, any one of the above-described embodiments may be combined with any one or more of the other above-described embodiments to create new embodiments within the scope of the present disclosure.

[0073] These and other features will be clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims. [Brief description of the drawings]

[0074] Further embodiments of the invention are explained with reference to the following figures: In the following, embodiments of the invention are explained in more detail with reference to the accompanying figures and drawings. [Figure 1A] 1 is a block diagram illustrating an example of a video coding system configured to implement embodiments of the present invention. [Figure 1B]2 is a block diagram illustrating another example of a video coding system configured to implement embodiments of the present invention. [Diagram 2] 1 is a block diagram illustrating an example of a video encoder configured to implement embodiments of the present invention. [Diagram 3] 2 is a block diagram illustrating an exemplary structure of a video decoder configured to implement embodiments of the present invention. [Figure 4] 1 is a block diagram illustrating an example of an encoding device or a decoding device. [Diagram 5] FIG. 11 is a block diagram illustrating another example of an encoding device or a decoding device. [Figure 6] 1 shows a schematic diagram illustrating triangular block partitioning for inter-image prediction. [Figure 7] 1 shows a schematic diagram illustrating motion vector storage ambiguity for triangle partitions. [Figure 8] FIG. 1 shows a schematic diagram illustrating spatial locations checked for merge list derivation. [Figure 9] FIG. 1 shows a schematic diagram illustrating spatial and temporal MV locations as specified in JVET-L0124 for triangular partitions. [Figure 10] FIG. 1 shows a schematic diagram illustrating the motion vector storage proposed in JVET-L0124 for triangular partitions. [Figure 11] 1 shows a flowchart of a method for motion vector derivation. [Figure 12] 1 shows a flowchart of a method for generating a merge candidate list. [Figure 13] 1 shows a flowchart of a method for inter prediction. [Figure 14] 13 shows a flowchart of the combined stages of merge list generation, merge candidate selection, and single-prediction MV derivation. [Figure 15] 1 shows a schematic diagram illustrating motion vector storage for a triangular partition (PU0) according to a certain rule. [Figure 16]1 shows a schematic diagram illustrating motion vector storage for a triangular partition (PU1) according to a certain rule. [Figure 17] 1 shows a schematic diagram illustrating a visualization of the difference between bi-predictive motion vectors used for actual prediction (red) and bi-predictive motion vectors used for storage only (black). [Figure 18] A schematic diagram of the MV derivation device is shown. [Figure 19] A schematic diagram of the MCL generating device is shown. [Figure 20] 1 shows a schematic diagram of an inter prediction device. [Figure 21] 1 shows a schematic diagram of a decoding device. [Figure 22] 1 shows a schematic diagram of an inter prediction device. [Figure 23] 1 is a block diagram showing an example of the structure of a content supply system that provides a content distribution service. [Figure 24] 1 is a block diagram showing the structure of an example of a terminal device.In the various figures, the same reference numbers are used for identical or at least functionally equivalent features. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0075] In order to describe the present invention in detail, the following terms, abbreviations and notations are used. HEVC High Efficiency Video Coding CU coding unit CTU Coding Tree Unit PU Forecast Unit PB Predicted Block MV Motion Vector POC Image Sequence Count

[0076] In the following description, reference is made to the accompanying drawings, which form a part of this disclosure. In the accompanying drawings, there is shown, by way of example, specific aspects in which the present invention may be practiced. It is understood that other aspects may be utilized and structural or logical changes may be made without departing from the scope of the present invention. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.

[0077] For example, it is understood that disclosure related to a described method may also apply to a corresponding device or system configured to perform that method, and vice versa. For example, where certain method steps are described, a corresponding device may include units for performing the described method steps, even if such units are not explicitly described or shown. Furthermore, it is understood that features of the various exemplary aspects described herein may be combined with each other, unless specifically stated otherwise.

[0078] For example, where one or more particular method steps are described, a corresponding device may include one or more units, e.g., functional units, for performing the described method steps (e.g., one unit performing one or more steps, or multiple units each performing one or more of the multiple steps), even if such one or more units are not explicitly described or shown in the figures. On the other hand, for example, where a particular apparatus is described based on one or more units, e.g., functional units, a corresponding method may include a step for performing the function of the one or more units (e.g., one step performing the function of the one or more units, or multiple steps performing one or more functions of the multiple units, respectively), even if such one or more steps are not explicitly described or shown in the figures. Furthermore, it is understood that features of various exemplary embodiments and / or aspects described herein can be combined with each other, unless otherwise specified.

[0079] Video coding typically refers to the processing of a series of images forming a video or a video sequence. Instead of the term image, the terms "frame" or "image" may be used as synonyms in the field of video coding. Video coding (or coding in general) consists of two parts: video encoding and video decoding. Video encoding is performed at the source side and typically involves processing of the original video images (e.g., by compression) to reduce the amount of data required to represent the video image (for more efficient storage and / or transmission). Video decoding is performed at the destination side and typically involves the reverse processing compared to the encoder to reconstruct the video image. The embodiments referring to "coding" of a video image (or images in general) should be understood to relate to "encoding" or "decoding" of the video image or the respective video sequence. The combination of the encoding and decoding parts is also referred to as a codec (coding and decoding).

[0080] In the case of lossless video coding, the original video image can be reconstructed, i.e. the reconstructed video image is of the same quality as the original video image (assuming there are no transmission or other data losses during storage or transmission). In the case of lossy video coding, further compression, e.g. quantization, is performed to reduce the amount of data representing the video image that cannot be fully reconstructed at the decoder, i.e. the quality of the reconstructed video image will be lower or worse compared to the quality of the original video image.

[0081] Several video coding standards belong to the group of "lossy hybrid video codecs" (i.e., combine spatial and temporal prediction in the sample domain with 2D transform coding to apply quantization in the transform domain). Each image of a video sequence is typically partitioned into a set of non-overlapping blocks, and coding is typically performed at the block level. In other words, in the encoder, the video is typically processed, i.e., coded, at the block (video block) level, e.g., by using spatial (intra-image) prediction and / or temporal (inter-image) prediction to generate a predictive block, subtracting the predictive block from a current block (the block currently being processed / to be processed) to obtain a residual block, transforming the residual block, and quantizing the transform domain residual block to reduce (compress) the amount of data to be transmitted, and the decoder applies the inverse process compared to the encoder to the coded or compressed block to reconstruct and display the current block. Furthermore, the encoder repeats the decoder processing loop, resulting in both generating the same prediction (e.g., intra-prediction and inter-prediction) and / or reconstruction for processing, i.e., coding, the next block.

[0082] In the following embodiment of the video coding system 10, the video encoder 20 and the video decoder 30 are described based on FIGS. 1A to 3. FIG.

[0083] 1A is a schematic block diagram illustrating an example of a coding system 10 that may utilize techniques of the present application, such as video coding system 10 (or coding system 10 for short). A video encoder 20 (or encoder 20 for short) and a video decoder 30 (or decoder 30 for short) of video coding system 10 represent examples of devices that may be configured to perform techniques according to various examples described herein.

[0084] As shown in FIG. 1A, coding system 10 includes a source device 12 configured to provide encoded image data 21 to a destination device 14 for decoding, for example, the encoded image data 21.

[0085] The source device 12 includes an encoder 20 , and may additionally, i.e. optionally, include an image source 16 , a pre-processor (or pre-processing unit) 18 , for example an image pre-processor 18 , and a communications interface or unit 22 .

[0086] Image source 16 may include or be any type of image capture device, such as a camera for capturing real-world images, and / or any type of image generation device, such as a computer graphics processor for generating computer animated images, or any type of other device for obtaining and / or providing real-world images, computer-generated images (e.g., screen content, virtual reality (VR) images), and / or any combination thereof (e.g., augmented reality (AR) images). Image source may be any type of memory or storage that stores any of the above-mentioned images.

[0087] As distinct from the pre-processor 18 and the processing performed by the pre-processing unit 18 , the image or image data 17 may also be referred to as unprocessed image or unprocessed image data 17 .

[0088] The pre-processor 18 is configured to receive the (raw) image data 17 and perform pre-processing on the image data 17 to obtain a pre-processed image 19 or pre-processed image data 19. The pre-processing performed by the pre-processor 18 may include, for example, cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise removal. It can be understood that the pre-processing unit 18 may be any component.

[0089] Video encoder 20 is configured to receive pre-processed image data 19 and provide encoded image data 21 (further details are described below, eg with reference to FIG. 2).

[0090] The communications interface 22 of the source device 12 may be configured to receive the encoded image data 21 and transmit the encoded image data 21 (or any further processed version thereof) via the communications channel 13 to another device, such as the destination device 14 or any other device, for storage or direct reconstruction.

[0091] The destination device 14 includes a decoder 30 (e.g., a video decoder 30), and may additionally, i.e. optionally, include a communications interface or unit 28, a post-processor 32 (or post-processing unit 32), and a display device 34.

[0092] The communications interface 28 of the destination device 14 is configured to receive the encoded image data 21 (or any further processed version thereof), for example directly from the source device 12 or from any other source, for example a storage device, for example a storage device for encoded image data, and to provide the encoded image data 21 to a decoder 30.

[0093] The communication interface 22 and the communication interface 28 may be configured to transmit or receive the encoded image data 21 or the encoded data 13 via a direct communication link between the source device 12 and the destination device 14, e.g., a direct wired or wireless connection, or via any type of network, e.g., a wired or wireless network, or any combination thereof, or any type of private and public network, or any type of combination thereof.

[0094] The communications interface 22 may be configured, for example, to package the encoded image data 21 in an appropriate format, e.g., packets, and / or process the encoded image data using any type of transmission coding or processing for transmission over a communications link or network.

[0095] A communications interface 28, forming an equivalent of communications interface 22, may be configured to, for example, receive the transmitted data and process the transmitted data by using any type of corresponding transmission decoding or processing and / or unpackaging to obtain encoded image data 21.

[0096] Both communication interface 22 and communication interface 28 may be configured as unidirectional communication interfaces, as indicated by the arrow for communication channel 13 in FIG. 1A pointing from source device 12 to destination device 14, or as bidirectional communication interfaces, e.g., to send and receive messages, e.g., to set up connections, and to confirm and exchange communications links and / or any other information related to data transmission, e.g., encoded image data transmission.

[0097] The decoder 30 is configured to receive the encoded image data 21 and provide decoded image data 31 or a decoded image 31 (further details are described below, e.g. based on Figure 3 or Figure 5).

[0098] The post-processor 32 of the destination device 14 is configured to post-process the decoded image data 31 (also referred to as reconstructed image data), e.g., the decoded image 31, to obtain post-processed image data 33, e.g., the post-processed image 33. The post-processing performed by the post-processing unit 32 may include, for example, color format conversion (e.g., YCbCr to RGB conversion), color correction, cropping or resampling, or any other processing, for example, to prepare the decoded image data 31 for display by, for example, a display device 34.

[0099] A display device 34 of destination device 14 is configured to receive the post-processed image data 33 for displaying the image, e.g., to a user or viewer. Display device 34 may be or include any type of display, e.g., an integrated or external display or monitor, for displaying the reconstructed image. The display may include, for example, a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), a digital light processor (DLP), or any type of other display.

[0100] 1A illustrates source device 12 and destination device 14 as separate devices, an embodiment of the devices may also include both or both functionality, source device 12 or corresponding functionality, and destination device 14 or corresponding functionality. In such an embodiment, source device 12 or corresponding functionality and destination device 14 or corresponding functionality may be implemented using the same hardware and / or software or with separate hardware and / or software or any combination thereof.

[0101] As will be clear to one skilled in the art based on the description, the functionality of different units as shown in FIG. 1A or the presence and (exact) division of functionality within source device 12 and / or destination device 14 may vary depending on the actual device and application.

[0102] Each of the encoder 20 (e.g., video encoder 20) and the decoder 30 (e.g., video decoder 30) may be implemented as any of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic hardware, or any combination thereof, as shown in FIG. 1B. Where these techniques are implemented in part in software, a device may store instructions for the software in a suitable non-transitory computer-readable storage medium and execute the instructions in hardware using one or more processors to perform the techniques of this disclosure. Any of the foregoing (including hardware, software, a combination of hardware and software, etc.) may be considered to be one or more processors. Each of the video encoder 20 and the video decoder 30 may be included in one or more encoders or decoders, any of which may be incorporated into the respective device as part of an integrated encoder / decoder (codec).

[0103] The source device 12 and the destination device 14 may include any of a wide range of devices, including any type of handheld or fixed device, such as a notebook or laptop computer, a mobile phone, a smart phone, a tablet or tablet computer, a camera, a desktop computer, a set-top box, a television, a display device, a digital media player, a video gaming console, a video streaming device (such as a content service server or a content delivery server), a broadcast receiving device, a broadcast transmitting device, or the like, and may or may not use any type of operating system. In some cases, the source device 12 and the destination device 14 may be equipped for wireless communication. Thus, the source device 12 and the destination device 14 may be wireless communication devices.

[0104] In some cases, the video coding system 10 illustrated in FIG. 1A is merely an example, and the techniques of the present application may be applied to video coding settings (e.g., video encoding or video decoding) that do not necessarily include any data communication between an encoding device and a decoding device. In other examples, data is retrieved from a local memory, streamed over a network, etc. A video encoding device may encode and store data in memory, and / or a video decoding device may retrieve data from memory and decode it. In some examples, encoding and decoding are performed by devices that simply encode data into memory and / or retrieve and decode data from memory without communicating with each other.

[0105] 1B is an illustration of another example video coding system 40 including the encoder 20 of FIG. 2 and / or the decoder 30 of FIG. 3 according to an example embodiment. The system 40 can implement techniques according to various examples described herein. In the illustrated implementation, the video coding system 40 may include an imaging device 41, a video encoder 100, a video decoder 30 (and / or a video coder implemented via logic circuitry 47 of a processing unit 46), an antenna 42, one or more processors 43, one or more memory stores 44, and / or a display device 45.

[0106] As shown, imaging device 41, antenna 42, processing unit 46, logic circuitry 47, video encoder 20, video decoder 30, processor 43, memory store 44, and / or display device 45 may be in communication with one another. As described, although illustrated with both video encoder 20 and video decoder 30, video coding system 40 may include only video encoder 20 or only video decoder 30 in various examples.

[0107] As shown, in some examples, the video coding system 40 may include an antenna 42. The antenna 42 may be configured to transmit or receive, for example, an encoded bitstream of video data. Additionally, in some examples, the video coding system 40 may include a display device 45. The display device 45 may be configured to present the video data. As shown, in some examples, the logic circuitry 47 may be implemented via a processing unit 46. The processing unit 46 may include application specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, etc. The video coding system 40 may also include an optional processor 43, which may also include application specific integrated circuit (ASIC) logic, a graphics processor, a general purpose processor, etc. In some examples, the logic circuitry 47 may be implemented in hardware, or hardware dedicated to video coding, etc., and the processor 43 may be implemented in general purpose software, or an operating system, etc. Additionally, memory store 44 may be any type of memory, such as volatile memory (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), etc.) or non-volatile memory (e.g., flash memory, etc.). In a non-limiting example, memory store 44 may be implemented by a cache memory. In some examples, logic circuitry 47 may access memory store 44 (e.g., for implementing an image buffer). In other examples, logic circuitry 47 and / or processing unit 46 may include a memory store (e.g., a cache, etc.) that implements an image buffer, etc.

[0108] In some examples, video encoder 20 implemented via logic circuitry may include an image buffer (e.g., via either processing unit 46 or memory store 44) and a graphics processing unit (e.g., via processing unit 46). The graphics processing unit may be communicatively coupled to the image buffer. To embody the various modules described with respect to FIG. 2 and / or any other encoder system or subsystem described herein, the graphics processing unit may include video encoder 20 implemented via logic circuitry 47. The logic circuitry may be configured to perform various operations as described herein.

[0109] The video decoder 30 may be implemented in a manner similar to that implemented via logic circuitry 47 to embody the various modules as described with respect to the decoder 30 of FIG. 3 and / or any other decoder system or subsystem described herein. In some examples, the video decoder 30 implemented via logic circuitry may include an image buffer (e.g., via either the processing unit 46 or the memory store 44) and a graphics processing unit (e.g., via the processing unit 46). The graphics processing unit may be communicatively coupled to the image buffer. The graphics processing unit may include the video decoder 30 implemented via logic circuitry 47 to embody the various modules described with respect to FIG. 3 and / or any other decoder system or subsystem described herein.

[0110] In some examples, antenna 42 of video coding system 40 may be configured to receive an encoded bitstream of video data. As described, the encoded bitstream may include data related to encoding of video frames as described herein, such as data related to coding partitions (e.g., transform coefficients or quantized transform coefficients, optional indicators (as described), and / or data defining coding partitions), indicators, index values, mode selection data, or the like. Video coding system 40 may also include a video decoder 30 coupled to antenna 42 and configured to decode the encoded bitstream. Display device 45 is configured to present the video frames.

[0111] For ease of explanation, embodiments of the present invention are described herein with reference to, for example, High Efficiency Video Coding (HEVC) or Versatile Video Coding (VVC) reference software, the next generation video coding standards developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Collaboration Team on Video Coding (JCT-VC) of the ISO / IEC Motion Picture Experts Group (MPEG). Those skilled in the art will appreciate that embodiments of the present invention are not limited to HEVC or VVC. Encoder and encoding method

[0112] FIG. 2 shows a schematic block diagram of an exemplary video encoder 20 configured to implement the techniques of the present application. In the example of FIG. 2, the video encoder 20 includes an input unit 201 (or an input interface 201), a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, and an inverse transform processing unit 212, a reconstruction unit 214, a loop filter unit 220, a decoded picture buffer (DPB) 230, a mode selection unit 260, an entropy coding unit 270, and an output unit 272 (or an output interface 272). The mode selection unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a partitioning unit 262. The inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). The video encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder with a hybrid video codec.

[0113] The residual calculation unit 204, the transform processing unit 206, the quantization unit 208, and the mode selection unit 260 may be referred to as forming a forward signal path of the encoder 20, and the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 may be referred to as forming a backward signal path of the video encoder 20, where the backward signal path of the video encoder 20 corresponds to the signal path of the decoder (see the video decoder 30 of FIG. 3). The inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter prediction unit 244, and the intra prediction unit 254 are also referred to as forming a “built-in decoder” of the video encoder 20. Image and Image Partitioning (Image and Block)

[0114] The encoder 20 may for example be configured to receive, via an input 201, an image 17 (or image data 17), for example an image of a sequence of images forming a video or a video sequence. The received image or image data may also be a preprocessed image 19 (or preprocessed image data 19). For the sake of brevity, the following description relates to the image 17. The image 17 may also be referred to as a current image (particularly in video coding, to distinguish a current image from other images, for example previously coded and / or decoded images, of the same video sequence, i.e. a video sequence that also includes the current image) or as a picture to be coded.

[0115] A (digital) image is or may be considered as a two-dimensional array or matrix of samples with intensity values. The samples in the array may also be referred to as pixels (short for picture element) or pels. The number of samples in the horizontal and vertical directions (or axes) of the array or image defines the size and / or resolution of the image. To represent color, typically three color components are used, i.e. an image may be represented or may contain three sample arrays. In an RBG format or color space, an image contains corresponding red, green, and blue sample arrays. However, in video coding, each pixel is typically represented in a luminance / chrominance format or color space, such as YCbCr, which consists of a luminance component denoted Y (sometimes L is used instead) and two chrominance components denoted Cb and Cr. The luminance (or luma for short) component Y represents the brightness or intensity of the gray level (e.g., as in a grayscale image), and the two chrominance (or chroma for short) components Cb and Cr represent the chromaticity or color information components. Thus, an image in YCbCr format contains a luminance sample array of luminance sample values ​​(Y) and two chrominance sample arrays of chrominance values ​​(Cb and Cr). An image in RGB format can be converted or transformed into YCbCr format and vice versa, a process also referred to as color conversion or transformation. If an image is monochromatic, the image may consist of only a luminance sample array. Thus, an image may be, for example, an array of luma samples in a monochromatic format, or an array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 color formats.

[0116] An embodiment of the video encoder 20 may include an image partitioning unit (not shown in FIG. 2 ) configured to partition the image 17 into multiple (typically non-overlapping) image blocks 203. These blocks may also be referred to as root blocks, macroblocks (H.264 / AVC) or coding tree blocks (CTBs) or coding tree units (CTUs) (H.265 / HEVC and VVC). The image partitioning unit may be configured to use the same block size for all images of the video sequence and corresponding grid that defines the block size, or to vary the block size between images or subsets or groups of images, and to partition each image into corresponding blocks.

[0117] In a further embodiment, the video encoder may be configured to directly receive a block 203 of the image 17 (e.g., one, several, or all of the blocks forming the image 17). The image block 203 may also be referred to as a current image block or an image block to be coded.

[0118] Similar to the image 17, the image block 203 can also be or be considered as a two-dimensional array or matrix of samples having intensity values ​​(sample values), although with smaller dimensions than the image 17. In other words, the block 203 can include, for example, one sample array (e.g., a luma array for a monochromatic image 17, or a luma or chroma array for a color image), or three sample arrays (e.g., a luma and two chroma arrays for a color image 17), or any other number and / or type of arrays depending on the color format applied. The number of samples in the horizontal and vertical directions (or axes) of the block 203 defines the size of the block 203. Thus, the block can be, for example, an M×N (M columns×N rows) array of samples, or an M×N array of transformation coefficients.

[0119] 2 may be configured to encode the image 17 on a block-by-block basis, for example, encoding and prediction may be performed on a block-by-block basis. Residual calculation

[0120] The residual calculation unit 204 may be configured to calculate a residual block 205 (also referred to as residual 205) based on the image block 203 and the prediction block 265 (further details about the prediction block 265 are described later), for example, by subtracting sample values ​​of the prediction block 265 from sample values ​​of the image block 203 to obtain the residual block 205 in the sample domain on a sample-by-sample (pixel-by-pixel) basis. conversion

[0121] The transform processing unit 206 may be configured to apply a transform, such as a discrete cosine transform (DCT) or a discrete sine transform (DST), to the sample values ​​of the residual block 205 to obtain transform coefficients 207 in a transform domain. The transform coefficients 207 may also be referred to as transform residual coefficients and represent the residual block 205 in the transform domain.

[0122] The transform processing unit 206 may be configured to apply an integer approximation of a DCT / DST, such as the transform specified for H.265 / HEVC. Compared to an orthonormal DCT transform, such an integer approximation is typically scaled by a certain factor. To preserve the norm of the residual block processed by the forward transform and the inverse transform, an additional scaling factor is applied as part of the transform process. The scaling factor is typically selected based on certain constraints, such as a scaling factor that is a power of two of the shift operation, a bit depth of the transform coefficients, a trade-off between accuracy and implementation cost, etc. For example, a certain scaling factor may be specified for the inverse transform, e.g., by the inverse transform processing unit 212 (and a corresponding inverse transform, e.g., by the inverse transform processing unit 312 in the video decoder 30), and a corresponding scaling factor for the forward transform, e.g., by the transform processing unit 206 in the encoder 20, may be specified accordingly.

[0123] An embodiment of video encoder 20 (respectively transform processing unit 206) may be configured to output transform parameters, e.g., a type of transform or multiple transforms, either directly or encoded or compressed via entropy coding unit 270. As a result, for example, video decoder 30 may receive and use the transform parameters for decoding. quantization

[0124] The quantization unit 208 may be configured to quantize the transform coefficients 207, for example by applying scalar quantization or vector quantization, to obtain quantized coefficients 209. The quantized coefficients 209 may also be referred to as quantized transform coefficients 209 or quantized residual coefficients 209.

[0125] The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207. For example, an n-bit transform coefficient may be truncated to an m-bit transform coefficient during quantization (n is greater than m). The degree of quantization may be modified by adjusting a quantization parameter (QP). For example, in the case of scalar quantization, different scaling may be applied to achieve finer or coarser quantization. A smaller quantization step size corresponds to a finer quantization and a larger quantization step size corresponds to a coarser quantization. The applicable quantization step sizes may be indicated by a quantization parameter (QP). The quantization parameter may be, for example, an index into a predefined set of applicable quantization step sizes. For example, a small quantization parameter may correspond to fine quantization (small quantization step size) and a large quantization parameter may correspond to coarse quantization (large quantization step size), or vice versa. Quantization may include division by a quantization step size, and corresponding and / or inverse inverse quantization by, for example, the inverse quantization unit 210 may include multiplication by the quantization step size. Some standards, for example, HEVC, embodiments may be configured to use a quantization parameter to determine the quantization step size. In general, the quantization step size may be calculated based on the quantization parameter using a fixed-point approximation of a mathematical formula that includes division. To recover the norm of the residual block, an additional scaling factor may be introduced in the quantization and inverse quantization, which may change due to the scaling used in the fixed-point approximation of the mathematical formula of the quantization step size and the quantization parameter. In one implementation, the scaling of the inverse transform and the inverse quantization may be combined. Alternatively, customized quantization tables may be used and may be signaled, for example, in the bitstream, from the encoder to the decoder. Quantization is a lossy operation, and the loss increases with increasing quantization step size.

[0126] An embodiment of video encoder 20 (respectively quantization unit 208) may be configured to encode and output a quantization parameter (QP), e.g., directly or via entropy coding unit 270. As a result, video decoder 30, for example, may receive and apply the quantization parameter for decoding. inverse quantization

[0127] The inverse quantization unit 210 is configured to apply the inverse quantization of the quantization unit 208 to the quantized coefficients to obtain inverse quantized coefficients 211, e.g., by applying the inverse of the quantization scheme applied by the quantization unit 208, e.g., based on or using the same quantization step size as the quantization unit 208. The inverse quantized coefficients 211 may also be referred to as inverse quantized residual coefficients 211, and typically correspond to the transform coefficients 207, although they are not identical to the transform coefficients due to losses due to quantization. Inverse transformation

[0128] The inverse transform processing unit 212 is configured to apply an inverse transform of the transform applied by the transform processing unit 206, such as an inverse discrete cosine transform (DCT) or an inverse discrete sine transform (DST) or other inverse transform, to obtain a reconstructed residual block 213 (or corresponding dequantized coefficients 213) in the sample domain. The reconstructed residual block 213 may also be referred to as a transform block 213. Rebuild

[0129] The reconstruction unit 214 (e.g., an adder or adder 214) is configured to add the transform block 213 (i.e., the reconstructed residual block 213) to the prediction block 265 to obtain the reconstructed block 215 in the sample domain, for example, by adding, sample by sample, the sample values ​​of the reconstructed residual block 213 and the sample values ​​of the prediction block 265. filtering

[0130] Loop filter unit 220 (or “loop filter” 220 for short) is configured to filter reconstruction block 215 to obtain filtered block 221, or in general, to filter reconstructed samples to obtain filtered samples. The loop filter unit is configured, for example, to smooth pixel transitions or otherwise improve video quality. Loop filter unit 220 may include one or more loop filters, such as a deblocking filter, a sample adaptive offset (SAO) filter, or one or more other filters, such as a bilateral filter, an adaptive loop filter (ALF), a sharpening, smoothing filter, or a collaborative filter, or any combination thereof. Although loop filter unit 220 is illustrated in FIG. 2 as being within a loop filter, in other configurations, loop filter unit 220 may be implemented as a post-loop filter. Filtered block 221 may also be referred to as filtered reconstruction block 221. After loop filter unit 220 performs a filtering operation on the reconstructed coding block, decoded image buffer 230 may store the reconstructed coding block.

[0131] Embodiments of video encoder 20 (respectively loop filter unit 220) may be configured to output loop filter parameters (such as sample adaptive offset information), e.g., directly or via entropy coding unit 270, such that decoder 30, for example, may receive and apply the same loop filter parameters or respective loop filters for decoding. Decoded Image Buffer

[0132] The decoded picture buffer (DPB) 230 may be a memory that stores reference pictures, or generally reference image data, for encoding video data by the video encoder 20. The DPB 230 may be formed by any of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer (DPB) 230 may be configured to store one or more filtered blocks 221. The decoded picture buffer 230 may further be configured to store other previously filtered blocks, e.g., previously reconstructed and filtered blocks 221, of the same current picture or a different picture, e.g., of previously reconstructed pictures, and may provide a fully previously reconstructed, i.e., decoded picture (and corresponding reference blocks and samples) and / or a partially reconstructed current picture (and corresponding reference blocks and samples), e.g., for inter prediction. The decoded picture buffer (DPB) 230 may also be configured to store one or more unfiltered reconstruction blocks 215, for example if the reconstruction blocks 215 have not been filtered by the loop filter unit 220, or, in general, unfiltered reconstructed samples, or any other further processed version of the reconstructed blocks or samples. Mode Selection (Partitioning and Prediction)

[0133] The mode selection unit 260 includes a partitioning unit 262, an inter prediction unit 244 and an intra prediction unit 254, and is configured to receive or obtain original image data, e.g., an original block 203 (current block 203 of current image 17), and reconstructed image data, e.g., filtered and / or unfiltered reconstructed samples or blocks of the same (current) image and / or one or more previously decoded images, e.g., from a decoded image buffer 230 or other buffer (e.g., a line buffer, not shown). The reconstructed image data is used as reference image data for prediction, e.g., inter prediction or intra prediction, to obtain a prediction block 265 or a predictor 265.

[0134] The mode selection unit 260 may be configured to determine or select partitioning for a current block prediction mode (not including partitioning) and a prediction mode (e.g., intra or inter prediction mode) and generate a corresponding prediction block 265 used for calculation of the residual block 205 and reconstruction of the reconstruction block 215.

[0135] An embodiment of the mode selection unit 260 may be configured to select a partitioning and prediction mode (e.g., from those supported by or available to the mode selection unit 260) that provides the best match, in other words, the smallest residual (which means a high compression ratio for transmission or storage), or the smallest signaling overhead (which means a high compression ratio for transmission or storage), or that considers or balances both. The mode selection unit 260 may be configured to determine the partitioning and prediction mode based on rate-distortion optimization (RDO), i.e., to select the prediction mode that provides the smallest rate-distortion. Terms such as "best," "minimum," "optimum," and the like in this context do not necessarily refer to an overall "best," "minimum," "optimum," and the like, but may also refer to the achievement of a termination or selection criterion, such as values ​​above or below a threshold, or other constraints that may lead to a "suboptimal selection," but reduce complexity and processing time.

[0136] In other words, the partitioning unit 262 may be configured to partition the block 203 into smaller block partitions or sub-blocks (reforming the block) using, for example, quad-tree partitioning (QT), binary partitioning (BT), or triple-tree partitioning (TT), or any combination thereof in an iterative manner, and perform, for example, prediction on each of the block partitions or sub-blocks, where the mode selection includes selecting a tree structure of the partitioned block 203, and a prediction mode is applied to each of the block partitions or sub-blocks.

[0137] Below, the partitioning (eg, by partitioning unit 260) and prediction processes (by inter prediction unit 244 and intra prediction unit 254) performed by example video encoder 20 are described in more detail. Partitioning

[0138] The partitioning unit 262 may partition (or divide) the current block 203 into smaller partitions, e.g., smaller blocks of square or rectangular size. These smaller blocks (which may also be referred to as sub-blocks) may be further partitioned into even smaller partitions. This is also referred to as tree partitioning, or hierarchical tree partitioning. Here, the root block may be partitioned recursively, e.g., at the root tree level 0 (hierarchical level 0, depth 0), into two or more blocks at the next lower tree level, e.g., nodes at tree level 1 (hierarchical level 1, depth 1), where these blocks may be partitioned again into two or more blocks at the next lower level, e.g., tree level 2 (hierarchical level 2, depth 2), etc., until the partitioning is terminated, e.g., because a termination criterion is achieved, e.g., a maximum tree depth or a minimum block size is reached. Blocks that are not further partitioned are also referred to as leaf blocks or leaf nodes of the tree. A tree that uses a partitioning into two partitions is called a binary tree (BT), a tree that uses a partitioning into three partitions is called a ternary tree (TT), and a tree that uses a partitioning into four partitions is called a quad tree (QT).

[0139] As mentioned above, the term "block" used in this specification may be a part of an image, in particular a square or rectangular part. For example, referring to HEVC and VVC, a block may be or may correspond to a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU), and / or may correspond to a corresponding block, such as a coding tree block (CTB), a coding block (CB), a transform block (TB), or a prediction block (PB).

[0140] For example, a coding tree unit (CTU) may be or include a CTB of luma samples, two corresponding CTBs of chroma samples of an image with three sample arrays, or a CTB of a monochromatic image or a sample of an image coded using three separate color planes and syntax structures used to code the samples. Correspondingly, a coding tree block (CTB) may be an N×N block of samples for some value N such that the division of the components into CTBs is a partition. A coding unit (CU) may be or include a coding block of luma samples, two corresponding coding blocks of chroma samples of an image with three sample arrays, or a coding block of samples of a monochromatic image or a sample of an image coded using three separate color planes and syntax structures used to code the samples. Correspondingly, a coding block (CB) may be an M×N block of samples for some values ​​M and N such that the division of the CTB into coding blocks is a partition.

[0141] For example, in an embodiment according to HEVC, by using a quad-tree structure, denoted as a coding tree, a coding tree unit (CTU) can be divided into CUs. The decision of whether to code an image region with inter-image (temporal) prediction or intra-image (spatial) prediction is made at the CU level. Each CU can be further divided into one, two, or four PUs according to a PU partition type. Inside one PU, the same prediction process is applied, and related information is sent to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU partition type, the CU can be partitioned into transform units (TUs) according to another quad-tree structure similar to the coding tree for the CU.

[0142] For example, in an embodiment according to the latest video coding standard currently being developed, called Versatile Video Coding (VVC), quad-tree and binary tree (QTBT) partitioning is used to partition the coding block. In the QTBT block structure, the CUs can have either a square or rectangular shape. For example, the coding tree unit (CTU) is first partitioned by a quad-tree structure. The quad-tree leaf node is further partitioned by a binary tree or a ternary (or triple) tree structure. The partitioning tree leaf node is called the coding unit (CU), and its segmentation is used for prediction and transformation processes without any further partitioning. This means that in the QTBT coding block structure, the CU, PU, ​​and TU have the same block size. In parallel, it has also been proposed to use multiple partitionings, for example, triple-tree partitioning with the QTBT block structure.

[0143] In one example, mode selection unit 260 of video encoder 20 may be configured to perform any combination of the partitioning techniques described herein.

[0144] As mentioned above, video encoder 20 is configured to determine or select a best or optimal prediction mode from a (predetermined) set of prediction modes, which may include, for example, intra-prediction modes and / or inter-prediction modes. Intra prediction

[0145] The set of intra prediction modes may include 35 different intra prediction modes, e.g., omnidirectional modes such as DC (or average) mode and planar mode, or directional modes, e.g., as defined in HEVC, or may include 67 different intra prediction modes, e.g., omnidirectional modes such as DC (or average) mode and planar mode, or directional modes, e.g., as defined for VVC.

[0146] The intra prediction unit 254 is configured to generate an intra prediction block 265 according to an intra prediction mode of the set of intra prediction modes using reconstructed samples of neighboring blocks of the same current image.

[0147] Intra prediction unit 254 (or generally, mode selection unit 260) is further configured to output intra prediction parameters (or generally, information indicating the selected intra prediction mode for the block) in the form of syntax element 266 to entropy encoding unit 270 for inclusion in encoded image data 21. As a result, for example, video decoder 30 may receive and use the prediction parameters for decoding. Inter Prediction

[0148] The set (or possibilities) of inter prediction modes, e.g., whether the entire reference image or only a part of it, e.g., whether a search window region around the region of the current block of the reference image is used to search for the best matching reference block, and / or, e.g., whether pixel interpolation is applied, e.g., 1 / 2 / half-pel and / or 1 / 4-pel interpolation, depends on the available reference images (i.e., images previously at least partially decoded, e.g., stored in DBP 230) and other inter prediction parameters. In addition to the prediction modes mentioned above, skip mode and / or direct mode may be applied.

[0149] The inter prediction unit 244 may include a motion estimation (ME) unit and a motion compensation (MC) unit (both not shown in FIG. 2). The motion estimation unit may be configured to receive or obtain the image block 203 (the current image block 203 of the current image 17) and the decoded image 231, or at least one or more previously reconstructed blocks, e.g., reconstructed blocks of one or more other / different previously decoded images 231, for motion estimation. For example, a video sequence may include the current image and the previously decoded image 231, or in other words, the current image and the previously decoded image 231 may be part of or form a series of images forming a video sequence.

[0150] The encoder 20 may be configured, for example, to select a reference block from a number of reference blocks of the same or different ones of a number of other images, and provide the reference image (or reference image index) and / or an offset (spatial offset) between the position (x, y coordinates) of the reference block and the position of the current block as an inter prediction parameter to the motion estimation unit, which offset is also referred to as a motion vector (MV).

[0151] The motion compensation unit is configured to obtain, e.g., receive, inter prediction parameters and perform inter prediction based on or using the inter prediction parameters to obtain an inter prediction block 265. The motion compensation performed by the motion compensation unit may include fetching or generating a prediction block based on a motion / block vector determined by motion estimation, and may perform interpolation with sub-pixel accuracy. Interpolation filtering may generate additional pixel samples from known pixel samples, thus increasing the number of candidate prediction blocks that may be used to code the image block. When the motion compensation unit receives a motion vector for a PU of the current image block, it may find a prediction block to which the motion vector points in one of the reference image lists.

[0152] The motion compensation unit may also generate syntax elements associated with the blocks and video slices for use by video decoder 30 in decoding the image blocks of the video slices. Entropy Coding

[0153] The entropy encoding unit 270 is configured to, for example, apply an entropy encoding algorithm or scheme (e.g., a variable length coding (VLC) scheme, a context-adaptive VLC scheme (CAVLC), an arithmetic coding scheme, binarization, context-adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy encoding method or technique) or bypass (no compression) to the quantized coefficients 209, the inter-prediction parameters, the intra-prediction parameters, the loop filter parameters, and / or other syntax elements to obtain encoded image data 21 that can be output via an output unit 272, for example in the form of an encoded bitstream 21, so that, for example, the video decoder 30 may receive and use the parameters for decoding. The encoded bitstream 21 may be transmitted to the video decoder 30 or may be stored in a memory for later transmission or retrieval by the video decoder 30.

[0154] Other structural variations of the video encoder 20 can be used to encode the video stream. For example, a non-transform-based encoder 20 can directly quantize the residual signal without involving the transform processing unit 206 for a particular block or frame. In another implementation, the encoder 20 can have the quantization unit 208 and the inverse quantization unit 210 combined into a single unit. Decoder and decoding method

[0155] 3 shows an example of a video decoder 30 configured to implement the techniques of the present application. The video decoder 30 is configured to receive encoded image data 21 (e.g., encoded bitstream 21), e.g., encoded by encoder 20, to obtain a decoded image 331. The encoded image data or bitstream includes information for decoding the encoded image data, e.g., data representing image blocks of encoded video slices and associated syntax elements.

[0156] 3, the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., an adder 314), a loop filter 320, a decoded picture buffer (DBP) 330, an inter prediction unit 344, and an intra prediction unit 354. The inter prediction unit 344 may be or may include a motion compensation unit. The video decoder 30 may, in some examples, perform a decoding path that is generally inverse to the encoding path described with respect to the video encoder 100 of FIG. 2.

[0157] As described with respect to encoder 20, inverse quantization unit 210, inverse transform processing unit 212, reconstruction unit 214, loop filter 220, decoded picture buffer (DPB) 230, inter prediction unit 344, and intra prediction unit 354 are also referred to as forming a “built-in decoder” of video encoder 20. Thus, inverse quantization unit 310 may be identical in function to inverse quantization unit 110, inverse transform processing unit 312 may be identical in function to inverse transform processing unit 212, reconstruction unit 314 may be identical in function to reconstruction unit 214, loop filter 320 may be identical in function to loop filter 220, and decoded picture buffer 330 may be identical in function to decoded picture buffer 230. Thus, the descriptions provided for the respective units and functions of video encoder 20 apply correspondingly to the respective units and functions of video decoder 30. Entropy Decoding

[0158] The entropy decoding unit 304 is configured to parse the bitstream 21 (or the coded image data 21 in general) and perform, e.g., entropy decoding on the coded image data 21 to obtain, e.g., quantized coefficients 309 and / or decoded coding parameters (not shown in FIG. 3), e.g., any or all inter prediction parameters (e.g., reference image index and motion vectors), intra prediction parameters (e.g., intra prediction mode or index), transform parameters, quantization parameters, loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 may be configured to apply a decoding algorithm or scheme corresponding to an encoding scheme described in connection with the entropy encoding unit 270 of the encoder 20. The entropy decoding unit 304 may further be configured to provide the inter prediction parameters, intra prediction parameters, and / or other syntax elements to the mode selection unit 360 and other parameters to other units of the decoder 30. The video decoder 30 may receive syntax elements at a video slice level and / or at a video block level. inverse quantization

[0159] Inverse quantization unit 310 may be configured to receive a quantization parameter (QP) (or generally, information related to inverse quantization) and quantized coefficients from encoded image data 21 (e.g., by parsing and / or decoding by entropy decoding unit 304), and apply inverse quantization to the decoded quantized coefficients 309 based on the quantization parameter to obtain inverse quantized coefficients 311, which may also be referred to as transform coefficients 311. The inverse quantization process may include use of the quantization parameter determined by video encoder 20 for each video block in a video slice to determine the degree of quantization, and similarly, the degree of inverse quantization to be applied. Inverse transformation

[0160] The inverse transform processing unit 312 may be configured to receive the inverse quantized coefficients 311, also referred to as transform coefficients 311, and apply a transform to the inverse quantized coefficients 311 to obtain the reconstructed residual block 213 in the sample domain. The reconstructed residual block 213 may also be referred to as a transform block 313. The transform may be an inverse transform, for example an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transform process. The inverse transform processing unit 312 may further be configured to receive transform parameters or corresponding information from the coded image data 21 (e.g., by analysis and / or decoding, e.g., by the entropy decoding unit 304) and determine a transform to be applied to the inverse quantized coefficients 311. Rebuild

[0161] The reconstruction unit 314 (e.g., an adder or adder 314) may be configured to add the reconstructed residual block 313 to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, for example by adding sample values ​​of the reconstructed residual block 313 and sample values ​​of the prediction block 365. filtering

[0162] A loop filter unit 320 (either during the coding loop or after the coding loop) is configured to filter the reconstruction block 315 to obtain a filtered block 321, e.g., to smooth pixel transitions or otherwise improve video quality. The loop filter unit 320 may include one or more loop filters, such as a deblocking filter, a sample adaptive offset (SAO) filter, or one or more other filters, e.g., a bilateral filter, an adaptive loop filter (ALF), a sharpening, a smoothing filter, or a collaborative filter, or any combination thereof. Although the loop filter unit 320 is illustrated in FIG. 3 as being within the loop filter, in other configurations, the loop filter unit 320 may be implemented as a post-loop filter. Decoded Image Buffer

[0163] The decoded video block 321 of the image is then stored in a decoded image buffer 330 which stores the decoded image 331 as a reference image for subsequent motion compensation for other images and / or output for the respective display.

[0164] The decoder 30 is arranged to output the decoded image 311, for example via an output 312, for presentation or viewing to a user. prediction

[0165] The inter prediction unit 344 may be identical to the inter prediction unit 244 (in particular the motion compensation unit), and the intra prediction unit 354 may be functionally identical to the inter prediction unit 254 and performs the partitioning or partitioning decision and prediction based on the partitioning and / or prediction parameters or respective information received from the encoded image data 21 (e.g., by analysis and / or decoding by the entropy decoding unit 304). The mode selection unit 360 may be configured to perform prediction (intra or inter prediction) for each block based on the reconstructed image, block, or respective samples (filtered or unfiltered) to obtain a prediction block 365.

[0166] When the video slice is coded as an intra-coded (I) slice, the intra prediction unit 354 of the mode selection unit 360 is configured to generate a prediction block 365 for an image block of the current video slice based on the signaled intra prediction mode and data from a previously decoded block of the current image. When the video image is coded as an inter-coded (i.e., B or P) slice, the inter prediction unit 344 (e.g., a motion compensation unit) of the mode selection unit 360 is configured to generate a prediction block 365 for a video block of the current video slice based on the motion vector and other syntax elements received from the entropy decoding unit 304. In inter prediction, the prediction block may be generated from one of the reference images included in one of the reference image lists. The video decoder 30 may construct the reference frame lists, List 0 and List 1, based on the reference images stored in the DPB 330 using a default construction technique.

[0167] Mode selection unit 360 is configured to determine prediction information for the video blocks of the current video slice by parsing the motion vectors and other syntax elements, and use the prediction information to generate predictive blocks for the current video block to be decoded. For example, mode selection unit 360 uses some of the received syntax elements to determine a prediction mode (e.g., intra or inter prediction) used to code the video blocks of the video slice, an inter-prediction slice type (e.g., a B slice, a P slice, or a GPB slice), construction information of one or more of the reference image lists for the slice, motion vectors for each of the inter-coded video blocks of the slice, inter-prediction status for each of the inter-coded video blocks of the slice, and other information for decoding the video blocks in the current video slice.

[0168] Other variations of the video decoder 30 may be used to decode the encoded image data 21. For example, the decoder 30 may generate an output video stream without using a loop filtering unit 320. For example, a non-transform-based decoder 30 may directly inverse quantize the residual signal without using an inverse transform processing unit 312 for a particular block or frame. In another implementation, the video decoder 30 may combine the inverse quantization unit 310 and the inverse transform processing unit 312 into a single unit.

[0169] 4 is a schematic diagram of a video coding device 400 according to an embodiment of the present disclosure. The video coding device 400 is suitable for implementing the disclosed embodiments as described herein. In an embodiment, the video coding device 400 may be a decoder, such as the video decoder 30 of FIG. 1A, or an encoder, such as the video encoder 20 of FIG. 1A.

[0170] Video coding device 400 includes an ingress port 410 (or input port 410) and a receiver unit (Rx) 420 for receiving data, a processor, logic unit, or central processing unit (CPU) 430 for processing data, a transmitter unit (Tx) 440 and an egress port 450 (or output port 450) for transmitting data, and a memory 460 for storing data. Video coding device 400 may also include optical-to-electrical (OE) and electrical-to-optical (EO) conversion components for the egress or ingress of optical or electrical signals coupled to the ingress port 410, the receiver unit 420, the transmitter unit 440, and the egress port 450.

[0171] The processor 430 is implemented by hardware and software. The processor 430 may be implemented as one or more CPU chips, cores (e.g., multi-core processors), FPGAs, ASICs, and DSPs. The processor 430 communicates with the ingress port 410, the receiver unit 420, the transmitter unit 440, the egress port 450, and the memory 460. The processor 430 includes a coding module 470. The coding module 470 implements the above disclosed embodiments. For example, the coding module 470 implements, processes, prepares, or provides various coding operations. Thus, the inclusion of the coding module 470 provides a significant improvement in the functionality of the video coding device 400, resulting in the transformation of the video coding device 400 into different states. Alternatively, the coding module 470 is implemented as instructions stored in the memory 460 and executed by the processor 430.

[0172] Memory 460 may include one or more disks, tape drives, and solid state drives, and may be used as an overflow data storage device for storing programs when they are selected for execution, and for storing instructions and data loaded during program execution. Memory 460 may be, for example, volatile and / or non-volatile, and may be read-only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and / or static random access memory (SRAM).

[0173] 5 is a simplified block diagram of an apparatus 500 that may be used as either or both of the source device 12 and the destination device 14 of FIG. 1A according to an exemplary embodiment. The apparatus 500 may implement the techniques of the present application described above. The apparatus 500 may be in the form of a computing system including multiple computing devices, or in the form of a single computing device, such as a mobile phone, a tablet computer, a laptop computer, a notebook computer, and a desktop computer.

[0174] The processor 502 in the device 500 may be a central processing unit. Alternatively, the processor 502 may be any other type of device or devices, existing or later developed, capable of manipulating or processing information. Although the disclosed implementations may be implemented with a single processor as shown, such as the processor 502, advantages in speed and efficiency may be achieved using more than one processor.

[0175] The memory 504 in the device 500 may be a read-only memory (ROM) device or a random access memory (RAM) device in implementation. Any other suitable type of storage device may be used as the memory 504. The memory 504 may include code and data 506 that is accessed by the processor 502 using a bus 512. The memory 504 may further include an operating system 508 and application programs 510, which include at least one program that causes the processor 502 to perform the methods described herein. For example, the application programs 510 may include applications 1-N, which further include a video coding application that performs the methods described herein. The device 500 may also include additional memory in the form of a secondary storage 514, which may be, for example, a memory card used with a mobile computing device. Because a video communication session may include a large amount of information, it may be stored in whole or in part in the secondary storage 514 and loaded into the memory 504 for processing as needed.

[0176] The device 500 may also include one or more output devices, such as a display 518. In one example, the display 518 may be a touch-sensitive display that combines a display with a touch-sensitive element operable to detect touch input. The display 518 may be coupled to the processor 502 via the bus 512. In addition to or as an alternative to the display 518, other output devices may be provided that enable a user to program or otherwise use the device 500. When the output device is or includes a display, the display may be implemented in a variety of ways, including a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, or a light emitting diode (LED) display, such as an organic LED (OLED) display.

[0177] The device 500 may also include or be in communication with an image sensing device 520, such as a camera or any other existing or later developed image sensing device 520 capable of sensing images, such as an image of a user operating the device 500. The image sensing device 520 may be positioned to face the user operating the device 500. In an example, the position and optical axis of the image sensing device 520 may be configured such that it is directly adjacent to the display 518 and has a field of view that includes the area from which the display 518 can be viewed.

[0178] Apparatus 500 may also include or be in communication with a sound sensing device 522, such as a microphone or any other existing or later developed sound sensing device capable of detecting sounds proximate apparatus 500. Sound sensing device 522 may be positioned to face a user operating apparatus 500 and may be configured to receive sounds, such as speech or other vocalizations by the user, while the user is operating apparatus 500.

[0179] 5 depicts the processor 502 and memory 504 of device 500 as integrated into a single unit, other configurations may be utilized. The operations of processor 502 may be directly coupled or distributed across multiple machines (each machine having one or more processors) across a local area or other network. Memory 504 may be distributed across multiple machines, such as a network-based memory or memory in multiple machines that perform the operations of device 500. Although shown here as a single bus, bus 512 of device 500 may be comprised of multiple buses. Additionally, secondary storage 514 may be directly coupled to other components of device 500 or may be accessed over a network, and may include a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. Thus, device 500 may be implemented in a wide variety of configurations.

[0180] In the embodiment shown in FIG. 2, encoding device 20 (or encoder 20) includes a partitioning unit 262 configured to partition a video coding block into two or more triangular segments, including a first triangular segment and a second triangular segment.

[0181] Furthermore, the encoding device 20 includes an inter prediction unit 244. The decoding device 30 includes an inter prediction unit 344. In general, the inter prediction unit 244 may be configured to perform motion estimation, motion compensation to select motion data including selected reference images, motion vectors, mode decisions, and other information. In general, the inter prediction unit 344 may be configured to perform motion compensation. In one example, each triangular prediction unit in a CU has its own uni-predictive or bi-predictive motion vector, and one or more reference frame indexes derived from a motion candidate list. In one example, triangular partitioning is applied only to motion compensation prediction. This means that the transformation and quantization process is applied to the entire CU formed by combining two triangles together. Details will be described later.

[0182] The following describes in detail the triangular partitioning and the derivation of the uni-predictive motion vector from the bi-predictive motion vector. The result is to obtain a predictive coding block (including motion compensation) from two triangular blocks of an image block.

[0183] It is known that triangle / geometry block partitioning may have a larger impact on memory bandwidth requirements when performing motion compensation. Typically, the motion vector associated with a triangle / geometry partition (referred to as PU0 or PU1, see FIG. 6) is used to fetch a rectangular block of samples from a reference image in the same manner as is performed for a normal inter-prediction block in conventional video coding. Then, typically, a per-sample mask associated with the rectangular block keeps only samples related to the current triangle / geometry partition, and discards those outside the current triangle / geometry partition. As a result, if both triangles / geometry partitions are using bi-prediction, four motion compensation stages need to be performed.

[0184] Therefore, it is argued that triangular / geometric partitions are limited to performing only one-way prediction, which means that the video coding block is treated as if the entire block is predicted in a bi-predictive manner. This restriction not only reduces the coding efficiency of triangular / geometric inter-prediction modes, but may also have adverse effects on spatial or temporal neighboring blocks that use motion information of triangular partitions for prediction.

[0185] The following embodiments provide methods and apparatus for deriving motion vectors and / or generating merge candidate lists and / or performing inter prediction and / or motion compensation for triangle blocks using single-predictive motion vectors for triangle merge mode, where a video coding block is partitioned into two triangle block partitions.

[0186] FIG. 6 shows an example of a square video coding block intended for inter prediction. Alternatively, the video block may be rectangular. As a result of partitioning the video coding block along a diagonal or opposite corner as shown in FIG. 6, the video block is divided into two triangular blocks, such as PU0 and PU1. Blocks PU0 and PU1 may then refer to the lower left and upper right triangular portions and the upper left and lower right triangular portions of the video block, respectively. The terms video block and video coding block are used synonymously.

[0187] The generation of the candidate list may be performed according to techniques known in the art or a new approach, which may be further described below.

[0188] The motion vectors associated with the triangular partitions may be stored in a 4x4 luma sample-based grid for future reference. Here, an ambiguity problem arises, as shown in Figure 7: a 4x4 block sliced ​​by a diagonal (i.e., a 4x4 pixel / sample block) may be associated with either PU0 or PU1. However, to store the motion vectors, the decoder needs to be able to uniquely determine which motion vector is stored at which location on the 4x4 grid.

[0189] In current VTM / BMS software, the uni-prediction restriction for merge mode is achieved in the following manner (hereafter JVET-K1001: JVET-K1001: First, the candidate list generation process is invoked as specified in section 8.3.2.2 of JVET-K1001. 1. Spatial MV candidates are derived 2. Sub-block based temporal MV candidates are derived 3. Temporal MV candidates are derived

[0190] The resulting intermediate ordering of candidates is A1, B1, B0, A0, SbCol, B2, where Col is shown in FIG. To complete the merge candidate list generation, two further steps are performed. 4. The combined bi-prediction candidates are derived. 5. Zero motion vectors are added to fill up the list.

[0191] After the merge list generation, it is checked whether uni-prediction restrictions apply to the current block. This is always the case for triangular / geometric inter prediction. Then, uni-prediction restrictions are applied by scanning the entire merge list and invalidating the REF_PIC_LIST1 motion vector in the following manner:

number

[0192] Note that JVET-L0124 uses a different generation scheme of merge list candidates, where the uni-predictive merge list is generated using the candidates shown in FIG.

[0193] Then, for motion vector storage, depending on the position of each 4x4 block in the current block, either the uni-predictive MV or the bi-predictive MV is stored as shown in FIG.

[0194] Bi-prediction candidates are thus stored diagonally, but are only available for very few nearby positions.Furthermore, note that a motion vector denoted as "bi-" is some kind of combination of Mv1 and Mv2.

[0195] Typically, uni-prediction restrictions are imposed for small rectangular blocks (≦8×8 luma samples). However, if uni-prediction restrictions are imposed for larger blocks, such as triangular partitioned blocks, it is believed that this may reduce the coding efficiency of neighboring blocks that reference uni-predictive motion vectors. It is beneficial if those neighboring blocks can also reference bi-predictive motion vectors.

[0196] Although bi-predictive motion vectors are possible for motion vector storage for at least one 4x4 sub-block of a triangular / geometric partition (such as a 4x4 sub-block arranged along the direction (diagonal or anti-diagonal) of the triangular partition, or all 4x4 sub-blocks), only unidirectional motion compensation is performed.

[0197] It is proposed not to apply the process of limiting bi-predictive merge candidates as described above for triangle partitions, but rather to perform Merge Candidate List (MCL) generation in the same manner as specified in JVET-K1001 (prior art, subject to change in the development of VVC), except that we do not generate sub-block based MV candidates.

[0198] According to a first embodiment, there is provided a method for deriving a motion vector (MV) for a coding block, the method comprising: generating a merge candidate list for a coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode; The step of generating a merge candidate list includes at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merging candidates; deriving a unidirectional prediction MV as a motion vector for each triangle partition based at least on the merge candidate list; Includes.

[0199] According to an embodiment, the unidirectionally predicted MV is derived based on the unidirectionally predicted MV selection rule and the merge candidate list for the triangle merge mode.

[0200] According to an embodiment, the merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs.

[0201] According to an embodiment, the uni-predictive MV selection rule for triangle merge mode indicates that the first or second MV of the bi-predictive MVs in the merge candidate list is selected as the uni-predictive MV.

[0202] According to the embodiment, the first MV corresponds to the first reference picture list (REF_PIC_LIST0) and the second MV corresponds to the second reference picture list (REF_PIC_LIST1).

[0203] Figure 11 shows a flow chart of MV derivation. In step 1101, for a coding block that is enabled for triangle merge mode, one or more spatial merge candidates are derived from neighboring coding units. In step 1102, one or more temporal motion vector predictions are derived directly or immediately. In step 1103, a uni-predictive MV, which is a motion vector for each triangle partition, is derived based on at least the merge candidate list.

[0204] According to a second embodiment, there is provided a method for generating a merge candidate list for a coding block, the method comprising: generating a merge candidate list for a coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode; The step of generating a merge candidate list includes at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merging candidates; adding the one or more spatial merge candidates and the derived one or more temporal MVPs to a merge candidate list; wherein the one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs.

[0205] 12 shows a flow chart of merge candidate list generation. In step 1201, for coding blocks that are enabled for triangle merge mode, one or more spatial merge candidates are derived from neighboring coding units. In step 1202, one or more temporal motion vector predictions are derived directly or immediately. In step 1203, one or more spatial merge candidates and the derived one or more temporal MVPs are added to a merge candidate list.

[0206] According to a third embodiment, a method for inter prediction of a current triangular partition of a coding block is provided, the method comprising: generating a merge candidate list for the coding block if the coding block is enabled for a triangle merge mode, the generating merge candidate list including at least deriving one or more spatial merge candidates from neighboring coding units, and directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merge candidates; deriving a uni-predictive MV as a motion vector for the current triangle partition based on at least the merge candidate list; performing a prediction of the current triangular partition based on the at least one predicted MV to obtain a predicted value of the current triangular partition; Equipped with.

[0207] Figure 13 shows a flow chart of merging candidate list generation. In step 1301, for a coding block partitioned into two triangular partitions and enabled for triangle merge mode, one or more spatial merging candidates are derived from neighboring coding units. In step 1302, one or more temporal motion vector predictions are derived directly or immediately. In step 1303, a uni-predictive MV is derived as a motion vector of a current triangular partition based on at least the merging candidate list. In step 1304, a prediction of the current triangular partition is performed based on at least the uni-predictive MV to obtain a predicted value of the current triangular partition.

[0208] According to an embodiment, the derivation of sub-block based temporal merging candidates is excluded from the generation of the merging candidate list.

[0209] According to an embodiment, the unidirectional prediction MV selection rule is: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, then the average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or If the reference image index of the first MV relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as a uni-predictive MV; or If the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is used as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first and second MVs, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has the smaller magnitude, is used as the uni-predictive MV. For completeness, the order of derivation is as follows: 1. Spatial MV candidates are derived 2. Temporal MV candidates are derived 3. Combined bi-prediction candidates are derived 4. Zero motion vectors are added to fill up the list.

[0210] Therefore, the resulting merge candidate list may consist of uni-predictive or bi-predictive candidates. Note that the process of merge list generation may also differ from the process specified above.

[0211] 14 shows a general flow chart including the method of the aforementioned embodiment. In step 1401, a merge candidate list is generated according to the aforementioned embodiment. In step 1402, a merge candidate is selected from the merge candidate list. The selected candidate may be a bi-predictive candidate. In step 1403, a uni-predictive candidate is derived from the bi-predictive candidate. It should be noted that these steps relate to the encoder and decoder of a video codec. Derivation of one-sided prediction candidates

[0212] Here, if a bi-prediction candidate is signaled for the current triangle or geometric partition from the previously generated merge list by the merge index, the uni-prediction candidate derivation process is invoked.

[0213] The input to the process is a bi-predictive motion vector, which means that there are in fact two motion vectors, which may refer to two different reference pictures. In the following, terminology from HEVC / JEM / VVC is used: the first motion vector may refer to a reference picture from a first reference picture list named REF_PIC_LIST0, and the second motion vector may refer to a second reference picture from a second reference picture list named REF_PIC_LIST1.

[0214] Since both reference image lists may contain multiple reference images, the reference image index (refPicIdx0 and refPicIdx1) is used to select a reference image. The output of the process is a single motion vector and a reference image index so that unidirectional motion compensation can be performed for the current triangular prediction unit.

[0215] Various ways in which a unidirectional MV can be derived from a selected bi-predictive MV are summarized as follows.

[0216] 1. A unidirectional motion vector is derived from the first (REF_PIC_LIST0) and second (REF_PIC_LIST1) motion vectors according to the following criteria: If both REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors relate to the same reference picture, calculate the average motion vector. b. Otherwise, if the reference picture index of the REF_PIC_LIST0 motion vector is for a reference picture that has a smaller temporal distance (POC distance in HEVC) to the current picture than the REF_PIC_LIST1 motion vector, then use the REF_PIC_LIST0 motion vector. Otherwise, if the REF_PIC_LIST1 motion vector is for a reference picture that has a smaller temporal distance to the current picture than the temporal distance to the REF_PIC_LIST0 motion vector, then use the REF_PIC_LIST1 motion vector. c. Otherwise, if the temporal distance to the current image is equal for both the REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors, use the motion vector with the smaller magnitude, which can be estimated from the x and y components of each motion vector according to Equation (1). mag(MV)=mv x 2 +mv y 2 (1)

[0217] 2. Which motion vector of the bi-predictive candidate (REF_PIC_LIST0 or REF_PIC_LIST1) is used is signaled by an additional flag called refpiclist_indicator_flag. If the flag is zero, the REF_PIC_LIST0 vector is used. Otherwise, the REF_PIC_LIST1 vector is used.

[0218] An add flag is coded after the merge index (merge_triangle_idx) is coded if and only if the merge candidate is a bi-predictive candidate (determined by mergeCandidateIsBi) and if the block width + block height is greater than a predefined threshold cbBiSizeLimit. This signaling can be done in the following exemplified manner (prior art according to JVET-L0124, new additions are shown in yellow):

[0219] In the above example, the magnitude of the MV, “mag”, is calculated by dividing the components mv x and mv y It is calculated from the sum of the squares of MV = (mv x ,mv y ).

[0220] Alternatively, the magnitude may be determined according to a criterion such as the p-norm (p>0). When p=2, the p-norm becomes the common Euclidean norm. Other norms suitable for determining the magnitude of one-component or multi-component vectors, including the motion vectors of the present disclosure, may be used. An example of coding unit syntax is provided by the following code excerpt: [Table 1]

[0221] Whether Method 1 or Method 2 is used may be determined in the following manner. In the sequence parameter set, all triangular prediction mode blocks are configured to use either Method 1 or Method 2. The block size determines whether Method 1 or Method 2 is used. Method 1 may be used for blocks equal to or smaller than, for example, 16x16 luma samples. Otherwise, Method 2 may be used. Motion Vector Storage

[0222] The original unmodified bi-predictive candidate pointed to by the merge index is used in the motion vector storage.

[0223] This is illustrated in Figure 15. The derived uni-predictive motion vectors are used for motion compensation only. For storage, the unmodified bi-predictive MV candidates (i.e., selected from the MCL) are kept and put into the motion field for future reference.

[0224] For practical storage, it is further proposed not to calculate the average for the 4×4 sub-blocks across the diagonal as in the prior art, but rather to assign the 4×4 blocks across the diagonal to either the first or second partition (i.e., two triangular blocks PU0 and PU1), and store the motion information according to this clear assignment. This is illustrated in Figure 16. Note that MV0 and MV1 can refer to single or bi-predictive motion vectors.

[0225] One possible constant rule, shown in FIG. 8, always assigns 4×4 blocks sliced ​​by the diagonal to partition PU0.

[0226] Another possible constant rule shown in FIG. 16 always assigns 4×4 blocks sliced ​​by diagonals to partition PU1.

[0227] Furthermore, in another possible solution, an additional condition can be used to deduce whether a diagonal 4x4 block is assigned to PU0 or PU1. This decision can be made, for example, based on the following: MV0 and MV1 characteristics (size, reference image index) Block size of the current triangle partitioned block

[0228] 17 illustrates the result of unidirectional prediction candidate derivation and motion vector storage: the motion vectors (dotted lines) are used for actual motion compensation, and the motion vectors (solid lines) are used for storage only.

[0229] Note that for PU0 (dark grey), the motion vector for the reference picture with a temporal distance to the current picture that is smaller than the temporal distance of the second reference picture was selected. For PU1, the absolute temporal distances of both reference pictures are equal, i.e., TD0=TD1. Therefore, according to option 1.c described above, the motion vector with the smaller magnitude was selected for motion compensation. The temporal distance between the current picture and the reference picture that the MV refers to is also referred to as the POC distance.

[0230] According to a fourth embodiment, there is provided an apparatus for deriving a motion vector (MV) for a coding block, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangle merge mode, wherein during generating the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; an inter-prediction processing unit configured to derive a uni-predictive MV as a motion vector for each triangle partition based on at least the merge candidate list; Equipped with.

[0231] 18 shows an MV derivation apparatus 1800 including a candidate list generation unit 1810 and an inter-prediction processing unit 1820. In an example, the apparatus 1800 may correspond to the inter-prediction unit 244 in FIG. 2. In another example, the apparatus 1800 may correspond to the inter-prediction unit 344 in FIG. 3.

[0232] According to a fifth embodiment, there is provided an apparatus for generating a merging candidate list for a coding block, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangular merge mode, wherein during generating the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived, and the one or more spatial merge candidates and the derived one or more temporal MVPs are added to the merge candidate list; The apparatus, wherein the one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs.

[0233] 19 shows a merge candidate list (MCL) generating device 1900 including a candidate list generating unit 1910. The MCL generating device 1900 uses a coding block as an input and provides a merge candidate list MCL for one and / or two triangular partitions of the coding block as an output. In an example, the device 1900 may correspond to the inter prediction unit 244 in FIG. 2. In another example, the device 1900 may correspond to the inter prediction unit 344 in FIG. 3.

[0234] According to a sixth embodiment, there is provided an apparatus for inter prediction of a current triangular partition of a coding block, the apparatus comprising: a candidate list generation unit configured to generate a merge candidate list for a coding block partitioned into two triangular partitions when the coding block is enabled for a triangle merge mode, wherein during generation of the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; an inter-prediction processing unit configured to derive a uni-prediction MV as a motion vector for each triangle partition based on at least the merge candidate list, and perform prediction of the current triangle partition based on the at least uni-prediction MV to obtain a predicted value for the current triangle partition; Equipped with.

[0235] 20 shows an inter prediction apparatus 2000 including a candidate list generation unit 2010 and an inter prediction processing unit 2020. In an example, the apparatus 2000 may correspond to the inter prediction unit 244 in FIG. 2. In another example, the apparatus 2000 may correspond to the inter prediction unit 344 in FIG.

[0236] According to an embodiment, the unidirectional prediction MV selection rule is: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, then the average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or If the reference image index of the first MV relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as a uni-predictive MV; or If the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is used as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first and second MVs, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has the smaller magnitude, is used as the uni-predictive MV. It can be understood that the uni-predictive MV selection rule is not limited to the above alternative designs, and other implementation designs may be considered. The uni-predictive MV selection rule for the triangle merge mode indicates how the first MV or the second MV bi-predictive MV of the merge candidate list is selected as the uni-predictive MV.

[0237] According to an embodiment, there is provided a decoding device (200) for decoding a video coding block of a current frame of an encoded video signal, the decoding device (200) comprising: a decoding unit (205, 207) configured to decode the video coding block to provide a residual video coding block; generating a predictive video coding block based on a uni-predictive motion vector (MV) derived for a triangular partition of the video coding block for a triangle merge mode, where a bi-predictive motion vector (MV) is possible for the motion vector storage of at least one 4×4 sub-block for the triangle merge mode; and Performing unidirectional motion compensation an inter prediction unit (215) configured to: a reconstruction unit (209) configured to reconstruct a video coding block based on the filtered prediction video coding block and the residual video coding block; Equipped with.

[0238] 21 shows a decoding device 200, which includes a decoding unit 205, an inter-prediction unit 215 and a reconstruction unit 209. In an example, the decoding device 200 may correspond to the decoder in FIG.

[0239] According to an aspect of the present disclosure, an apparatus is provided for performing unidirectional (or uni-predictive) motion compensation for a triangle merge mode of a coding block, of a current frame of a video signal, which is partitioned into two triangle partitions, comprising: The device is deriving, for each of the two triangle partitions, a uni-predictive motion vector (MV) based on a uni-predictive MV selection rule and a merge candidate list for a triangle merge mode; performing motion compensation for each of the two triangular partitions using a corresponding uni-predictive MV; and Obtaining a predictive coding block based on two motion compensated triangular partitions The device further comprises a processing circuit configured to:

[0240] 22 illustrates a motion compensation device 2200. In an example, the device 2200 may correspond to the inter prediction unit 244 in FIG. 2. In another example, the device 2200 may correspond to the inter prediction unit 344 in FIG.

[0241] According to an embodiment, the merge candidate list includes uni-predictive motion vector (MV) candidates and / or bi-predictive motion vector (MV) candidates, where the bi-predictive MV candidates include a first MV and a second MV.

[0242] According to an embodiment, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: When both the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 relate to the same reference picture, an average motion vector based on the first MV and the second MV is derived as a unidirectionally predicted MV.

[0243] According to an embodiment, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: the first MV from REF_PIC_LIST0 is derived as a uni-predictive MV if its reference image index relates to a reference image that has a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image; or If the second MV relates to a reference picture that has a temporal distance (TD1) to the current picture that is smaller than the temporal distance of the first MV, then the second MV from REF_PIC_LIST1 is derived as a uni-predictive MV. Includes.

[0244] According to an embodiment, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: If the temporal distances of the first and second MVs to the current picture are equal, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, shall be derived as a uni-predictive MV. Includes.

[0245] According to an embodiment, the unidirectional prediction MV selection rule for the triangle merge mode and the derivation of the unidirectional prediction MV based on the merge candidate list are as follows: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, the average motion vector based on the first MV and the second MV is derived as a unidirectionally predicted MV; or If the reference image index of the first MV relates to a reference image having a temporal distance (TD0) of the current image that is smaller than the temporal distance (TD1) of the second MV of the current image, then the first MV is derived as a uni-predictive MV; or if the second MV from REF_PIC_LIST1 relates to a reference picture that has a temporal distance to the current picture that is smaller than the temporal distance to the first MV, then the second MV is derived as a uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, is derived as the uni-predictive MV candidate. Includes.

[0246] According to an embodiment, there is provided an encoding device (20) for encoding a coding block of a current frame of a video signal, the encoding device (20) comprising: a coding unit (204, 270) configured to code a coding block to provide a residual coding block; an inter prediction unit (244) configured to generate a predictive coding block according to any of the previous embodiments; a reconstruction unit (214) configured to reconstruct a coding block based on the predictive coding block and the residual coding block; A respective encoding device is shown in FIG.

[0247] According to an embodiment, a decoding device (30) for decoding a coding block of a current frame of a video signal is provided, the decoding device (30) comprising: a decoding unit (304) configured to decode the coding block to provide a residual coding block; an inter prediction unit (344) configured to generate a predictive coding block according to any of the previous embodiments; a reconstruction unit (314) configured to reconstruct a coding block based on the predictive coding block and the residual coding block; The respective decoding device is shown in FIG.

[0248] According to an embodiment, there is provided an encoder comprising processing circuitry for performing a method according to any one of the previous embodiments.

[0249] According to an embodiment, there is provided a decoder comprising processing circuitry for performing a method according to any one of the previous embodiments.

[0250] According to an embodiment there is provided a computer program product comprising program code for carrying out the method according to any one of the preceding embodiments.

[0251] According to an embodiment, a decoder is provided, the decoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to a processor and storing a program for execution by the processor, the program, when executed by the processor, configuring a decoder to perform a method according to any one of the preceding embodiments; Equipped with.

[0252] According to an embodiment, an encoder is provided, the encoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to a processor and storing a program for execution by the processor, the program, when executed by the processor, configuring the encoder to perform the method of any one of the preceding embodiments; Equipped with.

[0253] In the following, a description is provided of the application of the encoding and decoding methods as illustrated in the above-mentioned embodiments, and of systems that use them.

[0254] 23 is a block diagram showing a content supply system 3100 for realizing a content distribution service. The content supply system 3100 includes a capture device 3102, a terminal device 3106, and optionally a display 3126. The capture device 3102 communicates with the terminal device 3106 via a communication link 3104. The communication link may include the communication channel 13 described above. The communication link 3104 includes, but is not limited to, WIFI, Ethernet, cable, wireless (3G / 4G / 5G), USB, or any type of combination thereof.

[0255] The capture device 3102 may generate data and encode the data by the encoding method as shown in the above embodiment. Alternatively, the capture device 3102 may deliver the data to a streaming server (not shown in the figure), which encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, a camera, a smartphone or pad, a computer or laptop, a video conferencing system, a PDA, an in-vehicle device, or any combination thereof. For example, as described above, the capture device 3102 may include the source device 12. If the data includes video, the video encoder 20 included in the capture device 3102 may actually perform the video encoding process. If the data includes audio (i.e., voice), the audio encoder included in the capture device 3102 may actually perform the audio encoding process. For some practical scenarios, the capture device 3102 delivers the encoded video and audio data by multiplexing them together. For other practical scenarios, for example in a video conference system, the encoded audio data and the encoded video data are not multiplexed, and the capture device 3102 delivers the encoded audio data and the encoded video data to the terminal device 3106 separately.

[0256] In the content supply system 3100, the terminal device 310 receives and plays the encoded data. The terminal device 3106 may be a device having a data receiving and restoring function, such as a smartphone or pad 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a TV 3114, a set-top box (STB) 3116, a video conferencing system 3118, a video surveillance system 3120, a personal digital assistant (PDA) 3122, an in-vehicle device 3124, or any combination thereof, capable of decoding the encoded data described above. For example, the terminal device 3106 may include the destination device 14, as described above. If the encoded data includes video, the video decoder 30 included in the terminal device prioritizes performing video decoding. If the encoded data includes audio, the audio decoder included in the terminal device prioritizes performing audio decoding processing.

[0257] For terminal devices with a display, such as a smartphone or pad 3108, a computer or laptop 3110, a network video recorder (NVR) / digital video recorder (DVR) 3112, a TV 3114, a personal digital assistant (PDA) 3122 or an in-vehicle device 3124, the terminal device can input the decoded data to its display. For terminal devices without a display, such as a STB 3116, a video conferencing system 3118 or a video surveillance system 3120, an external display 3126 is contacted internally to receive and show the decoded data.

[0258] If each device in the system performs encoding or decoding, an image encoding device or an image decoding device may be used, as shown in the above-mentioned embodiments.

[0259] 24 is a schematic diagram showing an example structure of the terminal device 3106. After the terminal device 3106 receives the stream from the capture device 3102, the protocol processing unit 3202 analyzes the transmission protocol of the stream. The protocol includes, but is not limited to, Real Time Streaming Protocol (RTSP), HyperText Transfer Protocol (HTTP), HTTP Live Streaming Protocol (HLS), MPEG-DASH, Real Time Transport Protocol (RTP), Real Time Messaging Protocol (RTMP), or any kind of combination thereof.

[0260] After the protocol processing unit 3202 processes the stream, a stream file is generated. The file is output to the demultiplexing unit 3204. The demultiplexing unit 3204 can separate the multiplexed data into encoded audio data and encoded video data. As mentioned above, for some practical scenarios, for example, in a video conference system, the encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is sent to the video decoder 3206 and the audio decoder 3208 without passing through the demultiplexing unit 3204.

[0261] Through the demultiplexing process, a video elementary stream (ES), an audio ES, and optionally subtitles are generated. As described in the above-mentioned embodiment, the video decoder 3206 including the video decoder 30 decodes the video ES to generate video frames by the decoding method as shown in the above-mentioned embodiment, and inputs this data to the synchronization unit 3212. The audio decoder 3208 decodes the audio ES to generate audio frames, and inputs this data to the synchronization unit 3212. Alternatively, the video frames may be stored in a buffer (not shown in FIG. 24) before being fed to the synchronization unit 3212. Similarly, the audio frames may be stored in a buffer (not shown in FIG. 24) before being fed to the synchronization unit 3212.

[0262] The synchronization unit 3212 synchronizes the video and audio frames to provide the video / audio to the video / audio display 3214. For example, the synchronization unit 3212 synchronizes the presentation of video and audio information, which may be coded in a syntax with timestamps for the presentation of the coded audio and visual data and for the delivery of the data stream itself.

[0263] If the stream contains subtitles, the subtitle decoder 3210 decodes the subtitles, synchronizes it with the video and audio frames, and provides the video / audio / subtitles to the video / audio / subtitle display 3216.

[0264] The present invention is not limited to the above-mentioned system, and any of the image encoding devices or image decoding devices in the above-mentioned embodiments may be incorporated into other systems, for example, automobile systems.

[0265] Although the embodiments of the present invention have been described mainly based on video coding, it should be noted that the coding system 10, encoder 20 and decoder 30 (and corresponding system 10) embodiments, as well as other embodiments described herein, may also be configured for still image processing or coding, i.e., processing or coding of an individual image independent of any preceding or subsequent images, as in video coding. In general, when image processing coding is limited to a single image 17, only the inter prediction units 244 (encoder) and 344 (decoder) may not be available. All other functions (also referred to as tools or techniques) of the video encoder 20 and video decoder 30 may be equally used for further image processing, such as residual calculation 204 / 304, transform 206, quantization 208, inverse quantization 210 / 310, (inverse) transform 212 / 312, partitioning 262 / 362, intra prediction 254 / 354. and / or loop filtering 220, 320, as well as entropy coding 270 and entropy decoding 304.

[0266] For example, embodiments of the encoder 20 and the decoder 30, and functions described herein in connection with the encoder 20 and the decoder 30, may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium or transmitted as one or more instructions or codes over a communication medium and executed by a hardware-based processing unit. A computer-readable medium may include a computer-readable storage medium corresponding to a tangible medium, such as a data storage medium, or a communication medium including any medium that facilitates the transfer of a computer program from one place to another, for example according to a communication protocol. Thus, a computer-readable medium may generally correspond to (1) a tangible computer-readable storage medium that is non-transitory, or (2) a communication medium such as a signal or carrier wave. A data storage medium may be any available medium accessible by one or more computers or one or more processors to obtain instructions, codes and / or data structures for implementation of the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[0267] By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM, or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transitory media, but instead refer to non-transitory, tangible storage media. As used herein, disk and disc include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically and discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0268] The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Thus, the term "processor" as used herein may refer to any of the aforementioned structures, or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functions described herein may be provided within dedicated hardware and / or software modules configured for encoding and decoding, or may be incorporated into a combined codec. Also, the techniques may be fully implemented in one or more circuits, or logic elements.

[0269] The techniques of the present disclosure may be implemented in a wide variety of devices or apparatuses, including wireless handsets, integrated circuits (ICs) or sets of ICs (e.g., chipsets). Various component modules, or units, are described in this disclosure to emphasize functional aspects of devices configured to perform the techniques of the disclosure, but do not necessarily require realization by different hardware units. Rather, as noted above, the various units may be combined in a codec hardware unit, or may be provided by a collection of interoperable hardware units including one or more processors as described above, in conjunction with suitable software and / or firmware.

[0270] Although a particular feature or aspect of the present disclosure may be disclosed in connection with only one of several implementations or embodiments, such feature or aspect may be combined with one or more other features or aspects of other implementations or embodiments as may be desirable and advantageous for any given or particular application. Furthermore, to the extent that the terms "including," "having," "comprising," or other variations thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term "comprise." Also, the terms "exemplary," "for example," and "example" are intended to be merely examples, not in the best or optimal sense. The terms "coupled" and "connected" may be used with derivatives. It should be understood that these terms may be used to indicate that two elements cooperate or interact with each other, regardless of whether they are in direct physical or electrical contact or not in direct contact with each other.

[0271] While specific embodiments have been illustrated and described herein, those skilled in the art will recognize that various alternative and / or equivalent implementations may be substituted for the specific embodiments illustrated and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific embodiments described herein.

[0272] Although elements in the following claims are described in a particular order with corresponding numerals, they are not necessarily intended to be limited to being implemented in that particular order, unless the claims specifically suggest that some or all of the elements be implemented in that particular order.

[0273] In light of the above teachings, many alternatives, modifications and variations will be apparent to those skilled in the art. Of course, those skilled in the art will easily recognize that there are many applications of the present invention other than those described herein. Although the present invention has been described with reference to one or more specific embodiments, those skilled in the art will recognize that many changes can be made without departing from the scope of the present invention. Therefore, it should be understood that the present invention can be implemented in other ways than those specifically described herein, within the scope of the appended claims and their equivalents.

[0274] In summary, the present disclosure relates to video encoding and decoding. For that purpose, an apparatus and method derive a motion vector (MV) for a coding block. In particular, when the coding block is enabled for triangular merge mode merging, a candidate list for the coding block is partitioned into two triangular partitions. The merge candidate list generation includes deriving one or more spatial merge candidates from neighboring coding units. After the spatial merge candidates are derived, one or more temporal motion vector predictions (MVPs) are derived directly or immediately. Then, based on the merge candidate list including one or more uni-predictive MVs and / or one or more bi-predictive MVs, a uni-predictive MV is derived as a motion vector for each triangular partition. The derivation of the uni-directional MV is based on the merge candidate or uni-directional MV selection rule. The triangular partition of the coding block is then predicted based on at least the uni-predictive MV to obtain a predicted value of the triangular partition.

[0275] Further embodiments of the present invention are provided below. Please note that the numbering used in the following sections does not necessarily follow the numbering used in the previous sections.

[0276] EMBODIMENT 1 A decoding device (200) for decoding a video coding block of a current frame of an encoded video signal, comprising: a decoding unit (205) configured to decode the video coding block to provide a residual video coding block; an inter prediction unit (215) configured to generate a predicted video coding block, where bi-predictive motion vectors are enabled for motion vector storage for all 4x4 sub-blocks of a triangular partition and unidirectional motion compensation is performed; a reconstruction unit (209) configured to reconstruct a video coding block based on the filtered prediction video coding block and the residual video coding block; A decoding device (200) comprising:

[0277] EMBODIMENT 2 A decoding device (200) for decoding a video coding block of a current frame of an encoded video signal, comprising: a decoding unit (205) configured to decode the video coding block to provide a residual video coding block; an inter prediction unit (215) configured to generate a predicted video coding block based on a unidirectional motion vector derived for a triangular block (e.g., a triangular prediction unit), where unidirectional motion compensation is performed; a reconstruction unit (209) configured to reconstruct a video coding block based on the filtered predictive video coding block and the residual video coding block; A decoding device (200) comprising:

[0278] EMBODIMENT 3 In the decoding device (200) of the second embodiment, for a triangular block (eg, a triangular prediction unit), a unidirectional motion vector is derived from a first (REF_PIC_LIST0) and a second ((REF_PIC_LIST1) motion vector) according to the following criteria: If both REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors relate to the same reference picture, calculate the average motion vector.

[0279] EMBODIMENT 4 A decoding device (200) of embodiment 2, in which for a triangular block (such as a triangular prediction unit), a unidirectional motion vector is derived from a first (REF_PIC_LIST0) and a second (REF_PIC_LIST1) motion vector according to the following criteria: a. Otherwise, if the reference picture index of the REF_PIC_LIST0 motion vector relates to a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST1 motion vector, then use the REF_PIC_LIST0 motion vector. Otherwise, if the REF_PIC_LIST1 motion vector relates to a reference picture that has a smaller temporal distance to the current picture than the temporal distance to the REF_PIC_LIST0 motion vector, then use the REF_PIC_LIST1 motion vector.

[0280] EMBODIMENT 5 A decoding device (200) of embodiment 2, in which for a triangular block (such as a triangular prediction unit), a unidirectional motion vector is derived from a first (REF_PIC_LIST0) and a second (REF_PIC_LIST1) motion vector according to the following criteria: a. Else, if the temporal distance to the current picture is equal for both the REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors, use the motion vector with the smaller magnitude.

[0281] EMBODIMENT 6 A decoding device (200) of embodiment 2, in which for a triangular block (such as a triangular prediction unit), a unidirectional motion vector is derived from a first (REF_PIC_LIST0) and a second (REF_PIC_LIST1) motion vector according to any one of the following criteria: If both REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors relate to the same reference picture, calculate the average motion vector; or b. Otherwise, if the reference picture index of the REF_PIC_LIST0 motion vector is for a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST1 motion vector, use the REF_PIC_LIST0 motion vector. Otherwise, if the REF_PIC_LIST1 motion vector is for a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST0 motion vector, use the REF_PIC_LIST1 motion vector. Or c. Otherwise, if the temporal distance to the current picture is equal for both the REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors, use the motion vector with the smaller magnitude.

[0282] EMBODIMENT 7 A method for deriving a unidirectional motion vector for a triangular block (eg, a triangular prediction unit), including:

[0283] A unidirectional motion vector is derived from the first (REF_PIC_LIST0) and second (REF_PIC_LIST1) motion vectors according to the following criteria: If both REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors relate to the same reference picture, calculate the average motion vector.

[0284] EMBODIMENT 8 A method for deriving a unidirectional motion vector for a triangular block (eg, a triangular prediction unit), including:

[0285] A unidirectional motion vector is derived from the first (REF_PIC_LIST0) and second (REF_PIC_LIST1) motion vectors according to the following criteria: a. Otherwise, if the reference picture index of the REF_PIC_LIST0 motion vector relates to a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST1 motion vector, then use the REF_PIC_LIST0 motion vector. Otherwise, if the REF_PIC_LIST1 motion vector relates to a reference picture that has a smaller temporal distance to the current picture than the temporal distance to the REF_PIC_LIST0 motion vector, then use the REF_PIC_LIST1 motion vector.

[0286] EMBODIMENT 9 A method for deriving a unidirectional motion vector for a triangular block (eg, a triangular prediction unit), including:

[0287] A unidirectional motion vector is derived from the first (REF_PIC_LIST0) and second (REF_PIC_LIST1) motion vectors according to the following criteria: a. Otherwise, if the temporal distance to the current picture is equal for both the REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors, use the motion vector with the smaller magnitude.

[0288] EMBODIMENT 10 A method for deriving a unidirectional motion vector for a triangular block (eg, a triangular prediction unit), including:

[0289] A unidirectional motion vector is derived from the first (REF_PIC_LIST0) and second (REF_PIC_LIST1) motion vectors according to any one of the following criteria: If both REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors relate to the same reference picture, calculate the average motion vector; or b. Otherwise, if the reference picture index of the REF_PIC_LIST0 motion vector is for a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST1 motion vector, use the REF_PIC_LIST0 motion vector. Otherwise, if the REF_PIC_LIST1 motion vector is for a reference picture that has a smaller temporal distance to the current picture than the REF_PIC_LIST0 motion vector, use the REF_PIC_LIST1 motion vector. Or c. Otherwise, if the temporal distance to the current picture is equal for both the REF_PIC_LIST0 and REF_PIC_LIST1 motion vectors, use the motion vector with the smaller magnitude.

[0290] EMBODIMENT 11 An encoder comprising a processing circuit for performing the method according to any one of embodiments 7 to 10.

[0291] EMBODIMENT 12 A decoder comprising a processing circuit for performing the method according to any one of embodiments 7 to 10.

[0292] EMBODIMENT 13 A computer program product comprising a program code for performing the method according to any one of embodiments 7 to 10.

[0293] EMBODIMENT 14 A decoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to the processor and storing a program for execution by the processor; The program, when executed by a processor, configures a decoder to perform a method according to any one of embodiments 7 to 10. decoder.

[0294] EMBODIMENT 15 1. An encoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to the processor and storing a program for execution by the processor; The program, when executed by a processor, configures an encoder to perform a method according to any one of embodiments 7 to 10. Encoder. Reference List

[0295] Figure 1A 10. Video Coding System 12 Source Device 13 Communication Channels 14 Destination Device 16 Image source 17 Image data 18 Preprocessors 19 Preprocessed image data 20 Video Encoder 21 Encoded image data 22 Communication Interface 28 Communication Interface 30 Video Decoder 31 Decoded image data 32 Post Processor 33 Post-processed image data 34 Display Devices

[0296] Figure 1B 40 Video Coding System 41 Imaging Devices 42 Antenna 43 Processors 44 Memory Store 45 Display Devices 46 Processing Circuit 20 Video Encoder 30 Video Decoder

[0297] Figure 2 17 Images (data) 19 Preprocessed images (data) 20 Encoder 21 Encoded image data 201 Input section (interface) 204 Residual calculation (unit or step) 206 Conversion Processing Unit 208 Quantization Units 210 Inverse Quantization Unit 212 Inverse Transformation Processing Unit 214 Reconstruction Unit 220 Loop Filter Unit 230 Decoded Picture Buffer (DPB) 260 Mode Selection Unit 270 Entropy Coding Unit 272 Output section (interface) 244 Inter Prediction Units 254 intra prediction units 262 Partitioning Units 203 Image Block 205 Residual Blocks 213 Reconstructed Residual Block 215 Reconstruction Blocks 221 Filtering Block 231 Decoded Image 265 predicted blocks 266 Syntax Elements 207 Conversion Factors 209 Quantization Coefficients 211 Inverse quantization coefficients

[0298] Figure 3 21 Encoded image data 30 Video Decoder 304 Entropy Decoding Unit 309 Quantization Coefficients 310 Inverse Quantization Unit 311 Inverse quantization coefficients 312 Inverse Transformation Processing Unit 313 Reconstructed Residual Block 314 Reconstruction Unit 315 Reconstruction Block 320 Loop Filter 321 Filtering Block 330 Decoded Image Buffer DBP 331 Decoded Image 360 mode application unit 365 predicted blocks 366 Syntax Elements 344 Inter Prediction Units 354 intra prediction units

[0299] Figure 4 400 Video Coding Device 410 Inlet port / Input port 420 Receiver Unit Rx 430 Processor 440 Transmitter unit Tx 450 Exit Port / Output Port 460 Memory 470 Coding Module

[0300] Figure 5 500 Source or destination device 502 processor 504 Memory 506 Code and Data 508 Operating Systems 510 Application Program 512 Bus 518 Display [Other possible claims] (Item 1) 1. A method for deriving a motion vector (MV) for a coding block, comprising: generating a merge candidate list for the coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode, the generating of the merge candidate list comprising at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merge candidates; deriving a unidirectionally predicted motion vector (MV) for each of the triangular partitions based at least on the merge candidate list; A method comprising: (Item 2) 2. The method according to item 1, wherein the unidirectional prediction MV is derived based on a unidirectional prediction MV selection rule for the triangle merge mode and the merge candidate list. (Item 3) 3. The method of claim 2, wherein the merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs. (Item 4) 4. The method according to item 2 or 3, wherein the uni-predictive MV selection rule for the triangle merge mode indicates that a first MV or a second MV of the bi-predictive MVs in the merge candidate list is selected as a uni-predictive MV. (Item 5) 5. The method according to item 4, wherein the first MV corresponds to a first reference image list (REF_PIC_LIST0) and the second MV corresponds to a second reference image list (REF_PIC_LIST1). (Item 6) 1. A method for generating a merge candidate list for a coding block, comprising: generating the merge candidate list for the coding block partitioned into two triangle partitions if the coding block is enabled for a triangle merge mode, the generating the merge candidate list comprising at least: deriving one or more spatial merging candidates from neighboring coding units; directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merge candidates; adding the one or more spatial merge candidates and the derived one or more temporal MVPs to the merge candidate list; wherein the one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs; method. (Item 7) 1. A method for inter prediction of a current triangular partition of a coding block, comprising: generating a merge candidate list for the coding block if the coding block is enabled for a triangle merge mode, the generating the merge candidate list including at least deriving one or more spatial merge candidates from neighboring coding units, and directly or immediately deriving one or more temporal motion vector predictions (MVPs) after deriving the spatial merge candidates; deriving a unidirectionally predicted motion vector for the current triangle partition based on at least the merge candidate list; performing a prediction of the current triangular partition based on at least the one-way predicted MV to obtain a predicted value of the current triangular partition; Equipped with method. (Item 8) 8. The method of claim 7, wherein derivation of sub-block based temporal merging candidates is excluded from the step of generating the merging candidate list. (Item 9) 9. The method according to claim 7 or 8, wherein the merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs. (Item 10) 10. The method according to any one of items 7 to 9, wherein the step of deriving the uni-predictive MV is based on a uni-predictive MV selection rule for the triangle merge mode and the merge candidate list. (Item 11) Item 11. The method according to item 10, wherein the uni-predictive MV selection rule for the triangular partition mode indicates that a first MV or a second MV of the bi-predictive MVs in the generated candidate list is selected as a uni-predictive MV. (Item 12) Item 12. The method according to item 11, wherein the first MV corresponds to a first reference image list (REF_PIC_LIST0) and the second MV corresponds to a second reference image list (REF_PIC_LIST1). (Item 13) The above single prediction MV selection rule is as follows: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, an average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or If the reference image index of the first MV relates to a reference image having a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as the uni-predictive MV; or if the second MV from the REF_PIC_LIST1 relates to a reference picture having a temporal distance to the current picture that is smaller than a temporal distance to the first MV, then the second MV is used as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, is used as the uni-predictive MV. 13. The method according to any one of items 10 to 12, wherein the method is any one of the following: (Item 14) 1. An apparatus for deriving a motion vector (MV) for a coding block, comprising: a candidate list generation unit configured to generate a merge candidate list for the coding block partitioned into two triangular partitions when the coding block is enabled for a triangle merge mode, wherein during generating the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; and an inter-prediction processing unit configured to derive a uni-predictive motion vector for each of the triangular partitions based on at least the merge candidate list; An apparatus comprising: (Item 15) Item 15. The apparatus of item 14, wherein the unidirectional prediction MV is derived based on a unidirectional prediction MV selection rule for the triangle merge mode and the merge candidate list. (Item 16) Item 16. The apparatus of item 15, wherein the merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs. (Item 17) Item 17. The apparatus of item 15 or 16, wherein the uni-predictive MV selection rule for the triangle merge mode indicates that a first MV or a second MV of bi-predictive MVs in the merge candidate list is selected as a uni-predictive MV. (Item 18) Item 18. The apparatus of item 17, wherein the first MV corresponds to a first reference image list (REF_PIC_LIST0) and the second MV corresponds to a second reference image list (REF_PIC_LIST1). (Item 19) 1. An apparatus for generating a merge candidate list for a coding block, comprising: a candidate list generation unit configured to generate a merge candidate list for the coding block partitioned into two triangular partitions when the coding block is enabled for a triangular merge mode, wherein during the generation of the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived, and the one or more spatial merge candidates and the derived one or more temporal MVPs are added to the merge candidate list; The one or more spatial merge candidates and / or the one or more temporal MVPs include uni-predictive MVs or bi-predictive MVs. Device. (Item 20) 1. An apparatus for inter prediction of a current triangular partition of a coding block, comprising: a candidate list generation unit configured to generate a merge candidate list for the coding block partitioned into two triangular partitions if the coding block is enabled for a triangle merge mode, wherein during the generation of the merge candidate list, one or more spatial merge candidates are derived from neighboring coding units, and one or more temporal motion vector predictions (MVPs) are derived directly or immediately after the spatial merge candidates are derived; an inter-prediction processing unit configured to derive a uni-prediction MV as a motion vector for each of the triangle partitions based on at least the merging candidate list, and perform prediction of the current triangle partition based on the at least the uni-prediction MV to obtain a predicted value of the current triangle partition; An apparatus comprising: (Item 21) 21. The apparatus of claim 20, wherein derivation of sub-block based temporal merging candidates is excluded from the generation of the merging candidate list. (Item 22) 22. The apparatus of claim 20 or 21, wherein the merge candidate list includes one or more uni-predictive MVs and / or one or more bi-predictive MVs. (Item 23) 23. The apparatus of any one of claims 20 to 22, wherein the derivation of the uni-predictive MV is based on a uni-predictive MV selection rule for the triangle merge mode and the merge candidate list. (Item 24) 24. The apparatus of claim 23, wherein the uni-predictive MV selection rule for the triangular partition mode indicates that a first MV or a second MV of the bi-predictive MVs of the generated candidate list is selected as a uni-predictive MV. (Item 25) 25. The apparatus of claim 24, wherein the first MV corresponds to a first reference image list (REF_PIC_LIST0) and the second MV corresponds to a second reference image list (REF_PIC_LIST1). (Item 26) The above single prediction MV selection rule is as follows: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, an average motion vector based on the first MV and the second MV is used as the uni-predictive MV; or if the reference image index of the first MV relates to a reference image having a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image, then the first MV is used as the uni-predictive MV; or if the second MV from the REF_PIC_LIST1 relates to a reference picture having a temporal distance to the current picture that is smaller than a temporal distance to the first MV, then the second MV is used as the uni-predictive MV; or if the temporal distance to the current picture is equal for both the first MV and the second MV, then the first MV from REF_PIC_LIST0 or the second MV from REF_PIC_LIST1, which has a smaller magnitude, is used as the uni-predictive MV; 26. The device according to any one of items 23 to 25, wherein the device is any one of the following: (Item 27) A decoding device (200) for decoding a video coding block of a current frame of an encoded video signal, said decoding device (200) comprising: a decoding unit (205) configured to decode the video coding block to provide a residual video coding block; generating a predictive video coding block based on a uni-predictive motion vector (MV) derived for a triangular partition of the video coding block for a triangle merge mode, where a bi-predictive motion vector (MV) is possible for the motion vector storage of at least one 4×4 sub-block for the triangle merge mode; and Performing unidirectional motion compensation an inter prediction unit (215) configured to: a reconstruction unit (209) configured to reconstruct the video coding block based on the filtered predictive video coding block and the residual video coding block; A decoding device comprising: (Item 28) 1. An apparatus for performing unidirectional motion compensation for a triangle merge mode of a coding block, of a current frame of a video signal, that is partitioned into two triangle partitions, comprising: The device comprises: deriving a uni-predictive motion vector (MV) for each of the two triangle partitions based on a uni-predictive MV selection rule and a merge candidate list for the triangle merge mode; performing motion compensation for each of the two triangular partitions using the corresponding uni-predictive MV; and Obtaining a predictive coding block based on the two motion compensated triangular partitions. An apparatus comprising a processing circuit configured to perform the steps of: (Item 29) 29. The apparatus of item 28, wherein the merge candidate list includes a uni-predictive motion vector (MV) candidate and / or a bi-predictive motion vector (MV) candidate, and the bi-predictive MV candidate includes a first MV and a second MV. (Item 30) 30. The apparatus of item 29, wherein the first MV corresponds to a first reference image list (REF_PIC_LIST0) and the second MV corresponds to a second reference image list (REF_PIC_LIST1). (Item 31) The derivation of the unidirectional prediction MV based on a unidirectional prediction MV selection rule for the triangle merge mode and a merge candidate list includes: The apparatus of items 28 to 30, further comprising: when both the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 relate to the same reference image, an average motion vector based on the first MV and the second MV is derived as the unidirectionally predicted MV. (Item 32) The derivation of the unidirectional prediction MV based on a unidirectional prediction MV selection rule for the triangle merge mode and a merge candidate list includes: the first MV from REF_PIC_LIST0 is derived as the uni-predictive MV if the reference image index of the first MV relates to a reference image having a temporal distance (TD0) to the current image that is smaller than the temporal distance (TD1) of the second MV to the current image; or if the second MV relates to a reference picture having the temporal distance (TD1) to the current picture that is smaller than the temporal distance of the first MV, then the second MV from the REF_PIC_LIST1 is derived as the uni-predictive MV. 31. The apparatus according to items 28 to 30, comprising: (Item 33) The derivation of the unidirectional prediction MV based on a unidirectional prediction MV selection rule for the triangle merge mode and a merge candidate list includes: If the temporal distances of the first MV and the second MV to the current picture are equal, then the first MV from the REF_PIC_LIST0 or the second MV from the REF_PIC_LIST1, which has a smaller magnitude, is derived as the unidirectionally predicted MV. 31. The apparatus according to items 28 to 30, comprising: (Item 34) The derivation of the unidirectional prediction MV based on a unidirectional prediction MV selection rule for the triangle merge mode and a merge candidate list includes: If the first MV from REF_PIC_LIST0 and the second MV from REF_PIC_LIST1 both relate to the same reference picture, an average motion vector based on the first MV and the second MV is derived as the unidirectionally predicted MV; or If a reference image index of the first MV relates to a reference image having a temporal distance (TD0) of the current image that is smaller than a temporal distance (TD1) of the second MV of the current image, the first MV is derived as the uni-predictive MV; or if the second MV from the REF_PIC_LIST1 relates to a reference picture having a temporal distance to the current picture that is smaller than a temporal distance to the first MV, then the second MV is derived as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, the first MV from the REF_PIC_LIST0 or the second MV from the REF_PIC_LIST1 having a smaller magnitude is derived as the uni-predictive MV candidate. 31. The apparatus according to items 28 to 30, comprising: (Item 35) An encoding device (20) for encoding a coding block of a current frame of a video signal, comprising: a coding unit (204, 270) configured to code the coding block to provide a residual coding block; An inter prediction unit (244) configured to generate a predictive coding block according to any one of items 14 to 26, a reconstruction unit (214) configured to reconstruct the coding block based on the predictive coding block and the residual coding block; An encoding device (20). (Item 36) A decoding device (30) for decoding a coding block of a current frame of a video signal, comprising: a decoding unit (304) configured to decode the coding block to provide a residual coding block; An inter prediction unit (344) configured to generate a predictive coding block according to any one of items 14 to 26, a reconstruction unit (314) configured to reconstruct the coding block based on the predictive coding block and the residual coding block; A decoding device (30) comprising: (Item 37) 14. An encoder comprising a processing circuit for carrying out the method according to any one of items 1 to 13. (Item 38) 14. A decoder comprising processing circuitry for carrying out the method according to any one of items 1 to 13. (Item 39) 14. A computer program product comprising a program code for carrying out the method according to any one of items 1 to 13. (Item 40) A decoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to said processor and storing a program for execution by said processor, said program, when executed by said processor, configuring said decoder to perform the method according to any one of items 1 to 13; A decoder comprising: (Item 41) 1. An encoder comprising: one or more processors; a non-transitory computer-readable storage medium coupled to the processor and storing a program for execution by the processor, the program, when executed by the processor, configuring the encoder to perform the method of any one of items 1 to 13; An encoder comprising:

Claims

1. 1. A method of encoding, comprising: generating an encoded bitstream of video data, wherein the encoded bitstream includes a first merge index; transmitting the encoded bitstream; generating a merge candidate list for a coding block of the video data partitioned into two geometric partitions when the coding block is enabled for a geometric partition merge mode, where the two geometric partitions include a first geometric partition and a second geometric partition; selecting a first merge candidate from the generated merge candidate list based on the first merge index of the first geometric partition, where the first merge index is used to indicate the first merge candidate; and calling a uni-prediction candidate derivation process if the selected first merge candidate is a bi-prediction motion vector, where an input to the uni-prediction candidate derivation process is the bi-prediction motion vector and an output from the uni-prediction candidate derivation process is a uni-prediction motion vector, the uni-prediction motion vector being a motion vector (MV) of the first geometric partition; method.

2. The one-way prediction candidate derivation process includes: deriving a uni-predictive MV as the motion vector of the first geometric partition from the bi-predictive motion vector based on a uni-predictive MV selection rule for the geometric partition merge mode; The uni-predictive MV selection rule for the geometric partition merge mode indicates that a first MV or a second MV among the selected bi-predictive motion vectors of the generated merge candidate list is selected as the uni-predictive MV. The method of claim 1.

3. the merge candidate list includes one or more uni-predictive MVs and one or more bi-predictive MVs, the one or more bi-predictive MVs including the selected bi-predictive motion vector; The method according to claim 1 or 2.

4. The first merge candidate indicated by the first merge index is the selected bi-predictive motion vector having a first MV corresponding to a first reference picture list REF_PIC_LIST0 and a second MV corresponding to a second reference picture list REF_PIC_LIST1. The method according to claim 2 or 3.

5. the encoded bitstream further includes a second merge index; The method comprises: selecting a second merge candidate from the generated merge candidate list based on the second merge index of the second geometric partition, where the second merge index is used to indicate the second merge candidate; and calling the uni-prediction candidate derivation process if the selected second merge candidate is a bi-prediction motion vector, where an input to the uni-prediction candidate derivation process is the bi-prediction motion vector and an output from the uni-prediction candidate derivation process is a uni-prediction motion vector, the uni-prediction motion vector being a motion vector (MV) of the second geometric partition; The method of claim 1 , further comprising:

6. The unidirectionally predicted MV selection rule is one of the following: If the reference picture index of the first MV relates to a reference picture whose temporal distance TD0 to the current picture is smaller than the temporal distance TD1 of the second MV to the current picture, then the first MV is used as the uni-predictive MV; or If the second MV from the REF_PIC_LIST1 relates to a reference picture whose temporal distance to the current picture is smaller than the temporal distance to the first MV, then the second MV is used as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, then the first MV with the smaller magnitude from REF_PIC_LIST0 is used as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, the second MV with the smaller magnitude from REF_PIC_LIST1 is used as the uni-predictive MV. The method of claim 2.

7. An encoder comprising processing circuitry for carrying out the method of any one of claims 1 to 6.

8. 1. A method of decoding, comprising: receiving an encoded bitstream of video data; parsing a first merge index from the encoded bitstream; generating a merge candidate list for a coding block of the video data partitioned into two geometric partitions when the coding block is enabled for a geometric partition merge mode, where the two geometric partitions include a first geometric partition and a second geometric partition; selecting a first merge candidate from the generated merge candidate list based on the first merge index of the first geometric partition, where the first merge index is used to indicate the first merge candidate; and calling a uni-prediction candidate derivation process if the selected first merge candidate is a bi-prediction motion vector, where an input to the uni-prediction candidate derivation process is the bi-prediction motion vector and an output from the uni-prediction candidate derivation process is a uni-prediction motion vector, the uni-prediction motion vector being a motion vector (MV) of the first geometric partition; method.

9. The one-way prediction candidate derivation process includes: deriving a uni-predictive MV as the motion vector of the first geometric partition from the bi-predictive motion vector based on a uni-predictive MV selection rule for the geometric partition merge mode; The uni-predictive MV selection rule for the geometric partition merge mode indicates that a first MV or a second MV among the selected bi-predictive motion vectors of the generated merge candidate list is selected as the uni-predictive MV. The method according to claim 8.

10. the merge candidate list includes one or more uni-predictive MVs and one or more bi-predictive MVs, the one or more bi-predictive MVs including the selected bi-predictive motion vector; 10. The method according to claim 8 or 9.

11. The first merge candidate indicated by the first merge index is the selected bi-predictive motion vector having a first MV corresponding to a first reference picture list REF_PIC_LIST0 and a second MV corresponding to a second reference picture list REF_PIC_LIST1.

11. The method according to claim 9 or 10.

12. the encoded bitstream further includes a second merge index; The method comprises: selecting a second merge candidate from the generated merge candidate list based on the second merge index of the second geometric partition, where the second merge index is used to indicate the second merge candidate; and calling the uni-prediction candidate derivation process if the selected second merge candidate is a bi-prediction motion vector, where an input to the uni-prediction candidate derivation process is the bi-prediction motion vector and an output from the uni-prediction candidate derivation process is a uni-prediction motion vector, the uni-prediction motion vector being a motion vector (MV) of the second geometric partition; The method of any one of claims 8 to 11, further comprising:

13. The unidirectionally predicted MV selection rule is one of the following: If the reference picture index of the first MV relates to a reference picture whose temporal distance TD0 to the current picture is smaller than the temporal distance TD1 of the second MV to the current picture, then the first MV is used as the uni-predictive MV; or If the second MV from the REF_PIC_LIST1 relates to a reference picture whose temporal distance to the current picture is smaller than the temporal distance to the first MV, then the second MV is used as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, then the first MV with the smaller magnitude from REF_PIC_LIST0 is used as the uni-predictive MV; or If the temporal distance to the current picture is equal for both the first MV and the second MV, the second MV with the smaller magnitude from REF_PIC_LIST1 is used as the uni-predictive MV.

10. The method of claim 9.

14. A decoder comprising processing circuitry for carrying out the method according to any one of claims 8 to 13.

15. A computer program comprising computer instructions which, when executed on a computer or one or more processors, cause said computer or said one or more processors to carry out a method according to any one of claims 1 to 6.

16. A computer program comprising computer instructions which, when executed on a computer or one or more processors, cause said computer or said one or more processors to carry out a method according to any one of claims 8 to 13.

17. A decoder comprising: one or more processors; a non-transitory computer readable storage medium coupled to said one or more processors and storing a computer program for execution by said one or more processors, said computer program configuring said decoder to perform a method according to any one of claims 8 to 13, A decoder comprising:

18. 1. An encoder comprising: one or more processors; a non-transitory computer readable storage medium coupled to the one or more processors and storing a computer program for execution by the one or more processors, the computer program configuring the encoder to perform the method of any one of claims 1 to 6, An encoder comprising:

19. 1. A computer-readable storage medium, comprising: The computer-readable storage medium stores program instructions and / or a video bitstream, which, when executed on a computer, enable the computer to perform the method according to any one of claims 1 to 6.

20. 1. A computer-readable storage medium, comprising: The computer-readable storage medium stores program instructions and / or a video bitstream, which, when executed on a computer, enable the computer to perform the method according to any one of claims 8 to 13.

21. A computer program comprising:

7. A computer program storing program instructions and / or a video bitstream, which, when said program instructions and / or said video bitstream are executed on a computer, enables said computer to carry out the method according to any one of claims 1 to 6.

22. A computer program comprising:

14. The computer program storing program instructions and / or a video bitstream, which, when said program instructions and / or said video bitstream are executed on a computer, enables said computer to carry out the method according to any one of claims 8 to 13.

23. 1. A computer-readable storage medium, comprising: The computer-readable storage medium stores a video bitstream, where the video bitstream includes a first merge index; wherein when the video bitstream is executed on a computer, the computer: generating a merge candidate list for a coding block of video data partitioned into two geometric partitions when the coding block is enabled for a geometric partition merge mode, where the two geometric partitions include a first geometric partition and a second geometric partition; selecting a first merge candidate from the generated merge candidate list based on the first merge index of the first geometric partition, where the first merge index is used to indicate the first merge candidate; and calling a uni-predictive candidate derivation process if the selected first merge candidate is a bi-predictive motion vector, where an input to the uni-predictive candidate derivation process is the bi-predictive motion vector and an output from the uni-predictive candidate derivation process is a uni-predictive motion vector, the uni-predictive motion vector being a motion vector (MV) of the first geometric partition; Execute A computer-readable storage medium.

24. A storage medium storing a video bitstream encoded by the method according to any one of claims 1 to 6.

25. A storage medium storing a video bitstream encoded by the method according to any one of claims 8 to 13.

26. A data structure constituting an encoded bitstream of video data, the data structure constituting the encoded bitstream comprising a first merge index; wherein the data structure constituting the encoded bitstream, when executed on a computer, causes the computer to: generating a merge candidate list for a coding block of the video data partitioned into two geometric partitions when the coding block is enabled for a geometric partition merge mode, where the two geometric partitions include a first geometric partition and a second geometric partition; selecting a first merge candidate from the generated merge candidate list based on the first merge index of the first geometric partition, where the first merge index is used to indicate the first merge candidate; and calling a uni-predictive candidate derivation process if the selected first merge candidate is a bi-predictive motion vector, where an input to the uni-predictive candidate derivation process is the bi-predictive motion vector and an output from the uni-predictive candidate derivation process is a uni-predictive motion vector, the uni-predictive motion vector being a motion vector (MV) of the first geometric partition; A data structure constituting an encoded bitstream of video data that performs the steps of:

Citation Information

Patent Citations

  • Restrictions on unidirectional interpretation of prediction units in B-slices

    JP2015510358A

  • Restriction of prediction unit in b slice to uni-directional inter prediction

    JP2018142972A

  • Motion Vector Prediction for Video Coding

    JP2022503464A

  • System and method for video coding

    US20200029087A1