DECODING DEVICE, ENCODING DEVICE AND RELATED METHODS

By partitioning video blocks into triangular sub-blocks and applying distinct motion information, the method addresses the issue of large coding residuals in complex objects, enhancing prediction accuracy and coding efficiency.

BR122026009248A2Pending Publication Date: 2026-07-14HANGZHOU HIKVISION DIGITAL TECHNOLOGY CO LTD

Patent Information

Authority / Receiving Office
BR · BR
Patent Type
Applications
Current Assignee / Owner
HANGZHOU HIKVISION DIGITAL TECHNOLOGY CO LTD
Filing Date
2019-12-11
Publication Date
2026-07-14

AI Technical Summary

Technical Problem

Existing video coding methods using rectangular blocks for prediction fail to accurately represent objects with complex geometries, leading to large coding residuals due to undesirable prediction effects on certain parts of the object.

Method used

Partition a current block into two triangular sub-blocks and derive distinct motion information for each sub-block, enabling geometric partitioning mode with triangular partitioning to improve prediction accuracy and reduce coding residuals.

Benefits of technology

Enhances prediction accuracy and coding performance by allowing for tailored motion information per sub-block, thereby reducing coding residuals and improving overall video encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 60 DECODING DEVICE, ENCODING DEVICE AND RELATED METHODS Divided from BR112021012638-4 Field of Technique

[0001] The present invention relates to video encoding and decoding and, more particularly, to encoding through the use of geometric partitioning mode with triangular partitioning. Background

[0002] Generally, a video coding method can include processes such as predictive coding, transformation coding, quantization coding, filtering coding, and entropy coding. Predictive coding can include intraprediction coding and interprediction coding. Interprediction coding refers to predictive coding using pixel values ​​reconstructed from a temporal neighboring block of a current block (the temporal neighboring block and the current block are not located in the same image). Intraprediction coding refers to predictive coding using pixel values ​​reconstructed from a spatial neighboring block of the current block (the spatial neighboring block and the current block are located in the same image).

[0003] In interprediction coding, a motion vector (MV) can be used to represent a relative displacement between the current block of the current slice and a reference block of the reference image. For example, the current slice A and the reference image B have a high time-domain correlation. When a current block A1 of the current slice A needs to be transmitted, a reference block B1 that best matches the current block A1 can be searched in the reference image B, and the relative displacement between the current block A1 and the reference block B1 is determined and used as the motion vector of the current block A1. Petition 870260035762, dated 04 / 16 / 2026, page 12 / 93 2 / 60

[0004] There can be two different objects in a block corresponding to a physical object edge, such as a front part (i.e., a physical object) and a back part at the same time. In this case, if only a rectangular block is used for prediction, the prediction effect of a certain part of the object in the rectangular block may be undesirable, resulting in a large coding residual. Summary

[0005] The present invention provides a method for encoding and decoding video, which can be performed by a video encoder or a video decoder, and includes: partitioning a current block into a first triangular sub-block and a second triangular sub-block when the current block satisfies the specific conditions to enable a geometric partitioning mode with triangular partitioning and the geometric partitioning mode with triangular partitioning is determined to be enabled; obtaining first target motion information from the first triangular sub-block and second target motion information from the second triangular sub-block, wherein the first target motion information is different from the second target motion information; and performing an encoding process or a decoding process on the current block based on the first target motion information and the second target motion information.

[0006] The present invention provides a video decoder, which includes a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be invoked by the processor; when the processor executes the instructions, the processor is required to perform the video encoding and decoding method.

[0007] The present invention provides an encoder for Petition 870260035762, dated 04 / 16 / 2026, page 13 / 93 3 / 60 video, which includes a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be invoked by the processor; when the processor executes the instructions, the processor is required to perform the video encoding and decoding method.

[0008] The present invention provides a machine-readable storage medium in which computer instructions are stored. When the computer instructions are executed by a processor, the processor is required to perform the video encoding and decoding method. Brief description of the drawings

[0009] Figure 1 is a schematic diagram of a video encoding system structure according to an example of the present invention.

[0010] Figure 2 is a flowchart of a video decoding method according to an example of the present invention.

[0011] Figure 3 is a flowchart of a video encoding method according to an example of the present invention.

[0012] Figures 4A to 4B are schematic partition diagrams of an actual block according to an example of the present invention.

[0013] Figures 5A to 5C are schematic diagrams of candidate blocks according to an example of the present invention.

[0014] Figures 6A to 6C are schematic diagrams of the sub-block partitioning according to an example of the present invention.

[0015] Figures 7A to 7B are schematic diagrams of motion information storage according to an example of the present invention. Petition 870260035762, dated 04 / 16 / 2026, page 14 / 93 4 / 60

[0016] Figure 8 is a schematic block diagram of a video decoder according to an example of the present invention.

[0017] Figure 9 is a schematic block diagram of a video encoder according to an example of the present invention. Detailed description of the modalities

[0018] The terms used in the examples of the present invention are for the sole purpose of describing specific examples, rather than limiting the present invention. The singular forms of a, an, said, said, aeo used in the present invention and claims are also intended to include plural forms, unless the context clearly indicates otherwise. It should also be understood that the term and / or as used in the present invention refers to any or all possible combinations of one or more associated listed items.

[0019] It should be understood that although the terms first, second, third, etc. may be used in the examples of the present invention to describe various information, such information should not be limited by these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of the present invention, first information may also be referred to as second information and, similarly, second information may also be referred to as first information. Furthermore, the word "if" used may be interpreted as meaning by or when or in response to.

[0020] Examples of the present invention may involve the following concepts.

[0021] Intraprediction: coding by prediction using pixel values ​​reconstructed from a spatially neighboring block Petition 870260035762, dated 04 / 16 / 2026, page 15 / 93 5 / 60 (in the same image as the current block) of a current block. A variety of intraprediction modes have been proposed, and each intraprediction mode except a DC mode corresponds to a texture direction. The predicted pixels of the current block can be generated from the boundary reconstruction pixel values ​​of the neighboring block in its prediction direction. For example, if the image texture is in the horizontal direction, then a horizontal prediction mode might better predict the image information.

[0022] Inter-prediction: coding by prediction using reconstructed pixel values ​​from a temporally neighboring block (in a different image from the current block) of a current block. Part of the inter-prediction of mainstream video coding standards adopts a block-based motion compensation technology, where a better matching block is found in a reference image for the current block. This process is referred to as Motion Estimation (ME).

[0023] Motion Vector (MV). In interprediction coding, a motion vector is used to represent a relative displacement between a currently encoded block and a best-matched block in a reference image. Each block obtained by partitioning has a corresponding motion vector to be transmitted to a decoder. If the motion vector of each block is encoded and transmitted independently, especially when smaller blocks are obtained from partitioning, more bits must be consumed. In order to reduce the number of bits used to encode the motion vector, spatial correlation between neighboring image blocks can be used in video coding to predict the motion vector of the currently encoded block based on the motion vector of the neighboring encoded block, and then a prediction difference is encoded. Thus, the number of bits representing the motion vector... Petition 870260035762, dated 04 / 16 / 2026, page 16 / 93 6 / 60 motion can be effectively reduced. In the process of encoding the motion vector of the current image block, the motion vector of the neighboring encoded block is generally used to predict the motion vector of the current macroblock, and then a motion vector difference (MVD) between a predicted motion vector value (MVP) and an actual estimated motion vector value is encoded, thereby effectively reducing the number of bits encoded for MV.

[0024] Motion Information. Since the motion vector represents the displacement of the current image block relative to a block in a reference image, in order to accurately obtain the information of the indicated image block, in addition to the motion vector, a reference index is also needed to indicate which reference image is used for the current image block. In video encoding technology, for the current slice, a list of reference images can usually be established, and the reference index specifies which reference image listed in the reference image list is used by the current image block. Furthermore, many encoding technologies also support multiple reference image lists, so an index is needed to indicate which reference image list is used, and this index can be referred to as a reference direction.In video encoding technology, motion-related encoding information, such as motion vector, reference index, and reference direction, can be collectively referred to as motion information.

[0025] Rate Optimized Direction (RDO). There are usually two indicators to evaluate video coding efficiency: bit rate and peak signal-to-noise ratio (PSNR). The lower the bit stream, the higher the compression rate; Petition 870260035762, dated 04 / 16 / 2026, page 17 / 93 The higher the PSNR (7 / 60), the better the quality of the reconstructed image. Mode selection is usually based on a comprehensive evaluation of both indicators. For example, the cost corresponding to a mode can be calculated using the following formula: J(mode) = d + λ*R, where D represents distortion, usually measured by a sum of squared differences (SSE) between a reconstructed image block and a source image block; λ represents a Lagrange multiplier; R represents the actual number of bits required to encode an image block in that mode, including the total number of bits required to encode mode information, motion information, residuals, etc. The encoding mode selection decision based on the RDO (Response Domain) policy can usually guarantee satisfactory encoding performance.

[0026] Figure 1 schematically shows a structure of a video encoding system, which can be used to implement processing in an encoder according to an example of the present invention. The structure of the video encoding system may include an intraprediction module, a motion compensation / motion estimation module, a reference image buffer, a loop filtering module, a reconstruction module, a transform module, a quantization module, an inverse transform module, an inverse quantization module, an entropy encoder, etc. Similarly, the structure of the video decoding system corresponding to the structure of the video encoding system can be used to implement processing in a decoder according to an example of the present invention.

[0027] Some examples of the present invention will be described in detail below with reference to the accompanying drawings. Implementation 1 Petition 870260035762, dated 04 / 16 / 2026, page 18 / 93 8 / 60

[0028] Figure 2 is a flowchart of a video decoding method according to an example of the present invention. This method can be applied to a decoder, and may include steps 201 to 203.

[0029] Step 201, if a current block satisfies the specific conditions to enable geometric partitioning mode with triangular partitioning and the same is determined to enable geometric partitioning mode with triangular partitioning, the video decoder is configured to partition the current block into a first triangular sub-block and a second triangular sub-block, that is, the current block can be partitioned into two triangular sub-blocks.

[0030] Step 202, the video decoder is configured to obtain the first target motion information from the first triangular sub-block and the second target motion information from the second triangular sub-block. The first target motion information may be different from the second target motion information.

[0031] Step 203, the video decoder is configured to perform the current block decoding process based on the first target motion information and the second target motion information.

[0032] In one example, after receiving an encoded bitstream, the video decoder can perform a decoding process of encoded data corresponding to the current block in the received encoded bitstream based on the first motion target information and the second motion target information.

[0033] In the example of the present invention, if a current block satisfies the specific conditions to enable the geometric partitioning mode with triangular partitioning and the same is determined to enable the geometric partitioning mode with triangular partitioning, the current block is partitioned in the first Petition 870260035762, dated 04 / 16 / 2026, page 19 / 93 9 / 60 triangular sub-block and in the second triangular sub-block. Therefore, the current block can be predicted based on the first target movement information of the first triangular sub-block and the second target movement information of the second triangular sub-block. Therefore, prediction accuracy, prediction performance, and coding performance can be improved, and coding residuals can be reduced. Implementation 2

[0034] With reference to Figure 3, which is a flowchart of a video encoding method according to an example of the present invention. The method can be applied to an encoder and may include steps 301 to 303.

[0035] Step 301, if a current block satisfies the specific conditions to enable geometric partitioning mode with triangular partitioning and the same is determined to enable geometric partitioning mode with triangular partitioning, the video encoder is configured to partition the current block into the first triangular sub-block and the second triangular sub-block, that is, the current block can be partitioned into two triangular sub-blocks.

[0036] Step 302, the video encoder is configured to obtain the first target motion information from the first triangular sub-block and the second target motion information from the second triangular sub-block. The first target motion information may be different from the second target motion information.

[0037] Step 303, the video encoder is configured to encode the current block based on the first motion target information and the second motion target information.

[0038] In one example, the video encoder can encode the bitstream corresponding to the current block with Petition 870260035762, dated 04 / 16 / 2026, page 20 / 93 10 / 60 based on the first target movement information and the second target movement information to obtain an encoded bit stream.

[0039] In the example of the present invention, if a current block satisfies the specific conditions to enable geometric partitioning mode with triangular partitioning, and the same is determined to enable geometric partitioning mode with triangular partitioning, the current block is partitioned into the first triangular sub-block and the second triangular sub-block. Therefore, the current block can be predicted based on the first target motion information of the first triangular sub-block and the second target motion information of the second triangular sub-block. Therefore, prediction accuracy, prediction performance, and coding performance can be improved, and coding residuals can be reduced. Implementation 3

[0040] In steps 201 and 301, the video decoder / video encoder is configured to determine if the current block meets the specific conditions to enable geometric partitioning mode with triangular partitioning; if so, the current block is partitioned into the first triangular sub-block and the second triangular sub-block; and if not, the current block is not partitioned into the first triangular sub-block and the second triangular sub-block. Determining whether the current block meets the specific conditions may include the steps of: determining whether the slice type of a current slice in which the current block is located, the motion information mode of the current block, and the size information of the current block meet the specific conditions.

[0041] For example, if the slice type of the current slice is a B slice or a non-I slice, it can be determined that the slice type satisfies the specific conditions. Alternatively, if the slice type of the current slice allows intra-block copying, Petition 870260035762, dated 04 / 16 / 2026, page 21 / 93 11 / 60 it can be determined that the slice type satisfies the specific conditions.

[0042] In one example, if a current block motion information mode is a general merge mode, it can be determined that the motion information mode satisfies the specific conditions. However, when the current block motion information mode is another type of mode (such as Advanced Motion Vector Prediction (AMVP) mode or similar), it can also be determined that the motion information mode satisfies the specific conditions.

[0043] In one example, if the width of the current block is greater than or equal to a first value, and the height of the current block is greater than or equal to a second value, it can be determined that the size information of the current block satisfies the specific conditions. Alternatively, if the width of the current block is greater than or equal to a third value, or the height of the current block is greater than or equal to a fourth value, it can be determined that the size information of the current block satisfies the specific conditions. Alternatively, if the width of the current block is greater than or equal to a fifth value and less than or equal to a sixth value, and the height of the current block is greater than or equal to a seventh value and less than or equal to an eighth value, it can be determined that the size information of the current block satisfies the specific conditions.Alternatively, if the width of the current block is greater than or equal to one-ninth value and less than or equal to one-tenth value, or the height of the current block is greater than or equal to one-eleventh value and less than or equal to one-twelfth value, it can be determined that the size information of the current block satisfies the specific conditions. Alternatively, if the width of the current block is greater than or equal to one-thirteenth value and less than or equal to one-fourteenth value, the height of the current block is greater than or equal to one-fifteenth value and less than or equal to one-sixteenth value, and one. Petition 870260035762, dated 04 / 16 / 2026, p. 22 / 93 12 / 60 The area of ​​the current block is greater than or equal to one seventeenth value and less than or equal to one eighteenth value, it can be determined that the current block size information satisfies the specific conditions.

[0044] The values ​​above can be defined based on experience, such as 8, 16, 32, 64, 128, and so on. In an example, the first value could be 8, the second value could be 8, the third value could be 8, the fourth value could be 8, the fifth value could be 8, the sixth value could be 128, the seventh value could be 8, the eighth value could be 128, the ninth value could be 8, the tenth value could be 32, the eleventh value could be 8, the twelfth value could be 32, the thirteenth value could be 8, the fourteenth value could be 64, the fifteenth value could be 8, the sixteenth value could be 64, the seventeenth value could be 16, and the eighteenth value could be 1024.

[0045] Regarding stage 201 and stage 301, several examples are given below.

[0046] Example 1. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first triangular subblock and the second triangular subblock: The current slice is a B slice, that is, the current slice allows two reference image lists; The current block's motion information mode is the general merge mode; and the area (width*height) of the current block is greater than or equal to N*N, where N is 8, for example.

[0047] Example 2. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first subblock. Petition 870260035762, dated 04 / 16 / 2026, page 23 / 93 13 / 60 triangular block and in the second triangular sub-block: The current slice is a non-I slice, that is, the current slice allows at least one reference image list; The current block's motion information mode is the general merge mode; and the area (width * height) of the current block is greater than or equal to N*N, where N is 8, for example.

[0048] Example 3. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first triangular subblock and the second triangular subblock: The current slice is a B slice, that is, the current slice allows two reference image lists; The current block's motion information mode is general merge mode; and the width or height of the current block is greater than or equal to N, where N is 8, for example.

[0049] Example 4. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first triangular subblock and the second triangular subblock: The current slice is a non-I slice, that is, the current slice allows at least one reference image list; The current block's motion information mode is general merge mode; and the width or height of the current block is greater than or equal to N, where N is 8, for example.

[0050] Example 5. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first subblock. Petition 870260035762, dated 04 / 16 / 2026, page 24 / 93 14 / 60 triangular block and in the second triangular sub-block: The current slice is a non-I slice, that is, the current slice allows at least one reference image list; The current block's motion information mode is the general merge mode; The width or height of the current block is greater than or equal to N, where N is 8, for example; and the width or height of the current block is less than or equal to M, where M is 128, for example.

[0051] Example 6. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first triangular subblock and the second triangular subblock: The current slice is a non-I slice, that is, the current slice allows at least one reference image list; The current block's motion information mode is the general merge mode; The width or height of the current block is greater than or equal to N, where N is 8, for example; and the area (that is, width*height) of the current block is less than or equal to M*M, where M is 32, for example.

[0052] Example 7. If the current block satisfies all of the following conditions, the current block is partitioned into the first triangular subblock and the second triangular subblock; otherwise, the current block is not partitioned into the first triangular subblock and the second triangular subblock: The current slice is a non-I slice, that is, the current slice allows at least one reference image list; The current block's motion information mode is the general merge mode; the width of the current block is within a range of [Wmin, Wmax], where Wmin is, for example, 8 and Wmax is, for example, 64; Petition 870260035762, dated 04 / 16 / 2026, page 25 / 93 15 / 60 the height of the current block is within a range of [Hmin, Hmax], Hmin is, for example, 8, Hmax is, for example, 64; and the area (i.e., width * height) of the current block is within the range of [Smin, Smax]. Smin is 16, for example, and Smax is 1024, for example.

[0053] Example 8. For any of Examples 1 through 7, the restriction on the slice type can be modified to: the current slice allows intrablock copying (that is, it allows searching for blocks similar to the current block in the reconstructed blocks of the current slice that has been decoded). For example, for Example 1, the listed conditions can become: The current slice allows intra-block copying; The current block's motion information mode is the general merge mode; and the area (width*height) of the current block is greater than or equal to N*N, where N is 8, for example.

[0054] Example 9. For any of Examples 1 through 8, the constraint on the motion information mode can be modified to: the motion information mode of the current block is the general merge mode, and not any of a sub-block partition mode, a multi-hypothesis mode, or a general motion information difference encoding merge mode. That is, when any of the sub-block partition mode, multi-hypothesis mode, general motion information difference encoding merge mode is enabled for the current block, it is determined that the current block does not satisfy the specific conditions and thus the current block is not partitioned into the first triangular sub-block and the second triangular sub-block. Implementation 4

[0055] In stage 201 and stage 301, if the current block Petition 870260035762, dated 04 / 16 / 2026, page 26 / 93 16 / 60 satisfies the specific conditions to enable geometric partitioning mode with triangular partitioning, and to enable geometric partitioning mode with triangular partitioning, the video decoder / video encoder is configured to partition the current block into the first triangular subblock and the second triangular subblock. In one example, the current block can be partitioned into the first triangular subblock and the second triangular subblock using a first diagonal method (i.e., using a diagonal that forms an acute angle (e.g., a 45-degree angle) with the horizontal direction to the right), as shown in Figure 4A. Alternatively, the current block can be partitioned into the first triangular subblock and the second triangular subblock using a second diagonal method (i.e., using a diagonal with an obtuse angle (e.g., a 135-degree angle) from the horizontal direction to the right), as shown in Figure 4B.

[0056] For example, in the decoder / encoder, the current block can be partitioned into the first triangular sub-block and the second triangular sub-block using the following approaches.

[0057] Approach 1. The video encoder agrees to partition the current block with the first diagonal method by default via protocol agreement, and the video decoder agrees to partition the current block with the first diagonal method by default via protocol agreement. Based on this, the video encoder is configured to partition the current block into the first triangular sub-block and the second triangular sub-block with the first diagonal method, and the video decoder is configured to partition the current block into the first triangular sub-block and the second triangular sub-block with the first diagonal method.

[0058] Approach 2. The video encoder agrees to Petition 870260035762, dated 04 / 16 / 2026, page 27 / 93 17 / 60 partitions the current block using the second diagonal method by default via protocol agreement, and the video decoder agrees to partition the current block using the second diagonal method by default via protocol agreement. Based on this, the video encoder is configured to partition the current block into the first triangular sub-block and the second triangular sub-block using the second diagonal method, and the video decoder is configured to partition the current block into the first triangular sub-block and the second triangular sub-block using the second diagonal method.

[0059] Approach 3. The video encoder is configured to determine a rate 1 distortion cost corresponding to partitioning with the first diagonal method and a rate 2 distortion cost corresponding to partitioning with the second diagonal method. If the rate 1 distortion cost is less than the rate 2 distortion cost, the video encoder is configured to partition the current block into the first triangular subblock and the second triangular subblock with the first diagonal method. The encoded bitstream sent by the video encoder to the decoder carries the first indication information, and the first indication information specifies that the current block is partitioned with the first diagonal method.The video decoder is configured to derive the encoded bitstream from the encoder, and if the encoded bitstream port first indicates information, the current block is partitioned into the first triangular sub-block and the second triangular sub-block using the first diagonal method. Conversely, if the distortion cost of rate 1 is greater than the distortion cost of rate 2, the video encoder partitions the current block into the first triangular sub-block and the second triangular sub-block using the second diagonal method. The encoded bitstream sent by the video encoder to the... Petition 870260035762, dated 04 / 16 / 2026, page 28 / 93 The 18 / 60 decoder carries the second indication information, and the second indication information specifies that the current block is partitioned using the second diagonal method. The video decoder is configured to derive the encoded bitstream from the encoder, and if the encoded bitstream carries the second indication information, the current block is partitioned into the first triangular sub-block and the second triangular sub-block using the second diagonal method. Implementation 5

[0060] In step 202 and step 302, the video decoder / video encoder can obtain the first target motion information from the first triangular sub-block and the second target motion information from the second triangular sub-block through the following approaches.

[0061] Approach 1. A first list of candidate movement information is constructed, and the first list of candidate movement information may include a plurality of candidate movement information; candidate movement information is selected from the first list of candidate movement information as the first target movement information of the first triangular sub-block. The first target movement information is excluded from the first list of candidate movement information, and other candidate movement information is selected from the remaining candidate movement information in the first list of candidate movement information as the second target movement information of the second triangular sub-block. In this way, it can be ensured that the first target movement information is different from the second target movement information.

[0062] In one example, in order to construct the first list of candidate movement information, the candidate blocks Petition 870260035762, dated 04 / 16 / 2026, page 29 / 93 19 / 60 corresponding to the current block can be obtained, and the movement information of the candidate blocks can be added to the first list of candidate movement information. If a candidate block is a one-way prediction block, the candidate block movement information includes one-way movement information of the candidate block; if a candidate block is a two-way prediction block, the candidate block movement information includes first candidate block movement information (i.e., L0 candidate block movement information) and second candidate block movement information (i.e., L1 candidate block movement information), but does not include weighted movement information from the first candidate block movement information and the second candidate block movement information.

[0063] For example, with reference to Figure 5A, the blocks in the 7 positions shown can be used as candidate blocks corresponding to the current block, where block 1, block 2, block 3, block 4, and block 5 are candidate blocks in the current slice (i.e., spatial candidate blocks), and blocks 6 and 7 are candidate blocks in the reference image (i.e., time-domain candidate blocks). The motion information of the candidate blocks in these 7 positions can be collected to construct the first motion candidate information list.If the length of the first list of candidate move information does not reach a predefined maximum length MaxL (for example, 7), move information from several available non-spatial-neighboring sub-blocks may be added to the end of the first list of candidate move information (that is, a non-spatial-neighboring sub-block is also referred to as a candidate block corresponding to the current block), and the non-spatial-neighboring sub-block refers to a sub-block that does not have one. Petition 870260035762, dated 04 / 16 / 2026, page 30 / 93 20 / 60 boundary line or boundary point with the current block.

[0064] In one example, after the motion information of the candidate blocks is collected, the motion information is sorted into an order of one-way motion information, two-way prediction L0 motion information, and two-way prediction L1 motion information, or into an order of two-way prediction L0 motion information, two-way prediction L1 motion information, and one-way motion information, and the collected motion information is added to the first list of candidate motion information one by one according to the sorting result.

[0065] In one example, each time movement information is added to the first list of movement candidate information, it can be determined whether a number of movement candidate information in the first list of movement candidate information have reached an upper limit M. If the number has reached the upper limit M, the addition of movement information is rejected, and the process for adding movement information is finalized. If the number has not reached the upper limit M, it can continue to add movement information; for example, the next movement information is added to the first list of movement candidate information after the addition of the current movement information is completed. The value of the upper limit M can be configured based on experience, to be 5, for example.

[0066] In one example, each time movement information is added to the first list of movement candidate information, it can be determined whether the movement information is consistent with some movement information that already exists in the first list. Petition 870260035762, dated 04 / 16 / 2026, page 31 / 93 21 / 60 Movement candidate information. If there is duplicate movement information in the first list of movement candidate information, the movement information is rejected from being added to the first list of movement candidate information. If there is no duplicate movement information, the movement information is added to the first list of movement candidate information. In this way, movement information can be duplicated in the first list of movement candidate information. Alternatively, it is also possible not to determine if the movement information to be added duplicates with some existing movement information in the first list of movement candidate information, but to directly add the movement information to the first list of movement candidate information.

[0067] In one example, when all the collected movement information is added to the first list of movement candidate information, the number of movement candidate information in the first list of movement candidate information is less than the upper limit M, so no movement information can be populated in the first list of movement candidate information.

[0068] In one example, when the first list of candidate movement information is constructed, each time the movement information of the candidate block of the current block needs to be collected, there is no need to compare the movement information of the candidate block with the movement information that was collected for the current block to see if they are the same, but to directly collect the movement information of the candidate block.

[0069] Next, several examples of constructing the first list of movement candidate information in Approach 1 will be described. Petition 870260035762, dated 04 / 16 / 2026, page 32 / 93 22 / 60

[0070] Example 1. Starting from the candidate blocks corresponding to the current block, after obtaining the motion information (such as motion vectors) based on the position sequence shown in Figure 5A, the obtained motion information is sorted into an order of one-way motion vector, two-way predicted L0 motion vector, and two-way predicted L1 motion vector (without an average value of L0 motion vector and two-way predicted L1 motion vector), and the obtained motion information is added to the first motion candidate information list one by one according to the sorting result. During the filling process, if the number of motion candidate information in the first motion candidate information list reaches M (e.g., 5), the filling is interrupted.During the population process, it is necessary to repeatedly check for duplicates to ensure that the first list of movement candidate information does not contain the same movement information. When the number of movement candidate information is less than M after the population process is completed, no movement vector is populated.

[0071] Example 2. Starting from the candidate blocks corresponding to the current block, after obtaining the motion information (as motion vectors) based on the position sequence shown in Figure 5A, the obtained motion information is sorted into an order of one-way motion vector, two-way predicted L0 motion vector, and two-way predicted L1 motion vector (without an average value of L0 motion vector and two-way predicted L1 motion vector), and the obtained motion information is added to the first list of candidate motion information one by one according to the result of Petition 870260035762, dated 04 / 16 / 2026, page 33 / 93 23 / 60 classification. During the filling process, if the number of movement candidate information in the first movement candidate information list reaches M (for example, 5), the filling of the movement information is interrupted. During the filling process, it is not necessary to check for duplicates in the first movement candidate information list. When the number of movement candidate information is less than M after the filling process is completed, no movement vector is filled.

[0072] Example 3. Starting from the candidate blocks corresponding to the current block, after obtaining the motion information (as motion vectors) based on the position sequence shown in Figure 5A, the obtained motion information is sorted into an order of two-way predicted L0 motion vector, two-way predicted L1 motion vector, and one-way motion vector (without an average value of L0 motion vector and two-way predicted L1 motion vector), and the obtained motion information is added to the first motion candidate information list one by one according to the sorting result. During the filling process, if the number of motion candidate information in the first motion candidate information list reaches M (e.g., 5), the filling is interrupted.During the population process, it is necessary to repeatedly check for duplicates to ensure that the first list of movement candidate information does not contain the same movement information. When the number of movement candidate information is less than M after the population process is completed, no movement vector is populated.

[0073] Example 4. From the candidate blocks Petition 870260035762, dated 04 / 16 / 2026, page 34 / 93 24 / 60 corresponding to the current block, motion information (such as motion vectors) is obtained based on the position sequence shown in Figure 5A. If the candidate blocks are one-way prediction blocks, i.e., one-way motion information is used for the candidate blocks, the one-way motion information is added to the first motion candidate information list based on the sequence. If the candidate blocks are two-way prediction blocks, i.e., two-way motion information is used for the candidate blocks, either L0 motion information or L1 motion information is added to the first motion candidate information list based on the sequence. During the filling process, if the number of motion candidate information in the first motion candidate information list reaches M (e.g., 5), the filling is interrupted.During the population process, it is necessary to repeatedly check for duplicates to ensure that the first list of movement candidate information does not contain the same movement information. When the number of movement candidate information is less than M after the population process is completed, no movement vector is populated.

[0074] Example 5. If the length of the first candidate motion information list constructed after traversing all candidate blocks shown in Figure 5A does not reach the predefined maximum length MaxL (e.g., 7), motion information from several available non-spatial-neighboring sub-blocks is added to the end of the first candidate motion information list. Non-spatial-neighboring sub-blocks refer to sub-blocks that do not share boundary lines or boundary points with the current block. Petition 870260035762, dated 04 / 16 / 2026, page 35 / 93 25 / 60

[0075] Example 6. Starting from the candidate blocks corresponding to the current block, after obtaining the motion information (as motion vectors) based on the position sequence shown in Figure 5A, the obtained motion information is sorted into an order of one-way motion vector, two-way predicted L0 motion vector, and two-way predicted L1 motion vector (without an average value of the L0 motion vector and two-way predicted L1 motion vector), and the obtained motion information is added to the first motion candidate information list one by one according to the sorting result. During the filling process, if the number of motion candidate information in the first motion candidate information list reaches M (e.g., 5), the filling of motion information is interrupted.During the population process, for the one-way motion vector and the two-way L0 prediction motion vector, it is necessary to check for duplicates in the motion information existing in the first motion candidate information list to ensure that the first motion candidate information list does not contain the same motion information; and for the two-way L1 prediction motion vector, it is not necessary to check for duplicates, since the cost is high for a large number of motion information in the first motion candidate information list (due to the fact that all motion information in the first motion candidate information list needs to be compared).

[0076] Example 7. When adding movement information to the first list of movement candidate information, two processes are involved. One process consists of the movement information collection process, that is, the Petition 870260035762, dated 04 / 16 / 2026, page 36 / 93 26 / 60 movement information from the candidate blocks is collected, and the other process consists of adding movement information, that is, the movement information is added to the first list of candidate movement information. An example of the movement information collection process is described below.

[0077] In the process of collecting motion information from candidate blocks, it is possible to determine the likelihood that the motion information of the current candidate block is exactly the same as the motion information previously collected. If the motion information of the current candidate block is exactly the same as the motion information previously collected, the process of collecting the motion information of the current candidate block can be skipped. In this example, the motion information of the current candidate block can only be compared to the motion information of the candidate block closest to the current candidate block.

[0078] For example, with reference to Figure 5A, firstly, the motion information of candidate block 1 is collected. Since candidate block 1 is the first candidate block, no comparison is necessary, and the motion information of candidate block 1 is collected directly.

[0079] So, when the movement information of candidate block 2 is collected, it can be determined whether candidate block 1 is available. If it is available, it can be determined whether the movement information of candidate block 2 is exactly the same as that of candidate block 1. If they are exactly the same, the collection of movement information from candidate block 2 is not carried out, and if they are not the same, the collection of movement information from candidate block 2 is carried out.

[0080] So, by collecting the movement information of candidate block 3, it can be determined whether the block Petition 870260035762, dated 04 / 16 / 2026, page 37 / 93 27 / 60 candidate 2, which is close to candidate block 3, is available. If candidate block 2 is available, it can be determined whether the movement information of candidate block 3 and the movement information of candidate block 2 are exactly the same. If they are exactly the same, the collection of movement information from candidate block 3 is not performed, and if they are not the same, the collection of movement information from candidate block 3 is performed. It should be noted that the movement information from candidate block 3 is no longer compared to the movement information from candidate block 1, which is far from candidate block 3.

[0081] So, when collecting the movement information of candidate block 4, it can be determined whether candidate block 1, which is close to candidate block 4, is available. If candidate block 1 is available, it can be determined whether the movement information of candidate block 4 and the movement information of candidate block 1 are exactly the same. If they are exactly the same, the collection of movement information from candidate block 4 is not performed, and if they are not the same, the collection of movement information from candidate block 4 is performed. It should be noted that the movement information from candidate block 4 is no longer compared to the movement information from candidate blocks 2 and 3, which are far from candidate block 4.

[0082] So, by collecting the movement information of candidate block 5, it can be determined whether candidate block 1, which is next to candidate block 5, is available. If candidate block 1 is available, it can be determined whether the movement information of candidate block 5 is exactly the same as that of candidate block 1. If they are exactly the same, the information of Petition 870260035762, dated 04 / 16 / 2026, page 38 / 93 28 / 60 movement data for candidate block 5 is not collected. If they are not the same, it can be determined whether candidate block 2, which is close to candidate block 5, is available. If available, it can be determined whether the movement data for candidate block 5 and the movement data for candidate block 2 are exactly the same. If they are exactly the same, the collection of movement data for candidate block 5 is not performed, and if they are not the same, the collection of movement data for candidate block 5 is performed. It should be noted that the movement data for candidate block 5 is no longer compared to the movement data for candidate blocks 3 and 4, which are far from candidate block 5.

[0083] Example 8. In the process of collecting movement information from candidate blocks, there is no need to determine if the movement information of the current candidate block is exactly the same as the movement information previously collected, but the movement information of the current candidate block is directly collected. Even if the movement information of the current candidate block is exactly the same as the movement information previously collected, it is subsequently possible to perform duplicate checking operations to avoid the same movement information in the first list of candidate movement information.

[0084] Next, the process of selecting candidate movement information from the first list of candidate movement information as the first target movement information of the first triangular sub-block in Approach 1 will be described.

[0085] Approach a1. The video encoder can define the initial target information for standard motion through protocol agreement. For example, the video encoder can Petition 870260035762, dated 04 / 16 / 2026, page 39 / 93 29 / 60 define the top motion candidate information in the first motion candidate information list as the first motion target information of the first triangular subblock by default. The video decoder can set the default first motion target information through protocol agreement. For example, the video decoder can set the top motion candidate information in the first motion candidate information list as the first motion target information of the first triangular subblock by default.

[0086] Approach a2. The video encoder can determine a rate distortion cost corresponding to each of the motion candidate information in the first motion candidate information list, and use the motion candidate information corresponding to the lowest rate distortion cost than the motion target information of the first triangular sub-block. The encoded bitstream sent by the video encoder to the decoder can carry the third indication information, and the third indication information specifies an index value of the first motion target information in the first motion candidate information list. The video decoder is configured to derive the encoded bitstream from the encoder.If the encoded bitstream carries the third indication information, the index value is used to derive the move candidate information corresponding to the index information of the first move candidate information list, and the move candidate information is determined as the first move target information.

[0087] Next, the selection process for other candidate movement information from the first list of candidate movement information as the second Petition 870260035762, dated 04 / 16 / 2026, page 40 / 93 30 / 60 target movement information from the second triangular sub-block in Approach 1 will be described.

[0088] Approach b1. The video encoder can define the second default motion target information through protocol agreement. For example, the video encoder can define the second top motion candidate information in the first motion candidate information list as the second triangular sub-block motion target information by default. The video decoder can define the second default motion target information through protocol agreement. For example, the video decoder can define the second top motion candidate information in the first motion candidate information list as the second triangular sub-block motion target information by default.

[0089] Approach b2. The video encoder can exclude the first motion target information from the first motion candidate information list (i.e., not select the first motion target information in the first motion candidate information list) and, based on this, the video encoder can determine a rate distortion cost corresponding to each of the remaining motion candidate information in the first motion candidate information list (i.e., the motion candidate information remaining after excluding the first motion target information), and use the motion candidate information corresponding to the minimum rate distortion cost as the second motion target information of the second triangular sub-block. The encoded bitstream sent by the video encoder to the decoder can carry fourth indication information, which specifies an index value of the second information. Petition 870260035762, dated 04 / 16 / 2026, page 41 / 93 31 / 60 motion target in the first motion candidate information list. The video decoder is configured to derive the encoded bitstream from the encoder. If the encoded bitstream carries the fourth indication information, the index value is used to select the motion candidate information corresponding to the index information from the first motion candidate information list, and then the motion candidate information is determined as the second motion target information. Implementation 6

[0090] In step 202 and step 302, the video decoder / video encoder can obtain the first target motion information from the first triangular sub-block and the second target motion information from the second triangular sub-block through the following approaches.

[0091] Approach 2. A second list of candidate move information corresponding to the first triangular sub-block and a third list of candidate move information corresponding to the second triangular sub-block are constructed. The second list of candidate move information includes a plurality of candidate move information. The third list of candidate move information includes a plurality of candidate move information. Candidate move information is selected from the second list of candidate move information as the first target move information of the first triangular sub-block, and candidate move information is selected from the third list of candidate move information as the second target move information of the second triangular sub-block.The first ones. Petition 870260035762, dated 04 / 16 / 2026, page 42 / 93 32 / 60 target movement information is different from the second target movement information.

[0092] In one example, in order to construct the second list of candidate move information corresponding to the first triangular sub-block, the first candidate blocks corresponding to the first triangular sub-block can be obtained and the move information of each first candidate block can be added to the second list of candidate move information.If a first candidate block is a one-way prediction block, the first candidate block's motion information includes the one-way motion information of the first candidate block; if the first candidate block is a two-way prediction block, the first candidate block's motion information includes first candidate block motion information (i.e., L0 motion information of the first candidate block) and / or second candidate block motion information (i.e., L1 motion information of the first candidate block), but does not include the weighted motion information of the first candidate block motion information and the second candidate block motion information.

[0093] In one example, in order to construct the third list of candidate motion information corresponding to the second triangular sub-block, the second candidate blocks corresponding to the second triangular sub-block can be obtained, and the motion information of each second candidate block can be added to the third list of candidate motion information. If a second candidate block is a one-way prediction block, the motion information of the second candidate block includes the one-way motion information of the second candidate block; if the second candidate block is a two-way prediction block, Petition 870260035762, dated 04 / 16 / 2026, page 43 / 93 33 / 60 The movement information for the second candidate block includes the first movement information for the second candidate block (i.e., the L0 movement information for the second candidate block) and / or the second movement information for the second candidate block (i.e., the L1 movement information for the second candidate block), but does not include the weighted movement information for the first movement information for the second candidate block and the second movement information for the second candidate block.

[0094] If the current block is partitioned into the first triangular subblock and the second triangular subblock using the second diagonal method, the first triangular subblock is the triangular subblock on the upper right side, and the second triangular subblock is the triangular subblock on the lower right side. Based on this, the first candidate blocks corresponding to the first triangular subblock may include, but are not limited to: neighboring blocks on the upper side of the current block, and time-domain candidate blocks in images other than the current slice. The second candidate blocks corresponding to the second triangular subblock may include, but are not limited to: neighboring blocks on the left side of the current block, and time-domain candidate blocks in images other than the current slice.

[0095] For example, the blocks in the 5 positions shown in Figure 5B can be used as the first candidate blocks corresponding to the first triangular sub-block, where block 2, block 3, and block 5 are candidate blocks in the current slice, and block 6 and block 7 are candidate blocks in other images (i.e., time-domain candidate blocks). The blocks in the 5 positions shown in Figure 5C can be used as the second candidate blocks corresponding to the second triangular sub-block, where block 1, block 4, and block 5 are candidate blocks in the current slice, and block 6 and block 7 are Petition 870260035762, dated 04 / 16 / 2026, page 44 / 93 34 / 60 candidate blocks in other images (i.e., time-domain candidate blocks).

[0096] In one example, motion information from candidate blocks can be collected. If the candidate block is a one-way prediction block, the candidate block motion information includes the candidate block's one-way motion information; if the candidate block is a two-way prediction block, the candidate block motion information includes the candidate block's L0 motion information and / or the candidate block's L1 motion information, but does not include the motion-weighted information from the candidate block's L0 motion information and the candidate block's L1 motion information.

[0097] In one example, after the motion information of the candidate blocks (as shown in Figure 5B or Figure 5C) is collected, the collected motion information is sorted into an order of one-way motion information, two-way prediction L0 motion information, and two-way prediction L1 motion information, and the collected motion information is added to the second motion candidate information list or the third motion candidate information list one by one according to the sorting result.Alternatively, the collected motion information is classified into an order of L0 two-way prediction motion information, L1 two-way prediction motion information, and one-way motion information, and the collected motion information is added to the second motion candidate information list or the third motion candidate information list one by one according to the classification result. Petition 870260035762, dated 04 / 16 / 2026, page 45 / 93 35 / 60

[0098] In one example, each time movement information is added to the second list of movement candidate information or the third list of movement candidate information, it can be determined whether a number of movement candidate information in the second list of movement candidate information or the third list of movement candidate information have reached an upper limit M. If the number has reached the upper limit M, the addition of the movement information is rejected, and the process for adding the movement information is terminated; and if the number has not reached the upper limit M, it can continue to add movement information. After the current movement information is added, the next movement information is added to the second list of movement candidate information or the third list of movement candidate information.The value of the upper limit M could be 4, for example.

[0099] In one example, whenever movement information is added to the second list of movement candidate information or the third list of movement candidate information, it can be determined whether the movement information is consistent with some movement information that already exists in the second list of movement candidate information or the third list of movement candidate information. If there is such duplicate movement information in the second list of movement candidate information or the third list of movement candidate information, the movement information is rejected from being added to the second list of movement candidate information or the third list of movement candidate information. If there is no such movement information, the movement information is added to the second list of Petition 870260035762, dated 04 / 16 / 2026, page 46 / 93 36 / 60 candidate movement information or to the third candidate movement information list. In this way, duplicate movement information can be avoided in the second candidate movement information list or the third candidate movement information list. Alternatively, it is also possible to not determine whether the movement information to be added duplicates with existing movement information, but to directly add the movement information to the second candidate movement information list or the third candidate movement information list.

[0100] In one example, if after all the collected movement information is added to the second list of movement candidate information or the third list of movement candidate information, the number of movement candidate information in the second list of movement candidate information or the third list of movement candidate information is less than the upper limit M, then no movement information can be filled in the second list of movement candidate information or the third list of movement candidate information.

[0101] In one example, when building the second list of candidate movement information or the third list of candidate movement information, each time the movement information of the candidate block of the current block is collected, there is no need to compare the movement information of the candidate block with the movement information that was collected for the current block to see if they are consistent, but to directly collect the movement information of the candidate block.

[0102] It should be noted that examples 1 to 8 in the above implementation 5 can also be applied to implementation 6, except for the fact that the first list of Petition 870260035762, dated 04 / 16 / 2026, page 47 / 93 37 / 60 motion candidate information is replaced by the second motion candidate information list or the third motion candidate information list. The candidate block is the candidate block shown in Figure 5B or Figure 5C, instead of the candidate block shown in Figure 5A. The other steps are similar, and the details are not described again in the present invention.

[0103] Next, the process of selecting the candidate movement information from the second list of candidate movement information as the first target movement information of the first triangular sub-block in Approach 2 will be described.

[0104] c1 Approach. The video encoder can define the first default motion target information through protocol agreement. For example, the video encoder can define the top motion candidate information in the second motion candidate information list as the first motion target information of the first triangular subblock by default. The video decoder can define the first default motion target information through protocol agreement. For example, the video decoder can define the top motion candidate information in the second motion candidate information list as the first motion target information of the first triangular subblock by default.

[0105] c2 approach. The video encoder can determine a rate distortion cost corresponding to each of the motion candidate information in the second motion candidate information list, and use the motion candidate information corresponding to the lowest rate distortion cost than the motion target information of the first triangular sub-block. The encoded bitstream sent by the video encoder to the Petition 870260035762, dated 04 / 16 / 2026, page 48 / 93 The 38 / 60 decoder can carry fifth indication information, and the fifth indication information specifies an index value of the first motion target information in the second motion candidate information list. The video decoder is configured to derive the encoded bitstream from the encoder. If the encoded bitstream carries fifth indication information, the index value indicated by the fifth indication information is used to retrieve the corresponding motion candidate information from the second motion candidate information list, and the motion candidate information is used as the first motion target information.

[0106] Next, the process of selecting the candidate movement information from the third list of candidate movement information as the second target movement information of the second triangular sub-block in Approach 2 will be described.

[0107] Approach d1. The video encoder can define the second default motion target information through protocol agreement. For example, the video encoder can define the top motion candidate information in the third motion candidate information list as the second motion target information of the second triangular sub-block by default. The video decoder can define the second default motion target information through protocol agreement. For example, the decoder can define the top motion candidate information in the third motion candidate information list as the second motion target information of the second triangular sub-block by default.

[0108] d2 approach. The video encoder can determine a rate distortion cost corresponding to each of the motion candidate information in the third Petition 870260035762, dated 04 / 16 / 2026, page 49 / 93 39 / 60 motion candidate information list, and use the motion candidate information corresponding to the minimum rate distortion cost as the second motion target information of the second triangular sub-block. The encoded bitstream sent by the video encoder to the decoder may carry sixth indication information, which specifies an index value of the second motion target information in the third motion candidate information list. The video decoder is configured to derive the encoded bitstream from the encoder. If the encoded bitstream carries the sixth indication information, the index value indicated by the sixth indication information is used to retrieve the corresponding motion candidate information from the third motion candidate information list, and then the motion candidate information is used as the second motion target information. Implementation 7

[0109] If the current block is partitioned into the first triangular subblock and the second triangular subblock using the first diagonal method in step 201 / step 301, then in step 202 / step 302, the first list of candidate movement information can be constructed, and the first target movement information and the second target movement information are determined based on the first list of candidate movement information; that is, Implementation 5 can be adopted. If the current block is partitioned into the first triangular subblock and the second triangular subblock using the second diagonal method in step 201 / step 301, then in step 202 / step 302, a second list of candidate movement information corresponding to the first triangular subblock and a third list of candidate movement information corresponding to the Petition 870260035762, dated 04 / 16 / 2026, pp. 50 / 93 40 / 60 second triangular sub-block can be constructed, the first target movement information is determined based on the second list of candidate movement information and the second target movement information is determined based on the third list of candidate movement information, that is, Implementation 6 can be adopted.

[0110] In one example, it doesn't matter whether the current block is partitioned with the first diagonal method or the current block is partitioned with the second diagonal method, Implementation 5 can be adopted. In another example, if the current block is partitioned with the first diagonal method, that is, the current block is partitioned in a 45-degree direction, Implementation 5 can be adopted, and the upper bound M is 4, for example. If the current block is partitioned with the second diagonal method, that is, the current block is partitioned in a 135-degree direction, Implementation 6 can be adopted.

[0111] With reference to Implementation 6, the first triangular subblock is a triangular subblock on the upper right side. As shown in Figure 5B, the first candidate blocks of the first triangular subblock are block 2, block 3, block 5, block 6, and block 7 in sequence, that is, block 1 and block 4, which are furthest from the first triangular subblock, are excluded. As shown in Figure 5C, the second candidate blocks of the second triangular subblock are block 1, block 4, block 5, block 6, and block 7 in sequence, that is, block 2 and block 3, which are furthest from the second triangular subblock, are excluded. Furthermore, the upper bound value M can be 4, for example.

[0112] In one example, a signaling bit can be encoded to indicate whether the partition is performed in a 45-degree or 135-degree direction. If it is partitioned in a 45-degree direction, the index of combinations M*(M-1) can be encoded according to the truncated unit code; if it is Petition 870260035762, dated 04 / 16 / 2026, p. 51 / 93 41 / 60 partitioned in a 135-degree direction, the combination index M*M can be encoded according to the truncated unitary code. In an example, if they are partitioned in a 45-degree direction and Implementation 5 is adopted (that is, the first move target information and the second move target information are selected from the first move candidate information list), since there is M move candidate information (e.g., M is 4) in the first move candidate information list, the first move target information has M (e.g., M is 4) possible choices, and after excluding the first move target information from the first move candidate information list, the second move target information has (M-1) possible choices and therefore the index of the move information is a combination index M*(M-1).If they are partitioned in a 135-degree direction and Implementation 6 is adopted (that is, the first target movement information is selected from the second list of candidate movement information, and the second target movement information is selected from the third list of candidate movement information), since there are M (e.g., M is 4) candidate movement information in the second list of candidate movement information, the first target movement information has M possible choices, and since there are M (e.g., M is 4) candidate movement information in the third list of candidate movement information, the second target movement information has M possible choices, and therefore the index of the movement information is an index of M*M combinations. Implementation 8

[0113] After the first target movement information of the first triangular sub-block and the second target information Petition 870260035762, dated 04 / 16 / 2026, page 52 / 93 42 / 60 of the movement of the second triangular sub-block can be obtained, based on the first target movement information and the second target movement information, movement compensation can be performed in the first triangular sub-block and the second triangular sub-block through the following approaches.

[0114] Approach 1. The current block is partitioned into a plurality of sub-blocks, the width of each sub-block can be greater than or equal to 2, and the height of each sub-block is greater than or equal to 2. For each sub-block, if the sub-block is located in the first triangular sub-block, motion compensation is performed on the sub-block based on the first target motion information of the first triangular sub-block to obtain the prediction value of the sub-block; if the sub-block is located in the second triangular sub-block, motion compensation is performed on the sub-block based on the second target motion information of the second triangular sub-block to obtain the prediction value of the sub-block;If the sub-block is not completely located within the first triangular sub-block nor completely located within the second triangular sub-block (that is, the sub-block is located across the diagonal separating the first triangular sub-block from the second triangular sub-block), weighted compensation is performed on the sub-block based on the first target movement information of the first triangular sub-block and the second target movement information of the second triangular sub-block to obtain the prediction value of the sub-block. Weighted compensation may include the steps of: obtaining a first prediction value of the sub-block based on the first target movement information; obtaining a second prediction value of the sub-block based on the second target movement information; and performing weighted compensation for the sub-block based on the first prediction value, a first weighting coefficient corresponding to; Petition 870260035762, dated 04 / 16 / 2026, page 53 / 93 43 / 60 first prediction value, to the second prediction value, and a second weighting coefficient corresponding to the second prediction value.

[0115] For example, with reference to Figure 6A, the current block can be partitioned into sub-block 1, sub-block 2, sub-block 3, and sub-block 4. In practical applications, the current block can be partitioned into more sub-blocks, since the width of each sub-block is greater than or equal to 2 and the height of each sub-block is greater than or equal to 2. The following description will be given with reference to the sub-block partition shown in Figure 6A as an example.

[0116] For sub-block 2, since sub-block 2 is located in the first triangular sub-block, the first target motion information is used to perform motion compensation in sub-block 2 to obtain the prediction value. For sub-block 3, since sub-block 3 is located in the second triangular sub-block, the second target motion information is used to perform motion compensation in sub-block 3 to obtain the prediction value. For sub-block 1, since sub-block 1 is neither completely in the first triangular sub-block nor completely in the second triangular sub-block, a first prediction value P1 of sub-block 1 is determined based on the first target motion information, and a second prediction value P2 of sub-block 1 is determined based on the second target motion information.Assuming that the first weighting coefficient corresponding to P1 is a (such as 0.5), and the second weighting coefficient corresponding to P2 is b (such as 0.5), then weighting compensation is performed on sub-block 1 based on P1, a, P2, and b. The prediction value of sub-block 1 after weighting compensation is equal to, for example, P1*a+P2*b. Motion compensation for sub-block 4 is similar to motion compensation for sub-block 1, and will not be. Petition 870260035762, dated 04 / 16 / 2026, page 54 / 93 44 / 60 repeated in this document.

[0117] Approach 2. The current block is partitioned into a first sub-block area, a second sub-block area, and a third sub-block area, wherein the first sub-block area is located in the first triangular sub-block, the second sub-block area is located in the second triangular sub-block, and the distance between the center of each sub-block in the third sub-block area and the diagonal separating the first triangular sub-block from the second triangular sub-block is less than a predefined limit.Motion compensation is performed in each sub-block in the first sub-block area based on the first target motion information from the first triangular sub-block; motion compensation is performed in each sub-block in the second sub-block area based on the second target motion information from the second triangular sub-block; and heavy compensation is performed in each sub-block in the third sub-block area based on the first target motion information and the second target motion information.Heavy compensation may include the following steps: for each sub-block in the third sub-block area, determine a first sub-block prediction value based on the first target movement information, and determine a second sub-block prediction value based on the second target movement information; based on the first prediction value, a first weighting coefficient corresponding to the first prediction value, the second prediction value, and a second weighting coefficient corresponding to the second prediction value, perform heavy compensation on the sub-block, where if the sub-block is located or primarily located in the first triangular sub-block, the first weighting coefficient is greater than the second weighting coefficient; if the sub-block is located or primarily located in the second triangular sub-block, the first weighting coefficient is less than the second. Petition 870260035762, dated 04 / 16 / 2026, page 55 / 93 45 / 60 second weight coefficient; if the sub-block is located across the diagonal separating the first triangular sub-block from the second triangular sub-block, the first weight coefficient is equal to the second weight coefficient.

[0118] Each sub-block in the third sub-block area can be a 1*1 sub-block, that is, a single pixel block, or an N*M sub-block, where N can be greater than or equal to 1, and M can also be greater than or equal to 1.

[0119] For example, with reference to Figure 6B, the current block can be partitioned into a first sub-block area, a second sub-block area, and a third sub-block area. The first sub-block area is located in the first triangular sub-block, and thus the first target motion information of the first triangular sub-block can be used to perform motion compensation in each sub-block in the first sub-block area to obtain a prediction value. The second sub-block area is located in the second triangular sub-block, and thus the second target motion information of the second triangular sub-block can be used to perform motion compensation in each sub-block in the second sub-block area to obtain a prediction value. The third sub-block area may include sub-blocks marked with 1, sub-blocks marked with 2, sub-blocks marked with 4, sub-blocks marked with 6, and sub-blocks marked with 7.

[0120] For each sub-block marked with 7, which will be referred to as sub-block 7 hereafter, a first prediction value P1 of sub-block 7 can be determined based on the first target movement information, and a second prediction value P2 of sub-block 7 can be determined based on the second target movement information. Assuming that the first weighting coefficient corresponding to P1 is a, and the second weighting coefficient corresponding to P2 is b, the value Petition 870260035762, dated 04 / 16 / 2026, page 56 / 93 The prediction value of sub-block 7 after weighted compensation (46 / 60) can be equal to: P1*a + P2*b. Furthermore, since sub-block 7 is located in the first triangular sub-block, the first weighting coefficient a is greater than the second weighting coefficient b. Assuming that a is 7 / 8 and b is 1 / 8, the prediction value of sub-block 7 after weighted compensation is equal to P1*7 / 8 + P2*1 / 8.

[0121] For each sub-block marked with 6, referred to as sub-block 6 below, the weighting compensation process is similar to that of sub-block 7. Since sub-block 6 is located in the first triangular sub-block, the first weighting coefficient a is greater than the second weighting coefficient b. Furthermore, since sub-block 6 is closer to the second sub-block area than sub-block 7, the first weighting coefficient a of sub-block 6 may be less than the first weighting coefficient a of sub-block 7. For example, the first weighting coefficient a of sub-block 6 is 6 / 8, the second weighting coefficient b is 2 / 8, and the prediction value of sub-block 6 after weighting compensation is equal to P1*6 / 8+P2*2 / 8.

[0122] For each sub-block marked with 4, referred to as sub-block 4 below, the weighted compensation process is similar to that of sub-block 7. Since sub-block 4 is located across the diagonal separating the first triangular sub-block from the second triangular sub-block, the first weighting coefficient a is equal to the second weighting coefficient b. For example, a is 4 / 8, b is 4 / 8, and the prediction value of sub-block 4 after weighted compensation is equal to P1*4 / 8+P2*4 / 8.

[0123] For each sub-block marked with 2, which will be referred to as sub-block 2 below, the heavy compensation process is similar to that of sub-block 7. Since sub-block 2 is located in the second triangular sub-block, the first Petition 870260035762, dated 04 / 16 / 2026, page 57 / 93 47 / 60 weighting coefficient a is less than the second weighting coefficient b. For example, a is 2 / 8, b is 6 / 8, and the prediction value of sub-block 2 after weighting compensation is equal to P1*2 / 8+P2*6 / 8.

[0124] For each sub-block marked with 1, referred to as sub-block 1 below, the weighting compensation process is similar to that for sub-block 7. Since sub-block 1 is located in the second triangular sub-block, the first weighting coefficient a is less than the second weighting coefficient b. Furthermore, since sub-block 1 is closer to the second sub-block area than sub-block 2, the first weighting coefficient a of sub-block 1 may be less than the first weighting coefficient a of sub-block 2. For example, the first weighting coefficient a of sub-block 1 is 1 / 8, and the second weighting coefficient b is 7 / 8, and the prediction value of sub-block 1 after weighting compensation is equal to P1*1 / 8+P2*7 / 8.

[0125] In the example above, the sum of the first weight coefficient a and the second weight coefficient b of each sub-block is equal to 1. The closer the sub-block is to the first sub-block area, the greater the first weight coefficient a, and the smaller the second weight coefficient b. The closer the sub-block is to the second sub-block area, the smaller the first weight coefficient a and the greater the second weight coefficient b.

[0126] In one example, for the sub-blocks in the third sub-block area, a first set of weighting coefficients can be set for the luma components. For example, along the direction from the first sub-block area to the second sub-block area, the first weighting coefficient a of the luma component of each sub-block is respectively 7 / 8, 6 / 8, 4 / 8, 2 / 8, 1 / 8 in sequence. For example, with reference to Figure 6B, the first weighting coefficient a of the component Petition 870260035762, dated 04 / 16 / 2026, pp. 58 / 93 48 / 60 luma of sub-block 7 is 7 / 8, the first weighting coefficient a of the luma component of sub-block 6 is 6 / 8, the first weighting coefficient a of the luma component of sub-block 4 is 4 / 8, the first weighting coefficient a of the luma component of sub-block 2 is 2 / 8, and the first weighting coefficient a of the luma component of sub-block 1 is 1 / 8.

[0127] In another example, for the sub-blocks in the third sub-block area, a second set of weighting coefficients can be set for the luma components. For example, along the direction from the first sub-block area to the second sub-block area, the first weighting coefficient a of the luma component of each sub-block is respectively 7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8 in sequence.For example, with reference to Figure 6B, the first weighting coefficient a of the luma component of sub-block 7 is 7 / 8, the first weighting coefficient a of the luma component of sub-block 6 is 6 / 8, the first weighting coefficient a of the luma component of sub-block 5 (sub-block 5 can be located between sub-block 4 and sub-block 6; Figure 6B does not show sub-block 5) is 5 / 8, the first weighting coefficient a of the luma component of sub-block 4 is 4 / 8, the first weighting coefficient a of the luma component of sub-block 3 (sub-block 3 can be located between sub-block 2 and sub-block 4, and sub-block 3 is not shown in Figure 6B) is 3 / 8, the first weighting coefficient a of the luma component of sub-block 2 is 2 / 8, and the first weighting coefficient a of the luma component of sub-block... 1 is 1 / 8.For the luma components mentioned above, both the first prediction value P1 and the second prediction value P2 are the luma component prediction values, and the prediction value P1*a+P2*b after weighted compensation is also the luma component prediction value.

[0128] In one example, for the sub-blocks in the third sub-block area, a first set of weighting coefficients Petition 870260035762, dated 04 / 16 / 2026, page 59 / 93 49 / 60 can be configured for the chroma components. For example, along the direction from the first sub-block area to the second sub-block area, the first weighting coefficient a of the chroma component of each sub-block is respectively 7 / 8, 4 / 8, 1 / 8 in sequence. For example, with reference to Figure 6C, the first weighting coefficient a of the chroma component of sub-block 7 is 7 / 8, the first weighting coefficient a of the chroma component of sub-block 4 is 4 / 8, and the first weighting coefficient a of the chroma component of sub-block 1 is 1 / 8.

[0129] In another example, for the sub-blocks in the third sub-block area, a second set of weighting coefficients can be set for the chroma components. For example, along the direction from the first sub-block area to the second sub-block area, the first weighting coefficient a of the chroma component of each sub-block is respectively 6 / 8, 4 / 8, and 2 / 8 in sequence. For example, with reference to Figure 6C, the first weighting coefficient a of the chroma component of sub-block 7 is 6 / 8, the first weighting coefficient a of the chroma component of sub-block 4 is 4 / 8, and the first weighting coefficient a of the chroma component of sub-block 1 is 2 / 8. For the chroma components, both the first prediction value P1 and the second prediction value P2 are the prediction values ​​of the chroma component, and the prediction value P1*a+P2*b after weighted compensation is also the prediction value of the chroma component.

[0130] Some examples of the motion compensation process will be described below.

[0131] Example 1. For motion compensation, the current block can be partitioned into a first sub-block area, a second sub-block area, and a third sub-block area. Motion compensation is performed on each sub-block in the first sub-block area based on the first Petition 870260035762, dated 04 / 16 / 2026, pp. 60 / 93 50 / 60 target movement information from the first triangular sub-block. Movement compensation is performed in each sub-block in the second sub-block area based on the second target movement information from the second triangular sub-block. Heavy compensation is performed in each sub-block in the third sub-block area based on the first target movement information and the second target movement information.

[0132] In one example, the current block can be partitioned into multiple M*M sub-blocks (for example, M is 4). For each M*M sub-block, if the sub-block is not across the diagonal separating the first triangular sub-block from the second triangular sub-block, one-way motion information is used to perform motion compensation in the sub-block. In this case, if the sub-block is located in the first triangular sub-block, the sub-block is referred to as the first sub-block area, and the first target motion information is used for motion compensation; if the sub-block is located in the second triangular sub-block, the sub-block is referred to as the second sub-block area and the second target motion information is used for motion compensation.If the sub-block is through the diagonal separating the first triangular sub-block from the second triangular sub-block, the sub-block is referred to as the third sub-block area, for which the two types of unidirectional motion information (i.e., the first target motion information and the second target motion information) can be used to perform weight compensation. For specific weight calculation methods, reference can be made to the examples above.

[0133] Example 2. For motion compensation, the current block can be partitioned into a first sub-block area, a second sub-block area, and a third sub-block area. Motion compensation is performed on each sub-block in the first sub-block area based on the first Petition 870260035762, dated 04 / 16 / 2026, pp. 61 / 93 51 / 60 target motion information from the first triangular sub-block. Motion compensation is performed on each sub-block in the second sub-block area based on the second target motion information from the second triangular sub-block. Based on the first target motion information and the second target motion information, weight compensation is performed on each sub-block in the third sub-block area, where only one set of weighting coefficients is used: the weighting coefficient used for luma components: {7 / 8, 6 / 8, 4 / 8, 2 / 8, 1 / 8}, the weighting coefficient used for chroma components: {7 / 8, 4 / 8, 1 / 8}. For specific weight calculation methods, reference can be made to the example above.

[0134] Example 3: For motion compensation, the current block can be partitioned into a first sub-block area, a second sub-block area, and a third sub-block area. Motion compensation is performed on each sub-block in the first sub-block area based on the first target motion information of the first triangular sub-block. Motion compensation is performed on each sub-block in the second sub-block area based on the second target motion information of the second triangular sub-block. Based on the first target motion information and the second target motion information, heavy compensation is performed on each sub-block in the third sub-block area, where only one set of weighting coefficients can be configured for heavy compensation.For example, the weighting coefficients for the luma component are set as follows: {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8}, and the weighting coefficient for the chroma component is set as follows: {6 / 8, 4 / 8, 2 / 8}. For specific weighing methods, refer to the example above.

[0135] Approach 3. The current block is partitioned into a first sub-block area, a second sub-block area and Petition 870260035762, dated 04 / 16 / 2026, pp. 62 / 93 52 / 60 a third sub-block area, where the first sub-block area is located in the first triangular sub-block, and the second sub-block area is located in the second triangular sub-block, the distance between the center of each sub-block in the third sub-block area and the diagonal line separating the first triangular sub-block from the second triangular sub-block is less than a predefined limit. Motion compensation is performed in each sub-block in the first sub-block area based on the first target motion information. Motion compensation is performed in each sub-block in the second sub-block area based on the second target motion information. Motion compensation is performed in each sub-block in the third sub-block area based on either the first target motion information or the second target motion information.

[0136] For example, if the current block size information satisfies a first condition (e.g., the current block width is greater than or equal to the current block height), motion compensation is performed on each sub-block in the third sub-block area based on the first target motion information; if the current block size information satisfies a second condition (e.g., the current block width is less than the current block height), motion compensation is performed on each sub-block in the third sub-block area based on the second target motion information. However, the above is just one example, and other methods can also be used to determine the feasibility of performing motion compensation based on the first target motion information or the second target motion information.

[0137] Each sub-block in the third sub-block area can be a 1*1 sub-block, that is, a single pixel block, or it can be an N*M sub-block, where N can be greater than or equal to 1, and Petition 870260035762, dated April 16, 2026, pages 63 / 93 53 / 60 M can also be greater than or equal to 1.

[0138] In this example, for the third sub-block area, instead of using both the first target motion information and the second target motion information, either the first target motion information or the second target motion information is used for motion compensation in each sub-block in the third sub-block area. That is, there are no sub-blocks to be subjected to motion compensation using bidirectional prediction, thus heavy compensation is not required.

[0139] As to whether to use the first target motion information or the second target motion information to perform motion compensation in each sub-block in the third sub-block area, it can be determined in either of the following ways: (1) using the first target motion information by default to perform motion compensation in each sub-block in the third sub-block area; (2) using the second target motion information by default to perform motion compensation in the third sub-block area; (3) determining based on the current block size.For example, if the width of the current block is greater than or equal to the height of the current block, the first target motion information is used to perform motion compensation in each sub-block in the third sub-block area; if the width of the current block is less than the height of the current block, the second target motion information is used to perform motion compensation in each sub-block in the third sub-block area. Implementation 9

[0140] The video encoder first determines whether the current block meets the specific conditions to enable geometric partitioning mode with triangular partitioning. Otherwise, it decides not to use geometric partitioning mode. Petition 870260035762, dated 04 / 16 / 2026, pp. 64 / 93 54 / 60 with triangular partitioning, but use another mode. If so, the video encoder may enable geometric partitioning mode with triangular partitioning by default, or the video encoder may determine whether to enable geometric partitioning mode with triangular partitioning. If the video encoder enables geometric partitioning mode with triangular partitioning by default or decides to enable geometric partitioning mode with triangular partitioning, the video encoder performs the operation of partitioning the current block into triangular sub-blocks and other subsequent operations in the examples above; otherwise, these operations are not performed.

[0141] In order to determine the possibility of enabling the geometric partitioning mode with triangular partitioning, the video encoder can determine the rate distortion cost corresponding to the geometric partitioning mode with triangular partitioning. If the rate distortion cost corresponding to the geometric partitioning mode with triangular partitioning is less than the rate distortion cost corresponding to each of the other modes, it can be determined whether to enable the geometric partitioning mode with triangular partitioning; otherwise, it can be determined whether not to enable the geometric partitioning mode with triangular partitioning.

[0142] Correspondingly, the encoded bitstream sent by the video encoder to the decoder may carry seventh indication information, wherein the seventh indication information specifies that the geometric partitioning mode with triangular partitioning is enabled.

[0143] The video decoder first determines whether the current block meets the specific conditions to enable geometric partition mode with triangular partition. Otherwise, it decides not to use geometric partition mode with triangular partition, but to use another mode. Therefore, the Petition 870260035762, dated 04 / 16 / 2026, pp. 65 / 93 55 / 60 video decoders can enable geometric partitioning mode with triangular partitioning by default, or the video decoder is configured to derive the encoded bitstream from the encoder. If the encoded bitstream carries the seventh indication information, it can be determined whether to enable geometric partitioning mode with triangular partitioning; otherwise, it can be determined whether not to enable geometric partitioning mode with triangular partitioning. If the video decoder enables geometric partitioning mode with triangular partitioning by default or chooses to enable geometric partitioning mode with triangular partitioning, the video decoder performs the operation of partitioning the current block into triangular sub-blocks and other subsequent operations in the examples related above; otherwise, these operations are not performed. Implementation 10

[0144] The video encoder / video decoder can also store the first target motion information and the second target motion information as follows. If the candidate block corresponding to the first target motion information is a one-way prediction block, the first target motion information is stored for the first triangular sub-block; if the candidate block corresponding to the first target motion information is a two-way prediction block, the first target motion information and the third target motion information are stored for the first triangular sub-block, and the third target motion information is other motion information from the two-way prediction block. If the candidate block corresponding to the second target motion information is a one-way prediction block, the second target motion information is stored for the second triangular sub-block; Petition 870260035762, dated 04 / 16 / 2026, pp. 66 / 93 56 / 60 if the candidate block corresponding to the second target movement information is a bidirectional prediction block, the second target movement information and fourth target movement information are stored for the second triangular sub-block, and the fourth target movement information is other movement information from the bidirectional prediction block.

[0145] For example, for the first sub-block area, if the first target motion information of the first sub-block area is MV1, and MV1 originates from a one-way prediction block R1, that is, the one-way prediction block R1 is a candidate block of the current block, and the motion information list includes the motion information MV1 from the one-way prediction block R1, and MV1 is selected as the first target motion information of the first sub-block area, then MV1 is stored for the first sub-block area, as shown in Figure 7A.For the second sub-block area, if the second target motion information of the second sub-block area is MV2, and MV2 originates from a one-way prediction block R2, that is, the one-way prediction block R2 is a candidate block of the current block, and the motion information list includes the motion information MV2 from the one-way prediction block R2, and MV2 is selected as the second target motion information of the second sub-block area, then MV2 is stored for the second sub-block area, as shown in Figure 7A.

[0146] For another example, for the first sub-block area, if the first target movement information of the first sub-block area is MV1, and MV1 originates from a bidirectional prediction block R3, that is, the bidirectional prediction block R3 is a candidate block of the current block, and the movement information list includes the information of Petition 870260035762, dated 04 / 16 / 2026, pp. 67 / 93 57 / 60 movement MV1 and MV2 of the bidirectional prediction block R3, and MV1 is selected as the first target movement information of the first sub-block area, then MV1 and MV2, instead of just M1, are stored for the first sub-block area, as shown in Figure 7B. For the second sub-block area, if the second target movement information of the second sub-block area is MV3, and MV3 originates from a bidirectional prediction block R4, that is, bidirectional prediction block R4 is a candidate block of the current block, and the movement information list includes the movement information MV3 and MV4 of bidirectional prediction block R4, and MV3 is selected as the second target movement information of the second sub-block area, then MV3 and MV4, instead of just MV3, are stored for the second sub-block area, as shown in Figure 7B.

[0147] In the examples above, as shown in Figures 7A and 7B, the motion information can be stored in a 4*4 unit. Implementation 11

[0148] This example of the present invention provides a video decoder. Figure 8 is a schematic block diagram of the video decoder. With reference to Figure 8, the video decoder may include a processor 81 and a machine-readable storage medium 82. The machine-readable storage medium 82 stores machine-executable instructions that can be invoked by the processor 81. When the processor 81 invokes the machine-executable instructions, the processor 81 is configured to perform the video decoding method according to the examples related above of the present invention.

[0149] The example of the present invention also provides a video encoder. Figure 9 is a schematic block diagram of the video encoder. With reference to Figure 9, Petition 870260035762, dated 04 / 16 / 2026, pp. 68 / 93 58 / 60 The video encoder may include a processor 91 and a machine-readable storage medium 92. The machine-readable storage medium 92 stores machine-executable instructions that can be invoked by the processor 91. When the processor 91 invokes the machine-executable instructions, the processor 91 is configured to perform the video encoding method according to the examples related above of the present invention.

[0150] An example of the present invention also provides a machine-readable storage medium that stores computer instructions, and when the computer instructions are executed by a processor, the processor can implement the video encoding / decoding method of the examples above.

[0151] Machine-readable storage media can be an electronic, magnetic, optical, or other physical storage device, and can contain or store information, such as executable instructions, data, and so forth. For example, machine-readable storage media can include volatile memory (e.g., RAM (Random Access Memory)), non-volatile memory (e.g., flash memory, storage drive (such as hard disk drive), solid-state drive, optical storage (e.g., CD-ROM (Compact Disc Read-Only Memory), DVD (Digital Versatile Disc), etc.) or a combination thereof.

[0152] The systems, devices, modules, or units illustrated in the examples above may be implemented by computer entities or chips, or implemented by products with certain functions. A typical implementing device is an electronic device, including, but not limited to: a personal computer, a laptop computer, a tablet computer, a mobile phone, a camera, a Petition 870260035762, dated 04 / 16 / 2026, pp. 69 / 93 59 / 60 smartphone, a digital personal assistant, a media player, a navigation device, an email receiving and sending device, a game console, a wearable device, or any combination thereof.

[0153] For the sake of clarity in describing the above device, the functions are partitioned into several units. However, when implementing the present invention, the functions of each unit can be implemented in one or more software and / or hardware units.

[0154] Those skilled in the art should understand that examples of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a pure hardware implementation, a pure software implementation, or an implementation that combines software and hardware.

[0155] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to the examples of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device, such that the computer program instructions are executed by the processor to generate a device to implement functions specified in one or more processes in the flowchart and / or in one or more blocks in the block diagram.

[0156] The descriptions above are merely examples of the present invention and are not used to limit the present invention. Petition 870260035762, dated 04 / 16 / 2026, pp. 70 / 93 60 / 60 invention. For those skilled in the art, the present invention may have various modifications and alterations. Any modification, equivalent substitution, improvement, etc., made in the spirit and principle of the present invention shall be included within the scope of the claims of the present invention. Petition 870260035762, dated 04 / 16 / 2026, pp. 71 / 93

Claims

1 / 7 CLAIMS 1. A decoding method characterized in that it comprises: when the characteristic information of a current block satisfies specific conditions, performing the following steps: obtaining first target movement information and second target movement information of the current block, wherein the first target movement information is different from the second target movement information; and performing a decoding process on the current block based on the first target movement information and the second target movement information; wherein the characteristic information at least comprises a type of current slice where the current block is located, a mode of movement information of the current block, and size information of the current block;wherein performing a decoding process on the current block based on the first target motion information and the second target motion information comprises: performing motion compensation on the current block based on the first target motion information and the second target motion information to obtain a prediction value for the current block; wherein the prediction value for the current block at least comprises a prediction value for a first sub-block area, a prediction value for a second sub-block area, and a prediction value for a third sub-block area;where the prediction value of the first sub-block area is obtained by performing motion compensation in the first sub-block area based on the first target motion information, the prediction value of the second sub-block area is obtained by performing motion compensation in the second Petition 870260035762, dated 04 / 16 / 2026, page 72 / 93 2 / 7 sub-block area based on the second target motion information, and the prediction value of the third sub-block area is obtained by performing weighted compensation in the third sub-block area based on the first target motion information and the second target motion information;and wherein the prediction value of the third sub-block area comprises prediction values ​​of all sub-blocks in the third sub-block area, and each sub-block in the third sub-block area is a 1*1 pixel block, obtaining the prediction value of the third sub-block area by performing weighted compensation in the third sub-block area based on the first target motion information and the second target motion information comprises: for each sub-block in the third sub-block area, determining a first prediction value of the sub-block based on the first target motion information; determining a second prediction value of the sub-block based on the second target motion information;and obtain a weighted prediction value of the sub-block based on the first prediction value, a first weighting coefficient corresponding to the first prediction value, the second prediction value, and a second weighting coefficient corresponding to the second prediction value, wherein the weighted prediction value of the sub-block is P1*a + P2*b when the first prediction value is P1, the second prediction value is P2, the first weighting coefficient is a, and the second weighting coefficient is b; wherein a set of values ​​of the first weighting coefficient for a luma component of each sub-block in the third sub-block area is {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8}.

2. Decoding method, according to claim 1, characterized in that the first target movement information and the second target movement information Petition 870260035762, dated 04 / 16 / 2026, page 73 / 93 3 / 7 are respectively movement information of a first triangular sub-block and a second triangular sub-block obtained by partitioning the current block, when the characteristic information of the current block satisfies the specific conditions, the steps performed further comprise: partitioning the current block into the first triangular sub-block and the second triangular sub-block based on a partitioning method indicated by the indication information.

3. Decoding method, according to claim 2, characterized in that the partitioning of the current block into a first triangular sub-block and a second triangular sub-block based on a partitioning method indicated by the indication information, comprises: partitioning the current block into the first triangular sub-block and the second triangular sub-block with a first diagonal method when the partitioning method indicated by the indication information specifies that the current block is enabled to be partitioned with the first diagonal method; or partitioning the current block into the first triangular sub-block and the second triangular sub-block with a second diagonal method when the partitioning method indicated by the indication information specifies that the current block is enabled to be partitioned with the second diagonal method.

4. Decoding method, according to claim 1, characterized in that each sub-block in the third sub-block area comprises a luma component, for the luma component, the first prediction value is a prediction value of the luma component determined based on the first target motion information, Petition 870260035762, dated 04 / 16 / 2026, page 74 / 93 4 / 7 the second prediction value is a prediction value of the luma component determined based on the second target motion information, and the weighted prediction value of the sub-block is a weighted prediction value of the luma component.

5. Decoding method, according to claim 1, characterized in that each sub-block in the third sub-block area comprises a chroma component, for the chroma component, the first prediction value is a prediction value of the chroma component determined based on the first target motion information, the second prediction value is a prediction value of the chroma component determined based on the second target motion information, and the weighted prediction value of the sub-block is a weighted prediction value of the chroma component that is determined based on the first prediction value, the second prediction value, the first weighting coefficient and the second weighting coefficient.

6. Decoding method, according to claim 2, characterized in that for each sub-block in the third sub-block area, when the sub-block is located in the first triangular sub-block, the first weight coefficient is greater than the second weight coefficient; when the sub-block is located in the second triangular sub-block, the first weight coefficient is less than the second weight coefficient; when the sub-block is located across a partition line, the first weight coefficient is equal to the second weight coefficient.

7. Encoding method characterized by the fact that Petition 870260035762, dated 04 / 16 / 2026, page 75 / 93 5 / 7 comprises: when the characteristic information of a current block satisfies the specific conditions, perform the following steps: obtain first target movement information and second target movement information of the current block, wherein the first target movement information is different from the second target movement information; and perform an encoding process on the current block based on the first target movement information and the second target movement information; wherein the characteristic information at least comprises a type of current slice where the current block is located, a mode of movement information of the current block, and size information of the current block;wherein performing a coding process on the current block based on the first target movement information and the second target movement information comprises: performing movement compensation on the current block based on the first target movement information and the second target movement information to obtain a prediction value for the current block; wherein the prediction value for the current block at least comprises a prediction value for a first sub-block area, a prediction value for a second sub-block area, and a prediction value for a third sub-block area;where the prediction value of the first sub-block area is obtained by performing motion compensation in the first sub-block area based on the first target motion information, the prediction value of the second sub-block area is obtained by performing motion compensation in the second sub-block area based on the second target motion information, and the prediction value of the third sub-block area is obtained by performing weighted compensation in the third sub-block area based on the first target motion information and the second target motion information;and wherein the prediction value of the third sub-block area comprises prediction values ​​of all sub-blocks in the third sub-block area, and each sub-block in the third sub-block area is a 1*1 pixel block, obtaining the prediction value of the third sub-block area by performing weighted compensation in the third sub-block area based on the first target motion information and the second target motion information comprises: for each sub-block in the third sub-block area, determining a first prediction value of the sub-block based on the first target motion information; determining a second prediction value of the sub-block based on the second target motion information;and obtain a weighted prediction value of the sub-block based on the first prediction value, a first weighting coefficient corresponding to the first prediction value, the second prediction value, and a second weighting coefficient corresponding to the second prediction value, wherein the weighted prediction value of the sub-block is P1*a + P2*b when the first prediction value is P1, the second prediction value is P2, the first weighting coefficient is a, and the second weighting coefficient is b; wherein a set of values ​​of the first weighting coefficient for a luma component of each sub-block in the third sub-block area is {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8}.

8. Decoding device characterized in that it comprises a processor and a machine-readable memory, wherein the machine-readable memory stores machine-executable instructions which, when executed by the processor, cause the processor to perform the method Petition 870260035762, dated 04 / 16 / 2026, page 77 / 93 7 / 7 as defined in any of claims 1 to 6.

9. Encoding device characterized in that it comprises a processor and a machine-readable memory, wherein the machine-readable memory stores machine-executable instructions which, when executed by the processor, cause the processor to perform the method as defined in claim 7.

10. Machine-readable memory characterized in that it comprises machine-executable instructions stored therein which, when executed by a processor, perform the method as defined in any one of claims 1 to 7. Petition 870260035762, dated April 16, 2026, pp. 78-93